快好知 kuaihz订阅看过栏目

 

随着Internet应用的逐步深入,特别是信息搜索、分布式计算以及电子商务的蓬勃发展,人们越来越希望在整个Internet范围内获得最佳的服务,渴望将整个网络虚拟成为一个整体,使软件Agent能够在整个网络中自由移动,移动Agent的概念随即孕育而生。

移动Agent

是一种特殊的Agent,它除了具有Agent的基本属性以外,移动性是其最重要的特点,它可以从一台机器通过网络移动到另外一台机器运行,并根据需要克隆或生成子Agent,子Agent具有同父Agent相同的性质.移动Agent主要特点有:

⑴移动性能:移动Agent可以在异构网络和分布式计算机环境中自主、自动地迁移,携带信息或寻找适当的信息资源,进行就地的信息处理,代理用户完成信息传递、网页查询、数据和知识发现、信息变换等多种任务.

⑵异构和异步性能:移动Agent可以支持异构计算机软件、硬件环境,能进行异步通讯和计算.

⑶降低网络通讯费用:传送大量的原始信息不但费时还容易阻塞网络,如果将Agent移动到信息存储的地方,进行局部搜索和选择后,将选中的信息通过网络传送给用户,会大大减少远程计算机网络的连接费用.

⑷分布和并行性:移动Agent提供了一个独特的分布计算体系结构,为完成某项任务,用户可以创建多个Agent,将它们同时在相同或不同的节点上运行,可将单一节点的负荷分散到网络的多个节点上,使小系统具有处理大规模、复杂问题的能力.

⑸智能化路由:移动Agent具有根据目标、网络通讯能力和服务器负载等因素,动态地规划下一步操作的能力.智能化路由能很好地优化网络和计算资源,实现负载均衡,提高问题的求解速度,避免对资源的盲目访问.

引擎

移动Agent引擎也称为Agent语言解释器,Agent在解释器的支持下工作,在用户计算机上的引擎可以容纳多个地点的Agent,在服务器上的引擎可以容纳几千个地点和Agent.引擎可以通过以下三个应用程序接口(APIs)来利用其主机的资源,它们分别是存储API、运送API和外部API.存储API使引擎访问固定内存,固定内存确保计算机发生故障时仍能保存地点和Agent;运送API使引擎访问通信媒体,通信媒体是引擎运送Agent到其它引擎所必需的;外部应用API使得用移动Agent语言编写的部分应用程序能与其它程序连接起来.

移动Agent通信协议

移动Agent之间进行合作的基础是交互,而通信是实现交互的一种重要的方式和手段,移动Agent的协议组是使两个引擎间能经常相互通信,引擎间通信的目的是为了运送Agent,涉及Agent通信语言(ACL:AgentCommunicationLanguage)、通信机制、本体论等多方面的内容.移动Agent之间通信的消息必须具有良好定义的语法和语义,提供某些机制确保Agent之间安全、可靠地进行通信,支持同步或异步、一对一、一对多或广播通信.

Agent在移动Agent系统的移动过程中,运行状态的保存和恢复是至关重要的,它使得移动Agent系统能够高效、合理地利用网络范围内的系统资源,从而保证整个系统高效迅捷地运行,使得系统的计算吞吐量大幅度提高.也就是说,Agent的移动是资源驱动的,它要保证Agent时刻享有最有效的资源,从而保证这个任务的高效,而运行状态的保存与恢复是这种要求的前提,因为Agent的最终执行结果是在一系列移动节点上运行的中间结果的积累,如果每一次移动都从头开始,不仅造成网络和系统资源的浪费,而且使得整个作业效率大幅下降.尤其对于计算密集作业来说,如果Agent系统不具有运行状态的保存和恢复功能的话,整个移动Agent系统的优越性将无从谈起.

执行环境

流行的分布式计算技术都基于Client/Server模式,通过远程过程调用或消息传递等方式进行远程通信,比较适合稳定的网络环境应用场合。随着新型网络应用(如移动计算)的出现,Client/Server模式的缺点日益明显,远远不能适应当今快速多变的网络应用发展,移动Agent技术集智能Agent、分布式计算、通信技术于一体,提供了一个强大的、统一的和开放的计算模式,更适合于提供复杂的网络服务(如复杂的Internet信息搜索、Internet智能信息管理等)。

移动Agent是具有移动特性(Mobility)的智能Agent,它可以自主地在网络上从一台主机移动到另一台主机,并代表用户完成指定的任务,如检索、过滤和收集信息,甚至可以代表用户进行商业活动。

MA技术是分布式技术与Agent技术相结合的产物,它除了具有智能Agent的最基本特性——反应性、自治性、导向目标性和针对环境性外,还具有移动性[1]。

具体特性表现在如下几个方面:

⑴节约网络带宽、克服网络延迟。移动Agent的本质是将计算移动到数据端,直接在数据端进行本地处理,只返回最终结果,从而避免了大量中间数据在通信两端的传输。移动Agent一次可以携带多个服务请求移动到服务器端进行本地调用,避免了多次远程调用,从而节省了每次远程调用的网络延迟。因此在处理的数据量大、通信两端交互频繁、带宽不足的情况下,使用移动Agent技术可以有效地节省网络负载。

⑵支持实时远程交互。在一些远程控制系统中,如工业控制、海底探测器控制、外太空探测器控制、有毒环境中的监控,实时性非常重要,但是网络的延迟使远程实时控制变得不太可能。将移动Agent发送到远端系统,代替人在远端完成各种控制活动,可以从根本上解决网络延迟问题。

⑶封装网络协议。任何网络程序都是建立在特定的协议之上的,网络程序的开发要求程序设计者深刻地理解低层的网络协议;随着Internet的发展,新的协议和数据格式不断地产生,随着网络协议的升级,

程序需要重新编写、编译,这些都给网络应用的开发和维护带来困难。移动Agent系统是一种中间件,位于操作系统和应用程序之间,封装了低层网络协议,提供移动、通信、容错和安全等基本功能,开发人员无须了解低层实现即可开发网络应用。当网络协议升级时,只需修改移动Agent系统中相关的功能实现而无需修改MA应用程序。

系统是一种中间件,位于操作系统和应用程序之间,封装了低层网络协议,提供移动、通信、容错和安全等基本功能,开发人员无须了解低层实现即可开发网络应用。当网络协议升级时,只需修改移动Agent系统中相关的功能实现而无需修改MA应用程序。

⑷支持异步自主执行。传统分布式系统中异步通信机制(如异步消息队列)可以异步地处理多个请求,但要求提出请求的客户端必须始终在线等待并响应请求的回答,这对移动客户而言是不可行的。使用移动Agent技术,用户可以将整个任务而不是单个请求提交给多个Agent去执行,这些Agent被发送到网上之后,可以独立于发送它们的程序,异步地、自主地、协作地完成任务,它们的生命周期可以长于创建它们的程序。

⑸支持离线计算(断连操作)。由于带宽是一种昂贵的资源,要求移动设备(笔记本电脑、PDA、手机等)始终保持网络连接在经济上是不可行的;无线通信的特性要求系统具有离线计算的能力,移动设备连接在技术上也是不可行的。移动Agent技术可以解决这个问题。用户派出Agent之后,可以断开网络连接,Agent在网络上自主地运行,当Agent完成任务之后,通过转接机制(Docking)监视用户是否在线,当它发现用户在线时,就返回计算结果。

⑹支持平台无关性。移动Agent的运行只和其运行环境有关,和具体的网络结构、网络协议、计算机设备、操作系统无关,只要网络节点上装有移动Agent运行环境,移动Agent就可以实现跨平台的移动和运行。如果所有的移动Agent系统都遵循移动Agent系统的互操作标准,就可以实现MA在任意移动Agent系统中的移动、交互和通信,真正实现平台的无关性,即所谓的“编译一次,到处移动”。

⑺具有动态适应性。移动Agent和其运行环境进行交互,感知环境的变化,并自主地、快速地作出反应,使整个系统始终保持在最优状态。

⑻提供个性化服务。来自不同的民族和地区,有着不同的文化背景,他们对信息的需求和使用方式有着很大的差异,这就要求Internet进行个性化服务。使用移动Agent技术,用户可以根据服务器端提供的低层操作函数,编写满足自己特定需要的Agent,然后发送到服务器端运行,利用服务器端的数据资源或计算资源为不同的用户服务,有效地增加服务器功能的伸缩性。

⑼增强应用的强壮性和容错能力。移动Agent支持离线计算,其反应性使之能及时地感知网络节点的失效,其自主性可以使它自主地处理并修正错误,更容易建立容错能力强的分布式系统。例如,在一个网络节点失效之前,在其上工作的移动Agent可以立即感知,并完成相应的备份工作,然后移动到其他节点,继续原来的工作。

移动Agent系统的组成不同的移动Agent系统的体系结构各不相同,但几乎所有的移动Agent系统都包括如下两部分:Agent和MA环境(MAE或称MA服务器、MA主机(MAH)、MA服务设施、Place、Context、Location)。MA环境为Agent提供安全、正确的运行环境,实现MA的移动、MA执行状态的建立、MA的启动、实施MA的约束机制、容错策略、安全控制和通信机制,并提供基本服务模块,如事件服务(EventService)、黄页服务(YellowPageService)、事物服务(TransactionService)和域名服务(DNS)等。1台主机上可以有1个或多个MAE。通常情况下,1个MAE只位于1台主机上,但当主机之间是以高速、持续、稳定可靠的网络连接时,1个MAE可以跨越多台主机而不影响整个系统的运行效率。Agent可以分为移动Agent和服务Agent。移动Agent可以从1个MAE移动到另1个MAE,在MAE中执行,并通过Agent通信语言(ACL)与其他MA通信或访问MAE提供的服务。移动Agent的主要作用是完成用户指定的任务,需要实现移动语义(即目标主机或路由的选择)、安全控制(保护自身)、与外界(MA服务环境以及其他Agent)的通信等功能。服务Agent不具有移动的能力,其主要功能是向本地的Agent或来访的Agent提供服务。通常,1个MAE上驻有多个服务Agent,分别提供不同的服务,如文件服务、黄叶服务等系统级服务,定票服务、数据库服务等应用级服务。由于系统Agent是不移动的,并且只能由它所在MAE的管理员启动和管理,因此保证服务Agent不会是“恶意的”。来访的移动Agent不能直接访问系统资源,只能通过服务Agent提供的接口访问“受控制的(Controlled)”、“安全的(Secure)”的服务,这可以避免恶意的Agent对主机的攻击,是移动Agent系统经常采用的安全策略。另外,采用Java提供的C语言接口,服务Agent可以提供和其他软件LegacySoftware)的交互接口,很容易将非Agent系统集成到Agent系统中。

投稿
非常不爽,删了吧! 相关词条:其他 并行性 分布式技术 网络带宽 消息队列 客户端 网络节点 域名服务 安全策略