CN102027450A - 由移动计算装置使用外部显示装置的方法和系统 - Google Patents

由移动计算装置使用外部显示装置的方法和系统 Download PDF

Info

Publication number
CN102027450A
CN102027450A CN2009801177218A CN200980117721A CN102027450A CN 102027450 A CN102027450 A CN 102027450A CN 2009801177218 A CN2009801177218 A CN 2009801177218A CN 200980117721 A CN200980117721 A CN 200980117721A CN 102027450 A CN102027450 A CN 102027450A
Authority
CN
China
Prior art keywords
resource
mobile computing
computing device
virtual
user
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.)
Granted
Application number
CN2009801177218A
Other languages
English (en)
Other versions
CN102027450B (zh
Inventor
A·玛拉诺
C·雷克
A·S·科哈利德
D·C.·本森
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 CN102027450A publication Critical patent/CN102027450A/zh
Application granted granted Critical
Publication of CN102027450B publication Critical patent/CN102027450B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • 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/1415Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
    • 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
    • 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/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • 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
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • G09G2340/145Solving problems related to the presentation of information to be displayed related to small screens
    • 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/06Consumer Electronics Control, i.e. control of another device by a display or vice versa
    • 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/16Use of wireless transmission of display information
    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及用于由移动计算装置使用外部显示装置的方法和系统。当外部显示装置连接到或者接附到移动计算装置时,和移动计算装置上的执行的资源相关联的输出数据可以在外部显示装置上显示。输出数据可以包括适用于外部显示装置的显示器的用户界面。资源的执行可以从移动计算装置传送到外部显示装置。移动计算装置可以重新用作显示虚拟输入装置,用于和具有在外部显示装置上显示的输出数据的资源交互。

Description

由移动计算装置使用外部显示装置的方法和系统
相关申请
本申请要求2008年5月20日提交的发明名称为“METHODS ANDSYSTEMS FOR MANAGING DISPLAY AND EXECUTION OF RESOURCES ACROSSMULTIPLE COMPUTING ENVIRONMENTS”的美国临时专利申请61/054551的优先权,其内容通过引用全部包含于此。
技术领域
本发明涉及用移动计算装置使用外部显示装置的方法和系统。当外部显示装置连接到或者接附到移动计算装置时,和移动计算装置上执行的资源相关联的输出数据可以在外部显示装置上显示。输出数据可以包括适用于外部显示装置的显示的用户界面。资源的执行可以从移动计算装置传送到外部显示装置。移动计算装置可以重新用于显示虚拟输入装置,用于和具有在外部显示装置上显示的输出数据的资源交互。
背景技术
随着日常个人和商业相关行为中的计算机、网络访问和因特网使用的普及,许多用户期望他们的计算行为具有移动性和便利性。随着用户从一个位置物理移动到另一个位置,并且从一个行为转变为另一个行为,用户通常会寻求便利和熟悉的方式来执行计算行为。当用户从一个位置移动到另一个位置时,用户可以持有诸如智能电话、个人数字助手、膝上或者笔记本计算机的一个或者多个移动计算装置来提供人性化的计算体验。许多用户还可以使用诸如闪速驱动器的便携存储装置来以便利和便携的方式携带文件、文档或者应用程序。使用这样的存储装置,用户从便携存储装置可以连接的公用计算机访问期望的文件或者文档。
许多广泛使用的现代计算机桌面应用程序包括开发用于在通常具有大的显示器、键盘和鼠标等的传统个人计算机、工作站、膝上计算机或者其他计算装置的丰富的图形用户界面(GUI)。相反,移动装置通常设计为足够小适合放在口袋中,具有相对小的显示器和用于数据输入的诸如电话键盘、全键盘、触摸屏、输入笔的一些(通常是有限的)装置。当用移动装置支持桌面或者企业应用程序时,限制因素包括小的显示尺寸和低的计算能力。已经开发多种方法,用来在移动装置上运行一些桌面应用程序,但是其结果通常是复杂冗长的并且不可行或者成本昂贵。最常见的例子包括部分或者全部重写应用程序以符合移动装置的限制、提供有限或者“轻型(lite)”版本的应用程序、调整应用程序的图像以适合移动装置显示器并且使用缩放和滚动来将移动装置显示屏转变为“虚拟镜”来同时查看应用程序的子区域。
发明内容
通过使得移动计算装置能够使用外部显示装置,用户可以持续受益于小形状因子装置的便携性和便利性,而不会损害显示质量或者资源容量。将资源的显示从移动计算装置传送到外部显示装置并且选择优化的用于外部显示器的用户界面可以在用户使用资源时极大地改进用户的舒适度和简易度。由于将移动计算装置重新作为外部显示器的输入装置消除了获取和配置和外部显示装置相交互的附加装置的需求,所以将移动计算装置重新作为外部显示器的输入装置会最低限度地干扰用户的工作。此外,通过访问外部显示装置的较好的计算能力,用户可以运行具有复杂和期望特征的资源,而不会受限于移动计算装置自身的限制。
在一个方面,描述一种用于在连接到移动计算装置的外部显示装置上显示和至少一个资源相关的输出数据的方法。该方法包括由移动计算装置上的虚拟图形驱动器接收连接到移动计算装置的外部显示装置的标识的步骤。该方法包括由移动计算装置上的窗口管理服务根据该标识来选择要显示在外部显示装置上的至少一个资源的步骤。该方法包括由窗口管理服务将和至少一个资源相关的输出数据定位在虚拟屏幕空间中的步骤。该方法包括由虚拟图形驱动器根据该虚拟屏幕空间将输出数据传输到外部显示装置。
在一些实施例中,该方法包括由窗口管理服务根据该标识在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间的步骤。在一些实施例中,该方法包括由窗口管理服务根据外部显示装置的分辨率来分配对应于外部显示装置的屏幕空间的步骤。在一些实施例中,该方法包括由窗口管理服务从虚拟屏幕空间中对应于移动计算装置的本地显示器的位置移除和至少一个资源相关联的输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据资源的类型在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据资源和网格显示布局中的单元之间的用户关联来在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据和网格显示布局中的单元相关的策略在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据网格显示布局的改变来在虚拟屏幕空间中重新定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据在空的单元中显示输出数据的用户命令来在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据和动态显示布局相关的策略来在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务根据和资源相关的默认位置来在虚拟屏幕空间中定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务接收和与输出数据的用户交互相关的信息的步骤。在一些实施例中,该方法包括由窗口管理服务根据和用户交互相关的信息来重新定位输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务将输出数据重新定位到虚拟屏幕空间中对应于移动计算装置的本地显示器或者不同的外部显示装置的位置的步骤。在一些实施例中,该方法包括由窗口管理装置遮住和不同资源相关的输出数据的步骤。在一些实施例中,该方法包括由窗口管理服务重新调整和资源相关的输出数据的大小。
在另一个方面,描述用于在外部显示装置上显示和至少一个资源相关的输出数据的移动计算装置。移动计算装置还包括窗口管理服务,用于根据外部显示装置的标识来选择要显示在外部显示装置上的至少一个资源并且将和至少一个资源相关的输出数据定位在虚拟屏幕空间。移动计算装置还包括虚拟图形驱动器,用于根据虚拟屏幕空间将输出数据传输到外部显示装置上。在一些实施例中,窗口管理服务根据标识在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间。在进一步的实施例中,窗口管理服务根据外部显示装置的分辨率在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间。在附加的实施例中,窗口管理服务从虚拟屏幕空间中对应于移动计算装置的本地显示器的位置移除和至少一个资源相关联的输出数据。
在又一方面,描述一种用于在连接到移动计算装置的外部显示装置上显示用于资源的用户界面的方法。该方法包括移动计算装置上的窗口管理服务从资源接收用于显示在移动计算装置的本地显示器上的第一用户界面的步骤。该方法还包括移动计算装置上的虚拟图形驱动器将第一用户界面传输到本地显示器的步骤。该方法还包括窗口管理服务将外部显示装置的标识传输给该资源的步骤。该方法还包括窗口管理服务根据该标识从该资源接收第二用户界面的步骤,该第二用户界面不同于第一用户界面。该方法还包括虚拟图形驱动器将第二用户界面传输到外部显示装置的步骤。
在一些实施例中,该方法包括窗口管理服务从资源接收所优化的用于外部显示装置的第二用户界面的步骤。在更多实施例中,该方法包括窗口管理服务将外部显示装置的至少一个特性传输给资源的步骤。在附加实施例中,该方法包括窗口管理服务传输外部显示装置上的显示器具有比本地显示器的分辨率或尺寸大的指示的步骤。在许多实施例中,该方法包括在所优化的用于外部显示装置的用户界面时窗口管理服务从资源接收缺省用户界面的步骤。在多个实施例中,该方法包括窗口管理服务从资源接收所优化的用于外部显示装置的用户界面不可用的通信信息的步骤。在一些实施例中,该方法包括窗口管理系统传输第二用户界面的标识和显示第二用户界面到外部显示装置的指令的步骤。
在另一个方面,描述一种用于将虚拟化资源的执行从移动计算装置传送到外部显示装置的方法。该方法还包括由服务器从移动计算装置接收连接到移动计算装置的外部显示装置的标识的步骤。该方法还包括由服务器识别递送给外部显示装置的虚拟机器的步骤。该方法还包括由服务器将虚拟化资源从递送到移动计算装置的虚拟机器解除连接的步骤。该方法还包括由服务器将虚拟化资源连接到递送给外部显示装置的虚拟机器的步骤。
在一些实施例中,虚拟化资源是虚拟化应用。在一些实施例中,该方法包括由服务器将和虚拟化资源执行状态相关的信息从递送给移动计算装置的虚拟机器传送到递送给外部显示装置的虚拟机器的步骤。
在另一方面,描述一种对于显示在外部显示装置上的第一资源用于将移动计算装置重新作为虚拟输入装置的方法。该方法还包括由服务器评估移动计算装置的输入能力和第一资源的输入需求的步骤。该方法还包括服务器根据该评估将产生虚拟输入装置的第二资源递送到移动计算装置的步骤。
在一些实施例中,该方法包括服务器将产生虚拟键盘、虚拟跟踪板、虚拟指示装置、虚拟摄像机、虚拟麦克风、虚拟销售点(POS)装置、虚拟扬声器、虚拟耳机插孔或者其任一组合的第二资源递送到移动计算装置的步骤。在许多实施例中,该方法包括服务器将允许和第一资源的输出数据用户交互的第二资源递送给移动计算装置的步骤。在多个实施例中,该方法包括服务器将第二资源递送到移动计算装置的步骤,该第二资源将和虚拟输入装置的用户交互的标识传输给第一资源。在附加实施例中,该方法包括服务器将第二资源递送给移动计算装置的步骤,该第二资源产生至少一个用户交互单元。在一些实施例中,该方法包括服务器将第二资源递送到移动计算装置的步骤,该第二资源将与虚拟输入装置的用户交互重定向到移动计算装置的输入能力。在许多实施例中,该方法包括服务器将第二资源递送到移动计算装置的步骤,该第二资源将触摸输入的位置和所显示的用户交互单元关联。在多个实施例中,该方法包括服务器将第三资源递送到移动计算装置的步骤,该第三资源产生和第二资源的虚拟输入装置相结合的另一个虚拟输入装置。在一些实施例中,该方法包括服务器将第二资源递送到移动计算装置的步骤,该第二资源用于和第一资源相结合显示在单个显示表面上。在多个实施例中,该方法包括服务器将第二资源递送到移动计算装置的步骤,该第二资源为连接到移动计算装置的第二外部装置产生虚拟输入装置。
在另一方面,描述对于显示在外部显示装置上的第一资源用于将移动计算装置重新作为虚拟输入装置的系统。该系统还包括服务器,用来评估移动计算装置的输入能力和第一资源的输入需求,并且根据该评估将产生虚拟输入装置的第二资源递送到移动计算装置。
在许多实施例中,第二资源产生虚拟键盘、虚拟跟踪板、虚拟指示装置、虚拟摄像机、虚拟麦克风、虚拟销售点(POS)装置、虚拟扬声器、虚拟耳机插孔或者其任一组合。在一些实施例中,第二资源允许和第一资源的输出数据的用户交互。在附加实施例中,该第二资源将和虚拟输入装置的用户交互的标识传输给第一资源。在多个实施例中,该第二资源产生至少一个用户交互单元。在一些实施例中,该第二资源将与虚拟输入装置的用户交互重定向到移动计算装置的输入能力。在许多实施例中,该第二资源将触摸输入的位置和所显示的用户交互单元关联。在许多实施例中,服务器递送第三资源,该第三资源产生和第二资源的虚拟输入装置相结合的另一个虚拟输入装置。在多个实施例中,该第二资源和第一资源相结合显示在单个显示表面上。在多个实施例中,该第二资源为连接到移动计算装置的第二外部装置产生虚拟输入装置。
附图说明
参考结合附图的以下描述,本发明的前述和其他目的、方面、特征和优势将会变得更加明显更好理解,其中:
图1A是包括和远程机器通信的客户机器的网络环境的实施例的框图;
图1B和1C是结合此处描述的方法和系统使用的计算机的实施例的框图;
图2A是用于在外部显示装置上以用户可配置显示布局显示多个资源的系统的实施例的框图;
图2B是用于将一个或者多个资源映射到一个或者多个显示装置的系统的框图;
图2C是用于在外部显示装置上以用户可配置布局显示多个资源的系统的一个实施例的屏幕截图,用户可配置显示布局划分为网格;
图2D是用于在外部显示装置上以用户可配置动态显示布局显示多个资源的系统的一个实施例的屏幕截图;
图3A是接附到一个或者多个外部显示装置的移动计算装置提供的多个屏幕空间的一个实施例的框图;
图3B是提供多个屏幕空间的移动计算装置的一个实施例的框图;
图3C是虚拟图形驱动器管理的多个屏幕空间的逻辑表示的一个实施例的框图;
图4A是用于附加屏幕空间的添加和配置的图形用户界面的一个实施例的框图;
图4B是用于自定义网格显示布局的图形用户界面的一个实施例的框图;
图4C是可自定义网格显示布局的一个实施例的屏幕截图;
图4D是移动计算装置上非堆叠显示的一个实施例的屏幕截图;
图4E是外部显示装置显示通过移动计算装置上执行的多个资源产生的输出数据的方法中所采取的步骤的一个实施例的流程图;
图5A是外部显示装置显示资源的第一用户界面的系统的一个实施例的框图,该资源的第一用户界面不同于执行资源的移动计算装置显示的资源的第二用户界面;
图5B是用于将一个或者多个用户界面的显示映射到一个或者多个显示装置的系统的框图;
图5C是外部显示装置显示应用程序的第一用户界面系统的一个实施例的屏幕截图,该第一用户界面不同于执行该应用程序的移动计算装置显示的应用程序的第二用户界面;
图6是外部显示装置显示资源的第一用户界面的方法所采取步骤的一个实施例的流程图,该第一用户界面不同于执行资源的移动计算装置显示的资源的第二用户界面;
图7A是用于在客户计算装置上执行和显示多个资源的系统的一个实施例的框图;
图7B是用于在服务器上执行多个资源并且在客户计算装置上显示该多个资源的系统的一个实施例的框图;
图8A是用于在远程服务器上执行来自移动计算装置的多个资源并且将结果显示在客户计算装置上的系统的一个实施例的框图;
图8B是用于在远程服务器上执行来自移动计算装置的多个资源并且将结果显示在客户计算装置上的方法所采取步骤的一个实施例的流程图;
图9A是用于显示和激活与移动计算装置和/或客户计算装置的断开会话的服务器的一个实施例的框图;
图9B是用于接收至少一个之前断开连接的会话所产生的输出数据的方法所采取步骤的实施例的流程图;
图9C是显示和激活与移动计算装置和/或客户计算机器断开的会话的方法所采取步骤的一个实施例的流程图;
图10A是用于在远程机器上产生计算环境用于在本地机器上显示的系统的实施例的框图;
图10B是代理将来自不同源的应用程序集成到计算环境中的系统的一个实施例的框图;
图11A是用于在远程机器上产生计算环境用于在本地机器上显示的方法所采取步骤的实施例的流程图;
图11B是用于在本地机器上显示远程机器产生的桌面环境的方法所采取步骤的一个实施例的流程图;
图12A是用于产生包括来自多个远程机器的输出数据的计算环境用于显示在本地机器上的系统的实施例的框图;
图12B是用于产生包括来自多个远程机器的输出数据的计算环境用于显示在本地机器上的系统的实施例的屏幕截图;
图13是用于产生包括来自多个远程机器的输出数据的计算环境用于显示在本地机器上的方法的一个实施例的流程图;
图14A是用于在移动计算装置的屏幕上显示和用于产生在移动计算装置外的显示器表面上显示的输出数据的源交互的虚拟输入装置的系统的实施例的框图;
图14B和14C是显示用于通过移动计算装置的用户和通过执行资源所产生的输出数据的显示器交互的虚拟输入装置的移动计算装置的实施例的屏幕截图;
图15是用于在移动计算装置的屏幕上显示和用于产生在移动计算装置外的显示器表面上显示的输出数据的源交互的虚拟输入装置的方法的一个实施例的流程图;
图16是用于将用户和第一类型的输入/输出装置交互转换为用于通过支持和第二类型的输入/输出装置交互的用户界面处理的命令的方法的一个实施例的流程图。
内容列表
图1A-1C涉及通常的计算装置和网络;
图2A-4E涉及用于将移动计算装置上执行的资源以用户可配置布局显示在外部显示器上的方法和系统;
图5A-6涉及用户界面之间的动态转换;
图7A-7B涉及用于在客户机计算装置上显示客户计算装置或者服务器上执行的资源所产生的输出数据的方法和系统;
图8A-8B涉及用于在客户机计算装置上显示移动计算装置上执行的资源所产生的输出数据的方法和系统;
图9A-9C涉及用于处理一个或者多个计算装置之间的断开的会话(包括进来以支持和服务器通信的移动计算装置的工作空间控制/平滑漫游特征)的方法和系统;
图10A-13涉及用于在一个或者多个远程机器上产生计算环境并且将其显示在本地机器上(包括进来以提供对于组合Nirvana技术和反向无缝主题的支持)的方法和系统;
图14A-15涉及在移动计算装置的屏幕上显示和用于产生在移动计算装置外的显示器表面上显示的输出数据的源交互的虚拟输入装置的方法和系统;
图16涉及将和第一类型的输入/输出装置的用户交互转换为用于通过支持和第二类型的输入/输出装置交互的用户界面处理的命令的方法和系统。
具体实施方式
现在参考图1A,描述了网络环境的一个实施例。总的来说,网络环境包括经由一个或多个网络104与一个或多个服务器106a-106n(通常也被称为服务器106或远程机器106)通信的一个或多个客户机102a-102n(通常也被称为本地机器102、客户机102、客户机节点102、客户机器102、客户计算机102、客户机装置102、端点102或者端点节点102)。在一些实施例中,客户机102有能力用作寻求对服务器提供的资源的访问的客户机节点并且用作为其他客户机102a-102n提供所寄载资源访问的服务器。
虽然图1A示出客户机102和服务器106之间的网络104,但客户机102和服务器106可以在同一个网络104上。网络104可以是像公司内联网的局域网(LAN)、城域网(MAN)或者诸如因特网或万维网的广域网(WAN)。在一些实施例中,在客户机102和服务器106之间存在多个网络104。在这些实施例的一个中,网络104′(未示出)可以是专用网而网络104可以是公用网。在另一个实施例中,网络104可以是专用网而网络104′可以是公用网。在另一个实施例中,网络104和104′可以都是专用网。
网络104可以是任一类型和/或形式的网络,并且可以包括下列任意一种网络:点到点网络、广播网、广域网、局域网、远程通信网、数据通信网、计算机网络、ATM(异步传送模式)网络、SONET(同步光学网络)网络、SDH(同步数字系列)网络、无线网络和有线网络。在一些实施例中,网络104可以包括诸如红外信道或卫星频带的无线链路。网络104的拓扑结构可以是总线型、星型或环型网络拓扑结构。网络104可以是能够支持此处描述的操作的本领域内普通技术人员所知的任一种这样的网络拓扑结构。该网络可以包括利用在移动装置之间通信的以下协议的移动电话网络:AMPS、TDMA、CDMA、GSM、GPRS或者UMTS。在一些实施例中,不同类型的数据可以经由不同的协议传输。在其他实施例中,相同类型的数据可以经由不同协议传输。
在一些实施例中,该系统可以包括多个、逻辑分组的服务器106。在其中一个这样的实施例中,服务器的逻辑分组可以被称为服务器群组38。在这些实施例中的另一个实施例中,服务器106可以是在地理上分散的。在其他实施例中,群组38可以被管理为单一的实体。在其它实施例中,服务器群组38包括多个服务器群组38。在每个群组38中的服务器106可以是不同种类的,一个或多个服务器106可以根据一种类型的操作系统平台(例如,由位于Redmond,Washington的微软公司出品的WINDOWSNT)来进行操作,而一个或多个其它的服务器106可以根据另一种类型的操作系统平台(例如,Unix或Linux)来进行操作。
每个服务器群组38中的服务器106不需要与同一服务器群组38中的另一个服务器106物理上接近。因此,逻辑上被分组为服务器群组38的服务器106的分组可以使用广域网(WAN)连接或城域网(MAN)连接来互连。例如,服务器群组38可以包括在物理上位于不同的洲或位于一个洲、国家、州、城市、校园或房间的不同区域的服务器106。如果使用局域网(LAN)连接或一些形式的直接连接来连接服务器106,则可以增加在服务器群组38中的服务器106之间的数据传输速度。
服务器106可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟服务器、部署服务器、SSL VPN服务器或者防火墙。在一些实施例中,服务器106提供远程验证拨入用户服务,并且称之为RADIUS服务器。在其他实施例中,服务器106可以有能力作为应用服务器或主应用服务器。在其他实施例中,服务器106是刀片服务器。在又一个实施例中,服务器106执行为用户或者客户计算机102提供对计算环境的访问的虚拟机器。
在一个实施例中,服务器106可以包括活动目录(Active Directory)。服务器106可以是应用加速设备。对于服务器106是应用加速设备的实施例,服务器106可以提供的功能性包括防火墙功能性、应用防火墙功能性或者负载平衡功能性。在一些实施例中,服务器106包括以下公司的生产制备的设备系列:CA San Jose的Citrix应用网络公司,或者CA MountainView的Silver Peak System公司,或者CA San Francisco的Riverbed技术公司或者WA Seattle的F5网络公司或者CA Sunnyvale的Juniper网络公司。
在一些实施例中,服务器106代表客户机102的用户执行应用程序。在其他实施例中,服务器106执行虚拟机器,其提供执行会话,在该执行会话中应用程序代表客户机102或者用户执行。在其中一个这样的实施例中,执行会话是寄载的桌面会话。在另一个这样的实施例中,执行会话提供对计算环境的访问,其可以包括以下的一个或者多个:应用程序、多个应用程序、桌面应用程序、和一个或者多个应用程序可以执行的桌面会话。
在一些实施例中,客户机102与服务器106进行通信。在一个实施例,客户机102直接与服务器群组38中的服务器106的其中一个进行通信。在另一个实施例中,客户机102执行程序邻近应用以与服务器群组38中的服务器106进行通信。在又一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户机102通过网络104与服务器群组38中的服务器106进行通信。例如,通过网络104,客户机102可以请求执行由服务器群组38中的服务器106a-106n寄载的多个应用,并接收应用执行的输出结果用于显示。在一些实施例中,只有主节点提供所要求的识别并提供与寄载被请求的应用的服务器106b相关的地址信息的功能。
在一个实施例中,服务器106提供web服务器的功能。在另一个实施例中,服务器106a从客户机102接收请求,将请求转发到第二服务器106b,并使用来自于服务器106b的对请求的响应来对客户机102的请求进行响应。在又一个实施例中,服务器106获得客户机102可用的应用的列举以及与寄载由所述应用的列举所标识的应用的服务器106’相关的地址信息。在又一个实施例中,服务器106使用web接口将对请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务器106进行通信以访问所标识的应用。在另一个实施例中,客户机102接收由执行服务器106上的标识的应用所生成的诸如显示数据的应用输出数据。
在一些实施例中,服务器106或服务器群组38可以运行一个或多个应用,例如提供瘦-客户机计算或远程显示表示应用的应用。在一个实施例中,服务器106或服务器群组38作为应用而执行Citrix Systems公司的例如MetaFrame或Citrix表示服务器的Citrix访问套件的任一部分和/或由微软公司出品的任意一种微软Windows终端服务。在一个实施例中,应用是由位于Fort Lauderdale,Florida的Citrix Systems公司开发的ICA客户机。在另一个实施例中,服务器106可以运行应用,例如,所述应用可以是提供例如由位于Redmond,Washington的微软公司出品的微软Exchange的电子邮件服务的应用服务器、web或Internet服务器、或桌面共享服务器、或协作服务器。在又一实施例中,任意一种应用可以包括任一类型的寄载服务或产品,例如由California SantaBarbara的Citrix Online分部门提供的GoToMeeting、由位于SantaClara,California的WebEx公司提供的WebEx、或由位于Redmond,Washington的微软公司提供的微软Office Live Meeting。
客户机102可以执行、操作或以其他方式提供应用,所述应用可以是任一类型和/或形式的软件、程序或可执行指令,例如任一类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦-客户机的计算客户机、ActiveX控件、或Java小程序、或可以在客户机102上执行的任一其它类型和/或形式的可执行指令。在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或基于远程的应用。在一个实施例中,服务器106可以使用任一瘦-客户机或远程显示协议来显示输出到客户机102,所述远程显示协议例如由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的独立计算架构(ICA)协议或由位于Redmond,Washington的微软公司出品的远程桌面协议(RDP)。应用可以使用任一类型的协议,并且它可以是例如HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其它实施例中,应用包括与IP电话(VoIP)通信相关的任一类型的软件,例如软IP电话。在进一步的实施例中,应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。
客户机102、服务器106可以被部署和/或执行在任一类型和形式的计算装置上,例如可以在任一类型和形式的网络上通信并执行此处描述的操作的计算机、网络装置或设备。图1B和1C描述了可用于实施客户机102或服务器106的实施例的计算装置100的框图。如图1B和1C所示,每个计算装置100包括中央处理单元121和主存储器单元122。如图1B所示,计算装置100可以包括存储装置128、安装装置116、网络接口118和I/O控制器123、显示装置124a-n、键盘126和/或诸如鼠标的指示装置127。存储装置128可以包括但不限于操作系统、软件和客户机代理120。如图1C所示,每个计算装置100也可以包括另外的可选元件,例如存储器端口103、桥接器170、一个或多个输入/输出装置130a-130b(通常使用附图标记130来指示)以及与中央处理单元121通信的高速缓存140。
中央处理单元121是响应并处理取自主存储器单元122的指令的任一逻辑电路。在许多实施例中,中央处理单元121由微处理器单元提供,例如:由位于Mountain View,California的Intel公司出品的产品;由位于Schaumburg,Illinois的Motorola公司出品的产品;由位于SantaClara,Californi a的Transmeta公司出品的产品;由位于WhitePlains,New York的国际商业机器公司出品的RS/6000处理器;或者由位于Sunnyvale,California的Advanced Micro Devices公司出品的产品。计算装置100可以基于任一这些处理器、或者可以如此处所描述地操作的任一其它处理器。
主存储器单元122可以是可以保存数据并允许由微处理器121直接访问任一存储位置的一个或多个存储芯片,例如静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(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)、同步链接DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、或铁电RAM(FRAM)。主存储器122可以基于任意一种上面描述的存储芯片、或者可以如此处所描述地操作的任一其它可用的存储芯片。在图1B中所示的实施例中,处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中,主存储器122可以是DRDRAM。
图1C描述了在其中主处理器121通过有时被称为背端总线的次级总线来直接与高速缓存140通信的实施例。在其它实施例中,主处理器121使用系统总线150与高速缓存140进行通信。高速缓存140典型地具有比主存储器122更快的响应时间,并且典型地通过SRAM、BSRAM或EDRAM来提供。在图1C中所示的实施例中,处理器121通过本地系统总线150与多个I/O装置130进行通信。多种总线可以用来将中央处理单元121连接到任意一种I/O装置130,所述总线包括VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)来与显示器124进行通信。图1C描述了在其中主处理器121通过HyperTransport、RAPIDIO或InfiniBand通信技术来直接与I/O装置130b通信的计算机100的一个实施例。图1C还描述了混合本地总线和直接通信的一个实施例:处理器121使用本地互连总线与I/O装置130a进行通信,同时直接与I/O装置130b进行通信。
各式各样的I/O装置130a-130n可以存在于计算装置100中。输入装置包括键盘、鼠标、轨道垫、轨道球、麦克风以及绘画板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机。I/O装置可以由如图1B所示的I/O控制器123控制。I/O控制器可以控制诸如键盘126和例如鼠标或光笔的指示装置127的一个或多个I/O装置。进一步地,I/O装置还可以为计算装置100提供存储和/或安装介质116。还是在其它实施例中,计算装置100可以提供USB连接以接收诸如由位于Los Alamitos,California的Twintech Industry公司出品的USB闪存驱动器系列装置这样的便携USB存储装置。
继续参考图1B,计算装置100可以支持任一适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装软件和程序的任一其它装置。计算装置100还可以包括存储装置,例如一个或多个硬盘驱动器或独立磁盘的冗余阵列,用于保存操作系统及其它相关软件,以及用于保存诸如与客户机代理120相关的任一程序的应用软件程序。可选地,任意一种安装装置116还可以被用作存储装置。另外,操作系统和软件可以从可引导介质中运行,所述可引导介质例如像
Figure BPA00001256125700151
的可引导CD,来自于knoppix.net可用作GNU/Linux分发的GNU/Linux的可引导CD。
进一步地,计算装置100可以包括通过多种连接联接到网络104的网络接口118,所述多种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、千兆以太网、SONET上的以太网)、无线连接或上述任一或所有连接的一些组合。连接可以使用多种通信协议建立(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)。在一个实施例中,计算装置100经由任意类型和/或形式的网关或者隧道协议和其他计算装置100’通信,诸如安全套接字层(SSL)或者传输层安全协议(TLS)或者Florida的Ft.Lauderdale的Citrix系统公司制备的Citrix网关协议。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网卡、插件总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适于将计算装置100连接到可以传输并执行此处所描述的操作的任一类型的网络的任一其它装置。
在一些实施例中,计算装置100可以包括或连接到多个显示装置124a-124n,每个显示装置可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任一类型和/或形式的视频适配器、视频卡、驱动器和/或库,以联系、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以联接多个显示装置124a-124n。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器连接到一个或多个显示装置124a-124n。在一些实施例中,计算装置100的操作系统的任一部分可以被配置用于使用多个显示器124a-124n。在其它实施例中,一个或多个显示装置124a-124n可以由一个或多个诸如例如通过网络连接到计算装置100的计算装置100a和100b的其它的计算装置来提供。这些实施例可以包括被设计和构建为将另一个计算机的显示装置用作计算装置100的第二显示装置124a的任一类型的软件。本领域普通技术人员将认识和理解计算装置100可以被配置为具有多个显示装置124a-124n的多个方法和实施例。
在进一步的实施例中,I/O装置130可以是在系统总线150和外部通信总线之间的网桥,所述外部通信总线例如USB总线、Apple Desktop总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、千兆以太网总线、异步传送模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行附加小型计算机系统接口总线。
图1B和1C中描述类型的计算装置100典型地在控制任务的调度和对系统资源的访问的操作系统的控制下操作。计算装置100可以运行任一操作系统,例如任意一种版本的微软Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任一版本的Mac OS、任一的嵌入式操作系统、任一的实时操作系统、任一的开放源操作系统、任一专用操作系统、用于移动计算装置的任一操作系统、或者可以运行在计算装置上并执行此处所描述的操作的任一其它操作系统。典型的操作系统包括但不限于:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS XP和WINDOWS VISTA,所有这些均由位于Redmond,Washington的微软公司出品;由位于Cupertino,California的苹果计算机出品的Mac OS;由位于Armonk,New York的国际商业机器公司出品的OS/2;以及由位于SaltLake City,Utah的Caldera公司发布的可免费使用的Linux操作系统或者任一类型和/或形式的Unix操作系统,以及其它。
计算机系统100可以是任一工作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移动电话或者其他便携通信装置、媒体播放装置、游戏系统、移动计算装置、或者可以通信并具有执行此处所描述的操作的足够的处理器能力和存储容量的任一其它类型和/或形式的计算、通信或者媒体装置。例如,计算机系统100可以包括CaliforniaCupertino的苹果公司出品的IPOD系列产品的一员,Japan Tokyo的索尼公司出品的PLAYSTATION 2、PLAYSTATION 3或者PERSONAL PLAYSTATIONPORTABLE(PSP)装置,Japan KYOTO的任天堂公司出品的NINTENDO DS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED或者NINTENDOREVOLUTION,或者Washington Redmond的微软公司出品的XBOX、或者XBOX360。
在一些实施例中,计算装置100可以具有和所述装置一致的不同的处理器、操作系统和输入装置。例如,在一个实施例中,计算装置100是由Palm公司出品的Treo180、270、600、650、680、700p、700w或者750智能电话。在一些这样的实施例中,Treo智能电话在PalmOS操作系统的控制下操作,并包括指示笔输入装置以及五向导航装置。
在其他实施例中,计算装置100是移动装置,诸如支持JAVA的蜂窝电话或者个人数字助手(PDA),诸如Illinios Schaumburg的摩托罗拉公司出品的i55sr、i58sr、i85s、i88s、i90c、i95cl、或者im1100,Japan Kyoto的Kyocera出品的6035或者7135或者Korea Seoul的三星电子公司出品的i300或者i330。在一些实施例中,计算装置可以是芬兰的诺基亚公司或者Sweden Lund的索尼爱立信移动通信AB出品的移动装置。
在其他实施例中,计算装置100是黑莓便携或者智能电话,诸如Reserch In Motion Limited出品的装置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或者黑莓珍珠8100。在又一些实施例中,计算装置100是智能电话、Pocket PC、Pocket PC电话或者其它支持微软Windows移动软件的便携移动装置。此外,计算装置100可以是任一工作站、台式计算机、膝上型或笔记本计算机、服务器、便携计算机、移动电话或者或者任一其它计算机、或者可以通信并具有执行此处所描述的操作的足够的处理器能力和存储容量的任一其它类型和/或形式的计算或者通信装置。
在一些实施例中,计算装置100是数字音频播放器。在其中一个这样的实施例中,计算装置100是诸如California Cupertino的苹果公司出品的苹果IPOD、IPOD Touch、IPOD NANO、和IPOD SHUFFLE系列的数字音频播放器。在另一个这样的实施例中,数字音频播放器可以用作便携式媒体播放器并且用作大容量存储装置。在其他实施例中,计算装置100是诸如NJ Ridgefield Park的Samsung Electronics America出品的DigitalAudioPlayer Select MP3播放器或者IL Schaumburg的Motorola公司出品的Motorola m500或者m25数字音频播放器。在又一些实施例中,计算装置100是便携式媒体播放器,诸如Zen Vision W、the Zen Vision系列,the Zen便携媒体中心装置,或者CreativeTechnologies Ltd.出品的MP3播放器的数字MP3系列。在又一个实施例中,计算装置100是支持以下文件格式的便携媒体播放器或者数字音频播放器,文件格式包括但不限于:MP3,WAV,M4A/AAC,保护WMA的AAC,AIFF,音频书,Apple无损音频文件格式和.mov,.m4v,和mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算装置100包括装置的组合,诸如移动电话组合数字音频播放器或者便携媒体播放器。在其中一个这样的实施例中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或者Motorala ROKR系列。在另一个这样的实施例中,计算装置100是California Cupertino的苹果计算机出品的Iphone智能电话。
现在参考图2A,示出用于在一个或者多个显示装置上显示多个资源的系统的实施例的框图。总的来说,系统包括可以和一个或者多个外部显示装置202a-n通信的移动计算装置102。图2A中的实施例示出具有本地显示器(native display)201的移动计算装置102,尽管在其他实施例中可以使用不具有本地显示器的装置。移动计算装置102执行多个资源204a-n(总的称为204)。窗口管理系统206和虚拟图形驱动器208管理以用户可配置显示布局显示多个资源的每一个相关的输出数据的位置和尺寸。在许多实施例中,移动计算装置102传输和多个资源的每一个相关的输出数据给外部显示装置202。在一些这样的实施例中,移动计算装置102在建立和外部显示装置202的连接后传输输出数据。在多个实施例中,移动计算装置102将和多个资源的每一个相关的输出数据传输到装置的本地显示器201。在许多实施例中,移动计算装置102将和多个资源204的某一些相关的输出数据传输到本地显示器201并且将和多个资源204的其它相关的输出数据传输到外部显示装置202a-n。
现在参考图2A并且更详细地,移动计算装置102执行多个资源204。在一个实施例中,移动计算装置102是如上结合图1A-1C描述的客户机102。在另一个实施例中,移动计算装置102显示和移动计算装置102所执行的多个资源204a-n的资源204a相关的输出数据。在一些实施例中,移动计算装置102显示和多个资源204的每一个相关的输出数据。
在一个实施例中,多个资源204中的一个资源可以包括但不限于数据文件、可执行文件、配置文件、应用程序、桌面环境(其自身包括用于用户执行的多个应用程序)、计算环境映像(诸如虚拟机器映像)、和/或操作系统软件或者需要执行计算环境映像的其他应用程序。
在一个实施例中,移动计算装置102包括窗口管理服务206,允许外部显示装置202显示和移动计算装置102上执行的多个资源204的每一个相关的输出数据。在另一个实施例中,与允许一个资源204的输出只在本地显示器201或者外部显示装置202查看不同的是,窗口管理服务206允许运行在移动计算装置102上的多个资源可以在外部显示装置202或者本地显示器201上大体同时查看。在又一个实施例中,窗口管理服务206结合虚拟图形驱动器208管理在外部显示装置202和本地显示器201上显示的窗口的显示布局。在一些实施例中,虚拟图形驱动器208是管理虚拟屏幕帧缓存器的驱动器级部件,虚拟屏幕帧缓存器用于保存显示在移动计算装置102的本地显示器201或者外部显示装置202上的输出数据。在其中一个这样的实施例中,窗口管理服务206结合虚拟图形驱动器208管理用来显示输出数据的屏幕空间的边界和尺寸,以及管理在哪个显示装置上显示输出数据。
在一些实施例中,外部显示装置202接收和多个资源204的每一个相关的输出数据并且以用户可配置显示布局显示该输出数据。在一个实施例中,外部显示装置202包括移动计算装置102连接的对接坞(dock)。在另一个实施例中,外部显示装置202包括用于和移动计算装置102无线通信的接收器,例如经由蓝牙、Wi-Fi或者结合图1A-1C描述的其它网络协议。仍在另一个实施例中,外部显示装置202是上面结合图1B-1C描述的显示装置124。
现在参考图2B,示出用于将移动计算装置102的一个或者多个资源204的显示映射到一个或者多个显示装置201和/或202上的系统的一个实施例的框图。在多个实施例中,窗口管理服务206管理虚拟屏幕空间210。虚拟屏幕空间210可以映射到本地显示器201和一个或者多个外部显示装置202。窗口管理服务206可以将和一个或者多个资源204的用户界面相关的输出数据定位到虚拟屏幕空间210上来指定每个用户界面显示的位置。在一些实施例中,窗口管理服务206根据用户偏好顺序来定位输出数据。在另外的实施例中,窗口管理服务206根据策略来定位输出数据。在多个实施例中,窗口管理服务206基于和输出数据相关的资源204来定位输出数据。
窗口管理服务206和虚拟图像驱动器208通信将和资源104的用户界面相关的输出数据传输到本地显示器201和一个或者多个外部显示装置202。在一些实施例中,窗口管理服务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将显示具有相当数量内容的四个资源,则窗口管理服务206可以使用四个一样的单元来配置网格显示布局。在另一个实施例中,如果外部显示装置202将显示四个资源并且一个资源包括三倍于其它资源的内容,则窗口管理服务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根据资源204a的类型识别用于显示通过资源204a产生的输出数据的其中一个外部显示装置202。例如,窗口管理服务206可以确定呈现视频的资源类型可以显示在电视屏幕上,而呈现字处理应用程序的一类资源可以呈现在膝上型计算机的显示器上。
现在参考图3B,示出提供具有变化的分辨率的虚拟屏幕空间310、312a-n的虚拟屏幕210的移动计算装置102的一个实施例的框图。在此实施例中,虚拟屏幕210包括对应于移动计算装置102分辨率为320像素×240像素的本地显示器201的本地显示屏幕空间310。虚拟屏幕210还包括对应于分辨率为1024像素×768像素的外部显示装置202的显示器的扩展屏幕312a,对应于分辨率为800像素×600像素的外部显示装置202的显示器的扩展屏幕312n-1,以及对应于分辨率为640像素×480像素的外部显示装置202的显示器的扩展屏幕312n。在许多实施例中,虚拟屏幕210可以包括具有任意分辨率的本地显示器屏幕空间310和任意数量的扩展屏幕312。整个虚拟屏幕空间210可以映射到单个虚拟屏幕帧缓存器中,尽管也可使用映射到多个缓存器的实施例。
现在参考图3C,示出虚拟图形驱动器管理的多个虚拟屏幕空间的逻辑表示的一个实施例的框图。在此实施例中,虚拟图像驱动器208管理虚拟屏幕帧缓存器中具有不同分辨率的多个虚拟屏幕空间。在此实施例中,移动计算装置的本地显示器201是主显示器并且对应扩展屏幕312a的外部显示装置202是次级显示器。在多个实施例中,和本地显示屏幕空间310上的资源204相关的输出数据显示在本地显示器201上并且和扩展屏幕空间312a上的资源204相关的输出数据显示在和扩展屏幕空间312a相关的外部显示装置202上。
现在参考图4A,示出用于自定义动态显示布局的图形用户界面的一个实施例的框图。总的来说,用户选择屏幕空间并且设置参数来配置空间。在此实施例中,用户从界面元素401选择屏幕空间。在多个实施例中,用户通过选择和屏幕空间相关的标签、图标、按钮或者单选按钮,从下拉菜单选择屏幕空间,将屏幕空间的名称键入文本框中,或者使用本领域内的普通技术人员公知的任一其它方法来选择屏幕空间。在进一步的实施例中,用户可以建立新的屏幕空间。在此实施例中,用户可以通过选择“添加新显示”按钮403来建立新的屏幕空间,并且对应于新屏幕空间的界面元素401可以建立并且添加到图形用户界面中。用户可以命名新的屏幕空间,分配对应于该空间的外部显示装置202,并且根据下述方法来配置屏幕空间。
在多个实施例中,图形用户界面可以包括用户进行操作的界面元素来设置空间的参数。在此实施例中,图形用户界面包括用于分别设置屏幕空间的分辨率和模式的界面元素402和404,并且,在许多实施例中,图形用户界面可以包括用于设置诸如z顺序(z-order)或者默认位置的任一其它参数的界面元素。在此实施例中,用户通过从界面元素402选择对应于预定分辨率的单选按钮或者选择单选按钮来自定义屏幕分辨率的宽度和高度来设置分辨率。在其他实施例中,用户通过调整滑动块到期望位置、从表示不同分辨率的屏幕空间的显示的一组缩略图中选择一个缩略图或者点击和拖拉表示屏幕空间的图像边界来改变分辨率,可以设置分辨率。在此实施例中,用户通过从界面元素404选择指示用户期望屏幕空间是主显示、扩展显示、镜像主显示的显示或者停用显示的单选按钮来设置模式,但是还可以使用任一其它模式。在其他实施例中,用户通过选择表示模式的图标、从下拉菜单中选择模式或者任一其它方法来设置模式。
现在参考图4B,示出用于自定义网格显示布局的图形用户界面的一个实施例的框图。用户可以根据图4A中描述的任一方法来选择屏幕空间来进行自定义。在许多实施例中,图形用户界面允许用户配置要显示多个资源204的每一个的输出数据的网格中单元的数量、尺寸和位置。在一个实施例中,用户可以通过选择用户界面元素406的“添加单元”按钮来添加单元到网格中。每当用户选择“添加单元”按钮,新的编号的单元就出现在网格中,并且用户可以通过选择单元和用户界面元素407的“删除单元”按钮来删除单元。在许多实施例中,用户可以配置每个单元的位置、分辨率或者二者都配置。在一些实施例中,用户通过拖放单元到期望位置来配置位置。在其他实施例中,用于通过输入对应于单元的期望位置的数值来配置位置。例如,用户可以选择单元并且输入位置“2-1”来指示单元应该出现在网格的第二行和第一列。在所有这些实施例中,剩余的单元可以响应于用户选择新单元的位置来自动重新调整它们的位置。
在多个实施例中,用户可以配置每个单元的分辨率。在一些实施例中,用户通过将单元的边界拖放到期望位置来配置分辨率。在其他实施例中,用户通过从一组分辨率中选择来配置分辨率。图4B中所示实施例描述了对应于一组分辨率的单选按钮形式的用户界面元素408,包括允许用户自定义单元分辨率的单选按钮。在其他实施例中,用户通过选择复选框、点击按钮、从下拉菜单选择分辨率或者输入信息的任一其它公知方法来选择分辨率。
在许多实施例中,用户可以在外部显示装置202显示输出数据之前配置网格显示布局。例如,用户可以在用户配置文件中选择和多个资源204的每个资源的优选的单元位置和分辨率相关的设置。执行资源时,窗口管理服务206可以查询用户配置文件来确定如何显示资源204的用户界面。在其他实施例中,用户可以在通过外部显示装置202显示输出数据期间配置网格显示布局。例如,在移动计算装置102执行资源204时,用户可以选择或者修改和资源204的优选单元位置及分辨率相关的设置。
在多个实施例中,用户可以将资源204的输出数据和网格显示布局中的单元相关联。在一些实施例中,用户可以选择网格显示布局上的单元并且将资源和该单元相关联,使得资源的输出数据出现在所选择的单元中。在一些实施例中,用户可以将多个资源和同一个单元相关联并且将资源排序来确定如果要执行超过一个的相关资源时哪个输出数据显示在单元中。在其他实施例中,用户通过将资源所产生的输出数据拖到网格显示布局中的单元来将资源和单元相关联。窗口管理服务206可以保存单元和资源204之间的相关性。
现在参考图4C,示出自定义的网格显示布局的一个实施例的屏幕截图。在此实施例中,网格显示布局包括用于对应于图4B中的网格布局中的单元1、2和3的日历表420、文件浏览器422和电子邮件424的输出数据。在此实施例中,没有资源和对应于单元4(空单元)的界面元素430相关联。在多个实施例中,空单元包括用于选择其输出数据应该显示在单元中的资源的用户界面元素430。在一些实施例中,用户界面元素430列举其输出数据可显示在外部显示装置202上的至少一个资源204。仍在另一个实施例中,用户经由用户界面元素430选择资源204时,窗口管理系统206接收所选择资源204的标识。窗口管理系统206可以将所选择资源和对应于用户界面元素430的单元相关联。甚至仍在另一个实施例中,和虚拟图形驱动器208相通信的窗口管理系统430管理所选择资源和对应于用户界面元素430之间的关联来输出和资源相关的数据到可自定义网格显示布局中的单元。
现在参考图4D,示出移动计算装置102提供的动态显示布局的一个实施例的屏幕截图,移动计算装置102在移动计算装置102的本地显示器201上显示多个资源204的每一个所产生的输出数据。在此实施例中,因为移动计算装置102不接附任何外部显示装置,则所有资源的输出数据都显示在本地显示器201上。在此实施例中,动态布局包括包括四个窗口440、442、444和446,四个窗口包含移动计算装置102上执行的四个资源所产生的输出数据。在多个实施例中,当首先执行资源204时,用于资源204的窗口440可以动态显示在移动计算装置204的本地显示器201上。在许多实施例中,用户可以通过例如拖放窗口440的边界到期望位置来动态重新确定窗口440的大小。在进一步的实施例中,用户可以将窗口440移动到本地显示器201的任一位置。在一些实施例中,用户可以将窗口440移动到和移动计算装置102连接的外部显示装置202上。在一些实施例中,用户可以最小化移动计算装置102的本地显示器201上的窗口440。在许多实施例中,用户可以将光标从显示和资源204a相关的输出数据的窗口改变到显示和另一个资源204b相关的输出数据的窗口。用户可以通过选择包含期望资源204b的输出数据的窗口来改变光标。当用户改变光标到资源204b时,资源204b所产生的输出数据可以遮掩移动计算装置102上执行的其它资源204所产生的输出数据。仍在另一个实施例中,如本领域内技术人员公知,窗口440-448可以以任一方式和/或形式在任何显示器上调整,如本地显示器201或者外部显示装置202上。
现在参考图图4E,示出外部显示装置202显示通过移动计算装置102上执行的资源204产生的输出数据的方法中所采取的步骤的一个实施例的流程图。总的来说,该方法包括移动计算装置102执行多个资源204的步骤(步骤402)。该方法包括外部显示装置202以用户可配置显示布局显示和多个资源204的每一个相关联的所接收的输出数据的步骤(步骤404)。
还参考图4E,并且更具体地,移动计算装置102执行多个资源204(步骤402)。在一个实施例中,移动计算装置102大体同时执行多个资源204。在另一个实施例中,移动计算装置102大体同时执行多个资源204的子集。
外部显示装置以用户可配置显示布局显示由多个资源204的每一个产生的所接收的输出数据(步骤404)。如上结合图2A-2D所描述的,在多个实施例中,移动计算装置102确定对于多个资源204的每一个是否将和资源204相关的输出数据传送到外部显示装置202。
在一些实施例中,窗口管理服务206管理虚拟屏幕空间210中的资源204的大小、位置、分辨率或者任一其它特征。在一个实施例中,移动计算装置102上执行的并且和虚拟图形驱动器208通信的窗口管理服务206识别其输出数据应用由外部显示装置202显示的资源204。在另一个实施例中,窗口管理服务206从虚拟图形驱动器208接收接附到移动计算装置102的外部显示装置202的标识。仍在另一个实施例中,窗口管理服务206评估多个资源204的每一个来确定外部显示装置202是否应该显示多个资源204的每一个所产生的输出数据。甚至仍在另一个实施例中,窗口管理服务206评估和多个资源204的每一个相关的设置来确定外部显示装置202是否应该显示多个资源204的每一个所产生的输出数据。在又一个实施例中,窗口管理服务206评估和多个资源204的每一个相关的用户指定的优选设置来确定外部显示装置202是否应该显示多个资源204的每一个所产生的输出数据。
在一个实施例中,窗口管理服务206指示虚拟图形驱动器208将移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。在另一个实施例中,响应于确定和资源204相关的设置指示资源204所产生的输出数据应该显示在外部显示装置202上,窗口管理服务206指示虚拟图形驱动器208将资源204所产生的输出数据转发给外部显示装置。仍在另一个实施例中,多个设置和资源204相关联,多个设置的每一个指示资源204所产生的输出数据是否应该显示在多类外部显示装置202的每一个上,例如,和资源204相关的第一设置可以指示如果外部显示装置202是电视屏幕则所产生的输出数据应该显示在外部显示装置202上,并且和资源204a相关的第二设置可以指示如果外部显示装置202具有低于特定尺寸和/或分辨率的显示屏则所产生的输出数据不应该显示在外部显示装置202上。
在一个实施例中,窗口管理服务206指示虚拟图形驱动器208将资源204的输出数据以网格显示布局显示在外部显示装置202上。在另一个实施例中,窗口管理服务206指示虚拟图形驱动器208将资源204的输出数据以动态显示布局显示在外部显示装置202上。仍在另一个实施例中,窗口管理服务206评估和多个资源204的每一个相关的设置来识别显示布局,外部显示装置202应该根据该显示布局显示多个资源204的每一个所产生的输出数据。在又一个实施例中,窗口管理服务206评估和多个资源204的每一个相关的用户指定的优选设置来识别显示布局,外部显示装置202应该根据该显示布局显示通过多个资源204的每一个产生的输出数据,例如,并且在一些实施例中,用户指定外部显示装置202应该显示其输出数据的多个资源204的子集。
在一个实施例中,虚拟图形驱动器208将移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。在另一个实施例中,虚拟图形驱动器208指示移动计算装置102的操作系统来将移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。仍在另一个实施例中,虚拟图形驱动器208将显示布局的标识转发给外部显示装置202。在又一个实施例中,虚拟图形驱动器208指示移动计算装置102的操作系统来将显示布局的标识转发给外部显示装置202。
现在参考图5A,示出外部显示装置202显示资源204的第二用户界面的系统的一个实施例的框图,该资源的第二用户界面不同于执行资源204的移动计算装置102显示的资源204的第一用户界面。该系统包括窗口管理服务206、虚拟图形驱动器208和可以提供多于一个用户界面502a-n的资源204。在一些实施例中,资源204可以提供针对移动计算装置102上本地显示器201进行优化的用户界面502a。在附加实施例中,资源204可以提供针对外部显示装置202上的显示器进行优化的用户界面504b。在进一步实施例中,资源204可以提供适用于不同外部显示装置202上显示器的用户界面502a-n。在多个实施例中,窗口管理服务206提供允许资源动态改变用户界面502的功能性,以适用于显示资源所产生输出数据的外部显示装置202。在一些实施例中,窗口管理服务206向资源204指示显示资源的输出数据的外部显示装置202的性质。随之,资源204提供适用于外部显示装置202的特性的用户界面502b-n,其可以不同于提供给移动计算装置的本地显示器201的用户界面502a。在多个实施例中,移动计算装置101可以执行多个资源204,并且每个资源可以提供适用于移动计算装置102的本地显示器201或者外部显示装置202上的多个用户界面502。
现在参考图5B,示出用于将移动计算装置102的本地显示器201上的第一用户界面502a映射到一个或者多个外部显示装置202的上的第二用户界面502b的系统的一个实施例的框图。在一个实施例中,虚拟图形驱动器208将来自移动计算装置102和/或外部显示装置202的显示器的所有屏幕空间210a-n映射到虚拟屏幕空间210中。在另一个实施例中,虚拟图形驱动器208将虚拟屏幕空间210相关的坐标发送给窗口管理服务206。在另一个实施例中,窗口管理服务206将一个或者多个资源204的用户界面定位到虚拟屏幕空间210上。在又一个实施例中,窗口管理服务206使用虚拟图形驱动器208提供的信息来将用户界面定位到外部显示装置202上。在一个实施例中,外部显示装置202显示的资源204的用户界面502b大体类似于本地显示器201上显示的用户界面502a。在另一个实施例中,外部显示装置202显示的用户界面502b不同于本地显示器201上显示的用户界面502a。在多个实施例中,外部显示装置202显示的任何资源204的用户界面不同于不同外部显示装置202上显示的用户界面510。
现在参考图5C,示出外部显示装置202显示资源的第二用户界面502b的系统的一个实施例的框图,该第二用户界面不同于执行该资源204的移动计算装置102显示的资源204的第一用户界面502a。如图5C所示,并且在许多实施例中,资源204可以产生多个用户界面502a和502b,每一个可以适用于和不同类型的显示装置一起使用。在一个实施例中,多个用户界面的第一用户界面502a可以适用于和移动计算装置102的本地显示器201一起使用。在另一个实施例中,多个用户界面的第二用户界面502b可以适用于和外部显示装置202一起使用。在多个实施例中,第一用户界面502a可以显示在移动计算装置102的本地显示器201上,直到移动计算装置102接附到外部显示装置202。当移动计算装置102接附时,第二用户界面502b可以显示在外部显示装置102上。在一些实施例中,移动计算装置102可以在接附时停止显示第一用户界面502a,并且在其他实施例中,移动计算装置102可以在外部显示装置102显示第二用户界面502b时持续显示第一用户界面502a。
现在参考图6,示出外部显示装置显示应用程序的第一用户界面的方法所采取步骤的一个实施例的流程图,该第一用户界面不同于执行应用程序的移动计算装置显示的应用程序的第二用户界面。总的来说,该方法包括移动计算装置上执行的资源产生用于显示在移动计算装置上的第一用户界面的步骤(步骤610)。该方法包括资源从窗口管理服务接收外部显示装置的标识的步骤(步骤612)。该方法包括资源响应于接收到外部显示装置的标识来产生用于显示在外部显示装置上的第二用户界面的步骤(步骤614)。
现在参考图6,并且更详细地,移动计算装置上执行的资源产生用于显示在移动计算装置上的第一用户界面(步骤610)。在一个实施例中,资源204产生适用于和移动计算装置一起使用的用户界面502a。资源从窗口管理服务接收外部显示装置的标识(步骤612)。在一个实施例中,资源经由虚拟图形驱动器208接收外部显示装置202的标识。
响应于接收到外部显示装置202的标识,资源产生用于显示在外部显示装置上的第二用户界面502b(步骤614)。在一个实施例中,窗口管理服务206接收移动计算装置102所接附的外部显示装置202的标识。在一些实施例中,窗口管理服务206将向资源指示外部显示装置202可用的应用编程接口(API)调用传送给资源。窗口管理服务206可以将所接附的外部显示装置202的标识告知移动计算装置上执行的资源。在一些实施例中,窗口管理服务206向资源204指示外部显示装置202具有比移动计算装置102上的本地显示器201更高分辨率或者更大尺寸的显示器。在进一步的实施例中,窗口管理服务206允许资源将自身用户界面改变为更适用于和外部显示装置202一起使用的界面。
在一个实施例中,窗口管理服务206从资源接收和所接附的外部显示装置相关的用户界面的标识。在一些实施例中,窗口管理服务206经由虚拟图形驱动器2208接收该标识。在其他实施例中,窗口管理服务206将该标识转发给虚拟图形驱动器208。
在其中一个这样的实施例中,窗口管理服务206从资源接收和所接附外部显示装置202相关的用户界面。在另一个实施例中,当和所接附外部显示装置相关的用户界面不可用时,窗口管理服务206从资源接收默认的用户界面。仍在另一个实施例中,窗口管理服务206从资源接收与所接附外部显示装置202相关的用户界面不可用的通信信息。
在一个实施例中,资源204产生适用于和移动计算装置102所接附的外部显示装置202一起使用的用户界面502b。在另一个实施例中,资源204指令移动计算装置102上的操作系统显示多个用户界面的其中一个,该多个用户界面中的一个是响应于接收在其上显示用户界面的外部显示装置202的标识来选择的。仍在另一个实施例中,资源204指示移动计算装置102上的窗口管理服务206显示多个用户界面的其中一个,该多个用户界面中的一个是响应于接收在其上显示用户界面的外部显示装置202的标识来选择的。在一些实施例中,窗口管理系统206将用户界面504的标识以及显示用户界面504的指令一起传输给外部显示装置202。在其他实施例中,窗口管理系统206将用户界面504的标识以及在外部显示装置202上显示用户界面502b的指令一起传输给虚拟图形驱动器208。
现在参考图7A,示出用于在客户机102b上执行和显示多个资源204a-204n(总的称为204)的系统的一个实施例的框图。在一个实施例中,该系统包括客户机102a,其中客户机102a是移动计算装置并且和另一个客户机102b相连。在一个实施例中,客户机102b包括移动计算装置102a所接附的对接坞。在另一个实施例中,客户机102b包括用于和移动计算装置102a无线通信的接收器,例如经由上面结合图1A-1C描述的蓝牙、Wi-Fi或者其他组网协议。仍在另一个实施例中,客户机102b包括上面结合图1B-1C描述的外部显示器124。
在一个实施例中,一个或者多个资源204执行在移动计算装置102a上。在另一个实施例中,移动计算装置102a访问客户机102b的硬件和/或软件部件来执行资源204。仍在另一个实施例中,一个版本的资源204执行在客户机102b上。在一个实施例中,客户机102b上的资源的版本可以是安装在客户机102b上的资源204的本地备份。在另一个实施例中,客户机102b上的版本可以提供比移动计算装置102a上可用的资源204的更多功能性。仍在另一个实施例中,客户机102b上的版本可以是产生和执行在移动计算装置102a上的资源204相同输出数据的另一个资源204b。在又一个实施例中,移动计算装置102a和客户机102b共享硬件和软件资源来执行一个或者多个资源204。
资源204的执行可以以多种方式传送给客户机102b。在一个实施例中,资源204的执行在移动计算装置102a上终结,并且客户机102b上的资源204的版本开始。在另一个实施例中,关于移动计算装置102a上的资源204的执行状态的信息和/或数据值传送给客户机102b。仍在另一个实施例中,关于移动计算装置102a上的资源204的执行状态的信息和/或数据值不传送给客户机102b。在这样的实施例中,当执行从移动计算装置102a传送给客户机102b时,最近的更新不传送给客户机102b。在又一个实施例中,当资源从移动计算装置102a传送给客户机102b时,资源204传送给客户机102b。在一个实施例中,当资源传送给客户机102b时,还传送关于执行状态的信息和/或数据。
在一些实施例中,客户机102b包括不是移动计算装置102a提供的操作或者性能特征。在其中一个这样的实施例中,相比于移动计算装置102a的处理器和存储器,客户机102b具有更强大的处理器和/或更大容量的存储器。在另一个这样的实施例中,客户机102b提供移动计算装置102a没有的I/O装置、显示装置、安装装置、或者其他外围设备,诸如键盘或者打印机。仍在另一个这样的实施例中,客户机102b可以提供期望通过移动计算装置102a的用户所使用的特征、资源或者外围设备。例如用户可以期望经由网络上的连接访问远程机器上提供的文件或者应用程序。在又一些这样的实施例中,客户机102b提供对于移动计算装置102a或移动计算装置102a的用户不可用的网络104上机器的访问,诸如机器群组28中的那些机器。
在一个实施例中,一个或者多个资源204可以在移动计算装置102a上的虚拟机器中执行。在另一个实施例中,移动计算装置102a上执行的虚拟机器基于远程位置提供对计算环境的访问。仍在另一个实施例中,保存在移动计算装置102a中的应用程序执行来访问和移动计算装置102a提供的计算环境相关的数据。在另一个实施例中,移动计算装置102a执行虚拟化软件,该虚拟化软件的至少一部分保存在移动计算装置102a上。仍在另一个实施例中,移动计算装置102a通过执行操作系统以访问保存在移动计算装置102a上的一个或者多个应用程序来提供对计算环境的访问,该操作系统和一个或者多个应用程序可以访问保存在移动计算装置102a中的用户数据。
在一个实施例中,响应于保存在移动计算装置102a中的数据,移动计算装置102a执行虚拟机器。在另一个实施例中,移动计算装置响应于保存在移动计算装置102a中的策略来执行虚拟机器。仍在另一个实施例中,移动计算装置102a执行提供对所请求资源或者计算环境的访问的虚拟机器,虚拟机器是响应于保存在移动计算装置102a中的虚拟机器映像来执行的。在又一个实施例中,移动计算装置102a将虚拟机器的执行传送给客户机102b。
在另一个实施例中,客户机102b连接到移动计算装置102a,执行虚拟机器,并且响应于保存在移动计算装置102a中的数据提供对计算环境的访问。在一个实施例中,客户机102b可以将移动计算装置102a的存储装置安装为客户机102b的可移除硬盘驱动器或者存储元件128。在一些实施例中,移动计算装置102a可以是客户机102b的即插即用装置(PnP),使得诸如Washington Redmond的微软公司出品的PnP协议用在移动计算装置102a和客户机102b之间,诸如经由I/0装置130a-130n或者网路接口118。
在一个实施例中,客户机102基于移动计算装置102a中提供的便携计算环境来提供对计算环境的访问。客户机102b基于虚拟化软件、虚拟机映像或者用户数据来执行虚拟机器和虚拟化层以执行计算环境。在一些实施例中,客户机102b包括用于访问保存在移动计算装置102a中的数据的收发器。
在一些实施例中,移动计算装置102a上的加载机制基于保存在移动计算装置102a中的便携计算环境来激活客户机102b上的计算环境的建立。在其他实施例中,客户机102b的加载机制激活计算环境的建立。在又一个实施例中,移动计算装置102a上的加载机制和客户机102b的加载机制一起运作来建立计算环境。
现在参考图7B,示出用于在服务器106上执行资源204并且在客户计算装置102b上显示输出数据的系统的一个实施例的框图。在一个实施例中,系统包括移动计算装置102a、客户机102b和服务器106。移动计算装置102a可以以上述结合图7A所述的多种可能方式接附或者连接到客户机102b。
在一个实施例中,客户机102b连接到远程服务器106以请求通过服务器106执行资源204。在一些实施例中,服务器106可以具有在客户机102b中不存在的操作或者性能特征。在另一个实施例中,服务器106具有对于客户机102b不可用的更强的硬件和/或软件资源。仍在另一个实施例中,服务器106提供对于客户机102b并不直接可用的网络104上机器的访问,诸如机器群组38中的那些机器。
在一个实施例中,一个或者多个资源204执行在客户机102b上。在另一个实施例中,一个或者多个资源204可以包括以建立和服务器106的远程连接的应用程序。客户机102b可以执行、操作或者以其他方式提供应用程序,其可以是任意类型和/或形式的软件、程序或者可执行指令,诸如任意类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用程序、瘦客户机计算客户机、ActiveX控件或者Java小程序,或者可以在客户机102上执行的任一其它类型和/或形式的可执行指令。在一些实施例中,应用程序可以是代表服务器106上客户机102执行的基于服务器的应用程序。在一个实施例中,服务器106可以使用表示层协议和客户机102通信,诸如Florida Ft.Lauderdale的Citrix系统公司出品的独立计算架构(ICA)协议或者Washington Redmond的微软公司出品的远程桌面协议(RDP)。
在一个实施例中,一个或者多个资源可以如上结合图7A描述的那样执行在客户机102b的虚拟机器中。在另一个实施例中,服务器106连接到客户机102b,执行虚拟机器并且提供对计算环境的访问。在一个实施例中,服务器106可以将虚拟机器映像传送给客户机102b。在另一个实施例中,服务器106将在服务器106上执行的虚拟机器映像所产生的输出数据传送给客户机102b。仍在另一个实施例中,虚拟机器映像包括移动计算装置102a的多个资源204每一个的版本。
来自资源204的执行的输出数据以一种或者多种方式显示。在一个实施例中,在服务器106上执行资源204a所产生的输出数据显示在移动计算装置102a上。在另一个实施例中,在服务器106上执行资源204所产生的输出数据显示在客户机102b上。仍在另一个实施例中,来自服务器106的输出数据显示在作为计算环境的一部分的客户机102b上。在又一个实施例中,资源204在移动计算装置102a上本地执行并且显示在客户机102b上。在一些实施例中,输出数据同时显示在移动计算装置102a和客户机102b上。
现在参考图8A,示出用于在服务器上远程执行移动计算装置的资源并且在移动计算装置、客户机或者二者上显示资源产生的输出数据的系统的一个实施例的框图。在一个实施例中,系统包括和客户机102a通过连接104相通信的移动计算装置102a。系统还包括服务器106,该服务器106通过连接104’和移动计算装置102a相通信并且通过连接104”和客户机102b相通信。
在一个实施例中,一个或者多个资源204执行在移动计算装置102a上。在另一个实施例中,一个或者多个资源204可以包括用于和客户机102b建立连接104和/或与服务器106建立连接104’的应用程序。在一个实施例中,移动计算装置102a或者客户机102b可以执行、操作或者以其他方式提供应用程序,其可以是任一类型和/或形式的软件、程序、或者可执行指令,诸如任一类型和形式的web浏览器、基于web的客户机、客户机-服务器应用程序、瘦客户机计算客户机、ActiveX控件或者Java小程序,或者能够在移动计算装置102上执行的任一类型和形式的可执行指令。在一些实施例中,应用程序可以是代表移动计算装置102a或者客户机102b在服务器106上执行的基于服务器或者基于远程的应用程序。在一个实施例中,服务器可以使用任一表示层协议和移动计算装置102a或者客户机102b相通信,诸如由位于Ft.Lauderdale,Florida的Citrix Systems公司出品的独立计算架构(ICA)协议或由位于Redmond,Washington的微软公司出品的远程桌面协议(RDP)。
在一个实施例中,一个或者多个资源204可以执行在结合图7A描述的移动计算装置102a上的虚拟机器上。在一个实施例中,移动计算装置102a将虚拟机器的执行传送到客户机102b和/或服务器106。在另一个实施例中,移动计算装置102a将虚拟机器中的资源执行传送给客户机102b和/或服务器106。在一个实施例中,当移动计算装置102a接附到客户机102a时,移动计算装置102a可以将所接附客户机102b的标识传送给服务器106。服务器106可以识别客户机102b上的虚拟机器。在一些实施例中,服务器106可以和移动计算装置102a上的虚拟机器中执行的资源204断开连接并且将资源204连接到客户机102b上的虚拟机器。在这些实施例中,服务器106可以将关于资源的执行状态的信息传送给客户机102b上的虚拟机器102b。在其他实施例中,服务器106可以通过将虚拟机器和移动计算装置102a断开连接并且连接虚拟机器到客户机102b来传送虚拟机器中执行的资源的执行。
在一个实施例中,服务器106为客户机102b提供对计算环境的访问。这样的计算环境的例子是Ft.Lauderdale Florida的Citrix公司发行的XenDesktop。在另一个实施例中,移动计算装置102a在服务器106上执行的资源的输出通过连接104”显示为客户机102b上的计算环境的一部分。仍在另一个实施例中,移动计算装置102a在服务器106上执行的资源204的输出通过连接104”显示在客户机102b上而不作为计算环境的一部分。
现在参考图8B,示出用于服务器上远程执行移动计算装置的资源并且将资源的输出显示在客户计算装置上的方法所采取步骤的一个实施例的流程图。该方法包括移动计算装置102a上的代理经由第一会话连接到服务器106,用来执行和显示服务器106上执行的资源204的输出数据的步骤(步骤810)。该方法还包括移动计算装置102a上的代理经由第二会话连接到客户机102b的步骤(步骤812)。该方法还包括客户机102b上执行的代理和服务器106建立第三会话的步骤(步骤814)。在一个实施例中,服务器106在客户机102b上显示计算环境。在另一个实施例中,计算环境包括在远程服务器106上执行资源204所产生的输出的显示。
在一个实施例中,移动计算装置102a上的代理或者应用程序连接到服务器106,以建立连接104’(步骤810)。在另一个实施例中,在移动计算装置102a和服务器之间建立第一会话,以使移动计算装置102a访问服务器106上的资源204。仍在另一个实施例中,移动计算装置102a经由第一会话在服务器106上执行资源。在又一个实施例中,执行的输出显示在移动计算装置102a。在进一步的实施例中。执行的输出传送给客户机102b。
移动计算装置102a上的代理经由第二会话在连接104上连接到客户机102b(步骤812)。在一个实施例中,通过建立第一会话的代理来建立第二会话。在另一个实施例中,通过和建立第一会话的代理不同的代理来建立第二会话。在一个实施例中,第一会话和第二会话根据基本相同的协议工作。在另一个实施例中,第一会话和第二会话根据不同的协议工作。仍在另一个实施例中,移动计算装置102a和客户机102b之间的连接可以从结合图5A描述的多种可能连接中选择。
在一个实施例中,客户机102b上的代理通过网络104”在客户机102b和服务器106之间建立第三会话(步骤814)。在另一个实施例中,服务器106通过连接104”将计算环境传送给客户机102b。在示例实施例中,计算环境是Ft.Lauderdale Florida的Citrix公司发行的XenDesktop。在一个实施例中,资源204的执行所产生的输出数据如结合图10-11详细描述的包括在计算环境的显示中。在另一个实施例中,资源204执行所产生的输出数据从服务器106通过连接104”传送给客户机计算装置102b。仍在另一个实施例中,资源204的执行所产生的输出数据显示在不同于计算环境的客户机102b上。
在一个实施例中,资源204执行在移动计算装置102a上并且执行资源204所产生的输出数据通过连接104’传送给服务器106,以通过连接104”转发给客户机102b用来显示。在另一个实施例中,资源的执行传送给或者重新定位到客户机102b。仍在另一个实施例中,资源204所产生的输出数据显示在计算环境的内部。在又一个实施例中,资源204的执行传送给服务器106。在一个实施例中,服务器106上执行的输出数据传送给移动计算装置102a和/或客户机102b。
图9A示出用于显示和激活移动计算装置和服务器之间的断开的会话的系统的一个实施例。在图9A中,框图描述了包括移动计算装置102和服务器106的系统900,但是任一类型的客户机可以用来替代移动计算装置102。在一个实施例中,移动计算装置102包括输入模块908、客户机进程910、网络模块912和显示模块924。输入模块908提供移动计算装置102的用户和移动计算装置102交互的界面,例如请求远程执行服务器106的会话918中的应用程序916。
现在参考图9A,更详细地示出用于显示和激活断开的会话的服务器106,其包括网络模块920、数据存储926和服务器进程922。网络模块920接收和移动计算装置102的用户关联的验证信息。数据存储926列举和用户关联的至少一个断开的会话。服务器进程922将和用户关联的至少一个断开的连接的图形表示传送给移动计算装置102。服务器进程922接收请求来连接到至少一个断开的连接。服务器进程922将移动计算装置102连接到在数据存储926中列举的所请求的至少一个断开的会话。
在一个实施例中,会话918是在服务器106上执行的进程,支持一个或者多个应用程序916的执行。在一些实施例中,会话的执行包括桌面应用程序的执行,通过该桌面应用程序916可以开始其他应用程序916的执行。在其他实施例中,会话918是移动计算装置102和通过服务器106上执行的虚拟机器提供的寄载桌面之间的会话。在其中一个这样的实施例中,桌面会话918’在会话918中执行。在另一个这样的实施例中,一个或者多个应用程序916在会话918中执行的桌面会话918’中执行。仍在其他实施例中,会话918’可以在第二会话918中执行。在其中一个这样的实施例中,例如服务器106上的虚拟机器执行会话918并且第二会话918’(诸如多个应用程序916中执行的桌面会话)在会话918中执行。在又一个实施例中,会话918包括单个应用程序916执行的实例。
在一个实施例中,输入模块908例如是提供让用户选择的一个或者多个图标或菜单选择的图形用户界面。在另一个实施例中,至少一个图标或者菜单选择表示可远程执行的特定应用程序916。仍在另一个实施例中,选择图标或者菜单选择开始向服务器106发送登入请求以访问该应用程序916。甚至仍在另一个实施例中,图标或者菜单选择不代表任意特定的应用程序916,而是表示通常的服务器106登入程序。在又一个实施例中,输入模块108是非图形用户界面。在此实施例中,用户可以输入命令来发送登入请求到服务器106。输入命令包括键入预定的字符集或者按下输入装置(例如键盘或者小键盘)上的特定的按键序列。在一个实施例中,登入请求包括用户提供的验证信息。在另一个实施例中,输入模块908接受用户提供的验证信息的输入,其可以包括任一类型的验证信息,包括但不限于任一用户名-密码/PIN组合,语音采样、一次性通行码、生物学数据、数字证书或者智能卡数据。在一些实施例中,输入模块908和附加的硬件外围设备通信来促进用户验证信息的接受。
用户相关的信息可以从移动计算装置传送并且由服务器接收。在一个实施例中,输入模块908接受验证信息并且将其提供给客户机进程910。在另一个实施例中,客户机进程910管理远程执行的会话的移动计算装置侧功能性。仍在另一个实施例中,客户机进程910将包括验证信息的用户输入转发并且向服务器106请求终止或者断开会话918。甚至仍在另一个实施例中,服务器106接收和移动计算装置102的用户相关的信息并且响应于该信息来验证用户。在又一个实施例中,客户机进程910处理从服务器106接收的数据,例如通过转发会话918产生的图形输出数据或者从会话918的输出数据的图形表示到显示模块924。
网络模块912提供移动计算装置102和服务器106之间的通信。网络模块920为服务器106提供通讯功能性。在一个实施例中,网络模块912发送诸如验证信息和请求的用户输入,该请求用于访问、断开或者终止服务器106上执行的会话918。在另一个实施例中,网络模块912还从会话918接收输出数据并且将输出数据转发给客户机进程910。仍在另一个实施例中,网络模块912将用户输入封装成预定协议并且从预定协议重组会话输出数据,用于传送到服务器106。在又一个实施例中,网络模块912加密输出的传输信息并且将输入传输信息解密。
在一些实施例中,网络模块920接收和移动计算装置102的用户相关的验证信息。在另一个实施例中,网络模块920通过一个或者多个数据网络或者链路921从移动计算装置102接收通信信息。仍在另一个实施例中,网络模块920将输出数据传输到移动计算装置102。甚至仍在另一个实施例中,网络模块920加密输出通信信息并且解密输入通信信息。在一个实施例中,服务器106的网络模块920通过网络104和移动计算装置102的网络模块912相通信。在另一个实施例中,一旦输入通信信息根据协议被解密或获取(如果需要),则转发给会话918或者到服务器进程922。
在一些实施例中,网络模块920以用于传输的协议封装输出通信信息,并从根据通信协议接收的传输信息中获取输入数据。在其中一个这样的实施例中,网络模块920使用至少一个通信协议来封装数据。在另一个这样的实施例中,可以封装在移动计算装置和主机服务之间的通信信息中所使用的次级协议的第一通信协议确保在中断的网络连接期间维持数据。仍在另一个这些实施例中,缓存移动计算装置和主机服务之间传输的数据。例如当移动计算装置在同一网络中的不同接入点之间漫游时,在临时中断的网络连接期间维持缓存的数据。类似地,在另一个实施例中,当移动计算装置在网络之间切换时(例如从有线网络到无线网络),在到主机服务的连接临时中断期间保持缓存的数据。甚至仍在另一个实施例中,由于服务器侧部件的故障(例如服务器侧代理的故障)、由于系统中超时或者由于其他原因导致的网络连接中断时还可以维持缓存的数据。在又一个这样的实施例中,网络模块920通过将次级协议封装在第一通信协议中来提供会话稳定性和可靠性。
在一个实施例中,响应于验证信息来识别已经和用户相关的至少一个之前断开的应用程序会话。在另一个实施例中,已经和用户相关的至少一个之前断开的桌面会话响应于验证信息来识别。在一些实施例中,移动计算装置102接收通过至少一个之前断开的会话所产生的输出数据。在其中一个这样的实施例中,在至少一个之前断开的会话中执行的应用程序产生输出数据。在另一个这样的实施例中,移动计算装置102使用接收的输出数据产生至少一个之前断开的会话的图形表示。仍在另一个这样的实施例中,移动计算装置102接收输出数据的图形表示。
移动计算装置102可以接收和显示表示和用户相关的至少一个之前断开的会话的图形表示。在一个实施例中,显示模块924把至少一个之前断开的会话的图形表示显示给移动计算装置102的用户。在一些实施例中,输出数据显示给用户。在其他实施例中,图形用户界面和所接收的图形表示一起显示给用户。仍在另一个实施例中,所接收的图形表示包括图形用户界面元素。在又一个实施例中,断开会话所产生的输出数据的基于文本的表示显示给用户。
在一个实施例中,显示模块924显示应用程序916或者远程执行的会话918的会话918所产生的输出数据。在另一个实施例中,显示模块924将从客户机进程910接收的输出数据直接转发给显示装置,诸如结合图1B和1C描述的显示装置124,或者其它适合形式的显示装置。在一些实施例中,所接收的输出数据加密、封装在协议中,或者既加密又封装在协议中。在其中一个这样的实施例中,显示模块924首先处理输出数据,使得输出数据可以由诸如计算机视频卡的标准显示适配器来解析。
用户可以请求连接到至少一个之前断开的会话,并且该请求可以传送给服务器。在一个实施例中,移动计算装置102的用户选择要连接的图形表示。在另一个实施例中,移动计算装置102响应于用户所选择的对应图形表示的选择来发送连接请求。响应于所传送的请求,接收和用户所关联的至少一个之前断开的会话所产生的输出数据。通过会话并且通过会话中执行的应用程序所产生的输出数据如下被接收并且显示。
服务器进程922管理会话918的执行和终止以及那些会话918到移动计算装置102的连接和断开连接。在一个实施例中,服务器进程922可以初始新会话918,将移动计算装置102从会话918断开,检测移动计算装置102和会话918断开,定位用户已经断开连接的会话918,定位移动计算装置102的用户连接到客户机计算装置102b的会话918,接收请求来连接到断开的会话,并且将用户连接到断开的会话918。在另一个实施例中,会话918根据用户个人优选和授权权限来配置。
输出发送器924将输出数据从会话918通过网络模块920传送到移动计算装置102。在一个实施例中,输出发送器924拦截会话918中产生的输出数据并且确定哪个移动计算装置102连接到会话918。如果会话918连接到移动计算装置102,输出发送器924将输出数据经由网络模块920发送到所连接的装置。在一个实施例中,如果会话918没有连接到移动计算装置102,则输出发送器924抛弃该输出数据并且等待接收未来的输出数据。在另一个实施例中,如果会话918没有连接到移动计算装置102,则输出发送器924忽略所有进一步的输出数据,直到输出发送器924接收到会话918已经连接到移动计算装置102的通知。在一些实施例中,如下详细描述的,如果会话918没有连接到移动计算装置102,则输出发送器924将和用户相关的至少一个断开的会话的图像表示传送给移动计算装置102。
在一个实施例中,输出发送器924保存该数据,直到输出发送器924接收到会话918已经连接到移动计算装置102的通知。在另一个实施例中,输出发送器924尝试发送输出数据到移动计算装置102,直到服务器进程922通知输出发送器924移动计算装置102已经和服务器106断开连接。仍在另一个实施例中,输出发送器924通过查询数据存储926来确定会话918所连接的移动计算装置102或者其他客户机(如果有的话)。在又一个实施例中,服务器进程922通过查询数据存储926来确定会话918所连接的移动计算装置102或者其他客户机(如果有的话),并且将该确定传送给输出发送器924。
响应于该信息来识别和用户相关的至少一个已经断开的会话。在一个实施例中,和用户相关的至少一个已经断开的会话持续执行至少一个应用程序。在另一个实施例中,和用户相关的至少一个已经断开的会话持续执行桌面会话。仍在另一个实施例中,服务器106识别至少一个断开的会话。
在一个实施例中,识别第一服务器上执行的第一会话。在一些实施例中,识别第二服务器上执行的第二会话。在其中一个这样的实施例中,第一会话和第二会话的其中一个识别为断开的会话。在其他实施例中,识别第一服务器上执行的第二会话。在其中一个这样的实施例中,第一会话和第二会话的其中一个识别为断开的会话。
数据存储926包括和用户启动的会话918相关的信息。在一个实施例中,数据存储926保存在易失性或者非易失性存储器中。在另一个实施例中,数据存储926分布在多个服务器上。表1示出包括在示意数据存储926的一部分中的数据。
表1
  会话   会话1   会话2   会话3
  用户ID   用户1   用户2   用户3
  客户机ID   第一客户机   第一客户机
  客户机地址   172.16.0.50   172.16.0.50
  状态   有效   断开   有效
  应用程序   字处理器   数据库   电子数据表
  进程号码   1   3   2
  服务器   服务器A   服务器A   服务器B
  服务器地址   172.16.2.55   172.16.2.55   172.16.2.56
表1中所示数据存储926包括将每个会话918和启动该会话918的用户相关联的数据,用户当前连接到服务器106的移动计算装置102或者客户机计算装置102b(如果有的话)的标识和移动计算装置102或者客户机计算装置102b的因特网协议(IP)地址。所示数据存储926还包括每个会话的状态。会话918状态可以是“有效”(意味着用户连接到会话918)或者“断开”(意味着用户没有连接到会话918)。在另一个实施例中,会话状态还可以设置为“执行-断开”(意味着用户已经和会话918断开,但是会话918中的应用程序仍在执行),或者“停机-断开”(意味着用户已经断开并且会话918中的应用程序916不执行,但是保存它们在断开之前的操作状态)。数据存储926还保存指示在每个会话918中执行的应用程序的信息和指示和每个应用程序916相关的进程的数据。在一个实施例中,服务器106驻留在服务器群组中,数据存储926还包括表1最后两行的数据,指示每个应用程序916现在或过去正执行在服务器群中的哪个服务器上,和该服务器的IP地址。在其他实施例中,数据存储926包括每个会话918中的每个应用程序916的状态指示器。
例如,并且参考表1,存在三个会话918,会话1、会话9和会话3。会话1和用户1相关联,用户1当前使用终端1。终端1的IP地址地址是172.16.2.50。会话1的状态是有效并且在会话1中,字处理程序以进程号码1在服务器A上执行。服务器A的IP地址是172.16.2.55。表1中的会话2是断开的会话918的例子。会话2和用户2相关联,但是会话2不连接移动计算装置102。会话9包括在IP地址为172.16.2.55的服务器A上执行的数据库程序,进程号码3。会话3是用户如何和z在不同服务器106上操作的会话918交互的例子。如会话1一样,会话3和用户1相关联,。会话3包括在IP地址为172.16.2.56的服务器B上执行的电子数据表程序,进程号码2,而包括在App会话1中的会话918在服务器A上执行。
在一个实施例中,服务器106还包括规则源928。在另一个实施例中,规则源928保存指定适合用于用户请求访问会话918或者会话918中的应用程序916的规则。仍在另一个实施例中,保存在规则源928中的规则至少部分通过系统管理员来指定。甚至仍在另一个实施例中,用户指定规则源928中保存的至少一些规则。在此实施例中,用户指定的规则可以称之为优先选择。在又一个实施例中,规则源928可以保存在易失性或者非易失性存储器中或者分布在多个服务器上。
在一个实施例中,保存在规则源928中的规则例如可以请求或者禁止自动连接到断开的会话918。在另一个实施例中,规则可以请求或者禁止自动连接到当前连接到不同的移动计算装置102的有效会话918。仍在另一个实施例中,规则可以临时在驻留在安全网络中的移动计算装置102上建立连接。甚至仍在另一个实施例中,规则可以仅在接收到用户许可之后才允许连接到会话918。仍在另一个实施例中,规则可以在断开之后预定时间才允许连接。在又一个实施例中,规则可以仅允许连接到提供对特定应用程序916的访问的会话918。
在一些实施例中,验证模块930验证试图登入服务器1067的用户。在一个实施例中,验证模块930接收从移动计算装置102传输的用户提供的验证信息。在另一个实施例中,验证模块930基于用户提供的验证信息来验证用户。在又一个实施例中,验证模块930响应于成功的验证将验证过程的结果(例如,允许或者拒绝访问、用户的系统ID、移动计算装置ID、用户访问许可等等)传送给服务器进程922。
源自不良网络连接或者用户自己的错误而终止会话918的无意终止会话918可以为用户带来一定的困难。在一个实施例中,通过区分断开(作为用户没有完成会话918处理)还是终止(作为有意识地结束会话处理)并且通过将会话918与用户相关联而不是与客户计算机相关联来解决这些困难。在一些实施例中,当用户完成执行会话中操作的应用程序916时,用户可以终止该会话918。在其中一个这样的实施例中,终止通常包括指示服务器不再维持会话918的肯定的用户输入。在另一个实施例中,肯定的用户输入可以包括从菜单中选择“退出”选项,点击图标或者在命令行界面中输入终止命令。仍在另一个这些实施例中,响应于接收到终止请求,服务器进程922终止会话918的执行,以及中止会话918中的任一应用程序916的执行。在另一个这样的实施例中,关于会话918的数据也从数据存储926中移除。
在其他实施例中,有意或者无意的断开都不会导致会话918的终止。在其中一个这样的实施例中,会话918中操作的一个或者多个应用程序在服务器106上执行并且到移动计算装置102的连接通常不需要继续执行应用程序916。在另一个这样的实施例中,应用程序916继续执行,同时等待用户连接到会话918。仍在另一个实施例中,在用户断开连接时,服务器进程922阻止会话918中操作的应用程序的执行。在此实施例中,服务器进程922中止应用程序916的进一步执行并且服务器进程916保存应用程序916的操作状态和应用程序916正在处理的任一数据。甚至仍在另一个实施例中,服务器进程922可以在用户断开连接之后选择性地阻止特定应用程序916的执行。例如,并且在一个实施例中,服务器继续执行应用程序916固定的时间段,并且如果用户在该时间周期内不能够连接,则服务器进程922阻止该应用程序916。在又一个实施例中,服务器进程922阻止没有用户输入就不能继续执行的特定会话918。在其他实施例中,服务器进程922更新和应用程序916或者会话918相关的数据记录来包括应用程序或者会话的状态的标识。
在一些实施例中,服务器进程922继续执行应用程序916,而会话918保持和移动计算装置102的断开。在其他实施例中,在操作移动计算装置102、客户机计算装置102b或者第二客户机计算装置102n(未示)的同时,如果移动计算装置102的用户和服务器106断开连接,并且随后连接到服务器106则服务器进程922可以将用户连接到一个或者多个之前启动的和该用户相关的未终止会话918,并且重新启动任一被阻止的应用程序916的执行。
在一个实施例中,服务器进程922检测断开连接。用户可以有意并且人工指示服务器来断开同移动计算装置102的会话。例如,在一个实施例中,会话918提供用户可选择的用于断开的菜单选项。服务器进程922还可以检测无意的断开。例如,在一个实施例中,服务器106的网络模块920通知服务器进程922通过网络模块922传输到移动计算装置102的预定数量的数据包未由移动计算装置102确认的时间。在另一个实施例中,移动计算装置102周期性地传输信号到服务器来确认该连接仍然保持完整。如果服务器进程922检测到来自移动计算装置102的预定数量的预期的确认信号还没有到达,则服务器进程922确定移动计算装置102已经断开。如果服务器进程922检测到用户已经从会话918有意或者无意断开,则修改数据存储926中关于断开会话918的项来反映该断开。
可以把和用户相关的至少一个断开的会话的图形表示显示给用户。服务器进程922将和用户相关的至少一个断开的会话的图形表示传输给客户机102。在一个实施例中,图形表示显示通过执行的断开会话所产生的输出数据的表示。在另一个实施例中,图形表示显示通过在断开会话中执行的应用程序所产生的输出数据的表示。仍在另一个实施例中,服务器进程922将通过在执行的被断开的会话所产生的输出数据传送给移动计算装置102。甚至仍在另一个实施例中,移动计算装置102将输出数据的图形表示显示给用户。在又一个实施例中,服务器进程922将包括用户界面元素的图形表示传送给移动计算装置102。在一些实施例中,输出发送器924将在执行的被断开的会话所产生的输出数据传送给移动计算装置102。
在一个实施例中,服务器进程922将和用户相关的至少一个断开的会话的状态表示传送给移动计算装置102。在另一个实施例中,服务器进程922将和用户相关的至少一个断开的会话的状态描述传送给移动计算装置102。仍在另一个实施例中,服务器进程922将和用户相关的至少一个断开的会话的状态的文本描述传送给移动计算装置102。
在一些实施例中,服务器进程922将在至少一个断开会话中产生的输出数据传送给移动计算装置102。在其中一个这样的实施例中,移动计算装置102从至少一个断开会话接收的输出数据中产生其图形或者文本表示。在另一个这样的实施例中,移动计算装置102显示如上所述的输出数据。仍在另一个这样的实施例中,移动计算装置102在因特网浏览器应用程序产生的窗口中显示输出数据的表示。在又一个这样的实施例中,移动计算装置102使用更新版本的表示来替代现有的输出数据的表示。在一些实施例中,输出数据的表示950(未示出)是图形。在其他实施例中,输出数据的表示是基于文本的。
在一些实施例中,图形表示950可以描述在断开会话918中执行的多个应用程序的输出。在其中一个这样的实施例中,图形表示950描述由会话918提供的桌面应用程序执行的多个应用程序的输出。在其他实施例中,多个图形表示950显示给移动计算装置102的用户。在其中一个这样的实施例中,多个图形表示的第一图形表示描述了第一类型的会话918,并且多个图形表示的第二图形表示950’(未示)描述了第二类型的会话918。例如,第一图形表示950可以描述会话918中执行的单个应用程序所产生的应用程序-输出数据,而第二图形表示950’可以描述所寄载桌面会话918’中执行的多个应用程序所产生的输出数据。仍在其他实施例中,描述了单个图形表示950。
在一些实施例中,服务器进程922识别和用户相关的至少一个断开会话中的变化,并且响应于该识别的变化来发送显示给用户的至少一个会话的修改版本的至少一个断开的图形表示。在其中一个这样的实施例中,服务器进程922请求至少一个断开会话的变化的标识。在另一个这样的实施例中,服务器进程922请求来自执行会话918的服务器的变化的标识。仍在另一个这样的实施例中,服务器进程922在一个时间间隔之后请求和用户相关的至少一个会话中的第二变化的标识。甚至仍在另一个实施例中,服务器进程922查询执行会话918的服务器以获得至少一个应用程序会话中的变化。在又一个这样的实施例中,响应于和用户相关的至少一个应用程序会话中的第二变化的标识,服务器进程922在时间间隔之后更新显示给用户的至少一个应用程序会话的图形表示。
在其他实施例中,服务器进程922查询数据存储926来确定之前连接的会话已经和移动计算装置102断开。在其中一个这样的实施例中,服务器进程922指示输出发送器924来将会话918在断开连接之前产生的输出数据传输到移动计算装置102。
在一些实施例中,服务器进程922接收对于变化标识的请求。在其中一个这样的实施例中,服务器进程922从移动计算装置102接收请求。在另一个这样的实施例中,服务器进程922将变化的标识传送给移动计算装置102。在其他实施例中,响应于至少一个相关会话中的变化的标识,服务器进程922将至少一个会话的更新的图形表示传送给移动计算装置102。仍在其他实施例中,服务器进程922将会话918中产生的输出数据传送给移动计算装置102中。在其中一个这样的实施例中,移动计算装置102产生输出数据的图形表示并且将图形表示显示给用户。
在一些实施例中,移动计算装置102从服务器106请求和用户相关的至少一个之前断开的会话中的变化的标识。在其他实施例中,移动计算装置102从执行至少一个之前断开的会话的服务器106请求和用户相关的至少一个之前断开的会话中的变化的标识。仍在其他实施例中,移动计算装置102在时间间隔之后请求和用户相关的至少一个之前断开的会话中的变化的标识。甚至仍在另一个实施例中,移动计算装置102查询服务器以得到和用户相关的至少一个之前断开的会话中的变化的标识。
在一些实施例中,移动计算装置102接收在至少一个之前断开的会话中的变化的标识。在其他实施例中,移动计算装置102接收在一个时间段期间会话所产生的输出数据。仍在其他实施例中,移动计算装置102接收图形表示的修改的版本。在又一些实施例中,移动计算装置102显示图形表示的修改的版本。
现在参考图9B和9C,示出用于显示、激活并且提供对断开会话的远程访问的方法所采取步骤的一个实施例的流程图。由诸如移动计算装置的客户机进行左列的步骤。由例如服务器进行右列的步骤。该方法包括传输和用户相关的信息的步骤(步骤940)。该方法包括接收和用户相关的信息的步骤(步骤942)。响应于该信息识别和用户已经相关的至少一个断开的会话(步骤944)。将和用户相关的至少一个断开的会话的图形表示传送给用户(步骤946)。接收表示和用户相关的至少一个断开会话的图形表示(步骤948)。将该图形表示显示给用户(步骤950)。传送要连接到至少一个先前断开的会话的请求(步骤952)。接收来自客户的要连接到至少一个断开会话的请求(步骤954)。在用户操作的客户计算机和请求中的至少一个断开会话之间建立连接(步骤956)。响应于传送的请求来接收和用户相关的至少一个断开会话所产生的输出数据(步骤958)。
参考图9B,并且更详细地,传输和用户相关的信息(步骤940)。在一些实施例中,该信息是登入请求。在一些实施例中,该信息是用于访问资源的登入请求。在其他实施例中,该信息是普通的对于服务器的登入请求。在多个实施例中,信息可以包括验证信息。验证信息可以是任意类型的验证信息,包括例如用户名-密码/PIN组合,语音采样、一次性通行码、生物学数据、数字证书或者智能卡数据。
在一些实施例中,由输入模块(诸如输入模块208)从用户接收该信息,并且提供给客户机进程,诸如客户机进程910。在一些实施例中,该信息由客户机进程、网络模块、或者互相通信的客户机进程和网络网络模块转发给服务器。在此处描述的传输信息的任一实施例中,该信息在传输之前以预定协议封装。在此处描述的传输信息的任意实施例中,该信息在传输之前加密。在多种实施例中,该信息通过数据网络或者链路来传输。
参考图9B,并且更详细地,接收关于用户的信息(步骤942)。在多种实施例中,该信息由服务器接收。在此处描述的接收信息的任一实施例中,可以解密该信息。在一些实施例中,根据所接收的信息来验证用户。分析该信息来根据任一公知方法验证用户。例如,可以针对该信息执行哈希函数并且将结果和查询表中保存的项相比较来确定用户是否应该验证。
参考图9B并且更详细地,响应于该信息识别和用户已经相关的至少一个断开的会话(步骤944)。在多种实施例中,和用户相关联的信息包括识别用户的信息。在许多实施例中,会话可以保存在数据库中,诸如数据存储。每个会话可以包括关于会话状态的信息,例如有效、断开、终止或者任一其它已知状态。每个会话可以包括关于对应于该会话的用户的信息。可以搜索数据库查找具有断开状态并且对应于该用户的会话。可以在存储器或者其它缓存器中保存关于会话的信息,诸如会话的服务器地址和进程号。
参考图9B并且更详细地,将和用户相关的至少一个断开的会话的图形表示传送给用户(步骤946)。在多种实施例中,由至少一个断开的会话产生图形表示。在有些实施例中,由在至少一个断开会话中执行的至少一个应用程序产生图形表示。图形表示可以是至少一个断开会话的基于图形或者基于文本的表示。在有些实施例中,图形表示包括每个断开会话的描述。在一个实施例中,图形表示显示至少一个断开会话所产生的输出数据或者输出数据的表示。在另一个实施例中,图形表示显示在至少一个断开会话中执行的至少一个应用程序产生的输出数据或者输出数据的表示。在多个实施例中,图形表示包括用户界面元素。在许多实施例中,使用输出发送器来传送和用户相关的至少一个断开会话的图形表示。在一些实施例中,输出发送器拦截由至少一个正执行的断开会话所产生的输出数据并且传输该输出数据。
参考图9B并且更详细地,接收表示和用户相关的至少一个断开会话的图形表示(步骤948)。在多个实施例中,由客户机进程、网络模块或者互相通信的客户机进程和网络模块接收图像表示。在有些实施例中,图形表示调整为适合由标准显示适配器解析的格式。在许多实施例中,图形表示存储在帧缓冲器中。此外,将该图形表示显示给用户(步骤950)。在许多实施例中,图形表示被显示在显示模块924上。在一些实施例中,图形表示被显示在移动计算装置102的本地显示器201上。在其他实施例中,图形表示被显示在外部显示装置202上。在一些实施例中,客户机进程将图形表示传输给显示模块924用于显示在该装置上。
参考图9C并且更详细地,传送要连接到至少一个先前断开的会话的请求(步骤952)。在多种实施例中,该请求可以包括服务器地址、进程号、或者关于用户期望联接的断开会话的任一其它信息。用户可以通过选择断开会话的部分或者全部的图形表示来产生请求。例如,用户可以选择对应于断开会话的图标来请求连接。在另一个例子中,用户可以从断开会话的列表中选择断开会话。在又一个实施例中,用户可以从断开会话的菜单选择断开会话。
参考图9C并且更详细地,接收来自客户的要连接到至少一个断开会话的请求(步骤954)并且在用户操作的客户计算机和所请求的至少一个断开会话之间建立连接(步骤956)。在许多实施例中,服务器进程可以建立该连接。可以通过使用服务器地址、进程号和客户基地址形成连接来建立该连接。如果所请求的连接符合策略,则可以建立该连接。例如,如果该策略许可自动重新连接断开的会话,则可以建立该连接。在另一个例子中,如果该策略要求客户机在连接建立之前驻留在安全网络上并且该客户机确实驻留在安全网络上,则可以建立该连接。在一些实施例中,当建立连接时,已经在之前断开会话上被阻止运行的应用程序可以重新执行。
参考图9C并且更详细地,响应于传送的请求来接收和用户相关的至少一个断开会话所产生的输出数据(步骤958)。在多个实施例中,输出数据可以从输出发送器中的诸如缓存器的存储装置接收。在其他实施例中,输出数据可以从输出发送器接收,该输出发送器拦截在会话中执行的应用程序所产生的输出数据并且将该输出数据发送给客户机。
现在参考图10A,示出用于在远程机器上产生计算环境用于在本地机器上显示的系统的一个实施例的框图。总的来说,系统包括第一客户机102a、第一代理1002、第二客户机102b和第二代理1010。第一客户机102a上执行的第一代理1002产生计算环境1004,该计算环境1004包括多个窗口1006a-1006n并且提供对以下资源的访问:i)第二客户机102b的用户可用并且由第一客户机102a提供的资源1015,和ii)第二客户机102b提供的第二客户机102b的用户可用的资源1020。第一代理1002产生用于显示在计算环境1004中的代理窗口1008。代理窗1008表示第二客户机102b上的显示第二客户机102b提供的资源1020所产生的输出数据的本地窗口1014。代理窗1008具有和计算环境1004中的多个窗口1006a-n相关的z顺序列表中的z顺序项。第二客户机102b上的第二代理1010从第一代理1002接收和计算环境1004相关的z顺序列表中的至少一个项,并且将第二客户机102b上的窗口1014相关的窗口属性数据的改变的标识传输给第一代理1002,以由第一代理1002修改计算环境1004。
在一个实施例中,第一客户机102a是移动计算装置。在另一个实施例中,第二客户机102b是客户机计算装置。仍在一个实施例中,第一客户机102a和第二客户机102b的其中一个可以是服务器106。甚至在另一个实施例中,资源在移动计算装置102a上执行。在又一个实施例中,在移动计算装置上执行资源所产生的输出数据显示在可以是客户机计算装置的第二客户机上。在一些实施例中,执行客户机102b上的资源204所产生的输出数据合并在移动计算装置上的显示器中。
现在参考图10A并且更详细地,第一客户机102a上执行的第一代理1002产生计算环境1004,该计算环境1004包括多个窗口1006a-1006n并且提供对以下资源的访问:i)第二客户机102b的用户可用并且由第一客户机102a提供的资源1015,和ii)第二客户机102b提供的第二客户机102b的用户可用的资源1020。在一个实施例中,第一客户机102a是服务器106。在另一个实施例中,第二客户机102b是连接到服务器106的客户机装置102,用来访问第二客户机102b的用户可用的一个或者多个资源。
在一个实施例中,资源1015、1020包括程序、应用程序、文档、文件、多个应用程序、多个文件、可执行程序文件、桌面环境、计算环境或者第二客户机102b的用户可用的其它资源。资源1020可以经由多个访问方法递送到第二客户机102b,这些方法包括但不限于传统直接安装到第二客户机102b上,经由应用程序流的方法递送到第二客户机102b,将执行第三机器106’上的资源1020的执行所产生并且经由表示层协议发送到第二客户机102b的输出数据递送给第二客户机102b,将经由第一客户机102a上执行的虚拟机器执行资源1020、或者从连接第二客户机102b的诸如USB装置的可移动存储装置执行所产生的输出数据递送到第二客户机102b。在一些实施例中,第二客户机102b将通过执行资源1020所产生的输出数据传送到另一个客户机器102’
在一些实施例中,第二客户机102b的用户连接到第一客户机102a并且查看第二客户机102b的显示器上的计算环境1004的本地版本1012,其包括在第一客户机102a上产生的多个窗口1006a-n。在其中一个这样的实施例中,至少一个资源通过第一客户机102a提供给用户并且显示在计算环境1004中。然而,可以存在用户在第二客户机102b上通过选择或者由于策略或者技术需求而执行的资源。在另一个这样的实施例中,用户可以从第一客户机102a所产生的远程桌面界面调用本地应用程序,并且将本地应用程序和第一客户机102a所提供的远程应用程序显示在同一桌面环境中。仍在另一个这样的实施例中,第二客户机102b的用户宁愿使用提供对用户可用的所有资源的访问的集成桌面环境,而不是用于单独机器提供的资源的单独桌面环境。例如,用户会发现在多个图像显示器之间导航令人困惑并且难以有效使用。或者用户可能期望使用一个机器所提供的一个应用程序所产生的数据结合不同机器所提供的另一个资源。在另一个这样的实施例中,通过和集成远程资源和本地资源显示的计算环境交互,可以控制对于执行资源、窗口移动、应用程序最大化/最小化和终止执行资源的请求。在又一个这样的实施例中,在计算环境1004上示出经由集成的桌面环境1004可访问的应用程序或者其它资源(第二客户机102b上产生的和第一客户机102a上所产生的),如同其正在计算环境中执行,或者从计算环境可以执行。例如,资源还可以呈现在开始菜单中提供的可用资源的列表中,可以在桌面或者快速启动菜单中提供快捷方式,并且以和第一客户机102a提供的应用程序相同的方式来开始、选择该资源和与该资源交互。
在一些实施例中,显示单个计算环境1004。在其中一个这样的实施例中,计算环境1004显示为全屏桌面。在其他实施例中,显示多个计算环境1004。在其中一个这样的实施例中,在一个或者多个显示装置124上以非全屏模式显示一个或者多个计算环境。在另一个这样的实施例中,在单个显示装置上以全屏模式显示计算环境。仍在另一个这样的实施例中,在一个或者多个显示装置124上以全屏模式显示一个或者多个计算环境。在又一个这样的实施例中,第二客户机102b提供的资源可以和多个计算环境1004的其中一个集成在一起。
在一些实施例中,第一代理1002产生包括多个窗口1006a-1006n的计算环境1004。在其中一个这样的实施例中,多个窗口1006中的窗口1006a显示通过执行第一客户机102a提供的资源所产生的输出数据。在另一个这样的实施例中,多个窗口1006a-1006n中的窗口1006b显示通过执行第三机器106’提供的资源所产生输出数据,如下结合图12A和12B详细描述的。仍在另一个这样的实施例中,多个窗口1006a-1006n中的窗口1006c显示来自桌面环境中的任务栏。甚至仍在另一个实施例中,窗口1006d表示菜单,诸如开始菜单或者和应用程序关联的上下文特定的菜单。在又一个这样的实施例中,多个窗口1006a-1006n的窗口1006e具有z顺序项,使得其显示在多个窗口1006a-n其它窗口下面并且描述桌面。在其他实施例中,第一代理1002将和多个窗口1006a-n的每一个相关的窗口属性数据发送给第二代理1010。在其中一个这样的实施例中,第二代理1010显示多个窗口1006a-n的本地版本,该本地版本具有和从第一代理1002接收的窗口属性数据相对应的窗口属性数据。
在其中一个这样的实施例中,多个窗口1006a-n和计算环境1004的图形表示和窗口属性数据传送给第二代理1010,用于产生计算环境1004的本地版本。在另一个这样的实施例中,第二代理1010将多个窗口1006和计算环境1004的本地版本1012显示给第二客户机102b的用户。
现在参考图10B,示出第一代理1002将来自不同源的应用程序集成到计算环境1004中的系统的一个实施例的框图。在一些实施例中,并且如图10B所示,第一代理1002可以从多个服务器106接收第二客户机102b的用户可用的资源的标识。在其中一个这样的实施例中,第一代理1002从机器106’、106”、106”’和106””接收可用资源的标识。
在其中一个这样的实施例中,第一客户机102a从服务器106’接收可用资源的标识,接收通过执行服务器106’上资源所产生的输出数据并且将所产生的输出数据发送给第二客户机102b。在另一个这样的实施例中,第一代理1002仅从机器106”接收可用资源的标识,并且机器106”将通过执行资源所产生的输出数据传送给第二客户机102b。
在其中一个这样的实施例中,第一代理1002从机器106”’接收第二客户机102b可用的资源的标识。在另一个这样的实施例中,第一代理1002从第二代理1010接收来自机器106”’和106””的可用资源的标识。仍在另一个这样的实施例中,第二客户机102b经由资源流方法接收来自服务器106”’的可用资源。在此实施例中,第二客户机102b本地执行资源并且图形输出数据和计算环境1004集成在一起。仍在另一个这样的实施例中,第一客户机102a从服务器106””接收可用资源的标识,并且经由资源流方法接收来自机器106””的可用资源并且将通过执行资源所产生的输出数据发送给第二客户机102b。在其他实施例中,第一代理1002从第二代理1010接收第二客户机102b的用户可用的资源1020的表示,用于集成在计算环境1004中。
在一个实施例中,执行第二客户机102b提供的资源可以允许用户操纵第一客户机102a不提供的第二客户机102b的特征,例如,第二客户机102b比第一客户机102a具有更适合的处理能力、图形功能性、带宽或者许可授权用于访问资源。在另一个实施例中,例如因为仅有第二客户机102b的用户拥有应用程序或者拥有执行应用程序所需的资源,诸如操作系统,所以第一客户机102a可能不具备执行资源的能力。仍在另一个实施例中,资源1020是诸如经由用于将应用程序从第三机器106’流式传输到第二客户机102b的方法安装在第二客户机102b上的应用程序或者桌面环境。甚至仍在另一个实施例中,资源是其输出数据由第二客户机102b经由表示层协议和第三机器106’通信来接收的应用程序或者桌面环境。在又一个实施例中,第一代理1002接收进行会议或者因特网通信应用程序的标识、用户外围设备,诸如媒体播放器、数字照相机或者web照相机;或者处理器密集、数据密集或者图像密集的应用程序,诸如媒体编辑应用程序或者计算机辅助设计应用程序。
返回参考图10A,第一代理1002将资源1020的标识合并到计算环境1004中。在其中一个这样的实施例中,第一代理1002将程序执行快捷方式添加到菜单用于请求执行资源,程序执行快捷方式对应于识别的资源1020。在另一个这样的实施例中,第一代理1002产生和资源1020相关的图形表示,诸如图标,用于显示在计算环境1004中。或者,第一代理1002可以从第二代理1010接收图形表示,用于显示在计算环境1004中。仍在另一个这样的实施例中,用户通过和计算环境1004的本地版本中的显示的程序执行快捷方式或者图形表示交互来请求执行资源1020。
在一个实施例中,响应于用户和程序执行快捷方式或者图形表示的交互,第一代理1002接收执行资源1020的请求,并且将执行的请求发送给第二代理1010。在另一个实施例中,用户通过和计算环境1004的本地显示1012交互来请求执行资源;例如,通过选择文件的图形表示、文档、统一资源定位符、或者桌面环境显示的其它资源。
第一代理1002产生用于合并到计算环境1004的代理窗口1008。在一个实施例中,第一代理1002称之为代理窗口管理部件1002。在另一个实施例中,代理窗口管理部件1002用于使得代理窗口1008符合客户机启动的对窗口属性数据的改变。仍在另一个实施例中,代理窗口管理部件1002用于监控任一桌面对窗口属性数据启动的改变并且将其发送给第二客户机1010,其将它们应用到对应的本地应用程序窗口1014。
在又一个实施例中(图10A中所示),代理窗口管理部件1002提供附加的功能性。在其中一个这样的实施例中,这样的功能性可以包括MICROSOFT Active Accessibility(MSAA)钩子和其它监控机制来检测新的应用程序窗口和在桌面上进行的窗口属性数据改变。在这些实施例的另一个中,代理窗口管理部件1002可以还包括对启动所公布的应用程序的支持。在另一个这样的实施例中,代理窗口管理部件1002可以发送从远程机器106(桌面)启动的关于对窗口属性数据的改变更新到第二代理1010,在第二代理1010处更新可以应用到本地窗口1014,并且应用到多个窗口1006a-n的本地显示。甚至仍在另一个这样的实施例中,代理管理部件1002可以使得能够把客户机启动的更新应用到和代理窗口1008相关的窗口属性数据和多个数据对象1006a-n。在又一个这样的实施例中,代理管理部件1002可以在客户机连接消失时将代理窗口移除。
在一些实施例中,第一代理1002和第二代理1010包括用于拦截窗口相关消息的钩子部件。例如,在一些实施例中,微软WINDOWS操作系统在其上执行的机器102或者106上执行的代理可以使用某个版本的MICROSOFT Active Accessibility钩子来监控相关的窗口事件。例如并且在其他实施例中,代理可以包括MICROSOFT Computer-based Training(CBT)窗口钩子,或者其他钩子机制来拦截和监控窗口事件。
代理窗口1008表示第二客户机102b上的窗口1014,其显示第二机器提供的资源所产生的输出数据。代理窗口1008具有和计算环境1004中的多个窗口1006a-n相关的z顺序列表中的z顺序项。在一个实施例中,代理窗口1008具有传统的窗口可视状态,位置、大小、z顺序、光标状态、最小化/正常/最大化状态和任务栏按钮,并且显示在远程桌面的Alt-TAB选择对话框中。在另一个实施例中,代理窗口1008响应远程桌面启动的改变可视状态或者来唤醒其任务栏菜单的要求。仍在另一个实施例中,本地应用程序窗口1014的可视状态和对应的代理窗口1008的可视状态同步。仍在另一个实施例中,代理窗口1008可以将可视状态改变请求经由第一代理1002传递给第二代理1010,而不需要将它们应用到自身。
在一个实施例中,第一代理1002不将代理窗口1008传送给第二代理1010,仅传送代理窗口1008相关的窗口属性数据。在另一个实施例中,代理窗口1008不需要绘制在计算环境1004上,或者可以很有效地绘制,例如用统一颜色。仍在另一个实施例中,第一代理1002知道和代理窗口1008相关的裁剪区域并且不发送用于那些区域的窗口属性数据。
第二客户机102b上的第二代理1010从第一代理1002接收和计算环境1004相关的z顺序列表中的至少一项。第二代理1010将对于和第二客户机102b上的窗口1014相关的窗口属性数据的变化的标识发送给第一代理1002,以由第一代理1002修改计算环境1004。在一个实施例中,第二代理1010是第二客户机102b上执行的集成窗口管理部件1010,用于列举、监控和管理集成在远程桌面1004中的本地窗口1014。在另一个实施例中,集成的窗口管理部件1010管理集成在远程桌面1004中的所有本地窗口1014。仍在另一个实施例中,集成的窗口管理部件1010在虚拟信道上将窗口存在和客户机启动的可视状态改变发送给第一客户机102a上的第一代理。
在又一个实施例中,集成的窗口管理部件1010提供附加的功能性。在其中一个这样的实施例中,这样的功能性可以包括MICROSOFT ActiveAccessibility(MSAA)钩子和其它监控机制,用来检测新的应用窗口和客户机上进行的窗口属性数据改变。仍在另一个这样的实施例中,代理窗口管理部件1002可以发送从客户机102a进行的关于对于窗口属性数据的改变的更新到第一代理1002,在第一代理1002处该更新可以应用到代理窗口1008和多个窗口1006a-n的本地显示器。甚至仍在另一个实施例中,代理管理部件1002可以使得能够将桌面进行的更新应用到和本地窗口1014相关的窗口属性数据和多个窗口1006a-n的本地显示。
在一些实施例中,第一客户机102a和第二客户机102b使用表示层协议通信,例如经由ICA协议或者RDP协议通信。在其中一个这样的实施例中,第一代理1002和第二代理1010经由第一虚拟信道交换图形数据,即实际显示在桌面环境上的每个窗口中的数据。在另一个这样的实施例中,第一虚拟信道是ICA虚拟信道。仍在另一个这样的实施例中,关于窗口位置、窗口大小、窗口的z顺序以及其他的信息在第一客户机102a和第二客户机102b之间经由第二虚拟信道来传输。在又一个这样的实施例中,第二虚拟信道是ICA虚拟信道。在其他实施例中,第一代理1002和第二代理1010交换窗口属性数据。在其中一个这样的实施例中,第一代理1002和第二代理1010还交换图形数据。在另一个这样的实施例中,第一客户机102a上执行的第三代理和第二代理1010交换图形数据。仍在另一个这样的实施例中,第一客户机102a上执行的第三代理和第二客户机102b上执行的第四代理交换图形数据。
现在参考图11A,示出用于在远程机器上产生计算环境用于本地机器上显示的方法所采取步骤的实施例的流程图。在包括远程机器和用户所使用的本地机器的网络计算系统中,用于在远程机器上产生计算环境显示在本地机器上(其中计算环境提供对本地机器提供的资源和远程机器提供的资源的集成的访问)的方法包括第一机器上执行的第一代理监控用于显示在第二机器上的计算环境的步骤,该计算环境包括多个窗口并且提供对以下的访问:i)第一机器提供的第二机器的用户可用的资源,和ii)第二机器提供的第二机器的用户可用的资源(步骤1102)。第一代理产生表示第二机器上窗口的代理窗口,用于显示第二机器提供的资源所产生的输出数据,代理窗口具有和计算环境中的多个窗口相关的z顺序列表中的z顺序项(步骤1104)。第一代理将和计算环境中的多个窗口中的一个窗口相关的z顺序列表中至少一项传递给第二机器上的第二代理(步骤1106)。第一代理接收对于和第二机器上的窗口相关的窗口属性数据的改变的标识(步骤1108)。第一代理响应于该改变的标识来修改计算环境(步骤1110)。
第一机器上执行的第一代理监控用于显示在第二机器上的计算环境,该计算环境包括多个窗口并且提供对以下的访问:i)第一机器提供的第二机器的用户可用的资源,和ii)第二机器提供的第二机器的用户可用的资源(步骤1102)。在一个实施例中,第一代理1002监控计算环境1004和多个窗口1006a-n的产生和修改,窗口1006a-n提供对远程服务器上执行的多个资源1015(诸如第一客户机102a)和第二客户机102b提供的至少一个资源1020的访问。
第一代理产生表示第二机器上窗口的代理窗口,用于显示第二机器提供的资源所产生的输出数据,代理窗口具有和计算环境中的多个窗口相关的z顺序列表中的z顺序项(步骤1104)。在一个实施例中,使用代理窗口1008本地窗口1014被反映在远程桌面窗口列表中,代理窗口1008具有计算环境1004中的尺寸、位置、z顺序值和焦点状态。这些窗口属性在第二客户机102b和第一客户机102a之间保持同步。
在一些实施例中,第二代理1010接收计算环境中和本地资源1020相关的本地显示1012上的区域对应的区域的标识。在其中一个这样的实施例中,第二代理1010从第一代理1002接收标识。在以下另外详细描述的另一个这样的实施例中,第二代理1010响应于从第一代理1002接收的信息来识别该区域。仍在另一个这样的实施例中,如下详细描述的,第二代理1010响应于识别来自第一代理1002的通信信息的色键来识别该区域。
在一些实施例中,本地显示器1012是显示计算环境1004的图形输出数据的单个窗口,包括多个窗口1006a-n的窗口输出。在其中一个这样的实施例中,单个窗口1006a不需要在客户机上具有对应的无缝窗口。在另一个这样的实施例中,本地显示器1012维持为最上层的窗口,从而将本地应用程序保持在客户机z顺序中的本地显示器1012下面。仍在另一个实施例中,本地显示器1012的区域透明显示用来允许本地窗口1014的正确部分通过本地显示器1012示出,如同本地窗口1014处于计算环境1004中。甚至在另一个实施例中,代理窗口1008显示在计算环境1004中和本地显示器1012的透明显示的区域相对应的区域上。在又一个这样的实施例中,透明区域称之为裁剪区域。
在一些实施例中,为了识别要使之透明的区域,第一代理1002使用代理窗口1008来识别裁剪区域。在其中一个这样的实施例中,第一代理1002拦截计算环境1004上的绘制请求。在另一个这样的实施例中,第一代理1002将裁剪区域的标识发送给第二代理1010。
在其他实施例中,第二代理1010识别通过本地资源1020显示的本地显示器1012的区域。在其中一个这样的实施例中,第二代理1010响应于从第一代理1002接收的信息来识别该区域。在另一个这样的实施例中,第二代理1010识别从第一代理1002接收的键值,诸如色键或者可标识模式或者识别裁剪区域的标签。
仍在其他实施例中,第二代理1010确保资源1020将输出数据绘制到合适的本地窗口1014,该本地窗口1014位于和计算环境中的裁剪区域相对应的区域中。在其中一个这样的实施例中,和窗口管理部件相通信的第二代理1010确保本地显示器1012保持在最上层,并且,除了要显示在裁剪区域中的输出数据外,还显示和计算环境1004相关的图形输出数据。在另一个这样的实施例中,第二代理1010指示窗口管理部件将把区域(本地显示器1012的区域)绘制成特定颜色或者模式的指令当作是指示保持该区域透明的指令。该色键可以包括可以将其同所有非透明颜色(不使用部分透明的资源)区分的α(alpha)值(例如32位{R、G、B,α}而不是104位{R、G、B}值)。
在又一些实施例中,代理1002通过使用以色键绘制窗口响应从窗口管理部件到代理窗口的绘制请求来绘制用于代理窗口1008的裁剪区域。在其中一个这样的实施例中,代理1010将色键(color key)中的绘制请求和合适的本地应用程序窗口相关联。在另一个这样的实施例中,代理1010还需要使用对于(部分)已有裁剪区域的不同颜色的绘制请求,来从相关的裁剪区域移除已绘制的区域。
在一些实施例中,第一代理1002可以以色键绘制裁剪区域,而不是发送z顺序项到第二代理1010。在其他实施例中,第一代理1002为和本地窗口1014相关的代理窗口1008发送至少一个z顺序项。在其中一个这样的实施例中,第二代理1010确保本地窗口1014在客户机上具有和不位于第一客户机102a上的对应代理窗口1008相同的相对z顺序关系,即如果代理窗口1008在第一客户机102a上的代理窗口1008’下面(而不考虑存在多少服务器窗口,以及这些窗口位于A或者B的上方或者下方),则第二代理1010确保本地窗口1014位于本地窗口1014’的下面。
在其他实施例中,本地显示器1012下面的窗口透过以色键绘制本地显示器1012的任何位置显示。在其中一个这样的实施例中,第二代理1010适合的相对Z顺序来维持本地窗口,使得它们正确绘制,并且即使两个窗口占据了整个裁剪区域时,一个之上的窗口将正确阻挡另一个的窗口。在另一个这样的实施例中,第二代理1010还确保用户输入被导引到正确的窗口,例如鼠标点击透明区域将发送到下面的窗口,而不是本地显示器1012。
在一些实施例中,第一代理1002将用于计算环境1004中的每个代理窗口1008的裁剪区域的标识发送给第二代理1010。在其中一个这样的实施例中,第二代理1010指引本地资源1020绘制输出数据到对应裁剪区域的本地显示器1012区域。在另一个这样的实施例中,指引本地资源1020来绘制输出数据到本地显示器1012的区域避免了对于透明的需求。仍在另一个这样的实施例中,第一代理1002识别计算环境1004中和显示本地窗口1014的区域相对应的裁剪区域。甚至仍在另一个这样的实施例中,第一代理1002使用如上所述的色键或者可识别模式或者标签来标记裁剪区域。在其中一个这样的实施例中,代理1002或者代理1010将色键中的绘制请求和合适的本地应用程序窗口相关联。在另一个这样的实施例中,代理1002或者代理1010通过将新近绘制的区域从相关的裁剪区域移除来响应用于应用程序窗口的已有裁剪区域的不同颜色的绘制请求。仍在另一个这样的实施例中,代理1002或代理1010关联用于每个本地窗口的不同色键。在又一个这样的实施例中,第二代理1010响应于从第一代理1002接收的信息来识别裁剪区域。
在一些实施例中,第一代理1002可以以色键绘制裁剪区域,而不是发送z顺序项给第二代理1010。在其他实施例中,第一代理1002可以发送裁剪区域的标识给第二代理1010,而不是发送z顺序项给第二代理。仍在其他实施例中,第一代理1002可以发送除了z顺序项以外的信息给代理1010,以允许代理1010来识别裁剪区域而不是发送z顺序项给第二代理1010。在又一些实施例中,第一代理1002完全不发送z顺序项给第二代理1010。
在其他实施例中,第二代理1010确保本地显示器1012保持在本地桌面环境的最上层。在其中一个这样的实施例中,本地显示器1012用来示出所有的远程桌面图形输出,包括属于本地窗口1014的区域。在另一个这样的实施例中,本地窗口不透明。仍在另一个这样的实施例中,当第二代理1010接收不包含用于和本地窗口相关的裁剪区域的一部份的色键的输出数据时,第二代理1010将输出区域从用于该窗口的裁剪区域移除。
仍在其他实施例中,第二代理1010指引本地资源1020以将其产生的输出数据绘制到本地显示器1012中和第一代理1002识别作为裁剪区域的区域对应的区域。在其中一个这样的实施例中,和窗口管理部件通信的第二代理1002向本地资源1020发送用于显示上下文的WM_PAINT消息,该消息将裁剪区域索引到本地显示器1012上。在另一个这样的实施例中,在裁剪区域的部分发生改变的任何时候,第二代理1010都发送关于裁剪区域的本地窗口的任一更新部分的消息。仍在另一个这样的实施例中,由于本地窗口总是由本地显示器1012覆盖并且不再同步更新其在客户机显示器上可视的区域,所以第二代理1010以周期性刷新循环方式发送绘制消息。甚至仍在另一个这样的实施例中,第二代理1010确保裁剪区域中的用户输入(包括鼠标点击和键盘事件)由本地显示器1012重定向到对应的本地应用程序窗口。这意味着检测裁剪区域中的鼠标事件、确定哪个本地窗口和鼠标事件坐标相关联并且发送该事件到坐标所在的窗口。
如上所述,在一些实施例中,识别裁剪区域。在其中一个这样的实施例中,代理1002或者1010响应于和计算环境相关的信息来计算裁剪区域,包括窗口的列表、其Z顺序、尺寸&位置(如果是非矩形窗口还包括形状)。在另一个这样的实施例中,代理1002或者1010从一个或者多个源请求信息,这些资源包括但不限于无缝虚拟信道、无显示器键盘或鼠标的客户机(Headless Client)所使用的数据、子类窗口、MicrosoftActive Accessiblity(例如使用WinEvent和MSAA钩子)并且通过钩住多种Windows API。仍在另一个这样的实施例中,通过响应或者钩住允许代理1002或者1010查看Windows请求执行区域中绘制操作的窗口的窗口消息(包括WM_PAINT、WM_NCPAINT、WM_ERASEBKGND),代理1002或者1010识别裁剪区域或者裁剪区域的一部分。每当代理1002或者1010识别其中一个这样的消息,对应的区域就增加到相关联窗口的裁剪区域。代理1002或者1010使用哪个窗口接收哪个绘制请求的消息来保持屏幕的哪个区域属于每个应用程序窗口的记录。每当代理1002或者1010拦截覆盖(全部或者部分)用于另一个窗口的已有裁剪区域的不同窗口的绘制请求时,则该部分从窗口的裁剪区域移除。代理1002或者1010还可以直接使用诸如GetRandomRgn()的Windows API函数来获取裁剪区域,其允许代理1002或者1010直接询问窗口查找裁剪区域。在一些实施例中,代理1002和1010如上所述通信来交换第二代理1010请求的信息来修改本地显示器1012或者本地窗口1014或者对应于多个窗口1006a-n的本地窗口,这如下结合图11B描述。
第一代理将和计算环境中的多个窗口中的窗口相关的z顺序列表中至少一项传递给第二机器上的第二代理(步骤1106)。在一些实施例中,第一代理1002将整个z顺序列表传递给第二代理1010。在其他实施例中,第一代理1002将部分z顺序列表传递给第二代理1010。在一个实施例中,第一代理1002将z顺序列表中的至少一项经由和计算环境1004耦合的虚拟信道传递给第二代理1010。在另一个实施例中,第一代理1002经由传送和代理窗口1008相关的窗口属性数据的虚拟信道将管理修改对应本地窗口1014的消息发送给第二代理1010,该本地窗口1014根据虚拟信道传播的窗口属性数据来显示第二客户机102b上执行的资源1020所产生的图形输出数据。
在一个实施例中,第二客户机102b显示多个窗口1006a-n的每一个的本地版本。在另一个实施例中,第二代理1010指示第二客户机102b上的窗口管理部件来为每个本地显示的窗口1006a-n分配第二客户机102b上显示的窗口的z顺序列表的z顺序项。为每个本地显示的窗口1006a-n分配的每个z顺序项导致本地显示窗口1006a-n显示在除了本地窗口1014中显示的本地应用程序的本地显示器之外的和第二客户机102b上的本地应用程序相关的本地窗口上。在此实施例中,本地窗口以客户机侧z顺序保持在计算环境1004的本地显示器1012下面,也就是保持在多个窗口1006a-n的每个窗口下面并且保持在本地窗口1014下面,和多个窗口1006a-n集成在一起。仍在另一个实施例中,多个窗口1006a-n和本地窗口1014根据在第一客户机102a上维持的z顺序列表而显示在第二客户机102b上。
第一代理接收和第二机器上的窗口相关的窗口属性数据的改变的标识(步骤1108)。在一个实施例中,第一代理1002经由虚拟信道接收改变的标识。在另一个实施例中,第一代理1002接收用户最小化本地窗口1014的消息。仍在另一个实施例中,第一代理1002接收用户恢复最小化的本地窗口1014的消息。甚至仍在另一个实施例中,第一代理1002接收用户改变本地窗口1014的尺寸或者位置的消息。在又一个实施例中,第一代理1002接收用户最大化本地窗口1014的消息。
第一代理响应于该改变的标识来修改计算环境(步骤1110)。在一些实施例中,第一代理1002指示在第一客户机102a上执行的操作系统的窗口管理部件来修改计算环境中显示的窗口。在其他实施例中,第一代理1002将消息发送给第二代理1010来恢复本地窗口1014。在其中一个这样的实施例中,第二代理1010发送消息给资源1020来恢复最小化的本地窗口1014。在另一个这样的实施例中,第一代理1002发送消息第一客户机102a上执行的操作系统的窗口管理部件来恢复代理窗口1008。仍在其他实施例中,当第一代理1002终止产生和显示计算环境1004时,第一代理1002发送消息给第二代理1010来中止执行本地资源1020。在一些实施例中,第一代理1002发送消息给第二代理1010来终止第二客户机102b上执行的操作系统。在其中一个这样的实施例中,第一代理1002发送消息给第二代理1010来关闭第二客户机102b。
在一个实施例中,当用户选择和远程资源1015关联的窗口1006a并且本地窗口1014失去焦点时,第二代理1010发送消息给第一代理1002来指示第一代理1002指导窗口管理部件将焦点从代理窗口1008移除并且聚焦到多个窗口1006a-n中的窗口1006a上。在另一个实施例中,当用户选择和远程资源1015相关的窗口1006a并且本地窗口1014失去焦点时,第二代理1010允许资源1020绘制在其窗口内,使得本地和远程资源完全透明显示。
现在参考图11B,示出用于在本地机器上显示远程机器产生的桌面环境的方法所采取步骤的一个实施例的流程图,该计算环境提供对本地机器提供的资源和远程机器提供的资源的集成访问。总的来说,该方法包括本地机器上执行的代理显示远程机器产生的计算环境并且提供对以下资源的访问:i)本地机器上用户可用的远程资源,和ii)本地机器的用户可用的本地资源(步骤1120)。该代理接收z顺序列表中的至少一项,该z顺序列表包括计算环境中的至少一个窗口的z顺序项,并且包括和显示本地资源产生的输出数据的本地机器上的本地窗口相对应的代理窗口的z顺序项(步骤1122)。响应于所接收的z顺序项,代理修改显示的计算环境的窗口属性数据(步骤1124)。本地机器上执行的代理将对于显示本地资源所产生的输出数据的本地机器上的本地窗口的z顺序项的改变的标识传输给远程机器上的代理(步骤1126)。响应于改变的标识,远程机器上的代理修改表示远程机器上的z顺序列表中的本地窗口的代理窗口的z顺序项,代理窗口具有和计算环境中的多个窗口相关的z顺序列表中的z顺序项(步骤1128)。
本地机器上执行的代理显示远程机器产生的计算环境并且提供对以下资源的访问:i)本地机器上用户可用的远程资源,和ii)本地机器的用户可用的本地资源(步骤1120)。在一个实施例中,代理1010从代理1002接收图形数据和窗口属性数据并且将图形数据显示在根据窗口属性数据形成的窗口中。在另一个实施例中,代理1010接收图形数据和形成计算环境的多个窗口的对应窗口属性数据并且将图形数据显示在根据窗口属性数据形成的多个窗口中。在其他实施例中,第一代理1002和第二代理1010交换窗口属性数据。在其中一个这样的实施例中,第一代理1002和第二代理1010还交换图形数据。在另一个这样的实施例中,第一客户机102a上执行的第三代理和第二代理1010交换图形数据。仍在另一个这样的实施例中,第一客户机102a上执行的第三代理和第二客户机102b上执行的第四代理交换图形数据。在又一个这样的实施例中,第一客户机102a上的第一代理1002和第二客户机102b上执行的第四代理交换图形数据。
代理接收z顺序列表中的至少一项,该z顺序列表包括计算环境中的至少一个窗口的z顺序项,并且包括和显示本地资源产生的输出数据的本地机器上的本地窗口相对应的代理窗口的z顺序项(步骤1122)。在一个实施例中,代理1010根据z顺序中的至少一项显示本地窗口1014和根据所接收的窗口属性数据形成的多个窗口1006a-n,该本地窗口1014显示通过执行资源1020所产生的输出数据。在另一个实施例中,代理1010监控多个窗口1006a-n和本地窗口1014的本地显示器。在另一个实施例中,和在第二客户机102b上执行的操作系统的窗口管理部件通信的代理1010管理多个窗口1006a-n和本地窗口的本地显示。
响应于所接收的z顺序项,代理修改显示的计算环境的窗口属性数据(步骤1124)。在一些实施例中,代理修改多个窗口1006a-n中的本地版本的窗口1006a的z顺序项。在其他实施例中,代理修改多个多个窗口1006a-n的本地版本的窗口1006a的窗口属性数据。在其中一个这样的实施例中,代理调整多个窗口1006a-n的本地版本的窗口1006a的大小。在其中一个这样的实施例中,代理重新定位多个窗口1006a-n中的本地版本的窗口1006a。例如,响应于所接收的作为执行服务器上窗口层叠的窗口管理部件的z顺序项,代理可以修改本地窗口1014的窗口属性数据。
在一些实施例中,如上结合图11A所述(步骤1106),处理接收z顺序项,第二代理1010不是接收z顺序项而是接收计算环境中与和本地资源1020相关的本地显示上的区域对应的裁剪区域的标识。在其中一个这样的实施例中,第二代理1010从第一代理1002接收标识。在另一个这样的实施例中,如上附加详细描述的,第二代理1010响应于从第一代理1002接收的信息来识别区域。仍在另一个这样的实施例中,如上附加详细描述地,第二代理1010响应于识别来自第一代理1002的通信信息中的色键来识别该区域。
本地机器上执行的代理将对显示本地资源所产生的输出数据的本地机器上的本地窗口的z顺序项的改变的标识传输给远程机器上的代理(步骤1126)。在一个实施例中,当第二客户机102b的用户对本地窗口1014进行了改变,例如,通过最小化、最大化或者调整窗口的大小,则代理1010将消息传递给代理1002来对代理窗口1008和将多个窗口1006a-n和代理窗口1008排序的z顺序列表中的其z顺序项进行对应的改变。
响应于改变的标识,远程机器上的代理修改表示远程机器上的z顺序列表中的本地窗口的代理窗口的z顺序项,代理窗口具有和计算环境中的多个窗口相关的z顺序列表中的z顺序项(步骤1128)。在一个实施例中,代理1010为本地窗口1014分配和代理窗口1008的z顺序项同步的z顺序项,其具有包括多个窗口1006a-n的z顺序项的z顺序列表中的z顺序项。在另一个实施例中,产生包括用于服务器106上资源执行产生的窗口和客户机102上资源执行的窗口的项的z顺序列表允许集成和交迭本地和远程窗口的显示器。
现在参考图12A,示出用于产生显示在本地机器上的远程机器的计算环境的系统的实施例的框图,该计算环境提供对本地机器提供的资源和第二远程机器提供的资源的集成访问。总的来说,该系统包括第一代理1002、第一客户机102a、第二客户机102b、第二代理1010和远程机器106’。第一代理1002接收第二客户机102b的用户可用并且由远程机器106’提供的远程资源1210的标识。第一客户机102a上执行的第一代理1002产生计算环境1004,包括多个窗口1006a-206n并且提供对以下的访问:i)远程机器106’提供的第二客户机102b的用户可用的资源1210,和ii)第二客户机102b提供的第二客户机102b的用户可用的资源1020。第一代理1002接收要执行远程机器106’提供的远程资源1210的请求。第一代理1002指示第二客户机102b上的第二代理1010来请求执行远程机器106’提供的远程资源1210。第二代理1010将对于第二客户机102b上的本地窗口1014的z顺序项的改变的标识传输给第一代理1002,本地窗口1014显示远程机器106’提供的远程资源1210产生的输出数据。响应于变化的标识,第一代理1002修改表示第一客户机102a上的z顺序列表中的本地窗口1014的代理窗口1008的z顺序列表,代理窗口1008具有和计算环境1004中的多个窗口1006相关的z顺序列表中的z顺序项。
第二代理1010提供对计算环境1004的访问。在一些实施例中,请求在计算环境1004到远程机器106’之间建立无缝穿透表示层协议连接。在其中一个这样的实施例中,在第二客户机102b上执行第二客户机代理1010’来替代建立第二客户机102b和远程机器106’之间的连接。在另一个这样的实施例中,第二客户机代理1010’看上去类似于客户机侧应用程序,其通过第二代理1010和第一代理1002使用上述结合图10A、10B、11A和11B描述的方法相应集成在远程桌面中。在一个实施例中,第二客户机代理1010’是RDP客户机。在另一个实施例中,第二客户机代理1010’是ICA客户机。
现在参考图12B,示出用于产生显示在本地机器上的远程机器的计算环境的系统的一个实施例的屏幕截图,该计算环境提供对本地机器提供的资源和第二远程机器提供的资源的集成访问。如图12B所描述的,在客户机102b上执行两个表示层协议会话。具有粗体边界的会话1220是提供对桌面环境1004访问的ICA会话。具有虚线边界的会话1230是提供对资源(如图12B中,资源是字处理程序WICROSOFT WORD)访问的ICA会话。作为本地窗口1014的WORD应用程序窗口已经和桌面会话的表示相合并,其通过计算环境1004表示。如果第一客户机102a已经建立该会话,第一客户机102a将会接收输出数据并且将输出数据随后转发给第二客户机102b用于显示。替代地,在此实施例中,第二客户机102b建立访问WORD所要求的表示层协议会话,而不是第一客户机102a建立表示层协议会话,并且第二客户机102b直接从远程机器106接收输出数据。
现在参考图13,示出用于产生在本地机器上显示的远程机器上的计算环境的方法所采取的步骤的实施例的流程图,计算环境提供对本地机器提供的资源和第二远程机器提供的资源的集成访问,该方法包括在第一机器上执行的第一代理接收第三机器提供的第二机器的用户可用的远程资源的标识的步骤(步骤1302)。第一代理监控第一机器上的计算环境,计算环境包括多个窗口并且提供对以下的访问:i)第三机器提供的远程资源和ii)第二机器提供的第二机器的用户可用的资源(步骤1304)。第一代理接收执行第三机器提供的远程资源的请求(步骤1306)。第一代理指示第二机器上的第二代理来请求执行第三机器提供的远程资源(步骤1308)。第二代理将对于第二机器上本地窗口的z顺序项的改变的标识传递给第一代理,第二机器显示第三机器提供的远程资源执行的输出数据(步骤1310)。响应于改变的标识,第一代理修改表示表示第一机器上的z顺序列表中的本地窗口的代理窗口的z顺序项,代理窗口具有和计算环境中的多个窗口关联的z顺序列表中的z顺序项(步骤1312)。
现在参考图13并且更详细地,在第一机器上执行的第一代理接收第三机器提供的第二机器的用户可用的远程资源的标识(步骤1302)。在一个实施例中,第一代理1002接收来自远程机器106’的标识。在另一个实施例中,第一代理1002接收来自第二客户机102b的标识。仍在另一个实施例中,第一代理1002接收来自远程机器106’上的代理和第二客户机102b之一的标识。在又一个实施例中,第一代理1002接收来自第四机器106”’的标识。在一个实施例中,资源1210包括程序、应用程序、文档、文件、多个应用程序、多个文件、可执行程序文件、桌面环境、计算环境或者第二客户机102b的用户可用的其它资源。资源1210可以经由多个访问方法递送到远程机器106,包括但不限于传统直接安装在远程机器106上,经由用于应用程序流式传输的方法递送到远程机器106,或者从连接到远程机器106的诸如USB设备的可移动存储设备执行。
第一代理监控第一机器上的计算环境,计算环境包括多个窗口并且提供对以下的访问:i)第三机器提供的远程资源和ii)第二机器提供的第二机器的用户可用的资源(步骤1304)。在一些实施例中,第一代理如上面结合图10A、10B、11A和11B描述的那样监控计算环境1004。
第一代理接收执行第三机器提供的远程资源的请求(步骤1306)。在一个实施例中,第一代理1002经由第一代理1002和第二代理1010之间的诸如ICA信道的通信信道来接收请求。在另一个实施例中,当第二客户机102b的用户选择在计算环境1004的本地显示器1012中示意的远程资源的图形表示时,第一代理1002接收该请求。例如,第一代理1002可以产生远程资源1210的图形表示,诸如图标,并且在从远程机器106’接收到远程资源1210的标识时将图标合并到计算环境1004中。仍在另一个实施例中,当第一客户机102a和第二客户机102b的其中一个上执行的资源试图访问要求执行远程资源1210的诸如文件的资源时,第一代理1002接收执行远程资源1210的请求。
第一代理指示第二机器上的第二代理来请求执行第三机器提供的远程资源(步骤1308)。在一个实施例中,第一代理1002指示第二代理1010来执行第二客户机102b上的另一个代理1010’并指示第二代理1010’来请求执行远程机器106’提供的远程资源1210。在另一个实施例中,第二代理1010’是表示层协议客户机,诸如ICA或者RDP客户机。仍在另一个实施例中,第二代理1010’建立到远程机器106’的连接并且请求执行远程资源1210。在又一个实施例中,第二代理1010’接收执行远程资源1210所产生的输出数据并且将输出数据显示在本地窗口1014中。在一些实施例中,当确定请求的资源不可用或者不能从第二客户机102b执行时,则第二代理1010指示第一代理1002来请求在服务器106上执行远程资源。
第二代理将对于第二机器上本地窗口的z顺序项的改变的标识传递给第一代理,第二机器显示第三机器提供的远程资源执行的输出数据(步骤1310)。在一个实施例中,第二代理1010将对于本地窗口1014的z顺序项的改变的标识传输给第一代理1002。在另一个实施例中,第二代理1010将对于本地窗口1014的z顺序项的改变的标识如上结合图10A、10B、11A和11B描述的那样传输给第一代理1002。
响应于改变的标识,第一代理修改表示第一机器上的z顺序列表中的本地窗口的代理窗口的z顺序项,代理窗口具有和计算环境中的多个窗口关联的z顺序列表中的z顺序项(步骤1312)。在一些实施例中,第一代理1002如上结合图10A、10B、11A和11B描述的那样修改代理窗口1008的z顺序项。
在一些实施例中,此处描述的方法和系统提供用于解决在移动装置上显示输出数据的限制的功能性,包括由于相对小的显示形状因子和受限的计算能力引起的限制。在其中一个这样的实施例中,提供该方法和系统用于将移动装置变成应用程序递送信道。在另一个这样的实施例中,不需要改变已有桌面应用程序来执行这些方法和系统,并且在支持应用程序递送的移动装置上可以访问多种应用程序。
现在参考图14A,示出用于在移动计算装置执行用于和资源交互的虚拟输入装置的系统的一个实施例的框图,其中,该资源的输出数据显示在外部显示装置上。总的来说,该系统包括移动计算装置102、移动计算装置102上的本地显示器201、外部显示装置202和虚拟输入装置1402。移动计算装置102执行第一资源1404。外部显示装置202显示通过执行第一资源1404产生的输出数据。移动计算装置102执行第二资源1406。第二资源1406产生虚拟输入装置1402。虚拟输入装置1402调节移动计算装置102的一个或者多个能力。虚拟输入装置1402允许移动计算装置102的用户和通过执行第一资源1404所产生的输出数据的显示之间的交互。
现在参考图14A并且更详细地,系统包括移动计算装置102。在一个实施例中,该系统是如上结合图1-13描述的移动装置102。在另一个实施例中,系统包括移动计算装置102上的本地显示器201、外部显示装置202和虚拟输入装置1402。移动计算装置102执行第一资源1404。
外部显示装置202显示通过执行第一资源1404产生的输出数据。在一个实施例中,外部显示装置202是监控器。在另一个实施例中,外部显示装置202是投影机。仍在另一个实施例中,移动计算装置102连接或者接附到外部显示装置202,诸如将输出数据发送到外部显示表面的投影机。在多个实施例中,外部显示装置202可以集成到移动计算装置102中。例如,移动计算装置102可以包括微型投影机,其将通过在移动计算装置102上执行的资源所产生的输出数据显示导引到诸如投影屏幕、墙壁或者其它显示表面的外部显示表面。在一些实施例中,移动计算装置102可以包括基于微电子机械系统(MEMS)的投影模块,诸如但不限于WA Redmond的Microvision公司出品的PicoP显示引擎。
移动计算装置102执行第二资源1406。第二资源1406产生虚拟输入装置1402,用于由移动计算装置1406的用户和通过执行第一资源所产生的输出数据的显示器相交互。在多个实施例中,移动计算装置102可以根据第一资源1404的输入需求、移动计算装置102的标识或者二者来执行第二资源1406。在一个实施例中,虚拟输入装置1402包括键盘的图形表示。在另一个实施例中,虚拟输入装置1402包括虚拟轨迹板。在另一个实施例中,虚拟输入装置1402包括虚拟指示装置,诸如可以通过和虚拟输入装置1402交互来操控的光标。
虚拟输入装置1402可以显示在移动计算装置102的本地显示器201上。虚拟输入装置1402允许移动计算装置102的用户和通过执行第一资源1404产生的输出数据的显示之间的交互。在一些实施例中,移动计算装置102上的本地显示器201包括触摸屏。在其中一个这样的实施例中,触摸屏传感器包括检测来自移动计算装置102的用户的触摸输入的触摸响应表面。在另一个这样的实施例中,在触摸响应的表面上显示虚拟输入装置140。仍在另一个这样的实施例中,触摸屏传感器将触摸响应表面上的触摸输入的位置的标识重定向到移动计算装置102上的操作系统。在另一个这样的实施例中,操作系统将触摸输入的位置的标识重定向到第二资源1406用于处理。仍在另一个这样的实施例中,第二资源1406将触摸输入的位置和显示的用户交互元件相关联。在又一个这样的实施例中,第二资源1406将和显示的用户交互元件交互的用户的标识发送给第一资源1404。
在一个实施例中,虚拟输入装置1402包括虚拟键盘和虚拟指示装置并且和这些虚拟部件的交互被重定向到移动装置功能或者到次级外部装置。例如,在另一个实施例中,具有全QWERTY键盘和光标定位按钮或者游戏杆按键的移动装置可以具有由重定向到那些功能把的虚拟键盘和鼠标接收的输入。仍在另一个实施例中,具有触摸屏的移动装置可以重新作为“软键盘”和“软鼠标”并且通过虚拟键盘和鼠标接收的输入可以直接重定向到执行的资源。甚至仍在另一个实施例中,移动装置通过外部连接的键盘或者鼠标接收的输入数据可以重定向到虚拟键盘和鼠标。
在一些实施例中,第一资源1404还可以从其他装置接受输入,诸如摄像头、麦克风、电子收款机(POS)装置等等。在其中一个这样的实施例中,虚拟输入装置1402可以提供任意一个这些装置的虚拟化版本并且可以重定向这些装置的数据通信。例如并且在另一个这样的实施例中,如果移动计算装置102具有内置摄像头,外部显示装置202上显示的并且从摄像头接受输入的应用程序可以定向为使用移动装置摄像机。仍在另一个这样的实施例中,并且通过示例,具有音频输出的应用程序可以定向到移动装置的扬声器或者头戴话筒。
现在参考图14B,屏幕截图示出在本地显示器201上显示虚拟输入装置1402的移动计算装置102的实施例,其中虚拟输入装置1402允许用户和与诸如字处理应用程序的资源1406相关的输出数据相交互。在此实施例中,资源1406可以在移动计算装置102上执行。当移动计算装置102连接到外部显示装置202时,窗口管理服务206可以检测该连接并且在外部显示装置202上显示和资源1406相关的输出数据,而不是显示在移动计算装置102的本地显示器201。在此实施例中,外部显示装置202是在诸如墙壁的表面上显示输出数据的投影机。
响应于把数据传送到外部显示装置202,移动计算装置102可以执行产生虚拟输入装置1402的资源。移动计算装置102可以评估资源1406来确定其输入需求。在一些实施例中,移动计算装置102可以确定资源接受字母数字输入、音频输入、视频输入或者任一其它类型的输入或者其组合。在此实施例中,资源1402是至少需要字母数字输入的字处理应用程序。随之,移动计算装置102执行资源来产生虚拟或者“软”键盘用于虚拟输入装置1402。虚拟键盘可以显示在本地显示器201上,诸如触摸屏。触摸屏可以检测用户交互并且将和用户交互相关的信息重定向到虚拟输入装置1402。虚拟输入装置1402可以将资源传送到资源1402。
现在参考图14C,屏幕截图示出显示虚拟输入装置1402的移动计算装置的实施例,虚拟输入装置1402用于由用户和与资源相关的输出数据的显示交互。在此实施例中,移动计算装置102执行资源来产生至少一个虚拟轨迹盘。虚拟轨迹盘可以显示在移动计算装置102的本地显示器201上,诸如触摸屏。当触摸屏检测到用户交互时,触摸屏可以将和用户交互相关的信息重定向到产生虚拟输入装置1402的资源。虚拟输入装置1402可以处理该信息并且确定用户命令。虚拟输入装置1402可以将用户命令发送给显示在外部显示装置(未示)上的资源,并且所显示的该资源可以输出对应于用户命令的数据。
图14C的实施例还描述了一种虚拟输入装置1402,该虚拟输入装置1402对于显示在外部显示装置上的资源重新使用移动计算装置102上的键盘的。在此实施例中,移动计算装置102显示通过安装在该装置上的应用程序产生的键盘。触摸屏可以检测用户交互并且将和用户交互相关的信息转送给键盘应用程序。键盘应用程序可以解析用户交互来确定用户命令,诸如输入或者删除字母数字字符。键盘应用程序可以将用户命令传送给虚拟输入装置1402,其可以将关于用户命令的信息发送给其输出数据显示在外部显示装置上的资源。在多个实施例中,一个资源可以产生虚拟轨迹盘并且另一个资源可以重新确定移动计算装置102上的键盘的用途。在其他实施例中,同一资源可以产生虚拟输入装置1402,该虚拟输入装置1402产生虚拟轨迹盘并且重新使用键盘。
现在参考图15,示出用于在移动计算装置的屏幕上显示用于和产生在移动计算装置外的显示器表面上显示的输出数据的资源交互的虚拟输入装置的方法的实施例的流程图。该方法包括移动计算装置执行第一资源(1502)。该方法包括管理在外部显示装置上显示通过执行第一资源产生的输出数据(1504)。该方法包括在移动计算装置上执行产生虚拟输入装置的第二资源(1506)。该方法包括在移动计算装置的屏幕上显示虚拟输入装置(1508)。该方法包括由第二资源向第一资源来传送移动计算装置的用户和虚拟输入装置交互的指示(1510)。在一些实施例中,移动装置102重新作为虚拟输入装置,其将用户输入传送给本地执行的应用程序或者经由表示层协议传送给远程执行的应用程序。
现在参考图15,并且更详细地,移动计算装置102执行第一资源(1502)。在一个实施例中,移动计算装置102执行产生用于显示给移动计算装置的用户的输出数据的应用程序。在一些实施例中,第一资源请求从远程计算机器执行位于远程的资源。在其中一个这样的实施例中,第一资源根据表示层协议和远程计算装置相通信,例如通过经由ICA协议或RDP协议通信。在另一个这样的实施例中,第一资源管理和移动计算装置相关的显示装置上的远程产生的输出数据的显示。在其他实施例中,第一资源保存在移动计算装置上,本地执行并且管理和移动计算装置相关的显示装置上本地产生的输出数据的显示。
对通过执行第一资源产生的输出数据在外部显示装置的显示(1504)进行管理。在一个实施例中,窗口管理服务将输出数据的显示定向到外部显示装置124b。在一个实施例中,移动计算装置102上执行的并且和外部显示装置124b通信的操作系统将输出数据的显示定向到外部显示装置124b。在另一个实施例中,外部显示装置将输出数据投影到外部显示表面,诸如墙壁、屏幕或者其他表面。仍在另一个实施例中,输出数据的显示不会对通过执行第一资源产生的输出数据进行修改。在一些实施例中,输出数据呈现在次级物理显示器上,诸如嵌入式或者外部微投影机、头戴式显示器、膝上笔记本、HDTV或其他显示器。在其中一个这样的实施例中,来自第一资源的所显示的输出经由次级显示器显示,并且从而不仅限于移动计算装置显示器的显示能力。
移动计算装置执行产生虚拟输入装置的第二资源(1506)。在一个实施例中,第二资源和第一资源相通信。在另一个实施例中,第二资源识别要显示的虚拟输入装置的类型,例如第二资源可以基于第一资源支持的交互类型来选择要显示的虚拟输入装置的类型。
在移动计算装置的屏幕上显示虚拟输入装置(1508)。在一个实施例中,虚拟输入装置结合已有的虚拟输入装置来显示,例如移动计算装置可以显示虚拟(或者“软”)键盘并且第二资源可以产生第二虚拟输入装置,诸如结合虚拟键盘显示的虚拟轨迹盘。在另一个实施例中,第二资源可以产生在移动计算装置上显示的自定义虚拟输入装置,来代替第一资源产生的输出数据的显示。仍在另一个这样的实施例中,第一资源产生的输出数据的显示和虚拟输入装置的显示分开,而不是组合到单个显示表面中,诸如内部或者外部显示装置中。
第二资源传送移动计算装置的用户和虚拟输入装置的交互的指示到第一资源(1510)。在一些实施例中,第二资源和第一资源通信,允许用户和第一资源经由第二资源产生的并且在不同于第一资源的单独显示装置上显示的虚拟输入装置来交互。
在一个实施例中,第一资源是移动计算装置102上执行的并且根据表示层协议和远程计算装置106通信的客户机应用程序。在另一个实施例中,第一资源请求通过远程计算装置执行远程资源。仍在另一个实施例中,第一资源从远程计算装置接收通过在远程计算装置上执行远程资源产生的输出数据。甚至仍在另一个实施例中,第一资源将远程资源的执行传送到远程计算装置,并且从第二远程计算装置接收通过在第二远程计算装置上执行远程资源产生的输出数据。在又一个实施例中,移动计算装置将远程产生的输出数据定向到外部显示装置上。
在一些实施例中,此处描述的方法和系统提供用于灵活转换用户和端点装置交互的功能性。在其中一个这样的实施例中,提供该方法和系统来将用户和端点装置的交互转换为远程执行的资源所处理的命令。在另一个这样的实施例中,例如,资源可以在第一计算装置上执行并且产生在第二计算装置上显示的输出数据,第二计算装置可以称之为端点装置,用户和端点装置的交互可以转换为传送给第一计算装置上资源来处理的命令。
在一些实施例中,第一计算装置上执行的资源提供允许用户和资源所产生的输出数据交互的用户界面。在其中一个这样的实施例中,输出数据可以包括和数据一起显示的一个或者多个图形用户界面元素,诸如光标或者滚动条,数据诸如字处理应用程序中的文本或者图形查看或者编辑软件中的图像,并且图形用户界面元素提供一种机制,通过该机制,资源的用户可以和资源产生的数据相交互。在另一个这样的实施例中,用户界面的类型根据用户查看输出数据的计算环境而不同。如上所述,在用户访问来自移动计算装置的输出数据时可提供第一类型的用户界面,并且在用户访问来自不同类型的计算装置(诸如膝上型笔记本)的输出数据时或者在用户访问不同类型的显示装置时可提供第二类型的用户界面。
在一些实施例中,用于和用户界面交互的方法对不同的用户界面是不同的-例如,用户可以访问指示装置(诸如鼠标)来操控屏幕上光标的图像,以和图形用户界面元素相交互,或者用户可以和显示装置上的触摸屏交互并且使用其手指来点击或者拖拉图形用户界面元素从显示器的一部分到另一部分。在其他实施例中,用于和第一类用户界面交互的方法(例如,将鼠标连接到计算装置并且使用鼠标来控制显示装置上的光标来和第一类型的用户界面相交互)在应用到第二类型的用户界面(例如,如果第二类型的用户界面将用户触摸屏幕作为输入,第二类型的用户界面不能提供显示光标或者从指示装置接收输入的功能性)时不起作用;即使该方法起作用,其也可能是用于和第二类型的用户界面交互的次优方法,或者其仅可以提供和第二类型的用户界面交互的有限的功能性。在其中一个这样的实施例中,第一类型的用户界面可以优选用于在第一类型的计算装置上使用,例如支持用户通过触摸屏幕来输入命令的用户界面可以更适用于在包括触摸屏而不是不包括触摸屏的计算装置上使用。仍在其他实施例中,远程执行的应用程序产生并且显示意于经由第一类型的计算装置访问的第一类型的用户界面,但是该第一类型的用户界面显示给从第二类型的计算装置访问用户界面的用户。例如,用户可以从包括触摸屏而不是指示装置的计算装置访问被设计用于从包括指示装置的计算装置访问的第一类型的用户界面。
在一些实施例中,此处描述的方法和系统提供用于将第一类型的输入转换为第二类型的输入的功能性。在其中一个这样的实施例中,用户经由第一类型的界面提供的输入转换为第二类型的界面可以处理的命令。在另一个这样的实施例中,并且通过示例,用户可以查看包括用户界面的数据,用户界面显示诸如滚动条的界面元素并且经由指示装置从用户接收输入命令,然而,用户可以经由触摸屏输入命令并且该命令转换为用户界面可以处理的格式。仍在另一个这样的实施例中,并且作为另一个例子,查看第一部分数据的用户可能请求第二部分数据的显示,例如通过使用触摸屏来滚动数据;将数据从第一部分滚动到第二部分的该命令可以转换为选择图形用户界面来下移(诸如滚动栏中的箭头)的命令并且发送到产生该数据的资源。在又一个这样的实施例中,该功能性的实现允许第一类型计算装置的用户使用适用于在第一类型计算装置上使用的第二类型的用户界面元素来和第一类型的用户界面的显示交互。
现在参考图16,示出用于将用户和第一类型的输入/输出装置交互转换为通过支持和第二类型的输入/输出装置交互的用户界面处理的命令的方法的实施例的流程图。总的来说,该方法包括提供第一类型的输入/输出装置用于和第一类型的用户界面相交互(1602)。该方法包括识别经由第一类型的输入/输出装置和第二类型的用户界面的用户交互(1604)。该方法包括响应于识别的用户交互,来产生用于通过第二类型的用户界面根据用于和第二类型的输入/输出装置交互的协议处理的格式化的命令(1606)。该方法包括通过第二类型的用户界面处理该命令(1608)。
现在参考图16并且更详细地,提供第一类型的输入/输出装置用于和第一类型的用户界面相交互(1602)。在一个实施例中,第一类型的输入/输出装置是触摸屏。在另一个实施例中,第一类型的用户界面包括用于处理基于触摸屏的和用户界面元素的交互的功能性,该用户界面元素通过第一类型的用户界面来显示。仍在另一个实施例中,第一类型的输入/输出装置是诸如键盘或者指示装置的输入/输出装置。甚至仍在另一个实施例中,第一类型的用户界面包括显示给用户的图形元件(诸如光标),并且用户经由第一类型的输入/输出装置与该图形元件交互。在又一个实施例中,第一类型的用户界面提供用于处理和图形元件交互的功能性,该图形元件经由诸如键盘或指示装置的输入/输出装置被接收。
在一些实施例中,第二类型的用户界面显示给用户。在其中一个这样的实施例中,移动计算装置102的用户查看通过移动计算装置102上执行的资源所产生的第二类型的用户界面。在另一个这样的实施例中,移动计算装置102的用户查看远程计算装置106上执行的资源所产生的第二类型的用户界面。仍在另一个这样的实施例中,第二类型的用户界面不包括处理和第一类型的输入/输出装置的用户交互产生的用户输入的功能性。在又一个这样的实施例中,并且通过实例,第二类型的用户界面可以是显示诸如下拉菜单、滚动条和任务栏的窗口小部件的窗口环境,并且包括用于处理使用指示装置或者键盘的用户交互(例如,用户使用鼠标点击滚动条)产生的用户输入的功能性,但不包括用于处理用使用触摸屏的用户交互产生的用户输入的功能性。
识别经由第一类型的输入/输出装置和第二类型的用户界面的用户交互(1604)。在一个实施例中,交互管理部件识别用户交互。在另一个实施例中,用户交互传送到交互管理部件进行处理。在第一类型的输入/输出装置是触摸屏的实施例中,用户可以触摸移动计算装置的屏幕,尝试操控第二类型的用户界面显示的数据,诸如显示下拉菜单的窗口环境。
响应于识别的用户交互来产生命令,该命令被格式化以适用于通过第二类型的用户界面根据用于和第二类型的输入/输出装置相交互协议来处理(1606)。在一个实施例中,交互管理部件访问映射、表或者保存配置数据的其它数据结构来产生命令。在另一个实施例中,交互管理部件分析和第一类型的输入/输出装置的用户交互来识别用户交互所计划的请求或者命令,例如交互管理部件可以确定用户接触一部分触摸屏来请求访问数据或者来产生命令以修改数据的现有显示。仍在另一个实施例中,交互管理部件产生通常是用户和第二类型的用户界面交互的结果的一类命令。在又一个实施例中,并且通过示例,交互管理部件确定用户已经和触摸屏交互来请求修改数据的现有显示并且交互管理部件产生一个命令,该命令等价于在用户已经访问诸如鼠标的输入/输出装置来选择图形用户界面元素所产生的命令。
通过第二类型的用户界面处理该命令(1608)。在一个实施例中,交互管理部件将命令传送给产生第二类型的用户界面的资源。在另一个实施例中,交互管理部件将该命令传送给在移动计算装置102上执行的资源。在另一个实施例中,交互管理部件将命令传送给第二计算装置106上执行的资源。
此处描述的方法和系统可以被提供为实现在一个或者多个制造品之上或之中的一个或者多个计算机可读程序。制造品可以是软盘、硬盘、CD-ROM、闪速存储卡、PROM、RAM、ROM、或者磁带。总的来说,该计算机可读程序可以以任意编程语言实现,LISP、PERL、C、C++、PROLOG、或者诸如JAVA的任意字节码语言。该软件程序可以被存储在一个或者多个制造品之上或之中作为目标代码。
上述所描述的本发明的特定实施例,对于本领域的技术人员来说很明显可以使用包括本发明思想的其它实施例。因此,本发明不应该受限于特定实施例,而应该仅受限于下面的权利要求中的精神和范围。

Claims (50)

1.一种用于在连接到移动计算装置的外部显示装置上显示和至少一个资源相关的输出数据的方法,包括:
由移动计算装置上的虚拟图形驱动器接收连接到移动计算装置的外部显示装置的标识;
由移动计算装置上的窗口管理服务根据该标识来选择至少一个资源显示在外部显示装置上;
由窗口管理服务将和所述至少一个资源相关的输出数据定位在虚拟屏幕空间中;以及
由虚拟图形驱动器根据该虚拟屏幕空间将输出数据传输到外部显示装置。
2.权利要求1的方法,还包括由窗口管理服务根据该标识在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间。
3.权利要求2的方法,还包括由窗口管理服务根据外部显示装置的分辨率来分配对应于外部显示装置的屏幕空间。
4.权利要求1的方法,还包括由窗口管理服务从虚拟屏幕空间中对应于移动计算装置的本地显示器的位置移除和所述至少一个资源相关联的输出数据。
5.权利要求1的方法,还包括由窗口管理服务根据资源的类型来在虚拟屏幕空间中定位输出数据。
6.权利要求1的方法,还包括由窗口管理服务根据资源和网格显示布局中的单元之间的用户关联来在虚拟屏幕空间中定位输出数据。
7.权利要求1的方法,还包括由窗口管理服务根据和网格显示布局中的单元相关的策略来在虚拟屏幕空间中定位输出数据。
8.权利要求1的方法,还包括由窗口管理服务根据网格显示布局的改变来在虚拟屏幕空间中重新定位输出数据。
9.权利要求1的方法,还包括由窗口管理服务根据在空的单元中显示输出数据的用户命令来在虚拟屏幕空间中定位输出数据。
10.权利要求1的方法,还包括由窗口管理服务根据和动态显示布局相关的策略来在虚拟屏幕空间中定位输出数据。
11.权利要求1的方法,还包括由窗口管理服务根据和资源相关的默认位置来在虚拟屏幕空间中定位输出数据。
12.权利要求1的方法,还包括由窗口管理服务接收和与输出数据的用户交互相关的信息。
13.权利要求12的方法,还包括由窗口管理服务根据和用户交互相关的信息来重新定位输出数据。
14.权利要求13的方法,还包括由窗口管理服务将输出数据重新定位到虚拟屏幕空间中对应于移动计算装置的本地显示器或者不同的外部显示装置的位置。
15.权利要求13的方法,还包括由窗口管理装置遮住和不同资源相关的输出数据。
16.权利要求12的方法,还包括由窗口管理服务重新调整和资源相关的输出数据的大小。
17.一种用于在外部显示装置上显示和至少一个资源相关的输出数据的移动计算装置,包括:
窗口管理服务,其根据外部显示装置的标识来选择要显示在外部显示装置上的所述至少一个资源并且将和所述至少一个资源相关的输出数据定位在虚拟屏幕空间;
虚拟图形驱动器,用于根据虚拟屏幕空间将输出数据传输到外部显示装置上。
18.权利要求17的装置,其中,窗口管理服务根据该标识在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间。
19.权利要求17的装置,其中,窗口管理服务根据外部显示装置的分辨率在虚拟屏幕空间中分配对应于外部显示装置的屏幕空间。
20.权利要求17的装置,其中,窗口管理服务从虚拟屏幕空间中对应于移动计算装置的本地显示器的位置移除和所述至少一个资源相关联的输出数据。
21.一种用于在连接到移动计算装置的外部显示装置上显示用于资源的用户界面的方法,包括:
移动计算装置上的窗口管理服务从资源接收用于显示在移动计算装置的本地显示器上的第一用户界面;
移动计算装置上的虚拟图形驱动器将第一用户界面传输到本地显示器;
窗口管理服务将外部显示装置的标识传输给该资源;
窗口管理服务根据该标识从该资源接收第二用户界面,该第二用户界面不同于第一用户界面;以及
虚拟图形驱动器将第二用户界面传输到外部显示装置。
22.权利要求21的方法,还包括窗口管理服务从资源接收所优化的用于外部显示装置的第二用户界面。
23.权利要求21的方法,还包括窗口管理服务将外部显示装置的至少一个特性传输给资源。
24.权利要求22的方法,还包括窗口管理服务传输外部显示装置上的显示器具有比本地显示器较大的分辨率或尺寸的指示。
25.权利要求21的方法,还包括在没有所优化的用于外部显示装置的用户界面时,窗口管理服务从资源接收缺省用户界面。
26.权利要求21的方法,还包括窗口管理服务从资源接收所优化的用于外部显示装置的用户界面不可用的通信信息。
27.权利要求21的方法,还包括窗口管理系统传输第二用户界面的标识和显示第二用户界面到外部显示装置的指令。
28.一种用于将虚拟化资源的执行从移动计算装置传送到外部显示装置的方法,包括:
由服务器从移动计算装置接收连接到所述移动计算装置的外部显示装置的标识;
由服务器识别递送给外部显示装置的虚拟机器;
由服务器将虚拟化资源从递送到移动计算装置的虚拟机器解除连接;以及
由服务器将虚拟化资源连接到递送给外部显示装置的虚拟机器。
29.权利要求28的方法,其中,虚拟化资源是虚拟化应用程序。
30.权利要求28的方法,还包括由服务器将和虚拟化资源执行状态相关的信息从递送给移动计算装置的虚拟机器传送到递送给外部显示装置的虚拟机器。
31.一种对于显示在外部显示装置上的第一资源用于将移动计算装置重新用作虚拟输入装置的方法,包括:
由服务器评估移动计算装置的输入能力和第一资源的输入需求;以及
服务器根据该评估将产生虚拟输入装置的第二资源递送到移动计算装置。
32.权利要求31的方法,还包括由服务器将产生虚拟键盘、虚拟跟踪板、虚拟指示装置、虚拟摄像机、虚拟麦克风、虚拟销售点(P0S)装置、虚拟扬声器、虚拟耳机插孔或者其任一组合的第二资源递送到移动计算装置。
33.权利要求31的方法,还包括服务器将允许用户和第一资源的输出数据相交互的第二资源递送给移动计算装置。
34.权利要求31的方法,还包括服务器将第二资源递送到移动计算装置,该第二资源将用户和虚拟输入装置的交互的标识传输给第一资源。
35.权利要求31的方法,还包括服务器将第二资源递送给移动计算装置,该第二资源产生至少一个用户交互元素。
36.权利要求31的方法,还包括服务器将第二资源递送到移动计算装置,该第二资源将与虚拟输入装置的用户交互重定向到移动计算装置的输入能力。
37.权利要求31的方法,还包括服务器将第二资源递送到移动计算装置,该第二资源将触摸输入的位置和所显示的用户交互元素关联。
38.权利要求31的方法,还包括服务器将第三资源递送到移动计算装置,该第三资源产生和第二资源的虚拟输入装置相结合的另一个虚拟输入装置。
39.权利要求31的方法,还包括服务器将第二资源递送到移动计算装置,该第二资源用于和第一资源相结合显示在单个显示表面上。
40.权利要求31的方法,还包括服务器将第二资源递送到移动计算装置,该第二资源为连接到移动计算装置的第二外部装置产生虚拟输入装置。
41.一种对于显示在外部显示装置上的第一资源用于将移动计算装置重新用作虚拟输入装置的系统,包括:
服务器,用来评估移动计算装置的输入能力和第一资源的输入需求,并且根据该评估将产生虚拟输入装置的第二资源递送到移动计算装置。
42.权利要求41的系统,其中,第二资源产生虚拟键盘、虚拟跟踪板、虚拟指示装置、虚拟摄像机、虚拟麦克风、虚拟销售点(P0S)装置、虚拟扬声器、虚拟耳机插孔或者其任一组合。
43.权利要求41的系统,其中,第二资源允许和第一资源的输出数据的用户交互。
44.权利要求41的系统,其中,该第二资源将和虚拟输入装置的用户交互的标识传输给第一资源。
45.权利要求41的系统,其中,该第二资源产生至少一个用户交互元素。
46.权利要求41的系统,其中,该第二资源将与虚拟输入装置的用户交互重定向到移动计算装置的输入能力。
47.权利要求41的系统,其中,该第二资源将触摸输入的位置和所显示的用户交互元素关联。
48.权利要求41的系统,其中,服务器递送第三资源,该第三资源产生和第二资源的虚拟输入装置相结合的另一个虚拟输入装置。
49.权利要求41的系统,其中,该第二资源和第一资源相结合显示在单个显示表面上。
50.权利要求41的系统,其中,该第二资源为连接到移动计算装置的第二外部装置产生虚拟输入装置。
CN200980117721.8A 2008-05-20 2009-05-20 由移动计算装置使用外部显示装置的方法和系统 Expired - Fee Related CN102027450B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5455108P 2008-05-20 2008-05-20
US61/054551 2008-05-20
PCT/US2009/044741 WO2009143294A2 (en) 2008-05-20 2009-05-20 Methods and systems for using external display devices with a mobile computing device

Publications (2)

Publication Number Publication Date
CN102027450A true CN102027450A (zh) 2011-04-20
CN102027450B CN102027450B (zh) 2015-05-13

Family

ID=41016978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980117721.8A Expired - Fee Related CN102027450B (zh) 2008-05-20 2009-05-20 由移动计算装置使用外部显示装置的方法和系统

Country Status (4)

Country Link
US (1) US20100138780A1 (zh)
EP (1) EP2283421B1 (zh)
CN (1) CN102027450B (zh)
WO (1) WO2009143294A2 (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957460A (zh) * 2011-08-23 2013-03-06 三星电子株式会社 便携式终端中的显示方法和设备
CN102968288A (zh) * 2011-08-30 2013-03-13 卡西欧计算机株式会社 图像显示终端以及图像显示控制方法
CN102985912A (zh) * 2010-03-26 2013-03-20 日本电气株式会社 显示设备以及合并这种设备的系统和方法
CN103369291A (zh) * 2012-03-22 2013-10-23 株式会社理光 通信系统和通信设备
CN103366473A (zh) * 2012-03-30 2013-10-23 株式会社毕索龙 使用便携式计算机的pos系统
CN103458102A (zh) * 2012-05-31 2013-12-18 Lg电子株式会社 移动终端及其控制方法
CN103517134A (zh) * 2012-06-19 2014-01-15 纬创资通股份有限公司 图像输出方法与电子装置
CN103703452A (zh) * 2011-07-25 2014-04-02 英特尔公司 用于在移动设备上显示输入设备的技术
CN103828386A (zh) * 2011-07-29 2014-05-28 谷歌公司 用于根据设备类型来渲染用户界面元素的系统和方法
CN103838481A (zh) * 2012-11-27 2014-06-04 联想(北京)有限公司 一种数据处理方法和电子设备
CN104145268A (zh) * 2012-02-29 2014-11-12 诺基亚公司 用于多浏览器的基于网络的应用的方法和装置
CN104704461A (zh) * 2012-09-06 2015-06-10 丰田自动车株式会社 便携终端装置、车载装置、以及车载系统
CN105009065A (zh) * 2013-03-14 2015-10-28 高通股份有限公司 用于呈多重显示配置的虚拟用户界面控制的系统和方法
CN106687923A (zh) * 2014-09-24 2017-05-17 微软技术许可有限责任公司 多个设备上的计算环境的呈现
CN108401463A (zh) * 2017-08-11 2018-08-14 深圳前海达闼云端智能科技有限公司 一种虚拟显示装置、智能交互方法和云端服务器
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
CN111135557A (zh) * 2019-12-26 2020-05-12 三星电子(中国)研发中心 用于多屏的交互方法和装置
CN111741349A (zh) * 2020-07-14 2020-10-02 北京简元科技有限公司 多媒体信息异形屏发布方法和装置及设备
US10824531B2 (en) 2014-09-24 2020-11-03 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment
CN114327324A (zh) * 2020-09-29 2022-04-12 华为技术有限公司 一种界面的分布式显示方法、电子设备及通信系统
WO2022154784A1 (en) * 2021-01-13 2022-07-21 Hewlett-Packard Development Company, L.P. Display settings changes based on locations

Families Citing this family (251)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080941A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop triad control user interface for an application launcher
US9678624B2 (en) * 2011-09-27 2017-06-13 Z124 Unified desktop triad control user interface for a phone manager
US20130104062A1 (en) * 2011-09-27 2013-04-25 Z124 Unified desktop input segregation in an application manager
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US9529494B2 (en) 2011-09-27 2016-12-27 Z124 Unified desktop triad control user interface for a browser
US20130080909A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behaviour for an auxillary monitor
US8990713B2 (en) 2011-09-27 2015-03-24 Z124 Unified desktop triad control user interface for an application manager
US8698751B2 (en) 2010-10-01 2014-04-15 Z124 Gravity drop rules and keyboard display on a multiple screen device
US9507930B2 (en) 2003-04-25 2016-11-29 Z124 Physical key secure peripheral interconnection
US20130198867A1 (en) 2011-12-09 2013-08-01 Z124 A Docking Station for Portable Devices Providing Authorized Power Transfer and Facility Access
US9965067B2 (en) 2007-09-19 2018-05-08 T1V, Inc. Multimedia, multiuser system and associated methods
US20130342489A1 (en) * 2008-08-13 2013-12-26 Michael R. Feldman Multimedia, multiuser system and associated methods
US8015232B2 (en) * 2007-10-11 2011-09-06 Roaming Keyboards Llc Thin terminal computer architecture utilizing roaming keyboard files
WO2009050846A1 (ja) * 2007-10-16 2009-04-23 Panasonic Corporation 画像表示装置及び画像表示方法
JP5047870B2 (ja) * 2008-04-17 2012-10-10 株式会社日立製作所 マスタ管理システム、マスタ管理方法、およびマスタ管理プログラム
JP5335287B2 (ja) * 2008-05-29 2013-11-06 キヤノン株式会社 表示装置、その制御方法及びプログラム
US20100064251A1 (en) * 2008-09-05 2010-03-11 International Business Machines Corporation Toggling window display state by screen in a multi-screened desktop environment
US8594467B2 (en) * 2008-12-19 2013-11-26 Microsoft Corporation Interactive virtual display system for ubiquitous devices
US20100169791A1 (en) * 2008-12-31 2010-07-01 Trevor Pering Remote display remote control
US20160320938A9 (en) * 2009-03-17 2016-11-03 Litera Technologies, LLC System and Method for the Auto-Detection and Presentation of Pre-Set Configurations for Multiple Monitor Layout Display
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9444894B2 (en) 2009-04-15 2016-09-13 Wyse Technology Llc System and method for communicating events at a server to a remote device
US9189124B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US8676926B2 (en) * 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US9448815B2 (en) * 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US9479895B2 (en) * 2009-04-23 2016-10-25 International Business Machines Corporation Location-oriented services
US9241062B2 (en) * 2009-05-20 2016-01-19 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US9547511B2 (en) 2009-06-05 2017-01-17 Microsoft Technology Licensing, Llc Language-based model for asynchronous operations
US8954872B2 (en) * 2009-08-24 2015-02-10 Ati Technologies Ulc Method and apparatus for configuring a plurality of displays into a single large surface display
US20110112819A1 (en) * 2009-11-11 2011-05-12 Sony Corporation User interface systems and methods between a portable device and a computer
JP2011134278A (ja) * 2009-12-25 2011-07-07 Toshiba Corp 情報処理装置およびポインティング制御方法
JP5531612B2 (ja) * 2009-12-25 2014-06-25 ソニー株式会社 情報処理装置、情報処理方法、プログラム、制御対象機器および情報処理システム
US8698845B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface with interactive popup views
US20110163966A1 (en) * 2010-01-06 2011-07-07 Imran Chaudhri Apparatus and Method Having Multiple Application Display Modes Including Mode with Display Resolution of Another Apparatus
US9715332B1 (en) 2010-08-26 2017-07-25 Cypress Lake Software, Inc. Methods, systems, and computer program products for navigating between visual components
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
KR101622635B1 (ko) * 2010-02-12 2016-05-20 삼성전자주식회사 3개의 표시부를 가지는 단말기의 데이터 운용 방법 및 이를 지원하는 단말기
US8301723B2 (en) 2010-02-26 2012-10-30 Research In Motion Limited Computer to handheld device virtualization system
EP2369468A1 (en) * 2010-02-26 2011-09-28 Research In Motion Limited Computer to handheld device virtualization system
US10009647B2 (en) * 2010-03-02 2018-06-26 Qualcomm Incorporated Reducing end-to-end latency for communicating information from a user device to a receiving device via television white space
US20110219331A1 (en) * 2010-03-02 2011-09-08 International Business Machines Corporation Window resize on remote desktops
JPWO2011108109A1 (ja) * 2010-03-05 2013-06-20 富士通株式会社 画像表示システム、情報処理装置、表示装置、および画像表示方法
US20110225566A1 (en) * 2010-03-10 2011-09-15 Microsoft Corporation Testing user interfaces in multiple execution environments
EP2553561A4 (en) * 2010-04-01 2016-03-30 Citrix Systems Inc INTERACTION WITH REMOTE APPLICATIONS DISPLAYED ON A VIRTUAL DESKTOP OF A TABLET COMPUTER DEVICE
US8621365B2 (en) * 2010-04-06 2013-12-31 Asustek Computer Inc. File sharing method and system
US9823831B2 (en) 2010-04-07 2017-11-21 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US9513801B2 (en) 2010-04-07 2016-12-06 Apple Inc. Accessing electronic notifications and settings icons with gestures
US20110252357A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Concurrently Open Software Applications
EP2564317A1 (en) * 2010-04-26 2013-03-06 Hu-Do Limited A computing device operable to work in conjunction with a companion electronic device
KR101695810B1 (ko) * 2010-05-07 2017-01-13 엘지전자 주식회사 이동 단말기 및 그 제어방법
US20110307831A1 (en) * 2010-06-10 2011-12-15 Microsoft Corporation User-Controlled Application Access to Resources
US9001050B2 (en) * 2010-07-19 2015-04-07 Red Hat Israel, Ltd. Touch screen emulation for a virtual machine
US20120030584A1 (en) * 2010-07-30 2012-02-02 Brian Bian Method and apparatus for dynamically switching between scalable graphical user interfaces for mobile devices
JP2012038210A (ja) * 2010-08-10 2012-02-23 Sony Corp 情報処理装置、情報処理方法、コンピュータプログラム及びコンテンツ表示システム
DE102010033883B4 (de) 2010-08-10 2021-12-23 Volkswagen Ag Verfahren zum Datentransfer zwischen einem mobilen Gerät und einem Kraftfahrzeug
WO2012020868A1 (ko) * 2010-08-13 2012-02-16 엘지전자 주식회사 이동단말기, 디스플레이 장치 및 그 제어 방법
US20120050183A1 (en) * 2010-08-27 2012-03-01 Google Inc. Switching display modes based on connection state
US9043706B2 (en) * 2010-08-31 2015-05-26 Anders Nancke-Krogh System and method for using state replication between application instances to provide a collaborative desktop environment
US9159298B2 (en) * 2010-09-08 2015-10-13 Lg Electronics Inc. Terminal and contents sharing method for terminal
US8659553B1 (en) * 2010-09-20 2014-02-25 Google Inc. Orientation-based touchscreen display
US20130191742A1 (en) * 2010-09-30 2013-07-25 Rakuten, Inc. Viewing device, viewing method, non-transitory computer-readable recording medium whereon program is recorded, and script program
BR112013007833A2 (pt) * 2010-10-01 2016-06-14 Z124 sistemas e métodos referentes a interfaces de usuário para dispositivos eletrônicos portáteis de encaixe
EP2625685B1 (en) 2010-10-05 2020-04-22 Citrix Systems, Inc. Display management for native user experiences
EP2463772A1 (en) * 2010-11-29 2012-06-13 NEC CASIO Mobile Communications, Ltd. Method for dynamically allocating an external peripheral to device application
CN102096574B (zh) * 2010-12-01 2012-10-03 广东威创视讯科技股份有限公司 一种多窗口拼接显示方法
KR101738527B1 (ko) * 2010-12-07 2017-05-22 삼성전자 주식회사 모바일기기 및 그 제어방법
US8984120B2 (en) * 2010-12-16 2015-03-17 International Business Machines Corporation Determining an unexpected disconnect event constraint within a text exchange session
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
US8446363B1 (en) 2010-12-30 2013-05-21 Google Inc. Enhanced input using touch screen
US8369893B2 (en) * 2010-12-31 2013-02-05 Motorola Mobility Llc Method and system for adapting mobile device to accommodate external display
US8688734B1 (en) 2011-02-04 2014-04-01 hopTo Inc. System for and methods of controlling user access and/or visibility to directories and files of a computer
US9124715B2 (en) * 2011-03-15 2015-09-01 Nokia Technologies Oy Mobile user apparatus and a mobile accessory apparatus for the mobile user apparatus
US8151279B1 (en) * 2011-03-28 2012-04-03 Google Inc. Uniform event handling across multiple computing devices
US8392935B2 (en) 2011-03-28 2013-03-05 Google Inc. Uniform event handling across multiple computing devices
EP2697720B1 (en) * 2011-04-13 2023-02-22 Razer (Asia-Pacific) Pte. Ltd. Computer peripheral display and communication device providing an adjunct 3d user interface
US9767195B2 (en) 2011-04-21 2017-09-19 Touchstream Technologies, Inc. Virtualized hosting and displaying of content using a swappable media player
US20130027613A1 (en) * 2011-05-03 2013-01-31 Lg Electronics Inc. Image display apparatus, portable terminal, and methods for operating the same
CN102779063A (zh) * 2011-05-10 2012-11-14 北京磊友信息科技有限公司 提供应用调用的方法和服务器
US8760395B2 (en) 2011-05-31 2014-06-24 Microsoft Corporation Gesture recognition techniques
GB2492789B (en) * 2011-07-12 2018-01-03 Denso Corp Displays
TWM419969U (en) * 2011-07-14 2012-01-01 Chuan-Shi Wu Screen transfer control device for smart phone
US20130019179A1 (en) * 2011-07-14 2013-01-17 Digilink Software, Inc. Mobile application enhancements
WO2013012415A1 (en) * 2011-07-18 2013-01-24 Research In Motion Limited Electronic device and method of controlling same
US10564791B2 (en) * 2011-07-21 2020-02-18 Nokia Technologies Oy Method and apparatus for triggering a remote data entry interface
US8782716B2 (en) 2011-07-29 2014-07-15 Google Inc. Systems and methods for rendering user interface objects in accordance with a variable scaling factor
US20130104051A1 (en) 2011-09-27 2013-04-25 Z124 Unified desktop big brother application pools
US20160124698A1 (en) 2011-08-24 2016-05-05 Z124 Unified desktop triad control user interface for an application launcher
US8806369B2 (en) 2011-08-26 2014-08-12 Apple Inc. Device, method, and graphical user interface for managing and interacting with concurrently open software applications
US9383770B2 (en) 2011-08-31 2016-07-05 Z124 Mobile device that docks with multiple types of docks
US9244491B2 (en) 2011-08-31 2016-01-26 Z124 Smart dock for auxiliary devices
KR101932529B1 (ko) * 2011-09-16 2018-12-28 삼성전자 주식회사 Sns 기능 통합 운용 방법 및 시스템
US9142192B2 (en) * 2011-09-26 2015-09-22 Intel Corporation Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
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
US8878794B2 (en) 2011-09-27 2014-11-04 Z124 State of screen info: easel
US9703468B2 (en) * 2011-09-27 2017-07-11 Z124 Unified desktop independent focus in an application manager
KR101855938B1 (ko) * 2011-10-06 2018-05-09 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
JP6282793B2 (ja) * 2011-11-08 2018-02-21 サターン ライセンシング エルエルシーSaturn Licensing LLC 送信装置、表示制御装置、コンテンツ送信方法、記録媒体、及びプログラム
US20130127738A1 (en) * 2011-11-23 2013-05-23 Microsoft Corporation Dynamic scaling of touch sensor
US9612724B2 (en) 2011-11-29 2017-04-04 Citrix Systems, Inc. Integrating native user interface components on a mobile device
US8635637B2 (en) 2011-12-02 2014-01-21 Microsoft Corporation User interface presenting an animated avatar performing a media reaction
US9100685B2 (en) 2011-12-09 2015-08-04 Microsoft Technology Licensing, Llc Determining audience state or interest using passive sensor data
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
US20130159555A1 (en) * 2011-12-20 2013-06-20 Microsoft Corporation Input commands
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
JP5230827B1 (ja) * 2012-01-25 2013-07-10 キヤノン株式会社 情報処理装置、その方法、及びプログラム
KR101195520B1 (ko) * 2012-02-22 2012-10-29 알서포트 주식회사 모바일 단말을 원격 제어하는 방법 및 장치
US9817442B2 (en) * 2012-02-28 2017-11-14 Razer (Asia-Pacific) Pte. Ltd. Systems and methods for presenting visual interface content
US8558790B2 (en) * 2012-03-04 2013-10-15 Lg Electronics Inc. Portable device and control method thereof
WO2013133478A1 (en) 2012-03-04 2013-09-12 Lg Electronics Inc. Portable device and control method thereof
US20130241854A1 (en) 2012-03-06 2013-09-19 Industry-University Cooperation Foundation Hanyang University Image sharing system and user terminal for the system
KR101325840B1 (ko) * 2012-03-13 2013-11-05 주식회사 팬택 싱크 장치를 관리하는 방법, 이를 위한 소스 장치 및 무선랜 시스템
EP2639689A1 (en) * 2012-03-15 2013-09-18 Habook Information Technology Inc. A multi-source multiple documents comparison display (presentation or discussion) system
US8898687B2 (en) 2012-04-04 2014-11-25 Microsoft Corporation Controlling a media program based on a media reaction
KR20130116976A (ko) * 2012-04-17 2013-10-25 엘지전자 주식회사 이동 단말기 및 그 제어방법
CA2775700C (en) 2012-05-04 2013-07-23 Microsoft Corporation Determining a future portion of a currently presented media program
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
EP3264252B1 (en) 2012-05-09 2019-11-27 Apple Inc. Device, method, and graphical user interface for performing an operation in accordance with a selected mode of operation
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
DE112013002387T5 (de) 2012-05-09 2015-02-12 Apple Inc. Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Bereitstellung taktiler Rückkopplung für Operationen in einer Benutzerschnittstelle
CN109298789B (zh) 2012-05-09 2021-12-31 苹果公司 用于针对激活状态提供反馈的设备、方法和图形用户界面
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
EP3410287B1 (en) 2012-05-09 2022-08-17 Apple Inc. Device, method, and graphical user interface for selecting user interface objects
CN104487928B (zh) 2012-05-09 2018-07-06 苹果公司 用于响应于手势而在显示状态之间进行过渡的设备、方法和图形用户界面
EP2847657B1 (en) 2012-05-09 2016-08-10 Apple Inc. Device, method, and graphical user interface for displaying additional information in response to a user contact
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
JP2013242357A (ja) * 2012-05-18 2013-12-05 Ricoh Co Ltd 情報処理装置、情報処理方法、およびプログラム
US8713658B1 (en) 2012-05-25 2014-04-29 Graphon Corporation System for and method of providing single sign-on (SSO) capability in an application publishing environment
US8856907B1 (en) 2012-05-25 2014-10-07 hopTo Inc. System for and methods of providing single sign-on (SSO) capability in an application publishing and/or document sharing environment
US9419848B1 (en) 2012-05-25 2016-08-16 hopTo Inc. System for and method of providing a document sharing service in combination with remote access to document applications
US8738826B2 (en) * 2012-06-08 2014-05-27 Apple Inc. System and method for display mirroring
JP5342044B1 (ja) * 2012-06-22 2013-11-13 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US20130346858A1 (en) * 2012-06-25 2013-12-26 Neyrinck Llc Remote Control of Audio Application and Associated Sub-Windows
US9674587B2 (en) 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US9239812B1 (en) 2012-08-08 2016-01-19 hopTo Inc. System for and method of providing a universal I/O command translation framework in an application publishing environment
KR101961860B1 (ko) * 2012-08-28 2019-03-25 삼성전자주식회사 사용자 단말 장치 및 그 제어 방법
CN108958685B (zh) * 2012-09-10 2021-11-02 三星电子株式会社 连接移动终端和外部显示器的方法和实现该方法的装置
US20140075377A1 (en) 2012-09-10 2014-03-13 Samsung Electronics Co. Ltd. Method for connecting mobile terminal and external display and apparatus implementing the same
KR102080146B1 (ko) * 2012-09-10 2020-02-24 삼성전자 주식회사 휴대단말과 외부 표시장치 연결 운용 방법 및 이를 지원하는 장치
TWI637312B (zh) * 2012-09-19 2018-10-01 三星電子股份有限公司 用於在透明顯示裝置顯示資訊的方法、顯示裝置及電腦可讀記錄媒體
US9213515B2 (en) * 2012-09-24 2015-12-15 At&T Intellectual Property I, L.P. On-demand multi-screen computing
US9239727B1 (en) 2012-10-17 2016-01-19 Amazon Technologies, Inc. Configurable virtual machines
US9274742B2 (en) * 2012-10-25 2016-03-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
US20140125554A1 (en) * 2012-11-07 2014-05-08 Shanghai Powermo Information Tech. Co. Ltd. Apparatus and algorithm to implement smart mirroring for a multiple display system
EP4213001A1 (en) 2012-12-06 2023-07-19 Samsung Electronics Co., Ltd. Display device and method of controlling the same
US10282088B2 (en) 2012-12-06 2019-05-07 Samsung Electronics Co., Ltd. Configuration of application execution spaces and sub-spaces for sharing data on a mobile tough screen device
US20140184603A1 (en) * 2012-12-27 2014-07-03 Nvidia Corporation Method to improve usability of high pixel density displays
WO2014105277A2 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
WO2014105275A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
CN109375853A (zh) 2012-12-29 2019-02-22 苹果公司 对用户界面分级结构导航的设备、方法和图形用户界面
KR101958517B1 (ko) 2012-12-29 2019-03-14 애플 인크. 터치 입력에서 디스플레이 출력으로의 관계들 사이에서 전환하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
EP3564806B1 (en) 2012-12-29 2024-02-21 Apple Inc. Device, method and graphical user interface for determining whether to scroll or select contents
KR102131646B1 (ko) * 2013-01-03 2020-07-08 삼성전자주식회사 디스플레이장치 및 그 제어방법
US9792014B2 (en) 2013-03-15 2017-10-17 Microsoft Technology Licensing, Llc In-place contextual menu for handling actions for a listing of items
US10387100B2 (en) 2013-03-15 2019-08-20 Topcon Positioning Systems, Inc. Monitoring and control display system and method
US9658740B2 (en) 2013-03-15 2017-05-23 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US9477404B2 (en) 2013-03-15 2016-10-25 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
KR102043049B1 (ko) * 2013-04-01 2019-11-11 삼성전자 주식회사 앱 운용 방법 및 앱 운용 장치와, 이를 지원하는 앱 출력 장치
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in a media playback system
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
US20140325432A1 (en) * 2013-04-30 2014-10-30 Microsoft Second screen view with multitasking
JP5854237B2 (ja) * 2013-04-30 2016-02-09 コニカミノルタ株式会社 画像処理システム、画像処理装置、携帯情報端末およびプログラム
US9600595B2 (en) * 2013-05-21 2017-03-21 International Business Machines Corporation Modification of windows across multiple displays
US9684484B2 (en) 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
US9880727B2 (en) * 2013-05-29 2018-01-30 Microsoft Technology Licensing, Llc Gesture manipulations for configuring system settings
EP2816761A1 (en) * 2013-06-17 2014-12-24 Thomson Licensing Wifi display compatible network gateway
WO2014209271A1 (en) * 2013-06-25 2014-12-31 Thomson Licensing Multidisciplinary nomad sub-screen system
KR102208436B1 (ko) * 2013-08-06 2021-01-27 삼성전자주식회사 출력 방법 및 그 방법을 처리하는 전자 장치
CN104427384A (zh) * 2013-08-26 2015-03-18 联想(北京)有限公司 数据处理方法、图像演示方法、数据处理装置和演示设备
US10719829B2 (en) 2013-09-09 2020-07-21 Touchtunes Music Corporation Techniques for processing pin-inclusive transactions in connection with an electronic device
US10451874B2 (en) * 2013-09-25 2019-10-22 Seiko Epson Corporation Image display device, method of controlling image display device, computer program, and image display system
KR102087987B1 (ko) * 2013-10-04 2020-03-11 삼성전자주식회사 마스터 기기, 클라이언트 기기, 및 그에 따른 화면 미러링 방법
KR102180810B1 (ko) * 2013-10-16 2020-11-19 삼성전자주식회사 전자 장치, 애플리케이션 실행 방법 및 컴퓨터 판독가능 기록매체
KR102107404B1 (ko) 2013-10-30 2020-05-07 삼성전자주식회사 어플리케이션을 공유하는 전자 장치 및 그 제어 방법
WO2015070070A1 (en) 2013-11-07 2015-05-14 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US9550118B2 (en) * 2013-11-13 2017-01-24 Gaijin Entertainment Corp. Method for simulating video games on mobile device
US20150178032A1 (en) * 2013-12-19 2015-06-25 Qualcomm Incorporated Apparatuses and methods for using remote multimedia sink devices
US9641925B2 (en) * 2014-01-02 2017-05-02 Zippy Technology Corp. Headphone wireless expansion device capable of switching among multiple targets and voice control method thereof
US9582825B2 (en) 2014-03-24 2017-02-28 Touchtunes Music Corporation Systems, apparatuses, and methods for ordering items from an electronic menu, and servicing thereof
FR3019334B1 (fr) * 2014-03-31 2017-07-28 Thales Sa Dispositif et procede d'affichage pour un logiciel applicatif multi-fenetres
CN104977982A (zh) * 2014-04-03 2015-10-14 鸿富锦精密工业(武汉)有限公司 通用型电子设备组合
US20150334138A1 (en) * 2014-05-14 2015-11-19 Microsoft Corporation Transferring content between graphical user interfaces
US9552473B2 (en) 2014-05-14 2017-01-24 Microsoft Technology Licensing, Llc Claiming data from a virtual whiteboard
US10270819B2 (en) 2014-05-14 2019-04-23 Microsoft Technology Licensing, Llc System and method providing collaborative interaction
JP6328797B2 (ja) 2014-05-30 2018-05-23 アップル インコーポレイテッド 1つのデバイスの使用から別のデバイスの使用への移行
US10157030B2 (en) 2014-06-24 2018-12-18 Aeris Communications, Inc. Communication between display and device utilizing a communication and display protocol
US9684776B2 (en) 2014-07-29 2017-06-20 Google Inc. Allowing access to applications based on user authentication
US9639680B2 (en) * 2014-07-29 2017-05-02 Google Inc. Allowing access to applications based on user handling measurements
US9818174B2 (en) * 2014-09-24 2017-11-14 Microsoft Technology Licensing, Llc Streamlined handling of monitor topology changes
US9678640B2 (en) 2014-09-24 2017-06-13 Microsoft Technology Licensing, Llc View management architecture
US9860306B2 (en) 2014-09-24 2018-01-02 Microsoft Technology Licensing, Llc Component-specific application presentation histories
US10448111B2 (en) 2014-09-24 2019-10-15 Microsoft Technology Licensing, Llc Content projection
US10055064B2 (en) 2014-10-29 2018-08-21 Sony Corporation Controlling multiple devices with a wearable input device
US20160132992A1 (en) * 2014-11-06 2016-05-12 Microsoft Technology Licensing, Llc User interface scaling for devices based on display size
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
US20160132284A1 (en) * 2014-11-07 2016-05-12 Qualcomm Incorporated Systems and methods for performing display mirroring
US10116748B2 (en) 2014-11-20 2018-10-30 Microsoft Technology Licensing, Llc Vehicle-based multi-modal interface
US20160182603A1 (en) * 2014-12-19 2016-06-23 Microsoft Technology Licensing, Llc Browser Display Casting Techniques
US10073599B2 (en) 2015-01-07 2018-09-11 Microsoft Technology Licensing, Llc Automatic home screen determination based on display device
WO2016133522A1 (en) * 2015-02-19 2016-08-25 Citrix Systems, Inc. Systems and methods for providing adapted multi-monitor topology support in a virtualization environment
US9870192B2 (en) 2015-02-19 2018-01-16 Citrix Systems, Inc. Systems and methods for providing adapted multi-monitor topology support in a virtualization environment
TW201631464A (zh) * 2015-02-26 2016-09-01 鴻富錦精密工業(武漢)有限公司 顯示控制系統及方法
CN105988764A (zh) * 2015-02-26 2016-10-05 鸿富锦精密工业(武汉)有限公司 显示控制系统及方法
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US10297002B2 (en) * 2015-03-10 2019-05-21 Intel Corporation Virtual touch pad method and apparatus for controlling an external display
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US9674426B2 (en) 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10348997B2 (en) * 2015-07-09 2019-07-09 Genetec Inc. Security video monitoring client
KR102433879B1 (ko) * 2015-08-21 2022-08-18 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
WO2017074963A1 (en) * 2015-10-26 2017-05-04 Knowlio, Inc. Digital resource management system
US10719289B2 (en) 2015-11-05 2020-07-21 Topcon Positioning Systems, Inc. Monitoring and control display system and method using multiple displays in a work environment
US9769596B2 (en) 2015-11-24 2017-09-19 International Business Machines Corporation Mobile device output to external device
US10078482B2 (en) 2015-11-25 2018-09-18 Samsung Electronics Co., Ltd. Managing display of information on multiple devices based on context for a user task
US20170200024A1 (en) * 2016-01-08 2017-07-13 Samsung Electronics Co., Ltd. Electronic device and method of securing the same
CN107045508B (zh) * 2016-02-05 2020-03-03 腾讯科技(深圳)有限公司 应用程序的处理方法和装置
CN106095273B (zh) * 2016-06-07 2019-06-25 联想(北京)有限公司 信息处理方法及电子设备
AU2017100667A4 (en) 2016-06-11 2017-07-06 Apple Inc. Activity and workout updates
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
CN106648497B (zh) * 2016-10-26 2020-03-13 京东方科技集团股份有限公司 多画面显示管理系统、显示驱动方法和画面切换方法
US11032410B2 (en) * 2016-11-08 2021-06-08 Microsoft Technology Licensing, Llc Mobile data insight platforms for data analysis
TWI672057B (zh) * 2017-05-02 2019-09-11 比利時商巴可公司 簡報伺服器、資料中繼方法以及產生虛擬指標之方法
WO2018227071A1 (en) * 2017-06-08 2018-12-13 T1V, Inc. Multi-group collaboration system and associated methods
WO2018227824A1 (zh) * 2017-06-16 2018-12-20 华为技术有限公司 一种显示方法及设备
KR20190021016A (ko) * 2017-08-22 2019-03-05 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102418297B1 (ko) * 2017-11-01 2022-07-08 삼성전자주식회사 보안 알림을 제공하는 전자 장치 및 제어 방법
US10581939B2 (en) 2018-01-26 2020-03-03 Citrix Systems, Inc. Virtual computing system providing local screen sharing from hosted collaboration applications and related methods
KR102495643B1 (ko) * 2018-03-26 2023-02-06 삼성전자주식회사 입력 수단에 따른 어플리케이션으로 사용자 입력을 전달하는 모바일 전자 장치 및 방법
KR20200055983A (ko) * 2018-11-14 2020-05-22 삼성전자주식회사 장치로부터 방사되는 전자기 신호를 측정하기 위한 방법 및 그 전자 장치
US10984062B2 (en) * 2019-01-07 2021-04-20 Citrix Systems, Inc. Device augmentation of real time communications
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
CN109992125B (zh) * 2019-03-29 2022-11-15 京东方科技集团股份有限公司 信息输入方法、装置和系统
CN110022161A (zh) * 2019-04-23 2019-07-16 京东方科技集团股份有限公司 发射器、发射设备、传输设备和无线投屏的方法
CN115623257A (zh) * 2020-04-20 2023-01-17 华为技术有限公司 投屏显示方法、系统、终端设备和存储介质
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
WO2022068628A1 (zh) 2020-09-29 2022-04-07 华为技术有限公司 一种界面的分布式显示方法、电子设备及通信系统
JP7345144B2 (ja) * 2021-03-31 2023-09-15 パナソニックIpマネジメント株式会社 車両表示システム、表示方法及びプログラム
TWI770979B (zh) * 2021-05-03 2022-07-11 華碩電腦股份有限公司 螢幕顯示方法及裝置
JP2023038507A (ja) * 2021-09-07 2023-03-17 ルネサスエレクトロニクス株式会社 表示制御装置および表示制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724403B1 (en) * 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
EP1292884A2 (en) * 2000-06-12 2003-03-19 Preworx ( Proprietary) Limited System for controlling a display of the user interface of a software application
WO2002067102A1 (fr) * 2001-02-22 2002-08-29 Fujitsu Limited Processeur de données, logique de commande de l'affichage du processeur de données, support d'enregistrement, et logiciel
JP4315414B2 (ja) * 2001-05-01 2009-08-19 メタ4ハンド インク. 無線ネットワークコンピューティング
US6970173B2 (en) * 2001-09-14 2005-11-29 Ati Technologies, Inc. System for providing multiple display support and method thereof
JP2003280630A (ja) * 2002-03-20 2003-10-02 Toshiba Corp 情報処理装置および同装置で使用される表示制御方法
JP2004264769A (ja) * 2003-03-04 2004-09-24 Toshiba Corp 情報処理装置およびプログラム
US7098868B2 (en) * 2003-04-08 2006-08-29 Microsoft Corporation Display source divider
US7812786B2 (en) * 2005-01-18 2010-10-12 Nokia Corporation User interface for different displays
JP2007006173A (ja) * 2005-06-24 2007-01-11 Fujitsu Ltd 電子装置、画面情報出力方法及びプログラム
JP4308245B2 (ja) * 2005-12-21 2009-08-05 政弘 井筒 携帯情報通信装置及び該携帯情報通信装置と情報をやり取りするWebサーバ
US7634263B2 (en) * 2006-01-30 2009-12-15 Apple Inc. Remote control of electronic devices
KR100744380B1 (ko) * 2006-04-17 2007-07-30 삼성전자주식회사 외부 디스플레이 장치로 영상을 출력할 수 있는 기능을구비한 이동 단말기에서의 디스플레이 제어 장치 및 방법
KR100816286B1 (ko) * 2006-05-18 2008-03-24 삼성전자주식회사 휴대 단말기와 외부 장치를 이용한 디스플레이 장치 및방법
US20070268360A1 (en) * 2006-05-19 2007-11-22 Sony Ericsson Mobile Communications Ab Remote control programming system and method
US7657227B2 (en) * 2006-08-03 2010-02-02 International Business Machines Corporation Method and system for dynamic display connectivity based on configuration information via RFID tag
US7869824B2 (en) * 2006-09-06 2011-01-11 Byung Woo Min Cell phone with remote control system
US20080115081A1 (en) * 2006-11-09 2008-05-15 Microsoft Corporation Enhanced windows management feature
JP2008211379A (ja) * 2007-02-23 2008-09-11 Fujitsu Ltd 表示制御プログラムおよび携帯端末装置
CA2621744C (en) * 2007-09-13 2016-10-04 Research In Motion Limited System and method for interfacing between a mobile device and a personal computer

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102985912A (zh) * 2010-03-26 2013-03-20 日本电气株式会社 显示设备以及合并这种设备的系统和方法
CN103703452A (zh) * 2011-07-25 2014-04-02 英特尔公司 用于在移动设备上显示输入设备的技术
CN107678675B (zh) * 2011-07-25 2021-09-21 英特尔公司 用于在移动设备上显示输入设备的方法和装置
CN107678675A (zh) * 2011-07-25 2018-02-09 英特尔公司 用于在移动设备上显示输入设备的技术
US10126926B2 (en) 2011-07-29 2018-11-13 Google Llc Systems and methods for rendering user interface elements in accordance with a device type
US9753621B2 (en) 2011-07-29 2017-09-05 Google Inc. Systems and methods for rendering user interface elements in accordance with a device type
CN103828386A (zh) * 2011-07-29 2014-05-28 谷歌公司 用于根据设备类型来渲染用户界面元素的系统和方法
US11816317B2 (en) 2011-07-29 2023-11-14 Google Llc Systems and methods for rendering user interface elements
CN103828386B (zh) * 2011-07-29 2017-10-27 谷歌公司 用于根据设备类型来渲染用户界面元素的系统和方法
US10585572B2 (en) 2011-07-29 2020-03-10 Google Llc Systems and methods for rendering user interface elements
US11132112B2 (en) 2011-07-29 2021-09-28 Google Llc Systems and methods for rendering user interface elements
US10846043B2 (en) 2011-08-23 2020-11-24 Samsung Electronics Co., Ltd Display method and apparatus in portable terminal
CN102957460A (zh) * 2011-08-23 2013-03-06 三星电子株式会社 便携式终端中的显示方法和设备
US10430141B2 (en) 2011-08-23 2019-10-01 Samsung Electronics Co., Ltd Display method and apparatus in portable terminal
US11237789B2 (en) 2011-08-23 2022-02-01 Samsung Electronics Co., Ltd. Display method and apparatus in portable terminal
CN106325801A (zh) * 2011-08-23 2017-01-11 三星电子株式会社 便携式终端中的显示方法和设备
CN102968288B (zh) * 2011-08-30 2015-08-12 卡西欧计算机株式会社 图像显示终端以及图像显示控制方法
CN102968288A (zh) * 2011-08-30 2013-03-13 卡西欧计算机株式会社 图像显示终端以及图像显示控制方法
CN104145268A (zh) * 2012-02-29 2014-11-12 诺基亚公司 用于多浏览器的基于网络的应用的方法和装置
CN104145268B (zh) * 2012-02-29 2018-11-13 诺基亚技术有限公司 用于多浏览器的基于网络的应用的方法和装置
US10740059B2 (en) 2012-03-22 2020-08-11 Ricoh Company, Ltd. Communication system, communication device, and computer program
US11256464B2 (en) 2012-03-22 2022-02-22 Ricoh Company, Ltd. Communication system, communication device, and computer program
CN103369291A (zh) * 2012-03-22 2013-10-23 株式会社理光 通信系统和通信设备
CN103366473A (zh) * 2012-03-30 2013-10-23 株式会社毕索龙 使用便携式计算机的pos系统
CN103458102A (zh) * 2012-05-31 2013-12-18 Lg电子株式会社 移动终端及其控制方法
CN103517134A (zh) * 2012-06-19 2014-01-15 纬创资通股份有限公司 图像输出方法与电子装置
CN104704461B (zh) * 2012-09-06 2018-04-27 丰田自动车株式会社 便携终端装置、车载装置、以及车载系统
CN104704461A (zh) * 2012-09-06 2015-06-10 丰田自动车株式会社 便携终端装置、车载装置、以及车载系统
CN103838481B (zh) * 2012-11-27 2017-09-29 联想(北京)有限公司 一种数据处理方法和电子设备
CN103838481A (zh) * 2012-11-27 2014-06-04 联想(北京)有限公司 一种数据处理方法和电子设备
CN105009065A (zh) * 2013-03-14 2015-10-28 高通股份有限公司 用于呈多重显示配置的虚拟用户界面控制的系统和方法
US10824531B2 (en) 2014-09-24 2020-11-03 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment
CN106687923B (zh) * 2014-09-24 2020-12-04 微软技术许可有限责任公司 多个设备上的计算环境的呈现
CN106687923A (zh) * 2014-09-24 2017-05-17 微软技术许可有限责任公司 多个设备上的计算环境的呈现
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
CN108401463A (zh) * 2017-08-11 2018-08-14 深圳前海达闼云端智能科技有限公司 一种虚拟显示装置、智能交互方法和云端服务器
CN111135557A (zh) * 2019-12-26 2020-05-12 三星电子(中国)研发中心 用于多屏的交互方法和装置
CN111135557B (zh) * 2019-12-26 2024-01-12 三星电子(中国)研发中心 用于多屏的交互方法和装置
CN111741349A (zh) * 2020-07-14 2020-10-02 北京简元科技有限公司 多媒体信息异形屏发布方法和装置及设备
CN114327324A (zh) * 2020-09-29 2022-04-12 华为技术有限公司 一种界面的分布式显示方法、电子设备及通信系统
WO2022154784A1 (en) * 2021-01-13 2022-07-21 Hewlett-Packard Development Company, L.P. Display settings changes based on locations

Also Published As

Publication number Publication date
WO2009143294A2 (en) 2009-11-26
WO2009143294A3 (en) 2010-01-21
EP2283421A2 (en) 2011-02-16
EP2283421B1 (en) 2019-08-14
CN102027450B (zh) 2015-05-13
US20100138780A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
CN102027450B (zh) 由移动计算装置使用外部显示装置的方法和系统
CN102918490B (zh) 与在平板计算装置的虚拟桌面内显示的远程应用交互
US11494010B2 (en) Touch support for remoted applications
US20200348810A1 (en) Display Management for Native User Experiences
US9241062B2 (en) Methods and systems for using external display devices with a mobile computing device
US20070234223A1 (en) User definable interface system, method, support tools, and computer program product
US8924502B2 (en) System, method and computer program product for updating a user session in a mach-derived system environment
EP2984558B1 (en) Multiple displays for displaying workspaces
CN103425479A (zh) 用于远程设备的用户接口虚拟化
US20090040179A1 (en) Graphic user interface device and method of displaying graphic objects
US20190278431A1 (en) Window control for simultaneously running applications
US20190295439A1 (en) Cross-application feature linking and educational messaging
CN113268212A (zh) 投屏方法、装置、存储介质及电子设备
CN101326513B (zh) 使用辅助工具图形管道的方法
WO2019089398A1 (en) Networked user interface back channel discovery via wired video connection
CN107770253A (zh) 远程控制方法及系统
JP6531468B2 (ja) 画面表示方法、画面表示プログラム、及び通信装置
CN115698988A (zh) 用于经由远程浏览器实例查看不兼容网页的系统和方法
WO2023277251A1 (en) A method and system to suggest and control operations on a handheld device for remote display
JP2022133670A (ja) 情報処理装置、情報処理方法およびプログラム
CN116149588A (zh) 一种显示方法及显示设备
KR20140130812A (ko) 광고 서비스 제공 방법, 이를 위한 장치 및 기록매체

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
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: 20150513