工作流
目前,企业规模在不断扩大,信息资源正以惊人的速度增长,面对这样一个异构、分布、松散耦合型的计算环境,虚拟组织、分布决策以及客户/服务器结构、联邦系统和分布式处理技术(WWW、CORBA、OLE、Java),无不预示着以前单一的集中化信息处理方式的终结。实现这一切,首先要建立一个相关任务能以有效的集中管理方式执行的异构分布式执行环境,工作流管理系统由此孕育而生了。
1. 概念
工作流(workflow)是为提高工作效率而提出的,目前尚无统一、明确的定义。工作流管理联盟(Workflow Management Coalition)将工作流定义为:业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标。
2. 与工作流相关的基本概念及其联系
业务流程(Business Process): 在功能确定的组织结构中,能够实现业务目标和策略的相互连接的过程和活动集。例如,投保过程、项目开发过程等。
过程定义(Process Definition): 业务流程的形式化描述,用来支持系统建模和运行过程的自动化。过程可分解为一系列子过程和活动,其定义主要包括描述过程起始、终止的活动关系网络以及一些关于个体行为的信息,如组织成员、与IT相关的应用和数据等。
活动(Activity): 活动是过程执行中可被工作机调度的最小工作单元,要求有人或机器的参与。
工作流管理系统(Workflow Management System,WFMS): 一种能定义、创建和管理工作流执行的系统。它可通过单个或多个工作机运行,并能存储和解释过程定义。
过程/活动实例(Process/Activity Instances): 实际运行中的一个过程或活动。每个实例代表一个能独立控制执行、具有内部状态的线程,可被外界通过标识进行存取。
3. 工作流系统分类
工作流系统根据其用途和技术的不同,可分为以下四种:
(1) Administrative工作流: 用于执行简单协同规则的、可重复和可预测的流程,它的执行步骤和规则是事先定义的,不要求控制复杂流程和访问多个信息系统。例如申请学位、登记车辆。
(2) AdHoc工作流: 多用于执行办公流程或处理异常情况,能够提供合作协同功能,但不控制各工作顺序,支持它的WFMS也叫群件。
(3) Collaborative工作流: 主要由参与者的交互来刻画,不像其他类型的工作流总是向前流转,它还包括循环流和反向流。由于不可能预先定义后面的流程,因而很难使用现有工具对该类动态工作流进行建模。
(4) Production工作流: 工作流的高级形式,是关键业务流程的一种实现,直接关系到组织的功能,一般指大规模复杂异构的执行环境,包含各类任务、人和组织。信贷业务和保险业务都属此类典型的例子。
4.工作流管理
工作流管理(Workflow Management)即支持业务流程及信息过程重组的技术,主要包括以下三方面:
1)业务流程建模及工作流描述: 工作流描述是流程的抽象,其抽象层次高低取决于工作流描述的目的。业务流程建模是为了获得一个业务流程的工作流描述,其建模方法有两种基本类型:基于通信和基于活动。
基于通信的方法: 这种方法认为业务流程重组的目标是提高顾客的满意度。顾客和执行者之间的活动简化成四步工作流环:准备、协商、执行和接受。多个工作流环组成完整的业务流程。然而此方法存在明显不足之处:不能表明活动可否并行发生或者是否存在联系;不适合以其他对象为目标的业务流程建模;不支持工作流的演化。
基于活动的方法: 这种方法重在对工作的建模而不是人们之间的承诺。现有系统大多采用此方法,如InConcert工作流包含多种任务及子任务,同一层次的各任务互相联系,每一任务都有指定角色来执行。通常系统支持任务的嵌套,各抽象层次是工作流描述的视图。高抽象层次帮助跟踪控制业务流程,低抽象层次能获取工作流的需求。
工作流描述通常需要一种工作流模型来支持,由它的描述语言来实现。工作流模型包括一系列描述过程、任务、任务间关系及角色的定义。工作流描述语言比标准语言更高级,有图形化描述语言和基于规则的描述语言,它们都支持描述:任务结构(控制流)和任务间信息交换(数据流);异常处理;任务持续时间;优先级属性等。
基于规则的描述语言用路径规则定义工作流结构和数据流,路径规则包括条件的、基于规则的和平行的。图形化描述语言提供了对工作流及任务描述的图形化界面,支持用图标代表任务,并用箭头联系各任务。
2)业务流程重组: 业务流程是以市场为中心的组织行为描述,为获取商业合同或满足特定顾客需求而策划,业务流程重组是对它的重新设计。流程重组的目标是设计一个"更好"的工作系统,流程优化策略依赖于重组的目标,例如提高顾客满意度、降低业务成本、提供新产品和新服务等。
业务流程重组有两类设计方法:
体系的重设计: 从评价现有业务流程入手改进它们,进行消除、简化、综合,从而产生新的业务流程,并得到理想输出。
全新的设计: 从产品或服务角度考虑的思想,即以重组目标为出发点重新设计业务流程。
第一种方法能发挥短期效益,而第二种则可能更好地改善业务流程,达到远期目标。尽管两种方法出发点各异,但都在不同程度上对当前流程进行分析和评价,在很多情况下两者是综合应用的。
业务流程重组是基于业务流程模型的,工作流描述中对流程高层次的描述为重组提供了推理的便利。重组应该是对原来的信息系统的映射,这要求新流程的工作流描述仍能被旧系统的功能和数据所支持。
3)工作流执行和自动控制: 业务流程的描述与执行可采用松散耦合方式(如由软件工程师来完成工作流描述)或紧密耦合方式(如由工作流描述作为WFMS的输入,解释产生代码来控制执行)。现有系统利用工作流描述来产生相对应的工作流执行,多采用紧密耦合方式。相关问题涉及工作流模型、描述语言、测试分析和指导工具、系统结构和互操作性、执行支持、可靠性和正确性。
工作流测试工具: 可模拟工作流来触发一定的事件,发现某些逻辑错误;分析工具主要用于预测工作流中的瓶颈;指导工具用于控制工作流的进展。一些系统利用开放的C/S结构和完整的API,以电子邮件或共享数据库支持用户与系统间的信息交流。
执行支持: 用来支持工作流执行的某些功能,例如工作流动态变化、事件的指示和通知、用户管理。
可靠性和正确性: 工作流执行过程中会访问多个对象,WFMS必须提供相应的并发机制和事务协调功能。当多个用户访问同一数据对象时,并发控制是很重要的。有些系统提供访问进入和退出检查;有些系统允许多个用户同时存取。系统会根据用户要求对各版本进行合并,当然合并失败时会破坏一致性;另一些系统利用地址传递/值传递方式。工作流恢复问题涉及在工作流异常终止时状态的正确判断以及消除一个不能完成或已经被废弃的工作流。