CN103168325B - 用于本地用户体验的显示管理 - Google Patents

用于本地用户体验的显示管理 Download PDF

Info

Publication number
CN103168325B
CN103168325B CN201180048406.1A CN201180048406A CN103168325B CN 103168325 B CN103168325 B CN 103168325B CN 201180048406 A CN201180048406 A CN 201180048406A CN 103168325 B CN103168325 B CN 103168325B
Authority
CN
China
Prior art keywords
application
computing device
local
remote
display
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.)
Expired - Fee Related
Application number
CN201180048406.1A
Other languages
English (en)
Other versions
CN103168325A (zh
Inventor
G·莫麦克希洛夫
C·瓦利彻拉
M·英戈莱
K·瓦利彻拉
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN103168325A publication Critical patent/CN103168325A/zh
Application granted granted Critical
Publication of CN103168325B publication Critical patent/CN103168325B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在一些远程应用执行环境中,客户端设备(例如,向其发送应用输出并且在那里执行与应用的用户交互的客户端设备)可以包括用于诸如虚拟键盘、虚拟选择器等触摸输入的本地控件元件。当主机或服务器设备检测到接收焦点的远程应用的可编辑/控件字段时,服务器设备可以指示客户端设备激活本地控件元件,以用于与远程应用的元件的用户交互。客户端设备可以确定修改应用的显示所采用的方式,以解决潜在的显示冲突。例如,本地控件元件可能遮挡或隐藏在客户端设备的显示上的远程应用的一部分。修改应用的显示可以包括滚动应用显示,对应用显示进行放大或缩小,调整应用显示以便进行卷动,以及传送用于填充本地控件元件的值。

Description

用于本地用户体验的显示管理
相关申请的交叉引用
本申请要求于2010年10月5日提交的名为“用于在移动设备上显示的远程应用的本地用户体验(NATIVE USER EXPERIENCE FOR REMOTE APPLICATIONS DISPLAYED ON APHYSICAL LOCATION OF A MOBILE DEVICE.S)”的美国临时申请No.61/389,975的优先权。上述申请的内容通过引用而全部合并于此。
技术领域
此处描述的各方面一般涉及在设备上显示远程执行的应用。例如,各方面涉及在设备上提供本地应用交互体验。
背景技术
包括诸如个人计算机和工作站之类的静止设备和诸如智能电话和平板电脑之类的移动设备的设备可以执行操作系统和适合触摸(例如与触摸输入兼容)的应用。这些操作系统和应用通常允许用户与设计为适于使用触摸屏幕作为输入设备的应用和菜单进行交互。例如,一些应用可以设计为将触摸屏幕作为主输入进行处理,从而使得当可编辑控件或字段被选择或接收焦点时,该事件可以导致虚拟键盘出现。图4A示出了示例的本地移动设备应用,其允许用户经由显示在屏幕上的虚拟键盘向可编辑字段输入信息,并且允许用户使用虚拟选择器或选择器控件从下拉框(例如组合框)进行选择。在这些示例中的每一个中,移动设备的触摸屏幕可以用作输入设备。
在一些实例中,应用可能显示在并未针对触摸屏幕输入编排格式的设备上。例如,在一些情况中,在服务器上远程执行的应用可以远程地显示在设备上,如图4B所示。在图4B中,虚拟键盘在可编辑控件或字段上方显示,从而使得在用户试图向控件输入数据时用户不能看到该控件,因而使得用户输入变得困难。另外,可能需要用户手动激活客户端设备的本地控件元件,而不是提供响应于可编辑区域的选择而自动触发的本地控件元件。从显示在远程设备上的触摸屏幕兼容输入元件也可能产生其他输入和可见性问题。
发明内容
下文中给出了对本公开的简要概述,以提供一些方面的基本理解。它并不旨在识别本公开的重要或关键元素,也不旨在限定本公开的范围。作为下面提供的更详细描述的序言,下面的概述仅以简化形式给出本公开的一些概念。
根据一个或多个方面,远程处理(remoted)应用和本地控件元件的显示可以被管理为使得远程处理应用显示的一个或多个部分不被激活的本地控件元件遮挡或隐藏。在一个示例中,执行用于客户端设备的应用的远程计算设备可以在应用或应用内的控件元件接收到焦点时接收通知。当接收到该通知时,该远程计算设备可以在必要时通知该客户端设备以修改应用的显示(以反映焦点)和/或确定与接收焦点的远程处理应用内的控件元件对应的控件元件类型。另外或备选地,远程计算设备可以指示客户端设备激活对应于所确定控件元件类型的本地控件元件。客户端设备然后可以识别与确定控件元件类型或类别的控件元件匹配的本地控件元件,并且激活该本地控件元件。在一些布置中,客户端设备还可以确定本地控件元件在激活时是否将覆盖或以其他方式遮挡远程处理应用显示的一个或多个部分。如果为是,则客户端设备可以修改当地显示以避免遮挡远程处理应用显示或焦点区域。对应用显示的修改可以包括滚动、缩放、卷动等。
根据另一方面,客户端设备可以向远程计算设备传送确认和更新消息。确认和更新消息可以包括用于本地控件元件的状态信息和与本地控件元件交互的用户通知。
在一些布置中,执行应用的远程计算设备可以确定本地控件元件是否将遮挡应用显示,并且确定修改所述客户端设备的当地显示所采用的方式。
根据另一方面,执行应用的远程计算设备可以向客户端设备传送接收焦点的应用控件元件的值,以用于填充本地控件元件。在一个示例中,如果接收焦点的应用控件元件是下拉菜单,则下拉菜单内的值可以被传送到客户端以用于在客户端设备的本地选择器控件元件中的显示。
根据又一方面,如果客户端设备不具有本地控件元件,则与远程处理(remote)登记了输入或交互的应用的类似,远程计算设备可以产生虚拟控件元件,并且将控件元件远程处理到客户端设备。例如,如果客户端设备不能显示当地软件键盘,则可以显示会话中键盘(例如由服务器远程处理)。会话中键盘的显示可以远程处理(例如图形传送)到客户端设备以供在其上使用。
在下面的附图和描述中提及本公开的这些和其他实施例的细节。本公开的其他特征和优点将从描述和附图显见。
附图说明
本公开通过示例示出并且并局限于附图,在附图中相同的参考标号指示相似的元件,并且在附图中:
图1A示出可以配置成根据此处描述的一个或多个方面提供对于计算设备和在其上执行的应用程序的远程访问的示例网络环境。
图1B和1C是示出根据此处描述的一个或多个方面的示例计算设备的框图。
图2A是示出根据此处描述一个或多个方面用于在外部显示设备上以用户可配置的显示布局显示多个资源的示例系统的框图。
图2B是示出根据此处描述一个或多个方面用于将一个或多个资源的显示映射到一个或多个显示设备的示例系统的框图。
图2C示出根据此处描述的一个或多个方面在外部显示设备上以用户可配置的显示布局显示多个资源的示例界面,其中该用户可配置的显示布局划分成网格。
图2D示出根据此处描述的一个或多个方面在外部显示设备上以用户可配置的动态显示布局显示多个资源的示例界面。
图3A是示出根据此处描述一个或多个方面通过附连到一个更多外部显示设备的移动计算设备所提供的示例屏幕空间的框图。
图3B是示出根据此处描述的一个或多个方面提供多个屏幕空间的示例移动计算设备的框图。
图3C是示出根据此处描述的一个或多个方面通过虚拟图形驱动器管理的多个屏幕空间的示例逻辑表示的框图。
图4A是在移动设备上显示本地执行的应用的示例已知界面。
图4B是在移动设备上显示远程处理应用的示例已知界面。
图4C示出根据此处描述的一个或多个方面在移动设备上显示远程处理应用的示例界面。
图5是示出根据此处描述的一个或多个方面用于变更移动设备上的远程处理应用的显示的示例系统的框图。
图6是示出根据此处描述的一个或多个方面用于变更移动设备上的远程处理应用的显示的示例方法的流程图。
图7是示出根据此处描述的一个或多个方面用于修改远程处理应用显示以适应本地控件元件的激活的方法的流程图。
图8是示出根据此处描述的一个或多个方面用于基于本地控件元件的激活来管理设备上的显示的方法的流程图。
图9A和图9B示出根据此处描述的一个或多个方面其中本地输入元件被激活并且应用显示被修改的用户界面的示例序列。
图10A和图10B示出根据此处描述的一个或多个方面其中本地输入元件被激活并且应用显示被修改的用户界面的另一示例序列。
具体实施方式
可以通过第一计算设备远程地执行应用,以在第二计算设备(例如客户端设备)处使用。通过使用远程处理应用,客户端设备可以通过第一计算设备使用处理能力以执行远程处理应用的功能性和特征。另外,可以在从多个远程位置(例如通过公共和/或专用网络)可访问的位置处来服务数据和应用。
图1A示出包括一个或多个客户机102A-102N(此处统称为“客户机(多个)102”)的示例计算环境101,该一个或多个客户机102A-102N与一个或多个服务器106A-106N(此处统称为“服务器(多个)106”)通信。在客户机(多个)102和服务器106(多个)之间安设有网络。
在一个示例中,计算环境101可以包括安装在服务器(多个)106和客户机(多个)102之间的应用装备(appliance,例如设备或装置)。该应用装备可以管理客户端/服务器连接,并且在一些情况中可以对多个后端服务器之间的客户端连接进行负载均衡。
在一些示例中,客户机(多个)102可以是单个客户机102或单组客户机102,而服务器(多个)106可以是单个服务器106或单组服务器106。在一个示例中,单个客户机102可以与多于一个服务器106通信,而在另一示例中,单个服务器106可以与多于一个客户机102通信。在另一示例中,单个客户机102可以仅与单个服务器106通信。
在一些示例中,客户机102可以由以下术语其中任意一个指代:客户机(多个)102;客户端(多个);客户计算机(多个);客户端设备(多个);客户端计算设备(多个);本地机器;远程机器;客户端节点(多个);端点(多个);端点节点(多个);或第二机器。在一些示例中,服务器106可以由以下术语其中任意一个指代:服务器(多个);本地机器;远程机器;服务器农场(多个);托管计算设备(多个);或第一机器(多个)。
根据一个或多个布置,客户机102可以是虚拟机102C。虚拟机102C可以是任意虚拟机,而在一些配置中,虚拟机102C可以是由XenSolutions、思杰系统、IBM、VMware开发的管理程序(hypervisor)或任意其他管理程序所管理的任意虚拟机。在其他示例中,虚拟机102C可以通过任意管理程序管理,而在另外的示例中,虚拟机102C可以通过在服务器106上执行的管理程序或在客户端102上执行的管理程序管理。
在一些示例中,客户机102可以执行、操作或以其他方式提供应用,诸如:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件;Java小程序;比如软IP电话之类与网际协议语音(VoIP)通信相关联的软件;用于流传输视频和/或音频的应用;用于促进实时数据通信的应用;HTTP客户端;FTP客户端;Oscar客户端;Telnet客户端;或可执行指令的任意其他集合。因此,在至少一些布置中,对应用进行远程处理可以包括客户端设备102接收和显示由在服务器106或其他远程定位的机器或计算设备上远程执行的应用所产生的应用输出。例如,客户端设备102可以在应用窗口、浏览器或其他输出窗口中显示应用输出。在一个示例中,应用是桌面,而在其他示例中,应用是产生桌面的应用。桌面可以包括针对操作系统的实例(其中可以集成本地和/或远程应用)提供用户接口的图形壳。当在此使用时,应用是在操作系统(且可选地,也可以是桌面)实例被装载之后执行的程序。操作系统的每个实例可以是物理的(例如每个设备一个操作系统)或虚拟的(例如运行在单个设备上的OS的多个实例)。每个应用可以在本地设备上执行,或可以在远程设备上(例如被远程处理)执行。应用可以以很多方式来远程处理。在一个示例中,应用可以以在客户端设备上创建窗口所采用的无缝方式进行远程处理,从而使得应用显示看上去就好像它在客户端设备及其桌面上本地运行。在另一示例中,可以以其中桌面被远程处理到客户端设备的窗口化模式提供远程处理应用,并且应用被显示为在远程桌面上执行的应用。也可以实施和使用各种其他远程处理方法和技术。
根据一些方面,服务器106可以执行远程呈现客户端或使用瘦客户端或远程显示协议的其他客户端或程序,以捕获在服务器106上执行的应用所产生的显示输出并且随后向远程客户端102传送应用显示输出。瘦客户端或远程显示协议可以是以下协议(或其他合适协议)中的任意一个:佛罗里达州劳德代尔堡的思杰系统公司制造的独立计算体系结构(ICA)协议;华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
计算环境可以包括多于一个服务器106A-106N,从而使得服务器106A-106N逻辑地和/或物理地一起分组成服务器农场106。在一个示例中,服务器农场106可以包括在地理分散且逻辑上一起分组成服务器农场106的服务器106,或者在另一示例中包括彼此相邻布置并且在逻辑上一起分组成服务器农场106的服务器106。在一些示例中,服务器农场106内的地理分散的服务器106A-106N可以使用WAN、MAN或LAN通信,其中不同地理区域可以表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同邮政编码;不同邻居;不同学校;不同房间;或前述地理位置的任意组合。在一些实施例中,服务器农场106可以作为单个实体管理,而在其他实施例中,服务器农场106可以包括多个服务器农场106。
服务器农场106可以包括执行基本类似类型的操作系统平台(例如,华盛顿州雷德蒙德的微软公司制造的WINDOWS NT、UNIX、LINUX或SNOW LEOPARD)的服务器106。在其他实施例中,服务器农场106可以包括执行第一类型的操作系统平台的第一组服务器106以及执行第二类型的操作系统平台的第二组服务器106。在其他示例中,服务器农场106可以包括执行不同类型的操作系统平台的服务器106。
在一些示例中,服务器106可以是任意服务器类型。在其他示例中,服务器106可以是以下服务器类型其中任意一个:文件服务器;应用服务器;网络服务器;代理服务器;应用装备;网络应用装备;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;SSL VPN服务器;防火墙;web服务器;应用服务器或主应用服务器;执行有效目录的服务器106;或执行提供防火墙功能性、应用功能性或负载均衡功能性的应用加速程序的服务器106。在一些示例中,服务器106可以是包括远程认证拨号用户服务的RADIUS服务器。在服务器106包括应用装备的布置中,服务器106可以是以下制造商其中任意一个制造的应用装备:思杰应用网络集团;银峰系统(Silver Peak Systems)公司;河床技术(Riverbed Technology)公司;F5网络(F5Networks)公司;或瞻博网络(Juniper Networks)公司。一些示例可以包括第一服务器106A,其从客户机102接收请求,向第二服务器106B转发请求,以及使用来自第二服务器106B的响应来响应由客户机102所产生的请求。第一服务器106A可以获取对于客户机102可用的应用的详表以及与托管应用详表内所识别应用的应用服务器106相关联的地址信息。第一服务器106A然后可以使用网络接口给出对于客户端请求的响应,且与客户端102直接通信以向客户端102提供对于所识别的应用的访问。
在一些示例中,服务器106可以执行以下应用中的任意一个:使用瘦客户端协议以向客户端传送应用显示数据的瘦客户端应用;远程显示呈现应用;思杰系统公司的CITRIXACCESS SUITE的任意部分,比如METAFRAME、CITRIX PRESENTATION SERVER、CITRIX XENAPP或CITRIX XENDESKTOP服务器;微软公司制造的MICROSOFT WINDOWS终端服务;或思杰系统公司开发的ICA客户端。另一示例包括作为应用服务器的服务器106,该应用服务器诸如是:诸如微软公司制造的MICROSOFT EXCHANGE之类的提供电子邮件服务的电子邮件服务器;网络或因特网服务器;桌面共享服务器;协作服务器;或任意其他类型的应用服务器。进一步的其他示例包括执行以下类型的托管服务器应用其中任意一个的服务器106:CitrixOnline Division公司提供的GOTOMEETING;加利福利亚的Santa Clara市的WebEx公司提供的WEBEX;微软公司提供的Microsoft Office LIVE MEETING。
在一些示例中,客户机102是寻求对于服务器106提供的资源的访问的客户端节点。在其他示例中,服务器106可以为客户端102或客户端节点提供对于托管资源的访问。在一些示例中,服务器106用作主节点,从而使得它与一个或多个客户端102或服务器106通信。在一些示例中,主节点可以识别与托管被请求应用的服务器106相关联的地址信息且向一个或多个客户端102或服务器106提供。在其他示例中,主节点可以是服务器农场106、客户端102、客户端节点102的集群或应用装备。
一个或多个客户端102和/或一个或多个服务器106可以通过安设在计算环境101内的机器和应用装备之间的网络来传送数据。网络104可以包括一个或多个子网,且可以安装在包括在计算环境101内的客户端102、服务器106、计算机和应用装备的任意组合之间。在一些示例中,网络104可以是:局域网(LAN);城域网(MAN);广域网(WAN);包括位于客户机102和服务器106之间的多个子网络104的主干网104;具有专用子网104的主干公共网络104;具有公共子网104的主干专用网络104;或具有专用子网104的主干专用网络104。另外的其他示例包括如下网络104,该网络104可以是以下网络类型中的任意一个:点到点网络;广播网络;电信网络;数据通信网络;计算机网络;ATM(异步传输模式)网络;SONET(同步光网络)网络;SDH(同步数字分层)网络;无线网络;有线网络;或包括无线链路的网络104,其中无线链路可以是红外通道或卫星频带。在不同示例内,网络104的网络拓扑可以不同,可能的网络拓扑包括:总线网络拓扑;星型网络拓扑;环形网络拓扑;基于中继器的网络拓扑;或分层星型网络拓扑。附加示例可以包括使用协议在移动设备之间通信的移动电话网络的网络104,其中协议可以是以下协议中的任意一个:AMPS;TDMA;CDMA;GSM;GPRS UMTS;或能够在移动设备之间传送数据的任意其他协议。
图1B示出了一个示例的计算设备100。图1A中示出的客户机102和服务器106可以被部署为此处示出和描述的计算设备100或任意其他计算设备的任意示例和/或在其上执行。计算设备100内包括有与以下组件通信的系统总线150:中央处理单元121;主存储器122;存储器128;输入/输出(I/O)123;显示设备124A-124N;安装设备116;以及网络接口118。在一个示例中,存储器128包括操作系统、软件例程以及客户端代理120。在一些示例中,I/O控制器123进一步连接到键盘126和指针设备127。其他示例包括连接到输入/输出设备130A-130N中的一个或多个的I/O控制器123。
图1C示出计算设备100的一个示例,其中图1A中示出的客户机102和服务器106被部署为此处示出和描述的计算设备100或任意其他计算设备的任意示例和/或在其上执行。计算设备100内包括有与以下组件通信的系统总线150:桥170和第一I/O设备130A。在另一示例中,桥170进一步与主中央处理单元121通信,其中中央处理单元121还可以与第二I/O设备130B、主存储器122和缓存存储器140通信。中央处理单元121中包括有I/O端口、存储器端口130和/或主处理器。
计算机100的示例可以包括通过以下组件配置中的任意一个来表征的中央处理单元121:逻辑电路,其响应于并且处理从主存储器单元122取得的指令;微处理器单元,诸如:英特尔公司制造的微处理器单元、摩托罗拉公司制造的微处理器单元;加利福利亚的圣克拉拉市的全美达公司制造的微处理器单元;RS/6000处理器,诸如国际商业机器制造的那些;诸如高级微设备制造的那些处理器;或者逻辑电路的任意其他组合。中央处理单元122的另外其他示例可以包括以下任意组合:微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元、或者具有多于一个处理核的中央处理单元。
尽管图1C示出了包括单个中央处理单元121的计算设备100,但是在一些示例中,计算设备100可以包括一个或多个处理单元121。在这些示例中,计算设备100可以存储或执行固件或其他可执行指令,当被执行时,所述固件或可执行指令引导一个或多个处理单元121同时执行指令,或针对单条数据同时执行指令。在其他示例中,计算设备100可以存储或执行固件或其他可执行指令,当被执行时,所述固件或可执行指令引导一个或多个处理单元每个均执行一组指令的一部分。例如,每个处理单元121可以被指令为执行程序的一部分或程序内的特定模块。
在一些示例中,处理单元121可以包括一个或多个处理核。例如,处理单元121可以具有两个核、四个核、八个核等。在一个示例中,处理单元121可以包括一个或多个并行处理核。在一些示例中,处理单元121的处理核可以将可用存储器作为全局地址空间进行访问,或者在其他示例中,计算设备100内的处理器可以被分段且分配给处理单元121内的特定核。在一个示例中,计算设备100中的一个或多个处理核或处理器每个均可以访问本地存储器。在另外一个示例中,可以在一个或多个处理器或处理器核之间共享计算设备100内的存储器,而其他存储器可以被特定处理器或处理器的子集访问。在计算设备100包括多于一个处理单元的示例中,多个处理单元可以被包括在单个集成电路(IC)中。在一些示例中,这些多个处理器可以通过内部高速总线链接在一起,该内部高速总线可以被称为元件互连总线。
在计算设备100包括一个或多个处理单元121或处理单元121包括一个或多个处理核的示例中,该处理器可以针对多条数据同时执行单个指令(SIMD),或在其他示例中可以针对多条数据同时执行多个指令(MIMD)。在一些示例中,计算设备100可以包括任意数目的SIMD和MIMD处理器。
在一些示例中,计算设备100可以包括图形处理器或图形处理单元(未示出)。图形处理单元可以包括软件和硬件的任意组合,并且还可以输入图形数据和图形指令、根据输入的数据和指令渲染图形并且输出渲染的图形。在一些示例中,图形处理单元可以被包括在处理单元121中。在其他示例中,计算设备100可以包括一个或多个处理单元121,其中至少一个处理单元121专用于处理和渲染图形。
在一个示例中,计算机100可以包括经由还已知为后端总线的辅助总线与缓存存储器140通信的中央处理单元121,而在另一示例中,计算机100的另一示例包括可以经由系统总线150与缓存存储器通信的中央处理单元121。在一些示例中,本地系统总线150也可以被中央处理单元使用以与多于一种类型的I/O设备130A-130N通信。在一些示例中,本地系统总线150可以是以下类型的总线中的任意一个:VESA VL总线;ISA总线;EISA总线;微通道体系结构(MCA)总线;PCI总线;PCI-X总线;PCI-Express总线或NuBus。备选地或另外地,计算机100可以包括I/O设备130A-130N,该I/O设备130A-130N是与中央处理单元121通信的视频显示器124。计算机100的另外其他版本包括经由以下连接中的任意一个连接到I/O设备130A-130N的处理器 121:HyperTransport、Rapid I/O或InfiniBand。计算机100的其他示例包括使用局域互连总线与一个I/O设备130A通信且使用直连与第二I/O设备130B通信的处理器121。
在一些示例中,计算设备100包括主存储单元122和缓存存储器140。缓存存储器140可以是任意存储器类型,且在一些示例中可以是以下类型的存储器中的任意一个:SRAM;BSRAM或EDRAM。其他示例包括缓存存储器140和主存储器单元122,它们可以是以下类型的存储器中的任意一个:静态随机存取存储器(SRAM)、突发式SRAM或异步突发式SRAM(BSRAM);动态随机存取存储器(DRAM);快速页切换模式RAM(FPM DRAM);增强DRAM(EDRAM);扩展数据输出RAM(EDO RAM);扩展数据输出DRAM(EDO DRAM);突发式扩展数据输出DRAM(BEDO DRAM);增强DRAM(EDRAM);同步DRAM(SDRAM);JEDEC SRAM;PC100SDRAM;双倍数据率SDRAM(DDR SDRAM);增强SDRAM(ESDRAM);SyncLink DRAM(SLDRAM);Direct Rambus DRAM(DRDRAM);铁电RAM(FRAM);或任意其他类型的存储器。其他示例包括可以经由以下来访问主存储器122的中央处理单元121:系统总线150;存储器端口103;或允许处理单元121访问存储器122的任意其他连接;总线或端口。
在一个或多个布置中,计算设备100可以提供对于以下安装设备116中的任意一个的支持:CD-ROM驱动、CD-R/RW驱动、DVD-ROM驱动、各种格式的磁带驱动、USB驱动,可引导介质、可引导CD、用于诸如的GNU/Linux分发的可引导CD、硬盘驱动或适于安装应用或软件的任意其他类型的设备。在一些示例中,应用可以包括客户端代理120或客户端代理120的任意部分。计算设备100还可以包括存储设备128,该存储设备128可以是一个或多个硬盘驱动或独立磁盘的一个或多个冗余阵列;其中存储设备被配置成存储操作系统、软件、程序应用或客户端代理120的至少一部分。计算设备100还可以包括用作存储设备128的安装设备116。
计算设备100还可以包括网络接口118,以通过各种连接而接口连接到局域网(LAN)、广域网(WAN)或因特网器,所述各种连接包括但不限于标准电话线,LAN或WLAN链接(例如 802.11,T1,T3,56kb,X.25,SNA,DECNET)、宽带连接(例如ISDN、帧中继、ATM、千兆比特以太网、SONET上以太网)、无线连接或上述连接其中任意一个或全部的某种组合。连接也可以使用各种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)建立。计算设备100的一个版本包括能够经由任意类型或形式的网关或隧道协议与附加计算设备100'通信的网络接口118,所述任意类型或形式的网关或隧道协议诸如是安全套接字层(SSL)或传输层安全(TLS)或思杰系统公司制造的Citrix网关协议。网络接口118的版本可以包括以下之中任意一个:嵌入式网络适配器、网络接口卡;PCMCIA网卡;卡总线网络适配器;无线网络适配器;USB网络适配器;调制解调器;或适于将计算设备100接口连接到网络的、能够通信并且执行此处描述的方法和系统的任意其他设备。
根据一个或多个方面,计算设备100可以包括以下I/O设备130A-130N中的任意一个:键盘126;指点设备127;鼠标;轨迹板;光笔;轨迹球;麦克风;绘图板;视频显示器;扬声器;喷墨打印机;激光打印机和热升华打印机;或能够执行此处描述的方法和系统的任意其他输入/输出设备。在一些示例中,I/O控制器123可以连接到多个I/O设备103A-103N,以控制一个或多个I/O设备。在一些示例中,I/O设备130A-130N可以被配置成提供存储或安装介质116,而其他设备可以提供用于接收USB存储设备的通用串行总线(USB)接口,诸如Twintech Industry制造的设备的USB闪存驱动线。另外或备选地,计算设备100可以包括I/O设备130,该I/O设备130可以是系统总线150和外部通信总线之间的桥,所述总线诸如是:USB总线;Apple桌面总线;RS-232串行连接;SCSI总线;FireWire总线;FireWire 800总线;以太网总线;AppleTalk总线;千兆比特以太网总线;异步传输模式总线;HIPPI总线;超HIPPI总线;SerialPlus总线;SCI/LAMP总线;FibreChannel总线;或串行连接的小计算机系统接口总线。
在一些示例中,计算机100可以连接到多个显示设备124A-124N,在其他示例中,计算设备100可以连接到单个显示设备124,而在另外的其他示例中,计算设备100连接到属于相同类型或形式的显示器的显示设备124A-124N,或连接到属于不同类型或形式的显示设备。显示设备124A-124N的示例可以通过以下支持或实现:一个或多个I/O设备130A-130N;I/O控制器123;多个I/O设备130A-130N(多个)与I/O控制器123的组合;能够支持显示设备124A-124N的硬件和软件的任意组合;用于接口连接、通信、连接或以其他方式使用显示设备124A-124N的任意类型和/或形式的视频适配器、视频卡、驱动器和/或库。在一些示例中,计算设备100可以被配置成使用一个或多个显示设备124A-124N,这些配置包括:使得多个连接器接口连接到多个显示设备124A-124N;具有多个视频适配器,每个视频适配器连接到显示设备124A-124N中的一个或多个;使得操作系统被配置成支持多个显示设备124A-124N;使用包括在计算设备100中的电路和软件以便连接到并且使用显示设备124A-124N;以及执行主计算设备100和多个辅助计算设备上的软件,以使得主计算设备100能够将辅助计算设备的显示器作为用于主计算设备100的显示设备124A-124N来使用。计算设备100的另外其他示例可以包括由多个辅助计算设备提供且经由网络连接到主计算设备100的多个显示设备124A-124N。
根据一个或多个布置,计算机100可以执行任意操作系统,包括:诸如WINDOWS3.x;WINDOWS 95;WINDOWS 98;WINDOWS 2000;WINDOWS NT 3.51;WINDOWS NT 4.0;WINDOWSCE;WINDOWS XP;和WINDOWS VISTA之类MICROSOFT WINDOWS操作系统的版本;Unix和Linux操作系统的不同版本;苹果计算机制造的MAC OS的任意版本;国际商业机器制造的OS/2;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专属操作系统;用于移动计算设备的任意操作系统;或任意其他操作系统。在一些示例中,计算机100可以执行多个操作系统。例如,计算机100可以执行PARALLELS或的另一可视化平台,该PARALLELS或另一可视化平台可以执行或管理执行第一操作系统的虚拟机,而计算机100执行不同于第一操作系统的第二操作系统。
计算机100可以在以下计算设备中的任意一个中实施:计算工作站;台式计算机;膝上或笔记本电脑;服务器、手持式计算机(例如,诸如Apple Computer制造的iPad和iPad之类的平板电脑);移动电话;便携式电信设备;媒体播放设备;游戏系统;移动计算设备;上网本;苹果计算机制造的IPOD设备系列的设备;索尼公司制造的PLAYSTATION设备系列其中任意一个;Nintendo公司制造的Nintendo设备系列中的任意一个;微软公司制造的XBOX设备系列中的任意一个;或者能够通信且具有足够的处理器能力和存储器容量来执行此处描述的方法和系统的任意其他类型或形式的计算设备、电信设备或媒体设备。在其他示例中,计算机100可以是诸如以下移动设备中任意一个的移动设备:支持JAVA的蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100,它们全都由摩托罗拉公司制造;京瓷制造的6035或7135;三星电子有限公司制造的i300或i330;Palm公司制造的TREO 180、270、600、650、680、700p、700w或750智能电话;具有不同处理器、操作系统和与设备相一致的输入设备的任意计算设备;或配置成执行此处描述的方法和系统的任意其他移动计算设备。在另外其他示例中,计算设备100可以是以下移动计算设备中的任意一个:黑莓的任意一个系列或移动研究有限公司制造的其他手持式设备;苹果公司制造的iPhone;Palm Pre;口袋式PC;口袋式PC电话;或任意其他手持式移动设备。
在一些示例中,计算设备100可以具有不同处理器、操作系统和与设备相一致的输入设备。例如,在一个示例中,计算设备100是Palm公司制造的TREO 180、270、600、650、680、700p、700w或750智能电话等。在这些示例中的一些中,TREO智能电话在PalmOS操作系统的控制下操作,且包括指示笔输入设备以及5向导航器设备。
根据一个或多个配置,计算设备100是移动设备,诸如是支持JAVA的蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100,它们全都由伊利诺伊州的邵姆堡的摩托罗拉公司制造;日本东京的京瓷制造的6035或7135;或韩国首尔的三星电子有限公司制造的i300或i330。在一些示例中,计算设备100是芬兰的诺基亚制造或瑞典隆德的索尼爱立信移动通信公司制造的移动设备。
在一些示例中,计算设备100可以是黑莓手持式或智能手机智能手机,诸如移动研究有限公司制造的设备,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓Pearl 8100。在另外的其他示例中,计算设备100是智能手机,口袋式PC、口袋式PC电话或支持Microsoft Windows Mobile软件的任意手持式移动设备。此外,计算设备100可以是任意工作站、台式计算机、膝上或笔记本电脑、服务器、手持式计算机、移动电话、任意其他计算机、或能够通信且具有执行此处描述的操作的足够处理器能力和存储器容量的其他形式的计算设备或电信设备。
另外或备选地,计算设备100可以是数字音频播放器。例如,计算设备100是诸如加利福利亚州的库珀蒂诺的苹果机计算机制造的Apple IPOD、IPOD Touch、IPOD NANO和IPODSHUFFLE设备线之类的数字音频播放器。在这些示例中的另外一些中,数字音频播放器可以用作便携式媒体播放器和海量存储设备二者。在其他示例中,计算设备100是数字音频播放器,诸如纽约里奇菲尔德公园的美国三星电子制造的DigitalAudioPlayer Select MP3播放器,或者伊利诺伊州的邵姆堡的摩托罗拉公司制造的摩托罗拉m500或m25数字音频播放器。在其他示例中,计算设备100可以是便携式媒体播放器,诸如创新科技公司制造的ZenVision W、Zen Vision系列、Zen便携式媒体中心设备或MP3播放器的数字MP3线。在另外的其他示例中,计算设备100可以是支持如下文件格式的便携式媒体播放器或数字音频播放器,所述文件格式包括但不限于MP3、WAV、M4A/AAC、WMA保护AAC、AIFF、Audible audiobook、苹果无损音频文件格式以及.mov、.m4v和.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
备选地或另外,计算设备100可以包括设备的组合,诸如移动电话与数字音频播放器或便携式媒体播放器组合。在这些示例中的一个中,计算设备100是组合数字音频播放器和移动电话的摩托罗拉RAZR或摩托罗拉ROKR线。在这些示例中的另一个中,计算设备100是加利福利亚州库珀蒂诺的苹果计算机制造的iPhone智能电话。
应用显示管理
现在参考图2A,该框图示出了用于在一个或多个显示设备上显示多个资源的示例系统。该系统包括可以与一个或多个外部显示设备202a-n通信的移动计算设备102。图2A的示例示出具有本地显示器201的移动计算设备102,不过也可以使用没有本地显示器的设备。移动计算设备102执行多个资源204a-n(统称为204)。窗口管理系统206和虚拟图形驱动器208以用户可配置的显示布局管理与多个资源204中的每一个相关联的输出数据的显示的位置和大小。在很多示例中,移动计算设备102向外部显示设备202传送与多个资源204中的每一个相关联的输出数据。在这些示例中的一些中,移动计算设备102在建立与外部显示设备202的连接时传送输出数据。备选地或另外地,移动计算设备102向设备的本地显示器201传送与多个资源204中的每一个相关联的输出数据。例如,移动计算设备102可以仅向设备的本地显示器传送输出数据,或仅向外部显示设备202a-n中的一个或多个传送输出数据。在一些示例中,移动计算设备102向本地显示器201传送与多个资源204中的某些相关联的输出数据,并且向外部显示设备202a-n传送与多个资源204中的其他相关联的输出数据。
移动计算设备102可以配置成执行多个资源204。在一个示例,移动计算设备102是如上结合图1A-1C描述的客户端102。在另一示例中,移动计算设备102显示与由移动计算设备102执行的多个资源204a-n中的资源204a相关联的输出数据。在一些示例中,移动计算设备102显示与多个资源204中的每一个相关联的输出数据。
多个资源204中的资源可以包括但不限于:数据文件、可执行文件、配置文件、应用、桌面环境(本身可以包括供用户执行的多个应用)、计算环境图像(诸如虚拟机图像)和/或操作系统软件或执行计算环境图像所需的其他应用。
根据一个或多个布置,移动计算设备102包括窗口管理服务206,允许外部显示设备202显示与移动计算设备102上执行的多个资源204中的每一个相关联的输出数据。与允许在本地显示器201或外部显示设备202上排他地查看一个资源204的输出相反,窗口管理服务206还可以允许基本同时在外部显示设备202或在本地显示器201上查看在移动计算设备102上运行的多个资源。在一个示例中,窗口管理服务206与虚拟图形驱动器208结合,管理在外部显示设备202和本地显示器201上显示的窗口的显示布局。在一些示例中,虚拟图形驱动器208是管理虚拟屏幕帧缓冲器的驱动器级组件,该管理虚拟屏幕帧缓冲器存储将在移动计算设备102上的本地显示器201或外部显示设备202上显示的输出数据。窗口管理服务206可以与虚拟图形驱动器208结合,进一步管理用于显示输出数据的屏幕空间的边界和大小以及在哪个显示设备上显示输出数据。
在一些示例中,外部显示设备202接收与多个资源204中的每一个相关联的输出数据,且以用户可配置的显示布局显示输出数据。在一个示例中,外部显示设备202包括向其连接移动计算设备102的坞站。在另一示例中,外部显示设备202包括例如经由蓝牙、Wi-Fi或其他网络协议用于与移动计算设备102无线通信的接收器,如上面结合图1A-1C所描述。在另一示例中,外部显示设备202可以是上面结合图1B-1C描述的显示设备124。
现在参考图2B,该框图示出用于在一个或多个显示设备201和/或202上映射移动计算设备102的一个或多个资源204的显示的示例系统。在各个示例中,窗口管理服务206管理虚拟屏幕空间210。虚拟屏幕空间210可以映射到本地显示器201以及一个或多个外部显示设备202。窗口管理服务206可以在虚拟屏幕空间210上定位与一个或多个资源204的用户界面相关联的输出数据,以指定将在哪里显示每个用户界面。在一些示例中,窗口管理服务206根据用户偏好定位输出数据。在附加示例中,窗口管理服务206根据策略定位输出数据。在各个示例中,窗口管理服务206基于与输出数据相关联的资源204定位输出数据。
窗口管理服务206与虚拟图形驱动器208通信,以向本地显示器201和一个或多个外部显示设备202传送与资源204的用户界面相关联的输出数据。在一些示例中,窗口管理服务206可以从虚拟屏幕空间210向虚拟图形驱动器208传送输出数据和相关坐标。在各个示例中,虚拟图形驱动器208在虚拟屏幕帧缓冲器中存储输出数据。在很多示例中,虚拟图形驱动器208向本地显示器201和外部显示设备202传送虚拟屏幕帧缓冲器中的条目。在很多示例中,虚拟图形驱动器208基于帧缓冲器中条目的位置向本地显示器201或外部显示设备202传送虚拟屏幕帧缓冲器中的条目。
现在参考图2C,用户界面示出示例的用户可配置的显示布局,其中外部显示设备202显示资源204的输出数据。在该示例中,资源204的输出数据以网格显示布局显示。网格显示布局可以包括布置中的一个或多个单元。单元可以显示与资源相关联的输出数据。在一些示例中,多于一个单元显示与相同资源相关联的输出数据。
另外,在一些示例中,单元具有均匀大小,而在其他示例中,单元具有不同大小。单元可以以任意配置布置。在一些示例中,单元可以按照行、列或按照两者进行布置。单元可以具有与网格中的单元位置相关联的描述符。该描述符可以指示单元在行中的位置。在图2C中示意的示例中,用于资源204a的单元可以具有描述符“1-1”、用于资源204b的单元可以具有描述符“1-2”,用于资源204c的单元可以具有描述符“1-3”,用于资源204d的单元可以具有描述符“2-1”,并且用于资源204d的单元可以具有描述符“2-2”。在其他示例中,单元可以被编号,例如“单元1”、“单元2”等。然而,可以使用选择本领域技术人员已知的描述符的任意系统。
在各个示例中,窗口管理服务206根据在本地显示器201或外部显示设备202上显示的资源204配置网格显示布局。在一些示例中,服务206根据被显示的资源204的数目配置网格显示布局。在其他示例中,服务206在资源204的用户界面中根据内容的大小和数量配置网格显示布局。例如,如果外部显示设备202将显示具有可比内容数量的4个资源,则窗口管理服务206可以使用4个均匀单元配置网格显示布局。在另一示例中,如果外部显示设备202将显示4个资源并且一个资源包括三倍于其他资源的内容,则窗口管理服务206可以在第一行中使用三个均匀单元并在第二行中使用单个单元来配置网格显示布局。第二行中的单个单元可以是第一行中单元的宽度的三倍。在各个示例中,窗口管理服务206可以配置网格显示布局,以预留用于显示关于被显示资源的信息(诸如资源的菜单)的单元。在很多示例中,窗口管理服务206可以配置网格显示布局,以预留用于允许用户配置网格显示布局的单元。
现在参考图2D,用户界面示出提供动态显示布局的示例用户可配置的显示布局,其中外部显示设备202显示与多个资源204相关联的输出数据。在该示例中,显示用于资源204的输出数据的外部显示设备202上的窗口可以被动态地定位和调整大小。窗口管理服务206可以根据策略、资源204或任意其他方法将针对资源的用户接口定位在缺省位置且选择缺省大小。窗口管理服务206可以对重叠的用户界面进行排序,使得较高排序的用户界面遮挡较低排序的用户界面。窗口管理服务206可以向虚拟图形驱动器208传送反映隐藏的输出数据。用户例如可以通过点击和拖拽窗口或窗口边缘重新定位窗口或重新调整窗口的大小。在一些示例中,虚拟图形驱动器208可以检测用户对窗口做出的改变,且向窗口管理服务206传送关于用户对窗口做出的改变的信息。窗口管理服务206可以处理变化且向虚拟图形驱动器208传送更新的输出数据。在一些示例中,用户将针对资源204的用户界面移动到本地显示器201或外部显示设备202上的任意位置。在一些示例中,用户将针对资源204的用户界面移动到不同显示设备。在一些示例中,更新的输出数据指示一个用户界面大小增加,或位置已经被调节为遮挡另一用户界面。在其他示例中,更新的输出数据指示一个用户界面大小减小,或位置已经被调节为得另一用户界面的更多部分将可见。
现在参考图3A,框图示出由附接到一个或多个外部显示设备的移动计算设备提供的示例虚拟屏幕空间210。如图3A所示,移动计算设备102包括虚拟图形驱动器208和虚拟屏幕210。虚拟屏幕210包括多个虚拟屏幕空间310和312a-n。虚拟屏幕空间310可以是用于移动计算设备102上的本地显示器201的本地显示屏幕空间。其他虚拟屏幕空间312a-n可以是对应于外部显示设备202的显示的扩展屏幕空间。窗口管理服务206和虚拟图形驱动器208管理虚拟屏幕210。在一个示例中,虚拟图形驱动器208使用虚拟屏幕帧缓冲器来管理移动计算设备的本地显示器201并改变本地显示器201的屏幕分辨率。在另一示例中,虚拟图形驱动器208使用虚拟屏幕帧缓冲器来管理扩展屏幕空间312并改变扩展屏幕312的分辨率。
在一些示例中,虚拟图形驱动器208分配并管理多个虚拟屏幕空间310、312a-n以及虚拟屏幕帧缓冲器。在这些示例中的一些中,每个虚拟屏幕空间和虚拟屏幕帧缓冲器具有独立于其他屏幕空间和帧缓冲器的分辨率。在这些示例中的一个中,与多个资源204中的每一个相关联的输出数据可以驻留在虚拟屏幕空间310、312a-n中的任意一个中。在这些示例中的另一个例中,取决于设备的能力,扩展屏幕空间312a-n中的每一个与至少一个外部显示设备202相关联。
在各个示例中,窗口管理服务206和虚拟图形驱动器208分配和管理外部显示设备202上与多个资源相关联的输出数据的显示。例如,与资源204a相关联的输出数据显示在移动计算设备102上,与资源204b相关联的输出数据显示在外部显示设备202a上,且与资源204c相关联的输出数据显示在另一外部显示设备202b上。在这些示例中的另一个中,窗口管理设备206识别外部显示设备202其中之一,以用于基于资源204a的类型显示由资源204a产生的输出数据。例如,窗口管理服务206可以确定呈现视频的资源类型可以显示在电视屏幕上,而呈现文字处理应用的资源类型可以呈现在膝上电脑的显示器上。
现在参考图3B,框图示出为虚拟屏幕210提供变化分辨率的虚拟屏幕空间310、312a-n的示例移动计算设备102。在该示例中,虚拟屏幕210包括本地显示屏幕空间310,其对应于具有320像素×240像素的分辨率的移动计算设备102的本地显示器201。虚拟屏幕210还包括:扩展屏幕312a,其对应于具有1024像素×768像素的分辨率的外部显示设备202的显示;扩展屏幕312n-1,其对应于具有800像素×600像素的分辨率的外部显示设备202的显示;以及扩展屏幕312n,其对应于具有640像素×480像素的分辨率的外部显示设备202的显示。在很多示例中,虚拟屏幕210可以包括本地显示屏幕空间310和任意数目的任意分辨率的扩展屏幕312。整个虚拟屏幕空间210可以映射到单个虚拟屏幕帧缓冲器,不过也可以使用映射到多个缓冲器的示例。
现在参考图3C,该框图示出了由虚拟图形驱动器管理的多个虚拟屏幕空间的示例逻辑表达。在该示例中,虚拟图形驱动器208管理虚拟屏幕帧缓冲器中具有不同分辨率的多个虚拟屏幕空间。在该示例中,移动计算设备的本地显示器201是主显示,且对应于扩展屏幕312a的外部显示设备202是辅助显示。在各个示例中,与本地显示屏幕空间310上的资源204相关联的输出数据将显示在本地显示器201上,且与扩展屏幕空间312a上的资源204相关联的输出数据将显示在与扩展屏幕空间312a相关联的外部显示设备202上。在其他示例中,与资源204相关联的所有输出数据可以显示在本地显示器201上。在另外的其他布置中,与资源204相关联的所有输出数据可以显示在外部显示设备(诸如外部显示设备202)上。
提供用于远程处理应用的本地用户体验
图5示出示例系统,其中在通过诸如移动设备102的客户端设备提供显示和用户交互的同时,可以在服务器上远程执行应用。因此,用户可以在客户端设备处查看远程处理应用(例如,由服务器(例如远程即上上501)远程执行)且与之交互,而无需安装或存储在客户端设备上的应用和/数据。图5的系统可以包括配置成执行和/或存储一个或多个资源204(诸如在移动计算设备102上执行的应用)的移动计算设备102(与图2B所示类似)。在一些示例中,至少一个资源可以是在移动设备102上执行的操作系统,且一个或多个其他资源可以在操作系统的上下文中执行。移动设备102还可以执行窗口管理服务206,该窗口管理服务206可以与移动设备102上执行的其他应用通信,且在一些示例中可以与虚拟图形驱动器208以及在移动设备102上执行的资源或应用204通信。移动计算设备102还可以执行虚拟图形驱动器208,且可以存储用于产生虚拟屏幕空间210的缓冲器,所述缓冲器可以包括用于本地显示屏幕空间210a的缓冲器。移动设备102可以与移动设备102的本地显示器201通信,该本地显示器201上可以显示由资源204产生的应用输出。移动设备102还可以与远程计算机501通信,该远程计算机501可以执行一个或多个资源505A-505N(统称为远程资源505),在一些实示例中,该一个或多个资源505A-505N可以是远程应用505。远程计算机501还可以执行远程处理客户端510。在下面更详细讨论的一个或多个布置中,远程应用505可以通过远程计算机执行,以在移动设备102处使用。当一个或多个远程应用505被远程计算机执行以在移动设备102使用时,这些应用可以被认为是远程处理应用。
根据一个或多个布置,在移动设备102上执行的资源204和/或资源505A-505N可以是配置成接受触摸屏幕输入的数据的应用。例如,应用可以是典型地不从触摸屏幕接收数据的应用的修改版本。这些修改的应用204可以接收用户经由移动设备102的触摸屏幕输入的数据,且可以被修改为提供典型的触摸屏幕输入功能,比如虚拟键盘或虚拟卷动菜单。例如,SAFARI的修改版本(APPLE公布的网络浏览器)可以被修改以在用户选择诸如文本框的编辑控件或对其给予焦点时向上滚动。SAFARI向上滚动应用以适应于在浏览器上显示的虚拟键盘,且使得用户可以在虚拟键盘上键入的同时查看文本框。
触摸输入可以包括各种手部或手指移动和动作,包括触摸屏幕上的指针、猛击移动、轻弹移动、多手指或多触摸动作(例如,捏、展开)以及手势等。取决于接收输入的应用的类型,触摸输入可以触发不同功能性。例如,当关闭应用时一些应用可以接收轻弹动作,同时在某一方向中移动应用窗口时其他应用可以解释轻弹输入。每个应用可以定义其自己关于不同类型触摸输入的解释,或可以使用底层操作系统提供的标准定义。
根据一个或多个配置,移动设备102可以以各种方式与远程计算机501通信。远程计算机501可以是服务器、客户端和任意其他计算机。在一些示例中,远程计算机501可以是执行用于移动设备102的一个或多个应用的远程应用服务器。因此,在一些示例中,移动设备102可以在一个或多个虚拟通道上与远程计算机501通信。在一些示例中,虚拟通道可以建立在网络上且可以被称为控制虚拟通道。在其他示例中,虚拟通道可以是无缝虚拟通道。控制虚拟通道可以用于远程处理控制命令以及其他各种命令(例如,用于应用),而无缝虚拟通道可以用于远程处理应用窗口、任务栏、系统托盘等。因而,在一些示例中,每个虚拟通道可以远程处理不同功能和内容。在另外的其他示例中,虚拟通道可以通过在移动设备102上执行的窗口管理服务206建立,或虚拟通道可以通过窗口管理服务206和在远程计算机501上执行的远程处理客户端510二者建立。在一些示例中,虚拟通道可以使用ICA协议促进通信发送。
在一些示例中,远程计算机501可以执行远程处理客户端510。远程处理客户端510可以是控制虚拟通道或无缝虚拟通道,且可以是对应于客户端510使用的虚拟通道以向移动设备102传送数据且从移动设备102接收数据的远程处理应用。在一些示例中,远程处理客户端510可以与(移动计算设备102的)窗口管理服务206合作以修改远程应用505,以用于在移动设备102上的远程显示。窗口管理服务206例如可以是思杰系统公布的CITRIXRECEIVER。在一些示例中,远程处理客户端510可以与远程应用505通信以截获远程应用505产生的提供通知和数据的事件。特别地,远程处理客户端510可以使用远程应用505中的一个或多个提供的应用编程接口执行对一个或多个控件的基于事件的检测。例如,至少一个远程应用505可以是在远程计算机501上执行的操作系统。另一远程应用508B可以在远程计算机501上且在操作系统505的上下文内执行。在这些示例中,远程处理客户端510可以使用使得对操作系统505B可用的应用程序接口,截获远程应用505B内的控件产生的事件。可以通过远程处理客户端510基于控件是否具有焦点或位于感兴趣的控件的预定列表上来选择控件。在一些示例中,控件可以是用户与例如文本框、下拉菜单、单选按钮、按钮、复选框、编辑框、组合框等进行交互的应用中的对象。控件也可以被称为字段或交互元件。在一些示例中,远程处理客户端510可以通过登记与应用505B相关联的通信接口来截获控件产生的事件,以在应用505B内出现焦点变化事件时接收通知。例如,远程处理客户端510可以在对象或控件接收焦点(例如指示用户选择应用内的文本框)时接收通知。
在一些示例中,远程处理客户端510可以在虚拟通道上与窗口管理服务206通信。在特定示例中,远程处理客户端510可以在虚拟通道上向窗口管理服务206发送截获的事件通知。在其他示例中,远程处理客户端510可以传送用于控件的位置坐标、控件类型、控件的内容、控件的窗口句柄和/或用于控件的父窗口信息。界面或应用内的窗口句柄或用于元件的其他标识信息可以包括全球唯一标识符(GUID)。窗口管理服务206可以从远程处理客户端510接收信息且使用接收的信息调节或修改本地显示器201上的应用204的显示。调节显示可以包括滚动、缩放(放大或缩小)、卷动、或以其他方式修改应用204的显示。
在一些示例中,远程计算机501可以执行一个或多个资源505。在一些示例中,这些资源可以是应用。在其他示例中,至少一个资源可以是在远程计算机501上执行的操作系统。在这些示例中,其他应用505可以在操作系统的上下文内执行。在一些实例中,从设备102的视角来看,应用505可以对应于远程应用505,且应用505中的一个或多个可以远程处理到移动设备102以供用户在客户端102处使用。
图6示出用于变更或修改移动设备上远程处理应用的显示的一般方法600。例如,在步骤602中,在远离移动设备的计算机上执行的应用可以截获响应于远程处理应用内的控件接收到焦点而产生的焦点事件通知。在步骤605中,远程计算机可以向客户端设备(例如图2的移动计算设备102)转发接收或截获的焦点事件通知,用户通过该客户端设备查看远程处理应用且与之交互。当接收焦点事件通知时,在移动计算设备上执行的应用可以响应于接收通知且根据与事件相关联的信息修改远程应用的显示(步骤610)。
图7是示出可以由执行用于远程客户端设备的应用的计算机执行的方法(例如在方法600的一般处理内)的流程图。在步骤700中,例如,在计算机上执行的远程处理管理应用可以截获或接收焦点事件通知。在一些示例中,远程处理管理应用可以是在远程计算机510上执行的远程处理客户端510。在其他示例中,应用可以是在远程计算机501上执行的任意应用,且能够勾住由远程计算机501上执行的应用发布的函数调用。在特定示例中,在远程计算机501上执行的远程处理管理应用可以是WFSHELL.EXE(ICACTLS.DLL)内的组件或Citrix XenApp或XenDesktop服务器的另一服务。在其他示例中,远程处理管理应用可以是管理在远程计算机501和移动设备102之间建立的控制或无缝虚拟通道的应用。焦点事件通知可以是在远程应用内的控件或字段接收焦点(例如,用户通过移动设备102选择或突出显示控件或字段)时由远程计算机501上执行的远程应用发布的调用。在一些示例中,控件可以是任意对象或控件或用户交互或输入元件,诸如:编辑框、文本框、备忘录字段、组合框、下拉菜单、滑动块、列表框或任意其他类似的对象或控件。该功能例如可以是诸如“焦点组合框”的功能或产生指示控件接收焦点的通知的任意其他功能。在一些示例中,远程处理管理应用可以使用通过WINDOWS 7UI AUTOMATION应用程序接口而被促进的基于事件的检测。在其他示例中,远程处理管理应用可以使用通过任意API而被促进的基于事件的检测。在这些示例中,该应用可以使用与特定控件和/或特定功能相关联的COM接口登记由这些API提供的通知。
远程处理管理应用可以向移动设备102例如单独地或作为通知消息的一部分发送附加信息,该附加信息包括:接收焦点的控件或界面元件的类型(例如组合框、文本框);接收焦点的控件的名称或标识符;应用内控件的坐标的位置(控件在该应用输出中所处的位置);控件的内容(例如分配给控件的值、与控件相关联的字符串等);控件的窗口句柄;显示控件的窗口的窗口标识符;显示控件的父窗口的位置或坐标;或可以用于确定控件在移动设备102所显示的应用输出内的位置的任意附加信息。
在步骤705中,远程计算机501可以确定接收焦点的对象或控件元件的类型和/或其位置。例如,计算机可以确定控件元件是否是文本输入字段、可选值菜单、单选按钮等。计算机还可以基于在通知消息中指定的位置数据(包括其上放置焦点的控件元件的坐标和大小)确定位置信息。在步骤710中,远程计算机501然后可以基于接收焦点的远程处理应用的控件元件的确定类型确定用于在移动设备上激活的用户控件元件的一般类型。例如,如果远程处理应用的控件元件对应于文本输入字段,则计算机可以确定键入标准字母数字的软件键盘可能适于在触摸输入环境中与文本输入字段交互。在另一示例中,如果远程处理应用的控件元件对应于很多输入字段(例如,该字段中仅准许数字),则计算机可以确定数字健区类型的软件键盘最适于与数字输入字段交互。
在步骤715中,计算机可以向移动设备传送命令以激活与位于移动设备本地的确定类型的控件元件对应的本地控件元件。命令可以通过远程处理应用和移动设备上执行的远程客户端应用之间的虚拟通道传送。另外,在一个或多个示例中,如果将在客户端设备上显示或激活的控件元件的类型是软件键盘,则计算机可以传送识别控件元件类型和将要激活控件元件的可编辑区域或字段的标识的命令。可编辑区域或字段的标识可以包括坐标、大小信息等。在另一示例中,如果将要在客户端设备上本地显示或激活的控件元件的类型是选择器控件(例如菜单或卷动选择条),则计算机可以连同选择器控件的标识符、区域或字段定义(例如坐标、大小信息)、选择器控件的内容(例如可选项目)、当前选择索引、选择器控件和/或窗口的标题以及父窗口句柄一起传送该命令。
在一些布置中,远程计算机501可能并不确定要激活或使用的移动设备本地控件元件或其类型。而是,移动设备的用户可以在移动设备处手动选择或激活本地控件元件。
在步骤720中,远程计算机可以从移动设备接收移动设备本地的用户控件或输入元件的激活的指示(例如通知或确认)。指示例如可以包括控件元件的状态的确认(例如显示或隐藏)、命令执行的成功或失败和/或来自远程计算机的原始命令中的本地控件元件的标识符(例如镜像控件标识符)。
在一些布置中,在步骤725中,远程计算机501可以从客户端设备(例如移动设备102)接收返回操作状态消息,从而指示诸如选择器控件之类的被激活本地控件元件的操作状态。例如,返回操作状态消息可以包括控件的标识符、控件的操作状态和选择索引(如果操作状态指示了用户做出的选择)。选择索引可以识别所选项目。操作状态可以包括成功(指示用户已经做出选择)或取消/放弃(例如在用户停用控件元件而没有进行选择时)。
另外或附加地,在步骤730中,远程计算机501还可以响应于来自客户端的操作状态和选择的通知,更新应用显示以反映用户(例如,在选择器控件元件中)做出的选择。例如,可以使用所选值更新选择字段,且更新的应用显示可以被传送到客户端设备(例如移动设备102)以用于显示。在步骤735中,应用显示更新然后可以传送到客户端设备。
在步骤740中,远程计算机501可以接收指示焦点已经离开控件元件和/或远程处理应用的另一通知。作为响应,在步骤745中,远程计算机501可以向移动设备102(或其上执行的客户端应用)发布指令,以使得将应用显示返回到原始状态和/或停用本地控件元件(例如,如果之前在远程处理应用接收焦点时应用显示被修改)。在一些布置中,远程计算机501可以仅在接收本地控件元件不再有效(例如被显示)或使用的通知时发布该指令。
图8是示出处理的流程图,诸如移动设备102(图5)的设备可以通过该处理从执行远程处理应用的远程计算设备接收输出数据和指令。在步骤800中,设备(例如客户端设备)可以执行管理应用以提供与在服务器或其他远程计算设备上远程执行的应用的交互,且从其接收数据输出。例如,在移动设备102上执行的管理应用可以响应于从远程计算设备(如参考图7所描述)接收指令,而修改移动设备102上的远程处理应用的显示。在一些示例中,管理应用可以是在移动设备102上执行的窗口管理服务206。在其他示例中,管理应用可以是能够从远程计算机501接收事件和控件信息且使用它来修改在移动设备102的本地显示器201上显示的输出的任意应用。在步骤805中,设备可以从执行应用的元件计算机接收激活一种类型的控件元件的指令。在一个或多个示例中,可以响应于远程计算机检测到接收焦点的可编辑或控件字段(例如用户通过客户端设备选择远程处理应用显示中的文本输入字段),而从远程计算机接收该指令。
响应于该指令,在步骤810中,设备可以基于在指令中指定的控件元件的类型确定需要激活的本地控件(例如用户输入)元件。例如,如果一般类型的控件元件对应于标准字母数字键盘,则设备可以识别诸如iOS标准字母数字键盘(如果它是iOS移动设备)或Android标准字母数字键盘(如果它是Android移动设备)之类的与指定类型匹配的本地控件元件。在一些布置中,客户端设备支持或在其上可用的一般类型的控件可以被报告给执行应用的远程计算机,从而使得远程计算机可以选择适当的一般类型。备选地或另外地,如果客户端设备不支持相应一般类型的控件元件,则远程计算机可以不同地处理焦点事件,正如此处更详细地描述的那样。在一些示例中,该指令可以指定多种类型的控件的激活。多个本地控件的操作可以基于对分配给每个本地控件的GUID的使用和指定。
当确定与指定类型的控件元件对应的适当控件元件时,在步骤815中,设备可以激活或执行确定的本地控件。在一个示例中,本地控件的激活和/或执行可以包括修改本地显示界面以显示控件。本地控件的激活和/或执行还可以包括提取控件元件值(例如下拉菜单中的值)并且将这些值并人本地控件元件(例如,上述示例中的虚拟选择器)。例如,在一些布置中,执行远程处理应用的远程计算机可以向设备传送包括在接收焦点的应用控件元件中的控件值,以用于在本地控件元件中的显示。因此,当接收到事件通知和控件信息时,在移动或客户端设备处的窗口管理服务器206可以确定控件是否是具有相关值的控件类型。当确定该控件具有相关值时,窗口管理服务206可以修改应用的显示以包括所接收的值。在一个示例中,如果一个或多个字符串与已经接收焦点的组合框相关联时,窗口管理服务206可以修改显示以显示包括那些字符串的组合框。在其他方面中,在设备上执行的客户端或窗口管理服务206可以使用设备本地的当地控件以显示远程控件或显示代表远程控件的图形。例如,当在应用中呈现远程Windows组合框时,设备可以显示和/或使用本地iPad选择器控件。因而,在设备上显示的远程应用可以采用设备本地应用的外观且可以包括至少一些本地功能性。
在步骤820中,该设备还可以确定本地控件元件是否将(或确实)遮挡接收焦点的远程处理应用的元件。例如,该设备可以确定远程处理应用元件被遮挡的量(例如百分比、以像素、英寸或其他度量表示的绝对量)、被遮挡的特定区域(例如,对于从左往右阅读的语言环境,遮挡文本输入字段的左边部分可能没有遮挡文本输入字段的右边部分那么重要)等。在一些布置中,如果遮挡量或被遮挡部分并不满足预定规则或阈值,则可以认为远程处理应用元件可能未被遮挡。例如,可能仅在元件中至少25%、至少10%、至少50%等不可见时才认为远程处理应用元件被遮挡。在另一示例中,远程处理应用可能仅在文本输入字段左边的任意部分(例如,文本输入字段左边50%的任意部分)被隐藏不能查看时,才被认为被遮挡。可以定义和使用用于确定何时控件元件被遮挡的其他规则。
如果设备确定应用控件元件将是本地控件元件或被本地控件元件遮挡,则在步骤825中,设备可以确定修改本地显示的方式,以使得至少应用控件元件不再被遮挡。例如,如果移动设备本地键盘将在移动设备显示的底部显示,且将遮挡应用控件元件,则该设备可以确定本地显示(桌面界面或(多个)应用专用窗口或其部分)的一个或多个部分应当向上滚动(自动卷动)。另外或备选地,如果显示空间不足,则该设备可以修改显示(整个桌面、桌面和/或特定窗口的一部分)以包括卷动特征,使得一旦显示被向上滚动,可以查看到应用显示的剩余部分。在另一示例中,该设备可以修改应用窗口以缩小(例如收缩应用显示),使得应用显示完全适合在移动设备显示内。
在步骤830中,该设备可以接着根据确定的方式修改显示,以避免遮挡可编辑/控件字段。备选地,如果接收焦点的可编辑/控件字段将不会被遮挡,则该设备可以不修改显示。在一些示例中,可以结合步骤815中的本地控件元件的激活(在其之前、期间或之后)执行步骤820-830。
在一些示例中,如步骤835所示,该设备可以向远程计算设备传送确认消息,以确认本地控件元件的激活。备选地或另外地,在步骤840中,如参考图7的步骤725和730所描述,该设备还向远程计算设备传送返回操作状态消息。例如,可以在该设备检测到用户对选择器控件中的项目的选择时提供状态消息。在另一示例中,设备可以在检测到用户取消或放弃选择器控件时传送状态消息。这些事件可以在更新消息中被报告给远程计算设备,以便由远程计算设备进行适当处理。如果更新消息包括导致对于应用显示的改变的事件,例如,可以从远程计算设备接收对于应用显示的那些改变以用于更新本地应用显示。
在步骤845中,客户端设备还可以接收如下消息,该消息指示焦点已经离开可编辑/控件字段,且提供用以停用相应本地控件元件的指令。相应地,在步骤850中,如果执行修改,则客户端设备可以停用本地控件元件且使得应用显示返回原先状态(例如,在本地控件元件激活之前)。
图7和8中的过程还可以包括将在客户端设备的本地控件元件上或通过客户端设备的本地控件元件执行的动作传送回远程计算设备和远程应用。例如,在远程计算机设备上执行的应用A可以产生应用输出,该应用输出可以显示在远程计算机设备上的应用输出窗口中。应用A产生的应用输出被随后传送到客户端设备,该应用输出在那里被显示在应用输出窗口(例如本地应用窗口)内。在一些示例中,当远程产生的应用输出内的可编辑组合框字段接收焦点时,客户端或窗口管理服务206可以截获获取焦点事件且可以显示或调用本地虚拟选择器控件,例如iPad选择器控件。在本地应用窗口内且在远程产生的应用输出中,显示本地虚拟选择器控件。用户可以与本地控件交互以产生输入。一旦控件用于产生输入,客户端或窗口管理服务206可以向远程计算机401传送输入,以便在远程处理应用的上下文中进行处理。例如,当接收到输入时,远程计算机501可以向应用A产生的实际应用输出内显示的实际控件注入控件输入。在特定示例中,接收的控件输入的注入可以使用WindowsUI Automation API完成。基于所接收的输入的远程处理应用中的变化然后可以被输出回到客户端设备。该过程可以重复,直到远程处理应用被关闭和/或客户端设备和远程计算设备之间的远程处理关系结束。
另外或备选地,远程计算设备(执行远程处理应用)还可以配置成确定客户端设备是否支持或具有对应于特定类型或分类的控件元件的本地控件元件,诸如本地虚拟键盘或本地选择器。例如,客户端设备的能力可以针对远程计算设备来指定,且因而远程计算设备可以做出上述确定。如果客户端设备不支持或不具有对应于所确定类型的控件元件(对应于可编程/控件字段)的本地控件元件,则远程计算设备可以产生作为远程处理应用的一部分或与远程处理应用分离的虚拟键盘或其他控件元件,并且向客户端设备输出虚拟键盘的显示(类似于应用的远程处理)。在一个特定示例中,由远程计算设备产生的虚拟控件元件可以作为单独的应用来执行和远程处理。在另一示例中,虚拟控件元件可以被包括在接收焦点的现有远程处理应用内并作为其一部分。
根据另一方面,本地控件元件的激活可以通过用户或提供应用远程处理能力的服务来开启或关闭。因此,如果用户或服务不希望使用本地控件,则该设备可以在接收到针对可编辑字段的焦点事件通知时不自动触发本地控件元件。另外或备选地,执行应用的远程计算设备可以配置成确定可编辑/控件字段是否将被遮挡,并作为响应确定和提供用于修改客户端设备的本地显示的指令。因此,远程计算设备可以传送用于修改本地显示和/或客户端设备的应用显示的指令。
图9A和9B示出显示包括虚拟键盘的本地控件的使用的示例界面。在图9A中,例如,诸如虚拟键盘901的设备900的本地控件被激活,并且显示以便输入到文本输入自动而无需修改远程处理应用显示903。因此,文本输入字段或应用显示903的其他潜在重要或相关部分变得被虚拟键盘901遮挡。
在图9B中,为了避免遮挡文本输入字段905,应用显示可以向上滚动。在一些布置(包括图9B的布置)中,可以修改包括远程处理应用显示903的整个桌面的显示。滚动可以包括在修改或不修改应用显示903或桌面的比例或定向的情况下,在特定方向(例如,朝向显示的顶部)中移动应用显示903。在一些示例中,滚动可以导致原先可见的元件移出设备显示。例如,在应用显示903如图9B向上滚动之后,在图9A的回收站图标907移出显示区域。可以基于各种规则和阈值确定对应用显示903进行修改(例如滚动)的量或程度。在特定示例中,应用显示903可以滚动直到至少75%的文本输入字段可见。在另一示例中,应用显示903可以滚动直到整个文本输入字段可见。
图10A和10B示出显示包括卷动选择器的本地控件的使用的另一示例界面。在图10A中,web浏览器应用1001显示有如下内容,该内容具有包括下拉菜单1003的各种控件元件。下拉菜单1003可以包括多个可选值,在一些布置中,可能因为字体大小、值的数目、菜单的下拉部分的大小等而难以看见这些可选值。
因此,在图10B中,界面可以显示本地选择器控件元件1005。本地选择器元件1005可以使用包括在下拉菜单1003中的值填充。可以显示本地选择器控件元件1005以获得更加容易的查看和可访问性(例如较大字体大小、较容易的选择机制等)。在图10B的所示示例中,应用显示可以不被修改。因为下拉菜单103中列举的值也显示在本地选择器控件元件1005中,下拉菜单1003的隐藏部分或所有可能在使用性方面具有明显影响。在一些示例中,应用显示可以被修改为确保非扩展下拉菜单部分保持可见,从而使得一旦填入到下拉菜单103,用户可以确认他或她的选择。在另外的其他示例中,应用显示可以放大下拉菜单1003或其一部分以增加可见性。
此处阐述的方法和特征可以进一步通过能够存储计算机可读指令的任意数目的计算机可读介质来实施。可以使用的计算机可读介质的示例包括:RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、DVD或其他光盘存储装置、磁盒、磁带、磁存储装置等。
此外,尽管此处描述的很多方面和特征包括移动设备的使用,但是静止或固定位置设备也可以包括相同或类似的方面和特征。例如,个人计算机或工作站(例如,塞入到墙壁插座中)可以包括触摸输入控件且提供从远程计算设备对远程处理应用的访问。因此,可以以类似于诸如平板电脑之类的移动设备产生类似的本地控件元件且从个人计算机或工作站使用。
另外或备选地,在至少一些示例中,此处阐述的方法和特征可以通过一个或多个集成电路(IC)实施。集成电路例如是访问存储在只读存储器(ROM)中的编程指令或其他数据的微处理器。在一些这种示例中,ROM存储使得IC执行根据此处描述的方法中一个或多个的操作的编程指令。在至少一些其他示例中,此处描述的方法中的一个或多个被硬布线到IC中。换句话说,在这种情况中,IC是专用集成电路(ASIC),其具有专用于此处描述的计算和其他操作的门或其他逻辑。在另外的示例中,IC可以基于从ROM或RAM读取的编程指令的执行来进行一些操作,而其他操作被硬布线到IC的门或其他逻辑。此外,IC可以向显示缓冲器输出图像数据。
尽管已经描述了实施各个特征的特定示例,本领域技术人员将意识到,存在包括在本公开的精神和范围内的上述系统和方法的各种变型和变换。另外,本领域技术人员从对本公开的回顾中可以想得到在本公开的范围内的各种其他实施例、修改和变型。

Claims (28)

1.一种用于显示远程执行的应用的方法,包括:
通过客户端设备产生用于在远程计算设备处执行的应用的应用显示;
通过所述客户端设备接收来自所述远程计算设备的指令,所述指令请求所述客户端设备本地的本地图形用户输入元件的激活;
通过所述客户端设备从所述远程计算设备接收在所述远程计算设备上用于应用控件元件的一个或多个控件值;以及
响应于接收到来自所述远程计算设备的所述指令:
确定所述本地图形用户输入元件的至少一个特性;
通过所述客户端设备与在所述远程计算设备处执行的所述应用的所述应用显示分离地激活所述客户端设备本地的所述本地图形用户输入元件;
通过所述客户端设备利用从所述远程计算设备接收的所述一个或多个控件值来填充所述本地图形用户输入元件;
通过所述客户端设备产生同时包括所述客户端设备本地的所述本地图形用户输入元件的显示、对于在所述远程计算设备处执行的所述应用的所述应用显示、以及在所述远程计算设备上的所述应用控件元件的显示,所述本地图形用户输入元件的显示不同于所述应用显示;以及
基于所述客户端设备本地的所述本地图形用户输入元件的所述至少一个特性,修改对于在所述远程计算设备处执行的所述应用的所述应用显示。
2.根据权利要求1所述的用于显示远程执行的应用的方法,其中来自所述远程计算设备的所述指令指定在所述客户端设备上将要被激活的控件元件的类型,并且其中所述方法还包括基于所指定的控件元件的类型,确定将要激活的所述客户端设备本地的所述本地图形用户输入元件。
3.根据权利要求1所述的用于显示远程执行的应用的方法,还包括:
确定在激活所述本地图形用户输入元件时所述本地图形用户输入元件的显示是否将覆盖所述应用显示的一个或多个部分。
4.根据权利要求3所述的用于显示远程执行的应用的方法,其中确定所述本地图形用户输入元件的显示是否将覆盖所述应用显示的一个或多个部分基于以下至少一个执行:所述本地图形用户输入元件的大小和位置。
5.根据权利要求1所述的用于显示远程执行的应用的方法,还包括:
检测与所述本地图形用户输入元件的用户交互,其中所检测的用户交互是与在所述远程计算设备处执行的所述应用分离地被进行;以及
向所述远程计算设备传送通知消息,所述通知消息报告所述用户交互。
6.根据权利要求5所述的用于显示远程执行的应用的方法,其中所述本地图形用户输入元件包括菜单,所述菜单具有与从所述远程计算设备接收的所述一个或多个控件值对应的一个或多个用户可选项目,其中所述用户交互包括对所述一个或多个用户可选项目中的一个用户可选项目的选择,并且其中所述通知消息包括所述一个或多个用户可选项目中的被选择的一个用户可选项目的标识。
7.根据权利要求1所述的用于显示远程执行的应用的方法,还包括:
接收用以停用所述本地图形用户输入元件的指令;
停用所述本地图形用户输入元件;以及
使所述应用显示返回到在所述修改之前存在的所述应用显示的状态。
8.根据权利要求1所述的用于显示远程执行的应用的方法,其中基于所述本地图形用户输入元件的所述至少一个特性对所述应用显示的所述修改包括卷动所述应用显示。
9.根据权利要求1所述的用于显示远程执行的应用的方法,其中基于所述本地图形用户输入元件的所述至少一个特性对所述应用显示的修改包括以指定方向滚动所述应用显示。
10.根据权利要求1所述的用于显示远程执行的应用的方法,其中基于所述本地图形用户输入元件的所述至少一个特性对所述应用显示的所述修改包括放大所述应用显示或缩小所述应用显示。
11.一种用于显示远程执行的应用的方法,包括:
通过第一计算设备接收第一通知,所述第一通知指示接收焦点的在所述第一计算设备上执行的远程处理应用的应用控件元件,其中所述远程处理应用的应用显示被传送到远离所述第一计算设备的第二计算设备;
确定接收焦点的在所述第一计算设备上执行的所述远程处理应用的所述应用控件元件的类型;以及
向所述第二计算设备传送指令,所述指令包括对于所述第二计算设备的用以与所述远程处理应用分离地激活所述第二计算设备本地的、并且与所述应用控件元件的所述类型对应的图形用户输入元件的请求,其中所述第二计算设备本地的所述图形用户输入元件的显示不同于所述远程处理应用的所述应用显示;以及
向所述第二计算设备传送对于所述应用控件元件的、用于填充所述第二计算设备本地的所述图形用户输入元件的一个或多个控件值,
其中传送至所述第二计算设备的所述指令还包括对于所述第二计算设备的用以产生同时包括所述第二计算设备本地的所述图形用户输入元件的显示、所述远程处理应用的所述应用显示、以及接收焦点的所述远程处理应用的所述应用控件元件的显示的请求。
12.根据权利要求11所述的用于显示远程执行的应用的方法,还包括:
接收焦点离开所述应用控件元件的第二通知;以及
响应于接收到所述第二通知,向所述第二计算设备传送不同指令,以进一步修改所述远程处理应用的所述应用显示。
13.根据权利要求12所述的用于显示远程执行的应用的方法,其中所述远程处理应用在接收到所述第一通知之前以第一状态被显示,并且在接收到所述第二通知之后返回到所述第一状态。
14.根据权利要求12所述的用于显示远程执行的应用的方法,其中所述不同指令还包括用以停用所述第二计算设备本地的所述图形用户输入元件的请求。
15.根据权利要求11所述的用于显示远程执行的应用的方法,其中向所述第二计算设备传送所述指令包括传送以下至少一个:接收焦点的所述远程处理应用的所述应用控件元件的大小和位置。
16.根据权利要求11所述的用于显示远程执行的应用的方法,还包括:
接收第二通知消息,所述第二通知消息包括关于与所述第二计算设备本地的所述图形用户输入元件的用户交互的信息。
17.根据权利要求16所述的用于显示远程执行的应用的方法,其中与所述第二计算设备本地的所述图形用户输入元件的所述用户交互包括经由所述第二计算设备本地的所述图形用户输入元件接收用户输入。
18.根据权利要求16所述的用于显示远程执行的应用的方法,其中与所述第二计算设备本地的所述图形用户输入元件的所述用户交互包括接收用以关闭所述第二计算设备本地的所述图形用户输入元件的命令。
19.一种用于显示远程执行的应用的装置,包括:
用于接收第一通知的模块,所述第一通知指示接收焦点的在所述装置上执行的远程处理应用的应用控件元件,其中所述远程处理应用的应用显示被传送到远离所述装置的计算设备;
用于确定接收焦点的在所述装置上执行的所述远程处理应用的所述应用控件元件的类型的模块;以及
用于向所述计算设备传送指令的模块,所述指令包括对于所述计算设备的用以与所述远程处理应用分离地激活所述计算设备本地的、并且与所述应用控件元件的所述类型对应的图形用户输入元件的请求,其中所述计算设备本地的所述图形用户输入元件不同于所述远程处理应用的所述应用显示;以及
用于向所述计算设备传送对于所述应用控件元件的、用于填充所述计算设备本地的所述图形用户输入元件的一个或多个控件值的模块,其中传送至所述计算设备的所述指令还包括对于所述计算设备的用以产生同时包括所述计算设备本地的所述图形用户输入元件的显示、所述远程处理应用的所述应用显示、以及接收焦点的所述远程处理应用的所述应用控件元件的显示的请求。
20.根据权利要求19所述的用于显示远程执行的应用的装置,其中所述装置还包括:
用于接收焦点离开所述应用控件元件的第二通知的模块;以及
用于响应于接收到所述第二通知向所述计算设备传送不同指令以进一步修改所述远程处理应用的所述应用显示的模块。
21.根据权利要求19所述的用于显示远程执行的应用的装置,其中所述远程处理应用在接收所述第一通知之前以第一状态被显示,并且在接收指示焦点离开所述远程处理应用的第二通知之后返回到所述第一状态。
22.根据权利要求19所述的用于显示远程执行的应用的装置,其中所述计算设备本地的所述图形用户输入元件不遮挡所述应用显示。
23.一种用于显示远程执行的应用的装置,包括:
用于产生用于在远程计算设备处执行的应用的应用显示的模块;
用于接收来自所述远程计算设备的指令的模块,所述指令请求所述装置本地的图形用户输入元件的激活;
用于从所述远程计算设备接收在所述远程计算设备上用于应用控件元件的一个或多个控件值的模块;
用于确定所述装置本地的所述图形用户输入元件的至少一个特性的模块;
用于与在所述远程计算设备处执行的所述应用的所述应用显示分离地激活所述装置本地的所述图形用户输入元件的模块;
用于利用从所述远程计算设备接收的所述一个或多个控件值来填充所述图形用户输入元件的模块;
用于产生同时包括所述装置本地的所述图形用户输入元件的显示、对于在所述远程计算设备处执行的所述应用的所述应用显示、以及在所述远程计算设备上的所述应用控件元件的显示的模块;以及
用于基于所述图形用户输入元件的所述至少一个特性来修改对于在所述远程计算设备处执行的所述应用的所述应用显示的模块。
24.根据权利要求23所述的用于显示远程执行的应用的装置,其中来自所述远程计算设备的所述指令指定在所述装置上将要被激活的控件元件的类型,并且其中所述装置还包括用于基于所指定的控件元件的类型来确定将要激活的所述装置本地的所述图形用户输入元件的模块。
25.根据权利要求23所述的用于显示远程执行的应用的装置,所述装置还包括用于确定在激活所述装置本地的所述图形用户输入元件时所述装置本地的所述图形用户输入元件是否将覆盖所述应用显示的一个或多个部分的模块。
26.根据权利要求25所述的用于显示远程执行的应用的装置,其中确定所述装置本地的所述图形用户输入元件是否将覆盖所述应用显示的一个或多个部分基于以下至少一个执行:所述装置本地的所述图形用户输入元件的大小和位置。
27.根据权利要求23所述的用于显示远程执行的应用的装置,其中所述装置还包括:
用于检测与本地的所述图形用户输入元件的用户交互的模块,其中所检测的用户交互是与在所述远程计算设备处执行的所述应用分离地被进行;以及
用于向所述远程计算设备传送通知消息的模块,所述通知消息报告所述用户交互。
28.根据权利要求27所述的用于显示远程执行的应用的装置,其中本地的所述图形用户输入元件包括菜单,所述菜单具有与从所述远程计算设备接收的所述一个或多个控件值对应的一个或多个用户可选项目,其中所述用户交互包括对所述一个或多个用户可选项目中的一个用户可选项目的选择,并且其中所述通知消息包括所述一个或多个用户可选项目中的被选择的一个用户可选项目的标识。
CN201180048406.1A 2010-10-05 2011-10-05 用于本地用户体验的显示管理 Expired - Fee Related CN103168325B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38997510P 2010-10-05 2010-10-05
US61/389,975 2010-10-05
PCT/US2011/054922 WO2012047997A1 (en) 2010-10-05 2011-10-05 Display management for native user experiences

Publications (2)

Publication Number Publication Date
CN103168325A CN103168325A (zh) 2013-06-19
CN103168325B true CN103168325B (zh) 2017-06-30

Family

ID=45890898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180048406.1A Expired - Fee Related CN103168325B (zh) 2010-10-05 2011-10-05 用于本地用户体验的显示管理

Country Status (4)

Country Link
US (4) US9400585B2 (zh)
EP (1) EP2625685B1 (zh)
CN (1) CN103168325B (zh)
WO (1) WO2012047997A1 (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130104062A1 (en) 2011-09-27 2013-04-25 Z124 Unified desktop input segregation in an application manager
GB2492789B (en) * 2011-07-12 2018-01-03 Denso Corp Displays
US9582187B2 (en) * 2011-07-14 2017-02-28 Microsoft Technology Licensing, Llc Dynamic context based menus
US10564791B2 (en) * 2011-07-21 2020-02-18 Nokia Technologies Oy Method and apparatus for triggering a remote data entry interface
US20130104051A1 (en) * 2011-09-27 2013-04-25 Z124 Unified desktop big brother application pools
US11416131B2 (en) 2011-09-27 2022-08-16 Z124 Unified desktop input segregation in an application manager
US20130080899A1 (en) 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop big brother applications
US20130111391A1 (en) * 2011-11-01 2013-05-02 Microsoft Corporation Adjusting content to avoid occlusion by a virtual input panel
US9612724B2 (en) 2011-11-29 2017-04-04 Citrix Systems, Inc. Integrating native user interface components on a mobile device
US20130160095A1 (en) * 2011-12-14 2013-06-20 Nokia Corporation Method and apparatus for presenting a challenge response input mechanism
KR101921276B1 (ko) * 2012-02-03 2018-11-22 삼성전자주식회사 휴대단말기의 멀티태스킹 수행 장치 및 방법
US9307009B2 (en) * 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US9794735B2 (en) 2012-02-15 2017-10-17 Dropbox Inc. Context determination for mobile devices when accessing remote resources
WO2013169759A2 (en) * 2012-05-07 2013-11-14 Citrix Systems, Inc. Speech recognition support for remote applications and desktops
US9075499B2 (en) * 2012-08-24 2015-07-07 Cellco Partnership Method and apparatus for providing reference content
US9201563B2 (en) * 2012-10-10 2015-12-01 Google Inc. Mobile device friendly window management for remote desktop
US20150253985A1 (en) * 2012-10-17 2015-09-10 Avocent Huntsville Corp. System and method for controlling display of virtual keyboard to avoid obscuring data entry fields
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
KR101717179B1 (ko) 2013-01-07 2017-03-16 삼성전자주식회사 디스플레이 장치, 그의 ui 표시 방법 및 컴퓨터 판독가능 기록매체
US20150261431A1 (en) * 2013-02-27 2015-09-17 Sharp Kabushiki Kaisha Information terminal
CN104102418B (zh) * 2013-04-03 2015-08-26 腾讯科技(深圳)有限公司 一种移动终端浏览器中输入框目标位置定位方法及装置
GB2512626B (en) * 2013-04-04 2015-05-20 Nds Ltd Interface mechanism for massive resolution displays
JP6115293B2 (ja) * 2013-05-02 2017-04-19 株式会社リコー 機器、情報処理端末、情報処理システム、表示制御方法、及びプログラム
US10180728B2 (en) * 2013-05-17 2019-01-15 Citrix Systems, Inc. Remoting or localizing touch gestures at a virtualization client agent
US10572124B2 (en) * 2013-05-20 2020-02-25 Citrix Systems, Inc. Bound based contextual zoom
TWI493433B (zh) * 2013-08-28 2015-07-21 Acer Inc 被遮蔽畫面投影方法及應用該方法之可攜式電子裝置
CN104461272A (zh) * 2013-09-18 2015-03-25 华为技术有限公司 虚拟键盘处理方法及装置
US10621276B2 (en) * 2013-10-24 2020-04-14 Wmware, Inc. User interface virtualization for web applications
US10387551B2 (en) * 2013-12-13 2019-08-20 Freedom Scientific, Inc. Techniques for programmatic magnification of visible content elements of markup language documents
KR101619922B1 (ko) * 2013-12-24 2016-05-12 전자부품연구원 가상자원 기반 협력형 서비스 제공방법 및 그 장치
US10042521B1 (en) 2014-05-22 2018-08-07 Amazon Technologies, Inc. Emulation of control resources for use with converted content pages
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9922007B1 (en) 2014-05-22 2018-03-20 Amazon Technologies, Inc. Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
CN104375825B (zh) * 2014-09-25 2018-06-08 福建升腾资讯有限公司 Vdi环境下桌面窗口元素的跟踪识别方法及系统
CN104391707B (zh) * 2014-12-05 2018-01-30 上海斐讯数据通信技术有限公司 一种应用程序的启动方法及启动装置
KR102367184B1 (ko) * 2014-12-11 2022-02-25 삼성메디슨 주식회사 스크린 키보드를 이용한 정보 입력 방법 및 이를 위한 장치
US20160179368A1 (en) * 2014-12-19 2016-06-23 Hand Held Products, Inc. Intelligent small screen layout and pop-up keypads for screen-only devices
US9804750B2 (en) * 2015-01-21 2017-10-31 Unisys Corporation Textbox associated with device native features
US9251372B1 (en) * 2015-03-20 2016-02-02 Yahoo! Inc. Secure service for receiving sensitive information through nested iFrames
US20160313958A1 (en) * 2015-04-27 2016-10-27 Microsoft Technology Licensing, Llc Cross-platform command extensibility
US9848247B2 (en) * 2016-04-27 2017-12-19 Blackfire Research Corporation Media computing device with multiple virtual screens and personal area network capability
US10097902B2 (en) 2015-05-06 2018-10-09 Blackfire Research Corporation System and method for using multiple audio input devices for synchronized and position-based audio
CN105872059B (zh) * 2016-03-31 2019-08-09 北京奇艺世纪科技有限公司 一种远程执行方法及装置
US10055187B2 (en) 2016-04-27 2018-08-21 Blackfire Research Corporation System and method for multiuser interaction with a media computing device with multiple virtual screens and personal area network capability
US10402210B2 (en) * 2016-08-23 2019-09-03 Sap Se Optimizing user interface requests for backend processing
CN106716357B (zh) * 2016-12-29 2019-11-01 深圳前海达闼云端智能科技有限公司 多系统移动终端的控制方法、控制装置及电子设备
US11863622B2 (en) 2017-02-07 2024-01-02 Drumwave Inc. Cross-device data distribution with modular architecture
US10880272B2 (en) * 2017-04-20 2020-12-29 Wyse Technology L.L.C. Secure software client
TWI658401B (zh) * 2017-11-14 2019-05-01 財團法人工業技術研究院 基於虛擬化行動架構之行動通訊裝置及其相關輸入法切換方法
US11379252B1 (en) * 2018-01-31 2022-07-05 Parallels International Gmbh System and method for providing layouts for a remote desktop session
US11243650B2 (en) 2018-03-07 2022-02-08 International Business Machines Corporation Accessing window of remote desktop application
CN109033772B (zh) * 2018-08-09 2020-04-21 北京云测信息技术有限公司 一种验证信息的输入方法及装置
US20200099760A1 (en) * 2018-09-24 2020-03-26 Salesforce.Com, Inc. Interactive customized push notifications with customized actions
US11113021B2 (en) * 2018-11-06 2021-09-07 Citrix Systems, Inc. Systems and methods for SAAS application presentation mode on multiple displays
US10860178B1 (en) * 2019-09-05 2020-12-08 Shabu Ans Kandamkulathy Task management through soft keyboard applications
US11625155B2 (en) * 2020-03-23 2023-04-11 Ricoh Company, Ltd. Information processing system, user terminal, method of processing information
EP4191397A4 (en) * 2020-10-28 2023-12-13 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE, DISPLAY DEVICE AND CONTROL METHOD THEREOF
CN112491974B (zh) * 2020-11-11 2024-10-15 恒安嘉新(北京)科技股份公司 远程浏览方法、装置、存储介质、终端设备及服务器
CN113434103B (zh) * 2021-06-24 2022-04-05 华东师范大学 一种基于屏幕虚拟化的多屏互动方法、系统及其应用
US11503358B1 (en) 2021-10-19 2022-11-15 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
US11606456B1 (en) 2021-10-19 2023-03-14 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
US11907495B2 (en) * 2021-10-19 2024-02-20 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
WO2023108475A1 (en) 2021-12-15 2023-06-22 Citrix Systems, Inc. Application hotspot on endpoint device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482788A (zh) * 2008-01-08 2009-07-15 宏达国际电子股份有限公司 使用触碰键盘编辑文件的方法、手持电子装置与储存媒体

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69523543T2 (de) * 1994-12-13 2002-04-04 Microsoft Corp Taskbar mit Startmenü
US5940077A (en) * 1996-03-29 1999-08-17 International Business Machines Corporation Method, memory and apparatus for automatically resizing a window while continuing to display information therein
US5872567A (en) * 1996-03-29 1999-02-16 International Business Machines Corporation Method, memory and apparatus for automatically resizing a window in response to a loss or gain in focus
US6133914A (en) * 1998-01-07 2000-10-17 Rogers; David W. Interactive graphical user interface
US20060033724A1 (en) * 2004-07-30 2006-02-16 Apple Computer, Inc. Virtual input device placement on a touch screen user interface
US6211856B1 (en) * 1998-04-17 2001-04-03 Sung M. Choi Graphical user interface touch screen with an auto zoom feature
US6260160B1 (en) * 1998-06-15 2001-07-10 Siemens Information And Communication Networks, Inc. Remote troubleshooting of a computing device
US6407749B1 (en) * 1999-08-04 2002-06-18 John H. Duke Combined scroll and zoom method and apparatus
JP3409752B2 (ja) 1999-10-26 2003-05-26 トヨタ自動車株式会社 移動物体検知装置、異常警報装置および積載室開放制御装置
US6677933B1 (en) * 1999-11-15 2004-01-13 Espial Group Inc. Method and apparatus for operating a virtual keyboard
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US7624337B2 (en) * 2000-07-24 2009-11-24 Vmark, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
US6563913B1 (en) * 2000-08-21 2003-05-13 Koninklijke Philips Electronics N.V. Selective sending of portions of electronic content
US6961945B2 (en) * 2000-10-30 2005-11-01 Microsoft Corporation Method and apparatus for adapting and hosting legacy user interface controls
US7036086B2 (en) * 2001-01-04 2006-04-25 Intel Corporation Displaying software keyboard images
US20020111995A1 (en) * 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
US20020129096A1 (en) * 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
US20020130900A1 (en) 2001-03-16 2002-09-19 Tomorrowsoft Corporation System for generating an interface for software applications in a client-server environment
EP1393148B1 (en) * 2001-05-02 2010-03-03 Bitstream Inc. Methods, systems, and programming for producing and displaying subpixel-optimized font bitmaps using non-linear color balancing
US8225224B1 (en) * 2003-02-25 2012-07-17 Microsoft Corporation Computer desktop use via scaling of displayed objects with shifts to the periphery
US8230359B2 (en) * 2003-02-25 2012-07-24 Microsoft Corporation System and method that facilitates computer desktop use via scaling of displayed objects with shifts to the periphery
US8555165B2 (en) * 2003-05-08 2013-10-08 Hillcrest Laboratories, Inc. Methods and systems for generating a zoomable graphical user interface
US20040230915A1 (en) * 2003-05-13 2004-11-18 International Business Machines Corporation System and method for improved distributed menu performance
US7366777B2 (en) * 2003-05-15 2008-04-29 Sap Aktiengesellschaft Web application router
WO2005041029A2 (en) * 2003-10-24 2005-05-06 Matsushita Electric Industrial Co., Ltd. Remote operation system, communication apparatus remote control system and document inspection apparatus
NZ529640A (en) 2003-11-19 2006-09-29 Mattersmiths Holdings Ltd Method of removing moisture from a lignocellulosic substrate such as wood
US20060188096A1 (en) * 2004-02-27 2006-08-24 Aguilar Joseph G Systems and methods for remotely controlling computer applications
US20060092177A1 (en) * 2004-10-30 2006-05-04 Gabor Blasko Input method and apparatus using tactile guidance and bi-directional segmented stroke
US7536410B2 (en) * 2005-04-22 2009-05-19 Microsoft Corporation Dynamic multi-dimensional scrolling
US20060265662A1 (en) * 2005-05-19 2006-11-23 Custom Credit Systems, L.P. System and method for generating and updating user interfaces of web-based applications
US20070024646A1 (en) 2005-05-23 2007-02-01 Kalle Saarinen Portable electronic apparatus and associated method
US20060288015A1 (en) 2005-06-15 2006-12-21 Schirripa Steven R Electronic content classification
CN101228570B (zh) * 2005-07-22 2010-05-19 马特·帕尔拉科夫 可用拇指操作的触摸屏用户界面的系统和方法
US20070067738A1 (en) * 2005-09-16 2007-03-22 Microsoft Corporation Extensible, filtered lists for mobile device user interface
US7962552B2 (en) * 2005-11-14 2011-06-14 Red Hat, Inc. Borrow and give back of windows
KR100722372B1 (ko) * 2005-11-16 2007-05-28 주식회사 로직플랜트 원격지 컴퓨터를 이용한 모바일 기기용 인터넷 메일클라이언트 시스템과 그 제어 방법
US8010701B2 (en) * 2005-12-19 2011-08-30 Vmware, Inc. Method and system for providing virtualized application workspaces
US7786975B2 (en) * 2005-12-23 2010-08-31 Apple Inc. Continuous scrolling list with acceleration
US7676761B2 (en) * 2006-06-30 2010-03-09 Microsoft Corporation Window grouping
US7761807B2 (en) * 2007-01-31 2010-07-20 Research In Motion Limited Portable electronic device and method for displaying large format data files
US7877701B2 (en) * 2007-03-08 2011-01-25 International Business Machines Corporation In-context total document views for manipulating data
US8381096B2 (en) * 2007-03-15 2013-02-19 Yahoo! Inc. Managing list tailoring for a mobile device
US8286086B2 (en) * 2007-03-30 2012-10-09 Yahoo! Inc. On-widget data control
TWI397899B (zh) * 2007-04-30 2013-06-01 Mstar Semiconductor Inc 多視窗顯示控制器及相關方法
KR20080097059A (ko) * 2007-04-30 2008-11-04 삼성전자주식회사 통신 단말기의 사용자 컨텐츠 관리 방법
US8191001B2 (en) * 2008-04-05 2012-05-29 Social Communications Company Shared virtual area communication environment based apparatus and methods
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US20090172557A1 (en) * 2008-01-02 2009-07-02 International Business Machines Corporation Gui screen sharing between real pcs in the real world and virtual pcs in the virtual world
US9100716B2 (en) * 2008-01-07 2015-08-04 Hillcrest Laboratories, Inc. Augmenting client-server architectures and methods with personal computers to support media applications
US8473276B2 (en) * 2008-02-19 2013-06-25 Google Inc. Universal language input
CN102027450B (zh) * 2008-05-20 2015-05-13 思杰系统有限公司 由移动计算装置使用外部显示装置的方法和系统
US9191238B2 (en) * 2008-07-23 2015-11-17 Yahoo! Inc. Virtual notes in a reality overlay
US8543935B2 (en) * 2008-08-20 2013-09-24 Red Hat, Inc. Full-screen heterogeneous desktop display and control
WO2010032079A2 (en) * 2008-09-17 2010-03-25 Nokia Corp. User interface for augmented reality
KR101609162B1 (ko) * 2008-11-13 2016-04-05 엘지전자 주식회사 터치 스크린을 구비한 이동 단말기 및 이를 이용한 데이터 처리 방법
US20100153866A1 (en) * 2008-12-11 2010-06-17 Accenture Global Services Gmbh Method and system for modifying the execution of a native application running on a portable electronic device
US8159465B2 (en) * 2008-12-19 2012-04-17 Verizon Patent And Licensing Inc. Zooming techniques for touch screens
EP2199818B1 (en) * 2008-12-19 2019-02-20 Koninklijke KPN N.V. Method of determining a location of a mobile device
US9917702B2 (en) * 2009-04-08 2018-03-13 Blackberry Limited System and method for managing items in a list shared by a group of mobile devices
US8254890B2 (en) * 2009-04-08 2012-08-28 Research In Motion Limited System and method for managing items in a list shared by a group of mobile devices
US8370762B2 (en) * 2009-04-10 2013-02-05 Cellco Partnership Mobile functional icon use in operational area in touch panel devices
US10244056B2 (en) * 2009-04-15 2019-03-26 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9448815B2 (en) * 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US9241062B2 (en) * 2009-05-20 2016-01-19 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US9298336B2 (en) * 2009-05-28 2016-03-29 Apple Inc. Rotation smoothing of a user interface
JP2011048538A (ja) * 2009-08-26 2011-03-10 Access Co Ltd コンテキスト配置方法、コンテキスト配置プログラム、及び情報表示装置
KR20110037298A (ko) * 2009-10-06 2011-04-13 삼성전자주식회사 리스트 편집 방법 및 이를 지원하는 휴대 단말기
US9268466B2 (en) * 2009-12-09 2016-02-23 Citrix Systems, Inc. Methods and systems for updating a dock with a user interface element representative of a remote application
US8694902B2 (en) * 2010-01-06 2014-04-08 Apple Inc. Device, method, and graphical user interface for modifying a multi-column application
US8736561B2 (en) * 2010-01-06 2014-05-27 Apple Inc. Device, method, and graphical user interface with content display modes and display rotation heuristics
US9052894B2 (en) * 2010-01-15 2015-06-09 Apple Inc. API to replace a keyboard with custom controls
US20110175826A1 (en) * 2010-01-15 2011-07-21 Bradford Allen Moore Automatically Displaying and Hiding an On-screen Keyboard
KR101690786B1 (ko) * 2010-02-12 2016-12-28 삼성전자주식회사 멀티태스킹 수행 장치 및 방법
US9417787B2 (en) * 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US8595645B2 (en) * 2010-03-11 2013-11-26 Apple Inc. Device, method, and graphical user interface for marquee scrolling within a display area
CN102918490B (zh) * 2010-04-01 2014-07-23 思杰系统有限公司 与在平板计算装置的虚拟桌面内显示的远程应用交互
US8839122B2 (en) * 2010-04-07 2014-09-16 Apple Inc. Device, method, and graphical user interface for navigation of multiple applications
US8683377B2 (en) * 2010-05-12 2014-03-25 Adobe Systems Incorporated Method for dynamically modifying zoom level to facilitate navigation on a graphical user interface
US9542091B2 (en) * 2010-06-04 2017-01-10 Apple Inc. Device, method, and graphical user interface for navigating through a user interface using a dynamic object selection indicator
US20110319056A1 (en) * 2010-06-29 2011-12-29 Enterproid Hk Ltd Remote access to a mobile device
US9483175B2 (en) * 2010-07-26 2016-11-01 Apple Inc. Device, method, and graphical user interface for navigating through a hierarchy
US8700545B2 (en) * 2010-08-27 2014-04-15 Google Inc. Sorted inbox with important message identification based on global and user models
US8589800B2 (en) * 2010-12-10 2013-11-19 Wyse Technology Inc. Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server
US20130111391A1 (en) * 2011-11-01 2013-05-02 Microsoft Corporation Adjusting content to avoid occlusion by a virtual input panel
US20140245205A1 (en) * 2013-02-27 2014-08-28 Microsoft Corporation Keyboard navigation of user interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482788A (zh) * 2008-01-08 2009-07-15 宏达国际电子股份有限公司 使用触碰键盘编辑文件的方法、手持电子装置与储存媒体

Also Published As

Publication number Publication date
CN103168325A (zh) 2013-06-19
US20200348810A1 (en) 2020-11-05
EP2625685B1 (en) 2020-04-22
EP2625685A1 (en) 2013-08-14
US20120084663A1 (en) 2012-04-05
US20220179531A1 (en) 2022-06-09
EP2625685A4 (en) 2016-10-05
US20160328107A1 (en) 2016-11-10
WO2012047997A1 (en) 2012-04-12
US11281360B2 (en) 2022-03-22
US10761692B2 (en) 2020-09-01
US9400585B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
CN103168325B (zh) 用于本地用户体验的显示管理
CN102918490B (zh) 与在平板计算装置的虚拟桌面内显示的远程应用交互
US11593055B2 (en) Selective screen sharing
CN103492978B (zh) 用于远程化的应用的触摸支持
US9467346B2 (en) Interpreting a gesture-based instruction to selectively display a frame of an application user interface on a mobile computing device
CN104303151B (zh) 用于在服务器上远程执行的应用的壳集成
CN105159521B (zh) 用表示远程应用的用户界面元素更新停靠栏的方法和系统
CN103348353B (zh) 基于移动设备的物理位置对资源访问进行中介调节
US20060248471A1 (en) System and method for providing a window management mode
CN103649936A (zh) 在移动设备上针对在服务器上远程执行的应用的外壳集成
CN102460344A (zh) 用于动态背景用户界面(多个界面)的系统和方法
TW200919296A (en) Management of icons in a display interface
CN105556468A (zh) 从应用本身内初始化和引导的应用定制
CN102027450A (zh) 由移动计算装置使用外部显示装置的方法和系统
KR101512010B1 (ko) 셸 애플리케이션들 및 서브애플리케이션들의 인터페이스들의 조합
CN105378634A (zh) 远程化或本地化在虚拟化客户端代理处的触摸手势
WO2002013001A2 (en) Allocation of labels to associated user input elements
KR101686981B1 (ko) 별도의 어플리케이션에 의해 정의되는 인터페이스 객체들을 렌더링
KR20230080880A (ko) 서식 제공 방법 및 시스템
KR20230033871A (ko) 현실 맵 기반의 메타버스 공간 구현 방법 및 그 시스템
KR20180060360A (ko) 클라우드 컴퓨팅 환경에서 제공되는 총무 관리 프로그램에서 사용자 정의에 따른 사용자 인터페이스 제공 방법 및 장치
US9633476B1 (en) Method and apparatus for using augmented reality for business graphics
US20130328887A1 (en) Methods and systems for hosting a portion of a user interface and synchronizing animation between processes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170630