(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf_第1页
(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf_第2页
(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf_第3页
(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf_第4页
(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)基于web+services的数据交换平台的研究.pdf.pdf 免费下载

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

文档简介

基于w e bs e r v i c e s 的数据交换平台的研究 1 沦文题目:基于w e bs e r v i c e s 的数据交换平台的研究 专业:计算机软件与理论 硕士生:周盈铮 指导教师:李长森副教授 摘要 w e bs e r v i c e s 是计算机i t 技术的第三次革命。w e bs e r v i c e s 技术在现有 的各种异构平台上,构筑了一个通用的,与平台无关语言无关的技术层,不同 平台上的应用依靠这个技术层来实施相互的联接和集成。 企业应用的基础框架离不开基础数据库。而每个基础数据库的建设、运行 都离不开多部门合作,离不开信息资源共享。数据交换平台是把一个数据库的 数据通过数据交换平台转换到另一个数据库,实现数据的集成。 本文阐述了w e bs e r v i c e s 的技术架构及安全框架,在比较传统的信息交换 技术的基础上,对基于w e bs e r v i c e s 的数据交换平台模型进行探讨,提出基于 数据交换平台的敏捷整合企业业务系统的解决方案。这个方案对企业业务系统 进行整合,实现应用数据的无缝集成。企业将旧的应用集成,形成新的应用, 并迅速推向市场,这样提高了效率、节省了成本,从而在市场竞争中赢得先机。 本文从“实现w e b 服务的应用和管理”角度来讨论数据交换平台这个模型, 中间涉及了众多的技术细节,本文使用平台中的示例加以实现和研究,验证了 w e b 服务的技术框架。由于数据交换平台的w e bs e r v i c e s 应用不同于其在电子 商务方面的应用,它有自身的特点。这些特点符合w e bs e r v i c e s 的技术架构, 但又扩展了w e bs e r v i c e s 的应用。由于w e bs e r v i c e s 是相对较新的技术,许 多协议还在完善之中。为了使w e bs e r v i c e s 的应用更适合数据交换平台,本文 对各个实现环节进行讨论研究,得出最佳的数据交换效果。 最后,本文提出对数据交换平台,尤其是w e b 服务的的改进方案,例如:性 能、效率、安全体系等等。 关键词:数据交换平台、w e bs e r v i c e s 、s o a p 、w s d l 、u d d i 、s s l 、w s s e c u r i t y 基于w e bs e r v i c e s 的数据交换平台的研究 a k 移y 铷扫白 t i t l e :r e s e a r c ho nw e bs e r v i c e s b a s e dd a t ae x c h a n g ep l a t f o r m m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y n a m e :z h o u y i n gz h e n g s u p e r v i s o r :d i r e c t e db y v i c ep r o f e s s o rl i c h a n g s e n w e bs e r v i c e si st h ep r o d u c to ft h et h i r dt e c h n o l o g ic a lr e v o l u t i o n , i ns u c c e s s i o no fp ca n di n t e r n e t b a s e do nc u r r e n tm u l t i p l ep l a t f o r m s , w e bs e r v i c e sh a v en o t h i n gt od ow i t hb o t hc o m m o np l a t f o r m sa n dl a n g u a g e s i ti ss u c hak i n do ft e c h n o l o g yb yw h i c hd i f f e r e n tk i n d so fp l a t f o r m s a r ec o n n e c t e da n din t e g r a t e d t h eb a s i cf r a m eo fe - e n t e r p r i s ea p p l i c a t i o nf r a m ec a nd on o t h i n g w i t h o u tt h eb a s i cd a t a b a s e ,a n dt h ec o n s t r u c t i o n 。t h eo p e r a t i o no fe a c h b a s i cd a t a b a s ec a n n o td ow i t h o u tm u l t i d e p a r t m e n t s c o o p e r a t i o n ,c a n n o t d ow i t h o u ti n f o r m a t i o nr e s o u r c es h a r i n g t h ed a t ae x c h a n g ep l a t f o r mi s w h i c ht r a n s f o r m sd a t u mo fd a t a b a s et h r o u g ht h ed a t ae x c h a n g ep l a t f o r m t oa n o t h e rd a t a b a s e ,w h i c hr e a l i z e st h ed a t ai n t e g r a t i o n t h ep a p e rh a se x p l a i n e dt h ef r a m e w o r ko fw e bs e r v i c e s o nt h eb a s i s o fc o m p a r i n gw i t ht r a d i t i o n a li n f o r m a t i o ne x c h a n g et e c h o n o l o g y ,t h e p a p e r h a v ed i s c u s s e dt h ed a t ae x c h a n g ep l a t f o r mm o d e lb a s e dw e bs e r v i c e s f u r t h e r m o r e ,t h ep a p e rh a sp u tf o r w a r dt h e s o u l u t i o no fq u i c k l y i n t e g r a t i n ge n t e r p r i s ea p p l i c a t i o ns y s t e mb a s e do nt h ed a t ae x c h a n g e p l a t f o r m t h es o l u t i o n c r e a t e sn e wa p p l i c a t i o n sb yi n t e g r a t i n go l d a p p l i c a t i o n s ,w h i c he n t e r p r i s ec a np u t i tq u i c k l yt ot h em a r k e t a sa r e s u l t ,e n t e r p r i s en o to n l ye n h a n c e st h ee f f i c i e n c ya n ds a v e st h ec o s t , b u ta l s og a i n st h ev i c t o r yi nt h em a r k e tc o m p e t i t i o n t om a k e t h e a p p l i c a t i o no fw e bs e r v i c e st e c h n o l o g y s u i t a b l ef o rd a t ae x c h a n g e p l a t f o r m ,t h ep a p e rh a sd i s c u s s e d t h ed e t a i l so fr e a l i z i n gt h ep l a t f o r m , a n do b t a i n e dt h e b e s te f f e c t o nt h i sb a s i s ,t h i sp a p e rh a sp r o p o s e dt h es o l u t i o no fo fi m p r o v i n g t h ep i a t f o r m ,s u c ha so p ti m i z i n gp e r f o r m a n c e ,s t r e n g t h e n i n gs e c u r i t y , e t c i i 基于w e bs e r v i c e s 的数据交换、f 台的研宄 k e y w o r d s :d a t ae x c h a n g ep l a t f o r m ,w e bs e r v i c e s 、s o a p 、w s d l 、u d d i 、 s s l 、w s s e c u r i t y i l l 基于w e bs e r v i c e s 的数据变换、1 7 台的研究 引言 w e bs e r v i c e s 是当今i t 业界的焦点所在。继p c 和i n t e r n e t 之后,w e b s e r v i c e s 技术带来了计算机i t 技术的第三次革命。用“革命”这个词一点都不 夸张,w e bs e r v i c e s 革新了企业应用运作模式。 总的来说,w e bs e r v i c e s 与传统的w e b 应用技术的差异在于,传统的w e b 应用技术解决的问题是如何让人来使用w e b 应用所提供的服务,而w e bs e r v i c e s 则要解决如何让计算机系统来使用w e b 应用所提供的服务。即:让计算机系统能 够自动理解和调用w e b 服务。 w e bs e r v i c e s 的主要目标是在现有的各种异构平台的基础上构筑一个通用 的与平台无关、语言无关的技术层,各种不同平台之上的应用依靠这个技术层来 实旄彼此的联接和集成。应用催生了技术,技术推动了应用。这种革命性地集成 技术,使企业应用集成有了很大的发展。 任何一个企业要得以生存,要保持和提升竞争力,就必须有效集成企业内部 各种资源,实现业务系统实现彼此间安全、完整的信息共享与交换。传统的数据 集成需要耗费大量的人力物力,本文通过研究数据交换平台的实现,提出系统整 合新的解决方案。数据交换平台把一个数据库的数据通过数据交换平台转换到另 一个数据库,实现数据的集成。它使用w e bs e r v i c e s 技术跨平台、跨语言、易 于扩充的有点,构建了一序列的w e b 服务,使得企业可以快速整合现有的资源, 轻易实现新的业务应用,在市场竞争中赢得先机。 该解决方案应该是安全,性能卓越。而本文的目的就是希望能够构造出这样 一种方案,解决困扰企业业务集成的问题,从而快速构建新的应用,在市场竞争 中抢占先机。 可以预料,在将来,w e bs e r v i c e s 必定会得到进一步的发展。 捧于w e bs e r v i c e s 的数据交换1 f 台的研究 第1 章w e b 服务概念性体系结构 这部分对w e b 服务作为一种应用集成技术加以简要评论,定义w e b 服务 词并描述w e b 服务模型。 1w e b 服务概览 1 1w e b 服务 w e b 是为了程序到用户的交互,而w e b 服务是为程序到程序的交互做准 备。w e b 服务使公司可以降低进行电子商务的成本、更快的部署解决方案以及开 拓新机遇。达到这个新天地的关键在于通用的程序到程序通信模型,该模型应建 立在现有的和新兴的标准之上,例如,h t t p 、可扩展标记语言( e x t e n s i b l em a r k u p l a n g u a g e ,x m l ) 、简单对象访问协议( s i m p l eo b j e c ta c c e s sp r o t o c o l ,s o a p ) 、 w e b 服务描述语言( w e bs e r v i c ed e s c r i p t i o nl a n g u a g e ,w s d l ) 以及通用描述、 发现和集成( u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n di n t e g r a t i o n ,u d d i ) 。 w e b 服务使应用程序的集成比以前更快、更容易而且更便宜。集成在协议栈 中较高层发生,它基于更注重服务语义而不那么注重网络协议语义的消息,从而 实现了业务功能的松散集成。这些特性对于在企业之间和企业内部通过w e b 连 接业务功能是非常理想的。它们提供一种一致化编程模型,从而在企业内外都可 以利用通用的基础设旌并以一种通用的方法进行应用程序集成。利用现有的语言 和平台以及旧应用程序,可以以一种增量的方式来集成和应用w e b 服务。此外, w e b 服务遵循针对与耦合较紧的分布式或非分布式应用程序集成的标准。w e b 服 务是部署并提供通过w e b 访问业务功能的技术;j 2 e e 、c o r b a ,n e t 和其它标 准是实现w e b 服务的技术。 尽管w e b 服务早先是类似对等的并且是专用的,但它仍能解决程序到程序 通信的整个问题,包括描述、发布和查找接口。而且,随着w e b 服务的使用越 来越多以及行业的成熟,将会有更多的应用程序集成的动态模型发展起来。最终, 通过w e b 服务进行系统集成将会在运行时动态发生。即时集成将宣布通过因特 网进行企业到企业集成的新纪元的到来。 1 2w e b 服务的定义 基十w e bs e r v i c e s 的数据交换,f 台的研究 w e bs e r v i c e 是松散耦合的、可复用的软件模块,从语义上看,它封装了离 散的功能,在i n t e r n e t 上发布后能够通过标准的i n t e r n e t 协议在程序中访问。 丽1 r e bs e r v i c e s 是架构w e bs e r v i c e 的整体技术架构。t w 0 2 2 w e b 服务模型 w e b 服务体系结构基于三种角色( 服务提供者、服务注册中心和服务请求者) 之间的交互。交互涉及发布、查找和绑定操作。这些角色和操作一起作用于w e b 服务构件:w e b 服务软件模块及其描述。在典型情况下,服务提供者托管可通过 网络访问的软件模块( w e b 服务的一个实现) 。服务提供者定义w e b 服务的服 务描述并把它发布到服务请求者或服务注册中心。服务请求者使用查找操作来从 本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并 调用w e b 服务实现或同它交互。服务提供者和服务请求者角色是逻辑结构,因 而服务可以表现两种特性。图卜l 图示了这些操作、提供这些操作的组件及它 们之间的交互。 w s c a 0 1 】 圈1 1 w e b 服务角色、操作和构件 2 1 乳b 服务体系结构中的角色 服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看, 这是托管访问服务的乎台。 服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构 的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者 角色可以由浏览器来担当,由人或无用户界面的程序( 例如,另外一个w e b 服 务) 来控制它。 堪十w e b s e r v i c e s 的数据交换甲台的研究 服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们 的服务描述。在静态绑定开发或动态绑定执行期问,服务请求者查找服务并获得 服务的绑定信息( 在服务描述中) 。对于静态绑定的服务请求者,服务注册中心 是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。 同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述,例如本地 文件、f t p 站点、w e b 站点、广告和服务发现( a d v e r t i s e m e n ta n dd i s c o v e r yo f s e r v i c e s ,a d s ) 或发现w e b 服务( d i s c o v e r yo fw e bs e r v i c e s ,d i s c o ) 。 2 2w e b 服务体系结构中的操作 对于利用w e b 服务的应用程序,必须发生以下三个行为:发布服务描述、 查询或查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反 复出现。这些操作具体为: 发布。为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。 发布服务描述的位置可以根据应用程序的要求而变化( 请参阅“服务发布”以了 解更多细节) 。 查找。在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查 询所要求的服务类型( 请参阅“服务发现”以了解更多细节) 。对于服务请求者, 可能会在两个不同的生命周期阶段中牵涉到查找操作:在设计时为了程序开发而 检索服务的接口描述,而在运行时为了调用而检索服务的绑定和位置描述。 绑定。最后需要调用服务。在绑定操作中,服务请求者使用服务描述中的绑 定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。 2 3 w e b 服务的构件 服务。在这里,w e b 服务是一个由服务描述来描述的接口,服务描述的实现 就是该服务。服务是一个软件模块,它部署在由服务提供者提供的可以通过网络 访问的平台上。服务存在就是要被服务请求者调用或者同服务请求者交互。当服 务的实现中利用到其它的w e b 服务时,它也可以作为请求者。 服务描述。服务描述包含服务的接口和实现的细节。其中包括服务的数据类 型、操作、绑定信息和网络位置。还可能包括可以方便服务请求者发现和利用的 分类及其它元数据。服务描述可以被发布给服务请求者或服务注册中心。 w e b 服务体系结构解释了如何实例化元素和如何以一种可以互操作的方式 实现这些操作。 2 4w e b 服务开发生命周期 4 基于w e bs e r c i c e s 的数据交换平台的研究 w e b 服务开发生命周期包括了设计和部署以及在运行时对服务注册中心、服 务提供者和服务请求者每一个角色的要求。每个角色对开发生命周期的每一元素 都有特定要求。服务注册中心的开发和部署不在本文的范围以内。 开发生命周期有以下四个阶段: 1 构建 生命周期的构建阶段包括开发和测试w e b 服务实现、定义服务接口描述和 定义服务实现描述。可以通过创建新的w e b 服务、把现有的应用程序变成w e b 服务和由其它w e b 服务和应用程序组成新的w e b 服务提供w e b 服务的实现。 2 部署 部署阶段包括向服务请求者或服务注册中心发布服务接口和服务实现的定 义,以及把w e b 服务的可执行文件部署到执行环境( 典型情况下,w e b 应用程 序服务器) 中。 3 运行 在运行阶段,可以调用w e b 服务。在此,w e b 服务完全部署、可操作并且 服务提供者可以通过网络访问服务。现在服务请求者可以进行查找和绑定操作。 4 管理 管理阶段包括持续的管理和经营w e b 服务应用程序。安全性、可用性、性 能、服务质量和业务流程问题都必须被解决。 3w e b 服务协议栈 要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包 含每一层标准的w e b 服务协议栈。图1 - 2 展示了一个概念性w e b 服务协议栈。 上面的几层建立在下面几层提供的功能之上。垂直的条表示在协议栈中每一层必 须满足的需求。左面的文本表示协议栈的那一层所应用的标准技术。 图卜2 是概念性w e b 服务协议栈 w s c a 0 1 】: 皋十w e bs e r v i c e s 的数摧交换f 台的研究 图卜2 w e b 服务概念性协议栈 w e b 服务协议栈的基础是网络层。w e b 服务要被服务请求者调用,就必须是 可以通过网络访问的。因特网上可以公用的w e b 服务使用普遍部署的网络协议。 h t t p 凭借其普遍性,成为了因特网可用的w e b 服务真正的标准网络协议。w e b 服务还可以支持其它因特网协议,包括s m t p 和f t p 。内部网域可以使用可靠消 息传递和调用基础结构,如m q s e r i e s 和c o r b a 等等。 下一层是基于x m l 的消息传递,它表示使用x m l 作为消息传递协议的基 础。选择s o a p 作为x m l 消息传递协议有很多原因: 它是使用) ( m l 传送以文档为中心的消息以及远程过程调用的标准化封装机 制。 s o a p 很简单;它基本上是一个用x m l 信封作为有效负载的h t t pp o s t 。 s o a p 比对x m l 简单的h t t pp o s t 更受青睬,因为它定义了一个标准机制, 这个机制将正交扩展( o r t h o g o n a le x t e n s i o n ) 合并为使用s o a p 报头和对操作 或函数进行标准编码的消息。 s o a p 消息支持w e b 服务体系结构中的发布、查找和绑定操作。“基于x m l 消息传递的分布式计算”部分将更详细地描述这一层。 服务描述层实际上是描述文档的个协议栈。首先,w s d l 是基于x m l 的服 务描述的真正标准。这是支持可互操作的w e b 服务所需的最小标准服务描述。 w s d l 定义了服务交互的接口和结构。要指定业务环境、服务质量和服务之间的 壮 w e bs e r v i c e s 的数据交换i f 台的研究 关系,我们还需要另外的描述。w s d l 文档可以由其它服务描述文档来补充,从 而描述w e b 服务的这些更高级的方面。例如,描述业务环境除了使用w s d l 文 档,还要使用u d d i 数据结构。w e b 服务流程语言( w e bs e r v i c e sf l o wl a n g u a g e , w s f l ) 文档中则描述了服务组成和流程。 因为w e b 服务被定义为可以通过s o a p 从网络进行访问,并由服务描述表 示,所以该协议栈中的前三层需要提供或使用w e b 服务。最简单的协议栈将包 括网络层的h t t p 、x m l 消息传递层的s o a p 协议以及服务描述层的w s d l 。所有 企业间或公用w e b 服务都应该支持这种可互操作的基础协议栈。w e b 服务,特 别是企业内部或专用w e b 服务,能够支持其它的网络协议和分布式计算技术。 图卜3 描述了可互操作的基础协议栈。 图卜3 可互操作的基础w e b 服务协议栈 图卜3 中描述的协议栈提供了互操作性,它使w e b 服务能够利用现有的因 特网基础结构。这将使进入普遍存在的环境的成本非常低。灵活性并不会因为互 操作性需求而有所降低,因为我们可以为选择性和增值的技术提供另外的支持。 例如,我们必须支持h t t p 上的s o a p ,但也可以同时支持m q 上的s o a p 。 协议栈的最下面三层确立了保证一致性和互操作性的技术,而它们上面的两 层,即服务发布和服务发现,可以用多种解决方案来实现。 任何能够让服务请求者使用w s d l 文档的操作,不管它处于服务请求者生命 周期的哪个阶段,都符合服务发布的标准。该层中最简单、最静态的示例就是服 务提供者直接向服务请求者发送w s d l 文档。这被称为直接发布。电子邮件是直 接发靠的载体之一。直接发布对静态绑定的应用程序来说很有用。另外,服务提 基十w e bs e r v i c e s 的数据交换平台的研究 供者还可以将描述服务的文档发布到主机本地w s d l 注册中心、专用u d d i 注册 中心或u d d i 运营商节点。我们将在下一章的“服务发布”部分更详细地讨论各 种不同的服务发布机制。 因为w e b 服务如果没有被发布就不能被发现,所以说服务发现依赖于服务 发布。该层的各种发现机制和一组发布机制互相平行。任何允许服务请求者获得 对服务描述的访问权,并在运行时使应用程序能够使用该服务描述的机制都符合 服务发现的标准。最简单、最静态的发现的示例是静态发现,其中服务请求者从 本地文件获取w s d l 文档。这通常都是通过直接发布获取的w s d l 文档,或者前 面查找操作的结果。另外,也可以通过使用本地w s d l 注册中心、专用u d d i 注 册中心或u d d i 运营商节点在设计时或运行时发现服务。我们将在后面章节更详 细地讨论各种不同的服务发现机制。因为w e b 服务实现是一种软件模块,所以 通过组建w e b 服务来产生w e b 服务是很自然的。w e b 服务的组合可以扮演很多 角色之一。企业内部的w e b 服务可能会相互合作,从而对外显示出一个单独的 w e b 服务接口,或者,来自不同企业的w e b 服务可以相互合作,从而执行机器 到机器、企业到企业的事务。另外,工作流程管理者还可以在参与业务流程的时 侯调用每个w e b 服务。最上面一层,即服务流程,描述了如何执行服务到服务 的通讯、合作以及流程。w s f l 用于描述这些交互。w e b 服务这个主题在它自己 那一部分,即“业务流程、工作流程和w e b 服务”中有所描述。 该协议栈的最下面几层表示基础w e b 服务协议栈,它们相对于协议栈中上 面几层来说更成熟,也更标准。w e b 服务的成熟和采用将会带动协议栈中上面几 层和垂直条的开发和标准化。 基于w e bs e r v i c e s 的数据交换平台的研究 第2 章w e bs e r v ic e 5 的相关协议 本章主要针对w e bs e r v i c e s 协议栈中间部分的相关标准协议进行逐一讨论。 在讨论之前,我们不得不提x m l ,因为x m l 不仅仅是w e bs e r v i c e s 的数据交换 的标准格式,更是整个w e bs e r v i c e s 的基石。 1 瑚l 和x m ls c h e m a 可扩展的标记语言( x m l ) 是一种基于文本的语言,为w e bs e r v i c e s 提供了一 种简单,灵活并且标准的格式描述及交换数据。除了易于建立和易于分析外,x m l 主要的优点在于它既是平台无关的,又是厂商无关的。这些优点都得益于它具有 以下几个特点: 可扩展性:消息发布者可以根据应用的需要创建并使用自己的标签,而不 是h t m l 有限的标签集。 灵活性:x m l 提供了一种结构化的数据表示方式,使得数据内容与表示形式 相独立。 自描述性:x m l 文档通常包含一个文档类型声明,因而x m l 是自描述的,这 种表示方式真正做到了独立于应用系统。 1 2 蹦ls c h e m a x m l 解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有提 及怎样扩展这套数据类型。例如,整形数到底代表什么? 1 6 位,3 2 位,还是6 4 位? 这些细节对实现互操作性都是很重要的。w 3 c 制定的x m ls c h e m a ( x s d ) 就是 专门解决这个问题的一套标准。 x m ls c h e m a ( x s d ) 定义了一套标准的数据类型,并给出了一种语言来扩展这 套数据类型。w e bs e r v i c e 平台就是用x s d 来作为其数据类型系统的。当你用某 种语言。( 如v b n e t 或c # ) 来构造一个w e bs e r v i c e 时,为了符合w e bs e r v i c e 标 准,所有使用的数据类型都必须被转换为x s d 类型。 基于w e bs e r v i c e s 的数据交换平台的研究 2w e bs e r v i c e s 技术架构的重要规范 2 1s o a p ,调用w e b 服务 s o a p 的概念: s o a p ( 简单对象访问协议) 是一个轻量级的基于x m l 的协议,用来交换分 散在分布式环境中结构化和类型化的信息。【s o a p o l 】s o a p 是一种可扩展的、 基于x m l 的架构,所以具有x m l 的所有优点。它允许在不同对象之间通信,通信 双方无需事先了解对方或对方所在的平台。客户端应用程序可以在松耦合的环境 中互操作,以发现和动态地连接到服务,而这并不需要事先在应用程序与服务之 间建立一种协定。s o a p 为在一个松散的、分布的环境中使用x m l 对等地交换结 构化的和类型化的信息提供了一个简单且轻量级的机制。它本身并不定义任何应 用语义,如编程模型或特定语义实现,只是定义了一种简单的机制,通过一个模 块化的包装模型,以及对模块中的数据进行重编码表示应用语义。 s o a p 的消息框架: s o a p 消息由四部分组成: 一s o a pe n v e l o p e ( s o a p 信封) :它构造定义了一个整体的表示框架,可用于 表示在消息( m e s s a g e ) 中的是什么,谁应当处理它,以及这是可选的还是强制的。 所谓可选的就是可以由目标应用程序自己选择是否处理,而强制则是表明必须处 理,如果无法处理则需要返回错。 二 s o a pe n c o d i n gr u l e s ( s o a p 编码规则) :定义了一个数据的编序机制,通 过这个机制来定义应用程序中需要使用的数据类型,并可用于交换由这些应用程 序定义的数据类型所衍生的实例。例如可能应订单服务的需要,使用s o a p 编序 规则定义了订单的数据类型,并可以在订单生成的客户端与订单服务之间交换订 单实例。目前s o a p 编码规则已经渐渐被规范化为使用x m ls c h e m a 作为数据模型 的标准定义方式。 三s o a pr p cr e p r e s e n t a t i o n ( s q a pr p c 表示) :定义了一个用于表示远端过 程调用和响应的约定。也就是定义了如果使用s o a p 消息来表示传统的r p c 。 四 s o a pb i n d i n g ( s o a p 绑定) : 定义了一个使用底层传输协议( 比如h t t p 、 s m t p 等) 来完成在结点问交换s o a p 消息的约定。 下面详细介绍s o a p 协议的各个组成部分。 一s o a pe n v e l o p e ( s o a p 信封) : e n v e l o p e 构造定义了一个整体的表示框架,从编码结构上来看,结构如下: 基十w e bs e r v i c e s 的数据交换、卜台的研究 如图,s o a p 消息是由一个强制的s o a pe n v e l o p e 、一个可选的s o a ph e a d e r 和一个强制的s o a pb o d y 组成的x m l 文档。作为s o a p 消息的该x m l 文档将在本 规范的其余部分被引用。s o a p 消息应当包含如下部分: e n v e l o p e 是表示该消息的x m l 文档的顶级元素,是对s o a p 元素的封装。 h e a d e r 则是为了支持在松散环境下在通讯方之间尚未预先达成一致的情况 下为s o a p 消息增加特性的通用机制。它可以发送伴随s o a p 消息一起的元数据, 目的时给出方法调用或响应的上下文。例如可以放验证的信息。s o a p 定义了 些属性来用于指明谁可以处理该特性以及它是可选处理的还是强制处理的。 b o d y 为该消息的最终接收者所想要得到的那些必须处理的信息提供了一个 容器。此外,s o a p 定义了b o d y 的一个子元素f a u l t 用于报告错误。根据环境的 上下文,b o d y 具有三种不同形式。当s o a p 方法调用发生时,就会在s o a p 体中 返回计算结构或返回值。如果发生异常,就会通过s o a p 错误通知应用者,其中 包括了指明问题本质的一组错误字元素。 = s o a p 数据编码规则: s o a p 还定义了数据编码规则,称为基准编码或“s e c t i o n5 ”编码, 它是 出自s o a p 规范中描述数据编码规则的那一节内容。s o a p 编码的内容占了s o a p 幕于w e bs e r v i c e s 的数据交换f 台的酵 究 1 1 规范4 0 页中的大部分篇幅。s o a p 编码可以简短地描述成简单值或复合值的 集合。 简单值可以是简单类型,如整型、浮点型和字符型,或者是x m l 架构规范第 2 部中定义的内置类型,包括各种数据类型,如字节型数组和枚举。 复合值包括结构、数组和x m l 架构制定组定义的复杂类型。最后,s o a p 数 据编码指定了对象序列化规则,即通过网络排列和分散数据流的机制。这些 “s e c t i o r l5 ”编码在任何情况下都不是强制性的,这样客户端和服务器可阻自 由地使用不同的数据编码规范,只要它们符合格式就行。 三s o a p r p c : s o a p 消息本质上是一种从发送方到接收方的单向传输,但是s o a p 经常组合 到实现请求响应机制中。要让r p c 使用s o a p ,必须遵循几条规则。 l ,请求和响应消息必须被编码成结构类型。 2 对一个操作的每一个输入参数,都必须有一个同名元素( 或输入结构的 成员) 作为参数。 3 对每一个输出参数,都必须有一个名称匹配的元素( 或输出结构的成员) 。 四s o a pb i n d i n g : 从上面的w e bs e r v i c e s 协议栈图可以看出,s o a p 位于网络层和传输层之上。 作为标准的包装协议,s o a p 并不在乎使用什么样的传输协议来交换信息。它不 但可以支持常用的h t t p 、f t p 、t c p 、s m t p 、p o p 3 协议,甚至支持m q s e r i e s 和 j a b b e r 。这使得怎样使用s o a p 和在哪里使用s o a p 极为灵活。 s o a p 消息传递的简单过程 暂时忽略s o a p 消息传递路径的其他网络节点,我们只看服务提供者和请求 者之间是怎样通过s o a p 消息进行通信的。服务提供者和请求者都具有构建、解 析s o a p 消息的能力,以及在网络上通信( 接收、发送消息) 的能力。应用程序 与s o a p 的集成可以通过以下四个基本步骤来实现,如图: 基于w e bs e r v i c e s 的数据交换、f 台的研究 图2 2 s o a p 消息传递的简单过程 在图中,服务提供者的应用程序在( i ) 创建一条s o a p 消息。这条s o a p 消 息是调用w e b 服务操作的请求。服务请求者将此信息和服务提供者的网址一起 提供给s o a p 客户机。s o a p 客户机与一个底层网络协议( 例如h t t p ) 交互,然 后在网络上将s 0 a p 消息发送出去。 网络层在( 2 ) 将消息传送到服务提供者的s o a p 服务器。s o a p 服务器将请 求消息路由到服务提供者的w e b 服务。如果应用程序需要,s o a p 服务器负责将 x m l 消息转换为特定于编程语占的对象。这个转换由消息中的编码模式所控制。 w e b 服务负责处理请求信息并生成一个响应。该响应也是一条s o a p 消息。 响应的s o a p 消息在( 3 ) 被提供给s o a p 服务器,其目的地是服务请求者。 响应消息在( 4 ) 由服务请求者节点上的网络层接收。消息经过s o a p 层, 将x m l 消息转换为目标编程语言中的对象。然后,响应消息被提供给应用程序。 s o a p 消息不仅仅只有请求者和发送者,个完整的s o a p 消息传递路径,从 初始s o a p 发送者到最终接受者,中间还会经过一些中间节点对消息( 主要是对 h e a d e r 结构) 进行操作。下面给出s o a p 消息核心交换模型。 s o a p 消息核心交换模型: 一个s o a p 消息从根本上来说就是从发送者向一些中间处理器进行的单向消 息传递,而中间处理器会按次序对消息进行操作。好比u n i x 中的管道,一个程 序的输出是另一个程序的输入,如此类推,可以得到需要的最终结果。这是一个 非常有用、且极其适合分布式计算环境的一个机制。其中,每个处理s o a p 的结 点正是表现为一个w e b 服务,这些w e b 服务通过s o a p 消息完成了交互和远程调 用,s o a p 为调用w e b 服务提供了一个基本的消息调用机制。 一个s o a p 中间介( i n t e r m e d i a r y ) 是一个经过特殊设计的w e b 服务,它位 于服务消费者和服务提供者之间,为消费者和提供者之间的事务处理提供增值服 务。s o a p 消息穿过的所有s o a p 中间介构成了一条消息路径。消息路径上的每一 个中间介被称为a c t o r 。每个a c t o r 的处理过程如下: 接受到s o a p 消息。 找到并标识该s o a p 消息中所有为该应用程序设置的部分。 校验该消息在前步中获得的被标识的部分中所有的必须处理的部分,并处 理这些部分。如果这部分的内容不符合双方约定的默认定义,则丢弃该消息。如 果在第一步中获得的可选部分不会影响处理的结果,处理器可以忽略这些可选部 分。 如果该s o a p 应用程序不是该消息的最终目的地,则在该消息中删除所有在 第一步中标识的部分,如果有必要的话,附加上处理的结果部分,并转发该消息。 犟十w e bs e r v i c e s 的数据交换f 台的研究 s o a p 消息是从发送方到接受方,一般会和实现模式相结合,例如请求响应 的来回消息模式。s o a p 实现可以与多种协议绑定。例如,通过s o a ph t t p 绑定, 就可以将s o a p 响应消息通过h t t p 响应来传输,此时,请求和响应使用同一个 h t t p 的连接。无论s o a p 是与哪种协议绑定,消息都可以通过消息路径来指定路 线发送,消息路径机制使消息在到达最终目的地之前可以在一个或多个中问介上 处理。我们可以看出,s o a p 消息交换中需要建立一条消息路径。但是s o a p 规范 没有说明消息路径的建立( 关于消息经过哪些节点的定义) 。只说明了在处理过 程中需要对消息进行路由。这使得实现s o a p 消息路径非常困难,因为没有一张 标准的方法表示路径。m i c r o s o f t 为解决这个问题提出了建议方案:s o a p 路由协 议( w s r o u t i n g ) 。 s o a p 路由协议( w s r o u t i n g ) : w s r o u t i n g 是一个无状态协议,通过定义一个方法来说明一个预先设计好 的路由或传输路径,这个路径将从消息源,经过若干中间介,最后到达消息的最 终接受者。w s r o u t i n g 的设计目标是尽量采用最小的额外代价,将一个消息路 径封装在s o a p 消息里,以使得这个消息包含了足够的消息,用于在i n t e r n e t 上 使用诸如t c p 、u d p 这样的协议来传输消息。为了表示路由,w s r o u t i n g 定义了 一个新的s o a p h e a d e r 条目,这个条目的元素名为“p a t h ”,同时,在这个元素 中还包含了一系列的子元素。 代表消息源的“f r o m ”元素 代表消息最终接受者的“t o ”元素 包含正向消息路径的“f w d ”元素 包含反向消息路径的“r e v ”元素 w s - r o u t i n g 通过定义“r e v ”元素,从而允许双向的消息交换。“f w d ”和 “r e v ”元素都包含“v i a ”元素,用于描述每一个消息中间介,而“f w d ”和“r e v ” 元素包含的其他元素则用于定义消息的标志、相关性和目的。当一个消息沿着传 输路径被传输时,沿着传输方向的每一次前一都会把相关的“v i a ”元素从“f w d ” 路径转移到“r e v ”路径中去,如此就能动态地建立一条返回发送者的传输路径。 除了这个消息处理规则外,w s r o u t i n g 还需要处理一些其他的传输处理细节, 比如网关、路由相关的s o a pf a u l t 等。需要注意的是,w s r o u t i n g 是一个对s o a p 协议的第三方扩展,并不是每一个s o a p 处理器都支持改协议。 s o a p 协议的优势与不足: 优势: s o a p 是利用x m l 等普遍存在的标准实现了软件系统之问跨平台的瓦操作性。 基于w e bs e r v i c e s 的数据交换、p 台的研究 s o a p 在8 0 端口上通过h t t p 来发送。其他技术需要在企业内的防火墙建立 一个潜在危险的端口,这是其他技术最大的缺点。 s o a p 消息描述了消息负载中的每个数据元素,这样就可以很容易地诊断可 能出现的问题。 不足: 对象调用:s o a p 规范没有定义如何创建对象实例。 垃圾回收:s o a p 规范没有定义不再需要时如何销毁对象,也没有定义如何 从内存中去除对象。 安全性:s o a p 规范没有讨论安全性,但是在其他协议可以实现这个要求。 验证:s o a p 规范没有提及整个特点。但是众多技术都可以实现验证。 2 2w s d l

温馨提示

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

评论

0/150

提交评论