您现在的位置: 范文先生网 >> 理工论文 >> 计算机论文 >> 正文

网络管理技术及电信管理网的开发

时间:2007-1-30栏目:计算机论文

件平台的优点。下面将比较详细论述DSET的TMN开发工具及其在TMN开发中的作用。

2.DSET的TMN开发工具的基本组成

DSET的TMN开发工具从功能上来讲可以构成一个平台和两大工具箱。一个平台:分布式系统生成器DSG(Distributed System Generator);两个工具箱:管理者工具箱和代理工具箱。

分布式系统生成器DSG

DSG是用于顶层TCP/IP、OSI和其它协议上构筑分布式并发系统的高级对象请求代理0RB。 DSG将复杂的通信基础设施和面向对象技术相结合,提供构筑分布式计算的软件平台。通信基础设施支持分布式计算中通信域的通信要求。如图4所示,它提供了四种主要的服务:透明远程操作、远程过程调用和消息传递、抽象数据服务及命名服务。借助于并发的面向对象框架,一个复杂的应用可以分解成一组相互通信的并发对象worker,除了支持例如类和多重继承等重要的传统面向对象特征外,为了构筑新的worker类,DSG也支持分布式对象。在一个开放系统中,一个worker可以和其它worker进行通信,而不必去关心它们所处的物理位置。

DSG提供给用户用以开发应用的构造块(building block)称为worker。一个worker可以有自己的控制线程,也可以和别的线程共享一个控制线程,每个Worker都有自己的服务访问点SAP(Service Access Point),通过SAP与其它worker通信。Worker是事件驱动的。在Worker内部,由有限状态机FSM(Finite State Machine〕定义各种动作及处理例程,DSG接受外部事件并分发到相应的动作处理例程进行处理。如图5所示,独占线程的此worker有三个状态,两个SAPs,并且每个SAP的消息队列中都有两个事件。DSG环境通过将这些事件送到相应的事件处理程序中来驱动worker的有限状态机。

Worker是分布式的并发对象,DSG用它来支持面向对象的特点,如:类,继承等等。Worker由worker class定义。Worker可以根据需要由应用程序动态创建。在一个UNIX进程中可以创建的Worker个数仅受内存的限制。

管理者工具箱由ASN.C/C++编译器、CMIP/ROSE协议和管理者代码生成器MCG构成,如图6所示。

其中的CMIP/ROSE协议提供全套符合Q3接口选用的OSI七层协议栈实施。由于TMN在典型的电信环境中以面向对象的信息模型控制和管理物理资源,所有被管理的资源均被抽象为被管对象(M0),被管理系统中的代理帮助管理者通过MO访问被管理资源,又根据ITU-T M.3010建议:管理者与代理之间通过Q3接口通信。为此管理者必须产生与代理通信的CMIP请求。管理者代码生成器读取信息模型(GDMO文件和ASN.1文

件),创立代码模板来为每个被定义的MO类产生CMIP请求和CMIP响应。由于所有CMIP数据均由ASN.1符号定义,而上层管理应用可能采用C/C++,故管理者应用需要包含ASN.1数据处理代码,管理者工具箱中的ASN C/ C++编译器提供ASN.1数据到C/C++语言的映射,并采用“预处理技术“生成ASN.1数据的低级代码,可见利用DSET工具用户只需编写网管系统的信息模型和相关的抽象数据类型定义文件,然后利用DSET的ASN C/C++编译器,管理者代码生成器即可生成管理者部分代码框架。

代理工具箱包括可砚化代理生成器VAB、CMIP翻译器、ASN.C/C++ Toolkit,其结构见图7。用来开发符合管理目标定义指南GDMO和通用管理信息协议CMIP规定的代理应用.使用DSET独具特色的代理工具箱的最大的好处就是更快、更容易地进行代理应用的开发。DSET在代理应用的开发上为用户做了大量的工作。

一个典型的GDMO/CM1P代理应用包括三个代码模块:

·代理、MIT、MIB的实施

·被管理资源的接口代码

·后端被管理资源代码

第一个模块用于处理代理与MO实施。代理工具箱通过对过滤、特性处理、MO实例的通用支持,自动构作这一个模块。DSET的这一部分做得相当完善,用户只需作少量工作即可完成本模块的创建。对于mcreate、m-delete、m-get、m-cancel-get、m-set、m-set-confirmed、m-action、m-action-confirmed这些CMIP请求,第一个模块中包含有缺省的处理代码框架。这些缺省代码都假定管理者的CMIP请求只与MO打交道。为了适应不同用户的需求,DSET代理工具箱又提供在缺省处理前后调用用户程序的接入点(称为User hooks)。当某CMIP请求需与实际被管资源或数据库打交道时,用户可在相应的PRE-或POST-函数中加入自己的处理代码。例如,当你需要在二层管理应用中发CMIP请求,需望获取实际被管资源的某属性,而该属性又不在相应MO中时你只需在GDMO预定义模板中为此属性定义一PRE-GET函数,并在你自己的定制文件中为此函数编写从实际被管设备取到该属性值的代码即可。DSET的Agent代码在执行每个CMIP请求前都要先检查用户是否在GDMO预定义文件中为此清求定义了PRE-函数,若是,则光执行PRE-函数,并根据返回值决定是否执行缺省处理(PRE-函数返回D-OK则需执行缺省处理,否则Agent向管理者返回正确或错误响应)。同样当Agent执行完缺省处理函数时,也会检查用户是否为该请求定义了POST-函数,若是则继续执行POST-函数。至于Agent

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

下页更精彩:1 2 3 4 下一页