基于服务上下文的Web服务发现机制
2012-07-25李武智
李武智,张 斌
(解放军信息工程大学电子技术学院河南省信息安全重点实验室,河南郑州450004)
0 引 言
Web服务技术随着互联网特别是Web应用技术的发展而出现的,作为一种新的Web应用模式,具有简单、跨平台、松耦合、分布式、使用标准规范和高度可集成等特性[1]。它能够在各种异构平台的基础上构建一个通用的、平台无关的技术层,使各种不同平台的系统能方便地实现连接与集成,从而确定了其主流地位。
单个Web服务可能只提供一个具体的功能,而将多个Web服务进行有机组合将能够完成一系列功能复杂的任务[2]。这种特点可使更多的 Web服务以组合的方式呈现,因此服务组合成为Web服务发展的热点。而服务组合时要求Web服务应能够动态地发现可调用的其它Web服务。但现有服务发现技术很难从庞大的Web服务注册库中发现满足服务请求者的服务。因此,Web服务发现成为Web服务组合过程中研究的重点。
尽管目前已经开展了针对服务组合过程中服务发现问题的研究,形成了多种服务发现方法。然而这些方法在解决服务发现的动态及安全问题时还面临很多挑战。如基于UDDI[3]的服务发现仅支持关键字的匹配,服务发现的效果差[4-5];基于语义的 Web服务发现,通过语义描述服务的功能进行匹配,而忽视了服务参与方上下文知识的表示,动态适应能力不足[6-8];文献[9]将基于角色的访问控制用于服务发现阶段,角色信息通过访问控制策略来解决服务发现的安全问题,存在角色管理复杂、服务发现动态性差等不足;文献[10-12]虽然将上下文用于服务发现,但其从广义理解出发,将服务发现所需信息都看作上下文,未具体考虑服务上下文。
因此,本文根据服务组合时服务发现的动态需求,在利用语义语言对服务描述的基础上利用服务上下文信息提出一种基于服务上下文的服务发现机制。
1 Web服务描述语言
服务发现通过对用户的服务请求和注册在服务库中服务进行便于发现的描述,并依据匹配算法对注册服务进行匹配,最后从所发现的服务中选择最佳服务。
对服务进行便于发现的描述需要一种服务描述语言,本文采用 OWL-S[13]来描述 Web服务。OWL-S是一个用OWL描述Web服务本体的语言,包括3种基本元素:profile服务、model服务和grounding服务。Profile服务描述服务的基本信息。它向查询服务的请求者提供服务的抽象描述,从而使其能够判断该服务是否满足需要。Model服务是用来描述服务的内部过程。Grounding服务是用来描述如何访问服务。OWL-S为 Web服务提供了一系列核心的语言结构,使服务能以一种无二义性的、计算机易读的语言来表达Web服务的概念和作用。其从语义的角度描述Web服务,主要优点是引进本体语言描述服务的功能和作用,并支持对服务组合上下文的描述,并且OWL-S描述上下文时易于知识共享、具有更强的表达能力,可以使用本体语言提供的推理机制进行上下文推理并便于知识重用。
2 基于服务上下文的服务发现算法
服务发现是通过服务请求与现有注册服务的匹配来实现。本文通过对上下文信息中的服务上下文匹配,提出一种基于服务上下文的服务发现算法 (a context-based web service discovery algorithm,CBWSDA)。
2.1 上下文信息
在Web服务组合过程中利用上下文信息进行服务选择。上下文信息是描述环境状态、资源信息、用户需求等影响服务的一些属性及属性的值,可分为用户上下文、资源上下文和服务上下文。本文主要考虑服务上下文。
服务上下文是指描述Web服务的当前状态和执行约束,包括允许的服务实例、当前已经初始化的服务实例、服务实例的预期完成时间、组合服务中的前驱服务和后继服务、服务自身性能。服务上下文的自身性能包括:可靠性、可用性、授权属性、响应时间、服务价格、正确执行率等。
2.2 Web服务上下文匹配
服务匹配是Web服务发现的关键,匹配度是服务请求和服务之间的相似程度。在上下文匹配中,采用本体树状结构的方法建立服务上下文的本体树进行匹配,利用服务上下文在本体树节点的位置计算匹配度,并按上下文匹配度大小将匹配结果以有序方式排列。
将每个服务上下文信息记录为一个索引项,其中包括服务标识、服务名、输入或输出,以及响应时间、授权属性等。本文利用OWL-S语义描述服务上下文,依据服务上下文的本体概念的上下级关系来建立服务上下文本体树,将服务上下文索引项表示为本体树的节点。在服务上下文本体树中,节点对应各个服务上下文索引项,边表示各上下文之间的语义关系,并且树状结构的各节点可随着服务上下文信息的添加、删除等动态变化。利用服务上下文感知其在服务上下文本体树中语义相似的服务索引项的节点,并通过相似服务上下文在本体树的节点位置结构来确定服务的匹配度。如图1所示,举例说明旅行交通服务上下文本体树的建立及服务发现过程。图中旅行交通服务的飞机服务受天气服务及景点服务等上下文因素影响。
图1 旅行交通服务上下文本体树
(1) “机票服务”的名称及内容分别由OWL-S服务profile中Service Name和Text Description描述。“机票服务”的OWL-S描述:
</owl:Ontology>
<profile:Profilerdf:ID="AirTicket_SEARCH _PROFILE"><profile:serviceName xml:lang="en">
"AirTicket"search service
</profile:serviceName>
<profile:textDescription xml:lang="en">
This service supply aproperties of a given"Air Ticket",including its price.
</profile:textDescription>
<profile:hasInput rdf:resource="#_AirTicket/>
<profile:hasOutput rdf:resource="# _servicecontext"/>
(2)本体可以通过带标记的有向树来表示,节点描述为服务上下文索引项,根据本体概念的继承关系从大到小建树。如图中 “机票服务”到 “飞机服务”的连线表示子类和父类之间的继承关系。
(3)通过比较 “机票服务”的语义描述和树中节点的本体描述中服务名称及内容的继承关系在树中确立其节点位置。
(4)以图中新添加节点 “机票服务”与 “飞机服务”、“火车服务”为例比较,借鉴文献 [14]计算匹配度大小的方式,定义服务上下文匹配度M如下
式中:ai、aj分别对应图中相比较的两个服务上下文索引项,如m火车和n机票分别表示它们在本体树的节点深度,s火车和d机票分别表示这两个节点相对其最近的共同祖先“按天气服务”的深度,l按天气表示 “机票服务”和 “火车服务”最近的共同祖先的深度等。可计算得M火车=2/7、M飞机=6/7,则M火车<M飞机。同时其匹配数值大小在 [0,1]之间,且0表示不匹配,1表示完全匹配。所计算的M数值越大,表示两个相关服务上下文的匹配度越高。因为满足低匹配度的可选服务数量相对较多,为节约资源及时间,定义一个阀值δ表示服务匹配的最小匹配度,其初值由服务管理者根据服务数量折中选取,用户可依需求自行设置。当M≥δ时,表示服务上下文匹配成功,将服务上下文的索引项按服务的上下文匹配度大小为服务请求者提供一个降序排列的服务列表。如果M<δ时,则不显示所匹配的服务,服务将被淘汰,继续匹配其它服务。
这种服务匹配方法具有以下优势:将服务上下文匹配度作为服务选择的重要依据,使得匹配度较高的服务被选中的概率较大;服务上下文各节点动态变化,服务可选列表依匹配度实时更新,确保新加入满足条件的服务可被选中。
2.3 服务发现算法
根据2.2节服务上下文匹配的方法,本文提出一种基于服务上下文的服务发现算法CBWSDA,该算法的基本思想是通过输入语义描述的服务集信息及服务请求的服务上下文信息SC、服务上下文匹配度计算函数M以及最小匹配度阀值δ,在生命周期内经过上下文匹配后,输出匹配度降序排列的服务信息列表L或服务匹配失败信息。因此,本文提出CBWSDA算法如下:
输入:服务集信息及服务请求的服务上下文信息SC、时间周期为T、上下文匹配度计算函数M以及最小匹配度δ。
输出:服务信息列表L或失败信息。
Algorithm
1 begin
2 set result(L)=null,sc∈SC;
3 t=0,M=δ;
4 while(t<=T)
5 Create SCOntologyTree()//创建服务上下文本体树
6 while(SC≠ )do
7 {
8 for each sc∈SC;
9 semantics describe SC;
10 nodes= (all constitute of SC);//各节点由服务上下文索引项组成
11 Traverse (SCOntologyTree)
12 for all sc∈nodes;
13 find (sc.length (),sc.depth ());//查找相关各节点的距离、深度
14 count Match=M;//使用式 (1)计算服务上下文匹配度
15 if(M>=δ)
16 {
17 add(sc)to L;//添加选择的对应M的服务对列表L
18 sort match(M);//按服务上下文匹配度对列表L进行排序
19 return (L);
20 else
21 return false;
22 }
23 end
24 }
25 end
3 模拟实验分析
本文对基于服务上下文的服务发现机制进行了仿真实验,实验目的如下:①比较CBWSDA算法与其他服务匹配算法在执行效率上的差异。②比较CBWSDA算法与其他服务匹配算法在查准率上的性能差异。
本文选取用于服务发现的LS(logic semantic)算法[15]与CBWSDA算法进行比较分析,LS算法是基于语义的常用服务发现,该算法中将服务匹配度分为4类:完全匹配、插拔匹配、包含匹配、匹配失败。通过仿真实验比较两种算法在执行时间和查准率上的差异。实验数据集来自OWL-S的服务检索测试集owls-TC v4[16],该测试集包含了符合OWS-L标准且覆盖了教育、医疗保险、食品、旅行、通信、经济和军事等7个应用领域的服务,选取其中50个服务作为实验所用服务,使用OWL-S描述所选服务,利用MATLAB软件对算法进行模拟实验。
实验方法和过程如下:
(1)对两种服务发现算法定义一致的语义描述请求;
(2)以5个服务为基点,数量每次增加5至50结束,共从owls-TC v4中选取10组Web服务;
(3)利用MATLAB软件分别通过两种算法对每组数据进行仿真实验,共进行20次匹配实验;
(4)通过MATLAB软件比较两种算法在相同服务数量下,各次仿真实验的执行时间和查准率,并分析结果。
最终实验结果分析比较如图2、图3所示。
图2 两种算法执行时间比较
图3 两种算法查准率比较
实验结果表明,在相同服务数量下,两种算法的响应时间随着服务数量的增加而增大,同时其都在服务请求者可接受范围之内;但CBWSDA算法比LS算法响应时间短,执行效率高,能更好地满足服务发现需要。
由图3可知,在相同服务数量下,两种算法查准率随着候选Web服务数量的增加而降低,但CBWSDA算法的查准率降幅较小,其查准率优于LS算法的查准率,能更好地满足服务发现需求。
4 结束语
服务组合是当今Web服务研究的热点,而服务组合过程中服务发现是服务组合的重点,为解决服务组合的发现问题,本文提出了一种基于服务上下文的Web服务发现机制,通过OWL-S描述语言和服务匹配算法对服务的上下文进行筛选,将符合上下文信息的Web服务按匹配度大小优先返回给服务请求者,满足服务组合过程中服务选择的动态性,并通过模拟实验证明了机制的有效性和可行性。下一步将深入研究服务组合过程中服务发现机制的安全问题。
[1]YANG Tao,LIU Jinde.Survey of web service:A service oriented distributed computing paradigm [J].Computer Applications,2004,24 (8):1-4 (in Chinese). [杨涛,刘锦德.Web Services技术综述-一种面向服务的分布式计算模式 [J].计算机应用,2004,24 (8):1-4.]
[2]XIA Haijiang,DENG Shuiguang,WU Zhaohui.Research and design of web services dynamic composition method [J].Computer Engineering and Design,2007,28 (6):1334-1337 (in Chinese).[夏海江,邓水光,吴朝晖.Web服务动态组合方法研究与设计 [J].计算机工程与设计,2007,28 (6):1334-1337.]
[3]Luc Clement,Andrew Hately,Claus von Riegen,et al.Universal description discovery&integration [EB/OL].http://www.uddi.org/pubs/uddi_v3.htm,2004.
[4]QIU T,LI L,LI P.Web service discovery with UDDI based on semantic similarity of service properties [C].Xi’an:Proceedings of Third International Conference on Semantics,Knowledge and Grid,2007:454-457.
[5]ZHAO Song,WANG Hong,YAN Yi.Design and implementation of extending UDDI in workflow composed of web services[J].Computer Engineering and Design,2009,30 (1):216-218(in Chinese).[赵松,王红,阎嫕.Web服务组合工作流中扩展UDDI的设计与实现 [J].计算机工程与设计,2009,30 (1):216-218.]
[6]CUI Hua,YING Shi,YUAN Wenjie,et al.Review of semantic web service composition [J].Computer Science,2010,37 (5):21-25(in Chinese).[崔华,应时,袁文杰,等.语义Web服务组合综述 [J].计算机科学,2010,37 (5):21-25.]
[7]QIU Tian,HU Xiaohui,LI Pengfei,et al.A semantic matchmaking system mechanism for web service discovery based on OWLS [J].Acta Electronica Sinica,2010,38 (1):42-47 (in Chinese).[邱田,胡晓惠,李鹏飞,等.基于OWL-S的服务发现语义匹配机制 [J].电子学报,2010,38 (1):42-47.]
[8]HE Chaobo,CHEN Qimai.Study on approach for web services discovery based on ontology [J].Computer Engineering and Design,2010,31 (7):1421-1423 (in Chinese).[贺超波,陈启买.基于本体的 Web服务发现方法研究 [J].计算机工程与设计,2010,31 (7):1421-1423.]
[9]HAN Jun,HUAI Xiaoyong,ZHAO Chen.Secure web services discovery method based on access control [J].Computer Engineering,2008,34 (7):137-141 (in Chinese).[韩隽,淮晓永,赵琛.一种基于访问控制的安全Web服务发现机制 [J].计算机工程,2008,34 (7):137-141.]
[10]Maamar Z,Benslimane D,Narendra N.Why can context do for Web services[J].Communications of the ACM,2006,49 (12):98-103.
[11]WANG Yuxiang,QIAO Xiuquan,LI Xiaofeng,et al.Research on context-awareness mobile SNS service selection mechanism [J].Chinese Journal of Computers,2010,33(11):2126-2135 (in Chinese). [王玉祥,乔秀全,李晓峰,等.上下文感知的移动社交网络服务选择机制研究 [J].计算机学报,2010,33 (11):2126-2135.]
[12]TANG Lei,HUAI Xiaoyong,LI Mingshu.An approach to dynamic service composition based on context negotiation [J].Journal of Computer Research and Development,2008,45(11):1902-1910 (in Chinese).[唐磊,淮晓永,李明树.一种基于上下文协商的动态服务组合方法 [J].计算机研究与发展,2008,45 (11):1902-1910.]
[13]Martin D,Burstein M,Hobbs J,et al.OWL-S:Semantic markup for web services [EB/OL].http://www.w3.org/Submission/OWL-S,2008.
[14]Maguitman A G,Menczer F,Roinestad H,et al.Algorithmic detection of semantic similarity [C].Proceedings of the 14th International Conference on World Wide Web.New York:ACM Press,2005:107-116.
[15]Paolucci M,Kawamura T R.Semantic matching of Web service capabilities[C].Proc of the First Intl Semantic Web Conference,Italy:Sardinia,2002:333-347.
[16]Sem Web Central.OWLS-TC:An OWL-S service retrieval test collection [EB/OL].http://projects.semwebcentral.org/projects/owls-tc v4,2010.