一、规则引擎的由来
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
二、应用背景
企业级管理者对企业IT系统的开发有着如下的要求:
1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。
3.为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。
三、规则引擎的优点
使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本,其优点如下:
• 分离商业决策者的商业决策逻辑和应用开发者的技术决策;
• 能有效的提高实现复杂逻辑的代码的可维护性;
• 在开发期间或部署后修复代码缺陷;
• 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;
• 符合组织对敏捷或迭代开发过程的使用;
四、代表企业编辑
大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是Drools,商业的代表是ODM(IBM)、旗正规则引擎。
五、开源和商业代表品牌
开源规则引擎:
• JBoss Drools
• Mandarax
• OpenRules
• JEOPS
• InfoSapient
• Roolie
• Apache Camel
商业规则引擎:
• ODM
• Oracle Business Rules
• 旗正规则引擎
• Jess(可研究,商用收费)
六、规则引擎适用领域
规则引擎使用较为广泛,并不能说只适合某几个领域,应该说,在规则较为复杂的行业,都是适用的,如金融、制造、医疗、物流等行业,面临的规则变化较为复杂,目前使用较多。而且对规则引擎需求的行业也将越来越多,如团购平台、传统企业管理渠道等,都存在大量快速变化的业务规则,如何快速应对,已经成为挑战,谁能快速适应,谁就能一马当先。