Remote desktop processing method and system

By blocking the user process when the user logs into the cloud desktop until the data is successfully mounted, the problem of user process failure due to data access is solved, ensuring the normal execution of the login process and improving the user experience.

CN116339889BActive Publication Date: 2025-10-21ALIBABA (CHINA) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310216267.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-02
Publication Date
2025-10-21
Estimated Expiration
2043-03-02

AI Technical Summary

Technical Problem

When a user logs in to the cloud desktop, the delay between receiving the login request and completing the login causes the user process to generate errors due to failure to access user data, affecting the user experience.

Method used

In response to a user login request, the user process is identified and its execution is blocked until the user data is successfully mounted to the remote desktop and then the block is canceled to ensure that the user process can access the data normally.

Benefits of technology

Ensure the normal progress of the user login process, avoid remote desktop errors, and improve user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116339889B_ABST
    Figure CN116339889B_ABST
Patent Text Reader

Abstract

The embodiment of the present specification provides a remote desktop processing method and system, wherein the remote desktop processing method comprises: in response to receiving a login request of a user logging into a remote desktop, determining a user process corresponding to the user and blocking the user process; in response to receiving a logged-in message, mounting user data of the user to the remote desktop, the logged-in message being used to indicate that the user has logged in; in the case that the user data of the user is successfully mounted to the remote desktop, unblocking the user process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this specification relate to the field of computer technology, and in particular to a remote desktop processing method. Background Art

[0002] With the rapid development of cloud computing, users can centralize their applications and data in the cloud and remotely log in to the cloud desktop for study, work, games, etc., which breaks the traditional way of using computers. Users are increasingly identifying with working in the cloud or remotely.

[0003] However, currently when users log in to the cloud desktop, some user processes may have errors due to failure to access user data. Therefore, a remote desktop processing solution is urgently needed to reduce cloud desktop errors. Summary of the Invention

[0004] In view of this, embodiments of this specification provide a remote desktop processing method. One or more embodiments of this specification also relate to a remote desktop processing system, a computing device, a computer-readable storage medium, and a computer program to address technical deficiencies in the prior art.

[0005] According to a first aspect of an embodiment of the present specification, a remote desktop processing method is provided, comprising: in response to receiving a login request from a user to log in to a remote desktop, determining a user process corresponding to the user and blocking the user process; in response to receiving a logged-in message, mounting user data of the user to the remote desktop, the logged-in message being used to indicate that the user has logged in; and unblocking the user process if the user data of the user is successfully mounted to the remote desktop.

[0006] According to a second aspect of the embodiments of this specification, a remote desktop processing system is provided, comprising: a client and a server to which the remote desktop processing method described in any embodiment of this specification is applied; the client is configured to send a login request for a user to log in to a cloud desktop to the server.

[0007] According to a third aspect of an embodiment of this specification, a computing device is provided, comprising: a memory and a processor; the memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions, which, when executed by the processor, implement the steps of the above-mentioned remote desktop processing method.

[0008] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores computer-executable instructions. When the instructions are executed by a processor, the steps of the above-mentioned remote desktop processing method are implemented.

[0009] According to a fifth aspect of the embodiments of this specification, a computer program is provided, wherein when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned remote desktop processing method.

[0010] One embodiment of the present specification implements a remote desktop processing method. This method addresses the problem of a delay between receiving a user login request and completing the login, which causes some user processes to generate errors due to failure to access user data. In response to receiving a login request from a user to log in to a remote desktop, the method determines the user process corresponding to the user and blocks the user process. In response to receiving a logged-in message, the method mounts the user data of the user to the remote desktop. If the user data of the user is successfully mounted to the remote desktop, the method unblocks the user process. That is, after receiving a message that the user has completed the login, the method processes the remote mounting of some user data, such as user configuration management, and other preparatory work. Then, the method releases the user process. Since the user process can now access the user data normally, the user login process can be ensured to proceed normally, the correct execution of the user process can be ensured, errors in the remote desktop can be avoided, and the user experience is improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1a This is a schematic diagram of an application scenario of a remote desktop processing method provided by an embodiment of this specification;

[0012] Figure 1b This is a schematic diagram of an application scenario of a remote desktop processing method provided by another embodiment of this specification;

[0013] Figure 2 This is a flowchart of a remote desktop processing method provided by one embodiment of this specification;

[0014] Figure 3 This is a flowchart of a remote desktop processing method provided by one embodiment of this specification;

[0015] Figure 4 This is a schematic diagram of the structure of a remote desktop processing device provided by one embodiment of this specification;

[0016] Figure 5 This is a schematic diagram of the structure of a remote desktop processing system provided by one embodiment of this specification;

[0017] Figure 6 This is a structural block diagram of a computing device provided by one embodiment of this specification. DETAILED DESCRIPTION

[0018] The following description sets forth many specific details to facilitate a thorough understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the scope of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.

[0019] The terms used in one or more embodiments of this specification are for the purpose of describing specific embodiments only and are not intended to limit one or more embodiments of this specification. The singular forms "a," "the," and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.

[0020] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0021] First, the terms involved in one or more embodiments of this specification are explained.

[0022] UPM (User Profile Management) centrally manages user profiles. It mounts the user profile to the VDA (Virtual Digital Assistant) upon login and copies the profile back to storage upon logout, optimizing the user experience. For example, the cloud server operating system can create a user profile upon the user's first login. Upon subsequent logins, the user profile is loaded, and other system components configure the user environment based on the information in the profile.

[0023] Session is an object stored on the server side, which is used to store user information of the client accessing the server (other information can also be stored), thereby maintaining the user session status.

[0024] User processes are user-created processes that run in user mode. After a user logs in to a remote desktop, in addition to system processes like system services and drivers, other applications (such as social media apps, browsers, development and design software, and games) are generally user processes.

[0025] With the rapid development of cloud computing, users can centralize their applications and data in the cloud and remotely log in to cloud desktops for learning, work, gaming, and more. This has revolutionized traditional computer usage, and users are increasingly comfortable with working in the cloud or remotely. When a user logs in to a cloud desktop, the system mounts some user data managed by the user profile, such as the Start menu, taskbar icon display, browser bookmarks and history, application initialization settings, and files on the cloud desktop. However, there is a delay between receiving a user login request and completing the login, causing some user processes to experience errors due to failed access to user data.

[0026] In order to solve the above problems, an embodiment of this specification provides a remote desktop processing method. In response to receiving a login request from a user to log in to a remote desktop, the method determines the user process corresponding to the user and blocks the user process. In response to receiving a logged-in message, the method mounts the user data of the user to the remote desktop. When the user data of the user is successfully mounted to the remote desktop, the blocking of the user process is canceled. That is, after receiving a message that the user has completed the login, the method processes the remote mounting of some user data of the user configuration management and other preparatory work, and then releases the user process. Since the user process can access the user data normally at this time, it can ensure that the user login process proceeds normally, ensure the correct execution of the user process, avoid errors in the remote desktop, and improve the user experience.

[0027] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this manual are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0028] This specification provides a remote desktop processing method. This specification also relates to a remote desktop processing device, a remote desktop processing system, a computing device, a computer-readable storage medium, and a computer program, which are described in detail one by one in the following embodiments.

[0029] See also Figure 1a , Figure 1aFIG2 shows a schematic diagram of an application scenario of a remote desktop processing method provided according to an embodiment of this specification. Figure 1a As shown, the application scenario includes: a client 100 and a server 200. In the cloud desktop application scenario, the user uses the client 100 to interact with the server 200, so that the client 100 receives the cloud desktop sent by the server 200 and displays the graphical user interface of the cloud desktop, so that the user can use the client 100 to log in to the cloud desktop and use the cloud desktop for remote office, learning, games, etc. Specifically, according to the method provided in the embodiment of this specification, the server 200 responds to receiving a login request from a user to log in to the remote desktop, determines the user process corresponding to the user and blocks the user process. At the same time, the user login program of the cloud desktop executes the corresponding login process to process the user login, and returns a logged-in message indicating that the user has logged in when the user logs in to the session; accordingly, the server 200 mounts the user data of the user to the remote desktop in response to the logged-in message, and cancels the blocking of the user process when the user data of the user is successfully mounted to the remote desktop. Since the user process can access the user data normally at this time, it can ensure that the user login process proceeds normally, ensure the correct execution of the user process, avoid errors in the cloud desktop, and improve the user experience.

[0030] See also Figure 1b , Figure 1b FIG. 1 shows an application scenario diagram of a remote desktop processing method provided according to another embodiment of this specification. Figure 1b As shown, in some cloud desktop application scenarios, the user uses the client 100 to send a login request for the user to log in to the cloud desktop to the cloud management terminal 300. Therefore, these application scenarios also include: cloud management terminal 300. The cloud management terminal 300 is configured to manage the storage location of the user data of the user, receive the login request sent by the client, find the server corresponding to the login request from one or more of the server terminals, and send the storage location of the user data of the user and the login request to the server corresponding to the login request. Correspondingly, the server 200 is also configured to respond to the login request received from the cloud management terminal, establish a connection with the client according to the login request, and execute the user login program for the user. After the user login program completes the login process for the user and the user successfully logs in, it returns a logged-in message. The user can use this cloud desktop for remote office, study, games, etc. After receiving the login request, the server 200 first blocks the user process, loads the user data after receiving the logged-in message, and releases the user process after the user data is successfully loaded. The specific implementation method is the same as above. Figure 1a The processing process of the application scenario shown is similar and will not be described in detail here.

[0031] exist Figure 1b In the application scenario shown, the cloud management terminal 300 can set some conditions and / or policies according to the needs of the application scenario to find the server 200 of the cloud desktop corresponding to the client's login request, and send the login request and the storage location of the user data that needs to be mounted to the server 200. For example, the storage location can be a storage disk managed by the cloud management terminal 300. In addition, after the server 200 is connected to the client 100, the management module of the cloud desktop in the server 200 can report the connection information to the cloud management terminal on demand or continuously, so that the cloud management terminal provides security capabilities. Since the server 200 is flexibly scheduled for the client by the cloud management terminal 300, and the user data is separated from the cloud desktop, the user data can be mounted on any cloud desktop available on the server to complete the login, which is not limited by the resources of a single desktop, the service is more stable, and the user experience is better.

[0032] The connections between the client 100 and the server 200, between the client 100 and the cloud management terminal 300, and between the cloud management terminal 300 and the server 200 are all established through a network. The network provides the medium for the communication link between these entities. The network can include various connection types, such as wired or wireless communication links or fiber optic cables. The data transmitted by the client 100 may need to be encoded, transcoded, compressed, and other processing before being released to the server 200.

[0033] The client 100 can run a browser, an APP (Application), or a web application such as an H5 (HyperText Markup Language 5, Hypertext Markup Language 5) application, a light application (also known as a mini-program, a lightweight application), or a cloud application. The client 100 can be based on the software development kit (SDK) of the corresponding service provided by the server, such as developed based on the real-time communication (RTC) SDK. The client 100 can be deployed in an electronic device and needs to rely on the device to run or certain APPs in the device to run. For example, the electronic device can have a display screen and support information browsing, such as a personal mobile terminal such as a mobile phone, a tablet computer, a personal computer, etc. Various other types of applications can also be configured in the electronic device, such as human-computer dialogue applications, model training applications, text processing applications, web browser applications, shopping applications, search applications, instant messaging tools, email clients, social platform software, etc.

[0034] The server 200 and the management end 300 may include servers that provide various services, such as servers that provide communication services to multiple clients, servers that provide background training to support models used on the clients, and servers that process data sent by the clients. It should be noted that the server 200 and the management end 300 can be implemented as a distributed server cluster consisting of multiple servers, or as a single server. The server can also be a server in a distributed system, or a server that is combined with a blockchain. The server can also be a cloud server for basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms, or an intelligent cloud computing server or intelligent cloud host with artificial intelligence technology.

[0035] It is worth noting that the remote desktop processing methods provided in the embodiments of this specification are generally executed by the server. However, in some embodiments, the client may also have similar functions to the server, thereby executing the remote desktop processing methods provided in the embodiments of this specification. For example, a user may use a client running on a personal device to send a login request to a client running on another person's device to log in to the remote desktop. According to the methods provided in the embodiments of this specification, the client running on the other person's device may, in response to receiving the user's login request to log in to the remote desktop, determine the user process corresponding to the user and block the user process. In response to receiving a login message, the client may mount the user data of the user to the remote desktop. If the user data of the user is successfully mounted to the remote desktop, the client may unblock the user process.

[0036] See also Figure 2 , Figure 2 A flowchart of a remote desktop processing method provided by an embodiment of this specification is shown, which specifically includes the following steps:

[0037] Step 202: In response to receiving a login request from a user to log into a remote desktop, determining a user process corresponding to the user and blocking the user process.

[0038] Remote desktop is a mode of remotely operating a computer, which is used to visually access the desktop environment of a remote computer. For example, a user can manage a remote computer server on the client. A remote desktop can be a cloud desktop or a remote personal desktop. A cloud desktop refers to a situation in which the desktop of a cloud server is streamed to the client in the form of a video stream in a cloud network, and the keyboard and mouse operations on the client can be responded to by the streamed desktop. The desktop on such a cloud server is called a cloud desktop. A personal desktop refers to the desktop of a personal device. According to the method provided in the embodiments of this specification, a client's personal desktop can be streamed to other clients in the form of a video stream, and the keyboard and mouse operations on the other clients can be responded to by the streamed personal desktop. Desktop refers to the graphical user interface of the main screen of the operating system.

[0039] In the method provided in the embodiments of this specification, the implementation method for determining the user process corresponding to the user is not limited, and the user process can be determined by using the session identifier of the user's session, any one or more key information in the user identity information. For example, when the operating system receives a login request, it will assign an unoccupied Session Id (session identifier) ​​to the user in a certain way, such as in the order of natural numbers. When the user process of the user is created, the information about the creation of the user process will be recorded in the user's session. Therefore, the user's session identifier can be used to determine the user's session, and then monitor the creation of the user process in the user's session, and then block the user process. For example, assuming that the operating system assigns a natural number 2 to the user's session, then the session identifier corresponding to the user on the operating system is session 2, and the creation of the user process in the session marked as session 2 is monitored. When the creation of the user process is monitored, the user process can be blocked.

[0040] Blocking a user process means preventing the user process from continuing to execute, placing it in a suspended state. It should be noted that blocking a user process can be achieved by preventing the creation of the user process, or by preventing the execution of the user process after it has been created. As long as the purpose of temporarily preventing the user process from executing is achieved, the methods provided in the embodiments of this specification are not limited to this.

[0041] Step 204: In response to receiving a logged-in message, the user data of the user is mounted to the remote desktop, where the logged-in message is used to indicate that the user has logged in.

[0042] The logged-in message is a message used to indicate that the user has logged in. For example, the user login program in the operating system, which manages user logins and logouts, processes the login process after receiving a user's login request. If the user successfully logs in, the logged-in message is issued. For example, in some operating systems, the logged-in message is named "session logon." For example, in some operating systems, the logged-in message can be a value in a custom class (such as a class used to notify the reason for a session change). When a user logs in, the logged-in message is issued to notify the system service and complete the session establishment.

[0043] Since receiving the logged-in message indicates that the user has successfully logged in, the UPM remote mounting and a series of preparatory tasks can be processed, and the user process can be released to allow the user process to access the UPM data normally, ensuring the normal login process of the user. Therefore, the remote desktop processing method provided in the embodiments of this specification can mount the user data of the user to the remote desktop in response to receiving the logged-in message.

[0044] The user data mainly includes some personal data that the remote desktop needs when the user uses it, for example, personal archive files, application configurations, etc. Before the user data is mounted to the remote desktop, its storage location is not limited. For example, the user data can be stored in a shared storage in the cloud or locally on the cloud server. When the user data needs to be mounted to the remote desktop, the storage location where the user data is located can be mounted to the remote desktop, so that the remote desktop can access the user data in the storage location.

[0045] Step 206: When the user data of the user is successfully mounted to the remote desktop, unblocking the user process.

[0046] Unblocking the user process means releasing the user process, allowing it to continue executing and remain in an execution state. It should be noted that unblocking the user process can be achieved by releasing the creation of the user process or by releasing the execution of the user process. The specific method used depends on the specific method of blocking the user process, and the methods provided in the embodiments of this specification are not limited to this.

[0047] For example, blocked user processes can generally be queued in one queue, or, depending on certain states, can be queued in multiple queues. User processes in the queues are identified by user identity information. Therefore, if the user data of the user is successfully mounted to the remote desktop, the corresponding user process can be found in these queues based on the user identity information and released.

[0048] The method addresses the problem that there is a delay between receiving a user login request and completing the login, which causes some user processes to generate errors due to failure to access user data. In response to receiving a login request from a user to log in to a remote desktop, the method determines the user process corresponding to the user and blocks the user process. In response to receiving a logged-in message, the method mounts the user data of the user to the remote desktop. When the user data of the user is successfully mounted to the remote desktop, the blocking of the user process is unblocked. That is, after receiving a message that the user has completed the login, the method processes the remote mounting of some user data such as user configuration management and other preparatory work, and then releases the user process. Since the user process can now access the user data normally, the user login process can be ensured to proceed normally, the correct execution of the user process can be ensured, errors in the remote desktop can be avoided, and the user experience is improved.

[0049] It should be noted that since the user login program in the operating system is an internal program of the system, it generally does not disclose an interface to allow third-party custom services to interact with the user login program. It is difficult for third-party services to obtain communication messages within the user login program. Therefore, the method provided in one or more embodiments of this specification bypasses the modification of the login process within the user login program and uses public communication messages, such as the user's login request, the user's session identifier, and other information to achieve blocking of the user process. Specifically, in one or more embodiments of this specification, in response to receiving a login request from a user to log in to a remote desktop, determining the user process corresponding to the user and blocking the user process includes:

[0050] In response to receiving a login request from a user to log in to a remote desktop, obtaining a session identifier assigned to the user by an operating system;

[0051] Using the session identifier, monitoring the creation of a user process in the session corresponding to the session identifier;

[0052] In response to detecting creation of a user process in the session, the user process is blocked.

[0053] For example, a callback function can be registered in a user configuration management driver (also known as a UPM driver) running in kernel mode. When a user process is created, the UPM driver detects it and uses kernel wait events to block the user process until the user data is loaded and the process is released. A callback function is called via a function pointer. A callback function is not directly called by the function's implementer, but rather by another party when a specific event or condition occurs, to respond to that event or condition. In this embodiment, the user configuration management service (also known as the UPM service) receives a login request from a user logging into a remote desktop, obtains the session identifier assigned to the user by the operating system, and sends the session identifier to the UPM driver. The UPM driver has a built-in callback function that uses the session identifier to monitor the creation of user processes. Upon detecting the creation of a user process, the callback function blocks the user process using kernel wait events. The UPM service is a system service launched within the operating system where the remote desktop resides. A network communication module and a driver communication module can be configured within the service to exchange messages. In addition, the UPM driver running in the kernel state can be set as a part of the UPM service, or can be set independently, which is not limited in the embodiments of this specification.

[0054] In this embodiment, by obtaining the user's session identifier to monitor the creation of the user process in the session corresponding to the session identifier, it is possible to block the user process launched by the session and adopt a more reasonable time to load user data. While achieving the purpose of reducing errors in the remote desktop, there is no need to modify the execution logic of the program inside the operating system, making the application more convenient and quick, and improving the overall continuous availability of the system.

[0055] Similar to the implementation principle of the above-mentioned embodiment, the method provided in one or more embodiments of this specification bypasses the modification of the internal login process of the user login program, and uses the logged-in message sent by the user login program inside the operating system to select the mounting time of the user data. Moreover, considering that there may be multiple users on the remote desktop at the same time, this embodiment can also obtain user identity information to determine which user data to obtain, thereby supporting multi-user scenarios of the remote desktop. Specifically, in one or more embodiments of this specification, in one or more embodiments of this specification, in response to receiving the logged-in message, mounting the user data of the user to the remote desktop includes:

[0056] In response to receiving the logged-in message, obtaining user identity information corresponding to the logged-in message;

[0057] The user identity information is used to search for user data corresponding to the user identity information from user data of one or more users corresponding to the remote desktop, and the user data corresponding to the user identity information is mounted to the remote desktop.

[0058] The user identity information is sent along with the user's login request to the remote desktop, and includes, for example, a username, and is used to identify the user. Accordingly, the logged-in message also carries this user identity information to indicate the currently logged-in user. In scenarios where the remote desktop supports multiple users, multiple users may exist simultaneously on the remote desktop. Obtaining this user identity information can help determine which user data to mount.

[0059] For example, a callback function can be registered in the user configuration management service (also known as the UPM service). When this callback function detects a login message, it reports the corresponding user identity information to the remote desktop management module, allowing the management module to find the storage location of the corresponding user data and return it to the UPM service, which then mounts the user data. In addition, the UPM service can also synchronize remote desktop status information and other processing. When these preparatory tasks are completed and the user data is mounted, the corresponding user process is released. For example, in an application scenario where a cloud management terminal dispatches a cloud desktop server to a client, after the client and the server establish a connection, the cloud desktop management module on the server can report connection information to the cloud management terminal on demand or continuously, thereby providing security capabilities. The cloud desktop management module on the server can obtain the storage location of user data from the cloud management terminal. The cloud management terminal can be used to manage user data for users across the entire cloud. It should be noted that a server can provide cloud desktop services to multiple users. Therefore, the cloud desktop management module on the server can store storage location information for user data of multiple users.

[0060] In this embodiment, user identity information is obtained by obtaining a logged-in message, corresponding user data is found, and user data is loaded based on the timing of receiving the logged-in message, thereby achieving the purpose of reducing remote desktop errors while eliminating the need to modify the execution logic of programs within the operating system. The application is more convenient and quick, improving the overall continuous availability of the system and supporting multi-user scenarios.

[0061] In addition, in a scenario supporting multiple users, in one or more embodiments of this specification, taking into account that the logged-in message will carry user identity information, and the method provided in the embodiments of this specification needs to release the user process based on the receipt of the logged-in message, therefore, when blocking the user process, the blocked user process can be matched with the user identity information, so that when the logged-in message is received, the corresponding user process can be directly found from the multiple blocked user processes based on the user identity information carried by the message and released. Specifically, when the user data of the user is successfully mounted to the remote desktop, unblocking the user process includes:

[0062] Obtaining user identity information corresponding to the logged-in message;

[0063] When the user data of the user is successfully mounted to the remote desktop, the user identity information is used to unblock the user process corresponding to the user identity information from one or more blocked user processes.

[0064] For example, when the UPM driver blocks a user process, it sets a custom flag corresponding to the user's identity information, indicating that the user process is blocked. When the UPM service successfully mounts the user data, it modifies the flag based on the user's identity information, indicating that the data has been loaded. This modified flag can be considered a mount completion message sent by the User Configuration Management Service to the User Configuration Management driver. The UPM driver continuously polls this custom flag and releases the corresponding user process when it detects a change.

[0065] The following describes in detail a process flow of the remote desktop processing method incorporating the aforementioned multiple embodiments. In this embodiment, in response to receiving a login request from a user to log in to a remote desktop, determining a user process corresponding to the user and blocking the user process includes:

[0066] In response to receiving a login request from a user to log into a remote desktop, the user configuration management service obtains a session identifier assigned to the user by the operating system;

[0067] The user configuration management service sends the session identifier to the user configuration management driver running in kernel state;

[0068] The user configuration management driver uses the session identifier to monitor the creation of a user process by the session corresponding to the session identifier, and blocks the user process in response to monitoring the creation of the user process by the session;

[0069] The step of mounting the user data of the user to the remote desktop in response to receiving the logged-in message comprises:

[0070] The user configuration management service mounts the user data of the user to the remote desktop in response to receiving a logged-in message from the user login program;

[0071] When the user data of the user is successfully mounted to the remote desktop, unblocking the user process includes:

[0072] When the user data of the user is successfully mounted to the remote desktop, the user configuration management service sends a mounting completion message to the user configuration management driver;

[0073] The user configuration management driver searches for the user process corresponding to the user identity information from one or more blocked user processes based on the user identity information corresponding to the mount completion message, and unblocks the user process corresponding to the user identity information.

[0074] In the above embodiment, the user configuration management service cooperates with the user configuration management driver running in the kernel state. When receiving a login request, it blocks the user process that is about to be launched. After receiving the login message, it processes the UPM remote mounting and a series of preparatory work, and then releases the user process, so that the user process can access the UPM data normally, ensuring that the user login process proceeds normally.

[0075] In addition, considering that in some application scenarios, the remote desktop manages the storage location of user data through its own management module, in this case, in one or more embodiments of this specification, the method further includes:

[0076] The remote desktop management module, in response to receiving a login request from a user to log in to the remote desktop, sends the login request to the user configuration management service;

[0077] In response to receiving the logged-in message, the user configuration management service sends the user identity information carried in the logged-in message to the management module, so that the management module finds the user data of the user based on the user identity information and sends the storage location of the user data to the user configuration management service.

[0078] In the above embodiment, the remote desktop's own management module is used to obtain the storage location of the user data, so that the storage location of the user data can be mounted to the cloud desktop at a time selected according to the method provided in the embodiment of this specification. There is no need to modify the remote desktop's own user data management method, which makes the application more convenient and quick, improves the overall continuous availability of the system, and supports multi-user scenarios.

[0079] Below, combined with the attached Figure 3, the processing process of the above embodiment applied to the cloud desktop is described in detail. Specifically, Figure 3 The flowchart of the remote desktop processing method provided in the above embodiment of this specification is shown, which specifically includes the following steps.

[0080] Step 302: The client sends a login request for the user to log in to the remote desktop to the cloud desktop.

[0081] Step 304: The cloud desktop management module sends the login request to the UPM service.

[0082] Step 306: In response to receiving the login request, the UPM service obtains the session identifier allocated to the user by the operating system.

[0083] Step 308: The UPM service sends the session identifier to the UPM driver.

[0084] Step 310: The UPM driver uses the session identifier to monitor the creation of a user process by the session corresponding to the session identifier, and blocks the user process in response to monitoring the creation of the user process by the session.

[0085] Correspondingly, the user login program of the cloud desktop processes the login process according to the login request, and sends a login message when the login is completed.

[0086] Step 312: In response to receiving the user login message from the user login program, the UPM service mounts the user data of the user to the cloud desktop.

[0087] Step 314: When the user data of the user is successfully mounted to the remote desktop, the UPM service sends a mount completion message to the UPM driver.

[0088] Step 316: The UPM driver searches for the user process corresponding to the user identity information corresponding to the mount completion message from one or more blocked user processes, releases the corresponding user process, and starts the user process.

[0089] Step 318: The cloud desktop returns a login success message to the client.

[0090] By applying the solution of this embodiment, the user configuration management service cooperates with the user configuration management driver running in the kernel state. When receiving a login request from a user to log in to the cloud desktop, the user process that is about to be launched is blocked. After receiving the login message, the UPM remote mounting and a series of preparatory work are processed, and then the user process is released, so that the user process can access the UPM data normally, ensuring that the entire process of user login to the cloud desktop is carried out correctly and avoiding errors.

[0091] Corresponding to the above method embodiment, this specification also provides a remote desktop processing device embodiment, Figure 4 FIG1 shows a schematic diagram of the structure of a remote desktop processing device provided by an embodiment of this specification. Figure 4 As shown, the device includes:

[0092] The process blocking module 420 may be configured to, in response to receiving a login request from a user to log in to a remote desktop, determine a user process corresponding to the user and block the user process;

[0093] The data mounting module 440 may be configured to mount the user data of the user to the remote desktop in response to receiving a logged-in message, wherein the logged-in message is used to indicate that the user has logged in;

[0094] The process release module 460 may be configured to unblock the user process when the user data of the user is successfully mounted to the remote desktop.

[0095] In one or more embodiments of this specification, the process blocking module includes:

[0096] A session identifier acquisition submodule is configured to, in response to receiving a login request from a user to log in to a remote desktop, acquire a session identifier assigned by the operating system to the user;

[0097] a process creation monitoring submodule, configured to monitor the creation of a user process in the session corresponding to the session identifier using the session identifier;

[0098] The blocking execution submodule is configured to block the user process in response to detecting the creation of the user process in the session.

[0099] In one or more embodiments of this specification, the data mounting module includes:

[0100] an identity acquisition submodule, configured to, in response to receiving a logged-in message, acquire user identity information corresponding to the logged-in message;

[0101] The mount execution submodule is configured to use the user identity information to find the user data corresponding to the user identity information from the user data of one or more users corresponding to the remote desktop, and mount the user data corresponding to the user identity information to the remote desktop.

[0102] In one or more embodiments of this specification, the process release module includes:

[0103] An identity acquisition submodule, configured to obtain user identity information corresponding to the logged-in message;

[0104] The release execution submodule is configured to use the user identity information to cancel the blocking of the user process corresponding to the user identity information from one or more blocked user processes when the user data of the user is successfully mounted to the remote desktop.

[0105] In one or more embodiments of this specification, the process blocking module includes:

[0106] The UPM service submodule is configured to, in response to receiving a login request from a user to log in to a remote desktop, obtain a session identifier assigned to the user by the operating system, and send the session identifier to the UPM driver submodule running in the kernel state;

[0107] The UPM driver submodule is configured to use the session identifier to monitor the creation of a user process by the session corresponding to the session identifier, and block the user process in response to monitoring the creation of the user process by the session.

[0108] In one or more embodiments of the present specification, the UPM service submodule is further configured to, in response to receiving a logged-in message from the user login program, mount the user data of the user to the remote desktop, and, if the user data of the user is successfully mounted to the remote desktop, send a mount completion message to the UPM driver submodule. The UPM driver submodule is further configured to, based on the user identity information corresponding to the mount completion message, find the user process corresponding to the user identity information from one or more blocked user processes, and unblock the user process corresponding to the user identity information.

[0109] In one or more embodiments of the present specification, the apparatus further includes: a management module configured to, in response to receiving a user login request for logging into a remote desktop, send the login request to the UPM service submodule. The UPM service submodule is further configured to, in response to receiving a login message, send user identity information carried in the login message to the management module, so that the management module can retrieve the user data of the user based on the user identity information.

[0110] The above is a schematic diagram of a remote desktop processing device according to this embodiment. It should be noted that the technical solution of this remote desktop processing device and the technical solution of the remote desktop processing method described above share the same concept. For details not described in detail in the technical solution of the remote desktop processing device, please refer to the description of the technical solution of the remote desktop processing method described above.

[0111] Corresponding to the above method embodiment, this specification also provides a remote desktop processing system embodiment, Figure 5FIG. 1 shows a schematic diagram of the structure of a remote desktop processing system provided by an embodiment of this specification. Figure 5 As shown, the system includes: a client 520 and a server 540 to which the remote desktop processing method described in any embodiment of this specification is applied.

[0112] The client 520 is configured to send a login request for the user to log in to the cloud desktop to the server.

[0113] In one or more embodiments of the present specification, the remote desktop processing system may further include: a cloud management terminal, configured to manage the storage location of the user data of the user, receive the login request sent by the client, find the server corresponding to the login request from one or more of the server terminals, and send the storage location of the user data of the user and the login request to the server corresponding to the login request.

[0114] The server 540 is further configured to, in response to receiving the login request from the cloud management end, establish a connection with the client according to the login request and execute a user login procedure for the user.

[0115] For example, the cloud management end can set some conditions and / or policies according to the needs of the application scenario to find the server end of the cloud desktop corresponding to the client's login request, and send the login request and the storage location of the user data that needs to be mounted to the server end. For example, the storage location can be a storage disk managed by the cloud management end. In addition, after the server end and the client end establish a connection, the cloud desktop management module in the server end can report the connection information to the cloud management end on demand or continuously, so that the cloud management end can provide security capabilities. Since the server end is flexibly scheduled for the client end by the cloud management end, and the user data is separated from the cloud desktop, the user data can be mounted on any cloud desktop available on the server end to complete the login, which is not limited by the resources of a single desktop, the service is more stable, and the user experience is better.

[0116] The above is a schematic diagram of a remote desktop processing system according to this embodiment. It should be noted that the technical solution of this remote desktop processing system and the technical solution of the remote desktop processing method described above are based on the same concept. For details not described in detail in the technical solution of the remote desktop processing system, please refer to the description of the technical solution of the remote desktop processing method described above.

[0117] Figure 6 6 shows a block diagram of a computing device 600 according to one embodiment of the present disclosure. Components of the computing device 600 include, but are not limited to, a memory 610 and a processor 620. The processor 620 is connected to the memory 610 via a bus 630, and a database 650 is used to store data.

[0118] The computing device 600 also includes an access device 640 that enables the computing device 600 to communicate via one or more networks 660. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 640 may include one or more of any type of network interface, wired or wireless (e.g., a network interface card (NIC)), such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, and a Near Field Communication (NFC).

[0119] In one embodiment of the present specification, the above components of the computing device 600 and Figure 6 Other components not shown in the figure may also be connected to each other, for example, via a bus. Figure 6 The computing device structure block diagram shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art may add or replace other components as needed.

[0120] The computing device 600 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook computer, etc.), a mobile phone (e.g., a smartphone), a wearable computing device (e.g., a smartwatch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 600 may also be a mobile or stationary server.

[0121] The processor 620 is configured to execute the following computer-executable instructions, which implement the steps of the above-mentioned remote desktop processing method when executed by the processor.

[0122] The above is a schematic diagram of a computing device according to this embodiment. It should be noted that the technical solution of this computing device and the technical solution of the remote desktop processing method described above are based on the same concept. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the remote desktop processing method described above.

[0123] An embodiment of the present specification further provides a computer-readable storage medium storing computer-executable instructions. When the computer-executable instructions are executed by a processor, the steps of the remote desktop processing method described above are implemented.

[0124] The above is a schematic diagram of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium is based on the same concept as the technical solution of the remote desktop processing method described above. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the remote desktop processing method described above.

[0125] An embodiment of the present specification further provides a computer program, wherein when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned remote desktop processing method.

[0126] The above is an illustrative embodiment of a computer program. It should be noted that the technical solution of this computer program and the technical solution of the remote desktop processing method described above share the same concept. For details not described in detail in the technical solution of the computer program, please refer to the description of the technical solution of the remote desktop processing method described above.

[0127] The foregoing description of this specification describes specific embodiments. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or the sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0128] The computer instructions include computer program code, which may be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.

[0129] It should be noted that for the aforementioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of this specification are not limited by the order of the actions described, because according to the embodiments of this specification, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of this specification.

[0130] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0131] The preferred embodiments disclosed above are intended only to help illustrate this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific embodiments described. Obviously, many modifications and variations can be made based on the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.

Claims

1. A remote desktop processing method, comprising: In response to receiving a login request from a user to log in to a remote desktop, determining a user process corresponding to the user based on at least one of a session identifier and user identity information of the user session, and blocking the user process; wherein blocking the user process includes preventing creation or execution of the user process; In response to receiving a logged-in message, mounting the user data of the user to the remote desktop, wherein the logged-in message is used to indicate that the user has logged in; When the user data of the user is successfully mounted to the remote desktop, the blocking of the user process is canceled.

2. The method according to claim 1, wherein, in response to receiving a login request from a user to log in to a remote desktop, determining a user process corresponding to the user and blocking the user process comprises: In response to receiving a login request from a user to log in to a remote desktop, obtaining a session identifier assigned to the user by an operating system; Using the session identifier, monitoring the creation of a user process in the session corresponding to the session identifier; In response to detecting creation of a user process in the session, the user process is blocked.

3. The method according to claim 1, wherein in response to receiving the logged-in message, mounting the user data of the user to the remote desktop comprises: In response to receiving the logged-in message, obtaining user identity information corresponding to the logged-in message; The user identity information is used to search for user data corresponding to the user identity information from user data of one or more users corresponding to the remote desktop, and the user data corresponding to the user identity information is mounted to the remote desktop.

4. The method according to claim 1, wherein when the user data of the user is successfully mounted to the remote desktop, unblocking the user process comprises: Obtaining user identity information corresponding to the logged-in message; When the user data of the user is successfully mounted to the remote desktop, the user identity information is used to unblock the user process corresponding to the user identity information from one or more blocked user processes.

5. The method according to claim 1, wherein, in response to receiving a login request from a user to log in to a remote desktop, determining a user process corresponding to the user and blocking the user process comprises: In response to receiving a login request from a user to log into a remote desktop, the user configuration management service obtains a session identifier assigned to the user by the operating system; The user configuration management service sends the session identifier to the user configuration management driver running in kernel state; The user configuration management driver uses the session identifier to monitor the creation of a user process by the session corresponding to the session identifier, and blocks the user process in response to monitoring the creation of the user process by the session; The step of mounting the user data of the user to the remote desktop in response to receiving the logged-in message comprises: The user configuration management service mounts the user data of the user to the remote desktop in response to receiving a logged-in message from the user login program; When the user data of the user is successfully mounted to the remote desktop, unblocking the user process includes: When the user data of the user is successfully mounted to the remote desktop, the user configuration management service sends a mounting completion message to the user configuration management driver; The user configuration management driver searches for the user process corresponding to the user identity information from one or more blocked user processes based on the user identity information corresponding to the mount completion message, and unblocks the user process corresponding to the user identity information.

6. The method according to claim 5, further comprising: The remote desktop management module, in response to receiving a login request from a user to log in to the remote desktop, sends the login request to the user configuration management service; In response to receiving the logged-in message, the user configuration management service sends the user identity information carried in the logged-in message to the management module, so that the management module finds the user data of the user based on the user identity information and sends the storage location of the user data to the user configuration management service.

7. The method according to any one of claims 1 to 6, wherein the remote desktop is a cloud desktop of a cloud server.

8. A remote desktop processing system comprising: A client and a server applying the remote desktop processing method according to any one of claims 1 to 7; The client is configured to send a login request for a user to log in to the cloud desktop.

9. The system according to claim 8, further comprising: a cloud management terminal configured to manage the storage location of the user data of the user, receive the login request sent by the client, search for a server corresponding to the login request from one or more of the server terminals, and send the storage location of the user data of the user and the login request to the corresponding server terminal; The server is further configured to, in response to receiving the login request from the cloud management end, establish a connection with the client according to the login request and execute a user login procedure for the user.

10. A computing device comprising: memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the remote desktop processing method according to any one of claims 1 to 7 are implemented.

11. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the steps of the remote desktop processing method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • A login processing method and apparatus for a windows client program

    CN109213546A

  • Login protection method, client, central control management equipment and storage medium

    CN112398792A