工作流联盟WfMC规范.doc
- 文档编号:7394065
- 上传时间:2023-05-11
- 格式:DOC
- 页数:58
- 大小:733KB
工作流联盟WfMC规范.doc
《工作流联盟WfMC规范.doc》由会员分享,可在线阅读,更多相关《工作流联盟WfMC规范.doc(58页珍藏版)》请在冰点文库上搜索。
WfMC-XPDL文档,赵贵根翻译
工作流管理联盟规范
工作流管理联盟工作流标准
工作流过程定义接口
――XML过程定义语言
文档号:
WFMC-TC-1025
文档状态:
草案1.0(b)
2002.07.31
Version1.0(b)
版权Ó2002工作流管理联盟
Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmittedinanyformorbyanymeans,electronic,mechanical,photocopying,recordingorotherwise,withoutthepriorwrittenpermissionoftheWorkflowManagementCoalitionexceptthatreproduction,storageortransmissionwithoutpermissionispermittedifallcopiesofthepublication(orportionsthereof)producedtherebycontainanoticethattheWorkflowManagementCoalitionanditsmembersaretheownersofthecopyrighttherein.
WorkflowManagementCoalition
2436N.FederalHighway#374
LighthousePoint,Fl33064
USA
Tel:
+19547823376
Fax:
+19547826365
Email:
wfmc@wfmc.org
WWW:
http:
//www.wfmc.org
目录
工作流管理联盟工作流标准 1
工作流过程定义接口 1
――XML过程定义语言 1
1.历史 7
2.读者 8
3.目的 8
4.介绍 8
4.1.一致性 9
4.2.参考资料 9
5.过程定义交换概述 9
5.1.过程定义交换方法 10
图5-1:
流程定义交换的概念 10
6.元模型 11
图6-1:
元模型顶层实体 11
6.1.实体概述 11
6.1.1.工作流过程定义 11
6.1.2.工作流过程任务(活动、步骤) 11
6.1.4.工作流参与者说明 12
6.1.5.资源库 12
6.1.6.工作流应用说明 12
6.1.7.工作流相关数据 12
6.1.8.系统及环境数据 12
6.1.9.数据类型与表达式 12
6.2.流程和包 13
6.3.过程元模型 13
图6-3:
工作流过程定义元模型 14
6.4.包元模型 14
图6-5:
包定义元模型 14
6.4.1.过程仓库 15
6.4.1.1.重新定义及其范围 15
6.5.元素概览 15
表6-1:
元素概览 16
6.5.1.开发商或用户特殊的扩展 17
6.5.1.1.扩展属性 17
6.5.1.2.扩展的参数映射 17
7.XML过程定义语言(XPDL) 17
7.1.多实体的公共元素 17
7.1.1.扩展属性 17
表7-1:
扩展属性—属性 17
7.1.2.形式化参数 18
表7-3:
形式化参数—属性 18
7.1.2.1.参数传递语义 18
7.1.2.2.同步语义 19
7.1.2.3.形式化实参映射 19
7.1.3.外部引用 19
表7-5:
外部引用――属性 19
7.1.3.1.WebServices 20
7.2.包定义 20
表7-7:
包定义—属性 21
7.2.1.包头定义 21
表7-9:
包定义头—属性 22
7.2.2.可重新定义头(RedefinableHeader) 22
表7-11:
可重定义的头–属性 23
7.2.3.适应类型声明(ConformanceClassDeclaration) 23
7.2.4.脚本 23
表7-15:
脚本–属性 24
7.2.5.外部包引用 24
表7-16:
外部包引用–属性 24
7.3.工作流应用声明 25
表7-18:
工作流应用声明–属性 25
7.3.1.调用参数 25
7.4.工作流过程定义 26
表7-20:
工作流过程定义—属性 27
7.4.1.工作流过程定义头 27
表7-22:
工作流过程定义头–属性 29
7.4.2.工作流过程可重定义头 29
表7-24:
工作流过程可重定义头—属性 30
7.4.3.任务组(集) 30
表7-26:
任务组 30
7.5.工作流过程任务 31
表7-2:
实体类型与不同任务类型间关系 31
Figure7-1:
任务结构及转移条件 32
表7-29:
过程任务—属性 34
7.5.1.路由任务 34
7.5.2.块任务 34
7.5.3.执行控制属性 34
表7-31:
执行控制—属性 35
7.5.4.实现选择(ImplementationAlternatives) 35
表7-33:
执行选定—属性 36
7.5.4.1.无实现(NoImplementation) 36
7.5.4.2.工具(Tool) 36
表7-35:
Tool—属性 37
7.5.4.3.子流程(subflow) 37
表7-37:
子流程—属性 37
7.5.5.执行者的关系 37
7.5.6.截止期限(最终期限) 38
表7-3:
截止期限 39
7.5.7.仿真信息 39
表7-4:
仿真信息—属性 40
7.5.8.转移约束(限制) 41
表7-42:
转移约束—属性 41
7.5.8.1.接合(Join) 41
表7-4:
接合—属性 41
7.5.8.2.分叉 42
表7-4:
分叉--属性 42
7.5.9.适应性类型(ConformanceClasses) 43
7.6.转移信息 43
表7-49:
转移信息—属性 44
7.6.1.条件 44
表7-51:
条件—属性 45
7.6.1.1.异常条件 45
7.7.工作流参与者 46
表7-53:
工作流参与者—属性 46
7.7.1.参与者实体类型 46
表7-55:
参与者实体类型—属性 47
7.8.工作流相关数据 47
表7-57:
工作流相关数据—属性 48
7.9.数据类型 48
表7-59:
标准数据类型 49
7.9.1.基本数据类型 49
表7-61:
基本数据类型—属性 50
7.9.2.复杂数据类型 50
7.9.2.1.SchemaType 50
7.9.2.2.记录类型(RecordType) 51
表7-63:
记录类型–属性 51
7.9.2.3.联合类型(UnionType) 51
表7-65:
联合类型 51
7.9.2.4.枚举类型 51
表7-67:
枚举类型—属性 52
7.9.2.5.数组类型(ArrayType) 52
表7-69:
数组类型—属性 52
7.9.2.6.列表类型(ListType) 52
表7-71:
列表类型—属性 52
7.9.3.声明的数据类型(DeclaredDataTypes) 53
7.9.3.1.类型声明(TypeDeclaration) 53
表7-73:
类型声明 53
7.9.3.2.声明的类型(DeclaredType) 54
表7-7438:
声明的数据类型–属性 54
8.样本工作流(SAMPLEWORKFLOW) 54
8.1.过程(TheProcesses) 54
8.1.1.EOrder主流程(TheEOrderMainProcess) 54
图8-1:
EOrder主流程 55
8.1.2.CreditCheck子流程 55
图8-2:
信用校验子流程(CreditCheckSubprocess) 55
8.1.3.FillOrder子流程(TheFillOrderSubprocess) 55
图8-:
FillOrder子流程 56
8.2.类型声明(TypeDeclarations) 56
8.3.扩展属性(ExtendedAttributes) 58
8.4.外部引用(ExternalReferences) 59
8.5.样本XPDL(SampleXPDL) 59
1.历史
版本0.10–编者:
RobertaNorin(robertan@)、Contributors:
SethOsher(IntuitiveProductsInternationalCorp.)及RobertShapiro(CapeVisions).
l从模式中去除InlineBlock和BlockName元素。
从规范中去除BlockName元素。
l在模式和规范中增加ActivitySets和BlockActivity元素。
l在模式中去除任务的maxOccurs属性。
l在模及规范中增加Deadline元素。
l将Deadline加入工作流示例中。
l以UML图表置换参照元模型。
l在XPDL中增加WEBService定义描述的章节。
版本0.09–编者:
RobertaNorin(robertan@)
l增加第8章-工作流示例。
版本0.08–编者:
RobertaNorin(robertan@)投稿人:
MikeGilger(Identitech)
l从WorkflowProcess中去除DataTypes。
l在BasicType中增加BOOLEAN和PERFORMER。
l从模式中去除PlainType元素。
l从DataTypes中去除PlainType参照。
l增加Script元素。
l在Package中增加Script元素参照。
lRemovedleftoverreferencestoLOOPinConformanceclassandtransitiondiscussions.
l在7.6.1节完善条件表。
l在7.6节增加对loops的讨论。
版本0.07–编者:
RobertaNorin(robertan@)
l重新确定DataTypes元素(whichwasnotbeingused)为xsd:
group,包含所有数据类型的引用;无论何处,重复的数据类型列表都引用该组。
l校订DataTypes章节强调用SchemaType定义复杂数据,阐明TypeDeclarations的效用,利用DataTypes组进行简化。
l将SchemaType的讨论移入“复杂数据”类中。
版本0.06–编者:
RobertaNorin(robertan@)
l在WorkflowProcess中增加AccessLevel属性;
l在Participant中增加ExternalReference属性;
l从WorkflowActivity/Implementation中去除Loop实现;
l去除Loop元素;
l从Transition中去除Loop属性;
l从图7.1中去除Loop任务;
l在模式设计中增加TargetNamespace(.xsd)。
在引用XPDL元素时使用xpdl命名空间前缀;
l在所有数据类型列表中增加SchemaType和ExternalReference;
l重新安排所有数据类型的排列顺序,所以原有复杂类型的声明在选择列表的最后;
l去除WorkflowProcessActivity下关于参数的多余讨论,转入7.1.2节形式参数中;
l补上了第7章表中遗漏的文字。
版本0.04–编者:
MikeMarin(mmarin@)和RobertaNorin(rnorin@)
l合并修正五月份WfMC会议的讨论结果;
l本版本中用XMLSchema代替DTD来描述XPDL;
l增加外部引用(ExternalReferences),提供一种和WEBService(WSDL)及其它外部定义交互的方法;
l增加模式类型(SchemeTypes),以便利用XML的schema定义复杂类型;
l在路径中引入“异常”概念。
版本0.02/0.03–编者:
MikeMarin(mmarin@)
l在2001年5月3-4日纽约会议期间,基于工作组的研究作改变。
本版本从RobertaNorin(APEngines)、RobertShapiro(CapeVisions)以及纽约会议期间所有其他工作组的参与者那里引入重要的内容。
版本0.01–编者:
MikeMarin(mmarin@)
l初始版本。
2.读者
本文档的预期读者是主要致力于工作流管理联盟(WfMC)的“XML过程定义语言(XPDL)”实现的开发组织,那些致力于评价自己产品适应性的开发商可能也有兴趣。
解释权归工作流联盟(WfMC)所有。
3.目的
作为其标准化计划的一部分,WfMC已确定了5个工作流服务的功能接口。
本规范形成了和“接口一”相关的文档部分-支持“过程定义输入和输出。
该接口包含一个用于描述过程定义的公共元模型(本规范)和一个用于过程定义交换的XML模式(schema)。
4.介绍
许多不同的工具可用于业务过程的分析、建模、描述及建档。
工作流过程定义接口定义了一个公用的交换格式,它支持不同产品工作流过程定义之间的转换。
该接口也定义了开发和运行环境之间的形式区分,使得由一种建模工具产生的过程定义,可以作为许多不同工作流运行产品的输入。
由一个构造工具生成的工作流过程定义,能被不同的工作流运行产品解释。
过程定义在产品之间转换,或者存储在一个分离的资源库中,通过公用的交换格式访问。
提供一种描述及访问已建立的工作流定义和工作流过程元数据模型的公共方法。
该元数据模型确定过程定义中共同使用的实体(entities)。
许多属性描述该有限实体集的特征。
基于该元数据模型,开发者的特定的工具能借助公共交换格式转换模型。
XPDL的关键基础之一是其用于各种工具处理信息的扩展性。
XPDL可能从不支持各种工具要求的额外信息。
基于工作流过程定义中描述的有限数量的实体(“最小元模型”),XPDL支持许多不同的方法。
XPDL最重要的基础之一是在公共表示方法中使用的支持开发商特殊属性的一般结构。
有关缺少的属性将提议WfMC接口一工作组在未来的版本中加入。
本文档描述了用于定义过程定义内所含的对象及其属性的元模型,XPDL语法直接和这些对象及其属性相关。
这方面需要开发商提供两个操作:
l从XPDL输入工作流定义。
l从开发商的内部表示法输出为XPDL。
开发者可用一XSL格式单实现这两个操作。
规范中所用的关键词和术语都源自WfMC的术语表。
在本文档中,术语流程定义、业务流程模型和工作流模型均表示同一概念,因此它们可交互使用。
4.1.一致性
开发商不能声称符合本规范或其它任何规范,除非取得WfMC的明确授权。
对于那些通过WfMC制订的可用性测试规程鉴定的、开发商关于公布规范的实现,WfMC仅承认这些许可。
流程定义输入/输出的适应性本质上基于和XPDL语法的一致性。
然而,存在一个XPDL必须支持的强制最小对象集,如本文档中所定义。
但是,给于建模工具宽广的适应能力,是假设个别工具符合规范,却不能和其它符合规范的产品交换全部定义。
一个符合规范的产品必须生成有效的、语法正确的XPDL,且能读取所有有效的XPDL。
4.2.参考资料
下列是和本文档相关的文档,应作为参考资料。
综合背景资料:
WfMC名称术语(WfMC-TC-1011)
WfMC参考模型(WfMC-TC-1003)
WfMCAPI规范,含如下过程定义操作API:
WfMC客户端应用API规范(WAPI)(WfMC-TC-1009)
WfMC过程定义交换–过程模型(WfMC-TC-1016-P)
工作流过程协同工作能力,用于支持远程工作流服务的过程调用:
工作流协同工作能力–抽象规范(WfMC-TC-1012)
协同工作能力-InternetE-mailMIME绑定(WfMC-TC-1018)
辅助文档:
资源模型(机构模型:
WfMCTC-1016-O)
5.过程定义交换概述
过程定义的定义如下:
是一个业务过程支持自动化操作的形式化表现,诸如一个工作流管理系统所进行的模型建立、规则制订。
过程定义由任务网络及其关系,过程开始和终止的条件,任务资源,诸如参与者、相关的IT应用及数据等组成(WfMC术语-WfMCTC-1011)。
过程定义提供一个关于过程的丰富描述环境,可作如下用途:
l在制订流程期间作为创建流程和流程实例控制的模板。
l用于仿真和预测。
l作为流程监控和分析的基础。
l用于建立文档,形象化和知识管理。
流程定义可包含作为整个流程组成部分的独立子流程的引用。
初始流程定义将至少包含流程初始化和支撑流程运行的必须的最小对象和属性集。
某些对象和属性将被创建的流程实例所继承。
在WfMC术语表中的流程定义,同样包含关于流程的描述、公共名词、流程定义中具体的基本概念(诸如任务,工作流相关数据及参与者等)。
5.1.过程定义交换方法
本规范以XML作为流程定义交换的机制。
XPDL成为公共交换标准,使得产品继续支持任意的内部流程定义表示方法,通过import/export功能穿过产品边界映射到标准或从标准映射。
多种不同的机制可用于依据业务情况在系统之间转换流程定义数据。
在各种情况下,流程定义必须被表示为一致的形式――由表示其基本概念的公共对象集,关系和属性导出。
过程定义交换的原理以图5-1表明:
流程定义交换的概念。
图5-1:
流程定义交换的概念
6.元模型
元模型描述过程定义中包含的顶层实体,它们的关系及其属性(含有一些用于仿真和监控而非流程制定的关系及属性);也定义了各种各样与过程模型相关的分组过程约定,以及跨各种不同过程定义或模型的公共定义数据的使用。
顶层实体如下图所示:
图6-1:
元模型顶层实体
上述每一实体,都有一描述其特征的相关的属性集。
后续章节将更详细的叙述这些实体及其属性。
6.1.实体概述
元模型确定用于过程定义交换的基本实体集。
顶层实体如下所述:
6.1.1.工作流过程定义
过程定义实体提供流程内用于其它实体的上下文信息。
它是流程自身及其提供管理相关信息(创建日期、作者等),以及流程运行期间有关信息(初始参数、执行的优先级、校验的时限,通报的人、仿真信息等)的容器。
6.1.2.工作流过程任务(活动、步骤)
过程定义由一个或多个任务组成,每个任务是流程内一个独立的逻辑工作单元。
一个任务表示由一个资源组合处理的操作(由参与的任务指定)与/或计算机应用(由参与的应用指定)。
其它可选信息与任务有关,诸如由工作流管理系统自动地确定的关于是否启动/完成的信息,或相对于其它任务竞争资源的优先级,亦或系统服务的发生等,也可以定义工作流任务相关数据的特定用法。
对于确定的流程定义,任务的范围是局部的(即使是下述的关于子流程任务的描述)。
任务可以是一子流程――既然如此,对于一个(独立定义的)流程定义的执行,它是一个容器,该独立流程可能在同一工作流服务内本地运行,或(可能使用过程协作接口)是一个远程服务。
子流程内的过程定义包含其自身的任务、内部转移(迁移,连接)资源及应用分配(尽管这些可从公共资源继承)定义。
In-和out-参数允许调用和被调用流程间交换必要的工作流相关数据。
任务可以是一Block任务――任务集合,或者任务及转移的映射。
任务集内的任务和转移和所属流程共享命名空间。
最后,虚拟任务是一骨架任务,它的完成没有操作处理(因之无相关资源或应用),仅简单用于在进入转移与/或流出转移中作路径判别。
6.1.4.工作流参与者说明
它提供了流程定义中可作为各类任务执行者的资源的描述。
指派完成一特定任务的特殊资源被定义为任务的一个属性,以及将任务和可分配给它的资源集联系起来的参与者设定。
工作流参与者的声明不必是一个人,也可以确定为一组具有一定技能或责任的人、或非人的机器自动机资源。
元模型包含一些可定义为工作流参与者的简单资源类型。
6.1.5.资源库
资源库说明参与者可以是人、程序或机器。
在更复杂的流程中参与者的声明可以引用资源库,在参与者是人时可以组织模型。
应指出的是本规范未定义或要求资源库。
6.1.6.工作流应用说明
它提供IT应用的描述,或工作流服务支持的,亦或完全自动化的、与每个任务相关的处理、任务内由一应用设定属性(或属性集)确定的可调用接口的描述。
这样的应用可以是普通的行业工具,企业内确定的服务部门,或工作流管理系统框架内实现的本地过程。
工作流应用定义反映出工作流引擎与应用或接口,包括任意传递参数之间的接口。
6.1.7.工作流相关数据
它定义在流程运转期间各个流程实例内创建及使用的数据。
在流程运转期间,该数据对任务或执行的应用有效,且用于在任务间与/或为条件表达式计算(诸如转移或参与者设定)传递持久化信息或中间结果。
工作流相关数据是特殊类型。
XPDL包含各种各样基本及复杂数据类型的定义(包括date,string等)、任务、调用的应用与/或转移条件可引用工作流过程相关数据。
6.1.8.系统及环境数据
是指由工作流管理系统或局部系统环境维护的数据,但可被工作流任务访问,或被工作流管理系统以与工作流相关数据同样的方式在计算条件表达式时使用。
6.1.9.数据类型与表达式
元模范(及与XPDL相关)采用了许多标准数据类型(string,reference,integer,float,date/time,等);这些数据类型和工作流相关数据、系统或环境数据,亦者参与者数据有关。
表达式可以由这些数据类型形成以支持条件计算。
数据类型可以通过用XMLSchema或外部来源中定义的数据引用进行扩展。
6.2.流程和包
如同在上述图表所示,过程模型包含各种各样的实体――其范围较单一的过程定义广泛。
特别是参与者、应用及工作流相关数据的定义可以从许多过程定义中引用。
元模型假定使用和工作流管理系统相关的、拥有各种各样类型构成过程定义实体的共用过程定义库。
在公共定义库本身内以及支持对将流程定义数据从定义库内高效的转入/转出的支持,引入概念“包”,作为源自许多不同过程定义共用数据实体分组的容器,以免在每一单独的过程定义内重新定义。
“包”提供一个容纳来自工作流过程定义实体(作者,版本,状况,等等)的许多公共属性的容器。
包内包含的每一过程定义将自动继承源自包的任何公共属性,除非它们在过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作流 联盟 WfMC 规范