用于基于位置的发布和订阅的方法和装置的制造方法_2

文档序号:8385972阅读:来源:国知局
的环境中、例如在他们可能并不直接通信的环境中提供灵活的内容提供范例。在发布/ 订阅系统中,订阅方能够注册订阅,订阅例如定义过滤器,即订阅方可能希望接收到的未来 发布。订阅(sub)可以包括诸如"关键字,值,运算符"三元组的断言(predicate)的汇集。 发布方随后可以将发布(pub)发送至该发布/订阅系统。每个发布可以包括属性的汇集, 例如"关键字,值"配对。该发布/订阅系统所接收到的每个新的发布随后可以与所有所注 册的订阅进行匹配。例如,如果发布中的对应值满足订阅中的所有断言,则可以在发布/订 阅配对之间确定匹配。也就是说,如果特定发布中的对应的(关键字,值)配对满足特定订 阅中的每个断言三元组(关键字,值,运算符),则该特定发布可以与该特定订阅相匹配。基 于位置的发布/订阅(LPS)系统是特定类型的发布/订阅系统,其中一个或多个断言/属 性类型可以基于位置特性。
[0026] 图1图示了LPS系统背后的基本概念。每个订阅可以包括订阅区域断言,其针对 匹配的出现而要求发布处于某个距离之内。因此,如所示出的,每个所描绘的订阅(例如, "订阅1"、"订阅2"等)可以被概念化为具有与匹配距离相等的半径的圆。无论何时出现其 位置处于一个或多个订阅圆中的新发布,例如"发布1",该发布就与订阅相匹配,例如该位 置断言被满足。如所描绘的,发布1将与订阅4和订阅8相匹配。LPS系统另外的特征在于 订阅可以是"可移动的"。也就是说,当与特定订阅相关联的订阅方设备改变其位置时,位置 更新将被发送给LPS系统。这些位置更新可以被概念化为使得图1中所描绘的订阅圆随着 订阅方设备进行移动。因此,虽然订阅5并未被描绘为匹配发布1,但是如果与订阅5相关 联的用户向东南移动足够的量,则可以在发布1和订阅5之间形成匹配。
[0027] 图2在高层图示了LPS系统200的操作。如所示出的,LPS系统200可以接收发 布210、订阅230和位置更新220,并且返回匹配结果240,并且使得与特定发布相关联的内 容被提供至与对应的匹配订阅相关联的设备。在许多环境中,对位置更新220进行处理可 能需要LPS系统的大部分处理能力,特别是当存在大量用户、例如订阅方的时候。处理位置 更新所导致的系统负担因此可能使得LPS系统敏感于用户数量的增加,这降低了它们潜在 的可扩展性。因此,将期望LPS系统允许进行快速且有效的订阅区域位置更新以及发布/ 订阅匹配。因此,本发明的实施例可以通过采用基于地理哈希的方案连同附加的相关联的 细化和特征来提供这些优势。
[0028] 地理哈希将经度/炜度坐标编码为人类友好的串。地理哈希使用分层空间编码方 案,该方案将空间细分为网格形状的单元,例如"地理哈希框(box)"。通过改变地理哈希串 的长度,能够实现变化的精度水平,例如去除结尾字符会降低精度而增加结尾字符则会提 高精度。根据示例实施例,可以采用使用整数值的笛卡儿坐标系而不是浮点数的经炜度值 来加速计算。位置域也可以根据LPS系统的需求或限制进行量化和限制。例如,根据一个实 施例,位置域可以被量化和限制为宽度为40, 030, 200个离散单位(unit)的正方形,该大小 基于地球的大小进行选择以例如支持米级别的分辨率。因此,在根据示例实施例的LPS系 统中,诸如经由以下所详细讨论的手段,通过从整个地理哈希位置域开始的递归划分,订阅 区域的地理哈希表示可以被确定。就此而言,地理哈希框可以在每个划分级别处在X和y维 度上进行划分,这产生4个更小的地理哈希框。可以重复该划分过程直至达到期望的划分 级别,例如精度级别。图3图示了对地理哈希框所执行的这种递归细分。图3的中心是原点 并且该图中的每个框使用地理哈希位元交错方案(出于清楚的原因省略了最终的base-32 字符编码)进行编码。因此,能够看到较大的框具有较短的代码长度。随着地理哈希框被 进一步细分,例如如右下角所表示的,代码长度增加。
[0029] 通过使用坐标的整数表示,例如替代浮点数,地理哈希框及其相关联的代码的划 分(和倍增)可以通过简单的移位来执行,这提高了处理效率。根据示例实施例以及如图4 所示,地理哈希框可以使用例如〈x比特,y比特,级别〉的三元组进行编码,该三元组例如表 示X坐标、y坐标和精度级别。根据另外的示例实施例,X比特和y比特可以为32位整数,而 例如精度级别的"级别"则可以是8位整数。所谓的"桶(bucket)"可以被用来存储每个地 理哈希框中的项目。该桶例如可以是哈希图桶,例如"地理哈希桶",并且根据再另外的实施 例,如以下所描述的,这些桶的效率可以通过省略比特交织和base-32编码而进一步提高。 可以使用许多不同方法来识别给定地理哈希三元组的特定地理哈希桶。例如,一维哈希值 可以根据地理哈希三元组〈x比特,y比特,级别〉确定并且被用作(关键字,地理哈希桶) 哈希图中的关键字。使用该方法可以提供一种灵活的系统,其允许使用任意的位置。每个 地理哈希框的相对应的桶可以动态地按需创建或销毁。然而,该方法可能要求(关键字,地 理哈希桶)哈希图中额外的哈希图操作,例如查找、插入和/或删除操作。根据可替换实施 例,如果被运算的区域、例如给定城市,是事先已知的,则地理哈希桶可以在使用〈x比特,y 比特,级别〉三元组作为关键字进行直接访问的三维阵列中被预先分配和布置。
[0030] 已经介绍了本发明的一些基本概念,现在将继续参考图4以及图5和图6对根据 示例实施例的LPS系统200所执行的三种主要操作以及某些细化和附加特征进行描述。出 于讨论的清楚和简要的目的,操作和特征现在将被描述为简单地由"LPS系统"执行。然而, 将要理解的是,如将要在以下更为详细描述的,这些操作中的每一个实际上例如可以由一 个或多个装置来执行,该装置例如由诸如一个或多个服务器的一个或多个网络实体体现或 者以其它方式与之相关联,并且包括诸如一个或多个处理器、存储器设备、通信接口等的器 件。
[0031] 添加订阅
[0032] 根据示例实施例,LPS系统200可以通过使得与所接收的订阅相关联的订阅标识 符被存储在一个或多个地理哈希框中而添加所接收的订阅。就此而言,LPS系统200所接 收的每个订阅包括订阅区域,该订阅区域例如可以通过中心和半径进行定义。LPS系统200 随后可以确定订阅区域的地理哈希表示并且随后使得该订阅被存储在该订阅区域的该地 理哈希表示中。
[0033] 就此而言,LPS系统200可以通过首先确定包含订阅中心并且具有刚好大于订阅 半径的宽度的中心地理哈希框,来确定这样的订阅区域的地理哈希表示。中心地理哈希框 在图4中被表示为"C"。在确定中心地理哈希框之后,LPS系统200可以接下来确定包围该 中心地理哈希框的八个地理哈希框,它们中的每一个都有可能被由订阅中心和订阅半径定 义的订阅圆400所叠盖。这八个周边地理哈希框例如可以通过向中心地理哈希框的X比特 和y比特增加1/从其减去1来确定。例如,处于中心框正"北侧"的地理哈希框(由"N" 表示)能够通过在保持X比特与中心地理哈希框相同的同时向中心地理哈希框的y比特增 加1而找到。作为另一个示例,"NW"和"NE"框能够通过分别从"N"地理哈希框减去1/向 "N"地理哈希框增加1而确定。在确定了所有九个"邻近的"地理哈希框之后,LPS系统可 以将订阅基准(例如,订阅标识符)存储在所有九个"邻近的"地理哈希框的对应的桶中。
[0034] 根据另外的实施例,订阅添加操作的执行可以通过减少其中存储有订阅的框的数 量而得到改进,例如通过减少对基础的桶哈希图的插入/移除操作的数量而得到改进。因 此,根据示例实施例,LPS系统200可以在确定九个邻近的地理哈希框之后执行合并操作。 就此而言,由于地理哈希表示的分层属性,九个邻近的地理哈希框中的四个,例如中心的地 理哈希
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1