工作流联盟WfMC规范_第1页
工作流联盟WfMC规范_第2页
工作流联盟WfMC规范_第3页
工作流联盟WfMC规范_第4页
工作流联盟WfMC规范_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工作流管理联盟规范工作流管理联盟工作流标准工作流过程定义接口――XML过程定义语言文档号:WFMC-TC-1025文档状态:草案1.0()2023.07.31Version1.0()版权2023工作流管理联盟

Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmittedinanyformorbyanymeans,electronic,mechanical,photocopying,recordingorotherwise,withoutthepriorwrittenpermissionoftheWorkflowManagementCoalitionexceptthatreproduction,storageortransmissionwithoutpermissionispermittedifallcopiesofthepublication(orportionsthereof)producedtherebycontainanoticethattheWorkflowManagementCoalitionanditsmembersaretheownersofthecopyrighttherein.

WorkflowManagementCoalition2436N.FederalHighway#374LighthousePoint,Fl33064USATel:+19547823376Fax:+19547826365Email:WWW:

目录TOC\o"1-5"\h\z\u工作流管理联盟工作流标准 1工作流过程定义接口 1――XML过程定义语言 11.历史 72.读者 83.目的 84.介绍 84.1.一致性 94.2.参考资料 95.过程定义互换概述 95.1.过程定义互换方法 10图5-1:流程定义互换的概念 106.元模型 11图6-1:元模型顶层实体 116.1.实体概述 116.1.1.工作流过程定义 116.1.2.工作流过程任务(活动、环节) 116.1.4.工作流参与者说明 126.1.5.资源库 126.1.6.工作流应用说明 126.1.7.工作流相关数据 126.1.8.系统及环境数据 126.1.9.数据类型与表达式 126.2.流程和包 136.3.过程元模型 13图6-3:工作流过程定义元模型 146.4.包元模型 14图6-5:包定义元模型 146.4.1.过程仓库 15.重新定义及其范围 156.5.元素概览 15表6-1:元素概览 166.5.1.开发商或用户特殊的扩展 17.扩展属性 17.扩展的参数映射 177.XML过程定义语言(XPDL) 177.1.多实体的公共元素 177.1.1.扩展属性 17表7-1:扩展属性—属性 177.1.2.形式化参数 18表7-3:形式化参数—属性 18.参数传递语义 18.同步语义 19.形式化实参映射 197.1.3.外部引用 19表7-5:外部引用――属性 19.WebServices 207.2.包定义 20表7-7:包定义—属性 217.2.1.包头定义 21表7-9:包定义头—属性 227.2.2.可重新定义头(RedefinableHeader) 22表7-11:可重定义的头–属性 237.2.3.适应类型声明(ConformanceClassDeclaration) 237.2.4.脚本 23表7-15:脚本–属性 247.2.5.外部包引用 24表7-16:外部包引用–属性 247.3.工作流应用声明 25表7-18:工作流应用声明–属性 257.3.1.调用参数 257.4.工作流过程定义 26表7-20:工作流过程定义—属性 277.4.1.工作流过程定义头 27表7-22:工作流过程定义头–属性 297.4.2.工作流过程可重定义头 29表7-24:工作流过程可重定义头—属性 307.4.3.任务组(集) 30表7-26:任务组 307.5.工作流过程任务 31表7-2:实体类型与不同任务类型间关系 31Figure7-1:任务结构及转移条件 32表7-29:过程任务—属性 347.5.1.路由任务 347.5.2.块任务 347.5.3.执行控制属性 34表7-31:执行控制—属性 357.5.4.实现选择(ImplementationAlternatives) 35表7-33:执行选定—属性 36.无实现(NoImplementation) 36.工具(Tool) 36表7-35:Tool—属性 37.子流程(subflow) 37表7-37:子流程—属性 377.5.5.执行者的关系 377.5.6.截止期限(最终期限) 38表7-3:截止期限 397.5.7.仿真信息 39表7-4:仿真信息—属性 407.5.8.转移约束(限制) 41表7-42:转移约束—属性 41.接合(Join) 41表7-4:接合—属性 41.分叉 42表7-4:分叉--属性 427.5.9.适应性类型(ConformanceClasses) 437.6.转移信息 43表7-49:转移信息—属性 447.6.1.条件 44表7-51:条件—属性 45.异常条件 457.7.工作流参与者 46表7-53:工作流参与者—属性 467.7.1.参与者实体类型 46表7-55:参与者实体类型—属性 477.8.工作流相关数据 47表7-57:工作流相关数据—属性 487.9.数据类型 48表7-59:标准数据类型 497.9.1.基本数据类型 49表7-61:基本数据类型—属性 507.9.2.复杂数据类型 50.SchemaType 50.记录类型(RecordType) 51表7-63:记录类型–属性 51.联合类型(UnionType) 51表7-65:联合类型 51.枚举类型 51表7-67:枚举类型—属性 52.数组类型(ArrayType) 52表7-69:数组类型—属性 52.列表类型(ListType) 52表7-71:列表类型—属性 527.9.3.声明的数据类型(DeclaredDataTypes) 53.类型声明(TypeDeclaration) 53表7-73:类型声明 53.声明的类型(DeclaredType) 54表7-7438:声明的数据类型–属性 548.样本工作流(SampleWorkflow) 548.1.过程(TheProcesses) 548.1.1.EOrder主流程(TheEOrderMainProcess) 54图8-1:EOrder主流程 558.1.2.CreditCheck子流程 55图8-2:信用校验子流程(CreditCheckSubprocess) 558.1.3.FillOrder子流程(TheFillOrderSubprocess) 55图8-:FillOrder子流程 568.2.类型声明(TypeDeclarations) 568.3.扩展属性(ExtendedAttributes) 588.4.外部引用(ExternalReferences) 598.5.样本XPDL(SampleXPDL) 59

1.历史版本0.10–编者:RobertaNorin()、Contributors:SethOsher(IntuitiveProductsInternationalCorp.)及RobertShapiro(CapeVisions).从模式中去除InlineBlock和BlockName元素。从规范中去除BlockName元素。在模式和规范中增长ActivitySets和BlockActivity元素。在模式中去除任务的maxOccurs属性。在模及规范中增长Deadline元素。将Deadline加入工作流示例中。以UML图表置换参照元模型。在XPDL中增长WEBService定义描述的章节。版本0.09–编者:RobertaNorin()增长第8章-工作流示例。版本0.08–编者:RobertaNorin()投稿人:MikeGilger(Identitech)从WorkflowProcess中去除DataTypes。在BasicType中增长BOOLEAN和PERFORMER。从模式中去除PlainType元素。从DataTypes中去除PlainType参照。增长Script元素。在Package中增长Script元素参照。RemovedleftoverreferencestoLOOPinConformanceclassandtransitiondiscussions.在7.6.1节完善条件表。在7.6节增长对loops的讨论。版本0.07–编者:RobertaNorin()重新拟定DataTypes元素(whichwasnotbeingused)为xsd:group,包含所有数据类型的引用;无论何处,反复的数据类型列表都引用该组。校订DataTypes章节强调用SchemaType定义复杂数据,阐明TypeDeclarations的效用,运用DataTypes组进行简化。将SchemaType的讨论移入“复杂数据”类中。版本0.06–编者:RobertaNorin()在WorkflowProcess中增长AccessLevel属性;在Participant中增长ExternalReference属性;从WorkflowActivity/Implementation中去除Loop实现;去除Loop元素;从Transition中去除Loop属性;从图7.1中去除Loop任务;在模式设计中增长TargetNamespace(.xsd)。在引用XPDL元素时使用xpdl命名空间前缀;在所有数据类型列表中增长SchemaType和ExternalReference;重新安排所有数据类型的排列顺序,所以原有复杂类型的声明在选择列表的最后;去除WorkflowProcessActivity下关于参数的多余讨论,转入7.1.2节形式参数中;补上了第7章表中漏掉的文字。版本0.04–编者:MikeMarin()和RobertaNorin()合并修正五月份WfMC会议的讨论结果;本版本中用XMLSchema代替DTD来描述XPDL;增长外部引用(ExternalReferences),提供一种和WEBService(WSDL)及其它外部定义交互的方法;增长模式类型(SchemeTypes),以便运用XML的schema定义复杂类型;在途径中引入“异常”概念。版本0.02/0.03–编者:MikeMarin()在2023年5月3-4日纽约会议期间,基于工作组的研究作改变。本版本从RobertaNorin(APEngines)、RobertShapiro(CapeVisions)以及纽约会议期间所有其他工作组的参与者那里引入重要的内容。版本0.01–编者:MikeMarin()初始版本。2.读者本文档的预期读者是重要致力于工作流管理联盟(WfMC)的“XML过程定义语言(XPDL)”实现的开发组织,那些致力于评价自己产品适应性的开发商也许也有爱好。解释权归工作流联盟(WfMC)所有。3.目的作为其标准化计划的一部分,WfMC已拟定了5个工作流服务的功能接口。本规范形成了和“接口一”相关的文档部分-支持“过程定义输入和输出。该接口包含一个用于描述过程定义的公共元模型(本规范)和一个用于过程定义互换的XML模式(schema)。4.介绍许多不同的工具可用于业务过程的分析、建模、描述及建档。工作流过程定义接口定义了一个公用的互换格式,它支持不同产品工作流过程定义之间的转换。该接口也定义了开发和运营环境之间的形式区分,使得由一种建模工具产生的过程定义,可以作为许多不同工作流运营产品的输入。由一个构造工具生成的工作流过程定义,能被不同的工作流运营产品解释。过程定义在产品之间转换,或者存储在一个分离的资源库中,通过公用的互换格式访问。提供一种描述及访问已建立的工作流定义和工作流过程元数据模型的公共方法。该元数据模型拟定过程定义中共同使用的实体(entities)。许多属性描述该有限实体集的特性。基于该元数据模型,开发者的特定的工具能借助公共互换格式转换模型。XPDL的关键基础之一是其用于各种工具解决信息的扩展性。XPDL也许从不支持各种工具规定的额外信息。基于工作流过程定义中描述的有限数量的实体(“最小元模型”),XPDL支持许多不同的方法。XPDL最重要的基础之一是在公共表达方法中使用的支持开发商特殊属性的一般结构。有关缺少的属性将建议WfMC接口一工作组在未来的版本中加入。本文档描述了用于定义过程定义内所含的对象及其属性的元模型,XPDL语法直接和这些对象及其属性相关。这方面需要开发商提供两个操作:从XPDL输入工作流定义。从开发商的内部表达法输出为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)。过程定义提供一个关于过程的丰富描述环境,可作如下用途:在制订流程期间作为创建流程和流程实例控制的模板。用于仿真和预测。作为流程监控和分析的基础。用于建立文档,形象化和知识管理。流程定义可包含作为整个流程组成部分的独立子流程的引用。初始流程定义将至少包含流程初始化和支撑流程运营的必须的最小对象和属性集。某些对象和属性将被创建的流程实例所继承。在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.流程和包如同在上述图表所示,过程模型包含各种各样的实体――其范围较单一的过程定义广泛。特别是参与者、应用及工作流相关数据的定义可以从许多过程定义中引用。元模型假定使用和工作流管理系统相关的、拥有各种各样类型构成过程定义实体的共用过程定义库。在公共定义库自身内以及支持对将流程定义数据从定义库内高效的转入/转出的支持,引入概念“包”,作为源自许多不同过程定义共用数据实体分组的容器,以免在每一单独的过程定义内重新定义。“包”提供一个容纳来自工作流过程定义实体(作者,版本,状况,等等)的许多公共属性的容器。包内包含的每一过程定义将自动继承源自包的任何公共属性,除非它们在过程定义中分别进行局部重新定义。在一包内,一些实体的定义范围是全局的,包内所含的工作流过程定义(以及与之相关的任务和转移)都可引用这些实体。这些实体是:工作流参与者定义工作流应用声明工作流相关数据包引用允许在包内使用,或在引用的外部包中所引用的顶层实体中包含的对象内使用:子流程引用的流程标记工作流参与者定义工作流应用声明为达成任何须要的全局唯一性,在同一资源地址空间内跨不同包的命名和标记符管理规范由用户/开发商自己定义。在流程指定期间,采用的规范是按下述搜索顺序作名称引用:流程标记――一方面在同一流程模型内(涉及任何在不同服务中远程运营的流程定义应用),然后在任一引用的外部流程模型内。应用/参与者――一方面在同一流程模型内,然后在任一引用的外部模型内。在包内工作流相关数据命名必须是唯一的;这些数据是作为参数在过程之间传递的,在本版本的规范中,将使用语义复制。过程设计者/管理者的剩余责任就是在支持子流程操作(包含任何所需的远程过程互用性)的过程定义/模型内保证一致的名称/数据类型用法。6.3.过程元模型为了过程定义互换,元模型拟定了基本实体和属性集。关于过程定义下述实体必须定义,或者明确地在过程定义层,或者直接继承,亦或从环境包中交叉引用:工作流过程任务转移信息工作流参与者定义工作流应用声明工作流相关数据图6-3:工作流过程定义元模型这些实体包含支持流程公共描述机制的属性,它们将在后续的章节中予以叙述。6.4.包元模型多过程定义结合在模型定义中。包作为分组的容器――许多独立的过程定义,与之相关的实体数据――合用于所有包含的过程定义(以及仅有一次需求的定义)。包的元模型包含如下实体类型:工作流过程任务转移信息工作流参与者定义工作流应用声明工作流相关数据*实体可在工作流过程定义中重新定义图6-5:包定义元模型包的元模型拟定了的用于互换、存储及过程模型的实体和属性。它规定了将单个流程和对参与者定义、应用声明及工作流相关数据的实体定义联系起来的各种各样的继承规则,可以在包一级定义而非在单个过程定义级被定义。包定义允许定义许多共用过程定义属性,这些属性合用于包内所含的所有单一过程定义,这样的属性也可以从单个过程定义删除(假如它们在单个过程定义级被重新设定,则这一局部属性值优先于包级定义的公共值)。6.4.1.过程仓库过程定义导入/导出接口采用放到/取自一与工作流管理系统相关的某种形式的工作流定义库的操作。导入/导出接口由放入或取出定义库具有XPDL的互换文献实现。这个接口定义允许在单过程定义级与包级导入/导出过程定义数据。定义库和工作流控制功能之间的内部接口由开发商自行定义,不作为本标准的一部分,而采用将静态仓库用法(对于持久化数据,在建的过程定义数据)与动态仓库用法(对于在运流程实例的变化管理)分离(例如通过版本控制)的方式。过程定义库的本地存储结构不是WfMC标准的组成部分。包的应用仅是旨在简化可复用数据结构的导入/导出。采用简朴的过程仓库结构,单一的过程定义级操作,在一导入包内的共享信息在导入接口中可以被复制到每一独立过程定义(对于过程定义导出类似于重新打包)。.重新定义及其范围由于重新定义属性、元模型实体和外部予以包的也许性,将范围和层次基理引XPDL(和过程库)结构中。工作流相关数据工作流过程有关数据具有一个被环境元模型实体直接定义的范围,且是非嵌套的,其可见性也由该实体定义。属性属性包含扩展属性具有一个被环境元模型实体直接定义的范围,且是非嵌套的,亦即在在一较低档别可被重新定义。例如:名称属性在每一实体中被重新定义。扩展属性标记符的可见性在特定的实体内及所有子实体内,除非子实体内该标记符被重新定义。(iii)工作流参与者和工作流应用工作流参与者及工作流应用品有等价于扩展属性的范围和可见性,所有被引用的工作流相关数据及其扩展属性在其使用范围内必须定义,至少在同一包内。对于一被引用的需自身对实体引用的外部包以及在其外部包中定义的标记符条目,该机制从包的根开始。如此一来保证不发生冲突――若调用的过程以同一ID拥有同一实体,被引用包的定义却不知道。所述的关于外部包的机制为工作流的设计者和管理人员提供了高灵活性。可以将机构描述(参与者实体)和过程定义分放在不同的模型中,可以增长新版本的过程描述,或添加新版本的过程定义,共享以前定义的其余定义部分和互换模型,而无需重新提交所有上下文等。6.5.元素概览下表给出XPDL内定义的重要元素概览:第一行包含所有所有重要元素的公共属性及元素。所有重要元素具有id、name、Description和ExtendedAttributes属性;第二行重要元素各自的特有属性;第三组有也许的对其它元素的引用组成;Documentation和Icon元素包含执行引擎使用的表现信息;第五组包含流程仿真和流程优化信息(BPR-相关信息)。更多的元素和预定义属性可加入模型中以便建立未来的适应性标准。所有元素的简短描述和语义在后续章节中给出。PackageWorkflowProcessActivityTransitionApplicationData(workflowRelevantData)ParticipantIdIdIdIdIdIdIdNameNameNameNameNameNameNameDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionExtendedAttributesExtendedAttributesExtendedAttributesExtendedAttributesExtendedAttributesExtendedAttributesExtendedAttributesXPDLVersionCreationDateAutomationModeDataTypeParticipantTypeSourceVendorIDVersionSplitCreationDateAuthorJoinVersionCodepagePriorityAuthorCountryKeyLimitCodepagePublicationStatusStartModeCountryKeyPriorityFinishModePublicationStatusLimitDeadlineConformanceClassValidFromDatePriorityUnitValidToDateResponsibleParametersPerformerConditionParametersInitialvalueResponsibleToolFromSubflowToActivitySetExternalPackageActualParameteDocumentationDocumentationDocumentation-IconIconIconCostUnitDurationUnitCostDurationDurationWaitingTimeWaitingTimeWorkingTimeWorkingTime表6-1:元素概览6.5.1.开发商或用户特殊的扩展虽然元模型及其相关的XPDL具有大多数在流程互换中需要的结构,但也许有开发商或用户定义的需包含在过程定义中的补充信息。应鼓励开发商和用户尽也许在标准实体/属性集内工作;下述的支持扩展的机制提供用于互换目的的表述扩展的标准方法,但也许在制定流程期间规定局部系统提供任何相关的运营时支撑。.扩展属性支持扩展的重要方法是使用扩展属性。扩展属性是开发商或用户定义的属性――必要的、需在系统间互换的,表述附加实体的特性。在制定流程期间,任何与扩展属性使用相关的运营时语义分别定义,且需要工作流服务导入方和导出方的双边协定。.扩展的参数映射本规范中未定义解码的Scheme和参数数据传递的特殊细节。有关远程子流程调用的参数传递方法见工作流互操作规范(接口4),该规范用于具体语法说明内所用操作的参数映射(例如wf-XML互换)。任何参数映射的本地方案(localscheme)及解码由开发商给于自己的产品定义的,不在本规范范围内。7.XML过程定义语言(XPDL)7.1.多实体的公共元素7.1.1.扩展属性扩展属性可用于所有实体。允许开发商扩展本规范的功能以便满足个别产品的需要。开发商可在ExtendedAttribute中加入自目录。<xsd:elementname="ExtendedAttribute"><xsd:complexTypemixed="true"><xsd:choiceminOccurs="0"maxOccurs="unbounded"><xsd:anyminOccurs="0"maxOccurs="unbounded"/></xsd:choice><xsd:attributename="Name"type="xsd:NMTOKEN"use="required"/><xsd:attributename="Value"type="xsd:string"/></xsd:complexType></xsd:element><xsd:elementname="ExtendedAttributes"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:ExtendedAttribute"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述Name用于拟定扩展属性Value特定产品规定的值表7-1:扩展属性—属性7.1.2.形式化参数形式化参数可用作工作流过程和工作流应用的属性,它们在调用期间及控制返回时被传递(e.g.一调用应用)。如下是调用参数:<xsd:elementname="FormalParameter"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:DataType"/><xsd:elementref=“xpdl:Description"minOccurs="0"/></xsd:sequence><xsd:attributename="Id"type="xsd:NMTOKEN"use="required"/><xsd:attributename="Index"type="xsd:NMTOKEN"/><xsd:attributename="Mode"default="IN"><xsd:simpleType><xsd:restrictionbase="xsd:NMTOKEN"><xsd:enumerationvalue="IN"/><xsd:enumerationvalue="OUT"/><xsd:enumerationvalue="INOUT"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:elementname="FormalParameters"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:FormalParameter"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述Datatype形式化参数的类型,见7.9节Description形式化参数的文本表述ID参数的标记符Index参数的索引ModeIN输入参数OUT输出参数INOUT输入输出参数表7-3:形式化参数—属性.参数传递语义参数传递语义定义如下:任一只读形参(IN)调用时由相应实参(一表达式)初始化,此即传值(pass-by-value)语义。任一读/写形参有相应的实际传递实参初始化,实参必须是工作流相关数据实体的标记符。在过程完毕时,形式化输出参数的之值被拷回原实参中(必须是工作流相关数据实体的标记符)。此即拷贝-恢复语(copy-restore)义任意只写形参(OUT)被初始化为零值(字符串将设为空串,复杂数据类型将每个元素设为零)。在过程完毕时,形式化输出参数被拷贝回原实参中(必须是工作流相关数据实体的标记符)。此即零-恢复(zero-restore)语义。.同步语义拷贝和恢复被解决为原子操作;为避免流程实例中对工作流相关数据并行操作的冲突,这些操作是串行的。在返回调用时,若拷贝和恢复间没有加锁,返回参数值将冲掉局部值(特定工作流相关数据项。.形式化实参映射调用时从实参到形参的映射由一参数映射列表定义。实参按顺序一对一映射到形参,亦即第一个实参映射到第一个形参,第二个实参映射到第二个形参等。定义中规定类型兼容,运营时工作流系统可强制转换,例外情况是局部定义的,非本规范组成部分。当实参是一表达式时,表达式被工作流引擎求值并缓冲,缓冲区的目录被用于形参-实参映射。如何完毕缓冲和映射超过本文档范围。7.1.3.外部引用外部引用(ExternalReference)是对外部定义实体的引用,可用于数据类型、参与者及应用。<xsd:elementname="ExternalReference"><xsd:complexType><xsd:attributename="xref"type="xsd:NMTOKEN"use="optional"/><xsd:attributename="location"type="xsd:anyURI"use="required"/><xsd:attributename="namespace"type="xsd:anyURI"use="optional"/></xsd:complexType></xsd:element>描述LocationURINamespace定义的实体范围说明xref外部文档中实体身份的说明表7-5:外部引用――属性例1:由一XMLscheme定义的FormalParameter:FormalParameterId="PO"><DataType><ExternalReferencelocation=""/></DataType><Description>POspecificationfor</Description></FormalParameter>例2:由Java类定义的DataField:<DataFieldId="PO"Name="PurchaseOrder"IsArray="FALSE"><DataType><ExternalReferencelocation="com.abc.purchases.PO"/></DataType><Description>POspecificationfor</Description></DataField>.WebServices过程的一个任务可以调用一webservice。ExternalReference元素可用于由WEBService文档(WSDL)定义的应用和数据类型的引用。例3:数据类型由WSDL文档中定义的DataField:<DataFieldId="abcPO"Name=”abcPurchaseOrder”IsArray=”False”><DataType><ExternalReferencexref="PO"location=""namespace="poService/definitions/types"/></DataType></DataField>例4:WSDL文档中的一个应用被定义为一个操作:<ApplicationId="placeOrder"><ExternalReference location=""xref="PlaceOrder"namespace=""/></Application>7.2.包定义在一包内定义几个过程是也许的,共享同样的工具及参与者。建议每个业务过程创建一包,其中包含所有必要的工作流过程以及与之相关的工具和工作流参与者,虽然并非必需的。也可以在一包内只定义一个过程定义的一部分或几个过程的公共部分(例如一工作流参与者清单或工作流应用清单)。.<xsd:elementname="Package"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:PackageHeader"/><xsd:elementref=“xpdl:RedefinableHeader"minOccurs="0"/><xsd:elementref=“xpdl:ConformanceClass"minOccurs="0"/><xsd:elementref="xpdl:Script"minOccurs="0"/><xsd:elementref=“xpdl:ExternalPackages"minOccurs="0"/><xsd:elementref=“xpdl:TypeDeclarations"minOccurs="0"/><xsd:elementref=“xpdl:Participants"minOccurs="0"/><xsd:elementref=“xpdl:Applications"minOccurs="0"/><xsd:elementref=“xpdl:DataFields"minOccurs="0"/><xsd:elementref=“xpdl:WorkflowProcesses"minOccurs="0"/><xsd:elementref=“xpdl:ExtendedAttributes"minOccurs="0"/></xsd:sequence><xsd:attributename="Id"type="xsd:NMTOKEN"use="required"/><xsd:attributename="Name"type="xsd:string"/></xsd:complexType></xsd:element>描述Applications工作流应用声明列表。见7.3节ConformanceClass包中过程定义的结构限定。见7.2.3节DataFields包中定义的工作流相关数据列表。见7.8节ExtendedAttributes可加入包中的开发商定义的扩展。见7.1.1节ExternalPackages对另一定义在不同文档中的包的引用Id用于标记包Name用于标记包的文本PackageHeader拟定包特性的一组元素Participants包中用于执行流程的资源列表。见7.7节RedefinableHeader一组既可用于包又可用于流程的元素及属性Script拟定表达式中所用的脚本语言TypeDeclarations包中所用的数据类型列表WorkflowProcesses组成包的工作流过程列表。见7.4节表7-7:包定义—属性7.2.1.包头定义包头定义中保存有包的所有重要信息,诸如:XPDL版本、开发商ID等。<xsd:elementname="PackageHeader"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:XPDLVersion"/><xsd:elementref=“xpdl:Vendor"/><xsd:elementref=“xpdl:Created"/><xsd:elementref=“xpdl:Description"minOccurs="0"/><xsd:elementref=“xpdl:Documentation"minOccurs="0"/><xsd:elementref=“xpdl:PriorityUnit"minOccurs="0"/><xsd:elementref=“xpdl:CostUnit"minOccurs="0"/></xsd:sequence></xsd:complexType></xsd:element><xsd:elementname="XPDLVersion"type="xsd:string"/><xsd:elementname="Vendor"type="xsd:string"/><xsd:elementname="Created"type="xsd:string"/><xsd:elementname="Description"type="xsd:string"/><xsd:elementname="Documentation"type="xsd:string"/><xsd:elementname="PriorityUnit"type="xsd:string"/><xsd:elementname="CostUnit"type="xsd:string"/>描述CostUnit仿真数据所用的单位(通常按货币单位)Created包的创建日期Description对包的文字说明Documentation帮助/说明文档的途径及文献名PriorityUnit用用户定义语义的字串Vendor模型定义的来历,包含开发商产品名称及版本号XPDLVersion本规范的版本,当前值为“0.02”.表7-9:包定义头—属性7.2.2.可重新定义头(RedefinableHeader)可重定义头涵盖那些可在工作流定义头中定义的属性,且可在任何过程定义头中重新定义。重定义时,应把握范围标准。<xsd:elementname="RedefinableHeader"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Author"minOccurs="0"/><xsd:elementref=“xpdl:Version"minOccurs="0"/><xsd:elementref=“xpdl:Codepage"minOccurs="0"/><xsd:elementref=“xpdl:Countrykey"minOccurs="0"/><xsd:elementref=“xpdl:Responsibles"minOccurs="0"/></xsd:sequence><xsd:attributename="PublicationStatus"><xsd:simpleType><xsd:restrictionbase="xsd:NMTOKEN"><xsd:enumerationvalue="UNDER_REVISION"/><xsd:enumerationvalue="RELEASED"/><xsd:enumerationvalue="UNDER_TEST"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:elementname="Author"type="xsd:string"/><xsd:elementname="Version"type="xsd:string"/><xsd:elementname="Codepage"type="xsd:string"/><xsd:elementname="Countrykey"type="xsd:string"/><xsd:elementname="Responsible"type="xsd:string"/><xsd:elementname="Responsibles"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Responsible"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述Author包定义作者姓名Codepage文本部分代码页Countrykey基于ISO3166的国家代码。可以是3为数字的国家代码,或两位字符国家代码PublicationStatus工作流过程定义的状态UNDER_REVISIONRELEASEDUNDER_TESTResponsible(s)工作流参与者――为此工作流负责;运营时连接到工作流参与者实体的主管人。工作流参与者为本模型定义的工作流负责(通常是一组织单元或一人)。假设负责人是运营时的主管人。缺省值:起始参与者Version本包的版本表7-11:可重定义的头–属性7.2.3.适应类型声明(ConformanceClassDeclaration)适应性类的声明允许对适应性类作描述,而该描述在本模型定义中是有限制的。除非它在过程定义级局部被重新定义,适应性类型声明合用于所有包含的过程定义。<xsd:elementname="ConformanceClass"><xsd:complexType><xsd:attributename="GraphConformance"><xsd:simpleType><xsd:restrictionbase="xsd:NMTOKEN"><xsd:enumerationvalue="FULL_BLOCKED"/><xsd:enumerationvalue="LOOP_BLOCKED"/><xsd:enumerationvalue="NON_BLOCKED"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element>描述ConformanceClassFULL-BLOCKED网络结构(模型)限制在适当的SPLIT/JOIN及LOOP嵌套LOOP-BLOCKED网络结构(模型)限制在适当的循环嵌套NON-BLOCKED网络结构(模型)无限制,缺省表7-13:适应类型声明–属性7.2.4.脚本Script元素拟定XPDL表达式中所用的脚本语言。文本表达式形如xsd:string。例如可以实参?(ActualParamete)或常量(Cost)中使用一个表达式。一个由格式化的XML(诸如:MathML)组成的表达式可用于Xpression元素内(诸如转移条件)。<xsd:elementname="Script"><xsd:complexType><xsd:attributename="Type"type="xsd:string"use="required"/><xsd:attributename="Version"type="xsd:string"use="optional"/><xsd:attributename="Grammar"type="xsd:anyURI"use="optional"/></xsd:complexType></xsd:element>描述Type拟定表达式中所用的Script语言。为了跨实现的一致性,通常采用标准的语言建议选用所述字串的一种:text/javascript,text/vbscript,text/tcl,text/ecmascript,text/xml。VersionScript语言的版本Grammar是对语言语法定义文档的引用,可以是XML大纲、DTD或BNF.表7-15:脚本–属性7.2.5.外部包引用外部包引用允许引用另一包定义内的定义或其它系统提供应工作流管理系统的接口(诸如:已有的组织机构描述管理工具)。<xsd:elementname="ExternalPackage"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:ExtendedAttributes"minOccurs="0"/></xsd:sequence><xsd:attributename="href"type="xsd:string"/></xsd:complexType></xsd:element><xsd:elementname="ExternalPackages"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:ExternalPackage"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述ExtendedAttributes为满足执行需要可选的开发商定义的扩展。见7.1.1节href模型标记符。逻辑引用一模型表7-16:外部包引用–属性7.3.工作流应用声明工作流应用声明是过程定义或环境包内所有应用、需要的工具以及由工作流过程定义声明的调用列表。可以定义工具(亦或事实上仅为名称),这意味着工具的真实定义是不必要的,可以交由对象管理解决。采用这个方法的因素是多平台环境的解决,由于不同的程序(或功能)不得不解决每种平台的调用。XPDL源自对具体执行或环境的抽象(因而这些方式在流程定义时不必关心)。<xsd:elementname="Application"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Description"minOccurs="0"/><xsd:choice><xsd:elementref=“xpdl:FormalParameters"/><xsd:elementref=“xpdl:ExternalReference"minOccurs="0"/></xsd:choice><xsd:elementref=“xpdl:ExtendedAttributes"minOccurs="0"/></xsd:sequence><xsd:attributename="Id"type="xsd:NMTOKEN"use="required"/><xsd:attributename="Name"type="xsd:string"/></xsd:complexType></xsd:element><xsd:elementname="Applications"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Application"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述Description应用的简短描述ExtendedAttributes为满足实现需要由开发商定义的可选扩展。见7.1.1节ExternalReference对外部定义的应用的引用。见7.1.3节FormalParameters通过调用接口与应用互换的参数列表。见7.1.2.节Id用于标记工作流应用Name标记应用的文本(可以理解为一般工具的名称)表7-18:工作流应用声明–属性7.3.1.调用参数一个工作流应用声明可以有(调用)参数的定义,也可在其它实体内使用。拷贝调用IN被看做一个原子操作;同样解决恢复调用OUT;这两个操作之间无同步行为。7.4.工作流过程定义工作流过程定义给出组成工作流元素的具体说明。它分别包含任务、转移(可选)、应用以及过程有关数据实体的定义或声明。属性可予定义,诸如有关管理数据的作者、版本,有关运营时数据的优先级,有关BPR和仿真数据。一个工作流过程可以作为形如子流程的一个任务实现,此时,其参数被定义为过程的属性。一个包含输入参数且输入参数并非由一子流程调用实例化的工作流过程定义,其所有输入参数的初始化方法是本地定义的。这样,任何与实例化过程定义相关的工作流相关数据――涉及在参数列表内,将被初始化为指定的“缺省值”(假如定义的话)。未作为输入参数传递的或未初始化为“缺省值”者,结果未定。同样,子流程正常终止后,未返回值与调用流程者,其值未定。总之,定义的实体标记符及其名称的范围是环境实体,其标记符在该范围内是唯一的。对于过程标记符及其名称是环境包。<xsd:elementname="WorkflowProcess"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:ProcessHeader"/><xsd:elementref=“xpdl:RedefinableHeader"minOccurs="0"/><xsd:elementref=“xpdl:FormalParameters"minOccurs="0"/><xsd:groupref="xpdl:DataTypes"/><xsd:elementref=“xpdl:DataFields"minOccurs="0"/><xsd:elementref=“xpdl:Participants"minOccurs="0"/><xsd:elementref=“xpdl:Applications"minOccurs="0"/><xsd:elementref="xpdl:ActivitySets"minOccurs="0"/><xsd:elementref=“xpdl:Activities"minOccurs="0"/><xsd:elementref=“xpdl:Transitions"minOccurs="0"/><xsd:elementref=“xpdl:ExtendedAttributes"minOccurs="0"/></xsd:sequence><xsd:attributename="Id"type="xsd:NMTOKEN"use="required"/><xsd:attributename="Name"type="xsd:string"/><xsd:attributename="AccessLevel"><xsd:simpleType><xsd:restrictionbase="xsd:NMTOKEN"><xsd:enumerationvalue="PUBLIC"/><xsd:enumerationvalue="PRIVATE"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:elementname="WorkflowProcesses"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:WorkflowProcess"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述AccessLevel流程的访问级别,可以是PUBLIC或PRIVATE.。若为PUBLIC,则该流程可被外部系统或应用调用;若为PRIVATE,仅能作为子流程任务调)(见节)Activities组成过程热任务列表。见7.4.3节ActivitySets独立的任务及转移列表Applications工作流应用声明列表。见7.3节DataFields工作流有关数据列表。见7.8节ExtendedAttributes为满足实现需要开发商定义的可选扩展。见7.1.1节FormalParameters可传递到过程的参数列表。见7.1.2节Id用于表达工作流过程Name用于表达工作流过程文本Participants过程执行中的资源列表。见7.7节ProcessHeader定义过程特性的元素组(集)RedefinableHeader包和过程都用的一组元素和属性Transitions连接过程任务的转移的列表。见7.6节表7-20:工作流过程定义—属性7.4.1.工作流过程定义头工作流过错定义头保存有关过程定义的所有信息,诸如过程版本、优先级、有效期限等。<xsd:elementname="ProcessHeader"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Created"minOccurs="0"/><xsd:elementref=“xpdl:Description"minOccurs="0"/><xsd:elementref=“xpdl:Priority"minOccurs="0"/><xsd:elementref=“xpdl:Limit"minOccurs="0"/><xsd:elementref=“xpdl:ValidFrom"minOccurs="0"/><xsd:elementref=“xpdl:ValidTo"minOccurs="0"/><xsd:elementref=“xpdl:TimeEstimation"minOccurs="0"/></xsd:sequence><xsd:attributename="DurationUnit"><xsd:simpleType><xsd:restrictionbase="xsd:NMTOKEN"><xsd:enumerationvalue="Y"/><xsd:enumerationvalue="M"/><xsd:enumerationvalue="D"/><xsd:enumerationvalue="h"/><xsd:enumerationvalue="m"/><xsd:enumerationvalue="s"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:elementname="Created"type="xsd:string"/><xsd:elementname="Description"type="xsd:string"/><xsd:elementname="Limit"type="xsd:string"/><xsd:elementname="Priority"type="xsd:string"/><xsd:elementname="TimeEstimation"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:WaitingTime"minOccurs="0"/><xsd:elementref=“xpdl:WorkingTime"minOccurs="0"/><xsd:elementref=“xpdl:Duration"minOccurs="0"/></xsd:sequence></xsd:complexType></xsd:element><xsd:elementname="WaitingTime"type="xsd:string"/><xsd:elementname="WorkingTime"type="xsd:string"/><xsd:elementname="Duration"type="xsd:string"/><xsd:elementname="ValidFrom"type="xsd:string"/><xsd:elementname="ValidTo"type="xsd:string"/>描述Created工作流过程定义创建的日期Description对过程的简述Duration执行任务盼望的连续时间,以DurationUnit.为单位DurationUnit描述合用于整数连续时间(无单位标记)的缺省单位,也许的取值为:Y–年M–月D–天H–时m–分s–秒Limit为时间管理的盼望连续时间(例如启动一逐步升级的过程等),以DurationUnit为单位。从过程启动的日期时间算起。达成盼望时限后的结果定义不含在本文档中(亦即由开发商定义)。假设在此种情况下至少提醒流程的负责人。Priority过程的优先级类型缺省:从模型定义继承TimeEstimation等待时间、工作时间与连续时间的组,用于仿真ValidFrom激活工作流过程定义的日期,空串表达系统日期缺省:从模型定义继承ValidTo工作流过程定义失效的日期。空串表达无限有效缺省:从模型定义继承WaitingTime执行任务所需预备的时间量(时间估计)(等待时间由分析环境提供,且可被运营环境置换,以DurationUnit为单位WorkingTime指任务的执行者完毕该任务所需的时间量(时间估计)(工作时间分析时需用,且由运营参数的计算通过),以DurationUnit为单位表7-22:工作流过程定义头–属性7.4.2.工作流过程可重定义头<xsd:elementname="RedefinableHeader"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Author"minOccurs="0"/><xsd:elementref=“xpdl:Version"min

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论