《WFMC参考模型.ppt》由会员分享,可在线阅读,更多相关《WFMC参考模型.ppt(99页珍藏版)》请在三一办公上搜索。
1、东华大学计算机学院,WFMC参考模型,主要内容,主要内容,主要内容,WFMC参考模型,工作流管理联盟提出的WFMC参考模型,其中包括了有关工作流管理系统的一些规范,定义了工作流管理系统的结构及其与应用、管理工具和其他工作流管理系统之间的应用编程接口;其主要目的是为了实现工作流技术的标准化和开放性,从而支持异构工作流管理系统与产品之间的互操作,支持基础工作流管理系统的应用开发与扩展,并且使得其他的应用可以使用该结构和定义好的通用API(应用编程接口)访问不同的工作流管理系统提供的服务,实现与其他应用的快速有效集成。,工作流管理系统的主要功能,工作流管理系统是一个软件系统,它完成工作流的定义和管理
2、,并按照在计算机中预先定义好的工作流逻辑,推进工作流实例的执行。工作流管理需要一个过程定义工具、一个过程执行引擎、用户和应用接口用来访问和激活工作请求、监控和管理工具以及审计功能,有的系统还提供了适配集成工具,拓展了业务过程中工作流集成的柔性。每个业务过程都有一个生命周期,从几分钟到几天(甚至数月),由过程的复杂性与组成活动的持续时间来决定。有多种方法实现工作流管理系统,使用多种IT和通讯组件,运行环境可以从一个小的本地工作组到企业间。但所有的工作流管理系统都会展现一些共有的特性,这为不同产品间的集成和互操作性提供了一个基础。工作流参考模型为构建工作流系统和不同的实现方法提供了一个公共的基础。
3、,三个功能区,定义态功能:对工作流过程与其组成活动定义、建模;运行态控制功能:管理在运行环境中的工作流过程,调度工作流活动的演进;交互功能:在运行态,为处理不同活动步骤进行的与用户、IT应用工具间的交互。,基本特性以及主要功能之间的关系,建立时期功能,建立时期的功能负责产生业务过程的计算机化定义。通常把定义的结果称为过程模型、过程模板、过程元数据、或者过程定义。过程定义由一系列分散的活动、相关的计算机、人员操作、活动间控制过程进程的规则构成。有些工作流系统允许在运行时期改变过程定义,在上图中如反向箭头所示。WFMC没有把过程定义的初始阶段作为规范的一部分,但这是区分不同WFM产品的重要标志。,
4、运行时期过程控制功能,在运行时期,过程定义由负责创建、控制过程实例的软件所解释,这个软件并负责安排过程中各个活动的执行时间,调用适当的人员、IT应用程序资源等。这体现了工作流管理系统在运行时期的控制功能,这些控制功能,就像过程定义中描述的过程与现实所见到的实际过程间的联接,反映在运行时期的用户与IT应用程序间的交互。这些控制实现了流程的演进,也控制了工作中对资源的利用。在控制功能的表现中,核心组件是基本工作流管理控制软件(工作流引擎engine),负责过程的创建与删除,控制运行过程中活动的执行时间安排,以及与人、应用工具资源进行交互。工作流引擎经常是分布与多个计算机平台中的,用来处理在大的地域
5、跨度中操作的过程。,运行时期活动交互,工作流过程中的活动总是与人类的操作有关,交互经常是在使用特殊的IT工具后,或者信息处理操作需要一个特殊的应用程序来操作一些信息时,交互才被意识到。在活动间转移控制、确定过程的运行状态、调用应用工具、传递适当的数据等,都必须与过程控制软件进行交互。制定标准的框架来支持这种交互,有如下好处:在多工作流系统中使用一致的接口;可以开发工作于不同工作流产品中的通用应用工具。,参与者间分配任务,在参与者间分配任务和信息的能力是工作流运行时期组件的主要区分特性。分配功能可能在各种不同的级别上进行(从工作组到企业间),这要依靠工作流的范围,因此,这也许会使用多种不同的消息
6、机制(电子邮件、消息传递、分布式对象技术等)。工作流制定服务(任务分配)是核心功能组件,通过接口提供给用户、以及分布在工作流范围内的应用程序。每一个这样的接口都是一个潜在的、可以与其他工作流制定服务、其他基础组件或应用程序组件进行集成的点。,强调分配问题的上层工作流体系结构,WFMC定义的所有接口,过程定义数据,以及过程定义数据的转换规范 支持不同工作流系统间协同工作的接口 支持与各种不同IT应用程序交互的接口 支持与用户交互的接口 提供系统监视,以及标准功能来简化复合工作流应用环境管理的接口,工作流管理系统的体系结构,为了能够更好地支持企业业务过程建模、分析和实施,适应全球市场的多元化趋势,
7、以及实现各种独自开发的工作流系统之间的交互,需要对该类产品与技术建立相关标准,从系统结构、术语使用、接口实施方面提供标准化与规范化的定义,并以此为基础实现不同工作流产品之间的互操作,便于与其他应用系统的集成。,工作流参考模型的体系结构图,Amit Sheth的定义,工作流是涉及到多任务协调执行的活动,这些任务分别由不同的处理实体来完成。一项任务定义了需要做的某些工作,它可用各种形式来进行定义,包括在文件或电子邮件中的文本描述、一张表格、一条消息以及一个计算机程序。用来执行任务的处理实体可以是人,也可以是计算机系统(比如一个应用程序、一个数据库管理系统)。,工作流参考模型,1993 年,WfMC
8、的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之间的互操作,WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。,工作流参考模型是一个经验模型,工作流参考模型确定了工作流管理系统的基本架构,该架构是开发工作流软件时应当采纳的系统模型,当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。,系统的核心部分是工作流引擎,该引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之
9、间通讯等等工作。WfMC没有针对引擎的实现提供具体的标准,因为对引擎做过多的约束并没有多大的现实意义。,工作流参考模型 构件和接口,五个方面的功能服务,接口1流程定义的导入导出接口2同客户端应用程序和工作列表处理程序之间的交互接口3软件工具和应用程序的调用接口4不同工作流管理系统之间的协同工作接口5管理和监视功能,什么是工作流执行服务器,“工作流执行服务器”定义由一个或多个工作流引擎构成的软件服务器,用来创建、执行、管理工作流实例。应用程序可能会通过WAPI来与这个服务交互。,设计逻辑上的分离,在模型中,过程与活动控制逻辑间有一个逻辑上的分离,活动控制逻辑构成工作流执行服务器;过程与应用工具间
10、、与终端用户任务间也有一个逻辑上的分离,应用工具和任务建立起对每个相关活动的处理。这种逻辑上的分离,为制定更多的行业标准提供了机会,也为在工作流程序中集成用户具体的应用工具提供了机会。,客户端应用程序接口,客户端应用程序接口(The client application interface),通过这个接口工作流引擎可以与任务表处理器交互,代表用户资源来组织任务。然后由任务表处理器负责,从任务表中选择、推进任务项。由任务表处理器或者终端用户来控制应用工具的活动。,应用程序调用接口,应用程序调用接口(The invoked application interface),允许工作流引擎直接激活一个应
11、用工具,来执行一个活动。典型的是调用以后台服务为主的应用程序,没有用户接口;当执行活动要用到的工具,需要与终端用户交互,通常是使用客户端应用程序接口来调用那个工具,这样可以为用户安排任务时间表提供更多的灵活性。,分布式的工作流执行服务器,在分布式的工作流执行服务器中,每个工作流引擎控制过程执行的一部分,并与这部分过程中的活动所要用到的用户、应用工具进行交互。在分布式的执行服务器中有公共的名称空间与管理范围的,从而过程定义、用户/应用程序的名称在一致的标准下被处理。分布式工作流系统,在工作流引擎间采用特殊的协议和信息转换格式,来同步工作流引擎的操作、过程交换和活动控制信息。也许工作流相关数据也要
12、在工作流引擎间进行传递。在单一的工作流执行服务器中,这些操作都是由开发商自己定义的。,工作流引擎能处理,解释过程定义;控制过程实例创建、激活、挂起、终止等;为过程的活动导航,可能要包含顺序或者平行的操作、最后时间期限、对工作流相关数据进行解释;参与者签名和退出;确定任务项目,实现用户意图,提供接口,支持用户交互;维护工作流控制数据和工作流相关数据,在应用程序间或者用户间传递工作流相关数据;提供调用外部程序的接口,连接所有工作流相关数据;提供控制、管理和审查功能。,异种的工作流执行服务器,在异种执行服务器间要有公共的命名方案;异种执行服务器都要支持公共的过程定义对象和属性;支持工作流相关数据在异
13、种执行服务器间的传递;支持过程、子过程或者活动在异种工作流机间的传递;支持公共的管理和监视功能。,过程实例的基本状态变迁方案,过程实例的基本状态变迁介绍,Initiated(初始化)过程实例被创建,包括与过程状态相关的日期、工作流相关数据,但是过程还没有满足条件,不能执行。Running(运行)过程实例已经执行,过程中的活动如果条件满足就可以执行。Active(激活)过程中的一个或者多个活动已经被执行。Suspended(挂起)过程实例被静止,并且过程中的活动不能执行,直到过程返回到running状态。Completed(结束)过程实例满足结束条件;所有的完成后操作都将被执行(例如记录日志、或
14、者统计信息),并且销毁过程实例。Terminated(终止)过程实例在正常结束前被停止;所有的完成后操作都将被执行(例如记录错误信息、或者恢复数据),并且销毁过程实例。,活动不能被中断,活动是不能被中断的,例如工作流执行服务器一旦开始了一个活动,就不能挂起或者终止这个活动。这就意味着,只有在所有运行中的活动结束后,并且过程返回到running状态,才能对过程执行挂起、重启、终止等命令。另外,可能需要把几个活动放在一起作为“原子单元”,这些原子单元要执行就全部被执行完,如果中途出现异常则返回到开始点,重新执行。,活动实例的基本状态和转移,活动的基本状态,Inactive 过程实例中的活动已经被创
15、建,但是还没有激活(例如,活动的进入条件没有满足),并且没有任务需要处理。Active 创建好的任务,分配这个活动来处理。Suspended 活动实例被静止,并直到活动返回到Inactive状态,才能为其分配任务。Completed 活动实例执行完成。,工作流应用编程接口与数据交换,WAPI可以被看作是一套由工作流执行服务器支持的API调用和数据交换集合,这个集合在在工作流执行服务器的边界处,负责与其他资源交互。尽管结构中涉及到了WAPI中的5个接口,但是每一个接口中的许多功能都是公共的(即,同时被2个或者多个接口共同拥有)。WAPI的主要功能由API调用组成。,工作流控制数据,工作流执行服务
16、工作流引擎通过内部的工作流控制数据来辨别每个过程或活动实例的状态。这些数据由工作流执行服务工作流引擎进行控制。用户、应用程序或其他的工作流引擎工作流执行服务不能对其直接进行读写操作,它们可以通过向工作流执行服务工作流引擎发消息请求来获得工作流控制数据的内容。,工作流相关数据,工作流管理系统通过工作流相关数据来确定过程实例状态转换的条件,并选择下一个将执行的活动。这些数据可以被工作流应用程序访问并修改,因此,工作流管理软件需要在活动实例之间传递工作流相关数据。,工作流应用数据,这种数据是指那些由应用程序操作的数据。它们是针对应用程序的,是企业完成具体的业务功能所需要的数据,如产品结构数据、定单数
17、据、生产作业计划数据等。工作流管理系统无法也不需要对它们进行访问。,数据交换,工作流相关数据和应用程序数据的交换,都需要访问WAPI,来支持在3个运行时期功能中的协同工作:任务表处理器(Interface 2)应用程序调用(Interface 3)工作流引擎交换(Interface 4),由Email驱动的工作流系统,由Email驱动的工作流系统是一种典型的应用程序数据的直接交换,在这样的系统中,应用程序数据“物理地”在活动间进行传递。这些情况下,不需要明确定义活动与应用程序数据间的关系;应用程序数据作为标准工作流活动导航的一部分进行传递,并且在应用程序调用时在本地直接(已经传递过来)与程序相
18、关。需要在活动间提供数据格式转换时,应用程序需要定义与之相关的数据类型,可以作为一个属性来定义。,工作流应用程序数据交换,客户端应用程序接口(Client applications)工作流相关数据可以包含在任务中。工作流相关数据也可以通过共享的对象存储形式来间接传递。应用程序调用接口(Invoked applications)依靠应用程序调用接口进行数据转换,可能需要在调用服务中,把数据包含在具体应用程序协议中。激活的工作流应用程序可以使用读/写工作流相关数据的API,或者用这些API来构造通用应用程序代理。工作流引擎协作接口(Workflow Engine Interoperability)
19、与客户端应用程序接口相似,尽管在不同的系统中支持不同的应用程序数据交换方法,但是网关功能的使用,需要在两种方法间进行影射,也要处理名称问题。,过程定义工具,有许多不同的工具可以用来分析、建模、描述业务过程;这样的工具有很大的不同,从非正式的(铅笔和纸)到成熟的、十分专业的。工作流模型不关心这些工具的特性,也不关心在过程建立时期它们是如何交互的。在以前指出过,这些工具可以作为工作流产品的一部分来提供,或者一个单独的产品,例如BPR工具集。有的工作流产品提供了其自己的过程定义工具,从而过程定义一般是保留在工作流产品范围内的,并且可能或者不能被读/写信息的编程接口所访问。而使用单独的过程定义和执行服
20、务器产品,过程定义能够在不同的产品间进行转换,并可以被其他产品访问。设计活动和最后的过程模型输出,称为过程定义。在运行时期过程定义可以被工作流引擎解释。,工作流定义转换(接口1),在建模或定义工具与运行时期工作流管理软件间的接口,被称为过程定义导入/导出接口。这个接口的特点是:转换格式和API调用,从而支持过程定义信息间的互相转换。通过这接口规范,许多不同厂商提供的工具可以进行工作流流程的分析、建模、描述和归档等工作。为这些工具提供公共的流程交换格式,以支持在这些不同的产品之间传送工作流流程定义。此外,接口1还定义了设计环境与运行环境之间交换的规范,以使不同的建模工具产生的流程定义可以输入到不
21、同的工作流产品的运行环境中。,过程定义信息间的互相转换,使用标准的过程定义格式有很多好处,首先,把建立阶段与运行时期环境进行了分离,可以使用一个建模工具来产生过程定义,这个过程定义可以作为很多个不同工作流运行时期产品的输入。从而用户可以单独地选择建模工具和工作流运行时期产品。其次,可以为几个工作流引擎输出过程定义,这几个工作流引擎合作来构成分布式的工作流执行服务器。,WFMC在过程定义作了两方面的工作,提出了一个元模型,可以用来表示过程定义中的对象、对象间的关系和属性。这个元模型为不同的产品间的过程定义相互转换奠定了基础,并形成了一套转换格式。定义了工作流系统间或工作流系统与过程定义产品间的A
22、PI调用,提供了公共的方法来访问工作流过程定义。访问可能是读、读/写或者只写操作,并且操作标准对象集合(在元模型中定义的对象集合),或者产品自己的对象集合。,基本元模型,所谓元模型一般是指描述模型的模型。这里的工作流模型的元模型是用来描述工作流模型内在联系的模型。它用于描述工作流模型内部包含的各个元素、元素之间的关系及元素的属性。这个元模型有利于建立可以在多个工作流产品之间交换信息的模型。WFMC开发了一个过程定义的元模型。元模型中定义了基本的对象类型集,来满足简单的过程定义相互转换。或者有开发者具体扩展,或者在增加的功能中定义另外的一直性级别来增加更多的对象类型。,基本元模型,工作流类型定义
23、(Workflow Type Definition),它包含诸如工作流模型名称、版本号、过程启动和终止的条件、系统安全、监控和控制信息等一系列基本属性。这个过程模型反映了一个业务过程的目的,即这个过程要实现的目的和最终达到的目标。,活动(Activity),主要属性有活动名称、活动类型(原子级活动、子流程等)、活动的前后条件、调度约束参数(如最长处理时间、排队等待时间等)等。当工作流运行在分布的环境下时,在活动的属性中还应该包括执行该活动的工作流引擎的位置。活动相应于企业业务过程中的任务,主要反映完成企业业务过程需要执行哪些功能操作。,转移条件(Transition Conditions),主
24、要负责为过程实例的推进提供导航依据,主要参数包括工作流过程条件(flow condition,过程实例向前推进的条件,可以认为是前后条件的同义词)、执行条件(execution condition,执行某个活动的条件)和通知条件(notification condition,通知不同用户的条件)。转移条件对应于企业业务过程中的业务规则和操作的顺序。,工作流相关数据(Workflow relevant data),工作流引擎根据工作流相关数据和转换条件进行推进。工作流相关数据的属性包括数据名称、数据类型和数据值等。它是工作流引擎执行任务推进的依据。,角色(Role),角色属性主要包括角色的名称、
25、组织实体(organizational entity)、角色的能力等。角色或组织实体决定了参与某个活动的人员或组织单元。它主要描述业务过程中参与操作的人员和组织单位。,应用程序调用(Invoked Application),主要属性包括应用程序的类型、名称、路径及运行参数等。应用主要描述用于完成企业业务过程所采用的工具或手段。,元素之间的关系,过程定义元模型的组成核心是活动。工作流定义与活动、工作流相关数据之间是一对多的关系,即一个工作流定义由多个活动与多个工作流相关数据组成。活动、角色、工作流相关数据、被调应用、转换条件之间都是多对多的对应关系。如一个活动可以引用多个角色、使用多个工作流相关
26、数据,同样,一个角色可以被多个活动引用,一个工作流相关数据可以被多个活动使用。,分布式工作流的过程定义,在分布式工作流服务器中,可能要在过程定义时,为每个工作流引擎分配活动,可以作为活动的一个附加属性。过程定义能影响安全性与管理。,访问过程定义的API,WfMC 定义的工作流管理系统接口1 描述了过程定义输入与输出接口。这个接口为在不同物理或电子介质之间传递过程定义信息提供了交互的形式和API调用函数。用来支持访问过程定义数据的API命令集。命令集应该提供命令操作表,和操作的对象、属性。,API 函数在建模方面功能,通信建立:建立各个参与运行的系统之间的通信连接,并且在完成协作后断开通信连接。
27、工作流模型操作:对过程模型的名称进行检索,并完成对过程模型对象的读写操作等。工作流模型对象操作:在建模工具中完成创建、检索和删除对象的操作,并可以完成创建、设置和删除对象属性的操作。,具体描述,建立会话(Session Establishment)连接/断开参与系统间的会话工作流定义操作(Workflow Definition Operationis)从过程定义库或者其他资源中,获得工作流过程定义的名称列表 选择工作流过程定义,为更多的对象级操作提供会话句柄 读/写上层工作流过程定义对象工作流定义对象操作(Workflow Definition Object Operations)创建、恢复、
28、删除工作流定义中的对象 恢复、设置、删除对象的属性,参与者定义(组织机构模型),这是一个组织机构模型的工作流相关部分的静态定义。组织机构模型被定义为一系列工作流参与者以及它们之间的关系。工作流参与者是通过一个类型与其关联信息被定义的。这个定义包含一个基本的工作流参与者类型集合:组织单元(Organization Unit)、人员(Human)、角色(Role)以及资源(Resource)。角色和资源的使用是抽象的方式。在运行态,这些抽象定义被评估并赋给具体的人和程序。组织机构接口被用于活动定义(描述一个活动的执行者)以及过程定义(描述一个过程的责任人)中。,组织机构元模型,参与者实体类型,参与
29、者实体类型属性按特性把参与者划分为个人、组织单元或抽象资源,其WPDL关键字是ORGANISATIONAL_UNIT、HUMAN、ROLE和RESOURCE。,组织机构单元,如果一个组织机构单元被指定,那么管理者或一个组织机构单元的所有成员都可以得到工作项。上级描述列表刻划了由上之下的层次结构,包含了一个有序层次列表。人员描述列表包含一个组织单元内的所有成员。组织机构单元的主要属性包括功能、管理者、上级以及人员列表。,人员,在大多数的工作流过程中,一个人员是通过他的角色、组织机构单元等间接指定的。角色描述列表包含那个人员的所有角色,组织机构单元描述列表包含他所在所有的单元,代理人描述列表包含他
30、的所有代理人。人员的属性包括姓名、电话、传真、电子邮件、所在单位、代理人以及角色。,角色,这种类型允许通过角色指定执行者。角色可以说是属于某组织机构的人员的一种功能。因为一个功能不必是唯一的,一个协调员(管理或异常处理)可能被定义,一些人员与这个角色相关。角色的属性包括功能、协调员以及人员列表。,资源,这种类型允许通过一种资源指定执行者。资源可以是一个程序或一台机器。对于资源来说,没有预先定义的属性。,参与者分配类型以及实体之间的关系,工作流客户端应用程序,任务表处理器是在需要调用人类资源的活动中,用来与终端用户进行交互的软件。任务表处理器可以作为工作流产品的一部分提供给用户,也可以由用户自己
31、开发。在其他情况中,工作流可能要与普通的办公系统进行集成,例如Email,来为终端用户提供一个统一的任务管理系统。这就要求在工作流执行服务器与工作流客户端应用程序间有一个非常灵活的通信机制,来构建各种可能遇到的运行系统。,任务表的交互,在工作流模型中,通过客户端应用程序与工作流引擎间的定义良好的接口进行交互。在这个接口中包含任务表由工作流引擎分配给用户的任务序列。最简单的情况是,工作流引擎访问任务表,来把任务分配给用户;任务表处理器访问任务表,向任务表中添加任务项。有许多不同的产品来实现任务表的交互。,任务表中任务项的操作,任务表中任务项的激活(例如,启动应用程序,连接工作流相关数据),可能是
32、由工作流客户端应用程序或者终端用户控制的。在工作流客户端应用程序与工作流执行服务器间定义了一系列的方法,用来向任务表中添加任务项、从任务表中删除完成的活动、激活临时挂起的活动等。,调用应用程序,与任务表相关的部分活动的数据,是任务表处理器用来调用应用程序所必须的信息。当应用程序数据是强类型时,在任务表处理器中要存放一个联接,用来实现程序的调用。在其他情况中,在任务表处理器与工作流引擎间要进行完全的应用程序名称和地址信息的交换;这时,工作流客户端应用程序也可能实现一些应用程序调用接口(接口3)中的功能,来获得必要的信息。,任务表的复杂性,任务表中可能要包含一个过程中的几个不同实例的相关任务,或者
33、包含几个不同过程中的一个共同活动项。一个任务表处理器可能要与几个不同的工作流引擎、几个不同的工作流执行服务器进行交互。按照每个产品的实现,为每个过程单独维护一个物理上分开的任务表,或者任务表处理器把几个不同的任务表联合到一起,呈现给终端用户。,客户端应用程序API方法的一个总揽,客户端应用程序API使用概述(1),建立会话(Session Establishment)连接/断开参与系统间的会话工作流定义操作(Workflow Definition Operations)对工作流过程定义名称或者属性的恢复/查询功能过程控制功能(Process Control Functions)创建/开始/结束
34、一个过程实例 挂起/唤醒一个过程实例 在过程实例或活动实例中强制一个状态发生改变 查询过程实例或活动实例的属性,客户端应用程序API使用概述(2),过程状态功能(Process Status Functions)打开/关闭过程实例或活动实例的查询,设置过滤标准 获取过程实例或活动实例的详细信息 获取具体过程或活动的详细信息任务表/任务项处理功能(Worklist/Workitem Handling Functions)打开/关闭任务表查询,设置过滤标准 获取任务表中的项目 通知选择/重分配/结束一个任务项 查询任务项属性,客户端应用程序API使用概述(3),过程管理功能(Process Sup
35、ervisory Functions)改变过程定义或者它的实例的运行状态 改变某种类型的所有过程实例或活动实例的状态 为某种类型的所有过程实例或活动实例的属性赋值 终止所有过程实例数据处理功能(Data Handling Functions)恢复/返回工作流相关或应用程序数据应用程序调用(Application Invocation)上边对功能的概括,为支持任务表处理器对应用程序调用提供了基础。应用程序调用功能的一些命令是与客户端应用程序环境相关的。有些产品可以只实现全部WAPI的一部分;以后会给出进一步的考虑,定义一致性级别,来满足市场中不同的产品间的,不同的协作需要。,应用程序调用问题,所
36、有的WFM产品都没有足够的逻辑单元,知道如何调用所有的应用程序,这些应用程序存在异种的产品环境中。这就需要,能够处理在所有平台下和网络环境中进行调用的逻辑,并需要能使用公共格式和编码进行应用数据或相关数据传递的方法。,应用程序调用方法,许多工作流系统能够使用了更多受限制的应用程序,特别是那些采用强制数据类型和直接与应用程序相连的系统。在其他情况中,应用程序对操作的调用,可能是通过边准的交换机制来实现的。一些实现使用了“应用程序代理(Application Agent)”,把这些在在标准接口之后的各种方法包含在工作流执行服务器中。也有可能开发“Workflow enabled”应用工具,这种工具
37、使用标准的API集来与工作流执行服务器进行通信,来接收应用程序数据、信号和响应活动事件等。这些API可以被应用工具直接调用;也可以被应用程序代理过过程调用,作为与其他应用程序(不包含任何工作流技术的程序)交互的前端。,应用程序调用用到的一些接口类型,应用程序调用接口(接口3),应用程序调用的可能情况,在简单的情况中,工作流引擎在本地处理应用程序调用,使用过程定义中的信息来确定活动的性质、将要调用的应用程序的类型和所需的数据。被调用的应用程序可能存储在工作流引擎中,或者与工作流引擎一同存储在相同的平台下,或者存放在一个独立的网络访问的平台中;过程定义中有足够的应用程序类型和寻址信息(工作流机的特
38、殊需求),来实现应用程序调用。在这种情况下,应用程序命名与寻址的协定是处于工作流引擎与过程定义之间的。,应用程序调用可以使用的一些命令概括,创建会话(Session Establishment)连接/断开应用程序会话活动管理功能(Activity Management Functions)开始活动 挂起/恢复/放弃 活动 活动完成通知 信号事件 查询活动属性数据处理功能(Data Handling Functions)提供工作流相关数据 提供应用程序数据或数据地址,协同工作能力,WFMC的一个主要目标是,为不同开发商的工作流系统产品,相互间能够进行无逢传递任务项定义标准。标准工作流引擎必须具有
39、协同操作能力。,协同工作范围,WFMC把焦点聚集到,开发多种不同的协同工作框架,这些框架可以操作一系列标准的协调工作;从简单的任务传递到整个工作流系统的协同工作(包括过程定义转换、工作流相关数据交换、通用的界面等);简单的协同工作,WFMC的协同工作定义将在最初就能支持;而复杂的协同工作,还需要进一步的研究。,工作流引擎协同目标,尽管可以开发一个非常复杂的协同工作框架,由许多个工作流引擎构成一个执行服务器,但是这种框架不会在近期实现;因为这需要所有的工作流引擎都可以解释一个公共的过程定义和共享公共的工作流控制数据集,事实上是维护异种工作流引擎间的一个共享过程视图;现阶段要现实的目标是,能够在运
40、行时期传递过程的某些部分,来支持不同的执行服务器运行。,工作流引擎协同目标,WFMC定义了4个协同工作模型,包含多种协同工作能力级别;下边就来描述这几个模型。模型 1 链锁式模型 2 子过程嵌套模型3 P2P模型 4 相似同步图中使用正方形来表示任务或者活动,用不同的阴影来区别每个工作流执行服务器的任务。,模型 1 链锁式,这个模型中,过程A中的一个连接点,连接到过程B中的一个连接点,连接点可以是过程中的任何一个活动。这个模型支持在两个工作流环境中传递一个任务,这个任务会在第二个环境中独立执行,不需要同步。可以使用一个网关应用功能来实现这种模型,网关负责处理数据格式转换、过程和名称映射等,例如
41、在两个执行服务器中使用标准API调用。,模型 2 子过程嵌套,一个过程可以全部在一个工作引擎范围内执行,封装成父过程的一个任务,在一个与执行父过程不同的执行服务器中运行。在父过程与封装过程间存在一个等级关系,构成父过程的子过程。这种等级关系可以延伸到很多层,形成嵌套子过程。可以实现回归,也可以不实现。,模型 2 子过程嵌套,模型 2 子过程嵌套,工作流执行服务器A 有一个活动(A3),会在过程B结束后执行,过程B在工作流执行服务器B中执行,并在过程B执行结束时,执行服务器会把控制返回给执行服务器A。在模型 1 中,活动控制的传递,要经过两个工作流执行服务器间的应用程序网关功能或者直接的API调
42、用。上图中描述的是一种简单情况,在过程B中只有一个单入口和单出口点,然而在B中的活动导航规则可能会使其他活动也满足此情况,例如在活动B5前过程完成条件就得到了满足,并且控制返回给了工作流A范围。,模型3 P2P,这个模型是一个完全的混合环境;图中指示出了一个复合过程C,C中的活动需要在多工作流引擎执行服务器中执行,形成一个共享范围。活动C1、C2和C5由执行服务器A执行,活动C3、C4和C6由执行服务器B执行。在这个模型中,过程是透明地由任务到任务来推进的,不需要用户或管理员参与,交互只在工作流引擎间存在。,模型 4 相似同步,在这个模型中,允许在本质独立执行两个过程,可以访问独立的执行服务器
43、,但是在两个过程间要有同步点。同步需要,一旦每个过程都达到在其执行序列中的一个预先定义的点,就要激发一个公共事件。这种机制可以用来在交叉执行的线程中进行过程时间安排、检查恢复数据、在不同的过程实例间传递工作流相关数据等。,模型 4 相似同步,WAPI 协调工作功能(接口4),管理和监视工具,为管理和监视功能开发公共的接口标准,这样一个开发商的产品就可以用来管理其他工作流引擎的运行。通过公共的接口,几个不同的工作流执行服务器可以共享管理和监视功能。在某些行业中需要进行全部状态监视和提取信息的功能。WFMC提出的接口,是要让用户能够得到工作流运行状态的完整视图,无论是什么样的工作流系统;同时,也希
44、望能提供一套全面的功能集,进行系统管理,包括安全性、控制和权限。,管理和监视接口(接口5),管理和监视接口(接口5),对此接口还需要进一步的研究,但此接口中至少应包含以下类型的操作:用户管理操作(User Management operations)建立/删除/吊销/修改用户或工作组的权限角色管理操作(Role Management operations)定义/删除/修改 角色的参与者 设置或取消角色属性审查管理操作(Audit Management operations)查询/打印/新建/删除审查记录或事件日志,等资源控制操作(Resource Control operations)设置/取消/修改 过程或活动并发级别 访问资源控制数据(数量、开始、使用参数等),管理和监视接口(接口5),过程管理功能(Process Supervisory Functions)改变工作流过程定义或其扩展过程实例的运行状态 使用/不使用 某个版本的过程定义 改变某一类型的所有过程/活动实例的状态 为某一类型的所有过程/活动实例的属性赋值 终止所有的过程实例过程状态功能(Process Status Functions)打开/关闭 过程/活动实例查询,设置过滤标准 取得过程/活动实例的详细信息 取得特殊过程或活动实例的详细信息,