移动Agent系统涉及的研究和应用领域较为广泛,技术也较为复杂,这里仅就其关键技术和典型应用进行简单介绍。
(一)移动Agent的关键技术
在移动Agent系统的研究和应用中,移动、通信、安全性、容错性、协作模型等都是需要解决的一些关键技术。
1.移动
移动Agent为了完成用户指定的任务,往往需要在不同MAE之间移动,而要实现这种移动,需要解决的关键问题是移动机制和移动策略。
移动机制主要研究移动的实现方式。目前,MA的移动机制可分为两大类:一类是将MA的移动线路、移动条件隐含在MA的代码中;另一类是将MA的移动线路、移动条件从MA的代码中分离出来,用所谓的“旅行计划”来表示。MA的移动策略是指根据MA的任务、当前网络负载、服务器负载等外界环境,动态地为其规划移动路径,使MA能在开销最小的情况下,最快、最好地完成任务。移动策略又可分为静态路由策略和动态路由策略。在静态路由策略中,MA需要访问的节点及其访问次序都是在MA运行之前,由MA的设计者确定好的。在动态路由策略中,MA需要访问的节点及其访问次序是无法在MA运行之前预料的,由MA根据运行过程中任务的执行情况自主决定。动态路由策略的实现方法是,先由用户指定一个初始路由表,MA在按照该路由表移动的过程中再根据环境变化自主地去修改该路由表。这体现了MA的自主性和反应性。
2.通信
移动Agent通信是移动Agent之间进行交互的基础。移动Agent系统中包含的通信关系有:UA与SA之间的通信,UA与UA之间的通信等。常用通信方法主要包括消息传递、远程过程调用RPC和Agent通信语言ACL等。
Agent通信语言(Agent Communication Language,ACL)是实现移动Agent通信的一种高级方式,适用于各种类型的移动Agent以及移动Agent与环境之间的通信。KQML和XML是两种具有发展潜力的通信语言。其中,KQML主要适用于知识处理领域,XML主要适用于Internet环境。
3.安全性
Agent系统的安全性是Agent技术能否成功应用的关键,也是移动Agent系统中最重要、最复杂的一个问题。Agent系统的安全性主要包括主机的安全性、移动Agent自身的安全性和移动Agent之间通信的安全性三方面。
主机的安全性是指如何保护主机免受恶意Agent的攻击。常用的主机安全检测技术包括:
(1)身份验证。即对访问主机的MA,检查其是否来源于可信的地方,身份验证失败者被禁止访问主机。数字签名是一种常用的身份验证技术。
(2)代码验证。即对访问主机的MA,检查其是否含有被禁止执行的动作,代码验证失败者被拒绝执行。
(3)授权验证。即对访问主机的MA,检查其对主机资源的各种访问许可,包括其访问资格、使用次数、存取操作的类型等。
(4)付费检查。即对访问主机的MA,检查其付费意愿和付费能力。
移动Agent自身的安全性是指如何保护Agent免受恶意主机的攻击和如何保护Agent免受恶意Agent的攻击。
Agent之间通信的安全性是指如何保证Agent在传送消息和远程执行时的安全和完整。常用的安全性技术有加密技术、身份验证技术(如数字签名)、代码验证技术等。
4.容错性
移动Agent的容错性是指当其运行环境出现某些故障时,移动Agent还能正常运行。常见的故障有服务器异常、网络故障、目标主机关机、源主机长时间无响应等。移动Agent系统容错的基本原理是采用冗余技术。常用的冗余技术包括以下三种:(www.xing528.com)
(1)任务求解的冗余。即创建多个MA,分别求解相同的任务,最后根据所有或部分求解结果,并结合任务的性质决定任务的最终结果。
(2)集中式冗余。即将某个主机作为冗余服务器,保存MA的原始备份,并跟踪MA的求解过程。
(3)分布式冗余。即将容错的责任分布到网络中多个非固定的节点中,这些节点由冗余分配策略来决定。
5.协作模型
协作也是移动Agent系统最基本的一种行为。最常见的协作关系是服务Agent与移动Agent之间的协作,以及服务Agent与服务Agent之间的协作。如果按照空间耦合(即参与协作的Agent共享名字空间)和时间耦合(即参与协作的Agent采用同步机制)的标准,协作模型可以分为以下四类:
(1)直接协作模型。即参与协作的Agent之间通过直接发送消息进行协作。由于发送和接收消息者都彼此知道对方,因此它是空间耦合的。又由于消息的发送和接收必须同步,因此它又是时间耦合的。
(2)面向会见的协作模型。即参与协作的所有Agent都聚集在同一个会见地点进行通信、交互。由于参与协作者不必知道对方的名字,因此它是非空间耦合的。由于参与协作者必须到达指定的地点进行同步交互,因此它又是时间耦合的。
(3)基于黑板的协作模型。即参与协作的Agent共同使用一个称为黑板的消息存储库来存取消息。由于协作者事先需要知道消息的标志,因此它是空间耦合的。又由于写入和读取操作不需要同步,因此它又是非时间耦合的。
(4)类Linda模型。即参与协作的Agent共同使用一个被称为元组空间(即一种类似于黑板的结构)的消息存储库来存取消息。在元组空间中,所有消息都以元组来表示,并且对消息的检索采用联想的方式。由于参与协作者不需要共享任何信息,因此它既是非空间耦合的,又是非时间耦合的。
(二)移动Agent平台和应用
目前,国际上较具影响的商业性移动Agent系统至少有数十种。这些平台对移动Agent系统的研究、开发和应用起到了重要的推动作用。
1.语言和平台简介
理论上,移动Agent可以用任何语言编写(如C++、Java等),并可在任何机器上运行。但考虑到移动Agent本身需要不同的软、硬件环境支持,因此最好选择一种跨平台性能好的语言,或者在独立于具体语言的平台上进行开发。Java是目前开发移动Agent的理想语言,因为经编译后的Java二进制代码可以在任何具有Java解释器的系统上运行。
目前较有影响的移动Agent系统,按照开发语言分为基于Java语言的移动Agent系统和基于非Java语言的移动Agent系统两大类。基于Java语言的移动Agent系统的典型代表是IBM公司的Aglet,基于非Java语言的移动Agent系统的典型代表是GeneralMagic公司的Telescript。Aglet是基于Java的第一个商业化移动Agent系统,Telescript是基于非Java的第一个商业化移动Agent系统。但Telescript的后期版本完全改用Java编写,并改名为Odyssey。
2.应用介绍
移动Agent目前已被广泛应用在移动计算、电子商务、网络管理、智能搜索引擎、工作流管理、并行计算、组件技术等诸多领域。
以电子商务为例,移动Agent的移动性和自主性为网络环境,尤其是Internet环境下的电子商务应用提供了很多潜在的优点。目前,基于Agent的电子商务已成为一个新的研究领域。在基于Agent的电子商务中,Agent可以代表其所有者的利益参与商务活动。其中,代表消费者的Agent可以自主地移动到多个电子市场,寻找需要的商品、查询商品的价格、同供应商进行价格协商等;代表供应商的Agent负责市场的管理和产品的销售等。这样就形成了一种电子化的商务活动。
【注释】
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。