什么是工作流
在 Forrester Report 提出的关于工作流程概念定义中,将工作流程比喻为“信息河流”。即日常的业务处理或协同工作能按预先定义好的规则和过程进行流动,并且这一流动过程能被跟踪和监控。
工作流管理系统的分类:
一、目前在市场上可以见到的工作流系统从技术角度可以分为下面几个类型:
1. 基于Domino的工作流管理系统
由于Domino在群件市场上的普及率,加上莲花公司对工作流概念的大力宣传,人们很容易误认为Domino是一个工作流系统。实际上这种观点是完全错误的。Domino充其量是一个可以编写带有流程的应用的编程和运行环境,其本身并不具备一个工作流管理系统的特征,如图形化的工作流定义、独立的工作流引擎、清晰的工作流访问接口等。应用程序所需要的每一个工作流特性,都需要自己手工编写。为了弥补Domino的不足,国内一些OA厂商在Domino上添加了用其他语言编写的图形化工作流定义组件,但这仍然不能叫做一个工作流管理系统。
基于Domino的工作流管理系统的典型例子实际上还是莲花公司推出的,叫做Domino Workflow™。它运行在Domino平台上,为开发工作流应用提供了很大的便利。当然,人们只能在Domino平台上使用它。在为其他平台开发应用时,人们必须求助于别的工作流管理系统。
2. 基于消息中间件的工作流管理系统
这方面的典型代表是IBM公司的MQSeries Workflow。它通过MQSeries将不同的应用集成在一起,并形成业务流程。它没有一个集中的工作流引擎。当进行分布式的应用系统的集成时,它是一个不错的选择。但当你需要为运行在单一服务器上的应用提供工作流功能,而且不想因此而购买一大套消息中间件的时候,你必须考虑别的选择。
3. 基于微软平台的工作流管理系统
这方面的典型代表是Ultimus和微软公司在BizTalk中提供的工作流组件,它们为基于微软平台的工作流应用提供支撑。
4. 基于J2EE的工作流管理系统
这类系统是我们本文讨论的重点。随着Java技术的日趋成熟和应用面的扩大,绝大多数企业级的应用系统开始基于J2EE技术来设计,对在J2EE平台上的工作流系统的需求也越来越大。这种工作流系统应用能够充分发挥J2EE技术的优势,提供高度的可靠性、可扩展性和安全性。E-way workflow™是属于这种类型的系统。
二、从产品化程度和存在形态来说,又可以分为两类:
1.嵌入在已有产品中的工作流组件
凡是国内从事OA产品研发的公司都生成自己的产品有工作流功能。但是,应该指出,大多数OA产品中只是包含了一个图形化的流程定义工具,并不是一个真正的工作流系统,不具备完整的工作流引擎、工作流管理功能,也没有清晰定义的接口,其提供的功能有限,与系统的其他部分紧密耦合,不可能作为统一的工作流平台来建立各种应用系统,如行政审批系统,也无法提供给其他开发商使用。其他一些系统,如内容管理系统,往往也含有自己的工作流管理功能,其情形也差不多。
2.产品化的工作流管理系统
这种系统从一开始就作为单独的工作流管理系统来设计,考虑到了符合相关的国际标准,由专业产商以产品的形式推出,并提供给其他厂商在各个行业的应用系统中采用,或由用户在进行系统整体设计的时候统一采购。E-way workflow™是产品化的工作流产品。
三、从工作流产品和宿主系统之间的关系来说,又可以分为两类:
1.封闭的开发环境
这种产品强调在一个平台中提供完整的工作流引擎、表单工具和组织结构及权限管理工具。这种产品的典型例子是Ultimus和FormFlow,这对于快速创建简单的基于流程的应用确实有帮助。但是,它们的问题在于,其系统结构一般是封闭的。应用系统的开发者要么完全接受它所强制提供的结构,要么完全不采用它。在开放性越来越成为趋势的情况下,这种产品难以被用于构建大型的复杂的系统。
2.开放的可嵌入的工作流产品
这类产品的设计思路与上面的一类不同,它们特别强调开放性和嵌入到宿主系统中的能力,采用组件化设计,并遵守业界的标准提供访问接口和扩展机制。这类系统的典型代表是e-way workflow。它能够迅速地嵌入到宿主系统中,并引用宿主系统的组织结构模型,而不会对宿主系统的结构产生负面的影响。E-way workflow属于这种类型。