Agent的源代码 迁移中的Agent

  表1 某Mobile Agent 的路线

  另外,在Mobile Agent的迁移过程中还有可能遇到这种情况:即Mobile Agent迁移到某主机后发现它需要使用的一些相关类在该主机上并不存在。为了解决这个问题,Concordia使用了一种Push-Pull的方式来移动相应的代码。

  Concordia的Pull模式和浏览器下载Applet代码的方式比较相似。在这种模式中,Mobile Agent在迁移过程中将携带一个其出发地的代码基地(codebase),一般情况下,这个代码基地将是一个Web服务器上的某个位置。当一台主机的Concordia服务器发现某一个 Agent所需要的代码在该主机上不存在时,它向该 Agent的代码基地发出一个网络请求并下载相应的代码。通常情况下,该网络请求将是一个对 服务器的HTTP请求。

  这种 Pull模式在有些情况下并不能很好的解决问题。例如,一个 Agent可能要到一个很远的地方,此时若发现缺少相关代码而发送网络请求将要付出很大的代价甚至无法完成任务。为了应付这种情况, Concordia允许用户或者开发人员在发射Agent时为它指出相关的类(related classes),这些相关的类将自动地和Agent一起迁移。除此之外,Concordia也提供了一种 Push的方式,在这种方式里,Agent使用到的一些类将和Mobile Agent一起在网络上迁移。