工作流管理系统是定义、创建、执行工作流的系统。一般而言,在高层上,所有的WfMS都将包含如下三大功能模块,即建立时功能、运行时控制功能及同用户及应用程序的交互功能。关于这三大功能的划分及相互之间的关系,见图2.3左。
[img]/upload/attachment/114271/a3d5e352-9197-3d15-aeb0-ae50745f8d75.png[/img]
图2.3、功能模型和参考模型之间的对应关系
(左边是功能模型、右边是参考模型)
[color=red][b]1.建立时功能[/b][/color]
建立时功能的主要目标是通过某种分析、建模及系统定义手段,将现实世界的业务过程转化成某种能够被计算机处理的形式化表示,这种形式化表示,称为过程定义(也称过程模型)。
过程定义中一般都包含对业务过程中的各个活动步骤的描述,这些活动相关的各种计算机或人工操作,以及在各活动之间进行切换的各种控制规则。过程定义中所定义的,实际上就是控制工作流过程执行的各种参数。一种应用得比较多得模型是“有向图”。这种表示法用一个有向图表示某个业务过程,有向图中得各个节点表示此业务过程中得各活动步骤,而连接各节点之间得有向边则表示活动之间得控制及数据流动关系。
在各活动中,一般都包括该活动的起始及终止条件、完成时间上的限制、能够参与这些活动中的那些用户或角色,用以完成此项活动所需要的应用程序及信息资源。有向边表示在满足某种控制条件下(一般是某种形式的逻辑表达式)需要向后续节点传递哪些数据,它实际上描述活动之间的依赖关系及连接关系。
[color=red][b]2.运行时实例控制功能[/b][/color]
主要进行在某个计算环境中工作流过程的管理及各活动步骤之间的状态转换。运行时控制系统将解释过程定义,完成过程的可操作实例的创建及控制,调度过程中各活动步骤,为所涉及的用户生成待其处理的任务,并在合适的时机调用有关的应用程序资源等等。这些服务一般称为“工作流执行服务”,可能通过一个工作流引擎提供服务,也有可能用到多个协作的工作流引擎。
工作流引擎是工作流运行时控制系统的核心部分,各种过程实例的执行都是由它所负责完成的。在过程实例的执行过程中,工作流执行服务将维护一组用于控制实例执行的数据,包括同各过程相关的一些初始状态信息、正在被执行的活动实例信息、检查点信息及用于系统恢复和重新启动的信息等。这些数据统称“工作流控制数据”,它们可能是集中维护的,也可能是分布在多个不同的工作流引擎。控制数据与过程定义及其相关的数据一道,将被用于控制在过程各活动步骤之间的游历,提供有关活动步骤的启动与终止规则、不同活动的并行与顺序执行选项,以及同各活动相关的用户任务及应用程序等的信息。
[color=red][b]3.运行时同用户及应用的交互功能[/b][/color]
主要完成对工作流实例执行过程中各种活动的处理。在过程实例的执行过程中,经常需要用户通过某种应用程序,完成过程定义所要求完成的处理与操作。工作流执行服务也可能需要自动调用有关的应用对数据进行处理,如将某些数据写入某个数据库系统中、调用某个应用程序对数据进行某种转换等。
运行时交互功能的一个核心概念是“工作项”。当工作流执行服务发现某个活动的完成需要用户的参与时,它将会生成一个“工作项”。工作项描述的是处理相应的任务所需要的全部信息,如待处理的数据、可能用到的应用程序等。WFMC将维护一个由所有待处理的工作项构成的“工作项池”。对每个用户而言,系统都将为之维护一个待其完成的工作项的清单,这个清单称为“工作项列表”。不同的系统将采用不同的方式来维护工作项列表。
WFMC一般均提供相应的工作流客户程序,显示用户的工作项列表。用户可以通过这些客户程序,列出需要它完成的所有任务。当用户选定某个任务并对它进行处理时,客户程序将负责启动相关的应用(一般是根据过程定义)并对它进行初始化(例如用从其他活动传递来的数据或过程定义中的初始数据等)。这些应用程序称为工作流应用。
工作流应用所生成并处理的数据为“工作流应用数据”。这种数据将只被工作流应用处理,但工作流执行服务可能需要将它们在不同的活动所调用的应用程序之间传递。
工作流应用所生成或修改的一部分数据可能用到活动之间切换条件的计算以及其他的一些控制操作,这部分数据称为“工作流相关数据”。
为了实现不同工作流产品之间的互操作,WFMC在工作流管理系统的相关术语、体系结构、应用编程接口等方面制定了一系列标准。在WfMC所使用的众多准则中,有一个称为工作流参考模型。它是工作流管理系统结构的通用描述,其中总结了主要部件和相关接口,包括五个基本部件和五个基本接口。图2.3右描述了该工作流参考模型,图2.3并且描述了功能模型和参考模型之间的内在联系。
该模型说明工作流系统的核心是工作流执行服务。系统的这部分推动着流程在组织中的流转。执行服务确保按照正确的次序由正确的人执行正确的活动。为此,必须使用由流程定义工具生成的过程定义和资源分类。除了描述过程和组织,这些工具还经常为分析技术(如仿真)提供便利。工作项通过工作流客户应用程序提供给雇员。通过选中一个工作项,雇员能够开始执行具体流程的特定任务。执行任务时,有时需要启动应用程序。可以被工作流系统启动的所有应用程序被称为被调用的应用程序。工作流跟踪、案例控制和员工管理则由所谓的管理和监控工具支持。
为了完成上述功能,WFMC定义的5类接口的功能(见图2.3右),在本工作流系统实现中用以实现:
[list]
[*] 接口1:过程定义交换接口:定义了过程模型的互换格式和读写操作。通过GUI流程建模工具生成一个xml文件,该xml需要符合一定的格式,并最终被接口1模块解析,并导入数据库中,形成流程模型数据。
[*] 接口2:客户端函数接口,约定所有客户应用与工作流服务之间的功能操作方式。通过一个Web用户工作项列表,把用户需要完成的任务列出来,并通过连接的方式让用户连接到该人工活动业务,并引导用户一步步完成他所应该完成的工作。
[*] 接口3:应用程序接口,工作流机和直接调用的应用程序之间的直接接口。通过Java接口和动态载入类的机制,引擎会执行用户指定的各种实现类,或执行外部一些EXE,批处理,脚本语言等。
[*] 接口4:互操作接口,定义不同工作流管理系统之间的信息交互。在当前版本只实现单引擎
[*] 接口5:系统管理与监控接口,实现对工作流的管理和监控。管理界面其实是接口2和接口3的一个应用。提供用户查询,动态管理流程,动态改变参与者,并可以使用一些EXE,批处理,存储过程等外部工具,并能在工作流管理系统中被调用。
[/list]
工作流执行服务器周围的接口是WAPI(workflow APIs),通过这些接口可以访问工作流系统的服务,这些接口还控制工作流控制软件与其他系统组件间的交互。在这5个接口中的许多功能,都是被2个或更多个接口同时拥有的,因此场WAPI可以看作是统一的服务接口,可以交叉使用这5个接口来支持工作流管理功能,而不是单独的使用其中某个接口。
[img]/upload/attachment/114271/a3d5e352-9197-3d15-aeb0-ae50745f8d75.png[/img]
图2.3、功能模型和参考模型之间的对应关系
(左边是功能模型、右边是参考模型)
[color=red][b]1.建立时功能[/b][/color]
建立时功能的主要目标是通过某种分析、建模及系统定义手段,将现实世界的业务过程转化成某种能够被计算机处理的形式化表示,这种形式化表示,称为过程定义(也称过程模型)。
过程定义中一般都包含对业务过程中的各个活动步骤的描述,这些活动相关的各种计算机或人工操作,以及在各活动之间进行切换的各种控制规则。过程定义中所定义的,实际上就是控制工作流过程执行的各种参数。一种应用得比较多得模型是“有向图”。这种表示法用一个有向图表示某个业务过程,有向图中得各个节点表示此业务过程中得各活动步骤,而连接各节点之间得有向边则表示活动之间得控制及数据流动关系。
在各活动中,一般都包括该活动的起始及终止条件、完成时间上的限制、能够参与这些活动中的那些用户或角色,用以完成此项活动所需要的应用程序及信息资源。有向边表示在满足某种控制条件下(一般是某种形式的逻辑表达式)需要向后续节点传递哪些数据,它实际上描述活动之间的依赖关系及连接关系。
[color=red][b]2.运行时实例控制功能[/b][/color]
主要进行在某个计算环境中工作流过程的管理及各活动步骤之间的状态转换。运行时控制系统将解释过程定义,完成过程的可操作实例的创建及控制,调度过程中各活动步骤,为所涉及的用户生成待其处理的任务,并在合适的时机调用有关的应用程序资源等等。这些服务一般称为“工作流执行服务”,可能通过一个工作流引擎提供服务,也有可能用到多个协作的工作流引擎。
工作流引擎是工作流运行时控制系统的核心部分,各种过程实例的执行都是由它所负责完成的。在过程实例的执行过程中,工作流执行服务将维护一组用于控制实例执行的数据,包括同各过程相关的一些初始状态信息、正在被执行的活动实例信息、检查点信息及用于系统恢复和重新启动的信息等。这些数据统称“工作流控制数据”,它们可能是集中维护的,也可能是分布在多个不同的工作流引擎。控制数据与过程定义及其相关的数据一道,将被用于控制在过程各活动步骤之间的游历,提供有关活动步骤的启动与终止规则、不同活动的并行与顺序执行选项,以及同各活动相关的用户任务及应用程序等的信息。
[color=red][b]3.运行时同用户及应用的交互功能[/b][/color]
主要完成对工作流实例执行过程中各种活动的处理。在过程实例的执行过程中,经常需要用户通过某种应用程序,完成过程定义所要求完成的处理与操作。工作流执行服务也可能需要自动调用有关的应用对数据进行处理,如将某些数据写入某个数据库系统中、调用某个应用程序对数据进行某种转换等。
运行时交互功能的一个核心概念是“工作项”。当工作流执行服务发现某个活动的完成需要用户的参与时,它将会生成一个“工作项”。工作项描述的是处理相应的任务所需要的全部信息,如待处理的数据、可能用到的应用程序等。WFMC将维护一个由所有待处理的工作项构成的“工作项池”。对每个用户而言,系统都将为之维护一个待其完成的工作项的清单,这个清单称为“工作项列表”。不同的系统将采用不同的方式来维护工作项列表。
WFMC一般均提供相应的工作流客户程序,显示用户的工作项列表。用户可以通过这些客户程序,列出需要它完成的所有任务。当用户选定某个任务并对它进行处理时,客户程序将负责启动相关的应用(一般是根据过程定义)并对它进行初始化(例如用从其他活动传递来的数据或过程定义中的初始数据等)。这些应用程序称为工作流应用。
工作流应用所生成并处理的数据为“工作流应用数据”。这种数据将只被工作流应用处理,但工作流执行服务可能需要将它们在不同的活动所调用的应用程序之间传递。
工作流应用所生成或修改的一部分数据可能用到活动之间切换条件的计算以及其他的一些控制操作,这部分数据称为“工作流相关数据”。
为了实现不同工作流产品之间的互操作,WFMC在工作流管理系统的相关术语、体系结构、应用编程接口等方面制定了一系列标准。在WfMC所使用的众多准则中,有一个称为工作流参考模型。它是工作流管理系统结构的通用描述,其中总结了主要部件和相关接口,包括五个基本部件和五个基本接口。图2.3右描述了该工作流参考模型,图2.3并且描述了功能模型和参考模型之间的内在联系。
该模型说明工作流系统的核心是工作流执行服务。系统的这部分推动着流程在组织中的流转。执行服务确保按照正确的次序由正确的人执行正确的活动。为此,必须使用由流程定义工具生成的过程定义和资源分类。除了描述过程和组织,这些工具还经常为分析技术(如仿真)提供便利。工作项通过工作流客户应用程序提供给雇员。通过选中一个工作项,雇员能够开始执行具体流程的特定任务。执行任务时,有时需要启动应用程序。可以被工作流系统启动的所有应用程序被称为被调用的应用程序。工作流跟踪、案例控制和员工管理则由所谓的管理和监控工具支持。
为了完成上述功能,WFMC定义的5类接口的功能(见图2.3右),在本工作流系统实现中用以实现:
[list]
[*] 接口1:过程定义交换接口:定义了过程模型的互换格式和读写操作。通过GUI流程建模工具生成一个xml文件,该xml需要符合一定的格式,并最终被接口1模块解析,并导入数据库中,形成流程模型数据。
[*] 接口2:客户端函数接口,约定所有客户应用与工作流服务之间的功能操作方式。通过一个Web用户工作项列表,把用户需要完成的任务列出来,并通过连接的方式让用户连接到该人工活动业务,并引导用户一步步完成他所应该完成的工作。
[*] 接口3:应用程序接口,工作流机和直接调用的应用程序之间的直接接口。通过Java接口和动态载入类的机制,引擎会执行用户指定的各种实现类,或执行外部一些EXE,批处理,脚本语言等。
[*] 接口4:互操作接口,定义不同工作流管理系统之间的信息交互。在当前版本只实现单引擎
[*] 接口5:系统管理与监控接口,实现对工作流的管理和监控。管理界面其实是接口2和接口3的一个应用。提供用户查询,动态管理流程,动态改变参与者,并可以使用一些EXE,批处理,存储过程等外部工具,并能在工作流管理系统中被调用。
[/list]
工作流执行服务器周围的接口是WAPI(workflow APIs),通过这些接口可以访问工作流系统的服务,这些接口还控制工作流控制软件与其他系统组件间的交互。在这5个接口中的许多功能,都是被2个或更多个接口同时拥有的,因此场WAPI可以看作是统一的服务接口,可以交叉使用这5个接口来支持工作流管理功能,而不是单独的使用其中某个接口。