WO2017179537A1 - ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体 - Google Patents

ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体 Download PDF

Info

Publication number
WO2017179537A1
WO2017179537A1 PCT/JP2017/014685 JP2017014685W WO2017179537A1 WO 2017179537 A1 WO2017179537 A1 WO 2017179537A1 JP 2017014685 W JP2017014685 W JP 2017014685W WO 2017179537 A1 WO2017179537 A1 WO 2017179537A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
information
output
software
update
Prior art date
Application number
PCT/JP2017/014685
Other languages
English (en)
French (fr)
Inventor
文雄 町田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2018512005A priority Critical patent/JP6784291B2/ja
Priority to US16/092,511 priority patent/US11106454B2/en
Publication of WO2017179537A1 publication Critical patent/WO2017179537A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • the present invention relates to a technique for updating software without stopping the operation of the information processing apparatus to execute the software.
  • Patent Document 1 discloses a virtual computer system in which virtual hardware for operating software is configured redundantly. When updating the software that operates in the redundant configuration, this system controls the standby system to take over the processing by the active system after updating the software that operates in the standby virtual hardware.
  • Patent Document 2 discloses a software update method for performing maintenance such as software upgrade without stopping in an information processing system composed of a plurality of systems having multiple stages and multiple hierarchies of servers that are load-balanced by a load balancer. It is disclosed.
  • Patent Document 3 discloses a distributed system including a hypervisor type virtual machine monitor, a first virtual machine that performs business on the virtual machine monitor, and a second virtual machine that performs software installation or upgrade.
  • a type information processing system is disclosed.
  • the second virtual machine installs the updated software on itself, and then, in stages, stores an index table in which data storage location information that is dynamically updated in the first virtual machine is stored. Transition to self. The system switches processing from the first virtual machine to the second virtual machine when the migration is completed.
  • Patent Document 4 discloses a control device that loads an update firmware into an occupied memory area of another core by using a core different from the core on which the operating firmware is operating in a multi-core system. Has been. After checking whether or not the updated firmware operates normally, this apparatus switches the processing for the firmware from the operating core to the other core.
  • Patent Document 5 discloses a cluster system that manages an old cluster before software is updated and a new cluster after software is updated by a load balancer. This system performs control to distribute a process already accepted to the old cluster and a new process request to the new cluster.
  • IoT Internet of Things
  • IoT Internet of Things
  • devices such as sensors and cameras via a network
  • analyzing or visualizing the status of the aggregated data System utilization is spreading. Since such an IoT system integrally manages a large number of devices, a form in which calculation processing is concentrated by collecting data on the side of a cloud system such as a data center is common. However, as the amount of data handled increases as the number of devices connected to the network increases, it becomes inefficient for the cloud system to perform all processing.
  • an edge server (hereinafter referred to as an “edge”) is installed near a device that is a data generation source, and the edge executes a part of data processing.
  • Type systems are becoming available. For example, the amount of data transferred to the cloud system can be reduced by totaling data collected from a large number of devices at the edge and transferring only the aggregated result to the cloud system. Also, in systems that need to perform real-time control based on collected data, it is possible to reduce control delay by performing control judgment by edge, so that highly accurate control can be realized. .
  • the software update control device provides pre-update output information output by executing the software before update by the first information processing resource included in the first information processing system, as second information.
  • a first execution control means for controlling the updated software to be executed by a second information processing resource included in the second information processing system; Verification means for verifying the trial operation that the second information processing system processes the information output by the information processing resource executing the updated software, and the verification result for the trial operation by the verification means is normal
  • the third information processing resource included in the second information processing system indicates the state of outputting the pre-update output information.
  • Takeover control means for controlling the second information processing system to process the pre-update output information taken over from the first information processing resource and output from the third information processing resource, and the takeover control
  • a second execution control means for controlling the first information processing resource to output updated output information by executing the updated software after the processing by the means is performed;
  • the processing target information to be processed by the information processing system is output from the first or second information processing resource from the pre-update output information output from the first or third information processing resource.
  • Switching means for switching to post-update output information.
  • the information processing apparatus executes the software before the first information processing resource included in the first information processing system is updated.
  • the second information processing resource included in the second information processing system executes the updated software
  • the second information processing resource verifies the trial operation that the second information processing system processes the information output by executing the updated software, and the verification result for the trial operation is
  • the third information processing included in the second information processing system indicates the state of outputting the pre-update output information when indicating normal.
  • a source takes over from the first information processing resource and controls the second information processing system so that the second information processing system can process the pre-update output information output from the third information processing resource; After the output information before update output from the processing resource is ready to be processed by the second information processing system, the first information processing resource is updated by executing the updated software. Control to output output information, and processing target information to be processed by the second information processing system is output from the pre-update output information output from the first or third information processing resource. Switch to the updated output information output from the first or second information processing resource.
  • the software update control program is such that the first information processing resource included in the first information processing system executes the software before the update.
  • the second information processing resource included in the second information processing system executes the updated software.
  • the third information processing resource included in the information processing system takes over from the first information processing resource, and the second information processing system outputs the pre-update output information output from the third information processing resource.
  • the first information processing resource After the takeover control process to be controlled and the process by the takeover control process are performed, the first information processing resource outputs the updated output information by executing the updated software Second execution control processing to be controlled and processing target information to be processed by the second information processing system from the pre-update output information output from the first or third information processing resource,
  • This is a program for causing a computer to execute a switching process for switching to the updated output information output from the first or second information processing resource.
  • the present invention can be realized by a computer-readable non-volatile recording medium in which the software update control program (computer program) is stored.
  • the present invention makes it possible to reliably perform software update processing executed by an information processing apparatus having limited information processing resources such as an edge server in an IoT system without stopping the information processing apparatus. To do.
  • FIG. 1 is a block diagram showing a configuration of a software update control system 1 according to a first embodiment of the present invention. It is a figure which illustrates the state of each system before the software performed by the edge side system 20 and the cloud side system 30 which concerns on 1st Embodiment of this invention is updated. It is a figure which illustrates the state of each system in the middle of the software updated by the edge side system 20 and the cloud side system 30 which concerns on 1st Embodiment of this invention being updated. It is a figure which illustrates the state of each system after the software performed by the edge side system 20 and the cloud side system 30 which concerns on 1st Embodiment of this invention is updated.
  • FIG. 1 is a block diagram conceptually showing the configuration of a software update control system 1 according to the first embodiment of the present invention.
  • the software update control system 1 is a system that updates software executed by an edge in an IoT system, for example.
  • the software update control system 1 roughly includes a software update control apparatus 10, an edge side system 20, a cloud side system 30, and a device group 40.
  • the device group 40 is a device group including, for example, a sensor and a camera, and generates and outputs observation data representing a result of observation of an observation target.
  • the edge-side system 20 (first information processing system) is an information processing apparatus such as an edge server, and includes an edge-side virtual server base 21 and an edge hub 22.
  • the edge hub 22 is communicably connected to the device group 40 and receives observation data output from the device group 40.
  • the edge-side virtual server platform 21 is a platform capable of executing the virtual server 210, and includes hardware such as a processor and a memory (for example, a configuration described later with reference to FIG. 17) and a hypervisor (execution of the virtual server).
  • Software (not shown).
  • the virtual server 210 processes the observation data received by the edge hub 22 as processing target data, and then transmits the processing target data to the cloud-side system 30 connected to be communicable. Note that the number of virtual servers that can be executed by the edge-side virtual server platform 21 is limited because the amount of hardware such as processors and memories included in the edge-side system 20 is small.
  • the cloud side system 30 (second information processing system) is a system including a large number of information processing devices installed as a data center, for example, and includes a cloud side virtual server platform 31, an application hub 32, a message buffer 33, It has.
  • the cloud-side virtual server platform 31 is a platform capable of executing the virtual servers 310-1 to 310-m (m is an arbitrary natural number), and will be described later with reference to hardware such as a processor and a memory (for example, referring to FIG. 17). And a software (not shown) such as a hypervisor.
  • the virtual servers 310-1 to 310-m perform predetermined processing on the processing target data transmitted from the edge side system 20.
  • the cloud side system 30 executes the application 34.
  • the application 34 provides a service using the processing target data processed by the virtual servers 310-1 to 310-m.
  • the application 34 performs, for example, information analysis or system control based on the processing target data.
  • the processing target data is input to the application 34 via the application hub 32.
  • the application hub 32 is also connected to the message buffer 33.
  • the message buffer 33 is a device such as an electronic memory that can temporarily store data output from the virtual servers 310-1 to 310-m.
  • the application hub 32 selects either the data output from the virtual servers 310-1 to 310 -m or the data stored in the message buffer 33 according to control from the outside, and inputs the selected data to the application 34.
  • the software update control device 10 is a device that controls update processing for software executed by the virtual server 210 and software executed by the virtual servers 310-1 to 310-m.
  • the software update control apparatus 10 is communicably connected to the edge side system 20 and the cloud side system 30.
  • the software update control device 10 includes a first virtual server control unit 11, a verification unit 12, a takeover control unit 13, a second virtual server control unit 14, a switching unit 15, an edge hub control unit 16, and a software storage unit 17. Yes.
  • the software storage unit 17 stores cloud-side pre-update software 170, cloud-side post-update software 171, edge-side pre-update software 172, and edge-side post-update software 173.
  • the cloud-side pre-update software 170 is pre-update software executed by the virtual servers 310-1 to 310-m.
  • the cloud-side updated software 171 is updated software executed by the virtual servers 310-1 to 310-m.
  • the edge-side pre-update software 172 is pre-update software executed by the virtual server 210.
  • the edge side updated software 173 is updated software executed by the virtual server 210.
  • FIG. 2 is a diagram illustrating a state of each system before software executed by the edge side system 20 and the cloud side system 30 according to the present embodiment is updated.
  • the virtual server 210 first information processing resource
  • the processing target data as a result is input to the virtual server 310-1.
  • the virtual server 310-1 processes the processing target data input from the virtual server 210 by executing the cloud-side pre-update software 170, and inputs the processing target data that is the processing result to the application hub 32.
  • the software update control apparatus 10 shown in FIG. 1 updates the software executed by the edge side system 20 and the cloud side system 30 to the edge side updated software 173 and the cloud side updated software 171 in the state shown in FIG. Start processing.
  • FIG. 3 is a diagram illustrating the state of each system while the software executed by the edge-side system 20 and the cloud-side system 30 according to the present embodiment is being updated.
  • the first virtual server control unit 11 first execution control unit shown in FIG. 1 controls the cloud-side virtual server platform 31 to control the virtual server 310-2 and the virtual server 310. -3 (second information processing resource) is newly started up.
  • the first virtual server control unit 11 reads the cloud-side updated software 171 and the edge-side updated software 173 from the software storage unit 17, and these virtual software 310-2 and 310-3 are sequentially read by the virtual servers 310-2 and 310-3. Control to run.
  • the edge hub control unit 16 (data reception unit control unit) shown in FIG. 1 replicates the observation data received by the edge hub 22 from the device group 40 when the first virtual server control unit 11 performs the above-described processing.
  • the observed data is controlled to be input to the virtual server 310-3.
  • an environment in which the observation data is processed (performed for trial operation) by the updated software is constructed in the cloud-side virtual server platform 31.
  • the verification unit 12 shown in FIG. 1 verifies whether the trial operation in which the virtual server 310-2 processes the processing target data output by the virtual server 310-3 processing the observation data is normal.
  • the verification unit 12 is given in advance a determination criterion necessary for the verification by a system administrator or the like, and the verification unit 12 performs the above-described verification based on the determination criterion.
  • the verification unit 12 completes the software update process, and after the edge-side system 20 and the cloud-side system 30 start processing the observation data by executing the updated software, the edge-side system 20 and The verification of the processing by the cloud side system 30 is continued.
  • the verification unit 12 indicates that the verification result is abnormal, the verification unit 12 notifies the system management unit (not shown) that manages the failure occurrence status and the like in the software update control system 1 that an abnormality has occurred.
  • FIG. 4 is a diagram illustrating the state of each system after the software executed by the edge-side system 20 and the cloud-side system 30 according to the present embodiment is updated.
  • the takeover control unit 13 illustrated in FIG. 1 controls the edge-side virtual server platform 21 and the cloud-side virtual server platform 31 as illustrated in FIGS. 3 and 4.
  • the virtual server 210 performs live migration to the cloud-side virtual server platform 31 as the virtual server 310-4 (third information processing resource).
  • Live migration is an existing technology that moves the operating environment of a virtual server to a different physical system without stopping the operation of the virtual server.
  • the edge-side virtual server infrastructure 21 and the cloud-side virtual server infrastructure 31 The migration function is implemented. Since the processing target data output from the virtual server 310-4 by this live migration is input to the virtual server 310-1, the environment in which the observation data is processed by the pre-update software after the live migration is performed. Is maintained in the cloud-side virtual server platform 31.
  • the second virtual server control unit 14 illustrated in FIG. 1 controls the edge-side virtual server platform 21 and the cloud-side virtual server platform 31 as illustrated in FIGS. 3 and 4 after the processing by the takeover control unit 13 is performed.
  • live migration is performed on the virtual server 310-3 as a new virtual server 210 to the edge-side virtual server platform 21.
  • the processing target data output from the virtual server 210 is input to the virtual server 310-2. Therefore, even after live migration is performed, the environment in which the observation data is processed by the updated software is maintained in the edge-side virtual server platform 21 and the cloud-side virtual server platform 31.
  • the switching unit 15 illustrated in FIG. 1 controls the cloud-side virtual server platform 31 so that the information input to the application hub 32 is output from the virtual server 310-1 as illustrated in FIGS.
  • the information is switched to the information output from the virtual server 310-2.
  • the information input to the application hub 32 is information (observed output information after update) from information obtained by processing the observed data by the software before update (output information before update). ).
  • the switching unit 15 sends the information (pre-update output information) output from the virtual server 310-1 to the message buffer 33 when the input to the application hub 32 is switched. input. That is, the message buffer 33 completes the software update process, and after the edge-side system 20 and the cloud-side system 30 start processing the observation data by executing the updated software, the virtual server 310- The pre-update output information generated by 1 and 310-4 is stored. *
  • the switching unit 15 controls the application hub 32 to change the information input to the application 34 to the virtual server 310.
  • the post-update output information output from -2 is switched to the pre-update output information stored in the message buffer 33.
  • the verification result by the verification unit 12 is obtained over a predetermined time.
  • the first virtual server control unit 11 stops the operation.
  • the first virtual server control unit 11 activates the virtual servers 310-2 and 310-3, and sequentially executes the cloud-side updated software 171 and the edge-side updated software 173 (step S101).
  • the edge hub control unit 16 performs control so that the edge hub 22 duplicates the observation data received from the device group 40 and inputs the duplicated observation data to the virtual server 310-3 (step S102).
  • the verification unit 12 verifies the trial operation performed by the virtual servers 310-2 and 310-3 (step S103).
  • the software update control device 10 If the verification result by the verification unit 12 is abnormal (No in step S104), the software update control device 10 returns the edge side system 20 and the cloud side system 30 to the state before starting the software update process (step S114). ). The verification unit 12 notifies the system management unit that an abnormality has occurred, and the entire process ends.
  • step S104 If the verification result by the verification unit 12 is normal (Yes in step S104), the switching unit 15 switches the output from the virtual server 310-1 to the message buffer 33 and the output from the virtual server 310-2 to the application hub 32. (Step S105). The verification unit 12 verifies the operation performed by the virtual servers 310-2 and 310-3 (step S106).
  • step S107 If the verification result by the verification unit 12 is abnormal (No in step S107), the process proceeds to step S114. If the verification result by the verification unit 12 is normal (Yes in step S107), the takeover control unit 13 performs live migration of the virtual server 210 as the virtual server 310-4 (step S108). The second virtual server control unit 14 performs live migration of the virtual server 310-3 as a new virtual server 210 (step S109). The verification unit 12 verifies the operations performed by the virtual servers 210 and 310-2 (step S110).
  • step S111 If the verification result by the verification unit 12 is abnormal (No in step S111), the process proceeds to step S114. If the verification result by the verification unit 12 is normal (Yes in step S111), the edge hub control unit 16 stops the input of observation data from the edge hub 22 to the virtual server 310-4 (step S112). The first virtual server control unit 11 stops the operations of the virtual servers 310-1 and 310-4 (step S113), and the entire process ends.
  • the software update control apparatus 10 performs software update processing executed by an information processing apparatus having only limited information processing resources such as an edge server in an IoT system without stopping the information processing apparatus. Can be done reliably. The reason is that after the software update control device 10 builds the entire operating environment after software update in the cloud side system 30 and verifies its operation, the operating environment before the software update in the edge side system 20 is clouded. This is because the edge side system 20 is controlled to execute the updated software while being moved to the side system 30.
  • the first virtual server control unit 11 outputs the pre-update output information output by the virtual server 210 executing the edge-side pre-update software 172.
  • the edge side updated software 173 is controlled to be executed by the virtual server 310-3.
  • the verification unit 12 verifies the trial operation in which the cloud-side system 30 processes the updated output information output by the virtual server 310-3 executing the edge-side updated software 173.
  • the takeover control unit 13 takes over the state of the virtual server 210 that executes the edge-side pre-update software 172, and the virtual server 310-4 Control is performed so that the cloud-side system 30 can process the pre-update output information output from.
  • the second virtual server control unit 14 performs control so that the virtual server 210 outputs the updated output information by executing the edge-side updated software 173.
  • the switching unit 15 switches the processing target information to be processed by the cloud side system 30 from the pre-update output information output from the virtual server 210 to the post-update output information output from the virtual server 310-3.
  • the software update control device 10 verifies the updated software using the cloud side system 30 having a large amount of information processing resources. Then, the software update control device 10 moves each system to move the execution environment of the software before the update to the cloud side system 30 and the edge side system 20 starts the execution of the updated software. Control to do without stopping. As a result, the software update control device 10 according to the present embodiment stops the software update processing executed by the information processing device having only limited information processing resources such as an edge server in the IoT system. It is possible to carry out without fail.
  • the software update control apparatus 10 leaves the execution environment of the software before the update in the cloud-side system 30 at least for a predetermined period even after the software is updated, Control is performed so that the result obtained by the execution environment is stored in the message buffer 33.
  • the software update control device 10 controls the cloud side system 30 to use the information stored in the message buffer 33 as the processing target information when an abnormality occurs in the processing by the updated software. Can be restored to the state before the software was updated. Therefore, the software update control apparatus 10 according to the present embodiment can improve system availability.
  • the object which the software update control apparatus 10 which concerns on this embodiment controls is not limited to a virtual server.
  • the software update control apparatus 10 may perform the above-described processing on the physical servers included in the edge-side system 20 and the cloud-side system 30 by using, for example, a technology for performing migration between physical servers.
  • the target to be controlled by the software update control apparatus 10 is not limited to the IoT system configured by the edge side system and the cloud side system that process the observation data generated by the device group.
  • the software update control apparatus 10 performs the above-described processing when updating software in a system including a plurality of small-scale servers that distribute and process a specific application and a large-scale server that controls those small-scale servers. May be.
  • a software update control system 1 according to the second embodiment of the present invention will be described.
  • the configuration of the software update control system 1 according to the present embodiment is the same as that of the software update control system 1 according to the first embodiment shown in FIG.
  • the software update control apparatus 10 according to the present embodiment has a configuration in which the operation flow is different from that of the first embodiment.
  • the operation (processing) of the software update control apparatus 10 according to the present embodiment will be described in detail with reference to the flowcharts of FIGS. 6A and 6B.
  • the software update control device 10 executes the processing of steps S101 to S103 shown in FIG. 5A (step S201). If the verification result by the verification unit 12 is abnormal (No in step S202), the software update control device 10 executes the processes of steps S114 and S115 shown in FIG. 5A (step S211), and the entire process ends.
  • the takeover control unit 13 performs live migration of the virtual server 210 as the virtual server 310-4 (step S203).
  • the second virtual server control unit 14 performs live migration of the virtual server 310-3 as a new virtual server 210 (step S204).
  • the verification unit 12 verifies the operation performed by the virtual servers 210 and 310-2 (step S205).
  • step S206 If the verification result by the verification unit 12 is abnormal (No in step S206), the process proceeds to step S211.
  • the switching unit 15 switches the output from the virtual server 310-1 to the message buffer 33 and the output from the virtual server 310-2 to the application hub 32. (Step S207).
  • the verification unit 12 verifies the operation performed by the virtual servers 210 and 310-2 (step S208).
  • step S209 If the verification result by the verification unit 12 is abnormal (No in step S209), the process proceeds to step S211. If the verification result by the verification unit 12 is normal (Yes in step S209), the software update control apparatus 10 executes the processes of steps S112 and S113 shown in FIG. 5B (step S210), and the entire process ends.
  • the software update control apparatus 10 performs software update processing executed by an information processing apparatus having only limited information processing resources such as an edge server in an IoT system without stopping the information processing apparatus. Can be done reliably. The reason is as described for the first embodiment.
  • the software update control apparatus 10 migrates from the virtual server 210 to the virtual server 310-4, and migrates from the virtual server 310-3 to the virtual server 210. Then, the processing target information of the cloud side system 30 is switched from the pre-update output information to the post-update output information. Therefore, since the software update control apparatus 10 according to the present embodiment verifies the updated software in a state closer to the actual operating environment and then switches to the updated software, the system availability can be further improved. .
  • a software update control system 1 according to a third embodiment of the present invention will be described.
  • the configuration of the software update control system 1 according to the present embodiment is the same as that of the software update control system 1 according to the first embodiment shown in FIG.
  • the software update control apparatus 10 according to the present embodiment performs control different from the first and second embodiments on the edge side system 20 and the cloud side system 30.
  • FIG. 7 is a diagram illustrating a state of each system before software executed by the edge side system 20 and the cloud side system 30 according to the present embodiment is updated.
  • the edge-side virtual server platform 21 according to the present embodiment includes a virtual server 211 (fourth information) in addition to the virtual server 210, unlike the first embodiment illustrated in FIG. 2. Processing resources).
  • the virtual server 211 performs a low priority process 212 having a lower priority than the reference.
  • the software update control apparatus 10 updates the software executed by the edge side system 20 and the cloud side system 30 to the edge side updated software 173 and the cloud side updated software 171 in the state shown in FIG. The process to start is started.
  • FIG. 8 is a diagram illustrating a state of each system while software executed by the edge side system 20 and the cloud side system 30 according to the present embodiment is being updated.
  • the takeover control unit 13 controls the edge-side virtual server platform 21 and the cloud-side virtual server platform 31 to change the virtual server 211 to the cloud-side virtual server platform 31 and the virtual server 310. Perform live migration as -4.
  • FIG. 9 is a diagram illustrating the state of each system after the software executed by the edge-side system 20 and the cloud-side system 30 according to the present embodiment is updated.
  • the second virtual server control unit 14 controls the edge side virtual server platform 21 and the cloud side virtual server platform 31 as shown in FIGS.
  • the server 310-3 is live migrated to the edge virtual server platform 21 as a new virtual server 211. Since the processing target data output from the virtual server 211 by this live migration is input to the virtual server 310-2, the environment in which the observation data is processed by the updated software after the live migration is It is maintained in the edge side virtual server infrastructure 21 and the cloud side virtual server infrastructure 31.
  • the verification result by the verification unit 12 is normal for a predetermined time.
  • the operation is stopped by the first virtual server control unit 11 and the second virtual server control unit 14.
  • the takeover control unit 13 adds the virtual server 310-4 that executes the low priority processing 212 to the edge-side virtual server infrastructure 21 as a new one. Live migration is performed as the virtual server 210.
  • the low priority processing 212 returns to the state executed by the edge-side system 20 in the same manner as before the software update processing is performed.
  • the software update control device 10 executes the processing from S101 to S103 shown in FIG. 5A (step S301). If the verification result by the verification unit 12 is abnormal (No in step S302), the software update control device 10 executes the processes of steps S114 and S115 shown in FIG. 5A (step S313), and the entire process ends.
  • step S302 If the verification result by the verification unit 12 is normal (Yes in step S302), the takeover control unit 13 performs live migration of the virtual server 211 as the virtual server 310-4 (step S303).
  • the second virtual server control unit 14 performs live migration of the virtual server 310-3 as the virtual server 211 (step S304).
  • the verification unit 12 verifies the operations performed by the virtual servers 211 and 310-2 (step S305).
  • step S306 If the verification result by the verification unit 12 is abnormal (No in step S306), the process proceeds to step S313. If the verification result by the verification unit 12 is normal (Yes in step S306), the switching unit 15 switches the output from the virtual server 310-1 to the message buffer 33 and the output from the virtual server 310-2 to the application hub 32. (Step S307). The verification unit 12 verifies the operation performed by the virtual servers 211 and 310-2 (step S307).
  • step S309 If the verification result by the verification unit 12 is abnormal (No in step S309), the process proceeds to step S313. If the verification result by the verification unit 12 is normal (Yes in step S309), the edge hub control unit 16 stops the input of observation data from the edge hub 22 to the virtual server 210 (step S311). The takeover control unit 13 performs live migration of the virtual server 310-4 as the virtual server 210 (step S312), and the entire process ends.
  • the software update control apparatus 10 performs software update processing executed by an information processing apparatus having only limited information processing resources such as an edge server in an IoT system without stopping the information processing apparatus. Can be done reliably. The reason is as described for the first embodiment.
  • the software update control apparatus 10 controls the virtual server 210 that executes the pre-edge-side software 172 to perform software update processing without migrating to the cloud-side system 30.
  • This processing can be realized by reducing the load on the edge-side system 20 as a result of temporarily migrating the virtual server 211 that performs processing with low priority in the edge-side system 20 to the cloud-side system 30. Since the virtual server 211 performs processing with a low priority, the impact of migrating the virtual server 211 to the cloud-side system 30 is small.
  • the software update control apparatus 10 can reduce the influence on the environment in which the software before the update is executed due to the software update process.
  • the software update control apparatus 10 causes the virtual server 210 to execute the pre-update software 172 on the edge side system 20 instead of the cloud side system 30 even after performing the software update process. To control. Therefore, the software update control device 10 can return the system to a state before the software is updated more safely and quickly when an abnormality occurs in the processing by the software after the update.
  • FIG. 11 is a block diagram conceptually showing the structure of the software update control system 2 according to the fourth embodiment of the present invention.
  • the edge-side system 20A according to the present embodiment includes an edge-side virtual server base 21A and an edge hub 22A.
  • the function of the edge side system 20A is the same as that of the edge side system 20.
  • the state of these systems before the software executed by the edge side system 20 and the cloud side system 30 according to the present embodiment is updated is as shown in FIG. 2 as in the first embodiment.
  • the software update control apparatus 10 updates the software executed by the edge side system 20 and the cloud side system 30 to the edge side updated software 173 and the cloud side updated software 171 in the state shown in FIG. The process to start is started.
  • FIG. 12 is a diagram illustrating a state of each system while software executed by the edge side system 20 and the cloud side system 30 according to the present embodiment is being updated.
  • the first virtual server control unit 11 shown in FIG. 11 newly starts up the virtual server 210A (fifth information processing resource) by controlling the edge-side virtual server infrastructure 21A as shown in FIG.
  • the first virtual server control unit 11 reads the edge-side updated software 173 from the software storage unit 17, and controls the virtual server 210A to execute the read edge-side updated software 173.
  • the first virtual server control unit 11 controls the cloud-side virtual server platform 31 to start up the virtual server 310-2 and control the virtual server 310-2 to execute the cloud-side updated software 171. This is the same as in the first embodiment.
  • the first virtual server control unit 11 sets the virtual server 210A in the edge side system 20A.
  • the software update control apparatus 10 according to the present embodiment performs the same process for the virtual server 210A as the process performed for the virtual server 310-3 in the first embodiment.
  • the state of these systems after the software executed by the edge-side system 20 and the cloud-side system 30 according to the present embodiment is updated by the control by the software update control device 10 is the same as in the first embodiment. As shown in FIG.
  • the first virtual server control unit 11 activates the virtual servers 310-2 and 210A, and sequentially executes the cloud-side updated software 171 and the edge-side updated software 173 (step S401).
  • the edge hub control unit 16 causes the edge hub 22 to input the observation data received from the device group 40 to the virtual server 210A (step S402).
  • the verification unit 12 verifies the trial operation performed by the virtual servers 210A and 310-2 (step S403).
  • step S404 If the verification result by the verification unit 12 is abnormal (No in step S404), the software update control device 10 executes the processes of steps S114 and S115 shown in FIG. 5A (step S413), and the entire process ends.
  • the switching unit 15 switches the output from the virtual server 310-1 to the message buffer 33 and the output from the virtual server 310-2 to the application hub 32. (Step S405).
  • the verification unit 12 verifies the operation performed by the virtual servers 210A and 310-2 (step S406).
  • step S407 If the verification result by the verification unit 12 is abnormal (No in step S407), the process proceeds to step S413. If the verification result by the verification unit 12 is normal (Yes in step S407), the takeover control unit 13 performs live migration of the virtual server 210 as the virtual server 310-4 (step S408). The second virtual server control unit 14 performs live migration of the virtual server 210A as the virtual server 210 (step S409). The verification unit 12 verifies the operations performed by the virtual servers 210 and 310-2 (step S410).
  • step S411 If the verification result by the verification unit 12 is abnormal (No in step S411), the process proceeds to step S413.
  • the software update control device 10 executes the processes of Steps S112 and S113 shown in FIG. 5B (Step S412), and the entire process ends.
  • the software update control apparatus 10 performs software update processing executed by an information processing apparatus having only limited information processing resources such as an edge server in an IoT system without stopping the information processing apparatus. Can be done reliably. The reason is as described for the first embodiment.
  • the software update control device 10 constructs a virtual server that performs a trial operation using the edge-side post-update software 173 in another edge-side system 20A instead of the cloud-side system 30.
  • the software update control device 10 can perform software update processing while avoiding an increase in cost or performance problems associated with building a virtual server that performs the trial operation in the cloud-side system 30. .
  • FIG. 14 is a block diagram conceptually showing the structure of the software update control system 3 according to the fifth embodiment of the present invention.
  • the software update control system 3 is roughly divided into a software update control device 50, n (n is an arbitrary natural number of 2 or more) edge side systems 20-1 to 20-n, a cloud side system 30, and a device group 40. -1 to 40-n.
  • the individual configurations of the edge side systems 20-1 to 20-n are the same as those of the edge side system 20 according to the first embodiment shown in FIG. That is, the edge-side systems 20-1 to 20-n include edge-side virtual server platforms 21-1 to 21-n and edge hubs 22-1 to 22-n.
  • the edge side systems 20-1 to 20-n are communicably connected to the device groups 40-1 to 40-n, and receive observation data output from the device groups 40-1 to 40-n.
  • the edge side systems 20-1 to 20-n perform the same processing as the edge side system 20 according to the first embodiment on the received observation data.
  • the cloud-side system 30 is communicably connected to the edge-side systems 20-1 to 20-n, and performs processing with respect to the treatment target data output from the edge-side systems 20-1 to 20-n. The same processing as in the first embodiment is performed.
  • the software update control device 50 performs update processing on the software executed by the virtual servers in the edge side systems 20-1 to 20-n and the cloud side system 30 in the same manner as the software update control device 10 according to the first embodiment. It is a device to control.
  • the software update control device 50 includes an update instruction unit 58 in addition to the configuration of the software update control device 10 according to the first embodiment.
  • the update instruction unit 58 stores the update schedule information 580 in an internal electronic memory or the like.
  • the update schedule information 580 is information indicating a software update schedule (execution date, etc.) for each of the edge-side systems 20-1 to 20-n.
  • the update instruction unit 58 Based on the update schedule information 580, the update instruction unit 58 detects that the software update date has come for a specific edge side system among the edge side systems 20-1 to 20-n. Alternatively, the update instruction unit 58 receives information input by a system administrator or the like that instructs to update software for a specific edge system.
  • the update instruction unit 58 outputs instruction information instructing to perform software update processing for the specific edge system.
  • the software update control device 50 starts the software update process when the instruction information is output.
  • the update instruction unit 58 may instruct to start a plurality of update processes at the same timing when performing a software update process for a plurality of edge-side systems.
  • the update instructing unit 58 may instruct to start the update process sequentially based on information indicating the state of the free area of the memory related to the cloud-side system 30 or the bandwidth of the communication network.
  • the software storage unit 17 includes the edge-side pre-update software 172-1 to 172-n and the edge-side post-update software 173 for the edge-side systems 20-1 to 20-n. -1 to 173-n are stored.
  • FIG. 15 is a diagram illustrating the state of each system while software executed by the edge-side systems 20-1 to 20-n and the cloud-side system 30 according to the present embodiment is being updated.
  • the software update control device 50 has a plurality of virtual servers 310-3 to 310-m (m is 3 or more) that performs trial operation using the edge-side updated software in the process of updating software. Is controlled so that the cloud side system 30 executes.
  • the software update control device 50 controls software update processing executed by the plurality of edge-side systems 20-1 to 20-n according to the same procedure as the software update control device 10 according to the first embodiment.
  • the software update control device 50 performs software update processing executed by an information processing device having limited information processing resources such as an edge server in an IoT system without stopping the information processing device. Can be done reliably. The reason is as described for the first embodiment.
  • the software update control device 50 can perform the above-described processing even when updating software for a plurality of edge-side systems.
  • FIG. 16 is a block diagram conceptually showing the structure of the software update control device 60 according to the sixth embodiment of the present invention.
  • the software update control device 60 includes a first execution control unit 61, a verification unit 62, a takeover control unit 63, a second execution control unit 64, and a switching unit 65.
  • the second information processing system 80 shown in FIG. 16 processes the pre-update output information output by the first information processing resource 71 included in the first information processing system 70 by executing the pre-update software 710.
  • the first execution control unit 61 controls the updated software 711 to be executed by the second information processing resource 81 included in the second information processing system 80.
  • the verification unit 62 verifies the trial operation in which the second information processing system 80 processes the information output by the second information processing resource 81 executing the updated software 711.
  • the takeover control unit 63 indicates the state in which the pre-update output information is output when the verification result for the trial operation by the verification unit 62 is normal, the third information included in the second information processing system 80 Control is performed so that the processing resource 82 takes over from the first information processing resource 71.
  • the takeover control unit 63 then controls the second information processing system 80 to process the pre-update output information output from the third information processing resource 82.
  • the second execution control unit 64 controls the first information processing resource 71 to output the updated output information by executing the updated software 711 after the processing by the takeover control unit 63 is performed. .
  • the switching unit 65 sets the processing target information to be processed by the second information processing system 80 from the pre-update output information output from the first information processing resource 71 or the third information processing resource 82, to the first information processing resource 80.
  • the post-update output information output from the information processing resource 71 or the second information processing resource 81 is switched.
  • the software update control device 60 performs a software update process executed by an information processing device having limited information processing resources such as an edge server in an IoT system without stopping the information processing device. Can be done reliably. The reason is that the software update control device 60 constructs the entire operating environment after the software update in the second information processing system 80 and verifies the operation, and then the software update in the first information processing system 70 is performed. This is because the previous operating environment is moved to the second information processing system 80, and the first information processing system 70 is controlled to execute the updated software.
  • each unit in the software update control device shown in FIGS. 1, 11, 14, and 16 can be realized by a dedicated HW (HardWare) (electronic circuit).
  • HW HardWare
  • FIG. 1, FIG. 11, FIG. 14, and FIG. 16 at least the following configuration can be regarded as a function (processing) unit (software module) of a software program.
  • FIG. 17 is a diagram illustrating an exemplary configuration of an information processing apparatus 900 (computer) that can execute the software update control apparatus according to each embodiment of the present invention. That is, FIG. 17 shows a configuration of a computer (information processing apparatus) that can realize the software update control apparatus shown in FIGS. 1, 11, 14, and 16, and each function in the above-described embodiment. Represents a possible hardware environment.
  • the information processing apparatus 900 illustrated in FIG. 17 includes the following as constituent elements.
  • CPU Central_Processing_Unit
  • ROM Read_Only_Memory
  • RAM Random_Access_Memory
  • -Hard disk storage device
  • a communication interface 905 with an external device ⁇ Bus 906 (communication line)
  • the information processing apparatus 900 including the above-described components is a general computer in which these configurations are connected via a bus 906.
  • the information processing apparatus 900 may include a plurality of CPUs 901 or may include a CPU 901 configured by a multi-core.
  • the present invention described by taking the above embodiment as an example supplies a computer program capable of realizing the following functions to the information processing apparatus 900 shown in FIG.
  • the function is the above-described configuration in the block configuration diagrams (FIGS. 1, 11, 14, and 16) referred to in the description of the embodiment, or the flowcharts (FIGS. 5A and 5B, FIGS. 6A and 6B, FIG. 10A and 10B and FIGS. 13A and 13B).
  • the present invention is then achieved by reading the computer program to the CPU 901 of the hardware, interpreting it and executing it.
  • the computer program supplied to the apparatus may be stored in a readable / writable volatile memory (RAM 903) or a nonvolatile storage device such as the ROM 902 or the hard disk 904.
  • a general procedure can be adopted as a method for supplying a computer program into the hardware.
  • the procedure includes, for example, a method of installing in the apparatus via various recording media 907 such as a CD-ROM, and a method of downloading from the outside via a communication line such as the Internet.
  • the present invention is configured by a code constituting the computer program or a recording medium 907 in which the code is stored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行う。 ソフトウェア更新制御装置60は、ソフトウェア更新後の動作環境を第2の情報処理システム80の中に構築する第1の実行制御部61と、更新後の動作を検証する検証部62と、第1の情報処理システム70におけるソフトウェア更新前の動作環境を第2の情報処理システム80に移動させる引継ぎ制御部63と、第2の情報処理システム80に更新後のソフトウェアを実行させる第2の実行制御部64と、第2の情報処理システム80の処理対象情報を、更新前のソフトウェアを実行して得られた情報から更新後のソフトウェアを実行して得られた情報に切り替える切り替え部65と、を備える。

Description

ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
 本願発明は、情報処理装置がソフトウェアを実行する動作を停止することなく、当該ソフトウェアを更新する技術に関する。
 高度情報化社会である現代社会においては、社会インフラの基盤として、様々なコンピュータシステムが稼動している。このようなコンピュータシステムでは、機能の向上、あるいは、セキュリティ対策等を目的としたソフトウェアの更新が行われる。高いレベルの可用性が求められるコンピュータシステムは、ソフトウェアの更新に伴い動作を一時停止した場合、社会に大きな影響を与える虞がある。したがって、コンピュータシステムの動作を停止させずに、ソフトウェアを更新する技術が期待されている。
 このような技術に関連する技術として、特許文献1には、ソフトウェアを動作させる仮想ハードウェアを冗長化構成した仮想計算機システムが開示されている。このシステムは、冗長化構成において動作するソフトウェアを更新する場合、待機系仮想ハードウェアにおいて動作するソフトウェアを更新した後、稼動系による処理を待機系が引継ぐように制御する。
 また、特許文献2には、ロードバランサにより負荷分散されるサーバのクラスタを多段、多階層有する複数の系統からなる情報処理システムにおいて、無停止でソフトウェアのバージョンアップ等のメンテナンスを行うソフトウェア更新方法が開示されている。
 また、特許文献3には、ハイパーバイザ型の仮想マシンモニターと、その仮想マシンモニターの上で業務を行う第1仮想マシンと、ソフトウェアのインストールまたはアップグレードを行う第2仮想マシンと、を備えた分散型情報処理システムが開示されている。このシステムでは、第2仮想マシンは、自己に対して更新後のソフトウェアをインストールした後、第1仮想マシンにおいて動的に更新されるデータ格納場所の情報が保存されているインデックステーブルを段階的に自己に移行する。そして、このシステムは、その移行が完了したときに、第1仮想マシンから第2仮想マシンへ処理を切り替える。
 また、特許文献4には、マルチコアシステムにおいて、運用中のファームウェアが稼働しているコアとは別のコアを利用することによって、別のコアの占有メモリ領域に更新ファームウェアをロードする制御装置が開示されている。この装置は、更新ファームウェアが正常に動作するか否かを検査したのちに、ファームウェアに対する処理を運用中のコアから当該別のコアに切り替える。
 また、特許文献5には、ロードバランサによって、ソフトウェアが更新される前の旧クラスタと、ソフトウェアが更新された後の新クラスタとを管理するクラスタシステムが開示されている。このシステムは、既に受付済みの処理を旧クラスタへ、新たな処理要求を新クラスタへ振り分ける制御を行う。
特開2007-304845号公報 特開2015-197838号公報 特開2011-170528号公報 特許第5293752号公報 特許第5667506号公報
 センサーやカメラなどのデバイスから生成されるデジタルデータを、ネットワークを介して集約し、集約したデータに対して、分析あるいは状況の可視化を行うことによって、予測や制御等を行うIoT(Internet of Things)システムの活用が広まってきている。このようなIoTシステムは、多数のデバイスを統合管理するので、データセンター等のクラウドシステム側にデータを集めることによって、集中的に計算処理を行う形態が一般的である。しかしながら、ネットワークに接続されるデバイスの数が増えることにより、扱うデータ量が膨大になるにつれて、クラウドシステム側が全ての処理を行うことは非効率となる。
 このような問題に対して、データの生成源であるデバイスに近い場所にエッジサーバ(以降、「エッジ」と称する)と呼ばれる計算機サーバが設置され、そのエッジがデータ処理の一部を実行するエッジ型システムが利用されるようになってきている。例えば、エッジが多数のデバイスから集めたデータを集計し、その集計結果のみをクラウドシステムに転送することによって、クラウドシステムへのデータ転送量を削減することができる。また、収集したデータに基づいてリアルタイムな制御を行う必要があるシステム等では、エッジによる制御判断を実施した方が、制御における遅延を抑えることができるので、精度が高い制御を実現することができる。
 このようなエッジ型IoTシステムでは、エッジによって実行されるソフトウェアを更新する場合がある。可用性に対する要件が厳しいIoTシステムでは、このような場合、エッジによって実行される更新後のソフトウェアがクラウドシステムと連携して正常に動作することを確認したのち、IoTシステムの動作を停止させることなく、ソフトウェアの更新処理を行うことが課題である。上述した特許文献には、例えば、二重化等の多重化したシステムを利用することによってソフトウェア更新時の無停止性を実現した技術が示されている。しかしながら、エッジ型IoTシステムでは、通常、エッジが備える計算機資源(情報処理資源)が限られているので、エッジによって実行されるソフトウェアの更新に対して、多重化に基づく無停止更新技術を適用することが困難であるという問題がある。特許文献1乃至5は、この問題について言及していない。本願発明の主たる目的は、この問題を解決するソフトウェア更新制御装置等を提供することである。
 本願発明の一態様に係るソフトウェア更新制御装置は、第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御する第一の実行制御手段と、前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証する検証手段と、前記検証手段による前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御する引継ぎ制御手段と、前記引継ぎ制御手段による処理が行われたのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御する第二の実行制御手段と、前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える切り替え手段と、を備える。
 上記目的を達成する他の見地において、本願発明の一態様に係るソフトウェア更新制御方法は、情報処理装置によって、第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御し、前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証し、前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御し、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できる状態になったのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御し、前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える。
 また、上記目的を達成する更なる見地において、本願発明の一態様に係るソフトウェア更新制御プログラムは、第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御する第一の実行制御処理と、前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証する検証処理と、前記検証処理による前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御する引継ぎ制御処理と、前記引継ぎ制御処理による処理が行われたのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御する第二の実行制御処理と、前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える切り替え処理と、をコンピュータに実行させるためのプログラムである。
 更に、本願発明は、係るソフトウェア更新制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
 本願発明は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことを可能とする。
本願発明の第1の実施形態に係るソフトウェア更新制御システム1の構成を示すブロック図である。 本願発明の第1の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される前の、各システムの状態を例示する図である。 本願発明の第1の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。 本願発明の第1の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新された後の、各システムの状態を例示する図である。 本願発明の第1の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(1/2)である。 本願発明の第1の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(2/2)である。 本願発明の第2の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(1/2)である。 本願発明の第2の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(2/2)である。 本願発明の第3の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される前の、各システムの状態を例示する図である。 本願発明の第3の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。 本願発明の第3の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新された後の、各システムの状態を例示する図である。 本願発明の第3の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(1/2)である。 本願発明の第3の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(2/2)である。 本願発明の第4の実施形態に係るソフトウェア更新制御システム2の構成を示すブロック図である。 本願発明の第4の実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。 本願発明の第4の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(1/2)である。 本願発明の第4の実施形態に係るソフトウェア更新制御装置10の動作を示すフローチャート(2/2)である。 本願発明の第5の実施形態に係るソフトウェア更新制御システム3の構成を示すブロック図である。 本願発明の第5の実施形態に係るエッジ側システム20-1乃至20-n及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。 本願発明の第6の実施形態に係るソフトウェア更新制御装置60の構成を示すブロック図である。 本願発明の各実施形態に係るソフトウェア更新制御装置を実行可能な情報処理装置の構成を示すブロック図である。
 以下、本願発明の実施の形態について図面を参照して詳細に説明する。
 <第1の実施形態>
 図1は、本願発明の第1の実施の形態に係るソフトウェア更新制御システム1の構成を概念的に示すブロック図である。ソフトウェア更新制御システム1は、例えば、IoTシステムにおけるエッジによって実行されるソフトウェアを更新するシステムである。ソフトウェア更新制御システム1は、大別して、ソフトウェア更新制御装置10、エッジ側システム20、クラウド側システム30、及び、デバイス群40を有する。
 デバイス群40は、例えばセンサーやカメラなどを含むデバイス群であり、観測対象を観測した結果を表す観測データを生成して出力する。
 エッジ側システム20(第1の情報処理システム)は、エッジサーバ等の情報処理装置であり、エッジ側仮想サーバ基盤21と、エッジハブ22とを備えている。エッジハブ22は、デバイス群40と通信可能に接続されており、デバイス群40から出力された観測データを受信する。エッジ側仮想サーバ基盤21は、仮想サーバ210を実行可能な基盤であり、プロセッサやメモリ等のハードウェア(例えば図17を参照して後述するような構成)と、ハイパーバイザ(仮想サーバの実行を制御するソフトウェア)等のソフトウェア(不図示)とを含んでいる。仮想サーバ210は、エッジハブ22が受信した観測データを、処理対象データとして処理したのち、当該処理対象データを、通信可能に接続されているクラウド側システム30に送信する。尚、エッジ側システム20が備えるプロセッサやメモリ等のハードウェアの量は少ないので、エッジ側仮想サーバ基盤21が実行可能な仮想サーバの数は、限定的であることとする。
 クラウド側システム30(第2の情報処理システム)は、例えばデータセンターとして設置された、多数の情報処理装置を含むシステムであり、クラウド側仮想サーバ基盤31と、アプリケーションハブ32と、メッセージバッファ33とを備えている。クラウド側仮想サーバ基盤31は、仮想サーバ310-1乃至310-m(mは任意の自然数)を実行可能な基盤であり、プロセッサやメモリ等のハードウェア(例えば図17を参照して後述するような構成)と、ハイパーバイザ等のソフトウェア(不図示)とを含んでいる。仮想サーバ310-1乃至310-mは、エッジ側システム20から送信された処理対象データに対して所定の処理を行う。
 クラウド側システム30は、アプリケーション34を実行する。アプリケーション34は、仮想サーバ310-1乃至310-mによって処理された処理対象データを使用したサービスを提供する。アプリケーション34は、例えば、当該処理対象データに基づく情報分析あるいはシステム制御等を行う。当該処理対象データは、アプリケーションハブ32を介して、アプリケーション34に入力される。アプリケーションハブ32は、メッセージバッファ33とも接続されている。メッセージバッファ33は、仮想サーバ310-1乃至310-mから出力されたデータを一時的に記憶可能な電子メモリ等のデバイスである。アプリケーションハブ32は、外部からの制御に従って、仮想サーバ310-1乃至310-mから出力されたデータ、あるいは、メッセージバッファ33に記憶されたデータのいずれかを選択して、アプリケーション34に入力する。
 ソフトウェア更新制御装置10は、仮想サーバ210によって実行されるソフトウェアと、仮想サーバ310-1乃至310-mによって実行されるソフトウェアとに対する更新処理を制御する装置である。ソフトウェア更新制御装置10は、エッジ側システム20及びクラウド側システム30と、通信可能に接続されている。
 ソフトウェア更新制御装置10は、第1仮想サーバ制御部11、検証部12、引継ぎ制御部13、第2仮想サーバ制御部14、切り替え部15、エッジハブ制御部16、及び、ソフトウェア記憶部17を備えている。
 ソフトウェア記憶部17は、クラウド側更新前ソフトウェア170、クラウド側更新後ソフトウェア171、エッジ側更新前ソフトウェア172、及び、エッジ側更新後ソフトウェア173を記憶している。クラウド側更新前ソフトウェア170は、仮想サーバ310-1乃至310-mによって実行される更新前のソフトウェアである。クラウド側更新後ソフトウェア171は、仮想サーバ310-1乃至310-mによって実行される更新後のソフトウェアである。エッジ側更新前ソフトウェア172は、仮想サーバ210によって実行される更新前のソフトウェアである。エッジ側更新後ソフトウェア173は、仮想サーバ210によって実行される更新後のソフトウェアである。
 図2は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される前の、各システムの状態を例示する図である。図2に例示する通り、仮想サーバ210(第1の情報処理資源)は、エッジ側更新前ソフトウェア172を実行することによって、エッジハブ22(データ受信部)から入力された観測データを処理し、処理結果である処理対象データを仮想サーバ310-1に入力する。仮想サーバ310-1は、クラウド側更新前ソフトウェア170を実行することによって、仮想サーバ210から入力された処理対象データを処理し、処理結果である処理対象データをアプリケーションハブ32に入力する。
 図1に示すソフトウェア更新制御装置10は、図2に示す状態において、エッジ側システム20及びクラウド側システム30によって実行されるソフトウェアを、エッジ側更新後ソフトウェア173及びクラウド側更新後ソフトウェア171に更新する処理を開始する。
 図3は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。図1に示す第1仮想サーバ制御部11(第1の実行制御部)は、図3に示す通り、クラウド側仮想サーバ基盤31を制御することによって、仮想サーバ310-2、及び、仮想サーバ310-3(第2の情報処理資源)を新たに立ち上げる。第1仮想サーバ制御部11は、ソフトウェア記憶部17からクラウド側更新後ソフトウェア171及びエッジ側更新後ソフトウェア173を読み出して、読み出したこれらのソフトウェアを、順に、仮想サーバ310-2及び310-3が実行するように制御する。
 図1に示すエッジハブ制御部16(データ受信部制御部)は、第1仮想サーバ制御部11が上述した処理を行う際に、エッジハブ22が、デバイス群40から受信した観測データを複製し、複製した観測データを仮想サーバ310-3に入力するように制御する。これにより、図3に示す通り、更新後のソフトウェアによって観測データを処理する(試行動作を行う)環境が、クラウド側仮想サーバ基盤31の中に構築される。
 図1に示す検証部12は、仮想サーバ310-3が観測データを処理することによって出力した処理対象データを仮想サーバ310-2が処理する試行動作が正常であるか否かを検証する。検証部12には、例えば、この検証に必要な判定基準がシステム管理者等によって事前に与えられており、検証部12は、当該判定基準に基づいて上述した検証を行うこととする。検証部12は、ソフトウェアの更新処理が完了し、エッジ側システム20及びクラウド側システム30が、更新後のソフトウェアを実行することによって観測データを処理することを開始したのちも、エッジ側システム20及びクラウド側システム30による処理を検証することを継続する。検証部12は、検証結果が異常であることを示す場合、ソフトウェア更新制御システム1における障害発生状況等を管理するシステム管理部(不図示)に、異常が発生したことを通知する。
 図4は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新された後の、各システムの状態を例示する図である。図1に示す引継ぎ制御部13は、検証部12による検証結果が正常であることを示す場合、図3及び図4に示す通り、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31を制御することによって、仮想サーバ210を、クラウド側仮想サーバ基盤31に、仮想サーバ310-4(第3の情報処理資源)としてライブマイグレーションを行う。ライブマイグレーションは、仮想サーバの動作を停止させずに、当該仮想サーバの動作環境を異なる物理システムに移動させる既存の技術であり、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31は、このライブマイグレーションの機能を実装していることとする。このライブマイグレーションによって、仮想サーバ310-4から出力された処理対象データは、仮想サーバ310-1に入力されるので、ライブマイグレーションが行われた後も、更新前のソフトウェアによって観測データを処理する環境は、クラウド側仮想サーバ基盤31の中に維持される。
 図1に示す第2仮想サーバ制御部14は、引継ぎ制御部13による処理が行われたのち、図3及び図4に示す通り、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31を制御することによって、仮想サーバ310-3を、エッジ側仮想サーバ基盤21に、新たな仮想サーバ210としてライブマイグレーションを行う。このライブマイグレーションによって、仮想サーバ210から出力された処理対象データは、仮想サーバ310-2に入力される。したがって、ライブマイグレーションが行われた後も、更新後のソフトウェアによって観測データを処理する環境は、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31の中に維持される。
 図1に示す切り替え部15は、クラウド側仮想サーバ基盤31を制御することによって、図3及び図4に例示する通り、アプリケーションハブ32へ入力される情報を、仮想サーバ310-1から出力された情報から、仮想サーバ310-2から出力された情報に切り替える。これによって、アプリケーションハブ32に入力される情報は、更新前のソフトウェアによって観測データが処理された情報(更新前出力情報)から、更新後のソフトウェアによって観測データが処理された情報(更新後出力情報)に切り替わる。
 切り替え部15は、図3及び図4に例示する通り、上述したアプリケーションハブ32への入力の切り替えに伴い、メッセージバッファ33に、仮想サーバ310-1から出力された情報(更新前出力情報)を入力する。すなわち、メッセージバッファ33は、ソフトウェアの更新処理が完了し、エッジ側システム20及びクラウド側システム30が、更新後のソフトウェアを実行することによって観測データを処理することを開始したのち、仮想サーバ310-1及び310-4によって生成される更新前出力情報を記憶する。 
 切り替え部15は、ソフトウェアの更新処理が完了したのち、検証部12による検証結果が異常であることを示す場合、アプリケーションハブ32を制御することによって、アプリケーション34へ入力される情報を、仮想サーバ310-2から出力された更新後出力情報から、メッセージバッファ33に記憶されている更新前出力情報に切り替える。これにより、エッジ側システム20及びクラウド側システム30による、観測データを処理する環境は、ソフトウェアの更新が行われる前の環境に戻る。
 図4に示す仮想サーバ310-1及び310-4(すなわち、更新前のソフトウェアを実行する環境)は、ソフトウェアの更新処理が完了したのち、例えば検証部12による検証結果が所定の時間に亘って正常であることをもって、第1仮想サーバ制御部11によって動作を停止する。
 次に図5A及び5Bのフローチャートを参照して、本実施形態に係るソフトウェア更新制御装置10の動作(処理)について詳細に説明する。
 第1仮想サーバ制御部11は、仮想サーバ310-2及び310-3を起動し、順に、クラウド側更新後ソフトウェア171及びエッジ側更新後ソフトウェア173を実行させる(ステップS101)。エッジハブ制御部16は、エッジハブ22が、デバイス群40から受信した観測データを複製し、複製した観測データを仮想サーバ310-3に入力するように制御する(ステップS102)。検証部12は、仮想サーバ310-2及び310-3が行う試行動作を検証する(ステップS103)。
 検証部12による検証結果が異常である場合(ステップS104でNo)、ソフトウェア更新制御装置10は、エッジ側システム20及びクラウド側システム30を、ソフトウェア更新処理を開始する前の状態に戻す(ステップS114)。検証部12は、異常が発生したことをシステム管理部に通知して、全体の処理は終了する。
 検証部12による検証結果が正常である場合(ステップS104でYes)、切り替え部15は、仮想サーバ310-1からの出力をメッセージバッファ33に切り替え、仮想サーバ310-2からの出力をアプリケーションハブ32に接続する(ステップS105)。検証部12は、仮想サーバ310-2及び310-3が行う動作を検証する(ステップS106)。
 検証部12による検証結果が異常である場合(ステップS107でNo)、処理は、ステップS114へ進む。検証部12による検証結果が正常である場合(ステップS107でYes)、引継ぎ制御部13は、仮想サーバ210を、仮想サーバ310-4としてライブマイグレーションする(ステップS108)。第2仮想サーバ制御部14は、仮想サーバ310-3を、新たな仮想サーバ210としてライブマイグレーションする(ステップS109)。検証部12は、仮想サーバ210及び310-2が行う動作を検証する(ステップS110)。
 検証部12による検証結果が異常である場合(ステップS111でNo)、処理は、ステップS114へ進む。検証部12による検証結果が正常である場合(ステップS111でYes)、エッジハブ制御部16は、エッジハブ22から仮想サーバ310-4に対する観測データの入力を停止する(ステップS112)。第1仮想サーバ制御部11は、仮想サーバ310-1及び310-4の動作を停止して(ステップS113)、全体の処理は終了する。
 本実施形態に係るソフトウェア更新制御装置10は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、ソフトウェア更新制御装置10が、ソフトウェア更新後の全体の動作環境をクラウド側システム30の中に構築してその動作を検証したのち、エッジ側システム20におけるソフトウェア更新前の動作環境をクラウド側システム30に移動させるとともに、エッジ側システム20が更新後のソフトウェアを実行するように制御するからである。
 以下に、本実施形態に係るソフトウェア更新制御装置10によって実現される効果について、詳細に説明する。
 可用性に対する要件が厳しいIoTシステム等において、エッジによって実行されるソフトウェアを更新する場合、IoTシステムの動作を停止させることなく、ソフトウェアの更新処理を行うことが課題である。そして、その際、エッジによって実行される更新後のソフトウェアがクラウドシステムと連携して正常に動作することが確認できていることが望ましい。既存の技術として、例えば、二重化等の多重化したシステムを利用することによってソフトウェア更新時の無停止性を実現した技術が存在する。しかしながら、エッジ型IoTシステム等では、通常、エッジが備える計算機資源が限られているので、エッジによって実行されるソフトウェアの更新に対して、多重化に基づく無停止更新技術を適用することが困難であるという問題がある。
 このような問題に対して、本実施形態に係るソフトウェア更新制御装置10では、第1仮想サーバ制御部11は、仮想サーバ210がエッジ側更新前ソフトウェア172を実行することによって出力した更新前出力情報を、クラウド側システム30が処理する場合において、エッジ側更新後ソフトウェア173を、仮想サーバ310-3が実行するように制御する。検証部12は、仮想サーバ310-3がエッジ側更新後ソフトウェア173を実行することによって出力した更新後出力情報を、クラウド側システム30が処理する試行動作を検証する。引継ぎ制御部13は、検証部12による検証結果が正常であることを示す場合に、エッジ側更新前ソフトウェア172を実行する仮想サーバ210の状態を仮想サーバ310-4が引き継ぎ、仮想サーバ310-4から出力された更新前出力情報をクラウド側システム30が処理できるように制御する。第2仮想サーバ制御部14は、引継ぎ制御部13による処理が行われたのち、仮想サーバ210がエッジ側更新後ソフトウェア173を実行することによって更新後出力情報を出力するように制御する。切り替え部15は、クラウド側システム30が処理対象とする処理対象情報を、仮想サーバ210から出力された更新前出力情報から、仮想サーバ310-3から出力された更新後出力情報に切り替える。
 すなわち、本実施形態に係るソフトウェア更新制御装置10は、大量の情報処理資源を備えるクラウド側システム30を利用して、更新後のソフトウェアを検証する。そして、ソフトウェア更新制御装置10は、更新前のソフトウェアの実行環境をクラウド側システム30に移動することと、エッジ側システム20が更新後のソフトウェアの実行を開始することとを、各システムが動作を停止することなく行うように制御する。これにより、本実施形態に係るソフトウェア更新制御装置10は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。
 また、本実施形態に係るソフトウェア更新制御装置10は、ソフトウェアの更新が行われた後も、少なくとも所定の期間は、更新前のソフトウェアの実行環境をクラウド側システム30に残し、更新前のソフトウェアの実行環境によって得られた結果がメッセージバッファ33に記憶されるように制御する。ソフトウェア更新制御装置10は、更新後のソフトウェアによる処理において異常が発生した場合、クラウド側システム30が、処理対象情報として、メッセージバッファ33に記憶された情報を使用するように制御することによって、システムをソフトウェアが更新される前の状態に戻すことができる。したがって、本実施形態に係るソフトウェア更新制御装置10は、システムの可用性を向上することができる。
 尚、本実施形態に係るソフトウェア更新制御装置10が制御を行う対象は、仮想サーバに限定されない。ソフトウェア更新制御装置10は、例えば、物理サーバ同士でマイグレーションを行う技術を利用することによって、エッジ側システム20及びクラウド側システム30に含まれる物理サーバに対して、上述した処理を行ってもよい。
 また、本実施形態に係るソフトウェア更新制御装置10が制御を行う対象は、デバイス群によって生成された観測データを処理するエッジ側システムとクラウド側システムとから構成されるIoTシステムに限定されない。ソフトウェア更新制御装置10は、例えば、特定のアプリケーションを分散処理する複数の小規模サーバと、それらの小規模サーバを制御する大規模サーバを含むシステムにおけるソフトウェアを更新する際に、上述した処理を行ってもよい。
 <第2の実施形態>
 次に、本願発明の第2の実施形態に係るソフトウェア更新制御システム1について説明する。本実施形態に係るソフトウェア更新制御システム1の構成は、図1に示す第1の実施形態に係るソフトウェア更新制御システム1と同様である。本実施形態に係るソフトウェア更新制御装置10は、その動作フローが第1の実施形態とは異なる構成を有する。本実施形態に係るソフトウェア更新制御装置10の動作(処理)について、図6A及び6Bのフローチャートを参照して詳細に説明する。
 ソフトウェア更新制御装置10は、図5Aに示すステップS101乃至S103の処理を実行する(ステップS201)。検証部12による検証結果が異常である場合(ステップS202でNo)、ソフトウェア更新制御装置10は、図5Aに示すステップS114及びS115の処理を実行し(ステップS211)、全体の処理は終了する。
 検証部12による検証結果が正常である場合(ステップS202でYes)、引継ぎ制御部13は、仮想サーバ210を、仮想サーバ310-4としてライブマイグレーションする(ステップS203)。第2仮想サーバ制御部14は、仮想サーバ310-3を、新たな仮想サーバ210としてライブマイグレーションする(ステップS204)。検証部12は、仮想サーバ210及び310-2が行う動作を検証する(ステップS205)。
 検証部12による検証結果が異常である場合(ステップS206でNo)、処理はステップS211へ進む。検証部12による検証結果が正常である場合(ステップS206でYes)、切り替え部15は、仮想サーバ310-1からの出力をメッセージバッファ33に切り替え、仮想サーバ310-2からの出力をアプリケーションハブ32に接続する(ステップS207)。検証部12は、仮想サーバ210及び310-2が行う動作を検証する(ステップS208)。
 検証部12による検証結果が異常である場合(ステップS209でNo)、処理はステップS211へ進む。検証部12による検証結果が正常である場合(ステップS209でYes)、ソフトウェア更新制御装置10は、図5Bに示すステップS112及びS113の処理を実行し(ステップS210)、全体の処理は終了する。
 本実施形態に係るソフトウェア更新制御装置10は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、第1の実施形態について説明した通りである。
 また、本実施形態に係るソフトウェア更新制御装置10は、第1の実施形態とは異なり、仮想サーバ210から仮想サーバ310-4へのマイグレーション、及び、仮想サーバ310-3から仮想サーバ210へのマイグレーションを行ったのちに、クラウド側システム30の処理対象情報を、更新前出力情報から更新後出力情報に切り替える。したがって、本実施形態に係るソフトウェア更新制御装置10は、更新後のソフトウェアを実際の動作環境により近い状態において検証したのちに、更新後のソフトウェアに切り替えるので、システムの可用性をさらに向上することができる。
 <第3の実施形態>
 次に、本願発明の第3の実施形態に係るソフトウェア更新制御システム1について説明する。本実施形態に係るソフトウェア更新制御システム1の構成は、図1に示す第1の実施形態に係るソフトウェア更新制御システム1と同様である。本実施形態に係るソフトウェア更新制御装置10は、エッジ側システム20及びクラウド側システム30に対して、第1及び第2の実施形態とは異なる制御を行う。
 図7は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される前の、各システムの状態を例示する図である。図7に例示する通り、本実施形態に係るエッジ側仮想サーバ基盤21には、図2に示す第1の実施形態のときとは異なり、仮想サーバ210に加えて仮想サーバ211(第4の情報処理資源)が存在する。仮想サーバ211は、基準よりも優先度が低い低優先度処理212を行っている。
 本実施形態に係るソフトウェア更新制御装置10は、図7に示す状態において、エッジ側システム20及びクラウド側システム30によって実行されるソフトウェアを、エッジ側更新後ソフトウェア173及びクラウド側更新後ソフトウェア171に更新する処理を開始する。
 図8は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。引継ぎ制御部13は、図7及び図8に示す通り、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31を制御することによって、仮想サーバ211を、クラウド側仮想サーバ基盤31に、仮想サーバ310-4としてライブマイグレーションを行う。
 図9は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新された後の、各システムの状態を例示する図である。第2仮想サーバ制御部14は、引継ぎ制御部13による処理が行われたのち、図8及び図9に示す通り、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31を制御することによって、仮想サーバ310-3を、エッジ側仮想サーバ基盤21に、新たな仮想サーバ211としてライブマイグレーションを行う。このライブマイグレーションによって、仮想サーバ211から出力された処理対象データは、仮想サーバ310-2に入力されるので、ライブマイグレーションが行われた後も、更新後のソフトウェアによって観測データを処理する環境は、エッジ側仮想サーバ基盤21及びクラウド側仮想サーバ基盤31の中に維持される。
 図9に示す仮想サーバ210及び310-1(すなわち、更新前のソフトウェアを実行する環境)は、ソフトウェアの更新処理が完了したのち、例えば検証部12による検証結果が所定の時間に亘って正常であることをもって、第1仮想サーバ制御部11及び第2仮想サーバ制御部14によって動作を停止する。引継ぎ制御部13は、仮想サーバ210によるエッジ側更新前ソフトウェア172を実行する動作が停止したのち、低優先度処理212を実行する仮想サーバ310-4を、エッジ側仮想サーバ基盤21に、新たな仮想サーバ210としてライブマイグレーションを行う。これにより、低優先度処理212は、ソフトウェアの更新処理が行われる前と同様に、エッジ側システム20により実行される状態に戻る。
 次に図10A及び10Bのフローチャートを参照して、本実施形態に係るソフトウェア更新制御装置10の動作(処理)について詳細に説明する。
 ソフトウェア更新制御装置10は、図5Aに示すS101乃至S103の処理を実行する(ステップS301)。検証部12による検証結果が異常である場合(ステップS302でNo)、ソフトウェア更新制御装置10は、図5Aに示すステップS114及びS115の処理を実行し(ステップS313)、全体の処理は終了する。
 検証部12による検証結果が正常である場合(ステップS302でYes)、引継ぎ制御部13は、仮想サーバ211を、仮想サーバ310-4としてライブマイグレーションする(ステップS303)。第2仮想サーバ制御部14は、仮想サーバ310-3を、仮想サーバ211としてライブマイグレーションする(ステップS304)。検証部12は、仮想サーバ211及び310-2が行う動作を検証する(ステップS305)。
 検証部12による検証結果が異常である場合(ステップS306でNo)、処理はステップS313へ進む。検証部12による検証結果が正常である場合(ステップS306でYes)、切り替え部15は、仮想サーバ310-1からの出力をメッセージバッファ33に切り替え、仮想サーバ310-2からの出力をアプリケーションハブ32に接続する(ステップS307)。検証部12は、仮想サーバ211及び310-2が行う動作を検証する(ステップS307)。
 検証部12による検証結果が異常である場合(ステップS309でNo)、処理はステップS313へ進む。検証部12による検証結果が正常である場合(ステップS309でYes)、エッジハブ制御部16は、エッジハブ22から仮想サーバ210に対する観測データの入力を停止する(ステップS311)。引継ぎ制御部13は、仮想サーバ310-4を、仮想サーバ210としてライブマイグレーションし(ステップS312)、全体の処理は終了する。
 本実施形態に係るソフトウェア更新制御装置10は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、第1の実施形態について説明した通りである。
 また、本実施形態に係るソフトウェア更新制御装置10は、エッジ側更新前ソフトウェア172を実行する仮想サーバ210を、クラウド側システム30にマイグレーションしないで、ソフトウェアの更新処理を行うように制御する。この処理は、エッジ側システム20において優先度が低い処理を行う仮想サーバ211を、一時的にクラウド側システム30にマイグレーションした結果として、エッジ側システム20の負荷が低減することにより実現できる。仮想サーバ211は優先度が低い処理を行っているので、仮想サーバ211をクラウド側システム30にマイグレーションすることによる影響は小さい。ソフトウェア更新制御装置10は、上述した制御を行うことによって、ソフトウェアの更新処理にともなう、更新前のソフトウェアを実行する環境への影響を小さくすることができる。
 また、本実施形態に係るソフトウェア更新制御装置10は、ソフトウェアの更新処理を行った後も、クラウド側システム30ではなくエッジ側システム20において、仮想サーバ210がエッジ側更新前ソフトウェア172を実行するように制御する。したがって、ソフトウェア更新制御装置10は、更新後ソフトウェアによる処理において異常が発生した場合に、より安全かつ迅速に、システムをソフトウェアが更新される前の状態に戻すことができる。
 <第4の実施形態>
 図11は、本願発明の第4の実施形態に係るソフトウェア更新制御システム2の構成を概念的に示すブロック図である。ソフトウェア更新制御システム2は、エッジ側システム20に加えてエッジ側システム20A(第3の情報処理システム)を有することを除いては、図1に示す第1の実施形態に係るソフトウェア更新制御システム1と同様の構成を有する。本実施形態に係るエッジ側システム20Aは、エッジ側システム20と同様に、エッジ側仮想サーバ基盤21A、及び、エッジハブ22Aを備える。エッジ側システム20Aの機能は、エッジ側システム20と同様である。
 本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される前の、これらシステムの状態は、第1の実施形態と同様に図2に示す通りである。
 本実施形態に係るソフトウェア更新制御装置10は、図2に示す状態において、エッジ側システム20及びクラウド側システム30によって実行されるソフトウェアを、エッジ側更新後ソフトウェア173及びクラウド側更新後ソフトウェア171に更新する処理を開始する。
 図12は、本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。
 図11に示す第1仮想サーバ制御部11は、図12に示す通り、エッジ側仮想サーバ基盤21Aを制御することによって、仮想サーバ210A(第5の情報処理資源)を新たに立ち上げる。第1仮想サーバ制御部11は、ソフトウェア記憶部17からエッジ側更新後ソフトウェア173を読み出して、読み出したエッジ側更新後ソフトウェア173を仮想サーバ210Aが実行するように制御する。第1仮想サーバ制御部11がクラウド側仮想サーバ基盤31を制御することによって仮想サーバ310-2を立ち上げ、仮想サーバ310-2がクラウド側更新後ソフトウェア171を実行するように制御することは、第1の実施形態と同様である。
 すなわち、本実施形態に係る第1仮想サーバ制御部11は、第1の実施形態において行った、クラウド側システム30に仮想サーバ310-3を立ち上げる代わりに、エッジ側システム20Aに仮想サーバ210Aを立ち上げる。本実施形態に係るソフトウェア更新制御装置10は、第1の実施形態において仮想サーバ310-3に対して行った処理と同様の処理を、仮想サーバ210Aに対して行う。本実施形態に係るエッジ側システム20及びクラウド側システム30によって実行されるソフトウェアが、ソフトウェア更新制御装置10による制御によって更新された後のこれらシステムの状態は、第1の実施形態と同様に、図4に示す通りである。
 次に図13A及び13Bのフローチャートを参照して、本実施形態に係るソフトウェア更新制御装置10の動作(処理)について詳細に説明する。
 第1仮想サーバ制御部11は、仮想サーバ310-2及び210Aを起動し、順に、クラウド側更新後ソフトウェア171及びエッジ側更新後ソフトウェア173を実行させる(ステップS401)。エッジハブ制御部16は、エッジハブ22に、デバイス群40から受信した観測データを、仮想サーバ210Aに入力させる(ステップS402)。検証部12は、仮想サーバ210A及び310-2が行う試行動作を検証する(ステップS403)。
 検証部12による検証結果が異常である場合(ステップS404でNo)、ソフトウェア更新制御装置10は、図5Aに示すステップS114及びS115の処理を実行し(ステップS413)、全体の処理は終了する。
 検証部12による検証結果が正常である場合(ステップS404でYes)、切り替え部15は、仮想サーバ310-1からの出力をメッセージバッファ33に切り替え、仮想サーバ310-2からの出力をアプリケーションハブ32に接続する(ステップS405)。検証部12は、仮想サーバ210A及び310-2が行う動作を検証する(ステップS406)。
 検証部12による検証結果が異常である場合(ステップS407でNo)、処理はステップS413へ進む。検証部12による検証結果が正常である場合(ステップS407でYes)、引継ぎ制御部13は、仮想サーバ210を、仮想サーバ310-4としてライブマイグレーションする(ステップS408)。第2仮想サーバ制御部14は、仮想サーバ210Aを、仮想サーバ210としてライブマイグレーションする(ステップS409)。検証部12は、仮想サーバ210及び310-2が行う動作を検証する(ステップS410)。
 検証部12による検証結果が異常である場合(ステップS411でNo)、処理はステップS413へ進む。検証部12による検証結果が正常である場合(ステップS411でYes)、ソフトウェア更新制御装置10は、図5Bに示すステップS112及びS113の処理を実行し(ステップS412)、全体の処理は終了する。
 本実施形態に係るソフトウェア更新制御装置10は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、第1の実施形態について説明した通りである。
 また、本実施形態に係るソフトウェア更新制御装置10は、エッジ側更新後ソフトウェア173を使用して試行動作を行う仮想サーバを、クラウド側システム30ではなく、別のエッジ側システム20Aに構築する。これにより、ソフトウェア更新制御装置10は、当該試行動作を行う仮想サーバをクラウド側システム30に構築することに伴う、コストの増加あるいは性能問題等を回避して、ソフトウェアの更新処理を行うことができる。
 <第5の実施形態>
 図14は、本願発明の第5の実施形態に係るソフトウェア更新制御システム3の構成を概念的に示すブロック図である。ソフトウェア更新制御システム3は、大別して、ソフトウェア更新制御装置50、n個(nは2以上の任意の自然数)のエッジ側システム20-1乃至20-n、クラウド側システム30、及び、デバイス群40-1乃至40-nを有する。
 エッジ側システム20-1乃至20-nの個々の構成は、図1に示す第1の実施形態に係るエッジ側システム20と同様である。すなわち、エッジ側システム20-1乃至20-nは、エッジ側仮想サーバ基盤21-1乃至21-n、及び、エッジハブ22-1乃至22-nを備える。エッジ側システム20-1乃至20-nは、デバイス群40-1乃至40-nと通信可能に接続されており、デバイス群40-1乃至40-nから出力された観測データを受信する。エッジ側システム20-1乃至20-nは、受信した観測データに対して、第1の実施形態に係るエッジ側システム20と同様な処理を行う。
 本実施形態に係るクラウド側システム30は、エッジ側システム20-1乃至20-nと通信可能に接続され、エッジ側システム20-1乃至20-nから出力された処置対象データに対して、第1の実施形態と同様な処理を行う。
 ソフトウェア更新制御装置50は、エッジ側システム20-1乃至20-n、及び、クラウド側システム30における仮想サーバが実行するソフトウェアに対する更新処理を、第1の実施形態に係るソフトウェア更新制御装置10と同様に制御する装置である。
 ソフトウェア更新制御装置50は、図14に示す通り、第1の実施形態に係るソフトウェア更新制御装置10の構成に追加して、更新指示部58を備える。更新指示部58は、更新スケジュール情報580を、内部の電子メモリ等に記憶している。更新スケジュール情報580は、エッジ側システム20-1乃至20-nの個々について、ソフトウェアを更新するスケジュール(実施日時等)を示す情報である。
 更新指示部58は、更新スケジュール情報580に基づいて、エッジ側システム20-1乃至20-nのうちの特定のエッジ側システムについて、ソフトウェアを更新する日時になったことを検知する。更新指示部58は、あるいは、特定のエッジシステムについてソフトウェアの更新を行うことを指示する、システム管理者等によって入力された情報を受け付ける。
 更新指示部58は、このとき、その特定のエッジ側システムについて、ソフトウェアの更新処理を行うことを指示する指示情報を出力する。ソフトウェア更新制御装置50は、当該指示情報が出力されたことを契機として、ソフトウェアの更新処理を開始する。更新指示部58は、複数のエッジ側システムについてソフトウェアの更新処理を行う場合、同じタイミングに複数の更新処理を開始するように指示してもよい。更新指示部58は、あるいは、クラウド側システム30に関するメモリの空き領域の状態、あるいは、通信ネットワークの帯域等を示す情報に基づいて、順次、更新処理を開始するように指示してもよい。
 本実施形態に係るソフトウェア記憶部17は、図14に示す通り、エッジ側システム20-1乃至20-nについて、エッジ側更新前ソフトウェア172-1乃至172-n、及び、エッジ側更新後ソフトウェア173-1乃至173-nを記憶している。
 図15は、本実施形態に係るエッジ側システム20-1乃至20-n及びクラウド側システム30によって実行されるソフトウェアが更新される途中の、各システムの状態を例示する図である。図15に示す通り、ソフトウェア更新制御装置50は、ソフトウェアを更新する過程において、エッジ側更新後ソフトウェアを使用して試行動作を行う複数の仮想サーバ310-3乃至310-m(mは3以上の任意の整数)を、クラウド側システム30が実行するように制御する。ソフトウェア更新制御装置50は、第1の実施形態に係るソフトウェア更新制御装置10と同様の手順によって、複数のエッジ側システム20-1乃至20-nによって実行されるソフトウェアの更新処理を制御する。
 本実施形態に係るソフトウェア更新制御装置50は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、第1の実施形態について説明した通りである。
 また、本実施形態に係るソフトウェア更新制御装置50は、複数のエッジ側システムについて、ソフトウェアを更新する場合であっても、上述した処理を行うことができる。
 <第6の実施形態>
 図16は、本願発明の第6の実施形態に係るソフトウェア更新制御装置60の構成を概念的に示すブロック図である。
 本実施形態に係るソフトウェア更新制御装置60は、第1の実行制御部61、検証部62、引継ぎ制御部63、第2の実行制御部64、及び、切り替え部65を備えている。
 図16に示す第2の情報処理システム80は、第1の情報処理システム70に含まれる第1の情報処理資源71が更新前ソフトウェア710を実行することによって出力した更新前出力情報を処理する。第1の実行制御部61は、この場合において、更新後ソフトウェア711を、第2の情報処理システム80に含まれる第2の情報処理資源81が実行するように制御する。
 検証部62は、第2の情報処理資源81が更新後ソフトウェア711を実行することによって出力した情報を、第2の情報処理システム80が処理する試行動作を検証する。
 引継ぎ制御部63は、検証部62による当該試行動作に対する検証結果が正常であることを示す場合に、更新前出力情報を出力する状態を、第2の情報処理システム80に含まれる第3の情報処理資源82が第1の情報処理資源71から引き継ぐように制御する。そして、引継ぎ制御部63は、第3の情報処理資源82から出力された更新前出力情報を、第2の情報処理システム80が処理できるように制御する。
 第2の実行制御部64は、引継ぎ制御部63による処理が行われたのち、第1の情報処理資源71が、更新後ソフトウェア711を実行することによって更新後出力情報を出力するように制御する。
 切り替え部65は、第2の情報処理システム80が処理対象とする処理対象情報を、第1の情報処理資源71あるいは第3の情報処理資源82から出力された更新前出力情報から、第1の情報処理資源71あるいは第2の情報処理資源81から出力された更新後出力情報に切り替える。
 本実施形態に係るソフトウェア更新制御装置60は、IoTシステムにおけるエッジサーバなどの限られた情報処理資源しか備えない情報処理装置によって実行されるソフトウェアの更新処理を、当該情報処理装置を停止させることなく、確実に行うことができる。その理由は、ソフトウェア更新制御装置60が、ソフトウェア更新後の全体の動作環境を第2の情報処理システム80の中に構築してその動作を検証したのち、第1の情報処理システム70におけるソフトウェア更新前の動作環境を、第2の情報処理システム80に移動させるとともに、第1の情報処理システム70が更新後のソフトウェアを実行するように制御するからである。
 <ハードウェア構成例>
 上述した各実施形態において図1、図11、図14、及び、図16に示したソフトウェア更新制御装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、図11、図14、及び、図16において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・第1仮想サーバ制御部11、
・検証部12及び62、
・引継ぎ制御部13及び63、
・第2仮想サーバ制御部14、
・切り替え部15及び65、
・エッジハブ制御部16、
・ソフトウェア記憶部17における記憶制御機能
・更新指示部58、
・第1の実行制御部61、
・第2の実行制御部64。
 但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図17を参照して説明する。
 図17は、本願発明の各実施形態に係るソフトウェア更新制御装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図17は、図1、図11、図14、及び、図16に示したソフトウェア更新制御装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
 図17に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・外部装置との通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・入出力インタフェース909。
 即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
 そして、上述した実施形態を例に説明した本願発明は、図17に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1、図11、図14、及び、図16)における上述した構成、或いはフローチャート(図5A及び5B、図6A及び6B、図10A及び10B、及び、図13A及び13B)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
 また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
 以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2016年4月15日に出願された日本出願特願2016-081773を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  ソフトウェア更新制御システム
 2  ソフトウェア更新制御システム
 3  ソフトウェア更新制御システム
 10  ソフトウェア更新制御装置
 11  第1仮想サーバ制御部
 12  検証部
 13  引継ぎ制御部
 14  第2仮想サーバ制御部
 15  切り替え部
 16  エッジハブ制御部
 17  ソフトウェア記憶部
 170  クラウド側更新前ソフトウェア
 171  クラウド側更新後ソフトウェア
 172  エッジ側更新前ソフトウェア
 172-1乃至172-n  エッジ側更新前ソフトウェア
 173  エッジ側更新後ソフトウェア
 173-1乃至173-n  エッジ側更新後ソフトウェア
 20  エッジ側システム
 20A  エッジ側システム
 20-1乃至20-n  エッジ側システム
 21  エッジ側仮想サーバ基盤
 21A  エッジ側仮想サーバ基盤
 21-1乃至21-n  エッジ側仮想サーバ基盤
 210  仮想サーバ
 211  仮想サーバ
 212  低優先度処理
 22  エッジハブ
 22A  エッジハブ
 22-1乃至22-n  エッジハブ
 30  クラウド側システム
 31  クラウド側仮想サーバ基盤
 310-1乃至310-m  仮想サーバ
 32  アプリケーションハブ
 33  メッセージバッファ
 34  アプリケーション
 40  デバイス群
 40-1乃至40-n  デバイス群
 50  ソフトウェア更新制御装置
 58  更新指示部
 580  更新スケジュール情報
 60  ソフトウェア更新制御装置
 61  第1の実行制御部
 62  検証部
 63  引継ぎ制御部
 64  第2の実行制御部
 65  切り替え部
 70  第1の情報処理システム
 71  第1の情報処理資源
 710  更新前ソフトウェア
 711  更新後ソフトウェア
 80  第2の情報処理システム
 81  第2の情報処理資源
 82  第3の情報処理資源
 900  情報処理装置
 901  CPU
 902  ROM
 903  RAM
 904  ハードディスク(記憶装置)
 905  通信インタフェース
 906  バス
 907  記録媒体
 908  リーダライタ
 909  入出力インタフェース

Claims (10)

  1.  第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御する第一の実行制御手段と、
     前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証する検証手段と、
     前記検証手段による前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御する引継ぎ制御手段と、
     前記引継ぎ制御手段による処理が行われたのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御する第二の実行制御手段と、
     前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える切り替え手段と、
     を備えるソフトウェア更新制御装置。
  2.  前記第一の情報処理資源が、前記第一の情報処理システムに含まれるデータ受信部が外部から受信した処理対象データを処理する場合において、前記第一の実行制御手段によって、前記第二の情報処理資源が前記更新後のソフトウェアを実行するときに、前記データ受信部が、前記処理対象データを複製し、複製した前記処理対象データを前記第二の情報処理資源に入力するように制御するデータ受信部制御手段
     をさらに備える請求項1に記載のソフトウェア更新制御装置。
  3.  前記切り替え手段は、前記処理対象情報を切り替えたのち、前記第二の情報処理システムが、前記第三の情報処理資源から出力された前記更新前出力情報を処理するとともに、その処理結果を前記第二の情報処理システムに含まれる記憶部に格納するように制御する、
     請求項1または2に記載のソフトウェア更新制御装置。
  4.  前記検証手段は、前記第一の情報処理資源から出力された前記更新後出力情報を、前記第二の情報処理システムが処理する更新後動作を検証しており、
     前記切り替え手段は、前記検証手段による前記更新後動作に対する検証結果が異常であることを示す場合に、前記処理対象情報を、前記更新後動作により得られた情報から、前記記憶部に格納された情報に切り替えるように制御する、
     請求項3に記載のソフトウェア更新制御装置。
  5.  前記引継ぎ制御手段は、前記第一の情報処理システムに含まれる第四の情報処理資源が、基準より優先度が低い処理を行う場合に、前記第三の情報処理資源が、前記第四の情報処理資源が行う処理を引き継ぐように制御し、
     前記第二の実行制御手段は、前記引継ぎ制御手段による処理が行われたのち、前記第四の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御し
     前記切り替え手段は、前記処理対象情報を、前記第一の情報処理資源から出力された前記更新前出力情報から、前記第四の情報処理資源から出力された前記更新後出力情報に切り替える、
     請求項1乃至4のいずれか一項に記載のソフトウェア更新制御装置。
  6.  前記第一の実行制御手段は、前記更新後のソフトウェアを、第三の情報処理システムに含まれる第五の情報処理資源が実行するように制御し、
     前記検証手段は、前記第五の情報処理資源から出力された前記更新後出力情報を、前記第二の情報処理システムが処理する前記試行動作を検証し、
     前記切り替え手段は、前記処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第五の情報処理資源から出力された前記更新後出力情報に切り替える、
     請求項1乃至5のいずれか一項に記載のソフトウェア更新制御装置。
  7.  複数の前記第一の情報処理システムの個々に対して、前記ソフトウェアを更新する処理が行われるスケジュールを示す情報、あるいは外部から入力された情報に基づいて、特定の前記第一の情報処理システムにおける前記ソフトウェアの更新を指示する指示情報を出力する更新指示手段をさらに備え、
     前記第一の実行制御手段、前記検証手段、前記引継ぎ制御手段、前記第二の実行制御手段、及び、前記切り替え手段は、前記指示情報に基づいて、前記特定の第一の情報処理システムに関する処理を実行する、
     請求項1乃至6のいずれか一項に記載のソフトウェア更新制御装置。
  8.  請求項1乃至7のいずれか一項に記載のソフトウェア更新制御装置と、
     前記第一及び第二の情報処理システムと、
     を有するソフトウェア更新制御システム。
  9.  情報処理装置によって、
      第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御し、
      前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証し、
      前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御し、
      前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できる状態になったのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御し、
      前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える、
     ソフトウェア更新制御方法。
  10.  第一の情報処理システムに含まれる第一の情報処理資源が更新前のソフトウェアを実行することによって出力した更新前出力情報を、第二の情報処理システムが処理する場合において、更新後の前記ソフトウェアを、前記第二の情報処理システムに含まれる第二の情報処理資源が実行するように制御する第一の実行制御処理と、
     前記第二の情報処理資源が前記更新後のソフトウェアを実行することによって出力した情報を、前記第二の情報処理システムが処理する試行動作を検証する検証処理と、
     前記検証処理による前記試行動作に対する検証結果が正常であることを示す場合に、前記更新前出力情報を出力する状態を、前記第二の情報処理システムに含まれる第三の情報処理資源が前記第一の情報処理資源から引き継ぎ、前記第三の情報処理資源から出力された前記更新前出力情報を、前記第二の情報処理システムが処理できるように制御する引継ぎ制御処理と、
     前記引継ぎ制御処理による処理が行われたのち、前記第一の情報処理資源が、前記更新後のソフトウェアを実行することによって更新後出力情報を出力するように制御する第二の実行制御処理と、
     前記第二の情報処理システムが処理対象とする処理対象情報を、前記第一あるいは第三の情報処理資源から出力された前記更新前出力情報から、前記第一あるいは第二の情報処理資源から出力された前記更新後出力情報に切り替える切り替え処理と、
     をコンピュータに実行させるためのソフトウェア更新制御プログラムが格納された記録媒体。
PCT/JP2017/014685 2016-04-15 2017-04-10 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体 WO2017179537A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018512005A JP6784291B2 (ja) 2016-04-15 2017-04-10 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラム
US16/092,511 US11106454B2 (en) 2016-04-15 2017-04-10 Software update control device, software update control method, and recording medium having software update control program stored thereon

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016081773 2016-04-15
JP2016-081773 2016-04-15

Publications (1)

Publication Number Publication Date
WO2017179537A1 true WO2017179537A1 (ja) 2017-10-19

Family

ID=60041525

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/014685 WO2017179537A1 (ja) 2016-04-15 2017-04-10 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体

Country Status (3)

Country Link
US (1) US11106454B2 (ja)
JP (1) JP6784291B2 (ja)
WO (1) WO2017179537A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990372B2 (en) 2018-09-20 2021-04-27 Microsoft Technology Licensing, Llc Updating an edge computing device
JP2021524104A (ja) * 2018-06-29 2021-09-09 新華三技術有限公司New H3C Technologies Co., Ltd. マスター・スタンドバイコンテナシステム切替
JP2022156799A (ja) * 2021-03-31 2022-10-14 ソフトマックス株式会社 情報処理装置、情報処理方法及びそのプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019058684A1 (ja) * 2017-09-25 2020-10-22 ソニー株式会社 検証装置、情報処理方法、およびプログラム
US10817275B2 (en) * 2018-06-28 2020-10-27 EMC IP Holding Company LLC Automated internet of things based software patching
CN110896404B (zh) * 2018-09-12 2021-09-14 华为技术有限公司 数据处理的方法、装置和计算节点
JP7378980B2 (ja) * 2019-06-27 2023-11-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN112583898B (zh) * 2020-11-30 2023-08-15 北京百度网讯科技有限公司 业务流程编排方法、装置、以及可读介质
US11870646B2 (en) * 2021-01-12 2024-01-09 Oracle International Corporation Fabric availability and synchronization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108260A (ja) * 2008-10-30 2010-05-13 Fujitsu Ltd 仮想計算機システム及びその管理方法、プログラム並びに記録媒体
WO2013140524A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 プログラム、管理サーバおよびパッチスケジューリング方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0407150D0 (en) * 2004-03-30 2004-05-05 British Telecomm Distributed computer
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
JP2006268172A (ja) * 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
JP2007304845A (ja) 2006-05-11 2007-11-22 Nec Corp 仮想計算機システムおよびソフトウェア更新方法
US8392902B2 (en) * 2007-10-24 2013-03-05 Siemens Aktiengesellschaft Upgrading software applications offline using a virtual machine
CN101727331B (zh) 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
JP5728812B2 (ja) 2010-02-17 2015-06-03 日本電気株式会社 分散型情報処理システム及び分散ストレージシステム
JP5293752B2 (ja) 2011-01-14 2013-09-18 日本電気株式会社 制御装置、及びファームウェア更新方法とそのプログラム
JP5667506B2 (ja) 2011-04-27 2015-02-12 日本電信電話株式会社 クラスタシステムおよびソフトウェアアップデート方法
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
TW201503646A (zh) * 2013-02-25 2015-01-16 Interdigital Patent Holdings 在無線網路中管理高速存取集中內容賦能服務
WO2014139598A1 (en) * 2013-03-14 2014-09-18 Telefonaktiebolaget L M Ericsson (Publ) Method for authenticating a client program by a remote data processing system
US9261932B2 (en) * 2013-03-15 2016-02-16 Microchip Technology Incorporated Minimizing switchover time in a hot swappable program memory
JP5864510B2 (ja) * 2013-10-18 2016-02-17 富士通株式会社 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
JP2015095784A (ja) * 2013-11-12 2015-05-18 富士通株式会社 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
JP6226709B2 (ja) * 2013-11-15 2017-11-08 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
US9335986B1 (en) * 2013-12-11 2016-05-10 Amazon Technologies, Inc. Hot patching to update program code and/or variables using a separate processor
JP5758022B1 (ja) 2014-04-02 2015-08-05 株式会社野村総合研究所 ソフトウェア更新方法
JP2016001391A (ja) * 2014-06-11 2016-01-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
US10318271B2 (en) * 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
US9946532B2 (en) * 2016-06-15 2018-04-17 Canon Information And Imaging Solutions, Inc. Apparatus, system and method for updating a peripheral connected to image processing device
KR101826498B1 (ko) * 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템
JP2018200510A (ja) * 2017-05-25 2018-12-20 株式会社デンソーテン ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108260A (ja) * 2008-10-30 2010-05-13 Fujitsu Ltd 仮想計算機システム及びその管理方法、プログラム並びに記録媒体
WO2013140524A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 プログラム、管理サーバおよびパッチスケジューリング方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROYUKI TANAKA: "Edge Computing and its Application for New Era of IoT", PROCEEDINGS OF THE 2016 IEICE GENERAL CONFERENCE TSUSHIN 1, 1 March 2016 (2016-03-01), pages SS-18 - SS-19, ISSN: 1349-1369 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021524104A (ja) * 2018-06-29 2021-09-09 新華三技術有限公司New H3C Technologies Co., Ltd. マスター・スタンドバイコンテナシステム切替
JP7116802B2 (ja) 2018-06-29 2022-08-10 新華三技術有限公司 マスター・スタンドバイコンテナシステム切替
US10990372B2 (en) 2018-09-20 2021-04-27 Microsoft Technology Licensing, Llc Updating an edge computing device
JP2022156799A (ja) * 2021-03-31 2022-10-14 ソフトマックス株式会社 情報処理装置、情報処理方法及びそのプログラム

Also Published As

Publication number Publication date
US11106454B2 (en) 2021-08-31
US20190171442A1 (en) 2019-06-06
JP6784291B2 (ja) 2020-11-11
JPWO2017179537A1 (ja) 2019-02-21

Similar Documents

Publication Publication Date Title
WO2017179537A1 (ja) ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
CN107506258B (zh) 用于数据备份的方法和设备
US11663085B2 (en) Application backup and management
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
JP6190969B2 (ja) マルチテナントリソース調停方法
US9483314B2 (en) Systems and methods for fault tolerant batch processing in a virtual environment
US20080256223A1 (en) Scale across in a grid computing environment
US20150169313A1 (en) Integrated system and firmware update method
CN102035662A (zh) 一种虚拟服务器管理系统、方法及装置
US11334372B2 (en) Distributed job manager for stateful microservices
EP3234774A1 (en) Elasticity for highly availabile applications
CN113032085A (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
CN103414712A (zh) 一种分布式虚拟桌面管理系统和方法
US11520673B2 (en) Maintenance operations based on analysis of collected data
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US10540202B1 (en) Transient sharing of available SAN compute capability
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
US11086615B2 (en) Virtual appliance upgrades in high-availability (HA) computing clusters
JP2015099547A (ja) ソフトウェア更新方法、ソフトウェア更新装置、ソフトウェア更新プログラム、及びソフトウェア更新システム
US8935695B1 (en) Systems and methods for managing multipathing configurations for virtual machines
WO2017188036A1 (ja) アクセス制御装置、アクセス制御システム、アクセス制御方法、及び、アクセス制御プログラムが格納された記録媒体
EP3389222A1 (en) A method and a host for managing events in a network that adapts event-driven programming framework
CN103617077A (zh) 智能型云端化移转的方法与系统
US20240028375A1 (en) Control plane lifecycle management with dpu devices
US20240160354A1 (en) Node cache migration

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018512005

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17782350

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17782350

Country of ref document: EP

Kind code of ref document: A1