CN102521027B - 虚拟桌面系统中的窗口界面传输方法 - Google Patents
虚拟桌面系统中的窗口界面传输方法 Download PDFInfo
- Publication number
- CN102521027B CN102521027B CN 201110396257 CN201110396257A CN102521027B CN 102521027 B CN102521027 B CN 102521027B CN 201110396257 CN201110396257 CN 201110396257 CN 201110396257 A CN201110396257 A CN 201110396257A CN 102521027 B CN102521027 B CN 102521027B
- Authority
- CN
- China
- Prior art keywords
- mouse
- javascript
- client
- server
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种虚拟桌面系统中的窗口界面传输方法,包括以下步骤:(1)客户端向服务器请求启动应用程序,(2)服务器启动应用程序并拦截相应的图形设备接口绘图原语,(3)服务器将拦截的图形设备接口绘图函数翻译成JavaScript代码,(4)服务器把JavaScript代码发送到客户端,(5)客户端执行JavaScript代码,并绘制出应用程序的界面,(6)等待客户对应用程序的界面进行鼠标键盘操作,(7)客户端监听客户对应用程序的鼠标键盘操作,把鼠标键盘操作转化为鼠标键盘事件,并把鼠标键盘事件发送到服务器,(8)服务器根据鼠标键盘事件对应用程序模拟鼠标键盘操作。本发明可以大大降低传输带宽,同时减少网络中的传输延迟,经过优化后可以极大提升用户体验。
Description
技术领域
本发明涉及窗口界面传输领域,具体地说,本发明涉及一种虚拟桌面系统中的窗口界面传输方法。
背景技术
目前比较流行的桌面传输协议有远程桌面协议(Remote DesktopProtocol,简称为RDP)、虚拟网络计算机(Virtual Network Computing,简称为VNC)、瘦客户端网络计算机(Thin-Client Computing,简称为THINC)等,这些协议传输的都是较底层的绘图命令,即绘图原语。其中RDP、THINC传输的是较底层的绘图原语,VNC传输的则是像素级别的绘图原语,由于越底层的绘图原语其数据量越大,可压缩性也越小,会占用过很多的带宽,在不稳定的网络状况下相应的延迟也会很大。为了降低带宽,VNC采用zlib算法(一种数据压缩算法)对图片进行压缩,只发送程序界面发生变化的区域,这些操作都需要时间,会增加程序的响应延迟,而且只能在一定程度上减少带宽。
另一方面,这些桌面传输协议的客户端都是JAVA语言或C++语言实现的,需要在客户端的计算机上安装应用程序,无法直接在网页浏览器中实现。目前的网页应用越来越广泛,应用程序正在朝无端化的方向发展,传统的桌面传输协议不符合这一趋势。
发明内容
本发明的方法在于提供一种虚拟桌面系统中的窗口界面传输方法,其可拦截图形设备接口绘图函数,这样使传输的数据量更小,避免重复的数据发送,可以大大降低传输带宽,同时减少网络中的传输延迟,经过优化后可以极大提升用户体验,同时,在客户端采用JavaScript来重新绘图,由于JavaScript在主流客户端浏览器中的通用性,可以实现多种平台,并且实现无端化,大大方便客户的使用。
本发明是通过以下技术方案实现的:
一种虚拟桌面系统中的窗口界面传输方法,包括以下步骤:(1)客户端向服务器请求启动应用程序,(2)服务器启动应用程序并拦截相应的图形设备接口绘图原语,(3)服务器将拦截的图形设备接口绘图函数翻译成JavaScript代码,具体包括以下子步骤:(3-1)用JavaScript实现绘图函数库,(3-2)根据拦截到的图形设备接口绘图函数的函数名,从JavaScript绘图函数库中选取一个或多个JavaScript函数,(3-3)根据拦截到的图形设备接口绘图函数的实际参数,计算得到各个JavaScript函数的参数,以得到JavaScript代码,(4)服务器把JavaScript代码发送到客户端,(5)客户端执行JavaScript代码,并绘制出应用程序的界面,(6)等待客户对应用程序的界面进行鼠标键盘操作,(7)客户端监听客户对应用程序的鼠标键盘操作,把鼠标键盘操作转化为鼠标键盘事件,并把鼠标键盘事件发送到服务器,(8)服务器根据鼠标键盘事件对应用程序模拟鼠标键盘操作。
服务器拦截的绘图原语是图形设备接口绘图函数。
步骤(1)包括:(1-1)客户在客户端浏览器中输入网址,以访问网站提供的应用程序列表,(1-2)客户在应用程序列表中点击,以选择启动应用程序,(1-3)客户端浏览器使用JavaScript把对应用程序的启动命令通过异步JavaScript和XML发送到网页服务器,(1-4)网页服务器通过套接字将启动命令转发给应用程序服务器上的监控程序。
步骤(4)包括:(4-1)用JavaScript实现绘图函数库,(4-2)根据拦截到的图形设备接口绘图函数的函数名,从绘图函数库中选取一个或多个JavaScript函数,(4-3)根据拦截到的图形设备接口绘图函数的实际参数,计算得到各个JavaScript函数的参数,以得到一个或多个要调用的JavaScript函数以及调用参数,即一段JavaScript代码。
本发明具有以下优点:
1.本发明通过拦截比较上层的绘图原语,可以降低传输带宽和延迟
2.本发明在客户端通过web客户端浏览器实现,可以避免客户安装桌面应用程序。
附图说明
图1为本发明虚拟桌面系统中的窗口界面传输方法的流程图。
图2为本发明方法中步骤(1)的细化流程图。
图3为本发明方法中步骤(3)的细化流程图。
图4为本发明方法中步骤(4)的细化流程图。
具体实施方式
首先,对本发明中使用的专业名词进行解释与定义:
绘图原语:计算机操作系统中的各种绘图指令,
图形设备接口:简称GDI(Graphics Device Interface),负责系统与绘图程序之间的信息交换,并处理所有Windows程序的图形输出。
图形设备接口绘图函数:图形设备接口提供的一些可以实现简单的绘图功能的函数。
异步JavaScript和XML:简称AJAX(Asynchronous JavaScript andXML),是一种创建交互式网页应用的网页开发技术。
套接字:计算机系统中应用程序与TCP/IP协议交互的接口,应用程序通常通过套接字向网络发出请求或者应答网络请求。
JavaScript代码:对一个或多个JavaScript函数的调用代码。
鼠标键盘事件:用户在移动鼠标光标或者点击任意鼠标键或敲击键盘任意键时触发的事件。
钩子:钩子是Windows中提供的一种用以替换中断的系统机制,在对特定的系统事件进行钩子后,一旦发生已钩子事件,对该事件进行钩子的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。
如图1、2、3、4所示,本发明虚拟桌面系统中的窗口界面传输方法包括以下步骤:
(1)客户端向网页服务器请求启动应用程序,该步骤包括:
(1-1)客户在客户端浏览器中输入网址如http://mysite.com:8080,以访问网站提供的应用程序列表;
(1-2)客户在应用程序列表中点击,以选择启动应用程序,具体而言,理论上应用程序应包括图形设备接口支持的所有应用程序,如微软PowerPoint、Windows画图程序、记事本等;
(1-3)客户端浏览器使用JavaScript把对应用程序的启动命令通过异步JAVASCRIPT和XML发送到网页服务器;
(1-4)网页服务器再通过套接字将启动命令转发给应用程序服务器上的监控程序;
(2)应用程序服务器启动应用程序并拦截相应的图形设备接口绘图函数,具体为:当应用程序启动后,应用程序服务器上的监控程序通过全局的钩子,拦截应用程序的主窗口启动,把主窗口所在的进程放入监控列表中,并拦截进程对图形设备接口绘图函数的调用;
(3)应用程序服务器将拦截的图形设备接口绘图函数翻译成JavaScript代码,具体包括以下子步骤:
(3-1)用JavaScript实现绘图函数库,该绘图函数库可以模拟图形设备接口的基本绘图功能,如基本的几何绘图、在指定位置显示图片等;
(3-2)根据拦截到的图形设备接口绘图函数的函数名,从JavaScript绘图函数库中选取一个或多个JavaScript函数;
(3-3)根据拦截到的图形设备接口绘图函数的实际参数,计算得到各个JavaScript函数的参数,以得到一个或多个要调用的JavaScript函数以及调用参数,即一段JavaScript代码;
(4)应用程序服务器把JavaScript代码发送到客户端,步骤如下:
(4-1)应用程序服务器将得到的JavaScript代码发送到网页服务器中;
(4-2)客户端浏览器通过异步JAVASCRIPT和XML轮询网页服务器,以请求数据;
(4-3)网页服务器接收应用程序服务器发送过来的JavaScript代码,并把对应的数据返回给客户端浏览器。
(5)客户端执行JavaScript代码,并绘制出应用程序的界面;
(6)等待客户对应用程序的界面进行鼠标键盘操作;
(7)客户端通过JavaScript监听客户对应用程序的鼠标键盘操作,把鼠标键盘操作转化为鼠标键盘事件,并把鼠标键盘事件发送到网页服务器,网页服务器再把鼠标键盘事件发送到应用程序服务器;
(8)应用程序服务器根据鼠标键盘事件对应用程序模拟鼠标键盘操作。
综上所述,本发明用JavaScript语言模拟绘图函数库,同时通过钩子技术截获目标窗口对图形设备接口绘图函数的调用,把每次调用翻译成对JavaScript绘图函数库中的函数调用代码,并把翻译得到的JavaScript代码发送到客户端,客户端执行收到的JavaScript代码后就可以绘制出目标窗口的界面。同时在客户端通过JavaScript监听鼠标键盘事件,把监听到的事件发送到服务器进行模拟,就可以获取用户输入,使得用户可以远程操控目标窗口。
Claims (2)
1.一种虚拟桌面系统中的窗口界面传输方法,包括以下步骤:
(1)客户端向网页服务器请求启动应用程序,具体包括以下子步骤:
(1-1)客户在客户端浏览器中输入网址,以访问网站提供的应用程序列表;
(1-2)客户在所述应用程序列表中点击,以选择启动应用程序;
(1-3)客户端浏览器使用JavaScript把对所述应用程序的启动命令通过异步JavaScript和XML发送到所述网页服务器;
(1-4)所述网页服务器通过套接字将所述启动命令转发给应用程序服务器上的监控程序;
(2)应用程序服务器启动所述应用程序并拦截相应的图形设备接口绘图函数;
(3)所述应用程序服务器将拦截的图形设备接口绘图函数翻译成JavaScript代码,具体包括以下子步骤:
(3-1)用JavaScript实现绘图函数库;
(3-2)根据拦截到的图形设备接口绘图函数的函数名,从所述JavaScript绘图函数库中选取一个或多个JavaScript函数;
(3-3)根据拦截到的图形设备接口绘图函数的实际参数,计算得到各个JavaScript函数的参数,以得到所述JavaScript代码;
(4)所述应用程序服务器把所述JavaScript代码发送到所述客户端;
(5)所述客户端执行所述JavaScript代码,并绘制出所述应用程序的界面;
(6)等待客户对所述应用程序的界面进行鼠标键盘操作;
(7)所述客户端监听客户对所述应用程序的鼠标键盘操作,把所述鼠标键盘操作转化为鼠标键盘事件,并把所述鼠标键盘事件发送到所述应用程序服务器;
(8)所述应用程序服务器根据所述鼠标键盘事件对所述应用程序模拟鼠标键盘操作。
2.根据权利要求1所述的窗口界面传输方法,其特征在于,所述步骤(4)包括:
(4-1)所述应用程序服务器将得到的JavaScript代码发送到所述网页服务器中;
(4-2)所述客户端浏览器通过异步JavaScript和XML轮询所述网页服务器,以请求数据;
(4-3)所述网页服务器接收所述应用程序服务器发送过来的JavaScript代码,并把对应的数据返回给所述客户端浏览器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110396257 CN102521027B (zh) | 2011-12-02 | 2011-12-02 | 虚拟桌面系统中的窗口界面传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110396257 CN102521027B (zh) | 2011-12-02 | 2011-12-02 | 虚拟桌面系统中的窗口界面传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521027A CN102521027A (zh) | 2012-06-27 |
CN102521027B true CN102521027B (zh) | 2013-10-30 |
Family
ID=46291962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110396257 Expired - Fee Related CN102521027B (zh) | 2011-12-02 | 2011-12-02 | 虚拟桌面系统中的窗口界面传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521027B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929610B (zh) * | 2012-10-12 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种基于vnc和jnlp协议实现远程桌面的方法 |
CN103049262B (zh) * | 2012-12-12 | 2016-02-03 | 广州尚融网络科技有限公司 | 基于远程帧缓存的窗口还原方法 |
CN103051695B (zh) * | 2012-12-13 | 2015-12-02 | 广东好帮手电子科技股份有限公司 | 一种利用手机对车载应用软件进行信息输入的方法及系统 |
CN104158696B (zh) * | 2013-05-13 | 2018-03-06 | 华为技术有限公司 | 一种测量操作延时的确定方法、装置及终端 |
CN104348878A (zh) * | 2013-08-06 | 2015-02-11 | 好看科技(深圳)有限公司 | 用于远程控制移动终端的方法、装置、移动终端及系统 |
CN103577237B (zh) * | 2013-11-15 | 2017-09-05 | 北京奇虎科技有限公司 | 应用程序启动的控制方法及装置 |
CN104144212B (zh) * | 2014-07-16 | 2017-12-26 | 福建星网锐捷网络有限公司 | 一种虚拟桌面图像传输方法、装置及系统 |
CN107203408B (zh) | 2016-03-17 | 2021-02-23 | 华为技术有限公司 | 重定向的方法、装置和系统 |
CN107592283B (zh) * | 2016-07-06 | 2021-06-29 | 中兴通讯股份有限公司 | 一种移动终端的协助方法及移动终端 |
CN106302746A (zh) * | 2016-08-17 | 2017-01-04 | 陆阳 | 一种可供多个客户端基于云服务调用软件的方法 |
CN108021425B (zh) * | 2017-12-28 | 2020-11-03 | 南开大学 | 一种集成多个应用图形窗口的虚拟桌面系统及运行方法 |
CN109791444A (zh) * | 2018-06-27 | 2019-05-21 | 华为技术有限公司 | 调用输入法的方法和装置、服务器和终端 |
CN109087459A (zh) * | 2018-06-28 | 2018-12-25 | 深圳市智莱科技股份有限公司 | 一种在智能储物柜上快速存取物品的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549978A (zh) * | 2001-07-16 | 2004-11-24 | BEAϵͳ��˾ | 用于会话复制和故障切换的方法和装置 |
CN101901274A (zh) * | 2010-08-11 | 2010-12-01 | 深圳市茁壮网络股份有限公司 | 实现页面特效的方法及装置 |
CN101996093A (zh) * | 2009-08-10 | 2011-03-30 | 日电(中国)有限公司 | 将桌面应用转换为网络应用的方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446109B2 (en) * | 1998-06-29 | 2002-09-03 | Sun Microsystems, Inc. | Application computing environment |
CA2298003A1 (en) * | 2000-02-04 | 2001-08-04 | Ibm Canada Limited-Ibm Canada Limitee | Scripting task-level user interfaces |
CN101763263A (zh) * | 2010-01-04 | 2010-06-30 | 山东浪潮齐鲁软件产业股份有限公司 | 一种基于web的业务组件可视化开发工具的配置方法 |
-
2011
- 2011-12-02 CN CN 201110396257 patent/CN102521027B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549978A (zh) * | 2001-07-16 | 2004-11-24 | BEAϵͳ��˾ | 用于会话复制和故障切换的方法和装置 |
CN101996093A (zh) * | 2009-08-10 | 2011-03-30 | 日电(中国)有限公司 | 将桌面应用转换为网络应用的方法和系统 |
CN101901274A (zh) * | 2010-08-11 | 2010-12-01 | 深圳市茁壮网络股份有限公司 | 实现页面特效的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102521027A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521027B (zh) | 虚拟桌面系统中的窗口界面传输方法 | |
JP7194162B2 (ja) | データ処理方法、装置、電子機器及び記憶媒体 | |
JP6092381B2 (ja) | ウェブクライアントを介したリモートアプリケーションへのアクセスを提供する方法、システム、及びコンピュータ読取可能記憶媒体 | |
AU775740B2 (en) | A system and method for providing immediate visual response to user input at a client system | |
JP7232866B2 (ja) | ミニプログラム処理方法、サーバー、設備、記憶媒体、及びプログラム | |
US11277500B2 (en) | Integration of a standard network protocol layer in a web browser by compilation to webassembly and use of a websocket | |
US10318359B2 (en) | Techniques to remotely access object events | |
WO2007007949A1 (en) | A method and system of computer remote control that optimized for low bandwidth network and low level personal communication terminal device | |
CN111625738A (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
CN101676875A (zh) | Linux终端无缝访问远程Windows应用程序的方法及其装置 | |
CN103281331A (zh) | 一种windows客户端登陆远程服务器桌面的方法 | |
CN110704920A (zh) | 一种基于Revit模型的在线轻量化方法和系统 | |
CN102117294A (zh) | 一种基于ajax技术的信息系统 | |
US8766990B1 (en) | Server computing system for and method of providing cross-platform remote access to 3D graphics applications | |
AU2016101498B4 (en) | Data Interchange System | |
US8171127B2 (en) | Systems and methods for response monitoring | |
CN105095070B (zh) | 基于浏览器测试组件的qq群数据获取方法与系统 | |
CN104580392B (zh) | 一种用于维持长连接的方法、装置与设备 | |
US20130339871A1 (en) | Software Application Abstraction System and Method | |
KR101316677B1 (ko) | 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법 | |
CN111506399B (zh) | 任务迁移方法、装置、电子设备及存储介质 | |
CN111522599A (zh) | 用于发送信息的方法和装置 | |
JP6378601B2 (ja) | コンテンツ解析装置、コンテンツ解析方法、及びプログラム | |
CN103701849A (zh) | 用于通过用户设备对移动设备进行操作的方法与设备 | |
CN114938367B (zh) | 批量作业处理方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131030 Termination date: 20201202 |
|
CF01 | Termination of patent right due to non-payment of annual fee |