|
在SOA中实现业务规则和业务流程SOA的分解导致服务的定义代表更稳定的工件,而业务流程则代表更经常变化的工件。在一个典型的SOA实现中,服务不会经常改变,但是非常经常地被组合和重组来构建/修改企业的解决方案。 实现控制业务流程执行的业务规则 在规则定义业务流程本身的执行的情况下,必需考虑它们的复杂性和变化的频繁度。 现代的业务流程引擎一般提供评估简单规则的功能,构建在业务流程语言中,或者通过调用通用的语言。从而,在业务流程引擎中实现“简单的”业务规则是完全可行的。然而,在这种情况下,规则中的任何变化都将需要完全的测试和业务流程的部署。至于复杂的业务规则,它们一般需要利用规则引擎从过程中被提取,并被实现为一项独立的服务。 另一种典型的场景,是当业务流程本身(过程结构)相当稳定,而管理活动事务的规则虽然相当简单,却可能相当经常地改变的时候(请见图4)。在这种情况下,将规则实现外部化为独立的服务,利用规则引擎实现,可以显明地改善整体解决方案的可维护性。在这种情况下,业务规则支持业务规则中动态变化的能力,允许修改业务流程实现,而不用对它进行改变和重新部署。 图4:服务、流程和规则的典型变化比例 整体的SOA实现 图5展现了业务流程和规则引擎在SOA实现中的典型用法 图5:业务流程和规则引擎在SOA中的典型用法 从上图中我们可以看到,SOA实现中一种普遍的模式是:用规则引擎作为服务实现的一部分,并利用业务流程引擎进行服务编制。当规则控制其协调足够复杂的活动,或者变化比流程本身更快时,因此它们需要使用规则引擎,这些规则一般被具体化为一项特殊的规则服务,通过业务流程引擎调用。由于这个服务调用可能比(网络电话)一些业务流程引擎更贵,例如Microsoft的Biztalk 2004、IBM的WebSphere Process Server、PegaSystems的Smart BPM Suite,以及把业务流程和规则引擎结合在单个应用程序中的其他产品。 结论 业务流程和业务规则不应该被当作是在相互竞争,而应该作为相互补充的技术。业务流程定义一组为了执行业务功能而需要被执行的活动。业务规则提供一种加值法来实现那些活动,通过提供一种较高级别的灵活性和可配置性,来适应快速变化的业务环境。 责编:刘沙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|