(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf_第1页
(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf_第2页
(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf_第3页
(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf_第4页
(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机软件与理论专业论文)xpdl与bpel工作流模型互操作研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 i 摘 要 为了充分利用企业现有的 it 资源,整合企业中计算机孤岛式的应用,向集成 化、协作式的方向发展,降低企业管理成本,使资源效益最大化等,很多企业构建 了自己的工作流管理系统。这些系统有如下不足:他们只能处理特定的工作流模型 如 xml流程定义语言(xml process definition language,xpdl)或者商业流程执行 语言(business process execution language,bpel),不能同时处理这两种模型,不 能将一种格式的业务流程移植到另外一种工作流平台上,他们之间的模型不能互操 作。 针对现有工作流系统的不足,xpdl 与 bpel 工作流模型互操作系统在分析现 有工作流模型 xpdl和 bpel流程结构特点、流程控制流特点和流程数据流特点的 基础上,提出了一套工作流模型互操作的算法,实现了将 xpdl 流程转换成 bpel 流程和将 bpel 流程转换成 xpdl 流程。 “xpdl与 bpel 工作流模型互操作”已经实现了原型系统,该系统吸收了研究 中的相关理论及方法。在 xpdl 转换成 bpel 中,先分析 x p d l 流程里面的各种活动 以及它们之间的转移,得出 x p d l 流程的图状结构,用邻接矩阵表示;然后扫描邻接 矩阵,使用堆栈的方法依次识别流程中的结构块;再调用结构块转换模块完成 x p d l 流程向 b p e l流程的转换;最后调用 b p e l 代码生成模块,得到 b p e l 流程。在 b p e l 转换成 x p d l流程中,通过 b p e l流程分析器分析出流程里面的结构化元素,然后对 这些结构化元素进行转换,得到 x p d l 流程。 测试结果表明,该系统能够很好的实现 xpdl与 bpel模型之间的相互转换, 转换速度快。 关键词: 工作流,xml流程定义语言,商业流程执行语言,互操作 华中科技大学硕士学位论文 ii abstract in order to take full advantage of existing enterprise it resources, integrate the island application of computer in enterprise, and in the direction of collaborative development, lower management costs and maximizes effectiveness, many enterprises have constructed their own work flow management system. these systems are inadequate; they can handle specific tasks such as xpdl (xml process definition language) or bpel (business process execution language) model. not dealing with these two models; a specific format process can not be transplanted to another kind of business process work flow platform; and the model can not interoperate between them. in view of the inadequacy of existing workflow system, based on the analysis of the xpdl and bpel process structure characteristics, process control flow characteristics and the characteristics of the data flow process, workflow model interoperation system advances a set of algorithms of workflow model interoperability, and implements the transformation of xpdl process into bpel process and vice versa. workflow model interoperability has become a prototype system, which absorbed the theory and methodology of the study. in the transformation of xpdl process into bpel process, it first analysis the various activities and transitions in xpdl, and get the result of map- like structure of xpdl, it is expressed with adjacency matrix, then scans the adjacency matrix. it use stack to identify the structure of block, then calls the block structure conversion module to complete the transformation. finally, it calls the bpel code generation module to get the result of bpel process. in the transformation of bpel process into xpdl process, by the use of bpel process analyzer, it analysis the structure element of bpel process and then transform it to get the result of xpdl process. test results show that the system can achieve a good transformation between the model xpdl and bpel, and the speed of transformation is very fast。 key words: workflow, xpdl, bpel, interoperation 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人 或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 华中科技大学硕士学位论文 1 1 绪 论 本章首先简要介绍本课题的背景、来源以及主要研究目标,并概述工作流系统 在国内外当前的研究现状以及未来的发展方向, 在此基础上提出了工作流模型 xpdl 和 bpel 相互转换的研究。 1.1 课题背景 随着企业信息化建设逐步深入,在企业内部、企业之间以及行业之间建立起越 来越多的业务应用系统。如何充分利用企业现有的 it 资源,整合企业中计算机孤 岛式的应用,向集成化、协作式的方向发展,降低企业管理成本,使资源效益最大 化等正在成为企业关注的重要问题。而现有的大部分应用软件无法适应企业管理千 变万化的个性和持续变革的业务需求。因此,需要一些专业的、面向业务过程管理 的平台软件,即以工作流为核心的信息系统来快速构建自己的业务过程。 现阶段主要有两种类型的工作流语言: xpdl1- 2和 bpel3。xpdl 主要应用 于企业内部过程建模。 bpel 是一种面向服务的体系架构4- 5(soa , service oriented architecture ) ,它为跨企业和业务合作伙伴之间端到端的集成提供了一种灵活的业 务流程模型。为了使复杂的网格应用平台支持这两种格式的工作流模型,同时能够 很好的移植 xpdl流程模型,使 bpel 工作流引擎能够执行这些流程,因此需要将 用 xpdl描述的流程转换成 bpel流程; 为了很好的移植 bpel 流程模型, 使 xpdl 工作流引擎能够执行这些流程, 因此需要将用bpel描述的流程转换成 xpdl流程。 为了满足上述需求,因此需要对工作流模型互操作进行研究。 1.2 工作流研究综述 下面首先阐述工作流的产生与发展,然后对现在工作流系统与产品进行分析, 接着分析工作流系统的研究现状与热点,最后指出目前工作流系统存在的问题。 华中科技大学硕士学位论文 2 1.2.1 工作流的产生与发展 工作流(workflow)技术开始于 70 年代中期办公自动化领域的研究工作,但工 作流思想的出现还应该更早,1968 年 fritz nordsieck 就已经清楚地表达了利用信 息技术实现工作流程自动化的想法。70 年代与工作流有关的研究工作包括:宾夕 法尼亚大学沃顿学院的 michael d.zisman 开发的原型系统 scoop, 施乐帕洛阿尔 托研究中心的 clarencea.ellis 和 gary j.nutt 等人开发的 officetalk 系列试验系 统,还有 anatol holt 和 paul cashman开发的 arpanet 上的“监控软件故障报告” 程序。scoop, officetalk 和 anatol holt 开发的系统都采用 petri 网的某种变体 进行流程建模。其中 scoop 和 officetalk 系统,不但标志着工作流技术的开始, 而且也是最早的办公自动化系统。 70 年代人们对工作流技术充满着强烈乐观情绪,研究者普遍相信新技术可以 带来办公效率的巨大改善,然而这种期望最终还是落空了。人们观察到这样一种现 象,一个成功的组织往往会在适当的时候创造性的打破标准的办公流程;而工作流 技术的引入使得人们只能死板的遵守固定的流程,最终导致办公效率低和人们对技 术的反感。70 年代工作流技术失败的技术原因则包括:在办公室使用个人计算机 尚未被社会接受,网络技术还不普遍,开发者还不了解群件技术的需求与缺陷。工 作流管理最早起源于 80 年代初期的表单传递系统。当时,个人计算机作为信息处 理的工具尚未普及,人们为了提高信息收集、处理、储存、应用、传递、共享的效 率,而希望建立一种无纸化的计算机工作环境,于是一些公司建立了自己专用的或 可商品化的表单传递应用系统(forms- rooting application) 。这些系统通常运行在大 型机或小型机上,用于实现日常表单处理的电子化和自动化,这种系统可以看成是 现代工作流管理系统的一个雏型6。 80 年代中期,filenet 和 viewstar 等图形图像处理公司率先开拓了工作流产品 市场,成为最早的一批工作流产品供应商。他们把图像扫描、复合文档、结构化路 由、实例跟踪、关键字索引以及光盘储存等等功能结合在一起,形成了一种用于文 档处理的图像处理系统。它可以把扫描得到的计算机发送给相关人员,这便是早期 华中科技大学硕士学位论文 3 的工作流管理系统。filenet 于 1984 年推出的 workflow business system、viewstar 于 1988 年推出的 viewstar、action technology 80 年代推出的 coordinator,便是 其中的典型代表。 进入 90 年代,随着计算机的普及,计算机网络技术的迅速发展,企业的信息 化程度提高,企业信息资源越来越表现出一种异构分布、松散耦合的特点。企业的 分散性、决策制定的分散性和对日常事物活动详尽信息的需求,以及 client/server 体系结构,分布式处理技术(corba、www、com/dcom、java)的日益成熟, 都说明了这样一个事实:集中式信息处理的时代己经过去,实现大规模、异构、分 布式执行环境,使得相互关联的任务能够高效运转并接受密切监控成为一种趋势。 internet 的发展和普及为电子商务(e- commerce)提供了技术可能,电子商务的独 特优势必将成为未来商务活动的新模式。而电子商务的重要功能就是商务流程的管 理和监控7,如企业供应链管理系统 scm(supply chain management)和企业客户 关系管理 crm(customer relationship management) 。在这种技术背景下,工作流 管理系统也由最初的无纸化办公环境,转而成为同化企业复杂信息,实现业务流程 自动执行的必要工具。这样的一个转变,也把工作流技术带入了一个崭新的发展阶 段,使得人们对工作流从更深层次、更广领域上对工作流展开了广泛的研究工作。 1993 年 8 月,工作流技术标准化的工业组织工作流管理联盟(wfmc, workflow management coalition)成立。1994 年,工作流管理联盟发布了用于工作流管理系 统之间互操作的工作流参考模型,并相继制定了一系列工业标准。更标志着工作流 技术在计算机应用领域之中被明确地划分出自己的一席之地,相应的概念与术语得 到了人们的认可,把工作流的技术研究以及相关的产品开发带入了一个崭新的阶 段。据调查,截至 1995 年共有 200 多种软件声称支持工作流管理或者拥有工作 流特征。工作流技术被应用于电讯业、软件工程、制造业、金融业、银行业、科学 试验、卫生保健领域、航运业和办公自动化领域。 关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来, 人们从工作流模型、体系结构、事务、适应性、异常、安全、语言、形式化、正确 性验证、资源管理、开发过程等各方面对工作流技术进行探讨,大量论文被撰写出 华中科技大学硕士学位论文 4 来。 尽管工作流技术取得了进步,但理论基础的研究还很不够。现有的工作流管 理系统从功能、可靠性、健壮性上与数据库管理系统无法相提并论。 进入 2000 年以后,随着 web 服务技术的兴起,多个标准化组织制定了各自 的和工作流技术相关的 web 服务标准,如 xlang8- 9,wsfl10 等。 2002 年 8 月, ibm, microsoft 为等企业联合提交并发布了bpel1.0规范。 2003年5月 bpel1.1 规范发布,并提交给 oasis 组织进行标准化。 1.2.2 工作流系统及产品 工作流管理有十分广阔的应用领域,例如银行、会计、证券、保险、政府管 理、医疗卫生和工业制造等。工作流管理的市场近年逐步增长,商业化的产品很 多。工作流管理产品的主要评价标准是:吞吐率、过程定义能力、活动编辑能力、 任务分配能力、组织表示能力、通讯能力、internet 的支持和引擎分布能力等。下 面将简单介绍一些较为有影响的工作流产品。 ibm 公司的 flowmark11:能有效地支持组织模型,由程序员进行具体实现, 通过面向对象思想,提供高层次的重用,通过对结点的任务指派实现分布处理。 ibm 公司的 lotus notes12:客户端软件称为 notes,服务器软件称为 domino。domino 提供基本的工作流功能,允许构造基于数据库和基于 e- mail 的 应用,提供代理、复制和 web 集成等功能。 staffware 公司的 staffware13:为终端、windows、macs 和 java 客户提供相 同的过程定义形式,支持分布配置,允许无代码开发应用。 teamware公司的 teamware flow14:具有很好的动态处理能力,支持不 完整的过程定义,可在过程实施中修改任务实施方案。 filenet 公司的 visual workflow:工作表可以裁剪,采用面向对象的过程定 义方法,允许继承层次,提供简单的图形定义界面。 w4 公司的 w4:该产品为 internet 上的应用而设计,提供 internet 上的过 定义工具,可自动生成 html 描述。 华中科技大学硕士学位论文 5 工作流产品增多和工作流市场的繁荣不仅带来了技术的革新和应用的发展, 同时也带来了技术的不兼容性,使得各种工作流产品之间、工作流系统同其它应 用系统之间难以互操作。由此,工作流管理的标准化、规范化工作迫在眉睫。 1.2.3 工作流的研究现状与热点 工作流管理的研究之所以如此受人青睐, 主要有两方面的原因: 从技术角度看, 它集成了来自计算机科学和管理科学各个领域的原理、方法和技术,其中包括数据 库管理、异构分布计算、系统集成和业务重组等等,集成不同领域的概念的确具有 很大的挑战性;从应用角度看,工作流系统的可扩展、高性能、可管理、可使用、安 全性都存在着很大的市场需求,高性能的 wfms 能大幅度地提高企业的竞争能 力,可获得相当可观的利润回报。由此,近年来这方面的学术研究十分活跃,特别 是在北美和欧洲等地,相应的研究机构纷纷成立。 目前,工作流管理领域的研究热点和趋势主要集中于: 分布式工作流15- 16:工作流管理系统从支持单个工作组环境开始,现在逐步提 高到企业级的功能需求。这样,单个工作流程就要允许跨越广域网上的多个服务器 和客户端,通过并行计算、资源共享、分布操作使其可扩展性、可管理性得以充分 体现。然而,随之而来的是需考虑分布式系统的安全性和可互操作性17- 18。 工作流过程建模19- 21:包括工作流过程模型和过程描述语言方面的研究,前者 是对业务流程的计算化描述,概括了实现流程所需的各种必要信息:如流程开始和 结束条件、组成该过程的各个步骤、步骤间的信息传递规则以及所需调用的应用工 具等等。模型一般通过文本或图形化的过程描述语言来表现。目前,己提出了许多 具体的模型和描述语言, 有待进一步的统一, wfmc 在规范化方面起了很大的作用。 此外,基于各种形式化工具,对工作流模型性能进行分析和评价22- 23,也是建模过 程中极为关键的一环。 面向对象的 wfms (object- oriented wfms )24- 25:随着面向对象技术的成熟与 应用,许多学者开始研究如何利用面向对象的技术来推动工作流技术的发展,主要 包括两个领域:第一,如何利用 oo 技术如名字服务、安全控制技术来简化 wfms 华中科技大学硕士学位论文 6 的实现,提高 wfms 的性能和适应 had 环境的能力,如佐治亚大学的 meteor 产品则是其中的代表,它是一种基于 corba 标准面向对象的 wfms,使用 oo 技术提高 wfms 的容错能力;第二,如何利用面向对象的分析方法来构建面向对 象的流程定义,以提高流程定义的可重用性。 基于 web 的工作流26- 28:由于零安装、移动性好、易操作等优点得到了巨大的 发展,许多应用系统转移到基于 web 构架上来,wfms 也不例外。现有的许多 wfms 也增加了对 web 的支持,但多局限于用 web 来实现任务项(workltem)的处 理。 工作流事务管理29- 31:事务管理是数据库技术中的一个重要概念。每个事务具 有 acid 特性,即原子性(atomicity )、一致性(consistency)、独立性(isolation)和持 续性(durability)。事务交易管理充分保证了数据操作、数据存储、系统管理的正确 性、可靠性和可管理性。目前高级事务模型已在各个领域得以应用,但现有的工作 流产品还不能显式的得以支持32。 安全工作流管理模型33- 35:研究如何在分布、异构的环境下实现对工作流系统 中所管理信息的安全控制,包括权限管理,安全策略、访问控制、加密算法、审计 信息、备份策略等等方面。 工作流互操作36- 37:互操作的研究主要包括两方面:工作流模型的互操作和工 作流系统的互操作。微观层的模型互操作包括研究单个模型内或多个模型间的活动 可互操作性,以及如何检测、分析产生的冲突,并提供可行的解决方案;宏观层的 系统互操作则包括系统内部协议定义、程序接口、数据共享的可互操作,以及工作 流系统如何嵌入到其他业务系统中或如何实现与其他异构系统的连接。工作流互操 作是工作流管理技术目前研究中的一大难点。 1.2.4 目前工作流系统存在的问题 工作流管理系统的现状很大程度上是由商业系统提供的功能所决定, 这也是 目前工作流管理系统缺陷的主要来源,许多工作流产品在开发的时候没有清晰地了 解用户的需求,因而造成目前成熟的工作流系统存在的主要问题是缺乏互操作性 华中科技大学硕士学位论文 7 38。各个工作流管理系统之间互相不兼容,这些工作流管理系统只能使用某种格式 的工作流模型来定义流程,不同工作流管理系统的工作流定义不能相互使用,以至 于一些遗留下来的应用模型不能很好的利用,为了利用这些不同格式的流程,需要 重新按照新的格式来定义流程,造成人力、物力资源的浪费。 1.3 主要研究内容 虽然关于工作流产品的开发,国内的许多公司和研究机构都已取得了不少成绩, 但都没有对工作流模型互操作的研究和实现方法进行讨论。本文的工作是在基于现 在普遍使用的工作流模型:xpdl 1.0 和 bpel1.1 基础上,构造一个支持这两种格 式的工作流模型相互转换的系统,主要的工作是提供工作流模型的互操作功能。 主要工作如下: (1) 对 流 行 的 工 作 流 模 型xpdl(xml process definition language) 和 bpel(business process execute language)进行分析,分析流程的语言结构特点,控 制流结构与数据流结构特点。 (2) 研究了 xpdl 转化成 bpel 的实现方法。 (3) 研究了 bpel 转换成 xpdl 的实现方法。 (4) 开发出一套工作流模型互操作系统(workflow model interoperation system, wmis)。 (5) 对 wmis 进行详细的功能测试与性能测试,证明系统的功能。 1.4 文章框架结构 首先在绪论中介绍了课题的背景以及国内外工作流系统的一些研究成果与现 状,并对本文的研究内容、研究设想和预期的成果作了一个简要描述。 第 2 章对工作流模型进行深入分析。分别从流程的控制流和数据流分析了 xpdl 流程和 bpel 流程的结构特点,为后文的转换奠定基础。 第 3 章对 xpdl流程转换成 bpel流程进行研究和探讨,提出了一种基于堆栈 的流程转换算法,并在此基础上实现了流程的转换,分析了流程转换特点。 华中科技大学硕士学位论文 8 第 4 章对 bpel流程转换成 xpdl流程进行研究和探讨,通过分析 bpel 流程 结构特点, 提出了一种基于活动迭代的转换算法, 并在此基础上实现了流程的转换。 第 5 章是工作流模型互操作系统的功能测试与性能测试,包括 xpdl 转换成 bpel的测试以及 bpel 转换成 xpdl的测试, 并对测试出来的数据进行统计分析, 得出测试结论。 第 6 章完成全文的总结和对未来工作的进一步说明。集中阐述了对工作流模型 互操作系统所作的研究工作、系统功能实现,以及对未来进一步工作的设想。 最后是致谢,参考文献,发表的论文以及申请的专利。 华中科技大学硕士学位论文 9 2 xpdl 与 bpel 模型分析 为了很好的实现工作流模型互操作,因此必须对 xpdl和 bpel 工作流模型进 行分析,分析他们的语言结构特点,流程特点,流程控制流结构,流程数据流结构 等。 2.1 xpdl 工作流 在工作流领域第一个致力于标准化工作的是 workflow management coalition (wfmc)1- 2,它成立于 1993 年。1994 年 11 月,wfmc 发布了工作流管理系统的参 考模型。参考模型提出了五类接口,有关过程模型的定义则构成了接口一的核心内 容。接口一早期的标准为 wpdl(workflow process definition language) ,后来, 这一接口的规范变更为 xpdl。xpdl 是至今工作流领域最为重要的一个标准,目 前大多数工作流引擎是依据该标准设计开发的。 xpdl 流程通过活动(activity)和转移(transition)来描述流程。 活动(activity) :一个过程定义由多个活动组成,每个活动包括过程定义中 的一部分逻辑的、自制的单元。一个活动表示一组通过组织的或系统的资源(通过成 员分派属性来指定)和或计算机应用程序(通过应用程序分派属性来指定)的组合 来处理的工作。还有其他的一些信息,如:活动的开始终止是由 wfms 自动进 行的还是在资源竞争出现时根据该活动与其他活动的优先级比较来进行的;活动所 使用的特定工作流相关数据 wrd(workflow relevant data)等。一个活动可能是原 子的。在此情况下,活动是过程中所指定的自制单元工作的最小单位(虽然每个活动 都可能生成几个单独的工作项目供用户调用)。一个活动可能是一个子工作流。在这 种情况下,活动相当于一个(单独定义的)过程定义的执行容器。一个活动可能被指 定为一个循环,这时它作为一个控制活动来控制同一过程定义中的一组活动的重复 执行。在这种情况下,这组循环活动通过特殊的循环起始终止转移条件与这个控 制(循环)活动相连接。最后,空活动是一种什么也不做的活动(没有任何相关的资源 华中科技大学硕士学位论文 10 或应用),而它在活动转移中起路由作用。活动相应于企业经营过程中的任务,主要 反映完成企业经营过程需要执行哪些功能操作。 活动里面可以通过引用来调用 web 服务,如图 2- 1 所示,它引用了一个 wsdl 文件里面定义的端口类型(porttype)和操作(operation),这样 xpdl 流程可以构建组 合 web 服务的流程。 图 2- 1 xpdl 流程引用 web 服务 转移:(transition information)活动之间通过转移相联系。每个转移有 3 个基 本的属性:前继(from)活动、后续(to)活动、转移条件。从一个活动向另一个活动的 转移可以是条件的,也可以是无条件的。一个过程中的转移的结果是使活动并行或 串行工作。转移对应于企业经营过程中的业务规则和操作的顺序。 一个活动可以有转移限制 transitionrestrictions 元素, 它指定了一个活动执行完 后可以选择的(xor)执行一个活动或并行(and)的执行多个活动。如图 2- 2 例子所示。 图 2- 2 xpdl 流程里面的转移限制示例 在这个例子里面,这个活动执行完后,就选择性(split type= xor )地执行转移 trans2_3, trans2_4, 或者 trans2_5,而在转移 trans2_3 里面定义了当满足条件 credit_status = ok时 ,执行活动 act3,如图 2- 3 所示。 华中科技大学硕士学位论文 11 图2- 3 xpdl 流程里面的转移示例 由上面的例子可知,xpdl流程里面的转移构成了 xpdl流程里面的所有结构,因 此在下文中将分析 xpdl 流程里面的活动的控制流和数据流。 2.2 xpdl 工作流模型中的控制流与数据流 为了分析 xpdl 工作流模型中的控制流,先分析 xpdl 工作流的建模理论。 xpdl 工作流模型是一种基于 petri 网理论的模型。 petri 网自 60 年代由德国 学者 c apetri 提出以来39,经过三十多年的发展,己被广泛应用于各个领域进行 系统的建模、分析和控制。如通信协议的验证、网络性能的分析、并行程序的设计、 柔性制造系统的控制、知识推理以及人工神经元网络等。petri网是一种适用于多种 系统的图形化、数学化建模工具,为描述和研究具有并行、异步、分布式和随机性 等特征的复杂系统提供了强有力的手段。作为一种图形化工具,可以把 petri 网看 作与数据流图和网络相似的通信辅助方法;作为一种数学化工具,它可以用来建立 状态方程、代数方程和其他描述系统行为的数学模型。 petri网是一种基于状态的建模方法。 在 xpdl 模型中, 用结点表示 xpdl 流程 中的活动,用连接子表示 xpdl流程中活动的转移。因此一个 xpdl 流程可以用一 个图状来表示。 一个 xpdl流程由一些 xml文件来定义,它符合 xpdl schema 文件规范。它 由活动(activity)和转移(transition)构成, 转移形成了 xpdl 流程里面的控制流结 构。其中基本控制流包括顺序执行,并行执行,选择执行。以下分别对这几种方式 给予分析。 (1) 串行执行:串行执行也叫顺序执行,它用来定义一系列按固定顺序串行执 行的活动,它由一条不分支的通路构成,如图 2- 4 所示。a、b、c 是三个串行的活 动;b 在 a 执行完毕后才能执行,c 必须在 b 执行完毕后才能执行。连接子 c2 定 华中科技大学硕士学位论文 12 义了活动 a 与活动 b 之间的先后关系, 连接子 c3 定义了活动 b 与活动 c 之间的先 后关系。 图 2- 4 xpdl 流程里面的顺序结构 (2) 并行执行: 并行执行也叫同时执行, 它用来定义一序列活动可以同时执行, 它由两个连接子构成,and split(与分支)和 and join(与连接), 这 2 个成对的出现在 流程的定义之中。 图 2- 5 xpdl 流程里面的并行结构 如图 2- 5 所示,活动 a 的执行就转移到了连接子 c2 和 c3,这 2 个 and split 连 接子导致活动 b 和活动 c 同时执行, 活动 b 和活动 c 都执行完了后,就执行活动 d。 (3) 选择执行:选择执行也叫有条件的执行,它用来定义一序列活动中某个活 动可以执行, 具体的哪个活动执行有活动的执行条件决定。 它也有两个连接子构成, or split(或分支)和 or join(或连接), 这 2 个成对的出现在流程的定义之中。 如图 2- 6 所示,活动 a 的执行就转移到了连接子 c2 或 c3,这 2 个连接子哪个 会执行取决于条件 x0 和 x0,则连接子 c2 执行, 华中科技大学硕士学位论文 13 图 2- 6 xpdl 流程里面的选择结构 接着执行活动 b, 活动 b 执行完后就执行活动 d。 如果当时流程的条件是 x=0, 则连接子 c3 执行,接着执行活动 c,活动 c 执行完后就执行活动 d。 现在讨论 xpdl 工作流模型里面的数据流。xpdl 工作流里面有三类数据: 工作流控制数据,工作流相关数据,应用程序及应用程序数据。 工作流控制数据(workflow control data)是由工作流执行服务/工作流引擎管 理的用来辨别每个流程或行为实例状态的内部数据,例如工作流实例的状态信息、 每一行为的状态信息等。这些数据由工作流执行服务/工作流引擎进行控制,用户、 应用程序不能对其直接进行读写操作, 它们可以通过向工作流执行服务/工作流引擎 发消息请求来获得工作流控制数据的内容。 工作流相关数据(workflow relevant data)是工作流管理系统用来确定流程实 例状态转换的条件,并选择下一个将执行的行为的数据,例如流程调度决策数据、 行为间的传输数据等。这些数据可以被工作流应用程序访问并修改,因此,工作流 管理系统要在行为实例之间传递工作流相关数据。 应用程序及应用程序数据。应用程序可以直接被工作流引擎调用或通过应用程 序代理被间接调用。通过应用程序调用,工作流管理系统部分或完全自动地完成一 个行为,或者对业务参与者的工作提供支持。工作流应用数据是指应用程序操作而 不能被工作流管理系统访问的数据。与工作流控制数据和相关数据不同,工作流应 用数据是针对应用程序的,是企业完成具体地业务功能需要的数据,如产品结构数 据、订单数据等。它对工作流管理系统的其它部件是不可见的。 华中科技大学硕士学位论文 14 在上面提到的三类数据中,只有工作流相关数据和应用程序及应用程序数据与 一个 xpdl流程的模型相关, 而工作流控制数据只与工作流引擎执行时相关状态有 关。因此,在本系统中,只考虑与工作流模型相关的数据:工作流相关数据和应用 程序及应用程序数据。 在 xpdl 模型中,可以通过 typedeclaration 元素来声明一个数据类型,如图 2- 7 所示;通过 datafield 来声明流程中的一个变量,如图 2- 8 所示。 图 2- 7 xpdl 流程里面的类型声明 图 2- 8 xpdl 流程里面的变量 声明了一个变量后,流程就可以把这些数据传送到一个活动中,把这些数据当 作活动的输入参数,从而可以对这些数据进行处理。 2.3 bpel 工作流 bpel4ws3(business process execution language for web services )是基于 web services 的商业流程执行语言 (简写为 bpel) 。 2002 年 8 月, ibm, microsoft 为等企业联合提交并发布了 bpel4ws1.0 规范。 2003 年 5 月 bpel4ws1.1 规范 发布,并提交给 oasis 组织进行标准化。bpel4ws 基于 ibm 的 wsfl(web 华中科技大学硕士学位论文 15 services flow language) 和 microsoft 的 xlang (web services for business process design)建立。因此,它结合了块结构的流程语言(xlang)和基于图形的流程语 言的特性(wsfl) 。 下面简要分析 bpel4ws 的活动。这一节仅提供简短的概述;详细请看 bpel4ws 规范描述3。 bpel4ws 里面的活动有基本活动和结构化活动。基本活动有: , , , , 结构 化活动有:。下面简要介绍这些活动的语 法及功能。 (1) 活动:业务流程阻塞特定消息的到达,语法如图 2- 9 所示。 图 2- 9 bpel 流程里面的 receive 活动 (2) 活动:业务流程回复通过 接收到的消息。一个 活动和一个活动构成了在 wsdl porttype 上的请求响应操作。语法如图 2- 10 所示。 图 2- 10 bpel 流程里面的 reply 活动 (3) 活动:业务流程调用由伙伴在 porttype 上提供的 web 服务。语法 如图 2- 11 所示。 华中科技大学硕士学位论文 16 图 2- 11 bpel 流程里面的 invoke 活动 (4) 活动:用新的数据来更新变量的值。一个 活动可以包括任 意数量的基本赋值。 (5) 活动:从业务流程中抛出异常。 (6) 活动:允许等待一段给定的时间或等到某一时刻,必须指定其中一个 到期条件。 (7) 活动:允许在业务流程中插入“no- op”指令。这个活动可被用于并 行活动的同步。 (8) 活动:定义一组按顺序先后被执行的活动。 (9) 活动:从一组活动中选择一个活动执行。 (10) 活动:当满足某个指定条件时反复执行一个活动。 (11) 活动:阻塞等待某一个合适的消息的到达或超时告警产生。当其中 一个触发器触发后,相关的活动被执行, 也就完成了。 (12) 活动:并行的执行一组活动。为了定义任意的控制结构,可以在并 行的活动中使用 link 链接。 上面所指的“standard- attributes”是: 它们的缺省值如下: 华中科技大学硕士学位论文 17 name 没有缺省值(也就是说,未命名) joincondition 目标为这个活动的所有链接的活动状态的逻辑或 suppressjoinfailure 缺省值是 no 上面所指的“standard- elements”是: 其中“transitioncondition”属性的缺省值是“true” 。 (13) 活动:立即终止一个业务流程的实例,一但活动发 生,业务活动实例必须尽快的终止。 2.4 bpel 工作流模型中的控制流与数据流 bpel 模型在结构上是一种基于块状的工作流模型,图 2- 12 表示的是一个 图 2- 12 一个 bpel 工作流模型块状图 bpel 模型块状图。各个活动之间的关系通过流程结构化元素定义,如 sequence, switch, flow。 在图 2- 12 中, 首先执行活动 sequence_1, 它表示活动 switch_1 和 flow_2 按顺序执行,即先执行 switch_1,然后执行 flow_2。在执行 switch_1 时, 它按照 条件有三个分支,这三个分支分别对应三个活动:sequence_2, while_1,flow_1。 具体执行哪个要看流程 switch_1 的条件。 活动 switch_1 执行完后就执行活动 flow_2。在执行 flow_2 时,活动 f 和活动 g 便可以同时执行。 华中科技大学硕士学位论文 18 因此 bpel 模型中的控制流由 bpel 模型中的结构化元素 sequence,while, switch,flow 来决定,可以通过分析 bpel 模型中的这些元素的结构来分析 bpel 模型中的控制流。 bpel 模型在数据处理上是基于消息的发送与接收模式,bpel 里面的每个原 子活动可以带有发送消息的变量或接收消息的变量 。消息的类型一般在 bpel- wsdl文件中定义,如图 2- 13 所示。流程中的消息(变量)在 bpel文件中定 义,如图 2- 14 所示。这样在一个活动中,可以通过 variable, inputvariable, outputvariable 来使用定义的消息变量。 图 2- 13 bpel 流程里面的消息定义例子 图 2- 14 bpel 流程里面的变量定义例子 在 bpel模型中,可以使用 assign元素将一个消息变量的全部内容或部分内容 复制到另外一个消息变量中去,从而实现了 bpel 流程中数据流的转向。 2.5 小结 xpdl与bpel是现在使用比较广泛的两种工作流模型。 本章首先介绍了xpdl 工作流的流程结构及元素,说明了流程的组成结构,然后分析了 xpdl 流程中的几 种控制结构:顺序结构,选择结构,并行结构,随后分析了 xpdl 流程里面的数据 流。接着分析了 bpel流程组成元素,然后以一个实例分析了 bpel 工作流模型特 点,这为下文的转换奠定了基础。 华中科技大学硕士学位论文 19 3 xpdl 转换成 bpel 在本章中, 首先简要介绍两种 x p d l 流程转换成 b p e l 流程的方法及其不足之处, 然后提出了一种高效的将 x p d l 流程转换成 b p e l 流程的方法。在转换实现方面,将 详细描述了 x p d l流程转换成图的转换算法,以及结构块识别与结构块转换的算法 并对算法进行了分析,然后提出了一种支持四级转换系统容错处理的标准,说明了 该容错系统的结构,最后,简要介绍了本系统的实现相关类和方法。 将 x p d l 流程转化成 b p e l 流程传统的方法是利用 x s l t ( e x t e n s i b l e s t y l e s h e e t l a n g u a g e t r a n s f o r m a t i o n ) 技术来转换。x s l t 是一种转换语言,它主要用于在两种 x m l格式文件之间的转换。x p d l和 b p e l都是用 x m l文件描述的流程,因此可以用 x s l t 来实现从 x p d l 到 b p e l 的转换。其主要实现方法为:先分析 x p d l 和 b p e l 流程 结构特点和元素作用,找出 b p e l 中与 x p d l 元素作用相同的元素,然后针对这些相 同的元素编写 x s l t 文件,再用程序来执行 x s l t 文件就得到了结果。这种转换具有 以下优点:只要写 x s l t 文件,几乎不用程序设计语言写代码,实现起来比较容易。 缺点是:只能实现简单的 x p d l流程向 b p e l流程转换,要想实现更复杂的 x p d l流 程向 b p e l转换,则 x s l t文件编写复杂。对于控制结构比较复杂的 x p d l流程就不 能很好的转换。 另外一种方法是设计算法将 x p d l直接转换成 b p e l ,算法的主要思想 4 0 - 4 1 是将 x p d l中各种活动的结构转换成 b p e l里面的 f l o w结构,x p d l里面各种活动的转移 关系用 f l o w 活动里面的 l i n k 元素连接起来,某个具体的活动与其他活动的关系用 b p e l 活动的 s o u r c e 元素和 t a r g e t 元素连接起来

温馨提示

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

最新文档

评论

0/150

提交评论