Server system and server

The server system with a tree-like hierarchy and loose coupling manages application migration during non-operational times, addressing the challenges of updating control systems without downtime and reducing hardware needs.

JP2025114434APending Publication Date: 2025-08-05KK TOSHIBA
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024083815
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-24
Filing Date
2024-05-23
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

Existing methods for updating control systems without stopping operation require redundant systems, increasing hardware resources and costs, and application migration can fail to complete within one cycle, leading to system downtime.

Method used

A server system with a tree-like hierarchy of servers, where applications are loosely coupled and managed for seamless migration between servers using a source and destination management unit, allowing migration during non-operational times of individual programs.

Benefits of technology

Enables continuous operation of control systems during updates by minimizing downtime and reducing hardware requirements through efficient program migration.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025114434000001_ABST
    Figure 2025114434000001_ABST
Patent Text Reader

Abstract

To transfer without stopping an application executed in a fixed cycle.SOLUTION: A server system includes a plurality of servers connected between a plurality of layers in a tree form, and at least one server among the plurality of servers is included as a transfer source server or a transfer destination server. The transfer source server includes a transfer source application holding unit that can hold an application that is divided into a plurality of programs loosely coupled to one another and that operates in a fixed cycle, and a first transfer source management unit that manages transfer of the plurality of programs to the transfer destination server. The transfer destination server includes a transfer destination application holding unit that can hold an application that is divided into a plurality of programs loosely coupled to one another and that operates in a fixed cycle, and a first transfer destination management unit that manages transfer of the plurality of programs received from the transfer source server.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD An embodiment of the present invention relates to a server system and a server. [Background technology]

[0002] Traditionally, social infrastructure systems and industrial systems (hereafter referred to as control systems) have been used, operating without rest. When control systems are in operation, dedicated applications run on servers and other devices at regular intervals. The operating systems and hypervisors used by these servers and other devices for virtualization need to be updated periodically. In addition, the physical servers on which the operating systems and hypervisors are installed may also need to be updated. Furthermore, applications may also need to be updated to add new functions to them. It is desirable for these updates to be carried out without stopping the operation of the control system.

[0003] One method for updating a control system in operation is to make the entire control system redundant. However, this requires that two systems, one active and one standby, be prepared at all times, which increases the amount of hardware resources required and increases costs. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-304845 Summary of the Invention [Problem to be solved by the invention]

[0005] Therefore, for example, a method has been proposed that uses a server on which a control system runs and another server to which applications can be migrated from the server. For example, when updating a hypervisor or the like, the application is migrated to another server on which an updated hypervisor is built, and the control system is taken over by the other server. Also, when updating the application itself, the application is migrated to the other server, updated, and then migrated back to the original server, so that the updated control system continues to run on the original server.

[0006] However, migrating an application to another server can take a certain amount of time. If the application migration cannot be completed within one operation cycle, the application may stop operating, and as a result, the operation of the control system may also stop.

[0007] The embodiments of the present invention provide a server system and a server that can migrate applications that are executed at regular intervals without stopping them. [Means for solving the problem]

[0008] A server system according to an embodiment includes a plurality of servers connected in a tree structure among a plurality of hierarchical layers, and at least one of the plurality of servers is a source server or a destination server connected to the source server, and the source server includes a source application storage unit capable of storing applications that are divided into a plurality of programs that are loosely coupled to each other and that operate at a fixed cycle, and a first source management unit that manages the migration of the plurality of programs to the destination server, and the first source management unit includes a first system migration determination unit that determines the migration of the plurality of programs when a predetermined signal that instructs the migration of the plurality of programs is received from the outside and requests the migration of the plurality of programs to the destination server, and a first system migration determination unit that determines the migration of the plurality of programs when a predetermined signal that instructs the migration of the plurality of programs is received from the outside and requests the migration of the plurality of programs to the destination server, and a and a first transfer processing unit that migrates the plurality of programs to the destination server while each of the plurality of programs is not running, based on a response of the destination server to a system migration request, wherein the destination server comprises a destination application holding unit that is capable of holding an application that is divided into a plurality of programs that are loosely coupled with each other and that runs at a fixed cycle, and a first destination management unit that manages the migration of the plurality of programs received from the source server, wherein the first destination management unit comprises a first system migration instruction unit that responds to a request for migration of the plurality of programs when the request is received from the source server, and a first migration processing unit that receives the plurality of programs transferred from the source server and executes migration processing of the received plurality of programs. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a server system according to the first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of the functional configuration of the upper server according to the first embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of functions stored in the application storage unit of the first embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of the correspondence information database according to the first embodiment. [Figure 5] FIG. 5 is a diagram illustrating an example of the log information database according to the first embodiment. [Figure 6] FIG. 6 is a schematic diagram illustrating an example of the operation of the function transfer process in the first embodiment. [Figure 7] FIG. 7 is a sequence diagram showing the flow of the control system update process executed in the server system of the first embodiment. [Figure 8] FIG. 8 is a flowchart showing the flow of the function transfer process in the first embodiment. [Figure 9] FIG. 9 is a flowchart showing the flow of the schedule generation process in the first embodiment. [Figure 10] FIG. 10 is a diagram illustrating a first modification of the first embodiment. [Figure 11] FIG. 11 is a diagram illustrating a second modification of the first embodiment. [Figure 12] FIG. 12 is a diagram illustrating a third modification of the first embodiment. [Figure 13] FIG. 13 is a diagram illustrating a fourth modification of the first embodiment. [Figure 14] FIG. 14 is a diagram illustrating an example of the configuration of a server system according to the second embodiment. [Figure 15] FIG. 15 is a sequence diagram showing the flow of the update process of the control system executed in the server system of the second embodiment. [Figure 16] FIG. 16 is a diagram illustrating an example of the configuration of a server system according to the third embodiment. [Figure 17A] FIG. 17A is a sequence diagram showing the flow of the update process of the control system executed in the server system of the third embodiment. [Figure 17B] FIG. 17B is a sequence diagram showing the flow of the update process of the control system executed in the server system of the third embodiment. [Figure 18] FIG. 18 is a diagram illustrating an example of the configuration of a server system according to the fourth embodiment. [Figure 19]FIG. 19 is a diagram illustrating an example of the configuration of a server system according to the fifth embodiment. [Figure 20] FIG. 20 is a diagram illustrating an example of the functional configuration of the upper server and the update server according to the fifth embodiment. [Figure 21] FIG. 21 is a sequence diagram showing the flow of the update process of the control system executed in the server system of the fifth embodiment. [Figure 22] FIG. 22 is a diagram illustrating a modified example of the fifth embodiment. [Figure 23] FIG. 23 is a schematic diagram illustrating an example of the operation of a function transfer process in a server system of a comparative example. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0011] A server system according to an embodiment of the present invention is a system having a function of supporting updates to control systems such as social infrastructure systems and industrial systems. Here, a control system refers to software such as an operating system (OS) required for managing transportation fares and application programs that run on the OS. As described above, dedicated applications run in a control system. An application is a collection of programs that can execute various processes related to the control system. Various processes related to the control system can be realized by applications running at regular intervals on physical or virtual servers.

[0012] In the server system of the embodiment, for example, a road toll system operates as a control system, that is, the server system of the embodiment has a function of supporting the update of the road toll system.

[0013] [Embodiment 1] The server system SA of the first embodiment will be described with reference to FIGS.

[0014] FIG. 1 is a diagram showing an example of the configuration of a server system SA according to the first embodiment.

[0015] 1, the server system SA of the first embodiment includes a plurality of servers connected in a tree shape across a plurality of hierarchical levels (hereinafter, these multiple servers may be collectively referred to as multiple servers MSa). Specifically, the multiple servers MSa have a configuration in which upper level servers B1a to Bka (k is an integer equal to or greater than 1) are connected to a lower level of a top level server A0, middle level servers C1 to Cm (m is an integer equal to or greater than 1) are connected to a lower level of the upper level servers B1a to Bka, and lower level servers D1 to Dn (n is an integer equal to or greater than 1) are connected to a lower level of the multiple middle level servers C1 to Cm.

[0016] The subordinate servers D1 to Dn are installed at ETC gates EG1 to EGv (v is an integer equal to or greater than 1) at toll booths and ETC free-flow gates FG1 to FGw (w is an integer equal to or greater than 1) installed along the main roads, and are servers that collect information from these gates. Specifically, the subordinate servers D1 to Dn acquire vehicle information from on-board units of vehicles passing through ETC gates, etc. The vehicle information includes, for example, an on-board unit ID. The vehicle information acquired by the subordinate servers D1 to Dn is associated with information that identifies the ETC gates EG1 to EGv and gates FG1 to FGw, respectively, and is transmitted to the middle level servers C1 to Cm and to the upper level servers B1a to Bka via the middle level servers C1 to Cm.

[0017] The middle level servers C1 to Cm are servers that acquire vehicle information from the lower level servers D1 to Dn and aggregate driving route information that identifies the driving route for each vehicle. The middle level servers C1 to Cm store a driving route information database (hereinafter, may be referred to as driving route information DB) 100 that aggregates the driving route information in each of the storage devices CS105 to CSm05. For example, one middle level server C1 to Cm is installed at each road management office of a road operator.

[0018] The host servers B1a to Bka are servers that calculate discounts for each vehicle in cooperation with a travel route information DB 100 and a discount route information database (hereinafter, may be referred to as a discount route information DB) 200 that specifies transportation fare discount information for each route. The host servers B1a to Bka store the discount route information DB 200 and the results of discount calculations in storage devices BS105a to BSk05a, respectively.

[0019] When calculating discounts, a dedicated application for discount calculations runs on the host servers B1a to Bka. When the application runs, the host servers B1a to Bka record the processing time, which is the time the application ran, in a log information database (hereinafter may be referred to as log information DB) 300 stored in the storage devices BS105a to BSk05. The host servers B1a to Bka store, in the storage devices BS105a to BSk05, the log information DB 300 as well as a correspondence information database (hereinafter may be referred to as correspondence information DB 400) 400 that aggregates the log information DB 300. For example, one host server B1a to Bka is installed for each road operator.

[0020] Furthermore, the host servers B1a to Bka are connected to a traffic control system 14. The host servers B1a to Bka obtain information specifying the traffic volume (number of vehicles) traveling on the roads from the traffic control system 14. The greater the traffic volume, the greater the number of records that are the subject of discount calculations, for example. Therefore, the greater the traffic volume, the longer the application processing time, etc., may become.

[0021] The top-level server A0 is a server that compiles the results of discount calculations and works in conjunction with the toll management system. The top-level server A0 is a server shared by all road operators. For example, one top-level server A0 is installed nationwide.

[0022] The first embodiment is an embodiment assuming an example in which the physical server of the upper server B1a among the above-mentioned plurality of servers MSa becomes obsolete, and the control system is updated by replacing the physical server with a new server.

[0023] In the first embodiment, when updating the control system, an application is migrated between an upper server B1a as a migration source server and an upper server N1a as a migration destination server among the multiple servers MSa. The upper server N1a is a server other than the multiple servers MSa.

[0024] Specifically, in the first embodiment, an application is migrated from the upper server B1a on which the control system is currently running to the upper server N1a. After the application migration, the upper server B1a is replaced by the upper server N1a, and the control system starts running on the upper server N1a. Once the control system starts running on the upper server N1a, the upper server B1a is disconnected from the multiple servers MSa. During the application migration, the upper server N1a is temporarily connected to the middle server C1 and middle server C2.

[0025] Fig. 2 is a diagram showing an example of the functional configuration of the host server in embodiment 1. Fig. 2 shows the functional configuration of the host server B1a and the host server N1a.

[0026] As described above, the upper server B1a is a server that migrates an application to the upper server N1a. The upper server B1a is configured to include a physical server BS10 to be disposed of, a hypervisor BS11 installed on the physical server BS10, and a virtual server BS12. The platform on the physical server BS10 may be an OS.

[0027] The physical server BS10 is a computer equipped with physical hardware resources such as a processor BS101 such as a CPU, a storage unit BS102 such as RAM or ROM, a storage device BS105a such as an HDD or SSD, and a communication unit BS103. The processor BS101 builds a virtual server BS12 on the physical server BS10 by, for example, reading and executing a hypervisor BS11 program from the storage unit BS102. The storage device BS105a stores a discount route information DB200, a log information DB300, a correspondence information DB400, and the like. The communication unit BS103 communicates with the upper server N1a. Here, the storage device BS105a is an example of a storage unit. The discount route information DB200, the log information DB300, and the correspondence information DB400 will be described in detail below.

[0028] The virtual server BS12 includes a source management server BS120a, a destination management server BS160a, and a source function group server BS130a.

[0029] The source function group server BS130a is a virtual server that mainly executes various controls related to holding of applications, and includes an application holding unit BS131a as a functional unit.

[0030] The application holding unit BS131a is a processing unit that holds the application before migration. The application holding unit BS131a is an example of a source application holding unit.

[0031] As described above, an application is a collection of programs capable of executing various processes related to the control system. In the application storage unit BS131a, applications are stored in a state in which they are divided into programs corresponding to the purpose of the process. Each divided application is loosely coupled to each other. Hereinafter, divided applications will be referred to as "functions." A function is an example of a program.

[0032] In this embodiment, loose coupling refers to a state of coupling in which the connections between functions and their mutual associations are relatively low, and each function is highly independent. Each of the multiple functions is divided so that the data passed between the functions is in a single format, so that the data referenced or output when each function operates can be passed between the functions in a simple format.

[0033] FIG. 3 is a diagram showing an example of functions stored in the application storage unit BS131a of the first embodiment.

[0034] 3, the application storage unit BS131a stores, for example, a route discount calculation function (hereinafter, may be referred to as function A), a driving route information aggregation function (hereinafter, may be referred to as function B), a search function (hereinafter, may be referred to as function C), a time synchronization function (hereinafter, may be referred to as function D), and a setting function (hereinafter, may be referred to as function E). Each of functions A to E operates at a fixed cycle in the upper server B1a to perform various processes according to the purpose.

[0035] The processing time of each of functions A to E may be affected by traffic volume. That is, functions A to E have different degrees of impact of traffic volume on their processing time. For example, functions A to C are functions whose processing time is greatly impacted by traffic volume. This is because the number of records to be processed by functions A to C increases or decreases with traffic volume, so the processing time of functions A to C increases as traffic volume increases and decreases as traffic volume decreases. On the other hand, for example, functions D and E are functions whose processing time is only slightly impacted by traffic volume. This is because the processing time of functions D and E is not affected by traffic volume.

[0036] Each of functions A to E includes information indicating the degree of influence of traffic volume. Specifically, functions A, B, and C include information indicating that the degree of influence of traffic volume is large, and functions D and E include information indicating that the degree of influence of traffic volume is small. Note that in this embodiment, the degree to which each function is influenced by traffic volume is described in two patterns, large and small, as described above, but is not limited to this. The degree to which each function is influenced by traffic volume may also be classified into three patterns, large, medium, and small.

[0037] Returning to Figure 2, the source management server BS120a is a virtual server that manages the migration of functions to the upper server N1a. The source management server BS120a has a system migration determination unit BS121 and a transfer processing execution unit BS122a as functional units. The source management server BS120a is an example of a first source management unit.

[0038] The system migration determination unit BS121 is a processing unit that determines whether to migrate functions to the upper server N1a. Specifically, when the system migration determination unit BS121 receives a predetermined signal, for example, input from outside, instructing the migration of multiple functions, it determines whether to migrate the multiple functions stored in the application storage unit BS131a. Furthermore, when the system migration determination unit BS121 determines to migrate the functions, it requests the upper server N1a to migrate the multiple functions. When the system migration determination unit BS121 receives a response from the upper server N1a, it instructs the transfer processing execution unit BS122a to transfer the functions. In other words, the system migration determination unit BS121 can trigger the migration of functions to the upper server N1a. The system migration determination unit BS121 is an example of a first system migration determination unit.

[0039] The transfer processing execution unit BS122a is a processing unit that transfers functions to the upper server N1a. The transfer processing execution unit BS122a includes, as functional units, a traffic volume understanding unit BS123, a processing time / transfer time acquisition unit BS124, a processing time / transfer time accumulation unit BS125, a transfer processing unit BS126, and a scheduling unit BS127.

[0040] The traffic volume grasping unit BS123 is a processing unit that grasps the traffic volume of a road. Specifically, the traffic volume grasping unit BS123 acquires traffic volume data indicating the traffic volume from the traffic control system 14. The traffic volume grasping unit BS123 acquires, for example, traffic volume data for 10 minutes immediately before starting the transfer of functions to the upper server N1a.

[0041] The method of acquiring traffic volume data is not limited to the above example. For example, the traffic volume grasping unit BS123 may acquire traffic volume data based on the traffic volume determined based on the vehicle information acquired by the lower level servers D1 to Dn, the amount of information of the travel route information, the size of each database such as the travel route information DB100 and the log information DB300, and the communication volume.

[0042] The processing time / transfer time acquisition unit BS124 is a processing unit that acquires the processing times of multiple functions in the host server B1a and the transfer times to the host server N1a. When acquiring the processing times and transfer times, the processing time / transfer time acquisition unit BS124 refers to the correspondence information DB400 stored in the storage device BS105a.

[0043] Fig. 4 is a diagram showing an example of the correspondence information DB 400 according to the first embodiment. As shown in Fig. 4, the correspondence information DB 400 is a database that associates, for each of a plurality of functions, traffic volume, processing time in the host server B1a, transfer time to the host server N1a, function capacity, and communication bandwidth between the host server B1a and the host server N1a. The correspondence information DB 400 is stored in the storage device BS105a.

[0044] The processing time / transfer time acquisition unit BS124 acquires the processing time and transfer time of each of the multiple functions corresponding to the traffic volume data acquired by the traffic volume understanding unit BS123 from the correspondence information DB400. This makes it possible to estimate the processing time and transfer time corresponding to the traffic volume for each of the multiple functions. Furthermore, based on the transition of the processing time relative to the traffic volume, it is possible to identify for each function whether the function is significantly affected by traffic volume or not. The processing time / transfer time acquisition unit BS124 estimates the processing time and transfer time based on the correspondence information DB400 using linear approximation, machine learning, etc.

[0045] The processing time / transfer time accumulation unit BS125 is a processing unit that generates the correspondence information DB 400. The processing time / transfer time accumulation unit BS125 generates the correspondence information DB 400 based on the log information DB 300 stored in the storage device BS105a.

[0046] FIG. 5 is a diagram illustrating an example of a log information DB 300 according to the first embodiment. The log information DB 300 includes a history of various processes that occurred in the host server B1a and the host server N1a. For example, the log information DB 300a in FIG. 5(a) associates and registers the measurement results (actual measurements) of the actual processing times of functions with traffic volume. The log information DB 300b in FIG. 5(b) associates and registers the function capacity, the actual measurement values of processing time, and the actual measurement values of transfer time for each of a plurality of functions. The log information DB 300c in FIG. 5(c) associates and registers the function capacity, the communication bandwidth between the host server B1a and the host server N1a, and the actual measurement values of transfer time for each of a plurality of functions.

[0047] Specifically, the processing time and transfer time accumulation unit BS125 acquires the measurement results (actual measurements) of the actual processing times of the functions, associates them with traffic volume, and records them in the log information DB 300a. The processing time and transfer time accumulation unit BS125 also acquires the actual measurements of the processing times and transfer times, associates them with the function capacity, and records them in the log information DB 300b. The processing time and transfer time accumulation unit BS125 also acquires the actual measurements of the transfer times, associates them with the function capacity and communication bandwidth, and records them in the log information DB 300c. The processing time and transfer time accumulation unit BS125 stores the log information DBs 300a to 300c in the storage device BS105a. The processing time and transfer time accumulation unit BS125 aggregates the data registered in the log information DBs 300a to 300c, and registers the aggregated results in the correspondence information DB 400 described above.

[0048] The processing time / transfer time accumulation unit BS125 shares the log information DB 300a and the correspondence information DB 400 among the host servers B1a-Bka. Specifically, for example, the processing time / transfer time accumulation unit BS125 performs a setting in the host server B1a to grant access rights from the host servers B2a-Bka to the log information DB 300 and the correspondence information DB 400 stored in the storage device BS105a. Here, the access rights may be, for example, Read Only or both Read and Write. This allows data to be accumulated in the log information DB 300 in each of the host servers B1a-Bka. As a result, the amount of data in the correspondence information DB 400 increases, improving the accuracy of the estimation of the processing time and transfer time of each function performed by the processing time / transfer time acquisition unit BS124. The sharing method is not limited to the above-described access right granting method.

[0049] The transfer processing unit BS126 is a processing unit that transfers functions to the upper server N1a. Specifically, the transfer processing unit BS126 transfers a plurality of functions to the upper server N1a while each of the functions is not operating, based on an instruction based on a response from the upper server N1a to a function transfer request from the system transfer determination unit BS121.

[0050] When transferring functions, the transfer processing unit BS126 refers to schedule information acquired from the scheduling unit BS127. The schedule information is information that determines the order in which functions are transferred to the upper server N1a so that the processing time and transfer time of the functions fall within a fixed cycle. Based on the transfer order determined by the schedule information, the transfer processing unit BS126 transfers each of the multiple functions to the upper server N1a while the function is not operating on the upper server B1a.

[0051] The scheduling unit BS127 is a processing unit that generates schedule information. Specifically, the scheduling unit BS127 determines whether traffic volume exceeds a threshold based on traffic volume data acquired by the traffic volume grasping unit BS123. The threshold is a reference value for judging the amount of traffic volume, and is determined in advance based on, for example, the log information DB300. The scheduling unit BS127 generates schedule information based on the determination result of whether traffic volume exceeds the threshold, the processing times of the multiple functions acquired by the time / transfer time acquiring unit BS124, and information indicating the degree of influence of traffic volume on the transfer times and processing times of the multiple functions.

[0052] For example, when traffic volume exceeds a threshold, the scheduling unit BS127 generates schedule information so as to preferentially transfer functions whose processing time is less affected by traffic volume compared to when traffic volume does not exceed the threshold. Also, for example, when traffic volume does not exceed the threshold, the scheduling unit BS127 generates schedule information so as to preferentially transfer functions whose processing time is more affected by traffic volume compared to when traffic volume exceeds the threshold.

[0053] Fig. 6 is a schematic diagram illustrating an example of the operation of the function transfer process in the first embodiment. For convenience of explanation, the example in Fig. 6 illustrates an example of the operation of the transfer process of functions A, C to E, and functions A, C to E operate in parallel. In addition, in the example in Fig. 6, it is assumed that, of the four cycles, traffic volume is high in the first and second cycles and low in the third and fourth cycles. Therefore, the processing time of function A, whose processing time is greatly affected by traffic volume, is long in the first and second cycles.

[0054] Specifically, in the first cycle of operation in the upper server B1a, if the scheduling unit BS127 determines that traffic volume exceeds a threshold, it generates schedule information that determines to migrate, for example, function C, of functions C to E that are less affected by traffic volume, to the upper server N1a. When the operation of function C is completed, the transfer processing unit BS126 migrates function C to the upper server N1a. When the migration of function C is completed, the transfer processing unit BS126 stops the operation of function C in the upper server B1a.

[0055] Next, in the second cycle of operation in the upper server B1a, if the scheduling unit BS127 determines that traffic volume exceeds the threshold, it generates schedule information that determines to migrate, for example, function D of functions D to E that are less affected by traffic volume to the upper server N1a. When the operation of function D is completed, the transfer processing unit BS126 migrates function D to the upper server N1a. When the transfer of function D is completed, the transfer processing unit BS126 stops the operation of function D in the upper server B1a.

[0056] Next, in the third cycle of operation in the upper server B1a, if the scheduling unit BS127 determines that the traffic volume does not exceed the threshold, it generates schedule information that determines to migrate function A, which is heavily affected by traffic volume, to the upper server N1a. When the operation of function A is completed, the transfer processing unit BS126 migrates function A to the upper server N1a. When the transfer of function A is completed, the transfer processing unit BS126 stops the operation of function A in the upper server B1a.

[0057] Next, in the fourth cycle of operation in the upper server B1a, if the scheduling unit BS127 determines that traffic volume does not exceed the threshold, it generates schedule information that determines to migrate function E, which has a small impact on processing time due to traffic volume, to the upper server N1a. When the operation of function E is completed, the transfer processing unit BS126 migrates function E to the upper server N1a. When the transfer of function E is completed, the transfer processing unit BS126 stops the operation of function E in the upper server B1a.

[0058] In FIG. 6, the transfer processing unit BS126 transfers not only the functions A, C to E, but also shared data such as shared memories and files including data referenced or output by the functions A, C to E.

[0059] Returning to FIG. 2, the destination management server BS160a is a virtual server that manages the migration of functions received when the upper server B1a accepts the migration of functions from the upper server N1a. The destination management server BS160a is an example of a second destination management unit. The destination management server BS160a includes a system migration instruction unit BS161 and a migration processing unit BS162 as functional units. The system migration instruction unit BS161 is an example of a second system migration instruction unit, and the migration processing unit BS162 is an example of a second migration processing unit.

[0060] The system migration instruction unit BS161 and migration processing unit BS162 of the destination management server BS160a have configurations corresponding to the system migration instruction unit NS161 and migration processing unit NS162 of the destination management server NS160a described below, so their explanation will be omitted here.

[0061] In this way, since the upper server B1a has the destination management server BS160a, the upper server B1a can not only manage the migration of functions to the upper server N1a, but also manage the migration of functions received from the upper server N1a.

[0062] The upper server N1a is a server that accepts application migration from the upper server B1a. The upper server N1a is configured to include a physical server NS10, a hypervisor NS11, and a virtual server NS12. In the first embodiment, it is assumed that the hypervisor NS11 is updated before the application is migrated from the upper server B1a. The specific configurations of the physical server NS10 and the hypervisor NS11 correspond to the configurations of the physical server BS10 and the hypervisor BS11 in the upper server B1a, and therefore a description thereof will be omitted. The platform on the physical server NS10 may be an OS.

[0063] The virtual server NS12 is configured to include a source management server NS120a, a destination management server NS160a, and a destination function group server NS130a.

[0064] The destination function group server NS130a is a virtual server that mainly executes various controls related to the holding of applications migrated from the upper level server B1a. The destination function group server NS130a includes an application holding unit NS131a as a functional unit.

[0065] The application holding unit NS131a is a processing unit that can hold functions received from the application holding unit BS131a of the upper server B1a. The application holding unit NS131a is an example of a migration destination application holding unit.

[0066] The destination management server NS160a is a virtual server that manages the migration of multiple functions received from the upper server B1a. The destination management server NS160a has a system migration instruction unit NS161 and a migration processing unit NS162 as functional units. The destination management server NS160a is an example of a first destination management unit.

[0067] The system migration instruction unit NS161 is a processing unit that instructs the migration of functions in the upper server N1a. Specifically, when the system migration instruction unit NS161 receives a function migration request from the system migration determination unit BS121 of the upper server B1a, it responds to the system migration determination unit BS121. This causes the upper server N1a to start preparations for receiving the function. The system migration instruction unit NS161 is an example of a first system migration instruction unit.

[0068] The migration processing unit NS162 is a processing unit that executes control related to the reception of functions transferred from the upper server B1a. Specifically, the migration processing unit NS162 receives functions transferred by the transfer processing unit BS126 of the upper server B1a and outputs them to the application storage unit NS131a.

[0069] The migration processing unit NS162 performs migration processing of the received function. Specifically, the migration processing unit NS162 checks the operation of the function output to the application storage unit NS131a, and then performs processing to start the operation of the control system. When the control system starts, the migration processing unit NS162 notifies the upper server B1a that the control system has been stopped. When the control system in the upper server B1a is stopped, the migration processing unit NS162 receives a notification from the upper server B1a that the control system has been stopped completely. The processing from checking the operation of the function to notifying the control system that it has been stopped completely corresponds to the migration processing. The migration processing unit NS162 is an example of a first migration processing unit.

[0070] The source management server NS120a is a virtual server that manages the migration of functions when the host server N1a migrates functions to the host server B1a. The source management server NS120a is an example of a second source management unit.

[0071] The source management server NS120a has, as its functional units, a system migration determination unit NS121 and a transfer processing execution unit NS122. The transfer processing execution unit NS122 also has, as its functional units, a traffic volume understanding unit NS123, a processing time / transfer time acquisition unit NS124, a processing time / transfer time accumulation unit NS125, a transfer processing unit NS126, and a scheduling unit NS127. The system migration determination unit NS121 is an example of a second system migration determination unit, and the transfer processing unit NS126 is an example of a second transfer processing unit.

[0072] The configurations of the system migration determination unit NS121 and transfer process execution unit NS122 of the source management server NS120a correspond to the configuration of the source management server BS120a described above, and therefore detailed description will be omitted.

[0073] In this way, by having the upstream server N1a have the source management server NS120a, the upstream server N1a can not only manage the migration of functions received from the upstream server B1a, but also manage the migration of functions to the upstream server B1a.

[0074] FIG. 7 is a sequence diagram showing the flow of the control system update process executed in the server system SA of the first embodiment.

[0075] Prior to step S101, the application storage unit BS131a of the host server B1a stores in advance a plurality of functions that are loosely coupled to one another.

[0076] In step S101, the migration processing unit NS162 of the upper server N1a updates the hypervisor NS11 of the upper server N1a.

[0077] In step S102, the system migration determination unit BS121 of the host server B1a determines whether to migrate the functions. Specifically, when the system migration determination unit BS121 receives a predetermined signal indicating the start of the update process of the control system from, for example, an input unit (not shown), the system migration determination unit BS121 determines to migrate the functions to the host server N1a.

[0078] In step S103, when the system migration determination unit BS121 determines to migrate the function, it requests the system migration instruction unit NS161 of the upper server N1a to migrate the function.

[0079] In step S104, upon receiving the function migration request from the system migration determination unit BS121, the system migration instruction unit NS161 responds with a function migration request.

[0080] In step S105, the system transition determination unit BS121 transmits an instruction to the transfer processing execution unit BS122a to transition the function.

[0081] In step S106, the transfer process execution unit BS122a executes the function transfer process. The flow of the transfer process will be described later with reference to FIG.

[0082] In step S107, the migration processing unit NS162 of the host server N1a checks the operation of the function transferred from the host server B1a.

[0083] In step S108, the migration processing unit NS162 starts operation of the control system in the upper server N1a.

[0084] In step S109, the migration processing unit NS162 notifies the transfer processing execution unit BS122a (transfer processing unit BS126) of the upper level server B1a of the shutdown of the control system in the upper level server B1a.

[0085] In step S110, the transfer process execution unit BS122a (transfer processing unit BS126) performs processing to stop the operation of the functions in the upper server B1a, and stops the control system.

[0086] In step S111, the transfer process execution unit BS122a (transfer processing unit BS126) notifies the migration processing unit NS162 of the upper level server N1a that the control system has been shut down. The upper level server B1a is replaced by the upper level server N1a and is disconnected from the multiple servers MSa.

[0087] This completes the update process of the control system in the first embodiment.

[0088] Fig. 8 is a flowchart showing the flow of the function transfer process in embodiment 1. The function transfer process shown in Fig. 8 is performed as part of the update process of the control system described above.

[0089] 8, the transfer processing unit BS126 of the upper server B1a determines whether or not there is a function to be transferred. If the transfer processing unit BS126 determines that there is a function to be transferred (step S121: Yes), the process proceeds to step S122. If the transfer processing unit BS126 determines that there is no function to be transferred (step S121: No), the transfer process ends.

[0090] In step S122, the traffic volume grasping unit BS123 acquires traffic volume data.

[0091] In step S123, the scheduling unit BS127 determines whether the traffic volume exceeds a threshold based on the traffic volume data. If the scheduling unit BS127 determines that the traffic volume exceeds the threshold (step S123: Yes), the process proceeds to step S124. If the scheduling unit BS127 does not determine that the traffic volume exceeds the threshold (step S123: No), the process proceeds to step S129.

[0092] In step S124, the scheduling unit BS127 determines whether or not there is a function that is less affected by traffic volume among the functions to be transferred. If the scheduling unit BS127 determines that there is a function that is less affected by traffic volume (step S124: Yes), the process proceeds to step S125. If the scheduling unit BS127 determines that there is no function that is less affected by traffic volume (step S124: No), the process returns to step S121.

[0093] In step S125, the processing time / transfer time acquisition unit BS124 acquires the processing time of each of the multiple functions in the host server B1a and the transfer time to the host server N1a based on the traffic volume data.

[0094] In step S126, the scheduling unit BS127 generates schedule information based on the acquired processing times and transfer times for each of the multiple functions. Hereinafter, the process of generating schedule information based on the acquired processing times and transfer times may be referred to as a schedule generation process. The flow of the schedule generation process will be described later with reference to FIG. 9.

[0095] In step S127, the transfer processing unit BS126 transfers the function to the upper server N1a while the function is not running on the upper server B1a based on the generated schedule information. The processing time / transfer time accumulation unit BS125 accumulates the processing time, transfer time, etc. of the function in the log information DB300.

[0096] In step S128, the processing time / transfer time accumulation unit BS125 associates the processing time, transfer time, traffic volume data, capacity of multiple functions, and communication bandwidth for each function based on the log information DB300, and registers them in the correspondence information DB400.

[0097] On the other hand, in step S129, the scheduling unit BS127 determines whether or not any of the functions to be transferred is significantly affected by traffic volume. If the scheduling unit BS127 determines that any of the functions to be transferred is significantly affected by traffic volume (step S129: Yes), the process proceeds to step S130. If the scheduling unit BS127 determines that any of the functions to be transferred is not significantly affected by traffic volume (step S124: No), the process returns to step S124.

[0098] The processing in steps S130 to S133 corresponds to the processing in steps S125 to S128, and therefore a description thereof will be omitted.

[0099] This completes the transfer process of the first embodiment.

[0100] Fig. 9 is a flowchart showing the flow of schedule generation processing in embodiment 1. The schedule generation processing for the functions shown in Fig. 9 is performed as part of the above-mentioned transfer processing and control system update processing.

[0101] In step S151, when the processing time for each of the multiple functions and the transfer time to the upper server N1a are acquired, the scheduling unit BS127 determines whether there are multiple functions to be transferred. If the scheduling unit BS127 determines that there are multiple functions to be transferred (step S151: Yes), the process proceeds to step S152. If the scheduling unit BS127 determines that there are not multiple functions to be transferred (step S151: No), the schedule generation process ends.

[0102] In step S152, the scheduling unit BS127 extracts, from among the plurality of functions to be transferred, a function with a longer transfer time as a function to be transferred.

[0103] In step S153, the scheduling unit BS127 determines schedule information that specifies that the extracted functions are to be migrated to the upper level server N1a, and then the schedule generation process ends.

[0104] [Summary]

[0105] Fig. 23 is a schematic diagram illustrating an example of the operation of a function transfer process in a server system of a comparative example. Fig. 23(a) is a diagram illustrating an example of the operation when functions A to D are migrated all at once from an upper-level server B1z to an upper-level server N1z. Fig. 23(b) is a diagram illustrating an example of the operation when functions A to D are migrated from an upper-level server B1z to an upper-level server N1z without taking schedule information into consideration.

[0106] In conventional control systems, applications operate as a collection of programs, such as "functions A+B+C+D" (hereinafter referred to as function group ABCD). As shown in FIG. 23(a), for example, in the second cycle of operation of function group ABCD on host server B1z, when the operation of function group ABCD is completed, function group ABCD is transferred all at once to host server N1z. At this time, the migration time of function group ABCD may exceed the time corresponding to a certain cycle. This is because functions A to D are closely intertwined, and a phenomenon may occur in which, for example, the migration of function A takes too long, delaying the completion of migration of function B. This may cause the application to stop for more than one cycle.

[0107] In contrast, according to the server system SA of embodiment 1, the upper server B1a holds an application that is divided into multiple functions that are loosely coupled to each other and that operate at regular intervals, and each of the multiple functions is migrated to the upper server N1a while the function is not operating on the upper server B1a.

[0108] Because each of the multiple functions is a separate application, the processing time and the time required for migration are relatively short. Since each of the multiple functions is transferred to the upper server N1a in a short time while it is not running on the upper server B1a, the transfer can be completed more reliably within a fixed cycle. Furthermore, because each of the multiple functions can be migrated individually and in stages, even if the transfer of one function takes a long time, it is possible to avoid affecting the migration of other functions. As a result, applications that operate at a fixed cycle can be migrated to the upper server N1a without stopping them. As a result, it is possible to update the control system without stopping it.

[0109] Furthermore, as shown in Figure 23(b), if there is heavy traffic during the time period corresponding to the first and second cycles of the operations of functions A to D, the processing time of function A, which is heavily affected by traffic, may increase. For example, if an attempt is made to migrate function A to the upper server N1a after the first cycle of operation has finished, the migration may not be completed within the cycle. Function A, whose migration completion is delayed until the second cycle, will start processing on the upper server N1z, but due to the delayed start of processing, the processing of function A may not be completed within the cycle.

[0110] In contrast, according to the server system SA of the first embodiment, the host server B1a estimates the processing time and transfer time of functions corresponding to the traffic volume data based on the correspondence information DB 400. The host server B1a generates schedule information that determines the order of function transfer so that the transfer is completed within the period based on the estimated processing time and transfer time, and transfers the functions to the host server N1a based on the schedule information. More specifically, the host server B1a generates schedule information so that when traffic volume is high, the host server B1a transfers functions whose processing time is less affected by traffic volume, and when traffic volume is low, the host server B1a transfers functions whose processing time is more affected by traffic volume.

[0111] This allows the migration to be completed more reliably without stopping the application, even if the functions to be transferred include functions whose processing time increases depending on traffic volume.

[0112] In the server system SA of the first embodiment, the host server B1a and the host server N1a each include a destination management server having a functional unit that manages the migration of functions received from other servers, and a source management server having a functional unit that manages the migration of functions to other servers. This allows each server to operate as a migration source and a migration destination of an application, making it possible to update the control system without stopping it.

[0113] Furthermore, the server system SA of the first embodiment allows the correspondence information DB 400 to be shared among a plurality of upper level servers, including the upper level servers B1a and N1a, that belong to the same hierarchical level as the upper level servers B1a and N1a.

[0114] This increases the amount of data stored in the correspondence information DB 400, improving the accuracy of estimating function processing times and transfer times. As a result, the accuracy of schedule information generation increases, making it possible to more reliably complete migration to the upper server N1a without stopping applications.

[0115] Modifications of the first embodiment will be described below with reference to Figures 10 to 13. Note that in the following, when configurations and functions similar to those of the first embodiment are present, their description may be omitted.

[0116] [Modification 1 of Embodiment 1] FIG. 10 is a diagram illustrating a first modification of the first embodiment.

[0117] The server system of Modification 1 differs from Embodiment 1 in the configurations of the host server B1b and the host server N1b. Specifically, in the above-described Embodiment 1, the host server B1a and the host server N1a each include one source function group server BS130a and one destination function group server NS130a. In contrast, in Modification 1, the host server B1b and the host server N1b each include four source function group servers BS130b1-BS130b4 and destination function group servers NS130b1-NS130b4.

[0118] The four source function group servers BS130b1-BS130b4 and destination function group servers NS130b1-NS130b4 have application holding units BS131b1-BS131b4 and application holding units NS131b1-NS131b4 as functional units, respectively. The application holding units BS131b1-BS131b4 and application holding units NS131b1-NS131b4 each hold a plurality of functions in a shared manner.

[0119] [Modification 2 of Embodiment 1] FIG. 11 is a diagram illustrating a second modification of the first embodiment.

[0120] The server system of Modification 2 differs from Embodiment 1 in the configurations of the upper server B1c and the upper server N1c. Specifically, in the above-described Embodiment 1, the source management server BS120a of the upper server B1a is equipped with a transfer processing unit BS126, and the destination management server BS160a is equipped with a migration processing unit BS162. Also, the source management server NS120a of the upper server N1a is equipped with a transfer processing unit NS126, and the destination management server NS160a is equipped with a migration processing unit NS162. In contrast, in Modification 2, the source function group server BS130c is equipped with a transfer processing unit BS126 and a migration processing unit BS162, and the destination function group server NS130c is equipped with a transfer processing unit NS126 and a migration processing unit NS162.

[0121] Furthermore, without being limited to the examples of the above-described modified examples 1 and 2, some of the functions of the source management server BS120a may be possessed by the source function group server BS130a, or some of the functions of the source function group server BS130a may be possessed by the source management server BS120a. Also, some of the functions of the source management server NS120a may be possessed by the destination function group server NS130a, or some of the functions of the destination function group server NS130a may be possessed by the source management server NS120a. Alternatively, for example, the source management server BS120a and the source function group server BS130a may be configured integrally as a single virtual server, or the source management server NS120a and the destination function group server NS130a may be configured integrally as a single virtual server.

[0122] [Modification 3 of Embodiment 1] FIG. 12 is a diagram illustrating a third modification of the first embodiment.

[0123] The server system of the third modification differs from that of the first embodiment in that it includes a broker Br. The broker Br is an intermediary server that enables communication between the host server B1d and the host server N1d.

[0124] 12 is a sequence diagram showing a state in which a broker Br mediates message exchange in a function transfer process. The host server N1d includes a broker Br. The broker Br may also be included in the host server B1d.

[0125] Here is an example of a topic used in the sequence diagram in Figure 12. In Figure 12, a topic is used in which the message type and the function ID of the function running in the virtual server are connected by a hyphen, for example, as shown below. The following types of messages are used in Figure 12:

[0126] "addr-req" is a topic that requests an address. The function ID of the request destination is written after "addr-req". "addr-res" is a topic that responds to an address request. The function ID running in the virtual server that responded is written after "addr-res". "addr-mes" is a topic that notifies an address. The function ID of the notifier is written after "addr-mes". "sw" is a topic that notifies that the destination has been switched to the migration target virtual server. The function IDs of the sender and destination are written consecutively after "sw". "fin-recv" is a topic that notifies that reception has finished. The function IDs of the sender and destination are written consecutively after "fin-recv".

[0127] As shown in Figure 12, for example, assume that function B, which is the source of function C, is held in upper server B1d, and function P, which is the destination of function C, is held in upper server N1d. The transfer target is function C. Specifically, broker Br mediates the sending and receiving of messages between function B held in upper server B1d and function P held in upper server N1d. By having broker Br, lightweight messages can be exchanged between function B and function P, as shown in Figure 12. This makes it possible to transfer function C without stopping the application.

[0128] As middleware, lightweight data distribution protocols such as MQTT (Message Queueing Telemetry Transport) Broker, Apache Kafka, and MQ can be used.

[0129] [Fourth Modification of First Embodiment] FIG. 13 is a diagram illustrating a fourth modification of the first embodiment.

[0130] The server system of Modification 4 differs from Embodiment 1 in the timing at which the operation of the functions after migration is stopped. Specifically, in Embodiment 1, the operation of the functions in the upper server B1a is stopped each time the migration of each of the functions A, C to E to the upper server N1a is completed. In contrast, in Modification 4, the operation of the functions A, C to E continues in the upper server B1a even after the transfer of the functions A, C to E is completed.

[0131] Fig. 13 is a schematic diagram illustrating an example of the operation of the function transfer process in Modification 4. The example in Fig. 13 also shows an example of the operation of the transfer process of functions A, and C to E, and functions A, C to E are assumed to operate in parallel. Also in the example in Fig. 13, it is assumed that of the four cycles, traffic volume is high in the first and second cycles and low in the third and fourth cycles.

[0132] Specifically, in the first cycle, the host server B1e continues to operate function C even after the migration of function C is completed. That is, in the second cycle, functions A, C to E of the host server B1e and function C of the host server N1e will operate. Explanations for the second and subsequent cycles will be omitted.

[0133] As a result, immediately after the transfer of functions A, C to E to the host server N1e is completed, the functions are temporarily operational in both the host server B1e and the host server N1e. This may also result in the control system being operational in both the host server B1e and the host server N1e.

[0134] [Embodiment 2] The server system of the second embodiment will be described with reference to FIGS.

[0135] FIG. 14 is a diagram illustrating an example of the configuration of the server system SB according to the second embodiment.

[0136] The second embodiment is an embodiment assuming an example in which the control system is updated by updating the hypervisor BS11 of the upper server B1a among the multiple servers MSb.

[0137] In the second embodiment, when updating the control system, an application is migrated between an upper server B1a as a migration destination server and an upper server B2b as a migration source server among the multiple servers MSb. The upper server B2b is a server among the multiple servers MSb that belongs to the same hierarchical level as the upper server B1a.

[0138] Specifically, in the second embodiment, it is assumed that the upper server B2b has a backup function for the upper server B1a. Specifically, the upper server B2b has copies of the applications running on the upper server B1a. While the backup function for the upper server B1a is temporarily running on the upper server B2b, the hypervisor BS11 of the upper server B1a is updated. After the update of the hypervisor BS11 is completed, the copies of the applications on the upper server B1a are migrated from the upper server B2b to the upper server B1a. Note that during the application migration, the upper server B2b is temporarily connected to the middle server C1 and middle server C2.

[0139] FIG. 15 is a sequence diagram showing the flow of the update process of the control system executed in the server system SB of the second embodiment.

[0140] The upper server B1a is equipped with a hypervisor BS11 to be updated. The upper server B2b is configured to include a source management server BS220b, a source function group server BS230b, and a destination management server BS260b.

[0141] The source function group server BS230b holds copies of multiple functions held by the application holding unit 131a of the upper server B1a. The source management server BS220b is a virtual server that manages the migration of functions to the upper server B1a. The destination management server BS260b is a virtual server that manages the migration of functions received when the upper server B2b accepts the migration of a function from the upper server B1a. The configurations of the source function group server BS230b and the source management server BS220b correspond to the configurations of the source management server BS120a and the destination management server BS160a of the upper server B1a, and therefore a description thereof will be omitted.

[0142] Prior to step S201, the operation of the host server B1a is switched so that the host server B2b, which has a backup function for the host server B1a, can take over the operation.

[0143] In step S201, the system migration determination unit BS121 of the upper server B1a determines whether to migrate the functions. Specifically, when the system migration determination unit BS121 receives a predetermined signal indicating the start of the update process of the control system from, for example, an input unit (not shown), the system migration determination unit BS121 determines to migrate the functions to the upper server B2b.

[0144] In step S202, when the system migration determination unit BS121 determines to migrate the function, it requests the system migration instruction unit BS261 of the upper server B2b to migrate the function.

[0145] In step S203, upon receiving a function migration request from the system migration determination unit BS121, the system migration instruction unit BS261 requests the application storage unit BS231b of the upper server B2b to activate a copy of the backed-up function.

[0146] In step S204, the migration processing unit BS262 of the upper server B2b checks the operation of the copy of the backed-up function.

[0147] In step S205, the migration processing unit BS262 starts the operation of the control system in the upper server B2b.

[0148] In step S206, the migration processing unit BS262 notifies the transfer processing execution unit BS122a (transfer processing unit BS126) of the upper level server B1a of the shutdown of the control system in the upper level server B1a.

[0149] In step S207, the transfer process execution unit BS122a (transfer processing unit BS126) performs processing to stop the operation of the functions in the upper server B1a, and stops the control system.

[0150] In step S208, the transfer process execution unit BS122a updates the hypervisor BS11 of the upper server B1a.

[0151] In step S209, the transfer process execution unit BS122a (transfer processing unit BS126) notifies the application storage unit BS231b of the upper server B2b that the update of the hypervisor BS11 has been completed.

[0152] In step S210, the system migration determining unit BS221 of the host server B2b determines whether to migrate the function. Specifically, the system migration determining unit BS221 determines to migrate the function to the host server B1a.

[0153] In step S211, when the system migration determination unit BS221 determines to migrate the function, it requests the system migration instruction unit BS161 of the upper server B1a to migrate the function.

[0154] In step S212, upon receiving the function migration request from the system migration determination unit BS221, the system migration instruction unit BS161 responds with a function migration request.

[0155] In step S213, the system transition determination unit BS221 transmits an instruction to the transfer process execution unit BS222 (transfer processing unit 226) to transfer the function.

[0156] In step S214, the transfer process execution unit BS222 (transfer processing unit 226) executes the process of transferring the function to the upper server B1a. The flow of the transfer process corresponds to the transfer process of the first embodiment described with reference to FIG. 8, and therefore, a description thereof will be omitted.

[0157] In step S215, the migration processing unit BS162 of the upper level server B1a checks the operation of the function transferred from the upper level server B2b.

[0158] In step S216, the migration processing unit BS162 starts the operation of the control system in the upper server B1a.

[0159] In step S217, the migration processing unit BS162 notifies the transfer processing execution unit BS222 (transfer processing unit 226) of the upper level server B2b of the shutdown of the control system in the upper level server B2b.

[0160] In step S218, the transfer process execution unit BS222 (transfer processing unit 226) performs processing to stop the operation of the functions in the upper server B2b, and stops the control system.

[0161] In step S219, the transfer process execution unit BS222 (transfer processing unit 226) notifies the migration processing unit BS162 of the upper level server B1a that the shutdown of the control system of the upper level server B2b has been completed.

[0162] This completes the update process of the control system in the second embodiment.

[0163] [Summary] As described above, in the server system SB of the second embodiment, the upper server B1a and the upper server B2b are respectively provided with source management servers BS120a and BS220b that manage the migration of functions as the migration source, and destination management servers BS160a and BS260b that manage the migration of functions as the migration destination. In this way, by providing each server with migration management functions as the migration source and the migration destination, applications can be migrated between servers without stopping.

[0164] [Embodiment 3] The server system SC of the third embodiment will be described with reference to FIGS. 16 to 17B.

[0165] FIG. 16 is a diagram showing an example of the configuration of a server system SC according to the third embodiment.

[0166] Similar to the second embodiment, the third embodiment is an embodiment assuming an example in which the control system is updated by updating the hypervisor BS11 of the upper server B1a among the multiple servers MSc.

[0167] In the third embodiment, when updating the control system, an application is migrated between an upper server B1a as a migration source server and an upper server B2c as a migration destination server among the multiple servers MSc. The upper server B2c is a server among the multiple servers MSc that belongs to the same hierarchical level as the upper server B1a.

[0168] Specifically, the third embodiment differs from the second embodiment in that it is assumed that the upper server B2c does not have a backup function for the upper server B1a. In the third embodiment, the functions of the upper server B1a are temporarily migrated from the upper server B1a to the upper server B2c, and then the hypervisor BS11 of the upper server B1a is updated. After the update of the hypervisor BS11 is completed, the functions of the upper server B1a are migrated from the upper server B2c to the upper server B1a. During the application migration, the upper server B2c is temporarily connected to the middle server C1 and the middle server C2.

[0169] 17A and 17B are sequence diagrams showing the flow of the control system update process executed in the server system SC of the third embodiment.

[0170] The host server B1a is equipped with a hypervisor BS11 to be updated. The host server B2c is configured to include a source management server BS220c, a source function group server BS230c, and a destination management server BS260c.

[0171] The source management server BS220c is a virtual server that manages the migration of functions to the upper server B1a. The destination management server BS260c is a virtual server that manages the migration of functions received when the upper server B2c accepts the migration of functions from the upper server B1a. The configurations of the source management server BS220c and the destination management server BS260c correspond to the configurations of the source management server BS120a and the destination management server BS160a of the upper server B1a, so a description thereof will be omitted.

[0172] The processing of steps S301 to S310 in FIG. 17A corresponds to the processing of transferring the function from the upper level server B1a to the upper level server B2c, and the processing of steps S312 to S322 corresponds to the processing of transferring the function from the upper level server B2c to the upper level server B1a.

[0173] In step S301, the system migration determination unit BS121 of the upper server B1a determines whether to migrate the functions. Specifically, when the system migration determination unit BS121 receives a predetermined signal indicating the start of the update process of the control system from, for example, an input unit (not shown), the system migration determination unit BS121 determines to migrate the functions to the upper server B2c. The subsequent processes of steps S302 to S309 correspond to the processes of steps S103 to S110 in the first embodiment, and therefore, description thereof will be omitted.

[0174] In step S310, the transfer process execution unit BS122a (transfer processing unit BS126) of the upper server B1a notifies the migration processing unit NS162 of the upper server B2c that the control system in the upper server B1a has been shut down.

[0175] In step S311, the transfer process execution unit BS122a updates the hypervisor BS11 of the upper server B1a.

[0176] The subsequent processing in steps S312 to S321 corresponds to the processing in steps S209 to S218 in the second embodiment, and therefore a description thereof will be omitted.

[0177] In step S322, the transfer process execution unit BS222 (transfer processing unit 226) of the upper level server B2c notifies the migration processing unit BS162 of the upper level server B1a that the shutdown of the control system of the upper level server B2c has been completed.

[0178] This completes the update process of the control system in the third embodiment.

[0179] [Embodiment 4] The server system SD of the fourth embodiment will be described with reference to FIG.

[0180] FIG. 18 is a diagram showing an example of the configuration of the server system SD according to the fourth embodiment.

[0181] Similar to the second and third embodiments, the fourth embodiment is an embodiment that assumes an example in which the control system is updated by updating the hypervisor BS11 of the upper server B1a among the multiple servers MSa.

[0182] In the fourth embodiment, when updating the control system, an application is migrated between an upper server B1a as a migration source server among the multiple servers MSa and an upper server W1 as a migration destination server. The upper server W1 is a server other than the multiple servers MSa.

[0183] Specifically, in the fourth embodiment, applications are migrated from the upper server B1a on which the control system is currently running to the upper server W1 for temporary storage. After the application migration, the hypervisor BS11 of the upper server B1a is updated. After the hypervisor BS11 update is complete, the temporarily stored functions are migrated from the upper server W1 to the upper server B1a. When the control system starts operating again on the upper server B1a, the upper server W1 is disconnected from the multiple servers MSa. During the application migration, the upper server W1 is temporarily connected to the middle server C1 and middle server C2.

[0184] The upper server W1 has a configuration corresponding to the configuration of the upper server B2c etc. of embodiment 3. That is, the upper server W1 is configured to include a destination management server which is a virtual server that manages the migration of functions received from the upper server B1a, a source management server which is a virtual server that manages the migration of functions to the upper server B1a, and a source function group server which is a virtual server that executes various controls related to the maintenance of applications migrated from the upper server B1a. The upper server W1 also includes a storage device WS105.

[0185] [Embodiment 5] The server system of the fifth embodiment will be described with reference to FIGS.

[0186] FIG. 19 is a diagram showing an example of the configuration of a server system SE according to the fifth embodiment.

[0187] The fifth embodiment differs from the second to fourth embodiments in that it is an embodiment that assumes an example in which the control system is updated by updating the application itself instead of the hypervisor.

[0188] In the fifth embodiment, when updating the control system, an application is migrated between an upper server B1d as a migration source server among the multiple servers MSd and an update server X1 as a migration destination server. The update server X1 is a server other than the multiple servers MSd.

[0189] Specifically, in the fifth embodiment, the application to be updated is migrated from the upper level server B1d on which the control system is currently running to the update server X1. After the application to be updated is updated on the update server X1, the updated function is migrated from the update server X1 to the upper level server B1d. When the control system starts operating again on the upper level server B1d, the update server X1 is disconnected from the multiple servers MSd. Note that during the application migration, the update server X1 is temporarily connected to the middle level server C1 and middle level server C2.

[0190] FIG. 20 is a diagram illustrating an example of the functional configuration of the upper server and the update server according to the fifth embodiment.

[0191] As shown in FIG. 20, the host server B1d is configured to include a source management server BS120d, a source function group server BS130d, and a destination management server BS160d.

[0192] The source management server BS120d is a virtual server that manages the migration of multiple functions to the update server X1. The source management server BS120d has a system migration determination unit BS121 and a transfer processing execution unit BS122c as functional units. The source management server BS120d is an example of a third source management unit.

[0193] When a predetermined signal is received from the outside instructing the migration of a function to be updated among a plurality of functions, the system migration determination unit BS121 determines the migration of the function to be updated. The system migration determination unit BS121 is an example of a third system migration determination unit.

[0194] The transfer processing execution unit BS122c is a processing unit that transfers functions to the update server X1. The transfer processing execution unit BS122c includes, as functional units, a traffic volume understanding unit BS123, a processing time / transfer time acquisition unit BS124, a processing time / transfer time accumulation unit BS125, a transfer processing unit BS126, a scheduling unit BS127, and a first update processing unit BS128.

[0195] Based on the decision to transfer the functions to be updated, the transfer processing unit BS126 transfers the functions to be updated to the update server X1 while each of the functions to be updated is not operating. The transfer processing unit BS126 is an example of a third transfer processing unit.

[0196] The first update processing unit BS128 is a processing unit that executes a process of updating the function to be updated that has been operating in the upper server B1d to the updated function received from the update server X1.

[0197] The destination management server BS160d is a virtual server that manages the migration of functions when the upper level server B1d accepts the migration of functions from the update server X1. The destination management server BS160d includes a second update processing unit BS163 as a functional unit. The destination management server BS160d has a configuration corresponding to the configuration of the destination management server XS160a, which will be described later, and therefore will not be described here.

[0198] The update server X1a is a server that manages the migration of applications received from the upper server B1a and performs updates. The update server X1a is configured to include a physical server XS10, a hypervisor XS11, and a virtual server XS12. The specific configurations of the physical server XS10 and the hypervisor XS11 correspond to the configurations of the physical server BS10 and the hypervisor BS11 in the upper server B1a, so a description thereof will be omitted. The platform on the physical server XS10 may be an OS. The update server X1a also includes a storage device XS105.

[0199] The virtual server XS12 is configured to include a migration source management server XS120a, a migration destination update target function group server XS130a, and a migration destination management server XS160a.

[0200] The destination update target function group server XS130a is a virtual server that mainly executes various controls related to the holding of applications to be migrated from the upper level server B1a. The destination update target function group server XS130a includes an update target application holding unit XS131a as a functional unit.

[0201] The update target application holding unit XS131a is a processing unit that can hold functions to be updated and functions that have already been updated. The update target application holding unit XS131a is an example of a migration destination application holding unit.

[0202] The destination management server XS160a is a virtual server that manages the migration of multiple functions received from the upper server B1d. The destination management server XS160a includes a second update processing unit XS163 as a functional unit. The destination management server XS160a is an example of a third destination management unit.

[0203] The second update processing unit XS163 is a processing unit that receives the function to be updated from the upper server B1d and executes the update processing. The second update processing unit XS163 is an example of an update processing unit.

[0204] The source management server XS120a is a virtual server that manages the migration of functions when the update server X1a migrates functions to the upper server B1d. The source management server XS120a has a system migration determination unit XS121 and a transfer process execution unit XS122 as functional units. The source management server XS120a has a configuration corresponding to the configuration of the source management server BS120d described above, so a description thereof will be omitted.

[0205] FIG. 21 is a sequence diagram showing the flow of the update process of the control system executed in the server system of the fifth embodiment.

[0206] In step S501, the system migration determination unit BS121 determines whether to update the function to be updated. Specifically, when the system migration determination unit BS121 receives a predetermined signal that instructs the migration of the function to be updated, input from an input unit (not shown), for example, the system migration determination unit BS121 determines that the function to be updated should be migrated to the update server X1a.

[0207] In step S502, when the system transition determination unit BS121 determines to transition the function, it notifies the transfer processing execution unit BS122c (transfer processing unit BS126) of the transition of the function.

[0208] In step S503, the transfer process execution unit BS122c (transfer processing unit BS126) transfers the function.

[0209] In step S504, the second update processing unit XS163 of the update server X1a updates the function received from the upper level server B1d.

[0210] In steps S505 and S506, the second update processing unit XS163 verifies the operation of the updated functions and starts the operations on the update server X1a.

[0211] In step S507, the second update processing unit XS163 notifies the first update processing unit BS128 of the upper level server B1d of the stop of the operation of the function to be updated in the upper level server B1d.

[0212] In step S508, the first update processing unit BS128 stops the operation of the function to be updated.

[0213] In step S509, the first update processing unit BS128 notifies the second update processing unit XS163 of the update server X1a of the completion of stopping the operation of the function to be updated in the upper server B1d.

[0214] In step S510, the system migration determination unit XS121 of the update server X1a determines whether to migrate the updated functions.

[0215] In step S511, when the system migration determination unit XS121 determines to migrate the function, it transmits an instruction to migrate the function to the transfer process execution unit XS122.

[0216] In step S512, the transfer process execution unit XS122 executes the transfer process of the updated function.

[0217] In step S513, the first update processing unit BS128 of the upper server B1d updates the stopped function to the updated function received from the update server X1a.

[0218] In steps S514 and S515, the first update processing unit BS128 verifies the operation of the updated function and starts the operation.

[0219] In step S516, the first update processing unit BS128 notifies the second update processing unit XS163 of the update server X1a of the stop of the operation of the functions in the update server X1a.

[0220] In step S517, the second update processing unit XS163 stops the operation of the functions in the update server X1a, and the update server X1a is disconnected from the multiple servers MSa.

[0221] This completes the update process of the control system in the fifth embodiment.

[0222] [Summary] In conventional control systems, applications operate as a collection of programs, such as "functions A+B+C+D" (hereafter referred to as function group ABCD). Therefore, even if only function A is to be updated, the entire function group must be updated. As a result, for example, function group ABCD must be transferred to the update server in one go, and after the entire function group ABCD is updated, the old function group ABCD must be switched to the updated function group ABCD. This requires time from the start of the update process to the completion of the switch. This can result in long downtime for the control system. In addition, the hardware of the update server may require resources for the entire function group ABCD.

[0223] In contrast, according to the server system of the fifth embodiment, among the multiple functions that are loosely coupled to each other and are formed by dividing an application, only the function to be updated is migrated while the function to be updated is not running.

[0224] This allows only the functions to be updated to be migrated to the update server and updated without stopping the application. Also, because only the functions to be updated can be migrated, both the migration time and the update time can be shortened. As a result, the time from the start of the update process to the completion of switching to the updated functions can be shortened. Also, because it is necessary to have resources sufficient to migrate and update the functions to be updated, the amount of hardware resource usage on the update server X1a is reduced.

[0225] A modified example of the fifth embodiment will be described below with reference to Fig. 22. Note that in the following, when the same configurations and functions as those of the fifth embodiment are present, the description thereof may be omitted.

[0226] [Modification of the fifth embodiment] FIG. 22 is a diagram illustrating a modified example of the fifth embodiment.

[0227] The server system of the modified example differs from that of the fifth embodiment in the configuration of the host server B1e.

[0228] Specifically, in the above-described fifth embodiment, the host server B1d is provided with one source function group server BS130a. In contrast, in the modified example, the host server B1e is provided with four source function group servers BS130b1-BS130b4. The four source function group servers BS130b1-BS130b4 are provided with application holding units BS131b1-BS131b4 as functional units, respectively. The application holding units BS131b1-BS131b4 each hold a plurality of functions in a shared manner.

[0229] [Other variations] In the above embodiment, the traffic volume ascertaining unit BS123 has been described as acquiring traffic volume data for, for example, 10 minutes immediately prior to the start of the function transition, but this is not limited thereto. The traffic volume ascertaining unit BS123 may estimate future traffic volume and acquire information indicating the estimated traffic volume as traffic volume data. Specifically, for example, the traffic volume ascertaining unit BS123 may estimate traffic volume at the scheduled start time of the function transition. This allows for the generation of more accurate schedule information that takes into account ever-changing traffic volume. When estimating traffic volume, the traffic volume ascertaining unit BS123 may estimate traffic volume based on at least one of calendar information, time information, and weather information. This allows for more accurate traffic volume estimation.

[0230] In the above embodiment, an example was used in which a road toll system is operated in the server system, but this is not limitative. The server system of the present invention can also be applied to control systems other than road toll systems.

[0231] In the above embodiment, the upper level server is the target of update, but this is not limiting. For example, the middle level server and the top level server A0 may also be the target of update.

[0232] Although the embodiments of the present invention have been described above, they are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the inventions and their equivalents as defined in the claims. [Explanation of symbols]

[0233] 200...Discount route information database, 300...Log information database, 400...Correspondence information database, B1a to B1e, B2a to B2c, N1a to N1e...Upstream servers, BS105a, CS105...Storage devices, BS120a to 120d, BS220b to 220c, XS120a...Migration source management server, BS121, BS221, NS121, XS121...System migration determination unit, BS130a to 130d, B S230b, BS230c...source function group servers, BS160a, BS160d, BS260b, BS260c, NS160a, XS160a...destination management servers, BS161, BS261, NS161...system migration instruction unit, BS162, BS262, NS162...migration processing unit, MSa, MSb, MSc, MSd...multiple servers, SA, SB, SC, SD, SE...server systems, X1a...update server.

Claims

1. A server system comprising a plurality of servers connected in a tree structure between a plurality of hierarchical levels, at least one of the plurality of servers being a source server or a destination server connected to the source server, The source server is a source application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a first source management unit that manages the migration of the plurality of programs to the destination server; The first transfer source management unit a first system migration determination unit that, when receiving a predetermined signal that instructs migration of the plurality of programs input from outside, determines to migrate the plurality of programs and requests the migration destination server to migrate the plurality of programs; a first transfer processing unit that migrates the plurality of programs to the destination server while each of the plurality of programs is not running, based on a response from the destination server to a request for migration of the plurality of programs; The destination server is a destination application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a first destination management unit that manages the migration of the plurality of programs received from the source server; The first migration destination management unit a first system migration instruction unit that responds to a request for migration of the plurality of programs when the request is received from the migration source server; a first migration processing unit that receives the plurality of programs to be migrated from the migration source server and executes migration processing of the received plurality of programs; A server system having:

2. The destination server is a second source management unit that manages the migration of the plurality of programs to the source server; The second transfer source management unit a second system migration determination unit that, when receiving a predetermined signal that instructs migration of the plurality of programs input from the outside, determines to migrate the plurality of programs and requests the migration source server to migrate the plurality of programs; a second transfer processing unit that transfers the plurality of programs to the source server while each of the plurality of programs is not running, based on a response from the source server to a request for migration of the plurality of programs; The source server is a second destination management unit that manages the migration of the plurality of programs received from the destination server; The second migration destination management unit a second system migration instruction unit that responds to a request for migration of the plurality of programs when the request is received from the destination server; a second migration processing unit that receives the plurality of programs to be migrated from the migration destination server and executes migration processing of the received plurality of programs; 2. The server system of claim 1, comprising:

3. Each of the source server and the destination server a storage unit that stores a correspondence information database that associates road traffic volumes with processing times of the plurality of programs and transfer times of the plurality of programs; The first and second transfer source management units a traffic volume grasping unit that acquires traffic volume data indicating the traffic volume of a road; a processing time / transfer time acquisition unit that acquires the processing times and transfer times of the plurality of programs corresponding to the acquired traffic volume data in the corresponding information database; a scheduling unit that generates schedule information that determines a migration order of the plurality of programs based on the acquired processing time and transfer time; and The first and second transfer processing units include: Migrating the plurality of programs to the destination server or the source server based on the schedule information; The server system according to claim 2 .

4. The first and second transfer source management units a processing time / transfer time accumulation unit that records in the storage unit a log information database that associates the measurement results of the processing times and transfer times of the plurality of programs with at least one of the traffic volume data, the capacity of the plurality of programs, and the communication bandwidth between the source server and the destination server; The server system of claim 3 further comprising:

5. The processing time / transfer time storage unit based on the log information database, the plurality of programs, the processing time, the transfer time, the traffic volume data, the capacity of the plurality of programs, and the communication bandwidth are associated with each other and registered in the correspondence information database; The server system according to claim 4.

6. The processing time / transfer time storage unit The correspondence information database stored in the storage unit is shared among a plurality of servers, including the source server and the destination server, that belong to the same hierarchical level as the source server and the destination server. The server system according to claim 4.

7. each of the plurality of programs has a different degree of influence of the traffic volume on the processing time; The scheduling unit determining whether the traffic volume exceeds a threshold; When the traffic volume exceeds the threshold, a program among the plurality of programs that is less affected by the traffic volume than when the traffic volume does not exceed the threshold is migrated; When the traffic volume does not exceed the threshold, the schedule information is generated so as to shift a program among the plurality of programs that is more affected by the traffic volume than when the traffic volume exceeds the threshold. The server system according to claim 3 .

8. The traffic volume grasping unit The traffic volume is estimated based on at least one of calendar information, time information, and weather information, and information indicating the estimated traffic volume is acquired as the traffic volume data. The server system according to claim 3 .

9. each of the plurality of servers includes a physical server that implements an OS (Operating System) or a hypervisor; Among the plurality of servers, a server including a physical server to be disposed of is defined as the source server, and a server other than the plurality of servers that implements an updated OS or hypervisor is defined as the destination server; Migrating the plurality of programs from the source server to the destination server; The source server is replaced with the destination server and disconnected from the plurality of servers. The server system according to claim 1 .

10. Each of the plurality of servers is equipped with an OS or a hypervisor; Among the plurality of servers, a server that implements an OS or a hypervisor to be updated is defined as the source server, and a server that belongs to the same hierarchical level as the source server is defined as the destination server; The destination application storage unit of the destination server stores copies of a plurality of programs stored in the source application storage unit of the source server, After updating the OS or hypervisor of the source server, copies of the plurality of programs are migrated from the destination server to the source server. The server system according to claim 2 .

11. Each of the plurality of servers is equipped with an OS or a hypervisor; Among the plurality of servers, a server that implements an OS or a hypervisor to be updated is defined as the source server, and a server that belongs to the same hierarchical level as the source server is defined as the destination server; Migrating the plurality of programs from the source server to the destination server; After updating the OS or hypervisor of the source server, the plurality of programs are migrated from the destination server to the source server. The server system according to claim 2 .

12. Each of the plurality of servers is equipped with an OS or a hypervisor; Among the plurality of servers, a server that implements the OS or hypervisor to be updated is defined as the source server, and a server other than the plurality of servers that implements the updated OS or hypervisor is defined as the destination server; Migrating the plurality of programs from the source server to the destination server; After updating the OS or hypervisor of the source server and migrating the plurality of programs from the destination server to the source server, the destination server is disconnected from the plurality of servers; The server system according to claim 2 .

13. A server system comprising a plurality of servers connected in a tree structure between a plurality of hierarchical levels, at least one of the plurality of servers being a source server or a destination server, The source server is a source application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a third source management unit that manages the migration of the plurality of programs to the destination server; The third transfer source management unit a third system transition determination unit that determines the transition of a program to be updated when a predetermined signal instructing the transition of the program to be updated among the plurality of programs is received from the outside; a third transfer processing unit that transfers the programs to be updated to the destination server while each of the programs to be updated is not running, based on a decision to transfer the programs to be updated; and The destination server is a destination application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a third destination management unit that manages the migration of the plurality of programs received from the source server; The third migration destination management unit an update processing unit that receives the program to be updated that is transferred from the third transfer processing unit and executes update processing of the received program to be updated; A server system comprising:

14. A source server included in a server system that includes a plurality of servers connected in a tree structure between a plurality of hierarchical levels, and includes at least one server among the plurality of servers as a source server and a destination server connected to the source server, a source application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a first source management unit that manages the migration of the plurality of programs to the destination server; The first transfer source management unit a first system migration determination unit that, when receiving a predetermined signal that instructs migration of the plurality of programs input from outside, determines to migrate the plurality of programs and requests the migration destination server to migrate the plurality of programs; a first transfer processing unit that migrates the plurality of programs to the destination server while each of the plurality of programs is not running, based on a response from the destination server to a request for migration of the plurality of programs; Source server.

15. A server system includes a plurality of servers connected in a tree structure between a plurality of hierarchical levels, and at least one server among the plurality of servers is a source server and a destination server connected to the source server, a destination application storage unit capable of storing an application that is divided into a plurality of programs that are loosely coupled with each other and that operates at a fixed cycle; a first destination management unit that manages the migration of the plurality of programs received from the source server; The first migration destination management unit a first system migration instruction unit that responds to a request for migration of the plurality of programs when the request is received from the migration source server; a first migration processing unit that receives the plurality of programs to be migrated from the migration source server and executes migration processing of the received plurality of programs; Destination server.

Citation Information

Patent Citations

  • Virtual computer system and software update method

    JP2007304845A