一种基于JADE平台智能网络管理系统的设计与实现

时间:2022-08-27 11:28:03

一种基于JADE平台智能网络管理系统的设计与实现

摘要:目前的网络管理在系统的可靠性、伸缩性、灵活性等方面存在诸多不足,该文以JADE为平台研究了智能网络管理系统的模型构建。

关键词:AGENT;JADE;建模

中图分类号:TP18文献标识码:A文章编号:1009-3044(2009)22-0000-00

计算机技术和通信技术的快速发展使计算机网络结构和规模日趋复杂,逐渐趋向于大规模、异质(不同功能、不同协议、不同拓扑结构)网络互联的复杂结构,组网技术越来越灵活,网络设备网络终端的种类越来越多样化。但是,网络管理体系结构仍然以集中式结构为主,不能很好地适应网络结构的发展需求。因此,借助于AGENT技术在JADE平台上建构网络管理系统,使管理模型结构灵活,对于单个网络资源具有一定的独立性,而对于系统整体来说具有更好的系统扩展性。

1 网络管理系统

网络管理是一项保证成功运行网络和商业活动的关键因素。网络管理保证网络上所提供的服务能稳定地运行,并能控制操作成本[1]。网络管理保证了所有网络资源得到有效的配置,提高网络的实用性以及恰当的服务质量,保证信息和网络的安全性。不同的网络管理目的,有多种不同类的系统可使用,以便帮助网络管理专业人士每天管理和操作网络及服务[2]。每个系统可包括一个或多个功能,但任意一个单一的方案都不可能完全解决所有的网络管理需求。每个系统可能包括一种或几种功能。

网络管理包含五部分:网络性能管理、网络设备和应用配置管理、网络利用和计费管理、网络设备和应用故障管理以及安全管理[3]。ISO建立了一套完整的网络管理模型,其中包含了以上五部分的概念性定义:

性能管理:衡量及利用网络性能,实现网络性能监控和优化。网络性能变量包括网络吞吐量、用户响应次数和线路利用。

配置管理:监控网络和系统配置信息,从而可以跟踪和管理各种版本的硬件和软件元素的网络操作。

计费管理:衡量网络利用、个人或小组网络活动,主要负责网络使用规则和帐单等。

故障管理:负责监测、日志、通告用户,(一定程度上可能)自动解决网络问题,以确保网络的高效运行,这是因为故障可能引起停机时间或网络退化等。故障管理在ISO网络管理单元中是使用最为广泛的一个部分。

安全管理:控制网络资源访问权限,从而不会导致网络遭到破坏。只有被授权的用户才有权访问敏感信息。

常见的网络管理协议主要有由IETF定义的简单网络管理协议(SNMP)。远程监控(RMON)是SNMP的扩展协议;另一种是由ISO定义的通用管理信息协议(CMIP)。典型地,网络管理系统包括两部分:探测器 Probe(或),主要负责收集众多网络节点上的数据;控制台Console,主要负责集合并分析探测器收集的数据,提取有用信息和报告。

目前的网络管理系统常用的结构如图1所示:

这是一种集中式管理结构,SNMP提供SNMP的访问响应功能。管理站点通过访问MI库来得知网络资源的状况,通过对MIB库的分析,管理整个网络。该结构中各站点需要通过管理站点及管理员对自己的站点进行管理,而管理站点分析网络现状的依据只有各个被管理站点的MIB库,MIB库中可以读取的数据又是有限的,管理站点对他的访问所要花费的时间也比较多,管理的功能和性能都比较差,因此,系统的可用性和健壮性都比较差,管理站点的负载较重,管理站点一旦出现问题势必会影响整个网络系统。

2 JADE架构

JADE(Java Agent DEvelopment Framework)即基于JAVA语言的Agent开发框架,是由TILAB开发的开放源代码的自由软件。JADE是一种面向Agent的开发工具,可Java和FIPA环境下运行,由一个Agent开发平台和一系列工具包组成,这些工具包可为多Agent系统的架构提供最基本的支持。JADE完全是用JAVA语言实现的,当前要求的最低的JAVA版本是1.4[5]。

JADE是一个开放和分布式的软件,它非常适合开发基于分布式并且系统中存在着主体间交互的系统。作为一种中间件,JADE提供了很多Agent基础类以及调试和配置Agent的工具,包括一套图形界面工具来管理和监控Agent的配置参数和状态。JADE为MAS系统提供了以下功能:(1)Agent管理系统(Agent Management System,简称AMS),负责控制平台内Agent的活动、生存周期及外部应用程序与平台的交互,规范Agent在平台上用独一无二的名字来标识;(2)目录服务器(Directory Facilitator,简称DF),负责对平台内的Agent提供黄页服务,注册服务类型以供查找;(3)消息传送系统,也称为Agent交流通道(Agent Communication Channel,简称ACC),控制平台内或不同平台之间的消息传输、消息编码、消息解析等。

为了保证Agent的分布式计算和协作机制,Jade构建行为池(Behaviour Pool)来存储所有添加的Behaviour,这些Behaviour呈队列排列,按照进入行为池的顺序依次被调用。Behaviour方法被调用时,首先执行Action方法,然后判断Done函数返回的布尔值,如果为真则将Behaviour移出行为池,继续下一个Behaviour的执行。Jade提供了这样一个基类,其他Agent所需要做的是重载setup,action,done,takeDown这几个方法来实现特定的功能模块[6]。

3 网络管理系统设计

现行的计算机网络管理存在的主要现象是缺乏智能性,灵活行差,可靠性差,管理活动受限,管理效率低下。将AGENT技术引入网络管理系统,借助于AGENT的特性改变网络管理系统结构的现状。当网络将要发生拥塞时,AGENT可预见性使系统在这之前采取相关的行动,避免拥塞的发生。在每个网络设备上建立各自我管理的网络管理AGENT,这样各个网络设备都拥有各自独立的管理机制,又可以与其它网络管理agent进行交互协作,协同处理拥塞和故障以解决整个网络的状态。各网络管理AGENT无法解决自身问题时,可以协同其他AGENT解决也能在无法解决时提交网络管理总AGENT,由网络管理员来进行响应解决。

网络设备包括路由器、交换机、服务器和工作站等硬件设施,针对每个网络硬件设备建立独立的网络设备管理AGENT负责相应网络资源的本地控制和管理等,根据地理环境或使用局域范围建立协同AGENT,协同AGENT负责网络局域内的各个网络管理AGENT之间的协同管理网络管理总AGENT负责统一管理所有网络管理AGENT,网络管理总AGENT同时也是网络管理员和系统之间的交互接口。网络管理系统的结构设计如图2所示。

网络管理AGENT:负责对单个的网络设备进行监督,在网络设备状态发生改变时,向网络管理总AGENT发出事件信号,如果是引起故障发生的事件,先有网络管理AGENT自己根据本地资源信息判断是否问题根源所在,并且进行自我排除,如无法自我排除则通知给协同AGENT。网络管理员根据网络运行的情况,将会适当地产生一些管理策略,通过与总控制器之间进行人机交互,使得总控制器掌握了管理策略,并用形式化的描述出去,各个本地控制器在时钟事件的触发下,更新了管理策略。网络管理AGENT的逻辑图如图3所示。

协同Agent:负责对管理任务进行推理和分解,管理区域范围内的网络资源。接收区域内的各个网络设备的管理AGENT提交的故障事件,进行各网络设备协同分析解决故障。如果无法解决,则上交网络管理总AGENT。

网络管理总Agent:负责对网络系统异常情况的产生机制以及对异常情况的处理机制进行部署。监控整个网络的性能和负责网络设备的配置,接收各个网络管理AGENT提交的局域范围内无法协调解决的问题,在整个系统范围内进行资源调配解决。该AGENT还向网络管理员提供管理系统的界面。网络管理员根据网络运行情况,制定管理策略,通过与网络管理总AGENT之间进行人机交互。网络管理总AGENT将管理员的管理策略转化成具体的信息给各网络管理AGENT,有必要的话也传播给各个协同AGENT。各网络管理AGENT在时钟事件的触发下,按照接收到的信息进行对相应的网络管理AGENT进行管理策略的更新,从而保证整个网络系统的功能和性能。

4 系统实现

本系统是主要开发工具包括JDK,JSP,JADE。本系统采用Tomcat5.5作为运行时的服务器,Tomcat可以提供JSP服务器的功能同时也支持Servlet。

在JADE平台中,建立一个完成特定任务的Agent需要使用jade.core包中两个重要的类,即Agent类和Behaviour类[7]。Agent类定义了JADE系统中Agent的公共基类,提供了收发消息,Agent的生存期状态管理等方法。开发Agent就是设计一个继承jade.core.Agent的类,设计Agent的行为实现特定的功能。Agent的状态有8个,包括初始(AP_INITIATED) 、活动 (AP_ACTIVE) 、悬挂(AP_SUSPENDED) 、等待(AP_WAITING) 、已删除(AP_DELETED) 、迁移 (AP_TRANSIT) 、克隆(AP_COPY) 、离开(AP_GONE) 。只有在AP_ACTIVE 状态下,Agent 的行为才能被执行。

Behaviour类:Agent提供的每个功能/服务是通过一个或多个行为实现的。在定义行为类时需要定义action()方法和done()方法(循环行为CyclicBehaviour没有done()方法)。当线程进入action()方法运行时,占用CPU直到action()方法返回,才能将CPU让给其它行为。对于单个步骤执行时间较长的操作,应该将其分解成一些子操作,Agent行为的线程总是从action()开始运行,使用一个开关语句每次执行其中的一个子操作,这样可以避免影响其它任务的并行执行。当done()方法返回true 时,行为的action()方法不再执行。

5 结束语

本文对网络管理系统的建模进行了研究,使用了JADE开发架构。JADE架构提供了构造多Agent系统的机制,使Agent的执行和通信实现变的更加容易,为Agent技术和JADE平台的融合进行了应用研究,系统只是实现了网络管理部分功能,网络管理系统的完善、网络的安全性还有待于进一步的研究。

参考文献

[1] 岑贤道.网络管理协议及应用开发[M].北京:清华大学出版社,1998:1-215.

[2] Kahani M,Beadle H W.Decentralised Approaches Network Management[J].Communications Review.ACM SIGCOMM,1997(3):36-47.

[3] 郭军.网络管理[M].北京:北京邮电大学出版社,2001.

[4] 沈洁,许有志,罗建利.基于MAS的本体在企业知识管理中的应用研究[J].计算机工程与设计,2005,26(11):2963-2965.

[5] Bellifemine F,Caire G,Poggi A,et al.JADE A White Paper[Z].2003.

[6] Tutorial for beginners[EB/OL]./JADEProgramming Tutorial for beginners.pdf.

上一篇:数据库教学方法探讨 下一篇:水文情报信息管理系统研究设计