APP下载

一个支持Web服务聚集的多 Agent协作框架*

2010-12-17叶荣华

关键词:管理器列表关联

叶荣华, 冯 伟

(浙江师范大学数理与信息工程学院,浙江金华 321004)

0 引 言

面向服务的计算 (SOC)为分布异构平台下的应用提供了一种较好的集成方案,但是一个集成多个Web服务的应用系统往往需要发现服务、组合服务、绑定服务和服务执行等多个步骤.传统的SOA提供了服务目录 (如 UDD I[1])作为发现服务的机制,但这种单一的服务发现方式将影响服务发现的效率.文献[2-3]提出了一种基于 Agent的主动Web服务概念,作为一种自主服务实体,可以主动地发现需求,并为之提供服务.

这种主动的服务过程一般分为 2个步骤:需求驱动的服务聚集和聚集候选服务的选择组合.为了达到服务聚集的目标,首先让服务 Agent理解需求.文献 [2]利用功能本体描述了需求和Agent能力;文献 [3]提出了基于环境本体[4]的“意图-行为-实现”机制,用于描述需求和服务能力.以上工作均从需求与服务能力匹配角度出发,为服务 Agent根据自身的能力去发现需求提供了各自的解决方案,但没有提供相应支持服务Agent主动聚集的多 Agent系统框架.为此,本文提出一个面向 Web服务聚集的多 Agent协作框架MAS4WSA(Multi-Agent System for Web Service Aggregation),并给出其设计的部分关键技术.

1 需求驱动的服务 Agent聚集

根据 W3C在 Web Services Architecture[5]中的解释,Web服务是一个必须由具体 Agent实现的抽象概念,Agent既可以作为服务提供者 (个人或组织)的代理,也可以作为服务请求者的代理.在传统的 SOA中,服务只是作为一个被动的计算实体,供服务请求者 (或其 Agent)发现、选择、组合和调用等,但是当服务提供者有 Agent作为其代理后,完全可以发挥其主动性,主动发现自己能为其提供服务的需求.

服务 Agent仍沿用 Agent理论中的自利假设[6],即所有的 Agent都希望自己的利益最大化.由于服务 Agent在参与解决需求的过程中可以为自己 (或所代表的个人或组织)带来收益,服务Agent为了获得尽可能多的收益,会主动参与解决与自身能力相匹配的需求,从而形成如图 1所示的服务Agent向需求Agent聚集的现象.这里所指的需求驱动的服务Agent聚集是指根据一种需求发现机制,服务 Agent找到与自身能力相匹配的需求Agent,并向其登记请求提供服务的过程.

图 1 需求驱动的服务 Agent聚集

为了实现服务Agent向需求Agent的聚集,必须要保证 2点:1)一种需求与服务能力的描述方法,用于服务 Agent能有效地判断哪些需求与自身的能力相匹配;2)一个多 Agent协作机制,用于服务 Agent高效地获得潜在的需求 Agent,并通过消息交互发现真正可以提供服务的需求.本文主要关注后者,提出了一个用于Web服务聚集的多Agent协作框架.下面介绍该框架的详细设计.

2 MAS4WSA协作框架

在传统的 SOA模型中,服务发现的工作主要由服务目录完成.随着 Web服务数量的不断增加,服务目录的负载会急剧增加,从而成为影响整体性能的瓶颈[7].笔者虽然采用了服务发现需求的反向思路,但如果需求与服务能力的匹配仍由一个集中的结点完成,则同样会出现性能瓶颈问题,MAS4WSA的设计将尽可能考虑多 Agent负载均衡.

2.1 多 Agent协作过程

协作过程主要涉及 3种类型的 Agent——服务 Agent(简称 SA)、需求 Agent(简称 RA)和中介Agent(简称MA).为完成服务 Agent向需求 Agent的聚集,它们之间的具体协作过程主要分为如图2所示的 5个步骤.

图 2 MSA4WSA协作框架

第 1步:需求注册.RA向MA注册相关的需求信息,为均衡负载,MAS4WSA并没有将服务与需求的匹配集中在 MA中完成,所以 RA只要向MA提供需求所在的行业分类、其他相关行业和一些关键词信息即可.MA将通过分析,为 RA在注册库中分配一个唯一的需求 I D和一个三级分类号,并为其建立相关行业关联和关键词关联.

第 2步:请求需求列表.SA向MA提交与其服务能力相关的行业分类信息和若干关键词,MA根据一定的搜索策略返回给 SA潜在的候选 RA列表,如果 SA在一次返回的 RA列表中不能找到与自己匹配的需求,则可以要求MA提供放宽分类关键词匹配的 RA列表.

第 3步:请求需求描述.根据 MA返回的 RA列表,SA逐个向其中的 RA请求相关的需求描述,以便与自己的服务能力进行匹配.

第 4步:匹配能力与需求.SA将 RA返回的需求描述与自己的能力进行匹配,如果相互匹配,则转第 5步,向 RA请求聚集登记,否则转第 3步,向 RA列表中的下一个 RA请求需求描述.如果 RA列表已经遍历完成,则转第 2步,向 MA请求放宽约束后的 RA列表.

第 5步:请求聚集登记.如果 SA找到与自己服务能力相匹配的需求,就向相应的 RA请求聚集登记,并将服务能力描述提交给 RA.

2.2 服务 Agent及其设计

服务 Agent是Web服务的代理,是实现主动服务聚集的关键载体.在 MAS4WSA中,SA既需要与MA交互以得到潜在的 RA列表,也要与 RA交互以得到相应的需求描述,并通过匹配向 RA请求聚集.由此,笔者设计的服务 Agent主要包括以下 4个功能部件:会话模块、RA队列、知识管理器和需求 /能力匹配器.

1)会话模块.Agent会话是 2个或多个 Agent为达到一定的目的而进行的一系列消息传递过程.采用会话作为 Agent之间的基本通信单位会比只用单个消息更具有灵活性、可扩展性和可重用性[8].MAS4WWA设计了 4个会话:RA与MA的注册会话、SA与MA的请求潜在 RAs会话、SA与 RA的请求需求会话以及 SA与 RA请求聚集登记会话.

2)RA队列.用于暂存从MA中获得的潜在需求Agent列表,SA遍历该队列直到找到一个与自己能力相匹配的 RA作为聚集的对象.

3)知识管理器.主要为需求/能力匹配器提供知识支持,包括需求描述单元、服务能力描述单元和本体管理器.需求描述单元用于暂存和解析从 RA获得的需求描述,服务能力描述单元用于保存和解析自身的服务描述,而本体管理器是用于管理相关的领域本体的缓存或引用,以便使 SA能理解需求描述和能力描述中的领域术语.

4)需求/能力匹配器.该部件以知识管理器解析的需求描述、服务能力描述和领域本体作为输入,通过一个匹配算法,最终得到服务能力是否能参与解决需求的判断.如果 SA的能力与需求相互匹配,则 SA将启动相应会话,请求向 RA聚集登记.

2.3 需求 Agent及其设计

需求 Agent是需求的代理,一个需求可能比较简单,只要一个匹配的服务就可以解决,但更多的需求相对复杂,需要多个服务的组合才能解决.需求 Agent主要包括 5个功能部件:会话模块、知识管理器、SA聚集空间、服务选择器和服务组合器.其中:会话模块与知识管理器与 SA的相关部件类似;服务选择器和服务组合器是服务聚集的后续工作.

1)SA聚集空间.用于存放和管理向本需求聚集的 SA,当在一个规定的时间内如果 RA无法聚集足以解决需求的 SA时,空间会释放已经聚集的 SA,以便那些资源有限的服务可以向新的需求聚集.

2)服务选择器.如果聚集的服务超过实际解决需求所需的服务,服务选择器将根据一种服务选择策略,通过相应算法选出最适合解决需求的服务集.

3)服务组合器.服务组合器是根据需求描述,将服务选择器选择出的服务组装成一个由BEPL语言描述的抽象的业务流程.该抽象业务流程需要经过实例化才能成为服务组合引擎可以执行的组合服务.

3 中介 Agent及其搜索策略

中介 Agent是连接 RA与 SA的桥梁,RA通过将自己的需求信息注册到MA上,MA向 SA开放需求的搜索服务,这样 SA就有机会找到与自己能力相匹配的需求.中介 Agent主要包括会话模块、需求注册库、分类编码器和搜索引擎 4个部件.其中会话模块与 RA/SA的相应模块形成一个统一的会话机制,其他功能部件的作用如下:

1)需求注册库.MA的核心部件之一,主要用于存储注册的需求信息.为均衡负载,MA不对需求与能力进行匹配,所以这里的需求信息不是具体的需求描述,而是所在行业的分类及其关联信息.如图 3所示,注册的需求信息由以下相互关联的 3个部分组成:

①需求注册信息.由一个需求 I D和一个三级分类编码组成.需求 I D是MA中该需求的唯一标识,是需求与其他信息关联的纽带,三级分类编码是对该需求所属行业及其子行业的层次分类编码,使 SA减少与不相关行业 RA的接触.

图 3 需求的分类及其关联注册信息

②相关行业信息.一个需求可能比较复杂,需1个以上相关行业的服务协作解决,如一个“旅行代理”需求可能还需要航空运输业、金融业甚至快递业等行业的支持,而这些相关行业或许都需相应的服务来完成,所以仅仅注册需求所在的行为信息是不全面的,可能会使大量 SA找不到可以为之服务的需求.MA通过一个与主需求关联的一组分类行业编码来标注这一信息.

③关键词信息.随着需求的不断增加,注册在同一行为分类中的需求可能会很多,这会增加 SA与一些无关 RA接触的机会,使系统增加不必要的开销.为此,在注册库中设计存储了一组与需求相关的关键词.

2)分类编码器.分类编码器使得 RA和 SA不需要对需求和服务进行编码,只要提供相关行业的描述,MA就会根据行业分类的知识,给它们分配一个三级编码.需求的主编码和相关行业编码将被存储到需求注册库中,而服务的分类编码将用于搜索需求.

3)搜索引擎.MA的搜索引擎是根据 SA的请求,搜索符合条件的潜在 RAs,其具体的搜索策略及其过程如下:①MA根据 SA提交的服务行业描述确定该服务的行业编码;②将该编码与 SA提交的关键词与需求注册库中的主需求注册信息及其关联关键词进行匹配,并记录匹配的需求 I D;③如果第 2步没有匹配的需求,则在相关行业需求注册信息中匹配,并记录匹配的需求 I D;④将匹配的 RA进行必要的排序;⑤将结果 RA列表返回给请求的 SA.

4 实验及结果分析

中介Agent的设计将对 SA向 RA的聚集产生较大的影响,主要体现在 2个方面:一是MA能不能将足够全的满足服务能力的 RAs返回给相应的 SA;二是MA是否会返回给 SA太多无关的RAs.前者将导致 SA找不到合适的需求,后者将导致 SA与过多不相关的 RA接触,从而产生不必要的开销.下面将设计相应的实验,验证行业关联策略与关键词关联策略对改进以上两点所产生的影响.

4.1 实验设计

通过编制模拟程序来测试和验证,程序由Visual C#开发 ,在 W indows XP Professional SP3下运行;Net Framwork 2.0;CPU为 Intel Pentium(R)1.7 GHz;内存 512 M.

采用随机整数模拟三级分类编码、需求及服务能力.为使 SA具有足够匹配的 RA数,实验选择了以下固定参数:一级分类码为 1个,二级分类码为 10个,三级分类码为 50个.其他可调参数还包括:RA个数、SA个数和一个确定分类中允许的不同功能数.设计的 2个实验如下:1)行业关联策略对需求搜全率的影响;2)关键词策略对返回RA的个数的影响.

4.2 结果与分析

4.2.1 行业关联策略对需求搜全率的影响

设置 RA的个数为 500,SA的个数为 1 000.在一个确定分类中允许的不同功能数为 100的情况下,通过穷尽搜索法、无行业关联的简单搜索法和行业关联策略搜索法,分别搜索与每个 SA的服务能力匹配的 RA个数的平均值,记为 Nall,N0和 Nr,计算

式 (1)中:Qr表示当采用行业关联策略时,搜到 RAs中包含的能满足服务能力的需求数占所有需求中能满足服务能力的需求数的比例;Q0表示当不采用行业关联时的相应比例.图 4为重复10次实验的 Qr和 Q0的分布情况.实验表明:在简单搜索的情况下,SA能搜到满足服务能力的需求的比例明显低于采用相关行业关联策略后的情况.

图 4 行业关联策略对需求搜全率的影响

4.2.2 关键词策略对返回 RA个数的影响

设置 RA的个数为 1 000,SA的个数为5 000.在一个确定分类中允许的不同功能数为 200的情况下,记:1)与服务能力匹配的平均 RA数为 Re;2)当采用关键词策略时,MA返回给 SA的平均RA数为 Rk,当不采用关键词策略时,MA返回给SA的平均 RA数为 R0.

图 5显示了重复 10次实验的 Re,Rk和 R0的分布情况.实验表明:不采用关键词策略会有大量

的无关 RA返回,而采用关键词策略后返回的 RA只比准确的 RA略高一点.所以,采用关键词策略可以大大降低 SA与无用 RA接触的机会,从而减少了不必要的网络开销.

图 5 关键词策略对返回 RA数的影响

以上 2个实验说明:在中介 Agent的设计中,采用了相关行业关联策略可以使 SA搜索到尽可能全的 RA,而采用关键词策略可以使 SA搜索到尽可能准确的 RA.

5 结束语

将Web服务看成是主动的服务 Agent实体,面向服务的计算将演变成一种非集中式的分布式结构.MAS[9]为这种分布式结构提供了有力的支持,本文为实现服务 Agent向需求 Agent的聚集,设计了一种多 Agent协作框架,初步解决了服务聚集中的效率和负载均衡问题.

[1]郑丽伟,金芝.需求驱动的主动网构实体聚合[J].软件学报,2008,19(5):1083-1098.

[2]叶荣华,金芝,王璞巍,等.一种需求驱动的自主Web服务聚集方法[J/OL].[2009-11-20].http://www.jos.org.cn/1000-9825/3666.htm.

[3]W3C Working Group.Web ServicesArchitecture[EB/OL].[2009-02-11].http://www.w3.org/TR/ws-arch/.

[4]Wang Puwei,Jin Zhi,LiuLin,et al.Building toward capability specificationsofweb services based on an environmentontology[J].IEEE Trans on Knowledge and Data Engineering,2008,20(4):547-561.

[5]UDD I Spec Technical Committee.UDD IVersion 3.0.2[EB/OL].[2009-10-19].http://uddi.org/pubs/uddi_v3.htm.

[6]Sen S.Reciprocity:A Foundational Principle for Promoting CooperativeBehaviorAmong Self-Interested Agents[C]//Proceedingsof the Second International Conference onMulti-Agent Systems.Kyoto:AAA I,1996.

[7]Juszcyk L,MichlmayerA,Platzer C.Large scaleweb service discovery and composition using high performance inmemoryindexing[C]//Proceedings of IEEE Joint Conference on E-Commerce Technology(CEC′07)and Enterprise Computing,E-Commerce and E-Services(EEE ′07).Tokyo:The Electronics,Information and Systems Society,the Institute of Electrical Engineers of Japan in Technical Cooperation with the IEEE and IEEE Computer Society,2007.

[8]Lin Fuhua,Norrie D H.Schema-based conversation modeling for agent-oriented manufactu-ring systems[J].Computers in Industry,2001,46(3):259-274.

[9]Jacques F.Multi-Agent Systems:An Introduction to Distributed Artificial Intelligence[M].Harlow UK:AddisonWesleyLongman,1999.

猜你喜欢

管理器列表关联
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
学习运用列表法
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
扩列吧
“一带一路”递进,关联民生更紧
Windows文件缓冲处理技术概述
奇趣搭配
智趣
列表画树状图各有所长