MASIF(Mobile AgentSystem Interoperability Facility)是GeneralMagic、IBM等多家公司和研究机构联合向OMG组织提交的一份标准化文件,旨在规范一些共性的术语定义,并为不同的Mobile Agent系统提供基于CORBA的可互操作的接口,同时注意了简单性和通用性的原则以支持Mobile
Agent技术的未来发展。
服务
MASIF除了可以得用CORBA的特性实现互操作外,还可以使用CORBA提供的以下服务:
(1) 名字服务(Naming Service):CORBA 名字服务将名字(表现为字符串)与CORBA 对象绑定。应用程序可以利用该服务来公布命名对象,或通过对象名来查找对象引用。MASIF 定义了两种CORBA 对象界面(Object Interface):MAFAgentSystem和MAFFinder。对象通过名字服务来公布,这样可以带来一些编程上的方便。例如,当Agent进入某区域后可以利用名字服务查找MAFFinder 的对象引用,以便进一步使用MAFFinder 对象所提供的服务。
(2) 生命周期服务(Lifecycle Service):CORBA 生命周期服务用于创建、删除、拷贝静态的(Static)和被动的(Passive)CORBA 对象,但不能用于象Agent这样的可移动的(Mobile)和主动的(Active)对象。Agent系统则是一个可由CORBA 生命周期服务进行创建或删除的静态对象的例子。区域(Region)管理器可以利用这一特点,增加区域中Agent系统的数量以处理增加的Agent负载。
(3) 序列化服务(Externalization Service):CORBA 序列化服务提供了一种将对象状态记录为
数据流或从数据流恢复为对象状态的标准化的机制。Agent系统可以选择该服务来对Agent的状态进行序列化和去序列化。当然,Agent系统也可以采用非CORBA 的序列化机制(比如Java 的对象序列化方法)。
(4)
安全服务(Security Service):
移动Agent是可以在Agent系统之间移动的计算机程序,这对Agent系统的安全性提出了很高的要求。利用CORBA 的
安全服务,可以向Agent系统提供以下的安全支持:远程Agent创建时的客户方认证、Agent系统间的相互认证、 Agent认证和经过传递的认证、信息的完整性、保密性及重放(Replay)检测。
界面
MASIF由一组定义和界面所组成,通过它们可保证
移动Agent系统间的
互操作性。考虑到
移动Agent技术将来的发展,MASIF规范尽量以简单和通用为其原则。
MASIF 模块由两个界面所组成:
(1)MAFAgentSystem 界面
(2)MAFFinder 界面
MAFAgentSystem 界面定义了对Agent的有关操作,其中包括Agent的创建(Creat)、接收(Receive)、暂停(Suspend)和终止(Terminate)等操作。MAFFinder 界面定义了Agent登录(Register)、去登录(Unregister)以及Agent、场所(Place)和Agent系统定位(Locating)的有关操作,它的作用相当于是Agent、场所(Place)和Agent系统的名字与位置的
动态数据库。
出于互操作性的考虑,MASIF 是在Agent系统层上定义界面的。Agent系统和Agent都可以是CORBA 对象,但也并非必须是CORBA 对象。由于Agent居于Agent系统之内,所以它的具体实现要依赖于创建它的Agent系统的具体实现。
缺点
(1) MASIF 规范目前只定义了区域内Agent的互操作,但是,实际系统中,我们没有理由排除区域间Agent 的互操作,为解决此问题,需要扩展MASIF 规范中定位服务。
(2) MASIF规范只定义了单跳(One Hop)的安全机制,没有考虑多跳的安全。
(3) MASIF规范并没有定义和符合
FIPA 规范的智能Agent的互操作。
(4) MASIF只定义了互操作外部界面,没有定义内部界面,用户工作量较大。
(5) MASIF利用的是CORBA 命名服务,而不是交易服务。