基于JMX建立网络管理系统的研究

  • 格式:doc
  • 大小:432.00 KB
  • 文档页数:6

基于JMX企业网络管理系统的设计 第 1 页 共 6 页 基于JMX建立网络管理系统的研究 摘要 介绍了JMX这种特殊的管理框架和基于JMX规范建立的几种网络管理系统模型。

JMX提供分布服务层、代理层、设备层三层管理机制,把具有自我描述的资源服务组件集成到这个框架供客户调用,JMX还提供了消息通知机制、适配器和连接器接口以及对RMI、JDBC、CORBA等的支持。基于JMX规范建立综合企业网络管理系统具备分布式、层次化和跨平台构架,易于扩展和集成旧有系统。

关键词 分布式 JMX 网络管理 多层 Abstract JMX provides three layer’s management mechanism consist of instrumentation level、agent level、distributed service level,more over,JMX offers notification、adaptor and connector API ,and supports to integrate RMI、JDBC、CORBA etc. In this thesis,introduced the JMX special management framework and several network managerment architechtures based on JMX which are distributed 、interoperable 、scalable and easy in implementing event alarm. Key word distributed JMX network managerment architecture

引言 网络管理系统在具备的功能方面正向智能化、自动化、综合化方向发展;同时网络管理系统在设计方面要具有跨平台、分布式、易于扩展、可伸缩性、基于Web的特点。蓬勃发展的计算机软件技术为构建具有以上特点的网络管理系统或平台提供了实现手段,形成了诸如基于WBEM(Web-Based Enterprise Management)或JMAPI(Java Management Application Programming Interface)的WBM(Web-Based Management)网络管理、基于CORBA的网络管理、 基于Web Service的网络管理、基于Mobile Agent的网络管理。sun公司的JMX规范为实现这些目标提供了解决之道,他所提供的三层架构的管理体系、消息通知机制、适配器和连接器接口、专用的应用管理API以及对流行技术RMI,JINI,JDBC,CORBA的支持,使得他非常适合构建分布式、基于Web、易于集成旧有系统的网络管理系统。本文介绍了JMX技术,给出基于JMX设计的网络管理系统,并就如何基于JMX实现Web服务和多层分布式管理进行了探讨。

JMX技术

JMX (Java Management Extensions)是由SUN和其他几家在网络管理方面处于世界领先地位的公司联合发布的、应用Java技术来管理有关Java平台应用程序和其他各种各样网络资源的新型网络管理规范。它定义了基于Java语言的系统架构、设计模式、API 应用和网络管理服务,JMX体系结构分为以下三个层次,另外还有一组附加管理应用API: 1) 设备层(Instrumentation Level) :主要定义了可管理资源的实现规范。在JMX中,各种被管理资源也叫管理对象、代理服务,MBean服务器也叫服务代理。被管理资源以管理构件的形式存在,都是一个独立的模块,需要管理时,向MBean服务器进行注册,这种居于组件模型的方式意味者JMX方案可以开发大小不一,甚至各种各样的设备,因此JMX架构具有灵活的伸缩性和异构性。该层还定义了通知机制以及一些辅助元数据类。

基于JMX企业网络管理系统的设计 第 2 页 共 6 页 2) 代理层〔Agent Level) :主要定义了各种代理服务以及通信模型。该层的核心是一个MBean服务器,设备层的被管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。代理层还提供了一系列核心的代理服务,这些服务可以动态加载、动态卸载或者动态更新,因此JMX的结构框架大小动态可变。 3) 分布服务层(Distributed Service Level) :主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。当前的JMX规范并没有给出这一层的具体规范,使用者可以根据需要定义自己的HTTP适配器、SNMP适配器、专用连接器,以实现分布式访问管理。 4) 附加管理协议API:定义的API主要用来支持当前已经存在的网络管理协议,如SNMP, TMN, CIM/WBEM等。 JMX框架降低了不同服务之间的耦合性,每一种服务在系统中都有一个MBean 包装器,并且被注册到中心MBean服务器上,MBean服务器成为各种分离的服务互相调用的总线, 一种服务通过查询MBean服务器来获取另外一种服务的调用方式,这就大大降低了模块之间的耦合。在应用系统启动时,能够通过外部配置来单独启动某些服务,而不须要启动所有服务;基于JMX 的应用系统具有良好的扩展性,在缺省情况下,系统中的各种服务都能够被JMX兼容的管理工具所管理,其他用户开发的MBean也能够被注册到MBean服务器上,并且可以被通用管理工具自动管理(如HTTP适配器)。

基于JMX的集中式网络管理系统

1.1系统体系结构设计 JMX规范,它提供的三层体系结构、服务代理思想、以及JINI,RMI,JDBC内嵌机制为基于JMX建立的系统以后的功能扩展和系统扩展提供了方便和可能。下面介绍一种基于JMX建立的网管系统,系统的体系结构如图1所示:

基于JMX企业网络管理系统的设计

第 3 页 共 6 页 HTTP Adaptor应用客户端GUIWeb浏览器端Applet

HTTP/SSL

拓扑服务事件告警服务XML解析数据库访问服务性能管理服务安全服务日志服务设备管理服务

JMXServer层

JMX软件总线(服务代理)JavaMailJAFJ2SE数据库或XML文件客户端服务器端数据层RMI_IIOPJNDIJTAJMSJDBC

图1 跨平台网管系统框架图 该系统是分布式的。用户可以在安装有该系统客户端应用程序的终端登录网管系统,也可以从任意浏览器登录网管系统,前者是由客户端模块通过HTTP适配器接口实现,后者通过HTTP协议访问客户端应用小程序APPlet实现。网络管理服务可以分布在不同的主机并注册到同一台MBeanServer,以供调用。下面分别介绍客户端、服务器端、数据层的功能和实现。

客户端: 客户端在功能上负责用户与网络管理系统的图形界面接口,包括网络拓扑图的展示和编辑,事件策略配置,用户登陆和权限分配,性能管理策略配置,性能分析数据查询和浏览,察看实时性能数据曲线,系统故障和告警的显示和查询。客户端对应于网络管理系统的管理站应用程序,是用户操作的交互接口。 采用JMX的通信机制实现客户端分布式调用服务器端服务,该通信机制就是适配器或者连接器机制。各种具体的操作服务可被封装为MBean,在MBeanServer注册,前台客户端不能直接引用服务器端服务的类和方法,客户端和服务器端都定义并装载该适配器(或连接器),客户端把和MBeanServer以及服务操作相关的参数作为参数,调用适配器invoke方法从而实现对Mbean进行调用。根据需要定义了两种适配器:一是本地调用使用的Adaptor,另一种是实现了基于HTTP的远程调用的适配器。 客户端远程调用MBean的关键代码如下: client=ClientAdaptorFactory.createClientAdaptor(); String[]snamef=knewlString[] {"java.lang.String","java.lang.String","java.lang.Integer", "java.lang.String", "java.lang.String"}; Object[] value = new Object[] {logon, deviceIP, port, getCommunity, setCommunity}; Integer server=(Integer)client.invoke("SnmpServer", "getSnmpServer", value, name);

基于JMX企业网络管理系统的设计 第 4 页 共 6 页 客户端的界面采用传统的Windows界面形式,性能管理、用户视图、计费管理以及以后扩展的管理功能模块都作为插件无缝集成到客户端和服务器。

服务器端: 服务器端响应用户的策略变化,完成不同的网络管理功能,比如故障管理、配置管理、性能管理、安全管理等。具体地说负责告警监控,并且负责所有的网管数据(拓扑图,设备,操作员)的存取,以及访问网络(SNMP, ping等)。 在这一层有两种服务器存在,一种是Mbean Server,该服务器作为管理各种资源对象的代理,各种业务处理服务、资源对象需要在Server中注册,才可被客户端应用引用。另外一个服务器是HTTP浏览服务器,用于处理用户通过Internet和Web 浏览器访问处理程序的请求。 服务器端起动服务器、注册服务的关键代码是: //定义MBeanServer public class NetManageServer //启动JMX Server server = MBeanServerFactory.createMBeanServer(); //注册MBean if (!server.getMBeanServer().isRegistered(userAdminName)) server.getMBeanServer().registerMBean(userAdmin, userAdminName)

数据层: 本系统采用了两种数据存取机制。XML文件存取机制用于数据稳定且对存取速度要求较高的情况,如;管理配置信息,设备子图信息,事件信息,告警信息等;对于数据量不断增加的数据采用Oracle数据库系统。如采集的实时性能信息和提供给企业技术人员和相关领导的各种统计信息等。数据库操作基于JDBC及数据库连接池,采用标准SQL语句实现。数据库支持MySQL,Oracle,MS SQL三种数据库,前者为应用广泛的免费数据库,后两者为著名的广泛采用的商用数据库。所有涉及到数据的操作需要基于接口实现。