CN102014456A - 一种搜索节点的方法和*** - Google Patents
一种搜索节点的方法和*** Download PDFInfo
- Publication number
- CN102014456A CN102014456A CN201010228672XA CN201010228672A CN102014456A CN 102014456 A CN102014456 A CN 102014456A CN 201010228672X A CN201010228672X A CN 201010228672XA CN 201010228672 A CN201010228672 A CN 201010228672A CN 102014456 A CN102014456 A CN 102014456A
- Authority
- CN
- China
- Prior art keywords
- node
- query requests
- coding
- self
- message
- 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
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种搜索节点的方法和***,属于物联网通信领域。所述方法包括:客户端发送搜索请求,所述搜索请求携带搜索范围和用户指定的位置;代理节点接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;所述邻居节点接收所述查询请求,判断是否已接收所述查询请求;如果否,所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求;所述代理节点接收所述应答消息,将所述应答消息发送给所述客户端。本发明能够精确地搜索节点。
Description
技术领域
本发明涉及物联网通信领域,特别涉及一种搜索节点的方法和***。
背景技术
物联网被定义为基于标准和可互操作的通信协议,其是具有自配置能力和动态功能的全球网络基础架构。物联网中的每个节点都具有编码等属性,且每个节点通过智能接口实现与网络的无缝整合。物联网的许多应用都涉及到节点的搜索,目前物联网中节点的搜索技术,包括:
第一种、基于RFID(Radio Frequency Identification,射频识别)技术的实体搜索技术,具体为:电子标签***为每个节点提供一个唯一的、可识别的电子标签,并在各地部署的中转站点中设置用于读取电子标签的识读器,每个中转点在自身的通信范围内,利用RFID技术读取电子标签来搜索节点。
第二种、基于地球表面的搜索方法,具体为:在地球表面架设测量设备,如基站,通过检测节点和基站之间传播信号的特征参数来分析和估计出节点以及节点的位置,如此实现搜索节点。
第三种、基于卫星的搜索方法,具体为:事先在节点上设置接收设备,利接收设备接收卫星信号,根据接收的卫星信号,通过测距交会确定点位的技术,获取节点的位置,再将该节点的位置发送给用户,如此实现搜索节点。其中,接收设备可以为GPS(Global Positioning System,全球定位***)。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在上述第一种技术中,由于受到识读器的数量和密度的限制,而无法精确地搜出节点,另外,识读器都属于具体的机构,机构外的用户无法利用识读器来搜索节点,因而此技术不具备通用性。
在上述第二种技术中,测量设备在覆盖条件较差的地区,也无法精确地搜索出节点,另外,每个测量设备是由网络运营架设的,通常网络运营商不公开节点和基站之间传播信号,因此,外人也无法利用此技术来搜索节点,因而,也不具备通用性。
在上述第三种技术中,在室内、森林、高层建筑、山峰和桥梁等地方,由存在物体遮挡卫星信号,因而使的接收设备也无法精确的获得节点的位置,如此降低搜索节点的精度。
发明内容
为了能够提高搜索节点的精度以及提供一种通用地搜索节点的方法,本发明提供了一种搜索节点的方法和***。所述技术方案如下:
一种搜索节点的方法,所述方法包括:
客户端发送搜索请求,所述搜索请求携带搜索范围和用户指定的位置;
代理节点接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;
所述邻居节点接收所述查询请求,判断是否已接收所述查询请求;
如果否,所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求;
所述代理节点接收所述应答消息,将所述应答消息发送给所述客户端。
所述代理节点判断是否已接收所述查询请求,包括:
所述邻居节点从所述查询请求中提取所述代理节点的编码和所述消息时间,判断是否已存储所述代理节点的编码和所述消息时间,如果是,则判断已接收所述查询请求,如果否,则判断出没有接收所述查询请求。
所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,包括:
所述邻居节点根据自身的位置和所述位置,计算自身与所述位置之间的距离,判断所述距离是否大于所述搜索范围,如果否,则判断出自身位于所述搜索范围内。
如果存在多条应答消息携带同一个节点的编码,相应地,
所述代理节点接收所述应答消息,将所述应答消息发送给所述客户端,包括:
所述代理节点从所述多条应答消息中,选择所述消息时间最接近当前时间的应答消息,丢弃其他的应答消息,将未丢弃的应答消息发送给所述客户端。
所述方法还包括:
所述代理节点和/或所述邻居节点向其邻居节点广播查询请求后,将所述查询请求上传给B服务器;
所述B服务器接收所述查询请求,根据上传所述查询请求的节点的编码,从已存储的上传节点的编码、读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的消息时间、读取节点的编码和上传节点的位置;
所述B服务器发送应答消息给所述代理节点,所述应答消息携带所述消息时间、所述读取节点的编码和所述上传节点的位置。
所述客户端发送搜索请求之后,还包括:
接收所述搜索请求的节点判断自身的覆盖范围是否包括所述搜索请求携带的位置;
如果是,所述节点将自身设置成侯选代理节点,并计算出自身的权值,向其邻居节点发送信标消息,所述信标消息携带所述权值;
如果所述侯选代理节点接收到邻居节点发送携带自身权值的信标消息,比较自身的权值是否大于邻居节点的权值,如果是,将自身推举为代理节点,如果否,推举权值最大的节点为代理节点;
如果所述侯选代理节点没接收到所述邻居节点发送的信标消息,则推举自己为代理节点。
所述查询请求还携带锚节点序列,相应地,
所述代理节点和/或所述邻居节点在广播所述查询请求之前,将自身的标识添加到所述查询请求的锚点序列中;
相应地,所述邻居节点接收所述查询请求,判断是否已接收所述查询请求,具体包括:
所述邻居节点接收所述查询请求,判断所述查询请求的锚点序列中是否存在自身的标识,如果存在,则判断出已接收所述查询请求,如果不存在,则判断出没有接收所述查询请求。
一种搜索节点的***,所述***包括客户端、代理节点和邻居节点;
所述客户端,用于发送搜索请求,所述搜索请求携带搜索范围和用户指定的位置;
所述代理节点,用于接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;接收来自所述邻居节点的应答消息,将所述应答消息发送给所述客户端;
所述邻居节点,用于接收所述查询请求,判断是否已接收所述查询请求;如果否,所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
所述邻居节点包括:
判断模块,用于接收所述查询请求,从所述查询请求中提取所述代理节点的编码和所述消息时间,判断是否已存储所述代理节点的编码和所述消息时间;
应答模块,用于如果所述判断模块判断的结果为否,则判断出没有接收所述查询请求,根据所述位置和所述搜索范围,判断自身是否在所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
所述应答模块包括:
判断单元,用于根据自身的位置和所述位置,计算自身与所述位置之间的距离,判断所述距离是否大于所述搜索范围,如果否,则判断出所述邻居节点位于所述搜索范围内;
发送单元,用于发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
如果存在多条应答消息携带同一个节点的编码,相应地,
所述代理节点包括:
广播模块,用于接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;
发送模块,用于从所述多条应答消息中,选择所述消息时间最接近当前时间的应答消息,丢弃其他的应答消息,将所述未丢弃的应答消息发送给所述客户端。
所述***还包括B服务器;
相应地,所述代理节点和/或所述邻居节点向其邻居节点广播查询请求后,还用于将所述查询请求上传给B服务器;
所述B服务器,用于接收所述查询请求,根据上传所述查询请求的节点的编码,从已存储的上传节点的编码、读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的消息时间、读取节点的编码和上传节点的位置;发送应答消息给所述代理节点,所述应答消息携带所述消息时间、所述读取节点的编码和所述上传节点的位置。
所述代理节点按以下方式推举获得;
接收所述搜索请求的节点判断自身的覆盖范围是否包括所述搜索请求携带的位置;
如果是,所述节点将自身设置成侯选代理节点,并计算出自身的权值,向其邻居节点发送信标消息,所述信标消息携带所述权值;
如果所述侯选代理节点接收到邻居节点发送携带自身权值的信标消息,比较自身的权值是否大于邻居节点的权值,如果是,将自身推举为代理节点,如果否,推举权值最大的节点为代理节点;
如果所述侯选代理节点没接收到所述邻居节点发送的信标消息,则推举自己为代理节点。
所述查询请求还携带锚节点序列,
相应地,所述代理节点和/或所述邻居节点,还用于在广播所述查询请求之前,将自身的标识添加到所述查询请求的锚点序列中;
相应地,
所述邻居节点接收所述查询请求,判断所述查询请求的锚点序列中是否存在自身的标识,如果不存在,则判断出没有接收所述查询请求,根据所述位置和所述搜索范围,判断自身是否在所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
通过代理节点接收搜索请求后,向其邻居节点广播查询请求,邻居节点接收查询请求后,判断是否已接收该查询请求,如果没有,判断自身是否位于查询请求携带的搜索范围内,如果位于,则向代理节点发送携带自身位置和编码以及消息时间的应答消息,代理节点再将应答消息发送给客户端。其中,在指定的位置附近选择代理节点,利用代理节点在搜索范围内搜索节点,而代理节点能够在较长时间内处于指定位置的附近,从而提高搜索节点的精度;覆盖范围包括指定的位置的节点都有可能成为代理节点,不受条件限制,因而具有通用性。
附图说明
图1是本发明实施例1提供的一种搜索节点的方法流程图;
图2是本发明实施例2提供的一种搜索节点的方法流程图;
图3是本发明实施例3提供的一种搜索节点的***示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本发明实施例提供了一种搜索节点的方法,包括:
步骤101:客户端发送搜索请求,其中,该搜索请求携带搜索范围和用户指定的位置;
步骤102:代理节点接收该搜索请求,向其邻居节点广播查询请求,其中,该查询请求携带代理节点的编码、消息时间、搜索请求携带的位置和搜索范围;
步骤103:邻居节点接收该查询请求,判断是否已接收该查询请求;
步骤104:如果否,邻居节点根据查询请求携带的位置和搜索范围,判断自身是否位于该搜索范围内,如果是,发送应答消息给代理节点,其中,该应答消息携带消息时间、邻居节点的编码和位置,向其邻居节点广播该查询请求;
步骤105:代理节点接收该应答消息,将该应答消息发送给客户端。
在本发明实施例中,代理节点接收搜索请求后,向其邻居节点广播查询请求,邻居节点接收查询请求后,判断是否已接收该查询请求,如果没有,判断自身是否位于查询请求携带的搜索范围内,如果位于,则向代理节点发送携带自身位置和编码以及消息时间的应答消息,代理节点再将应答消息发送给客户端。其中,在指定的位置附近选择代理节点,利用代理节点在搜索范围内搜索节点,而代理节点能够在较长时间内处于指定位置的附近,从而提高搜索节点的精度;覆盖范围包括指定的位置的节点都有可能成为代理节点,不受条件限制,因而具有通用性。
实施例2
如图2所示,本发明实施例提供了一种搜索节点的方法,包括:
步骤201:客户端向物联网广播搜索请求,且该搜索请求携带用户指定的位置和搜索范围;
其中,用户事先在客户端中指定一个具体的位置,该位置可以是一个坐标或是具体的经度和纬度,用户还可以向客户端输入一个搜索范围,该搜索范围可以是一个搜索半径。然后,客户端生成携带用户指定的位置和搜索范围的搜索请求。另外,在客户端中还事先设置一个默认的搜索范围,如果用户没有向客户端输入搜索范围,则客户端生成携带指定的位置和默认的搜索范围的搜索请求。例如,用户指定的位置为坐标(x0,y0)以及搜索半径为L0,则客户端生成携带坐标(x0,y0)和搜索半径L0的搜索请求。
步骤202:物联网中的节点接收搜索请求,判断自身的通信范围是否覆盖搜索请求携带的位置,如果是,将自己设置成侯选代理节点;
例如,物联网中的每个节点接收到搜索请求后,从该搜索请求中提取位置为坐标(x0,y0),所有通信范围覆盖坐标(x0,y0)的节点都将自己设置成侯选代理节点。
其中,物联网中的其他节点如果接收到搜索请求后,如果判断出自身的通信范围不能够覆盖搜索请求携带的位置时,则直接将该搜索请求转发出去。
步骤203:每个侯选代理节点计算自身的权值,向其邻居节点发送信标消息,该信标消息携带节点自身的权值;
其中,每个侯选代理节点,根据如下的公式(1)计算自身的权值Wi。
其中α+β+γ+χ+ε=1,i∈{2,......,K},K≥2,K为可相互通信的候选代理节点的个数。α,β,γ,χ,ε由技术人员事先设置在每个侯选节点中的系数,技术人员可以根据实际服务的需求设置每个系数的值,且通常α>χ>β>γ,如果侯选代理节点自愿成为代理节点,则PRE=1,否则,PRE=0。
其中,
其中,di是候选代理节点与指定的位置之间的欧式距离,侯选代理节点根据自身所在的位置与指定的位置,计算出候选代理节点与指定位置之间的欧式距离。
其中,
其中,vi是候选代理节点的运动速度标量,侯选代理节点可以测量出自身的运动速度标量。
其中,
其中,ai是候选节点的加速度标量,侯选代理节点可以测量自身的加速度标量。
步骤204:如果侯选代理节点接收其邻居侯选代理节点发送的信标消息,则从该信标消息中提取每个邻居侯选代理节点的权值;
其中,如果非侯选代理节点接收到其邻居侯选代理节点发送的信标消息,则直接丢弃接收的信标消息。
步骤205:该侯选代理节点比较自身的权值与每个邻居侯选代理节点的权值,如果自身的权值大于每个邻居侯选代理节点,则推举自己为代理节点,否则,将从邻居侯选代理节点中推举权值最大的侯选代理节点为代理节点;
步骤206:如果侯选代理节点没有接收到信标消息,则该侯选代理节点将自身推举为代理节点;
其中,在本实施例中,在选择代理节点时综合考虑了侯选代理节点与指定的位置的距离、节点通信半径、节点速度、节点加速度以及自愿性等多方面因素,保证了代理节点能够在较长时间内位于指定位置的附近,短时间内不会离开搜索范围,从而提高了搜索节点的精度。
其中,在本实施例中,用户可以向客户端输入一个节点的编码和搜索范围,用户端生成携带搜索范围的搜索请求,根据用户输入的节点的编码,将搜索请求发送给对应的节点,如果该节点具有接收和发送消息的能力,则该节点将自己推举为代理节点;如果该节点不具有接收和发送消息的能力,则用户重新向客户端输入一个具体的位置和搜索范围,并从步骤201开始执行。
其中,针对一个代理节点,执行如下的步骤207至211搜索在搜索范围内满足搜索条件的节点。
步骤207:代理节点生成查询请求,其中,该查询请求携带代理节点的编码,消息时间、锚点序列、搜索请求携带的位置和搜索范围,其中,锚点序列中存储该代理节点的标识,再向其邻居节点广播查询请求;
具体地,代理节点获取当前时间,将获取的当前时间作为消息时间,生成查询请求,在查询请求中添加自身的编码,消息时间、搜索请求携带的位置和搜索范围,并将自身的标识添加到搜索请求的锚点序列。
其中,代理节点的标识可以为代理节点的当前位置或网络地址。
进一步地,如果该代理节点还与其所属机构的B服务器相连接,则同时发送查询请求给B服务器。
相应地,B服务器接收该查询请求,从该查询请求中提取上传该查询请求的节点的编码即代理节点的编码和消息时间,根据提取的上传节点的编码和消息时间,判断是否已接收该查询请求,如果是,则丢弃该查询请求,如果否,则存储上传节点的编码和消息时间,根据上传节点的编码,从自身已存储的上传节点的编码,读取节点的编码、读取时间和上传节点的位置的对应关系中,查找对应的读取节点的编码、消息时间和上传节点的位置,发送应答消息给代理节点,且该应答消息携带读取节点的编码、消息时间和上传节点的位置。
其中,B服务器判断是否已存储有提取的上传节点的编码和消息时间,如果是,则判断出已接收该查询请求,如果否,则之前没有接收该查询请求。
其中,网络中的每个节点都由不同的机构部署,因此每个节点都隶属于不同的机构,每个机构都有自己的B服务器。
其中,当网络中的某个节点读取到其他节点的信息时,如果该节点还与其所属机构的B服务器相连接,则该节点将自身的编码,读取的节点的编码,消息时间和自身的位置上传给B服务器,B服务器将该节点的编码,读取的节点的编码,消息时间和该节点的位置存储在上传节点的编码,读取节点的编码、消息时间和上传节点的位置的对应关系中。其中,网络中的其他每个节点在读取其他节点时,也同该节点执行相同的操作。
其中,如果代理节点为用户直接指定的代理节点,则代理节点获取当前时间和自身的位置,将该当前时间作为消息时间,生成查询请求,且该查询请求携带代理节点的编码,消息时间、锚点序列、获取的位置和搜索请求携带的搜索范围。
步骤208:当邻居节点接收到查询请求,从查询请求中提取代理节点的编码和消息时间,根据提取的代理节点的编码和消息时间判断是否已接收该查询请求;如果是,直接丢弃该查询请求,否则,执行步骤209;
其中,邻居节点每接收到新的查询请求时,存储查询请求携带的代理节点的编码和消息时间。所以当邻居节点从该查询请求中提取代理节点的编码和消息时间后,判断自身是否已存储有提取的代理节点的编码和消息时间,如果否,则判断出邻居节点没有接收该查询请求,如果是,则判断出邻居节点已接收该查询请求。
另外,邻居节点还可以从该查询请求中提取锚点序列,判断提取的锚点序列中是否存在自身的标识,如果存在,则判断出已接收该查询请求,如果不存在,则判断出没有接收该查询请求。
步骤209:该邻居节点从查询请求中提取位置和搜索范围,根据自身的位置和提取的位置,判断自身是否在搜索范围之内,如果是执行步骤210,如果否,结束操作;
具体地,该邻居节点从查询请求中提取位置和搜索范围,根据提取的位置和自身的位置,计算自身到提取的位置之间的距离,判断该距离是否小于或等于搜索范围,如果是,则表明该邻居节点位于搜索范围内,如果否,则表明该邻居节点位于在搜索范围外。
步骤210:该邻居节点向该代理节点发送应答消息,该应答消息携带自身的编码、自身的位置信息以及当前时间,将自身的标识添加到搜索请求的锚点序列中,再向其邻居节点广播添加的搜索请求;
进一步地,如果该邻居节点还与其所属机构的B服务器相连,则该邻居节点将该查询请求上传给B服务器;
相应地,B服务器接收该查询请求,从该查询请求中提取上传该查询请求的节点的编码即该邻居节点的编码和消息时间,根据提取的上传节点的编码和消息时间,判断是否已接收该查询请求,如果是,则丢弃该查询请求,如果否,则存储上传节点的编码和消息时间,根据上传节点的编码,从自身已存储的上传节点的编码,读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的读取节点的编码、消息时间和上传节点的位置,发送应答消息给代理节点,且该应答消息携带查找的读取节点的编码、消息时间和上传节点的位置。
其中,网络中的每个节点当接收到查询请求后,和该邻居节点一样执行相同的操作。
步骤211:当代理节点接收到第一个应答消息时,开始在预设的时间内接收应答消息,将接收的应答消息打包后,发送给客户端。
进一步地,如果存在多条应答消息携带同一个节点的编码,则代理节点根据每条应答消息携带的消息时间,从该多条应答消息中选择消息时间离当前时间最近的应答消息,并丢弃其他应答消息。相应地,代理节点将未丢弃的应答消息打包,并发送给客户端。
其中,网络中的其他代理节点,与该代理节点一样执行相同的操作。
其中,在本实施例中,用户指定一个具体的位置和搜索范围,然后选择代理节点,利用代理节点在指定的位置附近进行搜索节点,从而提高搜索节点的精度。
其中,网络中存在不具有接收和发送消息能力的节点,如果这类节点接收到查询请求,不会做任何操作,但是该类型节点可以被其附近的其他节点读取,如果其他节点读取到该节点的信息时,将该节点的编码和自身的位置信息上传给B服务器。在本实施例中,每个节点将查询请求上传给B服务器,可以从B服务器将该节点读取过的节点的编码等信息发送给代理节点,读取过的节点包括不具有接收和发送消息能力的节点。如此,提高了搜索节点的准确性。
在本发明实施例中,代理节点接收搜索请求后,向其邻居节点广播查询请求,邻居节点接收查询请求后,判断是否已接收该查询请求,如果没有,判断自身是否位于查询请求携带的搜索范围内,如果位于,则向代理节点发送携带自身位置和编码以及消息时间的应答消息,代理节点再将应答消息发送给客户端。其中,在指定的位置附近选择代理节点,利用代理节点在搜索范围内搜索节点,而代理节点的选择综合考虑了通信半径、节点速度、节点加速度、上传能力以及自愿性等多方面因素,从而保证了代理节点能够在较长时间内处于指定的位置的附近,从而提高搜索节点的精度;覆盖范围包括指定的位置的节点都有可能成为代理节点,不受条件限制,因而具有通用性。
实施例3
如图3所示,本发明实施例提供了一种搜索节点的***,包括客户端301、代理节点302和邻居节点303;
客户端301,用于发送搜索请求,其中,该搜索请求携带搜索范围和用户指定的位置;
代理节点302,用于接收该搜索请求,向其邻居节点303广播查询请求,其中,该查询请求携带代理节点302的编码、消息时间、该搜索请求携带的位置和搜索范围;接收来自邻居节点303的应答消息,将该应答消息发送给客户端301;
邻居节点303,用于接收该查询请求,判断是否已接收该查询请求;如果否,根据该查询请求携带的位置和搜索范围,判断自身是否位于该搜索范围内,如果是,发送应答消息给代理节点302,其中,该应答消息携带消息时间、邻居节点302的编码和位置,向其邻居节点广播该查询请求;
其中,邻居节点303包括:
判断模块,用于接收该查询请求,从该查询请求中提取代理节点302的编码和消息时间,判断是否已存储代理节点302的编码和消息时间;
应答模块,用于如果判断模块判断的结果为否,则判断出没有接收该查询请求,根据该查询请求携带的位置和搜索范围,判断自身是否在该搜索范围内,如果是,发送应答消息给代理节点302,其中,该应答消息携带消息时间、邻居节点302的编码和位置,向其邻居节点广播该查询请求;
其中,应答模块包括:
判断单元,用于根据自身的位置和该查询请求携带的位置,计算自身与该查询请求携带的位置之间的距离,判断该距离是否大于该搜索范围,如果否,则判断出邻居节点303位于搜索范围内;
发送单元,用于发送应答消息给代理节点302,其中,该应答消息携带消息时间、邻居节点303的编码和位置,向其邻居节点广播该查询请求;
其中,如果存在多条应答消息携带同一个节点的编码,相应地,
代理节点302包括:
广播模块,用于接收该搜索请求,向其邻居节点广播查询请求,其中,该查询请求携带代理节点301的编码、消息时间、该搜索请求携带的位置和搜索范围;
发送模块,用于从多条应答消息中,选择消息时间最接近当前时间的应答消息,丢弃其他的应答消息,将未丢弃的应答消息发送给客户端;
进一步地,该***还包括B服务器;
相应地,代理节点302和/或邻居节点303向其邻居节点广播查询请求后,还用于将该查询请求上传给B服务器;
B服务器,用于接收查询请求,根据上传该查询请求的节点的编码,从已存储的上传节点的编码、读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的消息时间、读取节点的编码和上传节点的位置;发送应答消息给代理节点302,其中,该应答消息携带消息时间、读取节点的编码和上传节点的位置;
其中,代理节点302按以下方式推举获得;
接收搜索请求的节点判断自身的覆盖范围是否包括该搜索请求携带的位置;
如果是,节点将自身设置成侯选代理节点,并计算出自身的权值,向其邻居节点发送信标消息,其中,该信标消息携带权值;
如果侯选代理节点接收到邻居节点发送携带自身权值的信标消息,比较自身的权值是否大于邻居节点的权值,如果是,将自身推举为代理节点,如果否,推举权值最大的节点为代理节点;
如果侯选代理节点没接收到邻居节点发送的信标消息,则推举自己为代理节点;
进一步地,查询请求还携带锚节点序列,
相应地,代理节点302和/或邻居节点303,还用于在广播该查询请求之前,将自身的标识添加到该查询请求的锚点序列中;
相应地,
其中,邻居节点303接收该查询请求,判断该查询请求的锚点序列中是否存在自身的标识,如果不存在,则判断出没有接收该查询请求,根据该查询请求携带的位置和搜索范围,判断自身是否在该搜索范围内,如果是,发送应答消息给代理节点302,其中,应答消息携带消息时间、邻居节点303的编码和位置,向其邻居节点广播该查询请求。
在本发明实施例中,代理节点接收搜索请求后,向其邻居节点广播查询请求,邻居节点接收查询请求后,判断是否已接收该查询请求,如果没有,判断自身是否位于查询请求携带的搜索范围内,如果位于,则向代理节点发送携带自身位置和编码以及消息时间的应答消息,代理节点再将应答消息发送给客户端。其中,在指定的位置附近选择代理节点,利用代理节点在搜索范围内搜索节点,而代理节点能够在较长时间内处于指定位置的附近,从而提高搜索节点的精度;覆盖范围包括指定的位置的节点都有可能成为代理节点,不受条件限制,因而具有通用性。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种搜索节点的方法,其特征在于,所述方法包括:
客户端发送搜索请求,所述搜索请求携带搜索范围和用户指定的位置;
代理节点接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;
所述邻居节点接收所述查询请求,判断是否已接收所述查询请求;
如果否,所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求;
所述代理节点接收所述应答消息,将所述应答消息发送给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述代理节点判断是否已接收所述查询请求,包括:
所述邻居节点从所述查询请求中提取所述代理节点的编码和所述消息时间,判断是否已存储所述代理节点的编码和所述消息时间,如果是,则判断已接收所述查询请求,如果否,则判断出没有接收所述查询请求。
3.如权利要求1所述的方法,其特征在于,所述邻居节点根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,包括:
所述邻居节点根据自身的位置和所述位置,计算自身与所述位置之间的距离,判断所述距离是否大于所述搜索范围,如果否,则判断出自身位于所述搜索范围内。
4.如权利要求1所述的方法,其特征在于,如果存在多条应答消息携带同一个节点的编码,相应地,
所述代理节点接收所述应答消息,将所述应答消息发送给所述客户端,包括:
所述代理节点从所述多条应答消息中,选择所述消息时间最接近当前时间的应答消息,丢弃其他的应答消息,将未丢弃的应答消息发送给所述客户端。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述代理节点和/或所述邻居节点向其邻居节点广播查询请求后,将所述查询请求上传给B服务器;
所述B服务器接收所述查询请求,根据上传所述查询请求的节点的编码,从已存储的上传节点的编码、读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的消息时间、读取节点的编码和上传节点的位置;
所述B服务器发送应答消息给所述代理节点,所述应答消息携带所述消息时间、所述读取节点的编码和所述上传节点的位置。
6.如权利要求1所述的方法,其特征在于,所述客户端发送搜索请求之后,还包括:
接收所述搜索请求的节点判断自身的覆盖范围是否包括所述搜索请求携带的位置;
如果是,所述节点将自身设置成侯选代理节点,并计算出自身的权值,向其邻居节点发送信标消息,所述信标消息携带所述权值;
如果所述侯选代理节点接收到邻居节点发送携带自身权值的信标消息,比较自身的权值是否大于邻居节点的权值,如果是,将自身推举为代理节点,如果否,推举权值最大的节点为代理节点;
如果所述侯选代理节点没接收到所述邻居节点发送的信标消息,则推举自己为代理节点。
7.如权利要求1所述的方法,其特征在于,所述查询请求还携带锚节点序列,相应地,
所述代理节点和/或所述邻居节点在广播所述查询请求之前,将自身的标识添加到所述查询请求的锚点序列中;
相应地,所述邻居节点接收所述查询请求,判断是否已接收所述查询请求,具体包括:
所述邻居节点接收所述查询请求,判断所述查询请求的锚点序列中是否存在自身的标识,如果存在,则判断出已接收所述查询请求,如果不存在,则判断出没有接收所述查询请求。
8.一种搜索节点的***,其特征在于,所述***包括客户端、代理节点和邻居节点;
所述客户端,用于发送搜索请求,所述搜索请求携带搜索范围和用户指定的位置;
所述代理节点,用于接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;接收来自所述邻居节点的应答消息,将所述应答消息发送给所述客户端;
所述邻居节点,用于接收所述查询请求,判断是否已接收所述查询请求;如果否,根据所述位置和所述搜索范围,判断自身是否位于所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
9.如权利要求8所述的***,其特征在于,所述邻居节点包括:
判断模块,用于接收所述查询请求,从所述查询请求中提取所述代理节点的编码和所述消息时间,判断是否已存储所述代理节点的编码和所述消息时间;
应答模块,用于如果所述判断模块判断的结果为否,则判断出没有接收所述查询请求,根据所述位置和所述搜索范围,判断自身是否在所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
10.如权利要求9所述的***,其特征在于,所述应答模块包括:
判断单元,用于根据自身的位置和所述位置,计算自身与所述位置之间的距离,判断所述距离是否大于所述搜索范围,如果否,则判断出所述邻居节点位于所述搜索范围内;
发送单元,用于发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
11.如权利要求8所述的***,其特征在于,如果存在多条应答消息携带同一个节点的编码,相应地,
所述代理节点包括:
广播模块,用于接收所述搜索请求,向其邻居节点广播查询请求,所述查询请求携带所述代理节点的编码、消息时间、所述位置和所述搜索范围;
发送模块,用于从所述多条应答消息中,选择所述消息时间最接近当前时间的应答消息,丢弃其他的应答消息,将所述未丢弃的应答消息发送给所述客户端。
12.如权利要求8所述的***,其特征在于,所述***还包括B服务器;
相应地,所述代理节点和/或所述邻居节点向其邻居节点广播查询请求后,还用于将所述查询请求上传给B服务器;
所述B服务器,用于接收所述查询请求,根据上传所述查询请求的节点的编码,从已存储的上传节点的编码、读取节点的编码、消息时间和上传节点的位置的对应关系中,查找对应的消息时间、读取节点的编码和上传节点的位置;发送应答消息给所述代理节点,所述应答消息携带所述消息时间、所述读取节点的编码和所述上传节点的位置。
13.如权利要求8所述的***,其特征在于,所述代理节点按以下方式推举获得;
接收所述搜索请求的节点判断自身的覆盖范围是否包括所述搜索请求携带的位置;
如果是,所述节点将自身设置成侯选代理节点,并计算出自身的权值,向其邻居节点发送信标消息,所述信标消息携带所述权值;
如果所述侯选代理节点接收到邻居节点发送携带自身权值的信标消息,比较自身的权值是否大于邻居节点的权值,如果是,将自身推举为代理节点,如果否,推举权值最大的节点为代理节点;
如果所述侯选代理节点没接收到所述邻居节点发送的信标消息,则推举自己为代理节点。
14.如权利要求8所述的***,其特征在于,所述查询请求还携带锚节点序列,
相应地,所述代理节点和/或所述邻居节点,还用于在广播所述查询请求之前,将自身的标识添加到所述查询请求的锚点序列中;
相应地,
所述邻居节点接收所述查询请求,判断所述查询请求的锚点序列中是否存在自身的标识,如果不存在,则判断出没有接收所述查询请求,根据所述位置和所述搜索范围,判断自身是否在所述搜索范围内,如果是,发送应答消息给所述代理节点,所述应答消息携带消息时间、所述邻居节点的编码和位置,向其邻居节点广播所述查询请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010228672 CN102014456B (zh) | 2010-07-09 | 2010-07-09 | 一种搜索节点的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010228672 CN102014456B (zh) | 2010-07-09 | 2010-07-09 | 一种搜索节点的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102014456A true CN102014456A (zh) | 2011-04-13 |
CN102014456B CN102014456B (zh) | 2013-03-27 |
Family
ID=43844413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010228672 Active CN102014456B (zh) | 2010-07-09 | 2010-07-09 | 一种搜索节点的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102014456B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184191A (zh) * | 2011-04-19 | 2011-09-14 | 中国联合网络通信集团有限公司 | 基于物联网的周边环境信息查询方法、***及物联网平台 |
CN105682033A (zh) * | 2016-01-19 | 2016-06-15 | 福建师范大学 | 一种基于移动ap的近邻检测方法 |
CN106507286A (zh) * | 2016-11-22 | 2017-03-15 | 北京三快在线科技有限公司 | 一种文件传输方法、源设备和非源设备 |
WO2017113663A1 (zh) * | 2015-12-28 | 2017-07-06 | 小米科技有限责任公司 | 用户信息的获取方法、装置、终端设备和服务器 |
CN112668998A (zh) * | 2020-12-23 | 2021-04-16 | 树根互联技术有限公司 | 流程实现方法、装置、***、电子设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005074229A1 (en) * | 2004-01-23 | 2005-08-11 | Tiversa Inc. | Method for optimally utilizing a peer to peer network |
CN101039321A (zh) * | 2007-02-02 | 2007-09-19 | 南京邮电大学 | 基于混合型移动代理的无线传感器网络数据传输方法 |
CN101420337A (zh) * | 2007-10-26 | 2009-04-29 | 北大方正集团有限公司 | 一种资源定位的方法、装置和索引服务器 |
-
2010
- 2010-07-09 CN CN 201010228672 patent/CN102014456B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005074229A1 (en) * | 2004-01-23 | 2005-08-11 | Tiversa Inc. | Method for optimally utilizing a peer to peer network |
CN101039321A (zh) * | 2007-02-02 | 2007-09-19 | 南京邮电大学 | 基于混合型移动代理的无线传感器网络数据传输方法 |
CN101420337A (zh) * | 2007-10-26 | 2009-04-29 | 北大方正集团有限公司 | 一种资源定位的方法、装置和索引服务器 |
Non-Patent Citations (1)
Title |
---|
杨圣洪等: "传感器网络中分布式最优小波压缩算法", 《计算机工程与应用》, vol. 45, no. 10, 31 October 2009 (2009-10-31), pages 4 - 6 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184191A (zh) * | 2011-04-19 | 2011-09-14 | 中国联合网络通信集团有限公司 | 基于物联网的周边环境信息查询方法、***及物联网平台 |
WO2017113663A1 (zh) * | 2015-12-28 | 2017-07-06 | 小米科技有限责任公司 | 用户信息的获取方法、装置、终端设备和服务器 |
CN105682033A (zh) * | 2016-01-19 | 2016-06-15 | 福建师范大学 | 一种基于移动ap的近邻检测方法 |
CN105682033B (zh) * | 2016-01-19 | 2019-01-25 | 福建师范大学 | 一种基于移动ap的近邻检测方法 |
CN106507286A (zh) * | 2016-11-22 | 2017-03-15 | 北京三快在线科技有限公司 | 一种文件传输方法、源设备和非源设备 |
CN112668998A (zh) * | 2020-12-23 | 2021-04-16 | 树根互联技术有限公司 | 流程实现方法、装置、***、电子设备和可读存储介质 |
CN112668998B (zh) * | 2020-12-23 | 2023-12-19 | 树根互联股份有限公司 | 流程实现方法、装置、***、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102014456B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101940055B (zh) | 以基于邻近性的自组织网络为基础的位置跟踪 | |
CN101390311B (zh) | 基于接收的信号确定物理位置 | |
CN1607399B (zh) | 由环境信号确定的设备的近似位置的使用 | |
US20020095486A1 (en) | Systems and methods for locating mobile computer users in a wireless network | |
US11966424B2 (en) | Method and apparatus for dividing region, storage medium, and electronic device | |
CN101600151B (zh) | 无线电波传播特性预测辅助***和方法 | |
KR20060068518A (ko) | 유비쿼터스 기반의 상황 정보 제공 서비스 시스템 및 그방법 | |
CN102014456B (zh) | 一种搜索节点的方法和*** | |
CN101175292A (zh) | 无线微功率网络定位***及其定位方法 | |
CN103308933A (zh) | 针对地理跟踪应用的上下文数据压缩 | |
Ning et al. | Design of accurate vehicle location system using RFID | |
CN105282844A (zh) | 定位方法、***、终端与定位服务器 | |
CN102263800A (zh) | 基于云计算构建的地理信息物联网***及应用 | |
CN111782980B (zh) | 地图兴趣点的挖掘方法、装置、设备及存储介质 | |
JP2007170956A (ja) | 測位方法及びシステム | |
CN101795466A (zh) | 无线微功率网络定位***及其定位方法 | |
CN108668218A (zh) | 一种终端定位方法及装置 | |
CN104583726A (zh) | 使用来自智能计量器的数据提供位置辅助信息 | |
CN116193571A (zh) | 基于mro与dpi数据关联的移动网络用户定位方法及*** | |
US20220374458A1 (en) | Apparatus and method for machine-learning-based positioning database creation and positioning of uncollected points using matching feature with wireless communication infrastructure | |
Pan et al. | Application of a WiFi/Geomagnetic Combined Positioning Method in a Single Access Point Environment | |
KR101831250B1 (ko) | 고정단말과 이동단말을 이용한 위치기반서비스 운용 시스템 및 그 방법 | |
CN106470394A (zh) | 一种基于室内外一体化的围墙构建及应用方法 | |
JP2002523785A (ja) | データキャリアロケーティングシステム及びその方法 | |
Callaghan et al. | Internal location based services using wireless sensor networks and RFID technology |
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 |