APP下载

基于Web服务的Agent模型研究

2010-11-28张鹏亮

浙江水利水电学院学报 2010年4期
关键词:调用本体通讯

张鹏亮

(浙江水利水电专科学校,浙江 杭州 310018)

0 引 言

网络上信息资源的不断增长,要求信息系统具有分布性特征并且能够和其他系统进行互操作.传统的软件开发技术由于缺少分布式和互操作机制而不能很好的满足这一要求.而Agent设计的初衷就是为分布式和互操作服务的,因此基于Agent的技术是实现分布式信息系统的可行方式之一.而近几年Web服务在信息技术领域发展为成熟且应用广泛的一项技术.使用Web服务可以将信息系统的功能封装为一系列相互交互的服务,而这些服务的封装与调用是标准的、不依赖于特定系统与技术(如.NET技术或Java EE技术).因此,Web服务可增强信息系统的灵活性、降低系统的耦合度,可以通过一个个Web服务来构成一个完整的信息系统.但在Agent领域,并未和信息技术领域的发展同步,Agent和Agent之间还是通过特定的协议(如KQML,FIPA-ACL)进行通讯,而且也未提供Agent向非A-gent系统提供服务的机制.本文在结合FIPA Agent规范[1]与Web服务规范[2]的基础上,提出了基于Web服务的Agent架构模型.

1 相关研究

现有的对FIPA兼容Agent平台和Web服务集成的研究大都是在AgentCities Web Services Working Group提出的高层结构化建议上的.WSDL2JADE[3]可以从WSDL文件生成JADE[4]Agent本体和Agent代码.与其它具有类似功能的软件相比,WSDL2JADE的显著特征就是允许在运行时将JADE a-gent作为Web服务部署.这就为Web服务的发现和使用提供了更高层次的自动化.WSDL2JADE也有一些缺点,比如在使用XML枚举数据类型创建本体文件时,XML枚举值和类型信息是缺失的,这就使客户端Agent无法使用相关数据类型的操作.另外单线程Agent和1∶1的从Web服务到Agent的映射也导致了多个Agent同时访问一个Web服务的问题.WS2JADE[5]提出了Agent和Web服务互操作的三方面内容:(1)通信语言;(2)本体和服务描述;(3)交互协议和构建语言.在 WS2JADE里,通过驻留在WS2JADE系统里的代理Agent,Web服务对FIPA兼容Agent是可见的.在WS2JADE里,Web服务的发现是通过UDDI代理Agent实现的.虽然WS2JADE提供了与Web服务共同工作的有效方法,但仍然存在着问题,比如只是从Web服务到Agent的单向集成.WSIG[6]支持Web服务和JADE Agent的双向集成.WSIG实际上是Agent ACL和Web服务调用之间的翻译器.为了让WSIG在Agent和Web服务两个环境里都可见,WSIG在FIPA DF里注册为特殊的Agent服务,而在UDDI目录里注册为特殊的web服务端点.使用WSIG虽然部分解决了Web服务和A-gent的双向集成问题,但这样的集成不是无缝的,即Agent体系Web服务系统还各自独立,需要通过集成网关来传递消息.同时WSIG也没有解决Agent的有状态通信和Web服务的无状态通信的问题.

2 体系结构

FIPA agent平台参考模型[1],见图1,它是一个分布式平台.AMS(Agent Management System)是一个管理Agent,它控制对Agent平台的访问和使用,并负责维护一个驻留Agent的目录以及处理这些A-gent的生命周期.DF(Directory Facilitator)是一个提供黄页服务的Agent,即提供系统中有哪些Agent服务可用的信息服务.ACC(The Agent Communication Channel)提供一个平台内外异质Agent的通讯方式.

2.1 WS-Agent模型

为了能和FIPA标准兼容,也能使Agent和Web服务无缝集成并以Web服务的机制运行和通讯,本文提出了“双栈”结构的Agent参考模型,我们称之为WS-Agent.见图2.

图1 FIPA Agent平台参考模型

图2 WS-Agent模型

WS-Agent结构将Agent分成3个层次,分别是通讯层、中间消息层和本体层.ACL(Agent Communication Language)是FIPA兼容Agent系统的标准通讯语言,它对Agent间相互通讯的消息进行描述和封装,而Web服务的通讯协议是SOAP.为了能够保证Agent能与传统的FIPA兼容的Agent进行通讯,这里仍然保留Agent的ACL通讯机制.同时,我们给Agent增加了Web服务的SOAP通讯机制.采用这样的双栈通讯方式,在传统的Agent看来,此结构的A-gent就是一个传统的FIPA兼容的Agent的.而采用SOAP协议进行通讯的Agent只能和采用相同协议的Agent进行通讯,同时也可以利用本身Web服务的特性,为非Agent的软件提供服务.一个WS-Agent可以同时以ACL和SOAP协议进行通讯.因为一个WS-Agent的通讯协议有两种,如果让Agent本体处理不同的格式消息会增加Agent本体实现的复杂度.另外从可扩展性方面来说这样做也不利于扩展,例如想增加KQML为通讯协议的时候.为了能使Agent本体能统一处理通讯中的消息,这里设立了中间消息层,不同的消息协议格式转换为一种统一的消息格式.采用消息中间层的思想有利于Agent的松耦合实现并利于扩展.在这里并未指定采取何种消息格式作为统一格式,可在具体实现时指定.本质上中间消息层是一个不同消息格式的转换器.本体层的核心组件为本体,它是Agent的核心内容.Agent的自治性、响应性、交互性、适应性等特性都是在本体层的组件中给予实现.

WS-Agent是一个松耦合模型,在具体实现时,本体、中间消息层以及ACL和SOAP通讯通道都可以以单独的对象或组件存在,它们甚至可以运行在不同的设备上,只要它们能通过网络连接.对于在同一容器内运行的这些组件间的通讯,可以使用本地调用,而不同设备上的同一WS-Agent组件可以采用远程方法调用机制,如用Java实现即可使用Java RMI.

2.2 UDDI-DF模型

不管对于FIPA平台结构还是Web服务结构,都需要一个提供黄页服务的服务描述组件.在Agent系统中是DF,而在Web服务系统中是UDDI,它们都描述了各自领域内的服务.在WS-Agent体系结构下,服务描述组件应该能够同时提供Agent服务描述和Web服务描述的服务.为了和WS-Agent的中间消息思想保持一致,在这里也采用了统一服务描述机制,但是和Agent的统一消息不同,在服务描述组件上,我们让Agent的服务描述作为统一描述.我们将此服务描述组件称之为UDDI-DF.见图3.

图3 服务描述组件UDDI-DF

对于FIPA Agent来说,此服务组件和传统的FIPA DF并未有任何不同,服务的注册和查询也和传统的DF一致,服务描述翻译器和UDDI代理对FIPA Agent来说是不可见的.而对于以SOAP为通讯机制的WS-Agent或者其他想要获得Web服务的组件来说,此服务组件就是一个UDDI服务描述组件,虽然在内部的实现上采用UDDI的代理机制.因为采用代理机制,Web服务的注册和查询就需要有特殊的机制,其中服务描述翻译器起到了关键的作用.服务描述翻译器需要维护一个从UDDI到DF的映射表,它在对服务描述组件的操作过程起到一个连接DF注册库的桥梁作用.对于服务描述组件来说,它至少需要四种操作:(1)注册新服务;(2)注销现存服务;(3)修改现存服务;(4)搜索已注册服务.为简单起见,现对WS-Agent的注册新服务和搜索已注册服务的过程作简单描述,见图4、图5.

图4 注册过程

图5 搜索过程

在WS-Agent注册过程中,UDDI代理接收到注册请求后将注册信息提交给服务翻译器,由服务翻译器将WSDL描述的Web服务描述翻译为ACL服务描述,之后将ACL服务描述存入到DF中,同时将映射信息存入到映射表中.在查询服务过程中,UDDI代理将查询信息提交给服务翻译器,服务翻译器从映射表中查询到相应条目后到DF中查询服务,最后由服务翻译器将ACL服务描述翻译回WSDL描述.从对UDDI-DF的操作过程中可以看到,要想让WS-Agent以Web服务作为通讯机制或者向其他程序提供Web服务,必须通过UDDI代理注册服务才可以.如果WS-Agent以ACL通讯机制直接在DF注册服务,则它不能以Web服务方式进行通讯,也即不能提供Web服务.传统的Agent只能在DF中注册服务.

2.3 WS-Agent通讯过程

根据Web服务结构建议[2],Web服务是被动响应型的,即Web服务只能接收请求并为请求者服务,除了有可能向请求者发送响应外,Web服务不能主动发起请求.这就造成了WS-Agent的通讯问题,因为一个Agent不能只提供单向的通讯,这不符合Agent的基本要求.为了能够实现WS-Agent的双向通讯,需要对进行Web服务通讯的SOAP通道进行双向改造.除了保留接收Web服务请求的上行通道外,还需要增加一个能够发起Web服务请求的下行通道.因此SOAP通道组件由两个组件构成,一个是以Web服务方式存在的上行通道,另一个是调用其他Web服务的下行通道.现对WS-Agent发起Web服务请求的过程描述如下:

(1)本体因计算原因,需要其他Agent的合作及服务,生成调用消息.

(2)中间消息层将消息翻译成UDDI查询请求.

(3)SOAP下行通道进行UDDI查询.如果查询失败则异常处理,否则根据查询获得的WSDL描述创建SOAP消息.

(4)SOAP下行通道发送SOAP消息,等待Web调用的响应.

(5)SOAP下行通道接收到响应之后将之传递给中间消息层.

(6)中间消息层将SOAP响应消息翻译为中间层消息后传递给本体处理.

而SOAP上行通道则是一个标准的Web服务过程.

3 结 语

WS-Agent模型将Web服务中的SOAP协议作为通讯协议,将WSDL作为Agent的服务描述语言,将Web服务作为Agent的基础通讯机制,使Web服务成为Agent的组成部分.WS-Agent模型可以充分利用Agent的分布式和互操作优点,也可以利用Web服务的灵活性等优点.相对于WSIG,WS-Agent将A-gent和Web服务结合的更加紧密,同时又能无缝的兼容FIPA Agent.利用中间消息等思想,使WS-Agent和UDDI-DF在结构上又是松耦合的,有利于系统的维护和扩展.

在WS-Agent的实现上,JADE提供了一个很好的参考.JADE是在Java虚拟机环境中运行的Java对象,还不能提供Web服务,可以借助Java EE平台实现所需Web服务机制.

对于WS-Agent的后续研究,将集中在一下两个方面:(1)WS-Agent的有状态通讯问题.Agent之间的通讯可以是有状态的,而Web服务却是无状态的.对Web服务的有状态通讯机制的研究也是现有领域内的难点之一;(2)Agent的自主计算问题.A-gent的自主计算问题一直未能得到很好的解决,也是今后研究的目标之一.

[1]Foundation for Intelligent Physical Agents.The FIPA Specifications[EB/OL].2002-12-03[2010-09-18]http://www.fipa.org/repository/index.html,.

[2]W3C Web Service Architecture Working Group.Web Service Architecture[EB/OL].2004-02-11[2010-09-18]http://www.w3.org/TR/2004/NOTE-ws-arch-20040211,.

[3]L.Z.VARGA,A.HAJNAL.Engineering Web Service Invocations from Agent Systems[C]//CEEMAS'03 Proceedings of the 3rd International Central and Eastern European Conference on Multi-Agent Systems.Belin:Springer-Verlag,2003:626-635.

[4]BELLIFEMINE F.,POGG A.,RIMASSA G..JADE-A FIPA2000-compliant agent development environment[C].//AGENT'01 Proceedings of the Fifth International Conference on Autonomous Agents.Montreal:ACM,2001:216-217.

[5]X.T.NGUYEN,RYSZARD KOWALCZYK.WS2JADE:integrating web service with jade agents[C].//AAMAS'07/SOCASE'07 Proceedings of the 2007 AAMAS international workshop and SOCASE 2007 conference on Service-oriented computing:agents,semantics,and engineering.Belin:Springer-Verlag,2007:147-159.

[6]GREENWOOD,D.,M.LYELL,A.MALLYA,H.S..The IEEE FIPA approach to integrating software agents and web services[C].//AAMAS'07 Proceedings of the 6th international joint conference on Autonomous agents and multiagent systems.Hawaii:ACM,2007.

猜你喜欢

调用本体通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
眼睛是“本体”
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
基于本体的机械产品工艺知识表示
通讯简史
专题
Care about the virtue moral education