(计算机应用技术专业论文)基于esb组件的soa架构在企业应用集成中的研究及应用.pdf_第1页
(计算机应用技术专业论文)基于esb组件的soa架构在企业应用集成中的研究及应用.pdf_第2页
(计算机应用技术专业论文)基于esb组件的soa架构在企业应用集成中的研究及应用.pdf_第3页
(计算机应用技术专业论文)基于esb组件的soa架构在企业应用集成中的研究及应用.pdf_第4页
(计算机应用技术专业论文)基于esb组件的soa架构在企业应用集成中的研究及应用.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 e a i 的目标是集成不同的应用系统,使决策者、员工和商业伙伴能够方便的访问本企业及其 客户的信息,而不管它们存储丁哪个系统中。传统企业应用集成技术以及r m i 、c o r b a 、d c o m 等分布式技术不能适应企业业务的快速变化。面向服务的体系结构( s e r v i c eo r i e n t e da r c h i t e c t u r e , s o a ) 可用于构建分布式系统。它的目标是提供个灵活、松耦合、可扩展的基础集成服务平台, 较好的实现数据和应用的集成。 s o a 定义了构成系统的服务,通过描述服务之间的交互提供特定的功能特性,并且将服务 映射为具体的某种实现技术。w e b 服务是当前实现s o a 的较好方式,使用s o a 技术构建的分布 式应用程序可以将功能模块变成服务交付给终端用户,用户可以将w e b 服务的使用从简单的客 户端一服务器模型扩展成比较复杂的系统。 在分析了企业应用集成中的各种技术及特点之后,本文总结并提出了面向服务的系统应用层 次架构,可以为企业应用提供一个灵活的架构,使企业应用服务易于集成并且提高可重用。在本 文中e s b 居丁- 集成框架的核心地位,本文对作用进行描述并进行了设计。在“基于网络的物流 配送管理系统平台”项目的集成开发中对该e s b 进行了应用。 关键字:企业应片j 集成、面向服务架构、企业服务总线 a b s t r a c t t h ea i mo fe a ii st oi n t e g r a t ep r o c e s s e st h a tg e ta c r o s ss e v e r a la p p l i c a t i o ns y s t e m s ,a n dt om a k e t h el e a d e r s ,e m p l o y e e sa n dc o m m e r c i a lc o m p a n i o n sc a ne a s i l yv i s i tt h ed a t ao ft h ec o m p a n ya n d c u s t o m sw i t h o u tk n o w i n gw h e r et h e s ed a t ab e t r a d i t i o n a lt e c h n o l o g yo fe a ia n dr m i ,c o r b aa n d d c o mc a nn o ta d a p tt h er a p i dc h a n g eo f b u s i n e s s s o ai sa nk i n do fa r c h i t e c t u r ew h i c hc a l lb e u s e dt o b u i l dt h ed i s t r i b u t e ds y s t e m ,a n d p r o v i d eaf l e x i b l e ,l o s ef u n c t i o n a l ,a n de x t e n d i b l ei n t e g r a t i o n s e r v i c ep l a t f o r m s o ad e f i n es e r v i c e st h a tc o n s t r u c t e dt h es y s t e m ,a n dd e s c r i b et h ec h a r a c t e r i s t i co fi n t e r c o u r s eo f s e r v i c e s ,a n dm a ps e r v i c e st ob eak i n do fi m p l e m e n t e dt e c h n o l o g y w e bs e r v i c e si sab e t t e rm e a n st o i m p l e m e n ts o at h ei d e ao fc o n s t r u c td i s t r i b u t e da p p l i c a t i o nc a nt r a n s f o r ms e r v i c e st ot h ee n du s e l a n dt h eu s e rc a ne x p a n dt h ew e bs e r v i c e sf o r mt h es i m p l ec u s t o m e r s e r v e rm o d e lt oc o m p l i c a t e d s y s t e ma tw i l l a f t e rg e n e r i z e da n da n a l y z e dt h em e r i ta n df l a wo ft h et e c h n o l o g yo fe n t e r p r i s ea p p l i c a t i o n i n t e g r a t i o n ,ip u tf o r w a r dt h ea r c h i t e c t u r eo fe n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o nb a s e do ns o a ,w h i c h c a np r o v i d ea l l a g i l e a r c h i t e c t u r et h a tm a d et h ei n t e g r a t i o ne a s y e s bi sv e r yi m p o r t a n ti nt h e i n t e g r a t i o n - f r a m e i nt h ep a p e rid e s c r i b e da n dd e s i g n e di t t h e ni tw a si m p l e m e n t e di nt h el o g i s t i c s s e r v i c ep l a t f o r mt oi n t e g r a t et h es y s t e m k e y w o r d s :e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,s e r v i c eo r i e n t e da r c h i t e c t u r e ,e s b i l l 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别1 d n 以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得中国农业大学或其它教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示了谢意。 研究生签名:狠一匹 时间:弘口,年月妒日 关于论文使用授权的说明 本人完全了解中国农业大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复 制手段保存、汇编学位论文。同意中国农业大学可以用不同方式在不同媒体上发表、 传播学位论文的全部或部分内容。 ( 保密的学位论文在解密后应遵守此协议) 研究生签名:垮一舀 洲:办。拜厶g 日 翩躲水钧 洲:删年厂肌r 中国农业_ = 学硕上学位论文 第一章绪论 i 1 1 引言 第一章绪论 在过去的近十年中,全球企业在信息系统上投资约2 0 多万亿美元。巨大的投资为它们建立 了点对点的信息系统,以进行内部及外部业务的处理和管理工作。应用系统与流程的集成对企业 来说虽然是新的需求,然而集成的复杂程度和困难程度却随着整体商业经营环境的变化而增加。 现在企业普遍面临的问题是有价值的商业信息被储存在各种不同的应用系统中,并且由于传统的 集成方法无法以最有效率的形式充分地整合信息,往往使企业错失许多商机。例如,客户关系管 理( c r m1 是一个非常重要的课题,许多公司都了解将不同系统中顾客的相关资料整合在一起,能 有效提升公司的经营管理。所以如何能将不同应用系统甚至组织的内外部运作流程作有效的整 合,便成为企业经营管理的关键。 1 2 企业应用集成目标 e a i 的目标就是集成跨越不同应用系统的过程,同时使企业的员工、决策者和商业伙伴能够 较方便的访问企业和客户的数据,而不管这些数据具体的存储位置。它更进一步的目标是集成跨 企业和跨组织的信息和过程,包括实现传输流、数据流、信息流和过程流等。 从企业的高层来看,企业应用集成的根本目的都是降低成本、提高效率并且对市场和机遇做 出快速地反应。从技术应用的角度来看,企业应用集成的设计目标一般有以下儿方面“j : 适应性的系统和过程。由于技术变革、全球化,以及企业自身产生变化等因素,导致了企业 所面临的环境是快速变化的,并且面l 临着激烈的竞争。企业的应用系统和过程必须能够适应这种 变化。而且在很多的企业中,应用系统是和企业的业务过程紧密结台的。一旦企业的业务流程发 生变化,相麻的应用系统也必须发生变化,这就要求系统和过程的再开发。如果企业的应用系统 不能适应这种变化,那么企业必将遭受损失。所以,系统和过程的可适应性是e a i 的最主要设计 目标之一。 有效的信息管理。企业的信息来源广泛,并且多种多样。信息反映了企业内部和外部的变化, 以及企业物流和资金流的情况。企业的运行需要信息的指导,同时也为控制质量和成本提供了依 据。所以企业应用系统必须能够保证:数据的一致性、及时准确性、可访问性、规则一致性、处 理过程一致性,同时必须能够提供异常报告和对历史数据的分析。 对电子商务的支持。i n t e m e t 的快速发展使得电子商务成为企业麻川集成中的重要方面。电 子商务使得企业的信息系统得以延伸至上下游企业雨i 最终消费者。从消息的角度看,电子商务可 以看作是受一系列规则约束的数据交换过程。 安全性问题。由于w e b 服务器连接在i n t e r n e t 上井呵以被任何人访问,而且为了方便企业间 的协作,企业的业务系统也需要提供远程调用的能力,这就带来了许多潜在的风险。所以安全性 中国农业人学碗l 学位论文 第一章绪论 必须作为一个整体性的要求提出。安全性的要求必须具备验证、授权、完整性、保密性和不可否 认性等要素。 开放性及标准化。由丁应用系统是处于变化的环境中,随着环境的改变系统也需要变化。在 系统的重构( 或再开发) 时,标准化是最重要的需求之一。从软件的发展趋势看,从非结构化到结 构化再到面向对象的设计方法都是使用黑箱的系统描述方式,接着就是从面向对象到对象的协作 的发展,分布式的组件技术是明显的例子,所以软件的开放性非常重要。 1 3 传统技术的应用及其缺陷 传统的点对点集成方法,往往无法满足企业的需求并导致整合成本过高且整体效率较低。调 查显示,9 0 年代北美地区以传统方法进行系统集成的案例中有3 0 的项目执行到一、f 时就因种种 原因而被取消;5 0 的项目因整合的缺陷无法有效交接;只有2 0 的项目能够成功的集成。然而 身处电子商务的经营管理环境中,企业所面对的是价值链与价值链的集体式竞争方式,为提升整 个价值链上相关企业的经营管理效率,单个企业必须积极进行组织内部的应用程序、作业流程及 组织外部合作伙伴间流程的整合工作。传统的企业往往着眼于内部系统的集成,面临着电子商务 和b 2 b 的飞速发展,很多企业不能抓住新的商业机会,从而错失许多商机。 近l o 年米,分布式计算技术快速发展,出现了r m i 、c o r b a 、d c o m 等技术,它们在企业 间的系统集成应用中取得了一定的成功,但仍然存在很多的缺点,使得它们难以得到广泛的应用。 比如,r m l ( r e m o t em e t h o di n v o c a t i o n ) 实现需要通信的两端都存在j a v a 环境,这影响了它的 推广:c o r b a 虽然成功地定义了一种与语言无关的通信方式,但却把实现对象请求代理( o r b ) 协议的任务留给了供应商。同时,并且由于使用了i i o p 协议,有的企业防火墙会阻j ro r b 通信, 因此c o r b a 不一定能同防火墙一起很好的协同工作。d c o m 依赖于严格管理的环境,如果要应 用d c o m 应用程序,则所有参与该应用的节点都必须得到w i n d o w s 系统的支持。所以要找到能 成功地在外部调用d c o m 或i i o p 的任意两台计算机是很困难的。d c o m 和c o r b a 都是适合服 务器间通信的协议,在客户机与服务器间通信方面都存在严重的缺陷。 i 4 新方法的应用 1 4 1 服务的定义及特点 服务( s e r v i c e ) 被定义为封装成用于业务流程的可重用组件的应用程序函数,能够提供信息或 简化业务数据。它是能够通过网络访问的可调用例程,对外公开一个接口契约,定义了服务的 行为及接受和返同的消息;它是网络上的可用的软件资源和相应软件功能的表示,通过提供接收 和发送消息功能的接口来实现”j 。 所有的服务都是独立的,能够独立运行,外部组件不必知道它们是如何完成该功能的,而 仅关心它们返同的结果。服务的接口应该是可调用的,从体系结构的层面上看,它们的位置( 本 地还是远程) ,或者是使用何种_ 互连模式或协议对调用者来说都是不重要的。接口是非常关键的, 2 中国农业大学硕+ 学位论文 第一苹绪论 也是调用应用程序关注的焦点。它定义了必需的参数和结果的类型,定义了服务的类型,而1 f 实 现服务的技术。系统的责任是实现和管理服务的调崩。 服务一般具有以下特点p 】: 1 、服务的封装( e n c a p s u l a t i o n ) 性。服务是封装成_ h j 于业务流程的可重用组件的应用程序函 数。它提供信息或简化业务数据,使系统从一个有效的、一致的状态向另一个有效的、一致的状 态转变。封装隐蔽了复杂性,当服务改变时服务提供的接口保持不变,使用该服务用户程序不用 改变。 2 、服务是自治的( a u t o n o m o u s ) 功能实体。服务是由组件组成的模块,是具有完全独立自 主能力的功能实体。s o a 架构强调实体的自我管理和恢复的能力。常见的用米进行自我恢复的技 术,如事务处理- ( t r a n s a c t i o n ) ,冗余部署( r e d u n d a n td 印l o y m e n t ) 和集群系统( c l u s t e r ) 技术等,都在 s o a 中都起着重要的作用。 3 、服务之间的松耦合( l o o s e l yc o u p l e d ) 。服务请求者到服务提供者的绑定与服务之间应该 是松耦合的。这就意味着服务请求者不需知道服务提供者实现的技术细节,如具体的程序设计 语言以及部署平台等。服务请求者往往通过消息进行调用,而不是使用应用程序接口。 4 、服务是位置透明的( 1 0 c a t i o nt r a n s p a r e n c y ) 。服务是针对业务需求设计的,需要能够反应 需求的变化。要想真正实现业务与服务相分离,就必须使服务的设计和部署对于用户来说是完全 透明的,用户完全不必知道响应自己需求的服务的位置。 5 、服务是可以管理的。主要包括以f 可被管理的功能: 部署允许服务在网络上重新部署; 安全性可以对服务请求进行授权、确认、加密等; 日志用于审核、测量等。 1 4 2 面向服务体系结构与w e b 服务 s o a ( s e r v i c eo r i e n t e da r c h i t e c t u r e 面向服务体系结构) 是一种软件架构,它不局限于某种具 体的技术组合( 如w e b 服务) 。在利用s o a 思想设计的应用软件架构中,其所有的功能都是相互 独立的服务模块,通过完备定义的接口相互联系起来【4 】。只要按照一定的顺序来请求这些功能模 块所提供的服务,就可以形成完整的业务流程。 s o a 的灵活性能给企业带来巨大的好处。如果把企业的i t 架构抽象出来,将其功能以粗粒 度的服务形式表示出来,使每种服务都能够清晰地表示其业务价值,则这些服务的客户( 可能在 公司内部也可能在公司的外部) 就可以得到这些服务,而不需考虑后台实现的具体技术。并且, 如果客户能够发现并绑定这些服务,则i t 系统就具有1 | 常大的灵活性。要达到这个目标,就需 要有一系列实现架构的新方法,这项任务非常艰巨。企业架构设计师不仅需要理解s o a 的思想t 还要熟悉s o a 的实际应用。 s o a 的软件的核心思想就是以服务为中心。这种体系结构将企业应用构建成服务的集合t 某 些大型的企业应用( 如e i 冲) 可以将独立的企业过程以服务的形式封装起来。通过标准的协议,这 些服务可以被企业系统内部或跨系统的外部服务调_ l j 。采川面向服务体系架构的企业应用,使企 业中新的应用可以通过组合其他服务的方式构建。另外,由丁i 通过标准的协议米访问和调i 【 j 服务, 中国农业大学硕士学位论文 第一荦绪论 使服务可以做到位置独立。使用服务的用户可以通过对服务注册中心的查找来获得服务的描述信 息。获取描述信息后,用户可以与服务协商调用的接口,实现对服务功能调用的绑定。 基于s o a 的企业应用集成提供了一个抽象的接口,通过它们进行系统交互,而不是使用底 层的协议和白定义的编程接口来规定系统如何与其它系统进行通讯。系统只需以服务的形式出 现,选择与该系统交互的其它系统,能够方便地发现这些服务,并且与这些服务绑定。此前与业 务有关的廊州程序,仍然可以使用,但是由于缺少良好的接口而不能被重用。s o a 能够提供一个 灵活、松耦合、可扩展的基础集成服务平台,比较完善地实现数据集成和应用集成。面向服务的 集成使得r r 机构能够在已有的应用中提供可重用的服务功能。 1 4 3w e b 服务 面向服务的体系结构s o a 和w e b 服务的体系结构是两个不同层面的问题,前者是面向商业 应用的概念模式,而后者则是面向技术框架的实现模式。s o a 表示的是一个概念模型,是如何将 软件组织在一起的抽象概念。在这个模型中,松耦合的应用在网络上被描述、发布和调用。而 w e b 服务则是由一组协议构成的协议栈所定义的框架结构,它定义了在不同的系统之间通信松耦 合的编程框架】。w e b 服务体系结构可以看作面向服务的体系结构的一个特定的实现;作为一个 概念上的模型,面向服务的体系结构将网络、传输西议以及安全等具体的细节都遗留给特定的实 现。 w e b 服务是一套技术体系,可以用来建立应用解决方案,解决特定的消息通信和应用集成问 题。随着时间的推移,这些技术在不断发展和成熟,能够更好地帮助企业实现s o a 架构的应用 系统。i b m 公司技术人员m a r k 先生指出:“w 曲服务是实现s o a 架构一条最好的途径,但它不 等于s o a 。” 当然,尽管w e b 服务是目前实现s o a 架构的较好方式,但是实现s o a 架构并不仅仅局限于 w e b 服务,其他使用w s d l 直接实现服务接口并且通过x m l 消息进行通信的协议也可以包含在 s o a 之中。正如有文献指出,c o r b a 和i b m 的m q 系统通过使用能够处理w s d l 的新特征也 可以参与到s o a 中米。 1 5 本文研究的内容 本文在研究了当前企业应用集成的现状,以及传统技术在应用中遇到的问题的基础上,对面 向服务的体系架构及其应用现状进行了研究。随后对当前实现s o a 的常用技术如x m l 、s o a p 、 u d d i 及w s d l 进行了介绍。接着结合当前企业系统应用集成目标及实际要求,总结并提出了面 向服务架构的软件分层软件体系结构,并对每层完成的相应功能进行了说明。最后对该体系结构 中的企业服务总线进行了设计,并在“基于网络的物流配送管理系统平台”的整合中进行了应用。 4 中国农业大学碗士学位论文第二章s o a 实现的关键技术 第二章s o a 实现的关键技术 2 1w e bs e r v i c e s 技术特点 w e b 服务的出现表明很多项目可以通过这种技术来实现面向服务的体系结构。从业务的角度 米看,它是一种虑片j 程序开发的体系框架,可以在其中定义业务问题,并且可以通过致的可重 复的方式来实现解决方案。w e b 服务在需要交互的服务之间如何传递消息有具体的指导原j j ! l j 。以 w e b 技术实现的s o a 模型是通过h i t p 传递的s o a p 消息的w e b 服务模型。 实现跨平台的互操作性是w e b 服务的根本特征,因此统一的标准是非常重要的,以下将对 w e b 服务的核心标准进行讨论。它们包括s o a p 协议、w s d l 协议、w s d l 协议和u d d i 协议 等n w e b 服务是一种基于现有的被广泛接受和成熟的i n t e m e t 技术的分布式应用程序技术框架, 由w 3 c 和i n t e m e t 工程任务组( i e t f ) 等组织设计。可以这样描述w e b 服务:w e b 服务是一种基 丁w e b 的分布式计算技术框架,用来方便各种平台的以各种不同语言和技术开发的分布式计算 技术能够相互协作和交互。它建立在一些成熟的技术基础上,以x m l 技术为基础,通过基于x m l 技术的w e b 服务描述语言w s d l 对提供的服务进行封装,然后通过统一的定义、查找和集成协 议( u d d i ) 在i n t e m e t 上发布该服务及提供服务的企业和组织的相关信息,供现有的或潜在的客户 以一些标准的方式访问。w e b 服务可看作是可复用的软件模块,每一个w e b 服务都是一个自包 含的“小程序”,它完成单个的任务,服务消费者以松散耦合的形式与服务提供者进行交互。 w e b 服务最大优势就是提供了跨平台的,用不同语言编写的各种程序之间交互的一系列标准,它 将改变现有的电子商务模式,并促进新的交易方式的出现,为各种企业之间的系统整合和信息交 流提供了一种现实且方便的解决途径。 2 2w e bs e r v i c e 协议栈 为了实现w e bs e r v i c e 体系架构中的不同操作和交互,需要有一系列分层的协议规范来提供 实现。w e bs e r v i c e 体系结构的基本原则之一,是使用通用的标准和技术( 包括服务描述、服务消 息通信咀及数据格式等) 开发与平台和编程语言无关的w e bs e r v i c e ,从而能够充分利用现有资源, 实现分布式开发和重用性。冈此,w e bs e r v i c e 中的协议栈将充分体现开放和标准的原则。w e b s e r v i c e 协议栈的结构如图2 - 1 所示: 5 中国农业大学硕+ 学位论文 第二章s o a 实现的关键技术 。勘l女磷熟瓣黪e 端# 瓤# 獬# 筝嚣擎黧繁女鳓 s 煅。l巍 城e 黝¥ 黪女# 。糕戮黧# 婚# 熟纛鏊鹊黼 麟糕 巍 癣# 歉| 爨 臻弼兹 鐾 i 耋 浮 霪锄耩l 簿薯巍# 霸舞撒 i 。 螽 蠢e # 撼! 熟睫| $ 潜 s 氇蹬 瓣泓黼黼辫獬獬 霉 ! 蕊。麓f 氛s 簿瓣 黼# 女 蠛 数麟嵫 姥黪鬻獭s 嚣斡 觏嬲l 图2 1w e bs e r v ic e 协议栈 网络传输层是w e b 服务协议栈的基础;在数据表现和模型层,x m l 描述了整个w e b 服务中, x m ls c h e m a 定义了w e b 服务中数据结构的元数据。数据模型层之上消息层,使用的是是基于 x m l 的消息协议s o a p 。服务描述层定义了业务交互的接口和机制,它采用的规范是w s d l , 主要包括服务实现和服务接口两个方面的描述。服务的发布层和服务发现层定义了如何通过 u d d i 发布和发现服务的过程。服务工作流层针对的是商务流程建模和工作流,采用w s f l 。尽 管不同的标准化组织、厂商对w e b 服务的认识不完全,所给山的w e b 服务的协议栈也有所区别, 但在基本的方面还是相同的。如都以x m l 作为数据格式,使用s o a p 作为传输协议,使用u d d i 作为服务注册的实现规范,使用w s d l 来描述w e b 服务等。 2 3 x m l 技术 x m l l 0 ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 是一个基于文本的w 3 c fw o r l dw i d e w e b ) 组织规范的标记语言,是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ) 的子集。与h t m l 使 用标签米描述外观和数据不同,x m l 严格地定义了可移植的结构化数据,可以作为定义数据描 述语言的语言,如标记语法或词汇、交换格式和通信协议。它的含义与特性可以从以。f ) l 个方面 加以说明”j : ( i ) x m l 是一种元标记语言,只定义了一套元句法,即定义了用于定义其他与特定领域有 关的、语义的、结构化的标记语言的句法语言。州户可以根据需要定义自己的标记。 这种可扩展特性使得x m l 能被用于各种领域。 6 中国农业大学硕士学位论文第二章s o a 实现的关键技术 i ( 2 ) x m l 描述的是数据的结构和语义,而不是格式化,即x m l 有效的实现了数据与格式 的分离。表示的是所描述数据的层次结构关系以及数据本身的含义,而数据的格式, 姗可以通过相关的样式表进行描述。此特性使我们可阻将其用于各种结构信息的表示。 同时,对于同一x m l 文档内容。通过使用不同的样式表,可以对它进行不同格式的输 出。 r 3 ) x m l 使用独立于平台与语言的文本格式来表示数据,这便使得它成为在不同的应用间 交换数据的理想格式。人们可以利_ j 任何理解x m l 的t 具来处理数据。 由丁x m l 技术的诸多特点,它被广泛麻用于许多领域,如:数据表示与交换、面向消息的 计算、与用户界面表示相关的应用。 2 4s o a p 协议 简单对象访问协f s l ( s i m p l eo b j e c t a c c e s sp r o t o c o l ,s o a p ) 是w e b 服务的核心协议。它是调用 远程方法的一个x m l 标准,这里的远程方法位于运行的服务器上。s o a p 协议规定了方法请求 的格式和传递消息中的参数格式。它包含了一系列规则,从而可以正确地发送和接收信息p j 。 s o a p 是一个在分布式环境f 交换信息的轻量级协议,在请求者对象和提供者对象之间定义 了一个通信协议。这样,在面向对象编程流行的环境中,该请求对象可以在提供的对象上执行远 程方法调用。尽管实现s o a 架构并不必须使用s o a p ,但因为s o a p 是平台无关和厂商无关的 标准,在带有单独i t 基础架构的合作伙伴之间的松耦合互操作中,s o a p 仍然是支持服务调用的 最好方法。 w 3 cs o a p1 2 规范在服务请求者和服务提供者之间定义使用x m l 格式的消息进行通信。 将应 = j 程序请求放入s o a p 信封中,并从请求者到提供者发送应用程序请求,提供者发回的响应 与请求者的请求一样都采用x m l 表示。s o a p 也被称为面向服务的架构协议( s e r v i c e s o r i e n t e d a r c h i t e c t u r e p r o t o c 0 1 ) 。它的优点在丁完全与厂商无关,相对于平台、操作系统、目标模型和编程 语言可咀独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由实现决定的。 根据s o a p 标准的规定,h t r p 协议并不是惟一能够发送s o a p 消息的方法。s o a p 协议仅 仅定义消息的格式,可以通过任何所要求的通信系统发送它们,比如可以创建一个基于s m t p 消 息的s o a p 解决方案。但使用简单和无状态的h t t p 协议可以提供良好的可伸缩性,并且由于现 在几乎所有的防火墙软件都支持h r r p 协议,使s o a p 能够穿越防火墙访问系统内部。所以使用 h t t p 协议发送s o a p 消息应用的更为广泛。 s o a p 标准支持所有的设备或应用程序使用w e b 服务,s o a p 消息的定义很明确。如果客户 机和服务器都发送了有效的s o a p 消息,这两个消息可以用不同的语言编写,并且可以驻留在完 全不同的系统中。服务器端可以是一个j 2 e e 的w e b 服务,而客户端可以是个n e t 的w i n d o w s f o r m s 应川胖序。在服务器端和客户端之间的交流中,s o a p 作为通信的中立协议。 s o a p 是一种x m l 规范。所有的s o a p 消息都是以x m l 的格式进行编码的。s o a p 。泛地 使用j ,模i = 平| | 命名空间,理解这些对丁理解s o a p 规范来说至关重要。s o a p 消息有三种类刑: 方法调州、响心消息、故障消息。 7 中国农业大学硕l 学位论文第二章s o a 实现的关键技术 曼曼曼曼笪! ! 苎兰! ! ! ! ! ! ! 曼曼曼曼皇t f 置詈詈曼曼曼 方法调用就是指对远程服务器上的方法调用进行的请求。方法调用中包含r 所要调用的方法 名称,以及调用方法所必须的参数。然后,w e b 服务返同一个响应消息,该消息中带有方法调用 的结果。错误消息是一种特殊类型的响应消息,如果远程对象抛出一个异常或是产生了一个错误, 这样返回到客户机的就是一个故障消息。一个基本的s o a p 消息应具有下面的格式: ( f t r a n s a c t i o n - s p e c i f i ch e a d e rd e t a i l s 一 所有的s o a p 消息都遵循上面的格式。所有的信息都包括在s o a p 的e n v e l o p e 元素中。在 这个元素里包含了一个b o d y 元素和一个可选的h e a d e r 元素。而这些元素都能于一个具体的s o a p 命名空间中。s o a p 规范中的所有特殊的元素( 即e n v e l o p eb o d y 和h e a d e r ) 都位于命名空间 ”h t l p :s c h e m a s x m l s o a p o r e , s o a p e n v e l o p e ”中。利用命名空间来进行说明将名称空间的前缀定义在 e n v e l o p e 元素中。 怎样将数据串行化到s o a p 消息中是个非常重要的问题。对丁i 方法的参数和从成功的方法调 用中所返同的数据来说,数据必须被串行化。所有的系统都必须使用标准的方式来表示数据类型, 这样s o a p 规范就可以显式地声明在s o a p 消息中串行化每种数据类型的方式。最终的结果是, 所有的数据都能够被转换为有效的s o a p 消息,并且可以通过h t t p 给w e b 服务发送消息,或 者为客户机返同一个消息。大多数串行化规则都来自x m l s c h e m a 标准。 2 5w s d l 协议 w e b 服务描述语言w s d l ( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ) 是一个提供描述服务i d l 标 准方法的x m l 词汇。w e b 服务描述语言( w s d l ) 规范定义了一个x m l 词汇表,该词汇表依 照请求和响应消息,在服务请求者和服务提供者之间定义了一种契约。我们能够将w e b 服务定 义为软件,这个软件通过描述s o a p 消息接口的w s d l 文档来提供可重用的应用程序功能,并 使用标准的传输协议米进行传递”】。 w s d l 描述包含必要的细节,以便服务请求者能够使爿j 特定服务,它包括:请求消息格式、 响应消息格式、向何处发送消息。 w s d l 是基丁x m l 的,因此w s d l 文档是计算机可读的。这样开发环境使用w s d l 将集 成服务的流样自动处理到请求者应用程序。例如w e b s p h e r es t u d i o 产生一个j a v a 的代理对象,它 能够像本地对象样实现服务,但是实际上代理对象仅仅处理请求的创建平| 1 响应消息的解析。不 管服务是 jj a v a 、c # 或者其他的语言实现,生成的j a v a 代理对象都能够从w s d l 描述中调_ l ;j 任 何的w e b 服务。w s d l 不像编群语言那样描述实现细节。 中国农业大学硕f 学位论文 第二章s o a 实现的关键技术 w s d l 被设计用来描述w e b 服务和w e b 服务中所有的方法。它是以x m l 的格式编写的。 在一个w s d l 文档中,所有的参数和w e b 服务方法名称都有详细说明,同时还包括了w e b 服务 本身的位置。最终的结果是,可以生成用于具体的w e b 服务所必需的有效s o a p 消息,而且所 生成的s o a p 消息也被发送给了该w e b 服务。使用w s d l 描述语言最大的优点就是,它与s o a p 协议一样是一个标准的协议,任何系统都能够解释w e b 服务的方法并识别要生成的s o a p 消息 和发送该s o a p 消息。w s d l 将w e b 服务描述为一组端点,操作和消息都是被抽象描述的,然 后它们被绑定到一个具体的网络协议和消息格式,用来定义端点。相关的具体端点被合并到抽象 的端点或服务中。 服务提供者是通过服务描述将所有用于调用w e b 服务的规范传送给服务请求者的。要实现 w e b 服务体系结构的松散耦合,并减少服务提供者和服务请求者之间所需的共识的程度和定制编 程与集成的量,服务描述是关键。例如,不管是请求者还是提供者,都不必了解对方的底层平台、 编程语言或分布式对象模型。服务描述与底层s o a p 基础结构相结合,足以封装服务请求者的应 用程序和服务提供者的w e b 服务之间的这个细节。 w e b 服务体系结构中对w s d l 的使用按照常规将基本的服务描述分成了两部分:服务接口 和服务实现。这使每个部分都可以被分开独立定义,并可以由另一部分重新使用。如图2 2 所示。 s e r v i c e s e r v i c ei m p l e m e n t a t i o n d e f i n i t i o n p o r t b i n d i n g p o r tt y p e s e r v i c ei n t e f f a c e e s s a g e d e f i n i t i o n t y p e 图2 - 2 基本服务描述 服务接口定义是一种抽象的或可重用的服务定义,它可以被多个服务实现定义实例化和引 用。常见的行业标准服务类型可以被多个服务实现者定义和实现,类似于在编程语言中定义抽象 接口然后得到多个具体实现。 服务接口包含w s d l 元素,它们组成了服务描述中的可重用部分,这些元素有: b i n d i n g ,p o r t t y p e ,m e s s a g e 和t y p e 元素,如图2 2 中所描述。p o r t t y p e 元素中定义了w e b 服 务的操作。操作定义了输入和输出数据流中可以出现的x m l 消息,类似丁编程语言中的方法说 明。m e s s a g e 元素指定哪些x m l 数据类型组成消息的各个部分,用于定义操作的输入和输出参 数。t y p e s 元素中描述消息中复杂数据类型的使用。b i n d i n g 元素描述特定服务接口( p o r t t y p e ) 自9 协 议、数据格式、安全性和其它属性。 中国农业大学碗卜学位论文第一二章s o a 实现的关键技术 服务实现定义是一个描述给定服务提供者如何实现特定服务接口的w s d l 文档。w e b 服务 被建模成s e r v i c e 元素。服务元素包含一组( 通常是一个) p o r t 元素。端口将端点( 如网址或u r l ) 与 米自服务接口定义的b i n d i n g 元素关联起来。 服务接口定义和服务实现定义结合在一起,组成了服务完整的w s d l 定义。这两个定义包含 为服务请求者描述如何调用以及与w e b 服务交互的足够信息。服务请求者可以要求获得其它关于 服务提供者端口的信息,此信息由完整的w e b 服务描述提供。 很多w e b 服务实现都使用了发布的w s d l 文件来创建代理对象,这些代理对象则用于和外 部的w e b 服务进行通信。本地的代理对象则模仿用于w e b 服务上的方法调用,这就使得开发人 员可以使用代理对象而不用编写s o a p 消息的方式来进行工作。在代理对象内部,代理对象则创 建和格式化发送到w e b 服务的正确的s o a p 消息。 2 6 u d d i 协议 统一描述、发现和集成( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n ) 规范提供了一组公用 的s o a p a p l ,使服务代理得以实现。u d d i 为发布服务和发现所需服务定义了一个标准接口( 基 于s o a p 消息) ,实现将发布和发现服务的s o a p 请求解释为用于基本数据存储的数据管理功能 的调用口j 。s o a 并不必然要使用u d d i ,但由丁- u d d i 拦建立在s o a 上来完成自身工作的,所必 u d d i 是服务发现的一个好的解决方案。 为了发布和发现其他s o a 服务,u d d i 通过定义标准的s o a p 消息来实现服务注册( s e r v i c e r e g i s t r y ) 。注册是一种服务代理,它是在u d d i 上需要发现服务的请求者和发布服务的提供者 之间的中介。一旦请求者决定使用特定的服务,开发者通常借助于开发_ _ = 具( 如m i c r o s o f t v i s u a l s m d i o n e t ) 并通过创建以发送请求并处理响应的方式访问服务的代码来绑定服务。 u d d i 是用来存储业务信息和发布服务的注册表。通过使用u d d i 协议,潜在的客户能够通 过任何已注册的业务信息搜索并找到所提供的w e b 服务。u d d i 注册表本身提供了几个w e b 服 务,以允许任何客户机都可以使用标准的s o a p 消息米搜索注册表。从i b m 的w e b 站点 h t t p :w w w 一3 i b m c o m s e r v i c e s u d d i 或m i c r o s f t 的w e b 站点h t t p :u d d i m i c r o s o f t c o r n 可以访问 u d d i 注册表。 u d d i 注册表将成为新的i n t e m e t 的黄页。在u d d i 注册表中,企业列出了白己所发布的w e b 服务的位置,开发人员可以去查找和购买需要用到的服务。在的可编程的w e b 模型中,u d d i 规 定了如何买卖服务和发现服务。u d d i 提供了一个保存w e b 服务描述的机制。虽然u d d i 通常会 被认为是一种目录机制但是它也定义了一个用x m l 表示服务描述信息的数据结构标准。u d d i 条目中有四种基本数据结构,如图2 3 所示。 1 0 中国农业大学硕士学位论文第二章s o a 实现的关键技术 图2 _ 3 基本u d d i 数据结构 u d d i 条目由b u s i n e s s e n t i t y 开始。b u s i n e s s t n t i t y 元素对关于企业的信息进行建模,包括基本 的企业信息( 例如企业名称和联系方式等信息) 、分类信息( 例如按企业的行业类型分类) 以及标识信 息( 如c o r p d e p t 编号的含义) 。b u s m e s s e n t i t y 包含一组b u s i n e s s s e r v i c e 元素,每个元素对应于企 业希望发布的每个w e b 服务。每个b u s i n e s s s e r v i c e 元素都包含和b u s i n e s s e m i t y 元素的w e b 服务 有关的技术性和描述性信息。b u s i n e s s s e r v i c e 包含一组b i n d i n g t e m p l a t e 元素。b i n d i n g t e m p l a t e 描 述访问信息( 例如端点地址) ,还描述b u s i n e s s s e r v i c e 如何使用各种不同的技术规范。在这里技术 规范的模型是t m o d e ,它可以为很多不同概念建模,如:一种服务、诸如h t t p s 之类的平台技 术或一个类别。与b u s m e s s s e r v i c e 相关联的那一组b i n d i n g t e m p i a t e 元素代表了b u s i n e s s s e r v i c e 所 使用的技术的标记。 2 7 本章小结 本章第一节介绍了w e b 服务的特点,它是当前实现s o a 最常用的方式,w e b 服务模型通常 是通过h t t p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论