WO2020177482A1 - 一种桌面虚拟化方法、相关设备及计算机存储介质 - Google Patents

一种桌面虚拟化方法、相关设备及计算机存储介质 Download PDF

Info

Publication number
WO2020177482A1
WO2020177482A1 PCT/CN2020/070571 CN2020070571W WO2020177482A1 WO 2020177482 A1 WO2020177482 A1 WO 2020177482A1 CN 2020070571 W CN2020070571 W CN 2020070571W WO 2020177482 A1 WO2020177482 A1 WO 2020177482A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
container
server
service
virtual desktop
Prior art date
Application number
PCT/CN2020/070571
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 WO2020177482A1 publication Critical patent/WO2020177482A1/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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Definitions

  • the present invention relates to the field of computer technology, and in particular to a method for providing virtual desktops, related equipment and computer storage media.
  • Virtual desktop infrastructure is mainly a remote desktop based on computer-side operating systems such as Windows and Linux.
  • the desktop virtualization of mobile operating systems such as Android
  • the current methods for implementing desktop virtualization of mobile operating systems include running a mobile operating system in a virtual machine (VM) environment on the server side, or using a Linux container (LXC)-based container technology to run a mobile operating system to achieve Provide users with virtual desktop services.
  • VM virtual machine
  • LXC Linux container
  • the server provides services at the granularity of the operating system, which will cause the inconvenience of application upgrades and updates.
  • the scalability of virtual desktops is low.
  • the granularity of the operating system will cause the bottom layer
  • the redundancy of system services results in low resource utilization.
  • the embodiment of the present invention discloses a method for providing virtual desktops.
  • the scalability of the virtual desktops can be improved. Reduce server resource overhead and improve resource utilization.
  • an embodiment of the present application provides a method for providing a virtual desktop, the method including:
  • the server runs multiple shared service containers, each shared service container is used to run shared system services, and the shared system service run by at least one of the multiple shared service containers is used by at least two virtual desktops;
  • the server receives the target application identification ID sent by the user terminal, creates a user container group according to the target application ID, and runs the user container in the user container group;
  • the server receives the virtual desktop access request sent by the user terminal, and provides the virtual desktop to the user terminal through the user container and some or all of the shared service containers running in the user container group.
  • the target application ID includes an application ID, and at least one user container running in the user container group runs the application corresponding to the application ID; and/or
  • the target application ID includes a dedicated system service ID, and at least one user container running in the user container group runs a dedicated system service corresponding to the dedicated system service ID.
  • the server stores the corresponding relationship between the user identifier and each user container in the user container group;
  • the method also includes:
  • the server invokes the second user container in the user container group through the first user container running in the user container group according to the virtual desktop operation request.
  • the server is equipped with a user data volume for the user container group, and the user data volume is used to store user data corresponding to the user container group.
  • the desktop virtualization method provided by the embodiment of the present application encapsulates the system services that multiple users can use together into a shared service container for all virtual desktops of the virtual desktop server to use together, and each user uses a dedicated system service individually And applications are packaged into mutually isolated containers, which can improve the maintainability and scalability of the system, overcome the redundancy of the underlying system services when the operating system is the granularity of the desktop virtualization, reduce the resource overhead of the server, and improve Resource utilization.
  • an embodiment of the present application provides an apparatus for providing a virtual desktop, the apparatus including:
  • the processing unit is configured to run multiple shared service containers, each shared service container is used to run shared system services, and the shared system service run by at least one of the multiple shared service containers is provided for at least two virtual desktops Common use
  • the communication unit is configured to receive the target application identification ID sent by the user terminal, create a user container group according to the target application ID, and run the user container in the user container group;
  • the communication unit is further configured to receive a virtual desktop access request sent by the user terminal;
  • the processing unit is further configured to, after receiving the virtual desktop access request, run the user container and some or all of the shared service containers in the user container group to provide the virtual desktop to the user terminal.
  • the target application ID includes an application ID, and at least one user container running in the user container group runs the application corresponding to the application ID; and/or
  • the target application ID includes a dedicated system service ID, and at least one user container running in the user container group runs a dedicated system service corresponding to the dedicated system service ID.
  • the device further includes a storage unit configured to store the corresponding relationship between the user identifier and each user container in the user container group;
  • the communication unit is also used for the server to receive a virtual desktop operation request sent by the user terminal;
  • the processing unit is further configured to call a second user container in the user container group through the first user container running in the user container group according to the virtual desktop operation request.
  • the device further includes a user data volume, and the user data volume is used to store user data corresponding to the user container group.
  • an embodiment of the present application provides a network device including a processor, an input/output device, and a memory; the memory is used to store instructions, the processor is used to execute the instructions, and the input/output device is used to Communicating with other devices under the control of the processor; wherein the method according to the first aspect is executed when the processor executes the instruction.
  • an embodiment of the present application provides a non-transitory computer storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by a processor, the method as described in the first aspect is implemented.
  • FIG. 1 is a schematic diagram of deploying virtual desktops based on virtual machine technology according to an embodiment of the present application
  • FIG. 2 is a schematic diagram of deploying virtual desktops based on container technology according to an embodiment of the present application
  • FIG. 3 is a schematic flowchart of a desktop virtualization method provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a container deployment that uses containerization technology to implement virtual desktops according to an embodiment of the present application
  • FIG. 5 is a schematic structural diagram of a desktop virtualization device provided by an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a network device provided by an embodiment of the present application.
  • Fig. 7 is a schematic diagram of a virtual desktop service system provided by an embodiment of the present application.
  • VDI Virtual desktop infrastructure
  • VDI refers to the virtual machine running the desktop system through a virtual desktop server. By virtualizing the user's desktop, the user can establish a connection with the virtual desktop server through any client to access their own Desktop system.
  • Virtualization technology can meet the needs of centralized management of user data and data security.
  • the virtualization of mobile operating systems (such as Android) has more and more market demands.
  • mobile desktop virtualization based on mobile operating system virtualization technology.
  • mobile operating system desktop virtualization refers to virtual mobile infrastructure (VMI), which delivers the entire mobile operating system desktop to users.
  • VMI virtual mobile infrastructure
  • the mobile operating system is an Android operating system as an example to introduce the desktop virtualization method in the embodiment of the application. It can be understood that the mobile operating system may also be a Symbian system, an ios system, a blackberry system, and so on.
  • the current methods for implementing android desktop virtualization include the following two:
  • the first is to implement the android virtual desktop in the virtual machine environment of the server.
  • a virtual machine refers to a complete virtual computer system that has complete hardware system functions and runs in a completely isolated environment through software simulation.
  • virtualization technology can add a hypervisor layer on top of the server's operating system.
  • Hypervisor is an intermediate software layer that runs between the physical server and the operating system and can virtualize hardware resources. , Such as central processing unit (CPU), hard disk, memory resources, etc., and then install the target operating system required by the user on the virtualized resources, thereby generating the target operating system in a virtual machine through virtualization technology The complete virtual image of.
  • the target operating system has exactly the same functions as the real operating system, and can independently install and run software in the virtual machine, save data, etc., without any impact on the operating system of the server where the virtual machine is installed, that is, the virtual machine is a complete Virtualized server, the virtual machine has its own operating system, device drivers, applications, and configuration files.
  • the Hypervisor layer Through the Hypervisor layer, multiple different virtual machines can be created in one server.
  • Figure 1 is a schematic diagram of deploying an android virtual desktop based on virtual machine technology provided by an embodiment of this application.
  • the server After the user obtains the user account and user password through registration authentication, the server will create a corresponding user account
  • the virtual machine is installed with the android operating system, the user can select the application to be used, the server installs the application selected by the user in the virtual machine corresponding to the user, and the user can Log in to your user account in any user terminal, and send a virtual desktop access request to the server.
  • the server After receiving the virtual desktop access request, the server starts the virtual machine corresponding to the user account and remotely
  • the communication protocol realizes the display of the android virtual desktop on the user terminal and the redirection of user input.
  • each virtual machine can only be used by one user, and each virtual machine has a complete set of android operating system, device drivers, applications and configuration files Wait.
  • One Linux instance is the Linux system running in the server, and 20 Linux instances are the Linux system running in the virtual machine.
  • the Linx server needs to allocate physical resources to each virtual machine, such as assigning 2 CPUs and 8 Gigabit to virtual machine 1.
  • FIG. 2 is a schematic diagram of deploying an android virtual desktop based on container technology according to an embodiment of the application.
  • container technology such as Linux container (LXC)
  • LXC Linux container
  • FIG. 2 is a schematic diagram of deploying an android virtual desktop based on container technology according to an embodiment of the application.
  • all containers of the server can share the server operating system kernel, drivers, and configuration files.
  • 20 containers need to be created on the Linx server.
  • the shared libraries include the server and the Drivers and configuration files shared by 20 containers, for example, each container can share audio drivers, graphics processing drivers, etc.
  • each container only includes the application and all the class libraries and configuration files needed to run the application. Therefore, compared to the virtual machine in FIG. 1, the space occupied by each container in FIG. 2 is smaller than the space occupied by the virtual machine, and a container generally only occupies a space of tens of megabytes.
  • the server provides virtual desktop services with the android operating system as the granularity, which will cause the inconvenience of application upgrades.
  • using the operating system as the granularity will cause the redundancy of the underlying system services.
  • resource utilization is low.
  • an embodiment of the present application provides a desktop virtualization method.
  • the system services and applications involved in the embodiment of the present application are first introduced.
  • the system services and application programs in the embodiments of the present application are all running in a container on the server side to provide users with virtual desktop services.
  • the server may include one or more servers, each server has one or more virtual desktops running, and the containers included in each virtual desktop are running on the same server.
  • an application program refers to a program that requires the user to actively trigger the startup to run on the server side, and exits the program if it is not used for a predetermined period of time after startup.
  • the application program will not be triggered when the user is not using it.
  • the application program is usually published by an application store and installed in the server after the user chooses to use it, such as video playback software, audio playback software, and instant messaging software.
  • System service refers to a program or process that executes a specified system function. It is an application programming interface (API) that can provide specific functions, and is included in the ServiceManager for management and is a process running in the SystemServer. For example, window management service, Bluetooth management service, storage management service, battery management service, location service, network service, etc.
  • API application programming interface
  • the system service can run on the server for a long time after the user logs in to the virtual desktop, or it can run on the server for a long time after being called and started by the application, even if the application of the system service is started After being logged off, the system service will still run on the server.
  • the system service is divided into exclusive system service and shared system service.
  • the shared system service is a system service that does not involve user personal data when running or when called by an application.
  • time service Take the time service as an example.
  • the time service provides different user terminals with the current time and does not involve the user’s personal data.
  • window management service of the android system which is used in different user terminals.
  • the shared system service can be used by multiple users.
  • the exclusive system service refers to a system service involving user personal data when running or when called by an application. For example, location services, camera services, phone services, and alarm clock services. Taking location services as an example, when a user needs to use location services in an application, the application will send a location request to the location service. After determining the location information of the user, the location information will be returned to the application. Therefore, the location service includes the user's personal privacy data. In order to prevent the privacy of users from leaking, each user needs to correspond to a set of exclusive system services. Each exclusive system service can only be invoked by the application used by the corresponding user, and cannot be shared by multiple users.
  • FIG. 3 is a schematic flowchart of a desktop virtualization method provided by the present application, and the method includes:
  • the server runs multiple shared service containers.
  • each shared service container is used to run a shared system service, and the shared system service run by at least one shared service container in the plurality of shared service containers is used by at least two virtual desktops.
  • FIG. 4 is a schematic diagram of a container deployment that uses containerization technology to provide virtual desktops provided by an embodiment of the present application.
  • the server creates and runs multiple shared service containers.
  • Each of the multiple shared service containers runs a shared system service
  • the shared service container is a container that can be used by all virtual desktops in the server where the multiple shared service containers are located, that is, the server No matter how many virtual desktops are deployed, all virtual desktops deployed in the server use the shared system services in the multiple shared service containers.
  • the server receives the target application identifier sent by the user terminal, and creates a user container group according to the target application identifier.
  • the user before using the virtual desktop, the user needs to send a registration request to the server through the user terminal.
  • the registration request is used to request the server to use the virtual desktop service, and the registration request includes a user account. And the user password.
  • the server passes the registration request, the user can log in to the user account through any user terminal, select the application and/or exclusive system service to be used, and send a virtual desktop creation request to the server,
  • the virtual desktop creation request includes the target application identification (identification, ID).
  • the virtual desktop creation request may also carry a user identification.
  • the user identification may be the user account.
  • the server creates a user container group corresponding to the user identifier according to the target application ID, and the user container group includes one or more user containers.
  • the target application ID includes an application ID and/or a dedicated system service ID
  • the server searches for the application corresponding to the application ID in the container image resource pool according to the application ID, And create a user container to run the application on the server, and/or search the container image resource pool for the exclusive system service corresponding to the exclusive system service ID according to the exclusive system service ID, and create and run it on the server User container for dedicated system services.
  • the exclusive system service belongs to the system service of the android operating system. Compared with the shared system service, the exclusive system service involves the user's personal data when running or providing the service, such as the camera service. When the user is in any application When the program requests to turn on the camera, the camera will capture the user or the surrounding environment of the user. In order to prevent the leakage of the user's personal information, each virtual desktop of the server needs a camera service. Therefore, each virtual desktop on the server needs a set of exclusive system containers to encapsulate exclusive system services for each user to use individually.
  • one or more user containers in the user container group include application containers, and each of the application containers encapsulates one or more application programs selected by the user.
  • the application program needs the user to actively start running after the user logs in to the virtual desktop.
  • the user can choose to exit the application program, and the application program ends and does not run in the background of the system.
  • a music player is an application program. If the target application selected by the user includes the music player, the server can package the music player into an application container, and the user is using the user terminal After logging in to the virtual desktop, the application icon of the music player is displayed on the display interface of the user terminal.
  • the server determines that the user clicked on the music according to the redirection technology Player, the server runs the application container corresponding to the music player. If the user does not want to listen to songs anymore, the user needs to choose to exit the music player, and the server ends the operation of the application container corresponding to the music player, and ends the operation of the application program of the music player.
  • one or more user containers in the user container group may also include an exclusive service container (exclusive services container), and each exclusive service container encapsulates one or more exclusive services selected by the user. system service.
  • the dedicated system service can be installed and used by the user. If the user does not choose to use a certain system service, the user’s virtual desktop does not have the system service function, and the user container group corresponding to the user The dedicated service container corresponding to the dedicated system service is not created in the. For example, among users who use the alarm clock service, the alarm time setting of each user is different. Therefore, in this embodiment of the present application, the alarm clock service is a dedicated system service.
  • the system services include the alarm clock service, but because the user does not need to set the alarm clock, the alarm clock service may not be selected, and the server will not be in the user container group corresponding to the user A dedicated service container corresponding to the alarm clock service is created in, so that the overhead of the server resources can be reduced.
  • the virtual desktop corresponding to the user ID includes the user container group and the multiple shared service containers, that is, each server on the server has only one group of shared service containers, and one user ID corresponds to
  • the virtual desktop includes a user container group and the multiple shared service containers, the interaction between the multiple shared service containers and one or more user containers in the user container group, and the user container and the dedicated system service container All interactions are implemented based on the binder mechanism and managed by the Android service management mechanism ServiceManager.
  • each user container of the one or more user containers only encapsulates an application program or a dedicated system service selected by the user, that is, each application container only Encapsulate an application that the user chooses to use. Only one dedicated system service is encapsulated in each dedicated service container. Each system service and each application are encapsulated into a separate container, so that the virtual desktop service is completely micro-serviceable and can Make application upgrades and updates more convenient, and improve the maintainability and scalability of the system.
  • the server receives the virtual desktop access request sent by the user terminal, and provides the virtual desktop to the user terminal through the user container and some or all of the shared service containers running in the user container group.
  • the server After the server creates the plurality of shared service containers and creates the user container group according to the target application ID, the virtual desktop corresponding to the user identifier is successfully constructed, that is, the virtual desktop corresponding to the user identifier includes The multiple shared system containers and the user container group corresponding to the user identifier.
  • a user when a user needs to use a virtual desktop, he can open the client's virtual desktop service function on any user terminal, and display a virtual desktop connection interface on the user terminal, and the virtual desktop connection interface includes user information input Window, the user enters the user account and user password in the user information input window to send the virtual desktop access request to the server, and the server receives the virtual desktop access request
  • the user identifier ie, user account
  • some or all of the shared service container and the user container in the user container group corresponding to the user identifier are started, and the user terminal is connected to the service
  • the display of the virtual desktop on the user terminal is completed between the terminals through a remote communication protocol.
  • the user can operate the application program displayed on the user terminal, the user terminal sends the user's operation to the server through the remote communication protocol, and the server responds to the received user input
  • the operation of is redirected to operate the corresponding container in the server, and the result of the operation is returned to the user terminal.
  • the remote communication protocol may be a simple protocol for independent computing environment (SPICE), a remote display protocol (remote display protocol, RDP), or a virtual network console (virtual network console, VNC) protocol, the embodiment of this application does not make specific limitations.
  • the desktop virtualization method provided by the embodiment of the present application encapsulates the system services that multiple virtual desktops can use together into a shared service container for all virtual desktops in each server to use together, and each user individually uses exclusive System services and applications are packaged into mutually isolated containers, which can improve the maintainability and scalability of the system, reduce the redundancy of the underlying system services when the operating system is used as the granularity of desktop virtualization, and reduce the resource overhead of the server , Improve resource utilization.
  • each system service and each application of the mobile operating system can be encapsulated into a separate container, so that the virtual desktop service is completely micro-serviceable, which can make application upgrades and updates more convenient, and further improve the maintainability of the system And scalability.
  • all system services including shared system services and exclusive system services
  • applications that constitute virtual desktops on the server side are packaged in containers for deployment.
  • Different user container groups belong to different users, so different users
  • the container groups need to be isolated so that the server can identify the container groups to which different processes belong.
  • the server configures a unique container group identifier for the user container group, that is, configures the same container group for each user container in the same user container group ID, user containers with the same container group ID belong to the same user container group.
  • the server After the server receives the virtual desktop creation request sent by the user whose user ID is abc, the server will configure the container group ID group_i for each user container in the user container group corresponding to the user ID. If there are n user container groups, the container group identifiers of the n user container groups may be group_0 to group_n, respectively. Therefore, a container group identifier can be added to the task_struct structure of the process descriptor of each process of the server, so that the server can determine which process each process belongs to according to the container group identifier carried by the task_struct structure in each process. The user container group determines the target container in the user container group corresponding to each process according to the process identifier (PID) and the namespace (namespace), and then allocates corresponding resources and data to the target container.
  • PID process identifier
  • namespace namespace
  • the server stores the corresponding relationship between the user identifier and the container group identifier, that is, the corresponding relationship between the user identifier and each user container in the user container group.
  • the server may determine the user container group corresponding to the virtual desktop operation request according to the user identifier in the virtual desktop operation request, and then determine the user container group corresponding to the virtual desktop operation request.
  • the container executes the operation corresponding to the virtual desktop operation request.
  • the virtual desktop operation request is to start a music player
  • the server determines the user container group corresponding to the virtual desktop operation request according to the user identifier in the virtual desktop operation request , And start the application container corresponding to the music player in the user container group.
  • the virtual desktop operation request may be that application a needs to call another application b or a dedicated system service c.
  • the server needs to correspond to application a
  • the first user container of calls the second user container in the user container group.
  • the second user container needs to verify the first container group identifier and the second user container in the virtual desktop operation request sent by the first user container Whether the second container group identifiers of the are consistent. Therefore, the user container of the server needs to have a container group identification recognition mechanism. Specifically, the communication between containers is implemented based on the binder mechanism.
  • the container group identification function for the binder client and server, that is, configure the container group for each container
  • the identification recognition function wherein the client and server of the binder refer to two containers that interact based on the binder mechanism.
  • a user opens an album application on a user terminal, the user terminal sends a first operation request to the server, and the server determines that the album application corresponds to the service according to the user identifier in the first operation request If the first user container in the user container group group_0 on the end, the server starts the first user container in group_0. If the user needs to share a photo in the photo album application with a friend through an instant messaging application, the user needs to call the instant messaging application through the photo album application, and the first user container corresponding to the photo album application will send The second user container corresponding to the instant messaging application sends a call request. Specifically, the server first determines which of the call request is sent according to the first container group identifier of the first user container carried in the call request.
  • the user container group to which the first user container belongs sends the call request to the second user container in the same user container group according to the first container group identifier.
  • the second user container After receiving the invocation request, the second user container first identifies whether the first container group identifier in the invocation request is consistent with the second container group identifier of the second user container. If they are consistent, the The second user container is started, opens the instant messaging application, and displays the user interface of the instant messaging application on the user terminal, so that the user selects a friend. For another example, if the positioning function is used in application a, the container A corresponding to the application a needs to send a positioning request to the container B encapsulating the positioning service.
  • the positioning request includes the container group identifier of the container A, so After receiving the positioning request, the container B recognizes the container group identifier in the positioning request, if the container group identifier in the positioning request is the same as the container group identifier of the container group in which the container B is located, Then the container B performs the positioning function and returns the positioning result to the container A. If it is different, the container B does not respond to the positioning request.
  • the server needs to determine the system before containerizing the system service Whether the service is a shared system service or a dedicated system service.
  • the server configures the identity of the container that encapsulates the dedicated system service to correspond to the dedicated system service.
  • the container group identifier of the user container group is the same; for a shared system service, the identifier of the container that encapsulates the shared system service is configured to be empty.
  • the data of different virtual desktops needs to have different data storage areas. Since each user’s android virtual desktop is deployed on the server through a user container group, it must be Each user container group is configured with an independent storage area to ensure data isolation between different users. Specifically, copy a copy of the root file system rootfs of the host, and use this as a shared data volume to mount to each container in the user container group one by one, so as to realize file system sharing among multiple containers. Then create different data volumes for different user container groups and mount them to the corresponding user container groups, so as to allocate different data storage areas for each user container group (ie virtual desktop) to realize data between user container groups Storage isolation.
  • the server before creating the user container group corresponding to the user ID according to the user ID, the server will also create a container mirroring resource pool.
  • the container mirroring resource pool includes an application container set and a dedicated service container.
  • the set of application containers includes multiple application containers, and the set of dedicated service containers includes multiple dedicated service containers.
  • the server first encapsulates the container image resource pool into an application market view and sends it to the user terminal, so that the user can select the application and/or exclusive system service to be used from the application market;
  • the user terminal sends the application program identifier and/or the exclusive system service identifier selected by the user and the user identifier of the user to the server.
  • FIG. 5 is a schematic structural diagram of a desktop virtualization apparatus according to an embodiment of the application.
  • the network device 200 at least includes a processing unit 210 and a communication unit 220. among them,
  • the processing unit 210 is configured to run a plurality of shared service containers, each shared service container is used to run a shared system service, and at least one of the plurality of shared service containers runs a shared system service for at least two virtual Desktop common use;
  • the communication unit 220 is configured to receive the target application identification ID sent by the user terminal;
  • the processing unit 210 is further configured to create a user container group according to the target application ID, and the user container runs in the user container group;
  • the communication unit 220 is further configured to receive a virtual desktop access request sent by the user terminal;
  • the processing unit 210 is further configured to, after receiving the virtual desktop access request, run the user containers and some or all of the shared service containers in the user container group to provide the virtual desktop to the user terminal.
  • the device further includes a storage unit 230, which is used to store the corresponding relationship between the user identifier and each user container in the user container group;
  • the communication unit is also used for the server to receive a virtual desktop operation request sent by the user terminal;
  • the processing unit is further configured to call a second user container in the user container group or a user container in the multiple shared service containers through a first user container running in the user container group according to the virtual desktop operation request The first shared service container.
  • the communication unit 220 is used for the desktop virtualization apparatus to interact with the user terminal.
  • the communication unit 220 is used for the desktop virtualization apparatus to interact with the user terminal.
  • the processing unit 210 is configured to create a virtual desktop corresponding to the user identifier in the desktop virtualization device and implement other operations described in the foregoing method embodiment with the server as the execution subject.
  • FIG. 6 is a schematic structural diagram of a network device provided by an embodiment of the application.
  • the network device 300 at least includes a processor 310, a communication interface 320, and a memory 330.
  • the processor 310, an input and output device 320 And the memory 330 is connected to each other through the bus 340, where
  • the processor 310 may be a central processing unit (CPU), or a combination of a CPU and a hardware chip.
  • the aforementioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
  • the communication interface 320 may be a wired interface (such as an Ethernet interface) or a wireless interface (such as a cellular network interface or using a wireless local area network interface) for communicating with other modules or devices.
  • a wired interface such as an Ethernet interface
  • a wireless interface such as a cellular network interface or using a wireless local area network interface
  • the memory 330 includes, but is not limited to, random access memory (RAM), read-only memory (ROM), or erasable programmable read-only memory (EPROM). ) Or flash memory, the memory 330 is used to store program codes and data, and can transmit the stored data to the processor 310.
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • flash memory the memory 330 is used to store program codes and data, and can transmit the stored data to the processor 310.
  • the bus 340 may be a peripheral component interconnection standard (peripheral component interconnect, PCI for short) bus or an extended industry standard architecture (EISA) bus or the like.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus 340 can be divided into an address bus, a data bus, a control bus, and so on. For ease of representation, only one thick line is used in FIG. 6, but it does not mean that there is only one bus or one type of bus.
  • the processor 310 in the network device 300 is configured to read related instructions in the memory 330 to perform the following operations:
  • the processor 310 runs multiple shared service containers, each shared service container is used to run shared system services, and the shared system service run by at least one of the multiple shared service containers is used by at least two virtual desktops. ;
  • the processor 310 controls the communication interface 320 to receive the target application identification ID sent by the user terminal;
  • the processor 310 is further configured to create a user container group according to the target application ID, and the user container runs in the user container group;
  • the processor 310 controls the communication interface 320 to receive a virtual desktop access request sent by the user terminal;
  • the processing unit 310 is further configured to, after receiving the virtual desktop access request, run the user containers and some or all of the shared service containers in the user container group to provide the virtual desktop to the user terminal.
  • the network device can create a set of shared service containers and one or more user container groups as shown in FIG. 4 in the network device to provide virtual desktop services to multiple users, as shown in FIG. 7
  • the network device is applied to the virtual desktop service system shown in Figure 7.
  • the system shown in Figure 7 includes a user terminal cluster composed of multiple user terminals and a server cluster composed of multiple servers.
  • the server cluster in Figure 7 can Provide users with virtual desktop services based on cloud services.
  • any server in the server cluster will create a user container group corresponding to the user ID on the server according to the user ID sent by the user terminal and the target application ID.
  • the container group and the multiple shared service containers created in the server together form a virtual desktop corresponding to the user identifier, and the server and the user terminal communicate through a remote communication protocol to provide virtual desktop services to users.
  • the embodiment of the present application also provides a non-transitory computer storage medium.
  • the non-transitory computer storage medium stores instructions. When it runs on a processor, it executes S102, S104, S106 and/or above in FIG. 3 It is used to execute other steps executed by the server described in the method embodiment of this application.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种桌面虚拟化方法及相关设备,该方法通过服务端运行多个共享服务容器,每个共享服务容器运行共享系统服务,且多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;服务端接收用户终端发送的目标应用标识,根据目标应用标识创建用户容器组,所述用户容器组内运行用户容器;服务端通过用户容器组内运行的用户容器和一部分或全部共享服务容器向用户终端提供所述虚拟桌面。通过将虚拟桌面的系统服务以及应用程序分别封装成容器,并且服务端多个虚拟桌面共享多个共享服务容器,能够提高虚拟桌面的可扩展性,减少服务端的资源开销,提高资源利用率。

Description

一种桌面虚拟化方法、相关设备及计算机存储介质 技术领域
本发明涉及计算机技术领域,尤其涉及一种提供虚拟桌面的方法、相关设备及计算机存储介质。
背景技术
虚拟桌面基础设施(virtual desktop infrastructure,VDI)主要是基于Windows、Linux等电脑端操作系统的远程桌面,在当前移动设备大规模应用的背景下,移动操作系统如安卓(android)系统的桌面虚拟化有着越来越多的市场需求。当前实现移动操作系统桌面虚拟化的方法包括在服务端的虚拟机(virtual machine,VM)环境中运行移动操作系统,或者采用基于Linux容器(Linux container,LXC)的容器技术运行移动操作系统,从而实现为用户提供虚拟桌面服务。
但是,上述两种桌面虚拟化方法中,服务端均是以操作系统为粒度提供服务,这样会造成应用升级更新的不便,虚拟桌面的可扩展性较低,同时以操作系统为粒度会造成底层系统服务的冗余,导致资源利用率低。
发明内容
本发明实施例公开了一种提供虚拟桌面的方法,通过将虚拟桌面的系统服务以及应用程序分别封装成容器,并且服务器的虚拟桌面可以共享部分系统服务,从而能够提高虚拟桌面的可扩展性,减少服务器的资源开销,提高资源利用率。
第一方面,本申请实施例提供一种提供虚拟桌面的方法,所述方法包括:
服务端运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
所述服务端接收用户终端发送的目标应用标识ID,根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
所述服务端接收所述用户终端发送的虚拟桌面接入请求,通过所述用户容器组内运行的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
在一可能的实施例中,所述目标应用ID包括应用程序ID,所述用户容器组内运行的至少一个用户容器运行所述应用程序ID对应的应用程序;和/或
所述目标应用ID包括专属系统服务ID,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务ID对应的专属系统服务。
在一可能的实施例中,所述服务端存储所述用户标识和所述用户容器组内每个用户容器的对应关系;
所述方法还包括:
所述服务端接收所述用户终端发送的虚拟桌面操作请求;
所述服务端根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容 器调用所述用户容器组内的第二用户容器。
在一可能的实施例中,所述服务端为所述用户容器组分配有用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。
本申请实施例提供的桌面虚拟化方法,通过将多个用户可以共同使用的系统服务封装成共享服务容器以供虚拟桌面服务端的所有虚拟桌面共同使用,并将每个用户单独使用的专属系统服务以及应用程序均封装成相互隔离的容器,从而能够提高系统的可维护性以及可扩展性,克服以操作系统为粒度实现桌面虚拟化时的底层系统服务的冗余,减少服务端的资源开销,提高资源利用率。
第二方面,本申请实施例提供一种提供虚拟桌面的装置,所述装置包括:
处理单元,用于运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
通信单元,用于接收用户终端发送的目标应用标识ID,根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
所述通信单元,还用于接收所述用户终端发送的虚拟桌面接入请求;
所述处理单元,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
在一可能的实施例中,所述目标应用ID包括应用程序ID,所述用户容器组内运行的至少一个用户容器运行所述应用程序ID对应的应用程序;和/或
所述目标应用ID包括专属系统服务ID,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务ID对应的专属系统服务。
在一可能的实施例中,所述装置还包括存储单元,所述存储单元用于存储所述用户标识和所述用户容器组内每个用户容器的对应关系;
所述通信单元,还用于所述服务端接收所述用户终端发送的虚拟桌面操作请求;
所述处理单元,还用于根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器。
在一可能的实施例中,所述装置还包括用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。
第三方面,本申请实施例提供一种网络设备,包括处理器、输入输出设备以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述输入输出设备用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如第一方面所述的方法。
第四方面,本申请实施例提供一种非瞬态计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其 他的附图。
图1是本申请实施例提供的一种基于虚拟机技术部署虚拟桌面的示意图;
图2是本申请实施例提供的一种基于容器技术部署虚拟桌面的示意图;
图3是本申请实施例提供的一种桌面虚拟化方法的流程示意图;
图4是本申请实施例提供的一种采用容器化技术实现虚拟桌面的容器部署示意图;
图5是本申请实施例提供的一种桌面虚拟化装置的结构示意图;
图6是本申请实施例提供的一种网络设备的结构示意图;
图7是本申请实施例提供的一种虚拟桌面服务系统的示意图。
具体实施方式
虚拟桌面基础设施(virtual desktop infrastructure,VDI)是指通过虚拟桌面服务器运行桌面系统的虚拟机,通过将用户的桌面进行虚拟化,使得用户可以通过任意客户端与虚拟桌面服务器建立连接以访问自己的桌面系统。
虚拟化技术能够满足用户数据的集中管理和对数据安全的需求。在当前移动设备大规模应用的背景下,移动操作系统(例如安卓系统)的虚拟化有着越来越多的市场需求,同时也伴随着基于移动操作系统虚拟化技术的移动桌面虚拟化的需求,相对于传统的VDI,移动操作系统桌面虚拟化是指虚拟移动基础设施(virtual mobile infrastructure,VMI),给用户交付整个移动操作系统的桌面。本申请实施例以移动操作系统为安卓(android)操作系统为例,对本申请实施例中的桌面虚拟化方法进行介绍。可以理解,所述移动操作系统还可以是塞班(symbian)系统、ios系统、blackberry系统等。当前实现android桌面虚拟化的方法包括以下两种:
第一种是在服务器的虚拟机环境中实现android虚拟桌面。其中,虚拟机(virtual machine,VM)是指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的虚拟计算机系统。如图1所示,虚拟化技术可以在服务器的操作系统之上增加一层管理程序(Hypervisor)层,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可以虚拟化硬件资源,例如中央处理器(central processing unit,CPU)、硬盘、内存资源等,然后在虚拟出来的资源上安装用户所需要的目标操作系统,从而通过虚拟化技术在虚拟机中生成所述目标操作系统的完整虚拟镜像。所述目标操作系统具有真实操作系统完全相同的功能,可以在虚拟机中独立安装运行软件,保存数据等,不会对安装虚拟机的服务器的操作系统产生任何影响,即虚拟机是一个完整的虚拟化服务器,虚拟机中具有自己的操作系统、设备驱动程序、应用程序以及配置文件等,通过Hypervisor层,在一个服务器中可以创建多个不同的虚拟机。
如图1所示,图1是本申请实施例提供的一种基于虚拟机技术部署android虚拟桌面的示意图,用户在通过注册认证获取用户账号和用户密码之后,服务器会创建一个与该用户账号对应的虚拟机,所述虚拟机中安装有android操作系统,所述用户可以选择需要使用的应用程序,服务器将所述用户选择使用的应用程序安装在该用户对应的虚拟机中,所述用户可以在任何用户终端中登录自己的用户账号,向所述服务器发送虚拟桌面接入请求,所述服务器在接收到所述虚拟桌面接入请求之后,启动所述用户账号对应的虚拟机,并通过远程通信协议实现android虚拟桌面在用户终端上的 显示以及用户输入的重定向。
但是,上述基于虚拟机技术实现android虚拟桌面的方法中,每一个虚拟机只能供一个用户使用,而每一个虚拟机中具有一套完整的android操作系统、设备驱动程序、应用程序以及配置文件等。例如,若图1中n=20,即在Liunx服务器上部署有20个用户对应的虚拟桌面,则在Liunx服务器上需要创建20个虚拟机,需要使用cpu和内存资源运行21个Linux实例,其中1个Linux实例是服务器中运行的Linux系统,20个Linux实例是虚拟机中运行的Linux系统,Liunx服务器需要给每个虚拟机分配物理资源,比如给虚拟机1分配2个CPU、8千兆字节(gigabyte,GB)内存、500GB磁盘,给虚拟机2分配4个CPU、16GB内存、100GB磁盘等。因此一个拥有完整操作系统等资源的虚拟机占用空间大,一般都会超过1GB,若采用虚拟机技术实现android虚拟桌面,在大规模部署时资源开销大。
第二种方式是采用容器技术,例如Linux容器(Linux container,LXC),实现android虚拟桌面,如图2所示,图2是本申请实施例提供的一种基于容器技术部署android虚拟桌面的示意图。在采用容器技术实现android虚拟桌面时,由于服务器的所有容器可以共享服务器操作系统内核、驱动程序和配置文件等,例如,图1中n=20,即在Liunx服务器上部署有20个用户对应的虚拟桌面,则在Liunx服务器上需要创建20个容器,虽然该服务器上有20个容器,但该服务器上只需要一个Linux内核和一组共享库,所述共享库中包括所述服务器和所述20个容器共享的驱动程序以及配置文件等,比如每个容器可以与服务器共享音频驱动、图形处理驱动等,而每个容器中只包括应用以及运行应用所需的全部类库、配置文件等,因此,相对于上述图1中的虚拟机,图2中每个容器占用的空间相对于虚拟机占用的空间更小,一个容器一般只会占用数十兆字节的空间。
但是,上述第一种方式和第二种方式中,服务器均是以android操作系统为粒度提供虚拟桌面服务,这样会造成应用升级更新的不便,同时以操作系统为粒度会造成底层系统服务的冗余,资源利用率低。
针对上述问题,本申请实施例提供一种桌面虚拟化方法,在对本申请实施例提供的桌面虚拟化方法进行介绍之前,首先对本申请实施例中涉及到的系统服务以及应用程序等进行介绍,其中,本申请实施例中的系统服务以及应用程序均运行在服务端的容器中,以向用户提供虚拟桌面服务。所述服务端可以包括一个或者多个服务器,每个服务器中运行有一个或者多个虚拟桌面,每个虚拟桌面所包括的容器均运行在同一个服务器中。
本申请实施例中,应用程序是指需要用户主动触发启动后在服务端运行,并在启动后预定时长内不使用的情况下会退出运行的程序,所述应用程序不会在用户没用触发的情况下在服务端运行。所述应用程序通常由应用商店发布,在用户选择使用后安装在服务器中,例如视频播放软件、音频播放软件以及即时通信软件等。
系统服务是指执行指定系统功能的程序或进程,是能够提供具体功能的应用程序编程接口(application programming interface,API),并且被纳入到ServiceManager中管理,运行在SystemServer中的进程。例如窗口管理服务、蓝牙管理服务、存储管理服务、电池管理服务、定位服务、网络服务等。所述系统服务能够在用户登录所述 虚拟桌面之后在所述服务端长时间运行,或者被所述应用程序调用并启动后在所述服务端长时间运行,即使启动所述系统服务的应用程序被注销,所述系统服务仍然会在所述服务器运行。
本申请实施例中,所述系统服务被划分为专属系统服务与共享系统服务。其中,所述共享系统服务是在运行或者在被应用程序调用时不涉及用户个人数据的系统服务。例如时间服务、窗口管理服务、CPU调度服务以及电池管理服务等。以时间服务为例,时间服务给不同用户终端提供的均是当前时间,并不会涉及到用户的个人数据;又例如android系统的窗口管理服务,在不同的用户终端中窗口管理服务均是用来完成各自的窗口管理,比如视图(view)的增加、删除以及更新等。因此所述共享系统服务可以为多个用户共同使用。
所述专属系统服务是指在运行或者在被应用程序调用时涉及用户个人数据的系统服务。例如定位服务、摄像头服务、电话服务以及闹钟服务等,以定位服务为例,当用户需要在一个应用程序中使用定位服务时,该应用程序会向所述定位服务发送定位请求,所述定位服务在确定所述用户的位置信息之后,会向该应用程序返回所述位置信息,因此所述定位服务中包括用户的个人隐私数据。为了防止用户的隐私泄露,每个用户需要对应一组专属系统服务,每个专属系统服务只能被对应用户使用的应用程序调用,不能被多个用户共同使用。
如图3所示,图3是本申请提供的一种桌面虚拟化方法的流程示意图,所述方法包括:
S102、服务端运行多个共享服务容器。
其中,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用。
本申请实施例中,如图4所示,图4是本申请实施例提供的一种采用容器化技术提供虚拟桌面的容器部署示意图,所述服务端创建并运行多个共享服务容器,所述多个共享服务容器中的每个共享服务容器中运行一个共享系统服务,所述共享服务容器是所述多个共享服务容器所在的服务器中的所有虚拟桌面均可以使用的容器,即所述服务器无论部署多少个虚拟桌面,所述服务器中部署的所有虚拟桌面均使用这多个共享服务容器中的共享系统服务。
S104、所述服务端接收用户终端发送的目标应用标识,根据所述目标应用标识创建用户容器组。
本申请实施例中,用户在使用虚拟桌面之前,需要通过用户终端向所述服务端发送注册请求,所述注册请求用于向所述服务端请求使用虚拟桌面服务,所述注册请求包括用户账号以及用户密码。所述服务端在通过所述注册请求之后,用户可以通过任一用户终端登录所述用户账号,选择需要使用的应用程序和/或专属系统服务,并向所述服务端发送虚拟桌面创建请求,所述虚拟桌面创建请求包括所述目标应用标识(identification,ID),可选的,该虚拟桌面创建请求还可以携带用户标识。其中,所述用户标识可以为所述用户账号。所述服务端根据所述目标应用ID创建与所述用户标识对应的用户容器组,所述用户容器组中包括一个或者多个用户容器。
本申请实施例中,所述目标应用ID包括应用程序ID和/或专属系统服务ID,所述服务端根据所述应用程序ID在容器镜像资源池中查找所述应用程序ID对应的应用程序,并在所述服务端创建运行应用程序的用户容器,和/或根据所述专属系统服务ID在容器镜像资源池中查找所述专属系统服务ID对应的专属系统服务,并在所述服务器创建运行专属系统服务的用户容器。所述专属系统服务属于android操作系统的系统服务,相对于所述共享系统服务,所述专属系统服务在运行或者提供服务时会涉及到用户的个人数据,例如摄像头服务,当用户在任意一个应用程序中请求开启摄像头时,所述摄像头会拍摄到用户或者用户周围环境,为了防止用户个人信息的泄露,所述服务端的每个虚拟桌面需要一个摄像头服务。因此所述服务端的每个虚拟桌面需要一组专属系统容器封装专属系统服务以供每个用户单独使用。
如图4所示,所述用户容器组中的一个或者多个用户容器包括应用容器,每个所述应用容器中封装有用户选择使用的一个或者多个应用程序。其中,所述应用程序在用户登录虚拟桌面之后,需要用户主动开启运行,在用户不需要使用该应用程序时,用户可以选择退出该应用程序,则该应用程序结束运行且不在系统后台运行。举例来讲,音乐播放器属于应用程序,若用户选择的目标应用中包括所述音乐播放器,则所述服务端可以将所述音乐播放器封装成一个应用容器,所述用户在使用用户终端登录虚拟桌面之后,所述音乐播放器的应用图标会显示在所述用户终端的显示界面上。若所述用户想要欣赏歌曲,可以点击所述应用图标打开所述音乐播放器选择想要欣赏的歌曲,所述服务端在接收到用户的点击后,根据重定向技术确定用户点击的是音乐播放器,则所述服务端运行所述音乐播放器对应的应用容器。若所述用户不想再欣赏歌曲,则所述用户需要选择退出所述音乐播放器,所述服务端结束所述音乐播放器对应的应用容器的运行,结束音乐播放器这个应用程序的运行。
如图4所示,所述用户容器组中的一个或者多个用户容器还可以包括专属服务容器(exclusive services container),每个所述专属服务容器中封装有用户选择使用的一个或者多个专属系统服务。本申请实施例中,所述专属系统服务可以由用户选择是否安装使用,若用户不选择使用某项系统服务,则该用户的虚拟桌面中不具备该系统服务功能,该用户对应的用户容器组中不创建该专属系统服务对应的专属服务容器。举例来讲,在使用闹钟服务的用户中,每个用户的闹钟时间设置各不相同,因此在本申请实施例中,所述闹钟服务属于专属系统服务。在当前使用android操作系统的终端中,系统服务中均包括闹钟服务,但是由于有用户没有设置闹钟的需要,则可以不选择闹钟服务,则所述服务端不会在该用户对应的用户容器组中创建闹钟服务对应的专属服务容器,从而能够减少所述服务端资源的开销。
本申请实施例中,所述用户标识对应的虚拟桌面包括所述用户容器组以及所述多个共享服务容器,即所述服务端的每个服务器中只有一组共享服务容器,一个用户标识对应的虚拟桌面包括用户容器组以及所述多个共享服务容器,所述多个共享服务容器与所述用户容器组中的一个或者多个用户容器的交互以及所述用户容器与所述专属系统服务容器的交互均是基于binder机制实现,由android的服务管理机制ServiceManager进行管理。
在一种可能的实施方式中,如图4所示,所述一个或者多个用户容器中的每个用 户容器只封装一个用户选择使用的应用程序或专属系统服务,即每个应用容器中只封装用户选择使用的一个应用程序,每个专属服务容器中只封装一个专属系统服务,将每个系统服务以及每个应用程序均封装成单独的容器,从而使虚拟桌面服务完全微服务化,能够使应用升级更新更加方便,提高系统的可维护性以及可扩展性。
S106、所述服务端接收所述用户终端发送的虚拟桌面接入请求,通过所述用户容器组内运行的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
所述服务端在创建所述多个共享服务容器以及根据所述目标应用ID创建所述用户容器组之后,即构建成功所述用户标识对应的虚拟桌面,即所述用户标识对应的虚拟桌面包括所述多个共享系统容器以及所述用户标识对应的用户容器组。
本申请实施例中,用户在需要使用虚拟桌面时,可以在任一用户终端上打开客户端的虚拟桌面服务功能,在所述用户终端上显示虚拟桌面连接界面,所述虚拟桌面连接界面包括用户信息输入窗口,所述用户在所述用户信息输入窗口输入用户账号以及用户密码,即可向所述服务端发送所述虚拟桌面接入请求,所述服务端在接收到所述虚拟桌面接入请求之后,根据所述虚拟桌面接入请求中的用户标识(即用户账号),启动部分或者全部共享服务容器以及与所述用户标识对应的用户容器组中的用户容器,所述用户终端与所述服务端之间通过远程通信协议完成所述虚拟桌面在所述用户终端上的显示。所述用户可以对所述用户终端上显示的应用程序进行操作,所述用户终端通过所述远程通信协议将所述用户的操作发送给所述服务端,所述服务端对接收到的用户输入的操作进行重定向以在所述服务端中对对应的容器进行操作,并将执行操作的结果返回到所述用户终端。其中,所述远程通信协议可以是独立计算环境简单协议(simple protocol for independent computing environment,SPICE),可以是远程显示协议(remote display protocol,RDP),还可以是虚拟网络控制台(virtual network console,VNC)协议,本申请实施例不做具体限定。
本申请实施例提供的桌面虚拟化方法,通过将多个虚拟桌面可以共同使用的系统服务封装成共享服务容器以供每个服务器中的所有虚拟桌面共同使用,并将每个用户单独使用的专属系统服务以及应用程序均封装成相互隔离的容器,从而能够提高系统的可维护性以及可扩展性,减少以操作系统为粒度实现桌面虚拟化时的底层系统服务的冗余,减少服务端的资源开销,提高资源利用率。进一步的,可以将移动操作系统的每个系统服务以及每个应用程序均封装成单独的容器,从而使虚拟桌面服务完全微服务化,能够使应用升级更新更加方便,进一步提高系统的可维护性以及可扩展性。
本申请实施例中,服务端构成虚拟桌面的所有的系统服务(包括共享系统服务以及专属系统服务)以及应用程序都封装在容器中进行部署,不同的用户容器组属于不同的用户,因此不同用户容器组之间需要进行隔离,以使所述服务端能够识别出不同进程所属的容器组。具体的,所述服务端在创建用户容器组时,所述服务端会为所述用户容器组配置唯一的容器组标识,即为同一个用户容器组中的每个用户容器配置相同的容器组标识,具有相同容器组标识的用户容器属于同一个用户容器组。例如,服务端接收到用户标识为abc的用户发送的虚拟桌面创建请求之后,服务端会为该用户 标识对应的用户容器组中的每个用户容器配置容器组标识group_i,若服务端共创建有n个用户容器组,则这n个用户容器组的容器组标识可以分别为group_0~group_n。因此,可以在所述服务端的每个进程的进程描述符的task_struct结构体中添加容器组标识,以使所述服务端根据每个进程中task_struct结构体承载的容器组标识确定每个进程所属的用户容器组,并根据进程标识(process identifier,PID)以及命名空间(namespace)确定每个进程对应的用户容器组中的目标容器,进而将对应的资源以及数据分配给所述目标容器。
本申请实施例中,所述服务端存储有用户标识与所述容器组标识的对应关系,即用户标识与用户容器组内每个用户容器的对应关系。所述服务端在接收到用户终端发送的虚拟桌面操作请求之后,可以根据所述虚拟桌面操作请求中的用户标识确定所述虚拟桌面操作请求对应的用户容器组,进而对对应的用户容器组中的容器执行所述虚拟桌面操作请求对应的操作。例如,所述虚拟桌面操作请求为启动音乐播放器,所述服务器接收到所述虚拟桌面操作请求之后,根据所述虚拟桌面操作请求中的用户标识确定所述虚拟桌面操作请求对应的用户容器组,并在所述用户容器组中启动所述音乐播放器对应的应用容器。
本申请实施例中,虚拟桌面操作请求可能是应用程序a需要调用另一个应用程序b或者专属系统服务c,则所述服务端在接收到所述虚拟桌面操作请求之后,需要通过应用程序a对应的第一用户容器调用所述用户容器组内的第二用户容器。为了防止不同用户容器组中的容器之间直接通信,所述第二用户容器需要验证所述第一用户容器发送的所述虚拟桌面操作请求中的第一容器组标识与所述第二用户容器的第二容器组标识是否一致。因此,所述服务端的用户容器需要具有容器组标识识别机制。具体的,容器间的通信是基于binder机制实现的,为了确保不同容器组中的容器不能直接通信,需要为binder的客户端与服务端添加容器组标识识别功能,即为每个容器配置容器组标识识别功能,其中,binder的客户端与服务端是指基于binder机制进行交互的两个容器。
举例来讲,用户在用户终端上打开相册应用,所述用户终端向服务端发送第一操作请求,所述服务端根据所述第一操作请求中的用户标识确定所述相册应用对应所述服务端的用户容器组group_0中的第一用户容器,则所述服务端启动group_0中的所述第一用户容器。若用户需要在所述相册应用中将一张照片通过即时通信应用分享给好友,则所述用户需要通过所述相册应用调用所述即时通信应用,所述相册应用对应的第一用户容器会向所述即时通信应用对应的第二用户容器发送调用请求,具体的,所述服务端首先根据所述调用请求中携带的所述第一用户容器的第一容器组标识确定发送所述调用请求的第一用户容器所属的用户容器组,然后根据所述第一容器组标识将该调用请求发送给相同用户容器组中的所述第二用户容器。所述第二用户容器在接收到所述调用请求后,首先识别所述调用请求中的第一容器组标识是否与所述第二用户容器的第二容器组标识一致,若一致,则所述第二用户容器启动,打开所述即时通信应用,并在所述用户终端显示所述即时通信应用的用户界面,以使所述用户选择好友。又例如,在应用程序a中使用定位功能,则所述应用程序a对应的容器A需要向 封装有定位服务的容器B发送定位请求,所述定位请求包括所述容器A的容器组标识,所述容器B在接收到所述定位请求之后,识别所述定位请求中的容器组标识,若所述定位请求中的所述容器组标识与所述容器B所在的容器组的容器组标识相同,则所述容器B执行定位功能,并将定位结果返回给容器A,若不同,则所述容器B不响应所述定位请求。
可以理解,由于系统服务中的专属系统服务属于每个虚拟桌面独享的服务,共享系统服务是所有桌面系统共同使用的服务,因此所述服务端在对系统服务进行容器化之前,需要确定系统服务属于共享系统服务还是专属系统服务,对于一个专属系统服务,所述服务端在将所述专属系统服务容器化时,将封装该专属系统服务的容器的标识配置为与该专属系统服务所属的用户容器组的容器组标识相同;对于一个共享系统服务,将封装该共享系统服务的容器的标识配置为空。
本申请实施例中,不同虚拟桌面的数据(即不同用户的数据)需要有不同的数据存储区域,由于每个用户的android虚拟桌面是通过用户容器组的方式部署在服务端,因此必须为每个用户容器组配置一块独立的存储区域,以保证不同用户间的数据隔离。具体的,将主机的根文件系统rootfs复制一份,并以此作为共享的数据卷,逐一挂载到用户容器组中的各个容器上,从而实现多容器间的文件系统共享。然后对不同的用户容器组分别创建不同的数据卷,并挂载到对应的用户容器组,从而为每个用户容器组(即虚拟桌面)分配不同的数据存储区域,实现用户容器组间的数据存储隔离。
本申请实施例中,根据所述用户标识创建所述用户标识对应的用户容器组之前,所述服务端还会创建容器镜像资源池,所述容器镜像资源池中包括应用容器集以及专属服务容器集,所述应用容器集包括多个应用容器,所述专属服务容器集包括多个专属服务容器。所述服务端首先将所述容器镜像资源池封装成应用市场视图发送给所述用户终端,以供所述用户从所述应用市场中选取需要使用的应用程序和/或专属系统服务;然后所述用户终端将用户选择的应用程序标识和/或专属系统服务标识以及所述用户的用户标识发送给所述服务端。
请参见图5,图5为本申请实施例提供的一种桌面虚拟化装置的结构示意图,如图5所示,所述网络设备200至少包括:处理单元210和通信单元220。其中,
处理单元210,用于运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
通信单元220,用于接收用户终端发送的目标应用标识ID;
所述处理单元210,还用于根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
所述接通信单元220,还用于接收所述用户终端发送的虚拟桌面接入请求;
所述处理单元210,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
所述装置还包括存储单元230,所述存储单元用于存储所述用户标识和所述用户 容器组内每个用户容器的对应关系;
所述通信单元,还用于所述服务端接收所述用户终端发送的虚拟桌面操作请求;
所述处理单元,还用于根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器或所述多个共享服务容器内的第一共享服务容器。
本申请实施例中,所述通信单元220用于所述桌面虚拟化装置与用户终端进行交互,例如上述S104中在创建用户对应的虚拟桌面之前接收所述用户终端发送的注册请求以及接收所述用户终端的虚拟桌面创建请求;或者如S106中在创建虚拟桌面之后,将虚拟桌面发送给对应的用户终端,或者在接收到用户通过用户终端发送的操作指令之后,将所述操作指令请求的服务发送给所述用户终端等。所述处理单元210用于在所述桌面虚拟化装置中创建所述用户标识对应的虚拟桌面以及实现上述方法实施例中描述的以服务端为执行主体的其他操作。
请参见6,图6为本申请实施例提供的一种网络设备的结构示意图,所述网络设备300至少包括:处理器310、通信接口320以及存储器330,所述处理器310、输入输出设备320以及存储器330通过总线340相互连接,其中,
所述处理器310可以是中央处理器(central processing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
所述通信接口320可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或设备进行通信。例如上述S104中在创建用户对应的虚拟桌面之前接收所述用户终端发送的注册请求以及接收所述用户终端的虚拟桌面创建请求;或者如S106中在创建虚拟桌面之后,将虚拟桌面发送给对应的用户终端,或者在接收到用户通过用户终端发送的操作指令之后,将所述操作指令请求的服务发送给所述用户终端等。
所述存储器330包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)或可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或者快闪存储器,该存储器330用于存储程序代码及数据,并可以将存储的数据传输给处理器310。
所述总线340可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线340可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述网络设备300中的处理器310用于读取存储器330中的相关指令执行以下操作:
处理器310运行多个共享服务容器,每个共享服务容器用于运行共享系统服务, 且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
处理器310控制通信接口320接收用户终端发送的目标应用标识ID;
处理器310还用于根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
处理器310控制通信接口320接收所述用户终端发送的虚拟桌面接入请求;
所述处理单元310,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
所述网络设备通过上述步骤,可以在所述网络设备中创建如图4所示的一组共享服务容器以及一个或者多个用户容器组,以向多个用户提供虚拟桌面服务,如图7所示,该网络设备应用在如图7所示的虚拟桌面服务系统中,图7所示的系统包括多个用户终端组成的用户终端集群以及多个服务器组成的服务器集群,图7的服务器集群可以向用户提供基于云服务的虚拟桌面服务。所述服务器集群中的任意一个服务器在接收到用户终端的虚拟桌面创建请求之后,会根据用户终端发送的用户标识以及目标应用标识在该服务器创建所述用户标识对应的用户容器组,所述用户容器组与该服务器中创建的多个共享服务容器共同组成所述用户标识对应的虚拟桌面,该服务器与用户终端之间通过远程通信协议进行通信连接,以向用户提供虚拟桌面服务。
具体地,上述网络设备300执行的各种操作的具体实现可参照上述方法实施例的具体操作,在此不再赘述。
本申请实施例还提供一种非瞬态计算机存储介质,所述非瞬态计算机存储介质中存储有指令,当其在处理器上运行时,执行图3中上述S102、S104、S106和/或用于执行本申请方法实施例中所述服务端所执行的其它步骤。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

  1. 一种提供虚拟桌面的方法,其特征在于,所述方法包括:
    服务端运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
    所述服务端接收用户终端发送的目标应用标识ID,根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
    所述服务端接收所述用户终端发送的虚拟桌面接入请求,通过所述用户容器组内运行的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
  2. 根据权利要求1所述的方法,其特征在于,
    所述目标应用ID包括应用程序ID,所述用户容器组内运行的至少一个用户容器运行所述应用程序ID对应的应用程序;和/或
    所述目标应用ID包括专属系统服务ID,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务ID对应的专属系统服务。
  3. 根据权利要求1或2所述的方法,其特征在于,
    所述服务端存储用户标识和所述用户容器组内每个用户容器的对应关系;
    所述方法还包括:
    所述服务端接收所述用户终端发送的虚拟桌面操作请求,所述虚拟桌面操作请求携带所述用户标识;
    所述服务端根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
    所述服务端为所述用户容器组分配有用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。
  5. 一种提供虚拟桌面的装置,其特征在于,所述装置包括:
    处理单元,用于运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;
    通信单元,用于接收用户终端发送的目标应用标识ID;
    所述处理单元,还用于根据所述目标应用ID创建用户容器组,所述用户容器组内运行用户容器;
    所述通信单元,还用于接收所述用户终端发送的虚拟桌面接入请求;
    所述处理单元,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。
  6. 根据权利要求5所述的装置,其特征在于,
    所述目标应用ID包括应用程序ID,所述用户容器组内运行的至少一个用户容器运行所述应用程序ID对应的应用程序;和/或
    所述目标应用ID包括专属系统服务ID,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务ID对应的专属系统服务。
  7. 根据权利要求5或6所述的装置,其特征在于,
    所述装置还包括存储单元,所述存储单元用于存储所述用户标识和所述用户容器组内每个用户容器的对应关系;
    所述通信单元,还用于所述服务端接收所述用户终端发送的虚拟桌面操作请求;
    所述处理单元,还用于根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器。
  8. 根据权利要求5至7任一项所述的装置,其特征在于,
    所述装置还包括用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。
  9. 一种网络设备,其特征在于,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如权利要求1至4任一项所述的方法。
  10. 一种非瞬态计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的方法。
PCT/CN2020/070571 2019-03-05 2020-01-07 一种桌面虚拟化方法、相关设备及计算机存储介质 WO2020177482A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910163257.1 2019-03-05
CN201910163257.1A CN110032413B (zh) 2019-03-05 2019-03-05 一种桌面虚拟化方法、相关设备及计算机存储介质

Publications (1)

Publication Number Publication Date
WO2020177482A1 true WO2020177482A1 (zh) 2020-09-10

Family

ID=67235810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/070571 WO2020177482A1 (zh) 2019-03-05 2020-01-07 一种桌面虚拟化方法、相关设备及计算机存储介质

Country Status (2)

Country Link
CN (1) CN110032413B (zh)
WO (1) WO2020177482A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032413B (zh) * 2019-03-05 2021-08-31 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质
CN110515667B (zh) * 2019-08-26 2023-04-11 武汉蓝星科技股份有限公司 一种基于linux内核的终端双系统显示切换方法及终端双系统
CN110659095B (zh) * 2019-09-16 2023-11-21 兰州立云信息科技有限公司 一种桌面虚拟化系统和用于桌面虚拟化的方法
CN111061534B (zh) * 2019-12-20 2023-07-25 浪潮软件科技有限公司 一种基于云服务的税务服务系统
CN111290815B (zh) * 2020-01-21 2022-08-02 湖南麒麟信安科技股份有限公司 融合共享用户环境、容器和虚拟机的多模式虚拟桌面的方法及系统
CN111339541B (zh) * 2020-02-20 2022-08-02 Oppo广东移动通信有限公司 基于binder驱动的进程间通信IPC机制的复用方法及装置
CN112114916B (zh) * 2020-08-31 2021-06-08 北京技德系统技术有限公司 一种在Linux操作系统上兼容运行Android应用的方法和装置
CN112528333A (zh) * 2020-12-15 2021-03-19 中国联合网络通信集团有限公司 用户隐私保护方法、mec服务器、终端、设备及介质
CN113687888B (zh) * 2021-05-18 2023-08-08 麒麟软件有限公司 在Linux系统上兼容运行Android应用的文件分享方法
CN113900754B (zh) * 2021-10-09 2023-10-31 深圳技德智能科技研究院有限公司 共享桌面方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055255A1 (en) * 2011-08-31 2013-02-28 Rovi Technologies Corporation Systems and methods for common application platforms utilizing shared services
CN104951694A (zh) * 2014-03-24 2015-09-30 华为技术有限公司 一种管理虚拟机的隔离方法及装置
CN105099706A (zh) * 2015-08-25 2015-11-25 华为技术有限公司 一种数据通信方法、用户设备和服务器
CN108021425A (zh) * 2017-12-28 2018-05-11 南开大学 一种集成多个应用图形窗口的虚拟桌面系统及运行方法
CN109388454A (zh) * 2018-09-14 2019-02-26 珠海国芯云科技有限公司 基于容器的虚拟桌面方法及系统
CN110032413A (zh) * 2019-03-05 2019-07-19 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760234B2 (en) * 2008-10-14 2017-09-12 International Business Machines Corporation Desktop icon management and grouping using desktop containers
US9807077B2 (en) * 2015-03-10 2017-10-31 Polyverse Corporation Systems and methods for containerized data security
CN106959882A (zh) * 2016-01-12 2017-07-18 深圳市深信服电子科技有限公司 虚拟桌面实现方法及装置
CN108388460B (zh) * 2018-02-05 2021-05-18 中国人民解放军战略支援部队航天工程大学 基于图形集群的远程实时渲染平台构建方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055255A1 (en) * 2011-08-31 2013-02-28 Rovi Technologies Corporation Systems and methods for common application platforms utilizing shared services
CN104951694A (zh) * 2014-03-24 2015-09-30 华为技术有限公司 一种管理虚拟机的隔离方法及装置
CN105099706A (zh) * 2015-08-25 2015-11-25 华为技术有限公司 一种数据通信方法、用户设备和服务器
CN108021425A (zh) * 2017-12-28 2018-05-11 南开大学 一种集成多个应用图形窗口的虚拟桌面系统及运行方法
CN109388454A (zh) * 2018-09-14 2019-02-26 珠海国芯云科技有限公司 基于容器的虚拟桌面方法及系统
CN110032413A (zh) * 2019-03-05 2019-07-19 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质

Also Published As

Publication number Publication date
CN110032413A (zh) 2019-07-19
CN110032413B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
WO2020177482A1 (zh) 一种桌面虚拟化方法、相关设备及计算机存储介质
US10628194B2 (en) Techniques for data migration
US9286130B2 (en) Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
KR102102168B1 (ko) 가상 데스크탑 서비스 장치 및 방법
US9304752B2 (en) Software deployment in a distributed virtual machine environment
US9489227B2 (en) Apparatus and method for virtual desktop service
KR102328193B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 방법
US8972990B2 (en) Providing a seamless transition for resizing virtual machines from a development environment to a production environment
US10324754B2 (en) Managing virtual machine patterns
US9207989B2 (en) System and method for providing virtual device
EP3706368A1 (en) Method and device for deploying virtualized network element device
US20130227635A1 (en) Mechanism for Applying Security Category Labels to Multi-Tenant Applications of a Node in a Platform-as-a-Service (PaaS) Environment
US9858110B2 (en) Virtual credential adapter for use with virtual machines
EP3442203B1 (en) Method for migrating a virtual machine, and system
US10164835B2 (en) Accessing peripheral devices from a container within virtual machines running on different host computing systems
CN110780930A (zh) 启动Android系统的方法、装置、电子设备及存储介质
WO2023202179A1 (zh) 容器热迁移方法及容器热迁移装置
WO2015176359A1 (zh) 基于安卓系统的多用户管理方法、装置及计算机存储介质
WO2022170946A1 (zh) 一种访问控制方法及相关装置
US11457483B2 (en) Managing connections between a user device and peripheral devices
WO2018045926A1 (zh) 用于访问容器的方法和装置
US11360824B2 (en) Customized partitioning of compute instances
US10635467B1 (en) Deployable console-based virtual application deployment and configuration systems and methods
US11847611B2 (en) Orchestrating and automating product deployment flow and lifecycle management
US20180210770A1 (en) Enabling wpd devices to be managed at the capability level

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: 20766695

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20766695

Country of ref document: EP

Kind code of ref document: A1