(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf_第1页
(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf_第2页
(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf_第3页
(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf_第4页
(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机应用技术专业论文)web服务研究及其开发模型的构造和应用.pdf.pdf 免费下载

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

文档简介

摘要 y 7 4 1 3 3 1 - 摘要 w e b 服务是一种新的网络计算方式,是分布式计算技术发展的一 个阶段。它采用了被广泛支持的标准,目标是在网络异构环境下实现 组件的动态发现和自动计算,适用于软件互操作、应用集成、软件复 用等领域。当前的研究主要集中在w e b 服务核心理论和应用实践,以 及在此基础上的应用集成。 模式是软件工程中的一个研究领域,研究的是一组在软件设计中 反复出现的问题和经过实践检验的解决方法,目的是通过归纳和应用 模式提高软件的生产效率与质量。 本文在广泛调研的基础上,分析了当前w e b 服务应用研究中构造 开发模型的特点和存在的问题,通过对w e b 服务核心技术和模式理论 的研究探索,提出了一个w e b 服务集成开发模型: 1 描述了w e b 服务体系结构及其核心技术的工作原理,分析了 w e b 服务的特点和适用范围; 2 对开发分布式计算和w e b 服务应用中的特点进行全面的分析 讨论,结合面向对象软件设计原则,针对有代表性的问题,创新性地 采用模式的方法,提出w e b 服务应用开发模型w s m p ; 3 将上述理论及开发模型应用于全军人工电话网智能支撑平台, 对模型的应用细节及其效果进行了讨论,证明模型能够指导应用设 计,解决实际的问题,验证了模型的适用性和有效性。 最后,提出了研究w e b 服务应用开发模型的一些设想和新思路。 关键词:w e b 服务分布式计算模式开发模型w s m p 支撑平台 北京交通大学硕士毕业论文 a b s t r a c t w e bs e r v i c ei san e wn e t w o r kc o m p u t i n gm o d ea n dan e ws t a g eo f d i s t r i b u t e dc o m p u t i n gt e c h n o l o g y i ta d o p t sw i d e - s u p p o r t e ds t a n d a r d st o a c h i e v ec o m p o n e n t sd y n a m i c d i s c o v e r i n g a n da u t o m a t i cc o m p u t i n gu n d e r d i f f e r e n tn e t w o r ke n v i r o n m e n ta n di sb e i n gu s e di r tt h ef i e l d so fs o f t w a r e i n t e r - o p e r a t i o n ,a p p l i c a t i o n i n t e g r a t i o n a n ds o f t w a r er e u s e a t p r e s e n t r e s e a r c h e so nw e bs e r v i c ef o c u so ni t sc o r et h e o r ya n d a p p l i c a t i o np r a c t i c e , a sw e l la sa p p l i c a t i o ni n t e g r a t i o n 。 p a t t e r ni sac o n c e p ti ns o f t w a r ee n g i n e e r i n g , w h i c hi sa b s t r a c t e da n d c o n c l u d e df r o ms o f t w a r ed e v e l o p m e n ta n di su s e dt od e s c r i b eag r o u po f t y p i c a lp l o b l e m - s o l u t i o n sd u r i n gs o f t w a r ed e s i g n i n g w en s ep a t t e r n st o i m p r o v e t h ep r o d u c t i v i t ya n d q u a l i t yo f s o f t w a r e t h i st h e s i sf o c u s e so np r o v i d i n ga ne f f e c t i v ed e v e l o p m e n tm o d e l w i t hd e s i g np a t t e r n st ow e bs e r v i c ea p p l i c a t i o n s 。f i r s t l ys o m er e s e a r c h e s o nw e bs e r v i c ep r i n c i p l e s ,p r o t o c o l sa n dt e c h n o l o g i e sa r ec a r r i e do u ta n d w e bs e r v i c e sc h a r a c t e ra n da p p l i c a b l ee n v i r o n m e n ta r eb r o u g h tf o r w a r d t h e na n i n t e g r a t e dd e v e l o p m e n t m o d e ln a m e dw s m pi sp u tf o r w a r d t h i s m o d e l ,w h i c h c o n f o r m st o d e s i g np r i n c i p l e s ,d i v i d e s w e bs e r v i c e a p p l i c a t i o ni n t ol o g i c a ls e c t i o n sa n dr i s e so ri m p r o v e sd e s i g np a t t e r n so n e a c hs e c t i o n f i n a l l yt h i sm o d e li sa p p l i e di n t oap r o j e c tt od e s i g na f r a m e w o r kf o ri t ,a n ds o m ea n a l y s i si sm a d eo nt h ee f f e c t f u r t h e r r e s e a r c h e so nw e b s e r v i c e ,p a t t e r na n dw s m p a r ep l a n n e dt o o k e y w o r d s :w e bs e r v i c e ,d i s t r i b u t e dc o m p u t i n g ,p a t t e r n ,d e v e l o p m e n t m o d e l ,w s m p , s u p p o r t h a t 绪论 1 1 课题的来源 第一章绪论 在网络变得更加便利以来,分布式计算试图组合许多计算机上的 小组件来进行计算,而不是费尽心机地在大型计算机上建立巨型的应 用程序。w e b 服务就是在这种环境下出现的一种复合计算模型,它是 分布式计算技术发展的个阶段。w e b 服务是一段位于i n t e m e t 上的 业务逻辑,可以通过基于标准的i n t e m e t 协议访问。它的目标是在网 络异构环境下使计算可以动态地查找功能组件的接口并把小组件集 合起来,通过它们的互操作完成一定的功能。 w e b 服务代表了一种新的网络计算方式,与传统的基于组件的分 布式技术相比,它的最大特点是建立在被广泛支持的标准上,如以标 准i n t e m e t 协议为基础进行通信,阻x m l 技术描述数据和操作交互。 另外它还具有松散耦合、粗粒度、具有同步异步能力、支持远程过程 调用和文档交换等特点。因此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 e b 应用技术特点和应用范围 的基础上,再选择合适的设计工具构造模型。因为开发模型需要具有 一定的抽象和较大的适用范围,本文选择了模式作为工具来设计模 型。模式是近年来在软件工程中应用较为广泛的软件构架和设计方 法,模式是在实践中归纳出来的并经过实践检验的一组经验,描述的 是具有一定抽象性和规律性的解决方案,适合在较高层次上指导模型 的设计。 1 2w e b 服务研究现状 w e b 服务的体系结构,也称为面向服务的框架( s e r v i c e o r i e n t e d a r c h i t e c t u r e ,s o a ) 是由m m 在2 0 0 0 年9 月间提出,多个组织共同推 进并成为w 3 c 标准的,主要包括三种技术:s o a p ( 简单对象访问协 议,以标准h a t e m e t 为基础的通信协议) 1 1 - 3 , 5 1 ,w s d l ( w e bs e r v i c e 描述 语言,以x m l 为基础的描述方式) 和u d d i ( 通用描述、发现和集成, 是一种应用发布和发现机制) 。 简单说,w e b 服务就是位于i n t e m e t 上的一段程序逻辑【4 】,它的提 供者首先利用w s d l 描述它的功能、调用方式和返回结果,然后通过 u d d i 把它注册到注册中心,当请求者利用u d d i 查询完成某种功能 绪论 的服务时,将获得相应的w s d l 描述,请求者自动分析描述,利用 s o a p t5 调用该w e b 服务取得结果。 相关的研究即是围绕w e b 服务技术体系和应用框架展开的,可以 把它们分为学术研究和工业应用研究两类,学术研究主要关注w e b 服 务的理论描述、技术分析和应用建模,而工业应用研究注重的是w e b 服务规范和协议的标准化以及具体实现。 1 2 1 国外研究现状 国外对于w e b 服务的研究沿着实际应用和技术深入的方向进行 得广泛而且迅速,这两个方向是互相依赖和互相促进的。在w e b 服务 技术实际应用中出现的很多问题,需要理论研究提供解决方案,理论 研究的成果又促进了应用技术的发展和成熟。国外对于w e b 服务的研 究,主要可以分为三个方面,一方面主要关注w e b 服务的分布式计算 能力,包括w e b 服务如何实现应用集成和数据集成、软件互操作和组 件自动发现和调用【瞄1 ,其中针对语义w e b 服务的研究是近年的一个 热点,被认为是实现复合计算的关键 9 】;第二个方面集中在w e b 服务 的服务质量研究,比如w e b 服务的速度和效率、事务机制和时序性可 靠性、访问控制和加密策略、安全以及隐私问题等 1 0 - 1 2 】;另外一个研 究领域就是w e b 服务的应用和建模,包括w e b 服务技术与其他技术 的结合、w e b 服务在某个行业或者领域的应用和构造w e b 服务应用模 型等,其中建模问题是本文关注的重点。 国外对于w e b 服务应用模型的研究可以分为两种,一种侧重于基 于核心技术和协议模块的理论建模,划分的模块相对抽象和全面,如 文献1 3 为构造和管理w e b 服务设计了一种支持语言和框架,其中包 北京交通大学硕士毕业论文 含了质量管理、多种协议支持等多个模块,【文献1 4 】采用分层理论提 出了一种w e b 服务应用概念模型,【文献1 5 结合知识系统为语义w e b 服务设计了一种开发框架,这些建模方法理论性强,层次较高但是对 于实际的应用开发实现的难度较大:另外一种是为某种分布式应用构 造模型,试图给应用开发提供便利,如 文献1 6 提出一个w 曲服务的 模型来模拟电子市场的处理过程,【文献1 7 从分析电子商务的交互流 程出发,构造了基于会话的w e b 服务开发模型,这些模型多从功能出 发划分模块具有一定的抽象性,可以指导某些行业的应用开发,但 是很少从软件工程和系统开发的角度设计模型,适用的范围较小。 学术研究的发展也促进了工业研究的发展,针对实际应用需求的 规范和标准也在不断的制订和完善,经过几年的发展,基本形成了如 图1 1 所示的w e b 服务协议栈。工业界以m i c r o s o f t 和s u n 为代表, 分别推出了各自支持w e b 服务的应用开发环境。 r o u t i n g ,r e l i a b i l i t ya n d t r a n s a c t i o n w o r k f l o w :w s f l s e r v i c ed i s c o v e r y ,i n t e g r a t i o n :u d d l 竺 s e r v i c ed e s c r i p t i o n :w s d l毫 圣 = o m e s s a g i n g :s o a p 罨 置 苫 = t r a n s p o r t : r n 甲,f t p ,s m t p c y i n t c m 毗:i p v 4 ,i p v 6 w i 删i r e l e s s 图1 - 1w e b 服务协议栈 国外的w e b 服务成熟应用也不乏案例,g o o g l e 公司就把自己公 司的w e b 服务公布,使大家可以使用一组a p i 来直接访问g o o g l e 公 绪论 司的数据库。 1 2 2 国内研究现状 2 0 0 3 年国内针对w e b 服务的综述研究开始出现,之后出现了 关于w e b 服务的简单应用和行业应用的研究 1 8 】,以及把w e b 服务与 某些技术领域,如地理信息系统、数据库系统等结合起来的研究 1 9 - 2 0 】。 之后国内w e b 服务研究进展迅速 2 | - 2 2 ,研究方向主要是w e b 服务核 心协议或者技术,w e b 服务在某种系统中的应用和w e b 服务开发模型 等,对语义w e b 服务、应用集成和协同管理也做出了一些工作p 2 ”。 国内对w e b 服务的应用开发模型的研究有三类,一是从w 曲服 务的体系结构出发,结合其中一种或者几种核心技术,提出基于w e b 服务的解决方案,如 文献2 6 2 7 都是直接采用w e b 服务的基本架构 设计应用,这类研究与应用结合的较为紧密,有一些就是以实际系统 为模版的,但是对w e b 服务的特性考虑较少,适用性较小;二是以某 种技术作为切入点或者关注的要点,如 文献2 8 结合工作流构造w e b 服务框架,主要考虑工作流对于复合服务的控制,【文献2 9 结合x m l 相关规范集提出了一个动态w e b 服务框架系统,重点考虑了异构互操 作和安全,f 文献3 0 则构造了一个可信w e b 服务应用框架,这一类模 型的理论性较强,主要是结构分析,对于指导应用开发来说就缺乏工 程方面的考虑:另外一种是基于w e b 服务应用和运行管理的建模研 究,如文献3 1 设计的w e b 服务运行管理平台,对w e b 服务的技术 特性和功能模块划分都有研究,显示出了w e b 服务应用开发模块的雏 形,但是没有进行进一步的提取和总结。 本文认为设计有效的w e b 服务应用开发模型,需要注意三点,第 北京交通大学硕士毕业论文 一是要考虑到分布式应用和w e b 服务技术本身的特点和应用功能的 特点,把开发和应用过程中具有代表性的逻辑分析出来;第二是采用 合理的思维方式,选择合适的构造工具,通过分析和归纳问题使解决 方案具有一定的抽象性,这样模型才能具有较强的适用性3 2 出】,本文 使用设计模式来分析和构造模型,因为使用模式的过程就是归纳出具 有代表性的“问题解决方案”的过程:第三是模型必须能够解决 应用过程中的难点,而且模型不能是不可扩展的,应该是可以根据具 体问题发生变化的,即模型要满足一定的软件工程设计原则。以上三 点也是本文研究过程中的特点。 1 a 本文的主要内容 本文主要研究利用模式思想为w e b 服务技术的应用开发设计一 个模型。首先研究了w e b 服务技术的原理和核心协议、技术,并提出 了w e b 服务的特点、具有的能力和适用的范围;然后分析了当前w e b 服务分布式应用开发中的问题,从划分应用模块和跟踪应用交互流程 出发,针对每个部分的功能特点,依据软件设计原则和目标选择设计 模式,并根据具体情况做出改进,从而提出了一个集成开发的模式模 型w s m p ;最后结合一个实际的项目,采用w s m p 模型为其设计了 应用开发架构,并对设计进行了分析,应用实现的效果比较好。本文 章节安排如下: 第二章主要描述了w e b 服务的技术体系和工作原理,分析了它 具有的特点、能力和适用范围,并进一步针对w e b 服务的核心技术, 分别描述了它们的作用,基本工作原理和具体实现。 第三章主要为本文后面章节使用设计模式引入了一些简单的模 绪论 式知识,包括模式和设计模式的含义,模式的演化周期和设计模式中 的一些重要概念,并结合自己的理解提出了在软件工程中使用设计模 式的意义,然后结合本文简要介绍了几个重要的设计模式。 第四章是本文的重点,首先讨论了设计一个有效的软件模型需 要实现的目标和一般的设计原则,然后结合w e b 服务技术和分布式应 用的特点,采用“分而治之”的策略,把模型分层次、模抉化,对不 同部分的特点进行分析选择或者改进相应的设计模式,构造出 w s m p 开发模型,并对其进行了讨论。 第五章结合一个分布式应用项目“全军人工电话网智能支撑平 台”实现中的几个问题,引入w e b 服务解决方案和w s m p 模型,并 在解决实际问题的过程中扩展了模型,为支撑平台设计了应用开发架 构,并对架构及其实现进行了讨论,验证了w s m p 模型的有效性。 第六章对全文进行了总结,并提出进一步研究的方向和重点。 托京交通大学硕士毕业论文 第二章w e b 服务核心技术研究与分析 这一章将沿着由简到繁的思路来研究w e b 服务的体系结构,首先 简单介绍w e b 服务的核心技术组成,然后描述了w e b 服务如何利用 这些技术完成它的工作。从这里出发分析w e b 服务具有的一些特点和 能力,以及w e b 服务可以适用的领域。 2 1 w e b 服务工作原理 什么是w e b 服务? 为描述方便,先给出一个简单的定义。 定义2 - 1w e b 服务是一段位于i n t e r n e t 上的业务逻辑,它完成一 个相对独立的功能,可以通过基于标准的i n t e m e t 协议访问。 2 1 1w e b 服务工作原理和核心技术 2 0 0 0 到2 0 0 2 的两三年中,出现了三种作为全球标准的主要技术, 它们构成了今天w e b 服务技术的核心: 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 ,简单对象访问协议) ,提供 了一个标准的包装结构用以在多种标准i n t e r a c t 技术之上( 包括h t t p 、 s m t p 和f t p 等) 传输) 0 订l 文档。它还为r p c ( r e m o t e p r o c e d u r ec a l l , 远程过程调用) 提供了一个简单的文档交换结构,为用x m l 传送非 r p c 调用定义了编码和绑定标准。 w s d l ( w e b s e r v i c ed e s c r i p t i o nl a n g u a g e 。w e b 服务描述语言) , 是一种以标准方式描述w e b 服务接口的x m l 技术。w s d l 对w e b 服务如何表示外部调用所需的输入输出参数、函数结构、调用特性以 w e b 服务核心技术研究与分析 及服务的协议绑定进行标准化,从而允许不同的客户自动理解该如何 与w e b 服务发生交互。 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 服务的发布、宣传、发现和集成。通过搜索名字、 标识符、分类或由w e b 服务提供的规范,业务分析人员和技术人员可 以使用u d d i 发现可用的w e b 服务。u d d i 提供一系列结构,用来表 示业务和业务关系、w e b 服务、规范元数据和w e b 服务访问点等概念。 抛开这三种技术的描述术语,从功能的角度不难看出,其实它们 分别做了这样一些事情,s o a p 可以利用i n t e r n e t 标准协议传输x m l 文档,这些文档具有语义特征,w s d l 本身就是描述w e b 服务的x m l 文档,u d d i 可以对w e b 服务分类组织并提供搜索功能。 结合图2 1 可以看出w e b 服务是怎样利用这三种技术来工作的。 请求者 注册中心 提供者 图2 1w e b 服务主要技术及工作原理 w e b 服务的提供者实现了一个业务功能并保证它是可以通过网络 访问的,首先利用w s d l 描述它的功能和访问它的规n ( l l 如请求地 北京交通大学硕士毕业论文 址、调用参数和返回结果等) ,然后通过u d d i 把它注册到注册中心, 当请求者利用u d d i 查询到该服务可以满足特定需求时,可以同时获 得相应的w s d l 描述,然后请求者自动分析w s d l 文件,遵循既定 的规则生成表示请求的x m l 文档,利用s o a p 包装并绑定i n t c r n e t 标准协议发送请求,调用w e b 服务取得结果。 2 1 2w e b 服务的特点和适用性分析 从以上的描述可以看到,w e b 服务具有以下特点: ( 1 ) 基于x m l 。w e b 服务协议和核心技术( s o a p ,w s d l 和u d d i 等) 都以x m l 作为数据表示层; ( 2 ) 采用被广泛支持的标准。比如x m l ,s o a p ,w s d l 和u d d i 以及w e b 服务使用的i n t e m e t 传输协议: ( 3 ) 松散耦合。w e b 服务的请求者与w e b 服务并不直接关联,w e b 服务的实现也可以在接口不变的情况下发生变化并提供同样的功能, 对w e b 服务的调用可以同步或异步执行: ( 4 ) 粗粒度。w e b 服务更适合把几个独立的功能组合起来提供更 宏观的面向服务层次的接口,或者进行软件间的交互,丽不是为细节 的行为提供操作方法,在这方面w e b 服务并不具有更高的效率,因此 w e b 服务主要用于与其他技术合作或者集成其他技术,而不是试图取 代它们。 这些特点使w e b 服务具有这样的能力: ( 1 ) 跨平台。x m l 提供了一种与语言、运行平台无关的语义描述 方法来表示数据和操作,同时在数据传送中消除了相关协议特有的网 络、操作系统以及平台绑定限制,只要能互相通信,解析) m 皿语义 w e b 服务核心技术研究与分析 就可以使用w e b 服务的功能; ( 2 ) 跨越防火墙的通信。网络环境下的分布式应用基本上使用的 是专有协议,不可避免的要受到防火墙的限制,但是防火墙基本上都 对i n t e m e t 标准协议如h t t p 是开放的; ( 3 ) 支持远程过程调用和文档交换,这使w e b 服务提供了一种有 效的x m l 格式来表示r p c 操作需要的方法、参数和协议绑定,同时 也具有表示复杂文档,传送附件的能力; 因此w e b 服务更适用于这样一些领域: ( 1 ) 软件互操作。w e b 服务是基于x m l 的,它可以在更高的语义 层次进行软件通信,这与组件分布式计算基于二进制很不同,它与特 定的语言、运行平台和专有协议不紧密关联,不同的软件只要可以解 析数据和理解语义,就可以相互通信; ( 2 ) 应用集成。这是比软件互操作更高的层次,是软件互操作的 应用。通过把已有的功能包装成w e b 服务,可以把异构环境下的多个 分布式应用集成起来,对外提供统一的界面,也便于灵活管理( 如图 2 2 、。 ( 3 ) 软件复用。通过w e b 服务动态的查找和调用其他的w e b 服务, 已经实现的功能就不需要重复建设,更重要的是,在复用功能的同时, 也复用了软件后面的数据,应用集成也可以说明这一点。 从以上的分析不难看出,w e b 服务之所以具有这样的能力,一个 重要的因为它是基于x m l 的,而本质的原因在于它采用了被广泛支 持的标准。 北京交通大学硕士毕业论文 ,应用程序一、 ,服务一一一一一一一一一一一、 s o a p 客户lii 厂 1 i 二受 3 :【竺! 竺竺兰j 厂ll 固l 竺望兰堡i r 7 l:r - 1 i u d d i i ;| 应用程序i l 注册中心il o 图2 - 2 利用w e b 服务实现应用集成 2 2w e b 服务计算理论 从以上的讨论看出,w e b 服务使网络异构环境下的应用可以互相 查找并具有一定自动发现、自动调用的能力,基于不同语言和运行平 台的软件可以实现一定程度的通信,从而把应用和数据集成起来,提 供方便而且强大的网络计算能力。因此w e b 服务是分布式计算发展的 一个新阶段。 自从网络变得便宜和便利以来,分布式计算试图组合许多计算机 上的小组件来进行计算,而不是费尽心机地在大型计算机上建立巨型 的应用程序,或者建立一个巨大的单一的专用的目录或数据库系统。 计算理论进一步尝试建立能够访问各种数据并能够灵活按需组合的 服务,这使分布式计算走向了复合计算模型。 复合计算模型本身是一个较为抽象的概念,s o a 模型 w e b 服务核心技术研究与分析 ( s e r v i c e o r i e n t e da r c h i t e c t u r e ,面向服务的体系结构) 是复合计算模型 的一个范例,s o a 模型通过对w e b 服务的理论研究,对其组成要素 给出了完整的定义,描述了一个w e b 服务的概念模型。 2 2 1 复合计算模型 定义2 - 2 复台计算模型是一种使用分布式的、基于发现的运行 环境来暴露和管理面向服务的软件资产集合的体系结构。 软件资产就是一段业务逻辑代码,它可能是一个组件、一个队列 或向外界暴露的执行某个有用功能的一个方法。与客户服务器方式和 多层计算模型类似,复合计算模型表达了一种体系结构原理,以对其 内部组件采取相应的管理规则和进行职责分配。它用来解决具有以下 需求的特定业务问题: ( 1 ) 业务逻辑功能的动态发现; ( 2 ) 隔离业务逻辑功能的描述及其具体实现; ( 3 ) 只用最小的工作量、安装步骤或人为干涉,就可以快速组装 临时计算团体的能力。 在最近十年的大部分时间里,计算理论在积极定义和改良分布式 计算技术,使用这些技术可以实时地查找组件、在运行时发现组件的 接口、在某种特定基础上由组件建立应用程序,而这些组件在开发时 往往并没有被考虑。这就是复合计算模型的目标。 2 2 2s o a 模型 定义2 3s o a 模型由基于服务组件完成交互作用的三个角色组 北京交通大学硕士毕业论文 成。 这个定义涉及到三个关键词:组件,角色和交互。 ( 1 ) s o a 模型的组件就是w e b 服务而每个w e b 服务由服务和服 务描述两部分构成。 服务:指w e b 服务的实现。一个服务是完成一个相对独立功能的 应用,可大可小,关键是它位于一个可通过网络访问的平台上,并由 w e b 服务提供者提供; 服务描述:指w e b 服务的接口。它利用x m l 语言描述并且遵从 一个或者多个标准。描述包括数据类型、操作、协议绑定以及w e b 服 务实现的网络位置等。还有一些附加文件,主要用来对w e b 服务进行 分类或提供其他元数据以便使用者发现它们。 ( 2 ) 参与者角色。s o a 建立在三种角色的交互之上:提供者、代 理者和请求者。 提供者: 定义:服务的拥有者,一个被他人视为可通过网络访问的服务的 软件资产,这个资产以w e b 服务的形式暴露; 要素:具有x m l 形式的描述,具有一个封装了其行为的具体实 现。 注册中心代理者: 定义:可搜索的注册中心。管理着关于提供者及其软件资产的信 息资料库,提供智能查找能力; 要素:内容包括业务数据( 如名字、描述和联系信息) ,需要利用 服务的信息( 如数据描述策略、业务处理以及软件绑定) ,业务分级分 类数据等。 w e b 服务核心技术研究与分析 象 请求者: 定义:发现并调用由一个或多个提供者提供的软件资产的业务对 要素:查找提供者并初始化与提供者的交互,它可以是一个软件 或者是使用w e b 浏览器的人。 ( 3 ) 参与者的交互。s o a 定义了三种交互:发布、定位和绑定。 发布:提供者将服务的信息( 或者元数据) 发布到注册中心或者提 供给服务请求者。发布服务描述的机制主要经历了三个阶段,即直接 发布( 服务提供者通过e m a i l 、f t p 或者分发的方式直接向服务请求者 提供服务描述。这种情况下,服务提供者在发送服务描述的同时使得 服务对请求者可用,请求者不通过注册中心而是自己负责定位服务并 获取它们的描述) ,h t t pg e t 发布( 使用注册中心作为保存w e b 服务 描述相关连接的资料库,这个注册中心也有一定的搜索能力,服务请 求者使用h t t pg e t 请求直接从服务提供者处获取服务描述) 和动态 发现( 服务提供者和服务请求者通过编程在本地和公共的注册中心中 存储或者获取w e b 服务描述】; 定位( 发现) :服务请求者使用注册中心( 代理者) 找到服务。服务定 位和动态发现是紧密联系在一起的。在这种情况下,服务提供者是使 用特殊的a p i 集来发布w e b 服务的应用程序,服务请求者是一个使用 特殊a p i 集向公共或私有注册中心查询服务的应用程序。这些查询采 用定义良好的标准x m l 格式,并用x m l 消息格式进行传送; 绑定:绑定涉及服务请求者和提供者,而注册中心是可选项。在 w e b 服务中,绑定就是一个应用程序使用服务描述生成消息并发送给 服务提供者的过程。 北京交通大学硕士毕业论文 2 3w e b 服务核心技术工作原理 从w e b 服务的工作过程看,s o a p 、w s d l 和u d d i 作为w e b 服 务的核心模块,实现了w e b 服务交互的基本分工,完成了特定的功能。 但是它们各自的主要任务是什么,有哪几部分组成,分别是怎么实现 的,需要解决什么样的问题,则不仅是w e b 服务理论研究和技术发展 需要面对的,更是w e b 服务应用中不可回避的问题,因为这些技术表 现出来的特点,正是w e b 服务具有的特点。这一部分就分别针对以上 问题进行讨论。 x m l 是w e b 服务核心技术的基础,正如我们前面所说。x m l 是 w e b 服务的数据表示层。有关x m l 的研究和应用有很多成果,这里 w e b 服务核心技术主要讨论s o a p 、w s d l 和u d d i 三个组成部分, 并不针对x m l 作详细讨论。 w e b 服务的核心协议或者技术是分层次的,就像w e b 服务协议栈 中所描述和表现的那样。在讨论过程中我们同样可以用分层的思想来 看待它们,分层的好处是把大的问题分解成较小而且相对独立的问 题,每层只关注特定的功能,这样可以分工明确,降低问题的复杂度, 提高层间交互的灵活性。 2 3 1s o a p 在w e b 服务中,s q a p 实现的是请求者和提供者之间的通信,它 把基于x m l 的请求信息和响应结果包装起来,使用某种i n t e r n e t 标准 协议,在网络上传递消息。 用一个简单的图表示s o a p 在w e b 服务中的作用如下( 见图2 3 ) 。 w e b 服务核心技术研究与分析 ( e匣 图2 3s o a p 是w e b 服务中的通信载体 可以看出,s o a p 主要需要解决两方面的问题: ( 1 ) s o a p 为了在网络上传递消息,应该如何封装数据和路由信息 以及如何表示这些数据: ( 2 1s o a p 为了灵活性而不依赖于某个特定的通信协议,但是它要 以某种方式绑定一种网络协议实现通信; s o a p 解决这些问题的思路是这样的,首先对于w e b 服务交互, 有个表示语义消息的x m l 片段,s o a p 把这个x m l 片段包装到一 个s o a p 体里面,而s o a p 体是包装在一个s o a p 封套中的,然后 s o a p 声明数据串行化规则和编码类型,再把所有东西绑定到一个协 议中。以下详细讨论s o a p 的实现。 as o a p 封套 所有的s o a p 消息都封装在一个称为封套的x m l 文档中,它是 保存一条s o a p 消息的结构化容器。发送者把完成某种操作所需要的 内容放进一个封套中,把它发送给接收者,接收者打开封套并重新构 造出原始的内容,以便完成所请求的操作。s o a p 封套的内容遵照 s o a p 规范,允许发送方与接收方使用一种与语言无关的方法来交换 信息,双方在如何解释封套的内容上是一致的而不关心它是如何生成 北京变通大学硕士毕业论文 的。 如图2 4 所示,一个s o a p 封套包含两个主要的组成部分,头和 体,头和体都可以包含多个信息块。 图2 4s o a p 封套的块结构及s o a p 协议绑定 s o a p 头和体在语法上非常相似,只是为了不同的作用而包含了 不同的内容。s o a p 头是用来存放消息的,相当于元数据和一些指令, 提供给接收消息的s o a p 处理器使用;s o a p 体用来存放实际数据或 者消息有效负载,提供给虽终的接收者处理。 b 数据编码和串行化规则 s o a p 编码的模型是以札的数据编码为基础的。当通过网络 传输数据时,其中的数据形式一定要遵从底层的传输协议,而且还要 采用让发送方与接收方都能够理解其含义的方式来格式化,也就是要 对传输数据进行串行化,并描述数据的组织,这需要对数据进行编码。 w e b 服务核心技术研究与分析 数据的编码包含对数据结构、数据传送类型和数据值的组织。数据编 码和串行化规则使s o a p 事务中的各方理解消息的内容和含义。 c 传输或协议绑定 s o a p 规范要求s o a p 实现支持使用h t t p 来传输s o a px m l 的 有效负载,但是并不限制使用其他的传输方式,s m t p 、f t p 、j m s , j 甚至是专有的方案都是可以选择的。使用什么方式来传输s o a p 有效 负载都不重要,只要通信双方可以正确发送和接收。目前h t t p 最普 遍的s o a p 传输方式,h t t p 协议绑定如图2 _ 4 所示。 2 3 2w s d l w s d l 是一种将w e b 服务描述为一系列访问端点的x m l 文法, 这些端点具有以面向过程( 如r e c ) 或者面向文档( 如文档交换) 的方式 交换消息的能力。w s d l 的作用不仅仅是给出w e b 服务的相关信息, 它更像是一种接口和数据类型定义方法,它结构化的形式和表达语义 的能力使应用到应用的自动通信成为可能。 w s d l 需要解决的问题主要是如何灵活的描述w e b 服务,即具有 简洁的形式,使应用程序可以正确、快速解析内容甚至自动生成代码, 同时采用一个合理的描述结构,以保持良好的可扩展性,满足不断变 化的需求。 a 基本原理 在w s d l 的描述里,每个w e b 服务由端口提供,每个端口的功 能是由一系列的操作实现的,与每个操作的交互是通过传递输入消息 和接收输出消息完成的,每个消息包含一定数量的数据。各个组成部 分之间只是简单的组合,是松散的耦合关系。 北京交通大学硕士毕业论文 其中需要注意的是: ( 1 ) 操作需要绑定到具体协议才可以实现,即每个操作所涉及的 消息需要明确是利用什么协议传递的,但是w s d l 并不限定某个具体 协议,而是提供了多种可能的协议扩展; ( 2 ) 数据定义使用的是和s o a p 里定义数据类型相同的x m l 模式 集。 由上可见,w s d l 基本原理描述了w e b 服务的几个概念,即服务、 端口、操作、消息、数据和绑定。它们的含义和关系是显而易见的, 如图2 5 所示,消息是在用户和w e b 服务之间通信的基本单位,它由 些定义好的数据类型组成,相当于参数;每个操作的实现可能需要 几条消息的交互,如输入输出消息和错误消息等;端口和协议绑定描 述一组操作的集合,这些操作共同作为此端口或者协议绑定的功能, 从而端口和协议绑定本身可以被描述为一个服务来向外界提供。 b 具体实现 理解了w s d l 的基本原理,它的实现就相对简单了。主要地, w s d l 定义了一些x m l 元素来相应的表示上面的概念,同时定义了 一组规则使用这些元素来描述一个w e b 服务,可以对照图2 5 中w e b 服务的几个概念和w s d l 中使用的x m l 元素。 可以看出w s d l 只是对参数和运行时应该如何通信的约束的定 义,在w s d l 文件中定义的每样东西都是抽象的,它描述端点和它们 的消息,将消息作为交换中数据的抽象描述,而不管消息格式或者用 于交换消息的网络协议是什么,同时将端口类型作为w e b 服务操作的 抽象集合,于是端口类型可以映射到具体的协议和数据格式。 w e b 服务核心技术研究与分析 图2 5w s d l 逻辑结构和文档结构( + 表示可以有多个) 2 3 3u d d u d d i 的目标是建立一个与平台无关、开放的架构,用来描述和 组织w e b 服务的信息,从而提供一个发布与发现w e b 服务的标准方 法。它需要用一个合理的结构组织w e b 服务的信息以提供高效的合乎 逻辑的操作,同时又要保证良好的可扩展性。 u d d i 是一个概念上的注册中心,一个w e b 服务可以在u d d i 中 注册三种类型的信息: 白页信息,基本的提供者信息,包括唯一的标识符、名称、地址 以及联系信息,这些信息使得请求者能够通过标识符来发现w e b 服 北京交通大学硕士毕业论文 务; 黄页信息,使用不同的分类法来描述服务的信息,这些信息使得 请求者能够通过不同行业的标准分类法来发现w e b 服务: 绿页信息,提供者所提供的服务的技术信息,包括服务的行为、 支持的功能以及指向服务分类信息和存储地址的一些指针。 a 基本原理 u 】) d i 用分层次的方式组织信息,这些层次时间有定的包含关 系,上一层除了包含自身的相关信息外,还包含下一层的索引方式, 请求者并不直接访问到w e b 服务的使用细节,而是通过多次“发出请 求获得信息”的交互逐层深入地获得需要的信息。 简单看,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 服务细节信息,如图2 - 6 所示。 文档解析 信息抽取 文档解析 信息抽取 图2 - 6u d d i 工作原理示意 w e b 服务核心技术研究与分析 w e b 服务提供者,逻辑w e b 服务和w e b 服务细节都是u d d i 注 册中心的主要对象,它们各自包含了一组相互关联的信息,或者说是 关于w e b 服务描述不同角度、不同精确程度的信息,这些信息的关联 是通过一些全局或局部的标识来实现的;而且它们都可以接受一组消 息,同时可以返回一组消息,返回消息中即包含进行下一次请求需要 的关联标识。这样可以通过多次逐层深入的方式获得逐步详细的信 息。u d d i 之所以这样规划是为了对应现实中w e b 服务参与角色的复 杂信息和多样的分类标准。 b 具体实现 u d d i 是基于以l 的,它把w e b 服务的相关信息保存成一系列 x m l 元素,而且用来请求这些信息的消息和返回的响应消息,也采用 了定义好的订l 形式。u d d i 使用了三种基本元素来对应上述的三个 层次,同时为了描述消息的多种类型,又扩展了多个元素,但是并没 有增加层次的复杂度。对于每个层次,其实相当于一个u d d i 中的可 处理对象,它可以接受一系列的请求消息,并返回请求的内容。这些 消息和响应是成对出现的。 2 4 本章小节 本章从w e b 服务的原理说起,讲述了w e b 服务如何工作和它具 有的特点,然后分析了它为什么具有这样的特点和适用于什么样的领 域,并简要介绍了w e b 服务分布式计算理论,接着针对w e b 服务的 核心技术,分别

温馨提示

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

评论

0/150

提交评论