Java规则引擎在机场业务及资源管理中的应用(PPT 44页)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2007济南规则引擎在机场业务及资源管理中的应用汇报人:朱强导师:曲守宁汇报内容₪规则引擎技术简介₪基于规则引擎的机场资源管理系统软架构₪已完成研究内容和掌握的技术JBossRules₪已取得的主要研究成果₪下一步研究内容和仿真方法₪论文进度安排规则引擎技术相关工作₪规则引擎是一种嵌入在信息系统中的构件,它将频繁变化的业务规则从程序中剥离出来,放入规则库中管理和修改。₪规则引擎的基本过程是将提交给它的事实数据对象与加载在引擎中的业务规则进行测试和对比,激活那些符合当前事实对象状态的业务规则,触发系统中对应的操作,完成对信息系统中某些状态信息的改变。₪规则引擎针对业务规则频繁变化且事实对象之间的约束关系复杂时,可以发挥很大的优越性。规则引擎技术相关工作₪规则引擎分为规则库、工作内存、推理引擎三部分。₪推理引擎细分为模式匹配器、议程、执行引擎三部分。规则引擎的运行机制规则引擎运行机制₪规则引擎通过快速检索工作内存的对象与,与加载到其中的规则库中的各项规则前提进行匹配,激活符合条件的规则,放入冲突集中。₪冲突集中的规则通过规则优先权等因素的制定,排序生成议程,从而使优先级高的规则被第一个触发。₪规则执行后,规则的后件执行部分会改变加载到工作内存中的事实对象信息,使议程中的一些激活的规则的前提条件不再得到满足,必须从议程中撤销,反之又有新的规则被激活加入议程中。₪以上过程不断循环,产生动态的规则执行链,直到每个事实都处理完毕或没有规则可以被触发为之。下图反应工作内存和议程的变化情况。全面的管理资料下载7基于规则引擎的机场资源管理系统软架构₪传统机场资源管理系统架中,考虑到很多约束规则,机场资源的链接关系和分配约束规则复杂且变化频繁,如果每个规则的变化都交给软件工程师修改程序源代码,任务繁重,限制了系统扩展性。₪在客运高峰等不确定因素造成的资源冲突时,无法通过虚拟分配资源预测出任何规则改变或调整带来的有利或不利影响,因此资源分配策略并非最优。₪在基于规则引擎的机场资源管理系统软架构模型中,可以通过加载航班对象事实和业务约束规则完成模式匹配过程,激活并触发相应匹配规则来修改资源对象的状态信息,从而模拟出资源分配工作。₪通过改变规则约束条件和航班计划事实,实现资源的虚拟分配,根据分配结果的最优化程度,制定和调整规则的优先级,从而使机场资源管理系统嵌入规则引擎时,规则按重要程度执行,从而实现了资源的最优化配置。基于规则引擎的机场资源管理系统软架构₪ThesoftarchitectureofARMSbasedonruleengineARMSRuleengineRulepersistentlayerRulemanagerRulebaseBusinessruleanalystinairportPolicyofairportresourceallocationStaffinairport基于规则引擎的机场资源管理系统软架构机场业务约束规则举例如下:₪1、当已有航班安排在5号或7号停机位时,在航班到港前30分钟,2、3、4、8号停机位禁止分配给任何航班。₪2、2号和18号远机位禁止停放大型飞机,只能停放A320,A319,737系列。₪航班因故障,或天气因素时,应安排在14号和16号停机位,作应急之用。₪19号机位只有在其它机位全部投入使用时才会投入使用基于规则引擎的机场资源管理系统软架构在机场资源管理系统中嵌入规则引擎,首先要建立主规则库和其它类型规则库。₪主规则库包括日常运营的一系列规则,例如:一般类型的机位可以被允许分配的机型类型为:B737、B757、B777、A310、A320、A321;2号和8号远机位不能停放B767、A330以上的大型航班;18号和20号机位设置为不允许,预留给特殊航班。₪其它规则库则包括特殊的事件处理方式,例如:如发生天气变化等因素时,可根据实际情况安排在4号或6号备用机位。基于规则引擎的机场资源管理系统软架构仿真实现方法如下:₪在新的架构下,通过JBossRules规则引擎在Eclipse下的集成,可以方便实现规则库与程序源代码的交互。₪航班事实对象可以表示为JavaBean类生成的对象,只包含航班事实本身的属性及属性的get和set方法,而不包括对象间的约束关系和相关逻辑。如航班类包括:航班号、机型号、机型类型、到港状态、离港状态、到港时间、离港时间、分配的机位号。而机位事实包括:机位号,机位类型(近机位,远机位),分配状态(已经分配,没有分配),分配后的航班号。基于规则引擎的机场资源管理系统软架构₪JBossRules规则引擎中规则可以被定义到后缀名称为drl类型的文件中,也可以保存为表格或规则流形式,这里采用drl格式仿真。₪JBossRules规则引擎中条件可以由when关键词定义,执行动作通过then关键词定义,举例伪代码如下:当航班类型为大型的航班MU5314到港时,合理完成了资源的分配仿真,将将25号停机位分配给此航班,同时临近的24号和26号停机位不能停放任何到港航班。(条件)Condition1:航班机型为大型机Condition2:航班的状态为到港then#actions(动作)Action1:将25号停机位分配给此航班Action2:临近的24号和26号停机位不能停放任何到港航班,即分配权限属性设为不允许(为了安全考虑)₪JBossRules是一种开源的商业规则引擎,它的前身是Codehaus的一个名为Drools的开源项目,Drools是为Java量身定制的基于Rete算法的规则引擎。JBossRules可以作为插件的形式集成到当前最流行的Java开源开发环境Eclipse下,免费且开发界面友好。₪以下通过实例分析,掌握了JBossRules规则引擎的基本使用方法,为仿真实现打下基础。下面是JBossRules在研究生奖学金评定中的实现仿真,原理与机场仿真相近,作为基础。₪应用程序中导入规则包:PackageBuilderbuilder=newPackageBuilder()builder.addPackageFromDrl(newInputStreamReader(CepingExample.class.getResourceAsStream(/constraint.drl)));RuleBaseruleBase=RuleBaseFactory.newRuleBase();ruleBase.addPackage(builder.getPackage());=ruleBase.newStatefulSession();Graduatezhuqiang=newGraduate(朱强,24,25,88,9);Graduatezhaoyaou=newGraduate(赵亚欧,25,26,92,16);Graduatecailiang=newGraduate(蔡亮,26,28,88,12);workingMemory.insert(zhuqiang);workingMemory.insert(zhaoyaou);workingMemory.insert(cailiang);workingMemory.fireAllRules();₪规则举例如下:rule社会贡献奖约束#includeattributessuchassaliencehere...salience5whengraduate:Graduate(fujiafen15);then#actionsgraduate.setFujiafen(10);System.out.println(graduate.getName()+附加分超过15,按10分算);end全面的管理资料下载19已完成研究内容和掌握的技术JBossRules₪在Jess中,有个实例,在这里用JBossRules将其重写,得出JBossRules下更方便与JavaBean类交互的结论。₪ThereisagolfernamedFred₪Joeisinposition2₪Bobiswearingplaidpants₪Tomisn'tinposition1or4₪andisn'twearingorange₪ThegolfertoFred'simmediaterightiswearingbluepants全面的管理资料下载22已完成研究内容和掌握的技术JBossRules全面的管理资料下载24仿真结果全面的管理资料下载26仿真结果全面的管理资料下载28仿真结果全面的管理资料下载30仿真结果全面的管理资料下载32仿真结果全面的管理资料下载34仿真结果全面的管理资料下载36最终仿真结果全面的管理资料下载38最终仿真结果全面的管理资料下载40已取得的主要研究成果₪撰写论文3篇:₪朱强,曲守宁,赵亚欧

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功