用于执行应用的方法、系统和客户端设备与流程

文档序号:12786184阅读:195来源:国知局
用于执行应用的方法、系统和客户端设备与流程

本申请属于申请日为2011年10月06日的中国发明专利申请201180059523.8的分案申请。

技术领域

本公开涉及计算设备,诸如个人计算机、平板计算机、膝上型机以及蜂窝电话。



背景技术:

各种计算设备能够接收并执行应用。诸如平板计算机和智能手机的移动设备变得越来越受欢迎,部分原因在于通过下载并执行应用的能力来扩展这样的移动设备的功能的能力。应用中的部分类似于能够由诸如个人计算机、工作站或其他这样的计算设备的其他计算设备执行的应用。



技术实现要素:

在一个示例中,计算机可读存储介质包括指令,所述指令当被执行时促使计算设备的处理器:在第一客户端设备处执行应用;确定该应用的当前应用状态,其中该当前应用状态包括该应用的当前视觉表示的至少部分;将所确定的当前应用状态的指示从第一客户端设备发送给服务器设备,其中所确定的当前应用状态的指示包括用于重新创建该应用的当前视觉表示的至少部分的信息;以及响应于接收不同的客户端设备正试图将另一个应用状态的指示传输给服务器设备的指示,促使第一客户端设备停止当前应用状态的随后指示的传输被发送给服务器设备,以防止在来自第一客户端设备的应用状态更新和来自不同的客户端设备的应用状态更新之间的冲突。

在另一个示例中,客户端设备包括显示器;接口,其被配置成与外部设备交换数据;控制单元,其被配置成执行应用以促使显示器显示该应用的当前视觉表示,确定该应用的当前应用状态,其中该当前应用状态包括该应用的当前视觉表示的至少部分;以及装置,其用于通过该接口将所确定的当前应用状态的指示从该设备发送给服务器设备,其中所确定的当前应用状态的指示包括用于重新创建该应用的当前视觉表示的至少部分的信息。该控制单元被配置成响应于不同的客户端设备正试图将另一个应用状态的指示传输给服务器设备的指示,停止当前应用状态的随后指示的传输被发送给服务器设备,以防止在来自第一客户端设备的应用状态更新和来自不同的客户端设备的应用状态更新之间的冲突。

在另一个示例中,计算机可读存储介质包括指令,所述指令当被执行时促使第一客户端设备的处理器:在第一客户端设备处执行应用;确定该应用的当前应用状态,其中该当前应用状态包括用于重新创建该应用的当前视觉表示的至少部分的信息;以及将所确定的当前应用状态的指示从该计算设备发送给不同的第二客户端设备,以促使该不同的第二客户端设备通过重新创建如该计算设备所执行的该应用的当前视觉表示的至少部分来在该当前应用状态恢复对该应用的执行。

在另一个示例中,服务器设备包括:一个或多个外部设备接口,其被配置成从两个或更多个客户端设备接收应用状态的指示,并且将应用状态的指示提供给该两个或更多个客户端设备,其中应用状态的指示包括用于重新创建与应用状态相对应的应用的当前视觉表示的至少部分的信息;以及控制单元,其被配置成将两个或更多个客户端设备关联为组,从该组的第一客户端设备接收应用状态的指示,确定该组的不同的第二客户端设备已开始执行与来自第一客户端设备的该应用状态的所接收的指示相对应的应用,以及响应于该第二客户端设备已开始执行该应用的确定,将该应用状态的指示提供给该第二客户端设备。

在另一个示例中,方法包括:通过服务器设备从两个或更多个关联的客户端设备的组中的第一客户端设备接收应用状态的指示,其中该应用状态的指示包括用于重新创建第一客户端设备所执行的应用的当前视觉表示的至少部分的信息;确定两个或更多个关联的客户端设备的组中的不同的第二客户端设备已开始执行与从第一客户端设备所接收的应用状态的指示相对应的应用;以及通过服务器设备响应于确定第二客户端设备已开始执行该应用,将从第一客户端设备接收的应用状态的指示提供给第二客户端设备。

本公开的技术可以提供一个或多个优势。例如,本公开的技术可以允许用户在两个或更多个设备之间继续执行应用。即,用户可以首先用第一设备执行应用,然后切换到第二设备并且使用第二设备从如第一设备所执行的应用的状态继续执行该应用。以这种方式,用户可以避免失去应用内的连续性,例如,在阅读网页、电子邮件文档或其他文本文档,播放诸如歌曲或视频的多媒体文件,玩游戏或另外使用能够由多于一个设备执行的应用时,避免失去用户的位置。

在附图和下面的描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求,其他特征、目的和优势将是显而易见的。

附图说明

图1A是图示示例系统的框图,在该示例系统中,移动设备和计算设备可以通过应用状态服务器提供和/或接收各种应用的应用状态的指示。

图1B是图示包括移动设备和计算设备的另一个示例系统的框图。

图2是图示向诸如应用状态服务器或远程计算设备的外部设备提供应用状态信息的示例移动设备的框图。

图3是图示应用状态服务器的组件的示例布置的框图。

图4是图示用于向应用状态服务器提供周期性应用状态更新的示例方法的流程图。

图5是图示用于通过应用状态服务器在移动设备和计算设备之间交换应用状态信息的示例方法的流程图。

图6是图示用于通过应用状态服务器在移动设备和计算设备之间交换应用状态信息的另一个示例方法的流程图。

图7是图示用于在两个设备之间交换应用状态的另一个示例方法的流程图。

具体实施方式

总的来说,本公开针对下述技术:允许用户在两个或更多个设备之间,诸如在移动设备(例如,蜂窝电话)和计算设备之间,进行切换,使得在一个设备上在使用的应用可以在另一个设备上被继续执行(be resumed),而用户不会失去其在该应用中的位置。例如,如果用户正在移动设备上查看特定网页,然后开始使用计算设备并且执行web浏览器,则该移动设备可以将该网页的统一资源定位符(URL)和该移动设备所显示的该网页的当前部分(例如,当前段落)的指示提供给该计算设备。该计算设备可以接收当前网页和该移动设备所显示的网页的当前部分的指示,然后自动(即,不用用户干预)显示该网页并且自动滚动到移动设备所显示的网页的部分。

移动设备可以为活动应用周期性保存应用状态,并且将应用状态上载到外部设备,其在本公开中被称为应用状态服务器。在一些示例中,应用状态服务器可以是与继续执行应用的计算设备相同的设备。即,在一些示例中,计算设备可以实现应用状态服务器的功能性。在一些示例中,应用状态服务器可以是与移动设备和计算设备两者通信的独立设备。在任一情况下,移动设备可以将一个或多个活动应用的当前应用状态的指示周期性发送给应用状态服务器。

移动设备可以从应用状态服务器接收另一个设备已开始执行该应用的指示。响应于接收另一个设备正在执行该应用的指示,移动设备可以阻止当前应用状态的随后指示从该移动设备被发送给应用状态服务器。例如,移动设备可以例如从应用状态服务器和/或计算设备接收计算设备已开始执行该应用的指示,并且作为响应,禁止对该应用的未来应用状态更新。作为另一个示例,移动设备可以从用户接收用户不再使用该移动设备来执行该应用的指示。移动设备然后可以禁止将该应用的当前应用状态的未来指示发送给应用状态服务器。

另外,应用状态服务器可以向已开始执行该应用的计算设备提供当前(例如,最近)应用状态的指示。计算设备可以使用应用状态的指示来在移动设备进行最后应用状态更新的点处继续对应用的执行。以这种方式,用户当在两者都能执行相同应用——例如web浏览器、电子邮件应用、诸如电影播放器或音乐播放器的多媒体应用、游戏应用或其他应用——的两个设备之间移动时,可以体验应用执行的相对无缝的转变。

图1A是图示示例系统10的框图,在示例系统10中,移动设备16和计算设备18可以提供和/或接收各种应用的应用状态的指示。具体地,在图1A的示例中,移动设备16和计算设备18可以被配置成通过网络14向应用状态服务器12提供应用状态更新。例如,当用户正与移动设备16所执行的应用交互时,移动设备16可以周期性向应用状态服务器12提供应用状态更新。稍后,用户可以切换到计算设备18来执行该应用,并且计算设备18可以从应用状态服务器12检索最近的应用状态,使得计算设备18可以从最近的应用状态更新继续对该应用的执行。类似地,计算设备18可以被配置成在执行也可以由移动设备16执行的应用时向应用状态服务器12提供应用状态更新。

以这种方式,系统10可以当用户在设备之间,诸如在移动设备16和计算设备18之间移动时,为用户提供连续的应用体验。尽管出于示例目的,主要参考一个应用进行了描述,然而,应当理解的是,本公开的技术可以应用于移动设备16所执行、然后计算设备18随后执行的任何数量的应用。此外,再次尽管出于示例目的,参考移动设备和计算设备进行了描述,然而,应当理解的是,本公开的技术可以应用于能够执行相同或相似应用的任何两个或更多个设备。例如,系统10的设备可以对应于两个或更多个固定计算设备、两个或更多个移动设备、或固定和/或移动设备的任何组合。两个或更多个设备中的任何一个可以对应于例如个人计算机、工作站计算机、膝上型计算机、平板计算机、蜂窝电话、智能手机、个人数字助理或能够执行应用的任何其他设备。

本公开的技术可以应用于多种不同应用。总的来说,这些技术可以应用于可以由移动设备16和计算设备18执行的应用。例如,所述技术可以应用于web浏览器、电子邮件阅读器、文档阅读器、诸如视频和音乐播放器的多媒体播放器、游戏或其他应用。总的来说,移动设备16所执行的应用可以不同于计算设备18所执行的应用,但是可以是相同类型的应用,例如是用于相同目的的应用。因此,对移动设备16和计算设备18两者(或任何其他两个设备)所执行的应用的引用应当被理解为包括移动设备16和计算设备18所执行的不同应用,但是其出于相同目的被执行。例如,移动设备16所执行的web浏览器可以不同于计算设备18所执行的web浏览器,但是可以仍然被认为是相同的应用,因为这两个web浏览器被预期实现超文本传输协议(HTTP),能够检索并呈现因特网网站等。

提供给应用状态服务器12的状态更新可以特定于能够由例如移动设备16和计算设备18的两个或更多个设备执行的应用。作为一个示例,移动设备16和计算设备18每一个可以执行各自的web浏览器。例如,用户可以与移动设备16的web浏览器交互来查看在特定统一资源定位符(URL)的网页。依据本公开的技术,移动设备16可以周期性向应用状态服务器12提供应用状态更新。参考web浏览器的示例,应用状态更新可以包括例如当前正用移动设备12的web浏览器查看的网页的URL的指示。在一些示例中,web浏览器可以能够例如通过为web浏览器打开多个窗口或标签页来查看多个URL。因此,应用状态更新可以包括多个URL。

此外,应用状态的指示符可以包括用于重新创建应用的当前视觉表示的至少部分的信息。参考web浏览器的示例,例如,当前视觉表示可以对应于当前段落、字、句子、行号、超文本标记语言(HTML)锚标签、图片、章节、链接或正由web浏览器显示的网页的当前部分的其他指示。以这种方式,当用户在使用移动设备16之后切换到计算设备18时,计算设备18可以显示与移动设备16先前显示的基本上相同的信息。例如,计算设备18可以自动滚动到在用户从移动设备16切换到计算设备18之前移动设备16所显示的网页的部分。

作为另一个示例,移动设备16和计算设备18每一个可以被配置成执行各自的电子邮件应用。在这样的示例中,应用状态的指示可以描述电子邮件应用当前显示的特定电子邮件和当前段落、行、句子或当用户从移动设备16切换到计算设备18时在电子邮件内的位置的其他表示。因此,移动设备16可以为应用状态更新生成指示移动设备16所显示的当前电子邮件和在当前被显示的电子邮件内的位置的应用状态的指示。

作为另一个示例,应用可以对应于多媒体播放器,诸如音乐或电影播放器。在该示例中,应用状态可以描述被播放的当前歌曲或视频,以及在该歌曲或视频内的当前时间位置。当前时间位置可以定义当确定应用状态时在被播放的多媒体数据内的时间位置。因此,当前视觉表示可以对应于视觉上表示被播放的歌曲或视频的当前时间位置的状态栏。移动设备16可以为应用状态更新生成指示移动设备16所播放的当前歌曲或视频,以及在该歌曲/视频内的时间位置的应用状态的指示。在一些示例中,移动设备16还可以将该歌曲或视频转送给应用状态服务器12或直接转送给计算设备18,假设适当的版权法规许可这样的转送。

图1B是图示包括移动设备22和计算设备24的另一个示例系统20的框图。在该示例中,移动设备22可以将应用状态的指示直接发送给计算设备24,而不是如图1A中,将应用状态的指示发送给服务器。即,用户可以在一段时间使用移动设备22来执行应用。该用户然后可以开始在计算设备24上执行该应用。

计算设备24可以向移动设备22发送计算设备24已开始执行该应用的指示,并且请求如移动设备22所执行的应用的当前应用状态。在从移动设备22接收当前应用状态的指示之后,计算设备24可以在如从移动设备22所接收的当前应用状态继续对该应用的执行。

移动设备22和计算设备24建立通信地耦接移动设备22和计算设备24的连接26。移动设备22可以以多种方式被通信地耦接到计算设备24。例如,计算设备24可以包括允许移动设备22通过诸如微型USB电缆的USB电缆被耦接到计算设备24的通用串行总线(USB)端口。除允许移动设备22与计算设备24通信之外,USB电缆可以用于给移动设备22的电池充电。作为另一个示例,移动设备22可以被无线地耦接到计算设备24也被耦接到的网络的无线交换机或无线路由器(未示出)。

在建立连接26之后,移动设备22可以以多种方式向计算设备24发送应用状态的指示。在一个示例中,移动设备22可以自动向计算设备24发送一个或多个应用状态的指示。即,移动设备22可以将应用状态信息推送给计算设备24。在另一个示例中,当计算设备24通过连接26被耦接到移动设备22时并且当用户执行也被安装(或对于其,类似的应用被安装)在移动设备22上的应用时,计算设备24可以向移动设备22请求应用状态信息。即,计算设备24可以从移动设备22拉取应用状态信息。在一些示例中,移动设备22和计算设备24可以分别被配置成推送和拉取数据。

在一些示例中,移动设备22和计算设备24可以配置成执行各自的应用来促使移动设备22向计算设备24发送应用状态信息。例如,计算设备24所执行的应用可以识别移动设备22何时与计算设备24建立了连接26,并且作为响应,为能够由计算设备24和移动设备22两者执行的一个或多个应用向移动设备22请求应用状态信息。作为另一个示例,移动设备22所执行的应用可以识别何时建立了连接26,并且作为响应,向计算设备24发送应用状态信息。移动设备22可以在将应用状态发送给设备24时停止执行该应用(例如,可以停止播放歌曲或视频)。

当将本公开的技术实现为允许应用状态信息被交换的应用时,引起在移动设备22和计算设备24之间的应用状态信息交换的应用可以提供允许用户配置应用状态信息的交换的配置设置。例如,可以向用户提供下述选项:使应用状态信息的交换自动化、展现另一个设备已请求应用状态信息的指示以及仅当用户肯定响应来允许设备发送应用状态信息时才发送应用状态信息、或对于一个或多个(或所有)应用完全禁用应用状态信息交换。以这种方式,用户可以在任何时间启用或禁用在诸如移动设备22和计算设备24的两个设备之间的应用状态信息的交换。在图1A的示例系统10中,可以向用户提供类似的配置选项。

尽管出于示例目的,将图1B描述为移动设备22向计算设备24提供应用更新信息,然而,应当理解的是,计算设备24可以类似地向移动设备22提供应用更新信息。以这种方式,用户可以首先使用计算设备24来执行应用,然后随后希望在移动设备22上继续执行该应用。因此,计算设备24可以为该应用确定当前应用状态,并且将该当前应用状态发送给移动设备22。该用户然后可以在移动设备22上继续对该应用的执行。此外,参考图1B描述的技术可以用两个或更多个类似设备,例如,两个或更多个移动设备、两个或更多个固定计算设备、或移动和固定设备的任何组合来实现。

此外,在一些示例中,可以使参考图1A和1B描述的技术相结合。即,在一些示例中,移动设备可以被配置成基于各种配置数据,向应用状态服务器和/或计算设备提供应用状态更新。例如,对于第一应用,移动设备可以被配置成向计算设备直接提供应用状态信息,而对于另一个应用,移动设备可以被配置成向诸如图1A的应用状态服务器12的应用状态服务器提供应用状态信息。

图2是图示向诸如应用状态服务器或远程计算设备的外部设备提供应用状态信息的示例移动设备30的框图。在图2的示例中,移动设备30包括显示器32、控制单元34和外部设备接口44。控制单元34包括状态确定模块36、状态更新模块38、定时模块40以及一个或多个应用42。移动设备30可以对应于移动设备16(图1A)或移动设备22(图1B),并且在一些示例中,可以包括类似于移动设备16和移动设备22两者的功能性。

显示器32可以对应于液晶显示(LCD)屏、触摸屏显示器或能够向用户展现文本和/或图像的其他显示器。显示器32可以形成移动设备30的用户接口的至少部分。当对应于触摸屏时,显示器32可以另外通过触摸屏,例如当用户选择触摸屏的区域时,从用户接收输入。外部设备接口44可以对应于用于与外部设备通信的接口。外部设备接口44可以对应于小型或微型USB端口、网络接口卡、无线网络接口,诸如用于连接到无线局域网(WLAN)或第三代合作伙伴计划(3GPP)网络的接口、或其他接口。在一些示例中,移动设备30可以包括多于一个外部设备接口,以用各种方式与外部设备通信。

控制单元34可以包括一个或多个处理器或处理单元,诸如微处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或其他处理单元。控制单元34可以进一步包括可以为例如状态确定模块36、状态更新模块38、定时模块40和应用42存储指令的计算机可读存储介质,诸如闪存。因此,一个或多个处理单元可以执行所述指令来执行属于状态确定模块36、状态更新模块38、定时模块40和应用42的功能。在一些示例中,状态确定模块36、状态更新模块38、定时模块40和应用42中的任何一个或全部可以对应于单个硬件单元。状态确定模块36、状态更新模块38、定时模块40和应用42中的任何一个或全部可以在功能上被集成为和/或分成进一步模块或单元。

应用42可以包括控制单元34可执行以及也可以由另一个设备执行(或对于其,可以执行功能类似物)的一个或多个应用。例如,应用42可以包括以下的一个或多个:web浏览器、电子邮件客户端、游戏、文档阅读器、电子表格程序、文本编辑器、诸如视频和/或音乐播放器的多媒体播放器、或其他应用。如上所述,用于应用42的任何一个或全部的指令可以被存储在控制单元34的计算机可读存储介质中。所述指令可以由控制单元34的一个或多个处理器或处理单元来执行。

状态确定模块36可以被配置成当应用42被控制单元34执行时确定应用42中的一个或多个的应用状态。应用42的执行一般包括响应于哪些应用42生成输出,例如视觉显示,从例如用户接收输入。当前应用状态一般可以对应于关于应用42中的一个的执行的信息,该信息足以促使执行该应用的相同或不同设备在不用接收相同用户输入的情况下展现该视觉显示的至少部分。

作为示例,参考web浏览器应用,web浏览器可以从用户接收以期望网页的统一资源定位符(URL)形式的输入。另外,该web浏览器可以接收以滚动到该网页的特定部分形式的用户输入。Web浏览器的示例应用状态可以包括URL,以及在一些示例中,作为如用户所输入的滚动或其他移动序列的结果当前被显示的、与该URL相对应的网页的一部分。即,状态确定模块36可以确定该URL以及显示器32所显示的与该URL相对应的网页的当前位置,并且构建包括该URL和网页的位置的表示的应用状态。因此,执行web浏览器的另一个设备可以通过外部设备接口44从移动设备30接收应用状态,并且基于从移动设备30接收的应用状态信息,将该web浏览器指向到该URL,然后自动滚动到移动设备30所显示的网页的部分。

作为另一个示例,参考电子邮件客户端应用,电子邮件客户端可以接收以选择的电子邮件文档形式的输入。另外,该电子邮件客户端可以接收以滚动到该电子邮件文档的特定部分形式的用户输入。状态确定模块36可以确定在控制单元34执行电子邮件客户端时显示器32所显示的当前电子邮件文档,以及在一些示例中,被显示的电子邮件文档的当前部分,并且构建表示当前电子邮件文档和被显示的电子邮件文档的当前部分的应用状态信息。因此,执行电子邮件客户端的另一个设备可以——假设该另一个设备能够访问用户的电子邮件服务器——通过外部设备接口44从移动设备30接收应用状态,并且基于从移动设备30接收的应用状态信息,促使电子邮件客户端显示相同的电子邮件文档,然后自动滚动到移动设备30所显示的电子邮件文档的部分。

在其他示例中,基于控制单元34所执行的特定应用,应用状态可以包括其他信息。例如,控制单元34所执行的游戏应用可以具有指示下述的应用状态:仍然在比赛棋盘上的棋子、仍然在一副纸牌中的牌以及其在该副纸牌中的顺序、仍然在玩耍中的牌以及其位置(例如,对于麻将牌)、分值、定时信息、或用于重新创建游戏的视觉表示的至少部分的其他数据。作为另一个示例,文档阅读器可以具有指示打开的文档和当前被显示的文档的部分的应用状态。作为又另一个示例,诸如视频或音频播放器的多媒体应用可以具有指示被播放的歌曲或视频以及被播放的歌曲或视频的当前时间的应用状态。在多媒体应用的示例中,视觉表示的部分可以对应于与歌曲或视频的当前时间位置相对应的水平滚动条。

在一些示例中,例如,如图1B中所示,状态确定模块36可以根据来自外部设备的请求,为控制单元34所执行的应用42中的一个或多个确定当前应用状态。在其他示例中,状态确定模块36可以例如响应于来自状态更新模块38的请求,为如控制单元34所执行的应用42中的一个或多个周期性确定当前应用状态。状态更新模块38可以被配置成为应用42周期性请求当前应用状态,并且将对应用的更新提供给外部应用状态服务器,例如,如图1A中所示。在这样的示例中,状态更新模块38可以被配置成将对应用42中的一个或多个的状态更新周期性提供给应用状态服务器。

状态更新模块38可以从状态确定模块36为应用42中的一个或多个接收当前应用状态的指示。状态更新模块38然后可以将应用状态信息提供给应用状态服务器。状态更新模块38可以向应用状态服务器进一步提供状态更新的情境信息,诸如唯一识别移动设备30的移动设备30的特有标识符。状态更新模块38可以与定时模块40交互来确定向应用状态服务器提供状态更新的时间。例如,状态更新模块38可以被配置成以增量时间段,例如每X分钟或小时,向应用状态服务器提供应用状态更新。因此,当定时模块40指示时间段已期满时,状态更新模块38可以从状态确定模块36检索当前应用状态,并且将该当前应用状态发送给应用状态服务器。

响应于来自外部设备的另一个计算设备已开始执行该应用的指示,例如,来自应用状态服务器或计算设备自身的消息,状态更新模块38可以禁止未来的应用状态更新。例如,状态更新模块38可以禁用定时模块40、将更新状态旗标设置为假(其中当定时模块40期满时,状态更新模块38可以检查更新状态旗标来确定是否向应用状态服务器发送应用状态更新)、停止执行应用、或另外阻止未来的应用状态更新从移动设备30被发送。状态更新模块38可以响应于外部计算设备不再执行该应用的指示,继续发送应用状态更新。

在一些示例中,移动设备30可以从用户接收指示该用户不再希望移动设备30向应用状态服务器提供应用状态更新的输入。在一些示例中,移动设备30可以仅接收停止发送应用状态更新的指示,发送设备可以响应于确定计算设备已开始执行移动设备30所执行的一个或多个应用而生成该指示并且将其发送给移动设备30。在任何情况下,当与移动设备30相关联的另一个设备已开始执行状态更新模块38为其生成应用状态更新的应用时,状态更新模块38一般可以禁止应用状态更新。

尽管参考移动设备的示例进行了描述,然而,其他设备可以包括与移动设备30的那些类似的组件。例如,膝上型计算机、平板计算机、个人计算机、工作站计算机或其他这样的计算设备可以包括与参考移动设备30描述的那些类似的组件。

图3是图示应用状态服务器12的组件的示例布置的框图。在图3的示例中,应用状态服务器12包括控制单元52和外部设备接口60。外部设备接口44可以对应于用于与外部设备通信的接口。外部设备接口44可以对应于USB端口、网络接口卡、无线网络接口,诸如用于连接到无线局域网(WLAN)的接口、或其他接口。在一些示例中,应用状态服务器12可以包括多于一个外部设备接口,以用各种方式与外部设备通信。

在图3的示例中,控制单元52包括状态更新模块54、状态检索模块56、状态数据58以及设备聚组模块62。控制单元52可以包括一个或多个处理器或处理单元,诸如微处理器、ASIC、DSP、FPGA或其他处理单元。控制单元52可以进一步包括可以为例如状态更新模块54、状态检索模块56和设备聚组模块62存储指令的计算机可读存储介质,诸如闪存。因此,该一个或多个处理单元可以执行所述指令来执行属于状态更新模块54、状态检索模块56和设备聚组模块62的功能。在一些示例中,状态更新模块54、状态检索模块56和设备聚组模块62中的任何一个或全部可以对应于单个硬件单元。状态更新模块54、状态检索模块56和设备聚组模块62中的任何一个或全部可以在功能上被集成为和/或分成进一步模块或单元。

状态数据58可以对应于包括多种不同设备所执行的应用的应用状态的数据库。在其他示例中,可以将状态数据58组织成平面文件、一个或多个数据结构、或其他组织方案。总的来说,状态数据58为能够被多个关联的设备中的任何一个执行的应用存储当前应用状态。作为示例,设备组可以包括用户的个人计算机和该用户的蜂窝电话。状态数据58可以为如组中的设备中的一个所执行的应用(例如,web浏览器、电子邮件客户端、游戏、多媒体应用等)存储当前应用状态,使得该组中的其他设备可以检索该应用状态并且继续对该应用的执行,例如,当用户切换到该组中的其他设备中的一个并且开始执行该应用时。

状态数据58可以为与设备组相关联的多个应用存储当前应用状态。此外,状态数据58可以为多个设备组存储当前应用状态。设备聚组模块62可以使设备相关联来形成组。管理员或其他用户可以提供用于使设备关联在一起形成组的信息。例如,当使用要被添加到组的设备时,用户可以向应用状态服务器12提供登录凭据(例如,用户名和密码)并且指示被使用的该设备应当被添加到与该用户的登录凭据相关联的组。用户可以创建多个组。每一个组可以与能够由该组的设备中的任何一个执行的一个或多个应用相关联。设备聚组模块62可以将设备间的关联存储在状态数据58内。

状态更新模块54可以通过外部设备接口60从组中的设备接收应用状态更新。当接收了应用状态更新时,状态更新模块54可以查询状态数据58来确定包括从之接收了该应用状态更新的设备的组。状态更新模块54然后可以将对应应用的当前应用状态与包括从之接收了该更新的设备的组相关联地存储在状态数据58内。

状态检索模块56可以从特定组的设备接收对特定应用的当前应用状态的请求。作为响应,状态检索模块56可以对状态数据58查询该应用和包括发出请求的设备的组,来检索该当前应用状态并且通过外部设备接口60向发送了该请求的设备提供该当前应用状态。此外,状态检索模块56可以生成并发送消息给通过外部设备接口60向应用状态服务器12发送了该当前状态更新的该组的设备,以促使该设备停止发送应用状态更新。

在一些示例中,控制单元52可以实现令牌传递方案,其中组中的仅仅一个设备可以被给予“令牌”。可以授予带有令牌的设备发送应用状态更新的权利。因此,状态更新模块54可以在接收了应用状态更新时,确定提供该更新的设备是否具有令牌(例如,该设备是否被允许提供应用状态更新)并且仅在该设备具有令牌(或另外被允许更新当前应用状态)时才更新该当前应用状态。组中的除被授予了令牌的设备外的设备可以请求令牌,在这种情况下,该令牌可以被从当前设备移除并且传递给发出请求的设备。总的来说,带有令牌的设备可以对应于用户当前用来执行特定应用的设备。

图4是图示用于向应用状态服务器提供周期性应用状态更新的示例方法的流程图。尽管出于示例目的,参考移动设备30(图2)进行了描述,然而,应当理解的是,可以使用任何适当的设备来实现并执行图4的示例方法。

最初,移动设备30可以开始执行应用(80)。例如,控制单元34可以开始执行应用42中的一个。控制单元34可以例如从用户接收对应用42中的一个的选择来开始执行。例如,用户可以与移动设备30的触摸屏交互来选择与应用相对应的图标,以及控制单元34可以接收该图标已被选择的指示,并且进而,检索并开始执行用于该应用的指令。

状态确定模块36然后可以为所执行的应用确定当前应用状态(82)。例如,对于web浏览器应用,状态确定模块36可以确定当前网页URL和被显示的该网页的位置。作为另一个示例,对于电子邮件应用,状态确定模块36可以确定被阅读的当前电子邮件文档和被显示的该电子邮件文档的位置。作为另一个示例,对于游戏应用,状态确定模块36可以确定游戏的当前状态,例如,在一副纸牌中的牌以和其顺序、以及在玩耍中的牌和其位置(例如,对于单人纸牌游戏)、牌在玩耍区上的位置(例如,对于麻将牌)、或游戏棋牌的其他位置和存在/不存在。作为又另一个示例,对于多媒体应用,状态确定模块36可以确定多媒体应用所播放的当前多媒体文件(例如,歌曲或视频)以及在被播放的多媒体数据内的当前时间位置。

状态更新模块38然后可以向诸如应用状态服务器12(图1A)的应用状态服务器提供应用状态更新(84)。在一些示例中,状态更新模块38可以向能够执行由控制单元34所执行的该应用的设备直接提供应用状态更新。在提供应用状态更新之后,在图4的示例中,状态更新模块38可以执行定时模块40(86),例如,以在提供随后应用状态更新之前等待预先确定的时间量。

当等待预先确定的时间量已期满的指示(90)时,状态更新模块38可以检查停止提供应用状态更新的指示(例如,消息或信号)(88)。如果没有接收到这样的消息(88的“否”分支),则控制单元34可以继续执行定时模块40(86)。如果自先前应用状态更新之后预先确定的时间量已期满(90的“是”分支),则状态确定模块36可以再次为被执行的应用确定当前应用状态(82),状态更新模块38可以向例如应用状态服务器提供应用状态更新(82),然后重新初始化定时模块40(86)。如果预先确定的时间量尚未期满(90的“否”分支),则状态更新模块38可以继续执行定时模块40(86)。

在另一方面,如果状态更新模块38已接收了停止发送应用状态更新的消息(88的“是”分支),则状态更新模块38可以禁止发送未来的状态更新(92)。在一些示例中,控制单元34可以停止执行应用。控制单元34可以替选地在不发送应用状态更新的情况下继续执行应用。

图4的方法可以被总结为:第一设备执行应用;确定该应用的当前应用状态,其中该当前应用状态包括该应用的当前视觉表示的至少部分;在没有用户干预的情况下,将所确定的当前应用状态的指示从第一设备发送给不同的第二设备,其中所确定的当前应用状态的指示包括用于重新创建该应用的当前视觉表示的至少部分的信息;以及响应于接收第三设备正在执行该应用的指示,阻止当前应用状态的随后指示从第一设备被发送给第二设备。虽然在上面参考参考图2所描述的移动设备30的示例组件进行了描述,然而,应当理解的是,其他设备可以执行图4的方法。

图5是图示用于通过应用状态服务器在移动设备和计算设备之间交换应用状态信息的示例方法的流程图。虽然参考移动设备和计算设备的示例进行了描述,然而,应当理解的是,图5的方法可以由各种类型的两个或更多个设备——例如,两个或更多个移动设备、两个或更多个固定计算设备、和/或移动和固定设备的任何组合——来执行。在一些示例中,对应于计算设备的设备可以另外执行属于应用状态服务器的功能性。

在图5的示例中,例如移动设备16(图1A)的移动设备执行应用(100)。当执行应用时,移动设备16向应用状态服务器12周期性发送指示当前应用状态的应用状态更新(102),应用状态服务器12存储该当前应用状态(104)。例如,应用状态服务器12可以确定移动设备16的标识符,并且将所接收的应用状态与包括移动设备16的标识符的设备组相关联地存储在数据库中。

在没有停止发送更新的消息已被接收(106的“否”分支)时,移动设备16可以继续执行该应用(100)并且向应用状态服务器12周期性发送应用状态更新(102)。在计算设备18例如开始执行该应用(或类似应用)(108)之后,计算设备18可以向应用状态服务器12请求该应用的当前应用状态(110)。假设如示例中所示,应用状态服务器已存储了该应用的当前应用状态,应用状态服务器12可以检索所存储的应用状态(112)并且向移动设备16发送新的设备(在该示例中,计算设备18)已开始执行该应用的指示(114)。因此,移动设备16可以响应于从应用状态服务器12接收该指示(106的“是”分支),禁止未来的状态更新(116)。

此外,应用状态服务器12可以向计算设备18发送当前应用状态的指示(118)。在接收当前应用状态的指示(120)之后,计算设备18可以从所接收的应用状态的指示所指示的点继续对该应用的执行(122)。例如,对于web浏览器应用,计算设备18可以从当前应用状态的指示符所指示的URL检索网页,显示该网页并且自动滚动到当前应用状态的指示符所指示的位置。作为另一个示例,对于电子邮件客户端应用,计算设备18可以展现应用状态的指示符的电子邮件文档,并且自动滚动到应用状态所指示的位置。对于游戏应用,计算设备18可以重新创建如应用状态的指示符所指示的游戏的状态。对于多媒体应用,计算设备18可以加载当前应用状态所指示的多媒体数据文件(例如,歌曲或视频),并且从应用状态的指示符所指示的时间位置开始播放该多媒体数据文件。

图6是图示用于通过应用状态服务器在移动设备和计算设备之间交换应用状态信息的另一个示例方法的流程图。在图6的示例中,移动设备16根据需求,例如响应于来自应用状态服务器12的请求,提供当前应用状态的指示,而不是周期性提供应用状态的指示。再次,尽管参考图1A的示例的元件进行了描述,然而,应当理解的是,图6的方法可以由任何适当的设备——例如,两个或更多个移动设备、两个或更多个固定计算设备、或移动和固定设备的任何组合——来执行。

在图6的示例中,移动设备16可以执行应用(140),并且在从例如应用状态服务器12接收发送当前应用状态的请求之前,继续执行该应用(142)。在执行该应用期间的某一时刻,计算设备18可以开始执行该应用(144)。因此,计算设备18可以向应用状态服务器12请求当前应用状态(146)。响应于对当前应用状态的请求,应用状态服务器12可以确定与可能在执行该应用的计算设备18相关联的设备(在该示例中,移动设备16)。因此,应用状态服务器12可以向移动设备16请求该当前应用状态(148)。

响应于对当前应用状态的请求,移动设备16可以向应用状态服务器12发送该当前应用状态的指示(150)。应用状态服务器12可以接收该当前应用状态的指示(152),然后将该当前应用状态的指示发送给计算设备18(154)。在接收该当前应用状态的指示(156)之后,计算设备18可以在该当前应用状态继续对该应用的执行(158)。

图7是图示用于在例如移动设备22和计算设备24(图1B)的两个设备之间交换应用状态的另一个示例方法的流程图。在图7的示例方法中,移动设备22和计算设备24在不使用应用状态服务器的情况下交换当前应用状态的指示。虽然出于示例目的,参考移动设备22和计算设备24进行了描述,然而,应当理解的是,任何两个设备可以执行图7的技术,例如,两个或更多个移动设备、两个或更多个固定计算设备、或其任何组合。

在图7的示例中,移动设备22执行应用(180),并且等待接收对当前应用状态的请求(182)。在移动设备22执行该应用期间的某一时刻,计算设备24可以开始执行该应用、或可以例如从用户接收开始执行该应用的请求(184)。作为响应,计算设备18可以向移动设备22发送对如移动设备22所执行的当前应用状态的指示的请求(186)。

响应于该请求,移动设备22可以向计算设备18发送该当前应用状态的指示(188)。在从移动设备22接收该当前应用状态的指示(190)之后,计算设备18可以从该当前应用状态的指示所指示的状态继续对该应用的执行(192)。

本公开中所描述的技术可以至少部分以硬件、软件、固件或其任何组合来实现。例如,所述技术的各个方面可以在一个或多个处理器,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等价集成或分立逻辑电路、以及这样的组件的任何组合内来实现。用词“处理器”或“处理电路”一般可以指单独或与其他逻辑电路组合的任何前述逻辑电路、或任何其他等价电路。包括硬件的控制单元也可以执行本公开的技术中的一个或多个。

可以在同一设备内或在分离设备内实现这样的硬件、软件和固件来支持在本公开中所述的各种操作和功能。另外,任何所述单元、模块或组件可以在一起或分别被实现为分立但是可共同操作的逻辑器件。将不同特征描绘为模块或单元意在突出不同的功能方面,并且并不一定暗示这样的模块或单元必须由分离硬件或软件组件实现。相反,与一个或多个模块或单元相关联的功能性可以由分离硬件或软件组件执行、或被集成在共同或分离硬件或软件组件内。

还可以将在本公开中所述的技术包括或编码在包含指令的计算机可读介质,诸如计算机可读存储介质中。嵌入或编码在计算机可读介质中的指令可以例如在所述指令被执行时,促使可编程处理器或其他处理器执行所述方法。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、带盒、磁介质、光介质或其他计算机可读存储介质。应当理解的是,用词“计算机可读存储介质”是指物理存储介质,并且不指信号、载波或其他暂时性介质。以这种方式,应当将计算机可读存储介质理解为非暂时性、物理介质。

已描述了各种示例。这些和其示例在所附权利要求的范围内。

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