发明名称 无线自组织网络环境中基于服务距离的服务发现方法
摘要 本发明发球自组织网络技术领域,具体是一种无线自组织网络环境中基于服务距离的服务发现方法。包括服务广告报文的定义和产生算法、服务信息缓存的构造和更新算法和基于服务距离的高效服务发现方法。本方法不仅避免了广播式服务发现方法存在的可伸缩性差、网络负载重、无法适应无线自组织网络环境的问题,而且,利用服务距离信息使用户能更快地找到更稳定可靠的服务,提高了服务发现的效率。
申请公布号 CN101179594B 申请公布日期 2012.09.05
申请号 CN200710170790.8 申请日期 2007.11.22
申请人 复旦大学 发明人 荆一楠;王雪平;孙未未
分类号 H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 1.一种无线自组织网络环境中基于服务距离的服务发现方法,其特征在于整个服务发现过程分为服务本体构造、服务广告、服务信息缓存和服务发现4个阶段;其中:所述服务本体构造,首先使用OWL-S语言结合具体的服务应用场景对服务进行语义描述,描述服务的功能、特性、适用面,然后根据服务的功能、特性对服务进行归类分组,分成语义相近的服务组;若干服务组继续归类分组为更高层次的服务组,逐渐形成一个服务分组的层次结构;服务的语义描述和分组情况最终构成了服务本体;所述服务广告,是宣传节点自己能够提供的或它所知道的服务信息;所述服务信息缓存,是节点收到其他节点发来的服务广告后,需要将其他节点拥有的或知道的服务信息保存下来放入到服务信息缓存中,以便未来接受到服务发现请求时匹配查找;所述服务发现,是服务请求者在使用某个服务前,发起一个服务发现过程,具体来说,节点在接收到服务发现请求后首先在自己提供的服务列表中查找匹配的服务,如果找到,则立即回应服务请求者,服务发现过程结束,如果没有找,那么就根据服务信息缓存将该服务发现请求转发给可能知道该服务且离当前节点最近的节点,继续服务发现过程;如果服务信息缓存中也不存在知道该服务的节点,则只能将该服务发现请求广播给周围的所有节点继续服务发现过程;节点通过发出服务发现请求报文发起服务发现过程;其中,所述服务广告的传播距离设为一跳,服务广告的具体报文格式定义如下:&lt;广告报文&gt;::=&lt;&lt;广告报文头&gt;,&lt;广告报文体&gt;&gt;&lt;广告报文头&gt;::=&lt;报文类型,源节点地址&gt;其中:(1)报文类型(Packet Type):=SERVICE_ADVERTISEMENT(2)源节点地址(Source_Node_Address):=发出服务广告的节点地址&lt;广告报文体&gt;::=&lt;本地服务列表,远程服务组列表,广告存活期&gt;::=&lt;Local_Service_List,Remote_Service_Group_List,TTL&gt;其中:(1)Local_Service_List::=&lt;Local_Service,……&gt;Local_Service::=Service_Name(Service_Group,Service_Distance)(2)Remote_Service_Group_List::=&lt;Remote_Service_Group,……&gt;Remote_Service_Group::=(Service_Group,Service_Distance) (3)TTL:=1;所述服务信息缓存的定义如下:<img file="FSB00000801985700021.GIF" wi="2000" he="569" />其中:(1)节点地址:=服务广告报文中的源节点地址(2)远程服务组,服务距离:根据广告报文中的远程服务组列表和缓存中已有的服务信息构造;服务信息缓存依据节点收到的服务广告来构造和更新,具体算法如下:(1)从服务广告Service_ADV_Msg的本地服务列表取出一项本地服务Local_Service;(2)如果缓存已有缓存项Cache_Entry.Remote_Service_Group==Local_Service.Service_Group,且Local_Service.Service_Distance<Cache_Entry.Service_Distance,且缓存没有多余存储空间,则将该缓存项的服务距离更新为广告中此本地服务的服务距离,同时延长该缓存项的生命终止时间;(3)如果缓存不存在与此本地服务具有相同Service_Group的缓存项,或者缓存仍有多余空间,则将该本地服务作为新缓存项加入缓存中,其中的各项赋值如下:Cache_Entry.Remote_Service_Group:=Local_Service.Service_GroupCache_Entry.Service_Distance:=Local_Service.Service_DistanceCache_Entry.Node_Address:=Service_ADV_Msg.Source_Node_AddressCache_Entry.Life Time:=节点当前时间+自定义生命周期;(4)循环至第(1)步,直至本地服务列表为空;(5)从服务广告Service_ADV_Msg的远程服务组列表取出一项远程服务组Remote_Service_Group;(6)如果缓存已有缓存项Cache_Entry.Remote_Service_Group== Remote_Service_Group.Service_Group,且Remote_Service_Group.Service_Distance<Cache_Entry.Service_Distance,且缓存没有多余存储空间,则将该缓存项的服务距离更新为服务广告中此远程服务组的服务距离,同时延长该缓存项的生命终止时间;(7)如果缓存不存在与此远程服务组具有相同Service_Group的缓存项,或者缓存仍有多余空间,则将该远程服务组作为新缓存项加入缓存中,其中的各项赋值如下:Cache_Entry.Remote_Service_Group:=Remote_Service_Group.Service_GroupCache_Entry.Service_Distance:=Remote_Service_Group.Service_DistanceCache_Entry.Node_Address:=Service_ADV_Msg.Source_Node_AddressCache_Entry.LifeTime:=节点当前时间+自定义生命周期;(8)循环至第(5)步,直至远程服务组列表为空;(9)扫描各缓存项,如果某缓存项的生命终止时间已到,则清除该缓存项。
地址 200433 上海市邯郸路220号