维普资讯 http://www.cqvip.com 计算机与现代化 2007年第7期 JISUANJI YU XIANDAIHUA 总第143期 文章编号:1006-2475(2007)07-0034-04 基于语义的Web服务发现机制研究 陈锦源 (广州体育学院计算机教研室,广东广州510500) 摘要:针对基于关键词Web服务发现的不足,采用OWL—S作为服务描述语言,为Web服务添加语义描述,构建一种基 于语义的web服务发现机制。本文首先将Web服务请求进行语义解析,生成请求服务文档,然后在服务注册库中通过 服务匹配算法,得到候选服务集,并借助线形评价标准对所选服务进行语义评估,为服务请求者选择最优的服务。 关键词:Web服务;语义Web;服务匹配 中图分类号:TP393 文献标识码:A Research on Web Service Discovery Mechanism Based on Semantics CHEN Jin—yuan (Computer Research and Teaching Department,Guang ̄hou Institute of Physical Education,Guangzhou 510500,China) Abstract:Aiming at the problem of Web services finding based on keywords,the paper uses Web ontology language for services as describing language of Web service to add semantic content for Web service to conceive fl Web service discovery mechanism based on semantic.The paper processes semantic parse ofr Web service request,and creates Web service request document,then carries out service matching in service register warehouse for ifnding satisfy services,at the same time,applyies linear appraising criterion in the service set to choose optimization service for service demander. Key words:Web services;semantic Web;service matching 0 引 言 理Web服务,因此,基于语义的Web服务发现逐渐成 为了当前研究的热点。 随着互连网的高速发展和广泛应用,各种基于网 OWL.S作为一种基于本体的、用于语义Web服 络的web服务如雨后春笋般出现了,Web服务已从 务描述的规范语言,主要包括三部分:Service Profile、 静态页面的存储库发展到了今天的交互式的、自动 Service Model、Service Gounding,分别说明Web服务 的、智能的Web服务存储库。然而目前基于web服 提供什么样的服务、Web服务具体是怎样工作的、服 务发现一般在语法描述的基础上,通过关键词匹配来 务调用方具体怎样使用Web服务。本文通过采用 实现,由于这些方案缺乏对服务语义的详尽描述,这 OWL.S作为服务描述语言,为Web服务添加丰富的 样在服务处理过程中可能导致下列问题…:(1)在 语义描述,使服务提供者、服务请求者以及服务处理 Web服务处理过程中,只能静态绑定web服务来完 程序都能充分理解服务,并以此构建基于语义的Web 成相应的业务处理;(2)很难改变现存的设置以便协 服务发现模型,在模型中首先将服务请求进行语义解 调新的Web服务处理;(3)业务处理程序不能根据需 析,生成请求服务文档,然后在服务注册库中通过进 求者的请求动态选择最优化的Web服务;(4)没有提 行服务文本匹配、服务功能匹配、服务质量匹配,得到 供根据服务质量参数选择Web服务的功能。语义 候选服务集,最后借助线形评价标准对所选服务进行 Web作为扩展当前的Web服务的方式,使得网络中 语义评估,从中选择最优的服务返回给服务请求者。 所有信息都具有语义特征,方便计算机理解和自动处 收稿日期:2007-05439 作者简介:陈锦源(1965.),男,广东澄海人,广州体育学院计算机教研室讲师,研究方向:计算机应用,体育统计。 维普资讯 http://www.cqvip.com 2007年第7期 陈锦源:基于语义的Web服务发现机制研究 35 1语义Web服务发现模型 为了对已有的服务描述本体和用户的服务需求 本体进行比较,从而找到和用户需求相匹配的Web 服务,使服务需求和服务描述能够精确匹配,本文在 总结已有的Web服务发现研究成果的基础上,为增 加匹配的精确度,分别从文本描述、服务功能描述、参 数描述三个方面来对Web服务请求和Web服务信息 进行匹配,并以此构建一个基于语义的Web服务发 现模型,如图1所示。 I OWl 一S请求服务I I Web服务调用l I I服务语义解析l l服貉涪义评仙 I 图1基于语义的Web服务发现模型 服务请求者通过一个OWL—S文档,对所需服务 进行描述,在基于语义的Web服务发现模型下首先 对服务请求进行预处理,生成服务请求文档,在服务 注册库中根据服务请求文档,进行文本匹配度计算; 其次进行功能匹配(在这一步主要进行IO匹配度和 PE匹配度);然后进行服务质量参数匹配,得到候选 服务集,最后借助线形评价标准对所选服务进行语义 评估,对所选服务进行排序,从中选择最优的服务返 回给请求者。 2用户请求服务语义解析 为了发现满足用户需求的服务,服务注册库首先 必须理解用户的需求,因此需要将用户的服务请求生 成一个机器能够理解的需求文档,然而用户通常是通 过页面来输人自己的需求,而这种需求常是文本形 式,所以必须要对文本形式的用户需求进行语义解 析,生成一个XML格式的服务文档 。 定义1需求集(Request Set):需求集是这样的一 个集合: {(Value(1),Property Type(1),Class Name(1)),…, (Value(n),Property Type(n),Class Name(n))} 其中集合的每一个元素是这样的一个三元组 (输人值,属性,类名)。 定义2需求类表(Request Class List):Request Class List是这样的一个集合: {Class Name(1),Class Name(2),…,Clsas Name(n)}满 足 V element∈Request Set I element.3∈Request Class List 集合Request的每一个元素的第三项值构成Request Class List,且Request Clsas List中的元素是不重复的。 根据如上的定义,将用户的服务需求解析成如下的Re. quest.xml文档。 <RequestProduet> <Customer> <CusName>CustomName</CusName> <CusAddress>CustomAddress</CusAddress> </Customer> <ClassNamel> <PropertyTypel>Valuel</PropertyType1> <PropertyType2>Value2</PropertyType2> </ClassNamel> 其中,Customer里面描述的是服务请求者的相关 信息,Request.xml中的每一个ClassName均定义在 RequestClassList中。需求集中所有属于同一个Class- Name下的属性值列在该ClassName里面,然后根据 需求类表,生成该request对应的requestprofile,如下 所示: <rdf:RDF rdf:ID=”RequestServiee”> <profile:hasInput rdf:resource=”concept.owl#Clsas・ No.me1 ,> <profile:hasInput rdf:resource=”concept.owl#Class・ Name2 ,> </rdf:RDF> 3 Web服务匹配算法 使用服务匹配算法构造服务匹配器,对已有的服 务捕述本体和用户的服务需求本体进行匹配,从而找 到和用户需求相匹配的Web服务。为了使服务需求 和服务描述能够精确匹配,本文提出一个比较相似度 (匹配度)的匹配方法,通过对服务请求和服务发布进 行i个层次的匹配,分别为:(1)服务文本描述的匹配; (2)服务功能的匹配,主要包括服务输入/输出参数、服 务前提和效果的匹配;(3)服务质量的匹配。其中通过 服务文本描述的匹配从结构方面确定服务是否满足需 要,通过服务功能的匹配确定服务的功能是否满足需 要以及判断用户是否能够提供完成服务所需的条件, 从服务质量非功能属性方面对查找到的服务进行最后 维普资讯 http://www.cqvip.com 36 计算机与现代化 2007年第7期 。的筛选。相似度匹配完成以后,借助线形评价标准对 的相似度 所选服务进行语义评估,并认为匹配度值最高的服务 Input Similarity[i]=ConceptSet Similarity(Request.input, 是服务请求者最理想服务的思想,对所选服务进行排 Service[i].input); 序,从中选择最优的服务返回给请求者。 Output Similarity[i]=ConceptSet Similarity(Request.out- 3.1文本相似度匹配 put,eSrvice[i].output); 文本相似度匹配是针对服务文本描述的语义匹 //计算服务之间的相似度 Service Similariyt[i]=( Input Similarity[i])+(B% 配,本文采用在单词相似度的基础上实现文本的匹 Output Similariyt[i]); 配,首先按照Word Net本体将文本抽取成相应的单 ∥判断是否大于用户设定的最小相似度阈值 词,并且过滤掉一些诸如语气词,助词等虚词,将抽取 If(Service Similarity[i]>=Request.MiniDegree) 出的单词按照词性分成名称、动词、形容词和副词四 ServiceList.add(Service[i]); 类,在不同的词性集合中计算单词的相似度,最后综 return ServiceI.,iSt: 合所有单词的相似度即得到文本相似度。 } Word Net支持四种词性:名词,动词,形容词和 在完成服务输入/输出参数匹配(I/O匹配)运算 副词,每个词性都有一组词义与之对应,同时每一个 后,然后进行服务前提和效果的匹配(PE匹配),PE 词义都对应唯一同义词组,在这些同义词组中会包含 匹配是对IO匹配的补充,可以表达服务输入/输出接 其他有相同词义的词,这些词之间的关系为同义关 口不能描述的功能信息,有利于更精确地发挥功能匹 系。计算同一词性中的两个单词的相似度主要是通 配的作用。PE是指Web服务需要满足的前提条件 过依次计算两个单词词义集合中所有词义间的相似 (Precondition)和服务会产生的效果(Effect),它们可 度,其中最大的相似度作为两单词间的相似度度量 以看作表达状态相关的信息。 值。设两个单词w1,w2,w1有m个词义s sm…, 3.3服务质量匹配算法 s w2有n个词义s21,s22,…,s2 ,则wl和w2的相似 基于服务质量(QoS)的匹配是在大量功能相似 度使用sim(w1,w2)表示单词相似度,使用sims( 的Web服务的情况下,为了发现最佳服务而提出的, S¨,S )表示词义相似度,然后针对不同的词性分别计 是对功能语义相似匹配的补充,QoS的匹配关键在于 算相应的相似度,完成服务文本相似度的计算,具体 比较用户请求和发布服务间的服务质量参数值,主要 算法可参考文献[3]。 从服务响应时间(time)、服务成本(cost)、服务可 3.2 Web服务功能匹配 靠度(reliability)三项进行比较,即QoSModel:(time, 服务功能匹配是整个匹配策略中最重要的部分, cost,reliability)的匹配度。并根据质量参数对应的质 服务功能匹配是找到匹配服务的重要步骤,特别是请 量度量取值大小不同代表的意义的不同,将服务可以 求服务的输入/输出与发布服务的输入输出之间的匹 分为两大类:一类是质量度量的值(value)越大代表 配。具体方法为:对服务注册库中的服务列表Serv- 该质量参数越优(如可靠性);另一类是质量度量的 ices中的每一个服务和用户请求Request=<DO,In- 值(value)越小代表该质量参数越优(如响应时间,服 put,Output,ServiceCategory,MiniDegree>进行服务相 务成本)。 似度的计算,如果一个服务请求和一个发布的服务有 4 Web服务语义评估算法 相同的输入和输出,那么可以判定,它们是完全匹配 的,对于不是完全匹配的服务,则通过服务功能匹配 为了得到满足用户需求的服务,本文在通过进行 算法计算相应的匹配值。 上述服务文本匹配、功能匹配、服务质量匹配的基础 服务功能匹配算法的形式化描述如下: 上,在服务注册库中得到满足服务请求的候选服务 List WebServicesMatch(Request,Services,ServiceList, ,B) 集,应用相似性衡量的阈值,为每个服务请求返回一 { 个候选服务集,参考文献[1]的服务评估方法,将得 //Request为服务请求描述;Services为待匹配服务集合; 到的候选服务集按照线形评估值进行排序,匹配值最 eSrviceList为匹配到的服务列表; 高者为最佳服务,具体评估算法用伪代码描述为: //a,B分别为输入集合、输出集合的权重 +B一1; ListmatchList(adS,reS){ For each eSrvice[i]in eSrvices for each adS in adServices do{ //计算Request和Service[i]的输入/输出参数集合之间 //fl,f2,t3分别为用户指定的基本信息、功能信息、服 维普资讯 http://www.cqvip.com 200r7年第7期 务质量的阈值 陈锦源:基于语义的Web服务发现机制研究 37 请求者以及服务处理程序都能充分理解服务,并以此 构建基于语义的Web服务发现模型,在模型中将服 if(simbas>fl&&simfunc>f2){ If(reS.QoS=nul1) matehList.append(ads); else if(simQoS>f3) matehList.append(adS); 务请求进行语义解析,生成服务请求文档,在服务注 册库中通过进行服务文本匹配、功能匹配、服务质量 匹配,得到候选服务集,借助线形评价标准对所选服 务进行语义评估,从中选择最优的服务;最后使用服 务查准率和查全率作为度量Web服务发现性能的指 } } matehListResuh=sort(matehList); 标,对Web服务发现机制进行分析。 //按服务综合相似度降序排列 return matchListResult; 参考文献: } [1]满君丰,杨伟丰,朱艳辉,等.语义Web服务的相似性方 在服务调用时,如果最佳服务暂时不能参加此次 法研究[J].计算机应用与软件,2006,23(10):15~17. 服务处理操作,则系统可以选择次优的服务,这免去 [2] 沈玮耩,蔡鸿明,姜丽红.一种基于语义Web服务的服 了重新查找服务的麻烦。 务自动发现的实现[J].计算机工程,2006,32(18): 211~213. 5 结束语 [3] 仲梅,宋顺林.一种语义Web服务的多层次匹配方法 [J].计算机应用,2007,27(1):199~201,204. 本文通过采用OWL。S作为服务描述语言,为 Web服务添加丰富的语义描述,使服务提供者、服务 (上接第25页) [1] Jiawei Han,Mieheline Kamber.Data Mining:Concepts and L口=No+1+ }SQ (9) Techniques[M].Morgan Kaufmann Publishers,Inc.,2001. 将式(9)代人式(7)和式(8),可以获得更好的查 [2]Henzinger M.Hypedink analysis for the Web[J].IEEE In- 询效果。 temet Computing,2001,5(1):45-50. [3]LinoffG S,BrryM JA.MiningtheWeb:Transforming Cus- 5结束语 tomer Data into Customer Value[M].Publishing House of Web是一个海量信息库,蕴含着巨量的信息资源, Electronics Industry,2002. 同时包含了丰富的动态和静态超链接信息,为数据挖掘 [4] Sepandar D Kanmvar,Taher H Haveliwala,Christopher D Manning,et a1.Exploiting the Block Structure of the Web 提供了丰富资源。传统的搜索引擎往往基于文本检索技 ofr Computing Pagerank[R].Stnadford:Stnadford Universi— 术,而对于一些文字描述较少的页面无法有效检索,通过 ty,2003. 对超链接结构的分析可以克服这一点。 [5]王艳华,张纪.web结构挖掘及其算法[J].计算机工程, HITS算法是Web结构挖掘中重要的算法之一, 20o5(Z1). 针对该算法存在的一些问题,许多学者提出了各种改 [6]杨炳儒,李岩,等.Web结构挖掘[J].计算机工程,2003, 进算法。HITS的改进算法有许多种,并且还在不断 29(20):28~30. 研究发展中。通过改进的HIST算法,可以获得较高 [7]韩亚洪,许卓明,等.Web信息检索中主题精选算法的研 的查询精确度,当然,也可能增加了算法的复杂度。 究与改进[J].计算机工程与应用,2004,40(17):174~ 如何改进HIST算法,使其具有较高查询准率和查全 178. [8]钟敏娟,林亚平,等.基于超链接和标记文本的信息检索 率,同时又能降低算法的复杂度,这应是HIST算法研 算法[J].小型微型计算机系统,2004,25(7):1344~ 究的方向。 1347. 参考文献: