规则引擎,是将业务执行抽象化的配置,通过其定义的数据结构、算法和流程来实现应用程序功能的普适化。 规则引擎可以帮助企业提高业务开发效率,提高运营的灵活性,降低运营成本与开发成本,让系统更加智能化灵活化。这里以jvs-rules截图为例。
一、什么是规则引擎
定义:是指对业务系统的规则进行抽象,使之成为通用模型。
作用:帮助应用程序开发人员构建一套标准化的业务规则和算法。
规则引擎可以简化业务架构,让开发人员更容易理解业务逻辑,并在一个开发环境中提供一致易用的工具。
主要作用有:降低开发人员使用复杂代码的难度;降低数据录入工作量;优化功能代码实现,提高开发效率;灵活扩展应用程序功能,快速上线新功能;增加应用程序的灵活性。
二、规则引擎的作用与价值
• 分离商业决策者的商业决策逻辑和应用开发者的技术决策,企业可以使用灵活的规则引擎来构建新的应用程序,满足企业业务创新需求;
• 能有效的提高实现复杂逻辑的代码的可维护性,符合组织对敏捷或迭代开发过程的使用;;
• 通过建立流程规范和规则模型,构建业务智能执行框架,从而降低开发成本、提高应用程序的灵活性和可扩展性
• 规则引擎可以帮助企业提高业务开发效率,降低业务代码的量,减少在开发期间或部署后修复代码缺陷;
• 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;
• 可以帮助企业在业务创新时,提供更多灵活性以及更高的自动化程度,从而提升运营效率和市场竞争力,降低风险。
三、规则引擎的基础要求
规则引擎通常是以业务逻辑为导向,来支持业务流程的开发,帮助业务开发人员完成一些功能,企业级管理者对企业IT系统的开发有着如下的要求:
1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新,拖拽化配置,实施生效是规则引擎成为业务灵活性的基础要求
3.为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与,变量加工的在线化配置,大大降低了数据加工处理的功能:
四、一个案例,看一下常见的几种不同应用场景
产品业务规则引擎,可将多个复杂的功能通过一个简单的规则逻辑组合起来,从而简化了复杂的业务流程。
产品技术研发规则引擎,可帮助技术人员快速高效地构建复杂的技术架构,降低运维成本,业务规则引擎可快速地将各个功能模块组合成一个完整实用的业务流程或产品方案。。
管理决策和运营人员制定规则引擎,将多种类型的业务规则结合起来,从而达到降低运营成本与开发成本的目的。
我们以电商的订单场景举例:
根据系统的功能需求,将业务逻辑进行拆分,每个流程都需要一套单独的规则引擎。
在不同的场景下,规则引擎需要满足不同用户的实际需求,如系统中用户下单后支付成功是指商品价格和支付金额达到最低标准,还是需要完成订单结算。根据场景不同,的场景下往往会有不同的业务动作。
我们再看看金融场景,用户提交进件申请,需要前置过滤黑名单、需要过反欺诈的评估、还需要通过风控的一些基础规则,如果拿if与else写所有的业务逻辑,一旦风控人员需要调整需求,那么开发人员就痛苦了。
五、推荐几个开源的规则引擎
我个人理解的规则引擎就像一把钥匙,让应用程序可以在业务需求出现时按需生成业务流程,在业务流程发生变更时通过规则引擎将业务变更的相关信息和原因进行匹配即可满足当前需求。目前行业内开源的规则引擎也就那么几个, drools、easy-rules、urules、jvs-rules
其中,jvs-rules的界面化的交互配置比其他几个产品要有优势,而且对懂业务的人要友好很多。