用于无线设备的混搭应用程序和服务的制作方法

文档序号:7736075阅读:127来源:国知局
专利名称:用于无线设备的混搭应用程序和服务的制作方法
用于无线设备的混搭应用程序和服务背景朋友及其他相关人群常常希望能够彼此定位和跟踪,以及可能共享诸如他们的当 前环境、景观,以及感觉之类的信息。例如,假设一大群人在一起观光旅行或参观一大型游 乐场。在到达之后,他们自然地分为小组(或小队),每一小组具有不同的兴趣和优先级,如 此,沿着不同的路线移动。然而,目前没有合理的方式来在这样的小队中彼此进行定位、跟踪和共享数据,尽 管许多人携带了诸如智能电话等等之类的无线通信设备。例如,尽管可以呼叫另一个人, 给另一个人留下语音消息,向另一个人发送文本消息等等,但是,这样的现有解决方案是不 合乎需要的,或在某些情况下不那么有效。无线设备受到带宽限制,需要昂贵的蜂窝数据服 务,具有电池电源约束,并且具有相对较小的计算能力。当与用户频繁的位置变化相结合 时,迄今为止没有已知的方式来执行克服上文所提及的资源限制的有成本效益的跟踪和/ 或数据共享,同时又能维护动态数据的数据一致性。概述提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些代 表性的概念的选集。此“概述”并不打算标识所要求保护的主题的主要特点或基本特点,也 不打算让此“概述”被用来以任何方式限制所要求保护的主题的范围。简单来说,此处所描述的主题的各个方面涉及这样的技术通过该技术,客户机设 备加入客户机设备的小队,这些客户机设备各自能够通过无线局域网(WLAN)连接彼此进 行通信。当处在小队中时,客户机可以通过WLAN连接从小队中的至少一个其他客户机设备 获得用于用作混搭(用于组合来自不同源的数据)的数据,包括基于服务器从另一小队接 收到的信息(例如,通过WWAN连接)从该服务中获得的数据。以此方式,诸如在社交网络中 的跟踪和数据共享是由小队有效地执行的,这些小队通过WLAN连接交换数据(小队内部), 还可包括从另一小队接收到的数据(小队间),以用于混搭之用。通过下面的结合附图形对本发明进行的详细说明,其他优点可以变得显而易见。附图简述本发明是作为示例说明的,而不仅限于附图,在附图中,类似的附图标记表示类似 的元素,其中

图1是地图上的各个用户小队的表示,如通过使用用户的GPS数据和地图服务数 据的混搭而产生的。图2是移动客户机设备的示例组件的框图表示,特别是与小队内部客户机设备和 服务进行通信的支持混搭应用程序的硬件组件。图3是移动客户机设备的示例软件组件体系结构的框图表示。图4和5包括示出了当与小队间设备和服务进行通信时客户机设备可以采取的示 例步骤的流程图。图6是示出了当检测到移动性事件时(例示为突然速度变化)客户机设备可以采 取的示例步骤的流程图。
4
图7是示出了当与客户机设备进行通信时服务/服务器可以采取的示例步骤的流 程图。图8是示出了当处在操作中时客户机设备可以采取的示例步骤的流程图。详细描述此处所描述的技术的各个方面一般涉及为移动设备(例如,智能电话)用户设计 的社交网络/群件应用程序。一般而言,“混搭(mashup)”应用程序是组合来自一个以上的 源的数据的应用程序;此处所描述的技术使用各种数据类型——包括位置依存和移动性感 知数据(如GPS位置和周围地图)——以及时且有成本效益的方式来提供数据混搭服务。在一个示例实现中,该应用程序利用社交网络引导的GPS辅助共享方案来以有成 本效益的方式协作地共享数据。该应用程序还通过移动性自适应和位置感知更新策略来为 漫游用户管理数据一致性。尽管此处所描述的一些示例涉及允许移动电话用户跟踪他或她的漫游朋友的位 置和地图的群件应用程序,但是,应该理解,这些只是示例而已。其他潜在的用途包括用于 跟踪人员、运输车辆等等的商务应用程序。如此,本发明不仅限于此处所描述的任何特定实 施例、方面、概念、结构、功能或示例。相反,此处所描述的任何一个实施例、方面、概念、结 构、功能或示例都是非限制性的,且可以以一般而言在计算、通信、数据共享和一致性管理 时(特别是在高移动设置中)提供好处和优点的各种方式来使用本发明。如在图1中一般性地表示的,其示出的是被称为社交网络100(尽管关系可能不是 “社交的”)的一组连接的移动用户,包括一个或多个希望跟踪他们的漫游朋友等等和/或 希望以及时的方式与他们交换各种类型的信息的用户。可以得益于这样的数据交换的现实 应用情景的示例包括日常活动、成群远足(例如,观光、购物、体育活动),以及团队任务(例 如,警察、野外作业)。每一用户都具有能够与此处所描述的应用程序软件一起操作的移动 设备。设备具有定位功能,由此用户/设备可以被视为在地图102内,例如,通过用户位置 数据与来自地图服务的数据的混搭。一般而言,具有密切的社交关系和/或共同兴趣的人常常作为在地理上共处的小 队一起移动。多个小队可以以不同的速度在不同的方向移动,且因此这样的小队在空间上 是分散的。随着时间的推移,一个成员可能离开一个小队而加入另一小队,虽然转换频率通 常不是非常高。小队大小可以动态地变化,且随着时间的推移,小队还可合并或分开。因此,用户倾向于自身分成若干个小队,如在图1中分别经由标记为KM1-KMnW 小队1到小队η所示的。小队可以小到一个用户/设备/成员,或者是任何切实可行的数 量个用户/设备。注意,如此处所使用的,术语“用户”、“客户机”、“设备”和“成员”一般是 可互换的。任何切实可行的数量个小队可以进行通信,且不同的组的小队(例如,与不同的 用户组相关联的)可以存在于相同的一般区域中;一个用户同时位于不同的社交网络的小 队中是可行的,诸如通过使用组身份来区别两个朋友群集。然而,出于简便起见,此处只描 述了一个组的小队。如在图2的一般化硬件框图和图3的一般化软件体系结构图(下面所描述的)中 表示的,每一个参与的用户都携带移动通信设备220作为与数字(例如,社交)网络环境的 接口,如此处所描述的。设备220能够运行某些移动电话软件,且具有广域/覆盖蜂窝数据服务,诸如GPRS/EDGE、CDMAlx或3G。如此处所使用的,这样的无线广域联网能力被称为 “mm”,诸如在移动通信设备的“WWAN连接”中。此外,设备具有短程无线联网能力,如通过 蓝牙⑧或Wi-Fi,其是高带宽(相对于WffAN),且通常是免费的。如此处所使用的,这样的短 程联网在此被称为“WLAN”,如在移动通信设备的“WLAN连接”中。在图2中通过WffAN机制222和WLAN机制224来表示这些设备功能,WffAN机制 222和WLAN机制224中的每一个都耦合到表示附加通信软件和/或硬件的通信机制226。 如下面所描述的,WWAN连接是至服务228,服务2 可以包括用户数据服务器,该用户数据 服务器包括前端服务器230和后端数据库232。也如下面所描述的,WLAN连接是至与设备 220在同一小队(小队间)中的一个或多个其他客户机设备234。虽然所示范的设备具有这样的无线联网能力,但是,应该注意,不是每一个设备都 需要具有相同能力。例如,诸如PDA或膝上型计算机之类的移动设备只需具有到其小队中 的另一设备的WLAN连接,因为它通过在WLAN连接上交换适当的数据来利用该其他设备的 GPS坐标和/或其WffAN能力。然而,为简明起见,每一所描述的设备都将包括(至少)图2 中所描述的能力。除联网之外,所示范的设备220包括位置检测能力,诸如内置或外部GPS,或者基 于蜂窝式的服务。此能力在图1中由位置感测机制240来表示。如将理解的,设备运行应用程序M2,应用程序242为来自不同的源的不同数据类 型提供混搭机制和功能。例如,从移动设备的GPS读数或蜂窝塔获得用户位置坐标。从第 三方在线服务(如微软⑧虚拟地球(Virtual Earth))获得周围地图(例如,航空、公路、交 通)。注意,一些混搭功能可以在服务器上执行,例如,服务器可以向应用程序提供完全或部 分地组合的数据。用户与混搭应用程序242进行交互,如通过用户界面(UI组件)244、用户输入机 制246和用户输出机制248表示的。例如,如由图2中的数据存储250所表示的,每一用户 经由设备220可以有可以与朋友共享并可以从移动设备220上传的文本源、照片、图形和/ 或视频剪辑;(注意,因为无线通信在本质上常常间歇的,所以这些数据中的某些可以被高 速缓存并存储在一些在线社交网络数据服务器等等中,例如,服务228的)。如此,如此处 所使用的,术语“文件内容”是指任何这样的数据,包括文本、图像、图形、音频和/或视频等 等。应用程序242以及时并且有成本效益的方式将来自不同源的不同数据流提供给一组松 散耦合的用户。转向示例实现,一个服务2 包括用户数据服务器,包括前端web服务器230,以及 用于存储和查询处理的后端数据库232。web服务器230充当用于例如通过无状态HTTP协 议与客户机进行通信的接口。后端数据库232存储用于回复用户查询的用户数据。如下面 参考图7所描述的,由服务2 所执行的示例功能包括小队更新频率监视、小队/用户位置 预测和社交图计算。例如,服务器可以基于线性预测模型来计算所查询的用户/小队的当 前位置,例如,当前位置等于前一报告位置外加流逝时间乘以报告速度。对于社交图计算, 可以使用集合交来查找用户的共同朋友,且基于共同邻居的预测被提供给希望在他们的社 交图中的一定数量的跳跃内结交新朋友的用户。图3示出了一种实现中的客户机设备220的示例高层模块化软件体系结构。模块 之间的交互可以基于异步请求和基于回调的回复模型。注意,例外是对GPS时间和位置数据的记录——可以周期性地拉该记录,例如,每隔两秒。客户机设备220包括UI模块344和混搭引擎342 (例如,作为图2的混搭应用程 序242的一部分)。客户机设备220还包括用户通信模块360、传感器管理器362、位置管理 器340、通信管理器3 和日志模块364。UI模块344实现应用程序接口,并提供用于用户 交互的入口点。混搭引擎342负责各种混搭任务,诸如根据当前用户视图混合各种可用数 据流,并将经混搭的结果呈现到用户输出机制M8,例如,呈现到显示屏。混搭引擎342启动 新请求,并且对于需要的但在本地高速缓存350中不可用的任何数据,将它们发送到通信 管理器3沈。为了向用户提供集成的体验,提供了用户通信模块360,以使得用户可以处在该应 用程序内时作出电话呼叫或发送SMS/MMS消息。数据库/本地高速缓存350记录用户数据 (例如,与数据存储250相对应),包括来自位置管理器340和/或传感器管理器362的当 前位置和各种传感器的读数。本地高速缓存350还存储经高速缓存的地图瓦片(tile)的 索引(下载和预先获取的),例如,由范围受约束的比特矢量数据结构所表示的,如下面所 描述的。传感器管理器362管理诸如相机和麦克风之类的各种设备传感器。可以用在被放 入本地高速缓存350中时的瞬时GPS时间和位置信息来标记传感器读数。位置管理器340 检索GPS设备的读数,管理本身的位置和历史轨迹,以及其他社交邻居的位置和历史轨迹。通信管理器3 处理与各种数据服务器(例如,使用GPRS/EDGE的地图服务器及 其他服务数据服务器)的WWAN通信,以及例如通过蓝牙 /WiFi接口与其他小队内部的成 员的WJVN通信,。在一种实现中,通信管理器3 操作两个传出队列OQl和0Q2,即,一个用于使用 HTTP的远程服务器更新,诸如状态更新和文本/图像标记/博客,而另一个用于使用用于 广播消息(例如,心跳)的UDP和用于数据检索(例如,地图瓦片传输)的TCP的本地共 享。通信管理器还操作两个传入队列IQl和IQ2 ;—个是保留要获取的地图瓦片的索引的 ToHave (将具有)队列,而另一个是活动的正在进行的WffAN和WLAN下载的短队列。通信管 理器3 可以使用SMS/MMS信道作为替换性WffAN通信手段,诸如当GPRS信道不可用时。返回到图1中的示例,假设在小队10 中,用户A、B和C(经由他们的相应的设备) 希望跟踪他们自己的对应的地图上的位置,以及跟踪漫游团体的移动,如整个小队10 以 及随小队10 —起移动的个体T。A、B和C将需要定期从第三方在线地图服务检索地图, 以及小队3和个体T的GPS坐标。可以易于理解,每一个用户A、B和C可以分别地通过他 们的WffAN接口获得数据订阅源,然而,就带宽消耗、下载速度,以及货币成本而言,这可能 不是最佳方法。然而,同一个小队的用户A、B和C可能具有许多共同的兴趣,包括他们需要有关共 同的朋友(小队3/个体T)的信息,以及共享重叠地图区域,因为他们相对靠拢地移动。为 此,数据在它们之间的协作共享帮助减轻资源约束问题,并改善性能和用户体验。为了促进 协作共享,此处所描述的是解决谁将在数据混搭中共享什么信息,以及如何进行。图4示出了应用程序和服务的示例系统体系结构。社交网络442的每一移动通信 设备(客户机)经由其WWAN链路与多个服务器444-446进行交互。每一服务器都可以提 供当前数据,例如,可以被混合在一起的地图瓦片、照片、文本标记,以及博客。更进一步地, 每一共享组内的本地客户机还可经由本地WLAN链路彼此执行本地共享。客户机和数据服务器之间的一般数据流包括充当不同的客户机之间的通信和存储桥梁的用户数据服务器 445,例如,服务器主存每一个移动用户的当前以及历史数据。移动客户机可以周期性地或 以其他方式将其当前GPS测量结果——例如两维或三维GPS坐标和GPS时间戳以及其他位 置依存数据(如地理标志)——在随机时刻上传到服务器,该服务器随后存储这样的数据。当其他客户机对移动客户机的状态感兴趣时,那些客户机可以下载这样的信息, 适当地将它混合在一起,诸如与从其他相关数据服务器下载的匹配的公路/航空/天气/ 交通地图混合在一起。然后,适当地将混搭数据呈现在每一涉及的移动通信设备上。在一个示例实现中,应用程序使用此处所描述的共享解决方案来基于利用位置依 存性的特征和移动用户之间的社交网络连接的社交网络引导和GPS辅助协作共享方面,来 尝试促进数据在移动用户之间的有效共享。例如,地理上彼此靠近的用户(通过服务器指 导和GPS辅助)形成共享小队以协作地下载本地地图数据,聚集来自每一个客户机的运行 时数据,并将这样的数据上传到用户数据服务器。此外,如果用户对混搭来自共同的其他用 户(例如,由类似的社交关系产生的)的数据有兴趣,则他们可以共同地下载他们的数据, 这会有效地减少(相对低的带宽)用户数据服务器和在地理上共存的客户机之间相同数据 的冗余副本的传输。当“mm”链路空闲,而其他人具有下载需求时,用户还可以将WffAN链路“借”给 其他小队成员。此外,社交网络引导和GPS辅助共享方案可以经由通信和计算方面来实现, 例如,一个设备可以代表一个或多个其他设备执行计算(以及通信)。结果,此处所描述的 应用程序允许通信和计算共享两者,从而减少在每一个移动通信设备处消耗的总资源。此外,应用程序和服务可以执行数据一致性管理,以处理与移动用户相关联的快 速数据改变(例如,在GPS坐标和地图两者中)。一个示例性一致性管理方案是位置依存的, 并且是移动性自适应的,例如,随着用户或小队的移动性速度改变,数据更新频率也相应地 改变,以使得数据刷新过程自适应用户移动性。一般而言,应用程序试图以合理的低成本使 用户之间的空间、逻辑关系保持完好。为实现不同数据类型的有效的混搭服务,应用程序可以利用每一种数据类型和类 型之间的固有语义。已使用地图瓦片的内置树结构来实现地图数据在本地用户之间的有效 共享。还利用GPS位置和相关地图之间的匹配关系来实现目标地图数据在本地用户之间的 预测下载。如所理解的,应用程序和服务由此协作地传输和下载不同的数据流,并在资源受 约束的移动通信设备上保持移动用户之间的数据一致性。这样的任务可通过利用社交网络 连接、位置依存性,以及漫游用户之间的移动性感知来实现。为此,在一个示例实现中,应用程序和服务允许移动用户协作地共享共同感兴趣 的数据。在高层,用户数据服务器445经由WffAN链路,在不同的小队之间协调数据传输和 共享。更具体而言,每一小队都经由WWAN将数据记录传送到数据服务器445,诸如每隔Tl 秒周期性地,这因此将最新的数据记录记入日志。存储在服务器445上的数据记录还在小 队内的成员之间被共享。在低层,小队内的成员一般使用它们的本地WLAN链路来彼此共享数据。每当将所 感兴趣的单个数据副本被下载到小队成员时,可以发生此本地自组织(ad hoc)共享。本地 共享可被同步,以增加每一个设备处的电能节省,例如,每一个成员都在合适的时间间隔内
8唤醒其WLAN接口达一时间切片,以进行数据共享。即,在本地小队中的成员之间使周期性 的(或其他定时的)唤醒同步,且每一个设备将在其他时间期间关闭其WLAN,以保存能量。由于若干个原因,使用以上经由WffAN链路的基于服务器共享的较高层方法,而不 使用经由WLAN链路的纯粹自组织共享的选项。一个原因在于,不同小队可能不能经由相对 短程WLAN接口彼此连接。因此,经由GPRS的通信是对于此情况的唯一可行的解决方案。另 一个原因在于,在典型的现实情况下,移动通信设备上的WLAN接口可能不会始终打开。再 一个原因在于,由于数据服务器存储并聚集数据以及每个用户状态信息,因此在完全分布 式处理方法上执行某种集中式处理(例如,计算社交朋友图)以提高效率是合理的。只要有可能,就使用经由WLAN的低层自组织共享。与经由GPRS的共享相比,经由 WLAN的本地共享就每比特消耗的能量和所使用的传输时间而言更有效。另外,WLAN(通常) 是免费的,而通过GPRS的传输是昂贵的。应用程序和服务使用基于小队的共享,这种基于小队的共享为移动用户提供社 交-时空共享方案。当满足某些条件时——例如,他们有社交关系,他们在地理上相近并且 经由WLAN链路连接,且每一个用户都具有足够的资源,移动用户构成共享小队。对于资源,客户机可以接受或拒绝小队内的协作请求。资源可用性可以考虑各种 因素,包括无线连接质量——例如无线传输是否为高质量的,存储器——例如客户机设备 中的数据的存储负载,以及能量——例如客户机移动通信设备是否具有足够的剩余电池电 量。关于社交联系,应用程序和服务中的每一个小队是使用成员之间的社交联系来形 成的。可以在启动时管理成员之间的社交关系,例如,当新用户启动应用程序时,用户经由 “朋友列表”等等指定社交联系。当用户向服务器进行注册时,例如,在引导期间,这样的列 表可以记录在用户数据服务器上。因为数据服务器具有任何已注册用户的社交朋友列表, 因此,服务器可以容易地导出已注册用户的社交图等等,例如,其中,节点表示用户,而边指 示直接朋友关系或联系。给定这样的社交图,如果一个客户机与另一客户机是直接相邻的,或者可能达某 个水平的边的间接关系,例如,在社交图中与其他成员共享一共同的客户机,则该客户机有 社交关系。有社交关系的成员的概念可提供了成员之间的协作,并且倾向于降低关于共享 的潜在安全性或隐私顾虑;用户可以配置自定义成员资格,例如,通过包括或排除某些其他 用户,设置所允许的间接相邻的数个水平等等。关于GPS辅助空间共享,除社交联系之外,基于小队的共享通过GPS信息来协助。 例如,经由WLAN的同步唤醒和共享可以基于GPS,因为GPS提供用于同步小队中的客户机设 备的有效方法。更具体而言,可以将GPS时间戳用作使小队中的所有客户机同步的时间数 据,由此客户机同时唤醒它们的WLAN接口以进行共享。此外,可以利用GPS辅助来容易地确定地理接近度,即,确定每一个小队在地理上 如何分散。给定了每一个用户的位置坐标,服务器可以计算任何一对用户之间的距离。可 以将此距离与定义地理接近度的给定并且预先指定的阈值(例如,被选为WLAN通信范围或 此范围的倍数)进行比较。更进一步地,GPS信息可以提供用于进行WLAN连接性测试的快速方式,而无需实 际打开无线接口,这会节省电池电量。例如,这可以通过将间隔距离与最大通信范围进行比
9较来达成;注意,在WLAN通信范围内的两个节点可能由于干扰或差的接收等等而没有连通 性,然而,GPS数据仍可以帮助过滤掉明显不合格的设备。应用程序和服务还利用临时共享技术来提高共享效率,包括高速缓存和来自空闲 设备的帮助。高速缓存技术允许客户机利用已经下载并高速缓存在设备中的内容帮助其他 设备。客户机状态聚集也属于此类别,即,在每一个时间段内聚集每一个客户机的位置和状 态信息,并将其发送到数据服务器。为利用空闲的设备,空闲设备可能能够并愿意帮助其他设备下载某些数据内容 (例如,来自在线地图服务器的某些地图瓦片),虽然它自身不需要该内容。当其他客户机 遇到WffAN断开连接问题时,和/或当某些客户机需要为WWAN连接进行支付而另一客户机 不需要时,这可能特别有用。转向一个示例实现中的一般操作的说明,如在图5-8的流程图中一般性地表示 的,移动客户机经由WWAN(图5的步骤502),例如,在引导期间,向用户数据服务注册其社交 朋友列表。作为响应,数据服务器更新其社交图,并用其他活动社交邻居的列表连同它们的 小队ID(SquadID(小队ID))和位置来应答(图8的步骤802和804)。如经由图5的步骤504和506所表示的,移动客户机随后选择适当的SquadID来 加入,诸如在检查当前条件(包括社交联系、接近度和/或可用资源)之后——这可以是自 动的。当客户机经由常规心跳等等关于服务器进行刷新之后,客户机被视为活动的(图5, 步骤512 ;图8,步骤810);当服务器在某个数量(例如,五个)个连续时段内错失这样的更 新时,客户机是不活动的,由此可以从小队移除客户机(步骤814)。如果确定客户机相距小 队太远,则也可以从小队移除该客户机(步骤812)。在一种实现中,SquadID是每一个共享小队的服务_唯一标识符,其也可以充当本 地自组织网络的SSID。当用户诸如以规律的间隔请求其他客户机上的最新数据混搭时,应 用程序首先检查客户机的小队中的另一成员是否已经具有相同数据或已高速缓存的副本, 如通过图6的步骤602和604所表示的。注意,数据可以是从不同的副本混搭的,例如,应 用程序可以寻求数据混搭XYZ,而一个或多个其他设备可以具有X,Y和Z (或XY,XZ或YZ) 作为单独的数据,而并非混搭的;应用程序或另一设备可在适当时混搭X、Y和/或Z,以避 免下载所有这些数据集合的需要。如果所需的数据中的某些或全部在小队设备之间不可用(步骤606),则选择本地 小队中的成员(步骤608),以从服务器中检索数据(步骤610;注意,可以选择多个成员以 检索数据的多个分量部分;为了简洁起见,在此示例中,选择了一个成员)。选择可以经由 基于分布式回退(backoff)的解决方案来执行,例如,其中根据资源可用性和最近下载频 率来设置每一个客户机上的回退值。成本也可以是在确定回退值的因素,例如,免费下载具 有比付费下载更小的回退分数。在此示例中,选择具有最小回退值的成员设备,以下载数据(其可以是需要第一 位置中的数据的客户机)。其他成员中止传输,因为每一个小队都被限于一个跳跃的通信范 围。如此处所描述的,在常规唤醒时段期间,经由GPS时间戳,在客户机之间同步每一个小 队中的数据传输。一旦数据可为小队所用,请求方成员就可以将它复制到他们自己的存储 (步骤612),对它进行处理等等。对每一个小队的管理是经由周期性心跳机制来进行的,该机制在成员进入和离开小队时处理动态成员资格。更具体而言,管理是在本地小队成员之间并利用用户数据服务 器分别经由本地心跳和远程心跳来执行的。如由图5的步骤508所一般性地表示的,每一 个客户机都周期性地打开其WLAN接口,并广播本地心跳消息。周期被设置为TO (例如,在 一种实现中,每隔十秒)。每一个小队也有规律地与用户数据服务器通信远程心跳消息,例 如,一般而言,远程心跳(向数据服务器)的周期Tl被设置为TO的倍数,如一分钟,如经由 步骤510和512所表示的。还可以基于下面所描述的数据一致性管理策略来使更新周期自 适应。应用程序允许共享不同的数据类型,如文本、图像,以及照片等等,同时尝试提高 位置依存数据类型(包括GPS位置数据和对应的地图)的共享效率。为此,当适用时,使用 数据聚集,连同利用给定数据类型的固有结构/语义。关于地图语义,来自在线地图服务器的大多数地图与可以在设计时利用的结构相 对应。例如,微软 虚拟地球支持三种类型的地图,即,公路地图、航空地图和混合式地图, 以及其他特殊用途的“信息性”地图,如交通地图,天气地图等等。地图瓦片是相同大小的, 以像素计为256X256(或128x128)。取决于它们的覆盖,瓦片被组织成不同层(或层次), 且顶层具有四个瓦片;至多有十九个层。校准不同的层上的瓦片,以使得较低层上的每一个 父瓦片覆盖下一较高层上的四个子瓦片的相同区域。利用地图瓦片内容的此规则布局,虚 拟地球采用叫做Quadkey (四叉树键值)的高度规则的命名约定,其中,任何瓦片的名称都 是其本身以及其父瓦片的Quadkey值的联结,直至到达顶层。给定了位置和层参数,这样的 命名语义允许瓦片被唯一地计算。这是将位置数据和地图数据进行相关的基础。命名语义 也允许瓦片在任何特定层被组织为前缀四叉树,其中,前缀是父瓦片的名称,也是同一个父 瓦片下的四个兄弟瓦片的最长公共部分。基于用户趋向于下载任何层的地图瓦片的连续跨度,可以使用范围受约束的比特 矢量(RCBV)来有效地索引任何给定层的地图瓦片。在RCBV中,“范围”是指瓦片的命名, 而不是地理覆盖,尽管两者可以通过简单的位置到瓦片转换来彼此映射。通过使用前缀值 来表达范围约束;给定了特定层(例如,k)上的瓦片集合,通过它们的最长公共前缀P1来 描绘范围约束,且1(1 <=k)是前缀的长度,即,IP1I =1。P1应该完全具有4H个后继者 切片,其通常不是这种情况。为表示给定什么瓦片,使用比特矢量Vb来实现这一点,其中,Vb 中的每一比特都与由P1描绘的范围中的瓦片相对应。因此,Vb的长度也是4H,S卩,IVb = 圹1。比特到切片的映射是使用根在P1处的横向优先遍历来实现的。注意,相同前缀将覆盖 不同层的不同范围(即,瓦片的数量),且因此,只有在伴有层的情况下才有意义;因此,总 的RCBV结构是(层k,前缀P1, Vb )元组,且地图瓦片通过使用RCBV结构列表来表示。级 别k不是冗余的,因为使用带有更加细化的范围的一个以上的比特矢量来表示一组瓦片会 更经济,特别是当用户对地理上遥远的位置有兴趣时。RCBV瓦片表示允许有效查询。几乎完全移除了字符串匹配和瓦片枚举。所使用的 唯一字符串匹配是标识是否存在某一前缀,这通过使用散列表等等来进一步避免。对地图和GPS位置两种数据类型使用数据聚集。对于地图数据,RCBV瓦片 表示实现非常有效的聚集,例如,使用按位或(OR)运算。可以利用简单按位与(AND) 运算来满足对协作查询的响应。作为示例,假设客户机A对于某个层和前缀具有被 表示为嶒 =[1001011110010111]的瓦片,而客户机B对于同一层和前缀需要由vB =
描绘的瓦片。然后,并非比较每一个现有瓦片的名称,A简单地用以η Vi =
来进行应答。如果表示A的所需瓦片,则嶒η
=[1101011111010111]是所需瓦片的聚集。每一个用户的GPS位置坐标也将在向用户数据服务器发送之前被聚集。这是通过 在小队的所选协调器上聚集数据来执行的,且协调器将聚集GPS报告传送到服务器。可以 经由回退机制来以完全分布式方式选择协调器。另一问题是用户移动性,包括小队内的微移动性(例如,随着时间的推移,用户加 入/离开小队),以及小队之间的宏移动性(例如,漫游小队合并/拆分)。该技术的高层 的基于服务器的方面帮助分离对这些情况的管理。例如,宏移动性的影响主要在服务器处 被吸收,该服务器执行对本地客户机的共同社交邻居的事件驱动的再检查,并通知受影响 的客户机。由于用户并不是频繁地改变他们的感兴趣的社交朋友,因此,如果本地客户机旨 在完全在屏幕上显示远程小队,则宏移动性主要导致地图级别的变化。关于微移动性,可以执行基于软状态的“尽力型”小队成员资格维护,其中,不需要 获取一致的小队范围的知识(例如,拓扑和/或每一个成员的状态)。相反,每一个客户机 都根据其自己关于其直接邻居的知识作出本地共享决定。为给功率节省操作提供支持,注意,GPS接收器和WLAN接口消耗能量。客户机通 过睡眠来节省电能,然而,只有在客户机不具有挂起任务并且相信其轨迹和状态是高度可 预测的情况下它才进入睡眠模式。在进入睡眠模式之前,客户机向用户数据服务器进行注 册(图5的步骤514和516),用户数据服务器随后将此模式改变通知给相关社交朋友及其 他小队成员。在睡眠时段期间的任何状态信息都被标记为“预测”。客户机可以随机地唤醒 (步骤518,其还表示同步唤醒),并在功率节省操作期间更新服务器和/或其他小队成员。计算共享是在美国公开专利申请no. 2006/0269147中一般地描述的另一方面。一 般而言,计算共享可以使用社交网络指导和GPS辅助来完成,类似于上文所描述的通信共 享方案。计算共享可以通过共享由客户机所生成的元信息而不是直接共享经过解码的图像 来实现;如此处所描述的,这样的元信息对于多个客户机只生成一次。通过以句法兼容的方 式将元信息添加到原始JPEG文件中,计算共享就与文件相伴随。一般而言,给定256X256像素的流行大小的地图瓦片和QVGA (320 X 240像素)的 现行主流屏幕大小,客户机需要对多个瓦片进行解码,以进行全屏显示;取决于其位置,可 能需要2到6个瓦片。为防止浪费解码并改善用户体验,只解码每一相关瓦片的所需部分。这通过跳转 到压缩域中的图像的任何部分并从那里执行解码来促进。然而,由于JPEG压缩中所使用的 可变长度熵编码技术以及相邻编码块之间的DC分量的差分编码,通常,解码必须从开始进 行。示例性应用程序可替代地基于元信息内的辅助“索引”数据进行解码。在一种实现 中,这样的元信息包括块长度图(BL-map(BL图))和DC图(DCmap (DC图)),它们分别捕捉 图像中的起始位置(以比特计)和MCU(最小编码单位,其通常是8X8块)的DC值。BLmap 和DC-map(DC图)两者都是带有按与编码MCU的相同的顺序排列的元素的线性阵列。在元信息可用的情况下,可以执行按需部分解码。此方案被称为元信息辅助按需部分(MOP)解 码。为使MOP解码有效,元信息的开销对于生成时间和大小两者必须小,且数据需要 易于与其他设备共享。对于小的元信息,提供了只执行半比特流解析的快速比特流过滤过 程,即,只提取代码符号的长度(以比特计)(即,JPEG中的(run,value)((行程,值))元 组),而不是它们的具体值。自定义霍夫曼码表处理带有单个表查询的多个元组。快速过 滤过程被进一步流水线化为地图瓦片下载过程,即,并非等待整个瓦片被下载,元信息生成 是作为流中的数据包(其可以是图像的一部分)开始的。由于快速半比特流过程,元信息 生成几乎完全被下载过程隐藏,甚至在在局域网环境中使用ActiveSync (活动同步)使来 自桌面的图像同步的情况下亦是如此。使用简单固定长度差分编码方法来缩小BL-map和 DC-map的大小。为了共享,利用JPEG的句法灵活性,将元信息嵌入到一些预留的应用程序数据段 (APP)中。所产生的图像是完全兼容标准的,且原始图像比特保持完好。当与其他设备共享 图像时,计算节省与文件相伴随,且避免另外当元信息存储在单独的伴侣文件中时发生的 其他管理努力。转向数据一致性管理方面,应用程序和服务保留小队之间以及小队成员之间的空 间排序。尽管双方之间的物理距离可能不被准时地刷新以降低更新成本,但是,它们在空间 上的前/后排序关系可以被正确地保留。各种数据一致性管理情况包括小队间的排序,这是在小队突然地改变其漫游速度 并导致小队之间的相对距离和定位的改变之时的排序;小队内部的空间排序,包括当一小 队内的任何两个用户的空间排序(例如,头-尾关系)由于移动性而变化和/或给定漫游 成员的相对定位没有改变,但是由于他们的当前位置的异步更新而在数据记录中违反他们 的空间排序时。另一种情况涉及更新和查询之间的异步,即,当用户移动时,存储在服务器 中的位置记录在新查询到达时没有反映用户的实际位置。为解决在上面的情况下导致的潜在不一致性,以移动性自适应和位置感知的技术 的形式,使用小队内部和小队间级别的方法。为此,每当漫游用户检测到移动性速度的突然 且不可忽略的改变时,设备通知用户服务器。这通过图7的步骤702-704来一般性地表示 (该图还示出了任何其他这样的事件/服务器通知处理)。然后,用户服务器(经由步骤816 和818)基于一致性策略来重新计算所需更新频率,并将新的更新周期指定到相关小队。然 后,该小队根据此更新周期刷新服务器。为保持小队内的成员的位置一致性,假设一个共同朋友可能对跟踪某些成员的当 前位置感兴趣。小队内的本地协调的更新处理空间排序何时由于异步更新而被违反;为此, 在每一个更新周期期间,需要小队将包含时间、位置和速度的最新状态矢量通知给数据服 务器。小队只被允许利用单个更新消息上传一次。消息聚集每一个小队成员的状态矢量。 这会有效地消除由多个成员在每一个周期内通过多个个体更新所引起的任何不一致性问 题。为处理由于移动性而导致的空间排序改变,使用事件驱动的方法。每一个漫游小 队有规律地计算其质心的位置和速度。使用质心的矢量(即,位置和移动速度)来表示小 队的移动性模式。小队协调器使用此矢量来记录小队移动性的最近历史。当任何小队成员
13突然地改变其漫游速度超出预先指定的阈值时,设备通知其移动性速度改变。随后,协调器 使用投影法来评估不同的小队成员的相对空间排序,例如,将每一个成员的二维位置被投 射到小队矢量上。使用成员的投射值来评估他们的相对排序。每当检测到任何改变时,协 调器将更新消息发送到用户服务器,以保持成员在一个小队内的空间排序。经由移动性自适应和位置感知更新策略,处理小队间的一致性,S卩,处理多个漫游 小队之间的一致性。当小队突然地将其移动性速度(再次关于其质心定义的)改变成超出 可容忍阈值时,小队立即利用状态报告更新用户数据服务器。服务器计算新更新频率(其 最大值是其上限),并将它发送到小队。小队开始以1乘以此频率的时间间隔发送更新。当 小队至少超出与任何其他漫游小队的给定距离时,更新频率被设置为与小队移动性速度成 比例。当此小队在与另一小队相距该距离之内移动时,且由此可能产生小队间的空间排序 改变时,该小队开始关于一间隔以最大频率发送更新。为快速地捕捉两个小队之间的相对 定位改变,以最大频率刷新数据。然而,如果相对定位在该间隔内不以最大频率改变,则更 新频率被复位以再次与小队移动性成比例。这解决了两个小队合并的情况,且不会在以后 导致空间排序的任何改变。为解决更新和对于移动用户的查询之间的不一致性,注意,用户可以在不同于状 态更新时间的时间查询其他小队或他们的成员的状态。由于不同的小队之间的此类异步更 新,存储在服务器上的位置数据副本可能不反映在某一时间内漫游的当事方的当前位置。 这种类型不一致性是使用基于服务器预测的技术解决的。更具体而言,用户使用当事方的 快照数据外加估计的漫游速度来预测当事方的当前位置。快照数据反映在更新时间该方的 位置;预测值计及查询和快照之间的漫游影响。在一种实现中,以估计的漫游速度作为小队 的值,而并非个体用户的速度,因为小队速度趋向于随着时间的推移而更稳定。其他示例实现细节涉及数据结构。更具体而言,除客户机自己的状态信息(STAT) 之外,客户机还维护本地邻居列表、社交邻居列表,以及用于地图切片表示和管理的 Having (具有)队列和ToHave队列。本地邻居列表包括位于本地通信接口的范围内的其他 小队成员的列表。可以根据协作历史,例如,利用对于最近度和频率的偏好,对列表进行排 序。社交邻居列表是用户感兴趣的远程社交邻居(个体或者小队)的列表;还可以对此列 表进行排序,诸如根据本地信息交换之后本地邻居之间的共同性。Having队列和ToHave队列是RCBV数据结构的两个具体实施例。Having队列维 护已下载并被本地高速缓存的地图瓦片的索引。ToHave队列保留将下载的那些地图瓦片的 索弓丨。在它们的RCBV表示中,比特矢量中的“1”比特指示对应的瓦片是可用并是所需的。 为了有效(范围)查询应答,使用用于前缀匹配的散列表查找,其与范围受约束的比特矢量 一起,避免了字符串匹配,并确保决定速度。在一种实现中,为了空间效率和简洁性,使用固定长度编码来有区别地编码 BL-map的元素。使用k比特无符号整数(由于连续MCU的起始位置的单调性),以取得更 好的空间效率,其中,k是使用下列经验公式确定的。
,Γ,,文件大小X (网格大小)、1 h 10§2( _ 面积 ^)其中,文件大小是以比特计的瓦片文件大小,而网格大小和面积以像素计的。
值k使用块长度图段之前的一个字节来表示。逃逸(escape)编码技术处理业以 上比特长的例外MCU。类似地但是使用固定6比特带符号整数处理DC值。元信息被存储在 JPEG格式的预留应用程序数据段(APP)字段中。当可以使用任何APP段时,在一种实现中 选择APP3。DC-map数据和BL-map数据的“DCMD”和“BLMD”的ASCII码分别被用于应用程 序以标识图,且还使此设计免除可能偶然使用APP3标记段来实现其他目的的其它应用程 序。还要注意,在BL-map的APP3标记段中的“每BL符号比特数”字段中携带了固定码长 度ko尽管本发明可以具有各种修改和备选的结构,但是,在图形中示出了并在上文详 细描述了某些示出实施例。然而,应了解,不打算将本发明只限于所公开的特定形式,相反 地,可以涵盖本发明的精神和范围内的所有修改、替换性结构,以及等效内容。
权利要求
1.在一计算环境中,一种方法包括加入客户机设备的小队中,所述客户机设备各自能够通过WLAN连接彼此进行通信;从所述小队中的至少一个其他客户机设备获得用于用作混搭信息的数据,所述数据是 基于服务从另一小队接收到的信息从所述服务获得的。
2.如权利要求1所述的方法,其特征在于,获得所述数据包括经由所述WLAN连接与所 述小队中的客户机设备进行通信,其中,所述数据是由所述客户机设备先前通过WWAN连接 从所述服务获得的。
3.如权利要求1所述的方法,其特征在于,获得所述数据包括接收位置数据和地图数 据,并且还包括将所述位置数据和地图数据组合成所述混搭信息。
4.如权利要求3所述的方法,其特征在于,还包括维护范围受约束的比特矢量数据,以 将所述位置数据和所述地图数据进行关联。
5.如权利要求1所述的方法,其特征在于,获得所述数据包括接收文件内容。
6.如权利要求1所述的方法,其特征在于,还包括将心跳信息传递到所述小队,并将心 跳信息传递到所述服务。
7.如权利要求1所述的方法,其特征在于,还包括选择所述小队的成员来与所述服务 进行通信。
8.如权利要求1所述的方法,其特征在于,还包括临时关闭所述WLAN连接,以进入小队 内部通信之间的睡眠模式。
9.如权利要求8所述的方法,其特征在于,还包括,使用从所述小队接收到的位置数据 来将所述睡眠模式与所述小队的至少一个其他设备同步。
10.如权利要求1所述的方法,其特征在于,还包括将与检测到的移动性的改变相对应 的信息报告给所述服务。
11.如权利要求1所述的方法,其特征在于,还包括数学地组合所述小队的所述客户机 中的至少一些的位置数据,并将所述小队的组合位置数据报告给所述服务。
12.如权利要求11所述的方法,其特征在于,还包括从所述服务接收更新频率,并使用 所述更新频率来将所述小队的所述组合位置数据提供到所述服务。
13.在具有耦合到服务的客户机的计算环境中,一系统包括作为客户机设备的本地小 队的成员的客户机设备,所述客户机设备包括混搭引擎,所述混搭引擎组合来自不同源的 数据以提供输出,包括经由与所述本地小队另一成员的WLAN通信接收到的一组数据,其中 所述成员经由至服务的WWAN连接从另一小队接收该数据集的至少一部分。
14.如权利要求13所述的系统,其特征在于,所述WLAN连接包括Wi-Fi或蓝牙 连接。
15.如权利要求13所述的系统,其特征在于,所述客户机设备还包括通信管理器,所述 通信管理器经由所述WLAN处理本地通信并经由所述WffAN来处理远程通信,包括管理传入 和传出数据队列。
16.如权利要求13所述的系统,其特征在于,所述客户机设备还包括耦合到所述混搭 引擎的位置管理器,用以处理位置数据,包括所述设备和所述小队中的至少一个其他客户 机设备的数据。
17.具有计算机可执行指令的一个或多个计算机可读介质,所述计算机可执行指令在 被执行时执行包括以下各项的步骤维护表示客户机的小队的信息,所述小队包括第一小队和第二小队;接收所述第一小队的成员藉由其能跟踪所述第二小队的至少一个成员的移动的数据;以及响应于所述第一小队的所述成员,提供所述数据。
18.如权利要求17所述的一个或多个计算机可读介质,其特征在于,具有包括下列各 项的进一步的计算机可执行指令a)接收表示所述第一小队中的移动性改变的信息,并且作为响应,确定更新频率并将 所述更新频率提供给所述第一小队的成员;b)从所述第一小队接收包括聚集每个小队成员的当前位置的状态矢量的更新消息,并 维护所述更新;c)接收与所述小队的移动性模式相对应的数据,并使用所述数据来预测所述小队的当 前位置;或者d)a)、b)和c)的任何组合。
19.如权利要求17所述的一个或多个计算机可读介质,其特征在于,具有包括下列各 项的进一步的计算机可执行指令检测是否存在与所述第一小队的成员相对应的心跳,并 且如果不存在,则改变数据以从所述第一小队移除所述成员。
20.如权利要求17所述的一个或多个计算机可读介质,其特征在于,具有包括下列各 项的进一步的计算机可执行指令接收表示相对于小队的客户机位置的信息,基于所述客 户机位置计算相对于所述小队的距离,且当所述距离超过阈值距离时,从所述小队移除作 为成员的所述客户机。
全文摘要
描述了诸如实现为为移动设备用户设计的社交网络群件应用程序的技术,该技术为各种数据类型提供数据混搭服务,包括位置依存和移动性感知数据,诸如GPS位置和周围地图。移动用户可以在运行时跟踪漫游朋友的位置和地图。为此,一个客户机设备加入客户机设备的小队,这些客户机设备各自能通过无线局域网(WLAN)连接彼此进行通信。当处在小队中时,客户机可以通过WLAN连接(小队间的)从小队中的其他客户机设备获得用于用作混搭信息的数据。这可包括小队内部的数据,该小队内部的数据是基于服务从另一小队接收到的信息(例如,通过WWAN连接)从该服务中获得的。
文档编号H04W4/02GK102124762SQ200980132526
公开日2011年7月13日 申请日期2009年6月16日 优先权日2008年6月16日
发明者G·沈, S·陆, Y·张 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1