分布式卫星网络资源发现方法

文档序号:7755809阅读:154来源:国知局
专利名称:分布式卫星网络资源发现方法
技术领域
本发明涉及卫星网络技术,特别是一种针对分布式卫星网络的资源发现方法。
背景技术
Globus Toolkit是用来开发网格系统和应用的开源服务和软件库。它包括安 全、信息架构、资源管理、数据管理、通信和错误检测。MDS(Monitoring and Discovery Service)实现了资源发现功能,它提供了发布和访问网格资源信息的框架。在GT2 (Globus Toolkit2)中,MDS-2通过使用LDAP作为信息的统一接口,以 提供系统组件状态的信息。MDS-2包括了可配置的信息提供服务(GRIS-Grid Resource Information Service)和可配置的目录信息服务(GIIS-Grid Index Information Service)。GRIS能够提供查询某个特定网格结点中资源的功能。GRIS既能提供如主机标识 (ID)的静态信息又能提供如CPU和可用内存的动态信息。一个GIIS包含了被一个特定虚 拟组织(VO-Virtual Organization)所管理的所有GRIS的信息,提供了单一的系统映像。 一个GIIS可以是几个GIIS的集合,因而GIIS可以是一个层次结构。顶层的GIIS可以回 答所有关于位于其下的虚拟组织中资源的查询。GT3实现了 MDS-3。与MDS-2相同的是,MDS-3也是基于层次结构。不同的是,MDS-3 采用开放式网格服务体系结构(OGSA-Open Grid Services Architecture)模型。OGSA框 架中每个资源表示为一个网格服务,因此资源发现问题主要是定位和查询网格服务信息。 MDS-3中,资源的信息由索引服务提供。一个索引服务是一个网格服务,它存放所有注册到 其上的网格服务的信息。服务数据由服务数据元(SDE-Service Data Elements)组成,SDE 描述了单个资源的属性。索引服务的主要功能是提供接口,以查询已注册服务的服务数据 的集合视图。索引服务由两个部分组成提供者和集合器。提供者负责生成SDE,集合器负 责集合和索引同一个虚拟组织中主机的SDE。GT4 ^M^i MDS-4 WSRF (Web Services Resource Framework)规范。MDS-4 中的触发(Trigger)服务实现了当满足特定规则集合的事件产生时的通知机制。MDS服务的缺点是它实现的是基于LDAP的树状元数据目录服务,只能管理相对 静态对象的描述信息,不能处理对象的频繁更新;不能处理复杂的查询,层次化的查询语言 缺乏对数据进行复杂处理的能力,LDAP的树状结构决定了做多属性查询和区段查询时效 率低;LDAP风格的查询语言需要用户指定查询的起始结点和查询范围,树结构对用户不透 明,结构改变会对用户造成影响;LDAP风格的查询语言是一种过程化的查询语言,指定了 查询的执行顺序;MDS也不提供负载平衡机制。在基于集中目录的P2P网络中,通常有一台或者若干台服务器,该服务器上存储 了系统中各资源或文件的目录信息,当有结点需要某种资源时,可以直接通过该目录进行 资源的发行与查找。典型的例子是在Napster系统中,结点将其资源信息注册到目录服务 器上,当有结点需要资源时,就向目录服务器发出查询消息,目录服务器将查询的结果(通 常是资源所在结点的地址信息)返回给资源请求结点,资源请求结点通过查询结果找到资源提供者并与之交互获得所需要的资源。在非结构化的P2P网络中,每个结点都维护着与其邻居的常量数目的连接,因而 形成了覆盖网络。Gnutella是最流行的非结构化P2P系统,通过泛洪的方式进行查询。而 泛洪引起了不必要的网络流量,因而扩展性差。为了限制泛洪产生的消息个数,每个消息中 附加了 TTL字段。TTL表明了一个查询应该传播的跳数。为了减少网络流量,研究人员提出 了改进方法,例如Iamnitchi则有四种不同的消息传递策略随机、基于经验的、最好邻居、 基于经验的+最好邻居。但是这些方法牺牲了响应时间和网络覆盖率。还有其它的改进方 法,如仅向有最多响应结果的邻居进行转发,或者与那些没有返回足够多结果的邻居结点 断开连接。结构化P2P网络的典型代表是CAN、Chord、Pastry、Tapestry之类的点对点网络。 它们的基本思想是将每一个结点的地址通过一个哈希函数映射为某个空间中的一个点,称 为该结点的nodeld(结点标识)。在消息通信时,给定地址空间的一个点作为消息的目标地 址,消息在结点之间不断转发,使得收到消息的结点的nodeld在地址空间中不断向目标地 址逼近,最终到达一个当前所有结点中nodeld离目标地址最近的结点,即为消息的终点。 分布式哈希表(DHT)是P2P系统的一种数据放置策略。对于一份标识为datald的数据,将 其datald通过哈希函数映射到地址空间中的某个位置hashld,规定该数据必须放置在当 前所有结点中nodeld离hashld最近的结点上。但是DHT类结构最大的问题是DHT的维护 机制较为复杂,尤其是结点频繁加入退出造成的网络波动会极大增加DHT的维护代价。DHT 所面临的另外一个问题是DHT仅支持精确关键词匹配查询,无法支持内容/语义等复杂查 询。由以上资源发现技术可以看出,对于每种网络的资源发现技术都有很大不同。而 对于卫星网络来说,最大的挑战是其网络拓扑具有时变特性和太空环境对硬件技术的限 制。星间链路的动态变化是卫星网络资源发现问题求解难点的根源。不过,虽然星间链路 的持续变化增加了资源发现问题的难度,但星间链路的规律性也同时为解决资源发现问题 提供了有利条件,这些规律性主要表现为可预见性、周期性和相对固定性。

发明内容
本发明的目的在于克服现有技术中存在的缺陷,提供一种针对分布式卫星网络的 资源发现方法。该方法旨在适应卫星网络应用的多样化和复杂化的需求,提高现有卫星资 源利用率,减少重复建设和降低成本,为应用任务的调度和资源管理提供支持。为实现上述目的,本发明采用如下技术方案一种分布式卫星网络资源发现方法,其特征在于,包括分布式卫星网络初始化时,各个节点向其它节点发送资源信息广告包,各个节点 分别建立资源信息路由表;分布式卫星网络初始化后,各个节点通过下列方法查询资源首先对本地的资源 信息进行查询,如果本地能够提供符合条件的资源信息,则查询结束;否则,将查询信息路 由到分布式网络中的其他节点进行查询。优选地,网络中的各个节点采用软状态更新和/或事件驱动更新的方式更新资源
信息路由表。
关于软状态更新,概括地说,分布式卫星网络的各个节点通过下列方法更新资源 信息路由表为资源信息路由表中的每一条记录设定过期时间,定期扫描资源信息路由表, 删除超过过期时间的记录。具体来说,资源信息路由表中的每一条记录,都有其生命周期,用过期时间 (expire_time)表示。过期时间实际上由更新时间和生存时间计算而得。当节点收到一个 其他节点的资源信息广告时,解析该包的生成时间(birth_time)和生存时间长度(life_ time)。在更新节点的资源信息路由时,将该条新记录的过期时间设置成为产生时间和生存 时间长度之和,即expire_time = (birth_time+life_time)。资源路由表将被定期扫描,对 于超过过期时间的资源信息记录进行删除。关于事件驱动更新,概括地说,分布式卫星网络的各个节点通过下列方法更新资 源信息路由表以事件驱动的方式,将自身资源信息和其所存储的邻居节点的资源信息的 组别信息包装成资源信息广告包,将该资源信息广告包广播给周围的邻居节点,收到非重 复广播包的邻居节点根据该资源信息广告包更新本地的资源信息路由表。上述事件驱动更新采用事件触发的广告策略。能够触发节点发送资源信息广告包 的事件有以下(1)_(4)中的一种或多种(1)节点开始启动或重新启动,加入网络;(2)节 点资源信息发生改变;(3)节点损坏后恢复工作;(4)系统故障恢复或重启。优选地,在本发明方法中,如图1所示,邻居节点通过下列方法接收广播的资源信 息广告包步骤1、接收广告包;步骤2、解析广告包的ID(packet_id);步骤3、判断是否第一次收到,若是,则解析时间信息;若否,则丢弃该广告包;步骤4、判断是否未过期,若是,则解析角度和轨道信息;若否,则丢弃该广告包;步骤5、判断同轨道或server或sender的运动方向与自身运动方向夹角是否小于 90度,若是,则解析资源信息,更新本地资源信息路由表;若否,丢弃该广告包。其中,判断某个广告包是否是第一次收到的方法是在接收节点的内部维护一 个广告包ID数组(adV_already_Seen),存储对应于某个server节点的所见过的广告包 的最大的packet」d。当收到来自某个server节点的广告包时,若packet」d > adv_ already_seen [server_id]的值,那么这是一个新的广告包,可以做后续操作,并且将此 & 的 packet—id ^f fit ^lJ adv_already_seen [server_id]中;胃贝packet—id < = adv_ already_seen[server_id],则这是一个已经收到过的广告包。优选地,在本发明方法中,通过下列方法将查询信息路由到分布式网络中的其他 节点进行查询根据资源信息路由表查询候选节点,所述候选节点满足下列条件候选节 点附近节点所提供的服务的组别信息与所需求的资源所属的组别相同;若存在候选节点, 则向每个候选节点单播转发资源信息需求包;若不存在候选节点,则广播资源信息需求包。关于资源信息查询,具体来说,节点在需要发送资源信息需求包时,需要根据缓存 中的资源信息路由表来寻找候选节点。候选节点是这样的节点其附近节点所提供的服务 的组别信息与所需求的资源所属的组别相同。根据候选节点的特点,候选节点及其附近可 能有匹配的服务。根据寻找候选节点的结果,可以分为以下两种情况的处理(1)若有候选 节点存在,则向每个候选节点单播转发资源信息需求包;(2)若无候选节点,则广播该资源信息需求包。这种传统的单播发送需求包的方式可能导致重复需求包过多的问题。转发节 点集中技术和单播通信广播模拟技术可以解决这个问题。如图2所示,节点按照下列方法接收资源信息需求包步骤6、接收需求包,并解析需求包的ID(paCket_id);步骤7、判断是否第一次收到,若是,则解析节点个数域(reCeiVer_nUm)和接收节 点列表域(receiverjist);若否,则丢弃该需求包;步骤8、判断receiver_num是否等于0或者receiver_list中是否有本节点节点 号,若是,则解析过期时间(expirejime);若否,则丢弃该需求包;步骤9、判断是否未过期,若是,则解析请求资源信息域(requeSt_reSOurCe_ data),若否,则丢弃该需求包;步骤10、判断本地是否有符合要求的资源,若是,则构造并发送回复包,若否,则解 析生存时间域(remain_hop),对于remain_hop不等于0的,将remain_hop减一,并计算新 的receiver_num禾口 receiver_list,并广播该需求包,对于remain_hop等于0的,贝U丢弃该 需求包。本发明所述的分布式卫星网络有两种体系结构(1)全分布式点对点资源信息广 播缓存方式,该方式无中心节点;(2)有中心节点的分层存储方式,中心节点存储全局信 息,分布式节点存储局部信息,分布式节点以事件驱动方式更新中心节点存储的信息。针对 低轨卫星星座,可以采用(1)的存储方式;对于空间站或者GEO卫星,可以采用(2)的存储 方式。和现有技术相比,本发明的优势在于本发明协议通过将卫星网络中的卫星节点运动方向和通信时延作为考虑因素加 入资源发现协议,使得协议能够更好地支持卫星网络的时延和拓扑动态特性,也使得协议 的开销能够适当降低。


图1表示节点接收资源信息广告包的流程图;图2表示节点接收资源信息需求包的流程图;图3表示建立资源信息路由表的过程示意图;a)表示初始时刻节点自身的资源信 息状态;b)表示资源信息广告包发送后各节点资源信息路由表部分内容;c)表示计算其它 组信息列表(other_groUp_idS)之后各节点资源信息路由表的内容;图4表示资源信息需求包的转发过程示意图。
具体实施例方式下面通过具体实施例结合附图对本发明作进一步描述。实施例1分布式卫星网络初始化时,各个节点向其它节点发送资源信息广告包,各个节点 分别建立资源信息路由表。图3表示建立资源信息路由表的过程示意图。资源信息路由表中的表项包括
packetjd,标识一个唯一的资源信息路由条目;server_id,标识提供该服务的节点(server)的id ;neighbored,表示server节点的资源信息广告包传到本卫星节点前经过的最后 一跳节点的id,用于实现转发节点集中技术;l0Cal_reS0urCe_data,包含本地节点所提供的资源信息;loCal_grp,标识本地节点所提供的资源信息的组别;other_group_num,表示该路由条目中的server节点有邻居节点提供资源组别种
类数量;0ther_gr0up_idS,标识server节点有邻居节点提供资源组别信息;expire_time,该路由条目的过期时间(秒)。假设资源信息广告包传播长度为3跳,资源信息需求包传播长度为4跳。网络中 各节点初始状态如图3a所示。图中圆圈代表节点,圆圈中的数字代表节点的rd id,数字下 面的字符串b_l代表该节点所提供的资源名称,圆圈旁边的字符串代表资源信息的名称以 及部分描述资源的参数。初始的网络经过资源信息广告包的发送后,各个节点分别建立起比较完整的资源 信息路由表。例如,4号节点的资源信息路由表的初始内容为 4号节点交换资源广告信息后资源信息路由表的主要内容为
实施例2分布式卫星网络初始化后,各个节点通过下列方法查询资源首先对本地的资源 信息进行查询,如果本地能够提供符合条件的资源信息,则查询结束;否则,将查询信息路 由到分布式网络中的其他节点进行查询。其中,网络中的各个节点采用软状态更新和/或 事件驱动更新的方式更新资源信息路由表。本地查询较为简单,下面详细描述路由查询。
图4表示资源信息需求包的转发过程示意图。如图4所示,在资源信息需求包的转发过程中,每个转发节点都将记录下相关信 息,以用于资源信息回复包的传输。记录相关信息的结构叫做资源信息回溯路由表,其结构 包括packet_id、source_id禾口 predecessor_id,其中packet_id表示该路由条目对应的需 求包的packet_id ;source_id表示发出需求包的节点的rd id ;predecessor_id表示该包 在查询过程中传递到本地节点之前的节点的rd id。根据(packet_id,s0urce_id)可以唯 一确定一个predecessorjd,即为资源信息回复包的下一跳回溯节点的rd id。如8号节 点所维护的资源信息回溯路由表,其记录的含义是,由4号节点发出的第256号资源信息需 求包,在转发的过程中,到达8号节点之前的一跳是4号节点。当相应的回复包到达8号节 点时,8号节点根据回复包的packetjd字段和sourcejd字段的值,查询资源信息回溯路 由表,可以得到该回复包应该传给4号节点。对于每个发出需求包的server来说,需求包的packetjd也需要保持唯一性,可 以采用广告包packet_id所采用的方法,此处不再赘述。receiver_num 禾口 receiver_list 的计算方法如下。(1)遍历节点的资源信息路由表,首先找出0ther_gr0Up_idS中含有所需资源的 组别的节点;(2)判断这些节点是否是本节点的直接邻居;(3)如果存在不为空的节点集,其中的节点满足既提供所需类资源组别又是 server节点的直接邻居,则将节点集中所包含的节点的总数写入receivei^num,并将各节 点的rd id写入receiver_list ;若节点集为空,则广播该需求包,将receiver_num设为0。以下具体说明信息查询的过程为设当前4号节点发起资源信息查询,需要获取 名称为c_l的资源的信息。构造需求包的过程如下将packetjype设置为为资源信息需求 包类型;packet_id设为唯一的一个数值(此处假设为256) ;sourcejd设置为4 ; sender, id设为-1,表示4号节点是该需求包的构造者,没有一跳经过的节点;reqUeSt_reS0UrCe_ description设置为(c_l,c,40)(根据需求,可以在这一字段内填写对于资源的更详细的 描述,此处为简便起见,只填写资源的名称,组别和平均值);expirejime设置为当前时间 tO+Ι小时,表示该包将在1小时后过期;remainjiop设置为4,表示该需求包可以被传输4 跳;计算并填写receivemum和reCeiver_list字段遍历4号节点的资源信息路由表,找 到other_groUp_idS中含有所需资源的组别c的节点有8号节点,8号节点是本节点的直接 邻居;于是 receiver—num = 1,receiver—list = (8)。将需求包的各个字段填充完毕后,4号节点广播该需求包。8号节点接收到该服务需求包并处理后,由于本地没有符合要求的资源,于是遍历 资源信息路由表,发现5号节点有名称为c_l,组别为c的资源,而对应的邻居节点为7号节 点,将需求包的receiver_num改为l,receiver_list改为(7),remain_hop改为2,并广播 该包。直到5号节点收到该需求包,并且发现本地有符合需求的资源,于是5号节点构造回 复包。2号节点接收到该需求包,由于reCeiver_list中没有2,于是直接丢弃该包。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参 照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明 的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
一种分布式卫星网络资源发现方法,其特征在于,包括分布式卫星网络初始化时,各个节点向其它节点发送资源信息广告包,各个节点分别建立资源信息路由表;分布式卫星网络初始化后,各个节点通过下列方法查询资源首先对本地的资源信息进行查询,如果本地能够提供符合条件的资源信息,则查询结束;否则,将查询信息路由到分布式网络中的其他节点进行查询。
2.如权利要求1所述的分布式卫星网络资源发现方法,其特征在于,分布式卫星网络 的各个节点通过下列方法更新资源信息路由表为资源信息路由表中的每一条记录设定过 期时间,定期扫描资源信息路由表,删除超过过期时间的记录。
3.如权利要求1所述的分布式卫星网络资源发现方法,其特征在于,分布式卫星网络 的各个节点通过下列方法更新资源信息路由表以事件驱动的方式,将自身资源信息和其 所存储的邻居节点的资源信息的组别信息包装成资源信息广告包,将该资源信息广告包广 播给周围的邻居节点,收到非重复广播包的邻居节点根据该资源信息广告包更新本地的资 源信息路由表。
4.如权利要求3所述的分布式卫星网络资源发现方法,其特征在于,所述事件包括节 点启动或重新启动,加入分布式卫星网络;节点资源信息发生改变;节点损坏后恢复工作; 和节点系统故障恢复或重启的一种或多种。
5.如权利要求3所述的分布式卫星网络资源发现方法,其特征在于,所述邻居节点通 过下列方法接收广播的资源信息广告包(1).接收广告包;(2).解析广告包的ID;(3).判断是否第一次收到,若是,则解析时间信息;若否,则丢弃该广告包;(4).判断是否未过期,若是,则解析角度和轨道信息;若否,则丢弃该广告包;(5).判断同轨道或server或sender的运动方向与自身运动方向夹角是否小于90度, 若是,则解析资源信息,更新本地资源信息路由表;若否,丢弃该广告包。
6.如权利要求1所述的分布式卫星网络资源发现方法,其特征在于,通过下列方法将 查询信息路由到分布式网络中的其他节点进行查询根据资源信息路由表查询候选节点,所述候选节点满足下列条件候选节点附近节点 所提供的服务的组别信息与所需求的资源所属的组别相同;若存在候选节点,则向每个候选节点单播转发资源信息需求包;若不存在候选节点,则广播资源信息需求包。
7.如权利要求6所述的分布式卫星网络资源发现方法,其特征在于,节点按照下列方 法接收资源信息需求包(1).接收需求包,并解析需求包的ID;(2).判断是否第一次收到,若是,则解析接收节点个数域和接收节点列表域;若否,则 丢弃该需求包;(3).判断接收节点个数域值是否等于0或者接收节点列表域中是否有本节点节点号, 若是,则解析过期时间;若否,则丢弃该需求包;(4).判断是否未过期,若否,则解析请求资源信息域,若是,则丢弃该需求包;(5).判断本地是否有符合要求的资源,若是,则构造并发送回复包,若否,则解析生存 时间域,若生存时间域不等于0,将生存时间域减一,并计算新的接收节点个数域和接收节点列 表域,并广播该需求包;若生存时间域等于0,则丢弃该需求包。
全文摘要
本发明公开了一种分布式卫星网络资源发现方法。所述方法包括分布式卫星网络初始化时,各个节点向其它节点发送资源信息广告包,各个节点分别建立资源信息路由表;分布式卫星网络初始化后,各个节点通过下列方法查询资源首先对本地的资源信息进行查询,如果本地能够提供符合条件的资源信息,则查询结束;否则,将查询信息路由到分布式网络中的其他节点进行查询。本发明可用于卫星网络。
文档编号H04W84/06GK101932065SQ20101024215
公开日2010年12月29日 申请日期2010年7月30日 优先权日2010年7月30日
发明者刘立祥, 张会杰 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1