存储应用数据及设备之间传送应用数据的制作方法

文档序号:11935862阅读:303来源:国知局
存储应用数据及设备之间传送应用数据的制作方法与工艺

本说明书涉及存储应用数据及在设备之间传送应用数据。

计算设备,诸如个人计算机、平板式计算机、及移动电话,经常安装有应用,以执行各种不同的功能,包括生产力应用、后台服务应用、娱乐应用、及其它应用。许多应用是由第三方开发的,其使用服务器计算机向用户设备分配应用和应用数据。例如,用户设备可从应用的应用服务器下载并安装该应用。相同或不同的应用服务器可提供应用数据,例如,用于应用的新的应用内容和/或新的应用更新。为了使应用和应用内容保持不断更新,用户设备将经常连接到网络(诸如,互联网)以周期性地获得来自第三方服务器的应用数据。



技术实现要素:

总体而言,本说明书描述主题的一个创新方面可以实现为一种方法,所述方法包括以下动作:由在第一设备上运行的第一服务从在第二设备上运行的第二服务接收应用数据,所述应用数据用于被安装在所述第二设备上且由所述第二服务支持的一个或多个应用的第一集合中的每一个应用,所述第一集合中的每一个应用与所述第二服务分离;由所述第一服务使得所述第一设备针对第一集合中的每一个应用,存储用于所述应用的所述应用数据;由所述第一服务从在第三设备上运行的第三服务接收对应用数据的请求,所述应用数据用于被安装在所述第三设备上的一个或多个应用的第二集合中的每一个应用,所述第二集合中的每一个应用与所述第三服务分离;由所述第一服务确定所述第一设备存储应用数据,所述应用数据用于所述第二应用集合中的一个或多个应用的子集;以及所述第一服务使得所述第一设备向所述在第三设备上运行的第三服务提供存储的应用数据,所述应用数据用于所述子集中的至少一个应用。

可选择地,这些和其它的实施例中的每一个可包括以下特征中的一个或多个。所述方法可以进一步包括:由所述第一服务使得所述第一设备广播无线连接可用性;及接收来自第二设备的无线连接请求;及响应于从所述第二设备接收所述无线连接的请求,由所述第一服务使得所述第一设备建立与第二设备的无线连接。

使得所述第一设备广播无线连接可用性可包括:使得所述第一设备的扬声器发出指定无线连接数据的音频样本。

所述无线连接数据可包括:用于第一设备的无线组件的服务集标识符(SSID);用于连接到所述无线组件的口令;及识别所述子集中至少一个应用的数据。

无线连接数据可以包括:用于所述第一设备的蓝牙组件的蓝牙(IEEE 802.15.1)标识符;及识别所述子集中至少一个应用的数据。

无线连接数据可以包括用于加密所述第一设备和第二设备之间通信的公共密钥。

所述无线连接请求可以包括第一手势输入;以及所述第一服务仅响应于确定所述第一手势与先前配置的手势匹配时,使得所述第一设备建立与所述第二设备的无线连接。

第一设备可以存储用于多个应用的数据,所述多个应用中的至少一个应用与包括在所述第一应用集合中的应用不同。

所述一个或多个应用的子集可以包括至少一个由所述第一设备为其存储数据的不同应用、及包括在第一集合中的至少一个应用。

第一设备可以同时与所述第二设备和所述第三设备通信。

当向在第三设备上运行的第三服务提供用于所述子集中至少一个应用的所述存储的应用数据时,所述第一设备可以不与所述第二设备通信。

所述第一设备可以包括用于移动设备的充电站。

可以实现本说明书描述的主题的特定实施例以实现以下的优点中的一个或多个。设备之间传送应用数据实现在不需要连接到局域网或广域网的情况下的内容和其它数据的共享。不能够与第三方应用服务器通信的设备可以从另一个用户设备或中间同步设备获得应用数据。客户端设备和同步设备可以能够更快地和/或以更安全的和/或可靠的方式在彼此之间经由分离的网络连接通信,导致比其它方式更快、更安全、和/或更可靠的应用数据传送。使用支持多个应用的服务允许应用开发者配置应用以使用分离的服务共享应用数据。此外,当用户设备从另一个用户设备获取应用数据而不是通过网络服务提供商的网络获取应用数据时,可以减小网络服务提供商(例如互联网服务提供商和蜂窝网络提供商)的网络流量。

本说明书中描述的主题的一个或多个实施例的细节在附图和下面的描述中列出。本主题的其它特征、方面和优点将从描述、附图和权利要求书中显而易见。

附图简要说明

图1A是其中设备之间传送应用数据的示例环境的框图。

图1B是其中使用同步设备在设备之间传送应用数据的示例环境的框图。

图2A是设备之间传送应用数据的示例数据流。

图2B是使用同步设备在设备之间传送应用数据的示例数据流。

图3A是用于在设备之间传送应用数据的示例应用界面的示意图。

图3B是用于在设备之间传送应用数据的示例同步服务界面的示意图。

图4是用于在设备之间传送应用数据的示例过程的流程图。

图5是用于在设备之间接收应用数据的示例过程的流程图。

图6是用于使用中间设备传送应用数据的示例过程的流程图。

图7是示例数据处理装置的框图。

各图中相似的附图标号和标示指示相似的元件。

具体实施方式

概述

同步(sync)服务有助于在设备(诸如移动电话、个人计算机和平板式计算机)之间传送数据。用户设备可以运行周期性地更新(例如,通过安装有所述应用的用户设备及/或通过可经由互联网访问的第三方应用服务器)的应用。运行在用户设备上的同步服务允许用户设备在其上安装的匹配应用之间传送应用专用数据,而不需要连接第三方应用服务器。同步服务可有助于用于多个不同的应用的此功能。例如,第一用户设备可以安装有新闻应用,该应用通过可经由互联网访问的第三方应用服务器周期性地接收新的新闻文章。未连接到互联网的第二用户设备可以使用运行于每个设备上的以有助于从第一设备向第二设备传送文章的同步服务从第一用户设备接收新的新闻文章。

此外,中间设备可以被用来促成用户设备之间的应用数据传送。例如,中间设备还可运行同步服务,并在本地存储中存储应用数据。运行于中间设备的同步服务允许用户设备将应用数据传送到中间设备,其可以充当临时和/或永久高速缓存以用于将应用数据传送到另一用户设备。

通过示例的方式,在第一设备上运行的同步服务可以建立与第二设备的无线连接,例如使用蓝牙或Wi-Fi直连。在第二设备上运行的同步服务可以向第一设备发送应用列表,这些应用安装在第二设备上并由同步服务支持。在第一设备上运行的同步服务可以使用应用列表来确定第一设备是否安装有任何匹配应用。如果是,则同步服务可以请求从匹配的应用进行应用更新。如果匹配的应用有待共享的数据,其可以将该信息发送到第一设备上的同步服务,第一设备上的同步服务将其发送到第二设备上的同步服务,且在所述第二设备上的同步服务将把该数据发送到在第二设备上相应的匹配应用。如果安装第二设备上的应用有待提供的数据,在第二设备上的同步服务也可以发送应用数据到第一设备。当使用中间设备时,该中间设备的同步服务可以接收、存储和传送应用数据,例如自动地和/或基于用户设备的请求接收、存储和传送应用数据。

这些特征和附加特征将在下面更详细地描述。

示例操作环境

图1A为其中在设备之间传送应用数据的示例环境100的框图,且图1B为其中同步设备160被用来在设备之间传送应用数据的示例环境150的框图。计算机网络102(诸如,局域网(LAN)、广域网(WAN)、互联网或其组合)将诸如用户设备1 104的一个或多个用户设备与一个或多个应用服务器106连接。在示例环境100中,用户设备1 104与用户设备2 110、用户设备3 120和用户设备N 130通信。在示例环境150中,用户设备1 104与同步设备160通信,同步设备160与用户设备2 110、用户设备3 120和用户设备N 130通信。

每个用户设备是一个电子设备,其能够例如通过网络102或在用户设备和/或同步设备之间请求和接收数据。示例用户设备104包括个人计算机、移动通信设备、平板式计算机和能够在网络102上和/或在彼此之间直接地发送和接收数据的其它设备。用户设备1 104经常包括有助于通过网络102发送和接收数据的一个或多个应用。例如,运行于用户设备1 104的新闻应用可以从新闻应用的应用服务器请求和接收电子新闻文章,而字处理应用可以从字处理应用的应用服务器请求和接收应用更新。

应用服务器106是能够管理一个或多个应用的应用数据的电子设备。示例应用服务器包括个人计算机、服务器计算机、和其它可以在网络102上发送和接收数据的设备。应用服务器106典型地包括用于管理应用数据的一个或多个应用和存储设备。例如,新闻应用的应用服务器可以将电子新闻文章存储于数据库中,并运行通过网络102向连接到所述应用服务器的订阅用户设备推送新文章的应用。作为另一示例,应用服务器可以存储在请求时提供给用户设备的应用的软件更新。

在示例环境100,用户设备2-用户设备N不通过网络102连接到任何应用服务器106。然而,它们与用户设备1 104通信,例如,经由有线或无线连接。当应用服务器有待提供给正使用特定应用的用户设备的新的应用数据108(诸如新内容或应用更新)时,用户设备1 104可以使用网络102(例如互联网),从应用服务器接收应用数据108。不能从应用服务器获得应用数据108的用户设备2-用户设备N可以代替地从用户设备1 104接收应用数据108。

在示例环境150,同步设备160作为用户设备1 104和其它用户设备2-用户设备N之间的中间设备。同步设备160是能够存储数据并与用户设备通信的电子设备。该同步设备可以例如是用户设备、用于移动设备的充电站、音频系统、网络路由器、便携式存储设备,或具有数据处理器并能够存储数据和运行同步服务的任何其它电子设备。

示例应用数据传送

图2A是用于在设备之间传送应用数据的示例过程200的数据流,以及图2B是用于在设备之间使用同步设备传送应用数据的示例过程250的数据流。第一设备210连接到网络102(例如互联网)。第一设备可以是例如移动电话或平板式计算机。第一设备210被示出为具有安装在其上的两个应用,应用X 212和应用Y 214。应用X 212和应用Y 214可以从它们各自的应用服务器,应用X服务器202和应用Y服务器204,周期性地接收应用(“app”)数据。app数据可以包括例如,相应应用的新内容和/或更新,诸如新闻app的新文章,音乐app的新的音乐,社交媒体app的新的通告和博客帖子、及生产率app的更新,仅举几个例子。

第一设备210还包括同步服务216,其是在设备上安装的应用,它被用来促成安装有同步服务216的用户设备之间的应用数据同步。通过抽象底层物理网络组件和管理网络连接,同步服务216促成设备之间的网络通信。在一些实施方式中,如应用X 212的应用可使用同步库218促成应用数据同步,例如,应用X 212可以静态地链接到提供由应用使用以用于同步的标准指令的同步库。同步库218可向应用提供例如从同步服务接收命令和通知的应用的机制,其具有将结果返回到同步服务的能力,配置专用于同步服务和/或应用的设定的能力和为应用发起同步的能力。

同步设备260包括多个应用的应用数据262,其存储在应用数据存储264并可由运行在同步设备260上的同步服务266访问。应用数据存储264可以为任何数量的应用存储应用数据262。在一些实施方式中,同步设备260通过安装对应的应用、并且根据由各自的应用提供的指令(例如,如同用户设备将会做的)存储应用数据,来存储应用数据。

连接设备

虽然以下描述指定用户设备彼此之间建立直接连接的方式(例如,如图2A所示),相同的过程可用于建立用户设备和中间同步设备之间的连接(例如,如图2B所示)。为了设备之间的app数据传送,设备首先彼此连接。尽管设备可以能够在不连接到另一设备的情况下与第三方应用服务器通信(例如使用蜂窝网络连接或Wi-Fi连接到宽带ISP),彼此直接连接设备可能是有利的(例如,当其它形式的通信可能较慢、不可靠,或者受网络服务提供商的限制时)。设备可以以包括有线及无线两者的多种方式被连接,或者“配对”。例如,第一设备210可以广播无线可用性,诸如蓝牙、相邻区域网络(NaN)、Wi-Fi热点、Ad-Hoc Wi-Fi或Wi-Fi直连可用性。该广播可以或者自动地、根据触发事件、或者响应于特定的用户交互,由特定应用来发起(诸如程序X 212)。广播也可由同步服务216发起(例如周期性地,或者响应于触发事件或用户交互)。广播可以是标准无线电波广播,或者在一些实施方式中是音频广播,并且它可以包括识别广播设备和连接信息的数据(诸如设备的网络地址和/或设备标识符)。

作为示例,第一设备210可被置于广播模式,通过无线电波广播其Wi-Fi连接信息。广播也可以为另一形式(例如,蓝牙信号、音频信号、IR信号等。其它设备(诸如第二设备220)可以自动地或者基于用户交互地请求连接到第一设备210。连接请求可以由第一设备210自动地或者基于用户交互地被接受或者拒绝(例如,当第一设备210接收到从第二设备220发送的连接请求时,第一设备210的用户可以得到提示以接受来自第二设备220的连接)。在一些实施方式中,置于广播模式的用户设备可接受来自已知/信任的用户设备的连接请求,同时提示设备的用户接受或拒绝来自未知/不可信任用户设备的连接请求。

作为另一示例,第一设备210可被置于监听模式,其中所述第一设备210监听请求与所述第一设备的连接210的连接请求信号(诸如音频信号、蓝牙信号、Wi-Fi信号、或IR信号)。例如,在第一设备210处于监听模式时,第二设备220可以发出音频信号,该音频信号包括用于连接到第二设备220的网络和设备信息。在接收到音频信号后,第一设备210可以解读信号并自动地或基于用户交互地接受或拒绝与第二设备220的连接(例如,当第一设备210确定识别第二设备220的音频信号是来自第一设备210已知的信任设备白名单中的信任设备时,第一设备210可以自动接受从第二设备220的连接请求)。在一些实施方式中,第一设备210可产生第二信号(诸如音频采样)以向第二设备220指示由第二设备220所产生的信号已被第一设备210接收到。第二音频信号可以包括例如指示是否接收成功的数据,且如果不是则第二音频信号包括错误代码以指示阻止连接的潜在问题。

在一些实施方式中,可在由同步服务支持的应用中发起广播和连接请求。例如,新闻应用可以包括允许用户在安装有相同新闻应用和同步服务的附近设备中选择的用户界面元素。附近设备的选择可以发起设备之间的连接,以传送特定的新闻文章。接收到来自于另一设备的连接请求或广播信息的设备可向设备的用户呈现用户界面,提示用户授权连接和/或传送。

可以采用其它用于设备之间无线发现和连接的方法和变形。例如,第一设备210可以周期性地发出音频信号,该音频信号可由其它处于监听模式的设备拾取,且该音频信号可以引起其它设备广播无线连接信息(诸如蓝牙或Wi-Fi直连网络地址)。在一些实施方式中,多个设备可以一次性相互连接。例如,第一设备210可以连接到多个其它的用户设备,并且所述连接可以是有线的、蓝牙、相邻区域网络(NaN)、Wi-Fi热点、Ad-Hoc Wi-Fi和/或Wi-Fi直连的任何组合。

如上所述,在一些实施方式中,触发事件可以被用来发起可用性广播、监听模式、及设备连接。例如,当第一设备210(例如,经由GPS检测,或者基于连接到特定的蜂窝网络塔或Wi-Fi路由器)检测到它在某一位置时,第一设备210可以使用基于位置的触发器,其使得第一设备210开始广播连接可用性。在一些实施方式中,触发可以基于来自应用服务器的新的应用数据的接收。例如,当应用X 212从应用X服务器202接收app数据时,应用X 212可以使得同步服务216发起可用性广播。

在一些实施方式中,设备可以被配置为周期性地广播可用性(例如,每分钟、每20分钟、每小时等)。在一些实施方式中,触发可以基于用户输入(例如,与用户界面的交互或使用基于动作或手势的输入)。上文提供的触发事件作为示例,其它触发事件或触发事件的组合可以被用来发起可用性广播、监听模式及设备连接。

在一些实施方式中,可用性广播和/或连接请求可以包括附加数据。例如,第一设备210可包括具有服务集标识符(SSID)的口令,用于可用性广播中的第一设备210的无线组件中。作为另一示例,可以广播/发送公共密钥以用于对用户设备之间的通信进行加密。在一些实施方式中,可用性广播和/或连接请求可以包括应用列表,该应用列表使得接收设备能够确定在接收设备上是否存在任何匹配的应用。该列表可以包括应用的其它信息,诸如关于可用的app数据的信息(例如,应用内容和/或更新)。

在一些实施方式中,可用性广播和/或连接请求可以包括握手数据。握手数据可以包括例如,口令、PIN码、和/或指定触觉和/或物理手势的数据。例如,第一设备210可包括一个或多个物理传感器以用于感测物理运动(诸如陀螺仪和/或加速度计),且握手数据可以包括指定特定手势的(例如,第二设备220被允许连接到第一设备之前,必须实质上由第二设备220复制的“保密握手”)物理传感器数据。

在使用触发器的情况下,特定手势的发生或其它握手数据可被用作触发器。作为示例,运行同步服务的移动电话的用户可以在握持电话时用物理手势触发同步服务的连接可用性广播。具有第二移动电话的另一用户可以通过做出类似的物理手势发起与第一电话的无线连接——其中一个或两个设备可向另一方传送指定该物理手势的数据,该数据可以在允许两个设备无线连接之前校验该手势在一定的确定性范围内匹配。

如上所述,可以使用与以上描述相同的用于建立用户设备之间的直接连接的过程来建立用户设备与中间同步设备之间的连接。图2B的示例过程250描绘了使用中间同步设备260从用户设备到另一用户设备的app数据传送。同步设备260上运行的同步服务266能够执行如上面所描述的第一设备210和第二设备220的同步服务的相同动作。在示例过程250中,同步设备260不具有用于任何已安装的应用的应用数据,而是在应用数据存储264存储app数据232。然而,在一些实施方式中,同步设备260可以是用户设备,在这种情况下,同步设备260可执行与第一和第二设备相同的动作。

在示例过程250,第一设备210与同步设备260建立第一无线连接270。可以使用任何参考示例过程200描述的连接方法建立无线连接。同步设备260的可以例如监听音频信号或其它无线连接请求;或,同步设备260可以经由例如Wi-Fi或蓝牙广播无线连接可用性。

同步设备260与第二设备220建立第二无线连接280。第二无线连接280可以使用与第一无线连接分离的协议(例如,蓝牙而不是Wi-Fi)并且可以与第一无线连接270同时或在不同的时间发生。可以以与上面描述的第一设备210及同步设备260之间的连接相同或类似的方式执行建立该连接。

虽然示例过程200和250描绘了设备之间的连接为无线连接,在一些实施方式中,所述连接可以是有线的。此外,用户设备与同步设备260之间的连接可以是有线和/或无线的任何组合。例如,在移动设备充电站中实施的同步设备260可能需要有线连接(例如,USB电缆连接);在蓝牙扬声器中实施的同步设备260可能需要蓝牙连接;以及在Wi-Fi路由器中的同步设备260可以允许无线和有线连接两者(例如,使用网络电缆)。

在一些实施方式中,用于设备之间无线通信的无线网络是载波网络(诸如蜂窝电信网络)。例如,整个载波网络可被看作是单个逻辑网络,使连接到载波网络的任何设备之间实现设备发现、配对、及应用共享。使用载波网络传送应用数据可以缓解网络流量(例如通过允许在载波网络上的设备相互获得更新和应用数据而不是从可能需要国际通信的第三方服务器获得更新和应用数据)。

在一些实施方式中,用于设备之间无线通信的无线网络是无线接入点(诸如Wi-Fi路由器)。无线接入点可以被配置为允许使用接入点发现及数据传送,而不是设备之间直接连接(例如在蓝牙或Wi-Fi直接连接中)。例如,路由器可以被配置为允许设备之间的同步服务通信,或被配置为运行在设备之间主动转发通信的同步助手服务。在一些实施方式中,无线接入点还可以用作同步设备,以促成用户设备之间的直接通信,并且作为中间设备在用户设备之间共享应用数据。

在设备之间直接传送应用数据

用户设备彼此建立连接之后,在它们之间可以传送应用数据。在示例数据流200中,第一设备210已经与第二设备220建立了无线连接240。在第一设备210上运行的同步服务216从在第二设备220上运行的同步服务226接收数据,该数据识别安装在第二设备220上的、由同步服务226支持的app 230。例如,同步服务226可发送app 230的列表,该列表包括应用X 222和应用Y 224。第一设备210上的同步服务216确定是否有任何app 230也被安装在第一设备210上。在示例数据流200中,应用X和应用Y都安装在两个设备上。

可以改变匹配所确定的方式。例如,应用可指定只有具有相同版本号码的应用、或具有特定范围内的版本号的应用符合匹配条件。另一应用可以指定任何版本的应用可以被认为是匹配的。在一些实施方式中,两个不同的应用可以被认为是匹配的。例如,应用开发者可以有几个不同的应用,其将被视为匹配的应用,诸如应用的免费版本和应用的付费高级版本,或虽然看起来不同但具有相同的基础功能的应用。在这些情况下,应用开发者可以例如使用同步库指定哪些应用将匹配。

在识别匹配应用之后,第一设备210上运行的同步服务216从应用X 212接收app数据232。app数据232可以在应用X 212和同步服务216之间使用本地通信插口传送。app数据232可以是应用X 212的任何数据(诸如应用内容或软件更新)。例如,当应用X 212是新闻应用时,app数据232可以包括几个最近从应用X服务器202接收到的应用X 212的新闻文章和/或应用X 212的新版本。每一应用可以确定什么需要包括在要传送的app数据中。

在一些实施方式中,在所述第一设备210上运行的同步服务216和/或匹配应用可以基于从第二设备220接收的信息确定可以传送哪些app数据。例如,发送到同步服务216的app 230的列表可包括对于每个应用的指示应用更新状态的信息。在这种情况下,同步服务216可向匹配应用X 212提供指示第二设备220上的匹配应用更新到特定时间的数据。例如,应用X 212可使用该信息以提供比相应应用X 222最后一次更新还要新的应用更新或内容。以新闻应用为例,如果第二设备220上的应用X 222的最新的新闻文章是一星期前的,则在第一设备210上的匹配应用X 212可发送包括在过去的一星期内从应用X服务器202接收到的每一篇新闻文章的app数据232。指示应用更新状态的信息无需被包括在app 230的列表中,并且可以以另一方式获得,例如,通过从匹配应用和/或同步服务发起的具体请求来获得。

从应用X 212接收到app数据232之后,同步服务216使用无线连接240发送app数据232到第二设备220上的同步服务226。同步服务226确定应用数据232是针对哪些应用(例如,使用包括在app数据232中的应用标识符),并将app数据232发送到匹配的应用,应用X 222。应用X 222以由应用指定的方式处理app数据232(例如,在所述新闻应用例中,通过将新闻文章呈现在第二设备220的显示器上来处理app数据232)。

在一些实施方式中,所述同步服务也有资格为同步服务应用接收和传送app数据。例如,应用服务器可以向用户设备提供用于同步服务应用的更新。所述同步服务应用可能能够同步服务将更新传送到其它使用同步服务的旧版本的设备。例如在第一设备210上的第一同步服务216可能比在第二设备220上的第二同步服务226更新,而且第一同步服务216可以发送app数据到第二同步服务226,以更新第二同步服务226。

第一设备210不需要与网络102或任何应用服务器通信来传送app数据232。例如,在向第二设备220发送应用更新之前几小时或几天,第一设备210可能已经连接到互联网并接收到应用更新。在第一设备210同时连接到网络102及第二设备220两者的情况下,从应用服务器接收的app数据可以在收到后即从第一设备210转发到第二设备220。例如,在当第一设备210连接到所述第二设备时如果应用X服务器202向所述第一设备上的应用X 212提供新的文章,应用X 212可以通过相应设备的同步服务216和226,将所述新的文章发送到在第二设备上的匹配应用X 222。

在一些实施方式中,第二设备220可以连接到网络202,并且通过该网络102,到应用服务器。与网络102的连接不一定排除第二设备220接收来自第一设备210的app数据。例如,在第二设备220和网络102的连接速度慢和/或不可靠的情况下,则期望在设备之间的传送,并且继续。

虽然示例数据流200描绘了从安装在第一设备210上的应用向安装在第二设备220上的匹配应用传送app数据232,这些设备之间的无线连接240也可用于双向通信(例如,从第二设备220上的应用向第一设备210上的匹配应用发送app数据)。例如,在第二设备220上的应用Y 224可以是更加新的和/或具有其匹配的应用(即在第一设备210上的应用Y 214)所没有的app数据。如同应用X 212,在第二设备220上的同步服务226可以接收来自应用Y 224的app数据并发送app数据到在第一设备210上运行的同步服务216。第一设备上的同步服务216然后可以将app数据转发到应用Y 214。

在一些实施方式中,所述同步服务可以支持在相互不匹配的应用之间传送数据。例如,在第一设备210上运行的同步服务216接收的app数据232可以旨在用于在第二设备上的应用Y,而不是用于匹配应用X 222。例如,如果多个应用的开发者已经使得应用能够处理类似的应用数据,这可能是有用的。例如,社交网络应用和文本通信应用的开发者可以允许文本通信应用接收通过社交网络应用发送的文本通信。

在一些实施方式中,所述同步服务支持从设备到另一设备传送应用。例如,在第一设备210具有应用安装于其上而所述第二设备220没有安装该应用的情况下,在第一设备210上的同步服务216可以将整个应用传送到在第二设备220上的第二服务226,以将该应用安装在第二设备220上。在第一设备210具有合格于用于传送到第二设备220的应用的情况下,同步服务216可以向在第二设备220上的同步服务226发送指示合格应用的数据。响应于接收来自在设备220上运行的同步服务226的对可用应用的请求,可以由同步服务216执行发送指示合格应用的数据。在接收到指示合格应用的数据之后,第二设备220可以请求将特定的合格应用或多个应用传送至并安装在第二设备220上(例如,作为对第二设备220的用户就合格应用所作的选择的响应)。例如,在第二设备220上的同步服务226可以使所述第二设备向第二设备的用户显示提示,允许用户从第一设备210选择可用的应用。

在一些实施方式中,通过第一设备210提供给第二设备220的app数据232可以源自本地(例如,在第一设备210上的应用X 212)而不是来自应用X服务器202。作为示例,图像共享应用可以访问由第一设备210捕获并本地存储的图像以及由应用服务器提供的图像。可将所述本地图像作为应用数据与由应用服务器提供的图像一起或分开地提供到第二设备220上的匹配图像共享应用。

在一些实施方式中,例如为了安全目的,所述同步服务阻止本地app数据在设备之间传送。以图像共享应用为例,在第一设备210上的同步服务216可阻止向所述第二设备220提供本地图像,并仅允许由应用X服务器202提供的图像或其它应用数据。

在一些实施方式中,由用户设备的用户选择性地授权用户设备之间的app数据传送。例如,如果同步服务确定所述第一设备210有更新要发送给第二设备220,同步服务可以在发送app数据到所述第二设备之前,提示用户确认。类似地,运行在第二设备220上的同步服务226可提示第二设备220的用户来接受app数据的传送(例如通过提示用户从第一设备210接受用于特定的应用的app数据。在一些实施方式中,数据传送在后台处理(例如,不需要用户交互)。例如,当与具有匹配应用的另一设备连接时,某些应用可以有授权自动传送数据。可以使用用户偏好来管理何时用户收到传送提示,且所述偏好可以是通用的和/或应用专用的。类似地,某些类型的app数据可以被自动传送,而其它类型的app数据可能需要特定授权,除非用户偏好以其它方式指定。例如,用户可以指定特定应用可以在后台自动检索应用内容而无需寻求用户授权,但应用更新不应在没有用户特别授权时被自动传送。

在一些实施方式中,应用和/或app数据的类型可具有相应的优先级。具有较高优先级的应用和app数据可先于具有较低优先级的app数据传送。例如,同步服务的用户偏好可以指定新闻应用应该在社交网络应用或生产力应用之前被更新。作为另一示例,应用可能具有指定该应用更新应具有高于应用内容的优先级的偏好。应用和/或app数据的优先级可以通过使用或不使用用户偏好或应用特定的偏好,由同步服务决定。在多个用户设备连接在一起的情况下,用户设备也可以具有优先级(例如,基于用户偏好、要传送的数据量,等等)。

虽然示例数据流200示出了每个用户设备上的两个应用,用户设备可以有任意数量的应用,无论匹配与否。在为多个应用传送app数据的情况下,每个设备上的同步服务将app数据转发给适当的应用(例如,如在从第一设备210上的同步服务216无线发送到在第二设备220上的同步服务226的数据包中所指示的)。

虽然示例数据流200示出了两个用户设备,在一些实施方式中,许多用户设备可以相互连接(例如,以多对一或多对多关系相互连接)。例如,第一设备210可以连接到其它五个用户设备。第一设备210与其它的设备之间的匹配应用可以是相同的或不同的,且同步服务216可以不发送任何app数据,或可以发送app数据到全部的设备,每次向一个设备发送或同时发送(例如,以循环方式发送数据包,直到所有用户设备接收到所有的app数据为止)。

利用中间设备发送app数据

使用中间设备在用户设备之间传送app数据的方式(例如,如图2B所示的)与在用户设备之间直接传送app数据的方式类似。在一些实施方式中,用户设备可以作为中间设备,在这种情况下,所述中间设备可以执行与参考上述示例过程200描述的用户设备执行的操作类似的操作。无论中间设备是用户设备或是不同类型的设备前文,参考示例过程200在各个实施方式中描述的用户设备和用户设备的同步服务的每个特征也可以是中间设备和在中间设备上运行的同步服务的各个实施方式的特征。

在用户设备连接到中间设备之后,应用数据可以在设备之间传送。在示例过程250中,第一设备210与同步设备260建立了无线连接270。在一些实施方式中,连接到同步设备266的设备可以为所有应用传送与同步服务兼容的app数据,且在同步设备260上的同步服务266可以确定哪些app数据被存储在数据存储264中,哪些app数据被丢弃。例如,如果同步设备260具有相同应用的app数据且该应用的app数据至少与第一设备210提供的app数据232具有同样的最新状态,则同步服务266接收的app数据232可以被丢弃。

在一些实施方式中,在传送任何app数据232之前,在第一设备210上的第一同步服务216和在同步设备260运行的同步服务266确定将传送哪些app数据232。例如,第一服务216可以使得第一设备210向同步服务266发送安装于第一设备210上的支持同步的应用列表以及表示应用的更新状态的信息。同步服务266然后可以仅请求在第一设备210上的具有比在同步设备260上的更新app数据的应用的app数据。在一些实施方式中,同步服务266可以使同步设备260向在第一设备210上的同步服务216发送应用列表,同步设备260具有所述应用的app数据与指示app数据的更新状况的应用信息。在这种情况下,在第一设备210上的同步服务216可使用该列表确定安装在第一设备210上的应用中哪些具有较新的app数据,并且仅发送用于那些应用的app数据232。

在从第一同步服务216接收app数据232之后,在同步设备260上的同步服务266确定app数据232是用于哪个应用的(例如,使用包括在app数据232中的应用标识符),并且将用于该应用的app数据232存储于app数据存储264中。同步设备260可以在同步服务266的指导下接收并存储app数据,该app数据用于任何数量的同步服务266所支持的应用以及来自于任何数量的用户设备。在一些实施方式中,该同步设备可以连接到网络102并从所述应用服务器直接接收app数据。在这种情况下,更可能的是,同步设备260被用于向用户提供app数据而不是接收app数据。

当同步设备260接收对app数据232的请求并为第二设备220提供app数据232时,其执行方式类似于上述参考示例过程200描述的第一设备210的方式。在连接到第二设备220之后(例如经由第二无线连接280),同步设备260上运行的同步服务266可以从在第二设备220上运行的同步服务226接收数据,该数据识别安装在第二设备220并且被同步服务226支持的app 230。例如,同步服务226可发送app 230的列表,其包括应用X 222和应用Y 224。

在同步设备260上的同步服务266确定是否任何app 230有app数据存储在同步设备260上。在示例数据流250中,同步设备上的app数据存储264包括用于应用X的app数据262。在识别应用之后,在同步设备260上运行的同步服务266从app数据存储264检索app数据232,并将app数据232提供给在第二设备220上运行的同步服务226。app数据232可以是用于X 212的任何数据(诸如应用内容或软件更新)。

在一些实施方式中,只有当的应用与包括在由第二设备220提供的app 230列表中的应用匹配时才提供所述存储于同步设备260的应用app数据232。可以有不同的匹配确定方式,并在上文中参照示例过程200描述。

在一些实施方式中,同步设备260上运行的同步服务266和/或匹配应用可以基于从第二设备220接收的信息确定可以传送哪些app数据。例如,发送到同步服务266的app 230列表可以包括对于每个应用指示应用更新状态的信息。在这种情况下,同步服务266可以使用该信息以例如为比上一次对应应用更新还要近期的内容提供更新。

虽然示例数据流250描述了从安装在第一设备210的应用到同步设备260的app数据232的传送,以及从同步设备260到第二设备220上的匹配应用的传送,无线连接270和280可以用于为两个用户设备的双向app数据请求和传送(例如,将app数据从同步设备260发送到第一设备210和/或在同步设备260上的同步服务266从第二设备220接收app数据。

如同示例过程200,在一些实施方式中,所述同步服务可以为不匹配的应用提供传送数据支持。同步服务266还可以支持整个应用的传送。在一些实施方式中,所述同步服务阻止本地应用数据在设备之间传送(例如,为了安全目的)。在一些实施方式中,设备之间的app数据传送被用户设备的用户选择性授权。例如,如果同步服务确定第一设备210有更新要发送到同步设备260,同步服务可以在发送app数据到同步设备260之前,提示用户确认。类似地,在第二设备220上运行的同步服务226可以提示第二设备220的用户接受app数据的传送(例如,通过提示用户从同步设备260接受用于特定应用的app数据)。

在一些实施方式中,在后台处理数据传送(例如,不需要用户交互)。在一些实施方式中,应用和/或app数据的类型可具有相应的优先级。具有较高优先级的应用和app数据可在具有较低优先级的app数据之前传送。在多个用户设备连接到同步设备的情况下,用户设备也可以具有优先级(例如,基于用户偏好、应用优先级、要传送的数据量,等等)。

示例用户界面

图3A是用于在设备之间传送app数据的示例应用界面310的图示。所述界面可以被呈现在用户设备上,诸如移动电话、平板式计算机、或个人电脑。该示例界面310示出应用312的名称“应用XYZ”,以及应用内容314和用户界面元素316a、316b和316c以用于发起应用内容314到其它用户设备和/或同步设备的传送。

例如,该应用可以是图像共享应用,其从服务器设备周期性地接收流行的图像(例如,内容314)。用户界面元素316a-316c允许设备的用户选择一个或多个具有附近设备或同步设备的用户来传送内容314。例如,选择元素316a可以使用户设备广播连接可用性或接受来自与user 123相关联的用户设备的连接请求,选择元素316b可以使得用户设备向所有附近用户广播连接可用性和/或接受来自五个附近用户的任何连接请求,且选择元素316c可以使得用户设备在下一小时内广播连接可用性(例如,通过广播Wi-Fi SSID和/或周期性地广播包括蓝牙连接信息的音频信号)。

图3B是用于在设备之间传送app数据的示例同步服务界面320的图示。所述界面可以被呈现在用户设备(诸如移动电话、平板式计算机、或个人电脑)。该示例界面320描述了应用的名称322“同步服务”、消息324、用户设备连接信息326、和用户界面元素328以用于发起到所述用户设备的应用内容传送。

例如,界面320描绘了用户设备可以响应于识别广播用户设备或同步设备、或者接收连接请求而显示的信息。所述同步服务提供消息“1个同步服务用户有新的内容要提供给你!”这通知设备用户有新的app数据可用。用户设备连接信息326包括识别其它同步服务用户“UserABC”的信息、该用户的用户设备的标识符、“UserABC的X品牌的电话”、和其它用户设备对其具有新的待传送的内容的应用(或多个应用)“应用XYZ”。用户界面元素328允许用户设备的用户接受或拒绝设备之间的连接。接受该请求可发起设备之间的无线连接,而拒绝请求可以使得用户设备忽略所述请求。

除了那些在用户界面310和320例子中所描绘的,还可以提供其它界面和其它选项和/或组合的选项。

示例app数据传送过程

图4是用于在设备之间传送app数据的示例过程400的流程图。过程400可由数据处理装置执行(诸如上述参考图1描述的用户设备)。

运行在第一设备上的第一服务使所述第一设备与第二设备建立无线连接(402)。例如,在第一设备上运行的同步服务可使第一设备与第二设备建立Wi-Fi或蓝牙连接。在一些实施方式中,第一服务使得第一设备广播无线连接可用性。可以接收从所述第二设备发出的无线连接请求,且可以响应于接收到所述无线连接请求建立与第二设备的无线连接。

例如,广播无线连接可用性可包括使得第一设备的扬声器发出指定无线连接数据的音频样本。第二用户设备通过麦克风接收所述音频样本并解读编码在音频样本中的无线通信信息。在一些实施方式中,无线连接数据包括:用于所述第一设备的无线组件的服务集标识符(SSID)、用于连接到无线组件的口令、及识别在第一设备上安装的应用的数据。在一些实施方式中,无线连接数据包括用于第一设备的蓝牙组件的蓝牙(例如,IEEE 802.15.1)标识符、及识别在第一设备上安装的应用的数据。

在一些实施方式中,无线连接数据包括在第一设备和第二设备之间通信加密的公共密钥。例如,同步服务可以与加密密钥对相关联,并且可以使用无线连接数据将所述公共密钥提供给第二设备。

在一些实施方式中,响应于接收第一手势输入,第一服务使得第一设备广播无线连接可用性。例如,第一设备可以具有一个或多个用于感测第一设备的物理运动的物理传感器(诸如加速度计和/或陀螺仪)。在这种情况下,所述第一手势输入可以是已被物理传感器解读的物理手势。同步服务可以将物理手势与预先记录的物理手势匹配,并且使用该匹配来确定该第一设备应当广播无线连接可用性。从第二设备接收到的无线连接请求可以包括第二手势输入。例如,运行在第二设备上的同步服务可以连同无线连接一起传送使用第二设备的加速计和/或陀螺仪记录的表示第二物理手势的数据。在这种情况下,第一服务可以只响应于当确定第二手势输入与第一手势匹配时,使第一设备与第二设备建立无线连接。例如,同步服务可以在一定的确定性范围内基于表示手势的数据尝试匹配两个手势,以确保只有当来自每个设备的“握手”匹配时才建立连接。

在一些实施方式中,第一设备具有一个或多个触摸传感器以用于感测在触敏屏幕(诸如电容性屏幕或电阻性屏幕)上的触觉输入。第一手势输入可以是由触摸传感器解读和/或记录的图案。例如,用户可在触摸屏上画形状或输入PIN作为第一手势。如同作为“握手”使用物理手势,同步服务可以将该手势与预先记录的图案匹配,并使用该匹配来确定所述第一设备应当广播无线连接可用性。从第二设备接收到的无线连接请求可以包括第二手势输入,诸如使用第二设备的触摸屏记录的表示第二触觉输入的数据。以类似于上述的方式,第一服务可以只响应于当确定第二手势输入与第一手势匹配时使第一设备建立与第二设备的无线连接。

尽管手势输入在以上描述为用于发起无线连接,在一些实施方式中,其可在无线连接建立后且在发起数据传送之前用于校验或认证。

接收指定安装在第二设备中并且由运行在第二设备上的第二服务支持的应用数据(404)。例如,第二设备可提供包括在设备中且被同步服务支持的单个应用或应用的列表。运行在所述第二设备上的第二服务可以使得该数据被发送到第一设备(例如,响应于接收到连接请求,响应于检测到第一设备的无线连接可用性,和/或响应于接收指示指定所述应用应被发送的数据的用户输入)。

第一服务确定安装在第一设备上的第一应用与第二设备上安装的应用匹配(406)。第一应用与第一服务分离。例如,由同步服务支持的应用可以被安装在第一设备和第二设备两者上。第一服务可以使用由第二设备提供的数据以确定两个设备安装有相同的应用。

第一服务接收用于第一应用的第一应用数据(408)。第一应用数据可由第一应用提供。例如,第一服务可以提供识别对第一设备上的第一应用的匹配应用的数据。第一应用可以使用该数据来确定应用数据是否应当被发送到第二设备(例如,如果识别匹配应用的数据指定在第二设备上的应用的版本是过时,第一应用则可以生成第一应用数据,其包括匹配应用可以使用以使自身更新的信息)。在确定第一应用数据被发送到匹配应用之后,所述第一应用可以将该数据提供给所述第一服务以用于向所述第二设备传送。

在一些实施方式中,第一服务通过第一应用与第一服务之间的第一通信插口接收第一应用数据,且所述第一应用数据可以包括标识所述第一应用的标识符。例如,可使用网络插口将第一应用数据从第一应用传送到同步服务。所述第一应用数据标识所述第一应用(例如,使得运行在所述第二设备上的同步服务可以确定所述数据将转发到哪些应用)。

第一服务使得第一设备使用无线连接将第一应用数据发送到运行于第二设备上的第二服务(410)。例如,在第一设备上的同步服务可以使第一设备通过蓝牙或Wi-Fi连接将包括第一应用数据的数据包发送到第二设备。在一些实施方式中,也可以使用有线连接,例如,可使用USB电缆发送第一应用数据。如下文参考图5进一步详细描述,在第二设备上运行的第二服务可以接收应用数据并将其发送到安装在第二设备上的匹配应用。

尽管过程400被描述为发送用于单个应用的应用数据,在一些实施方式中,可能在多个应用之间传送数据。例如,第一服务可以确定安装在第一设备上的第二应用与安装在第二设备上的第二应用匹配。第一服务可以接收来自第二应用的第二应用数据,且第一服务可以使第一设备使用无线连接将第二应用数据发送到第二设备。如上所述,可以每次一个地或接近同时地发送用于多个应用和/或多个连接设备的应用数据,例如,使用循环(round-robin)数据传送来轮换为其传送数据的应用、和/或正在向其传送数据的设备。

图5是用于设备间接收应用数据的示例过程500的流程图。过程500可由数据处理装置(诸如上述参考图1描述的用户设备)执行。

第一设备接收指示无线连接可用的无线数据,所述无线数据指定用于第二设备的标识符(502)。例如,第一设备可检测由第二设备发出的Wi-Fi或蓝牙信号,或者第一设备可以监听指示第二设备可用于无线通信的音频样本。

运行在第一设备的第一服务使第一设备建立与第二设备的无线连接(504)。例如,运行在第一设备的同步服务可以响应于确定无线数据包括指定第一设备正运行同步服务的信息,指令第一设备的网络控制器连接到第二设备,或从第二设备接受连接请求。

从在第二设备上运行的第二服务接收数据,该数据指定安装在所述第二设备且由第二服务支持的应用(506)。例如,第二服务可以提供用于在第二设备上安装的应用或应用列表的标识符。在一些实施方式中,该数据还指定其它信息(诸如应用的版本、或指示应用更新状态的时间戳)。

第一服务确定安装在第一设备上的第一应用与第二设备上安装的应用之一匹配(508)。第一应用与第一服务分离。例如,可以由第一设备上的同步服务将第二设备发送的应用列表中所标识的应用与在第一设备上安装的应用比较。用于确定应用是否匹配的准则可以用程序开发者配置(例如,一些应用可以仅当相应应用的版本号匹配或在所指定的范围内时才匹配)。

第一服务使得第一设备第二服务发送至对来自与第一应用匹配的匹配应用的第一应用数据的第一请求(510)。例如,第一应用在被提供同步服务连接到具有匹配应用的设备的指示时,可以指令同步服务向第二设备请求应用数据。发送到第二服务的请求可以是一个或多个匹配应用,并且可以针对特定的应用数据、或是应用数据的一般请求。

第一服务从第二设备接收用于第一应用的第一应用数据(512)。第一应用数据可以包括例如由第一应用所请求的特定数据,或者由第二设备上的匹配应用选择的以向第一应用提供的应用数据。如上所述,应用数据本身可以是用于应用内容和/或应用本身的更新。

第一应用数据被提供给第一应用(514)。例如,运行在第一设备上的同步服务可以从应用数据包括的数据中识别第一应用(诸如在网络数据报头中的标识符),并使用网络通信插口将第一应用数据转发到所识别的应用中。

在一些实施方式中,单个用户设备可以运行同步服务,该同步服务能够执行上述的过程400和500两者的功能。应用数据传送不需要是单向的,且可以在具有匹配应用的运行同步服务的设备之间执行应用数据相互共享。

图6是用于使用中间设备传送应用数据的示例过程600的流程图。过程600可由数据处理装置(诸如上面参照图1描述的同步设备)执行。

在一些实施方式中,运行在第一设备上的第一服务使得第一设备广播无线连接可用性。可以接收来自第二设备的无线连接请求,且第一服务可以响应于接收到所述无线连接请求与第二设备建立无线连接。

例如,广播无线连接可用性可包括使得第一设备的扬声器发出指定无线连接数据的音频样本。第二用户设备可通过麦克风接收所述音频样本,并解读编码在音频样本中的无线通信信息。在一些实施方式中,无线连接数据包括:用于第一设备的无线组件的SSID、用于连接无线组件的口令、以及识别在第一设备上安装的应用的数据。在一些实施方式中,无线连接数据包括用于第一设备的蓝牙组件的蓝牙标识符以及识别在第一设备上安装的应用的数据。

在一些实施方式中,无线连接数据包括在第一设备和第二设备之间加密通信的公共密钥。例如,同步服务可以与加密密钥对相关联,且所述公共密钥可以与无线连接数据一起提供给第二设备。

在一些实施方式中,无线连接请求包括第一手势输入,且第一服务仅响应于确定所述第一手势输入与先前配置的手势匹配时使得第一设备广播无线连接可用性。例如,用户设备可以具有一个或多个物理传感器(例如加速度计和/或陀螺仪)以用于感测第一设备的物理运动。在这种情况下,所述第一手势输入可以是已经被物理传感器解读的物理手势。在同步设备上的同步服务可以将物理手势与预先记录的物理手势匹配,并用该匹配来确定该同步设备应当广播无线连接的可用性。

尽管以上将手势输入描述为用于发起无线连接,在一些实施方式中,它可用于无线连接建立后且在发起数据传送之前校验或认证。

在第一设备上运行的第一服务从在第二设备上运行的第二服务接收安装在所述第二设备上并由所述第二服务支持的一个或多个应用的第一集合中每个应用的应用数据(602)。第一集合中的每个应用独立于所述第二服务。例如,运行在中间同步设备上的同步服务可以从在用户设备上运行的同步服务接收用于应用集合的应用数据。

在一些实施方式中,第一设备存储用于多个应用的应用数据,并且所述应用的至少一个与包括在第一应用集合中的应用不同。例如,中间同步设备可以存储用于许多应用的应用数据(例如,由多个用户设备随时间提供的和/或从第三方应用服务器获得的)。

对于第一集合中的每个应用,第一服务使得第一设备存储用于应用的应用数据(604)。在一些实施方式中,如果同步设备尚不具有该应用更加新的应用数据,则第一服务只存储用于该应用的应用数据。

第一服务接收来自在第三设备上运行的第三服务的对安装在所述第三设备中的一个或多个应用的第二集合中的每个应用的应用数据的请求(606)。第二集合中的每个应用都与第三服务分开。例如,在用户设备上运行的同步服务可以请求在用户设备上安装的应用列表的应用数据。

第一服务确定第一设备存储第二应用集合中的一个或多个应用的子集的应用数据(608)。例如,如果用户设备请求五个应用的应用数据,在同步设备上的同步服务可以确定该同步设备具有所述五个应用中的四个应用的应用数据。在一些实施方式中,所述一个或多个应用的子集包括第一设备为其存储应用数据的多个不同应用中的至少一个及包括在所述第一集合中的应用中的至少一个。例如,同步设备可以具有用于以下各项的app数据:i)所述第二集合中的应用,其中app数据不是从第一设备接收到的、及ii)所述第二集合中的应用,其中app数据是从第一设备接收到的。不是从第一设备接收到的应用数据可能已经从例如不同的用户设备或应用服务器接收到。

第一服务使得第一设备将所存储的所述子集中的至少一个应用的应用数据提供给在第三设备上运行的第三服务(610)。例如,对于同步设备具有其的应用数据的所有四个应用,同步服务可以提供用于所有四个应用。在一些实施方式中,第一设备同时与第二设备和第三设备通信。在一些实施方式中,在将所存储的所述子集中的至少一个应用的应用数据提供给在第三设备上运行的第三服务时,第一设备不与第二设备通信。例如,在这种情况下,在同步设备连接到第三设备之前,从中接收到app数据的用户设备已经从所述同步设备断开连接。

虽然上述对应图4-6描述的过程400、500和600被描述为通过无线通信执行,每个过程中的一些或全部可以使用有线连接以用于设备之间的通信。在一些实施方式中,关于图6描述的第一设备包括用于移动设备的充电站。例如,第一设备可以允许用户设备通过USB电缆连接到运行同步服务的中间设备。所述中间设备也可以是许多其它类型的设备(诸如无线音频系统或网络路由器)。

图7为示例数据处理装置700的框图。该系统700包括处理器710、存储器720、存储设备730和输入/输出设备740。每个部件710、720、730和740可以例如使用系统总线750互连。处理器710能够处理用于在系统700内执行的指令。在一个实施方式中,处理器710是单线程处理器。在另一实施方式中,处理器710是多线程处理器。处理器710能够处理存储在存储器720中或者存储设备730上的指令。

存储器720在系统700内存储信息。在实施方式中,存储器720是计算机可读介质。在一个实施方式中,存储器720是易失性存储器单元。在另一实施方式中,存储器720是非易失性存储器单元。

存储设备730能够为系统700提供大容量存储。在一个实施方式中,存储设备730是计算机可读介质。在各种不同的实施方式中,存储设备730可以例如包括硬盘设备、光盘设备或其它的大容量存储设备。

输入/输出设备740为系统700提供输入/输出操作。在一个实施方式中,输入/输出设备740可以包括一个或多个网络接口设备(例如,以太网卡,串行通信设备(例如,RS-232端口))和/或无线接口设备(例如,802.11卡)。在另一实施方式中,输入/输出设备可包括驱动器设备,其被设置为接收输入数据和发送输出数据到其它输入/输出设备(例如,键盘、打印机和显示设备760)。然而,也可以使用其它实施方式,诸如移动计算设备、移动通信设备、机顶盒电视用户设备等。

在本说明书中所描述的本主题的实施例及操作可以在数字电子电路,或在计算机软件、固件、或硬件中实施,包括本说明书中公开的结构以及其结构等同物,或其中一个或多个的组合。本说明书中所描述的本主题的实施例可以实施为一个或多个计算机程序(即,一个或多个计算机程序指令模块),其被编码在计算机存储介质上由数据处理装置执行、或者控制数据处理设备的操作。

计算机存储介质可以是、或可以被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备,或以上的一个或多个的组合之中。而且,虽然计算机存储介质不是传播信号,计算机存储介质可以是计算机程序指令源或目标,其中该计算机程序指令被编码于人为生成的传播信号中。计算机存储介质也可以是、或者被包括在一个或多个分离的物理组件或介质中(例如,多个CD、盘或其它存储设备)。

本说明书中描述的操作可以被实施为由数据处理装置执行的操作,其中该操作在计算机可读存储设备上存储的,或者从其它来源接收的数据上执行。

术语“数据处理装置”包括所有种类的装置、设备和机器以用于处理数据,包括例如可编程处理器、计算机、片上系统,或前述的多个,或前述的组合。所述装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(应用专用集成电路)。除了硬件之外,该设备还可以包括创建用于考虑之中的计算机程序执行环境的代码(例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们的一个或多个的组合)。该装置和执行环境可以实现各种不同的计算模型基础结构(诸如web服务、分布式计算和网格计算基础结构)。

计算机程序(也公知为程序、软件、软件应用、脚本、或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性语言或过程语言,并且其可以以任何形式来部署,包括作为独立的程序或者作为模块、组件、子例程、对象、或者其它适合在计算环境中使用的单元。计算机程序可以但不是必须地对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,一个或多个存储在标记语言文档中的脚本)的文件的部分,在专用于考虑之中的所述程序的单个文件中,或在多个协同文件中(例如,存储一个或多个模块、子程序、或代码部分的多个文件)。计算机程序可以被部署为在一个计算机上执行,或在多个位于一个地点或跨多个地点分布且通过通信网络互连的计算机上执行。

本说明书所描述的过程和逻辑流程可由一个或多个可编程处理器执行,该处理器通过对输入数据执行操作并生成输出,执行一个或多个计算机程序以执行动作。该过程和逻辑流还可以通过专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(应用专用集成电路))执行,并且装置也可以被实现为专用逻辑电路。

适合执行计算机程序的处理器作为示例包括通用和专用微处理器两者、以及任何类型的数字计算机的任何一个或多个处理器。总体而言,处理器将从只读存储器或随机存取存储器或这两者接受指令和数据。计算机的必要元件是根据指令执行操作的处理器和一个或多个用于存储指令和数据的存储器设备。总体而言,计算机还将包括或可操作地耦合到一个或多个用于存储数据的海量存储设备(例如磁盘、磁光盘或光盘)以从一个或多个海量存储设备接收数据、或向其传送数据、或者接收和传送数据两者。然而,计算机不必一定具有这样的设备。而且,计算机可以嵌入在其它设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或者便携式存储设备(例如,通用串行总线(USB)闪速驱动器),这里仅给出几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备(例如EPROM,EEPROM和闪存设备);磁盘(例如内部硬盘或可移动盘);磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储可以被专用逻辑电路补充或合并在专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的本主题的实施例可以实现在计算机上,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器))监视器以及键盘和指示设备(例如鼠标或轨迹球,用户可以用键盘和指示设备向计算机提供输入)。也可以使用其它种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感观反馈(例如,视觉反馈、听觉反馈,或触觉反馈);并且,可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过发送文档至用户使用的设备及接收来自用户设备的文档来与用户交互;例如,通过响应于从web浏览器接收的请求,将网页发送到用户的用户设备上的web浏览器来与用户交互。

本说明书中描述的主题的实施例可以实施在计算系统中,其包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,用户计算机,其具有图形用户界面或web浏览器,用户可以通过web浏览器与本说明书中描述的主题的实施方式交互),或包括一个或多个这类后端、中间件或前端组件的其任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)、及对等式网络(例如ad hoc对等网络)。

计算系统可以包括用户和服务器。用户和服务器通常彼此远离,并且一般通过通信网络进行交互。用户和服务器的关系借助于在各自计算机上运行的并具有用户-服务器关系的计算机程序而建立。在一些实施例中,服务器发送数据(例如,HTML页面)到用户设备(例如,为了向与用户设备进行交互的用户显示数据和接收来自与用户设备进行交互的用户的用户输入)。在服务器处可以从用户设备接收所述用户设备生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多具体的实施方式细节,这些不应被解释为限制本发明的范围或者可以要求保护的范围,而是作为特有于特定发明的特定实施例的特征的描述。在此说明书中在单独实施例的上下文中所描述的某些特征也可以结合实现在单个实施例中。反之,在单个实施例的上下文中描述的多个不同特征也可以分别实现在多个实施例中或者实现在任意适当的子组合中。此外,尽管特征可能在上面被描述为在某些组合中起作用并且甚至初始如此要求保护,来自要求保护的组合的一个或多个特征在某些情况下可以从该组合中去除,并且要求保护的组合可以指向子组合或者子组合的变化。

类似地,虽然在附图中描述了操作的特定次序,这不应当被理解为要求这些操作必须以所示的特定次序或以顺序次序执行,或执行所有示出的操作,来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上面描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解为所描述的程序组件和系统总体地可以被集成在单个软件产品中或封装到多个软件产品中。

因此,已描述了该主题的特定实施例。其它实施例在随附权利要求范围内。在一些情况下,在权利要求中陈述的操作可以以不同的次序执行并且仍可实现期望的结果。此外,在附图中描述的过程不必需要所示的特定次序、或顺序次序来实现期望的结果。在某些实施方式中,多任务以及并行处理可以是有利的。

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