毕业论文
论文题目 敏捷开发之规则引擎
完成时间 年 月
1
敏捷开发之规则引擎
摘 要:规则引擎是一种设计为独立于企业应用程序而修改和管理业务逻辑的系统。是
使用在大规模复杂业务场景下必备的业务框架技术。我们从“规则引擎”的实际用途和价值及
一般实现方式几个方面探讨一下规则引擎。
关键字规则引擎业务逻辑复杂业务
一、绪论
一规则引擎的产生背景
随着信息技术在企业的广泛的应用企业it部门所开发和维护的应用系统也越来越复杂而现在企业要求相应快速及灵活他们对企业软件也有同样的要求企业管理者对企业及it系统的开发有这如下的要求一、为提高效率管理流程必须自动化即使现代商业规则异常复杂二、市场要求业务规则经常变化 it系统必须依据业务规则的变化快速低成本的更新三、为了快速低成本的更新业务人员应能直接管理it系统中的规则不需要程序开发人员参与 因此如何使应用系统能够更快的相应的企业业务的变化已成为企业it发展的重要挑战之一。
1项目开发过程中所遇到问题
在开发维护过程中开发人员还会遇到以下问题:
1程序=算法+数据结构有些复杂的商业规则很难推导出算法和抽象出数据模型
2软件工程要求从需求—设计—编码然而业务规则常常在需求阶段可能还没有明确在设计和编码后还在变化业务规则往往嵌在系统各处代码中
3对程序员来说系统已经维护更新困难更不可能让业务人员来管理但是当包含业务逻辑的代码隐藏在大量其他代码中时修改就变得缓慢痛苦且易出错了。
2怎样高效快速的解决问题
2
1一个小需求需要开发人员安排一个开发周期时间上来不及。
2有的时候需要修改的逻辑特别复杂代码嵌套在系统各处代码中牵一发而动全身改动量太大对系统的稳定性产生影响造成一些潜在的风险。
3 hard code的代价非常大随着业务的膨胀会使开发人员和规则需求方非常的疲惫。
二 规则引擎的优势
1.复杂企业级项目的开发及其其中随外部条件不断变化的业务规则迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策并把这些商业决策放在中心数据库或其他统一的地方让他们能在运行时即商务时间可以动态的管理和修改从而提供软件系统的柔性的适应性。规则引擎正是实用于上述动态环境中的一种解决方法将业务系统与规则引擎解耦合使得两个系统相互独立地变化。
(1)举个通俗易懂的选择出行交通工具的例子。
(一)传统方式实现
3
二规则引擎方式实现
二、总体方案说明
为了使规则引擎成为一个更通用的独立平台应该尽量使规则执行部分成为一个与业务无关的系统。取数平台将规则引擎准备数据的过程独立成一个组件不但使规则引擎与业务无关而且业务系统以指令方式调用规则引擎不需要准备繁杂的业务数据。
通过取数平台DataBus 实现了规则管理系统BRMS和业务系统的完全解耦避免由于业务对象模型BOM的变更影响业务系统导致业务系统频繁变更。
负责接收业务系统的请求如新闻发布系统中的当前流水号 紧接着准备业务数据然后将准备好的业务数据通过接口 支持Webservice、 EJB、 RMI等调用传递给规则执行引擎最后得到规则执行引擎的返回结果。本系统以Webservice调用方式传递给规则引擎执行部分最后将规则引擎执行的结果以WebService XML格式的协议返回给业务系统。
4
流程图如下
三、方案实现
一开发一个新闻发布系统的web项目
1.项目实现方式
框架方面我选择用ssm SpringMVC+Spring+MyBatis框架开发而没有使用传统的ssh框架数据库我选择oracle数据库。
2. ssm相比ssh框架的的优势
1Struct和Spring-MVC都是负责取转发的但是两者针对request的请求上面区别很大 Struct是针对一个Action类来进行请求的 即一个Action类对应于一个请求所以类拦截请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的也就是一个方法对应于一个请求属于方法拦截请求的数据方法不共享。
2 .Hibernate是一种O/R关系型 即完成数据库表和持久化类之间的映射而MyBitas是针对的SQL-Maping个人理解是一种Hibernate把数据库给封装好以后可以调用相应的数据库操作语句HQL而MyBitas则是用的原始的数据库操作语句针对高级查询 Mybatis需要手动编写SQL语句 以及ResultMap。而Hibernate有良好的映射机制开发者无需关心SQL的生成与结果映射可以更专注于业务流程。
3前端页面展示
5
二取数平台databus的设计
1.设计优点
规则执行引擎的主要功能是供业务系统调用完成相应业务规则的推理因此需要提供需要提供相应的调用接口。取数平台就是业务系统和规则执行部分交互的中间层具有如下优点
1解耦合
规则引擎执行需要的业务数据全部以BOM对应的Java类的形式准备独立出来的取数平台完成业务数据的准备既可以使规则执行部分成为一个与业务无关的平台又能使业务系统对规则引擎的调用变得简单。这样规则引擎执行部分只完成规则的推理取数平台只准备业务数据二者之间不会相互影响达到独立变化的目的。
业务数据在取数平台中完成业务系统不需要准备业务数据而只需要以指令的方式调用取数平台即可规则执行引擎也不需要关注业务数据的准备只需要提供接收业务数据的接口即可。
2平台独立性
由于取数平台采用了Webservice的实现方式应用系统与规则引擎系统之间的数据交互是XML格式的。由于XML具有跨语言的特性使得取数平台具有跨语言可以是.NET、 Java或者是PHP等的特性从而使得取数平台具有跨平台性。
3接口实现简单
取数平台的现有框架 隐藏了数据源的获取与释放 同时包含了异常处理的设计
6
并且框架通过配置文件将系统的扩展通过实现相应的类和完成配置项得到实现使开发者能集中精力于业务数据的准备。完成业务数据的准备只需要用一个类继承AbstractSyncProxyService并在该类中的prepareData方法中完成通过传递的JDBC链接conn获取业务数据然后通过XOM工程开发的类的实例使用set方法完成业务数据的准备。然后在配置文件中进行相应的配置即可
2.流程的设计
在流程中接收请求相当于提供的对外接口request方法准备数据相当于AbstractSyncProxyService中prepareData方法的实现规则引擎调用相当于AbstractSyncProxyService中的callILogRuleWS方法该方法又调用了ILOG提供的request方法解析生成XML字符串相当于AbstractSyncProxyService中的convertXml方法。
3.数据处理方式
取数平台准备好数据之后调用规则推理引擎规则推理引擎对数据的处理方式为实时处理业务系统调用规则引擎系统之后等待规则引擎系统的处理结果。在规则引擎系统将结果返回给业务系统之后才进行后续处理。
实时处理方式下业务系统的调用流程如下
1业务系统向取数平台提出请求并等待处理结果
2取数平台准备相关的数据
3取数平台调用规则执行引擎进行处理。
4规则执行引擎处理业务数据并将结果返回给取数平台
5取数平台准备相应数据返回给业务系统。
6业务系统获取返回结果进行下一步业务处理。
流程图如下
7
三规则引擎BRMS系统的设计
1.工程的设计
ILOG规则引擎需要IT人员进行开发维护的工程包括XOM工程、 BOM工程、规则应用工程和客户端工程。
XOM工程是BOM工程的Java实现是规则执行的技术支持。 XOM主要完成业务模型的技术化主要是创建一些JavaBean。
BOM工程是实现业务人员能够定制规则的一个工程 BOM工程通过对XOM工程中的JavaBean进行命名将XOM模型转化为业务人员能够理解的模型。 BOM工程中包括规则和规则流。
规则应用工程将BOM工程通过Studio直接部署到BRES中成为可能。同时规则应用工程也是客户端工程的基础客户端工程中默认调用的规则接口与规则应用工程的规则集名称同名。
规则引擎客户端工程是将BRES发布成Webservice的工具。
2.RTS和BRES的搭建
RTS是Rule Team Server的英文缩写是ILOG中提供对规则进行管理对规则进
8
行定制、审批和发布 以及其它相关功能进行管理和使用的一个系统。
BRES是规则发布平台把定制好的规则发布到BRES上面供外部系统调用并把最终结果反馈给调用平台。
四、总结
一个人见解
用规则引擎来管理业务逻辑可以大大的提高工作效率缩短开发时间并且符合现在逐渐趋于敏捷开发的工作特点。
二项目设计的收获及遗憾
门户网站对接规则引擎在整个项目的设计开发中使我的专业技能得到的很大的提升为了完成一个小功能而去大量的收集相关的资料在这个过程中也提升了我的眼界在整个设计流程中因为技术的原因好多功能没有去用更好的方法去实现也造成了一点小小的遗憾希望随着自己技术的增长以后慢慢的去完善这个项目。
三应用展望
随着业务逻辑的逐渐增加传统的一些开发维护方式已经不能很好的去满足人们的需求规则引擎的发展前景是非常大的在这个逐渐趋于敏捷开发的互联网时代我相信规则引擎一定能绽放光彩。
参考文献
[1] express_wind规则引擎概述 CSDN 2017年08月 13 日
[2]衣鹏 阎新芳吴帅杰。 Java设计模式在数据库编程中的应用研究[J] .信息通信 2014年12月 13 日
[3] 陈昊鹏 java编程思想机械工业出版社 2007年
[4]王保罗. Java面向对象程序设计[M] . 北京:清华大学出版社, 2003年
[5]毕广吉. Java程序设计实例教程[M] . 北京:冶金工业出版社, 2007年
9
HostNamaste是一家成立于2016年3月的印度IDC商家,目前有美国洛杉矶、达拉斯、杰克逊维尔、法国鲁贝、俄罗斯莫斯科、印度孟买、加拿大魁北克机房。其中洛杉矶是Quadranet也就是我们常说的QN机房(也有CC机房,可发工单让客服改机房);达拉斯是ColoCrossing也就是我们常说的CC机房;杰克逊维尔和法国鲁贝是OVH的高防机房。采用主流的OpenVZ和KVM架构,支持ipv6,免...
全球领先的IDC服务商华纳云“美国服务器”正式发售啦~~~~此次上线的美国服务器包含美国云服务器、美国服务器、美国高防服务器以及美国高防云服务器。针对此次美国服务器新品上线,华纳云也推出了史无前例的超低活动力度。美国云服务器低至3折,1核1G5M低至24元/月,20G DDos防御的美国服务器低至688元/月,年付再送2个月,两年送4个月,三年送6个月,且永久续费同价,更多款高性价比配置供您选择。...
HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...