旗正规则引擎的产品设计

简介:

什么是规则引擎:

         规则引擎是一种采用人类能理解的术语(简称类自然语言)来描述业务逻辑(如各类公式、算法、策略、流程等)并且解析执行的软件程序。对于一般的数据处理逻辑以及判断逻辑,规则引擎可以直接采用业务人员自己定义的术语,来对其进行描述。使得这些业务逻辑可以脱离程序外进行单独配置和管理,已满足其后期随时变更。国外代表品牌是ILOG,开源DROOLS,以及国内商业产品代表是旗正规则引擎。

 

旗正规则引擎的特点:

使用规则引擎的目的就是为了让软件系统中一些数据处理的逻辑,未来可以随时调整。比如旗正规则引擎除了可以随时调整具体的逻辑外,还能支持对数据结构以及数据来源的调整,这是一般的规则引擎做不到的。

因此旗正规则引擎扩大了规则引擎的使用范围,能够解决软件系统当前普遍存在的后期维护的问题,使得在系统上线后可以随时进行调整,以便适应企业最新的需要。

 

旗正规则引擎是如何做到的?

软件系统的后期维护所需要的变更,无外乎数据结构和数据处理逻辑的变更问题。

如果按照一般的开发方式,数据结构的定义时,会有大量的实体类来定义数据结构。比如界面对应的实体类、逻辑处理的实体类以及数据库对应的实体类。当数据结构发生调整时,对应需要修改所有的实体类。

采用基于规则包配置时,不再采用实体类的方式来定义数据。而是采用key-value的方式来定义所有的类型。这样当数据结构发生调整时,只需更新key-value具体的值即可进行变更。

逻辑处理,采用规则包的动态接口定义。规则包的传入参数传出参数,以及可以直接用key-value传递需要处理的数据结构。

数据库对应的数据结构,采用动态的类来进行定义,用List<string>来定义列信息,用List<List>来定义数据库表的数据。当变更数据结构时,只需修改定义即可,而无需修改实体类。

通过这种方式,使得可以直接在规则引擎配置数据库的源信息,以及变更后的数据结构信息,而不用变更程序代码。

另外规则引擎还可以直接通过配置方式引入新的不同的数据源,比如其他的数据库、Excel数据、web服务、XML数据、MongoDB等。使得也能对数据源的变化随时进行调整。

同时旗正规则引擎可以将对数据处理的规则服务,发布成多种接口,直接供客户端程序进行访问,比如PC、web、手机app等,这样当数据结构发生变化时,前端的界面也可以随时调整。

 

旗正规则引擎具体怎么用?

       旗正规则引擎可以作为基础软件产品集成到各种业务管理系统中,用于管理各类将来可能会调整的各种业务逻辑。用户可以将各种和数据处理相关的逻辑通过规则配置器进行定义后,通过旗正规则引擎来处理执行。比如企业的人力资源管理系统,可以用规则引擎来配置具体的薪资计算的规则;比如企业的生产管理系统,可以用规则引擎来管理生产排程的优化处理;比如企业的渠道管理,可以用规则引擎来管理具体的返点政策;比如企业的报价系统,可以用规则引擎来管理具体的促销策略等。

         旗正规则引擎可以在业务管理系统改造升级时,作为其中一个模块集成进去。也可以在项目后期,作为一个独立的数据处理工具来运行。

         当在业务管理系统开发阶段时,要在架构设计上,将规则引擎作为数据库基础上一个基础组件,或者是ESB服务中的一部分。同时需要界定清楚,哪些业务的处理逻辑需要交由规则引擎进行控制。正常情况下,对于数据的增删改查等功能,无需采用规则引擎来处理。而对于需要有特定业务控制的逻辑处理模块,交由规则引擎来处理。规则引擎作为一个计算节点,如何触发以及相关的数据来源,还需要通过常规的系统进行维护。通过规则引擎与常规编码进行配合,将复杂的、易变的、模糊的各种数据处理逻辑脱离出来,使得常规编码只是处理一些数据的增删改查等简单操作。

         当项目已经上线处于维护阶段时,规则引擎作为独立的数据处理工具可以用于处理已经存储到数据库中的各种数据,类似于替代数据库的存储过程的功能。用户可以用规则引擎工具,直接连接数据库,配置各种数据处理的逻辑,最后将其发布成定时执行的任务,来完成各类数据的处理和输出。采用规则引擎取代数据库存储过程,可以有效的降低数据库的负载,提高系统的整体性能。同时也使得数据处理的逻辑更加容易维护。

        

规则引擎适用于哪些项目?

         以旗正规则引擎为例,旗正规则引擎是国内最早出现的一款商业规则引擎,适用于各行各业的信息化管理系统中。以下列举各行业适用的管理系统。

1、  金融风控

金融在近两年来迅速发展,备受瞩目,P2P、消费金融等野蛮生长,而直接要面对的一个问题就是如何控制风险,避免欺诈行为,特别是在欺诈方面更是成为P2P面临最大的难题,据行业数据报告显示,欺诈行为已占P2P坏账中50%。规则引擎在其中主要作为决策工具,风险规则多变,欺诈行为多变,需要系统及时调整策略来进行控制,所以规则引擎在其中的作用可谓非常之大。

2、  企业渠道管理系统

制造企业普遍采用渠道政策来发展代理商销售其产品。渠道政策随着企业的发展,会定期进行调整,正常情况下,每个季度都会调整一次渠道政策。调整的目的可能是增加了新的产品线,或者促销某类产品,或者激励某类客户或者区域。每个季度,需要根据新的渠道政策,以及代理商的级别和销售业绩,来计算需要给代理商的返点、积分或者折扣。渠道管理系统用于维护计算返点、积分所需的各类信息,包括代理商信息、产品信息、系列信息、区域信息、渠道级别信息、销售数据以及其他相关的原始数据,同时维护具体的返点、积分政策以及计算结果。渠道管理每个季度重新配置一遍新的返点、积分等策略,并运算后,将结果输出到财务核算系统或者导出到其他地方。

3、  企业产品报价系统

商业企业针对不同的客户以及不同的产品,提供不同的报价体系。报价体系除了和产品自身的成本相关外,还需要涉及到合同、促销、折扣、审批等。比如与客户签订一个一年期的销售合同,可能是按照固定价格给客户,也可能是按照其采购量给予折扣,或者是不同时间段的价格和折扣都完全不同。报价体系而且是一个不断会调整的系统,客户可能会新增合同。因此每个月结算时,需要根据当月的销售额以及客户具体的合同,来计算客户需要支付的费用。产品报价系统需要维护产品信息、合同信息、折扣信息以及其他产品报价相关的基础数据,通过规则引擎配置具体的报价逻辑。提供服务给外部程序来询价,以及每月结算时计算相应的结果。

4、  企业绩效管理系统

企业的薪酬体系是配合企业的绩效考核一起来进行的,对于员工数量多的企业客户来说,奖惩制度也会随着工种的不同会有很多的变化。企业绩效管理系统针对企业每个员工特定的薪资计算政策,根据每月员工完成的绩效,来计算对应的奖惩金额。企业绩效管理系统主要用于管理员工信息、工资信息、奖惩信息、绩效信息等,通过规则引擎配置具体的奖惩规则,每月定时结算。

5、  企业生产排程优化系统

制造企业根据订单安排生产,正常情况下根据3个月的订单情况,安排生产计划。但是在实际的过程中,经常会有调整订单和插单情况,或者出现一些原材料不足等意外发生。根据最新的情况,调整生产计划同时又要满足其他所有的订单的生产不发生问题,或者预先知道那些订单会发生延期交付等问题。生产排程优化,除了可以保障按时交付订单外,还可以考虑以下的成本节约:库存最小化、单位产能最大化、配套间隔时间最短等等。生产排程的优化,可以在原始生成排程的基础上,根据以上原则进行优化,最后形成更优的生产计划。生产排程优化系统需要维护生产线信息、产品信息、系列信息、订单信息等与排程相关的数据,同时通过规则引擎配置具体的优化逻辑。每次调整订单时,都可以重新执行并得到最优的结果。

6、  电信运营商计费系统

电信运营商计费系统中的计费规则,基本上都在采用规则引擎进行计算。后期可以不断的追加新的规则等。目前电信运营商都在进行国产化的改造阶段,因此目前有非常好的商业机会。

7、  保险理算系统

保险的理赔规则的配置实现

8、  医疗的数据处理

医疗数据的采集、传输、存储、分析、处理等一系列动作,都可以采用规则引擎进行处理。

 

规则引擎的价值

         当企业的信息系统集成了规则引擎产品后,能带来以下显著的效果:

1、  信息系统中负责的业务逻辑处理,可完全交由规则引擎进行配置。降低了项目的风险,保障了项目进度。

2、  增强业务部门对信息系统的控制能力,提高了业务部门的参与度。

3、  减轻业务部门和技术部门的沟通工作量,减轻了技术部门的工作压力

4、  降低数据库的负载,提高了系统的整体性能

5、  降低系统的维护成本,增强了项目的可适应性

 


相关文章
|
Java
规则引擎选型及应用
规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程。 使用规则引擎可以把复杂、冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植。
24078 0
|
2月前
|
存储 NoSQL 算法
全链路营销|基于事件驱动的流程编排系统
本文主要介绍了 AE 策略中心的技术方案选型与落地实战。
|
存储 人工智能 数据可视化
优酷播控实践:基于规则引擎的投放管控模型
我们在很多场景下需要规则引擎将规则运算和业务解耦,但规则引擎不是银弹。如果规则很简单,或者变化频次非常低那么使用 if-else 可能是最行之有效的实现方式,引入规则引擎反而增加维护成本。需要根据具体的业务形态选择是否使用规则引擎,以及要是什么样的规则引擎。
优酷播控实践:基于规则引擎的投放管控模型
|
SQL 前端开发 JavaScript
|
JSON 前端开发 JavaScript
如何设计一个规则引擎
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策,一个好的规则引擎能大大提高系统的灵活性,扩展性。
7543 0
如何设计一个规则引擎
|
开发工具
《产品设计与开发(原书第5版)》——导读
本书的每一种方法都通过具体的工业实例或者案例研究来说明。每一章都选择了不同的产品实例,而不是在全书中都使用相同的例子。我们之所以使用多种多样的实例,是因为这样可以使本书更加有趣,并且可以说明这些方法可广泛应用于从工业设备到消费产品的各个领域中。
2372 0
《产品设计与开发(原书第5版)》——导读
|
SQL IDE 关系型数据库
数据服务,让业务开发更敏捷
数据中台离业务最近,能更快地响应业务和应用开发的需求,「数据的可追溯性也会更强,更精准」。
1231 0
|
开发工具 开发者
改进移动APP开发的几大环节
手机具有非凡的“改造”能力,它改造了人与电脑交流的方式,改造了人与人交流的方式,人们购买APP和APP开发知道的一切都正在或者已经被手机改造。别样 网络表示:对于APP开发者来说,这种改造的挑战颇有些让人胆战心惊。
|
UED 云计算 微服务
选型宝访谈:怎样构建端到端的IT透视能力?
前言 随着移动互联网和云计算时代的到来,企业数字化转型和“互联网+”成为新的热潮,今天的IT系统,变得越来越复杂,越来越重要,用户对体验的要求也越来越高,传统碎片化的、面向IT的运维和性能管理工具,越来越难以满足今天我们对业务稳定性和卓越用户体验的要求。
1077 0
【直播回顾】阿里专家天樵:复杂业务系统下的规则引擎开发实践
本次分享主要讲如何合理的使用规则引擎来梳理清楚业务逻辑,如何方便快速的配置业务逻辑、并且安全可控的实时生效。
6211 0