(计算机软件与理论专业论文)基于bpel4ws和语义的动态web服务组合框架.pdf_第1页
(计算机软件与理论专业论文)基于bpel4ws和语义的动态web服务组合框架.pdf_第2页
(计算机软件与理论专业论文)基于bpel4ws和语义的动态web服务组合框架.pdf_第3页
(计算机软件与理论专业论文)基于bpel4ws和语义的动态web服务组合框架.pdf_第4页
(计算机软件与理论专业论文)基于bpel4ws和语义的动态web服务组合框架.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着w e b 服务技术的发展,面向服务架构( s o a ) 已经从一个难以实现的设计 理念逐渐变为业务解决方案中重要的设计方法。然而,只有能够将现有服务进行灵 活组合才能真正发挥s o a 的优势。商业流程执行语言( b p e l 4 w s ) 已经成为定义商 业流程和业务交互协议的标准语言。但是,目前创建商业流程的方法仍停留在静 态设计阶段,不能够灵活应对业务变化。 本文详细介绍一种基于b p e l 4 w s 和语义的动态w e b 服务组合框架。在这个框 架中,抽象流程模板被用来描述w e b 服务之问的交互及业务协议。框架还定义了两 个语义元数据描述语言:商业流程元数据语言和w e b 服务元数据语言,它们分别被 用来描述抽象流程模板和w c b 服务的语义元数据。通过商业流程模板和w 曲服务之 间语义元数据的匹配,满足业务需求的w e b 服务能够被有效地选择。最后通过动态 w e b 服务绑定,被选择的w 曲服务能够被组合到流程当中。考虑到现实当中不同的 服务提供商可能使用不同的本体来描述语义元数据,我们也将对基于相似度的多 本体匹配技术进行讨论。本文所阐述的w e b 服务组合框架基于工业标准,因此能够 更容易地被用在解决方案当中提高b p e u w s 商业流程的应变能力。 关键词:w e b 服务商业流程执行语言商业流程元数据语言w e b 服务元数据语言 本体 a b s t r a c t a b s t r a c t w i t ht h ea d v e n to fw 曲s e r v i c e s ,t h es 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 ) h a s e v o l v e df r o ma nu n r e a c h a b l eh o p et oap r a c t i c a ld e s i g nm e t h o d o l o g yi nb u s i n e s s s o l u t i o n s h o w e v e r , t h er e a la d v a n t a g e so fs o ac a n n o tb et a k e nu n l e s sd i f f e r e n t s e r v i c e sc a nb ef l e x i b l yc o m p o s e d t h eb u s i n e s sp r o c e s se x e c u t i o nl a n g u a g ef o rw e b s e r v i c e s ( b p e l 4 w s ) h a sb e c o m et h ed ef a c t os t a n d a r dl a n g u a g ef o rd e s c r i b i n g b u s i n e s sp r o c e s s e sa n db u s i n e s si n t e r a c t i o np r o t o c o l s b u tc u r r e n tb p e l 4 w sb u s i n e s s p r o c e s s e sc a no n l yb ed e s i g n e ds t a t i c a l l y , w h i c hh a sg r e a t l yl i m i t e dt h ea d a p t a b i l i t yt o t h eb u s i n e s sc h a n g e s 融d i s s e r t a t i o nd e l i v e r sad e t a i l e di n t r o d u c t i o no fad y n a m i cw e bs e r v i c e s c o m p o s i t i o nf r a m e w o r kb a s e d0 1 1b p e l 4 w sa n ds e m a n t i c s i nt h i sf r a m e w o r k , t h e a b s t r a c tp r o c e s st e m p l a t e ( a p t ) d e s c r i b e st h ei n t e r a c t i o na n db u s i n e s sp r o t o c o l s a m o n gd i f f e r e n tw e bs e r v i c e s t h ef r a m e w o r ka l s od e f i n e st w os e m a n t i cm e t a d a t a d e s c r i p t i o nl a n g u a g e s :t h eb u s i n e s sp r o c e s sm e t a d a t al a n g u a g e ( b p m t l ) a n dw e b s e r v i c em e t a d a t al a n g u a g e ( w s m t l ) , w h i c hu t i u 踯s e m a n t i cw e bt e c h n o l o g i e st o d e s c r i b et h es e m a n t i cm e t a d a t ao fa p ta n dw e bs e r v i c e s , r e s p e c t i v e l y t h r o u g ht h e m a t c h m a k i n go ft h es e m a n t i cm e t a d a t a , t h ew e bs e r v i c e sq u a l i f i e df o rt h eb u s i n e s s r e q u i r e m e n t sc a ne f f e c t i v e l yb es e l e c t e d a tl a s t ,t h es e l e c t e ds e r v i c e sa r ec o m p o s e di n t o b u s i n e s sp r o c e s s e st h r o u g hw e bs e r v i c eb i n d i n g c o n s i d e r i n gt h a td i f f e r e n to n t o l o g i e s c a nb eu s e db yd i f f e r e n ts e r v i c ep r o v i d e r s ,t h es i m i l a r i t yb a s e dm n l t i - o n t o l o g y m a t c h m a k i n gt e c h n i q u ei sa l s oi n v e s t i g a t e d t h ew e bs e r v i c ec o m p o s i t i o nf r a m e w o r k i l l u s t r a t e di nt h i sd i s s e r t a t i o ni sb a s e do ni n d u s t r ys t a n d a r d s ,a n dt h u sc a nb em o r ee a s i l y i m p l e m e n t e di n t ob u s i n e s ss o l u t i o n st oi m p r o v et h ea d a p t a b i l i t yo fb p e l 4 w s b u s i n e s s p r o c e s s e s k e yw o r d s :w e bs e r v i c e s b p e l 4 w sb p m t lw s m t lo n t o l o g y 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其它人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所傲 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:日期! z :! 兰 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名:三幽 导师签名: 日期堡2 :! :兰 第1 章绪论 第1 章绪论 随着电子商务的发展,很多公司选择了不同的技术平台构建了各种各样的企 业软件系统。因此,如果能够重用已有的软件系统所提供的功能,并进一步将这 些功能进行组合得到新的功能,必将为企业节省引进新的软件系统所需的巨大 开支从而创造巨大的经济价值。w e b 服务使得软件能够以服务的形式通过互联网 进行发布和访问。w 曲服务是自描述的和平台无关的,而且服务之间是松耦合的。 w e b 服务的出现极大地推动了面向服务架构的发展和实现。商业流程执行语言能 够有效组合已有的不同w e b 服务,并生成更大粒度的新的w e b 服务,因此能披 用来更有效地重用企业的r r 资产。 l 。1 什么是w e b 服务组合 一个w 曲服务就是包含了一组服务操作的接口,并且这些服务操作可以通 过互联网和标准化的x m l 消息传递机制被访问。w e b 服务是用标准的、规范 的x m l 概念描述的,称为w e b 服务的服务描述。这一描述提供了与服务交互 需要的全部细节,包括抽象的服务接口定义( 包括操作及输入输出消息) 以及具 体的传输协议和服务位置。该描述隐藏了实现服务的细节,允许独立于实现服务 的硬件或软件平台以及编写服务所用的编程语言使用服务。这使基于w e b 服务 的应用程序能够实现松散藕合、面向组件和跨平台。w e b 服务执行特定一项或一 组任务。w e b 服务可以单独或同其它w e b 服务一起用于实现复杂的业务交易“1 。 w e b 服务体系结构包括三种基本角色( 服务提供者、服务注册中心和服务请 求者) ,图1 1 表示了它们之间的交互: 图1 1w e b 服务体系结构 其中各个角色的职责为: 服务注册中心:用来注册w c b 服务,保存发布者及其所提供的w e b 服务 的信息,包括w e b 服务描述语言( w e bs e r v i c ed e s c r i p t i o n 2 基于b p e l 4 w s 和语义的动态w e b 服务组合框架 l a n g u a g e , w s d l ) 锄所描述的相关信息。服务注册中心通常由统一描述、 发现和集成( 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 y , a n di n t e g r a t i o n ,u d d i ) 技 术实现。 服务发布者:服务发布者提供w e b 服务,并且将w 曲服务相关的信息注 册在服务注册中心中。 服务请求者:服务请求者从服务注册中心当中查找w e b 服务,并从返回 结果中选择所需w e b 服务。通过服务请求者和服务提供者之间的绑定, 服务请求者对w e b 服务进行调用。 w e b 服务客户一般通过简单对象访问协议( s i m p l eo b j ma c c e s sp r o t o c 0 1 s o a p ) ”对w e b 服务进行访问。由于服务注册中心本身也是一个w e b 服务,因此 以上三个角色中任意两者的交互一般都是基于s o a p 消息的。 每个w e b 服务是一个独立的软件模块,因此w e b 服务并不知道自身如何与 其它的w e b 服务进行合作来完成一个更为复杂的任务。w e b 服务之间的相互协作 需要解决三个基本问题: ( 1 ) 服务的调用顺序:w e b 服务应能够以不同的顺序执行。如并行和串行。 同时,w e b 服务的执行可能会受到当前会话的状态的影响,也就是说w e b 服务的 执行可能受到一定条件的限制。 ( 2 ) 服务之间的消息交换:不同的w e b 服务之间可能会存在消息交换也就 是说,先前调用的w e b 服务的输出或输出的一部分可能会作为输入传递给下一 个被调用w e b 服务。 ( 3 ) 服务调用出错处理:当服务调用出错时,应该对先前调用服务所产生的 状态变化进行回滚。 这种通过相互协作将小粒度的w e b 服务进行组合形成更大粒度的w e b 服务 的过程就是w e b 服务组合,如图1 2 所示: 图1 2w e b 服务组合 在上图中,w s l 、w s 2 和w s 3 组合为一个粒度更大的服务w s 6 ;w s 4 和 w s 5 组合成w s 7 ;w s 6 和w s 7 最终又组合成为粒度更大的服务w s 8 。 目前,工业界和学术界为w 西服务组合制定了不同的方案。当今主要的r r 公司,如m i c r o s o f t 和i b m ,共同联合制定了商业流程执行语言( b u s i n e s sp r o c e s s 第1 章绪论3 e x e c u t i o nl a n g u a g ef o rw e bs e r v i c e s ,b p e m w s ) 。b p e l 4 w s 以一种类似编程语 言的形式在更高一个层次对商业流程进行描述。在流程当中,指定了每一个参与 流程的w e b 服务被调用的时机、消息的赋值方式以及错误处理方式。最终商业流 程以w e b 服务的形式向客户提供服务另外,万维网联盟w 3 c 推荐了语义w e b 服务标记语言o w ls “”。相对于b p e l 4 w s ,o w l - s 对语义提供了更好的支持, 更容易实现w e b 服务的自动发现和组合,在学术界得到了广泛研究。 1 2w e b 服务组合存在的问题及研究现状 1 3 1w e b 服务组合存在的问题 b p e l 4 w s 是工业标准,受到许多r r 公司以及开源社区非常好的支持,开发 工具和运行环境也已经相对成熟。图1 1 中显示的是a e t i v e b p e ld e s i g n e r 汹1 的 b p e l 4 w s 流程设计环境: 图1 1a e t i v e b p e ld e s i g n e r 设计环境 像a c t i v e b p e ld e s i g n e r 这样的图形化设计工具已经可以使设计人员忽略底 层的x m l 语法而专注于流程的设计。但是,b p e i m w s 对于信息的表达完全是基 于语法的,在b p e l 4 w s 流程设计过程当中存在以下问题: 流程需要什么样的服务完全基于设计人员对于业务需求的理解,而不同 的设计人员对于业务需求的理解会存在差异,对于流程所需的服务缺乏 4 基于b p e l 4 w s 和语义的动态w e b 服务组合框架 统一的计算机能够处理的形式化表示。 在流程设计过程中,每当需要一个服务两这个服务的w s d l 文档又不在 工作区的时候,就要去u d d i 搜索所需服务。u d d i 的内容也是基于特 定语法的,搜索的过程完全基于字符串的匹配,返回的结果集包含的搜 索结果数目不但大而且搜索结果往往不太准确。 对于流程所需服务的选择往往取决于多个因素,比如功能、服务质量甚 至具体应用中业务相关的要求。一个w e b 服务的服务质量是随着服务的 运行情况不断变化的,而且现有w 曲服务规范也没有提供一个模型或者 框架对具体应用相关的业务进行描述,因此现在的b p e i 4 w s 流程设计 环境无法充分表达这些因素。 整个b p e l 4 w s 流程的设计过程就是设计人员不断与设计工具进行交互 的过程,也是不断反复进行服务选择和语法处理的过程。如果外部的业 务发生变化需要调整流程,则需要设计人员重复b p e l 4 w s 流程的设计 过程,严重影响了流程的应变能力。 o w l - s 则充分结合了语义w c b 技术,使得我们对于服务和需求都能够采用统 一的形式化的方式进行表示。但是,实施o w l - s 所定义的流程也存在以下困难: o w l - s 缺乏对于错误、事务、外部事件等方面的有力支持,使用o w l - s 定义的流程很难充分适应情况复杂的分布式环境。 o w l 广s 独立于现有的工业标准,而不是对现有工业标准的扩展。因此, 很难得到r r 厂商和开发人员的广泛支持。 o w l - s 的应用依赖于语义w e b 技术的发展。对于服务发现和组合,一 个非常重要的问题就是概念的匹配,而目前的相关技术还不能很好地支 持现实中大范围内的存在异构本体的情况。 1 3 2w e b 服务组合的研究现状 t r a c yg a r d n e r “”为b p e l 4 w s 定义了一组u m l 的p r o f i l e ,并且通过预定义的 一组映射关系从u m l 生成b p e l 4 w s 流程。r a i n e r a n z b o k 和s c h a h r a m d u s t d a r “q 则引入另外一种模型驱动的方法,通过一系列的自动化和半自动化的转换来生成 相应的b p e l 4 w s 流程。模型驱动方法的主要思想就是使用u m l 为b p e l 4 w s 流 程以及参与流程的w e b 服务建模,然后通过一系列转换从u m l 表示的流程生成 x m l 格式的并且可以部署执行的b p e l 4 、s 商业流程。 使用p e t f i 网对w e b 服务的商业流程进行建模与验证也是很常见的方法,目前 具有代表性的工作有v a nd c r a a l s t u d ) ,m a r t e n s 哑1 和s t a h l m 。v a nd e r a a l s t 使用工 作流网对工作流过程进行描述和验证。m a r t e n s 将b p e l 4 w s 流程转换为p e t r i 网, 第1 章绪论 5 并且使用p e t r i 网对b p e l 4 w s 流程进行分析,这些分析包括:验证一个w e b 服务 的可用性以及两个w e b 服务兼容性;为一个给定的w e b 服务自动产生抽象流程模 型;以及仿真和验证两个w 曲服务的一致性。这些分析是通过使用原型工具 w o m b a t 4 w s u * l 来完成。s t a i d 将b p e l 4 w s 流程转换为一个基于模式的p e t r i 网, 然后使用工具l o l a t m 来验证商业流程的语义。目前基于p e t r i 网的研究主要是对 w e b 服务的不同方面进行验证,并且通常也采用一些辅助性工具,从而能够方便 地验证商业流程的活性和安全性。 由于o w l - s 得到了学术界的广泛关注,也相应产生了许多基于o w l - s 进行 w e b 服务组合的方法。p a o l ot r a v e r s o 和m a r c op i s t o r e “”将每一个服务编码成一个 不确定状态转换系统,并且将所有的状态转换系统合并成为一个规划域( p l a n n i n g d o m a i n ) ;然后根据合成目标( c o m p o s i t i o ng o a l ) 生成一个规划( p l a n ) ,并最终将该 规划转换成为相应的流程。他们还和p i e r l u i g ir o b e r t i “7 1 提出了一个理论上的框架 用来实现流程级别的自动化组合。雷丽晖吼“则将0 w l s 转换成为有限状态自动 机,并且通过测试自动机所接受的语言是否为空来评估一个w e b 服务的功能。 m u h a m m e d a h t i s h a m a s l a m t 5 1 提出了一种用于将b p e l 4 w s 转换成o w l - s 的方法, 通过这种方式来弥补b p e i m w s 对于语义支持的不足。 美国乔治亚大学的大规模分布式信息系统( l a r g es c a l ed i s t r i b u t e d i n f o r m a t i o n s y s t e m , l s d i s ) 实验室则提出了一种通过服务绑定从抽象的 b p e l 4 w s 流程生成可执行b p e l 4 w s 流程的方法“日但是该方法缺少一套完整 的语义元数据描述机制,不能够实现服务的动态绑定。另外该方法的语义匹配是 基于一个本体的。但在现实中,不同的服务提供商可能使用不同的本体来描述服 务,而且即使同一个w e b 服务的不同接口部分也可能使用不同的本体来描述, 因此该语义匹配机制不适用于多本体环境,限制了该方法的可用性。 为了解决多本体环境中的概念匹配闯题,一些研究人员近两年提出了一些基 于相似度的多本体匹配算法。由于本体中的概念是使用属性进行定义的,s a s i p o m u s a n a v a s i n 等人提出了一个用于计算来自不同本体的属性之间的相似度的算 法,并将该算法用于计算两个w e b 服务之间输入输出的匹配程度。k d u y n g a n 则提出了一个基于相似度的概念匹配算法,并且结合基于包含关系的单本体匹配 算法给出了一个多本体服务发现系统。 1 4 课题研究意义及重点内容 动态w e b 服务组合是当今w e b 服务领域的一个研究热点。相对于静态的w e b 服务组合来讲,动态w e b 服务组合具备更大的灵活性和更好的适应性。由于动态 w e b 服务组合在运行时间发现及绑定服务,因此能够根据外界的业务需求变化快 6基于b 踞l 4 w s 和语义的动态w e b 服务组合框架 速做出相应的流程调整。通过对于动态w e b 服务组合的研究,能够更好地重用当 今企业内部已有的软件系统,为企业节省大量的人力物力。因此,本文提出一个 基于b p e l 4 w s 和语义的动态w e b 服务组合框架。这个框架分别使用商业流程元 数据语言和w e b 服务元数据语言描述b p e l 4 w s 商业流程和w e b 服务的语义元 数据,并且通过多本体匹配算法选择符合业务需求的w e b 服务,从而为动态w e b 服务组合提供更大的灵活性和可行性。 这篇论文的重点内容包括以下几点: 分析b p e l 4 w s 商业流程和w e b 服务的主要特点,提供完整的 b p e u w s 商业流程和w e b 服务语义元数据描述语言。 研究多本体语义匹配技术以及该技术在服务匹配当中的应用。 研究将匹配的w e b 服务动态绑定在b p e i4 w s 商业流程中的方法。 1 5 论文组织结构 本文主要研究了动态w e b 服务组合的技术,全文由六章组成: 第1 章为绪论部分。简要介绍w e b 服务以及w e b 服务组合的基本概念,然 后通过分析借鉴国内外相关领域的发展,指出动态w e b 服务组合的应用价值及本 文的研究重点。 第2 章介绍商业流程执行语言b p e l 4 w s ,并介绍抽象b p e l 4 w s 流程的主 要概念和用途。 第3 章对语义w e b 以及本体的概念匹配技术做简要介绍,并给出w e b 服务 匹配算法。 第4 章对本文所提出的动态w e b 服务组合框架进行综述。首先介绍该框架中 各个组成部分及其相互关系,然后介绍该框架的架构。最后结合例子阐述动态服 务绑定过程。 第5 章为总结部分,分析本论文所提出的方法对于动态w e b 服务组合研究领 域的贡献,并提出未来需要进一步深入研究的内容。 第2 章商业流程执行语言b p e l 4 w s 7 第2 章商业流程执行语言b p e l 4 w s b p e l 4 w s 提供了一种x m l 格式的用来描述商业流程和业务交互协议的语 言。通过这种方式,b p e l 4 w s 扩展了w e b 服务的交互模型来支持业务的事务处 理。同时,b p e l 4 w s 定义了一个可互操作的集成模型,该模型使得企业内部以及 业务之间的自动化流程集成变得更为容易。b p e i m w s 流程分为抽象流程和可执行 流程。可执行流程可以被部署在b p e l 4 w s 引擎上面执行,而抽象流程则不能。 相对于可执行流程,抽象流程更加注重业务协议的描述,即流程伙伴之间是如何 根据协议进行交互,而不关心每个流程伙伴对应哪个具体的w e b 服务。本章后面 的内容将对b p e l 4 w s 的主要元素进行简要介绍,并介绍抽象流程的概念和用途。 2 1 基本活动 b p e i m w s 的基本活动为商业流程内的原子操作,包括i n v o k e 、r e c e i v e 、r e p l y 、 a s s i g n 、t h r o w 、w a i t 和e m p t y 。这些基本活动有一些共同的属性( s t a n d a r d a t t r i b u t e s ) 和子元素( s t a n d a r d - e l e m e n t s ) : s t a n d a r d a t t r i b u t e s : f l a m e :活动的名字。 j o i n c o n d i t i o n :指明活动的执行条件。 s u p p r e s s j o i n f a i l u r e :指明着执行条件不满足是否忽略由此产生的错误。 当为t r u e 时忽略该错误。 s t a n d a r d - e l e m e n t s :包含s o u r c o 和t a r g e t 两个元素这两个元素用来定义并 行活动之间的同步关系。 2 1 1i n v o k e 活动 在b p e l 4 w s 中,i n v o k e 活动调用服务的操作。其语法和例子如图2 1 所示: ( a j i m 哺啪琦的疆培t 辨i 喇。蝻蚺的何于 图2 1i n v o k e 活动的语法和例子 8 基于b p e i a w s 和语义的动态w e b 服务组合框架 在i n v o k e 活动的语法当中,c o r r e l a t i o ns e t 为相关集,在有状态会话当中用来 定义会话的状态;c a t c h 和c a t c h a l l 用来捕捉流程执行过程中所产生的错误消息; c o m p e n s a t i o nh a n d l e r 为补偿处理器,指明当活动出错时应该怎样补偿先前操作引 起的状态变化。 2 1 2r e c e i v e 和r e p l y 活动 一个商业流程通过r e c e i v e 活动和r e p l y 活动为其伙伴提供服务。在同步调用 的情况下,商业流程通过r e c e i v e 活动接受伙伴的请求,并通过r e p l y 活动将处理 结果返回给伙伴;在异步调用的情况下,商业流程通过i n v o k e 活动调用伙伴服务 的回调( c a l l b a c k ) 操作将结果返回。 图2 2 显示了r e c e i v e 和r e p l y 活动的语法和例子: 砷”o 棚嗍活暂肫西茬蝴眦h - 柙r p 咐功的倒予 图2 2r e c e i v e 和r e p l y 活动的语法和例子 其中r e c e i v e 活动在商业流程的生命周期中扮演了一个重要角色。在b p e i a w s 中,我们通过使用标注了属性e r e a t e l n s t a n e e 值为t r u e 的r e c e i v e 活动来初始化商业 流程。如果流程中定义了多个这样的活动,那么对应一次请求只能有一个r e c e i v e 活动被执行来初始化流程。 给定个r e p l y 活动,在其之前必须有一个对应的r e c e i v e 活动,并且这个 r e c e i v e 活动具备相同的p a r t n e r l i n k 、p o r t t y p e 和o p e r a t i o n 属性。在这种情况下, 一对r e c e i v e r e p l y 活动对应了一个同步的请求响应过程。 2 1 3 变量定义及变量赋值 在i n v o k e 、r e c e i v e 和r e p l y 活动当中都使用变量( v a r i a b l e ) 来进行消息和数据 的传递,而变量的赋值则是通过a s s i g n 活动来进行的。图2 3 分别给出了v a r i a b l e 和a s s i g n 活动的语法定义及例子。 其中v a r i a b l e 可以分别通过m e s s a g e t y p e ,t y p e 和e l e m e n t 这三种属性中的任 第2 章商业流程执行语言b p e l 4 w s9 意一种进行定义,但不能同时以两种方式定义同一个变量。在这三种方式当中, m e s s a g e t y p e 属性的值为w s d l 中所描述的w e b 服务操作的输入输出消息类型; t y p e 属性的值为x m ls c h e m a 的内建的简单类型;而e l e m e n t 属性的值为w e b 服 务的w s d l 文档t y p e s 部分中的自定义x m ls c h e m a 元素。此外,如果要定义一 个类型为x m l s c h e m a 复杂类型的v a r i a b l e ,必须在x m l s c h e m a 类型定义中声明 一个类型为复杂类型的x m l s c h e m a 元素,然后在v a r i a b l e 中设置e l e m e n t 属性的 值为该元素。 i | ,懈黼嗣韵嘲懈动舯谐拄m 垤帕脚和钠确鹏动盼佛予 图2 3v a r i a b l e 和a s s i g n 活动的语法和例子 每一个a s s i g n 活动下面有一至多个c o p y 元素,用来执行具体的赋值操作,而 c o p y 元素下面的一对f r o m t o 元素指明了赋值的具体方式。 f r o m 元素可以采取如下的定义形式: , :f r o mv a r i a b l e = ”n c n a m e ”p a r t = ”l l c n a n l e ”? 屈 f r o mp a r t n e r l i n k = ”n c n a m e ” e n d p o i n t r e f e r e n e e = ”m y r o l e l p a r t n e r r o l e 协 f r o mv a i l a b l e = ”n c n a i i l e ”p r o p e r t y = ”q n a m e ”胁 ( 国 l i t e r a lv a l u e t o 元素则可以采取如下的定义形式: ( 劭 表2 1 显示了每一对f r o m t o 中f r o m 和t 0 可以采用的定义形式,其中标注“” 的地方表明f r o m 和t o 可以分别采用相应的定义形式,空白的地方表示f r o m 和t o 的定义形式不匹配。 表2 1f r o m 和t o 元素定义形式匹配表 f r o m 和i o 元素定义形式是 f r o m 元素的定义形式 否匹配 t o 元素的定,j 义形式, l o 基于b p e l 4 w s 和语义的动态w e b 服务组合框架 2 1 4 其它基本活动 b p e i a w s 基本活动还包括t h r o w 、w a i t 和e m p t y ,语法和例子如图2 4 所示: f 帆h m 橱嘲话对瞻诗法斜懈蝴村4 帅节毋碲的懈子 图2 4 其它基本活动的语法和例子 t h r o w 活动用来在个商业流程内部显式地发出一个内部错误。每个错误都要 有一个q n a m e 作为全局的标识符。通过用f a u l t n a m e 属性指定所要产生的错误的 标识符,t h r o w 活动可以在流程内部抛出特定的错误。 w a i t 活动允许流程暂停一段时间或者当系统时钟达到某个具体时间的时候再 继续执行。 e m p t y 活动不做任何事情,可以被用来作为补偿处理器和错误处理器的默认处 理方式。 2 2 结构化活动 结构化活动( s t r u c t u r e da c t i v i t i e s ) 用来指定一组活动的执行顺序。这些活动 描述了如何通过将基本活动组合为一些特定的结构来创建商业流程。这些结构则 表达了控制流,数据流,错误和外部事件处理方式以及在业务协议中涉及的消息 交换方式。结构化活动之间能够以任意的方式进行嵌套。根据控制商业流程执行 的方式可以将结构化活动分为三种类型: s e q u e n c e 、s w i t c h 和w h i l e 活动提供顺序控制。 f l o w 活动提供并发和同步控制。 p i c k 则提供了基于外部事件的不确定性选择。 下面我们分别基于这三种流程控制对结构化活动进行介绍。 2 2 1s e q u e n c e 、s w i t c h 和w h i l e 活动 一个s e q u e n c e 活动包含了一个或者多个顺序执行的活动,这些活动按照他们 被罗列的顺序一个接一个执行。s e q u e n c e 活动的语法和例子如图2 5 所示: 第2 章商业流程执行语言b p e l 4 w s 耐州晦础的语法t b ) m q t - l l c 活磷的棚予 图2 5s e q u e n c e 活动的语法和例子 s w i t c h 活动使得流程能够根据条件选择将要执行的活动。一个s w i t c h 活动包 含了一个或多个由c a s c 语句表示的条件分支,以及一个可选的o t h e r w i s e 分支。 s w i t c h 活动的语法和例子如图2 6 所示: i ) 蛐瞻磅的语法( b 触h 赫动静倒予 图2 6s w i t c h 活动的语法和例子 w h i l e 活动使得活动能够被循环执行,直到w h i l e 中的c o n d i t i o n 表达式的值为 假。w h i l e 活动的语法和例子如图2 7 所示: 1 涮w s 磅帕薅j 蠹哟w 崎均的饲干 图2 7w h i l e 活动的语法和例子 2 2 2f l o w 活动 f l o w 活动使得活动能够并发执行,并且s o u r c e 和t a r g e t 元素提供了并发活动 之间的同步功能。f l o w 活动的语法和例子如图2 8 所示: f l o w 下的活动都将被并发执行。给定一个l i n k ,对应这个l i n k 的t a r g e t 的活动 必须在对应这个l i n k 的s o u r c e 的活动之后执行,并且说前者对后者具有同步依赖。 如图2 8 ( b ) 中的活动b 就对活动a 具有同步依赖,b 必须在a 完成后执行。通过 这种方式就在并发的活动之间形成了同步。 1 2基于b p e w s 和语义的动态w e b 服务组合框架 ( a ) l b 嵫靖的语法 b ) f 晰劫日倒予 图2 8f l o w 活动的语法和例子 2 2 3p i c k 活动 p i c k 活动使得当某个事件发生的时候能够执行相应的活动。事件由特定消息 的到达或计时器引起。p i c k 活动的语法和例子如图2 9 所示: l 劬p l c 憾劝请薏 wp i c k 蹭耐册嚣于 图2 9p i c k 活动的语法和例子 p i c k 活动由若干个事件活动对组成。在p i c k 活动的语法中,o n m e s s a g e 表示 消息到达事件,而o n a l a r m 表示计时器事件。值得注意的是p i c k 活动有一个 c r e a t c i n s t a n c e 属性,这个属性只能与o n m e s s a g e 事件一起用,表明是否在消息到 达的时候初始化一个商业流程,其作用和r e c e i v e 活动相同。 2 3 错误及补偿处理 传统的a c i d 事务往往限制在本地的更新。这些事务要求对资源加排它锁而 且执行相对时间较短,并且当事务中某个操作出错时整个事务必须回滚。然而, 商业流程的执行时间一般很长,流程内的一个事务可能涉及到若干个传统的a c i d 事务。因此,如果将a c i d 属性严格地施加在商业流程事务当中,则可能造成某 些资源长期被锬,使得系统不能正常运转。 基于如上考虑,商业流程中的事务被称为长运行事务( l o n g - r u n n i n g t r a n s a c t i o n s ,l r t ) 。在l r t 中,错误处理采用了所谓的补偿机制。当一个包含 第2 章商业流程执行语言b p e l 4 w s 了若干活动的业务单元被执行的时候,如果一个活动出错,那么先前这个业务单 元中执行过的活动所产生的效果都会被依次反置。反置的途径就是通过应用相关 的活动来进行的。比如在一个网上购物的业务单元中,“提交订单”活动如果失 败了,那么很有可能就会调用一个“取消订单”的活动来对“提交订单”活动所 造成的系统状态变化进行补偿。在商业流程当中,错误是通过错误处理器进行捕 获的,而补偿操作则是通过补偿处理器进行的。 2 3 1 错误处理器 任何错误处理都将导致产生错误的流程区域( s c o p e ) 非正常终止,即使错误 处理器处理了产生的错误而且没有再次抛出任何错误。在商业流程中,错误处理 的唯一目的就是为了撤销产生错误的流程区域内所完成的那部分工作。错误处理 器的语法和例子如图2 1 0 所示。 在错误处理器中,可以设置若干个c a t c h 处理器或一个c a t c h a l l 处理器,而且 至少要设置一个处理器。每个c a t c h 处理器用来捕获一个由f a u l t n a m e 所标识的特 定错误,并且可以用一个f a u l t v a r i a b l e 来包含错误消息中的数据;如果一个错误没 有被任何一个具体的c a t c h 处理器捕获,那么该错误则由c a t c h a l l 处理器捕获。 i ) 糟景赶理嚣的吾珐 话儇缸理嚣的搠子 图2 1 0 错误处理器的语法和例子 2 3 2 补偿处理器 在流程区域内可以指定一部分行为是可以通过补偿处理器以一种具体应用相 关的方式被撤销的。补偿处理器本身不表达任何附加的信息,仅仅被用作补偿活 动的容器,其语法和例子如图2 1 1 所示: 与错误处理器不同的是,补偿处理器被当做业务逻辑正常的一部分,补偿处 理器的调用不会使当前流程区域变为菲正常状态。补偿操作和被补偿的操作往往 是由同一个服务提供者提供的。也就是说对于某些业务,一个服务提供者如果提 供了处理某业务的操作,那么对应该操作的补偿操作也应一并提供。 1 4 基于b p e l 4 w s 和语义的动态w e b 服务组合框架 ) 扑惜妊堪曩的话硅 哟静偿处理b 豹佣予 图2 1 1 补偿处理器的语法和例子 补偿处理器可以通过c o m p e n s a t e 活动来调用,其语法和例子如图2 1 2 所示: i ) 粕棚州瑶础的语蛙( b ) 州瑚- - 聒动的捌子 图2 1 2 调用补偿处理器的例子 2 4 抽象b p e l 4 w s 商业流程 2 4 1 什么是抽象b p e l 4 w s 商业流程 一个抽象的b p e l a w s 商业流程是一个未完全定义的且不打算被执行的商业 流程。在一个抽象流程中,一些操作细节可以被省略使得流程是未完全定义的, 并且通过设置p r o c e s s 元素的a b s t r a e t p r o c e s s 属性为y e s 来标识流程的抽象状态。 对于抽象流程的未完全定义的抽象状态应做如下理解: 抽象流程在被转换成为可执行流程的过程中可以进行进一步的扩展和修 改,而这种扩展和修改称为细化。 抽象流程可以使用可执行流程中所有的元素结构,而且元素所表达的语义 没有任何差别。 抽象流程可以省略一些对于可执行流程来讲是必需的细节。这些细节包括 规范中可执行流程的语法扩展,在i n v o k e 、r e c e i v e 、r e p l y 和o n m e s s a g e 元素的i n p u t v a r i a b l e 、o u t p u t v a r i a b l e 或v a r i a b l e 属性,以及用来初始化流 程的r e c e i v e 活动。 第2 章商业流程执行语言b p e i a w s 抽象b p e l 4 w s 流程和可执行的b p e l 4 w s 流程之间有一些共同的b p e l 4 w s 语法定义。除了这些共同的语法部分,抽象的b p e l 4 w s 流程还有一些自己的扩 展。这些语法扩展主要就是不透明占位符( o p

温馨提示

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

评论

0/150

提交评论