移动Agent通信技术的研究与分析

时间:2022-08-21 05:25:07

移动Agent通信技术的研究与分析

摘要:该文研究和分析了移动Agent系统中常见的四个通信技术问题。这四个问题分别是:移动Agent的命名,移动Agent的定位,移动Agent的消息处理及移动Agent通信可靠性。

关键词:移动Agent;命名机制;定位机制;消息传递;通信失效

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)05-1057-03

Research and Analysis of the Mobile Agent Communication Technology

FAN Bin, LIU Xin, LI Wei-hua

(Shenyang Institute of Engineering,Shenyang 110136,China)

Abstract: Research and Analysis of the four useful communication technology problems about mobile agent system. These four problems are: naming for mobile agents, locating for mobile agents, producing messages about mobile agents and high-reliability model for mobile agent communication.

Key words: mobile agent; naming method; locating method; message delivery; communicating invalidation

1 引言

移动Agent系统主要从“如何支持移动”的角度来设计通信机制。在传统的分布式计算环境中,计算实体一旦被创建,他们的位置便固定下来,在整个生命期内不会改变,发送方只需得到接收方的当前位置即可始终与之通信。在基于移动Agent的计算环境中,由于移动Agent的位置可能经常变动,因此Agent之间进行通信需要考虑四个问题:

1) 移动Agent的命名;2) 移动Agent的定位;3) 移动Agent的消息处理;4) 移动Agent通信可靠性。

2 移动Agent系统的命名

2.1 命名的必要性

在设计一个移动Agent系统时要综合考虑许多方面的问题,其中,命名是移动Agent系统的一个十分重要的问题,它关系到整个系统的灵活性、有效性和可扩展性。

2.2 对移动Agent的命名及名字解析机制的研究与分析

目前大多数移动Agent系统的命名是基于主机名加端口号,并通过DNS(Domain Name System,域名系统)解析。如美国Darmouth College的Agent TCL[1]和IBM的Aglets[2]就是使用这样的名字。

在这样的系统中,当一个Agent迁移之后,它的名字也要跟着改变,这使得应用程序在跟踪Agent时变得很复杂。因此,最好是能在应用层上提供一个位置透明的名字。达到这样要求的方法有两种:一是为远端的实体提供一个本地的Agent,该Agent封装了它们的实际位置。当实体移动时,系统负责更新它们的位置信息,由此在应用层上提供了位置透明性。如Voyager Info-Systems的Voyager[3]就是使用这种方法来为Agent命名的。另一种方法是使用全局的、与位置无关的名字,即使实体的位置发生了改变,它的名字也不发生变化。这就需要提供一个名字服务,将命名实体象征性的名字映射到它的实际位置上。在美国Minnesota大学计算机系开发的基于Java的移动Agent系统Ajanta中,所有的实体都是采用的这种全局一致的名字。显然,使用第二种命名方法对移动对象的跟踪和通信完全可以实现位置透明性,极大地方便了移动Agent系统通信模型等的建立。因此可见,使用全局的、与位置无关的名字是解决移动Agent系统中名字解析问题的理想选择。

3 移动Agent的定位

3.1 移动Agent定位机制的研究

由于移动Agent可根据特定的任务和路线,在不同的主机上灵活迁移,这种位置上的不确定性也造成了移动Agent定位的困难。一般来说,定位移动Agent可有3种机制[4]:

1) 使用日志:移动Agent会在它访问过的每台主机上留下跟踪信息,这些信息指明了Agent移动的下一站,通过跟踪这些信息可以定位Agent。那些无效了的Agent的跟踪信息会被垃圾收集程序依据一定的过期时间或Agent发出的通告自动收集。可以通过沿路跟踪和重定向两种方法来使用跟踪信息定位Agent。

2) 蛮力搜索:在多个目的地中搜索Agent,以便将其定位。搜索可以在多个目的地中并行或顺序展开。

3) 注册:Agent在一个预定义的名字服务器中更新它的位置信息。该名字服务器允许Agent进行注册、注销或定位。别的Agent用这个名字服务器来定位这个Agent。在实际应用中,进行通信的Agent须事先约定一个名字服务器。如果每一个Agent服务器都相应有一个名字服务器的话,就可以简化约定的达成。当多个Agent来自同一台源主机或到达同一台目的主机,它们只需简单地共享与它们的源主机或目的主机相联系的缺省名字服务器就可以了,无需事先交换名字服务器的地址。

3.2 移动Agent定位机制的分析

通过上面的介绍可知:使用日志的方法需要知道Agent的源主机或其访问过的任意一台主机。蛮力搜索方法易于在应用中实现,且独立于外部机制,如跟踪信息或名字服务器。而应用注册方法的一个典型场合是多个Agent同时就一个任务被分配到多个地点工作,若它们之间需要通信的话,只需共享源主机的名字服务器就可以了。

因此,对于不同的系统,我们可以依据系统的安全和性能的需要来具体选择使用哪种定位机制。

4 移动Agent的消息传送机制

目前许多移动Agent系统均提供了与其它移动Agent的远程通信机制,在现有的移动Agent系统中,Agent间的消息传递机制按照实现方法一般可分为[5]:广播法,链状追踪法,基站法和集中注册法。下面分别加以介绍和分析。

4.1 广播法

发送消息的Agent从其根节点开始发送,按照某种规则(如深度优先、广度优先) 向网络中所有可能接收消息的Agent所在的主机进行广播。接收Agent当前所在的主机发现消息的接收对象正运行在自己的Agent环境中,则接收该消息并将其转交给目标Agent,而其余主机不接收该消息。

广播法的工作原理如图1所示:

对于局域网来说,广播法不失为一种简单的消息传递机制,其最大的优点就是算法简单、通信速度快。但对于广域网来说,发送方很难预先知道接收Agent的移动路线,这就造成了其难以克服的弱点。因此可知,广播法只能适用于小规模的应用,而不适宜在大规模的应用中(如Internet环境下)。

4.2 链状追踪法

移动Agent每当移动到一台新的主机N,就把其新的地址通知给上一次所逗留的主机P,这样P就会为该Agent生成一个记录项,记录项中会包含该Agent的ID和一个指向主机N的指针。通过这种方式就会形成一条从Agent的初始主机到当前所在主机的指针链,这样发送方只要根据接收Agent的ID找到其初始主机,然后沿着这一指针链即可找到目的Agent并将消息传递给它。

链状追踪法的原理如图2所示。

与广播法类似,链状追踪法的优点也是算法直接、实现简单、运行开销小。但它的缺点也是很明显的:通信效率低下、响应速度缓慢;消息的传递存在路由迂回问题;系统的容错性和健壮性较差;可能会无端占用了主机的资源。

4.3 基站法

在基站法中,在整个移动Agent环境中设置一台专用的主机作为基站(Home),所有的移动Agent都要在创建它的Home中注册,每次迁移成功时,移动Agent都要向Home发送其新位置,因此Home始终知道移动Agent当前所在的位置。当移动Agent之间进行通信时,消息首先发送到Home主机上,Home主机根据其记录的移动Agent的当前所在主机地址将消息转发目标Agent。

基站法的原理如图3所示。

该算法实现简单且迁移和消息发送的开销不大,实现了分布式处理,具有较好的健壮性和可扩展性,其缺点在于:①在移动Agent生命周期内必须保证基站主机的长久连接,容易产生Home通信瓶颈问题;②每次迁移和定位移动Agent都要与基站通信,对Home的依赖性性很强;③不支持Agent迁移的异步运行。

4.4 集中注册法

与基站法相似,在集中注册法中,整个移动Agent环境中也需要特殊的设置一台主机作为专用的通信服务器(Communicator),所有移动Agent的ID及其当前位置都记录于该服务器中。当移动Agent迁移成功时,需要立刻向Communicator注册其当前位置。当移动Agent之间进行通信时,对于通信发起方,其直接将接收方的ID和待发送消息发送至Communicator,由Communicator转交给通信接收方。若通信接收方当前正处于迁移状态,则将该消息暂存于消息队列中,直至通信接收方完成迁移并向Communicator注册,之后Communicator将保存的所有消息都转发给通信接收方。

集中注册法的工作原理如图4所示。

通过分析可知,该方法有以下优点:①集中注册法的通信效率较高;②专用服务器的引入实现了移动Agent之间的透明的通信;③减少了通信失效现象的发生。其缺点是:由于Communicator的使用,形成了限制系统性能的瓶颈,因为系统中所有的通信都必须通过服务器才能实现,所以这种集中式的通信方式必然会造成服务器的负担极重,一旦服务器出现异常情况,则必然导致整个系统陷入瘫痪。

5 通信失效问题

5.1 通信失效的定义

一般而言,移动Agent系统通过消息交换以实现Agent间通信[6]。但在移动Agent的通信环境中,由于Agent的自主移动特性,常会导致消息被发送到某一网络节点但接收者己经离开而无法收到该消息。这种因为通信主体物理位置发生变化而造成的通信不正常现象,我们称为移动通信失效[7]。

通信失效与网络和节点故障无关,是纯粹由Agent的移动造成的,它使得协作中的Agent不能及时得到协同信息,从而导致协作的失败甚至造成整个系统的崩溃,是移动Agent系统的致命缺陷。

5.2 通信失效解决方法的研究与分析

产生通信失效的原因在于,移动Agent在通信过程中位置发生了变化,造成发送方获得的是一个失效的地址。目前对于通信失效问题的解决有三种方案:鸵鸟法、预防法和检测法。

其中,鸵鸟法忽略问题的存在,不采取任何措施,无法提供可靠的通信,故很少被采用。

预防法被目前各种移动Agent通信算法普遍采用,具体可以分为两种,即同步法和Home存储转发法。同步法采用同步通信的方法从结构上避免通信失效的发生,虽能彻底解决通信失效问题,但代价太高,不仅会增加因同步带来的通信开销,而且会破坏移动Agent的自由移动性,属于“移动受限通信方式”。文献[8]的算法属于此类。Home存储转发法要求Home缓存所有的消息,然后再通过Push或Pull的方式转发给移动Agent。该方法虽然没有限制移动Agent的自由移动,属上“自由移动通信方式”,但却大大增加了Home的通信负担,使之成为系统性能的瓶颈,而且系统的通信总流量会加倍,造成通信延退较大。文献[9]的算法属于此类。

检测法是在通信失效发生后,采取其他方法最终将消息正确地传递给目标。检测法采用异步通信的方法,对移动Agent的移动不加任何限制,通信开销少,效率高,设计合理的情况下还可以解决消息追击问题。文献[10]使用了检测法。

综上所述,采用预防法控制复杂,代价高昂,效率低下;检测法既符合移动Agent自由移动的天性,又能保证通信的可靠性。

6 结论

随着Internet的发展,移动Agent作为Internet和移动计算应用与发展的催生物得到了越来越多的人的关注。而通信又是移动Agent系统的重要组成部分,为了能够有效的实现Agent之间的通信,有必要解决好通信过程中常见的通信技术问题。

参考文献:

[1] Darmoulh College.Agent-TCL[DB/OL].www.cs. darmoulh.edu,2000-10-22.

[2] IBM.Aglets Workbench[DB/OL].http: //www.trl.ibm.co.jp/aglets,1999-10-22.

[3] ObjectSpace.VoyagerCoreTechnology[DB/OL]./voyager,2000.

[4] 黄萍,曹阳.移动Agent系统中命名和寻址方案的分析与设计[J]. 武汉大学学报(理学版), 2002, 48(1): 55-58.

[5] 褚永丽.一种高效可靠的移动Agent 通信模型[D].长春:东北师范大学,2005.

[6] Tanenbaum AS, Van Steen M. Distributed Systems Principles and Paradigms[J].Prentice Hall Inc.,2002.57-66.

[7] Tao XP.Research on Internet based mobile Agent technology and application [D].Nanjing: Nanjing University,2001 (in Chinese with English abstract).

[8] 孙艳,刘弘.一种改进的移动Agent通信算法[J].信息技术与信息化,2006(4):104-105.

[9] 王继曾,满自斌.基于邮箱的移动Agent通信机制的改进算法[J].微计算机信息,2007,23(6):238-240.

[10] 李涛,李慧,等.一种Internet环境下移动Agent通信机制[J].微电子学与计算机,2005(07):42-45.

上一篇:基于WEB的视频直播系统的应用研究 下一篇:利用角色管理增强ORACLE数据库的安全性