论文部分内容阅读
摘要:计算机智能化和网络化进程促成了Agent技术的迅速崛起和广泛应用,移动Agent技术是为解决复杂、动态、分布式智能应用而提出的一种全新的计算手段,是计算机软件技术的又一次深刻变革。移动Agent(mobile Agent)则是具有移动性的Agent。
关键词:软件Agent、移动Agent
引言
随着人工智能和计算机信息时代的飞速发展,特别是近几年来计算机网络及其相关技术的普遍应用,网络已经成为目前人们发布和获取信息的基本平台。在这样的背景下,计算已经不再像以前那样仅仅局限于网络中的几台服务器上,而是要求所有计算机都融入到分布式计算这一大环境中来,这就引发了分布式计算新一轮的研究热潮,这期间最引人注目的就是智能软件Agent。简单地说,移动Agent是一个能在异构网络中自主地从一台主机迁移到另一台主机,并与其他Agent或資源交互的程序。移动Agent是一种新的网络计算技术,它能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化了的网络环境,并具有很好的安全性和容错能力。为有效地进行数据库访问提供了一种新思路和新方法。移动Agent实质上是一个封装代码、运行状态和数据的计算实体,是可以在执行过程中,有目的地、自治的在网络中移动,利用与分布资源的局部交互而完成分布任务的软件实体。传统客户机与服务器问的交互需要连续的通信支持;而移动Agent可以迁移到服务器上,与之进行高速的本地通信,这种通信不再占用网络资源。
移动Agent
软件Agent技术的诞生和发展是人工智能和网络技术相结合的产物。从20世纪60年代起,传统的人工智能技术开始致力于对知识表达、智能推理、机器学习等领域的研究,这些研究成果在计算机软件中的应用使得软件有了一定程度上的主动性,并在自主判断和行为选择上有了一定的智能性。目前,人工智能围绕知识这一中心所进行的研究和应用正在促成知识工程这一新兴学科的生成,它涉及到知识的获取、存储和管理等一系列课题。随着Internet应用的逐步深入,特别是信息搜索、分布式计算以及电子商务的蓬勃发展,人们越来越希望在整个Internet范围内获得最佳的服务,渴望将整个网络虚拟成为一个整体,使软件Agent能够在整个网络中自由移动,移动Agent的概念随即孕育而生。
移动Agent,即一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的软件实体。移动Agent是一类特殊的软件Agent,它除了具有软件Agent的基本特性--自治性、响应性、主动性和推理性外,还具有移动性,即它可以在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务。这种新的计算模式能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化了的网络环境,并具有很好的安全性和容错能力。
移动Agent可以看成是软件Agent技术与分布式计算技术相结合的产物,它与传统网络计算模式有着本质上的区别。移动Agent不同于远程过程调用(RPC),这是因为移动Agent能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需要进行选择的。移动Agent也不同于一般的进程迁移,因为一般来说进程迁移系统不允许进程自己选择什么时候迁移以及迁移到哪里,而移动Agent却可以在任意时刻进行移动,并且可以移动到它想去的任何地方。移动Agent更不同于Java语言中的Applet,因为Applet只能从服务器向客户机做单方向的移动,而移动Agent却可以在客户机和服务器之间进行双向移动。
虽然目前不同移动Agent系统的体系结构各不相同,但几乎所有的移动Agent系统都包含移动Agent(简称MA)和移动Agent服务设施(简称MAE)两个部分,如图所示。
图 移动Agent系统
MAE负责为MA建立安全、正确的运行环境,为MA提供最基本的服务(包括创建、传输、执行),实施针对具体MA的约束机制、容错策略、安全控制和通信机制等。MA的移动性和问题求解能力很大程度上取取于MAE所提供的服务,一般来讲,MAE至少应包括事务服务 实现移动Agent的创建、移动、持久化和执行环境分配; 事件服务 包含Agent传输协议和Agent通信协议,实现移动Agent间的事件传递; 目录服务 提供移动Agent的定位信息,形成路由选择; 安全服务 提供安全的执行环境; 应用服务 提供面向特定任务的服务接口。通常情况下,一个MAE只位于网络中的一台主机上,但如果主机间是以高速网络进行互联的话,一个MAE也可以跨越多台主机而不影响整个系统的运行效率。MAE利用Agent传输协议(Agent Transfer Protocol,ATP)实现MA在主机间的移动,并为其分配执行环境和服务接口。MA在MAE中执行,通过Agent通信语言(Agent Communication Language,ACL)相互通信并访问MAE提供的各种服务。移动Agent是一个全新的概念,虽然目前还没有统一的定义,但它至少具有如下一些基本特征:身份唯一性 移动Agent必须具有特定的身份,能够代表用户的意愿。 移动自主性 移动Agent必须可以自主地从一个节点移动到另一个节点,这是移动Agent最基本的特征,也是它区别与其他Agent的标志。 运行连续性 移动Agent必须能够在不同的地址空间中连续运行,即保持运行的连续性。具体说来就是当移动Agent转移到另一节点上运行时,其状态必须是在上一节点挂起时那一刻的状态。
基于移动Agent的分布计算模型
移动Agent天生就具有分布式的特点,一个基于移动Agent的应用由一组移动Agent构成,每一个Agent根据自身的目标和环境的状况移动到拥有计算所需资源的节点上进行计算。
移动Agent的出现使得计算机之间的通信不再是一台主机调用位于另一台主机上的服务,而是向其它计算机提供可执行的计算过程,通过网络传送的消息也不再仅仅局限于数据,而是包含计算过程及其所处状态的计算实体。在移动Agent计算模型中,计算过程及其相应状态在接收方计算机中完全代表了发送方的所有请求,因此在这种情况下网络的可靠性变得不再那么重要,这是因为:1、移动Agent无需消耗过多的网络带宽,它仅仅在移动时使用带宽; 2、移动Agent在移动后将继续执行,即使此时已经失去了与创建者之间的网络连接。
采用移动Agent技术能够较大地减轻网络负载,目前的分布式系统通常过多地依赖于网络通信协议,这些协议在完成任务的过程中需要进行多次交互,从而很容易导致网络拥塞,移动Agent可以封装一个完整的会话过程,然后自主移动到目的主机上去进行本地交互,此外,当远程主机需要进行数据处理时,采用移动Agent还可以避免大量数据在网络上的传输,其基本思路是将计算移到数据上去进行,而不是把数据移到计算中来。因此,如果一个客户机需要与网络上特定服务器进行大量的通信,最好的办法就是实现一个使用移动Agent的系统,该Agent能够自动移动到远程服务器上,执行计算任务并返回,这样可以减少网络拥塞。整个计算过程中客户机没有必要在网络中存在,仅仅只有在移动Agent返回时,客户机才需要连接到网络上。
移动Agent技术给分布式系统的设计、实现和维护都带来了新的活力,它有着许多传统分布式计算模型无法比拟的优势:1、移动Agent能较大地减轻网络上的数据流量2、移动Agent能以异步的方式自主运行3、移动Agent具有较强的应变能力4、移动Agent有利于并行处理5、移动Agent具有天然的异构性6、移动Agent具有很强的健壮性和容错能力
总之,在网络逐步走向一体化的时代,移动Agent技术较之于传统的分布式技术有着非常明显的优势。
小结
近年来,移动Agent技术无论在理论研究还是在实际应用中都取得了很大的进步,人们开始对Agent有了一个较为清晰的认识,并随之产生了一些成熟的移动Agent开发平台,Voyager就是其中的一个典型代表,它的出现极大地推动了移动Agent的应用范围。21世纪是人类社会全面实现信息化的时代,随着计算机网络和人工智能技术的进一步发展,移动Agent必将揭开信息革命的新篇章。
参考文献:
(1) 陶剑文. 基于移动Agent的个性化数字学习模型研究. 计算机仿真, 2007,24(O2).
(2)周志坚. 基于移动Agent技术的试题数据检索系统的设计,科技咨询导报 2007,07.
(3)黄艳,朱会东. 一种基于移动Agent的查询处理策略.计算机工程, 2007,33(1).
(4)张海玉,冯秀芳. 移动Agent在无线传感器网络中的应用. 电脑开发与应用,2007,2O(1).
关键词:软件Agent、移动Agent
引言
随着人工智能和计算机信息时代的飞速发展,特别是近几年来计算机网络及其相关技术的普遍应用,网络已经成为目前人们发布和获取信息的基本平台。在这样的背景下,计算已经不再像以前那样仅仅局限于网络中的几台服务器上,而是要求所有计算机都融入到分布式计算这一大环境中来,这就引发了分布式计算新一轮的研究热潮,这期间最引人注目的就是智能软件Agent。简单地说,移动Agent是一个能在异构网络中自主地从一台主机迁移到另一台主机,并与其他Agent或資源交互的程序。移动Agent是一种新的网络计算技术,它能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化了的网络环境,并具有很好的安全性和容错能力。为有效地进行数据库访问提供了一种新思路和新方法。移动Agent实质上是一个封装代码、运行状态和数据的计算实体,是可以在执行过程中,有目的地、自治的在网络中移动,利用与分布资源的局部交互而完成分布任务的软件实体。传统客户机与服务器问的交互需要连续的通信支持;而移动Agent可以迁移到服务器上,与之进行高速的本地通信,这种通信不再占用网络资源。
移动Agent
软件Agent技术的诞生和发展是人工智能和网络技术相结合的产物。从20世纪60年代起,传统的人工智能技术开始致力于对知识表达、智能推理、机器学习等领域的研究,这些研究成果在计算机软件中的应用使得软件有了一定程度上的主动性,并在自主判断和行为选择上有了一定的智能性。目前,人工智能围绕知识这一中心所进行的研究和应用正在促成知识工程这一新兴学科的生成,它涉及到知识的获取、存储和管理等一系列课题。随着Internet应用的逐步深入,特别是信息搜索、分布式计算以及电子商务的蓬勃发展,人们越来越希望在整个Internet范围内获得最佳的服务,渴望将整个网络虚拟成为一个整体,使软件Agent能够在整个网络中自由移动,移动Agent的概念随即孕育而生。
移动Agent,即一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的软件实体。移动Agent是一类特殊的软件Agent,它除了具有软件Agent的基本特性--自治性、响应性、主动性和推理性外,还具有移动性,即它可以在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务。这种新的计算模式能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化了的网络环境,并具有很好的安全性和容错能力。
移动Agent可以看成是软件Agent技术与分布式计算技术相结合的产物,它与传统网络计算模式有着本质上的区别。移动Agent不同于远程过程调用(RPC),这是因为移动Agent能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需要进行选择的。移动Agent也不同于一般的进程迁移,因为一般来说进程迁移系统不允许进程自己选择什么时候迁移以及迁移到哪里,而移动Agent却可以在任意时刻进行移动,并且可以移动到它想去的任何地方。移动Agent更不同于Java语言中的Applet,因为Applet只能从服务器向客户机做单方向的移动,而移动Agent却可以在客户机和服务器之间进行双向移动。
虽然目前不同移动Agent系统的体系结构各不相同,但几乎所有的移动Agent系统都包含移动Agent(简称MA)和移动Agent服务设施(简称MAE)两个部分,如图所示。
图 移动Agent系统
MAE负责为MA建立安全、正确的运行环境,为MA提供最基本的服务(包括创建、传输、执行),实施针对具体MA的约束机制、容错策略、安全控制和通信机制等。MA的移动性和问题求解能力很大程度上取取于MAE所提供的服务,一般来讲,MAE至少应包括事务服务 实现移动Agent的创建、移动、持久化和执行环境分配; 事件服务 包含Agent传输协议和Agent通信协议,实现移动Agent间的事件传递; 目录服务 提供移动Agent的定位信息,形成路由选择; 安全服务 提供安全的执行环境; 应用服务 提供面向特定任务的服务接口。通常情况下,一个MAE只位于网络中的一台主机上,但如果主机间是以高速网络进行互联的话,一个MAE也可以跨越多台主机而不影响整个系统的运行效率。MAE利用Agent传输协议(Agent Transfer Protocol,ATP)实现MA在主机间的移动,并为其分配执行环境和服务接口。MA在MAE中执行,通过Agent通信语言(Agent Communication Language,ACL)相互通信并访问MAE提供的各种服务。移动Agent是一个全新的概念,虽然目前还没有统一的定义,但它至少具有如下一些基本特征:身份唯一性 移动Agent必须具有特定的身份,能够代表用户的意愿。 移动自主性 移动Agent必须可以自主地从一个节点移动到另一个节点,这是移动Agent最基本的特征,也是它区别与其他Agent的标志。 运行连续性 移动Agent必须能够在不同的地址空间中连续运行,即保持运行的连续性。具体说来就是当移动Agent转移到另一节点上运行时,其状态必须是在上一节点挂起时那一刻的状态。
基于移动Agent的分布计算模型
移动Agent天生就具有分布式的特点,一个基于移动Agent的应用由一组移动Agent构成,每一个Agent根据自身的目标和环境的状况移动到拥有计算所需资源的节点上进行计算。
移动Agent的出现使得计算机之间的通信不再是一台主机调用位于另一台主机上的服务,而是向其它计算机提供可执行的计算过程,通过网络传送的消息也不再仅仅局限于数据,而是包含计算过程及其所处状态的计算实体。在移动Agent计算模型中,计算过程及其相应状态在接收方计算机中完全代表了发送方的所有请求,因此在这种情况下网络的可靠性变得不再那么重要,这是因为:1、移动Agent无需消耗过多的网络带宽,它仅仅在移动时使用带宽; 2、移动Agent在移动后将继续执行,即使此时已经失去了与创建者之间的网络连接。
采用移动Agent技术能够较大地减轻网络负载,目前的分布式系统通常过多地依赖于网络通信协议,这些协议在完成任务的过程中需要进行多次交互,从而很容易导致网络拥塞,移动Agent可以封装一个完整的会话过程,然后自主移动到目的主机上去进行本地交互,此外,当远程主机需要进行数据处理时,采用移动Agent还可以避免大量数据在网络上的传输,其基本思路是将计算移到数据上去进行,而不是把数据移到计算中来。因此,如果一个客户机需要与网络上特定服务器进行大量的通信,最好的办法就是实现一个使用移动Agent的系统,该Agent能够自动移动到远程服务器上,执行计算任务并返回,这样可以减少网络拥塞。整个计算过程中客户机没有必要在网络中存在,仅仅只有在移动Agent返回时,客户机才需要连接到网络上。
移动Agent技术给分布式系统的设计、实现和维护都带来了新的活力,它有着许多传统分布式计算模型无法比拟的优势:1、移动Agent能较大地减轻网络上的数据流量2、移动Agent能以异步的方式自主运行3、移动Agent具有较强的应变能力4、移动Agent有利于并行处理5、移动Agent具有天然的异构性6、移动Agent具有很强的健壮性和容错能力
总之,在网络逐步走向一体化的时代,移动Agent技术较之于传统的分布式技术有着非常明显的优势。
小结
近年来,移动Agent技术无论在理论研究还是在实际应用中都取得了很大的进步,人们开始对Agent有了一个较为清晰的认识,并随之产生了一些成熟的移动Agent开发平台,Voyager就是其中的一个典型代表,它的出现极大地推动了移动Agent的应用范围。21世纪是人类社会全面实现信息化的时代,随着计算机网络和人工智能技术的进一步发展,移动Agent必将揭开信息革命的新篇章。
参考文献:
(1) 陶剑文. 基于移动Agent的个性化数字学习模型研究. 计算机仿真, 2007,24(O2).
(2)周志坚. 基于移动Agent技术的试题数据检索系统的设计,科技咨询导报 2007,07.
(3)黄艳,朱会东. 一种基于移动Agent的查询处理策略.计算机工程, 2007,33(1).
(4)张海玉,冯秀芳. 移动Agent在无线传感器网络中的应用. 电脑开发与应用,2007,2O(1).