Connection destination change system, connection destination change device, connection destination change method, and program
The connection destination change system dynamically adjusts server connections in remote desktop services based on resource usage, addressing inefficiencies and costs by optimizing resource allocation and scalability.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NTT TECHNOCROSS CORP
- Filing Date
- 2025-04-14
- Publication Date
- 2026-04-20
AI Technical Summary
Conventional remote desktop services face inefficiencies and high costs due to fixed server connections, leading to resource insufficiency or inefficiency when user groups scale up or out, requiring costly server resource management and inefficient resource utilization.
A connection destination change system that dynamically adjusts the servers for both the operating and target terminals based on resource usage status, using a balancer to distribute connections across multiple servers, ensuring efficient resource allocation and reducing costs.
Enables variable server destinations for remote desktop services, optimizing resource utilization and reducing costs by dynamically managing server connections based on resource availability, thus enhancing efficiency and scalability.
Smart Images

Figure 0007848382000001 
Figure 0007848382000002 
Figure 0007848382000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a connection destination change system, a connection destination change device, a connection destination change method, and a program.
Background Art
[0002] A technology called remote desktop has been conventionally known (for example, Non-Patent Document 1, etc.). A remote desktop is a technology for operating a GUI (Graphical User Interface), a desktop environment, etc. of another terminal (hereinafter, also referred to as an "operation target terminal") connected via a communication network by a terminal at the user's hand (hereinafter, also referred to as an "operation terminal"). Note that a remote desktop may be called, for example, PC remote operation or remote control.
[0003] A remote desktop service is generally a service for connecting a program called an agent that operates on an operation target terminal and a program called a viewer that operates on an operation terminal via a specific server on a communication network. Thereby, the agent and the viewer can communicate with each other via the server, and the GUI, the desktop environment, etc. of the operation target terminal can be operated by the operation terminal.
Prior Art Documents
Non-Patent Documents
[0004]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, in conventional remote desktop services, the server to which the agent and viewer connect was fixed.
[0006] Therefore, for example, if users of a particular company or organization are grouped together, and the server to which the viewer and agent used by this group of users connect is designated as a specific server, there is a risk that the resources of that server may become insufficient due to an increase in the number of users belonging to that group. One possible solution is to increase the server resources (scale up), but scaling up generally has the problem of being costly. On the other hand, another solution is to distribute the connections of the viewer and agent used by the group of users across multiple servers (scale out), but while scaling out is less costly than scaling up, it requires managing which user's viewer and agent connects to which server. Furthermore, if there is a large surplus of resources on a particular server, the overall use of resources becomes inefficient.
[0007] This disclosure is made in view of the above points and provides a technology for making the destination server of the operating terminal and the target terminal in a remote desktop service variable. [Means for solving the problem]
[0008] A connection destination change system according to one aspect of the present disclosure includes an operating terminal operated by a user, an operating target terminal remotely operated by the operating terminal, a plurality of servers to which the operating terminal and the operating target terminal are connected, and a device for determining which servers the operating terminal and the operating target terminal are connected to, comprising: a first determination unit that excludes one or more servers designated in advance from the plurality of servers and then determines which server the operating target terminal is connected to according to the resource usage status of the excluded one or more servers; a second determination unit that determines which server the operating terminal is connected to according to the resource usage status of the excluded one or more servers; and a connection destination change unit that, when the operating terminal remotely operates the operating target terminal, changes the connection destination of either the operating terminal or the operating target terminal to the server to which the other is connected. [Effects of the Invention]
[0009] A technology is provided that allows the destination server for both the operating terminal and the target terminal in remote desktop services to be variable. [Brief explanation of the drawing]
[0010] [Figure 1] This figure shows an example of the overall configuration of the remote desktop system according to this embodiment. [Figure 2] This figure shows an example of the functional configuration of the service provision system according to this embodiment. [Figure 3] This figure shows an example of agent connection destination information. [Figure 4] This figure shows an example of viewer connection information. [Figure 5] This sequence diagram shows an example of the agent connection process according to this embodiment. [Figure 6] This is a sequence diagram showing an example of the viewer connection process according to this embodiment. [Figure 7] This is a sequence diagram showing an example of agent selection and connection processing (Example 1) according to this embodiment. [Figure 8]This is a sequence diagram showing an example of agent selection and connection processing (Example 2) according to this embodiment. [Figure 9] This sequence diagram shows an example of the dynamic connection destination change process according to this embodiment. [Modes for carrying out the invention]
[0011] The following describes one embodiment of the present invention. In the following description, we will explain a case in which the connection destination server of the user's operating terminal and the connection destination server of the target terminal can be changed (variable) in a remote desktop system 1 that includes a service provision system that provides remote desktop services. In the following description, it is assumed that users using the remote desktop service have account information that includes a user ID and a corresponding password.
[0012] <Example of overall configuration of Remote Desktop System 1> Figure 1 shows an example of the overall configuration of the remote desktop system 1 according to this embodiment. As shown in Figure 1, the remote desktop system 1 according to this embodiment includes an operating terminal 10, a target terminal 20, and a service provision system 30. The operating terminal 10 and the service provision system 30 are connected in a way that allows communication via a communication network N, such as the Internet. Similarly, the target terminal 20 and the service provision system 30 are connected in a way that allows communication via a communication network N, such as the Internet.
[0013] The operation terminal 10 is at the user's hand and is various terminals (such as a PC (Personal Computer), smartphone, tablet terminal, wearable device, etc.) where the user actually performs physical operations. The operation terminal 10 is assumed to be used, for example, at the user's home or business trip destination. A program called a viewer 100 for operating the GUI, desktop environment, etc. of the operation target terminal 20 is installed on the operation terminal 10. However, the viewer 100 does not necessarily have to be installed on the operation terminal 10 and may be stored, for example, in an external recording medium such as a USB (Universal Serial Bus) memory connected to the operation terminal 10.
[0014] The operation target terminal 20 is at a remote location of the user and is various terminals (such as a PC, smartphone, tablet terminal, etc.) where the 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 on the operation target terminal 20.
[0015] The service providing system 30 is a server group that provides 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, for example, a server that provides an API (Application Programming Interface) for various functions such as an authentication function for the viewer 100 and the agent 200 to use.
[0017] The balancer 50 manages the resource usage status of each gateway server 70, and is a device or server that distributes which gateway server 70 the viewer 100 and the agent 200 are connected to according to their resource usage status. Thereby, each of the viewer 100 and the agent 200 can be connected to an appropriate gateway server 70 according to the resource usage status when it connects to the gateway server 70. Note that the balancer 50 may be called, for example, a load balancing device (load balancer), etc.
[0018] Note that the viewer 100 and the agent 200 are connected to the gateway server 70 via the balancer 50. At this time, similar to a general load balancer, the balancer 50 uses a technique called 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, using the sticky session is just an example, and similar processing may be realized by other techniques.
[0019] The DB server 60 is a storage device or database server in which various kinds of information are stored. Examples of the information stored in the DB server 60 include, for example, agent connection destination information and viewer connection destination information, which will be described later. In addition to this, for example, the account information of each user may be stored in the DB server 60.
[0020] Each gateway server 70 is the server to which the viewer 100 and agent 200 connect. When the operating terminal 10 operates the target terminal 20, it is necessary to connect the viewer 100 of the operating terminal 10 and the agent 200 of the target terminal 20 to the same gateway server 70 and establish a connection between the viewer 100 and the agent 200. Therefore, when the operating terminal 10 operates the target terminal 20, if the gateway server 70 to which the viewer 100 of the operating terminal 10 is connected and the gateway server 70 to which the agent 200 of the target terminal 20 is connected are different, 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 operating terminal 10 can operate the GUI and desktop environment of the target terminal 20, thereby providing the user with remote desktop services. In the following, if the total number of gateway servers 70 is N (where N≧2), and each of the N gateway servers 70 is distinguished, they will be referred to as "gateway server 70-1", "gateway server 70-2", ..., "gateway server 70-N", etc. On the other hand, if the N gateway servers 70 are not distinguished, they will simply be referred to as "gateway server 70".
[0021] Note that the overall configuration of the remote desktop system 1 shown in Figure 1 is just one example and is not limited to this. For example, in the example shown in Figure 1, the service provision system 30 is composed of 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, balancer 50, and DB server 60 may be implemented using the same device or equipment.
[0022] <Example of the functional configuration of the service provision system 30> Figure 2 shows an example of the functional configuration of the API server 40, balancer 50, and gateway server 70 included in the service provision system 30 according to this embodiment.
[0023] ≪API Server 40≫ As shown in Figure 2, the API server 40 according to this embodiment has an authentication processing unit 401 and an agent list acquisition processing unit 402. Each of these units is realized, for example, by processing that one or more programs installed on the API server 40 cause to be executed by a computing device such as a CPU (Central Processing Unit).
[0024] When the authentication processing unit 401 receives an authentication request containing account information set or entered in the viewer 100, it performs an authentication process to verify whether the account information is legitimate. Similarly, when the authentication processing unit 401 receives an authentication request containing account information set in the agent 200, it performs an authentication process to verify whether the account information is legitimate. The viewer 100 and agent 200 can make authentication requests using APIs (e.g., REST APIs) provided by the API server 40.
[0025] When the agent list acquisition processing unit 402 receives an agent list acquisition request to obtain a list of agents 200 that can connect to the viewer 100 (hereinafter also referred to as the agent list), it executes the agent list acquisition process. The viewer 100 can make an agent list acquisition request using an API (for example, a REST API) provided by the API server 40.
[0026] Furthermore, when the authentication processing unit 401 performs the authentication process, it may, if necessary, refer to information stored in the DB server 60 or store information in the DB server 60. Similarly, when the agent list acquisition processing unit 402 performs the agent list acquisition process, it may, if necessary, refer to information stored in the DB server 60 or store information in the DB server 60.
[0027] ≪Balansa 50≫ As shown in Figure 2, the balancer 50 according to this embodiment includes a distribution processing unit 501, a connection request unit 502, and a connection destination change determination unit 503. Each of these units is realized, for example, by processing that one or more programs installed on the balancer 50 cause a processing unit such as a CPU to execute. 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 an HDD (Hard Disk Drive), SSD (Solid State Drive), or flash memory.
[0028] The distribution processing unit 501 executes a process to determine which gateway server 70 to connect the viewer 100 and agent 200 to, according to the resource usage status of each gateway server 70. In other words, the distribution processing unit 501 determines which gateway server 70 the viewer 100 will connect to and which gateway server 70 the agent 200 will connect to, according to the resource usage status of each gateway server 70.
[0029] The connection request unit 502 sends a connection request to the gateway server 70, which has been determined as the connection destination by the distribution processing unit 501.
[0030] The connection destination change determination unit 503 determines whether or not to change the gateway server 70 to which the viewer 100 and agent 200 are connected, according to the resource usage status of each gateway server 70. In other words, when remote desktop services are provided to the user, the connection destination change determination unit 503 determines whether or not to change the connection destination of the viewer 100 and agent 200, which are connected to the same gateway server 70, to another gateway server 70.
[0031] The storage unit 504 stores resource information representing the resource usage status of each gateway server 70. The resource information includes, for example, identification information that identifies the gateway server 70 and the resource usage status of that gateway server 70. Hereinafter, the resource usage status of each gateway server 70 will be assumed to be the total number of viewers 100 and agents 200 connected to that gateway server 70. This is because, generally, there is a positive correlation between the number of viewers 100 and agents 200 connected to the gateway server 70 and the utilization rate of resources such as the CPU. However, it is not limited to this, and the resource usage status of each gateway server 70 may be, for example, the CPU utilization rate, memory usage, network bandwidth (throughput), etc. The resource usage status is updated, for example, at predetermined time intervals or in real time.
[0032] ≪Gateway Server 70≫ As shown in Figure 2, the gateway server 70 according to this embodiment includes a connection authorization unit 701, an agent selection processing unit 702, a service provision unit 703, and an information management unit 704. Each of these units is realized, for example, by one or more programs installed on the gateway server 70, which are executed by a processing unit such as a CPU.
[0033] When the connection authorization unit 701 receives a connection request from the balancer 50, it authorizes a connection with 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 an agent connection request from the viewer 100 indicating a request to connect with agent 200 selected from the agent list, it executes a process to select agent 200 as the connection target for the viewer 100.
[0035] The service provider unit 703 establishes a connection between the viewer 100 and the agent 200, and then performs various processes to realize remote desktop services between the viewer 100 and the agent 200. In addition, if the connection destination of the viewer 100 or the agent 200 is changed, the service provider unit 703 sends a connection destination change request to the viewer 100 or the agent 200 to disconnect the connection with the currently connected gateway server 70 and connect to another gateway server 70.
[0036] The information management unit 704 manages viewer connection information, which indicates which gateway server 70 the viewer 100 is connected to, and agent connection information, which indicates which gateway server 70 the agent 200 is connected to. In other words, the information management unit 704 stores the viewer connection information and agent connection information in the DB server 60, and updates (edits or deletes, etc.) the viewer connection information and agent connection information stored in the DB server 60.
[0037] Here, an example of agent connection destination information is shown in Figure 3. As shown in Figure 3, agent connection destination information includes the agent ID, user ID, connection destination ID, and session ID, etc. The agent ID is identification information that identifies agent 200. The user ID is the user ID of the account information used for authentication of agent 200. The connection destination ID is identification information (e.g., server ID) that identifies the gateway server 70 to which agent 200 is connected. The session ID is identification information that identifies the session between agent 200 and the gateway server 70.
[0038] The agent connection information shown in Figure 3 includes agent ID "agent001", user ID "user001", connection destination ID "server001", and session ID "session001". This indicates that agent 200, which has agent ID "agent001", has been authenticated with the account information of user ID "user001", and is connected to gateway server 70-1 with connection destination ID "server001" via session with session ID "session001".
[0039] Note that the agent connection information shown in Figure 3 is just an example and is not limited to this. For example, the agent connection information may include various other pieces of information besides the agent ID, user ID, connection destination ID, and session ID.
[0040] An example of viewer connection information is shown in Figure 4. As shown in Figure 4, viewer connection information includes the operating terminal ID, user ID, connection destination ID, and session ID. The operating terminal ID is identification information that identifies the operating terminal 10 on which the viewer 100 is running (e.g., IP (Internet Protocol) address, MAC (Media Access Control) address, serial number, manufacturing unique number, etc.). The user ID is the user ID of the account information used for authentication of the viewer 100. The connection destination ID is identification information that identifies the gateway server 70 to which the viewer 100 is connected (e.g., server ID, etc.). The session ID is identification information that identifies the session between the viewer 100 and the gateway server 70. Generally, it is possible to use multiple viewers 100 running on multiple operating terminals 10 simultaneously with the same user ID. Therefore, each viewer 100 can be identified from other viewers 100 by its operating terminal ID.
[0041] The viewer connection information shown in Figure 4 includes the operating terminal ID "t001", user ID "user001", connection destination ID "server002", and session ID "session002". This indicates that the viewer 100 running on the operating terminal 10 with operating terminal ID "t001" has been authenticated with the account information of user ID "user001", and is connected to the gateway server 70-2 with connection destination ID "server002" via the session with session ID "session002".
[0042] Note that the viewer connection information shown in Figure 4 is just an example and is not limited to this. For example, the viewer connection information may include various other pieces of information besides the operating terminal ID, user ID, connection destination ID, and session ID.
[0043] <Agent connection process> The following describes the process (agent connection process) when an agent 200 connects to the gateway server 70, with reference to Figure 5. The agent connection process is initiated, for example, by the startup of the target terminal 20 on which the agent 200 is installed.
[0044] Agent 200 sends an authentication request to the API server 40 (step S101). This authentication request includes, for example, the user ID and password set for agent 200.
[0045] When the authentication processing unit 401 of the API server 40 receives an authentication request, it performs an authentication process to verify whether the user ID and password included in the authentication request are valid (step S102). The authentication processing unit 401 may perform the authentication on the API server 40, or it may request the authentication from another server (for example, an authentication server). The following explanation will continue assuming that the above authentication was 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 agent 200 receives an authentication result indicating successful authentication, it sends a connection request to the balancer 50 (step S104). This connection request includes, for example, the agent ID of agent 200 and the user ID set for agent 200. In the following description, it is assumed that no session ID is specified in the connection request, but 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 will use 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, it refers to the resource information stored in the storage unit 504 and performs a process to determine which gateway server 70 the agent 200 that made the connection request should be connected to (step S105). That is, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and determines which gateway server 70 the agent 200 will connect to. The distribution processing unit 501 also generates a session ID that identifies the session between the agent 200 and the gateway server 70 to which it will connect.
[0049] There are various ways to determine the gateway server 70 to which the connection will be made, but the distribution processing unit 501 may, for example, determine the gateway server 70 with the lowest resource utilization rate (i.e., the gateway server 70 with the fewest number of connections from viewers 100 and agents 200) as the gateway server 70 to which the connection will be made. This makes it possible to distribute the resource load among multiple gateway servers 70. However, this is just one example, and the distribution processing unit 501 may determine the gateway server 70 to which the connection will be made by other methods.
[0050] For example, the distribution processing unit 501 may determine the gateway server 70 with the highest resource utilization rate as the destination gateway server 70, even if it connects with the agent 200 that made the connection request, so that the resource utilization rate does not exceed the upper limit. Specifically, for example, if the upper limit of the number of connections for each gateway server 70 is M, the distribution processing unit 501 will determine the gateway server 70 with the largest number of connections, and whose number of connections is less than M, as the destination gateway server 70. This makes it possible to improve the resource efficiency of each gateway server 70. For this reason, for example, if the gateway server 70 is implemented using virtualization technology provided by an external vendor, it is possible to reduce costs by changing the configuration according to the resource utilization status of the gateway server 70.
[0051] Furthermore, if, for example, maintenance is being performed on a certain gateway server 70, the distribution processing unit 501 will exclude this gateway server 70 before performing the distribution described above.
[0052] In the following explanation, we will continue assuming that in step S105 above, the gateway server 70 to which the agent 200 will connect was determined to be "gateway server 70-1".
[0053] Following step S105, the connection request unit 502 of the balancer 50 sends a connection request to the agent 200 to the gateway server 70-1 (step S106). This connection request includes, for example, the agent ID of the agent 200, the user ID set for the agent 200, and the session ID generated in step S105.
[0054] When the connection authorization unit 701 of the gateway server 70-1 receives a connection request, it authorizes a connection to the agent 200 that has the agent ID included in the connection request (step S107). At this time, the connection authorization unit 701 may determine whether or not to authorize the connection based on some condition. For example, the connection authorization unit 701 may determine whether or not authentication of the agent 200 has been successful, and authorize the connection only if authentication has been successful.
[0055] Next, the information management unit 704 of the gateway server 70-1 creates agent connection destination information that includes the agent ID, user ID, and session ID included in the connection request received in step S107 above, as well as identification information that identifies the gateway server 70-1 (for example, a server ID), and then stores this agent connection destination information in the DB server 60 (step S108).
[0056] Then, the connection authorization unit 701 of the gateway server 70-1 establishes a connection (session) with the agent 200 (step S109). As a result, the agent 200 is connected to the gateway server 70-1.
[0057] <Viewer connection process> The following describes the process (viewer connection process) when a certain viewer 100 connects to the gateway server 70, with reference to Figure 6. The viewer connection process is initiated, for example, when a user starts the viewer 100 and enters a user ID and corresponding password.
[0058] The viewer 100 sends an authentication request to the API server 40 (step S201). This authentication request includes, for example, the user ID and password set or entered in the viewer 100.
[0059] When the authentication processing unit 401 of the API server 40 receives an authentication request, it performs an authentication process to verify whether the user ID and password included in the authentication request are valid (step S202). The authentication processing unit 401 may perform the authentication on the API server 40, or it may request the authentication from another server (for example, an authentication server). The following explanation will continue assuming that the above authentication was 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 an authentication result indicating successful authentication, it sends a connection request to the balancer 50 (step S204). This connection request includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, and the user ID set or entered in the viewer 100. In the following description, it is assumed that no session ID is specified in the connection request, but 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, which will be described later, the balancer 50 will use the session ID specified in the connection request without generating a session ID.
[0062] When the distribution processing unit 501 of the balancer 50 receives a connection request, it refers to the resource information stored in the storage unit 504 and performs a process to determine which gateway server 70 the viewer 100 that made the connection request should be connected to (step S205). That is, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and determines which gateway server 70 the viewer 100 will connect to. The distribution processing unit 501 also generates a session ID that identifies the session between the viewer 100 and the gateway server 70 to which it will connect.
[0063] Here, the gateway server 70 to be connected to can be determined in the same way as in step S105 of Figure 5. That is, the distribution processing unit 501 may, for example, determine the gateway server 70 with the lowest resource utilization as the gateway server 70 to be connected to, or it may determine the gateway server 70 with the highest resource utilization, even when connected to the viewer 100 that made the connection request, and whose resource utilization does not exceed the upper limit.
[0064] Furthermore, similar to step S105 in Figure 5, if, for example, maintenance is being performed on a certain gateway server 70, the distribution processing unit 501 will exclude this gateway server 70 before performing the distribution described above.
[0065] In the following explanation, we will continue assuming that in step S205 above, the gateway server 70 to which the viewer 100 will connect was determined to be "gateway server 70-2".
[0066] Following step S205, the connection request unit 502 of the balancer 50 sends a connection request to the viewer 100 to the gateway server 70-2 (step S206). The connection request includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, the user ID set or entered in the viewer 100, and the session ID generated in step S205.
[0067] When the connection authorization unit 701 of the gateway server 70-2 receives a connection request, it authorizes a connection to the viewer 100 running on the operating terminal 10, which is associated with the operating terminal ID included in the connection request (step S207). At this time, the connection authorization unit 701 may determine whether or not to authorize the connection based on some condition. For example, the connection authorization unit 701 may determine whether or not authentication of the viewer 100 has been successful, and authorize the connection only if authentication has been successful.
[0068] Next, the information management unit 704 of the gateway server 70-2 creates viewer connection destination information that includes the operating terminal ID, user ID, and session ID included in the connection request received in step S207 above, as well as identification information that identifies the gateway server 70-2 (for example, a server ID), and then stores the viewer connection destination information in the DB server 60 (step S208).
[0069] Then, the connection authorization 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> The following describes two examples of the process (agent selection and connection process) when a viewer 100 connected to the gateway server 70-2 selects an agent 200 in step S209 of Figure 6 and then connects to that agent 200 via a certain gateway server 70.
[0071] ≪Agent Selection and Connection Process (Example 1)≫ Example 1 describes the case where the connection destination of agent 200 is changed to the gateway server 70 to which viewer 100 is connected. The agent selection and connection process (Example 1) will be explained with reference to Figure 7. Note that the agent selection and connection process takes place after the connection between viewer 100 and gateway server 70 is established in step S209 of Figure 6. Execution will then begin.
[0072] The viewer 100 sends an agent list acquisition request to the API server 40 (step S301). This agent list acquisition request includes, for example, a user ID set or entered in the viewer 100.
[0073] When the agent list acquisition processing unit 402 of the API server 40 receives an agent list acquisition request, it executes the agent list acquisition process (step S302). In this agent list acquisition process, a list of agents 200 (more precisely, a list of agent IDs that identify these agents 200) is obtained in which the user ID included in the agent list acquisition request is set.
[0074] The agent list acquisition processing unit 402 of the API server 40 returns the agent list acquired in step S302 to the viewer 100 (step S303).
[0075] In the following explanation, we will assume that a certain agent 200 connected to gateway server 70-1 has been selected by the user from the agent list.
[0076] The viewer 100 sends an agent connection request to the gateway server 70-2 (step S304). The agent connection request includes, for example, the operating terminal ID of the operating 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 an agent connection request, it selects agent 200, whose agent ID is included in the agent connection request, as the connection destination for the viewer 100 that made the agent connection request (step S305).
[0078] The information management unit 704 of the gateway server 70-2 obtains viewer connection destination information for the operating terminal 10 included in the agent connection request from the DB server 60 (step S306).
[0079] The service provision unit 703 of the gateway server 70-2 sends a connection destination change request to the agent 200 (step S307). This connection destination change request includes, for example, the connection destination ID (i.e., the server ID of the gateway server 70-2, etc.) and session ID of the viewer connection destination information obtained in step S306 above.
[0080] When agent 200 receives a request to change the connection destination, it disconnects from the gateway server 70-1 to which it is currently connected (step S308).
[0081] Next, agent 200 sends a connection request to the balancer 50 for the viewer 100's connection destination (step S309). This connection request includes, for example, the agent ID of agent 200 and the connection destination ID and session ID of the viewer connection destination information obtained in step S306 above.
[0082] When the connection request unit 502 of the balancer 50 receives a connection request to the viewer 100's destination, it sends a connection request to the agent 200 to the gateway server 70-2 (step S310). That is, the connection request unit 502 sends a connection request to the agent 200 to the gateway server 70-2 indicated by the destination ID included in the connection request to the viewer 100's destination. The connection request to the agent 200 includes, for example, the agent ID of the agent 200 and the session ID of the viewer destination information obtained in step S306 above.
[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 step S310 from 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 step S310, respectively.
[0084] Then, the connection authorization 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 in a session with the session ID. In this way, in Embodiment 1, the connection destination of the agent 200 is changed to the connection destination of the viewer 100.
[0085] Finally, the service provision unit 703 of the gateway server 70-2 establishes a connection between the viewer 100 and the agent 200 to realize remote desktop services (step S313). This makes it possible to realize remote desktop services between the viewer 100 and the agent 200 via the gateway server 70-2.
[0086] In Figure 7, the agent selection and connection process described above explains the case where an agent 200 connected to a different gateway server 70 than the one to which the viewer 100 is connected is selected from the agent list returned in step S303. However, this is not the only case; an agent 200 connected to the same gateway server 70 as the viewer 100 may also be selected from the agent list. In this case, since there is no need to change the connection destination of agent 200, after executing steps S304 to S305, steps S306 to S310 are not executed. Instead, only the session ID included in the agent connection destination information is updated in step S311, and then steps S312 to S313 are executed.
[0087] ≪Agent Selection and Connection Process (Example 2)≫ Example 2 describes the case where 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 (Example 2) will be explained with reference to Figure 8. Note that the agent selection and connection process takes place after the connection between the viewer 100 and the gateway server 70 is established in step S209 of Figure 6. Execution will then begin.
[0088] Steps S401 to S405 can be treated the same as steps S301 to S305 in Figure 7, so their explanation will be omitted.
[0089] The information management unit 704 of the gateway server 70-2 obtains the agent connection destination information for the agent ID included in the agent connection request from the DB server 60 (step S406).
[0090] The service provision unit 703 of the gateway server 70-2 sends a connection destination change request to the viewer 100 (step S407). This connection destination change request includes, for example, the connection destination ID (i.e., the server ID of the gateway server 70-1, etc.) and session ID of the agent connection destination information obtained in step S406 above.
[0091] When viewer 100 receives a request to change the connection destination, it disconnects from the gateway server 70-2 to which it is currently connected (step S408).
[0092] Next, the viewer 100 sends a connection request to the balancer 50 for the connection destination of the agent 200 (step S409). This connection request includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, and the connection destination ID and session ID of the agent connection destination information obtained in step S406 above.
[0093] When the connection request unit 502 of the balancer 50 receives a connection request to the destination of the agent 200, it sends a connection request to the viewer 100 to the gateway server 70-1 (step S410). That is, the connection request unit 502 sends a connection request to the viewer 100 to the gateway server 70-1 indicated by the destination ID included in the connection request to the destination of the agent 200. The connection request to the viewer 100 includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, and the session ID of the agent connection destination information obtained in step S406 above.
[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 step S410 from 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 step S410, respectively.
[0095] Then, the connection authorization 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 in a session with the session ID. In this way, in Embodiment 2, the connection destination of the viewer 100 is changed to the connection destination of the agent 200.
[0096] Finally, the service provision unit 703 of the gateway server 70-1 establishes a connection between the viewer 100 and the agent 200 to realize remote desktop services (step S413). This makes it possible to realize remote desktop services between the viewer 100 and the agent 200 via the gateway server 70-1.
[0097] In Figure 8, the agent selection and connection process described above explains the case where an agent 200 connected to a different gateway server 70 than the one to which the viewer 100 is connected is selected from the agent list returned in step S403. However, this is not the only case; an agent 200 connected to the same gateway server 70 as the viewer 100 may also be selected from the agent list. In this case, since there is no need to change the connection destination of the viewer 100, after executing steps S404 to S405, steps S406 to S410 are not executed. Instead, 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, we assume that a certain viewer 100 and a certain agent 200 are connected via a certain gateway server 70, and that remote desktop services are provided to the user of the operating terminal 10 on which the viewer 100 is running. In this case, the process for dynamically changing the gateway server 70 to which the viewer 100 and the agent 200 are connected (dynamic connection destination change process) will be explained with reference to Figure 9. In the following, we assume that the viewer 100 and the agent 200 are connected to gateway server 70-1.
[0099] The balancer 50's connection destination change determination unit 503 refers to the resource information stored in the storage 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] There are various ways to determine whether or not to change the gateway server 70 to which the viewer 100 and agent 200 are connected to another gateway server 70. For example, if the resource utilization rate of the gateway server 70 exceeds a predetermined threshold (i.e., if the number of connections from the viewer 100 and agent 200 exceeds a predetermined threshold), it may be determined to change to another gateway server 70, and otherwise, it may be determined not to change. However, this is just one example, and the connection destination change necessity determination unit 503 may determine whether or not to change the gateway server 70 to which the viewer 100 and agent 200 are connected to another gateway server 70 by other methods.
[0101] In the following explanation, we will continue assuming 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 sends a connection destination change request to the gateway server 70-1 (step S502). This connection destination change request includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, and the agent ID of the agent 200.
[0103] The service provision unit 703 of the gateway server 70-1 sends a connection destination change request to the agent 200 (step S503). Similarly, the service provision unit 703 of the gateway server 70-1 sends a connection destination change request to the viewer 100 (step S504).
[0104] When agent 200 receives a request to change the connection destination, it disconnects from the gateway server 70-1 to which it is currently connected (step S505). Similarly, when viewer 100 receives a request to change the connection destination, it disconnects from the gateway server 70-1 to which it is currently connected (step S506).
[0105] Agent 200 sends a connection request to balancer 50 (step S507). Similarly, viewer 100 sends a connection request to balancer 50 (step S508).
[0106] When the distribution processing unit 501 of the balancer 50 receives connection requests from the viewer 100 and agent 200, it refers to the resource information stored in the storage unit 504 and performs a process to determine which gateway server 70 the viewer 100 and agent 200 that made the connection request should be connected to (step S509). That is, the distribution processing unit 501 refers to the resource information stored in the storage unit 504 and determines which gateway server 70 the viewer 100 and agent 200 will connect to. The distribution processing unit 501 also generates a session ID that identifies the session between the viewer 100 and agent 200 and the gateway server 70 to which they will connect.
[0107] Here, the gateway server 70 to which the connection will be made can be determined using the same method as in step S105 in Figure 5 and step S205 in Figure 6. However, the same gateway server 70 is determined as the connection destination for both the viewer 100 and the agent 200.
[0108] Furthermore, similar to step S105 in Figure 5 and step S205 in Figure 6, if, for example, maintenance is being performed on a certain gateway server 70, the distribution processing unit 501 will exclude this gateway server 70 before performing the above distribution.
[0109] In the following explanation, we will continue assuming that in step S509 above, the gateway server 70 to which the viewer 100 and the agent 200 will connect was determined to be "gateway server 70-3".
[0110] The connection request unit 502 of the balancer 50 sends a connection request to the agent 200 to the gateway server 70-3 (step S510). The connection request includes, for example, the agent ID of the agent 200, the user ID set for the agent 200, and the session ID generated in step S509 above.
[0111] Similarly, the connection request unit 502 of the balancer 50 sends a connection request to the viewer 100 to the gateway server 70-3 (step S511). The connection request includes, for example, the operating terminal ID of the operating terminal 10 on which the viewer 100 is running, the user ID set or entered in the viewer 100, and the session ID generated in step S509 above.
[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 to the agent 200 from the agent connection destination information stored in the DB server 60 (step S512). Specifically, the information management unit 704 updates the connection destination ID included in the agent connection destination information of the agent ID to identification information that identifies the gateway server 70-3 (for example, a server ID, etc.), and updates the session ID included in the agent connection destination information to the session ID included in the connection request to 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 to the viewer 100 from 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 that identifies the gateway server 70-3 (for example, a server ID, etc.), and updates the session ID included in the viewer connection destination information to the session ID included in the connection request to the viewer 100.
[0114] Then, the connection authorization 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 in a session with the session ID.
[0115] Similarly, the connection authorization 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 in a session with the session ID.
[0116] Finally, the service provision unit 703 of the gateway server 70-3 establishes a connection between the viewer 100 and the agent 200 to realize the remote desktop service (step S516). This makes it possible to realize the remote desktop service between the viewer 100 and the agent 200 via the gateway server 70-3. In this way, the dynamic connection destination change process allows the gateway server 70 to which the viewer 100 and the agent 200 are connected to be dynamically changed to another gateway server 70 depending on the resource usage status while the remote desktop service is being provided.
[0117] <Variation> Several modifications of this embodiment will be described below.
[0118] ≪Extreme Variation 1≫ In the above embodiment, the resource usage of the gateway server 70 was assumed to be the number of connections between the viewer 100 and agent 200 connected to the gateway server 70. However, in this case, for example, the number of connections could be the weighted sum of the viewer 100 and agent 200. For example, if the number of connections between the viewer 100 and agent 200 connected to the gateway server 70 is n1 and the number of connections between agent 200 is n2, then the resource usage of the gateway server 70 could be αn1 + βn2 (where α is the weight of the viewer 100 and β is the weight of the agent 200, and these are pre-set values). This makes it possible to consider appropriate resource usage depending on the differences in communication characteristics between the viewer 100 and agent 200.
[0119] <<Variation 2>> In the above modification 1, weights were set depending on whether it was viewer 100 or agent 200, but for example, weights could also be set depending on whether or not the remote desktop service is actually being provided. This is because, generally speaking, the resource usage of gateway server 70 is considered to be higher when the remote desktop service is being provided.
[0120] Here, generally speaking, while the viewer 100 connected to the gateway server 70 is providing remote desktop services, the agent 200 is waiting until it connects to the viewer 100, and therefore is not necessarily providing remote desktop services. For example, if 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 remote desktop services is n 21 The number of connections for 200 agents that are not currently providing remote desktop services is n 22 As such, αn1+β1n 21 +β2n 22(However, α is the weight of viewer 100, β1 is the weight of agent 200 providing remote desktop services, and β2 is the weight of agent 200 not providing remote desktop services (i.e., standby agent 200), and these are pre-configured values.) These 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 remote desktop services are being provided, in addition to the example in Modification 1.
[0121] <<Variation 3>> In the above embodiment, even after establishing a connection between the viewer 100 and the agent 200 to implement remote desktop services, the viewer 100 and the agent 200 are connected to the gateway server 70 via the balancer 50. However, for example, after establishing a connection to implement remote desktop services, the viewer 100 and the agent 200 may connect 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. However, 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 operating terminal ID and user ID. Similarly, for example, the connection between the agent 200 and the balancer 50 may be identified by a pair of agent ID and user ID. This makes the session ID unnecessary.
[0123] ≪Variation 5≫ In the above embodiment, for example, the balancer 50 may periodically check whether the session with the viewer 100 or agent 200 has been terminated, and update the DB server 60 based on the result of this check. This allows, for example, if the session with the viewer 100 or agent 200 is terminated for any reason, this to be reflected in the viewer connection destination information and agent connection destination information.
[0124] The present invention is not limited to the embodiments specifically disclosed above, and various modifications, changes, and combinations with known technologies are possible without departing from the scope of the claims. [Explanation of Symbols]
[0125] 1. Remote Desktop System 10 Operating terminal 20 Target devices 30 Service Delivery System 40 API Servers 50 Balancer 60 DB servers 70 Gateway Server 100 Viewers 200 agents 401 Authentication Processing Unit 402 Agent List Acquisition Processing Unit 501 Distribution Processing Unit 502 Connection Request Section 503 Connection destination change 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 changing system comprising: an operating terminal operated by a user; a target terminal remotely operated by the operating terminal; a plurality of servers to which the operating terminal and the target terminal are connected; and a device that determines the servers to which the operating terminal and the target terminal are connected, A first determination unit that excludes one or more servers specified in advance from the plurality of servers, and then determines the server to which the target terminal will connect, according to the resource usage status of the excluded one or more servers, A second determination unit determines the server to which the operating terminal will connect, based on the resource usage status of one or more servers after the exclusions, When the aforementioned operating terminal remotely operates the aforementioned target terminal, the connection destination change unit changes the connection destination of either the operating terminal or the aforementioned target terminal to the server to which the other is connected. A connection destination change system.
2. A connection destination changing system comprising: an operating terminal operated by a user; a target terminal remotely operated by the operating terminal; a plurality of servers to which the operating terminal and the target terminal are connected; and a device that determines the servers to which the operating terminal and the target terminal are connected, A first determination unit determines the server to which the target terminal will connect, according to the resource usage status of the plurality of servers, A second determination unit determines which server the operating terminal will connect to, according to the resource usage status of the aforementioned plurality of servers, When the aforementioned operating terminal remotely operates the aforementioned target terminal, the connection destination change unit changes the connection destination of either the operating terminal or the aforementioned target terminal to the server to which the other is connected. A connection destination necessity determination unit determines whether or not to change the server to which the operating terminal and the target terminal are connected to another server, depending on the resource usage status of the server to which the operating terminal and the target terminal are connected. A connection destination change system.
3. A connection destination changing device that is connected via a communication network to each of a plurality of servers to which the operating terminal and the target terminal are connected, and which determines the server to which the operating terminal and the target terminal are connected, A first determination unit that excludes one or more servers specified in advance from the plurality of servers, and then determines the server to which the target terminal will connect, according to the resource usage status of the excluded one or more servers, A second determination unit determines the server to which the operating terminal will connect, based on the resource usage status of one or more servers after the exclusions, When the aforementioned operating terminal remotely operates the aforementioned target terminal, the connection destination change unit changes the connection destination of either the operating terminal or the aforementioned target terminal to the server to which the other is connected. A device for changing connection destinations.
4. A connection destination changing device that is connected via a communication network to each of a plurality of servers to which the operating terminal and the target terminal are connected, and which determines the server to which the operating terminal and the target terminal are connected, A first determination unit determines the server to which the target terminal will connect, according to the resource usage status of the plurality of servers, A second determination unit determines which server the operating terminal will connect to, according to the resource usage status of the aforementioned plurality of servers, When the aforementioned operating terminal remotely operates the aforementioned target terminal, the connection destination change unit changes the connection destination of either the operating terminal or the aforementioned target terminal to the server to which the other is connected. A connection destination necessity determination unit determines whether or not to change the server to which the operating terminal and the target terminal are connected to another server, depending on the resource usage status of the server to which the operating terminal and the target terminal are connected. A device for changing connection destinations.
5. A user-operated terminal, a target terminal remotely controlled by the user-operated terminal, and a connection destination changing device connected via a communication network to each of a plurality of servers to which the user-operated terminal and the target terminal are connected, which determines the server to which the user-operated terminal and the target terminal are connected, A first determination procedure involves excluding one or more servers specified in advance from the aforementioned plurality of servers, and then determining the server to which the target terminal will connect, based on the resource usage status of the one or more servers that have been excluded. A second determination procedure for determining the server to which the operating terminal will connect, based on the resource usage status of one or more servers after the exclusions, When remotely controlling the target terminal using the aforementioned operating terminal, a procedure for changing the connection destination of either the operating terminal or the target terminal to the server to which the other is connected, How to change the connection destination to execute the command.
6. A user-operated terminal, a target terminal remotely controlled by the user-operated terminal, and a connection destination changing device connected via a communication network to each of a plurality of servers to which the user-operated terminal and the target terminal are connected, which determines the server to which the user-operated terminal and the target terminal are connected, A first determination procedure for determining the server to which the target terminal will connect, based on the resource usage status of the aforementioned multiple servers, A second determination procedure for determining the server to which the operating terminal will connect, based on the resource usage status of the aforementioned multiple servers, When remotely controlling the target terminal using the aforementioned operating terminal, a procedure for changing the connection destination of either the operating terminal or the target terminal to the server to which the other is connected, A connection destination necessity determination procedure that determines whether or not to change the server to which the operating terminal and the target terminal are connected to another server, depending on the resource usage status of the server to which the operating terminal and the target terminal are connected, How to change the connection destination to execute the command.
7. A program for causing a computer to function as a connection destination changing system according to claim 1 or 2.
Citation Information
Patent Citations
Client server system, information distribution method, terminal for client server system, distribution information processing method at terminal, and program for it
JP2007065835A
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
Load balancer, load balancing method and program
WO2016104537A1