机场业务约束规则举例如下:机场业务约束规则举例如下:1,当已有航班安排在5号或7号停机位时,在航当已有航班安排在5号或7号停机位时,班到港前30分钟,班到港前30分钟,2,3,4,8号停机位禁止分分钟配给任何航班.配给任何航班.2,2号和18号远机位禁止停放大型飞机,只能号和18号远机位禁止停放大型飞机号远机位禁止停放大型飞机,停放A320,A319,737系列系列.停放A320,A319,737系列.航班因故障,或天气因素时,应安排在14号和航班因故障,或天气因素时,应安排在14号和16号停机位,作应急之用.16号停机位作应急之用.号停机位,19号机位只有在其它机位全部投入使用时才会19号机位只有在其它机位全部投入使用时才会投入使用
9
基于规则引擎的机场资源管理系统软架构
在机场资源管理系统中嵌入规则引擎,在机场资源管理系统中嵌入规则引擎,首先要建立主规则库和其它类型规则库.建立主规则库和其它类型规则库.主规则库包括日常运营的一系列规则,例如:主规则库包括日常运营的一系列规则,例如:一般类型的机位可以被允许分配的机型类型为:般类型的机位可以被允许分配的机型类型为:B737,B757,B777,A310,A320,A321;B737,B757,B777,A310,A320,A321;2号和8号远机位不能停放B767,A330以上的大号和8号远机位不能停放B767,A330以上的大型航班;18号和号机位设置为不允许号和20号机位设置为不允许,型航班;18号和20号机位设置为不允许,预留给特殊航班.给特殊航班.其它规则库则包括特殊的事件处理方式,例如:其它规则库则包括特殊的事件处理方式,例如:如发生天气变化等因素时,如发生天气变化等因素时,可根据实际情况安排号或6号备用机位.在4号或6号备用机位.
10
基于规则引擎的机场资源管理系统软架构
仿真实现方法如下:仿真实现方法如下:在新的架构下,通过JBossRules规则引擎在在新的架构下,通过JBossRules规则引擎在Eclipse下的集成,Eclipse下的集成,可以方便实现规则库与程序下的集成源代码的交互.源代码的交互.航班事实对象可以表示为JavaBean类生成的对航班事实对象可以表示为JavaBean类生成的对只包含航班事实本身的属性及属性的get和象,只包含航班事实本身的属性及属性的get和set方法set方法,而不包括对象间的约束关系和相关逻方法,如航班类包括:航班号,机型号,机型类型,辑.如航班类包括:航班号,机型号,机型类型,到港状态,离港状态,到港时间,离港时间,到港状态,离港状态,到港时间,离港时间,分配的机位号.而机位事实包括:机位号,配的机位号.而机位事实包括:机位号,机位类近机位,远机位),分配状态(已经分配,),分配状态型(近机位,远机位),分配状态(已经分配,没有分配),分配后的航班号.),分配后的航班号没有分配),分配后的航班号.
11
基于规则引擎的机场资源管理系统软架构
JBossRules规则引擎中规则可以被定义到后缀Rules规则引擎中规则可以被定义到后缀名称为drl类型的文件中类型的文件中,名称为drl类型的文件中,也可以保存为表格或规则流形式,这里采用drl格式仿真格式仿真.规则流形式,这里采用drl格式仿真.JBossRules规则引擎中条件可以由when关键Rules规则引擎中条件可以由规则引擎中条件可以由when关键词定义,执行动作通过then关键词定义关键词定义,词定义,执行动作通过then关键词定义,举例伪代码如下:当航班类型为大型的航班MU5314到代码如下:当航班类型为大型的航班MU5314到港时,合理完成了资源的分配仿真,将将25号港时,合理完成了资源的分配仿真,将将25号停机位分配给此航班,同时临近的24号和26号停机位分配给此航班,同时临近的24号和号号和26停机位不能停放任何到港航班.停机位不能停放任何到港航班.
12
基于规则引擎的机场资源管理系统软架构
rule"大型机的分配""大型机的分配大型机的分配"salience3when#conditions(条件#conditions(条件)条件)Condition1:Condition1:航班机型为大型机Condition2:Condition2:航班的状态为到港then#actions(动作#actions(动作)动作)Action1:Action1:25号停机位分配给此航班将25号停机位分配给此航班Action2:Action2:临近的24号和号停机位不能停放任何到港航班号和26号停机位不能停放任何到港航班,临近的24号和26号停机位不能停放任何到港航班,即分配权限属性设为不允许(为了安全考虑)配权限属性设为不允许(为了安全考虑)
13
已完成研究内容和掌握的技术JBoss已完成研究内容和掌握的技术JBossRules
JBossRules是一种开源的商业规则引擎,它的Rules是一种开源的商业规则引擎是一种开源的商业规则引擎,前身是Codehaus的一个名为的一个名为Drools的开源项目的开源项目,前身是Codehaus的一个名为Drools的开源项目,Drools是为Drools是为Java量身定制的基于Rete算法的规是为Java量身定制的基于量身定制的基于Rete算法的规则引擎.Rules可以作为插件的形式集成则引擎.JBossRules可以作为插件的形式集成到当前最流行的Java开源开发环境开源开发环境Eclipse下到当前最流行的Java开源开发环境Eclipse下,
免费且开发界面友好.免费且开发界面友好.以下通过实例分析,掌握了JBossRules规则引以下通过实例分析,掌握了JBossRules规则引擎的基本使用方法,为仿真实现打下基础.擎的基本使用方法,为仿真实现打下基础.下面Rules在研究生奖学金评定中的实现仿是JBossRules在研究生奖学金评定中的实现仿原理与机场仿真相近,作为基础.真,原理与机场仿真相近,作为基础.