论文部分内容阅读
摘要:规则引擎是一种嵌入在应用程序中的组件。起源于基于规则的专家系统。它可以在应用系统中分离商业决策逻辑和程序逻辑。目前的商用规则引擎,包括JBoss Rules,基本上都是基于Ret算法。文章先叙述了规则引擎的原理及Java规则引擎工作机制,然后介绍了Drools中改进后的Ret算法,最后以实例说明了如何在应用程序中使用JBossRules来管理规则。
关键词:规则引擎;Rete算法;JBoss Rules;Drools
0 引言
任何软件开发过程都是从需求到设计再到编码的,企业应用系统也如此。在传统企业应用系统开发中,业务规则是由用户在需求分析阶段提供,内嵌在程序代码中,它使用复杂的if-else语句来构成,一旦开发完成,便不易变更。然而现实情况却是业务规则往往频繁地变更,往往在设计和编码完成后还在变化,每一项规则的变化都需要开发人员对那些复杂的if-else语句进行修改,这无疑增加了系统的更新成本。正因为如此,所以企业管理者希望业务人员能够直接管理应用系统中的规则,不需要程序开发人员的参与。但问题是,很多复杂的规则,对于开发人员也很难推导出算法和抽象出数据模型,且业务规则往往嵌在系统的各处代码中,不可能让非开发人员管理。于是规则引擎应运而生,它的出现给开发人员带来了解决上述问题的契机。
1 业务规则及规则引擎
一个业务规则由一组条件和在此条件下执行的操作组成,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足条件时会触发一个或多个操作。
规则引擎是一种嵌入在应用程序中的组件,它起源于基于规则的专家系统(RBES),而基于规则的专家系统又是专家系统的一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理。并使用人类能理解的术语解释和证明它的推理结论。规则引擎的任务是把当前提交给引擎的数据对象与加载在引擎中的业务规则进行比较,激活那些符合当前数据状态下的业务规则。根据业务规则中声明的执行逻辑,对当前数据对象执行对应的操作。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:规则引擎;Rete算法;JBoss Rules;Drools
0 引言
任何软件开发过程都是从需求到设计再到编码的,企业应用系统也如此。在传统企业应用系统开发中,业务规则是由用户在需求分析阶段提供,内嵌在程序代码中,它使用复杂的if-else语句来构成,一旦开发完成,便不易变更。然而现实情况却是业务规则往往频繁地变更,往往在设计和编码完成后还在变化,每一项规则的变化都需要开发人员对那些复杂的if-else语句进行修改,这无疑增加了系统的更新成本。正因为如此,所以企业管理者希望业务人员能够直接管理应用系统中的规则,不需要程序开发人员的参与。但问题是,很多复杂的规则,对于开发人员也很难推导出算法和抽象出数据模型,且业务规则往往嵌在系统的各处代码中,不可能让非开发人员管理。于是规则引擎应运而生,它的出现给开发人员带来了解决上述问题的契机。
1 业务规则及规则引擎
一个业务规则由一组条件和在此条件下执行的操作组成,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足条件时会触发一个或多个操作。
规则引擎是一种嵌入在应用程序中的组件,它起源于基于规则的专家系统(RBES),而基于规则的专家系统又是专家系统的一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理。并使用人类能理解的术语解释和证明它的推理结论。规则引擎的任务是把当前提交给引擎的数据对象与加载在引擎中的业务规则进行比较,激活那些符合当前数据状态下的业务规则。根据业务规则中声明的执行逻辑,对当前数据对象执行对应的操作。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。