TC-1025_xpdl_2_2005-10-03.doc
日期:
2006-8-10 8:50:13
对一个工作流程进行分析,建模,描述,书写文档的工具五花八门。本流程定义接口定义了一个通用的接口格式,以支持不同工具对流程定
义的可迁移性。
日期:
2006-8-10 8:52:43
本接口也定义了一个开发时与运行时环境的正式分界,即使得某一流程定义工具定义的流程(开发时环境)可以作为许多不同运行时环境
的输入。
页面:
9
日期:
2006-8-10 8:58:04
一个开发时工具(或者是工作流建立时)建立的工作流定义,可以和各种运行时工具交互。这些交互(包括互相传递,或在某一个存储地集
中存取)通过
xpdl
通用接口定义格式实现。
日期:
2006-8-10 9:02:46
这个接口定以一个元数据模型的形式存在。该模型即在一个工作流定义中区别出通用的实体,又有描述这些实体的很多属性。正是基
于此模型,各种工具可以通过一个通用格式传递定义。
日期:
2006-8-10 9:08:01
XPDL
的一个关键点是允许各种处理工具灵活处理信息。
XPDL
可能永远不能支持所有工具的所有附加信息要求。但基于这个有限实体
组成的模型,使得可以支持多种不同的处理方式。
日期:
2006-8-10 9:11:52
XPDL
一个最重要的元素就是它的架构,使得不同工具可以以一个通用的形式描述自己独特的属性。当然,我们欢迎大家将我们遗漏的属
性定义提议给
WFMC
接口
1
工作组,从而可能包含在未来版本中。
日期:
2006-8-10 9:16:23
这份文档就描述了这个元数据模型。
XPDL
语法就是和这些实体,属性相关。对于一个工作流工具而言,关于此模型的应用场景无非是下
面两种:
1
。从依
XPDL
语法写成的文件
*.xpdl
导入流程定义,成为本工组自己的流程定义格式。
2
。把本工具的流程定义格式导出成
*.xpdl
。
日期:
2006-8-10 9:17:02
xsl
样式表可以用来完成这两种操作。
日期:
2006-8-10 9:23:21
这里用的所有关键字和术语都基于
WFMC
属于表,或
BPMN
使用的术语。
日期:
2006-8-10 9:24:08
下一页继续显示页面
9
上的注释
process definition, business process model,
和
workflow model
都是指的所谓元数据模型。
日期:
2006-8-10 9:26:01
任何工具厂商不能自己声明遵循
WFMC
标准,除非
WFMC
通过了严格规范的测试。
日期:
2006-8-10 9:30:24
遵循此规范本质上是遵循
XPDL
语法。但是,
XPDL
也仅仅是描述了有限的元素。所以对于林林总总的工作流工具,很有可能即使遵循了此
规范,也无法实现完全的彼此间的兼容。不管如何,一个声明了遵循该规范的工具,必须产生正
*
确
.x
的
pdl
。
页面:
10
日期:
2006-8-10 15:26:26
一个
XPDL
包对应着
BPMN
的一个
BPD
,由多个流程定义组成。
WFMC
定义一个流程定义为:
一个工作流程的表示,支持自动化处理,比如模型化,或由一个工作流管理系统能激活。流程定义由许多工作实体和他们之间的关系组成,
另外包括标志流程开始结束的标准,每个工作实体本身的相关信息,比如参与者,关
I
联
t
应的用及数据等等。
日期:
2006-8-10 15:20:49
流程定义提供了一个充分描述流程的环境,从而可以用于如下场合:
1
。在流程实例的创建和控制中起到模板作用。
2
。模拟及预测。
3
。监督分析流程实例的基础。
4
。文档化,可视化,知识管理。
日期:
2006-8-10 15:21:57
流程定义可以包含子流程的引用。这些子流程是单独定义的,他们是整个流程定义的一部分。
页面:
11
日期:
2006-8-10 15:24:08
最初的流程定义将包含至少能初始化并支持流程执行的一个对象和属性的集合。其中一些将被所有的这个定义的流程实例继承。
日期:
2006-8-10 15:26:01
WFMC
术语表包含针对一个流程定义的基本概念(工作实体,传递,关联数据和参与者等)的描述和通用术语。
日期:
2006-8-10 15:30:27
本规范使用
XML
机制作为流程定义交换的基础。
XPDL
构造了一个通用的交换标准,这样各个工具可以继续随意使用流程定义的内在形
式,同时又能导入导出一个工业界标准形式。
日期:
2006-8-10 15:35:56
根据不同的应用背景,许多不同的机制可以用来在系统间传递流程定义。不管怎么传递,流程定义本身必须是一个统一的形式,即一些通
用对象的集合,他们之间的关系和属性,等等解释着定义本身内在的概念。
页面:
12
日期:
2006-8-10 15:42:56
元模型描述了在一个流程定义中包含的顶层的实体,之间的关系,属性(包括哪些用来模拟或监督而不是执行的属性)。也定义了一些约
定描述如何把各种流程定义划分为对应的流程模型,如何在多个流程定义,或者流程模型间公用的定义数据。
日期:
2006-8-11 7:58:49
流程模型包含各种实体,范围可能不限于一个流程。具体说,参与者定义,应用程序,相关数据等可以由多个流程来共享引用。元模型采取
一个公用的流程定义存储各种组成流程定义的元素。出于存储本身需要及支持各流程定义快速存取,包的概念被引入。包就是一个存
储各种流程定义的公用元素的容器,用来避免重复定义。
日期:
2006-8-11 8:00:30
包提供了一个容器来存放许多流程定义实体的公用属性(作者,版本,状态,等等)。每一个属于包的流程定义将自动继承包内的属性,除非
他们在自己的定义中重新声明某属性。
日期:
2006-8-11 8:05:19
一个
XPDL
包对应一个
BPMN
的
BPD
。在
pachage
之下,有
4
个元素会被本段落讨论。
1
。
pool(
包括
lanes)
与流程关联。用来布局和定义序列流的参与者。
2
。
message flow
用来代表流程间的交流,这是基于
wsdl
协议的。
3
。
association
和
artifact
用来为流程定义形成文档。他们方便读者读图,但并不影响流程执行。
日期:
2006-8-11 8:07:59
在包里,一些实体的定义是全局的,并且能被包的所有的流程引用。这些实体是:
1
。参与者声明。
2
。应用声明和
3
。相关数据
日期:
2006-8-11 8:12:38
包引用允许使用包内的或该包引用的外包的最顶层实体:
1
。子流程的流程
id
2
。参与者声明
3
。应用声明
4
。类型声明
日期:
2006-8-11 8:25:02
同一个存储地跨不同包的名字和
id
的管理约定是为了方便用户和厂商的全局定义需要。在激活流程的过程中是按如下顺序寻找对应名
字。
1
。流程
id-
首先是同一个模型内,然后是引用的外部模型。
2
。应用
/
参与者
--
同样。
下一页继续显示页面
12
上的注释
页面:
13
日期:
2006-8-11 8:29:42
相关数据的命名在一个包内必须唯一。本版本的规范要求在流程间作为参数传递相关数据时需采用拷贝策略。流程设计者,管理者负
责保证在流程定义
/
模型中一致的名字
/
类型对的使用。这样以支持子流程操作。
日期:
2006-8-11 8:35:42
多个流程定义对应一个模型定义。包作为一个容器,划分了许多流程定义,包含了许多关联的实体数据,而这些数据可以被这些流程定义
共享引用。(因此定义一次就足够了)
日期:
2006-8-11 8:40:11
包的元模型给出了流程模型的交换存储所涉及的实体和属性。它给出了这样的规则,一个流程关于参与者,应用,相关数据等的实体数据,
是可以继承自包内,而非在每个流程定义中。
页面:
14
日期:
2006-8-11 8:41:35
包定义允许声明许多应用于各个流程定义的公用属性数据。这些属性可以在流程定义中被忽略。(覆写)
日期:
2006-8-11 8:50:34
流程定义的导入导出接口是定为和流程或者说工作流管理系统关联的,某种形式存在的,一个定义的存储地的交互。接口的实现即是把
xpdl
文件从这个存储地迁移出,或迁移进。这个接口允许流程粒度或包粒度的迁进迁出。
日期:
2006-8-11 8:53:51
内部接口那可就具体某工具说了算,和本规范无关了。但要求分离存储地的静态和动态使用。
日期:
2006-8-11 8:57:56
内部的存储结构不属于
WFMC
标准的部分。包的使用只是为了简化可重用数据的导入导出。一个简单的存储结构可以这样实现,当导入
一个流程定义时,共享数据可以从对应包中复制到该定义中去。
日期:
2006-8-11 9:10:03
关于覆写的可能性就要求了
XPDL
结构的范围和继承性。
1
。相关数据
流程相关数据的范围是直接外包的元模型的元素,不能嵌套。
2
。属性
直接外包并可以嵌套,在低层可以覆写。
3
。参与者和应用
同
2
。所有的相关数据和扩充属性必须在他们被使用的范围内定义,至少在同一个包内。
日期:
2006-8-11 9:12:55
对于外部包又引用外部包元素,则机制起于根包。这样避免外包来负责在不知情的情况下避免冲突。
日期:
2006-8-11 9:15:05
外包机制给设计者和管理者以及大的灵活性。可以分离组织描述和流程描述到各自的模型,也可以改变一个流程描述而不影响其它
的。
页面:
15
日期:
2006-8-11 9:16:41
原模型明确了流程定义交换的基本实体和属性。对于一个流程定义,下面的实体必须被定义。他们或者在流程定义本身,或者继承自包
定义。
日期:
2006-8-11 9:18:38
这些实体包含了对一个流程的通用描述方式的属性。下面详细讨论。
日期:
2006-8-11 9:20:48
XPDL
流程或说工作流对应
BPMN
流程。在流程级,有
2
个新元素:
assignment
和
category
;下面讨论。
assignment
允许在流程执行中给数据
区赋值。
category
用来报告分析运行的流程但不影响如何运行。
页面:
16
日期:
2006-8-11 9:21:44
为了能够流程定义兼容,下面是元模型定义的一些基本实体。
日期:
2006-8-11 9:50:41
swimlanes
用来方便图形化流程的划分,也可以在流程粒度上指派参与者信息,并可以在活动粒度上指派执行者信息
sw
。
imlanes
结构由
一些不重叠的矩形来描述,这些矩形称为
pool
,每个
pool
可以被细分为许多
lane.
日期:
2006-8-11 9:52:49
一个
pool
是
flow object(activity)
和
sequence flow(transition)
的容器。
sequence flow
可以跨越
同一个
pool
的
lane
,但不能跨越
pool
。
message flow
用来传递
pool
之间的信息。
日期:
2006-8-11 9:55:45
pool
的一个方面是在其中是否有
activity
被详细描述。一个完全描述的是
white box,
相反是
black box
。在
black box
中没有
sequence
flow
,但可以存在
message flow
。
日期:
2006-8-11 9:57:00
图的每一页为一个独立的
'background pool'
。没有精确声明的
activity,sequence flow
都在这个
pool
中。
日期:
2006-8-11 9:58:36
用来划分
Pool
。
lane
的属性可以被其中的
activity
继承。因此一般的用法就是给一个
role name
,然后
activity
都继承,从而实现参与者或执
行者表达。
日期:
2006-8-11 10:01:57
流程定义实体为流程内的实体提供了上下文信息。他是流程本身的容器,提供了了管理信息,或在流程执行期的一些信息(初始化参数,执
行优先级,检查时间限制,通知人,模拟信息等)。
日期:
2006-8-11 10:06:00
一个流程定义有
1
个或多个活动组成,每一个是一个逻辑的自包含的工作环节。一个活动代表被一些资源或计算机应用程序执行的工
作。它关联着一些可选信息,比如是否有流程管理系统自动开始或结束,或相对争夺同一资源的其它活动的优先级。也可以使用某具体
的相关数据区。范围相对对应的流程定义。
日期:
2006-8-11 10:07:49
下一页继续显示页面
16
上的注释
除了可以有一个明确声明的应用程序实现,也可以有
BPMN
的
task
之一实现。多数关联
B2B
管理。
7.6.5
.3
中描述具体细节。
日期:
2006-8-11 10:10:58
一个活动可以是一个子流程
---
这种情况下它是一个流程定义执行的容器(该流程可能由同一个服务内执行,或一个远端服务)。而这个子
流程可以包含自己的元素。借用输入输出参数可以实现被调用流程和调用流程间的数据交流。这样的定义等价于
BPMN
的独立子流
程。
页面:
17
日期:
2006-8-11 10:12:45
一个活动可以是一些活动或一些序列活动。这些都会共享本流程的命名空间。这个定价于
BPMN
的嵌入子流程。
日期:
2006-8-11 10:14:17
一个活动可以是一个通道。它不做具体工作处理,而只是为
transition
座路由。等价于
BPMN
的
gateway
。
日期:
2006-8-11 10:16:38
最后,一个活动可以是一个
BPMN
的
event
。一个
event
是在流程执行过程中发生的某件东西。他们影响流程的执行,通常由一个触发和影
响。有
3
种
event
:
start,intermediate,end
。
7.6.4
详细描述。
日期:
2006-8-11 11:07:17
活动通过流控制彼此联系。每一个
transition
有
3
个基本属性,来源,目的,过渡条件。从
a
一
ct
个
ivity
到另一个的
transition
可以使有条件判
断也可以没有。
tranisition
构成了流程内
activity
的顺序执行或并序执行。分叉合并的信息在对应得
activity
中定义,分叉在来源
activity
中
以活动后信息格式处理,合并则在目的
activity
中以活动前信息格式处理。这样使得流程的同步或异步控制在对应活动本身得到管理,从
而使得
transition
保持简化。
transition
的范围限定在对应流程定义本身。
日期:
2006-8-11 11:11:10
更复杂的
transition
,也许不能用这种方式表达,那么可以
ro
用
ute activity
来表达。这个
activity
就是一个界于真实
activity
的步骤。使用这
两种方式可以处理任何情况。由于产业界已经存在几个不同的处理方式,几个兼容分类在
xpdl
中定义出来。后续章节将详细讨论。
日期:
2006-8-11 11:14:34
描述了可以作为流程中某活动执行者的资源。这些用来执行某具体活动的资源作为该活动的某属性描述,即参与者赋值。当然,并不一
定是某个人,可能是某些人的集合,或某些机器资源。元模型给出了几个简单的资源类型。
日期:
2006-8-11 11:20:23
描述了
IT
应用,这些应用在每一个活动处理时可能被相关服务调用,或完全自动处理,并且由活动的应用属性标志。这些应用可能是某些
通用的工具,具体的部门或企业服务,或工作流管理系统框架本身的某过程调用。应用定义反映了在引擎和应用之间的接口或传递参
数。
日期:
2006-8-11 11:23:12
为了满足额外的模型概念,即不是基本流程元素的部分
B
,
PMN
提供了
artifact
和
association
来关联流程元素。因此,
artifact
不影响基本的
序列流或消息流,也不影响执行语言。
日期:
2006-8-11 11:25:25
下一页继续显示页面
17
上的注释
在这点上,
BPMN
提供了
3
个标准的
artifact:data object,group,annotation
。后期版本可能增加更多类型。一个建模者或建模工具可以使
用新
artifact
类型扩展
BPD
,但任何的
artifact
都必须遵循序列流和消息流。
页面:
18
日期:
2006-8-11 11:27:38
消息流用来描述两个流程
/
参与者之间的消息传递。在
BPMN
,
2
个独立的
pool
代表两个参与者
/
流程。所有的小溪流必须连接两个
pool
。
可以连接
pool
的边界或
pool
内的元素。但不能在同一个
pool
内连接。
日期:
2006-8-11 11:29:45
一个
association
用来对流对象关联信息或
artifact
。文本的或图形的非流对象可以和流对象或流本身关联。一个关联也用来显示补充一
个
activity
的
activity
们。
日期:
2006-8-11 11:34:45
一个关联并没有对某一个执行语言的映射声明。他们关联的对象提供了
bpd
图的附加信息给读者,但并不直接影响流程执行。
日期:
2006-8-11 12:25:19
这里定义了在流程执行期间创建和使用的数据。流程中的活动或应用可以使用这些数据,也可以在活动间或
transition
的表达式间传递
持久化数据或中间结果。数据区关联着特定的类型。
XPDL
包含了基本的和复杂的数据类型定义。活动,应用,过渡条件等都可以引用数
据区。
日期:
2006-8-11 12:28:08
元模型设定了很多标准数据类型;这些是对应数据区的,系统或环境变量,或参与者数据。表达式可以使用这些类型来支持条件估算,并可
以给数据区赋予新值。数据类型可以用
xml schema
或外部资源数据引用来扩展。
日期:
2006-8-11 12:30:46
这些数据由流程管理系统货本地系统环境维护,但可以由流程或活动访问,这可能出现在条件表达式的判断或相关数据区的赋值时。
日期:
2006-8-11 12:33:44
资源存储负责参与者可以使人,程序,或机器的情况。更复杂的情况,参与者声明可以引用一个资源存储地,而这个存储地可能是组织结构
模型。注意本规范并没有定义或要求一个资源存储。
日期:
2006-8-11 12:36:34
虽然元模型和关联的
XPDL
包含了很可能在流程定义交换期间需要的构造组成,但是在某种情况下仍然需要对一个流程定义追加附加信
息。建议用户和厂商尽可能使用标准的元素,但是
XPDL
仍然提供一个标准扩展方式来追加扩展元素。
页面:
19
日期:
2006-8-11 12:39:28
主要扩展途径是通过使用扩展属性。扩展属性是用户和厂商定义的元素的特征描述。
XPDL
模式支持对所有
XPDL
元素的命名空间的扩
展。
XPDL
元素可以被扩展子元素,新属性。
日期:
2006-8-11 12:43:41
在本规范中并没有声明具体如何编码和传递参数数据。而在使用接口
4
的远端子流程激活时,参数传递确实使用具体的交互操作的上下
文明确定义。任何局部的定义,都是厂商基于自己产品的,与本规范无关。
页面:
20
日期:
2006-8-11 13:56:57
图形信息是可选的,工具各自决定的。可能在每个
XPDL
元素出现多次,这取决于对
XPDL
文件追加图形信息的工具个数。每一个工具,以
TOOLID
区别,可以追加自己的图形信息。因此,每一个工具可以以不同的形式展现相同
X
的
PDL
。
__