一种vdi环境下的数据发送方法和装置制造方法

文档序号:6525917阅读:275来源:国知局
一种vdi环境下的数据发送方法和装置制造方法
【专利摘要】本发明公开了一种VDI环境下的数据发送方法和装置。该技术方案中,当桌面协议客户端处于非正常状态时,桌面协议服务端以低于其处于正常状态时的速率向其发送桌面图像数据,一方面,由于发送速率降低,因此能够节省部分系统资源,降低此时虚拟机对服务器的资源占用;另一方面,由于桌面协议客户端处于非正常状态时,桌面协议服务端依然对其发送桌面图像数据,因此当桌面协议客户端恢复正常状态时,桌面协议服务端需要发送的数据量相比于现有技术大大减少,因此减少了对网络带宽的占用,并能够减少显示延时,提高用户体验。
【专利说明】一种VDI环境下的数据发送方法和装置
【技术领域】
[0001]本发明涉及虚拟化【技术领域】,尤其是涉及一种VDI环境下的数据发送方法和装置。
【背景技术】
[0002]虚拟桌面基础架构(Visual Desktop Infrastructure, VDI)是目前企业办公环境的一种流行技术,它不是给每个用户都配置一台运行某操作系统(比如Windows XP或Vista)的桌面个人计算机,而是通过在远端的服务器上运行某操作系统,将用户的桌面虚拟化,简单来讲,就是将一台计算机屏幕显示的内容传送到另外一处的屏幕显示。因此,在虚拟桌面场景下至少应该存在一台服务器和一台终端设备(比如客户机或者个人计算机等),通过在服务器中运行若干虚拟机,使每个用户能够通过终端设备上安装的虚拟桌面客户端(以下简称为客户端)以一对一的方式与服务器中的虚拟机连接,此时客户端显示的内容就是虚拟机的显示内容,用户可以通过操作客户端显示的内容对虚拟机进行访问。
[0003]当客户端连接服务器中的虚拟机后,虚拟机会向客户端发送图像数据,使图像数据显示在客户端上,当客户端最小化、隐藏或锁屏时,客户端对服务器中的虚拟机并没有实际操作,为了能够降低此时虚拟机对服务器的资源占用,提高服务器的资源利用率,现有技术提供了一种方案,如图1所示,为现有技术提供的在VDI环境下客户端最小化时的实现示意图。当客户端最小化时,向服务器发送相关通知,服务器停止向客户端发送图像数据;当客户端恢复显示时,再次向服务器发送相关通知,服务器重新发送图像数据到客户端进行显不。
[0004]上述方案虽然能够在客户端最小化、隐藏或锁屏时,降低虚拟机对服务器的资源占用,提高服务器的资源利用率,但是,当客户端恢复显示时,服务器需要重新发送大量图像数据到客户端,一方面会造成突发的网络资源占用,另一方面由于客户端需要接收大量图像数据,因此恢复显示时会有延时,导致用户体验比较差。

【发明内容】

[0005]本发明实施例提供一种VDI环境下的数据发送方法和装置,用以解决现有技术中为了减少虚拟机对服务器的资源占用而导致客户端恢复显示时需要占用大量网络带宽,以及由于显示延时而使得用户体验比较差的问题。
[0006]本发明实施例采用以下技术方案:
[0007]第一方面,提供一种虚拟桌面基础架构VDI环境下的数据发送方法,包括:
[0008]当桌面协议服务端接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态;
[0009]当桌面协议服务端接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
[0010]结合第一方面,在第一种可能的实现方式中,所述桌面图像数据为非3D图像数据;则
[0011]桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:
[0012]桌面协议服务端通过图像设备接口⑶I子系统获取桌面图像数据。
[0013]结合第一方面,在第二种可能的实现方式中,所述桌面图像数据为3D图像数据;则
[0014]桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:
[0015]桌面协议服务端将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并
[0016]根据所述第一帧率,获取3D渲染指令;
[0017]将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0018]结合第一方面,在第三种可能的实现方式中,所述桌面图像数据为3D图像数据;则
[0019]桌面协议服务端接收到所述第二通知消息后按照如下方式获取桌面图像数据:
[0020]桌面协议服务端将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并
[0021]根据所述第二帧率,获取3D渲染指令;
[0022]将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0023]结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述非正常状态包括:
[0024]最小化状态、隐藏状态或者锁屏状态。
[0025]结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在VDI环境下,所述桌面协议客户端处于所述虚拟桌面客户端中,所述桌面协议服务端处于虚拟桌面服务器中的虚拟机上,其中:
[0026]所述桌面协议服务端将获取的桌面图像数据通过所述虚拟机中的操作系统以及所述虚拟桌面服务器中的物理网卡发送给所述虚拟桌面客户端中的桌面协议客户端。
[0027]第二方面,提供一种虚拟桌面基础架构VDI环境下的数据发送装置,所述装置作为桌面协议服务端,包括:
[0028]第一发送单元,用于当接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态;[0029]第二发送单元,用于当接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
[0030]结合第二方面,在第二方面的第一种可能的实现方式中,所述桌面图像数据为非3D图像数据;则
[0031]所述装置还包括:
[0032]桌面图像数据第一获取单元,用于接收到所述第一通知消息后,通过图像设备接口⑶I子系统获取桌面图像数据。
[0033]结合第二方面,在第二方面的第二种可能的实现方式中,所述桌面图像数据为3D图像数据;则
[0034]所述装置还包括:
[0035]桌面图像数据第二获取单元,用于接收到所述第一通知消息后,将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并根据所述第一帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0036]结合第二方面,在第二方面的第三种可能的实现方式中,所述桌面图像数据为3D图像数据;则
[0037]所述装置还包括:
[0038]桌面图像数据第三获取单元,用于接收到所述第二通知消息后,将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并根据所述第二帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0039]结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述非正常状态包括:
[0040]最小化状态、隐藏状态或者锁屏状态。
[0041]结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,在VDI环境下,所述桌面协议客户端处于所述虚拟桌面客户端中,所述桌面协议服务端处于虚拟桌面服务器中的虚拟机上,其中:
[0042]所述桌面协议服务端将获取的桌面图像数据通过所述虚拟机中的操作系统以及所述虚拟桌面服务器中的物理网卡发送给所述虚拟桌面客户端中的桌面协议客户端。
[0043]本发明实施例中,当桌面协议客户端处于非正常状态时,桌面协议服务端以低于其处于正常状态时的速率向其发送桌面图像数据,一方面,由于发送速率降低,因此能够节省部分系统资源,降低此时虚拟机对服务器的资源占用;另一方面,由于桌面协议客户端处于非正常状态时,桌面协议服务端依然对其发送桌面图像数据,因此当桌面协议客户端恢复正常状态时,桌面协议服务端需要发送的数据量相比于现有技术大大减少,因此减少了对网络带宽的占用,并能够减少显示延时,提高用户体验。【专利附图】

【附图说明】
[0044]图1为现有技术提供的在VDI环境下客户端最小化时的实现示意图;
[0045]图2为本发明实施例提供的一种VDI环境下的数据发送方法的流程图;
[0046]图3为本发明实施例中VDI的典型架构图;
[0047]图4为本发明实施例中远程桌面服务器的典型架构图;
[0048]图5为本发明实施例提供的在普通办公场景下的实现上述方法的系统逻辑结构图;
[0049]图6为本发明实施例中桌面协议服务端的工作模式的示意图;
[0050]图7为本发明实施例提供的上述方法在普通办公场景下的实现流程图;
[0051]图8为本发明实施例提供的在高清制图办公场景下实现上述方法的系统逻辑结构图;
[0052]图9为本发明实施例提供的上述方法在高清制图办公场景下的实现流程图;
[0053]图10为本发明实施例提供的一种VDI环境下的数据发送装置的结构示意图;
[0054]图11为本发明实施例提供的桌面协议服务器的硬件逻辑示意图。
【具体实施方式】
[0055]为了解决现有技术中为了减少虚拟机对服务器的资源占用而导致客户端恢复显示时需要占用大量网络带宽,以及由于显示延时而使得用户体验比较差的问题,本发明实施例提出了一种VDI环境下的数据发送方法和装置。该技术方案中,当桌面协议客户端处于非正常状态时,桌面协议服务端以低于其处于正常状态时的速率向其发送桌面图像数据,一方面,由于发送速率降低,因此能够节省部分系统资源,降低此时虚拟机对服务器的资源占用;另一方面,由于桌面协议客户端处于非正常状态时,桌面协议服务端依然对其发送桌面图像数据,因此当桌面协议客户端恢复正常状态时,桌面协议服务端需要发送的数据量相比于现有技术大大减少,因此减少了对网络带宽的占用,并能够减少显示延时,提高用户体验。
[0056]下面将结合各个附图对本发明实施例技术方案的主要实现原理、【具体实施方式】及其对应能够达到的有益效果进行详细地阐述。
[0057]本发明实施例提出一种VDI环境下的数据发送方法,如图2所示,为该方法的流程图,具体包括下述步骤:
[0058]步骤21,当桌面协议服务端接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到该第一通知消息后获取的桌面图像数据以第一速率发送给桌面协议客户端;
[0059]其中,非正常状态为桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态,具体的,可以指最小化状态、隐藏状态和锁屏状态中的任意一种。
[0060]步骤22,当桌面协议服务端接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到该第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给桌面协议客户端。
[0061]当桌面图像数据为非3D图像数据时,桌面协议客户端连接服务器(即桌面协议服务端)后,虚拟机中的远程桌面协议服务程序获取用户虚拟机桌面的图像以及指令数据,并进行图像识别,缓存计算以及指令整合等操作,获得桌面图像数据,并将获得的桌面图像数据以第二速率发送给桌面协议客户端;当在接收到桌面协议客户端发送的第一通知消息后,将获得的桌面数据以低于第二速率的第一速率发送给桌面协议客户端,以释放部分系统资源,降低虚拟机对服务器的资源占用;
[0062]为了进一步减少虚拟机对服务器的资源占用,在接收到桌面协议客户端发送的第一通知消息后,桌面协议服务程序不再进行图像识别、缓存计算和指令整合等操作,而是将桌面图像数据的处理交给图像设备接口(Graphics Device Interface,⑶I)子系统,从而降低对系统资源的占用。其中,GDI子系统是虚拟机Windows操作系统中的一个子系统,它的主要任务是负责系统和绘图程序之间的信息交换,处理所有Windows程序的图形输出。
[0063]当桌面图像数据为3D图像数据时,当接收到第一通知消息时,首先将当前渲染帧率设置为第一帧率,该第一帧率要小于接收到第二通知消息时的第二帧率,然后再根据设置的第一帧率来获取3D渲染指令,并将3D渲染指令重定向到渲染服务器上进行渲染,渲染后的结果即为向客户端发送的桌面图像数据;而当接收到第二通知消息时,将当前渲染帧率设置为第二帧率,该第二帧率要大于接收到第一通知消息时的第一帧率,然后再根据设置的第二帧率来获取3D渲染指令,并将3D渲染指令重定向到渲染服务器上进行渲染,渲染后的结果即为向客户端发送的桌面图像数据。
[0064]其中,渲染帧率的大小影响到获取3D渲染指令的速度,当渲染帧率比较小时,获取3D渲染指令的速度也比较慢,重定向到渲染服务器上进行渲染的3D渲染指令的数量也减少,从而能够减少占用渲染服务器中图形处理器(Graphic Processing Unit, GPU)的处理资源。
[0065]本发明实施例中,当桌面协议客户端处于非正常状态时,桌面协议服务端以低于其处于正常状态时的速率向其发送桌面图像数据,一方面,由于发送速率降低,因此能够节省部分系统资源,降低此时虚拟机对服务器的资源占用;另一方面,由于桌面协议客户端处于非正常状态时,桌面协议服务端依然对其发送桌面图像数据,因此当桌面协议客户端恢复正常状态时,桌面协议服务端需要发送的数据量相比于现有技术大大减少,因此减少了对网络带宽的占用,并能够减少显示延时,提高用户体验。
[0066]根据上述实现原理对本发明实施例提供的方案进行详细介绍。
[0067]如图3所示,为本发明实施例中VDI的典型架构图。其中,左侧为显示虚拟桌面的客户端,通常称为瘦客户端(Thin Client,TC),其载体形式可以是普通电脑101a、平板电脑101b或智能手机101c等。它们通过网络Networkl02使用远程桌面协议(Remote DesktopProtocol, RDP,注:非特指微软的RDP协议)103访问服务器。接入网关(Access Gateway,AG)104作为服务器和客户端传输桌面图像数据的接口,负责服务器的内部网络接入。在典型场景下,服务器内包含桌面传输控制器(Desktop Delivery Control,DDC) 105、远程桌面月艮务器(Remote Desktop Server, RDS) 106 和活动目录服务器(Activity Directory, AD)108。桌面传输控制器105负责用户鉴权、虚拟机分配等功能,它通过活动目录服务器108存储的用户账户信息识别用户。远程桌面服务器106提供了虚拟桌面的载体,用户的桌面系统(Virtual Desktop, VD)以虚拟机(Virtual Machine, VM) 107的软件形式存在于远程桌面服务器106上。渲染服务器(Render Server,RS)109向有高清制图需求的用户提供图形虚拟机的共享渲染平台,渲染进程(Render_vm)110为3D应用程序提供3D硬件能力的重
定向渲染。
[0068]其中,远程桌面服务器106的硬件结构和软件结构是远程桌面系统中最重要的组件,它的典型结构如图4所示。远程桌面服务器106由三部分组成,分别为硬件平台(Hardware Platform) 150、系统管理程序(Hypervisor) 151、虚拟机执行空间(VirtualMachine Execution Space) 152。硬件平台150中包括服务器物理结构中的物理硬盘(Hard Drive) 160、物理处理器(Central Processing Unit, CPU) 161、物理网卡(NetworkInterface Card, NIC) 162、物理内存(Random Access Memory, RAM) 163。系统管理程序151和虚拟机执行空间152分别提供了虚拟机的硬件平台和软件平台。系统管理程序151是物理硬件和虚拟机之间的中间层,负责协调各个虚拟机对服务器物理硬件的访问,它包含多个虚拟机监视器(Virtual Machine Monitor,VMM) 170,虚拟机监视器170中包含实现虚拟机的虚拟硬件平台(Virtual Hardware Platform, VHP) 171,虚拟硬件平台171中包含了虚拟出来的虚拟硬盘172、虚拟处理器173、虚拟内存174、虚拟显卡(Video Adapter)175和虚拟网卡176等。虚拟机的软件系统运行在每个虚拟硬件平台上,并一一对应。虚拟机执行空间152中运行了多个虚拟机180,客户操作系统(Guest OS) 181、虚拟机中的应用程序(Applications)185和显示协议代理程序(Display Protocol Agent)187运行于虚拟机180中,客户操作系统181包含了一个设备驱动层(Device Driver Layer)182,安装了显卡驱动(Video Adapter Driver) 183、网卡驱动(NIC Driver) 184等,还包含显示应用程序编程接口(Display Application Programming Interface, Display API) 186。
[0069]参考图3和图4,将用户桌面系统的图像显示在客户端101上的过程为:虚拟机180中的应用程序185调用操作系统的Display API186显示应用程序界面,DisplayAPI186将应用程序界面的桌面图像数据传递至显示驱动183中,然后显示驱动183和显示协议代理程序187进行交互,由显示协议代理程序187根据远程桌面协议将桌面图像数据打包交给网卡驱动184,最后桌面图像数据经过虚拟网卡176,再经过物理网卡162发送到客户端101上。
[0070]由于桌面图像数据分为非3D图像数据和3D图像数据,因此存在以下两种应用场景,一种是普通办公场景,传输的桌面图像数据通常为非3D图像数据,另一种是高清制图办公场景,传输的桌面图像数据通常为3D图像数据。
[0071]下面对本发明实施例提供的VDI环境下的数据发送方法在上述两种应用场景下的实现过程分别进行介绍。
[0072]如图5所示,为本发明实施例提供的在普通办公场景下实现上述方法的系统逻辑结构图,本发明实施例中只以VM和TC之间的交互过程为例进行说明。图5中的TC对应于图3中的组件101a、101b或101c,桌面协议服务端对应图4中的组件187,下面对各模块功能及交互流程进行详细描述。
[0073](一)桌面协议客户端
[0074]该模块负责和桌面协议服务端交互,接收桌面协议服务端发送的桌面图像数据,并转发给指令执行和显示模块进行图像处理和显示。
[0075]该模块还负责监控自身显示状态,当桌面协议客户端被最小化、隐藏或锁屏时,反馈给桌面协议服务端,通知其进行相应的工作模式切换;当桌面协议客户端由最小化、隐藏或锁屏切换到正常显示时,反馈给桌面协议服务端,也通知其进行相应的工作模式切换。
[0076](二)工作模式设置
[0077]该模块接收桌面协议服务端发送的指令,对桌面协议服务端的工作模式进行设置和切换。
[0078](三)桌面协议服务端
[0079]该模块接收到显示驱动传来的显示指令和数据后,将指令和数据做相应处理后将得到的桌面图像数据发送到桌面协议客户端。
[0080]该模块有两种工作模式,如图6所示,正常工作模式下桌面协议服务端的工作包括:指令数据的获取、图像识别、缓存cache计算、指令整合等处理,并将处理后的指令和数据以第二速率(为保证用户体验,可以以30ms为发送周期,确保30帧的刷新率)发送到桌面协议客户端;
[0081]驱动代理模式下桌面协议服务端的工作包括:指令和数据交由⑶I子系统处理,获取处理后的需更新的图像,并将需更新的图像以第一速率(根据用户恢复显示时可以接受的显示延时进行设定,比如可以将其设置为以150ms为周期)发送到桌面协议客户端,以降低此时虚拟机对服务器的CPU占用,降低网络资源占用。
[0082]在实际应用中以第一速率为150ms为发送周期,第二速率为30ms为发送周期为例,可以实现单个VM的平均CPU占用降低20%,带宽降低10%的效果。
[0083]如图7所示,为本发明实施例提供的上述方法在普通办公场景下的实现流程图,其过程可以具体包括:
[0084]当桌面协议客户端连接虚拟机后,虚拟机的桌面协议服务端设置工作模式为正常工作模式,并开始进行指令数据的图像识别、cache计算、指令整合等操作,其中,正常工作模式下以30ms为发送周期来发送得到的桌面图像数据;
[0085]桌面协议客户端接收到桌面图像数据后进行显示桌面;
[0086]当桌面协议客户端检测自身显示状态为最小化时,发送状态变化通知给桌面协议服务端;
[0087]桌面协议服务端接收到桌面协议客户端最小化的通知后,通知工作模式设置模块设置工作模式到驱动代理模式,指令和数据交由系统的GDI子系统处理,获取桌面图像数据,其中,驱动代理模式下以150ms为发送周期发送得到的桌面图像数据;
[0088]桌面协议客户端接收桌面图像数据,对显示的图像进行更新;
[0089]当桌面协议客户端正常显示时,桌面协议客户端将此变化通知到桌面协议服务端;
[0090]桌面协议服务端接收到桌面协议客户端正常显示的通知后,通知工作模式设置模块设置工作模式到正常工作模式,并开始指令数据的图像识别、cache计算、指令整合等操作,将得到的桌面图像数据以30ms为发送周期发送给桌面协议客户端;
[0091]协议桌面客户端接收到桌面图像数据后进行显示桌面。
[0092]如图8所示,为本发明实施例提供的在高清制图办公场景下实现上述方法的系统逻辑结构图。图8中的TC对应于图3中的组件101,桌面协议服务端对应图4中的组件187,Render Server对应图3中的组件109, ?宣染进程Render_vm对应图3中的组件110。下面将就各模块功能及交互流程进行详细描述。[0093](一)指令和数据捕获,帧率控制
[0094]该模块能够接收3D渲染指令,并重定向到渲染服务器上进行指令渲染。还支持桌面协议服务端对3D渲染指令的获取速度进行控制。比如将渲染帧率减小,便可以达到减慢3D渲染指令的获取速度。
[0095](二)桌面协议服务端
[0096]该模块接收到显示驱动传来的处理指令和数据后,将指令和数据通过网络或者虚拟化平台的共享内存方式重定向到渲染服务器上进行渲染,并接收渲染后的结果,发送到桌面协议客户端进行显示;
[0097]该模块还处理桌面协议客户端连接状态变化、显示状态变化等消息,并根据结果去设置帧率,以改变3D应用程序的渲染速度,从而达到降低占用渲染服务器中GPU的处理资源的效果。
[0098](三)Render_vm
[0099]该模块主要实现了 3D指令重定向到渲染服务器上进行渲染的功能:接收桌面协议服务端的3D渲染指令,并将渲染后的结果回传给桌面协议服务端。
[0100](四)桌面协议客户端
[0101]该模块负责和桌面协议服务端交互,接收桌面协议服务端发送的桌面图像数据,并转发给指令执行和显示模块进行图像处理和显示,还负责监控自身显示状态,并发送通知消息给桌面协议服务器。
[0102]如图9所示,为本发明实施例提供的上述方法在高清制图办公场景下的实现流程图,其过程可以具体包括:
[0103]当桌面协议客户端连接虚拟机后,虚拟机的桌面协议服务端设置当前渲染帧率为正常模式,并获取3D渲染指令;
[0104]桌面协议服务端将获取的3D渲染指令通过网络或者虚拟化平台的共享内存通道发送到渲染服务器上的渲染进程,渲染进程使用GPU的图形能力对3D渲染指令进行渲染,并将渲染后的结果回传给桌面协议服务端;
[0105]桌面协议服务端以25帧率每秒的速度将渲染后得到的桌面图像数据发送给桌面协议客户端,桌面协议客户端进行桌面显示;
[0106]当桌面协议客户端检测自身显示状态为最小化时,发送状态变化通知给桌面协议服务端;
[0107]桌面协议服务端接收到客户端最小化的通知消息后,通知帧率控制模块,设置当前渲染帧率为1帧,并继续进行3D渲染指令重定向渲染;
[0108]桌面协议服务端将渲染后的结果以10帧率每秒的速率将渲染后得到的桌面图像数据发送给桌面协议客户端,桌面协议客户端进行桌面显示;
[0109]当桌面协议客户端正常显示时,桌面协议客户端将此变化通知到桌面协议服务端;
[0110]桌面协议服务端接收到客户端正常显示的通知后,通知帧率控制模块,设置当前渲染帧率为正常,并继续进行3D渲染指令重定向渲染;
[0111]桌面协议服务端以25帧率每秒的速度将渲染后得到的桌面图像数据发送给桌面协议客户端,桌面协议客户端进行桌面显示。[0112]需要说明的是,上述两个应用场景均是描述桌面协议客户端在最小化时的实现过程,当桌面协议客户端隐藏或锁屏时,同样按照上述处理过程实现,在此不再赘述。
[0113]基于上述构思,本发明实施例还提供了一种虚拟桌面基础架构VDI环境下的数据发送装置,如图10所示,为该装置的结构示意图,其中,该装置作为桌面协议服务端,可以包括下述单元:
[0114]第一发送单元101,用于当接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态;
[0115]第二发送单元102,用于当接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
[0116]其中,当所述桌面图像数据为非3D图像数据时,该装置还可以包括:
[0117]桌面图像数据第一获取单元103,用于接收到所述第一通知消息后,通过图像设备接口 GDI子系统获取桌面图像数据。
[0118]其中,当所述桌面图像数据为3D图像数据时,该装置还可以包括:
[0119]桌面图像数据第二获取单元104,用于接收到所述第一通知消息后,将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并根据所述第一帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0120]其中,当所述桌面图像数据为3D图像数据时,该装置还可以包括:
[0121]桌面图像数据第三获取单元105,用于接收到所述第二通知消息后,将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并根据所述第二帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0122]其中,所述非正常状态可以包括:
[0123]最小化状态、隐藏状态或者锁屏状态。
[0124]相应的,本发明实施例还提出一种桌面协议服务器,如图11所示,为该桌面协议服务器的硬件逻辑示意图,包括:处理器111、存储器112、通信接口 113和总线114,其中:
[0125]处理器111、存储器112、通信接口 113通过总线114相互连接;总线114可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称 EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0126]存储器112,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器112可能包含高速随机存取存储器RAM,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0127]处理器111执行存储器112所存放的程序,用于执行本发明实施例提供的VDI环境下的数据发送方法,所述方法包括:
[0128]当桌面协议服务端接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态;
[0129]当桌面协议服务端接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
[0130]当所述桌面图像数据为非3D图像数据时,桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:
[0131]桌面协议服务端通过图像设备接口 GDI子系统获取桌面图像数据。
[0132]当所述桌面图像数据为3D图像数据时,桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:
[0133]桌面协议服务端将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并
[0134]根据所述第一帧率,获取3D渲染指令;
[0135]将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0136]当所述桌面图像数据为3D图像数据时,接收到所述第二通知消息后按照如下方式获取桌面图像数据:
[0137]桌面协议服务端将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并
[0138]根据所述第二帧率,获取3D渲染指令;
[0139]将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
[0140]其中,所述非正常状态包括:
[0141]最小化状态、隐藏状态或者锁屏状态。
[0142]其中,在VDI环境下,所述桌面协议客户端处于所述虚拟桌面客户端中,所述桌面协议服务端处于虚拟桌面服务器中的虚拟机上,其中:
[0143]所述桌面协议服务端将获取的桌面图像数据通过所述虚拟机中的操作系统以及所述虚拟桌面服务器中的物理网卡发送给所述虚拟桌面客户端中的桌面协议客户端。
[0144]本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0145]本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的
>J-U ρ?α装直。
[0146]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0147]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0148]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0149]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含 这些改动和变型在内。
【权利要求】
1.一种虚拟桌面基础架构VDI环境下的数据发送方法,其特征在于,包括:当桌面协议服务端接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态;当桌面协议服务端接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
2.如权利要求1所述的方法,其特征在于,所述桌面图像数据为非3D图像数据;则桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:桌面协议服务端通过图像设备接口 GDI子系统获取桌面图像数据。
3.如权利要求1所述的方法,其特征在于,所述桌面图像数据为3D图像数据;则桌面协议服务端接收到所述第一通知消息后按照如下方式获取桌面图像数据:桌面协议服务端将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并根据所述第一帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
4.如权利要求1所述的方法,其特征在于,所述桌面图像数据为3D图像数据;则桌面协议服务端接收到所述第二通知消息后按照如下方式获取桌面图像数据:桌面协议服务端将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并根据所述第二帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
5.如权利要求1~4任一所述的方法,其特征在于,所述非正常状态包括:最小化状态、隐藏状态或者锁屏状态。
6.如权利要求1~5任一所述的方法,其特征在于,在VDI环境下,所述桌面协议客户端处于所述虚拟桌面客户端中,所述桌面协议服务端处于虚拟桌面服务器中的虚拟机上,其中:所述桌面协议服务端将获取的桌面图像数据通过所述虚拟机中的操作系统以及所述虚拟桌面服务器中的物理网卡发送给所述虚拟桌面客户端中的桌面协议客户端。
7.—种虚拟桌面基础架构VDI环境下的数据发送装置,其特征在于,所述装置作为桌面协议服务端,包括:第一发送单元,用于当接收到用于表征桌面协议客户端处于非正常状态的第一通知消息时,将接收到所述第一通知消息后获取的桌面图像数据以第一速率发送给所述桌面协议客户端;所述非正常状态为所述桌面协议客户端在预先设置的第一时间长度内对其所在的终端桌面没有操作的状态; 第二发送单元,用于当接收到用于表征桌面协议客户端处于正常状态的第二通知消息时,将接收到所述第二通知消息后获取的桌面图像数据以大于所述第一速率的第二速率发送给所述桌面协议客户端;所述正常状态为桌面协议客户端在预先设置的第二时间长度内对其所在的终端桌面有操作的状态。
8.如权利要求7所述的装置,其特征在于,所述桌面图像数据为非3D图像数据;则所述装置还包括:桌面图像数据第一获取单元,用于接收到所述第一通知消息后,通过图像设备接口⑶I子系统获取桌面图像数据。
9.如权利要求7所述的装置,其特征在于,所述桌面图像数据为3D图像数据;则所述装置还包括:桌面图像数据第二获取单元,用于接收到所述第一通知消息后,将当前渲染帧率设置为第一帧率;所述第一帧率小于当接收到的所述第二通知消息时的第二帧率;并根据所述第一帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
10.如权利要求7所述的装置,其特征在于,所述桌面图像数据为3D图像数据;则所述装置还包括:桌面图像数据第三获取单元,用于接收到所述第二通知消息后,将当前渲染帧率设置为第二帧率;所述第二帧率大于当接收到的所述第一通知消息时的第一帧率;并根据所述第二帧率,获取3D渲染指令;将所述3D渲染指令重定向到渲染服务器上进行渲染,得到渲染后的桌面图像数据。
11.如权利要求7~10任一所述的装置,其特征在于,所述非正常状态包括:`最小化状态、隐藏状态或者锁屏状态。
12.如权利要求7~10任一所述的装置,其特征在于,在VDI环境下,所述桌面协议客户端处于所述虚拟桌面客户端中,所述桌面协议服务端处于虚拟桌面服务器中的虚拟机上,其中:所述桌面协议服务端将获取的桌面图像数据通过所述虚拟机中的操作系统以及所述虚拟桌面服务器中的物理网卡发送给所述虚拟桌面客户端中的桌面协议客户端。
【文档编号】G06F9/455GK103701807SQ201310733699
【公开日】2014年4月2日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】江志敏, 庞西豹 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1