文章:在 SOA 中实现业务规则和业务流程

  • Boris Lublinsky
  • Didier Le Ti
  • 荣浩

2007 年 11 月 16 日

话题:SOA语言 & 开发架构文化 & 方法

SOA 的目的在于帮助企业提高其业务敏捷性,使其能够快速满足实际业务所发生的变化。在企业应用中,变更最为频繁的就是业务规则和业务流程。正是由于这些变更,故而有必要在实现和修改业务规则以及业务流程时保持相当的灵活性,从而使企业在激烈的竞争中赢得一席之地。

然而,在实际的应用中,人们对业务规则和业务流程却有着种种的误解,经常把两者混淆在一起。在本文中,作者首先归纳了这些误解。接着文章对业务规则和业务流程的概念进行了详细的描述:它们的定义,它们能做什么,它们的优点。“业务规则可以被看作是业务实践的一个集合,定义实际的实现——业务逻辑。这种逻辑的实现经常可以通过使用专门的工具进行简化——业务规则语言和业务规则引擎。”“业务流程定义可以被看作是对一组相互关联的活动的编排。类似于业务规则的情况,可以利用业务流程 DSL 和专门的业务流程引擎来实现”。

业务规则与业务流程之间存在着哪些异同?我们该如何选择?它们在 SOA 中又各自扮演着什么角色?作者提出了自己的观点。由业务流程实现业务服务的编排,而业务规则作为服务实现的一部分实现业务组件,业务组件则负责对服务内部其他的组件进行编排。

实际上现代的业务流程引擎一般都提供有执行简单规则的功能,这一功能构建在业务流程语言中,或者通过调用通用的语言来实现。这一功能是否够用?作者认为如果业务流程中的业务规则非常复杂并且频繁变更,那么它们一般需要利用规则引擎从流程中提取,并被实现为一项独立的服务。

文章最后对业务流程和规则引擎在 SOA 实现中的典型用法进行了总结:用规则引擎作为服务实现的一部分,并利用业务流程引擎对服务进行编排。

阅读全文:在 SOA 中实现业务规则和业务流程
SOA语言 & 开发架构文化 & 方法