CN102541624A - 桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 - Google Patents
桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 Download PDFInfo
- Publication number
- CN102541624A CN102541624A CN2011104531881A CN201110453188A CN102541624A CN 102541624 A CN102541624 A CN 102541624A CN 2011104531881 A CN2011104531881 A CN 2011104531881A CN 201110453188 A CN201110453188 A CN 201110453188A CN 102541624 A CN102541624 A CN 102541624A
- Authority
- CN
- China
- Prior art keywords
- desktop
- gos
- window
- view field
- qemu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明涉及桌面融合技术领域,尤其是一种桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法。本发明在客户端中部署服务代理,由所述的服务代理监控客户系统的桌面显示状态,向融合桌面提供显示控制信息;融合桌面根据信息控制客户端在宿主系统桌面环境中的显示内容,实现客户系统程序窗口在宿主系统桌面的直观显示。本发明解决了虚拟桌面中窗口显示和用户操作存在诸如鼠标操作不顺畅、画面叠放、各个应用界面切换出错等问题,可以应用于虚拟桌面融合中。
Description
技术领域
本发明涉及桌面融合技术领域,尤其是一种桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法。
背景技术
目前,计算机虚拟化技术主要包括完全虚拟化、半虚拟化、操作系统层虚拟化。随着硬件对虚拟化的支持以及“云计算”技术的兴起,使得虚拟化产品得到更广泛的发展。KVM是当今主流的全虚拟化技术之一。基于无缝窗口融合技术的云终端客户程序便是在其基础上实现的。
桌面融合起源于远程控制技术,该技术通过在远程系统上的服务代理获取其显示内容,然后通过网络传输将显示数据传送到本地的显示代理,由显示代理在本地系统上进行显示,呈现给用户远程系统桌面。同时本地代理也会将发生在此显示窗口的鼠键事件发送给远程系统,由此控制远程主机。其后用户不满足于单纯的显示功能,远程桌面和本地桌面或多或少的要进行数据交互,如数据的复制、粘贴操作。如Linux采用的X窗口系统,通过设置远程主机的X配置文件,将本地窗口作为其显示端,便可支持远程X程序在本地桌面的显示。Windows视窗没有提供这种支持,其自身系统提供的是远程桌面功能。目前Virtual Box、VMWare虚拟化软件拥有无缝窗口显示技术,该技术能够使来宾操作系统(Guest Operating System,以下简称GOS)下的程序窗口在HOS桌面上显示,用户可以直接在宿主系统(Host Operating System,以下简称HOS)的桌面环境中对GOS程序窗口进行操作,该模式极大的提高了虚拟化软件的易用性,同时它利用虚拟化软件的特性(直接对虚拟显卡设备进行访问等),改善了GOS中程序窗口的显示速度。其总体框架图如附图一所示,该总体框架图的整个核心是存在于HOS中的服务代理,它将作为GOS在HOS桌面环境的代理,参加融合桌面环境的显示和接收事件的工作。服务代理将从GOS域中获取显示图像,建立X窗口进行显示,由于显示GOS窗口内容的是真正的X的窗口,所以可以拥有同其他HOS域程序相同的桌面环境使用权限,为达到直接显示GOS域程序窗口的效果,服务代理将提过GOS的显示内容,并只呈现用户关心的部分,这样可以保证GOS的绘制风格和显示特性。同样该服务代理也将代理GOS中程序与HOS域的程序进行交互,完成域间的程序窗口交互,如域间窗口的复制、粘贴操作等。从而增强融合多域桌面的操作感。
但是,现有的桌面融合技术,主要为用户提供客户操作系统(GOS)显示服务时,大都为每个GOS分配独立的显示输出窗口,在GOS运行时,该窗口将作为GOS桌面的代理,接收用户输入并输出程序运行结果。由于宿主系统(HOS)和GOS之间相互隔离,并无沟通机制,更无桌面环境的沟通机制且桌面环境配置不同的原因,大都将GOS的桌面环境和HOS的桌面操作环境相隔离,即GOS的显示部分是一个位于HOS桌面环境内的桌面环境,用以屏蔽因桌面环境不同而带来的用户鼠键操作的不一致。
如果要操作GOS的软件窗口,首先要将鼠键焦点切换到GOS显示窗口中,在切换之后,鼠键事件将按照GOS的事件响应策略得到处理,其作用范围也仅局限在当前GOS显示窗口范围内。当需要切换到HOS桌面环境时,需要执行特别的切换过程。
发明内容
本发明解决的技术问题在于提供一种桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法;可以克服现有融合技术导致的虚拟桌面中窗口显示和用户操作存在诸如鼠标操作不顺畅、画面叠放、各个应用界面切换出错等问题。
本发明解决上述技术问题的技术方案是:在客户端中部署服务代理,由所述的服务代理监控客户系统的桌面显示状态,向融合桌面提供显示控制信息;融合桌面根据信息控制客户端在宿主系统桌面环境中的显示内容,实现客户系统程序窗口在宿主系统桌面的直观显示。
桌面融合的窗口显示包括如下步骤,
A、监控GOS桌面显示状态
分析当前GOS中程序窗口的显示状态,当窗口显示状态变化时,便会通知有效视图获取模块获得该变化;
B、GOS有效视图获取
根据系统中每个程序窗口的显示状态信息,获取当前桌面的有效视图信息,并组织成数据结构,利用QEMU/KVM提供数据传输模块发送至显示服务提供方D-Agent中;
C、QEMU/KVM数据转储
QEMU/KVM利用虚拟机制提供的内存共享原理实现GOS到HOS的数据内容传递,然后通过进程间的数据传输通道将数据传送给D-Agent;
D、D-Agent视图显示
D-Agent从QEMU/KVM中提取GOS桌面的整个显示内容,并根据GOS提供的有效视图提示信息对其桌面内容进行切割,只在HOS的桌面上保留用户关心的程序窗口部分;在进行显示前,对GOS的显示内容进行HOS桌面的等比例匹配,消除HOS同GOS因为桌面分辨率的不同而造成的视觉偏差。
用户输入的鼠键事件发送给QEMU/KVM,由其对事件进行处理。
所述的桌面内容切割,即视图域裁剪包括如下步骤,
A、匹配显示环境,提供显示窗口
将GOS的显示内容进行等比例拉伸,将显示窗口最大化,将GOS视图域显示范围扩展到整个HOS有效显示桌面;
B、获取GOS有效视图域
通过GOS中的服务代理,分析GOS视图域内容;经过选择策略,获取有效视图域的信息;
C、有效视图域信息的传递
包括有效视图域信息GOS到QEMU/KVM的传递,和QEMU/KVM到D_Agent的传递,分别涉及域间数据输和进程;
D、视图域裁剪
D_Agent按照取得的有效视图域信息对视图域显示窗口进行裁剪,桌面呈现有效视图域显示内容。
所述的桌面内容切割,即视图域裁剪包括如下步骤,
A、匹配显示环境,提供显示窗口
用户事件的处理流程是,
A、代理接收:D_Agent的显示窗口作为GOS桌面代理,接收用户的鼠键事件,当得知用户鼠键焦点进入自身的有效视图域时,D_Agent启动获取用户事件机制,截获用户产生的所有鼠键事件;
B、由于D_Agent代替QEMU/KVM取得用户事件,所以鼠键事件需要解析组合成QEMU/KVM能够识别的消息;
C、D_Agent通过进程间通信方式将用户事件发送给QEMU/KVM,由其对事件进行处理。
QEMU/KVM接收到事件后,以硬件中断的方式发送给GOS,GOS处理这些硬件中断,转化成可以识别的鼠键信息,然后,根据事件做出反应;最终引起窗口内容改变、窗口位置改变、窗口创建和销毁等视图域的状态变化。
所述的窗口无缝化分为GOS有效视图域获取、QEMU/KVM数据传递、D_Agent视图域裁剪、D_Agent用户事件转换;所述的,
GOS有效视图域获取是分析当前GOS的视图域内容信息,从中获取有效视图域;该部分由HOOK模块和外部服务程序组成,其中HOOK模块监控GOS有效视图域的变化,服务程序用于获取GOS的裁剪区域,并利用域间数据传输通道将裁剪区域信息发送给QEMU/KVM;
QEMU/KVM数据传递是接收GOS服务程序发来的裁剪区域数据,并将该数据提供给D_Agent;所述的数据传输采用内存拷贝方法,QEMU/KVM到D_Agent的通信则采用管道的方法来进行;
D_Agent用户事件转换位于D_Agent中,用于处理鼠键事件格式的转换,并将事件传送至消息的处理方(QEMU/KVM);
视图域裁剪将从QEMU/KVM获取GOS域的显示内容,并根据提供的裁剪信息根据裁剪算法对显示内容进行裁剪;裁剪区域是当前系统桌面中有效视图域显示部分范围的集合,获取裁剪域算法将分析当前GOS的有效视图域,从其信息中提取裁剪区域,供D_Agent对GOS视图域的裁剪。
裁剪区域获取算法是枚举当前系统中每个窗口,根据一定的窗口选择策略,筛选出可视窗口,将其窗口显示范围与最终结果进行或运算,最后得到一个所有程序窗口总的显示区域,便是裁剪区域。
在进行获取算法前对窗口进行筛选,,筛选策略需要删除空窗口,或者与主程序窗口重叠的窗口;采用属性删除策略和无效值删除策略两种。
属性删除策略主要以窗口的常规属性和额外属性为删除依据来筛选窗口,当属性为不可视窗口、子窗口、窗口名为Program Mallager的窗口应当被排除在有效视图域之外。
无效值删除策略主要删除非法值的窗口、无效值窗口。
将键盘事件分离成键盘扫描码,鼠标事件则分离成鼠标向量信息入。
本发明通过无缝窗口技术在客户系统中部署服务代理,监控客户系统的桌面显示状态,向融合桌面提供显示控制信息,融合桌面会根据此信息控制客户系统在宿主系统桌面环境中的显示内容,实现客户系统程序窗口在宿主系统桌面的直观显示,为用户提供一个能够显示多域内容的桌面,在桌面上呈现不同域的程序窗口;此外,融合桌面不需要在GOS和HOS视窗间切换便可操作不同操作系统下的应用软件窗口,不必再捕获鼠键的作用范围。
附图说明
下面结合附图对本发明进一步说明:
图1是融合桌面结构图;
图2是本发明无缝窗口服务流程图;
图3是本发明无缝窗口模式用户事件处理示意图;
图4是本发明无缝窗口框架图;
图5是本发明裁剪域获取算法示意图。
具体实施方式
本发明在多域的桌面环境的融合中保留HOS的桌面环境,消除其他GOS域的桌面,在HOS域桌面环境的基础上重新建立多域桌面环境,在重建的桌面环境中,GOS域只提供其运算产生的图像数据,由HOS的桌面环境为其组织显示工作,并在此显示基础上,重新构建多域窗口之间的沟通机制,来满足融合桌面环境的操作感一致。
同时,面向用户提供桌面融合的服务方(D_Agent)将采用独立进程的存在方式,利用消息传递的方式来控制管理QEMU/KVM,只在QEMU/KVM增加消息响应的模块,这样可以最大限度的降低对QEMU/KVM代码和运行结构的影响。为实现D_Agent对多个QEMU/KVM的分别管理,为每个QEMU/KVM增加消息传递通道。这样可以使隔离各个QEMU/KVM,当其中一个崩溃时,不会影响到其他的运行。
利用D_Agent对多个GOS的桌面融合效果进行管理,解决GOS中的程序窗口无法识别问题,方便用户识别操作。GOS的服务代理模块则采用用户进程的方式来运行,这样可以最小化对GOS运行效率的影响,在服务代理模块崩溃时,不会对其他GOS的运行造成影响。
桌面融合的服务方(D_Agent)面向用户提供桌面融合的服务方(D_Agent)将代理GOS进行桌面的显示工作,为达到无缝显示效果,它将从GOS中获取桌面视图,并对视图内容进行删选,只保留并显示程序窗口部分的显示内容,同时也代替GOS接收用户事件。无缝窗门功能的显示部分执行流程如下附图2所示:
1.监控GOS桌面显示状态
分析当前GOS中程序窗口的显示状态,当窗口显示状态(以下称有效视图)变化时,便会通知有效视图获取模块来获得该变化。
2.GOS有效视图获取
根据系统中每个程序窗口的显示状态信息,获取当前桌面的有效视图信息,并组织成数据结构,利用QEMU/KVM提供数据传输模块发送至显示服务提供方D_Agent中。
3.QEMU/KVM数据转储
为达到较快的数据传输效率,QEMU/KVM将利用虚拟机制提供的内存共享原理来实现GOS到HOS的数据内容传递,然后通过进程间的数据传输通道将数据传送给D_Agent
4.D_Agent视图显示
D_Agent从QEMU/KVM中提取GOS桌面的整个显示内容,并根据GOS提供的有效视图提示信息对其桌面内容进行切割,只在HOS的桌面上保留用户关心的程序窗口部分,在进行显示前,还需要对GOS的显示内容进行HOS桌面的等比例匹配,来消除HOS同GOS因为桌面分辨率的不同而造成的视觉偏差。
由于是D_Agent提供显示窗口,所以它也将接受到用户输入的鼠键事件,但并不提供处理这些事件的方法,所以鼠键事件要被发送给QEMU/KVM,由其对事件进行处理。由于D_Agent也是HOS域中的窗口程序,所以鼠键状态不会丢失。
在QEMU/KVM基础上的虚拟桌面无缝窗口提供的是一种GOS的显示策略和操作策略,用于GOS显示内容到HOS桌面环境的融合。它将提取GOS域的显示内容,在HOS桌面环境中重新组织GOS域内程序窗口的显示,由于显示服务提供方(Display Agent,简称D_Agent)只提取GOS域的显示信息,所以GOS域内程序窗口的绘制风格和窗口行为均得到保留。
经过D_Agent的代理显示,所有GOS域内的显示内容均为HOS桌面的窗口,所以鼠键事件可以自由的在任意域下的程序窗口中作用,不必因各域的显示范围不同而造成鼠标、键盘状态的改变和丢失。让HOS的桌面环境中可以共存多种绘制风格,多种事件响应风格的程序窗口。
因此,无缝窗口模式需要满足的功能如下:
·GOS桌面有效内容在HOS桌面环境中的显示。
·鼠标、键盘作用范围的释放。
·GOS程序窗口自适应HOS桌面环境。
无缝窗口技术是为用户提供的另一种GOS使用操作方式,它提供的是一种GOS的显示策略和操作策略,用于GOS显示内容到HOS桌面环境的融合。
在无缝窗口服务运行后,D_Agent显示窗口将作为桌面的代理,面向用户呈现GOS桌面显示内容,即视图域。根据视窗系统的Mask机制,D_Agent可以在原有显示基础上,采用一定的裁剪策略对视图域进行裁剪,只留下程序窗口部分,即有效视图域,便得到了GOS程序显示内容直接呈现到HOS桌面环境的效果。
根据Mask策略,视图域被裁剪的部分不会接收到用户事件,也不会影响其他程序窗口接收鼠键事件,而未裁剪部分(有效视图域)由于是D_Agent的显示窗口,可以从HOS的桌面环境中获得用户鼠键事件,经过事件传输过程.便可由事件处理方(QEMU/KVM)处理。从而达到用户在HOS桌面环境中操作GOS程序的效果。
其大致做法如附图3所示:
1.匹配显示环境,提供显示窗口。
D_Agent在HOS桌面环境中创建供GOS桌面显示的窗口。用于显示GOS的视图域内容,为保证显示效果,D_Agent需要将GOS域的显示内容匹配到当前的显示环境,所以将GOS的显示内容进行屏幕匹配(等比例拉伸操作)。将显示窗口最大化(非全屏,以免遮盖HOS桌面环境的启动栏等要素),将GOS视图域显示范围扩展到整个HOS有效显示桌面。
2.获取GOS有效视图域。
做法是通过GOS中的服务代理,分析GOS视图域内容,经过选择策略,获取有效视图域的信息。
3.有效视图域信息的传递。
该部分包括有效视图域信息GOS到QEMU/KVM的传递,和QEMU/KVM到D_Agent的传递,分别涉及域间数据输和进程。
4.视图域裁剪。
D_Agent按照取得的有效视图域信息(裁剪区域)对视图域显示窗口进行裁剪。桌面呈现有效视图域显示内容。由于组建窗口并显示的操作是在HOS中进行的,所以D_Agent提供的显示窗口遵循HOS内的视窗显示策略,由于HOS中不存在GOS的独立显示窗口,用户的鼠键事件发生在HOS内各个应用窗口间,所以鼠键操作范围不会受到程序归属的影响。附图三为无缝窗口模式用户事件的处理流程:
(1).代理接收:D_Agent的显示窗口作为GOS桌面代理,来接收用户的鼠键事件,当得知用户鼠键焦点进入自身的有效视图域时,D_Agent便会启动获取用户事件机制,截获用户产生的所有鼠键事件。
(2).由于D_Agent代替QEMU/KVM取得用户事件,所以鼠键事件需要解析组合成QEMU/KVM能够识别的消息。
(3).D_Agent通过进程间通信方式将用户事件发送给QEMU/KVM,由其对事件进行处理。
QEMU/KVM接收到事件后,会以硬件中断的方式发送给GOS,GOS处理这些硬件中断,转化程序可以识别的鼠键信息,然后,程序根据事件做出反应,最终会引起视图域的状态变化,如窗口内容改变、窗口位置改变、窗口创建和销毁等。当有效视图域状态发生变化时,表明视图裁剪区域发生了变化,需要重新获取裁剪区域,D_Agent需要根据新的裁剪区域对视图进行裁剪。这样就保证Agent GOS显示窗口呈现的始终是GOS程序窗口的内容。
根据整个桌面融合系统的实现基础:D_Agent+QEMU/KVM+GOS,将无缝窗口系统划分为四部分:GOS有效视图域获取部分,QEMU/KVM数据传递部分,D_Agent视图域裁剪部分,D_Agent用户事件转换部分。附图4为各部分的工作示意图:
GOS有效视图域获取部分的功能是分析当前GOS的视图域内容信息,从中获取有效视图域。该部分由HOOK模块和外部服务程序组成,其中HOOK模块监控GOS有效视图域的变化,服务程序用于获取GOS的裁剪区域,并利用域间数据传输通道将裁剪区域信息发送给QEMU/KVM。
QEMU/KVM数据传递部分的功能是接收GOS服务程序发来的裁剪区域数据,并将该数据提供给D_Agent,为了加速域间消息的通信速度,采用内存拷贝的方法进行数据传输,QEMU/KVM到D_Agent的通信则采用管道的方法来进行。
D_Agent用户事件转换部分:位于D_Agent中,用于处理鼠键事件格式的转换,并将事件传送至消息的处理方(QEMU/KVM)。
视图域裁剪部分将从QEMU/KVM获取GOS域的显示内容,并根据提供的裁剪信息根据裁剪算法对显示内容进行裁剪。裁剪区域是当前系统桌面中,有效视图域显示部分范围的集合,获取裁剪域算法将分析当前GOS的有效视图域,从其信息中提取裁剪区域,供D_Agent对GOS视图域的裁剪。
裁剪区域获取算法的实现:
裁剪区域是当前系统桌面中,有效视图域显示部分范围的集合,获取裁剪域算法将分析当前GOS的有效视图域,从其信息中提取裁剪区域。供D Agent对GOS视图域的裁剪。
其大致过程是:枚举当前系统中每个窗口,根据一定的窗口选择策略,筛选出可视窗口,将其窗口显示范围与最终结果进行或运算,最后得到一个所有程序窗口总的显示区域,便是裁剪区域,算法流程如附图5所示:
裁剪域获取算法在计算中会进行大量的矩形或运算,需要占用大量时间,所以在进行获取算法前对窗口进行筛选,可以加速该过程的进行。以Windows系统为例,程序在运行的过程中,会创建很多窗口,如菜单栏及下属子菜单栏,或者提示框,或者程序开发者为了处理一些用户事件,创建的空窗口。所以筛选策略需要删除空窗口,或者与主程序窗口重叠的窗口,系统采用属性删除策略和无效值删除策略两种。
属性删除策略主要以窗口的常规属性和额外属性为删除依据来筛选窗口,经过大量实验得知,当属性为如下值的窗口应当被排除在有效视图域之外:
1.不可视窗口。
2.子窗口,在视窗系统的显示策略中,子窗口无法在父窗口之外显示,所以子窗口对有效视图域的贡献可以被父窗口替代。
3.窗口名为Program Mallager的窗口,即任务栏归属的程序,该窗口的显示范围是整个桌面区域,从而可以满足用户对任务栏的多种停靠模式需要。
该窗口的显示范围在计算有效视图过程中将会把结果覆盖成为整个桌面区域,因此需要将此窗口删除出有效视图域。
经过属性删除策略的筛选,剩下的窗口大都满足显示要求,将参加最后结果的运算。
无效值删除策略主要是消除无效数值的窗口对最终裁剪区域结果的干扰,主要删除如下两种窗口:非法值的窗口,例如当程序窗口最小化时,其窗口坐标数据有时会出现非正常的负数,该值在进行矩形或运算时,总能保留下来,但对最终裁剪结果毫无意义。无效值窗口,此类窗口的高度或者宽度有一值为零,说明该窗口在桌面内不具有实际显示效果,也应当删除。经过过滤条件的选择,余下的窗口将参与裁剪区域的运算。
用户事件重定位的实现:
D_Agent的显示窗口可以得到用户鼠键事件,但是处理鼠键的过程在QEMU中,因此,需要将用户鼠键事件以消息传递的方式发送给QEMU,利用D-Agent与QEMU/KVM之I″HJ的沟通可以将鼠键消息发送给QEMU/KVM的处理过程,但是此处理过程无法接收处理D发来的用户事件,因为这些都是经过桌.Agent面环境包装,所以将鼠键事件进行解析,组织成QEMU/KVM可以识别的类型,具体做法是将键盘事件分离成键盘扫描码,鼠标事件则分离成鼠标向量信息(表示鼠标一次向哪个方向移动了几个单位)传入。
Claims (14)
1.桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法,其特征在于:在客户端中部署服务代理,由所述的服务代理监控客户系统的桌面显示状态,向融合桌面提供显示控制信息;融合桌面根据信息控制客户端在宿主系统桌面环境中的显示内容,实现客户系统程序窗口在宿主系统桌面的直观显示。
2.根据权利要求1所述的虚拟桌面融合方法,其特征在于:桌面融合的窗口显示包括如下步骤,
A、监控GOS桌面显示状态
分析当前GOS中程序窗口的显示状态,当窗口显示状态变化时,便会通知有效视图获取模块获得该变化;
B、GOS有效视图获取
根据系统中每个程序窗口的显示状态信息,获取当前桌面的有效视图信息,并组织成数据结构,利用QEMU/KVM提供数据传输模块发送至显示服务提供方D-Agent中;
C、QEMU/KVM数据转储
QEMU/KVM利用虚拟机制提供的内存共享原理实现GOS到HOS的数据内容传递,然后通过进程间的数据传输通道将数据传送给D-Agent;
D、D-Agent视图显示
D-Agent从QEMU/KVM中提取GOS桌面的整个显示内容,并根据GOS提供的有效视图提示信息对其桌面内容进行切割,只在HOS的桌面上保留用户关心的程序窗口部分;在进行显示前,对GOS的显示内容进行HOS桌面的等比例匹配,消除HOS同GOS因为桌面分辨率的不同而造成的视觉偏差。
3.根据权利要求2所述的虚拟桌面融合方法,其特征在于:用户输入的鼠键事件发送给QEMU/KVM,由其对事件进行处理。
4.根据权利要求2所述的虚拟桌面融合方法,其特征在于:所述的桌面内容切割,即视图域裁剪包括如下步骤,
A、匹配显示环境,提供显示窗口
将GOS的显示内容进行等比例拉伸,将显示窗口最大化,将GOS视图域显示范围扩展到整个HOS有效显示桌面;
B、获取GOS有效视图域
通过GOS中的服务代理,分析GOS视图域内容;经过选择策略,获取有效视图域的信息;
C、有效视图域信息的传递
包括有效视图域信息GOS到QEMU/KVM的传递,和QEMU/KVM到D_Agent的传递,分别涉及域间数据输和进程;
D、视图域裁剪
D_Agent按照取得的有效视图域信息对视图域显示窗口进行裁剪,桌面呈现有效视图域显示内容。
5.根据权利要求3所述的虚拟桌面融合方法,其特征在于:所述的桌面内容切割,即视图域裁剪包括如下步骤,
A、匹配显示环境,提供显示窗口
将GOS的显示内容进行等比例拉伸,将显示窗口最大化,将GOS视图域显示范围扩展到整个HOS有效显示桌面;
B、获取GOS有效视图域
通过GOS中的服务代理,分析GOS视图域内容;经过选择策略,获取有效视图域的信息;
C、有效视图域信息的传递
包括有效视图域信息GOS到QEMU/KVM的传递,和QEMU/KVM到D_Agent的传递,分别涉及域间数据输和进程;
D、视图域裁剪
D_Agent按照取得的有效视图域信息对视图域显示窗口进行裁剪,桌面呈现有效视图域显示内容。
6.根据权利要求1至5任一项所述的虚拟桌面融合方法,其特征在于:用户事件的处理流程是,
A、代理接收:D_Agent的显示窗口作为GOS桌面代理,接收用户的鼠键事件,当得知用户鼠键焦点进入自身的有效视图域时,D_Agent启动获取用户事件机制,截获用户产生的所有鼠键事件;
B、由于D_Agent代替QEMU/KVM取得用户事件,所以鼠键事件需要解析组合成QEMU/KVM能够识别的消息;
C、D_Agent通过进程间通信方式将用户事件发送给QEMU/KVM,由其对事件进行处理。
7.根据权利要求6所述的虚拟桌面融合方法,其特征在于:QEMU/KVM接收到事件后,以硬件中断的方式发送给GOS,GOS处理这些硬件中断,转化成可以识别的鼠键信息,然后,根据事件做出反应;最终引起窗口内容改变、窗口位置改变、窗口创建和销毁等视图域的状态变化。
8.根据权利要求7所述的虚拟桌面融合方法,其特征在于:所述的窗口无缝化分为GOS有效视图域获取、QEMU/KVM数据传递、D_Agent视图域裁剪、D_Agent用户事件转换;所述的,
GOS有效视图域获取是分析当前GOS的视图域内容信息,从中获取有效视图域;该部分由HOOK模块和外部服务程序组成,其中HOOK模块监控GOS有效视图域的变化,服务程序用于获取GOS的裁剪区域,并利用域间数据传输通道将裁剪区域信息发送给QEMU/KVM;
QEMU/KVM数据传递是接收GOS服务程序发来的裁剪区域数据,并将该数据提供给D_Agent;所述的数据传输采用内存拷贝方法,QEMU/KVM到D_Agent的通信则采用管道的方法来进行;
D_Agent用户事件转换位于D_Agent中,用于处理鼠键事件格式的转换,并将事件传送至消息的处理方(QEMU/KVM);
视图域裁剪将从QEMU/KVM获取GOS域的显示内容,并根据提供的裁剪信息根据裁剪算法对显示内容进行裁剪;裁剪区域是当前系统桌面中有效视图域显示部分范围的集合,获取裁剪域算法将分析当前GOS的有效视图域,从其信息中提取裁剪区域,供D_Agent对GOS视图域的裁剪。
9.根据权利要求8所述的虚拟桌面融合方法,其特征在于:裁剪区域获取算法是枚举当前系统中每个窗口,根据一定的窗口选择策略,筛选出可视窗口,将其窗口显示范围与最终结果进行或运算,最后得到一个所有程序窗口总的显示区域,便是裁剪区域。
10.根据权利要求9所述的虚拟桌面融合方法,其特征在于:在进行获取算法前对窗口进行筛选,,筛选策略需要删除空窗口,或者与主程序窗口重叠的窗口;采用属性删除策略和无效值删除策略两种。
11.根据权利要求10所述的虚拟桌面融合方法,其特征在于:属性删除策略主要以窗口的常规属性和额外属性为删除依据来筛选窗口,当属性为不可视窗口、子窗口、窗口名为Program Mallager的窗口应当被排除在有效视图域之外。
12.根据权利要求10所述的虚拟桌面融合方法,其特征在于:无效值删除策略主要删除非法值的窗口、无效值窗口。
13.根据权利要求11所述的虚拟桌面融合方法,其特征在于:无效值删除策略主要删除非法值的窗口、无效值窗口。
14.根据权利要求13所述的虚拟桌面融合方法,其特征在于:将键盘事件分离成键盘扫描码,鼠标事件则分离成鼠标向量信息入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104531881A CN102541624A (zh) | 2011-12-29 | 2011-12-29 | 桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104531881A CN102541624A (zh) | 2011-12-29 | 2011-12-29 | 桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102541624A true CN102541624A (zh) | 2012-07-04 |
Family
ID=46348589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104531881A Pending CN102541624A (zh) | 2011-12-29 | 2011-12-29 | 桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541624A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150185A (zh) * | 2013-03-15 | 2013-06-12 | 汉柏科技有限公司 | 虚拟机Agent自动升级的方法 |
CN103345506A (zh) * | 2013-07-03 | 2013-10-09 | 云南电网公司 | 基于桌面端的快捷企业级知识收集工具 |
CN103677970A (zh) * | 2012-09-24 | 2014-03-26 | 北京云端时代科技有限公司 | 实现终端本地桌面和远端虚拟桌面合并显示的系统和方法 |
CN105025335A (zh) * | 2015-08-04 | 2015-11-04 | 合肥云中信息科技有限公司 | 一种云桌面环境下的视频同步渲染的方法 |
CN105183495A (zh) * | 2014-05-29 | 2015-12-23 | 黑莓有限公司 | 跨操作系统域来协调活动视图 |
CN105760210A (zh) * | 2014-12-19 | 2016-07-13 | 中兴通讯股份有限公司 | 一种voi系统和vdi系统的融合使用方法及系统 |
CN107026875A (zh) * | 2015-06-25 | 2017-08-08 | 中兴通讯股份有限公司 | 多个虚拟桌面架构的融合方法及装置 |
CN108667887A (zh) * | 2017-07-03 | 2018-10-16 | 无锡辰云科技股份有限公司 | 基于融合计算的桌面虚拟方法、装置和系统 |
CN109491527A (zh) * | 2018-11-15 | 2019-03-19 | 广东威创丰值技术有限公司 | 一种远程输入设备的切换方法及系统 |
CN109582453A (zh) * | 2018-11-29 | 2019-04-05 | 北京元心科技有限公司 | 多系统间协调调度的方法、装置及电子设备 |
CN110427136A (zh) * | 2019-08-21 | 2019-11-08 | 深圳市第三极智能物联有限公司 | 一种单系统多窗口生成与发送系统 |
CN113778583A (zh) * | 2021-08-03 | 2021-12-10 | 福建升腾资讯有限公司 | 一种云桌面的本地应用的发布方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106347A1 (en) * | 2007-10-17 | 2009-04-23 | Citrix Systems, Inc. | Methods and systems for providing access, from within a virtual world, to an external resource |
CN101495990A (zh) * | 2005-12-02 | 2009-07-29 | 思杰系统有限公司 | 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备 |
-
2011
- 2011-12-29 CN CN2011104531881A patent/CN102541624A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495990A (zh) * | 2005-12-02 | 2009-07-29 | 思杰系统有限公司 | 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备 |
US20090106347A1 (en) * | 2007-10-17 | 2009-04-23 | Citrix Systems, Inc. | Methods and systems for providing access, from within a virtual world, to an external resource |
Non-Patent Citations (1)
Title |
---|
董青: "基于虚拟化的桌面融合技术", 《万方数据知识服务平台》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677970A (zh) * | 2012-09-24 | 2014-03-26 | 北京云端时代科技有限公司 | 实现终端本地桌面和远端虚拟桌面合并显示的系统和方法 |
CN103150185A (zh) * | 2013-03-15 | 2013-06-12 | 汉柏科技有限公司 | 虚拟机Agent自动升级的方法 |
CN103345506A (zh) * | 2013-07-03 | 2013-10-09 | 云南电网公司 | 基于桌面端的快捷企业级知识收集工具 |
CN105183495B (zh) * | 2014-05-29 | 2018-06-29 | 黑莓有限公司 | 跨操作系统域来协调活动视图 |
CN105183495A (zh) * | 2014-05-29 | 2015-12-23 | 黑莓有限公司 | 跨操作系统域来协调活动视图 |
CN105760210A (zh) * | 2014-12-19 | 2016-07-13 | 中兴通讯股份有限公司 | 一种voi系统和vdi系统的融合使用方法及系统 |
CN107026875A (zh) * | 2015-06-25 | 2017-08-08 | 中兴通讯股份有限公司 | 多个虚拟桌面架构的融合方法及装置 |
CN105025335A (zh) * | 2015-08-04 | 2015-11-04 | 合肥云中信息科技有限公司 | 一种云桌面环境下的视频同步渲染的方法 |
CN105025335B (zh) * | 2015-08-04 | 2017-11-10 | 合肥中科云巢科技有限公司 | 一种云桌面环境下的视频同步渲染的方法 |
CN108667887A (zh) * | 2017-07-03 | 2018-10-16 | 无锡辰云科技股份有限公司 | 基于融合计算的桌面虚拟方法、装置和系统 |
CN108667887B (zh) * | 2017-07-03 | 2021-07-23 | 无锡辰云科技股份有限公司 | 基于融合计算的桌面虚拟方法、装置和系统 |
CN109491527A (zh) * | 2018-11-15 | 2019-03-19 | 广东威创丰值技术有限公司 | 一种远程输入设备的切换方法及系统 |
CN109582453A (zh) * | 2018-11-29 | 2019-04-05 | 北京元心科技有限公司 | 多系统间协调调度的方法、装置及电子设备 |
CN110427136A (zh) * | 2019-08-21 | 2019-11-08 | 深圳市第三极智能物联有限公司 | 一种单系统多窗口生成与发送系统 |
CN113778583A (zh) * | 2021-08-03 | 2021-12-10 | 福建升腾资讯有限公司 | 一种云桌面的本地应用的发布方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541624A (zh) | 桌面虚拟化客户端与虚拟桌面间的虚拟桌面融合方法 | |
CN105426227B (zh) | 向云迁移私有构架服务 | |
US20110249002A1 (en) | Manipulation and management of links and nodes in large graphs | |
US20100162127A1 (en) | Information processing system and display control method | |
US8924502B2 (en) | System, method and computer program product for updating a user session in a mach-derived system environment | |
CN104216607B (zh) | 基于html5的虚拟操作系统的图标拖拽方法及系统 | |
CN102662618B (zh) | 远程协助过程中的图像处理方法及装置 | |
JPH0823805B2 (ja) | 情報入力装置 | |
DE102013218379A1 (de) | Erkennen und Verarbeiten einer unbeabsichtigten Berührung eines Touchscreens | |
CN103312814B (zh) | 云管理平台和虚拟机终端用户间vnc隐通道的建立方法 | |
WO2014036927A1 (zh) | 一种页面遮罩的实现方法及装置 | |
CN103608758A (zh) | 信息处理设备,信息处理系统,服务器,信息处理方法和计算机程序 | |
CN102664924A (zh) | 远程协助过程中的信息处理方法及装置 | |
CN109144650B (zh) | 显示对象管理方法、装置、电子设备及计算机存储介质 | |
AU2018251560B2 (en) | Live ink presence for real-time collaboration | |
EP3196783A1 (en) | Open collaboration board with multiple integrated services | |
US20200089512A1 (en) | Method and Apparatus for Invoking Input Method, Server, and Terminal | |
KR20040021563A (ko) | 화면 표시 처리 장치, 화면 표시 처리 방법 및 컴퓨터프로그램 | |
CN105446676A (zh) | 进行大屏显示的方法及装置 | |
CN104881201A (zh) | 一种数据显示方法及电子设备 | |
WO2017201655A1 (zh) | 一种后台应用程序显示方法、装置、电子设备和计算机程序产品 | |
DE102016204692A1 (de) | Steuerung der Mehrfachauswahl auf berührungsempfindlichen Flächen | |
US20170357412A1 (en) | Data creating device, data creating method, and data creating program | |
Sadun | The Core IOS 6 Developer's Cookbook | |
US20140375653A1 (en) | Systems and methods for drawing shapes with minimal user interaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120704 |