规则引擎
文章平均质量分 62
joeyshi
研究规则引擎以及在此基础上研究业务规则管理系统、web快速开发平台、工作流、Saas在线开发平台。
展开
-
对于规则引擎技术的思考
我们当前对规则引擎了解主要是开源的Drools项目,以及商用的ILog JRules,Fair Isaac等产品。目前也主要用于银行的授信、风险控制,保险的核保,医院排班等等环节。这些就是根据一些规则,在大量的数据中,找出符合条件的那些数据,然后进行风险控制。 但是我们平时接触的项目中,都是实时的业务处理,都是把业务数据存入数据库,经过一定的处理,进行展现或者转化。因此很少会用到原创 2009-03-25 10:41:00 · 2779 阅读 · 1 评论 -
规则引擎研究(一)——Rete算法(3)
4.6 连接节点(Join node)当一个连接节点的alpha内存中加入一个事实时,将引发此连接节点的right activation,当一个连接结点的beta内存中加入一个token时,将引发此连接节点的left activation。连接节点的数据结构包括:指向其alpha内存和beta内存的指针,变量连接检测的说明,指向子节点的指针。当一个连接节点的alpha内存中加入某个事实时,引转载 2009-05-06 09:25:00 · 1525 阅读 · 1 评论 -
规则引擎研究(一)——Rete算法(4)——Rete算法的特例Uni-Rete算法
(注:本文参考自Tambe, M., Kalp, D., and Rosenbloom,P. (1991). Uni-Rete: Specializing the Rete match algorithm for the unique-attribute representation. Technical Report CMU-CS-91-180,School of Computer Sc转载 2009-05-06 09:26:00 · 1483 阅读 · 0 评论 -
规则引擎研究(一)——Rete算法(5)——一种产生式的优化算法
(注:本文参考自Toru Ishida. An Optimization Algorithm for Production Systems. IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL. 6, NO. 4. AUGUST 1994.) 产生式系统的优化算法一、 简介产生式系统的系统随着事实数目的增多,性能也转载 2009-05-06 09:35:00 · 2412 阅读 · 0 评论 -
业务规则: 为BI添智能
商业智能中的业务规则能自动理解数据原始含义,进而产生一些更有意义的报表用以指导人们做出更聪明的决策。 几乎每一个绩效管理系统或者商业智能系统都会用到业务规则(Business Rules)。这些规则被报表应用程序用来自动解释数据的含义、定义关键性能指标(KPI)或者提出一些问题的整改建议。 业务规则的含义 实际上,BI(Business Intelligence)项目并不一定一开始都有转载 2009-05-08 10:55:00 · 1669 阅读 · 0 评论 -
改良规则引擎
规则引擎在国内有过一段时期的热潮,特别是JBoss收购了Drools之后,很多人开始关注规则引擎究竟是什么东西。 通过一定程度的了解,大家知道,规则引擎是一个业务逻辑的配置实现。业务逻辑层的代码一般我们通过程序代码实现,但是程序代码不能直观的体现逻辑,而且修改必须由程序员进行。因此我们希望提供一种实现,能够直观的体现逻辑,并且最好可以由业务人员直接修改。 因此从这个角度来说,需要有一个可供业务人原创 2009-05-12 20:58:00 · 1795 阅读 · 1 评论 -
究竟什么才是真正的规则引擎
可能很多人还不了解规则引擎是什么东西,或者不知道规则引擎究竟有什么用。我们都知道工作流引擎,也听说过JBoss下面有个Drools,或者我们知道 weblogic或者Oracle也有自己的Business Rule,我们可能还听说过ILOG被IBM收购了,如果我们研究微软的WWF,可能也知道其中有RuleSet等内容。国内的一些web快速开发平台,也提到了规则引擎。 在我们的印象中,我们感觉规则原创 2009-05-12 20:59:00 · 3080 阅读 · 1 评论 -
如何在工作流等开发平台中集成规则引擎
基于web应用来说,通常分为三部分:界面层、业务逻辑层和持久层。在制作开发平台是,我们都是在这三方面做工作。由于这三层的特点有些不同,因此我们会采用不同的实现方式来实现。 界面层,强调的是操作界面,因此我们注重采用所见即所得的方式来调整界面布局以及界面样式。更多的我们可以会做一个表单设计器。 业务逻辑层,我们强调逻辑调整的便利性,我们会采用动态语言或者规则引擎来实现逻辑的配置。 在持久层,我们会原创 2009-05-12 21:02:00 · 2394 阅读 · 1 评论 -
业务规则分类
<br /> 最近几年,在很多的产品中越来越重视业务规则引擎的实现。比如IBM目前主推的一些产品线中,单独针对业务规则进行了强化。但是在实际的项目应用中,却发现究竟哪些应用,或者那些规则适合采用业务规则引擎来进行实现,而其他的一些规则适合采用工作流引擎或者报表引擎来进行实现。<br /> 这个问题,其实和不同规则引擎的适用面有关。一般的规则引擎,最适合是那些数据结构确定的业务规则的处理。特别是这些规则是非常雷同的,可以说是平级的,然后反复的对同一批数据进行匹配处理。比如电信计费规则,是针对用户的原创 2010-07-15 08:41:00 · 5181 阅读 · 0 评论 -
旗正规则引擎设计思路
<br /> 很多人都有疑惑,既然已经有很多成熟的规则引擎产品,并且开源的规则引擎产品也有很多,应用也很广泛,又何必去搞一个商业的规则引擎产品呢。在国内的环境下,并不认同这类商业的中间件产品,特别是国产的。<br /> 但是国际上的规则引擎产品实在太贵,因此旗正最初的想法也是希望能够使用开源的规则引擎产品进行改造。<br /> 规则引擎有一套约定俗成的标准,就是基于rete算法。特别是出来了JSR94标准之后,虽然说JSR94标准中只是约定了接口,并没有规定算法。但是JSR94标准的接口是原创 2011-05-03 11:10:00 · 8965 阅读 · 1 评论 -
Rete算法的缺陷
<br /> 目前的规则引擎厂家大量采用rete算法来作为规则引擎的核心技术,但是rete算法其出发点是为了人工智能的应用使用,并不适用于一般意义上理解的企业信息化系统中的商业规则管理。<br /> 就规则引擎来说,主要涉及几块:<br /> 1、数据对象:在采用rete算法的规则引擎中,数据对象就是需要采用规则处理的数据。因为rete算法只能对类对象进行匹配处理,因此在执行时,必须先为其准备好基础数据。必须已经汇总好的数据,或者已经统计好的一些数据。<br /> 2、规则语言:一般原创 2011-05-02 21:30:00 · 5398 阅读 · 1 评论 -
如何基于规则引擎打造规则库
规则引擎是面向技术人员的工具。目前技术人员为什么会选择规则引擎来使用,主要是基于如下情形来考虑: 1、业务逻辑从程序代码中脱离出来。通过配置来实现业务规则。 2、业务规则的变更,可以直接由用户通过web界面来修改和变更。 针对这一类需求情况,其实我们有一般由以下的几种可选方案: 1、选择规则引擎来实现。 现有的规则引擎产品一般都能满足以原创 2013-07-05 14:50:31 · 14933 阅读 · 1 评论 -
规则引擎研究(一)——Rete算法(2)
使用RETE算法的模块系统,有四个入口,分别是添加事实(add-wme)、去除事实(remove-wme)、添加规则(add-production)、去除规则(remove-production)。上面的主要介绍了建立rete网络后添加事实的过程。下面先具体介绍alpha网络的建立和添加事实的过程,然后再介绍另外三个过程。4.4 Alpha网络当事实添加到工作内存后,alpha网络对事实转载 2009-05-06 09:23:00 · 2029 阅读 · 0 评论 -
规则引擎研究(一)——Rete算法(1)
RETE算法介绍一、 rete概述Rete算法是一种前向规则快速匹配算法,其匹配速度与规则数目无关。Rete是拉丁文,对应英文是net,也就是网络。Rete算法通过形成一个rete网络进行模式匹配,利用基于规则的系统的两个特征,即时间冗余性(Temporal redundancy)和结构相似性(structural similarity),提高系统模式匹配效率。二、 相关概念2.1 事实(fac转载 2009-05-06 09:18:00 · 2654 阅读 · 0 评论 -
Rete 算法
1.Rete 算法 :Rete 在拉丁语中是 ”net” ,有网络的意思。 RETE 算法可以分为两部分:规则编译( rule compilation )和运行时执行( runtime execution )。编译算法描述了规则如何在 Production Memory 中产生一个有效的辨别网络。用一个非技术性的词来说,一个辨别网络就是用来过滤数据。方法是通过数据在网络中的传播来过滤转载 2009-05-06 08:21:00 · 2154 阅读 · 0 评论 -
详解Java规则引擎与其API
转载 2009-05-03 07:26:00 · 1024 阅读 · 0 评论 -
制作在线的轻量级规则引擎的开源项目的提议
由于Drools等规则引擎需要采用规则匹配等方式来定义规则,这种方式并不适合于一般的程序逻辑。因此希望制作一个基于一般的程序逻辑的简易的规则引擎。我们现在在一些项目中,还是经常需要用到这些逻辑配置的。比如在工作流引擎中,我们希望可以做一些操作,这些操作可能会有一定的逻辑。一般情况下,我们会采用语法解析器,比如BeanShell等,或者动过动态语言来进行。但是这种方式不够友好。因此想过用规则引擎来做原创 2009-05-05 13:15:00 · 2107 阅读 · 2 评论 -
基于Rete算法的JAVA规则引擎
作者:张渊 夏清国( 西北工业大学计算机学院, 西安710072)出自:《科学技术与工程》 第 6 卷第 11 期 2006 年 6 月摘要在软件应用中若能抽取出规则, 可以使软件实体更灵活, 规则引擎使得这成为可能。其算法Rete 也逐渐发展成为了一种最重要的主流算法。先着重叙述了规则引擎的原理及其JAVA API, 其次阐述了Rete 算法, 最后简单介绍了Jess 与开源项目产转载 2009-05-05 16:19:00 · 5132 阅读 · 1 评论 -
JSR94-API安装完全图解
基于规则的专家系统(RBES)专家系统是人工智能的一个分支,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。专家系统有很多分类:神经网络、基于案例推理和基于规则系统等。规则引擎简介和人类的思维相对应,规则引擎存在两者推理方式:演绎法(Forward-Chaining)和归纳法(Backward-Chaining)。演绎法从一个初始的事实出发,不断地应用转载 2009-05-04 07:48:00 · 3343 阅读 · 1 评论 -
Java规则引擎的集成
规则引擎简介 Java规则引擎是推理引擎的一种,它起源于基于规则的专家系统。 Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。Java规则引擎接受数据输入,解释业务规则,并根据规则作出业务决策。从这个意义上来说,它是软件方法学在"关注点分离"上的一个重要的进展。 JSR-94规范定义了独立于厂商的标准API,开发人员可以通过转载 2009-05-04 07:54:00 · 1478 阅读 · 0 评论 -
Java规则引擎工作原理及其应用
引言 目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。 规则引擎的原理 1、基于规则的专家系统(RBES)简介 Java规转载 2009-05-05 16:18:00 · 1766 阅读 · 0 评论 -
rete算法简介
Rete算法是Charles Forgy在1979年的论文中首次提出的,针对基于规则知识表现的模式匹配算法。目前来说,大部分规则引擎还是基于rete算法作为核心,但都有所改进,比如drool,jess等等,下面介绍rete算法的概念,一些术语,以及使用规则引擎需要注意的问题。 先来看看如下的表达式: (name-of-this-production LHS /* o转载 2009-05-03 13:57:00 · 1567 阅读 · 0 评论 -
HAL:快速的匹配算法
(注:本文参考自P.-Y.LeeandA.M.K.Cheng,“HAL:A Faster Match Algorithm”,IEEE Trans. Knowledge and Data Eng.,vol.14,no.5,Sept./Oct. 2002.) HAL:快速的匹配算法一、 简介 前向推理的产生式系统已经应用在各种领域中。这些产生式系统的基本结构分为三个部分。第一个转载 2009-05-06 08:29:00 · 5840 阅读 · 0 评论 -
规则系统与工作流产品的异同- (转 intelligence 产品论坛)(转载)
工作流系统是一种用于开发、部署、监控和优化多种自动或包含人机交互应用的框架。它与规则系统在使用方式方法上有很多类似的地方,但也存在本质的区别,是两种完全不同的应用。 相似点:1.都以业务人员能够理解的方式构建无论是工作流还是规则系统,它们的构建都是非常直观的。由于使用业务术语和符合业务人员工作的模式,业务人员几乎无需额外的培训就能够看懂构建的模型。这大大加深了业务人员的参与程度,使业务人转载 2009-05-06 10:59:00 · 1209 阅读 · 0 评论 -
规则引擎简单化才能真正实用
今天看到了一篇文章,发现其提到的问题,就是我们已经解决的问题。但是他没有提到其实规则引擎是可以简单化的,去掉了冲突推理后的规则引擎,就能够更好的实现我们日常碰到的各类业务逻辑问题。而且其不用再去考虑规则优先级,冲突、关联之类的事情,无需再担心某处的一个简单的改变带来了大量无发确定的后果。实现了易用以及灵活性的完美结合。 今天朋友介绍了Martin Fowler刚写的一篇文章。原创 2009-05-07 11:20:00 · 3282 阅读 · 1 评论 -
JAVA的规则引擎实现
一、Drools: Drools是一个Bob McWhirter开发的开源项目,实现了JSR94 Rule Engine API并提供了单元测试代码。 应用了Rete核心算法。Drools提供了三种语义模块――Python模块,Java模块和Groovy模块。 站点:http://drools.org/ Drools- 商务逻辑框架的选择: http://www.matrix.org.cn/转载 2009-05-07 11:46:00 · 8376 阅读 · 1 评论 -
利用规则引擎打造轻量级的面向服务编程模式
目前的系统中,前端的变化越来越多样。光web前端而言,HTML+JS,JQuery,Ext以及其他的各种框架等。曾经Ext刚出来时,我们为其美观、整洁的样式所吸引,但当我们开始熟悉并使用Ext时,却发现其界面让人审美疲劳。前篇一律的界面,让人觉得没有创意。 最终,我们又回到原来前端的开发模式,通过美工设计界面和样式。然后用JQuery控件,来实现设计的这种表单、列表等。Ajax模式和Po原创 2013-07-05 16:17:06 · 4862 阅读 · 0 评论