(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机应用技术专业论文)基于soa的工作流管理系统的研究与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则, 文档、信息或任务能够在不同的执行者之间进行传递与执行;工作流管理系统是一 个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流 逻辑推进工作流实例的执行。然而,随着i n t e r n e t 的普及应用,传统的工作流技 术越来越难以适应现代流程管理的需要,如何处理现代大型企业的共享资源所面对 的异构、分布和松散耦合的特点已成为需要解决的重点问题:如何及时、灵活地对 业务需求的变化做出反应,也成为衡量一个工作流系统性能是否满足要求的指标。 随着s o a 技术的提出,“软件即服务”的理念也逐渐引起了人们的广泛关注,s o a 基于标准、松散耦合、共享服务和粗粒度化等特点,可以很好地解决传统工作流所 不能解决的问题。因此,把s o a 架构引入到工作流管理系统中必将使工作流技术进 入一个新的发展阶段。 本文通过研究s o a 与工作流结合的应用场景以及面向服务的技术架构,参考 w f m c 的工作流参考模型和p e t r i 网建模理论,抽象了一种基于s o a 的工作流信息模 型,并在综合b p m 、e a 和o o 的基础上,充分利用u m l 强大可视化表达能力,提出 了一种面向服务的软件分析与设计方法( s o a d ) ,并用它来对基于s o a 的工作流管 理系统进行分析和设计;该系统针对s o a 的特点,重新构造了工作流管理系统的架 构,并以w e bs e r v i c e s 取代传统的工作流引擎,实现了一个完全面向服务的工作 流管理系统。与传统的工作流管理系统相比,该工作流管理系统有以下几个特点: 1 采用“粗粒度”的w e b 服务作为工作流执行体,实现了描述文件与执行体的分 离; 2 在工作流结点上实现了服务于数据管理的自治,并实现了以面向服务为基础的 工作流过程控制模型的流转控制; 3 将具体的业务操作服务与过程流转服务分开,方便用户根据业务变化的需要, 充分利用现有资源,快速搭建业务系统,实现了企业业务系统的随需而变。 4 使工作流管理成为一个能够在i n t e r n e t 上调用的服务,真正实现了跨越操作系 统和业务系统的平台无关性。 本文选用r a t i o n a lr o s e2 0 0 3 来对系统进行分析和建模,采用v i s u a ls t u d i o 2 0 0 5 为开发平台,使用c # 开发语言实现了基于s o a 的工作流管理系统,经过测试 和试运行,取得了良好的效果。 关键词:工作流;工作流管理系统;s o a ;s o a d ;p e t r i 网;w e bs e r v i c e s r e s e a r c ha n di m p l e m e n t a t i o no fw o r k f l o w m a n a g e m e n ts y s t e mb a s e do i ls o a a b s t r a c t w o r k f l o wi st h ea u t o m a t i o no fab u s i n e s sp r o c e s s ,i nw h o l eo rp a r t , d u r i n g w h i c hd o c u m e n t s ,i n f o r m a t i o no rt a s k sa r e p a s s e d f r o mo n e p a r t i c i p a n tt o a n o t h e rf o ra c t i o n ,a c c o r d i n gt oas e to fp r o c e d u r a lr u l e s w o r k f l o wm a n a g e m e n ts y s t e mi sas o f t w a r es y s t e m ,i ti su s e dt od e f i n ea n d m a n a g ew o r k f l o w , p r o m p tp r o c e s s i n s t a n c et or u na c c o r d i n gt ot h e p r e d e f i n e dl o g i c b u tw i t ht h ed e v e l o p m e n ta n da p p l i c a t i o no f t h ei n t e m e t , t h et r a d i t i o n a lw o r k f l o wt e c h n o l o g i e sa r em o r ea n dm o r ed i f ! f i c u l tt oa d a p tt o m o d e mw o r k f l o wm a n a g e m e n t h o wt oc o p ew i t ht h es i t u a t i o ni nw h i c h m o d e me n t r e p r e n e u r ss h a r et h e i rr e s o u r c e si nah e t e r o g e n e o u s ,d is t r i b u t e d a n dl o o s e l y - c o u p l e dw a yi sa ni m p o r t a n tp r o b l e m h o wt or e a c tt i m e l ya n d f l e x i b l yu p o nt h ec h a n g eo ft h eb u s i n e s sr e q u i r e m e n ti sb e c o m i n g a ni n d e x t oju d g ew h e t h e raw o r k f l o ws y s t e ms a t i s f i e st h er e q u i r e m e n t w i t ht h ea d v e n to fs o a ,t h ec o n c e p to f “s o f t w a r ei ss e r v i c e i s a t t r a c t i n gm o r ea n dm o r ea t t e n t i o n t h ec h a r a c t e r i s t i c so fs t a n d a r d s - b a s e d , l o o s e l yc o u p l e d ,s h a r e d s e r v i c e sa n dc o a r s e g r a i n e do fs o ac a ns o l v e p r o b l e m sw h i c ht h et r a d i t i o n a lw o r kf l o wc a nn o tr e s o l v e s oi n t r o d u c i n g s o ai n t ow o r k f l o wm a n a g e m e n tw i l lp u tf o r w a r dt h ew o r k f l o wt e c h n o l o g y t oan e w s t a g e b yr e s e a r c h i n gt h ea p p l i c a t i o ns c e n eo fc o m b i n i n gs o a w i t hw o r k f l o w , a sw e l la st h es e r v i c e o r i e n t e dt e c h n o l o g ya r c h i t e c t u r e ,t h i sa r t i c l ep r e s e n t s t h ed e s i g na n di m p l e m e n t a t i o no fac o m p l e t es e r v i c e - o r i e n t e dw o r k f l o w m a n a g e m e n ts y s t e mw h i c hi sa c c o r d i n gt ot h ew f m c w o r k f l o wr e f e r e n c e m o d e la n dp e t r in e tm o d e l i n gt h e o r y o nt h eb a s i so ft h es y n t h e s i so fb p m , e aa n d0 0 ,t h i sp a p e rm a k e sf u l lu s eo ft h ev i s u a ld e s c r i p t i v ea b i l i t yo f u m l ,a n das e r v i c e o r i e n t e ds o f t w a r ea n a l y s i sa n dd e s i g nm e t h o d ( s o a d ) i i i i sp r o p o s e d ,a n dt h i sm e t h o di su s e dt oa n a l y z ea n dd e s i g nt h ew o r k f l o w m a n a g e m e n ts y s t e mb a s e do ns o a t h i sa r t i c l ea l s ot a l k sa b o u tt h e r e c o n s t r u c t i o no fw o r k f l o w m a n a g e m e n ts y s t e m sa r c h i t e c t u r ea n dt h e r e p l a c e m e n to fw o r k f lo we n g i n eb yu s i n gw e bs e r v i c ec o r r e s p o n d i n gt h e c h a r a c t e r so f s o a ,i m p l e m e n t sa f u l l y s e r v i c e o r i e n t e dw o r k f l o w m a n a g e m e n ts y s t e m c o m p a r e dw i t ht r a d i t i o n a lw o r k f l o wm a n a g e m e n t s y s t e m ,t h ec h a r a c t e r i s t i c so ft h i ss y s t e ma r ea sf o l l o w s : 1 i ta d o p t st h e ”c o a r s e - g r a i n e d w e bs e r v i c e sa st h ei m p l e m e n t a t i o no f t h e w o r kf l o w , a n di t a c h i e v e st h e s e p a r a t i o no fd e s c r i p t i o nf i l ea n d i m p l e m e n t a t i o n 2 i tr e a l i z e st h ea u t o n o m ys e r v i n gf o rd a t am a n a g e m e n t ,a n di tr e a l i z e st h e c i r c u l a t i o nc o n t r o lo fw o r kf l o wp r o c e s sc o n t r o lm o d e l ,w h i c hi sb a s e d o ns e r v i c e o r i e n t e d 3 s p e c i f i co p e r a t i o n a ls e r v i c e sa n dt h ec i r c u l a t i o np r o c e s sa r es e p a r a t e d a n da c c o r d i n gt ot h en e e d so f b u s i n e s sc h a n g eu s e r sc a nm a k ef u l lu s eo f e x i s t i n gr e s o u r c e s ,a n dt h eb u s i n e s ss y s t e mi sb u i l t q u i c k l y , a n d c h a n g i n gf o rt h en e e do fe n t e r p r i s eb u s i n e s ss y s t e mi sr e a l i z e d 4 w o r k f l o wm a n a g e m e n tb e c o m e sw e bs e r v i c et h a tc a nr u no ni n t e m e t , a n di tc a nr u nf l u e n t l yo nd i f f e r e n to sa n dc a nc o r p o r a t e e a s i l yw i t h d i f f e r e n tb u s i n e s ss y s t e m t h i sp a p e ru s er a t i o n a lr o s e2 0 0 3f o rs y s t e ma n a l y s i sa n dm o d e l i n g , i m p l e m e n tas o a b a s e dw o r k f l o wm a n a g e m e n ts y s t e mi nc 撑o nv i s u a l s t u d i o2 0 0 5 i nt e s tc a s e s ,t h i ss y s t e mlu l l ss u c c e s s f u l l y k e yw o r d s :w o r k f l o w ;w o r k f l o w m a n a g e m e n ts y s t e m ;s o a ;s o a d ; p e t r in e t ;w e bs e r v i c e s i v - 承诺书 本人郑重声明:所呈交的学位论文,是在导师指导 下独立完成的,学位论文的知识产权属于太原科技大学。 如果今后以其他单位名义发表与在读期间学位论文相关 的内容,将承担法律责任。除文中已经注明引用的文献 资料外,本学位论文不包括任何其他个人或集体已经发 表或撰写过的成果。 学位论文作者( 签章) : 2 0 0 年月日 第一章绪论 第一章绪论 1 1s o a 简介 随着软件开发方法研究的发展和分布式技术应用的深入,基于多种开发平台和 工具的商业系统得到大量应用,使得企业中的软件系统变得日益庞大和复杂。由于 传统的软件开发使用的平台、开发工具、操作系统在结构上的紧耦合,以致这些位 置上分散的独立系统逐渐形成了所谓的“信息孤岛”。 为了更好地重用已有模块、加快软件开发速度,使这种重用可以不用考虑各自 运行平台和开发环境的差异,并使被重用的模块可以方便地由旧系统纳入新系统, 一种面向服务的体系结构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 ) 的软件设计方法 被提了出来n3 。s o a 要求开发者从服务集成的角度来构建分布式系统,它可以根据 需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,既是体 系结构模型,又是编程模型口1 。 s o a 的核心概念是服务,即把软件的某些功能独立出来,使之能独立运行,并 且在逻辑关系上和运行的应用系统成为一个层次。它接受来自所有授权对象的请 求,使得服务可以同时为多个应用程序提供相同的功能,大大增大软件复用程度, 减少开发和维护成本。一个服务是服务提供者为实现服务请求而执行的一个工作单 元( 应用程序) ,是一些良定义的操作,也就是说,一个服务实现了一个应用的功能, 它是一个粗粒度的、可发现的软件实体,通过一组松散耦合和基于消息的模型与其 它的应用或服务交互b 3 。基于s o a 的体系结构具备基于标准、松散耦合、共享服务 和粗粒度等方面的特点,与传统开发方法相比,其优势可表现为州州刮: 易于集成现有系统:在对现有系统不做修改的前提下,s o a 可将现有系统和应 用迅速转换为服务,通过封装可以提供服务接口的应用层来访问遗留系统,因此不 用修改现有系统体系结构。 具有标准化的架构:只要符合相关标准,无论何时开发的组件都可以合并在一 个结构良好的s o a 系统中,并且不同开发者开发出的组件将被作为服务方便的添加 部署在现有的基础构架中。 提升开发效率:由于s o a 在可复用方面的特点,新的软件在设计、开发、测试 和部署时可以充分利用已有服务,其开发周期可以显著缩短。 1 基于s o a 的工作流管理系统研究与实现 降低开发维护复杂度:通过采用s o a 体系结构,在进行二次开发时成本急剧减 少;同时,由于系统具有松散耦合的特征,维护成本也大大减少。 1 2 工作流的起源与发展 工作流技术起源于二十世纪七十年代中期生产组织和办公自动化领域的研究, 工作流是针对日常工作中具有固定程序的活动而提出的一个概念,目的是通过将工 作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们 进行监控来达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业 竞争力的目标口 。由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮 乏,这项新技术并未取得成功。1 9 8 3 年至1 9 8 5 年间,在图像处理领域和电子邮件 领域出现了早期的含有工作流特征的商用系统。 进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建 设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1 9 9 3 年第一个 工作流技术的标准化组织一一工作流管理联盟w f m c ( w o r k f l o wm a n a g e m e n t c o a l i t i o n ) 的成立,1 9 9 4 年,工作流管理联盟发布了用于工作流管理系统之间互操 作的工作流参考模型,并相继制定了一系列工业标准陋3 。与此同时,关于工作流技 术的学术研究也十分活跃,许多原型系统在实验室里开发出来。 进入二十一世纪以来,企业信息资源越来越表现出一种异构分布、松散耦合的 特点,工作流技术被越来越多的人认可,与之相关的标准规范、工作流引擎及商业 产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究, 以推动该项技术走向成熟。 1 3 研究背景 1 3 1 问题的由来 近年来,随着i n t e r n e t 的普及应用和企业信息化步伐的加快,工作流的思想已 经越来越多地进入了企业应用系统领域。现代化企业为了增强工作效率、缩短信息 传播周期、固化业务模式、增加核心竞争力,已经将企业经营过程的各个领域各个 环节均纳入了企业信息化的部分,工作流管理系统也由最初的无纸化办公环境,转 而成为同化企业复杂信息,实现业务流程自动执行的必要工具。 众多的企业应用系统按照功能从大的范围来划分,无非两种,一种是以公文流 转、日常办公为主体的办公自动化系统,另一种则是以企业经营过程的业务流程为 主要辅助对象的具体业务系统。无论是办公自动化系统还是具体业务系统,都是为 2 第一章绪论 企业提供软件服务的,都是本着服务于企业需求为目标的旧:。 然而,现实世界中的各个企业的经营过程是无时无刻不在变化和调整中的,以 便适应瞬息万变的市场。这种变更带给信息化系统软件的最大的问题在于企业经营 过程的调整往往使得原有的信息化系统软件要推倒重新设计开发,使开发成本非常 的高,寻找到一种能够相对灵活的架构和管理方式以使得信启、化系统能够快速的适 应企业经营过程的变更成为了为企业构造信息化系统的软件设计人员的头等课题。 s o a 基于标准、松散耦合、共享服务和粗粒度化的体系结构为这一难题的最终 解决提供了思路。在异构、分布式执行环境下,构建基于s o a 的工作流管理系统, 充分利用现有的i t 资源,积极推动业务流程建模( b p m ,b u s i n e s sp r o c e s s m o d e l i n g ) ,为企业根据业务发展的需求快速构建信息化系统创造条件。 1 3 2 国内外现状 近年来,随着计算机的普及,网络的延伸,现代企业的信息资源越来越表现出 一种异构、分布、跨平台、松散藕合的特点,企业的分散性、决策制定的分散性以 及c s 、b s 体系结构和分布式处理技术( w e bs e r v i c e s ,j a v a ,n e t 等) 的日益成 熟,都说明实现大规模、异构、分布式执行环境,使得相互关联的任务能够高效运 转并接受密切监控成为一种趋势,面向服务的工作流技术逐渐成为学术界和产业 界研究的热点。 随着w e bs e r v i c e 的开发工具包( 如:j a v a 、v s n e t ) 出现和s o a 基本架构和相关 规范的日趋成熟,s o a 已经开始进入普及阶段。一批率先实施s o a 的公司,已经从 中受益,德国邮政全球网络、瑞士丰泰保险公司、瑞士信贷银行和哈利法克斯苏格 兰银行等业务变化快的企业都部署和实施了s o a ,并且在激烈的市场竞争中获得优 势。g a r t n e r 的最新报告显示,到2 0 0 8 年,s o a 将为8 0 的新开发项目提供实施基 础3 。 在国外,一些分布式工作流管理系统被相继提出,如i b m 公司a l m a d e n 研究中 心研究开发的基于持久消息队列的分布式工作流管理系统一一e x o t i c a f m q m ( f l o w m a r o nm e s s a g e q u e u em a n a g e r ) n2 | 、美国佐治亚大学计算机系研究开发的具 有自适应能力的工作流管理系统一一m e t e o r ( m a n a g i n ge n d - t o - e n d o p e r a t i o n s ) n 引、西班牙,意大利,荷兰联合开发的基于分布式主动数据库技术的 工作流管理系统w i d e ( w o r k f o wo ni n t e l l i g e n ta n dd i s t r i b u t e dd a t a b a s e e n v i r o n m e n t ) “4 1 、以及德国萨尔兰大学、苏黎士联合银行和苏黎士工程研究院合作 的一项研究项目为:基于状态与活动图的工作流管理系统m e n t o r ( m i d d l e w a r e 基于s o a 的工作流管理系统研究与实现 f o re n t e r p r i s e w i d ew o r k f l o wm a n a g e m e n t ) n 5 1 等,h p 软件技术实验室于2 0 0 0 年 提出的e f l o w n 6 1 是第一个通过集成虚拟企业间提供的点到点的服务来完成商务流 程的工作流管理系统原型,e - f l o w 中提出的e s e r v i c e 的概念便是以后的w e b s e r v i c e 的原型。随后,众多基于服务整合概念的工作流管理系统被相继提出,s e l f s e r v e n 7 1 项目中,服务被定义成一种可以通过分布式手段进行复合与集成的点到点 的交互,工作流管理系统便构建于服务之上:文献瞄中提出通过一个层次结构的模 型,将各个不同服务复合起来完成一个统一的业务流程,并将所有可用的服务描述 存贮在一个共同目录之中,在业务流程的每一节点上通过一定算法选择执行一个最 优的服务。 在国内,由于我国的企业的信息化进程远远落后于国外,管理水平也存在着较 大的差距,工作流技术以在电子政务和0 a ( 办公自动化) 中的使用作为突破口,在企 业的其他领域也迅速铺开。一些大学、科研机构及企业对工作流技术做了一些比较 深入的研究,相应的一些比较适合中国人习俗的工作流产品也开始在市场进行销 售。这期间,国内涌现出一些知名的工作流产品工作流中间件,如清华大学c i m s 中心开发的c i m sf l o w n 町和西安协同数码公司开发的s y n c h r o f l o w c t 9 l , 上海普元e o s 1 等,这些工作流产品在分布性、方便易用的图形化流程建模、严格的流程版本控制、 灵活的路由选择、实用的二次开发、完善的工作流日志和监控等方面各具特色,并 成功地运用于各级政府、企业等部门。虽然国内工作流产品取得了长足的发展,但 是从总体来说,其可靠性、稳定性、开放性及标准化方面都还有待加强。 一些早期的分布式技术如:c o m ,c o r b a ,e j b 等分布式技术受到对操作系统、编 写语言的特定局限以及网络环境的限制,大多使用专有协议通过特别的端口进行远 程通信,需要企业付出额外经费与精力构筑底层通讯环境,限制了工作流管理系统 在企业的广泛应用船。而随着w e bs e r v i c e 3 相关的一系列技术与标准的提出,例 如s o a p 乜引,w s d l m l ,u d d i 乜副等等,更加促进工作流朝着服务整合的方向飞速发展。w e b s e r v i c e 可以通过基于x m l 的消息协议直接进行访问,它能实现对异构环境中应用 程序的无缝集成。同时w e bs e r v i c e 自包含、自定义、模块化等特点,使得企业能 够充分利用现有资源根据需求的变化快速构建各种业务系统。各研究机构也相继提 出了w s f l ,x l a n g 3 ,b p e l 4 w s 2 8 1 以及g s f l 1 等一系列的服务流程描述语言用于对 服务流程的描述。 然而,现有的面向服务的工作流管理系统中只是采用通过w e bs e r v i c e 的应用 来提高系统的跨平台工作能力,在系统建模以及模型的设计方面都没有使用面向服 第一审绪论 务的技术。本系统中就是在系统分析与建模时采用s o a d 的分析方法,并用基于s o a 的开放式工作流模型来增强系统的描述能力,从而提高了工作流管理系统的开放 性、扩展性和自适应性。 1 4 研究内容 本文在通过对s o a 架构的相关理论的认真研究的基础上,参照国内外最新的研 究,在综合b p m 、e a 和0 0 等相关技术,充分利用u m l 强大可视化表达能力,提出 了一种面向服务的软件分析与设计方法,使面向服务的分析与设计方法逐渐明晰 化,并用它对基于s o a 的工作流管理系统进行分析和设计。 工作流模型是工作流技术研究的核心问题,工作流模型的描述能力将直接制约 着工作流管理系统的描述能力和使用范围,作者在经过对现有的各种工作流模型的 分析综合以后,并结合面向服务软件的特点与优势,采用基于s o a 的开放式事务型 工作流模型来对客观事物进行建模,并取得了良好的效果。 将s o a 和工作流管理系统相关技术紧密结合起来,通过认真研究工作流执行的 场景,充分利用s o a 基于标准、松散耦合、共享服务和粗粒度化等特点,重新界定 的工作流管理系统地使用范围和具体特征,实现了一种在i n t e r n e t 异构平台上复 杂环境下实现工作流管理的途径,开发了一种能够满足大多数信息系统( 包括m i s 和e r p ) 的需求,能够快速组装和使用的工作流信息管理系统。该系统将具体的业 务操作服务与过程流转服务分开,方便用户根据业务变化的需要,充分利用现有的 资源,快速搭建新的业务系统,实现了企业业务系统的随需而变。 在基于s o a 的实现中,作者通过对s o a 的各种实现技术进行对比,选择基于n e t 的w e bs e r v i c e s 作为本系统实现的核心技术,将工作流管理系统的核心服务工作 流工作引擎,数据接口服务均设计成w e bs e r v i c e s 。 1 5 本文结构 本文后面内容将按如下章节编排: 第一章绪论,阐述研究工作的目的意义、国内外研究动态;本论文解决的科学 问题、研究内容等。 第二章基于s o a 的软件开发技术研究,通过对s o g 的基本原理、组成、特点以 及s o a 的关键实现技术w e bs e r v i c e s 进行全面的研究与分析,参照相关理论,提 出了一种实用的面向服务的软件分析与设计( s o a d ) 方法,并对这种s o a d 的基本 原则和具体步骤进行重点描述。 5 - 基于s o a 的工作流管理系统研究与实现 第三章工作流管理系统相关技术分析与研究,通过对w f m c 参考模型、p e t r i 网等工作流基本理论的分析与研究,深化对工作流技术理解,对本例中所要涉及的 基本理论进行必要的明确,并进一步提出一种基于s o a 的开放式工作流信息模型, 并对该模型进行描述。 第四章基于s o a 的工作流管理系统的分析与设计,通过对基于s o a 的工作流管 理系统需求描述,并使用第二章提出面向服务的软件分析方法来对系统进行建模, 使用第三章提出的基于s o a 的开放式工作流模型对系统进行描述,认真研究工作流 的各种执行场景,逐步设计出系统的体系结构,各个主要服务的静态结构( 类图) , 并对系统进行数据建模,设计出系统的数据字典,为系统的开发与实现做好准备。 第五章对系统中出现相关技术难点进行分析,并对采用的解决方案进行相应的 介绍,通过一个实例博华公司请假审批系统的运行来对系统进行必要的测试。 第六章总结语,对系统开发过程中取得的成果和存在的问题进行系统的总结和 分析,并对下一步的研究方向和策略进行展望。 第二章基卡s o a 的软件开发技术研究 第二章基于s o a 的软件开发技术研究 2 1 面向服务的架构 面向服务的架构( s o a ) 是g a r t n e r 在1 9 9 6 年提出的,s o a 是一种分布式的软件架 构模型,它将应用程序的不同功能单元( 称为服务) 通过这些服务之间定义良好的接 口和契约联系起来。接口是采用中立的方式进行定义的,他独立于实现服务的硬件 平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统 一和通用的方式进行交互h 1 。 s o a 的体系结构由三个参与者和三个基本操作构成,三个参与者分别为服务提 供者、服务请求者和服务注册代理,三个基本操作分别是发布、查找和绑定瞄1 ,如图 2 - i 所示。 图2 - 1 :s o a 体系结构图 在面向服务的体系结构中主要有三种角色: ( 1 ) 服务请求者( s e r v ic ec o n t r a c t ) 。又称服务消费者,是需要使用服务的应用程 序或其它的服务。服务请求者通过对注册中心的服务进行查询后,根据接口说明信息 并使用某种传输协议与服务绑定并执行服务功能。 ( 2 ) 服务提供者( s e r v i c ep r o v i d e r ) 。即服务的拥有者,它将各种信息及功能封装 成用于业务流程的可重用组件的应用程序函数。服务提供者负责将服务信息发布到 服务注册者,响应服务请求者的命令并为之提供高质量的服务。 ( 3 ) 服务代理者( s e r v i c eb r o k e r ) 。即服务注册中心,它相当于一个服务信息的数 据库服务,注册已经发布的服务,对其进行分类并提供搜索服务。同时服务提供者 可以把所要提供的服务在服务注册者处进行注册,服务消费者通过查询服务注册者 的服务信息库以找到感兴趣服务的接口信息。 一7 基于s o a 的f t 作流管理系统研究与实现 在面向服务的体系结构中的每个实体的角色并非固定,可以同时充当以上三种角 色中的一个或多个,他们通过如下3 种基本操作相互作用: 发布( p u b l i s h )服务提供者向服务代理者发布服务。包括注册自己的功能和访 问接口。 查找( f i n d )服务请求者通过服务代理者查找所需的服务,并绑定到这些服务 上。 绑定( b i n d )服务提供者和服务请求者之间可以交互,并使服务请求者能够真正 使用服务提供者。 s 0 h 的主要组件包括:服务、动态发现和消息啪3 。 ( 1 ) 服务服务是能够通过网络访问的可调用例程。服务公开了一个接口契约,它 定义了服务的行为以及接受和返回的消息,服务常与提供者互换使用,后者专门用 于表示提供服务的实体。 ( 2 ) 动态发现接口通常在公共注册中心或者目录中发布,并在那里按照所提供的 不同服务进行分类,客户( 服务消费者) 能够根据不同的分类特征通过动态查询服务 来查找特定的服务,这个过程被称为服务的动态发现。 ( 3 ) 消息服务消费者或者客户通过消息来消费服务。因为接口契约是独立于平台 和语言的,消息通常用符合x m l 模式的x m l 文档来构造。 简单来讲,s o a 是设计和构建松散耦合软件的解决方案,能够以程序化的、可访 问软件服务的形式公开业务功能,以使其他应用程序可以通过已发布和可发现的接 口来使用这些服务;同时,s o a 中包括按需连接软件资源的系统构建理念,将各服务 实体按标准化方式定位为网络中独立的资源。服务实体间基于消息的通信方式及s o a 的动态发现机制,保证了软件资源的按需连接与组合,能够适应不断变化的业务环 境。 2 2 面向服务的系统分析与设计 。 面向服务的分析和设计( s o a d ) 以服务为中心,根据业务需求发现服务、描述服务, 并设计服务的实现。s o a d 的好处是它从业务操作和流程的角度考虑问题,而不是从 应用程序和编程的角度考虑问题,这使得业务管理可以根据业务的操作清楚地确定 什么需要添加、修改或删除。然后可以将软件系统构造为适合业务处理的方式,而 不是在许多现有的软件平台上常常看到的其他方式伽3 。 在这里,改变和s o a 系统适应改变的能力是最重要的部分,对于开发人员来说, 第二章基于s o a 的软件开发技术研究 这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发 生,这取决于是否有改变需要知道接口是如何定义的,以及它们相互之间如何进行 交互;与开发人员不同的是,架构师的作用就是决策对s o a 模型大的改变;这种分 工,就是让开发人员集中精力于创建作为服务定义功能单元,而让架构师和建模人 员集中精力于如何将这些单元适当地组织在一起b 2 3 3 | 。 从概念上讲,s o a 中有三个主要的抽象级别: 操作:代表单个逻辑工作单元的事务,执行操作通常会导致读、写或修改一个或 多个持久性数据。s o a 操作可以直接与面向对象( 0 0 ) 的方法相比,它们都有特定的结 构化接口,并且返回结构化的响应,完全同方法一样,特定操作的执行可能涉及调 用附加的操作。 服务:服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一 系列有序活动的交互,为实现用户目标提供支持。构思良好的服务将给业务带来了 灵活性和敏捷性,它们通过松散耦合、封装和信息隐藏使重构更加容易。在刚接触 服务很容易与对象的概念相混淆,事实上,对象主要是面向i t 的,侧重描述的是程 序概念上的内容,而服务是面向业务的。 业务流程:为实现特定业务目标而执行的一组长期运行的动作或活动,业务流程 包括依据一组业务规则按照有序序列执行的一系列操作。操作的排序、选择和执行 称为服务或流程编排。 从建模的观点来看,如何描述设计良好的操作、服务和流程抽象的特征以及如何 系统地构造它们,是s o a d 需要解决的主要问题。 2 2 1s o a d 的原则 面向服务的分析与设计方法( s o a d ) 有以下四个基本原则3 : 边界明晰 服务与服务、服务与调用者之间边界也必须明确,在s o a 中,服务通过交换信息 来实现互动,每个服务对象在内部进行格式化,在边界定义服务的使用方式。 服务自治 服务自治即服务的依赖性,每个服务都有自己的独立数据和实现,每个服务提供 的服务只依赖于自己的数据和具体实现。 共享结构和契约 s o a 通过共享结构和契约来实现交互,结构说明服务的服务接口,契约说明服务 的调用方式,服务不共享具体实现( c l a s s ) 信息。 9 基于s o a 的工作流管理系统研究与实现 基于策略的服务兼容性 策略是针对服务之间沟通需求的声明,服务能力和需求是基于p o l i c y 文件表达 的,每个服务端点都有自己的服务策略。 2 2 2s o a d 的设计步骤 综合s o a d 的特点和任务,参照u m l 建模方法口5 3 口引,充分利用u m l 强大的可视化 功能,在综合分析已有方法的优缺点的基础上,使用如下s o a d 设计方法来对面向服 务的软件开发进行建模,是一种自顶而下的设计方法。具体流程如图2 - 2 所示: 图2 2 :s o a d 的基本流程 第一阶段业务流程建模 从用户和业务的角度来看问题,结合领域分析等相关方面的技术,项目组通过调 研,获取系统的业务需和用户视图,获得关键问题的答案,识别关键的业务过程和 活动,区分过程和活动的优先级,识别用户,创建系统的业务视图,然后在用例图 标识成角色、用例及其之间的相互关系,刻画系统的用户以及外部系统与本系统的 交互,直观的反映出用户对系统功能的要求。 对于标识出来的业务,从开发的角度对其进行分析,创建场景来描述环境、工作 流、任务顺序和环境关系,构建该业务的技术视图。综合系统的业务视图和技术视 图,并参照领域分析等相关方面的知识和技术,构建系统的业务模型。 第二阶段企业体系结构设计 进一步的细化,结合领域分析等相关方面的技术,将模型中的活动按照职责组织 起来,并分配给系统的元素,初步抽象出一个个服务和服务之间的交互,明确每一 个服务的边界和相关约束条件并将其表示出来,对每一个业务重复该步骤最终设计 第二二章基于s o a 的软件开发技术研究 出系统的体系结构铂b 剐。该步骤主要分为以下几个过程。 第一步服务标识 细化需求,结合领域分析等相关方面的技术,将模型中的活动按照职责组织编排 起来,抽象出一个个服务,用用例图将其分别表示出来。 第二步服务描述 用顺序图描述服务之间的动态合作关系和跨越多个对象的系统控制流程,并且可 以验证抽象出来的对象是否能够满足用户的需求,逐步抽象出来对象的操作和属性。 对每一个服务重复该步骤。 第三步体系结构设计 将上一步抽象出来的对象的接口和对象之间的交互关系,用u m l 的组件图表示出 来,设计出系统的体系结构。 第四步重构和验证 直接从场景提取的对象及其关系,受限于该场景的具体目标,适用于原场景没有 问题,但抽象不足和泛化过分是常有的事。这就需要我们进一步对其进行分析,对 原有的对象和服务进行补充和限定,并对原有的设计进行细化和求精,为物理设计 提供更完整的对象模型。 通过验证服务和对象,来确认逻辑设计( 服务对象、属性及关系) 的正确性和完 备性,确保单个对象组合以后能够完成场景里所描述的工作,符合用户的需要。 第三阶段服务设计 将范围缩小至单个服务,设计出服务的实现模型。采用如图2 3 所示的螺旋形轻 量级u m l 分析和设计方法口9 | ,以服务的接口作为角色,以接口的要完成的任务作为 用例,采用迭代的方式重复上述步骤为服务进行建模,不断地细化需求,直至设计 出该服务的实现模型。 广 1 i 设计l l 而一 颤序圈 陌 对象l 镳道的活 圈 图2 - 3 :轻量级u m l 分析与设计方法流程图 1 1 田动 活, 酊作一 匿丽 基于s o a 的工作流管理系统研究与实现 2 3s o a 关键实现技术w e bs e r 、,i c e w e bs e r v i c e 即w e b 服务,是在i n t e r n e t 上进行分布式计算的基本构造块。它 允许在w e b 站点放置可编程元素,使得基于w e b 分布式计算和处理得以进行。独立 的应用程序部件以一种标准的方式发布到w e b 站点上,其他w e b 应用程序可以方便 的找到并使用这个服务。它的功能可以很简单,如响应客户一个简单的请求,也可 以很复杂,如一个商务流程。w e b 服务一旦在网上发布,其它的应用程序就可以发现 并调用该服务。其基本结构以及客户与服务的交互过程m 。如图2 4 所示。 目录 u d d i h t t p :w w w u d d i o r g、 确定服务的位置) 马比具 1 他目 i謤蟺穩蟺蝷祤祤羳 现文档 现文档( x m l ) 务说明 务描述( x m l ) 式 务 务相应( x m l ) 4w e 服务的基本结构以及客户与服务的交互过程 s e v i c e 的主要目标是在现有的各种异构平台的基础上构筑一个通用的与平 台、语言无关的技术层,多种不同平台上的应用依靠这个技术层来实施彼此的 连集成,webs e v i c e 技术具有以下的特点: 良封装性。w e bs e v i c e 是一种部署在w e b 上的对象,具备对象的良好封装 使用者而言,它能且仅能看到服务的描述信息和调用接口信息。 耦合。当一个webs e v i c e 的具体实现发生变更甚至是当w e bs e v i c e 的实 发生转移时,调用者不会感到有变化。对调用者来说,只要w e b 服务的调 不变,w e b 服务实现的任何改变对他们来说都是透明的,适合与i n t e r n e t 耦合环境。 开好,在w e bs e v i c e 中所有的技

温馨提示

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

评论

0/150

提交评论