相关申请
本申请要求2014年9月24日提交的标题为“partitionedapplicationpresentationacrossdevices(跨设备的经分割的应用呈现)”的第14/495,228号美国专利申请的优先权,其通过引用并入本文。
背景技术:
在计算领域内,许多场景涉及用户与设备(例如,工作站、膝上型计算机、移动电话、平板电脑和媒体服务器)的交互,所述设备呈现计算环境并且允许用户实例化和利用计算环境内的应用(例如,文档编辑器、媒体播放、电子邮件客户端、web浏览器或游戏)。用户可以利用各种这样的设备(每一种设备呈现不同计算环境)来与这样的应用交互。用户还可以通过添加附加的显示器和显示适配器来扩展计算环境的逻辑大小,这可以使得用户能够与一个应用的大视图交互,或者与几个同时显示的应用的视图交互。
技术实现要素:
提供本发明内容以便以简化形式介绍以下将在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键因素或必要特征,也不旨在用于限制所要求保护的主题的范围。
设备的用户可能对在计算环境的呈现中利用第二设备的资源感兴趣。许多这样的技术可以使用户能够这样做,诸如发起从主设备到辅助设备的部署计算环境的视图的终端服务会话;发起从所述主设备到所述辅助设备的显示镜像会话;以及在能够互操作的所述主设备和所述辅助设备上安装应用。然而,每种这样的技术可能表现出许多缺点。作为第一个这样的示例,终端服务会话可以允许用户远程查看计算环境,但是终端服务服务器和目标服务客户端典型地不利用两个设备的资源来提供计算环境的集成视图;相反,简单地远程呈现相同计算环境的次要视图。此外,主计算环境的远程呈现可能不反映第二设备的设备属性。作为第二这样的示例,显示镜像会话可以使得用户能够在诸如投影仪之类的第二显示器上复制计算环境的视图;然而,这种场景不导致投影仪的资源与计算环境的集成,而是简单地在两个设备上重播相同的显示。作为第三个这样的示例,安装在多个设备上的一些应用可以使每个设备一起参与应用,但是这样的技术可能涉及大量的配置,并且可能仅针对所选择的应用实现设备的集成。此外,第二设备可以呈现显著不同的计算环境,并且主设备的主计算环境和第二设备的计算环境之间的不一致可能导致在可用功能、兼容性和用户界面行为方面的相当大的差异。
本文呈现的是用于使得用户的主设备能够在应用在主计算环境内的呈现中利用辅助设备的资源的技术。根据这样的技术,主设备可以在处理器上本地地执行应用,但是可以将应用分割为主应用部分和辅助应用部分。主设备可以在主设备的主计算环境内呈现主应用部分,但可以将辅助应用部分插入到根据辅助设备的设备属性从主计算环境适配的辅助计算环境中,并且将包括辅助应用部分的辅助计算环境传输到辅助设备以呈现给用户。跨越(由主设备呈现的)主计算环境和(由辅助设备呈现的且)从主计算环境适配的辅助计算环境对应用进行分割可以允许这样的用户体验,其既利用辅助设备的特定设备属性,并且还提供应用的一致执行和呈现。在一些实施例中,可以通过任一或两个设备提供用户输入,以便与在两个设备上呈现的应用交互;并且在一些实施例中,主设备可以在用户的请求下可变地显示相同应用或不同应用的一部分。在一些实施例中,可以识别当由用户在主设备上(例如,在主设备的触敏显示器上)执行时调用辅助设备上的各种操作的特定手势。根据本文所呈现的技术,可以通过配置主设备和/或辅助设备而可实现许多这样的特征。
为了实现前述和相关目的,以下描述和附图阐述了某些说明性方面和实现。这些仅指示可以采用一个或多个方面的各种方式中的几种。当结合附图考虑时,从下面的具体实施方式中,本公开的其他方面、优点和新颖特征将变得显而易见。
附图说明
图1是以用于允许两个设备的互操作的各种技术为特征的示例场景的图示。
图2是根据本文所呈现的技术以跨越主设备和从设备分割的应用的呈现为特征的示例场景的图示。
图3是根据本文所呈现的技术的在主设备上并且通过辅助设备呈现应用的示例方法的流程图。
图4是根据本文所呈现的技术的被提供来使得主设备和辅助设备能够呈现在它们之间分割的应用的示例系统的组件框图。
]图5是包括被配置为体现本文所阐述的规定中的一个或多个规定的处理器可执行指令的示例计算机可读介质的图示。
图6是根据本文所呈现的技术的以用于跨主设备和从设备分割应用的用户界面的各种技术为特征的示例场景的图示。
图7是根据本文所呈现的技术的以主设备对辅助设备的控制为特征的示例场景的图示。
图8是根据本文所呈现的技术的以可以在主设备上执行以允许对辅助设备的控制的第一组示例手势为特征的示例场景的图示。
图9是根据本文所呈现的技术的以可以在主设备上执行以允许对辅助设备的控制的第二组示例手势为特征的示例场景的图示。
图10是其中可以实现本文阐述的规定中的一个或多个规定的示例计算环境的图示。
具体实施方式
现在参考图描述所要求保护的主题,其中相同的附图标记始终用于指代相同的元件。在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对所要求保护的主题的透彻理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践所要求保护的主题。在其他实例中,以框图形式示出了结构和设备,以便于描述所要求保护的主题。
a.介绍。
图1呈现了一组示例场景的图示,其中主机设备104的用户102努力通过主机设备104的主机计算环境106来利用目标设备108的资源。例如,用户102可以获取了可以在各种位置和环境中利用的便携式主机设备104,诸如膝上型计算机或移动电话。然而,这种便携性可能必需主机设备的一些资源的限制,诸如减小的显示器尺寸、较低保真度和/或较低功率扬声器、小和/或精简键盘,以及固定指示设备,诸如触摸板。当用户102在第二设备附近时,用户102可能对扩展主机计算环境106的呈现以并入第二设备的各种资源感兴趣,所述资源诸如是,电视的更大显示器;更高保真度和/或更高功率的扬声器组;全尺寸键盘和高性能鼠标;以及更鲁棒的外围组件集合,诸如相机、打印机和扫描仪。
鉴于这样的兴趣,用户102可以利用各种技术来扩展主机设备104的主机计算环境106以利用目标设备108的一些资源。图1中呈现的第一示例场景100涉及终端服务会话114,其中充当终端服务服务器的主机设备104能够在目标设备108的目标计算环境110内部署主机计算环境106的远程视图。主机设备104可以因此生成终端计算环境,诸如提供操作系统设置的单个用户帐户,单组应用212和应用配置,以及可由主机设备104访问的单组文件114和硬件组件。用户102可以发起来自目标设备108的终端服务请求112,并且主机设备104可以通过发起终端服务会话114来满足终端服务请求12,其中终端服务器118向目标设备108传输主机计算环境106的远程视图118(例如,向目标设备108传输主机计算环境106的视频,以及接收针对在目标设备108上的远程呈现的视图的用户输入,其可应用于主机计算环境106内的应用)。以这种方式,用户102可以在目标设备108的目标计算环境116内与主机计算环境106的远程视图118交互。
然而,这种终端服务技术可能表现出进一步的限制。例如,如果没有针对目标设备108的设备属性呈现远程视图118,则在目标设备108上呈现终端服务会话114可能提供次优体验。作为第一个这样的示例,远程视图118可以表现出主机计算环境106的各种视觉设置,诸如适合于主机设备104但不适合于目标设备108的颜色方案、图标和字体大小和样式、以及桌面分辨率。作为第二个这样的示例,目标设备108可能以一组设备属性为特征,诸如相机,但是主机计算环境118的远程视图118可能不并入和暴露目标设备108的设备属性(例如,因为在目标设备108上运行的终端服务客户端可能不征求和/或利用这样的信息,或者因为主机计算环境106没有对这样的组件的足够支持)。
图1中呈现的第二示例场景涉及,用户102发起从主机设备104到诸如投影仪之类的目标设备108的主机计算环境106的镜像会话。主机设备104可以向目标设备108传输显示镜像提议122,并且在接收到接受124时,可以开始将主机计算环境106传输126到目标设备108,目标设备108可以显示主机计算环境106。尽管这样的技术使得能够使用目标设备108来显示主机计算环境106,但是具体地,目标设备108不与主机计算环境106集成;例如,主机计算环境106可能不将目标设备108表示为可用资源,并且可能不启用属性的配置或设置。此外,主机计算环境106的呈现可能不适合于目标设备108。如果主机设备104是具有小显示器的移动设备,而目标设备108是大型电视设备,则主机计算环境106的对象可能在镜像呈现中显得过大,因为这样的元素可能适合于触摸交互,该触摸交互不适用于目标设备108上的呈现。相反,如果主机设备104是大显示器而目标设备108是小显示器,则在主机计算环境106上呈现的图标和字体可能被压缩成目标设备108上的不可测知的点。此外,目标设备108可能包括这样的组件,其不与主机计算环境106集成并且因此既不被表示在主机计算环境106中,也不能与主机计算环境106一起使用。
图1中呈现的第三示例场景128涉及分布式应用的选择,如果在分离的设备上执行分布式应用,则分布式应用使得这样的设备能够互操作134以呈现组合体验。例如,用户102可以配置具有应用服务器130的主机设备104并且具有应用客户端132的目标设备108,使得当在每个设备上执行应用的相应组件时,应用联合设备以提供组合经验。例如,在主机设备130上执行的数据库服务器可以由在主机设备104上执行的第一应用客户端和在目标设备108上执行的第二应用客户端并发访问,使得两个设备提供相同数据的视图,并且使得通过任一设备对数据库的更新反映在另一个设备上。尽管这样的分布式应用可以促进用户102利用两个设备的资源来呈现应用的意图,但是该场景涉及每个设备的广泛配置,并且仅可用于以这种功能为特征的应用。此外,由于可用硬件(例如,触敏显示器对比用于指示器输入的鼠标)和/或设备行为(例如,如果设备利用不同的操作环境,则应用可能响应不同的键盘快捷键并且可能表现出不同的外观)的差异,在每个设备上与应用交互的体验可能不同,并且诸如兼容性的问题可能限制用户体验。在用于跨一组设备共享应用的各种架构技术中可能出现许多这样的限制。
b.呈现的技术。
这里呈现的是用于跨至少两个设备(诸如用户102的主设备和用户102希望与主设备集成的辅助设备)共享应用的技术。辅助设备可以包括,例如,用户102希望临时集成(例如,仅针对应用的简要呈现)或持久地集成的用户102的第二设备;另一个人的设备;或呈现可用于与主设备集成的资源的可公共访问的设备。
根据本文所呈现的技术,对于本地执行的应用,主设备可以将应用分割成主应用部分和辅助应用部分。主设备可以在本地呈现主设备的主应用部分(例如,使用显示器和/或扬声器),并且可以将辅助应用部分插入辅助计算环境中,根据辅助设备的设备属性从主计算环境适配该辅助计算环境。然后,主设备可以将辅助计算环境(包括应用的辅助应用部分)传输到辅助设备以呈现给用户102。
图2呈现了根据本文所呈现的技术的以应用212在主设备202和辅助设备206之间的分割为特征的示例场景200的图示。在该示例场景200中,主设备202以主计算环境204为特征。主设备202和辅助设备206表现出各种设备属性210,诸如处理器容量和架构、电源和容量(电池对比公用设施线)、输入设备(例如,触摸手势对比键盘和鼠标);输出设备(例如,低音量扬声器对比高功率、高保真度扬声器组)、通信能力(例如,有限容量蜂窝数据连接、或者个域网(pan)适配器、wifi适配器和连接,或有线以太网连接)以及对各种外围设备(例如,网络附加存储(nas)、打印机和扫描仪)的访问。
在该示例场景200中,在本地执行应用212的主设备202的用户102可能希望跨越辅助设备206和主设备202的主计算环境204呈现应用212。相应地,主设备202可以将应用212分割218为要在主设备202上呈现的主应用部分214和要在辅助设备206上呈现的辅助应用部分216。更具体地,辅助应用部分216可以呈现在辅助计算环境208中,该辅助计算环境208已经部署到辅助设备206并且已经根据辅助设备206的一个或多个设备属性210从主计算环境204进行了适配。例如,虽然主计算环境204的特征在于针对主设备202的输入能力来调整大小和配置的用户界面控件、颜色方案、图标和字体大小以及,但是辅助计算环境204可以被适配为220特征在于,不同地配置的适合于在辅助设备206上呈现的用户界面控件、不同的配色方案、以及不同的图标和字体大小。此外,主设备202可以将应用212分割218成主应用部分214和辅助应用部分216,例如,通过将应用212的用户界面的不同部分分配给每个计算环境。主设备202可以在主计算环境204内呈现主应用部分214,并且可以将辅助计算环境208(包括辅助应用部分216)传输222到辅助设备206,以呈现给用户102。例如,传输222可以涉及,将音频和视频流传输到辅助设备206,并且如果辅助设备206具有输入能力,则将通过这样的输入能力接收的用户输入传输回主设备202,以便由主设备202应用于应用212。按照这种方式,用户102可以根据本文呈现的技术实现跨越主设备202和辅助设备206的应用212的协调呈现。
c.技术效果。
使用本文呈现的技术来跨越主设备202和辅助设备206呈现应用可以导致各种技术效果。
作为可通过本文所呈现的技术可实现的技术效果的第一示例,将应用程序212部署到辅助设备206可以允许在呈现应用212的同时辅助设备206的资源与主设备202的那些资源的集成。例如,可以通过主设备202和/或辅助设备206的输入组件接收针对应用212的用户输入,并且可以通过主设备202和辅助设备206的组合输出能力来呈现输出。
作为可以通过本文所呈现的技术可实现的技术效果的第二示例,当应用212由主设备202执行时,将辅助应用部分216分发到辅助设备206可以允许以不依赖于辅助设备206的架构或不期望地受辅助设备206的架构影响的方式分发应用212。例如,只要辅助设备206能够接收辅助计算环境208的传输222并且呈现包括辅助应用部分216的辅助计算环境208,应用212与辅助设备206的兼容性就可以不影响应用的执行(例如,应用212可能与辅助设备206的指令集架构不兼容,但是仍然可以在其上呈现,因为应用212的执行由主设备202实现)。此外,在跨越辅助设备206呈现辅助应用部分216时,可以保持辅助计算环境208的一致性。应用212的执行以及由主设备202从主计算环境204对辅助计算环境208的适配可以利用主设备202的一组共享文件和资源,并且因此呈现可以跨辅助设备206(其在本地利用不同指令集架构、操作系统或软件平台或资源)而保持一致。也就是说,除了根据针对辅助设备206的设备属性210对辅助计算环境208的适配220而选择的差异之外,辅助应用部分216的用户体验可以在辅助设备206之间保持一致。
作为可通过本文所呈现的技术可实现的技术效果的第三示例,在适于辅助设备206的设备属性210的辅助计算环境208内的应用212的呈现可以允许比以设备属性不可知的方式显示应用212更适当地呈现用户界面。作为第一个这样的示例,针对辅助设备206的显示属性来适配图标和字体的大小和分辨率可以提供适当的视觉体验,然而,在没有这样的适配的情况下呈现辅助应用部分216可能导致在由辅助设备206呈现时不期望的超大或过小的视觉元素。作为第二个这样的示例,如果辅助设备206的网络容量和/或处理器能力能够呈现高数据速率流,则辅助应用部分216可以以高质量动画和视觉动态的用户界面为特征;但是如果辅助设备206的网络容量和/或处理器能力更受限制,则可以以更静态或保守的方式再现辅助应用部分216。作为第三个这样的示例,辅助计算环境208的适配可以将辅助设备206的资源与主设备202的资源集成以呈现应用212;例如,由辅助设备206提供的相机可以通过辅助计算环境208将捕获的视频传输到主设备,主设备可以通过应用212利用捕获的视频。
作为可通过本文所呈现的技术可实现的技术效果的第四示例,通过由主设备202执行的分割218来分发应用212可以由各种各样的应用212利用,包括没有被特别配置来支持这样的分发和/或分割218的应用。例如,利用主设备202的用户界面平台的应用212可以通过重新配置用户界面平台而在主设备202和辅助设备206上被分割218和分发,而不利用来自应用212的任何这样的支持。此外,这种分发可以不涉及应用到辅助设备206的任何部署;例如,应用212不必被安装在辅助设备206上以便在辅助计算环境208内被部署到辅助设备206上并且由辅助设备206来呈现。因此,根据本文呈现的技术来呈现应用212可以减少由用户102执行以实现这种分割的配置和维护的量。此外,本文所呈现的技术可以允许应用212的集中式管理。例如,用户102可以利用多个辅助设备206来不同地分割应用212,并且应用212的重新配置可以不必需与每个这种辅助设备206上的本地应用配置的交互;相反,在主设备202上更新应用212的配置允许在辅助设备206上呈现应用212的更新的配置,而无需进一步管理应用配置。
作为可通过本文所呈现的技术可实现的技术效果的第五示例,应用212的主应用部分214和辅助应用部分216的交互可以容易地在主设备202的相同进程内和/或通过主设备202内的进程间通信或文件共享机制来实现,而不是利用主设备202和辅助设备206之间的设备和/或网络互连。例如,在图1的第三示例场景128中,应用服务器130和应用客户端132的互操作134可能被诸如一个或两个设备上的连接问题、网络延迟、防火墙和隐私关注点之类的网络问题阻塞;但是主设备202对应用212的执行使得主应用部分214和辅助应用部分216能够在主设备202内快速和有效地通信。
作为可通过本文所呈现的技术可实现的技术效果的第六示例,可在相对低功率的辅助设备206上呈现高质量计算体验。举例来说,通过将再现辅助计算环境208和执行应用212的计算负担分配给主设备202,本文所呈现的技术可以使得能够在辅助设备206上呈现高质量辅助计算环境208,辅助设备206可能甚至不具有足够的计算资源来在本地上下文中以相同质量水平再现这样的辅助计算环境208。因此,陈旧的硬件可以用于呈现由主设备202执行的应用212的辅助应用部分216。也就是说,辅助设备206可能没有合适的计算资源来执行计算密集型应用212,由主设备202执行应用212以及将辅助应用部分216分发到辅助设备206可以使得辅助设备206能够呈现辅助设备206本来不能够生成的辅助应用部分216。此外,应用212的性能可以通过放大主设备202的资源来放大,而不必也放大辅助设备206。
作为可通过本文所呈现的技术可实现的技术效果的第七示例,本文所呈现的技术的使用可使得用户102能够实现应用212的分发以包括不一定由用户102拥有和/或由主设备202有规律地访问的辅助设备206。例如,可公共访问的计算工作空间可以包括辅助设备206的集合,辅助设备206包括显示器、键盘、扬声器和诸如打印机之类的外围设备,所述辅助设备206在与用户102的主设备202交互时,使得能够呈现应用212的辅助计算环境2089和辅助应用部分216。这些和其他技术效果可以通过本文所呈现的技术的各种实现来实现。
d.示例实施例。
图3呈现了本文所呈现的技术的第一示例实施例,其被图示为配置主设备202以在辅助设备206的帮助下呈现应用212的示例方法300。示例方法300可以被实现为例如存储在主设备202的存储器组件(诸如存储器电路,硬盘驱动器的盘片、固态存储设备或磁盘或光盘)中的指令集,所述指令集被组织成使得当在设备的处理器上执行时,使得设备104根据本文所呈现的技术进行操作。
示例方法300在302处开始并且涉及,在主设备202的处理器上执行304指令。具体地,在处理器上执行304指令使得主设备202在主设备202的处理器上执行306应用212。执行指令还使得主设备202将应用212分割成308主应用部分214和辅助应用部分216。执行指令还使得主设备202在主设备202的主计算环境204内呈现310主应用部分214。执行指令还使得主设备202将辅助应用部分216插入辅助计算环境208中,根据辅助设备206的设备属性210从主计算环境204适配所述辅助计算环境208。执行指令还使得主设备202将辅助计算环境208(包括辅助应用部分216)传输314到辅助设备206,以呈现给用户102。以这种方式,指令使得主设备202能够根据本文所呈现的技术来呈现包括辅助设备206的应用212,并且如此在316处结束。
图4呈现了本文所呈现的技术的第二示例实施例,其被图示为可以被示例主设备402和示例辅助设备404利用来实现应用202的分割呈现的示例系统。在该示例场景400中,示例主设备402和示例辅助设备404中的每一个的特征在于处理器406、显示器408和包括指令的存储器410,当在相应设备的处理器406上执行时,所述指令提供一种利用本文所呈现的技术的至少一部分的系统。
在示例主设备402在处理器406上执行应用212时,示例主设备402利用第一示例系统412来实现应用212的分割和分发以包括辅助设备404。第一示例系统412包括应用分割器,其将应用212分割为主应用部分214和辅助应用部分216,并且将辅助应用部分216插入到辅助计算环境208中,根据辅助设备204的设备属性210从主计算环境204适配所述辅助计算环境208。第一示例系统412还包括辅助计算环境传输器416,其将辅助计算环境208(包括辅助应用部分216)传输到辅助设备404(例如,作为音频和/或视频流214)以呈现给用户102。第一示例系统412还包括主应用部分呈现器414,其在主计算环境的显示器408上呈现主应用部分214。
示例辅助设备404的特征在于第二示例系统420,其包括设备属性传输器422,其将示例辅助设备404的一个或多个设备属性210传输到示例主设备402。第二示例系统420还包括计算环境呈现器424,其从示例主设备402接收已经根据示例辅助设备404的至少一个设备属性210从主计算环境204进行了适配的辅助计算环境208,并且其中辅助计算环境208包括应用212的辅助应用部分216。因此,计算环境呈现器424在示例辅助设备404的显示器408上呈现辅助计算环境208。以这种方式,示例主设备402和示例辅助设备404根据本文所呈现的技术通过互操作实现应用212的分布式呈现。
再一个实施例涉及一种包括被配置为应用本文所呈现的技术的处理器可执行指令的计算机可读介质。这样的计算机可读介质可以包括各种类型的通信介质,诸如可以通过各种物理现象(例如,电磁信号、声波信号或光学信号)以及在各种有线场景(例如,经由以太网或光纤电缆)和/或无线场景(例如,诸如wifi之类的无线局域网(wlan)、诸如蓝牙之类的个域网(pan)或蜂窝或无线电网络)中传播的信号,所述信号编码计算机可读指令集,该指令集在由设备的处理器执行时使得设备实现本文所呈现的技术。这样的计算机可读介质还可以包括(作为排除通信介质的一类技术)对计算机可读指令集进行编码的计算机-计算机可读存储器设备,诸如存储器半导体(例如,利用静态随机存取存储器(sram)、动态随机存取存储器(dram)和/或同步动态随机存取存储器(sdram)技术的半导体)、硬盘驱动器的盘片、闪存设备或磁盘或光盘(诸如cd-r,dvd-r或软盘),其编码一组计算机可读指令,所述计算机可读指令集在由设备的处理器执行时,使得设备实现本文所呈现的技术。
在图5中图示出了可以以这些方式设计的示例计算机可读介质,其中实现500包括其上编码有计算机可读数据504的计算机可读存储器设备502(例如,cd-r、dvd-r或硬盘驱动器的盘片)。该计算机可读数据504进而包括计算机指令506的集合,当在设备510的处理器406上执行时,所述计算机指令506集使得设备510根据本文阐述的原理进行操作。在第一个这样的实施例中,处理器可执行指令506可以使得设备510执行使得主设备202能够利用辅助设备206呈现应用212的方法,诸如图3的示例方法300。在第二个这样的实施例中,处理器可执行指令506可以使得设备510提供用于使得主设备202能够利用辅助设备206呈现应用212的系统和/或用于使得辅助设备206能够呈现由主设备202传输的应用212的系统,诸如图4的示例场景400中呈现的示例系统。本领域普通技术人员可以设计出许多这样的计算机可读介质,其被配置为根据本文所呈现的技术进行操作。
e.变型。
本文所讨论的技术可以被设计成具有许多方面的变型,并且一些变型可以呈现相对于这些和其他技术的其他变型的附加的优点和/或减少的缺点。此外,一些变型可以组合实现,并且一些组合可以通过协同合作来以附加的优点和/或减少的缺点为特征。变型可以并入各种实施例(例如,图3的示例方法300;图4的示例系统;以及图5的示例存储器设备502),以在这样的实施例上赋予单独和/或协同的优点。
e1.场景。
在这些技术的实施例中可以变化的第一方面涉及其中可以利用这样的技术的场景。
作为该第一方面的第一变型,本文所呈现的技术可以用于实现各种设备的配置,诸如工作站、膝上型计算机、平板电脑、移动电话、游戏控制台、便携式游戏设备、便携式或非便携式媒体播放器、诸如电视机之类的媒体显示设备、电器、家庭自动化设备、与可穿戴设备集成的计算部件(集成诸如目镜或手表),以及监督控制和数据获取(scada)设备。
作为该第一方面的第二变型,本文所呈现的技术可与在辅助设备206的辅助计算环境208内呈现的各种应用212一起利用,诸如办公室生产力应用;媒体呈现应用,诸如音频和视频播放器;通信应用,诸如web浏览器、电子邮件客户端、聊天客户端和ip上的语音(voip)客户端;导航应用,诸如地理定位、映射和路由应用;实用程序,诸如向用户102呈现警报的天气和新闻监视应用;以及游戏。此外,辅助计算环境208的应用212可以涉及通过一个或多个呈现模态的内容再现,诸如文本、图像、直播和/或预先录制的视频、声音效果、音乐、话语、触觉反馈、三维再现和交互式和/或非交互式用户界面,以及用于从用户102接收诸如文本输入、指向输入、触觉输入、姿势输入、言语输入和注视跟踪输入之类的用户输入的各种技术。
作为该第一方面的第三变型,本文所呈现的技术可与各种架构一起利用。作为第一个这样的示例,主设备202和/或辅助设备206可以利用直接地和物理地连接到每个这样的设备的组件,诸如有线显示器、扬声器和耳机。作为第二个这样的示例,主设备202和/或辅助设备206可以利用可经由无线连接(诸如射频)访问的一个或多个组件。作为第三个这样的示例,主设备202和/或辅助设备206可以通过个域网、局域网和/或广域网进行通信,以便根据本文所呈现的技术进行互操作。作为第四个这样的示例,主设备202和/或辅助设备206可以利用可通过设备集合中的另一个设备访问的一个或多个组件,诸如在客户端/服务器或对等架构中。此外,主设备202和/或辅助设备206可以被一个用户102或一群用户102利用,和/或可以被至少一个第一用户102代表至少一个第二用户102控制。这些和其他场景可以适合于根据本文所呈现的技术通过主设备202和辅助设备206的互操作来呈现计算环境。
e2.生成和传输辅助计算环境。
在本文所呈现的技术的实施例中可以变化的第二方面涉及主设备202将辅助计算环境208传输到辅助设备206的方式,以及辅助设备206向用户102呈现辅助计算环境208的方式。
作为该第二方面的第一变型,辅助设备206的许多类型的设备属性210可以被标识并且用于生成和适配用于辅助设备206的辅助计算环境208和/或在其中执行的应用212。作为第一个这样的示例,辅助设备206的设备属性210可以包括,各种硬件组件的存在性和功能,诸如各种处理器和协处理器的计算吞吐量、并行处理支持和指令集架构;存储器和存储装置的容量、速度和易失性;诸如键盘、鼠标、触敏显示器、麦克风和相机之类的各种输入设备的模态、灵敏度和识别能力;各种视觉输出设备的大小、分辨率和响应性;各种音频输出设备的音量和质量;各种通信设备的吞吐量、延迟和缓存器容量;以及诸如打印机、扫描仪和生物测定传感器之类的各种其他外围设备的属性。作为第二个这样的示例,辅助设备206的设备属性210可以包括通过软件部分或完全可实现的计算能力,诸如编码和/或解码各种形式的媒体;加密、压缩、解压缩、解密、和/或验证各种类型的数据;利用各种指令集和虚拟设备,诸如通过硬件和/或软件仿真或各种类型的语言解析或翻译资源的可访问性;处理各种类型的图形请求,诸如三维图形再现;以及应用各种安全措施,诸如用户认证。作为第三个这样的示例,辅助设备206的设备属性210可以包括其中使用辅助设备206的情况,诸如电力的可用性(例如,公用设施线、电池、和不间断电源(ups)的存在和操作状态)。作为第四个这样的示例,辅助设备206的设备属性210可以包括辅助设备206和其他设备之间的相互关系,诸如网络附加存储(nas)的可访问性,以及辅助设备206在网络中的角色,诸如其与其他设备的关系是,对等、客户端/服务器,和/或上级-下级。作为第五个这样的示例,辅助设备206的设备属性210可以包括一个或多个用户102与辅助设备206交互的上下文,诸如辅助设备206的公共、私有和/或安全本质,以及特定用户102典型地与辅助设备206参与执行的任务。
作为该第二方面的第二变型,主设备202可以以各种方式确定辅助设备206的设备属性210。作为第一个这样的示例,辅助设备206可以诸如通过查询和标识辅助设备206的每个硬件组件来检测辅助设备206的各种设备属性,并且可以将这样的信息传输到主设备202。作为第二个这样的示例,辅助设备206可以包括辅助设备标识符(例如,产品编号、型号和/或序列号),并且主设备202和/或辅助设备206可以在设备目录中查找辅助设备206的设备属性210以标识与辅助设备标识符相关联的这种辅助设备206的设备属性210。作为第三个这样的示例,辅助设备206和/或主设备202可以在特定操作条件下测量辅助设备206的操作(例如,在测试条件下或在正常使用时评估辅助设备206的处理能力和/或网络容量)。作为第四个这样的示例,辅助设备206和/或主设备202可以预测和/或推断辅助设备206的设备属性210;例如,用户102与辅助设备206交互的上下文可以通过监视通常利用辅助设备206执行的任务而实现的推断来确定。作为第五个这样的示例,辅助设备206和/或主设备202可以从一个或多个用户102接收关于辅助设备206的设备属性210的信息。作为第六个这样的示例,主设备202可以向辅助设备206轮询这样的信息(例如,在接收到实例化用于辅助设备206的应用212的请求时),和/或辅助设备206可以将信息推送到主设备202(例如,作为加入用户102的设备集合的请求的一部分)。
作为该第二方面的第三变型,主设备402可以以多种方式生成从主计算环境204适配的辅助计算环境208。作为第一个这样的示例,主设备202可以将主计算环境204存储为模板图像,并且可以生成辅助计算环境208作为主计算环境204的克隆,其中鉴于辅助设备206的设备属性210而应用了调整。作为第二个这样的示例,主设备202可以主动地利用主计算环境204,并且可以生成、存储和应用诸如差异文件之类的变换,以生成适于特定辅助设备206的辅助计算环境208。作为第三个这样的示例,主计算环境204可以包括在所有辅助设备206上可用的功能的超集(例如,完整的一组操作系统和计算环境设置、应用212、应用配置、应用状态和用户帐户),并且主设备202可以选择主计算环境204的功能的子集作为特定辅助设备206的辅助计算环境208。例如,特定应用212可以在主计算环境204内被存储为分别适配于各种类型的辅助设备206的应用变体集合(例如,工作站形状因素用户界面;大显示器用户界面;以及用于各种移动设备的小显示器用户界面),并且主设备202可以选择适合于在特定辅助设备206的辅助计算环境208内呈现的应用变体。这样的技术可以使得能够重新使用主设备202的资源(例如,存储和使用代表大量的辅助设备206的特定应用或应用库的单个拷贝)。
作为该第二方面的第四变型,主设备202可以以多种方式再现和/或向辅助设备206传输辅助计算环境208的流214。作为第一个这样的示例,主设备202可以从辅助设备206接收输入流,和/或可以将视频和/或音频输出流传送到辅助设备206。作为第二个这样的示例,主设备202可以向辅助设备206传输图形基元指令流,诸如当前呈现的视频帧的差异更新,以在流214中生成下一个视频帧。作为第三个这样的示例,主设备202可以向辅助设备206传输下级应用,该下级应用可以在辅助设备206上执行以再现辅助设备206的辅助计算环境208的一部分或全部。作为第四个这样的示例,主设备202可以向两个或多个辅助设备206多播用于辅助计算环境208的一部分或整体的流214,以便在其上进行呈现。作为第五个这样的示例,主设备202可以传输辅助计算环境208的一部分到第一辅助设备206以便重传到第二辅助设备206,该第二辅助设备206向用户102呈现辅助计算环境208。
作为该第二方面的第五变型,主设备202可以适配辅助计算环境208的提供,以便在辅助设备206上提供足够的用户体验。例如,主设备202可以具有足够的计算资源以为特定辅助设备206提供适当响应的用户体验,但是如果用太多的应用212而过载,则主设备202可能表现出降低和令人不满意的性能,诸如辅助计算环境208的流214到辅助设备206的传输中的滞后和/或中断。可以利用各种技术来减轻降低的令人不满意的服务质量。作为第一个这样的示例,主设备202可以估计主设备202能够在不损害呈现质量(例如,最大视觉质量和/或计算速度)的情况下驱动的应用212的最大质量,以及可以将应用212约束到维持主设备202和辅助设备206上的应用212的呈现质量的资源限制。这样的估计可以例如通过在各种情况下测量应用212的被实现的质量来告知,并且可以适配应用212的执行以反映改变的情况(例如,如果提供更丰富的处理能力和/或网络容量,则扩展应用212的质量,和/或如果可用的处理能力和/或网络容量变得受限,则降低应用212的质量)。根据本文所呈现的技术,可以利用在辅助计算环境208的生成、呈现和到辅助设备206的传输上的许多这样的配置。
e2.应用分割和分发。
可以在本文所呈现的技术的实施例之间变化的第三方面涉及将应用212分割为主应用部分214和辅助应用部分216,以及将辅助应用部分216分发到辅助设备206的方式。
作为该第三方面的第一变型,响应于检测到辅助设备206的可用,主设备202可以建立与辅助设备206的连接,并检测辅助设备206的一个或多个设备属性210。主设备202然后可以根据辅助设备206的设备属性210生成从主计算环境204适配的辅助计算环境208,并且启动辅助计算环境208到辅助设备206的传输。可替换地,主设备202可能已经生成了辅助计算环境208(例如,存储了在与辅助设备206的先前交互期间生成的辅助计算环境208,和/或从这样的用于各种类型的辅助设备206的环境的库中检索预制的辅助计算环境208)。作为另一个这样的变型,主设备202还可以包括接近检测器(例如,近场通信(nfc)通信组件),其检测辅助设备206在物理接近度阈值内的物理接近度,并且主设备202可以在辅助设备206的物理接近度在物理接近度阈值内时检测到辅助设备206的可用。也就是说,用户102可以简单地通过定位相距非常近的设备来在主设备202和辅助设备206之间建立连接。
图6呈现了以该第三方面的第二变型为特征的一组示例场景的图示,其中可以以各种方式实现将应用212分割为主应用部分214和辅助应用部分216。在第一示例场景600中,应用212包括诸如视频系列的内容项的呈现,并且应用212被分割成辅助应用部分216和主应用部分214,该辅助应用部分216在辅助设备206的辅助计算环境208内提供内容项的呈现,该主应用部分214提供在主计算环境204内的控制内容项的呈现的呈现控制器。也就是说,主设备202可以用作辅助设备206上的媒体呈现的控制器,或者反之亦然。
在第二示例场景602中,当呈现在一个设备上时呈现在一起的用户界面的元素可以分布在呈现在主设备202上的主应用部分214和呈现在辅助设备206上的辅助应用部分216上。例如,用户界面元素可以被重新布置为呈现在主设备202上的第一用户界面元素集合和呈现在辅助设备206上的第二用户界面元素集合,并且可以调整相应的用户界面元素的大小以匹配每个设备的大小、分辨率和其他设备属性210。作为一个这样的示例,在具有触敏显示器的设备上呈现的用户界面元素可以呈现面向触摸的外观和行为,而在具有非触敏显示器的设备上呈现的用户界面元素可以表现出面向指向器的外观和行为。可替换地,用户102可以能够使用主设备202上的触摸输入来利用辅助设备206的用户界面元素;例如,在主设备202的触敏显示器上利用用户的手指进行控制的指示器可以被移动到辅助设备206的辅助计算环境208,并且因此在辅助设备206上呈现的视觉元素可以表现出触摸兼容的行为,即使辅助设备206不具有触摸能力也是如此。
在第三示例场景604中,应用212可以被分割成要呈现给用户102的主应用部分214和要呈现给第二用户的辅助应用部分208,用户102通过主设备202在主计算环境208内观看应用212,第二用户通过辅助设备206观看应用212。例如,游戏应用可以向第一用户102呈现一些秘密信息,诸如卡牌游戏中的第一用户的手,并且可以将辅助应用部分216传输给辅助设备206,辅助应用部分216向第二用户102呈现一些秘密信息,诸如卡牌游戏中的第二用户的手。
作为该第三方面的第二变型,主设备202还可以将辅助设备206的各种资源与主计算环境204和/或应用212集成。例如,主设备202还可以包括第一输入组件,并且辅助设备206还可以包括第二输入组件。响应于从第一输入组件接收第一用户输入,主设备202可以将第一用户输入应用于应用212;并且响应于从辅助设备206接收通过辅助设备206的第二输入组件提供的第二用户输入,主设备202也可以将第二用户输入应用于应用212。
作为该第三方面的第三变型,除了呈现应用212的主应用部分214之外,主设备202还可以在将包括辅助应用部分216的辅助计算环境208传输到辅助设备206时提供其他功能。例如,响应于接收到在主计算环境204内呈现第二应用212的请求,主设备202可以在主计算环境204内与应用212的主应用部分214并排和/或代替应用212的主应用部分214而呈现第二应用212。在这样的呈现期间,辅助设备206可以继续仅呈现辅助应用部分216,或者可以反转应用212的分割,例如,通过将主应用部分214合并到在辅助设备206的辅助计算环境208内呈现的辅助应用部分216中。
图7呈现了示例场景700的图示,其特征在于,用户102与主设备202的交互序列以在主设备202和辅助设备206之间分割和分发应用212(诸如媒体播放器)。在该示例场景中,应用212最初仅被呈现在主设备202上,并且用于分发应用212的辅助设备206的可用性的检测可以被检测并且作为选项呈现给用户。包括对该选项的选择的用户输入702可以导致,主设备202和辅助设备206之间连接以及将应用212分割为在主设备202上呈现的主应用部分214以及被传输到辅助设备206并由辅助设备206呈现的辅助应用部分216。主设备202还可以呈现用于在主设备202上执行其他应用212的选项,并且此外,包括对选项的选择的用户输入702可以使主设备202以呈现以可用应用212为特征的菜单704,其包括用于在主设备202、辅助设备206上呈现相应的应用的选项和/或呈现分布在两个设备上的相应应用的选项。包括对第二应用212(诸如web浏览器)的选择的用户输入702可以使主设备202仅在主设备202上呈现第二应用212。此时,辅助设备206可以继续呈现仅辅助应用部分216,或者,如图7中所示,可以呈现包括主应用部分214的合并应用212。当用户102退出第二应用时,主设备202可以返回到显示第一应用212的主应用部分214,并且应用212在辅助设备206上的合并2可以被反转。
作为该第三方面的第五变型,可以响应于来自用户102的用户请求来实现应用分割的终止。作为另一示例,响应于检测到辅助设备206从主设备202断开连接,主设备202可以将应用212的辅助应用部分216合并到主计算环境214中,以便在主设备202上呈现整个应用212,或者可以标识可以将辅助应用部分216重新安置到其中的第二辅助设备206。作为又一示例,其中辅助应用部分216还包括内容项的呈现,主设备202可以响应于检测到内容的呈现的完成(例如,到达在辅助设备206上呈现的音频或视频序列的结尾)而终止辅助计算环境208到辅助设备206的传输。根据本文所呈现的技术,可以在应用212在主设备202和辅助设备206之间的分割和分发中利用许多这样的变型。
e4.用户输入手势。
可以在本文所呈现的技术的实施例之间变化的第四方面涉及一组用户界面手势,其可以由用户102执行以控制在主设备202和辅助设备206上分割和分发的应用212。参考图8-9讨论这种手势,图8-9提供在设备上执行以与应用212交互的这种手势的视觉示例。一些这样的手势可以利用指示设备(例如,鼠标,触摸板或轨迹球)、利用触敏显示器(例如,使用手指或触笔),或者作为不接触输入设备的非接触手势(例如,由相机检测到的手动或眼睛移动手势)来执行。此外,虽然这样的示例被描述为在主设备202上执行的在辅助设备206上产生效果的手势,但是在一些情况下,这样的手势可以可替换地在辅助设备206上执行以在主设备202上产生效果。
作为该第四方面的第一变型,图8呈现了由主设备202进行的手势检测的第一示例场景800的图示,主设备202还包括呈现指示器808和内容项806的显示器。主设备202可以检测“拉动和轻拂”指示器手势802,其包括使内容项目806远离显示器的边缘的拉动运动804以及朝向显示器的边缘的轻拂运动810。主设备202可以将该手势解释为在辅助设备206上呈现内容项806的请求,并且因此可以将内容项806的呈现插入辅助计算环境208中以供辅助设备206呈现。作为另外的变型,主设备202可以将显示器的所选边缘标识为朝向辅助设备206物理地或逻辑地对准,使得朝向显示器的所选边缘执行的轻拂运动810导致内容项806在辅助设备206上的呈现,而朝向显示器的任何其他边缘执行的轻拂运动810则不导致内容项806在辅助设备206上的呈现。
作为该第四方面的第二变型,图8呈现了图示出第二手势的第二示例场景812的图示,其涉及还包括诸如触摸板之类的触敏输入设备816的主设备202。主设备202可以检测与辅助设备206的辅助计算环境的可滚动元素822相关联的双手指拖动手势814;例如,用户102可以将两个手指820触摸到主设备202的显示器,并且在显示器上沿特定方向执行拖动运动818。主设备202可以响应于双手指拖动手势814而导致可滚动元素822的滚动824(例如,如果沿向上的方向执行双手指拖动手势814则向上滚动824可滚动元素822,并且如果沿向下的方向执行双手指拖动手势,则向下滚动824可滚动元素822,或者反之亦然)。作为另外的变型,滚动824的速率可以与触敏设备816上的拖动运动818的速率成比例。
作为该第四方面的第三变型,图8呈现了图示出第三手势的第三示例场景826的图示,其中主设备202检测到触敏输入设备816的用户102已经沿着向内方向832从触敏输入设备202的边缘830执行了边缘扫动手势828(例如,从显示器或触摸板的边框边缘向中心扫动)。主设备202可以将该边缘扫动手势828解释为将辅助计算环境208从呈现当前应用转变到呈现先前呈现的应用的请求,并且因此可以发起与辅助计算环境208的从当前应用到不同的应用的转变834。
作为该第四方面的第四变型,图9呈现了图示出第四手势的第四示例场景900的图示,其中在辅助设备206呈现诸如一行按钮之类的用户界面元素的序列908(其中所选择的用户界面元素是用户输入的当前焦点)时,主设备202检测到指示器808的用户102执行了圆形指示器手势902,其涉及以圆形运动904移动指示器808。主设备202可以将该圆形指示器手势902解释为将序列908中的所选用户界面元素从第一用户界面元素转变为序列908中的相邻用户元素的请求,并且可以通过将该相邻用户元素选为辅助设备206上的活动用户元素来实现该转变906。
作为该第四方面的第五变型,图9呈现了图示出第五手势的第五示例场景910的图示,其中在辅助设备206正呈现可滚动用户界面元素914时,主设备202检测到用户102执行圆形指示器手势912,其涉及以圆形运动904移动指示器808。主设备202可以将圆形指示器手势912解释为滚动可滚动用户界面元素914的请求,并且因此可以发起可滚动用户界面元素914的滚动916。
作为该第四方面的第六变型,图9呈现了图示出第六手势的第六示例场景826的图示,其中当辅助设备206当前正以全显示模式呈现内容项806时,主设备202检测到用户102已经使用至少三个手指922执行了夹捏手势920(例如,将至少三个手指820以打开的配置922触摸到触敏显示器的表面,并且将手指822紧缩924以处于闭合配置)。主设备202可以将夹捏手势920解释为将内容项806的呈现从全显示模式转变为部分显示模式的请求,并且可以将在辅助设备206上的内容项806的呈现调整到较小的显示尺寸。
在这样的变型中可以包括在这样的基于手势的控制的检测和呈现方面的许多进一步的变型。作为该第四方面的第七变型,在检测到与辅助计算环境208相关联的手势的发起时,主设备202可以在显示器上呈现指示器手势用户界面,以替代主计算环境204;例如,在用户102正在执行“滚动”手势时,主设备202可以呈现全屏滚动条以帮助用户执行手势,而不是主计算环境204。响应于检测到手势的完成,主设备202可以恢复呈现在显示器上的主计算环境204,以替代指示器手势用户界面。在另一个这样的变型中,在手势与在辅助计算环境208内呈现用户界面内容的用户界面元素相关联的情况下,主设备202可以呈现反映用户界面元素的用户界面内容的指示器手势用户界面。例如,当用户102在主设备202上执行导致在辅助设备206上呈现的列表的滚动的手势时,主设备202可以显示列表的内容(例如,以放大视图),以替代主计算环境204,直到用户102已经完成滚动为止,然后可以重返在主设备202上呈现主计算环境204。在本文所呈现的技术的各种实施例中,可以包括许多这样的变型以使得在主设备202上执行的手势能够影响在辅助设备206上呈现辅助计算环境208(或反之亦然)。
f.计算环境。
图10和以下讨论提供了用于实现本文所阐述的一个或多个规定的实施例的合适的计算环境的简要的一般描述。图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的组件可以通过各种互连(诸如总线)连接。这样的互连可以包括诸如pciexpress的外围组件互连(pci)、通用串行总线(usb)、火线(ieee1394)、光学总线结构等。在另一个实施例中,计算设备1002的组件可以通过网络互连。例如,存储器1008可以包括位于由网络互连的不同物理位置处的多个物理存储器单元。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以分布在网络上。例如,可经由网络1018访问的计算设备920可以存储计算机可读指令以实现本文提供的一个或多个实施例。计算设备1002可以访问计算设备1020并下载部分或全部的计算机可读指令以供执行。可替换地,计算设备1002可以根据需要下载计算机可读指令片段,或者一些指令可以在计算设备1002处执行,而一些在计算设备1020处执行。
g.术语的使用。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于以上描述的特定特征或动作。相反,以上描述的特定特征和动作被公开为实现权利要求的示例形式。
如在本申请中所使用的,术语“组件”、“模块”、“系统”,“接口”等一般旨在指代计算机相关实体,其是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,在控制器上运行的应用和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。
此外,所要求保护的主题可以被实现为使用标准编程和/或工程技术来生成软件、固件,硬件或其任何组合以控制计算机实现所公开的主题的方法、装置或制品。如本文所使用的术语“制品”旨在包括可从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到,在不脱离所要求保护的主题的范围或精神的情况下,可以对该配置进行许多修改。
本文提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以构成存储在一个或多个计算机可读介质上的计算机可读指令,如果由计算设备执行,所述计算机可读指令将导致计算设备执行所描述的操作。描述一些或所有操作的顺序不应被解释为暗示这些操作必然是与顺序相关的。受益于本说明书的本领域技术人员将意识懂啊可替换的排序。此外,应当理解,并非所有的操作都必然存在于本文提供的每个实施例中。
本文作为“示例”描述的任何方面或设计不一定被解释为比其它方面或设计有利。相反,词语“示例”的使用旨在呈现可能与本文呈现的技术有关的一个可能的方面和/或实现。这样的示例对于这样的技术不是必需的或不旨在是限制性的。这样的技术的各种实施例可以单独地或与其他特征组合地包括这样的示例,和/或可以改变和/或省略所图示出的示例。
如本申请中所使用的,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文清楚可见,否则“x采用a或b”旨在意味着自然包括性排列中的任何一个。也就是说,如果x采用a;x采用b;或x采用a和b两者,则在任何前述情况下满足“x采用a或b”。此外,本申请和所附权利要求中使用的冠词“一”和“一个”一般可以被解释为意味着“一个或多个”,除非另有说明或从上下文中清楚可见,针对单数形式。
此外,尽管已经关于一个或多个实现示出和描述了本公开,但是基于对本说明书和附图的阅读和理解,本领域的其他技术人员将想到等同的改动和修改。本公开包括所有这样的修改和改动,并且仅由所附权利要求的范围限制。特别地,关于由以上所描述的组件(例如,元件、资源等)执行的各种功能,除非另有说明,否则用于描述这些组件的术语旨在对应于执行所描述的组件的所规定的功能(例如,在功能上等同)的任何组件,即使在结构上不等同于执行本公开的本文所图示出的示例实现中的功能的所公开的结构,也是如此。此外,虽然可以仅关于几个实现中的一个公开本公开的特定特征,但是这样的特征可以与其他实现中的一个或多个其他特征组合,如可能对于任何给定或特定应用是所期望和有利的。此外,就在具体实施方式或权利要求书中使用术语“包括”、“具有”,“含有”,“拥有”或其变型而言,这样的术语旨在以类似于术语“包含”的方式进行包括。