摘要:随着INTERNET的进一步发展,分布式应用的开发越来越受到人们的重视。而现有的几种分布计算技术的不足也逐渐显露。新的分布计算技术-基于Mobile Agent的分布计算的出现给人们带来了新的发展。本文以三菱公司基于Java语言的Mobile Agent系统Concordia为原型,讨论了其体系结构及其Agent的移动实现问题。

  一、概述

  随着Internet的不断壮大,分布计算技术越来越受到人们的重视并得到了快速的发展,逐步形成了基于过程的分布计算技术、基于对象的分布计算技术和基于Code-on-demand的分布计算技术等几种主流技术。而Mobile Agent的出现,即作为一种未来的分布计算模式受到了各有关研究人员的重视并逐步成为当今计算机技术研究的热点之一。[1]但是,在基于Mobile Agent分布计算技术的研究方面,由于理解不同、缺乏相关的标准和规范作为有力的指导,不同的研究机构在研究内容、指导理论和研究方法上都还存在很大的差异。笔者使用了由日本三菱公司开发的Concordia软件包,觉得是目前一个比较有代表性的Mobile Agent系统,现分析其体系结构及其迁移的实现如下。

  一般情况下,一个Mobile Agent 系统至少应该包含Mobile Agent和Mobile Agent Server两部分。Mobile Agent通过Mobile Agent server实现其在网络上的移动和相应动作;而Mobile Agent server为Mobile Agent 的移动和执行提供必要的执行环境以及相应的发射、接受、恢复、安全管理和服务调用等功能或服务。为了确保Mobile Agent能够顺利地在网络上迁移并完成相应的功能,Mobile Agent Server至少应能够为Mobile Agent提供以下几个主要的服务:

  1 生命周期管理:即为Mobile Agent的创建、发送、传输、接收和执行等提供必要的条件;

  2 目录服务:提供统一的命名服务,使得Agent能够在网络上准确地找到所需的服务并加以利用;

  3 事件服务:为Agent提供一种通讯机制,使得能够和其它Agent或应用系统进行交互,为Agent之间的相互协作提供必要的条件;

  4 持续性服务:通过相应的机制确保Agent执行的持续性。使得Agent在到达目的地之后或者出现系统、网络崩溃等意外时,能够准确地重新启动;

  5 安全保障:利用多种途径保障整个系统的安全,包括Agent的安全、服务器的安全等。

  二、Concordia体系结构

  Concordia是一个基于Java语言、能够高效开发和管理各种Mobile Agent 应用的完整框架,它基本上包括了上述的所有特性。该框架中包含了若干以Java语言完成的部件,这些组件能相互结合,为Mobile Agent 应用的开发和管理提供完美的环境。Concordia的体系结构如图一所示,图中各部件的主要功能和职责如下:[2]

  管理员:它主要负责整个Concordia网络的管理。它管理着Concordia 所提供的所有服务,并能与这些服务协同javascript:tagshow(event, '%B9%A4%D7%F7');" href="javascript:;" target=_self>工作。对它的操作主要通过其用户界面来完成。

  Concordia服务器:是安装并运行在网络各Concordia 节点上所有构件的总称。在Concordia 中,一个Mobile Agent 系统至少应该包括一个Java虚拟机(JVM),一个Concordia Server和一个Mobile Agent。一般情况下,Mobile Agent系统都会有多个Concordia Server同时运行在网络的不同节点上。Concordia Server主要包含以下几个构件:

  Agent管理器:它为Agent在网络上的传送和接收提供了必要的基础设施;管理着Agent的生命周期,为Agent的执行提供一个完整的环境。其主要功能有以下几点:

  l 提供基本的迁移功能:使得Agent的代码和数据总是能够准确的到达其目的地;

  2 为Agent的执行提供了相应的执行环境;

  3 为Agent的远程管理提供支持;

  4 为Agent 改变其路线提供了相应的方法。