基于构件技术的规则引擎研究

合集下载

课程管理中的规则引擎研究

课程管理中的规则引擎研究

课程管理中的规则引擎研究一、引言随着教育信息化的快速发展,学校的课程管理变得复杂起来,需要采用先进的技术手段进行管理,规则引擎作为一种新兴的技术手段,逐渐引起了人们的关注。

本文旨在对课程管理中的规则引擎进行研究,探讨规则引擎在课程管理中的应用。

二、规则引擎的概念规则引擎是一种处理业务逻辑的系统,它通过用户定义的规则来响应事件和请求。

规则引擎在多种场合都有广泛的应用,包括金融、电信、医疗、教育等行业。

规则引擎的主要作用是将复杂的业务逻辑转化为易于理解和维护的规则语言,提高业务逻辑的可读性和可维护性。

三、规则引擎在课程管理中的应用1.规则引擎在教学计划制定中的应用教学计划是学校课程管理的重要组成部分,规则引擎可以根据学生的个人情况、学科发展趋势等条件,自动制定符合学生需要的教学计划。

同时,规则引擎还可以针对学生不同的能力和兴趣,制定符合其需求的教学计划。

2.规则引擎在教学评价中的应用教学评价是课程管理的另一个重要组成部分,规则引擎可以根据学生的实际表现,自动进行评价、反馈和调整。

同时,规则引擎还可以根据学生的考试成绩、课程表现等多维度数据,进行学生能力评估,并为学生提供个性化的学习建议。

3.规则引擎在考试安排中的应用考试安排是课程管理中的一个难点问题,规则引擎可以根据教学计划、学生能力、教师工作安排等多种因素,自动制定考试安排,确保考试的公平和合理性。

同时,规则引擎还可以根据学生的个人情况,提供考试课程建议,帮助学生更好地备考。

四、规则引擎的优势1.提高效率:规则引擎能够自动进行数据分析和计算,避免了人工操作的繁琐,提高了工作效率。

2.增加精度:规则引擎基于用户定义的规则进行处理,能够自动判断数据的合理性和准确性,大大降低了人工处理数据的误差率。

3.可扩展性:规则引擎可以灵活配置和扩展规则库,根据实际需要进行适当调整和扩展。

五、规则引擎的应用案例规则引擎在课程管理中的应用已经逐渐得到了实践和验证。

例如,国内某院校通过规则引擎,实现了学生个性化课程管理和评价,提高了学生的学习效果和学业成绩;某教育机构利用规则引擎,实现了课程快速排课和调整,减少了教学管理的工作量和难度。

基于构件技术的应用系统开发研究

基于构件技术的应用系统开发研究
第2 卷 0
Vol . 2 . NN CO吃 EGE 吸 诗 乙
新乡教育学院学报
2( 刀年 6 月 X
」四E 。X 7 t 2( )
基于构件技术的应用系统开发研究
张晓红‘常国 , , 锋“ 杨丽3
(1.华北水利水电 学院信息工程系, 郑州 4 ( X8;2.新乡师范高等专科学校 计算机科学系, 新乡4 3以 ; 河南 5 X) 河南 5 X ) 3.河北工程大学 信息与电气工程学院, 河北 邯郸0 印38 5 )
件, 而是延伸到需求、 统和软件的 系 需求规则、 系统和软件的 构架、 文档、 测试计划、 测试案例和数据以及其他对开发活动 有用的信息。可复用构件是指具有相对独立的功能和可复 用价值的构件, 分为构件类和构件实例, 通过给出构件类的
收稿日期二 刀 龙1 2仪 硬 一 2
构以及构件与软件构架、 构件与构件之间的交互机制。目前
摘 要:介绍了构件的基础知识, 讨论了基于构件的软件开发流程, 并给出了CB D开发时候应遵循的规则, S 在 此基础上利用构件技术开发了某县(市)级的武装部管理信息系统。
关键词:构件技术;软件构件;软 件开发;应用系 统
中图分类号门 3 1 丁
象技术。
文献标识码:A
文章编号:16 2一 2 (2( y )工心 少 7 3 5 X7 肠 呢
作者简介:张晓红(19 9 ) , 河南郑州人, 7 - 女, 华北水利水电学院信息工程系在读硕士研究生。研究方向: 面向对
通常情况下应用软件系统的开发, 不论是过程化方法还 是面向对象方法, 它们的过程都包含了以下几个阶段: 需求 分析、 设计、 编码、 测试、 维护等。当每个应用系统的开发都 是从头开始时, 在系统开发过程中就必然存在大量的重复劳 动, 如:用户需求获取的重复、 需求分析和设计的重复、 编码 的重复、 测试的重复和文档工作的重复等, 从而出现了大量 的同类软件( 如财务软件、 S 软件等) 的重复开发, I M 造成大量 人力、 财力的浪费, 而且软件的质量也不高。于是, 19 8 在 6 年、 9 年召开的NAI 会议上提出要用工程化的思想来开 19 6 D 发软件, 并在以后不断发展、 完善。人们希望通过软件复用 来充分利用已有软件中的资源, 避免在软件开发中大量重复 性的劳动, 从而提高软件开发的效率和质量, 降低软件开发

基于构件的软件复用在公安科技成果推广项目管理系统中的研究与实现

基于构件的软件复用在公安科技成果推广项目管理系统中的研究与实现
统的运行环境发生变化或需求需要更改时,只需对受影响 的构件进行修改 ,如果此 时拥有可复用的构件越多 ,就可
为软件复用提供 了基本的技术支持。 本文以 “ 公安科技成果推广项 目管理系统”开发为原 型 ,结合软件复用的理论 和技术 ,阐述 了在 . t 台上建 n平 e 立项 目管理领域软件构件的过程 ,分析 和设计了基于构件 的项 目管理信息的体 系结构 ,设计 了面向对象的构件功能 和功能实现 ,提高了软件开发质量和效率 ,解决了项 目管 理系统的通用性、适应性和可扩展性等问题。

软 件复 用概念
软件复用就是将已有 的软件成分用于构造新的软件 系 统 ,是指重复使 用 “ 了复用 目的而设计 的软件” 的过 为
模块之间的关系。并且对这些功能模块进行分析 ,确定 哪 些功能是通用的,哪些模块是系统专用的。这一环节如果 能充分利用构件 ,将极大减轻程序 员的压力 ,缩短开发周 期,节约人力成本 ,代码实现过程 的时间缩短 ,会给其后 续 的测试反馈 、安装部署 、版本发布等工作带来好处。构

以节约越多的时间 ,只需修改构件接 口或再加一个转换用
的中间接 口, 就可 以 起到事 半功倍的效果。
( ) 二 构件 开发 过 程
在基于构件的软件开发过程 中第一步要做的是了懈应 用需 求,用面向对象的方法进行分析和设计 ,建立系统 的
体 系架构 ,确定软件主要有哪些功能模块组成和这些功能
件开 发过 程 如 图 1 示 。 所
程。运用复用能得到的主要效益有 :1 提高软件生产率, .
2 缩短软件开发时间,3 以更少的人员去开发软件 。4 人 . . .
员、工具和方法更易于从一个项 目转移到另一个项 目,5 . 降低软件成本 ,6 生产更高质量的软件 ,7 改善软件系统 . .

一种领域专用的规则引擎设计与实现

一种领域专用的规则引擎设计与实现

第20卷第3期信息工程大学学报Vol.20No.32019年6月Journal of Information Engineering UniversityJun.2019㊀㊀收稿日期:2018-07-04;修回日期:2018-09-14㊀㊀基金项目:国家自然科学基金资助项目(91430214,61732018)㊀㊀作者简介:陈孟东(1984-),男,工程师,博士,主要研究方向为计算机体系结构㊂DOI :10.3969/j.issn.1671-0673.2019.03.009一种领域专用的规则引擎设计与实现陈孟东,王㊀宇,谢向辉,吴㊀东(数学工程与先进计算国家重点实验室,江苏无锡214125)摘要:在身份认证协议中,安全字符串是必需的㊂安全字符串的恢复是一个反向的过程,通过在大量候选字符串上做计算并验证,找到丢失或遗忘的正确字符串㊂在反向的恢复过程中,需要根据变换规则对字符串进行快速处理,生成新的字符串㊂针对上述需求,首次提出用硬件加速变换规则的处理过程,并在现有的FPGA 平台上,设计实现领域专用的规则引擎㊂实验结果表明,在单个Xilinx Zynq XC7Z030FPGA 上实现的该规则引擎的处理性能优于CPU ,性能功耗比相比GPU 有3倍的提升,相比CPU 有50倍的提升,有效提升了规则处理的速率和能效㊂关键词:字符串;规则;引擎;领域专用中图分类号:TP391.9㊀㊀㊀文献标识码:A文章编号:1671-0673(2019)03-0302-06Design and Implementation of A Domain-Specific Rule EngineCHEN Mengdong,WANG Yu,XIE Xianghui,WU Dong(State Key Laboratory of Mathematical Engineering and Advanced Computing,Wuxi 214125,China)Abstract :Security strings are often needed in identity authentication mechanism.Security stringsrecovery is a reverse process,which does much calculation on a large amount of possible strings tofind the right one,so that we can recover lost or forgotten strings and regain access to valuable infor-mation.In this reverse process,we need to first process basic strings based on transformation rules,so as to generate new ones quickly.In response to the above requirements,this work puts forward the idea of accelerating the processing of rules using hardware for the first time,and a domain spe-cific rule engine is designed and implemented on the existing FPGA platform.The experimental re-sults show that the performance of the rule engine on a single Xilinx Zynq XC7Z030FPGA is better than that of CPU,its performance power ratio being 3times higher than that of GPU,and 50times higher than that of CPU.The speed and energy efficiency of the rule processing is improved effec-tively.Key words :character string;rule;engine;domain-specific㊀㊀随着计算机技术的发展和互联网规模的扩大,身份认证机制逐渐成为人们保护自身信息安全的重要方式[1]㊂认证过程需要一个用户名和安全字符串组合的身份信息㊂通常使用HASH 算法来计算安全字符串的摘要,并将摘要值与用户凭据一同存储㊂当用户进行身份认证时,其认证系统通过接收用户输入的安全字符串,重新使用HASH 算法把字符串转换成摘要,与系统存储的摘要值进行对比,以此完成认证过程㊂而安全字符串的遗忘会带来不便和损失[2],身份认证协议的分析技术为解决此问题而产生㊂在身份认证协议分析中,需要在短时间内快速㊀第3期陈孟东,等:一种领域专用的规则引擎设计与实现303㊀生成大量的待测试字符串,供后续HASH算法计算摘要值,与存储的摘要值进行比较,进而分析出正确的字符串㊂在快速生成待测试字符串过程中,采用字典加规则的方式是一种非常精准有效的方式[3]㊂通过已有字符串结合对字符串的变换规则,可以生成大量的可能性比较高的字符串,进而提高分析的速率㊁提升精度㊂变换规则种类多,处理过程复杂,是一项计算量大㊁对处理时间要求较高的任务,到目前为止,公开的实现方式都是基于CPU和GPU[4-5]进行处理,在处理速度㊁系统功耗等方面有诸多不足㊂本文针对身份认证协议分析中的规则处理,提出一种全硬件实现的㊁高能效的㊁可重构的规则处理架构,实现了一种领域专用的规则处理加速器㊂本文的研究基于Xilinx Zynq FPGA实现,实验结果表明该引擎在处理性能㊁系统功耗等方面表现良好㊂1㊀相关研究现状1.1㊀身份认证协议分析中的规则人在设置安全字符串时基于一个基础加以简单变换形成新的字符串,如增加前缀㊁增加后缀等,这种变换称为变换规则[4-5]㊂这种基于规则的方式为身份认证协议的分析提供了一个思路:收集已知的安全字符串形成一个字典,分析时在该字典中尝试,相比于全字符搜索空间,可显著减少计算量并保证较高命中率;同时对字典加以规则变换又可生成新的字符串,扩大字典的覆盖空间,提高命中率㊂精妙设置的字典结合规则,可以在满足搜索规模㊁时效等限制时,显著提升分析的命中率㊂在身份认证协议分析中,业内有许多总结积累而成的字符串变换规则,多个工具有自己支持的规则,并提供字典加规则的分析模式㊂John the Ripper[4]是一款开源且免费的密码分析软件,其主要目的是用来分析弱的Unix口令,现已支持100多种算法,提供对多种不同类型系统架构的支持,包括Unix/Linux㊁Windows/DOS模式和OpenVMS等㊂它支持字典分析模式,并支持10类40余种字符串变换规则及其处理,其规则处理在CPU上进行㊂文献[6-7]使用John the Ripper及其自带的变换规则进行身份认证协议分析,分析过程包括规则处理过程都是在CPU上软件实现㊂Hashcat[5]是一款多平台的免费分析套件,应用广泛,支持包括CPU㊁GPU(支持NVIDIA GPU和AMD GPU)㊁DSP㊁FPGA等包含OpenCL运行时的各种平台,支持Linux㊁Windows㊁MacOS多种操作系统,支持分布式处理,支持近200种算法,支持多种分析模式,支持字典与规则的处理,其规则的处理过程主要在CPU和GPU上进行㊂文献[8]使用hashcat及其自带的规则进行研究,试验在Intel Xe-on CPU上进行,论文统计了完整分析过程的性能,没有统计单独的规则处理时间,没有功耗相关的研究数据㊂文献[9-12]都采用hashcat中字典加规则的分析方式进行试验,但都是基于GPU平台,也没有进行系统功耗方面的研究㊂以Hashcat所用的规则为基础,选取常用的基本变换规则41种进行研究,并实现其加速引擎,表1列出了几种典型的变换规则,每个规则各自以1个可见字符为其助记符,有的规则需要携带参数,参数个数从0到3个不等㊂表1以字符串p@ ssW0rd为输入,举例说明了规则的变换结果㊂表1 规则及其含义助记符定义实例变换结果u所有字母大写u P@SSW0RDr倒序r dr0Wss@ppN整体重复N遍作为后缀p2p@ssW0rdp@ssW0rdp@ssW0rd {循环左移{@ssW0rdpDN去除N位置的字符D3p@sW0rdiNX在N位置插入字符X i4!p@ss!W0rd sXY所有的X替换为Y ss$p@$$W0rd∗XY交换X㊁Y位置的字符∗34p@sWs0rd+N N位置字符在ASCII表序中增加1位+2p@tsW0rd 在实际使用中,单个的规则可以组合在一起共同进行一次变换,例如uD3ss$为3个规则组合的情况,所有规则处理结束后生成1个新的字符串㊂1.2㊀高效能的规则处理加速平台身份认证协议的分析过程需要对可见字符构成的字符串空间进行搜索计算,从而找到正确的字符串,在字符串长度增加时,其搜索的空间以及计算量都呈指数级增长,而且分析运算中包含了大量计算密集型模块,单个计算节点的计算能力无法满足需求㊂即便是在字典加规则的具有一定针对性的分析模式中,字典的条目数和规则的数量也是非常庞大的,以1个5千万条目的字典和1个10万条目的㊁每个条目由3个基本规则组合形成的规则文件为例,仅仅规则的处理过程就需要生成5ˑ1013个新的待测试字符串,计算量庞大,以最为简单的304㊀信息工程大学学报㊀2019年㊀MD5算法为例,在单个通用CPU上完成分析过程,其时间仍然需要十几天㊂可见,单个计算节点的计算能力与身份认证协议的分析任务仍有较大差距㊂通常的做法是构建大规模的计算集群,将搜索的空间进行划分,形成不同的计算任务,各个节点在自己的任务空间中进行搜索计算,以此来加速整个分析过程㊂在构建大规模的分析集群时,性能和功耗是两个主要关注的问题㊂规则处理以及身份认证协议分析都是计算复杂型的任务,通用CPU的计算能力已远远不能满足需求,在性能提升上已经遇到了瓶颈㊂GPU加速单元的出现使得其在性能方面具有明显优势,在处理集成度高㊁计算密集型等问题时的理论计算性能已经大幅超过了通用处理器[13]㊂但是,GPU作为加速设备也出现了问题,尤其是在构建大规模的计算系统时,其构建成本㊁频率墙㊁功耗墙㊁存储墙等问题使得GPU高成本㊁高功耗的特点已经无法忽视[14]㊂专用ASIC集成度高㊁处理性能高,但是开发复杂㊁成本高,且其功能一旦实现,不能更改,不适合应用于规则的加速处理㊂FPGA具有低功耗㊁高并行的特点,它既能提升计算速率,又可使功耗保持在可接受的范围[14-16]㊂其广泛应用以及可重构特性,为其在规则加速处理中的应用提供了基础㊂其功耗低㊁并行度高㊁扩展性强的特点,使它适合应用于规则的加速处理以及整个身份认证协议的分析㊂本文聚焦处理性能和能效,针对基于FPGA的规则处理技术进行研究,设计并实现一种规则引擎㊂2㊀规则引擎设计规则引擎以全硬件实现的方式对规则的解析处理进行加速㊁处理时,软件只需配置好规则与字典文件的大小以及存储位置,规则引擎便可以自动从片外获取规则和字典,并解析处理,生成新的字符串㊂新生成的字符串可以通过高速总线写回片外存储空间,供其他应用使用,也可以在片内集成HASH验证算法,直接验证字符串的正确性,进而完成整个身份认证协议的分析过程㊂2.1㊀加速平台结构本文的规则引擎基于一个完整的身份认证协议分析系统实现,该分析系统是一个大规模的可重构的计算集群,其计算能力来自大量低功耗可重构Xilinx Zynq XC7Z030[17]芯片㊂该芯片是一个混合核心处理器,包含了通用嵌入式计算核心(主频为1GHz的双核ARM CortexTM-A9处理器)和基于FPGA的可重构计算核心㊂两种异构计算资源通过高速的互连总线紧密耦合,可以支持通用计算任务和加速计算任务的并行协同执行㊂混合核心处理平台外围集成了1GB的低功耗DDR内存㊁32 GB的Flash存储器㊁千兆以太网接口㊁高速环形网接口等㊂基于Zynq XC7Z030的计算平台结构如图1所示,其实物图如图2所示㊂图1㊀硬件平台结构图图2㊀硬件平台实物图规则引擎在单个Zynq XC7Z030的可重构FP-GA上实现,大规模系统中的每个FPGA内都可以集成规则引擎,规则文件和字典文件按计算任务划分后存储在片外的低功耗DDR内存中㊂2.2㊀数据格式设计在基于规则的身份认证协议分析中,需要将大量的变换规则组织成规则文件㊁将常用字符串组织成字典文件进行存储与使用㊂在硬件实现规则引擎过程中,考虑扩展需求㊁存储空间限制以及规则的可读性,每个规则都采用8比特定长进行编码,直接以助记符的ASCII码作为规则的编码,8比特编码理论上最多可以支持256种规则,为将来规则的新增扩展预留了空间,现有规则采用ASCII码编码存储,保证了规则文件的可读性,减少了软硬件间编译转换的工作量㊂实际进行字符串变换时,常为多个规则的组合情况,设计硬件存储空间时,考虑规则组合及规则携带参数情况,为每次变换分配40字节的存储空㊀第3期陈孟东,等:一种领域专用的规则引擎设计与实现305㊀间㊂通常每个字典文件中的字符串长度相同,硬件逻辑中为每个字典条目分配32字节的存储空间,即字符串的长度最大为32㊂规则文件与字典文件格式及其在硬件中存储形式如图3所示㊂图3㊀规则文件与字典文件存储格式2.3㊀处理核心设计规则处理就是对规则进行译码,然后对字符串进行变换,生成新的字符串的过程㊂由于不同的变换规则会改变字符串的长度,即使输入字符串长度相同,输出字符串仍会长度不同,给后续的使用带来困难㊂解决的办法是:对字典文件进行分类,每次处理的字典文件中都是相同长度的字符串,处理时,首先针对一个规则,循环字典文件中所有的字典条目,这样,生成的新字符串的长度都是相同的,给后续HASH 流水线的使用带来便利㊂然后更换规则,重新获取字典并对字典进行循环,直至所有的规则处理完毕㊂对于规则组合在一起共同对字符串施加变换的情况,后面规则的处理依赖于前面规则的处理结果,规则只能严格按顺序执行㊂在设计过程中,针对每个规则的执行时间进行了优化,将每一个规则都在1个时钟周期之内处理完毕,包括规则的解析和字符串的变换㊂这样,每个时钟周期都有一个规则处理完毕,变换由几个规则组合在一起,便需要几个周期来生成一个新的字符串㊂图4描述了3次规则变换,且每次变换是规则3组合,字典条目数为k 时的详细处理过程㊂每次变换由3个基本规则组成,所以每3个时钟周期可以生成1个新的字符串㊂图中的横轴是时间轴,代表时钟周期㊂string 1,string 2,string 3, ,stringk 是一个字典的k个条目,rule 1_1,rule 1_2,rule 1_3是3个基本规则,共同组成了一次变换,rule 2_1,rule 2_2,rule 2_3,rule 3_1,rule 3_2,rule 3_3与此类似㊂string 1_o ,string 2_o , ,stringk _o 是每次变换的输出㊂时钟周期1到n 完成对k 个字典条目的第1次变换,n +1到m ㊁m +1到l 分别完成第2次和第3次变换㊂图4㊀规则处理流程㊀㊀处理核心的逻辑简图如图5所示㊂41种基本规则中的每一种都被设计成一个单独的规则加速单元RPE(Rule Processing Element)㊂外围是预处理电路㊁规则译码电路以及存储管理电路㊂预处理电路负责将连续存放的规则和字典文件分割成规则和字典条目㊂规则译码电路对每次变换的基本规则进行逐一译码,然后选择相应的规则加速单元进行运算㊂每个加速单元根据输入的字符串以及字符串长度信息进行新字符串的生成工作㊂存储管理电路负责使用高速总线从片外获取规则和字图5㊀处理核心逻辑图306㊀信息工程大学学报㊀2019年㊀典文件,形成片上的各级缓存,以及将生成的新字符串输出至片外㊂41种基本规则的处理逻辑组成1个处理核心,根据硬件资源的限制,在规则引擎内部可以放置1个或者多个处理核心同时工作,每个核心各自取规则和字典进行变换㊂2.4㊀存储设计规则引擎自动进行规则和字典的存取,为满足高速引擎对规则和字典的速率需求,共设置3级存储结构㊂第1级存储:片外DDR㊂整个规则文件和字典文件都存储在DDR中,Zynq中的CPU将规则文件和字典文件在DDR中的起始地址以及大小信息配置到FPGA逻辑,硬件自动进行规则的获取㊂同时,如果需要将规则引擎处理生成的新字符串传到片外供其他应用使用,则新生成的字符串也是由规则引擎自动传输到DDR内存中㊂第2级存储:片内RAM㊂FPGA内部的规则引擎通过AXI(高级可扩展接口,Advanced eXtensi-ble Interface)总线将规则与字典分批预取入FPGA 内部后,缓存于片内RAM中㊂AXI总线的4个高性能接口AXI_HP工作于150MHz时,总带宽可达到4.8GB/s,可保证对规则引擎的高速供数㊂随着处理逻辑不断消耗RAM中的数据,规则引擎会不断从片外获取数据,保证处理逻辑的需求㊂第3级存储:片内FIFO㊂处理逻辑从片内RAM获取字典数据,进行预处理,将字典再存入片内FIFO缓存中,供核心处理逻辑进行高速处理㊂3㊀实验与结果为验证所设计规则引擎的功能正确性和性能指标,在基于Zynq XC7Z030芯片的硬件平台上,通过Vivado(v2015.2)工具套装进行开发实现㊂对不同的处理核心数量㊁不同的字符串长度㊁不同的规则组合等情况进行测试,分析其性能和功耗情况,并与其他平台的运行结果进行对比和分析㊂3.1㊀硬件实现结果通过Vivado工具,对设计进行综合与实现,根据硬件资源的限制,分析最多可放置的处理核心数量及整体处理性能㊂处理性能以变换为1个基本规则组合时每秒可以生成的新字符串个数计算㊂结果显示,最高实现频率150MHz,片上最多可以放置的核心数量为2,所以最大的处理能力是每秒处理300M个基本规则,生成300M个新字符串㊂在放置单个处理核心情况下,资源占用为42%,仍有足够的资源放置HASH算法流水线,可以用于片内的验证工作㊂如果在片内放置2个规则引擎处理核心,此时,资源占用约为80%,片内已不能放置HASH算法流水线,规则引擎可用于将生成的新字符串传输到片外,供其他应用使用㊂3.2㊀性能与功耗对比本文首次采用FPGA以硬件的方式进行规则的解析处理工作,性能和功耗的对比是同CPU和GPU上的软件实现进行㊂将相同的规则文件和字典文件分别在CPU和GPU上运行,并与本文的规则引擎的结果进行对比分析,对比从处理性能和功耗两个角度进行㊂软件实现采用最新的hashcat4.1.0进行, hashcat是业界最快的分析工具,支持CPU和GPU 平台[5]㊂软件的结果与其运行平台有很大关系,如NVIDA GPU中其桌面产品和专门用于高性能计算的产品,计算能力差距非常巨大㊂本文选取主流偏上的产品平台进行试验,采用的CPU平台为: Intel(R)Core(TM)i7-6700CPU@3.40GHz, 32G内存,GPU平台为:NVIDIA GeForce GTX 970,1664个处理核心,1.18GHz主频㊂性能的对比结果如图6所示㊂对于规则组合情况,在每种平台上分别测试了1个规则㊁3个规则㊁9个规则组合成1次变换的情况㊂对于字典中字符串的长度,测试了长度为8字节和12字节的情况㊂通过分析可以发现:对于不同的字典长度,3种平台的处理性能都不受影响;处理性能受规则组合情况影响很大,规则组合越多,处理越复杂㊂本文的规则引擎处理性能在规则1组合情况下可以达到每秒生成300M个新字符串,其性能优于CPU实现,差于GPU实现㊂然而,当使用该规则引擎来构建大规模㊁低功耗的规则处理系统时,其计算能力会显著增加,但这不是本文的工作㊂图6㊀规则引擎与不同平台的性能对比在实际运行过程中,对规则引擎和GPU平台㊀第3期陈孟东,等:一种领域专用的规则引擎设计与实现307㊀的运行功耗进行实时观测,CPU的功耗以65W计算,计算性能功耗比(每瓦特每秒可以处理的规则数量),结果如图7所示㊂规则引擎的运行功耗仅为2W,其性能功耗比相比于GPU有3倍的提升,相比于CPU有50倍的提升㊂可以看出,本文的规则引擎处理速度快㊁功耗低,非常适合构建大规模的规则处理系统㊂图7㊀规则引擎与其他平台的能效对比4㊀结束语字符串变换规则的处理是身份认证协议分析中的重要部分,其处理过程复杂,对处理性能㊁系统功耗有很高要求,本文针对这些需求,首次提出以全硬件的方式进行规则处理的加速,有效利用FP-GA高并行㊁低功耗的特点,构建了规则引擎,并进行了设计实现,实验结果表明,规则引擎在Zynq XC7Z030FPGA上运行性能优于Intel i7-6700 CPU,性能功耗比相比NVIDIA GeForce GTX970 GPU提升3倍,相比CPU提升50倍,有效提升了规则处理的速率和能效㊂此规则引擎处理性能高㊁系统成本低㊁运行功耗低,特别适合构建大规模㊁分布式㊁可重构的规则处理系统,进而为整个身份认证协议分析系统的设计实现提供基础㊂参考文献:[1]谢全泉.异构平台下口令恢复任务决策机制研究[D].郑州:郑州大学,2016.[2]WU Z Y,CHIANG D L,LIN T C,et al.A reliable dy-namic user-remote password authentication scheme over insecure network[C]//Advanced Information Networking and Applications Workshops(WAINA).201226th In-ternational Conference on.IEEE,2012:25-28. [3]OLSON E.Robust dictionary attack of short simple sub-stitution ciphers[J].Cryptologia,2007,31(4):332-342.[4]Openwall.John the ripper password cracker[EB/OL].[2018-03-11]./john/doc/.[5]STEUBE J.Hashcat advanved password recovery[EB/OL].[2018-03-11].https:///hashcat/.[6]CHOU H C,LEE H C,YU H J,et al.Password crack-ing based on learned patterns from disclosed passwords [J].International Journal of Innovative Computing Infor-mation&Control Ijicic,2013,9(2):821-839. [7]FAHL S,HARBACH M,ACAR Y,et al.On the eco-logical validity of a password study[C]//Symposium on Usable Privacy and Security,2013:1-13.[8]HUH J H,OH S,KIM H,et al.Surpass:system-initia-ted user-replaceable passwords[C]//Proceedings of ACM Conference on Computer and Communications Se-curty,2015:170-181.[9]MILO F,BERNASCHI M,BISSON M.A fast,GPU based,dictionary attack to OpenPGP secret keyrings[J].Journal of Systems&Software,2011,84(12):2088-2096. [10]XU L,GE C,QIU W,et al.Password guessing basedon LSTM recurrent neural networks[C]//IEEE Inter-national Conference on Computational Science and Engi-neering.IEEE,2017:785-788.[11]FLOR N C I O D,HERLEY C.An administrator sguide to internet password research[C]//Proceedings ofthe28th USENIX conference on Large Installation Sys-tem ENIX Association,2014:35-52.[12]UR B,SEGRETI S M,BAUER L,et al.Measuring re-al-world accuracies and biases in modeling passwordguessability[C]//Usenix Conference on Security Sym-ENIX Association,2015:463-481. [13]QIU W,GONG Z,GUO Y,et al.GPU-based high per-formance password recovery technique for hash functions[J].Journal of Information Science&Engineering,2016,32(1):97-112.[14]LI X,CAO C,LI P,et al.Energy-efficient hardwareImplementation of LUKS PBKDF2with AES on FPGA[C]//2016IEEE Trustcom/Big DataSE/I SPA.IEEE,2016:402-409.[15]CHAVES R,KUZMANOV G,SOUSA L,et al.Cost-efficient SHA hardware accelerators[J].IEEE Transac-tions on Very Large Scale Integration(VLSI)Systems,2008,16(8):999-1008.[16]ABBAS A,VOβR,WIENBRANDT L,et al.An effi-cient implementation of PBKDF2with RIPEMD-160onmultiple FPGAs[C]//201420th IEEE InternationalConference on Parallel and Distributed Systems(IC-PADS).IEEE,2014:454-461.[17]XILINX.Zynq-7000all programmable SoC[EB/OL].[2018-03-11].https:///support/docu-mentation/product-briefs/zynq-7000-product-brief.pdf.(编辑:颜峻)。

规则引擎在业务逻辑层中的研究与应用

规则引擎在业务逻辑层中的研究与应用
Ab t a t sr c Al n i ot a e s ae b c mi g mo e c mp e .t e e i u g n e d t a e a g o r me r ra u i r meh d o u i o g w t s f r c l e o n r o l x h r s r e tn e o h v o d fa wo k o n f m to f s h w o b —
赵 广 利
( 大连海事大学信息科 学技术 学院 辽宁 大连 16 2 ) 10 6
摘 要
随着软件规模 的 日趋 复杂化, 迫切 需要 一个 良好 的框 架或统一 的方法开发 业务逻 辑层。在 深入 研 究规则 引擎 的工作原
理及 R t 模 式匹配算法的基础上 , ee 采用 We ev e分布式计算技术具体构建 了一个基于规则 引擎的 We bSri c b应用框 架, 该框架可使业 务逻辑与应用程序代码高度解耦 , 可对业务规则进行单 独的管理 和维护。 因此, 可极 大提高 软件 的柔韧性 , 降低软件 的维 护与升级
Rt ee算法
oN RULE ENGI NE N I BUSI NESS LoG I LAYER C AND TS APPLI I CATI N o
Zh o Gu ngi a a l ( colfI om t nSi c n ehooy, ainMaimeU i rt, l n1 6 2 ,ioig,hn ) Sho n r ai c nea dTcnl o f o e g D l ri nv sy Dai 1 0 6 La nn C ia a t ei a
meh d g e t mp o e ot r ’ e i i t n e u e h o t f o t r p r d n i t n n e At a t t e p oo y e o cu l r e s to r al i rv ss f y wa e Sf xb l y a d rd c st e c s o f l i s wa eu g a e a d man e a c . s , h r tt p fa t a d r l o

Java规则引擎工作原理及其应用

Java规则引擎工作原理及其应用

Java规则引擎工作原理及其应用作者:缴明洋谭庆平出处:计算机与信息技术责任编辑:方舟[ 2006-04-0608:18 ]Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对摘要Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作。

引言目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。

利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。

规则引擎的原理1、基于规则的专家系统(RBES)简介Java规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。

专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。

为了更深入地了解Java规则引擎,下面简要地介绍基于规则的专家系统。

RBES包括三部分:Rule Base(knowledge base)、Working Memory(fact base)和Inference Engine。

它们的结构如下系统所示:图1 基于规则的专家系统构成如图1所示,推理引擎包括三部分:模式匹配器(Pattern Matcher)、议程(Agenda)和执行引擎(Execution Engine)。

推理引擎通过决定哪些规则满足事实或目标,并授予规则优先级,满足事实或目标的规则被加入议程。

模式匹配器决定选择执行哪个规则,何时执行规则;议程管理模式匹配器挑选出来的规则的执行次序;执行引擎负责执行规则和其他动作。

规则引擎的定义及体系结构

规则引擎的定义及体系结构

规规则引擎的定义及其体系结构摘要随着经济的迅速发展,市场的快速变化导致商业业务规则的变化也越来越快,因此对于企业的IT部门或者IT企业来说,这就要求设计出来的应用系统能够适应这种快速变化。

然而,软件的开发周期和维护周期长,这和适应快速变化的市场需求产生了矛盾。

规则引擎的出现很好的解决了这一矛盾。

有了规则引擎,我们可将以程序代码的形式固化在应用系统中的业务逻辑分离、抽象出来,被分离的业务逻辑以业务规则形式存储在规则库中,并通过规则引擎进行执行。

本文将介绍规则引擎的定义,并将以WebSphere ILOG JRules 规则引擎为例介绍其体系结构。

关键字规则引擎业务规则业务对象模型规则执行模型规则调用目录第1章绪论1.1 规则引擎的产生背景第2章规则引擎概述2.1 业务规则2.2 规则引擎2.2.1 什么是规则引擎2.2.2 使用规则引擎的优点2.3 规则引擎运行模式第3章规则引擎的架构和工作机制3.1 规则引擎的架构原理3.2 规则引擎的工作机制第4章总结第1章绪论1.1 规则引擎的产生背景随着信息技术在企业的广泛的应用,企业IT 部门所开发和维护的应用系统也越来越复杂,而现代企业要求响应快速及灵活,他们对企业软件也有同样的要求。

企业管理者对企业级IT系统的开发有着如下的要求:一、为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。

二、市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。

三、为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。

因此如何使应用系统能够更快的响应的企业业务的变化已成为企业IT 发展的重要挑战之一。

另外,项目开发人员会碰到了以下问题:一、程序=算法+数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型。

二、软件工程要求从需求—>设计—>编码,然而业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化,业务规则往往嵌在系统各处代码中。

系统架构师 论基于构件的软件开发方法及其应用

系统架构师 论基于构件的软件开发方法及其应用

系统架构师任务重大,需要了解客户需求以及如何设计和实施系统。

构件化的软件开发方法是系统架构师需要掌握的重要技能之一。

在本文中,我们将深入探讨基于构件的软件开发方法及其应用,以及它对系统架构师的重要性。

一、基于构件的软件开发方法简介基于构件的软件开发方法是指将软件系统拆分成互相独立的构件,然后将这些构件组合在一起以构建整个系统的方法。

这种方法提供了一种将系统模块化的方式,使得系统可以更容易地理解和维护。

构件化还能够提高系统的复用性和可扩展性,从而减少系统的开发时间和成本。

在基于构件的软件开发方法中,系统架构师需要首先对系统进行全面评估,了解系统的需求和各个模块之间的关系。

系统架构师需要设计和定义系统的构件,并确定它们之间的接口和通信方式。

系统架构师需要协调开发团队,确保各个构件能够按照设计规范进行开发,并最终集成到整个系统中。

二、基于构件的软件开发方法的应用基于构件的软件开发方法广泛应用于大型软件系统的开发中。

它可以帮助开发团队更好地理解系统的复杂性,降低系统的维护成本,并提高系统的可靠性和稳定性。

在实际应用中,系统架构师可以通过使用现有的构件库来加速系统的开发进程,同时也可以提高系统的灵活性和可定制性。

三、个人观点和理解作为系统架构师,我深刻理解基于构件的软件开发方法对于系统开发的重要性。

它能够帮助我们更好地管理系统的复杂性,提高系统的可维护性和可扩展性。

基于构件的软件开发方法也能够加速系统的开发进程,降低系统的开发成本。

我认为系统架构师需要深入学习和掌握基于构件的软件开发方法,并将其运用到实际的系统开发中。

四、总结通过本文的讨论,我们深入探讨了基于构件的软件开发方法及其应用在系统架构师工作中的重要性。

我们从简到繁地介绍了基于构件的软件开发方法的基本概念,并探讨了其在实际应用中的优势。

我共享了对于这个主题的个人观点和理解。

希望通过本文的阅读,读者能够更全面、深刻和灵活地理解基于构件的软件开发方法在系统开发中的重要性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于构件技术的规则引擎研究
随着构件技术的成熟,针对构件技术在业务层面的不足,本文研究了规则引擎的架构以及推理机制,通过规则引擎和面向构件技术的结合提出了基于规则引擎的软件构件模型实现方式。

在实际的企业服务开发工程中,使用文中所提出的基于规则引擎的构件模型将提高开发效率同时提高软件复用性和可维护性。

标签:规则引擎构件业务规则
0 引言
面向构件技术是把传统工业标准化、模块化和分工协同的思想应用于软件开发领域,同时继承和发扬了很多相关软件技术的成果,在改善人与计算机的沟通,提高软件的复用程度,以及如何提高开发效率快速反映变化等方面取得了突出的发展。

对于复杂企业级项目开发,在业务应用层面,我们需要面向业务性的构件具有灵活性,同时还要解决“业务逻辑相关”构件的可复用性,可维护性以及可扩展性。

而目前大多数的平台厂商专注于在构件架构的技术上,目的是使开发人员能够开发出粒度非常高的可复用的构件。

但是“多变”的业务逻辑使得我们只能提供低粒度的构件和接口,开发出的业务构件数量庞大,但很难复用和维护。

所以我们必须将“多变”的业务逻辑与程序代码分离,让它们能在运行时可以动态地管理和修改从而提供软件系统的柔性和适应性。

从而实现管理和复用业务逻辑,并且业务逻辑的变更也不会影响引起构件本身的变更。

规则引擎正是应用于上述动态环境中的一种解决方法。

由此,我们在深入理解规则引擎技术的基础上,同时将规则引擎引入面向构件技术。

1 规则引擎
一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。

业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。

规则引擎的推理步骤如下:
①将初始数据(fact)输入至工作内存(Working Memory)。

②使用Pattern Matcher将规则库(Rules repository)中的规则(rule)和数据(fact)比较。

③如果执行规则存在冲突(conflict),即同时激活了多个规则,将冲突的规则放入冲突集合。

④解决冲突,将激活的规则按顺序放入Agenda。

⑤执行Agenda中的规则。

重复步骤2至5,直到执行完毕Agenda中的所有规则。

任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率问题。

当引擎执行时,会根据规则执行队列中的优先顺序逐条执行规则执行实例,由于规则的执行部分可能会改变工作区的数据对象,从而会使队列中的某些规则执行实例因为条件改变而失效,必须从队列中撤销,也可能会激活原来不满足条件的规则,生成新的规则执行实例进入队列。

于是就产生了一种“动态”的规则执行链,形成规则的推理机制。

这种规则的“链式”反应完全是由工作区中的数据驱动的。

2 基于构件技术的规则引擎
2.1 面向构件技术面向构件作为将软件系统分解与隔离的一种方法,是一个非常通用的概念。

它解决了企业应用的结构问题。

通过面向构件技术,一个系统是按照个性化的需求,从一个比较完善、比较成熟的组件库组装而成,大大提高了系统的成功率、稳定性、适应性和逐步发展性。

通过面向构件对业务的封装和积累能够保护现有投资,有助于高效的表达业务,提高软件的复用程度,进而表现其内在的组织敏捷性。

2.2 构件技术中引入规则引擎使用面向构件技术我们需要:应用系统的核心业务逻辑提炼成的构件具有高可复用率;制作构件时应使其尽量覆盖涉及的主题,并考虑潜在的用户需求及将来的变化;应尽量将复杂的功能封装为构件。

但是由于业务逻辑的复杂性以及多变性,现在大多数的构件平台仅能提供较低粒度的构件,使得开发人员需要花大量尽力来定制开发业务逻辑层面的构件,而且很难复用和维护。

因此要使构件能够面向业务层面就要通过规则引擎把“可变化”的业务逻辑与程序代码分离开来。

2.3 实施方案在构件技术的基础上,规则引擎的实现方式是分布型的。

也就是说,规则调用和规则的执行是分布式的。

首先,规则执行以服务的形式存在。

规则服务的实现如下:
①以规则作为参数,创建规则引擎;②为规则引擎添加数据;③执行规则,获得返回。

其次,构件中只嵌入调用规则服务的代码,没有直接嵌入规则引擎。

规则服务的调用如下:
①准备规则集需要的数据;②指定被使用的规则集名称;③调用规则服务、执行规则并获得返回;④处理返回结果。

最后,规则是在业务模型之上定义的,利用可视化规则开发工具,Web规则编辑器定义规则,从而简化规则的编写过程。

可视化规则开发工具定义好的规则最终形成规则库存储在构件之外,可以存储在数据库或文件系统中。

其中,将规则存储在构件之外的另一个好处就是能够实现规则的复用。

Rule Repository Deployer
Administration Deployment
3 结束语
在构件技术的基础上实现的规则引擎不但可以避免业务逻辑组件的复杂性,而且使业务逻辑的开发不再完全依赖程序开发员,减少构件的开发数目,从而降低构件的维护成本。

另外,通过将业务规则剥离出程序之外,可以实现规则本身的管理性,形成业务规则管理和执行的集成系统,方便了与宿主系统的集成。

参考文献:
[1]黄柳青,王满红.构件中国——面向构件的方法与实践[M].北京:清华大学出版社,2006.
[2]何仁杰,梁冰.用规则引擎替换代码[DB/OL]./csdnloading/archive/2005/02/02/277276.aspx.2004.
[3]李国乐.Java规则引擎与其API[DB/OL]./developerworks/cn/java/j-java-riles/#IDACC WOB.07/2005.
[4]庞伟正,金瑞琪,王成武.一种规则引擎的实现方法[J].哈尔滨工程大学学报,2005.
[5]陶晓俊,朱敏.基于规则引擎的企业服务开发模式[J].计算机技术与发展,2008.2.
[6]王李軍,陶明亮,张曙,莫琪叶.面向业务规则引擎研究[J].计算机工程,2007.12.。

相关文档
最新文档