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

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

分享到: 新浪微博 腾讯微博
本文关键字: SOA 业务规则 业务流程

基于以上这种分解方法,SOA实现中一般出现业务流程/规则的下列用法:

业务流程实现业务服务编制

业务规则实现业务组件,它们是服务实现的一部分

业务组件负责指定服务内部其他组件的编制

最终不受这个分解所影响的,是在业务流程执行中给决策的实现使用业务规则。

什么是适当的技术?

根据上述业务流程/业务规则引擎能力和SOA分解的对比,选择技术时可以参考下列建议:

服务编制

服务编制一般流程外部活动/服务的长运行和异步的调用。如今的业务规则引擎不支持这些功能。业务流程语言/引擎,专门设计成定义和执行利用异步调用的长运行协作,是服务编制最适当的模型。

业务组件实现

当提到业务组件的实现时,对于只用同步交互的短期事务实现来说,业务规则和业务流程之间的界线变得模糊起来。它们经常可以定义相同的问题,从而利用其中任何一项技术进行解决。

让我们来看一下索赔手续费计算的例子5。索赔可以依照统一比例的手续费,或者损失换算系数(loss conversion factors,LCF)。在前一种情况下,统一比例的手续费可以分别应用于作为整体的索赔,或者索赔的每一个词尾。这些不同方法的组合产生了三种截然不同的索赔手续费计算规则。这些规则组可以被表示为一组规则(图2),或者表示为一个流程(图3)。

图2:利用这些规则计算索赔手续费的示意图

图3:利用流程计算索赔手续费的示意图

因此,根据设计—时间模型,人们可以考虑使用一个规则组或者一种业务流程方法来解决相同的问题。

在这种情况下使用业务流程方法的好处,被简化为支持外部活动(服务)的调用。

在这种情况下使用业务规则方法,是不用重新编译而改变规则,和重新部署业务规则组件,以及在组件级别重用被实现的业务逻辑的能力(与处理业务流程时的服务级别相反)。

责编:刘沙
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

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

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