基于远程帧缓存的窗口还原方法

文档序号:6384068阅读:452来源:国知局
专利名称:基于远程帧缓存的窗口还原方法
技术领域
本发明涉及通信领域,具体涉及一种基于远程帧缓存的窗口还原方法。
背景技术
如图1所述,为传统的远程帧缓存技术总体框架的示意图。远程帧缓存技术,国际上通常称之为RFB技术,它是一种可以访问远程计算机桌面环境的成熟技术,RFB技术在unix/linux等操作系统上的应用主要是基于xll标准的可视化环境。RFB技术包括了桌面图像的采集、编码、传输、解码及还原等相关环节。针对远程服务器端的桌面图像信息将远程服务器端的图像帧缓存数据从Xll数据生成层(最底层)中提取出来,经过编码层的编码后经过服务器端的网络通讯层传输到本地客户端的客户端网络层,经过本地客户端的解码层的解码后,在本地进行显示,从而将远程服务器端的桌面图像信息虚拟到本地客户端上进行显示。针对本地客户端的控制信息采集本地客户端通过输入装置(如键盘、鼠标)输入的控制信息,经过编码层编码后通过客户端网络层传输到远程服务器端的网络通讯层,在服务器端经过解码后通过Xll层窗口管理器对控制信息进行解析,并对桌面图像进行操作。当然,服务器端的本地输入装置(如本地键盘、鼠标等)也可以对服务器端的桌面图像进行控制,本地输出装置(如显示器)也可以对服务器端的桌面图像进行显示输出。然而,远程帧缓 存技术只能提供远程桌面图像信息,而不能从桌面图像信息中提取窗口信息,即,不能在本地客户端上还原应用程序的窗口,使得在客户端对服务器端应用程序的操控感受不能像在服务器端一样真实。

发明内容
针对上述问题,本发明的目的在于提供一种基于远程帧缓存的窗口还原方法,使得在本地客户端虚拟化远程服务器端的应用程序变得切实可行。为实现上述目的,本发明采用如下技术方案
基于远程帧缓存的窗口还原方法,包括步骤
步骤A :从服务器端的Xll数据生成层提取图像帧缓存数据;
步骤B 从服务器端的Xl I层窗口管理器捕获应用窗口信息数据,所述应用窗口信息数据包括服务器端正在运行的所有应用程序窗口的ID、坐标、状态及类型;
步骤C :将所述图像帧缓存数据和应用窗口信息数据从服务器端传输至本地客户端;步骤D :在本地客户端中根据所述图像帧缓存数据和应用窗口信息数据还原出远程正在运行的应用程序窗口图像。
本发明的有益效果在于
基于现有的远程帧缓存技术,在图像帧缓存数据中利用窗口信息,使得在本地客户端上能够虚拟化远程应用程序,从而能够控制应用程序本身,而不是桌面本身,从而实现应用程序的虚拟化。


图1为传统的远程帧缓存技术总体框架的示意 图2为实现本发明的基于远程帧缓存的窗口还原方法的总体框架示意 图3为本发明的基于远程帧缓存的窗口还原方法的流程 图4为本发明的基于远程帧缓存的窗口还原方法中对服务器端的窗口程序进行控制的流程图。
具体实施例方式下面,结合附图以及具体实施方式
,对本发明做进一步描述
如图2所示,为实现本发明的基于远程帧缓存的窗口还原方法的总体框架示意图。相对于现有技术的远程帧缓存技术总体框架,本发明的基于远程帧缓存的窗口还原方法包括步骤(结合图2的步骤1-5和图3):
步骤301 :从服务器端的Xll数据生成层提取图像帧缓存数据;
步骤302 从服务器端的Xl I层窗口管理器捕获应用窗口信息数据,所述应用窗口信息数据包括窗口的ID、坐标、状态及类型等;其中,窗口的ID为窗口的唯一标识,窗口的坐标为窗口在桌面上的坐标位置,窗口的状态主要涉及窗口是否可显,是否激活,窗口的父子关系等,窗口的类型包括对话框窗口、弹出式菜单窗口、下拉式菜单窗口、工具栏窗口、组合框窗口等共15种窗口类型。通过以上几种信息,我们就可以将一窗口从xll层窗口管理器中提取出来,然后,把这些信息附加到只有桌面图像信息的RFB实现中,就可以在RFB图像数据中还原出窗口,而且,窗口信息的提取工作与窗口在远程服务器端的运行过程同步进行,保证了信息的高度实时性。在其他实施方式中,为了使窗口在本地客户端与在远程服务器端有完全一致的虚拟,所述的应用窗口信息数据还可以进一步包括窗口的图标和窗口的标题,窗口的图标即应用程序中设定的窗口图标,一般在窗口的左上方或右上方显不,窗口的标题为应用程序中设定的窗口标题,一般在窗口的上方显示,从而根据所有应用窗口信息数据即可将远程服务器端正在运行的应用程序完整虚拟到本地客户端上。步骤303 :将所述图像帧缓存数据和应用窗口信息数据从服务器端传输至本地客户端;
步骤304 :在本地客户端中根据所述图像帧缓存数据和应用窗口信息数据还原出远程正在运行的应用程序窗口图像。在步骤302中,针对处于不同生命周期的窗口,从服务器端的Xll层窗口管理器捕获所述窗口的应用窗口信息数据,其中,窗口的生命周期包括窗口的创建、窗口的设置、窗口的显示、窗口的隐藏、窗口的关闭及窗口的销毁。
进一步地,在本实施方式中,针对步骤303,服务器端先将所述图像帧缓存数据和应用窗口信息数据进行编码后再进行传输,本地客户端在接收到编码的图像帧缓存数据和应用窗口信息数据后进行解码,步骤304中根据解码后的图像帧缓存数据和应用窗口信息数据还原出远程正在运行的应用程序窗口图像。在步骤304中,将所述图像帧缓存数据根据应用窗口信息数据中的窗口坐标进行切割,取出特定位置上的图像数据,并放至本地客户端的相应窗口中,还原出对应的远程应用程序窗口图像。由于窗口信息数据和图像帧缓存数据都具有高度的实时性,所以,本地客户端上的远程窗口 “看上去”就像一个真正的本地应用窗口。 上述描述只是涉及到如何将服务器端的窗口在本地客户端上进行虚拟还原,下面的描述将针对在本地客户端上根据本地的输入装置(如鼠标、键盘等)对远端的窗口进行控制操作的原理(结合图2中的步骤6-10和图4)。在本地客户端上显示远程服务器端的窗口后,所述基于远程帧缓存的窗口还原方法还进一步地包括
步骤401 :在本地客户端捕获本地输入装置对窗口的输入事件或请求事件;其中,所述请求事件包括窗口关闭请求、窗口最小化请求及窗口还原请求。需要明确的是,图2中的控制信息为所有与控制操作相关的信息,包括描述的窗口输入事件和请求事件。步骤402 :将所述输入事件或请求事件从本地客户端传输至服务器端;
步骤403 :在服务器端通过Xll层窗口管理器对所述输入事件或请求事件进行窗口事件解析,并对相应窗口进行操作。同样地,针对上述控制过程中的传输步骤402,在本实施方式中,本地客户端将所述输入事件或请求事件进行编码后再进行传输,服务器端在接收到编码的输入事件或请求事件后进行解码,步骤403中服务器端的Xll层窗口管理器根据解码后的输入事件或请求事件对窗口进行操作。在本实施方式中,还原应用程序窗口图像和控制远程应用程序所采用的窗口信息协议中,采用的通知事件包括窗口的创建事件(事件号为64)、窗口的删除事件(事件号为63)、窗口的显示事件(事件号为60)、窗口的隐藏事件(事件号为61)、窗口的大小更改事件(事件号为62)、窗口状态的更改事件(事件号为67)、窗口属性的更改事件(事件号为68)及窗口激活事件(事件号为71)。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。
权利要求
1.基于远程帧缓存的窗口还原方法,其特征在于,包括步骤 步骤A :从服务器端的Xll数据生成层提取图像帧缓存数据; 步骤B 从服务器端的Xl I层窗口管理器捕获应用窗口信息数据,所述应用窗口信息数据包括服务器端正在运行的所有应用程序窗口的ID、坐标、状态及类型; 步骤C :将所述图像帧缓存数据和应用窗口信息数据从服务器端传输至本地客户端; 步骤D :在本地客户端中根据所述图像帧缓存数据和应用窗口信息数据还原出远程正在运行的应用程序窗口图像。
2.如权利要求1所述的基于远程帧缓存的窗口还原方法,其特征在于,步骤C中,服务器端先将所述图像帧缓存数据和应用窗口信息数据进行编码后再进行传输,本地客户端在接收到编码的图像帧缓存数据和应用窗口信息数据后进行解码,步骤D中根据解码后的图像帧缓存数据和应用窗口信息数据还原远程正在运行的应用程序窗口图像。
3.如权利要求1或2所述的基于远程帧缓存的窗口还原方法,其特征在于,在步骤B中,针对处于不同生命周期的窗口,从服务器端的Xll层窗口管理器捕获所述窗口的应用窗口信息数据,其中,窗口的生命周期包括窗口的创建、窗口的设置、窗口的显示、窗口的隐藏、窗口的关闭及窗口的销毁。
4.如权利要求3所述的基于远程帧缓存的窗口还原方法,其特征在于,在步骤D中,将所述图像帧缓存数据根据应用窗口信息数据中的坐标进行切割,取出特定位置上的图像数据,并放至本地客户端的相应窗口中,还原出对应的远程应用程序窗口图像。
5.如权利要求4所述的基于远程帧缓存的窗口还原方法,其特征在于,所述基于远程帧缓存的窗口还原方法还包括 步骤E :在本地客户端捕获本地输入装置对窗口的输入事件或请求事件; 步骤F :将所述输入事件或请求事件从本地客户端传输至服务器端; 步骤G :在服务器端通过Xll层窗口管理器对所述输入事件或请求事件进行窗口事件解析,并对相应窗口进行操作。
6.如权利要求5所述的基于远程帧缓存的窗口还原方法,其特征在于,所述请求事件包括窗口关闭请求、窗口最小化请求、及窗口还原请求。
7.如权利要求6所述的基于远程帧缓存的窗口还原方法,其特征在于,步骤F中,本地客户端将所述输入事件或请求事件进行编码后再进行传输,服务器端在接收到编码的输入事件或请求事件后进行解码,步骤G中服务器端的Xll层窗口管理器根据解码后的输入事件或请求事件对窗口进行操作。
8.如权利要求7所述的基于远程帧缓存的窗口还原方法,其特征在于,还原应用程序窗口图像和控制远程应用程序所采用的窗口信息协议中,采用的通知事件包括窗口的创建事件、窗口的删除事件、窗口的显示事件、窗口的隐藏事件、窗口的大小更改事件、窗口状态的更改事件、窗口属性的更改事件及窗口激活事件。
全文摘要
本发明公开了一种基于远程帧缓存的窗口还原方法,包括步骤A:从服务器端的X11数据生成层提取图像帧缓存数据;步骤B从服务器端的X11层窗口管理器捕获应用窗口信息数据,所述应用窗口信息数据包括服务器端正在运行的所有应用程序窗口的ID、坐标、状态及类型;步骤C将图像帧缓存数据和应用窗口信息数据从服务器端传输至本地客户端;步骤D在本地客户端中根据所述图像帧缓存数据和应用窗口信息数据还原出远程正在运行的应用程序窗口图像。通过本发明的基于远程帧缓存的窗口还原方法,使得在本地客户端上能够查看并控制远程应用窗口,从而实现应用程序的虚拟化。
文档编号G06F9/44GK103049262SQ20121053681
公开日2013年4月17日 申请日期2012年12月12日 优先权日2012年12月12日
发明者潘旭东 申请人:广州尚融网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1