自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 旗正规则引擎设计思路

<br />    很多人都有疑惑,既然已经有很多成熟的规则引擎产品,并且开源的规则引擎产品也有很多,应用也很广泛,又何必去搞一个商业的规则引擎产品呢。在国内的环境下,并不认同这类商业的中间件产品,特别是国产的。<br />    但是国际上的规则引擎产品实在太贵,因此旗正最初的想法也是希望能够使用开源的规则引擎产品进行改造。<br />    规则引擎有一套约定俗成的标准,就是基于rete算法。特别是出来了JSR94标准之后,虽然说JSR94标准中只是约定了接口,并没有规定算法。但是JSR94标准的接口是

2011-05-03 11:10:00 8892 1

原创 利用规则引擎打造轻量级的面向服务编程模式

目前的系统中,前端的变化越来越多样。光web前端而言,HTML+JS,JQuery,Ext以及其他的各种框架等。曾经Ext刚出来时,我们为其美观、整洁的样式所吸引,但当我们开始熟悉并使用Ext时,却发现其界面让人审美疲劳。前篇一律的界面,让人觉得没有创意。    最终,我们又回到原来前端的开发模式,通过美工设计界面和样式。然后用JQuery控件,来实现设计的这种表单、列表等。Ajax模式和Po

2013-07-05 16:17:06 4798

原创 如何基于规则引擎打造规则库

规则引擎是面向技术人员的工具。目前技术人员为什么会选择规则引擎来使用,主要是基于如下情形来考虑:    1、业务逻辑从程序代码中脱离出来。通过配置来实现业务规则。    2、业务规则的变更,可以直接由用户通过web界面来修改和变更。    针对这一类需求情况,其实我们有一般由以下的几种可选方案:    1、选择规则引擎来实现。          现有的规则引擎产品一般都能满足以

2013-07-05 14:50:31 14651 1

原创 促销策略管理的规则引擎实现

<br />    生产型企业销售渠道的建设,一般都采用代理商政策。根据地区、产品等情况,设立不同级别的代理商,并且定期对于不同的产品线进行一定的促销政策调整。<br />    生产型企业需要每个季度,根据最新的促销政策,需要计算每个代理商的返点金额。这个工作目前来说,目前基本上都是采用手工采用Excel进行计算。<br />    如果要将返点计算工作IT化,就需要能够及时的应对促销策略的调整。促销策略调整时,不光只是算法的调整,有些还涉及到计算因子的调整。因此单纯的采用数据库以及编程方式,并不能很快的

2011-05-05 18:01:00 5547

原创 Rete算法的缺陷

<br />    目前的规则引擎厂家大量采用rete算法来作为规则引擎的核心技术,但是rete算法其出发点是为了人工智能的应用使用,并不适用于一般意义上理解的企业信息化系统中的商业规则管理。<br />    就规则引擎来说,主要涉及几块:<br />    1、数据对象:在采用rete算法的规则引擎中,数据对象就是需要采用规则处理的数据。因为rete算法只能对类对象进行匹配处理,因此在执行时,必须先为其准备好基础数据。必须已经汇总好的数据,或者已经统计好的一些数据。<br />    2、规则语言:一般

2011-05-02 21:30:00 5330 1

原创 业务规则分类

<br />    最近几年,在很多的产品中越来越重视业务规则引擎的实现。比如IBM目前主推的一些产品线中,单独针对业务规则进行了强化。但是在实际的项目应用中,却发现究竟哪些应用,或者那些规则适合采用业务规则引擎来进行实现,而其他的一些规则适合采用工作流引擎或者报表引擎来进行实现。<br />    这个问题,其实和不同规则引擎的适用面有关。一般的规则引擎,最适合是那些数据结构确定的业务规则的处理。特别是这些规则是非常雷同的,可以说是平级的,然后反复的对同一批数据进行匹配处理。比如电信计费规则,是针对用户的

2010-07-15 08:41:00 5087

原创 如何在规则引擎中集成数据库操作

<br />    在一般的项目开发中,用的最多的是基于数据库的管理系统,虽说现在对关系型数据库出来了很多的替代方案,但是在实际正式的项目中,我们基本上还是使用关系型数据库来进行开发。<br />    在项目开发的过程中,我们主要是抓住几个关键的地方。一个就是数据库结构的设计,以及操作该数据库的SQL语句。虽说现在Hibernate等可以不用再书写SQL语句来进行开发,但是对于高级设计人员来说,SQL语句还是最简洁和快速的开发方法。书写一个复杂一些的SQL语句,可以极大的提高性能和减少开发工作量。<br

2010-07-13 08:17:00 2794

原创 如何在工作流等开发平台中集成规则引擎

 基于web应用来说,通常分为三部分:界面层、业务逻辑层和持久层。在制作开发平台是,我们都是在这三方面做工作。由于这三层的特点有些不同,因此我们会采用不同的实现方式来实现。 界面层,强调的是操作界面,因此我们注重采用所见即所得的方式来调整界面布局以及界面样式。更多的我们可以会做一个表单设计器。 业务逻辑层,我们强调逻辑调整的便利性,我们会采用动态语言或者规则引擎来实现逻辑的配置。 在持久层,我们会

2009-05-12 21:02:00 2360 1

原创 用好设计模式,就要抓住设计模式的精髓

 设计模式的提出已经有很长一段时间了,在很多项目中我们已经潜移默化的使用了这些设计模式。不管我们采用java还是c#开发,都是基于一个框架或者一些组件来进行。这些框架和组件都是基于一些设计模式来制作的。虽然我们根据感觉自己在开发的时候,只需要填空式的做一些内容,但其实也是在某些模式的基础上,给了我们这种易于扩展的便利性。 因此有时候我们发现,框架都已经帮我们做好了,设计模式中提到的那些模式在我们实

2009-05-12 21:01:00 1127

原创 建立自己公司内部的开发平台需要注意的问题

 前段时间看了《三五个人十来条枪》,感觉国内的软件公司确实有自己的特色。大部分软件项目都是几个人搞定,或者一个人搞定,而且从基础架构到业务实现,也不是基于通用的一些开发平台,最多采用一些开源组件再加上自己公司积累的框架,就上了。而且也能做的下来,即使项目出问题,也不是在技术上。 虽然现在国内出现好多的快速开发平台,但用的最多的还是最终用户的信息中心,软件公司肯定都是采用自己公司积累下来的东西。其原

2009-05-12 21:00:00 2374

原创 开发平台或框架的跨语言问题

一般情况下,制作开发平台或者框架都是和程序语言密切相关,或者说不可分的。一开始如果确定了一种语言之后,那么所有的与之相关的内容全部都是这个语言基础上了。比如确定基于java后,那么配置器可能是基于Eclipse扩展的,web服务器估计用Tomcat等,另外还会有一些开源框架,比如 Apache的一些组件、Hibernate、Struts等,哪怕是前端的ajax技术,也会选用dwr等方便调用java

2009-05-12 21:00:00 1303

原创 究竟什么才是真正的规则引擎

 可能很多人还不了解规则引擎是什么东西,或者不知道规则引擎究竟有什么用。我们都知道工作流引擎,也听说过JBoss下面有个Drools,或者我们知道 weblogic或者Oracle也有自己的Business Rule,我们可能还听说过ILOG被IBM收购了,如果我们研究微软的WWF,可能也知道其中有RuleSet等内容。国内的一些web快速开发平台,也提到了规则引擎。 在我们的印象中,我们感觉规则

2009-05-12 20:59:00 3052 1

原创 改良规则引擎

 规则引擎在国内有过一段时期的热潮,特别是JBoss收购了Drools之后,很多人开始关注规则引擎究竟是什么东西。 通过一定程度的了解,大家知道,规则引擎是一个业务逻辑的配置实现。业务逻辑层的代码一般我们通过程序代码实现,但是程序代码不能直观的体现逻辑,而且修改必须由程序员进行。因此我们希望提供一种实现,能够直观的体现逻辑,并且最好可以由业务人员直接修改。 因此从这个角度来说,需要有一个可供业务人

2009-05-12 20:58:00 1774 1

转载 业务规则: 为BI添智能

商业智能中的业务规则能自动理解数据原始含义,进而产生一些更有意义的报表用以指导人们做出更聪明的决策。 几乎每一个绩效管理系统或者商业智能系统都会用到业务规则(Business Rules)。这些规则被报表应用程序用来自动解释数据的含义、定义关键性能指标(KPI)或者提出一些问题的整改建议。 业务规则的含义 实际上,BI(Business Intelligence)项目并不一定一开始都有

2009-05-08 10:55:00 1643

转载 几个基于javascript的ui框架

MochaUI MochaUI is a web applications user interface library built on the Mootools JavaScript framework.网址:[url]http://mochaui.com/[/url] 演示:[url]http://mochaui.com/demo/[/url] 授权方式:MIT Licensejqu

2009-05-08 09:04:00 1236 1

转载 应用Jboss rules规则引擎,以中文定义业务规则

1.rulesWithDSL.drl文件的定义:package com.mip.biz.operatebill.rules;import com.mip.biz.operatebill.objects.ValueBean;import org.apache.commons.lang.StringUtils;import com.mip.core.utils.Log;global com.mip

2009-05-08 07:23:00 3311 3

转载 规则引擎—— 实例应用指南

本文给出了如何利用Drools来执行业务规则实例。 考虑这样一种情况,某学校USST希望招收的学校其年龄应该大于15岁,另外一个学校FUDAN希望其招收的学生大于18岁.当然,不同的学校对学生的要求可能不一样,例如年龄、性别、成绩等。如果采用大量的if...else语句写在业务逻辑层,将来随着学校招生的要求变化,需要应用程序开发人员,不断的修改业务规则。现在考虑采用Drools来使商务逻辑

2009-05-08 07:18:00 5210 1

转载 基于业务流程管理框架的企业敏捷性研究

引 言    随着经济全球化进程的加快和Internet的广泛应用,世界市场动态多变,企业之间的竞争也由过去的局部演变成全球范围的竞争。新的环境要求企业具有很强的自适应能力,既要根据市场变化迅速地自我调节,又要能够具备较强的研发能力去寻求新的市场机遇。敏捷企业正是适应这种新型环境的产物。敏捷企业是一个能够快速变革、适应性强和健壮性好的企业,它能够通过其重构能力快速响应市场变化,从而建立其竞争优势。

2009-05-07 20:36:00 2047

转载 案例分析:巴西国家医疗保健系统

巴西国家医疗保健系统曾被喻为全球最大的Java企业应用,涉及200多万行代码,囊括一个350个类的区域模块。该系统把所有能想象到全国范围内的各类行政地区模块化,其所实现的自动化给公共医疗保健系统创造了巨大的价值,让巴西人受益匪浅。本案例分析,从系统构架、解决方案、教训与启发以及项目的未来趋向等做全方面详细深入的探索。问题域巴西是世界上仅有的几个提供完全免费公共医疗保健系统的国家之一。和所有重大的公

2009-05-07 20:22:00 2614

转载 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 8347 1

原创 规则引擎简单化才能真正实用

  今天看到了一篇文章,发现其提到的问题,就是我们已经解决的问题。但是他没有提到其实规则引擎是可以简单化的,去掉了冲突推理后的规则引擎,就能够更好的实现我们日常碰到的各类业务逻辑问题。而且其不用再去考虑规则优先级,冲突、关联之类的事情,无需再担心某处的一个简单的改变带来了大量无发确定的后果。实现了易用以及灵活性的完美结合。  今天朋友介绍了Martin Fowler刚写的一篇文章。

2009-05-07 11:20:00 3253 1

转载 规则系统与工作流产品的异同- (转 intelligence 产品论坛)(转载)

工作流系统是一种用于开发、部署、监控和优化多种自动或包含人机交互应用的框架。它与规则系统在使用方式方法上有很多类似的地方,但也存在本质的区别,是两种完全不同的应用。  相似点:1.都以业务人员能够理解的方式构建无论是工作流还是规则系统,它们的构建都是非常直观的。由于使用业务术语和符合业务人员工作的模式,业务人员几乎无需额外的培训就能够看懂构建的模型。这大大加深了业务人员的参与程度,使业务人

2009-05-06 10:59:00 1181

转载 DSL:基于规则系统组织业务规则

分析阶段的Use Case(User Story)除了Business Flow描述外,另一个重要的部分就是业务规则。组织和实现这些业务规则有不同的手段(将带来不同效益)。除传统的开发人员的代码实现外,越来越多系统开始使用规则系统来组织。  对于应用规则引擎网络上著名的有两篇文章:《Java规则引擎与其API应用详解》和《企业平台中的业务规则引擎》 此外,JBoss也基于Drools推出了JBPM

2009-05-06 10:57:00 2568 2

转载 Drools 为你的业务逻辑提供框架(转载)

  大部分 web 以及企业级 Java 应用可被分成三部分:与用户交互的前台,与数据库这样的后台系统交互的服务层,以及它们之间的业务逻辑。最近这段时间,通常我们会使用框架来实现前台和后台的需求(例如:Struts, Cocoon, Spring, Hibernate, JDO, 以及实体 Beans),但是却没有一种标准手段很好的组织业务逻辑。像 EJB 和 Spring 这样的框架都以 hig

2009-05-06 10:48:00 1871

转载 JBoss Rules 学习(四): Drools规则引擎 (下)

4 . WorkingMemory: Figure 4.1 WorkingMemoryWorkingMemory 是运行时规则引擎的主要类。它保持了所有被 asserted 进 WorkingMemory 的数据的引用,直到取消( retracted )。 WorkingMemory 是有状态对象。它们的生命周期可长可短。如果从一个短生命周期的角度来同一个引擎进行交互,意味着你可以使用

2009-05-06 10:10:00 2101

转载 JBoss Rules 学习(三): Drools规则引擎 (上)

从今天开始,我们将分两期来详细的介绍Drools规则引擎的原理,和各关键类的使用方法。Drools 规则引擎(上)1. 概述 :Drools 分为两个主要部分:构建( Authoring )和运行时( Runtime )。构建的过程涉及到 .drl 或 .xml 规则文件的创建,它们被读入一个解析器,使用 ANTLR 3 语法进行解析。解析器对语法进行正确性的检查,然后产生一种中间结构“

2009-05-06 10:03:00 1649

转载 JBoss Rules 学习(二): RETE算法

在JBoss Rules 学习(一):什么是Rule中,我们介绍了JBoss Rules中对Rule的表示,其中提到了JBoss Rule中主要采用的RETE算法来进行规则匹配。下面将详细的介绍一下RETE算法在JBoss Rule中的实现,最后随便提一下JBoss Rules中也可以使用的另一种规则匹配算法Leaps。1.Rete 算法 :Rete 在拉丁语中是 ”net” ,有网络的意思。

2009-05-06 10:00:00 1502 1

转载 JBoss Rules 学习(一): 什么是Rule

        学习JBoss Rules有几天了,因为这方面的中文资料较少,所以这几天都在看官网上的manual。这是一份不错的教程,我把我看的一些重要的东西翻译整理了一下,希望可以对想学习JBoss Rules的同学们提供一点帮助。       在开始这份教程之前,我先简要介绍一下JBoss Rules:       JBoss Rules 的前身是Codehaus的一个开源项目叫Drools

2009-05-06 09:57:00 2169

转载 使用 Drools 规则引擎实现业务逻辑

使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。本文展示了如何使用 Drools 规则引擎让 Java™ 应用程序更适应变化。Drools 的一个好处是具有允许将 Java 代码直接嵌入规则文件中的附加语法。要求施加在当今软件产品上的大多数复杂性是行为和功能方面的,从而导致组件实现具有复杂的业务逻辑。实现 J2EE 或 J2SE 应用程序中业务逻辑

2009-05-06 09:49:00 2138

转载 规则引擎研究(一)——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 2294

转载 规则引擎研究(一)——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 1422

转载 规则引擎研究(一)——Rete算法(3)

4.6  连接节点(Join node)当一个连接节点的alpha内存中加入一个事实时,将引发此连接节点的right activation,当一个连接结点的beta内存中加入一个token时,将引发此连接节点的left activation。连接节点的数据结构包括:指向其alpha内存和beta内存的指针,变量连接检测的说明,指向子节点的指针。当一个连接节点的alpha内存中加入某个事实时,引

2009-05-06 09:25:00 1477 1

转载 规则引擎研究(一)——Rete算法(2)

使用RETE算法的模块系统,有四个入口,分别是添加事实(add-wme)、去除事实(remove-wme)、添加规则(add-production)、去除规则(remove-production)。上面的主要介绍了建立rete网络后添加事实的过程。下面先具体介绍alpha网络的建立和添加事实的过程,然后再介绍另外三个过程。4.4  Alpha网络当事实添加到工作内存后,alpha网络对事实

2009-05-06 09:23:00 1987

转载 规则引擎研究(一)——Rete算法(1)

RETE算法介绍一、 rete概述Rete算法是一种前向规则快速匹配算法,其匹配速度与规则数目无关。Rete是拉丁文,对应英文是net,也就是网络。Rete算法通过形成一个rete网络进行模式匹配,利用基于规则的系统的两个特征,即时间冗余性(Temporal redundancy)和结构相似性(structural similarity),提高系统模式匹配效率。二、 相关概念2.1  事实(fac

2009-05-06 09:18:00 2538

转载 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 5760

转载 Rete 算法

 1.Rete 算法 :Rete 在拉丁语中是 ”net” ,有网络的意思。 RETE 算法可以分为两部分:规则编译( rule compilation )和运行时执行( runtime execution )。编译算法描述了规则如何在 Production Memory 中产生一个有效的辨别网络。用一个非技术性的词来说,一个辨别网络就是用来过滤数据。方法是通过数据在网络中的传播来过滤

2009-05-06 08:21:00 2112

转载 DROOLS语法详解

 一个典型的DRL文件:①package com.sample //包名,不可以与关键字冲突②import com.sample.DroolsTest.Message;//本文件需要导入的类③global java.util.List myGlobalList;//全局变量④//定义函数体function String hello(String name) {return "Hello "+n

2009-05-06 08:18:00 21193

转载 Drools 入门例子

 本人参照drools-4.0.7-examples修改,可以到这个网址去下载:http://www.jboss.org/drools/downloads.html1:下载4.0版eclipse : eclipse-java-ganymede-win32.zip并解压到D:/eclipse-java-ganymede-win32不需安装2:下载drools插件http://www.

2009-05-06 08:14:00 21800 8

转载 drools 学习笔记

大多数web和企业Java应用可以分成三个部分:一个和用户交互的前台, 一个和后台系统,例如数据库交互的服务层,以及他们中间的业务逻辑。 现在使用框架构建前台和后台系统已经成为普遍共识(例如, Struts, Cocoon, Spring, Hibernate, JDO, 和 Entity Beans), 但却没有一个标准的方法来构建业务逻辑。一些框架,例如 EJB 和 Spring 只在一个高层

2009-05-06 06:24:00 20290 3

转载 基于Rete算法的JAVA规则引擎

 作者:张渊 夏清国( 西北工业大学计算机学院, 西安710072)出自:《科学技术与工程》 第 6 卷第 11 期 2006 年 6 月摘要在软件应用中若能抽取出规则, 可以使软件实体更灵活, 规则引擎使得这成为可能。其算法Rete 也逐渐发展成为了一种最重要的主流算法。先着重叙述了规则引擎的原理及其JAVA API, 其次阐述了Rete 算法, 最后简单介绍了Jess 与开源项目产

2009-05-05 16:19:00 5093 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除