概述
本人为了处理软件的工作流,而学习工作流。在概略的学习了一下后,从这几个方面对概略的学习做个总结。首先要明白什么是工作流,然后要知道工作流引擎,最后要选择一个优秀的开源工作流来学习。
学习 Osworkflow ,首先要知道它有哪些表,哪些包,哪些接口,这些接口提供什么功能。然后要明白它的工作原理,最后要知道在工程中怎么运用这个工作流
工作流
定义:
Ø 根据 WfMC 的定义,工作流( Work Flow )就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。
Ø Workflow 是用来实现业务流程的自动化;第二、定义中说明一个业务流程的执行,必然会从一个参与者 (participant [ 根据 WFMC 的定义参与都既可以是人也可以是系统或程序] ) 传递到另一参与者;第三、要被正确地自动执行,需要预定一套业务规则。总结一下, Workflow 就是用来解决在一个涉及多个参与者的业务流程中,根据预定的规则连接成完整的交互过程。可以用工业生产中的“流水线”来类比。
应用
Ø 审批流程,公文流转。
Ø 业务流程。
好处
Ø 简化开发:在 一个业务流程中可能包含多个功能点,在传统的开发过程中可能需要一方面关心功能点的功能实现,另一方面还需要关心它们之间的操作顺序关系等。使用工作流 后,相当于把功能实现与功能间的关系分离,实现功能点时,只需要遵守工作流引擎提供的规则,专心实现功能,而功能间的关系由工作流引擎的配置文件进行配置 并由工作流引擎实现流转。
Ø 随需而变:使用工作流系统的最大好处可能就体现在这了,在开发一个业务流程中,往往流程是经常变化的因素之一。
工作流管理
Ø 工作流管理( Workflow Management, WFM )是人与电脑共同工作的自动化协调、控制和通讯,在电脑化的业务过程上,通过在网络上运行软件,使所有命令的执行都处于受控状态。在工作流管理下,工作量可以被监督,分派工作到不同的用户达成平衡。
工作流管理系统
Ø 根据WfMC 的定义,工作流管理系统(Workflow Management System, WFMS )通过软件定义、创建工作流并管理其执行。它运行在一个或多个工作流引擎上,这些引擎解释对过程的定义,与工作流的参与者(包括人或软件)相互作用,并根据需要调用其他的IT 工具或应用。总体来说,实际企业中运作的工作流管理系统,是一个“ 人- 电脑” 结合的系统。它的基本功能体现在几个方面:
· 定义工作流,包括具体的活动、规则等,这些定义是同时被人以及电脑所“ 理解” 的。
· 遵循定义创建和运行实际的工作流。
· 监察、控制、管理运行中的业务(工作流),例如任务、工作量与进度的检察、平衡等
Ø
工作流引擎
定义
Ø 是驱动实体按流程定义从一个参与者流向下一个参与者的机制
组成
Ø 引擎服务层
Ø 事务处理层
Ø 工作流客户端
Ø 工作流定义
Ø 工作流管理监控
Ø
功能
Ø 系统的核心部分是工作流引擎,引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作
Ø 工作流引擎 (Workflow Engine) 负责解析业务流程定义,协调处理活动间的路由,处理客户端的请求(如启动流程、提交工作项、查询工作项、工作流 (Workflow) 监控等等)
Ø
工作原理