工作流

工作流

谨以此文向从事工作流研究的前辈们致敬

目录

1    工作流介绍    1

2    工作流类型    1

2.1    按工作流的性质分    1

2.2    按照重复性分    1

2.3    按照结构化程度分    1

2.4    按流程与数据表单的关系分    1

2.5    按应用类型分    1

2.6    按工作流模式分    2

3    工作流的应用场景    2

3.1    业务流程辅助办公软件    2

3.2    软件内部工作的顺控制    2

3.3    自动筛选查询类系统    2

3.4    自动化控制中    2

4    工作流平台介绍    2

4.1    Bigbross Bossa    3

4.2    Breeze    3

4.3    Con:cern    3

4.4    COSA    3

4.5    Enterprise Workflow    3

4.6    Freefluo    3

4.7    I-Flow    3

4.8    IBM Websphere    3

4.9    Jbpm    3

4.10    Microsoft Biztalk Server    3

4.11    MQ/Series Workflow    4

4.12    Open Business Engine    4

4.13    OpenWFE    4

4.14    OneFlow    4

4.15    Oracle BPEL Process Manager    4

4.16    Osworkflow    4

4.17    OpenEbXML    4

4.18    OFBiz    4

4.19    ObjectWeb Bonita    4

4.20    Panagon Workflo    4

4.21    PowerFolder    4

4.22    Shark    5

4.23    Staffware    5

4.24    SynchroFlow    5

4.25    TeamkWARE Flow    5

4.26    TIB/InConcert    5

4.27    Taverna    5

4.28    Twister    5

4.29    Unisys    5

4.30    Visual and Panagon Workflow    5

4.31    Werkflow    5

4.32    wfmOpen    5

4.33    XFlow    6

4.34    ZBuilder    6

 

 

工作流概述

 

 

工作流的理论起源于70年代中期办公自动化领域.

80 年代初期,在个人计算机尚未作为信息处理工具而出现的时候,人们为了提高信息收集、处理、储存、应用、传递、共享的效率,而希望建立一种无纸化的计算机工作环境,于是一些公司建立了自己专用的或可商品化的表单传递应用系统(Forms-rooting application),这些系统通常运行在大型机或小型机上,用于实现日常表单处理的电子化和自动化,这种系统可以看成是现代工作流管理系统的一个雏型。

80 年代中期,FileNet 和ViewStar 等图形图像处理公司率先开拓了工作流产品市场,成为最早的一批工作流产品供应商。他们把图像扫描、复合文档、结构化路由、实例跟踪、关键字索引以及光盘储存等等功能结合在一起,形成了一种用于文档处理的图像处理系统,它可以把扫描得到的计算机文档,按照一定的规则发送给相关人员,这便是早期的工作流管理系统。

90年代,工作流技术的研究与开发进一步发展。1993年8月,第一个工作流技术标准化的工业组织WFMC(工作流管理联盟Workflow Management Coalition)成立。1994年,WFMC发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。

现在,工作流管理系统已由最初的无纸化办公环境,转而成为企业实现业务流程自动执行的必要工具。工作流在企业应用中的比重也越来越大

 

工作流类型

按工作流的性质分

事项指导型

工作流主要是由可预见的活动组成,用于执行可重复和可预测的业务流程,

流程在使用之前需要定义流程所需的全部信息

流程的参与者按流程定义的步骤按步就班的完成事项。系统会指引参与者完成事项,并跟据事先定义的算法对参与者输入的数据进行分析,并自动选择运行轨迹

事项记录型

主要由参与者的交互来执行,存在很多循环流、反向、跳转,

任务可能需要流程参与人经过多方协商才能达成一致。

由于有一定的不可能预见性,因而对工作流进行建模时会比效复杂

工作流除了要为参与者提供业务指导,还要记录下业务有办理轨迹,为决策提供数据支持

项目定制型

项目比效松散,周期长,参与人员多,非自动化的任务多,无法确定项目的具体发展方向、趋势,流程执行前很难完全或不可能指定流程的所有信息,只有在流程执行过程中才能指定这些信息

一般是为某些大型项目定制和流程,是一个松散的,在进行过程中会跟据前面的执行情阔别`况对后面的步骤改动或重新制定。并且会跟据业务需要会调用大量的子流程

业务管理型

用于实现企业业务流程的自动化

系统所管理的流程与相应执行业务的人员、部门直接相关,企业的业务完全在系统的控制下进行

企业业务的制定、实施、监管、分析都通过系统实现,同时系统会将运行时的数据分类汇总,为新流程的制定与旧流程的调整提供决策支持

需要企业全员参与

 

按照重复性分

重复的

相同的业务类,相同的轨迹,只是具体的数据不同

重复但无规律

相同的业务类,由于具体的数据不同,运行的轨迹可能有所不同

唯一特定的

只为某个特定的事项制作一次,事项完成后流程不会再用了

 

按照结构化程度分

完全结构化

执行逻辑事先可以完全确定

半结构化

只能实现确定一部分,有一部分要根据实际来具体确定

非结构化

活动顺序无法实现确定,或可任意选择,活动的后续无法地设计流程时预料,参与者需要规化流程的后续

 

按流程与数据表单的关系分

流程与数据表单分离

流程与数据表单各自独立,表单是数据接口,流程是状态控制器,状态与数据通过关系作简单联

业务数据入流程

有一部分业务数据会进入流程,流程会跟据业务数据的值选择分支方式与操作方式

业务数据流程

流程与数据表单是一体的,

流程中有大量的汇总类结点,

流程支持多支数据传入与传出

流程可以对业务数据分流会和并

流程的独立的,不基于用户操作的数据触发体系

 

按应用类型分

工控类

 

办公类

 

数据处理类

 

为某种功能软件提供结构化的逻辑控制

 

 

按工作流模式分

如何选择工作流模式

一个简单的判断标准

影响工作流程的一些重要的选择是否发生在工作流外部?是否由用户进行控制?

如果是,那就不适合采用流模式。而最好选用状态机模式

 

因为流模式本质上是对工作流的路径建模,将路径信息都编码到了模型之中。但是在某些时候,业务并不关心路径,而只关心结果,并且不关心结果是如何实现的。

这时要用流模式,就需要画出许多复杂的路径流程,但是这些复杂的路径却并非我们所关注的问题。而最后往往是维护路径的付出远远大于维护业务模块。

在实际设计中,模式的应用并不是泾渭分明的。同一工作流,在不同参与者的眼中就有不同的模式。

如一个请假的工作流,参与都有两种:申请人、审批人

在申请人眼里,他所参与的工作流是[流模式]

在审批人眼里,他所参与的工作流是[状态机模式]

流模式

Sequential

1.适合一个比效机械化的流程

2.在这种流程中,参与者处于一种被动的局面,他必须沿设定的路线一步一步完成。

1:MIS系统中,一个操作机器的工作流:

(开使->1 –> 2 -> 修理 -> 2-> 1 -> 结束)

在这个工作流中,需要严格按流程操作。而且在[修理]结点处可能还要调用一个修理某类设备的工作流。

 

2:比如一个购物的工作流:

(开使->浏览->选择->缴费->取货 -> 结束)

在该例中,流程序顺的严格性就显得不是很重要,比如[缴费][取货]结点谁先谁后就不是很重要,只要[缴费][取货]都完成了就可以结正常[结束]该流程。

对于像这样的业务需求,就可以使用状态机模式

 

流模式的执行并非完全是顺序的。它们仍然可以接收外部事件或者启动并行任务,在这种情况下,可能会有状态机模式的表现形式。但就其设计与维护方式来说仍是 流模式

状态机模式

(State Machine )

在状态机模式下,参与者的自主性比效大,工作流更多的是一个提醒的作用

:一个审批流程:有六个部门批准才能通过,这六个部门的审批行为是独立进行的,不受其他部门结果的影响,可以使用状态机模式,配合规则实现

A.六个部门审批行为是并行模式

B.规则可以使用:全票通过,一票通过,简单多数,绝对多数,额定通过,等

另外状态可以由一种进入到另一种,如上例出现平票状态后,将进入联合听证流程

 

工作流的应用场景

业务流程辅助办公软件

不同行业者有各自独立的业务流程,使用一些业务流程管理软件可以提高流程效率并降低出错率,

比如审批类、办公类、采购类、MSI、电子商务、电子政务、电子法务、以及需要按一定的业务流程办公的所有领域的办公辅助系统中都可以使用工作流

软件内部工作的顺控制

很多时候,在不涉及业务的情况下,对软件的自身协调控制也有很复杂的流程,

比如一个需要设置很多参数的软件安装向导、一个窗体内各控件间复杂的锁定关系、一个软件中多个窗体相互调用的顺序都可以用工作流实现

 

自动筛选查询类系统

比如招投标系统中的自动开标模块、考生录取系统中的自动投档模块、搜索引擎的自动分析模块,可以使用工作流管理这些模块的运算方案与运算路径

 

自动化控制中

在工控系统中,有时需要控一个的顺序对一系列的机器进行控制,可以使用工作流管理这些控制

 

工作流平台介绍

以下平台跨越了几个时代,每个平台对工作流的发展做出了贡献,本文只是按字母排列,对这些平台做简单介绍

 

Bigbross Bossa

轻量级的引擎,使用Petri网定义工作流,不要求关系数据库,能和Java应用集成。

 

Breeze

一个轻量级、跨平台、基于组件的工作流引擎原型。

 

Con:cern

工作流引擎基于扩展的案例(case)处理方法,流程由一组具有前后条件的活动组成

 

COSA

以Petri网的形式来描述业务流程,

支持分布式的工作流引擎。

提供HTML 格式的工作列表处理器和Lotus Notes 的集成。

通过API,活动可以采用脚本或编程来实现。

在1999 年,被Baan 选作为标准的工作流产品集成到它的ERP 产品中。

支持复杂的组织模型,包含单位、组、工程及其他很多角色

支持带有并行分支的复杂流程

通过使用日历,支持时间控制机制

Enterprise Workflow

是面向影像处理的工作流解决方案。

提供基于表单的开发环境,用于事务处理、图像和OCR/ICR。

集成影像技术

图形化的脚本工具能满足活动节点的开发

Freefluo

是一个使用Web Service的工作流协同工具,可以处理WSDL的Web Service调用。

支持两种XML格式的工作流语言:IBM的WSFL和XScufl。

Freefluo它的核心是不与任何工作流语言或执行架构关联的可重用协同框架。

Freefluo包括可执行使用WSFL一个子集描述的工作流的运行库。

I-Flow

可以以流程定义还不完全时就开始运行,

可以在流程实例正在运行时修改流程定义。

它使用与Lotus Notes、Microsoft Exchange 具有相同功能的TeamWARE 组件,来实现电子邮件、文档管理和用户识别等功能。

它的附属产品Dolphin 是具备实时定义和流程直接运行特点的特定型工作流。

 

IBM Websphere

系列产品

IBM的流程管理工具市场上占有率约为 24%。

 

Jbpm

Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License

集成到Redhat

使用Hibernate来管理数据

商务逻辑定义采用了它自己定义的JBoss jBPM Process definition language (jPdl)

它结合应用了状态图,活动图,PetriNet

 

Microsoft Biztalk Server

资料说它的市场占有率为约17%。

 

MQ/Series Workflow

IBM

集成Lotus Notes。

工作流引擎通过XML 编码格式的MQSeries 消息能与应用程序及其他工作流引擎进行互操作。

 

Open Business Engine

一个开放源码的Java工作流引擎,基于J2EE实现

支持WfMC规范,包括接口1(XPDL)、接口2/3(WAPI)和接口5

OpenWFE

一个开放源码的Java工作流引擎。

包括引擎、工作列表和Web界面。

流程定义语言虽然XML格式

OneFlow

EFI

印刷品的解决方案

 

Oracle BPEL Process Manager

BEA

在流程管理工具方面的市场上占有率约为15%。

 

Osworkflow

opensymphony

 

Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action

 

OpenEbXML

一个ebXML框架,主要支持由 UN/CEFACT和OASIS发布的ebXML规范2.0版。

 

OFBiz

工作流引擎基于WfMC和OMG的规范,使用XPDL作为流程定义语言

 

ObjectWeb Bonita

是一个符合WfMC规范的协同工作流系统。

对于各种动作如流程概念建模、定义、实例化、流程控制和用户交互等提供了全面的集成图形工具。

基于浏览器、使用SOAP和XML数据绑定技术的Web Services封装了已有的工作流业务方法并将它们以基于J2EE的Web Service形式发布

Panagon Workflo

可定制的特定型工作流管理系统

集成Panagon 文档管理系统

支持从流程定义到管理的全Web 方式

自动生成Web 界面

 

 

PowerFolder

包括开发人员使用的studio,管理环境和一个运行时引擎。

 

Shark

Enhydra

Shark完全基于WfMC和OMG标准,使用 XPDL作为工作流定义语言。流程和活动的存储使用Enhydra DODS。

 

Staffware

活动节点可以通过表单定义或脚本语言来实现,

能将活动分发到Lotus Notes 和Microsoft Exchange 环境下。

有面向对象的开发工具箱,提供了RAD 集成开发环境。

SynchroFlow

SynchroFLOW 是一个中间件平台产品,不是一个最终产品

主要解决网络通信、数据库可靠性连接、业务流程逻辑的处理、通用组件以及快速开发等应用开发过程中所遇到的通用问题

产品提供了一个开发平台和一个运行平台

基于J2EE 平台,符合WfMC 标准。

TeamkWARE Flow

集成Lotus Notes 和Exchange

附带特定型工作流Dolphin:能实时发布和运行

集成表单定义工具和ActiveX 控件

已停止开发,被I-Flow 所代替

 

TIB/InConcert

如果流程实例运行时发生异常或需要修改,可以实时进行修改。

提供流程定义工具,并且流程定义可以通过客户机/服务器、Java 和基于HTML 的客户端进行发布。

Taverna

Taverna项目的目标是提供一种语言和软件工具,方便在eScience中使用工作流和分布计算技术。

 

Twister

面向B2B的工作流解决方案。

流程引擎基于BPEL业务流程规范和Web Service标准。

 

Unisys

是集成影像技术、工作流、文档管理、Web 技术、COLD 和ERP 的表单解决方案。

使用Microsoft VBA 技术,能快速执行和集成应用程序

支持Web 客户端和传统的LAN 客户端

支持基于XML 表单的Web 互动

 

Visual and Panagon Workflow

它可以通过API 开发定制的工作列表处理器和活动节点。

流程定义的过程是面向对象的,它提供类的继承结构,并使用图表方便流程变量的定义

工作流引擎集成Panagon 文档管理系统

提供了基于Web 的用户界面和面向用户的流程定义工具。

Werkflow

是一个可扩展的基于流程和状态的工作流引擎。

它的目标是满足可以想象的所有工作流程,从企业级的业务流程到小范围的用户交互流程。

通过使用可插拔和分层结构,可以方便地容纳各种工作流语义

wfmOpen

WfMOpen是WfMC和OMG中所谓工作流设施(workflow facility)

J2EE实现

工作流通过扩展的XPDL描述。

XFlow

XFlow运行于EJB和servlet容器中

ZBuilder

开放源码产品。

为不同的工作流引擎和工作流定义了一组标准的JMX管理接口。

 

 

 

posted @ 2008-12-23 10:01  WXWinter(冬)  阅读(13148)  评论(10编辑  收藏  举报