工作流引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等工作。
工作流管理系统可以包含一个或多个引擎,并通过API向外部提供五个方面的功能服务,这些功能分别为:
- 接口1-流程定义的导入导出
为了提供一个访问和描述工作流定义的公共方法,需要引入一个工作流元数据模型(meta-data Model),这个模型确定了流程定义中用到的一般的实体,这些实体都有不同的属性,不同厂商开发的工具可以根据公共的交换形式向工作流运行环境传送这些模型,传送可以通过API实现,也可以通过批量(Batch)传送实现。这些实体包括:
· 工作流流程定义
· 工作流流程活动
· 过渡信息(Transition Information)
· 工作流参与者
· 组织模型
· 工作流应用程序
· 工作流相关类型
· 工作流相关数据
· 系统和环境数据
· 数据类型和表达式
- 接口2-同客户端应用程序和工作列表处理程序之间的交互
定义工作流管理系统必须提供的类型、数据结构、API和错误代码,并以C语言头文件的形式提供。接口2所提供的功能主要包括:
1、 会话的建立和与撤销;
2、 获取工作流流程定义及状态;
3、 工作流流程实例的操作,如创建、挂起、终止流程,获取和设置流程属性等;
4、 工作流活动实例的操作,如获取和设置活动的属性,改变活动的状态等;
5、 工作列表(worklist)及工作项(workitem)的操作,如获取工作列表,处理工作项等。
- 接口3-软件工具和应用程序的调用
用户可以完成与工作流管理系统之间交互的所有任务:登录系统、打开自己的工作列表、处理自己的工作任务、将完成的任务提交给系统、将自己的任务转交给其他用户等等。
- 接口4-不同工作流管理系统之间的协同工作
主要包括:
1、 创建流程实例;
2、 获取流程实例状态;
3、 获取和设置流程实例属性;
4、 启动或终止流程实例;
5、 改变流程实例的状态;
6、 改变流程实例的属性;
7、 更新流程实例。
- 接口5-管理和监视功能
规范定义各种审计信息的数据格式,格式包括:
1、流程实例(Process Instance)审计信息:包括创建、启动流程实例和子流程实例的审计数据;流程实例状态变化的审计数据;流程实例属性变化的审计数据;
2、活动实例(Activity Instance)审计信息:包括活动实例状态变化的审计数据;活动实例属性变化的审计数据;
3、工作项(Workitem)审计信息:包括工作项状态变化的审计数据;工作项分配合重新分配的审计数据;工作项属性变化的审计数据;
4、远程操作审计信息:包括开始和停止会话(Session)的审计数据;远程创建流程实例和远程改变流程实例状态的审计数据;远程获取和设置流程实例属性的审计数据;会话管理的审计数据;
5、流程定义审计信息;
6、扩展的审计信息及专用的审计信息。
通过这五个接口,工作流管理系统可以同外部的软件工具进行交互,提供给使用者,以简化开发难度、降低成本并提高效率。