CN107533418A - 基于上下文信息的动态启动行为 - Google Patents

基于上下文信息的动态启动行为 Download PDF

Info

Publication number
CN107533418A
CN107533418A CN201680022332.7A CN201680022332A CN107533418A CN 107533418 A CN107533418 A CN 107533418A CN 201680022332 A CN201680022332 A CN 201680022332A CN 107533418 A CN107533418 A CN 107533418A
Authority
CN
China
Prior art keywords
virtual desktop
control element
information
graph control
asked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201680022332.7A
Other languages
English (en)
Inventor
T·Y·王
R·方
M·A·赛伯特
C·多恩
C·E·斯旺
C·R·安东尼
Y·魏
A·E·巴拉斯
C·D·萨瑞恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107533418A publication Critical patent/CN107533418A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Abstract

本文中描述了用于利用上下文信息来按最可能对应于用户的根本意图的方式呈现应用的图形控制元素(例如,窗口)的窗口调用功能。通过这么做,窗口调用功能改善了用户与应用交互方面的效率,并且还降低了对计算资源的消耗。在一个实现中,窗口调用功能包括用于收集上下文信息的信息收集组件以及用于基于该上下文信息来选择要用于呈现图形控制元素的特定虚拟桌面的调用组件。

Description

基于上下文信息的动态启动行为
背景
虚拟桌面管理器允许用户在单个计算设备上创建不同的虚拟桌面并与其进行交互。不同的虚拟桌面提供不同的相应图形门户,通过这些图形门户,用户可与应用、文件等进行交互。例如,用户可创建第一虚拟桌面来与各个人应用窗口进行交互,并创建第二虚拟桌面来与各工作相关的应用窗口进行交互。用户可在一整天内在这两种桌面之间切换,这取决于他或她希望执行个人任务还是工作相关的任务。然而,在当前实现中,应用可与虚拟桌面管理器进行交互以有时按用户既不预期也不期望的方式在虚拟桌面中调用应用窗口。
概述
本文中描述了用于利用上下文信息来按最可能对应于用户的根本意图的方式呈现应用的图形控制元素(例如,窗口)的窗口调用功能。通过这么做,窗口调用功能改善了用户与应用交互方面的效率,并且还降低了对计算资源的消耗。在一个实现中,窗口调用功能包括用于收集上下文信息的信息收集组件以及用于基于该上下文信息来选择要用于呈现图形控制元素的特定虚拟桌面的调用组件。
例如,在一个场景中,假设用户作出启动应用的请求。信息收集组件可确定用户正与不包含与该应用相关联的图形控制元素的当前虚拟桌面进行交互。作为响应,调用组件可将图形控制元素呈现在当前虚拟桌面上,即使在其中另一现存的虚拟桌面已经包含与该应用相关联的图形控制元素的情况下也是如此。换言之,在该示例中,窗口调用功能在没有用户的知识的情况下不将用户发送到该另一虚拟桌面,也不甚至在该另一虚拟桌面中调用应用事件,而是假定用户想要停留在当前虚拟桌面中。窗口调用功能消除了用户从不合需的呈现导航到期望的呈现的需要,并且消除了对将被需要来呈现不合需的呈现的计算资源的支出。
信息收集组件可使用不同的技术来收集上下文信息。在一种方法中,信息收集组件可在一旦应用被激活的情况下依赖于该应用来收集上下文信息。在另一方法中,信息收集组件可在激活应用之前收集至少一些上下文信息(诸如,预先加载的偏好信息),由此进一步节省计算资源。
以上方法可体现在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等中。
提供本概述以便以简化的形式介绍一些概念;这些概念将在以下的详细描述中作进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
图1示出用于基于上下文信息来将图形控制元素(例如,窗口)呈现在虚拟桌面内的系统的概览。
图2示出图1的系统的说明性行为的示例。
图3示出用于实现图1的系统的计算功能。
图4示出图3的计算功能的独立实现。
图5示出图3的计算功能的网络实现。
图6示出图1的系统的第一特定实现。
图7示出图1的系统的第二特定实现。
图8示出图7的第二实现的说明性行为的示例。
图9示出图1的系统的第三特定实现。
图10是描述图1的系统的一种操作方式的流程图。
图11示出了可被用来实现前面的附图中所示出的各特征的任何方面的说明性计算功能。
贯穿本公开和各附图,相同的附图标记被用来指代相同的组件和特征。100系列附图标记指代最初在图1中找到的特征,200系列附图标记指代最初在图2中找到的特征,300系列附图标记指代最初在图3中找到的特征,依此类推。
详细描述
本公开是按如下方式来组织的。章节A描述了用于基于上下文信息来将图形控制元素(例如,窗口)呈现在虚拟桌面内的系统。章节B阐述了解释章节A的系统的操作的说明性方法。章节C描述了可被用来实现章节A和B中所描述的特征的任何方面的说明性计算功能。
作为预备,一些附图在被不同地称为功能、模块、特征、元素等的一个或多个结构组件的上下文中描述概念。附图中示出的各组件可以由任何物理和有形的机制(例如,由在计算机装备上运行的软件、硬件(例如芯片实现的逻辑功能)等和/或其任意组合)以各种方式来实现。在一种情况下,附图中所例示的将各种组件分离成有区别的单元可反映对应的有区别的物理及有形组件在实际实现中的使用。替代地或附加地,附图中所例示的任何单个组件均可由多个实际物理组件来实现。另选地或另外地,附图中的任何两个或更多分开组件的描绘可以反映单个实际物理组件所执行的不同功能。图11(将依次讨论)提供关于附图中所示的功能的一个说明性物理实现的附加细节。
其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成按某一顺序被执行的有区别的框。这样的实现是说明性的而非限制性的。本文所描述的某些框可被分组在一起并在单个操作中被执行,某些框可被分解成多个组件框,并且某些框可按与本文所例示的不同的顺序来被执行(包括以并行方式执行这些框)。流程图中示出的各个框可以由任何物理和有形的机制(例如,由在计算机装备上运行的软件、硬件(例如芯片实现的逻辑功能)等和/或其任意组合)以各种方式来实现。
至于术语,短语“被配置成”包含任何类型的物理和有形的功能可以被构建来执行已标识的操作的任何方式。该功能可被配置成使用例如运行在计算机装备上的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行操作。
术语“逻辑”包含用于执行任务的任何物理和有形的功能。例如,流程图中所例示的每个操作均对应于用于执行该操作的逻辑组件。操作可使用例如在计算机装备上运行的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行。在由计算装备实现时,逻辑组件表示作为计算系统的物理部分、而不管如何实现的电子组件。
以下解释可将一个或多个特征标识为“任选的”。该类型的陈述不应被解读为可以被视作任选的特征的穷尽性指示;也就是说,虽然在文本中没有被明确地标识,但是其他特征也可被视作任选。此外,对单个实体的任何描述并不旨在排除对多个这样的实体的使用;类似地,对多个实体的描述不旨在排除对单个实体的使用。此外,尽管本描述可将某些特征解释为执行所标识的功能或实现所标识的机制的替代方式,但是这些特征也可以以任何组合来被组合在一起。最后,术语“示例性”或“说明性”指的是潜在的许多实现中的一个实现。
说明性系统
图1示出用于基于上下文信息来将图形控制元素呈现在虚拟桌面内的系统102的概览。为了便于解释,此后将结合特定窗口示例来引用图形控制元素。窗口对应于允许终端用户经由图形用户界面(GUI)与其所属于的应用进行交互的图形面板。但更一般地,图形控制元素可对应于用户可用来与相应的应用进行交互的任何图形特征。例如,在一个实例中,图形控制元素可对应于由特定应用呈现的弹出消息(不一定采用窗口形式)。
如本文中所使用的术语“应用”旨在宽泛地对应于执行任何功能的任何计算机实现的功能。在一些情况下,应用可对应于执行相对较高水平的功能的程序(和/或其他逻辑表现)。但在其他情况下,应用可对应于执行较低水平的功能(诸如操作系统功能)的程序(和/或其他逻辑表示)。还应注意,术语“应用”将被认为与应用功能或应用逻辑同义,因为它指代在应用代码(和/或其他逻辑)被至少一个计算设备执行时所产生的功能,而非应用代码本身的功能。
系统102包括窗口调用功能104,该窗口调用功能104与计算设备的操作系统(包括其虚拟桌面管理器)交互以将所请求的窗口呈现在合适的虚拟桌面(诸如用户当前正与其进行交互的当前虚拟桌面)上。所请求的窗口与特定应用相关联,并允许用户与那个应用进行交互。窗口调用功能104在一个或多个数据存储106中提供的上下文信息的基础上执行其操作。如本文中一般使用的,数据存储指代用于保留信息的任何机制,诸如动态存储器、持久存储(例如,硬盘)等。
更具体地,窗口调用功能104通过接收发起对所请求的窗口的呈现的触发事件来操作。在一种情况下,例如,触发事件可对应于用户的激活(例如,“启动”)特定应用的指令。即,触发事件在该情况下对应于用户的呈现与该应用相关联的所请求窗口的指令,该窗口随后允许用户与该应用进行交互。例如,触发事件可对应于用户的激活浏览器应用(例如,华盛顿州雷蒙德市的微软公司生产的INTERNET EXPLORER(因特网浏览器))的请求,该浏览器应用调用最初显示用户的主页或某个其他页面的窗口。
用户可按不同的方式调用该应用。在一种情况下,用户可通过点击(或以其他方式选择)开始菜单、任务栏等上与该应用相关联的图标(或其他信息)来激活该应用。在另一情况下,用户可通过点击与该应用相关联的文件项来激活该应用。例如,用户可通过点击通过文字处理应用创建或者以其他方式具有与文字处理应用相关联的文件扩展名的文档来激活文字处理应用。在其他情况下,用户可通过经由指定协议启动应用来激活该应用。例如,用户可通过激活到特定网页的http链接来激活浏览器应用。这些用户实现的调用策略是作为示例而非限制来引用的;还有进一步的技术可被用户用于激活应用。
在又一些情况下,触发事件可对应于已经运行的应用的呈现与那个应用或某个其他应用相关联的窗口的请求。换言之,那个触发事件是由该应用而非用户生成的。例如,假定应用对应于计算机实现的日历服务,并且该应用已经在运行。在一些时刻,应用可生成请求窗口调用功能104呈现提醒窗口的请求,提醒窗口用于提醒用户即将到来的会面。
窗口调用功能104可包括(或者可以被概念化为包括)两个主要组件。信息收集组件108收集相关的上下文信息片段。以下描述阐述了可供信息收集组件108执行该任务的各种技术。调用组件110使用收集到的上下文信息来确定用于呈现所请求的窗口的合适方式,在本文中被称为优选认定方式。调用组件110随后与(应用在其上运行的计算设备的)操作系统交互以便按该优选认定方式来呈现所请求的窗口。
更具体地,虚拟桌面管理器可托管众多虚拟桌面,每一虚拟桌面可能正呈现与一个或多个应用相关联的一个或多个窗口。进一步假定用户正与当前虚拟桌面进行交互。在一种情况下,调用组件110基于上下文信息来选择被认为是最合适的虚拟桌面来呈现所请求的窗口。所选的虚拟桌面可对应于用户当前正与其进行交互的当前虚拟桌面;但在其他情况下,调用组件110可选择要用于呈现所请求的窗口的另一虚拟桌面。换言之,本示例中的“优选认定方式”指定将被用来呈现所请求的窗口的虚拟桌面的身份。
替换地或附加地,“优选认定方式”指定所请求的窗口的显示特性,该显示特性涉及所请求的窗口在被呈现在桌面上时的某个视觉和/或行为方面。例如,假定应用执行计算功能。在某些情况下,调用组件110可利用上下文信息来呈现该窗口的小尺寸版本。窗口调用功能104的上述行为还具有对用户与单个虚拟桌面或仅普通桌面进行交互的情况的适应性。
替换地或附加地,“优选认定方式”指代描述用于呈现图形控制元素的一个或多个呈现设备的特征的显示特性。例如,上下文信息可指定多个呈现设备中可呈现图形控制元素的一个(或多个)特定呈现设备。调用组件110利用上下文信息来将图形控制元素呈现在(诸)所选的呈现设备上,和/或管控(诸)所选呈现设备上的呈现设置。
然而,为了促成并简化解释,剩余的解释将主要关注于其中“优选认定方式”涉及将所请求的窗口呈现在特定虚拟桌面上的示例。
上下文信息可包括如呈现在一个或多个虚拟桌面上的关于与当前时间存在的应用相关联的所有窗口的信息。该信息可由应用本身和/或计算设备的操作系统维护。上下文信息还可包括关于当前时间存在并且与这些窗口相关联的所有虚拟桌面的信息。该信息可由计算系统的操作系统和/或操作系统的某个其他组件提供的虚拟桌面管理器维护。
上下文信息还可包括调用特性信息,该调用特性信息指定触发事件已被产生的方式。例如,调用特性信息可指示用户是否已通过以下启动了应用(诸如浏览器应用):通过点击http链接或通过调用某个其他协议;或者通过点击任务栏、开始菜单、桌面呈现等中的图标(或某个其他控制元素);或者通过激活特定文件项等(诸如文档、图像等);或者通过执行特定调用行为(诸如通过执行特定用户界面姿势)等,或者其某种组合。调用特性信息可由计算设备的操作系统在用户启动应用时提供。在其他情况下,调用特性信息可指示已经运行的应用自动调用窗口的情况。
上下文信息还可包括由特定应用指定的偏好信息。应用偏好信息标识为特定应用调用所请求的图形控制元素的优选方式。偏好信息可由计算设备的操作系统维护。计算设备的操作系统进而可在给定时间(例如,安装时间、运行时等)接收来自应用的偏好信息。
偏好信息可被表达为描述窗口调用功能104针对各种调用状况将如何显示所请求的窗口的一个或多个规则。例如,偏好信息的一个实例可指定当用户以某种方式而非其他方式调用应用时,所请求的窗口将被显示在当前桌面上。这样的规则可按任何方式表达,诸如IF-THEN(如果-则)逻辑,或通过窗口调用功能104的合适逻辑来起作用的一个或多个属性等。
不同的系统可按不同的相应方式来实现窗口调用功能104。在一些情况下,窗口调用功能的至少一些方面由特定应用本身内的逻辑来实现。附加地或替换地,窗口调用功能104的至少一些方面由一个或多个操作系统组件来实现。以下解释将提供窗口调用功能104的三个说明性实现。
总的来说,窗口调用功能104通过按用户最可能预期的方式显示所请求的窗口来利用上下文信息。例如,窗口调用功能104将所请求的窗口显示在用户对于要被显示的所请求窗口最可能预期的特定虚拟桌面中。该行为允许用户高效地与虚拟桌面进行交互。该行为还可导致实现该应用的(诸)计算设备的计算资源(例如,电池电源)的高效消耗。
为了说明以上断言,考虑图2的示例。在此,在当前时间,作出调用与应用A2相关联的窗口W21的请求。例如,假定用户点击任务栏或开始菜单中与应用A2相关联的图标。进一步假定在调用之际,应用A2将呈现窗口W21
进一步假定,在当前时间,虚拟桌面管理器托管两个现存的虚拟桌面VD当前和VD其他。VD当前对应于用户当前正与其进行交互的虚拟桌面。它仅包括与应用A1相关联的窗口W11。VD其他对应于用户当前不在与其进行交互,然而从它存在于存储器中并且用户可容易地切换到它的意义上说是存在的另一虚拟桌面。VD其他包括与应用A1相关联的窗口W11,以及与A2相关联的窗口W21。一般来说,应注意,虚拟桌面可呈现与任何数目的应用相关联的任何数目的窗口。
窗口调用功能104通过收集至少描述存在的针对应用A2的窗口以及在其中出现了这些窗口的各虚拟桌面的上下文信息来操作。响应于该上下文信息,窗口调用功能104随后决定将所请求的窗口(即,与应用A2相关联的窗口W21)呈现在当前虚拟桌面(VD当前)中。即使不活跃的虚拟窗口(VD其他)碰巧也是应用A2的显示窗口W21,窗口调用功能104仍选择该行为。换言之,窗口调用功能104拒绝将用户切换到VD其他并随后在该虚拟桌面中激活存在的窗口(W21,A2)。
窗口调用功能104行为的上述行为是基于以下假定来预测的:用户最可能期望调用应用A2的窗口W21的新实例,而非在VD其他中激活应用A2的窗口W21的已经存在的实例。然而,该假定仅仅是一个示例。基于其他上下文线索,窗口调用功能104的另一实现可决定最合适的动作将是在VD其他中重新激活应用A2的窗口W21的存在的实例。
窗口调用功能104允许用户高效地与虚拟桌面进行交互。为了说明这一点,考虑在窗口调用功能104决定在VD其他内激活应用A2的窗口W21的已经存在的实例的情况下可能发生什么。窗口调用功能104可能已通过将用户拉出VD当前并将用户放置在VD其他中执行了该任务。或者,窗口调用功能104可能已激活了应用A2中的窗口W21,而没有还将用户放置在VD其他中。在任一情况下,用户可能都不会立刻明白正在发生什么,从而导致混淆和挫败。并且一旦用户确定已发生了什么,用户就可需要执行附加步骤来实现正寻求的界面状态—即,应用A2的窗口W21在VD当前而非VD其他中的呈现。通过消除混淆、挫败以及通过可将用户推入VD其他所招致的附加操作(此时该推入并非用户的根本意图),窗口调用功能104可被认为促进了高效的交互。
此外,窗口调用功能104可导致对计算资源的高效利用。在一个实现中,托管虚拟桌面管理器的计算设备可在任何非当前虚拟桌面中挂起应用。在图2的示例的上下文中,这意味着计算设备可挂起应用A1的窗口W11和应用A2的窗口W21在VD其他的上下文中的呈现。然而,当虚拟桌面管理器切换到VD其他时,计算设备将重新激活这些实例。计算设备在呈现活跃的窗口实例而非挂起的窗口实例的过程中消费额外功率。因此,通过将用户错误地“抛”到非预期虚拟桌面中,计算设备可被认为不必要地消耗了其功率。并且,通过降低这些类型的错误激活,窗口调用功能可被认为在某时间跨度内节省了计算设备的功率。在其中计算设备是具有有限的、相对限制的电池容量的手持式电池驱动设备的那些情况下,这样的特性可给予提高的益处。
虽然图2中未示出,但替换地假定用户请求窗口调用功能104调用应用A1(而非应用A2)的窗口W11。在该示例中,VD当前和VD其他两者都显示应用A1的窗口W11的实例。响应于该发现,窗口调用功能104可决定在VD当前内调用应用A1的窗口W11的现有实例,而非在同一虚拟桌面中调用副本窗口。但这也不是固定规则;在其他情况下,对于其他上下文线索,窗口调用功能104可决定在同一虚拟桌面中调用同一应用的两个窗口,诸如通过调用两个浏览器窗口。
如上所述,在其他实现中(图2中也没有示出),窗口调用功能104可基于两个或更多个上下文因素来确定如何呈现所请求的窗口(而非只确定所请求的窗口是否出现在VD当前中)。例如,窗口调用功能104可在用户以第一方式作出应用请求的情况下采用第一调用策略,并在用户以第二方式作出应用请求的情况下采用第二调用策略。
附加地或替换地,即除了确定将用于在其中显示虚拟桌面的特定虚拟桌面外,窗口调用功能104还可使用上下文线索来确定将在虚拟桌面中显示所请求的窗口的方式。例如,除了确定将在VD当前中呈现应用A2的窗口W21外,窗口调用功能104还可确定以下中的任一者:窗口在所选虚拟桌面内的尺寸(和/或任何其他视觉属性)、窗口在虚拟桌面内的位置、窗口在所选虚拟桌面内的行为、用于显示窗口的(诸)呈现设备等等。所有这些属性在本文中都被称为显示特性。实际上,窗口调用功能104可基于上下文线索来呈现窗口,即使虚拟桌面管理器当前仅托管一个虚拟桌面(并且因此仅存在用于显示所请求的窗口的虚拟桌面的一个选择)或者操作系统正呈现“普通的”(非虚拟)桌面。
图3示出用于实现图1的系统的计算功能302。计算设备(未示出)托管操作系统304和一个或多个应用306。一个这样的应用可对应于调用窗口调用功能104的特定应用308(诸如浏览器应用)。操作系统304进而实现虚拟桌面管理器310。在图3的示例中,虚拟桌面管理器310当前正将至少三个虚拟桌面(312、314、316)托管在该计算设备的存储器318内。用户当前正与其进行交互的当前的虚拟桌面是虚拟桌面3 316。
如上所述,一个计算设备(或多个设备)的不同组件可实现窗口调用功能104。例如,操作系统304的一个或多个组件可实现窗口调用功能104的至少部分。附加地或替换地,一个或多个应用306内的逻辑可实现窗口调用功能104的至少部分。重复来说,以下描述将提供实现窗口调用功能104的不同说明性方式的具体示例。
计算设备至少将当前虚拟桌面316显示在一个或多个呈现设备322的图形用户界面(GUI)320中。例如,呈现设备322可对应于任何尺寸和类型的计算机显示器(诸如液晶显示器)。用户经由图形用户界面320与计算设备进行交互。
图4示出可实现图2的计算功能302的计算设备402的一个实现。计算设备402可对应于计算机工作站、游戏控制台设备、机顶盒、智能电话设备、平板型计算设备、媒体消费设备(例如,音乐播放设备或书本阅读器设备)等中的任一者。计算设备402可在本地提供与一个或多个应用306以及虚拟桌面管理器310相关联的逻辑。
图5示出可实现图2的计算功能302的计算装备的另一实现。此处,该计算装备可包括本地计算设备502(用户与其进行交互),该本地计算设备502经由任何(诸)通信管道506耦合到远程计算功能504。本地计算设备502可对应于以上结合图4提到的设备中的任一者。远程计算功能504可对应于一个或多个计算机服务器、一个或多个数据存储、和/或其他计算功能(例如,路由器、加载平衡装备等)。(诸)通信管道506可对应于广域网(例如,互联网)、局域网和其任意组合。
在一种情况下,远程计算功能504可托管一个或多个应用,在图5中被概括地描绘为远程应用逻辑508。例如,应用可对应于有web能力的应用。用户可经由由本地计算设备502提供的浏览器功能来与有web能力的应用进行交互。
本地计算设备502被解说为包括本地应用逻辑510和虚拟桌面管理器310。本地应用逻辑510对应于图5的本地计算设备502用来与远程计算功能504所实现的远程应用逻辑508进行交互的任何应用相关的功能(如果有的话)。例如,在一个实现中,本地应用逻辑510可对应于显示由远程计算功能504所托管的远程应用逻辑508生成的窗口的本地版本的本地逻辑。
注意,图5示出虚拟桌面管理器310由本地计算设备502实现。但在其他实现中,虚拟桌面管理器310的功能也可按任何方式分布在本地计算设备502和远程计算功能504之间。此外,在其他独立和分布式实现中,计算装备可完全省略虚拟桌面管理器,或者省略对虚拟桌面管理器的使用。
第一说明性实现
现前进到图6,该图示出图1的系统102的第一实现。在该情况下,假定用户(或某个其他实体)作出呈现与应用602相关联的窗口的请求。例如,在一种情况下,该请求可指令计算设备启动应用602,计算设备将把介绍性窗口呈现在该应用上。被请求的窗口在本文中被称为“所请求的窗口”。
在图6的示例中,每一应用实现以上介绍的窗口调用功能104的一个实例。由此,应用602实现信息收集组件604和调用组件606。
信息收集组件604收集涉及窗口正被请求的情况的上下文信息。在操作中,信息收集组件604可首先咨询数据存储608来确定当前时间跨各虚拟桌面存在的与应用602相关联的所有窗口。应用602可将该信息提供在应用专用数据存储中,和/或操作系统304可存储该信息。
信息收集组件604还可咨询数据存储610,这提供关于当前时间存在的所有虚拟桌面以及正被呈现在那些虚拟桌面中的窗口的信息。虚拟桌面管理器310可将该信息维护在数据存储610或者操作系统304的某个其他组件可维护该信息。
更具体地,对于数据存储608中的每一标识出的窗口,信息收集组件604可查询虚拟桌面管理器310来确定该窗口是否存在于当前虚拟桌面中。根据该规程的结论,信息收集组件604可确定与应用602相关联的所请求的窗口当前是否正被显示在当前虚拟桌面中。在一个实现中,信息收集组件604可使用应用编程接口(API)来实现其质询技术。该API接受将窗口标识符作为输入标识符,并从虚拟桌面管理器310接收指示标识出的窗口是否存在于当前虚拟桌面中的是/否响应。
调用组件606可随后基于由信息收集组件604达成的结论来确定如何呈现所请求的窗口。例如,调用组件606通过以下来执行图2中示出的行为:(1)假如当前虚拟桌面当前没有呈现所请求的窗口(并且不考虑任何其他虚拟桌面是否可呈现所请求的窗口),在当前虚拟桌面中显示所请求的窗口;或者(2)假定所请求的窗口存在,则在当前虚拟桌面中激活所请求的窗口的已经存在的版本。
第二说明性实现
图7示出图1的系统的第二实现。该图再次示出例如通过提供信息收集组件704和调用组件706来实现窗口调用功能104的实例的应用702。信息收集组件704检索(例如,如维护在数据存储708中的)关于应用的现存窗口的信息。信息收集组件704还检索(例如,如由虚拟桌面管理器310维护在数据存储710中的)关于当前时间存在的所有虚拟桌面的信息。
更具体地,与图7相关联的功能可被应用于不同的场景,并且在说明性场景的上下文中被最佳解释。在一个场景中,假定应用702涉及在线电子邮件服务。该类型的应用702可生成主窗口,通过该主窗口,用户可与他或她的收件箱进行交互。偶尔地,应用702还可自动生成向用户警报很快要发生的会面的发生的弹出式窗口。在另一情况下,应用702执行相片编辑应用。该类型的应用702可生成提供用户可在其中编辑图像的主工作空间的主窗口。应用702还可生成呈现工具和其他资源以供在主工作空间中编辑图像时使用的补充(附属)窗口。
在图7的示例中,在一些时刻,信息收集组件704确定(针对应用702的)其不同窗口在其各虚拟桌面中的放置。信息收集组件可通过向虚拟桌面管理器310质询每一现存的窗口、要求虚拟桌面管理器返回该窗口出现在其上的(诸)虚拟桌面的身份来执行该任务。基于这些询问,信息收集组件704可确定包含主收件箱窗口(在以上电子邮件服务示例的情况下)或主工作空间窗口(在相片编辑示例的情况下)的虚拟桌面。
信息收集组件704可基于任何触发事件来执行其质询。例如,在一些情况下,信息收集组件704可周期性地执行该质询以确定现存的窗口和现存的虚拟桌面之间的映射。在其他情况下,信息收集组件704可在它接收到显示每一新窗口的请求时执行该质询。例如,在电子邮件服务的情况下,信息收集组件704可在它接收到显示提醒消息的请求时执行其询问。相片编辑应用可在它接收到显示附属调色板窗口等的请求时执行其询问。
调用组件706可随后基于信息收集组件704的结论确定在哪里放置窗口。例如,在以上描述的电子邮件服务示例中,假定触发事件涉及提醒消息的接收。信息收集组件704可确定由哪个虚拟桌面显示主收件箱窗口,如果该窗口存在的话。如上所述,信息收集组件704可在提醒窗口的接收之前或以按需的方式(例如,在对提醒窗口的请求的激活之际)作出该确定。随后,调用组件706可将提醒窗口分配给同一虚拟桌面作为主收件箱窗口。在一些情况下,用户可能当前不在与其中出现主收件箱窗口的虚拟桌面进行交互。在该情况下,操作系统304可向用户警报以下事实:已按各种方式(诸如,通过在与另一虚拟桌面相关联的任务栏中生成警报)在该另一虚拟桌面中接收到了新的信息。
在一个实现中,信息收集组件704可使用API来实现其质询技术。该API接受窗口标识符作为输入参数,并且接收虚拟桌面ID作为返回参数。类似地,调用组件706可使用API实现其设置技术,该API也接受窗口标识符作为输入参数。
在第二场景中,假定应用702被实现为具有本地逻辑组件和远程逻辑组件的在线远程应用(如在图5的情况下)。远程逻辑组件可生成窗口以供在本地计算设备处显示。本地逻辑组件可使用虚拟桌面管理器310来维护用于显示由远程逻辑组件生成的窗口的一个或多个虚拟桌面。此外,本地逻辑组件将用户作出的任何改变转发给远程逻辑组件。
在以上环境中,假定虚拟桌面管理器310当前维护至少两个虚拟桌面。进一步假定由远程逻辑组件提供的远程应用会话出于任何原因挂起或锁定,并且随后再稍后恢复。在该会话的恢复之际,远程逻辑组件将尝试重构由本地逻辑组件显示在其各桌面上的所有窗口。然而,在没有图7中描述的解决方案的干预的情况下,本地逻辑组件可通过将窗口全部加载在当前虚拟桌面中来对这些窗口的重新激活作出响应。
为了避免以上结果,在会话锁定的时间,信息收集组件704可用于确定每一窗口及其相关联的虚拟桌面之间的从属关系。随后,当该会话在稍后被还原并且存在重构窗口的请求时,调用组件706可使用信息收集组件704所收集的信息来将每一重构的窗口放置在其合适的虚拟桌面中(而不是将所有窗口都倾泻在当前虚拟桌面中)。
在第三场景中,假定应用702是文字处理应用。在该应用中,用户可使用第一虚拟桌面来打开主工作空间窗口,并随后在主工作空间窗口内创建草稿文档。用户可保持该文档在主工作空间窗口上“打开”,并随后出于任何理由前进到第二虚拟工作空间。在第二虚拟桌面内,用户可随后再次激活应用702。在该时刻,第二虚拟桌面可呈现示出某种类型的该文档正被创建的指示的窗口,诸如通过在草稿文件夹中显示该文档文件的名称。最后,假定用户希望恢复在第二虚拟桌面内编辑该文档。为了这么做,用户可点击在第二虚拟桌面中呈现的窗口内的草稿文件夹中的文件名。
在许多环境中,将同一进行中的文档的两个版本维护在两个不同的虚拟桌面上可被认为是不合需的。为了解决该问题,信息收集组件704可向虚拟桌面管理器310发送查询,要求该虚拟桌面管理器310标识出托管其中该文档保持打开的主工作空间窗口的虚拟桌面。调用组件706可随后基于信息收集组件704所报告的信息执行合并动作。例如,调用组件706可将主工作空间窗口从第一虚拟桌面重新分配到第二虚拟桌面,从而允许用户恢复在第二虚拟桌面内对该文档的编辑。在该时刻,如果用户返回到第一虚拟桌面,他或她将发现该主工作空间桌面不再存在于第一虚拟桌面中。替换地,调用组件706可将用户送回第一虚拟桌面中,而不是在第二虚拟桌面中打开新的窗口。
图8以绘图方式解说了以上描述的第三场景所需要的操作。假定应用702对应于应用A2。第一虚拟桌面对应于桌面VD其他,在桌面VD其他中,用户经由主工作空间窗口(W21,A2)创建文档。接着用户前进到第二虚拟桌面(VD当前),在该第二虚拟桌面中,他或她打开同一应用A2,并点击草稿文件夹中进行中的文档。在该时刻,调用组件706将窗口(W21,A2)从VD其他“移动”到VD当前,如重新分配路径802所指示的。作为一点说明,应注意,图8中描绘的场景实际上涉及将窗口从一个虚拟桌面中移出,并将其放置在另一虚拟桌面中。但在以上阐述的前两个场景中,与(图7中的)第二实现相关联的行为涉及新调用的窗口的分配,而非已经调用的窗口的重新分配。
第三说明性实现
图9示出窗口调用功能104的第三实现。在该情况下,除了应用902外,该图的所有组件由操作系统304实现。更具体地,切换器组件904(对应于操作系统304的一部分)用作用于收集信息并调用窗口实例(而非如图6和7的情况那样调用应用902)的主要代理。
根据触发事件,(切换器组件904的)信息收集组件906从各个源检索上下文信息。所收集的信息可包括例如如维护在操作系统304可访问的某个数据存储908中的关于应用的现存窗口的信息。所收集的信息还可包括如数据存储910中提供的关于虚拟桌面管理器310所维护的现存虚拟桌面的信息。所收集的信息还可包括如维护在数据存储912中的关于应用偏好的信息。该信息在本文中被称为偏好信息。虽然未被示出,但上下文信息可包括上下文信息的附加实例,诸如描述应用902已被调用的方式的调用特性信息。
应用902可在任何时刻(诸如在安装时间(这是应用902被安装在计算设备上的时候)、或在运行时(这是应用902在计算设备上执行的时候)、和/或在某个其他时间)将偏好信息设置在数据存储912中。应用902可使用偏好设置组件914来设置偏好,该偏好设置组件914可被实现为API。
偏好信息提供描述窗口调用功能104应当如何基于一个或多个上下文因素来呈现所请求的窗口的一个或多个规则。例如,如上所述,一个规则可指定依赖于用户已启动应用902的方式的某个呈现行为。
调用组件916接着基于所有所收集的上下文信息来确定如何呈现所请求的窗口。调用组件916随后以规定的方式在所选的虚拟桌面中调用所请求的窗口。调用组件916可按不同方式物理地实现,如图9中由调用组件916的概括虚线描绘通过绘画方式表示的。在第一实现中,切换器组件904(其是操作系统304的组件)实现与调用组件916相关联的操作的至少部分。在第二实现中,应用902例如基于从切换器组件904接收的指令实现与调用组件916相关联的操作的至少部分。还有一些其它实现也是可能的。
注意,图9的架构展现与例如图6的架构相比不同的行为。在图6的情况中,与应用602相关联的应用逻辑是质询虚拟桌面管理器310以收集上下文信息的代理。为了执行该操作,唤醒应用602并等待它执行其数据收集任务因此是必要的。这些操作可导致在终端用户发出调用应用602的命令后对应用602的加载方面的轻微延迟。
相反,在图9的实现中,切换器组件904(重复来说,该切换器组件904是操作系统304的组件)执行收集任务,并且随后决定如何呈现所请求的窗口,而无需牵涉到应用902。窗口调用功能104可通过与图6的实例相比更快速地呈现关于要被调用的应用的至少介绍性信息来利用该特性。作为最终结果,用户可体验图9的实现为提供与图6的示例相比更快速的应用启动时间。
作为关于图9的实现的最后一点,应注意,作为选择用于显示所请求的窗口的虚拟桌面的补充(或替换),偏好信息可控制所请求的窗口的呈现的任何方面。例如,如上所述,偏好信息可控制所请求的窗口在虚拟桌面中的位置、所请求的窗口的尺寸(和/或所请求的窗口的任何其他视觉属性)、所请求的窗口的行为等等。并且重复来说,这些偏好考虑中的任一者可被应用于各窗口在单个虚拟桌面(例如,对于其中仅存在一个现存虚拟桌面的情况)或普通的非虚拟桌面上的呈现。
例如,再次考虑以上引用的情况,在该情况中,应用902执行计算功能。偏好信息可指示:(a)如果用户调用了计算器应用,同时还在使用同一桌面上的第二应用(诸如,税务筹划应用),则该桌面应当以小尺寸格式显示所请求的窗口;(b)但是如果用户调用了计算器应用,而没有调用当前桌面上的任何其他窗口,则当前虚拟桌面应当以较大的尺寸格式显示所请求的窗口。该偏好基于以下假定:如果用户正在使用第二应用(例如,税务筹划应用),则用户可能不希望计算器窗口遮挡可见的虚拟桌面的大部分。
B.说明性过程
图10示出由一个或多个计算设备(402、502)执行的以流程图的形式解释章节A的窗口调用功能104的操作的过程1002。由于在章节A中已经描述了迁移功能的操作之下的原理,在此章节将以概述的方式提出某些操作。
在框1004,窗口调用功能104接收发起对所请求的图形控制元素(例如,窗口)的呈现的触发事件。所请求的图形控制元素与特定应用相关联。在框1006,窗口调用功能104收集上下文信息。在框1008,窗口调用功能104基于上下文信息来标识呈现图形控制元素的优选认定方式。在框1010,窗口调用功能104与(诸)计算设备(402、502)的操作系统304进行交互以根据优选认定方式呈现所请求的图形控制元素。
例如,在框1008,窗口调用功能104可基于上下文信息来选择要呈现该图形控制元素的特定虚拟桌面。在框1010,窗口调用功能104可与操作系统304进行交互以将所请求的图形控制元素呈现在该特定虚拟桌面上。换言之,在该情况下,优选认定方式指定将呈现所请求的窗口的虚拟桌面。但替换地或附加地,优选认定方式可指定所请求的窗口的显示特性(例如,其尺寸、位置、行为、呈现设备等),即使在其中用户仅与单个桌面交互的那些情况下也是如此。
在一个实现中,上下文信息包括以下中的一者或多者:关于与特定应用相关联的现存图形控制元素的信息;关于虚拟桌面管理器所提供的现存虚拟桌面的信息;对应于产生触发事件的方式的调用特性信息;和/或特定应用所指定的应用偏好信息,该应用偏好信息标识为特定应用调用所请求的图形控制元素的优选方式。
在图10的过程中,信息收集组件108和调用组件110在一时间跨度内协作以通过消除其中在用户在被呈现了不合需的虚拟桌面后发现导航到期望虚拟桌面是合适的众多事端来节省(诸)计算设备(402、502)的计算资源(例如,功率)。如以上所解释的,将用户送到不合需的虚拟桌面会消耗功率,因为这么做需要唤醒由该虚拟桌面托管的各应用。
C.代表性计算功能
图11示出了可被用来实现在上述附图中阐述的系统102的任何方面的计算功能1102,诸如窗口调用功能104。更具体地,例如,图11示出的这种类型的计算功能1102可被用于实现图3和4中的本地计算设备(402、502)、图5中的远程计算功能504等中的任一者。在所有情况下,计算功能1102表示一个或多个物理且有形的处理机制。
计算功能1102可包括一个或多个处理设备1104,诸如一个或多个中央处理单元(CPU)、和/或一个或多个图形处理单元(GPU)等。
计算功能1102还可包括用于存储任何类型的信息(诸如代码、设置、数据等)的任何存储资源1106。不作为限制,例如,存储资源1106可包括任意(诸)类型的RAM、任意(诸)类型的ROM、闪存设备、硬盘、光盘等中的任何一者。更一般而言,任何存储资源都可使用用于储存信息的任何技术。此外,任何存储资源都可提供信息的易失性或非易失性保留。此外,任何存储资源都可表示计算功能1102的固定或可移除组件。当处理设备1104执行被储存在任何存储资源或存储资源的组合中的指令时,计算功能1102可执行上述功能中的任何功能。计算功能1102还包括用于与诸如硬盘驱动机构、光盘驱动机构等的任何存储资源进行交互的一个或多个驱动机构1108。
至于术语,任何存储资源1106或存储资源1106的任何组合可被视为计算机可读介质。在多种情况下,计算机可读介质表示某种形式的物理及有形实体。术语计算机可读介质还包括传播信号,例如经由物理管道和/或空气或其他无线介质等来传送或接收的。然而,特定术语“计算可读存储介质”和“计算机可读介质设备”明确地排除传播信号本身,但是包括所有其他形式的计算机可读介质。
计算功能1102还包括用于(通过输入设备1112)接收各种输入,以及用于(通过输出设备1114)提供各种输出的输入/输出模块1110。说明性输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化垫、一个或多个相机、一个或多个深度相机、自由空间姿势识别机构、一个或多个麦克风、语音识别机构、任何移动检测机构(例如,加速度计、陀螺仪等),等等。一种特定输出机制可包括呈现设备1116及相关联的图形用户界面(GUI)1118。其他输出设备包括打印机、一个或多个扬声器、模型生成机构、触觉输出机构、(用于储存输出信息的)归档机构等。计算功能1102还可包括用于经由一个或多个通信管道1122与其他设备交换数据的一个或多个网络接口1120。一条或多条通信总线1124将上述组件通信地耦合在一起。
(诸)通信管道1122可以按任何方式来实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等等,或其任何组合。(诸)通信管道1122可包括由任何协议或协议的组合管控的硬连线的链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
替代地或附加地,前述各章节中所描述的任何功能可至少部分地由一个或多个硬件逻辑组件来执行。作为示例而非限制,计算功能1102可使用以下的一个或多个来实现:现场可编程门阵列(FPGA);专用集成电路(ASIC);应用专用标准产品(ASSP);片上系统的系统(SOC);复杂可编程逻辑器件(CPLD)等。
总之,下面的概述提供了本文中阐述的技术的说明性方面的非穷尽列表。
根据第一方面,本文中描述了用于调用图形控制元素的一个或多个计算设备。所述(一个或多个)计算设备包括被配置成接收发起所请求的图形控制元素的呈现的触发事件的逻辑,所请求的图形控制元素与特定应用相关联,并且在用户与当前虚拟桌面的交互的上下文中被请求。所述(一个或多个)计算设备还包括信息收集组件,所述信息收集组件被配置成收集上下文信息,所述上下文信息至少包括以下:(1)由所述(一个或多个)计算设备存储的关于与特定应用相关联的现存图形控制元素的信息;以及(2)由所述(一个或多个)计算设备存储的关于虚拟桌面管理器所提供的现存虚拟桌面的信息。所述(一个或多个)计算设备还包括调用组件,所述调用组件被配置成:基于所述上下文信息来选择要用于在其中呈现所述图形控制元素的特定虚拟桌面;以及,与所述(一个或多个)计算设备的操作系统进行交互以将所请求的图形控制元素呈现在所述特定虚拟桌面上。总的来说,所述信息收集组件和所述调用组件在一时间跨度内协作以通过消除其中所述用户在被呈现了不合需的虚拟桌面后发现导航到期望虚拟桌面是合适的众多事端来节省所述(一个或多个)计算设备的计算资源。
根据第二方面,所述信息收集组件和所述调用组件至少部分地由所述特定应用实现。
根据第三方面,所述信息收集组件和所述调用组件至少部分地由所述(一个或多个)计算设备的操作系统实现。
根据第四方面,当所述上下文信息指示所请求的图形控制元素对应于所述当前虚拟桌面中已经存在的图形控制元素时,所述调用组件被配置成与所述操作系统进行交互以在所述当前虚拟桌面中激活所述已经存在的图形控制元素。但当所述上下文信息指示所请求的图形控制元素尚未存在于所述当前虚拟桌面中时,所述调用组件被配置成新近将所请求的图形控制元素呈现在所述当前虚拟桌面中,而不管所请求的图形控制元素是否已经存在与另一虚拟桌面中。
根据第五方面,所述上下文信息还包括由所述特定应用指定的偏好信息。所述偏好信息标识调用所述特定应用的所请求的图形控制元素的优选方式。所述调用组件被配置成至少部分地基于所述偏好信息来选择所述特定虚拟桌面。
根据第六方面,所述特定应用将上述偏好信息提供给所述(一个或多个)计算设备的操作系统。
根据第七方面,当所述特定应用被安装在所述(一个或多个)计算设备上时,所述特定应用将所述偏好信息提供给所述操作系统。
根据第八方面,所述上下文信息还包括调用特性信息,所述调用特性信息标识已产生所述触发事件的方式。此处,所述调用组件被配置成至少部分地基于调用特性信息来选择所述特定虚拟桌面。
根据第九方面,上述调用特性信息指示所述触发事件已响应于用户激活特定文件项而被产生。
根据第十方面,所述调用特性信息指示所述触发事件已响应于用户使用特定协议而被产生。
根据第十一方面,所述调用特性信息指示所述触发事件已响应于标识的用户行为而被产生。
根据第十二方面,所述信息收集组件被配置成通过质询所述虚拟桌面管理器以确定所请求的图形控制元素是否存在于所述当前虚拟桌面中来收集所述上下文信息。
根据第十三方面,所述质询组件被配置成通过询问由所述操作系统维护的信息而无需唤醒所述应用来收集所述上下文信息,由此进一步节省了所述(一个或多个)计算设备的计算资源。
根据第十四方面,所述信息收集组件被配置成通过在指定的已经呈现的图形控制元素方面质询所述虚拟桌面管理器以确定正被用于呈现所述已经呈现的图形控制元素的虚拟桌面的身份来收集所述上下文信息。
根据第十五方面,所述调用组件被配置成基于由所述信息收集组件提供的提供托管所述已经呈现的图形控制元素的那个虚拟桌面的身份的信息来指令所述虚拟桌面管理器将所请求的图形控制元素呈现在与所述已经呈现的图形控制元素相同的虚拟桌面上。
根据第十六方面,所述调用组件还被配置成基于所述上下文信息来选择显示特性。所述显示特性标识所请求的图形控制元素被呈现在所述特定虚拟桌面上时的视觉和/或行为特性,和/或描述将用于在其上呈现所述图形控制元素的一个或多个呈现设备的特性。所述调用组件还被配置成根据所述显示特性将所请求的图形控制元素呈现在所述特定虚拟桌面上。
根据第十七方面,本文中描述了由至少一个计算设备实现的用于将图形控制元素呈现在呈现设备的图形用户界面上的方法。所述方法包括:接收发起所请求的图形控制元素的呈现的触发事件,所请求的图形控制元素与特定应用相关联;收集上下文信息;基于所述上下文信息来标识呈现所述图形控制元素的优选认定方式,而无需在若所述特定应用当前休眠的情况下唤醒所述应用;以及,与所述(一个或多个)计算设备的操作系统进行交互以根据所述优选认定方式来呈现所请求的图形控制元素。所述上下文信息包括:由所述(一个或多个)计算设备存储的关于与特定应用相关联的现存图形控制元素的信息;由所述(一个或多个)计算设备存储的关于由虚拟桌面管理器提供的现存虚拟桌面的信息;以及,由所述(一个或多个)计算设备存储的由所述特定应用指定的偏好信息,所述偏好信息标识出针对所述特定应用调用所请求的图形控制元素的优选方式。
根据第十八方面,所述优选认定方式标识要用于在其上呈现所请求的图形控制元素的特定虚拟桌面。
根据第十九方面,所述优选认定方式标识显示特性,所述显示特性标识所请求的图形控制元素被呈现在桌面上时的视觉和/或行为特性,和/或描述将用于在其上呈现所述图形控制元素的一个或多个呈现设备的特性。
根据第二十方面,本文中描述了用于存储计算机可读指令的计算机可读存储介质,所述计算机可读指令在由一个或多个处理设备执行时实现窗口调用功能。所述计算机可读指令包括:被配置成接收发起所请求的图形控制元素的呈现的触发事件的逻辑,所请求的图形控制元素与特定应用相关联,并且在用户与当前虚拟桌面的交互的上下文中被请求。被配置成收集上下文信息的逻辑;被配置成基于所述上下文信息来选择要用于在其上呈现所述图形控制元素的特定虚拟桌面的逻辑;以及,被配置成将所请求的图形控制元素呈现在所述特定虚拟桌面上的逻辑。所述上下文信息至少包括以下中的一者或多者:关于与所述特定应用相关联的现存图形控制元素的信息;关于虚拟桌面管理器所提供的现存虚拟桌面的信息;对应于已产生所述触发事件的方式的调用特性信息;和/或由所述特定应用所指定的偏好信息,所述偏好信息标识出针对所述特定应用调用所请求的图形控制元素的优选方式。第二十一方面对应于以上提到的第一至第二十方面的任何组合(例如,任何排列或子集)。
第二十二方面对应于与第一至第二十一方面相关联的任何方法对应物、装置对应物、系统对应物、装置对应物、计算机可读存储介质对应物、数据结构对应物、制品对应物、图形用户界面呈现对应物等。
最后,尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (15)

1.用于调用图形控制元素的一个或多个计算设备,包括:
被配置成接收发起所请求的图形控制元素的呈现的触发事件的逻辑,所请求的图形控制元素与特定应用相关联,并且在用户与当前虚拟桌面的交互的上下文中被请求;
信息收集组件,所述信息收集组件被配置成收集上下文信息,所述上下文信息至少包括以下:
由所述一个或多个计算设备存储的关于与所述特定应用相关联的现存图形控制元素的信息;以及
由所述一个或多个计算设备存储的关于由虚拟桌面管理器提供的现存虚拟桌面的信息;以及
调用组件,所述调用组件被配置成:
基于所述上下文信息来选择要用于呈现所述图形控制元素的特定虚拟桌面;以及
与所述一个或多个计算设备的操作系统进行交互以将所请求的图形控制元素呈现在所述特定虚拟桌面上,
所述信息收集组件和所述调用组件在一时间跨度内协作以通过消除其中所述用户在被呈现了不合需的虚拟桌面后发现导航到期望虚拟桌面是合适的众多事端来节省所述一个或多个计算设备的计算资源。
2.如权利要求1所述的一个或多个计算设备,其特征在于,
当所述上下文信息指示所请求的图形控制元素对应于所述当前虚拟桌面中已经存在的图形控制元素时,所述调用组件被配置成与所述操作系统进行交互以在所述当前虚拟桌面中激活所述已经存在的图形控制元素,以及
当所述上下文信息指示所请求的图形控制元素尚未存在于所述当前虚拟桌面中时,所述调用组件被配置成新近将所请求的图形控制元素呈现在所述当前虚拟桌面中,而不管所请求的图形控制元素是否已经存在于另一虚拟桌面中。
3.如权利要求1所述的一个或多个计算设备,其特征在于,
所述上下文信息还包括由所述特定应用指定的偏好信息,所述偏好信息标识为所述特定应用调用所请求的图形控制元素的优选方式,以及
其中所述调用组件被配置成至少部分地基于所述偏好信息来选择所述特定虚拟桌面。
4.如权利要求1所述的一个或多个计算设备,其特征在于,
所述上下文信息还可包括调用特性信息,所述调用特性信息标识所述触发事件已被产生的方式,以及
其中所述调用组件被配置成至少部分地基于所述调用特性信息来选择所述特定虚拟桌面。
5.如权利要求1所述的一个或多个计算设备,其特征在于,所述信息收集组件被配置成通过质询所述虚拟桌面管理器以确定所请求的图形控制元素是否存在于所述当前虚拟桌面中来收集所述上下文信息。
6.如权利要求1所述的一个或多个计算设备,其特征在于,所述质询组件被配置成通过查询由所述操作系统维护的信息而无需唤醒所述应用来收集所述上下文信息,由此进一步节省了所述一个或多个计算设备的计算资源。
7.如权利要求1所述的一个或多个计算设备,其特征在于,所述信息收集组件被配置成通过在指定的已经呈现的图形控制元素方面质询所述虚拟桌面管理器以确定正被用于呈现所述已经呈现的图形控制元素的虚拟桌面的身份来收集所述上下文信息。
8.如权利要求7所述的一个或多个计算设备,其特征在于,所述调用组件被配置成基于由所述信息收集组件提供的提供托管所述已经呈现的图形控制元素的那个虚拟桌面的身份的信息来指令所述虚拟桌面管理器将所请求的图形控制元素呈现在与所述已经呈现的图形控制元素相同的虚拟桌面上。
9.一种由至少一个计算设备实现的用于将图形控制元素呈现在呈现设备的图形用户界面上的方法,包括:
接收发起所请求的图形控制元素的呈现的触发事件,所请求的图形控制元素与特定应用相关联;
收集上下文信息,所述上下文信息至少包括以下:
由所述一个或多个计算设备存储的关于与所述特定应用相关联的现存图形控制元素的信息;
由所述至少一个计算设备存储的关于由虚拟桌面管理器提供的现存虚拟桌面的信息;以及
由所述至少一个计算设备存储的由所述特定应用指定的偏好信息,所述偏好信息标识为所述特定应用调用所请求的图形控制元素的优选方式;
基于所述上下文信息来标识呈现所述图形控制元素的优选认定方式,而无需在所述应用当前休眠的情况下唤醒所述应用;以及
与所述至少一个计算设备的操作系统进行交互以根据所述优选认定方式来呈现所请求的图形控制元素。
10.一种用于存储计算机可读指令的计算机可读存储介质,所述计算机可读指令在由一个或多个处理设备执行时实现窗口调用功能,所述计算机可读指令包括:
被配置成接收发起所请求的图形控制元素的呈现的触发事件的逻辑,所请求的图形控制元素与特定应用相关联,并且在用户与当前虚拟桌面的交互的上下文中被请求;
被配置成收集上下文信息的逻辑,所述上下文信息至少包括以下中的一者或多者:
关于与所述特定应用相关联的现存图形控制元素的信息;
关于由虚拟桌面管理器提供的现存虚拟桌面的信息;
对应于已产生所述触发事件的方式的调用特性信息;和/或
由所述特定应用所指定的偏好信息,所述偏好信息标识为所述特定应用调用所请求的图形控制元素的优选方式;
被配置成基于所述上下文信息来选择要用于呈现所述图形控制元素的特定虚拟桌面的逻辑;以及
被配置成将所请求的图形控制元素呈现在所述特定虚拟桌面上的逻辑。
11.如权利要求3所述的一个或多个计算设备,其特征在于,所述特定应用向所述一个或多个计算设备的所述操作系统提供所述偏好信息。
12.如权利要求11所述的一个或多个计算设备,其特征在于,在所述特定应用被安装在所述一个或多个计算设备上时,所述特定应用向所述操作系统提供所述偏好信息。
13.如权利要求1所述的一个或多个计算设备,其特征在于,
所述调用组件还被配置成基于所述上下文信息来选择显示特性,所述显示特性标识所请求的图形控制元素被呈现在所述特定虚拟桌面上时的视觉和/或行为特性,和/或描述将用于呈现所述图形控制元素的一个或多个呈现设备的特性,以及
其中所述调用组件还被配置成根据所述显示特性将所请求的图形控制元素呈现在所述特定虚拟桌面上。
14.如权利要求9所述的方法,其特征在于,所述优选认定方式标识要用于呈现所请求的图形控制元素的特定虚拟桌面。
15.如权利要求9所述的方法,其特征在于,所述优选认定方式标识显示特性,所述显示特性标识所请求的图形控制元素被呈现在桌面上时的视觉和/或行为特性,和/或描述将用于呈现所述图形控制元素的一个或多个呈现设备的特性。
CN201680022332.7A 2015-04-16 2016-03-29 基于上下文信息的动态启动行为 Withdrawn CN107533418A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/689,046 2015-04-16
US14/689,046 US20160306531A1 (en) 2015-04-16 2015-04-16 Dynamic Launch Behavior Based on Context Information
PCT/US2016/024678 WO2016167951A1 (en) 2015-04-16 2016-03-29 Dynamic launch behavior based on context information

Publications (1)

Publication Number Publication Date
CN107533418A true CN107533418A (zh) 2018-01-02

Family

ID=55699837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680022332.7A Withdrawn CN107533418A (zh) 2015-04-16 2016-03-29 基于上下文信息的动态启动行为

Country Status (4)

Country Link
US (1) US20160306531A1 (zh)
EP (1) EP3283947A1 (zh)
CN (1) CN107533418A (zh)
WO (1) WO2016167951A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10955985B2 (en) 2017-10-11 2021-03-23 International Business Machines Corporation Optimizing an arrangement of content on a display of a user device based on user focus

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US5564002A (en) * 1994-08-01 1996-10-08 International Business Machines Corporation Method and apparatus for implementing a virtual desktop through window positioning
US7010755B2 (en) * 2002-04-05 2006-03-07 Microsoft Corporation Virtual desktop manager
US7765143B1 (en) * 2003-11-04 2010-07-27 Trading Technologies International, Inc. System and method for event driven virtual workspace
US20050125739A1 (en) * 2003-11-20 2005-06-09 Thompson Jeffrey W. Virtual desktop manager system and method
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8387048B1 (en) * 2006-04-25 2013-02-26 Parallels IP Holdings GmbH Seamless integration, migration and installation of non-native application into native operating system
US7676761B2 (en) * 2006-06-30 2010-03-09 Microsoft Corporation Window grouping
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
CN101645004A (zh) * 2008-08-04 2010-02-10 优诺威讯国际有限公司 视窗显示的方法
US20100269060A1 (en) * 2009-04-17 2010-10-21 International Business Machines Corporation Navigating A Plurality Of Instantiated Virtual Desktops
US9141260B2 (en) * 2009-10-08 2015-09-22 Red Hat, Inc. Workspace management tool
EP2325737B1 (fr) * 2009-10-28 2019-05-08 Orange Procédé et système de gestion d'une interface graphique pour l'affichage de composants graphiques applicatifs
US9235268B2 (en) * 2010-04-09 2016-01-12 Nokia Technologies Oy Method and apparatus for generating a virtual interactive workspace
US8898567B2 (en) * 2010-04-09 2014-11-25 Nokia Corporation Method and apparatus for generating a virtual interactive workspace
JP4910061B2 (ja) * 2010-06-18 2012-04-04 株式会社東芝 情報端末、そのプログラムおよび方法
US8749484B2 (en) * 2010-10-01 2014-06-10 Z124 Multi-screen user interface with orientation based control
US9519726B2 (en) * 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US9542209B2 (en) * 2012-06-29 2017-01-10 Vmware, Inc. Preserving user profiles across remote desktop sessions
US9513950B2 (en) * 2012-07-25 2016-12-06 Vmware, Inc. Dynamic resource configuration based on context
US9207972B2 (en) * 2013-03-14 2015-12-08 International Business Machines Corporation Meta-application management in a multitasking environment
US20150019728A1 (en) * 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US9378391B2 (en) * 2013-10-11 2016-06-28 Centrify Corporation Method and apparatus for creating switchable desktops with separate authorizations
US10268492B2 (en) * 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
US9766913B2 (en) * 2014-05-30 2017-09-19 Citrix Systems, Inc. Method and system for managing peripheral devices for virtual desktops
CN105516229B (zh) * 2014-10-15 2020-02-28 中兴通讯股份有限公司 一种更新虚拟桌面的方法和装置
US10386995B2 (en) * 2014-12-05 2019-08-20 Apple Inc. User interface for combinable virtual desktops
US9569276B2 (en) * 2015-03-16 2017-02-14 Dell Products L.P. System and method for dynamic user assignment in a virtual desktop environment

Also Published As

Publication number Publication date
WO2016167951A1 (en) 2016-10-20
EP3283947A1 (en) 2018-02-21
US20160306531A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
CN105677431B (zh) 将后台工作和前台工作解耦合
CN104572293B (zh) 基于bs结构的医学影像阅片系统的实现方法
CN103718161B (zh) Web应用体系架构
CN103620548B (zh) 具有增强的应用元数据的存储器管理器
US11288083B2 (en) Computing system providing suggested actions within a shared application platform and related methods
JP5347648B2 (ja) プログラム、情報処理装置及び状態出力方法
CN107111496A (zh) 可定制刀片应用
CN110168537A (zh) 上下文和社交距离感知的快速活性人员卡片
CN107102903A (zh) 用于在保持在情境中的同时共享的可扩展系统动作
US7296050B2 (en) Distributed computing system and method
EP3616080B1 (en) Systems, methods, and apparatuses for providing assistant deep links to effectuate third-party dialog session transfers
US20140143666A1 (en) System And Method For Effectively Implementing A Personal Assistant In An Electronic Network
JP2013541091A (ja) メッセージキュー管理
TW201229788A (en) Companion window experience
CN106375186A (zh) 一种日程分享方法及终端
CN106406494B (zh) 一种处理器调度的方法及终端
CN110249355A (zh) 请勿打扰状态的暴露和基于其的应用行为设置
CN104094299B (zh) 从发布的日历检索可用性信息的方法和设备
EP3262581A1 (en) Opening new application window in response to remote resource sharing
US20200089512A1 (en) Method and Apparatus for Invoking Input Method, Server, and Terminal
CN102970355B (zh) 通过挂起承租人来管理数据中心的容量的方法和设备
CN107533418A (zh) 基于上下文信息的动态启动行为
CN108920083A (zh) 一种输入法应用方法及装置
US8856802B2 (en) Application hibernation
CN105677542B (zh) 一种进度信息显示方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20180102

WW01 Invention patent application withdrawn after publication