技术领域
[0001] 本发明涉及虚拟云桌面应用技术领域,尤其涉及一种虚拟云桌面监测方法、客户端、服务端和存储介质。
相关背景技术
[0002] 随着远程办公的常态化,虚拟云桌面得到广泛使用,用户使用体验也越来越重要。目前,用户在客户端使用虚拟云桌面的过程中,如果遇到服务端虚拟机出现黑屏、蓝屏、登录过程卡死等屏幕无响应故障,用户只能通过电话报障等方式主动通知管理员处理故障,即管理员无法及时获知用户在使用虚拟云桌面过程中是否出现卡屏,无法及时对故障及时干预和解决,这样容易导致用户使用的满意度下降。
具体实施方式
[0035] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0036] 虚拟云桌面的使用能够让远程办公等云端应用成为可能,现有技术下,通过在一台物理服务器上虚拟出若干个桌面虚拟机,用户在虚拟云桌面客户端通过鉴权后连接上桌面虚拟机,并通过输入操作指令(例如键盘输入、鼠标点击)等方式控制所对应的桌面虚拟机的运行,该桌面虚拟机根据输入操作指令运行,并将当前桌面信息压缩成桌面数据流发送到虚拟云桌面客户端,从而在虚拟云桌面客户端的显示屏上显示反馈回来的桌面信息,形成人机交互过程;但是当桌面虚拟机在运行过程中出现卡死,例如出现蓝屏、黑屏、登录界面不动等故障时,桌面虚拟机无法向虚拟云桌面客户端发送桌面数据流,导致虚拟云桌面客户端尝试重连并持续显示卡死画面,此时需要用户主动通过打电话等方式通知管理员处理,因此现有技术无法针对上述故障作出及时干预,用户体验还不够好。
[0037] 基于此,本发明实施例第一方面提供了一种虚拟云桌面监测方法、客户端、服务端和存储介质,通过在虚拟云桌面客户端监测桌面虚拟机发送过来的桌面数据流的通断状态,判断桌面虚拟机是否发生卡屏,当桌面数据流处于断开状态,虚拟云桌面客户端即向虚拟云桌面服务端发送卡屏通知,实现主动报障;另一方面,虚拟云桌面服务端在接收到卡屏通知后对卡屏图片做进一步判断,并在卡屏图片与参考图片之间的相似度超过预设相似度阈值时展示故障信息从而通知管理员进行排障,利用上述虚拟云桌面监测方法,可以实现对卡屏故障的主动上报,促使管理员及时处理,从而提升虚拟云桌面的用户体验。
[0038] 下面结合附图,对本发明实施例作进一步阐述。
[0039] 参照图1,本发明实施例第一方面提供了一种虚拟云桌面监测方法,应用于虚拟云桌面客户端,虚拟云桌面客户端连接于虚拟云桌面服务端中的桌面虚拟机,虚拟云桌面监测方法包括但不限于以下步骤:
[0040] S110,监测桌面虚拟机发送的桌面数据流的通断状态;
[0041] 在虚拟云桌面客户端一侧监控接收到的桌面数据流,用于判断是否发生卡屏故障,例如,在桌面虚拟机正常工作的情况下,桌面数据流是连续发送的,因此在虚拟云桌面客户端监测到连续的桌面数据流;又如,在桌面虚拟机发生卡死的情况下,无法发送桌面数据流,因此在虚拟云桌面客户端监测到桌面数据流处于断开状态。
[0042] S120,响应于所获取的桌面数据流处于断开状态,向虚拟云桌面服务端发送卡屏通知。
[0043] 当虚拟云桌面客户端监测到桌面数据流处于断开状态,则认为当前连接着的桌面虚拟机发生了卡屏故障,此时虚拟云桌面客户端向虚拟云桌面服务端发送一个卡屏通知,提醒虚拟云桌面服务端及时进行处理。可以理解的是,接收到卡屏通知的虚拟云桌面服务端可以进行不同的处理来通知管理员,例如,在一种实施方式中,虚拟云桌面服务端可以直接对卡屏通知进行转发,直接通知管理员查看;又如,在另一种实施方式中,虚拟云桌面服务端可以对当前卡屏故障作进一步的判断,再通知管理员进行处理,这一方式将在后面进行说明。
[0044] 在一实施例中,参照图2,虚拟云桌面监测方法还包括:
[0045] S130,响应于向虚拟云桌面服务端发送卡屏通知,对桌面进行截屏得到第二卡屏图片;
[0046] S140,向虚拟云桌面服务端发送第二卡屏图片。
[0047] 当虚拟云桌面客户端向虚拟云服务端发送卡屏通知,虚拟云桌面客户端还需要向虚拟云服务端发送卡屏证据,通过步骤S130对虚拟云桌面客户端的当前桌面进行截屏,得到第二卡屏图片,连同卡屏通知一起发送到虚拟云桌面服务端,由虚拟云桌面服务端作进一步判断。
[0048] 在一实施例中,参照图3,步骤S120进一步包括以下步骤:
[0049] S121,监测虚拟云桌面客户端的输入事件;
[0050] S122,自监测到输入事件起,响应于所获取的桌面数据流处于断开状态的时长超过预设时间阈值,向虚拟云桌面服务端发送卡屏通知。
[0051] 虚拟云桌面客户端在监控桌面数据流的同时,还监控用户的输入事件,输入事件的类型很多,例如,鼠标点击事件、键盘输入事件、触控屏的触控输入事件等;监控输入事件的目的在于提高卡屏判断的准确性,具体来说,当桌面数据流断开、用户在显示屏上看到卡死画面时,用户就会尝试进行一些输入行为来确认是否真的发生卡屏,例如连续点击多次鼠标、随便输入几个字母等等,此时虚拟云桌面客户端可以通过监测这类事件来判断用户是否正在尝试确认;当监测到桌面数据流断开并监测到这类输入事件时,启动计时,自监测到这类输入事件开始计算,桌面数据流断开时间超过预设时间阈值时,才启动卡屏通知的发送流程。这样可以兼容一些虚拟云桌面服务器具有的在用户停止输入一段时间后自动停止发送桌面数据流的特性,避免出现误告警的情况。可以理解的是,上述举例的输入事件还可以是单次鼠标点击、单次键盘输入等常规输入事件,这样,虚拟云桌面客户端对桌面数据流断开后的第一个常规输入事件启动计时即可。
[0052] 在一实施例中,参照图4,虚拟云桌面监测方法还包括:
[0053] S150,响应于向虚拟云桌面服务端发送卡屏通知,输出排障提示。
[0054] 由于当前虚拟云桌面客户端已经显示卡死画面,在管理员进行故障判断和排障期间,用户可以根据给出的排障提示进行一些操作,协助解决故障,例如通过排障提示可以告知用户尝试重启机器、重启某些服务进程等。
[0055] 本发明实施例的虚拟云桌面监测方法通过监控桌面数据流的通断状态实现对卡屏故障的主动上报,从而使得虚拟云桌面服务端及时接收到卡屏通知,促使管理员及时对当前故障进行排查,相比传统的电话通知等方式,无需用户主动发起,实时性更好,能够提升虚拟云桌面的使用体验。
[0056] 参照图5,本发明实施例第二方面提供了一种虚拟云桌面监测方法,应用于虚拟云桌面服务端,虚拟云桌面服务端设有连接虚拟云桌面客户端的桌面虚拟机,包括:
[0057] S210,接收虚拟云桌面客户端发送的卡屏通知,卡屏通知由虚拟云桌面客户端在接收到的桌面数据流处于断开状态下发送;
[0058] 虚拟桌面客户端监测桌面虚拟机发送的桌面数据流的通断状态,并响应于所获取的桌面数据流处于断开状态,向虚拟云桌面服务端发送卡屏通知;虚拟云桌面服务端接收到虚拟云桌面客户端发送的卡屏通知,通过分析卡屏通知的来源可以定位到该虚拟云桌面客户端对应的桌面虚拟机。
[0059] S220,响应于接收到卡屏通知,对桌面虚拟机进行截屏,得到第一卡屏图片;
[0060] 本步骤对应虚拟云桌面服务端仅接收到卡屏通知而没有接收到卡屏图片的情况,这时虚拟云桌面服务端需要在本地对桌面虚拟机进行截屏,从而得到用于后续判断的第一卡屏图片。
[0061] S230,将第一卡屏图片与参考图片进行比对,判断第一卡屏图片和参考图片的相似度;
[0062] 参考图片预设在虚拟云桌面服务端中,可以由管理员手动添加各种与卡屏相关的图片,例如参考图片包括黑屏图片、蓝屏图片、登录界面图片等;通过将截屏所得的第一卡屏图片与参考图片进行对比,可以判断出第一卡屏图片是否与某一参考图片高度相似,若是,则认为当前桌面虚拟机确实发生卡屏。可以理解的是,判断第一卡屏图片和参考图片之间的相似度可以通过多种方式实现,例如,感知哈希算法、基于卷积神经网络的算法、尺度不变特征转换算法等。
[0063] S240,响应于第一卡屏图片和参考图片的相似度超过预设相似度阈值,输出卡屏提示信息。
[0064] 管理员可以根据需要设定预设相似度阈值的大小,例如,使用一个统一的预设相似度阈值,例如85%,第一卡屏图片与任意参考图片判断得到的相似度都与该固定的预设相似度阈值进行比较,只要判断得到的相似度超过85%即认为当前桌面虚拟机发生卡屏;又如,针对每一张参考图片设置一个单独的预设相似度阈值,将第一卡屏图片与参考图片逐一比对后选出最近似的参考图片,并判断第一卡屏图片与该参考图片的相似度是否超过该参考图片对应的预设相似度阈值。
[0065] 在一实施方式中,虚拟云桌面监测方法还包括:
[0066] 预加载参考图片。
[0067] 可以理解的是,在一些情况下,虚拟云桌面服务端包括运行桌面虚拟机的第一物理主机和运行管理系统的第二物理主机。由于管理员是通过运行管理系统对虚拟云桌面系统进行管理的,因此通常来说,管理员在第二物理主机上管理参考图片,例如添加和删除参考图片;由前述步骤S210至步骤S240可知,为了避免误告警,需要先在第一物理主机上对第一卡屏图片和参考图片进行相似度判断,再根据相似度判断结果向第二物理主机的运行管理系统上报,因此第一物理主机上需要预加载第二物理主机上的参考图片,以便于快速判断相似度。
[0068] 基于上述实施方式,当预加载参考图片,还获取参考图片的预设相似度阈值。
[0069] 同样地,第一物理主机需要从第二物理主机的运行管理系统中获取参考图片的预设相似度阈值,以便于快速判断相似度,可以理解的是,预设相似度阈值可以是统一一个阈值,也可以是对应不同参考图片的不同阈值。
[0070] 在一实施例中,卡屏提示信息包括虚拟云桌面客户端的信息、桌面虚拟机的信息和第一卡屏图片。
[0071] 当桌面虚拟机判断为发生卡屏时,由虚拟云桌面服务端收集相关信息并向管理员报告,其中虚拟云桌面客户端的信息用于告知管理员是哪位用户在使用过程中出现问题,桌面虚拟机的信息用于告知管理员发生卡屏的是哪一个桌面虚拟机,第一卡屏图片用于告知管理员当前卡屏故障发生在哪一阶段,管理员还可以将该第一卡屏图片加入到参考图片库中,以便后续使用。
[0072] 本发明实施例响应于虚拟云桌面客户端发送的卡屏通知进行后续判断,通过相似度判断可以得出当前桌面虚拟机是否确实发生卡屏故障,从而减小卡屏误告警,并在判断为发生卡屏时及时通知管理员进行故障处理,进一步提升虚拟云桌面的用户体验。
[0073] 参照图6,本发明实施例第三方面提供了一种虚拟云桌面监测方法,应用于虚拟云桌面服务端,虚拟云桌面服务端设有连接虚拟云桌面客户端的桌面虚拟机,包括:
[0074] S310,接收虚拟云桌面客户端发送的卡屏通知和第二卡屏图片,卡屏通知由虚拟云桌面客户端在接收到的桌面数据流处于断开状态下发送,第二卡屏图片由虚拟云桌面客户端对自身的桌面截屏所得;
[0075] 虚拟桌面客户端监测桌面虚拟机发送的桌面数据流的通断状态,并响应于所获取的桌面数据流处于断开状态,向虚拟云桌面服务端发送卡屏通知和对桌面进行截屏所得的第二卡屏图片;区别于本发明实施例第二方面的虚拟云桌面监测方法,除了接收卡屏通知,本实施例的虚拟云桌面服务端还接收来自虚拟云桌面客户端的第二卡屏图片。
[0076] S320,将第二卡屏图片与参考图片进行比对,判断第二卡屏图片和参考图片的相似度;
[0077] 通过将接收到的第二卡屏图片与参考图片进行对比,可以判断出第二卡屏图片是否与某一参考图片高度相似,若是,则认为当前桌面虚拟机确实发生卡屏。可以理解的是,判断第二卡屏图片和参考图片之间的相似度可以通过多种方式实现,例如,感知哈希算法、基于卷积神经网络的算法、尺度不变特征转换算法等。
[0078] S330,响应于第二卡屏图片和参考图片的相似度超过预设相似度阈值,输出卡屏提示信息。
[0079] 管理员可以根据需要设定预设相似度阈值的大小,例如,使用一个统一的预设相似度阈值,又或者,针对每一张参考图片设置一个单独的预设相似度阈值。
[0080] 本发明实施例第三方面提供的虚拟云桌面监测方法与第二方面提供的虚拟云桌面监测方法之间的根本区别在于生成卡屏图片的方法不相同,因此虚拟云桌面客户端的发送内容和虚拟云桌面服务端的接收内容也有所不同,其他方面均相同,为了避免重复赘述,除了步骤S310至S330,其他基于上述步骤的内容可以参考实施例第二方面的说明。
[0081] 本发明实施例的第四方面提供了一种虚拟云桌面客户端,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面的虚拟云桌面监测方法。
[0082] 参照图7,以虚拟云桌面客户端1000中的控制处理器1001和存储器1002可以通过总线连接为例。存储器1002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器1002可以包括高速随机存取存储器1002,还可以包括非暂态存储器1002,例如至少一个磁盘存储器1002、闪存器件、或其他非暂态固态存储器1002件。在一些实施方式中,存储器1002可选包括相对于控制处理器1001远程设置的存储器1002,这些远程存储器1002可以通过网络连接至虚拟云桌面客户端
1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0083] 本领域技术人员可以理解,图7中示出的装置结构并不构成对虚拟云桌面客户端1000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0084] 本发明实施例的第五方面提供了一种虚拟云桌面服务端,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第二方面或第三方面的虚拟云桌面监测方法。
[0085] 参照图8,以虚拟云桌面服务端2000中的控制处理器2001和存储器2002可以通过总线连接为例。存储器2002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器2002可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器2002可选包括相对于控制处理器2001远程设置的存储器,这些远程存储器可以通过网络连接至虚拟云桌面服务端2000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0086] 本领域技术人员可以理解,图8中示出的装置结构并不构成对虚拟云桌面服务端2000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0087] 本发明实施例的第六方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被图7中的一个控制处理器1001执行,可使得上述一个或多个控制处理器执行上述方法实施例中的虚拟云桌面监测方法,例如,执行以上描述的图1中的方法步骤S110至S120、图2中的方法步骤S130至S150、图3中的方法步骤S121至S122和图4中的方法步骤S150;又如,被图8中的一个控制处理器2001执行,可使得上述一个或多个控制处理器执行上述方法实施例中的虚拟云桌面监测方法,例如,执行以上描述的图5中的方法步骤S210至S240和图6中的方法步骤S310至S330。
[0088] 以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0089] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0090] 以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。