首页> 中国专利> 一种基于Service Cache的服务发现方法

一种基于Service Cache的服务发现方法

摘要

本发明涉及一种基于Service Cache的服务发现方法。该发现方法把服务发现的过程分为服务选择层、Service Cache层、适配层和异构发现层四个层次,其中服务选择层对位于下层的Service Cache层返回的服务发现结果进行服务选择;Service Cache层只存储已经接受的查询和结果,当存储空间不足时,则对存储数据进行置换;适配层由多个适配器构成,用于完成统一查询到异构发现域查询语言的适配;异构发现层由具体发现协议下形成的异构发现域组成,这些异构发现域彼此之间通过上层来完成交互,用户查询到的服务全部都来自这一层。本发明具有克服服务发现的重叠性问题、提高服务的发现效率、整合发现协议的异构性、增强不同发现域之间的互操作性,并提高服务发现准确率的优点。

著录项

  • 公开/公告号CN101588369A

    专利类型发明专利

  • 公开/公告日2009-11-25

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200910100054.4

  • 申请日2009-06-25

  • 分类号

  • 代理机构杭州裕阳专利事务所(普通合伙);

  • 代理人张骁敏

  • 地址 310027 浙江省杭州市西湖区浙大路38号

  • 入库时间 2023-12-17 23:01:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-07

    未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2009101000544 申请日:20090625 授权公告日:20120314

    专利权的终止

  • 2013-06-19

    专利实施许可合同备案的生效 IPC(主分类):H04L29/06 合同备案号:2013330000112 让与人:浙江大学 受让人:苏州龙唐信息科技有限公司 发明名称:一种基于ServiceCache的服务发现方法 申请公布日:20091125 授权公告日:20120314 许可种类:普通许可 备案日期:20130426 申请日:20090625

    专利实施许可合同备案的生效、变更及注销

  • 2012-03-14

    授权

    授权

  • 2010-01-20

    实质审查的生效

    实质审查的生效

  • 2009-11-25

    公开

    公开

说明书

技术领域

本发明属于web服务的服务发现技术领域,尤其是一种基于Service Cache的服务发现方法。

背景技术

Web服务(Web Service)技术是为解决网络应用集成问题而提出来的,使得应用程序可以用与平台和编程语言无关的方式进行相互通信的一项技术。以XML/SOAP(简单对象访问协议)/WSDL(Web服务描述语言)/UDDI(统一描述,发现和集成协议)为主干的Web服务技术赋予了Web服务一个与传统对象调用技术相似又不太相同的体系架构,消除了使用不同组件模型、操作系统和编程语言的系统之间所存在的差异,使异构系统能够作为单个计算网络协同运行。随着互联网中Web服务数目和种类的增加,如何方便有效地进行服务发现是面向服务的架构SOA(Service Oriented Architecture)所要解决的关键问题之一。

在普适环境中,数量庞大的服务不断的加入和离开网络,环境的结构、组成以及环境中的资源、服务都是动态变化的,因此,简化服务的发现、配置和使用,为用户发现准确而有效的服务显得尤为重要。服务发现技术能够帮助用户在动态变化的普适环境中查找、匹配、定位所需的服务,检测服务可用性状态的变化从而克服普适环境的动态变化特征对于用户发现并调用服务的影响。此外,服务发现系统还可以向用户提供统一的接口和规范,提高服务的查询效率,减少服务查找的系统开销,提供灵活方便的服务描述方法,增加同其它服务发现系统的兼容性。

目前已经有许多服务发现解决方案,如UPnP、Salutation、Bluetooth、SLP、Jini等,在各种特定的网络和应用中,实现了简单、高效和强大的服务发现弄能。但是,这些发现协议形成了各自独立的发现域,彼此之间缺乏有效的通信和协作。如果一个服务被部署在了一个域中,则其他域下的用户就很难发现和使用这个服务。由此可见,我们需要提供一个为不同发现协议实现交互协作的方法,以提高不同发现域之间的互操作性,并提高服务发现效率。

此外,在现有的服务选择过程中,人们往往没有考虑发现的重叠性问题,对一些用户查询频率较高的关键字,一般会进行多次重复的服务发现过程,不但浪费了资源,而且影响了发现效率。

还有,服务选择是从对匹配的服务进行选择、过滤和排序的过程。在普适环境中存在着大量相识的服务,它们分布在同个或不同的发现域下,提供截然不同的网络服务,所以服务的选择,特别是与用户请求最相关的服务的选择显得尤为重要。

发明内容

本发明所要解决的技术问题是提供一种克服服务发现的重叠性问题、提高服务的发现效率、整合发现协议的异构性、增强不同发现域之间的互操作性,并提高服务发现准确率的基于Service Cache的服务发现方法。

本发明解决上述问题所采用的技术方案是:该发现方法把服务发现的过程分为服务选择层、Service Cache层、适配层和异构发现层四个层次,其中

服务选择层对位于下层的Service Cache层返回的服务发现结果进行服务选择,服务选择包括过滤和排序两个步骤,且服务选择通过Service Filter和UserProfile两个模块来实现;

Service Cache层只存储已经接受的查询和结果,当存储空间不足时,则对存储数据进行置换;

适配层由多个适配器构成,用于完成统一查询到异构发现域查询语言的适配;

异构发现层由具体发现协议下形成的异构发现域组成,这些异构发现域中具有各自独特的网络环境和拓扑结构,彼此之间通过上层来完成交互,用户查询到的服务全部都来自这一层;

该发现方法的具体步骤为,

(1)用户发出服务查询请求query_x;

(2)Service Cache层接收上述查询请求query_x,经语言处理模块处理后与存储的历史查询query1,query2,…,queryn进行匹配,如果查询请求query_x与历史查询queryi匹配,则命中,直接返回查询queryi对应的结果Ri到服务选择层,如果没有找到匹配的历史查询,则没有命中,就把查询请求query_x发送至下层继续服务发现过程;

(3)上述步骤(2)如果命中,把结果Ri直接返回给服务选择层,服务选择层对返回的结果进行过滤和排序,然后返回给用户;

(4)上述步骤(2)如果没有命中,把原来的查询请求query_x经处理后生成一个统一查询请求query_x_unified并分发至下层的适配层。

(5)到达适配层中适配器的查询请求query_x_unified首先经过一个转换引擎,把在Service Cache层中生成的统一查询请求query_x_unified转换成适配器对应发现域的查询请求

query_x_specific_i,然后将转换后的查询请求query_x_specific_i发送到各个具体的发现域,进行具体的服务发现过程;

(6)异构发现域进行服务的发现,并把发现结果Rx_specific_i返回给上层的适配层;

(7)发现结果Rx_specific_i经适配层到Service Cache层,Service Cache对结果进行整合,生成此次查询的最终结果Rx;

(8)Service Cache层把查询请求和结果(query_x,Rx)保存,并把结果Rx发送到服务选择层;

(9)服务选择层对返回的结果Rx进行过滤和排序,返回给用户。

本发明所述步骤(2)中将查询请求query_x发到一个语言处理模块,语言处理模块对查询进行语言学上的分析,处理方式主要包含分解和连接过程;然后用分析后的query_x与Service Cache层中存储的查询进行匹配,匹配时采用二分查找法,如果存在queryi与query_x相匹配,则为命中,直接把queryi对应的结果Ri返回给上层。

本发明所述步骤(3)中对检索到的服务进行过滤,同时对查询结果进行排序,具体为:

(a)从Service Cache层中接收检索到的服务查询结果;

(b)Service Filter模块获取规则集合filterRules和sortRules;

(c)Service Filter模块遍历filterRules,针对每条过滤规则,对输入的服务进行过滤;

(d)Service Filter模块遍历sortRules,按照每条排序规则,对过滤后的服务进行排序;

(e)返回最终结果给用户。

另外,User Profil模块自动收集用户的上下文信息和检索习惯,经分析后生成过滤和排序准则,并更新至filterRules和sortRules。

本发明所述步骤(4)~(8)中,如果没有命中,生成一个包含原来查询请求query_x的通用查询query_x_unified,然后把这个通用查询分发到适配层中的各个适配器,开始检索过程;再接收从适配层返回的检索结果Rx,把查询请求和检索结果(query_x,Rx)保存在Service Cache层中;最后把结果Rx返回给服务选择层做进一步的处理。

本发明与现有技术相比,具有以下有益效果:(1)在服务选择层,该发现方法使用User Profile模块来自动收集和分析用户的上下文信息和偏好习惯等,能实现在无需用户参与的情况下返回与用户查询最相关的服务;(2)Service Cache层提供了一个类似的集中式服务目录,同时它又采用缓存的概念,不是存储所有的服务,而是只存储已经接受的查询和结果,这样就在服务发现的过程中加入了Service Cache的概念,不但节约了资源消耗,而且提高了查询效率;(3)在适配层中,适配器的转换机制消除了异构发现域的异构性,适配器和异构发现域的映射机制增强了系统的兼容性和可扩展性。

附图说明

图1为本发明的总体结构和流程图。

图2为本发明中Service Cache层的物理结构图。

图3为本发明中服务选择的流程图。

图4为本发明中Service Cache层处理服务查询的流程图。

具体实施方式

本实施例中,该发现方法把服务发现的过程分为四个层次:服务选择层、Service Cache层、适配层和异构发现层,每个层次都不依赖其他层次独立完成服务发现对应阶段的任务。其中:

1、服务选择层的主要职责是对位于下层的Service Cache层返回的服务发现结果进行服务选择。服务选择包括过滤和排序两个步骤,过滤过程是依据用户的上下文信息,把与用户上下文信息不符的服务拦截,选择与用户请求比较相关的服务;排序过程依据用户的偏好信息对检索到的服务进行一次排序,以确保把用户最感兴趣的服务排在前面。

服务选择通过Service Filter和User Profile两个模块来实现。

Service Filter模块依据规则集合filterRules和sortRules对来自下层的服务发现结果进行过滤和排序。利用规则集合时,Service Filte模块首先遍历filterRules,针对里面的每条过滤规则,对输入的服务进行过滤。然后遍历sortRules,按照里面的每条排序规则,对过滤后的服务进行排序,向用户返回最终服务发现结果。

User Profile模块自动收集用户的偏好和上下文信息,如感兴趣的服务主题、网络类型和连接状况和位置信息等。然后对该模块收集到的信息进行分析,形成新的过滤或排序规则加入到filterRules或sortRules中。

2、Service Cache层主要是一个全局的Service Cache,其采用和扩展了缓存的概念,在服务发现过程中,Service Cache层不但对数据进行缓存,而且提供一个近似UDDI的功能,然而Service Cache层并不是存储所有的服务,而是只存储查询过的服务,其服务的来源也不是服务提供者的注册,而是来自历史的查询。其主要思想是把系统已经接受的查询和结果存储在Service Cache层中,接受新的用户查询时首先将用户查询与Service Cache层已接受的历史查询进行匹配,如果匹配成功就直接返回结果,否则生成一个统一查询语言向下查询,最终返回结果给用户,同时将结果存储在Service Cache层中。

Service Cache层中存储已经接受的历史查询和结果,其物理结构图如图2所示。Service Cache的物理结构分成两部分,Query Info和Service Metadata,其中Query Info里存放查询和对应的查询服务的集合,集合中的服务用ID来表示,以节约存储空间。Service Metadata里则存储具体的服务,以及每个服务对应的ID。为了表述方便,用一个矩阵来表示Service Cache的逻辑结构:

query1R1query2R2query3R3....................querynRn

其中第一列数据queryn表示存储的历史查询,第二列数据Rn表示查询对应的结果集。

当用户发出服务发现请求query_x后,系统开始以下步骤:

首先从上述数据结构的第一列数据

(query1,query2,query3,…….,queryn)中查找能与query_x相匹配的查询。

如果存在一个查询queryi与query_x匹配,则表示“命中”,直接返回查询结果Ri。

否则将查询query_x发送到下面适配层进行服务发现。同时系统启动一个进程等待和接收返回的发现结果。

当query_x的发现结果Rx返回后,系统将此次查询和结果放入ServiceCache中,并将服务发现结果Rx返回给用户。更新后的Service Cache数据结构如下所示:

query1R1query2R2query3R3..........query_xRx..........querynRn

为了提高查询匹配的效率,Service Cache里存储的历史查询按一定次序有序排列。在与有序的数据进行匹配时,采用时间复杂度为logn的二分查找法作为匹配算法。

Service Cache层采用缓存的概念,在其存储空间不足时,需要对存储数据进行置换过程。传统的缓存置换策略采取一一置换的方式,即用一个(组)新数据代替一个(组)旧数据。与传统的缓存置换策略不同,Service Cache层的缓存置换策略是用一组数据置换多组数据的置换方式,以减少系统的置换操作次数。在选择牺牲数据组时采用LRU算法,选择最近最少使用的N组数据。其置换策略的算法过程如下:

Service Cache收到一个返回的查询结果(query_x,Rx),首先检查ServiceCache剩余的存储空间FreeMemory;

如果FreeMemory小于一个阈值(FreeMemory<Threshold),则开始按照LRU算法寻找N组牺牲数据组((queryi,Ri),(queryj,Rj),…);

从Service Cache中删除这N组牺牲数据,将新的查询结果(query_x,Rx)加入到Service Cache中;

如果FreeMemory>Threshold则不需要置换。

除此之外,Service Cache中还有个语言处理模块,负责将用户的查询关键词进行分析处理,对关键词进行分词的分解和合并,以得到尽量全面的匹配。

3、适配层由多个适配器构成,用于完成统一查询到异构发现域查询语言的适配。适配器和下层的异构发现域构成了一对一的映射关系。每个适配器都有一个转换引擎,能够把一个统一的查询语言转换成对应的异构发现域理解的查询语言格式。当出现新的异构发现域后,只需实现一个对应的适配器就可以实现把新的异构发现域集成进来。因此,该层不但能够消除不同异构发现域的异构性,而且使得系统有很强的兼容性和可扩展性。

4、异构发现层由具体的发现协议下形成的异构发现域组成。这些异构发现域中具有各自独特的网络环境和拓扑结构,彼此之间通过上层来完成交互。用户查询到的服务全部都是来自这一层。

参见图1,该发现方法的具体步骤为,

(1)用户发出服务查询请求query_x;

(2)Service Cache层接收上述查询请求query_x,经语言处理模块处理后与存储的历史查询query1,query2,…,queryn进行匹配,如果查询请求query_x与历史查询queryi匹配,则命中,直接返回查询queryi对应的结果Ri到服务选择层,如果没有找到匹配的历史查询,则没有命中,就把查询请求query_x发送至下层继续服务发现过程;

(3)上述步骤(2)如果命中,把结果Ri直接返回给服务选择层,服务选择层对返回的结果进行过滤和排序,然后返回给用户;

(4)上述步骤(2)如果没有命中,把原来的查询请求query_x经处理后生成一个统一查询请求query_x_unified并分发至下层的适配层。

(5)到达适配层中适配器的查询请求query_x_unified首先经过一个转换引擎,把在Service Cache层中生成的统一查询请求query_x_unified转换成适配器对应发现域的查询请求

query_x_specific_i,然后将转换后的查询请求query_x_specific_i发送到各个具体的发现域,进行具体的服务发现过程;

(6)异构发现域进行服务的发现,并把发现结果Rx_specific_i返回给上层的适配层;

(7)发现结果Rx_specific_i经适配层到Service Cache层,Service Cache对结果进行整合,生成此次查询的最终结果Rx;

(8)Service Cache层把查询请求和结果(query_x,Rx)保存,并把结果Rx发送到服务选择层;

(9)服务选择层对返回的结果Rx进行过滤和排序,返回给用户。

另外,本发现方法对Service Cache存储的服务按照查询频度作为权值,进行不同时间段的定期更新,以保证服务的准确性。为了方便服务的更新和服务的区别,本发现方法为存储在Service Cache的服务分配一个独一的ID,并把服务所在的发现域反映到这个ID中,如一个服务的ID可被分配成:Jini_A012BD1323E2。

参见图3,上述步骤(2)中将查询请求query_x发到一个语言处理模块,语言处理模块对查询进行语言学上的分析,处理方式主要包含分解和连接过程;然后用分析后的query_x与Service Cache层中存储的查询进行匹配,匹配时采用二分查找法,如果存在queryi与query_x相匹配,则为命中,直接把queryi对应的结果Ri返回给上层。

参见图4,上述步骤(3)中对检索到的服务进行过滤,同时对查询结果进行排序,具体为:

(a)从Service Cache层中接收检索到的服务查询结果;

(b)Service Filter模块获取规则集合filterRules和sortRules;

(c)Service Filter模块遍历filterRules,针对每条过滤规则,对输入的服务进行过滤;

(d)Service Filter模块遍历sortRules,按照每条排序规则,对过滤后的服务进行排序;

(e)返回最终结果给用户。

另外,User Profil模块自动收集用户的上下文信息和检索习惯,经分析后生成过滤和排序准则,并更新至filterRules和sortRules。

上述步骤(4)~(8)中,如果没有命中,生成一个包含原来查询请求query_x的通用查询query_x_unified,然后把这个通用查询分发到适配层中的各个适配器,开始检索过程;再接收从适配层返回的检索结果Rx,把查询请求和检索结果(query_x,Rx)保存在Service Cache层中;最后把结果Rx返回给服务选择层做进一步的处理。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号