规则引擎简介

引擎的使用

对软件设计来说,如何将用户业务相关问题映射到与实现技术相关的面向对象体系架构,同时保证映射的准确性和灵活性,是构建大型系统的关键性因素之一。而构建基于工作流和规则引擎的软件体系架构是最终解决之道。工作流负责宏观任务的流程定制和重组,规则引擎则负责微观的任
务逻辑与实现分离。Java 规则引擎(Rule Engine) 技术为管理多变的业逻辑提供了一种解决方案,它既可以管理应用层的业务逻辑,又可以订制表示层的页面流程。使用规则引擎可以分离商业决策者的业务逻辑和应用开发者的技术决策,并把这些商业决策放在数据库中,让它们能在运行时被动态地管理和修改,从而降低应用程序的维护和扩展成本。
本节课首先从规则引擎的基本概念讲起,然后讲解几种常用的基于Java的开源规则引擎的使用主要内容如下。
规则引擎概述:讲解规则引擎产生的背景、工作机制,Java规则引擎的工作机制和API,以及常用的Java规则引擎。
使用Drools规则引擎Drools是免费开源的规则引擎以Drools为例,讲解规则引擎的使用过程,包括Drools的下载与安装、插件的安装、项目的创建、规则文件语法、规则引擎API通过本节课的学习,你将能够了解规则引擎的基本原理、常用的开源规则引擎,以及规则引擎开发的过程。

大部分规则引擎产品的算法都来自于 Rete 算法及其变体,Rete 算法是目前效率最高的一个Forward-Chaining 推理算法,Drols 项目是 Rete 算法的一个面向对象的Java 实现,Rete 算法的核心思想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果。Drools 的官方网站是 http://wwwjibossorg/drools,从该网址可以看出,Drools 是JBoss 旗下的-个产品,目前它已经加入到JBoss 家族中。它可供用户免费下载和使用,同时提供了可视化的开发工具来方便用户进行开发。下面我们以 Drools 为例来讲解规则引擎的使用。Drools 软件包提供了如下几个部分的功能:
Drools 规则引警。
Drools Flow 工作流。
Drools Decision 决策表。
Drools Guvnor 规则集管理。
Drools Solver 规则集引警搜索与规划

规则弓擎产生的背景

开发人员为企业开发应用系统,通常都会遇到如下两个方面的问题。一方面是企业用户希望开发的软件系统能够适应不断变化的业务规则,主要可以归纳为以下 3个问题:

  1. 为提高应用系统的效率,系统的业务流程必须能够进行自动化管理。
  2. 业务需求会经常变化,软件系统也必须依据业务的变化而快速、低成本地变化。
  3. 为了快速、低成本地更新软件系统,企业用户需要能够直接管理软件系统中的规则,不需要程序开发人员参与。
    另一方面,开发人员为了满足企业用户的以上要求,需要开发出能够使用多变业务的软件系统这就遇到了以下问题:
  4. 程序是由算法和数据结构组成的,特复杂的业务很难推导出算法和数据结构。
  5. 业务需求经常在需求分析还没有明确的时候,以及在设计和编码之后还在变化。
  6. 软件系统的维护和更新都需要由开发人员进行,然而交给企业用户来管理业务规则就会更加困难。
    综合以上两个方面的问题,其核心目标都是使得系统能够适应不断变化的业务规则,如果用户的需求改变了,则可以在开发人员不参与的情况下,由使用用户直接修改、管理和维护。这样,软件的可维护性增高,软件的维护成本也会降低。
    为了增加软件的可维护性,便出现了规则引擎,基于规则的专家系统的出现给开发人员以解决问题的契机。规则引擎由基于规则的专家系统中的推理引擎发展而来。通过使用规则引擎,不仅可以解决业务处理逻辑的改变问题,而且也能科学地解决数据及界面的经常变动问题。

规则引擎简介_第1张图片
规则引擎简介_第2张图片
规则引擎简介_第3张图片
规则引擎简介_第4张图片
规则引擎简介_第5张图片
规则引擎简介_第6张图片

你可能感兴趣的:(java)