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

简介: 规则引擎 (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以及电子商务的销售系统等。

 

 

 

 

目录
相关文章
|
7月前
|
人工智能 自然语言处理 搜索推荐
AI原生企业级Agent构建平台具备哪些特性?一篇文章看明白
AI原生企业级Agent构建平台有哪些特性?澜码正式发布AskXBOT平台为业界揭晓答案。
477 0
|
存储 人工智能 搜索推荐
SuperAGI 一个开发优先的开源自主人工智能代理框架
供应、生成和部署自主人工智能代理
|
2月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
4月前
|
人工智能 数据库 对象存储
就AI 基础设施的演进与挑战问题之创建Ganos FDW扩展并管理CSV文件的问题如何解决
就AI 基础设施的演进与挑战问题之创建Ganos FDW扩展并管理CSV文件的问题如何解决
|
4月前
|
人工智能 测试技术 持续交付
就AI 基础设施的演进与挑战问题之定义应用的交付模式的问题如何解决
就AI 基础设施的演进与挑战问题之定义应用的交付模式的问题如何解决
|
5月前
|
存储 前端开发
通用研发提效问题之需要统一的消息模型,如何解决
通用研发提效问题之需要统一的消息模型,如何解决
|
7月前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之是否可以在模型部署发布后以http接口形式提供给业务开发人员使用
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
7月前
|
人工智能 Cloud Native 算法
应用从云原生走向AI原生,软件可望“以天为单位”开发
【1月更文挑战第8天】应用从云原生走向AI原生,软件可望“以天为单位”开发
124 2
应用从云原生走向AI原生,软件可望“以天为单位”开发
|
7月前
|
开发框架 网络安全 数据库
典型应用集成技术
【1月更文挑战第11天】典型应用集成技术。
40 0
|
存储 弹性计算 人工智能
与阿里云存储产品相关的技术特性和发展方向
与阿里云存储产品相关的技术特性和发展方向
362 2