CN101394428A - 一种服务定位方法 - Google Patents
一种服务定位方法 Download PDFInfo
- Publication number
- CN101394428A CN101394428A CNA2008102264259A CN200810226425A CN101394428A CN 101394428 A CN101394428 A CN 101394428A CN A2008102264259 A CNA2008102264259 A CN A2008102264259A CN 200810226425 A CN200810226425 A CN 200810226425A CN 101394428 A CN101394428 A CN 101394428A
- Authority
- CN
- China
- Prior art keywords
- node
- service
- sequence
- semantic
- notion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种服务定位方法,提供了一种面向语义服务的分布式服务发现系统,该分布式服务发现系统通过本体图分割算法将本体图切割为多个CG,每个CG中的概念语义相似;并将服务的语义描述信息转化为CG序列,即产生变长概念区域组合序列的编码;同时分布式服务发现系统中的节点与概念区域序列相对应,组成有结构的语义P2P网络,通过支持概念区域序列的基于前缀语义路由的策略来实现服务定位,将大规模本体概念描述的大规模服务进行有效的分布式存储与发现,提出的方案具有很强的通用性,不仅仅局限于基于语义的Web服务的发现和管理上,还可以扩展到网络上通用资源的描述、管理和定位发现上。
Description
技术领域
本发明涉及服务管理领域,特别是指一种基于语义的服务定位方法。
背景技术
语义Web服务(Semantic Web Services)技术通过使用本体为Web服务的描述提供语义信息,使Web服务能够为机器所理解,并且为Web服务的自动发现提供了技术基础。语义Web服务通常由一系列的本体概念来描述,而现实世界中许多领域的本体都是由成千上万的概念组成,这些本体概念组合的数量是海量的。如何有效、合理的管理由这些本体概念组合所描述的海量Web服务,成为大规模Web服务发现系统的一个难题。
基于集中式注册中心的Web服务发现,受性能瓶颈、单点故障、查找效率低等诸多问题的影响和制约,从而严重影响了Web服务发现的效率。为了避免集中式Web服务发现机制的缺点,出现了一些基于对等网络(P2P,Peer to Peer)技术的分布式Web服务发现解决方案。
按照网络结点间的逻辑联结方式,对等网络的拓扑结构从总体上说可分为两类:无结构化拓扑和结构化拓扑。无结构对等网络虽然结构简单,可以支持复杂的服务查询请求,但其查询效率、查全率、查准率均较低,并且由于需要消耗巨大的网络带宽、可扩展性差,不适用于大规模网络。基于分布式哈希表(DHT,Distributed Hash Table)的有结构对等网络是一种确定性拓扑结构,具有很强的伸缩性和很高的查询效率,但其缺点是只支持单一关键字的精确发现,无法进行复杂查询和语义查询。
目前,已有的基于对等网络的Web服务发现主要集中于无结构对等网络,其主要方式是根据语义关系对结点进行分簇,聚集语义关系相近的结点。服务查询请求采用基于语义的洪泛式或启发式路由,但依然无法摆脱查询效率低、可扩展性差的问题,不适合应用于大规模的分布式服务发现系统。而基于有结构对等网络的语义服务定位方案相对较少,已有方案多是在有结构对等网络之上构建语义叠加结构,将语义查询映射为非语义的哈西值,由对等网络根据哈希值使用自身的路由机制进行路由,完成服务定位过程,但是查询效率比较低,并且查全率、查准率无太多改善,还需要同时维护语义叠加结构和有结构对等网络,所需代价也比较高。
而对于将语义与有结构对等网络、路由机制相融合,使网络结点按照彼此间的语义关系进行组织,按照语义信息直接进行路由的研究刚刚起步,基本没有成熟可行的方案。而且当前基于对等网络的Web服务发现机制,基本都是从单个本体概念之间的关系入手,还未考虑大规模本体图将会严重影响Web服务发现的效率。
综上所述,目前急需提供一种有效的适用于大规模本体图的Web服务发现方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种服务定位方法,对大规模本体概念描述的大规模服务进行有效的发现。
为达到上述目的,本发明的技术方案是这样实现的:
一种服务定位方法,该方法包括以下步骤:
A、通过本体图分割算法将本体图切割为多个概念区域CG,每个CG中的概念语义相似;
B、将服务的语义描述信息转化为CG序列,将语义相似的服务分类至相同的CG序列中;
C、收到服务定位请求时,将所述服务定位请求中的语义描述信息转化为对应的CG序列,根据节点上的路由信息基于前缀语义路由策略发现服务。
所述步骤A包括以下步骤:
A1、首先生成概念本体图C的最小生成树C’,初始化C’中的每个概念为一个簇Bi;
A2、判断当前簇的数量m是否大于本体图期待分割的CG数量K,如果大于,则令i=0,然后执行步骤A3;如果不大于,则继续执行步骤A6;
A3、判断i是否小于m,如果小于,则令j=0,然后继续执行步骤A4,如果不小于,继续执行步骤A5;
A4、判断j是否小于m,如果不小于,则令i加1,然后返回执行步骤A3,如果小于,则计算Bi、Bj两个区域中任意两个概念之间的链接数,即link(cf,cl),其中f≠l,cf包含于Bi,c1包含于Bj,根据link(cf,cl)计算goodness(Bi,Bj),令List[i][j]=goodness(Bi,Bj),令j加1,然后返回执行步骤A4;
A5、从List中挑选出最大值List[p][q],将Bp、Bq合并得到新的Bn,令m减1,然后返回执行步骤A2;
A6、返回Bi,i=1...K。
步骤A4中所述计算link(ci,cj),包括:
概念ci和cj的概念相似度为: 其中,cij表示概念ci和cj在本体树上的共同祖先,depthOf(ck)为返回概念ck在本体树上的深度;
概念ci和cj的链接数为: 其中,i≠j,阀值ε是可配置参数,取值范围是[0,1)。
步骤A4中所述goodness(Bi,Bj),为: 其中,size(Bk)为返回聚类Bk包含的概念数量。
所述步骤B包括以下步骤:
B1、判断本体图分割算法是否执行过,如果执行过,则继续执行步骤B2,如果未执行过,则返回执行步骤A;
B2、判断是否对服务的语义描述信息集合进行遍历,如果已经遍历所述语义描述信息集合,则结束当前处理流程;如果未遍历所述语义描述信息集合,则从所述语义描述信息集合中提取描述服务的本体概念序列,并循环遍历本体概念序列中的每个概念,获取其所属的CG,得到CG序列;然后去除CG序列中重复的元素,并排序得到CG序列G’,将S归入到所述G’集合中,然后返回执行步骤B2。
所述步骤C之前进一步包括以下步骤:
C01、定义节点标识并初始化,令i=0;
C02、判断i是否小于K,如果不小于,则继续执行步骤C05,如果小于,则为R随机赋值为0或者1,判断R是否等于1,如果等于,则继续执行步骤C03,如果不等于,则继续执行步骤C04;
C03、概念C为随机选取的CG[i]中的一个概念,将概念C添加在节点标识中;
C04、i加1,然后返回执行步骤C02;
C05、返回节点标识。
由特定于当前所述节点标识的CG序列组成伪路由表,所述伪路由表包括:第n行包含K个集合元素T,其中Ti,i=1至K,表示,前n个CG位与当前节点的前n个CG位相同;并且,第n+1个CG位取自K个CG中与第n个CG偏序有效的第i个CG元素;并且,自第n+2个CG位开始取任意不同长度的且与第n+1位CG偏序有效的CG序列。
根据所述伪路由表得到路由表,将伪路由表中的CG序列用真实存在的CG序列实例代替。
所述步骤C包括以下步骤:
C1、收到服务定位请求的节点首先查看服务定位请求的服务特征向量是否与其自身的节点标识属于同一个CG序列,如果属于,则继续执行步骤C2,如果不属于,则继续执行步骤C3;
C2、判断叶子表中是否有叶子节点与服务特征向量语义完全匹配,如果完全匹配,则将服务定位请求转发给叶子节点,该叶子节点收到服务定位请求后,将使用语义相似度计算公式,选择一个或多个与服务定位请求最匹配的服务描述信息返回,如果不匹配,根据叶子节点路由算法进行路由,将该服务定位请求转发到与服务定位请求的服务特征向量语义最相似的节点;
C3、将使用路由表进行路由,令l=shl(V,A),然后判断R1 V1(len(V))是否不为空,如果不为空,则将服务定位请求转发至R1 V1(len(V)),如果为空,则将服务定位请求转发至R1 V1与叶子表的并集合中与V语义最相似的节点,其中,V为服务定位请求,A为节点标识,shl(V,A)表示CG序列V、A相同前缀的长度,len(V)表示CG序列V的长度,R1 V1(len(V))表示R1 V1中节点标识长度为len(V)的节点,R1 V1表示路由表R的第1行第V1列的节点集。
步骤C中所述根据叶子节点路由算法进行路由,包括:
D1、判断设置的最大转发次数TTL是否大于0,如果大于0,则继续执行步骤D2,如果不大于0,则直接结束当前流程;
D2、从当前节点的叶子表中查找节点Ln,根据Ln节点标识所表示的概念序列确定出节点标识与服务特征向量的语义相似度最大,并且大于当前节点与服务特征向量的语义相似度;
D3、判断是否查找到所述Ln,如果查找到,则将服务定位请求转发至Ln,Ln收到服务定位请求后,根据语义相似度计算公式的计算结果,确定是否选择一个或多个与服务定位请求最匹配的服务描述信息返回,并将TTL减1,返回执行步骤D2,如果未查找到,当前节点查询本地服务信息库确定一个或多个与服务定位请求语义最匹配的服务描述信息返回。
本发明中,首先提供了一种大规模本体树的分割方法,可以根据全局信息对概念进行分簇,使各个概念簇本身语义上尽可能紧凑,而各个簇之间语义上又尽可能分离,从而提供了一种将大规模本体概念描述的大规模服务进行有效描述和分类的机制,大大降低了使用大规模本体概念描述服务时组合情况的数量级。
本发明中,还提供了一种融合语义的对等网络拓扑,能够按照节点之间的语义关系来直接建立有结构的P2P网络,具有良好的可扩展性,可以支持基于语义关系的多概念的、语义的、模糊的查询,具有稳定的路由跳数、有效的服务发现能力,对大规模本体图的海量服务来说,P2P网络能够解决集中式的问题,语义查询解决查询准确性的问题,具有非常高的查准率、查全率。传统的服务发现是基于分类、字符串匹配的模式,没有语义信息,不能理解服务查询请求,使得查询性能、查准率、查全率都非常低;而将语义标记引入服务的描述与查询过程,可以解决服务查询请求与服务描述信息二者之间语义上的互通性障碍,提高服务查找的查准率和查全率。
路由发现过程中采用的是基于前缀匹配的融合语义路由策略,通过本体概念区域逐位前缀匹配的方式,可以保证每个节点只向包含相关语义信息的少数下一跳节点转发服务定位请求,并且每次路由过程都语义上更接近目标节点,因而保证了在有限跳数之内到达语义上最为接近的目标节点,具有语义上的收敛性。
本发明中是将大规模本体概念描述的大规模服务进行有效的分布式存储与发现,提出的方案具有很强的通用性,不仅仅局限于基于语义的Web服务的发现和管理上,还可以扩展到网络上通用资源的描述、管理和发现上。
附图说明
图1为本体图分割算法流程图;
图2为本体分割图示例示意图;
图3为分布式服务聚类算法流程图;
图4为生成节点标识流程图;
图5A为伪路由表形式示意图;
图5B为真实路由表形式示意图;
图6为路由算法流程图;
图7为叶子节点路由算法流程图。
具体实施方式
本发明中提供了一种面向语义Web服务的分布式服务发现系统,该分布式服务发现系统通过本体图分割算法将本体图切割为多个概念区域(CG,ConceptGroup),每个CG中的概念语义相似;并将服务的语义描述信息转化为CG序列,即产生变长概念区域组合序列的编码;同时分布式服务发现系统中的节点与概念区域序列相对应,组成有结构的语义P2P网络,通过支持概念区域序列的基于前缀语义路由的策略来实现Web服务发现。
如果本体图被划分为K个CG,与服务查询请求相对应的CG序列的长度为L,其中L≤K。分布式服务发现能够在路由H跳(H≤L)的情况下,找到语义最符合服务查询请求的CG序列的节点集合,然后在这些CG序列的节点集合中进行进一步的语义查询,从而确定与服务查询请求最匹配的节点。
本发明中,提出了一种用于大规模本体图分割的本体图分割算法,通过本体图分割算法将本体图分割为少量的语义相似的概念区域,为服务的分簇管理提供了基础;然后基于本体图分割算法提出了一种分布式服务聚类算法,将服务的语义描述信息转化为概念区域序列,从而将语义相似的Web服务分类到相同的概念区域序列中,有效地将语义Web服务进行分簇。
首先,对本体图分割的具体实现过程进行说明。
概念ci和cj的概念相似度为: 其中,cij表示概念ci和cj在本体树上的共同祖先,depthOf(ck)为返回概念ck在本体树上的深度。
概念ci和cj的链接数为: 其中,i≠j,阀值ε是可配置参数,取值范围是[0,1),通过阀值ε来控制概念间的链接数,惩罚概念相似度低于ε的概念对之间没有链接,从而减少将概念相似度较低的概念合并到一个簇中的情况。
区域Bi和Bj的语义相似度函数为: 语义相似度函数值用来反映两个区域之间的语义相似度,由两个区域所包含的概念之间的概念相似度值相加得出。计算时可能会出现大聚类中的每个概念与较小或孤立聚类中的概念在语义上并不相似,仅仅是由于大聚类中概念数量众多带来的累加效应而使语义相似度函数值很大,从而造成区域的合并,使大概念区域不断膨胀。但是,这种情况并没有反映出两个区域之间真实的语义相似程度,为了防止这种情况的发生,在语义相似度函数的算式中添加惩罚因子sizeOf(Bi)×sizeOf(Bj),其中,size(Bk)为返回聚类Bk包含的概念数量,从而去除了数量对于区域间语义相似度计算的影响。
本发明中提出的本体图分割算法采用了全局性的迭代式聚类的方法,不断将语义相近的概念簇进行合并,从小到大,最终将概念本体树划分为有限个概念区域。本体图分割算法接收的参数为本体图及期待分割的CG数量K。首先生成本体图的本体概念树,将本体概念树的每个概念作为一个独立的簇;当现有的簇数量大于K时,计算两簇之间的语义相似度函数值,将最大值对应的两个簇进行合并;不断循环以上合并过程,直到当前簇数量满足要求为止,具体实现过程如图1所示,包括以下步骤:
步骤101:首先生成本体图C的最小生成树C’,初始化C’中的每个概念为一个簇Bi,每个簇的初始链接数均为0。
步骤102~步骤103:判断当前簇的数量m是否大于K,如果大于,则令i=0,然后执行步骤104;如果不大于,则继续执行步骤114。
步骤104~步骤105:判断i是否小于m,如果小于,则令j=0,然后执行步骤106;如果不小于,继续执行步骤111。
步骤106~步骤110:判断j是否小于m,如果不小于,则令i加1,然后返回执行步骤104。如果小于,则计算Bi、Bj两个区域中任意两个概念之间的链接数,即link(cf,cl),其中f≠l,cf包含于Bi,c1包含于Bj;根据link(cf,cl)计算goodness(Bi,Bj),令List[i][j]=goodness(Bi,Bj),令j加1,然后返回执行步骤106。
初始情况每个概念即为一个区域。
步骤111~步骤113:从List中挑选出最大值List[p][q]中,将Bp、Bq合并得到新的Bn,令m减1,然后返回执行步骤102。
步骤114:返回Bi,i=1...K。
通过本体图分割算法最后能够得到分割好的K个CG,可以确保同一CG中包含的各概念的相似度较高;而不同CG中包含的各概念的相似度较低,同时一个概念将仅属于一个CG,这样,本体图分割算法将本体图分割为少量的语义相似的CG,为服务的分簇管理提供了基础,最后得到的本体分割图示例如图2所示,依据本体图分割算法,整个本体的生成树被分割为六个CG,每个CG各包含若干个本体概念,它们之间的偏序关系、即层次关系为CG1>CG2>CG3>CG4>CG5>CG6。
其次,对聚类分布式服务的具体实现过程进行说明。
按照本体图分割的方式,可以将Web服务的语义描述信息转化为CG序列,从而将语义相似的Web服务分类到相同的CG序列中,有效地将基于语义的Web服务进行分簇。
Web服务的语义描述信息,包括Web服务的发布信息和Web服务的服务查询请求信息,可以基于Web服务本体来表示,如OWL-S(Web Ontology Language for Service)或WSMO(Web Service ModelingOntology);并采用与领域相关的本体概念来描述Web服务的具体内容。为支持前缀路由和语义匹配,抽取Web服务的语义描述信息中的本体概念将其转化为向量的形式来表示一个具体的Web服务。
概念的排序、即降序定义类似于有序树结构的宽度搜索:如果概念Ci比Cj的顺序高,则在本体图中Ci的层次比Cj的层次高;或者,Ci和Cj具有相同的层次,而Ci在Cj的左侧。
将描述Web服务的本体概念抽取出来,并按照降序定义的规则将这些概念进行降序排列,得到一个有序的概念集合,即服务特征向量。
CG排序,类似于概念排序,在本体概念的生成树中,如果CGi的层次比CGj的层次高;或者,CGi和CGj有同样的层次,而CGi在CGj的左侧,则CGi比CGj的顺序高。
由任意个不同CG组成一个降序集合,该集合称为CG序列。
将CG序列中的每个CG元素用该CG所包含的具体本体概念来代替,得到一个有序的概念集合,称为CG序列实例。
基于本体图分割的分布式服务聚类算法首先对Web服务的语义描述信息进行处理,提取其语义描述信息中的本体概念,并将每个本体概念映射到由本体图分割算法切割的本体概念区域,去除重复的区域并排序后,可将所有属于同一个CG序列的CG序列实例归为一类,从而完成服务的聚类。
分布式服务聚类算法接收的参数为本体图C,本体图分割区域数量、即CG数量K以及Web服务的语义描述信息集合S,如OWL-S轮廓(OWL-S Profile)集合,分布式服务聚类算法所得结果是将所有属于同一个CG序列的Web服务聚集为一类。分布式服务聚类算法的处理过程如图3所示:
步骤301:判断本体图分割算法是否执行过,如果执行过,则继续执行步骤302;如果未执行过,则继续执行步骤307。
步骤302~步骤306:判断是否对Web服务的语义描述信息集合S进行遍历,如果已经遍历S,则结束当前处理流程;如果未遍历S,则从S中提取描述Web服务的本体概念序列D,并循环遍历D中的每个概念,获取其所属的CG,得到CG序列G;然后去除G中重复的元素,并排序得到CG序列G’,将S归入到G’集合中,然后返回执行步骤302。
步骤307~步骤308:执行本体图分割算法,并对所得结果进行存储。
将本体图分割成少量CG,并且将Web服务的语义描述信息映射到这些CG序列上后,就完成了语义上相似的Web服务的合理分类;这样就可通过基于有结构的语义P2P网络的分布式服务发现系统来管理这些分类的Web服务。分布式服务发现系统中,首先需要为节点分配节点标识;然后构建路由表,构建叶子表;最后语义路由。
分布式服务发现系统的每个节点都应具有一个具有语义的全局唯一的节点标识(nodeId)。节点标识为一个CG序列实例,其分配采用随机的方式。首先随机选中一个CG,然后再从中随机选出一个概念加入到已有的CG序列实例中,初始情况下已有的CG序列实例为空,不断加入,最后将生成的CG序列实例作为该节点的节点标识,具体处理过程如图4所示:
步骤401:定义节点标识并初始化,令i=0。
步骤402~步骤404:判断i是否小于K,如果不小于,则继续执行步骤407。如果小于,则为R随机赋值为0或者1,判断R是否等于1,如果等于,则继续执行步骤405;如果不等于,则继续执行步骤406。
步骤405:概念C为随机选取的CG[i]中的一个概念,将概念C添加在节点标识中,作为节点标识的概念序列的一部分。
步骤406:i加1,然后返回执行步骤402。
步骤407:返回节点标识。
分布式服务发现系统的每个节点的状态包括一个路由表和一个叶子表。
分布式服务发现系统的每个节点的伪路由表的行数为L,列数不超过K,其中,L是节点标识的概念序列长度,K为本体图分割的CG总数量。伪路由表由特定于当前所述节点标识的CG序列组成。伪路由表的组成规则如下:第n行包含K个集合元素T,其中Ti,i=1至K,表示,前n个CG位与当前节点的前n个CG位相同;并且,第n+1个CG位取自K个CG中与第n个CG偏序有效的第i个CG元素;并且,自第n+2个CG位开始取任意不同长度的且与第n+1位CG偏序有效的CG序列,这一系列CG序列构成的有效的CG序列集合就组成了伪路由表。其中,有效是指CG序列需要满足CG排序中的偏序规则,同时该CG序列实例存在对应的网络节点。得到CG序列的伪路由表后,将伪路由表中的CG序列用真实存在的CG序列实例代替,即用实际存在的节点标识来填充路由表,就得到了节点的路由表。伪路由表的形式如图5所示,伪路由表中,第一个元素CG1XX,该元素的长度为1至K,例如K=6,这样CG1XX可能的取值如下:
①长度为1,CG1;
②长度为2,CG1CG2、CG1CG3、CG1CG4等;
③长度为3,CG1CG2CG3、CG1CG2CG4等;
④长度为4,CG1CG2CG3CG4、CG1CG3CG4CG6等;
⑤长度为5,CG1CG2CG3CG4CG5等;
⑥长度为6,CG1CG2CG3CG4CG5CG6。
对于每个不同长度的CG序列集合,从中选择一个有效的CG序列作为CG1XX的子元素;对于元素CG2XX,由于根据CG排序中的偏序规则,CG1不会出现在XX中,其长度的取值只能从1至5,并且由于CG2XX序列的各元素需要满足偏序规则,依次确定伪路由表的其他元素。通过以上描述可见,伪路由表中每个元素的子元素数量不会超过K。
得到伪路由表后,将伪路由表中的CG序列用真实存在的CG序列实例代替,也就是说,采用有效的CG序列实例、即分布式服务发现系统中实际存在的节点来替代CG实例,具体形式可如图5B所示。
叶子表存储的是与当前节点标识同属一个CG序列,语义上最相似的L个节点的访问信息。L通常取值8或16。
当节点标识为A的节点收到一个服务查询请求后,该节点首先从服务查询请求中抽取出概念信息,组成一个服务特征向量V。服务特征向量的每个元素属于一个CG,获取所有元素的CG,然后去除重复元素,排序得到该服务查询请求的CG序列S。为了描述得更清楚,首先设置几个参数的含义。表示路由表R的第1行第i列的节点集;表示中节点标识长度为j的节点;Ln表示叶子节点中与节点标识语义相似度排第n位的节点。shl(A,B)表示CG序列A、B相同前缀的长度;len(A)表示CG序列A的长度。
分布式服务发现系统的路由过程中,收到服务查询请求的节点首先查看服务查询请求的服务特征向量是否与其自身的节点标识属于同一个CG序列,收到服务查询请求的节点可以是任意一个节点。如果服务查询请求的服务特征向量与其自身的节点标识属于同一个CG序列,并且叶子表中有叶子节点与服务特征向量V语义完全匹配,该节点将服务查询请求转发给该语义完全匹配的节点;如果叶子表中没有匹配的节点,调用叶子节点路由算法,将该服务查询请求转发到与服务查询请求的服务特征向量语义最相似的节点。如果服务查询请求的服务特征向量与其自身的节点标识不属于同一个CG序列,则将使用路由表进行路由,当前节点将服务查询请求转发给路由表中节点标识的长度与服务查询请求的服务特征向量的CG序列长度相等,并且,节点标识的CG序列与服务查询请求的服务特征向量的CG序列直接的共同前缀至少比当前节点长一个CG位的节点,但当路由表项不存在或是节点不可达时,服务查询请求将会被转发给同一路由表中与服务特征向量CG序列直接的共同前缀与当前节点相同的节点集和叶子节点集这两个节点集合并集合中某个节点,要求该节点与当前节点相比,其节点标识与服务查询请求的服务特征向量更相似,具体实现过程如图6所示:
步骤601:收到服务查询请求的节点首先查看服务查询请求的服务特征向量V是否与其自身的节点标识属于同一个CG序列,如果属于,则继续执行步骤602;如果不属于,则继续执行步骤603。
步骤602:判断叶子表中是否有叶子节点与服务特征向量V语义完全匹配,如果完全匹配,则将服务查询请求转发给叶子节点,该叶子节点收到服务查询请求后,将使用语义Web服务相似度计算公式,选择一个或多个与服务查询请求最匹配的服务描述信息返回;如果不匹配,调用叶子节点路由算法,将该服务查询请求转发到与服务查询请求的服务特征向量V语义最相似的节点。
步骤603~步骤604:将使用路由表进行路由,令l=shl(V,A),其中,V为服务定位请求,A为节点标识,然后判断R1 V1(len(V))是否不为空,如果不为空,则将服务查询请求转发至R1 V1(len(V));如果为空,则将服务查询请求转发至R1 V1与叶子表L的并集合中与V语义最相似的节点。
叶子节点路由算法是指,当前节点从其叶子表中查找节点Ln,其节点标识与服务查询请求的服务特征向量V的语义相似度最大,并且大于当前节点标识与服务特征向量V的语义相似度,如果Ln节点存在,则向Ln节点转发服务查询请求;如果Ln节点不存在,当前节点自身就是与服务特征向量V语义最相似的节点。当服务查询请求到达与服务特征向量V语义最相似的节点后,该节点将根据语义Web服务相似度计算公式的计算结果,确定是否选择一个或多个与服务查询请求最匹配的服务描述信息返回,具体处理过程如图7所示:
步骤701~步骤702:设置最大转发次数TTL,然后判断TTL是否大于0,如果大于0,则继续执行步骤703;如果不大于0,则直接结束当前流程。只有第一个接收到服务查询请求的节点才设置最大转发次数TTL。
步骤703:从当前节点的叶子表中查找节点Ln,根据Ln节点标识所表示的概念序列确定出节点标识与服务特征向量V的语义相似度最大,并且大于当前节点与服务特征向量V的语义相似度。
步骤704:判断是否查找到所述Ln,如果查找到,则将服务查询请求转发至Ln,Ln收到服务查询请求后,根据语义Web服务相似度计算公式的计算结果,确定是否选择一个或多个与服务查询请求最匹配的服务描述信息返回,并将TTL减1,返回执行步骤702;如果未查找到,当前节点自身就是与服务特征向量V语义最相似的节点,因此,当前节点查询本地服务信息库确定一个或多个与服务查询请求语义最匹配的服务描述信息返回。后续收到服务查询请求的节点所做的操作与前面所述当前节点的操作相同。
路由算法和叶子节点路由算法将路由的开销分为两部分。第一部分,找到与服务查询请求的CG序列匹配的节点,当路由表正确并且没有失败节点时,该部分的开销不会超过H跳路由,其中H≤L,L为服务查询请求的CG序列的长度,并且0<L≤K,K为本体图被切割的区域的数量。路由算法三种不同情况下会产生不同开销。第一种情况,如果节点使用路由表来转发服务查询请求,每经过一次路由,节点的节点标识与服务查询请求的CG序列就会多匹配一位,那么最多只需要L跳就能找到和服务查询请求的CG序列匹配的节点;第二种情况,如果服务查询请求的CG序列与当前节点的节点标识匹配,则无需使用路由表进行路由,这部分的开销为零,接着进行叶节点路由;第三种情况是服务查询请求不在叶子节点中,同时路由表中的表项为空或节点不可用,此时,只需要多进行一步路由转发即可。表项为空的概率和概念划分区域数量K相关,并与分布式服务发现系统中的节点数量N有关,在节点标识平稳分布的情况下,CG序列的组合数为 每个CG序列平均的节点数为N/(2K-1),那么CG序列中的所有节点均不可用的概率为当K为6,N为300时,路由表项为空的概率大约为0.037;N为500时,路由表项为空的概率大约为0.0045。对于基于大规模本体图的大规模分布式服务发现系统,一般K设置为6,N≥300,同时考虑到状态表(包括路由表和叶子表)的恢复功能,因而所有备选节点均不可用的情况可以忽略。第二部分,叶子节点路由算法中,找到与服务特征向量语义匹配的节点,该部分开销主要是在叶子节点集合中进行转发,通过设置合理的TTL值,能够在一定的路由跳数内找到合适的节点,一般TTL≤6。
当一个节点标识为X的节点加入分布式服务发现系统时,首先需要获知一个已经存在于分布式服务发现系统中的节点A。新节点X通过节点A发送一个join消息给节点Z,节点Z与节点X在语义上最相似。所有收到join消息的节点,将它们的路由表发送给X,X根据这些路由表中的信息创建自身的路由表。由于节点Z与节点X语义相似,节点X的初始叶子表可以直接来自于节点Z。最后,节点X将其路由表发送给其叶子表和路由表中的每个节点,这些节点据此更新信息。
分布式服务发现系统中的节点可能会在无任何警告的情况下离开网络,此时,需要替换一个失败的节点,该节点的邻居会与语义相似并且正常的节点通信,获取该正常节点的叶子表,然后从该叶子表中选取不在当前节点的叶子表中并且语义上相似的节点来替换失败的节点。
路由表中的失败节点会在路由的时候被发现,这种情况虽然因为服务查询请求可以转发给其他的节点,而不会对路由产生影响;但是,仍然需要一个修复策略来保证路由表的有效性。为修复路由表的失败节点拥有该路由表的节点首先与同一行不同列的节点通信,其中i≠d,,获取的信息。在同一行的其他节点均失败的情况下,该节点可以访问其中i≠d,以获取的信息。循环这个过程,直至最终找到一个合适并存在的节点。
当服务提供商发布需要发布Web服务时,首先获取分布式服务发现系统的一个入口节点地址,然后将要发布的Web服务的语义描述信息提交给该入口节点。入口节点执行图3所描述的处理过程,获取该Web服务的语义描述信息所属的CG序列,然后按照CG序列执行语义路由,将Web服务发布到语义相似度最大的节点上。
当服务查询请求者需要查询服务时,首先获取分布式服务发现系统的一个入口节点地址,然后将要查找的Web服务的语义描述信息提交给该入口节点。入口节点执行图3所描述的处理过程,获取该Web服务的语义描述信息所属的CG序列,然后按照CG序列执行语义路由,将服务查询请求转发到语义相似度最大的节点上,该节点将执行本地服务的语义匹配过程,即计算其管理的Web服务与服务查询请求的语义相似度,返回一个或多个与服务查询请求语义最匹配的Web服务。
虽然本方案是基于语义Web服务管理和发现提出的,但是本发明提供的方案可以应用于网络任何资源中的发现方案中,具体处理过程与以上描述相同,不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1、一种服务定位方法,其特征在于,该方法包括以下步骤:
A、通过本体图分割算法将本体图切割为多个概念区域CG,每个CG中的概念语义相似;
B、将服务的语义描述信息转化为CG序列,将语义相似的服务分类至相同的CG序列中;
C、收到服务定位请求时,将所述服务定位请求中的语义描述信息转化为对应的CG序列,根据节点上的路由信息基于前缀语义路由策略发现服务。
2、根据权利要求1所述的方法,其特征在于,所述步骤A包括以下步骤:
A1、首先生成概念本体图C的最小生成树C’,初始化C’中的每个概念为一个簇Bi;
A2、判断当前簇的数量m是否大于本体图期待分割的CG数量K,如果大于,则令i=0,然后执行步骤A3;如果不大于,则继续执行步骤A6;
A3、判断i是否小于m,如果小于,则令j=0,然后继续执行步骤A4,如果不小于,继续执行步骤A5;
A4、判断j是否小于m,如果不小于,则令i加1,然后返回执行步骤A3,如果小于,则计算Bi、Bj两个区域中任意两个概念之间的链接数,即link(cf,cl),其中f≠l,cf包含于Bi,c1包含于Bj,根据link(cf,cl)计算goodness(Bi,Bj),令List[i][j]=goodness(Bi,Bj),令j加1,然后返回执行步骤A4;
A5、从List中挑选出最大值List[p][q],将Bp、Bq合并得到新的Bn,令m减1,然后返回执行步骤A2;
A6、返回Bi,i=1...K。
3、根据权利要求2所述的方法,其特征在于,步骤A4中所述计算link(ci,cj),包括:
概念ci和cj的概念相似度为: 其中,cij表示概念ci和cj在本体树上的共同祖先,depthOf(ck)为返回概念ck在本体树上的深度;
概念ci和cj的链接数为: 其中,i≠j,阀值ε是可配置参数,取值范围是[0,1)。
4、根据权利要求3所述的方法,其特征在于,步骤A4中所述goodness(Bi,Bj),为: 其中,size(Bk)为返回聚类Bk包含的概念数量。
5、根据权利要求1所述的方法,其特征在于,所述步骤B包括以下步骤:
B1、判断本体图分割算法是否执行过,如果执行过,则继续执行步骤B2,如果未执行过,则返回执行步骤A;
B2、判断是否对服务的语义描述信息集合进行遍历,如果已经遍历所述语义描述信息集合,则结束当前处理流程;如果未遍历所述语义描述信息集合,则从所述语义描述信息集合中提取描述服务的本体概念序列,并循环遍历本体概念序列中的每个概念,获取其所属的CG,得到CG序列;然后去除CG序列中重复的元素,并排序得到CG序列G’,将S归入到所述G’集合中,然后返回执行步骤B2。
6、根据权利要求1所述的方法,其特征在于,所述步骤C之前进一步包括以下步骤:
C01、定义节点标识并初始化,令i=0;
C02、判断i是否小于K,如果不小于,则继续执行步骤C05,如果小于,则为R随机赋值为0或者1,判断R是否等于1,如果等于,则继续执行步骤C03,如果不等于,则继续执行步骤C04;
C03、概念C为随机选取的CG[i]中的一个概念,将概念C添加在节点标识中;
C04、i加1,然后返回执行步骤C02;
C05、返回节点标识。
7、根据权利要求6所述的方法,其特征在于,由特定于当前所述节点标识的CG序列组成伪路由表,所述伪路由表包括:第n行包含K个集合元素T,其中Ti,i=1至K,表示,前n个CG位与当前节点的前n个CG位相同;并且,第n+1个CG位取自K个CG中与第n个CG偏序有效的第i个CG元素;并且,自第n+2个CG位开始取任意不同长度的且与第n+1位CG偏序有效的CG序列。
8、根据权利要求7所述的方法,其特征在于,根据所述伪路由表得到路由表,将伪路由表中的CG序列用真实存在的CG序列实例代替。
9、根据权利要求1所述的方法,其特征在于,所述步骤C包括以下步骤:
C1、收到服务定位请求的节点首先查看服务定位请求的服务特征向量是否与其自身的节点标识属于同一个CG序列,如果属于,则继续执行步骤C2,如果不属于,则继续执行步骤C3;
C2、判断叶子表中是否有叶子节点与服务特征向量语义完全匹配,如果完全匹配,则将服务定位请求转发给叶子节点,该叶子节点收到服务定位请求后,将使用语义相似度计算公式,选择一个或多个与服务定位请求最匹配的服务描述信息返回,如果不匹配,根据叶子节点路由算法进行路由,将该服务定位请求转发到与服务定位请求的服务特征向量语义最相似的节点;
C3、将使用路由表进行路由,令1=sh1(V,A),然后判断R1 V1(len(V))是否不为空,如果不为空,则将服务定位请求转发至R1 V1(len(V)),如果为空,则将服务定位请求转发至R1 V1与叶子表的并集合中与V语义最相似的节点,其中,V为服务定位请求,A为节点标识,sh1(V,A)表示CG序列V、A相同前缀的长度,len(V)表示CG序列V的长度,R1 V1(len(V))表示R1 V1中节点标识长度为len(V)的节点,R1 V1表示路由表R的第1行第V1列的节点集。
10、根据权利要求10所述的方法,其特征在于,步骤C中所述根据叶子节点路由算法进行路由,包括:
D1、判断设置的最大转发次数TTL是否大于0,如果大于0,则继续执行步骤D2,如果不大于0,则直接结束当前流程;
D2、从当前节点的叶子表中查找节点Ln,根据Ln节点标识所表示的概念序列确定出节点标识与服务特征向量的语义相似度最大,并且大于当前节点与服务特征向量的语义相似度;
D3、判断是否查找到所述Ln,如果查找到,则将服务定位请求转发至Ln,Ln收到服务定位请求后,根据语义相似度计算公式的计算结果,确定是否选择一个或多个与服务定位请求最匹配的服务描述信息返回,并将TTL减1,返回执行步骤D2,如果未查找到,当前节点查询本地服务信息库确定一个或多个与服务定位请求语义最匹配的服务描述信息返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102264259A CN101394428B (zh) | 2008-11-10 | 2008-11-10 | 一种服务定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102264259A CN101394428B (zh) | 2008-11-10 | 2008-11-10 | 一种服务定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101394428A true CN101394428A (zh) | 2009-03-25 |
CN101394428B CN101394428B (zh) | 2012-11-28 |
Family
ID=40494498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102264259A Expired - Fee Related CN101394428B (zh) | 2008-11-10 | 2008-11-10 | 一种服务定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101394428B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621539B (zh) * | 2009-08-06 | 2012-05-30 | 浙江理工大学 | 一种构建垂直虚拟组的p2p网络的方法 |
CN101621534B (zh) * | 2009-08-11 | 2012-07-04 | 阿坝师范高等专科学校 | 一种面向服务体系结构的语义服务自动组合方法 |
CN102624908A (zh) * | 2012-03-12 | 2012-08-01 | 浙江大学 | 一种基于混合P2P网络结构的语义Web服务发现方法 |
CN103139314A (zh) * | 2013-03-19 | 2013-06-05 | 东南大学 | 基于P2P的分布式Web服务发现方法及其系统 |
CN105472402A (zh) * | 2015-11-19 | 2016-04-06 | 北京超圣信华科技有限公司 | 一种基于点对点p2p的视频流媒体资源的获取方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561069B2 (en) * | 2002-12-19 | 2013-10-15 | Fujitsu Limited | Task computing |
CN100583846C (zh) * | 2008-01-08 | 2010-01-20 | 北京邮电大学 | 语义化电信网络能力服务网关组件、网络系统和工作方法 |
-
2008
- 2008-11-10 CN CN2008102264259A patent/CN101394428B/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621539B (zh) * | 2009-08-06 | 2012-05-30 | 浙江理工大学 | 一种构建垂直虚拟组的p2p网络的方法 |
CN101621534B (zh) * | 2009-08-11 | 2012-07-04 | 阿坝师范高等专科学校 | 一种面向服务体系结构的语义服务自动组合方法 |
CN102624908A (zh) * | 2012-03-12 | 2012-08-01 | 浙江大学 | 一种基于混合P2P网络结构的语义Web服务发现方法 |
CN102624908B (zh) * | 2012-03-12 | 2014-11-26 | 浙江大学 | 一种基于混合P2P网络结构的语义Web服务发现方法 |
CN103139314A (zh) * | 2013-03-19 | 2013-06-05 | 东南大学 | 基于P2P的分布式Web服务发现方法及其系统 |
CN103139314B (zh) * | 2013-03-19 | 2015-10-07 | 东南大学 | 基于P2P的分布式Web服务发现方法及其系统 |
CN105472402A (zh) * | 2015-11-19 | 2016-04-06 | 北京超圣信华科技有限公司 | 一种基于点对点p2p的视频流媒体资源的获取方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101394428B (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100558062C (zh) | 无线传感器网络中虚拟骨干网的分布式构造方法 | |
CN101394428B (zh) | 一种服务定位方法 | |
CN101150489A (zh) | 基于分布式哈希表的资源共享方法 | |
CN1240004C (zh) | 具有可转换路径选择标准的路径计算装置 | |
CN105072030A (zh) | 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法 | |
Zahedi et al. | Route maintenance approach for link breakage predicttion in mobile ad hoc networks | |
CN101272399A (zh) | 一种基于p2p网络实现全文检索系统的方法 | |
Li et al. | A semantics-based routing scheme for grid resource discovery | |
Sherafat Kazemzadeh et al. | Opportunistic multipath forwarding in content-based publish/subscribe overlays | |
CN102546380B (zh) | 修改的基于树的多播路由方案 | |
CN101741717A (zh) | 一种基于条件风险分离度的多域网路由方法 | |
CN102377826B (zh) | 一种对等网络中冷门资源索引的优化放置方法 | |
CN104376014B (zh) | 一种结构化p2p网络中的资源发布及查询方法 | |
CN109389848A (zh) | 一种基于hash的车联网实时分析系统 | |
CN103139314A (zh) | 基于P2P的分布式Web服务发现方法及其系统 | |
CN103731454B (zh) | 一种在点对点网络中对请求进行响应的方法及服务器系统 | |
CN101626336A (zh) | 一种利用信任机制提高p2p覆盖网络交互性能的方法 | |
CN101360055B (zh) | 具有常数跳路由特性的p2p网络信息资源定位方法 | |
CN106210090A (zh) | 基于p2p网络的双层环状路由结构的网络服务搜索方法 | |
CN103209207A (zh) | 一种对等网络系统结构的实现方法 | |
CN103118113B (zh) | 一种对等网络及其网络资源定位方法 | |
Prasad et al. | A k-clique based clustering protocol for resource discovery in p2p network | |
Witschel | Content-oriented topology restructuring for search in P2P networks | |
Gu et al. | A hierarchical semantic overlay for P2P search | |
Dragan et al. | Mediapeer: A safe, scalable p2p architecture for xml query processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121128 Termination date: 20151110 |
|
EXPY | Termination of patent right or utility model |