XPDL学习与分享 一

原创 2004年09月03日 10:06:00

最近从事工作流引擎的设计与开发工作,准备在学习标准入手,从而更深入的了解工作流。俗话说“教学相长”,希望一起讨论,一起成长。如果文中有错误或者版权问题,请指出,谢谢! XPDL是xml工作流定义语言,使wfmc制定的一个国际标准,期望建立一个统一的标准,并且通过此标准,能够让不同的流程引擎能够相互交户。 wfmc工作流定义的元模型如下图: 图中的方框,我们称之为实体(entity),其中Activity这里翻译为活动,Participant翻译为参与者,relevant data翻译为关联数据。

1.1. XPDL实体概述数据模型呈现了工作流定义中的最基本的组成实体,下面逐个对每个实体简单介绍一下:

1.1.1. 工作流定义工作流定义为工作流中其他实体提供了上下文描述,包含自身信息,流程制定人和管理者的信息,或者是流程运行时需要用的数据,比如说初始化参数、流程限制时间、检查点、需要通知的人等。

1.1.2. 工作流活动(Activity)工作流是由一个或多个活动组成的,每个活动都是由一个有逻辑的、自包含的工作组成。活动体现为工作,工作可以是参与者参与的,也可以是计算机的应用程序。其他的可选的信息包含活动是否由流程管理系统自动开始或者结束,活动相对于同一个流程中其他活动的对资源的优先级,活动也可以指定流程中特殊的关联数据,也可以指定为一个子流程。一个活动可以包含子流程,子流程可以是同一个流程引擎解析,也可以是远程调用其他流程引擎解析。子流程定义清楚了该子流程包含的活动、trasition、参与者等信息。子流程成中的关联数据可以作为子流程输入和输出。活动可以包含一个活动块,这个活动块执行一组活动,活动和活动之间有Transition,这些活动与transition共用相同的命名空间。

1.1.3. Transition信息活动与活动之间通过Transition连接的。一个Transition有三部分组成,起始活动(From-Activity)、终止活动(To-Activity)以及转换条件(Condition),连接活动与活动之间的Transition可以通过条件判断是否允许通过。Transition能连接串行的或者并行的活动。Transition的连接类型有split和join两种。Split是指由活动分出去的类型,Join是连接到活动的类型。

1.1.4. 工作流参与者定义参与者定义了各个关卡的执行者,参与者可以为预先定义好的人、也可以为计算机的应用程序或者是计算机设备。参与者为人时,不一定是一个人,也可以为一组人。

1.1.5. 资源库资源库使得参与者能够为人、设备或者是应用程序,经典的资源库就是组织模型。

1.1.6. 工作流应用程序定义工作流应用程序定义的是一个工作流程、或者活动能调用的应用程序或者是接口。这些应用程序可能是设备、企业中其他应用程序或者是接口。工作流应用程序定义指的是连接工作流引擎的应用程序或者接口,其中包含需要传递的参数。

1.1.7. 工作流关联数据流程执行过程中流程实例产生或者用到的数据,这些数据可能作用于运行过程中的活动,也可能是用于显示的数据,也可能是用于决定活动与活动之间Transition中条件的数据,也可能是用户获取参与人的数据。XPDL定义了基础或者复杂类型的关联数据,活动、应用程序、Transition中的条件会引用这些数据。

1.1.8. 系统与环境数据系统与环境数据是通过工作流管理系统或者本地系统维护的,这些数据可以被活动访问到,也会用户Transition中条件的判断。

1.1.9. 数据类型和表达式工作流模型定义了一组数据类型,比如字符型、引用型、整型、浮点型、日期型等,这些类型将会用于定义关联数据、环境数据以及参与者数据。通过这些类型的数据,Transition中的条件能执行表达式。数据类型能通过xml或者扩展资源扩展。

1.1.10. 流程与包上图所示,流程由各种各样的实体组成,通常情况下,参与者、关联数据经常会被多个流程引用到。数据模型呈现了关联工作流管理系统的,控制组成流程的各种类型实体的流程定义的库的用处。包就是一个容器,包含了一些公共属性,比如作者、版本、状态等。包中的每个流程定义都可以继承这些公共属性,如果他们自己定义了,则不再继承。包中会定义一些全局的实体,以便其他流程可以引用,这些实体一般为: n 工作流参与者 n 工作流应用程序定义 n 工作流关联数据定义 包允许引用包内部定义的实体,也可以引用其他包定义的东西,比如: n 其他包中的流程id作为子流程 n 工作流参与者定义

XML编程

-
  • 1970年01月01日 08:00

BPMN这点事-那段悲催的历史(下)XPDL、BPEL和BPDM之间的恩怨们

BPMN被BPMS厂商们大量采用,他们使用它来进行流程的建模,至于模型的执行和存储,则由他们各自不同的流程执行语言实现。时至今日,BPMN1.x被大多数的建模工具和BPMS厂商所支持,他们关心的是建模...
  • ronghao100
  • ronghao100
  • 2011-07-19 15:57:15
  • 16012

XML学习基础(一)

一、XML入门简介XML可以用来描述数据,重点是‘数据是什么’。 HTML则是用来显示数据,重点是‘如何显示数据’。什么是XML?XML是EXtensible Markup Language的缩写 ...
  • on_road
  • on_road
  • 2006-10-29 09:33:00
  • 485

问题一:使用ACCESS与SQL有何区别

  有时用参数是时,总是出现ACCESS中参数不正确,因为我使用时一般使用SQL格式的,所以总是出现错误,不知道该如何解决>...
  • liaojingchao
  • liaojingchao
  • 2005-04-17 16:29:00
  • 1492

建模贴吧淘的东西,大神颇多

建模和编程的本质区别是什么 来自: 黄毅(程序猿) 2011-06-02 15:19:20 看了楼主的博文,发现这是一个我不熟悉的领域,感谢组长让我学到新东西。  关于这个问题没怎...
  • a519781181
  • a519781181
  • 2016-09-10 00:34:04
  • 362

过程组件模型:下一代工作流?

BPM族人来自金星,WS族人来自于火星  这准确道出了BPM行业中或许并不明显的巨大分歧。“BPM族人”是指那些专注过程建模的人。他们的出发点在于分析那些描述组织内人和系统协作方式的过程。在建模者眼中...
  • turkeyzhou
  • turkeyzhou
  • 2009-10-12 11:51:00
  • 933

开源工作流引擎Shark入门3——与业务系统结合的一个demo

    在本系列第一篇文章介绍的基础上,开发一个简单的工作流应用系统,以第二篇文章介绍的请假流程为例。     把第二篇文章中做的mydemo.xpdl复制到应用的repository/externa...
  • tsun7263
  • tsun7263
  • 2009-09-03 15:05:00
  • 2399

开源工作流引擎Shark入门1——安装与配置

    Enhydra Shark是一个开源的工作流引擎框架,使用Java进行开发,遵守LGPL协议。Shark遵守WfMC、OMG规范,以XPDL(XML Process Definition La...
  • tsun7263
  • tsun7263
  • 2009-09-02 17:32:00
  • 3863

XPDL学习与分享 二 XPDL整体结构

XPDL学习与分享 二 ----XPDL整体结构XPDL中包(Package)的定义是将多个用到同样的participant,或者其他tools的流程定义成一个包,其结构如下图:id ???--?唯一...
  • vagrom_doggie
  • vagrom_doggie
  • 2004-09-08 17:15:00
  • 1146

shark工作流的学习--sharkAPI文件夹

shark是一个用来解析XPDL的工作流引擎研究shark工作流首先下载它的源码,先来介绍一下它的sharkAPI文件夹下的client和internal。client中wfbase是表示错误和用来做...
  • xly1981
  • xly1981
  • 2007-05-31 16:16:00
  • 725
收藏助手
不良信息举报
您举报文章:XPDL学习与分享 一
举报原因:
原因补充:

(最多只允许输入30个字)