工作流管理系统

来源:百度文库 编辑:神马文学网 时间:2024/04/26 03:58:25

随着计算机在日常工作中的广泛应用,人们的许多工作已经依靠计算机来完成,与此同时,各种类型的信息系统也被广泛使用来支持这些工作.但是这些系统基本上都是独立运行的,相互之间缺乏必要的交互,协作与感知,从而使得他们子协调多个人的活动,以协同完成某一个共同的任务反面有比较严重的不足.这也是工作流管理系统WFMS从九十年代以来吸引来自研究机构和产业界广泛关注的重要原因.
本文首先对工作流技术发展情况进行了概述,总结了目前工作流技术的发展趋势,介绍了工作流管理系统的参考模型。对于在工作流系统实现中共涉及了工作流建模工具用于工作流程的定义。在工作流建模方面,通过扩展传统活动网络图模型中的模型元素,加入延时节点、并行模块、服务和修改模块,提出了一种柔性的工作流元模型, 很好的解决了原有的业务事件同步、多活动实例、服务类型活动和运行时过程建模等问题。实例表明,该元模型具有描述能力强,建模方法柔性化,结构清晰简洁等优点,适用于企业 业务过程管理。
关键词:工作流,元模型,工作流管理系统,参考模型
In routine, with the widespread application of computer much work has been finished by computer. At the same time,those work has been support by all kinds of information system. But basically, these information system are run independently, among these information systems,they lack of the necessary interaction,cooperation,inter-perception. It result in a serious shortage in cooperating to finish some common task when they must coordinate many people’s activities. This is the reason that why workflow management system has attract the wide attention from research institute and industry field.
Workflow technology, supported by information technology, provides a whole framework to facilitate the analysis, establishment, management, simulation and enactment of process models for the actual business processes, and becomes one of the crucial technologies for contemporary enterprises in implementing the management and control of business processes. In order to further advance the applicability of workflow technology, this thesis focused on topics about workflow modeling, enactment and exception handling, and contributes the theory approaches and implementation methods as a result. The research is meaningful for the improvement of the application of information technology and the kernel competences for enterprises in our country.
Key words: workflow, , meta-model, workflow management system, reference model
目    录
第一章 工作流技术概况. 1
1.1 工作流管理系统. 1
1.1.1 工作流管理系统的应用. 1
1.1.2 工作流技术的发展趋势. 2
1.2 工作流管理系统参考模型. 3
1.2.1 工作流管理系统体系结构. 4
1.2.2 工作流模型. 5
1.2.3 工作流执行服务. 7
1.3 论文各部分主要内容. 8
第二章 XML技术在工作流系统中的应用. 9
2.1 XML的含义. 9
2.2 XML基本特征. 9
2.3工作流中的过程定义语言. 10
2.3.1  Process Meta Model 12
2.3.2  Extended Process Meta Model 13
2.3.3  Package Meta Model 13
2.3.4  Elements Overview(略) 14
2.4 过程定义语言业务描述. 14
第三章 建模工具的系统分析. 15
3.1 工作流元模型. 15
3.1.1 转移(Transition). 15
3.1.2 活动(Activity). 15
3.1.3 标记节点(Symbol). 16
3.1.4 连接节点(Connector). 16
3.1.5 子过程(Sub process). 17
3.2 需求分析. 18
3.3 概要设计. 20
3.4 小结. 22
第四章 JBMOD的具体实现. 23
4.1 设计模式. 23
4.2系统数据结构设计. 24
4.3 程序设计说明. 28
4.3.1 视图. 28
4.3.2 文档. 34
4.3.3 模型数据对象. 36
4.3.4 文件读取和保存. 38
4.4 尚未解决的问题. 39
第五章 结论与展望. 40
5.1本文总结. 40
5.2 今后的展望. 40
致    谢. 41
参考文献. 42
工作流技术概况
工作流技术通过信息技术的支持为企业的经营过程提供了一个从模型分析、建立、管理、仿真到运行的完整框架,是实现业务过程管理与控制的一项关键性技术。目前,在全球范围内,对工作流技术的研究以及相关产品的开发了进入了一个繁荣阶段,更多更新的技术被集成进来,Internet服务、数据库、电子邮件、移动式计算、文件管理等都已被容纳到工作流管理系统之中。随着工作流这一集成框架下所容纳技术的不断拓展与成熟,工作流系统将成为企业信息环境中不可缺少的软件平台,并将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统 BOS(Business Operating System),带来操作系统的一次革命。工作流技术的出现和迅速发展为企业先进制造战略的实施提供了重要的技术支持。对工作流技术进行深入研究对于进一步提高我国企业信息化程度,增强企业核心竞争力有着非常重要的意义。
工作流管理系统
“工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。”
1.1.1 工作流管理系统的应用
通常,工作流管理系统指运行在一个或多个称为工作流机的软件上的用于定义、实现和管理工作流运行的一套软件系统,它和工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。在工作流管理系统的支撑下,通过集成具体的业务应用软件和操作人员的界面操作,就能够良好地完成对企业经营过程运行的支持。
采用工作流管理系统可以在最大程度上集成企业的现有信息资源,实现 资源的充分利用,提高企业管理的规范化程度,缩短业务过程的处理时间,降低管理成本,提高工作效率,更好地与上下游企业形成快速响应市场的供 应链网络。由于工作流管理系统具有较好的柔性和开放性,因此可以保证企 业的信息系统能够顺利的进行扩展以满足不断变化的市场环境。另外,由于工作流管理系统是在工作流模型的基础上进行企业的业务过程运行,这种由过程建模―>模型分析―>过程优化―>模型执行―>执行结果统计分析―>改进业务过程―>优化企业运作的实施方法为成功地实施企业信息系统奠定了坚实的基础。
1.1.2 工作流技术的发展趋势
在工作流技术应用日益得到重视的今天,对工作流技术的研究也正在向 更深层次进行。工作流技术研究主要分为两方面内容:一是为工作流技术的发展解决理论上存在的问题,探讨工作流模型和语义的形式化表示方法等; 二是从工作流实现技术的角度探讨利用先进的技术提高工作流管理系统的性能和可靠性。以下主要讨论工作流实现技术的发展趋势。
分布式的系统:分布式的系统可以使分布的计算资源得到有效的利用,平衡系统负荷,减小系统故障带来的损失。分布的子过程或活 动可以在分布的系统组件上独立的运行,并在组件之间传递数据和 过程的状态。分布式设计不仅要考虑系统分布组件之间的通讯问题,更重要的是给出过程分布的规则,使整个系统的资源利用达到最优。
组件化设计,增强系统可伸缩性:先进的工作流管理系统的一项重 要特征是在设计和实现阶段始终以允许系统进化的思想为基本理念。要实现企业经营过程的快速重组,企业的应用系统需要按照组 件的方式构建或改造。采用组件化的系统设计和面向对象的工作流 模型后,用户界面组件、工作流管理组件、工作流过程都可以定制和重用,使它们能快速适应在不同领域中的应用。
基于事件:事件为工作流管理系统中(分布)组件之间的异步通讯和互操作提供了一种高效的机制。采用这种机制,组件之间可以松 散的组合。对基于事件的设计的更高要求是,组件或用户能够定制 自己希望接收的时间消息类型,而不总被无关的事件所打扰。基于 Web:未来企业工作流的参与者不仅包括企业的决策者和员工, 还将包括企业的供应商、客户、以及供应链上的其他合作伙伴,他们不仅在地理上是分布的,使用着不同的平台,并且各自有着自己 的工作方式和时间安排。这些参与者将通过访问共同的工作流组成 虚拟工作组,由工作流管理系统相连。WWW 利用 Intranet 和 Internet 提供了一种跨平台的、一致的、简单的数据访问方式。
支持动态建模:工作流管理系统需要适应变化的环境,变化的环境 经常会引起异常的发生。在长过程的执行过程中,对工作流过程模型的优化将造成对过程模型的修改,在过程的执行中重新分配任务, 或为活动的执行者在工作方式上提供更多的选择,以便及时采用最 有效的资源和人员部署方案。新的工作流系统需要适应过程执行中的动态修改,并维护过程模型的一致性。
异常处理和错误恢复问题:对于制造企业这样的一个复杂的应用系统,出现异常和错误是非常正常的情况,对于工作流管理系统不仅要求它在正常情况能够发挥作用,更重要的是要求它能够灵活的处 理各种异常情况,并且在某个节点发生错误时能够保证整个系统不 会发生崩溃。
融入事务管理概念:在工作流管理中融入事务管理的概念和模型方法可以显著的提高工作流管理系统处理大规模业务应用的能力,目 前这个工作已经得到许多研究人员的重视。
应用集成与开放性:工作流管理系统本身是一个完成过程建模和过程管理的软件系统,但是为了在企业的实际业务中得到有效的应用, 它必须和企业已有的或购买的其它实现业务应用的软件实现集成, 通过集成来提高整个企业的应用水平和应用效率。工作流管理系统是开放的系统,它提供访问其内部各个层次的组件的一致的接口, 通过这种方式可以保证系统在未来能与其它工具以系统开发时不能 预见的方式集成。
通用性和移动性:未来的计算机环境将允许用户根据需要随时随地访问信息。随着 PDA,寻呼机等信息终端和笔记本、桌面计算机等 通讯设施的普及,越来越多的工作流信息将通过这些渠道和机制发送,一些工作流系统已开始支持低带宽的移动设备的访问,同时在 工作流离线操作、同步控制和协调上进行了更多的研究。
支持离线操作:实际企业业务中有很多工作是离线进行的,支持离线操作的工作流管理系统可以有效的降低企业数据一致性的维护成 本,并且真正贴近企业应用的实际情况。
定制的界面:面向任务的界面和面向最终用户的表示方法对支持跨组织的具有不同能力和经验的参与者具有重要的意义。工作流管理 系统把复杂的表示方法隐藏在用户熟悉的图表和抽象之后,不需要 用户学习新的使用方法。
工作流管理系统参考模型
市场上工作流产品的种类在迅猛增长,同时工作流技术也得到不断完善。在实际应用中,人们需要集成使用各种各样不同的工具来对工作流进行建模、归档和分析。为了适应对工作流管理系统产品集成的需求,工作流管 理联盟(Workflow Management Coalition,简称 WfMC)提出了有关工作流 管理系统的一些规范[2],定义了工作流管理系统的结构及其与应用、管理工 具和其它工作流管理系统之间的应用编程接口,其主要目的是为了实现工作 流技术的标准化和开放性,从而支持异构工作流管理系统与产品之间的互操作,实现与其它应用的快速有效集成。下面我们将以此为例介绍工作流管理系统的体系结构。
1.2.1 工作流管理系统体系结构
图 1.1 给出了 WfMC 提出的工作流参考模型。在该工作流系统参考模型 中,以工作流服务为核心共定义了五类接口,具体说明如下:
接口 1,工作流服务和工作流建模工具间接口,包括工作流模型的解释和读写操作;
接口 2,工作流服务和客户应用之间的接口,这是最主要的接口规范,它约定所有客户方应用与工作流服务之间的功能操作方式;
接口 3,工作流机和直接调用的应用程序之间的直接接口;
接口 4,工作流管理系统之间的互操作接口;
接口 5,工作流服务和工作流管理工具之间的接口。
图 1.2 为 WfMC 提出的工作流参考模型的体系结构图。这个参考模型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足 工作流管理系统和产品所应该具有的主要功能特征,可为实现工作流产品之间的互操作提供公共的基础。
1.2.2 工作流模型
工作流模型是对工作流的抽象表示,也就是对经营过程的抽象表示。工 作流模型包含了描述一个能够由工作流执行服务软件系统执行的过程所需要的所有信息。理想的工作流模型能够清楚地定义任意情况下的工作流,能够 适应用户在建模过程中所提出的各种要求。
工作流管理联盟定义了一个工作流过程的元模型。元模型中定义了工 作流过程中最高层次的模型实体属性及其间的联系,同时还定义了在一个工作流模型中定义多个不同过程,以及在不同过程间和不同模型间共享相同数 据定义的规则。元模型中最高层次元素如图 1.3 所示,下面是关于图中部分重要元素内容的说明。
l      工作流过程定义:工作流过程定义构成了工作流模型的主体部分, 它包含了工作流过程的自身属性,如 ID、文本描述等以及组成工作 流过程的所有活动和转移信息。
l      工作流活动:某一工作流过程是由一个或多个工作流活动组成的, 其中每个活动是一个合理的、独立的工作单元。每个工作流活动是由一组资源共同完成的工作与/或自动应用的集合,它可能是最小的独立单元,也可能是由一系列更小独立单元组成的子过程。
l      转移信息:在工作流过程中,活动间的联系是通过定义控制转移弧线实现的。每一转移弧线包含前驱活动、后继活动和转移条件三部分基本信息。
l      工作流参与者定义:工作流参与者是组织模型中的元素,他们或者 执行工作流过程中的某一部分或者对其负责。
l      工作流应用定义:工作流应用定义是一个 IT 应用及工具的列表,它们将在工作流的执行过程当中被激活或调用。在定义中需要对激活 某个应用所需要的参数进行说明。
l      工作流相关数据类型:工作流相关数据类型定义了一个包含所有在 工作流相关数据中用到的简单或复杂数据名称的集合。
l      工作流相关数据:工作流相关数据定义了所有在工作流过程实例执 行时刻需要创建和使用的变量。
1.2.3 工作流执行服务
工作流执行服务是工作流管理系统的核心,实际上它是企业经营过程的 任务调度器,并且还在某种程度上是企业资源分配器。企业的业务过程在它的管理、监控和调度下运行,因此工作流执行服务系统的性能和可靠性就直 接决定了企业经营过程的运行效率和安全性。工作流执行服务由一个或多个 工作流机组成(在分布环境下由多个工作流机组成),它提供了过程实例执行的运行环境,主要完成以下功能:
实例化及执行过程模型:解释企业经营过程的过程定义,根据过程执 行需要的初始条件和执行参数生成过程实例,运行过程实例并管理其运行过程。这里需要指出的是一个过程模型实际是企业经营过程的一个模板,它可以被执行多次,也可以有多个有关这个过程模型的 实例在同时运行。
为过程和活动的执行进行导航:根据过程定义和工作流相关数据, 为过程实例的运行进行导航,如根据过程的进入和退出的条件启动 和终止一个过程实例;根据活动之间的关联和活动的执行条件,决定并行或串行执行后续活动;给用户提供需要操作的工作流任务项 信息;或者根据所需激活的应用程序信息启动相应的应用程序等等。
与外部资源交互完成各项活动:工作流执行服务通过两种途径完成 与外部资源和用户的交互:客户应用接口和直接调用应用接口方式。 对于客户应用方式,工作流机通过任务项列表管理器对应用的执行进行管理。任务项列表管理器提供任务项列表供用户进行选择,并 记录监督工作项的完成情况。由用户完成从任务项列表管理器提供 的任务项列表中选择相应的任务项,并在需要的时候调用应用工具完成相应任务的执行,在任务执行完成后,用户需要修改相关任务 项的状态,如置完成标志,供任务项列表管理器使用。对于直接由 工作流机启动的活动,由工作流机直接调用相应的应用来完成,这些自动执行的应用同样需要将合适的预先定义好的应用执行完成情 况反馈给工作流机。工作流机自动调用的应用主要是针对基于服务 器的无需用户参与的应用,即自动化活动。
维护工作流控制数据和工作流相关数据:工作流在执行过程中要维 护不同过程和活动实例的内部状态信息,以及用于协调和恢复的各 种检查数据和恢复/重起信息,还包括用户传送的必要的相关数据。
论文各部分主要内容
在综合当前工作流技术的理论研究和实际应用基础上,尤其是现阶段工作流产品的开发和应用方面,针对工作流技术未来的发展趋势,本文从提高工作流技术的实用性能入手,在工作流建模、执行等方面进行了深入的研究,提出了相关的理论方案和实现策略。论文的第二章介绍了XML技术在工作流系统中的应用,介绍了关于过程定义语言XPDL,以及其在工作流方面的应用.第三章从工作流原模型出发,介绍了建模工具总体系统分析,需求分析,概要设计等。第四章详细的介绍了 JBMOD1.0工作流建模工具的实现方法,阐述了设计模式,设计思想,以及具体实现的方法。第五章通过对整个工作流管理系统的分析,对是全文的进行了总结并作出了对工作流技术相关研究工作的进一步展望。
的含义
1996年,万维网协会开始设计一种可扩展的标记语言,使其能够将SGML的灵活性和强大功能与已经被广泛采用的HTML结合起来。这种后来变成XML的语言继承了SGML的规范,而且实际上就是后者的一个子集。从SGML入手使得该设计小组能够将精力集中在简化已有的成果上。SGML已经提供了一种可以无限扩展的语言,它允许任何人能够根据自己的需要加以扩充。XML之所以要较SGML更为简化,很大程度上是出于易用性的考虑:人们对标记的读写过程应该使用现有的、简便通用的工具,同时,我们也应当简化计算机对文档和数据交换的处理。由于有太多的可选功能,SGML变得过于复杂,以至于很难编写出针对这种语言的普通解释器,而XML的解释器则简单得多。此外,XML使得现有的Internet协议和软件更为协调,从而简化了数据处理和传输。作为一个不错的SGML子集,XML还保持了对现有的面向SGML的系统的向下兼容性,这样,用XML标记过的数据就仍然可以在这些系统中使用,为基于SGML的行业节省了大笔的改造费用,同时与We b的结合也使得它们更便于被访问。
XML是一种界定文本数据的简便而标准的方法。它曾经被人称作“Web上的AS CII码”。就好像你可以使用自己喜爱的编程语言来创建任何一种数据结构,然后同其他人在其他计算平台上使用的其他语言来共享一样。XML的标记用来说明你所描述的概念,而属性则用来控制它们的结构。所以,你可以定义自己所设计出的语法并同其他人共享。XML的数据描述机制意味着它将成为一种在Internet上共享信息的强大途径,因为:
l            它是开放的;XML能够在不同的用户和程序之间交换数据,而不论其平台如何。
l            它的自描述的特性使其对于B2B和企业内部网解决方案来说是一种有效的选择。
l            无需事先协调,我们就可以在程序之间共享数据。后面我们将看到,XML的机制使我们能够找出一类XML文档的结构。
基本特征
XML是一种使用标记标记内容以传输信息的简单方法。标记用于界定内容,而X M L的语法允许自行定义任意复杂度的结构。这一切都是使用普通的文本,而不是二进制的数据格式来实现的,这对于跨平台交换数据来说确实是一个非常不错的方案。实际上,每一种普通的操作系统(只要不是嵌入使用的)能够以某种方式处理文本。这也是HTML之所以能够在很短的时间内流行起来的原因。XML把这一优势提高到一个更新的层次,因为可以根据自己的需要任意地扩展XML。由于这种扩展机制是标准化的,所以可以自动地将这类扩展信息传递给任何读取数据的人或机器。
自描述数据 界定XML内容的标记会给所界定的数据中的每一个元素命名。在标记中,我们还会发现特定的属性,它们会为所描述的元素提供某些附加信息。
之所以说数据是自描述的,在于其中的每个项目都有自己的名字,而这个名字又与文档所描述的现实世界中的问题所涉及的某项具体内容密切相关。到目前为止,我们所了解的内容都还与HTML非常相似。虽然HTML标记的含义也是由W3C制订的。看一看同样的内容,HTML和XML的表达方法有何不同:
两个表单所描述的都是一个人的名字和年龄。在第一个用XML实现的表单中,我们可以将其中的每一点内容与现实世界中的人的概念关联起来。我们界定出姓名的各个部分,我们知道哪个是姓名。只要我们了解到关于人的某些信息,数据的含义对于我们来说就非常清楚了。相反,HTML表单将数据格式化为一个表格,但是没有一个明确的方法能够说明我们处理的内容是关于一个人的信息。其中的一点组织信息—年龄—也被作为内容而不是结构被隐藏起来了,计算机对此描述不会理解.
XML中的“扩展”一词指的是定义新的标记及其用途的标准机制。由于这一切均是标准化的,所以我们拥有固定不变的途径来描述这些新标记并同其他XML用户交流。对于我们在标记中使用的属性来说,情况也是如此。最近大多数定义用于文档的XML标记集的计划建议都是针对元数据的—关于数据的数据—它们用来在特定的XML文档族中交流标记结构的信息。不仅我们的数据是自解释的,那些关于数据的数据同样也是自解释的.
工作流中的过程定义语言
过程定义(也称工作流过程模型)是对业务过程的抽象表示,包含所有使业务过程能被工作流执行服务执行的必要信息。WFMC给出工作流过程定义元模型(见图),描述了活动、工作流相关数据、参与者、被调用的外部应用、跃迁等顶层元素以及元素间的相互关系。其中活动是业务过程中的一个逻辑工作单元,可以是调用外部应用的自动活动、需要人工参与的人工活动、嵌套调用其它独立过程的子流程活动或者循环、路由等控制辅助活动等。活动的数据引用将驱动过程实例的数据流,而活动间的控制流则由跃迁来描述,跃迁描述了两个活动之间的调度关系及其触发控制条件。活动的JOIN 和SPLIT 跃迁约束分别是指触发活动执行的前提控制条件和活动执行完毕后的后续活动调度,多个JOIN 或SPLIT跃迁之间存在AND或者OR关系。只有全部AND_JOIN跃迁都被触发后才能启动活动的执行,而只要任何一个OR_JOIN 跃迁被触发即可触发活动的执行;活动执行完成后将首先触发所有跃迁条件为真AND_SPLIT跃迁,而只触发第一个条件为真的OR_SPLIT跃迁,跃迁触发是指触发目的活动。
过程定义语言必须有足够丰富的描述能力以表达上述的工作流元素和关系,并要求易于处理。同时,为了适应当前分布式WFMS 的要求,过程定义语言还必须对分布式处理提高较好的支持。过程定义可以是形式语言、对象关系模型、文本、图形等形式,如PLISP,WFDL,Petri网和BML等。
XML是一种数据组织方法,其最大特点是没有固定格式,允许开发者定义程序所需的标签并指定标签的组织方式,通常使用DTD Document Type Declaration,文档类型声明)来说明某类XML文档的语法(即标签集及其组织方式)。利用XML 描述工作流过程模型具有以下优点:(1)XML的元素嵌套功能使其具有极强的复杂结构描述能力,能够表达复杂的工作流模型特别是复杂数据类型;(2)直接利用已存在的各种通用、开放和免费的XML解析处理器和从XML数据到对应数据结构的构造工具,极大简化工作流系统的实施及其成本;(3)开发者可灵活更改过程定义语言,而大部分XML解析器根据DTD来检查和处理XML文档,因此,过程定义语言的改变可能并不影响使用XML的程序代码,具有较高的可扩展性和灵活性;(4)XML与HTML类似且更为可读易理解,更便于没经验用户构造自己的过程模型;(5)利用基于JAVA的XML解析器和;JAVA优越的图形支持功能,可为用户构造图形化建模工具;(6)使用普通文本的XML文档独立于平台和语言,更适应在异构和分布式环境中使用;(7)添加必要的元素或属性支持过程模型的分布式处理和执行。
虽然应用到实际系统中的XML过程定义语言目前还极为少见,但WFMC已于2001年5月发布了自己的XML工作流过程定义语言XPDL0.03草案。由于该草案着重考虑与现存系统的兼容和互操作问题,存在实体过于细化和模型处理复杂等缺陷,因此实际系统可能需要根据应用需求对其进行必要的修改,比如文给出的XPDL就做了包括将应用程序和参与者作为活动实体的子元素或属性、取消匿名数据类型、为过程和活动实体中增加领域属性以支持分布式处理、增加隐含的开始和结束活动标识符等在内的大量修改,最终得到系统所采用XPDL的DTD描述,分别实现了对过程、数据类型、工作流相关数据、活动集和跃迁集等6类实体的属性和它们之间的关系的定义说明。
关于XPDL 的标准语法格式,包括基本数据、属性以及各种工作流模型实体的定义方法,并给出一个用XPDL 描述实际业务过程的例子,以加深对于这种基于XML的工作流过程定义语言的理解。
2.3.1  Process Meta Model
元模型描述包含在一个过程定义内的顶层实体,它们的关系和属性(包括一些为监控和模拟目的而设置)。同时,还定义了把若干过程集成为模型的规则,以及跨不同过程或模型的公共定义数据的使用。元模型标识了用于过程定义交换的元素和属性的基本集合。
工作流过程定义元模型元素和属性:
1. Workflow Process Definition
2. Workflow Process Activity
3. Transition Information
4. Workflow Participant Declaration
5. Resource Repository
6. Workflow Application Declaration
7. Workflow Relevant Data
8. System and Environmental Data
9. Data Types and Expressions
对于一个过程定义来说,或者是在过程定义级别上,或者通过继承,或者是从包中的引用,下面的元素必须被定义:
Workflow Process Activity
Transition Information
Workflow Participant Specification
Workflow Application Declaration
Workflow Relevant Data?
2.3.2  Extended Process Meta Model
在XPDL中,汇聚(Join)、分支(Split)结构和它们的约束(AND、OR、XOR)的说明是嵌在活动(Activity)说明的内部,这些结构和约束定义了活动间的结构关系和约束。由于它们是活动说明的一个组成部分,同时,业务过程的动态变化是非常普遍的,所以,结构和约束的变化必然会引起活动定义也随之变化。另外,在WPDL中定义的过程模型是静态的,它并不提供任何过程模型动态修改的机制。为了屏蔽变化带来的副作用,引入问题分离(Separation of Concerns)原则十分必要。问题分离是软件工程的一个核心原则,即分而治之的原则,通常是指标识、封装以及操作软件各部分的能力,其中的一个部分是与一个特定的概念、目标、任务或目的相关的。之所以要把软件分解和组织为粒度更小的、更容易管理和理解的部分,对问题(Concerns)的关注是最根本的动机.每一个部分都侧重一个或几个问题。适当的问题分离可以降低软件的复杂度、提高可理解性;有利于复用、非侵犯性适应、定制以及演化;简化构件的集成等。根据问题分离原则,本文对工作流管理联盟制定的工作流过程定义元模型作了适当的修改和扩展,把汇聚、分支结构和它们的约束(AND、OR、XOR)的说明从活动中提取出来,引入了一种新的元模型元素“连接符”(Connector),把所有控制信息说明从活动说明中独立出来,分别封装,使得变化的影响局部化,这种分离有利于工作流模型的动态修改.
2.3.3  Package Meta Model
多个过程定义可以被绑定在一个模型定义中。包作为一个容器,目的是把若
干独立的过程定义和关联元素数据集成起来,成为包中的共享资源。包元模型应
该包括下列类型:
Workflow Process Definition
Workflow Participant Specification
Workflow Application Declaration
Workflow Relevant Data
包元模型针对交换或存储标识了过程模型的元素和属性。它定义了不同的集
成规则,把一个独立的过程定义与参与者、应用声明和工作流相关数据等这些元
素联系起来。可能有些只需在包中(即模型级)定义,而不需在过程级重复定义。
2.3.4  Elements Overview(略)
过程定义语言业务描述
工作流技术是实现企业业务过程管理与控制的一项关键性技术。目前,工作流技术已经成为了计算机应用的一个重要研究方向,并被逐步应用于服务业与制造业等领域。但是随着业务过程的不断复杂和多变,传统的工作流模型在对实际业务过程的描述和实施支持方面都显得缺乏柔性。所以我们对系统进行分析与设计以增强其支撑模式。
工作流元模型
该工作流元模型是在传统的活动网络图模型基础上提出的。在工作流模 型图中以节点表示过程活动和任务,弧线表示任务顺序控制流程。图 3.1 给 出了各建模元素的图形表示。
3.1.1 转移(Transition)
转移描述了两个节点间的简单顺序关系,以带箭头弧线表示。除开始标 记、结束标记、汇合节点和分支节点外,一个节点有一个输入转移和一个输出转移。或分支节点和异或分支节点的输出转移可以是有条件的,此时在弧 线上加黑点表示。与传统工作流元模型不同,这些条件定义为节点属性而不 是转移属性,这样为在模型动态修改时统一操作提供方便。考虑到数据转移在无控制流的基础上无效,我们不定义数据转移。
3.1.2 活动(Activity)
活动代表为实现某个业务过程目标而进行的一项工作,活动由某个执行 者使用资源实现其功能。活动是原子的和独立的。活动属性包括可以触发的业务事件、优先级、时间限制、描述等,其中某些属性可以定义为表达式,并在运行时确定。活动分为人工型活动和自动型活动两类。自动型活动由工作流使能的 IT 应用执行,即可以由工作流执行系统控制的应用。人工型活动则由某个组织 单位负责执行,在执行过程中,可能使用到某些 IT 工具。活动可以向外发布 事件,这样不同过程实例间以及与外部系统就可以通过事件进行通讯。
3.1.3 标记节点(Symbol)
开始标记 (Start Symbol) 开始标记是过程模型、模块或者子过程的开始点。开始标记无前驱任务,有一个后继任务(多个后继任务使用分支节点)。
结束标记(End Symbol) 结束标记是过程模型、模块或者子过程的终止点。结束标记有一个前驱任务(多个前驱任务使用汇合节点),无后继任务。当一个过程实例运行到结束标记时,该实例将完成运行,仍在运行的活动实例将被取消,并且通知其执行者。
3.1.4 连接节点(Connector)
在许多工作流元模型中,如 WPDL,任务间的逻辑关系,如汇合、分支、 同步等,被定义在活动定义中,这样就导致改变逻辑关系时需要修改活动定义。在我们的工作流元模型中,通过在任务间添加连接节点实现这种逻辑关系,实现了控制流与活动定义的分离,从而避免了改变逻辑关系时对活动定义的修改。连接节点和转移共同构成了过程模型中的控制流。
汇合节点(Join Connector)该节点表示业务过程中的汇合关系。汇合节点有多个前驱任务和一个后继任务。汇合节点可以分为与汇合节点AND-joinconnector表示“与”AND逻辑关系,要求所有前驱活动完成后才激活后继活动。或汇合节点OR-joinconnector或汇合节点有一个 OR-Join-End 条件,该条件在每一个前驱活动完成后将被判断,并返回“True”或者“False”。当返回值为“True”时,后继活动被激活。此后,如果仍有某些前驱活动完成,后继活动将不会被再次激活。OR-Join-End 条件可以定义的相当复杂。
分支节点(Split connector)该节点表示业务过程中的分支关系。分支节点有一个前驱任务和多个后继任务.分支节点可以分为:与分支节点AND-splitconnector与分支节点在前驱活动完成后激活所有后继活动.或分支节点OR-splitconnector该节点实现选择性激活后继活动的功能。或分支节点有一个二值条件列表,分别对应其输出转移的条件。当前驱活动完成后,对所有条件进行判断,返回值为“True”的条件所对应的后继活动将被激活。异或分支节点XOR-splitconnector异或分支节点是一种特殊的或分支节点,仅允许一个后继活动被激活。在实现方面,由于判断多个条件的互斥性相当困难,所以如果多个条件返回 “True”,则只有第一个活动被激活。进一步,对于该问题可以采用异常处理的方式解决。
等待节点(Wait connector)等待节点是一类时耗性的模型元素,实现对数据条件满足、时间或时间段到达、事件发生的等待功能。等待节点有一个 Wait-End 条件,该条件将一直被判断直到返回“True”,然后激活后继节点。等待节点可以用于实现不同过程实例间的活动同步功能。考虑到 Wait-End 条件可能永远无法满足,所有最好在该条件中加入一定的时间限制。
3.1.5 子过程(Sub process)
子过程是一种支持层次化过程模型和自顶向下的建模方法的建模元素。子过程定义与过程模型有着很大的相似之处,二者都由一组活动和连接节点 组成,并且都具有一定的事务语义和异常行为。不同的是,一般认为子过程不可以直接实例化,只能嵌入到过程模型中使用。子过程定义了明确的公共接口(输入和输出参数)和公共目标(功能描述),这样子过程可以在不同的过程模型中重用。
3.1.6 模块(Block)
1)      普通模块(Block) 模块的概念与子过程相似,可以认为是不能重用的子过程。模块没有像 子过程一样明确的定义公共接口,而是同活动一样定义输入输出数据属性。
2)      循环模块(Iteration Block) 循环模块用于描述需要顺序执行的多活动实例。在普通模块定义基础 上,循环模块加入了 Repeat-Until 循环条件,以动态决定内部过程的运行次数。循环模块的执行示意如图 2.3。
循环模块的输入输出数据在第一次执行时创建为模块的全局数据,并将被所有的内部模块实例使用。例如,考虑一个文档审批过程,文档初稿作为输入数据,不断的审查、修改最后形成正式文档。在运行时,循环模块创建 一个文档作为全局数据,该文档对于所有的内部模块实例都是可读可修改的, 直到 Repeat-Until 条件判断返回“OK”为止。
3)      并行模块(Parallel Block) 并行模块用于描述需要并行执行的多个相同任务并且执行任务的数量只能在运行时确定。并行模块包含一个 Parallel-End 条件,以确定并行模块 的完成状态,尽管此时可能仍存在尚在运行的内部模块实例。并行模块的执行示意如图。显然,并行模块的输入输出数据应该定义为数据列表。在运行时,内部模块的实例数由输入数据列表的维数确定,输出数据的维数则和实际已完成的内部模块实例数相同。在 Parallel-End 条件中加入并行模块的实际属性将使得其有更强的表达能力。
4)      修改模块(Modification Block) 随着业务环境不断变化的加剧,很难在运行时之前为每个步骤建立确定的模型。过程模型中活动定义和它们之间的关系需要在运行时才能确定。修改模块提供了一种允许用户在建模阶段粗略的描述,而在运行时以工作项的方式通知建模人员具体化任务的机制。建模人员提交修改后,过程实例将从修改模块的开始标记处继续运行。通常,修改仅影响现有实例的运行,在某些情况下,建模人员也可以将修改应用到过程模型中。具体修改方法在后面部分给出介绍。修改模块尤其适用于以下两种环境:试验过程,无法预先确定模型路径,任务间的关系必须动态确定;自学习过程,开始时过程模型为空白,过程模型需要通过反复运行逐步完善。
需求分析
需求分析是软件工程中一个非常重要的环节,其分为以下步骤:需求获取、需求分析、编写规格说明书和需求验证。
1)绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。同时它也明确了通过接口的信息流和物质流。
2)创建开发原型:创建用户接口原型当开发人员或用户不能确定需求时,开发一个用户接口原型,这样使得许多概念和可能发生的事更为直观明了。用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。注意要找出需求文档与原型之间所有的冲突之处。
3)分析可行性:分析需求可行性在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
4)确定需求优先级:确定需求的优先级别应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。
5)为需求建立模型:为需求建立模型需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
6)编写数据字典:创建数据字典数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使用一致的定义和术语。分析和设计工具通常包括数据字典组件。
7)应用质量功能调配:使用质量功能调配质量功能调配是一种高级系统技术,它将产品特性、属性与对客户的重要性联系起来。该技术提供了一种分析方法以明确那些是客户最为关注的特性。
概要设计
1.功能结构设计:
l      使用图形化的方法,设计或修改工作流程,图形化拖拽方式建立工作流模型
l      丰富的过程图形元素,多样的活动类型可适应不同的业务处理需求
l      过程元素定位、拷贝、粘贴、删除操作
l      模型文件统一存放、安全管理
l      模型文件的图形输出
l      扩展wpdl-xml模型文件存储
数据类功能:
l      在模型中定义模型变量、过程变量、活动变量以及工作流相关数据
控制类功能:
l      提供丰富的流程逻辑表达方式(工作流模式),可以表示复杂的流程
l      支持子流程设计
l      支持内置块设计
l      可设定工作流过程时限
l      以表达式方式支持工作流过程的参与者的组合
工具类功能:
l      和表单开发设计工具JBFrm相结合可以轻易的设定每个流程步骤要执行的功能
l          和组织机构建模工具JBOrg相结合,可方便准确地选择每个活动执行的参与者
l      模型的合法性检查
过程建模工具JBMod的功能树见图。
l        文件
①  新建(文件):新建一个工作流模型。
WPDL中的核心部分——元模型元素的定义。正是这些元模型元素才组成了一个完整的工作流模型。在一个工作流模型中可以定义多个过程,它们共享相同的工具与参与者。但是,工作流管理联盟则希望用户为每一个业务过程建立一个包含所有必要过程、相关工具以及工作流参与者在内的工作流模型。(工作流模型数据结构详见数据结构部分,模型文件以“扩展WPDL-XML”文件格式)
②  打开(文件):打开一个保存在本地的工作流模型文件。
③  保存(文件):保存一个工作流模型文件到本地。
④  关闭(文件):关闭一个正在编辑的工作流模型文件。
文件发布给工作流引擎。实现方法可能会是Java Socket编程。客户端给出服务器IP地址,上传到服务器后,服务器一模块负责接收,并把用扩展的WPDL-XML格式存储的文件经转换存入工作流引擎模板数据库中。
l        编辑
①  撤销:撤销上一步动作。
②  重复:重复上一步动作。
③  剪切/复制:剪切/复制过程图形元素
④   粘贴/删除:粘贴/删除过程图形元素
l        过程
①              新建(过程):新建一个过程。
②              打开(过程):打开一个保存在本地的过程。
③              保存(过程):保存一个工作流过程。
④              关闭(过程):关闭一个正在编辑的过程
⑤              属性 (过程):   打开过程属性
2.体系结构设计
JBMod为多文档-视图结构。主要模块及其功能如下:
n      视图:包括组织树视图、过程元素树视图、画图区视图、显示组织信息视图。
n      文档:包括过程文档和组织文档。
n      模型数据对象:用于保存过程模型和组织机构模型的数据对象。
n      模型语法检查:对工作流模型中包含的语法和一致性错误进行检查。
n      文件读取和保存:负责从磁盘读取文件信息到模型数据对象;并将模型数据对象中的信息保存到磁盘文件。
n      工作流模型导入和导出:通过与工作流引擎的接口,将编辑和修改后的工作流模型导出到工作流引擎所在数据库;同时,也可将工作流引擎所在数据库中的工作流模型导入进行编辑和修改。
小结
支持柔性建模和动态修改对于增强工作流管理系统的实用性是非常必要的。本章提出的建模工具的系统分析情况,对工作流元模型,及系统的需求工程,概要设计做了详细的论述,并且提供了很好的模型结构和建模方法。该元模型适用于描述以不断复杂和多变为特征的现代企业业务过程。
设计模式
工作流建模工具JBMod的设计基本上采用MVC(Model-View-Controller)模式。
Model:在独立于外在显示内容和形式的情况下,软件的处理问题逻辑的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系。
View:把表示模型数据及逻辑关系和状态信息以特定的形式展示给用户。它从模型中获得显示信息。
Controller:是处理用户与软件间交互操作的,它的职责是控制提供模型中任何变化的传播,确保用户界面与模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图就有一个控制器。
工作流建模工具JBMod的具体的设计模式见图5。MVC的结构关系见图6。
图5  工作流建模工具JBMod的设计模式
图6  MVC的结构关系
4.2系统数据结构设计
1、模型
在一个工作流模型中可以定义多个过程,它们共享相同的工具与参与者。但是,工作流管理联盟则希望用户为每一个业务过程建立一个包含所有必要过程、相关工具以及工作流参与者在内的工作流模型。工作流模型的定义格式如下,它也给出了整个模型的定义结构。
::=
MODEL
       工作流模型头定义
[]        一致类声明
[]         扩展库声明
[]           外部模型声明
[]  工作流参与者定义
[]           工作流应用表
[]         工作流相关数据表
[]         工作流过程定义
END—MODEL
::=
在工作流模型头定义中包含了该模型一般的说明性信息,比如,所用    WPDL的版本号、模型提供商的id号等,完整的定义格式如下:
::=
WPDL_VERSION
VENDOR
CREATED
[NAME ]
[DESCRIPTION ]
[]
[DOCUMENTATION ]
[PRIORITY_UNIT ]
[COST_UNIT ]
::=
::=
::=
::=
::=
::=
在工作流模型的头定义中,有一部分是可重定义的头信息(redefinable     header),它不仅可以在工作流模型的头定义中出现,而且还可出现在模型中    所包含的任何一个过程的头定义中,其格式如下:
::=
[AUTHOR ]
[VERSION ]
[CHARACTERSET ]
[CODEPAGE ]
[COUNTRY_KEY ]
[RESPONSIBLE ]
[STATUS ]
::=
::=
::=
::=
::=
::= UNDER_REVISION | RELEASED | UNDER_TEST
一致类声明主要用来描述模型中的定义所符合的一致性类型。一致类是工作流管理联盟对所有工作流软件供应商的软件进行鉴定、验收以便确认其是否符合WfMC标准的一种等级分类。由于各家的工作流软件所基于的工作流模型并不一定与工作流管理联盟所定义的元模型完全一致,因此,工作流管理联盟通过设立不同的一致性类型来对不同的软件进行标定。WPDL所定义的一致类声明如下:
::=
CONFORMANCE—CLASS
::=
::=
FULL-BLOCKED    全限制
LOOP-BLOCKED    循环限制
NON-BLOCKED     无限制
NON—BLOCKED对所定义的模型结构无任何限制,包括自环、分支的使用;LOOP—BLOCKED则不允许在模型中出现自环,对于需要循环的活动,只能通过多次执行来实现;FULLBLOCKED则有更严格的限制,除了LOOP—BLOCKED对非自环的要求以外,还要求每一个分支(SPLIT)或者汇合(JOIN)点都要与相应的汇合或者分支点相对应,从而组成一个类似于BEGlN—END的模块。另外,对于“与分支(AND-SPLIT)”不允许设置任何条件,对于“异或分支(XOR-SPLIT)”则不允许有任何未定义的转移结果出现,也就是说,必须要保证有一个后继活动被激活。
2、过程
工作流过程定义构成了工作流模型的主体部分,因为它包含了组成模型的所有活动和转移信息。完整的定义格式如下:
::=
WORKFLOW

[IN_PARAMETERS ]
[OUT_PARAMETERS ]
[]


[]
[]

[]
[]
[]
[]

[]
END_WORKFLOW
::=
[CREATED ]
[NAME ]
[DESCRIPTION ]
[PRIORITY ]
[CLASSIFICATION ]
[