基于移动 Agent的数据采集系统实现与性能分析
发布时间:2015-07-04 09:22
摘要 本文提出了基于移动agent的分布式配置数据采集的新思路,给出了采用移动agent技术查询配置信息的方法,并且利用移动agent开发平台aglets开发了一个配置信息采集原型系统,实现了分布式配置数据采集的透明访问。最后对使用移动代理技术和传统的基于snmp方法的数据采集响应时间性能进行了实验结果分析。
关键词 移动agent;配置信息采集;原型系统
1引言
随着互联网的迅速发展和万维网的广泛使用,对网络管理提出了更高的要求,而传统的c/s模式的网络管理模型暴露出许多问题,主要体现在随着网络规模的增大只有管理中心负责收集数据,这样加大了中心计算机的计算负载,导致管理中心计算机负担过重;网络上的通信流量过大导致网络负荷加重甚至导致拥塞,因此传统的基于snmp的网管模型适用于⌒偷耐缰小?lt;/div>
近年来基于移动agent的分布式计算技术得到了快地发展。移动代理可以在网络各节点之间自由的迁移,它拥有一定的智能和判断能力,能自主地决定迁移目的地。它可以在执行的任一节点挂起,等迁移到另一个节点后再继续执行。移动代理在保持内部数据、状态的同时,将代码和数据在网络各节点之间独立、自治地迁移的能力极大地加强了网络管理功能的分布式计算特性和灵活性,移动代理的跨平台移动、动态和分布式计算特性也扩展了传统agent处理事务的能力,使之能够较好地解决internet环境中低带宽和不稳定连接的问题。而且移动代理的智能性与灵活性有利于在分布式、异构、动态环境下实时有效地提供配置信息采集服务,并有利于提高系统的稳定性。
2移动aglet和移动aglet平台
2.1移动aglet
agent的研究起源于人工智能领域。agent是指模拟行为和关系、具有一定智能并能够自主运行和提供相应服务的程序。让agent在网络中移动并执行来完成某些功能是研究移动agent的基本思想。软件agent研究者的定义:移动agent是能为用户执行特定的任务、具有一定程度的智能以允许自主执行部分任务并以一种合适的方式与环境相互作用的软件程序。
移动agent分布式计算是在早期的一些分布式计算模式如远程过程调用(rpc)、远程计算(rev)的基础上发展演变得到的。在远程过程调用中,数据在客户和服务器之间双向传送;在远程计算中,代码从客户端发送到服务器,数据返回;而移动agent包含代码、数据和执行状态的软件程序。由客户发送到服务器,移动代理按照自己的任务能够动态自主的在网络中的多个节点之间迁移,在完成任务后按照客户的初始要求返回客户端,因此具有更大的自主性、灵活性。
移动agent的出现自然要求有使用移动agent进行编程而设计的系统,这其中出现过不同厂商的许多开发系统平台如:telescript,tacoma. agent,tcl agent, voyager, concordia, ajanta等,而在诸多的开发平台中由ibm东京实验室开发的aglets平台最具代表性。
2.2移动aglet开发平台aglets
aglets是一个基于纯java语言的移动agent开发平台。在aglets系统中,aglet就表示移动agent。aglet产生于一台主机上,并可以在不同的主机之间迁移,不需要占用太多的系统资源和网络带宽,因此适宜低带宽和不稳定连接的internet环境。用户可以规划aglet的巡行路径,使得aglets有能力在网络中按照巡行路径(itinerary)灵活的进行迁移,并通过aglet之间的相互通信实现移动aglet之间的协作,从而可以从多个节点收集配置信息。
aglets运行环境由一个被称为tahiti的aglet服务器提供。tahithi提供移动agent产生、复制、派遣和销毁等基本功能。
aglets的基本功能和特性由三个类来定义:aglet 、agletproxy、 agletcontext。抽象类aglet是一个移动java 对象,该类提供了控制移动代理移动和生命周期的各种方法,提供对aglet内部属性和动态属性的访问。agletproxy是一个aglet代理,首先,它防止对aglet中public方法的直接访问,代理间的通信是通过彼此的prxoy对象用消息传递的方式传递消息对象来实现而不能相互间直接访问;其次,提供了aglet所在位置的通明化,如果aglet想要与远端的aglet通信,只有在本地主机的context中产生对远端aglet的代理(proxy),并与次代理通信即可,而不必直接处理网络连接与通信问题。agletcontext是aglet的运行环境,该环境防止运行alget的主机系统受到恶意algets的攻击。它是一个静态对象,提供了用于维护和管理正在运行的aglet的各种方法。网络中的一个节点可以运行多个服务器而每一个服务器可以拥有多个contexts。一旦移动代理迁移后,就和当前的agletcontext对象脱离关系,然后将自己的代码、数据和状态一同转化成消息字节流,经过网络传送到远端节点后在当地的agletcontext环境中重建自己,完成自己的任务。
3利用aglet采集配置信息
3.1系统框架
基于移动aglet的分布式配置信息采集主要有以下几个部分组成:服务器、客户端、内部网络以及在各节点间迁移执行信息采集和处理的移动agent。系统框架如图1所示:
图1-1 基于移动aglet的分布式配置信息采集系统框架
图2 系统结构
如图2所示,系统由“配置信息管理中心”和“信息采集代理”两部分组成。用户使用配置信息管理中心指定要采集配置信息的主机(ip地址),形成(内部)采集主机ip地址列表。然后,配置信息管理中心生成一个信息采集代理,并把它派遣出去,该代理携带了确定的主机地址列表。之后,信息采集代理就按照携带的主机地址列表,依次移动到每台主机上,通过移动代理网管平台提供的snmp访问设施,获取该主机的基本配置信息(包括rfc1213中的system组信息,host-mib中主机设备信息、存储信息、安装软件信息)。代理可以直接将获取的信息(通过aglets消息)传输回配置信息管理中心,也可以暂时保存在代理自身内部携带回中心(由用户在派遣前指定方式)。当代理访问完所有的主机后,返回中心,代理自动释放终止。最后,配置信息管理中心汇总采集到的信息,并显示给用户。3.2.2.2配置信息管理中心的设计 配置信息管理中心是一个aglets client程序,完成以下功能: 1)设定采集目标主机清单、采集内容、数据访问方式; 2)生成并派遣信息采集代理; 3)收集信息采集代理发送回的配置信息(aglets消息),该信息可以是代理在过程中发送回来,或者是代理返回后发送。 3.2.2.3 配置信息采集代理的设计 信息采集代理是也一个没有界面的aglets,它由配置信息管理中心,按照指定的目标主机地址列表中的顺序依次访问每个主机,采集配置信息。 当移动到一台主机后,其基本工作流程如下: 1)将本机ip地址从目标主机列表中删除; 2)通过移动代理网管服务器提供的snmp设施,访问设定的采集内容mib值; 3)如果设定直接返回信息,则将采集的数据打包成一个aglets消息,发送回配置信息管理中心;否则,将信息暂存在代理的内存中;//aglets消息类型,如何打包,使用。 4)检查目标主机列表是否为空。如果不空,则移动到列表中的第1个地址的主机;再依次执行任务,如果某个主机不可达,则设置时间间隔,超时则返回信息说明该主机不可达,再依次到下一个主机采集信息。最后再一起打包返回管理中心。如果空,则移动回配置信息管理中心所在主机。 5)当移动回配置信息管理中心所在主机后,如果设置汇总返回信息,则将采集的配置信息数据打包成一个aglets消息,发送给配置信息管理中心。最后,发送一个采集结束消配置信息管理中心,然后自行死亡。 4 一个原型系统 由于aglets是基于java的移动代理开发平台,我们使用了java语言来实现该原型系统。使用的java开发软件包包括、和jdk1.5.0。 图3用户采集配置数据结果 该系统使用三个类来实现:datacollectionwindowaglet类,datacollectionaglet类,collectionwindow类,其中前两个类继承类aglet,datacollectionwindowaglet类实现静态代理,负责移动代理的生成、派遣和返回数据的处理,datacollectionaglet类完成配置数据的采集, collectionwindow类实现了界面窗口。原型系统在windows2000系统下开发。 客户端程序界面如图3所示,分为3个部分。顶部供用户输入要采集信息的主机ip地址,指定采集信息内容,以及代理发送采集信息的方式。中部的按钮“启动”供用户启动采集过程。底部的文本框显示采集的结果信息。 5 响应时间性能分析 我们对基于移动代理和基于传统snmp方法在读取配置数据响应时间性能进行比较,使用开发的原型系统进行实验测试,测试两种结构下的响应时间。 如图4所示,由该图可以看出当被管设备集中在同一子网内时,使用移动代理方法的响应时间优于基于snmp方法的响应时间,在读取相同的数据量时,随着主机数的增加二者的响应时间差距逐渐增大,所以移动代理的响应时间特性优于snmp方法的响应时间。 图4 单子网响应时间比较 图5变量数对响应时间的影响 图5所示,对于读取的数据量对响应时间的影响,我们分析在单子网模式下的响应时间,可见,在读取的数据量少时,基于snmp方法是有一定优越性的,但是随着数据量的增加使得基于移动代理的方法优势逐渐体现出来,读取的数据量越大则优势越明显。这里给出一个直观的解释,在读取的数据量很少时移动代理要花费更多的时间在自身处理上,如源移动代理系统收集运行状态和编码的时间,移动代理在目标机器上的解码、实例化、和激活时间,而当读取的数据量较大时,移动代理可以在高速的局域网内迁移,而snmp方法则要访问多次,尤其是读表的时间上很耗费时间,所以处理时间可能会更长,此时如图5所示,移动代理的优势就比较明显。 6 结束语 本文介绍了一个利用移动代理访问配置数据的原型系统和相关的实现方法。该配置信息采集系统是在ibm的移动代理平台aglets基础上实现的,实验环境中包括两个服务器,用户通过客户机可以实现移动代理对分布在两个服务器上的配置数据的访问。原型系统提供了数据查询界面、配置数据显示界面,实现用户简单的查询需求。该系统的成功运行表明,利用移动代理技术访问分布式配置数据是可行的、有效的。同时与传统的基于snmp方法的数据采集进行了性能比较,实验结果表明,在主机数量比较集中的且被管理的主机量较大时刻,使用移动代理技术体现出延迟上的优越性,在同样的实验环境中,在采集相同数量主机时,采集的数据量越大,则移动代理较之传统的基于snmp方法延迟更小。 参考文献: [1]张普含.“一种基于移动代理的网络管理系统及性能分析”.软件学报.2002,vol.13,no.11。 [ 2] manoj jumar kona and cheng-zhong xu. a framework for network management using mobile agents. department of electrical and computer engineering wayne state university, deroit, mi 48202. [4] danny general magic inc.420 north mary avenue sunnyvale. ca94086 u.s.a. mitsuru oshima ibm tokyo reseach laboratory 1623-14 -shi kanagawa-ken 242, japan. mobile agents with java : the aglet api. [4], ericsson research canada edgar olougouna,samuel pierre,ecole polytechnique,canada . mobile agent and their use for information retrieval: a brief overview and an elaborate case study. ieee feburary2002 [5]ravi jain, faroog anjum and amjad umar. a comparison of mobile agent and client-server paradigms for information retrieval tasks in virtual enterprises. copyright 2000 telcordia technologies, inc.