多个设备上的计算环境的呈现的制作方法

文档序号:11935113阅读:186来源:国知局
多个设备上的计算环境的呈现的制作方法与工艺

本申请要求于2014年9月24日提交的、名称为“PRESENTATION OF COMPUTING ENVIRONMENT ON MULTIPLE DEVICES(多个设备上的计算环境的呈现)”、申请号为14/495,420的美国专利申请的优先权,在此通过引用将其并入本文。



背景技术:

在计算领域,许多情境牵涉到用户与设备集的交互,所述设备集例如为膝上型电脑、移动电话、平板电脑和媒体服务器。用户可获得针对设备集的各种设备,以覆盖用户的兴趣和任务,例如,编辑文档、看电影、驾驶车辆以及与朋友互动。每一设备可以呈现计算环境,包括用户账户和凭证的集合、可用的和/或可执行应用、应用配置和状态、文档、媒体对象、以及与该设备集之内和之外的其他设备的连接。



技术实现要素:

提供本发明内容是为了以简化形式呈现概念的选择,将在下文的具体实施方式中对其做进一步描述。本发明内容并非旨在标明所要求保护的主题的关键因素或必要特征,也并非旨在用于限定所要求保护的主题的范围。

用以呈现计算环境的设备的配置可能导致脱节的体验,其中设备集中的每一设备基于该设备的设备属性基础上呈现计算环境。但是,这一模型可能引起脱节的计算体验,其中用户对每一设备的配置进行单独的配置和维护,并且其中计算环境之间的差异是由每一设备的属性(例如,针对该设备可用的并且与该设备的架构兼容的应用)方面的差异所驱使的。此外,与一个设备的交互可能不会引起另一个设备上的变化;例如,用户可以在设备集的第一设备上安装应用、调节应用配置或者创建或编辑文档,但是这样的变化可能不会出现在设备集的第二设备上。

可以利用其它技术来协调设备集的各种设备上的计算环境的呈现。作为第一个这样的示例,设备之间的文件同步可以使通过第一设备对文件集的变化自动反映在第二设备上。但是,这样的文件同步可能表现出低效率(例如,特定设备上的文件更新引起该文件被传输至所有其他设备,以确保更新的传播),并且可能导致并发性错误(例如,特定文件的更新可能发生在第一设备和第二设备上,并且可能难以解决这样的并发更新)。替代性地,在终端服务模型中,主设备可以将计算环境发送到各种设备上。但是,如果不管设备的属性如何就在每一设备上呈现相同的计算环境,那么一些设备可能就不能利用关于设备的一些设备属性,而其他设备则可能不能按照适当的方式再现计算环境。

本文呈现了使设备集能够呈现主设备所托管的计算环境的技术。根据这样的技术,设备集的主设备可以存储并维护将被呈现到该设备集的若干辅助设备中的每个上的主计算环境。对于每一辅助设备而言,主设备可以使主计算环境适于基于辅助设备的特定设备属性而被适配的辅助计算环境,所述设备属性例如为其计算资源、输入和输出能力、通信能力、电源和用户上下文。此外,在接收到在辅助设备上运行应用的请求时,主设备可以代表辅助设备在辅助计算环境内运行该应用,并且可以使该应用适于该辅助设备的设备属性。

为了完成前述的以及相关的目的,下文的描述和附图阐述了某些说明性的方面和实施方式。这些仅表明了一个或多个方面可以被利用的各种方式中的几个方式。当结合附图一起考虑时,从下面的述详细描述中,本公开的其他方面、优点和新颖的特征将变得显而易见。

附图说明

图1是以用户与设备集的一组设备的交互为特征的示例性情境的图示。

图2是以根据本文呈现的技术在辅助设备的设备集上计算环境的呈现为特征的示例性情境的图示。

图3是根据本文呈现的技术的使主设备能够在设备集的辅助设备上呈现计算环境的示例性方法的流程图。

图4是根据本文呈现的技术的使设备集的主设备和辅助设备能够向用户呈现计算环境的示例性系统的部件方框图。

图5是包括被配置为体现文中阐述的规定中的一个或多个的处理器可执行指令的示例性计算机可读介质的图示。

图6是以根据本文呈现的技术的用于在设备集中的选择的辅助设备内使应用实例化的各种技术为特点的示例性情境的图示。

图7是以根据本文呈现的技术的使应用的用户接口在设备集中的一组选择的辅助设备上分布为特点的示例性情境的图示。

图8是以根据本文呈现的技术使第一辅助设备的输入转换至第二辅助设备的第二辅助计算环境为特点示例性情境的图示。

图9是以根据本文呈现的技术在动态的设备集中的辅助设备之间重新映射应用用户接口为特点的示例性情境的图示。

图10是其中可以实施本文阐述的规定中的一个或多个的示例性计算环境的图示。

具体实施方式

现在将参考附图描述所要求保护的主题,其中通篇采用类似的附图标记表示类似的元件。在下文的描述中,出于解释的目的,阐述了很多具体的细节,以提供对所要求保护的主题的透彻理解。但是,显然可以在无需这些具体细节的情况下实践所要求保护的主题。在其他实例中,以方框图形式示出了结构和设备以方便描述所要求保护的主题。

A. 呈现

图1是展示允许用户102与设备集104内的一组设备106交互的各种技术的示例性情境100的图示。在这一示例性情境100中,用户102取得了各种不同类型的设备106,例如,工作站、家庭影院计算机、便携式平板电脑和移动电话。设备集104的相应设备106展现出了一组设备属性108,例如,具有特定的处理能力并且支持特定的指令集架构的处理器;电源,例如,与公共设施线路的连接、电池和/或不间断电源(UPS);以及能够实现与用户102进行交互的一组输入输出部件。其他这样的设备属性108包括,例如,用于再现视频以及对各种形式的数据进行编码或解码的协处理器;易失性和非易失性存储器部件;通信部件,例如,有线及无线网络适配器以及近场通信(NFC)适配器;诸如打印机和扫描仪的外围设备;以及嵌入式设备情境中的相关部件,例如,车辆控制系统的汽车部件。相应的设备106还展现出了本机计算环境110,例如,设备106的本机操作系统;在该操作系统内运行的应用112的集合;以及存储在每一设备106上的文件114的集合。

设备集104的用户102可以按照特定的方式与每一设备106交互,并且因此可以根据对其的预期用意对每一设备106进行配置。作为第一示例,工作站设备106可以以鲁棒的桌面操作系统以及针对其选择的应用112的集合为特点,所述应用例如为文本编辑器、编译器和媒体编辑软件。作为第二示例,家庭影院设备106可以以大面积的显示器、呈现出较为有限的应用112的集合(例如,媒体播放器和媒体库)的以媒体为中心的操作系统、以及较为有限的设备属性108的集合为特点,所述设备属性例如为适于再现媒体但是不能进行鲁棒的并行处理的日用处理器。作为第三示例,平板设备106可以呈现出便携式计算体验,并且可以呈现鲁棒的操作系统,该操作系统在高容量处理器上运行并且主要经由电容式触敏显示器与用户102交互。作为第四示例,第四设备106可以包括移动电话,移动电话以节能硬件、电池和面向通信的操作系统为特点,可以通过该操作系统执行移动应用112。

在这一示例性情境100中,在与该设备集104交互的同时,用户102可以在与相应的设备106交互的同时观察到显著的差异。作为第一示例,用户102与包括一组设备106的设备集104进行用户交互。在这一示例性情境100中,用户102取得覆盖很宽范围的兴趣和任务的集合的设备106,例如,所述兴趣和任务为编辑文档,观看各种形式的媒体,打游戏,与职业及社交联系人通信,以及查找为用户的日常活动带来便利的信息,例如,车辆地图和导航。设备集104的每一设备106可以呈现出计算环境114,例如,安装在每一设备106上并且可在其上执行的应用集112;各种数据集,例如,用户文件、媒体对象和网络链接;以及各种形式的用户接口,例如,适配于非正式的和/或专业的用户交互的操作系统。每一设备106还可以不同的部件的集合为特征,例如,具有变化的质量和分辨率的显示器;向用户102提供音频输出的扬声器、耳机和/或耳承;诸如键盘、鼠标和触敏显示器的输入设备;以及诸如照相机和通信设备的其他外围设备。作为第二示例,操作系统方面的变化可以通过每一设备106揭示不同类型的功能(例如,操作系统用户接口的外观和特性方面的差异;可用工具和操作方面的差异;以及每一设备106上的所标识的输入的差异,所述输入例如为可用于向每一设备106发出命令的键盘快捷键和手势)。作为第三个这样的示例,可在第一设备106上执行的应用112可能不能在第二设备106上执行,例如,由于两种设备106的操作系统和指令集架构之间的兼容性问题的原因。用户102可以试图在每一设备106上安装具有可比性的一组应用112(例如,针对不同平台开发的相同应用的不同变体,或者不同开发者的执行相同任务的应用),但是表面类似但架构不同的应用112之间可能存有不期望的差异。

在由用户102执行以在设备集104的设备106之间建立和维持一致性的设备配置和管理的程度方面可能出现另外的困难;即,在用户102对第一设备106进行配置(例如,安装应用112或者更新应用配置)时,用户102可能不得不按照类似的方式执行对一个或多个其他设备106、甚至可能对所有的设备106的人工重新配置。作为第一个这样的示例,如果第一设备106使用受到口令保护的服务,并且用户102通过第一设备106改变服务口令,那么用户102可能不得不重新配置使用相同的更新口令的其他设备106。作为第二个这样的示例,在用户102安装应用112或者创建或编辑第一设备106上的文件114时,这样的变化不是自动反映在第二设备106上,除非用户102对两个设备106都进行配置以协调这样的更新。例如,用户102可以对文档同步过程116进行配置,使得在第二设备106上被创建、修改或删除的文件114与第四设备自动同步。但是,这样的技术可能要求用户实施和维持可能是大量的并且可能是令人沮丧的程度的卷入和管理。此外,即使在这样的技术达成了同步的外观(例如,设备106可以按照某种高性能的方式执行文件同步116,从而暗示各设备106正在使用单个的文件114集合)的情况下,有可能出现引起这样的抽象“泄露”的问题。作为第一个这样的示例,可能在第二设备106和第四设备106上并发地对特定的文件114进行编辑。选择任一版本可能造成另一版本中的数据丢失,并且设备106可能没有能力确定如何融合这样的变化。作为第二个这样的示例,当第三设备106从设备集104断开时,在通过第三设备106对各种文件114进行访问时,文件可能是不可用的和/或过时了。作为第三个这样的示例,缓和诸如版本冲突这样的限制可能要求与其他不期望的效应相关的更加严格的措施;例如,可以采用锁定机制确保只有对文件114具有独家访问权的第一设备可以查看或修改该文件,但是该锁定机制可能导致第二设备106寻求对同一文件114的访问,从而引起故障停机和/或崩溃。

考虑到这些以及由每一设备106的隔离计算环境110的存在而引起的其他限制,可以采用技术促进各设备106之间的统一性。例如,终端服务器118可以生成终端计算环境120,比如,提供操作系统设置的单个用户账户、单个的应用112集合和应用配置、以及终端服务器118可访问的单个的文件114集合和硬件部件。之后,终端服务器118可以将终端计算环境120的呈现发送给每个设备106(例如,将终端计算环境120的视频发送给每一设备106,并接收来自每一设备106的输入),每一设备可以统一地为用户102再现相同的终端计算环境120。

但是,这样的终端服务技术可能表现出另外的限制,例如,终端服务器118不能准许若干设备106同时使用一个终端计算环境120。此外,一个终端计算环境120在各种设备106上的呈现可以在各106之间提供统一性,但是有可能导致次优的体验。如果统一的终端计算环境120被发送至每一设备106而不考虑每一设备106的设备属性108,那么一些设备属性108可能不会暴露于终端计算环境120内。例如,特定设备106可能包括照相机,但是终端计算环境120可能未觉察到照相机的提供,可能没有安装适当的软件,例如,驱动器和面向照相机的应用112,因此可能无法实现照相机在终端计算环境内的可用性。相反,一些设备106可能缺少呈现终端计算环境120的适当设备属性108;例如,终端计算环境120可能提供不受一些设备106的设备属性108所支持的应用108,或者仅仅是不能由特定的设备106以可接受的用户体验所呈现。例如,终端计算环境120在低功率移动电话上的呈现可能导致桌面空间的一小部分得到显示,因而要求相当大程度的滚动来查看其任意部分,并且/或者可能因设备106的节能处理器的原因表现出无法使用的低的帧速率和高用户输入延迟。这样的限制可能是由为了用户体验统一性的利益而向各种各样的设备106提供单个的终端计算环境120方面的有限的灵活性导致的。

B. 呈现的技术

这里将呈现用于配置设备集104以通过各种设备呈现一致的、而又适用于每一设备106的设备属性108的计算环境的技术。

图2是以进行互操作从而向用户102提供一致的计算环境的设备106的设备集104为特点的示例性情境200的图示。在这一示例性情境200中,在设备集104当中,特定的设备104被指定为主设备202,其生成并维持主计算环境204,例如由操作系统设置、应用112、应用配置、文件114以及用户账户和凭证构成的主集合。对于设备集104的每一辅助设备206而言,主设备202可以根据该辅助设备106的设备属性108使主计算环境204适于辅助计算环境208。例如,主设备202可以根据每一辅助设备206的设备属性108选择显示色彩方案、图标以及字体和字号、输入模态、全屏对比(vs.)窗口交互模型、以及部件可用性和配置(例如,指示器特性)。对于每一辅助设备206而言,主设备202可以将用于该辅助设备206的特定辅助计算环境208作为流214予以发送。辅助计算环境208的流传输214可能涉及主设备202对用于供辅助设备206再现的音频、视频以及其他形式的输出的传输、以及主设备202对到辅助设备206的设备属性108和部件的指令的传输。辅助计算环境208的流传输214还可能涉及接收来自辅助设备206的输入(例如,用户输入)、辅助设备206检测到的性能度量、以及辅助设备206的设备属性生成的供应用于该辅助计算环境208的数据。

此外,主设备202还可以从主计算环境204的应用当中选择将在每一辅助设备206上呈现的应用集210。这样的选择可能涉及辅助设备206的设备类型(例如,辅助设备206的形状因数)、辅助设备206的设备属性108和/或用户102对辅助设备206的预期用途,例如,选择与用户102打算使用辅助设备206的情境有关的应用206。到每一辅助设备206的流214可以包括例如作为列表或菜单的应用集210的呈现。此外,对于相应的辅助设备206而言,主设备202可以代表该辅助设备206执行应用112(例如,这样的应用112可以利用主设备202的处理器、存储器以及其他计算能力)。在主设备202接收到对用于特定辅助设备206的应用112的实例化的请求时,主设备202可以在主设备202上对应用112实例化,并且可以将应用112插入到辅助计算环境208内(例如,在辅助计算环境208的桌面空间内创建针对该应用112的用户接口;将输入设备绑定至该用户接口;以及将该应用112添加到针对辅助计算环境208的运行应用列表212)。此外,主设备202可以使应用112的运行适于特定辅助设备206的设备属性108;例如,可以使应用112的用户接口适于利用特定的输入能力、输出能力以及辅助设备106的其他可用部件和资源。因此,辅助计算环境208的流214包括应用112在被发送至设备106并由其呈现的辅助计算环境内的呈现。通过这种方式,主设备202可以根据本文呈现的技术实现通过设备集104中的辅助设备206将主计算环境204呈现给用户102。

C. 技术效果

在一些实施例中,使用本文呈现的技术将主计算环境204通过设备集104的辅助设备206呈现给用户可以获得各种技术效果。

作为可以通过本文呈现的技术可达到的技术效果的第一个示例,如果应用112在主设备202上运行,那么应用112可以利用共享的文件114集合,并且是由安装在主设备202上的共享的应用112集合导出的;例如,在主设备202上安装和更新应用112能够使应用112 被包含到用于每一辅助设备206的应用集和210中。此外,应用112的运行和兼容性不依赖于每一辅助设备206的特定架构细节(例如,辅助设备206的处理器容量和指令集架构),而是仅依赖于主设备202的架构细节。通过这种方式,应用112和主计算环境204可以以更加一致的方式呈现给用户102,即,减少这样的辅助设备206之间的呈现方面的差异,这样的差异并非是有意造成的,而是受到架构差异、计算部件的不兼容性或者其他的此类障碍的驱使。

作为可以通过本文呈现的技术可达到的技术效果的第二个示例,作为主计算环境202的适配的辅助计算环境208的呈现可以减少用户102将要执行的配置和维护的量。例如,本文呈现的技术并非在设备集104中的期望这样的应用112的每一辅助设备206上获取、安装和配置应用112,而是使用户102能够在主设备202上对应用112进行一次安装和配置,而后通过任何辅助设备206的辅助计算环境访问该应用。此外,本文呈现的技术可以实现对设备集104的集中式管理;例如,用户102可以简单地通过调节主设备202对主计算环境204做出的针对所选择的辅助设备206的适配,而调节每一辅助设备206的辅助计算环境208。这样的降低的管理成本可以促进设备集104的可扩缩性;例如,如果每一这样的辅助设备206不必被单独配置和维护,而是只需对主设备204进行配置就能为这样的额外辅助设备206提供额外的辅助计算环境208的话,用户102就可以更易于向设备集104添加辅助设备206。

作为本文呈现的技术可以达到的技术效果的第三个示例,辅助计算环境208和应用112的运行可以适于利用辅助设备206的设备属性108;例如,应用112可以利用到主设备202的大容量网络连接以及来自公共设施线路的充沛的电力供应在辅助设备206的辅助计算环境208内提供动态的动画用户接口,并且可以利用到主设备202的有限的网络连接以及来自电池的有限电力供应在辅助设备206的辅助计算环境208内提供简单的静态用户接口。通过这种方式(并且与终端服务情境相比),主计算环境204的呈现可以更加全面地利用每一辅助设备206的设备属性108,同时减少在其提供过程中牵涉的维护量。

作为可以通过本文呈现的技术可达到的技术效果的第四个示例,主设备202可以实现在设备集104的辅助设备206当中应用112的灵活运行;例如,用于应用112的用户接口可以在多个辅助设备206上分布,或者可以在设备集104发生变化的情况下容易地从第一辅助设备206移至第二辅助设备206。

作为可以通过本文呈现的技术可达到的技术效果的第五个示例,在多个辅助设备112的辅助计算环境208内运行的各应用112的相互作用可以容易地通过主设备202内的进程间通信或文件共享机制进行相互作用,而不是利用各辅助设备206之间的设备互连和/或网络互连。这样的相互作用可以促进这样的互操作应用112的效率和/或开发和使用的简易性。作为一个这样的示例,用户102可以使用附接至第一辅助设备206的输入设备,以便与在第二辅助设备206的辅助计算环境208内运行的应用112进行交互。

作为可以通过本文呈现的技术可达到的技术效果的第六个示例,主计算环境204在主设备202上的呈现以及应用112在主设备202上的运行可以呈现出总效率增益。例如,主设备202将不使用多个(有可能大数目的)辅助设备206运行应用112的多个实例,而是能够代表大数目的此类辅助设备206运行应用112,例如,减少一些计算过程跨多个辅助设备的冗余运行。例如,替代于若干辅助设备206中的每个对用于邮件的邮件服务器进行例行轮询(因而导致潜在地高容量的电子邮件请求),主设备202可周期性地查询邮件服务器,并且在接收到新的消息时可以通过多个辅助设备206发送通知。这样的效率增益可以有利地节约计算资源(例如,处理器使用、存储和网络带宽),甚至可以减少管理设备集的总维护和电力成本。

作为可以通过本文呈现的技术可达到的技术效果的第七个示例,可以在相对低功率的辅助设备206的设备集104上呈现高质量的计算体验。例如,通过将再现辅助计算环境208和运行应用112的计算负担转移到主设备202,这些技术能够在辅助设备206上呈现高质量辅助计算环境208,而所述辅助设备206甚至可能没有足够的计算资源在本地上下文中以相同的质量水平再现这样的辅助计算环境208。因此,可以将过时的硬件结合到设备集104内而不必削弱通过其呈现的计算环境的质量。此外,可以简单地通过按比例增加主设备202的资源而比例增加整个设备集104的性能;例如,可以通过对主设备202的处理器和存储容量升级而可达到整个设备集104内的计算环境的较高质量的再现。

作为可以通过本文呈现的技术可达到的技术效果的第八个示例,使用本文呈现的技术可以使用户102能够实现在未必为用户102所拥有并且/或者未必由主设备202定期地访问的辅助设备206的设备集104上呈现主计算环境204。例如,可公共地访问的计算工作空间所包括的辅助设备集206可以包括显示器、键盘、扬声器以及如打印机的外围设备,其在与用户102的主设备202对接时,能够呈现存储在主设备202上的主计算环境204。这些以及其他技术效果可以通过本文呈现的技术的各种实施而可达到。

D. 示例性实施例

图3呈现了本文呈现的技术的第一示例性实施例,其被图示为将主设备202配置为通过设备集104的辅助设备206向用户102呈现主计算环境204的示例性方法300。可以将示例性方法300实施为例如存储在主设备202的存储部件(例如,存储电路、硬盘驱动的盘片、固态存储设备,或者磁盘或光盘)中的指令的集合,并且所述指令的集合被组织为当在设备的处理器上运行时使主设备202根据本文呈现的技术操作。

示例性方法300开始于302,并且涉及在主设备202的处理器上运行304指令。具体而言,在处理器上运行304指令使得主设备202针对设备集104的相应306辅助设备206根据该辅助设备206的设备属性108的集合适配308主计算环境204,以生成用于辅助设备206的辅助计算环境208。在所述处理器上运行304指令还使得主设备202响应于接收310使选择的应用112在相应的306辅助设备206的辅助计算环境208内实例化的请求而根据辅助设备206的设备属性108适配312辅助计算环境208内的选择的应用112,并代表辅助设备206运行314选择的应用112。在处理器上运行304指令还使得主设备202将辅助计算环境208的呈现流传输214至相应的辅助设备206。通过这种方式,所述指令使得主设备202通过设备集104的辅助设备206将主计算环境204呈现给用户102,并且因此在318结束。

本文呈现的技术的第二示例性实施例(未被图示)涉及配置辅助设备206从而将设备集104的主设备202已经发送的主计算环境204呈现给用户102的示例性方法。实现这一效果的示例性方法可以包括,例如,在辅助设备206的处理器上运行使辅助设备206将该辅助设备206的设备属性108集合发送至主设备202的指令;响应于接收到使应用112在辅助设备206的辅助计算环境内实例化的请求将该请求发送至主设备202;以及响应于从主设备202接收到流2014而将辅助计算环境208呈现给用户102,其中流2014包括含有由主设备202运行并且根据辅助设备206的设备属性108被适配的应用112的辅助计算环境208的呈现。通过这种方式,示例性方法可以使辅助设备206能够根据本文呈现的技术将主计算环境204呈现给用户102。

图4呈现了本文呈现的技术的另外的示例性实施例,其被图示为分别在示例性主设备402和示例性辅助设备406上实施的示例性系统,示例性主设备402和示例性辅助设备406至少实施本文呈现的技术的一部分。示例性主设备402托管和/或管理主计算环境204(例如,应用112集合、应用配置、设备驱动器、诸如文档和媒体对象之类的文件114、用户账户和凭证以及应用状态)。示例性辅助设备404表现出至少一个设备属性108(例如,设备类型、硬件或软件部件和/或其容量、和/或用户102与示例辅助设备404交互的环境)以及本机计算环境432,示例性辅助设备404在未从示例性主设备402接收到辅助计算环境208时通常呈现该本机计算环境432。此外,在这一示例性情境400中,示例性主设备402和示例性辅助设备404中的每个包括处理器406和存储器408,其中示例性系统使得相应的示例性设备根据本文呈现的技术向用户102呈现计算环境。相应的示例性系统可以被例如实施为部件的集合,所述部件的集合分别包括存储在相应的示例性设备的存储器408中的指令集合,其中当相应的部件的指令在处理器406上运行时使得该示例性设备根据本文呈现的技术操作。替代性地,可以将相应的部件实施为根据本文呈现的技术操作的分立电路或硬件设备或其组合。

示例性主设备402包括第一示例性系统410,该系统包括辅助计算环境发生器412,所述辅助计算环境发生器针对示例性辅助设备404根据该示例性辅助设备404的设备属性108适配426主计算环境204,以生成用于该示例性辅助设备404的辅助计算环境208。第一示例性系统410还包括辅助设备应用实例化器414,其响应于接收到使选择的应用112在示例性辅助设备404的辅助计算环境208内实例化的请求428而根据示例性辅助设备404的设备属性108对辅助计算环境208内的选择的应用108进行适配,并代表示例性辅助设备404运行430选择的应用112。第一示例性系统410还包括辅助计算环境发送器416,其将辅助计算环境208的呈现流传输214至示例性辅助设备404。

示例性辅助设备404包括第二示例性系统418,该系统包括设备属性发送器420,其将示例性辅助设备404的设备属性108的集合发送至示例性主设备402。第二示例性系统还包括辅助环境呈现器424,其响应于从示例性主设备402a接收到包含辅助计算环境208的呈现的流214而将该辅助计算环境208呈现给用户102,所述辅助计算环境208包括由示例性主设备402运行并且根据示例性辅助设备404的设备属性108而被适配的应用112。辅助设备404还包括本机环境实例化器420,其响应于接收到在示例性辅助设备404上呈现辅助计算环境208的请求而使示例性辅助设备404从呈现本机计算环境432转换为呈现辅助计算环境208。通过这种方式,利用这样的示例性系统的示例性主设备402与示例性辅助设备404的互操作能够根据本文呈现的技术实现对用户102的计算环境的协同呈现。

又一实施例涉及包含被配置为应用本文呈现的技术的处理器可执行指令的计算机可读介质。这样的计算机可读介质可以包括各种类型的通信介质,例如,可以在各种有线情境(例如,经由以太网或纤维光缆)和/或无线情境(例如,诸如WiFi的无线局域网(WLAN)、如蓝牙的个人区域网(PAN)或者蜂窝或无线电网络)下通过各种物理现象(例如,电磁信号、声波信号和光信号)被传播并且对计算机可读指令的集合进行编码的信号,所述指令在由设备的处理器运行时使得该设备实施本文呈现的技术。这样的计算机可读介质还可以包括(作为一类排除了通信介质的技术)计算机-计算机-可读存储设备,例如,存储半导体(例如,利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动的盘片、闪速存储设备或者磁盘或光盘(例如,CD-R、DVD-R或软盘),其编码了计算机可读指令的集合,所述指令在由设备的处理器运行时使该设备实施本文呈现的技术。

在图5中图示了可以通过这些方式设想到的示例性计算机可读介质,其中实施方式500包括其上编码了计算机可读数据504的计算机可读存储设备502(例如,CD-R、DVD-R或者硬盘驱动的盘片)。这一计算机可读数据504继而包括计算机指令506的集合,所述指令在设备510的处理器406上运行时使得设备510根据本文阐述的原理而操作。在第一个这样的实施例中,处理器可执行指令506可使主设备202通过设备集104的一个或多个辅助设备206将计算环境呈现给用户102,例如,图3的示例性方法300。在第三个这样的实施例中,处理器可执行指令506可以使主设备202和/或辅助设备206实施用于向用户102呈现计算环境的系统,例如,图4的示例性情境400中呈现的示例性系统。本领域技术人员可以设想出很多这样的被配置为根据本文呈现的技术操作的计算机可读介质。

E. 变型

本文讨论的技术可以被设想有很多方面的变型,并且一些变型可以相对于这些技术的其他变型以及其他技术呈现出额外的优点和/或减少缺点。此外,一些变型可以被组合地实施,而且一些组合可以通过协同合作而以额外的优点和/或减少的缺点为特点。可以将各种变型结合到各种实施例中(例如,图3的示例性方法300;图4的示例性系统410、418;以及图5的示例性存储设备502),从而为这样的实施例赋予个别的和/或协同的优点。

El. 情境

可能在这些技术的实施例之间变化的第一方面涉及可以利用这样的技术的情境。

作为该第一方面的第一变型,可以利用本文呈现的技术实现设备集104的各种设备106的配置,例如,所述设备可以是工作站、膝上型电脑、平板电脑、移动电话、游戏控制台、便携式游戏设备、便携式或者非便携式媒体播放器、比如电视的媒体显示设备、电器、家庭自动化设备、与集成了诸如目镜或手表的可佩带设备相集成的计算部件、以及监视控制和数据采集(SCADA)设备。

作为该第一方面的第二变型,可以将本文呈现的技术与存在于相应辅助设备206的辅助计算环境208内的各种应用112一起使用,例如,所述应用为办公生产率应用;媒体呈现应用,例如,音频和视频播放器;通信应用,例如,网页浏览器、电子邮件客户端、聊天客户端和IP语音(VoIP)客户端;导航应用,例如,地理定位、地图和路由应用;实用程序,例如,向用户102呈现警示的天气和新闻监测应用;以及游戏。此外,辅助计算环境208的应用112可以涉及通过一种或多种呈现模态的内容呈现,例如,文本、图像、实况和/或预录视频、音响效果、音乐、话音、触觉反馈、三维再现以及交互式和/或非交互式用户接口,还涉及用于接收来自用户102的用户输入的各种技术,例如,文本输入、点击(pointing)输入、触觉输入、手势输入、口头输入以及视线跟踪输入。

作为该第一方面的第三个变型,可以将本文呈现的技术与设备集104的各设备106内和/或各设备当中的各种架构一起使用。作为第一个这样的示例,主设备202也可以是设备集104的部分(例如,用户102的移动电话),因此也可以作为辅助设备206操作。用户102可以在不同的时间和/或在不同的情况下将各种辅助设备206指定为主设备202。替代性地,主设备202可以处于设备集104外,并且可以与设备集104交互,从而将辅助计算环境208驱动至相应的辅助设备108。作为第二个这样的示例,主设备202和/或相应的辅助设备206可以利用直接地并且物理连接至每一此类设备的部件,例如,有线显示器、扬声器和耳机。作为第三个此类示例,主设备202和/或相应的辅助设备206可以利用一个或多个经由无线连接(例如,射频)可访问的部件。作为第四个这样的示例,主设备202和/或相应的辅助设备206可以通过个人区域网、局域网和/或广域网通信,以便根据本文呈现的技术相互合作。作为第五个这样的示例,主设备202和/或相应的辅助设备206可以利用一个或多个通过设备集104的另一设备可访问的部件,例如,按照客户端/服务器或者对等式架构。此外,设备集104的主设备202和/或相应的辅助设备206可以被一个用户102或者一群用户102使用,并且/或者由至少一个第一用户102控制,所述第一用户代表至少一个第二用户102。这些以及其他情境可以适于根据本文呈现的技术通过设备集104的主设备202以及相应的辅助设备206的互操作呈现计算环境。

E2. 生成和发送辅助计算环境

可能在本文呈现的技术的实施例当中变化的第二方面涉及主设备202向相应的辅助设备206发送包括辅助计算环境208的流214的方式以及相应辅助设备206向用户102呈现辅助计算环境208的方式。

作为该第二方面的第一个变型,辅助设备206的很多类型的设备属性108可以被标识并用于生成和适配辅助计算环境208和/或在其内执行的应用112。作为第一个这样的示例,辅助设备206的设备属性108可以包括各种硬件部件的存在和功能,例如,各种处理器和协处理器的计算吞吐量、并行处理支持和指令集架构;存储器及存储设备的容量、速度和易失性;诸如键盘、鼠标、触敏显示器、麦克风和照相机的各种输入设备的模态、灵敏度和识别能力;各种可视输出设备的尺寸、分辨率和响应性;各种音频输出设备的音量和音质;各种通信设备的吞吐量、延时和缓冲容量;以及诸如打印机、扫描仪和生物测定传感器的各种其他外围设备的属性。作为第二个这样的示例,辅助设备206的设备属性108可以包括可部分或完全通过软件实现的计算能力,例如,各种形式的媒介的编码和/或解码;各种类型的数据的加密、压缩、解压、解密和/或验证;各种指令集和虚拟设备的使用,例如,通过硬件/软件模拟或者各种类型的语言语法分析或翻译资源的可访问性;各种类型的图形请求的处理,例如,三维图形再现;以及应用各种安全措施,例如,用户身份验证。作为第三个这样的示例,辅助设备206的设备属性108可以包括辅助设备206在其中被使用的情况,例如,电力的可得性(例如,公共设施线路、电池和不间断电源(UPS)的存在和操作状态)。作为第四个这样的示例,辅助设备206的设备属性108可以包括辅助设备108和其他设备(例如网络附接存储器(NAS)之间的相互关系的可访问性)、以及辅助设备206在网络中的角色,例如,其与其他设备的对等式关系、客户端/服务器关系和/或上下级关系。作为第五个这样的示例,辅助设备206的设备属性108可以包括一个或多个用户102与辅助设备206在其中交互的环境,例如,辅助设备206的公共、私人和/或保密性质,还可以包括特定用户102通常任用该辅助设备206执行的任务。

作为该第二方面的第二种变型,主设备202可以通过各种方式确定辅助设备206的设备属性108。作为第一个这样的示例,辅助设备206可以例如通过查询并标识辅助设备206的每一硬件部件而检测辅助设备206的各种设备属性,并且可以将这样的信息发送至主设备202。作为第二个这样的示例,辅助设备206可以包括辅助设备标识符(例如,产品编号、型号和/或序列号),并且主设备202和/或辅助设备206可以在设备目录当中查找辅助设备206的设备属性108,以标识与辅助设备标识符相关的此类辅助设备206的设备属性108。作为第三个示例,辅助设备206和/或主设备202可以在特定的操作条件下测量辅助设备206的操作(例如,在测试条件下或者在平常的使用当中评估辅助设备206的处理能力和/或网络容量)。作为第四个这样的示例,辅助设备206和/或主设备202可以预测和/或推断辅助设备206的设备属性108;例如,可以通过监测经常利用辅助设备206被执行的任务而取得推断,由此可确定用户102与辅助设备206在其中交互的上下文。作为第五个这样的示例,辅助设备206和/或主设备202可以从一个或多个用户102接收有关辅助设备206的设备属性108的信息。作为第六个示例,主设备202可以针对这样的信息对辅助设备206进行轮询(例如,在接收到针对辅助设备206使应用112实例化的请求时),并且/或者辅助设备206可以将该信息推送至主设备202(例如,作为加入设备集104的请求的部分)。

作为该第二方面的第三变型,主设备402可以生成从主计算环境204按照很多种方式被适配出的辅助计算环境208。作为第一个这样的示例,主设备202可以将主计算环境204存储为模板图像,并且可以将辅助计算环境208生成为主计算环境204的克隆,所述克隆具有鉴于辅助设备206的设备属性108而施加的调节。作为第二个这样的示例,主设备202可以积极地利用主计算环境204,并且可以生成、存储和应用转换(例如,diff文件),以生成被适配用于特定辅助设备206的辅助计算环境208。作为第三个这样的示例,主计算环境204可以包括在所有的辅助设备206上可用的功能的超集(例如,操作系统和计算环境设置、应用112、应用配置、应用状态和用户账户的整个集合),并且主设备202可以选择主计算环境204的功能的子集作为特定辅助设备206的辅助计算环境208。例如,特定应用112可以被作为分别被适配用于各种类型的辅助设备206的应用变型的集合而存储到主计算环境204内(例如,工作站形状因数用户接口;大显示器用户接口;以及用于各种移动设备的小显示器用户接口),并且主设备202可以选择适合于在每一辅助设备206的辅助计算环境208内呈现的应用变型。这样的技术可以实现主设备202的资源的再使用(例如,代表大数目的辅助设备206存储和使用特定应用或应用库的单个副本)。

作为该第二方面的第四变型,主设备202可以通过很多种方式向辅助设备206再现和/或发送辅助计算环境208的流214。作为第一个这样的示例,主设备202可以接收来自辅助设备206的输入流,和/或可以将视频和/或音频输出流传输至辅助设备206。作为第二个这样的示例,主设备202可以将图形基元指令流(例如,当前呈现的视频帧的差分更新)发送给辅助设备206,以产生流214中的下一视频帧。作为第三个这样的示例,主设备202可以将下级应用发送给辅助设备206,该应用可以在其上被运行以再现辅助设备206的辅助计算环境208的部分或全部。作为第四个这样的示例,主设备202可以将针对辅助计算环境208的部分或全部的流214多播至两个或更多辅助设备206,以在其上呈现。作为第五个这样的示例,主设备202可以将用于第一辅助设备206的辅助计算环境208的用于重新传输的部分发送至第二辅助设备206,所述第二辅助设备将所述辅助计算环境208呈现给用户102。

作为该第二方面的第五个示例,主设备202可以适配辅助计算环境208的提供,从而在相应的辅助设备206上提供足够的用户体验。例如,主设备202可以具有足够的计算资源,以针对特定数目的辅助设备206提供适当地响应的用户体验,但是如果加载了过多的辅助设备206,主设备202就可能表现出减弱的、不能令人满意的性能,例如,在针对一些辅助设备206的辅助计算环境208的流214的传输当中的滞后和/或中断。可以利用各种技术缓解减弱的、不能令人满意的服务质量。作为第一个这样的示例,主设备202可以估算出该主设备202能够以并发的方式驱动的辅助设备206的最大辅助设备总数(例如,最多六个同时接受服务的辅助设备206),并且使包括设备集104的辅助设备206的辅助设备总数限于该最大辅助设备总数。这样的估算可能涉及各种情况,例如,估算出主设备202能够针对相应辅助设备206以辅助计算环境208的最低用户体验质量驱动的辅助设备的最大辅助设备总数(例如,确保每一辅助设备208可以一致地接收每秒不低于20帧的流214)。可以通过例如测量各种情况下辅助设备206上的可达到的服务质量而通知这样的估算,并且可以适配这样的估算以反映变化的情况(例如,如果提供了更加充裕的处理能力和/或网络容量则扩大最高辅助设备总数)。根据本文呈现的技术,可以采用很多种这样的关于向辅助设备206生成、呈现以及传输辅助计算环境208的配置。

E3. 应用的实例化和运行

可在本文呈现的技术的各实施例中变化的第三方面涉及在辅助设备206的辅助计算环境208内对应用112实例化和/或运行应用112的方式。

作为该第三方面的第一变型,根据特定辅助设备206的用户102的用户选择请求428在辅助计算环境208内对应用112实例化。例如,对于特定的辅助设备206,主设备202可以从主计算环境204的应用集合中选择要在该辅助设备206的辅助计算环境208内呈现的应用112的应用子集。主设备202可以在辅助计算环境208内将该应用子集呈现给辅助设备206(例如,作为可用的应用112的列表或菜单),并且可以接收来自在辅助计算环境208内被呈现的应用子集的应用112的选择(例如,从用户102接收来自在辅助设备206的辅助计算环境208内呈现的菜单的用户选择)。

作为该第三方面的第二变型,可以接收在第一辅助设备的第一辅助计算环境208内对应用112实例化的请求428,其中请求428是从设备集104的第二辅助设备206的用户102接收到的。相应地,主设备202可以通过在第一辅助设备206的第一辅助计算环境208内使选择的应用112实例化而满足请求428。

作为该第三方面的第三个变型,最初可以为设备集104的用户102呈现通过和/或代表设备集104的一个或多个辅助设备206可运行的应用112的整个集。在用户102提供了对该应用集合中的选择的应用的选择时,接下来可以为用户102呈现能够运行该应用112的辅助设备206的列表;并且响应于接收到对选择的辅助设备206的选择,主设备202可以在选择的辅助设备206的辅助计算环境208内对该应用112实例化。作为另一个这样的示例,可以最初为用户102呈现包括设备集104的辅助设备206的列表。可以响应于接收到对选择的辅助设备208的选择而向用户呈现可在选择的辅助设备208上运行的应用112的应用子集;并且响应于接收到对该应用子集中的选择的应用112的选择,主设备202可以使选择的应用112在选择的辅助设备206的辅助计算环境208内实例化。

作为该第三方面的第四个变型,设备集104的用户102可以撤销针对特定辅助设备206的应用子集的选择(例如,针对辅助设备206的推荐的应用112的集合)。响应于接收到在辅助计算环境208内呈现主计算环境204的整个应用集合而不是仅呈现针对辅助设备206选择的应用子集的请求,可以向用户102呈现整个应用集合。在接收到对未处于针对辅助设备206所选择的应用子集内的针对辅助设备206的选择的应用112的选择时,主设备202还是可以使选择的应用112在选择的辅助设备206的辅助计算环境208内实例化。

作为该第三方面的第五个变型,主设备202可以自动选择设备集104的辅助设备206,从而使选择的应用112实例化。例如,响应于从用户102接收到使选择的应用112实例化的请求428,但是该请求428并未指示应用112要针对其在辅助计算环境208内被运行的设备集104中的所选择的辅助设备208,主设备202可以从设备集104中标识至少一个候选辅助设备206,对于所述候选辅助设备而言,候选辅助设备206的设备属性108与选择的应用112是兼容的。之后,主设备202可以从候选辅助设备206当中选择要选择的辅助设备206,并在所选择的辅助设备206的辅助计算环境208内使选择的应用112实例化。

图6呈现了以用于实现应用112在特定辅助设备206的辅助计算环境208内的实例化的额外技术为特点的示例性情境的图示。在图6的第一示例性情境600当中,可以最初为用户102呈现辅助设备应用集合602的列表,例如,相应的辅助设备206以及在每一辅助设备206上可用的应用子集604的列表。在从用户102接收到对特定辅助设备206所选择的应用子集604内的选择的应用112的选择606时,主设备202可以在选择的辅助设备206的辅助计算环境208内对该应用112实例化。

在图6的第二示例性情境610中,应用112,例如,IP语音(VoIP)应用可以由事件发起,所述事件例如是要呈现给用户102的打进来的电话612。主设备202可以通过首先评估该应用的各种应用标准614而对事件作出反应,所述应用标准例如是该应用112使用的部件和能力(例如,麦克风和扬声器);有关该辅助设备206的标准,例如,用以处置该事件的辅助设备108的可用性;和/或有关用户102的标准,例如,用户102的与辅助设备206的接近性。可以执行设备属性评估616,以标识与应用112的应用标准614相兼容的候选辅助设备206。例如,如果用户102在参与会议时正在使用各种辅助设备206,那么第一辅助设备206可以具有麦克风和扬声器,并且可以处于用户102附近,但是对于处置该事件可能是不可用的(例如,辅助设备206可以包括用户正在用来显示会议期间的呈现的膝上型电脑,或者包括在用户口袋中但是已被用户激活了“免打扰”选项的电话)。第二辅助设备206也可以包括麦克风和扬场器,并且可用于处置事件,但是其可能未处于用户102的附近(例如,该辅助设备206可以包括用户的工作站,其可以处于空闲状态,而且在用户102离开会议时处于用户的办公室中)。第三辅助设备206可表现出与应用标准614匹配的设备属性108(例如,用户102在会议期间佩戴的耳机,其具有指定的部件,而且接近用户102,并且可用来呈现打进来的电话612)。因此,主设备202可以针对该事件执行对该第三辅助设备206的选择618(作为设备集104的唯一候选辅助设备206),并且可以将打进来的电话612路由至该第三辅助设备以呈现给用户102。

作为这该第三方面的第六个变型,主设备202可以对特定辅助设备206的辅助计算环境208局部运行应用112整体,并且可以只把用户接口的图像发送给该辅助设备206。替代性地,主设备202可以将应用112的一些部件部署至辅助设备208由此以供使用。例如,主设备202可以包括第一图形协处理器,并且特定辅助设备208可以包括第二图形协处理器。为了代表辅助设备208运行应用112,主设备202可以或者在第一图形协处理器上再现针对应用112的图形;可以包括流214中的要输送给辅助设备208的第二图形协处理器再现这样的用于包含在应用112中的图形的指令;并且/或者可以采用其组合,其中图形再现的部分是在第一图形协处理器上执行的,其余的是在第二图形协处理器上执行的。这样的决定可以例如基于以下而被确定的:每一这样的图形协处理器的能力的比较、每一图形协处理器的当前载荷(如果主设备202的图形协处理器被其他应用112重度使用,那么主设备202可以卸载一些处理)和/或每一过程的效率的比较(例如,与发送部分或完全再现的视频相比,在发送图形指令的流214的情况下的可达到的网络吞吐量)。其他此类的关于应用112的运行的分布的变型可以包括例如将主设备202配置为接收来自辅助设备206的原始设备输入(例如,鼠标移动)以供应用于辅助计算环境208,或者将辅助设备206配置为对用户输入执行某一初始分析,并将外推的结果发送至主设备202(例如,与指示器相关的事件消息)以供应用于辅助计算环境208;以及提供将由辅助设备208再现的应用112的用户接口的一些更高层级的细节(例如,将可扩展应用程序标记语言(XAML)文档发送至辅助设备208,以及用以在辅助计算环境208内再现其内描述的用户接口的指令)。

作为该第三方面的第七个变型,要在设备集104内实例化的应用112可以分布在两个或更多辅助设备206之上。例如,根据第一辅助设备206和第二辅助设备206的设备属性108,应用112的应用标准612可以被划分为第一应用部分和第二应用部分。例如,可以在以照相机和麦克风为特点的第一辅助设备206和以显示器和扬声器为特点的第二辅助设备206上划分视频聊天应用112,在第一辅助设备206中可以捕获用户102向视频聊天会话的输入,在第二辅助设备206中可以将用户接口和视频聊天会话的输出呈现给用户102。第一应用部分可以在第一辅助设备206的第一辅助计算环境208内被实例化(并且发送至第一辅助设备206的流214可以包括第一应用部分并排除第二应用部分),第二应用部分可以在第二辅助设备206的第二辅助计算环境208内被实例化。由于主设备202正在运行应用112,因而主设备202可以对所述划分做出协调。相应地,所述划分甚至可以在不通知应用112的情况下发生,并且/或者即使应用112没有被具体配置为能够实现或者支持划分,也可以发生所述划分。

作为该第三方面的第八个变型,主设备202可以接收代表在第一辅助设备206的辅助计算环境208内运行的应用112接收用户输入的请求,并且可以通过将应用112绑定至第二辅助设备206的输入部件而满足这样的请求。例如,主设备202可以从应用112接收这样的请求(例如,接收对其而言应用112被运行的辅助设备206所不支持的特定类型的用户输入的请求),并且/或者从用户102接收这样的请求(例如,来自用户102的、将第一辅助设备108的输入部件绑定至在第二辅助设备206的第二辅助计算环境208内运行的应用112的请求)。在请求的履行过程中,主设备202可以在设备集104的辅助设备206当中标识表现出与所述请求相兼容的设备属性108的选择的辅助设备206。之后,主设备202可以将选择的辅助设备206的用户输入绑定至应用112。即使应用112正在第一辅助设备206的辅助计算环境208内运行,这样的标识和绑定也可以发生并得到完成,并将用户输入绑定至第二辅助设备206的输入部件。

图7呈现了以一个这样的划分为特点的示例性情境700的图示,其中通过跨多个辅助设备206对选择的应用进行划分而满足应用请求428。在这一示例性情境700中,主设备202接收对特定应用112实例化的请求428,该应用可以利用至少两个用户输入702的源(例如,两个点击设备、或者键盘和鼠标、或者照相机和麦克风)。主设备202可以确定第一辅助设备206能够提供用户输入702的第一源,第二辅助设备206能够提供用户输入702的第二源,并且将应用用户接口呈现给用户102。相应地,主设备202可以使应用112实例化,并局部地运行应用112,但是可以将用户输入702的第一源部署到第一辅助设备206的第一辅助计算环境208内(例如,保留处于用户102附近的麦克风的使用),并且将用户输入702的第二源部署到第二辅助设备206的第二辅助计算环境208内(例如,保留用以捕获用户102的图像的照相机的使用,以及对在其上呈现应用112的用户接口的显示器的使用)。主设备202可以从每一辅助设备206接收这样的用户输入702,可以将这样的用户输入702传达至应用112,并且可以将应用112的应用用户接口在第二辅助设备206的辅助计算环境208内发送。

图8呈现了以在设备集104的辅助设备206当中进行绑定的输入的另一这样的应用为特点的示例性情境800的图示。在该示例性情境800中,相应的辅助设备206可以表现出环境空间804,例如,桌面环境或呈现区域,相应的辅助计算环境208和应用112的用户接口可以被呈现于呈现区域内。此外,主设备202可以按照布局802(例如,输入空间804相对于彼此的空间排列、取向和/或关系)而布置这样的环境空间804。此外,第一辅助设备206可以包括输入部件,以及由主设备202代表第一辅助设备206运行的第一应用112的应用用户接口;并且第二辅助设备206可以包括由主设备202代表第二辅助设备206运行的第二应用112的应用用户接口。用户102可以操纵第一辅助设备206的输入部件(例如,经由鼠标、触控板、触敏摸显示器、手势和/或视线跟踪提供指示器运动),并且主设备202可以最初在第一辅助设备206的第一辅助计算环境208的环境空间804内再现指示器808。但是,第一辅助计算环境208的第一环境空间804可以通过布局界限806与第二辅助计算环境208的第二环境空间804隔开,所述布局界限806例如是在物理上和/或概念上与布局802内的其他环境空间804相邻的每一环境空间804的边界。用户102可以请求第一辅助设备206的输入部件的用户输入从第一环境空间804转换至第二环境空间804,例如,通过发起指示器808跨布局界限806从第一环境空间804转换810到第二环境空间804内。响应于指示器808跨布局边界806的转换810,主设备202可以将第一辅助设备206的输入部件绑定至在第二设备206的辅助计算环境208内运行的应用112的用户接口。

作为该第三方面的第九个变型,第一辅助计算环境208还可以包括第一应用112的实例,并且第二辅助计算环境208可以包括第二应用112的实例。主设备202可以能够实现运行于第一辅助计算环境208内的第一应用112和运行于第一辅助计算环境208内的第二应用112之间的通信。这样的互操作可以容易地可达到,例如,通过运行两个应用112的主设备202内的进程间通信,而不是使应用112在可以通过更加复杂的网络通信模型而相互通信的不同辅助设备206上运行。可以利用很多这样的技术使各种应用112根据本文呈现的技术在相应辅助设备206的辅助计算环境208内实例化并运行。

E4. 针对辅助设备适配辅助计算环境和应用

可在本文呈现的技术的实施例当中变化的第四个方面涉及用以针对特定辅助设备206而适配辅助计算环境208和/或应用112在其内的运行的主设备202的配置。

作为该第四方面的第一变型,辅助计算环境208的适配可以包括操作系统的各种设置和属性。作为第一个这样的示例,适配可以包括用户接口设置,例如,视觉风格、色彩方案、字体和图标的风格及尺寸,还包括辅助设备206的输入模态。作为第二个这样的示例,适配可以包括将在特定辅助设备206的辅助计算环境208内呈现给用户102的应用112的应用集合210(例如,与用户102与辅助设备206在其中交互的特定用户上下文相关的第一应用112集合)。作为第三个这样的示例,这样的适配还可以包括在该辅助计算环境208内呈现的应用112的应用配置和/或模式(例如,确定用户102利用第一辅助设备206上的应用112与媒体对象在创建和编辑模式当中进行交互,但是与第二辅助设备206上的相同媒体对象在浏览或阅读模式中交互)。作为第四个这样的示例,适配可以包括选择在辅助计算环境208内提供的主计算环境204的文件114的集合或子集,例如,文档和媒体对象(例如,限制用户仅与可用的文档和/或媒体对象的子集交互)。作为第五个这样的示例,适配可以包括选择在主计算环境204内提供的、在特定辅助设备206的辅助计算环境208内将是可访问的用户账户(例如,指定用户集合中的被授权使用特定辅助设备206的用户102)。作为第六个这样的示例,适配可以包括书签列表(例如,确定用户102在与第一辅助设备206交互时频繁地到访第一组网站,并且在与第二辅助设备206交互时频繁地到访第二组网站)。

作为该第四方面的第二变型,对在特定辅助设备206的辅助计算环境208内运行的各种应用112的用户接口的适配可以利用,或者可以不利用设备集104中的相应辅助设备206的各种设备属性108,或者甚至设备集104中其他辅助设备206的各种设备属性108。例如,第一辅助设备206和第二辅助设备206每个可以以用于播放音频的一组扬声器为特点,但是主设备202可以确定第一辅助设备206是在专业上下文中使用的(例如,向客户呈现演示),在此期间音频警报导致的中断是不期望的,而第二辅助设备206则是在非正式的用户上下文中使用的(例如,在家),其中用户102是接受音频警报的。因此,主设备202可以对被发送至第一辅助设备206的辅助计算环境208进行适配,以抑止扬声器的使用,并且可以对发送至第二辅助设备206的辅助计算环境208进行适配,从而频繁地利用扬声器向用户102呈现音频警报。

作为该第四方面的第三个变型,可以对在各种辅助设备206的辅助计算环境208内运行的应用112进行适配,从而通过各种呈现模态与用户102交互。例如,用户102可能偏好采用全可视接口与第一辅助设备206(例如,工作站)交互;采用精简的可视接口与第二辅助设备206(例如,移动电话)交互;以及采用唯音频接口与第三辅助设备206(例如,车辆计算机)交互。因此,相应辅助设备206的辅助计算环境208以及在其内运行的应用112可以被适配成利用每一辅助设备206上的相应的呈现模态(例如,在第一辅助设备206上呈现物品的全文本版本连同完整的图像和视频;在第二辅助设备206上呈现物品的摘要文本版本,并且去除图形和视频;在第三辅助设备206上呈现物品的音频转录本)。

作为该第四方面的第四个变型,可以对辅助计算环境208以及在其内运行的应用112进行适配,以反映用户102在采用相应的辅助设备206时与之进行交互的其他的个人的存在或不存在、身份和/或情况。也就是说,主设备202可以确定与用户102与辅助设备206的用户交互同时并且相关的、用户102与特定的个人之间的个人交互(例如,用户102经常和另一个人在家庭影院设备上打游戏)。因此,主设备202可以在呈现于辅助设备206上的辅助计算环境208内提供与用户102和个人之间的个人交互有关的应用112(例如,在辅助设备206上呈现用户102和该个人可以一起玩的双人游戏的选择)。作为另一个这样的示例,辅助设备206的辅助计算环境208可以被调节,以反映用户102对辅助设备206的使用的公共和/或私有性质;例如,私用的辅助设备206可以呈现用户102的个人内容,例如,用户口令的明文版本和个人照片,而公共使用的辅助设备206则可以隐藏用户口令,并抑止个人内容的呈现。

作为该第四方面的第五个变型,主设备202可以通过各种方式实现辅助计算环境208的各种设置和属性的适配。例如,主设备202可以将应用112发送至辅助设备206,以利用适合于用户102与辅助设备206的用户交互的用户上下文108的用户配置来运行。作为一个这样的示例,对于要在相应辅助设备206的辅助计算环境208内呈现的相应应用112而言,主设备202可以存储应用112的至少两个应用变型,其中相应的应用变型与用户102与辅助设备206的用户交互的选择的用户上下文108相关。因此主设备202可以通过以下而适配针对特定的辅助设备206的辅助计算环境208内的应用112的元素422:在至少两个应用变型当中标识与用户和辅助设备206的用户交互的用户上下文108相关的选择的应用变型,并将包括在辅助设备206的辅助计算环境208内呈现的相应应用112的选择的应用变型的辅助计算环境208发送至辅助设备206。

作为该第四方面的第六个变型,主设备202可以考虑各种条件对辅助计算环境208和在其内执行的应用112的架构进行适配。例如,主设备202可以最初为应用112或者辅助计算环境208的部分选择第一架构(例如,在主设备202上运行应用112的整体,并且仅向辅助设备206部署用户接口的图像),但是后来可确定第二架构可以实现该辅助计算环境208的更高质量的呈现(例如,将某一处理分配给辅助设备206,以减少延迟或网络传输)。

作为该第四方面的第七个变型,主设备202可以准许用户对第一辅助设备206重新配置,以呈现第二辅助设备206的辅助计算环境208的视图(例如,使第一辅助设备206模仿第二辅助设备206)。例如,响应于接收到使第二辅助计算环境208代替第一辅助设备206的第一辅助计算环境的请求,主设备202可以在第一辅助设备206上呈现第二辅助计算环境208而不是第一计算环境208。例如,可以通过将用于第二辅助计算环境208的相同的流214多播至第一辅助设备206和第二辅助设备206而实现这样的呈现,并且/或者这样的呈现可以是按照暂时或永久的方式被实施。

作为该第四方面的第八个变型,主设备202可以在相应辅助设备206的辅助计算环境208当中对应用112重新定位。作为第一个这样的示例,响应于检测到第三辅助设备206被添加至设备集104,主设备202可以重新划分当前部分地或者全部在第一辅助设备206的第一辅助计算环境208内运行的至少一个应用112,以包含第三辅助设备206(例如,将最初在第一辅助设备206上运行的应用112的第一应用部分中的又一部分划分到第三辅助设备206上,并且/或者将所述应用部分完全从第一辅助设备转移到所添加的呈现一组更加适合于应用112的设备属性108的第三辅助设备206)。作为第二个这样的示例,主设备202可以响应于检测到从设备集104中去除了辅助设备206(例如,暂时断开连接,或者将辅助设备206永久地从设备集104中排除)而将在第一辅助设备206的第一辅助计算环境208内呈现的应用112的至少部分移至第二辅助设备206的第二辅助计算环境208。如果再次重新建立了容许第一辅助设备206到设备集104中的连接,则这样的应用112稍后可以被传送回第一辅助设备206。

图9呈现了以对本文呈现的技术的变型的一个这样的使用为特点的示例性情境900的图示。在这一示例性情境900当中,主设备通过最初包含三个辅助设备206的设备集104运行视频聊天应用112,并且最初将视频聊天接口902呈现在以足以满足应用112的辅助设备属性108为特点的第一辅助设备206上。但是,从设备集104中去除904第一辅助设备206(例如,断开与局域网的连接)可能使得主设备202寻求视频聊天接口902的转移,从而例如不间断地继续当前视频聊天会话。因此,主设备202可以检查设备集104的其他辅助设备206的辅助设备属性108,并在确定第二辅助设备206是不适当的(例如,由于设备属性108不包括照相机),而第三辅助设备206是适当的(例如,由于设备属性108包含照相机)时,可以将视频聊天接口902自动从第一辅助计算环境208转换906至第三辅助设备206的第三辅助计算环境208。此外,在第四辅助设备206稍后加入908设备集104时,主设备202可以检查第四辅助设备206的设备属性108,并且可以确定该设备属性108比第三辅助设备206的设备属性108更加全面地促进应用112(例如,第四辅助设备206可以提供高清晰度照相机,其能够实现比第三辅助设备206的照相机更高质量的视频聊天接口902)。相应地,主设备202可以发起应用112的视频聊天接口902从第三辅助计算环境208向第四辅助设备206的第四辅助计算环境208的第二转移910(可选地,通过在发起这样的转移之前首先向用户102呈现建议,并等待第二转移910的接受)。可以利用很多种这样的技术根据本文呈现的技术在设备集104的辅助设备206当中对应用112的执行进行划分和/或适配。

F. 计算环境

图10以及下文的讨论提供了对实施本文阐述的规定(provisions)中的一个或多个的实施例的适当计算环境的简要的一般性的描述。图10的操作环境只是适当操作环境的一个示例,其并非意在暗示任何针对操作环境的使用或功能的范围的限制。示例性计算设备包括但不限于个人电脑、服务器计算机、手持或膝上型设备、移动设备(例如,移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子产品、迷你计算机、大型计算机、包括上述系统或设备中的任何系统或设备的分布式计算环境等等。

尽管不要求,但是实施例是在由一个或多个计算设备运行的“计算机可读指令”的一般上下文中描述的。计算机可读指令可以经由计算机可读介质(下文讨论的)而分布。计算机可读指令可以被实施为执行特定任务或者实施特定抽象数据类型的程序模块,例如,功能、对象、应用编程接口(API)、数据结构等。典型地,在各种实施例中,可以对计算机可读指令的功能进行按需合并或分布。

图10图示了包括被配置为实施文中提供的一个或多个实施例的计算设备1002的系统1000的示例。在一种配置中,计算设备1002包括至少一个处理单元1006和存储器1008。取决于计算设备的确切配置和类型,存储器1008可以是易失性的(诸如例如,RAM)、非易失性的(诸如例如ROM、闪速存储器等)或两者的组合。在图10中通过虚线1004示出了这种配置。

在其他实施例中,设备1002可以包括额外的特征和/或功能。例如,设备1002还可以包括额外的存储装置(例如,可拆移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等。在图10中通过存储装置1010图示了这样的额外存储装置。在一个实施例中,用以实施文中提供的一个或多个实施例的计算机可读指令可以处于存储装置1010内。存储装置1010还可以存储用以实施操作系统、应用程序等的其他计算机可读指令。例如,计算机可读指令可以被加载到存储器1008内,以供处理单元1006运行。

本文采用的术语“计算机可读介质”包括计算机可读存储设备,其排除了包括通信介质(例如,信号)在内的其他形式的计算机可读介质。这样的计算机可读存储设备可以是易失性的和/或非易失性的,可移除的和/或不可移除的,并且可以涉及各种类型的存储计算机可读指令或其他数据的物理设备。存储器1008和存储装置1010是计算机存储介质的示例。计算机-存储存储设备包括但不限于RAM、ROM、EEPROM、闪速存储器或者其他存储器技术、CD-ROM、数字通用盘(DVD)或者其他光存储装置、盒式磁带、磁带以及磁盘存储装置或者其他磁存储设备。

设备1002还可以包括允许设备1002与其他设备通信的(多个)通信连接1016。(多个)通信连接1016可以包括但不限于调制调解器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或者用于将计算设备1002连接至其他计算设备的其他接口。(多个)通信连接1016可以包括有线连接或无线连接。(多个)通信连接1016可以发射和/或接收通信介质。

词语“计算机可读介质”可以包括通信介质。通信介质通常在诸如载波或其他传送机制的“调制数据信号”内体现计算机可读指令或其他数据,并包括任何信息输送介质。词语“调制数据信号”可以包括其特征中的一个或多个以使得对信号中的信息进行编码这样的方式被设置或改变的信号。

设备1002可以包括(多个)输入设备1014,例如,键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其他输入设备。也可以将(多个)输出设备1012(例如,一个或多个显示器、扬声器、打印机和/或任何其他输出设备)包含到设备1002中。(多个)输入设备1014和(多个)输出设备1012可以经由有线连接、无线连接或任何的其组合而连接至设备1002。在一个实施例中,来自另一计算设备的输入设备或输出设备可以被用作针对计算设备1002的(多个)输入设备1014或(多个)输出设备1012。

计算设备1002的部件可以通过各种互连(例如,总线)而被连接。这样的互连可以包括外围部件互连(PCI),例如,PCI Express、通用串行总线(USB)、火线(Firewire)(IEEE 1394)、光学总线结构,等等。在另一实施例中,计算设备1002的部件可以通过网络互连。例如,存储器1008可以包括位于不同物理位置上的通过网络互连的多个物理存储单元。

本领域技术人员将认识到用以存储计算机可读指令的存储设备可以是跨网络分布。例如,可经由网络1018访问的计算设备1020可以存储用以实施本文提供的一个或多个实施例的计算机可读指令。计算设备1002可以访问计算设备1020,并下载计算机可读指令的部分或全部以供运行。替代性地,计算设备1002可以按需下载计算机可读指令的片,或者一些指令可以在计算设备1002处运行,一些指令可以在计算设备1020处运行。

G. 术语的使用

尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是,所附权利要求中定义的主题未必限于上文描述的具体特征或动作。相反,上文描述的具体特征和动作是作为实施权利要求的示例形式而公开的。

如本申请中使用的,术语“部件”、“模块”、“系统”、“接口”等一般意在指代与计算机相关的实体,硬件、硬件和软件的组合、软件、或运行中的软件。例如,部件可以是但不限于在处理器上运行的过程、处理器、对象、可执行文档、执行线程、程序和/或计算机。作为例示,在控制器上运行的应用和该控制器两者均可以是部件。一个或多个部件可以驻留在过程和/或执行线程内,并且部件可以本地化在一个计算机上,并且/或者可以分别在两个或更多计算机之间。

此外,可以采用用以制造软件、固件、硬件或其任何组合的标准程序设计和/或工程设计技术将所要求保护的主题实施为方法、装置或制品,从而控制计算机实施所公开的主题。本采用的术语“制品”旨在涵盖可从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到,可以在不背离所要求保护的主题的范围或精神的情况下对这一配置做出很多修改。

本文提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以构成存储在一个或多个计算机可读介质上的计算机可读指令,所述计算机可读指令在通过计算设备运行时将使得该计算设备执行所描述的操作。不应将描述一些或全部的操作的次序解释为暗示这些操作必然是依赖于次序的。得益于本说明书的本领域技术人员将领会到替代性的排序。此外,将理解到的是,未必所有的操作都存在于本文提供的每一实施例中。

在本文被描述为“示例”的任何方面或设计不一定要被解释为相对于其他方面或设计是有优势的。相反,词语“示例”的使用意在呈现一种可以隶属于本文呈现的技术的可能方面和/或实施方式。这样的示例未必是针对这样的技术的或者并非意在构成限制。这样的技术的各种实施例可以单独地包括这样的示例或者与其他特征组合,并且/或者可以改变和/或省略所说明的示例。

如本申请中使用的,术语“或”意图意味着包含性的“或”而非排他性的“或”。也就是说,除非被另外地指定,或者从上下文可以清楚地得到,否则“X采用A或B”意在意味着自然的包含性排列中的任何一个。也就是说,如果X采用A;X采用B;或者X采用A和B两者,那么在前述实例中的任何实例下都满足“X采用A或B”。此外,在本申请和所附权利要求中采用的冠词“一”和“一个”可以被一般性地解释为意味着“一个或多个”,除非另行指定或者从上下文清楚地得出是针对单数形式。

而且,尽管已经相对于一种或多种实施方式示出和描述了本公开,但是本领域技术人员在阅读和理解本说明书及附图的基础上能够想到等同变化和修改。本公开包括所有这样的修改和变化,并且仅受下面的权利要求的范围的限制。尤其是就通过上文描述的部件(例如,元件、资源等)执行的各种功能而言,除非另行指出,用于描述这样的部件的术语意在对应于执行所描述的部件的指定功能的任何部件(例如,其在功能上是等同的),尽管其在结构上不等同于在本文所说明的本公开的示例性实施方式中执行所述功能的所公开的结构。此外,尽管已经只是相对于若干实施方式中的一种公开了本公开的特定特征,但是可以将这样的特征与其他实施方式的一项或多项其他特征相结合,这对于任何给定的或者特定的应用可能是期望的和有利的。此外,就术语“包含”、“具有”、“有”、“带有”或其变型在具体实施方式或者权利要求中使用的程度而言,这些术语旨在与术语“包括”相似的方式而有包含性的意义。

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