(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机软件与理论专业论文)基于petri网的bpel流程调试工具的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 w e b 服务组合解决了互联网异构应用的集成和协作问题。w e b 服务组合建模是一个 复杂且易出错的过程。如果组合流程在投入运行后被发现有错,则修复错误的代价很高, 而且流程结构的正确性直接关系到业务集成的效率。因此对服务组合b p e l 流程结构的 正确性验证是w e b 服务组合研究领域的重要问题。目前这方面的研究仅限于理论层面, 缺少切实可行的流程验证工具。 本文提出了基于p e t r i 网的b p e l 流程调试工具,利用p e t r i 网的改进形式p n b p ( p e t r i n e tf o rb p e lp r o c e s s ) 模型对流程建模,实现了b p e l 流程的逻辑验证和流程仿真, 主要工作如下: ( 1 ) 在对p e t r i 网理论分析的基础上,提出了针对b p e l 流程的p e t r i 网p n b p 模型的定义,利用p n b p 模型对b p e l 流程的顺序活动、并发活动、选择活动和循环活 动进行了建模,从而实现任意结构的b p e l 流程建模。 ( 2 ) 采用覆盖树、关联矩阵和状态方程、迁移矩阵对b p e l 流程建模后的模型进 行了安全性、可达性和死锁性质验证。 ( 3 ) 设计并实现了调试工具,重点对b p e l 文件向p n m l ( p e t r in e tm a r k u p l a n g u a g e ) 文件的转化、p n m l 文件的解析及流程的逻辑验证部分从实现上进行了详细 分析。通过贷款审批案例的调试演示了b p e l 流程的建模、验证和仿真过程,说明了本 文研究的调试工具的实用性和易用性。 该工具已经在国家高技术发展计划项目“高可信的软件生产线”子课题“面向流程 管理的软件生产线”中得到了运用。 关键词:b p e l 流程,流程调试,p e t r i 网,w e b 服务组合 r e s e a r c ha n di m p l e m e n t a t i o no f ab p e lp r o c e s sd e b u g g i n gt o o lb a s e do np e t r i n e t a b s t r a c t s w e bs e r v i c ec o m p o s i t i o nh a ss o l v e dt h ep r o b l e m so ft h ei n t e g r a t i o na n dc o l l a b o r a t i o no f t h eh e t e r o g e n e o u sa p p l i c a t i o no ni n t e r n e t m o d e l i n go fw e bs e r v i c ei n t e r g r a t i o ni sac o m p l e x a n de r r o r - p r o n ep r o c e s s i fam i s t a k ei sf o u n da f t e ras e r v i c ew a sb r o u g h ti n t oo p e r a t i o n ,i t w o u l dt a k eh i g hc o s tt or e c i f yt h i sm i s t a k e m o r eo v e r , t h ee f f i c i e n c yo fb u s i n e s si sd i r e c t l y a s s o c i a t e dw i t ht h ec o r r e c t n e s so fp r o c e s ss t r u c t u r e t h e r e f o r e t h ev e r i f i c a t i o no fb p e l p r o c e s ss t m c t u r ei sa ni m p o r t a n ti s s u ei nt h er e s e a r c hf i e l do fw e bs e r v i c e s of a r , r e s e a r c hi n t h i sa r e ai sl i m i t e do nt h et h e o r e t i c a ll e v e la n dt h e r ei sl a c ko fp r a c t i c a lt o o l s i nt h i sp a p e r , ab p e lp r o c e s sd e b u g g i n gt o o lb a s e do na ni m p r o v e dm o d e lo fp e t r i n e t , w h i c hi sd e f i n e da sp n b p ( p e t r i - n e tf o rb p e lp r o c e s s ) ,i sp r o p o s e dt oa c h i e v et h e v e r i f i c a t i o na n ds i m u l a t i o no fb p e lp r o c e s s t h ed e t a i l sa r ea sf o l l o w s : ( 1 ) b a s e do nt h ea n a l y s i s e so fp e t r i - n e tt h e o r y , p n b pi sp u tf o r w a r dt om o d e l i n gb p e l p r o c e s s a c c o r d i n g t ot h e d e f i n i t i o n ,t h em o d e l i n g so fp r o c e s s n o r m a l s e q u e n c e , s i m u l t a n e o u s n e s s ,b r a n c ha n dc y c l ea r ei m p l e m e n t e d ( 2 ) a f t e rm o d e l i n g ,t h eb p e lp r o c e s si sv a l i d a t e db yt h r e em e t h o d sf o re a c ht i m e t h e y a r ec o v e r a b i l i t yt r e e ,i n c i d e n c em a t r i xa n ds t a t ee q u a t i o n ,t r a n s f e rm a t r i x a l lo ft h e m v a l i d a t e dt h es e c u r i t y , r e a c h a b i l i t ya n dd e a d l o c k s ( 3 ) f u r t h e rm o r e ,t h ed e b u g g i n gt o o li sd e s i g n e da n df i n a l l yi m p l e m e n t e d f r o mt h e a n g l eo fi m p l e m e n t a t i o n ,t h ed e m o s t r a t i o no ft h i sp a p e rm a i n l yf o c u s e so ns o m es p e c i f i cp a r t s t h e ya r et r a n s f o r m a t i o nf r o mb p e lf i l e st op n m l ( p e t r in e tm a r k u pl a n g u a g e ) f i l e s ,t h e a n a l y s i so fp n m l f i l e sa n dt h ev a l i f i c a t i o np r o c e d u r e b a s e do nt h ed e b u g g i n gp r o c e s so fa c a s eo fl o a na p p r o v a l ,t h em o d e l i n g ,v e r i f i c a t i o na n ds i m u l a t i o no fb p e la r es h o w e d t h et o o lh a sb e e nv e r i f i e di nt h er e s e a r c hc a l l e d ”b u s i n e s sp r o c e s s o r i e n t e ds o f t w a r e p r o d u c tl i n e ”,w h i c hi st h es u b - t o p i co f t h en a t i o n a lh i g h - t e c hd e v e l o p m e n tp r o j e c t ”h i 曲 c o n f i d e n c es o f t w a r ep r o d u c tl i n e ” k e yw o r d s :b p e lp r o c e s s ,p r o c e s sd e b u g g i n g ,p e t r i n e t ,w e bs e r v i c e sc o m p o s i t i o n 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。 本人允许论文被查阅和借阅。本人授权西北大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研 究所等机构将本学位论文收录到中国学位论文全文数据库或其它 相关数据库。 炭雠磊指导教师签名:f 丝勇记 j 年6 月矿日释疹月2 ,钞j 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研 究工作及取得的研究成果。据我所知,除了文中特别加以标注和 致谢的地方外,本论文不包含其他人已经发表或撰写过的研究成 果,也不包含为获得西北大学或其它教育机构的学位或证书而使 用过的材料。与我一同工作的f - q 志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示谢意。 靴论文储虢撕 川印g 月1 1 日 f 两北大学硕士学位论文 1 1 研究背景和意义 第一章绪论 自2 0 世纪末至今,w e b 服务的诞生受到业内人士的广泛关注。在微软、i b m 、s u n 等公司的支持下,基于w e b 服务构架企业分布式应用系统的思想得到了迅速推广。随 着w e b 服务技术的逐渐成熟,互联网上涌现出一大批稳定易用且功能多样的w e b 服务 t l 】。但是这些w e b 服务资源是孤立的,且单个孤立资源所提供的功能很有限。这样w e b 服务的发展就面临了一个重要问题:怎样打破单个资源的孤立格局,充分利用网络上共 享的单个资源,进行资源整合,形成企业分布式应用系统。 为了解决这一问题,w e b 服务组合出现了,它的出现为服务的重用和自动化集成提 供了应用的基础 2 1 。然而,w e b 服务组合的发展离不开一个概念业务流程,业务流 程是一个新的研究方向,它通过将不同的业务需求或者功能需求联系起来形成一个统一 的功能体,从而实现w e b 服务的组合【3 】。w s b p e l ( w e bs e r v i c e b u s i n e s sp r o c e s s e x e c u t i o nl a n g u a g e ,简称b p e l ) 规范就是为业务流程建模而提出的。它的前身是由 i b m 、m i c r o s o f t 共同推出的w e b 服务业务流程执行语言b p e l 4 w s ( b u s i n e s sp r o c e s s 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 ) 。b p e l 吸收和借鉴了p e t r i 网和p i 演算的优点,是 一种高级的、抽象的、可执行的建模语言 4 1 。b p e l 可以将不同的w e b 服务按照指定的 业务需求联系起来,实现一个更复杂的业务流程,从而创建出更强大的业务功能。b p e l 不仅可以实现w e b 服务间的交互和流程编排,也将流程自身暴露为w e b 服务,充分体 现了w e b 服务集成的思想。 b p e l 的出现解决了单个w e b 服务功能有限的问题【5 】。通过集成单个w r e b 服务的功 能,提供更为强大的服务功能,可以加快系统开发的速度,快速满足用户需求。然而由 文献【6 】可知,目前利用b p e l 对w e b 服务组合的描述仍然存在问题,可以总结为两点: 1 缺乏较好的图形化开发平台 目前,基于b p e l 的w e b 服务组合开发平台主要以编辑文件的方式来进行服务组合 开发。这样就要求设计人员具有b p e l 和w - e b 服务组合的专业知识,从而使得服务组合 开发的工作难度大而工作效率低。 2 服务组合流程验证问题 无论服务组合开发者是通过服务组合图形化界面设计,还是使用编写程序的方式进 第一章绪论 行服务组合的开发,设计出的服务组合业务流程都有可能发生流程设计上的问题,例如: 流程的不安全性、死锁、不可达性等,或者由于开发人员失误引起的流程与实际业务不 符的问题,而这些问题只有在流程实际运行时才会被发现。为了使组合的业务流程能够 顺利执行,应该在流程真正执行前先对服务组合流程结构进行正确性验证和流程仿真, 排除流程设计的问题。 本文研究的b p e l 流程调试工具分别针对上面两个问题给出了解决办法。针对问题 l ,流程调试工具提供简单易用的图形化界面,降低了流程设计的难度,提高了设计人 员的工作效率。针对问题2 ,流程调试工具支持对流程两个层次上的排错:流程自身结 构正确性验证和流程的仿真。流程自身结构的正确性验证本文称之为狭义上的验证,主 要排除流程逻辑结构的错误,如流程不安全、不可达等错误,本文之后提到的验证即指 狭义上的验证;而流程的仿真主要针对流程结构正确但是不符合设计人员初衷的情况, 这种情况本文提供对流程进行仿真,然后由设计者根据仿真结果判断是否有误。本文将 流程的狭义验证和仿真统称为“流程调试”。 1 2 研究现状 目前w e b 服务组合领域的研究主要集中在四个方面: 1 服务组合开发平台 w e b 服务汇编语言有很多,如x l a n g 、b p m l 、b p e l 4 w s 7 1 、w s f l 、b p s s 、w s c i 、w f x m l 8 】 等,但是这些w e b 服务汇编语言在开发时仍然需要以编写源代码的方式来设计w e b 服务 组合流程【9 1 ,因此图形化的服务组合开发平台成为该领域的研究热点之一。 ( 1 )e f l o w j l o 】:该平台是由h p 实验室设计并实现的。平台可以对组合服务进行 设计、管理和监控,同时提供一些额外机制,诸如自适应机制、补偿机制等。该平台较 其他平台有较高的容错能力,缺点是检错功能不够。 ( 2 ) a g f l o w 1 1 】:该平台是基于代理的服务发现的,由h p 实验室设计并完成。 平台主要的优势在于它可以通过补偿机制,在执行过程中实时的更改服务提供者从而完 成未完成的部分任务。 ( 3 )s e l f s e r v 1 2 】:该服务组合原型系统是由新南威尔士大学设计的。系统核 心是一个五层体系结构。同时系统提出了一个新概念服务容器,这个概念的提出对 大量潜在变化的服务如何组合成等价的执行模型有很大帮助。但是,可靠性、安全性方 面仍然是系统弱势所在。 2 西北大学硕士学位论文 ( 4 )w e bt r a n s a c t 1 3 】:该w e b 服务组合原型系统由巴西里约热内卢联合大学设 计,系统采用了多层体系结构,并且在w s d l 的基础上提出了一种基于x m l ( 可扩展 标记语言) 的服务事务模型。该系统在可靠性和容错方面表现良好,但是在恢复方面还 有待进一步改善。 ( 5 )m e t e o r - s t l 4 】【1 5 】:该w e b 服务组合平台是由佐治亚大学大规模分布式信息 系统实验室开发的,包含w e b 服务发现基础设施和w e b 服务合成框架。它通过本体库 和扩展语义的w s d l s 实现服务的注册和查询,并且通过定义包含语义的抽象流程和服 务模板来实现动态服务匹配和合成,从而生成b p e l 4 w s 可执行工作流,在b p e l 4 j 引 擎中运行。该平台的优点是具有较强的合成能力和服务匹配能力。 2 服务组合能力 w e b 服务要彼此组合必须满足两个条件:第一,输出结果与输入参数的数据类型能 够互相配合,第二,二者的数据意义要相同。否则,w e b 服务组合的结果是不正确的。 这种组合是否成功的特性被称为w e b 服务的组合能力【1 6 】。目前有许多的研究采用 d a m l s 配合本体知识的方式定义w e b 服务输入参数及输出结果的语意描述,在组合 时通过语意描述的比较来判断w e b 服务的组合能力。 3 服务组合建模 在对于动态服务合成的研究方面,国内研究重点主要侧重于基于本体的服务合成、 基于代理的服务合成以及服务合成的形式化证明等方面。 ( 1 )服务合成系统s d o w s c s ,由东北大学信息科学与工程学院开发,主要用于 w e b 服务设计。该系统利用语义w e b 和b p e l 4 w s 技术实现,在易用性和可靠性方面 做得很好,但在安全性、服务串行化及异常捕获方面存在一定问题【1 7 】【1 8 】。系统包含四个 子系统,分别用于:图形化服务建模、服务动态选取、服务执行和扩展u d d i 。同时, 系统提出了两个新概念:异构服务粘合剂和备选服务。 ( 2 )多代理系统a w s c a g e n t s ,由中科院软件研究所设计并完成,系统的主要 思想是借助用户偏好语义的扩展形式o w l s + 及其状态演算来实现w e b 服务的自动组 合。系统在灵活性、适应性方面表现良好,但在安全性和服务匹配效率等方面还有待进 一步改进【旧】。 4 服务组合测试 目前对服务组合流程的测试研究主要可分为两类:静态测试和动态测试。静态测试 研究主要集中在流程的性能测试,包括检测流程的死锁情况、记录流程的运行时间、评 第一章绪论 估流程的执行效率等方面。这类测试通过p e t r i 网和进程代数等形式化方法来检测流程 并发执行时是否存在死锁。文献【2 0 】提出了b p e l 转化为p e t r i 网的语义规则。根据该语 义规则,可以利用p e t r i 网对组合流程进行建模,继而通过对p e t r i 网模型的形式化推理, 分析组合流程的结构。动态测试主要是在流程动态执行的过程中对流程进行测试,发现 流程的错误。这种测试主要关注流程的功能性测试。美国o p t i m y z 软件公司开发的 w e b s e r v i c et e s t e r l 2 1 就是一套测试w e b 服务的综合工具。 1 3 课题来源 本论文研究的课题源于国家“8 6 3 ”高技术计划项目“高可信软件生产工具及集成 环境”( 项目编号:2 0 0 7 a a 0 1 0 3 0 5 ) 子课题“面向流程管理的软件生产线”。“高可信软 件生产工具及集成环境 项目旨在建立可信的国家软件资源共享与协同开发环境,产生 一批软件资源,形成一个开放、共享的软件生产环境,与自主产权的软件运行平台一起 构成我国基础软件体系,国拨经费1 5 0 0 0 万元。“面向流程管理的软件生产线 ,研究流 程管理领域的共性基础技术,其目标是设计与可信的国家软件资源共享与协同生产环境 相配套的流程管理构件和工具,形成面向流程管理的软件生产线,支持领域应用系统的 开发、实施、运行、配置和管理,国拨经费8 0 0 万元。 本文研究的b p e l 流程调试工具与其他两个工具b p e le d i t o r 和b p e le n g i n e 共同 构成“面向流程管理的软件生产线”课题中对b p e l 流程的研究。b p e le d i t o r 是一个流程 编排工具,提供对流程的图形化设计和静态分析,消除流程中存在的语法错误。b p e l e n g i n e 是一个流程执行引擎,实现流程的部署、监控、执行和管理。然而,b p e le d i t o r 设计和静态分析消除了b p e l 流程语法上的错误,但不能够检测出流程的结构设计错误, 当流程实际部署到b p e le n g i n e 上执行时可能会发生由流程的结构设计有误引起的错 误。如果流程实际执行遇到错误后再返回b p e le d i t o r 纠错,往往会影响流程的执行效 率,在实际应用中甚至会由于这些错误需要付出不可估量的代价。 本文研究的流程调试工具所做的工作介于b p e le d i t o r 和b p e le n g i n e 之间。它的 思想是在流程的编排和执行阶段之间加入对流程的结构正确性验证和流程仿真,如果流 程未通过验证或者流程仿真结果不符合设计者初衷,则意味着在流程设计存在问题必须 回到定义阶段重新设计组合流程,而不需要将流程部署到执行引擎真实执行。这样可以 协助流程设计人员查漏补缺,查找出流程中结构设计错误和一些由设计人员疏忽引起的 4 西北大学硕士学位论文 与实际流程不符的违背设计初衷的错误,从而提高流程开发的效率,减小流程执行实际 过程中才发现错误而产生的代价。 1 4 本文研究内容 本文研究的主要内容有四个方面: 1 -概述了p e l r i 网的概念、主要性质和p e t r i 网标记语言相关理论,结合b p e l 流 程的特点分析了利用p e t r i 网建模对b p e l 流程进行调试的可行性。 2 提出了针对b p e l 流程的p e t r i 网p n b p 的定义,利用p n b p 对流程组合的顺 序结构、并发结构、选择结构和循环结构进行了建模,并采用覆盖树、关联矩阵和状态 方程、迁移矩阵分别对模型的安全性、可达性和死锁性质进行了正确性验证。 3 在分析b p e le d i t o r 和b p e le n g i n e 功能的基础上,介绍了调试工具的架构设 计,给出了系统实现的包图、类图,并对p n m l 文件转换模块、流程逻辑验证模块、流 程仿真模块和系统g u i 模块的实现方法和实现过程进行了详细阐述。在具体实现中, b p e l 文件被转化为p n m l 文件完成流程的p e t r i 网建模,验证和仿真完成后,p n m l 文件被还原为b p e l 文件。 4 通过贷款审批案例的调试过程演示了b p e l 流程的建模、验证和仿真全过程, 说明了流程调试工具的实用性和易用性。 1 5 本文组织结构 全文由六章组成。 第一章:绪论。 本章介绍了本文选题的背景、意义、课题来源,及w e b 服务组合领域的研究现状, 并说明本文所做的主要工作以及本文的组织结构。 第二章:b p e l 理论基础。 本章介绍并总结了b p e l 流程的核心概念,包括b p e l 规范的发展、b p e l 的关键 活动及过程组件,b p e l 规范设计原则及其与l 、w s d l 、x m ls c h e m a 等技术的关 系,为流程调试工具的设计与实现打下了理论基础。 第三章:b p e l 流程的p e t r i 网建模。 本章在对p e t r i 网理论分析的基础上,提出了针对b p e l 流程的p e t r i 网p n b p 的定义,用p n b p 对流程的四种组合结构进行了建模,并用覆盖树、关联矩阵和状态方 第一章绪论 程、迁移矩阵分析方法分别对模型的安全性、可达性和死锁性质进行了正确性验证。 第四章:调试工具的设计与实现。 本章分析了流程调试工具与关联工具b p e le d i t o r 及b p e le n g i n e 的关系,在此基 础上对工具进行了架构设计,开发了调试工具的核心模块p n m l 文件转换模块、流程逻 辑验证模块、流程仿真模块和系统g u i 模块,并给出了系统实现的包图和类图。 第五章:调试工具应用。 本章以贷款审批流程为例,通过贷款审批流程的建模、验证、仿真和出错处理说明 流程调试工具的使用,展示了工具的实用性和易用性。 第六章:总结与展望。 本章对全文进行总结,并指出研究中存在的主要问题和下一步的研究方向。 6 西北大学硕士学位论文 第二章b p e l 流程理论概述 流程调试工具调试的对象是b p e l 流程,因此在工具的设计与实现之前对b p e l 流 程的理论分析是非常有意义的。本章第一节介绍b p e l 的发展历史,第二节介绍b p e l 流程的关键活动8 个基本活动和7 个结构化活动。第三节介绍将b p e l 活动组织起 来的过程组件。第四节介绍b p e l 流程的设计原则及与b p e l 相关的x m l 、w s d l 、 x m ls c h e m a 等技术。 2 1b p e l 发展历史 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 服务接口标准加以描述。因此b p e l 流程可以直接调 用符合w e b 服务规范的服务。b p e l 用来描述多个服务交互的写作与协调,从而对外提 供流程服务,以达到某种商业价值【2 l 】。 b p e l 的前身是i b m 的w s f l 和m i c r o s o f t 的x l a n g 。w s f l ( w e bs e r v i c ef l o w l a n g u a g e ) 1 2 1 1 是一种基于图的流程模型,具有灵活性和直观性的特点。x l a n g 是以过程 代数为基础的工作流程描述语言,在结构化构造方面具有优势。随着w e b 服务标准的 广泛流行,应用程序将以粗粒度的功能为单位,用w e b 服务规范封装,对外提供一致 的服务。这时,迫切需要一种开放的标准,能够对现有的以及新创建的服务以某种规则 进行调度和协调,最终形成具有某种商业价值的业务流程。b p e l 标准就是在这种需求 下产生的。 2 0 0 2 年7 月,基于w s f l 和x l a n g ,i b m 、b e a 和m i c r o s o f t 提出了b p e l 4 w s l 0 版本。该标准得到了s a p 和s i b e l 的支持,并在2 0 0 3 5 进行了修正,形成了1 1 版本【2 l 】。 b p e l 融合了这两种标准的长处,继承了图模型的直观性和灵活性,同时又对异常处理 进行了很好的支持。2 0 0 3 年4 月,o a s i sw s b p e l 技术委员会( w s b p e lt c ) 成立, 专门负责b p e l 标准的升级与支持。b p e l 标准随后被更新为w s b p e l 2 0 。 w s b p e l 2 0 已于2 0 0 7 年4 月被o a s i s 正式标准为b p e l 的最新标准。 第二章b p e l 理论基础 2 2b p e l 关键活动 b p e l 活动是指b p e l 流程中一条语句或者一个步骤地执行【2 2 】,是b p e l 业务流程 的基本构成单位,它构成业务流程的逻辑框架。 b p e l 的关键活动分为基本活动和结构化活动。基本活动执行变量分配、服务调用 等基本任务,如表2 一l 。在b p e l 流程中,基本活动是不可再分的执行单元,是与外界 进行交互最简单的形式。 表2 - 1b p e l 基本活动 活动名称活动介绍 r e c e i v e 一个流程的初始点,它会阻塞执行直到匹配的消息到达。 调用伙伴提供的w e b 服务,调用可以是同步的( 请求响应) ,也可以是异 i n v o k e 步的( 单向) 。 r e p l y用来回答伙伴的调用,一次只可能有一个匹配的 活动被激活。 a s s i g n 用新的数据来更新变量的值,可以包括任意数量的基本复制操作。 t h r o w 发出故障信号,要求有全局变量q n a m e 。 t e r m i n m e 可以用丁立即放弃执行着该终止活动的业务流程实例中的所有执行。 w a i t暂停流程执行,等待一段给定的时间或等到某一时刻才继续运行。 e m p t y 什么都不做。如果需要捕获一个故障并抑制它,可以使用这个活动。 结构化活动是基本活动和结构化活动的容器,它对其内部的活动按照一定的规则执 行,如串行活动对其内部的活动以串行的方式进行执行,而并行活动则对其内部的活动 以并行的方式执行。结构化活动规定了一组基本活动发生的顺序,如表2 2 所示。 表2 - 2b p e l 结构化活动 活动名称活动介绍 定义一组按顺序先后执行的活动,执行顺序是s e q u e n c e 活动中嵌套活动的先 s e q u e n c e 后顺序。 与传统的结构化语言的功能类似,从一组分支情况中选择一个特定的活动分 s w i t c h 支加以执行。 w h i l e继承于传统的结构化编程思想,提供了w h i l e - d o 循环结构的支持。 等待一组相互排斥事件中的一个事件的发生,然后执行与发生的事件相关联 p i c k 的活动。 s c o p e 为嵌套在其中的活动提供故障处理功能和补偿处理功能。 可以描述更为复杂的活动执行顺序,可以利用f l o w 指定一个或多个并行执行 f l o w 的活动。 l i n k 对于如何将流程的活动设置为运行施加自己的约束。 8 西北大学硕士学位论文 结构化活动通过整合基本活动来描述业务流程复杂的结构,这些结构表达了业务协 议中所涉及的控制模式、数据流、故障和外部事件的处理以及在流程实例之间进行消息 交换的协调【2 l 】。 2 3b p e l 过程组件 上一节介绍了b p e l 的关键活动,而b p e l 过程组件的工作就是将这些关键活动“串 起来 。也就是借助b p e l 的过程组件让b p e l 的活动产生一种动态交互。本节将围绕 图2 1 【2 1 】分别介绍b p e l 过程组件中的合作伙伴链接、变量、关联集合、异常处理和补 偿机制。 图2 - 1b p e l 流程构成不意图 2 3 1 合作伙伴链接 合作伙伴连接( p a r t n e rl i n k s ) 是指在b p e l 中的服务提供者,它包括b p e l 流程 所要调用的外部服务和b p e l 自己提供的服务。伙伴链接引用w s d l 定义文件中的伙伴 链接类型 定义,在b p e l 文件中定义 。它是b p e l 与所 调用服务的桥梁,b p e l 流程的任何服务调用都将通过伙伴链接进行,同时伙伴链接还 定义了b p e l 流程本身对外提供的服务接口( 消息和操作) 、传输协议,以及要使用的 每个服务的位置。 9 第二章b p e l 理论基础 在流程执行过程中,一个流程可能会调用多个伙伴连接,也可能接收多个伙伴的请 求。元素 用来定义流程与伙伴的合作关系。其中属性“m y r o l e ”值表示流程 作为服务的提供者,属性“p a r t n e r r o l e ”的值表示流程作为服务的请求者。属性 的值定义了流程与伙伴服务之间的通信接口。 2 3 2 变量 在b p e l 中,变量用来保存和传递流程的状态信息。b p e l 中的变量既可以是w s d l 中的消息定义也可以是x m ls c h e m a 所定义的复杂类型或元素。但是与j a v a 中变量概 念不同的是,b p e l 中变量的参数不能直接调用。每个变量都有一定的作用范围,变量 只有在定义它的作用域和所包含的作用域内才是可见的。对每一个合作伙伴,不管有多 少输入参数和输出参数,都只需要定义两个变量,一个请求( r e q u e s t ) 变量,一个响应 ( r e s p o n s e ) 变量。 2 3 3 关联集合 在b p e l 中,声明性机制用来指定服务实例中相关联的操作组。关联集合是指相关 联的组中所有消息共享的一组特性。每个关联集合都在一个作用域中进行声明并属于该 作用域。根据不同的作用域,关联集合分为全局关联集和局部关联集。全局关联集是指 属于全局流程作用域的关联集,在流程开始时处于未初始化的状态;局部关联集是指属 于局部作用域的关联集,在其所属的作用域的执行开始时处于未初始化的状态。在其所 属的作用域中,关联集只能初始化一次。一旦初始化,它的值就被认为是业务流程实例 的标识别名。 在语义上,关联集合类似于延迟绑定的常数。关联集合的绑定由特别标记的消息发 送或接收操作来触发【2 1 1 。 2 3 4 异常处理机制 在执行一个b p e l 流程时,无论是在被调用的服务中还是流程本身都可能发生错误, 如服务调用失败或网络通信错误等原因。为此,b p e l 提供了一种显式捕获错误的机制, 通过执行在f a u l th a n d l e r 元素中指定的子程序来处理这些错误。f a u l th a n d l e r s 用来捕获 在某一个特定的s c o p e 所标识的范围内产生的异常。捕获错误的结构类似于j a v a 中 的t r y c a t c h 结构,每个c a t c h 元素都提供活动为特定类型的错误条件进行异常处理。同 时,f a u l th a n d l e r 还可以通过添加c a t c h a l l 元素提供对错误的默认处理【2 1 1 ,默认处理的 格式如下: 1 0 西北大学硕士学位论文 如果在某一个s c o p e 范围内出现异常并且被该s c o p e 内的f a u l t h a n d l e r 捕捉到,则 更改该s c o p e 的状态为f a i l e d ,当异常被处理后,外部s c o p e 继续执行。如果定义的 f a u l t h a n d l e r 不能捕捉该异常,或者f a u l t h a n d l e r 未定义,则更改s c o p e 状态为f a i l e d 。 这种情况需要将异常抛出到外部s c o p e 处理,直到异常被处理结束。 2 3 5 事务与补偿机制 在数据库中,事务包括一致性、原子性、隔离性和持久性【2 3 1 。对于同一单元的一组 活动,要么全部成功,要么全部失败。在业务交互中,为了保证一致性,一个事务用到 的数据库条目在处理过程中通常会被锁定。如果事务失败,数据库将会回退到之前的状 态。 在b p e l 中,对于一组被调用的w e b 服务,使用w e b 服务的相应规范来实现业务 流程的事务支持。但是,很多时候一个业务流程可能需要运行很长时间,而且流程可能 不能独立运行,需要外部服务的支持。如果某个突发事件产生可能会引起整个流程取消, 这时就需要借助补偿机制,将之前完成的部分活动进行回退。在b p e l 中,补偿一般用 来还原已经完成的活动,它是业务逻辑的一部分。如果要进行补偿,流程中已经运行完 成的所有活动都会依照特定的逻辑进行补偿。 2 4b p e l 设计原则及相关技术 2 4 1 设计原则 前面介绍了b p e l 的关键活动和过程组件,而b p e l 语言产生的初衷是用于描述服 务组合,这就决定了它在设计上需要遵循一些原则。下面列举如下: 1 b p e l 的流程定义涉及与外部服务的交互。 第二章b p e l 理论纂础 b p e l 所定义的流程实质上是通过对一系列单个无状态服务的调用与编排,使得这 些服务调用按照既定的规则进行。因此b p e l 所定义的流程必然涉及与外部服务的交互, 从简单性和可重用性考虑,其交互的接口定义应是抽象的,不应涉及服务绑定、服务质 量定义等实现相关的细节问题。 2 b p e l 流程本身也体现为w r e b 服务。 b p e l 流程由w s d l 所描述的接口声明为w e b 服务,b p e l 通过向外界提供服务调 用实现与w r e b 服务的无缝兼容,同时也为子流程或嵌套流程的定义提供了解决方案。 3 b p e l 只描述业务流程本身。 b p e l 是一种基于x m l 的标准,它只描述流程本身,并不关注业务流程的图形化 表示,也不涉及业务流程的设计方法学。不同的厂商可以基于b p e l 规范在流程建模工 具中提供自己的图形化界面来表示b p e l 流程。 4 b p e l 应该提供简单的数据操作。 b p e l 不是一般意义上的数据操作语言,它是以流程规则的定义为中心的,因此 b p e l 应该提供简单的数据操作,保证流程建模的需要,比如消息的构建、变量的定义 和赋值、简单的数据表达式等。对于相对复杂的数据操作和数据存取功能,则交给b p e l 流程所调用的服务来完成,完成后将结果返回给b p e l 流程即可。 5 b p e l 应该提供灵活的异常处理。 任何流程在执行过程中都可能有异常和错误情况发生。因此b p e l 必须将错误和异 常情况的处理放在与业务流程本身同等重要的地位。业务流程可能是长期运行的流程并 跨越多个事务边界,一旦某个环节发生异常,不可能将整个流程执行中所发生的结果都 进行回滚。因此b p e l 应提供可定制的错误处理和补偿机制,可在定义流程的同时,根 据流程自身的特点、异常类型以及实际需求,定义相应的错误恢复或补偿操作,以应对 相应的异常情况。 2 4 2b p e l 相关技术 b p e l 作为业务流程的建模语言,以一系列的开放标准为基础,如定义流程逻辑、 实例关联、错误处理、事件处理、变量定义等与业务流程本身相关的标准。图2 2 【2 是 b p e l 及其相关标准的示意图。从图中,我们可以看到,b p e l 处于所有标准的顶端, 它需要w s d l 、s o a p 、x m ls c h e m a 、x m l 、x p a t h 等共同支持。同时,由于b p e l 是 一种与实现无关的标准,它的运行环境及相关工具可用j 2 e e 、n e t 等作为实现平台。 1 2 西北大学硕上学位论文 w e bs e r v i c e 的运行环境则为b p e l 流程提供了服务的发布、查询和调用等功能。下面将 分别分析b p e l 与这些支撑者的关系。 图2 - 2b p e l 相关技术示意图 i b p e l 与w s d l b p e l 在面向服务体系结构( s o a ) 的大背景下定义。它的前提条件之一是涉及的服 务必须用w s d l 声明。b p e l 扩展了w s d l 以便以抽象方式提供和使用w e b 服务。这 样可以发挥w s d l 的重要长处之一,即能够将合成时所需的抽象消息和端口信息与调 用时所需的物理绑定和地址详细信息分离。 w s d l ( w e bs e r v i c ed e f i n i t i o nl a n g u a g e ) 最i w e b 服务描述语言,用于定义在一个w e b 服务交互中所需的消息、接口类型、接口参数以及绑定等。 b p e l 是构建在w e bs e r v i c e 上的一层,在b p e l 的定义中同样使用了w s d l 的描 述,但是b p e l 将b i n d i n g 、s e r v i c e 与w s d l 的其它部分分离,这个部分w s d l 是支 持的,由此做到灵活的绑定配置。在传统w s d l ( t y p e s ,m e s s a g e ,p o r t t y p e ) 类型之外, b p e l 额外定义了一个元素: 。 定义的是服务之间的依赖关系。p o r t t y p e 其实可以理解为服务接 口,每一个p o r t t y p e 对应一个s e r v i c e 。只不过,在这罩具体服务的实现的部署还没有 真正的开始。每一个 至多有两个 ,每一个 对应一个且必 须对应一个p o r t t y p e ,这里的r o l e 和业务过程有关,代表一个动作的执行过程。如果在 双方的整个交互过程中只需要一方则只定义一条 就可以了,也就是说业务流程的 某一个环节,在接受请求以后,并不需要把服务结果返回发送者,而是顺次提交给下 个业务流程,在这个过程中,发起者和接受者之间只需要一条规则保证,并且只有发起 第二章b p e l 理论基础 方规则保证。最多有两个也很好理解,在一次交互的过程中,至多只能有两方参与。 2 b p e l 与x m l 、x p a t h 、x m ls c h e m a l 2 1 ,2 4 ,2 5 】: x m l 是所有标准的基础,它为定义标准提供了表述的形式。x p a t h 则针对x m l 文档提供了定位某一数据的手段。x m ls c h e m a 是定义标准的标准。x m ls c h e m a 由 x m l 进行描述,提供了定义标准的语法。s o a p 、w s d l 以及b p e l 均使用x m ls c

温馨提示

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

评论

0/150

提交评论