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

管理员:它主要负责整个Concordia
网络的管理。它管理着Concordia 所提供的所有服务,并能与这些服务协同工作。对它的操作主要通过其用户界面来完成。
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 改变其路线提供了相应的方法。
队列管理器:它负责Concordia系统中Agent的时序安排和可能重试的行为。包括在Agent等待时机以完成工作时对它们进行维护,在Agent进入或离开系统时维持它们的持续性状态,并在Concordia系统从网络中断开时进行必要的重试。它为Agent登陆到Concordia节点后的执行提供了排序和管理的机制。其主要任务包括:
l 为Agent在不可靠网络之上提供可靠的传输;
2 提供基本的存储和转发操作。
持续性管理器;它维持着Agent在网络上迁移时的状态。而且,它考虑到了在系统失败情况下Agent的检查点和再启动(由于程序或系统故障,一个程序被终止以后,使它在某个中间位置而不是在开始位置重新开始执行的一种程序。一次再启动可以在检查点开始或从一个作业步开始,并且使用检查点记录以便重新将系统初始化)。其操作在一般情况下都是透明的,也就是说,根本无须Agent或者Administrator的控制。其包括的主要功能有:
l 为Agent和其他一些Object的持续性提供必要的支持;
2 使得系统在崩溃之后的重新启动中能够准确地重新启动Agent和各种服务。
事件管理器:它管理着发送给Agent或从Agent发出的注册和通知等事件。它能够在Concordia网络上把事件传递给网络中其他节点上的Agent,它和Concordia一起根据需要发布事件。其主要功能有:
l 为Agent之间的协作提供相应支持;
2 为Agent之间的事件传送提供支持;
3 实现事件的多点传送,即多个接收者接受一个事件。
目录管理器:它的主要责任是提供统一的命名服务,使得Agent能够在网络上找到所需的服务。Administrator可以根据设计人员或者服务的需要以多种途径来设定名字服务。
安全管理器:它负责识别用户,鉴别他们的Agent,保护服务器的资源并确保Agent及其数据对象在迁移中的安全和完整。它也负责控制Agent对其所需Java类库的动态加载。它拥有一个用户界面构件,能够通过该界面来配置和监控Concordia所知的各用户和服务的安全属性。其关键功能包括:
l 执行相应的鉴定:确保能够识别出Agent来自何处以及到底是谁在执行它;
2 执行访问控制:确保服务器的资源不受恶意的或者错误Agent的攻击;
3 加密:防止Agent被假冒和篡改。
服务接口(Service Bridge):它为开发人员提供了一种机制,使得开发出来的Agent在迁移到某一个服务器时,能够在该服务器增加一些有关的服务,为Agent的执行提供有效的支持,这些增加的服务可以在DirectoryManager上完成相应的注册。它的一个最主要的用途就是使得Agent能够访问目的服务器上的各种本地服务。它可以通过远程管理API来执行远程的管理。
除此之外,Concordia还为开发人员提供了大量开发Agent 的应用所需的类库(Agent tools Library),使得Agent的设计人员无须过多了解网络的细节和编制相关的代码,极大的方便了开发人员。
上一篇: 几种MAIL SERVER的功能应用比较
下一篇: 用DirectDraw编写动画程序
上一页 1 2 3 下一页