未来软件开发的主流方向:规则引擎 (Rule Engine)

规则引擎 (Rule Engine)介绍

    规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。

    利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。

    简单地说:让程序的业务逻辑可以通过规则配置进行处理。

 

.NET下的开源规则引擎有:

序号:1

规则引擎:Drools.NET

介绍说明:Drools.NET 是 .NET 版的 Drools,基于Charles Forgy的RETE算法的开源的业务规则引擎。

官方地址:http://droolsdotnet.codehaus.org/

 

序号:2

规则引擎:SRE

介绍说明:SRE (Simple Rule Engine)是.NET下的一款轻量级的开源正向串行的推理规则引擎(forward chaining inference rule engine)。它容易理解,可以解决复杂的问题。

官方地址:http://sourceforge.net/projects/sdsre/

 

序号:3

规则引擎:NxBRE

介绍说明:NxBRE是.NET平台下的一款开源轻量级的业务规则引擎(aka Rule Based Engine),它由正向串行的推理引擎(forward-chaining inference engine)和XML驱动流控制引擎(XML-driven flow control engine)组成.它支持 RuleML 0.9 Naf Datalog 和 Visio 2003 建模。

官方地址:http://sourceforge.net/projects/nxbre

 

 

Java下的开源规则引擎有:

序号:1

规则引擎:Drools

介绍说明:Drools是Java语言开发,基于Charles Forgy的RETE算法的开源的业务规则引擎。

官方地址:http://www.jboss.org/drools/

 

序号:2

规则引擎:Jamocha

介绍说明:Jamocha是一个Java语言开发的开源规则引擎。

官方地址:http://sourceforge.net/projects/jamocha/

 

 

规则引擎相关构件

    规则引擎是一种根据规则中包含的指定过滤条件,判断其能否匹配运行时刻的实时条件来执行规则中所规定的动作的引擎。与规则引擎相关的有四个基本概念,为更好地理解规则引擎的工作原理,下面将对这些概念进行逐一介绍。

  1)信息元(Information Unit)

  信息元是规则引擎的基本建筑块,它是一个包含了特定事件的所有信息的对象。这些信息包括:消息、产生事件的应用程序标识、事件产生事件、信息元类型、相关规则集、通用方法、通用属性以及一些系统相关信息等等。

  2)信息服务(Information Services)

  信息服务产生信息元对象。每个信息服务产生它自己类型相对应的信息元对象。即特定信息服务根据信息元所产生每个信息元对象有相同的格式,但可以有不同的属性和规则集。需要注意的是,在一台机器上可以运行许多不同的信息服务,还可以运行同一信息服务的不同实例。但无论如何,每个信息服务只产生它自己类型相对应的信息元。

 

  3)规则集(Rule Set)

  顾名思义,规则集就是许多规则的集合。每条规则包含一个条件过滤器和多个动作。一个条件过滤器可以包含多个过滤条件。条件过滤器是多个布尔表达式的组合,其组合结果仍然是一个布尔类型的。在程序运行时,动作将会在条件过滤器值为真的情况下执行。除了一般的执行动作,还有三类比较特别的动作,它们分别是:放弃动作(Discard Action)、包含动作(Include Action)和使信息元对象内容持久化的动作。

  4)队列管理器(Queue Manager)

  队列管理器用来管理来自不同信息服务的信息元对象的队列。

 

未来应用规则引擎的趋势

    商业世界充满了关于变化的陈词滥调,如任何事物都会改变,唯一不变的是变化等等。而在技术领域里,情况正好相反。我们仍然在试图解决30年前软件业中同样的一堆问题--也许比30年前还要多的问题。在过去的十年,IT从业人员淹没在软件方法学的大量文献中,如快速软件开发,极限编程,敏捷软件开发等,它们无一例外地强调灵活和变化的重要性。
    但商业通常比开发团队所依赖的软件过程和技术改变得更加迅速。当商业策划人员试图重整IT部门,以支持新的业务转型时,仍然觉得很费劲。

 

哪些软件项目正在使用规则引擎

    目前中国移动的BOSS系统、企业应用的ERP、CRM以及电子商务的销售系统等。

 

 

 

 

时间: 2024-10-05 10:00:52

未来软件开发的主流方向:规则引擎 (Rule Engine)的相关文章

Java规则引擎与其API应用详解

详解 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business l

详解什么是Java规则引擎(上)

问题描述 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(businesslogic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.规则

小明历险记:规则引擎drools教程一

小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到.小明心想,又tm来这套,这次需求又要变更多少次呢?表面上还的配合,说赶紧把规则给我们吧,早点开发早点上线,小王说这次需求老简单啦

规则引擎-BRMS在企业开发中的应用

1. 什么是规则 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.规则正是应用于上述动态环境中的一种解决方法. 2. 规则产生的背景 一个业务规则包含一组条件和在此条件下执行的操作.它们表示业务规则应用程序的一段业务逻辑.业务规则的理论基础是:设置一个或多个条件,当满

六个开源软件开发的“潜规则”

你想成为开源项目中得意满满.功成名就的那个人吗,那就要遵守下面的"潜规则". 正如体育界不成文的规定一样,这些规则基本上不会出现在官方文档和正式记录上.比如说,在棒球运动中,从比分领先时不要盗垒,到跑垒员跑了第一时也不要放弃四坏球保送.对于圈外人来讲,这些东西很难懂,甚至觉得没什么意义.但是对于那些想成为 MVP 的队员来说,这些都是理所当然的. 软件开发,特别是开源软件开发中,也有一套不成文的规定.和其它的团队运动一样,这些规定很大程度上决定了开源社区如何看待一名开发者,特别是新加入

码易众包:软件开发众包的未来不能只靠等待和呐喊

软件众包从开始起步到如今已近三年,市场上已经涌现出大批以"软件众包"为"标签"的软件众包服务平台,但对于软件众包的概念而言,只有小众程序员团体知道,而真正的服务端却对软件众包一无所知或将信将疑. 其实软件众包无非四大概念: 一:软件公司开发太贵,为节约成本可以选择软件众包平台. 二:为好的程序员创造一个实现自身价值的平台. 三:优质产品需要优质的开发者,而软件众包平台可以从根源上解决客户对优质产品的开发需求. 四:从软件技术手段解决程序员之间远程沟通.交流.协作.互

为什么说"微 PaaS"代表着未来应用开发的方向?

Docker 的出现,让应用 "容器化"的门槛前所未有地降低,而这一切都在改变着我们开发应用的方式. 今日不同以往.过去,一个单一的代码库就意味着一款应用功能的全部:而现在,应用被分解成为不同的功能性"片段",你可以称它们为"微服务",这些"微服务"共同发力,从而形成一个应用. 与此同时,程序员们发现自己在线上搭建运行这些应用越来越困难了.原因是这些应用不断演化,那种"以平台作为服务(PaaS)",一个平台

【java规则引擎】java规则引擎搭建开发环境

Drools官网:http://www.jboss.org/drools   Drools and jBPM consist out of several projects:(Drools软件包提供的几个部分的功能) Drools Guvnor (Business Rules Manager) (规则集管理器) Drools Expert (rule engine)                      (规则引擎)     jBPM 5 (process/workflow)        

从Windows角度看Mac OS X上的软件开发

    如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X环境上的?这两个问题应该是Windows开发者进入Mac OS X环境最关心的问题.本文假设读者以往采用微软的开发工具,并以C/C++/C#的任一种组合作为开发语言. 大体说来,Windows和Mac OS X都是为桌面应用环境.图形用户接口(GUI)而设计的操作系统.虽然不同平台细节各有特色,但两者相近的抽象概念,其实远远多于相左之处.本文试图指出方向上