移动代理的概念及技术架构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

移动代理的概念及技术架构

移动代理的概念

移动代理(Mo bile Ag e n t)是90年代中期刚刚兴起的一种分布式计算模型,目的是使程序的执行尽可能靠近数据,降低网络通讯开销,节省带宽,平衡负载,加快任务的执行,从而提高分布式系统的处理效率。

Agent的研究起源于人工智能领域。Agent是指模拟人类行为关系、具有一定智能并能够自主运行和提供相应服务的程序。与现在流行的软件实体(如对象、构件)相比,Agent粒度更大,智能化程序更高。随着网络技术的发展,可阻让Agent在网络中移动并执行,完成某些功能。利用资源同处一台主机和网络的优势,处理和使用这些资源,代表用户完成特定的任务,这就是移动代理(Mobile Agent)的基本思想。

移动Agent的概念是20世纪90年代由General Magic公司在其商业系统Telescript中提出来的。

移动Agent是一个能在异构的网络中自主地从一台主机迁移到另一台主机,并与其它Agent或资源交互的程序,实际上它是Agent 技术与分布式技术相结合的产物。移动Agent是一类特殊的软件Agent,它除了具有软件Agent的基本特性——自治性、响应性、主动性,还具有移动性,即它可以在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务。由于移动Agent可以在异构的软、硬件网络环境中自由移动,因此这种新的计算模式能动态适应变

化了的网络环境,有效地降低分布式计算中的网络负载、提高通信效率,并具有很好的安全性和容错能力。

移动Agent与传统的网络计算模式有着本质的区别。它不同于远程过程调用(RPC),这是因为移动Agent能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需要进行选择的。移动Agent也不同于一般的进程迁移,因为一般来说进程迁移不允许进程自己选择什么时候迁移以及迁移到哪里,而移动Agent 却可以在任意时刻进行移动,并且可以移动到它想去的任何地方。移动Agent 不同于Java语言中的Applet,因为Applet只能从服务器向客户机做单方向的移动,而移动Agent却可以在客户机和服务器之间进行双向移动。

移动代理是一种网络计算,是包含代码、数据和执行情景的一个程序,它能够自行选择运行地点和时机,根据具体情况中断自身的执行,从一个主机移动到另一个主机自动运行。就是说,移动代理执行中可以在任意挂起,把自己发送到另一主机,在新主机上从挂起点恢复运行,代表用户完成指定的任务,如检索、过滤和收集信息,并及时将有关结果返回。

移动代理的技术架构

移动Agent是Agent中的一种,它除了具备一般Agent所具有的共同特性之外还具有以下几个主要特点:

●可移动性

这是它和一般Agent的本质区别所在,移动Agent的移动经常会在异构

操作系统的机器之间持续迁移。由于移动的对象除了程序外还必须存有当前的运行状态信息和相应的数据,因此移动Agent能够在某一台机器上暂停执行,然后根据程序用户的要求或者在动态决定了迁移路线之后,从网络上一台机器迁移到另一台机器上再次运行。

●自治性

自治性是指代理与授权者不需要持续的网络连接和交互。自治性是移动代理模型的一个重要特性,它允许代理自主工作而不需要开放的TCP连接。移动代理本身携带其代码,具有自己的决策过程。

●持续性

当系统网络崩溃时,移动Agent能够不受影响地重新取得有关状态信息,透明地恢复计算,它的状态信息在网络上传输时是持续的。

●离线计算

即使用户没有接上网络,移动Agent也能继续执行分配给它们的任务并能在用户重新上网后把相应的执行结果适时地反馈给用户。

移动Agent系统结构

不同的移动Agent系统的体系结构各不相同,但几乎所有的移动Agent系统都包括两个部分:移动Agent和移动Agent服务设施(MA环境或MAE、MA服务器)。移动Agent服务设施基于Agent传输协议ATP(Agent Transfer Protoc01)实现Agent在主机问的转移,并为其分配执行环境和服务接口;Agent在服务设施中执行,通过ACL(Agent Communication Language)相互通信并访问服务设施提供的服务。如图2-3。

移动Agent服务设施为移动Agent提供安全、正确的运行环境,实现MA的移动、MA执行状态的建立、MA的启动、实施MA的约束机制、容错策略、安全控制、通信机制,并提供基本服务模块。

移动Agent的基本特征是能够在异构的网络节点间移动,并通过与服务设施和其它Agent协商,获取、提供服务来完成全局目标。因此移动Agent体系结构必须体现以下需求:.

(1)跨平台的语义一致性:移动。kgent移动过程中的主机可能基于不同的硬件和软件系统,在这些异构平台上具有相同语义的语言才能保证移动Agent行为的正确性。

(2)支持移动的语义:传统的负载均衡(Load Balance)也能够对软件进行调度,使之分布在不同主机上执行。移动Agent与之最大的区别在于移动Agent的移动是自主决策的结果,而负载均衡造成的程序转移对软件是透明和被动的。移动Agent移动的自主性体现在代码中具有实现转移的语义,类似Move To(next Host)这样的语句。转移语义与当前主机协商,并将控制权交给Agent服务设施,由服务设施

实现Agent的封装和转移。

(3)持久化(Persistence):移动Agent在转移过程中必须保存代码和当前运行状态才能在目标节点继续执行,移动Agent的异步性也要求保存Agent的任务求解结果。

(4)安全机制:移动性所产生的非确定性使安全性成为移动Agent 的一个重要问题,缺乏安全性会造成恶意Agent在网络中的泛滥或受到恶意主机的侵害。移动Agent的安全机制一方面保证自身不受到攻击,另一方面保证自身是非恶性的。

(5)移动Agem的规模:由于全部代码和状态在网络中传输,因此移动Agent应该限制于中小规模,否则将丧失网络资源方面的优势。

根据以上移动Agent系统的需求,移动Agent体系结构定义为以下相互关联的模块:安全代理、环境交互模块、任务求解模块、知识库、内部状态集、约束条件和路由策略(图2-4)

体系结构的最外层为安全代理,它是Agent与外界环境通讯的中介,执行Agent的安全策略,阻止外界环境对Agent的非法访问。Agent通过环境交互模块感知外部环境并作用于外部环境。环境交互模块实现ACL的语义,保证使用相同ACL的Agent和服务设施之间的正确通信和协商,而通信的内容与ACL无关。

Agent的任务求解模块包括Agent的运行模块及Agent任务相关的推理方法和规则。运行模块包括Agent的初始化程序和事件处理程序,前者在初始或移动到另一节点后启动事件处理线程,后者持续自主运行,感知外部环境的请求,并依据内部的规则和状态产生动作。Agent

相关文档
最新文档