Connection destination change system, connection destination change device, connection destination change method, and program
The dynamic connection destination system for remote desktop services addresses resource insufficiency and inefficiency by reallocating viewer and agent connections across multiple servers based on resource usage, enhancing performance and reducing costs.
Patent Information
- Application Number
- JP2022069964
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-04-21
- Publication Date
- 2025-04-30
- Estimated Expiration
- 2042-04-21
AI Technical Summary
Traditional remote desktop services face challenges with fixed servers, leading to resource insufficiency and inefficiency when handling large user groups, and scaling up is costly.
A system that dynamically changes the connection destination servers for remote desktop services based on resource usage, using a balancer to allocate and manage connections between viewer and agent terminals across multiple gateway servers.
This approach allows for efficient resource allocation and utilization, reducing costs and improving service performance by dynamically adjusting server connections based on real-time resource usage.
Smart Images

Figure 0007670412000001 
Figure 0007670412000002 
Figure 0007670412000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a connection destination changing system, a connection destination changing device, a connection destination changing method, and a program. [Background technology]
[0002] A technology called remote desktop has been known for some time (for example, Non-Patent Document 1, etc.). Remote desktop is a technology that allows a terminal at the user's hand (hereinafter also referred to as an "operation terminal") to operate the GUI (Graphical User Interface) and desktop environment of another terminal (hereinafter also referred to as an "operation target terminal") connected via a communication network. Note that remote desktop is also called, for example, PC remote operation or remote control.
[0003] A remote desktop service is generally a service that connects a program called an agent that runs on the target terminal and a program called a viewer that runs on the operating terminal via a specific server on a communication network, thereby enabling the agent and viewer to communicate via the server, and enabling the operating terminal to operate the GUI, desktop environment, etc. of the target terminal. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] "MagicConnect", Internet<URL:https: / / www.magicconnect.net / spec / s-mf.php> Summary of the Invention [Problem to be solved by the invention]
[0005] However, in conventional remote desktop services, the connection destination servers of the agent and viewer are fixed.
[0006] For this reason, for example, if users of a certain company or organization are treated as one group, and the viewer and agent used by the users of this group are connected to a certain server, there is a risk that the resources of the server will be insufficient due to an increase in the number of users belonging to the group, etc. To address this issue, a countermeasure of increasing the resources of the server (scale-up) can be considered, but scale-up generally has a problem of high cost. On the other hand, a countermeasure of distributing the connection destinations of the viewers and agents used by the users of the group to multiple servers (scale-out) can be considered, but although scale-out is less costly than scale-up, it is necessary to manage which user's viewer and agent are connected to which server. In addition, if a large surplus occurs in the resources of a certain server, the overall resource usage will be inefficient.
[0007] The present disclosure has been made in consideration of the above points, and provides a technique for making it possible to change the connection destination server of an operating terminal and an operated terminal in a remote desktop service. [Means for solving the problem]
[0008] A connection destination changing system according to one aspect of the present disclosure is a connection destination changing system including an operating terminal operated by a user, an operation target terminal remotely operated by the operating terminal, a plurality of servers to which the operating terminal and the operation target terminal are connected, and a device for determining the server to which the operating terminal and the operation target terminal are connected, and includes a first determination unit configured to determine the server to which the operation target terminal is connected in accordance with resource usage status of the plurality of servers, a second determination unit configured to determine the server to which the operating terminal is connected in accordance with resource usage status of the plurality of servers, and a connection destination changing unit configured to change the connection destination of either the operating terminal or the operation target terminal to the server to which the other is connected when the operation target terminal is remotely operated by the operation terminal. Effect of the Invention
[0009] A technique is provided that enables a connection destination server of an operating terminal and an operated terminal in a remote desktop service to be changed. [Brief description of the drawings]
[0010] [Figure 1] 1 is a diagram illustrating an example of an overall configuration of a remote desktop system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a diagram illustrating an example of a functional configuration of the service providing system according to the present embodiment. [Diagram 3] FIG. 11 illustrates an example of agent connection destination information. [Figure 4] FIG. 11 is a diagram showing an example of viewer connection destination information. [Diagram 5] FIG. 11 is a sequence diagram illustrating an example of an agent connection process according to the embodiment. [Figure 6] FIG. 11 is a sequence diagram showing an example of a viewer connection process according to the embodiment. [Figure 7] FIG. 11 is a sequence diagram showing an example of an agent selection and connection process (Example 1) according to the present embodiment. [Figure 8]FIG. 11 is a sequence diagram showing an example of an agent selection and connection process (Example 2) according to the present embodiment. [Figure 9] FIG. 11 is a sequence diagram illustrating an example of a dynamic connection destination change process according to the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] An embodiment of the present invention will be described below. In the following, a case will be described in which the connection destination server of the user's operating terminal and the connection destination server of the operation target terminal are changeable (variable) in a remote desktop system 1 including a service providing system that provides a remote desktop service. Note that in the following, it is assumed that a user who uses a remote desktop service has account information including a user ID and a corresponding password, etc.
[0012] <Overall configuration example of remote desktop system 1> An example of the overall configuration of a remote desktop system 1 according to this embodiment is shown in Fig. 1. As shown in Fig. 1, the remote desktop system 1 according to this embodiment includes an operation terminal 10, an operation target terminal 20, and a service providing system 30. The operation terminal 10 and the service providing system 30 are communicatively connected via a communication network N such as the Internet. Similarly, the operation target terminal 20 and the service providing system 30 are communicatively connected via a communication network N such as the Internet.
[0013] The operation terminal 10 is a terminal of various types (e.g., a PC (personal computer), a smartphone, a tablet terminal, a wearable device, etc.) that is in the user's hand and that the user actually performs physical operations. The operation terminal 10 is assumed to be used, for example, at the user's home or on a business trip. A program called a viewer 100 for operating the GUI, desktop environment, etc. of the operation target terminal 20 is installed in the operation terminal 10. However, the viewer 100 does not necessarily have to be installed in the operation terminal 10, and may be stored in an external recording medium such as a USB (Universal Serial Bus) memory connected to the operation terminal 10, for example.
[0014] The operation target terminal 20 is a terminal (e.g., a PC, a smartphone, a tablet terminal, etc.) that is located in a remote location from the user and whose GUI, desktop environment, etc. are operated by the operation terminal 10. The operation target terminal 20 is assumed to be installed, for example, inside the company where the user works. A program called an agent 200 for operating the GUI, desktop environment, etc. of the operation target terminal 20 by the viewer 100 is installed in the operation target terminal 20.
[0015] The service providing system 30 is a group of servers that provide a remote desktop service. The service providing system 30 includes an API server 40, a balancer 50, a DB server 60, and a plurality of gateway servers 70.
[0016] The API server 40 is a server that provides an API (Application Programming Interface) that enables the viewer 100 and the agent 200 to use various functions such as an authentication function.
[0017] The balancer 50 is a device or server that manages the resource usage status of each gateway server 70 and allocates which gateway server 70 the viewer 100 and the agent 200 should be connected to depending on the resource usage status. This enables each of the viewer 100 and the agent 200 to connect to an appropriate gateway server 70 depending on the resource usage status when the viewer 100 and the agent 200 connects to the gateway server 70. The balancer 50 may be called, for example, a load distribution device (load balancer).
[0018] The viewer 100 and the agent 200 are connected to the gateway server 70 via a balancer 50. At this time, like a general load balancer, the balancer 50 uses a technique called a sticky session to connect the viewer 100 or the agent 200 to the same gateway server 70 while the session with the viewer 100 or the agent 200 continues. However, the use of a sticky session is just one example, and similar processing may be achieved using other techniques.
[0019] The DB server 60 is a storage device or a database server in which various information is stored. Examples of information stored in the DB server 60 include agent connection destination information and viewer connection destination information, which will be described later. In addition to the above, for example, account information of each user may be stored in the DB server 60.
[0020] Each gateway server 70 is a server to which the viewer 100 and the agent 200 are connected. When the operation terminal 10 is used to operate the operation target terminal 20, the viewer 100 of the operation terminal 10 and the agent 200 of the operation target terminal 20 must be connected to the same gateway server 70, and a connection must be established between the viewer 100 and the agent 200. For this reason, when the operation target terminal 20 is operated by the operation terminal 10, if the gateway server 70 to which the viewer 100 of the operation terminal 10 is connected is different from the gateway server 70 to which the agent 200 of the operation target terminal 20 is connected, each gateway server 70 changes the gateway server 70 to which either the viewer 100 or the agent 200 is connected to the gateway server 70 to which the other is connected. As a result, the viewer 100 and the agent 200 are connected via the same gateway server 70, and the operation terminal 10 can operate the GUI, desktop environment, etc. of the operation target terminal 20, and as a result, a remote desktop service is provided to the user. In the following, the total number of gateway servers 70 is N (where N is equal to or greater than 2), and when each of the N gateway servers 70 is to be distinguished, they will be referred to as "gateway server 70-1," "gateway server 70-2," ..., "gateway server 70-N," etc. On the other hand, when there is no need to distinguish each of the N gateway servers 70, they will be simply referred to as "gateway server 70."
[0021] The overall configuration of the remote desktop system 1 shown in Fig. 1 is an example and is not limited to this. For example, in the example shown in Fig. 1, the service providing system 30 is configured with an API server 40, a balancer 50, a DB server 60, and multiple gateway servers 70, but at least two of the API server 40, the balancer 50, and the DB server 60 may be realized by the same device or equipment.
[0022] <Example of functional configuration of service providing system 30> FIG. 2 shows an example of the functional configuration of the API server 40, the balancer 50, and the gateway server 70 included in the service providing system 30 according to this embodiment.
[0023] <API Server 40> 2, API server 40 according to this embodiment has an authentication processing unit 401 and an agent list acquisition processing unit 402. These units are realized, for example, by processing executed by a computing device such as a CPU (Central Processing Unit) by one or more programs installed in API server 40.
[0024] When the authentication processing unit 401 receives an authentication request including account information set or input in the viewer 100, it executes authentication processing to authenticate whether the account information is legitimate. Similarly, when the authentication processing unit 401 receives an authentication request including account information set in the agent 200, it executes authentication processing to authenticate whether the account information is legitimate. Note that the viewer 100 and the agent 200 can make an authentication request using an API (e.g., a REST API) provided by the API server 40.
[0025] The agent list acquisition processing unit 402 executes an agent list acquisition process when it receives an agent list acquisition request for acquiring a list of agents 200 that can be connected to the viewer 100 (hereinafter also referred to as an agent list). Note that the viewer 100 can make the agent list acquisition request by using an API (e.g., a REST API, etc.) provided by the API server 40.
[0026] When executing the authentication process, the authentication processing unit 401 may refer to information stored in the DB server 60 or store information in the DB server 60, as necessary. Similarly, when executing the agent list acquisition process, the agent list acquisition processing unit 402 may refer to information stored in the DB server 60 or store information in the DB server 60, as necessary.
[0027] <Balancer 50> 2, the balancer 50 according to this embodiment includes a distribution processing unit 501, a connection request unit 502, and a connection destination change necessity determination unit 503. Each of these units is realized, for example, by a process in which one or more programs installed in the balancer 50 are executed by a calculation device such as a CPU. The balancer 50 according to this embodiment also includes a storage unit 504. The storage unit 504 is realized, for example, by various storage devices such as a hard disk drive (HDD), a solid state drive (SSD), and a flash memory.
[0028] The distribution processor 501 executes a process of distributing which gateway server 70 the viewer 100 and the agent 200 should be connected to, according to the resource usage status of each gateway server 70. In other words, the distribution processor 501 determines which gateway server 70 the viewer 100 should be connected to and which gateway server 70 the agent 200 should be connected to, according to the resource usage status of each gateway server 70.
[0029] The connection request unit 502 transmits a connection request to the gateway server 70 determined by the distribution processing unit 501 as the connection destination.
[0030] The connection destination change necessity determination unit 503 determines whether or not to change the gateway server 70 to which the viewer 100 and the agent 200 are connected, depending on the resource usage status of each gateway server 70. In other words, when a remote desktop service is being provided to a user, the connection destination change necessity determination unit 503 determines whether or not to change the connection destination of the viewer 100 and the agent 200 connected to the same gateway server 70 to another gateway server 70.
[0031] The storage unit 504 stores resource information indicating the resource usage status of each gateway server 70. The resource information includes, for example, identification information for identifying the gateway server 70 and the resource usage status of the gateway server 70. Hereinafter, the resource usage status of each gateway server 70 is assumed to be the total number of viewers 100 and agents 200 connected to the gateway server 70. This is because, in general, there is a positive correlation between the number of viewers 100 and agents 200 connected to the gateway server 70 and the usage rate of resources such as the CPU. However, without being limited thereto, the resource usage status of each gateway server 70 may be, for example, the CPU usage rate, memory usage, network bandwidth (throughput), etc. of the gateway server 70. The resource usage status is updated, for example, at predetermined time intervals or in real time.
[0032] <Gateway Server 70> 2, the gateway server 70 according to this embodiment includes a connection permission unit 701, an agent selection processing unit 702, a service providing unit 703, and an information management unit 704. Each of these units is realized, for example, by a process in which one or more programs installed in the gateway server 70 are executed by a calculation device such as a CPU.
[0033] When the connection permission unit 701 receives a connection request from the balancer 50 , it permits a connection to the viewer 100 or agent 200 corresponding to this connection request, and establishes a connection with the viewer 100 or agent 200 .
[0034] When the agent selection processing unit 702 receives from the viewer 100 an agent connection request indicating a request for connection to an agent 200 selected from the agent list, it executes a process of selecting the agent 200 as a connection target for the viewer 100.
[0035] The service providing unit 703 establishes a connection between the viewer 100 and the agent 200, and then executes various processes for realizing a remote desktop service between the viewer 100 and the agent 200. When the connection destination of the viewer 100 or the agent 200 is changed, the service providing unit 703 transmits a connection destination change request to the viewer 100 or the agent 200 to disconnect the currently connected gateway server 70 and connect to another gateway server 70.
[0036] The information management unit 704 manages viewer connection destination information indicating which gateway server 70 the viewer 100 is connected to, and agent connection destination information indicating which gateway server 70 the agent 200 is connected to. That is, the information management unit 704 stores the viewer connection destination information and agent connection destination information in the DB server 60, and updates (edits, deletes, etc.) the viewer connection destination information and agent connection destination information stored in the DB server 60.
[0037] An example of the agent connection destination information is shown in Fig. 3. As shown in Fig. 3, the agent connection destination information includes an agent ID, a user ID, a connection destination ID, and a session ID. The agent ID is identification information for identifying the agent 200. The user ID is the user ID of the account information used to authenticate the agent 200. The connection destination ID is identification information (e.g., a server ID, etc.) for identifying the gateway server 70 to which the agent 200 is connected. The session ID is identification information for identifying the session between the agent 200 and the gateway server 70.
[0038] 3 includes an agent ID "agent001", a user ID "user001", a destination ID "server001", and a session ID "session001". This indicates that the agent 200 having the agent ID "agent001" has been authenticated with the account information of the user ID "user001", and is connected to the gateway server 70-1 having the destination ID "server001" through a session having the session ID "session001".
[0039] 3 is an example and is not limited to this. For example, the agent connection destination information may include various information other than the agent ID, the user ID, the connection destination ID, and the session ID.
[0040] An example of the viewer connection destination information is shown in FIG. 4. As shown in FIG. 4, the viewer connection destination information includes an operation terminal ID, a user ID, a connection destination ID, and a session ID. The operation terminal ID is identification information (e.g., an IP (Internet Protocol) address, a MAC (Media Access Control) address, a serial number, a manufacturing unique number, etc.) that identifies the operation terminal 10 on which the viewer 100 is operating. The user ID is a user ID of the account information used for authenticating the viewer 100. The connection destination ID is identification information (e.g., a server ID, etc.) that identifies the gateway server 70 to which the viewer 100 is connected. The session ID is identification information that identifies a session between the viewer 100 and the gateway server 70. Generally, a plurality of viewers 100 operating on a plurality of operation terminals 10 can be used simultaneously with the same user ID. Therefore, each viewer 100 can be distinguished from other viewers 100 by the operation terminal ID.
[0041] 4 includes an operation terminal ID "t001", a user ID "user001", a destination ID "server002", and a session ID "session002". This indicates that the viewer 100 running on the operation terminal 10 with the operation terminal ID "t001" has been authenticated with the account information of the user ID "user001", and is connected to the gateway server 70-2 with the destination ID "server002" through a session with the session ID "session002".
[0042] Note that the viewer connection destination information shown in Fig. 4 is an example and is not limited thereto. For example, the viewer connection destination information may include various information other than the operation terminal ID, the user ID, the connection destination ID, and the session ID.
[0043] <Agent connection process> The following describes the process (agent connection process) when a certain agent 200 connects to the gateway server 70 with reference to Fig. 5. The agent connection process is started, for example, by starting up the operation target terminal 20 in which the agent 200 is installed.
[0044] The agent 200 transmits an authentication request to the API server 40 (step S101). The authentication request includes, for example, a user ID and a password set in the agent 200.
[0045] When the authentication request is received, the authentication processing unit 401 of the API server 40 executes authentication processing to authenticate whether or not the user ID and password included in this authentication request are valid (step S102). Note that the authentication processing unit 401 may perform the authentication in the API server 40, or may request the authentication from another server (e.g., an authentication server, etc.). In the following, the explanation will be continued assuming that the above authentication is successful.
[0046] The authentication processing unit 401 of the API server 40 returns an authentication processing result indicating successful authentication to the agent 200 (step S103).
[0047] When the agent 200 receives the authentication process result indicating successful authentication, it transmits a connection request to the balancer 50 (step S104). The connection request includes, for example, the agent ID of the agent 200 and the user ID set in the agent 200. Note that, although the following description is given assuming that a session ID is not specified in the connection request, the agent 200 may specify a session ID in the connection request. If a session ID is specified in the connection request, in step S105 described later, the balancer 50 uses the session ID specified in the connection request without generating a session ID.
[0048] When the distribution processing unit 501 of the balancer 50 receives a connection request, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and executes a process of distributing to which gateway server 70 the agent 200 that has made the connection request should be connected (step S105). That is, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and determines the gateway server 70 to which the agent 200 is to be connected. The distribution processing unit 501 also generates a session ID that identifies a session between the agent 200 and the gateway server 70 to which the agent 200 is to be connected.
[0049] There are various possible methods for determining the gateway server 70 to be connected to, but the distribution processor 501, for example, determines the gateway server 70 with the lowest resource usage rate (i.e., the gateway server 70 with the fewest number of viewers 100 and agents 200 connected) as the gateway server 70 to be connected to. This makes it possible to distribute the resource load among the multiple gateway servers 70. However, this is just one example, and the distribution processor 501 may determine the gateway server 70 to be connected to by other methods.
[0050] For example, the distribution processor 501 may determine the gateway server 70 having the highest resource usage rate and whose resource usage rate does not exceed the upper limit even when connected to the agent 200 that has made the connection request, as the gateway server 70 to be connected. Specifically, for example, if the upper limit of the number of connections of each gateway server 70 is M, the distribution processor 501 determines the gateway server 70 having the highest number of connections and whose number of connections is less than M, as the gateway server 70 to be connected. This makes it possible to improve the resource efficiency of each gateway server 70. Therefore, for example, when the gateway server 70 is realized by a virtualization technology provided by an external business operator, it is possible to reduce costs by changing the configuration according to the usage status of the resources of the gateway server 70.
[0051] For example, when a certain gateway server 70 is undergoing maintenance, the distribution processing unit 501 performs the above distribution while excluding this gateway server 70.
[0052] In the following, the explanation will be continued on the assumption that in step S105 above, the gateway server 70 to which the agent 200 is to be connected is determined to be the "gateway server 70-1."
[0053] Following step S105, the connection request unit 502 of the balancer 50 transmits a connection request to the gateway server 70-1 with respect to the agent 200 (step S106). The connection request includes, for example, the agent ID of the agent 200, the user ID set in the agent 200, and the session ID generated in the above step S105.
[0054] When the connection permission unit 701 of the gateway server 70-1 receives the connection request, it permits a connection to the agent 200 having the agent ID included in the connection request (step S107). At this time, the connection permission unit 701 may determine whether or not to permit the connection based on some condition. For example, the connection permission unit 701 may determine whether or not authentication of the agent 200 has been successful, and permit the connection only if the authentication has been successful.
[0055] Next, the information management unit 704 of the gateway server 70-1 creates agent connection destination information including the agent ID, user ID, and session ID contained in the connection request received in step S107 above, and identification information for identifying the gateway server 70-1 (e.g., a server ID, etc.), and stores this agent connection destination information in the DB server 60 (step S108).
[0056] Then, the connection permission unit 701 of the gateway server 70-1 establishes a connection (session) with the agent 200 (step S109), whereby the agent 200 is connected to the gateway server 70-1.
[0057] <Viewer connection process> The process (viewer connection process) when a certain viewer 100 connects to the gateway server 70 will be described below with reference to Fig. 6. Note that the viewer connection process is started, for example, when a user starts the viewer 100 and inputs a user ID and a corresponding password, etc.
[0058] The viewer 100 transmits an authentication request to the API server 40 (step S201). The authentication request includes, for example, a user ID and a password that have been set or input to the viewer 100.
[0059] When the authentication request is received, the authentication processing unit 401 of the API server 40 executes authentication processing to authenticate whether or not the user ID and password included in this authentication request are valid (step S202). Note that the authentication processing unit 401 may perform the authentication in the API server 40, or may request the authentication from another server (e.g., an authentication server, etc.). In the following, the explanation will be continued assuming that the above authentication is successful.
[0060] The authentication processing unit 401 of the API server 40 returns an authentication processing result indicating successful authentication to the viewer 100 (step S203).
[0061] When the viewer 100 receives the authentication process result indicating successful authentication, it transmits a connection request to the balancer 50 (step S204). The connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running, and a user ID set or input to the viewer 100. Note that, although the following description is given assuming that a session ID is not specified in the connection request, the viewer 100 may specify a session ID in the connection request. If a session ID is specified in the connection request, in step S205 described later, the balancer 50 uses the session ID specified in the connection request without generating a session ID.
[0062] When the distribution processor 501 of the balancer 50 receives a connection request, the distribution processor 501 refers to the resource information stored in the storage unit 504 and executes a process of distributing to which gateway server 70 the viewer 100 that has made the connection request should be connected (step S205). That is, the distribution processor 501 refers to the resource information stored in the storage unit 504 and determines the gateway server 70 to which the viewer 100 is to be connected. The distribution processor 501 also generates a session ID that identifies a session between the viewer 100 and the gateway server 70 to which it is to be connected.
[0063] Here, the gateway server 70 to be the connection destination may be determined in the same manner as in step S105 in Fig. 5. That is, the allocation processing unit 501 may determine, for example, the gateway server 70 with the lowest resource usage rate as the gateway server 70 to be the connection destination, or may determine, as the gateway server 70 to be the connection destination, the gateway server 70 with the highest resource usage rate and whose resource usage rate does not exceed the upper limit even when connected to the viewer 100 that has made the connection request.
[0064] As in step S105 in FIG. 5, for example, when a certain gateway server 70 is undergoing maintenance, the distribution processing unit 501 performs the above distribution while excluding this gateway server 70.
[0065] In the following, the explanation will be continued on the assumption that in step S205 above, the gateway server 70 to which the viewer 100 is to be connected is determined to be the "gateway server 70-2."
[0066] Following step S205, the connection request unit 502 of the balancer 50 transmits a connection request to the gateway server 70-2 for the viewer 100 (step S206). The connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running, the user ID set or input to the viewer 100, and the session ID generated in the above step S205.
[0067] When the connection permission unit 701 of the gateway server 70-2 receives the connection request, it permits a connection to the viewer 100 running on the operation terminal 10 of the operation terminal ID included in the connection request (step S207). At this time, the connection permission unit 701 may determine whether or not to permit the connection based on some condition. For example, the connection permission unit 701 may determine whether or not authentication of the viewer 100 has been successful, and permit the connection only if the authentication has been successful.
[0068] Next, the information management unit 704 of the gateway server 70-2 creates viewer connection destination information including the operating terminal ID, user ID, and session ID contained in the connection request received in step S207 above, and identification information (e.g., a server ID) for identifying the gateway server 70-2, and then stores the viewer connection destination information in the DB server 60 (step S208).
[0069] Then, the connection permission unit 701 of the gateway server 70-2 establishes a connection (session) with the viewer 100 (step S209). As a result, the viewer 100 is connected to the gateway server 70-2.
[0070] <Agent selection and connection process> Below, we will explain examples 1 and 2 of the processing (agent selection and connection processing) when the viewer 100 connected to the gateway server 70-2 in step S209 of Figure 6 selects an agent 200 and then connects to the agent 200 via a certain gateway server 70.
[0071] <Agent Selection and Connection Processing (Example 1)> In the first embodiment, the connection destination of the agent 200 is changed to the gateway server 70 to which the viewer 100 is connected. The agent selection and connection process (first embodiment) will be described with reference to FIG. 7. The agent selection and connection process is carried out after the connection between the viewer 100 and the gateway server 70 is established in step S209 in FIG. 6. Following this, execution begins.
[0072] The viewer 100 transmits an agent list acquisition request to the API server 40 (step S301). The agent list acquisition request includes, for example, a user ID that has been set or input to the viewer 100.
[0073] When the agent list acquisition processing unit 402 of the API server 40 receives the agent list acquisition request, it executes an agent list acquisition process (step S302). In this agent list acquisition process, a list of agents 200 for which the user ID included in the agent list acquisition request is set (more precisely, a list of agent IDs that identify these agents 200) is acquired.
[0074] The agent list acquisition processing unit 402 of the API server 40 returns the agent list acquired in the above step S302 to the viewer 100 (step S303).
[0075] In the following, the explanation will be continued on the assumption that a certain agent 200 connected to the gateway server 70-1 has been selected by the user from the agent list.
[0076] The viewer 100 transmits an agent connection request to the gateway server 70-2 (step S304). The agent connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running, and the agent ID of the agent 200 selected by the user.
[0077] When the agent selection processing unit 702 of the gateway server 70-2 receives the agent connection request, it selects the agent 200 with the agent ID included in the agent connection request as the connection destination of the viewer 100 that has made the agent connection request (step S305).
[0078] The information management unit 704 of the gateway server 70-2 acquires the viewer connection destination information of the operation terminal 10 included in the agent connection request from the DB server 60 (step S306).
[0079] The service providing unit 703 of the gateway server 70-2 transmits a connection destination change request to the agent 200 (step S307). The connection destination change request includes, for example, the connection destination ID (i.e., the server ID of the gateway server 70-2, etc.) and the session ID of the viewer connection destination information acquired in the above step S306.
[0080] When the agent 200 receives the connection destination change request, the agent 200 disconnects the connection to the gateway server 70-1 to which the agent 200 is currently connected (step S308).
[0081] Next, the agent 200 transmits a connection request to the connection destination of the viewer 100 to the balancer 50 (step S309). The connection request includes, for example, the agent ID of the agent 200, and the connection destination ID and session ID of the viewer connection destination information acquired in the above step S306.
[0082] When the connection request unit 502 of the balancer 50 receives the connection request to the connection destination of the viewer 100, it transmits a connection request to the gateway server 70-2 with the agent 200 (step S310). That is, the connection request unit 502 transmits a connection request to the agent 200 to the gateway server 70-2 indicated by the connection destination ID included in the connection request to the connection destination of the viewer 100. The connection request to the agent 200 includes, for example, the agent ID of the agent 200 and the session ID of the viewer connection destination information acquired in the above step S306.
[0083] The information management unit 704 of the gateway server 70-2 updates the agent connection destination information of the agent ID included in the connection request received in the above step S310 from among the agent connection destination information stored in the DB server 60 (step S311). That is, the information management unit 704 updates the connection destination ID and session ID included in the agent connection destination information of the agent ID to the connection destination ID and session ID included in the connection request received in the above step S310, respectively.
[0084] Then, the connection permission unit 701 of the gateway server 70-2 establishes a connection (session) with the agent 200 (step S312). As a result, the agent 200 and the gateway server 70-2 are connected through a session with the session ID. In this way, in the first embodiment, the connection destination of the agent 200 is changed to the connection destination of the viewer 100.
[0085] Finally, the service providing unit 703 of the gateway server 70-2 establishes a connection for realizing a remote desktop service between the viewer 100 and the agent 200 (step S313). This makes it possible to realize a remote desktop service between the viewer 100 and the agent 200 via the gateway server 70-2.
[0086] 7, a case has been described in which an agent 200 connected to a gateway server 70 different from the gateway server 70 to which the viewer 100 is connected is selected from the agent list returned in step S303 above. However, this is not limiting, and an agent 200 connected to the same gateway server 70 as the viewer 100 may be selected from the agent list. In this case, since there is no need to change the connection destination of the agent 200, after steps S304 to S305 are executed, only the session ID included in the agent connection destination information is updated in step S311 without executing steps S306 to S310, and then steps S312 to S313 are executed.
[0087] <Agent Selection and Connection Processing (Example 2)> In the second embodiment, the connection destination of the viewer 100 is changed to the gateway server 70 to which the agent 200 is connected. The agent selection and connection process (second embodiment) will be described with reference to FIG. 8. The agent selection and connection process is carried out after the connection between the viewer 100 and the gateway server 70 is established in step S209 in FIG. 6. Following this, execution begins.
[0088] Steps S401 to S405 may be similar to steps S301 to S305 in FIG. 7, respectively, and therefore the description thereof will be omitted.
[0089] The information management unit 704 of the gateway server 70-2 acquires the agent connection destination information of the agent ID included in the agent connection request from the DB server 60 (step S406).
[0090] The service providing unit 703 of the gateway server 70-2 transmits a connection destination change request to the viewer 100 (step S407). The connection destination change request includes, for example, the connection destination ID (i.e., the server ID of the gateway server 70-1, etc.) and the session ID of the agent connection destination information acquired in the above step S406.
[0091] When the viewer 100 receives the connection destination change request, the viewer 100 disconnects the connection to the gateway server 70-2 to which the viewer 100 is currently connected (step S408).
[0092] Next, the viewer 100 transmits a connection request to the connection destination of the agent 200 to the balancer 50 (step S409). The connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running, and the connection destination ID and session ID of the agent connection destination information acquired in the above step S406.
[0093] When the connection request unit 502 of the balancer 50 receives the connection request to the connection destination of the agent 200, it transmits a connection request to the gateway server 70-1 to the viewer 100 (step S410). That is, the connection request unit 502 transmits a connection request to the viewer 100 to the gateway server 70-1 indicated by the connection destination ID included in the connection request to the connection destination of the agent 200. The connection request to the viewer 100 includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running and the session ID of the agent connection destination information acquired in the above step S406.
[0094] The information management unit 704 of the gateway server 70-1 updates the viewer connection destination information of the operating terminal ID included in the connection request received in the above step S410 from among the viewer connection destination information stored in the DB server 60 (step S411). That is, the information management unit 704 updates the connection destination ID and session ID included in the viewer connection destination information of the operating terminal ID to the connection destination ID and session ID included in the connection request received in the above step S410, respectively.
[0095] Then, the connection permission unit 701 of the gateway server 70-1 establishes a connection (session) with the viewer 100 (step S412). As a result, the viewer 100 and the gateway server 70-1 are connected through a session with the session ID. In this way, in the second embodiment, the connection destination of the viewer 100 is changed to the connection destination of the agent 200.
[0096] Finally, the service providing unit 703 of the gateway server 70-1 establishes a connection for realizing a remote desktop service between the viewer 100 and the agent 200 (step S413). This makes it possible to realize a remote desktop service between the viewer 100 and the agent 200 via this gateway server 70-1.
[0097] 8, a case has been described in which an agent 200 connected to a gateway server 70 different from the gateway server 70 to which the viewer 100 is connected is selected from the agent list returned in step S403 above. However, this is not limiting, and an agent 200 connected to the same gateway server 70 as the viewer 100 may be selected from the agent list. In this case, since there is no need to change the connection destination of the viewer 100, after steps S404 to S405 are executed, steps S406 to S410 are not executed, and only the session ID included in the viewer connection destination information is updated in step S411, and then steps S412 to S413 are executed.
[0098] <Dynamic connection destination change processing> In the following, it is assumed that a certain viewer 100 and a certain agent 200 are connected via a certain gateway server 70, and a remote desktop service is provided to a user of an operation terminal 10 on which the viewer 100 is running. In this case, a process (dynamic connection destination change process) for dynamically changing the gateway server 70 to which the viewer 100 and the agent 200 are connected will be described with reference to Fig. 9. In the following, it is assumed that the viewer 100 and the agent 200 are connected to the gateway server 70-1.
[0099] The connection change necessity determination unit 503 of the balancer 50 refers to the resource information stored in the memory unit 504 and determines whether or not to change the gateway server 70-1 to which the viewer 100 and the agent 200 are connected to another gateway server 70 (step S501).
[0100] Here, various methods of determining whether or not to change the gateway server 70 to which the viewer 100 and the agent 200 are connected to another gateway server 70 are conceivable, but for example, if the resource usage rate of the gateway server 70 exceeds a predetermined threshold (i.e., if the number of connections of the viewer 100 and the agent 200 exceeds a predetermined threshold), it may be determined to change to another gateway server 70, and if not, it may be determined not to change. However, this is only one example, and the connection destination change necessity determination unit 503 may use other methods to determine whether or not to change the gateway server 70 to which the viewer 100 and the agent 200 are connected to another gateway server 70.
[0101] In the following, the explanation will be continued on the assumption that it has been determined that the gateway server 70-1 to which the viewer 100 and the agent 200 are connected should be changed to another gateway server 70.
[0102] The connection request unit 502 of the balancer 500 transmits a connection destination change request to the gateway server 70-1 (step S502). The connection destination change request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running and the agent ID of the agent 200.
[0103] The service providing unit 703 of the gateway server 70-1 transmits a connection destination change request to the agent 200 (step S503). Similarly, the service providing unit 703 of the gateway server 70-1 transmits a connection destination change request to the viewer 100 (step S504).
[0104] When the agent 200 receives the connection destination change request, it disconnects the agent 200 from the gateway server 70-1 to which it is currently connected (step S505). Similarly, when the viewer 100 receives the connection destination change request, it disconnects the viewer 100 from the gateway server 70-1 to which it is currently connected (step S506).
[0105] The agent 200 transmits a connection request to the balancer 50 (step S507). Similarly, the viewer 100 transmits a connection request to the balancer 50 (step S508).
[0106] When the distribution processing unit 501 of the balancer 50 receives a connection request from the viewer 100 and the agent 200, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and executes a process of distributing to which gateway server 70 the viewer 100 and the agent 200 that have made the connection request should be connected (step S509). That is, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and determines the gateway server 70 to which the viewer 100 and the agent 200 are to be connected. The distribution processing unit 501 also generates a session ID that identifies a session between the viewer 100 and the agent 200 and the gateway server 70 to which they are to be connected.
[0107] Here, the gateway server 70 to be connected may be determined in the same manner as in step S105 in Fig. 5 or step S205 in Fig. 6. However, the same gateway server 70 is determined as the connection destination for the viewer 100 and the agent 200.
[0108] As in step S105 in FIG. 5 and step S205 in FIG. 6, for example, if maintenance or the like is being performed on a certain gateway server 70, the distribution processing unit 501 performs the above distribution after excluding this gateway server 70.
[0109] In the following, the explanation will be continued on the assumption that in step S509 above, the gateway server 70 to which the viewer 100 and the agent 200 are to be connected is determined to be the "gateway server 70-3."
[0110] The connection request unit 502 of the balancer 50 transmits a connection request to the gateway server 70-3 for the agent 200 (step S510). The connection request includes, for example, the agent ID of the agent 200, the user ID set in the agent 200, and the session ID generated in the above step S509.
[0111] Similarly, the connection request unit 502 of the balancer 50 transmits a connection request to the gateway server 70-3 for the viewer 100 (step S511). The connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is running, the user ID set or input to the viewer 100, and the session ID generated in the above step S509.
[0112] The information management unit 704 of the gateway server 70-3 updates the agent connection destination information of the agent ID included in the connection request with the agent 200, among the agent connection destination information stored in the DB server 60 (step S512). That is, the information management unit 704 updates the connection destination ID included in the agent connection destination information of the agent ID to identification information (e.g., a server ID, etc.) that identifies the gateway server 70-3, and updates the session ID included in the agent connection destination information to the session ID included in the connection request with the agent 200.
[0113] Similarly, the information management unit 704 of the gateway server 70-3 updates the viewer connection destination information of the operating terminal ID included in the connection request with the viewer 100, among the viewer connection destination information stored in the DB server 60 (step S513). That is, the information management unit 704 updates the connection destination ID included in the viewer connection destination information of the operating terminal ID to identification information (e.g., a server ID) that identifies the gateway server 70-3, and updates the session ID included in the viewer connection destination information to the session ID included in the connection request with the viewer 100.
[0114] Then, the connection permission unit 701 of the gateway server 70-3 establishes a connection (session) with the agent 200 (step S514). As a result, the agent 200 and the gateway server 70-3 are connected through a session with the session ID.
[0115] Similarly, the connection permission unit 701 of the gateway server 70-3 establishes a connection (session) with the viewer 100 (step S515). As a result, the viewer 100 and the gateway server 70-3 are connected through a session with the session ID.
[0116] Finally, the service providing unit 703 of the gateway server 70-3 establishes a connection between the viewer 100 and the agent 200 to provide a remote desktop service (step S516). This makes it possible to provide a remote desktop service between the viewer 100 and the agent 200 via the gateway server 70-3. In this manner, in the dynamic connection destination change process, the gateway server 70 to which the viewer 100 and the agent 200 are connected can be dynamically changed to another gateway server 70 depending on the resource usage status while the remote desktop service is being provided.
[0117] <Modification> Below, some variations of this embodiment will be described.
[0118] <Variation 1> In the above embodiment, the resource usage status of the gateway server 70 is the number of connections of the viewers 100 and the agents 200 connected to the gateway server 70. In this case, for example, the weighted sum of the connections of the viewers 100 and the agents 200 may be used as the number of connections. For example, when the number of connections of the viewers 100 connected to the gateway server 70 is n1 and the number of connections of the agents 200 is n2, the resource usage status of the gateway server 70 may be αn1+βn2 (where α is the weight of the viewer 100 and β is the weight of the agent 200, which are preset values). This makes it possible to consider an appropriate resource usage status according to differences in communication characteristics between the viewers 100 and the agents 200.
[0119] <<Variation 2>> In the above modification 1, the weight is set depending on whether it is the viewer 100 or the agent 200, but the weight may be set depending on whether a remote desktop service is actually being provided, for example. This is because it is generally considered that the resource usage of the gateway server 70 is greater when a remote desktop service is being provided.
[0120] Generally, while the viewer 100 connected to the gateway server 70 is providing a remote desktop service, the agent 200 is waiting to connect to the viewer 100, so the remote desktop service is not necessarily being provided. Therefore, for example, the number of connections of the viewer 100 connected to the gateway server 70 is n1, and the number of connections of the agent 200 providing the remote desktop service is n 21 , the number of connections of 200 agents that are not providing remote desktop services is set to n 22 Then, αn1+β1n 21 +β2n 22(where α is the weight of the viewer 100, β1 is the weight of the agent 200 that is providing the remote desktop service, and β2 is the weight of the agent 200 that is not providing the remote desktop service (i.e., the agent 200 that is waiting), and these are preset values.) may be used as the resource usage status of the gateway server 70. This makes it possible to consider appropriate resource usage status depending on whether or not the remote desktop service is being provided, in addition to the first modification.
[0121] <Modification 3> In the above embodiment, even after a connection for realizing a remote desktop service is established between the viewer 100 and the agent 200, the viewer 100 and the agent 200 are connected to the gateway server 70 via the balancer 50. However, for example, after a connection for realizing a remote desktop service is established, the viewer 100 and the agent 200 may be connected to the gateway server 70 without going through the balancer 50.
[0122] <<Variation 4>> In the above embodiment, the connection between the viewer 100 and the balancer 50 and the connection between the agent 200 and the balancer 50 are identified using a session ID, but for example, the connection between the viewer 100 and the balancer 50 and the connection between the agent 200 and the balancer 50 may be identified using other information without using a session ID. For example, the connection between the viewer 100 and the balancer 50 may be identified by a pair of an operation terminal ID and a user ID. Similarly, for example, the connection between the agent 200 and the balancer 50 may be identified by a pair of an agent ID and a user ID. This makes it possible to eliminate the need for a session ID.
[0123] <Variation 5> In the above embodiment, for example, the balancer 50 may appropriately check whether a session with the viewer 100 or the agent 200 has been disconnected, and update the DB server 60 based on the confirmation result. This makes it possible to reflect, for example, when a session with the viewer 100 or the agent 200 is disconnected for some reason in the viewer connection destination information or the agent connection destination information.
[0124] The present invention is not limited to the above-described embodiments specifically disclosed, and various modifications, changes, combinations with known technologies, etc. are possible without departing from the scope of the claims. [Explanation of symbols]
[0125] 1. Remote Desktop System 10 Operation terminal 20 Target device 30 Service Delivery System 40 API Server 50 Balancer 60 DB Servers 70 Gateway Server 100 Viewers 200 Agents 401 Authentication processing part 402 Agent list acquisition processing unit 501 Distribution Processing Unit 502 Connection Request 503 Connection destination change necessity determination unit 504 Storage section 701 Connection permission section 702 Agent selection processing unit 703 Service Provision Department 704 Information Management Department
Claims
1. A connection destination change system including an operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, a plurality of servers to which the operation terminal and the operation target terminal are connected, and a device for determining the servers to which the operation terminal and the operation target terminal are connected, A first determination unit configured to determine a server to which the operation target terminal is to be connected in accordance with resource usage status of the plurality of servers; A second determination unit configured to determine a server to which the operation terminal is to be connected in accordance with resource usage status of the plurality of servers; a connection destination change unit configured to change a connection destination of either the operation terminal or the operation target terminal to a server to which the other terminal is connected when the operation terminal remotely operates the operation target terminal; A connection change system having the above configuration.
2. The connection destination changing unit is 2. The connection destination changing system according to claim 1, configured to change a connection destination of the operated terminal to a server to which the operating terminal is connected.
3. The connection destination changing unit is 2. The connection destination changing system according to claim 1, configured to change the connection destination of the operating terminal to a server to which the operation target terminal is connected.
4. 2. The connection destination changing system according to claim 1, wherein the resource usage status is a total number of operating terminals and operation target terminals connected to the server.
5. The connection destination changing unit is 5. A connection destination change system as described in any one of claims 1 to 4, configured to change the connection destination of either the operating terminal or the operated terminal to a server to which the other is connected, and to set a session ID identifying a session between the one terminal and the server to a session ID identifying a session between the other terminal and the server.
6. A connection destination change device is connected to an operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers to which the operation terminal and the operation target terminal are connected via a communication network, and determines a server to which the operation terminal and the operation target terminal are connected, A first determination unit configured to determine a server to which the operation target terminal is to be connected in accordance with resource usage status of the plurality of servers; A second determination unit configured to determine a server to which the operation terminal is to be connected in accordance with resource usage status of the plurality of servers; a connection destination change unit configured to change a connection destination of either the operation terminal or the operation target terminal to a server to which the other terminal is connected when the operation terminal remotely operates the operation target terminal; A connection change device having the same.
7. a connection destination changing device that is connected to an operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers to which the operation terminal and the operation target terminal are connected via a communication network, and that determines the server to which the operation terminal and the operation target terminal are connected; a first determination step of determining a server to which the operation target terminal is to be connected according to resource usage status of the plurality of servers; a second determination step of determining a server to which the operation terminal is to be connected according to resource usage status of the plurality of servers; a connection destination change procedure for changing a connection destination of either the operation terminal or the operation target terminal to a server to which the other terminal is connected, when the operation terminal remotely operates the operation target terminal; How to change the connection destination.
8. a connection destination changing device that is connected to an operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers to which the operation terminal and the operation target terminal are connected via a communication network, and that determines the server to which the operation terminal and the operation target terminal are connected; a first determination step of determining a server to which the operation target terminal is to be connected according to resource usage status of the plurality of servers; a second determination step of determining a server to which the operation terminal is to be connected according to resource usage status of the plurality of servers; a connection destination change procedure for changing a connection destination of either the operation terminal or the operation target terminal to a server to which the other terminal is connected, when the operation terminal remotely operates the operation target terminal; A program that executes the following.
Citation Information
Patent Citations
Mobile phone communication connection system and mobile phone terminal
JP2001224050A
Information processing system and information processing method
JP2013105320A
Connection management apparatus, communication system, connection management method and program
JP2015170286A
Screen data relay server, screen data relay program and screen data relay method
JP2018159984A
RDP proxy support in the presence of an RDP server farm with a session directory or broker
JP2020533673A