(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf_第1页
(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf_第2页
(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf_第3页
(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf_第4页
(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机应用技术专业论文)基于web服务的工作流引擎研究及实现.pdf.pdf 免费下载

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

文档简介

重庆大学硕士学位论文 中文摘要 摘要 由于在异构环境中处理复杂事务的能力,工作流技术在科学研究、电子政务 和商务等方面引起了广泛的关注。基于i n t c m e t 应用的快速发展,协同工作是一种 典型应用模式,传统的工作流在适应跨部门、跨组织的分布式应用时,技术实现 复杂,开发成本高。w e b 服务技术的出现提供了解决该问题的途径。w e b 服务是 被封装成单个实体并发布到网上的功能集合,其动态性和互操作性可以很好地解 决传统工作流中的问题。因此,把w e b 服务技术引入到工作流管理系统中,对工 作流技术的研究和应用将起到积极的作用。 本论文旨在通过w e b 服务技术实现异构分布式计算环境下的工作流管理系 统,降低系统开发成本,保障系统的动态性和互操作性。论文具体开展了以下研 究工作: 研究了工作流管理系统的组成、参考模型、体系结构及其各组成部分的功能 特性和相互关系。研究了w e b 服务技术,分析了w e b 服务技术的体系结构及其三 个基本角色和角色间的三种基本操作之间的关系,分析了w e b 服务的协议栈及 s o a p 、w s d l 、u d d i 和w s f l 等标准。研究了把w e b 服务技术引入到工作流管 理系统中,来解决不同平台的集成及动态耦合,技术上将容易实现,成本投入低。 参考w f m c 的工作流参考模型,论文提出了一种基于w e b 服务的工作流管理 系统体系结构,针对研究的问题对系统模型以及工作流运行状态等方面进行了相 应的简化和扩展,设计了基于该体系结构的工作流引擎,论述了该引擎模块的功 能特点及接口,实现了一个原型系统。 关键词:工作流,w e b 服务,工作流管理系统,工作流引擎 重庆大学硕士学位论文 英文摘要 a b s t r a c t d u et ot h ea b i l i t yo f h a n d l i n gc o m p l e xt r a n s a c t i o n si nh e t e r o g e n e o u se n v i r o n m e n t , w o r k f l o wh a sg a i n e dm o r ea n dm o r ea t t e n t i o n si nt h ea r e ao fs c i e n t i f i cr e s e a r c h , e - g o v e r n m e n ta n de - b u s i n e s si nr e c e n ty e a r s w i t ht h er a p i dd e v e l o p m e n to fi n t e r a c t a p p l i c a t i o n s ,c o l l a b o r a t i v ew o r k i n gi sb e c o m i n gat y p i c a la p p l i c a t i o nm o d e t r a d i t i o n a l w o r k f l o wt e c h n o l o g i e sc a n n o tw e l la d a p tt ot h ed i s t r i b u t e da p p l i c a t i o n si n m u l t i p l e d e p a r t m e n t sa n dm u l t i p l eo r g a n i z a t i o n s ,w h i c hw i l lh a v ec o m p l e x i t yo fi m p l e m e n t a t i o n a n dh i g h tc o s t w e bs e r v i c e sp r o v i d ea na p p r o a c ht o r e s o l v i n gt h i sp r o b l e m w e b s e r v i c ei st h es i n g l ee n t i t yt h a tc a nb ee n c a p s u l a t e d i tc a na l s ob ep u b l i s h e do nt h e i m e m e ta saf u n c t i o ns e t i t sc h a r a c t e r i s t i c so fd y n a m i ca n di n t e r o p e r a b i l i t yc a nr e s o l v e t h ep r o b l e m si nt h et r a d i t i o n a lw o r k f l o ws y s t e m s t h e r e f o r e ,b r i n g i n gw e bs e r v i c e t e c h a o l g i e si n t ow o r k f l o wm a n a g e m e n ts y s t e m sw i l lh a v ep o s i t i v ee f f e c t st ot h e r e s e a r c ha n da p p l i c a t i o no f t h ew o r k f l o wt e c h n o l o l g i e s w e bs e r v i c et e c h n o l c i g i e sh a v eb e e nu s e dt oi m p l e m e n tw o r k f l o wm a n a g e m e n t s y s t e m su n d e rh e t e r o g e n o n sa n dd i s t r i b u t e de n v i r o m e n t si nt h i sd i s s e r t a t i o n s ot h ec o s t o fs y s t e md e v e l o p m e n tc a nb er e d u c e da n dt h ef e a t u r e so f d y n a m i ca n di n t e r o p e r a b i l i t y c a nb er e a c h e d t h em a i nw o r k sd o n ei nt h i sd i s s e r t a t i o na r ea sf o l l o w s : t h ec o m p o n e n t s ,r e f e r e n c em o d e la n da r c h i t e c t u r eo fw o r k f l o wm a n a g e m e n t s y s t e ma r es t u d i e d a n dt h ef u n c t i o nc h a r a c t e r i s t i c so fe a c hc o m p o n e n ta n dr e l a t i o n s h i p b e t w e e nc o m p o n e n t sa r ed i s c u s s e d w e bs e r v i c et e c h a o l o 西e sh a v eb e e ns t u d i e d t h ea r c h i t e c t u r eo fw e bs e r v i c e ,t h r e e f u n d a m e n t a lr o l e sa n dt h r e eb a s i co p e r a t i o n sb e t w e e nr o l e sa r ea n a l y z e d t h ep r o t o c o l s t a c k so fw e bs e r v i c e ,s o m es t a n d a r d si n c l u d i n gs o a p , w s d l ,u d d ia n dw s f la r e d i s c u s s e d h o wt ou t i l i a z ew e bs e r v i c et e c h n o l o g i e si n t ow o r k f l o wm a n a g e m e n t s y s t e m si ss t u d y e d ,w h i c hc a ns o l v et h ep r o b l e m si ni n t e g r a t i o na n dd y n a m i cc o u p l i n g b e t w e e nd i f f e r e n tp l a t f o r m s t h ei m p l e m e n t i o nc a nb er e a l i z e de a s i l y , a n dt h ec o s tc a n b e c u t d o w n r e f e r e n c i n gt h ew f m cr e f e r e n c em o d e l ,aw e bs e r v i c e - b a s e da r c h i t e c t u r eo f w o r k f l o wm a n a g e m e n ts y s t e mi sp r o p o s e di n t h i sd i s s e r t a t i o n t o w a r d st h es t u d i e d p r o b l e m s ,t h es y s t e mm o d e la n dt h ee x e c u t i o ns t a t u so fw o r k f l o wa r es i m p l f i e da n d e x t e n d e d aw o r k f l o we n g i n ew h i c hi sac o r ec o m p o n e n to fw o r k f l o ws y s t e mi s d e s i g n e d t h ef u n c t i o nf e a t u r e sa n di n t e r f a c e so ft h ee n g i n em o d u l ea r ed i s c u s s e d a 重庆大学硕士学位论文英文摘要 p r o t o t y p eo f t h es y s t e mi si m p l e m e n t e d k e y w o r d s :w o r k f l o w , w e bs e r v i c e s ,w o r k f l o wm a n a g e m e n ts y s t e m ,w o r k f l o w e n g i n e i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取 得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他入已经发表或撰写过的研究成果,也不包含为获得重庭盍堂 或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本 研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:是l 乱:口 签字日期: 忉一7 年厂月缈日 学位论文版权使用授权书 本学位论文作者完全了解 重宏太堂有关保留、使用学位论文的 规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许 论文被查阅和借阅。本人授权重废太堂可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 保密() ,在年解密后适用本授权书。 本学位论文属于 不保密( v ) 。 ( 请只在上述一个括号内打“”) 学位论文作者签名:彳毡ia h 导师签名:锨 签字日期:m 年月缈e t签字日期:刀年月r 日 重庆大学硕士学位论文1 绪论 1 绪论 1 1 引言 当前全球信息化正在加速进行,以计算机技术和现代通信技术为基础的信息 化社会正快步向人们走来,电子商务、电子政务在世界范围内得到快速的发展和 应用,并迅速改变着人们的工作模式和生活方式。全球经济一体化、客户需求多 样化、产品生命周期缩短、市场竞争激烈,企业追求的目标除了价值最大化,还 体现在“以客户为中心”等。个人、企业以及政府之间的复杂业务流程被越来越 多的应用到实际的生产生活当中。而且信息资源也越来越表现出一种异构、分布、 松散耦合以及及时响应的特点。这样的发展方向,使是一些传统的、面向本地应 用的工作流( w o r k f l o w ) 技术迫切需要新的突破,以适应新技术的发展和企业的实际 需求的变化。 工作流概念起源于生产组织和办公自动化领域【”,它是针对日常工作中具有固 定程序的活动而提出的一个概念。目的是通过将工作分解成定义良好的任务、角 色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效 率、降低生产成本、提高企业生产经营管理水平和企业竞争力。1 9 9 3 年工作流管 理联盟( w o r k f l o wm a n a g e m e n tc o a l i t i o n ,w f m c ) 为工作流管理系统( w o r k f l o w m a n a g e m e n ts y s t e m ,w f m s ) 铝t j 定了一系列标准。其对工作流的定义为:工作流是 指整个或部分经营过程在计算机支持下的全自动化或半自动化。它根据一系列过 程文档、信息或任务能够在不同的执行者之间传递与执行。 基于x m l 的w e b 服务( w e bs e r v i c e s ) t 3 1 主要目标就是在现有的各种异构平台的 基础上构筑一个通用的与平台无关、语言无关的技术层,各种不同平台之上的应 用依靠这个技术层来实施彼此的连接和集成。它要解决的是如何让计算机系统来 使用w e b 应用所提供的服务,对于企业应用的集成有着无与伦比的优势。但是由 于w e b 服务本身没有语义和流程的概念,简单的w e b 服务往往无法满足实际的需 求,这样结合w e b 服务技术和工作流技术,在电子商务、电子政务中构建基于w e b 服务的工作流引擎正是本文所研究课题。 1 2 国内外研究现状 随着工作流管理系统需求的不断膨胀,工作流的相应研究也迅速的发展。由 于各种新技术层出不穷,各个采用了新技术的工作流管理系统也不断推出,目前, 工作流领域主要存在如下几种不同方向的工作流管理系统: 基于成熟产品的工作流管理系统 重庆大学硕士学位论文i 绪论 以m i c r o s o f te x c h a n g e 和i b md o m i n on o t e s 为典型的成熟群件平台,在其上 面作二次开发,较容易实现工作流基本功能,并且具有开发周期短、稳定性高等 优点,但毕竟是二次开发,不能完全拥有自主版权,更为重要的是,这些成熟群 件平台无法适应一些用户的多样性需求,适应性较差。 一面向对象的工作流管理系统 随着面向对象技术的成熟与应用,许多学者开始研究如何利用面向对象的技 术来推动工作流技术的发展,主要包括两个领域:第一,如何利用o o 技术如名 字服务、安全控制技术来简化w f m s 的实现,提高w f m s 的性能,如佐治亚大学 的m e t e o r 产品则是其中的代表,它是一种基于c o r b a 标准面向对象的w f m s , 文献【1 2 】探讨了如何利用c o r b a 的对象事务服务来构建可靠工作流产品o p e n f l o w 的技术;第二,如何利用面向对象的分析方法来构建面向对象的流程定义,以提 高流程定义的可重用性,文献【1 3 】用u m l 方法给出了w o n d e r 系统o o 模型。 分布式工作流管理系统 为了提高系统的鲁棒性,许多学者研究如何实现w f m s 的分布处理,一个流 程可以使用多个分布的工作流引擎,每个工作流引擎可以调度不同流程实例或流 程实例的不同任务,一个调度引擎发生故障时,不会影响其它引擎的工作。分布 式系统会带来一系列的问题,如数据一致性、引擎间调度、故障恢复等问题,这 些是当前研究的热点。 基于w e b 构架的工作流管理系统 基于w e b 构架的应用系统,由于零安装、移动性好、易操作等优点得到了巨 大的发展,许多应用系统转移到基于w e b 构架上来,w f m s 也不例外。现有的许 多w f m s 也增加了对w e b 的支持,但多局限于用w e b 来实现任务项( w o r k i t e m ) 的 处理,而在s e r v e r 端通过c g i 与工作流引擎通信这种体系结构【1 4 1 ,c g i 程序的瓶 颈、h t m l 不能表示结构化数据都使现有的w e b 使能的系统效率不高。如何利用 x m l 和j a v a 等技术来实现w e b 构架的w f m s ,是一个急需研究的课题。韩国国 立汉城大学的v e o n g h o k 和s u kh o k 等人提出w w - f l o w 的体系结构,使用j a v a 、 s e r v l e t 技术对c g i 模式进行了改造【1 5 j ;美国明尼苏达大学的r t r i p a t h i 等人利用 x m l 技术实现了分布式工作流管理系统【1 6 】。 目前工作流管理系统的应用虽然随着各种各样采用新技术的系统的推出得到 越来越广泛的应用,但是总得来说工作流管理系统的应用还是处于一个非常谨慎 的状态,根本原因就是当前的工作流管理系统存在着各种各样的缺陷或者说不足: 一通信基础结构的支持差 工作流的运行必须要有底层的通信基础结构的支持,也就是说,工作流管理 系统必须要建立在适当的底层通信基础之上,以便实现执行工作流所需要的分布 2 重庆大学硕士学位论文1 绪论 计算环境,比如:c o r b a ,d c o m ,j 2 e e 都是可以选择的。但是,就目前能够实 现分布计算环境的产品来看,他们在实际应用中仍然显得不够成熟,而且在价格 上也给企业造成一定的负担。企业若想部署工作流管理系统,还必须要格外付出 经费与精力去构筑底层环境,这种情况是企业所不希望的,实际上它也限制了工 作流管理系统在企业的广泛应用。 一标准化程度差 不同的厂商所提供的工作流产品具有自己独立的一套工作流模型、工作流定 义语言以及a p i 函数。在缺乏标准的情况下,用户一旦选定一种产品之后,就很 难在过渡到其它同类产品上了:而且不同的系统之间缺乏互操作的接口,使得用 户有很多后顾之忧。 性能问题 目前大多数工作流产品无法满足企业每天处理上万个,甚至每小时处理几千 个业务的需求。 一柔性问题 无论是过程模型的表示还是角色解析,现有的工作流管理系统表现出柔性差 的特点。一些企业的实际应用常常有对执行路由的动态需求以及工作项执行人的 动态选派,对于这些需求现在的工作流管理系统都不能很好的给予支持。 鲁棒性问题 工作流管理系统在企业的实际应用中,常常会由于某些不常规的操作,造成 流程执行的错误。这些不常规操作包括流程定义的不合法性、操作的时间过长等 等。对于这些错误问题的妥善解决也是以后的工作流管理系统需要做的工作。 w e b 服务是一个崭新的分布式计算模型,其目标是解决异构环境下应用系统 的集成和互操作。它构建在x m l 、s o a p 、w s d l 、u d d i 等开放标准和技术之上。 是封装成单个实体并发布到网络上以供其它程序使用的功能集合,这些实体以一 种标准的方式发布到w e b 站点上,其它w e b 应用程序可以方便地找到并使用它们, 从而协同完成某个业务逻辑。w e b 服务技术的出现就解决了当今工业界存在的软 件体系架构( 如:c o r b a ,j 2 e e ,c o m d c o m 等) 相互间的通讯困难【5 】。把w e b 服务技术应用到工作流管理系统中,将有广泛的发展前景,具体详见第二章w e b 服务技术。 1 3 本文研究的目的和内容 1 3 1 研究目的 工作流管理系鲥1 1 ( w f m s ) 通俗的说就是对多个人按照多个步骤完成的商业流 程进行管理的一个自动化的系统,它的功能就是在正确的时间以正确的工具将正 3 重庆大学硕士学位论文1 绪论 确的数据发送给正确的人,而工作流引擎就是完成这项工作的核心部件。 本论文主要针对当前工作流管理系统在应用中集成能力差、柔性差、投入成 本高等缺点,在当前飞速发展的w e b 服务架构基础之上,设计了基于w e b 服务的 工作流引擎。它具有松散耦合、低进入屏障、行业支持、高度可集成能力等优势。 1 3 2 研究内容 本论文首先在研究并掌握工作流管理系统的体系结构,工作流管理联盟的参 考模型、功能组件、接口等方面,分析了工作流管理系统应用集成与互操作不足, 结合w e b 服务技术,研究了基于w e b 服务的工作流技术,并结合当前工作流技术 在电子商务、电子政务中的应用发展“7 ”,提出了基于w e b 服务的工作流管理系统 的体系结构,并重点研究和实现了设计的基于w e b 服务的工作流引擎。 1 4 本章小结 本章首先提出了研究的问题,综述了工作流技术在国内外研究现状及不足, 简要介绍了w e b 服务技术,阐明把w e b 服务引入到工作流管理系统中,来解决这 些问题,技术上将容易实现,成本投入底。然后提出了本论文的研究目的和内容。 4 重庆大学硕士学位论文 2w e b 服务技术与工作流 2 w e b 服务技术与工作流 2 1w e b 服务技术 2 1 1w e b 服务定义及优点 w e b 服务( w e bs e r v i c e s ) 技术【3 1 是当今计算机软件业的焦点,它的目标是在现 有的各种异构平台上实现一个通用的与平台无关、语言无关的技术层,使各种平 台上的应用系统可以依靠这个技术层来实现彼此的连接与集成。 对于w e b 服务,i b m t 2 3 的定义是:w 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 b 服务是一种基于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 服务都可以与其它w e b 服务进行交互,s o a p 是主要供应商都支持 的标准,这就避免了c o m + 、c o r b a 等其他协议之间转换的麻烦和所带来的低效 和不实用,当然,开发者还可以用任何语言来编写w e b 服务。 促进松散耦合的应用 此特征一方面来源于基于对象组件的技术,只要w e b 服务的调用界面保持不 便,其实现有任何改变、甚至迁移到其他平台对于调用者来说都是透明的。另一 方面来源于w e b 服务独特的运行架构,调用者无需在开发应用程序时,预先知道 被调用的对象组件的实例和于它交换信息的通信协议,这些都可以在运行时即时 连接。 一基于使用开放标准协议 5 重庆大学硕士学位论文 2w e b 服务技术与工作流 所有w e b 服务的公共协约完全使用开放的标准协议进行描述、传输和交换。 w e b 服务的协约比其它对象组件技术的界面更加规范化,而且基本上都是出自 w 3 c 制定最终版本并发布和维护的。 _ 普遍性 w e b 服务的使用以x m l 为基础,用h t t p 作为数据承载的主要协议,而这两 种技术又是业界广泛接受和使用的技术。 能够跨平台的集成应用 w e b 服务采取简单的、易理解的标准w e b 协议作为组件界面描述和协同描述 规范,完全屏蔽了不同软件系统平台的差异,无论是c o r b a 、d c o m 还是e j b 都可以通过这种标准的协议进行互操作,实现了在当前环境下最高的可继承性。 _ 行业支持 w e b 服务所基于的x m l 技术受到广泛的支持,而协议栈中的技术也为业界特 别是几家大公司( 包括微软、i b m 、s u n 等) 所拥护。 2 1 2w e b 服务的体系结构 w e b 服务的体系结构是面向服务的体系结构( s o a ) 。服务是指个组件的集 合,它们向外界提供某个接口,能够完成某种业务功能。在面向服务的架构中, 服务的实现可以被放置在网络的任何位置,只需要对外界发布这个服务的描述, 其他的系统就可以发现并使用这个服务。在面向服务的构架中,一个系统实现了 客户需要的某些业务过程,其中每个服务实现了业务过程中的某个活动。从软件 开发的过程来看,面向服务的架构更加符合业务的视角,设计人员可以方便地根 据已经获得的业务需求进行设计,采用服务实现各部分的业务需求,并将它们组 装成应用系统。总的来说,面向服务的构架可以尽可能地利用组织中现有的资源, 并且通过将实现的细节和业务逻辑分离,而使系统可以更好地被复用、扩展和维 护。 w e b 服务主要建立在三个角色的交互上,它们是:服务的提供者、服务的注 册中心和服务的请求者,而交互的内容包括发布、查找和绑定三个操作。这些角 色和操作都围绕w e b 服务的两个产品展开,它们是:服务本身和服务说明。如图 2 1 所示,显示了这些操作、提供这些操作的模块和它们之间的交互【2 3 】。 6 重庆大学硕士学位论文 2w e b 服务技术与工作流 图2 1w e b 服务的角色、操作和产品 f i 9 2 1w e bs e r v i c e sr o l eo p e r a t i o na n dp r o d u c t i o n 服务的提供者:从商业的角度来看,这是服务的拥有者。从w e b 服务的架构 看,这是拥有服务的平台。 服务的请求者:从商业的角度来看,这是需求某种功能的商业机构。从w e b 服务的架构看,这是查找、调用服务的应用程序。服务请求可以是手工使用浏览 器完成,也可以是没有用户界面的应用程序发出。 服务的注册中心:服务的提供者向这里发布他们的服务说明,而服务的请求 者在这里找到服务,并得到与服务绑定的信息,在开发时刻实现静态绑定或者在 运行时刻实现动态的绑定。对于静态绑定的服务请求者来说,服务的注册中心是 可选的,因为服务的提供者可以直接向服务的请求者发送一份服务说明,而服务 的请求者也可以通过除服务注册中心之外的其他渠道获得服务说明,比如本地文 件、f 砸文件、w e b 站点等。 在w e b 服务的实现过程中,有三个操作是必须的:服务说明的发布、查找服 务说明和根据服务说明绑定或调用服务。这些操作可能会执行一次或多次。 发布:为了能够访问服务,必须首先发布服务说明,服务的请求者才能找到 它。到底把服务说明发布到哪里,或者以什么方式发布,这是由应用程序的具体 要求决定的。 查找:在查找操作中,服务的请求者可能会直接得到服务说明,也可能会向 服务的注册中心查询服务说明的位置。查找操作可以出现在服务请求者生命周期 的两个不同阶段:设计时刻和运行时刻,前者获得服务的接口说明用于程序的开 发,后者获得服务的绑定和定位说明用于服务的调用。 绑定:在绑定操作中,服务的请求者在运行时刻使用服务说明中的绑定信息 定位、连接和调用服务,启动与服务的交互,调用服务的方法。 7 重庆大学硕士学位论文 2w e b 服务技术与工作流 w e b 服务中会出现两个产品,一个是服务本身,另一个是服务说明。 服务:w e b 服务是由服务说明定义的接口,而这里接口的实现就是服务本身。 服务是服务提供者在网络上发布可供不同平台使用的软件模块。服务的请求者可 以调用它,或者与之交互。服务本身也可能是请求者,在它的实现过程中使用其 他的w e b 服务。 服务说明:服务说明包含服务接口和实现的详细细节,包括数据类型、操作、 绑定信息和网络位置等,也可能包括分类和其他元数据信息,这些信息通常是为 了协助服务请求者发现和使用服务。服务的提供者可以把服务说明直接发送给服 务的请求者,也可以发布到服务的注册中心。 2 1 3w e b 服务的协议结构 实现一个完整的w e b 服务体系需要有一系列的协议规范来支撑。如图2 2 所 示,w e b 服务体系呈现一种栈的结构【3 矧。 ? ? ? ? ? r o u t i n g ,r e l i a b i l i t ya n dt 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 nu d d l詈 茸 喜s e r v i c ed e s e r i p t i o nw s d l 藿 曼 曼 m e s s a g i n g s o a p 8 t r a n s p o r t h 1 t p ,f t p ,s m i p i n t e r a c ti p v 4 i p v 6 图2 2w e b s e r v i c e s 协议栈 f i 9 2 2w e bs e r v i c e sp r o t o c o ls t a c k 其中,最下面两层是先前已经定义好的并且广泛使用的传输层和网络层的标 准:i p 、h t t p 、s m t p 等。而中间四层是目前开发的w e b 服务的相关标准协议, 包括服务调用协议s o a p 、服务描述协议w s d l 和服务发现集成协议u d d i ,以 及服务工作流描述语言w s f l 。而最上面层次描述的是更高层的待开发的关于路 由、可靠性以及事务等方面的协议。侧面的垂直层是各个协议层的公用机制,这 些机制一般由外部的正交机制来完成。 从以上这个技术层次图我们可以看到,w e b 服务追求的第一目标是简单性。 可能大家会觉得很奇怪,有那么多协议,怎么能说他简单。 首先,这些协议本身都是简单的,无论是h t t p 、f t p 等传统的t c p i p 系统 重庆大学硕士学位论文 2w e b 服务技术与工作流 的网络协议,还是s o a p 、w s d l 、u d d i 、w s f l 等基于x m l 的协议,他们设计 原则中的一个最重要点就是力求简单性。相信大家如果对x m l ,s o a p 等有深入 了解的话,一定会深深体会这一点。 其次,一个可以使用的w e b 服务应当按照需要选用若干层次的功能,而无需 所有的特性。比如在目前状况下,一个简单应用可能只要使用w s d l s o a p 就可 以架构一个符合规范的w e b 服务了。 最后,所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。 无论是m v 4 、h t t p 、f t p 这些现有的网络协议,还是s o a p 、w s d l 等这些基于 x l v i l 而定义的协议都是遵循着一个原则:继承原有的被广泛接受的技术,这样才 能使得w e b 服务被广泛接受。 2 1 4w e b 服务标准 x m l 4 , 1 7 , 1 8 ( 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 推出的新的 标准标记语言,是一种基于文本的标记语言。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 的异构平 台互操作性。 s o a p s o a p 2 5 1 的全称是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 是一个x m l 的应用,更是一种协议,如图2 3 所示。 w c b 应用w c b 应用 s o a ps o a p t c pt c p i pi p w e b 应用w e b 直用 s o a ps o a p h t t ph r r p t c pt c p i p 图2 3s o a p 可以基于任何传输协议 f i 9 2 3s o a p c a l lb a s eo na n yt r a n s p o r tp r o t o c o l s o a p 和h t t p 一样是一种应用级的协议,因此它可以直接建立在传输协议之 上,比如t c p 。可是,当今的i n t e r n e t 结构中还有代理和防火墙等的介入,而他们 大多只允许h t t p 通过。为了让所有的连接到i n t o r n o t 的应用程序实现通信,s o a p 9 重庆大学硕士学位论文 2w e b 服务技术与工作流 必须能够通过防火墙和代理,为了达到这一目的,当前的s o a p 应用都是建立在 h t t p 协议之上的,如图2 3 所示。s o a p 是在x m l 基础上定义的,完全继承了 x m l 的开放性和描述可扩展性。s o a p 可以使用现有的基于t c p i p 的应用层协议 h t t p ,s m t p ,p o p 3 等,从而获得与现有通信技术最大程度地兼容。s o a p 为使 用x m l 在松散、分布环境中对等地交换结构化和类型化信息提供了一个简单地机 制。s o a p 本身并不定义任何应用语义,如编程模型或特定语义实现,它只定义了 一种简单地机制,通过一个模块化的包装模型和对模块中特定格式编码的数据重 编码机制来表示应用语义。s o a p 是一个基于x m l 的,用于分布式环境下数据交 换的简单、轻量级协议,包括三部分: s o a p 封包( e n v e l o p e ) ,封装定义了描述信息中的内容是什么,是谁发送 的,谁来接收以及如何处理消息的框架; - s o a p 编码规则,表达应用程序定义的数据类型实例的编码规则; s o a pr p c 表示,表示远程过程调用和应答的协定; - s o a p 绑定( b i n d i n g ) ,使用底层协议交换信息。 s o a p 消息结构是一个信封结构,包含一个可选的h e a d e r 以及必须的b o d y , 如图2 4 所示。 s o a pe n v e l o p e s o a ph e a d e r s o a pb l o c k : s o a pb l o c k s o a pb o d y s o a pb l o c k s o a pb l o c k l 图2 4s o a p 消息结构 f i 9 2 4s t r u c t u r eo fs o a pm e s s a g e s o a p 定义了服务请求对象和服务提供对象之间的消息协议,实现了w e b s e r v i c e s 之间的消息交换。因此,服务请求对象能以面向对象的方式执行服务提供 对象的远端方法。 1 0 重庆大学硕士学位论文 2w e b 服务技术与工作流 w s d l w s d l 2 4 ( 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 e b 服务描述语言1 是m i c r o s o r 公司的s d u s 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 ) 和 i b m公司 的 n a s s l ( n e t w o r k a c c e s s i b l es e r v i c e ss p e c i f i c a t i o nl a n g u a g e ) 结合并被w 3 c 接纳后 形成的标准。它是一种x m l a p p l i c a t i o n ,它将w e b 服务描述定义为一组服务访问 点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务 进行访问( 类似远程过程调用) 。w s d l 首先对访问的操作和访问时使用的请求响 应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义 具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的 w e b 服务。w s d l 用来描述一个w e bs e r v i c e s 能做什么,它的位置在哪里,如何 调用它等。u d d i 注册描述了w e bs e r v i c e s 的绝大多数方面,包括服务绑定的细节, w s d l 可以看作是u d d i 服务描述的子集。 w s d l 把w e b 服务定义为网络端点的集合,w s d l 文档在w e b 服务的定义中 使用下列元素: _ t y p e s ,数据类型定义的容器,它使用某种类型系统( 一般使用x m l s c h e m a ) 。 - m e s s a g e ,通信消息的数据结构的抽象类型化定义。使用t y p e s 所定义的 类型来定义整个消息的数据结构。 - o p e r a t i o n ,对服务中所支持的操作的抽象描述,一般单个o p e r a t i o n 描述 了一个访问入口的请求响应消息对。 _ p o r t t y p e ,对于某个访问入口点类型所支持的操作的抽象集合,这些操作 可以由一个或多个服务访问点来支持。 一b i n d i n g ,特定端口类型的具体协议和数据格式规范的绑定。 - p o r t ,定义为协议数据格式绑定与具体w e b 访问地址组合的单个服务访 问点。 - s e r v i e e ,相关服务访问点的集合。 如图2 5 所示,是w s d l 文档的组织结构,w s d l 文档被分为两种类型,即 服务接i s ( s e r v i c ei n t e r f a c e ) 和服务实现( s e r v i c ei m p l e m e n t a t i o n ) 。 重庆大学硕士学位论文 2w e b 服务技术与工作流 图2 5w s d l 文档的组织结构 f i 9 2 5s t r u c t u r eo f w s d l d o c u m e n to r g a n i z a t i o n w s d l 的设计理念完全集成了以x m l 为基础的当代w e b 技术标准的一贯设 计理念:开放。w s d l 允许通过扩展使用其它的类型定义语言( 不光是x m l s c h e m a ) ,允许使用多种网络传输协议和消息格式( 不光是在规范中定义的这些: s o a p h t t p 、h t t p - - g e t p o s t 以及m i m e 等) 。同时w s d l 也应用了当代软件 工程中的服用理念,分离了抽象定义层和具体部署层,使得抽象定义层的复用性 大大增加。比如我们可以先使用抽象定义层为一类w e b 服务进行抽象定义( 比如 u d d ir e g i s t r y ,抽象定义必须是完全一致的,遵循u d d i 规范) ,而不同的运营公 司可以采用不同的具体部署层的描述结合抽象定义完成其自身的w e b 服务的描 述。 u d d i u d d # 2 6 ( 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 ,统一描述、发现和集 成协议) 本质上是为解决当前在开发基于组件化的w e b 服务中所使用的技术方法无 法解决的一些问题。u d d i 具有非凡的技术简单性,他为w e b 服务在技术层次上 提供了三个重要的支持: - 标准化的、透明的、专门描述w e b 服务的机制 _ 调用w e b 服务的简单机制 一可访问的w e b 服务注册中心 u d d i 是分布式w e b 服务的信息注册规范。w e bs e r v i c e s 可以根据这一规范进 行注册,以便被其它需要该服务的用户发现。u d d i 规范描述了w e b 服务的概念, 同时也定义了一种编程接口,这种编程接口提供了描述各种w e b 服务的简单框架。 1 2 重庆大学硕士学位论文 2w e b 服务技术与工作流 规范包括几份相关的文档和一份x m ls c h e m a ,用来定义基于s o a p 的注册和发现 w e b 服务的标准。如图2 6 所示,描述了u d d i 规范、x m ls c h e m a 和u d d i 注册 中心之间的关系,u d d i 真正实现了w e bs e r v i c e s 信息访问的“一次注册,到处发 布”。 图2 6 u d d i 与x m l s c h e m a 之间的关系 f i 9 2 6r e l a t i o n s h i pb e t w

温馨提示

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

最新文档

评论

0/150

提交评论