CN103430164B - 用于经由http标头来进行远程桌面会话重新绘制的方法和设备 - Google Patents

用于经由http标头来进行远程桌面会话重新绘制的方法和设备 Download PDF

Info

Publication number
CN103430164B
CN103430164B CN201180067324.1A CN201180067324A CN103430164B CN 103430164 B CN103430164 B CN 103430164B CN 201180067324 A CN201180067324 A CN 201180067324A CN 103430164 B CN103430164 B CN 103430164B
Authority
CN
China
Prior art keywords
remote desktop
web browser
remote
code conversion
coordinate
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.)
Active
Application number
CN201180067324.1A
Other languages
English (en)
Other versions
CN103430164A (zh
Inventor
S·科米内克
J·M·斯坦利
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.)
Dell Marketing
Original Assignee
Wyse Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wyse Technology LLC filed Critical Wyse Technology LLC
Publication of CN103430164A publication Critical patent/CN103430164A/zh
Application granted granted Critical
Publication of CN103430164B publication Critical patent/CN103430164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Abstract

提供方法、系统、设备和机器可读存储介质的实例来经由编码转换服务器促进由客户端设备处的网页浏览器访问和控制远程计算机远程桌面,而无需在客户端设备上安装专有的插件或协议。编码转换服务器可将来自网页浏览器的用户输入请求转译成与远程桌面显示协议兼容的输入调用命令。编码转换服务器可从远程计算机接收远程桌面绘图命令且将远程桌面绘图命令转译成与网页浏览器兼容的网页浏览器绘图更新。编码转换服务器可经由HTTP与网页浏览器进行通信,并经由远程桌面显示协议与远程计算机进行通信。网页浏览器可为HTML5浏览器。编码转换服务器可经由HTTP标头将绘图坐标发送到网页浏览器,并可以使用长轮询。

Description

用于经由HTTP标头来进行远程桌面会话重新绘制的方法和设备
技术领域
本发明主题的技术通常涉及通信及处理,以及更具体地涉及用于经由HTTP标头来进行远程桌面会话重新绘制的方法和系统。
背景技术
传统远程桌面协议的实现使得远程用户能够从客户端设备通过局域网或广域网的网络拓扑到服务器上访问其桌面或应用程序。
传统的方法适用于支持特定公共或专有远程桌面显示协议(其是本地的或安装到服务器上的)的软件架构(infrastructure)供应商。为了利用远程桌面协议来访问服务器,客户端通常需要具有在用户的特定操作系统和平台或适于特定浏览器的插件上执行的特定软件应用协议。
因此传统的方法对于用户而言是繁琐的。因此,对于下述系统和方法存在需求,所述系统和方法便于用户从客户端设备与服务器上运行的应用程序交互,以及给在客户端设备处的用户提供改进的体验。
发明内容
可利用编码转换服务器来提供本公开的各个方面,所述编码转换服务器通过远程桌面客户端提供一个或多个网页浏览器到一个或多个远程计算机的访问。根据本公开的编码转换服务器可包括例如计算机可读指令的模块或功能,以便用于接收来自网页浏览器的请求。编码转换服务器还可包括例如计算机可读指令的模块或功能,以便将从网页浏览器接收到的用户输入请求(如HTTP请求)转译成相应的输入调用命令,其在协议/语言上与用于访问一个或多个远程计算机的一个或多个远程桌面客户端兼容。编码转换服务器可经由一个或多个远程桌面客户端来接收来自一个或多个远程计算机的例如绘图命令的信息/数据,并将所述信息/数据转译成与相关联的一个或多个网页浏览器兼容的协议/语言。编码转换服务器可包括用于保持图像(例如Java位图)的存储/记忆功能,其可响应于从远程桌面服务器所接收到的绘图命令来进行修改。编码转换服务器也可接收来自远程桌面服务器的绘图命令并存储相应于相应绘图命令的坐标。
在一些应用中,编码转换服务器可通过创建和修改远程桌面一部分的图像来促进/加速一个或多个相关的远程桌面图像在相关网页浏览器处的渲染,远程桌面一部分的图像受到用户在用户设备处输入的影响。
本公开的各个方面可提供一种编码转换服务器,其具有长轮询功能以便处理来自网页浏览器的请求。
本公开的各个方面可包括或提供具有画布(canvas)或二维渲染功能的网页浏览器。
应该理解对于本技术领域的技术人员而言从下面的详细描述将容易明了本发明主题技术的其它配置,在下面的详细描述中通过示例的方式示出和描述了本发明主题技术的各种配置。如将会意识到的那样,本发明主题的技术能够具有其它和不同的配置,且其若干细节能够在不同的其它方面进行修改,上述所有内容均不脱离本发明主题技术的范围。因此,附图和详细描述应该被认为在本质上是示例性的而不是限制性的。
附图说明
图1示出在经由服务器与远程计算机的远程访问会话期间在客户端设备上显示的实例;
图2A是一个或多个客户端设备实例的视图,其中每个客户端设备具有经由多个网络和一个服务器而连接到一个或多个远程计算机的网页浏览器;
图2B是一个或多个客户端设备实例的视图,其中每个客户端设备具有通过一个网络和一个服务器而连接到一个或多个远程计算机的网页浏览器;
图3A是根据本公开某些方面的在结合网页浏览器和远程计算机使用时的编码转换服务器实例的概念性框图;
图3B是根据本公开某些替代性方面的在结合网页浏览器和远程计算机使用时的编码转换服务器实例的概念性框图;
图4A是编码转换服务器实例的概念性框图;
图4B是替代性编码转换服务器实例的概念性框图;
图4C是远程计算机的远程桌面的概念性框图;
图5是在结合编码转换服务器和远程计算机使用时的网页浏览器实例的概念性框图;
图6是根据本公开某些方面的编码转换服务器实例的概念性框图;
图7是在结合网页浏览器和远程计算机使用时在编码转换服务器、网页浏览器和远程计算机之间交互的时序图的实例;
图8是示出示例性计算系统的框图;
图9A是示出从用户设备访问和控制远程桌面的方法实例的框图;
图9B是示出延续图9A的图;
图10A是示出在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器促进实时访问和控制远程计算机远程桌面的方法实例的框图;
图10B是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器来促进实时访问和控制远程计算机远程桌面的方法;
图10C是示出用于在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器促进实时访问和控制远程计算机远程桌面的设备实例模块的框图;
图11A是示出在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器促进实时访问和控制远程计算机远程桌面的方法实例的框图;
图11B是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器来促进实时访问和控制远程计算机远程桌面的方法;
图11C是示出用于在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器促进实时访问和控制远程计算机远程桌面的设备实例模块的框图;
图12A是示出经由编码转换服务器和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法实例的框图;
图12B是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行经由编码转换服务器和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法;
图12C是示出用于经由编码转换服务器和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的设备实例模块的框图;
图13A是示出用于通过编码转换服务器、利用适于远程桌面会话绘图的超文本传输协议(HTTP)的HTTP标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法实例的框图;
图13B是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行通过编码转换服务器、利用适于远程桌面会话绘图的超文本传输协议(HTTP)的HTTP标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法;
图13C是示出用于通过编码转换服务器、利用适于远程桌面会话绘图的超文本传输协议(HTTP)的HTTP标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的设备实例模块的框图;
图14A是示出通过编码转换服务器、利用在编码转换服务器处的适配器促进在客户端设备处的网页浏览器和远程计算机处的远程桌面服务器之间进行远程桌面会话的方法实例的框图;
图14B是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行通过编码转换服务器、利用在编码转换服务器处的适配器促进在客户端设备处的网页浏览器和在远程计算机处的远程桌面服务器之间进行远程桌面会话的方法;
图14C是示出用于通过编码转换服务器、利用在编码转换服务器处的适配器促进在客户端设备处的网页浏览器和在远程计算机处的远程桌面服务器之间进行远程桌面会话的设备实例模块的框图;
图15A是示出计算机可读存储介质实例编码的框图,该存储介质编码有指令,所述指令可由处理系统执行以便执行经由适于编码转换服务器的超文本传输协议(HTTP)处理器和远程桌面客户端适配器促进实时从客户端设备处的网页浏览器访问和控制远程计算机远程桌面的方法;
图15B至图15C是示出经由适于编码转换服务器的超文本传输协议(HTTP)处理器和远程桌面客户端适配器促进实时从客户端设备处的网页浏览器访问和控制远程计算机远程桌面的方法实例的框图;图15C是延续图15B的图;
图15D至图15E是示出经由适于编码转换服务器的超文本传输协议(HTTP)处理器和远程桌面客户端适配器促进实时从客户端设备处的网页浏览器访问和控制远程计算机远程桌面的设备实例模块的框图;图15E是延续图15D的图。
虽然在附图中示出了某些实施例,但是本领域的技术人员将会理解的是所描述的实施例是示例性的,可在本公开的范围内设想到所示实施例的变型以及本文所描述的其它实施例并可进行实施。
发明内容
下面提出的详细描述意旨是作为本发明主题技术的各种配置的描述,而并非意旨代表其中可实施本发明主题技术的唯一配置。附图并入本文中,并构成详细描述的一部分。详细描述包括为了给本发明主题技术提供透彻理解目的具体细节。然而,对于本技术领域的技术人员而言显而易见的是本发明主题的技术可在没有这些具体细节的情况下来实施。在某些情况下,公知结构和组件以框图形式示出,以避免模糊本发明主题技术的概念。为了便于理解,相同的组件由具有相同的元件标号来标记。
之前使用超文本标记语言(HTML)的方法需要使用特定的浏览器插件来例如通过加速视频和音频作为用于创建更好用户体验的一种方法。浏览器插件不能独立地通过竞争架构供应商获取HTML浏览器。
架构供应商在“专有的”远程桌面协议方面竞争地非常激烈,并侧重于随着时间的推移进行适度地改善以改善用户体验。同时利用远程桌面协议的用户体验是架构供应商之间的主要区分者。但是,已知的工作不能够使得用户和客户用统一的方法来远程访问他们的家庭、工作或移动的Windows、Mac或Linux环境。
在某些方面,本发明主题技术的实施例可以消除或减少用于将“专有的”协议安装在用户设备(或客户端设备)上以便在远程桌面会话期间用于访问远程计算机的需求。远程计算机或可远程访问的计算机可包括远程桌面服务器。通过使得用户能够凭借如HTML5的“开放标准”技术使用单一方法来访问他们的远程桌面,可以显著减少放置在用户设备例如智能手机上的要求。
在某些方面,本发明主题技术的实施例可减少或消除用于将客户端软件和/或浏览器插件安装到用户客户端设备上的需求。
在某些方面,本发明主题技术的实施例可以实现希望从个人计算机桌面上进行执行本地应用程序而获取的强大的用户体验。
在某些方面,本发明主题技术的实施例可有利地利用合适网页浏览器的二维渲染功能以及可由在用户客户端设备上运行的浏览器二维绘图功能取代专有的渲染协议。
在某些方面,本发明主题技术的实施例可允许用户容易地通过多个服务器来访问一个或多个打开的远程桌面,且从实时存储于相关联的网络服务器上的信息保持它们的确切状态,所述相关联的网络服务器具有协议转换功能,其可起到在由大多数远程桌面协议采用的推式协议和由HTTP采用的拉式协议之间的通用接口的功能,上述网络服务器在此也称为“编码转换服务器”,用户可经由具有二维渲染功能的网页浏览器来访问上述服务器。这样做可允许用户在几秒钟内渲染当前打开会话的远程显示屏。因此,当用户从客户端设备到客户端设备进行切换时,保存特定远程桌面的确切状态以及基于每一显示器的能力来进行重新渲染。用户的多个桌面可有效地配置成总是处于打开状态且准备好根据要求来显示。用户的远程桌面可配置成在任何时刻以及从任何地点来进行访问。
在如本文所述的本发明主题技术之前,因为HTTP(拉式协议)和大多数远程桌面显示协议(推式协议)是不相容的,本领域内的技术人员已经普遍地认识到对于网页浏览器而言专有软件和/或下载的插件是必要的,以便使得远程桌面会话在一端利用HTTP以及在另一端利用远程桌面显示协议。
在某些方面,本发明主题技术的实施例可使得任何终端设备的用户使用具有2D渲染功能的网页浏览器,例如,HTML5浏览器,以便在一个或多个浏览器窗口中显示一个或多个远程桌面会话。本公开的实施例可相应地消除用于将适于远程桌面访问的专有或开放的源客户端应用程序安装在客户端设备上的需求。本公开的实施例可以建立和维持到单个或多个Windows和MacOS或Linux服务器的同步远程桌面连接,并使得能够在用户的浏览器应用程序中独立地显示和交互所有的远程会话。本公开的实施例实时渲染且可作为网页显示在远程客户端(例如像智能手机的用户设备)上。所有的用户鼠标、触摸屏屏和键盘输入可捕获在浏览器窗口内并转换成由远程计算机桌面所需的输入格式,其可利用常见的桌面协议,例如由Citrix系统提供的独立计算架构(ICA)、由微软提供的远程桌面协议(RDP),以及由Taradici提供的PC-over-IP(PCoIP)等。本公开的实施例可在任何时候保持到主机服务器的开放连接,允许一个或多个端点设备交互地连接到远程会话以及瞬间断开到远程会话的连接。远程会话从不需要从服务器断开连接,因为本公开的实施例可保持到桌面的活动连接。活动会话可重新调整大小,并可进行调整以便于获取最佳的显示效果和用户体验,从而充分利用用户访问设备的能力。
在某些方面,本发明主题技术的实施例可减少或消除适于本地客户端应用程序例如网页浏览器的要求,以便支持供应商的特定远程桌面协议。本公开的实施例可允许具有2D渲染功能的浏览器在任何硬件、任何操作系统上运行以及以任何形式运行,以便适于用户访问其远程桌面或应用程序。用户可只需将浏览器(例如像谷歌浏览器的HTML5兼容浏览器)指向适于配置成远程桌面应用程序服务器的一个或多个远程计算机的相应的预定统一资源定位器(URL)。浏览器可访问编码转换服务器,所述编码转换服务器可在适用于浏览器的协议和适用于远程计算机的协议之间进行转译或转码。编码转换服务器可以是公共的/或基于云的专有服务器,以及可以利用HTTPS协议来访问编码转换服务器。编码转换服务器可验证在远程计算机和远程桌面客户端之间的连接,实时渲染远程计算机的桌面,以及将所述渲染经由HTTP传送到浏览器,这样浏览器可以HTML5画布显示所述渲染。因此,本发明的实施例可具有如下功能或提供如下功能,即连接到一个或多个远程桌面服务器的虚拟桌面和应用程序服务器,例如采用ICA的CitrixXenDesktop,采用RDP的微软Windows客户端和服务器,以及采用PCoIP的VMwareView等。
在支持画布2D实时绘图原语的HTML5之前,由于渲染对象的静态特性,不能将单独的HTML认为是实用的渲染技术。如根据本发明所用的那样,HTML5和类似的浏览器语言可由于在客户端平台上以2D、3D和多媒体视频/音频对象渲染的能力而使得新的用户具有强大的体验;在某些情况下,HTML5还可以利用适于这种渲染的硬件加速。本发明主题技术的各个方面可通过提供允许实时访问远程计算机以及不需要客户端设备具有专有软件或插件的无关于平台的技术而可便于增强用户对远程桌面会话的体验。此外,远程计算机对于远程桌面会话而言不需要具有HTTP或HTML兼容性。
如本文所述,本发明主题技术的各个方面可以减少或最小化浏览器和根据本公开编码转换服务器之间的流量。可通过本发明主题技术的不同方面来促进流量的减少,上述方面包括但不限于,对于从网页浏览器接收到的绘图请求执行长轮询,将来自远程桌面的已经改变和需要更新的仅仅一部分图像(而非整个远程桌面的图像)提供给网页浏览器,并将适于更新后图像部分的坐标放置到单个HTTP传输响应的标头中。进出浏览器的流量减少可促进远程桌面会话提供实时的用户体验,例如如果对于用户从客户端输入传输到远程计算机而言的往返时间内(延迟)有任何可感知的延迟的话时间很短的用户体验,以及相应更新的远程桌面显示在客户端设备上。在示例性实施例中,这种延迟会是短时间的,例如100毫秒,从而使大多数用户根本感觉不到任何延迟。
图1示出在经由服务器与远程计算机的远程访问会话期间在具有较大显示屏的客户端设备处的显示的实例。显示器100包括客户端设备的本地桌面110,网页浏览器窗口120,网页浏览器窗口120依次包括示出远程计算机远程桌面的图像132的远程视图窗口130,在该实例中,该图像除了在远程计算机上运行的远程网页浏览器应用程序140之外包括文件夹和快捷图标。远程视图窗口130可具有一定的高度H和宽度W,以及远程视图窗口130可重新调整大小(例如,可扩大以覆盖整个本地桌面110或缩小)。远程桌面130的图像132和远程应用程序140基于远程桌面130和远程应用程序140的经由服务器从远程计算机传送到客户端设备上的显示输出数据。
正如前面提到的那样,本公开的各个方面可包括或利用具有2D画布的HTML5兼容的网页浏览器,例如,图5中的530。HTML5要求提供二维画布,其允许对2D图形和位图图像进行动态的、实时的和以脚本方式渲染。在一个方面,可以脚本方式可意味着或包括用于利用JavaScript进行标记来渲染2D图像。画布包括以具有一定高度和宽度属性的HTML编码来限定的可绘制区域。JavaScript编码可通过类似于其它普通2DAPI的一套完整的绘图功能来访问该区域,从而允许动态地生成图形。
如图2A至图2B中所示,本公开示例性实施例的整体架构可包括三个部分:客户端设备(或用户设备),其包括浏览器,例如HTML5兼容浏览器;服务器,例如,Java网络服务器,其配置成用作编码转换服务器,在不同的协议之间进行转译;以及客户端设备连接到其的远程计算机。如图3A至3B中所示以及针对图3A至图3B的描述,编码转换服务器可包括三个主要部分:远程桌面客户端包装器或适配器,绘图命令队列,以及网络应用程序服务器(容器)。网络应用程序服务器可包括各种元件或组件,例如超文本传输协议(HTTP)处理器,长轮询处理器,以及绘图请求队列,如参照图2A至图11示出和描述的那样。在替代性的实施例中,绘图命令队列可以是网络应用程序服务器的一部分。
图2A是客户端设备实例的视图,诸如那些具有经由多个网络和一个服务器而连接到多个远程计算机的网页浏览器。系统200可包括一个或多个远程客户端设备202,其经由一个或多个网络206通过服务器计算装置208(服务器)与一个或多个远程计算机204进行通信。在一个方面,服务器208配置成允许远程会话(例如,远程桌面会话),其中在客户端设备202处的用户通过经由一个或多个网络206从客户端设备202登录到服务器208上而可以访问一个或多个远程计算机204上的应用程序和文件。
图2B是通过网络和服务器连接到一个或多个远程计算机的一个或多个客户端设备的替代性实例的视图。如图中所示,与远程计算机204相关联的服务器208例如可以轮毂和辐条的配置连接到网络206。
通过示例而非限制性的方式,在本公开的一个方面,从远程计算机侧的透视图进行陈述(将远程计算机204看作本地设备,而将客户端设备202看作远程设备),在本地设备204处执行(或运行)应用程序。虽然客户端设备202可将应用程序视图接收和显示在客户端设备202本地的显示器上,但是客户端设备202不在客户端设备202处执行(或运行)应用程序。从客户端一侧的另一方式进行陈述(将远程计算机204看作远程设备,而将客户端设备202看作本地设备),在远程计算机204处执行(或运行)远程应用程序,虽然客户端设备202可接收和显示远程应用程序视图,但是客户端设备202不在客户端设备202本地处执行(或运行)远程应用程序。
通过示例而非限制性的方式,客户端设备202可代表计算机,移动电话,膝上型电脑,薄型客户端设备,个人数字助理(PDA),便携式计算机设备,或具有处理器的合适装置。在一个实例中,客户端设备202可以是智能手机(如iPhone,Android手机,黑莓等等)。在某些配置中,客户端设备202可代表音频播放器,游戏机,照相机,摄像机,音频设备,视频设备,多媒体设备,或能够支持连接到远程服务器的设备。在一个优选的实例中,客户端设备202是移动的。在另一个实例中,客户端设备202可以是固定的。根据本公开的一个方面,客户端设备202可以是具有至少一个处理器和存储器的设备,其中客户端设备202的总存储量可小于远程计算机204或服务器208中的总存储量。在一个实例中,客户端设备202不具有硬盘。在一个方面,客户端设备202具有的显示小于由远程计算机204或服务器208支持的显示。在一个方面,客户端设备可包括一个或多个客户端设备。
在一个优选的方面,服务器208或远程计算机204可代表计算机。在另一个方面,服务器208或远程计算机204可代表膝上型电脑,计算设备,虚拟机(例如,VMware虚拟机),桌面会话(例如,微软终端服务器),公布的应用程序设备(例如,微软终端服务器),或具有处理器的合适装置。在一个优选的实例中,服务器208或远程计算机204是固定的。在另一个方面,服务器208或远程计算机204可以是移动的。在某些配置中,服务器208或远程计算机204可以是可代表客户端设备的任何设备。在一个方面,服务器208可包括一个或多个服务器。
在一个实例中,当第一设备没有直接连接到第二设备时,第一设备就是到第二个设备的远程设备。在一个实例中,第一远程设备可通过诸如局域网(LAN)、广域网(WAN)、和/或其它网络的通信网络连接到第二设备。
当客户端设备202、服务器208和远程计算机204相对于彼此是远程设备时,客户端设备202通过网络206连接到服务器208,而远程计算机可通过网络206经由网络连接而连接到服务器208,上述网络连接例如是调制解调器连接,包括以太网的LAN连接,或包括DSL、电缆、T1、T3、光纤、Wi-Fi的宽带WAN连接,或包括GSM、GPRS、3G、WiMAX的移动网络连接,或其它网络连接。网络206可以是LAN网络,WAN网络,无线网络,因特网(互联网),企业内部网或其它网络。网络206可包括用于在客户端设备和/或服务器之间路由数据的一个或多个路由器。网络上的远程设备(例如,客户端设备,服务器)可由相应的网络地址定址,包括但不限于互联网协议(IP)地址,互联网名称,Windows因特网名称服务(WINS)的名称,域名或其它系统名称。这些说明了一台设备如何成为到另一台设备的远程设备的一些实例。但本发明主题的技术并不仅仅限于这些实例。
根据本公开的某些方面,术语“服务器”和“远程服务器”通常关于客户端设备同义地使用,以及词语“远程”可指示服务器例如通过网络连接与一个或多个其它设备进行通信。
根据本公开的某些方面,术语“服务器”和“远程服务器”通常关于服务器/或远程计算机同义地使用,以及词语“远程”可指示客户端设备例如通过网络连接与一个或多个服务器和/或一个或多个远程计算机进行通信。
在本公开的一个方面,“客户端设备”可有时称为客户端,用户设备,用户的设备或反之亦然。类似地,“服务器”可有时称为服务器设备或反之亦然。服务器有时也被称为网络服务器。本公开的示例性实施例包括使用具有转码(编码转换)功能的网络服务器,例如编码转换服务器。
在一个方面,术语“本地”和“远程”是相对的术语,分别取决于客户端是否是从客户端设备一侧或从服务器一侧或远程计算机一侧来进行描述,客户端设备可被称为本地客户机设备或远程客户端设备。取决于远程计算机是否是从远程计算机的一侧或从客户端的一侧或服务器的一侧来进行描述,远程计算机可被称为本地计算机或远程计算机。类似地,分别取决于服务器是否是从所述服务器的一侧或从客户端的一侧或远程计算机的一侧来进行描述,服务器可被称为本地服务器或远程服务器。此外,如果从远程计算机的一侧进行描述,在远程计算机上运行的应用程序可被称为本地应用程序,而如果从客户端的一侧或服务器的一侧进行描述,在远程计算机上运行的应用程序可被称为远程应用程序。
在一个方面,放置在客户端一侧上的设备(直接连接到客户端的设备或使用电线或短距离无线连接(例如,蓝牙)连接到彼此的设备)可相对于客户端设备被称为本地设备,以及相对于服务器被称为远程设备。类似地,放置在服务器一侧上的设备(直接连接到服务器的设备或使用电线或短距离无线连接(例如,蓝牙)连接到彼此的设备)可相对于服务器被称为本地设备,以及相对于客户端设备被称为远程设备。
图3A是根据本公开某些方面的在结合网页浏览器312和远程计算机320使用时的包括编码转换服务器330的系统300A实例的概念性框图。示出例如智能手机或膝上型电脑的客户端设备310以及网页浏览器,其具有(i)画布316,例如具有支持2D渲染画布的网页浏览器312;以及(ii)脚本客户端314,例如在一个优选实施例中的JavaScript客户端。
编码转换服务器330可以包括三个主要功能块或模块:网络应用程序服务器(容器)340,远程桌面客户端适配器350,以及包括共享存储器的绘图命令队列360。网络应用程序服务器可包括HTTP处理器344,用于处理来自网页浏览器的HTTP请求以及响应于网页浏览器的HTTP。在一些实施例中,网络应用程序服务器(容器)340还可包括长轮询处理模块342,如图所示。远程桌面客户端适配器350可配置成与例如来自第三方供应商的远程桌面客户端352接口连接,以便与远程计算机320进行通信,所述远程计算机320包括远程桌面服务器322,如图所示。编码转换服务器330的实施例可配置成提供应用程序框架,用于托管一个或多个网络应用程序和/或起到可运行Servlet的Java网络应用程序服务器。在某些方面,远程桌面客户端适配器350可被称作远程桌面客户端通用接口。
远程桌面客户端352可利用远程桌面显示协议用于与远程计算机320的远程桌面服务器322进行通信。远程桌面客户端将用户输入发送到远程计算机,并经由其特定的远程桌面显示协议接收来自远程计算机的绘图数据。
在一个方面,远程桌面服务器322可涉及在远程计算机320上安装的软件,以及远程桌面服务器322可允许在与远程计算机320独立和不同的机器(例如,客户端设备310)上显示在远程计算机320上运行的应用程序,特别是那些包括图形的应用程序。远程桌面服务器322可允许代表远程计算机桌面图像的绘图命令发送到单独的机器(例如,编码转换服务器330)。在一个方面,远程桌面客户端352可涉及在与远程计算机320独立和不同的机器(例如,编码转换服务器330)上安装的软件。远程桌面客户端352可经由远程桌面显示协议发送请求到远程桌面服务器322以及响应地经由远程桌面显示协议接收代表远程计算机桌面图像的绘图命令。
在操作过程中,网络应用程序服务器340可起到接收和响应于JavaScript客户端的HTTP请求的功能。在一个实施方式中,可以使用Servlet服务器,但是利用例如像Restlet的任何类似的网络应用程序框架可以获取相同的结果。远程桌面客户端适配器350可提供任何远程桌面客户端和绘图命令队列/网络应用程序服务器之间的通用接口。
远程桌面客户端适配器350可以接收来自HTTP处理器344的用户输入信息、数据或命令(例如鼠标,键盘,以及触摸屏事件)以及将输入信息/命令转译成相应的远程桌面输入调用命令,其有时被称为远程桌面输入命令。远程桌面客户端适配器350也可以将从远程桌面服务器322所接收(经由远程桌面显示协议和远程桌面客户端352)的远程桌面绘图命令(例如GDI绘图命令)转译成Java图形应用程序编程接口(API)命令。Java图形API命令本身并不适用于网页浏览器,但是它们是实现浏览器兼容性的一个中间步骤。然后远程桌面客户端适配器可执行那些Java图形API命令,也就是说,绘制成离屏的Java位图,其可以储存于绘图命令队列360内。在替代性的实施例中,绘图命令队列(例如,图3A中的360或图4A或4B中的440)可接收来自远程桌面客户机适配器的Java图形API命令,并执行Java图形API命令以便绘制成离屏的Java位图。HTTP处理器(例如,图3A中的344或图4A中的422)或图像转换模块(例如,图3B中的346或图4B中的428)可从Java离屏位图来创建图像,诸如联合图像专家小组(JPEG)图像,或便携式网络图形(PNG)图像,或位图像文件(BMP)图像或适用于网页浏览器的为图像格式的任何其它图像文件;以及由此产生适用于浏览器312的图像。在一个方面,JPEG图像可被称为JPEG图像文件,PNG图像可被称为PNG图像文件,以及BMP图像可被称为BMP图像文件。在一个方面,随着图像(例如,JPEG或PNG图像)实时创建,在图像创建时,其仅被发送到网页浏览器而不存储在编码转换服务器处。
在一个方面,绘图命令队列360可用于两个目的:保存或存储其上执行绘图命令的离屏Java位图;以及保存或用作绘图坐标池,例如,适于绘图命令的坐标队列。例如绘图命令队列360可以存储从远程桌面客户端适配器所接收到的GDI绘图命令坐标。在队列中存在新绘图坐标的情况下,绘图命令队列360可发送通知到长轮询处理器模块342(例如,可以发送通知使得可服务于绘图请求队列中的任何等待处理的请求)。绘图请求队列中(例如,图4A或4B中的426)可起到存储从客户端输入的长轮询绘图请求以及当存在来自绘图命令队列的等待处理绘图命令时进行响应的功能。
图3B是在结合网页浏览器和远程计算机使用时的根据本公开某些替代性方面的包括编码转换服务器330的系统300B的概念性框图。系统300B类似于图3A中的具有相似附图标记的系统300A,不同之处在于远程桌面客户端352示出为相对于远程桌面客户端适配器350的单独模块/功能块,以及图像转换模块346示出为相对于HTTP处理器344的单独模块/功能块。
图4A是根据本公开某些方面的编码转换服务器400A的详细概念性框图。在一个方面,编码转换服务器400A可优选为Java编码转换服务器。编码转换服务器400A可包括网络应用程序服务器420(例如,网络应用程序服务器,如Servlet服务器),远程桌面客户端适配器430,以及绘图命令队列440。远程桌面客户机适配器430可配置成与任何适当的远程桌面客户端432接口连接以便与远程计算机(例如,图3A或3B中的320)进行通信,其可配置成包括远程桌面服务器432(例如,图3A或3B中的322)。绘图命令队列440可充当可由网络应用程序服务器420和远程桌面客户端适配器430访问的内存或存储器。网络应用程序容器420可包括用于处理来自网页浏览器的HTTP请求以及将HTTP响应发送回到客户端/网页浏览器(例如,图3A或3B中的312)的HTTP处理器422。在一个方面,HTTP处理器422是标准的HTTP处理器。绘图命令队列440可用于两个目的:保存或存储其上执行绘图命令的离屏图像,例如Java位图444;以及用作绘图坐标池442,例如,适于绘图命令的坐标队列。坐标可以是需要在客户端设备处重新绘制以反映在远程桌面上改变的远程桌面图像区域或范围的那些坐标。所述范围或区域有时被称为“脏污”区域,如图4A-4B中所示。
在一些实施例中,网络应用程序服务器可包括长轮询处理程序模块,其包括长轮询处理器424和绘图请求队列426。长轮询处理器424可由绘制请求队列426操作。绘图请求队列426可起到存储经由长轮询处理器424从客户端(例如,HTML5兼容的网页浏览器,诸如图3A或3B中的网页浏览器312)所接收到的输入长轮询绘图请求以及当存在来自绘图命令队列440的等待处理绘图命令时进行响应的功能。在一个方面,等待处理的绘图命令可包括脏污坐标池442中的图像和/或绘图命令队列440中的图像(例如,Java位图444)中的坐标。
在操作过程中,网络应用程序服务器420可接收来自用户设备(例如,图2A中的202或图3A或3B中的310)上网页浏览器的HTTP请求以及响应于来自用户设备上网页浏览器的HTTP请求。网络应用程序服务器420可将用户输入请求提供到远程桌面客户端适配器430,其提供网络应用程序服务器420和远程桌面客户端432之间的通用接口。远程桌面客户端适配器430可将用户输入信息(例如鼠标,键盘和触摸屏事件)转译成适于远程桌面客户端432的相应远程桌面输入调用命令。远程桌面客户端适配器430可将经由远程桌面显示协议和远程桌面客户端432从远程计算机(例如,图2A或图2B中的204或图3A或图3B中的320)所接收到的远程桌面图像的绘图命令(例如,GDI绘图命令)转译成Java图形绘制命令。
在接收和转译来自远程桌面客户端432的绘图命令之后,远程桌面客户端适配器430可绘制成存储于如图所示的绘图命令队列440中的离屏Java位图。更具体地,远程桌面客户端适配器430可提供为图像部分,也称为受到来自用户设备的用户输入影响的远程桌面的“脏污区域”。随同绘图命令,远程桌面客户端适配器430可从绘图命令提取来自远程桌面客户端的脏污脏区域的坐标,并将绘图坐标提供到绘图命令队列440(例如脏污坐标池442),如图所示。如下面解释的那样,坐标可放置到HTTP标头部分内(例如通过HTTP处理器422)以便将脏污区域的坐标(例如作为小型文本文件Cookie)连同图像发送到浏览器(例如图3A或图3B中的312)以便显示。
在绘图命令队列440(例如,脏污坐标池442)中存在新绘图坐标的情况下,绘图命令队列440可能会发送通知到绘图请求队列426,这样绘图请求队列426中的任何等待处理(挂起)的请求可附送到HTTP处理器422以便服务。然后HTTP处理器422可访问绘图命令队列440(例如脏污坐标池442),并从脏污坐标池442获取脏污坐标。然后HTTP处理器422将脏污坐标放置到HTTP标头部分内(已知为小型文本文件Cookie)。此外,根据这些坐标,HTTP处理器422可从Java离屏位图444获取图像部分。然后HTTP处理器422可将图像(例如,作为JPEG图像或PNG图像)以及坐标(其存储于HTTP响应的标头部分内)发送到网页浏览器(例如,图3A或图3B中的312),以便在用户设备的显示器上进行显示(例如,图3A或图3B中的313)。其结果是,编码转换服务器400A可促进用户设备(例如,图2A或图2B中的202,或图3A或图3B中的310)和远程计算机(例如,图2A或3B中的204,或图3A或图3B中的320)之间的远程桌面会话,而对于用户设备而言无需利用专有的插件或协议。
在一个方面,由编码转换服务器发送到网页浏览器的图像(或图像文件)和绘图坐标可被认为是网页浏览器图形更新的实例。在一个优选的方面,网页浏览器绘图更新与网页浏览器兼容,这样网页浏览器可识别网页浏览器绘图更新并处理它们以便在显示器上的合适位置处显示图像。可以利用其它类型的绘图数据和命令来实现网页浏览器的绘图更新。
在一个方面,在客户端设备和编码转换服务器之间的HTTP协议(其请求可由HTTP处理器和长轮询处理器来处理)为拉式协议,而在编码转换服务器和远程计算机之间使用的远程桌面显示协议是推式协议。
长轮询是传统轮询技术的改进,可允许从服务器到客户端的信息推送仿真。利用长轮询,客户端以与常规轮询类似的方式从服务器请求信息。在服务器不具有可用于客户端的任何信息的情况下,不是发送一个空的响应,而是服务器将保存该请求并等待可用的一些信息。一旦信息变得可用(或在合适的超时之后),将完整的响应发送到客户端。然后客户端就可以立即从服务器重新请求信息,从而使得服务器几乎总是具有可用的等待请求,其可以用于传送响应于事件的数据。
图4B是根据本公开某些方面的替代性编码转换服务器400B的概念性框图。编码服务器400B类似于图4A的具有类似附图标记的编码转换服务器400A,除了示出单独的图像转换或生成块428之外。块428可起到下述功能:从绘图命令队列440获取Java位图444,以及将其转换成图像文件,例如JPEG,BMP,PNG等,并将该图像文件提供到HTTP处理器422,这样HTTP处理器422可将图像文件连同相关联的坐标发送到网页浏览器(例如,图3A或图3B中的312)。另外一个区别是远程桌面客户端432示出为相对于远程桌面客户端适配器430的单独模块/功能块。
图4C是远程计算机远程桌面的图像400C的概念性框图。图像400C可包括远程计算机的整个桌面。图像可作为与远程计算机的远程桌面会话的远程桌面绘图命令的一部分而由远程桌面客户端(例如图4A或4B中的432)来提供。合适的远程桌面显示协议可用于远程桌面会话。实例可包括但不限于,Microsoft远程桌面协议(RDP),个人计算机互联网协议(PCoIP),远程FX(RFX)协议,远程框架缓冲(RFB)协议,Citrix独立计算体系结构(ICA),NX协议,和/或其它合适的远程桌面显示协议。在一个实例中,可有利地使用RDP(推式协议),因为其已被广泛使用。如图所示,图像400C可以包括相对于之前情况的桌面图像已经改变的区域,例如图像部分450和图像部分452。两个图像部分450和452连同它们的坐标可以来自相关联远程桌面客户端的绘图命令提供给相关联的远程桌面服务器(通过编码转换服务器来处理和转译然后发送到网页浏览器)以便进行远程桌面会话。备选地,图像部分450连同其坐标可以绘图命令提供,然后图像部分452连同其坐标可以单独的另一绘图命令提供(例如,按序地)。因此,当只有部分远程桌面已经改变时,那么只有该已经改变的部分可从远程桌面服务器提供到其远程桌面客户端,而不是提供远程桌面的整个图像,因此减少流量和提高效率。
图5是在结合编码转换服务器(例如,图2A或图2B中的208,图3A或图3B中的330,图4A中的400A,或图4B中的400B)和远程计算机(例如,图2A或图2B中的204,或图3A或图3B中的320)使用时的根据本公开某些方面的网页浏览器500的概念性框图和图像。在一个优选的方面,网页浏览器500可以是HTML5兼容的网页浏览器。在一个方面,网页浏览器500可以是网页浏览器312。网页浏览器500可包括脚本客户端编码520,例如,JavaScript客户端编码,以及画布(canvas)530(例如,支持2D绘图或渲染的存储器中的对象或元素)。脚本客户端编码520可指代图3A或图3B中的脚本客户端314。画布530可包括或代表浏览器(例如,312,500)的整个可视窗口(例如,图1中的130)。在一个优选的方面,画布530是HTML5兼容的画布,例如,根据HTML5要求的画布元素。合适的网页浏览器的实例可包括但不限于MozillaFirefox,GoogleChrome,Safari,和Opera。网页浏览器500可存在于合适的用户设备(诸如PC或智能手机等)上。
脚本客户端编码520可包括响应于诸如鼠标、键盘和触摸屏事件的用户输入的输入侦听器522。输入侦听器522可将HTTP请求连同用户输入发送到编码转换服务器,例如,图2A或图2B中的服务器208,或图3A或图3B中的330。该脚本客户端编码520还可包括加载图像功能或模块524,其包括图像装载处理器526,其可从HTTP标头(例如,从已知为小型文本文件Cookie的一部分)提取绘图坐标,将所接收到的图像绘制到画布530上,再次调用加载图像功能524,使其通过其独特的识别编码(ID)。位于错误处理器上的图像和/或位于中止处理器528上的图像也可包括在加载图像功能524内以便处理加载错误。处理器528可调用加载图像功能524。为了远程桌面会话,画布530可保存远程计算机远程桌面的图像,例如图1的132,而用户设备可在浏览器(例如,312,500)的可视窗口130中将图像显示在显示器(例如,图3A或图3B中的313)上。
正如前面提到的那样,HTML5兼容的浏览器可用于本公开的示例性实施例。HTML5包括(或支持)画布,其允许对2D图形和位图图像进行动态的、实时的和以脚本方式渲染。在一个方面,可以脚本方式可意味着或包括用于利用JavaScript进行标记来渲染2D图像。画布530包括以具有一定高度和宽度属性的HTML编码来限定的可绘制区域。JavaScript编码可通过类似于其它普通2DAPI的一套完整的绘图功能来访问该区域或范围,从而允许动态地生成图形。
在操作过程中,诸如在远程桌面会话期间访问远程计算机(例如,图2A或图2B中的204,或图3A或图3B中的320)时,输入侦听器522可将用户输入中继到相关的编码转换服务器(例如,图2A或图2B中的208,或图3A或图3B中的330),其通过远程桌面客户端和远程桌面客户端适配器(例如,图3A或图3B中的350,或图4A或图4B中的430)与远程计算机接口连接。该脚本客户端编码520也可发送许多绘图请求,如由加载图像(LoadImage)(1)至加载图像(4)所示那样。如前所述,绘图请求由相关的编码转换服务器作为长轮询请求来处理。
当经由远程桌面客户端从远程桌面服务器接收到绘图命令时,编码转换服务器可创建/修改远程桌面的离屏图像以及将实际图像及相关的坐标提供到浏览器500,在此处JavaScript客户端的图像装载处理器(例如528)则可按照从HTTP标头(例如小型文本文件Cookie)提取的坐标将图像532绘制到画布530上。在一个方面,图像532代表已经改变的远程桌面整个图像的一部分,因此装载处理器可基于所接收到的坐标来接收和更新画布的一部分(而不是更新整个画布)。
在一个方面,在编码转换服务器中的位图(例如,Java离屏位图444)可包括或代表远程桌面的整个图像(例如图1的132)的位图。当远程桌面图像的一个或多个部分(例如图像部分450,452)例如响应于用户输入命令或远程计算机的其它改变而改变时,所改变的图像部分及其远程桌面坐标可作为远程桌面绘图命令经由远程桌面客户端(例如,432)从远程桌面服务器(例如,322)提供到远程桌面客户端适配器(例如,430)。
在一个方面,远程桌面客户端适配器可将远程桌面绘图命令转译成图形绘制命令,基于图形绘制命令生成坐标(对应于远程桌面坐标),并将坐标提供到坐标池(例如,442)内。远程桌面客户端适配器可执行图形绘制命令以便绘制成位图,或根据由远程桌面客户机适配器所生成的坐标以另一种方式来表示以便生成位图部分,从而更新位图部分(例如444的一部分)。位图的经过更新的部分代表远程桌面的经过改变的图像部分。在一个优选的方面,位图的经过更新的部分是Java离屏位图444的一部分。
在一个方面,HTTP处理器(例如,422)可形成对应于位图已经更新部分的图像文件,获取(例如从442)适于图像文件的坐标,以及将坐标放置到HTTP标头部分内。然后HTTP处理器可将图像文件和坐标提供到网页浏览器(例如,312,500),或更具体地以单次HTTP响应提供到脚本客户端编码(例如,520)。
画布(例如,530)可存储远程桌面(例如,图1的132)的整个图像以便显示在显示器(例如,100,313)上,然后当在远程桌面会话期间远程桌面图像的一个或多个部分改变时画布530的一个或多个部分可被更新。在该实例中,当脚本客户端编码接收对应于远程桌面图像的已经改变的一个或多个部分的图像文件和坐标时,该脚本客户端编码可对应于从HTTP处理器所接收到坐标的画布坐标来更新画布的一部分,这样画布的经过更新的部分代表包含在图像文件中的图像。
因为由远程桌面客户端所提供的绘图命令可只包括相对于以前的绘图命令而已经改变或更新的远程桌面的那些图像部分或区域(具有相应的坐标),因此在示例性实施例中提供到画布(例如,530)上的图像可相应地被限制或最小化成包括远程桌面的刚好已经更新的部分。远程桌面上的更新可能是由于用户输入(例如,经由远程桌面会话)或远程计算机本身(例如来自系统时钟的新的指示时间)所造成的。因为响应于绘图请求而提供到画布上(例如,530)上的图像大小可被最小化,因此远程会话的流量可以减少或最小化,促进远程桌面会话的实时用户体验。
在一个实例中,远程桌面绘图命令可包括绘图调用命令,诸如gdi_bitmap(*数据,上,左,宽度,高度,16,32),其中“*数据”可以是位图数据位于其中的存储器位置的指示器。参数“上,左,宽度,高度”可代表适于位图数据的坐标。参数“16”可以是红-绿-蓝(RGB)中的比特数,以及参数“32”可以是α-红-绿-蓝(ARGB)中的比特数。因此,该示例性调用命令指示适于远程桌面图像一部分(例如,已经改变的部分)的位图数据所处的位置,适于位图数据的坐标以及比特数用于从RGB格式转换成ARGB格式。
在另一个实例中,图形绘制命令可包括绘图调用命令,诸如绘制矩形(颜色,上,左,宽,高)。该绘图调用命令可在由使用指定“颜色”的“上,左,宽度,高度”指定的坐标下绘制矩形。
在一个方面,当在客户端设备和使用HTTP(拉式协议)的编码转换服务器之间利用长轮询时,可将到达客户端设备的流量减少到推式协议所经历的水平。
图6示出根据本发明主题技术各个方面的远程桌面客户端适配器600的一个实例。远程桌面客户机适配器600促进远程计算机690(其可包括远程桌面服务器680)和编码转换服务器的其余组件之间的通信,所述其余组件例如网络应用程序服务器(例如,图4A或图4B中的420)和绘图命令队列(例如,图4A或图4B中的440)。在某些方面,远程桌面客户机适配器600可提供远程桌面客户端(例如,图3A或图3B中的352,图4A或图4B中的432,或图6中的640)和网络应用程序服务器(例如,图4A或图4B中的420)之间的通用接口。在某些方面,远程桌面客户端适配器600可包括绘图命令处理器630,远程桌面客户端管理器610,用户输入处理器620,和远程桌面客户端640。在某些方面,远程桌面客户端适配器并不一定包括远程桌面客户端640。相反,远程桌面客户端可以是独立于远程桌面客户端适配器(例如,如图3B中所示)的模块。
根据本发明主题技术的各个方面,适配器600可包括远程桌面客户端管理器610,其可配置成经由网络应用程序服务器(例如,图3A或图3B中的340,或图4A或图4B中的420)间接地从网页浏览器(例如,图3A或图3B中的312)接收连接请求(例如,指定特定远程计算机的HTTP请求)。在某些方面,连接请求可经由与网页浏览器通信的网络应用程序服务器从网页浏览器接收。例如,连接请求可经由网络应用程序服务器的HTTP处理器(例如,344或422)从网页浏览器接收。在某些方面,远程桌面客户管理器620可管理(或促进)响应于连接请求建立远程桌面客户端640和远程桌面服务器680之间的远程桌面会话。例如,远程桌面客户端管理器610可以管理(或促进)启动远程桌面会话,将认证、设置、首选项等转发到远程桌面服务器(例如经由远程桌面客户端),以及停止远程桌面会话。
在一个方面,远程桌面客户端管理器610可接收连接请求,例如源自于网页浏览器的请求以便建立与远程桌面服务器(例如,322或680)的连接。响应于连接请求,远程桌面客户端管理器610可产生与远程桌面客户端、远程桌面服务器和远程桌面显示协议兼容的会话控制命令,例如下述会话控制命令,其可由远程桌面客户端和远程桌面服务器理解和处理,并且可利用远程桌面显示协议由远程桌面客户端和远程桌面服务器传送和接收。这些会话控制命令可包括用于启动远程桌面会话的命令,用于停止远程桌面会话的命令。会话控制命令还可包括认证、设置、首选项等的一个或多个,以便将认证、设置、首选项等转发到远程桌面服务器(例如,322或680)。响应于HTTP连接请求,远程桌面客户端管理器610可进一步将由远程桌面客户端管理器所产生的合适会话控制命令提供到远程桌面客户端(例如,352或640)。然后远程桌面客户端利用从远程桌面客户端管理器610所接收到的会话控制命令启动与远程桌面服务器的远程桌面会话,将认证、设置、首选项等转发到远程桌面服务器,以及停止远程桌面会话。
在一个方面,远程桌面客户端管理器610可将与远程桌面客户端、远程桌面服务器、或远程桌面显示协议不兼容(例如,不能由远程桌面客户端、远程桌面服务器或远程桌面显示协议理解或处理)的连接请求转译成与远程桌面客户端、远程桌面服务器和远程桌面显示协议兼容的会话控制命令(即可由远程桌面客户端和远程桌面服务器理解和处理,以及可利用远程桌面显示协议在远程桌面客户端和远程桌面服务器之间通信)。
在某些方面,促进在远程桌面客户端和远程桌面服务器之间建立远程桌面会话包括基于初始HTTP请求生成会话控制命令。在某些方面,促进建立远程桌面会话包括将来自远程桌面客户端管理器610的会话控制命令传送到远程桌面客户端640,然后从远程桌面客户端传送到远程桌面服务器680。例如,会话控制命令可经由利用远程桌面显示协议与远程桌面服务器680通信的远程桌面客户端640传送到远程桌面服务器680。在某些方面,远程桌面显示协议包括Microsoft远程桌面协议(RDP),个人计算机互联网协议(PCoIP),远程FX(RFX)协议,远程框架缓冲(RFB)协议,Citrix独立计算体系结构(ICA),NX协议,和/或其它合适的远程桌面显示协议的至少一个。在某些方面,RFB协议包括虚拟网络计算(VNC)。
根据本发明主题技术的某些方面,服务器诸如服务器208,330,400A,400B(例如,经由远程桌面客户端管理器610)在任何时候可保持其远程桌面客户端和一个或多个远程桌面服务器之间的开放连接,允许单个或多个客户端设备交互地连接到远程桌面会话以及瞬间断开到远程桌面会话的连接。在某些方面,远程桌面会话可从不需要从一个或多个远程桌面服务器断开连接,因为服务器可保持到一个或多个桌面服务器的活动连接。当然,远程计算机(例如690)由于不受相关编码转换服务器的控制的原因可停机;但是,只要远程计算机可用于远程访问就可保持连接。例如,远程桌面客户端管理器610可继续保持远程桌面会话,直至远程桌面服务器取决于远程桌面服务器的停用远程连接设置而从远程桌面会话断开连接。在某些方面,利用远程桌面客户端管理器610的远程桌面会话可以重新调整大小,并可进行调整以便于获取最佳的显示效果和用户体验,从而充分利用用户访问设备的能力。
根据本发明主题技术的各个方面,用户输入处理器620可从诸如服务器208,330,400A,400B的网页浏览器(例如,经由HTTP处理器344或422)间接地接收输入请求,以及将输入请求转换成可由远程桌面客户端640和远程桌面服务器680识别或与其兼容的格式。例如,用户输入处理器620接收利用请求-响应协议从网页浏览器传送的输入请求。在一个优选方面,请求-响应协议可能包括超文本传输协议(HTTP)。在另一个方面,请求-响应协议可以包括其它合适的请求-响应协议。在某些方面,输入请求可经由与网页浏览器通信的网络应用程序服务器(例如,340、420)从网页浏览器(例如,图3A或图3B中的312)接收。例如,输入请求经由网络应用程序服务器的HTTP处理器(例如,344或422)来接收。在某些方面,输入请求包括鼠标事件、键盘事件、触摸屏事件中的至少一个。用户输入处理器620可将为适于请求-响应协议或与其兼容的输入请求转译成适于远程桌面显示协议或与其兼容的输入命令(例如远程桌面显示协议输入命令)。用户输入处理器620可将输入命令传送到远程桌面客户端640,其可将输入命令传送到远程桌面服务器680。例如,用户输入处理器620可经由利用远程桌面显示协议与远程桌面服务器680通信的远程桌面客户端640促使将输入命令传送到远程桌面服务器680。在一个方面,输入请求有时被称为作为用户输入命令,反之亦然。然而,请注意,如果输入请求被称为其经由HTTP接收时的输入命令,则其是HTTP请求而不是命令。在一个方面,输入命令有时也被称为输入调用命令或远程桌面输入命令,反之亦然。
远程计算机690(例如,其远程桌面服务器680)可基于输入命令执行一个或多个操作,并将作为执行一个或多个操作结果的绘图数据发送到服务器,诸如编码转换服务器208,330,400A或400B(例如,服务器的远程桌面客户端620)。根据各个方面,远程桌面客户端640可响应于传送到远程计算机690(例如,其远程桌面服务器680)的输入命令利用远程桌面显示协议接收从远程计算机690(例如,远程桌面服务器680)传送的屏幕绘图命令。在一个方面,从远程计算机所接收到的屏幕绘图命令有时可被称为绘图命令,远程计算机绘图命令,或从远程计算机所接收到的远程桌面绘图命令,反之亦然。然后绘图命令处理器630可从连接到远程计算机690的远程桌面客户端640接收屏幕绘图命令。例如,绘图命令处理器630可利用远程桌面显示协议经由与远程计算机690(例如,其远程桌面服务器680)通信的远程桌面客户端640从远程计算机690(例如,其远程桌面服务器680)接收屏幕绘图命令。
根据某些方面,绘图命令处理器630可将屏幕绘图命令转换成可由网页浏览器(例如,图3A或图3B中的312)识别或与其兼容的格式。例如,绘图命令处理器630可将适于远程桌面客户端、远程桌面服务器和远程桌面显示协议或与其兼容的屏幕绘图命令转译成与服务器208,330,400A或400B兼容的图形绘制命令,诸如当服务器是Java编码转换服务器时转换成Java图形(抽象窗口工具包)API命令。在某些方面,转译屏幕绘图命令可包括计算新的绘图命令的参数和/或调整所接收到的绘图命令参数,和/或对所接收到的位图数据进行调整,诸如但不限于将16位的红-绿-蓝(RGB)5-6-5的颜色格式转换成32位的α-红-绿-蓝(ARGB)8-8-8-8的格式。在某些方面,绘图命令处理器630可执行图形绘制命令(例如Java图形API命令)以便绘制成已经在所述编码转换服务器(例如,图3A或图3B中的330,图4A中的400A或图4B中的400B)处创建的绘图命令队列(例如,图3A或图3B中的360或图4A或图4B中的440)的位图图像(例如,离屏的Java位图444)。在一个方面,Java图形API命令有时被称为Java图形命令或Java图形绘制命令。在一个方面,离屏位图可在存储或内存位置,其是可由应用程序服务器(例如,340或420)访问的绘图命令队列(例如,360或440)一部分。在一个方面,离屏位图的大小可代表远程会话的大小。以另一种方式表示的话,离屏位图的大小可代表远程桌面的大小,或离屏位图可为远程桌面整个图像的位图表示。
为了客户端设备和远程计算机之间的远程会话,本公开的优选实施例实质上将HTTP请求转译成远程桌面显示协议命令,反之亦然(例如,将请求或经由HTTP传送/接收的响应转译成经由远程桌面显示协议传送/接收的命令,反之亦然)。例如,来自网页浏览器诸如服务器208,330,400A,400B的输入请求可转译成适于远程桌面显示协议或与其兼容的输入命令(例如远程桌面输入命令),且经由远程桌面客户端640由远程桌面服务器680接收。利用远程桌面显示协议从远程计算机690传送(例如响应于输入命令)的屏幕绘图命令可转译成与服务器208,330,400A,400B兼容的图形绘制命令,诸如Java图形(抽象窗口工具包)API命令。在某些方面,HTTP是拉式协议,而远程桌面显示协议可以是推式协议。在某些方面,为推式协议的绘图命令可在远程客户端设备和远程计算机之间的远程会话期间转译成为拉式协议的绘图更新(或绘图响应)。
继续参照图6,当绘制成离屏位图时,绘图命令处理器630可将像素数据传送到离屏位图。在某些方面,像素数据用于更新离屏位图的一部分(例如,离屏Java位图)。在某些方面,绘图命令处理器630可将像素数据发送到离屏位图,这样离屏位图的经过更新部分可存储和/或转换成图像文件。
根据某些方面,绘图命令处理器630可生成对应于离屏位图的经过更新部分的一个或多个坐标(例如,当执行图形绘制命令时将图像绘制成离屏位图)。例如,所述一个或多个坐标可以确定对应的图像位图将在网页浏览器的画布上执行的位置。在一个实施例中,所述一个或多个坐标可从图形绘制命令提取或复制。绘图命令处理器630还可将一个或多个坐标发送到图4A或图4B中的脏污坐标池442,其是绘图命令队列(例如,360或440)的一部分。在某些方面,绘图命令处理器630可将一个或多个坐标发送当肮污坐标池,使得所述一个或多个坐标可存储于脏污坐标池内。因此,绘图命令处理器630可在绘图命令队列中更新“脏污”区域的坐标。在某些方面,绘图命令处理器630可将通知信号发送到网络应用程序服务器(例如,420)的绘图请求队列(例如,图4A或图4B中的426)。在某些方面,通知信号/信息可指示该图像位图(例如,离屏的Java位图)已被更新。
图7是根据本公开某些方面的在结合网页浏览器(例如,312)和远程计算机(例如,204,320或690)使用时的在编码转换服务器(例如,208,330,400A,400B)、网页浏览器和远程计算机之间交互的时序图700。时序显示为701-724。如在701处所示,网页浏览器可将初始HTTP请求发送到编码转换服务器(例如,图4的编码转换服务器400A),例如,发送到其HTTP处理器(例如,422)。初始HTTP请求可包括指定所需远程计算机的URL。在702和703处,编码转换服务器可促进建立远程桌面与远程计算机(例如,其远程桌面服务器)的连接。在704处,编码转换服务器也可将客户端编码(例如,JavaScript客户端编码)提供到网页浏览器。网页浏览器中的JavaScript客户端编码会产生许多绘图请求,其可作为长轮询请求由编码转换服务器进行处理。在示例性实施例中,在任意一个时刻可有四个绘图请求等待处理,但是绘图请求的数目可根据需要来选择且针对不同的实施方式来进行优化。
如在图的下方所示,例如在719和722处,网页浏览器可将用户输入请求(HTTP请求)提供到编码转换服务器,而在721和724处,所述编码转换服务器可依次将用户输入命令提供到远程计算机,例如以便控制远程计算机的远程桌面。在705处,远程计算机可通过远程桌面客户机适配器(例如,350,430或600)将绘图命令(示出一个命令)提供到编码转换服务器中的绘图命令队列(例如,360或440),其将远程桌面的相应图像绘制成绘图命令队列中的离屏位图。响应于绘图命令,在706处,绘图命令队列可将通知提供到编码转换服务器的长轮询处理程序模块(例如,342)中的绘图请求队列(例如,426)。作为响应,第一等待处理的绘图请求可从绘图请求队列提取,并提供给HTTP处理器。作为响应,在707和708处,HTTP处理器可从绘图命令队列获取图像。在709处,HTTP处理器响应于被发送到网页浏览器的脚本客户端(例如,314或520,或者更具体地526)而提供图像和相应的坐标。然后脚本客户端在711处利用从小型文本文件Cookie提取的相应坐标将图像(例如,532)绘制到画布(例如,316或530)上,以便在网页浏览器中显示远程桌面。
在一个方面,HTTP处理器(例如,422)是标准的HTTP处理器,其特征在于当它从网页浏览器接收到请求时,它作出响应而不等待或存储请求。例如,当HTTP处理器在719或722处从网页浏览器接收作为HTTP请求的用户输入请求时,HTTP处理器分别在720和723处立即做出为零响应的响应(而请求经由远程桌面客户端适配器被发送到远程计算机)。在一个方面,长轮询处理器(例如,424)可用于接收请求且基于事件作出响应,以及可存储长轮询请求。例如,在一种情况(例如绘图命令正在等待处理)下,则对该请求立即作出反应,例如,轮询处理器将绘图请求发送到HTTP处理器,使得HTTP处理器可立即发送绘图请求的响应。在另一种情况(例如绘图命令没有等待处理)下,则请求会被存储起来(例如,存储到绘图请求队列中),直到满足条件(例如新的绘图命令已到达绘图命令队列处)。
在一个方面,远程桌面是远程计算机的桌面。在一个方面,在与远程计算机的远程桌面会话期间,客户端设备的网页浏览器可访问、控制和/或查看存在于远程计算机上的任何或所有应用程序和文件。在另一个方面,在与远程计算机的远程桌面会话区间,取决于用户的认证和设置,可允许网页浏览器访问、控制和/或查看存在于远程计算机上的一些应用程序和文件。
在一个优选的方面,客户端设备、编码转换服务器以及远程计算机的每一个是远离彼此的独立和不同的机器。在一方面,编码转换服务器可为与一个或多个客户端设备和一个或多个远程计算机通信的机器,以及编码转换服务器可为能够通过网络通信的机器。在一方面,网页浏览器可为允许用户通过网络检索、呈现或信息通信的应用程序。
图8是示出适用于本公开实施例的计算系统800的一个实例的概念性框图。系统800例如可以是客户端设备(例如,202或310),服务器(例如,208,330,400A,400B)或远程计算机(例如,204,320或690)。系统800可包括处理系统802。处理系统802通过总线804或其它结构或装置能够与接收器806和发射器808通信。但是应当理解,除了总线以外的通信装置可用于所公开的配置。处理系统802可以生成音频,视频,多媒体,和/或其它类型的数据,以便提供给发射器809以便于进行通信。此外,音频,视频,多媒体,和/或其它类型的数据可以在接收器806处接收,且由处理系统802进行处理。
处理系统802可包括用于执行指令的通用目的处理器或特定目的处理器,并且可进一步包括计算机可读介质819,诸如易失性或非易失性存储器,用于存储适于软件程序的数据和/或指令。可存储于计算机可读介质810和/或819中的指令可由处理系统802来执行以便控制和管理到各种网络的访问,以及提供其它通信和处理功能。该指令还可包括由处理系统802执行的适于各种用户界面设备(诸如显示器812和小键盘814)的指令。处理系统802可包括输入端口822和输出端口824。输入端口822和输出端口824的每一个可包括一个或多个端口。输入端口822和输出端口824可以是相同的端口(例如,双向端口),或者可以是不同的端口。
处理系统802可使用软件,硬件,或两者的组合来实现。通过实例的方式,处理系统802可用一个或多个处理器来实现。处理器可以是通用目的微处理器,微控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA),可编程逻辑器件(PLD),控制器,状态机,门控逻辑,离散硬件组件,和/或任何其它可以执行计算或其它信息操作的合适装置。
机器可读的介质可以是一种或多种机器可读的介质。软件应广义地解释为意味着指令、数据、或它们的任意组合,不管其是否被称为软件,固件,中间件,微代码,硬件描述语言或其它的形式。指令可以包括编码(例如,为源编码的格式,二进制编码的格式,可执行编码的格式,或任何其它合适的编码格式)。
机器可读介质(例如,819)可包括集成到处理系统中的存储器,诸如可以是具有专用集成电路(ASIC)的情况。机器可读介质(例如,810)还可以包括处理系统外部的存储器,例如随机存取存储器(RAM),闪速存储器,只读存储器(ROM),可编程只读存储器(PROM),可擦除PROM(EPROM),寄存器,硬盘,可移动盘,CD-ROM,DVD,或任何其它合适的存储装置。此外,机器可读介质可包括传输线或编码数据信号的载波。本领域内的那些技术人员将认识到针对处理系统802如何最好地实现所描述功能。根据本公开的一方面,机器可读介质是编码或存储有指令的一种计算机可读介质,以及其是一个计算元件,该元件限定指令和其余系统之间的结构和功能的相互关系,其允许指令的功能得以实现。在一个方面,机器可读介质是非瞬时性的机器可读介质,机器可读的存储介质,或非瞬时性的机器可读存储介质。在一个方面,计算机可读介质是非瞬时性计算机可读介质,计算机可读存储介质,或非瞬时性计算机可读存储介质。指令例如可由客户端设备、服务器、远程计算机来执行,或由客户端设备、服务器、或远程计算机的处理系统来执行。指令例如可以是包括编码的计算机程序。
接口816可以是任何类型的接口,并可以存在于图8中所示的组件之间。接口816例如也可以是到外界的接口(例如,因特网网络接口)。收发器模块807可代表一个或多个收发器,以及每个收发器806可包括接收器和发送器809。在处理系统802中实现的功能可在接收器806的一部分、发射器809的一部分、机器可读介质810的一部分、显示器812的一部分、小键盘814的一部分、或接口816的一部分中实现,反之亦然。
图9A示出代表根据本公开某些方面的经由编码转换服务器(例如,208,330,400A或400B)从网页浏览器(例如,312或500)访问和控制远程桌面的方法900的框图。图9B示出了方法900的延续。对于方法900而言,如在902所述的那样,提供具有2D渲染功能的网页浏览器,例如HTML5兼容的网页浏览器。如在906处所述的那样,输入请求可在编码转换服务器处接收以便用于控制远程桌面。如在908处所述的那样,输入请求可从网页浏览器的协议(例如优选的HTTP)转译成与远程桌面相关联的远程桌面服务器的协议。然后如在910处所述的那样,可将输入命令提供到远程计算机(其可包括远程桌面服务器)。
参照图9B以及继续描述方法900,例如,脏污区域的绘图命令和坐标可由编码转换服务器从远程桌面服务器接收,如在912处所述的那样。作为响应,绘图命令和坐标可从远程桌面服务器的协议转译成网页浏览器的协议,如在914处所述的那样。如在916处所述的那样,编码转换服务器可以通过绘制或生成远程桌面的图像作出反应。如在918处所述的那样,图像和对应的坐标可连接或组合。来自网页浏览器的绘图请求可通过将图像和坐标发送到网页浏览器(如在922处所述的那样)以便显示作出响应(如在920处所述的那样)。因此,方法900可经由HTTP用于控制和访问远程桌面会话,且这种控制可以实时进行。
经由编码转换服务器(例如,208,330,400A或400B)从网页浏览器(例如,312或500)来访问和控制远程计算机(例如,204,320或690)的远程桌面的方法的示例性实施例可包括以下三个步骤:在会话开始时可以进行一次第一步骤;而第二步骤和第三步骤可在远程桌面会话期间继续互换。
第一步骤可包括由网页浏览器启动初始HTTP请求(例如,连接到远程计算机的连接请求)。例如,初始HTTP请求由网页浏览器(优选HTML5兼容的浏览器)发送。网页浏览器接收回应,其可包含一个脚本客户端,诸如314或500,例如JavaScriptAjax客户端编码。编码转换服务器(例如,Java编码转换服务器)可经由远程桌面客户端利用连接请求建立到远程计算机的连接。在Java编码转换服务器上或由其使用的远程桌面客户端可利用远程桌面显示协议建立到远程计算机的连接。编码转换服务器可充当HTTP协议和远程桌面显示协议之间的接口。在一个方面,网页浏览器和编码转换服务器之间没有连接,因为HTTP是一种无连接的协议。相反,可在HTTP协议中只有单独的请求和响应。
第二步骤是在网页浏览器处的远程会话绘图:在浏览器的一侧上,客户端的JavaScript编码可以不断地重新发送多个例如四个异步(Ajax)HTTP请求,以便找出是否存在需要(重新)绘制的远程计算机远程桌面任何“脏污”区域。在Java编码转换服务器上,这些绘图请求作为长轮询请求来处理,这意味着仅当存在要绘制的数据时它们才将作出响应,否则它们在绘图请求队列中挂起(例如,426)。此外,在Java编码转换服务器上,远程会话在编码转换服务器的绘图命令队列中被绘制成离屏的Java位图。此外,绘图指令的坐标也追加或添加到绘图命令队列中。该最后的部分还发送通知到编码转换服务器的绘图请求队列,这样可服务于来自绘图请求队列的第一个等待请求。在HTTP对浏览器作出响应的过程中,发送“脏污”的绘制图像以及存储于HTTP标头的部分(已知为小型文本文件cookie)之一内的绘图坐标。在浏览器一侧上,脚本客户端接收“脏污”图像和坐标,以及脚本客户端利用来自小型文本文件cookie的坐标将图像绘制成HTML画布(例如,530)。这允许经由Java编码转换服务器将来自远程计算机的远程会话(例如,远程计算机远程桌面的图像)拖动到客户端的HTML5浏览器。
第三步骤涉及到用户输入,诸如鼠标点击,按键或触摸屏事件。在浏览器一侧上,脚本客户端例如检测到鼠标事件,以及发送HTTP请求到编码转换服务器,通过沿着事件的X和Y坐标。Java编码转换服务器接收请求,发送空答复(例如参见图7中的720和723)以便关闭HTTP请求,然后经由远程桌面客户端适配器将该请求转发到远程桌面客户端,该请求是经由其到远程计算机的协议发送的。这些用户输入请求可以一种标准的方式处理,即不是长轮询事件,以便接收和处理用户输入。然后用户输入可被发送到远程计算机。
在一个优选的方面,脚本客户端没有安装到客户端设备上。换言之,在上述第一步骤之前(例如,在网页浏览器连接到远程计算机之前,或者发送请求以便连接到远程计算机之前,以及编码转换服务器启动与远程计算机的远程会话之前),脚本客户端不存在于(没有预先安装到)网页浏览器或客户端设备上。在一个优选的方面,客户端设备只需网页浏览器来启动访问和控制远程计算机的远程桌面,或启动与远程计算机的远程桌面会话。因此,客户端设备不需要适于远程桌面显示协议的软件或浏览器插件。一旦网页浏览器请求连接到远程计算机以便远程桌面会话,编码转换服务器经由HTTP将脚本客户端实时地提供到网页浏览器。此时通过编码转换服务器建立到远程计算机的网页浏览器连接,当远程桌面会话被终止或在浏览器关闭时,脚本客户端从客户端设备和网页浏览器删除。
下面示出用于在客户端设备处利用编码转换服务器经由超文本传输协议(HTTP)通过网页浏览器促进实时访问和控制远程计算机远程桌面的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。下面的第1条例如参照本公开的附图例如图10A-10C等呈现。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、11、和22条。其它条款可以类似的方式来呈现。
1.在客户端设备(例如参见图3A中的310)处利用编码转换服务器(例如参见图3A中的330)经由超文本传输协议(HTTP)通过网页浏览器(例如参见图5中的500)促进实时访问和控制远程计算机(例如,参见图3A中的320)远程桌面的方法(例如见参见图10A的方法1000-A),所述方法包括:
在编码转换服务器处接收基于远程计算机远程桌面图像的远程桌面绘图命令,其中远程桌面绘图命令与由远程计算机利用的远程桌面显示协议兼容(例如,参见图10A中的第1002-A项);
在编码转换服务器处将远程桌面绘图命令转译成与网页浏览器兼容的网页浏览器绘图更新(例如参见图10A中的第1004-A项);以及
在客户端设备和远程计算机之间的远程桌面会话期间促进将网页浏览器绘图更新利用HTTP从编码转换服务器提供到客户端设备的网页浏览器(例如,参见图10A中的第1006-A项);
其中远程桌面显示协议是推式协议(例如,参见图10A中的第1008-A项);
其中HTTP是拉式协议(例如,参见图10A中的第1010-A项)。
2.根据第1条所述的方法,其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标。
3.根据第1条所述的方法,其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
利用Java图形绘制命令更新Java位图的一部分,其中所述Java位图的经过更新的部分代表远程桌面整个图像的一部分;
从Java位图创建图像文件;以及
生成适于图像文件的绘图坐标;
其中网页浏览器的绘图更新包括图像文件和适于图像文件的绘图坐标;
其中促进提供包括将绘图坐标放置到HTTP标头内;
其中利用HTTP包括利用HTTP处理器;
其中所述编码转换服务器是Java编码转换服务器,其配置成提供用于托管一个或多个网络应用程序的应用程序框架。
4.根据第1条所述的方法,其中所述转译包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令,其中图形绘制命令包括坐标;
从图形绘制命令提取坐标;
基于图形绘制命令更新离屏位图的至少一部分,其中所述离屏位图的至少一部分与坐标相关联;
其中离屏位图基于远程桌面的图像;
基于离屏位图的至少一部分创建图像文件;以及
其中网页浏览器的绘图更新包括图像文件和坐标。
5.根据第1条所述的方法,其中网页浏览器是HTML5兼容的网页浏览器。
6.根据第1条所述的方法,进一步包括:
利用HTTP从网页浏览器接收用户输入请求;
将用户输入请求转译成与远程桌面显示协议兼容的输入命令;
将输入命令提供到远程桌面客户端以便在远程桌面会话期间用于访问和控制远程计算机的远程桌面;
其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标;
其中所述图像文件和绘图坐标表示远程桌面整个图像的一部分已经响应于输入命令而改变。
7.根据第6条所述的方法,其中所述用户输入请求包括鼠标事件、键盘事件、以及触摸屏事件中的至少一个。
8.根据第1条所述的方法,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中所述转译包括下述的一个或多个:
基于远程桌面的绘图命令参数来计算新的绘图命令参数;
调整远程桌面绘图命令的参数;以及
对位图数据进行调整。
9.根据第1条所述的方法,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中所述转译包括对位图数据进行调整;
其中进行的调整包括将16位的红-绿-蓝(RGB)5-6-5的色彩格式转换成32位的α-红-绿-蓝(ARGB)8-8-8-8的格式。
10.根据第1条所述的方法,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
11.一种机器可读存储介质(例如参见图10B中的机器可读存储介质1000-B),其编码有指令,所述指令可由处理系统执行以便执行在客户端设备(例如参见图3A中的310)处利用编码转换服务器(例如参见图3A中的330)经由超文本传输协议(HTTP)通过网页浏览器(例如参见图5中的500)促进实时访问和控制远程计算机(例如,参见图3A中的320)远程桌面的方法,所述指令包括适于下述的编码:
在编码转换服务器处接收基于远程计算机远程桌面图像的远程桌面绘图命令,其中远程桌面绘图命令与由远程计算机利用的远程桌面显示协议兼容(例如,参见图10B中的第1002-B项);
在编码转换服务器处将远程桌面绘图命令转译成与网页浏览器兼容的网页浏览器绘图更新(例如参见图10B中的第1004-B项);以及
在客户端设备和远程计算机之间的远程桌面会话期间促进将网页浏览器绘图更新利用HTTP从编码转换服务器提供到客户端设备的网页浏览器(例如,参见图10B中的第1006-B项);
其中远程桌面显示协议是推式协议(例如,参见图10B中的第1008-B项);
其中HTTP是拉式协议(例如,参见图10B中的第1010-B项)。
12.根据第11条所述的机器可读存储介质,其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标。
13.根据第11条所述的机器可读存储介质,其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
利用Java图形绘制命令更新Java位图的一部分,其中所述Java位图的经过更新的部分代表远程桌面整个图像的一部分;
从Java位图创建图像文件;以及
生成适于图像文件的绘图坐标;
其中网页浏览器的绘图更新包括图像文件和适于图像文件的绘图坐标;
其中促进提供包括将绘图坐标放置到HTTP标头内;
其中利用HTTP包括利用HTTP处理器;
其中所述编码转换服务器是Java编码转换服务器,其配置成提供用于托管一个或多个网络应用程序的应用程序框架。
14.根据第11条所述的机器可读存储介质,其中所述转译包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令,其中图形绘制命令包括坐标;
从图形绘制命令提取坐标;
基于图形绘制命令更新离屏位图的至少一部分,其中所述离屏位图的至少一部分与坐标相关联;
其中离屏位图基于远程桌面的图像;
基于离屏位图的至少一部分创建图像文件;以及
其中网页浏览器的绘图更新包括图像文件和坐标。
15.根据第11条所述的机器可读存储介质,其中网页浏览器是HTML5兼容的网页浏览器。
16.根据第11条所述的机器可读存储介质,其中所述指令进一步包括适于下述的编码:
利用HTTP从网页浏览器接收用户输入请求;
将用户输入请求转译成与远程桌面显示协议兼容的输入命令;以及
将输入命令提供到远程桌面客户端以便在远程桌面会话期间用于访问和控制远程计算机的远程桌面;
其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标;以及
其中所述图像文件和绘图坐标表示远程桌面整个图像的一部分已经响应于输入命令而改变。
17.根据第16条所述的机器可读存储介质,其中所述用户输入请求包括鼠标事件、键盘事件、以及触摸屏事件中的至少一个。
18.根据第11条所述的机器可读存储介质,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中所述转译包括下述的一个或多个:
基于远程桌面的绘图命令参数来计算新的绘图命令参数;
调整远程桌面绘图命令的参数;以及
对位图数据进行调整。
19.根据第11条所述的机器可读存储介质,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中所述转译包括对位图数据进行调整;
其中进行的调整包括将16位的红-绿-蓝(RGB)5-6-5的色彩格式转换成32位的α-红-绿-蓝(ARGB)8-8-8-8的格式。
20.根据第11条所述的机器可读存储介质,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
21.包括第11条所述的机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
22.用于在客户端设备(例如参见图3A中的310)处利用编码转换服务器(例如参见图3A中的330)经由超文本传输协议(HTTP)通过网页浏览器(例如参见图5中的500)促进实时访问和控制远程计算机(例如,参见图3A中的320)远程桌面的设备,所述设备包括:
用于接收基于远程计算机远程桌面图像的远程桌面绘图命令的装置,其中远程桌面绘图命令与由远程计算机利用的远程桌面显示协议兼容(例如,参见图10C中的第1002-C项);
用于将远程桌面绘图命令转译成与网页浏览器兼容的网页浏览器绘图更新的装置(例如参见图10C中的第1004-C项);以及
用于在客户端设备和远程计算机之间的远程桌面会话期间促进将网页浏览器绘图更新利用HTTP从编码转换服务器提供到客户端设备的网页浏览器的装置(例如,参见图10C中的第1006-C项);
其中远程桌面显示协议是推式协议(例如,参见图10C中的第1008-C项);以及
其中HTTP是拉式协议(例如,参见图10C中的第1010-C项)。
23.根据第22条所述的设备,其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标。
24.根据第22条所述的设备,其中用于所述转译的装置包括:
用于将远程桌面绘图命令转译成Java图形绘制命令的装置;
用于利用Java图形绘制命令更新Java位图的一部分的装置,其中所述Java位图的经过更新的部分代表远程桌面整个图像的一部分;
用于从Java位图创建图像文件的装置;以及
用于生成适于图像文件的绘图坐标的装置;
其中网页浏览器的绘图更新包括图像文件和适于图像文件的绘图坐标;
其中用于促进提供的装置包括用于将绘图坐标放置到HTTP标头内的装置;
其中利用HTTP包括利用HTTP处理器;以及
其中所述编码转换服务器是Java编码转换服务器,其配置成提供用于托管一个或多个网络应用程序的应用程序框架。
25.根据第22条所述的设备,其中用于所述转译的装置包括:
用于将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令的装置,其中图形绘制命令包括坐标;
用于从图形绘制命令提取坐标的装置;
用于基于图形绘制命令更新离屏位图的至少一部分的装置,其中所述离屏位图的至少一部分与坐标相关联,其中离屏位图基于远程桌面的图像;以及
用于基于离屏位图的至少一部分创建图像文件的装置;以及
其中网页浏览器的绘图更新包括图像文件和坐标。
26.根据第22条所述的设备,其中网页浏览器是HTML5兼容的网页浏览器。
27.根据第22条所述的设备,进一步包括:
用于利用HTTP从网页浏览器接收用户输入请求的装置;
用于将用户输入请求转译成与远程桌面显示协议兼容的输入命令的装置;以及
用于将输入命令提供到远程桌面客户端以便在远程桌面会话期间用于访问和控制远程计算机的远程桌面的装置;
其中网页浏览器的绘图更新包括可由网页浏览器识别和处理的图像文件和适于图像文件的绘图坐标;以及
其中所述图像文件和绘图坐标表示远程桌面整个图像的一部分已经响应于输入命令而改变。
28.根据第27条所述的设备,其中所述用户输入请求包括鼠标事件、键盘事件、以及触摸屏事件中的至少一个。
29.根据第22条所述的设备,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中用于所述转译的装置包括下述的一个或多个:
用于基于远程桌面的绘图命令参数来计算新的绘图命令参数的装置;
用于调整远程桌面绘图命令的参数的装置;以及
对位图数据进行调整的装置。
30.根据第22条所述的设备,其中远程桌面绘图命令包括从远程计算机的远程桌面服务器所接收到的远程桌面绘图命令参数和位图数据;
其中用于所述转译的装置包括对远程计算机位图数据进行调整的装置;
其中用于进行调整的装置包括用于将16位的红-绿-蓝(RGB)5-6-5的色彩格式转换成32位的α-红-绿-蓝(ARGB)8-8-8-8的格式的装置。
31.根据第22条所述的设备,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
32.根据第22条所述的设备,其中所述设备包括编码装换服务器。
33.根据第22条所述的设备,其中所述设备包括处理系统和存储器。
下面示出用于经由编码转换服务器和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。下面的第1条例如参照附图11A-11C呈现。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、11、和22条。其它条款可以类似的方式来呈现。
1.经由编码转换服务器(例如参见330)和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如,参见320)之间进行远程桌面会话的方法(例如见参见图11A的方法1100-A),所述方法包括:
在编码转换服务器处从客户端设备处的网页浏览器接收用户输入请求以便访问和控制远程计算机,其中网页浏览器支持二维画布和动态绘图(例如,参见图11A中的第1102-A项);
在编码转换服务器处将用户输入请求转译成与远程桌面显示协议兼容的输入命令,以便由编码转换服务器用来促进与远程计算机的通信(例如参见图11A中的第1104-A项);
在编码转换服务器处响应于输入命令从远程计算机接收远程桌面绘图命令(例如参见图11A中的第1106-A项);
在编码转换服务器处将远程桌面绘图命令转译成与超文本标记语言兼容的绘图更新(例如参见图11A中的第1108-A项);以及
促进将绘图更新从编码转换服务器提供到网页浏览器(例如参见图11A中的第1110-A项);
其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
2.根据第1条所述的方法,其中转译远程桌面绘图命令包括:
将远程桌面绘图命令转译成Java图形绘制命令;
执行Java图形绘制命令来更新Java位图的一部分,其中Java位图代表远程计算机远程桌面的整个图像;
基于Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图的经过更新的部分形成图像文件,其中所述图像文件与HTML5兼容;以及
基于适于Java位图的经过更新的部分的坐标获取适于图像文件的绘图坐标,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中绘图的更新代表远程桌面整个图像的一部分;
其中在远程桌面会话期间网页浏览器瞬时包括JavaScript客户端编码,同时远程桌面会话继续;
其中所述方法进一步包括在编码转换服务器处从网页浏览器的JavaScript客户端编码接收绘图请求;
其中促进提供绘图更新包括响应于来自网页浏览器的JavaScript客户端编码的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器的JavaScript客户端编码。
3.根据第1条所述的方法,其中转译远程桌面绘图命令包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令;
基于图形绘制命令来更新Java位图的一部分,其中Java位图的经过更新的一部分代表远程计算机远程桌面整个图像的相对于前一图形绘制命令已经改变的一部分;
生成适于Java位图的经过更新部分的坐标;
基于位图的经过更新的部分形成图像文件,其中所述图像文件与HTML5兼容;以及
获取适于图像文件的绘图坐标,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中所述方法进一步包括在编码转换服务器处从网页浏览器接收绘图请求;
其中促进提供绘图更新包括响应于来自网页浏览器的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器。
4.根据第1条所述的方法,其中所述编码转换服务器包括远程桌面客户端适配器,其配置成将用户输入请求转译成与远程桌面显示协议兼容的输入命令,并将远程桌面绘图命令转译成图形绘制命令。
5.根据第1条所述的方法,还包括从网页浏览器接收长轮询HTTP请求,其中长轮询HTTP请求包括绘图请求。
6.根据第1条所述的方法,还包括从网页浏览器接收包括远程计算机的统一资源定位符(URL)的初始HTTP请求。
7.根据第6条所述的方法,还包括响应于适于远程计算机URL的初始HTTP请求促进将脚本客户端编码提供到网页浏览器,其中所述脚本客户端编码与HTML5兼容。
8.根据第1条所述的方法,其中所述远程桌面绘图命令与远程桌面显示协议是兼容的,其中所述远程桌面显示协议为推式协议,以及其中促进提供绘图更新包括利用为拉式协议的HTTP促进提供绘图更新。
9.根据第1条所述的方法,其中动态绘图包括响应于网页浏览器脚本客户端的一个或多个绘图请求实时地绘制2D画布的一部分,而不是绘制整个2D画布。
10.根据第1条所述的方法,其中所述2D画布在同一时间根据一组坐标来进行部分更新。
11.一种机器可读存储介质(例如参见图8中的810,819),其编码有指令,所述指令可由处理系统(例如参见802)来执行,以便执行经由编码转换服务器(例如参见330)和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如,参见320)之间进行远程桌面会话的方法,所述指令包括适于下述的编码:
在编码转换服务器处从客户端设备处的网页浏览器接收用户输入请求以便访问和控制远程计算机,其中网页浏览器支持二维画布和动态绘图(例如,参见图11B中的第1102-B项);
在编码转换服务器处将用户输入请求转译成与远程桌面显示协议兼容的输入命令,以便由编码转换服务器用来促进与远程计算机的通信(例如参见图11B中的第1104-B项);
在编码转换服务器处响应于输入命令从远程计算机接收远程桌面绘图命令(例如参见图11B中的第1106-B项);
在编码转换服务器处将远程桌面绘图命令转译成与超文本标记语言兼容的绘图更新(例如参见图11B中的第1108-B项);以及
促进将绘图更新从编码转换服务器提供到网页浏览器(例如参见图11B中的第1110-B项);
其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
12.根据第11条所述的机器可读存储介质,其中转译远程桌面绘图命令包括:
将远程桌面绘图命令转译成Java图形绘制命令;
执行Java图形绘制命令来更新Java位图的一部分,其中Java位图代表远程计算机远程桌面的整个图像;
基于Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图的经过更新的部分形成图像文件,其中所述图像文件与HTML5兼容;以及
基于适于Java位图的经过更新的部分的坐标获取适于图像文件的绘图坐标,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中绘图的更新代表远程桌面整个图像的一部分;
其中在远程桌面会话期间网页浏览器瞬时包括JavaScript客户端编码,同时远程桌面会话继续;
其中所述方法进一步包括在编码转换服务器处从网页浏览器的JavaScript客户端编码接收绘图请求;
其中促进提供绘图更新包括响应于来自网页浏览器的JavaScript客户端编码的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器的JavaScript客户端编码。
13.根据第11条所述的机器可读存储介质,其中转译远程桌面绘图命令包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令;
基于图形绘制命令来更新Java位图的一部分,其中Java位图的经过更新的一部分代表远程计算机远程桌面整个图像的相对于前一图形绘制命令已经改变的一部分;
生成适于Java位图的经过更新部分的坐标;
基于位图的经过更新的部分形成图像文件,其中所述图像文件与HTML5兼容;以及
获取适于图像文件的绘图坐标,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中所述方法进一步包括在编码转换服务器处从网页浏览器接收绘图请求;以及
其中促进提供绘图更新包括响应于来自网页浏览器的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器。
14.根据第11条所述的机器可读存储介质,其中所述编码转换服务器包括远程桌面客户端适配器,其配置成将用户输入请求转译成与远程桌面显示协议兼容的输入命令,并将远程桌面绘图命令转译成图形绘制命令。
15.根据第11条所述的机器可读存储介质,还包括从网页浏览器接收长轮询HTTP请求,其中长轮询HTTP请求包括绘图请求。
16.根据第11条所述的机器可读存储介质,还包括用于从网页浏览器接收包括远程计算机的统一资源定位符(URL)的初始HTTP请求的编码。
17.根据第16条所述的机器可读存储介质,还包括用于响应于适于远程计算机URL的初始HTTP请求促进将脚本客户端编码提供到网页浏览器的编码,其中所述脚本客户端编码与HTML5兼容。
18.根据第11条所述的机器可读存储介质,其中所述远程桌面绘图命令与远程桌面显示协议是兼容的,其中所述远程桌面显示协议为推式协议,以及其中促进提供绘图更新包括利用为拉式协议的HTTP促进提供绘图更新。
19.根据第11条所述的机器可读存储介质,其中动态绘图包括响应于网页浏览器脚本客户端的一个或多个绘图请求实时地绘制2D画布的一部分,而不是绘制整个2D画布。
20.根据第11条所述的机器可读存储介质,其中所述2D画布在同一时间根据一组坐标来进行部分更新。
21.包括第11条所述机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
22.一种用于经由编码转换服务器(例如参见330)和利用支持二维(2D)画布和动态绘图的超文本标记语言促进实时在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如,参见320)之间进行远程桌面会话的设备(例如,参见图11C中的第1100-C项),所述设备包括:
用于从客户端设备处的网页浏览器接收用户输入请求以便访问和控制远程计算机的装置,其中网页浏览器支持二维画布和动态绘图(例如,参见图11C中的第1102-C项);
用于将用户输入请求转译成与远程桌面显示协议兼容的输入命令的装置,以便由编码转换服务器用来促进与远程计算机的通信(例如参见图11C中的第1104-C项);
用于响应于输入命令从远程计算机接收远程桌面绘图命令的装置(例如参见图11C中的第1106-C项);
用于将远程桌面绘图命令转译成与超文本标记语言兼容的绘图更新的装置(例如参见图11C中的第1108-C项);以及
用于促进将绘图更新从编码转换服务器提供到网页浏览器的装置(例如参见图11C中的第1110-C项);
其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
23.根据第22条所述的设备,其中用于转译远程桌面绘图命令的装置包括:
用于将远程桌面绘图命令转译成Java图形绘制命令的装置;
用于执行Java图形绘制命令来更新Java位图的一部分的装置,其中Java位图代表远程计算机远程桌面的整个图像;
用于基于Java图形绘制命令生成适于Java位图的经过更新部分的坐标的装置;
用于基于Java位图的经过更新的部分形成图像文件的装置,其中所述图像文件与HTML5兼容;以及
用于基于适于Java位图的经过更新的部分的坐标获取适于图像文件的绘图坐标的装置,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中绘图的更新代表远程桌面整个图像的一部分;
其中在远程桌面会话期间网页浏览器瞬时包括JavaScript客户端编码,同时远程桌面会话继续;
其中所述设备进一步包括用于从网页浏览器的JavaScript客户端编码接收绘图请求的装置;
其中用于促进提供绘图更新的装置包括用于响应于来自网页浏览器的JavaScript客户端编码的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器的JavaScript客户端编码的装置。
24.根据第22条所述的设备,其中用于转译远程桌面绘图命令的装置包括:
用于将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令的装置;
用于基于图形绘制命令来更新Java位图的一部分的装置,其中Java位图的经过更新的一部分代表远程计算机远程桌面整个图像的相对于前一图形绘制命令已经改变的一部分;
用于生成适于Java位图的经过更新部分的坐标的装置;
用于基于位图的经过更新的部分形成图像文件的装置,其中所述图像文件与HTML5兼容;以及
用于获取适于图像文件的绘图坐标的装置,其中所述绘图坐标与HTML5兼容;
其中绘图的更新包括图像文件和适于图像文件的绘图坐标;
其中所述设备进一步包括用于从网页浏览器接收绘图请求的装置;以及
其中用于促进提供绘图更新的装置包括用于响应于来自网页浏览器的绘图请求之一来促进将绘图更新从编码转换服务器提供到网页浏览器的装置。
25.根据第22条所述的设备,其中所述编码转换服务器包括远程桌面客户端适配器,其配置成将用户输入请求转译成与远程桌面显示协议兼容的输入命令,并将远程桌面绘图命令转译成图形绘制命令。
26.根据第22条所述的设备,还包括用于从网页浏览器接收长轮询HTTP请求的装置,其中长轮询HTTP请求包括绘图请求。
27.根据第22条所述的设备,还包括用于从网页浏览器接收包括远程计算机的统一资源定位符(URL)的初始HTTP请求的装置。
28.根据第27条所述的设备,还包括用于响应于适于远程计算机URL的初始HTTP请求促进将脚本客户端编码提供到网页浏览器的装置,其中所述脚本客户端编码与HTML5兼容。
29.根据第22条所述的设备,其中所述远程桌面绘图命令与远程桌面显示协议是兼容的,其中所述远程桌面显示协议为推式协议,以及其中用于促进提供绘图更新的装置包括用于利用为拉式协议的HTTP促进提供绘图更新的装置。
30.根据第22条所述的设备,其中动态绘图包括响应于网页浏览器脚本客户端的一个或多个绘图请求实时地绘制2D画布的一部分,而不是绘制整个2D画布。
31.根据第22条所述的设备,其中所述2D画布在同一时间根据一组坐标来进行部分更新。
32.根据第22条所述的设备,其中所述设备包括编码转换服务器。
33.根据第22条所述的设备,其中所述设备包括处理系统和存储器。
下面示出用于经由编码转换服务器和利用适于远程桌面会话绘图的HTTP的超文本传输协议(HTTP)标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、11、和22条。下面的第1条例如参照附图12A-12C呈现。其它条款可以类似的方式来呈现。
1.经由编码转换服务器(例如参见330)和利用适于远程桌面会话绘图的HTTP的超文本传输协议(HTTP)标头促进在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如参见320)之间进行远程桌面会话的方法(例如参见图12A中的第1200-A项),所述方法包括:
在编码转换服务器处从客户端设备处的网页浏览器接收绘图请求(例如参见图12A中的第1202-A项);
在编码转换服务器处利用远程桌面显示协议从远程计算机接收远程桌面绘图命令,其中远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图12A中的第1204-A项);
在编码转换服务器处将远程桌面绘图命令转译成显示图像和适于显示图像的绘图坐标(例如参见图12A中的第1206-A项);
在编码转换服务器处将绘图坐标放置到HTTP响应标头内(例如参见图12A中的第1208-A项);以及
响应于绘制请求中的至少一个,促进以单次HTTP响应将显示图像和绘图坐标一起提供到网页浏览器,以便在网页浏览器处绘制远程桌面的显示图像,其中单次HTTP响应包括HTTP标头响应(例如参见图12A中的第1210-A项);
其中所述远程桌面显示协议为推式协议;以及
其中所述HTTP为拉式协议。
2.根据第1条所述的方法,其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令,其中所述编码转换服务器包括Java可兼容的网络应用程序服务器;
响应于Java图形绘制命令更新远程桌面Java图形位图的一部分;
从Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图经过更新的部分生成与网页浏览器兼容的显示图像;以及
基于适于Java位图的经过更新部分的坐标获取适于显示图像的绘图坐标;
其中所述显示图像和绘图坐标与HTML兼容;
其中Java图形位图的经过更新的部分代表远程计算机远程桌面整个图像的一部分;
其中所述显示图像和绘图坐标代表远程计算机远程桌面整个图像的一部分。
3.根据第1条所述的方法,其中所述转译包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令;
基于图形绘制命令更新远程桌面位图的一部分;
生成适于位图经过更新部分的坐标;
基于位图的经过更新的部分生成与网页浏览器兼容的显示图像;
获取适于显示图像的绘图坐标;
其中所述显示图像和绘图坐标与HTML兼容。
4.根据第1条所述的方法,其中所述显示图像和绘图坐标与HTML5兼容。
5.根据第1条所述的方法,其中编码转换服务器介于远程计算机和客户端设备之间,其中编码转换服务器在物理上独立于远程计算机。
6.根据第1条所述的方法,其中所述远程桌面绘图命令包括相对于前一远程桌面绘图命令已经改变的远程桌面区域的坐标。
7.根据第6条所述的方法,其中所述坐标指定重新绘制区域。
8.根据第1条所述的方法,其中所述绘图坐标与网页浏览器的JavaScript客户端编码是兼容的,以及其中所述显示图像与网页浏览器的HTML兼容。
9.根据第1条所述的方法,其中所述显示图像包括远程桌面的缩放图像。
10.根据第1条所述的方法,其中所述显示图像包括远程桌面的偏移图像。
11.一种机器可读存储介质(例如参见图8中的810,819),其编码有指令,所述指令可由处理系统(例如参见802)来执行,以便执行经由编码转换服务器(例如参见330)和利用适于远程桌面会话绘图的HTTP的超文本传输协议(HTTP)标头促进在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如参见320)之间进行远程桌面会话的方法,所述指令包括适于下述的编码:
在编码转换服务器处从客户端设备处的网页浏览器接收绘图请求(例如参见图12B中的第1202-B项);
在编码转换服务器处利用远程桌面显示协议从远程计算机接收远程桌面绘图命令,其中远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图12B中的第1204-B项);
在编码转换服务器处将远程桌面绘图命令转译成显示图像和适于显示图像的绘图坐标(例如参见图12B中的第1206-B项);
在编码转换服务器处将绘图坐标放置到HTTP响应标头内(例如参见图12B中的第1208-B项);以及
响应于绘制请求中的至少一个,促进以单次HTTP响应将显示图像和绘图坐标一起提供到网页浏览器,以便在网页浏览器处绘制远程桌面的显示图像,其中单次HTTP响应包括HTTP标头响应(例如参见图12B中的第1210-B项);
其中所述远程桌面显示协议为推式协议;以及
其中所述HTTP为拉式协议。
12.根据第11条所述的机器可读存储介质,其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令,其中所述编码转换服务器包括Java可兼容的网络应用程序服务器;
响应于Java图形绘制命令更新远程桌面Java图形位图的一部分;
从Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图经过更新的部分生成与网页浏览器兼容的显示图像;以及
基于适于Java位图的经过更新部分的坐标获取适于显示图像的绘图坐标;
其中所述显示图像和绘图坐标与HTML兼容;
其中Java图形位图的经过更新的部分代表远程计算机远程桌面整个图像的一部分;
其中所述显示图像和绘图坐标代表远程计算机远程桌面整个图像的一部分。
13.根据第11条所述的机器可读存储介质,其中所述转译包括:
将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令;
基于图形绘制命令更新远程桌面位图的一部分;
生成适于位图经过更新部分的坐标;
基于位图的经过更新的部分生成与网页浏览器兼容的显示图像;
获取适于显示图像的绘图坐标;
其中所述显示图像和绘图坐标与HTML兼容。
14.根据第11条所述的机器可读存储介质,其中所述显示图像和绘图坐标与HTML5兼容。
15.根据第11条所述的机器可读存储介质,其中编码转换服务器介于远程计算机和客户端设备之间,其中编码转换服务器在物理上独立于远程计算机。
16.根据第11条所述的机器可读存储介质,其中所述远程桌面绘图命令包括相对于前一远程桌面绘图命令已经改变的远程桌面区域的坐标。
17.根据第16条所述的机器可读存储介质,其中所述坐标指定重新绘制区域。
18.根据第11条所述的机器可读存储介质,其中所述绘图坐标与网页浏览器的JavaScript客户端编码是兼容的,以及其中所述显示图像与网页浏览器的HTML兼容。
19.根据第11条所述的机器可读存储介质,其中所述显示图像包括远程桌面的缩放图像。
20.根据第11条所述的机器可读存储介质,其中所述显示图像包括远程桌面的偏移图像。
21.包括第11条所述机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
22.用于经由编码转换服务器(例如参见330)和利用适于远程桌面会话绘图的HTTP的超文本传输协议(HTTP)标头促进在客户端设备(例如参见图3A中的310)的网页浏览器和远程计算机(例如参见320)之间进行远程桌面会话的设备(例如,参见图12C中的第1200-C项),所述设备包括:
用于从客户端设备处的网页浏览器接收绘图请求的装置(例如参见图12C中的第1202-C项);
用于利用远程桌面显示协议从远程计算机接收远程桌面绘图命令的装置,其中远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图12C中的第1204-C项);
用于将远程桌面绘图命令转译成显示图像和适于显示图像的绘图坐标的装置(例如参见图12C中的第1206-C项);
用于将绘图坐标放置到HTTP响应标头内的装置(例如参见图12C中的第1208-C项);以及
响应于绘制请求中的至少一个,用于促进以单次HTTP响应将显示图像和绘图坐标一起提供到网页浏览器的装置,以便在网页浏览器处绘制远程桌面的显示图像,其中单次HTTP响应包括HTTP标头响应(例如参见图12C中的第1210-C项);
其中所述远程桌面显示协议为推式协议;以及
其中所述HTTP为拉式协议。
23.根据第22条所述的设备,其中用于所述转译的装置包括:
用于将远程桌面绘图命令转译成Java图形绘制命令的装置,其中所述编码转换服务器包括Java可兼容的网络应用程序服务器;
用于响应于Java图形绘制命令更新远程桌面Java图形位图的一部分的装置;
用于从Java图形绘制命令生成适于Java位图的经过更新部分的坐标的装置;
用于基于Java位图经过更新的部分生成与网页浏览器兼容的显示图像的装置;以及
用于基于适于Java位图的经过更新部分的坐标获取适于显示图像的绘图坐标的装置;
其中所述显示图像和绘图坐标与HTML兼容;
其中Java图形位图的经过更新的部分代表远程计算机远程桌面整个图像的一部分;
其中所述显示图像和绘图坐标代表远程计算机远程桌面整个图像的一部分。
24.根据第22条所述的设备,其中用于所述转译的装置包括:
用于将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令的装置;
用于基于图形绘制命令更新远程桌面位图的一部分的装置;
用于生成适于位图经过更新部分的坐标的装置;
用于基于位图的经过更新的部分生成与网页浏览器兼容的显示图像的装置;以及
用于获取适于显示图像的绘图坐标的装置;
其中所述显示图像和绘图坐标与HTML兼容。
25.根据第22条所述的设备,其中所述显示图像和绘图坐标与HTML5兼容。
26.根据第22条所述的设备,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
27.根据第22条所述的设备,其中所述远程桌面绘图命令包括相对于前一远程桌面绘图命令已经改变的远程桌面区域的坐标。
28.根据第27条所述的设备,其中所述坐标指定重新绘制区域。
29.根据第22条所述的设备,其中所述绘图坐标与网页浏览器的JavaScript客户端编码是兼容的,以及其中所述显示图像与网页浏览器的HTML兼容。
30.根据第22条所述的设备,其中所述显示图像包括远程桌面的缩放图像。
31.根据第22条所述的设备,其中所述显示图像包括远程桌面的偏移图像。
32.根据第22条所述的设备,其中所述设备包括编码转换服务器。
33.根据第22条所述的设备,其中所述设备包括处理系统和存储器。
下面示出用于经由编码转换服务器和利用用于减少到客户端设备流量的长轮询来促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、11、和22条。下面的第1条例如参照附图13A-13C呈现。其它条款可以类似的方式来呈现。
1.经由编码转换服务器(例如参见图3A中的330)和用于减少到客户端设备流量的长轮询来促进在客户端设备(例如参见图3A中的310)的网页浏览器(例如参见图5中的500)和远程计算机(例如参见图3A中的320)之间进行远程桌面会话的方法(例如参见图13A中的第1300-A项),所述方法包括:
在编码转换服务器处利用HTTP从网页浏览器接收多个绘图请求,其中HTTP是拉式协议(例如参见图13A中的第1302-A项);
在编码转换服务器处处理作为长轮询请求的多个绘图请求(例如参见图13A中的第1304-A项);
在编码转换服务器处从远程计算机接收远程桌面绘图命令(例如参见图13A中的第1306-A项);
在编码转换服务器处将远程桌面绘图命令转译成网页浏览器绘图更新,其中远程桌面绘图命令与推式协议兼容,其中网页浏览器绘图更新与HTTP兼容,其中HTTP是拉式协议(例如参见图13A中的第1308-A项);以及
作为对来自网页浏览器的多个绘图请求中至少一个的响应,促进利用HTTP将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器(例如参见图13A中的第1310-A项)。
2.根据第1条所述的方法,其中所述处理包括:
对于网页浏览器而言,确定绘图命令是否在编码转换服务器处等待处理;
如果不存在等待处理的绘图命令,则将多个绘图请求作为长轮询请求存储于绘图请求队列中;以及
如果存在等待处理的绘图命令,则将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
3.根据第1条所述的方法,其中远程桌面绘图命令代表远程计算机远程桌面整个图像的一部分;
其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
响应于Java图形绘制命令更新远程桌面整个图像的Java位图的一部分;
基于Java图形绘制命令生成Java位图的经过更新部分的坐标;
基于Java位图的经过更新的部分生成图像文件,其中所述图像文件与网页浏览器是兼容的;以及
基于Java位图的经过更新部分的坐标获取适于图像文件的绘图坐标;
其中网页浏览器绘图更新包括图像文件和绘图坐标。
4.根据第3条所述的方法,其中所述处理包括:
对于网页浏览器而言,确定绘图命令是否在编码转换服务器处等待处理;
如果不存在等待处理的绘图命令,则将多个绘图请求作为长轮询请求存储于绘图请求队列中;以及
如果存在等待处理的绘图命令,则将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
5.根据第4条所述的方法,其中所述促进提供包括:
在HTTP处理器处将绘图坐标放置到响应于网页浏览器的单次HTTP传输的HTTP标头内;
在HTTP处理器处将图像文件包括到响应于网页浏览器的单次HTTP传输内,以便促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器。
6.根据第5条所述的方法,进一步包括:
当绘图命令队列具有新的坐标时,发送通知到绘图请求队列以便允许在绘图请求队列中的多个绘图请求中的至少一个转发到HTTP处理器。
7.根据第1条所述的方法,进一步包括:
响应于作为对来自网页浏览器的多个绘图请求中至少一个的响应,促进将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器而从网页浏览器接收新的绘图请求。
8.根据第1条所述的方法,进一步包括:
从网页浏览器接收要连接到远程计算机的请求;
响应于要连接到远程计算机的请求促进将JavaScript客户端编码提供到网页浏览器;
其中接收多个绘图请求包括从JavaScript客户端编码接收多个绘图请求;
其中促进将网页浏览器绘图更新提供到客户端设备的网页浏览器包括促进将网页浏览器绘图更新提供到JavaScript客户端编码。
9.根据第8条所述的方法,还包括当远程桌面会话终止时促进将JavaScript客户端编码从网页浏览器删除。
10.根据第1条所述的方法,进一步包括:
在编码转换服务器处从网页浏览器接收用户输入请求,以便访问或控制远程计算机的远程桌面;
在编码转换服务器处将用户输入请求转译成与推式协议兼容的输入命令;
利用推式协议促进将输入命令提供到远程计算机;
其中接收远程桌面绘图命令包括响应于输入命令接收远程桌面绘图命令。
11.一种机器可读存储介质(例如参见图13B中的第1300-B项),其编码有指令,所述指令可由处理器执行以便执行经由编码转换服务器(例如参见图3B中的330)和用于减少到客户端设备流量的长轮询来促进在客户端设备(例如参见图3A中的310)的网页浏览器(例如参见图5中的500)和远程计算机(例如参见图3B中的320)之间进行远程桌面会话的方法,所述指令包括适于下述的编码:
在编码转换服务器处利用HTTP从网页浏览器接收多个绘图请求,其中HTTP是拉式协议(例如参见图13B中的第1302-B项);
在编码转换服务器处处理作为长轮询请求的多个绘图请求(例如参见图13B中的第1304-B项);
在编码转换服务器处从远程计算机接收远程桌面绘图命令(例如参见图13B中的第1306-B项);
在编码转换服务器处将远程桌面绘图命令转译成网页浏览器绘图更新,其中远程桌面绘图命令与推式协议兼容,其中网页浏览器绘图更新与HTTP兼容,其中HTTP是拉式协议(例如参见图13B中的第1308-B项);以及
作为对来自网页浏览器的多个绘图请求中至少一个的响应,促进利用HTTP将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器(例如参见图13B中的第1310-B项)。
12.根据第11条所述的机器可读存储介质,其中所述处理包括:
对于网页浏览器而言,确定绘图命令是否在编码转换服务器处等待处理;
如果不存在等待处理的绘图命令,则将多个绘图请求作为长轮询请求存储于绘图请求队列中;以及
如果存在等待处理的绘图命令,则将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
13.根据第11条所述的机器可读存储介质,其中远程桌面绘图命令代表远程计算机远程桌面整个图像的一部分;
其中所述转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
响应于Java图形绘制命令更新远程桌面整个图像的Java位图的一部分;
基于Java图形绘制命令生成Java位图的经过更新部分的坐标;
基于Java位图的经过更新的部分生成图像文件,其中所述图像文件与网页浏览器是兼容的;以及
基于Java位图的经过更新部分的坐标获取适于图像文件的绘图坐标;
其中网页浏览器绘图更新包括图像文件和绘图坐标。
14.根据第13条所述的机器可读存储介质,其中所述处理包括:
对于网页浏览器而言,确定绘图命令是否在编码转换服务器处等待处理;
如果不存在等待处理的绘图命令,则将多个绘图请求作为长轮询请求存储于绘图请求队列中;以及
如果存在等待处理的绘图命令,则将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
15.根据第14条所述的机器可读存储介质,其中所述促进提供包括:
在HTTP处理器处将绘图坐标放置到响应于网页浏览器的单次HTTP传输的HTTP标头内;以及
在HTTP处理器处将图像文件包括到响应于网页浏览器的单次HTTP传输内,以便促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器。
16.根据第15条所述的机器可读存储介质,进一步包括适于下述的编码:
当绘图命令队列具有新的坐标时,发送通知到绘图请求队列以便允许在绘图请求队列中的多个绘图请求中的至少一个转发到HTTP处理器。
17.根据第11条所述的机器可读存储介质,进一步包括适于下述的编码:
响应于作为对来自网页浏览器的多个绘图请求中至少一个的响应,促进将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器而从网页浏览器接收新的绘图请求。
18.根据第11条所述的机器可读存储介质,进一步包括适于下述的编码:
从网页浏览器接收要连接到远程计算机的请求;以及
响应于要连接到远程计算机的请求促进将JavaScript客户端编码提供到网页浏览器;
其中接收多个绘图请求包括从JavaScript客户端编码接收多个绘图请求;
其中促进将网页浏览器绘图更新提供到客户端设备的网页浏览器包括促进将网页浏览器绘图更新提供到JavaScript客户端编码。
19.根据第18条所述的机器可读存储介质,还包括适于下述的编码:当远程桌面会话终止时促进将JavaScript客户端编码从网页浏览器删除。
20.根据第11条所述的机器可读存储介质,进一步包括适于下述的编码:
在编码转换服务器处从网页浏览器接收用户输入请求,以便访问或控制远程计算机的远程桌面;
在编码转换服务器处将用户输入请求转译成与推式协议兼容的输入命令;
利用推式协议促进将输入命令提供到远程计算机;
其中接收远程桌面绘图命令包括响应于输入命令接收远程桌面绘图命令。
21.包括第11条所述机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
22.用于经由编码转换服务器(例如参见图3A中的330)和用于减少到客户端设备流量的长轮询来促进在客户端设备(例如参见图3A中的310)的网页浏览器(例如参见图5中的500)和远程计算机(例如参见图3A中的320)之间进行远程桌面会话的设备(例如参见图13C中的第1300-C项),所述设备包括:
用于利用HTTP从网页浏览器接收多个绘图请求的装置,其中HTTP是拉式协议(例如参见图13C中的第1302-C项);
用于作为长轮询请求的多个绘图请求的装置(例如参见图13C中的第1304-C项);
用于从远程计算机接收远程桌面绘图命令的装置(例如参见图13C中的第1306-C项);
用于将远程桌面绘图命令转译成网页浏览器绘图更新的装置,其中远程桌面绘图命令与推式协议兼容,其中网页浏览器绘图更新与HTTP兼容,其中HTTP是拉式协议(例如参见图13C中的第1308-C项);以及
作为对来自网页浏览器的多个绘图请求中至少一个的响应,用于促进利用HTTP将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器的装置(例如参见图13C中的第1310-C项)。
23.根据第22条所述的设备,其中用于所述处理的装置包括:
对于网页浏览器而言,用于确定绘图命令是否在编码转换服务器处等待处理的装置;
如果不存在等待处理的绘图命令,则用于将多个绘图请求作为长轮询请求存储于绘图请求队列中的装置;以及
如果存在等待处理的绘图命令,则用于将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器的装置,以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
24.根据第22条所述的设备,其中远程桌面绘图命令代表远程计算机远程桌面整个图像的一部分;
其中用于所述转译的装置包括:
用于将远程桌面绘图命令转译成Java图形绘制命令的装置;
用于响应于Java图形绘制命令更新远程桌面整个图像的Java位图的一部分的装置;
用于基于Java图形绘制命令生成Java位图的经过更新部分的坐标的装置;
用于基于Java位图的经过更新的部分生成图像文件的装置,其中所述图像文件与网页浏览器是兼容的;以及
用于基于Java位图的经过更新部分的坐标获取适于图像文件的绘图坐标的装置;
其中网页浏览器绘图更新包括图像文件和绘图坐标。
25.根据第22条所述的设备,其中用于所述处理的装置包括:
对于网页浏览器而言,用于确定绘图命令是否在编码转换服务器处等待处理的装置;
如果不存在等待处理的绘图命令,则用于将多个绘图请求作为长轮询请求存储于绘图请求队列中的装置;以及
如果存在等待处理的绘图命令,则用于将多个绘图请求中的至少一个提供到编码转换服务器中的HTTP处理器的装置,以便允许HTTP处理器响应于多个绘图请求中的至少一个来服务于等待处理的绘图命令。
26.根据第22条所述的方法,其中用于所述促进提供的装置包括:
用于在HTTP处理器处将绘图坐标放置到响应于网页浏览器的单次HTTP传输的HTTP标头内的装置;以及
用于在HTTP处理器处将图像文件包括到响应于网页浏览器的单次HTTP传输内的装置,以便促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器。
27.根据第22条所述的设备,进一步包括:
当绘图命令队列具有新的坐标时,用于发送通知到绘图请求队列的装置,以便允许在绘图请求队列中的多个绘图请求中的至少一个转发到HTTP处理器。
28.根据第22条所述的方法,进一步包括:
用于响应于作为对来自网页浏览器的多个绘图请求中至少一个的响应,促进将网页浏览器绘图更新从编码转换服务器提供到客户端设备的网页浏览器而从网页浏览器接收新的绘图请求的装置。
29.根据第22条所述的设备,进一步包括:
用于从网页浏览器接收要连接到远程计算机的请求的装置;以及
用于响应于要连接到远程计算机的请求促进将JavaScript客户端编码提供到网页浏览器的装置;
其中用于接收多个绘图请求的装置包括用于从JavaScript客户端编码接收多个绘图请求的装置;
其中用于促进将网页浏览器绘图更新提供到客户端设备的网页浏览器的装置包括用于促进将网页浏览器绘图更新提供到JavaScript客户端编码的装置。
30.根据第29条所述的设备,还包括当远程桌面会话终止时用于促进将JavaScript客户端编码从网页浏览器删除的装置。
31.根据第22条所述的设备,进一步包括:
用于从网页浏览器接收用户输入请求的装置,以便访问或控制远程计算机的远程桌面;
用于将用户输入请求转译成与推式协议兼容的输入命令的装置;
用于利用推式协议促进将输入命令提供到远程计算机的装置;
其中用于接收远程桌面绘图命令的装置包括用于响应于输入命令接收远程桌面绘图命令的装置。
32.根据第22条所述的设备,其中所述设备包括编码转换服务器。
33.根据第22条所述的设备,其中所述设备包括处理系统和存储器。
下面示出用于经由编码转换服务器和利用在编码转换服务器处的适配器来促进在客户端设备处的网页浏览器和远程计算机处的编码转换服务器之间进行远程桌面会话的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、10、和20条。下面的第1条例如参照附图14A-14C呈现。其它条款可以类似的方式来呈现。
1.用于经由编码转换服务器(例如参见330)和利用在编码转换服务器处的适配器(例如参见图6中的600)来促进在客户端设备(例如参见图3A中的310)处的网页浏览器和在远程计算机(例如参见320)处的编码转换服务器之间进行远程桌面会话的方法(例如参见图14A中的第1400-A项),所述方法包括:
在适配器处利用请求-响应协议从网页浏览器接收输入请求,其中请求-响应协议是拉式协议(例如参见图14A中的第1402-A项);
在适配器处将输入请求转译成与远程桌面显示协议兼容的输入命令,以便由在编码转换服务器处的远程桌面客户端使用,从而促进与在远程计算机处的远程桌面服务器通信,其中远程桌面显示协议是推式协议(例如参见图14A中的第1404-A项);
将输入命令提供到编码转换服务器处的远程桌面客户端,以促进利用远程桌面显示协议将输入命令提供到远程桌面服务器(例如参见图14A中的第1406-A项);
响应于输入命令在适配器处从远程桌面服务器接收远程桌面绘图命令,其中所述远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图14A中的第1408-A项);
在适配器处将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令,以便允许编码转换服务器来促进将网页浏览器绘图更新提供到网页浏览器,其中网页浏览器绘图更新与网页浏览器兼容(例如参见图14A中的第1410-A项)。
2.根据第1条所述的方法,其中请求-响应协议包括超文本传输协议(HTTP),其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,其中所述网页浏览器是HTML5兼容的。
3.根据第1条所述的方法,其中接收输入请求包括经由在编码转换服务器处的网络应用程序服务器的HTTP处理器来从网页浏览器接收输入请求;
其中接收远程桌面绘图命令包括经由远程桌面客户端利用远程桌面显示协议来接收远程桌面绘图命令。
4.根据第1条所述的方法,其中远程桌面绘图命令包括从远程桌面服务器接收到的远程桌面绘图命令的参数和位图数据;
其中转译远程桌面绘图命令包括下述的一个或多个:
基于远程桌面绘图命令的参数计算新的绘图命令参数;
调整远程桌面绘图命令的参数;以及
对位图数据进行调整。
5.根据第1条所述的方法,进一步包括:
基于图形绘制命令生成图像;以及
基于图形绘制命令生成适于图像的坐标;
其中所述图像代表远程桌面整个图像的一部分。
6.根据第1条所述的方法,进一步包括:
执行图形绘制命令来生成图像并将图像拖动到在编码转换服务器处的绘图命令队列内,所述编码转换服务器可由在编码转换服务器处的网络应用程序服务器访问以便与网页浏览器进行通信;
基于图形绘制命令生成适于图像的坐标;
将坐标存储于绘图命令队列中;以及
在生成坐标之后,发送绘图命令准备服务于网页浏览器的通知到网络应用程序服务器;
其中图形绘制命令代表远程桌面整个图像的一部分。
7.根据第1条所述的方法,进一步包括:
经由编码转换服务器的HTTP处理器从网页浏览器接收连接请求;
响应于连接请求促进建立、控制或终止远程桌面客户端和远程桌面服务器之间的远程桌面会话,其中促进建立、控制或终止包括:
基于连接请求生成会话控制命令,其中会话控制命令与远程桌面显示协议兼容;以及
经由远程桌面客户端利用远程桌面显示协议促进将会话控制命令传送到远程桌面服务器。
8.根据第7条所述的方法,其中会话控制命令包括下述的至少一个:用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
9.根据第1条所述的方法,进一步包括:
从图形绘制命令提取坐标;以及
基于图形绘制命令更新离屏位图的至少一部分,其中所述离屏位图的至少一部分与坐标相关联,其中所述离屏位图代表远程桌面的整个图像。
10.一种机器可读存储介质(例如参见图8中的810,819),其编码有指令,所述指令由处理系统(例如参见802)来执行,以便执行用于经由编码转换服务器(例如参见330)和利用在编码转换服务器处的适配器(例如参见图6中的600)来促进在客户端设备(例如参见图3A中的310)处的网页浏览器和在远程计算机(例如参见320)处的编码转换服务器之间进行远程桌面会话的方法,所述指令包括适于下述的编码:
在适配器处利用请求-响应协议从网页浏览器接收输入请求,其中请求-响应协议是拉式协议(例如参见图14B中的第1402-B项);
在适配器处将输入请求转译成与远程桌面显示协议兼容的输入命令,以便由在编码转换服务器处的远程桌面客户端使用,从而促进与在远程计算机处的远程桌面服务器通信,其中远程桌面显示协议是推式协议(例如参见图14B中的第1404-B项);
将输入命令提供到编码转换服务器处的远程桌面客户端,以促进利用远程桌面显示协议将输入命令提供到远程桌面服务器(例如参见图14B中的第1406-B项);
响应于输入命令在适配器处从远程桌面服务器接收远程桌面绘图命令,其中所述远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图14B中的第1408-B项);以及
在适配器处将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令,以便允许编码转换服务器来促进将网页浏览器绘图更新提供到网页浏览器,其中网页浏览器绘图更新与网页浏览器兼容(例如参见图14B中的第1410-B项)。
11.根据第10条所述的机器可读存储介质,其中请求-响应协议包括超文本传输协议(HTTP),其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,其中所述网页浏览器是HTML5兼容的。
12.根据第10条所述的机器可读存储介质,其中接收输入请求包括经由在编码转换服务器处的网络应用程序服务器的HTTP处理器来从网页浏览器接收输入请求;
其中接收远程桌面绘图命令包括经由远程桌面客户端利用远程桌面显示协议来接收远程桌面绘图命令。
13.根据第10条所述的机器可读存储介质,其中远程桌面绘图命令包括从远程桌面服务器接收到的远程桌面绘图命令的参数和位图数据;
其中转译远程桌面绘图命令包括下述的一个或多个:
基于远程桌面绘图命令的参数计算新的绘图命令参数;
调整远程桌面绘图命令的参数;以及
对位图数据进行调整。
14.根据第10条所述的机器可读存储介质,其中所述指令进一步包括适于下述的编码:
基于图形绘制命令生成图像;以及
基于图形绘制命令生成适于图像的坐标;
其中所述图像代表远程桌面整个图像的一部分。
15.根据第10条所述的机器可读存储介质,其中所述指令进一步包括适于下述的编码:
执行图形绘制命令来生成图像并将图像拖动到在编码转换服务器处的绘图命令队列内,所述编码转换服务器可由在编码转换服务器处的网络应用程序服务器访问以便与网页浏览器进行通信;
基于图形绘制命令生成适于图像的坐标;
将坐标存储于绘图命令队列中;以及
在生成坐标之后,发送绘图命令准备服务于网页浏览器的通知到网络应用程序服务器;
其中图形绘制命令代表远程桌面整个图像的一部分。
16.根据第10条所述的机器可读存储介质,其中所述指令进一步包括适于下述的编码:
经由编码转换服务器的HTTP处理器从网页浏览器接收连接请求;
响应于连接请求促进建立、控制或终止远程桌面客户端和远程桌面服务器之间的远程桌面会话,其中促进建立、控制或终止包括:
基于连接请求生成会话控制命令,其中会话控制命令与远程桌面显示协议兼容;以及
经由远程桌面客户端利用远程桌面显示协议促进将会话控制命令传送到远程桌面服务器。
17.根据第16条所述的机器可读存储介质,其中会话控制命令包括下述的至少一个:用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
18.根据第10条所述的机器可读存储介质,其中所述指令进一步包括适于下述的编码:
从图形绘制命令提取坐标;以及
基于图形绘制命令更新离屏位图的至少一部分,其中所述离屏位图的至少一部分与坐标相关联,其中所述离屏位图代表远程桌面的整个图像。
19.包括第10条所述机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
20.用于经由编码转换服务器(例如参见330)和利用在编码转换服务器处的适配器(例如参见图6中的600)来促进在客户端设备(例如参见图3A中的310)处的网页浏览器和在远程计算机(例如参见320)处的编码转换服务器之间进行远程桌面会话的设备(例如参见图14C中的第1400-C项),所述设备包括:
用于利用请求-响应协议从网页浏览器接收输入请求的装置,其中请求-响应协议是拉式协议(例如参见图14C中的第1402-C项);
用于将输入请求转译成与远程桌面显示协议兼容的输入命令的装置,以便由在编码转换服务器处的远程桌面客户端使用,从而促进与在远程计算机处的远程桌面服务器通信,其中远程桌面显示协议是推式协议(例如参见图14C中的第1404-C项);
用于将输入命令提供到编码转换服务器处的远程桌面客户端的装置,以促进利用远程桌面显示协议将输入命令提供到远程桌面服务器(例如参见图14C中的第1406-C项);
用于响应于输入命令在适配器处从远程桌面服务器接收远程桌面绘图命令的装置,其中所述远程桌面绘图命令基于远程计算机远程桌面的图像(例如参见图14C中的第1408-C项);以及
用于将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令的装置,以便允许编码转换服务器来促进将网页浏览器绘图更新提供到网页浏览器,其中网页浏览器绘图更新与网页浏览器兼容(例如参见图14C中的第1410-C项)。
21.根据第20条所述的设备,其中请求-响应协议包括超文本传输协议(HTTP),其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,其中所述网页浏览器是HTML5兼容的。
22.根据第20条所述的方法,其中用于接收输入请求的装置包括经由在编码转换服务器处的网络应用程序服务器的HTTP处理器来从网页浏览器接收输入请求的装置;
其中用于接收远程桌面绘图命令的装置包括用于经由远程桌面客户端利用远程桌面显示协议来接收远程桌面绘图命令的装置。
23.根据第20条所述的设备,其中远程桌面绘图命令包括从远程桌面服务器接收到的远程桌面绘图命令的参数和位图数据;
其中用于转译远程桌面绘图命令的装置包括下述的一个或多个:
用于基于远程桌面绘图命令的参数计算新的绘图命令参数的装置;
用于调整远程桌面绘图命令的参数的装置;以及
用于对位图数据进行调整的装置。
24.根据第20条所述的设备,进一步包括:
用于基于图形绘制命令生成图像的装置;以及
用于基于图形绘制命令生成适于图像的坐标的装置;
其中所述图像代表远程桌面整个图像的一部分。
25.根据第20条所述的方法,进一步包括:
用于执行图形绘制命令来生成图像并将图像拖动到在编码转换服务器处的绘图命令队列内的装置,所述编码转换服务器可由在编码转换服务器处的网络应用程序服务器访问以便与网页浏览器进行通信;
用于基于图形绘制命令生成适于图像的坐标的装置;
用于将坐标存储于绘图命令队列中的装置;以及
在生成坐标之后,用于发送绘图命令准备服务于网页浏览器的通知到网络应用程序服务器的装置;
其中图形绘制命令代表远程桌面整个图像的一部分。
26.根据第20条所述的方法,进一步包括:
用于经由编码转换服务器的HTTP处理器从网页浏览器接收连接请求的装置;
用于响应于连接请求促进建立、控制或终止远程桌面客户端和远程桌面服务器之间的远程桌面会话的装置,其中用于促进建立、控制或终止的装置包括:
用于基于连接请求生成会话控制命令的装置,其中会话控制命令与远程桌面显示协议兼容;以及
用于经由远程桌面客户端利用远程桌面显示协议促进将会话控制命令传送到远程桌面服务器的装置。
27.根据第26条所述的设备,其中会话控制命令包括下述的至少一个:用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
28.根据第20条所述的方法,进一步包括:
用于从图形绘制命令提取坐标的装置;以及
用于基于图形绘制命令更新离屏位图的至少一部分的装置,其中所述离屏位图的至少一部分与坐标相关联,其中所述离屏位图代表远程桌面的整个图像。
29.根据第20条所述的设备,其中所述设备包括编码转换服务器。
30.根据第20条所述的设备,其中所述设备包括处理系统和存储器。
下面示出用于经由适于编码转换服务器的超文本传输协议(HTTP)处理器和远程桌面客户端适配器来促进从客户端设备处的网页浏览器实时地访问和控制远程计算机远程桌面的方法/设备/机器可读存储介质(作为条款描述)。
例如根据以下描述的各个方面来说明本发明主题的技术。为了简便,使用编号的条款(1,2,3等等)来描述本发明主题技术的各个方面的各个实例。这些方面是作为实例来提供的且对本发明主题的技术并没有限制作用。应当指出,任何从属条款可以任何组合相结合,并放置到相应的独立条款中,例如,第1、10、和18条。下面的第1条例如参照附图15A-15E呈现。其它条款可以类似的方式来呈现。
1.一种机器可读存储介质(例如参见图15A中的第1500-A项),其包括用于经由适于编码转换服务器(例如参见图3A中的330)的超文本传输协议(HTTP)处理器(例如参见图4A中的422)和远程桌面客户端适配器(例如参见图4B中的430)来促进从客户端设备(例如参见图3A中的310)处的网页浏览器(例如参见图5中的500)实时地访问和控制远程计算机(例如参见图3A中的320)远程桌面的代码,所述机器可读存储介质包括:
HTTP处理器(例如参见图15A中的第1502-A项);
远程桌面客户端适配器(例如参见图15A中的第1504-A项);
其中HTTP处理器配置成利用HTTP从网页浏览器接收连接请求和用户输入请求,以便将连接请求和用户输入请求提供到远程桌面客户机适配器,以及以便响应于来自网页浏览器的绘图请求将网页浏览器绘图更新提供到网页浏览器,其中所述网页浏览器绘图更新与网页浏览器是兼容的;
其中所述远程桌面客户端适配器配置成接收连接请求和用户输入请求,将连接请求转译成与远程桌面显示协议兼容的会话控制命令,以及将用户输入请求转译成与远程桌面显示协议兼容的远程桌面输入命令;
其中远程桌面客户端适配器配置成促进将会话控制命令提供到远程桌面客户端,以便将会话控制命令提供到远程计算机的远程桌面服务器以及以便建立、控制或终止与远程桌面服务器的远程桌面会话;
其中远程桌面客户端适配器配置成促进将远程桌面输入命令提供到远程桌面客户端,以便将远程桌面输入命令提供到远程桌面服务器;
其中远程桌面客户端适配器配置成响应于远程桌面输入命令经由远程桌面客户端从远程桌面服务器接收远程桌面绘图命令,其中远程桌面绘图命令与远程桌面显示协议兼容;
其中远程桌面客户端适配器配置成将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令,以及基于图形绘制命令更新代表整个远程桌面的图像和坐标的一部分;以及
其中所述HTTP处理器配置成基于图像的经过更新的部分生成图像文件,以及响应于绘图请求基于坐标获取绘图坐标,其中网页浏览器绘图更新包括图像文件和绘图坐标;
其中所述远程桌面绘图命令代表整个远程桌面的一部分;
其中所述远程桌面显示协议是推式协议,以及HTTP是拉式协议。
2.根据第1条所述的机器可读存储介质,其中所述用户输入请求包括鼠标事件、键盘事件、触摸屏事件中的至少一个。
3.根据第1条所述的机器可读存储介质,其中所述会话控制命令涉及建立或控制远程桌面客户端和远程桌面服务器之间的连接,且包括下述的至少一个:用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
4.根据第1条所述的机器可读存储介质,其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,以及其中所述网页浏览器是HTML5兼容的。
5.根据第1条所述的机器可读存储介质,其中所述远程桌面客户端适配器配置成将图像和坐标放置到绘图命令队列中;
其中所述机器可读存储介质还包括长轮询处理器;
其中所述长轮询处理器配置成利用HTTP从网页浏览器接收绘图请求,如果图像的坐标正在绘图命令队列中等待处理则将绘图请求转发到HTTP处理器,如果在绘图命令中没有等待处理的图像坐标,则将绘图请求放置到绘图请求队列中;
其中绘图命令队列配置成如果绘图命令队列接收到包含图像和适于图像的坐标的新的绘图命令,则将通知发送到绘图请求队列。
6.根据第1条所述的机器可读存储介质,还包括绘图命令队列,其配置成响应于来自绘图命令队列的绘图命令正在等待网页浏览器处理的通知而将绘图请求转发到HTTP处理器。
7.根据第1条所述的机器可读存储介质,其中所述HTTP处理器配置成将绘图坐标放置到HTTP标头的一部分内,其中所述HTTP处理器配置成促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器,以便在网页浏览器处绘制显示图像,其中所述显示图像表示代表整个远程桌面的图像的经过更新的部分。
8.根据第1条所述的机器可读存储介质,其中所述HTTP处理器配置成如果来自网页浏览器的连接请求包括要连接到远程计算机的请求则促进将与网页浏览器兼容的脚本客户端编码提供到网页浏览器。
9.包括第1条所述的机器可读存储介质的一种计算机,其中所述计算机是编码转换服务器。
10.利用编码转换服务器(例如参见图3A中的330)来促进从客户端设备(例如参见图3A中的310)处的网页浏览器(例如参见图5中的500)实时地访问和控制远程计算机(例如参见图3A中的320)远程桌面的方法(例如参见图15B的第1500-B项和图15C的第1500-C项),所述方法包括:
在编码转换服务器处利用HTTP从网页浏览器接收连接请求(例如参见图15B中的第1502-B项);
在编码转换服务器处将连接请求转译成到与远程桌面显示协议兼容的会话控制命令(例如参见图15B中的第1504-B项);
将会话控制命令提供到编码转换服务器的远程桌面客户端,以便将会话控制命令提供到远程计算机的远程桌面服务器,以及以便建立、控制或终止与远程桌面服务器的远程桌面会话(例如参见图15B中的第1506-B项);
在编码转换服务器处利用HTTP从网页浏览器接收用户输入请求(例如参见图15B中的第1508-B项);
在编码转换服务器处将用户输入请求转译成与远程桌面显示协议兼容的远程桌面输入命令(例如参见图15B中的第1510-B项);
将远程桌面输入命令提供到远程桌面客户端,以便将远程桌面输入命令提供到远程桌面服务器(例如参见图15B中的第1512-B项);
响应于远程桌面输入命令在编码转换服务器处经由远程桌面客户端从远程桌面服务器接收远程桌面绘图命令,其中远程桌面绘图命令与远程桌面显示协议兼容,其中所述远程桌面绘图命令代表远程桌面整个图像的一部分(例如参见图15C中的第1502-C项);
在编码转换服务器处将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令(例如参见图15C中的第1504-C项);
在编码转换服务器处基于图形绘制命令更新图像和坐标的一部分(例如参见图15C中的第1506-C项);
在编码转换服务器处基于图像的经过更新的部分生成图像文件(例如参见图15C中的第1508-C项);
基于坐标获取绘图坐标(例如参见图15C中的第1510-C项);以及
响应于来自网页浏览器的绘图请求促进将网页浏览器绘图更新提供到网页浏览器,其中网页浏览器绘图更新包括图像文件和绘图坐标,以及其中网页浏览器绘图更新与网页浏览器兼容(例如参见图15C中的第1512-C项);
其中所述远程桌面绘图命令代表整个远程桌面的一部分,以及所述图像代表整个远程桌面;
其中所述远程桌面显示协议是推式协议,而HTTP是拉式协议。
11.根据第10条所述的方法,其中所述用户输入的请求包括鼠标事件、键盘事件、触摸屏事件中的至少一个。
12.根据第10条所述的方法,其中会话控制命令包括下述的至少一个:
用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
13.根据第10条所述的方法,其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,其中所述网页浏览器是HTML5兼容的。
14.根据第10条所述的方法,其中所述更新图像和坐标的一部分包括将图像和坐标的所述部分存储到绘图命令队列中;
其中所述方法进一步包括:
利用HTTP从网页浏览器接收绘图请求;
如果图像的坐标正在绘图命令队列中等待处理则将绘图请求转发到HTTP处理器;
如果在绘图命令中没有等待处理的图像坐标,则将绘图请求放置到绘图请求队列中;
其中所述方法进一步包括:
如果绘图命令队列接收到包括图像和适于图像的坐标的新的绘图命令则发送通知到绘图请求队列。
15.根据第10条所述的方法,还包括响应于来自绘图命令队列的绘图命令正在等待网页浏览器处理的通知而将绘图请求转发到HTTP处理器。
16.根据第10条所述的方法,还包括将绘图坐标放置到HTTP标头的一部分内,其中促进提供网页浏览器绘图更新包括促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器,以便在网页浏览器处绘制显示图像,其中所述显示图像表示代表整个远程桌面的图像的经过更新的部分。
17.根据第10条所述的方法,还包括如果来自网页浏览器的连接请求包括要连接到远程计算机的请求则促进将与网页浏览器兼容的脚本客户端编码提供到网页浏览器。
18.用于促进从客户端设备(例如参见图3A中的310)处的网页浏览器(例如参见图5中的500)实时地访问和控制远程计算机(例如参见图3A中的320)远程桌面的编码转换服务器(例如参见图15D的第1500-D项和图15E的第1500-E项),所述编码转换服务器包括:
用于利用HTTP从网页浏览器接收连接请求的装置(例如参见图15D中的第1502-D项);
用于将连接请求转译成到与远程桌面显示协议兼容的会话控制命令的装置(例如参见图15D中的第1504-D项);
用于将会话控制命令提供到编码转换服务器的远程桌面客户端的装置,以便将会话控制命令提供到远程计算机的远程桌面服务器,以及以便建立、控制或终止与远程桌面服务器的远程桌面会话(例如参见图15D中的第1506-D项);
用于利用HTTP从网页浏览器接收用户输入请求的装置(例如参见图15D中的第1508-D项);
用于将用户输入请求转译成与远程桌面显示协议兼容的远程桌面输入命令的装置(例如参见图15D中的第1510-D项);
用于将远程桌面输入命令提供到远程桌面客户端的装置,以便将远程桌面输入命令提供到远程桌面服务器(例如参见图15D中的第1512-D项);
用于响应于远程桌面输入命令经由远程桌面客户端从远程桌面服务器接收远程桌面绘图命令的装置,其中远程桌面绘图命令与远程桌面显示协议兼容,其中所述远程桌面绘图命令代表远程桌面整个图像的一部分(例如参见图15E中的第1502-E项);
用于将远程桌面绘图命令转译成与编码转换服务器兼容的图形绘制命令的装置(例如参见图15E中的第1504-E项);
用于基于图形绘制命令更新图像和坐标的一部分的装置(例如参见图15E中的第1506-E项);
用于基于图像的经过更新的部分生成图像文件的装置(例如参见图15E中的第1508-E项);
用于基于坐标获取绘图坐标的装置(例如参见图15E中的第1510-E项);以及
用于响应于来自网页浏览器的绘图请求促进将网页浏览器绘图更新提供到网页浏览器的装置,其中网页浏览器绘图更新包括图像文件和绘图坐标,以及其中网页浏览器绘图更新与网页浏览器兼容(例如参见图15E中的第1512-E项);
其中所述远程桌面绘图命令代表整个远程桌面的一部分,以及所述图像代表整个远程桌面;
其中所述远程桌面显示协议是推式协议,而HTTP是拉式协议。
19.根据第18条所述的编码转换服务器,其中所述用户输入的请求包括鼠标事件、键盘事件、触摸屏事件中的至少一个。
20.根据第18条所述的编码转换服务器,其中会话控制命令包括下述的至少一个:用于启动远程桌面会话的命令,用于停止远程桌面会话、认证、设置、首选项的命令,以及用于通过至少一个认证、设置和首选项的命令。
21.根据第18条所述的编码转换服务器,其中所述图形绘制命令是Java图形绘制命令,其中所述编码转换服务器是Java编码转换服务器,其中所述网页浏览器是HTML5兼容的。
22.根据第18条所述的编码转换服务器,其中用于所述更新图像和坐标的一部分的装置包括用于将图像和坐标的所述部分存储到绘图命令队列中的装置;
其中所述编码转换服务器进一步包括:
用于利用HTTP从网页浏览器接收绘图请求的装置;
如果图像的坐标正在绘图命令队列中等待处理则用于将绘图请求转发到HTTP处理器的装置;
如果在绘图命令中没有等待处理的图像坐标,则用于将绘图请求放置到绘图请求队列中的装置;以及
其中所述编码转换服务器进一步包括:
如果绘图命令队列接收到包括图像和适于图像的坐标的新的绘图命令则用于发送通知到绘图请求队列的装置。
23.根据第18条所述的编码转换服务器,还包括用于响应于来自绘图命令队列的绘图命令正在等待网页浏览器处理的通知而将绘图请求转发到HTTP处理器的装置。
24.根据第18条所述的编码转换服务器,还包括用于将绘图坐标放置到HTTP标头的一部分内的装置,其中用于促进提供网页浏览器绘图更新的装置包括用于促进在单次HTTP传输响应中将图像文件和绘图坐标一起提供到网页浏览器的装置,以便在网页浏览器处绘制显示图像,其中所述显示图像表示代表整个远程桌面的图像的经过更新的部分。
25.根据第18条所述的编码转换服务器,还包括如果来自网页浏览器的连接请求包括要连接到远程计算机的请求则用于促进将与网页浏览器兼容的脚本客户端编码提供到网页浏览器的装置。
26.一种处理器,其包括配置成用于执行在PCT申请原始公开文本的段落[0132]-[0143]中的任一项前述条款所述方法的模块。
27.一种机器可读存储介质,其包括用于使得编码转换服务器执行在PCT申请原始公开文本的段落[0132]-[0143]中的任一项前述条款所述方法的编码。
28.根据第27条所述的机器可读存储介质,其中所述编码转换服务器包括机器可读存储介质。
29.一种设备,其包括用于执行在PCT申请原始公开文本的段落[0132]-[0143]中的任一项前述条款所述方法的装置。
30.根据第29条所述的设备,其中所述设备包括编码转换服务器。
31.根据第29条所述的设备,其中所述设备包括处理系统和存储器。
33.一种设备,其包括可操作来执行在PCT申请原始公开文本的段落[0132]-[0143]中的任一项前述条款所述方法的组件。
34.根据第33条所述的设备,其中所述设备包括编码转换服务器。
35.根据第33条所述的设备,其中所述设备包括处理系统和存储器。
本技术领域的那些技术人员应该理解本文所述的各种示例性的块,模块,元件,组件,方法和算法可作为电子硬件,计算机软件,或两者的组合来实施。
例如,模块(例如,网络应用程序服务器(容器),长轮询处理器模块,长轮询处理器,绘制请求队列,HTTP处理器,图像转换模块,绘图命令队列,远程桌面客户端适配器,远程桌面客户端,远程桌面服务器,或其它模块或功能)可作为电子硬件,计算机软件,或两者的组合来实施。在某些方面,模块可被认为是用于完成一项或多项功能或步骤的装置。在一个方面,因为模块可包括编码或存储在机器可读介质上、另一设备上、或者在其一部分上的指令,因此模块可以是一种设备。在一个方面,模块可以是存储于机器可读介质内且由处理系统或处理器执行的软件(例如,应用程序,子程序)。在另一个方面,模块可以是硬件(例如,编码有指令的机器可读介质,例如具有ASIC或FPGA的预编程的通用目的计算机,或特殊用途的电子或光学设备)。
为了说明硬件和软件的这种可互换性,在上文中大体根据其功能描述了各种示例性块,模块,元件,组件,方法和算法。此类功能是否是以硬件还是软件施取决于对整个系统所施加的特定应用和设计约束。熟练的技术人员可针对每一特定应用来以不同的方式实施所述的功能。
在本公开的一个方面,当操作或功能(例如,创建,发送,接收,提供,建立,显示,通知,接受,选择,控制,发出命令,传输,报告,推送,或任何其它操作或功能)描述为由模块或组件来执行时,应该理解这种操作或功能由模块或组件直接或间接地执行。作为一个实例,当模块描述为执行一个操作时,应该理解该模块可直接地执行该操作,或可间接地执行该操作,例如通过促进这种操作。例如,当会话描述为由模块建立时,应该理解该模块可通过促进建立会话而间接地建立会话。作为又一个实例,当图像描述为由模块显示或呈现时,应该理解图像可由模块直接或间接地显示或呈现。
各种组件和块可不同地布置(例如,以不同的顺序布置,或以不同的方式划分),但是所有不脱离本发明主题技术的范围。在本公开的一个方面,所附权利要求中所述的模块(或元件)可由一个模块或由更小数目的模块来执行,且这种布置在权利要求的范围内。在另一个方面,所附权利要求中所述的模块(或元件)可由较大数目的模块来执行,且这种布置也在权利要求的范围内。在又一个方面,所附权利要求中所述的模块(或元件)可由多个模块来执行,且这种布置也在权利要求的范围内。
应该理解在所公开过程中步骤的特定顺序或层次是示例性方法的举例说明。根据设计偏好,应当理解过程中步骤的特定顺序或层次可以被重新布置。一些步骤可以同时执行。所附方法要求以示范顺序呈现各个步骤的元素,但这不意味着被限制到具体顺序或层次。
提供前面的描述以便使得本领域的任何技术人员能够实践本文所述的各个方面。前面的描述提供本发明主题技术的各种实例,但是本发明主题技术并不限于这些实例。对这些方面的各种修改对于本技术领域的技术人员而言是显而易见的,且本文所限定的一般原理可应用于其它方面。因此,权利要求并不意旨限于本文所示的各个方面,而是应被赋予与权利要求文字语言相一致的全部范围,其中使用单数对元素(例如,命令,调用命令,处理器,设备,机器等)的参考并不意旨意味着“一个且仅一个”,除非进行如此的特别声明,否则就是“一个或多个”。除非另外特别地说明,否则术语“一些”指代一个或多个。男性代词(例如他的)包括女性和中性(例如,她的和其的),反之亦然。标题和副标题(如果有的话)仅仅是为了方便使用,而并不限制本发明。
诸如“方面”的措辞并不意味着该方面是本发明主题技术必不可少的,或并不意味着该方面适用于本发明主题技术的所有配置。关于方面的公开可适用于所有配置,或一种或多种配置。一个方面可以提供本公开的一个或多个实例。诸如方面的措辞可指代一个或多个方面,反之亦然。诸如“实施例”的措辞并不意味着该实施例是本发明主题技术必不可少的,或并不意味着该实施例适用于本发明主题技术的所有配置。关于实施例的公开可适用于所有实施例,或一个或多个实施例。实施例可提供本公开的一个或多个实例。诸如实施例的措辞中可指代一个或多个实施例,反之亦然。诸如“配置”的措辞并不意味着该配置是本发明主题技术必不可少的,或并不意味着该配置适用于本发明主题技术的所有配置。关于配置的公开可适用于所有配置,或一种或多种配置。配置可提供本公开的一个或多个实例。诸如配置的措辞可指代一种或多种配置,反之亦然。
本文所用的词语“示例性”意味着“用作实例或举例说明”。本文中描述为“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。
在一个方面,术语“兼容”可在一定意义上使用,即第一元件(例如,绘图命令,输入调用命令,输入命令,连接请求,绘图请求等)与第二元件(例如,远程桌面显示协议,远程桌面客户端,远程桌面服务器,编码转换服务器,网页浏览器,客户端设备,远程计算机,HTML5,HTTP等)兼容,使得第一元件可由第二元件认知到或理解,可以由所述第二元件处理,或可由第二元件利用或与第二元件一起使用。
与在本公开中通篇描述的对于本技术领域的那些普通技术人员而言是已知的或以后获知的各个方面元素等同的所有结构和功能明确地通过引用并入本文,且意旨由权利要求所涵盖。此外,本文所公开的内容并不意旨要贡献给公众,无论这种公开是否在权利要求中明确地陈述。不应当根据35U.S.C.§112第6段的规定来解释权利要求的元素,除非该元素使用措辞“适于……的装置”来明确陈述,或者在方法权利要求的情况下,该元素使用措辞“用于……的步骤”来明确陈述。此外,就在说明书或权利要求书中使用的术语“包含”、“具有”等而言,这种术语意旨以类似于术语“包括”的方式而为包括性的,因为“包括”在权利要求中用作过渡词时是解释性的。

Claims (19)

1.经由编码转换服务器和利用适于远程桌面会话绘图的超文本传输协议HTTP的HTTP标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的方法,所述方法包括:
在编码转换服务器处从客户端设备处的网页浏览器接收绘图请求;
在编码转换服务器处利用远程桌面显示协议从远程计算机接收远程桌面绘图命令,其中远程桌面绘图命令基于远程计算机远程桌面的图像;
在编码转换服务器处将远程桌面绘图命令转译成显示图像和适于显示图像的绘图坐标;其中该转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
响应于Java图形绘制命令更新远程桌面的Java图形位图的一部分;
从Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图经过更新的部分生成与网页浏览器兼容的显示图像;以及
基于适于Java位图的经过更新部分的坐标获取适于显示图像的绘图坐标;
在编码转换服务器处将绘图坐标放置到小型文本文件Cookie内;以及
以单次HTTP响应将所述显示图像和所述绘图坐标一起提供到所述网页浏览器,其中该单次HTTP响应包括所述小型文本文件Cookie;
其中所述远程桌面显示协议为推式协议;以及
其中所述HTTP为拉式协议。
2.根据权利要求1所述的方法,
其中所述显示图像和绘图坐标与HTML兼容;
其中Java图形位图的经过更新的部分代表远程计算机远程桌面的整个图像的一部分;
其中所述显示图像和绘图坐标代表远程计算机远程桌面的整个图像的一部分;以及
其中所述编码转换服务器包括与Java兼容的网络应用程序服务器。
3.根据权利要求1所述的方法,其中所述显示图像和绘图坐标与HTML5兼容。
4.根据权利要求1所述的方法,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
5.根据权利要求1所述的方法,其中所述远程桌面绘图命令包括相对于前一远程桌面绘图命令已经改变的远程桌面区域的坐标。
6.根据权利要求5所述的方法,其中所述坐标指定重新绘制区域。
7.根据权利要求1所述的方法,其中所述绘图坐标与网页浏览器的JavaScript客户端编码是兼容的,以及其中所述显示图像与网页浏览器的HTML兼容。
8.根据权利要求1所述的方法,其中所述显示图像包括远程桌面的缩放图像。
9.根据权利要求1所述的方法,其中所述显示图像包括远程桌面的偏移图像。
10.用于经由编码转换服务器和利用适于远程桌面会话绘图的超文本传输协议HTTP的HTTP标头促进在客户端设备的网页浏览器和远程计算机之间进行远程桌面会话的设备,所述设备包括:
用于从客户端设备处的网页浏览器接收绘图请求的装置;
用于利用远程桌面显示协议从远程计算机接收远程桌面绘图命令的装置,其中远程桌面绘图命令基于远程计算机远程桌面的图像;
用于将远程桌面绘图命令转译成显示图像和适于显示图像的绘图坐标的装置;其中该转译包括:
将远程桌面绘图命令转译成Java图形绘制命令;
响应于Java图形绘制命令更新远程桌面的Java图形位图的一部分;
从Java图形绘制命令生成适于Java位图的经过更新部分的坐标;
基于Java位图经过更新的部分生成与网页浏览器兼容的显示图像;以及
基于适于Java位图的经过更新部分的坐标获取适于显示图像的绘图坐标;
用于将绘图坐标放置到小型文本文件Cookie的装置;以及
用于以单次HTTP响应将所述显示图像和绘图坐标一起提供到所述网页浏览器的装置,其中该单次HTTP响应包括所述小型文本文件Cookie;
其中所述远程桌面显示协议为推式协议;以及
其中所述HTTP为拉式协议。
11.根据权利要求10所述的设备,
其中所述显示图像和绘图坐标与HTML兼容;
其中Java图形位图的经过更新的部分代表远程计算机远程桌面的整个图像的一部分;
其中所述显示图像和绘图坐标代表远程计算机远程桌面的整个图像的一部分;并且
其中所述编码转换服务器包括与Java兼容的网络应用程序服务器。
12.根据权利要求10所述的设备,其中所述显示图像和绘图坐标与HTML5兼容。
13.根据权利要求10所述的设备,其中编码转换服务器介于远程计算机和客户端设备之间,以及其中编码转换服务器在物理上独立于远程计算机。
14.根据权利要求10所述的设备,其中所述远程桌面绘图命令包括相对于前一远程桌面绘图命令已经改变的远程桌面区域的坐标。
15.根据权利要求14所述的设备,其中所述坐标指定重新绘制区域。
16.根据权利要求10所述的设备,其中所述绘图坐标与网页浏览器的JavaScript客户端编码是兼容的,以及其中所述显示图像与网页浏览器的HTML兼容。
17.根据权利要求10所述的设备,其中所述显示图像包括远程桌面的缩放图像。
18.根据权利要求10所述的设备,其中所述显示图像包括远程桌面的偏移图像。
19.根据权利要求10所述的设备,其中所述设备包括处理系统和存储器。
CN201180067324.1A 2010-12-10 2011-12-09 用于经由http标头来进行远程桌面会话重新绘制的方法和设备 Active CN103430164B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/965,818 US8966376B2 (en) 2010-12-10 2010-12-10 Methods and systems for remote desktop session redrawing via HTTP headers
US12/965,818 2010-12-10
PCT/US2011/064277 WO2012079048A1 (en) 2010-12-10 2011-12-09 Methods and systems for remote desktop session redrawing via http headers

Publications (2)

Publication Number Publication Date
CN103430164A CN103430164A (zh) 2013-12-04
CN103430164B true CN103430164B (zh) 2016-06-22

Family

ID=46200738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180067324.1A Active CN103430164B (zh) 2010-12-10 2011-12-09 用于经由http标头来进行远程桌面会话重新绘制的方法和设备

Country Status (4)

Country Link
US (1) US8966376B2 (zh)
EP (1) EP2649532B1 (zh)
CN (1) CN103430164B (zh)
WO (1) WO2012079048A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966376B2 (en) 2010-12-10 2015-02-24 Wyse Technology L.L.C. Methods and systems for remote desktop session redrawing via HTTP headers
US9244912B1 (en) 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop redrawing session utilizing HTML
US9430036B1 (en) * 2010-12-10 2016-08-30 Wyse Technology L.L.C. Methods and systems for facilitating accessing and controlling a remote desktop of a remote machine in real time by a windows web browser utilizing HTTP
US9535560B1 (en) 2010-12-10 2017-01-03 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session for a web browser and a remote desktop server
US8949726B2 (en) 2010-12-10 2015-02-03 Wyse Technology L.L.C. Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing
US9395885B1 (en) 2010-12-10 2016-07-19 Wyse Technology L.L.C. Methods and systems for a remote desktop session utilizing HTTP header
US9245047B2 (en) 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US8924507B2 (en) * 2011-09-02 2014-12-30 Microsoft Corporation Cross-frame progressive spoiling support for reduced network bandwidth usage
US9268517B2 (en) * 2011-12-07 2016-02-23 Adobe Systems Incorporated Methods and systems for establishing, hosting and managing a screen sharing session involving a virtual environment
US10754699B2 (en) * 2012-08-05 2020-08-25 International Business Machines Corporation Remote provisioning of virtual appliances for access to virtualized storage
US20140089487A1 (en) * 2012-09-27 2014-03-27 Jeremy Debate Control of a remote computer device
JP6341924B2 (ja) * 2012-11-09 2018-06-13 トムソン ライセンシングThomson Licensing ハンドヘルドディスプレイズーム機能
US9363305B2 (en) * 2014-01-30 2016-06-07 Vmware, Inc. Remote contextual access to operating system desktops
US9426203B2 (en) * 2014-06-27 2016-08-23 Microsoft Technology Licensing, Llc Remote application control interface
JP2017529716A (ja) * 2014-07-30 2017-10-05 エントリクス カンパニー、リミテッド クラウドストリーミングサービスシステム、スチールイメージ圧縮技法を利用したクラウドストリーミングサービス方法及びそのための装置
CN104394121B (zh) * 2014-10-31 2018-02-02 小米科技有限责任公司 终端标记方法和装置
WO2016093063A1 (ja) * 2014-12-08 2016-06-16 株式会社リコー 画像管理システム、画像管理方法、及びプログラム
CN105573702A (zh) * 2015-12-16 2016-05-11 广州视睿电子科技有限公司 远程批注移动、缩放的同步方法与系统
US11863622B2 (en) 2017-02-07 2024-01-02 Drumwave Inc. Cross-device data distribution with modular architecture
CN107273151B (zh) * 2017-05-25 2020-11-17 西安理工大学 一种安全的Android App功能插件化方法
CN107295361B (zh) * 2017-06-22 2019-07-19 腾讯科技(深圳)有限公司 一种内容推送方法
CN109936523B (zh) * 2017-12-15 2021-10-12 腾讯科技(深圳)有限公司 跨区域业务处理方法
CN108762762B (zh) * 2018-05-08 2022-03-25 深圳市分期乐网络科技有限公司 会话信息管理方法、装置、设备和计算机存储介质
CN108924951B (zh) * 2018-06-01 2021-11-26 晶晨半导体(上海)股份有限公司 一种信息交互方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5801689A (en) 1996-01-22 1998-09-01 Extended Systems, Inc. Hypertext based remote graphic user interface control system
US7020845B1 (en) 1999-11-15 2006-03-28 Gottfurcht Elliot A Navigating internet content on a television using a simplified interface and a remote control
US6700589B1 (en) 2000-02-17 2004-03-02 International Business Machines Corporation Method, system, and program for magnifying content downloaded from a server over a network
US6831665B2 (en) * 2000-03-21 2004-12-14 Konica Corporation Control system of image processor
US8463912B2 (en) 2000-05-23 2013-06-11 Media Farm, Inc. Remote displays in mobile communication networks
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7191211B2 (en) 2000-10-03 2007-03-13 Raja Tuli Portable high speed internet access device priority protocol
US6854122B1 (en) 2000-12-27 2005-02-08 Intel Corporation Java common information model interface for windows management instrumentation via COM/DCOM
US7293069B2 (en) 2001-02-28 2007-11-06 Hewlett-Packard Development Company, L.P. Method and apparatus for supplying network path bookmark information remotely to a mobile device
ATE358298T1 (de) 2001-07-12 2007-04-15 Research In Motion Ltd System und verfahren zum schieben von daten von einer informationsquelle zu einem mobilen endgerät beinhalten die transcodierung der daten
AUPR947701A0 (en) 2001-12-14 2002-01-24 Activesky, Inc. Digital multimedia publishing system for wireless devices
US8176428B2 (en) 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US20040114176A1 (en) 2002-12-17 2004-06-17 International Business Machines Corporation Editing and browsing images for virtual cameras
JP3940356B2 (ja) 2002-12-27 2007-07-04 日本アイ・ビー・エム株式会社 プロキシ・サーバ、アクセス制御方法、アクセス制御プログラム
US20040190771A1 (en) 2003-03-27 2004-09-30 Michel Eid Integer format for efficient image data processing
US20050256923A1 (en) * 2004-05-14 2005-11-17 Citrix Systems, Inc. Methods and apparatus for displaying application output on devices having constrained system resources
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US8620994B2 (en) 2006-02-23 2013-12-31 Qualcomm Incorporated System and method for scheduling content updates in a content-based application
US7439937B2 (en) * 2006-04-14 2008-10-21 Microsoft Corporation Appropriately rendering terminal server graphical data at multiple client side monitors
US20070260702A1 (en) 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US20100115145A1 (en) 2006-05-26 2010-05-06 Smart Technologies Ulc Plug-and-play device and method of using the same
US7827298B2 (en) 2006-10-20 2010-11-02 Mixpo Portfolio Broadcasting, Inc. Peer-to-web media broadcasting and managing online publisher computers
US20080263010A1 (en) 2006-12-12 2008-10-23 Microsoft Corporation Techniques to selectively access meeting content
US7751807B2 (en) 2007-02-12 2010-07-06 Oomble, Inc. Method and system for a hosted mobile management service architecture
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
US9009603B2 (en) 2007-10-24 2015-04-14 Social Communications Company Web browser interface for spatial communication environments
US8775647B2 (en) 2007-12-10 2014-07-08 Deluxe Media Inc. Method and system for use in coordinating multimedia devices
US8433747B2 (en) 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US8200896B2 (en) 2008-06-06 2012-06-12 Microsoft Corporation Increasing remote desktop performance with video caching
US9223548B2 (en) 2008-09-15 2015-12-29 Apple Inc. Method and apparatus for providing an application canvas framework
US20100274922A1 (en) 2009-03-31 2010-10-28 Reavely Simon System and method for managing long lived connections from a plurality of applications running on a wireless device
US20100268762A1 (en) 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US9185171B2 (en) 2009-04-15 2015-11-10 Wyse Technology L.L.C. Method and system of specifying application user interface of a remote client device
US9459936B2 (en) 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
JP2011108102A (ja) 2009-11-19 2011-06-02 Sony Corp ウェブサーバ、ウェブブラウザおよびウェブシステム
US9875671B2 (en) 2009-12-17 2018-01-23 Google Llc Cloud-based user interface augmentation
US20120066601A1 (en) 2010-09-14 2012-03-15 Apple Inc. Content configuration for device platforms
US9659313B2 (en) 2010-09-27 2017-05-23 Unisys Corporation Systems and methods for managing interactive features associated with multimedia content
US20120078691A1 (en) 2010-09-27 2012-03-29 Johney Tsai Systems and methods for providing multimedia content editing and management tools
US20120079374A1 (en) 2010-09-29 2012-03-29 Apple Inc. Rendering web page text in a non-native font
US9245047B2 (en) 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US8589800B2 (en) 2010-12-10 2013-11-19 Wyse Technology Inc. Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server
US8504654B1 (en) 2010-12-10 2013-08-06 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing long polling
US8966376B2 (en) 2010-12-10 2015-02-24 Wyse Technology L.L.C. Methods and systems for remote desktop session redrawing via HTTP headers

Also Published As

Publication number Publication date
US8966376B2 (en) 2015-02-24
CN103430164A (zh) 2013-12-04
US20120151370A1 (en) 2012-06-14
EP2649532A4 (en) 2016-03-02
WO2012079048A1 (en) 2012-06-14
EP2649532A1 (en) 2013-10-16
EP2649532B1 (en) 2017-05-10

Similar Documents

Publication Publication Date Title
CN103430164B (zh) 用于经由http标头来进行远程桌面会话重新绘制的方法和设备
CN103582510B (zh) 用于利用转码服务器经由HTTP API通过客户端设备处的Web浏览器实时地访问和控制远程机器的远程桌面的方法和系统
CN103430123B (zh) 用于经由html来进行远程桌面会话的方法和系统
CN103460670B (zh) 用于利用http处理器和远程桌面客户端通用接口来进行远程桌面会话的方法和系统
CN105190587B (zh) 利用长期轮询有助于远程桌面会话的方法及系统
US10248374B2 (en) Methods and systems for a remote desktop session utilizing HTTP header

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
TR01 Transfer of patent right

Effective date of registration: 20220526

Address after: Texas, USA

Patentee after: DELL marketing

Address before: California, USA

Patentee before: WYSE TECHNOLOGY Inc.

TR01 Transfer of patent right