规则毕业论文-敏捷开发之规则引擎

规则引擎  时间:2021-02-25  阅读:()

毕业论文

论文题目 敏捷开发之规则引擎

完成时间 年 月

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框架的的优势

1Struct和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

TmhHost香港三网CN2 GIA月付45元起,美国CN2 GIA高防VPS季付99元起

TmhHost是一家国内正规公司,具备ISP\ICP等资质,主营国内外云服务器及独立服务器租用业务,目前,商家新上香港三网CN2 GIA线路VPS及国内镇江BGP高防云主机,其中香港三网CN2 GIA线路最低每月45元起;同时对美国洛杉矶CN2 GIA线路高防及普通VPS进行优惠促销,优惠后美国洛杉矶Cera机房CN2 GIA线路高防VPS季付99元起。香港CN2 GIA安畅机房,三网回程CN2 ...

hosteons:10Gbps带宽,免费Windows授权,自定义上传ISO,VPS低至$21/年,可选洛杉矶达拉斯纽约

hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...

青云互联19元/月,美国洛杉矶CN2GIA/香港安畅CN2云服务器低至;日本云主机

青云互联怎么样?青云互联美国洛杉矶cn2GIA云服务器低至19元/月起;香港安畅cn2云服务器低至19元/月起;日本cn2云主机低至35元/月起!青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务。青云互联本站之前已经更新过很多相关文章介绍了,青云互联的机房有香港和洛杉矶,都有CN2 GIA线路、洛杉矶带高防,商家承诺试用7天,打死全额退款点击进入:青云互联...

规则引擎为你推荐
绵阳电信绵阳电信宽带套餐资费推荐百度抢票浏览器现在火车票越来越难买了,新版百度手机浏览器,除了抢票外,还有什么其他功能吗?qq怎么发邮件qq怎么发文件和邮件迅雷云点播账号求百度云或者迅雷云播账号密码怎么点亮qq空间图标怎样点亮qq空间的图标机械键盘轴机械键盘什么轴好,机械键盘轴有几种网络虚拟机虚拟机网络怎么连接火狐flash插件崩溃电脑Flash插件频繁崩溃是怎么回事?怎么把网页的字变大如何将页面的字变大小米什么时候抢购小米手机抢购时间是什么时候 每周几次??
重庆网站空间 域名拍卖 域名查询工具 免费试用vps 域名停靠一青草视频 阿里云os 国外服务器 debian源 台湾谷歌网址 免费个人空间申请 1g内存 电信托管 架设邮件服务器 路由跟踪 美国盐湖城 百度云空间 免费蓝钻 万网注册 如何登陆阿里云邮箱 新网dns 更多