CN101669104A - 远程应用程序的本地主题化 - Google Patents
远程应用程序的本地主题化 Download PDFInfo
- Publication number
- CN101669104A CN101669104A CN200880010054A CN200880010054A CN101669104A CN 101669104 A CN101669104 A CN 101669104A CN 200880010054 A CN200880010054 A CN 200880010054A CN 200880010054 A CN200880010054 A CN 200880010054A CN 101669104 A CN101669104 A CN 101669104A
- Authority
- CN
- China
- Prior art keywords
- client
- theme
- server
- window
- application
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
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)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
Abstract
公开了用于远程应用程序的本地主题化的方法和系统。在一实现中,对应于由客户机执行的远程应用程序的重定向表面由服务器来定义。该客户机向服务器发送对应于该重定向表面中的客户机和非客户机区域的一组主题度量和部分。该服务器利用这些主题度量来呈现重定向表面的一部分的内容。所呈现的内容由客户机用来重新呈现重定向表面的客户机区域。非客户机区域在客户机处基于本地客户机主题设置来本地地呈现。
Description
背景
在大多数情况下,计算机用户优选使用支持最先进图形能力的操作系统。例如,许多操作系统都可具有负责为一个或多个应用程序窗口提供常见视觉外观或主题的组件。“主题”可以是操作系统专用的,并且可由操作系统的用户来修改。在典型的服务器-客户机体系结构中,客户机计算设备或客户机可访问并执行主存在服务器计算设备或服务器上的远程应用程序。对应于在服务器处执行的远程应用程序的应用程序窗口或代理窗口可在客户机处显示。代理窗口的特定部分可对应于一区域。代理窗口的这些部分的视觉外观或主题不在远程应用程序的直接控制下。操作系统的指定组件可维护这一非客户机区域的视觉方面。
在许多现有实现中,代理窗口的内容在服务器处呈现并被发送到客户机以供显示。因此,客户机处的代理窗口对应于服务器主题(即,服务器处的主题设置)并且可以不同于客户机主题(即,客户机处的主题设置)。因此,缺乏远程应用程序与客户机处的本地应用程序的无缝集成。此外,某些新主题可能由于这些主题的一个或多个特性特征而在服务器-客户机体系结构中得不到支持。例如,主题可具有透明元素并且可能无法在对应于远程应用程序的服务器上正确地呈现,因为该主题可能需要透明度来透出在服务器处不可用的本地内容或背景(即,客户机处)。此外,服务器可能无法呈现确切地遵照客户机主题设置的应用程序窗口。
概述
提供本概述是为了介绍将在以下详细描述中进一步描述的远程应用程序的本地主题化(theme)的简化的概念。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
描述了远程应用程序的本地主题化的方法。在一个实现中,该方法包括创建重定向表面,接收支持该重定向表面的本地主题度量,以及基于该本地主题度量来呈现该重定向表面。此外,对应于远程应用程序的代理窗口可使用重定向表面所呈现的内容和本地主题度量来呈现。
附图简述
参考附图来描述详细描述。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在不同的附图中使用相同的附图标记指示类似或相同的项。
图1是根据一实施例的实现远程应用程序的本地主题化的示例性系统的图示。
图2是用于实现远程应用程序的本地主题化的示例性服务器计算设备的实现。
图3是促进远程应用程序的本地主题化的客户机计算设备的实现。
图4示出了为远程应用程序的本地主题化而生成的示例性视觉树。
图5示出了根据一实施例的、服务器计算设备和客户机计算设备之间的、用于实现远程应用程序的本地主题化的一系列示例性交互。
图6示出了根据一实施例的用于远程应用程序的本地主题化的示例性方法。
详细描述
以下公开描述了用于远程应用程序的本地主题化的系统和方法。尽管所描述的用于远程应用程序的本地主题化的系统和方法的各方面可用任何数量的不同计算系统、环境和/或配置来实现,但在以下示例性系统体系结构的上下文中描述这些系统和方法的实施例。
典型的服务器-客户机计算环境使得客户机计算设备或客户机能够访问并执行主存在服务器计算设备或服务器上的远程应用程序。在执行远程应用程序时,呈现应用程序窗口以便显示在诸如客户端处的监视器等显示设备上。每一个这样的应用程序窗口都具有指示该应用程序窗口的各部分的呈现的相关联的视觉主题。应用程序窗口可被分成两个区域/区:客户机区域和非客户机区域。非客户机区域对应于应用程序窗口的一部分,该区域的视觉主题并非直接由该应用程序来控制。客户机处的代理窗口的非客户机区域的视觉主题对应于服务器主题,并且可以不同于本地客户机主题。可能期望通过实现相同的主题并提供对诸如本地预览缩略图等客户机处的相同特征的完全访问来允许远程应用程序与主存在客户机处的本地应用程序的无缝集成。客户机区域对应于应用程序窗口中可主存如按钮、复选框、列表框等标准控件的部分。标准控件的视觉主题并非直接由应用程序控制。客户机区域中的标准控件的视觉主题对应于服务器主题,并且可以不同于本地主题。可能期望通过实现对于标准控件的相同主题来允许远程应用程序与主存在客户机处的本地应用程序的无缝集成。
公开了用于远程应用程序的本地主题化的系统和方法。为此,这些系统和方法描述用于实现对应于远程应用程序的代理窗口的非客户机区域的本地呈现的机制、以及用于依照本地主题来呈现客户机区域的常见控件的机制。在一实现中,该机制涉及将与代理窗口相关联的一组主题度量(例如,框尺寸)以及各主题部分(例如,将作为默认按钮的背景来绘出的图像)从客户机重定向到服务器。服务器接收主题度量和部分并基于这些主题度量来呈现非客户机区域中具有最少或不具有服务器主题的代理窗口。该服务器依照客户机主题,使用所接收到的主题度量和各主题部分来绘制客户机区域的常见控件。客户机基于本地主题设置来呈现远程应用程序的非客户机区域并利用来自服务器的所呈现的信息来显示代理窗口。显示在客户机处的代理窗口具有与本地应用程序(主存在客户机处)相同的主题(即,客户机主题),由此给出统一的视觉外观。与现有系统和方法相反,所公开的机制使得能够独立于服务器主题地将任何新主题(客户机处)实现到远程应用程序的非客户机区域上。所公开的机制还使得能够独立于服务器主题地将任何新主题(客户机处)实现到远程应用程序的客户机区域中的常见控件上。
示例性系统
图1示出了用于远程应用程序的本地主题化的示例性远程客户机访问系统100。为此,系统100包括服务器计算设备或服务器102,其通过网络104来与一个或多个客户机计算设备或客户机106-1、106-2,...,106-N进行通信。系统100可以是如微软公司提供或定义的Terminal ServicesTM系统,其中多个客户机106依靠在服务器102上执行的应用程序。
服务器计算设备102可以用由微软公司提供的操作系统(例如,Server 2003操作系统)来实现。服务器102和客户机106可实现诸如远程桌面协议(RDP)等通信协议以便彼此传递数据或信息(即,通信)。对这些通信协议,特别是RDP的使用可在诸如Terminal ServicesTM系统等远程客户机访问系统的上下文中实现。
服务器102可被实现为各种常规计算设备中的任一种,包括例如,台式PC、笔记本或便携式计算机、工作站、大型计算机、移动计算设备、娱乐设备、游戏控制台、机顶盒、DVD播放器、因特网设备等。服务器102还可包括上述常规计算设备中被配置成服务器-客户机计算环境中的服务器的一个或多个计算设备。
客户机106可以是通用PC(个人计算机)、膝上型PC、图形输入板PC等,并且可实现操作系统,诸如来自微软公司的品牌的操作系统。客户机106可以是独立的计算机,其主要与服务器102接口以访问并非本地地存储在客户机106处的文件或其它信息(例如,驻留在服务器102处的应用程序)。
网络104可以是无线或有线网络或其组合。网络104还可以是各单独网络的集合,这些网络彼此互连并用作单个大型网络(例如,因特网或内联网)。这些单独的网络的示例包括但不限于,局域网(LAN)、广域网(WAN)和城域网(MAN)。此外,连接服务器102与客户机106的网络104可实现诸如网际协议传输控制协议(TCP/IP)等传输协议。
此处所公开的系统和方法实现远程应用程序的本地主题化。主题指的是关于应用程序的外观特性的集合或组。通常,远程应用程序经常需要控制将呈现或显示在客户端处的监视器等上的图形组件。例如,应用程序可能需要显示非客户机区域的一个或多个组件,诸如标题栏、系统手册、状态按钮(例如,最小化、最大化、还原等)、系统图标等。例如,应用程序可能需要显示客户机区域的一个或多个标准控件,诸如按钮、复选框、单选按钮等。因此,主题化包括通过控制与应用程序相关联的光栅化和呈现方面来向不同的应用程序窗口提供共同的视觉外观。操作系统的指定组件(例如,桌面窗口管理器合成器)提供用于显示应用程序窗口的光栅化和呈现能力。
在一示例性实现中,客户机106访问并执行主存在服务器102上的一个或多个远程应用程序。在执行这一远程应用程序时,客户机106和服务器102参与在这两者之间发起的客户机-服务器会话。客户机-服务器会话在客户机106处提供对应于特定远程应用程序的应用程序窗口(例如,代理窗口)。
服务器102处的重定向代理108为每一个顶层应用程序窗口创建重定向表面。顶层窗口指的是根据通常被成为“z次序”的次序来排列的一组应用程序窗口。客户机106利用由服务器102创建的重定向表面来呈现对于应用程序窗口的代理。可注意,“代理窗口”可以是“本地集成的远程应用程序”,即RAIL窗口。每一个这样的应用程序窗口都可被分成两个区域:1)客户机区域以及2)非客户机区域。这两个区域基于对应的远程应用程序对区域行使的控制而不同。因此,客户机区域指的是在远程应用程序的直接控制下的区域。非客户机区域指的是不在远程应用程序的直接控制下的区域。服务器102实现主题化服务110,其用于方便代理窗口的非客户机区域在客户机106处的本地呈现以及属于代理窗口的客户机区域的主题化的窗口部分的远程呈现。
主题化服务110可以是服务器操作系统的、提供服务器102处的光栅化和呈现能力的组件。重定向代理108呈现远程应用程序的内容并将其重定向到客户机106以供显示。客户机106包括客户机主题管理器112,如分别由客户机主题管理器112(1)、112(2),...,112(N)示出的。客户机桌面窗口管理器114(1)、114(2),...,114(N)利用所呈现的远程应用程序的内容来在客户机106处呈现代理窗口。
远程应用程序的本地主题化可实现用于向客户机主题管理器112查询对应于远程应用程序的一组主题度量(例如,主题度量尺寸、框大小等)和各主题部分(例如,已复选的复选框的图像)的机制。客户机主题管理器110响应于该查询来提供重定向到服务器102的主题度量和各主题部分。服务器102利用主题度量来在服务器102处呈现远程应用程序窗口(即,代理窗口)的内容。在一实现中,服务器102在呈现窗口的非客户机区域时不实现服务器主题或实现最少的主题。在一实现中,服务器102在呈现窗口的客户机区域中的常见控件时用客户机度量和部分来实现全主题。
客户机106接收呈现到代理窗口上的窗口内容以及对应于代理窗口的服务器主题度量和裁剪信息。随后,客户机106将远程应用程序的客户机区域呈现到代理窗口上。客户机主题管理器112利用本地客户机主题设置来呈现非客户机区域,由此给予代理窗口由客户机主题设置定义的外观。因此,在客户机106处本地地呈现非客户机区域而在服务器102处呈现客户机区域。客户机主题管理器112向远程主题管理器提供主题度量和部分。远程主题管理器根据客户机主题来呈现客户机区域。这一呈现机制导致远程应用程序与主存在客户机106处的本地应用程序的无缝集成。
示例性服务器计算设备
图2示出了用于远程应用程序的本地主题化的服务器计算设备(服务器)102的实现。为此,服务器计算设备102包括耦合到存储器202的一个或多个处理器200。处理器200可以是例如,微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵数据的任何设备。处理器200被配置成读取并执行存储在存储器202中的计算机程序指令。存储器202包括诸如随机存取存储器(RAM)等易失性存储器形式的计算机可读介质,和/或诸如只读存储器(ROM)或闪速RAM或其组合等非易失性存储器形式的计算机可读介质。
存储器202包括操作系统204,其提供用于在服务器102上执行一个或多个远程应用程序的平台。在典型的服务器-客户机体系结构中,服务器102用作应用服务器,其中客户机106依靠在服务器102上执行的应用程序。这些应用程序提供了所有或某些应用程序,这些应用程序提供功能,特别是对一个或多个远程应用程序的访问和控制。
存储器202还包括服务器桌面窗口管理器206和主题化服务110。服务器桌面窗口管理器206负责当在服务器102处执行远程应用程序时在应用程序窗口的显示处的呈现。远程应用程序包括服务器应用程序208,其在客户机106实例化服务器-客户机会话时在服务器处执行。主题化服务110启用对窗口的客户机和非客户机区域的常见控件强制执行统一视觉外观的功能。服务器应用程序208可以是Office 2007套件中所包括的应用程序。
在一示例性实现中,服务器102以重定向模式运行以便应用程序使用图形设备接口(GDI)绘制命令。图形设备接口(GDI)是应用程序编程接口并且它将应用程序与用于表示图形对象并将图形对象传递给诸如监视器和打印机等输出设备的组件中的一个相接口。在GDI重定向模式中,服务器102执行对应于应用程序的应用程序窗口的内容的光栅化和呈现并将所呈现的内容重定向到中间表面。在一实现中,对于重定向表面的光栅化过程可通过网络发送并在客户机106处重新创建。
因此,当客户机106访问服务器102并执行服务器应用程序208时,在客户机106处实现代理窗口或RAIL窗口。服务器102创建重定向表面,其也可被称为“子画面”并对应于将要呈现的应用程序窗口。可以理解,重定向表面或子画面是由服务器102用来呈现对应于服务器应用程序208的应用程序窗口的帧缓冲区的一部分。重定向表面的图示在图5中示出并将在题为“示例性方法”的章节中详细解释。
客户机106一发起对服务器应用程序208的执行,服务器102就将RAIL窗口实现通知给客户机106。服务器102向客户机106指示顶层窗口或应用程序窗口的呈现是利用由GDI重定向模式中的服务器102定义的重定向表面来执行的。在连续的进展中,向客户机主题管理器112查询一组主题度量和主题部分。主题度量包括例如,非客户机区域的尺寸、窗口框大小以及表征代理窗口的非客户机区域在客户机106处的呈现和结构的类似属性。主题部分包括例如,用于表示已复选的复选框按钮或已按下的按钮的默认背景的图像。在这些配置中的一个中,主题度量允许匹配窗口框的尺寸。在一个实现中,主题部分允许客户机和服务器之间的客户机区域部分的匹配。客户机106将主题度量和部分发送到主题化服务108。
服务器102接收主题度量和主题部分并将其存储在服务器数据210中。服务器数据210还可存储服务器主题设置以及可用于服务器102的光栅化和呈现功能的其他类似信息。主题化服务110利用接收到的主题度量来呈现对于非客户机区域不具有服务器主题或具有最少的GDI主题的重定向表面。主题化服务110利用主题部分来在客户机区域中呈现窗口的常见部分。这确保在服务器102和客户机106处不存在对非客户机区域的重复主题化。
随后,在客户机106处创建对应于远程服务器应用程序206的、具有根据服务器主题的适当属性和样式的代理窗口或RAIL窗口。客户机106利用从服务器102接收到的裁剪信息和服务器主题设置来将客户机区域显示到RAIL窗口上。非客户机区域由客户机主题管理器110来自动呈现以完整地显示代理窗口或RAIL窗口。此外,存储器202包括其他模块212,其用于生成和存储用于实现远程应用程序的本地主题化的数据结构。可以理解,客户机-服务器会话可存在于客户机106和服务器102之间并且因此其他模块212还可包括用于创建客户机-服务器会话的远程会话模块。另外,服务器102还包括用于建立与一个或多个客户机106的通信的网络接口214。
示例性客户机计算设备
图3示出了用于远程应用程序的本地主题化的客户机计算设备或客户机106的实现。为此,客户机计算设备106包括耦合到存储器302的一个或多个处理器300。这些处理器300可以是例如,微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵数据的任何设备。处理器300被配置成读取并执行存储在存储器302中的计算机程序指令。存储器302包括诸如随机存取存储器(RAM)等易失性存储器形式的计算机可读介质,和/或诸如只读存储器(ROM)或闪速RAM或其组合等非易失性存储器形式的计算机可读介质。
存储器302可包括操作系统304,其提供用于在客户机106上执行一个或多个客户机应用程序的平台。操作系统可以是各种操作系统中的一个。存储器202还包括客户机桌面窗口管理器306和客户机主题管理器110。客户机桌面窗口管理器306负责在诸如显示器或监视器等虚拟化设备处呈现客户机106处的应用程序窗口。
在一替换实现中,客户机桌面窗口管理器306可包括桌面合成引擎,即DCE。客户机桌面窗口管理器306可创建多个屏幕上的效果。屏幕上的效果包括显示位于下面的窗口内容的各部分的半透明窗口边框以及在用户在各应用程序之间切换时显示的堆叠效果。尽管客户机桌面窗口管理器306被示为单独的框,但可以理解,它可被包括在操作系统304中。
客户机106处的代理窗口也可以是对应于远程服务器应用程序208的RAIL应用程序窗口。如上所述,服务器102创建对应于包含所呈现的应用程序窗口的帧缓冲区的一部分的重定向表面或子画面。服务器102和客户机106处的示例性帧缓冲区出于说明的目的在图5中示出。存储器302还包括客户机应用程序308,其可由客户机桌面窗口管理器306来本地地执行和呈现。
在一示例性实现中,客户机106发起对服务器应用程序208的执行后,服务器102就将RAIL窗口实现通知给客户机106。随后,客户机桌面窗口管理器306向客户机主题管理器110查询一组主题度量和主题部分。在一实现中,这些主题度量可以是玻璃效果的透明度、状态按钮的颜色等。
客户机桌面窗口管理器306还可生成并维护表示特定种类的应用程序(例如,服务器应用程序208、客户机应用程序308)的结构和呈现信息的数据结构(例如,视觉树)。在这种情况下,结构和呈现信息可从对应于远程应用程序的数据结构或视觉树中获取。主题度量或视觉树可被存储在客户机数据310中。客户机主题管理器110将主题度量和主题部分发送到服务器102。在服务器处运行的主题服务110接收这些度量并使其对于在该服务器处运行的应用程序和组件可用。例如,操作系统中所包括的桌面窗口管理器可实现用于表示窗口呈现基础,即WPF应用程序的结构和呈现信息的视觉树。这一视觉树在图4中示出并将在此处在题为“示例性视觉树”的章节中进一步讨论。
主题化服务110接收该组主题度量和主题部分。主题化服务110对于远程服务器应用程序208的非客户机区域不呈现服务器主题或呈现最少的GDI主题,并且该主题化服务110完全呈现客户机区域的常见控件,诸如按钮、复选框等。服务器102将所呈现的服务器应用程序窗口内容连同呈现信息一起发送到客户机106。呈现信息可包括裁剪信息、z次序信息等。客户机106接收所呈现的内容和呈现信息并利用该内容和信息来将客户机区域呈现到对应的代理窗口或RAIL窗口上。非客户机区域由客户机主题管理器110来自动呈现。
存储器302可包括无缝窗口管理器314,其进行通信并从桌面窗口管理器102接收所呈现的应用程序窗口内容。在一实现中,客户机无缝窗口管理器314接收所呈现的重定向表面的内容并将客户机区域重新呈现到代理窗口上。
存储器302还可包括方便在客户机106执行服务器应用程序208时发起客户机-服务器会话的其他模块。客户机106还包括输入输出(I/O)接口316,其使得客户机的用户能够设置或修改客户机主题设置。这一对客户机主题设置的修改可包括可应用于客户机106处的对应于远程服务器应用程序208的代理或RAIL窗口的非客户机区域的新主题的设置。
客户机主题管理器112可将对客户机主题度量和主题部分(例如,窗口框尺寸、默认按钮的背景颜色等)的修改通知给服务器102。服务器102在接收到这一通知后基于经修改的主题度量来重新呈现对于非客户机区域具有最少GDI主题或不具有服务器主题且对于客户机区域的常见控件具有全主题的应用程序窗口的内容,并将所呈现的内容发送到客户机106。因此,客户机106从服务器接收最后一次呈现的内容以及其他呈现信息并利用该内容和信息来显示代理或RAIL窗口的客户机区域。非客户机区域在客户机处根据当前本地主题设置来呈现,由此给予客户机106处的客户机和服务器应用程序窗口两者统一的外观。此外,客户机106还包括用于建立与服务器102的通信的网络接口318。
示例性视觉树
图4示出了根据一实现的示例性视觉树400。因此,客户机桌面窗口管理器306实现用于表示应用程序(例如,客户机应用程序308)的呈现和结构信息的视觉树400。在这一实现中,客户机桌面窗口管理器306维护对应于一个或多个客户机应用程序308的一个或多个顶层窗口,该一个或多个顶层窗口中的每一个都与一组属性或特性相关联。属性可包括裁剪、可见性、自定义非客户机区域、缩略图表示、翻转3-D行为等。客户机桌面窗口管理器306为每一个顶层窗口生成视觉树400。典型的视觉树具有多个节点,其中每一个节点都可表示关于非客户机区域、系统图标、状态按钮、客户机区域等的呈现和结构信息。
视觉树400具有指定应用程序类型或种类的根节点402。根节点402具有子节点404、406和408。节点404对应于关于应用程序的非客户机区域的信息。节点408对应于关于应用程序的客户机区域的信息。节点406包括关于应用程序的非客户机区域的其他部分的信息。例如,节点406具有子节点410、412和414。节点410表示关于应用程序窗口中的系统图标的信息。类似地,节点412和414对应于应用程序窗口中的状态按钮和标题栏。视觉树还可包括用于模糊应用程序的特征的另一节点。模糊是可被包括在操作系统中的特征,其中模糊应用程序窗口的背景区域并且该应用程序窗口具有与其相关联的半透明性。在一实现中,客户机桌面窗口管理器306以视觉树400中的一个或多个节点的形式来表示客户机主题视觉外观(受主题度量影响)。
在一示例性实施例中,客户机桌面窗口管理器306评估窗口(或代理窗口)的属性或特性以创建表示如何呈现非客户机区域部分以及如何定位客户机区域的视觉树。客户机桌面窗口管理器走查顶层窗口的列表以生成对应于客户机应用程序308的视觉树。例如,顶层窗口可能不具有其中不同的应用程序窗口可以用立体图来查看的翻转3D行为。因此,客户机桌面窗口管理器306不会以3-D看见应用程序,因为应用程序窗口已选择不用这一表示。因此,客户机桌面窗口管理器306利用视觉树的概念来实现窗口列表的各种视图。可以理解,类似的视觉树400还可由对应于服务器应用程序208的服务器桌面窗口管理器206来实现。
示例性方法
用于远程应用程序的本地主题化的示例性方法参考图1到4并具体参考图5来描述。图5示出了服务器102和客户机106之间的、用于实现远程应用程序的本地主题化的一系列示例性交互。该示例性方法可在计算机可执行指令的一般上下文中描述。一般而言,计算机可执行指令可包括执行特定功能或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、功能等。这些方法还能在其中功能由通过通信网络链接的远程处理设备完成的分布式计算环境中实现。在分布式计算环境中,计算机可执行指令可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
在图5中,服务器102和客户机106通过服务器客户机接口502来交互。服务器102包括主题化服务108,其用于呈现对应于服务器应用程序208的应用程序窗口504。如上所述,应用程序窗口504具有可在服务器102处呈现时对其应用服务器主题的非客户机区域506。主题化服务108利用服务器帧缓冲区508来呈现应用程序窗口504。应用程序窗口504具有客户机区域,并且该主题化服务使用帧缓冲区来呈现窗口的常见部分,诸如默认按钮、复选框等。
在定义重定向表面后,重定向代理211向客户机计算设备发送通知以利用重定向表面来呈现代理应用程序窗口。如图5所示,客户机106包括用于呈现代理应用程序窗口504’(对应于应用程序窗口504)的客户机主题管理器112。图5还示出代理窗口504’的非客户机区域506’。客户机计算设备106将代理窗口504’呈现到客户机帧缓冲区510上。客户机帧缓冲区510还可包括可对应于本地客户机应用程序308的另一应用程序窗口512。代理窗口504’和应用程序窗口512两者都具有各自的非客户机区域(被示为阴影线区域)。此处所描述的系统和方法通过给予代理窗口504’和应用程序窗口512相同的视觉外观来无缝地集成它们。
图6示出了用于远程应用程序的本地主题化的示例性方法600。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。
在框602,在服务器处创建对应于其执行由客户机(例如,客户机106)发起的远程应用程序的重定向表面。在一实现中,服务器102定义对应于服务器应用程序窗口的重定向表面。该重定向表面指的是如图5中的服务器帧缓冲区508的一部分,其将在主题化服务110和应用程序本身呈现应用程序窗口时包含该应用程序窗口。
在框604,向客户机主题管理器110查询本地主题设置(例如,客户机主题度量和主题部分)。具体而言,客户机桌面窗口管理器306向客户机主题管理器120查询客户机主题设置。主题设置可包括主题度量,如非客户机区域的尺寸、非客户机区域的形状、大小等、模糊技术等。这防止在服务器102和客户机106处的对于代理窗口504’的主题重复。响应于该查询,客户机主题管理器112将主题度量发送到服务器主题化服务110。如早先所讨论的,主题度量包括任何窗口504的框的尺寸。客户机桌面窗口管理器114生成视觉树并利用其来表示关于呈现在客户机帧缓冲区510处的应用程序窗口的呈现和结构信息。在这一实施例中,客户机主题管理器110向视觉树的一个或多个节点提供用于设置属性的主题度量。
在框606,基于客户机主题度量来在服务器处呈现重定向表面的内容。主题化服务108从客户机主题管理器110接收并利用主题度量和主题部分,并呈现对于非客户机区域不具有服务器主题或具有最少的GDI主题且对于客户机区域常见部分具有全GDI主题的重定向表面的内容。主题化服务108利用主题度量和主题部分来呈现无主题的非客户机区域并利用各主题部分来呈现应用程序窗口504中的客户机区域中的常见控件。
如图5所示,非客户机区域506对应于无服务器主题或最少的GDI主题。应用程序窗口504的非阴影线部分中所示的客户机区域利用来自客户机的主题度量和部分来呈现。可以理解,在执行应用程序(例如,服务器应用程序208、客户机应用程序308等)时,应用程序调用桌面窗口管理器(例如,客户机桌面窗口管理器306、服务器桌面窗口管理器206)来执行对相应的应用程序窗口的内容的最终屏幕呈现。
呈现应用程序窗口所需的执行指令可被存储在由桌面窗口管理器或应用程序访问的动态链接库(DLL)中。规定客户机区域的呈现的一组参数(由DLL在访问主题化服务后展示)被称为系统度量;非客户机区域由依照所需视觉外观来覆盖系统度量的主题设置(例如,主题度量和主题部分)来管控。主题化服务108对于非客户机区域506不呈现服务器主题并且根据服务器102的当前所选度量和部分来呈现客户机区域中的常见部分。桌面窗口管理器206将所呈现的应用程序窗口504的内容传递给客户机无缝窗口管理器314。
在框608,客户机利用所呈现的重定向表面的内容以及本地客户机主题设置来呈现对应于远程应用程序的代理窗口。在这些配置中的一个中,客户机无缝窗口管理器314接收所呈现的重定向表面的内容并将客户机区域重新呈现到代理窗口504’上,如504’中的非阴影线区域所示。非客户机区域506’基于客户机主题设置来被本地地呈现到客户机帧缓冲区510上。在一替换实施例中,本地客户机主题设置可由客户机106的用户来修改。在这一实施例中,客户机106处的主题度量和主题部分(例如,窗口框的尺寸、非客户机区域的尺寸等)中的相应改变被传递给服务器102。这一传递作为如时间同步等全局事件来发生。服务器102通过如在框606处那样基于经修改的主题度量来再次呈现重定向表面来适应这些改变。
结论
上述方法和系统描述了远程应用程序的本地主题化。虽然已经用对结构特征和/或方法动作专用的语言描述了本发明,但是应该理解,在所附权利要求中定义的本发明不必限于所述的具体特征或动作。相反地,这些具体特征和动作是作为实现权利要求的本发明的示例性形式而公开的。
Claims (20)
1.一种服务器计算设备,包括:
存储器;
操作地耦合到所述存储器的一个或多个处理器;
所述存储器中的桌面窗口管理器;以及
所述存储器中的主题化服务,其中所述主题化服务管理用于定制常见窗口部分的视觉外观的设置。
2.如权利要求1所述的服务器计算设备,其特征在于,所述服务器计算设备以图形设备接口重定向模式运行。
3.如权利要求1所述的服务器计算设备,其特征在于,所述服务器计算设备创建对应于将要呈现的应用程序窗口的重定向表面。
4.如权利要求1所述的服务器计算设备,其特征在于,所述主题化服务从远程客户机设备接收主题度量和部分。
5.如权利要求4所述的服务器计算设备,其特征在于,所述主题度量包括以下各项中的一个或多个:非客户机区域的尺寸、窗口框大小、默认按钮的背景、以及表征所述计算设备处的窗口的客户机或非客户机区域的常见部分的呈现和结构的类似属性。
6.如权利要求4所述的服务器计算设备,其特征在于,所述主题化服务利用所述主题度量和部分来呈现重定向表面。
7.如权利要求1所述的服务器计算设备,其特征在于,还包括生成用于在远程计算设备处实现本地主题的数据结构的模块。
8.一种客户机计算设备,包括:
存储器;
操作地耦合到所述存储器的一个或多个处理器;以及
所述存储器中的客户机桌面窗口管理器;以及
客户机主题管理器;以及
所述存储器中的无缝窗口管理器,其用于在所述客户机计算设备处呈现远程应用程序的应用程序窗口。
9.如权利要求8所述的客户机计算设备,其特征在于,所述客户机主题管理器包括允许应用程序和组件与所述客户机主题管理器进行通信的一系列应用程序接口。
10.如权利要求8所述的客户机计算设备,其特征在于,所述客户机桌面窗口管理器包括桌面合成引擎。
11.如权利要求8所述的客户机计算设备,其特征在于,所述客户机桌面窗口管理器可创建一个或多个屏幕上的效果。
12.如权利要求8所述的客户机计算设备,其特征在于,所述客户机桌面窗口管理器生成并维护表示特定种类的应用程序的结构和呈现信息的数据结构。
13.如权利要求8所述的客户机计算设备,其特征在于,所述客户机主题管理器将对客户机主题度量和部分的修改通知给主存所述远程应用程序的远程服务器。
14.如权利要求8所述的客户机计算设备,其特征在于,还包括用于方便客户机-服务器会话的一个或多个模块。
15.一种用于远程应用程序的本地主题化的方法,包括:
创建重定向表面;
查询用于支持所述重定向表面的本地主题度量;以及
基于所述本地主题度量来呈现所述重定向表面或其各部分。
16.如权利要求15所述的方法,其特征在于,所述重定向表面对应于服务器应用程序窗口。
17.如权利要求16所述的方法,其特征在于,视觉树表示所述服务器应用程序窗口。
18.如权利要求15所述的方法,其特征在于,所述主题度量和部分用于呈现无主题的非客户机区域,并且所述主题度量和部分用于呈现应用程序窗口的客户机区域的常见部分。
19.如权利要求15所述的方法,其特征在于,还包括使用所呈现的所述重定向表面的内容和所述本地主题度量来呈现对应于所述远程应用程序的代理窗口。
20.如权利要求15所述的方法,其特征在于,所述本地主题度量和部分可由用户修改。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/694,611 US20080238929A1 (en) | 2007-03-30 | 2007-03-30 | Local Themeing Of Remote Applications |
US11/694,611 | 2007-03-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101669104A true CN101669104A (zh) | 2010-03-10 |
Family
ID=39793476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880010054A Pending CN101669104A (zh) | 2007-03-30 | 2008-02-28 | 远程应用程序的本地主题化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080238929A1 (zh) |
EP (1) | EP2143006A4 (zh) |
JP (1) | JP2010524081A (zh) |
CN (1) | CN101669104A (zh) |
WO (1) | WO2008121473A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003793A (zh) * | 2014-12-17 | 2017-08-01 | 三菱电机株式会社 | 远程操作系统和信息处理方法 |
CN114079609A (zh) * | 2020-08-03 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 网络系统的管控方法、装置、设备、介质及网络系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046695B2 (en) * | 2007-10-19 | 2011-10-25 | Citrix Systems, Inc. | Methods and systems for incorporating at least one window from a first desktop environment having a first themed graphical display into a second desktop environment having a second themed graphical display |
US8595327B2 (en) * | 2009-04-10 | 2013-11-26 | Microsoft Corporation | Obtaining instrumentation data |
US8769428B2 (en) * | 2009-12-09 | 2014-07-01 | Citrix Systems, Inc. | Methods and systems for generating a combined display of taskbar button group entries generated on a local machine and on a remote machine |
CN102200976B (zh) * | 2010-03-23 | 2014-11-05 | 日电(中国)有限公司 | 桌面应用转换成网络应用的定制系统和方法 |
CN101866287A (zh) * | 2010-06-09 | 2010-10-20 | 中兴通讯股份有限公司 | 一种widget系统外观设置方法和装置 |
US10031636B2 (en) | 2011-09-08 | 2018-07-24 | Microsoft Technology Licensing, Llc | Remoting desktop displays using move regions |
US8838726B2 (en) | 2011-09-09 | 2014-09-16 | Microsoft Corporation | Selective use of shared memory for remote desktop application |
US9448708B1 (en) | 2011-10-19 | 2016-09-20 | Google Inc. | Theming for virtual collaboration |
US9477404B2 (en) * | 2013-03-15 | 2016-10-25 | Apple Inc. | Device, method, and graphical user interface for managing concurrently open software applications |
US9471194B2 (en) | 2013-10-29 | 2016-10-18 | Microsoft Technology Licensing, Llc | Rendering windows having transparent properties from a remote desktop environment |
US9361280B2 (en) | 2013-11-26 | 2016-06-07 | Yahoo! Inc. | Web application theme preview based on live previews |
US10102664B1 (en) * | 2014-12-03 | 2018-10-16 | Charles Schwab & Co., Inc. | System and method for causing graphical information to be rendered |
CN116028000B (zh) * | 2023-02-22 | 2023-06-02 | 上海励驰半导体有限公司 | 跨多操作系统的显示特性处理方法、单元及交通设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6437803B1 (en) * | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
US5905492A (en) * | 1996-12-06 | 1999-05-18 | Microsoft Corporation | Dynamically updating themes for an operating system shell |
US6263346B1 (en) * | 1998-07-17 | 2001-07-17 | International Business Machines Corporation | Network with storage of all client computer programs in server computer having customized client graphical user interfaces with maximum sharing of stored portions of interfaces common to a plurality of clients |
US6392671B1 (en) * | 1998-10-27 | 2002-05-21 | Lawrence F. Glaser | Computer pointing device having theme identification means |
US6429883B1 (en) * | 1999-09-03 | 2002-08-06 | International Business Machines Corporation | Method for viewing hidden entities by varying window or graphic object transparency |
US6762767B2 (en) * | 2000-04-06 | 2004-07-13 | Microsoft Corporation | Theme aware management using fusion |
US6886135B2 (en) * | 2000-04-07 | 2005-04-26 | Microsoft Corp. | Extensible schema for defining the visual appearance of computer system components |
US7073130B2 (en) * | 2001-01-31 | 2006-07-04 | Microsoft Corporation | Methods and systems for creating skins |
US7017117B2 (en) * | 2002-02-14 | 2006-03-21 | Symantec Corporation | Attenuating and amplifying user interface themes |
US7627693B2 (en) * | 2002-06-11 | 2009-12-01 | Pandya Ashish A | IP storage processor and engine therefor using RDMA |
US20030231216A1 (en) * | 2002-06-13 | 2003-12-18 | International Business Machines Corp. | Internet navigation tree with bookmarking and emailing capability |
JP2004185553A (ja) * | 2002-12-06 | 2004-07-02 | Fujitsu Ltd | Webユーザインターフェースのコンポーネント化方法及び装置 |
US7917860B2 (en) * | 2005-03-03 | 2011-03-29 | Microsoft Corporation | Simple styling |
JP4391434B2 (ja) | 2005-03-10 | 2009-12-24 | フェリカネットワークス株式会社 | テーマ変更システム,携帯通信装置,サーバ装置,およびコンピュータプログラム |
US7533189B2 (en) * | 2005-06-21 | 2009-05-12 | Microsoft Corporation | Enabling a graphical window modification command to be applied to a remotely generated graphical window |
US7519681B2 (en) * | 2005-06-30 | 2009-04-14 | Intel Corporation | Systems, methods, and media for discovering remote user interface applications over a network |
US7716685B2 (en) * | 2005-08-30 | 2010-05-11 | Microsoft Corporation | Pluggable window manager architecture using a scene graph system |
US8527563B2 (en) * | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
-
2007
- 2007-03-30 US US11/694,611 patent/US20080238929A1/en not_active Abandoned
-
2008
- 2008-02-28 WO PCT/US2008/055319 patent/WO2008121473A1/en active Application Filing
- 2008-02-28 JP JP2010502166A patent/JP2010524081A/ja not_active Withdrawn
- 2008-02-28 EP EP08799721A patent/EP2143006A4/en not_active Withdrawn
- 2008-02-28 CN CN200880010054A patent/CN101669104A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003793A (zh) * | 2014-12-17 | 2017-08-01 | 三菱电机株式会社 | 远程操作系统和信息处理方法 |
CN114079609A (zh) * | 2020-08-03 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 网络系统的管控方法、装置、设备、介质及网络系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2010524081A (ja) | 2010-07-15 |
EP2143006A4 (en) | 2011-08-03 |
US20080238929A1 (en) | 2008-10-02 |
WO2008121473A1 (en) | 2008-10-09 |
EP2143006A1 (en) | 2010-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101669104A (zh) | 远程应用程序的本地主题化 | |
US7657837B2 (en) | Seamless windows functionality to remote desktop sessions regarding z-order | |
Kilgard | The OpenGL utility toolkit (GLUT) programming interface API version 3 | |
US8504926B2 (en) | Model based avatars for virtual presence | |
CN102413164B (zh) | 一种基于Web的三维场景可视化编辑装置和方法 | |
US6446113B1 (en) | Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager | |
US7937452B2 (en) | Framework for rendering plug-ins in remote access services | |
US20040117439A1 (en) | Client software enabling a client to run a network based application | |
USRE46386E1 (en) | Updating a user session in a mach-derived computer system environment | |
KR19980079686A (ko) | 개인용 회의 통화 시스템 | |
US20190065028A1 (en) | Agent-based platform for the development of multi-user virtual reality environments | |
EP2758878A2 (en) | Remote process execution management | |
US20140380196A1 (en) | Creation and Prioritization of Multiple Virtual Universe Teleports in Response to an Event | |
CN108228256A (zh) | 代码同步方法、装置、计算机可读介质及终端 | |
KR102136474B1 (ko) | 가상 세션에서의 클라이언트 측 키보드 레이아웃과 서버 측 키보드 레이아웃의 동기화 | |
US20140006915A1 (en) | Webpage browsing synchronization in a real time collaboration session field | |
CN105426076B (zh) | 信息处理方法及电子设备 | |
WO2021233038A1 (zh) | 消息发送方法、消息接收方法、装置、设备及介质 | |
CN104102536A (zh) | 一种数据的展示方法和系统 | |
CN111766958B (zh) | 一种输入法实现方法、装置、电子设备和存储介质 | |
Ostrowski et al. | Live distributed objects: Enabling the active web | |
KR20000041202A (ko) | 인터넷 3차원 채팅 시스템 | |
US7949705B1 (en) | Dynamic desktop switching for thin clients | |
Tate et al. | Design and implementation of a collaborative molecular graphics environment | |
US11995787B2 (en) | Systems and methods for the interactive rendering of a virtual environment on a user device with limited computational capacity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100310 |