已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)从bpel到petri网映射的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 w e b 服务( w e bs e r v i c e s ) 为网络时代的分布式计算定义了统一的接1 2 1 和调用 模式,使得不同系统提供的服务能够以同样的方式进行调用,从而成为构建复杂 而灵活的商业系统的基础。 b p e l ( b u s i n c s sp r o c e s se x e c u t i o nl a n g u a g e ) 是目前w e b 服务组合( w e b s e r v i c e sc o m p o s i t i o n ) 的标准,是一种基于w e b 服务的商业过程建模语言。b p e l 可以将现实中异构的,松耦合的w e b 服务按照一定的逻辑有机地结合起来,形 成一个更大规模的,灵活的w e b 服务,并且提供会话状态管理、错误处理、补 偿处理等高等级的机制。然而b p e l 本身不包含验证机制,无法对所产生的过程 进行必要的分析和验证。为解决这个问题,w - m p v a n d e ra a l s t 提出将b p e l 过 程映射至p e t r i 网,从而可以利用p e t r i 网完备的理论体系和丰富的工具实现对 b p e l 过程的验证。在此之后,随着对将b p e l 映射到p e t r i 网的研究的不断深入, 新的映射方式也不断地出现,但是目前还未形成一个被普遍认可的标准,并且在 映射b p e l 错误处理模块和并行结构中的同步模块等方面都存在一些缺陷。 本文在分析和研究现有的映射方法的基础上,提出了一种新的映射b p e l 过 程至p e t r i 网的方法。此方法和现有的许多映射方法相比,在以下几个方面进行 了创新: 1 本文使用p e t r i 模式映射b p e l 元素,整个模式被一个虚线框包含,内部是 b p e l 元素的逻辑部分的映射,虚线框上是b p e l 元素的接口,从而可以很好的 表示b p e l 过程的层次结构。 2 本文使用s t o p 组件和相应的接口映射b p e l 中隐含的错误处理模块,从而 能很好的将b p e l 中的错误处理的流程用p e t r i 网表示。 3 本文使用新的映射模式映射f l o w 结构中的l i n k s 结构,此映射模式可以很 好的映射l i n k s 结构的j o i n c o n d i t i o n 和t r a n s i t i o n c o n d i t i o n ,并且能检测l i n k s 操作 不当时引发的错误。 4 另外,本文还给出了对b p e l 过程的建模算法,并通过具体实例对其进 行分析。 关键词:w e b 服务;b p e l ;p e i r i 网;p e t r i 模式:验证机制 a b s t r a c t w 曲s e r v i c e sh a v ep r o v i d e dau n i f o r n li n t e r f a c ea n di n v o k ep a t t e r n ,t h u s s e r v i c e si nd i f f e r e n ts y s t e mc a l lb ei n v o k e db yo n ew a y n o w a d a y s ,w 曲s e r v i c e sh a s b e c o m et h eb a s et ob u i l dc o m p l e xa n df l e x i b l eb u s i n e s ss y s t e m b p e l ( b 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 e ) i sab u s i n e s sp r o c e s sm o d e l i n g l a n g u a g eb a s eo n 黝s e r v i c e sa n dh a sb e c o m et h ea c t u a ls t a n d a r do f 矽幻s e r v i c e s c o m p o s i t i o nn o w b p e l c a nc o m b i n eh e t e r o g e n e o u sl o o s e l y - c o u p l e dw 曲s e r v i c e si n t h er e a lw o r l da c c o r d i n gt od e f i n i t el o g i c ,a n dt h e nf o r mam o r ee x t e n s i v ea n df l e x i b l e w 曲s e r v i c e s ,b e s i d e s ,i tc a np r o v i d es o m eh i g hl e v e lm e c h a n i s ms u c ha ss e s s i o ns t a t e m a n a g e m e n t ,e r r o rh a n d l i n ga n dc o m p e n s a t i o n w h e r e a s ,b p e ld o e s n tc o n t a i n v e r i f i c a t i o nm e c h a n i s m ,s oi tc a r ln o tp r o v i d en e c e s s a r ya n a l y s i sa n dv e r i f i c a t i o nt o b p e lp r o c e s s t os o l v et h i sp r o b l e m ,、m m p v a n d e ra a l s tp r o p o s e das o l u t i o nw h i c h i st om a pb p e l p r o c e s s t op e t r in e t ,a n dt h e n r w ec a nr e a l i z et h ev e r i f i c a t i o nt ob p e l p r o c e s sb a s eo nt h ec o m p l e t et h e o r ys y s t e ma n da b u n d a n tt o o l so fp e r t i n e t t h e r e a f t e r , r e s e a r c ho nt h em a p p i n gf r o mb p e lt o p e t r in e th a sc o n t i n u e d n o w a d a y s ,l o t so fa p p r o a c hh a v eb e e np r o p o s e d , b u tw e h a v en o tas t a n d a r dw h i c hi s a c c e p tg e n e r a l l y t i l i sp a p e r p r o p o s e san e wa p p r o a c h o ft h em a p p i n gf r o mb p e lt op e t a ln e tb a s e o nt h ea n a l y s i sa n dr e s e a r c ht ot h ee x i s t i n ga p p r o a c h e s t h ea p p r o a c hw ep r o p o s e s h a ss e v e r a li n n o v a t i o na sw el i s ti tb e l o w 1 w - eu s ep e t r ip a t t e r nt om a pb p e le l e m e n t ,e n t i r ep e t r ip a t t e r na r ec l o s e di na d a s h e df r a m e ,i n s i d eo ft h ef r a m ei st h el o g i co fb p e le l e m e n t ,a n do nt h ef r a m ei s b p e le l e m e n t si n t e r f a c e t h eh i b e r a r c h yo fb p e lp r o c e s sc a nb ee x p r e s s e dw e l li n t h i sw a y 2 w eu s es t o pc o m p o n e n ta n dc o r r e s p o n d i n gi n t e r f a c et om a pf a u l th a n d l i n g m o d u l ew h i c hi sc o n t a i n e di nb p e li m p l i c i t l y , t h u st h ef a u l th a n d l i n gm o d e lo fb p e l c a l lb ee x p r e s s e dw e l lb yp e t r in e t 3 w | ep r o p o s ean e wa p p r o a c ht om a pl i n k ss t r u c t u r eo ff l o ws t r u c t u r e ,t h i s m a p p i n ga p p r o a c hc a nm a p j o i n c o n d i t i o n ”a n d t r a n s i t i o n c o n d i t i o n ”o fl i n k s s t r u c t u r ew e l l ,a n dc a nd e t e c tt h ee r r o re v o k e db yt h ei n a p p r o p r i a t em a n i p u l a t i o nt o l i n k s 4 w bp r o p o s ean e wa l g o r i t h mt om a pe n t i r eb p e lp r o c e s st op e t r in e t ,a n d p r o p o s es o m ee x a m p l e st oi l l u s t r a t ei t k e yw o r d s :w r e bs e r v i c e s ;b p e l ;p e t r i n e t ;p e t r ip a t t e r n ;v e r i f i c a t i o n m e c h a n i s m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表 示谢意。 学位论文作者签名:签字日期:年月 日 学位论文版权使用授权书 本学位论文作者完全了解江西师范大学研究生院有关保留、使用 学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许论文被查阅和借阅。本人授权江西师范大学研究生院 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:年月 日 导师签名: 签字日期:年月 日 从b p e l 到p e t r i 网映射的研究 1 1 研究目的和意义 第1 章绪论 近年来,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 ) 作为一种企业应用集成的解决 方案已经越来越被人们所接受。在这种解决方案里,独立的应用系统被发布成 w e b 服务并且使用基于x m l 的标准( 主要是s o a p 1 6 ) 互相进行通信。在经历了 长时间的发展之后,w e b 服务的开发技术和其点对点的通信技术已经成熟并得到 广泛应用。在此之后,随着商业需求的不断变化,人们开始关注如何在复杂的商 业环境下灵活地组合现有的w e b 服务。 现在对于这个问题已经有了多种的解决方案,其中一个是源于工作流与商业 进程管理领域的称为服务组合( s e r v i c ec o m p o s i t i o n ) 的技术。它把商业逻辑和服 务的接口看作进程模型,这些模型被不同程度的抽象出来,最后到达可执行的层 次。这种技术曾在多个系统上得以实现,并且最后统一成一个标准,即b u s i n e s s p r o c e s se 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 l 4 w s ) ,它是基于x m l 的,由 o a s i s 组织管理,并最后发展成现在的w s b p e l 2 o ( 简称为b p e l ) 1 】 2 】。 在b p e l 中,服务会与其所在的环境通过一些通信的动作( s e n d , r e c e i v e 。 s e n d r e c e i v ee t c ) 进行交互。这些交互被一些控制流联系起来,包括:串行执行 ( s e q u e n t i a l ) ,并行执行( p a r a l l e l ) ,条件执行( c o n d i t i o n a l ) ,事件与异常( e v e n t & e x c e p t i o n ) ,以及回滚操作( c o m p e n s a t i o n ) ,最后形成一个结构化的服务。并且其 中还有声明和操作变量的语句。 目前,b p e l 已经成为w e b 服务组合事实上的标准,并且是实现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 ) 的基础技术之一。然而,b p e l 一直缺乏必要的验 证机制,来检测其描述的商业过程可能存在的诸如有效性,可靠性,可达性等多 方面的问题。鉴于b p e l 控制流与工作流定义语言的相似性,而p e t r i 网是工作 流验证的基础,且p e t r i 网有着完备的理论基础并且有着广泛的分析工具,因此 可以用p e t r i 网来验证b p e l 控制流所描述系统的有效性,可靠性,可达性。 为此,w m p v a n d e r a a l s t 提出了一个解决方案【3 】【4 】,即将b p e l 过程映射 成w f n e t s ( p e t r i 网的一种) 从而利用其完备的理论体系和丰富的工具来完成对 b p e l 过程各方面性质的验证。 在此之后,有很多的研究人员提出自己的从b p e l 到p e t r i 网的映射方式, 硕士学位论文 但是在错误处理模块和并行结构中的同步模块等方面都存在一些问题。 本文在分析和借鉴前人研究的基础上,提出了一种新的映射方式,该映射方 式较好的映射了错误处理模块和并行结构中的同步模块,从而使得到的p e t r i 网 与源b f e l 过程保持更好的一致性。 1 2 相关研究综述 业务流程执行语言b p e l ( b 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 e ) 是一种用 x m l 描述企业内部流程的语言,属于w e b 服务相关技术的一部分。它主要描述 业务流程中w e b 服务间相互的逻辑关系,它将原来分布在各处并彼此孤立的w e b 服务有机的结合起来,从而实现复杂的,不断变化的商业逻辑。 b f e l 是在几个大的商业机构的相关语言的基础上发展而来的,包括m m 的 w s f l ( w e bs e r v i c e sf l o wl a n g u a g e ) 和m i c r o s o f t 的x l a n g ( w e bs e r v i c e sf o r b u s i n e s sp r o c e s sd e s i g n ) 等。现在b f e l 由o a s i s 组织管理,并得到了业界的主 要产商的支持,b p e l 最新的版本是w s b p e l2 0 。 目前,b p e l 的执行引擎十分丰富,其中包括m m 、m i c r o s o f t 、o r a c l e 等 大厂商提供的相应产品,也包括如a c t i v e b p e l 的开源项目。例如,o r a c l e 有b p l e 的过程管理软件,也可以通过e c l i p s e 的图形编辑插件来进行b p e l 的设计,并 部署到o r a c l e 的b p e l 服务器上。m i c r o s o f t 的b i z t a l ks e r v e r 、n e tf r a m e w o r k 都对b f e l 有着完全的支持。i b m 也有自己的b p e l 工具b p e l 4 je d i t e r 和b p e l 4 j e n g i n e 。 然而,关于将b p e l 过程映射到p e t r i 网的研究目前还处在一个初始阶段, 尚未出现大家都公认的标准。最早提出将b p e l 过程映射到p e 仃i 网的是上文所 提到的a a l s t ,在b p e l 出现的早期就进行此类的研究 3 】【4 】 5 】,并提出早期的映 射的算法。然而其所给出的映射算法还不够完善,其中只涉及到最常用的元素和 结构的映射,许多b p e l 的重要内容比如t h r o w 活动、i n v o k e 活动以及并行结构 等多个方面都没有涉及。 在此之后,sh i n z 6 ,rh a m a d i 【7 】等人也随后提出了自己的算法。rh a m a d i 给出了其算法的论证过程和形式化的定义,而sh i n z 6 n 在给出其算法的基础 上开发了相应的工具,从而使映射的过程能够实现自动化,并且映射的结果可以 直接使用工具l o l a 2 5 进行相应的验证。而国内进行的相应研究现在还不是很 多,相当一部分为对国外相关技术的借鉴和探讨。 2 从b p e l 到p e t r i 网映射的研究 1 3 本文的工作 在对b p e l 和p e t r i 网理论进行了分析和研究的基础上,本文结合文献 【3 】 4 5 】 6 】【7 】的研究成果,提出了一种映射方式,将b p e l 的主要活动和结构映 射为p e t r i 网。此映射方式的创新点主要包括: 1 本文使用p e t r i 模式映射b p e l 元素,整个模式被一个虚线框包含,内部是 b p e l 元素的逻辑部分的映射,虚线框上是b p e l 元素的接口,从而可以很好的 表示b p e l 过程的层次结构。 2 本文使用s t o p 组件和相应的接口映射b p e l 中隐含的错误处理模块,从而 能很好的将b p e l 中的错误处理的流程用p e t r i 网表示。 3 本文使用新的映射模式映射f l o w 结构中的l i n k s 结构,此映射模式可以很 好的映射l i n k s 结构的j o i n c o n d i t i o n 和t r a n s i t i o n c o n d i t i o n ,并且能检测l i n k s 操作 不当时引发的错误。 4 另外,本文还给出了对b p e l 过程的建模算法,并通过具体实例对其进 行分析。 最后,本文还介绍了对p e t r i 网进行检测和验证的相关知识。 1 4 论文的组织 本文共分为六章,每章的内容如下: 第一章:绪论。介绍本研究的背景和意义,以及本文的主要工作。 第二章:相关技术的介绍。介绍本研究的相关技术:b p e l 与p e t r i 网。 第三章:映射b p e l 元素。介绍诸如r e c e i v e ,r e p l y ,i n v o k e ,w a i t 等基本活 动和诸如s e q u e n c e ,f l o w 等结构化活动的映射方式。 第四章:映射b p e l 过程。介绍对具体b p e l 过程进行映射时的算法,并通 过具体实例对其进行讲解。此算法可以作为实现映射自动化的基础。 第五章:对p e t r i 网的检测与验证。介绍对p e t f i 网进行检测和验证的相关理 论和技术,并对第四章所提到的实例进行验证。 第六章:结束语。全文的总结及进一步工作的方向。 1 5 小结 本章的内容包括研究目的和意义,及相关研究综述;并给出了本文的研究内 硕士学位论文 容和创新点。 4 从b p e l 到p e t r i 网映射的研究 第2 章相关技术的介绍 2 1b p e l 相关技术与概念 2 1 1b p e l 的起源与发展 w e b 服务业务流程执行语言( b p e l 4 w s ) 是基于w e b 服务技术的工作流语 言,最初在2 0 0 2 年7 月发布,伴以b p e l 4 w s l 0 规范,这是m m 、m i c r o s o i t 和b e a 合作的成果。这个文档内容来源于在此之前的许多厂商各自的w e b 服务 组合语言,例如m m 的w e b 服务流程语言( w s f l ) 与m i c r o s o i t 的x l a n g 规范。 随着s a p 和s i e b e ls y s t e m s 加入,版本1 1 的b p e l 4 w s 规范在一年不到的 时间内,于2 0 0 3 年5 月发布。这个版本获得了更多的关注与厂商支持,导致了 大量的商业上遵循b p e l 4 w s 的可用编排引擎。在此之后,b p e l 4 w s 规范被提 交到o a s i s 技术委员会,使得这个规范能够被开发成为一个官方的、开放的标 准。 2 0 0 3 年4 月,b p e l 被提交结构化信息标准促进组织( o a s i s ) 以实现标准化, 并组建了w e b 服务业务流程执行语言技术委员会( w s b p e l t c ) ,此后b p e l 在 业界获得更为广泛的认可。现在,b p e l 的最新版本为w s b p e l2 0 版,并可 在o a s i s 的官方网站w w w o a s i s o p e n o r g 上获得。 为了简单起见,在文中我们提到的业务流程执行语言就是指w s b p e l 。 2 1 2b p e l 的特性 相对于对象组装技术,服务组装更为复杂。人们必须面对s o a 环境中异构 的、松耦合的、自主的服务【2 3 】。它们间的交互关系是动态的、按需发生的,而 且缺少中央控制【8 】。因此,b p e l 提供的服务组装模型提供了下列特性。 ( 1 ) 灵活性:服务组装模型应该具有丰富的表现能力,能够描述复杂的交互场 景,而且能够快速地适应变化。 ( 2 ) 嵌套组装:一个业务流程可以表现为一个标准的w e b 服务,并被组装到 其他流程或服务中,构成更粗粒度的服务,提高了服务的可伸缩性和重用性。 ( 3 ) 关注点分离:b p e l 只关注与服务组装的业务逻辑;其他关注点,比如服 5 硕士学位论文 务质量( q o s ) ,事务处理等,可被作为附加扩展,由具体实现平台进行处理。 ( 4 ) 会话状态和生命周期管理:与无状态的w e b 服务不同,一个业务流程通 常具有明确的生命周期模型。b p e l 提供了对长时间运行的、有状态交互的支持。 ( 5 ) 可恢复性:这对于业务流程( 尤其对长时间运行的流程) 是非常重要的。 b p e l 提供了内置的失败处理和补偿机制,对于可预测的错误进行必要的处理。 ( 6 ) x m l 数据模型( 数据松散耦合) 2 1 3b p e l 模型 b p e l 模型【1 9 】可以帮助我们更好地理解如何使用b p e l 描述的业务流程。 流程( p r o c c s s ) 由一系列活动( a c t i v i 劝组成;流程通过伙伴链接( ( p a r m c rl i n k ) 来定 义与流程交互的其他服务;服务中可以定义一些变量( v a r i a b l e ,在b p e l 4 w s 中 被称为c o n t a i n c r ) ;流程可以是有状态的长时间运行过程,流程引擎可以通过关 联集合( c o r r e l a t i o ns e t ) 将一条消息关联到特定的流程实例【2 7 】。具体见图2 1 : 图2 i :b p e l 模型 1 伙伴( p a r t n e r ) 在b p e l 中,一个流程可以调用其他服务,也可以响应来自客户端的请求。 也就是说b e p l 流程实例既可以作为服务的请求者,也可以扮演服务的提供者。 b p e l 把与流程交互的其他服务称为伙伴( p a r t n e r ) 。在异步通信环境中,流程与 伙伴之间的会话可能是双向的,这种情况经常会出现在复杂的商务流程中。 在流程与伙伴的通信过程中,它们会扮演不同的角色。比如当订单流程被外 部服务调用的时候,它作为 p u r c h a s e o r d e r p r o c e s s 角色来提供服务,然而当它 6 从b p e l 到p e t r i 圜映射的研究 请求发货服务的时候,它则扮演”i n v o i c e c c l i e n t 角色。由于在流程执行过程中, 一个流程可能会调用多个伙伴服务,又可能接收多个伙伴的请求,因此为了消除 在通信过程中的多义性,我们需要明确服务和流程所扮演的角色。在b p e l 中, 这种流程与伙伴的合作关系是通过 元素来定义的。这样如果在流程 的活动中需要指定与特定伙伴的交互,只需要引用p a r t n e r l i n k 的名称即可。而 且通过p a r t n e rl i n k s 的抽象,在流程建模时,我们不必指定具体的服务端点,而 将流程与具体服务的绑定推迟到组装或运行时来完成。这种动态伙伴关系为流程 带来了极大的灵活性,也增强了流程的可复用性。比如,我们在开发环境中使用 的伪服务实现,在生产环境中无需须修改流程就可以将服务端点替换为主机应 用。 在 元素中,可以通过 m y r o l e 和 p a r t n e r r o l e 属性来定义流程 和伙伴的角色。如果流程作为服务的提供者,需要使用m y r o l e 属性,而当流程 作为服务的请求者时,则使用p a r t n e r r o l e 属性。 p a r t n e r l i n k 通过引用p a r t n e r l i n k t y p e 来定义流程与伙伴服务之间的通信接 口( 实际上是w s d l 文档中的p o r t t y p e ) 。伙伴链接类型声明了两个( 也可能是多 个) 服务之间的关系。服务链接类型定义了一组角色,。其中每个角色指明一组 p o r t t y p e ,即明确了该角色所提供的服务接口。p a r t n e r l i n k t y p e 通常被定义在 w s d l 文档中,被b p e l 流程所引用。 2 变量( v a r i a b l e s ) 在b p e l 中,我们可以使用变量来保存和传递流程的状态信息。变量的数据 类型由w s d l 定义,既可以是x m ls c h e m a 内置的简单类型,又可以是自定义 的复杂数据类型,例如: b p w s :v a r i a b l e s p 上面的代码,展示了如何在b p e l 中使用 元素来定义变量。值得 注意的是,与常见的编程语言类似,b p e l 中的变量是有作用域的,每个变量只 有在定义它的作用域和所包含的作用域内才是可见的。在下面的章节中,我们将 介绍如何使用b p e l 来操纵和传递数据。此外,w s b p e l 提供了一些内置的函 数来支持变量内容的处理: ( 1 ) g e t v a r i a b l e p r o p e r t y ( v a r i a b l e n a m e ,p r o p e r t y n a m e ) 为获取变量属性函数: 其输入参数为变量名称和属性名称,结果为属性值。 ( 2 ) g e t v a r i a b l e d a t a ( v a r i a b l e n a m e ,p a r t n a m e ,l o c a t i o n p a t h ) 为获取变量数据函 数:其输入参数为变量名称、p a r t 名称,以及x p a t h 表达式,其中p a r t n a m e 和 l o c a t i o n p a t h 为可选参数。输出结果为指定变量的全部或部分的数据内容。 7 硕士学位论文 3 活动( a c t i v i t y ) b e p l 流程是由一系列步骤所组成的,它们被称为活动。w s b p e l 定义了 丰富的活动类型,一般来说可以把它们划分为两大类:基本活动和结构化活动。 基本活动描述了流程内的一个具体步骤,比如接收请求、调用伙伴服务、变量赋 值等。而结构化活动则描述了如何组织和管理流程的控制流。在2 1 4 将详细介 绍各种活动。 4 关联集合( c o r r e l a t i o ns e t ) b p e l 提供了声明性机制,以指定服务实例中相关联的操作组。一组相关标 记可定义为相关联的组中所有消息共享的一组特性。这样的一组特性称为关联集 合。每个关联集都在一个作用域中进行声明并属于该作用域。属于全局流程作用 域的关联集称为全局关联集;属于局部作用域的关联集称为局部关联集。在流程 开始时,全局关联集处于未初始化的状态。在其所属的作用域的执行开始时,局 部关联集处于未初始化的状态。 关联集合在其语义上类似于延迟绑定的常数。关联集合的绑定由特别标记的 消息发送或接收操作来触发。关联集合在其所属的作用域的生存期中只能初始化 一次。在初始化之后,它的值就可被认为是业务流程实例的标识别名。在多方业 务协议中,关联集合非常有用。初始者流程发送启动会话的第一个消息,从而定 义了标记该对话的关联集合中的特性值。所有其他参与者通过接收提供关联集合 中的特性值的传入消息来绑定会话中的关联集合。比如一个旅行社订票流程,当 该流程启动之后,用户需要能够查询该流程状态,并能取消该流程,这就需要关 联集合的支持来确保后续的请求消息绑定到相同的流程实例中。 2 1 4b p e l 核心概念 2 1 4 1b p e l 活动 w s - b p e l 通过活动执行流程逻辑【2 2 】。活动被分为两类:基本活动和结构 化活动。基本活动是与外界进行交互最简单的形式。它们是无序的个别步骤,与 服务进行交互、操作传输数据或者处理异常。结构化活动规定了一组活动发生的 顺序。结构化活动通过将业务流程执行的基本活动整合到结构中来描述业务流程 是如何被创建的,这些结构表达了业务协议中所涉及的控制模式、数据流、故障 和外部事件的处理以及在流程实例之间进行消息交换的协调。下面将详细介绍几 种常用的活动。 ( 1 ) 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 是一个流程的初始点,它会阻塞执行直到匹配的消息的到达。 从b p e l 到p e t r i 网映射的研究 r e p l y 活动发送消息给伙伴来应答通过r e c e i v e 活动所接收到的消息。在流程 中可以定义多个r e p l y 活动来回答该伙伴的调用;但是,一次只可能有一个匹配 的r e p l y 成为激活的。适当的r e p l y 活动的匹配是在运行时进行的,此时流程寻找 这样一个活动:准备运行并拥有和r e c e i v e 相同的p o r t t y p e 、操作和伙伴。例如, 流程可能将接收到的消息放在某个容器( 容器a ) 中,如果满足某个条件就返回容 器a 中的消息,否则就返回来自另一个容器( 容器b ) 的消息。在这种情况下, r e c e i v e 将具有两个带有该项条件的链接;这两个链接将链接到两个r e p l y 活动, 只有其中一个r e p l y 活动将激活并向伙伴返回正确的消息。如果r e c e i v e 活动对应 着一个单向( o n e w a y ) 操作,则不能在流程中定义对应的r e p l y 活动。 ( 2 ) i n v o k e ( 请求) i n v o k e 活动允许业务流程同步或异步调用由合作伙伴提供的服务,服务实现 可以是单向或请求响应操作。i n v o k 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 ,指定相应的w s d l 接口和操作。 ( 3 ) a s s i g n ( 赋值) a s s i g n 活动的作用是用新的数据来更新变量的值,可以包括任意数量的基本 复制操作。a s s i g n 活动也可以用于通过使用表达式构造和插入新数据。使用表达 式主要是由于需要执行简单的计算( 如递增序列号) 而激发的,这些简单计算是描 述业务协议行为所必需的。表达式对消息选择、属性和文字常量进行操作,以便 为容器属性或选择产生新的值。a s s i g n 活动还可把端点引用复制到合作伙伴链接, 或把合作伙伴链接复制到端点引用,以实现服务的动态绑定。 ( 4 ) w a i t ( 等待) w a i t 活动会暂停流程执行,等待一段给定的时间或等到某一时刻才继续运 行,比如等待多少秒,等到特定的一个日期,或是使用内置的日期表现法。 ( 5 ) s e q u e n c e ( j 顷序) s e q u e n c e 活动定义一组按顺序先后执行的活动。s e q u e n c e 活动包含一个或多 个顺序执行的活动。活动按照它们在s e q u e n c e 元素中出现的顺序被执行。当 s e q u e n c e 中的最后一个活动已经完成的时候,s e q u e n c e 活动本身就完成了。 ( 6 ) p i c k ( 选取) p i c k 活动会等待一组相互排斥事件中的一个事件的发生,然后执行与发生的 事件相关联的活动。它会阻塞业务流程执行,以等待某一特定的事件发生,比如 接收到一个合适的消息或超时警报响起。当其中任何一个事件被触发后,业务流 程就会继续执行,p i c k 也随即完成了,不会再等待其他事件的发生。 每个p i c k 活动必须至少包括一个o n m e s s a g e 事件。o n m e s s a g e 事件的语义等 同于有关变量属性的可选类型的r e c e i v e 活动。p i c k 活动还可以定义。o n a l a r m 事件用于指定持续时间或截止期限。 ( 7 ) f l o w ( 流程) 9 硕士学位论文 f l o w 活动可以描述更为复杂的活动执行顺序。我们可以利用f l o w 指定一个 或多个并行执行的活动。为了定义任意的控制结构,可以在并行的活动中使用链 接。f l o w 能进一步表达直接或间接嵌套在其中的活动之间的同步相关性,l i n k ( 链 接) 用来表达这种同步相关性。 f l o w 活动出现的所有l i n k 必须在f l o w 活动中分开定义,并通过名称进行标 识。f l o w 活动中嵌套的活动需要通过s o u r c e 或t a r g e t 属性来标明该活动为哪个链 接的源或目标活动。在f l o w 活动中,对于每一个l i n k 必须有且仅有一个活动作 为它的源活动,同样有且仅有一个活动作为它的目标活动。目标活动会在源活动 完成之后执行。这样f l o w 内部的活动就可以通过活动构成一个有向图。 我们还可以在l i n k 的源上定义t r a n s i t i o n ( 变迁) 条件,当源活动完成之后, b p e l 引擎会检查变迁条件是否满足,如果l i n k 的转移条件满足目标活动就会执 行。 ( 8 ) s w i t c h ( 分支) s w i t c h 活动起的作用与许多传统编程语言中出现的s w i t c h 构造很相似。 s w i t c h 活动中有一个由c a s e 元素定义的、由一个或多个条件分支组成的有序列 表,后面跟着一个可选的o t h e r w i s e 元素。每个c a s e 分支指定一个布尔x p a t h 表 达式,按照表达式出现的顺序对它们求值( 条件表达式的求值所使用的逻辑,与 前面讲述a s s i g n 的部分所描述的用于一般表达式的逻辑几乎相同) 。第一个布尔 表达式值为真的c a s e 元素的子活动将获得执行。如果没有哪个c a s e 元素的条件 为真,则执行o t h e r w i s e 元素的子活动。如果没有指定o t h e r w i s e 元素,则会有一 个隐含的包含一个e m p t y 活动的o t h e r w i s e 。当选定的分支完成时,s w i t c h 活动也 就完成了。 ( 9 ) w h i l e ( 循环) w h i l e 活动也继承于传统的结构化编程思想,提供了w h i l e d o 循环结构的支 持。它可以包含一个或多个活动。它指定反复执行其内部活动,直到对指定的布 尔条件求得的值不再为真。条件被当作x p a t h 表达式进行求值。 ( 1 0 ) s c o p e ( 作用域) s c o p e 活动提供了每个活动的执行上下文。每个s c o p e 有一个定义它的正常 行为的主要活动。该主要活动可以是一个复杂的结构化的活动,其中有任意深度 的许多嵌套的活动。所有的嵌套的活动都共享该s c o p e 。s c o p e 可以提供故障处理 程序、补偿处理程序、数据容器和相关集。 2 1 4 2b p e l 错误处理和回滚 在执行一个b p e l 流程时,无论是在被调用的服务中还是流程本身都可能发 生错误。b p e l 提供了一种机制,这种机制可以显式地捕获这些错误并通过执行 1 0 从b p e l 到p e t r i 网映射的研究 在f a u l th a n d l e r 元素中指定的子程序来处理这些错误。此外,已完成的活动在晚 些时候可能需要被撤销,因为这些活动是一个时间更长的事务的一部分,而这个 事务不得不被终止。补偿处理程序允许流程的创建者定义用于撤销一个工作单元 并把数据恢复到执行该工作之前的样子的特定操作。 处理这些情况通常会影响到相互关联的一组活动。在b p e l 中,通过将这些 活动封装作用域( s c o p e ) 结构化活动来实现这个处理。作用域为嵌套在其中的活动 提供上下文,并且也是定义故障处理程序和补偿处理程序的地方。因此,可以将 作用域看作是一个可补偿的、可恢复的工作单元的封装。 整个流程提供全局作用域:它包含一个主活动并允许指定故障处理程序和补 偿处理程序。它还可以定义数据容器和相关集。然而,b p e l 的未来方向指明所 有作用域都将具有上述功能,并且在一个作用域中定义的容器将只能为嵌套在该 作用域中的活动所见。 通过分析b p e l 活动的生命周期,就可以理解作用域如何捕获或传播在它内 部首先发生的错误。在一个活动的父代和传入链接将它激活之前,一个活动始终 保持休止。一旦这个活动从它的父代处获得控制权,并且其所有传入链接都已抵 达,它就会评估它的连接条件,此时会发生以下两种情况之一:要么因为不满足 连接条件而抛出一个j o i n f a i l u r e 故障,要么就正常运行。假设为后者,活动在成 功地运行之后,将评估并激活它的所有传出链接,然后结束。 另一方面,活动可能因自身是一个返回故障( 这个故障是活动在执行时会发 生的b p e l 内建故障之一) 的调用或者是一个t h r o w 活动而在运行时发生故障。在 这种情况下,该活动会通知它所属于的作用域。作用域在收到故障后,它就必须 停止所有嵌套在它内部的活动。另一个可能导致活动无法成功运行的原因是一个 活动永远无法从它的父代获得它全部的链接或控制权。 b p e l 能够在活动嵌套的不同级别捕获并处理错误。可以在任何作用域中定 义故障处理程序,故障处理程序可以绑定到特定类型的故障( 由故障的限定名或 消息类型定义) ,或者绑定到未被针对性更强的处理程序捕获到的任何故障。处 理程序仅包含一个将在错误发生的时候运行的活动。 2 1 4 3b p e l 的补偿机制 由于一个业务流程可能需要运行几天、几个月甚至几年,而且流程可能涉及 外部服务。在流程完成前,单个活动有可能已经完成,如果随后某个事件或错误 发生而导致流程取消,己经完成的活动需要被复原。这种情况下,我们无法使用 简单的事务处理机制来实现回退,我们需要补偿支持来完成这一任务。 补偿是管理业务数据的一种特定方式,它总是业务逻辑的一部分。补偿与数 据库为a c i d 事务 1 5 】提供的原子性回滚不同。补偿可以避免另外一个问题; 硕士学位论文 i n t e m e t 上的任何人都可以锁定公司的数据可能会引发的拒绝服务攻击。采用补 偿方案意味着数据不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学伦理与医疗纠纷处理
- 互联网医疗的商业模式创新
- 2025年深度学习驱动的冠心病病理生理学课件自适应优化方法
- 2026中国车用雷达芯片ADAS系统配置率提升与价格趋势预测
- 2026中国涡流泵市场消费者行为与购买决策分析报告
- 肝止血术诊断与治疗中国专家共识
- 2026年办公空间智能空调系统
- 神经系统疾病患者心理护理
- 活法专项试题及精准答案
- 基础填空试题及答案
- 2025年诗词大赛考试指导题库300题(含答案)
- 《网店客户服务》中职全套教学课件
- CRRT治疗剂量与处方剂量
- 班组建设与班组长管理培训
- 代收代付合同协议
- 经济学原理(曼昆)笔记
- JBT 7946.2-2017 铸造铝合金金相 第2部分:铸造铝硅合金过烧
- GB/T 5683-2024铬铁
- 《煤炭工业露天矿工程建设项目可行性研究报告编制标准》
- 海姆立克急救课件
- 《建设工程定额原理与实务 第3版》 课件 第1章 建设工程定额概论
评论
0/150
提交评论