`
Mr-zhang
  • 浏览: 18648 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

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

阅读更多
    可能很多人还不了解规则引擎是什么东西,或者不知道规则引擎究竟有什么用。我们都知道工作流引擎,也听说过JBoss下面有个Drools,或者我们知道 weblogic或者Oracle也有自己的Business Rule,我们可能还听说过ILOG被IBM收购了,如果我们研究微软的WWF,可能也知道其中有RuleSet等内容。国内的一些web快速开发平台,也提到了规则引擎。
    在我们的印象中,我们感觉规则引擎就是解决业务逻辑层的实现问题的。因此我们理所当然的觉得工作流中的某个节点的逻辑处理,应该可以用规则引擎来解决,那么工作流本身的逻辑也应该可以由规则引擎来解决。另外我们也会觉得,平时项目当中的业务逻辑应该都可以用规则引擎来解决。但是当我们在使用上述这些规则引擎,却发现很难和我们实际应用的业务逻辑层的业务逻辑实现相对应。
   我们以JBoss的Drools为例,由于其规则引擎使用了匹配规则的方式来进行,因此在应用这些规则引擎时。首先需要将我们具体应用中的业务逻辑做抽象,抽象成一条条规则之后,再打包成一个规则包。一个规则包相当于一个智能块。当数据传递给这个智能块后,系统会以匹配的方式应用满足条件的逻辑处理。当采用这种方式时,应该说逻辑更抽象了,在一个更高的层次加以抽象化的定义。但是也使得规则引擎的应用得到了很大的限制。首先这种抽象本身需要一个复杂的分析过程,这需要有很强的分析设计能力。另外我们平时具体应用中的业务逻辑层,大量的逻辑都是对实际数据的处理,很多时候还是一个批量数据的处理,甚至有些逻辑需要的参数我们并不能定义在规则中,而是在数据库表中进行配置。因此我们常见的业务逻辑层的开发,并不能先设计出一个数据模型,然后再在此基础上抽象逻辑。因此我们发现Drools等规则引擎很难用,根本不是我们所需要的那样。我们研究规则引擎也有一段时间了。有时候我们发现自己做的规则引擎并不是一个规则引擎。因为我们和像Drools这些规则引擎有很大的差别。但我们确实解决了业务逻辑层的业务逻辑配置问题。应该说我们的更实用一些。但是我们却没法去实现JSR94标准。我们不光处理业务逻辑,还把所有业务逻辑层需要处理的操作全部采用规则配置的形式,包括数据库处理逻辑等。
    接下来我们讲述一下Visual Rules Solution(后续介绍用:“VRS”代替“Visual Rules Solution”),是一个基于规则引擎实现的可视化定制业务逻辑的商业规则管理系统,同时又具有快速开发java软件项目的功能。VRS可以在程序外部对软件项目中所涉及的业务逻辑进行单独管理,并且提供多种语言的API接口供外部程序调用。VRS可以集成到现有的软件项目中,将软件中经常容易发生变化的部分,独立出来由规则库进行管理。可以用于直接开发web项目,Visual Rules可以为软件项目生成90%以上的程序代码,节约50%以上的软件开发时间以及减少80%以上的软件维护工作量。
   VRS是开发B/S结构软件项目的利器,特别适用于快速开发基于J2EE结构的软件项目。其原理是对于J2EE项目,一般其架构分为界面层、业务逻辑层和数据层。VRS提供了数据库管理器,可以生成几乎全部的数据库层代码;提供了规则编辑器可视化快速开发业务逻辑;提供了规则引擎可以动态加载和执行业务逻辑;提供了页面模版编辑器以及页面生成器可以生成大部分界面层代码;提供了在线的业务逻辑管理平台,可以直接供客户(包括非技术人员)直接修改软件项目中实现的业务逻辑。VRS优势在于可以解决了软件开发中一直以来业务逻辑层只能手工书写代码的问题,为业务逻辑层的实现提供了采用类自然语言(业务人员可以理解的语言)的可视化开发工具,以及在线方式的业务逻辑编辑工具直接供业务人员修改逻辑。 
   
分享到:
评论

相关推荐

    Drools规则引擎从入门到精通源码

    从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...

    MDA模型驱动引擎-带你走进真正的模型驱动开发(一)

    左侧是需要用到的元素,简单说来包括1.Product(产品&服务--可以看作系统名称),2.Role(角色--可以看作具体的业务表),3.Property(属性--表里的列),4.WorkFlow(业务流程),5.Rules(业务规则)。带箭头的为...

    AFT引擎新增脚本命令详解大全.rar_aft_aft刷新_传世_传世引擎_传世脚本代码

    学习AFT引擎新增的脚本命令,不仅需要理解每个命令的语法和参数,还需要在实际的开发环境中进行调试和测试,才能真正掌握其用法。文档中详细解释了每一个命令的使用场景和效果,提供了丰富的示例,是学习和研究的好...

    雷达:实时风控引擎(Risk Engine),自定义规则引擎(Rule Script),完美支持中文,适用于反欺诈(Anti-fraud)应用场景,开箱即用!!! ,你得到到了吗?

    风控引擎(Radar) 项目介绍 一种基于Java语言,使用Springboot + Mongodb + Groovy + Es等框架构建的轻量级实时风控引擎,适用于反欺诈应用场景,极简的配置,真正...自定义规则引擎,更加灵活,支持复杂多变的场景

    自己手动写搜索引擎

    搜索引擎是互联网技术中的核心部分,它使得用户能够高效地在海量信息中找到所需内容。《自己手动写搜索引擎》这本书深入浅出地介绍了搜索引擎的工作原理和设计思路,为读者揭示了这个看似复杂但实际上由一系列基础...

    搜索引擎-基于网页自动分类的搜索引擎研究.pdf

    然而,直到Google的出现,才真正推动了搜索引擎技术的革新。Google以其强大的PageRank算法和高效的搜索性能,极大地提升了搜索质量。 Lycos是另一个重要的里程碑,它引入了网页自动摘要功能,并且拥有庞大的数据量...

    轻量级实时风控引擎全部代码+数据库.rar

    使用Springboot + Mongodb + Groovy + Es等框架搭建的轻量级实时风控... * 自定义规则引擎,更加灵活,支持复杂多变的场景 * 插件化的设计,快速接入其它数据能力平台 * NoSQL,易扩展,高性能 * 配置简单,开箱即用

    CLIPS:构建专家系统的工具

    该分支的目的是提供一个CLIPS派生的规则引擎,该引擎使用真正的并行RETE处理网络,该网络受益于多核和多核硬件,以改善匹配阶段的整体性能。 执照 与原始版本相比,此fork的所有部分均保持在公共领域的许可。 源自...

    脚本引擎插件

    C#脚本引擎插件的真正价值在于其对开发效率的提升。通过动态脚本管理,开发者可以专注于应用的核心功能,而不必花费大量时间在重复的编译和部署上。语法检查功能进一步确保了代码的高质量和稳定性,减少了因错误语法...

    搜索引擎关键词刷新器

    然而,值得注意的是,这种做法并不完全符合搜索引擎的公平竞争规则,过度或不恰当的使用可能会导致搜索引擎对网站进行降权处理,甚至可能被搜索引擎列入黑名单。 该软件提供的功能包括设置关键词列表,用户可以根据...

    在IIS下真正能用的ISAPI-Rewrite防盗链规则写法

    这种规则允许特定来源(如搜索引擎或白名单站点)的请求访问资源,其他来源则被阻止: ```ApacheConf RewriteCond %{HTTP_HOST} (.+) RewriteCond %{HTTP_REFERER} !(^http://%1.*) [NC] RewriteCond %{...

    4引擎SEO超级外链软件V2.1

    《4引擎SEO超级外链软件V2.1:优化搜索引擎排名...但要记住,任何工具都只是手段,真正的核心是理解并遵循搜索引擎的规则,创造对用户有价值的内容,这样,你的网站才能在激烈的竞争中脱颖而出,赢得长期的流量和信任。

    搜索引擎优化(SEO)知识完全手册

    因此,国内外网络营销人士都自发展开对以Google为代表的主流搜索引擎排名规则的研究,并衍生出一个风风火火的搜索引擎优化服务领域,在国内国外都有着广阔的市场。  真正的SEO是通过采用易于搜索引擎索引的合理...

    搜索引擎与算法.ppt

    SEO(搜索引擎优化)是针对搜索引擎规则调整网站内容和结构,以提高其在搜索结果中的排名。数据分析则用于评估和改善搜索引擎的效果,如点击率、跳出率等指标。 总的来说,搜索引擎是一个复杂而精细的系统,涉及...

    网页信息提取与分词(搜索引擎基础)

    网页信息提取与分词是构建搜索引擎的关键步骤,它涉及到网页数据的预处理和文本分析。在深入了解这个主题之前,我们首先要明白,搜索引擎是如何工作的。搜索引擎的主要任务是抓取互联网上的网页,理解其内容,然后...

    伪静态规则6.0

    描述中的"真正好用的规则"表明这是一套经过验证,有效且易于使用的伪静态配置,而"真是好麻烦啊"可能暗示了伪静态规则的设置通常需要一定的技术知识和调试工作。 在HTTP服务器中,如Apache,伪静态规则通常会写入`....

    基于搜索引擎的网站SEO优化(与“搜索引擎”相关共74张).pptx

    只有将这些方面综合考虑,形成一个整体的优化策略,才能真正实现提高网站可读性和搜索引擎排名的目标,从而为网站带来更多的访问量和潜在客户,提升网站的成功率。在实际操作中,我们需要不断地学习和适应搜索引擎的...

Global site tag (gtag.js) - Google Analytics