Control device, server, control system, and control method
The control device and method synchronize application startup and network switching to prevent control signal loss during migration by deriving optimal timings, ensuring reliable control signal delivery.
Patent Information
- Application Number
- JP2023563412
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-25
- Publication Date
- 2025-08-27
- Estimated Expiration
- 2041-11-25
AI Technical Summary
Control signals may not reach controlled devices due to timing issues during application migration from one server to another, resulting in packet loss and incomplete communication setup.
A control device and method that derive optimal launch and communication setup timings to ensure control signals are transmitted and received without interruption, using a launch unit, communication setting unit, and derivation unit to manage application startup and network switching.
Prevents control signals from being lost during migration by synchronizing application startup and network switching to align with communication timings, ensuring reliable control signal delivery.
Smart Images

Figure 0007730049000001 
Figure 0007730049000002 
Figure 0007730049000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a control device, a server, a control system, and a control method. [Background technology]
[0002] To make the Internet of Things (IoT) more economical, there are applications that use edge clouds to process various types of information sent from controlled devices such as IoT devices, and periodically send control signals to the controlled devices to control them. These applications are run on, for example, virtual machines (VMs) or containers with high-performance resources, as shown in Fig. 11.
[0003] In this case, when a certain server M becomes heavily loaded or when system maintenance is required for the server M, the application may be migrated to another server N, and the application may be started on the server N. Against this background, a migration technique for containers and the like has been proposed (see Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] Puliafito, C., Vallati, C., Mingozzi, E., Merlino, G., Longo, F., & Puliafito, A. (2019). Container migration in the fog: A performance evaluation. Sensors, 19(7), 1488. Summary of the Invention [Problem to be solved by the invention]
[0005] When an application is started by migrating it from server M to server N, the control signal may not reach the controlled device depending on the timing of the start. This will be explained in detail using FIG. 12. FIG. 12 is a timing chart. In FIG. 12, timing Ta indicates the timing when the application sends a control signal. Timing Tb indicates the timing when the control signal is output from the VM or container. Timing Tc indicates the timing when the controlled device receives the control signal.
[0006] 12, after migration to server N, the application is started on server N. Thereafter, when the communication path between the application and the controlled device is switched at timings Ta, Tb, and Tc, packets are lost, and the control signal may not reach the controlled device.
[0007] In view of the above circumstances, an object of the present invention is to provide a technique for preventing a control signal from not being received. [Means for solving the problem]
[0008] One aspect of the present invention is a control device comprising: a launch unit that launches an application that is launched in a virtual machine or container constructed on a server and periodically transmits control information to a controlled device in another virtual machine or another container; a communication setting unit that, when the launch unit launches the application in another virtual machine or another container, performs settings to enable communication between the launched application and the controlled device; and a derivation unit that derives a timing at which the launch unit will launch the application, such as a timing at which no settings are made by the communication setting unit between the transmission of the control information from the application and the reception of the control information by the controlled device; and the launch unit is a control device that launches the application in another virtual machine or another container at the timing derived by the derivation unit.
[0009] One aspect of the present invention is a server that includes a startup unit that, in response to instructions from a control device, starts an application in a virtual machine or container that transmits control information to a controlled device, and a notification unit that notifies the control device of the transmission timing at which the application transmits the control information to the controlled device and the reception completion timing at which the control information is received by the controlled device.
[0010] One aspect of the present invention is a control system including a control device and a server, the control system comprising: a launch unit that launches an application that is launched in a virtual machine or container constructed on the server and periodically transmits control information to a controlled device, in another virtual machine or another container; a communication setting unit that, when the launch unit launches the application in the other virtual machine or another container, performs settings to enable communication between the launched application and the controlled device; and a derivation unit that derives a timing at which the launch unit will launch the application, such as a timing at which no setting is made by the communication setting unit between the transmission of the control information from the application and the reception of the control information by the controlled device, and the launch unit launches the application in the other virtual machine or another container at the timing derived by the derivation unit; and the server is a control system comprising: a launch instruction receiving unit that launches the application in the virtual machine or container in response to an instruction from the control device; and a notification unit that notifies the control device of the transmission timing at which the application transmitted the control information and the reception completion timing at which the control information was received by the controlled device.
[0011] One aspect of the present invention is a control method comprising: a startup step of causing another virtual machine or another container to start an application that is started in a virtual machine or container constructed on a server and that periodically transmits control information to a controlled device; a communication setting step of, when the application is started in the other virtual machine or another container by the startup step, performing settings to enable communication between the started application and the controlled device; and a derivation step of deriving, as the timing at which the startup step will start the application, a timing at which no setting is performed by the communication setting step between the transmission of the control information from the application and the reception of the control information by the controlled device; wherein, in the startup step, the application is started in the other virtual machine or another container at the timing derived by the derivation step.
[0012] One aspect of the present invention is a control method comprising: a startup step of starting, in a virtual machine or container, an application that transmits control information to a controlled device in response to an instruction from a control device; and a notification step of notifying the control device of the transmission timing at which the application transmitted the control information to the controlled device and the reception completion timing at which the control information was received by the controlled device.
[0013] One aspect of the present invention is a control method in a control system including a control device and a server, wherein the control device includes: a startup step in which the control device causes another virtual machine or another container to start an application that is started in a virtual machine or container constructed on the server and that periodically transmits control information to a controlled device; a communication setting step in which, when the application is started in the other virtual machine or another container by the startup step, the application is configured to enable communication between the started application and the controlled device; and a derivation step in which the startup step derives a timing at which no configuration is made by the communication setting step between the transmission of the control information from the application and the reception of the control information by the controlled device, as the timing at which the application is started in the startup step.The startup step causes the other virtual machine or another container to start the application at the timing derived by the derivation step, and the server includes: a startup instruction receiving step in which the control device instructs the server to start the application in the virtual machine or the container; and a notification step in which the control device is notified of the transmission timing at which the application transmitted the control information and the reception completion timing at which the control information was received by the controlled device. [Effects of the Invention]
[0014] The present invention can prevent control signals from not being received. [Brief explanation of the drawings]
[0015] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration including a control system. [Figure 2] 10 is a timing chart showing a list of patterns that can prevent a control signal from not being received; [Figure 3] FIG. 2 is a diagram illustrating an example of the configuration of a control device. [Figure 4] FIG. 2 illustrates an example of the configuration of a server. [Figure 5] FIG. 2 is a diagram illustrating an example of the configuration of a control target device. [Figure 6] 10 is a flowchart showing the process flow for both patterns A and B1. [Figure 7] 10 is a flowchart showing the process flow of pattern B2. [Figure 8] FIG. 2 is a diagram illustrating an example of the configuration of a control device. [Figure 9] 10 is a flowchart showing the process flow of both patterns C and D. [Figure 10] 10 is a diagram illustrating an example of the configuration of a nonlinear compensation unit when a total of M pieces of channel distribution information are output from a channel distribution estimation unit. FIG. [Figure 11] FIG. 1 is a diagram illustrating a configuration example in the prior art. [Figure 12] FIG. 1 is a timing chart according to the prior art. DETAILED DESCRIPTION OF THE INVENTION
[0016] An embodiment of the present invention will be described in detail with reference to the drawings. Fig. 1 is a diagram showing an example of a configuration including a control system 10 according to this embodiment. Fig. 1 shows a control device 100, servers 201 and 202, a switch 300, a network NW, and a controlled device 400.
[0017] The control device 100 performs various controls on the servers 201 and 202 and the switch 300. Specifically, the control device 100 performs controls such as starting an application by migrating it from the server 201 to the server 202 and switching the path of the switch 300. In this embodiment, the application periodically transmits a control signal to the control target device 400. Furthermore, the application is started in a VM (Virtual Machine) or a container constructed on the servers 201 and 202 as described later.
[0018] The servers 201 and 202 can be configured as VMs or containers. In this embodiment, two servers are shown as an example, but three or more servers may be used. When there is no need to distinguish between the servers 201 and 202, they are referred to as server 200.
[0019] The switch 300 switches the communication path of the control target device 400 to the server 201 or the server 202 under the control of the control device 100. The network NW is a network that connects the control target device 400 and the server 200. In FIG. 1, the control target device 400 is shown as a drone as an example, but it may be any device that can be controlled by an application.
[0020] 2 is a timing chart showing a list of patterns (A, B1, B2, C, D) that can prevent control signals from being blocked even when migration is performed. In FIG. 2, the horizontal axis represents time. Also, "S" represents the timing derived by the control device 100 (startup timing and setting timing, which will be described later).
[0021] "Application startup" refers to the startup process of an application. "Switch switching" refers to the path switching process of the switch 300. "Reconnection" refers to the connection process for enabling communication between the started application and the controlled device 400. A series of processes consisting of the path switching process and the reconnection process is referred to as communication setting process.
[0022] In FIG. 2, Ta indicates the timing when an application transmits a control signal. Tb indicates the timing when a control signal is output from a VM or a container. Tc indicates the reception completion timing when the control target device 400 receives the control signal. Of these, there are two methods for obtaining the timing Tc. One is to use the timing Tc as the timing when a response such as an ACK to the control signal is returned from the control target device 400. The other is to know in advance the network delay time from when the control signal is transmitted until it reaches the control target device 400, and use the network delay time as the timing obtained by adding the network delay time to the control signal transmission timing. The three timings Ta, Tb, and Tc are collectively referred to as communication timing.
[0023] In this embodiment, one cycle is defined as the time from timing Ta to the next timing Ta. It is also assumed that the communication setup process can be completed between timing Tc and timing Ta. Therefore, by setting the start timing of the communication setup process to a time when no communication timing occurs during the communication setup process, it is possible to prevent control signals from not being delivered.
[0024] In this embodiment, the above patterns are broadly classified into two, and will be described as two embodiments. The first embodiment describes control based on the time from when the startup process is started to when the communication setup process is completed (hereinafter referred to as "total time"). The second embodiment describes control based on the time from when the communication setup process, separate from the startup process, is started to when the communication setup process is completed, i.e., the communication setup process time. Of the above patterns, patterns A, B1, and B2 will be described in the first embodiment. Patterns C and D will be described in the second embodiment. Each embodiment will be described below.
[0025] (First embodiment) Pattern A shown in Fig. 2 is a pattern in which the total time fits within one cycle. Therefore, by deriving the timing to start the startup process so that the communication timing does not arrive during the communication setup process, it is possible to prevent the control signal from not being delivered.
[0026] 2 are patterns in which the total time does not fit within one cycle. Even in this case, by deriving the timing to start the startup process so that the communication timing does not arrive during the communication setup process, it is possible to prevent the control signal from not being delivered.
[0027] An example of the configuration of the first embodiment will be described. Fig. 3 is a diagram showing an example of the configuration of the control device 100. The control device 100 includes a server monitoring unit 101, a starting unit 102, a communication setting unit 103, a control signal monitoring unit 104, and a derivation unit 105.
[0028] The server monitoring unit 101 acquires status information such as resource usage rates from the server 201. When the acquired status indicates that the server 201 is under high load or that an application migration is necessary, in the case of patterns A and B1, the server monitoring unit 101 instructs the derivation unit 105 to derive the startup timing for starting the application in the server 202. In the case of pattern B2, the server monitoring unit 101 instructs the derivation unit 105 to derive the startup timing for starting the server 202 and the setting timing for starting the communication setting process. When the startup timing arrives, the startup unit 120 starts the application in a virtual machine or container built in the server 202.
[0029] The control signal monitoring unit 104 acquires the above-mentioned communication timings (Ta, Tb, Tc) from the server 200. By acquiring the communication timings multiple times, the control signal monitoring unit 104 can predict the period and the time at which the upcoming communication timings will occur. The period and the time at which the communication timings will occur are output to the derivation unit 105.
[0030] The derivation unit 105 derives, as the timing at which the activation unit 102 activates the application, a timing at which no setting is made by the communication setting unit 103 during the period from when control information is transmitted from the application (timing Ta) until the control-target device 400 receives the control information (timing Tc). At this time, the timing is derived based on the cycle and the time at which communication timing occurs.
[0031] When the launching unit 102 launches an application in another virtual machine or another container, or when the setting timing arrives, the communication setting unit 103 performs settings to enable communication between the launched application and the controlled device 400.
[0032] 4 is a diagram showing an example of the configuration of server 200. Server 200 includes application 210, notification unit 205, and activation instruction reception unit 206. Application 210 also includes transmission unit 201, control signal generation unit 202, reception unit 203, and analysis unit 204.
[0033] The receiving unit 203 receives various information from the control-target device 400 and outputs it to the analyzing unit 204. The analyzing unit 204 analyzes the various information acquired by the receiving unit 203 and outputs necessary information to the control signal generating unit 202. The control signal generating unit 202 generates a control signal based on the information output from the analyzing unit 204 and outputs it to the transmitting unit 201. The transmitting unit 201 transmits the control signal generated by the control signal generating unit 202 to the control-target device 400.
[0034] Upon receiving an instruction from the control device 100, the start instruction receiving unit 206 starts an application in a virtual machine or a container. The notification unit 205 notifies the control signal monitoring unit 104 of the control device 100 of the communication timing (Ta, Tb, Tc). The notification unit 205 also notifies the server monitoring unit 101 of the control device 100 of the load on the server 200.
[0035] 5 is a diagram showing an example of the configuration of a control target device 400. The control target device 400 is composed of a transmission unit 401, an information collection unit 402, a reception unit 403, and a device control unit 404. The reception unit 403 receives a control signal from the application 210 and outputs it to the device control unit 404. The device control unit 404 controls the entire device, such as the behavior of the control target device 400, the information to be collected, and the selection of information to be sent to the application 210. The information collection unit 402 collects various types of information and outputs it to the transmission unit 401. The transmission unit 401 sends the various types of information to the application 210.
[0036] The processing flow in the first embodiment will be described using flowcharts. "APP" in the flowcharts refers to an application. In patterns A and B1, the activation timing is derived as described in FIG. 2, while in pattern B2, both the activation timing and the setting timing are derived. Therefore, a flowchart showing the processing flow for both patterns A and B1 and a flowchart showing the processing flow for pattern B2 will be described.
[0037] 6 is a flowchart showing the process flow for both patterns A and B1. When migration is required, for example, when the load on the server 201 exceeds a threshold, the server monitoring unit 101 instructs the derivation unit 105 to derive timing (step S101). The derivation unit 105 derives the startup timing of the application (step S102). Here, the derivation unit 105 derives the startup timing of the application that completes the communication setup process before timing Ta based on the cycle and the time when the communication timing occurs. This derives the timing at which the communication setup unit 103 does not perform setup between the time when control information is transmitted from the application (timing Ta) and the time when the control-target device 400 receives the control information (timing Tc). The derivation unit 105 notifies the startup unit 102 of the derived startup timing.
[0038] The launch unit 102 determines whether the notified launch timing has arrived (step S104). When the launch timing arrives (step S104: YES), the launch unit 102 instructs the server 202 to launch the application (step S105). Next, the communication setting unit 103 notifies the switch 300 of a net temporary setting in response to the instruction from the launch unit 102 (step S106). This net temporary setting is a setting for sending various pieces of information sent from the controlled device 400 to the application on the server 201 to the application on the server 202 by mirroring. This enables the launched application on the server 202 to receive various pieces of information and generate a control signal.
[0039] The communication setup unit 103 determines whether the startup of the application on the server 202 is complete (step S107). When the application is started (step S107: YES), the communication setup unit 103 starts the communication setup process (step S108). Here, the communication setup unit 103 ends the temporary network setup, switches the path of the switch 300, and reconnects the application on the server 202 and the controlled device 400 so that they can communicate with each other.
[0040] 7 is a flowchart showing the processing flow of pattern B2. When migration becomes necessary, for example, when the load on server 201 exceeds a threshold, server monitor 101 instructs derivation unit 105 to derive timing (step S201). Derivation unit 105 derives startup timing and setting timing so that application startup and communication setting processing are performed at different cycles (step S202).
[0041] Here, the derivation unit 105 first derives the activation timing. Specifically, the derivation unit 105 derives the activation timing of an application at which the communication setup process is completed before timing Ta when the activation process and the communication setup process are performed consecutively. For example, the activation timing may be the activation timing at which the communication setup process is completed immediately after timing Tc when the activation process and the communication setup process are performed consecutively. Furthermore, the derivation unit 105 derives the activation timing of an application at which the communication setup process is completed before timing Ta based on the derived activation timing and the time at which the cycle and the communication timing occur. As a result, the derivation unit 105 derives the timing at which the communication setup process is not performed by the communication setup unit 103 from the time when control information is transmitted from the application (timing Ta) until the control-target device 400 receives the control information (timing Tc).
[0042] The derivation unit 105 notifies the activation unit 102 of the derived activation timing (step S203), and notifies the communication setting unit 103 of the setting timing (step S204).
[0043] The launch unit 102 determines whether the notified launch timing has arrived (step S205). If the launch timing has arrived (step S205: YES), the launch unit 102 instructs the server 202 to launch the application (step S206). Next, the communication setting unit 103 notifies the switch 300 of the above-mentioned net temporary setting in response to the instruction from the launch unit 102 (step S207).
[0044] The communication setup unit 103 determines whether the setup timing has arrived (step S208). When the setup timing has arrived (step S208: YES), the communication setup unit 103 starts the communication setup process (step S209). Here, the communication setup unit 103 ends the temporary network setup, switches the path of the switch 300, and reconnects the application of the server 202 and the controlled device 400 so that they can communicate with each other.
[0045] As described above, in any of patterns A, B1, and B2, a timing is derived in which no setting is performed by communication setting unit 103 during the period from when control information is transmitted from the application (timing Ta) until the control-target device 400 receives the control information (timing Tc). This makes it possible to prevent the control signal from not being delivered.
[0046] (Second embodiment) Patterns C and D shown in Figure 2 are both patterns where the total time does not fit within one cycle. In this case, too, by deriving the start timing of the communication setup process as a timing when no communication timing occurs during the communication setup process, it is possible to prevent the control signal from not being delivered.
[0047] A configuration example of the second embodiment will be described. The difference between the configuration of the second embodiment and the configuration of the first embodiment is the configuration of the control device 100. Therefore, only the configuration of the control device 100 will be described, and descriptions of other configurations will be omitted.
[0048] 8 is a diagram showing an example of the configuration of the control device 100. The control device 100 includes a server monitoring unit 101, a starting unit 102, a communication setting unit 103, a control signal monitoring unit 104, and a derivation unit 105.
[0049] The server monitoring unit 101 acquires status information such as resource usage rates from the server 201. When the acquired status indicates that the server 201 is under high load, for example, and that application migration is necessary, the server monitoring unit 101 instructs the starting unit 102 to start the application on the server 202. In response to an instruction from the server monitoring unit 101, the starting unit 120 causes a virtual machine or container built on the server 202 to start the application. When the application startup is complete, the starting unit 120 instructs the derivation unit 105 to derive a setting timing.
[0050] The control signal monitoring unit 104 acquires the above-mentioned communication timings (Ta, Tb, Tc) from the server 200. By acquiring the communication timings multiple times, the control signal monitoring unit 104 can predict the period and the time at which the upcoming communication timings will occur. The period and the time at which the communication timings will occur are output to the derivation unit 105.
[0051] The derivation unit 105 derives, as the setting timing, the timing at which the setting for enabling communication can be completed between the time when the control information transmitted from the application is received by the control target device 400 (timing Tc) and the time when the next control information is transmitted (timing Ta). At this time, the timing is derived based on the cycle and the time when the communication timing occurs.
[0052] When the setting timing arrives, the communication setting unit 103 performs setting to enable communication between the started application and the control-target device 400 .
[0053] The processing flow in the second embodiment will be explained using a flowchart. Fig. 9 is a flowchart showing the processing flow for both patterns C and D. When migration becomes necessary, for example, when the load on the server 201 exceeds a threshold, the server monitoring unit 101 instructs the starting unit 102 to start an application (step S301).
[0054] The launching unit 102 instructs the server 202 to launch the application (step S302). Next, the communication setting unit 103 notifies the switch 300 of the net temporary setting in response to the instruction from the launching unit 102 (step S303). The launching unit 102 determines whether the launch of the application on the server 202 has been completed (step S304). When the application has been launched (step S304: YES), the launching unit 102 instructs the derivation unit 105 to derive the setting timing (step S305).
[0055] The derivation unit 105 determines whether the communication setup process can be completed before timing Ta when the communication setup process is performed immediately after the current time (step S306). If the communication setup process can be completed before timing Ta (step S306: YES), the derivation unit 105 sets the setup timing to the timing immediately after the current time (step S307) and notifies the communication setup unit 103 of the setup timing (step S309).
[0056] If the communication setup process cannot be completed before timing Ta (step S306: NO), the derivation unit 105 sets the setup timing to the timing immediately after the next timing Tc from the current point in time (step S308) and notifies the communication setup unit 103 of the setup timing (step S309).
[0057] The communication setup unit 103 determines whether the setup timing has arrived (step S310). When the setup timing has arrived (step S310: YES), the communication setup unit 103 starts the communication setup process (step S311). Here, the communication setup unit 103 ends the temporary network setup, switches the path of the switch 300, and reconnects the application of the server 202 and the controlled device 400 so that they can communicate with each other.
[0058] As described above, in both patterns C and D, the timing at which the settings for enabling communication can be completed is derived between the time when the control information transmitted from the application is received by the controlled device 400 (timing Tc) and the time when the next control information is transmitted (timing Ta). This makes it possible to prevent the control signal from not being received.
[0059] (When there are multiple devices to be controlled) In the first and second embodiments, for simplicity, the description has been given assuming that there is one control-target device 400, but each embodiment can be applied even when there are multiple control-target devices. Generally, when there are multiple control-target devices, the timing and cycle for transmitting control information differ for each device.
[0060] Therefore, the derivation unit 105 derives the timing at which the communication setting unit 103 starts setting up to enable communication, and determines the timing at which the setting up to enable communication can be completed for all controlled devices between the time when the control information transmitted from the application is received by the controlled device and the time when the next control information is transmitted.
[0061] A specific explanation will be given using Fig. 10. Fig. 10 takes two control target devices P and Q as an example. Cycle P indicates the cycle corresponding to control target device P. Cycle Q indicates the cycle corresponding to control target device Q.
[0062] Timing Ta indicates the timing when an application that controls a control target device P transmits a control signal. Timing Tb indicates the timing when a control signal to the control target device P is output from a VM or a container. Timing Tc indicates the timing when the control target device P receives the control signal.
[0063] Timing ta indicates the timing when the application controlling the controlled device Q transmits a control signal. Timing tb indicates the timing when the control signal to the controlled device Q is output from the VM or container. Timing tc indicates the timing when the controlled device Q receives the control signal.
[0064] As shown in Fig. 10, for all controlled devices, the timing at which the settings for enabling communication can be completed between the time when the controlled device receives the control information transmitted from the application and the time when the next control information is transmitted is the time between tc and the next Ta. In this way, the setting timing is derived within a time period in which the time required for the communication setting process can be secured. In this case, the setting timing is naturally set to a timing at which the communication setting process can be completed within the time period.
[0065] If there is no time slot available to ensure the time required for communication setup processing, the first or second embodiment described above can be applied to each device individually, making it possible to accommodate cases where there are multiple controlled devices. For example, if application A running on virtual machine X is controlling controlled devices S and T, the first or second embodiment described above is applied to controlled device S and application A. In this case, virtual machine X runs application A as is to have it control controlled device T. After applying the first or second embodiment described above to controlled device S and application A, the first or second embodiment described above is applied to controlled device T and application A. In this way, it is possible to accommodate cases where there are multiple controlled devices.
[0066] In the first and second embodiments, two servers 201 and 202 are used as an example. However, because an application in the present embodiment is started on a virtual machine or a container, the present embodiment can also be applied to a case where the application is migrated to a different virtual machine or container built on a single server. When migrating to a different virtual machine or container built on a single server, in the first and second embodiments described above, the derivation unit 105 derives, as the timing at which the launch unit 102 starts the application, the timing at which the communication setup unit 103 does not perform configuration between the timing at which control information is transmitted from the application (timing Ta) and the timing at which a control signal is output from the VM or container (timing Tb). In the second embodiment, the derivation unit 105 derives, as the timing at which the communication setup process starts, the timing at which the communication setup unit 103 does not perform configuration between the timing at which control information is transmitted from the application (timing Ta) and the timing at which a control signal is output from the VM or container (timing Tb).
[0067] Furthermore, this method can be applied not only to migration between servers on the same cloud, but also between servers on different edge clouds. It can also be applied to migration due to high loads on partial hardware resources (such as GPUs (Graphics Processing Units) and FPGAs (Field Programmable Gate Arrays)) within a single server.
[0068] Each function of the control device 100 and the server 200 may be implemented using a processor such as a CPU (Central Processing Unit) and a memory. In this case, each function of the control device 100 and the server 200 is executed in the control device 100 and the server 200 by the processor executing a program. Note that all or part of the functions of the control device 100 and the server 200 may be implemented using hardware such as an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), or an FPGA (Field Programmable Gate Array). The above program may be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include portable media such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, and a semiconductor storage device (e.g., a solid-state drive (SSD)), and storage devices such as a hard disk and a semiconductor storage device built into a computer system. The above program may be transmitted via a telecommunications line.
[0069] Although an embodiment of the present invention has been described above in detail with reference to the drawings, the specific configuration is not limited to this embodiment, and includes designs within the scope of the gist of the present invention. [Industrial Applicability]
[0070] The present invention is applicable to migration technology. [Explanation of symbols]
[0071] 10...control system, 100...control device, 101...server monitoring unit, 102...startup unit, 103...communication setting unit, 104...control signal monitoring unit, 105...derivation unit, 120...startup unit, 200, 201, 202...server, 203...receiving unit, 204...analysis unit, 205...notification unit, 206...startup instruction receiving unit, 210...application, 300...switch, 400...control target device, 401...transmitting unit, 402...information collecting unit, 403...receiving unit, 404...device control unit
Claims
1. a launching unit that launches an application that is launched in a virtual machine or a container built on a server and periodically transmits control information to a control target device in another virtual machine or another container; a communication setting unit that, when the application is started by the starting unit in another virtual machine or another container, performs setting to enable communication between the started application and the control target device; a derivation unit that derives, as the timing at which the launch unit launches the application, a timing at which no setting is made by the communication setting unit between the time when the control information is transmitted from the application and the time when the control target device receives the control information; Equipped with The launch unit launches the application in another virtual machine or another container at the timing derived by the derivation unit.
2. The control device described in claim 1, wherein the derivation unit derives the timing at which the communication setting unit starts setting up to enable communication, as the timing at which the setting up to enable communication can be completed between the time the control information sent from the application is received by the controlled device and the time the next control information is sent.
3. The control device described in claim 1, wherein when there are multiple controlled devices, the derivation unit derives, as the timing for the communication setting unit to start setting up to enable communication, the timing at which the setting up to enable communication can be completed for all of the controlled devices between the time the control information sent from the application is received by the controlled device and the time the next control information is sent, as the timing for the communication setting unit to start setting up to enable communication.
4. a start instruction receiving unit that starts, in a virtual machine or a container, an application that transmits control information to a control target device in response to an instruction from the control device; a notification unit that notifies the control device of a transmission timing at which the application transmits control information to the control-target device and a reception completion timing at which the control information is received by the control-target device; Equipped with the start instruction receiving unit receives the instruction to start the application from the control device at a timing derived in the control device, the timing at which setting for enabling communication between the application and the control target device is not performed between the transmission timing and the reception completion timing. server.
5. A control system including a control device and a server, The control device a launching unit that launches an application that is launched in a virtual machine or a container built on a server and periodically transmits control information to a control target device in another virtual machine or another container; a communication setting unit that, when the application is started by the starting unit in another virtual machine or another container, performs setting to enable communication between the started application and the control target device; a derivation unit that derives, as the timing at which the launch unit launches the application, a timing at which no setting is made by the communication setting unit between the time when the control information is transmitted from the application and the time when the control target device receives the control information; Equipped with the launching unit launches the application in another virtual machine or another container at the timing derived by the derivation unit; The server a start instruction receiving unit that starts the application in a virtual machine or a container in response to an instruction from the control device; a notification unit that notifies the control device of a transmission timing at which the application transmits the control information and a reception completion timing at which the control information is received by the control target device; A control system with
6. a starting step of starting an application, which is started in a virtual machine or a container constructed on a server and periodically transmits control information to a control target device, in another virtual machine or another container; a communication setting step of performing settings to enable communication between the started application and the control target device when the application is started in another virtual machine or another container by the starting step; a derivation step of deriving, as the timing at which the application is to be started in the start-up step, a timing at which no setting is made in the communication setting step between the time when the control information is transmitted from the application and the time when the control target device receives the control information; Equipped with In the starting step, the application is started in another virtual machine or another container at the timing derived in the derivation step.
7. a startup step of starting, in a virtual machine or a container, an application that transmits control information to a control target device in response to an instruction from the control device; a notification step of notifying the control device of a transmission timing at which the application transmitted control information to the control-target device and a reception completion timing at which the control information was received by the control-target device; Equipped with In the activation step, the instruction to activate the application is received from the control device at a timing derived by the control device, the timing at which setting for enabling communication between the application and the control target device is not performed between the transmission timing and the reception completion timing. Control method.
8. A control method in a control system including a control device and a server, The control device a starting step of starting an application, which is started in a virtual machine or a container constructed on a server and periodically transmits control information to a control target device, in another virtual machine or another container; a communication setting step of performing settings to enable communication between the started application and the control target device when the application is started in another virtual machine or another container by the starting step; a derivation step of deriving, as the timing at which the application is to be started in the start-up step, a timing at which no setting is made in the communication setting step between the time when the control information is transmitted from the application and the time when the control target device receives the control information; Equipped with In the starting step, the application is started in another virtual machine or another container at the timing derived in the derivation step; The server a start instruction receiving step of starting the application in a virtual machine or a container in response to an instruction from the control device; a notification step of notifying the control device of a transmission timing at which the application transmitted the control information and a reception completion timing at which the control information was received by the control target device; A control method comprising:
Citation Information
Patent Citations
System, server and method for distributing control information, and program
JP2005157432A
Migration system of virtual machine, control device, and migration method
JP2014041414A
System and methods for hosting missions with unmanned aerial vehicles
US20170083979A1