用于移动客户端设备的发现和数据传输的云支持的制作方法

文档序号:11519838阅读:392来源:国知局
用于移动客户端设备的发现和数据传输的云支持的制造方法与工艺

相关申请的交叉引用

本申请要求提交于2015年10月23日、名称为“cloudsupportfordiscoveryanddatatransferformobileclientdevices”的美国非临时申请号14/921,511(代理人案卷号090911-p25331us1-0941834)的优先权,其要求提交于2015年3月6日、名称为“cloudsupportfordiscoveryanddatatransferformobileclientdevices”的美国临时申请号62/129,643(代理人案卷号90911-p25331usp1-924752)的优先权。该两个专利申请的相应公开全文以引用方式并入本文用以所有目的。

本专利申请与以下共同拥有的美国专利申请相关:提交于2014年9月26日、名称为“networkbandwidthsharingformobiledevices”的美国临时专利申请号62/056,297(代理人案卷号90911-p21146usp1-912512)、提交于2015年3月6日、名称为“determiningwhentoestablishconnectionbetweenmobileclientandproxydevices”的美国临时专利申请号62/129,476(代理人案卷号90911-p25327usp1-924749)和提交于2015年3月6日、名称为“determiningroutingofproxytrafficbetweenmobileclientandproxydevices”的美国临时专利申请号62/129,492(代理人案卷号90911-p25329usp1-924750),全文以引用方式并入本文中用以所有目的。

实施方案整体涉及管理设备之间的代理网络连接。



背景技术:

随着越来越多不同类型网络设备出现,用户现在可能同时利用若干种计算设备,包括台式计算机、膝上型计算机、移动电话、平板电脑、网络可穿戴设备、网络家电和其他网络设备。具体地,较小移动设备可能没有用于与许多现有无线网络基础结构的网络连接的电力资源或硬件资源。另外,由它们的本质所致,可穿戴设备在由活动的用户穿戴时通常是移动的。在此类环境中管理通信是越来越复杂的任务。



技术实现要素:

提供了用于通过代理设备在广域网和移动客户端设备之间优化数据传输的系统、方法和计算机可读介质。在一些实施方案中,移动客户端设备可具有有限的无线网络能力,诸如智能手表等,而代理设备可具有广域网(例如,互联网)接入。在一些实施方案中,代理设备可确定在服务器处数据是否针对客户端设备可用,并且基于数据是否可用确定是否与客户端设备连接。这样,可避免不必要的连接。

根据一些实施方案,主机设备可包括用于通信的至少一个无线接口、存储器和耦接至存储器和无线接口的处理器。主机设备可从客户端设备接收宣告消息,该宣告消息包括与客户端设备相关联的唯一标识符和对从基于云端的服务传送数据的请求。响应于接收到宣告消息,主机设备继而可将唯一标识符发送至基于云端的服务。主机设备可从基于云端的服务接收与客户端设备相关联的可用数据的代理指示。

响应于接收到可用数据的代理指示,主机设备可经由无线接口将包括可用数据的客户端指示的连接请求从基于云端的服务提供至客户端设备。在接收到对连接请求的响应之后,主机设备可与客户端设备建立连接,并经由无线接口将可用数据发送至客户端设备。

根据其他实施方案,客户端设备能够经由与互联网接入的连接实现到主机设备的互联网接入。客户端设备可响应于接收到指示要执行尝试连接到主机设备的触发信号来识别客户端设备所需的连接类型。例如,客户端设备可识别需要下行链路连接来检查来自基于云端的服务的下行链路可用数据。可用数据可包括消息、邮件提醒和排队等待传送至客户端设备的其他数据。可用数据可在基于云端的服务排队并与客户端设备相关联。客户端设备还可生成宣告消息以请求到主机设备的连接。宣告消息可通过对与主机设备无线连接的请求提供给主机设备。宣告消息可包括对所请求连接类型的指示和与客户端设备相关联的唯一标识符。客户端设备可从主机设备接收指示存在能够从互联网获得的可传送至客户端设备的数据的连接请求。

其他实施方案涉及与本文所述的方法相关联的系统、便携式消费设备以及计算机可读介质。

通过参考以下具体实施方式和附图,可更好地理解本公开的实施方案的实质和优点。

附图说明

图1为示出主要数据源、主机设备和客户端设备之间通信的系统的示例框图。

图2为示出在各种位置处的主机设备和客户端设备的示例框图。

图3和4为示出用于在基于云端的服务和客户端设备之间经由主机设备传输数据的通信的实施方案的示例框图。

图5为利用代理设备建立代理连接用以在基于云端的服务和客户端设备之间传送数据的示例方法的流程图。

图6为利用客户端设备在请求到网络的连接的宣告消息内指示唯一标识符和所请求的连接类型的示例方法的流程图。

图7为示出主机设备和客户端设备之间通信的实施方案的示例框图。

图8为示出客户端设备的附加特征的示例框图。

图9为示出代理设备的附加特征的示例框图。

图10为示出客户端设备和代理设备以及设备之间网络连接的另外的实施方案的示例框图。

图11为示出可为主机设备、客户端设备或服务器的设备的示例框图。

具体实施方式

本文所述实施方案涉及使用主机设备(例如,智能电话)来向具有有限wan连接或没有wan连接的电子设备(诸如智能手表和音乐播放器)提供广域网(wan)服务(例如,蜂窝数据服务)。连接过程可包括确定是否存在有待从wan传输到小型电子设备的数据(例如,下行链路数据)、如何提供数据以及主机设备用于创建连接的通信。此类确定可降低主机设备的功率消耗并减少用户失败。

某些类型的电子设备通常不具有蜂窝数据服务或在用户移动位置时有效或无缝操作的其他wan服务。在许多情况下,这是由于对此类设备的尺寸和/或电力限制所致。用于此类服务的天线比用于由wifi、bluetoothtm(bt)或其他此类短程通信系统所提供的局域网(lan)或近场通信连接的天线大。wan网络芯片集和wan服务提供商的附加成本和尺寸还可能阻止在一些电子设备中包括这一功能。实施方案可利用连接性有限的电子设备的lan功能来允许通过主机设备与wan接入通信,而非将此类功能与某些类型的电子设备(如小型设备)相结合。

包括wan功能的主机设备和包括lan功能的客户端设备均可被配置为识别所请求网络连接的类型(例如,上行链路或下行链路)和请求网络连接的客户端设备的唯一客户端标识符(客户端id)。例如,客户端设备可被配置为在发送给主机设备的连接宣告(也称为“宣告消息”或“连接请求”)中包括其唯一的客户端id。连接宣告可指示出客户端正在检查能够从wan获得的数据(例如,下行链路数据)。响应于接收到此类连接宣告,主机设备可向wan发送对下行链路数据的查询或请求,其中查询包括客户端id。wan可向主机设备发送指示存在对客户端设备可用的数据的响应。主机设备继而可向客户端设备发送连接请求并与客户端设备建立连接使得可用数据可被传输至客户端设备。在wan处没有针对客户端的未决可用数据的情况下,通过避免客户端设备和主机设备之间不必要的连接和通信,当存在需从wan下载的可用数据时建立此类连接可降低主机设备的功率消耗。

一些实施方案通过将主机设备用作代理以确定wan处是否存在可用的下行链路数据来优化从基于云端的服务到客户端设备传输数据。例如,某些实施方案将主机用作代理以在完成连接过程之前检查用于客户端的可用数据,而非通过主机在客户端设备和wan之间建立端到端连接,随后检查是否存在在wan处排队等待以传送到客户端设备的可用数据。这样,一些实施方案避免了响应于接收到来自客户端的宣告消息以弄清服务器处没有用于客户端的可用数据,而在wan服务器和客户端设备之间建立端到端连接所涉及到的效率低下。示例性实施方案可使用客户端设备的宣告消息中所包含的唯一的客户端标识符来查询wan服务器并且在建立用于将可用数据传输到客户端的数据连接之前确定是否存在有待从服务器传输到客户端的可用数据。

因此,基于确定在wan处存在待传输至客户端的可用数据,主机设备可通过主机在客户端和wan之间建立数据连接。

i.利用代理的设备

客户端设备指的是接收由主机设备所共享网络带宽的益处的设备。此类设备的实施例包括智能手表、音乐播放器如ipodtm设备、仅支持lan的健康监测器和具有lan功能的其他此类设备。

主机设备、代理设备或数据提供方均指的是可被配置为向可与主机设备的用户不相关联的客户端设备提供网络接入的、具有wan和lan功能的任何设备。智能电话为此类主机设备的一个实施例。具有wan和lan功能的具有移动接入点(ap)、膝上型计算机或其他此类设备也可用作主机设备。

在一些实施例中,用户可利用至少两个电子设备。该两个电子设备中的一个电子设备可为客户端设备,而另一个可为如上定义的主机设备。例如,用户可使用可穿戴设备和智能电话或其他能够访问wan的设备。在用户的智能电话可经常充当用于客户端设备的主机设备来访问wan内容的情况下,可能存在用户仅与客户端设备交互和/或不在主机设备范围内的情况。在这种情况下,客户端设备可尝试通过例如其他用户的一个或多个其他主机设备来访问wan内容。一个这种实施例可包括当用户正在运动时。在这种情况下,由于可穿戴设备尺寸较小,用户可选择与之交互,并且可选择将主机设备放下。这样,如果客户端设备可通过另一主机设备访问wan内容,则可能不必依赖于用户的主机设备。其他实施例可包括如下情况,其中用户主机设备的电池性能下降或至少降至经由用户主机设备接入wan不可行的程度。在客户端设备的用户依赖于另一用户主机设备的这些实施例中,用户可能想使由通过主机设备访问wan内容所导致的功率消耗降至最低。例如,客户端设备的用户可能希望避免通过主机设备的应用处理器访问wan内容,以便减少主机设备处的电池使用量。

a.系统

图1示出了可实现代理网络连接管理以向没有wan功能的移动的客户端设备提供网络接入的系统100。图1包括主要数据源110、两个主机设备120和三个客户端设备130。主要数据源110可为连接至如互联网之类wan的任何数据源。此类主要数据源可包括蜂窝电话发射塔、卫星、具有网络功能的高空气球和其他此类网络基础结构。主要数据源110经由wan连接与每个主机设备120直接进行通信,如经由无线长期演进(lte)蜂窝通信。

如果主机设备120被配置为与客户端设备130共享网络资源,则主机设备120和客户端设备130将经由无线lan(wlan)连接诸如wifi或bt进行通信。在不同的实施方案中,wlan连接可由主机设备120或客户端设备130任一方发起。在某些实施方案中,客户端设备130可向主机设备120(也称“代理设备”)发送请求wlan连接的宣告消息,并且主机设备可基于确定wlan处存在针对客户端未决的可用数据来建立wlan连接。在一些实施方案中,利用已建立连接的数据传输可由主机响应于接收到来自wlan的可用数据而发起。例如,主机设备可接收来自wlan的可用数据作为对可用数据查询的响应的一部分。在某些实施方案中,利用已建立连接的数据传输可由主机响应于接收到来自wlan的可用数据和来自客户端设备的第二连接宣告而发起。例如,主机设备可接收来自wlan的可用数据,然后在接收到来自客户端的第二连接宣告之后发送数据。

b.设备的接近

图2为示出在各种位置处的主机设备和客户端设备的示例框图。图2类似地示出了主要数据源210以及多个主机设备220和客户端设备230,其中水平轴线表示距离。每个主机设备220用表示wlan通信的有效通信距离的服务弧示出。在许多环境中,设备将在平地上,因此基本上在围绕主机设备220的圆圈内提供服务,但在建筑物内部或在其他环境中,也可由主机设备220将数据共享给高于或低于共享主机设备220的客户端设备230。如图2所示出的,利用足够数量和密度的适当主机设备220,可将定期服务、近似连续的甚至连续的服务提供给客户端设备230,即便在客户端设备230移入移出连接的主机设备220范围的情况下亦如此。在一些情况下,客户端设备230和主机设备220可朝向彼此或远离彼此移动。在一些具体实施中,此类设备可能并非建立lan连接的好的选择,尤其是在更适合的主机可用的情况下。具有wlan接入的主机设备220能够连接至具有有限的无线网络能力的客户端设备230以向客户端设备230提供wlan接入。这样,主机设备220可充当代理设备。

ii.设备之间的通信

网络连接管理可在不必于主机设备上明确设置另一设备的情况下完成。通常,我们需要允许在用户界面上明确连接并指定特定设备来获得网络接入。在一些实施例中,用户可仅指定一些通用参数,而不必逐个设备地允许接入。由于充当主机设备可导致代理设备上的电池耗竭,并且可利用来自代理设备的用户(其可不同于客户端设备的用户)的蜂窝数据计划的数据,因此每个代理设备可决定是否自愿充当主机。另外,一旦可能的主机自愿,则每个客户端设备可决定是否接受代理连接。该部分描述了根据本文所述实施方案可用于促成网络连接管理(即,这些决策)并优化网络和客户端设备之间数据传输的设备间通信。

图3为根据各种实施方案的经由主机设备在基于云端的服务和客户端设备之间传输数据的设备之间通信的框图。图3和其他附图仅为本文所公开实施方案或具体实施的示例,或者本文所公开实施方案或具体实施的某些方面的示例,并且不应限制根据权利要求所述任何实施方案的范围。通过本公开和本文给出教导内容,本领域的普通技术人员可认识到对附图中所示这些实施方案或具体实施的其他变型、修改和/或替代方案。图3为可利用代理设备来向客户端设备提供数据的系统300的一个实施例。系统300中的设备可包括硬件和/或软件元件。

a.连接宣告

图3示出了客户端设备302、代理设备304和代理设备304可连接到的云服务303之间的通信。尽管图3中示出单个客户端设备302和代理设备304,但系统300的通信可用于具有多个客户端设备和代理的环境中。客户端设备302可经由代理设备304发送连接宣告306以周期性地检查排队用于客户端的下行链路数据。

在一个方面,客户端设备302可通过提供连接宣告306来请求来自代理设备304的wan下行链路连接。例如,客户端设备302可发送具有与客户端设备302相关联的标识符(id)的连接宣告306。id(也称为“客户端id”或“客户端标识符”)可唯一地识别客户端。id可为主机设备302的标识符(例如,唯一的设备标识符(id)等)。连接宣告306可包括用于检查在云服务303处可获得的下行链路数据的请求。在客户端设备302请求网络连接时(例如,在被穿戴在健身或以其他方式移动的用户身上时),用户的客户端设备302可在移动中。同样地,客户端设备302可周期性地发出连接请求(例如,周期性的连接宣告306),因为在客户端设备302在与之形成连接的主机设备范围内的情况下,任何当前连接可仅为临时的。特别由于代理设备也可在移动中,因此对于客户端设备来说,与代理的连接可能是短暂的。

一般来讲,连接宣告306可为针对连接的任何类型的请求,并且无法针对任何特定代理设备304。连接宣告306可包括所请求的连接类型(例如,下行链路或上行链路)、客户端id、有效载荷和/或请求的优先级别。所请求的连接类型可识别客户端设备302是否具有通过云服务303(例如,经由上行链路连接)待上载至服务器的数据或客户端设备302是否正检查通过云服务303(例如,经由下行链路连接)从服务器待下载的数据。即,从客户端设备302发送的连接宣告306可为对连接至云服务303的请求,该请求包括客户端id和所请求连接类型(例如,上行链路或下行链路)的指示。例如,连接宣告306可为根据发送给代理设备304的要求对上行链路数据的宣告。另外,例如,连接宣告306可为针对下行链路数据的宣告(例如,代理设备检查下行链路数据的请求)。在客户端设备302具有待上载数据的情况下,有效载荷可包括该数据;然而,在一些实施例中,在存在待下载数据的情况下,连接宣告306将不包括有效载荷中的数据。

连接宣告306可通过触发事件来提示,诸如指示客户端设备302可连接至互联网或其他wan的周期性或上下文信号,或者连接宣告可通过与主机设备的先前连接已终止(例如由于距离间隔)的指示发信号通知。周期性或上下文信号可源自客户端设备302。例如,客户端设备302可被配置为周期性地(例如,每分钟、每小时等)请求wan连接以检查待下载的数据或上载客户端设备302采集(例如,由传感器)或接收(例如,从用户)的数据。另外,触发事件可发生在用户请求来自互联网的数据或提供需经由客户端设备302备份的数据的情况下。如上所述,触发事件可发生在客户端设备302识别出其不再连接至先前连接的代理设备304的情况下。在图3的实施例中,响应于此类触发事件所发送的连接宣告306包括与客户端设备302相关联的客户端id。客户端id可用于唯一地识别客户端设备302。

b.代理将宣告的客户端报告给云端

在接收到带有客户端id的连接宣告306时,代理设备304可向基于云端的服务报告客户端id以确定是否存在对客户端设备302可用的云数据。如图3所示,代理设备304可报告客户端设备302的、针对下行链路数据向云服务303宣告的客户端id,云服务303可托管基于云端的服务。代理设备304可通过发送查询307来向基于云端的服务报告客户端id。查询307可指示客户端设备302正在针对下行链路数据进行宣告,其中查询307包括与客户端设备302相关联的客户端id。在一些实施方案中,单个查询307可包括对应于针对下行链路数据进行宣告的客户端设备的多个客户端标识符(id)。

在利用查询307将客户端id报告给基于云端的服务之后,代理设备304可接收来自云服务303的响应308,该响应包括该云服务303针对其具有未决下行链路数据的客户端设备的一个或多个id。即,代理设备304可查询云服务303以找到针对一个或多个客户端设备(每个具有不同客户端id)的可用数据。例如,代理设备的用户304可在人群中,其中有许多针对数据提出请求的客户端设备。代理设备304可接收来自云服务303的一个或多个响应,包括数据可用的指示。在一些实施方案中,响应308可包括待传送至客户端设备302的实际数据。

c.代理给予

响应于接收到来自云服务303的可用数据的指示,代理设备304可向客户端302发送连接请求310(即代理给予)。即,在能够从云服务303获得用于客户端设备的数据的情况下,代理设备304可用连接请求310对客户端的连接宣告306进行响应。代理设备304可已从云服务303经由响应308接收此类可用数据。数据可包括一个或多个消息、电子邮件提醒和/或由代理设备304利用下行链路路径排队传送至客户端设备302的其他数据。在一些实施方案中,只可在接收到响应308之后发送连接请求310,该响应指示云服务303处存在排队等待传送至客户端设备302的可用数据。在某些实施方案中,只可在代理设备304接收到来自云服务303的可用数据之后发送连接请求310至客户端302。

iii.向客户端设备提供云数据

在客户端设备和云服务器之间建立完整的端到端连接需要时间,并且在服务器没有排队等待传送至客户端的数据的情况下可能是不必要的。例如,在主机设备没有首先检查数据队列(可能为空)的情况下建立端到端连接可能不必要地消耗主机设备和客户端设备两者的电池。主机设备可包括处理器,诸如应用处理器。使用处理器来建立与客户端设备的连接可能增加主机设备的功率消耗。当主机设备为不在充电状态的移动设备的情况下,这种功率消耗可能导致电池耗尽。

实施方案可使主机设备上由建立与客户端设备的通信连接引起的功率消耗降至最低(或减小)。这可通过基于下行链路数据是否可用(例如,仅在主机设备确定存在用于客户端设备的可用下行链路数据的情况下)来建立与客户端设备的下行链路连接而实现。在没有针对客户端未决的可用数据的情况下,此类实施方案可通过避免建立与客户端设备的连接来避免不必要地消耗主机设备的电池。这在客户端设备的用户不同于与主机设备(即,代理设备)相关联的第二用户的情况下可能特别有益。

图3和图4示出了通过消除建立多个连接的需要以便从云服务到客户端设备传输数据来提高向客户端设备提供云数据的效率的通信。图3和图4示出了分别由系统300和400使用以促成已排队数据经由主机设备在云服务和客户端设备之间的高效传输的设备间通信的实施例。例如,如图3所示,可利用本文所述实施方案来优化和管理云服务303和客户端设备302之间的数据传输。某些实施方案可仅在存在用于客户端设备302的可用数据的情况下在代理设备304和客户端设备302之间建立连接,这样可降低代理设备304的功率消耗。

一旦代理设备304决定建立代理连接以便向客户端设备302提供云数据,该两个设备就尽快并尽可能高效地尝试下载可用云数据。这是因为有时在下载完成之前存在连接将终止(结束或被中断)的可能性,因为两个设备可能正在移动并且可能并不共同移动。例如,客户端设备302和代理设备304可以是与两个不同用户相关联的移动设备。

因此,两个设备可能正在移动并且可能并不共同移动。云服务303可托管基于云端的服务,该服务被配置为存储待传送至客户端设备302的数据并使其排队。在客户端和代理彼此靠近的情况下,可利用宣告306来发起对建立连接的尝试。然而,可以不发送连接请求310,除非来自云服务303的响应308指示存在用于客户端设备302的可用数据。这就避免了在没有需从云服务303传输至客户端设备302的可用数据的情况下不必要地发送连接请求310。系统300可用于避免在代理304和客户端302之间发起数据传输313,除非可用数据已从云服务303传输至代理304。例如,可用数据的代理指示可与响应308一同发送。在一些实施方案中,响应308可具有包括可用数据的有效载荷。在另选的实施方案中,在响应308与可用数据的代理指示一同接收之后,可在云服务303和代理设备304之间进行数据传输312以将可用数据从云服务303下载到代理设备304。

直到可用数据已被下载到代理设备304,才可将连接请求310发送至客户端设备302。这样,直到代理设备304已接收到可用数据,系统300才在代理设备304和客户端设备302之间发起数据传输313。这就消除了在与拥有用于客户端设备302的可用下行链路数据的代理建立连接之前需要客户端设备302尝试连接至不同代理以及与这些代理建立虚耗的连接中固有的低效。类似地,通过仅在使用查询307和响应308来确定存在可用数据之后发送连接请求310,系统300避免使用网络带宽和电池资源建立不需要的连接。

a.代理接收来自客户端设备的请求

代理设备可接收来自客户端设备的请求,其中请求为指示出客户端正检查下行链路数据的宣告消息。代理设备,诸如图3的代理设备304,可被配置为托管针对客户端设备302的wan接入(例如,互联网)。客户端设备302可提供从代理设备304请求此类wan接入的连接宣告306。来自客户端设备302的宣告306可包括所请求连接类型(例如,下行链路)和客户端id的指示。连接宣告306可为代理设备304检查云服务303处针对客户端未决的可用下行链路数据的请求。

图3示出了用于接收对来自客户端设备302的数据的请求,然后在云服务303和客户端设备302之间经由代理设备304传输所请求数据的通信。如上所述,代理设备304可接收具有唯一地识别客户端设备302的客户端id的连接宣告306。连接宣告306为从客户端302发送至代理304的对可用下行链路数据的请求。连接宣告306可包括指示客户端设备302检查下行链路数据的有效载荷和与客户端设备302相关联的唯一id。

图4示出了系统400中的客户端设备402可如何将第一连接宣告406发送至代理设备404的实施例。连接宣告406可指示客户端设备402正检查下行链路数据。在系统400中,该初始连接宣告406包括客户端设备402的id以及用于检查能够云服务403处获得的下行链路数据的请求。id可为客户端设备402的唯一设备id。

b.代理查询云端

代理设备可查询基于云端的服务以确定是否存在针对特定客户端设备的任何可用数据。基于云端的服务可存储数据并使其排队以便传送至多个客户端设备。经排队数据可为需传送至特别标识的客户端设备的未决数据。例如,经排队数据可包括待传输至特定客户端设备的一个或多个消息和警示,其中客户端设备由客户端id来识别。在图3的实施例中,代理设备304可发送客户端设备302的、针对下行链路数据向云服务303进行宣告的客户端id。客户端id可在查询307中发送,该查询向云服务303报告客户端设备302的客户端id。即,查询307可为消息查询云服务303用以确定wan是否具有针对客户端设备302的任何可用数据。在图3的实施例中,代理设备304可基于对查询307的响应308确定云服务303处是否存在排队的可用数据用以传送至客户端设备302。例如,该确定可基于响应308中从云服务303返回的客户端的id。在一些实施方案中,响应308可包括具有可用数据的有效载荷。在另选的实施方案中,在将响应308发送至代理设备304之后,执行数据传输312以下载来自云服务303的可用数据。

如图4所示,查询407可从代理设备404发送至云服务403,其中查询407包括客户端设备402的唯一id。在该实施例中,客户端设备402发起检查云服务403处可用数据的请求,并且该检查由代理设备404来执行。通过发送查询407,代理设备404将客户端设备402的客户端id报告给云服务403并指示出客户端设备402正针对下行链路数据进行宣告。下行链路数据可为对客户端设备402可用的数据(即,可用数据)。可用数据可存储在云服务403处的高速缓存、存储器或表中。例如,可用数据可存储在云服务403中。可用数据可与由相应的客户端id所识别的一个或多个目标客户端设备相关联。可用数据可被标识为排队等待传送直到该数据从由云服务403托管的基于云端的服务传输至代理设备404。

c.代理接收数据

代理设备可从基于云端的服务接收可用数据。在某些实施方案中,可用数据可临时存储在代理处直到该数据传输到请求的客户端设备。例如,代理设备304可从云服务303接收响应308的有效载荷中的可用数据并将该可用数据其临时存储在本地高速缓存中。相反地,响应308可通知代理设备304客户端设备302(由代理id识别)具有待传输的未决下行链路数据,但不包括可用数据本身。即,响应308可包括针对一个或多个客户端id的可用数据的代理指示,但不包括具有可用数据的有效载荷。在响应308不包括具有可用数据的有效载荷时,随后可通过执行数据传输312将数据随后从云服务303下载到代理设备304。在建立客户端设备302和代理设备304之间的连接以便也可执行数据传输313之后,可执行数据传输312以将可用数据传送至代理设备304。在数据传输312完成时(或与数据传输312一起),可执行数据传输313以将可用数据从代理304传输到客户端设备302。在经由代理设备304建立云服务303和客户端设备302之间端到端连接之后,可同时执行数据传输312和313。这样,可用数据可从云服务303下载到客户端设备302,而不将存储数据存储在代理设备304。

在某些实施方案中,一旦在代理设备304处接收,可用数据可临时地本地存储在代理以便后续传送至客户端设备302。在一个实施方案中,数据可存储在代理设备304的存储器或计算机可读介质中。例如,数据可存储在内存中的表中,包括客户端id和待传输的可用数据。在图3所示示例性实施方案中,在从云服务303接收到针对客户端302的下行链路数据时,代理设备304可将连接请求310发送至该客户端。如果代理设备304无法与客户端设备302建立连接(例如,未接收到对连接请求310的响应),则存储在代理设备304的可用数据可被删除。

在图4所示实施方案中,来自宣告的客户端设备402的连接宣告406包括可由代理设备404云服务403用于唯一地识别该客户端设备的客户端id。这样,当可能的代理设备404接收到来自客户端设备402的初始连接宣告406的情况下,代理可使用查询407来将客户端id传送至连接至云服务403的与向该客户端设备提供数据相关联的服务器。如果服务器确定客户端设备402具有对此进行等待的可用数据,则该服务器可发送响应408以将代理应对客户端设备402进行响应的、可用数据的代理指示提供回代理设备404。

在一些实施方案中,响应408可指示可用数据的一个或多个属性。例如,可用数据的属性包括可用数据的优先级、可用数据的数量(例如,数据的大小)和/或可用数据的类型或类别。然后,在图4所示实施例中,当从该客户端设备402接收到后续连接宣告409时,代理设备404可利用自愿作为代理的连接请求410进行响应。该后续连接宣告409可在针对初始连接宣告406的响应窗口已到期的情况下使用。在这种情况下,代理设备404可等待后续宣告409并利用指示存在可用数据的连接请求410对该宣告409进行响应。例如,在用于回复初始连接宣告406的时间帧或窗口在接收到响应408之前终止的情况下,代理设备404可在发送连接请求410之前等待后续宣告409。在某些实施方案中,可用数据的一个或多个属性可在发送给客户端设备402的连接请求410中有所指示。根据这些实施方案,客户端设备402可仅在响应于确定所指示属性对应于客户端设备402期望的数据属性的情况下接受连接请求410。例如,客户端设备402可仅在可用数据的优先级别超过优先级阈值的情况下对连接请求410进行响应。类似地,客户端设备402可仅在连接请求中所指示的可用数据的数据类型(或类别)对应于客户端设备402所期望的数据类型(或类别)的情况下对连接请求410进行响应。另外,例如,客户端设备402可仅在连接请求中所指示的可用数据的大小落在期望大小范围内的情况下接受连接请求410。

根据某些实施方案,由于代理设备404的属性和/或客户端设备402的属性,查询407(或连接请求410)可不被发送。例如,如果确定代理设备404和客户端设备402在不同方向上移动,代理设备404可不向客户端设备402发送连接请求410。类似地,查询407可基于确定代理设备404不大可能与客户端设备402建立连接(例如,由于设备在不同方向上移动,与来自客户端设备402的宣告相关联的量度,或其他标准)而不被发送至云服务403。参考图8和图9更详细地提供了此类标准和量度的实施例。代理设备404可在不同时刻发送连接请求410并利用不同标准。例如,可在接收到来自客户端设备402的后续宣告409的情况下发送连接请求410。在到接收到来自基于云端的服务403的响应408时客户端设备402已移动到代理设备404范围之外的情况下,此类通信可为有用的。

在将连接请求和数据周期性地发送到客户端设备402之前,代理设备404可存储可用数据并对其进行排队。客户端设备402可周期性地发出数据请求(例如,周期性的连接宣告406和409),因为在客户端设备402在与之形成连接的主机设备范围内的情况下,任何当前连接可仅为临时的。图4所示后续的宣告消息409为周期性数据请求的实施例。后续宣告消息409为在初始连接宣告406作为用于检查下行链路数据的请求已发送之后而发送的对可用数据的请求。在几乎没有(或完全没有)针对该客户端的可用数据的情况下(即,在由云服务403所托管的云服务没有排队用于客户端402的数据的情况下),某些实施方案避免发送多个连接请求410并且不建立连接用以代理404和客户端402之间的数据传输413。例如,代理设备404可在接收到响应408具有可用数据的代理指示之后,并且在接收到来自客户端402的后续宣告409时,利用连接请求410发送数据。

d.向客户端提供数据

在确定在基于云端的服务存在针对客户端的可用数据之后,可将数据提供给客户端设备。基于云端的服务可托管在连接至wan的一个或多个服务器上。在图3的实施例中,针对客户端设备302的可用数据可通过执行数据传输312从云服务303传输至代理设备304。然后,在建立代理设备304和客户端设备302之间的连接之后,可利用数据传输313将可用数据提供给客户端设备302。例如,一旦客户端设备302接受连接请求310,则可进行数据传输312和313以便经由代理设备304将可用数据从云服务303传输至客户端设备302。在一些实施方案中,可执行数据传输312以将可用数据从云服务303传输至代理设备304,并且在客户端设备302接受连接请求310之后,可进行数据传输313以便将可用数据从代理设备304传输至客户端设备302。例如,客户端设备302可在代理设备304发起数据传输313之前将接受连接请求310的消息发送回代理设备304(未示出)。

在图4所提供的实施例中,在确定在云服务403处存在可用数据然后在代理设备404和客户端设备402之间建立连接之后,将可用数据提供至客户端设备402。连接可响应于接收到后续的宣告409而建立。例如,在发送后续宣告409之后,客户端设备402对来自代理设备404的连接请求410进行响应,并且可执行数据传输413以便将可用数据从代理设备404传输至客户端设备402。根据该实施例,代理设备404发送查询407以检查云服务403处的可用数据,并且代理设备404可直到代理设备404从云服务403接收到指示存在针对客户端设备402的可用数据的响应408才利用连接请求410对客户端设备402进行响应。在用于初始连接宣告406的响应窗口已到期的情况下,代理设备404可等待后续宣告409并利用指示存在可用数据的连接请求410对该后续宣告409进行响应。在接收到对连接请求410的响应之后,代理设备404可执行数据传输413以向客户端设备402发送可用数据。

iv.方法

代理设备可执行各种方法以将数据从基于云端的服务提供至客户端设备。代理设备可执行多种方法以建立端到端连接用以经由代理在基于云端的服务和客户端设备之间传送数据。客户端设备可执行多种方法以请求到网络的连接。客户端设备可执行多种方法以生成并发送宣告消息,该宣告消息包括与客户端相关联的id和所请求的连接类型以及对用于与基于云端的服务进行通信的数据的请求。

a.代理确定数据是否对客户端可用

图5为利用代理设备建立代理连接以在基于云端的服务和客户端设备之间传送数据的示例方法的流程图。图5的方法500可由代理设备(例如,图4的代理设备404)通过执行存储于其上的计算机可执行指令等来实现。代理设备可被配置具有用于与第一网络(例如,具有图4的客户端设备402的lan)通信的第一无线接口、用于与第二网络(例如,图4的云服务403、互联网等)通信的第二无线接口、存储器,以及耦接至存储器和/或无线接口的处理器。

在框502处,主机设备(例如,代理设备)可从客户端设备接收宣告消息,该宣告消息包括对与网络传送数据的请求。例如,宣告消息可包括从互联网等上载或下载数据的请求。宣告消息包括与客户端设备相关联的唯一的id和对检查在基于云端的服务排队用于客户端的可用数据的请求。例如,宣告消息还可包括有效载荷(例如,待上载的数据)和/或有关待传送内容的其他信息。

在框504处,响应于接收到宣告消息,代理设备可将客户端设备的唯一id发送至基于云端的服务。例如,可通过向基于云端的服务发送对可用下行链路数据的查询来执行504,其中该查询包括与宣告的客户端设备相关联的唯一id。可进行针对不同客户端设备的查询。例如,代理设备可在接收到对第一查询的响应之前向云服务发送多个查询。

在框506处,代理设备可从基于云端的服务接收与客户端设备相关联的可用数据的代理指示。例如,主机设备可接收对可用数据查询的响应,其中该响应指示出客户端设备的id和对存在针对客户端未决的可用数据的指示。在一些实施方案中,来自基于云端的服务的响应可包括具有可用数据的有效载荷。该响应可提供对数据可用的任何适当指示,诸如标记、有关数据的信息和数据本身。

在框508处,响应于接收到可用数据的代理指示,代理设备可向客户端设备发送连接请求,该连接请求包括可用数据的客户端指示。例如,可用数据的客户端指示可指示基于云端的服务具有排队等待传送至宣告的客户端设备的可用数据。在某些实施方案中,连接请求的有效载荷可包括可用数据。

代理设备可在不同时刻发送连接请求并利用不同标准。例如,可在接收到来自客户端设备的第二宣告的情况下发送连接请求(例如,如图4所示)。另选地,在接收到所有(或一部分)的数据时,代理设备可尝试发起到客户端设备的传输,而不等待第二宣告消息,例如如图3所示。

可使用其他标准来确定是否发送连接请求和何时发送连接请求。例如,客户端设备和代理设备可在其他方向上移动。参考图8和图9更详细地提供了此类标准的实施例。

在框510处,代理设备可经由无线接口将可用数据发送至客户端设备。这可包括在接收到对连接请求的响应之后将可用数据传输至客户端设备。例如,可利用图3的数据传输313或图4的数据传输413来执行框510。在其它实施方案中,可用数据可经由连接请求或通过某一其他机制来发送。

b.由客户端请求数据

在一些实施方案中,当请求到网络的连接时,客户端设备可指示所请求的连接类型。例如,客户端设备可生成并发送连接宣告,该连接宣告包括客户端id和所请求连接类型(例如,下行链路或上行链路)。

图6为利用客户端设备来请求到网络的连接的示例方法的流程图。具体地,图6示出了利用客户端设备在请求到网络的连接的宣告消息内提供对所请求连接类型和唯一客户端id的指示的方法600。图6的方法600可由图4的客户端设备402通过执行存储于其上的计算机可执行指令等来实现。客户端设备可被配置具有无线接口、存储器和耦接至存储器和/或无线接口的处理器。

在框602处,客户端设备可接收指示正执行尝试与网络传送数据的触发信号。换句话讲,客户端设备可接收客户端设备正尝试与网络(例如,wan,诸如互联网等)传送数据的指示。作为各种实施例,触发信号可基于对来自wan的可用数据的周期性检查、周期性检查以通过wan上载数据、对需上载或下载的数据的选择(例如,由用户)、在客户端设备处的事件(例如,获得数据)等。例如,用户可尝试从客户端设备发送消息或可尝试从互联网下载内容。

在框604处,客户端设备可至少响应于触发信号来识别客户端设备所需的连接类型。例如,如前所述,客户端设备可识别其是否有通过wan待上载至服务器的数据,或者客户端设备是否正检查通过wan待从云服务下载的可用数据。在预计希望上载数据的情况下,连接类型可由客户端设备识别为上行链路连接。相反地,在预计希望检查待下载数据的情况下,连接类型可由客户端识别为下行链路路径。

在框606处,一旦连接类型被识别,客户端设备可被配置为生成宣告消息用以连接至主机,诸如图3的代理设备304。宣告消息可包括与客户端设备相关联的id和对由客户端设备所需的所请求连接类型的指示。id可为唯一的客户端id,如针对客户端设备的设备id。宣告消息也可包括对需与网络(例如,wan)通信的数据的请求。客户端设备可将所生成的宣告消息(例如,经由无线接口)提供给主机设备以请求到主机设备的无线连接。宣告消息可包括待上载到wan的数据有效载荷。在各种实施例中,宣告消息可包括客户端设备的id以及对有待下载到客户端设备的数据的请求,并且在一些情况下,也可包括数据可能位于的位置(例如,资源定位器、地址等)和/或数据的标识符。

在框608处,客户端设备可接收来自主机设备的代理给予。例如,代理给予可为来自主机设备的连接请求,其指示来自基于云端的服务的数据对客户端可用。在一些实施方案中,连接请求还可指示可用数据已从基于云端的服务下载到代理设备。

在框610处,客户端设备可发送对代理给予的响应以建立与主机设备的数据连接。在发送对代理给予的响应之后,在612处,客户端设备可接收来自主机设备的可用数据。例如,可通过执行图3的数据传输313或图4的数据传输413来接收可用数据。

在一些实施方案中,客户端设备可与第一用户相关联,并且主机设备可与第二用户相关联。在一些情况下,第一用户和第二用户可为不同用户。另外,在一些实施例中,客户端设备可确定第一用户是否不同于第二用户(例如,响应于触发信号),并且在该用户不同于第二用户的情况下可取消对无线连接到主机设备的请求。换句话讲,如果可能的主机设备为用户自身的设备(即,与客户端设备相关联的同一用户),则客户端设备可能无需执行一个或多个步骤或与步骤606,608或610相关联的所有操作,因为两个设备可被配置为自动彼此通信(例如,以提供到客户端设备的互联网接入)。

v.附加实施方案

网络连接管理可在不必于主机设备上明确设置另一设备的情况下执行。过去,我们能够需要允许在用户界面上明确连接并指定特定设备来获得网络接入。在本公开的一些实施方案中,用户可仅指定一些通用参数,并且不必逐个设备地允许接入。由于充当主机设备可导致代理设备上的电池耗竭,并且可利用来自代理设备的用户(其可能属于与客户端设备不同的用户)的蜂窝数据计划的数据额度的一部分,因此每个代理设备可决定是否自愿充当主机。另外,一旦可能的主机自愿,则每个客户端设备可决定是否接受代理连接。该部分描述设备间通信和可用于促成网络连接管理(即,这些决策)的量度。

图7为根据各种实施方案的系统700的框图。图7和其他附图仅为本文所公开实施方案或具体实施的示例,或者本文所公开实施方案或具体实施的某些方面的示例,并且不应限制本公开的范围。通过本公开和本文给出教导内容,本领域的普通技术人员可认识到对附图中所示这些实施方案或具体实施的其他变型、修改和/或替代方案。图7为可利用主机设备来向客户端设备提供数据的系统的一个实施例。系统700中的设备可包括硬件和/或软件元件。

图7示出了客户端设备702、代理设备704和代理设备704可连接到的云服务703之间发信号。在客户端设备702请求网络连接时(例如,在被穿戴在健身或以其他方式移动的用户身上时),用户的客户端设备702可在移动中。同样地,客户端设备702可定期地发出连接请求(例如,周期性地,诸如此类),因为在客户端设备702在与之形成连接的主机设备范围内的情况下,任何当前连接可仅为临时的。特别由于主机设备也可在移动中,因此对于每个客户端设备来说,与主机设备的连接可能是短暂的。

在一个方面,客户端设备702可通过提供连接宣告706来请求来自代理设备704的wan连接。一般来讲,连接宣告706可为针对连接的任何类型的请求,并且无法针对任何特定代理设备704。连接宣告706可包括所请求的连接类型、客户端设备702的标识符(例如,设备标识(id)等)、有效载荷和/或请求的优先级别。所请求的连接类型可识别客户端设备702是否具有通过wan(例如,经由上行链路连接)待上载至服务器的数据或客户端设备702是否正检查通过wan(例如,经由下行链路连接)从服务器待下载的数据。即,从客户端设备702发送的连接宣告706可为对wan连接的请求,该请求包括所请求连接类型(例如,上行链路或下行链路)的指示。例如,宣告消息706可为根据发送给代理设备704的要求对上行链路数据的宣告。另外,例如,宣告消息706可为针对下行链路数据的宣告(例如,主机设备检查下行链路数据的请求)。在客户端设备702具有待上载数据的情况下,有效载荷可包括该数据;然而,在一些实施例中,即便在存在待下载数据的情况下,连接宣告706也可不包含有效载荷。

连接宣告706可通过触发事件来提示,诸如指示客户端设备702可连接至互联网或其他wan的周期性或上下文信号,或者连接宣告可通过与主机设备的先前连接已终止(例如由于距离间隔)的指示发信号通知。例如,客户端设备702可被配置为周期性地(例如,每分钟、每小时等)请求wan连接以检查待下载的数据或上载客户端设备702采集(例如,由传感器)或接收(例如,从用户)的数据。另外,触发事件可发生在用户请求来自互联网的数据或提供需经由客户端设备702备份的数据的情况下。如上所述,触发事件可发生在客户端设备702识别出其不再连接至先前连接的代理设备704的情况下。

代理设备,诸如图7的代理设备704,可被配置为托管针对客户端设备702的wan接入(例如,互联网)。例如,客户端设备702可提供从代理设备704请求此类wan接入的连接宣告。来自客户端设备702的宣告可包括所请求连接类型(例如,下行链路)的指示。例如,客户端设备702可针对下行链路数据发送宣告。宣告可为代理设备检查wan处针对客户端未决的可用下行链路数据的请求。

在一些实施方案中,可通过考虑若干因素中的一个或多个因素来建立连接,包括待传送数据的重要性。例如,用户可将数据识别为重要的(例如,优先级列表上到另一用户的消息、被标记为紧急的消息、时间上敏感的数据、长时间在等待被传输的数据等)或者可基于时间量将数据确定为重要的,因为客户端设备一直尝试对其进行传输。数据的重要性或优先级别可在从客户端设备发送的宣告消息中有所指示。

图8为示出能够执行至少参考图1-7的客户端设备描述的特征中的至少一部分的客户端设备800的示例性实施方案的框图。客户端设备800可被配置为执行上文参考方法800和/或图8的方法所述的操作和/或实施方案。在一些实施方案中,客户端设备800可被配置具有处理器802。处理器802可负责确定是否存在用于会话的足够连通性(例如,客户端设备800是否可能连接至代理设备)。当客户端设备接收到多个代理给予或连接请求时,处理器802也可选择用于数据传输的最佳代理设备。在与代理设备850的连接建立(例如,是否将bt或wifi用于数据传输)的情况下,处理器802还可确定要将哪种无线电接入技术(rat)用于数据传输。

客户端设备800还可配备有bt无线电部件804(例如,支持bt低功耗(btle)和传统bt中任一者或两者)和wifi无线电部件806,以及运动处理器808。bt无线电部件804或wifi无线电部件806可用于与代理设备通信。bt无线电部件804可跟踪与代理响应相关联的接收信号强度指示(rssi)量度、代理设备所报告的网络连接属性和/或代理设备所报告的通信策略偏好。这些值和量度可被报告给处理器802。bt无线电部件804还可根据伸缩式量度针对下行链路数据发送宣告(例如,向代理设备),根据需求针对上行链路数据发送宣告(例如,向代理设备),并且/或者建立用于客户端设备800和代理设备之间数据传输的连接。wifi无线电部件806也可跟踪并报告(例如,向处理器802)rssi量度,并且还可跟踪并报告信噪比(snr)和/或拥塞控制算法(cca)量度。wifi无线电部件806还可被配置为在客户端设备800和代理设备之间建立连接并且/或者在该两者之间传输数据。运动处理器808可被配置为识别、检测或以其他方式确定用车辆运载、跑步、步行、静止等量度,以及与客户端设备800相关联的方位/方向量度。

图9为示出能够执行至少参考图1-7的代理设备描述的特征中的至少一部分的代理设备900的示例性实施方案的框图。在一些实施方案中,代理设备900可被配置具有代理管理器902。代理管理器902可负责确定当前物理连接属性(例如,在新事件到来时)并且/或者针对预算(例如,基于具有服务提供方的账户等)跟踪代理电池和数据使用率。代理管理器902还可负责选择适当rat。在一些实施方案中,对来自客户端设备的宣告的响应(例如,图11的客户端设备1100或相对于图1-10所述客户端设备中的任一客户端设备)可为充当代理的提供(例如,代理给予)。如前所述,代理管理器902可利用网络连接属性和/或通信策略偏好来确定代理设备将用以与网络传送数据的路线。在一些实施方案中,客户端设备和代理设备900之间的初始通信可经由蓝牙低功耗(btle)等;然而,代理管理器902可确定切换rat并将不同技术(或无线电部件)用以未来通信。换句话讲,bt无线电部件904可接收来自客户端设备的到来宣告,但代理设备900可利用wifi无线电部件906以代理给予进行响应。即便初始通信是经由btle的,代理连接继而也可利用wifi无线电部件906。也可根据需要实现相反场景或另选场景。

如前所述,代理设备900可同时配备有bt无线电部件904和wifi无线电部件906,以及运动处理器908和蜂窝无线电部件910。在一些实施方案中,无线电部件可随代理管理器902的事件来报告量度的变化。bt无线电部件904可跟踪与来自客户端设备的宣告相关联的rssi量度、针对宣告的rssi的变化速度和/或客户端设备的速度和方位。这些量度可被报告给代理管理器902。bt无线电部件904还可基于代理设备900的网络连接属性来选择路线并对宣告进行响应,并且指示到客户端设备的路线(例如,在代理给予中)。wifi无线电部件906也可跟踪并报告(例如,向代理管理器902)rssi量度,并且还可跟踪并报告snr和/或cca量度。运动处理器908可被配置为识别、检测或以其他方式确定用车辆运载、跑步、步行、静止等量度,以及与代理设备900的方位/方向量度。另外,蜂窝无线电部件910可跟踪lte、rsrp、wcdma等量度以及有效蜂窝rat量度(例如,用以在多种技术可用的情况下确定要使用哪种蜂窝技术)。

根据一个实施方案,代理设备900的无线电设备904,910,906可被配置为报告链路量度,诸如但不限于rssi量度、信噪比量度和/或拥塞控制算法量度。在一些实施例中,代理设备900的网络连接属性可基于链路量度中的一者或多者。代理设备900能够基于链路量度更新其一个或多个网络连接属性。例如,随着针对特定通信链路的接收信号强度指示增大,对应的网络连接属性可被更新。信噪比量度可定义与跟代理设备900的通信相关联的信号强度相对于在与主机设备通信期间所检测到的噪声的量。代理设备900还能够随着信噪比量度增大来更新网络连接属性。另外,拥塞控制算法(cca)量度可定义所计算的与客户端设备和代理设备900之间通信相关联的拥塞量,并且代理设备900能够随着拥塞控制算法量度增大来更新网络连接属性。

vi.设备

图10示出了例如可结合图1、3和4的系统100,300或400或分别作为它们的一部分使用来实现代理连接的管理的附加的示例性客户端设备和代理(主机)设备。尽管通过这些附图示出两个实施方案,但各种具体实施可包括任何数量的客户端设备、主机设备和可由不同设置下的设备所支持的不同网络。

应当显而易见的是,尽管图10所示系统示出了若干示例性实施方案,但其他类似实施方案可具有比所示出更多或更少部件。其他实施方案还可包括示出部件的不同构型,但保持在本文创新的范围内。

图10示出了可结合图1、3和4的系统100,300和400或作为它们的一部分使用来实现代理连接的优化以便经由主机设备在网络和客户端设备之间传输数据的客户端设备和主机设备。尽管通过这些附图示出两个实施方案,但各种具体实施可包括任何数量的客户端设备、主机设备和可由不同设置下的设备所支持的不同网络。

应当显而易见的是,图10所示系统示出了一个实施方案,并且其他类似实施方案可具有比所示出更多或更少部件。其他实施方案还可包括示出部件的不同构型,但保持在本文创新的范围内。

图10示出了具有客户端设备1000、代理(主机)设备1050和网络1090的实施方案。客户端设备1000可为无线接口能够访问的任何设备,包括台式计算机、膝上型计算机、智能电话、平板电脑、可穿戴设备(例如,支持网络的手表、耳机或项圈)、网络家电(例如,支持网络的冰箱或洗衣机)、媒体播放器、个人数字助理、钥匙袋、通行卡、多功能设备、游戏系统或任何其他此类客户端设备。

在一些实施方案中,一旦客户端设备1000或代理设备1050决定建立代理连接,两个设备就尝试尽可能快速高效地上载和/或下载适当数据。这是因为有时在传输完成之前存在连接将终止(结束或被中断)的可能性,因为两个设备可能正在移动并且可能并不共同移动。例如,携带客户端设备1000的用户可能正走过携带代理设备1050的用户并使客户端设备1000通过代理设备1050访问互联网。如果用户正慢速行走(例如,在拥挤区域中、在等待公共交通时、在公园或在一个或该两个用户正在红绿灯或人行横道处等待),则当两个用户处于彼此的有效通信范围内时,两个设备可建立连接并传输数据。在一些实施方案中,两个设备可利用非标准传输协议来允许更快连接和数据传输。

在一些实施方案中,当客户端设备1000和/或代理设备1050计算和/或提供它们相应的速度时,它们可提供速度相比于原始速度(例如,英尺每秒等)的分类或类别(例如,慢速、中等、快速等)。同样地,匹配速度和方位可包括相对匹配,使得两个设备在一类别内匹配并且不一定要准确匹配。

另外,在一些实施方案中,代理设备1050可接收来自多个客户端设备的多个连接宣告(也称为“宣告消息”或“连接请求”)。然而,代理设备1050可只对其接收的第一宣告进行响应,并未意识到其将接收其他宣告或只作为效率(例如,其可被配置为总是对所接收的下一宣告进行响应)。在一些情况下,代理设备1050还可跟踪宣告之间的变化。例如,基于设备id等,代理设备1050能够区分来自不同客户端设备的宣告,识别一组宣告(例如,来自所有客户端设备)内的总体变化和/或识别来自每个特定客户端设备1000的宣告内的变化。同样地,代理设备1050可跟踪rssi或宣告中的其他信息,这些信息指示与特定客户端设备1000连接的适用性可能正增大。在一些情况下,即使因素并不理想(或低于用于提供代理给予的阈值),代理设备1050也可提供代理给予,因为其可推断出状况正在改善并将最终好到足以提供固定的代理连接。在一些实施例中,代理设备1050可充当路由器。

客户端设备1000可为无线接口能够访问的任何设备,包括台式计算机、膝上型计算机、智能电话、平板电脑、可穿戴设备(例如,支持网络的手表、耳机或项圈)、网络家电(例如,支持网络的冰箱或洗衣机)、媒体播放器、个人数字助理、钥匙袋、通行卡、多功能设备、游戏系统或任何其他此类客户端设备。客户端设备1000包括存储器1004、处理器1002、输入设备1006、显示器1008和无线接口1012。主机设备1050包括处理器1052、存储器1054、输入设备1056、显示器1058、无线接口1062、无线接口1064和基带设备1059。

主机设备1050可为能够以类似于上文针对从各种主机设备共享数据到各种客户端设备的方式向客户端设备1000提供数据共享的任何通信设备。主机设备的某些实施方案可具有多个通信接口,使得作为由主机设备所执行数据共享的一部分,主机设备基于第一通信协议利用一个通信接口与网络通信,并且主机设备利用与第一通信接口不同的第二通信接口并基于不同于第一通信协议的第二通信协议与客户端设备进行通信。此类主机设备的实施例可包括智能电话、台式计算机、膝上型计算机和其他此类支持网络的计算设备。

客户端设备1000可经由连接1038(也称为第二网络,其中第一网络为网络连接1088)与主机设备1050通信。类似地,主机设备1050可经由连接1088与网络1090通信。在另一个实施方案中,客户端设备1000还可创建与一个或多个其他网络包括网络1090的连接(例如,经由独立的无线接口和/或经由代理连接1038)。在一些实施例中,连接1038(或至少两个无线接口1012,1062)可用于提供或以其他方式传送宣告消息1092(例如,从客户端设备1000到代理设备1050)和/或代理给予1094(例如,从代理设备1050到客户端设备1000)。

不同实施方案可利用一种或多种通信协议或技术来实现连接1038、连接1088或这些连接的方面,该一种或多种通信协议或技术包括时分多址(tdma)、码分多址(cdma)、全球移动通信系统(gsm)、增强型数据gsm环境(edge)、宽带码分多址(w-cdma)、长期演进(lte)、lte-advanced、wifi(诸如ieee802.11a、ieee802.11b、ieee802.11g和/或ieee802.11n)、蓝牙、wi-max、互联网协议语音技术(voip)、近场通信协议(nfc)、用于电子邮件、即时消息和/或短消息服务(sms)的协议,或任何其他合适的通信协议,包括到本文档的提交日期为止尚未开发出来的通信协议。主机设备或客户端设备可包括可根据通信所需的范围通过若干不同类型无线网络通信的、作为无线接口(诸如无线接口1012、无线接口1062和无线接口1064)的一部分的无线电路。例如,短程无线收发器(例如,蓝牙)、中程无线收发器(例如,wifi)和/或远程无线收发器(例如,gsm/gprs、umts、cdma20001x/ev-do和lte/lte-advanced)可根据通信类型或通信的范围来使用。

具体地,在某些实施方案中,连接1038可直接在无线接口1012和无线接口1062之间实现为对等(p2p)无线连接。在其它实施方案中,连接1038可包括多个附加设备和子连接,包括多个接入点、网络路由连接和通信服务器。

无线电路可与诸如无线接口1012,1062和1064等无线接口一起使用以经由诸如连接之类的无线连接发送和接收信息。本文所述任何设备还可包括允许如本文所述各种无线连接的常规电路,诸如天线系统、rf收发器、一个或多个放大器、一个或多个振荡器、数字信号处理器、编解码芯片集、存储器等。

无线电路可经由外围设备接口耦接至处理器诸如处理器1002和处理器1052。由无线电路所接收的语音和数据信息可经由外围设备接口发送至一个或多个处理器。一个或多个处理器诸如处理器1002和1052可被配置为处理用于在设备的存储器上存储的一个或多个应用程序的各种数据格式。如图10所示,处理器1052可为用于代理设备1050的应用处理器。代理设备还可包括通信电路1053和1055。在一些实施方案中,通信电路1053为具有代理路由器的bt/wifi电路,并且通信电路1055为蜂窝电路。在图10的非限制性实施例中,通信电路1053可为组合wifi/bt电路,并且通信电路1055可为蜂窝电路。根据该实施例,通信电路1053可包括wifi无线电部件和bt无线电部件中的一者或多者。类似地,通信电路1055可包括蜂窝无线电部件。

处理器1002和1052可运行存储在相应存储器1004和1054中的各种软件部件以执行设备1000和1050的各种功能。在一些实施方案中,软件部件包括操作系统、通信模块(或指令集)和其他应用程序(或指令集)。在不同的实施方案中,处理器可为单个集成电路、一组多个集成电路或可用于实现处理功能的任何逻辑硬件。

由处理器所执行的操作系统可为任何适当的操作系统。操作系统可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种程序、指令集、软件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。

本文所述的存储器,包括存储器1004和存储器1054,可为任何计算机可读介质,并且还可为可存储代码和/或数据以供一个或多个处理器或设备部件使用的任何设备或介质。这可包括存储器分级结构,包括高速缓存、主存储器和辅助存储器。可使用ram(例如sram、dram、sdram)、rom、闪存、磁存储设备和/或光学存储设备(诸如磁盘驱动器、磁带、cd(光盘)和dvd(数字视频光盘))的任何组合来实现该存储器分级结构。在一些实施方案中,外围设备接口、一个或多个处理器和存储器控制器可在本文所述任何设备内的单个芯片上实现。在一些其他实施方案中,它们可以在独立的芯片上实现。

本文所述的任何设备诸如主机设备1050和客户端设备1000还可包括用于向各种硬件组件供电的电力系统。电力系统可包括电力管理系统、一个或多个电源(例如,电池、交流电(ac))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管(led))和通常与移动设备中的电力的生成、管理和分配相关联的任何其他部件。

在一些实施方案中,主机设备和/或客户端设备可包括各种传感器。相机可为传感器的一个实施例。此类相机设备以及其他传感器可作为输入设备1056的一部分,被视为输入设备。相机可用于创建用于视频通话或可经由主机设备所提供的数据共享传送的图片的av数据。在一些实施方案中,设备还可包括各种其他传感器。传感器可以包括加速度计、指南针、陀螺仪、压力传感器、音频传感器、光传感器、气压计、麦克风等。传感器可用于实现各种设备决策,进行并滤除诸如视频通话中视频图像的模糊补偿,或者音频滤波以有助于从在一个或多个麦克风处所捕获的音频信息中滤除背景噪声。

在一些实施方案中,客户端设备1000或主机设备1050可包括全球定位系统(gps)接收器或其他定位协助设备或模块。设备可使用卫星导航系统诸如gps来获得位置信息、定时信息、高度或其他导航信息。在操作期间,gps单元可接收来自绕地球飞行的gps卫星的信号。gps单元对信号进行分析以对传送时间和传送距离进行估计。gps单元可确定移动设备的当前定位(当前位置)。基于这些估计,移动设备可确定位置方位、高度和/或当前速度。位置方位可为地理坐标,诸如纬度和经度信息。其他非gps位置/运动模块可有助于确定客户端设备1000或主机设备1050的当前位置(例如,坐标或其他地理位置标识符)和运动。除gps之外,基于“小区id”的蜂窝网络定位和基于wifi网络的wifi定位技术可用于定位协助。在一些实施方案中,位置/运动模块可将传感器信息用于上述系统以确定主机设备的当前位置。然后可使用位置信息来管理数据共享连接,该数据共享连接不仅针对共享数据的当前主机设备,还针对可基于客户端设备的移动用于数据共享的其他主机设备。

处理器1002和处理器1052可执行位于它们相应设备上的一个或多个应用程序,包括但不限于浏览器、地址簿、联系人列表、电子邮件、即时消息、文字处理、键盘仿真、桌面小程序、支持java的应用、加密、数字版权管理、语音识别、语音复制、音乐播放器(其回放存储在诸如mp3或aac文件的一个或多个文件中的录制音乐),等等。一个或多个应用程序还可包括用于管理数据共享通信的专用应用程序。

可存在其他模块或指令集,诸如图形模块、时间模块等。例如,图形模块可以包括用于在显示器表面上对图形对象(包括但不限于文本、网页、图标、数字图像、动画等)进行渲染、动画显示和显示的各种常规软件部件。在另一个实施例中,定时器模块可以是软件定时器。也可以在硬件中实现定时器模块。时间模块可以为任意数量的事件维持各种定时器。

i/o子系统包括各种输入设备可耦接至显示系统,诸如显示器1008或显示器1058。这些显示器可为触敏的,从而可作为显示器和输入设备来操作。因此,客户端设备1000的触敏显示器可同时作为输入设备1006和显示器1008来操作。主机1050的触敏显示器可作为显示器1058和输入设备1056来操作。显示器可将视觉输出作为图形用户界面(ui)呈现给用户。视觉输出可包括文本、图形、视频以及它们的任何组合。视觉输出中的一些或所有可对应于用户界面对象。尽管显示器可使用发光二极管(led)技术、液晶显示器(lcd)技术或发光聚合物显示器(lpd)技术,但在其他实施例中可使用其他显示技术。

在一些实施方案中,i/o子系统可包括显示器和诸如键盘、鼠标和/或触控板之类的用户输入设备作为输入设备1006或输入设备1056的一部分。在一些实施方案中,i/o子系统可包括触敏显示器。触敏显示器还可接受来自用户的基于触觉和/或触感接触的输入。在一些实施方案中,触敏显示器形成接受用户输入的触敏表面。触敏显示器/表面(连同任何相关联的模块和/或指令集)检测触敏显示器上的接触(和接触的任何移动或释放),并将检测到的接触转换为与用户界面对象的交互,诸如在接触发生时显示在触摸屏上的一个或多个软键。在一些实施方案中,触敏显示器和用户之间的接触点对应于用户的一个或多个手指。用户可使用诸如触笔、笔、手指等任何合适的物体或附属件接触触敏显示器。触敏显示器表面可使用任何合适的触敏技术检测接触及其任何移动或释放,这些技术包括电容式、电阻式、红外和表面声波技术以及其他接近传感器阵列或用于确定与触摸显示器的一个或多个接触点的其他元件。

此外,特定客户端设备或主机设备的输入设备还可耦接至一个或多个其他物理控制设备(未示出),诸如按钮、按键、开关、摇杆按钮、拨号盘、滑动开关、操作杆、led等,用于控制或执行各种功能诸如功率控制、扬声器音量控制、电话铃声响度、键盘输入、滚动、保持、菜单、锁屏、清除和结束通信等。在一些实施方案中,除了触摸屏之外,设备还可包括与屏幕分开以使特定功能激活或禁用的触控板。在一些实施方案中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板可以是与触敏显示器分开的触敏表面、或者是由该触敏显示器形成的触敏表面的延伸部。

在一些实施方案中,可以利用在用户的移动设备上执行的应用执行本文描述的一些或全部操作。电路、逻辑模块、处理器和/或其他部件可以被配置为执行本文描述的各种操作。本领域的技术人员应当理解,根据具体实施,可以通过具体部件的设计、设置、互连和/或编程完成此类配置,并且同样根据具体实施,配置的部件可以针对不同操作是可重新配置的或不是可重新配置的。例如,可以通过提供适当的可执行代码来配置可编程处理器;可以通过适当连接逻辑门和其他电路元件来配置专用逻辑电路;等等。

结合本公开的各种特征的计算机程序可被编码在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、诸如光盘(cd)或dvd(数字多功能光盘)的光学存储介质、闪存存储器等。可以与兼容设备一起封装或从其他设备独立地提供编码有程序代码的计算机可读存储介质。此外,可以经由符合多种协议的有线光学和/或无线网络(包括互联网)编码和传输程序代码,从而允许例如经由互联网下载进行分布。

除了客户端设备(诸如客户端设备1000)和主机设备(诸如上文详述的主机设备1050)之外,网络(诸如网络1090)和网络连接(诸如网络连接1038)也可利用各种设备和设备部件来实现。例如,尽管在某些实施方案中,连接1038可仅为直接在无线接口1012和无线接口1062之间的p2p无线连接,但在其他实施方案中,通信网络可用于实现连接1038。此类连接可包括一个或多个接入点、路由器、服务器计算机、存储装置或用于实现网络连接1038其他设备。执行设备中的每个设备可包括处理器、存储器和输入/输出结构,如上文所详述的。类似地,除服务器计算机和上述其他网络基础结构之外,其他网络连接可涉及小区塔、切换网络、分组处理设备,这些网络连接中的每个网络连接均可包括处理部件、存储器和网络接口部件。

客户端设备1000可为无线接口能够访问的任何设备,包括台式计算机、膝上型计算机、智能电话、平板电脑、可穿戴设备(例如,支持网络的手表、耳机或项圈)、网络家电(例如,支持网络的冰箱或洗衣机)、媒体播放器、个人数字助理、钥匙袋、通行卡、多功能设备、游戏系统或任何其他此类客户端设备。客户端设备1000包括存储器1004、处理器1002、输入设备1006、显示器1008和无线接口1012。客户端设备1000还可被配置具有一个或多个软件模块用以执行特定功能、算法和/或方法,包括但不限于宣告模块1011。代理设备1050包括处理器1052、无线接口1062、无线接口1064和基带设备1059。代理设备1050还可包括通信电路1053。

在图10的非限制性实施例中,通信电路1053可包括wifi/bt电路和蜂窝电路。在一些实施方案中,通信电路1053可为包括wifi无线电部件和bt无线电部件的组合wifi/bt电路。通信电路1053还可包括蜂窝电路和蜂窝无线电部件。

代理(主机)设备1050可为能够以类似于上文针对各种客户端设备和网络(诸如网络1090)之间代理连接的路由选择所描述的方式来提供到客户端设备1000的代理连接的任何通信设备。主机设备的某些实施方案可具有多个通信接口,使得作为由主机设备所执行数据共享的一部分,主机设备基于第一通信协议利用一个通信接口与网络通信,并且主机设备利用与第一通信接口不同的第二通信接口并基于与第一通信协议不同的第二通信协议与客户端设备进行通信。此类主机设备的实施例可包括智能电话、台式计算机、膝上型计算机和其他此类支持网络的计算设备。例如,代理设备1050可基于由通信电路1053所支持的第一通信协议利用一个通信接口、无线接口1064与网络1090通信。另外,例如,代理设备1050可利用与第一通信接口不同的第二通信接口无线接口1062并基于与第一通信协议不同的第二通信协议与客户端设备1000通信,其中第二通信协议由通信电路1053来支持。

客户端设备1000可经由连接1038与主机设备1050通信。类似地,主机设备1050可经由连接1088与网络1090通信。在另一个实施方案中,客户端设备1000还可与一个或多个其他网络包括网络1090创建连接。具体地,在某些实施方案中,连接1038可直接在无线接口1012和无线接口1062之间实现为对等(p2p)无线连接。在其它实施方案中,连接1038可包括多个附加设备和子连接,包括多个接入点、网络路由连接和通信服务器。

处理器1002和1052可运行各种软件部件以执行设备1000和1050的各种功能,诸如但不限于模块1011。例如,处理器1002可运行存储于存储器1004中的软件部件以执行客户端设备1000的各种功能。在一些实施方案中,软件部件还包括操作系统。在某些实施方案中,处理器1052可为应用处理器。在一些实施例中,宣告模块1011可被配置为确定何时提供连接宣告以及宣告中包括的内容。

如前所述,宣告可包括客户端设备1000所请求连接的类型的指示以及其他信息。如图10所示,代理设备1050可包括通信电路1053。通信电路1053可被配置为与网络1090传送数据。在一些实施方案中,来自网络1090的响应可指示存在排队等待传送至客户端设备1000的可用数据。另外,可用数据的指示可包括可用数据。代理设备1050可被配置为确定是否存在针对客户端设备1000的可用数据(例如,基于通过网络连接1088与网络1090交换的通信)。

代理设备1050可接收客户端设备1000所提供的连接宣告(例如,经由连接1038)。代理设备1050继而可在查询网络1090之后确定在网络1090处存在针对客户端设备1000的可用数据。响应于确定存在可用数据,可在代理1050和客户端1000之间建立连接(例如,p2p连接1038)。在一些实施方案中,在确定网络1090处存在可用数据之后并基于与客户端设备1000和网络1090之间潜在连接相关联的一个或多个要素,可建立连接。例如,代理设备1050可选择无线通信电路用以在网络1090和客户端设备1000之间传送数据。对无线通信电路的选择可基于代理设备1050的一个或多个策略偏好和/或代理设备1050的与网络1090的一个或多个网络连接属性。发送至客户端设备1000的连接请求可指示所选择路由(例如,包括所选择无线通信电路)。

网络连接属性可为针对代理设备1050拥有的网络连接的可用性和/或质量所要求的任何属性或属性的组合。例如,网络连接属性可指示存在互联网连通性和可提供给客户端设备1000的连接的质量。网络连接属性可度量相对于与代理设备1050相关联的因素(例如,外部网络拥塞、连接至代理设备1050的其他设备数量、代理设备1050的数据计划预算、代理设备1050的电池电量等)和/或诸如针对无线代理设备1050和客户端设备1000之间lan链路的lan信号强度之类因素的代理设备1050的能力。网络连接属性还可反映其他属性,并且其可为百分比(例如,10%、50%等)或者其可为一值为另一值的几分之几(例如,100/100或1/5)。更具体地,网络连接属性可为通过将与若干属性或因素相关联的值结合而计算得出的值,包括但不限于连接宣告的接收信号强度指示、wan网络拥塞/或连接质量(例如,蜂窝连接是否为2g、3g、lte等)、代理设备1050的数据使用预算和/或代理设备1050的电池预算。在一些实施例中,每个网络连接属性可被加权,使得每个属性的相对重要性可得以考虑。例如,如果存在代理设备1050和wan之间相对强的wifi连接为确定数据路由中的最重要因素,则wifi网络连接属性可被最大加权。

在某些方面,在代理设备1050从客户端设备1000接收到连接宣告之后,代理设备1050可确定网络1090处存在可用数据。例如,代理设备1050可查询网络1090以确定在网络1090处是否存在与连接宣告中所包含客户端id相关联的排队的可用数据。这样,如果在网络1090处存在针对连接宣告中所包含客户端id的可用数据,网络1090和客户端1000之间的、包括网络连接1088和p2p连接1038的端到端网络连接可经由代理设备1050来建立。

除了确定是否存在可用数据之外,其他网络连接属性、通信策略偏好或值也可用于确定是否需建立端到端的网络连接。例如,代理设备1050可被配置为识别连接宣告的rssi。此类值可指示到来强度,以及代理设备1050和客户端设备1000之间通过lan的潜在未来的传输。另外,wan的质量、强度和/或拥塞可为确定网络连接属性的因素。例如,如果代理设备1050的wan连接较差,即便客户端设备1000和代理设备1050之间lan连接很强,通过将代理连接经由代理设备1050路由至客户端设备1000也将会几乎一无所获。其他网络连接属性可包括代理设备1050的数据使用预算。网络连接属性可与一个或多个通信策略偏好一起使用以确定应建立端到端连接来传送可用数据。例如,在电池电量或容量低于某一阈值的情况下,通信策略偏好可指示主机设备不能充当代理设备。更具体地,如果代理设备1050的电池电量低,则代理设备1050可设法避免充当用于在网络1090和客户端设备1000之间传送数据的代理,因为在代理设备1050传送数据时其将使用更多电力。类似地,如果向代理设备1050提供wan数据的服务提供方或蜂窝载体限制代理设备1050能够接收的数据的量,并且/或者如果用户仅支付超出提供方网络的某些数据的量(例如,当代理设备1050漫游时),则数据使用预算可在经由代理设备1050建立连接的情况下起作用。例如,如果几乎没有数据能够用以代理设备1050下载(例如,基于限制、预算、漫游状态等),则该代理设备1050可以不提供基于与此类限制、预算或漫游状态相关联的标准或偏好的代理连接。

图11为示出可为主机设备、客户端设备或服务器的设备的示例框图。移动设备1100通常包括计算机可读介质1102、处理系统1104、输入/输出(i/o)子系统1106、无线电路1108和包括扬声器1150和麦克风1152的音频电路1110。这些部件可通过一根或多根通信总线或信号线1103来耦接。设备1100可以是任何便携式电子设备,包括手持式计算机、平板电脑、移动电话、膝上型电脑、平板设备、媒体播放器、个人数字助理(pda)、钥匙袋、车钥匙、门禁卡、多功能设备、移动电话、便携式游戏设备等,包括这些物品中的两个或更多个的组合。在各种实施方案中,第一设备600或第二设备650或任何其他设备、服务器、接入点、网络元件或其他计算设备或元件可利用图11的元件整体地或部分地实现。

显然,图11所示的架构仅为移动设备1100的架构的一个实例,并且移动设备1100可具有比图示中更多或更少的部件或不同配置的部件。图11中所示的各种部件可以硬件、软件方式或软硬件组合来实现,包括一个或多个信号处理电路和/或专用集成电路。

无线电路1108用于通过无线链路或网络向一个或多个其他设备的常规电路,例如天线系统、rf收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec芯片组、存储器等,发送和接收信息。在一些实施方案中,无线电路1108能够利用一个或多个通信协议与其他设备建立并保持通信。移动设备可包括能够根据通信所需的范围通过若干不同类型的无线网络进行通信的无线电路。

无线电路1108经由外围设备接口1116耦接至处理系统1104。接口1116可包括用于建立并保持外围设备和处理系统1104之间的通信的常规部件。通过无线电路1108所接收的语音和数据信息(例如,在语音识别或语音命令应用程序中)经由外围设备接口1116被发送至一个或多个处理器1118。一个或多个处理器1118可被配置为处理存储在介质1102上的一个或多个应用程序1134的各种数据格式。

外围设备接口1116将设备的输入和输出外围设备耦接至处理器1118和计算机可读介质1102。一个或多个处理器1118经由控制器1120与计算机可读介质1102进行通信。计算机可读介质1102可以是可存储供一个或多个处理器1118使用的代码和/或数据的任何设备或介质。介质1102可包括存储器分级结构,包括高速缓存、主存储器和辅助存储器。可使用ram(例如sram、dram、sdram)、rom、闪存、磁存储设备和/或光学存储设备(诸如磁盘驱动器、磁带、cd(光盘)和dvd(数字视频光盘))的任何组合来实现该存储器分级结构。在一些实施例中,外围设备接口1116、一个或多个处理器1118和存储器控制器1120可在单个芯片上实现,诸如处理系统1104。在一些其他实施方案中,它们可以在独立的芯片上实现。

移动设备1100还可包括用于为各种硬件部件供电的电力系统1142。电力系统1142可包括电力管理系统、一个或多个电源(例如,电池、交流电(ac))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管(led))和通常与移动设备中的电力的生成、管理和分配相关联的任何其他部件。

在一些实施方案中,移动设备1100包括相机1144。在一些实施方案中,移动设备1100包括相机1146。传感器可以包括加速度计、指南针、陀螺仪、压力传感器、音频传感器、光传感器、气压计等。传感器1146可用于感测位置方面,例如位置的听觉或光特征。

在一些实施方案中,移动设备1100可包括全球定位系统(gps)接收器,有时被称为gps单元1148。移动设备可使用卫星导航系统诸如gps来获得位置信息、定时信息、高度或其他导航信息。在操作期间,gps单元可接收来自绕地球飞行的gps卫星的信号。gps单元对信号进行分析以对传送时间和传送距离进行估计。gps单元可确定移动设备的当前定位(当前位置)。基于这些估计,移动设备可确定位置方位、高度和/或当前速度。位置方位可为地理坐标,诸如纬度和经度信息。

一个或多个处理器1118运行存储在介质1102中的各种软件组件以执行设备1100的各种功能。在一些实施方案中,软件部件包括操作系统1122、通信模块(或指令集)1124、位置/运动模块(或指令集)1126和其他应用(或指令集)1134,例如,汽车定位器应用和导航应用。在一些实施例中,其他应用1134可包括允许利用图10的通信电路1053和1055和/或无线接口1062和1064经由代理设备1050建立代理连接的上述功能的应用程序。

操作系统1122可为任何合适的操作系统,包括ios、macos、darwin、rtxc、linux、unix、osx、windows或嵌入式操作系统诸如vxworks。操作系统可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种程序、指令集、软件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。

通信模块1124有利于通过一个或多个外部端口1136或经由无线电路1108与其它设备通信,并且包括用于处理从rf电路1108和/或外部端口1136所接收的数据的各种软件部件。外部端口1136(例如,usb、火线、闪电连接器、60引脚连接器等)适用于通过网络(例如,互联网、无线局域网等)直接地或间接地耦接至其他设备。

定位/运动模块1126可有助于确定移动设备1100的当前位置(例如,坐标或其他地理位置标识符)和运动(例如,速度和方位信息)。现代定位系统包括基于卫星的定位系统诸如gps、基于“小区id”的蜂窝网络定位和基于wifi网络的wifi定位技术。通常,gps为最准确的,但常常比其他定位系统消耗更多电力。gps还依赖于多个卫星的可见度来确定位置估计,其在室内或在“城市峡谷”中可能是不可见的(或具有微弱信号)。在一些实施方案中,位置/运动模块1126从gps单元1148接收数据并分析信号以确定移动设备的当前位置、速度和/或方位。在一些实施方案中,位置/运动模块1126可利用wifi或蜂窝位置技术来确定当前位置、速度和/或方位。例如,可利用对附近小区地点和/或wifi接入点的了解及对它们位置的了解来估计移动设备的位置、速度和/方位。识别wifi或蜂窝式发射器的信息被接收于无线电路1108处并传送至位置/运动模块1126。在一些实施例中,位置模块接收一个或多个发射器id。在一些实施例中,可将发射器id的序列与参考数据库(例如,小区id数据库、wifi参考数据库)进行比较,该参考数据库将发射器id映射或关联至对应发射器的位置坐标,并且至少部分地基于对应发射器的位置坐标来计算移动设备1100的估计的位置坐标。不论使用何种特定定位技术,位置/运动模块1126接收能够从其中得出位置方位的信息、解译该信息、并返回位置信息诸如地理坐标、纬度/经度或其他位置方位数据。

位于移动设备上的一个或多个应用程序1134可包括安装在设备1100上的任何应用程序,包括但不限于浏览器、地址簿、联系人列表、电子邮件、即时消息、文字处理、键盘仿真、数据路由、代理连接管理器、桌面小程序、支持java的应用程序、加密软件、数字版权管理、语音识别、语音复制、音乐播放器(回放存储在诸如mp3或aac文件之类的一个或多个文件中的录制音乐),等等。

可存在其他模块或指令集(未示出),诸如图形模块、时间模块等。例如,图形模块可以包括用于在显示器表面上对图形对象(包括但不限于文本、网页、图标、数字图像、动画等)进行渲染、动画显示和显示的各种常规软件部件。在另一个实施例中,定时器模块可以是软件定时器。也可以在硬件中实现定时器模块。时间模块可以为任意数量的事件维持各种定时器。

i/o子系统1106可耦接至显示系统(未示出),该显示系统可以是触敏显示器。显示器在gui中向用户显示视觉输出。视觉输出可包括文本、图形、视频以及它们的任何组合。视觉输出中的一些或所有可对应于用户界面对象。尽管显示器可使用发光二极管(led)技术、液晶显示器(lcd)技术或发光聚合物显示器(lpd)技术,但在其他实施例中可使用其他显示技术。

在一些实施例中,i/o子系统1106可包括显示器和诸如键盘、鼠标和/或触控板之类的用户输入设备。在一些实施例中,i/o子系统1106可包括触敏显示器。触敏显示器还可接受来自用户的基于触觉和/或触感接触的输入。在一些实施方案中,触敏显示器形成接受用户输入的触敏表面。触敏显示器/表面(连同介质1102中的任何相关联的模块和/或指令集)检测触敏显示器上的接触(和接触的任何移动或释放),并将检测到的接触转换为与用户界面对象的交互,诸如在接触发生时显示在触摸屏上的一个或多个软键。在一些实施方案中,触敏显示器和用户之间的接触点对应于用户的一个或多个手指。用户可使用诸如触笔、笔、手指等任何合适的物体或附属件接触触敏显示器。触敏显示器表面可使用任何合适的触敏技术检测接触及其任何移动或释放,这些技术包括电容式、电阻式、红外和表面声波技术以及其他接近传感器阵列或用于确定与触摸显示器的一个或多个接触点的其他元件。

此外,i/o子系统还可耦接至一个或多个其他物理控制设备(未示出),诸如按钮、按键、开关、摇杆按钮、拨号盘、滑动开关、操作杆、led等,用于控制或执行各种功能诸如功率控制、扬声器音量控制、电话铃声响度、键盘输入、滚动、保持、菜单、锁屏、清除和结束通信等。在一些实施例中,除了触摸屏之外,设备1100还包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板可以是与触敏显示器分开的触敏表面、或者是由该触敏显示器形成的触敏表面的延伸部。

在一些实施方案中,可以利用在用户的移动设备上执行的应用执行本文描述的一些或全部操作。电路、逻辑模块、处理器和/或其他部件可以被配置为执行本文描述的各种操作。本领域的技术人员应当理解,根据具体实施,可以通过具体部件的设计、设置、互连和/或编程完成此类配置,并且同样根据具体实施,配置的部件可以针对不同操作是可重新配置的或不是可重新配置的。例如,可以通过提供适当的可执行代码来配置可编程处理器;可以通过适当连接逻辑门和其他电路元件来配置专用逻辑电路;等等。

结合本公开的各种特征的计算机程序可被编码在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、诸如光盘(cd)或dvd(数字多功能光盘)的光学存储介质、闪存存储器等。可以与兼容设备一起封装或从其他设备独立地提供编码有程序代码的计算机可读存储介质。此外,可以经由符合多种协议的有线光学和/或无线网络(包括互联网)编码和传输程序代码,从而允许例如经由互联网下载进行分布。

还可对此类程序进行编码并使用载波信号进行传输,所述载波信号适于经由符合各种协议的有线网络来进行传输。同样地,根据本公开的实施方案的计算机可读介质可使用通过此类程序编码的数据信号来创建。用程序代码编码的计算机可读介质可封装有兼容设备或独立于其他设备(例如,经由互联网下载)。任何此类计算机可读介质可存在于或位于单个计算机产品(例如,硬盘驱动器、cd或整个计算机系统)内,并且可存在于或位于系统或网络内的不同计算机产品内。计算机系统可包括监视器、打印机或用于将本文所提及的任何结果提供给用户的其他合适的显示器。

可通过计算机系统来完全或部分地执行本文所述的任何方法,该计算机系统包括可被配置为执行步骤的一个或多个处理器。因此,实施例可涉及被配置为执行本文所述任何方法的步骤的计算机系统,潜在地具有执行相应的步骤或相应一组步骤的不同部件。尽管给出有序步骤,但本文的方法步骤可同时或以不同次序执行。另外,这些步骤的部分可与来自其他方法的其他步骤的部分一起使用。另外,步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可通过模块、电路或用于执行这些步骤的其他装置来执行。

尽管已相对于具体实施方案描述了本公开,但应当理解,本公开旨在覆盖以下权利要求范围内的所有修改形式和等同形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1