作者:Tom Baeyens 翻译:dinghong

开放源代码项目

最后我们看看真实世界中的工作流管理系统。选择一个工作流管理系统是一件困难的事情,但有选择总比没有选择好。:-) 本文阐述工作流基本概念的目的之一,就是使你能够作更好的选择。但我也意识到,对于现在的软件架构师来说,选择工作流系统是一件最具挑战性的工作。

     下面的列表来源于三个地方: my previous article , the list of Carlos E Perez , 和 list by Topicus .

  • jBpm - jBpm 是本文作者编写的一个灵活可扩展的 工作流管理系统 。作为 jBpm 运行时 server 输入的业务流程使用简单强大的语言表达并打包在流程档案中。 jBmp 将 工作流 应用开发的便利性和杰出的企业应用集成( EAI )能力结合了起来。 jBmp 包括一个 Web 应用程序和一个日程安排程序。 jBmp 是一组 J2SE 组件,可以作为 J2EE 应用集群部署。
  • OpenEbXML - OpenebXML 项目致力于提供一个 ebXML 框架,主要支持不久将由 UN/CEFACT 和 OASIS 发布的 ebXML 规范 2.0 版。
  • Werkflow - Werkflow 是一个灵活可扩展的基于流程和状态的 工作流引擎 。它的目标是满足可以想象的所有工作流程,从企业级的业务流程到小范围的用户交互流程。通过使用可插拔和分层结构,可以方便地容纳各种 工作流 语义。
  • OSWorkflow - OSWorkflow 最独到之处是绝对的灵活。
  • wfmOpen - WfMOpen 是 WfMC 和 OMG 中所谓 工作流 设施( workflow facility ) ( 工作流引擎 ) 的 J2EE 实现。 工作流 通过扩展的 XPDL 描述。
  • OFBiz - OFBiz 工作流引擎 基于 WfMC 和 OMG 的规范,使用 XPDL 作为流程定义语言。
  • ObjectWeb Bonita - Bonita 是一个符合 WfMC 规范、灵活的协同 工作流 系统。 对于各种动作如流程概念建模、定义、实例化、流程控制和用户交互等提供了全面的集成图形工具。 100% 基于浏览器、使用 SOAP 和 XML 数据绑定技术的 Web Services 封装了已有的 工作流 业务方法并将它们以基于 J2EE 的 Web Service 形式发布。基于活动预测模型的第三代 工作流引擎 。
  • Bigbross Bossa - 速度非常快、轻量级的引擎,使用富有表达能力的 Petri 网定义 工作流 ,不要求关系数据库,使用简单,能和 Java 应用集成。事实上,它是按嵌入式设计的。
  • XFlow - XFlow 运行于 EJB 和 servlet 容器中。
  • Taverna - Taverna 项目的目标是提供一种语言和软件工具,方便在 eScience 中使用 工作流 和分布计算技术。
  • Enhydra Shark - Shark 完全基于 WfMC 和 OMG 标准,使用 XPDL 作为 工作流 定义语言。流程和活动的存储使用 Enhydra DODS 。
  • PowerFolder - PowerFolder 包括开发人员使用的 studio ,管理环境和一个运行时引擎。
  • Breeze - Breeze 一个轻量级、跨平台、基于组件的 工作流引擎 原型。
  • Open Business Engine - Open Business Engine 是一个开放源码的 Java 工作流引擎 ,支持 WfMC 规范,包括接口 1 ( XPDL )、接口 2/3 ( WAPI )和接口 5 。 OBE 为活动的运行提供了一个可控的集中环境。 OBE 主要基于 J2EE 实现。
  • OpenWFE - OpenWFE 是一个开放源码的 Java 工作流引擎 。 它包括可升级的三个组件:引擎、工作列表和 Web 界面。它的流程定义语言虽然使用 XML 格式,其灵感来源于 Scheme ,一种 Lisp 方言。
  • Freefluo - Freefluo 是一个使用 Web Service 的 工作流 协同工具,可以处理 WSDL 的 Web Service 调用。支持两种 XML 格式的 工作流 语言: IBM 的 WSFL 和 XScufl 。 Freefluo 非常灵活,它的核心是不与任何 工作流 语言或执行架构关联的可重用协同框架。 Freefluo 包括可执行使用 WSFL 一个子集描述的 工作流 的运行库。
  • ZBuilder - ZBuilder3 是第二代 工作流 开发管理系统,也是一个开放源码产品。它为不同的 工作流引擎 和 工作流 定义了一组标准的 JMX 管理接口。
  • Twister - Twister 的目标是提供新一代、易集成、应用 Java 领域中最新成果、面向 B2B 的 工作流 解决方案。流程引擎基于 BPEL 业务流程规范和 Web Service 标准。
  • Con:cern - con:cern 工作流引擎 基于扩展的案例( case )处理方法,流程由一组具有前后条件的活动组成。

商业软件提供商

  • Bea’s WLI
  • Carnot
  • Dralasoft
  • Filenet
  • Fujitsu’s i-Flow
  • IBM’s holosofx tool
  • Intalio
  • Lombardi
  • Oakgrove’s reactor
  • Oracle’s integration platform
  • Q-Link
  • SAP’s NetWeaver
  • Savvion
  • Seebeyond
  • Sonic’s orchestration server
  • Staffware
  • Ultimus
  • Versata
  • WebMethod’s process modeling

工具目录

  • http://dmoz.org/Computers/Software/Workflow/Products/
  • A collection of links to tools for modelling business processes and workflows maintained by Bart-Jan Hommes at TU Delft, the Netherlands.

规范

Michael zur Muehlen 作了一个所有 工作流 相关规范的介绍性的 幻灯片 ,很不错。

我同意 John Pyke 和 Wil van der Aalst 的观点: 工作流 标准还处于制定阶段。现在存在大量相互丛叠的规范。

在我看来,导致规范如此之多而同时每个规范的应用又很有限的原因是,在 工作流 最基础概念上大家达成的共识很少。 工作流 是最容易让你感到心烦的话题,因为 工作流 本身的概念会和其他相关概念和技术混淆在一起。可以举一个具体的例子,比如说 工作流 完全是对 Web Service 的补充。你可以通过暴露接口以 Web Service 的方式访问一个 工作流 管理系统,但是不能假定总是必须通过 Web Service 接口访问 工作流 系统接口。一些规范造成了这样的假设。除了 Web Service ,其他容易混淆的概念和技术包括: Email 、流程之间的通讯、 Web 应用和组织结构。

在 工作流 领域第一个致力于标准化工作的是 Workflow Management Coalition (WfMC) ,开始于 1993 。 WfMC 发布的 参考模型 很不错,它定义了 工作流管理系统 和其他相关部分之间的接口。 WfMC 的另一项成果是 XPDL 规范。 XPDL 定义了描述 工作流 声明部分( declarative part )的 XML 结构。我个人认为,参考模型和 XPDL 是目前最好的规范。

  • JSR 207: Java 的流程定义 - 是由 Java Community Process (JCP) 发起,如何在 J2EE 应用服务器中实现业务流程自动化的标准。其基本模型是定义一个特殊类型的 ejb session bean ,作为一个业务流程的接口。 JSR207 标准化一组 XML 元标记( meta tags )作为 JSR175 元数据的一部分。 JSR207 将 session bean 和元数据作为 ejb 容器的输入,然后生成绑定方法的代码,这些方法在元数据中描述。此规范还处于初级阶段,没有发布任何内容。专家小组成立于 March 2003.
  • WfMC’s XPDL - WfMC 是由约 300 家成员参加的组织,基于参考模型定义了一系列的标准。参考模型用用例( use case )的形式描述了 工作流 系统和其他相关部分之间的关系。 XPDL 是 WfMC 制定的描述业务流程控制流( control flow )的 XML 格式规范。
  • ebXML’s BPSS - ebXML 是协同流程的相关标准集,主要关注不同公司流程之间的通讯。可以看作 EDI 的继承者。 ebXML 是由 OASIS 和 UN/CEFACT 联合发起。 BPSS 是 ebXML 的规范,其中的概念和本文阐述的很接近。
  • BPMI’s BPML & WSCI - (Intalio, Sun, SAP, …)BPMI 也定义了一个规范 (BPMN) ,描述如何将 “ 可执行 ” 业务流程可视化的表现。
  • BPEL - (Microsoft, BEA, IBM, SAP & Siebel) BPEL 由一系列基于消息交换的规范( XLANG, WSFL, BPML )产生。还有一个将此规范引入到 Java 的提案 : BPELJ 。 此规范描述如何处理输入的消息,而不是对流程状态进行建模。就像本文提到的,它不是一个关于业务流程规格化定义的规范。简单的说,可以将它看作 XML 形式的编程语言,提供将 WSDL-Services 组合成控制流的能力。顾名思义,此规范重点在(也不只限于) Web Service 。
  • OMG’s Workflow management facility - 基于 WfMC 规范,定义如何向 CORBA 转换。
  • UML - UML 定义了建模和设计软件系统的 9 类图。每类图包括可视化的表示和语义。其中活动图的目的就是要可视化的表现业务流程。 注意到在一个流程定义包含四个层次的内容,我想指出的是:一个流程定义包含的内容远远多于它的可视化部分。 UML 只涉及了可视化部分。
  • RosettaNet - RosettaNet 主要定义了一组 Partner Interface Processes (PIP). 一个 PIP 描述了一个有两个交易参与者、包括消息格式的流程。
  • UBL - The Universal Business Language (UBL) 定义了用于不同组织间通讯的 XML 文档标准库。可以看作是对 ebXML 的补充,因为 ebXML 只定义了建立组织间流程的基础。此规范的竞争对手是 RosettaNet 标准中的一个子集。

结论

     我在本文中指出 工作流 市场还属于年轻而又混乱( young and wild )的阶段,但已经有可靠的工具存在了 :

  1. 到目前,像 J2EE 和 .NET 这样成熟的集成平台才可用。在这样一个平台上运行 工作流 管理系统 才能真正发挥 工作流 系统的附加价值。这也是为什么只有在今天, 工作流 系统才被重新发现。
  2. 在 ‘The case for workflow’ 一节,我们介绍了引入 工作流管理系统 ,是如何同时在技术和业务上带来投资回报的。
  3. 工作流 在技术发展曲线的位置表明, BPM 和 工作流 中使用的概念还需要明确。
  4. “ 开放源代码项目 ” 和 “ 商业软件提供商 ” 列表中的工具,可以让你获得 工作流 和 业务流程管理 的益处。

     从以上所有这些中能得到的结论是:

  1. 规范还没有成熟,没有标准被大范围采用
  2. 对于现在想应用 BPM 的公司来讲,比较 工作流 系统是一个极其困难的挑战
  3. 尽管标准化工作慢了一拍,可好的 工作流管理系统 还是有的。这对于已经在挑选 工作流 系统的组织来说是一个好消息。

     我希望本文能够激发你对 工作流 的兴趣并且能够为你进行有效的对比提供正确的背景知识。

Further reading

  • Workflow Patterns -Wil van der Aalst 教授的 工作流 模式学术研究网站
  • ebpml.org - 有关业务流程管理和 工作流 的网站,信息量大、全面
  • Business process management group - The Business Process Management Group (founded in 1992) is a global business club exchanging ideas and best practice in business process and change management.
  • Enix - 英国流程管理顾问公司,在网站上有不错的内容
  • ebizq.net - Commercial community that has booths, webinars and other interesting stuff put together in a nice website.
  • An introduction to petri nets - The title says it all.
  • Organizational Management in Workflow Applications - An interesting article that discusses the relation between business processes and the organisational data involved.
  • Web services orchestration - an HP-paper that reviews the emerging technologies tools and standards. (Januari 2003)
  • Business process standards for web services - An article that discusses the various aspects involved in workflow and BPM.