WO2023000705A1 - 应用程序虚拟化方法、系统、电子设备及存储介质 - Google Patents

应用程序虚拟化方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
WO2023000705A1
WO2023000705A1 PCT/CN2022/083502 CN2022083502W WO2023000705A1 WO 2023000705 A1 WO2023000705 A1 WO 2023000705A1 CN 2022083502 W CN2022083502 W CN 2022083502W WO 2023000705 A1 WO2023000705 A1 WO 2023000705A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
client
server
linux
window information
Prior art date
Application number
PCT/CN2022/083502
Other languages
English (en)
French (fr)
Inventor
盛杰辉
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2023000705A1 publication Critical patent/WO2023000705A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Definitions

  • the embodiments of the present application relate to the field of communication technologies, and in particular to an application virtualization method, system, electronic device, and storage medium.
  • the application program of the Windows system has a more friendly graphical interaction interface. Therefore, if the application program of the Windows system is run on the Linux system, a better graphical interaction experience can be obtained on the Linux system, and the existing Windows system application.
  • the embodiment of the present application provides an application virtualization method, including: when receiving the start request of the Linux client, start the Windows application program of the server; obtain the window information of the Windows application program in real time, and return the window information to the Linux client end to draw window information on the Linux client.
  • the embodiment of the present application also provides an application virtualization method, including: using the virtual application client to invoke the VDI client to send a start request to the server to start the Windows application on the server, the virtual application client and the VDI client Installed on the Linux client; when receiving the window information of the Windows application sent by the server, use the VDI client to draw the window information on the Linux client.
  • the embodiment of the present application also provides an application virtualization system, including a Linux client and a server; the Linux client is used to send a startup request to the server; the server is used to start the Windows server on the server when receiving the startup request
  • the application program obtains the window information of the Windows application program in real time, and returns the window information to the Linux client; the Linux client is also used to draw the window information on the Linux client when receiving the window information.
  • the embodiment of the present application also provides an electronic device, including: at least one processor; and a memory connected in communication with the at least one processor; wherein, the memory stores instructions executable by at least one processor, and the instructions are executed by at least one processor.
  • the processor executes, so that at least one processor can execute the above-mentioned application virtualization method.
  • the embodiment of the present application also provides a computer-readable storage medium storing a computer program, and implementing the above-mentioned application virtualization method when the computer program is executed by a processor.
  • FIG. 1 is a schematic flowchart of an application virtualization method provided in an embodiment of the present application
  • FIG. 2 is a schematic flowchart of the detailed steps of S102 in the application virtualization method provided by the embodiment of the present application;
  • FIG. 3 is another schematic flowchart of the application virtualization method provided by the embodiment of the present application.
  • FIG. 4 is a schematic diagram of a module structure of an application virtualization system provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of another module structure of the application virtualization system provided by the embodiment of the present application.
  • FIG. 6 is a diagram of a specific example of the application virtualization system provided by the embodiment of the present application.
  • FIG. 7 is an example diagram of the process of using a virtual application by the application virtualization system provided by the embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
  • the main purpose of the embodiment of the present application is to provide an application virtualization method, system, electronic device and storage medium, which can implement application programs of the Windows system to be applied to the Linux system.
  • it relates to an application virtualization method, by starting a Windows application on the server when receiving a startup request from a Linux client, obtaining window information of the Windows application in real time, and returning the window information to the Linux client client to draw window information for Windows applications on Linux clients.
  • the Windows application can be run virtually on the Linux client, so that the application of the Windows system can be applied to the Linux system.
  • the execution subject of the application virtualization method provided by the embodiment of the present application may be a server, wherein the server may be implemented by a single server or a cluster composed of multiple servers, and the following uses the server as an example for illustration.
  • S101 Start the Windows application program of the server when receiving the startup request of the Linux client.
  • the Linux client refers to the client whose operating system is a Linux system, and the operating system of the server can be a Windows system, so that the Windows application program can be started on the server when a start request is received.
  • the start request of the Linux client can be initiated by the virtual application client installed on the Linux client, and the information of the Windows application is displayed in the virtual application client, such as the path, icon, version number and other information of the Windows application on the server.
  • the start request can carry the information of the Windows application, so that when the server receives the start request, it can go to the corresponding storage location to open the Windows application according to the carried information of the Windows application.
  • the information of the Windows application in the virtual application client may be obtained from the server when the virtual application client connects to the server.
  • S102 Obtain window information of the Windows application program in real time, and return the window information to the Linux client, so as to draw the window information on the Linux client.
  • S102 may specifically include the following steps:
  • S1021 Receive input information from the Linux client.
  • the input information of the Linux client may include information input by the user of the Linux client through an input device such as a keyboard or a mouse.
  • the input information of the Linux client can be obtained through the above-mentioned virtual application client and sent to the server, so that the server can receive the corresponding input information.
  • S1022 When receiving the input information of the Linux client, obtain the first window information of the Windows application program after responding to the input information in real time, and return the first window information to the Linux client, so as to draw the first window on the Linux client information.
  • the server When receiving the input information from the Linux client, the server will input the corresponding input information into the Windows application program, and the Windows application program will respond accordingly according to the input information, and the server terminal will obtain the window information after the Windows application program responds (first window information), and return the first window information to the Linux client, so that the Linux client can draw the first window information.
  • the user of the Linux client can see the response of the Windows application on the Linux client , so as to realize the interaction between the user of the Linux client and the Windows application program running virtually on the Linux client.
  • to obtain the window information of the Windows application program in real time may be to use a global hook (hook) to capture the window information of the Windows application program in real time.
  • the window information of the Windows application program captured by the global hook may include information such as the window handle, title, size, position, status, and icon of the Windows application program.
  • the application virtualization method provided by the embodiment of the present application further includes: when receiving the file instruction of the Windows application program, redirecting the file instruction to the Linux client.
  • the file instruction may include instructions for reading and writing the file, such as opening the file, storing the file, or deleting the file.
  • the server obtains the file path of the Linux client, so that when receiving the file instruction of the Windows application, the file instruction is redirected to the Linux client according to the file path of the Linux client , so that Windows applications running virtually on the Linux client can also read and write files on the Linux client.
  • the server side receives the file command of the Windows application program to open the file, then redirects the file command to open the file to the file path of the Linux client, and then according to The user's choice of the Linux client opens the word document of the Linux client.
  • the application virtualization method provided by the embodiment of the present application further includes: when receiving the input information of the Linux client, if the input information triggers the clipboard of the server, redirecting the clipboard to the Linux client.
  • Redirecting the clipboard to the Linux client can redirect the content of the clipboard on the server to the clipboard of the Linux client, so that the corresponding clipboard content can be obtained on the Linux client.
  • the clipboard on the server is triggered, and the server redirects the content of the clipboard to the Linux client.
  • the program needs to use this paragraph of text, since the clipboard of the Linux client also has corresponding content, it can directly copy this paragraph of text to another application program, so as to realize the difference between the Windows application program running on the Linux client and the Windows application actually running on the Linux client. Data interaction between end-to-end applications.
  • the corresponding clipboard content can be used on the Linux client to realize data interaction between the Windows application running on the Linux client and the Linux client locally.
  • the application virtualization method provided by the embodiment of the present application obtains the window information of the Windows application program in real time by starting the Windows application program of the server when receiving the startup request of the Linux client, and returns the window information to the Linux client to Draw the window information of the Windows application program on the Linux client, and the Windows application program can be run virtually on the Linux client, so that the application program of the Windows system can be applied to the Linux system.
  • a VDI (Virtual Desktop Infrastructure, virtual desktop architecture) client is used to initiate a VDI (Virtual Desktop Infrastructure, virtual desktop architecture) client to send a start request to the server to start a Windows application on the server,
  • VDI client is used to draw the window information of the Windows application program on the Linux client.
  • the execution subject of the application virtualization method provided in the embodiment of the present application may be a Linux client.
  • S201 Use the virtual application client to invoke the VDI client to send a start request to the server to start the Windows application program on the server, and the virtual application client and the VDI client are installed on the Linux client.
  • the virtual application client is used to accept the login of the user of the Linux client, and display the information of the Windows application to the user.
  • the displayed information includes the path, icon, version number and other information of the Windows application on the server.
  • invoke the VDI client to send a start request to the server For example, when the user clicks on the icon of the Windows application in the virtual application client, the virtual application client invokes the VDI client to send a start request to the server.
  • the corresponding drawing canvas of the VDI client may be leftover. After drawing the window information of the Windows application, cut off the redundant canvas.
  • the window of the Windows application is reserved, so that the Linux client can obtain a more realistic Windows application, and improve the user experience of the Linux client when using the Windows application.
  • the application virtualization method provided by the embodiment of the present application further includes: using the VDI client to send the input information of the Linux client; correspondingly, S202 may specifically include: receiving the information sent by the server and draw the first window information through the VDI client, wherein the first window information is the window information after the Windows application program responds to the input information.
  • the application virtualization method provided by the embodiment of the present application uses the virtual application client to call the VDI client to send a startup request to the server to start the Windows application on the server. After receiving the Windows application sent by the server, Information, use the VDI client to draw the window information of the Windows application on the Linux client, and the Windows application can be run virtually on the Linux client, so that the application of the Windows system can be applied to the Linux system.
  • this embodiment is an embodiment on the client side corresponding to the foregoing embodiments, and this embodiment can be implemented in cooperation with the foregoing embodiments.
  • the relevant technical details mentioned in the foregoing embodiments are still valid in this embodiment, and will not be repeated here in order to reduce repetition.
  • the relevant technical details mentioned in this embodiment can also be applied in the foregoing embodiments.
  • it relates to an application virtualization system 300 , as shown in FIG. 4 , including a Linux client 301 and a server 302 .
  • the Linux client 301 is used to send a startup request to the server 302;
  • the server 302 is used to start the Windows application program of the server 302 when receiving the startup request, obtain the window information of the Windows application program in real time, and return the window information to the Linux client 301;
  • the Linux client 301 is also used to draw window information on the Linux client 301 when receiving the window information.
  • the application virtualization system 300 provided in the embodiment of the present application further includes a management terminal 303 .
  • the management terminal 303 is used to send the application program to be released to the server terminal 302;
  • the server 302 is also configured to publish the application to be released on the server 302 to obtain a Windows application when receiving the application to be released.
  • the server 302 is also used to: receive the input information of the Linux client 301; when receiving the input information of the Linux client 301, obtain the first window information of the Windows application in real time after responding to the input information, and The first window information is returned to the Linux client 301 to draw the first window information on the Linux client 301 .
  • the server 302 is further configured to: use a global hook to capture window information of Windows applications in real time.
  • the server 302 is further configured to: when receiving the file command of the Windows application program, redirect the file command to the Linux client 301 .
  • the server 302 is further configured to: when receiving input information from the Linux client 301 , if the input information triggers a clipboard of the server 302 ; redirect the clipboard to the Linux client 301 .
  • FIG. 6 is a diagram of a specific example of the application virtualization system 300 provided in the embodiment of the present application.
  • Figure 6 mainly includes the content of two parts shown in the dotted line box: the release of the virtual application and the use of the virtual application, wherein the specific application program of the virtual application is a Windows application program, specifically as follows:
  • Irai is a management page, on which administrators can publish virtual applications, assign virtual applications to users, and manage virtual applications and application servers.
  • the administrator first loads the virtual application on the management page, and Irai notifies the virtualization management module ICES of the released task, ICES communicates with the virtual machine agent vmbooster on the server through the virtual machine agent hmbooster on the host, and vmbooster communicates with the server
  • the installed release tool vpservice interacts, and vpservice reports the virtual application information (including software paths, icons, versions, etc.) to the memory bank CSAP on the management side, and the CSAP then transmits the data to Irai through the data transmission module CS. So far, The administrator can see all the virtual applications on the server side on the page, and then select the virtual application to be published.
  • the role of vpservice is not only to publish virtual applications, but also to register the server with Irai.
  • the registration information includes server name, universal unique identification code, server ip, component version, server startup status, server working status, computer name, domain Information, the number of current connection sessions and other information.
  • the virtual application client Ientry is installed on the Linux virtual desktop, and the user logs in to the virtual application client Ientry to obtain system parameters and virtual application software information (including software paths, icons, version numbers, etc.).
  • the virtual application client Ientry calls the VDI client to create a virtual application window.
  • the VDI client connects to the UsbIpc module of the server through the main channel, and the UsbIpc module calls the dynamic library of AppProxy; the dynamic library of AppProxy interacts with Rds and Display, and Rds creates a user session.
  • Display is responsible for capturing and encoding session images and reporting session applications; Display starts Sound and Input to obtain sound, keyboard and mouse input.
  • Display start vdagent is responsible for the start of the application program, the full hook captures the window, obtains the window handle, title, size, position, status, icon and other information, vdagent then transfers the application window to the client VDI through the ice protocol for drawing, and it is completed in The use of virtual applications on Linux clients, and vdagent can realize clipboard redirection through the ice protocol.
  • the VDI client connects to the UsbIpc module of the server through the main channel, it can connect through the main channel of the ice protocol.
  • the above ice protocol may also be other protocols, and the above content is only described using the ice protocol as an example.
  • the above process of using a virtual application may further refer to FIG. 7 , which is an example diagram of a process of using a virtual application by the application virtualization system 300 provided in the embodiment of the present application.
  • the application virtualization system provided by the embodiment of the present application can be implemented on the cloud desktop platform, which can reduce the difficulty of implementation.
  • the general process of its implementation can be as follows:
  • the management platform can create virtual application servers and linux desktops by building application server pools and desktop pools, and add domains to them at the same time.
  • this embodiment is a system embodiment corresponding to the foregoing method embodiments, and this embodiment can be implemented in cooperation with the foregoing method embodiments.
  • the relevant technical details mentioned in the foregoing method embodiments are still valid in this embodiment, and will not be repeated here in order to reduce repetition.
  • the relevant technical details mentioned in this embodiment may also be applied to the foregoing method embodiments.
  • modules involved in this embodiment are logical modules.
  • a logical unit can be a physical unit, or a part of a physical unit, or multiple physical units. Combination of units.
  • units that are not closely related to solving the technical problem proposed in the present application are not introduced in this embodiment, but this does not mean that there are no other units in this embodiment.
  • FIG. 8 it relates to an electronic device, as shown in FIG. 8 , including: at least one processor 401; and a memory 402 communicatively connected to at least one processor 401; The instructions executed by the processor 401 are executed by at least one processor 401, so that the at least one processor 401 can execute the above-mentioned application virtualization method.
  • the memory and the processor are connected by a bus
  • the bus may include any number of interconnected buses and bridges, and the bus connects one or more processors and various circuits of the memory together.
  • the bus may also connect together various other circuits such as peripherals, voltage regulators, and power management circuits, all of which are well known in the art and therefore will not be further described herein.
  • the bus interface provides an interface between the bus and the transceivers.
  • a transceiver may be a single element or multiple elements, such as multiple receivers and transmitters, providing means for communicating with various other devices over a transmission medium.
  • the data processed by the processor is transmitted on the wireless medium through the antenna, further, the antenna also receives the data and transmits the data to the processor.
  • the processor is responsible for managing the bus and general processing, and can also provide various functions, including timing, peripheral interface, voltage regulation, power management, and other control functions. Instead, memory can be used to store data that the processor uses when performing operations.
  • it relates to a computer readable storage medium storing a computer program.
  • the above method embodiments are implemented when the computer program is executed by the processor.
  • a storage medium includes several instructions to make a device ( It may be a single-chip microcomputer, a chip, etc.) or a processor (processor) to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disc, etc., which can store program codes. .

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

本申请实施例涉及通信技术领域,公开了一种应用程序虚拟化方法、系统、电子设备及存储介质,所述应用程序虚拟化方法包括:在接收到Linux客户端的启动请求时,启动所述服务端的Windows应用程序;实时获取所述Windows应用程序的窗口信息,并将所述窗口信息返回至所述Linux客户端,以在所述Linux客户端上绘制所述窗口信息。

Description

应用程序虚拟化方法、系统、电子设备及存储介质
相关申请的交叉引用
本申请基于申请号为“202110819874.X”、申请日为2021年07月20日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
技术领域
本申请实施例涉及通信技术领域,特别涉及一种应用程序虚拟化方法、系统、电子设备及存储介质。
背景技术
Windows系统的应用程序相对于Linux系统具有较为友好的图形交互界面,因此若在Linux系统运行Windows系统的应用程序,则可以在Linux系统上获取较好的图形交互的体验,也可以利用现有的Windows系统的应用程序。
然而,由于Windows系统与Linux系统不兼容,因此目前无法实现将Windows系统的应用程序应用于Linux系统上。
发明内容
本申请实施例提供了一种应用程序虚拟化方法,包括:在接收到Linux客户端的启动请求时,启动服务端的Windows应用程序;实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端,以在Linux客户端上绘制窗口信息。
本申请实施例还提供了一种应用程序虚拟化方法,包括:利用虚拟应用客户端调起VDI客户端向服务端发送启动请求,以启动服务端的Windows应用程序,虚拟应用客户端和VDI客户端安装于Linux客户端;在接收到服务端发送的Windows应用程序的窗口信息时,利用VDI客户端在Linux客户端上绘制窗口信息。
本申请实施例还提供了一种应用程序虚拟化系统,包括Linux客户端和服务端;Linux客户端用于向服务端发送启动请求;服务端用于在接收到启动请求时,启动服务端的Windows应用程序,实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端;Linux客户端还用于在接收到窗口信息时,在Linux客户端上绘制窗口信息。
本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的应用程序虚拟化方法。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的应用程序虚拟化方法。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本申请实施例提供的应用程序虚拟化方法的流程示意图;
图2是本申请实施例提供的应用程序虚拟化方法中S102细化步骤的流程示意图;
图3是本申请实施例提供的应用程序虚拟化方法的另一流程示意图;
图4是本申请实施例提供的应用程序虚拟化系统的模块结构示意图;
图5是本申请实施例提供的应用程序虚拟化系统的另一模块结构示意图;
图6是本申请实施例提供的应用程序虚拟化系统的具体示例图;
图7是本申请实施例提供的应用程序虚拟化系统在使用虚拟应用的流程示例图;
图8是本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请实施例的主要目的在于提出一种应用程序虚拟化方法、系统、电子设备及存储介质,可以实现将Windows系统的应用程序应用于Linux系统上。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
在一个实施例中,涉及一种应用程序虚拟化方法,通过在接收到Linux客户端的启动请求时,启动服务端的Windows应用程序,实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端,以在Linux客户端上绘制Windows应用程序的窗口信息。通过在Linux客户端上绘制Windows应用程序的窗口信息,可以在Linux客户端虚拟运行Windows应用程序,从而实现将Windows系统的应用程序应用于Linux系统上。
本申请实施例提供的应用程序虚拟化方法的执行主体可以为服务端,其中,服务端可以由单个服务器或多个服务器组成的集群来实现,以下以服务端为例进行说明。
本申请实施例提供的应用程序虚拟化方法的具体流程如图1所示,包括以下步骤:
S101:在接收到Linux客户端的启动请求时,启动服务端的Windows应用程序。
Linux客户端是指操作系统为Linux系统的客户端,而服务端的操作系统可以为Windows系统,从而可以在接收到启动请求时,在服务端启动Windows应用程序。
Linux客户端的启动请求可以由安装于Linux客户端的虚拟应用客户端发起,在虚拟应用客户端中展示有Windows应用程序的信息,例如Windows应用程序在服务端的路径、图标、版本号等信息。在启动请求中可携带有Windows应用程序的信息,从而服务端在接收到启动请求时,可以根据携带的Windows应用程序的信息到相应的存储位置打开Windows应用程序。虚拟应用客户端中的Windows应用程序的信息可以是在虚拟应用客户端连接到服务端时,从服务端处获取的。
S102:实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端,以在Linux客户端上绘制窗口信息。
在一个具体的例子中,如图2所示,S102具体可以包括以下步骤:
S1021:接收Linux客户端的输入信息。
Linux客户端的输入信息可以包括Linux客户端的用户通过键盘或鼠标等输入设备输入的信息。Linux客户端的输入信息可以通过上述的虚拟应用客户端获取后发送至服务端,从而使服务端接收到相应的输入信息。
S1022:在接收到Linux客户端的输入信息时,实时获取Windows应用程序在响应输入信息后的第一窗口信息,并将第一窗口信息返回至Linux客户端,以在Linux客户端上绘制第一窗口信息。
在接收到Linux客户端的输入信息时,服务端将相应的输入信息输入至Windows应用程序中,Windows应用程序会根据输入信息进行相应的响应,服务端获取Windows应用程序响应后的窗口信息(第一窗口信息),并将第一窗口信息返回至Linux客户端,从而使Linux客户端可以绘制第一窗口信息。
通过在接收到Linux客户端的输入信息时,获取Windows应用程序响应输入信息的窗口信息,并在Linux客户端绘制相应的窗口信息,可以使Linux客户端的用户在Linux客户端看到Windows应用程序的响应,从而实现Linux客户端的用户与虚拟运行在Linux客户端的Windows应用程序的交互。
在一个具体的例子中,实时获取Windows应用程序的窗口信息,可以是使用全局钩子(hook)实时捕获Windows应用程序的窗口信息。其中,通过全局钩子捕获的Windows应用程序的窗口信息可以包括Windows应用程序的窗口句柄、标题、大小、位置、状态和图标等信息。通过使用全局钩子实时捕获Windows应用程序的窗口信息,可以使Windows应用程序的窗口信息被实时获取到,进而在Linux客户端进行相应的绘制。
在一个具体的例子中,本申请实施例提供的应用程序虚拟化方法,还包括:在接收到Windows应用程序的文件指令时,将文件指令重定向至Linux客户端。
文件指令可以包括打开文件、存储文件或删除文件等对文件进行读写的指令。可选地,在Linux客户端连接到服务端时,服务端获取Linux客户端的文件路径,从而在接收到Windows应用程序的文件指令时,根据Linux客户端的文件路径将文件指令重定向至Linux客户端,从而使虚拟运行在Linux客户端的Windows应用程序也可以实现对Linux客户端的文件的读写。
例如,若实际在服务端运行Windows应用程序需要打开一个word文档时,服务端接收到Windows应用程序的打开文件的文件指令,则将打开文件的文件指令重定向至Linux客户端的文件路径,再根据Linux客户端的用户的选择打开Linux客户端的word文档。
在一个具体的例子中,本申请实施例提供的应用程序虚拟化方法还包括:在接收到Linux客户端的输入信息时,若输入信息触发服务端的剪切板,则将剪切板重定向至Linux客户端。
将剪切板重定向至Linux客户端,可以将服务端的剪切板内容重定向至Linux客户端的剪切板,从而可以在Linux客户端得到相应的剪切板内容。
例如,若Linux客户端的输入信息为复制Windows应用程序中的一段文字,触发服务端的剪切板,而服务端将剪切板的内容重定向至Linux客户端,这样,当Linux客户端另一应用程序需要使用该段文字时,由于Linux客户端的剪切板也有相应的内容,因此可以直接将该段文字拷贝至另一应用程序,实现虚拟运行在Linux客户端的Windows应用程序与实际运 行在Linux客户端的应用程序的数据交互。
通过将服务端的剪切板重定向至Linux客户端,可以在Linux客户端使用相应的剪切板内容,实现虚拟运行在Linux客户端的Windows应用程序与Linux客户端本地进行数据交互。
本申请实施例提供的应用程序虚拟化方法,通过在接收到Linux客户端的启动请求时,启动服务端的Windows应用程序,实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端,以在Linux客户端上绘制Windows应用程序的窗口信息,可以在Linux客户端上虚拟运行Windows应用程序,从而实现将Windows系统的应用程序应用于Linux系统上。
在一个实施例中,涉及一种应用程序虚拟化方法,通过利用虚拟应用客户端调起VDI(Virtual Desktop Infrastructure,虚拟桌面架构)客户端向服务端发送启动请求,以启动服务端的Windows应用程序,在接收到服务端发送的Windows应用程序的窗口信息时,利用VDI客户端在Linux客户端上绘制Windows应用程序的窗口信息。
本申请实施例提供的应用程序虚拟化方法的执行主体可以为Linux客户端。
本申请实施例提供的应用程序虚拟化方法的具体流程如图3所示,包括以下步骤:
S201:利用虚拟应用客户端调起VDI客户端向服务端发送启动请求,以启动服务端的Windows应用程序,虚拟应用客户端和VDI客户端安装于Linux客户端。
虚拟应用客户端用于接受Linux客户端的用户的登录,并向用户展示Windows应用程序的信息,展示的信息包括Windows应用程序在服务端的路径、图标、版本号等信息,在接收到用户启动Windows应用程序的请求时,调起VDI客户端向服务端发送启动请求。例如,用户在虚拟应用客户端中Windows应用程序的图标上点击时,虚拟应用客户端调起VDI客户端向服务端发送启动请求。
S202:在接收到服务端发送的Windows应用程序的窗口信息时,利用VDI客户端在Linux客户端上绘制窗口信息。
在利用VDI客户端在Linux客户端上绘制Windows应用程序的窗口信息时,VDI客户端相应的绘制画布可能存在剩余,则在绘制完Windows应用程序的窗口信息后,对多余的画布进行剪除,仅保留Windows应用程序的窗口,从而使Linux客户端得到一个更加逼真的Windows应用程序,提高Linux客户端的用户在使用Windows应用程序的体验。
在一个具体的例子中,在S202之前,本申请实施例提供的应用程序虚拟化方法还包括:利用VDI客户端发送所述Linux客户端的输入信息;相应地,S202具体可以包括:接收服务端发送的第一窗口信息,并通过VDI客户端绘制第一窗口信息,其中,第一窗口信息为Windows应用程序响应输入信息后的窗口信息。
本申请实施例提供的应用程序虚拟化方法,通过利用虚拟应用客户端调起VDI客户端向服务端发送启动请求,以启动服务端的Windows应用程序,在接收到服务端发送的Windows应用程序的窗口信息时,利用VDI客户端在Linux客户端上绘制Windows应用程序的窗口信息,可以在Linux客户端上虚拟运行Windows应用程序,从而实现将Windows系统的应用程序应用于Linux系统上。
不难发现,本实施例为与前述实施例相对应的在客户端的实施例,本实施例可与前述实施例互相配合实施。前述实施例中提到的相关技术细节在本实施例中依然有效,为了减少重 复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在前述实施例中。
此外,本领域技术人员可以理解,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
在一个实施例中,涉及一种应用程序虚拟化系统300,如图4所示,包括Linux客户端301和服务端302。
Linux客户端301用于向服务端302发送启动请求;
服务端302用于在接收到启动请求时,启动服务端302的Windows应用程序,实时获取Windows应用程序的窗口信息,并将窗口信息返回至Linux客户端301;
Linux客户端301还用于在接收到窗口信息时,在Linux客户端301上绘制窗口信息。
示例性地,如图5所示,本申请实施例提供的应用程序虚拟化系统300还包括管理端303。
管理端303用于将待发布的应用程序发送至服务端302;
服务端302还用于在接收到待发布的应用程序时,将待发布的应用程序发布在服务端302,得到Windows应用程序。
示例性地,服务端302还用于:接收Linux客户端301的输入信息;在接收到Linux客户端301的输入信息时,实时获取Windows应用程序在响应输入信息后的第一窗口信息,并将第一窗口信息返回至Linux客户端301,以在Linux客户端301上绘制第一窗口信息。
示例性地,服务端302还用于:使用全局钩子实时捕获Windows应用程序的窗口信息。
示例性地,服务端302还用于:在接收到Windows应用程序的文件指令时,将文件指令重定向至Linux客户端301。
示例性地,服务端302还用于:在接收到Linux客户端301的输入信息时,若输入信息触发服务端302的剪切板;则将剪切板重定向至Linux客户端301。
为了更清楚地说明本申请实施例的技术方案,下面以一个具体示例进行说明。请参考图6,其为本申请实施例提供的应用程序虚拟化系统300的具体示例图。图6中主要包括虚线框所示的两个部分的内容:虚拟应用的发布和虚拟应用的使用,其中,虚拟应用的具体应用程序为Windows应用程序,具体如下:
1、发布虚拟应用。
Irai为管理页面,管理员可在该页面上进行虚拟应用的发布、分配用户的虚拟应用以及虚拟应用和应用服务器的管理。
具体地,管理员先在管理页面加载虚拟应用,Irai将发布的任务通知虚拟化管理模块ICES,ICES通过主机上的虚机代理hmbooster与服务端虚拟的虚机代理vmbooster进行通信,vmbooster与服务端内安装的发布工具vpservice交互,vpservice将虚拟应用的信息(包括软件路径、图标、版本等信息)上报给管理端的内存库CSAP,CSAP再将数据通过数据传输模块CS将数据传给Irai,至此,管理员可在页面看到服务端所有的虚拟应用,再选择需要发布的虚拟应用进行发布。其中,vpservice的作用除了发布虚拟应用外,还用于将服务端注册到Irai,注册信息包括服务器名称、通用唯一识别码、服务器ip、组件版本、服务器启动状态、服务器工作状态、计算机名、域信息、当前连接会话数等信息。
2、使用虚拟应用。
Linux虚拟桌面安装虚拟应用客户端Ientry,用户登录虚拟应用客户端Ientry,获取系统参数以及虚拟应用软件信息(包括软件路径、图标、版本号等)。
虚拟应用客户端Ientry调起VDI客户端创建虚拟应用窗口,VDI客户端通过主通道连接服务端的UsbIpc模块,UsbIpc模块调用AppProxy的动态库;AppProxy的动态库与Rds和Display交互,Rds创建用户session,Display负责session图像的抓取、编码和session应用的上报;Display启动Sound和Input负责获取声音、键盘和鼠标的输入。Display启动vdagent负责应用程序的启动,全量钩子捕获窗口,获取窗口句柄、标题、大小、位置、状态、图标等信息,vdagent再将应用程序的窗口通过ice协议传给客户端VDI进行绘制,完成在Linux客户端上虚拟应用的使用,同时vdagent可通过ice协议实现剪切板重定向。其中,VDI客户端通过主通道连接服务端的UsbIpc模块时,可以通过ice协议的主通道进行连接。应当说明的是,上述ice协议也可以为其它协议,上述内容仅以ice协议为例进行说明。另外,以上使用虚拟应用的流程可进一步参考图7,其为本申请实施例提供的应用程序虚拟化系统300在使用虚拟应用的流程示例图。
由于云桌面平台提供了虚拟化环境,因此本申请实施例提供的应用程序虚拟化系统可以在云桌面平台上实现,可以降低实现的难度,其实现的大概过程可以如下:
1、先在云桌面平台创建Linux虚机和winserver虚机。在winserver虚机内安装发布工具和虚拟化组件,制作为模板。Linux虚机安装虚拟应用客户端,制作为桌面虚机。其中,winserver由于较为安全,因此可作为虚拟应用的服务端。
2、通过模板创建虚拟应用的服务端和Linux桌面虚机。管理平台可通过建应用服务器池和桌面池的方式,创建虚拟应用的服务端和linux桌面,同时对两者进行加域操作。
3、创建域用户,用于登录虚拟应用的客户端(Linux客户端)。虚拟应用的服务端创建完成后,在管理页面发布虚拟应用,同时将虚拟应用分配给域用户。
4、域用户登录Linux桌面,打开虚拟应用的客户端,单点登录,可在虚拟应用的客户端内获取虚拟应用的列表,鼠标双击虚拟应用打开相应的虚拟使用。
不难发现,本实施例为与前述方法的实施例相对应的系统实施例,本实施例可与前述方法的实施例互相配合实施。前述方法的实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在前述方法的实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
在一个实施例中,涉及一种电子设备,如图8所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述的应用程序虚拟化方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥, 总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
在一个实施例中,涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (10)

  1. 一种应用程序虚拟化方法,包括:
    在接收到Linux客户端的启动请求时,启动服务端的Windows应用程序;
    实时获取所述Windows应用程序的窗口信息,并将所述窗口信息返回至所述Linux客户端,以在所述Linux客户端上绘制所述窗口信息。
  2. 根据权利要求1所述的应用程序虚拟化方法,其中,所述实时获取所述Windows应用程序的窗口信息,并将所述窗口信息返回至所述Linux客户端,以在所述Linux客户端上绘制所述窗口信息,包括:
    接收所述Linux客户端的输入信息;
    在接收到Linux客户端的输入信息时,实时获取所述Windows应用程序在响应所述输入信息后的第一窗口信息,并将所述第一窗口信息返回至所述Linux客户端,以在所述Linux客户端上绘制所述第一窗口信息。
  3. 根据权利要求1至2中任一项所述的应用程序虚拟化方法,其中,所述实时获取所述Windows应用程序的窗口信息,包括:
    使用全局钩子实时捕获所述Windows应用程序的窗口信息。
  4. 根据权利要求1至3中任一项所述的应用程序虚拟化方法,其中,还包括:
    在接收到所述Windows应用程序的文件指令时,将所述文件指令重定向至所述Linux客户端。
  5. 根据权利要求4所述的应用程序虚拟化方法,其中,还包括:
    在接收到所述Linux客户端的输入信息时,若所述输入信息触发所述服务端的剪切板;则将所述剪切板重定向至所述Linux客户端。
  6. 一种应用程序虚拟化方法,包括:
    利用虚拟应用客户端调起VDI客户端向服务端发送启动请求,以启动所述服务端的Windows应用程序,所述虚拟应用客户端和所述VDI客户端安装于Linux客户端;
    在接收到所述服务端发送的所述Windows应用程序的窗口信息时,利用所述VDI客户端在所述Linux客户端上绘制所述窗口信息。
  7. 一种应用程序虚拟化系统,包括Linux客户端和服务端;
    所述Linux客户端用于向所述服务端发送启动请求;
    所述服务端用于在接收到所述启动请求时,启动所述服务端的Windows应用程序,实时获取所述Windows应用程序的窗口信息,并将所述窗口信息返回至所述Linux客户端;
    所述Linux客户端还用于在接收到所述窗口信息时,在所述Linux客户端上绘制所述窗口信息。
  8. 根据权利要求7所述的应用程序虚拟化系统,其中,所述系统还包括管理端;
    所述管理端用于将待发布的应用程序发送至所述服务端;
    所述服务端还用于在接收到所述待发布的应用程序时,将所述待发布的应用程序发布在所述服务端,得到所述Windows应用程序。
  9. 一种电子设备,包括:
    至少一个处理器;以及,
    与所述至少一个处理器通信连接的存储器;其中,
    所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5任一项所述的应用程序虚拟化方法或如权利要求6所述的应用程序虚拟化方法。
  10. 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的应用程序虚拟化方法或如权利要求6所述的应用程序虚拟化方法。
PCT/CN2022/083502 2021-07-20 2022-03-28 应用程序虚拟化方法、系统、电子设备及存储介质 WO2023000705A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110819874.X 2021-07-20
CN202110819874.XA CN115640097A (zh) 2021-07-20 2021-07-20 应用程序虚拟化方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
WO2023000705A1 true WO2023000705A1 (zh) 2023-01-26

Family

ID=84940194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/083502 WO2023000705A1 (zh) 2021-07-20 2022-03-28 应用程序虚拟化方法、系统、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN115640097A (zh)
WO (1) WO2023000705A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANG HUI: "VDI Protocol Research and Practice", INFORMATION SECURITY AND TECHNOLOGY, 31 January 2015 (2015-01-31), pages 62 - 65, XP093026860, ISSN: 2096-2282 *
XIONG XIANJIE: "A Research on Image Transfer Scheme for Virtual Working Platform", CHINA MASTER'S' THESES FULL-TEXT DATABASE (ELECTRONIC JOURNAL)-INFORMATION & TECHNOLOGY), TIANJIN POLYTECHNIC UNIVERSITY, CN, no. 5, 15 May 2010 (2010-05-15), CN , XP093026856, ISSN: 1674-0246 *

Also Published As

Publication number Publication date
CN115640097A (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
US9244817B2 (en) Remote debugging in a cloud computing environment
US8924592B2 (en) Synchronization of server-side cookies with client-side cookies
US8627310B2 (en) Capturing multi-disk virtual machine images automatically
US9389932B2 (en) Systems and methods for remote storage management
US9141412B2 (en) Terminal services application virtualization for compatibility
US10708232B2 (en) Techniques for communication in hybrid cloud system
US11099865B2 (en) Auditing clipboard operations in virtual desktop environments
US10530881B2 (en) Redirecting scanners and printers over a WAN
KR20080106908A (ko) 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법
US9342329B2 (en) Method and system for cross-operating systems execution of software applications
US8762507B1 (en) Method and system for managing an information technology system
WO2016177079A1 (zh) 云桌面资源的处理方法及装置
KR101212858B1 (ko) 동기화 방법 및 시스템
WO2010078769A1 (zh) 一种网络文件系统的访问方法和访问装置
US9058205B2 (en) Automatically performing operations on applications based on dependencies on other applications
US9591079B2 (en) Method and apparatus for managing sessions of different websites
WO2020020202A1 (zh) 应用程序的账号管理方法、装置、设备和介质
CN111045781A (zh) 一种云平台创建镜像的方法、装置和存储介质
US20150261470A1 (en) Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage
US11263039B2 (en) High performance attachable writeable volumes in VDI desktops
WO2023000705A1 (zh) 应用程序虚拟化方法、系统、电子设备及存储介质
US20080270480A1 (en) Method and system of deleting files from a remote server
JP6205013B1 (ja) アプリケーション利用システム
US9904475B2 (en) Systems and methods for setting the operating system properties for a storage device
WO2018217406A1 (en) Providing instant preview of cloud based file

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22844877

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE