WO2012106980A1 - 多维智能服务点虚拟桌面方法及基础架构 - Google Patents
多维智能服务点虚拟桌面方法及基础架构 Download PDFInfo
- Publication number
- WO2012106980A1 WO2012106980A1 PCT/CN2012/000159 CN2012000159W WO2012106980A1 WO 2012106980 A1 WO2012106980 A1 WO 2012106980A1 CN 2012000159 W CN2012000159 W CN 2012000159W WO 2012106980 A1 WO2012106980 A1 WO 2012106980A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual
- application
- service
- user
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Definitions
- the present invention relates to computer virtualization technologies and applications, and more particularly to multi-dimensional intelligent service point virtual desktop infrastructure. Background technique
- desktop virtualization uses a client-server (c-S) computing model to separate the desktop environment of personal computers from physical hardware.
- the remote computer desktop is displayed and operated on the local computer, while the remote computer executes the program and stores the information.
- Desktop virtualization presents an effective solution to the problems posed by traditional personal computers.
- VDI Virtual Desktop Infrastructure
- the desktop operating system and applications run on the virtual machine (hereinafter referred to as the virtual machine) on the server in the data center. Users can access virtual desktops and applications from various terminal devices such as PCs, netbooks, and thin terminals through the network. Get a complete PC experience.
- the core of VDI management software is to centrally manage the virtual machine pool formed by a large number of virtual machines in the data center through a series of strategies, and deliver the desktop to the end users by using the transmission protocol.
- VDI's ESXi, Citrix's Xen, and Microsoft's Hyper-V are all available as VDI's underlying virtualization technology. These companies have also launched their own VDI products, namely Wei Rui's VMWare View, Citrix's XenDesktop, and Microsoft VDI suite software.
- VDI has entered the market for many years, but implementation has been difficult, for two main reasons.
- ESG Enterprise Solutions Group
- the full name of the company found that many of the user's concerns are around network performance.
- Thousands of desktop images are migrated from the terminal (ie, desktop, terminal, etc.) to the data center, including The subsequent tasks of processing applications and data requests are self-evident.
- the second is the price issue.
- VDI and traditional Terminal Services (TS) have certain similarities in functionality. Although VDI has the advantage of providing each end user with a separate virtual machine, which is not affected by other users or systems. But in comparison, it is expensive.
- the invention discloses a multi-dimensional intelligent service point virtual desktop infrastructure, more precisely, a combination of multiple software and hardware and network resources to support a virtualized environment, and a virtual machine, a real machine and a virtual application in a background service point.
- Program resources are centrally managed (compared to virtual machines, where the real machine refers to physical computers), delivering virtual desktops to end users on demand, providing osmotic services and intelligent sessions, and using them.
- the number of people with increased service costs has dropped significantly, resulting in economies of scale in virtual desktop infrastructure.
- the design adopted by the present invention is:
- the system is constructed by two-dimensional.
- the horizontal one-dimensional consists of client equipment, access points, service switching points, and background service points, which constitute the transmission path of the virtual desktop.
- the vertical one-dimensional is operated by the company's operating system, company application, and user application. , user data and settings, the virtual machine is divided into several manageable layers.
- the service switching point and the background service point manage the entire architecture, wherein the background service point generates virtual machines and virtual applications and centrally manages virtual machines/real machines/applications, access points and service exchanges.
- the point is mainly responsible for providing network management and services for virtual desktop transmission.
- the service is permeable and provides a unified programming interface for integration with third parties.
- the background service point allows users to flexibly choose to use real or virtual machines by integrating real/virtual machines into a unified system.
- the management of the real machine is completed by the real machine management center, and the management of the virtual machine is completed by the virtual machine management center, and the management of the virtual application is completed by the virtual application manager.
- the SOD server is generally installed on the real machine by installing the SOD (Service on Demand) client on the virtual machine to integrate the virtual machine and the virtual application.
- SOD Service on Demand
- the version tree method is used to implement the upgrade and update of the virtual machine template.
- the service switching point mainly provides call continuity and service switching services, virtual machine/real machine switching functions, and provides load balancing, rule and policy engines, service monitoring, SIP proxy services, and unified programming interfaces.
- Access points mainly provide remote access management and connection services, use extended connection agents to connect real and virtual machines, and have registration authentication and single sign-on capabilities, while providing load balancing, rules and policy engines, and service monitoring. , SIP proxy service and unified programming interface.
- Session Initiation Protocol is a text-based application layer signaling control protocol proposed by the IETF in 1999 to create, modify, and release sessions for one or more participants.
- the Independent Computing Environment Simple Protocol SPICE is a virtual technology acquired by Red Hat after the acquisition of Qumranet, an adaptive remote transport protocol designed specifically for use in virtual environments, designed for today's bandwidth-intensive applications ( For example, multimedia, VoIP) provides a seamless user experience, enabling users to experience the same experience as using a physical desktop system when using a virtual desktop system.
- the Remote Desktop Transfer Protocol is a protocol developed by Microsoft Corporation to connect a local client to a terminal server and maintain a session between the two.
- the SIP protocol can control signaling, so that one user can obtain multiple sessions so that multiple virtual machines can be used at the same time.
- the inherent time mechanism can realize multiple people using a virtual machine at the same time to implement intelligent sessions.
- SIP can establish an end-to-end overlay network and intelligent scheduling resources to cover the overlay network composed of Core (core network) and Edge (edge network) to user equipment, so that the virtual desktop transmission is safe and fast.
- a session is displayed across multiple screens.
- multiple sessions are displayed on a large screen.
- the methods of the standby pool and the elastic pool are introduced.
- the pool is generated by using the inked-clone technology, and the spare pool is set to suspend state.
- the use of the alternate pool includes the generation, use, optimization, and exit of the standby pool.
- the elastic pool sets the initial value, the maximum value, the threshold value, and the reserved value to set the size relationship between these values, and uses certain algorithms to determine certain rules to fully utilize virtual machine resources to establish users and Flexible access between virtual machines.
- the present invention proposes the following technical solutions:
- a multi-dimensional intelligent service point virtual desktop infrastructure including: a background service point, a service switching point, an access point, and a client device.
- the background service point generates the virtual machine and the virtual application in the background, and the background service point centrally controls and dispatches the virtual machine, the virtual application, and the real machine to the user;
- the service switching point connects to the background service point, and the service switching point provides the call continuity and
- the service switching service sends the exchanged real/virtual machine request to the background service point and controls the service switching service;
- the access point connects to the service switching point, and the access point provides remote access management and connection service, Control access to access services;
- client devices are connected to background service points, service switching points, and access points.
- Client devices are selected from one of the following: personal computers, laptops, netbooks, mobile phones, and handheld terminals.
- the back-end service points include a real machine management center, a virtual machine management center, a virtual application manager, a virtual workspace manager, and a virtualization infrastructure platform.
- the real machine management center manages the real machine in the background and assigns the real machine to the user;
- the virtual machine management center manages the virtual machine in the background and allocates the virtual machine to the user;
- the virtual application manager generates and manages the virtual application in the background and establishes the virtual application and
- the virtualized base platform includes multiple hosts, each of which uses a kernel-based virtual machine (KVM) to virtualize the hardware platform.
- KVM kernel-based virtual machine
- the real machine management center includes real machine connection manager, real machine status manager, agent controller, real machine list, real machine application list and usage report.
- the real machine connection manager accepts the user's request to use the real machine, checks the status of the real machine, sends the application (application) message to be used by the user to the agent through the proxy controller, and returns it to the service switching point;
- the real machine state manager Responsible for monitoring the status and status of the computer;
- the agent controller is responsible for receiving the message sent by the agent, sending the command of the operation application to the agent, and checking the heart beat message sent by the agent to make a judgment whether to close the real machine;
- the real machine list is the user You can register the real machine bound to your account to the real machine list;
- the real application list is a list of applications that the user specifies to use;
- the usage report is used to count the user's use of real machines and applications.
- the virtualization infrastructure platform includes a Spice Protocol based on a terminal protocol, a Session Initiation Protocol SIP server, and the Spice Server and Session Initiation Protocol SIP server are used to interact with the client device.
- the service switching points include virtual machine switches and real machine switches and service switching service controllers.
- the virtual machine switch and the real machine switch are connected to the virtual machine management center or the real machine management center requesting the response according to the user's request; the service exchange service controller provides the call connection service, the service exchange service, the load balancing, the rules and the policy.
- Engine Overlay management, service monitoring, SIP services, and service interfaces.
- the virtual machine switch includes a seat and classroom management database.
- the access point includes a RAS server and a connection proxy.
- the RAS server manages remote access and establishes a VPN connection for the user when the user is outside the firewall;
- the connection agent provides the client access channel and transmits the desktop screen and the application screen to the client, adopts an extended system, and is a virtual machine and a virtual machine in the background.
- the machine provides a connection.
- the access point further includes accessing an access service controller, providing network services for access access, and providing a unified programming interface to integrate with a third party.
- the access access service controller includes a load balancer, a service monitor, a SIP proxy server, an Overlay manager, and a management console.
- the load balancer provides load balancing services; the service monitor monitors and counts service requests; the SIP proxy server receives virtual desktop requests, decides where to forward these requests, and passes them to the next server; the Overlay Manager provides SIP Overlay management;
- the management console provides a management control interface.
- connection agent providing the client access channel further includes generating a credential in the authentication center according to the login information of the user, and encrypting the credential to complete unified authentication and authorization and single sign-on (sso).
- a multi-dimensional intelligent service point virtual desktop method comprises: controlling access, distribution and transmission of a virtual desktop by using an access point, a service switching point, and a background service point.
- the background service point generates a virtual machine and a virtual application in the background, and the background service point centrally controls and dispatches the virtual machine, the virtual application, and the real machine to the user; the service switching point connects to the background service point, and the service switching point provides the call continuous.
- the service exchange service sending the exchanged real/virtual machine request to the background service point, and controlling the service exchange service; the access point is connected to the service switching point, and the access point provides remote access management and connection service, Control access to the access service at the same time.
- the method further includes performing authentication registration based on the SIP of the client device and the user, and negotiating the machine capability when the authentication is registered, wherein the client device is connected to the background service point, the service switching point, and the access point, and the client device is selected from the following One: PC, laptop, netbook, mobile phone, handheld terminal.
- the method further includes creating a session using the SIP protocol and establishing a connection between the client device and the background service point; the background service point queries the capability of the client device; and starting the Spice protocol to transfer the virtual desktop screen from the background service point to the client device; After the screen is transferred, the session is terminated using the SIP protocol.
- the method further includes merging the plurality of sessions by using a time mechanism of the SIP proxy server, so that multiple users use one virtual machine; and the SIP proxy server enables one user to obtain multiple sessions, so that one user can use multiple users at the same time.
- a virtual machine
- the method further includes treating the session and the transaction as a common expense, considering each of the virtualized SIP servers having the same performance, and allocating transactions of the same session to the same SIP server load distribution method.
- the method further includes the method of establishing a virtual SIP Overlay by using a SIP server and a connection thereof, managing the Overlay on the Overlay node, accepting signaling on the SIP port, accepting the virtual machine screen on the Spice port, and providing a unified API interface.
- the method further includes a method for implementing end-to-end transmission of the virtual desktop through the SIP client and the SIP server protocol stack.
- a virtual pool management method including: setting an initial value, a maximum value, a threshold, and a reserved value; setting an initial value, a maximum value, a threshold, and a reserved value. Between the logical relationship, according to the initial value, maximum value, threshold value and reserved value and the logical relationship between them to achieve access from the virtual machine pool The rules of the virtual machine.
- the method further includes: using the linked-clone technology to generate a backup pool corresponding to the primary virtual machine pool, and setting the standby pool to a suspend state, and using the virtual machine in the standby pool with the virtual machine in the primary virtual machine pool.
- the method further includes dynamically specifying the standby pool according to time, and searching for the spare pool optimization policy of the idle pool.
- a method for combining a virtual application and a virtual machine including: installing a monitoring program on a server; the monitoring program collects file information and registry information, and packages and packages the file into a tsap file; The request to the application, the tsap file is streamed to the client for the user to use.
- the method further includes creating a template based on the existing user machine information and the virtual application information, and installing the SOD client on the virtual machine.
- the method further includes dividing the application on the virtual machine and the virtual machine into four layers: a company operating system, a company application, a user application, user data, and settings, and managing the four layers using a virtual workspace.
- an over-range screen display method using a virtual desktop infrastructure including: setting a background service point, a background service point generating a virtual machine and a virtual application in the background, and a background service point to the virtual machine,
- the virtual application and the real machine are centrally controlled and assigned to the user;
- the application proxy is set in the background service point, and the application proxy includes two parts: the high-end part is the application generator, and the bottom part is the virtual interface; the application is started, and the virtual interface is detected.
- Write the application data on the display memory calculate the number of screens beyond the screen range, and notify the application generator to generate a process for each of the exceeded screens; send the screen of the original application together with the screen of the generated process to Client.
- a screen partition display method using a virtual desktop infrastructure including: setting a same IP address and a different TCP port number for each partition of a large screen on a client; The IP address and TCP port number of the partition requested by the desktop, and the virtual desktop is returned to the partition.
- Multiple service points can provide self-service, can be propagated on demand, and automatically scale based on policies, improving service penetration and quality assurance.
- An advanced overlay network technology is adopted to achieve end-to-end transmission, which improves transmission reliability and security while reducing transmission path and improving transmission efficiency.
- a new layered virtual desktop method is implemented by dividing the virtual desktop and its applications and data into several independent layers and distributing them to the client.
- FIG. 1A is a block diagram of a system composition of a multi-dimensional intelligent service point virtual desktop infrastructure of the present invention
- FIG. 1B is a block diagram of an access access service controller of an access point portion of the multi-dimensional intelligent service point virtual desktop infrastructure of the present invention
- 1C is a block diagram of a service switching service controller of a service switching point portion of the multi-dimensional intelligent service point virtual desktop infrastructure of the present invention
- 1D is a layered structure diagram of a virtualized base platform of a multi-dimensional intelligent service point virtual desktop infrastructure of the present invention
- Figure 3 is a diagram showing the implementation process of the single sign-on of the virtual desktop infrastructure system (connection agent 122 in Figure 1A);
- FIG 4 is a process diagram of the present invention (connection proxy 122 in Figure 1A);
- FIG. 5 is a process diagram of the management console 1237 of Figure 1B of the present invention.
- FIG. 6 is a process diagram of a user SIP registration authentication process in FIG. 5 of the present invention.
- FIG. 7 is a diagram showing the establishment and termination process of a SIP session with a background service point when a user requests a virtual machine/real machine according to the present invention
- 8A is a process diagram of a session aggregator (SIP server 1235 in FIG. 1B) of the present invention converges a plurality of sessions by a time mechanism to implement simultaneous use of a virtual machine by multiple users;
- SIP server 1235 in FIG. 1B session aggregator
- FIG 8B is a process diagram of the session splitter (SIP server 1235 in Figure 1B) of the present invention for assigning multiple sessions to a user to enable one person to use multiple virtual machines simultaneously;
- FIG. 9 is a block diagram showing the composition of a SIP Overlay node of the present invention.
- FIG 10 is a process diagram of the present invention (load equalizer 1231 in Figure 1B and load balancer 1331 in Figure 1C) based on SIP distributed load;
- Figure 11 is a diagram showing the operation of the present invention (the virtual machine switch 131 and the real machine switch 132 of Figure 1A);
- - Figure 12 is a process diagram of the present invention (the real machine connection manager 1411 of Figure 1A);
- Figure 13 is a process diagram of the present invention (agent controller 1416 of Figure 1A);
- Figure 14 is a process diagram of the present invention (statement report 1412 of Figure 1A);
- FIG 15 is a process diagram of the present invention (the real machine state manager 1414 of Figure 1A);
- Figure 16 is a process diagram of an overnight change strategy (Embodiment) of the virtual machine pool manager 1443 of Figure 1A;
- FIG. 17 is a process diagram of the creation of a spare pool of the virtual machine pool manager 1443 of the present invention (FIG. 1A);
- FIG. 18 is a request virtual machine of the standby pool usage policy of the virtual machine pool manager 1443 of the present invention (FIG. 1A) Process diagram
- FIG. 19 is a process diagram of a spare pool optimization policy of the virtual machine pool manager 1443 of the present invention (FIG. 1A);
- FIG. 20 is an exit virtual machine of the standby pool optimization strategy of the virtual machine pool manager 1443 of the present invention (FIG. 1A) Process diagram
- FIG. 21 is a process diagram of the flexible pool rule of the present invention (virtual machine pool manager 1443 of FIG. 1A);
- FIG. 22 is a process diagram of the pre-deployment action of the virtual application manager 143 of FIG. 1A;
- Figure 24 is a process diagram of the SOD application stream of the virtual application manager 143 of the present invention ( Figure 1A);
- Figure 25 is a process diagram of the present invention (the virtual application manager 143 of Figure 1A and the virtual machine management center 144) ;
- Figure 26 is a process diagram of the virtual machine template versioning of the virtual machine management center 144 of the present invention (Fig. 1A);
- Fig. 27 is a view of the present invention (the virtual workspace manager 142 of Fig. 1A) for the operating system on the VDI. Process diagram of layer management;
- 29 is a diagram of a preferred embodiment of the inventive virtual desktop infrastructure at a factory
- 1A is a general diagram of the desktop virtualization infrastructure including client device 11, access point 12, service switching point 13, and background service point 14.
- the white box is the software part (function module) involved in this patent; the dashed box is the application number "CN 200810204286.X” submitted by the applicant on December 10, 2008, entitled “Mobile Virtualization Infrastructure and Basic Platform”
- the functional modules have been described in detail in the patent application. Therefore, the dotted box will not be explained much.
- Client device 1 1 refers to various user terminal devices, which can be either a traditional PC, a personal notebook, or a terminal device such as a netbook or a mobile phone, that is, various fat terminal devices. If it is a fat terminal, it can be used like a normal PC, or it can be virtualized and used. In the system shown in FIG. 1A, the client device 11 obtains the virtual machine and the application screen from the background service point 14 by accessing the access point 12 and the service switching point 13.
- Access to the access point 12 is responsible for establishing a connection to the back office point 14 for the client device 11, managing the connection, and providing network services.
- the connection agent 122 is responsible for the connection with the background service point 14.
- the Remote Access Server (RAS) 121 provides remote access support by establishing a VPN connection for external users.
- a typical setup is this:
- the access point is installed on the Access network side or on the edge of the core network.
- the underlying hardware can be a switch, router, or server cluster.
- Access point 12 also provides self-service services that provide services such as load balancing, policy and rules engine, service monitoring, SIP services, session conversion, and unified programming interface APIs (including multiple interfaces). It is permeable and automatically scales up based on strategy.
- the service switching point 13 is mainly responsible for the service exchange between the virtual machine and the real machine, and switches it to the corresponding background management center according to the virtual machine or real machine service selected by the user.
- the typical setup is this:
- the service switching point 13 is installed on the core network or the edge side of the core network (the underlying hardware can be a switch, router or server cluster).
- the Service Switching Point 13 also has a Personnel and Group Management Database 1321, a Seat and Classroom Management Database 1322, an Application and Package Management Database 1323, and a Virtual Machine Server and Template Management Database 1324. These databases are managed by the Management Console 1442 in the Virtual Machine Administration Center 144 in the Background Service Point 14.
- the service switching point 13 determines whether the user has the right to obtain the screen of the subscribed application through the unified authentication and authorization system of the connection agent 122.
- the service switching point 13 can determine whether the application comes from the background of the virtual machine management center 144 or from the background of the real machine management center 143, so that appropriate PC screen adaptation measures are taken.
- the service switching point also provides self-service services that provide services such as virtual network management, load balancing, policy and rules engines, service monitoring, and a unified programming interface.
- the background service point 14 (generally the data center) is a background management system for virtual machines, real machines, and virtual applications, and is provided by the virtual machine management center 144, the real machine management center 141, the virtual application manager 143, and the virtual workspace manager 142.
- the composition is generally installed in the core network.
- Virtual machine pool management 1443 in the Virtual Machine Management Center introduces flexible pool rules and alternate pool rules.
- the real machine management center 141 is responsible for managing the real machine and its application list, monitoring the status of the real machine, generating a report of the user using the real machine and the application on it, accepting the user's use request and opening the corresponding application for the user to use.
- the virtual application manager 143 virtualizes the application by emulating the usage environment of the application on the computer, and the operation is independent of the operating system and other applications on the local desktop, so that even if the software is not installed on the computer, The purpose of running the software normally in a virtual environment.
- the virtual workspace manager 144 is responsible for hierarchical management of the application. According to the requirements of the enterprise management, the operating system and the applications thereon can be layered, from bottom to top, the company operating system, the company application, the user application, and the user data. & settings (this can achieve layer-to-layer independence, the inter-layer correlation between layers, and facilitate the management of different layers by different privilege administrators).
- the infrastructure for implementing the desktop virtualization of the present invention requires the SIP client 111 and the Spice client 112 to communicate with the SIP server 1457 and the Spice server 1456 via the SIP protocol and the Spice protocol, wherein the SIP client 111 is a client device.
- the software, while the SIP server 1457 is running on the Linux kernel operating system of the virtualization infrastructure platform 145.
- the SIP client 111 and the SPICE client 112 are installed on the client device 11, but note that there may be different options depending on the performance of the client device.
- the client device performance is poor (very awkward terminal) so that SIP and Spice cannot be run, choose to install the RDP client on the client device.
- the SIP client is installed at the access point and starts using the SIP protocol from the access point.
- the client device is a custom thin terminal, only the SIP client is installed on the client device, and a driver is needed to accept the virtual machine screen, and the client only uses SIP communication. Also pay attention to the difference between internal users and external users.
- the access point 12 can automatically identify that the client terminal is a fat terminal or a thin terminal.
- the Access Access Service Controller 123 of Figure 1B is a service module in the Access Point that provides self-service virtualization computing and resource services that can be propagated on demand and automatically scaled based on policies.
- the load balancer 1233 is used to implement load balancing; the policy and rule engine 1232 provides a policy and rules engine; the service monitor 1235 is used to monitor service requests; the Overlay manager 1231 is used to manage SIP Overlay, SIP port transmission signals. Therefore, the Spice port transmits the virtual desktop and establishes an Overlay connection for the signaling and the virtual desktop; the SIP server 1234 can aggregate and split the session, so that multiple users can simultaneously use one virtual machine, and one user can use multiple virtual objects at the same time.
- the service interface 1236 provides a unified programming interface that can be integrated with third parties.
- the service switching service controller 133 of Figure 1C is a service module in the service switching point 13, which can provide call connection and service exchange, and can implement call start, interruption or relay exchange. Similar to the access access service controller 123 in the aforementioned access point 12, it provides self-service virtualization computing and resource services, which can be propagated on demand and automatically scaled based on policies.
- the service switching service controller 133 includes an Overlay Manager 1331, a Policy and Rule Engine 1332, a Load Balancer 1333, a SIP Server 1334, a Call Connection 1335, a Service Switch 1336, a Service Monitor 1337, a Service Interface 1338, and a Management Console 1339. Specifically, it provides load balancing, rules and policy engines, service monitoring, Overlay management, SIP services, and a unified programming interface (the functions of each module are similar to those in access point 12, as described above).
- the virtualized base platform 145 of Figure 1D is the basic technology of VDI, providing the basic support platform of VDI, which can include multiple hosts, each of which uses Kernel Based Virtual Machine (KVM) 1452 for the hardware platform.
- KVM Kernel Based Virtual Machine
- the kernel KVM1452 communicates with the QEMU1453 process to virtualize at least one virtual machine 1454 with guest operating system and memory (the underlying layer can be either KVM, ESX, Xen or Hyper-V).
- the SIP client 111 and the Spice client 112 are required to establish communication with the SIP service 1457 on the virtualization infrastructure platform through the SIP protocol, thereby establishing a connection for the session. After the connection is established, start the Spice server and transfer the virtual desktop from the background to the guest. Account. Then use the SIP protocol to end the session.
- Figure 2 - Figure 4 shows the process of registration authentication and single sign-on.
- FIG. 2 depicts the registration process of the real machine.
- the real machine here is relative to the virtual machine. It refers to the computer that is not virtualized by hardware, that is, the so-called real physical computer.
- the real machine is in the background service point. Before using the real machine, you need to register the real machine.
- the implementation process is as follows:
- Step 201 Add a pc (a personal computer, that is, a real machine) to the user's My Real Machine interface, and input information such as an ip address/machine name;
- a pc a personal computer, that is, a real machine
- Step 202 Add application information to the Application List interface, and input information such as the installation path of the app and the name of the exe (executable file);
- Step 203 after saving, displaying a download interface, so that the user can download the agent (agent) and the spice server to prompt the user to install;
- Step 204 prompting the user to test whether the current pc is available, and testing whether the proxy and the spice server (server) are correctly installed by sending and receiving some test messages.
- Figure 3 Single sign-on
- Single sign-on is mainly to solve the complexity of user rights management, repeated development of user and rights management modules, and system security risks. Users can log in to one of the application systems and use other ones directly. operating system.
- the process of single sign-on is as follows: The user enters the username/password and logs in to the single sign-on authentication system.
- the Certification Authority (AC) verifies the identity of the user based on the information submitted by the user. If it is a legitimate user, create a ticket based on the user information and permissions, otherwise refuse to log in.
- each credential has a set of keys (public key KA and private key KB) generated according to the asymmetric encryption algorithm, and the data in the credential is encrypted with the public key corresponding to the credential, and the digest algorithm is used. Generate verification information (such as MD5/SHA).
- the certificate authority saves the credentials of the legitimate user over the network to the computer where the user is located. After the user selects the application VDI that he or she needs to access, it sends its own certificate to the application server and starts to transfer to the application system's authentication program. The application system verifies the validity of the credentials at the certificate authority, such as: Whether it is issued by the certificate authority, whether it exceeds the validity period, and so on.
- the application system generates a digest from the digest algorithm based on the information of the credentials on the user's computer, and verifies the integrity of the credentials by comparing the verification information with the digest. If the credentials are valid and valid, the private key of the credentials obtained from the certificate authority decrypts the data of the submitted credentials and reads the user information contained therein.
- the application system VDI verifies whether the user has the legal identity to access the system (determine whether there is access right, whether it is approved and opened by the administrator at the same level). If the identity is legal, the corresponding usage rights are configured according to the rights it has, otherwise the user is denied access. VDI system. After the user ends the use of the system, the user logs out the credentials, and if the system times out, the credentials are automatically destroyed.
- Step 301 the user inputs a username and password
- Step 302 The user requests to log in to the single sign-on authentication system.
- Step 303 The authentication center verifies the identity of the user according to the information submitted by the user.
- Step 304 Determine whether the user is a legitimate user. If yes, go to step 306, otherwise go Go to step 305;
- Step 305 prompting the account name or password is incorrect, and refusing the user to log in;
- Step 306 Create a credential according to user information and permissions
- each credential has a set of keys (public key and private key) generated according to an asymmetric encryption algorithm, and the data in the credential is encrypted by the public key;
- Step 308 generating a verification information by using a digest algorithm (such as MD5/SHA);
- Step 309 the certificate center will be the credentials of the legitimate user
- Step 310 transmitting to the computer where the user is located through the network, and saving;
- Step 311 Dynamically generate a user interface.
- Step 312 the credentials arrive at the SSO client
- Step 314 selecting a VDI subsystem
- Step 3 Automatically log in to the VDI subsystem
- Step 316 sending credentials to the VDI system
- Step 317 the credentials arrive at the VDI subsystem
- Step 318 sending the credentials to the authentication center
- Step 319 the credentials arrive at the authentication center
- Step 320 verify the validity of the credential TA
- Step 321 determine if the credentials are valid. If it is valid, go to step 323, otherwise go to step 322;
- Step 322 the user logs in again
- Step 323 determining whether the credential is complete. If yes, go to step 325, otherwise go to step
- Step 324 the user logs in again
- Step 325 decrypting the credential with the private key
- Step 326 Determine whether the user has access rights. If yes, go to step 328. Otherwise, go to step 327;
- Step 327 the user does not have access rights
- Step 328 automatically generating a VDI subsystem interface according to the authority
- Step 329 using the VDI subsystem function
- Step 330 using the end user to exit
- Step 331 the system times out
- connection proxy 122 is one of the most important parts of the VDI system. The process is as follows: The user issues a login request to the server. If the user is outside the firewall, the connection proxy 122 establishes a VPN (Virtual Private Network) connection for the user; otherwise, directly transfers Go to the next step to determine whether the user is authorized by SSO authentication; if the authentication is not passed, tell the client to display an error message. If the authentication is passed, the request is transmitted to the SIP.
- VPN Virtual Private Network
- the proxy server resolves the address and issues a call request to the next hop; the request arrives at the virtual machine/real machine switch in the service switching point, and if the user requests the application on the virtual machine, then switches to the virtual machine entry, and Connect to the virtual machine management center in the background, let the virtual machine dispatcher obtain the virtual machine, find the application ID from the application list, find the best virtual machine, and notify the application agent to activate the application on the virtual machine, and finally start the Spice server, and transfer the application.
- the first screen is given to the client; if the user requests the application on the real machine, then switch to the real machine portal, and connect to the real machine management center in the background, query the real machine list and the application list, and select to use a real machine.
- An application find the best real machine, and notify the application agent to activate the application on the real machine, and finally start the Spice server, transfer the first screen of the application to the client (note that the real machine is the same as the virtual machine, using the SIP protocol Initiate a session, use Spice to transfer the real machine screen; SIP can also be reflected in the connection agent, but the focus is different.
- the connection proxy In the traditional VDI, there is no In the case of using the SIP protocol, the connection is established through the connection proxy because the traditional screen transfer protocol RDP is only responsible for the transmission of the screen; and after adopting the SIP protocol, the connection function of the connection proxy is mainly used throughout the virtual desktop. Infrastructure with SIP proxy connection for SIP communication.)
- connection agent here integrates the real machine and the virtual machine into one system, and can be connected to the real machine management center and the virtual machine management center at the same time.
- Step 401 The user sends a login request to the server.
- Step 402 The connection agent determines whether the user is outside the firewall. If yes, go to step 403, otherwise go to step 404;
- Step 403 The connection proxy establishes a VPN connection for the user.
- Step 404 Determine whether the user passes the SSO authentication authorization. If yes, go to step 406, otherwise go to step 405;
- Step 405 telling the client to display an error message
- Step 406 The SIP server forwards the request to the next hop server.
- Step 407 The virtual machine/real machine switch selects a corresponding virtual machine or real machine entry for the request.
- Step 408 If the user requests the virtual machine, the connection agent causes the virtual machine dispatcher to obtain the virtual machine, and finds the virtual machine from the application list. Application ID (identity); If the user requests a real machine, the connection agent causes the real machine connection manager to query the real machine and application status;
- Step 409 connecting the application, in three steps, (a) notifying the application proxy application ID on the virtual machine or the real machine, (b) waiting until the application starts or fails, and (c) notifying the SIP client that the application has started, ready to accept The first screen of the application, or the failure to start the error.
- Figure 5-10 shows the SIP session and network management process.
- FIG. 5 shows the working process diagram of the session management console.
- a user requests (session) to reach a manageable service point
- a series of management tools are operated through the management console operation to process the session, thereby achieving load balancing, session intelligence, security, and the like.
- the specific steps are as follows - Step 501, the service monitor monitors the user requesting the virtual machine/real machine;
- Step 502 Determine whether the user registers authentication through SIP. If yes, go to step 504, otherwise go to step 503; Step 503, telling the client to display an error message;
- Step 504 The load balancer allocates the request to the SIP server according to the rule.
- Step 505 Determine whether the operation is an aggregation session. If yes, go to step 506, otherwise go to step 507;
- Step 506 entering the session aggregator, and the session aggregator will be described in detail in FIG. 8A;
- Step 507 Determine whether the operation is a split session. If yes, go to step 508, otherwise go to step 509;
- Step 508 enter the session splitter, and the session splitter will be described in detail in FIG. 8B;
- Step 509 The virtual SIP Overlay (the overlay network) management node determines the forwarding path of the request.
- Figure 6 SIP registration certification
- the user agent client issues a registration request to the registration server.
- the registration is divided into two types, including the user's registration and the registration of the machine. If it is the registration of the machine, the machine's IP address, machine name and other information is registered to the registration server (this Registration is a registration of a fixed machine, which can be logged into the system with relevant information of the machine. If it is a user's registration, enter the user name, password and other information in the registration interface, and the registration information is stored in the location server (this registration method is flexible) Users can log in to the system with a username and password on different machines in different locations.
- the registration server knows that the user has not sent the authentication message
- the response message 401 (Unauthorized) requests the user agent for the authentication certificate
- the user resends the registration request including the authentication information
- the registration server verifies the authentication message. If the verification is passed, the registration server passes the verification and returns OK. If the verification fails, the user is required to resend the registration request containing the authentication information.
- the subsequent steps are the same as above. If the registration server knows that the user registration request carries the authentication message, the subsequent steps are the same as above.
- the registration information is stored in the location server.
- the user agent client sends an Invite (session invitation) request to the user agent server, and the proxy server knows that the user does not send an authentication message, that is, sends a response message 407 (Proxy-Authide Request) to the user for the authentication certificate; the user sends an ACK (acknowledgement)
- the user resends the Invite request containing the authentication information, and the proxy server authenticates the request and sends a 200 OK confirmation.
- the registration server stores the registration authentication information in the location server.
- the user agent server analyzes the session description SDP (Session Description Protocol) in the INVITE method sent by the user agent client. If the client device has the capability of receiving and decoding the multimedia signal sent by the server, the two parties can communicate normally. Otherwise a client error is displayed.
- SDP Session Description Protocol
- Step 601 The user agent client sends a registration request to the registration server.
- Step 602 Determine whether the user machine registration is required. If yes, go to step 603, otherwise go to step 604;
- Step 603 input information such as an IP address and a machine name of the user machine on the registration interface;
- Step 604 input information such as a user name and a password on the registration interface;
- Step 605 Determine whether an authentication message is carried in the registration request. If yes, go to step 607, otherwise go to step 606;
- Step 606 the registration server sends a response message 401 (Unauthorized) to request a certificate from the user agent;
- Step 607 The registration server verifies the authentication message.
- Step 608 The user resends the registration request that includes the authentication information.
- Step 609 Determine whether the authentication message carried in the registration request passes the verification. If yes, go to step 610, otherwise go to step 608;
- Step 610 the registration server sends a 200 OK to confirm the verification
- Step 611 storing the registration information of the user into the location server
- Step 612 The user proxy client sends an Invite request to the user proxy server.
- Step 613 Determine whether the Invite request carries the authentication message. If the Invite request carries the authentication message, go to step 617, otherwise go to step 614;
- Step 614 the proxy server sends a response message 407 (Proxy-Authentication Request) to request the authentication certificate from the user;
- Step 615 the user sends an acknowledgement message ACK
- Step 616 The user resends an Invite request including the authentication information.
- Step 617 the proxy server verifies the authentication message.
- Step 618 Determine whether the authentication message in the Invite request passes the verification. If the verification is passed, the process goes to step 619, otherwise, the process goes to step 617;
- Step 619 The user agent server analyzes the session description SDP in the INVITE method sent by the user agent client; SIP uses SDP to perform capability exchange.
- SIP is not as complete and flexible as H.245, because it is subject to In the way of SDP expression, for example, SIP does not support asymmetric capability exchange (only received or only) and the concurrency of audio and video coding.
- SIP indicates the media type and its parameters that it can accept in the session description of the INVITE method, and can also indicate the type of media it is willing to send.
- Step 620 Determine whether the client device has the capability of receiving and decoding the multimedia signal sent by the server. If yes, go to step 322, otherwise go to step 321;
- Step 621 the client error, that is, the client device does not have the capability of receiving the virtual machine/real machine screen sent by the server. If the user wants to use the VDI system, the terminal device needs to be changed, or the SIP client is changed, and the RDP client is installed. , of course this is an alternative;
- Step 622 The two parties can communicate normally, that is, the client device can receive the virtual machine/real machine screen sent by the server.
- Figure 7 is a SIP session process diagram
- the client initiates a session request for Invite to request a virtual machine.
- the background service point receives the user's request and correctly processes the request, it issues a temporary response lxx.
- the client receives a temporary response message to determine whether it times out. If it times out, the client re-initiates the session request Invite requests the virtual machine; if it does not time out, it continues to wait for the background service. The response of the business.
- a redirect 3xx response is issued; if the request contains the wrong format or cannot be completed on this server, then Client error 4xx response; if the server can not correctly handle this obviously legitimate request, then a server error 5xx response is issued; if the request cannot be processed by any server, a global error 6xx response is issued; if the request has been successfully received, and is processed correctly This request, then issued a successful response to the 200 OK response. If the client receives a 3xx-6 XX response, the client re-initiates the session request Invite requests the virtual machine (indicating that the request virtual machine failed); if it receives the 200 OK response, it continues to wait for the next response.
- the server sends an Option request to the client to ask whether the client has the ability to receive and decode multimedia signals (media type and media parameters) sent by the server.
- the client receives the Option request. If the multimedia signal (media type and media parameter) sent by the server is within the range of media types and parameters that can be accepted by the server, the client can communicate with the server normally, returning 200 OK, and doing well The preparation of the transmission media stream; on the contrary, the two parties can not communicate, the session ends (this step of machine capability negotiation can also be completed in the registration authentication process, as an alternative.
- the solution is poorly flexible, but easy to use, so that in the back There is no need to consider the exchange of machine capabilities during the session.
- the server receives a 200 OK response and starts preparing for the screen.
- the client receives the Spice data stream transmitted by the server and sends a 200 OK response confirmation. If the server waits for the response to time out, the screen is re-prepared; otherwise, the 200 OK response is received within the normal waiting time.
- the client sends a Bye request to release the call, and the server receives the Bye request and sends a 200 OK response.
- Step 701 the registration ends
- Step 702 The client initiates a session request to the background service point to request the virtual machine/real machine.
- Step 703 The client receives the temporary response message from the background service point.
- Step 704 determining whether the response times out. If yes, go to step 702, otherwise go to step
- Step 705 determining whether a response 3xx-6xx is received.
- Step 706 the client receives a 200 OK response of the background service point
- Step 707 The client receives an Option request of the background service point.
- Step 708 Determine whether the client has the capability of receiving and decoding the multimedia signal sent by the background service point. If yes, go to step 710, otherwise go to step 709;
- Step 709 The client does not have the capability of receiving and decoding the multimedia signal sent by the background service point, and the two parties cannot communicate, and the session ends;
- Step 710 the client has the capability of receiving and decoding the multimedia signal sent by the background service point, and the client can normally communicate with the server, and returns 200 OK;
- Step 711 confirming, starting media stream transmission between the client and the background service point
- Step 712 the client waits to receive the virtual machine screen sent by the background service point
- Step 713 the client receives the SPICE data stream transmitted by the server, that is, the virtual machine screen; Step 714, after receiving the virtual machine screen, the client sends a 200 OK response to the background service point; Step 715, the client sends the Bye request to release Call
- Step 716 the background service point waits for the user to register successfully.
- Step 717 The background service point receives the user request.
- Step 718 the background service point sends a temporary response
- Step 719 Determine whether the background service point successfully processes the client request. If yes, go to step 724, otherwise go to step 720, step 721, step 722, step 723;
- Step 720 redirecting
- Step 721 the client is in error
- Step 722 the server side error
- Step 724 the background service point successfully processes the client request, and sends a 200 OK response.
- Step 725 The server sends an Option request to the client to query whether the client has the capability of receiving and decoding the multimedia signal sent by the background service point.
- Step 726 The background service point receives the 200 OK response of the client.
- Step 727 the background service point prepares for the screen transmission
- Step 728 task driven, calculating screen position
- Step 729 calling SPICE, transmitting a screen
- Step 730 determining whether the waiting response is timed out
- Step 731 receiving a 200 OK response
- Step 732 receiving a Bye request, and sending a 200 OK response.
- Figure 8A is a session aggregator that describes the process of using a virtual machine by multiple users.
- Step 8101 the user selects the application to issue a virtual machine/real machine use request to the background service point;
- Step 8102 the request arrives at the SIP server (session converter), and the SIP server can be at the access point or the service exchange point and Background service point, where the SIP server refers to the SIP server accessing the access point;
- Step 8103 the request is divided into the convergence time interval of the timer, and the SIP has a time mechanism for determining a minimum time period, and the request in the time period is aggregated and then sent out;
- Step 8104 the SIP server calculates The number of all virtual machine requests in the time period (interval), a counter can be set in the SIP server to count the number of virtual machines in the time period;
- Step 8105 Determine whether the number of requests is greater than 1. If it is greater than 1, go to step 8107, otherwise go to step 8106;
- Step 8106 Determine whether the number of requests is equal to 1. If it is equal to 1, go to step 8108, otherwise go to step 8101;
- Step 8107 the multiple requests are aggregated into one session request and sent to the background service point;
- Step 8108 the single request is sent directly to the background service point;
- Step 8109 the background service point allocates a virtual machine/real machine to the request;
- Step 8110 Determine whether the request is a request after a plurality of original requests are aggregated. If yes, go to step 8112, otherwise go to 8111;
- Step 8111 the application proxy opens the corresponding application, and returns the screen directly to the user.
- Step 8112 the aggregated request is decomposed into the original request, and the application proxy opens the requested application for each original request, and returns the screen to the screen respectively. Each user.
- Figure 8B is a session splitter that describes the process by which a user uses multiple virtual machines. Since the main task of the SIP Proxy Server is to complete message forwarding, it can overwrite the contents of the original request message before forwarding the request. It can also initiate requests on behalf of other clients, acting as both a server and a client. Here, using the function of SIP Proxy Server, multiple sessions can be assigned to one user, so that one user can use multiple virtual machines at the same time.
- Step 8201 the user selects the application to issue a virtual machine/real machine use request to the background service point;
- step 8202 the request arrives at the SIP server (session converter);
- Step 8203 Determine whether the user requests multiple virtual machines. If the user requests multiple virtual machines, go to step 8204, otherwise go to step 8205;
- Step 8204 The SIP server sends multiple session requests to the background service point according to the requirements of the user.
- Step 8205 The SIP server routes the request to the background service point.
- Step 8206 The background service point allocates a virtual machine for each session request.
- Step 8207 The background service point allocates a virtual machine for the session request.
- Step 8208 the background service point returns multiple virtual machines to one user
- Step 8209 the background service point returns a single virtual machine to a user;
- Figure 9 Virtual SIP OVERLAY node
- the figure shows the composition of the SIP Overlay node 91.
- Many SIP servers and the SIP links on them form the SIP overlay network.
- the API 913 interface provides a unified interface for interconnecting the overlay networks, and the Overlay management 912 is responsible for managing the Overlay nodes to establish an Overlay for signaling and virtual desktop transmission.
- the port has Spice port 9111 and SIP port 9112, SIP port 9111 is used to forward the signaling stream, and Spice port 9112 is used to forward the virtual desktop stream.
- the SIP User Agent 90 can be either a SIP User Agent Client or a SIP User Agent Server.
- Figure 10 SIP-based load balancing
- FIG 10 shows the implementation of SIP-based load balancing. Since SIP has two kinds of transactions, session and conversion, and the session is a state, it is created by the Invite transaction and ends by the BYE transaction. Thus SIP has both transactional and conversational expenses. Thus a method of assigning the same session to the same SIP server can be employed. (The advantage of such a load balancing method is that it is easy to manage.) Assume that each SIP server is a server that is evenly distributed after virtualization and has the same performance. The implementation process is as follows: Step 1001, the client sends a virtual machine/real machine request to the load balancer;
- Step 1002 The load balancer determines whether the request is an Invite request. If yes, go to step 1005, otherwise go to step 1003; Step 1003: Determine whether the request is a Bye request. If yes, go to step 1006, otherwise go to step 1004;
- Step 1004 The load balancer allocates the request to the SIP server where the same CALL-ID is located (all related SIP messages in the same session use the same Call-ID); Step 1005, the request is The CALL-ID is recorded in the load balancer;
- Step 1009 determining whether i is less than ⁇ If i is less than n, the process proceeds to step 1007, and the next cycle is started; otherwise, the process proceeds to step 1011;
- Step 1011 the load balancer finds the smallest (i) smallest SIP server, and allocates the request to the server;
- Step 1012 the Invite request is allocated to the SIP (i) server;
- Figure 11-15 is the real machine management part, which gives the real machine management process.
- FIG 11 shows the workflow of the virtual/real machine switch.
- VDI virtual machine or real machine according to their own needs.
- the exchange is done by real/virtual machine switch.
- the specific implementation process is as follows:
- Step 1101 The user issues a login request and enters the switch.
- Step 1102 Determine whether the user selects a real machine. If the real machine is selected, go to step 1103, otherwise go to step 1104;
- Step 1103 switching to the real machine entrance
- Step 1104 switching to the virtual machine entry
- Step 1105 determining the real machine and application selected by the user, notifying the application agent to activate the application on the real machine, and returning the ip/spice port (port) number;
- Step 1106 find the best virtual machine, and notify the application agent to activate the application on the virtual machine;
- Step 1107 Spice server: transmits the first screen of the application to the client.
- Figure 12 Real Machine Connection Manager
- FIG 12 shows the workflow of the Real Machine Connection Manager.
- the Connection Manager is responsible for accepting requests from users to use pcs (personal computers). First, it checks if the status of the pc is available, and then sends the application message that the client will use to the proxy controller. Proxy, let it open the corresponding application (application). Then the connection manager returns the information to the switch and records the user's usage. Condition.
- the implementation process is as follows:
- Step 1201 the real machine connection manager receives a request from the user to use the real machine
- Step 1202 the real machine connection manager queries the real machine list and the application list, and selects an application under a real machine;
- step 1203 the real machine connection manager checks if the status of the pc is power on. If it is power on, go to step 1205, otherwise go to step 1204;
- Step 1204 returning the check result to the switch, notifying the user that the pc is not started, and cannot be used; Step 1205, sending the application information that needs to be started to the agent, and modifying the state of the pc;
- Step 1206 determining whether the application is started. If the application has been started, go to step 1208, otherwise go to step 1207;
- Step 1207 returning to the switch, notifying the user that the application fails to be started, and cannot be used; Step 1208, returning information such as the ip/vnc port of the pc to the switch.
- FIG. 13 shows the working process diagram of the agent controller.
- the proxy controller is responsible for receiving the proxy to send to
- ActiveMQ messages including pc's poweron/poweroff and user login/logout (login/logout); when the user requests to use pc, the proxy controller sends an open/close app command to the proxy.
- the agent will send a heart beat to the agent controller periodically after the pc starts. If the heart beat is not received after the timeout, the PC will be considered as poweroff and the user will not be able to use it.
- the implementation process is as follows:
- Step 1301 the proxy controller receives a heart beat sent by the proxy
- Step 1302 The proxy controller receives a message sent by the proxy to the ActiveMQ.
- Step 1303 the agent controller determines whether the heartbea is received within a certain time, if yes, go to step 1315, otherwise go to step 1309;
- Step 1304 the proxy controller user issues a login request. If yes, go to the step
- step 1305 the agent controller determines whether the user has issued a logout request. If yes, go to step 1311, otherwise go to step 1306;
- Step 1306 the agent controller determines whether the user has issued a power on request. If yes, go to step 1312, otherwise go to step 1307;
- Step 1307 The proxy controller determines whether the user receives the power off request. If yes, go to step 1313, otherwise go to step 1308;
- the agent controller determines if the user requests to use the pc. If yes, go to step 1314, otherwise go to step 1315;
- Step 1309 notifying that the pc has poweroff, the user cannot use
- Step 1310 sending a login instruction to the agent
- Step 1311 sending a logout instruction to the agent
- Step 1312 sending a power on command to the agent
- Step 1313 sending a power off command to the agent;
- Step 1314 sending an instruction to open/close the application to the agent;
- Step 1315 no action.
- Figure 14 shows the process diagram for obtaining the usage record of the real machine/application. According to the record of the user using pc/application, a report of user usage is generated, including usage statistics of each application, usage time statistics of pc, and the like.
- the specific implementation process is as follows:
- Step 1401 entering with the requested real machine/application value
- Step 1402 Determine whether the real machine is in an operating state. If yes, go to step 1404, otherwise go to step 1403;
- Step 1403 returning an error
- Step 1404 obtaining a process ID (PID) of the real machine
- Step 1406 returning the CPU, memory, heartbeat information, usage time, and application time of the real machine
- Step 1407 generating an application usage report.
- Figure 15 real machine status manager
- FIG. 15 shows the working process diagram of the real machine status manager.
- the real machine status manager is responsible for monitoring the status of the pc. It is one of poweron/poweroff/using and is responsible for state transition.
- the implementation process is as follows: Step 1501, the state manager obtains the state of the real machine;
- Step 1502 Determine whether the status is Power on. If yes, go to step 1506, otherwise go to step 1503;
- Step 1503 Determine whether the status is Power off. If yes, go to step 1506, otherwise go to step 1504;
- Step 1504 Determine whether the status is in use. If yes, go to step 1506, otherwise go to step 1505;
- Figure 16-21 shows the virtual machine pool management section.
- Figure 16 shows the process diagram for the overnight pool change strategy.
- VDI virtual machine pool
- the schedule of the class a certain type of virtual machine pool is arranged in advance for a class (without letting the students choose the operating system themselves).
- VDI must have a policy management that pre-arranges virtual machine pools according to the course schedule. For example, the day before, knowing that a class will switch to a different operating system the next day, it will automatically switch to the course schedule overnight. This kind of strategy is not flexible enough to cope with the sudden change of the course, and there are still cases of changing the pool that day, waiting for students to wait.
- the seat and classroom management database in Figure 1A is used to store this part. The data of the points.
- the implementation process is as follows:
- Step 1601 Create a virtual machine on the template, and clone the virtual machine by using a virtual machine template.
- Step 1602 every morning, open the virtual machine
- Step 1604 statically binding the classroom to the virtual machine pool according to the curriculum table
- Step 1605 after the evening course ends, the virtual machine is turned off
- Step 1606 restoring the virtual machine.
- Figure 17 Alternate pool diagram for bulk restore
- Figure 17 shows the process diagram for the creation of a spare pool.
- the spare pool is mainly used to solve the sudden change of the course, which requires changing the course within 10 minutes between classes. Since the restoration and opening of large-volume virtual machines requires a long period of time, it is generally difficult to complete the task of replacing the curriculum in such a short period of time. In this case, a spare pool is needed.
- the steps to create are as follows:
- Step 1701 Create a primary virtual machine pool.
- Step 1702 setting a default state of the primary virtual machine pool to power on
- Step 1703 Create a corresponding backup pool by using linked-clone, and perform one-to-one correspondence with the primary virtual machine by using the pool name.
- the linked-clone method is used to save physical server resources.
- Step 1704 Set the default state of the standby pool. For suspend, this setting is to restore the virtual machine in the Jiang spare pool to normal working status in a short time.
- Figure 18 Spare pool usage strategy 1 request virtual machine
- Figure 18 shows the alternate pool usage policy—the process of requesting a virtual machine.
- the user requests the virtual machine. If the virtual machine in the primary virtual machine pool is sufficient, the virtual machine in the primary virtual machine pool is used, otherwise the primary virtual machine pool is used.
- the virtual machine in the corresponding spare pool the steps are as follows:
- Step 1801 the user requests a virtual machine
- Step 1802 Determine whether the virtual machine status in the primary pool is power on. If yes, go to step 1803, otherwise go to step 1804;
- Step 1803 assigning a virtual machine to the user
- Step 1804 Determine whether the status of the corresponding standby virtual machine in the standby pool is power On. If yes, go to step 1803, otherwise go to step 1805;
- Step 1805 Determine whether the virtual machine status in the primary pool is suspend. If yes, go to step 1805, otherwise go to step 1807;
- Step 1806 the system automatically starts up and allocates it to the user for use
- Step 1807 Determine whether the status of the corresponding standby virtual machine in the standby pool is suspend. If yes, go to step 1806, otherwise go to step 1808;
- Step 1808 informing the user that no virtual machine is available.
- Figure 19 Backup pool optimization strategy Figure 19 shows the optimization strategy for the spare pool.
- all virtual machine pools can be regarded as spare pools, and then the classroom and standby pools are dynamically assigned by time.
- the implementation process is as follows:
- Step 1901 the course schedule changes temporarily
- Step 1902 Dynamically designating the classroom and the standby pool according to time
- Step 1906 For pool ⁇ l to n
- step 1907 it is determined whether the classroom is in the curriculum at this time. If yes, go to step 1905, otherwise go to step 1913;
- Step 1910 Determine EnergyEfficiency (pool) ⁇ 60%? If yes, go to step 1905, otherwise go to step 1911;
- Step 191 pool has not yet complete batch-revert? If yes, go to step 1905, otherwise go to step 1912;
- Figure 20 shows the process of using the standby pool to exit the virtual machine. After the standby pool is used, the user wants to return the virtual machine and exit the standby pool. Proceed as follows:
- Step 2001 the user issues a request to quit the virtual machine
- Step 2002 the system puts the virtual machine into a revert waiting queue
- step 2003 the status of the desktop is set to restore (REVERTING).
- Figure 21 Elastic pool rules
- Figure 21 shows the rule diagram for the elastic pool.
- the implementation process is as follows:
- Step 2101 Set an elastic pool size parameter.
- Step 2103 Determine whether the user requests the virtual machine. If yes, go to step 2107, otherwise go to step 2104; In step 2104, it is determined whether the user returns the virtual machine. If yes, go to step 2108, otherwise go to step 2105;
- Step 2105 illegal operation, error reporting
- Step 2106 no action
- Step 2108 Find a virtual machine in the pool that is in an idle state for more than a certain period of time; Step 2109, determine "RUNNING - idle ⁇ min?". If yes, go to step 2113, otherwise go to step 2110;
- step 2112 it is determined whether there is a virtual machine with a power off. If yes, go to step 2115, otherwise go to step 2111;
- Step 2116 call the power on virtual machine, the number of Provision- (idle and power on the machine + the virtual machine being started).
- Figure 22 through Figure 27 show the process of application virtualization, application tiering, virtual machines, and virtual applications.
- Figure 22 shows the implementation process of the pre-deployment action.
- the purpose of the pre-deployment action is to collect various software and hardware information of the user's computer, and provide a basis for creating a virtual machine template later. It is implemented as a mutual interaction process between the client and the server, and the steps are as follows - Step 2201, the client user registers;
- Step 2202 Check user registration information.
- Step 2203 collecting PC information and sending it to the server
- Step 2204 saving basic pc information
- Step 2205 Collect all file extension information in the registry and send the information to the server.
- Step 2206 saving user file link information
- Step 2207 Check from the registry whether the user installs an application from the server
- Step 2208 find the link application of all user file extensions and return to the client
- Step 2209 Send all user-installed applications to the server
- Step 2210 Save the application installed by the user.
- Step 2211 View an unrecognized path from the registry and send it to the server.
- Step 2212 save other software registration paths
- Step 2213 Collect user desktop shortcut information and send it to the server.
- Step 2214 save user shortcut information
- Step 2215 uploading personal data of the user
- Step 2216 sending user data to the server
- Step 2217 saving user data information
- Step 2218 please provide cd or upload exe, dll;
- Step 2219 listing the unserialized application to the client
- Step 2220 uploading an exe or a dll
- Step 2221 saving the information uploaded by the user
- Step 2222 the user confirms all the information
- step 2223 the server side confirmation ends.
- Figure 23 Pre-deployment action client sequence table diagram
- Figure 23 shows a sequence table diagram of the pre-deployment action client.
- the role of the client is to manage the user's authorization and collect computer-related information that the user needs.
- the implementation steps are as follows - step 2301, the user sends a start request to the client;
- Step 2302 the pre-deployment action client collects user information from the active directory (AD); Step 2303, the pre-deployment action client sends the base information to the server end thereof;
- step 2304 it is determined whether the return is successful. If yes, go to step 2306, otherwise, go to step 2305;
- Step 2305 the user quits
- Step 2306 the pre-deployment action client collects related information.
- Step 2307 the user wants to select related information
- Step 2308 the pre-deployment action client transmits the base information, the application information, and uploads the related file to the pre-deployment action server;
- Step 2309 The pre-deployment action client sends an end notification to its server.
- Step 2310 the user finally confirms
- Step 2311 the pre-deployment action client confirms or cancels
- step 2312 the user logs out.
- Figure 24 shows the implementation process of the SOD application stream.
- the application is provided from a data center or other network location and runs locally on a remote client (client) in a virtual environment.
- Virtualized applications run in a vacuum zone and operate independently of the operating system and other applications on the local desktop. It simulates the environment in which the software is used on the computer, so that the software can be run normally in the virtual environment even if the software is not installed on the computer.
- the software no longer requires traditional download, install, and uninstall steps; direct use of the software, no need to restart, wait time; different applications are compatible, no conflicts; no longer Troubled with program failures, updates, migration issues.
- the SOD application stream is based on the preparation of the Sequencer and Client (client).
- the function of the Sequencer part is mainly to pre-process the application suite (application suite).
- application suite application suite
- the specific implementation of the Sequencer is described in detail in Figure 22.
- the function of the client is mainly to run the Application package that starts the Sequencer sequence (serialization).
- the application, the specific implementation of the Client has been described in detail in Figure 23.
- the SOD client can be installed on a remote terminal client device, or it can be installed on a virtual machine or a real machine in the background service point.
- the SOD application stream implementation steps are as follows:
- the operation procedure of the client is - step 2401, the user enters the operation interface
- Step 2402 Select an application according to user rights
- Step 2403 Check an application ID from the application list.
- Step 2404 determining whether the user uses the application for the first time. If yes, go to step 2405, otherwise go to step 2407;
- Step 2405 the application response is connected to the SOD server through a config (configuration) file;
- Step 2406 receiving the application file stream on the server side;
- Step 2407 using a virtual application on the client
- the server-side steps are as follows:
- Step 2410 starting the server
- Step 2411 installing a monitoring directory, and starting a monitoring program
- Step 2412 start installing an application
- Step 2413 monitoring the registry, the files installed to the C drive, and the like;
- step 2414 it is determined whether the installation process is finished. If the installation process is finished, then go to step 2415, otherwise go to step 2413;
- Step 2415 collecting various file information, registry information
- Step 2416 sorting the files
- Step 2417 the package is packaged into a tsap file
- Step 2418 Receive an application request sent by the client.
- Step 2419 Find an application by using an ID
- step 2420 the application file is streamed to the client.
- Figure 25 Combination of VDI and SOD
- Figure 25 depicts the process of combining VDI with SOD, primarily by installing a virtual application on a virtual machine.
- a virtual application primarily by installing a virtual application on a virtual machine.
- users can also be provided with multiple choices, and the user can use either the virtual application on the virtual machine or the application actually installed on the virtual machine.
- the implementation process is as follows:
- Step 2501 collecting setting information of a memory, a CPU, an application, a host, an operating system, etc.; Step 2502, establishing a template record by using the above information;
- Step 2503 the virtual machine is created by using the template record information, and the specific process of creating the virtual machine is described in detail in the patent of the application number "CN 200810204286.X"; Step 2504, installing the SOD client on the virtual machine;
- Step 2505 providing an image file
- the above collected information is mainly obtained through the pre-deployment action process in Figure 22, and based on this information, the template is constructed.
- the user requests to use the virtual application on the virtual machine.
- the SOD client program automatically finds the application on the backend server (SOD server side), then streams the application to the virtual machine, and the user can use the virtual application on the virtual machine.
- Figure 26 depicts the implementation of template versioning.
- the version tree can be used to solve the problem of template versioning.
- the implementation process is as follows:
- Step 2601 fixing the template
- Step 2602 installing an operating system, providing an image file
- Step 2603 installing a VDI, determining an action to be deployed on the template
- Step 2604 a new template request appears, and a new template version is replaced;
- Step 2605 build a version tree, and the initial version is set to the root node of the tree;
- Step 2606 placing the new version on the leaf node of the tree
- Step 2607 continuously expanding the child nodes of the tree
- Step 2608 periodically evaluating the version tree
- step 2609 the redundant old node is removed, and the version tree is optimized.
- Figure 27 Layered virtual desktop
- Figure 27 shows the layered-VDI method, which tiers the desktop and its applications according to the organization of the company. This helps administrators to manage hierarchically. Different administrators have different Administrative authority, can be responsible for managing different layers, the layers are independent, and the layers are related. On the other hand, users use VDI, which essentially uses the application on the virtual desktop, and how to use the application conveniently and quickly, in order to maximize the value of VDI.
- virtual desktops are sequentially divided into four levels: a company operating system, a company application, a user application, and user data & settings from bottom to top. The implementation process is as follows:
- Step 2701 layered according to the organization form of the company: from bottom to top, the company operating system, company application, user application, user data &settings;
- Step 2702 using a virtual workspace manager to manage each layer separately;
- Step 2703 setting different administrator and user rights: carrier level administrator, company operating system administrator, company application administrator, user permission setting;
- Step 2704 different administrators enter their own management interface according to the corresponding rights;
- Step 2705 the administrator manages the application within the corresponding responsibilities;
- Figure 28 depicts a preferred embodiment of the virtual desktop infrastructure of the present invention for a securities company, primarily for addressing the issue of a session of a securities company spanning multiple screens.
- Figure 28 shows the working process diagram of how to display data on multiple screens when the display data exceeds the screen range.
- the main idea is:
- the application proxy consists of two parts, one part (high-end) called application generator, and the bottom part called virtual interface.
- the virtual interface detects the application data written on the display memory, calculates the number of exceeded screens if the screen range is exceeded, and notifies the application generator to generate a process for each of the exceeded screens. Send the screen of the original application along with the screen of the generated process to the client.
- the specific process is as follows:
- Step 2801 the client selects the application request virtual machine/real machine (the manner in which the client sends the request is different, and may be a request from a certain device, or may be automatically generated when the user starts up);
- Step 2802 the request arrives at the background service point (the request is transmitted to the background service point);
- Step 2803 the application agent opens the corresponding application;
- step 2804 it is determined whether the application starts normally. If the application is started, go to step 2806, otherwise go to step 2805;
- Step 2805 telling the client that the application fails to start, and an error is reported, and the request ends.
- Step 2806 once it is learned that the application has been started, the application agent automatically monitors the application data; Step 2807, it is determined whether the display data exceeds the screen range. If yes, go to step 2808, otherwise go to step 2809;
- Step 2808 calculating the number of screens beyond which the display data is exceeded, and the application agent generates a corresponding number of processes (a process is an application);
- Step 2809 start the spice server, and send the application screen to the client.
- Step 2810 start the spice server, and send the screen of the original application and the generated process screen to the client;
- step 2811 the client receives the screen and displays it on the display.
- Figure 29 depicts a preferred embodiment of the virtual desktop infrastructure of the present invention for use in a factory, primarily to address the issue of multiple sessions of a factory being displayed on a large screen.
- Figure 29 shows the working process diagram of the screen partition display. Mainly to solve the problem of dividing a large screen into multiple zones, each zone displaying different content. The main idea is: Set the same IP address and different TCP port numbers for each partition of a large screen on the client side to distinguish each partition. According to the IP address and TCP port number of the partition requesting the virtual desktop, The virtual desktop is returned to the partition.
- the working process is as follows: Step 2901, the client sets different port numbers of the same IP address to different partitions of the same display screen;
- Step 2902 the user (select application) requests a virtual machine/real machine
- Step 2903 the request arrives at the background service point
- Step 2904 determining whether the client requires seamless (seamless refers to whether the client requires an open computer, the first screen received is not the desktop, but the application). If yes, go to step 2905, otherwise go to step 2906; Step 2905, the application agent views the application list.
- Step 2906 the application agent opens the application
- Step 2907 find the application and launch the application
- Step 2908 start the spice server, and return the screen to the client;
- step 2909 the client sends the application screen to the corresponding display area according to the IP and port number;
- Step 2910 refresh the screen.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Description
多维智能服务点虚拟桌面方法及基础架构 技术领域
本发明涉及计算机虚拟化技术及应用领域, 更具体地讲, 涉及多维智能服务 点虚拟桌面基础架构。 背景技术
随着个人计算机的普及, 用户在软硬件购买、 升级及维护等方面的开支越来 越高, 管理和维护越发复杂, 安全问题日益凸显, 给企业、组织和个人带来诸多困 扰。 另一方面, 网络技术的发展日新月异, 虚拟化技术发展势头强劲, 出现了桌面 虚拟化的趋势, 即采用一种客户机-服务器(c- S)计算模型将个人计算机桌面环境 与物理硬件分离,在本地计算机显示和操作远程计算机桌面,而在远程计算机执行 程序和储存信息。桌面虚拟化为传统的个人计算机所带来的问题提出了一种有效的 解决方案。
虚拟桌面基础架构 (Virtual Desktop Infrastructure, 简称 VDI )特指使桌 面虚拟化成为可能的服务器计算模型,通过将所需的硬件和软件系统结合在一起来 支持虚拟化环境。 桌面操作系统和应用程序运行在数据中心的服务器上的虚拟机 (后简称虚机) 中, 用户可以通过网络从 PC、 上网本、 瘦终端等各种终端设备上 访问虚拟桌面和应用程序, 并能够获得完整 PC的使用体验。 VDI管理软件的核心 是通过一系列的策略对数据中心大量虚机所形成的虚机池进行集中管理,并利用传 输协议将桌面交付给终端用户。 威睿(VMWare) 公司的 ESXi, 思杰(Citrix) 公 司的 Xen, 微软 (Microsoft ) 的 Hyper-V都可用做 VDI的基础虚拟技术。 这些公 司也纷纷推出了自己的 VDI产品,分别为威睿的 VMWare View,思杰的 XenDesktop, 微软 VDI套装软件。
VDI进入市场多年, 但推行一直很困难, 主要原因有二。其一是性能问题, 尤 其是网络性能问题。 ESG (Enterprise Solutions Group)全称瀚思资讯集团有限公 司研究发现, 用户的很多担忧都是围绕网络性能展开, 数千张桌面图像从终点站 (即, 桌面、终端等)迁移到数据中心, 包括之后进行处理应用和数据请求的后续任 务, 这些对网络性能的影响是不言而喻的。 其二是价格问题, VDI和传统的终端服 务 (TS)在功能上有一定的相似性,虽然 VDI有可以为每个终端用户提供一个独立的 虚机, 不受其它用户或系统的影响的优势; 但相较而言, 价格昂贵。如何采用一种 有效的技术方案来提高 VDI的规模经济效益,使得当用户数增加到一定程度时, VDI 表现出比 TS更好的价格优势, 也是用户极为关注的问题。 尽管如此, 目前已有的 VDI解决方案中, 还没有一种能针对这两种问题的有效解决方法。 因而, 提出一种 多维智能可管理的服务点虚拟桌面方法,有效解决上述问题,成为本领域发展的关 键。
发明内容
本发明揭示了一种多维智能服务点虚拟桌面基础架构, 更准确地说, 是一种 结合多种软硬件及网络资源来支持虚拟化环境,在后台服务点对虚机、实机及虚拟 应用程序资源进行集中管理(相较于虚机而言, 这里的实机指物理的计算机), 将 虚拟桌面按需交付给终端用户, 可提供渗透性服务和智能会话 (Session) , 并随 着使用人数增多服务成本明显下降, 产生规模经济效益的虚拟桌面基础架构。
为了实现上述发明目的, 本发明采用的设计是:
将服务管理及电信网络管理的理念引入到虚拟桌面基础架构中。 系统由两维 构建, 横向的一维由客户设备、 访问接入点、业务交换点、 后台服务点组成, 构成 了虚拟桌面的传输路径; 纵向的一维由公司操作系统、 公司应用、用户应用、用户 数据和设置组成, 将虚机分成若干易于管理的层。 通过访问接入点, 业务交换点、 后台服务点对整个架构进行管理,其中后台服务点生成虚机和虚拟应用程序并对虚 机 /实机 /应用进行集中管理,访问接入点和业务交换点主要负责提供虚拟桌面传输 的网络管理和服务, 服务具有渗透性, 并提供统一编程接口, 可与第三方集成。
后台服务点通过将实机 /虚机纳入到统一的体系, 使得用户可以根据需要来灵 活地选择使用实机或虚机。一般而言,对于一些高密度媒体的高清传输, 可选择使 用实机。实机的管理通过实机管理中心来完成,虚机的管理通过虚机管理中心来完 成, 虚拟应用程序的管理通过虚拟应用管理器来完成。 通过将 SOD ( Service on Demand)客户端安装在虚机上来实现虚机和虚拟应用程序的整合, SOD的服务器端 一般安装在实机上。通过虚拟工作空间对分层应用进行管理。并采用版本树的方法 来实现虚机模板的升级更新。业务交换点主要提供呼叫连续和业务交换服务,虚机 /实机交换功能, 同时提供负载均衡、 规则和策略引擎、 服务监控、 SIP代理服务 以及统一编程接口。访问接入点主要提供远程访问管理和连接服务,采用扩展的连 接代理将实机和虚机连接在一起,并具有注册认证和单点登录功能, 同时提供负载 均衡、 规则和策略引擎、 服务监控、 SIP代理服务以及统一编程接口。
桌面的传输采用 SIP协议和远程传输协议(可以是 Spice协议,也可以是 RDP 和 ICA协议, 下面分别予以介绍) 。 会话初始协议 (SIP) 是 IETF于 1999年提出 的一个基于文本的应用层信令控制协议,用于创建、修改和释放一个或多个参与者 的会话。 独立计算环境简单协议 (SPICE) 是红帽 (Red Hat) 公司收购 Qumranet 后获得的虚拟技术,是一种专门设计应用于虚拟环境的自适应远程传送协议, 旨在 为今天的带宽密集型应用(如多媒体、 VoIP)提供无缝的用户体验, 使用户在使用 虚拟桌面系统时感受到与使用物理桌面系统同样的体验。 Red Hat已开放了其 SPICE 托管虚拟桌面协议的源代码 SIP协议用于创建、更改和结束会话(Session), Spice 协议用来传送虚拟桌面。 远程桌面传输协议(RDP) 是微软公司开发的一种用于连 接本地客户端到终端服务器, 保持两者之间会话的协议。 SIP协议可以控制信令, 使得一个用户可以获得多个会话从而可以同时使用多个虚机,其内在的时间机制可 以实现多个人同时使用一个虚机, 实现智能会话。 SIP可以建立端对端的覆盖网 (Overlay) , 智能调度资源, 以涵盖由 Core (核心网) , Edge (边缘网络) 到用 户设备组成的 overlay的网络,使得虚拟桌面的传输安全快速。在一较佳实施例中,
用于证券公司, 一个会话横跨多个屏幕显示。 在一较佳实施例中, 用于工厂, 多 个会话显示在一个大的屏幕上。
在虚机池管理部分, 引入了备用池和弹性池的方法。 为了解决教育培训机构 课间十分钟换课程的问题, 通过采用 l inked-clone技术生成与主虚机池相对应的 备用池, 并将备用池设置成 suspend (暂停)状态, 当课间需要快速更换课程时, 可以使用备用池来完成课程的绑定。备用池的使用包括备用池的生成、使用、优化 及退出。弹性池通过设置初始值、最大值、 门限值及预留值, 设定这些值之间的大 小关系, 并采用一定的算法来确定一定的规则, 以充分地利用虚机资源, 建立用户 和虚机之间的灵活取用关系。
具体而言, 本发明提出如下的技术方案:
根据本发明的一实施例, 提出一种多维智能服务点虚拟桌面基础架构, 包括: 后台服务点、业务交换点、访问接入点和客户设备。后台服务点在后台产生虚机和 虚拟应用程序, 后台服务点对虚机、虚拟应用程序、实机进行集中控制并分派给用 户; 业务交换点连接到后台服务点,业务交换点提供呼叫连续和业务交换服务,把 经交换后的实机 /虚机请求送到后台服务点, 同时控制业务交换服务; 访问接入点 连接到业务交换点,访问接入点提供远程访问管理和连接服务, 同时控制访问接入 服务; 客户设备连接到后台服务点、业务交换点和访问接入点, 客户设备选自下述 之一: 个人电脑、 笔记本电脑、 上网本、 手机、 手持终端。
其中后台服务点包括实机管理中心、 虚机管理中心、 虚拟应用管理器、 虚拟 工作空间管理器和虚拟化基础平台。实机管理中心管理后台的实机并向用户分派实 机;虚机管理中心管理后台的虚机并向用户分配虚机;虚拟应用管理器生成并管理 后台的虚拟应用程序并建立虚拟应用程序和虚机的结合;虚拟工作空间管理器对虚 拟应用进行分层管理;虚拟化基础平台包括多个主机,其中每一主机上使用基于内 核的虚机 (KVM)对硬件平台进行虚拟化。
其中实机管理中心包括实机连接管理器、 实机状态管理器、 代理控制器、 实 机列表、实机应用列表和使用情况报表。实机连接管理器接受用户使用实机的请求, 检査实机的状态, 将用户将要使用的 application (应用)消息通过代理控制器发 送给代理,并返回给业务交换点;实机状态管理器负责监控计算机的状态及状态的 转换; 代理控制器负责接收代理发送的消息, 发送操作应用的指令给代理, 并检查 代理发送的 heart beat消息以作出是否关闭实机的判断; 实机列表是用户可以注 册与自己的账号绑定的实机到实机列表中;实机应用列表是用户指定的使用的应用 程序的列表; 使用情况报表用于统计用户使用实机和应用的情况。
其中虚拟化基础平台包括基于终端协议的 Spice服务器、 会话发起协议 SIP 服务器, 所述 Spice服务器和会话发起协议 SIP服务器用于与客户设备交互。
其中业务交换点包括虚机交换器和实机交换器和业务交换服务控制器。 虚机 交换器和实机交换器根据用户的请求,连接到请求响应的虚机管理中心或者实机管 理中心; 业务交换服务控制器提供包括呼叫接续服务、 业务交换服务、 负载均衡、 规则和策略引擎、 Overlay管理、 服务监控、 SIP服务以及服务接口。
其中虚机交换器包括座位与教室管理数据库。
其中访问接入点包括 RAS服务器和连接代理。 RAS服务器管理远程访问并当用 户在防火墙外则为用户建立 VPN连接;连接代理提供客户端接入通道并向客户端传 输桌面屏幕与应用屏幕, 采用扩展的体系, 同时为后台的虚机和实机提供连接。
其中访问接入点进一步包括访问接入服务控制器, 为访问接入提供网络服务, 并提供统一编程接口与第三方集成。
其中访问接入服务控制器包括负载均衡器、 服务监控器、 SIP代理服务器、 Overlay管理器和管理控制台。负载均衡器提供负载均衡服务; 服务监控器对服务 请求进行监控和统计; SIP代理服务器接收虚拟桌面请求, 决定将这些请求传送到 何处, 并且将它们传送到下一服务器; Overlay管理器提供 SIP overlay管理; 管 理控制台提供管理控制界面。
其中连接代理提供客户端接入通道进一步包括根据用户的登录信息在认证中 心生成凭据, 并对凭据进行加密, 以完成统一认证授权与单点登录 (sso) 。
根据本发明的一实施例, 提出一种多维智能服务点虚拟桌面方法, 该方法包 括: 使用访问接入点、业务交换点、后台服务点控制虚拟桌面的生成、分派以及传 输。其中后台服务点在后台产生虚机和虚拟应用程序, 后台服务点对虚机、虚拟应 用程序、实机进行集中控制并分派给用户; 业务交换点连接到后台服务点,业务交 换点提供呼叫连续和业务交换服务,把经交换后的实机 /虚机请求送到后台服务点, 同时控制业务交换服务;访问接入点连接到业务交换点,访问接入点提供远程访问 管理和连接服务, 同时控制访问接入服务。
其中该方法进一步包括基于客户设备和用户的 SIP进行认证注册,在认证注册 时进行机器能力的协商,其中客户设备连接到后台服务点、业务交换点和访问接入 点, 客户设备选自下述之一: 个人电脑、 笔记本电脑、 上网本、 手机、 手持终端。
其中该方法进一步包括使用 SIP协议创建会话并建立客户设备和后台服务点 之间的连接;后台服务点査询客户设备的能力;启动 Spice协议将虚拟桌面屏幕从 后台服务点传送到客户设备上; 屏幕传送完毕后, 使用 SIP协议结束会话。
其中该方法进一步包括通过 SIP代理服务器的时间机制将多个会话进行汇聚, 以使多个用户使用一个虚机; 通过 SIP代理服务器使一个用户可以获得多个会话, 以使一个用户可以同时使用多个虚机。
其中该方法进一步包括将会话和事务作为共同的开支, 考虑每个经虚拟化后 的 SIP服务器具有相同的性能,将同一会话的事务分配到相同的 SIP服务器的负载 分配方法。
其中该方法进一步包括使用 SIP服务器及其连接建立虚拟 SIP Overlay的方 法, 在 Overlay节点对 Overlay进行管理, SIP端口接受信令, Spice端口接受虚 机屏幕, 并提供统一的 API接口。
其中该方法进一步包括通过 SIP客户端和 SIP服务器协议栈实现虚拟桌面的 端对端传输的方法。
根据本发明的一实施例, 提出一种虚机池管理方法, 包括: 设置初始值、 最 大值、 门限值及预留值; 设定初始值、 最大值、 门限值及预留值之间的逻辑关系, 根据初始值、最大值、门限值及预留值以及它们之间的逻辑关系实现从虚机池取用
虚机的规则。
其中该方法进一步包括采用 linked-clone技术生成与主虚机池相对应的备用 池,并将备用池设置成 suspend状态,将备用池里的虚机与主虚机池中的虚机配合 使用。
其中该方法进一步包括将备用池按时间做动态的指定, 搜寻闲置池的备用池 优化策略。
根据本发明的一实施例, 提出一种将虚拟应用程序和虚机结合的方法, 包括: 在服务端安装监控程序;监控程序收集文件信息和注册表信息,并封装打包成 tsap 文件; 根据客户端对应用的请求, 将 tsap文件串流到客户端供用户使用。
其中该方法进一步包括根据已有的用户机器信息和虚拟应用程序信息创建模 板, 并将 SOD客户端装在虚机上。
其中该方法进一步包括将虚机及虚机上的应用程序分成四个层: 公司操作系 统、公司应用、用户应用、用户数据和设置, 并采用虚拟工作空间对所述四个层进 行管理。
根据本发明的一实施例, 提出一种采用虚拟桌面基础架构的超范围屏幕显示 方法, 包括: 设置后台服务点, 后台服务点在后台产生虚机和虚拟应用程序, 后台 服务点对虚机、虚拟应用程序、实机进行集中控制并分派给用户; 在后台服务点设 置应用代理,应用代理包括两部分:高端部分为应用生成器,底端部分为虚拟接口; 启动应用程序,虚拟接口侦测写在显示内存上的应用数据,如果超过屏幕范围就计 算超出的屏幕个数,并通知应用生成器为每个超出的屏幕生成一个进程;将原应用 的屏幕和生成的进程的屏幕一起发送到客户端。
根据本发明的一实施例, 提出一种采用虚拟桌面基础架构的屏幕分区显示方 法, 包括: 在客户端为一个大屏幕的每个分区设置相同的 IP地址以及不同的 TCP 端口号; 根据发出虚拟桌面请求的分区的 IP地址和 TCP端口号, 将虚拟桌面返回 到该分区上。
本发明的有益效果如下:
( 1 )首创一种多维虚拟桌面方法, 横向的一维表示虚拟桌面的传输路径, 纵 向的一维表示虚机上的应用层次,这种体系设计使得整个系统具有更加严密的逻辑 性和高度的可控性。
(2 ) 多个服务点可提供自助式服务, 可按需繁殖, 并基于策略自动伸缩, 提 升了服务的渗透能力以及质量保证。
(3) 提供统一编程接口, 具有高度的灵活性及强大的定制功能。
(4)将 SIP协议引入 VDI中, 配合 Spice协议, 取代传统的远程桌面访问协 议, 可增强会话的可视性和可控性, 实现智能会话, 并可对视频、 多媒体等高密度 数据的传输进行加速。
(5 )采用了一种先进的覆盖网技术, 可实现端对端的传输, 在有效减少传输 路径提高传输效率的同时, 提高了传输的可靠性和安全性。
(6)引入分布式负载方法,将负载分布到各服务点,减少了服务器端的负担, 为 VDI负载均衡提出了一种有效的解决方案。
( 7 ) 将虚机和实机管理纳入统一的体系, 两者之间可互通信息, 互为补充, 并采用扩展的连接代理, 为不同地点的用户请求提供了灵活多样的选择;
(8) 提出了一种新的弹性池策略, 可优化虚机池的管理;
(9)开发出了一种新的应用虚拟化串流技术, 大大加快了虚拟应用程序的获 取速度;
( 10) 通过将虚拟桌面及其上的应用程序和数据分成若干个相互独立的层, 并分发到用户端, 实现了一种新的分层虚拟桌面方法。
( 11 ) 用户可在任何时间任何地点任何设备上访问远程数据中心的资源, 按 需取用, 灵活多样。
( 12 ) 成本低廉。 一个用户可以同时使用多个虚机, 随着用户人数的增加成 本明显下降, 具有规模经济效应。 附图概述
下面参照附图, 对于熟悉本技术领域的人员而言, 从对本发明方法的详细描 述中, 本发明的上述和其他目的、 特征和优点将显而易见。
图 1A是本发明的多维智能服务点虚拟桌面基础架构的系统组成框图; 图 1B是本发明的多维智能服务点虚拟桌面基础架构的访问接入点部分的访问 接入服务控制器框图;
图 1C是本发明的多维智能服务点虚拟桌面基础架构的业务交换点部分的业务 交换服务控制器框图;
图 1D是本发明的多维智能服务点虚拟桌面基础架构的虚拟化基础平台层状结 构图;
图 2是本发明的实机注册的过程图;
图 3是本明的虚拟桌面基础架构系统(图 1A中连接代理 122) 单点登录的实 施过程图;
图 4是本发明的 (图 1A中连接代理 122) 的过程图;
图 5是本发明的图 1B中管理控制台 1237的过程图;
图 6是本发明的图 5中用户 SIP注册认证过程图;
图 7是本发明的用户请求虚机 /实机时与后台服务点 SIP会话的建立及结束过 程图;
图 8A是本发明的会话聚合器 (图 1B中的 SIP服务器 1235 ) 通过时间机制将 多个会话进行汇聚从而实现多个用户同时使用一个虚机的过程图;
图 8B是本发明的会话拆分器(图 1B中的 SIP服务器 1235 ) 为一个用户分配 多个会话从而实现一个人可以同时使用多个虚机的过程图;
图 9是本发明的 SIP Overlay节点的组成框图;
图 10是本发明的(图 1B中的负载均衡器 1231和图 1C中的负载均衡器 1331 ) 基于 SIP分配负载的过程图;
图 11是本发明的(图 1A中虚机交换器 131和实机交换器 132 )的工作过程图; - 图 12是本发明的 (图 1A中实机连接管理器 1411 ) 的过程图;
图 13是本发明的 (图 1A中代理控制器 1416) 的过程图;
图 14是本发明的 (图 1A中使用情况报表 1412) 的过程图;
图 15是本发明的 (图 1A中实机状态管理器 1414) 的过程图;
图 16是本发明的 (图 1A中虚机池管理器 1443 ) 隔夜换池策略 (实施例) 过 程图;
图 17是本发明的 (图 1A中虚机池管理器 1443 ) 备用池的创建的过程图; 图 18是本发明的 (图 1A中虚机池管理器 1443 ) 备用池使用策略的请求虚机 的过程图;
图 19是本发明的 (图 1A中虚机池管理器 1443 ) 备用池优化策略的过程图; 图 20是本发明的 (图 1A中虚机池管理器 1443 ) 备用池优化策略的退出虚机 的过程图;
图 21是本发明的 (图 1A中虚机池管理器 1443 ) 弹性池规则的过程图; 图 22是本发明的 (图 1A中虚拟应用管理器 143) 预部署动作的过程图; 图 23是本发明的(图 1A中虚拟应用管理器 143)预部署动作客户端序列表格 的过程图;
图 24是本发明的 (图 1A中虚拟应用管理器 143 ) SOD应用串流的过程图; 图 25是本发明的(图 1A中虚拟应用管理器 143与虚机管理中心 144)结合的 过程图;
图 26是本发明的 (图 1A中虚机管理中心 144) 虚机模板版本化的过程图; 图 27是本发明的(图 1A中虚拟工作空间管理器 142)对 VDI上的操作系统进 行分层管理的过程图;
图 28是发明的虚拟桌面基础架构在证券公司的较佳实施例图;
图 29是发明的虚拟桌面基础架构在工厂的较佳实施例图; 具体实施方式
概述
图 1A为总图,此桌面虚拟化的基础架构包括客户设备 11、访问接入点 12、 业务交换点 13、后台服务点 14。白色框是本专利涉及的软件部分(功能模块); 虚线框为申请人于 2008年 12月 10日提交的申请号为" CN 200810204286.X" , 题为"移动虚拟化的基础设施以及基础平台"的专利申请中已经详细描述过的功 能模块。 因此, 虚线框将不多作说明。
客户设备 1 1指各种用户终端设备, 既可以是传统 PC, 个人笔记本, 也可 以是上网本, 手机等终端设备, 即可以是各种胖痩终端设备。 如果是胖终端, 可以像普通 PC—样使用, 也可以将其虚拟化后使用。 图 1A所示的系统中, 客 户设备 11通过访问接入点 12和业务交换点 13从后台服务点 14取得虚机及应 用屏幕。
访问接入点 12的负责为客户设备 11建立到后台服务点 14的连接, 对连 接进行管理, 并提供网络服务。 其中连接代理 122负责与后台服务点 14的连
接工作, 并令虚机分派器 1441获取虚机。 远程访问服务器(RAS ) 121可提供 远程访问支持, 即为外部用户建立 VPN 连结。 典型的设置是这样的: 访问接 入点安装在 Access网络侧或核心网边缘 (Edge) 侧, 其底层硬件可为交换机、 路由器或服务器集群。 访问接入点 12 同时可提供自助式的服务, 具体可提供 负载均衡、 策略和规则引擎、 服务监控、 SIP服务、 会话 (Session) 转换等服 务以及统一编程接口 API (含多个接口) , 服务具有渗透性, 并基于策略自动 地增缩。
业务交换点 13 主要负责虚机和实机的业务交换, 根据用户选择的虚机或 实机业务将其切换到相应的后台管理中心。 典型的设置是这样的: 业务交换点 13安装在核心网或核心网边缘侧 (Edge) , (其底层硬件可为交换机、 路由器 或服务器集群) 。 业务交换点 13还拥有人员与团体管理数据库 1321, 座位与 教室管理数据库 1322, 应用与套餐管理数据库 1323, 以及虚机服务器和模板 管理数据库 1324。 这些数据库是由后台服务点 14中的虚机管理中心 144中的 管理控制台 1442进行管理。 业务交换点 13通过连接代理 122的统一认证授权 系统决定用户是否有权取得所订阅应用的屏幕。 业务交换点 13 并能判断该应 用是从虚机管理中心 144的后台过来, 还是从实机管理中心 143的后台过来, 从而采取适当的 PC屏幕适配措施。 业务交换点同时可提供自助式的服务, 具 体可提供虚拟网络管理、 负载均衡、 策略和规则引擎、 服务监控等服务以及统 一编程接口。
后台服务点 14 (一般是数据中心)是虚机、 实机和虚拟应用程序的后台管 理系统, 由虚机管理中心 144、 实机管理中心 141、 虚拟应用管理器 143和虚 拟工作空间管理器 142组成, 一般安装于核心网络中。 虚机管理中心中 144的 虚机池管理 1443 引入了弹性池规则和备用池规则。 实机管理中心 141 负责对 实机及其应用列表的管理, 监控实机的状态, 生成用户使用实机及其上的应用 的报告, 接受用户的使用请求并打开相应的应用供用户使用。 虚拟应用管理器 143 通过在计算机上模拟出应用程序的使用环境, 将应用程序虚拟化, 其操作 独立于操作系统和本地桌面上的其他应用程序, 从而达到在计算机上即使不安 装软件, 也可以在虚拟环境中正常运行软件的目的。 虚拟工作空间管理器 144 负责对应用分层的管理, 根据企业管理的需求, 可对操作系统及其上的应用进 行分层, 从下至上依次为公司操作系统、 公司应用、 用户应用、 用户数据&设 置 (这样可实现层与层之间的独立性, 层之间的相互关联性, 有利于不同权限 的管理员对不同层的管理) 。
实现本发明的桌面虚拟化的基础架构, 需要 SIP客户端 111和 Spice客户 端 112通过 SIP协议和 Spice协议与 SIP服务器端 1457和 Spice服务器端 1456 进行通信, 其中 SIP客户端 111是客户设备的一个软件, 而 SIP服务器 1457 则是运行在虚拟化基础平台 145的 Linux内核操作系统上。
SIP客户端 111和 SPICE客户端 112安装在客户设备 11上, 但注意这里 根据客户设备的性能不同, 会有不同的可选情况。 当客户设备性能很差 (很痩 的终端) 以致无法运行 SIP和 Spice时, 选择在客户设备上安装 RDP客户端,
SIP客户端安装在访问接入点, 从访问接入点开始使用 SIP协议。 当客户设备 是定制的瘦终端时, 则客户设备上仅安装 SIP客户端, 还需要一个驱动器来接 受虚机屏幕, 客户端仅作 SIP通信使用。 还要注意企业内部用户和外部用户的 区别。 访问接入点 12 可以自动辨别客户终端是胖终端或瘦终端, 如果是胖终 端, 则使用 SIP和 Spice, 否则使用 RDP即可。 还有一种就是电子书包 (胖终 端) , 只需从服务器下载镜像后, 便可自己在客户端跑, 只需要跟服务器同步。 用户点击所需的应用, 在访问接入点的连接代理上存有用户专有信息以资验证 (用户通过 SSO认证, 信息保留在访问接入点上) , 在业务交换点 13上切换 到相应的虚机或实机应用。 若用户请求的是虚机, 后台服务点 14 会通过虚拟 化平台应用接口去虚拟化基础平台取得虚机, 这时应用代理会激活应用并把第 一个虚机上的虚拟桌面传到客户设备 11 上; 若用户请求的是实机, 后台服务 点 14 会查看所请求的实机的状态, 命令应用代理激活应用并把实机上的第一 个虚拟桌面传到客户设备上。
图 1 B的访问接入服务控制器 123是访问接入点中的一个服务模块, 提供 自助式的虚拟化计算和资源服务, 服务可按需繁殖, 并基于策略自动地增缩。 负载均衡器 1233用于实现负载均衡的; 策略和规则引擎器 1232提供策略和规 则引擎; 服务监控器 1235用于监控服务请求的; Overlay管理器 1231是用于 管理 SIP Overlay的, SIP端口传输信令, Spice端口传输虚拟桌面, 并为信令 和虚拟桌面建立 Overlay连接; SIP服务器 1234可以将会话进行聚合和拆分, 使得多个用户可以同时使用一个虚机, 一个用户可以同时使用多个虚机; 服务 接口 1236提供统一编程接口, 可与第三方集成。
图 1 C的业务交换服务控制器 133是业务交换点 13中的一个服务模块, 可提供呼叫接续和业务交换, 可以实施呼叫开始、 中断或中继交换的。 和前述 访问接入点 12中的访问接入服务控制器 123相似, 可提供自助式的虚拟化计 算和资源服务, 服务点可按需繁殖, 并基于策略自动地增缩。 业务交换服务控 制器 133包括 Overlay管理器 1331,策略和规则引擎器 1332,负载均衡器 1333, SIP服务器 1334, 呼叫接续 1335, 业务交换 1336, 服务监控器 1337, 服务接 口 1338, 管理控制台 1339。 具体可提供负载均衡、 规则和策略引擎、 服务监 控、 Overlay管理、 SIP服务以及统一编程接口 (其各模块功能与访问接入点 12 中的相似, 在前面已作描述) 。
图 1D 的虚拟化基础平台 145是 VDI的基础技术, 提供 VDI的基础支撑 平台, 可包括多个主机, 其中每一主机上使用基于内核的虚机 (Kernel Based Virtual Machine,KVM ) 1452 对硬件平台进行虚拟化, 内核 KVM1452 与 QEMU1453进程通信虚拟至少一个具有客户操作系统及内存的虚机 1454(底层 既可以是 KVM, 也可以是 ESX, Xen或 Hyper-V) 。 虚拟化基础平台执行性能 监测, QEMU及内核共享, 内存分页优化,输入输出设备调试的预处理的功能。
实现本发明的虚拟桌面基础架构,需要 SIP客户端 111和 Spice客户端 112 通过 SIP协议建立与虚拟化基础平台上 SIP服务 1457的通信,从而为此次会话 建立一个连接。 连接建立好后, 启动 Spice服务器, 将虚拟桌面从后台传到客
户端。 之后再用 SIP协议结束会话。 图 2-图 4给出了注册认证和单点登录的过程。
图 2注册实机图
图 2描述了实机的注册过程, 这里的实机是相对虚机而言的, 指的是未经 硬件虚拟化的计算机,亦即通常所说的真实物理计算机,实机处于后台服务点。 在使用实机之前, 需要对实机进行注册, 实现过程如下:
步骤 201, 在用户的 My Real Machine (我的实机) 界面增加一台 pc (个 人计算机, 亦即实机) , 输入 ip地址 /机器名等信息;
步骤 202, 在 Application List (应用列表)界面增加 application (应用)信 息, 输入 app (应用) 的安装路径和 exe (可执行文件) 的名字等信息;
步骤 203, 保存后, 显示一个下载界面, 让用户可以下载代理 (agent) 和 spice 服务器, 提示用户安装;
步骤 204, 提示用户测试当前 pc是否可用, 可用通过发送和接收一些测试 的 Message (信息) 来测试一下代理和 spice server (服务器) 是否安装正确。 图 3 单点登录
单点登录 (SSO) 主要是为了解决用户权限管理的复杂化、 用户及权限管 理模块重复开发、 存在系统安全隐患等一系列问题, 使得用户登录了其中的一 个应用系统, 便可以直接使用其它的应用系统。 单点登录的过程如下: 用户输 入用户名 /密码, 登录单点登录认证系统。 认证中心 (AC ) 根据用户提交的信 息, 验证用户的身份。 如果是合法用户, 就根据用户信息和权限创建凭据 (Ticket), 否则拒绝登录。 为了保证凭据数据的安全, 每个凭据都有一组根据非 对称加密算法生成的密钥 (公钥 KA和私钥 KB ) , 凭据中的数据均用与凭据 相对应的公钥加密, 并用摘要算法 (如 MD5/SHA) 生成校验信息。 认证中心 将合法用户的凭据通过网络传送到用户所在的计算机上保存。 用户选择自己需 要访问的应用系统 VDI后, 向应用系统服务器发送自己的凭 ¾, 并开始转入应 用系统的认证程序。 应用系统在认证中心验证凭据的有效性, 如: 是否由认证 中心所发、 是否超过有效期等。 应用系统根据用户计算机上凭据的信息, 由摘 要算法生成摘要,通过对比校验信息和摘要校验凭据的完整性。如果经过验证, 凭据是合法且有效, 就从认证中心取得凭据的私钥对提交的凭据的数据进行解 密, 并读取其中所含有的用户信息。应用系统 VDI验证用户是否具有访问本系 统的合法身份 (确定是否有访问权限, 是否通过本级管理员审批并开通) , 若 身份合法,则根据其具有的权限配置相应的使用权限,否则拒绝进入 VDI系统。 在用户结束系统的使用后, 由用户注销凭据, 若系统超时, 凭据自动销毁。
步骤 301, 用户输入用户名和密码;
步骤 302, 用户请求登录到单点登录认证系统;
步骤 303, 认证中心根据用户提交的信息, 验证用户的身份;
步骤 304, 判断用户是否为合法用户。 如果是, 转入到步骤 306, 否则转
入到步骤 305 ;
步骤 305, 提示户名或密码错误, 拒绝用户登录;
步骤 306, 根据用户信息和权限创建凭据;
步骤 307, 为了保证凭据数据的安全, 每个凭据都有一组根据非对称加密 算法生成密钥 (公钥和私钥) , 将凭据中的数据用公钥进行加密;
步骤 308, 用摘要算法 (如 MD5/SHA ) 生成校验信息;
步骤 309, 认证中心将合法用户的凭据;
步骤 310, 通过网络传送到用户所在的计算机上保存;
步骤 311, 动态生成用户界面;
步骤 312, 凭据到达 SSO客户端;
步骤 313, 存储凭据在计算机上;
步骤 314, 选择 VDI子系统;
步骤 3 15, 自动登录 VDI子系统
步骤 316, 发送凭据到 VDI系统
步骤 317, 凭据到达 VDI子系统
步骤 318, 将凭据发送到认证中心;
步骤 319, 凭据到达认证中心;
步骤 320, 验证凭据 TA有效性;
步骤 321, 判断凭据是否有效。 如果有效, 转入到步骤 323, 否则转入到 步骤 322;
步骤 322 , 用户重新登录;
步骤 323, 判断凭据是否完整。 若是, 转入到步骤 325, 否则转入到步骤
324;
步骤 324, 用户重新登录;
步骤 325, 用私钥解密凭据;
步骤 326, 判断用户是否具有访问权限。 若是, 转入到步骤 328., 否则转 入到步骤 327;
步骤 327, 用户没有访问权限;
步骤 328, 根据权限自动生成 VDI子系统界面;
步骤 329, 使用 VDI子系统功能;
步骤 330, 使用结束用户退出;
步骤 331, 系统超时;
步骤 332 , 注销凭据。 图 4 连接代理
连接代理 122是 VDI系统中最重要的部分之一,其过程如下: 用户向服务 器发出登录请求, 若用户在防火墙外, 则连接代理 122为用户建立 VPN (虚拟 专用网络)连接; 否则, 直接转到下一步判断用户是否通过 SSO认证授权; 若 没有通过认证, 则告诉客户端显示错误信息, 若通过认证, 则把请求传到 SIP
代理服务器, SIP 代理服务器解析地址并向下一跳发出呼叫请求; 请求到达业 务交换点中的虚机 /实机交换器, 若用户请求的是虚机上的应用, 则切换到虚机 入口, 并连接到后台的虚机管理中心, 令虚机分派器获取虚机, 从应用列表查 到应用 ID,找到最佳虚机,并通知应用代理在虚机上激活应用,最后启动 Spice 服务器, 传应用的第一屏给客户端; 若用户请求的是实机上的应用, 则切换到 实机入口, 并连接到后台的实机管理中心, 査询实机列表和应用列表, 选择使 用某台实机下的某个应用,找到最佳实机,并通知应用代理在实机上激活应用, 最后启动 Spice服务器, 传应用的第一屏给客户端 (注意这里, 实机也是和虚 机一样, 采用 SIP协议发起会话, 采用 Spice传送实机屏幕; 在连接代理中也 可体现 SIP, 只是侧重点有所不一。 在传统的 VDI中, 没有使用 SIP协议的情 况下,通过连接代理建立连接, 是因为传统的屏幕传送协议 RDP只仅仅负责屏 幕的传送; 而我们采取 SIP协议后, 则是以连接代理的连接功能为主, 贯穿整 个虚拟桌面基础架构, 内含 SIP代理连接, 用于 SIP通信。 )
这里的连接代理(扩展的连接代理) 将实机和虚机整合到一个体系, 可以 同时连接到实机管理中心和虚机管理中心。
步骤 401, 用户向服务器发出登录请求;
步骤 402, 连接代理判断用户是否在防火墙之外。 若是, 转入到步骤 403, 否则转入到步骤 404;
步骤 403, 连接代理为用户建立 VPN连接;
步骤 404, 判断用户是否通过 SSO认证授权。 若是, 转入到步骤 406, 否 则转入到步骤 405;
步骤 405, 告诉客户端显示错误信息;
步骤 406, SIP服务器转发请求到下一跳服务器;
步骤 407, 虚机 /实机交换器为请求选择相应的虚机或实机入口; 步骤 408, 若用户请求的是虚机, 则连接代理令虚机分派器获取虚机, 从 应用列表查到应用 ID (身份) ; 若用户请求的是实机, 则连接代理令实机连接 管理器査询实机和应用状态;
步骤 409, 连接应用, 分三步进行, (a) 告知虚机或实机上的应用代理应 用 ID, (b)等待, 直到应用启动或失败,(c) 通知 SIP 客户端应用已启动, 准备 接受应用的第一屏幕, 或告以启动失败报错。
图 5-图 10给出了 SIP会话和网络管理过程。 图 5 会话管理控制台
图 5给出了会话管理控制台的工作过程图。 当用户请求 (会话) 到达可管 理的服务点时, 通过管理控制台操作操作一系列的管理工具来处理会话, 从而 实现负载均衡、 会话的智能性、 安全性等。 具体步骤如下- 步骤 501, 服务监控器监控到用户请求虚机 /实机;
步骤 502, 判断用户是否通过 SIP注册认证。 若通过, 转入到步骤 504, 否则转入到步骤 503 ;
步骤 503, 告诉客户端显示错误信息;
步骤 504, 负载均衡器根据规则把请求分配到 SIP服务器;
步骤 505, 判断操作是否是聚合会话。 若是, 转入到步骤 506, 否则转入 到步骤 507 ;
步骤 506, 进入会话聚合器, 关于会话聚合器, 会在后面的图 8A中详细 说明;
步骤 507, 判断操作是否是拆分会话。 若是, 转入到步骤 508, 否则转入 到步骤 509;
步骤 508, 进入会话拆分器, 关于会话拆分器, 会在后面的图 8B 中详细 说明;
步骤 509, 虚拟 SIP Overlay (覆盖网) 管理节点决定请求的转发路径; 步骤 510, 会话管理还包括安全管理, QoS (服务质量) 管理, 会话统计 管理等管理功能。 图 6 SIP注册认证
用户代理客户端向注册服务器发出注册请求, 注册分为两种, 包括用户的 注册和机器的注册, 如果是机器的注册, 则将机器的 IP地址、机器名等信息注 册到注册服务器中 (这种注册是对固定机器的注册, 可以机器的相关信息登录 到系统) ; 如果是用户的注册, 则在注册界面输入用户名、 密码等信息, 注册 信息存入位置服务器 (这种注册方式很灵活, 用户可在不同地点的不同机器上 以用户名和密码登录到系统) 。 若注册服务器得知用户没有发认证消息, 发送 应答消息 401 (Unauthorized) 向用户代理要求认证证书, 用户重发包含认证信 息的注册请求, 注册服务器对认证消息进行验证。 若验证通过, 注册服务器 验证通过并返回 OK; 若验证未通过, 则要求用户重发包含认证信息的注册请 求, 后续步骤同上。 若注册服务器得知用户注册请求中携带认证消息, 则后续 步骤同上。 注册信息存入位置服务器。
用户代理客户端向用户代理服务器端发出 Invite (会话邀请) 请求, 代理 服务器得知用户没有发认证消息, 即发送应答消息 407 ( Proxy- Authentication Request) 向用户要求认证证书; 用户发送 ACK (确认) , 用户重发包含认证 信息的 Invite请求, 代理服务器对请求进行认证, 并发 200 OK确认。 注册服 务器将注册认证信息存储在位置服务器中。 用户代理服务器端对用户代理客户 端所发送的 INVITE方法中的会话描述 SDP (会话描述协议) 进行分析, 若客 户设备具有接收和解码服务器端发送的多媒体信号的能力, 则说明双方可以正 常通信, 否则显示客户端错误。
步骤 601, 用户代理客户端向注册服务器发出注册请求;
步骤 602, 判断是否要求用户机器注册。 若是, 转入到步骤 603, 否则转 入到步骤 604;
步骤 603, 在注册界面输入用户机器的 IP地址、 机器名等信息; 步骤 604, 在注册界面输入用户名、 密码等信息;
步骤 605, 判断注册请求中是否携带了认证消息。 若是, 转入到步骤 607, 否则转入到步骤 606;
步骤 606, 注册服务器发送应答消息 401 (Unauthorized) 向用户代理要求 认证证书;
步骤 607, 注册服务器对认证消息进行验证;
步骤 608, 用户重发包含认证信息的注册请求;
步骤 609, 判断注册请求中携带的认证消息是否通过验证。 若通过, 转入 到步骤 610, 否则转入到步骤 608;
步骤 610, 注册服务器发送 200 OK确认验证通过;
步骤 611, 将用户的注册信息存入位置服务器;
步骤 612, 用户代理客户端向用户代理服务器端发出 Invite请求; 步骤 613, 判断 Invite请求中是否携带了认证消息。 若 Invite请求中携带 了认证消息, 转入到步骤 617, 否则转入到步骤 614;
步骤 614, 代理服务器发送应答消息 407 ( Proxy- Authentication Request) 向用户要求认证证书;
步骤 615, 用户发送确认消息 ACK;
步骤 616, 用户重发包含认证信息的 Invite请求;
步骤 617, 代理服务器对认证消息进行验证;
步骤 618, 判断 Invite请求中的认证消息是否通过验证。 若通过验证, 转 入到步骤 619, 否则转入到步骤 617;
步骤 619, 用户代理服务器端对用户代理客户端所发送的 INVITE方法中 的会话描述 SDP进行分析; SIP使用 SDP来进行能力交换, 当前, SIP还不如 H.245有完整灵活的协商能力, 因为受制于 SDP的表达方式, 例如 SIP不支持 不对称能力交换 (只收或只发)以及声频和视频编码的并发能力。 当 SIP 为主叫 方时, SIP在 INVITE方法的会话描述中指示其能够接受的媒体类型及其参数, 还可以指示其愿意发送的媒体类型。
步骤 620, 判断客户设备是否具有接收和解码服务器端发送的多媒体信号 的能力。 若是, 转入到步骤 322, 否则转入到步骤 321 ;
步骤 621, 客户端错误, 即客户端设备不具备接收服务器端所发送的虚机 / 实机屏幕的能力, 用户若想使用 VDI系统, 需要改换终端设备, 或者改换 SIP 客户端, 安装 RDP客户端, 这当然一种备选方案;
步骤 622, 双方可以正常通信, 即客户端设备可以接收服务器端所发送的 虚机 /实机屏幕。 图 7为 SIP会话过程图
(当然 Invite请求和 Option请求的先后顺序可以改变)客户端发起会话请 求 Invite请求虚机。 后台服务点收到用户的请求, 并且正确处理了这个请求, 则发出临时应答 lxx。 客户端收到临时应答消息, 判断是否超时, 若超时, 则 客户端重新发起会话请求 Invite请求虚机; 若未超时, 则继续等待来自后台服
务点的响应。 在后台服务点, 若还需要附加操作才能完成这个请求, 并将本请 求转发到其他的服务器上处理, 则发出重定向 3xx应答; 若请求包含错误的格 式或者不能在这个服务器上完成, 则发出客户端错误 4xx应答; 若服务器不能 正确地处理这个显然合法的请求, 则发出服务器错误 5xx应答; 若请求不能被 任何服务器处理, 则发出全局错误 6xx应答; 若请求已经成功接收, 并且正确 处理了这个请求, 则发出成功处理 200OK响应。 客户端若收到 3xx-6XX响应, 则客户端重新发起会话请求 Invite请求虚机 (表示此次请求虚机失败) ; 若收 到 200 OK响应, 则继续等待下一响应。 服务器端向客户端发出 Option请求, 询问客户端是否具有接收和解码服务器端发送的多媒体信号 (媒体类型和媒体 参数) 的能力。 客户端收到 Option请求, 若服务器端发送的多媒体信号(媒体 类型和媒体参数) 在自己可以接受的媒体类型及参数的范围内, 则客户端可与 服务器正常通信, 返回 200 OK, 并做好传输媒体流的准备; 反之, 双方无法通 信, 会话结束 (这一步机器能力的协商也可以在注册认证过程中完成, 作为一 种可选方案。 该方案灵活性差, 但使用方便, 使得在后面的会话过程中无需再 考虑机器能力的交换) 。 服务器端收到 200 OK响应, 开始准备传屏。 通过任 务驱动器, 计算屏幕的位置, 并调用 Spice协议, 传送屏幕。 客户端收到服务 器端传送的 Spice数据流,并发 200 OK响应确认。服务器端如果等待响应超时, 则重新准备传屏; 反之,在正常等待时间内收到 200 OK响应。客户端发送 Bye 请求释放呼叫, 服务器端收到 Bye请求, 发 200 OK响应。
步骤 701, 注册结束;
步骤 702, 客户端向后台服务点发起会话请求, 请求虚机 /实机; 步骤 703, 客户端收到来自后台服务点的临时应答消息;
步骤 704, 判断应答是否超时。 若是, 转入到步骤 702, 否则转入到步骤
705;
步骤 705, 判断是否收到响应 3xx-6xx。
步骤 706, 客户端收到后台服务点的 200 OK响应;
步骤 707, 客户端收到后台服务点的 Option请求;
步骤 708, 判断客户端是否具有接收和解码后台服务点发送的多媒体信号 的能力。 若能接收, 转入到步骤 710, 否则转入到步骤 709;
步骤 709,客户端不具备接收和解码后台服务点发送的多媒体信号的能力, 双方无法通信, 会话结束;
步骤 710, 客户端具备接收和解码后台服务点发送的多媒体信号的能力, 客户端可与服务器正常通信, 返回 200 OK;
步骤 711, 确认, 开始客户端和后台服务点之间的媒体流传输;
步骤 712, 客户端等待接收后台服务点发送的虚机屏幕;
步骤 713, 客户端收到服务器端传送的 SPICE数据流, 即虚机屏幕; 步骤 714, 客户端收到虚机屏幕后, 发 200 OK响应给后台服务点; 步骤 715, 客户端发送 Bye请求释放呼叫;
步骤 716, 后台服务点等待用户注册成功;
步骤 717, 后台服务点收到用户请求;
步骤 718, 后台服务点发临时应答;
步骤 719, 判断后台服务点是否成功处理客户端请求。 若是, 转入到步骤 724, 否则转入到步骤 720, 步骤 721, 步骤 722, 步骤 723 ;
步骤 720, 重定向;
步骤 721, 客户端错误;
步骤 722, 服务器端错误;
步骤 723, 全局错误;
步骤 724, 后台服务点成功处理客户端请求, 发 200 OK响应;
步骤 725, 服务器端向用户端发出 Option请求, 以询问客户端是否具备接 收和解码后台服务点发送的多媒体信号的能力;
步骤 726, 后台服务点收到客户端的 200 OK响应;
步骤 727, 后台服务点做好传屏的准备工作;
步骤 728, 任务驱动, 计算屏幕位置;
步骤 729, 调用 SPICE, 传送屏幕;
步骤 730, 判断等待响应是否超时;
步骤 731, 收到 200 OK响应;
步骤 732, 收到 Bye请求, 发 200 OK响应。 图 8 会话转换器
通过 SIP服务器的转换功能, 可以实现多个用户使用一台虚机, 一个用户 同时使用多台虚机, 从而为用户灵活分配虚机, 提高资源的利用率, 实现智能 会话, 这是本发明的一大特色。
图 8A为会话聚合器, 描述了多用户使用一个虚机的过程。
步骤 8101, 用户选择应用向后台服务点发出虚机 /实机的使用请求; 步骤 8102, 请求到达 SIP服务器 (会话转换器) , SIP服务器既可以在访 问接入点, 也可以在业务交换点和后台服务点, 这里的 SIP服务器是指在访问 接入点的 SIP服务器;
步骤 8103, 请求被划分在计时器计时的汇聚时间间隔内, SIP有一个时间 机制, 可确定一个极小的时间段, 对时间段内的请求进行汇聚后再发送出去; 步骤 8104, SIP服务器计算该时间段 (间隔) 内的所有虚机请求的个数, SIP服务器内可设置一计数器来统计时间段内虚机的个数;
步骤 8105, 判断请求的个数是否大于 1。 若大于 1, 转入步骤 8107, 否则 转入步骤 8106;
步骤 8106, 判断请求的个数是否等于 1。 若等于 1, 转入步骤 8108, 否则 转入步骤 8101 ;
步骤 8107, 将多个请求汇聚成一个会话请求后发往后台服务点; 步骤 8108, 将单个请求直接发往后台服务点;
步骤 8109, 后台服务点为该请求分配一个虚机 /实机;
步骤 8110, 判断该请求是否是将多个原始请求汇聚后的请求。 若是, 转入 步骤 8112, 否则转入 8111 ;
步骤 8111, 应用代理打开相应的应用, 并将屏幕直接返回给用户; 步骤 8112, 将汇聚后的请求分解成原始请求, 应用代理为每个原始请求打 开其请求的应用, 并将屏幕分别返回给各用户。
图 8B为会话拆分器,描述了一个用户使用多个虚机的过程。由于 SIP Proxy Server ( SIP 代理服务器) 的主要任务是完成消息转发, 在转发请求之前, 它 可以改写原请求消息中的内容。 它也可代表其它客户机发起请求, 既充当服务 器又充当客户机。 这里使用 SIP Proxy Server的功能, 可以为一个用户分配多 个会话, 从而实现一个用户同时使用多个虚机。
步骤 8201, 用户选择应用向后台服务点发出虚机 /实机的使用请求; 步骤 8202, 请求到达 SIP服务器 (会话转换器) ;
步骤 8203, 判断用户是否请求多个虚机。 若用户请求多个虚机, 转入步骤 8204, 否则转入步骤 8205 ;
步骤 8204, SIP服务器根据用户的要求, 向后台服务点发送多个会话请求; 步骤 8205, SIP服务器路由请求到后台服务点;
步骤 8206, 后台服务点为每个会话请求分配一个虚机;
步骤 8207, 后台服务点为该会话请求分配一个虚机;
步骤 8208, 后台服务点将多个虚机返回给一个用户;
步骤 8209, 后台服务点将单个虚机返回给一个用户; 图 9 Virtual SIP OVERLAY (虚拟 SIP覆盖) 节点
该图给出了 SIP Overlay节点 91的组成, 众多 SIP服务器及其上的 SIP链 接构成了 SIP overlay网络。 在该 overlay节点 91中, API 913 接口提供统一的 接口, 实现 overlay网络间的相互连接, Overlay管理 912负责对 Overlay节点 进行管理, 为信令和虚拟桌面的传输建立 Overlay。 端口有 Spice端口 9111和 SIP端口 9112, SIP端口 9111用于转发信令流的, Spice端口 9112用于转发虚 拟桌面流的。 SIP用户代理 90既可以是 SIP用户代理客户端, 也可以是 SIP用 户代理服务器端。 图 10 基于 SIP的负载均衡
图 10给出了基于 SIP的负载均衡的实现过程。 由于 SIP有会话和转换两 种事务, 而会话又是一种状态, 被 Invite事务创建, 被 BYE事务结束。 因而 SIP有事务和会话两方面的开支。因而可以采用将相同的会话分配到相同的 SIP 服务器上的方法。 (这样的负载均衡方法的优点是易于管理) 假设每个 SIP服 务器都是经过虚拟化后平均分配的服务器, 具有相同的性能。 实现过程如下: 步骤 1001, 客户端发出虚机 /实机请求到达负载均衡器;
步骤 1002, 负载均衡器判断该请求是否是 Invite请求。 若是, 转入到步骤 1005, 否则转入到步骤 1003 ;
步骤 1003, 判断该请求是否是 Bye请求。 若是, 转入到步骤 1006, 否则 转入到步骤 1004;
步骤 1004, 通过负载均衡器, 将该请求分配到与之相同 CALL-ID所在的 SIP服务器上 (同一会话内的所有相关的 SIP消息都使用同一个 Call-ID) ; 步骤 1005, 将该请求的 CALL-ID记录在负载均衡器中;
步骤 1006, 通过负载均衡器, 找到与 bye请求 Call-ID相同的请求所在的 SIP服务器 i, Count(i)=count(i)-l ;
步骤 1007, For i=l to n, 査看 SIP服务器 SIP(i) (假设有 n个 SIP服务器); 步骤 1008, 判断 SIP(i)上是否是空载。 若是, 转入步骤 1010, 否则转入到 步骤 1009;
步骤 1009, 判断 i是否小于^ 若 i小于 n, 转入到步骤 1007, 开始执行 下一次循环, 否则转入到步骤 1011 ;
步骤 1010, 设置 Count(i)=0;
步骤 1011, 负载均衡器找到 count ( i) 最小的 SIP服务器, 并将请求分配 到该服务器上;
步骤 1012, 将该 Invite请求分配到 SIP(i)服务器;
步骤 1013, 设置 Count(i)=count(i)+l, 并开始等待下一个请求的到来; 图 11-15是实机管理部分, 给出了实机管理的过程。
图 11 VM/RM交换器
图 11给出了虚机 /实机交换器的工作流程情况。 在我们的 VDI中, 用户可 根据自己的需要, 选择使用虚机或实机, 其交换由实机 /虚机交换器来完成, 具 体实现过程如下:
步骤 1101, 用户发出登录请求并进入交换器;
步骤 1102, 判断用户是否选择实机。 若选择实机, 转入步骤 1103, 否则 转入步骤 1104;
步骤 1103, 切换到实机入口;
步骤 1104, 切换到虚机入口;
步骤 1105,判断用户选择的实机和应用,通知应用代理在实机上激活应用, 并将 ip/spice port (端口) 号返回;
步骤 1106, 找到最佳虚机, 并通知应用代理在虚机上激活应用; 步骤 1107, Spice服务器: 传应用的第一屏给客户端。 图 12 实机连接管理器
图 12给出了实机连接管理器的工作流程情况。 Connection Manager (连接 管理器) 负责接受用户使用 pc (个人计算机) 的请求, 首先会检査 pc的状态 是否可用,然后会将客户将要使用的 application (应用)消息通过代理 Controller (控制器)发送给代理, 让它打开对应的 application (应用) 。 然后 connection manager (连接管理器) 返回信息给 switch (交换器) , 同时记录用户的使用情
况。 其实现过程如下:
步骤 1201, 实机连接管理器收到用户使用实机的请求;
步骤 1202, 实机连接管理器查询实机列表和应用列表, 选择使用某台实机 下的某个应用;
步骤 1203,实机连接管理器检査 pc的状态是否为 power on (接通电源的)。 若为 power on, 转入到步骤 1205, 否则转入到步骤 1204;
步骤 1204, 将检査结果返回给交换机, 通知用户 pc没有启动, 无法使用; 步骤 1205, 发送需要启动的应用信息给代理, 修改 pc的状态;
步骤 1206, 判断应用是否启动。 若应用已经启动, 转入到步骤 1208, 否 则转入到步骤 1207;
步骤 1207, 返回给交换机, 通知用户应用启动失败, 无法使用; 步骤 1208, 将 pc的 ip/vnc port等信息返回给交换机。 图 13 代理控制器
图 13给出了代理控制器的工作过程图。 代理控制器负责接收代理发送给
ActiveMQ的消息, 包括 pc的 poweron/poweroff 以及用户 login/logout (登录 / 登出) ; 当用户请求使用 pc时, 代理控制器发送打开 /关闭 app的指令给代理。 代理会在 pc 启动之后定时发送 heart beat (心跳) 给代理控制器, 如果超时没 有收到 heart beat, 就会认为这台 pc已经 poweroff, 用户就无法使用。 实现过 程如下:
步骤 1301, 代理控制器接收代理发送的 heart beat;
步骤 1302, 代理控制器接收代理发送给 ActiveMQ的消息;
步骤 1303, 代理控制器判断在一定时间内是否收到 heartbea 若收到, 转到步骤 1315, 否则转入到步骤 1309;
步骤 1304, 代理控制器用户是否发出了 login请求。 若是, 转入到步骤
1310, 否则, 转入到步骤 1305;
步骤 1305, 代理控制器判断用户是否发出了 logout请求。 若是, 转入到 步骤 1311 , 否则转入到步骤 1306;
步骤 1306, 代理控制器判断用户是否发出了 power on请求。 若是, 转入 到步骤 1312, 否则转入到步骤 1307;
步骤 1307, 代理控制器判断用户是否收到 power off请求。 若是, 转入到 步骤 1313, 否则转入到步骤 1308;
步骤 1308,代理控制器判断用户是否请求使用 pc。若是,转入到步骤 1314, 否则转入到步骤 1315 ;
步骤 1309, 通知该 pc已经 poweroff, 用户就无法使用;
步骤 1310, 发送 login的指令给代理;
步骤 1311, 发送 logout的指令给代理;
步骤 1312, 发送 power on的指令给代理;
步骤 1313, 发送 power off的指令给代理;
步骤 1314, 发送打开 /关闭应用的指令给代理;
步骤 1315, 无动作。 图 14获得实机 /应用的使用记录
图 14 给出了获取实机 /应用的使用记录的过程图。 根据用户使用 pc/application的记录, 生成用户使用情况的报表, 包括每个 application的使用 时间统计, pc的使用时间统计等。 具体实现过程如下:
步骤 1401, 以请求的实机 /应用值进入;
步骤 1402, 判断实机是否为运行状态。 若是, 转入到步骤 1404, 否则转 入到步骤 1403 ;
步骤 1403, 报错返回;
步骤 1404, 取得所予实机的进程 ID (PID) ;
步骤 1405, 用 pid调用性能代理;
步骤 1406, 返回所予实机的 CPU, 内存, 心跳信息, 使用时间以及应用的 使用时间;
步骤 1407, 生成应用使用情况报表。 图 15实机状态管理器
图 15给出了实机状态管理器的工作过程图。 实机状态管理器负责监控 pc 的状态,是 poweron/poweroff/using中的一种,负责状态的转换。实现过程如下: 步骤 1501, 状态管理器得到实机的状态;
步骤 1502; 判断状态是否为 Power on。 若是, 转入到步骤 1506, 否则转 入到步骤 1503 ;
步骤 1503, 判断状态是否为 Power off。 若是, 转入到步骤 1506, 否则转 入到步骤 1504;
步骤 1504; 判断状态是否为正在使用状态。 若是, 转入到步骤 1506, 否 则转入到步骤 1505 ;
步骤 1505 ; 状态 =N/A (空) ;
步骤 1506; 返回状态。 图 16-21是虚机池管理部分。
图 16 隔夜换池策略图
图 16给出了隔夜换池策略的过程图。
按照课程时间表, 事先安排某类虚机池给某班级 (而不让学生自己选操作 系统) 。 VDI必须有按照课程时间表预先安排虚机池的策略管理。 譬如前一天 知道某班级第二天要切换到不同操作系统, 就在隔夜自动按照课程时间表进行 切换。 这种策略比较没有弹性应付课程突然改的情况, 而且仍然有当天换池, 要学生等待的情况。 总图 1A中座位与教室管理数据库, 就是用于存放这一部
分的数据的。 实现流程如下:
步骤 1601, 在模板上创建虚机, 并以虚机模板克隆虚机;
步骤 1602, 每天早上, 打开虚机;
步骤 1603, 调用课程表;
步骤 1604, 根据课程表, 将教室与虚机池静态绑定;
步骤 1605, 晚上课程结束后, 关闭虚机;
步骤 1606, 还原虚机。 图 17 用于批量还原的备用池图
图 17给出了备用池的创建的过程图。 备用池主要用来解决课程突然改变 的情况, 这就要求在课间 10 分钟内更换课程。 由于大批量虚机的还原和开启 需要相当长的吋间, 一般很难在课间这么短的时间内完成更换课程表的任务, 这时就需要用到备用池。 创建步骤如下:
步骤 1701, 创建主虚机池;
步骤 1702, 设置主虚机池的默认状态为 power on;
步骤 1703, 采用 linked-clone, 创建对应的备用池, 通过池名来与主虚机 进行一一对应, 这里采用 linked-clone方法, 是为了节省物理服务器资源; 步骤 1704, 设置备用池的默认状态为 suspend, 这样设置是为了能在很短 的时间内江备用池中的虚机恢复到正常工作状态。 图 18备用池使用策略一请求虚机
图 18给出了备用池使用策略—请求虚机的过程。 在主虚机池和备用池配合 使用的情况下, 用户请求虚机, 若—主虚机池中的虚机够用, 则使用主虚机池中 的虚机, 否则使用与主虚机池相应的备用池中的虚机, 步骤如下:
步骤 1801, 用户请求虚机;
步骤 1802,判断主池中虚机状态是否为 power on。若是,转入到步骤 1803, 否则转入到步骤 1804;
步骤 1803, 分配虚机给用户
步骤 1804, 判断备用池中对应的备用虚机状态是否为 power On。 若是, 转入到步骤 1803, 否则转入到步骤 1805 ;
步骤 1805, 判断主池中虚机状态是否为 suspend。若是, 转入到步骤 1805, 否则转入到步骤 1807;
步骤 1806, 系统自动帮其开机并分配给用户使用;
步骤 1807, 判断备用池中对应的备用虚机状态是否为 suspend。 若是, 转 入到步骤 1806, 否则转入到步骤 1808;
步骤 1808, 告知用户无虚机可用。 图 19 备用池优化策略
图 19给出了备用池的优化策略。 除了图 16的隔夜换池的功能, 还必须有 临时切换到备用池的功能。并且要有在众多教室之间搜寻闲置池的功能。最后, 其实所有的虚机池都可以看成是备用池, 然后把教室和备用池按时间做动态的 指定 (dynamic assignment) 。 实现过程如下:
步骤 1901, 课程表发生临时改变;
步骤 1902, 把教室和备用池按时间做动态的指定;
步骤 1903, from time=9AM, next classtime to 10PM, Dec 31, 2010
步骤 1904, 清除所有的 pool.assigned = false
步骤 1905, For classroom=l to n
步骤 1906, For pool^l to n
步骤 1907, 判断教室是否在此时的课程表中。 若是, 转入到步骤 1905, 否则转入到步骤 1913 ;
步骤 1908, 判断 pool[l]. assigned = true? 若是, 转入到步骤 1905, 否则转 入到步骤 1909;
步骤 1909, 判断 VDIOptimalPolicy( )= EnergySaving? 若是, 转入到步骤
1910, 否则转入到步骤 1911 ;
步骤 1910, 判断 EnergyEfficiency (pool) < 60%?若是, 转入到步骤 1905, 否则转入到步骤 1911 ;
步骤 191 1, pool has not yet complete batch-revert? 若是,转入到步骤 1905, 否则转入到步骤 1912;
步骤 1912, Pool[l]. assigned = true; assigned_pair [time] = (classroom, pool)。 图 20 备用池使用策略一退出虚机
图 20 给出了备用池使用策略一退出虚机的过程。 备用池使用完后, 用户 要归还虚机, 退出备用池。 步骤如下:
步骤 2001, 用户发出退出虚机的请求 ;
步骤 2002, 系统将该虚机放入还原 (revert) 等待队列;
步骤 2003, 将该 desktop的状态置为还原 (REVERTING) 。 图 21 弹性池规则
图 21 给出了弹性池的规则图。 为了更加充分地利用虚机资源, 就不需要 把虚机池与教室静态绑定, 而是建立灵活的取用关系, 这就需要使用到一定的 规则。 其实现过程如下:
步骤 2101, 设置弹性池大小参数;
步骤 2102, 初始四种值 (ηήη= 始值, max=最大值, threshold门限值, 1"0 13100=预留值, 且 1< Threshold (阀值) Provision (预留) < min (初始) < max ) ;
步骤 2103, 判断用户是否请求虚机。 若是, 转入到步骤 2107, 否则转入 到步骤 2104;
步骤 2104, 判断用户是否归还虚机。 若是, 转入到步骤 2108, 否则转入 到步骤 2105 ;
步骤 2105, 非法操作, 报错;
步骤 2106, 无动作;
步骤 2107, 判断"闲置且 0\^1" 011的虚机<='1¾^1101(1,, 且闲置且 power on的机器+正在启动的虚机<= Provision' ? " 若是, 转入到步骤 2112, 否则转 入到步骤 2106;
步骤 2108, 找出该 pool中处于 idle (闲置) 状态超过一定时间的虚机; 步骤 2109, 判断" RUNNING - idle < min? "。 若是, 转入到步骤 2113, 否 则转入到步骤 2110;
步骤 2110, 关闭的虚机数量= idle;
步骤 2111, 调用 clone, clone数量 = 'Provision,值;
步骤 2112, 判断是否有 Power off的虚机存在。 若是, 转入到步骤 2115, 否则转入到步骤 2111 ;
步骤 2113, 关闭的虚机数量= RUNNING - min ;
步骤 2114, 调用 power on虚机, 且调用 clone, clone数量 = 'Provision,值; 步骤 2115, 判断" Power off的虚机数量 < Provision- (闲置且 power on的机 器 +正在启动的虚机)? "。 若是, 转入到步骤 2114, 否则转入到步骤 2116;
步骤 2116, 调用 power on虚机,数量 Provision- (闲置且 power on的机器 + 正在启动的虚机) 。 图 22-图 27给出了应用虚拟化、应用分层、虚机和虚拟应用程序的结合过 程。
图 22 预部署动作过程图
图 22给出了预部署动作的实现过程图。 预部署动作的目的是为了搜集用 户计算机的各种软硬件信息, 为后面的创建虚机模板提供依据。 其实现为客户 端和服务器的相互交互过程, 步骤如下- 步骤 2201, 客户端用户注册;
步骤 2202, 检査用户注册信息;
步骤 2203, 收集 PC信息并发送到服务器
步骤 2204, 保存基本的 pc信息;
步骤 2205, 收集注册表中所有的文件扩展信息并送到服务器;
步骤 2206, 保存用户文件链接信息;
步骤 2207, 从注册表査看用户是否安装了来自服务器的应用;
步骤 2208, 找到所有用户文件扩展的链接应用并返回客户端;
. 步骤 2209, 发送所有用户安装的应用到服务器;
步骤 2210, 保存用户安装的应用;
步骤 2211, 从注册表査看无法识别的路径并发给服务器;
步骤 2212, 保存其它的软件注册路径;
步骤 2213, 收集用户桌面快捷方式信息并发给服务器;
步骤 2214, 保存用户快捷方式信息;
步骤 2215, 上传用户个人的数据;
步骤 2216, 发送用户数据到服务器;
步骤 2217, 保存用户数据信息;
步骤 2218, 请用户提供 cd或上传 exe,dll;
步骤 2219, 列出未序列化的应用到客户端;
步骤 2220, 上传 exe或 dll;
步骤 2221, 保存用户上传的信息;
步骤 2222, 用户确认所有的信息;
步骤 2223, 服务器端确认结束。 图 23 预部署动作客户端序列表格图
图 23 给出了预部署动作客户端的序列表格图。 客户端的作用主要管理用 户的授权, 收集用户需要的计算机相关的信息。 实现步骤如下- 步骤 2301, 用户向客户端发出开始请求;
一 步骤 2302, 预部署动作客户端从活动目录 (AD ) 中搜集用户信息; 步骤 2303, 预部署动作客户端发送基信息到其服务器端;
步骤 2304, 判断返回是否成功。 若是, 转入到步骤 2306, 否则, 转入到 步骤 2305;
步骤 2305, 用户退出;
步骤 2306, 预部署动作客户端搜集相关的信息;
步骤 2307, 用户想选择相关的信息;
步骤 2308, 预部署动作客户端传送基信息、应用信息, 并上传相关的文件 到预部署动作服务器端;
步骤 2309, 预部署动作客户端向其服务器端发送结束通知;
步骤 2310, 用户最终确认;
步骤 2311 , 预部署动作客户端确认或取消;
步骤 2312, 用户退出。 图 24 SOD应用串流
图 24给出了 SOD应用串流的实现过程图。 在应用虚拟化的情况下, 应用 程序是从数据中心或者其它网络位置提供的,并在虚拟环境下的远程 client (客 户端) 上本地运行。 虚拟化应用程序在真空区中运行, 并且其操作独立于操作 系统和本地桌面上的其他应用程序。 它通过在计算机上模拟出软件使用的环 境, 从而达到在计算机上即使不安装软件, 也可以在虚拟环境中正常运行软件 的目的。 这意味着几种好处, 软件不再需要传统下载、 安装、 卸载步骤; 直接 使用软件, 无需重启、 等待时间; 不同应用程序兼容, 不产生冲突; 不再为应
用程序的故障、 更新、 迁移问题困扰。 SOD应用串流基于 Sequencer (序列器) 和 Client (客户端)两部分已准备好的基础上。 Sequencer部分的功能主要是对 Application suite (应用套装)进行虚拟化预处理, Sequencer的具体实现已在图 22中详细说明, client的功能主要是运行启动 Sequencer已经 sequence (序列化) 的 Application包中的应用程序, Client的具体实现己在图 23中详细说明。根据 实际需求, SOD客户端可以装在远程的终端客户设备上, 也可以安装在后台服 务点的虚机或实机上。 SOD应用串流实现步骤如下:
客户端的操作步骤为- 步骤 2401, 用户进入操作界面;
步骤 2402, 根据用户权限选择应用;
步骤 2403, 从应用列表査到应用 ID;
步骤 2404, 判断用户是否第一次使用该应用。 若是, 转入到步骤 2405, 否则转入到步骤 2407;
步骤 2405, 应用响应通过 config (配置) 文件连到 SOD 服务器端; 步骤 2406, 收到服务器端的应用文件流;
步骤 2407, 在客户端使用虚拟应用程序;
服务器端的操作步骤为:
步骤 2410, 启动服务器;
步骤 2411, 安装监控目录, 开启监控程序;
步骤 2412, 开始安装应用;
步骤 2413, 监控注册表、 安装到 C盘的文件等信息;
步骤 2414,判断安装过程是否结束。若安装过程结束,则转入到步骤 2415, 否则转入到步骤 2413 ;
步骤 2415, 收集各种文件信息, 注册表信息;
步骤 2416, 对文件进行排序;
步骤 2417, 封装打包成 tsap文件;
步骤 2418, 收到客户端发出的应用请求;
步骤 2419, 通过应用 ID查找到相应的应用;
步骤 2420, 将应用文件串流到客户端。 图 25 VDI和 SOD的结合
图 25描述的是 VDI与 SOD的结合的过程,主要通过将虚拟应用程序安装 在虚机上来实现。 当然在实际应用中, 也可以为用户提供多种选择, 用户既可 以使用虚机上的虚拟应用程序, 也可以使用虚机上实际安装的应用程序。 实现 过程如下:
步骤 2501, 搜集内存、 CPU、 应用、 主机、 操作系统等设置信息; 步骤 2502, 通过以上信息建立一条模板记录;
步骤 2503, 以模板记录信息创建虚机, 创建虚机的具体过程己在申请号为 "CN 200810204286.X"的专利中详细说明;
步骤 2504, 将 SOD客户端安装在虚机上;
步骤 2505, 提供镜像文件;
上述搜集的信息主要通过图 22 中预部署动作过程来得到的, 并以此信息 为依据, 构建模板。 用户请求使用虚机上的虚拟应用, SOD客户端程序会自动 找到后台服务器(SOD服务器端)上的应用, 然后将应用串流到虚机上, 用户 便可以使用虚机上的虚拟应用程序。 图 26 模板版本化
图 26描述了模板版本化的实现过程。 在公司组织内, 不同的部门往往有 不同的模板, 模板也往往会遇到升级更新的问题, 可以采用版本树的方法解决 模板版本化的问题, 实现过程如下:
步骤 2601, 将模板固定好;
步骤 2602, 装操作系统, 提供 image文件;
步骤 2603, 装 VDI, 确定模板上应部署的动作;
步骤 2604, 出现了新的模板要求, 更换新的模板版本;
步骤 2605, 构建版本树, 最初的版本设为树的根节点;
步骤 2606, 将新的版本放在树的叶节点上;
步骤 2607, 不断扩展树的子节点;
步骤 2608, 定期对版本树进行评估;
步骤 2609, 去掉冗余的老节点, 优化版本树。 图 27 分层虚拟桌面
图 27给出了分层虚拟桌面 (layered- VDI) 方法, 根据公司的组织形式将 桌面及其上的应用进行分层, 这样做有利于管理员进行分层管理, 不同的管理 员有不同的管理权限, 可以负责管理不同的层, 层与层之间是独立的, 层内是 相关的。从另一方面, 用户使用 VDI, 从本质上是使用虚拟桌面上的应用程序, 如何方便快捷安全地使用应用, 才能最大地体现 VDI的价值。 在本发明中, 从 下至上依次将虚拟桌面分为公司操作系统、 公司应用、 用户应用、 用户数据& 设置四个层次。 实现过程如下:
步骤 2701, 依据公司的组织形式分层: 从下至上依次为公司操作系统、 公 司应用、 用户应用、 用户数据&设置;
步骤 2702, 采用虚拟工作空间管理器对每层分别进行管理;
步骤 2703, 设置不同的管理员和用户权限: 电信级管理员、 公司操作系统 管理员、 公司应用管理员、 用户权限设置;
步骤 2704, 不同的管理员根据相应的权限进入自己的管理界面; 步骤 2705, 管理员对相应职责内的应用进行管理; 图 28超范围屏幕显示
图 28 描述了本发明的虚拟桌面基础架构用于证券公司的一较佳实施例, 主要用于解决证券公司的一个会话横跨多个屏幕显示的问题。 图 28 给出了当 显示数据超过屏幕范围吋, 如何用多个屏幕显示数据的工作过程图。 主要思想 是: 应用代理由两部分组成, 一部分 (高端的) 叫应用生成器, 底端的叫虚拟 接口。 当应用跑起来后, 虚拟接口侦测写在显示内存上的应用数据, 如果超过 屏幕范围就计算超出的屏幕个数, 并通知应用生成器为每个超出的屏幕生成一 个进程。 将原应用的屏幕和生成的进程的屏幕一起发送到客户端。 具体流程如 下:
步骤 2801, 客户端选择应用请求虚机 /实机 (客户端发出请求的方式是多 样的, 可以是某一个设备发出请求, 也可以是用户开机时自动生成的) ;
步骤 2802, 请求到达后台服务点 (请求被传送到后台服务点) ; 步骤 2803, 应用代理打开相应的应用程序;
步骤 2804, 判断应用是否正常启动。 如果应用启动, 转入到步骤 2806, 否则转入到步骤 2805;
步骤 2805, 告诉客户端应用启动失败, 报错, 此次请求结束;
步骤 2806, 一旦获知应用已经启动, 应用代理自动监测应用数据; 步骤 2807,判断显示数据是否超出了屏幕范围。若超过,转入到步骤 2808, 否则转入到步骤 2809;
步骤 2808, 计算显示数据超出的屏幕个数, 应用代理生成相应个数的进程 (一个进程就是一个应用) ;
步骤 2809, 启动 spice服务器, 将应用屏幕发往客户端;
步骤 2810, 启动 spice服务器, 将原应用的屏幕和生成的进程的屏幕发送 到客户端;
步骤 2811, 客户端接收屏幕, 在显示器上显示。 图 29 屏幕分区显示
图 29描述了本发明的虚拟桌面基础架构用于工厂的一较佳实施例, 主要 用于解决工厂的多个会话在一个大的屏幕上显示的问题。 图 29 给出了屏幕分 区显示的工作过程图。 主要是为了解决将一个大屏幕分成多个区, 每个区显示 不同的内容的问题。 主要思想是: 在客户端为一个大屏幕的每个分区设置相同 的 IP地址, 不同的 TCP端口号, 以此来区分每个分区, 根据请求虚拟桌面的 分区的 IP地址和 TCP端口号, 将虚拟桌面返回到该分区上。 工作过程如下: 步骤 2901, 客户端将同一显示屏的不同分区设置同一 IP 地址的不同端口 号;
步骤 2902, 用户 (选择应用) 请求虚机 /实机;
步骤 2903, 请求到达后台服务点;
步骤 2904, 判断客户端是否要求 seamless (无缝的) (seamless是指客户 端是否要求一打开电脑, 接收的第一屏幕不是桌面, 而是应用程序) 。 如果是, 转入到步骤 2905, 否则转入到步骤 2906;
步骤 2905, 应用代理查看应用列表;
步骤 2906, 应用代理打开应用;
步骤 2907, 找到应用并启动应用;
步骤 2908, 启动 spice服务器, 将屏幕返回到客户端;
步骤 2909, 客户端根据 IP和端口号把应用屏幕送到相应的显示屏区域; 步骤 2910, 刷新屏幕。 上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的, 熟悉本 领域的人员可在不脱离本发明的发明思想的情况下, 对上述实施例做出种种修 改或变化, 因而本发明的保护范围并不被上述实施例所限, 而应该是符合权利 要求书提到的创新性特征的最大范围。
Claims
1. 一种多维智能服务点虚拟桌面基础架构, 其特征在于, 包括- 后台服务点, 在后台产生虚机和虚拟应用程序, 后台服务点对虚机、 虚拟 应用程序、 实机进行集中控制并分派给用户;
业务交换点, 连接到后台服务点, 业务交换点提供呼叫连续和业务交换服 务, 把经交换后的实机 /虚机请求送到后台服务点, 同时控制业务交换服务; 访问接入点, 连接到业务交换点, 访问接入点提供远程访问管理和连接服 务, 同时控制访问接入服务;
客户设备, 连接到访问接入点, 客户设备选自下述之一: 个人电脑、 笔记 本电脑、 上网本、 手机、 手持终端。
2. 如权利要求 1 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述后台服务点包括- 实机管理中心, 管理后台的实机并向用户分派实机;
虚机管理中心, 管理后台的虚机并向用户分配虚机;
虚拟应用管理器, 生成并管理后台的虚拟应用程序并建立虚拟应用程序和 虚机的结合;
虚拟工作空间管理器, 对虚拟应用进行分层管理;
虚拟化基础平台, 使用基于内核的虚机 (KVM) 对硬件设备进行虚拟化。
3. 如权利要求 2所述多维智能服务点虚拟桌面基础架构, 其特征在于, 所述 实机管理中心包括:
实机连接管理器, 接受用户使用实机的请求, 检査实机的状态, 将用户要 使用的应用 (application) 消息通过代理控制器发送给代理, 并返回给业务交 换点;
实机状态管理器, 负责监控物理计算机或者实机的状态及状态的转换; 代理控制器, 负责接收代理发送的消息, 发送操作应用的指令给代理, 并 检查代理发送的心跳 (heart beat) 消息以作出是否关闭实机的判断;
实机列表, 用户可以注册与自己的账号绑定的实机到实机列表中; 实机应用列表, 用户指定的使用的应用程序的列表;
使用情况报表, 统计用户使用实机和应用的情况。
4. 如权利要求 2所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述虚拟化基础平台包括- 基于终端协议的独立计算环境简单协议 (Spice ) 服务器、 会话发起协议 SIP服务器,所述 Spice服务器和会话发起协议 SIP服务器用于与客户设备交互。
5. 如权利要求 1 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述业务交换点包括:
虚机交换器和实机交换器, 根据用户的请求, 连接到请求响应的虚机管理 中心或者实机管理中心;
业务交换服务控制器, 提供包括呼叫接续服务、业务交换服务、负载均衡、 规则和策略引擎、 覆盖网 (Overlay)管理、 服务监控、 SIP服务以及服务接口。
6. 如权利要求 5 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述虚机交换器包括: 座位与教室管理数据库。
7. 如权利要求 1 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述访问接入点包括:
远程访问 (RAS ) 服务器, 管理远程访问, 当用户在防火墙外则为用户建 立虚拟专有网络 (VPN) 连接;
连接代理, 提供客户端接入通道, 并向客户端传输桌面屏幕与应用屏幕, 同时为后台的虚机和实机提供连接。 '
8. 如权利要求 1 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述访问接入点进一步包括:
访问接入服务控制器, 为访问接入提供网络服务。
9. 如权利要求 8 所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述访问接入服务控制器包括:
负载均衡器, 提供负载均衡服务;
服务监控器, 对服务请求进行监控和统计;
SIP代理服务器, 接收虚拟桌面请求, 决定将这些请求传送到何处, 并且 将它们传送到下一服务器;
覆盖 (Overlay) 管理器, 提供 SIP Overlay管理;
管理控制台, 提供管理控制界面。
10.如权利要求 7所述的多维智能服务点虚拟桌面基础架构, 其特征在于, 所 述连接代理提供客户端接入通道进一步包括: 根据用户的登录信息在认证中心生成凭据, 并对凭据进行加密, 以完成统 认证授权与单点登录 (SSO) 。
11.一种多维智能服务点虚拟桌面方法, 其特征在于, 该方法包括:
使用访问接入点、 业务交换点、 后台服务点控制虚拟桌面的生成、 分派以 及传输;
其中后台服务点接收业务交换点发送的虚拟桌面请求, 根据请求的业务在 后台产生虚机和虚拟应用程序, 后台服务点对虚机、 虚拟应用程序、 实机进行 集中控制并分派给请求方;
业务交换点接收来自访问接入点的虚拟桌面请求, 对请求进行业务交换控 制, 把经交换后的请求送到后台服务点;
访问接入点接收来自客户设备的虚拟桌面请求, 对请求进行访问接入控 制, 并将请求转发到业务交换点。
12.如权利要求 11所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括:
使用 SIP 认证注册机制对客户设备和用户进行身份验证,在认证注册时进 行机器能力的协商, 其中客户设备连接到访问接入点, 并经访问接入点连接到 业务交换点和后台服务点, 客户设备选自下述之一: 个人电脑、 笔记本电脑、 上网本、 手机、 手持终端。
13.如权利要求 12所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括:
使用 SIP协议创建会话并建立客户设备和后台服务点之间的连接; 后台服务点査询客户设备的能力;
启动 Spice协议将虚拟桌面屏幕从后台服务点传送到客户设备上; 屏幕传送完毕后, 使用 SIP协议结束会话。
14.如权利要求 12所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括:
通过 SIP代理服务器的时间机制将多个会话进行汇聚, 以使多个用户使用 一个虚机;
通过 SIP 代理服务器使一个用户可以获得多个会话,以使一个用户可以同 时使用多个虚机。
15.如权利要求 12所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括- 将同一 SIP会话的事务请求分配到相同的 SIP服务器,
以 SIP会话为基本单元来计算负载开支的负载分配。
16.如权利要求 12所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括:
使用 SIP服务器及其连接建立虚拟 SIP Overlay的方法, 在 Overlay节点 对 Overlay进行管理, SIP端口接受信令, Spice端口接受虚机屏幕。
17.如权利要求 12所述的多维智能服务点虚拟桌面方法, 其特征在于, 进一步 包括:
通过 SIP客户端和 SIP服务器协议栈实现虚拟桌面的端对端传输的方法。
18.—种虚机池管理方法, 其特征在于, 包括:
设置初始值、 最大值、 门限值及预留值;
设定初始值、 最大值、 门限值及预留值之间的逻辑关系,
根据所述初始值、 最大值、 门限值及预留值以及它们之间的逻辑关系实现 从虚机池取用虚机的规则。
19.如权利要求 18所述的虚机池管理方法, 其特征在于, 进一步包括- 采用链接克隆 (linked-clone) 技术生成与主虚机池相对应的备用池, 并将 备用池设置成暂停(suspend)状态, 将备用池里的虚机与主虚机池中的虚机配 合使用。
20.如权利要求 18所述的虚机池管理方法, 其特征在于, 进一步包括:
将备用池按时间做动态的指定, 搜寻闲置池的备用池优化策略。
21.—种将虚拟应用程序和虚机结合的方法, 其特征在于, 包括- 在服务器端安装监控程序;
监控程序收集文件信息和注册表信息, 并封装打包成 SOD应用 (tsap ) 文 件;
根据客户端对应用的请求, 将 tsap文件串流到客户端供用户使用。
22.如权利要求 21所述的方法, 其特征在于, 进一步包括: 根据已有的用户机器信息创建模板记录, 并将随需而动的服务(Service on Demand, SOD) 客户端装在虚机上。
23.如权利要求 21所述的方法, 其特征在于, 进一步包括:
将虚机及虚机上的应用程序分成四个层: 公司操作系统、 公司应用、 用户 应用、 用户数据和设置, 并采用虚拟工作空间对所述四个层进行管理。
24.—种采用虚拟桌面基础架构的超范围屏幕显示方法, 其特征在于, 包括: 设置后台服务点, 后台服务点在后台产生虚机和虚拟应用程序, 后台服务 点对虚机、 虚拟应用程序、 实机进行集中控制并分派给用户;
在后台服务点设置应用代理, 应用代理包括两部分: 高端部分为应用生成 器, 底端部分为虚拟控制台;
启动应用程序, 虚拟控制台侦测写在显示内存上的应用数据, 如果超过屏 幕范围就计算超出的屏幕个数, 并通知应用生成器为每个超出的屏幕生成一个 进程;
将原应用的屏幕和生成的进程的屏幕一起发送到客户端。
25.—种采用虚拟桌面基础架构的屏幕分区显示方法, 其特征在于, 包括: 在客户端为一个大屏幕的每个分区设置相同的 IP地址以及不同的 TCP端 口号;
根据发出虚拟桌面请求的分区的 IP地址和 TCP端口号, 将虚拟桌面返回 到该分区上。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110036438.1 | 2011-02-11 | ||
| CN201110036438.1A CN102638475B (zh) | 2011-02-11 | 2011-02-11 | 多维智能服务点虚拟桌面方法及基础架构 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012106980A1 true WO2012106980A1 (zh) | 2012-08-16 |
Family
ID=46622718
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2012/000159 Ceased WO2012106980A1 (zh) | 2011-02-11 | 2012-02-10 | 多维智能服务点虚拟桌面方法及基础架构 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN102638475B (zh) |
| WO (1) | WO2012106980A1 (zh) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105407115A (zh) * | 2014-09-03 | 2016-03-16 | 中国石油化工股份有限公司 | 一种基于vnc调度的负载均衡方法及其系统 |
| US9846586B2 (en) | 2012-09-29 | 2017-12-19 | International Business Machines Corporation | Creating a virtual machine and cloud server |
| CN107959824A (zh) * | 2017-10-31 | 2018-04-24 | 深信服科技股份有限公司 | 一种监控视频处理方法、物理服务器及存储介质 |
| CN109195177A (zh) * | 2018-09-14 | 2019-01-11 | 国云科技股份有限公司 | 基于ActiveMQ的基站手机停留时间实时统计方法 |
| CN110740352A (zh) * | 2019-11-14 | 2020-01-31 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示方法 |
| CN110738034A (zh) * | 2018-07-20 | 2020-01-31 | 中兴通讯股份有限公司 | 教学模板管理方法、设备以及计算机可读存储介质 |
| CN110868614A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示系统 |
| CN114461157A (zh) * | 2021-12-23 | 2022-05-10 | 天翼云科技有限公司 | 一种idv客户端多屏分治方法及系统 |
| CN114692120A (zh) * | 2020-12-30 | 2022-07-01 | 成都鼎桥通信技术有限公司 | 国密认证方法、虚拟机、终端设备、系统及存储介质 |
| WO2023019736A1 (zh) * | 2021-08-20 | 2023-02-23 | 苏州浪潮智能科技有限公司 | 基于云主机的qga服务管理方法、装置、设备及介质 |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103634484B (zh) * | 2012-08-27 | 2019-01-04 | 中兴通讯股份有限公司 | 终端切换方法、装置及系统 |
| CN103677972B (zh) * | 2012-09-25 | 2017-04-26 | 中国电信股份有限公司 | 呈现虚拟桌面元数据的方法、装置及系统 |
| CN103020517B (zh) * | 2012-11-28 | 2015-09-16 | 福建伊时代信息科技股份有限公司 | Usb虚拟桌面设备的互访方法和系统 |
| WO2014101163A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 提供虚拟桌面服务的装置、设备和方法 |
| CN103369029B (zh) * | 2013-05-15 | 2016-04-13 | 北京航空航天大学 | 本地桌面和远程虚拟桌面同步方法、系统及使用方法 |
| KR101541591B1 (ko) * | 2013-05-16 | 2015-08-03 | 삼성에스디에스 주식회사 | Vdi 환경에서의 싱글 사인온 시스템 및 방법 |
| CN103685441B (zh) * | 2013-07-02 | 2017-07-07 | 中国科学院重庆绿色智能技术研究院 | 一种基于龙芯终端的远程桌面控制系统 |
| CN103414712B (zh) * | 2013-08-05 | 2016-01-27 | 深圳市杰云科技有限公司 | 一种分布式虚拟桌面管理系统和方法 |
| CN103561090B (zh) * | 2013-10-31 | 2017-01-11 | 北京云巢动脉科技有限公司 | 数据通讯方法、装置及系统 |
| CN103607460A (zh) * | 2013-11-20 | 2014-02-26 | 曙光信息产业(北京)有限公司 | 集中化计算处理系统 |
| CN104717061B (zh) * | 2013-12-11 | 2018-02-27 | 中国电信股份有限公司 | 虚拟桌面的身份识别和访问控制方法及系统 |
| CN103873568A (zh) * | 2014-03-04 | 2014-06-18 | 赛特斯信息科技股份有限公司 | 基于云计算实现远程虚拟桌面显示的系统及方法 |
| CN105282095A (zh) * | 2014-06-18 | 2016-01-27 | 中兴通讯股份有限公司 | 虚拟桌面登录验证方法和装置 |
| CN105005716B (zh) * | 2015-06-16 | 2018-01-09 | 中国科学院计算技术研究所 | 一种应用程序远程交付系统及远程交付方法 |
| CN106330999B (zh) * | 2015-06-19 | 2020-08-21 | 南京中兴软件有限责任公司 | 实现客户端与虚拟桌面数据共享的方法、客户端和系统 |
| CN105763532B (zh) * | 2016-01-05 | 2019-05-07 | 新华三技术有限公司 | 一种登录虚拟桌面的方法及装置 |
| CN106060035B (zh) * | 2016-05-26 | 2019-09-06 | 新华三技术有限公司 | 一种虚拟桌面的解锁方法及装置 |
| CN113067852B (zh) * | 2016-07-13 | 2022-07-26 | 华为技术有限公司 | 部署在平台上的应用程序的应用程序弹性系统及其方法 |
| CN106295341A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 基于虚拟化的企业数据中心安全解决方法 |
| CN106959854A (zh) * | 2017-03-23 | 2017-07-18 | 江苏磐数信息科技有限公司 | 云终端虚拟化系统 |
| CN106686149A (zh) * | 2017-03-23 | 2017-05-17 | 江苏磐数信息科技有限公司 | 端到端的企业级动态虚拟桌面交付方法 |
| TWI648637B (zh) * | 2017-11-30 | 2019-01-21 | 財團法人工業技術研究院 | 於平台部署與操作行動作業系統的系統及其方法 |
| CN108769135B (zh) * | 2018-05-07 | 2021-01-12 | 广州杰赛科技股份有限公司 | 云桌面连接方法、装置、设备及系统 |
| CN109032785B (zh) * | 2018-08-14 | 2022-04-01 | 北京交通大学 | 一种基于虚拟桌面的工作流程管控方法及系统 |
| CN110018873A (zh) * | 2019-03-31 | 2019-07-16 | 山东超越数控电子股份有限公司 | 一种基于fpga优化虚拟桌面传输的方法 |
| CN110336846B (zh) * | 2019-04-15 | 2020-12-08 | 长飞光纤光缆股份有限公司 | 一种基于spice协议的云桌面文件拖拽传输的方法 |
| CN112543112A (zh) * | 2019-09-23 | 2021-03-23 | 广东引视科技有限公司 | 一种云桌面智能管理系统 |
| CN110992751A (zh) * | 2019-11-29 | 2020-04-10 | 广州市粤联信息科技有限公司 | 一种云+端的虚拟课室构建及其媒体流广播方法 |
| CN111752717B (zh) * | 2020-07-08 | 2021-08-31 | 广州爱浦路网络技术有限公司 | Smf智能扩展方法和装置、smf会话建立的通信方法 |
| CN112052061A (zh) * | 2020-09-23 | 2020-12-08 | 深圳市哈哈丫丫互联网有限公司 | 一种通用快餐式“云桌面”设计方案 |
| CN112615810B (zh) * | 2020-11-17 | 2022-08-30 | 新华三技术有限公司 | 一种访问控制方法及装置 |
| CN115051993A (zh) * | 2022-06-01 | 2022-09-13 | 上海弘积信息科技有限公司 | 一种基于mc集中管理系统的业务虚拟机弹性伸缩方法 |
| CN115879065A (zh) * | 2022-11-03 | 2023-03-31 | 宝钢工程技术集团有限公司 | 一种基于web技术的软件使用权限管理机制 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1819011A (zh) * | 2004-08-12 | 2006-08-16 | Ati科技公司 | 显示屏分区再现的装置和方法 |
| CN101231731A (zh) * | 2007-01-25 | 2008-07-30 | 运软网络科技(上海)有限公司 | 一种应用虚拟化在公网上的通用商务方法及其迷你服务器 |
| CN101317176A (zh) * | 2005-11-29 | 2008-12-03 | 泰普有限公司 | 利用后台处理在移动设备浏览器上显示搜索结果 |
| CN101754466A (zh) * | 2008-12-10 | 2010-06-23 | 运软网络科技(上海)有限公司 | 移动虚拟化的基础设施以及基础平台 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050094663A1 (en) * | 2003-11-05 | 2005-05-05 | Interdigital Technology Corporation | Method and system for providing intelligent remote access to wireless transmit/receive units |
-
2011
- 2011-02-11 CN CN201110036438.1A patent/CN102638475B/zh not_active Expired - Fee Related
-
2012
- 2012-02-10 WO PCT/CN2012/000159 patent/WO2012106980A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1819011A (zh) * | 2004-08-12 | 2006-08-16 | Ati科技公司 | 显示屏分区再现的装置和方法 |
| CN101317176A (zh) * | 2005-11-29 | 2008-12-03 | 泰普有限公司 | 利用后台处理在移动设备浏览器上显示搜索结果 |
| CN101231731A (zh) * | 2007-01-25 | 2008-07-30 | 运软网络科技(上海)有限公司 | 一种应用虚拟化在公网上的通用商务方法及其迷你服务器 |
| CN101754466A (zh) * | 2008-12-10 | 2010-06-23 | 运软网络科技(上海)有限公司 | 移动虚拟化的基础设施以及基础平台 |
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9846586B2 (en) | 2012-09-29 | 2017-12-19 | International Business Machines Corporation | Creating a virtual machine and cloud server |
| CN105407115A (zh) * | 2014-09-03 | 2016-03-16 | 中国石油化工股份有限公司 | 一种基于vnc调度的负载均衡方法及其系统 |
| CN107959824A (zh) * | 2017-10-31 | 2018-04-24 | 深信服科技股份有限公司 | 一种监控视频处理方法、物理服务器及存储介质 |
| CN110738034A (zh) * | 2018-07-20 | 2020-01-31 | 中兴通讯股份有限公司 | 教学模板管理方法、设备以及计算机可读存储介质 |
| CN109195177B (zh) * | 2018-09-14 | 2021-11-19 | 国云科技股份有限公司 | 基于ActiveMQ的基站手机停留时间实时统计方法 |
| CN109195177A (zh) * | 2018-09-14 | 2019-01-11 | 国云科技股份有限公司 | 基于ActiveMQ的基站手机停留时间实时统计方法 |
| CN110740352A (zh) * | 2019-11-14 | 2020-01-31 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示方法 |
| CN110868614A (zh) * | 2019-11-14 | 2020-03-06 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示系统 |
| CN110740352B (zh) * | 2019-11-14 | 2021-07-20 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示方法 |
| CN110868614B (zh) * | 2019-11-14 | 2021-09-28 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示系统 |
| CN114692120A (zh) * | 2020-12-30 | 2022-07-01 | 成都鼎桥通信技术有限公司 | 国密认证方法、虚拟机、终端设备、系统及存储介质 |
| WO2023019736A1 (zh) * | 2021-08-20 | 2023-02-23 | 苏州浪潮智能科技有限公司 | 基于云主机的qga服务管理方法、装置、设备及介质 |
| CN114461157A (zh) * | 2021-12-23 | 2022-05-10 | 天翼云科技有限公司 | 一种idv客户端多屏分治方法及系统 |
| CN114461157B (zh) * | 2021-12-23 | 2023-11-03 | 天翼云科技有限公司 | 一种idv客户端多屏分治方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102638475B (zh) | 2014-12-10 |
| CN102638475A (zh) | 2012-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102638475B (zh) | 多维智能服务点虚拟桌面方法及基础架构 | |
| US10375170B2 (en) | Low downtime software-defined wide area network service upgrade | |
| US20220255912A1 (en) | Secure Device Notifications From Remote Applications | |
| US8010679B2 (en) | Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session | |
| US10645172B1 (en) | Socket tunneling connections in a service provider environment | |
| EP2375328A2 (en) | Methods and Systems for Providing Access to a Computing Environment | |
| US20120331300A1 (en) | Span Out Load Balancing Model | |
| US11722461B2 (en) | Connecting client devices to anonymous sessions via helpers | |
| CN101188624A (zh) | 基于虚拟机的网格中间件系统 | |
| WO2007100942A2 (en) | Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session | |
| US11122019B2 (en) | Systems and methods for client collaborated migration of live TLS connection | |
| US20200004606A1 (en) | Real-Time File System Event Mapping To Cloud Events | |
| US20240020357A1 (en) | Keyless licensing in a multi-cloud computing system | |
| US20260111251A1 (en) | System and Method for Managing Cloud Resources Through a Local Management Endpoint | |
| EP4625877A1 (en) | Enterprise authentication with virtualized tpm | |
| CN117763529A (zh) | 一种实现云桌面与云应用融合管理的方法 | |
| Malta et al. | An Authentication Broker for Virtual Laboratories | |
| HK1162707A (zh) | 用於提供对计算环境的访问的方法和系统 |
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: 12744748 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: 12744748 Country of ref document: EP Kind code of ref document: A1 |