跨设备应用发现和控制的制作方法

文档序号:11935134阅读:183来源:国知局
跨设备应用发现和控制的制作方法与工艺

诸如智能电话、个人计算机、平板计算机、二合一设备等的设备在社会中普遍存在。人们将这些设备用于多个不同任务,每个任务潜在地由设备上的应用执行。通常,设备上的多于一个应用能够执行特定任务。另外,许多人拥有多于一个设备,每个设备充满能够执行任务的多个应用。

然而,应用通常单独地在一个设备上操作,并且缺少在设备之间通信或无缝地共享信息的能力。因此,应用基于设备能力(诸如处理速度、存储器和/或显示器尺寸)而被限制。例如,在智能电话上运行视频的应用限制于智能电话设备显示器。



技术实现要素:

本公开描述用于跨设备应用发现和控制的系统和方法。跨设备应用发现和控制可以使得能对目标设备上的应用的检测、激活和控制。在一些示例中,跨设备应用发现和控制可以使得能对目标设备上的后台任务的激活和控制。跨设备应用发现和控制可以使源设备能发现经由网络连接且能够执行任务的受信目标设备。跨设备应用发现和控制还可以使源设备能发现能够执行任务的一个或多个应用。因此,响应于源设备发送应用发现查询,一个或多个目标设备可以响应以相应的设备和/或应用能力。响应于接收设备和应用能力,源设备可以选择一个或多个目标设备上的应用以执行任务。

跨设备应用发现和控制可以使源设备能在主从配置中控制一个或多个远程设备上的应用。因此,在源设备选择一个或多个目标设备上的应用之后,源设备可以发送激活消息,该激活消息指示该一个或多个目标设备激活该应用并运行该应用中的特定任务。在一些示例中,应用可以在一个或多个目标设备上运行任务,并且向目标设备上的显示器发送与该任务相关联的任务上下文数据。在一些示例中,应用可以在一个或多个目标设备上运行任务,并且将与任务相关联的任务上下文数据流传输(stream)到源设备以呈现在显示器上。跨设备应用发现和激活可以在单个操作系统上实现或跨多个操作系统实现。

提供此发明内容以便以简化形式介绍一系列概念,这些概念在下文在具体实施方式中进一步地描述。此发明内容不旨在识别所要求保护主题的关键或必要特征,其也不旨在用作帮助确定所要求保护主题的范围。

附图说明

具体实施方式通过参考所附附图来陈述。在附图中,附图标记的(多个)最左边数字标明该附图标记首次出现的附图。在不同的附图中使用相同的附图标记表示相似或相同的项目。

图1是图示跨设备应用发现和控制系统的示例环境的示意图。

图2是图示包括与图1一致的跨设备应用发现和控制系统的示例设备的选择组件的框图。

图3是图示包括跨设备应用发现和控制系统的示例目标设备和示例源设备的选择组件的框图。

图4是图示跨设备应用发现和控制系统的跨设备应用控制模块的框图。

图5是图示跨设备应用发现和控制系统的跨设备应用发现和控制管理器模块的框图。

图6是图示来自使用跨设备应用发现和激活系统的源设备的应用发现、激活和控制的过程流的流程图。

图7是图示来自使用跨设备应用发现和激活系统的目标设备的应用发现、激活和控制的过程流的流程图。

具体实施方式

概述

本公开描述使跨设备和/或操作系统的应用的发现和/或控制能够实现的方法和系统。跨设备应用发现和控制可以使得能对远程设备上的应用的检测和/或控制。应用的发现和/或控制可以发生在用户信任的多个活动的设备上。在一些示例性实现方式中,如果一设备配置在用户概要上、配置在组概要上和/或以其它方式被用户认证,该设备可以被信任。

设备的可发现性可以基于设备被通电、断电休眠模式、断电飞行模式或者引起设备变成通过网络可用的任何其它动作。通过网络的可用性可以由下述确定:例如Wi-Fi传感器、蓝牙TM传感器、接近传感器、有线连接或能够检测网络接口的任何其它传感器。

跨设备应用发现和控制可以为源设备提供发现网络上的活动的受信远程设备的方式。网络可以包括能够连接至少两个设备的任何有线或无线网络。跨设备应用发现和控制还可以为源设备提供发现位于活动的受信远程设备上的应用的方式。

跨设备应用发现和控制可以提供为能够执行特定任务的一个或多个应用查询一个或多个远程设备的方式。响应于该查询,该一个或多个远程设备可以响应以针对能够执行该任务的应用的应用能力信息。在一些示例中,该一个或多个远程设备还可以响应以该一个或多个远程设备的设备能力信息。

跨设备应用发现和控制可以为源设备提供选择用于执行该任务的该一个或多个远程设备上的应用的方式。响应于该选择,源设备可以控制该一个或多个远程设备上的应用。如本文所使用的,控制的示例可以包括但不限于播放、暂停、恢复、停止、刷新、取消和/或执行应用的任何其它任务生存期管理功能的指令。跨设备应用发现和控制系统中的源设备和一个或多个目标设备因此可以在主从配置中连接。

在一些示例中,跨设备应用发现和控制可以提供一个或多个目标设备上的显示。在各种示例中,跨设备应用发现和控制可以提供源设备上的显示。

跨设备应用发现和控制也可以跨具有不同操作系统的设备而实现。例如,第一设备可以配置成在WINDOWS操作系统上运行,并且其可以与第二设备执行跨设备应用发现和控制通信,该第二设备配置成在LINUX、ANDROID操作系统、iOSTM操作系统或者另一操作系统上运行。

说明性环境

下面描述的环境只构成一个示例,并且不旨在将权利要求限制于任何一个特定的操作环境。其它环境可以被使用而不背离所要求保护主题的精神和范围。

跨设备应用发现和控制允许发现和控制一个或多个远程设备上的应用。该发现可以包括定位具有至少一个能够执行特定任务的应用的设备。任务可以通过设备上的应用支持特定用户活动,诸如观看电影、阅读新闻文章、撰写文档或大量其它活动。

例如,用户可以在智能电话上的视频应用上观看电影,并且可到达具有智能电视的位置。智能电话可以通过网络连接到智能电视,并且在该智能电视上发现能够播放该电影的至少一个视频应用。智能电话可以确定该智能电视是受信设备,并且可以向智能电视上的视频应用发送激活消息以指示它播放电影。然后电影可在智能电视上显示,而智能电话保持对智能电视上的视频应用的控制。在一些示例中,电影可以在智能电视上的视频应用中播放,并且在智能电话上显示。在各种示例中,电影可以在智能电视上的视频应用中播放,并且在智能电视和智能电话上同时显示。

图1示出跨设备应用发现和控制可以在其中实施的示例环境100。环境100的组件和/或(多个)设备102可以包括配置成经由一个或多个网络104通信的各种各样的设备类型,并且不限于任何特定类型的设备。在一些示例中,(多个)设备102(诸如102(1))可以包括固定设备,该固定设备包括但不限于服务器、台式计算机、个人计算机、支持网络的电视、终端、游戏控制台、机顶盒、游戏设备、工作站和瘦客户端(诸如能够操作分布式计算资源的那些)。在一些示例中,(多个)设备102(诸如102(2))可以包括移动设备,该移动设备包括但不限于移动电话、平板计算机、移动电话平板计算机混合体、个人数据助理(PDA)、膝上型计算机、媒体播放器、个人录像机(PVR)、照相机和任何其它移动计算机或任何其它移动电信设备。在一些示例中,(多个)设备102(诸如102(3))可以包括嵌入式设备,该嵌入式设备包括但不限于可穿戴计算机、植入式计算设备、汽车计算机、计算机导航类型设备(诸如基于卫星的导航系统,其包括全球定位系统(GPS)设备以及其它基于卫星的导航系统设备)、器具和用于包括在计算设备中的集成组件。在各种示例中,(多个)设备102(诸如设备102(N))可以包括配置成经由一个或多个网络104通信的任何其它种类的计算设备。

例如,(多个)网络104可以包括诸如互联网的公共网络、诸如机构和/或个人内联网的私有网络、或私有和公共网络的某种组合。(多个)网络104还可以包括任何类型的有线和/或无线网络,其包括但不限于局域网(LAN)、广域网(WAN)、个域网(PAN)、体域网(BAN)、近场通信(NFC)、卫星网络、线缆网络、Wi-Fi网络、WiMax网络、移动通信网络(例如3G、4G等)或它们的任何组合。(多个)网络104可以利用通信协议,该通信协议包括基于包和/或基于数据报的协议,诸如互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)或其它类型的协议。此外,(多个)网络104还可以包括促进网络通信和/或形成网络的硬件基础的许多设备,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、主干设备等。

在一些示例中,(多个)网络104还可以包括使能连接无线网络的设备,诸如无线接入点(WAP)。支持通过WAP的连接的示例通过各种电磁频率(例如,射频)发送和接收数据,所述WAP包括支持电气和电子工程师协会(IEEE)802.11标准(例如802.11g、802.11n等)和其它标准的WAP。

(多个)设备102可以包括具有一个或多个处理单元106的任何计算设备,该一个或多个处理单元106诸如经由总线110可操作地连接到计算机可读介质108,在一些实例中所述总线可以包括系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线以及任何种类的本地、外围和/或独立总线中的一种或多种。储存在计算机可读介质108上的可执行指令可以包括例如操作系统112、平台支持114、用户接口116以及由(多个)处理单元106可加载和可执行的其它模块和程序。

(多个)设备102上的操作系统112可以是任何操作系统,包括但不限于MICROSOFT(微软)WINDOWS、WINDOWS PHONE、QNXTM、IBM z/OSTM、LINUX、ANDROID、iOSTM、OS XTM、NETBSDTM或能够管理计算机硬件和软件资源的任何其它操作系统。在一些示例中,设备102(1)和102(2)可以包括操作系统112,诸如MICROSOFT WINDOWS。在各种示例中,设备102(1)可以包括操作系统112(1),诸如MICROSOFT WINDOWS,而设备102(2)可以包括操作系统112(2),如ANDROID。平台支持114表示跨设备应用发现和控制。

(多个)设备102上的用户接口116可以与I/O接口共同操作以至少基于用户输入而使得可执行指令能够实现。用户接口116可以由触摸输入、笔输入、鼠标点击、键盘选择、语音输入、手势输入或任何其它输入机制中的至少一种来激活。

替代地或另外地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件(诸如加速计)执行。作为例子而非限制,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)等。例如,加速计可以表示混合设备,诸如来自ZYLEX或ALTERA的一种,其包括嵌入于FPGA结构中的CPU进程。

(多个)设备102还可以包括一个或多个网络接口118,以实现设备102(1)与任务连续性中牵涉的其它联网设备(诸如设备102(2)-102(N))之间的通信。这样的(多个)网络接口118可以包括一个或多个网络接口控制器(NIC)或其它类型的收发器设备,以通过网络发送和接收通信。例如,(多个)网络接口118可以包括接近接口,以进一步实现(多个)设备102(1)与跨设备应用发现和/或控制中牵涉的其它联网设备(诸如设备102(2)-102(N))之间的通信。这样的接近接口可以包括一个或多个接近网络接口控制器或其它类型的收发器设备,以通过接近网络发送和接收通信。

图2图示包括跨设备应用发现和控制系统的示例设备200,诸如来自图1的设备102。在设备200中,(多个)处理单元202可以表示例如CPU类型处理单元、GPU类型处理单元、现场可编程门阵列(FPGA)、另一类别的数字信号处理器(DSP)或在一些实例中可由CPU驱动的其它硬件逻辑组件。

在一些示例中,设备200可以是能够经由网络连接的多个设备(诸如设备102(1)、102(2)和102(N))中的一个。在一些示例中,计算机可读介质204(其可以是计算机可读介质108)可以储存由(多个)处理单元202可执行的指令。计算机可读介质204还可以储存由外部处理单元(诸如由外部CPU、外部GPU)可执行的指令,和/或由外部加速计(诸如FPGA类型加速计、DSP类型加速计或任何其它内部或外部加速计)可执行的指令。在一些示例中,至少一个CPU、GPU和/或加速计并入设备200中,而在其它示例中,CPU、GPU和/或加速计中的一个或多个可以在设备200外部。

在图示的示例中,计算机可读介质204还包括应用储存库206。在一些示例中,应用储存库206包括应用储存器,诸如应用数据库、应用数据仓库或其它类型的结构化或非结构化应用数据储存器。在各种示例中,应用储存库206储存应用信息,诸如文件大小、操作系统、能力和应用具体的任何其它信息。

在图示的示例中,计算机可读介质204还包括数据储存部(store)208。在一些示例中,数据储存部208包括数据储存器,诸如数据库、数据仓库或其它类型的结构化或非结构化数据存储器。在一些示例中,数据存储部208包括语料库和/或关系数据库,其具有使得数据访问能够实现的一个或多个表、索引、储存过程等,包括例如超文本标记语言(HTML)表、资源描述框架(RDF)表、网络本体语言(OWL)表和/或可扩展标记语言(XML)表中的一种或多种。数据储存部208可以储存数据,该数据用于储存在计算机可读介质204中和/或由(多个)处理单元和/或(多个)加速计202执行的过程、应用、组件和/或模块的操作。数据储存部208还可以储存设备能力数据,其包括设备存储器、设备速度和/或设备显示能力。替代地,上面引用的数据中的一些或全部可以储存在一个或多个处理单元202上的单独存储器210上。

设备200还可以包括一个或多个输入/输出(I/O)接口212,以允许设备200与输入/输出设备通信,所述输入/输出设备诸如用户输入设备(包括外围输入设备(例如键盘、鼠标、笔、游戏控制器、语音输入设备、触摸输入设备、手势输入设备等))和/或输出设备(包括外围输出设备(例如显示器、打印机、音频扬声器、触觉输出等))。此外,在设备200中,(多个)网络接口214(其可以是(多个)网络接口118)可以表示例如网络接口控制器(NIC)或其它类型的收发器设备,以通过网络发送和接收通信。

在图示的示例中,设备200可以经由总线216(其对应于总线110)可操作地将(多个)处理单元202连接到计算机可读介质204、(多个)I/O接口212和(多个)网络接口214。

在图示的示例中,计算机可读介质204还包括操作系统218,其可以是操作系统112。

计算机可读介质204还包括应用发现和控制平台支持(“平台支持”)220,其可以是平台支持114。平台支持220可以包括一个或多个模块和/或应用编程接口(API),其图示为框222、224、226、228、230和232,不过这仅仅是示例,并且数量可以变得更高或更低。

与框222、224、226、228、230、232、234和236相关联地描述的功能可以被组合以由更少量的模块和/或API执行,或者它可以被分开并由更大量的模块和/或API执行。例如,框222可以表示远程设备发现模块。远程设备发现模块222可以包括经由网络接口214搜索远程设备(诸如(多个)设备102)的逻辑。远程设备发现模块222可以是ALLJOYN模块或能够通过网络发现远程设备的任何其它模块。在一些示例中,远程设备发现模块222可以周期性地搜索远程设备。在一些示例中,周期间隔可以是如在用户偏好中设置的用户指定的时间。在各种示例中,远程设备发现模块222可以基于经由I/O接口212的用户输入来搜索远程设备。

在图示的示例中,平台支持还可以包括应用处理模块224。在一些示例中,应用处理模块224包括对设备200的(多个)处理单元202编程以从应用储存库模块206和/或外部数据储存部提取应用能力数据的逻辑。应用能力数据包括指示应用执行特定任务的能力、应用的速度的数据和/或其它应用性能数据。在一些示例中,应用处理模块224可以包括对处理单元202编程以提取用户偏好数据的逻辑,所述用户偏好数据包括用于执行特定任务的用户偏好的应用、应用使用频率、在设备上运行应用所花费的时间和/或将指示用户偏好的任何其它数据。

在一些示例中,应用处理模块224可以包括指示应用在设备200上执行特定的逻辑。应用处理模块224还可以包括将与正在执行的任务相关联的任务上下文数据发送到显示模块以呈现在设备200上的显示器上的逻辑。

在图示的示例中,平台支持220可以包括用户接口226,其可以是用户接口116。用户接口226可以包括对经由(多个)I/O接口210的输入做出响应的逻辑。用户接口226可以由触摸输入、笔输入、鼠标点击、键盘选择和/或任何其它输入机制中的至少一个激活。输入可以包括应用发现查询、应用选择、应用激活和/或控制输入、和/或后台任务激活和/或控制输入。响应于经由(多个)I/O接口210接收发现查询,用户接口226使得远程控制模块228能够向一个或多个远程设备发送发现查询。响应于接收应用激活和/或控制输入、和/或后台任务激活和/或控制输入,用户接口226使得远程控制模块228能够向一个或多个远程设备发送相应的消息。

远程控制模块228可以是当设备200作为源设备操作时可操作的平台支持220的功能。远程控制模块228可以包括对(多个)处理单元202编程以从数据储存部208提取用户概要、组概要、用于信任远程设备的用户偏好和/或用于确定远程设备的可信任性的任何其它信任因素的逻辑。

远程控制模块228可以包括应用用户简档、组简档、用于信任远程设备的用户偏好和/或用于确定一个或多个远程设备的信任的任何其它信任因素的逻辑。在至少一个示例中,处于或高于用户指定的信任水平的信任导致远程设备被标记为受信的。

在一些示例中,信任可以基于匹配设备200上的用户简档和/或组简档的远程设备用户简档和/或组简档。在一些示例中,信任可以基于用于信任远程设备的用户偏好。例如,用于信任远程设备的用户偏好可设置为一水平使得远程控制模块228确定经由网络连接的多个设备(诸如设备102(1)-102(N))是受信的。对于另一示例,用于信任远程设备的用户偏好可设置为一水平,使得远程控制模块228确定多个设备中仅有一些设备(诸如102(1)-102(3))是受信的。

远程控制模块228还可以包括将一个或多个受信远程设备的列表保存在缓存中的逻辑。在一些示例中,缓存可以响应于确定一个或多个远程设备的信任的远程控制模块228来更新。

远程控制模块228可以包括经由网络接口214对(多个)处理单元202编程以使远程设备发现模块222打开设备200与一个或多个受信远程设备之间的通信信道的逻辑。该通信信道可以提供设备之间的数据传输,所述数据诸如为消息和/或任务上下文数据,其包括与特定应用任务相关联的文本、图像和/或任何其它数据。通信信道可以保持打开,直到设备不再可发现、设备不再被信任和/或经由用户接口226的输入断开设备。

远程控制模块228还可以包括经由网络接口214向一个或多个受信远程设备(诸如设备102(N))发送一个或多个串行化的消息的逻辑。该一个或多个串行化的消息可以包括应用发现查询、应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息。在一些示例中,该串行化的消息可以是JavaScript Object Notation(对象表示)格式、YAML格式、XML格式或可以用于传输数据的任何其它格式。

在一些示例中,远程控制模块228可以包括向一个或多个受信目标设备发送应用发现查询的逻辑。应用发现查询可以至少部分地基于通过用户接口226的输入,该输入至少是针对能够执行特定任务的应用的查询。应用发现查询可以包括针对一个或多个受信设备上的应用能力数据的请求,所述应用能力数据包括应用执行特定任务的能力、应用的速度和/或其它应用性能数据。应用发现查询还可以包括针对一个或多个受信设备的设备能力数据的请求,所述设备能力诸如为设备存储器、速度和/或显示能力。

远程控制模块228可以包括从一个或多个受信远程设备接收一个或多个发现响应消息的逻辑。在一些示例中,该一个或多个发现响应消息可以包括在该一个或多个受信远程设备上能够执行任务的至少一个应用、针对该至少一个应用的应用能力和/或针对该一个或多个受信远程设备的设备能力。在一些示例中,该一个或多个发现响应消息可以包括远程设备和/或远程设备上的应用不能执行任务的通知。

在一些示例中,远程控制模块228可以包括至少部分地基于该一个或多个发现响应消息,选择一个或多个受信远程设备上的应用的逻辑。该选择可以基于应用能力、远程设备能力、远程设备的信任、远程设备的用户简档、远程设备的组简档和/或用户偏好。在一些示例中,远程控制模块228可以选择特定远程设备上的应用。在各种示例中,远程控制模块228可以选择处于在多于一个远程设备上的应用,使得任务可以在多于一个远程设备上同时执行。

远程控制模块228还可以包括经由网络接口​214向一个或多个受信远程设备发送应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息的逻辑。在各种示例中,应用和/或后台任务激活和/或控制消息可以至少部分地基于经由用户接口226的用户输入。在一些示例中,远程控制模块228可以基于来自源设备上的应用的输入,发送应用和/或后台任务激活和/或控制消息。在一些示例中,应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息可以含有一个或多个API钩子(hook),该一个或多个API钩子允许该应用和/或后台任务的远程控制。

在一些示例中,远程控制模块228可以包括从一个或多个受信远程设备接收应用和/或后台激活和/或控制响应消息的逻辑。该应用和/或后台任务激活和/或控制响应消息可以至少包括成功激活和/或控制该一个或多个受信远程设备上的应用和/或后台任务的通知。在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括成功呈现在该一个或多个受信远程设备上的显示器上的通知。

在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括与在源设备上的应用上运行的任务相关联的任务上下文数据。任务上下文数据可以包括与在应用上运行的任务相关联的文本、图像和/或任何其它数据。在这样的示例中,应用和/或后台任务激活和/或控制响应消息可以包括流传输数据,使得任务上下文数据输入在流传输数据中更新。远程控制模块228可以包括处理流传输数据并且将其发送到显示模块230以显示在设备200上的逻辑。

在图示的示例中,平台支持220可以包括应用发现和控制管理器模块232。应用发现和激活管理器模块232可以是当设备200作为目标设备操作时可操作的平台支持220的功能。应用发现和控制管理器模块232可以包括经由网络接口​214从源设备(诸如设备102(N))接收一个或多个串行化的消息的逻辑。该一个或多个串行化的消息可以包括应用发现查询、应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息。在一些示例中,该串行化的消息可以是JavaScript Object Notation格式、YAML格式、XML格式或使用人类可读文本以传输数据的任何其它格式。

应用发现和激活管理器模块232可以包括对(多个)处理单元202编程以从应用储存库206提取应用能力数据的逻辑。应用能力数据可以包括指示应用执行特定任务的能力的数据、应用的速度和/或其它应用性能数据。应用发现和激活管理器模块232还可以包括对(多个)处理单元202编程以从数据储存部208提取设备能力数据的逻辑。设备能力数据可以包括针对一个或多个受信设备的设备存储器、速度和/或显示能力。

应用发现和控制管理器模块232可以包括从源设备接收应用发现查询的逻辑。应用发现查询可以至少请求能够执行任务的应用在远程设备上的存在和/或远程设备执行任务的能力。应用发现和控制管理器模块232可以包括对从应用储存库206提取的应用能力数据和从数据储存部提取的设备能力数据进行汇集,并且生成一个或发现响应消息的逻辑。在一些示例中,发现响应消息可以是串行化的消息。

应用发现和控制管理器模块232可以包括向源设备发送发现响应消息的逻辑,该发现响应消息包括应用能力数据、设备能力数据、缺少能够执行任务的应用和/或远程设备不能够支持在应用上运行的任务。

应用发现和控制管理器模块232可以包括从源设备接收应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息的逻辑。应用和/或后台任务激活和/或控制消息可以包括一个或多个API钩子,该一个或多个API钩子允许远程控制应用和/或后台任务。

响应于接收应用和/或后台任务激活和/或控制消息,应用发现和控制管理器模块232可以允许远程激活和/或控制应用和/或后台任务。例如,源设备上的远程控制可以发送应用激活消息,诸如激活视频应用和播放电影的消息。应用发现和控制管理器模块232可以接收该消息,并且响应于该消息而激活该应用并且播放该电影。对于另一示例,目标设备可以在视频应用上播放电影。应用发现和控制管理器模块232可以从源设备接收应用控制消息,该应用控制消息指示该视频应用暂停电影。响应于接收该应用控制消息,应用发现和控制管理器模块232可以暂停电影。

应用发现和控制管理器模块232可以包括向源设备发送激活响应消息的逻辑。在一些示例中,激活响应消息可以包括成功激活和/或控制目标设备上的应用和/或后台任务的通知。在一些示例中,激活响应消息可以包括在目标设备上的显示器上成功呈现任务上下文数据的通知,该任务上下文数据与在应用上运行的任务相关联。在这样的示例中,应用模型发现和控制管理器模块232可以包括将与在目标设备上的应用中运行的任务相关联的任务上下文数据发送到显示模块230的逻辑。

在一些示例中,激活响应消息可以包括用于呈现在源设备上的显示器上的任务上下文数据。例如,用户可能想将复杂计算的结果显示在智能电话上,但是该智能电话可能不能执行该计算。响应于经由用户接口的针对计算的用户输入,智能电话远程控制模块可以向一个或多个远程受信设备发送发现请求查询。发现请求查询可以包括应用和/或设备执行复杂计算的能力的指示。受信远程设备中的一个可以是台式计算机,诸如设备102(1)。台式计算机上的应用发现和控制管理器模块232可以发送具有应用能力数据和设备能力数据两者的发现响应消息,其指示应用和设备两者能够执行任务。响应于发现响应消息,智能电话上的远程控制模块可以发送应用激活消息。

响应于应用激活消息,台式计算机上的应用发现和控制管理器模块232可以激活应用、执行任务和发送激活响应消息。激活响应消息可以包括具有复杂计算的结果的任务上下文数据。智能电话上的远程控制模块可以将任务上下文数据路由到显示模块(诸如显示模块230),以呈现在智能电话的显示器上。

在一些示例中,显示模块230包括在显示器上呈现与正在设备200上的应用上执行的任务相关联的任务上下文数据的逻辑。在一些示例中,设备200可以作为源设备操作,并且远程控制模块228可以将针对正在远程应用上执行的任务的流传输任务上下文数据发送到显示模块230。在一些示例中,设备200可以作为目标设备操作,并且应用发现和激活管理器232可以激活和/或控制任务在设备200上的应用上的执行。在这样的示例中,应用发现和激活管理器232可以包括用于对应用处理模块224编程以将任务上下文数据发送到显示模块230以便显示在设备200上的逻辑。

图3图示各自包括跨设备应用发现和控制系统的示例源设备和示例目标设备(诸如设备102(1)和102(2))的选择组件。在图示的示例中,源设备302可以作为源设备操作,并且目标设备304可以作为目标设备操作,不过这仅仅是示例,并且每个设备302和304可以包括源设备和目标设备模块两者。源设备302可以实现远程发现、激活和控制目标设备304上的应用和/或后台任务。目标设备304可以使得发现能够实现,并且可以允许源设备302无缝地激活和控制目标设备304上的一个或多个应用。

(与框306(1)、308和310相关联地描述的)源设备302的功能可以被组合以由更少数量的模块和/或API执行,或者可以被分开并且由更大数量的模块和/或API执行。类似地,(与框306(2)、312、314、316和318相关联地描述的)目标设备304的功能可以被组合以由更少数量的模块和/或API执行,或者可以被分开并且由更大数量的模块和/或API执行。

在图示的示例中,源设备302可以包括对应于远程设备发现模块222的远程设备发现模块306(1)。

在一些示例中,源设备302可以经由远程设备发现模块306(1)和306(2)发现目标设备304。在各种示例中,远程设备发现模块306(1)和306(2)可以提供源设备302和目标设备304之间的通信信道。响应于发现目标设备304,远程设备发现模块306(1)可以接收目标设备304信任信息。目标设备304信任信息可以包括目标设备用户简档、目标设备组用户简档和/或用于确定远程设备的可信任性的任何其它数据。远程设备发现模块306(1)可以向对应于远程控制模块222的远程控制模块308发送目标设备信任信息。

远程控制模块308可以从远程设备发现模块306(1)接收目标设备信任信息,并将其与源设备302信任设置比较。目标设备信任信息可以包括用户简档、组简档和/或用于确定目标设备是否可以被信任的任何其它信息。源设备302信任设置可以包括用户简档、组简档、用于信任远程设备的用户偏好和/或用于确定远程设备304是否可以被信任的任何其它信任因素。

在一些示例中,信任可以基于目标设备304用户简档和/或组简档匹配源设备302上的用户简档和/或组简档。在一些示例中,信任可以基于用于信任远程设备的用户偏好。例如,用于信任远程的用户偏好可被设置为一水平,使得模型远程控制模块308可以确定多个设备(诸如设备102(1)-102(N))是受信的。对于另一示例,用于信任远程设备的用户偏好可被设置为一水平,使得远程控制模块308可以确定多个设备中仅仅一些(诸如102(1)-102(3))是受信的。

响应于确定目标设备304是受信设备,远程控制模块308可以将目标设备保存到缓存。在一些示例中,响应于确定目标设备304是受信设备,远程控制模块308可以经由远程设备发现模块306(1)和306(2)打开源设备302和目标设备304之间的通信信道。通信信道可以允许设备之间的数据传输,所述数据诸如为消息和/或任务上下文数据,其包括与特定应用任务相关联的文本、图像和/或任何其它数据。通信信道可以保持打开,直到设备不再可发现、设备不再被信任和/或用户接口(诸如用户接口226)上的输入断开设备。

在一些示例中,远程控制模块308可以经由通信信道向目标设备304发送一个或多个串行化的消息。该一个或多个串行化的消息可以包括应用发现查询、应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息。

在一些示例中,远程控制模块308可以向目标设备304上的应用发现和控制管理器模块312发送应用发现查询。应用发现查询可以至少部分地基于通过用户接口(诸如用户接口226)的输入。通过用户接口的输入可以是能够执行特定任务的应用的查询。应用发现查询可以包括对该一个或多个受信设备上的应用能力数据的请求,所述应用能力数据包括应用执行任务的能力、应用的速度和/或其它应用性能数据。应用发现查询还可以包括针对该一个或多个受信设备的设备能力数据(诸如设备存储器、速度和/或显示能力)的请求。

响应于接收应用发现查询,应用发现和控制管理器模块312可以从应用储存库314提取应用能力数据。应用能力数据可以包括应用执行任务的能力、应用的速度和/或其它应用性能数据。在一些示例中,响应于接收应用发现查询,应用发现和控制管理器模块312可以从数据储存部(诸如数据存储部208)提取设备能力数据。设备能力数据可以包括一个或多个受信设备的设备存储器、速度和/或显示能力。

应用发现和控制管理器模块312可以汇集针对能够执行任务的一个或多个应用的应用能力数据和/或设备能力数据。应用发现和控制管理器模块312可以在发现响应消息中向远程控制模块308发送应用和/或设备能力数据。在一些示例中,发现响应消息可以包括缺少能够执行任务的应用和/或远程设备304不能支持在应用上运行的任务的通知。

响应于接收目标设备304上的一个或多个应用的能力数据,源设备302上的应用可以经由远程控制模块308选择用于执行任务的优选应用。在一些示例中,用户可以经由模型远程控制模块308中的用户接口选择用于执行任务的优选应用。该选择可以基于应用能力、远程设备能力、远程设备的信任、远程设备的用户简档和/或用户偏好。在各种示例中,应用和/或用户可以选择在多于一个远程设备上的优选应用,使得任务可以在多于一个远程设备上同时执行。

在一些示例中,远程控制模块308可以经由通信信道向目标设备304上的应用发现和控制管理器模块314发送应用和/或后台任务激活和/或控制消息。在一些示例中,应用和/或后台任务激活和/或控制消息可以包括应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息。在各种示例中,应用和/或后台任务激活和/或控制消息可以至少部分地基于经由用户接口(诸如用户接口226)的用户输入。在一些示例中,应用和/或后台任务激活和/或控制消息可以含有一个或多个API钩子,该一个或多个API钩子允许远程控制应用和/或后台任务。

响应于接收应用和/或后台任务激活和/或控制消息,应用发现和控制管理器模块314可以向应用管理器316发送信号,以允许远程激活和/或控制应用和/或后台任务。该信号可以包括由源设备302中的远程控制模块308指示的激活和/或控制数据。在一些示例中,应用管理器316可以与应用发现和控制管理器模块312组合。在一些示例中,应用管理器316可以是单独的模块,其可操作地连接到应用发现和控制管理器模块312。

在一些示例中,应用管理器316可以激活和/或控制应用318。例如,源设备上的远程控制模块可以发送应用激活消息,诸如激活比如应用318的视频应用以及播放电影的消息。应用发现和控制管理器模块314可以接收应用激活消息,并将该应用激活消息发送到应用管理器316。响应于接收该应用激活消息,应用管理器316可以激活视频应用并在目标设备304上播放电影。对于另一示例,目标设备304可以正在视频应用(诸如应用318)上播放电影。应用发现和控制管理器模块314可以利用暂停电影的指令从源设备302接收应用控制消息。应用发现和控制管理器模块314可以向应用管理器316发送应用控制消息。响应于应用控制消息,应用管理器316可以暂停应用318上的电影。

在一些示例中,应用发现和控制管理器模块314可以向远程控制模块308发送应用和/或后台任务激活和/或控制响应消息。在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括成功激活和/或控制目标设备304上的应用和/或后台任务的通知。在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括在目标设备304上的显示器上成功呈现应用上的任务的通知。

在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括用于呈现在源设备302的显示器310上的流传输任务上下文数据。任务上下文数据可以包括与在应用上运行的任务相关联的文本、图像和/或任何其它数据。远程控制模块308可以包括用于处理流传输数据,并且将其发送到显示模块310以显示在源设备302上的逻辑。

例如,源设备302可以是智能电话。用户可能想将复杂计算的结果显示在源设备302上,但是智能电话可能不能够执行计算。响应于经由用户接口的针对计算的用户输入,远程控制模块308可以向一个或多个远程受信设备发送发现请求查询。该发现请求查询可包括应用和/或设备执行复杂计算的能力。目标设备304可以是台式计算机,诸如设备102(1)。应用发现和控制管理器模块312可以发送具有应用318和目标设备304两者能力数据的发现响应消息,其指示应用318和目标设备304两者能够执行该任务。响应于发现响应消息,远程控制模块308可以发送应用激活消息,其指示目标设备304激活应用318。

响应于应用激活消息,应用发现和控制管理器模块312可以向应用管理器316发信号以激活应用并执行任务。响应于应用,应用模型发现和控制管理器模块312可以向模型远程控制器308发送激活响应消息,该激活响应消息包括具有复杂计算的结果的任务上下文数据。远程控制模块308可将任务上下文数据路由到显示模块310以呈现在源设备302上的显示器上。

图4图示一致的跨设备应用发现和控制系统的跨设备应用远程控制模块的选择组件。

与框402、404、406、408、410和412相关联地描述的功能可以被组合以由更少数量的模块和/或API执行,或者其可以被分开并由更大数量的模块和/或API执行。例如,框402可以表示应用模型客户端。应用模型客户端402可以从诸如远程设备发现模块222的远程设备发现模块接收一个或多个发现的设备的列表。在一些示例中,该一个或多个发现的设备的列表可以至少包括目标设备信任信息。目标设备信任信息可以包括用户简档、组简档和/或用于确定目标设备是否可被信任的任何其它信息。源设备302信任设置可以包括用户简档、组简档、用于信任远程设备的用户偏好和/或用于确定远程设备304是否可被信任的任何其它信任因素。

在一些示例中,应用模型客户端402可以通过将信任信息与源设备信任设置比较来确定一个或多个远程设备的信任。在一些示例中,一个或多个远程设备可以基于共享用户和/或组简档的源设备和目标设备而被信任。在一些示例中,一个或多个远程设备可以基于用于信任远程设备的用户偏好而被信任。例如,用户可以设置用于信任网络上可发现的任何设备的偏好。

响应于确定一个或多个远程设备的信任,应用模型客户端402可以将受信远程设备的列表存储到远程设备缓存404。远程设备缓存404可以使得能至少容易访问受信远程设备。

在一些示例中,应用模型客户端402可以经由网络接口向一个或多个受信远程设备(诸如设备102(N))发送一个或多个串行化的消息。该一个或多个串行化的消息可以包括应用发现查询、应用激活消息、应用控制消息、后台任务激活消息和/或后台任务控制消息。

在一些示例中,应用模型客户端402可以包括向一个或多个受信目标设备发送应用发现查询406的逻辑。应用发现查询406可以至少部分地基于经由用户接口的用户输入,该输入至少为针对能够执行任务的应用的查询。应用发现查询406可以包括对一个或多个受信设备上的应用能力数据的请求,该应用能力数据包括应用执行任务的能力、应用的速度和/或其它应用性能数据。在一些示例中,应用发现查询可以包括针对一个或多个受信任设备的设备能力数据的请求,该设备能力诸如为设备存储器、速度和/或显示能力。

在一些示例中,应用模型客户端402可以从一个或多个受信远程设备接收一个或多个发现响应消息408。该一个或多个发现响应消息408可以含有在该一个或多个受信远程设备上能够执行任务的至少一个应用、针对该至少一个应用的应用能力和/或针对该一个或多个受信远程设备的设备能力。在一些示例中,一个或多个发现响应消息408可以包括远程设备和/或远程设备上的应用不能够执行任务的通知。

响应于接收一个或多个发现响应消息408,应用模型客户端402可以处理该一个或多个发现响应消息,并向远程应用发现客户端410发送发现响应消息。在一些示例中,远程应用发现客户端410可以确定发现响应消息中的应用的信任。应用的信任可以基于用户偏好和/或应用设置。在这样的示例中,远程应用发现客户端410可以将用户偏好和/或应用设置应用于该一个或多个发现响应消息,并且过滤掉不受信的应用。

在一些示例中,远程应用发现客户端410可以处理受信任应用的应用和/或设备能力数据,并且将每个相应受信任应用的能力数据合并到一个或多个远程应用文件中。远程应用发现客户端410可以将该一个或多个远程应用文件发送到远程应用文件限制器412。

远程应用文件限制器412可以使得能从该一个或多个远程应用文件中选择远程应用文件。在一些示例中,源设备上的应用可以选择远程应用文件。在各种示例中,用户可以经由用户接口414选择远程应用文件。

在一些示例中,远程应用文件的选择可以至少部分地基于应用和/或设备能力数据。例如,三个远程应用文件可以被发送到远程应用文件限制器412,每个远程应用文件与能够播放电影的应用相关联。远程应用文件限制器412可以选择与具有最大显示的设备上的应用相关联的远程应用文件。对于另一示例,远程应用文件限制器412可以选择与用户偏好的应用相关联的远程应用文件。

远程应用文件限制器412可以将所选择的远程应用文件发送到远程应用激活和控制客户端416。在一些示例中,远程应用激活和控制客户端416可以经由应用模型客户端402产生一个或多个应用激活和/或控制消息418。在一些示例中,应用激活和/或控制消息418可以是串行化的消息。在一些示例中,应用激活和/或控制消息418可以指示目标设备激活和/或控制应用。在各种示例中,应用激活和/或控制消息418可以指示目标设备激活和/或控制后台任务。

在一些示例中,一个或多个应用激活和/或控制消息418可以至少部分地基于从远程应用文件限制器412接收的远程应用文件。例如,远程应用激活和控制客户端416可以接收与NETFLIX应用相关联的远程应用文件。响应于接收该与NETFLIX应用相关联的远程应用文件,远程应用激活和控制客户端416可以产生应用激活消息,其指示远程设备激活NETFLIX应用。

在一些示例中,远程应用激活和控制客户端416可以至少部分地基于来自用户接口418的输入来产生应用激活和/或控制消息418。例如,用户可能想要暂停在远程设备上的NETFLIX应用上播放的电影。用户可以经由I/O接口(诸如I/O接口212)在用户接口414上选择暂停控制。用户接口414可以将输入发送到远程应用激活和控制客户端416,其可以产生应用激活和/或控制消息418。远程应用激活和控制客户端412可以经由应用模型客户端402向远程设备发送应用激活和/或控制消息418,该应用控制消息418指示远程设备暂停NETFLIX应用。

在各种示例中,应用模型客户端402可以从目标设备接收激活和/或控制响应消息420。在一些示例中,激活和/或控制响应消息420可以包括成功激活和/或控制目标设备上的应用和/或后台任务的通知。在一些示例中,应用和/或后台任务激活和/或控制响应消息可以包括在目标设备上的显示器上成功呈现应用上的任务的通知。

图5图示跨设备应用发现和控制系统的跨设备应用发现和控制管理器模块的选择组件。

与框502、504、506、508、510、512、514、516、518和520相关联地描述的功能可以被组合以由更少数量的模块和/或API执行,或者其可以被分开并由更大数量的模块和/或API执行。例如,框502可以表示从源设备发送并且由应用模型发现和控制管理器模块500接收的应用发现查询。在一些示例中,应用发现查询可以是串行化的消息。

在一些示例中,发现查询可以包括对一个或多个受信设备上的应用能力数据的请求,该应用能力数据包括应用执行任务的能力、应用的速度和/或其它应用性能数据。应用发现查询还可以包括针对一个或多个受信设备的设备能力数据的请求,该设备能力诸如为设备存储器、速度和/或显示能力。

设备能力发现处理机504可以接收应用发现查询502。响应于接收应用发现查询502,设备能力发现处理机504可以确定相关设备能力数据,诸如能够使设备能够支持设备上的应用执行所请求任务的设备能力数据。例如,如果应用发现查询502包括在视频应用上播放电影的请求,相关设备能力数据可以至少包括设备显示能力。

设备能力发现处理机504可以将应用发现查询502发送到应用模型管理器506以用于进一步处理。应用模型管理器506可以处理应用发现查询502,并且请求发现消息处理机508在应用储存库510中搜索能够执行任务的一个或多个应用。发现消息处理机508可以向应用模型管理器506发送列出一个或多个应用和相应的应用能力数据的消息。应用模型管理器506可以处理来自发现消息处理机508的消息,并且经由发现响应消息512将其发送到源设备。在一些示例中,发现响应消息512可以是串行化的消息。

在图示的示例中,框514可以表示从源设备发送并且由应用模型发现和控制管理器模块500接收的激活和/或控制消息。在一些示例中,激活和/或控制消息514可以是串行化的消息。

在一些示例中,激活和/或控制消息514可以是应用激活消息和/或应用控制消息。在这样的示例中,应用模型管理器506接收激活和/或控制消息514,并处理该消息。响应于接收激活和/或控制消息514,应用模型管理器506可以向应用生存期消息处理机516发送信号,以激活和/或控制应用518。应用生存期消息处理机可以经由应用模型管理器506,向源设备发送应用激活和/或控制响应消息520,其至少包括成功激活和/或控制应用518的通知。在一些示例中,应用激活和/或控制响应消息520可以包括与在应用518上运行的任务相关联的任务上下文数据。

在一些示例中,激活和/或控制消息514可以是后台任务激活消息和/或后台任务控制消息。在这样的示例中,应用模型管理器506接收激活和/或控制消息514,并处理该消息。响应于接收激活和/或控制消息514,应用模型管理器506可以经由后台代理设施524向后台任务消息处理机522发送信号,以激活和/或控制后台任务。后台任务消息处理机522可以经由应用模型管理器506向源设备发送激活和/或控制响应消息520,其至少包括成功激活和/或控制后台任务的通知。

说明性过程

图6和7是描绘跨设备应用发现和/或控制系统的示例过程的流程图。示例性过程的操作在单独的框中图示并且参考那些框来概括。这些过程被图示为框的逻辑流,所述框的每个框可以表示可以在硬件、软件或它们的组合中实现的一个或多个操作。

图6图示使用跨设备应用发现和激活系统的来自源设备的应用发现、激活和控制的过程流。图6图示存在一个源设备和一个目标设备的过程流,不过这仅仅是示例,并且可以存在多于一个源设备和/或多于一个目标设备。

在框602处,诸如设备102、200和/或302的源设备上的远程设备发现模块经由网络连接识别远程设备。响应于发现远程设备,远程设备发现模块可以请求和接收远程设备信任信息,其包括用户简档、组用户简档、用户偏好设置或确定远程设备的信任的任何其它方式。

在框604处,源设备上的模型远程控制模块(诸如模型远程控制模块400)处理远程设备信任信息,并且确定远程设备是否可被信任。在一些示例中,与源设备共享用户简档的远程设备可以被信任。在一些示例中,与源设备共享组简档的远程设备可以被信任。在一些示例中,源设备用户偏好可以设置信任,使得任何可发现的远程设备可以被信任。

在框606处,源设备上的模型远程控制模块可以向一个或多个受信远程设备发送应用发现查询消息。应用发现查询可以包括针对一个或多个受信设备上的应用能力数据的请求,该应用能力数据包括应用执行特定任务的能力、应用的速度和/或其它应用性能数据。应用发现查询还可以包括针对一个或多个受信设备的设备能力数据的请求,该设备能力诸如为设备存储器、速度和/或显示能力。

在框608处,响应于应用发现查询,源设备上的模型远程控制模块接收发现响应消息。该发现响应消息可以包括该一个或多个受信远程设备上能够执行任务的至少一个应用、该至少一个应用的应用能力和/或该一个或多个受信远程设备的设备能力的指示。在一些示例中,一个或多个发现响应消息可以包括远程设备和/或远程设备上的应用不能够执行任务的通知。

在框610处,源设备上的模型远程控制模块可以接收多个发现响应消息。远程应用发现客户端可以处理该多个发现响应消息,并且将远程应用文件发送到远程应用文件限制器,诸如远程应用文件限制器408。远程应用文件可以与应用相关联,并且可以包括针对含有该应用的特定远程设备的应用能力数据和设备能力数据。

在框612处,源设备上的应用经由远程应用文件限制器可以选择远程应用文件用于激活和/或控制。在各种示例中,用户经由用户接口上的输入可以选择远程应用文件用于激活和/或控制。在一些示例中,源设备上的应用和用户输入的组合可以选择远程应用文件用于激活和/或控制。

在框614处,响应于与应用相关联的远程应用文件的选择,源设备上的模型远程控制模块向含有该应用的远程设备发送应用激活消息。在一些示例中,应用激活消息可以被发送到含有该应用的一个或多个远程设备。应用激活消息可以包括使特定远程设备激活应用并从运行来自应用发现查询的所请求任务的指示。在一些示例中,源设备上的模型远程控制模块可以向一个或多个远程设备发送后台任务激活消息。

在框616处,源设备上的模型远程控制模块可以从一个或多个远程设备接收激活响应消息。该激活响应消息可以包括成功激活一个或多个目标设备上的应用的通知。在一些示例中,激活响应消息可以包括成功激活一个或多个目标设备上的后台任务的通知。在各种示例中,激活响应消息可以包括在与一个或多个目标设备相关联的显示器上成功呈现任务的通知。在一些示例中,激活响应消息可以包括流传输任务上下文数据,使得任务上下文数据可以呈现在源设备上的显示器上。

在框618处,源设备上的模型远程控制模块可以发送应用控制消息。在一些示例中,源设备上的模型远程控制模块可以发送后台任务控制消息。控制消息可以包括播放、暂停、恢复、停止、刷新、取消和/或执行应用和/或后台任务的任何其它生存期和/或后台任务管理功能的指令。

在框620处,响应于应用和/或后台任务控制消息,源设备接收控制响应消息。控制响应消息可以包括成功控制应用的通知。在一些示例中,控制响应消息可以包括成功控制后台任务的通知。在一些示例中,控制响应消息可以包括更新的流传输任务上下文数据,使得在源设备上显示的任务上下文数据反映应用控制。

图7图示使用跨设备应用发现和激活系统的来自目标设备的应用发现、激活和控制的过程流。图7图示存在一个源设备和一个目标设备的过程流,不过这仅仅是示例,并且可以存在多于一个源设备和/或多于一个目标设备。

在框702处,诸如设备102、200和/或304的目标设备上的应用模型发现和控制管理器模块从源设备接收应用发现查询。该应用发现查询可以包括对一个或多个受信设备上的应用能力数据的请求,该应用能力数据包括应用执行任务的能力、应用的速度和/或其它应用性能数据。该应用发现查询还可以包括对一个或多个受信设备的设备能力数据的请求,该设备能力诸如为设备存储器、速度和/或显示能力。

响应于接收应用发现查询,应用模型发现和控制管理器模块可以在目标设备上的应用储存库模块中搜索应用能力数据。在一些示例中,应用模型发现和控制管理器可以从应用储存库模块提取应用能力数据。在一些示例中,应用模型发现和控制管理器模块可以从数据储存部(诸如数据储存部208)提取设备能力数据。

在框704处,目标设备上的应用模型发现和控制管理器模块向源设备发送发现响应消息。该发现响应消息可以包括目标设备上能够执行任务的至少一个应用、针对该至少一个应用的应用能力和/或针对目标设备的设备能力。在一些示例中,发现响应消息可以包括目标设备和/或目标设备上的一个或多个应用不能够执行任务的通知。

在框706处,目标设备上的应用模型发现和控制管理器模块至少部分地基于发现响应消息来接收应用激活消息。应用激活消息可以包括使目标设备激活目标设备上的应用的指令。在一些示例中,应用激活消息可以包括使目标设备激活目标设备上的后台任务的指令。

在框708处,目标设备上的应用模型发现和控制管理器模块激活应用。在一些示例中,应用模型发现和控制管理器模块可以激活后台任务。

在框710处,目标设备上的应用模型发现和控制管理器模块向源设备发送激活响应消息。激活响应消息可以包括成功激活目标设备上应用的通知。在一些示例中,激活响应消息可以包括成功激活目标设备上的后台任务的通知。在各种示例中,激活响应消息可以包括在目标设备上的显示器上成功呈现任务的通知。在一些示例中,激活响应消息可以包括流传输任务上下文数据,使得任务上下文数据可以呈现在源设备上的显示器上。

在框712处,目标设备上的应用模型发现和控制管理器模块接收应用控制消息。在一些示例中,目标设备上的应用模型发现和控制管理器模块可以接收后台任务控制消息。应用和/或后台任务控制消息可以包括播放、暂停、恢复、停止、刷新、取消和/或执行应用和/或后台任务的任何其它生命期和/或后台任务管理功能的指令。响应于接收应用和/或后台任务控制消息,目标设备上的应用模型发现和控制管理器模块可以执行指令以控制应用和/或后台任务。

在框714中,目标设备上的应用模型发现和控制管理器模块向源设备发送控制响应消息。该控制响应消息可以包括成功激活目标设备上的应用的通知。在一些示例中,控制响应消息可以包括成功激活目标设备上的后台任务的通知。在一些示例中,控制响应消息可以包括更新的流传输任务上下文数据,使得显示在源设备上的任务上下文数据反映应用控制。

在软件的上下文中,操作表示储存在一个或多个计算机可读储存介质上的计算机可执行指令,当由一个或多个处理器执行时,该计算机可执行指令使得一个或多个处理器能够执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。该过程还可以在分布式计算环境中实施,其中功能由通过通信网络链接的远程处理设备执行。在分布式计算环境中,计算机可执行指令可以位于本地和/或远程计算机储存介质(包括存储器储存设备)。

在硬件的上下文中,一些或所有的框可以表示执行所列举的操作的专用集成电路(ASIC)或其它物理组件。

描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序执行、以任何顺序组合、细分为多个子操作和/或并行执行以实现所描述的过程。

示例条款

A:一种系统,包含:处理器;存储器;储存在该存储器中并且至少部分地由该处理器执行的一个或多个应用;以及储存在该存储器中的跨设备远程控制模块,其中该跨设备远程控制模块配置成发现一个或多个目标设备上的远程应用,并且该跨设备远程控制模块包含:配置成经由网络发送和接收消息的跨设备应用模型客户端;以及配置成处理远程应用信息的远程应用发现客户端,该远程应用信息至少包括应用能力。

B:如段落A所述的系统,其中该跨设备应用模型客户端还配置成:经由该网络连接到该一个或多个目标设备;确定该一个或多个目标设备的信任;至少部分地基于该信任,向该一个或多个目标设备发送应用发现查询;以及从该一个或多个目标设备接收一个或多个应用发现响应。

C:如段落B所述的系统,其中该一个或多个应用发现响应包含:应用信息和设备信息;其中该应用信息至少包含完成特定任务的应用能力,并且其中该设备信息至少包含完成该特定任务的设备能力。

D:如段落A-C所述的系统,其中该远程应用发现客户端还配置成:接收一个或多个应用发现响应;确定一个或多个远程应用文件,该一个或多个远程应用文件与能够完成该特定任务的一个或多个应用相关联;以及,向限制器发送一个或多个远程应用文件。

E:如段落A-D所述的系统,其中该跨设备模型远程控制还配置成指示该一个或多个目标设备激活应用。

F:如段落A-E所述的系统,其中该跨设备模型远程控制还配置成在主从配置中控制远程应用。

G:如段落A-F所述的系统,其中该跨设备模型远程控制还包含限制器,该限制器配置成:接收一个或多个远程应用文件;以及选择特定远程应用文件。

H:如段落G所述的系统,其中远程应用文件的选择经由用户输入而完成。

I:如段落G所述的系统,其中远程应用文件的选择由应用至少部分地基于发现查询来完成。

J:如段落A-1中任一段落所述的系统,其中该跨设备应用模型客户端配置成:接收远程应用文件;向该一个或多个目标设备发送激活消息,其中该激活消息指示该目标设备激活该一个或多个目标设备上的应用;以及,从该一个或多个目标设备接收激活响应消息,其中该激活响应消息至少包含:在该应用上运行的任务的通知,以及用于呈现在显示器上的任务上下文数据。

K:如段落A-J中任一段落所述的系统,其中该跨设备应用模型客户端配置成:从限制器接收远程应用文件;向目标设备发送激活消息,其中该激活消息指示该目标设备激活该目标设备上的应用;以及从该一个或多个目标设备接收激活响应消息,其中该激活响应消息包含:在该应用上运行的任务的通知,以及在该目标设备的显示器上呈现的任务上下文数据的通知。

L:一种其上具有计算机可执行指令的计算机可读介质,该计算机可执行指令响应于执行将计算机配置成执行如段落A-K中任一段落所述的系统。

M:一种设备或方法,包含:处理器;以及耦合到该处理器的计算机可读介质,该计算机可读介质包括将一个或多个设备配置成执行如段落A-K中任一段落所述的方法的指令。

N:一种设备或方法,包含:用于处理的装置;和耦合到该用于处理的装置的用于储存的装置,该用于储存的装置储存用于将一个或多个设备配置成执行如段落A-K中任一段落所述的方法的指令。

O:一种方法,包含:从源设备接收应用发现查询,该应用发现查询请求与执行任务的能力相关联的信息;确定该源设备的信任;确定目标设备是否能够执行该任务;确定该目标设备是否具有能够执行该任务的应用;以及向该源设备发送发现响应消息,该发现响应消息基于与确定该目标设备是否能够执行该任务和确定该目标设备是否具有能够执行该任务的应用相关联的结果,并且该发现响应消息至少包含设备能力和应用能力。

P:如段落O所述的方法,还包含:接收应用激活消息;以及响应于接收该应用激活消息,激活该目标设备上的应用。

Q:如段落P所述的方法,还包含:运行该设备上的应用的该任务,其中该任务具有相关联的任务上下文数据;以及,向该源设备发送应用响应消息,其中该应用响应消息至少包含:与在该设备上运行的该应用相关联的任务的通知;以及用于由该源设备呈现的该任务上下文数据。

R:如段落P所述的方法,还包含:运行该设备上的该应用的任务,其中该任务具有相关联的任务上下文数据;以及向该源设备发送应用响应消息,其中该应用响应消息至少包含:与在该设备上运行的应用相关联的任务的通知;并且该任务上下文数据由该目标设备呈现。

S:如段落O-Q中任一段落所述的方法,还包含:从该源设备接收后台任务激活消息;响应于接收到该后台任务激活消息,激活该设备上的后台任务;以及向该源设备发送后台任务响应消息。

T:一种其上具有计算机可执行指令的计算机可读介质,该指令响应于运行将计算机配置成执行如段落O-S中任一段落所述的方法。

U:一种设备或系统,包含:处理器;和耦合到该处理器的计算机可读介质,该计算机可读介质包括用于将一个或多个设备配置成执行如段落O-S中任一段落所述的方法的指令。

V:一种设备或系统,包含:用于处理的装置;以及耦合到该用于处理的装置的用于储存的装置,该用于储存的装置存储用于将一个或多个设备配置成执行如段落O-S中任一段落所述的方法的指令。

W:一种其上具有计算机可执行指令的计算机可读介质,该计算机可执行指令响应于运行将设备配置成执行包含下述的操作:识别一个或多个远程设备;确定该一个或多个远程设备中的每一个的信任;至少部分地基于该一个或多个远程设备中的每一个的信任,向该一个或多个远程设备中的至少一个发送应用发现查询;从该一个或多个远程设备中的至少一个接收应用发现响应消息,该应用发现响应消息包含指示设备能力和应用能力的信息。

X:如段落W所述的计算机可读介质,其中该设备能力包含下述中的至少一个:远程设备存储器、远程设备速度或远程设备呈现能力。

Y:如或者段落W或者段落X所述的计算机可读介质,该操作还包含:从该一个或多个远程设备中选择特定远程设备,该选择特定远程设备至少部分地基于该发现响应消息;向该特定远程设备发送应用激活消息,该应用激活消息指示该特定远程设备激活应用;接收应用激活响应消息,该激活响应消息包含该应用已在该特定远程设备上激活的通知;以及从该设备控制该特定远程设备上的应用。

Z:如段落Y所述的计算机可读介质,所述操作还包含:从该特定远程设备接收任务上下文数据;以及经由该设备呈现该任务上下文数据。

AA:一种设备或系统,包含:处理器;和耦合到该处理器的如段落W-Z中任一段落所述的计算机可读介质。

AB:一种设备或系统,包含:用于处理的装置;以及耦合到该用于处理的装置的用于储存的装置,该用于储存的装置存储用于将一个或多个设备配置成执行如段落W-Z中任一段落所述的方法的指令。

AC:一种设备,包含:远程设备发现模块,该远程设备发现模块配置成发现一个或多个远程设备;跨设备远程控制模块,该跨设备远程控制模块配置成确定该一个或多个远程设备的信任。

AD:如段落AC所述的设备,其中该信任基于用户简档、组简档或用户偏好中的至少一个。

AE:如或者段落AC或者段落AD所述的设备,其中该跨设备远程控制模块至少包含远程应用发现客户端,该远程应用发现客户端配置成发现该一个或多个远程设备上的一个或多个应用。

AF:如段落AC-AE中任一段落所述的设备,其中该跨设备远程控制模块还配置成:向目标设备发送激活消息,其中该激活消息指示该目标设备激活该目标设备上的应用;从该目标设备接收激活响应消息,该激活响应消息至少包括在该应用上运行的任务的通知;发送应用控制消息,其中该应用控制消息指示该目标设备控制该目标设备上的应用;以及接收控制响应消息,该控制响应消息至少包括在应用上正被控制的任务的通知。

AG:如段落AF所述的设备,其中该应用控制消息包含指示暂停、停止、恢复、倒退或快进的指令。

AH:一种设备,包含:远程设备发现模块,该远程设备发现模块配置成与一个或多个设备通信;一个或多个应用;跨设备应用发现和控制管理器模块,该跨设备应用发现和控制管理器模块配置成:接收发现查询,该发现查询至少包括对与执行任务的能力相关联的信息的请求;确定该一个或多个应用是否能够执行该任务;发送发现响应消息,该发现响应消息基于与确定该一个或多个应用是否能够执行该任务相关联的结果。

结论

尽管以具体于结构特征和/或方法动作的语言描述主题,应理解,所附权利要求中定义的主题不一定限于所描述的具体特征或动作。相反,具体特征和动作作为实现权利要求的说明性形式而公开。

除非另有特别说明,诸如尤其是“可能(can、could、might)”或“可以(may)”之类的条件语言在本上下文中否则被理解为一般用于表示某些示例包括,而其它示例不包括某些特征、元件和/或步骤。因此,这样的条件语言一般不旨在暗示该特征、元素和/或步骤以任何方式被一个或多个示例所需要,或者该一个或多个示例必然包括用于(在有或没有用户输入或提示的情况下)决定这些特征、元件和/或步骤是否被包括于或是否将被执行于任何特定示例的逻辑。

除非另有特别说明,诸如短语“X、Y或Z中的至少一个”的连接语言将理解为表示项目、术语等可以是X或者Y或者Z,或是它们的组合。

在本文中描述和/或在附图中描绘的流程图中的任何例程描述、元素或框应当被理解为潜在地表示代码的模块、片段或部分,其包括用于实现例程中的特定逻辑功能或元素的一个或多个可执行指令。替代示例包括在本文所描述的示例的范围内,在该替代示例中元件或功能可以被删除,或不按照所示或所讨论的顺序地执行,包括基本上同步地或以相反顺序执行,这取决于所牵涉的功能,如本领域技术人员将理解的。

应当强调,可以对上述示例进行许多变化和修改,其元素将被理解为处于其它可接受的示例中。所有这样的修改和变化旨在在本文中被包括在本公开的范围内并由下面的权利要求保护。

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