1.业务规则的存在形式:嵌入式业务规则。业务规则库。
2.为什么要将业务规则独立出来建立业务规则库?
嵌入式业务规则通常在流程的决策点中体现出来(类似一种switch结构。规则不同,switch的参数和case值会发生变化)。
这种嵌入式的存在带来三点不便。
1)业务规则本身比流程模型更容易改变。嵌入式的规则维护起来比较困难。
2)没有一个便于集中管理的规则库。当某业务改变时,这种改变很难应用到所有相关的流程。
3)嵌入式的业务规则基本不支持重用。在某一个流程模型中已经建好的规则,没办法用一个引用就可以在另一个流程中得到重用。
3. 了解了规则嵌入在流程中的弊端,那么如何让规则从流程中分离出来?
两个关键词:
1)规则引擎。根据请求,在规则库中路由找到正确的规则并返回。
2)规则服务。规则服务的作用就是让流程与引擎能够交互。 这样,流程实现了与规则的动态绑定。
4.规则引擎和BPEL协同工作的实例?
占地。
5.业务规则的种类
IF-THEN规则集(链状)
规则表(多维)
6.什么时候使用规则集和规则表?
几点建议:
[1] 如果要处理的条件表达式表现为大量无结构的语句,此时选择规则集作为表示方式可能更好则集要比更结构化的决策表显得更加灵活。
[2] 如果每一规则近乎使用类似的决策准则,那么使用决策表是个不错的主意。
[3] 如果业务人员在描述业务策略时,使用了EXCEL等表格方式,那么理所应当地要选择决策表则逻辑。
[4] 值得一提的是,如果您设计的决策表中出现了很多空洞,那么说明使用这种方式未必是最佳 择规则集尝试一下。