admin 管理员组

文章数量: 1086019


2024年4月28日发(作者:qq联系代码生成)

Drools在电信网络开通系统中的应用

及其改造

[朱先飞]

摘要

电信数字程控交换机网络开通中的指令生成比较复杂,若将生成逻辑硬编码

到程序中,会导致程序难以维护,文中介绍了Drools规则引擎的应用和改造并对

现有的多种数字程控交换机的指令规则集进行了设计。

关键词:

数字程控交换机 网络开通 规则引擎 Drools

朱先飞

男,1998年毕业于长沙铁道学院计算机系,现工作于中国电信股份有限公司

广州研究院,从事软件研发、宽带差异化方面的工作。

1 引言

电信网络开通系统的核心功能主要是处理指令生成

的逻辑,不同交换机、交换机版本、业务、冲突功能、业

务组合都会导致指令生成的变化,这些变化产生了一个庞

大的规则集,若将这些规则硬编码到程序中,会导致程序

难以维护和难以对新业务提供快速支撑。而采用规则引擎

来设计、执行这些规则能显著地降低系统的复杂程度,提

高系统的灵活性和可维护性。

用声明方式表达业务逻辑,可以使用Java/XML语法编写

规则,Java代码可以直接嵌入规则文件中,功能很强大。

Drools还具有如下一些优点:成熟;非常活跃的社区;易

用;快速的执行速度;与JSR 94兼容;免费。

Drools由Authoring和Runtime组件组成,如图1,2

所示,Authoring组件用ANTLR3d语法解析drl或xml规则

配置文件,用AST描述规则,PackageBuilder分析AST

规则并做代码产生和编译工作,最后产生Package对

象,Package对象由一个或多个规则组成。RuleBase则

2 Drools规则引擎概述

Drools 是Codehaus 的一个开源项目,现已被纳入

JBoss并更名为JBoss Rules,成为了JBoss 应用服务器

的规则引擎。Drools是用Java语言编写的开源规则引擎,

是基于Charles Forgy的RETE算法的实现。Drools允许使

是一个运行时组件,它包含一个或多个Package对象。

RuleBase对象可以在任意时候实例化一个或多个Working

Memory对象,Working Memeory由Agenda等多个子组件

组成。当有对象被assert进Working Memory,可能会导

致一个或多个Activation的产生,然后由Agenda负责安排

6

Drools在电信网络开通系统中的应用及其改造

这些Activation的执行。

图1 Authoring组件图

图2 Runtime组件图

3 Drools的应用与改造

Drools 规则文件具有一个名为 rule-set 的根元素,

它由一个或多个 rule 元素组成。每个 rule 规则由一个或

多个 parameter 元素、一个或多个 condition 元素以及一

个 consequence 元素组成。rule-set 元素还可以具有一个

或多个 import 元素、一个或多个 application-data 元素以

及一个 functions 元素。

以下是电信网络开通系统中Drools的一个规则配置文

件中示例,对于维护操作人员,系统提供了专用的人机交

互配置界面。

规则由名称、优先级、条件、动作组成:

规则名称: 5ESS交换机指令生成规则1

优先级:100

条件:

1,交换机型为5ESS

2, 新老新功能位[呼出限制、呼叫等待、来电显示、

免打扰、闹钟服务]=存在

3, 产品类型包含(ISDN(2B+D),v5 ISDN(2B+D))

动作:1,修改第一条指令为:dldb-isasg:dirnr=%05

5,bearerservgrp=sp3p1;

规则配置文件:

loop="true">

InnW

orkOrder

ler" >

InstructionHandler

Element().getType() == 3 &&

(ductId()==1||innworkorder.

getProductId()==2)&&

uncOverOne(new int[]{4,9,17,19,

21},innworkorder)

truct(1,0,"dldb-isasg:dirnr=

%055,bearerservgrp=sp3p1;");

由于Drools只采用了Rete算法,考虑到在电信网络

开通中指令的一次性施工的特点,需要避免Rete算法中

规则执行结果的改变导致条件的改变的现象,因此需要对

Drools的源码进行修改,修改时需要注意不能破坏Drools

2007.11

.

广东通信技术

7

新技术

.

新业务

的结构,同时能保留Rete算法的实现,对Drools的主要修

改如下:

1,在Drools的Agenda类里添加成员函数

List agengdaItems = new

ArrayList();

//保留最初的agengda

public void saveItemtoList(){

if(()>0){

return;

}

while(!isEmpty( )){

((AgendaItem) this.

( ));

}

}

public void fireItem(int index){

//如果不执行RETE算法则执行以下代码

try {

(index).fire(this.

workingMemory);

} catch (ConsequenceException e) {

}

}

public void fireAllItem(){

for(int i=0;i<();i++){

fireItem(i);

}

}

2,修改WorkingMemoryImp类的assertObject函

数,在最后增加

emtoList();

3,增加WorkingMemoryImp类的fireListRules函数

public void fireListRules(){

agenda.fireAllItem();

}

8

4 数字程控交换机规则集设计

目前的电信网络开通中,新的电信设备对外接口先

对比较规范,大部分设备都有对外提供了标准的协议支持

或可二次开发API,施工指令比较单一。但是数字程控交

换机的开通施工却比较复杂,数字程控交换机的指令生成

规则数量很多,若将这些规则整合到少量的规则配置文件

里,对规则引擎的执行性能会造成很大影响,同时对规则

集的维护不利。经过对电信现有的5ESS等数字程控交换

机的分析和归纳,对程控交换机规则集进行划分设计:

(1)引入环节的概念,将环节分为:业务环节,负责

提取普通业务的指令,如:装机,移机,拆机等;程控新

功能环节,负责提取新功能的指令,如:缩位拨号等;长

权环节,负责提取长途类型的指令 ,如:国际长途等。

(2)将规则集分类,将规则集分为:普通业务

规则集,负责提取普通业务的指令,如:装机移机

等。不含5ESS,NEXA61新功能规则集,负责提取非

(5ESS,NEXA61)新功能指令,如:缩位拨号等。5ESS新

功能规则集,负责提取(5ESS) 新功能的指令。NEXA61

新功能与长权规则集,负责提取(NEXA61)新功能的指

令。长权规则集不含NEXA61,负责提取非(NEXA61)长

途类型的指令 。

(3)环节通过设备型号条件转换成规则集,比如:

业务环节加设备型号可以对应普通业务规则集。程控

新功能环节加设备型号可以对应新功能规则集不含

5ESS,NEXA61或5ESS新功能规则集或NEXA61新功能与

长权规则集。长权环节加设备型号可以对应长权规则集不

含NEXA61或NEXA61新功能与长权规则集。

(4)将配置频繁的规则提炼出来作为二级规则,可被

相关环节规则集调用,二级规则集分为:V5规则集,负

责普通产品与v5产品之间的转换,如装普通电话。复通规

则集,负责复话相关的开通,如S1240复话时若存在校园

通就要取其新开指令。互斥规则集,负责新功能之间的互

斥,或多取一如公话用户,IC卡公话,投币电话。关联规

则集,负责新功能之间的关联或业务对新功能影响等。参

数更新规则集,负责更新指令的参数。

规则集关系如图3所示。

(下转第41页)

知识管理在电信企业大客户项目营销中的应用

客户的需求也无止境,大客户项目营销管理的模式有待进

一步健全和完善,唯有不断推陈出新,建立与社会经济发

展相适应、与客户需求相符合的营销服务新机制,才能真

正赢得客户、赢得市场。

3 陈绿洲.营销知识管理和保障体系初探[J].企业经济, 2003, 7:

107-109

4 王娟.企业业务流程中的知识管理[J].图书情报工作, 2003,

(9): 57-60

5 (美)Philip Kotler, Gary Armstrong著,赵平等译.市场营销

原理[M]. 北京:清华大学出版社,1999, 9:48-50

参考文献

1 郝雨风编著.大客户战略与管理[M].北京:中国经济出版

社,2005,6:5-6

2 周伟. 知识管理将成电信行业“助推器”..

/web/experts/zhouwei/20050807/123,1723,,

2005

6 (加)赫瑞比著,郑晓明等译.管理知识员工:挖掘企业智力

资本[M].北京:机械工业出版社,2000,7: 263-264

(收稿日期:2007-9-25)

(上接第8页)

规则集并生成指令→调用参数更新

规则集更新指令→发送指令到交换

机,等待交互机的施工结果→分析

交换机的施工结果。

5 小结

Drools规则引擎在电信网络开

通中的应用为系统带来了良好的灵

活性,使复杂的指令生成逻辑与系

统代码分离,提高了系统的可维护

性和代码质量,同时,配置规则的

图形配置界面也为运维人员带来了

方便,提高了网络开通的统一可管

控性。

参考文献

1 /drools/

2 数字程控交换机教材

图3 数字程控交换机指令规则集关系图

规则集划分后指令生成和施工过程如下:获取环节

数据→根据环节和机型映射到相应规则集→匹配相应的

3 电信综合网络开通系统规范

(收稿日期:2007-10-10)

2007.11

.

广东通信技术

41


本文标签: 规则 指令 系统 交换机 开通