用于存储信标基准数据的cuckoo散列的制作方法

文档序号:7619120阅读:154来源:国知局
专利名称:用于存储信标基准数据的cuckoo散列的制作方法
技术领域
本发明涉及无线通信,尤其涉及存储信标基准数据。背景现有的系统收集或确定描述信标或其他无线接入点的位置的信标基准数据。信标基准数据包括例如信标的位置信息。信标基准数据被分发给移动设备以使移动设备能基于它们所观察到的信标的位置来估计它们的位置。根据现有的系统,信标基准数据耗用了移动设备上可用的大量有限存储器,还耗用了大量带宽用于进行分发。一些现有的系统已经尝试通过压缩信标基准数据来减小信标基准数据的大小。这些系统还将信标标识符与经压缩的信标基准数据一起存储。由于信标标识符通常比信标基准数据耗用更多存储器,因此这种现有的系统在存储器消耗方面提供了极小的减少。其他现有的系统使用信标标识符作为键来将信标基准数据存储在散列表中。除了在存储器消耗方面提供的减少极小以外,这些系统还有隐私问题,因为移动设备的用户能够迭代地通过散列表以获得信标基准数据。概述本发明的各实施例从被截短的cuckoo (布谷鸟)散列表获得信标的信标基准数据以推断计算设备的位置。访问与信标相关联的数据。该数据包括信标标识符和描述信标位置的信标基准数据。散列表中的多个潜在位置由第一计算设备所标识。计算信标标识符的校验和。第一计算设备执行CUCk00散列来将信标基准数据和所计算的校验和存储在散列表中多个潜在位置之一中。第一计算设备将散列表分发给第二计算设备,后者经由所计算的校验和从散列表检索信标基准数据。提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。附图简述

图1是示出移动计算设备存储从服务器计算设备接收到的被截短的cuckoo散列表的示例性框图。图2是示出通过对信标基准数据进行cuckoo散列来进行散列表的创建和分发的示例性流程图。图3是示出被截短的cuckoo散列表中的混叠的示例性框图。在附图中,对应的附图标记指示对应的部分。详细描述参考附图,本发明的各实施例将信标104的信标基准数据108存储在被截短的 cuckoo散列表中。在一些实施例中,用于位置检索的无线接入点(WAP)的小块被预先分发给诸如客户机设备的设备。当客户机设备之一观察到附近的信标104时,使用信标104的信标标识符来获得所观察到的信标104的信标基准数据108。使用所获得的信标基准数据 108来推断客户机设备的位置。
本发明的各方面通过将每个信标标识符的校验和而不是实际信标标识符存储在散列表中,从而减少信标基准数据108的存储器存储量。而且,通过存储信标标识符的校验和,本发明的各方面通过防止用户挖掘预先分发的小块来推断什么信标104位于什么位置,从而模糊信标基准数据108。为了减少散列表中的混叠,本发明的各实施例使用cuckoo 散列来消除冲突。虽然参照校验和被描述为用于散列、模糊或以其他方式将一个值转换成另一个值的手段,本发明的各方面不限于计算信标标识符的校验和。相反,构想了其他计算并且它们在本发明的范围内。再次参照图1,一示例性框图示出移动计算设备102存储从服务器计算设备112 接收到的被截短的cuckoo散列表106。移动计算设备102例如包括移动计算设备#1至移动计算设备測。示例性的移动计算设备102包括装备有全球定位系统(GPQ接收机的移动电话。然而,移动计算设备102包括执行指令(例如应用程序)以存储和访问被截短的 cuckoo散列表106的任何设备。例如,移动计算设备102包括诸如膝上型计算机、上网本、 游戏设备和/或便携式媒体播放器之类的便携式计算设备。此外,移动计算设备102的每一个可以表示一组处理单元或其他计算设备。移动计算设备102检测或观察包括蜂窝塔(或在采用有向天线时的扇区)以及无线保真(Wi-Fi)接入点或其他无线接入点(WAP)在内的一个或多个信标104。如下详述,移动计算设备102然后基于存储在散列表106中的和所观察到的信标104相关联的信标基准数据108来推断其位置。虽然本公开的各方面可以参考实现诸如蜂窝传输协议和802. 11 系列协议之类的协议的信标104来描述,但本发明的各实施例可与能进行无线通信的任何信标104 —起操作。服务器计算设备112经由网络110与移动计算设备102进行通信。虽然在客户机-服务器通信的上下文中描述,本发明的各方面也可以在诸如对等实施例等其他环境中操作。服务器计算设备112存储或可以访问描述一个或多个信标104的大致位置的数据。 该数据被称为信标基准数据108。或者或另外,信标基准数据108可以被存储在服务器计算设备112内部。在一些实施例中,信标基准数据108包括例如信标104的经度值、纬度值和海拔值。服务器计算设备112包括基于信标基准数据108来创建被截短的cuckoo散列表 106的任何计算设备。在图1的例子中,服务器计算设备112还将所创建的散列表106分发给移动计算设备102。示例性网络110包括有线和/或无线网络,并且可以表示局域网或诸如提供对因特网的访问的全球网络。在其中网络Iio包括无线网络的实施例中,服务器计算设备112 和移动计算设备102可以启用各种技术,诸如蓝牙(商标)无线通信服务(受保护或不受保护)、射频识别(RFID)、诸如对等Wi-Fi之类的Wi-Fi、ZIGBEE(商标)无线通信服务、 Z-WAVE (商标)无线通信服务、近场通信(NFC)、以及其他启用近程或远程无线通信的技术。移动计算设备102的每一个还包括至少一个处理器114和诸如存储器区域116之类的一个或多个计算机可读介质。处理器114包括任何数量的处理单元,并且被编程为执行用于实现本发明的各方面的计算机可执行指令。指令可由处理器114或由在移动计算设备102内执行的多个处理器执行,或者由计算设备外部的处理器(例如,由云服务)来执
5行。在某些实施例中,处理器114被编程为执行诸如附图(例如,图3)中示出的那些指令。存储器区域116包括与移动计算设备102相关联或可以由移动计算设备102访问的任意数量的介质。存储器区域116可以在移动计算设备102的内部(如图1所示)、在移动计算设备102的外部(未示出)、或两者(未示出)。存储器区域116还存储用于实现本方面的各方面的一个或多个计算机可执行组件。示例性组件包括存储器组件120、检测组件122、评级组件124、检索组件126和位置组件128。移动计算设备102的每一个执行各组件以便从散列表106检索信标基准数据108 并且确定移动计算设备102的位置。下面讨论各组件的操作。图1中的各元件的至少一部分功能可以由图1中的其他元件或图1中未示出的实体(例如,处理器、web服务、服务器、 应用程序、计算设备等)执行。接着参考图2,一示例性流程图示出服务器计算设备112通过对信标基准数据108 进行cuckoo散列来创建和分发散列表106。在该例中,参考图2示出和描述的操作由服务器计算设备112(例如第一计算设备)执行。在202,访问与一个或多个信标104相关联的数据。对于每一个信标104,所访问的数据包括信标标识符和描述信标104的位置的信标基准数据108。信标标识符的每一个对应于信标104之一。例如,每个Wi-Fi信标具有一个基本服务集标识符(BSSID)。在另一例中,每个全球移动通信服务(GSM)蜂窝塔包括移动国家代码(MCC)、移动网络代码(MNC)、位置区域代码(LAC)和小区标识符。通用移动电信系统 (UMTS)塔具有由MCC、MNC和小区标识符所组成的信标标识符。载波分集多址(CDMA)塔具有由系统标识符、网络标识符和基站标识符所组成的信标标识符。在一实施例中,信标标识符包括BSSID和服务集标识符(SSID)的一个或多个。在一些实施例中,访问与多个信标104相关联的数据。例如,多个信标104表示位于同一地理区域内的信标104的小块。构想了其他信标104的组。每一个信标104可以被分配给散列表中的多个位置或条目之一。在203,标识散列表中的潜在位置。通过使用信标标识符作为输入来执行所定义数量的散列函数或其他计算,从而标识可用的位置。散列表函数的输出确定了散列表中的可能或潜在位置。增加散列函数的数量增加了散列表中潜在位置的数量。在204,对于每一个位置,计算该位置的信标标识符的校验和。例如,该操作可由校验和(信标标识符)来表示。在206,执行cuckoo散列以将信标基准数据108和为每一个信标104计算的校验和存储在被截短的cuckoo散列表中。将所计算的校验和而不是信标标识符存储在散列表中。由于所计算的校验和相比信标标识符使用较少的存储器,因此所产生的散列表使用了较少的存储器。在一些实施例中,cuckoo散列包括选择散列表中的所标识的潜在位置之一来存储所计算的校验和和相应的信标基准数据108。本发明的各方面评估特定信标104的每一个潜在位置以消除任何冲突。例如,分析每一个位置来确定所计算的校验和是否与已经被分配给该位置或可能被分配给该位置的另一校验和相同。如果可能用相同的校验和将不止一个信标标识符分配给相同的位置,则宣布冲突,并且不将任何信标标识符分配给该位置。 在散列表的可用位置中,本发明的各方面确认每个位置中存储的校验和相对于彼此是唯一的。在标识和消除了冲突之后,本发明的各方面找到信标标识符和潜在位置之一之间的匹配,使得将每一个信标标识符分配给唯一的位置。以下图3示出和描述了 cuckoo散列中的
6冲突消除。在一些实施例中,信标104的信标基准数据108被存储在单个散列表中。在其他实施例中,为信标104的每个小块,即组,创建一个分开的散列表。可以存储附加数据作为信标基准数据108的一部分。例如,可以存储信标104的无线信道和所观察的信号强度。例如,每个信标具有6字节的BSSID、4字节的SSID、2字节的经度值和2字节的纬度值(例如,对于每个信标总共14个字节)。本发明的各实施例构想BSSID和/或SSID的 2字节校验和,使得所存储的数据等于2字节校验和以及经度值和纬度值的4字节(例如, 对于每个信标总共6个字节)。由此,本发明的各实施例使存储器消耗减少一半。在将信标基准数据108和相应的校验和存储在一个或多个散列表中之后,在208, 散列表106被分发或以其他方式被提供给移动计算设备102 (例如第二计算设备)。一些实施例基于移动计算设备102的地理区域、移动计算设备102的移动模式、移动计算设备102 的订阅简档或其他标准来分发散列表106。例如,将和每一个移动计算设备102的家庭区域代码相对应的小块提供给移动计算设备102。每一个移动计算设备102将所接收的散列表106存储在其本地存储器区域中(例如存储器区域116)。在其他实施例中,所接收的散列表106被存储在距移动计算设备102 远程但可由移动计算设备102访问的存储器区域中。每一个移动计算设备102访问散列表106以推断移动计算设备102的位置。例如, 移动计算设备102之一检测在移动计算设备102的邻近范围内的一个或多个信标104。移动计算设备102通过使用所检测的信标104的信标标识符作为输入来计算散列函数,从而计算多个潜在的位置。对于每一个潜在位置,计算与所检测的信标104相关联的信标标识符的校验和。通过使用所计算的校验和,移动计算设备102访问散列表106来检索、获得或以其他方式访问与每一个所检测的信标104相关联的信标基准数据108。例如,对于每一个潜在位置,如果存储在散列表中该位置处的校验和与该位置的信标标识符的所计算的校验和相匹配,则检索相关联的信标基准数据108。通过使用所检索的信标基准数据108,移动计算设备102基于所检测的信标104的位置来确定移动计算设备102的位置。如果没有一个从信标标识符计算的校验和与散列表中各个位置处存储的校验和相匹配,则本发明的各方面得出结论信标标识符不存在于散列表中,且因此不检索任何信标基准数据108。在一些实施例中,移动计算设备102将所检索的信标基准数据108与和移动计算设备102相关联的域信息相比较以确认或验证所检索的信标基准数据108。以此方式,信标基准数据108被过滤以避免错误的肯定响应。参照图1所示的各组件,存储器组件120在由处理器114执行时使处理器114存储多个散列表106。每一个散列表106对应于一组信标104。各个组的每一个表示一地理区域(例如,小块)。散列表106存储与信标104相关联的信标基准数据108。信标104的每一个具有一信标标识符。通过执行cuckoo散列来将信标基准数据108和信标标识符的校验和存储在散列表106中的多个潜在位置之一,使得没有其他具有相同校验和的信标标识符被存储在该位置,从而创建多个散列表106。检测组件112在由处理器114执行时使处理器114检测移动计算设备102邻近范围内的一个或多个信标104。评级组件IM在由处理器114执行时使处理器114至少基于检测组件122所检测的信标104、信标覆盖率以及混叠率来为各组信标104的每一组计算一个分数。基于所计算的分数,评级组件1 还选择多个散列表106中的至少一个。在一些实施例中,分数反映了使用一组(例如小块)特定信标104会出现错误的肯定(例如,由于混叠而检索错误的信标基准数108)的概率,并且至少部分基于所检测的信标104是否在该组内。错误肯定的概率随着移动计算设备102所高速缓存的小块数量的增加而增加。而且,在低覆盖密度的区域(例如,以前未观察到更多信标104的区域)中更多地宣布混叠。可以按以下公式(1)所示来计算小块Si的示例分数。Qi =概率(信标w是小块Si中的准确匹配ISi(W)=真)= Ci/(Ci+α (1-Ci)) (1)在公式(1)中,α是混叠率(例如,如果用4次散列函数被截短为1字节时约为 1. 56% ;用4次散列函数的2字节校验和时为0. 006% ),Ci是信标覆盖率(例如,对于小块Si的已知信标相对于信标总数的所估计的百分比),w是所观察到的信标。分母中的第一项Ci表示信标w在小块Si内并且是已知信标(例如,准确或真匹配)的条件概率。第二项α (I-Ci)表示信标w在小块Si内并且是未知信标且Si (w)=真(例如,与可能处在小块内很不同且远距位置处的已知信标的错误匹配)的条件概率。给定一组k个所观察到的信标(Wl,W2,…,wk),每个小块Si的分数如下在公式(2) 的例子中计算。分数(SiI(wi; W2, ... , Wk)) = Σ J-QiXSi (Wj) = (Ci/(Ci+α (I-Ci))) Σ ^Si (Wj) (2)覆盖率越高且混叠率越低,则质量分数&就越高,如下表1中的示例数据所示。
覆盖率混叠率质量分数90. 000%1. 563%0.99826689890. 000%0. 006%0.99999321850. 000%1. 563%0.98461538550. 000%0. 006%0.99993896910. 000%1. 563%0.87671232910. 000%0. 006%0.9994509851. 000%1. 563%0.3926380371. 000%0. 006%0.993993812表1.示例质量分数。本发明的各方面然后选择和具有最高分数的小块相对应的散列表。检索组件1 在由处理器114执行时使处理器114标识所选择的散列表中的潜在位置,并且计算所标识的潜在位置处的信标标识符的校验和。检索组件126还从所选择的散列表中其校验和与位置的所计算校验和相匹配的各位置中,获得与检测组件122所检测的信标104相关联的信标基准数据108。位置组件128在由处理器114执行时使处理器114基于检索组件126 所获得的信标基准数据108来确定移动计算设备102的位置。在一些实施例中,位置组件 128通过在在确定移动计算设备102位置之前,通过离群消除来过滤所获得的信标基准数据 108。 在某些实施例中,图2所示的操作由服务器计算设备112来执行。在其他实施例中,图2所示的操作中的一个或多个由另一计算设备(例如,作为web服务)来执行。在诸如对等实施例等其他实施例中,图2所示的操作中的一个或多个由移动计算设备102执行。此外,图2所示的操作可以被实现为在计算机可读介质上编码的软件指令,以被编程或设计为执行操作的硬件来实现,或这两者。例如,图2中的操作可以被实现为计算机可执行组件或其他软件。接着参考图3,一示例性框图示出被截短的cuckoo散列表中的混叠。Cuckoo散列在编码阶段避免了共享相同校验和值的信标标识符之间的冲突。接着描述用于CUCk00散列的示例性方法。如图3所示,一列信标标识符被映射到散列表中的可用条目或位置。如果一条目带有具有同一校验和的不止一个信标标识符,则从具有该校验和的信标标识符中移除到该条目的链接,以消除冲突。在图3的例子中,校验和JBI1)等于校验和工(BIn),表示冲突,因此将移除从BI1和BIn到该条目的链接。由于在该例中校验和2 (BI2)不等于校验和2 (BIn), 因此在该位置中不存在冲突。在将多个散列表106提供给移动计算设备102的实施例中, 跨多个散列表106执行所述的唯一性确认以避免混叠。本发明的各方面前进至如下地寻找信标标识符和可用条目之间的匹配。信标标识符被(随机地或以其他方式)分配给未被占用的相应的、可用的(例如非冲突)条目之一。 如果对于一给定信标标识符占用了可用条目,则评估其中的占用者以便重新定位至另一条目。重新定位评估以增加的深度继续,直到已经为该信标标识符和占用者找到可用条目。 匹配过程继续,直到已经将信标标识符分配给非冲突条目或者当没有占用者能被重新定位 (例如,提示出错消息)时。附加示例一些实施例基于覆盖率来调节混叠率。例如,当覆盖很高时,可以容忍较高的混叠率(例如较高压缩)来实现存储器存储耗用中的更大减少。或者或另外,基于不同应用程序场景中所观察到的错误肯定的成本,用因子λ对混叠率进行加权。例如,当错误肯定带有较高成本时,λ大于1,而如果错误肯定的成本低时,λ在0和1之间。在这一实施例中, 上面的公式(2)被修改以包括λ,如公式(3)所示。Qi =概率(信标w是小块Si中的真匹配ISi(W)=真)=Ci/(Ci+λ α (1-Ci)) (3)虽然参考从用户收集的数据来描述各实施例,但本发明的各方面向用户提供数据收集的通知(例如,经由对话框或偏好设置)以及给出或拒绝同意的机会。该同意可以采用加入同意或退出同意的形式。
示例件操作环境示例性计算机可读介质包括闪存驱动器、数字多功能盘(DVD)、紧致盘(⑶)、软盘以及磁带盒。作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。尽管结合示例性计算系统环境进行了描述,但本发明的各实施例可用于众多其它通用或专用计算系统环境或配置。适用于本发明各方面的公知的计算系统、环境和/或配置的示例包括,但不限于移动计算设备、个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、游戏控制台、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、网络PC、小型机、大型计算机、包括上述系统或设备中的任一个的分布式计算机环境寸寸。可以在由一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执行的指令的一般上下文中来描述本发明的各实施例。计算机可执行指令可以被组织成一个或多个计算机可执行组件或模块。一般而言,程序模块包括,但不限于,执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件,以及数据结构。可以利用任何数量的这样的组件或模块及其组织来实现本发明的各方面。例如,本发明的各方面不仅限于附图中所示出并且在此处所描述的特定计算机可执行指令或特定组件或模块。本发明的其他实施例可以包括具有比此处所示出和描述的功能更多或更少功能的不同的计算机可执行指令或组件。本发明的各方面当被配置成执行此处所描述的指令时将通用计算机变换成专用计算设备。这里示出和描述的各实施例已经未在此特别描述但在本发明各方面范围内的各实施例构成了用于以下操作的示例性手段用于从CUCkoo散列表获得信标104的信标基准数据108以推断移动计算设备102的位置、以及用于使用信标标识符的校验和从cuckoo散列表获得信标104的信标基准数据108。此处所示出和描述的本发明的各实施例中的操作的执行或实现的顺序不是必需的,除非另外指定。即,除非另外指定,否则操作可以按任何顺序执行,且本发明的各实施例可以包括比此处所公开的操作更多或更少的操作。例如,构想了在一个操作之前、同时或之后执行另一个操作是在本发明的各方面的范围之内的。当介绍本发明的各方面的元素或其实施例时,冠词“一”、“一个”、“该”、“所述”旨
在表示有元素中的一个或多个。术语“包括”、“包含”以及“具有”旨在是包含性的,并意味着除所列出的元素以外还可以有额外的元素。已经详细地描述了本发明的各方面,显然,在不偏离所附权利要求书所定义的本发明的各方面的范围的情况下,可以进行各种修改和变化。在不偏离本发明的各方面的范围的情况下,可以对上面的构造、产品以及方法作出各种更改,上面的描述中所包含的和各个附图中所示出的所有主题应该解释为说明性的,而不是限制性的。
权利要求
1.一种用于获得从中推断移动计算设备(102)的位置的无线接入点的信标基准数据 (108)的系统,所述系统包括用于存储散列表(106)的存储器区域(116),所述散列表(106)存储与至少一个信标 (104)相关联的信标基准数据(108),所述信标(104)具有与其相关联的信标标识符,所述散列表(106)通过执行cuckoo散列以便将信标基准数据(108)和信标标识符的校验和存储在散列表(106)中多个潜在位置之一、使得没有其他具有所述校验和的信标标识符被存储在所述多个潜在位置中的所述一个中来创建;以及处理器(114),被编程以由所述移动计算设备(10 检测所述移动计算设备(10 邻近范围内的信标(104); 基于所检测的信标(104)的信标标识符来标识存储在所述存储器区域(116)中的散列表(106)中的所述多个潜在位置;为所标识的多个潜在位置的每一个计算所述信标标识符的校验和; 将所标识的多个潜在位置中的每一个的所计算的校验和与存储在散列表(106)中相应位置处的校验和进行比较,以便在所述多个潜在位置之一处标识匹配;在存储在所述存储器区域(116)中的散列表(106)中的所述多个位置的所述一个处获得与所计算的校验和相关联的信标基准数据(108),其中所述移动计算设备(10 基于所获得的信标基准数据(108)来确定所述移动计算设备(102)的位置。
2.如权利要求1所述的系统,其特征在于,所述存储器区域存储多个散列表,其中所述多个散列表中的每一个表示位于地理区域内的一组一个或多个信标。
3.如权利要求1所述的系统,其特征在于,所述散列表存储位于预定义的地理区域内的一个或多个信标的信标基准数据。
4.如权利要求1所述的系统,其特征在于,所述信标基准数据包括以下的一个或多个 经度值、纬度值和海拔值。
5.如权利要求1所述的系统,其特征在于,所述处理器还被编程以便将所获得的信标基准数据与和所述移动计算设备相关联的域信息相比较以确认所述所获得的信标基准数据。
6.如权利要求1所述的系统,还包括基于所获得的信标基准数据来确定所述移动计算设备的位置。
7.如权利要求1所述的系统,还包括用于从cuckoo散列表获得信标的信标基准数据以推断所述移动计算设备的位置的装置。
8.如权利要求1所述的系统,还包括使用信标标识符的校验和从cuckoo散列表获得信标的信标基准数据的装置。
9.一种方法,包括访问与信标(104)相关联的数据,所述数据包括信标标识符和描述所述信标(104)的位置的信标基准数据(108);由第一计算设备标识散列表(106)中的多个潜在位置以便与所述信标标识符相关联; 为每一个所标识的位置计算所述信标标识符的校验和;由所述第一计算设备执行cuckoo散列来将信标基准数据(108)和信标标识符的所计算的校验和存储在所述散列表(106)中所标识的多个潜在位置中的一个中;以及将所述散列表(106)提供给第二计算设备,所述第二计算设备经由所述多个所标识的位置的所述一个中的所计算的校验和从所述散列表检索信标基准数据(108)。
10.如权利要求9所述的方法,其特征在于,访问所述数据包括访问与表示无线接入点小块的多个信标相关联的数据。
11.如权利要求9所述的方法,还包括将所述散列表提供给多个移动计算设备。
12.如权利要求9所述的方法,其特征在于,所述信标标识符包括以下各项的一个或多个基本服务集标识符(BSSID)和服务集标识符(SSID)。
13.如权利要求9所述的方法,其特征在于,执行cuckoo散列包括查找所述信标标识符和所标识的多个潜在位置之一之间的匹配,使得没有其他信标标识符与所标识的多个潜在位置的所述一个相匹配。
14.如权利要求9所述的方法,其特征在于,标识多个潜在位置包括计算多个散列函数。
15.如权利要求9所述的方法,其特征在于,一种或多种计算机可读介质具有计算机可执行组件,所述组件包括在由至少一个处理器执行时使所述至少一个处理器存储多个散列表的存储器组件,所述散列表对应于信标组,每个组表示一地理区域,所述散列表存储描述信标位置的信标基准数据,其中每一个信标具有与其相关联的信标标识符,所述多个散列表通过执行cuckoo 散列以便将所述信标基准数据和信标标识符的校验和存储在所述散列表中多个潜在位置之一、使得没有其他具有所述校验和的信标标识符被存储在所述多个潜在位置的所述一个来创建;在由至少一个处理器执行时使所述至少一个处理器检测计算设备的邻近范围内的一个或多个信标的检测组件;评级组件,所述评级组件在由至少一个处理器执行时使所述至少一个处理器至少基于所述检测组件所检测的信标、信标覆盖率以及混叠率来为多组信标的每一组计算分数,所述评级组件还基于所计算的分数来选择所述多个散列表中的至少一个;检索组件,所述检索组件在由至少一个处理器执行时使所述至少一个处理器使用所述信标标识符的校验和,从所述评级组件所选择的散列表中获得与所述检测组件所检测的信标相关联的信标基准数据;以及在由至少一个处理器执行时使所述至少一个处理器基于所述检索组件所获得的信标基准数据来确定所述计算设备的位置的位置组件。
全文摘要
存储和检索被截短的cuckoo散列表中的信标基准数据。使用与信标相关联的信标标识符的校验和来检索散列表中描述信标的位置的信标基准数据。数据通过cuckoo散列被存储在一个或多个散列表中以消除混叠。将散列表提供给诸如移动设备这样的设备。设备使用所观察到的信标的信标标识符从表中检索信标基准数据。使用所检索的信标基准数据来推断设备的位置信息。Cuckoo散列表消耗较少的存储器存储空间并且模糊信标基准数据。
文档编号H04W64/00GK102170696SQ20111007222
公开日2011年8月31日 申请日期2011年3月16日 优先权日2010年3月17日
发明者A·K·瑟沙德瑞, J·李, J-H·林 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1