Connection destination change system, connection destination change device, connection destination change method, and program
The connection destination change system addresses inefficiencies in remote desktop services by dynamically reallocating viewer and agent connections based on server resource usage, improving efficiency and reducing costs.
Patent Information
- Application Number
- JP2025066197
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-04-14
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2042-04-21
AI Technical Summary
Conventional remote desktop services face inefficiencies in resource utilization due to fixed connection destinations, leading to potential resource insufficiency or inefficiency, with scaling up being costly and scaling out requiring complex management.
A connection destination change system that dynamically adjusts the servers for operation terminals and targets using a balancer to determine optimal server connections based on resource usage, allowing flexible assignment of viewer and agent connections.
This system enhances resource utilization efficiency by dynamically reallocating connection destinations based on server load, reducing costs and managing resource distribution effectively.
Smart Images

Figure 2025106530000001_ABST
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.). Remote desktop is a technology for operating the GUI (Graphical User Interface), desktop environment, etc. of another terminal (hereinafter also referred to as "operation target terminal") connected via a communication network by a terminal (hereinafter also referred to as "operation terminal") at the user's hand. Note that remote desktop may also be 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 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, 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 the conventional remote desktop service, the connection destinations of the agent and the viewer to the server were fixed.
[0006] Therefore, for example, when a group of users in a certain company or organization is defined, and the connection destination server of the viewer and agent used by the users in this group is set to a certain specific 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 or the like. In response, a measure of increasing the resources of the server (scaling up) can be considered, but generally, there is a problem that scaling up is costly. On the other hand, a measure of distributing the connection destinations of the viewer and agent used by the users in the group to multiple servers (scaling out) can also be considered. Although the cost of scaling out is lower than that of scaling up, it is necessary to manage which viewer and agent of which user should be connected to which server. Also, when a lot of surplus occurs in the resources of a certain server, the utilization of resources as a whole becomes inefficient.
[0007] The present disclosure has been made in view of the above points, and provides a technology for making the connection destination servers of the operation terminal and the operation target terminal in the remote desktop service variable.
Means for Solving the Problem
[0008] A connection destination change system according to an aspect of the present disclosure is 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 serving as connection destinations of the operation terminal and the operation target terminal, and a device that determines a server serving as a connection destination of the operation terminal and the operation target terminal. The system includes: a first determination unit that determines a server serving as a connection destination of the operation target terminal according to a resource usage status of one or more servers after excluding one or more servers specified in advance from the plurality of servers; a second determination unit that determines a server serving as a connection destination of the operation terminal according to the resource usage status of one or more servers after the exclusion; and a connection destination change unit that, when the operation target terminal is remotely operated by the operation terminal, changes a connection destination of either the operation terminal or the operation target terminal to a server to which the other is connected.
Effect of the Invention
[0009] A technology is provided that makes variable the connection destination servers of an operation terminal and an operation target terminal in a remote desktop service.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Mode for Carrying Out the Invention
[0011] Hereinafter, an embodiment of the present invention will be described. Hereinafter, in a remote desktop system 1 including a service providing system that provides a remote desktop service, a case where the connection destination server of the user's operation terminal and the connection destination server of the operation target terminal can be changed (variable) will be described. In the following, it is assumed that the user who uses the remote desktop service has account information including a user ID and a password corresponding thereto.
[0012] <Overall Configuration Example of Remote Desktop System 1> An overall configuration example of the 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 communicably connected via a communication network N such as the Internet, for example. Similarly, the operation target terminal 20 and the service providing system 30 are communicably connected via a communication network N such as the Internet, for example.
[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 or desktop environment 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 or desktop environment is operated by the operation terminal 10. The operation target terminal 20 is assumed to be installed, for example, in the company where the user works. A program called an agent 200 for operating the GUI or desktop environment 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 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 is a device or server that manages the resource usage status of each gateway server 70 and 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) or the like.
[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 types 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 a server to which the viewer 100 and the agent 200 are connected. Here, when operating the operation target terminal 20 by the operation terminal 10, it is necessary to connect the viewer 100 of the operation terminal 10 and the agent 200 of the operation target terminal 20 to the same gateway server 70 and establish a connection between the viewer 100 and the agent 200. For this reason, when operating the operation target terminal 20 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 that is the connection destination of either the viewer 100 or the agent 200 to the gateway server 70 that is the connection destination of the other. As a result, the viewer 100 and the agent 200 are connected via the same gateway server 70, and the GUI, desktop environment, etc. of the operation target terminal 20 can be operated by the operation terminal 10. As a result, a remote desktop service is provided to the user. In the following, when distinguishing each of the N (where N ≥ 2) gateway servers 70, they will be represented as "gateway server 70-1", "gateway server 70-2", ···, "gateway server 70-N", etc. On the other hand, when not distinguishing each of the N gateway servers 70, they will simply be represented as "gateway server 70".
[0021] Note that the overall configuration of the remote desktop system 1 shown in FIG. 1 is an example and is not limited thereto. For example, in the example shown in FIG. 1, the service providing system 30 is configured by the API server 40, the balancer 50, the DB server 60, and a plurality of gateway servers 70. However, for example, 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] <Functional configuration example of service providing system 30> The functional configuration examples of the API server 40, the balancer 50, and the gateway server 70 included in the service providing system 30 according to the present embodiment are shown in FIG. 2.
[0023] ≪API Server 40≫ As shown in FIG. 2, the API server 40 according to the present embodiment includes an authentication processing unit 401 and an agent list acquisition processing unit 402. Each of these units is realized, for example, by a process in which one or more programs installed in the API server 40 are executed by an arithmetic unit such as a CPU (Central Processing Unit).
[0024] When the authentication processing unit 401 receives an authentication request including the account information set or input to the viewer 100, it executes an authentication process for authenticating whether the account information is valid. Similarly, when the authentication processing unit 401 receives an authentication request including the account information set in the agent 200, it executes an authentication process for authenticating whether the account information is valid. Note that the viewer 100 and the agent 200 can make an authentication request using an API (for example, a REST API or the like) provided by the API server 40.
[0025] When the agent list acquisition processing unit 402 receives an agent list acquisition request for acquiring a list of agents 200 (hereinafter also referred to as an agent list) that can be connected to the viewer 100, it executes an agent list acquisition process. Note that the viewer 100 can make an agent list acquisition request using an API (for example, a REST API or the like) provided by the API server 40.
[0026] Note that when executing the authentication process, the authentication processing unit 401 may refer to the 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 the information stored in the DB server 60 or store information in the DB server 60 as necessary.
[0027] ≪Balancer 50≫ As shown in FIG. 2, the balancer 50 according to the present 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 executed by one or more programs installed in the balancer 50 on an arithmetic device such as a CPU. Further, the balancer 50 according to the present embodiment has a storage unit 504. The storage unit 504 is realized by various storage devices such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), and a flash memory, for example.
[0028] The distribution processing unit 501 executes a process of distributing which gateway server 70 to connect the viewer 100 and the agent 200 to according to the resource usage status of each gateway server 70. In other words, the distribution processing unit 501 determines the gateway server 70 that is the connection destination of the viewer 100 and the gateway server 70 that is the connection destination of the agent 200 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 as the connection destination by the distribution processing unit 501.
[0030] The connection destination change necessity determination unit 503 determines whether to change the gateway server 70 that is the connection destination of the viewer 100 and the agent 200 according to the resource usage status of each gateway server 70. That is, when the remote desktop service is provided to the user, the connection destination change necessity determination unit 503 determines whether to change the connection destinations of the viewer 100 and the agent 200 connected to the same gateway server 70 to another gateway server 70.
[0031] The memory unit 504 stores resource information representing 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 this 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 generally 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, it is not limited to this, and the resource usage status of each gateway server 70 may be, for example, the CPU usage rate of the gateway server 70, the memory usage amount, the network utilization bandwidth (throughput), etc. Note that the resource usage status is updated, for example, at predetermined time intervals or in real time.
[0032] ≪Gateway Server 70≫ As shown in FIG. 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 executed by one or more programs installed in the gateway server 70 on an arithmetic device such as a CPU.
[0033] When the connection permission unit 701 receives a connection request from the balancer 50, it permits the connection to the viewer 100 or agent 200 corresponding to this connection request and establishes the 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 to the agent 200 selected from the agent list, it executes a process of selecting the agent 200 as the connection target of the viewer 100.
[0035] After establishing the connection between the viewer 100 and the agent 200, the service providing unit 703 executes various processes for realizing the remote desktop service between the viewer 100 and the agent 200. Further, when the connection destination of the viewer 100 or the agent 200 is changed, the service providing unit 703 disconnects the connection with the currently connected gateway server 70 and sends a connection destination change request to the viewer 100 or the agent 200 to 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 the agent connection destination information in the DB server 60, or updates (edits or deletes, etc.) the viewer connection destination information and the agent connection destination information stored in the DB server 60.
[0037] Here, 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, a session ID, and the like. The agent ID is identification information for identifying the agent 200. The user ID is the user ID of the account information used for authenticating the agent 200. The connection destination ID is identification information (for example, 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] The agent connection destination information shown in Figure 3 includes the agent ID "agent001", the user ID "user001", the connection destination ID "server001", and the session ID "session001". This indicates that the agent 200 with 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 with the connection destination ID "server001" through the session with the session ID "session001".
[0039] Note that the agent connection destination information shown in Figure 3 is just an example and is not limited to this. For example, the agent connection destination information may include various information other than the agent ID, user ID, connection destination ID, and session ID.
[0040] Also, an example of the viewer connection destination information is shown in Figure 4. As shown in Figure 4, the viewer connection destination information includes the operation terminal ID, user ID, connection destination ID, session ID, etc. The operation terminal ID is identification information (such as IP (Internet Protocol) address, MAC (Media Access Control) address, serial number, manufacturer-specific number, etc.) for identifying the operation terminal 10 on which the viewer 100 is operating. The user ID is the user ID of the account information used for the authentication of the viewer 100. The connection destination ID is identification information (such as server ID, etc.) for identifying the gateway server 70 to which the viewer 100 is connected. The session ID is identification information for identifying the session between the viewer 100 and the gateway server 70. Generally, it is possible to simultaneously use multiple viewers 100 operating on multiple operation terminals 10 with the same user ID. Therefore, each viewer 100 can be identified from other viewers 100 by the operation terminal ID.
[0041] The viewer connection destination information shown in FIG. 4 includes the operation terminal ID "t001", the user ID "user001", the connection destination ID "server002", and the session ID "session002". This indicates that the viewer 100 operating 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 connection destination ID "server002" through the session with the session ID "session002".
[0042] Note that the viewer connection destination information shown in FIG. 4 is just an example and is not limited thereto. For example, the viewer connection destination information may include various information other than the operation terminal ID, user ID, connection destination ID, and session ID.
[0043] <Agent Connection Process> Hereinafter, the process (agent connection process) when a certain agent 200 connects to the gateway server 70 will be described with reference to FIG. 5. Note that the agent connection process is started, for example, by the activation of the operation target terminal 20 on which the agent 200 is installed.
[0044] The agent 200 sends an authentication request to the API server 40 (step S101). The authentication request includes, for example, the user ID and password set for the agent 200.
[0045] When the authentication processing unit 401 of the API server 40 receives the authentication request, it executes an authentication process to authenticate whether the user ID and password included in the authentication request are valid (step S102). Note that the authentication processing unit 401 may perform the authentication on the API server 40 or may request another server (for example, an authentication server, etc.) to perform the authentication. Hereinafter, the description will continue 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 an authentication processing result indicating successful authentication, it sends 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. Hereinafter, although it is described that the session ID is not specified in the connection request, the agent 200 may specify the session ID in the connection request. When the 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, it refers to the resource information stored in the storage unit 504 and executes a process of distributing which gateway server 70 the agent 200 that is the source of this 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 the gateway server 70 to which the agent 200 is to be connected. In addition, the distribution processing unit 501 generates a session ID for identifying the session between the agent 200 and the gateway server 70 that is the connection destination.
[0049] Here, various methods can be considered for determining the gateway server 70 to be the connection destination. For example, the distribution processing unit 501 determines the gateway server 70 with the lowest resource utilization rate (that is, the gateway server 70 with the fewest connection counts of the viewer 100 and the agent 200) as the gateway server 70 to be the connection destination. Thereby, load distribution of resources can be realized among a plurality of gateway servers 70. However, this is just an example, and the distribution processing unit 501 may determine the gateway server 70 to be the connection destination by other methods.
[0050] For example, even when the distribution processing unit 501 is connected to the agent 200 that is the source of the connection request, if the resource utilization rate does not exceed the upper limit and the gateway server 70 with the highest resource utilization rate is determined as the gateway server 70 to be the connection destination. Specifically, for example, when the upper limit of the number of connections of each gateway server 70 is M, the distribution processing unit 501 determines the gateway server 70 whose number of connections is less than M and has the largest number of connections as the gateway server 70 to be the connection destination. Thereby, it becomes possible to improve the resource efficiency of each gateway server 70. For this reason, for example, when the gateway server 70 is realized by virtualization technology or the like provided by an external operator, it is possible to reduce costs by changing the configuration according to the resource utilization status of the gateway server 70.
[0051] Note that, for example, when maintenance or the like of a certain gateway server 70 is being performed, the distribution processing unit 501 excludes this gateway server 70 and then performs the above distribution.
[0052] Hereinafter, in the above step S105, it is assumed that the gateway server 70 to be the connection destination of the agent 200 is determined to be "gateway server 70-1", and the description will continue.
[0053] Subsequent to step S105, the connection request unit 502 of the balancer 50 transmits a connection request to the agent 200 to the gateway server 70-1 (step S106). 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 the above step S105.
[0054] When the connection permission unit 701 of the gateway server 70-1 receives a connection request, it permits the connection with the agent 200 having the agent ID included in this connection request (step S107). At this time, the connection permission unit 701 may determine whether to permit the connection according to some conditions. For example, the connection permission unit 701 may determine whether the authentication of the agent 200 has been successful, and permit the connection only when 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 included in the connection request received in step S107 above, and the identification information (for example, server ID, etc.) for identifying the gateway server 70-1, and then 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). As a result, the agent 200 is connected to the gateway server 70-1.
[0057] <Viewer connection process> Hereinafter, the process (viewer connection process) when a certain viewer 100 connects to the gateway server 70 will be described with reference to FIG. 6. The viewer connection process is started, for example, when the user starts the viewer 100 and inputs the user ID and the corresponding password, etc.
[0058] The viewer 100 transmits an authentication request to the API server 40 (step S201). The authentication request includes, for example, the user ID and password set or input to the viewer 100.
[0059] When the authentication processing unit 401 of the API server 40 receives an authentication request, it executes an authentication process to authenticate whether the user ID and password included in this authentication request are legitimate (step S202). Note that the authentication processing unit 401 may perform the authentication on the API server 40, or may request another server (for example, an authentication server, etc.) to perform the authentication. Hereinafter, the description will continue assuming that the above authentication is successful.
[0060] The authentication processing unit 401 of the API server 40 returns an authentication processing result indicating authentication success to the viewer 100 (step S203).
[0061] When the viewer 100 receives an authentication processing result indicating authentication success, it sends 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 operating and the user ID set or input to the viewer 100. Hereinafter, the description will be made assuming that no session ID is specified in the connection request, but the viewer 100 may specify a session ID in the connection request. When 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 processing unit 501 of the balancer 50 receives a connection request, it refers to the resource information stored in the storage unit 504 and executes a process of distributing which gateway server 70 the viewer 100 that is the source of this connection request is to 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 the gateway server 70 to which the viewer 100 is to be connected. In addition, the distribution processing unit 501 generates a session ID for identifying the session between the viewer 100 and the gateway server 70 that is its connection destination.
[0063] Here, the destination gateway server 70 may be determined by the same method as in step S105 of FIG. 5. That is, the distribution processing unit 501 may determine, for example, the gateway server 70 with the lowest resource utilization rate as the destination gateway server 70, or even when connected to the viewer 100 that is the source of the connection request, the gateway server 70 whose resource utilization rate does not exceed the upper limit and has the highest resource utilization rate may be determined as the destination gateway server 70.
[0064] Note that, similar to step S105 of FIG. 5, for example, when maintenance or the like of a certain gateway server 70 is being performed, the distribution processing unit 501 excludes this gateway server 70 and then performs the above distribution.
[0065] Hereinafter, in step S205 above, the description will continue on the assumption that the gateway server 70 that is the connection destination of the viewer 100 is determined to be "gateway server 70-2".
[0066] Subsequent to step S205, the connection request unit 502 of the balancer 50 transmits a connection request to the viewer 100 to the gateway server 70-2 (step S206). The connection request includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 is operating, the user ID set or input to the viewer 100, and the session ID generated in step S205 above.
[0067] When the connection permission unit 701 of the gateway server 70-2 receives the connection request, it permits the connection to the viewer 100 operating on the operation terminal 10 with the operation terminal ID included in this connection request (step S207). At this time, the connection permission unit 701 may determine whether to permit the connection according to some conditions. For example, the connection permission unit 701 may determine whether the authentication of the viewer 100 is successful and permit the connection only when the authentication is successful.
[0068] Next, the information management unit 704 of the gateway server 70-2 creates viewer connection destination information including the operation terminal ID, user ID, and session ID included in the connection request received in step S207 above, and the identification information (for example, server ID, etc.) 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> Hereinafter, Examples 1 and 2 of the process (agent selection and connection process) when the viewer 100 connected to the gateway server 70-2 in step S209 of FIG. 6 selects the agent 200 and then connects to the agent 200 via a certain gateway server 70 will be described.
[0071] ≪Agent Selection and Connection Process (Example 1)≫ Example 1 is a case where 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 (Example 1) will be described with reference to FIG. 7. Note that the agent selection and connection process starts after the connection between the viewer 100 and the gateway server 70 is established in step S209 of FIG. 6. Subsequently, the execution starts.
[0072] The viewer 100 sends an agent list acquisition request to the API server 40 (step S301). The agent list acquisition request includes, for example, the user ID set or input to 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 agent list acquisition processing (step S302). In this agent list acquisition processing, 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 for identifying these agents 200) is acquired.
[0074] The agent list acquisition processing unit 402 of the API server 40 returns the agent list acquired in step S302 above to the viewer 100 (step S303).
[0075] In the following, it will be continued to explain assuming that a certain agent 200 connected to the gateway server 70-1 is 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 operation terminal ID of the operation terminal 10 on which the viewer 100 is operating 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 the agent 200 with the agent ID included in this agent connection request as the connection destination of the viewer 100 that is the source of 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 obtained in step S306 above.
[0080] When the agent 200 receives the connection destination change request, it disconnects the connection with 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 obtained in step S306 above.
[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 the connection request with the agent 200 to the gateway server 70-2 (step S310). That is, the connection request unit 502 transmits the connection request with 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 with the agent 200 includes, for example, the agent ID of the agent 200 and the session ID of the viewer connection 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 above among the agent connection destination information stored in the DB server 60 (step S311). That is, the information management unit 704 updates the destination ID and session ID included in the agent connection destination information of the agent ID to the destination ID and session ID included in the connection request received in step S310 above, 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 in the session of the session ID. Thus, 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). As a result, it becomes possible to realize a remote desktop service between the viewer 100 and the agent 200 via this gateway server 70-2.
[0086] In addition, in the agent selection and connection process shown in FIG. 7, the case where 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 was described. However, it is not limited to this, 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 it is not necessary to change the connection destination of the agent 200, after steps S304 to S305 are executed, steps S306 to S310 are not executed, and 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 is a 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 described with reference to FIG. 8. Note that the agent selection and connection process starts after the connection between the viewer 100 and the gateway server 70 is established in step S209 of FIG. 6. Subsequently, the execution starts.
[0088] Steps S401 to S405 may be the same as steps S301 to S305 in FIG. 7 respectively, so the description thereof is 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 step S406 above.
[0091] When the viewer 100 receives the connection destination change request, it disconnects the connection with 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 operates, and the connection destination ID and session ID of the agent connection destination information acquired in step S406 above.
[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 the connection request with the viewer 100 to the gateway server 70-1 (step S410). That is, the connection request unit 502 transmits the connection request with 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 with the viewer 100 includes, for example, the operation terminal ID of the operation terminal 10 on which the viewer 100 operates, and the session ID of the agent connection destination information acquired in step S406 above.
[0094] The information management unit 704 of the gateway server 70-1 updates the viewer connection destination information of the operation terminal ID included in the connection request received in step S410 above 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 operation terminal ID to the connection destination ID and session ID included in the connection request received in step S410 above, 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 in the session of the session ID. Thus, 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). As a result, it becomes possible to realize a remote desktop service between the viewer 100 and the agent 200 via the gateway server 70-1.
[0097] In the agent selection and connection process shown in FIG. 8, the case where 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 was described. However, it is not limited to this, 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 it is not necessary 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 Process> Hereinafter, 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 the user of the operation terminal 10 on which the viewer 100 is operating. At this time, the process (dynamic connection destination change process) when dynamically changing the gateway server 70 of the connection destination between the viewer 100 and the agent 200 will be described with reference to FIG. 9. Hereinafter, it is assumed that the viewer 100 and the agent 200 are connected to the gateway server 70-1.
[0099] The connection destination change necessity determination unit 503 of the balancer 50 refers to the resource information stored in the storage unit 504 to determine whether 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, there are various ways to determine whether to change the gateway server 70 to which the viewer 100 and the 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 (that is, 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 just an example, and the connection destination change necessity determination unit 503 may determine whether to change the gateway server 70 to which the viewer 100 and the agent 200 are connected to another gateway server 70 by other methods.
[0101] Hereinafter, it will be continued to be described on the assumption that it has been determined to change the gateway server 70-1 to which the viewer 100 and the agent 200 are connected 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 operates and the agent ID of the agent 200.
[0103] The service providing unit 703 of the gateway server 70-1 transmits the connection destination change request to the agent 200 (step S503). Similarly, the service providing unit 703 of the gateway server 70-1 transmits the connection destination change request to the viewer 100 (step S504).
[0104] When the agent 200 receives the connection destination change request, it disconnects the connection with the gateway server 70-1 to which the agent 200 is currently connected (step S505). Similarly, when the viewer 100 receives the connection destination change request, it disconnects the connection with the gateway server 70-1 to which the viewer 100 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 balancer 50 receives connection requests from viewer 100 and agent 200, it refers to the resource information stored in storage unit 504 and executes processing to distribute which gateway server 70 the viewer 100 and agent 200 that are the sources of the connection requests should be connected to (step S509). That is, the distribution processing unit 501 refers to the resource information stored in storage unit 504 and determines the gateway server 70 that will be the connection destination for the viewer 100 and the agent 200. In addition, the distribution processing unit 501 generates a session ID that identifies the session between the viewer 100 and the agent 200 and the gateway server 70 that is their connection destination.
[0107] Here, the gateway server 70 that will be the connection destination may be determined in the same manner as in step S105 of FIG. 5 or step S205 of FIG. 6. However, the same gateway server 70 is determined as the connection destination for viewer 100 and agent 200.
[0108] Similar to step S105 of FIG. 5 and step S205 of FIG. 6, for example, when maintenance or the like of a certain gateway server 70 is being performed, the distribution processing unit 501 excludes this gateway server 70 and then performs the above distribution.
[0109] Hereinafter, in step S509 above, the description will continue assuming that the gateway server 70 that will be the connection destination for the viewer 100 and the agent 200 is determined to be "gateway server 70-3".
[0110] The connection request unit 502 of the balancer 50 sends 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 step S509 above.
[0111] Similarly, the connection request unit 502 of the balancer 50 sends 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 operating, the user ID set or input 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 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 the identification information (for example, 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 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 operation terminal ID included in the connection request to 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 operation terminal ID to the identification information (for example, server ID, etc.) 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 to 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 in the 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 in the session with the session ID.
[0116] Finally, the service providing unit 703 of the gateway server 70-3 establishes a connection for realizing a remote desktop service between the viewer 100 and the agent 200 (step S516). As a result, it becomes possible to realize a remote desktop service between the viewer 100 and the agent 200 via this gateway server 70-3. In this way, in the dynamic connection destination change process, during the provision of the remote desktop service, the gateway server 70 to which the viewer 100 and the agent 200 are connected can be dynamically changed to another gateway server 70 according to its resource usage status.
[0117] <Modification Example> Hereinafter, several modification examples of the present embodiment will be described.
[0118] ≪Modification Example 1≫ In the above embodiment, the resource usage situation of the gateway server 70 is assumed to be the number of connections of the viewer 100 and the agent 200 connected to the gateway server 70. At this time, for example, the weighted sum of the viewer 100 and the agent 200 may be used as the number of connections. For example, when 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 is n2, αn1 + βn2 (where α is the weight of the viewer 100, β is the weight of the agent 200, and they are preset values) may be used as the resource usage situation of the gateway server 70. Thereby, it becomes possible to consider an appropriate resource usage situation according to differences in communication characteristics between the viewer 100 and the agent 200 and the like.
[0119] <<Modification Example 2>> In the above Modification Example 1, the weight is set according to whether it is the viewer 100 or the agent 200. However, for example, the weight may be set according to whether the remote desktop service is actually being provided. Generally, this is because it is considered that the resource usage amount of the gateway server 70 is larger when the remote desktop service is being provided.
[0120] Here, generally, the viewer 100 connected to the gateway server 70 is providing the remote desktop service, while the agent 200 is waiting until it connects to the viewer 100, so it is not always providing the remote desktop service. Therefore, for example, when the number of connections of the viewer 100 connected to the gateway server 70 is n1, the number of connections of the agent 200 providing the remote desktop service is n 21 , and the number of connections of the agent 200 not providing the remote desktop service is n 22 As, αn1 + β1n 21 + β2n 22(However, α is the weight of the viewer 100, β1 is the weight of the agent 200 providing the remote desktop service, β2 is the weight of the agent 200 not providing the remote desktop service (i.e., the standby agent 200), and these are preset values.) It may be used as the resource usage status of the gateway server 70. Thereby, in addition to Modification Example 1, it becomes possible to consider an appropriate resource usage status according to whether or not the remote desktop service is being provided.
[0121] <<Modification Example 3>> In the above-described embodiment, even after establishing a connection for realizing the remote desktop service 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 establishing a connection for realizing the remote desktop service, the viewer 100 and the agent 200 may be connected to the gateway server 70 without passing through the balancer 50.
[0122] <<Modification Example 4>> In the above-described embodiment, the connection between the viewer 100 and the balancer 50 and the connection between the agent 200 and the balancer 50 are respectively specified using the session ID. However, for example, without using the session ID, the connection between the viewer 100 and the balancer 50 and the connection between the agent 200 and the balancer 50 may be respectively specified by other information. For example, the connection between the viewer 100 and the balancer 50 may be specified by a combination of the operation terminal ID and the user ID. Similarly, for example, the connection between the agent 200 and the balancer 50 may be specified by a combination of the agent ID and the user ID. Thereby, the session ID can be made unnecessary.
[0123] <<Modification Example 5>> In the above-described embodiment, for example, the balancer 50 may appropriately check whether the sessions with the viewer 100 and the agent 200 are disconnected, and update the DB server 60 according to the check result. Thereby, for example, when the sessions with the viewer 100 and the agent 200 are disconnected for some reason, it can be reflected in the viewer connection destination information and the agent connection destination information.
[0124] The present invention is not limited to the specifically disclosed above-described embodiment, and various modifications, changes, combinations with known technologies, etc. are possible without departing from the description of the claims.
Explanation of Reference Numerals
[0125] 1 Remote desktop system 10 Operation terminal 20 Terminal to be operated on 30 Service providing system 40 API server 50 Balancer 60 DB server 70 Gateway server 100 Viewer 200 Agent 401 Authentication processing unit 402 Agent list acquisition processing unit 501 Distribution processing unit 502 Connection request unit 503 Determination unit for necessity of changing connection destination 504 Storage unit 701 Connection permission unit 702 Agent selection processing unit 703 Service providing unit 704 Information management unit
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 that are connection destinations of the operation terminal and the operation target terminal, and a device that determines a server that is a connection destination of the operation terminal and the operation target terminal, a first determination unit that determines a server that is a connection destination of the operation target terminal according to a resource usage status of one or more servers excluding one or more servers specified in advance from the plurality of servers, a second determination unit that determines a server that is a connection destination of the operation terminal according to a resource usage status of one or more servers excluding one or more servers specified in advance from the plurality of servers, and a connection destination change unit that, when remotely operating the operation target terminal by the operation terminal, changes a connection destination of either the operation terminal or the operation target terminal to a server to which the other is connected. A connection destination change system having the above.
2. 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 that are connection destinations of the operation terminal and the operation target terminal, and a device that determines a server that is a connection destination of the operation terminal and the operation target terminal, a first determination unit that determines a server that is a connection destination of the operation target terminal according to a resource usage status of the plurality of servers, a second determination unit that determines a server that is a connection destination of the operation terminal according to a resource usage status of the plurality of servers, a connection destination change unit that, when remotely operating the operation target terminal by the operation terminal, changes a connection destination of either the operation terminal or the operation target terminal to a server to which the other is connected, and a connection destination necessity determination unit that determines whether to change a server to which the operation terminal and the operation target terminal are connected to another server according to a resource usage status of the server to which the operation terminal and the operation target terminal are connected. A connection destination change system having the above.
3. A connection destination change device connected to each of an operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and a plurality of servers that are connection destinations of the operation terminal and the operation target terminal via a communication network, and determining a server that is a connection destination of the operation terminal and the operation target terminal, A first determination unit that, after excluding one or more servers specified in advance from the plurality of servers, determines a server to be the connection destination of the operation target terminal according to the resource usage status of the one or more servers after the exclusion; A second determination unit that determines a server to be the connection destination of the operation terminal according to the resource usage status of the one or more servers after the exclusion; A connection destination changing unit that, when the operation target terminal is remotely operated by the operation terminal, changes the connection destination of either the operation terminal or the operation target terminal to the server to which the other is connected; A connection destination changing device having the above.
4. An operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers serving as connection destinations of the operation terminal and the operation target terminal are connected via a communication network. A connection destination changing device that determines a server serving as a connection destination of the operation terminal and the operation target terminal, A first determination unit that determines a server to be the connection destination of the operation target terminal according to the resource usage status of the plurality of servers; A second determination unit that determines a server to be the connection destination of the operation terminal according to the resource usage status of the plurality of servers; A connection destination changing unit that, when the operation target terminal is remotely operated by the operation terminal, changes the connection destination of either the operation terminal or the operation target terminal to the server to which the other is connected; A connection destination necessity determination unit that determines whether or not to change the servers to which the operation terminal and the operation target terminal are connected to other servers according to the resource usage status of the servers to which the operation terminal and the operation target terminal are connected; A connection destination changing device having the above.
5. An operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers serving as connection destinations of the operation terminal and the operation target terminal are connected via a communication network. A connection destination changing device that determines a server serving as a connection destination of the operation terminal and the operation target terminal, A first determination procedure that, after excluding one or more servers specified in advance from the plurality of servers, determines a server to be the connection destination of the operation target terminal according to the resource usage status of the one or more servers after the exclusion; A second determination procedure that determines a server to be the connection destination of the operation terminal according to the resource usage status of the one or more servers after the exclusion; When remotely operating the operation target terminal by the operation terminal, a connection destination change procedure for changing the connection destination of either the operation terminal or the operation target terminal to the server to which the other is connected, and A connection destination change method for executing.
6. An operation terminal operated by a user, an operation target terminal remotely operated by the operation terminal, and each of a plurality of servers serving as connection destinations of the operation terminal and the operation target terminal are connected via a communication network, and a connection destination change device for determining a server serving as a connection destination of the operation terminal and the operation target terminal, A first determination procedure for determining a server serving as a connection destination of the operation target terminal according to the resource usage status of the plurality of servers, A second determination procedure for determining a server serving as a connection destination of the operation terminal according to the resource usage status of the plurality of servers, When remotely operating the operation target terminal by the operation terminal, a connection destination change procedure for changing the connection destination of either the operation terminal or the operation target terminal to the server to which the other is connected, and A connection destination necessity determination procedure for determining whether to change the servers to which the operation terminal and the operation target terminal are connected to other servers according to the resource usage status of the servers to which the operation terminal and the operation target terminal are connected, A connection destination change method for executing.
7. A program for causing a computer to function as the connection destination change 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