1. 什么是规则复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性。规则正是应用于上述动态环境中的一种解决方法。
  
  2. 规则产生的背景一个业务规则包含一组条件和在此条件下执行的操作.它们表示业务规则应用程序的一段业务逻辑。
  
  业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。
  
  企业为适应市场的多变性,它的业务逻辑也必然是多变的。理想情况下,业务逻辑的改变应该能够实时的反映在企业信息系统中。
  
  但是,传统的方法往往会使这种反映出现滞后,进而可能使企业错过市场机遇。
  
  3. 引入业务规则技术的目的对系统的使用人员把业务策略(规则)的创建、修改和维护的权利交给业务经理提高业务灵活性加强业务处理的透明度,业务规则可以被管理减少对IT人员的依赖程度避免将来升级的风险对IT开发人员简化系统架构,优化应用提高系统的可维护性和维护成本方便系统的整合减少编写“硬代码”业务规则的成本和风险4. 传统IT项目实施与引入规则进行项目实施的比较传统的IT项目实施传统做法的缺点在传统的IT项目实施中业务与IT间存在的“矛盾”
  
  引入规则后的做法5. 规则是让业务人士驱动整个企业过程的最佳实践6. 从IT技术人员的角度看为什么使用规则引擎- 从应用逻辑和数据中将业务逻辑分离- 简单! -规则有一个非常简单的结构- 让业务用户开发和维护规则以降低成本- 声明式编程- 性能和可伸缩性- 解决复杂的和复合的问题,其中有大量细粒度的规则和事实互动来看一个简单的例子例:以全球人寿新卓越变额万能寿险投保规则的体检规则为例,输入投保年龄及危险保额来获取是否需要体检的结果。
  
  免体检累积最高限额表如下:免体检累积最高限额表在规则中又是如何实现的呢?
  
  结合现实生活中的一个例子来看变化的业务与IT的“矛盾”
  
  没有规则时:有了规则后:IT在面对上述例子时如何能够做到熊掌与鱼兼得呢?
  
  做到以下几点是否就可以“全得”?
  
  规则更改不重启,即改即用数据库访问可随意更改,即改即用业务服务层可以随意更改,即改即用开发人员不需要关心底层API,他只需要懂JSON(加快开发)
  
  因此我们进一步引入了“规则引擎管理系统-BRMS”的概念规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据规则做出业务决策。
  www.ymzxrj.com 直销软件
www.sratchina.com 易购娱乐
www.boyuanyl.cn 远博在线
www.gouyifl.cn
  BRMS的技术架构一个完整的BRMS应该具有的特点引入规则引擎后带来的好处实现业务逻辑与业务规则的分离,实现业务规则的集中管理可以动态修改业务规则,从而快速响应需求变更使业务分析人员也可以参与编辑、维护系统的业务规则使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单基于DROOLS打造自有BRMS解决方案我在我自己公司采用的是JBOSS Drools来实现的大规模生产环境下的业务规则的应用场景的。
  
  是业界著名的开源规则引擎,它使用的是目前最快的Forward-Chaining推理算法。
  
  算法可以分为两部分:规则编译( rule compilation )
  
  运行时执行( runtime execution )
  
  它的核心思想是将分离的匹配项根据内容动态的构造匹配树,以达到显著降低计算量的效果。
  
  不过由于DROOLS是一个开源免费规则组件,因此在面向企业级商业应用时它还存在着以下的一些问题需要解决:打造全方位的面向SOA2.0解决方案因此基于上述需求,我在我们公司内部(夸客金融)对于DROOLS进行了二次封装与开发,打造出了一个可用于在生产环境大规模开发和布署的“业务规则引擎”。
  
  它即可以无缝的和我们原有的核心、ESB总线、支付系统进行连接,也可以和审核、合同系统进行连接,它降低了开发人员对于BRMS底层技术的依赖、増加了开发的“透明性”。同时这套BRMS做到了真正的24*7可动态支持业务变化、快速响应迅速变化的市场与业务规则。
  www.gouyiflb.cn
www.gouyily.cn
www.boshenyl.cn
www.longboshyl.cn
www.feishenbo.cn
www.fanboyl.cn
www.lxinyul.cc/
  有了这套规则引擎后,本来在传统金融领域中的“线性开发”发生了变化。
  
  传统金融领域中对于系统集成开发的线性方式引入BRMS后我们IT对于内部的系统集成开发方式运用了这套BRMS后,我们的IT在面对随时、多变的业务场景时可以做到:特色一:支持基于规则的各种复杂流转模式特色二:多种复杂事件发起模式特色三:灵活全面的规则设计BRMS在其它金融领域中的应用场景介绍规则引擎在信用卡申请场景中的应用规则引擎在反欺诈场景中的应用黑规则:甄别嫌疑订单白规则:订单解除嫌疑商家管理处罚系统,对违规商家处罚处理。
  
  搜索排名,降低违规商家搜索排名权重。
  
  自定义阈值规则指标体系地址模糊聚类算法手机嵌入欺诈模糊甄别算法黑/白名单机制设置灰名单机制设置区域订单脉冲机制全区管控机制产品线与SKU监控管理机制

规则引擎-BRMS在企业开发中的应用的更多相关文章

  1. 企业开发中选择logback而不是log4j的理由

    不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...

  2. Drools规则引擎-如果判断某个对象中的集合是否包含指定的值

    规则引擎集合相关处理 在实际生产过程中,有很多关于集合的处理场景,比如一个Fact对象中包含有一个集合,而需要判断该集合是否包含某个值.而Drools规则引擎也提供了多种处理方式,比如通过from.c ...

  3. 【java规则引擎】drools6.5.0中kie的概论

    什么是KIE? KIE是jBoss里面一些相关项目的统称,下图就是KIE代表的一些项目,其中我们比较熟悉的就有jBPM和Drools. 这些项目都有一定的关联关系,并且存在一些通用的API,比如说涉及 ...

  4. attr和prop的区别以及在企业开发中应该如何抉择

    attr和prop有很多相同的地方,比如都可以操作标签的属性节点,而且获取的时候都只可以获取到相同节点的第一个,例如这样: $('span').attr('class');和$('span').pro ...

  5. WebSphere ILOG JRules 规则引擎运行模式简介

    WebSphere ILOG JRules 规则引擎运行模式简介 引言 作为 JRules 的核心组件,规则引擎决定了在规则集的执行过程中,哪些业务规则会被执行,以及以何种顺序执行.理解并合理选择规则 ...

  6. 小明历险记:规则引擎drools教程一

    小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...

  7. Drools规则引擎

    一.简介 Drools is a Business Rules Management System (BRMS) solution. It provides a core Business Rules ...

  8. Drools 规则引擎应用

    规则引擎-drools 1 .场景 1.1需求 商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分 .... ...

  9. Drools 规则引擎应用 看这一篇就够了

    1 .场景 1.1需求 商城系统消费赠送积分 100元以下, 不加分 100元-500元 加100分 500元-1000元 加500分 1000元 以上 加1000分 ...... 1.2传统做法 1 ...

随机推荐

  1. 掌握jQuery插件开发

    进行jQuery插件开发前,首先要知道两个问题:什么是jQuery插件?jQuery插件如何使用? 第一个问题,jQuery插件就是用来扩展jQuery原型对象的一个方法,简单来说就是jQuery插件 ...

  2. Unity手游之路<六>游戏摇杆之Easy Touch 3教程

    之前已经介绍过Unity自带的摇杆Joystick,它用起来很简单.但是它也存在很多局限,不能全部满足普通mmo手游的一些需求,例如:要能方便地更好素材:能指定在某个区域显示,或者只有在该区域触摸时才 ...

  3. 使用ProcDump在程序没有响应时自动收集dump

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用ProcDump在程序没有响应时自动收集dump.

  4. jsp页面转发到servlet

    一个简单的例子来了解一下jsp页面转发到servlet的过程,环境 eclipse.tomcat 1.工程目录结构如下 2.各部分代码如下 1>index.jsp <%@ page lan ...

  5. C# webkit.net的简单使用

      webkit.net 0.5下载地址https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebK ...

  6. Spring Autowire自动装配

    在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象.但是对于一个大型的系统,这个操作将会耗费我们大量的资源,我们不得不花费大量的时间和精力用于创建和维护系统中的< ...

  7. 新建虚拟SAN

    在SCVMM中,在每台主机上新建虚拟SAN(所使用的FC适配器必须一起用NPIV,否则不可用),新建完成后,在其主机的Hyper-V管理器中也可以看到 每台主机上的虚拟SAN名称必须相同    之后就 ...

  8. 使用bash判断PATH中是否存在某个路径

    在source设置环境变量的时候,有些时候可能会设置两次,导致增加系统的路径搜索时间,或者让自己看环境变量的时候搞得怪不爽的. 为了解决这个问题,我们可以在设置相应的环境变量之前,先判断一下是否已经设 ...

  9. SQL Server 2008 游标使用实例

    本文使用以下两张数据库表作为演示对象. 1 游标初探--使用游标进行遍历 declare @classAndStudent table( class_id int, --班级ID class_name ...

  10. Java常见异常总结

    算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeAr ...