CN116893880A - 虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 - Google Patents
虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116893880A CN116893880A CN202310900791.2A CN202310900791A CN116893880A CN 116893880 A CN116893880 A CN 116893880A CN 202310900791 A CN202310900791 A CN 202310900791A CN 116893880 A CN116893880 A CN 116893880A
- Authority
- CN
- China
- Prior art keywords
- application
- virtual machine
- desktop
- image
- equipment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质,其中,该方法包括:向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备;检测桌面虚拟机是否与终端设备连接,如果桌面虚拟机与终端设备连接,则基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机。本申请能够将负载高的应用从桌面服务器中卸载到终端设备中。同时,本申请具有可避免数据泄露,降低应用重复下载次数等优点。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质。
背景技术
目前,用户可通过终端设备远程操控位于桌面服务器中的桌面虚拟机,例如,通过远程操控技术,点击桌面虚拟机中的应用图标,使桌面虚拟机运行应用图标对应的应用程序。
然而,桌面服务器需要运行多个桌面虚拟机,因此,在桌面服务器的计算资源有限的前提下,多个桌面虚拟机同时运行应用程序需要占用桌面桌面服务器的很大的计算资源,即应用程序对于桌面服务器而言,是一种高负载。
发明内容
本申请实施例的目的在于提供一种虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质,用以将负载高的应用从桌面服务器中卸载到终端设备中。
第一方面,本发明提供一种虚拟机与终端的应用程序协同方法,所述方法包括:
向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备;
检测所述桌面虚拟机是否与终端设备连接,如果所述桌面虚拟机与所述终端设备连接,则基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机。
本申请第一方面的方法通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测所述桌面虚拟机是否与终端设备连接,进而能够在所述桌面虚拟机与所述终端设备连接,基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建所述应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
在可选的实施方式中,所述方法包括:
当用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,所述远程桌面协议包括应用通道,所述应用通道用于传输所述事件信息,以及,所述应用通道还用于传输运行所述应用镜像所需的桌面虚拟机内部数据。
本可选的实施方式能够在用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息,进而基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,这样一来,通过容器运行应用镜像,便于应用镜像在不同终端设备上运行。此外,通过应用通道可传输所述事件信息和运行所述应用镜像所需的桌面虚拟机内部数据。
在可选的实施方式中,所述方法还包括:
当所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
本可选的实施方式能够在所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
在可选的实施方式中,所述远程桌面协议包括转接通道,以及,所述方法还包括:
当所述应用镜像运行过程中需要访问所述桌面虚拟机所在的网络资源,且所述终端设备不具备访问所述桌面虚拟机所在的网络资源的权限时,基于所述转接通道将所述应用镜像的网络访问转接到所述桌面虚拟机所在的网络。
本可选的实施方式能够在所述应用镜像运行过程中需要访问所述桌面虚拟机所在的网络资源,且所述终端设备不具备访问所述桌面虚拟机所在的网络资源的权限时,基于所述转接通道将所述应用镜像的网络访问转接到所述桌面虚拟机所在的网络,这样一来,就能够确保终端设备中的应用能够访问桌面虚拟机所在的网络,从而避免由于终端设备网桥权限不足导致应用无法访问桌面虚拟机所在的网络这一问题。
在可选的实施方式中,所述桌面服务器设置有分布式存储系统,其中,所述分布式存储系统向所述终端设备提供存储卷,所述存储卷挂载于所述终端设备,所述终端设备的应用程序池将所述应用镜像存储于所述存储卷,并将运行所述应用镜像产生的应用数据存储于所述存储卷。
本可选的实施方式能够通过分布式存储系统的存储卷存储应用镜像,进而避免应用镜像存在终端设备的本地存储空间中,同时,由于存储卷以挂载方式挂载在终端设备,这样一来,当终端设备需要启动应用时,如果存储卷已有相应的应用镜像,则终端设备无需再次下次应用镜像,从而能够减少应用镜像的下载次数。此外,通过存储卷存储运行所述应用镜像产生的应用数据,可避免应用数据在终端设备处泄露。
第二方面,本发明提供一种虚拟机与终端的应用程序协同装置,所述装置包括:
分发单元,用于向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备;
检测单元,用于检测所述桌面虚拟机是否与终端设备连接,如果所述桌面虚拟机与所述终端设备连接,则基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机。
本申请第二方面的装置通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测所述桌面虚拟机是否与终端设备连接,进而能够在所述桌面虚拟机与所述终端设备连接,基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建所述应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
在可选的实施方式中,所述装置还包括:
捕获单元,用于在用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
传输单元,用于基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,所述远程桌面协议包括应用通道,所述应用通道用于传输所述事件信息,以及,所述应用通道还用于传输运行所述应用镜像所需的桌面虚拟机内部数据。
本可选的实施方式能够在用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息,进而基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,这样一来,通过容器运行应用镜像,便于应用镜像在不同终端设备上运行。此外,通过应用通道可传输所述事件信息和运行所述应用镜像所需的桌面虚拟机内部数据。
在可选的实施方式中,所述装置还包括:
加载单元,用于当所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
本可选的实施方式能够在所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
第三方面,本发明提供一种电子设备,包括:
处理器;以及
存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如前述实施方式任一项所述的虚拟机与终端的应用程序协同方法。
本申请第三方面的电子设备通过执行虚拟机与终端的应用程序协同方法,能够通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测所述桌面虚拟机是否与终端设备连接,进而能够在所述桌面虚拟机与所述终端设备连接,基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建所述应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
第四方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的虚拟机与终端的应用程序协同方法。
本申请第四方面的存储介质通过执行虚拟机与终端的应用程序协同方法,能够通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测所述桌面虚拟机是否与终端设备连接,进而能够在所述桌面虚拟机与所述终端设备连接,基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建所述应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例公开的一种虚拟机与终端的应用程序协同方法的流程示意图;
图2是本申请实施例公开的桌面虚拟机和终端的应用程序协同架构的示意图;
图3是本申请实施例公开的虚拟机与终端的应用程序协同装置的结果示意图;
图4是本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一
请参阅图1,图1是本申请实施例公开的一种虚拟机与终端的应用程序协同方法的流程示意图。如图1所示,本申请实施例的方法包括以下步骤:
101、向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备;
102、检测桌面虚拟机是否与终端设备连接,如果桌面虚拟机与终端设备连接,则基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机。
本申请实施例的方法通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测桌面虚拟机是否与终端设备连接,进而能够在桌面虚拟机与终端设备连接,基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
在本申请实施例中,作为一种示例,现有技术为了实现用户操作桌面虚拟机的应用,则需要先在桌面虚拟机的应用设备中安装应用程序,例如,需要在桌面虚拟机的存储设备中安装应用程序,从而当用户远程点击桌面虚拟机的应用图标时,运行应用程序。然而对比本申请而言,本申请在终端设备中加载应用镜像,即在终端设备加载应用程序,而不是在桌面虚拟机中记加载应用镜像。
在本申请实施例中,由于运行应用程序需要增大桌面服务器的负载,因此通过终端设备加载应用程序,则可以降低桌面服务器的负载,尤其是桌面服务器需要运行多个桌面虚拟机而没有太多多余算力时,降低桌面服务器的负载可确保桌面服务器正常运行。
在本申请实施例中,虚拟机与终端的应用程序协同方法可应用在桌面云系统中,其中,桌面云系统可向桌面服务器的桌面虚拟机分发应用镜像的标识,例如,桌面云系统响应管理人员的虚拟机选择指令和应用镜像选择指令,从而将管理人员选择的应用镜像的标识发送给相应的桌面虚拟机。
在本申请实施例中,具体地,本申请实施例的虚拟机与终端的应用程序协同方法基于桌面虚拟机和终端的应用程序协同架构实现,其中,请参阅图2,图2是本申请实施例公开的桌面虚拟机和终端的应用程序协同架构的示意图。如图2所示,桌面虚拟机和终端的应用程序协同架构可以分为四个部分:终端设备、由多台桌面服务器组成的桌面云集群、远程桌面协议和镜像仓库,其中,桌面虚拟机和终端设备的应用程序协同的本质是终端设备、桌面服务器和桌面虚拟机三者之间的协同,协同信息通过在远程桌面协议中增加应用通道的网络连接,实现信息传递。协同涉及桌面服务器中的桌面虚拟机、虚拟机Qemu进程和虚拟交换机。桌面虚拟机包括应用驱动,其中,应用驱动实现三个功能:一、管理虚拟应用图标:为终端设备上的应用在桌面虚拟机中创建/删除虚拟图标,二、捕捉和传递应用的启停信息,即捕捉用户在虚拟桌面上操作虚拟应用图标的信息,将信息传递到终端设备,实现应用启动和关闭;三、提供应用所需要的数据:为虚拟应用程序图标对应的应用程序提供桌面虚拟机内的数据,其中,应用驱动将应用信息或桌面虚拟机内的数据传输到应用设备,再通过服务端通信模块、使用远程桌面协议的应用通道发送到终端设备的通信模块,再由应用程序模块将信息/数据转发到应用程序池或应用中。
进一步地,如图2所示,远程桌面协议使用不同的通道传输桌面虚拟机的图像、声音和键鼠等信息,其中,远程桌面协议包括应用通道和转接通道,应用通道用于传输两类数据,即用于传输桌面虚拟机中操作终端应用的信息,如启动、停止、最大化、最小化等,以及在终端应用需要使用的,传输桌面虚拟机的内部数据。
进一步地,转接通道用于终端应用需要访问桌面虚拟机所在的网络资源时,但终端设备并没有访问权限,将网络访问转接到桌面虚拟机所在的网络。
进一步地,终端设备中通过终端设备通信模块、服务端通信模块与服务端完成通信,其中,服务端通信模块是指Qemu进程的通信模块。
进一步地,终端设备通过应用程序模块管理应用程序池,其中,应用程序池可实现镜像管理功能,即应用的运行时需要可执行文件及其运行所需的环境(依赖库文件、环境变量等),为了方便管理这些文件和配置,采用容器的方式封装和分发。在终端设备上,只需要加载匹配终端操作系统的应用镜像即可运行。
进一步地,应用程序池使用分布式存储系统提供的存储卷存储应用镜像,其中,使用存储卷而非存储在终端设备本地,存储卷随时挂载到任何终端设备,进而可以大大减少应用启动时从镜像仓库下载应用镜像的次数,增强用户体验和节省网络带宽,例如,当存储卷从挂载在终端设备A切换至终端设备B时,终端设备B不再需要重新加载应用镜像S,其中,应用镜像S在挂载在终端设备A时已存在存储卷中。此外,通过存储卷,可使得应用程序数据不在终端设备上落地,避免终端设备被其他人使用时,存在数据泄露的风险。
进一步地,如图2所示,应用通过容器方式进行管理,应用镜像即是容器镜像,应用表示运行中的容器,应用启动和停止即是容器的启停,应用的网络转接即是容器的网络转接,应用的显示图像获取即是容器的图像输出其中,应用的图像需要和远程桌面图像叠加,使用户操作本地应用的体验尽可能与操作远程桌面内的应用接近。
进一步地,需要终端设备与桌面虚拟机协同的应用程序只需要封装成一个容器镜像,所有终端设备都可以下载这个容器镜像,之后就可以实现与对应的桌面虚拟机实现协同。
在本申请实施例中,作为一种可选的实施方式中,本申请实施例的方法还包括:
当用户基于终端设备的远程桌面软件双击应用图标时,基于应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
基于应用设备、Qemu进程的通信模块将事件信息传输至应用程序模块,以使应用程序模块基于事件信息在应用程序池查询应用镜像,并使应用程序模块基于容器运行应用镜像,其中,容器包括运行应用镜像所需的环境,远程桌面协议包括应用通道,应用通道用于传输事件信息,以及,应用通道还用于传输运行应用镜像所需的桌面虚拟机内部数据。
本可选的实施方式能够在用户基于终端设备的远程桌面软件双击应用图标时,基于应用设备的应用驱动捕获应用图标双击事件并获取事件信息,进而基于应用设备、Qemu进程的通信模块将事件信息传输至应用程序模块,以使应用程序模块基于事件信息在应用程序池查询应用镜像,并使应用程序模块基于容器运行应用镜像,其中,容器包括运行应用镜像所需的环境,这样一来,通过容器运行应用镜像,便于应用镜像在不同终端设备上运行。此外,通过应用通道可传输事件信息和运行应用镜像所需的桌面虚拟机内部数据。
在本申请实施例中,作为一种可选的实施方式,本申请实施例的方法还包括以下步骤:
当应用程序池不存在应用镜像时,基于应用程序池从镜像仓库加载应用镜像。
本可选的实施方式能够在应用程序池不存在应用镜像时,基于应用程序池从镜像仓库加载应用镜像。
针对上述可选的实施方式,在一些场景中,检测所述桌面虚拟机是否与终端设备连接时,存在桌面虚拟机未与终端设备连接这一情况,进而应用程序模块无法触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,进而需要在启动应用镜像时,重新从镜像仓库加载应用镜像。
在本申请实施例中,作为一种可选的实施方式,远程桌面协议包括转接通道,以及,本申请实施例的方法还包括以下步骤:
当应用镜像运行过程中需要访问桌面虚拟机所在的网络资源,且终端设备不具备访问桌面虚拟机所在的网络资源的权限时,基于转接通道将应用镜像的网络访问转接到桌面虚拟机所在的网络。
本可选的实施方式能够在应用镜像运行过程中需要访问桌面虚拟机所在的网络资源,且终端设备不具备访问桌面虚拟机所在的网络资源的权限时,基于转接通道将应用镜像的网络访问转接到桌面虚拟机所在的网络,这样一来,就能够确保终端设备中的应用能够访问桌面虚拟机所在的网络,从而避免由于终端设备网桥权限不足导致应用无法访问桌面虚拟机所在的网络这一问题。
在可选的实施方式中,桌面服务器设置有分布式存储系统,其中,分布式存储系统向终端设备提供存储卷,存储卷挂载于终端设备,终端设备的应用程序池将应用镜像存储于存储卷,并将运行应用镜像产生的应用数据存储于存储卷。
本可选的实施方式能够通过分布式存储系统的存储卷存储应用镜像,进而避免应用镜像存在终端设备的本地存储空间中,同时,由于存储卷以挂载方式挂载在终端设备,这样一来,当终端设备需要启动应用时,如果存储卷已有相应的应用镜像,则终端设备无需再次下次应用镜像,从而能够减少应用镜像的下载次数。此外,通过存储卷存储运行应用镜像产生的应用数据,可避免应用数据在终端设备处泄露。
针对上述可选的实施方式,分布式存储系统通过软件将桌面云集群内所有桌面服务器上的存储设备,如固态硬盘、机械硬盘,组成一个分布式存储系统,给桌面虚拟机提供虚拟硬盘,也可以对外提供存储卷服务。
实施例二
请参阅图3,图3是本申请实施例公开的虚拟机与终端的应用程序协同装置的结果示意图。如图3所示,该装置包括以下功能单元:
分发单元201,用于向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备;
检测单元202,用于检测桌面虚拟机是否与终端设备连接,如果桌面虚拟机与终端设备连接,则基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机。
本申请实施例的装置通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测桌面虚拟机是否与终端设备连接,进而能够在桌面虚拟机与终端设备连接,基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
在本申请实施例中,作为一种可选的实施方式,本申请实施例的装置还包括以下功能单元:
捕获单元,用于在用户基于终端设备的远程桌面软件双击应用图标时,基于应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
传输单元,用于基于应用设备、Qemu进程的通信模块将事件信息传输至应用程序模块,以使应用程序模块基于事件信息在应用程序池查询应用镜像,并使应用程序模块基于容器运行应用镜像,其中,容器包括运行应用镜像所需的环境,远程桌面协议包括应用通道,应用通道用于传输事件信息,以及,应用通道还用于传输运行应用镜像所需的桌面虚拟机内部数据。
本可选的实施方式能够在用户基于终端设备的远程桌面软件双击应用图标时,基于应用设备的应用驱动捕获应用图标双击事件并获取事件信息,进而基于应用设备、Qemu进程的通信模块将事件信息传输至应用程序模块,以使应用程序模块基于事件信息在应用程序池查询应用镜像,并使应用程序模块基于容器运行应用镜像,其中,容器包括运行应用镜像所需的环境,这样一来,通过容器运行应用镜像,便于应用镜像在不同终端设备上运行。此外,通过应用通道可传输事件信息和运行应用镜像所需的桌面虚拟机内部数据。
在本申请实施例中,作为一种可选的实施方式,本申请实施例的装置还包括以下功能单元:
加载单元,用于当应用程序池不存在应用镜像时,基于应用程序池从镜像仓库加载应用镜像。
本可选的实施方式能够在应用程序池不存在应用镜像时,基于应用程序池从镜像仓库加载应用镜像。
实施例三
请参阅图4,图4是本申请实施例公开的一种电子设备的结构示意图。如图4所示,该电子设备包括:
处理器301;以及
存储器302,配置用于存储机器可读指令,指令在由处理器301执行时,执行如前述实施方式任一项的虚拟机与终端的应用程序协同方法。
本申请实施例的电子设备通过执行虚拟机与终端的应用程序协同方法,能够通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测桌面虚拟机是否与终端设备连接,进而能够在桌面虚拟机与终端设备连接,基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
实施例四
本申请实施例公开一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行如前述实施方式任一项的虚拟机与终端的应用程序协同方法。
本申请实施例的存储介质通过执行虚拟机与终端的应用程序协同方法,能够通过向桌面服务器的桌面虚拟机分发应用镜像的标识,进而能够基于应用设备的应用驱动在桌面虚拟机中创建应用镜像的应用图标,其中,应用设备为桌面虚拟机的Qemu进程中的应用设备,进一步地,通过检测桌面虚拟机是否与终端设备连接,进而能够在桌面虚拟机与终端设备连接,基于应用设备通知终端设备的远程桌面软件的应用程序模块触发终端设备的应用程序池从镜像仓库加载应用镜像,其中,终端设备的远程桌面软件基于远程桌面协议连接桌面虚拟机,这样一来,就能够仅在桌面虚拟机中创建应用镜像的应用图标,而使终端设备通过加载应用镜像,从而使桌面服务器不需要加载应用镜像,最终将负载高的应用从桌面服务器中卸载到终端设备中。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种虚拟机与终端的应用程序协同方法,其特征在于,所述方法包括:
向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备;
检测所述桌面虚拟机是否与终端设备连接,如果所述桌面虚拟机与所述终端设备连接,则基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机。
2.如权利要求1所述的方法,其特征在于,所述方法包括:
当用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,所述远程桌面协议包括应用通道,所述应用通道用于传输所述事件信息,以及,所述应用通道还用于传输运行所述应用镜像所需的桌面虚拟机内部数据。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
当所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
4.如权利要求1所述的方法,其特征在于,所述远程桌面协议包括转接通道,以及,所述方法还包括:
当所述应用镜像运行过程中需要访问所述桌面虚拟机所在的网络资源,且所述终端设备不具备访问所述桌面虚拟机所在的网络资源的权限时,基于所述转接通道将所述应用镜像的网络访问转接到所述桌面虚拟机所在的网络。
5.如权利要求1所述的方法,其特征在于,所述桌面服务器设置有分布式存储系统,其中,所述分布式存储系统向所述终端设备提供存储卷,所述存储卷挂载于所述终端设备,所述终端设备的应用程序池将所述应用镜像存储于所述存储卷,并将运行所述应用镜像产生的应用数据存储于所述存储卷。
6.一种虚拟机与终端的应用程序协同装置,其特征在于,所述装置包括:
分发单元,用于向桌面服务器的桌面虚拟机分发应用镜像的标识,并基于应用设备的应用驱动在所述桌面虚拟机中创建所述应用镜像的应用图标,其中,所述应用设备为桌面虚拟机的Qemu进程中的应用设备;
检测单元,用于检测所述桌面虚拟机是否与终端设备连接,如果所述桌面虚拟机与所述终端设备连接,则基于所述应用设备通知所述终端设备的远程桌面软件的应用程序模块触发所述终端设备的应用程序池从镜像仓库加载所述应用镜像,其中,所述终端设备的远程桌面软件基于远程桌面协议连接所述桌面虚拟机。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
捕获单元,用于在用户基于所述终端设备的远程桌面软件双击所述应用图标时,基于所述应用设备的应用驱动捕获应用图标双击事件并获取事件信息;
传输单元,用于基于所述应用设备、所述Qemu进程的通信模块将所述事件信息传输至所述应用程序模块,以使所述应用程序模块基于事件信息在所述应用程序池查询所述应用镜像,并使所述应用程序模块基于容器运行所述应用镜像,其中,所述容器包括运行所述应用镜像所需的环境,所述远程桌面协议包括应用通道,所述应用通道用于传输所述事件信息,以及,所述应用通道还用于传输运行所述应用镜像所需的桌面虚拟机内部数据。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
加载单元,用于当所述应用程序池不存在所述应用镜像时,基于所述应用程序池从所述镜像仓库加载所述应用镜像。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如权利要求1-5任一项所述的虚拟机与终端的应用程序协同方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-5任一项所述的虚拟机与终端的应用程序协同方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310900791.2A CN116893880A (zh) | 2023-07-21 | 2023-07-21 | 虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310900791.2A CN116893880A (zh) | 2023-07-21 | 2023-07-21 | 虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893880A true CN116893880A (zh) | 2023-10-17 |
Family
ID=88310579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310900791.2A Pending CN116893880A (zh) | 2023-07-21 | 2023-07-21 | 虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116893880A (zh) |
-
2023
- 2023-07-21 CN CN202310900791.2A patent/CN116893880A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976667B (zh) | 一种镜像管理方法、装置及系统 | |
US8924917B2 (en) | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets | |
US10153959B2 (en) | Network communication and cost awareness | |
US20220078264A1 (en) | Multiple model injection for a deployment cluster | |
CN103020235B (zh) | 自治网络流传输 | |
US20150163282A1 (en) | System and method for accessing remote disk images using a vmedia client and through a remote access appliance | |
CN102571940A (zh) | 应用程序远程安装系统、方法、智能终端、应用服务器 | |
CN108632354B (zh) | 物理机纳管方法、装置及云桌面管理平台 | |
CN104106060A (zh) | 支持通知阻塞的功率高效代理通信 | |
CN112995239B (zh) | 一种数据处理方法和装置 | |
CN112769876A (zh) | 一种设备通道信息获取方法、装置、设备和介质 | |
CN116893880A (zh) | 虚拟机与终端的应用程序协同方法、设备、电子设备和存储介质 | |
CN111858084B (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US20050132084A1 (en) | Method and apparatus for providing server local SMBIOS table through out-of-band communication | |
CN114003342A (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
CN109634721B (zh) | 一种虚拟机与主机的启动通信方法及相关装置 | |
CN113452948A (zh) | 会议终端的控制方法、装置、设备及存储介质 | |
CN111813574A (zh) | 图片压缩方法、装置、存储介质和电子设备 | |
CN111026452A (zh) | 一种远程32位进程注入64位进程的方法及系统 | |
US11868769B1 (en) | Automatically determining and modifying environments for running microservices in a performant and cost-effective manner | |
CN112527192B (zh) | 数据获取方法、装置及服务设备 | |
US10922066B2 (en) | Device management system with a restore prevention utility | |
CN117278549A (zh) | 基于rdma的数据发送方法、装置、电子设备及存储介质 | |
CN115237540A (zh) | 一种数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |