已阅读5页,还剩68页未读, 继续免费阅读
(计算机软件与理论专业论文)基于web+services的rpc体系结构的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于w e bs e r v i c e s 的r p c 体系结构的研究 学科:计算机软件与理论 研究生签字:,害立 指导教师签字: , 认啪暑翻纱杪叭钒 摘要 w e bs e r v i c e s ( w e b 服务) 是基于网络的、分布式模块化组件,是建立可互 操作的分布式应用程序的新平台。w e b 服务作为新一代分布式技术,一经推出, 便以它的松散耦合性、跨平台及语言性而得到广大用户的喜爱和众多企业的支 持。其关键技术x m l 、s o a p 又引发了远程过程调用( r p c ) 的新一轮发展。 w e bs e r v i c e s 在不同系统平台之间具有互操作性,同时通过i n t e m e t 实现不 同应用程序之间的远程过程调用( r p c ) 。它使用基于x m l 的消息处理作为基 本的数据通信方式,消除使用不同组件模型、操作系统和编程语言的系统之间存 在的差异,使异类系统能够作为单个计算网络协同运行。 本论文将主要研究基于x m l 的r p c ,即基于x m l 的远程过程调用,定义 了使用h t t p 进行远程通信的标准和规范。它简单而易实现,可用来替代其它较 庞大、复杂的分布式计算机制。本文对比了常用的几种分布式实现技术,分析了 传统的c o r b c o m 通信模型的不足,引入并阐述了r p c 的工作原理以及r p c 调用机制:研究了基于s o a pr p c 的体系结构模型及其工作原理;提出并设计 了一种以s o a pr p c 为通信协议,以w e b 服务为框架的分布式组件之间的通信 模型的分布式体系结构模型。 关键词:w e bs e r v i c e s :r p c ;x m l r p c ;s o a pr p c s t u d yo fr p cs y s t e ms t r u c t u r e b a s e do n 纬台bs e r v i c e s d i s c i p l i n e :c o m p u t e rs o f t w a r ea n dt h e o r y s t u d e n ts i g n a t u 阳:撕慨 s u p e r v i s o r s i g n a t u r e :油锣咖锣秒肌 a b s t r a c t w e bs e r v i c e si sd i s t r b u t e da n dm o d u l a d z e d c o m p o n e n t b a s e do n n e t w o r k ,c o n s t r u c t i n gan e wi n t e r o p e a b l ea p p l i c a t i o np r o g r a mp l a t f o r m a san e w g e n e r a t i o no fd i s t r i b u t e dt e c h n i q u e ,w e bs e r v i c e si sf a v o u r e db yal a r g en u m b e ro f i n d i v i d u a lu s e r sa n de n t e r p r i s e sf o ri t s l o o s e l yc o u p l e df e a t u r e ,m u l t i - p l a t f o r m a p p l i c a t i o na n dl a n g u a g en a t u r e an e w r o u n dd e v e l o p m e n to fr p ch a sb e e ni n d u c e d b yi t sk e yt e c h n i q u en a m e l y , x m l ,s o a p t h em o s ts i g n i f i c a n td i f f e r e n c eb e t w e e nw e bs e r v i c e sa n dt r a d i t i o n a lw e b a p p l i c a t i o nt e c h n i q u ei st h a tt h ep o i n tt h el a t e rf i x a t e so i li sh o wp e o p l eb e n e f i tf r o m t h es e r v i c e sd e l i v e r e db yw e ba p p l i c a t i o nt e c h n i q u e s w h e r e a s ,w e bs e r v i c e sf o c u s e s o nh o wt om a k ec o m p u t e rs y s t e mu s et h es e r v i c e sf r o mw e ba p p l i c a t i o nt e c h n i q u e w e bs e r v i c e sr e a l i z e si n t e r o p e r a b i l i t yw i md i f f e r e n ts y s t e mp l a t f o r m sa n dr p cw i t h d i f f e r e n t a p p l i c a t i o np r o g r a m st h r o u g hi n t e r a c t w e b s e r v i c e su s e s m e s s a g e p r o c e s s i n gw h i c hi sb a s e do nx m la si t sf o u n d a m e n t a ld a t ec o m m u n i c a t i o n m o d e ,e l i m i n a t i n g t h ed i f f e r e n c e si n c o m p o n e tm o d e l s ,o p e r a t i n gs y s t e m s ,a n d p r o g r a m i n gs y s t e m s ,t om a k ed i f f e r e n ts y s t e m so p e r a t ec o o r d i n a t i v e l ya si n d i v i d u a l c a l c u l a t i o nn e t w o r k b a s e do nx m lr p cd e f i n e st h es t a n d a r da n ds p e c i f i c a t i o no f r e m o t e c o m m u n i c a t i o nt h r o u g hh t t p w e bs e r v i c e si ss i m p l ea n de a s yt or e a l i z e ,a n dc a nb e u s e dt or e p l a c eo t h e rh u g ea n dc o m p l e xd i s t r b u t e dc o m p u t i n gm e c h a n i s m s t h i sp a p e r f o c u s e so nt h ew e bs e r v i c e st e c h n i q u e s ,p r o p o s i n ga n dd e s i g n i n gs t r u c t u r em o d e l s b a s e do ns o a p r p c ,v e n i f i n gi tw i t hap r a c t i c a le x a m p l e k e yw o r d s :w e bs e r v i c e s ;r p c ;x m l r p c ;s o a pr p c 学位论文知识产权声明 学位论文知识产权声明 本人完全了解西安工业大学有关保护知识产权的规定,即:研究生在校攻读学位期间 学位论文工作的知识产权属于西安工业大学。本人保证毕业离校后,使用学位论文工作成 果或用学位论文工作成果发表论文时署名单位仍然为西安工业大学。大学有权保留送交的 学位论文的复印件,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用影印、缩印或其他复制手段保存学位论文。 ( 保密的学位论文在解密后应遵守此规定) 学位论文作者签名:耋虹 指导教师签名: 日期:2 0 09 、4 、2 8 7 0 学位论文独创性声明 学位论文独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的学位论文是我个人在导师 指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,学位论文中不包含其他人已经发表或撰写过的成果,不包含本人已申请学位或他人 已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了致谢。 学位论文与资料若有不实之处,本人承担一切相关责任。 学位论文作者签名:未虹 指导教师签名:电钐乏一 日期:二加扩,年牙 7 1 1 绪论 1 1 选题背景及其意义 l 绪论 随着i n t e m e t 和w e b 技术的不断发展,不同组织之间数据的交互越来越多,业务互联 互通的需求也越来越多。但是目前各个组织所使用的系统往往是采用不同的平台和技术构 建的,在这些异构的系统之间很难实现资源的共享。 显然这对于分布式异构环境中应用系统之间的互操作提出了新的挑战。分布式组件模 型具有跨平台、跨语台以及易扩展等优点,企业希望通过多种,硬件平台的异种类型组件 之间的通信,能够再利用数以万计可供选择的组件来迅速的构造一个应用系统。但是,目 前主要的分布式组件规范c o r b a , d c o m ,r m i 等模型要求在对等体系结构间才能进行 通信,都需要在服务器端和客户端有明确的、同类型的对象模型协议,造成不同类型的组 件之间很难进行互操作。 我们知道,网络和分布式程序设计的基础是不同主机间的数据交换。对于程序员来说, 采用必须熟悉包括底层通信协议在内的显性编程方法是不现实的。r p c ( r e m o t ep r o c e d u r e c a l l ) 即远程过程调用在传输层上实现了一种逻辑的客户服务器通信系统,为网络中不同 主机间提供了一种高级的通信方法。它允许透明地调用一个远程过程,这与人们所熟悉的 本地过程调用相似。在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限 在本地运行的一段代码,也即其主程序和过程之间的运行关系是本地调用关系。这种模式 为程序员所熟知但它不适于网络和分布式系统。众所周知,传统过程调用模式无法充分利 用网络上其他主机的资源( 如c p u ,m e m o r y 等) ,也无法提高代码在实体间的共享程度, 使得主机资源大量浪费。而r p c 编程,很好地解决了传统过程所存在的一系列弊端。 r p c ( r e m o t ep r o c e d u r ec a l l ,远程过程调用) 是支持分布式应用系统之间通讯的一种重要机 制。r p c 技术采用软件代理的模式,实现位于不同地址空间的执行程序之间的通讯。r p c 技术的提出,使得协同工作的应用程序可同时分布于多台主机上,方便地实现了跨越多个 操作系统、多种网络协议的应用程序的开发,提高了网络上主机资源的共享性。 但是传统r p c 技术中,通信双方必须使用同一种机制。如果客户端使用的是o n c r p c 技术,那么服务器端就要有相应的可以解析x d r 数据的编译器对接受到的信息的 解析方式要按照o n cr p c 调用的消息格式。同样对于使用d c e r p c 的客户端发出的调 用请求,服务器需要清楚d c er p c 的机制。 而基于x m l 的r p c 技术采用x m l 描述远程过程调用的接口和参数,利用x m l 的 可伸缩性来包装和交换r p c 调用的相关信息。由于x m l 具有平台环境无关性、可扩展 1 西安工业大学硕士学位论文 性好、自描述性、结构化和标准化等特点,与传统r p c 技术相比,基于x m l 的r p c 技 术具有更为通用的编码形式,支持更加灵活的用户自定义数据类型的映射,能够更有效地 实现跨越不同软硬件平台的应用系统之间的互理解和互操作,为解决由于语言、系统软 件、协议、数据等差异所造成的高代价的应用系统集成奠定基础。 本文主要针对w e b 服务中的远程过程调用,即s o a pr p c 机制进行研究,以实现不 同平台间的数据交换。对w e b 服务平台上s o a pr p c 技术的研究对w e b 服务技术自身发 展具有重大的研究意义。 1 2 相关课题研究现状 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用r p c 来“远程 执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。 事实上,一个r p c 应用分为两个部分:s e r v e r 和c l i e n t 。s e r v e r 提供一个或多个远程过程; c l i e n t 向s e r v e r 发出远程调用。s e r v e r 和c l i e n t 可以位于同一台计算机,也可以位于不同 的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的s t u b 和运 行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。 远程过程调用( r p c ) 是随着网络和分布式系统的发展而发展起来的。它出现在2 0 世 纪8 0 年代。它是从一个系统( 客户主机) 上的某个程序调用另一个系统( 服务器主机) 上的某 个函数的一种方法,是作为显式网络编程的替换方法之一开发的。广义地说,远程过程调 用是在客户和服务器之间传递一些信息( 被调用函数的参数与返回值) 。而且这一现象可用 在同一主机上的客户和服务器之间,因此网络与u n i x 专家s t e v e n s 先生认为r p c 是另一 种形式的消息传递,我们可以把它看作是进程间通信( i p c ) 的一种方式【l j 。 i p c c i n t e r p r o c e s sc o m m u n i c a t i o n ) 传统上是u n i x 中一个杂乱不堪的领域。虽然有了各种各样 的解决方法,但没有一个是完美的。相对于管道、消息队列、共享内存等其它进程间通信 来说,r p c 具有即可在同一主机也可在不同主机间完成进程间通信的任务。与此同时, r p c 对程序员隐蔽客户机服务器之间底层通信的交互细节,对于开发分布式应用来说, r p c 是一种必不可少的技术。远程过程调用( i 冲c ) 同时也是网络安全的核心【2 j ,目前,r p c 的研究是信息技术的热点之一,基于r p c 的应用程序开发方兴未艾。r p c 机制的实质是 实现o s i 七层模型中的会话层功能,它在两个试图进行通信的场点之间建立一条逻辑信 道( 即会话连接) ,并利用这个信道交换信息,不用时就释放连接 3 1 。 最早的关于r p c 的论述是1 9 8 1 年n e l s o n 的毕业论文,1 9 8 4 年,b i r r e l l 和n e l s o n 把 其用于支持异构型分布式系统间的通讯。b i r r e u 的r p c 模型【4 j 引入存根进程( s t u b ) 作为远 2 西安工业大学硕士学位论文 程过程的本地代理。这样就屏蔽了网络调用所涉及的许多细节。后来开发的r p c 基本采 用这一模式。到八十年代中期之后,关于这方面的研究开始升温,开发了若干r p c 机制, 其中较为著名的有s u nm i c r o s y s t e m 公司定义的s u nr p c ,x e r o x c o u r i e r , a p o l l or p c 等。 这些r p c 绝大多数是同步的。 当w e bs e r v i c e s 兴起后,x m l ,s o a p 等相关技术又使r p c 有了更大的发展及其更 广的应用。目前基于x m l 的r p c 技术主要有两个代表:u s e d a n ds o f t w a r ei n c 的x m l r p c 和w3 c 联盟的s o a pr p c 。x m l r p c 是最早推出的使用h ”四做为传输协议、x m l 做 为编码规则的远程过程调用,简单有效是其最大特点。 s o a p 协议的出现,为不同的分布式组件对象之间的数据通信提供一种跨平台、跨语 言的标准,从而为实现不同类型的分布式组件之间的功能互用提供了另外一种更为可行的 实现方式。 s o a p 协议是w 3 c 组织提出的基于i n t e m e t 的简单对象访问协议,是一个基于x m l 的在分散或分布式的环境中交换信息的简单的协议,它提供了一种简单轻量的用于分布式 组件对象之间进行通信的标准,可以作为是c o m d c o m 和c o r b a 对象进行通讯的协 议。使用s o a pr p c 可以实现在垂直应用层面上c o r b a ,d c o m 技术的水平整合,能 够更好的集成c o r b a 和d c o m 为一个整体。 1 3 论文组织 本文以不同组件之间的通信为例,研究分布式组件之间通过s o a p 协议进行互操作 的原理和实现方案。 本文共分为七章。 第l 章:绪论。概述了论文的选题背景、意义及r p c 研究的现状,概括了论文的组 织结构。 第2 章:介绍w e bs e r v i c e s 体系结构,及其工作原理;并介绍了w e b 服务的关键技 术。 第3 章:分布式对象的研究。介绍并对比常用的几种分布式实现技术,通过分析传统 的c o r b a c o m 通信模型的不足,简单介绍了远程过程调用的分布式对象技术。 第4 章:阐述了r p c 的工作原理以及r p c 调用机制;并引入了在w e bs e r v i c e s 平台 中基于x m l 的r p c 技术,分析比较了两种主要的基于x m l 的r p c 技术。 第5 章:提出了本文基于s o a pr p c 的解决思路;给出基于s o a pr p c 的体系结构 模型及其工作原理;在以上解决思路的基础上,叙述了基于s o a pr p c 的实现方案。 3 西安工业大学硕十学位论文 第6 章:给出了s o a p 在r p c 中的应用示例; 第7 章:结论:总结全文,并指出自己的工作中还需要进一步解决的问题。 4 2w e bs e r v i c e s 综述 2w r e bs e r v i c e s 综述 w e bs e r v i c e s ( w r e b 服务) 定义了应用程序如何在i n t e m e 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 bs e r v i c e s 中的s o a p 通讯协议进行了分析。 2 1w e bs e r v i c e s 体系结构 2 1 1w e b 服务的定义 简单来说,w e bs e r v i c e s 就是一个向外界暴露出的能够通过i n t e r a c t 进行调用的a p i 或者说应用程序。我们能用一般的编程方法通过i n t e m e 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 bs e r v i c e s 是一种部署在w e b 上的对象,它们具有对象技术所承诺的所有优点, 同时,w e bs e r v i c e s 建立在以x m l 为主的、开放式的w e b 规范技术基础上,因此具有比 任何现有的对象技术更好的开放性,是建立可互操作的分布式应用程序的新平台1 ) j 。该平 台是一套标准,它定义了应用程序如何在w e b 上实现互操作性,我们可以用任何语言, 在任何平台上编写所需要的w e bs e r v i c e s 。对于w r e b 服务,i b m 的定义是 6 1w e b 服务是 新一代的w e b 应用,它们是自包含、自描述的模块化应用,能够通过w e b 被发布、定位 和调用。一旦一个w e b 服务被发布,其他应用或者其他w e b 服务就可以发现和调用这个 服务。微软给出的定义则是:一个w e b 服务是为其他应用提供数据和服务的逻辑应用单 元。应用程序通过统一的w e b 协议和数据格式( 例如:h t t p ,x m l 和s o a p ) 访问w e b 服务,不需要关心任何实现细节。 从本质上看,w e bs e r v i c e s 并不是一种全新的体系,它只是一种基于x m l 的革新技 术,能够通过网络标准协议调用的自描述的、自包含的模块应用。它拥有基于组件开发模 型和w e b 的优点,是一种部署在w e b 上的对象组件。w e b 服务接口隐藏了服务的所有实 现细节,使得服务的访问可以与硬件、软件平台、实现语言无关。 w e bs e r v i c e s 作为一种部署在w e b 上的组件,它与传统意义上的组件又有以下区别。 在调用组件应用功能时,传统的组件技术全部使用对象模型专用的协议,比如d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 、r m i ( r e m o t em e t h o di n v o c a t i o n ) 和i i o p ( i n t e m e t 5 西安工业大学硕士学位论文 i n t e r - o r bp r o t o c 0 1 ) 等。虽然这些协议在建立特定应用时,效率比较高,但整个系统的灵 活性同时也受到了限制,而它们所采用的紧密耦合结构限制了单个构件的可重用性,特别 当应用到w e b 环境中,它们的缺点体现得更为明显,这些协议采用的通讯信道往往受到 防火墙和代理服务器等安全措施阻碍,导致无法正常工作。 为了克服这些局限性,w e b 服务使用了普及、开放的标准协议,w e b 服务技术核心 是一些基于x m l 的标准:s o a p ( s i m p l e0 b j e c ta c c e s sp r o t o c 0 1 ) 、w s d l ( w e bs e r v i c e s d e s c r i p t i o nl a n g u a g e ) 、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 ) 。他们共同 的特点是比较简单,易于实现,且为业界所遵守。因此,w e b 服务是对一些己经存在的 技术如h t t p ,s m t p 和x m l 的包装,它是基于现有技术的一种整合。在w e bs e r v i c e s 体 系中,服务提供者和服务客户只需要理解以x m l 形式传输的消息即可,由于x m l 的平 台无关性,使得w e b 服务成为一种独立于平台的、部署于w e b 上的组件,因而较传统的 组件对象而言,w e bs e r v i c e s 可以获得更好的互操作性。 2 1 2w e b 服务的模型7 1 嘲9 1 w e bs e r v i c e s 是独立的、模块化的应用,能够通过网络,特别是w w w 来描述、发 布、定位以及调用。w e bs e r v i c e s 的体系结构基于三种角色:服务提供者( s e r v i c ep r o v i d e r ) 、 服务请求者( s e r v i c er e q u e s t e r ) 和服务注册中一5 , ( s e r v i c er e g i s t r y ) 。三种角色互相交互,涉 及到发布( p u b l i s h ) ,绑定( b i n d ) 和查找( f i n d ) 的操作。这些角色和操作一起作用于w e b 服 务构件:w e b 服务软件模块及其描述。在典型情况下,服务提供者定义w e b 服务的服务 描述并把它发布到服务请求者或服务注册中心,托管可通过网络访问的软件模块。服务请 求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供 者进行绑定并调用w e b 服务实现或同它交互。服务提供者和服务请求者角色是逻辑结构, 因而服务可以表现两种特性。图2 1 表示了这些操作、提供这些操作的组件及它们之间的 交互。 s o a p 臌务滑;l l 图2 1 w e bs e r v i c e s 的体系结构 6 西安工业大学硕士学位论文 w e b 服务的实现包括服务描述、发布和实现。w s d l 作为服务描述语言,u d d i 注册中心作为服务发布和发现的方式,x m l ,s o a p , 哪作为消息传递的格式和协议。 对于利用w e b 服务的应用程序,必须发生以下三个行为:发布服务描述、查询或 查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反复出现。这些 操作具体为: 发布( p u b l i s h ) :提供w e b 服务注册或者宣传的功能,是服务提供者与服务注册 处的之间的操作。 发现( d i s c o v e r y ) :和发布相对的功能,是服务请求者与服务注册处之间的操作。 服务请求者描述比如服务名称、服务类型等的搜索规范,服务注册处从已经发布的 w e b 服务中寻找与搜索规范相匹配的w 曲服务。 绑定( b i n d ) 调用:决定服务请求者与服务提供者运行时的关系,是两者之间交互的 操作。 面向服务的体系结构的关键在于服务描述,因为服务提供者用服务描述语言来描述 服务所提供的功能,并且把他发布到服务注册中心:服务请求者在服务注册处寻找实现某 种功能的服务描述,并且根据他的内容来绑定,调用w e b 服务并且处理其相应结果。 2 1 3w e bs e r v i c e s 运行机理 实现一个完整的w e b 服务包括以下步骤: w e b 服务提供者设计实现w e b 服务,并将调试正确后的w e b 服务通过w e b 服务 中介者发布,并在u d d i 注册中心注册; w e b 服务请求者向w e b 服务中介者请求特定的服务,中介者根据请求查询u d d i 注册中心,为请求者寻找满足请求的服务; w e b 服务中介者向w e b 服务请求者返回满足条件的w e b 服务描述信息,该描述 信息用w s d l 所写,各种支持w e b 服务的机器都能阅读; w e b 服务请求者根据w e b 服务中介者返回的描述信息生成相应的s o a p 消息,发 送给w e b 服务提供者,以实现w e b 服务的调用; w e b 服务提供者按s o a p 消息执行相应的w e b 服务,并将服务结果返回给w e b 服务请求者。 2 1 3w e b 服务协议栈 为了实现一个完整的w e bs e r v i c e s 体系,需要有一系列的协议规范来支撑,图2 2 展 7 西安工业大学硕士学位论文 示了w 曲s e r v i c e s 协议栈的内容和层次结构【5 1 。 q w s f lls e 州c eh o w i s t a 如u d d l d i 暇t u d d i w s d l s o a p l f n 卫同翟c m a i l m q ,i i o p , e t c 图2 2 展示了w e bs e r v i c e s 协议栈 ( 1 ) 网络传输层( c o m m u n i c a t i o n s ) w e bs e r v i c e s 协议栈的基础是网络传输层。w e bs e r v i c e s 要被服务请求者调用,其前 提是可以通过网络访问。i n t e m e t 上可以公用的w e bs e r v i c e s 使用普遍部署的网络协议。 h t t p 凭借其普遍性,成为了i n t e m e t 可用的w e bs e r v i c e s 真正的标准网络协议。w e b s e r v i c e s 还可以支持其它i n t e m e t 协议,如s m t p 和f t p 。 ( 2 ) 消息层( m e s s a g e s ) 在这一层次,使用的是基于x m l 的消息协议s o a p 。消息层是构筑在更低的传输层 之上的,这意味着s o a p 可以单独使用,也可以与任何传输协议联合使用。所有的s o a p 消息都支持我们先前提到的w e bs e r v i c e s 架构中的发布、绑定、查找等操作。 ( 3 ) 服务描述层( d e s c r i p t i o n s ) 服务描述层( w s d l ) 实际上是描述文档的一个协议栈。w s d l 是基于x m l 的服务描 述的真正标准,它定义了服务交互的接口和结构。 ( 4 ) 工作流层( p r o c e s s e s ) 本层包括服务的发现和整合。 其中服务发现是基于服务发布的。服务客户端可以在运行时获取服务描述。例如,服 务客户端可以获取一个以本地文件形式存在的w s d l 文档,这个w s d l 文档是通过直接 发布手段发布的。这一操作被称为静态发现。同时,也可以实现动态发现,即服务客户端 可以选择在设计阶段或运行时通过一个本地w s d l 注册库或公共,私有的u d d i 注册中心 发现w s d l 文档。 w e bs e r v i c e s 相关技术正在迅速演化中,随着一些新的w e bs e r v i c e s 标准被开发出来, r 西安工业大学硕十学位论文 上述基本的w e bs e r v i c e s 协议栈会不断增加新的内容。 2 2w 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 的规范和技术都很多,具体使用 到哪些技术,并且这些技术在系统中要使用到的技术要点以及各自起什么作用都将在下面 作介绍。 2 2 1w e bs e r v i c e s 的基础一x m l e x t e n s i b l em a i k u pl a n g u a g e ( x m l ) 是由国际标准i s o8 8 7 9 所定义的s g m l 所衍生出 来的子集合。自从1 9 9 8 年2 月w 3 c 公布x m l1 0 的版本之后,原本只是单纯用来解决 s g m l 过于复杂难用及h t m l 扩充性不足的问题,很快地它就被视为未来电子商务能否 成功的关键之一。x m l 没有s g m l 太过复杂难用的缺点,并且更适合应用在网络上。x m l 能提供许多可行的方案,整合不同的技术,由于具有易读易懂的特性,很容易被学习和使 用。x m l 文档是有明确语义并且是结构化的,是种通用的数据格式。从低级的角度看, x m l 是种简单的数据格式,是1 0 0 的a s c i i 文本,而a s c i i 的抗破坏能力是很强的。 不象压缩数据和j a v a 对象,只要破坏一个数据文件数据就不能阅读。从高级的角度看, 它是种自描述语言。 x m l 是w e bs e r v i c e s 体系的基础,是因为x m l 是w e bs e r v i c e s 的消息编码s o a p 、 服务描述语言w s d l 和u d d i 信息模型的格式;同时x m l 这种与平台无关的数据格式 保证了w e bs e r v i c e s 的异构平台互操作性。 一个格式正规的x m l 文档通常由三个部分组成【1 9 】:一个可选的序言( p r o l o g ) ;文档 的主体( b o d y ) ,由一个或多个元素组成,其形式为一个可能也包含字符数据的层次树; 可选的尾声( e p i l o g ) ,其内容包括注释、处理指令和紧跟元素树后面的空白,这当中只有 文档的主体部分是必须的。 1 ) x m ls e h e m a l l l l1 1 2 1 | 1 3 1 : s e h e m a ( x s d ) 规定了x m l 文档的逻辑结构,规定了x m l 文件中的元素、元素的属 性以及元素和元素的属性之间的关系,可以帮助x m l 分析程序校验x m l 文件标记的合 法性,s c h e m a 允许把内容类型定义为整型、浮点型、数据型、布尔型等多种数据类型。 它为一类文档建立了一个模式,规范了文档中的标签和文本可能的组合形式。 2 ) x s l t ( x s lt r a n s f o r m a t i o n s ,x s l 变换) : x s l t 是一种描述将x m l 的一种结构变换为x m l 的另一种结构的标准方法。x s l t 9 西安t 业大学硕十学位论文 是和x s l 一起工作的x m l 处理标准,适用于对基于x m l 的文档的数据结构进行转换, 它可以把任意一个x m l 文档转换成另外一个x m l ,h t m l 或p d f 的文档。 3 ) x m l 命名空间: 与其它编程语言类似,为解决x m l 文档中各元素的名字可能出现重复的问题,x m l 引进了命名空间的概念。命名空间对x m l 非常重要,如果没有它,x m l 的应用范围将 会大大受限制。 x m l 命名空间是解决多义性和名字冲突问题的方案。它的设计思想非常直接,如果 每套x m l 词汇都有一个独一无二的标志来代表,并且和其中的元素属性名字连在一起使 用,则不会出现上述问题,因为每个词汇都被它的独特的标志限定。 2 2 2w e bs e r v i c e s 的调用一s o a p 该技术应该是本文最为关注的技术了。 s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c o l ,简单对象访问协议) 是一种基于x m l 的不 依赖传输协议的表示层协议,用于在分散或分布环境中交换结构化和类型信息的机制。在 s o a p 的下层,可以是h t t p h t t p r ,也可以是s m t p p o p 3 ,还可以是为一些应用而专 门设计的特殊的通信协议,还可以是为一些应用专门设计的特殊通信协议,它允许用任何 语言编写的任何类型的对象在任何平台之上相互通信。w e b 服务通过简单对象访问s o a p 来调用。 1 ) s o a p 协议的架构1 1 4 l 1 1 5 l s o a p 为在一个松散的、分布的环境中使用x m l 对等地交换结构化的和类型化的信 息提供了一个简单的轻量级机制。它把请求和响应消息编码成x m l 格式,并通过h 1 v r p 协议进行传输。这样通过定义一个关于远程组件如何请求信息,以及如何描述递交的信息 的标准,s o a p 扩展了w e b 应用的用途。 s o a p 架构的底层是传送协议如h t t p 和s m t p ( s i m p l em a i lt r a n s f e rp r o t o c 0 1 ) ,通过 绑定与消息框架连接。s o a p 的两个主要设计目标是简单性和可扩展性。s o a p 包括下面 的四个组成部分,如图2 3s o a p 架构所示: s o a p 封装结构( f r a m e w o r k ) :定义了一个整体的s o a p 消息表示框架,可用于表 示消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及这些处理操作 是可选的还是强制的等。 s o a p 编码规贝, t | ( e n c o d i n gr u l e s ) :定义了用以交换应用程序定义的数据类型的实 例的一系列机制。 s o a pr p c 表示( r p cr e p r e s e n t a t i o n ) :定义了一个用于表示远端过程调用和响应 1 0 西安工业大学硕士学位论文 的约定。 s o a p 绑定( s o a pb i n d i n g ) :定义了一个使用底层传输协议来完成在节点间交换 s o a p 封装的约定。 p 匝夏圈匦叵圈 图2 3s o a p 架构 这四部分在功能上是彼此独立的。特别是信封和编码规则是被定义在不同的x m l 命 名空间( n a m e s p a c e ) 中,这样有利于通过模块化获得定义和实现的简明性。 2 ) s o a p 消息格式1 1 6 i s o a p 消息的描述框架格式是以s o a pe n v e l o p e ( s o a p 信封) 为根元素,内含s o a p h 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 消息定义以下4 个x m l 元素: 封装( e n v :e n v e l o p e ) 表示s o a p 消息的x m l 文档的顶级元素; 标题( e n v :h e a d e r ) 能够被s o a p 消息路径中任意的s o a p 接受者处理的一组s o a p 条目,包括证明、路径信息、事务标识符等,这个元素是可选的; 内容( e n v :b o d y ) 包含一组和多组s o a p 条目的信息,是s o a p 消息的最终接受者 所想要得到的强制信息; 故障( e n v :f a u l t ) 包含协议层错误信息的特殊s o a p 条目,该项是可选的,但如果 出现必须放在b o d y 元素里。 3 ) s o a pr p c 通信方式1 1 5 l s o a p 系统有两种工作模式,一种称为r p c ( r e m o t ep r o c e d u r ec a l l ) ,另一种是 m e s s a g e o r i e n t e d 。下文将集中讨论r p c 。 远程过程调用就是当客户端调用远程信息时,由实现的通信协议传送该调用信息,把 1 1 西安t 业大学硕士学位论文 调用内容传送到实现端,再由实现端恢复客户端的调用状态,最后通过服务端的激活机制 调用负责实现的程序代码,并把运算结果返回给客户端。r p c 必须包含以下步骤: 调用方法和数据的串行化( s e r i a l i z a t i o n ) 。 到达远程之后通过反串行化( d e s e r i a l i z a t i o n ) 还原调用方法和数据。 通过激活机s u ( a c t i v a t i o nm e c h a n i s m ) 或是对象激活机匍j ( o b j e c ta c t i v a t i o n ) 调用服 务。 在s o a p 的远程过程调用模型中,是把客户端调用的状态( 堆栈) 用s o a p 规则封装起 来,通过h t t p h t t p s 通信协议传送给服务端,并在服务端把这些调用封包还原成和客 户端一样的调用堆栈,然后在服务端通过特定的激活机制调用服务实现程序代码。其流程 如图2 4 所示: 图2 4s o a p r p c 工作流程 其中,把客户端的调用串行化成s o a p 信封时,其主要工作是构造s o a pr p c 请求 消息。s o a p 协议规定,在r p cs o a p 请求消息中用一个结构来代表方法调用,结构中 的成员代表方法的参数。结构的名称必须和方法名称相同,而结构成员的名称必须和方法 参数的名称相同。 4 ) s o a p 的工作机理 从某种意义上,s o a pr p c 可以简单理解为s o a p = r p c + h t t p + x m l ,采用h t t p 作为底层通讯协议,r p c 作为一致性的调用途径,x m l 作为数据传送的格式,允许服务 提供者和服务请求者经过防火墙在i n t e m e t 进行通讯交互。 其工作机理为【”】:当客户端发送请求时,不管客户端用的是什么平台,不管应用系 统用的是什么样的程序语言,首先都把请求转换成基于x m l 形式的s o a p 信封( 包含了 调用方法的名称、参数名称和类型以及返回结果等) ,然后通过底层的传送通信协议h n p 1 2 西安工业大学硕士学位论文 发送给服务器。如果客户端要求,服务器将返回一个h t t p 应答信息给客户端。 s o a p 利用x m l 作为消息格式,则能用各种系统和平台都理解的格式交换数据,从 而消除应用程序语言的差别达到在应用程序之间通信的目的。使用h t t p 和x m l ,s o a p 可以基于现有的i n t e m e t 基本结构,让运行在不同平台上的应用程序实现程序级的通信。 除了使用x m l 标准和文本形式封装信息之外,s o a p 数据封包还拥有固定的格式,并且 s o a p 还提供了解释封装信息的意义的规则,这样不同的系统之间便能够了解对方的请 求,也都可以使用标准的规则来分析和撷取s o a p 数据封包中封装的信息。因此不管系 统是用什么技术和平台实现的,只要能正确的产生标准s o a p 数据封包,就能够彼此沟 通,这几乎就解决
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年创新创业课程试题库通关秘籍题库
- 小学食堂员工食品安全培训试题(2025.04)
- 专业技术人员继续教育考试题
- 真武汤治疗慢性心力衰竭的临床应用及体会
- 建筑安全生产标准化考试试题及答案库
- 家居生活带货达人培训教程及测试答案
- 电力行业应急预案考试题及答案大全
- 环境科学情景分析题及答案解析
- 建筑设计与规划知识测试题库
- 德语全真模拟考试试卷及解析
- 2025年时事政治热点题库道及参考答案
- GB/T 17219-2025生活饮用水输配水设备、防护材料及水处理材料卫生安全评价
- DB6110T 007-2021 天麻大田种植技术规程
- GB/T 46141-2025智慧城市基础设施智慧交通数字化支付应用指南
- 期末图形与几何专项测试卷(含答案)五年级数学上册(人教版)
- 知道智慧树我们身边的知识产权满分测试答案
- 2025 年小升初成都市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 化学信息学考核试卷
- 2025年师德师风考试题库及答案
- 排污许可证审核及环境应急管理服务方案投标文件(技术方案)
- 2025年甘肃省高考地理试卷真题(含答案解析)
评论
0/150
提交评论