CN104092744A - 基于记忆化服务簇映射目录的Web服务发现方法 - Google Patents
基于记忆化服务簇映射目录的Web服务发现方法 Download PDFInfo
- Publication number
- CN104092744A CN104092744A CN201410305268.6A CN201410305268A CN104092744A CN 104092744 A CN104092744 A CN 104092744A CN 201410305268 A CN201410305268 A CN 201410305268A CN 104092744 A CN104092744 A CN 104092744A
- Authority
- CN
- China
- Prior art keywords
- service
- bunch
- parameter
- req
- matrix
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于记忆化服务簇映射目录的Web服务发现方法。本发明方法将具有相同或相似功能的服务聚集到一起构建服务簇,根据服务簇映射目录对服务簇内部的服务进行分类处理,实现了服务簇内部服务从无序到有序的转变;根据服务簇参数矩阵,对映射目录中目录项对应服务链表中的服务进行了排序处理,提出了虚拟服务组,并进一步提出了记忆化服务链表。根据记忆化服务簇映射目录的组织结构,形成了其对应的新服务簇参数矩阵;基于记忆化服务簇映射目录以及其对应的新服务簇参数矩阵,提出了一种基于记忆化服务簇映射目录的语义Web服务发现方法,使得在定位到特定服务簇之后,能够更快地返回满足需求的Web服务。
Description
技术领域
本发明涉及一种基于记忆化服务簇映射目录的Web服务发现方法。
背景技术
近年来,互联网技术的迅猛发展和网络基础设施的不断完善,使得全球企业将它们目光转移到互联网上,以提高企业对把握市场机会的全面性和准确性。但是,不同的企业提供服务的实现往往是基于不同的技术平台或软硬件环境部署配置,各个企业之间服务没有统一的规范,这使得大规模的跨企业合作难以实现。而Web服务技术的诞生为有效解决这一难题提供了可行的手段。
Web服务是架构在Internet与XML之上的分布式计算技术。它是一种是基于网络环境的自描述、模块化和自适应的应用程序,能使得运行在不同主机上的不同应用程序无须借助另外的、专用的第三方软硬件,就可实现程序间相互交换数据,因此在流程管理和优化、应用优化集成、电子商务、信息收集整理等领域得到了广泛应用。但是随着Web服务技术的快速发展,在网络上的服务数量呈现出爆炸性增长的趋势,而且各种服务也是良莠不齐,目前如何对服务进行合理高效地进行分类和管理以尽快返回满足用户需求的优质服务成为Web服务研究的重要课题。
传统的Web服务在描述上缺乏语义信息、或者只是在其功能上提供了语法的层次描述,而整体上还是采用标准化分类方式来描述Web服务的功能等信息。这使得各个服务之间不能形成一致的语义理解,缺乏灵活性,因此在各个异构系统中,对于服务的自动发现还需人工干预,因此就不能实现Web服务的发现、执行和组合自动化。伴随着本体技术在Web服务中的普及,将本体的概念和相应技术引入Web服务技术中,为解决上述问题提供了一种可行的解决方案。语义Web提出的一些基于本体的服务描述性语言(如OWL-S,WSMO等),为语义Web和Web服务的结合提供了坚实的基础。
Web服务发现是根据用户服务请求以及对目标服务在实现功能和性能等属性等方面的需求及约束,通过各种服务匹配规则及方法,从网络上的各个服务注册中心筛选出满足用户需求的服务集合的过程。现在各种UDDI系统中大都采用基于关键字匹配的发现方法,其功能实现比较简单,而且查准率以及查全率不高,很难保证服务组合的正确性及相容性。
目前的服务发现和组合方法大都直接面向单个服务,在服务发现时,核心步骤就是将Web服务与服务请求根据特定的匹配规则进行对比分析,检查它是否满足用户的需求。管理海量的Web服务实例以提高服务发现的性能、如何定义服务与目标需求之间的匹配程度、制足恰当的服务排序及选取策略等,都是语义Web服务发现研究中的重要问题,而逐一的比较分析会造成大量的时间浪费在匹配一些不相关的服务上。若能对服务科学地分类、有效地组织和管理,就能大大降低查找的规模和消耗的时间,提高服务发现效率。
Web服务即Web Service,能使不同的应用程序可以在不同的机器上无需额外的、专业化的第三方软件或硬件的帮助下运行,可以相互整合或交换数据。根据Web服务应用程序规范实施的应用之间,无论使用何种语言,平台或内部协议,都可以互相进行数据交换。Web服务是一种自描述,自包含的模块可用的网络,您可以执行特定的业务功能。它结合了Web应用的优势和基于组件开发的特点,具有灵活性、可重用性、支持面向业务及能够快速开发等特征,它以成为一种崭新的分布式计算模型。
图1描述了Web服务的基本体系结构。由图1可知,Web服务由服务提供商(ServiceProvider)、服务代理机构(Service Broker)和服务请求者(Service Requester)组成。它们之间涉及到的操作则包括发布(Publish)、查找(Find)、请求(Request)、返回(Return)和绑定(Bind)。服务提供者提供具有实用功能的Web服务以及Web服务的服务描述。通过将它发布至服务代理机构或者直接提供给服务请求者使用。服务请求者可以登录服务提供者官方网站或者是通过Web服务代理机构检索服务描述,在得到的服务结果集中选择一个合适的服务,依据服务描述与服务提供者进行绑定,以调用相应的Web服务实现或与之交互。
Web服务的实现依托于Web服务协议集(Profile),如图2所示。协议组包含一系列的核心定义(如SOAP和WSDL),以及相应的限制与约束。WSDL用于实现服务描述,它定义了一套基于XML的语法,提供了如何使用Web服务描述语言定义Web服务做什么以及如何对其进行调用,而不给予的服务实现的任何技术细节;UDDI来完成服务的发布和发现,它是一套基于分布式的Web服务信息注册中心实现标准规范,同时也实现了一组标准的访问协议;SOAP(SimpleObject Access Protocol)执行服务的调用,它是一种轻量级的、简单的XML协议,用于松散的分布式Web环境的结构化和类型化的信息交流。要实现执行发布、发现和绑定这三个操作的可互操作,每一层都必须包含一个标准的Web服务协议栈。图2给出了一个概念性Web服务协议栈。顶层都是建立在低层提供的功能之上。在每一层所说的垂直堆栈必须满足。左面的文本代表的是该协议栈层所要应用的标准技术。
网络层是服务协议栈的基础。Web服务要被服务请求者调用,它必须通过网络进行访问。可以使用常见的网络协议,在网上广为部署Web服务。HTTP凭借其普遍性,已经成为了Web服务真正的标准网络协议。其它因特网协议同样也被Web服务支持,包括SMTP和FTP。而内部网可以使用可靠消息传递和调用基础结构,如MQSeries和CORBA等等。
下一层是一个基于XML的消息传递,这表明使用XML作为底层消息传递协议。这一层使用SOAP作为消息传递协议的原因有:1)使用XML作为传送以文档为核心的消息及远程过程调用的标准化封装机制;2)SOAP是很简单的,基本上都采用了XML有效载荷的HTTP POST;3)它定义了一个标准机制,正交展开(orthogonal extension)合并为使用SOAP报头和对操作或函数进行标准编码的消息;4)支持Web服务的发布,查找和绑定操作。
基于Web服务的基本架构,Web服务核心技术的研究与应用得以迅速开展。
聚类分析至今已有四十多年的历史,是模式识别、数据挖掘等方向的重要研究内容,已被广泛应用于信息检索、数据压缩、图像分割、字符识别和文本聚类等领域,在业界拥有越来越多的关注。将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类产生的簇是数据对象的集合,并且在同一个簇中这些对象是相似的对象,与其它簇中的对象是相异的。现在,传统的聚类计算分析方法主要有以下几种:1、划分方法(partitioningmethods);2、层次方法(hierarchical methods);3、基于密度的方法(density-basedmethods);4、基于网格的方法(grid-based methods);5、基于模型的方法(model-basedmethods);当然聚类方法还有很多,诸如布尔矩阵法,相关性分析聚类,传递闭包法,直接聚类法,基于统计的聚类方法等。
为了提高服务发现效率,将聚类技术应用到了Web服务发现过程中,将服务库中的海量服务先进行聚类,形成一个个服务集合(即服务簇,Web Service Cluster),使得同一簇中的Web服务相似度极高,不同服务簇中的服务高度相异。
从广义上来说,Web服务发现包含了Web服务及服务请求描述模型、服务发现体系架构、服务匹配与发现算法、服务发现结果的选择和处理等一系列关键问题。根据Web服务发现的生命周期,可以将这些问题划分为两大类:其一是Web服务描述实例注册时问题,主要包含了服务描述模型和语言、服务元数据组织管理和预处理的方法等;其二是Web服务请求匹配时问题:主要包含了服务匹配算法、服务等价性、替换性、兼容性分析、基于服务质量等非功能属性的服务排序、以及对服务发现结果的融合、选择、个性化配置和适配等。而所有的这类问题共同构成了Web服务发现的研究框架。
现有文献大都关注于Web服务聚类方法的研究,很少涉及服务簇的形式化描述,也没有给出具体的基于服务簇的Web服务发方法。在服务匹配之前先对服务库中的服务进行聚类预处理,从而在进行服务发现时,可以过滤掉与服务请求完全不同类别的服务,避免在相似度较低甚至不相似服务的匹配计算上浪费大量时间,进而提高了匹配效率,节省了资源开销。但是在选定的服务簇中发现满足需求的服务时,仍然采用服务请求与服务簇中的服务逐一比较的方式,效率不高。因此,充分挖掘Web服务的语义信息,研究服务簇的形式化描述模型,对服务进行合理有效的组织和管理,对于Web服务发现和组合的研究具有重要价值。
学者Diete Fensel曾提出语义Web服务发现概念模型并将该概念模型的发现过程分为三个步骤:第一步是将用户具体的需求描述中抽象成一般性的目标描述。第二阶段是将提取的目标描述与语义标注的Web服务进行匹配。第三阶段是从搜索结果中精炼出实际满足需要的可用服务。
但是,目前大多数的Web服务语义的描述仅仅是针对服务个体功能,而忽略了服务参数的语义信息以及数量模式在服务发现中的作用。因此,如何在描述服务自身功能的同时,更好地体现出服务参数的语义信息以及数量模式的作用,以最大限度发挥Web服务的潜能,是语义Web服务发现研究的一个关键问题。
如何使用语义匹配和推理技术自动处理服务的查询和匹配,是语义Web服务发现的关键所在。目前应用较多的是基于接口的语义匹配方法,其中两个概念之间的匹配程度通常由语义距离来衡量,而语义距离是本体构建时人工定义的,主观性强,因此提供一套有效的语义相似性计算处理机制,仍是当前服务匹配发现研究的重要方向。
发明内容
针对现有技术中Web服务聚类和发现方法中存在的问题,本发明提出了一种基于记忆化服务簇映射目录的Web服务发现方法,能够快速定位到可能满足服务请求的服务链表和过滤掉不满足服务请求的服务,进而缩减从特定服务簇中发现服务的时间,提高服务发现效率。
为了实现上述目的,本发明采用如下技术方案:
基于记忆化服务簇映射目录的Web服务发现方法,包括如下步骤:
S1、通过计算Web服务功能的语义相似度或者Web服务参数的语义相似度,对服务库中的服务进行层次聚类,将具有相同或相似功能的服务聚集到一起构建服务簇;基于逻辑Petri网提出Web服务的形式化模型,并在此基础上构建Web服务簇的形式化模型,根据Web服务簇的形式化模型构建服务簇参数矩阵,并进行规范化处理得到参数规范化矩阵;
S2、对聚类形成的服务簇内部进行处理分类形成服务簇映射目录,每个服务簇映射目录由一个或多个服务簇目录项组成,且每个服务簇目录项都映射一个服务链表,每个服务链表由一个或多个服务连接组成,每个服务簇目录项包含一个服务功能描述和索引节点号;
根据参数规范化矩阵将服务簇目录项对应的服务链表中的服务进行排序处理,划分出虚拟服务组,形成记忆化服务链表,进而得到记忆化服务簇映射目录;对服务在服务簇中的顺序调整又映射到服务簇参数矩阵中,形成记忆化服务簇映射目录对应的服务簇参数矩阵;
S3、当一个服务请求到达时,首先对各个服务簇进行搜索,若单个服务簇的功能能够满足需求,则选定该服务簇,根据服务请求的内容选定记忆化服务簇映射目录的目录项,映射到该目录项所对应的服务链表中,然后根据对应的服务簇参数矩阵进行服务的匹配找到满足服务请求的服务请求结果集,最后经过服务结果集筛选算法处理后,将服务发现的结果呈现给用户,完成一次服务的发现匹配请求。
进一步,上述步骤S1中,服务簇参数矩阵的规范化过程如下:
定义服务参数频率:在包含n个服务的服务簇参数矩阵中,设il为第l列对应的参数,则称为参数il的频率;
设输入矩阵
S101、对输入矩阵AI的每一列进行求和,得到每个参数的频数,然后将每个参数的频数除以参数的个数;
S102、按照fl(1≤l≤n)的值非递增顺序进行排序;
S103、按照S102的排序结果对矩阵的列顺序进行调整,得到AI′,且f′1≥f′2≥…≥f′n;
至此,服务簇输入矩阵的规范化过程结束,参数规范化矩阵Asd=AI′。
进一步,上述步骤S2中,服务簇映射目录的生成方法包括:
S201、输入服务簇SC={ws1,ws2,...,wsn},将服务簇映射目录L起始目录项L1初始化为该服务簇的唯一索引节号SID及服务簇功能描述Fun;
S202、选择服务簇中的一个服务wsi(1≤i≤n),记录这个服务wsi的Mod值;依据输出参数O的个数生成一个服务簇目录项;其中,索引节点号SID由该服务簇索引节点号、下划线、该服务wsi的输出参数个数组成,记为SID_|O|;
S203、若此索引节点号在服务簇映射目录L中不存在,则在服务簇映射目录L中插入该目录项,并生成一个该索引节点号的服务链表ST,将此服务wsi插入其中,否则,依据索引节点号找到对应的服务链表将此服务wsi插入其中;
S204、不断的重复进行步骤S202和步骤S203,直到服务簇中所有的服务都被遍历到;
S205、输出服务簇映射目录L;
其中,Mod=(|I|,|O|)表示输入输出参数模式,I表示输入参数,O表示输出参数,|I|表示输入参数的个数,|O|表示输出参数的个数。
进一步,上述步骤S2中,记忆化服务簇映射目录的具体生成过程如下:
定义记忆化服务链表:在服务链表的基础上,每个元素加入一个记忆标志m(p,c),p代表该元素当前位置,c代表该元素组内元素总数,记为MST;
S211、输入服务簇映射目录L并初始化;
S212、在服务簇映射目录L中选择一个目录项L[i],找到对应的服务链表STi;
S213、根据参数规范化矩阵对服务参数按照频率从高到低对其非递增排序,根据排序后的参数列表对服务链表中的服务按照该服务包含最高频率参数进行排序;
S214、重复进行步骤S212和步骤S213,直到所有的目录项遍历完成;
S215、输出记忆化服务簇映射目录Lm。
进一步,上述步骤S213中,还包括如下子步骤:
S2131、首先选取一个包含服务输入参数I={i1,i2,...,in}频率最高参数is(1≤s≤n)的元素放到表头指向的下一元素,此时该元素的记忆标志m(p1,c1),且p1=1,c1=1;
S2132、继续向下遍历,如果存一个元素输入参数包括is,则移动到该位置虚拟化为一个组,该元素的记忆标志为ms(p1+1,c1+1),组内元素更新各自的记忆标志m(pi,ci+1);若不存在,则将包含服务输入参数频率次低的ik(1≤k≤n)移动到该位置虚拟化为一个新组,此时该元素的记忆标志mk(p1,c1),且p1=1,c1=1;
S2133、重复进行步骤S212的操作直到所有服务链表元素被遍历完;
S2134、输出记忆化服务链表MST。
进一步,上述步骤S3中,包括如下子步骤:
输入:服务发现请求wsreq=(Funreq,Ireq,Oreq,Modreq,MixUEreq,QoSreq),其中,
Funreq表示服务请求者提出的服务要实现的功能;
Modreq表示服务请求者提供输入参数及所需要输出参数的个数模式;
Ireq表示服务请求者可以提供的输入集合,并且每个输入参数都用概念进行标注;
Oreq表示服务请求者所需要的输出集合,并且每个输出参数也都用概念进行标注;
MixUEreq表示所需要服务的用户评价指数的最小值;
QoSreq表示服务请求者对服务质量各属性的约束集合;
输出:满足请求的服务集合S,
S31、初始化设定阈值δ;
S32、从服务簇SC中任意选择一个服务簇SCr,SC=SC-{SCr},计算Sim(Funreq,Funr),其中,Funr为服务簇SCr的服务功能描述;
S33、若Sim(Funreq,Funr)<δ,则转到步骤S32;否则,选中该服务簇SCr;
S34、根据选中的服务簇得到该服务簇SCr的唯一标识SIDr,再根据服务发现请求中的Modreq得到服务发现请求所要求输出参数的个数|Oreq|,根据这两个参数再加上下划线得到服务簇记忆化映射目录的一个目录项的目录索引节点号SIDr_|Oreq|;
S35、遍历选中的服务链表,Ireq中是否存在该记忆化服务链表的排序输入参数,若存在,则进入该排序参数的虚拟服务组,映射到该虚拟服务组的参数矩阵上;
S36、S={参数矩阵剩余行对应的服务},输出满足请求的服务集合S。
进一步,上述步骤S34中,包括如下子步骤:
S341、如果服务簇SCr、服务簇映射目录Lm中存在该目录索引节点号,则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤S35;
S342、如果服务簇SCr、服务簇映射目录Lm中不存在该目录索引节点号,但是存在一个或多个目录的索引节点号大于该目录索引节点号,则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤S35;
S343、如果服务簇SCr、服务簇映射目录Lm中不存在该目录索引节点号,也不存在任何一个目录的索引节点号大于该目录索引节点号,则退出算法RETURN空值。
进一步,上述步骤S35中,包括如下子步骤:
S351、求解MOreq|(Ot),令k=v,其中,Ot代表服务簇输出参数矩阵的参数列表,v为输出参数个数,MOreq代表服务请求的输出标识MOreq=[m(o1),m(o2),m(o3),…,m(ok)];
S3511、遍历输出参数Oreq,如果mreq(ok)=0,则转S3513,其中,mreq(ok)代表求得的第k个参数的输出标识值;
S3512、如果mreq(ok)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输出矩阵第k列中0对应的行删掉并且删除对应的输出矩阵中的行,否则转S36;
S3513、k=k-1;
S3514、若k≥1,则转S3511,否则转S352;
S352、求解MIreq|(It),令j=u,其中,MIreq代表服务请求的输入标识MIreq=[m(i1),m(i2),m(i3),…,m(ij)];It代表服务簇输入矩阵的参数列表,u为输入参数个数;
S3521、遍历输入参数Ireq,如果mreq(ij)=0,则转S3523,其中,mreq(ij)代表求得的第j个参数的输入标识值;
S3522、如果mreq(ij)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输入矩阵第j列中0对应的行删掉,否则转S36;
S3523、j=j-1;
S3524、若j≥1,则转S3522,否则转S36。
本发明具有如下优点:
本发明利用聚类的思想,通过计算Web服务功能描述的语义相似度和参数语义相似度,对服务库中的服务进行聚类形成服务簇,并基于逻辑Petri网提出了服务簇的形式化表示方法----服务簇原子,根据服务簇原子提取出服务簇参数矩阵,便于发现参数之间的重要程度。为进一步提高服务发现的效率,对服务簇内部的服务进行了重新组织管理,提出了服务簇目录项、服务链表概念和服务簇映射目录概念,这使得服务簇内部的服务实现了从无序到有序。根据参数矩阵所统计发现的参数之间的重要程度,又可以对服务簇映射目录所对应的服务链表做出改进,使得每一条服务链表中的服务,划分成虚拟服务组,最终形成记忆化服务链表,进而得到记忆化服务簇映射目录,使得不仅是服务簇内部服务有统一的组织形式,记忆化服务簇映射目录内部记忆化服务链表中的服务也有统一的组织形式。在形成记忆化服务簇映射目录的同时,服务簇参数矩阵也发生的相应变化,其内部也不只是简单的记录各服务参数,而是体现出记忆化服务簇映射目录的特点。最终根据记忆化服务簇映射目录、以及其所映射的服务簇参数矩阵,提出了一种基于记忆化映射目录的服务发现算法和服务发现结果集的筛选推荐算法,能够快速定位到可能满足服务请求的服务链表和过滤掉不满足服务请求的服务,进而缩减从特定服务簇中发现服务的时间,提高服务发现效率。
附图说明
图1为Web服务的基本构架框图;
图2为Web服务的概念性协议栈框图;
图3为经过服务簇映射目录算法后服务簇的组织形式示意图;
图4为服务原子的形式化模型示意图;
图5为服务簇原子的形式化模型示意图;
图6为记忆化处理之前服务簇的内部组织结构示意图;
图7为记忆化处理之后服务簇的内部组织结构示意图;
图8为记忆化处理之前从服务簇中取出的一条服务链表结构示意图;
图9为记忆化处理之后从服务簇中取出的一条服务链表结构示意图;
图10为由图10中服务链表上的各个服务形成的虚拟服务组示意图;
图11为初始化后的参数矩阵示意图;
图12为标准化的参数矩阵示意图;
图13为目录化后的参数矩阵示意图;
图14为记忆化处理后的参数矩阵示意图;
图15为本发明实施例中天气查询服务的服务簇的参数矩阵示意图;
图16为本发明实施例中天气查询服务经过记忆化服务簇映射目录方法处理后的映射参数矩阵示意图;
图17为本发明实施例中天气查询服务仿真实验设计框图;
图18为本发明实施例中天气查询服务实验服务发现时间对比直方图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
Web服务的功能语义及参数是基于领域本体来表示的,一个领域本体中的概念术语分为数据本体和动作本体,为了明确地表示概念术语间的关系,引入了概念空间。
概念空间Concept Space:四元组表示一个概念空间,其中:
(1)C是一个具有实际意义概念的集合,其中,表示基概念的集合;表示合成概念的集合;
(2)IS表示概念之间的从属关系:IS(c1,c2)表示c1是c2的子概念,也可记为c1ISc2;
(3)连接运算·:对c1·c2=c1_c2,则(c1·c2)ISc2;
(4)替换运算对如果用概念c2替换概念c1,则满足:
基概念是原子概念,合成概念是由基概念通过连接运算·和替换运算生成的概念。
基于概念空间,给出Web服务和服务请求的定义。
定义Web服务:一个服务可以描述为一个六元组ws=(Inf,Fun,I,O,Mod,UE,QoS),其中:
(1)Inf(Information)代表一个服务的基本信息,包括服务的名称、服务注册ID、服务提供商等;
(2)Fun(Function)表示服务功能的语义描述,可用概念对形式表示,即Fun=(action,object),其中,action表示服务的动作或行为,object表示动作的对象;
(3)Mod=(|I|,|O|)表示输入输出参数模式,其中,|I|表示输入参数的个数,|O|表示输出参数的个数;
(4)I/O表示服务的输入输出参数集合,且Prm=(Prm.name,Prm.concept);其中,Prm.name为输入输出参数的名称;Prm.concept为该输入输出参数所关联的领域本体概念,用来表示参数的语义信息;
(5)UE(user evaluation)表示用户评价指数,用户评价指数可用用户使用服务后给出的采纳率来表示,初始化每个服务的采纳率为n,n可根据情况选取合适的值,n为0和1之间的值;
(6)QoS提供对服务质量的描述,主要包含可用性、可访问性、可靠性和安全性等属性。
服务的功能语义信息可以通过一个二元组来描述,Fun=(action,object),其中action和object都是概念空间中的概念,服务的输入输出参数也可以采用现有方法用概念空间中的概念来进行标注,而参数的模式也可以确定为一个明确的二元组,用户评价指数或者为初始化的值或者是已经被评价后的值。下面给出一个查询空气质量服务的例子。
设ws是一个查询空气质量的服务。其中Fun=(Search,Air-Quality),Mod=(3,1)表示输入参数有3个输出参数有1个,UE=80%表示该服务的采纳率为80%即用户评价指数为0.8。
定义服务请求:一个服务请求可以描述为六元组wsreq=(Funreq,Ireq,Oreq,Modreq,MixUEreq,QoSreq),其中:
(1)Funreq表示服务请求者提出的服务要实现的功能;
(2)Modreq表示服务请求者提供输入参数及所需要输出参数的个数模式;
(3)Ireq表示服务请求者可以提供的输入集合,并且每个输入参数都用概念进行标注;
(4)Oreq表示服务请求者所需要的输出集合,并且每个输出参数也都用概念进行标注;
(5)MixUEreq表示所需要服务的用户评价指数的最小值;
(6)QoSreq表示服务请求者对服务质量各属性的约束集合。
一个服务请求也可以被看作一个虚拟的Web服务,它具有对服务功能及参数的要求但不负责服务的具体实现,并且服务的输入输出参数也用概念空间中的概念进行标注。
定义服务簇,Services Cluster:根据服务的功能语义信息,具有相似或相同功能的服务的集合构成一个服务簇,记为SC={ws1,ws2,...,wsn},其中,wsu为一个Web服务,
聚类的目的是使能够完成相同或极为相似功能的服务聚在一个服务簇里,那么服务簇中单个的服务功能语义基本能够表示服务簇的功能。本发明将服务簇中任意单个服务的功能语义描述作为该服务簇的功能描述。
本发明中服务聚类主要依据服务功能语义相似性以及服务参数相似性进行,而服务的发现方法是建立在服务聚类基础之上的,对聚类方法的选择没有要求,所以服务发现方法对聚类方法的依赖程度比较低。
本发明中服务功能采用本体的本体树的形式进行描述,服务的输入输出是由一组输入输出参数进行刻画,而且每一个输入参数都对应于给定本体定义中的一个概念。即使在某一领域使用相同的领域本体,不同的服务提供商在描述服务时,所采用的描述方法也不完全相同,因此在对服务进行相似度计算之前,需要先对服务功能描述和参数进行一系列的处理。下面给出相似度计算的具体方法。
(1)计算服务功能相似度:
语义相似度和语义距离之间存在着密切的关系:词语距离是一个在零到无穷大之间的实数。两个词语的距离越大,其相似度越低;而两个词语的距离越小,其相似度越大。直接计算词语的相似度比较困难,我们可以利用词语距离,将它转换成词语的相似度。
当两个词语距离为0时,其相似度为1;
当两个词语距离为无穷大时,其相似度为0;
并且两个词语的距离越大,其相似度越小;
下面利用上述思想采用现有技术中的功能语义标注机制将服务功能统一描述为本体库中概念。本体概念体系可用层次树来描述,其中节点表示本体中的概念词;边表示本体中概念词与概念词之间的关系。基于距离的语义相似度计算是利用两个概念词在本体树状分类体系中的路径长度量化它们之间的语义距离。Lietal法正是在此基础上提出的。该算法模型同时考虑了Fun1和Fun2间的最短路径L和最近公共父节点概念词c在分类体系树中所处的深度H是个非线性函数。则ws1,ws2服务功能相似度计算公式为:
(2)分别对输入/输出参数进行统一语义标注:
由于服务提供商实现服务的技术人员不同采用的命名规则不同,很多情况下,存在参数名称不同,而语义信息却存在相同、相似或相关性的情况。
(3)计算服务的相似度:
综合考虑服务的功能相似性和输入/输出参数相似性,则服务的相似度可以表示为:
Sim(ws1,ws2)=ω1Sim(SF1,SF2)+ω2(δ1Sim(I1,I2)+δ2Sim(O1,O2)),其中,ω1,ω2,δ1,δ2是权值,ω1,ω2,δ1,δ2∈[0,1],且ω1+ω2=1,δ1+δ2=1且δ2>δ1。
遵循上述的相似度计算方法,对服务注册库中的服务进行两两之间的相似性计算,并且根据服务参数模式中的输入参数个数进行排序,实现对服务注册库中Web服务进行聚类,从而形成一个个服务簇,使得每个服务簇中包含多个具有相同或者相似功能的语义Web服务。
(4)服务簇映射目录:
众所周知,目录系统在文件管理中有重要作用。现代,在类Unix系统,特别是Linux中,目录(文件夹)结构是被“文件系统层次结构标准”定义的。在很多操作系统中,程序运行时会有一个相关联的工作目录。如果要访问文件没有给出完整具体的位置,程序会默认为文件在这个目录下。有些操作系统中,用户被限制只能访问他们自己的用户文件夹或工程目录,使用户间的活动相隔离。目录自产生便具备检索功能,依据目录系统的这些特性本发明将目录系统引入到服务的发现当中。
定义服务簇目录项,Service cluster directory entry:将包含一个服务功能描述Fun以及索引节点号Id的目录项称为服务簇目录项,记为SDE=(Fun,Id);
定义服务链表,Service chain table:一个服务链表由一个或多个服务ws连接组成,服务链表的表头由索引节点号index以及一个服务指针needle组成;每一个服务链表元素由一个服务以及一个服务指针组成;服务链表表尾的服务指针为空;当表头的服务指针为空时称为空服务链表,记为ST;
定义服务簇映射目录,Service cluster mapping directory:由一个或多个服务簇目录项组成,且每个目录项都映射一个服务链表的文件称为服务簇映射目录,记为SMD;
根据上述定义,给出了一种服务簇映射目录的算法:
1)输入:服务簇SC={ws1,ws2,...,wsn},将服务簇映射目录L起始目录项L1初始化为该服务簇的唯一索引节号SID及服务簇功能描述Fun;
2)选择服务簇的一个服务wsi(1≤i≤n),记录这个服务wsi的Mod值;依据输出参数O的个数生成一个服务簇目录项;其中索引节点号由本服务簇索引节点号、下划线、该服务wsi的输出参数个数组成,记为SID_|O|;
3)若此索引节点号在服务簇映射目录L中不存在,则在服务簇映射目录L中插入该目录项,并生成一个该索引节点号的服务链表ST,将此服务wsi插入其中,否则,依据索引节点号找到对应的服务链表将此服务wsi插入其中;
4)不断的重复进行步骤2)和步骤3),直到服务簇中所有的服务都被遍历到;
5)输出服务簇映射目录L。
经过上述服务簇映射目录算法,服务簇形成了内部按照输出参数个数具有层次结构的一个服务簇映射目录、以及其对应的服务链表,如图3所示。
为了直观的对服务(簇)进行描述,根据逻辑Petri网的相关概念以及图形化表示方法,将Web服务的输入输出参数提取出来,为创建服务的原子模型提供支持。
服务原子的定义如下:
定义M在集合U上的投影:设LPN(P,T,F,I,O,M)是一个逻辑Petri网,映射为网N的一个标识(marking),记所有标识的集合为则那么给定集合U,M在集合U上的投影记为且
对于若 其中则
定义服务原子,Service atomic:Sa=(t,It,Ot,Ft,MI,MO)为一个服务原子,其中,
(1)t为一个变迁,t=tD∪tI∪tO为一个有限的变迁集合,且其中,tD表示一个传统Petri网变迁;tI表示一个逻辑输入变迁,变迁tI的引发受到一个t的输入库所集上的逻辑表达式fI(t)的限制,即fI(t)中的谓词变量包含t的所有输入库所,称fI(t)为逻辑输入表达式;tO表示一个逻辑输出变迁,变迁tO引发后的结果受到一个t的输出库所集上的逻辑表达式fO(t)的限制,即fO(t)中的谓词变量包含t的所有输出库所,称fO(t)为逻辑输出表达式;
(2)It=·t={pi1,pi2,…,piu}是t的输入库所集,表示服务的输入参数集合,Ot=t·={po1,po2,…,pov}是t的输出库所集,表示服务的输出参数集合;
(3)Ft=(It×t)∪(t×Ot)为连接变迁t和库所s的弧,s∈It∪Ot;
(4)MI=[m(pi1),m(pi2),…,m(piu)],称为是一个从逻辑输入变迁到逻辑输入表达式的映射,即MI(t)使fI(t)为真;
(5)MO=[m(po1),m(po2),…,m(pov)],称为一个从逻辑输出变迁到逻辑输出表达式的映射,即MO(t)使fO(t)为真;
(6)变迁t在标识M下的发生规则:
a)对变迁发生规则与经典Petri网中变迁发生规则相同;
b)对若fI(t)|M=·T·,即t的输入库所集在标识M下满足t的逻辑输入表达式fI(t),则M[t>,并且,若M[t>M′,则 M′(p)=1;且
c)对 若 则t是使能的,并且,若M[t>M′,则 且即t的输出库所集在标识M′下满足t的逻辑输出表达式fO(t).
在定义服务原子中,服务原子中的变迁对应表示服务功能,输入/输出库所对应表示服务的输入/输出参数,输入/输出库所集对应表示服务的输入/输出参数集合,建立起服务原子与服务描述之间的对应关系。此外,用“MI(t)→MO(t)”表示输入/输出参数满足的推导关系。如图4为服务原子的形式化模型示意图。
例如:给定一个机票查询服务ws=(Inf,Fun,I,O,Mod,UE,QoS),其中Fun=(Query,Flight_Ticket),I={(i1,Departure),(i2,Arrival),(i3,Date),(i4,Type)},O={(o1,FlightNo),(o2,Time),(o3,Price),(o4,FlightType)},则根据定义服务原子中逻辑表达式的映射,可以得出服务ws的输入标识MI=[m(i1),m(i2),m(i3),m(i4)]=[1,1,1,0],输出标识MO=[m(o1),m(o2),m(o3),m(o4)]=[1,1,1,1]。
通过进行服务聚类,服务注册库中的服务被聚集到一个个服务簇中,同一个服务簇中的服务能实现较高的相似功能,而不同的服务簇之间相互高度相异。
为了更好地体现同一个服务簇中服务的共性和个性,从而更有效地进行服务发现,本发明给出一种合理的服务簇描述方法。
设SC={ws1,ws2,...,wsn}为一个服务簇,其中wsu=(Infu,Funu,,Iu,Ou,Modu,UEu,QoSu),Fun=(actionu,objectu),按照下面三个步骤由服务簇中服务的描述得到服务簇的描述:
(1)服务簇功能描述
由于同一簇中服务的服务功能相似度极高,因此可以采用簇中任意服务的服务功能来描述服务簇功能;
(2)服务簇输入参数集合
对输入/输出参数进行统一标注,使得语义相似度极高的参数能够采用相同的本体概念来描述,可以很大程度上消除语义异构,因此,给出如下的参数统一标注:
参数统一标注算法:
Step2若则选择集合P中的一个参数pu,且Plabel=Plabel∪{pu},P=P-{pu};
Step3扫描集合P,
(a)若p′∈P是pu的同义概念,则用pu.concept对p′.concept进行标注,即p′.concept=pu.concept。然后,P=P-{p′};
(b)否则,返回Step2;
Step4重复执行Step2、Step3,直到集合
Step5输出Plabel。
经过上述算法处理,不仅完成了参数的统一标注,使得高度相似的参数用相同的本体概念来标注,同时也得出了集合P的标注集合Plabel。
因此,服务簇的输入集合,即集合I=I1∪I2∪...∪In的标注集合Ilabel,即可按照上述参数标准化的过程求解;
(3)服务簇输出参数集合
按照上述步骤(2)中的方法,求解集合O=O1∪O2∪...∪On的标注集合Olabel,即为服务簇的输出集合。
经过上面几步的处理后就能更清晰直观地表示服务簇并且方便了服务簇的形式化表示。与服务原子相似的是在整个服务群里一个个服务簇也是它的组成部分,所以可以用服务簇原子表示。但它又与服务原子有差异。多数情况下服务簇中的服务不是唯一的,导致单个向量不足以表示服务簇的输入/输出参数之间的差异。可以采用矩阵形式来刻画和表现这种差异。
定义服务簇原子:SCA=(NA,tI|O,It,Ot,Ft,AI,AO)为一个服务簇原子,其中:
是一组服务原子的集合;
(2)tI|O是簇网元变迁;t=tD∪tI∪tO为一个有限的变迁集合,且其中,tD表示一个传统Petri网变迁;tI表示一个逻辑输入变迁,变迁tI的引发受到一个t的输入库所集上的逻辑表达式fI(t)的限制,即fI(t)中的谓词变量包含t的所有输入库所,称fI(t)为逻辑输入表达式;tO表示一个逻辑输出变迁,变迁tO引发后的结果受到一个t的输出库所集上的逻辑表达式fO(t)的限制,即fO(t)中的谓词变量包含t的所有输出库所,称fO(t)为逻辑输出表达式;
(3)It=(·t1∪·t2…∪·tn)label,Ot=(t1 ·∪t2 ·∪…∪tn ·)label,It和Ot分别表示服务簇的输入/输出集合;
(4)Ft=(It×tI|O)∪(tI|O×Ot);
(5)AI=[(MI1)|(It),(MI2)|(It),…,(MIn)|(It)]T表示输入矩阵且使得从逻辑输入变迁到逻辑输入表达式的映射表达式的映射,表达式的映射AI使得fI(t)为真;
(6)AO=[(MO1)|(Ot),(MO2)|(Ot),…,(MOn)|(Ot)]T表示输出矩阵且使得从逻辑输出变迁到逻辑输出表达式的映射AO使得fO(t)为真;
(7)变迁tI|O在M下的发生规则:
a)、对变迁发生规则与经典Petri网中变迁发生规则相同;
b)、对若fI(t)|M=·T·,即t的输入库所集在标识M下满足t的逻辑输入表达式fI(t),则M[t>,并且,若M[t>M′,则 M′(p)=1;且
c)、对 若 则t是使能的,并且,若M[t>M′,则 且即t的输出库所集在标识M′下满足t的逻辑输出表达式fO(t).
由服务簇原子的定义得出,输入/输出矩阵的行(Row)对应于服务簇中的服务,列(Column)对应于服务簇输入/输出参数集合中的参数,且变迁tI|O的输入和输出分别受输入矩阵AI的逻辑表达式fI(t)的限制和输出矩阵AO的逻辑表达式fO(t)的限制。由于给定标识M,输入矩阵的多个行向量(MIi)|(It),使得(MIi)|(It)≤M,则变迁tI|O能够发生,若M[tI|O>M′,则此时M′不唯一。
例如:聚类生成的一个关于机票服务簇SC中包含四个原子服务ws1,ws2,ws3和ws4,具体描述如表1所列。
表1 ws1-ws4的相关描述
为了构建服务簇参数矩阵,参数的同义给构建矩阵带来很大问题。因此采用参数统一标注方法,对服务簇的输入/输出集合中的参数进行统一标注,这样就解决了同义参数的问题,大大化解了构建服务簇矩阵的难度。经过参数统一标注得到的标注结果如表2所列,则服务簇SC的原子模型如图5所示。
表2 服务簇参数统一标注的结果
基于语义相似度计算对服务库中的服务进行聚类形成服务簇,能够更加有效地对服务进行组织和管理,在服务发现阶段,也能够尽早地筛选掉与服务请求差别很大的多个服务,进而缩小服务发现的规模,提高服务发现的效率。在传统的基于服务聚类的服务发现算法中,当服务发现范围锁定为特定的服务簇时,需要将服务请求与服务簇的多个服务逐一进行比较,以进一步选出满足服务请求的服务。
经过上述操作就生成了服务簇参数矩阵,而它又可以进一步对服务簇的参数进行处理。服务簇的聚类使得同一类相似的服务聚集到一起,而且服务簇之间参数也有相关性。为了更加有效率的利用服务簇的这种特性,可以利用服务簇参数矩阵对服务参数进行进一步的处理。为了便于更快地从特定服务簇中选择出满足服务请求的服务,本发明提出一种服务簇参数矩阵规范化方法,将服务簇的输入/输出参数按照一定的顺序进行排列,从而能够为提高服务发现效率做出一定的贡献,为此提出参数频率概念:
定义服务参数频率:在包含n个服务的服务簇参数矩阵中,设il为第l列对应的参数,则称为参数il的频率。
对服务簇参数矩阵的列顺序进行调整,使得调整之后,矩阵的列是按照列对应参数的频率自左向右非递增顺序排列的,则称这样的矩阵为参数规范化矩阵,记为Asd。
下面以输入矩阵AI为例,给出参数矩阵规范化的具体过程:
设输入矩阵
Step1:对输入矩阵AI的每一列进行求和,得到每个参数的频数,然后将每个参数的频数除以参数的个数;
例如,第l(1≤l≤u)个参数il的频率等于矩阵第l列的和除以u,即
Step2:按照fl(1≤l≤n)的值非递增顺序进行排序;
Step3:按照Step2的排序结果对矩阵的列顺序进行调整,得到AI′,且f′1≥f′2≥…≥f′n。;
至此,服务簇参数矩阵的规范化过程结束,得到参数规范化矩阵Asd=AI′。
经过上述操作,得到输出参数矩阵的规范化矩阵为:
在进行服务发现之前,通过对服务注册库中的服务进行聚类预处理,可以大大缩小服务发现的规模,提高服务发现效率。但是现有的基于服务聚类的服务发现算法在对服务簇中的服务进行筛选时,仍然采用的是服务请求与类中服务逐个匹配的方法,没有充分利用服务簇中服务高度相似的特点,因此,为了更好地体现和利用这一优势,本发明提出了服务簇有序树对服务簇中的服务参数之间的联系进行进一步的挖掘,以达到进一步提高发现效率的目的。
定义记忆化服务链表,Memory service chain table:在服务链表的基础上,每个元素加入一个记忆标志m(p,c)p代表该元素当前位置,c代表该元素组内元素总数。记为MST;生成记忆化服务簇映射目录的算法:
输入:服务簇映射目录L
输出:服务簇记忆化映射目录Lm
1)初始化:服务簇映射目录L;
2)在服务簇映射目录中选择一个目录项L[i],找到对应的服务链表STi
3)根据得到的参数规范化矩阵对统一标注的参数按照频率f从高到低对其非递增排序,根据排序后的参数列表对服务链表中的服务按照本服务包含最高频率参数进行排序。
3.1)首先选取一个包含服务输入参数I={i1,i2,...,in}频率最高参数is(1≤s≤n)的元素放到表头指向的下一元素,此时该元素的记忆标志m(p1,c1),且p1=1,c1=1;
3.2)继续向下遍历,如果存一个元素输入参数包括is,则移动到该位置虚拟化为一个组,该元素的记忆标志为ms(p1+1,c1+1),组内元素更新各自的记忆标志m(pi,ci+1);若不存在,则将包含服务输入参数频率次低的ik(1≤k≤n)移动到该位置虚拟化为一个新组,此时该元素的记忆标志mk(p1,c1),且p1=1,c1=1;
3.3)重复进行步骤2)的操作直到所有服务链表元素被遍历完;
3.4)输出记忆化服务链表MST;
4)重复进行步骤2)和步骤3),直到所有的目录项被遍历。
5)输出记忆化服务簇映射目录Lm。
经过上述算法处理服务簇的内部服务组织形式进一步发生变化,主要体现在以下两点:一是服务簇中每个服务链表的变化,即服务链表中服务的排列顺序由无序向有序的变化;二是在每个服务链表中划分出一个个的虚拟服务组,并且通过划分的虚拟服务组对服务簇参数矩阵也按照上述排序分类算法进行内部的重新组织。
由图6至图9能够更加直观清楚的看出这种变化,我们从中取出一条服务链表来观察:
通过图6至图9,我们可以看出根据输出参数的频率对服务的顺序进行了重新的排序。
由图10可知,虚拟服务组隐藏在这个新生成的服务链表中。每个矩形框中的服务都含有相同的排序频率参数,并且每个服务都记录自己在虚拟服务组内的位置以及组内元素的个数。图10中左侧第一个框中ws5中有服务输出参数频率最高的参数,左侧第二个框中ws17、ws7中含有输出参数频率次高的参数,左侧第三个框中ws13、ws19、ws8再次之。
对服务簇内部服务重新组织之后,这种变化也同样发生在参数矩阵中。下面我们来直观的看一下参数矩阵发生的变化。
经过标准化处理后参数矩中参数按照非递增序列进行了排序,如图11和图12所示。由图11和图12可知,参数i2、i3、i4、i5、i6、i7的顺序都发生了改变,根据这个标准化参数矩阵可以得知参数的分配情况,为后边服务链表内部划分虚拟服务组提供了保障。
下面再来看一下生成记忆化服务簇映射目录后服务簇参数矩阵所发生的变化,如图13所示,参数矩阵中的服务的排列顺序发生了改变,这是因为在服务的定义中本发明给出了Mod=(|I|,|O|)表示输入输出参数模式。根据Mod中|O|即输出参数的个数对服务簇进行了目录化处理,使得具有相同输出参数个数的服务在同一个目录下。
得到记忆化服务簇映射目录后,本发明又进一步的对每个记忆化服务簇目录所对应的服务链表经行了特殊的处理,即按照每个服务中参数频率最小的按照非递减对服务链表中的服务进行排序,如图14所示:
由处理后的参数矩阵,可以看出ws6、ws9和ws4、ws10被划分成一个个虚拟服务组内,它们所在参数矩阵中的位置是相邻连续的。经过以上的各种方法的处理使得参数矩阵形成最终的记忆化服务簇映射目录所对应的参数矩阵列表。
经过服务的聚类形成服务簇,让有相似功能的服务聚集到一起,对服务在功能上进行了分类为提高服务发现的效率提供了保证。进一步我们又发现了服务簇内部也是有一定的关联性的。本发明通过对服务参数进行分类和排序,使服务簇内部的服务由无序向有序转变。
根据记忆化服务簇映射目录、以及记忆化服务簇映射目录对应的服务簇参数矩阵,本发明提出了一种基于记忆化服务簇映射目录的Web服务发现方法:
输入:服务发现请求wsreq=(Funreq,Ireq,Oreq,Modreq,MixUEreq,QoSreq)
输出:满足请求的服务集合S
1)初始化:设定阈值δ;
2)从服务簇SC中任意选择一个服务簇SCr,SC=SC-{SCr},计算Sim(Funreq,Funr);
3)若Sim(Funreq,Funr)<δ,则转到步骤2);否则,选中该服务簇SCr;
4)根据选中的服务簇得到本服务簇的唯一标识SIDr,再根据服务发现请求中的Modreq得到服务发现请求所要求输出参数的个数|Oreq|,根据这两个参数再加上下划线得到服务簇记忆化映射目录的一个目录项的目录索引节点号SIDr_|Oreq|;
4.1)如果SCr.Lm中存在该目录索引节点号,则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤5);
4.2)如果SCr.Lm中不存在该目录索引节点号,但是存在一个或多个目录的索引节点号大于该目录索引节点号(SIDr_|Oreq|中比较|Oreq|的大小),则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤5);
4.3)如果SCr.Lm中不存在该目录索引节点号,也不存在任何一个目录的索引节点号大于该目录索引节点号,则退出算法RETURN空值;
5)遍历选中的服务链表,Ireq中是否存在该记忆化服务链表的排序输入参数,若存在,则进入该排序参数的虚拟服务组,映射到该虚拟服务组的参数矩阵上;
5.1)求解MOreq|(Ot),令k=v,
其中,Ot代表服务簇输出参数矩阵的参数列表,v为输出参数个数,MOreq代表服务请求的输出标识MOreq=[m(o1),m(o2),m(o3),…,m(ok)];
5.11)遍历输出参数Oreq,如果mreq(ok)=0,则转5.13),其中,mreq(ok)代表求得的第k个参数的输出标识值;
5.12)如果mreq(ok)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输出矩阵第k列中0对应的行删掉并且删除对应的输出矩阵中的行,否则转6);
5.13)k=k-1;
5.14)若k≥1,则转5.11),否则,转5.2);
5.2)求解MIreq|(It),令j=u,
其中,MIreq代表服务请求的输入标识MIreq=[m(i1),m(i2),m(i3),…,m(ij)];It代表服务簇输入矩阵的参数列表,u为输入参数个数;
5.21)遍历输入参数Ireq,如果mreq(ij)=0,则转5.23),其中,mreq(ij)代表求得的第j个参数的输入标识值;
5.22)如果mreq(ij)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输入矩阵第j列中0对应的行删掉,否则转6);
5.23)j=j-1;
5.24)若j≥1,则转5.22),否则,转6);
6)S={参数矩阵剩余行对应的服务},输出满足请求的服务集合S。
下面以天气情况查询服务为例,验证采用传统的基于参数匹配的Web服务发现、基于参数矩阵的Web服务发现方法、以及采用本发明提出的基于记忆化服务簇映射目录的Web服务发现方法,通过进行对比和仿真实验,证明本发明提出的语义Web服务发现方法能够更快地返回满足用户需求的服务。
假设一个服务簇中有n个服务,服务簇的输入/出参数集为I/O,服务请求的输入/出参数集分别为Ireq/Oreq,用|I/O|表示参数集的个数,则u=|(I∪Ireq)|,v=|(O∪Oreq)|,将服务请求的输入、输出请求分别转化为向量表示的形式,与服务簇中的服务进行匹配。
若采用传统的参数匹配方法,分两步进行服务匹配:首先,输出请求向量与每个服务的输出向量逐一进行匹配,匹配次数为n×v次,删掉不能提供请求者需要的输出的服务(假设为m个);然后请求输入向量与剩余的每个服务的输入向量逐一进行匹配,匹配次数为(n-m)×u次,最终得到满足请求的服务。
若采用基于参数矩阵的服务发现方法,也通过输出参数匹配和输入参数匹配两步完成服务匹配。首先,对于输出请求向量中0对应的参数不需做匹配处理,对于1对应的参数,按照频数从小到大的顺序取参数,与输出矩阵中对应列中的参数值进行匹配,假设经过第i次匹配后,一次删掉的服务个数为mi,则共匹配次,即完成了输出参数匹配,得到满足输出请求的服务有个。对于输入参数,则输入请求向量中1对应的参数不需做匹配处理,对于0对应的参数,按照矩阵中参数频数从大到小的顺序取参数,与输入矩阵中对应列中的参数值进行匹配,假设经过第j次匹配后,一次删掉的服务个数为mj,则共匹配 次。
若采用基于记忆化映射目录的服务发现方法,首先根据服务输入参数确定记忆化映射目录的目录项,然后映射到它所对应的记忆化服务链表上,假设服务链表上有s个服务则仅经过这一次处理就排除了n-s个服务。映射到记忆化服务链表后按照输入参数频率快速定位到一个虚拟的服务组中,由于是分组那么进行定位的次数远小于s设为t次;每一次定位都会排除一个组内所有的服务,而定位确定之后就只有本组服务(设为m个)参与服务发现。这将大大缩小参与匹配发现的服务个数。另外上文提过的基于参数矩阵的匹配方法中提到过输出请求向量中0对应的参数不需做匹配处理,这里把参数分为可选的和必须的而本发明则考虑所有服务参数都是一样的没有必须和可选之分,所谓可选的也是系统提供给该参数的默认值。定位到虚拟服务组后它映射到参数矩阵上然后进行匹配发现处理。对于输入输出参数的匹配本发明都是按照参数频率从小到大进行匹配,假设经过第i次匹配后,一次删掉的服务个数为mi,则共匹配次就完成了对输出参数的匹配。对于输入参数,按照矩阵中参数频数从大到小的顺序取参数,与输入矩阵中对应列中的参数值进行匹配,假设经过第j次匹配后,一次删掉的服务个数为mj,则共匹配次。
下面给出的天气查询服务簇为例,从匹配次数和返回结果两方面对传统的服务匹配、基于服务簇参数矩阵的服务发现和基于记忆化服务簇映射目录的服务发现方法进行比较分析。下面给出聚类生成的一个关于机票服务簇SC中包含多个原子服务,具体描述如表3所列。
表3 ws1-ws10的相关描述
过参数统一标注处理后输入输出参数对应的本体参数如下所示:i1→ip、i2→CityId、i3→CityName、i4→UserId、i5→date;o1→weather、o2→min temperature、o3→max temperature、o4→Real-timeTemperature、o5→WindForce、o6→WindDirection、o7→Humidity、o8→City、o9→Des、o10→exponent;
本例天气查询服务的服务簇参数矩阵如图15所示,经过记忆化服务簇映射目录方法处理后的映射参数矩阵如图16所示。
假设给定4个天气情况查询的服务请求wsreq1-wsreq4,分别为:
wsreq1:(ip)→(weather)
wsreq2:(ip,CityName,date)→(weather,exponent,Humidity)
wsreq3:(ip,CityName,date)→(weather)
wsreq4:(CityName,UserId)→(exponent,Humidity)
则对请求做简单处理,得到其向量表示如下:
wsreq1:[1 0 0 0 0]→[1 0 0 0 0 0 0 0 0 0]
wsreq2:[1 0 1 0 1]→[1 0 0 0 0 0 1 0 0 1]
wsreq3:[1 0 1 0 1]→[1 0 0 0 0 0 0 0 0 0]
wsreq4:[0 0 1 1 0]→[0 0 0 0 0 0 1 0 0 1]
分别采用传统的基于参数匹配的Web服务发现、基于参数矩阵的Web服务发现方法以及本发明提出的基于服务簇映射目录的Web服务发现方法,从服务簇中发现满足wsreq1-wsreq4的服务,其匹配的次数以及返回服务集合,如表4所列。可以清楚地看到,针对相同的服务请求,两种方法返回的Web服务集合相同,但是本发明提出的基于服务簇映射目录的Web服务发现方法与传统的基于参数匹配的Web服务发现方法和基于参数矩阵的Web服务发现方法相比,其匹配次数减少发现效率有所提高。
表4 匹配次数比较
下面对本发明中的Web服务发现方法进行了仿真:
实验环境:CPU为Intel Core5Duo2.40GHz,内存为4GB,操作系统为Windows7,实现工具为MyEclipse,数据库选用MySQl。
实验数据:由于目前缺乏相关的标准平台和标准测试数据集,并且本发明方法与聚类过程无关,因此本次仿真实验模拟的是聚类形成之后的服务发现。进一步服务簇的发现过程三种方法基本一致,所以本次仿真实验省略了服务簇的匹配过程,重点是仿真簇内部的服务发现过程以及时间。服务数据都采用随机生成的模拟Web服务数据作为测试用例。
实验过程设计如图17所示。本实验采用自上而下的方法生成Web服务测试数据集,并分别采用基于关键字、基于传统聚类预处理以及基于本发明提出的服务簇网元模型的Web服务发现方法对服务测试数据集进行查找。为了方便,每次实验随机生成100个服务请求,为其从测试集中查找满足要求的服务,并记录查找时间和返回结果。具体的实现过程为:
首先,构造虚拟的参数本体集。在此过程中,构造约1000个本体概念,并将其存储在数据库表中;
其次,利用虚拟的参数本体集构造多个Web服务。服务簇的功能语义描述仍作为其中每个Web服务的描述,随机确定参数本体集中的本体为输入/输出参数或不选用,让其作为每个Web服务的输入/输出参数,从而为服务簇产生多个经过参数统一标注的相似的Web服务。
然后,生成100个服务请求,分别采用基于传统聚类预处理、基于参数矩阵的Web服务发现方法以及基于记忆化服务簇映射目录的Web服务发现方法为其从生成的Web服务测试集中查找Web服务;
最后,按照上述步骤进行五次实验,每次测试集中服务簇中服务的数量分别约为100、500、1000、5000、10000,最终分别记录每次实验中三种方法的查找时间,如表5所示。
表5 结果数据表
由结果数据表所示:fid为1、2、3分别对应了三种服务发现算法,基于传统聚类预处理、基于参数矩阵的Web服务发现方法以及基于记忆化服务簇映射目录的Web服务发现方法。从表中可以清楚的看到随着服务簇中服务的增加,本发明方法比基于传统聚类预处理和基于参数矩阵的Web服务发现方法所需的时间都要少很多。
由于数值差距较大,本发明纵轴对服务发现总时间取对数刻度,基数为10。横轴为服务簇中服务的数量因此,仿真实验结果的比较如图18所示。
结果表明,三种服务发现方法中,基于记忆化服务簇映射目录的服务发现方法的查找效率最高,因此,在三种Web服务发现方法中,本发明所提出的方法能够以最快速度返回满足需求的服务,发现效率最高。
当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
Claims (8)
1.基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,包括如下步骤:
S1、通过计算Web服务功能的语义相似度或者Web服务参数的语义相似度,对服务库中的服务进行层次聚类,将具有相同或相似功能的服务聚集到一起构建服务簇;基于逻辑Petri网提出Web服务的形式化模型,并在此基础上构建Web服务簇的形式化模型,根据Web服务簇的形式化模型构建服务簇参数矩阵,并进行规范化处理得到参数规范化矩阵;
S2、对聚类形成的服务簇内部进行处理分类形成服务簇映射目录,每个服务簇映射目录由一个或多个服务簇目录项组成,且每个服务簇目录项都映射一个服务链表,每个服务链表由一个或多个服务连接组成,每个服务簇目录项包含一个服务功能描述和索引节点号;
根据参数规范化矩阵将服务簇目录项对应的服务链表中的服务进行排序处理,划分出虚拟服务组,形成记忆化服务链表,进而得到记忆化服务簇映射目录;对服务在服务簇中的顺序调整又映射到服务簇参数矩阵中,形成记忆化服务簇映射目录对应的服务簇参数矩阵;
S3、当一个服务请求到达时,首先对各个服务簇进行搜索,若单个服务簇的功能能够满足需求,则选定该服务簇,根据服务请求的内容选定记忆化服务簇映射目录的目录项,映射到该目录项所对应的服务链表中,然后根据对应的服务簇参数矩阵进行服务的匹配找到满足服务请求的服务请求结果集,最后经过服务结果集筛选算法处理后,将服务发现的结果呈现给用户,完成一次服务的发现匹配请求。
2.根据权利要求1所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S1中,服务簇参数矩阵的规范化过程如下:
定义服务参数频率:在包含n个服务的服务簇参数矩阵中,设il为第l列对应的参数,则称为参数il的频率;
设输入矩阵
表示服务簇包含n个服务,对应于输入矩阵的n个行,服务簇输入集合中包含u个参数,对应于输入矩阵的u个列;
S101、对输入矩阵AI的每一列进行求和,得到每个参数的频数,然后将每个参数的频数除以参数的个数;
S102、按照fl(1≤l≤n)的值非递增顺序进行排序;
S103、按照S102的排序结果对矩阵的列顺序进行调整,得到AI′,且f′1≥f′2≥…≥f′n;
至此,服务簇输入矩阵的规范化过程结束,参数规范化矩阵Asd=AI′。
3.根据权利要求1所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于, 所述步骤S2中,服务簇映射目录的生成方法包括:
S201、输入服务簇SC={ws1,ws2,...,wsn},将服务簇映射目录L起始目录项L1初始化为该服务簇的唯一索引节号SID及服务簇功能描述Fun;
S202、选择服务簇中的一个服务wsi(1≤i≤n),记录这个服务wsi的Mod值;依据输出参数O的个数生成一个服务簇目录项;其中,索引节点号SID由该服务簇索引节点号、下划线、该服务wsi的输出参数个数组成,记为SID_|O|;
S203、若此索引节点号在服务簇映射目录L中不存在,则在服务簇映射目录L中插入该目录项,并生成一个该索引节点号的服务链表ST,将此服务wsi插入其中,否则,依据索引节点号找到对应的服务链表将此服务wsi插入其中;
S204、不断的重复进行步骤S202和步骤S203,直到服务簇中所有的服务都被遍历到;
S205、输出服务簇映射目录L;
其中,Mod=(|I|,|O|)表示输入输出参数模式,I表示输入参数,O表示输出参数,|I|表示输入参数的个数,|O|表示输出参数的个数。
4.根据权利要求1所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S2中,记忆化服务簇映射目录的具体生成过程如下:
定义记忆化服务链表:在服务链表的基础上,每个元素加入一个记忆标志m(p,c),p代表该元素当前位置,c代表该元素组内元素总数,记为MST;
S211、输入服务簇映射目录L并初始化;
S212、在服务簇映射目录L中选择一个目录项L[i],找到对应的服务链表STi;
S213、根据参数规范化矩阵对服务参数按照频率从高到低对其非递增排序,根据排序后的参数列表对服务链表中的服务按照该服务包含最高频率参数进行排序;
S214、重复进行步骤S212和步骤S213,直到所有的目录项遍历完成;
S215、输出记忆化服务簇映射目录Lm。
5.根据权利要求4所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S213中,还包括如下子步骤:
S2131、首先选取一个包含服务输入参数I={i1,i2,...,in}频率最高参数is(1≤s≤n)的元素放到表头指向的下一元素,此时该元素的记忆标志m(p1,c1),且p1=1,c1=1;
S2132、继续向下遍历,如果存一个元素输入参数包括is,则移动到该位置虚拟化为一个组,该元素的记忆标志为ms(p1+1,c1+1),组内元素更新各自的记忆标志m(pi,ci+1);若不存在,则将包含服务输入参数频率次低的ik(1≤k≤n)移动到该位置虚拟化为一个新组,此时该元素的记忆标志mk(p1,c1),且p1=1,c1=1;
S2133、重复进行步骤S212的操作直到所有服务链表元素被遍历完;
S2134、输出记忆化服务链表MST。
6.根据权利要求1所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S3中,包括如下子步骤:
输入:服务发现请求wsreq=(Funreq,Ireq,Oreq,Modreq,MixUEreq,QoSreq),其中,
Funreq表示服务请求者提出的服务要实现的功能;
Modreq表示服务请求者提供输入参数及所需要输出参数的个数模式;
Ireq表示服务请求者可以提供的输入集合,并且每个输入参数都用概念进行标注;
Oreq表示服务请求者所需要的输出集合,并且每个输出参数也都用概念进行标注;
MixUEreq表示所需要服务的用户评价指数的最小值;
QoSreq表示服务请求者对服务质量各属性的约束集合;
输出:满足请求的服务集合S,
S31、初始化设定阈值δ;
S32、从服务簇SC中任意选择一个服务簇SCr,SC=SC-{SCr},计算Sim(Funreq,Funr),其中,Funr为服务簇SCr的服务功能描述;
S33、若Sim(Funreq,Funr)<δ,则转到步骤S32;否则,选中该服务簇SCr;
S34、根据选中的服务簇得到该服务簇SCr的唯一标识SIDr,再根据服务发现请求中的Modreq得到服务发现请求所要求输出参数的个数|Oreq|,根据这两个参数再加上下划线得到服务簇记忆化映射目录的一个目录项的目录索引节点号SIDr_|Oreq|;
S35、遍历选中的服务链表,Ireq中是否存在该记忆化服务链表的排序输入参数,若存在,则进入该排序参数的虚拟服务组,映射到该虚拟服务组的参数矩阵上;
S36、S={参数矩阵剩余行对应的服务},输出满足请求的服务集合S。
7.根据权利要求6所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S34中,包括如下子步骤:
S341、如果服务簇SCr、服务簇映射目录Lm中存在该目录索引节点号,则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤S35;
S342、如果服务簇SCr、服务簇映射目录Lm中不存在该目录索引节点号,但是存在一个或多个目录的索引节点号大于该目录索引节点号,则定位到该目录项以及它所指向的记忆化服务链表,然后转到步骤S35;
S343、如果服务簇SCr、服务簇映射目录Lm中不存在该目录索引节点号,也不存在任何一个目录的索引节点号大于该目录索引节点号,则退出算法RETURN空值。
8.根据权利要求6所述的基于记忆化服务簇映射目录的Web服务发现方法,其特征在于,所述步骤S35中,包括如下子步骤:
S351、求解MOreq|(Ot),令k=v,其中,Ot代表服务簇输出参数矩阵的参数列表,v为输出参数个数,MOreq代表服务请求的输出标识MOreq=[m(o1),m(o2),m(o3),…,m(ok)];
S3511、遍历输出参数Oreq,如果mreq(ok)=0,则转S3513,其中,mreq(ok)代表求得的第k个参数的输出标识值;
S3512、如果mreq(ok)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输出矩阵第k列中0对应的行删掉并且删除对应的输出矩阵中的行,否则转S36;
S3513、k=k-1;
S3514、若k≥1,则转S3511,否则转S352;
S352、求解MIreq|(It),令j=u,其中,MIreq代表服务请求的输入标识MIreq=[m(i1),m(i2),m(i3),…,m(ij)];It代表服务簇输入矩阵的参数列表,u为输入参数个数;
S3521、遍历输入参数Ireq,如果mreq(ij)=0,则转S3523,其中,mreq(ij)代表求得的第j个参数的输入标识值;
S3522、如果mreq(ij)=1,所对应的参数矩阵参数存在且矩阵行数不为零,则将服务簇输入矩阵第j列中0对应的行删掉,否则转S36;
S3523、j=j-1;
S3524、若j≥1,则转S3522,否则转S36。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410305268.6A CN104092744B (zh) | 2014-06-30 | 2014-06-30 | 基于记忆化服务簇映射目录的Web服务发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410305268.6A CN104092744B (zh) | 2014-06-30 | 2014-06-30 | 基于记忆化服务簇映射目录的Web服务发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092744A true CN104092744A (zh) | 2014-10-08 |
CN104092744B CN104092744B (zh) | 2017-04-12 |
Family
ID=51640424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410305268.6A Expired - Fee Related CN104092744B (zh) | 2014-06-30 | 2014-06-30 | 基于记忆化服务簇映射目录的Web服务发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092744B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317853A (zh) * | 2014-10-15 | 2015-01-28 | 山东科技大学 | 一种基于语义Web的服务簇构建方法 |
CN104902018A (zh) * | 2015-05-20 | 2015-09-09 | 山东科技大学 | 基于服务簇的服务组合与替换方法 |
CN105591978A (zh) * | 2014-11-11 | 2016-05-18 | 美国博通公司 | 基于网络的服务功能链接 |
CN107852368A (zh) * | 2015-07-14 | 2018-03-27 | 微软技术许可有限责任公司 | 用于网络服务的高度可用的服务链 |
CN108470181A (zh) * | 2018-01-22 | 2018-08-31 | 南京邮电大学 | 一种基于加权序列关系的Web服务替换方法 |
CN110059880A (zh) * | 2019-04-17 | 2019-07-26 | 中国人民解放军国防科技大学 | 一种服务发现方法及装置 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN113343507A (zh) * | 2021-07-07 | 2021-09-03 | 广州昇谷科技有限公司 | 一种面向水利勘测的Web服务组合发现方法 |
CN113343507B (zh) * | 2021-07-07 | 2024-05-14 | 广州昇谷科技有限公司 | 一种面向水利勘测的Web服务组合发现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111525A1 (en) * | 2002-12-09 | 2004-06-10 | International Business Machines Corporation | Dynamic web service implementation discovery and selection apparatus and method |
CN102413114A (zh) * | 2011-08-12 | 2012-04-11 | 华南理工大学 | 一种面向组合的语义web服务发现方法 |
-
2014
- 2014-06-30 CN CN201410305268.6A patent/CN104092744B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111525A1 (en) * | 2002-12-09 | 2004-06-10 | International Business Machines Corporation | Dynamic web service implementation discovery and selection apparatus and method |
CN102413114A (zh) * | 2011-08-12 | 2012-04-11 | 华南理工大学 | 一种面向组合的语义web服务发现方法 |
Non-Patent Citations (3)
Title |
---|
李曼等: "《基于服务分组的语义Web服务发现研究》", 《计算机工程与应用》 * |
栾文静等: "《一种基于服务簇网元模型的Web服务发现方法》", 《计算机科学》 * |
胡强等: "《面向服务簇的服务体系结构及服务发现》", 《计算机应用》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317853B (zh) * | 2014-10-15 | 2017-06-30 | 山东科技大学 | 一种基于语义Web的服务簇构建方法 |
CN104317853A (zh) * | 2014-10-15 | 2015-01-28 | 山东科技大学 | 一种基于语义Web的服务簇构建方法 |
CN105591978A (zh) * | 2014-11-11 | 2016-05-18 | 美国博通公司 | 基于网络的服务功能链接 |
CN105591978B (zh) * | 2014-11-11 | 2019-07-05 | 安华高科技股份有限公司 | 基于网络的服务功能链接 |
CN104902018A (zh) * | 2015-05-20 | 2015-09-09 | 山东科技大学 | 基于服务簇的服务组合与替换方法 |
CN104902018B (zh) * | 2015-05-20 | 2018-01-09 | 山东科技大学 | 基于服务簇的服务组合与替换方法 |
CN107852368A (zh) * | 2015-07-14 | 2018-03-27 | 微软技术许可有限责任公司 | 用于网络服务的高度可用的服务链 |
CN107852368B (zh) * | 2015-07-14 | 2021-04-06 | 微软技术许可有限责任公司 | 用于网络服务的高度可用的服务链 |
CN108470181A (zh) * | 2018-01-22 | 2018-08-31 | 南京邮电大学 | 一种基于加权序列关系的Web服务替换方法 |
CN108470181B (zh) * | 2018-01-22 | 2022-05-20 | 南京邮电大学 | 一种基于加权序列关系的Web服务替换方法 |
CN111224831B (zh) * | 2018-11-26 | 2022-03-29 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN110059880A (zh) * | 2019-04-17 | 2019-07-26 | 中国人民解放军国防科技大学 | 一种服务发现方法及装置 |
CN110059880B (zh) * | 2019-04-17 | 2021-05-11 | 中国人民解放军国防科技大学 | 一种服务发现方法及装置 |
CN113343507A (zh) * | 2021-07-07 | 2021-09-03 | 广州昇谷科技有限公司 | 一种面向水利勘测的Web服务组合发现方法 |
CN113343507B (zh) * | 2021-07-07 | 2024-05-14 | 广州昇谷科技有限公司 | 一种面向水利勘测的Web服务组合发现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104092744B (zh) | 2017-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104092744B (zh) | 基于记忆化服务簇映射目录的Web服务发现方法 | |
CN111435344B (zh) | 一种基于大数据的钻井提速影响因素分析模型 | |
Khan et al. | Cloud based big data analytics for smart future cities | |
JP5227985B2 (ja) | オントロジを用いたコンテンツ検索システムおよび方法 | |
CN103631882A (zh) | 基于图挖掘技术的语义化业务生成系统和方法 | |
CN103631922A (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN109033314A (zh) | 内存受限情况下的大规模知识图谱的实时查询方法和系统 | |
CN102664915A (zh) | 云制造环境中基于资源约束的服务选取方法 | |
CN109948150A (zh) | 一种多域环境中基于知识图谱的高性能服务语境发现方法 | |
Wang et al. | A novel blockchain oracle implementation scheme based on application specific knowledge engines | |
Abid et al. | Semantic web service composition using semantic similarity measures and formal concept analysis | |
Seo et al. | Big data framework for analyzing patents to support strategic R&D planning | |
KR20200082179A (ko) | 공간 데이터의 의미론적 주석을 위한 데이터 변환 방법 | |
CN103164476A (zh) | 一种bi应用元数据描述文件的执行方法和装置 | |
Abdelli et al. | A novel and efficient index based web service discovery approach | |
CN115438199A (zh) | 一种基于智慧城市场景数据中台技术的知识平台系统 | |
Sargolzaei et al. | A tool for behaviour-based discovery of approximately matching web services | |
Fernández et al. | Management of big semantic data | |
CN107436919B (zh) | 一种基于本体和boss的云制造标准服务建模方法 | |
de Faria Cordeiro et al. | An approach for managing and semantically enriching the publication of Linked Open Governmental Data | |
Brisaboa et al. | New structures to solve aggregated queries for trips over public transportation networks | |
Kemp et al. | Cloud big data application for transport | |
Khurana et al. | Survey of techniques for deep web source selection and surfacing the hidden web content | |
Al-Ghezi | Universal Workload-based Graph Partitioning and Storage Adaption for Distributed RDF Stores | |
Sagayaraj et al. | A survey on clustering methods in web service discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170412 Termination date: 20200630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |