书籍节选及简评:OSWorkflow

在OSWorkflow一书中,作者Diego Adrian Naya Lazo对基于Java的开源工作流引擎——OSWorkflow展开了讨论。在其官方网站上是这样描述道:

该书覆盖了与OSWorkflow相关的所有方面。阅读此书,你不需要预先具备任何OSWorkflow的相关知识。你将从该书中了解到OSWorkflow的全部,本书涵盖了从Business Process Management(BPM)技术的基础知识,到安装OSWorkflow并使该工作流引擎与类似Drools、Quartz、Pentaho等第三方组件相集成的各个方面。

该书的出版商——Packt Publishing向InfoQ提供了该书第四章的节选:在你的应用中使用OSWorkflow(Using OSWorkflow in your Application)。

InfoQ采访了作者Diego Naya Lazo,就OSWorkflow的基本情况和这本书主要覆盖的内容与其进行了交流:

InfoQ:在我的应用中,为什么需要引入工作流引擎?

Diego Naya Lazo:当前大部分业务应用程序都是对现实生活中业务过程的模拟,这些业务过程由动作(activitie)以及动作间的流转(transition)所组成。

工作流引擎可以帮助开发人员建立一个业务过程的模型,使得应用能够按照过程所定义的信息流程来运行。

InfoQ:OSWorkflow能为正在实现中的应用提供怎样的功能呢?

Diego Naya Lazo:OSWorkflow可以管理工作流的状态、潜在的流转、条件检查、分支与合并以及过程中所有的业务限制。

InfoQ:您能举例说明一下,在应用中,哪些地方可以运用OSWorkflow吗?能否分别举例说明一下什么时候OSWorkflow可以作为工作流服务器应用,什么时候可以将它作为一个工作流层?

Diego Naya Lazo:比如JIRA,它是一个流行的问题跟踪系统,在该系统中,OSWorkflow作为工作流层被应用。系统将问题ticket流转完全交给OSWorkflow来处理。

而在公司环境中,当CIO想要一个业务过程信息中央存储库的时候,OSWorkflow则常常被作为单独的服务器来使用。

InfoQ:如何将OSWorkflow与Spring、Seam、Struts等应用开发框架相集成呢?

Diego Naya Lazo:OSWorkflow与Spring做到了无缝集成,并且可以从事务和Hibernate等持久性技术中获益匪浅。

Struts和OSWorkflow经常一起被使用,但在OSWorkflow中并没有内建与Struts集成的类,Seam也一样。

InfoQ:如何将OSWorkflow与JBoss Drool或Codehaus Werkflow类似工具做比较呢?

Diego Naya Lazo:OSWorkflow可以弥补JBoss Rules类似的业务规则框架在业务过程建模方面的不足。很有希望的是,JBoss Rules 5中的Mark Proctor将促使OSWorkflow用户在以流程、规则和事件为主的下一代环境中的流转更为流畅。你真应该试验一下正在开发中的Mark。

Werkflow是OSWorkflow的替代选项,但它缺少大量的用户基础。另外,事实证明,OSW在伸缩性和性能特性方面更胜一筹。

InfoQ:工作流和一系列的业务规则有什么不同?

Diego Naya Lazo:严格来说,工作流和规则几乎是等同的。工作流是您根据业务逻辑想要用户去遵循的一系列步骤。而对于这里所说的逻辑,最好的表达方式是规则。

因而,一个工作流常常在每个步骤中都有内嵌的业务规则,规则本身可以是嵌套的工作流。

InfoQ:OSWorkflow如何确保应用程序的可测试性?

Diego Naya Lazo:OSworkflow在设计之初就考虑到了单元测试,因此,要测试您的业务过程相对来说还是很简单的。它甚至允许使用一个临时内存存储系统,这样一来,您的测试可以摆脱数据库的束缚。

InfoQ:OSWorkflow如何与Esper和Quartz这样的组件相集成?

Diego Naya Lazo:Esper是事件流程引擎,可以在BPM领域中运用。它主要通过让工作流步骤发出事件给引擎,从而使引擎可以处理这个事件或对该事件做出反应。一些工作流步骤,比如贷款审批,就是业务事件。上下文中给出的这些事件就是业务的相关信息。

事件处理引擎比较适合信号的实时处理流程。OSWorkflow能够从多个业务过程中向引擎发出信号。然后,引擎能够将这些事件互相关联、侦测符合匹配模式的情况并在一些特定的业务条件被满足时发出警告,例如,同一个人在两个不同的国家申请贷款的情况。这是一个使用CEP引擎来侦测诈骗的典型应用。

另一方面,Quartz能够使得OSWorkflow在某些特定的时间担当活(active)动代理的角色,例如,每天启动一个新的工作流、或触发流程中特定的步骤、再或者每两小时进行一次分支。

InfoQ:使用像Pentaho那样的报表工具的话,针对应用的当前状态能够生成怎样的报表?

Diego Naya Lazo:Pentaho是一个非常不错的报表工具,将它与任何数据库结合使用都能够产生惊人的结果。OSWorkflow有一个简单的关系模型,通过使用Pentaho,您可以创建一个BAM(业务动作监控Business Activity Monitoring)portal。这使得执行业务的用户可以监控到他的流程中的任何变化。在特定情况下,直观表示是最有效的。

还有时候,一个简单的数据表格就是最具效率的数据报表形式,Pentaho在这个方面也能对我们提供帮助。

InfoQ:您觉得OSWorkflow还缺少些什么?什么是覆盖这些领域的最好的方式?

Diego Naya Lazo:OSWorkflow在文档方面还有待进步。我会花一些时间来更新OSWorkflow手册和how-to指南,这是我能在这个令人激动的项目上所能尽到的一丝绵薄之力。

查看英文原文:Book Excerpt and Review: OSWorkflow

你可能感兴趣的:(书籍节选及简评:OSWorkflow)