基于ACE+TAO的传输网性能分析系统的设计与实现
2009-12-07何建李进军
何 建 李进军
【关键词】TAO ACE TMF GIS
1.系统背景
电信网管系统对于网元等网管元素能够实现自动化的管理。但是对于业务元素如电路,DDF/ODF连接等,电信网管系统无法把它们纳入管理范畴。这样就造成了两者的割裂:电信网络维护人员一方面要通过网管系统来获取网元等网管系统元素的运行信息,并通过人工的方法来和业务元素进行对应,从而获知业务元素的状态信息并及时进行调整。这种工作方式费时费力,且容易出错,需要得到改进。
另一方面,网管系统无法提供直观的告警和性能信息,维护人员无法进行传输告警和性能的综合分析工作。维护人员仍旧停留在故障处理阶段,犹如救火队员,而不是对传输网络性能进行分析提前消除安全隐患。
2.系统平台
本系统需要从电信网管系统获取网管数据。而该网管系统基于ACE +TAO构建。
2.1 ACE
ACE(自适配通信环境,Adaptive Communication Environment)是可以自由使用、开放源码的面向对象框架,在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用的C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。
在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS平台上。而且,因为ACE是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器上。ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、可复用性和模块性。ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以及实时应用的可预测性。
2.2 TAO
即使使用像ACE这样的通信框架,开发健壮、可扩展和高效的通信应用仍富有挑战性。
通过采用像CORBA、DCOM或Java RMI这样的高级分布式计算中间件,可以降低开发通信应用的复杂性。高级分布式计算中间件驻留在客户端和服务器之间,可自动完成分布式应用开发的许多麻烦而易错的方面。
The ACE ORB(TAO)给通信软件的开发者提供这些特性。TAO是使用ACE提供的框架组件和模式构建的CORBA实时实现,包含有网络接口、OS、通信协议和CORBA中间件组件等特性。TAO基于标准的OMG CORBA参考模型,并进行了增强的设计,以克服传统的用于高性能和实时应用的ORB的缺点。TAO像ACE一样,也是可自由使用的开放源码软件。
3.系统结构
本系统首先在TAO基础上构建tmf客户端,通过tmf服务器端访问传输网网管系统。Tmf客户端一方面通过corba总线获取性能信息,并存入数据库;一方面通过socket接受用户界面的指示并向用户发送告警信息。用户端以GIS的形式展现传输网的拓扑结构,并实时显示告警和性能数据。在用户端,用户通过导入excel表格来导入电路等业务元素的数据。这样,网管系统的性能告警数据就可以直接映射到业务元素上,给用户的业务处理带来极大的方便。
3.1 网管接口代理/服务
网管接口服务负责和传输网网管系统(EMS,Element Management System)交互,获取3方面的信息。首先是配置信息,包括网元设备、机盘、端口、保护组、纤芯连接、子网交叉连接、子网交叉连接路由等数据。然后是传输网告警信息,最后是传输网性能信息。接口服务采用TMF814协议与传输网网管系统通信。
网管接口代理是整个系统的核心部分。一方面,它通过CORBA总线与网管接口服务交互,获取配置、告警和性能信息,然后把它写入数据库(SQL Server 2000)。一方面,它通过UDP协议与客户端程序交互,接受用户的指令并向用户实时传送告警和性能信息。网管接口代理在TAO基础上采用C++语言实现。
网管接口代理与网管接口服务交互的类是TaoFiberhomeAgentObject,其核心代码如下:
class NETWORKAGENT_EXPORT TaoFiberhomeAgentObject {….
void getAllManagedElements(CSubnetWorkAttributeData *pSubnetwork,CAttributeDataList &entityAttributeDatas);
void getAllEquipments(const CAttributeData *meOrHolderName, CAttributeDataList &eqList);
void getAllPTPInME(const CMEAttributeData *meAttr, CAttributeDataList &ptpList);….}
TaoFiberhomeAgentObject封装了与网管接口服务交互的细节,包括TAO,CORBA等调用细节。它只向调用者提供简单明了的传输网信息。上述代码片段就是获取网元、终端节点的调用函数。
TaoFiberhomeAgentObject首先连接CORBA ORA,然后建立EMS会话过程、事件通道等资源。客户端程序通过SOCKET发过来的请求都传给了TaoFiberhomeAgentObject对象。
网管系统的管理对象,如网元均用类封装。
无论是网管接口代理还是网管接口服务对最终用户都是不可见的。
3.2客户端程序
客户端程序本身也是一个复杂的子系统。它主要由四大模块组成:
客户端程序是用户直接操作的部分。资源配置模块把网管代理模块传过来的网管系统信息通过地图以图形化的方式呈现出来。用户首先通过定制的Excel表格导入站点经度和纬度数据,然后为网元设备指派站点,这样就可以在地图上显示网元设备及其连接关系。客户端程序以站点为节点,纤芯连接为连接线段,组成系统网络拓扑图,利用地图显示控件呈现给用户。由于网元信息量大,系统采用分层方式显示系统网络拓扑。第一层,显示所有的骨干节点之间的纤芯连接。可以在图形上用鼠标点击特定纤芯连接,突出显示该纤芯连接所在的骨干环。可以基于骨干环显示延伸环和延伸段。
以站点为中心,客户端程序可以把传输网网管系统无法管理的资源,如ODF设备、DDF设备、杆路资源、管道资源等同网络拓扑图相关联,以便建立基于网络拓扑图的资源查询统计管理。客户端程序还可以在地图上形象的显示子网交叉连接的路由信息。
客户端程序按照电路资料模板导入业务电路资料。电路根据其两端的网元设备/端口名称与网管系统里的元素建立联系。这样当网元设备等网管元素发生告警,其影响的电路就一目了然。
客户端程序最重要的一个设计,就是告警规则的定义。为了防患于未然,客户端程序提供定义环路故障和故障比对规则的支持。用户通过设置公式和阈值,客户端程序能从海量的告警和性能数据中分拣出符合条件的数据并及时提供给维护人员,使其尽早去排除隐性的故障,从而保证传输网络的正常运行。
3.3 地图服务
由于有多个客户端程序,每个客户端程序都可以在地图上编辑传输网络拓扑。地图服务负责搜集各个客户端程序提交的编辑动作,并实时地向其他客户端程序传送,这样来保证每个客户端程序呈现完全相同的传输网络拓扑。当某个客户端程序增加/删除节点时,其他客户端程序能够马上在图形上显示出来。
4.结束语
本系统做为网管系统的外围系统,为传输网维护人员呈现了直观清晰的维护界面,扩展了网管系统的功能。综合利用了各种技术,包括CORBA,地理信息系统,数据库技术,ACE+TAO等等,在实际运行中获得了很好的效果。
参考文献:
[1].Schmidt D C, Kuhns F. An OverView of the Real-time CORBA Specification[J]. IEEE Computer,2000,33(6):56-63.
[2]. Signor R, Creamer J, Stegman M O;侯雪萍译.开放式数据库互连ODBC方案集粹.北京:电子工业出版社,1995. 12
[3]. http://www.microsoft.com/odbc/start.htm.1998.4
[4].邬伦等. 地理信息系统—原理、方法与应用[M] .北京:科学出版社,20011
[5] 陆守一,唐小明等. 地理信息系统实用教程(第2版) [M] . 北京:中国林业出版社,20001