(计算机软件与理论专业论文)基于工作流面向服务的分布式协同系统研究.pdf_第1页
(计算机软件与理论专业论文)基于工作流面向服务的分布式协同系统研究.pdf_第2页
(计算机软件与理论专业论文)基于工作流面向服务的分布式协同系统研究.pdf_第3页
(计算机软件与理论专业论文)基于工作流面向服务的分布式协同系统研究.pdf_第4页
(计算机软件与理论专业论文)基于工作流面向服务的分布式协同系统研究.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

武汉理下大学硕士学位论文 摘要 面向服务架构s o a ( 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 可以理解为“抽象、松散 耦合和粗粒度 的软件架构。它可以根据服务请求通过分布式网络对松散耦合 的应用群件进行部署、组合和使用,为建立协同系统提供了一种新途径。 工作流是对常规性事务进行管理、集成的流行技术,通过工作流对业务流 程的管理,可以改进和优化业务流程,提高业务工作效率;实现更好的业务过 程控制,提高服务质量;并能提高业务流程的柔性。 论文从s o a 架构和工作流技术理论知识入手,以河南r 报社稿件流传及管 理系统的研究开发为背景,研究了基于工作流面向服务的软件开发的体系结构、 原理和方法。首先提出了适应层次划分思想的面向服务软件开发的体系结构, 阐述相应的设计模式;然后结合工作流技术将s o a 架构应用于协同系统,研究 面向服务的协同系统中的协作模型、协作控制机制、系统结构等关键技术。 然后在此基础上,论文结合经典的面向对象的分析与设计方法( o o a d ) 和传 统的软件体系结构的分层思想,在实践的基础上构建了基于s o a 的应用开发的 模型体系结构,该模型共分为五层:表示层、业务外观层、业务逻辑层、数据 访问层和数据层。 最后,结合河南省r 报社稿件流传及管理系统实例,以工作流模型为原型, 以面向服务的体系结构为基本框架,构建分布式环境中协同工作流服务框架。 使用n e t 开发平台,实现了基于工作流的面向服务的分布式协同系统。 关键词:面向服务的架构,w e bs e r v i c e s ,t 作流,计算机支持的协同工作 武汉理工大学硕士学位论文 a b s t r a c t s o a ( 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 ) ,w i 吐lt h es a m ea sp r o c e s s o r i e n t e d ,o b j e c t - o r i e n t e da n dc o m p o n e n t - o r i e n t e d ,i sas o f t w a r ea p p r o a c ho ff o r m a t i o na n dd e v e l o p - - m e n t 。s o ac a nb eu n d e r s t o o da st h e “a b s t r a c t ,l o o s e l yc o u p l e da n dc o a r s e g r a i n e d s o f t w a r ea r c h i t e c t u r e a c c o r d i n gt os e r v i c er e q u e s t s ,i tc a l ld e p l o y m e n t ,c o m p o s i t i o n a n du s el o o s e l yc o u p l e da p p l i c a t i o ng r o u p w a r eb yd i s t r i b u t e dn e t w o r k , a n dp r o v i d e sa n e ww a yt os e tu pac o l l a b o r a t i v es y s t e m w o r k f l o wi st h ep r e v a l e n c et e c h n o l o g i e sa b o u tm a n a g e m e n ta n di n t e g r a t i o no f r o u t i n ea f f a i r s ,b ya d o p t i o no fm a n a g e m e n to fb u s i n e s sp r o c e s s e s ,w o r k f l o wc a n i m p r o v ea n do p t i m i z eb u s i n e s sp r o c e s s e s ,i m p r o v eo p e r a t i o n a le f f i c i e n c y , a c h i e v e b e t t e rc o n t r o lo fb u s i n e s sp r o c e s s e s ,i m p r o v es e r v i c eq u a l i t y ;a n di m p r o v ef l e x i b i l i t y o fb u s i n e s sp r o c e s s e s t h i st h e s i ss t a r t sf r o mt h es o aa r c h i t e c t u r ea n dw o r k f l o wt e c h n o l o g y t h e o r e t i c a lk n o w l e d g e , e x p o u n d st h er e l a t i o n s h i pb e t w e e nt h e m o nt h eb a c k g r o u n d o ft h er e s e a r - c ha n dd e v e l o p m e n to nm a n u s c r i p tc i r c u l a t i o na n dm a n a g e m e n ts y s t e mo fh e n a nd a i - l y ,i tr e s e a r c h e so nt h es o f t w a r ed e v e l o p m e n ta r c h i t e c t u r e , p r i n c i p l e sa n dm e t h o d s b a s e do nw o r k f l o wa n ds e r v i c e o r i e n t e d t h ep a p e rf i r s tp r o p o s e st h ei d e at oa d a p t t h el e v e lo fd i v i s i o ni nt h es e r v i c e - o r i e n t e ds o f t w a r ed e v e l o p m e n ta r c h i t e c t u r e ,a n d g i v e st h ec o r r e s p o n d i n gd e s i g np a t t e r n ;a n dc o m b i n e s 诵t t lw o r k f l o wt e c h n o l o g y ,i t w i l la p p l ys o aa r c h i t e c t u r et os y n e r g ys y s t e m t h ep a p e rw i l lg i v et h er e s e a r c ho n t h ek e yt e c h n o l o g i e ss u c ha sc o l l a b o r a t i o nm o d e l ,c o l l a b o r a t i v ec o n t r o lm e c h a n i s m s , s y s t e ms t r u c t u r eo ft h es e r v i c e - o r i e n t e dc o l l a b o r a t i o ns y s t e m a n do nt h i sb a s i s ,c o m b i n e dw i t ht h ec l a s s i co b j e c t - o r i e n t e da n a l y s i sa n dd e s i g n m e t h o d ( o o a d ) a n dt h et r a d i t i o n a ls o f l r w a r ea r c h i t e c t u r el a y e r e dt h o u g h t ,t h et h e s i s b u i l d so nt h ef o u n d a t i o no fs o a b a s e da p p l i c a t i o nd e v e l o p m e n tm o d e la r c h i t e c t u r e , t h em o d e li sd i v i d e di n t of i v el e v e l s :e x p r e s sl a y e r , b u s i n e s sf a c a d el a y e r , b u s i n e s s 武汉理t 大学硕十学位论文 l o g i cl a y e r ,d a t aa c c e s sl a y e ra n dd a t al a y e r f i n a l l y ,c o m b i n e dw i t ht h ee x a m p l e sh e n a nd a i l ym a n u s c r i p tc i r c u l a t i o na n d m a n a g e m e n ts y s t e m s ,b a s e do nt h ep r o t o t y p eo fw o r kf l o wm o d e l ,a n do i lt h eb a s i c f r a m e w o r ko fs e r v i c e o d e m e da r c h i t e c t u r e ,t h et h e s i sb u i l d sc o i l a b o r a t i v ew o r k f l o w s e r v i c ef r a m e w o r ki nd i s t r i b u t e de n v i r o n m e n t b yu s i n g n e td e v e l o p m e n tp l a t f o r m , t h et h e s i sc o m p l e t e st h ei m p l e m e n t a t i o no fw o r k f l o w - b a s e da n ds e r v i c e o r i e n t e d d i s t f i b u t e dc o l l a b o r a t i v es y s t e m k e yw o r d s :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 ,w e bs e r v i c e s ,w o r k f l o w ,c o m p u t e r s u p p o r t e dc o o p e r a t i v ew o r k i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方以外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究的任何贡 献均已在论文中作了明确的说明并表示了谢意。 研究生( 签名) :煮沮日期:丝灿 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权武汉理工大学可以将本学位论文的全部内容编入有关数据库 进行检索,可以采用影印、缩印和其他复制手段保存或汇编本学位论文。同时 授权经武汉理工大学认可的有关机构或论文数据库使用或收录本学位论文,并 向社会公众提供信息服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) :叁毯导师( 签名) 日期:迎卜蛐勺 武汉理t 大学硕士学位论文 1 1 论文概述 1 1 1 论文研究的背景 第1 章绪论 协同软件作为种新的软件门类,其产生和发展不过近几年的事情。但协 同软件的应用思想,却是随着管理软件的发展之初就已经存在,只不过当时“协 同”并未成为一个成熟和重要的概念被提及。在管理软件应用的早期,m i s ( 管 理信息系统,m a n a g e m e n ti n f o r m a t i o ns y s t e m ) 和o a ( 办公自动化,o f f i c e a u t o m a t i z a t i o n ) 曾经是两个无所不包而又含混不清的信息化应用概念,广泛地被 提及。后来,e r p 、c r m 、s c m 等相对更为明确的信息化应用理念,开始从宽 泛而无法确指的m i s 和o a 中脱离出来,成为更为专业的信息化应用领域。 继e r p 、c r m 、s c m 等信息化应用概念之后,协同软件在理论和应用等方 面发展都极为迅速,这主要得益于协同软件适应了互联网时代全球一体化协作 管理的要求。在协同软件刚刚兴起之初,软件的开发思想已经走过了“面向过 程、“面向对象”的历程,正处在“面向组件修的时期【j 】。 这一时期,“面向组件”的应用平台成为最为热门的软件思潮之一,国内 许多专业的协同软件厂商都是基于平台化思想,推出自己的协同软件产品,复 旦协达的c a p ( c o l l a b o r a t i o na p p l i c a t i o np l a t f o r m ,协同应用平台) ,就是基于这 一背景下推出的。虽然平台化的应用解决了协同软件在开发时的效率问题,但 基于平台的应用在业务服务的体现上还是有所不足,许多平台的设置工作还无 法在应用层面做到。 面向服务架构( 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 ) 在此背景下应运而生, s o a 可以简单的理解为“抽象、松散耦合和粗粒度的软件架构,它可以根据 服务请求通过分布式网络对松散耦合的应用群件进行部署、组合和使用,为建 立高度灵活的协同系统提供了一种新途径。 s o a 带给协同软件在功能和应用上,与传统的e r p 、c r m 等软件有变革性 地突破,软件功能不再被固化,“非结构化 的应用数据和功能大行其道。在软 武汉理工大学硕十学位论文 件的“通用”与“个性”之间,s o a 为管理软件找到了一条中间路线,软件的 大批量定制成为可能。从这一意义上而占,s o a 对协同软件的应用普及,具有 不可磨灭的功勋。 从软件技术角度,将协同软件简单定义为协同( 技术) + ( 传统) 软件,将 协同软件技术分为四类:角色协同、信息协同、流程协同和计算协刚2 1 。目前, 流程协同在企业级应用系统中经常被涉及到。而实现流程协同的主要技术是工 作流技术,当前,工作流技术正处在发展的关键阶段:一方面,应用领域的迫 切需求使工作流技术有不断发展的动力,并逐渐在一些领域取得了成功应用。 另一方面,只有处理好工作流技术与具体实践的交汇,才能在巨大的现实需求 中取得成功。 1 1 2 论文研究的目的及意义 应用s o a ,将分布式协同系统中的各种业务功能以服务的形式封装,服务 之间( 企业内或跨企业) 以松耦合的形式互联和互操作,完成特定的业务需求。应 用一种新的面向服务的体系结构,对分布式协同系统进行统一部署,资源以松 耦合的方式集成。采用工作流技术,能够图形化显示稿件流传的进展情况,执 行结果立即反馈,组织、决策、业务三大流程尽在掌握,工作效率和管理执行 力显著提升。因此,基于工作流技术,采用面向服务的分布体系结构,能较好的 整合现有技术与系统,达到灵活且快速改变业务规则的需求,是今后大规模分 布式协同系统的发展方向,值得在企业级协同系统的丌发中采用。 1 2 论文相关的国内外研究现状 1 2 1 论文相关的国外研究现状 目前工作流技术的研究正日益受到人们的重视,许多大学和研究机构都开 展了很多研究项目,取得了众多的研究成果。在国外的研究成果中,比较著名 的有i b m 公司a l m a d e i l 研究中心研究开发的基于持久消息队列的分布式工作 流管理系统- - e x o t i c a f m q m ( f l o w m a r k o nm e s s a g eq u e u em a n a g e r ) 、佐治亚大 学计算机系研究开发的具有自适应能力的工作流管理系统一m e t e o r ( m a n a g i n g e n d 2 t 0 2 e n do p e r a t i o n s ) 、基于分布式主动数据库技术的工作流管理系统w i d e 2 武汉理工人学硕士学位论文 ( w o r k f l o wo ni n t e l l i g e n ta n dd i s tr i b u t e dd a t a b a s en v i r o n m e n t ) 以及基于状态与活 动图的工作流管理系统一m e n t o r ( m i d d l e w a r ef o re n t e r p r i s e 2 w i d ew o r k f l o w m a n a g e 2 m e n t ) 。 s o a 目前已被广泛认可:全球的大型企业在涉及i t 战略规划时几乎都把 s o a 作为中心讨论内容;国际知名咨询公司g a r t n e r 把s o a 评定为2 0 0 6 年 1 0 大战略技术之一:g a r t n e r 也预测,到2 0 1 0 年,7 0 的企业将会采用s o a 作为其构造应用和过程的指导原则。 1 2 2 论文相关的国内研究现状 相对于国外工作流技术的研究和发展,我国对工作流技术的研究还处于起 步阶段,自主开发的工作流产品还为数很少,在国外的工作流产品的引进和消 化方面的工作也十分欠缺。目前在国内一些大学,如清华大学、西北大学、浙 江大学、上海交通大学都己开展了对工作流技术的研究工作。其中,清华大学 范玉顺教授设计、开发了c i m f i o w 工作流管理系统,提出了c i m f l o w 工作流模 型;史美林教授带领的课题组提出了一个基于w w w 的通用工作流管理系统: w o w w w w o r k f l o wo nth ew o r l dw i d ew e b ,并将其与传统的c s c w 技术结合 起来;浙江大学研制了工作流过程描述语言w p d l ( w o r k f l o wp r o c e s sd e f i 2 n i t i o n l a n g u a g e ) ,实现了编译制导的工作流建模支撑平台;西安协同软件公司与西北 大学合作开发的s y n c h of l o w ,作为一个过程管理平台,其流程的定义方面己经 达到了业界领先的水平,基于j 2 e e 的实现,使得系统具有足够的集成能力。 国内的s o a 还是一个比较新的事物,虽然近两年关于s o a 的报道经常见诸 媒体,但真正s o a 的应用成果却很少。比较著名的当属复旦协达的 c a p ( c o l l a b o r a t i o na p p l i c a t i o np l a t f o r m ,协同应用平台) 。国内对s o a 的研究还处 于起步阶段。 综合国内外工作流和s o a 发展现状而言,设计出个基于工作流面向服务 的分布式协同系统,旨在应用s o a 架构来提高应用系统的灵活性和重用性,并 采用工作流技术来管理业务流程,二者的结合,可以充分发挥s o a 和工作流的 双重优势,具有理论研究和应用推广意义。 武汉理1 :大学硕士学位论文 1 3 论文的研究内容 本文进行下述内容的学习、研究工作: 1 ) 深入学习和研究面向服务架构的概念及原理,学习介绍s o a 的实现技 术:w e bs e r v i c e 技术,以及用n e t 实现、发布及引用w e bs e r v i c e 的方法。研 究如何实现一个采用s o a 架构的协网系统; 2 ) 深入学习和研究工作流技术、工作流建模语言b p m n ,定义整个应用程 序如何在服务之问执行其工作流; 3 ) 根据s o a 的架构思想,完全独立的成功利用a s p n e t 和a d o n e t 技 术以及数据库技术设计并实现一个基于s o a 架构的稿件流传及管理系统,稿件 审批的业务流程采用工作流技术进行管理,使系统具有易维护和良好的伸缩性 等特性。通过使用本系统能使各级审稿人员异地异步进行稿件审批工作。 4 武汉理下大学硕十学位论文 第2 章s o a 软件架构 要开发面向服务的平台,必须深入了解什么是s o a ,本章主要介绍s o a 的 定义及发展现状、s o a 的架构、s o a 设计与实现的原则,和s o a 实现的主要 技术,以及w e bs e r v i c e s 的设计、开发、实现、发布。 2 1s o a 概述 随着软件规模越来越庞大,软件的复杂性日益增高,人们想出很多办法来 降低软件丌发的复杂性。比如:模块化设计、0 0 方法、面向组件的方法等,但 这些方法都只在某些方面有限地降低了软件的复杂性f 3 】。现在,更加面对着分布 式软件、应用集成、各种平台、各种语言、各种协议、i n t e m e t 等复杂性。 基于这些应用需求,s o a 展现了实现需求的可能性,它把企业的业务流程 化成服务”。企业的r r 管理部门可以根据自身的业务需求轻松组合这些“颗粒 。 所有的用户可以使用统一的一体化的方式来应用各种信息和数据。w e b 服务则 能够以一贯完整的方式向不同的应用提供数据。 在关于s o a 的定义中,m e t a 组织将s o a 定义为:“一种以通用为目的、 可扩展、具有联合协作性的架构,所有流程都被定义为服务,服务通过基于类 封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议 单独描述”【引。该定义的最后部分表明在服务接口和其实现之间有明确的分界。 w 3 c 将s o a 定义为:“一种应用程序体系结构,在这种体系结构中,所有 功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能以定义好 的顺序调用这些服务来形成业务流程”1 4 j 。 从语义上说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 ) 是面向服务架构,它与面 向过程、面向对象、面向组件一样,是一种软件组建及开发的方式。准确的说 s o a 是一种分布式软件模型,s o a 模型就是用功能服务的概念,来取代原来 构成传统应用系统中的功能模块,使它独立于实现这些服务的硬件平台、操作 系统、网络体系结构和编程语言。 武汉理丁大学硕十学位论文 2 1 1s o a 的发展 s o a 基于构件的分布式计算方式,在o m g 和i o n a 的推动下,成为一个 大家所广泛认可的规范。9 0 年代,c o r b a 和微软的d c o m 编程模式,促进了 s o a 的发展。随着j a v a 编程语言、e j b 构件模式的发布以及j 2 e e 应用服务市 场的成熟,s o a 得到了进一步发展。 在国外,由于s o a 在分布式技术、程序方法学、业务计算能力等方面的进 展,使s o a 作为“现代应用开发领域最重要的课题被提出,许多研究机构、 大学、软件企业将其作为研究重点。i b m 、b e a 、微软等公司和机构都提出了实 现s o a 的新技术。尤其是一些机构联合提出以w e bs e r v i c ea r c h i t e c t u r e ( w s a ) 作为实现s o a 的标准,这使得s o a 在标准化之路上走出来一大步。 国内,s o a 的发展处于起步阶段,中国企业部署s o a 的基础仍然十分薄弱, s o a 成熟应用的案例很少,缺少部署s o a 的经验是s o a 落后的最大困难。 随着互联网络的进一步发展,分布式应用的不断普及,s o a 的应用会更加 的普遍,并被人们所接受,成为一种最重要的软件架构。因此,可以预见,s o a 的发展会对软件设计思想产生很大的影响并对分布式企业应用的不断普及起到 重大的促进作用。 2 1 2s o a 体系结构 s o a 是一个组件模型,它将应用程序的不同功能单元称为服务,通过这些 服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的, 它应该独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种 这样的系统中的服务可以以一种统一和通用的方式进行交互【5 】。 s o a 体系结构旨在提供企业业务解决方案,这些业务解决方案可以按需扩 展或改变。s o a 解决方案由可重用的服务组成,带有定义良好且符合标准的已 发布接口。s o a 提供了一种机制,通过这种机制,可以将原有系统资源封装成 服务后集成到新开发的分布式系统,而不管它们的平台或语言。s o a 中的服务 通过服务描述和传输实现了相互之间的交互,如图2 1 所示。 其中,服务描述是一种经过协商的模式,用于描述服务是什么、应该如何 调用服务以及成功地调用服务需要什么数据等。传输是一种机制,用于将来自 6 武汉理工大学硕十学位论文 服务使用者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送 给服务使用者使用。 、 1 芗7- f 莳 3 厶名刘 、一, 传输 图2 1s o a 结构模型 ,一 ,描 述、i 素务- 7 - 一)u :服务卜j ? 2 1 3s o a 中的工作角色 s o a 服务模型图如图2 - 2 所示,面向服务的体系结构中主要有三种角色: 亘这、 服务提供者卜嘞服务请求者 、 绑定i 调用 图2 2s o a 角色关系图 服务提供者服务提供者的工作是提供服务,可以从服务请求者处接受 请求并可以远程执行所请求服务。并且把包含服务接口、服务访问地址等信息 的服务描述以及服务的其他一些相关元信息,如:服务提供者信息、服务质量 特征等,发布到服务注册中心; 服务注册中心服务注册中心提供服务间接寻址功能。服务消费者通过 查询存储有服务信息库的注册中心以找到感兴趣服务的接口信息1 。可以使服务 消费者实现一种更灵活的动态服务定位:在运行时通过约束条件在多个服务中 选择与条件最匹配的服务; 7 l 、 ?。 述。、务,一,憋竺 己、 武汉理工人学硕士学位论文 服务请求者服务请求者可以通过服务注册中心间接获得服务描述,或 者从服务提供者处直接获得服务描述,然后遵从服务描述的接口和地址约定实 现和服务提供者所提供服务的交互。 2 2s o a 的特点 虽然s o a 的定义还没有得到学者们的统,但是,应用s o a 的目的却很 明确。实旌s o a 的关键目标是实现企业i t 资产的最大化重用。要实现这一目标, 就要在实施s o a 的过程中牢记以下特点: 1 ) 可从企业外部访问 在基于s o a 的系统中,大都采用基于消息交换的方式进行接口调用,这样, 外部用户可以在相应的权限约束下,也能像系统内部的用户一样访问系统并获 得相同的服务。一般情况下,可以采用先进的b 2 b 协议或w e b 服务的方式,外 部用户可以与系统进行消息交换,并享受系统服务。 2 ) 随时可用 当有服务使用者请求服务时,s o a 要求必须有服务提供者能够响应。大多 数s o a 都能够为门户应用之类的同步应用和b 2 b 之类的异步应用提供服务。同 步应用对于其所使用的服务具有很强的依赖性。许多同步应用通常部署在前台, 很容易受到服务提供者短缺的影响。随着提供特定服务功能的服务器数量的增 长,出现短缺的可能性也呈指数级上升。 而异步应用要更为稳健,因为其采用队列请求设计,因此可以容许出现服 务提供者短缺或迟滞的情况。大部分情况下异步应用能够稳健应对短时间短缺。 3 ) 粗粒度服务接口 粗粒度服务提供一项特定的业务功能,而细粒度服务代表了技术组件方法。 服务接口应该清楚地说明它们所进行的商业操作、所需要的输入参数、可能的 错误或者异常,及其结果。使用粗粒度服务接口,服务系统能够对每项服务所 参照的对象进行访问控制。在每项服务可以被作为一组更加精细的细粒度对象 的抽象来实现的同时,对象自身能够对公共访问隐藏起来。通过给对象、组件 和细粒度服务进行分组,以及通过使用外观( f a c a d e s ) 或者接口,就能够实现 每项服务1 6 1 。 武汉理工大学硕十学位论文 采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往 复,一次往复就足够。i m e m e t 环境中有保障的t c p i p 会话已不再占据主导、建 立连接的成本也过高,因此在该环境中进行应用开发时使用粗粒度服务接口的 优点更为明显。 4 ) 松耦合 松耦合是软件设计中一个重要概念,s o a 具有“松散耦合”组件服务,这 一点区别于大多数其他的组件架构。该方法旨在将服务使用者和服务提供者在 服务实现和客户如何使用服务方面隔离开来。服务提供者和服务使用者间松敖 耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实 现能够在完全不影响服务使用者的情况下进行修改【7 】。 大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼 容多种传输方式( 如h t r p 、j m s 、t c p i p 、m o m 等) 。基于消息的接口可以 采用同步和异步协议实现,任何时候服务请求者都不需要了解服务提供者对内 部实现的信息。即服务接口封装了所有的实现细节,使服务请求者看不到这些 实现细节。消息类w 曲服务通常是松散耦合和文档驱动的,这要优于与服务特 定接口的连接。由于客户和w e b 服务间不存在紧密耦合请求响应,消息类w e b 服务在客户和服务器间提供了更为松散的耦合。 5 ) 可重用的服务及服务接口设计管理 s o a 可以按照可重用的原则设计服务,从而使应用变得更为灵活。设计可 重用服务是与数据库设计或通用数据建模类似的最有价值的工作。由于服务设 计是成功的关键,因此s o a 实施者应当寻找一种适当的方法进行服务设计过程 管理。 服务设计管理根本上讲是服务设计问题,为了设计良好的可重用服务,应 该超越项目短期目标进行服务接口的开发和评估,同时还需要为接口文档、服 务实现文档及所有重要的非功能性特征设立标准。 在大型系统的设计中,则应建立通用( 设计阶段) 服务库和开发流程,以 保证重用的正确性和通用性。 6 ) 标准化的接口 随着x m l 和w e b 服务标准化的开放性,使企业能够在所部署的所有技术 和应用中采用s o a ,将s o a 推向更高的层面,并大大提升了s o a 的价值。 9 武汉理下大学硕士学位论文 w e b 服务使应用功能得以通过标准化接口( w s d l ) 提供,并可基于标准化 传输方式( h t t p 和j m s ) 、采用标准化协议( s o a p ) 进行调用。例如,开发 人员可以采用最适于门户开发的工具轻松创建一个新的门户应用,并可以重用 e r p 系统和定制化j 2 e e 应用中的现有服务,而完全无须了解这些应用的内部工 作原理。 采用x m l ,门户开发人员无须了解特定的数据表示格式,便能够在这些应 用间轻松地交换数据。 7 ) 支持各种消息模式 s o a 中可能存在以下消息模式: 无状态的消息。使用者向提供者发送的每条消息都必须包含提供者处理该 消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息,从 而更易扩展。 有状态的消息。使用者与提供者共享使用者的特定环境信息,此信息包含 在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加灵 活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可扩 展性明显减弱。该限定增强了服务提供者和使用者的耦合关系,提高了交换服 务提供者的服务难度。 等幂消息。向软件代理发送多次重复消息的效果和发送单条消息相同。这 一限定使提供者和消费者能够在出现故障时简单的复制消息,从而改进服务可 靠性。 在一个s o a 实现中,常会出现混合采用不同消息模式的服务。 8 ) 精确定义的服务接口 服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使 用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关 键点是,服务契约必须进行精确定义。 在s o a 中,所有流程都可被定义为服务,服务通过基于类封装的服务接口 委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。从中 可以看出服务接口和其实现之间有明确的分界。 除了上述s o a 的基本特征外,s o a 还有潜在的优点: ( 1 ) 编码灵活性 1 0 武汉理t 大学硕十学位论文 可基于模块化的低层服务、采用不同组合方式创建高层服务,从而实现重 用,这些都体现了编码的灵活性。此外,由于服务使用者不直接访问服务提供 者,这种服务实现方式本身也可以灵活使用。 ( 2 ) 支持多种客户类型 借助精确定义的服务接口和对x m l 、w e b 服务标准的支持,可以支持多种 客户类型,包括p d a 、手机等新型访问渠道。 ( 3 ) 更易维护 服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特 性的实现。 ( 4 ) 更好的伸缩性 依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可 以彼此独立调整,以满足服务需求。 ( 5 ) 更高的可用性 s o a 可以看作是b s 模型、x m l w e bs e r v i c e 技术之后的自然延伸。s o a 将能够帮助我们站在一个新的高度理解企业级架构中的各种组件的开发、部署 形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性的架构构建整 个业务系统。较之以往,以s o a 架构的系统能够更加从容地面对业务的急剧变 化。 由此可见,s o a 最大的好处,是可以让各个子系统完全解耦、独立,互相 之间甚至可以完全不知道彼此的存在,在做s o a 设计的时候对子系统只要考虑 需要哪些抽象的服务接口和提供哪些服务接口就可以了。最后通过工作流来实 现对各个独立的子系统之间的控制和互相连接姆】。这有点类似i o c 容器的思想, 在i o c 容器中,各个组件和服务也是不需要关心对方的存在,只需要声明自己 需要哪些服务就行了。而这里工作流则类似i o c 容器,将各个系统的服务依赖 注入进去,这样就可以在更高层次上定义业务流程。 2 3 面向服务的设计原则 s o a 是用于从自治服务构建系统的体系结构方法,与s o a 相关的许多概念, 如服务、发现和后期绑定,都与c o r b a 和d c o m 有关。同样,许多服务设计 武汉理工大学硕十学位论文 原则与早期基于封装、抽象和定义明确的接口的o o a o o d 技术有着许多共同 之处。 在s o a 中,服务是通过定义明确的消息交换进行交互的程序。服务的设计 必须考虑可用性和稳定性。服务的构建要考量持久性,而服务配置和聚合的构 建则要考虑变化性【9 】。灵活性经常上升为s o a 的一个最大优势,在松散耦合的 基础结构上实现业务流程的组织对于变动要开放得多。松散耦合的系统会带来 松散耦合的业务流程,因为业务流程不再受底层基础结构局限性的约束【| 7 1 。服务 及其关联接口必须保持稳定,以便能够重新配置或重新聚合来满足只新月异的 业务需求。服务的稳定性依赖于基于标准的接口和定义明确的消息:即用于消 息定义的s o a p 和x m l 架构。如果服务用于执行简单而精确的功能、几乎不 知道消息是如何传递过来的或是如何检索出来的,那么它在更大的s o a 基础结 构中被重用的可能性更大。 如前所述,在我们设计和构建可重复使用的w e b 服务时,应当回顾有关封 装和接口设计的0 0 设计原则。通过进一步理解常说的面向服务的“四条原则, 可以将这些0 0 原则扩展到w e b 服务领域。 原则l :边界必须明确 通过定义明确的边界进行消息传递,服务得以彼此交互。边界是指服务的 公共接口与其内部专用实现之间的界线。服务的边界通过w s d l 发布,基于封 装的原则,服务与服务之间边界清晰、逻辑明确,服务的提供者与使用者之间 靠服务接口关联,而与具体的实现无关,由此实现松耦合接口。 原则2 :服务必须自治 服务是独立进行部署、版本控制和管理的实体。服务边界应当是不变的, 只有这样才能将版本更新对使用者的影响降至最低。服务可以通过u r i 动态寻 址,使其底层位置和部署拓扑可以在几乎不影响服务本身的情况下改变或演化 ( 服务的通信通道也是如此) 【1 0 】。服务的部署和版本控制应独立于部署和使用 它们的系统。 自治意味着系统支持的服务可以在允许的范围和程度内变,一个已发布的 系统,其各种服务的实现可能是变更的,实现的编程语言可能变更、版本可能 变更、服务提供者位置也可能变更,但它所提供的服务内容不变,因此依赖这 个服务的其他服务才不会受到影响。 原则3 :服务共享架构和合约 1 2 武汉理t 大学硕十学位论文 如上所述,服务交互应当只以服务的策略、架构和基于合约的行为为基础。 服务的合约通常使用w s d l 定义,而服务聚合的合约则可以使用b p e l 定义( 进 而,对聚合的每个服务使用w s d l ) 。使用基于x m l 架构的消息进行通信的服 务独立于编程语言与平台,从而拓宽了互操作性的级别。架构用于定义消息的 结构和内容,而服务合约则用于定义服务本身的行为。 总的来说,服务的合约由以下元素组成: 木使用“x m l 架构 定义的消息交换格式。 宰使用w s d l 定义的“消息交换模式( m e p ) 。 车使用w s p o l i c y 定义的功能和要求。 木b p e l 可以用作业务流程级合约,用以聚合多个服务。 服务使用者将依靠服务的合约来调用服务及与服务交互。鉴于这种依赖性, 服务合约必须长期保持稳定。在利用x m l 架构( x s d :a n y ) 和s o a p 处理模型( 可 选标头) 的可扩展性的同时,合约的设计应尽可能明确。 原则4 :策略兼容 服务间需要通过某种语义交互,这些语义即是定义好的策略,如安全性、 可用性等的定义。服务策略通常在服务提供者一方指定,服务使用者直接引用 相应策略就能正常访问。 2 4 s o a 的设计模式与反模式 设计模式的起源是建筑师c h r i s t o p h e ra l e x a n d e r 的研究,他找到了一种结 构化、可重用的方法来捕捉并描述重复的设计,还给这些描述的结果起了一个 名字叫模式( p a t t e r n ) 。由l i s k o v 首先将设计模式应用到软件领域。1 9 9 5 年,e r i c hg a m m a 、r i c h a r dh e l m 、r a l p hj o h n s o n 和j o h nv l i s s i d c s 发表了著名的d e s i g np a t t e r n s :e l e m e n t so fr e u s a b l eo b j e c t o r i e n t e ds o f f w a r e ) ,这本书成为 了设计模式的经典之作,这四位也被称为g o f 。在这本书中,共提出了2 3 种模 式,将设计模式提升到了理论高度,并将之规范化f l h 。1 9 9 6 年,m i c h a e la k r o y d 发表了“a n t i p a t t e r n s :v a c c i n a t i o n sa g a i n s to b j e c tm i s u s e 的论文,提出了 反模式( a n t ip a t t e r n s ) 的概念,反模式标识了导致软件质量低劣和项目失败的 不好的设计概念、技术途径和开发实践。 武汉理工大学硕士学位论文 众所周知,设计模式描述的就是针对软件设计中的常见问题做出的可重复 使用的解决方案。而了解及使用这些模式则是s o a 取得成功的根本。下面是面 向服务应用中的设计模式和反模式。 1 ) d o c u m e n tp r o c e s s o r 模式 设计一个容易使用的、定义明确的服务接口,接口必须满足以下要求: 以文档为中心进行设计 在协约中定义清晰的语义 充分利用面向对象的封装性,通过对实现功能的封装到达松耦合 可以方便的从任何平台上调用( w s ib a s ep r o f i l e ) 用个完整的工作单元代表一个业务流程 以下是一个解决方法:d o c u m e n tp r o c e s s o r p u b l i cf i n d c u s t o m e r b y c o u n t r y r e s p o n s e f i n d c u s t o m e r s b y c o u n t r y ( f i n d c u s t o m e r b y c o u n t r y r e q u e s tr e q u e s t ) f d o s o m e t h i n g 这个方法中,服务请求和服务回应都封装在相应的对象中,由x m ls e h e m a 生成服务的语意,这个请求对象和回应对象包含了调用服务的请求和服务器回 应的所有信息。它在单一的服务调用中实现了一个单的功能操作,如果一个 业务功能是跨服务的,那么可以通过在请求对象r e q u e s t

温馨提示

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

评论

0/150

提交评论