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

下载本文档

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

文档简介

工作规范工作流联盟WfMC规范工作流管理联盟规范工作流管理联盟工作流标准工作流过程定义接口――XML过程定义语言文档号:WFMC-TC-1025文档状态:草案1.0()2002.07.31Version1.0()版权2002工作流管理联盟Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmittedinanyformorbyanymeans,electronic,mechanical,photocopying,recordingorotherwise,withoutthepriorwrittenpermissionoftheWorkflowManagementCoalitionexceptthatreproduction,storageortransmissionwithoutpermissionispermittedifallcopiesofthepublication(orportionsthereof)producedtherebycontainanoticethattheWorkflowManagementCoalitionanditsmembersaretheownersofthecopyrighttherein.WorkflowManagementCoalition2436N.FederalHighway#374LighthousePoint,Fl33064USATel:+19547823376Fax:+19547826365Email:wfmc@WWW:http://)、Contributors:SethOsher(IntuitiveProductsInternationalCorp.)及RobertShapiro(CapeVisions).从模式中去除InlineBlock和BlockName元素。从规范中去除BlockName元素。在模式和规范中增加ActivitySets和BlockActivity元素。在模式中去除任务的maxOccurs属性。在模及规范中增加Deadline元素。将Deadline加入工作流示例中。以UML图表置换参照元模型。在XPDL中增加WEBService定义描述的章节。版本0.09–编者:RobertaNorin(robertan@)增加第8章-工作流示例。版本0.08–编者:RobertaNorin(robertan@)投稿人:MikeGilger(Identitech)从WorkflowProcess中去除DataTypes。在BasicType中增加BOOLEAN和PERFORMER。从模式中去除PlainType元素。从DataTypes中去除PlainType参照。增加Script元素。在Package中增加Script元素参照。RemovedleftoverreferencestoLOOPinConformanceclassandtransitiondiscussions.在7.6.1节完善条件表。在7.6节增加对loops的讨论。版本0.07–编者:RobertaNorin(robertan@)重新确定DataTypes元素(whichwasnotbeingused)为xsd:group无论何处,重复的数据类型列表都引用该组。校订DataTypes章节强调用SchemaType定义复杂数据,阐明TypeDeclarations的效用,利用DataTypes组进行简化。将SchemaType的讨论移入“复杂数据”类中。版本0.06–编者:RobertaNorin(robertan@)在WorkflowProcess中增加AccessLevel属性;在Participant中增加ExternalReference属性;从WorkflowActivity/Implementation中去除Loop实现;去除Loop元素;从Transition中去除Loop属性;从图7.1中去除Loop任务;在模式设计中增加TargetNamespace(.xsdXPDL元素时使用xpdl在所有数据类型列表中增加SchemaType和ExternalReference;重新安排所有数据类型的排列顺序,所以原有复杂类型的声明在选择列表的最后;去除WorkflowProcessActivity下关于参数的多余讨论,转入7.1.2节形式参数中;补上了第7章表中遗漏的文字。版本0.04–编者:MikeMarin(mmarin@)和RobertaNorin(rnorin@)合并修正五月份WfMC会议的讨论结果;本版本中用XMLSchema代替DTD来描述XPDL;增加外部引用(ExternalReferences),提供一种和WEBService(WSDL)及其它外部定义交互的方法;增加模式类型(SchemeTypes),以便利用XML的schema定义复杂类型;在路径中引入“异常”概念。版本0.02/0.03–编者:MikeMarin(mmarin@)在2001年5月3-4日纽约会议期间,基于工作组的研究作改变。本版本从RobertaNorin(APEngines)RobertShapiro(CapeVisions)以及纽约会议期间所有其他工作组的参与者那里引入重要的内容。版本0.01–编者:MikeMarin(mmarin@)初始版本。2.读者本文档的预期读者是主要致力于工作流管理联盟(WfMC)“XML过程定义语言(XPDL)实现的开发组织,那些致力于评价自己产品适应性的开发商可能也有兴趣。解释权归工作流联盟(WfMC)所有。3.目的作为其标准化计划的一部分,WfMC已确定了5个工作流服务的功能接口。本规范形成了和“接口一”相关的文档部分-支持“过程定义输入和输出。该接口包含一个用于描述过程定义的公共元模型(本规范)和一个用于过程定义交换的XML模式(schema)。4.介绍许多不同的工具可用于业务过程的分析、建模、描述及建档。工作流过程定义接口定义了一个公用的交换格式,它支持不同产品工作流过程定义之间的转换。该接口也定义了开发和运行环境之间的形式区分,使得由一种建模工具产生的过程定义,可以作为许多不同工作流运行产品的输入。由一个构造工具生成的工作流过程定义,能被不同的工作流运行产品解释。过程定义在产品之间转换,或者存储在一个分离的资源库中,通过公用的交换格式访问。提供一种描述及访问已建立的工作流定义和工作流过程元数据模型的公共方法。该元数据模型确定过程定义中共同使用的实体(entities)。许多属性描述该有限实体集的特征。基于该元数据模型,开发者的特定的工具能借助公共交换格式转换模型。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(和过程库)结构中。(i)工作流相关数据工作流过程有关数据具有一个被环境元模型实体直接定义的范围,且是非嵌套的,其可见性也由该实体定义。(ii)属性属性包含扩展属性具有一个被环境元模型实体直接定义的范围,且是非嵌套的,亦即在在一较低级别可被重新定义。例如:名称属性在每一实体中被重新定义。扩展属性标识符的可见性在特定的实体内及所有子实体内,除非子实体内该标识符被重新定义。(iii)工作流参与者和工作流应用工作流参与者及工作流应用具有等价于扩展属性的范围和可见性,所有被引用的工作流相关数据及其扩展属性在其使用范围内必须定义,至少在同一包内。对于一被引用的需自身对实体引用的外部包以及在其外部包中定义的标识符条目,该机制从包的根开始。如此一来保证不发生冲突――若调用的过程以同一ID拥有同一实体,被引用包的定义却不知道。所述的关于外部包的机制为工作流的设计者和管理人员提供了高灵活性。可以将机构描述(参与者实体)和过程定义分放在不同的模型中,可以增加新版本的过程描述,或添加新版本的过程定义,共享以前定义的其余定义部分和交换模型,而无需重新提交全部上下文等。6.5.元素概览下表给出XPDL内定义的主要元素概览:idnameDescription和ExtendedAttributes属性;第二行主要元素各自的特有属性;第三组有可能的对其它元素的引用组成;Documentation和Icon元素包含执行引擎使用的表现信息;第五组包含流程仿真和流程优化信息(BPR-相关信息)。更多的元素和预定义属性可加入模型中以便建立未来的适应性标准。所有元素的简短描述和语义在后续章节中给出。DataPackageWorkflowProcessActivityTransitionApplication(workflowRelevantDParticipantata)IdIdIdIdIdIdIdNameNameNameNameNameNameNameDescriptioDescriptionDescriptiDescriptionDescriptionDescriptionDescriptionnonExtendedAtExtendedAttExtendedAExtendedAttExtendedAttriExtendedAttExtendedAtttributesributesttributesributesbutesributesributesXPDLVersioCreationDatAutomatioDataTypeParticipantnenModeTypeSourceVendVersionSplitorIDCreationDaAuthorJointeVersionCodepagePriorityAuthorCountryKeyLimitCodepagePublicationStartModeStatusCountryKeyPriorityFinishModePublicatioLimitDeadlinenStatusConformancValidFromDaeClasstePriorityUnValidToDateitResponsiblParametersPerformerConditionParametersInitialvalueeResponsibleToolFromSubflowToActivitySetExternalPaActualckageParameteDocumentatDocumentatiDocumentaionontion-IconIconIconCostUnitDurationUniCosttDurationDurationWaitingTimeWaitingTimeWorkingTimeWorkingTime表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)语义。(a)任一读/写形参有相应的实际传递实参初始化,实参必须是工作流相关数据实体的标识符。在过程完成时,形式化输出参数的之值被拷回原实参中(必须是工作流相关数据实体的标识符)。此即拷贝-恢复语(copy-restore)义(b)任意只写形参(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="/schemas/po.xsd"/></DataType><Description>PO</Description></FormalParameter>例2:由Java类定义的DataField:<DataFieldId="PO"Name="PurchaseOrder"IsArray="FALSE"><DataType><ExternalReferencelocation="com.abc.purchases.PO"/></DataType><Description>PO</Description></DataField>.WebServices过程的一个任务可以调用一webservice。ExternalReference元素可用于由WEBService文档(WSDL)定义的应用和数据类型的引用。例3:数据类型由WSDL文档中定义的DataField:<DataFieldId="abcPO"Name=”abcPurchaseOrder”IsArray=”False”><DataType><ExternalReferencexref="PO"location="/services/poService.wsdl"namespace="poService/definitions/types"/></DataType></DataField>例4:WSDL文档中的一个应用被定义为一个操作:<ApplicationId="placeOrder"><ExternalReferencelocation="/PO/services/poService.wsdl"xref="PlaceOrder"namespace="/services/poService.wsdl/definitions/portType"/></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基于ISO31663代码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-BLOCKEDSPLIT/JOIN及LOOP嵌套LOOP-BLOCKED网络结构(模型)限制在适当的循环嵌套NON-BLOCKED网络结构(模型)无限制,缺省表7-13:适应类型声明–属性7.2.4.脚本Script元素确定XPDLxsd: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>描述AccessLevelPUBLIC或PRIVATE.PUBLICPRIVATE(见节)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.为单位DurationUnitY–年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"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="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><xsd:elementname="Version"type="xsd:string"/>描述Author工作流过程调用的作者姓名Codepage文本部分所用的代码页缺省:从模型定义继承Countrykey基于ISO3166的龟甲代码,可以是3位数字或2位字符。缺省:从模型定义继承PublicationStatu工作流过程定义的状态s缺省:从模型定义继承UNDER_REVISIONRELEASEDUNDER_TESTResponsible(s)工作流参与者――对本流程负责(通常为一组织机构单元或一人)It假设流程运转期间责任人为主管人。缺省:从模型定义继承Version工作流过程定义的版本表7-24:工作流过程可重定义头—属性7.4.3.任务组(集)任务组是独立的任务及转移集合。转移仅指向同一组内的任务,没有流入和流出该任务组的转移。任务组可当作块任务执行(见7.5.2节)。<xsd:elementname="ActivitySet"><xsd:complexType><xsd:sequence><xsd:elementref="xpdl:Activities"minOccurs="0"/><xsd:elementref="xpdl:Transitions"minOccurs="0"/></xsd:sequence><xsd:attributename="Id"type="xsd:NMTOKEN"use="required"/></xsd:complexType></xsd:element><xsd:elementname="ActivitySets"><xsd:complexType><xsd:sequence><xsd:elementref="xpdl:ActivitySet"minOccurs="0"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>描述Activities组成过程的任务列表,见7.4.3节Id用于标识工作流过程Transitions连接过程任务的转移列表,见7.6节表7-26:任务组7.5.工作流过程任务工作流任务定义用于定义组成工作流过程的每一基本任务。可定义属性规定任务的控制信息,BPR(和工作流制定时不用的信息)。此外,也可描述对数据访问的限定及转移评判(e.g.分叉和接合)。强制属性用于描述任务的标识符和类型;少量的其它属性是可选的,但对所有任务类型用法相同;其它属性的用法取决于任务类型,如下表所示:对于任务标识符及名称,其范围是工作流过程环境。任务描述用于描述几种不同的任务类型。所有这些任务共享同样的(共同的)通用任务属性,但其它属性、特殊的参与者、应用分配以及工作流相关数据的使用为各任务类型所特有。下表确定了不同任务类型其它属性/实体类型的用法:EntityTypes任务类型(ActivityType)路由块任务(usagewithinActivityType)执行类型(ImplementationType)RouteBlockActivityNoneApplicatioSubflownTransitionRestrictionNormalNormalNormalNormal;Normal;在同一上任务内在Route上下文中引用任子流程调任务中务;任务组用/返回的任意(ActivitySet)额外控中不到任务制执行ParticipantAssignmentNormalNormalN/AN/AN/AApplicationAssignmentNoneYesN/AN/AN/AUseofworkflowRelevantDataNormalNormal可用于参可用于可用于路由控制数传递路由控条件制条件表7-2:实体类型与不同任务类型间关系用法注意事项:转移约束,子流程和路由将在有关转移的章节中叙述。通常,正常的转移约束可以在过程环境内任务边界级予以描述,反之,则特殊的流转条件(子流程,或一路由任务内在部分)操纵任务的内部(但可以在过程定义环境中引用任务)。下图展示了任务及其变化的一般结构:Figure7-1:任务结构及转移条件其中实现类型为NONE者,工作流任务是手工控制的,其完成需要明确地通告工作流管理系统。这样的任务可以典型地包含承担某些非自动任务的参与者的说明,且完成时通知超级用户。工作流相关数据可以(潜在地)在任何任务中引用,虽然其在手工任务中的使用未在过程定义中描述。其中子流程类型的任务,任何传递到调用(子)过程的IN类参数必需在调用过程/任务中已声明为工作流相关数据,或者继承自环境包。(类似放的要求适用于需返回调用流程的OUT参数)。路由及块任务不直接操作工作流相关数据,但可以在接合/分叉控制逻辑里条件表达式中引用这些数据。<xsd:elementname="Activity"><xsd:complexType><xsd:sequence><xsd:elementref=“xpdl:Description"minOccurs="0"/><xsd:elementref=“xpdl:Limit"minOccurs="0"/><xsd:choice><xsd:elementref=“xpdl:Route"/><xsd:elementref=“xpdl:Implementation"/><xsd:elementref="xpdl:BlockActivity"

温馨提示

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

评论

0/150

提交评论