移动
Agent
平台的互操作性研究
(**大学**实验室,**
)
摘要:
移动
Agent
平台的异构性,使得不同平台间难以实行互操作。文章浅层次的分析了移动代理系统互操作性有关的
CORBA
,
MASIF
和
FIPA
规范。
关键词:
移动
Agent
,互操作性,
CORBA
,
MASIF
,
FIPA
1
引言
移动
Agent
是结合了
Agent
的一种新型分布计算技术,由于它的智能性、移动性、自主性和协作性,已在信息检索、移动计算、电子商务及网络管理等方面得到一定的应用。许多公司和研究机构都发布了各自的移动
Agent
平台,如
IBM
的
Aglets
,
Dartmouth College
的
AgentTcl, Stuttgart University
的
Mole, ObjectSpace
的
Voyager
等等。由于这些平台在体系结构和实现上有较大差异,无法实现互操作,已成为限制移动
Agent
广泛应用的主要原因之一。为此,
OMG
组织已经开展有关移动
Agent
的标准化工作,并提出移动
Agent
互操作机制标准
MASIF
。本文分析了在解决互操作问题上的相关技术。
2
相关理论或技术基础
2.1
移动Agent技术介绍
2.1.1
软件
Agent
软件
Agent是运行于动态环境的、具有高度自治能力的实体,它能够接受其它实体的委托并为之服务。不难看出,软件Agent首先具有智能特性,它对环境有响应性、自主性和主动性;同时,软件Agent还具有社会特性。
自主性(Autonomy):软件Agent在运行过程中不直接由人或其它主体控制,它能在没有与环境相互作用的情况下自主执行任务,对自己的行为和内部状态有一定的控制权。自主性是软件Agent区别于普通软件程序的基本特征。
响应性(Reactivity):软件Agent能对来自环境的信息做出适当的响应,它能感知所处的环境,并能通过自己的行为改变环境。
自动性(Proactivity):传统应用程序接受用户指令被动执行,而Agent不仅能对环境变化做出反应,更重要的是能在特定情况下采取主动行为。
推理性(Reasoning):软件Agent可根据已有的知识和经验,以推理的方式进行推理。软件Agent的智能由3个主要部件来完成,即内部知识库、自适应能力以及基于知识库的推理能力。
通信/合作/协作(Communication/Cooperation):这是在软件Agent群体中应该具有的社会属性。
2.1.2
移动
Agent
移动
Agent
技术是目前计算机科学领域中非常重要的研究技术之一。移动代理(
Mobile Agent
)是一个代替人或其它程序执行某种任务的程序,它在异构网络环境中自主地从一台主机迁到另一台主机,并可以和
Agent
或其它软件资源交互的实体。
移动Agent是一种特殊类型的软件Agent,它除了具有软件Agent的基本特性-自主性、响应性、主动性和推理性外,还具有移动性。在移动过程中能够根据要求挂起,然后转移到网络的其它地方重新开始或继续其执行,最后返回结果和消息,代表用户完成指定任务。由于移动Agent可以在异构软、硬件网络环境中自由移动,因此,这种新的计算模式能有效地降低分布式计算中网络负载、提高通讯效率、动态适应变化的网络环境,并具有很好的安全性和容错能力。
2.2 CORBA
全球性网络使线上的所有设备和软件成为全球共享的浩瀚的资源,计算机环境也从集中式发展到分布式环境,开放式系统的发展使用户能够透明地应用由不同厂商制造的不同机型不同平台所组成的异构型计算资源,因此,分布式处理和应用集成自然而然地成为人们的共同要求,那么什么是分布式处理和应用集成呢?它们的功能和关键技术是什么呢?简单地讲,分布式处理和应用集成就是指在异构的、网络的、物理性能差别很大的、不同厂商的、不同语言的信息资源的基础上构建信息共享的分布式系统,并且能够有效地进行应用系统和分布式处理的集成。分布式处理的关键在于定义可管理的软件构件,即面向对象技术中的
“
对象
”
。应用集成的关键在于为跨平台、跨机种、跨编程语言的产品提供统一的应用接口。OMG组织针对当今信息产业的要求,公布了CORBA标准,即公共对象请求代理体系结构(Common Object Request Broker Architecture),这是一个具有互操作性和可移植性的分布式面向对象的应用标准。
CORBA的核心是对象请求代理ORB,它提供对象定位、对象激活和对象通讯的透明机制。客户发出要求服务的请求,而对象则提供服务,ORB把请求发送给对象、把输出值返回给客户。ORB的服务对客户而言是透明的,客户不知道对象驻留在网络中何处、对象是如何通讯、如何实现以及如何执行的,只要他持有对某对象的对象引用,就可以向该对象发出服务请求。CORBA允许用户以两种不同的方式提出对象请求:
1)静态调用:
通过给定接口的存根,在编译了对象代码后,进入客户端的程序。因此,静态调用必须在编译时就知道对象及其类型。
2)动态调用:
通过ORB的动态调用接口DII,在运行时生成访问对象的代码。不管客户以哪一种形式提出请求,ORB的任务是:找出所要对象的位置,激活该对象,向对象传递此请求。对象执行所请求的服务后,把输出值返回给ORB,然后再由ORB返回给客户。
3 Agent System Interoperability
3.1 CORBA
和移动Agent的结合
移动代理技术和
CORBA
技术在许多方面不同,最显著的是
CORBA
采用对象一旦被分配就一直停留在固定位置直到它在
ORB
中注册,而移动代理可以动态、自主地在执行期间移动。
第二个不同点是移动
Agent
明确自己目前的位置,而且知道所需资源的位置,具有丰富的信息来动态地决定迁移。对
CORBA
来说,当它回答客户请求时,试图隐藏服务器对象的物理位置。很显然,
ORB
知道注册对象的分配,但是这个信息对客户和应用开发者来说是隐式的。
另一个不同点在于融合性(
diffusion
),
CORBA
拥有一个普遍被接受的规范,有许多的资源、系统和业务足见遵从这个规范。相反,移动
Agent
可编程范例的特性导致产生了各种不同的、不能互操作的代理平台。
1.
然而
CORBA
与移动
Agent
技术的结合,可以完全实现异构移动
Agent
平台之间的互操作性。当
MASIF
和
FIPA
都采用
CORBA
作为标准桥梁时,就可以克服两种规范之间的异构性。
3.2 MASIF
不同
Agent
之间的互操作性是使基于不同移动代理平台的商业化融合的关键因素。互操作性要求移动代理技术能够趋于规范化。
OMG
提出了
MASIF
(
Mobile Agent System Interoperability Facilities
)规范,这是一个代理的互操作性标准,它是在
CORBA
体系中构建的,支持代理的移动和管理。
MASIF
的目标是不需要对现有各种代理平台进行大量的修改,而仅通过用
”add-on”
模块来扩展,以实现现存不同结构的移动代理平台之间的互操作性。
MASIF
提出对代理和代理系统命名、系统种类及位置语法的标准化。
MASIF
定义了两个标准架构:
MAFAgentSystem
和
MAFFinder
,通过接口定义语言对它们的属性、操作和返回值作了明确的规定。前者定义对
Agent
的操作,包括接受、创建、挂起和终止
Agent
的执行,后者定义了
Agent
的注册(去注册)以及
Agent
、
place
和
Agent
系统的定位。这些接口在
Agent
系统层上定义,因为
Agent
只能在支持同类
Agent
的
Agent
系统间流动,无需对
Agent
的接口进行定义。而
MASIF
中定义的标准化
Agent
管理操作实现
Agent
在系统间进行流动。针对
CORBA
命名服务只支持静态对象的情形,
MAFFinder
则是必要的补充,它提供了动态的名址数据库接口。
MAFAgentSystem
和
MAFFinder
接口分别提供
15
和
9
个操作支持
Agent
的管理和名录服务。
OMG
的目标是使不同软件开发商所开发的产品可以在一致的分布式对象环境下协同工作,
CORBA
对于
Agent
系统的支持通过上述两类接口实现。基于
MASIF
标准的移动
Agent
分布式体系结构如图
1
所示。
图
1
基于
MASIF
标准的移动
Agent
分布式体系结构
3.3 FIPA
FIPA
明确了服务于代理与其他实体(管理员、其它代理、非代理软件和物理世界)交互的不同组件的接口。因为主要涉及到智能代理领域,
FIPA
把重点放在代理间通信的标准化问题上,
FIPA
提出一个专门的代理通信语言(
Agent Communication Language
,
ACL
)来解决遵从
FIPA
的所有代理之间的通信问题。
FIPA
定义了为代理平台服务的三种基本业务:代理管理系统(
Agent Management System,AMS
)、
Directory Facilitator(DF)
和代理通信信道
(Agent Communication Channel,ACC)
。
AMS
提供类似
MAFAgentSystem
的管理功能,但是,不同点在于
FIPA
的
AMS
不能解决在异构移动代理平台之间代理的移动问题。
FIPA
代理可以为其它代理提供服务,而且它们的服务内容可以在网络黄页上通过
DF
搜寻到。在一个代理平台中,在
DF
中的注册是任意的,而在
AMS
中的注册则是必须的。
ACC
能够促使在同一个代理平台上代理之间的通信,也可以通过提供一个消息转发机制来使代理在异构平台之间通信。
平台之间的互通性通过
CORBA ORB
的转发业务可以实现,与
CORBA
的结合对遵从
FIPA
的移动代理平台来说是必需的,代理的消息传递通过
CORBA IIOP
实现。
因为
AMS
和
DF
业务提供类似于
MASIF MAFAgentSystem
和
MAFFinder
的功能,对于
FIPA
标准化的建议是提出通过一个共同使用的
ACL
来实现代理之间的通信。
4
结论及未来工作
已经有人研究发现,
MASIF
制定的移动
Agent
平台之间的互操作性,没有定义域间移动
Agent
的定位操作。对于移动
Agent
平台之间的互操作方面,还有很多问题,有待研究,解决,完善。在接下来的两周里,将着重对
MASIF
、
FIPA
的关于通信语言,互操作规范进行研读,并了解
CORBA
在解决异构
Agent
平台方面的
Solutions
。
参考文献
[1]
张颖江,吴珊
移动代理在分布式计算中的应用和实现。
[2]
偶晓娟,雷霖,李建华
移动代理互操作性研究。
[3]
欧阳晔,姜浩,潘顺
移动
Agent
域间发现机制研究。
[4]
Object Management Group TC Document Orbos Mobile Agent System Interoperability Facilities Specification.