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

来源:InfoQ  作者:荣浩
2010/9/29 15:02:04
SOA的分解导致服务的定义代表更稳定的工件,而业务流程则代表更经常变化的工件。在一个典型的SOA实现中,服务不会经常改变,但是非常经常地被组合和重组来构建/修改企业的解决方案。

本文关键字: SOA 业务规则 业务流程

实现控制业务流程执行的业务规则

在规则定义业务流程本身的执行的情况下,必需考虑它们的复杂性和变化的频繁度。

现代的业务流程引擎一般提供评估简单规则的功能,构建在业务流程语言中,或者通过调用通用的语言。从而,在业务流程引擎中实现“简单的”业务规则是完全可行的。然而,在这种情况下,规则中的任何变化都将需要完全的测试和业务流程的部署。至于复杂的业务规则,它们一般需要利用规则引擎从过程中被提取,并被实现为一项独立的服务。

另一种典型的场景,是当业务流程本身(过程结构)相当稳定,而管理活动事务的规则虽然相当简单,却可能相当经常地改变的时候(请见图4)。在这种情况下,将规则实现外部化为独立的服务,利用规则引擎实现,可以显明地改善整体解决方案的可维护性。在这种情况下,业务规则支持业务规则中动态变化的能力,允许修改业务流程实现,而不用对它进行改变和重新部署。

图4:服务、流程和规则的典型变化比例

整体的SOA实现

图5展现了业务流程和规则引擎在SOA实现中的典型用法

图5:业务流程和规则引擎在SOA中的典型用法

从上图中我们可以看到,SOA实现中一种普遍的模式是:用规则引擎作为服务实现的一部分,并利用业务流程引擎进行服务编制。当规则控制其协调足够复杂的活动,或者变化比流程本身更快时,因此它们需要使用规则引擎,这些规则一般被具体化为一项特殊的规则服务,通过业务流程引擎调用。由于这个服务调用可能比(网络电话)一些业务流程引擎更贵,例如Microsoft的Biztalk 2004、IBM的WebSphere Process Server、PegaSystems的Smart BPM Suite,以及把业务流程和规则引擎结合在单个应用程序中的其他产品。

结论

业务流程和业务规则不应该被当作是在相互竞争,而应该作为相互补充的技术。业务流程定义一组为了执行业务功能而需要被执行的活动。业务规则提供一种加值法来实现那些活动,通过提供一种较高级别的灵活性和可配置性,来适应快速变化的业务环境。

共4页: [1] [2] [3]4 下一页
责编:刘沙
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918