灵魂-放水

为学日益,为道日损。

BlogJava 首页 新随笔 联系 聚合 管理
  296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

移动 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.

posted on 2006-12-17 21:57 放水老倌 阅读(748) 评论(1)  编辑  收藏 所属分类: Mobile Agent

Feedback

# re: 移动Agent平台的互操作性研究-(二) 2008-03-27 14:54 徐妍
好  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问