基于VDI的软件处理方法、装置及系统与流程

文档序号:13164105阅读:477来源:国知局
基于VDI的软件处理方法、装置及系统与流程

本发明涉及通信领域,具体而言,涉及一种基于vdi的软件处理方法、装置及系统。



背景技术:

相关技术的虚拟桌面基础架构(virtualdesktopinfrastructure,简称为vdi),它不是给每个用户都配置一台运行windows系统,如xp或vista(后文以windowsxp为例进行说明)的桌面pc,而是通过在数据中心的服务器运行windowsxp,将你的桌面进行虚拟化。用户通过来自客户端设备(客户机或是家用pc)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。

随着vdi桌面技术日益成熟,相关技术使用的vdi桌面产品已经很多,但是也带来了很多问题。尤其是在桌面中使用软件管理工具也受到很大限制。软件管理工具同时下载或者安装软件就会引起磁盘io冲高,导致vdi界面卡死,使得在pc机上可以正常使用的软件管理工具在vdi桌面中无法使用。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

本发明实施例提供了一种基于vdi的软件处理方法、装置及系统,以至少解决相关技术中vdi桌面容易卡死的问题。

根据本发明的一个实施例,提供了一种基于vdi的软件处理方法,包括:接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;判断当前处理中的所述请求消息的个数是否小于预设阈值;在判断结果为是时,向所述vdi客户端反馈用于允许下载所述桌面软件的确认消息。

可选地,在所述判断结果为否时,所述方法还包括:拒绝所述vdi客户端下载所述桌面软件。

可选地,在接收vdi客户端发送的用于请求下载桌面软件的请求消息之后,所述方法还包括:获取安装所述桌面软件所需的主机参数;根据所述主机参数调整所述预设阈值。

可选地,在判断当前处理中的所述请求消息的个数是否小于预设阈值之前,所述方法还包括:获取下载所述桌面软件的vdi服务器当前的磁盘io使用率;根据所述磁盘io使用率调整所述预设阈值。

可选地,根据所述磁盘io使用率调整所述预设阈值包括:在所述磁盘io使用率大于第一预定阈值时,减少所述预设阈值;和/或,在所述磁盘io使用率小于第二预定阈值时,增加所述预设阈值。

可选地,所述主机参数包括以下至少之一:cpu个数、内存大小、系统盘大小。

根据本发明的一个实施例,提供了另一种基于vdi的软件处理方法,包括:向虚拟桌面基础架构vdi服务器发送用于请求下载桌面软件的请求消息;接收所述vdi服务器反馈的确认消息,所述确认消息携带vdi客户端运行所述桌面软件所需的指定主机参数,其中,所述确认消息用于在所述vdi服务器当前处理的所述请求消息的个数小于预设阈值的情况下允许下载所述桌面软件;在所述vdi客户端的主机参数大于所述指定主机参数时,确认下载所述桌面软件。

可选地,在接收所述vdi服务器反馈的确认消息之后,所述方法还包括:在所述vdi客户端的主机参数小于或等于所述指定主机参数时,放弃下载所述桌面软件。

可选地,所述主机参数包括以下至少之一:cpu个数、内存大小、系统盘大小。

可选地,接收所述vdi服务器反馈的确认消息包括:通过可拓展标记语言xml格式接收所述vdi服务器反馈的所述确认消息。

根据本发明的另一个实施例,提供了一种基于vdi的软件处理装置,包括:第一接收模块,用于接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;判断模块,用于判断当前处理中的所述请求消息的个数是否小于预设阈值;反馈模块,用于在判断结果为是时,向所述vdi客户端反馈用于允许下载所述桌面软件的确认消息。

根据本发明的另一个实施例,提供了另一种基于vdi的软件处理装置,包括:发送模块,用于向虚拟桌面基础架构vdi服务器发送用于请求下载桌面软件的请求消息;第二接收模块,用于接收所述vdi服务器反馈的确认消息,所述确认消息携带vdi客户端运行所述桌面软件所需的指定主机参数,其中,所述确认消息用于在所述vdi服务器当前处理的所述请求消息的个数小于预设阈值的情况下允许下载所述桌面软件;确认模块,用于在所述vdi客户端的主机参数大于所述指定主机参数时,确认下载所述桌面软件。

根据本发明的又一个实施例,提供了一种基于vdi的软件处理系统,包括vdi服务器、一个或多个vdi客户端,所述vdi服务器还包括:第一接收模块,用于接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;判断模块,用于判断当前处理中的所述请求消息的个数是否小于预设阈值;反馈模块,用于在判断结果为是时,向所述vdi客户端反馈用于允许下载所述桌面软件的确认消息;所述vdi客户端还包括:发送模块,用于向所述vdi服务器发送所述请求消息;第二接收模块,用于接收所述vdi服务器反馈的所述确认消息,其中,所述确认消息携带vdi客户端运行所述桌面软件所需的指定主机参数;确认模块,用于在所述vdi客户端的主机参数大于所述指定主机参数时,确认下载所述桌面软件。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:

接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

判断当前处理中的所述请求消息的个数是否小于预设阈值;

在判断结果为是时,向所述vdi客户端反馈用于允许下载所述桌面软件的确认消息。

通过本发明,接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息,再判断当前处理中的所述请求消息的个数是否小于预设阈值,在判断结果为是时,向所述vdi客户端反馈用于允许下载所述桌面软件的确认消息。由于判断了当前处理中的所述请求消息的个数是否小于预设阈值,避免了vdi服务器在高负荷下同时下载和安装多个桌面软件,可以解决相关技术中vdi桌面容易卡死的问题,达到在同时推送软件的同时桌面又不会卡死的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的网络架构图;

图2是根据本发明实施例的一种基于vdi的软件处理方法的流程图;

图3是根据本发明实施例的另一种基于vdi的软件处理方法的流程图;

图4是根据本发明实施例的一种基于vdi的软件处理装置的结构框图;

图5是根据本发明实施例的另一种基于vdi的软件处理装置的结构框图;

图6是根据本发明实施例的一种基于vdi的软件处理系统的结构框图;

图7是根据本发明实施例的客户端请求下载软件的流程图;

图8是根据本发明实施例的服务端收到客户端请求的流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例可以运行于图1所示的网络架构上,图1是根据本发明实施例的网络架构图,如图1所示,该网络架构包括:vdi服务器、多个vdi客户端、限流装置,其中,限流装置可以是vdi服务器的一部分,也可以单独设置在vdi服务器和每个vdi客户端之间,vdi服务器和多个vdi客户端分别连接。

在本实施例中提供了一种运行于上述网络架构的基于vdi的软件处理方法,图2是根据本发明实施例的一种基于vdi的软件处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

步骤s204,判断当前处理中的请求消息的个数是否小于预设阈值;

步骤s206,在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息。

通过上述步骤,接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息,再判断当前处理中的请求消息的个数是否小于预设阈值,在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息。由于判断了当前处理中的请求消息的个数是否小于预设阈值,避免了vdi服务器在高负荷下同时下载和安装多个桌面软件,可以解决相关技术中vdi桌面容易卡死的问题,达到在同时推送软件的同时桌面又不会卡死的效果。

可选地,上述步骤的执行主体可以为vdi服务器、限流装置等,但不限于此。

在根据本实施例的可选实施方式中,在判断结果为否时,方法还包括:拒绝vdi客户端下载桌面软件。

可选的,本实施例中的预设阈值可以动态调整,可以采用以下两种调整方式:

在接收vdi客户端发送的用于请求下载桌面软件的请求消息之后,方法还包括:

s11,获取安装桌面软件所需的主机参数;

s12,根据主机参数调整预设阈值。

可选的,主机参数可以但不限于为:cpu个数、内存大小、系统盘大小、cpu利用率、带宽占用率。

在判断当前处理中的请求消息的个数是否小于预设阈值之前,方法还包括:

s21,获取下载桌面软件的vdi服务器当前的磁盘io使用率;

s22,根据磁盘io使用率调整预设阈值。

可选的,根据磁盘io使用率调整预设阈值包括:

在磁盘io使用率大于第一预定阈值时,减少预设阈值;在磁盘io使用率小于第二预定阈值时,增加预设阈值。

在本实施例中提供了另一种运行于上述网络架构的基于vdi的软件处理方法,图3是根据本发明实施例的另一种基于vdi的软件处理方法的流程图,如图3所示,该流程包括如下步骤:

步骤s302,向虚拟桌面基础架构vdi服务器发送用于请求下载桌面软件的请求消息;

步骤s304,接收vdi服务器反馈的确认消息,确认消息携带vdi客户端运行桌面软件所需的指定主机参数,其中,确认消息用于在vdi服务器当前处理的请求消息的个数小于预设阈值的情况下允许下载桌面软件;

步骤s306,在vdi客户端的主机参数大于指定主机参数时,确认下载桌面软件。

可选地,上述步骤的执行主体可以为vdi客户端等,但不限于此。

在根据本实施例的可选实施方式中,在接收vdi服务器反馈的确认消息之后,方法还包括:在vdi客户端的主机参数小于或等于指定主机参数时,放弃下载桌面软件。

vdi客户端的主机参数可以但不限于为:cpu个数、内存大小、系统盘大小、cpu利用率、带宽占用率。运行桌面软件所需的指定主机参数可以但不限于为:cpu个数、内存大小、系统盘大小、cpu利用率、带宽占用率。

可选的,接收vdi服务器反馈的确认消息包括:通过可拓展标记语言xml格式接收vdi服务器反馈的确认消息。vdi服务器和vdi客户端之间通过xml格式进行交互。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

实施例2

在本实施例中还提供了一种基于vdi的软件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的一种基于vdi的软件处理装置的结构框图,如图4所示,该装置包括:

第一接收模块40,用于接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

判断模块42,用于判断当前处理中的请求消息的个数是否小于预设阈值;

反馈模块44,用于在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息。

图5是根据本发明实施例的另一种基于vdi的软件处理装置的结构框图,如图5所示,该装置包括:

发送模块50,用于向虚拟桌面基础架构vdi服务器发送用于请求下载桌面软件的请求消息;

第二接收模块52,用于接收vdi服务器反馈的确认消息,确认消息携带vdi客户端运行桌面软件所需的指定主机参数,其中,确认消息用于在vdi服务器当前处理的请求消息的个数小于预设阈值的情况下允许下载桌面软件;

确认模块54,用于在vdi客户端的主机参数大于指定主机参数时,确认下载桌面软件。

图6是根据本发明实施例的一种基于vdi的软件处理系统的结构框图,如图6所示,该系统包括:vdi服务器60、一个或多个vdi客户端62,

vdi服务器60还包括:

第一接收模块40,用于接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

判断模块42,用于判断当前处理中的请求消息的个数是否小于预设阈值;

反馈模块44,用于在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息;

vdi客户端62还包括:

发送模块50,用于向vdi服务器发送请求消息;

第二接收模块52,用于接收vdi服务器反馈的确认消息,其中,确认消息携带vdi客户端运行桌面软件所需的指定主机参数;

确认模块54,用于在vdi客户端的主机参数大于指定主机参数时,确认下载桌面软件。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本实施例是根据本发明的可选实施例,用于对本发明进行具体详细的说明:

本实施例提供的是一种基于vdi的软件分批推送的方法和装置,本实施例在软件管理工具中加入双向动态限流装置,将同一时刻安装在vdi桌面的软件进行限制,使得同一时刻只有一部分桌面在安装软件,从而分批完成软件的安装,减轻vdi服务器的压力,不影响用户的使用。

根据本实施例的一种基于vdi桌面的软件分批推送,可以解决在vdi桌面中同时下载或者安装软件会引起磁盘io冲高,导致vdi桌面卡死,影响用户使用,可以适用于vdi桌面下对软件的管理。

本实施例可以克服在现有的vdi桌面中无法同时大量推送软件问题的缺陷,提供了一种基于vdi的软件分批推送方法。

本实施例是通过加入双向动态限流装置,在服务端和客户端进行安装软件的限流,来完成vdi桌面中软件的安装。

服务端的限流装置是动态限流,根据vdi桌面的各项指标以及软件安装的个数大小等计算出阈值,包括:

在最简单的情况中,vdi桌面只需要为每一个会话提供50kbps带宽,但是我们的研究和测试表明,每一个用户会话的平均带宽需求很可能达到250至300kbps。因此服务端限流文件个数的基础阈值我们确定为:vdi桌面总个数的五分之一。

服务端事先将文件分类:根据小于1m,100m-1g,大于1g,将文件分为小文件,普通文件和大文件;同时保存安装文件所需的cpu个数,内存大小,系统盘大小等信息。

动态限流装置的阈值计算主要有以下因素决定:

当服务器检测到磁盘io使用小于50%,基础阈值增加1,磁盘io使用大于70%时,则基础阈值减少1;

服务器收到请求下载文件是小文件,基础阈值+1;大文件,基础阈值-1;

可选的,阈值最小值和最大值不能小于或者大于基础阈值的减加1/2,如基础阈值为6,则可以设定最大值和最小值分别为9和3。

本实施例的客户端限流的基本原理如下:

客户端请求下载软件时,如果满足阈值,服务器返回可以下载,同时将软件下载需要条件通过可拓展标记语言xml(extensiblemarkuplanguage)返回给客户端。

客户端限流装置主要原理就是:通过将服务端返回的xml进行解析,判断软件所需的cpu个数,内存大小,系统盘大小等,如果客户端所属桌面不满足条件就不进行下载,否则继续下载。避免了下载一半内存不足或者安装一半系统盘不够的情况,进一步对下载进行了限制。

客户端下载所需条件是上传软件包时添加安装所需的必备条件:如所需cpu个数,内存大小,系统盘大小等。

由此可知得出,在添加了双向动态限流装置后,可以动态地统计和调整当前正在安装的软件的个数,超过阀值则拦截,否则可以正常安装,同时在客户端进行了有效判断,从而实现了可以控制速率,控制并发,控制数据包的传输速率和时机,实现下载性能和质量方面的提升,保证软件分批、顺利安装,并且在次期间不影响用户的使用。

通过本实施例,与现有技术相比,取得了技术上进步,对同一时刻桌面安装软件进行限制,实现在vdi桌面中正常安装所需软件,解决同时大量安装软件引起的桌面卡死,无法使用的情况。达到了可以在vdi中管理软件的目的,节省了人工安装的成本,提高了安装效率等。

本实施例在vdi桌面中实施软件分批推送方案,可以将软件顺利安装在所有vdi桌面中,不至于引起vdi桌面卡死,用户无法使用的情况。

本实施例在于优化vdi桌面下的软件管理,通过加入双向限流装置来完成软件的分批推送和安装。从图一可以看出本发明的软件管理装置主要分为三个部分:软件管理服务器、限流装置和软件管理客户端。软件管理服务端负责管理所有软件的预载、卸载、停用、启用等;软件限流装置,对安装软件进行限;软件管理客户端执行服务端的命令,还可手动操作软件,包括安装、运行、卸载等。

图7是根据本发明实施例的客户端请求下载软件的流程图,如图7所示,图8是根据本发明实施例的服务端收到客户端请求的流程图,如图8所示,从图7和图8可以看出下载软件流程,通过加入了软件限流装置,使得当前下载软件的数量不超过服务端配置阈值(阈值通过算法动态计算),从而不会发生所有桌面同时安装软件的情况,因此也不会导致vdi桌面中的磁盘io冲高,桌面卡死的现象。

下面对客户端的下载任务为例进行说明:

客户端收到模板任务安装软件

步骤一、客户端收到服务端下发的命令安装软件,客户端解析命令,将安装软件放入安装队列,同时界面显示等待中;

步骤二、客户端从软件安装对列中取出数据,界面显示下载中,同时向服务端限流装置发送下载请求;

步骤三、服务端收到请求,限流装置判断此时下载的软件数是否超过阈值,超过之后则返回给客户端,服务端忙,客户端需等待下载,客户端界面显示服务端忙;否则返回可以下载,客户端收到可以下载请求,先判断是否满足服务端下载和安装软件的条件,符合直接下载,否则给出相应错误提示。

步骤四、客户端收到服务端忙后等待30s重新向服务端发送请求,如果限流装置返回可以下载,则客户端进行下载;否则等待后重试,在等待的过程中客户端界面显示取消按钮,此时也可手动取消下载;

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

s2,判断当前处理中的请求消息的个数是否小于预设阈值;

s3,在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行接收虚拟桌面基础架构vdi客户端发送的用于请求下载桌面软件的请求消息;

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行判断当前处理中的请求消息的个数是否小于预设阈值;

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行在判断结果为是时,向vdi客户端反馈用于允许下载桌面软件的确认消息。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1