工作流管理系统(数据库)
时间:2022-12-23 12:30:01 | 来源:信息时代
时间:2022-12-23 12:30:01 来源:信息时代
工作流管理系统 : 管理工作流的软件系统,分为四类: 计算机支持协同工作(CSCW)、商用工作流管理系统、商用事务管理系统和事务性工作流管理系统。CSCW依靠人工干预来协调和控制,以保证执行的正确性和可靠性。商用工作流管理系统提供面向系统的任务控制和协调机制,但是在出现系统故障或执行失败时需要人工干预。商用事务管理系统可支持事务的四个基本性质ACID(原子性、一致性、隔离性和持久性),但不能完全支持工作流的要求。事务性工作流管理系统完全由系统来进行任务控制、任务协调、保证工作流执行的正确性和可靠性。这种系统将事务处理系统的恢复和并发控制能力与商用工作流管理系统的分布事务控制和协调能力结合起来。
根据工作流管理联盟建议的参考模型,在工作流管理系统中主要应包括如下的组件: 工作流过程定义工具、管理和监控工具、工作流使动服务、工作流应用和与其他工作流管理系统的接口。如图1所示。这个结构给出了工作流管理系统的主要组件和接口。在这个参考模型中,核心组件是工作流使动服务。
图1 工作流参考模型
为了使工作流使动服务和其他组件进行通信,工作流使动服务和其他组件的接口被设计成工作流API和交换格式。
在工作流管理系统中,可以通过过程定义工具定义某组织的一个工作流,在这个定义中,给出了该工作流所包含的所有任务、任务之间的执行次序和数据依赖。为了定义一个组织的工作流,工作流管理联盟还提供了工作流过程定义元模型,指明工作流定义应包含的工作。
工作流管理和监控工具负责检查和报告工作流运行状态,以及系统中各场地的状态。
工作流应用可分为工作流客户应用(client application)和被调用的应用(invoked application)。工作流客户应用是需要人工介入的应用,工作流引擎与这些应用间的通信是通过工作列表(work list)实现的,工作列表是交付给特定用户的工作流任务的一个队列。工作流列表处理器是一个软件,在涉及人工操作的活动中负责与终端用户交互。工作流引擎负责向工作流列表添加新任务,而工作列表处理器负责检索工作流任务并交付给用户执行。
工作列表的实现可采用不同的方式,主要有以下几种:
(1)基于主机方式: 工作列表的管理由主机来完成,而对工作列表的访问是经过工作流引擎的本地接口实现。
(2)共享文件存储区方式: 工作列表处理器作为一个客户应用,通过共享的文件存储区进行通信。文件存储区要保证主机和客户都能访问。
(3) 电子邮件(E-mail)方式: 通过电子邮件方式进行通信,支持工作项在各个参与者上的分布。工作列表存储在客户端。
(4)过程调用/消息传递方式: 通过过程调用或者其他消息传递机制进行通信。可以根据实现需要将工作列表存储在工作流引擎这一端或工作列表处理器的一端。
被调用的应用包括两种类型,一是对于遗留系统,通过一个标准的“应用代理”来实现与被调用的应用间的非标准化通信,而代理和工作流引擎间的通信是标准化的; 二是对于新开发的工作流使能的应用,这些应用使用标准的API和工作流引擎通信。一些应用调用接口(接口3)如表1所示。
表1 应用调用接口
接口类型 | 工作流相关数据存取 | 标准化候选者 |
本地进程调用 | 本地文件 | 否 |
Shell脚本 | 本地文件 | POSIX环境 |
ORB调用 | 通过引用 | 是 |
远程执行调用 | 通过引用 | 是 |
消息传递(例如 X.400) | 嵌入的或通过引用 | 是 |
事务(例如OSI-TP) | 嵌入的或通过引用 | 是 |
对于遗留系统这样的应用,通过应用代理与工作流引擎通信,以获得工作流引擎的调度信息或者将自身的执行状态通知给工作流引擎。应用代理隐藏了和具体应用间的通信细节,是应用的封装。对于工作流使能的应用,使用WfMC推荐的标准API接口和工作流使动服务交互,应用直接从工作流引擎获得调度信息或者应用将自身的执行状态直接通知工作流引擎。
工作流使动服务(workflow enactment service)是一种软件服务,由一个或多个工作流引擎组成。这个服务可以创建、管理和执行工作流实例。工作流应用通过工作流编程接口(WAPI)挂接到这个服务上。工作流使动服务在物理上可以是集中式的或分布式的。工作流使动服务访问外部的资源需要经由以下两个接口:
(1)客户应用接口(接口2): 通过这个接口,工作流引擎和一个工作列表处理器交互,工作列表处理器负责组织安排工作任务,它从工作列表中选择并将任务交付给处理实体执行,有时它还会激活某些应用程序。
(2)被调用的应用接口(接口3):通过这个接口,工作流引擎可以直接驱动一个特定的工具来完成某一活动,典型的活动是一个无需用户干预的基于服务器的应用。
在一个分布式工作流使动服务中,几个工作流引擎协同工作,每个引擎控制过程使动中的一部分并与它所负责的任务中的用户及相关的应用程序相互作用。这样的使动服务要求有共同的命名和管理范围。分布的工作流系统使用特定的协议和交换格式在工作流引擎间来同步它们的操作。
对于其他工作流管理系统中的使动服务,通过接口4,可以实现一个工作流管理系统和另外一个工作流管理系统之间的通信。