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

规则引擎  时间: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

妮妮云(43元/月 ) 香港 8核8G 43元/月 美国 8核8G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

ATCLOUD-KVM架构的VPS产品$4.5,杜绝DDoS攻击

ATCLOUD.NET怎么样?ATCLOUD.NET主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解析、域名注册、SSL证书等海外网站建设服务。 其大部分数据中心是由OVH机房提供,其节点包括美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国以及新加坡。 提供超过480Gbps的DDoS高防保护,杜绝DDoS攻击骚扰,比较适合海外建站等业务。官方网站:点击访问ATCLOUD官网活...

极光KVM美国美国洛杉矶元/极光kvmCN7月促销,美国CN2 GIA大带宽vps,洛杉矶联通CUVIP,14元/月起

极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...

规则引擎为你推荐
博客外链怎么用博客发外链?微信如何建群微信怎么建立群数码资源网安卓有没有可以离线刷题的软件?镜像文件是什么系统镜像是什么办公协同软件oa办公系统软件有哪些彩信中心移动的短信中心号码是多少创维云电视功能什么是创维云电视啊?创维云电视是什么意思?lockdowndios8.1能用gpp3to2吗?型号A1429如何快速收录如何让百度快速收录小米手柄小米手柄能连几个手机
便宜虚拟主机 网站域名备案查询 免费动态域名解析 万网免费域名 hostmonster 512m 网盘申请 java虚拟主机 193邮箱 165邮箱 有奖调查 免费防火墙 泉州移动 免费全能主机 佛山高防服务器 搜索引擎提交入口 服务器是干什么用的 英雄联盟台服官网 石家庄服务器托管 网站加速 更多