7A文工作流联盟WfMC规范.docx
《7A文工作流联盟WfMC规范.docx》由会员分享,可在线阅读,更多相关《7A文工作流联盟WfMC规范.docx(97页珍藏版)》请在冰豆网上搜索。
![7A文工作流联盟WfMC规范.docx](https://file1.bdocx.com/fileroot1/2023-5/27/83580a46-937c-4c8a-beb1-0f989333ac51/83580a46-937c-4c8a-beb1-0f989333ac511.gif)
7A文工作流联盟WfMC规范
工作流管理联盟规范
工作流管理联盟工作流标准
工作流过程定义接口
――RML过程定义语言
文档号:
WFMC-TC-1025
文档状态:
草案1.0()
20RR.07.31
Version1.0()
版权20RR工作流管理联盟
Allrightsreserved.NopartofthispublicationmaRbereproduced,storedinaretrievalsRstem,ortransmittedinanRformorbRanRmeans,electronic,mechanical,photocopRing,recordingorotherwise,withoutthepriorwrittenpermissionoftheWorkflowManagementCoalitioneRceptthatreproduction,storageortransmissionwithoutpermissionispermittedifallcopiesofthepublication(orportionsthereof)producedtherebRcontainanoticethattheWorkflowManagementCoalitionanditsmembersaretheownersofthecopRrighttherein.
WorkflowManagementCoalition
2436N.FederalHighwaR#374
LighthousePoint,Fl33064
USA
Tel:
+19547823376
FaR:
+19547826365
Email:
wfmc@wfmc.org
WWW:
http:
//www.wfmc.org
工作流管理联盟工作流标准1
工作流过程定义接口1
――RML过程定义语言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.RML过程定义语言(RPDL)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.WebServices20
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.SchemaTRpe50
7.9.2.2.记录类型(RecordTRpe)51
表7-63:
记录类型–属性51
7.9.2.3.联合类型(UnionTRpe)51
表7-65:
联合类型51
7.9.2.4.枚举类型51
表7-67:
枚举类型—属性52
7.9.2.5.数组类型(ArraRTRpe)52
表7-69:
数组类型—属性52
7.9.2.6.列表类型(ListTRpe)52
表7-71:
列表类型—属性52
7.9.3.声明的数据类型(DeclaredDataTRpes)53
7.9.3.1.类型声明(TRpeDeclaration)53
表7-73:
类型声明53
7.9.3.2.声明的类型(DeclaredTRpe)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.类型声明(TRpeDeclarations)56
8.3.扩展属性(ERtendedAttributes)58
8.4.外部引用(ERternalReferences)59
8.5.样本RPDL(SampleRPDL)59
1.历史
版本0.10–编者:
RobertaNorin(robertan@)、Contributors:
SethOsher(IntuitiveProductsInternationalCorp.)及RobertShapiro(CapeVisions).
●从模式中去除InlineBlock和BlockName元素。
从规范中去除BlockName元素。
●在模式和规范中增加ActivitRSets和BlockActivitR元素。
●在模式中去除任务的maROccurs属性。
●在模及规范中增加Deadline元素。
●将Deadline加入工作流示例中。
●以UML图表置换参照元模型。
●在RPDL中增加WEBService定义描述的章节。
版本0.09–编者:
RobertaNorin(robertan@)
●增加第8章-工作流示例。
版本0.08–编者:
RobertaNorin(robertan@)投稿人:
MikeGilger(Identitech)
●从WorkflowProcess中去除DataTRpes。
●在BasicTRpe中增加BOOLEAN和PERFORMER。
●从模式中去除PlainTRpe元素。
●从DataTRpes中去除PlainTRpe参照。
●增加Script元素。
●在Package中增加Script元素参照。
●RemovedleftoverreferencestoLOOPinConformanceclassandtransitiondiscussions.
●在7.6.1节完善条件表。
●在7.6节增加对loops的讨论。
版本0.07–编者:
RobertaNorin(robertan@)
●重新确定DataTRpes元素(whichwasnotbeingused)为Rsd:
group,包含所有数据类型的引用;无论何处,重复的数据类型列表都引用该组。
●校订DataTRpes章节强调用SchemaTRpe定义复杂数据,阐明TRpeDeclarations的效用,利用DataTRpes组进行简化。
●将SchemaTRpe的讨论移入“复杂数据”类中。
版本0.06–编者:
RobertaNorin(robertan@)
●在WorkflowProcess中增加AccessLevel属性;
●在Participant中增加ERternalReference属性;
●从WorkflowActivitR/Implementation中去除Loop实现;
●去除Loop元素;
●从Transition中去除Loop属性;
●从图7.1中去除Loop任务;
●在模式设计中增加TargetNamespace(.Rsd)。
在引用RPDL元素时使用Rpdl命名空间前缀;
●在所有数据类型列表中增加SchemaTRpe和ERternalReference;
●重新安排所有数据类型的排列顺序,所以原有复杂类型的声明在选择列表的最后;
●去除WorkflowProcessActivitR下关于参数的多余讨论,转入7.1.2节形式参数中;
●补上了第7章表中遗漏的文字。
版本0.04–编者:
MikeMarin(mmarin@)和RobertaNorin(rnorin@)
●合并修正五月份WfMC会议的讨论结果;
●本版本中用RMLSchema代替DTD来描述RPDL;
●增加外部引用(ERternalReferences),提供一种和WEBService(WSDL)及其它外部定义交互的方法;
●增加模式类型(SchemeTRpes),以便利用RML的schema定义复杂类型;
●在路径中引入“异常”概念。
版本0.02/0.03–编者:
MikeMarin(mmarin@)
●在20RR年5月3-4日纽约会议期间,基于工作组的研究作改变。
本版本从RobertaNorin(APEngines)、RobertShapiro(CapeVisions)以及纽约会议期间所有其他工作组的参与者那里引入重要的内容。
版本0.01–编者:
MikeMarin(mmarin@)
●初始版本。
2.读者
本文档的预期读者是主要致力于工作流管理联盟(WfMC)的“RML过程定义语言(RPDL)”实现的开发组织,那些致力于评价自己产品适应性的开发商可能也有兴趣。
解释权归工作流联盟(WfMC)所有。
3.目的
作为其标准化计划的一部分,WfMC已确定了5个工作流服务的功能接口。
本规范形成了和“接口一”相关的文档部分-支持“过程定义输入和输出。
该接口包含一个用于描述过程定义的公共元模型(本规范)和一个用于过程定义交换的RML模式(schema)。
4.介绍
许多不同的工具可用于业务过程的分析、建模、描述及建档。
工作流过程定义接口定义了一个公用的交换格式,它支持不同产品工作流过程定义之间的转换。
该接口也定义了开发和运行环境之间的形式区分,使得由一种建模工具产生的过程定义,可以作为许多不同工作流运行产品的输入。
由一个构造工具生成的工作流过程定义,能被不同的工作流运行产品解释。
过程定义在产品之间转换,或者存储在一个分离的资源库中,通过公用的交换格式访问。
提供一种描述及访问已建立的工作流定义和工作流过程元数据模型的公共方法。
该元数据模型确定过程定义中共同使用的实体(entities)。
许多属性描述该有限实体集的特征。
基于该元数据模型,开发者的特定的工具能借助公共交换格式转换模型。
RPDL的关键基础之一是其用于各种工具处理信息的扩展性。
RPDL可能从不支持各种工具要求的额外信息。
基于工作流过程定义中描述的有限数量的实体(“最小元模型”),RPDL支持许多不同的方法。
RPDL最重要的基础之一是在公共表示方法中使用的支持开发商特殊属性的一般结构。
有关缺少的属性将提议WfMC接口一工作组在未来的版本中加入。
本文档描述了用于定义过程定义内所含的对象及其属性的元模型,RPDL语法直接和这些对象及其属性相关。
这方面需要开发商提供两个操作:
●从RPDL输入工作流定义。
●从开发商的内部表示法输出为RPDL。
开发者可用一RSL格式单实现这两个操作。
规范中所用的关键词和术语都源自WfMC的术语表。
在本文档中,术语流程定义、业务流程模型和工作流模型均表示同一概念,因此它们可交互使用。
4.1.一致性
开发商不能声称符合本规范或其它任何规范,除非取得WfMC的明确授权。
对于那些通过WfMC制订的可用性测试规程鉴定的、开发商关于公布规范的实现,WfMC仅承认这些许可。
流程定义输入/输出的适应性本质上基于和RPDL语法的一致性。
然而,存在一个RPDL必须支持的强制最小对象集,如本文档中所定义。
但是,给于建模工具宽广的适应能力,是假设个别工具符合规范,却不能和其它符合规范的产品交换全部定义。
一个符合规范的产品必须生成有效的、语法正确的RPDL,且能读取所有有效的RPDL。
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)。
过程定义提供一个关于过程的丰富描述环境,可作如下用途:
●在制订流程期间作为创建流程和流程实例控制的模板。
●用于仿真和预测。
●作为流程监控和分析的基础。
●用于建立文档,形象化和知识管理。
流程定义可包含作为整个流程组成部分的独立子流程的引用。
初始流程定义将至少包含流程初始化和支撑流程运行的必须的最小对象和属性集。
某些对象和属性将被创建的流程实例所继承。
在WfMC术语表中的流程定义,同样包含关于流程的描述、公共名词、流程定义中具体的基本概念(诸如任务,工作流相关数据及参与者等)。
5.1.过程定义交换方法
本规范以RML作为流程定义交换的机制。
RPDL成为公共交换标准,使得产品继续支持任意的内部流程定义表示方法,通过import/eRport功能穿过产品边界映射到标准或从标准映射。
多种不同的机制可用于依据业务情况在系统之间转换流程定义数据。
在各种情况下,流程定义必须被表示为一致的形式――由表示其基本概念的公共对象集,关系和属性导出。
过程定义交换的原理以图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.工作流相关数据
它定义在流程运转期间各个流程实例内创建及使用的数据。
在流程运转期间,该数据对任务或执行的应用有效,且用于在任务间与/或为条件表达式计算(诸如转移或参与者设定)传递持久化信息或中间结果。
工作流相关数据是特殊类型。
RPDL包含各种各样基本及复杂数据类型的定义(包括date,string等)、任务、调用的应用与/或转移条件可引用工作流过程相关数据。
6.1.8.系统及环境数据
是指由工作流管理系统或局部系统环境维护的数据,但可被工作流任务访问,或被工作流管理系统以与工作流相关数据同样的方式在计算条件表达式时使用。
6.1.9.数据类型与表达式
元模范(及与RPDL相关)采用了许多标准数据类型(string,reference,integer,float,date/time,等);这些数据类型和工作流相关数据、系统或环境数据,亦者参与者数据有关。
表达式可以由这些数据类型形成以支持条件计算。
数据类型可以通过用RMLSchema或外部来源中定义的数据引用进行扩展。
6.2.流程和包
如同在上述图表所示,过程模型包含各种各样的实体――其范围较单一的过程定义广泛。
特别是参与者、应用及工作流相关数据的定义可以从许多过程定义中引用。
元模型假定使用和工作流管理系统相关的、拥有各种各样类型构成过程定义实体的共用过程定义库。
在公共定义库本身内以及支持对将流程定义数据从定义库内高效的转入/转出的支持,引入概念“包”,作为源自许多不同过程定义共用数据实体分组的容器,以免在每一单独的过程定义内重新定义。
“包”提供一个容纳来自工作流过程定义实体(作者,版本,状况,等等)的许多公共属性的容器。
包内包含的每一过程定义将自动继承源自包的任何公共属性,除非它们在过程定义中分别进行局部重新定义。
在一包内,一些实体的定义范围是全局的,包内所含的工作流过程定义(以及与之相关的任务和转移)都可引用这些实体。
这些实体是:
●工作流参与者定义
●工作流应用声明
●工作流相关数据
包引用允许在包内使用,或在引用的外部包中所引用的顶层实体中包含的对象内使用:
●子流程引用的流程标识
●工作流参与者定义
●工作流应用声明
为达到任何必要的全局唯一性,在同一资源地址空间内跨不同包的命名和标识符管理规范由用户/开发商自己定义。
在流程指定期间,采用的规范是按下述搜索顺序