WO2019155827A1 - システム更新装置およびシステム更新方法 - Google Patents

システム更新装置およびシステム更新方法 Download PDF

Info

Publication number
WO2019155827A1
WO2019155827A1 PCT/JP2019/001011 JP2019001011W WO2019155827A1 WO 2019155827 A1 WO2019155827 A1 WO 2019155827A1 JP 2019001011 W JP2019001011 W JP 2019001011W WO 2019155827 A1 WO2019155827 A1 WO 2019155827A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
state
procedure
target system
rollback
Prior art date
Application number
PCT/JP2019/001011
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 JP2019570631A priority Critical patent/JP7024804B2/ja
Publication of WO2019155827A1 publication Critical patent/WO2019155827A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention relates to a system update device and a system update method.
  • the system administrator develops a procedure for system construction work and a procedure for system update work based on, for example, an appropriate template acquired from the storage unit in which the procedure template is stored. However, the administrator may be required to manually develop the procedure from the beginning depending on the situation.
  • the system construction work and the system update work in which the procedure according to the request is manually developed are referred to as the imperative system construction work and the imperative system update work.
  • the instructional system update work has a problem that the number of steps for developing the procedure becomes enormous because the update work itself is often complicated.
  • the system construction work and system update work in which the procedure according to the request is automatically generated for the imperative system construction work and the imperative system update work are called declarative system construction work and declarative system update work.
  • system components such as parts and relationships between the components are accumulated in the storage unit.
  • the accumulated information is used, and the current system configuration and the target system configuration are each decomposed into components.
  • a work procedure that can update the current system configuration to the target system configuration is generated each time the update operation is executed.
  • declarative system update work has the advantage that manual procedure development is not required. That is, the declarative system update operation is an operation for automatically updating the configuration of the system to the configuration intended for update.
  • the declarative system construction work is a work for automatically constructing a system having a configuration intended for construction.
  • Non-Patent Document 1 As a technique for automatically generating a construction procedure and an update procedure based on the difference between the current system configuration and a target system configuration using the declarative system construction technology and the declarative system update technology, for example, Non-Patent Document 1 There is a procedure generation device described in Non-Patent Document 3.
  • FIG. 12 is an explanatory diagram illustrating an example of a procedure automatic generation process performed by a general procedure generation apparatus.
  • the current system configuration is input to the procedure generation apparatus from the system configuration management unit as configuration information.
  • a target system configuration is input to the procedure generation apparatus from the system administrator as configuration information.
  • the procedure generation apparatus shown in FIG. 12 generates state information indicating the current system configuration state and state information indicating the target system configuration state by compiling each piece of input configuration information.
  • the state information indicates the components of the system described above and the relationship between the components.
  • the procedure generation apparatus shown in FIG. 12 compares the generated state information to obtain a state difference that is a difference between the current system configuration state and the target system configuration state.
  • the procedure generation apparatus searches for a work procedure that can update the current system configuration to the target system configuration using the state difference.
  • each procedure which comprises Workflow is each performed by each system. That is, an administrator who develops a work procedure using the procedure generation apparatus shown in FIG. 12 can automatically obtain a relatively reliable work procedure simply by inputting a target system configuration.
  • the rollback procedure (exception handling procedure), which is the work procedure executed when an exception occurs, is also developed each time the work is executed. Desired.
  • the required rollback procedure is a procedure used to return the system state to the initial state when, for example, the next task to be executed constituting the normal procedure is not executable.
  • the initial state is the state of the system before the work is executed.
  • Exceptions that may occur include, for example, lack of resources, suspension due to user interruption, occurrence of an abnormality in the firmware after being updated, and extension of the scheduled execution time.
  • the exceptional state is a state of the target system other than the state of the target system that may occur during the execution of the normal procedure.
  • telecommunications carriers are also required to report faults to the relevant ceremonies.
  • a safe recovery work plan is required in advance. For example, a recovery work plan that “guarantees that recovery can be performed within 30 minutes at most even if an exception occurs” is required.
  • the procedure generator cannot generate a rollable procedure, the administrator fails to respond to the exception.
  • the procedure generation apparatus takes a long time to execute the calculation process for generating the rollback procedure, there is a possibility that the response to the exception is delayed.
  • the rollback procedure generated based on the safe recovery work plan is prepared in advance for all the points at which exceptions may occur.
  • All the time points are basically all time points during the construction work or all time points during the update work.
  • An ordered set is a set in which the concept of order is defined.
  • the semi-ordered set is an ordered set that allows a case where the order of elements cannot be compared.
  • the total ordered set is an ordered set that does not allow a case in which the order of elements cannot be compared.
  • a procedure represented by a totally ordered set (hereinafter referred to as a totally ordered procedure) is a serial procedure in which tasks are arranged in a line.
  • a procedure represented by a partial order set (hereinafter referred to as a partial order procedure) is a procedure in which two or more tasks are arranged to be executable in random order.
  • FIG. 13 is an explanatory diagram illustrating an example of a partial order procedure.
  • the partial order procedure shown in FIG. 13 is a procedure for constructing two virtual machines using OpenStack® (registered trademark) and starting them as an application server and a database server.
  • OpenStack® registered trademark
  • FIG. 13 represents one task.
  • a black rectangle represents an executed task.
  • a white rectangle represents an unexecuted task.
  • the arrow shown in FIG. 13 extends from the task executed first to the task executed later.
  • the execution order of tasks that can be executed in parallel differs depending on the situation at the time of execution. For example, the execution order of the task “Create server Xml1”, the task “Make directory C”, and the task “Create DB Instance” YY shown in FIG. 13 is not determined.
  • the rollback procedure Since the process of preparing the rollback procedure for all states takes a great deal of man-hours, the rollback procedure is generally prepared only at important points in the construction work and update work. It is difficult for an administrator to simultaneously satisfy the enhancement of the rollback procedure and the reduction of man-hours required for executing the plan.
  • the present invention provides a system update apparatus and a system update method that can prepare a rollback procedure corresponding to a state that may occur during work execution, for a predetermined number of states, to solve the above-described problems.
  • One purpose is to do.
  • the system update device performs an operation for transitioning the state of the update target system that is the update target system from the initial state that is the state before the update to the target state that is the target state of the update.
  • a state generation unit that generates a predetermined number of states of the update target system that may occur during the execution of the update procedure based on the update procedure, and an initial state from the generated state of the update target system
  • a procedure generation unit that generates a rollback procedure, which is a procedure of work for transitioning to a state, for each generated state.
  • a system update method includes an operation for transitioning the state of an update target system that is an update target system from an initial state that is a state before update to a target state that is an update target state.
  • a predetermined number of states of the update target system that may occur during the execution of the update procedure are generated based on the update procedure that is the procedure of the update procedure, and the state of the update target system is transitioned from the generated state to the initial state
  • a rollback procedure which is a procedure for the operation, is generated for each generated state.
  • the state of the update target system which is the system to be updated, is set to the initial state before the update.
  • a predetermined number of states of the update target system that may occur during the execution of the update procedure are generated based on the update procedure, which is a procedure for transitioning from the state to the target state that is the target state of the update.
  • a system update program for generating a rollback procedure which is a procedure of work for transitioning the state of the update target system from the generated state to the initial state, is generated for each generated state.
  • the system update program causes the computer to transition the state of the update target system that is the update target system from the initial state that is the state before the update to the target state that is the target state of the update.
  • a state generation process for generating a predetermined number of states of the update target system that may occur during the execution of the update procedure, and a state of the update target system are generated based on the update procedure that is a procedure for the update It is characterized in that a procedure generation process for generating a rollback procedure, which is a procedure of work for making a transition from a state to an initial state, is generated for each generated state.
  • a rollback procedure corresponding to a state that may occur during work execution can be prepared for a predetermined number of states.
  • FIG. 1 is a block diagram showing a configuration example of a first embodiment of a system update apparatus according to the present invention.
  • the system update device 100 of the present embodiment includes an exhaustive rollback procedure generator 110, an exhaustive state generator 120, a procedure execution unit 130, a procedure storage unit 140, and a current state storage. Unit 150.
  • the unidirectional arrow described in the block diagram indicates the direction in which data (information) flows. However, the possibility of data flowing in both directions at the location where each arrow is described is not excluded.
  • the comprehensive rollback procedure generation unit 110 is communicably connected to a procedure generation system 200 that is an external system of the system update apparatus 100.
  • the procedure generation system 200 has a function of generating a task procedure for transitioning the state of the object from the old state to the new state based on information indicating the old state of the object and information indicating the new state.
  • the procedure generation system 200 may be included in the system update device 100.
  • the procedure execution unit 130 is connected to be able to communicate with an update target system 300 that is a system external to the system update apparatus 100.
  • the system update apparatus 100 shown in FIG. 1 generates an update work procedure used for updating the update target system 300 together with the rollback procedure. Further, the system update device 100 updates the update target system 300 according to the generated update work procedure.
  • the system update device 100 returns the state of the update target system 300 to the initial state that is the state before the update operation is executed according to the generated rollback procedure.
  • the comprehensive rollback procedure generation unit 110 has a function of controlling each component in order to generate an update work procedure and a rollback procedure.
  • the comprehensive rollback procedure generation unit 110 shows information indicating an initial state of the update target system 300 and a target state that is a state after the update work of the update target system 300 is executed. Information is input. Note that the input information indicating the initial state and the information indicating the target state are information corresponding to the state information illustrated in FIG.
  • information indicating the current system configuration and information indicating the target system configuration shown in FIG. 12 may be input to the comprehensive rollback procedure generation unit 110.
  • the comprehensive rollback procedure generation unit 110 When information indicating the system configuration is input, the comprehensive rollback procedure generation unit 110 generates information indicating a state based on the input information.
  • the comprehensive rollback procedure generation unit 110 inputs the input information indicating the initial state and the information indicating the target state to the procedure generation system 200.
  • the procedure generation system 200 generates an update work procedure used for updating the update target system 300 based on the input information.
  • the procedure generation system 200 returns the generated update work procedure to the comprehensive rollback procedure generation unit 110.
  • the exhaustive rollback procedure generation unit 110 inputs the returned update work procedure to the exhaustive state generation unit 120.
  • the comprehensive state generation unit 120 has a function of generating a predetermined number of system states that may occur during the execution of the update operation. In the present embodiment, a case will be described as an example where the exhaustive state generation unit 120 generates all the system states that may occur during execution of the update operation.
  • the comprehensive state generation unit 120 returns the generated set of states to the comprehensive rollback procedure generation unit 110.
  • the comprehensive rollback procedure generation unit 110 inputs information indicating the initial state and information indicating one state of the set of returned states to the procedure generation system 200.
  • the procedure generation system 200 generates a task procedure for transitioning the state of the update target system 300 from the input one state to the initial state as a rollback procedure. As described above, the procedure generation system 200 generates a rollback procedure for each state that may occur during the execution of the update work. The procedure generation system 200 returns each generated rollback procedure to the comprehensive rollback procedure generator 110.
  • the comprehensive rollback procedure generation unit 110 stores a set of a returned rollback procedure and a state at the time when the rollback procedure is executed (the one input state described above). Next, the comprehensive rollback procedure generation unit 110 inputs all sets of the generated rollback procedure and state to the procedure storage unit 140.
  • the procedure storage unit 140 has a function of storing a set of an input state and a rollback procedure.
  • the comprehensive rollback procedure generation unit 110 inputs the generated update work procedure to the procedure execution unit 130 as a normal procedure.
  • the procedure execution unit 130 has a function of updating the update target system 300 by executing the update work procedure.
  • the comprehensive rollback procedure generation unit 110 may calculate a scheduled rollback time that is a scheduled execution time of the rollback procedure. Specifically, the comprehensive rollback procedure generation unit 110 calculates the scheduled execution time of each task constituting the rollback procedure.
  • the comprehensive rollback procedure generation unit 110 calculates the scheduled rollback time by calculating the total execution time of each task for each generated rollback procedure.
  • the comprehensive rollback procedure generation unit 110 may include the calculated estimated rollback time in the set of the generated rollback procedure and state. Further, the comprehensive rollback procedure generating unit 110 may present the longest time among the scheduled rollback times to the administrator as the longest scheduled rollback time.
  • the procedure execution unit 130 When executing the update work procedure, stores information indicating the current state of the update target system 300 in the current state storage unit 150 every time a task constituting the update work procedure is executed.
  • the current state storage unit 150 has a function of storing the current state of the update target system 300.
  • the current state is the latest state of the update target system 300. That is, the current state stored in the current state storage unit 150 is updated each time information is stored from the procedure execution unit 130.
  • the update target system 300 notifies the procedure execution unit 130 that the exception has occurred.
  • the procedure execution unit 130 that has been notified that an exception has occurred checks the current state stored in the current state storage unit 150.
  • the procedure execution unit 130 acquires the rollback procedure included in the same set as the confirmed current state from the procedure storage unit 140.
  • the procedure execution unit 130 returns the state of the update target system 300 to the initial state by executing the acquired rollback procedure.
  • FIG. 2 is a flowchart illustrating an operation of state generation processing by the comprehensive state generation unit 120 according to the first embodiment.
  • FIG. 3 is an explanatory diagram showing another example of the partial order procedure.
  • the task i is defined in the form of “transition the state of the system component E i to the state S x ”.
  • the exhaustive state generation unit 120 generates a search tree while performing a depth-first search of the tree of the partial order procedure. Further, the exhaustive state generation unit 120 sequentially records the states that appear during the depth-first search in the state table (step S001).
  • FIG. 4 is an explanatory diagram conceptually showing an example of the depth-first search process in the partial order procedure.
  • the broken-line arrows shown in FIG. 4 represent the depth-first search path executed by the comprehensive state generation unit 120.
  • the comprehensive state generator 120 starting from the node “1” proceeds in the order of the node “1” ⁇ the node “2” ⁇ the node “3”, and reaches the point A.
  • Task 5 corresponding to node “5” can be executed only after task 4 corresponding to node “4” is executed. That is, since the dependency of the node “5” on other nodes is not eliminated, the comprehensive state generation unit 120 returns from the point A to the top.
  • FIG. 5 is an explanatory diagram illustrating an example of a search tree generated by the comprehensive state generation unit 120.
  • the search tree is a tree indicating a search history. Circles shown in FIG. 5 represent search nodes that are searched nodes. The numbers written in the circles correspond to the numbers shown in FIGS.
  • the search node “1”, the node “2”, and the node “3” have been searched at the stage of proceeding to the point A, as shown in FIG. 5, the search node “1” ⁇ the search node “2” ⁇ the search node “3”
  • the search tree is configured in the order of “
  • the exhaustive state generation unit 120 adds a branch if there is another executable node in each node of the search tree (step S001).
  • a broken-line circle indicated by a broken-line arrow extending from the search node “2” illustrated in FIG. 5 represents another node that can be searched but is not selected.
  • the node “6” can be searched from the node “1”, but since the node is not searched, the branch of the node “6” is attached to the search node “2”. For the same reason, the branch of the node “6” is also attached to the search node “3”.
  • the double circle shown in FIG. 5 represents the end when the exhaustive state generation unit 120 cannot search deeper than the previous node.
  • a double circle is written after the search node “3”.
  • the comprehensive state generation unit 120 generates a state table along with the execution of the depth-first search process.
  • FIG. 6 is an explanatory diagram illustrating an example of a state table generated by the comprehensive state generation unit 120.
  • “F” and “T” shown in FIG. 6 are values that “ x ” of “S x ” can take.
  • Case for transitioning is assumed state S T
  • the status of each task i is component E i from the state S F.
  • the state of component E i may be a transition to a state other than state S T.
  • Each row of the state table shown in FIG. 6 corresponds to a state that may occur during the execution of the update work.
  • all the lines described as “F” correspond to the state of the update target system 300 when no task has been executed yet.
  • the line in which “T” is written only for E 1 corresponds to the state of the update target system 300 when only task 1 is executed.
  • the exhaustive state generation unit 120 calculates a combination (each row shown in FIG. 6) in which an arbitrary number of executed tasks are selected from the tasks constituting the partial order procedure. Each calculated combination corresponds to the state of the update target system 300 that may occur during the execution of the partial order procedure.
  • the comprehensive state generation unit 120 sequentially adds rows corresponding to the states that appear during the depth-first search to the state table. Each rollback procedure generated in the present embodiment is associated with each row.
  • the comprehensive state generation unit 120 proceeds in the order of node “3” ⁇ node “2” ⁇ node “4” ⁇ node “5” and reaches point B.
  • Task 8 corresponding to node “8” can only be executed after task 7 corresponding to node “7” is executed. That is, since the dependency of the node “8” on other nodes is not eliminated, the comprehensive state generation unit 120 returns from the point B to the top.
  • the search tree is constructed in the order of For the same reason as described above, the branch of the node “6” is also attached to the search node “4”.
  • the exhaustive state generation unit 120 is configured such that node “5” ⁇ node “4” ⁇ node “2” ⁇ node “1” ⁇ node “6” ⁇ node “7” ⁇ node “8” ⁇ node “9”. Proceed to reach point C. When there is no other node to be searched when reaching point C, the exhaustive state generating unit 120 ends the depth-first search process.
  • the search node “5” ⁇ the search node “6”
  • the search tree is configured in the order of search node “7” ⁇ search node “8” ⁇ search node “9” ⁇ double circle.
  • the comprehensive state generation unit 120 checks whether the depth-first search has stalled or has reached the state already described in the state table (step S002). “To reach the state already in the state table” means that a depth-first search has not been completed, but a new state no longer appears. If the depth-first search has not stalled and has not reached the state already shown in the state table (No in step S002), the exhaustive state generation unit 120 executes the process of step S001 again.
  • step S002 When the depth-first search is stuck or the state table has already been reached (Yes in step S002), the exhaustive state generation unit 120 returns to the branch closest to the top in the search tree among the unsearched branches. , Resume searching for the partial order procedure. When the search is resumed, the comprehensive state generation unit 120 also returns the search status (step S003).
  • FIG. 7 is an explanatory diagram conceptually showing an example of search processing in the search tree.
  • a thick broken line arrow shown in FIG. 7 represents a search path executed by the comprehensive state generation unit 120.
  • the exhaustive state generation unit 120 that has reached the point C and has completed the first depth-first search searches the search tree from above and finds an unselected node. Next, the exhaustive state generation unit 120 resumes the search for the partial order procedure starting from the unselected node that is first discovered. When restarting the search, the comprehensive state generation unit 120 also returns the search status.
  • the exhaustive state generation unit 120 performs the node “1”, the node “2”, and the node “3”. , And after returning the search status to the status where the node “4” is searched, the partial order procedure is searched from the node “6”. Even in the resumed search, the comprehensive state generation unit 120 sequentially adds rows corresponding to the states that appear during the search to the state table.
  • step S003 the exhaustive state generation unit 120 checks whether or not the search has stalled and all unsearched branches have disappeared (step S004). If the search is not stuck or there is an unsearched branch (No in step S004), the exhaustive state generation unit 120 executes the process of step S003 again.
  • step S004 When the search is stalled and all unsearched branches disappear (Yes in step S004), the comprehensive state generation unit 120 ends the state generation process.
  • the condition of Yes in step S004 is satisfied, it is a case where the search for the partial order procedure from the three unselected nodes has been executed until it gets stuck.
  • the search for the partial order procedure from the unselected nodes is also executed, so that the state of the system that may occur during the execution of the update operation according to the partial order procedure is comprehensively generated.
  • FIG. 8 is a flowchart illustrating an operation of a procedure generation process performed by the system update device 100 according to the first embodiment.
  • step S101 information indicating the initial state of the update target system 300 and information indicating the target state of the update target system 300 are input to the comprehensive rollback procedure generation unit 110 (step S101).
  • the comprehensive rollback procedure generation unit 110 inputs the input information indicating the initial state and the information indicating the target state to the procedure generation system 200.
  • the procedure generation system 200 generates an update work procedure based on the input information (step S102).
  • the procedure generation system 200 returns the generated update work procedure to the comprehensive rollback procedure generation unit 110.
  • the comprehensive rollback procedure generation unit 110 inputs the returned update work procedure to the exhaustive state generation unit 120.
  • the exhaustive state generation unit 120 executes the state generation process shown in FIG. 2 using the input update work procedure (step S103).
  • the comprehensive state generation unit 120 returns the set of states generated by executing the state generation process to the comprehensive rollback procedure generation unit 110.
  • the comprehensive rollback procedure generation unit 110 inputs information indicating the initial state and information indicating one state of the set of returned states to the procedure generation system 200.
  • the procedure generation system 200 generates a rollback procedure based on the input information.
  • the exhaustive rollback procedure generation unit 110 and the procedure generation system 200 repeatedly execute the above-described processing for the number of states included in the generated state set. In other words, the procedure generation system 200 generates a rollback procedure for each state (step S104).
  • the procedure generation system 200 returns each generated rollback procedure to the comprehensive rollback procedure generator 110.
  • the comprehensive rollback procedure generation unit 110 inputs all sets of generated rollback procedures and states to the procedure storage unit 140.
  • the procedure storage unit 140 stores all sets of the generated rollback procedure and state (step S105).
  • the comprehensive rollback procedure generation unit 110 inputs the generated update work procedure as a normal procedure to the procedure execution unit 130 (step S106). After inputting the update work procedure, the system update device 100 ends the procedure generation process.
  • FIG. 9 is a flowchart illustrating an operation of a procedure execution process performed by the system update device 100 according to the first embodiment.
  • the procedure execution unit 130 executes tasks that constitute the input update work procedure. Further, every time the task is executed, the procedure execution unit 130 stores information indicating the current state of the update target system 300 in the current state storage unit 150 (step S201).
  • step S201 is not limited to one. Further, the number of tasks executed in step S201 may be changed for each step.
  • the procedure execution unit 130 After executing the task, the procedure execution unit 130 confirms whether or not the update target system 300 has been notified that an exception has occurred (step S202). When it is not notified that an exception has occurred (No in step S202), the procedure execution unit 130 performs the process of step S205.
  • the procedure execution unit 130 checks the current state stored in the current state storage unit 150. Next, the procedure execution unit 130 acquires the rollback procedure included in the same set as the confirmed current state from the procedure storage unit 140 (step S203).
  • the procedure execution unit 130 executes the acquired rollback procedure (step S204).
  • the state of the update target system 300 returns to the initial state.
  • the system update device 100 ends the procedure execution process.
  • step S205 the procedure execution unit 130 checks whether there is a task that has not yet been executed among the tasks constituting the input update work procedure. If there is a task that has not yet been executed (Yes in step S205), the procedure execution unit 130 performs the process of step S201 again.
  • the system update apparatus 100 can prepare a rollback procedure corresponding to a state that may occur during work execution for a predetermined number of states.
  • the reason is that the comprehensive state generation unit 120 generates a predetermined number of states of the update target system 300 that may occur during the execution of the update work procedure.
  • the comprehensive rollback procedure generation unit 110 generates a rollback procedure in which the state of the update target system 300 can transition from the generated state to the initial state.
  • the system update device 100 of the present embodiment can comprehensively generate a rollback procedure. Therefore, when the system update apparatus 100 according to the present embodiment is used, even if the system update work is executed according to the partial order procedure, the rollback procedure can be performed from any point during execution of the work in which the exception has occurred. Is executed.
  • the update work procedure of the present embodiment includes a construction work procedure.
  • the system update device 100 When the system update device 100 generates a construction work procedure, information that does not include any content is input to the comprehensive rollback procedure generation unit 110 as information indicating an initial state. Further, information indicating the state after the construction work is executed is input as information indicating the target state.
  • FIG. 10 is an explanatory diagram illustrating a hardware configuration example of a system update apparatus to which each embodiment of the present invention can be applied.
  • the system update apparatus 100 shown in FIG. 10 includes a CPU (Central Processing Unit) 101, a main storage unit 102, a communication unit 103, and an auxiliary storage unit 104. Moreover, you may provide the input part 105 for a user's operation, and the output part 106 for showing a process result or progress of a processing content to a user.
  • a CPU Central Processing Unit
  • the system update device 100 is realized by software by the CPU 101 shown in FIG. 10 executing a program that provides the functions of each component shown in FIG.
  • the CPU 101 loads the program stored in the auxiliary storage unit 104 to the main storage unit 102 and executes it, thereby controlling the operation of the system update device 100, whereby each function is realized by software.
  • the main storage unit 102 is used as a data work area or a temporary data save area.
  • the main storage unit 102 is, for example, a RAM (Random Access Memory).
  • the communication unit 103 has a function of inputting and outputting data to and from peripheral devices via a wired network or a wireless network (information communication network).
  • the auxiliary storage unit 104 is a tangible storage medium that is not temporary.
  • the non-temporary tangible storage medium include a magnetic disk, a magneto-optical disk, a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), and a semiconductor memory.
  • the input unit 105 has a function of inputting data and processing instructions.
  • the input unit 105 is an input device such as a keyboard or a mouse.
  • the output unit 106 has a function of outputting data.
  • the output unit 106 is a display device such as a liquid crystal display device or a printing device such as a printer.
  • each component is connected to a system bus 107.
  • the auxiliary storage unit 104 stores, for example, programs for realizing the exhaustive rollback procedure generating unit 110, the exhaustive state generating unit 120, and the procedure executing unit 130 shown in FIG.
  • main storage unit 102 is used as a storage area of the procedure storage unit 140 and a storage area of the current state storage unit 150, for example.
  • the comprehensive rollback procedure generation unit 110, the comprehensive state generation unit 120, and the procedure execution unit 130 may execute communication processing via the communication unit 103.
  • system update device 100 may be realized by hardware.
  • the system update apparatus 100 may be mounted with a circuit including hardware components such as an LSI (Large Scale Integration) that realizes the functions shown in FIG.
  • LSI Large Scale Integration
  • each component may be realized by a general-purpose circuit (circuitry IV), a dedicated circuit, a processor, or a combination thereof. These may be constituted by a single chip (for example, the above-described LSI) or may be constituted by a plurality of chips connected via a bus. Part or all of each component may be realized by a combination of the above-described circuit and the like and a program.
  • the plurality of information processing devices and circuits may be centrally arranged or distributedly arranged.
  • the information processing apparatus, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client and server system and a cloud computing system.
  • FIG. 11 is a block diagram showing an outline of a system update apparatus according to the present invention.
  • the system update device 10 according to the present invention performs a task (for example, a task) for transitioning the state of an update target system that is an update target system from an initial state that is a state before update to a target state that is an update target state.
  • a task for example, a task
  • the state generation unit 11 (for example, the comprehensive state generation unit 120) that generates a predetermined number of states of the update target system that may occur during the execution of the update procedure based on the update procedure that is a procedure of A procedure generation unit 12 (for example, an exhaustive rollback procedure generation unit 110 that generates a rollback procedure for each generated state, which is a procedure for transitioning the state of the update target system from the generated state to the initial state. ).
  • a procedure generation unit 12 for example, an exhaustive rollback procedure generation unit 110 that generates a rollback procedure for each generated state, which is a procedure for transitioning the state of the update target system from the generated state to the initial state.
  • the system update device can prepare for a predetermined number of states a rollback procedure corresponding to a state that may occur during work execution.
  • the predetermined number may be the number of all states of the update target system that may occur during the execution of the update procedure.
  • the system update device can prepare a rollback procedure corresponding to a state that may occur during work execution for all states.
  • the system update device 10 includes a state storage unit (for example, a current state storage unit 150) that stores the latest state of the update target system during the execution of the update procedure, and an update target in which an exception has occurred during the execution of the update procedure.
  • a state storage unit for example, a current state storage unit 150
  • You may provide the procedure execution part for example, procedure execution part 130
  • the system update device can quickly execute a rollback procedure when an exception occurs.
  • the system update device 10 includes a procedure storage unit (for example, the procedure storage unit 140) that stores the generated rollback procedure in association with the state of the update target system when the rollback procedure is executed. Also good.
  • a procedure storage unit for example, the procedure storage unit 140
  • the system update device can acquire the rollback procedure using the state of the update target system when an exception occurs as a key.
  • the procedure generation unit 12 may calculate a scheduled time required for executing the rollback procedure, and the procedure storage unit may store the calculated scheduled time and the rollback procedure in association with each other.
  • the system update device can present the scheduled time required for executing the rollback procedure to the user.
  • the state generation unit 11 calculates a combination in which an arbitrary number of completed operations are selected from among the operations constituting the update procedure, and indicates the state of the update target system according to each calculated combination. You may each generate
  • the system update device can cover the state of the update target system that may occur during the execution of the update procedure.
  • the update procedure may be a procedure in which two or more operations are arranged so that they can be executed in any order.
  • the system update device can generate a rollback procedure for all states that the update target system may reach during the execution of the partial order procedure.
  • the procedure generation unit 12 may generate an update procedure based on the initial state and the target state.
  • the system update device can generate an update procedure.
  • a state storage unit that stores the latest state of the update target system during execution of the update procedure, and a state storage unit that stores an exception during the execution of the update procedure.
  • the system update device according to supplementary note 1 or supplementary note 2, further comprising: a procedure execution unit that executes a rollback procedure corresponding to the latest stored state.
  • Supplementary Note 4 Any one of Supplementary Notes 1 to 3 including a procedure storage unit that associates and stores the generated rollback procedure and the state of the update target system when the rollback procedure is executed.
  • generation part each calculates the combination from which the arbitrary number of completed work was selected from each work which comprises the said update procedure,
  • the said update object according to each calculated combination
  • the system update device according to any one of appendix 1 to appendix 5, which generates a system state as the state of the update target system that may occur during execution of the update procedure.
  • Appendix 7 The system update device according to any one of appendices 1 to 6, wherein the update procedure is a procedure in which two or more operations are arranged in a random order.
  • the update procedure which is a procedure of the operation
  • a state generation process for generating a predetermined number of states of the update target system that may occur during execution of the update procedure based on the state, and the state of the update target system from the generated state to the initial state
  • the present invention is preferably applied to the field of automatic generation of exception handling procedures (rollback procedures).
  • Procedure generation unit 101 CPU 102 main storage unit 103 communication unit 104 auxiliary storage unit 105 input unit 106 output unit 107 system bus 110 exhaustive rollback procedure generation unit 120 exhaustive state generation unit 130 procedure execution unit 140 procedure storage unit 150 current state storage unit 200 procedure generation System 300 System to be updated

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

システム更新装置10は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部11と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部12とを備える。

Description

システム更新装置およびシステム更新方法
 本発明は、システム更新装置およびシステム更新方法に関する。
 システムの管理者は、システム構築作業用の手順やシステム更新作業用の手順を、例えば、手順の雛形が蓄積されている記憶部から取得された適切な雛形を基に開発する。しかし、管理者には、状況に応じて手順を最初から手動で開発することが求められる場合がある。
 例えば、システム更新作業が実行される際、更新前の現在のシステム構成と更新後の目的のシステム構成に対して適切な手順の雛形が記憶部に蓄積されていない場合、管理者には、適切な手順を最初から手動で開発することが求められる。
 上記のように、要求に応じた手順が手動で開発されるシステム構築作業およびシステム更新作業を、命令的システム構築作業および命令的システム更新作業と呼ぶ。特に、命令的システム更新作業には、更新作業自体が複雑であることが多いため、手順の開発工数が膨大になるという問題がある。
 命令的システム構築作業および命令的システム更新作業に対して、要求に応じた手順が自動で生成されるシステム構築作業およびシステム更新作業を、宣言的システム構築作業および宣言的システム更新作業と呼ぶ。宣言的システム構築作業および宣言的システム更新作業では、部品等のシステムの構成要素、および構成要素同士の関係性が記憶部に蓄積されている。
 例えば、宣言的システム更新作業では、蓄積されている情報が用いられて、現在のシステム構成と目的のシステム構成とがそれぞれ構成要素に分解される。次いで、分解された各構成の構成要素同士が比較されることによって、現在のシステム構成を目的のシステム構成に更新可能な作業手順が、更新作業が実行される度に生成される。
 上記のように、宣言的システム更新作業には、手動での手順の開発が不要になるという利点がある。すなわち、宣言的システム更新作業は、システムの構成を更新目的の構成に自動で更新する作業である。また、宣言的システム構築作業は、構築目的の構成のシステムを自動で構築する作業である。
 上記の宣言的システム構築技術および宣言的システム更新技術を用いて、現在のシステム構成と目的のシステム構成との差分を基に構築手順や更新手順を自動で生成する技術として、例えば非特許文献1~非特許文献3に記載されている手順生成装置がある。図12は、一般的な手順生成装置による手順の自動生成処理の例を示す説明図である。
 図12に示すように、手順生成装置には、構成情報としてシステムの構成管理部から現在のシステム構成が入力される。また、手順生成装置には、構成情報としてシステムの管理者から目的のシステム構成が入力される。
 図12に示す手順生成装置は、入力された各構成情報をコンパイルすることによって、現在のシステム構成の状態を示す状態情報と、目的のシステム構成の状態を示す状態情報とをそれぞれ生成する。なお、状態情報は、上述したシステムの構成要素、および構成要素同士の関係性を示す。
 次いで、図12に示す手順生成装置は、生成された各状態情報を比較することによって、現在のシステム構成の状態と目的のシステム構成の状態との差分である状態差分をとる。次いで、手順生成装置は、状態差分を用いて現在のシステム構成を目的のシステム構成に更新可能な作業手順を探索する。
 手順探索が行われた結果、図12に示すようなWorkflowが生成される。また、図12に示すように、Workflowを構成する各手順は、各システムでそれぞれ実行される。すなわち、図12に示す手順生成装置を用いて作業手順を開発する管理者は、目的のシステム構成を入力するだけで比較的信頼性の高い作業手順を自動的に取得できる。
T. Kuroda and A. Gokhale, "Model-Based IT Change Management for Large System Definitions with State-Related Dependencies," 2014 IEEE 18th International Enterprise Distributed Object Computing Conference, Ulm, 2014, pages 170-179. T. Kuroda, M. Nakanoya, A. Kitano and A. Gokhale, "The configuration-oriented planning for fully declarative IT system provisioning automation," NOMS 2016 - 2016 IEEE/IFIP Network Operations and Management Symposium, Istanbul, 2016, pages 808-811. M. Nakanoya, T. Kuroda and A. Kitano, "Automated Change Planning for Differential Update IT Systems with State Constraint," 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW), Vienna, 2016, pages 1-9.
 一般的に、構築作業の手順および更新作業の手順が開発される際、例外が発生した時に実行される作業の手順であるロールバック手順(例外対応手順)の開発も作業が実行される度に求められる。
 求められるロールバック手順は、例えば通常手順を構成する次の実行対象のタスクが実行不可能である場合に、システムの状態を初期状態に戻すために用いられる手順である。なお、初期状態は、作業が実行される前のシステムの状態である。
 発生する例外として、例えばリソースの不足、ユーザ割り込みによる停止、更新された後のファームウェアにおける異常の発生、実行予定時間の延長が考えられる。また、例外状態は、通常手順の実行中に発生する可能性がある対象システムの状態以外の対象システムの状態である。
 例えば、電気通信事業者(キャリア)が設けている通信ネットワークが提供する通信サービスの停止が発生した場合、事業者にとって損害額が大きい。また、通信サービスの停止が発生した場合、電気通信事業者には、関係省庁へ障害を報告することも求められる。
 上記のように、通信ネットワークの運用では、例外が発生した場合に速やかに通信サービスを復旧させることが要求されるため、安全な復旧作業の計画が予め求められる。例えば、「例外が発生しても高々30分以内に復旧できることを保証する」という復旧作業の計画が求められる。
 図12に示す手順生成装置では、ロールバック手順を生成することが想定されていない。よって、例外が発生した時に手順生成装置が単純に利用される場合、システムの状態を例外が発生した時の状態から初期状態へ遷移させるためのロールバック手順が、例外が発生する度に生成される。次いで、生成されたロールバック手順が実行される。
 しかし、手順生成装置がロールバック可能な手順を生成できない場合、管理者は、例外への対応に失敗してしまう。また、手順生成装置がロールバック手順を生成するための計算処理の実行に長い時間を掛けた場合、例外への対応が遅れてしまう可能性もある。
 従って、安全な復旧作業の計画を基に生成されるロールバック手順は、例外が発生する可能性がある全ての時点に対して事前に用意されることが好ましい。なお、全ての時点は、基本的に構築作業中の全時点、または更新作業中の全時点である。
 また、手順がタスクの半順序集合で表される場合、所定のタスクの実行中に発生する状態は1つに定まらない。順序集合は、順序の概念が定義された集合である。順序集合のうち、半順序集合は、要素間の順序の比較が不可能なケースが許容されている順序集合である。また、順序集合のうち、全順序集合は、要素間の順序の比較が不可能なケースが許容されていない順序集合である。
 すなわち、全順序集合で表される手順(以下、全順序手順という。)は、タスクが一列に並べられた直列な手順である。また、半順序集合で表される手順(以下、半順序手順という。)は、2つ以上のタスクが順不同に実行可能に並べられた手順である。図13は、半順序手順の例を示す説明図である。
 図13に示す半順序手順は、OpenStack (登録商標)を用いて2つの仮想マシンを構築し、それぞれをアプリケーションサーバとデータベースサーバとして起動させるための手順である。
 図13に示す1つの矩形は、1つのタスクを表す。黒色の矩形は、実行済みのタスクを表す。また、白色の矩形は、未実行のタスクを表す。また、図13に示す矢印は、先に実行されるタスクから後に実行されるタスクに向けて伸びている。
 図13に示す半順序手順において、並列に実行可能なタスクの実行順序は、実行時の状況に応じて異なる。例えば、図13に示すタスク「Create serverXml1 」、タスク「Make directory C」、タスク「Create DBInstance YY」の実行順序は決まっていない。
 すなわち、図13に示すような半順序手順に従ってシステムの構築やシステムの更新が実行される場合、実行中に発生する可能性があるシステムの状態は、全順序手順が用いられる場合に比べて多い。しかし、半順序手順が用いられる場合であっても、発生する可能性がある全ての状態に対して、ロールバック手順が事前に用意されることが好ましい。
 全ての状態に対してロールバック手順を用意する処理には膨大な工数が掛かるため、ロールバック手順は、一般的に構築作業や更新作業における重要な時点に限って用意される。管理者にとって、ロールバック手順の網羅性を高めることと、計画の実行に掛かる工数を下げることを同時に満たすことは困難である。
 しかし、発生する可能性がある全ての状態に対応できなければ、管理者は、ロールバック手順が用意されていない状態において重大な影響を与える例外が発生した時に、システムを復旧できない可能性がある。全ての状態も含まれる所定の数の状態に対してロールバック手順を用意することは、作業手順計画における一般的な課題である。
[発明の目的]
 そこで、本発明は、上述した課題を解決する、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できるシステム更新装置およびシステム更新方法を提供することを1つの目的とする。
 本発明の一実施形態において、システム更新装置は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備えることを特徴とする。
 本発明の一実施形態において、システム更新方法は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成し、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成することを特徴とする。
 本発明の一実施形態において、システム更新プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータで実行されるときに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成し、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成するシステム更新プログラムを記憶する。
 本発明の一実施形態において、システム更新プログラムは、コンピュータに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成処理、および更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理を実行させることを特徴とする。
 本発明によれば、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。
本発明によるシステム更新装置の第1の実施形態の構成例を示すブロック図である。 第1の実施形態の網羅的状態生成部120による状態生成処理の動作を示すフローチャートである。 半順序手順の他の例を示す説明図である。 半順序手順における深さ優先探索処理の例を概念的に示す説明図である。 網羅的状態生成部120が生成する探索ツリーの例を示す説明図である。 網羅的状態生成部120が生成する状態表の例を示す説明図である。 探索ツリーにおける探索処理の例を概念的に示す説明図である。 第1の実施形態のシステム更新装置100による手順生成処理の動作を示すフローチャートである。 第1の実施形態のシステム更新装置100による手順実行処理の動作を示すフローチャートである。 本発明の各実施形態を適用可能なシステム更新装置のハードウェア構成例を示す説明図である。 本発明によるシステム更新装置の概要を示すブロック図である。 一般的な手順生成装置による手順の自動生成処理の例を示す説明図である。 半順序手順の例を示す説明図である。
実施形態1.
[構成の説明]
 以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明によるシステム更新装置の第1の実施形態の構成例を示すブロック図である。
 図1に示すように、本実施形態のシステム更新装置100は、網羅的ロールバック手順生成部110と、網羅的状態生成部120と、手順実行部130と、手順記憶部140と、現在状態記憶部150とを備える。
 なお、ブロック図に記載されている単方向の矢印は、データ(情報)が流れる方向を示す。しかし、各矢印が記載されている箇所において双方向にデータが流れる可能性は排除されていない。
 また、図1に示すように、網羅的ロールバック手順生成部110は、システム更新装置100の外部のシステムである手順生成システム200と通信可能に接続されている。
 手順生成システム200は、対象物の旧状態を示す情報と新状態を示す情報とを基に、対象物の状態を旧状態から新状態へ遷移させるためのタスクの手順を生成する機能を有する。なお、手順生成システム200は、システム更新装置100に含まれていてもよい。
 また、図1に示すように、手順実行部130は、システム更新装置100の外部のシステムである更新対象システム300と通信可能に接続されている。
 図1に示すシステム更新装置100は、更新対象システム300の更新に使用される更新作業手順を、ロールバック手順と併せて生成する。また、システム更新装置100は、生成された更新作業手順に従って更新対象システム300を更新する。
 また、システム更新装置100は、更新作業中に例外が発生した時、生成されたロールバック手順に従って更新対象システム300の状態を、更新作業が実行される前の状態である初期状態に戻す。
 網羅的ロールバック手順生成部110は、更新作業手順とロールバック手順とを生成するために各構成要素を制御する機能を有する。
 図1に示すように、網羅的ロールバック手順生成部110には、更新対象システム300の初期状態を示す情報と、更新対象システム300の更新作業が実行された後の状態である目的状態を示す情報とが入力される。なお、入力される初期状態を示す情報および目的状態を示す情報は、図12に示す状態情報に相当する情報である。
 また、網羅的ロールバック手順生成部110には、図12に示す現在のシステム構成を示す情報および目的のシステム構成を示す情報が入力されてもよい。システム構成を示す情報が入力される場合、網羅的ロールバック手順生成部110は、入力された情報を基に状態を示す情報を生成する。
 次いで、網羅的ロールバック手順生成部110は、入力された初期状態を示す情報および目的状態を示す情報を、手順生成システム200に入力する。手順生成システム200は、入力された情報を基に、更新対象システム300の更新に使用される更新作業手順を生成する。手順生成システム200は、生成された更新作業手順を網羅的ロールバック手順生成部110に返却する。
 次いで、網羅的ロールバック手順生成部110は、返却された更新作業手順を網羅的状態生成部120に入力する。網羅的状態生成部120は、更新作業の実行中に発生する可能性があるシステムの状態を所定の数だけ生成する機能を有する。本実施形態では、網羅的状態生成部120が更新作業の実行中に発生する可能性があるシステムの状態を全て生成する場合を例として説明する。
 網羅的状態生成部120は、生成された状態の集合を網羅的ロールバック手順生成部110に返却する。次いで、網羅的ロールバック手順生成部110は、初期状態を示す情報と、返却された状態の集合のうちの1つの状態を示す情報を手順生成システム200に入力する。
 手順生成システム200は、ロールバック手順として、更新対象システム300の状態を入力された1つの状態から初期状態へ遷移させるためのタスクの手順を生成する。上記のように、手順生成システム200は、更新作業の実行中に発生する可能性がある各状態に対するロールバック手順をそれぞれ生成する。手順生成システム200は、生成された各ロールバック手順を網羅的ロールバック手順生成部110に返却する。
 網羅的ロールバック手順生成部110は、返却されたロールバック手順と、ロールバック手順が実行される時点の状態(上記の入力された1つの状態)との組を記憶する。次いで、網羅的ロールバック手順生成部110は、生成されたロールバック手順と状態との全ての組を手順記憶部140に入力する。手順記憶部140は、入力された状態とロールバック手順との組を記憶する機能を有する。
 また、網羅的ロールバック手順生成部110は、生成された更新作業手順を通常手順として手順実行部130に入力する。手順実行部130は、更新作業手順を実行することによって更新対象システム300を更新する機能を有する。
 また、網羅的ロールバック手順生成部110は、ロールバック手順の実行予定時間であるロールバック予定時間を算出してもよい。具体的には、網羅的ロールバック手順生成部110は、ロールバック手順を構成する各タスクの実行予定時間をそれぞれ算出する。
 次いで、網羅的ロールバック手順生成部110は、生成されたロールバック手順それぞれに対して各タスクの実行予定時間の総和を算出することによって、ロールバック予定時間をそれぞれ算出する。
 網羅的ロールバック手順生成部110は、生成されたロールバック手順と状態との組に、算出されたロールバック予定時間を含めてもよい。また、網羅的ロールバック手順生成部110は、ロールバック予定時間のうちの最長の時間を最長ロールバック予定時間として管理者に提示してもよい。
 手順実行部130は、更新作業手順を実行する時、更新作業手順を構成するタスクが実行される度に更新対象システム300の現在状態を示す情報を現在状態記憶部150に格納する。現在状態記憶部150は、更新対象システム300の現在状態を記憶する機能を有する。
 現在状態は、更新対象システム300の最新の状態である。すなわち、現在状態記憶部150に記憶されている現在状態は、手順実行部130から情報が格納される度に更新される。
 また、例外が発生した時、更新対象システム300は、例外が発生したことを手順実行部130に通知する。例外が発生したことを通知された手順実行部130は、現在状態記憶部150に記憶されている現在状態を確認する。
 次いで、手順実行部130は、確認された現在状態と同じ組に含まれているロールバック手順を手順記憶部140から取得する。次いで、手順実行部130は、取得されたロールバック手順を実行することによって、更新対象システム300の状態を初期状態に戻す。
 以下、網羅的状態生成部120が更新作業の実行中に発生する可能性があるシステムの全ての状態を生成する処理を図2~図7を参照して説明する。図2は、第1の実施形態の網羅的状態生成部120による状態生成処理の動作を示すフローチャートである。
 本例では、図3に示す半順序手順に従う更新作業の実行中に発生する可能性があるシステムの全ての状態を生成する場合を考える。図3は、半順序手順の他の例を示す説明図である。
 図3に示す半順序手順は、矩形で表されているノードで構成されている。「1」から「8」の番号がそれぞれ付与された各ノードは、タスクi(i=1-8)に対応する。タスクi は、「システムの構成要素Eiの状態を状態Sxに遷移させる」という形式で定義されている。
 網羅的状態生成部120は、半順序手順のツリーを深さ優先探索しながら探索ツリーを生成する。また、網羅的状態生成部120は、深さ優先探索中に現れた状態を状態表に順次記録する(ステップS001)。
 図4は、半順序手順における深さ優先探索処理の例を概念的に示す説明図である。図4に示す破線の矢印が、網羅的状態生成部120が実行した深さ優先探索の経路を表す。ノード「1」から出発した網羅的状態生成部120は、ノード「1」→ノード「2」→ノード「3」と進み、A地点に到達する。
 ノード「5」に対応するタスク5は、ノード「4」に対応するタスク4が実行された後でなければ実行不可能である。すなわち、ノード「5」の他のノードに対する依存性が解消されていないため、網羅的状態生成部120は、A地点から上に戻る。
 深さ優先探索処理の実行と共に、網羅的状態生成部120は、探索ツリーを生成する。図5は、網羅的状態生成部120が生成する探索ツリーの例を示す説明図である。探索ツリーは、探索履歴を示すツリーである。図5に示す円は、探索されたノードである探索ノードを表す。また、円内に記されている数字は、図3~図4に示す数字に対応している。
 A地点まで進められた段階でノード「1」、ノード「2」、ノード「3」が探索されたため、図5に示すように、探索ノード「1」→探索ノード「2」→探索ノード「3」の順に探索ツリーが構成されている。
 なお、網羅的状態生成部120は、探索ツリーの各ノードで他に実行可能なノードがあれば枝を付ける(ステップS001)。図5に示す探索ノード「2」から伸びる破線の矢印が示す破線の円は、探索可能であるが未選択な他のノードを表す。
 すなわち、ノード「1」からノード「6」が探索されることも可能であるが探索されなかったため、探索ノード「2」にノード「6」の枝が付けられている。同様の理由で、探索ノード「3」にもノード「6」の枝が付けられている。
 また、図5に示す二重丸は、手前のノード以上に網羅的状態生成部120が深く探索できなかった際の終端を表す。本例の場合、A地点以上に網羅的状態生成部120が深く探索できなかったため、探索ノード「3」の後に二重丸が記されている。
 また、深さ優先探索処理の実行と共に、網羅的状態生成部120は、状態表を生成する。図6は、網羅的状態生成部120が生成する状態表の例を示す説明図である。
 図6に示す「F 」、「T 」は、「Sx」の「x 」が採り得る値である。図6に示す例では各タスクi が構成要素Eiの状態を状態SFから状態STに遷移させるケースが想定されている。なお、構成要素Eiの状態は、状態ST以外の状態に遷移してもよい。
 図6に示す状態表の各行が、更新作業の実行中に発生する可能性がある状態に対応する。例えば、全て「F 」と記載されている行は、まだどのタスクも実行されていない時の更新対象システム300の状態に対応する。また、E1だけ「T 」と記載されている行は、タスク1だけ実行された時の更新対象システム300の状態に対応する。
 すなわち、網羅的状態生成部120は、半順序手順を構成する各タスクの中から任意の数の実行済みのタスクが選択された組合せ(図6に示す各行)をそれぞれ算出している。算出された各組合せは、半順序手順の実行中に発生する可能性がある更新対象システム300の状態にそれぞれ対応している。
 網羅的状態生成部120は、深さ優先探索中に現れた状態に対応する行を状態表に順次追加する。なお、本実施形態で生成される各ロールバック手順は、各行に対応付けられる。
 次いで、網羅的状態生成部120は、ノード「3」→ノード「2」→ノード「4」→ノード「5」と進み、B地点に到達する。
 ノード「8」に対応するタスク8は、ノード「7」に対応するタスク7が実行された後でなければ実行不可能である。すなわち、ノード「8」の他のノードに対する依存性が解消されていないため、網羅的状態生成部120は、B地点から上に戻る。
 B地点まで進められた段階でノード「4」、ノード「5」が探索されたため、図5に示すように、探索ノード「3」→探索ノード「4」→探索ノード「5」→二重丸の順に探索ツリーが構成されている。また、上記と同様の理由で、探索ノード「4」にもノード「6」の枝が付けられている。
 次いで、網羅的状態生成部120は、ノード「5」→ノード「4」→ノード「2」→ノード「1」→ノード「6」→ノード「7」→ノード「8」→ノード「9」と進み、C地点に到達する。C地点まで到達すると他に探索対象のノードがないので、網羅的状態生成部120は、深さ優先探索処理を終了する。
 C地点まで進められた段階でノード「6」、ノード「7」、ノード「8」、ノード「9」が探索されたため、図5に示すように、探索ノード「5」→探索ノード「6」→探索ノード「7」→探索ノード「8」→探索ノード「9」→二重丸の順に探索ツリーが構成されている。
 ステップS001の処理を終了した後、網羅的状態生成部120は、深さ優先探索が行き詰まったか、または状態表に既出の状態に到達したか否かを確認する(ステップS002)。「状態表に既出の状態に到達する」は、深さ優先探索が完了してはいないものの、もはや新しい状態が現れない状況を意味する。深さ優先探索が行き詰まっておらず、かつ状態表に既出の状態に到達していない場合(ステップS002におけるNo)、網羅的状態生成部120は、ステップS001の処理を再度実行する。
 深さ優先探索が行き詰まった、または状態表に既出の状態に到達した場合(ステップS002におけるYes )、網羅的状態生成部120は、未探索の枝のうち探索ツリーにおいて最も上に近い枝へ戻り、半順序手順の探索を再開する。また、探索を再開する際、網羅的状態生成部120は、探索状況も戻す(ステップS003)。
 図7は、探索ツリーにおける探索処理の例を概念的に示す説明図である。図7に示す太い方の破線の矢印が、網羅的状態生成部120が実行した探索の経路を表す。
 C地点まで進み最初の深さ優先探索が終了した網羅的状態生成部120は、探索ツリーを上から探索し、未選択のノードを発見する。次いで、網羅的状態生成部120は、最初に発見された未選択のノードを起点に半順序手順の探索を再開する。探索を再開する際、網羅的状態生成部120は、探索状況も戻す。
 例えば、探索ノード「4」に対応付けられている未選択のノード「6」から探索が再開される場合、網羅的状態生成部120は、ノード「1」、ノード「2」、ノード「3」、およびノード「4」が探索された状況まで探索状況を戻した後、ノード「6」から半順序手順を探索する。なお、再開された探索においても、網羅的状態生成部120は、探索中に現れた状態に対応する行を状態表に順次追加する。
 ステップS003の処理を終了した後、網羅的状態生成部120は、探索が行き詰まり、かつ未探索の枝が全て無くなったか否かを確認する(ステップS004)。探索が行き詰まっていない場合、または未探索の枝が存在している場合(ステップS004におけるNo)、網羅的状態生成部120は、ステップS003の処理を再度実行する。
 探索が行き詰まり、かつ未探索の枝が全て無くなった場合(ステップS004におけるYes )、網羅的状態生成部120は、状態生成処理を終了する。図7に示す例においてステップS004におけるYes の条件が満たされる場合は、未選択の3つのノードからの半順序手順の探索が行き詰まるまで全て実行された場合である。
 上記のように未選択のノードからの半順序手順の探索も実行されることによって、半順序手順に従う更新作業の実行中に発生する可能性があるシステムの状態が網羅的に生成される。
[動作の説明]
 以下、本実施形態のシステム更新装置100の手順を生成する動作を図8を参照して説明する。図8は、第1の実施形態のシステム更新装置100による手順生成処理の動作を示すフローチャートである。
 最初に、網羅的ロールバック手順生成部110に、更新対象システム300の初期状態を示す情報と、更新対象システム300の目的状態を示す情報とが入力される(ステップS101)。
 次いで、網羅的ロールバック手順生成部110は、入力された初期状態を示す情報および目的状態を示す情報を、手順生成システム200に入力する。手順生成システム200は、入力された情報を基に更新作業手順を生成する(ステップS102)。
 次いで、手順生成システム200は、生成された更新作業手順を網羅的ロールバック手順生成部110に返却する。網羅的ロールバック手順生成部110は、返却された更新作業手順を網羅的状態生成部120に入力する。
 次いで、網羅的状態生成部120は、入力された更新作業手順を用いて、図2に示す状態生成処理を実行する(ステップS103)。網羅的状態生成部120は、状態生成処理を実行することによって生成された状態の集合を網羅的ロールバック手順生成部110に返却する。
 次いで、網羅的ロールバック手順生成部110は、初期状態を示す情報と、返却された状態の集合のうちの1つの状態を示す情報を手順生成システム200に入力する。手順生成システム200は、入力された情報を基にロールバック手順を生成する。
 網羅的ロールバック手順生成部110および手順生成システム200は、上記の処理を生成された状態の集合に含まれる状態の数だけ繰り返し実行する。すなわち、手順生成システム200は、各状態に対するロールバック手順をそれぞれ生成する(ステップS104)。
 次いで、手順生成システム200は、生成された各ロールバック手順を網羅的ロールバック手順生成部110に返却する。網羅的ロールバック手順生成部110は、生成されたロールバック手順と状態との全ての組を手順記憶部140に入力する。手順記憶部140は、生成されたロールバック手順と状態との全ての組を記憶する(ステップS105)。
 次いで、網羅的ロールバック手順生成部110は、生成された更新作業手順を通常手順として手順実行部130に入力する(ステップS106)。更新作業手順を入力した後、システム更新装置100は、手順生成処理を終了する。
 次に、本実施形態のシステム更新装置100の手順を実行する動作を図9を参照して説明する。図9は、第1の実施形態のシステム更新装置100による手順実行処理の動作を示すフローチャートである。
 手順実行部130は、入力された更新作業手順を構成するタスクを実行する。また、手順実行部130は、タスクを実行する度に、更新対象システム300の現在状態を示す情報を現在状態記憶部150に格納する(ステップS201)。
 なお、ステップS201で実行されるタスクの数は、1に限られない。また、ステップS201で実行されるタスクの数は、ステップごとに変更されてもよい。
 タスクを実行した後、手順実行部130は、更新対象システム300から例外が発生したことが通知されたか否かを確認する(ステップS202)。例外が発生したことが通知されなかった場合(ステップS202におけるNo)、手順実行部130は、ステップS205の処理を行う。
 例外が発生したことが通知された場合(ステップS202におけるYes )、手順実行部130は、現在状態記憶部150に記憶されている現在状態を確認する。次いで、手順実行部130は、確認された現在状態と同じ組に含まれているロールバック手順を手順記憶部140から取得する(ステップS203)。
 次いで、手順実行部130は、取得されたロールバック手順を実行する(ステップS204)。ロールバック手順が実行されることによって、更新対象システム300の状態が初期状態に戻る。ロールバック手順を実行した後、システム更新装置100は、手順実行処理を終了する。
 ステップS205において、手順実行部130は、入力された更新作業手順を構成するタスクのうち、まだ実行されていないタスクが存在するか否かを確認する。まだ実行されていないタスクが存在する場合(ステップS205におけるYes )、手順実行部130は、再度ステップS201の処理を行う。
 更新作業手順を構成する全てのタスクが実行済みである場合(ステップS205におけるNo)、システム更新装置100は、手順実行処理を終了する。
[効果の説明]
 本実施形態のシステム更新装置100は、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。その理由は、網羅的状態生成部120が更新作業手順の実行中に発生する可能性がある更新対象システム300の状態を所定の数だけ生成する。次いで、網羅的ロールバック手順生成部110が生成された各状態から初期状態に更新対象システム300の状態が遷移可能なロールバック手順をそれぞれ生成するためである。
 すなわち、本実施形態のシステム更新装置100は、ロールバック手順を網羅的に生成できる。よって、本実施形態のシステム更新装置100が使用されると、半順序手順に従ってシステムの更新作業が実行される場合であっても、例外が発生した作業実行中のいずれの時点からでもロールバック手順が実行される。
 なお、本実施形態の更新作業手順には、構築作業手順も含まれている。システム更新装置100が構築作業手順を生成する場合、網羅的ロールバック手順生成部110には、内容が何も含まれていない情報が初期状態を示す情報として入力される。また、構築作業が実行された後の状態を示す情報が目的状態を示す情報として入力される。
 以下、本実施形態のシステム更新装置100のハードウェア構成の具体例を説明する。図10は、本発明の各実施形態を適用可能なシステム更新装置のハードウェア構成例を示す説明図である。
 図10に示すシステム更新装置100は、CPU(Central Processing Unit )101と、主記憶部102と、通信部103と、補助記憶部104とを備える。また、ユーザが操作するための入力部105や、ユーザに処理結果または処理内容の経過を提示するための出力部106を備えてもよい。
 システム更新装置100は、図10に示すCPU101が図1に示す各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
 すなわち、CPU101が補助記憶部104に格納されているプログラムを、主記憶部102にロードして実行し、システム更新装置100の動作を制御することによって、各機能がソフトウェアにより実現される。
 主記憶部102は、データの作業領域やデータの一時退避領域として用いられる。主記憶部102は、例えばRAM(Random Access Memory)である。
 通信部103は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
 補助記憶部104は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリが挙げられる。
 入力部105は、データや処理命令を入力する機能を有する。入力部105は、例えばキーボードやマウス等の入力デバイスである。
 出力部106は、データを出力する機能を有する。出力部106は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
 また、図10に示すように、システム更新装置100において、各構成要素は、システムバス107に接続されている。
 補助記憶部104は、例えば、図1に示す網羅的ロールバック手順生成部110、網羅的状態生成部120、および手順実行部130を実現するためのプログラムを記憶している。
 また、主記憶部102は、例えば、手順記憶部140の記憶領域、および現在状態記憶部150の記憶領域として利用される。また、網羅的ロールバック手順生成部110、網羅的状態生成部120、および手順実行部130は、通信部103を介して通信処理を実行してもよい。
 なお、システム更新装置100は、ハードウェアにより実現されてもよい。例えば、システム更新装置100は、内部に図1に示すような機能を実現するLSI(Large Scale Integration )等のハードウェア部品が含まれる回路が実装されてもよい。
 また、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ(例えば、上記のLSI)によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 次に、本発明の概要を説明する。図11は、本発明によるシステム更新装置の概要を示すブロック図である。本発明によるシステム更新装置10は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業(例えば、タスク)の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部11(例えば、網羅的状態生成部120)と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部12(例えば、網羅的ロールバック手順生成部110)とを備える。
 そのような構成により、システム更新装置は、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。
 また、所定の数は、更新手順の実行中に発生する可能性がある更新対象システムの全ての状態の数でもよい。
 そのような構成により、システム更新装置は、作業実行中に発生する可能性がある状態に対応したロールバック手順を全ての状態に対して用意できる。
 また、システム更新装置10は、更新手順の実行中の更新対象システムの最新の状態を記憶する状態記憶部(例えば、現在状態記憶部150)と、更新手順の実行中に例外が発生した更新対象システムに対して状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部(例えば、手順実行部130)とを備えてもよい。
 そのような構成により、システム更新装置は、例外が発生した時に速やかにロールバック手順を実行できる。
 また、システム更新装置10は、生成されたロールバック手順と、ロールバック手順が実行されるときの更新対象システムの状態とを関連付けて記憶する手順記憶部(例えば、手順記憶部140)を備えてもよい。
 そのような構成により、システム更新装置は、例外が発生した時の更新対象システムの状態をキーとしてロールバック手順を取得できる。
 また、手順生成部12は、ロールバック手順の実行に要する予定時間を算出し、手順記憶部は、算出された予定時間とロールバック手順とを関連付けて記憶してもよい。
 そのような構成により、システム更新装置は、ロールバック手順の実行に要する予定時間を利用者に提示できる。
 また、状態生成部11は、更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、算出された各組合せに応じた更新対象システムの状態を更新手順の実行中に発生する可能性がある更新対象システムの状態としてそれぞれ生成してもよい。
 そのような構成により、システム更新装置は、更新手順の実行中に発生する可能性がある更新対象システムの状態を網羅できる。
 また、更新手順は、2つ以上の作業が順不同に実行可能に並べられた手順でもよい。
 そのような構成により、システム更新装置は、半順序手順の実行中に更新対象システムが到達する可能性がある全ての状態に対してロールバック手順を生成できる。
 また、手順生成部12は、初期状態と目的状態とに基づいて更新手順を生成してもよい。
 そのような構成により、システム更新装置は、更新手順を生成できる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成および詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2018年2月6日に出願された日本特許出願2018-019014を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
 (付記1)更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成部と、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備えることを特徴とするシステム更新装置。
 (付記2)前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記1記載のシステム更新装置。
 (付記3)前記更新手順の実行中の前記更新対象システムの最新の状態を記憶する状態記憶部と、前記更新手順の実行中に例外が発生した前記更新対象システムに対して前記状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部とを備える付記1または付記2記載のシステム更新装置。
 (付記4)生成されたロールバック手順と、前記ロールバック手順が実行されるときの前記更新対象システムの状態とを関連付けて記憶する手順記憶部を備える付記1から付記3のうちのいずれかに記載のシステム更新装置。
 (付記5)前記手順生成部は、ロールバック手順の実行に要する予定時間を算出し、前記手順記憶部は、算出された予定時間と前記ロールバック手順とを関連付けて記憶する付記4記載のシステム更新装置。
 (付記6)前記状態生成部は、前記更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、算出された各組合せに応じた前記更新対象システムの状態を前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態としてそれぞれ生成する付記1から付記5のうちのいずれかに記載のシステム更新装置。
 (付記7)前記更新手順は、2つ以上の作業が順不同に実行可能に並べられた手順である付記1から付記6のうちのいずれかに記載のシステム更新装置。
 (付記8)前記手順生成部は、前記初期状態と前記目的状態とに基づいて前記更新手順を生成する付記1から付記7のうちのいずれかに記載のシステム更新装置。
 (付記9)更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成することを特徴とするシステム更新方法。
 (付記10)前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記9記載のシステム更新方法。
 (付記11)前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する付記9または付記10記載のシステム更新方法。
 (付記12)コンピュータで実行されるときに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成するシステム更新プログラムを記録したコンピュータ読み取り可能な記録媒体。
 (付記13)前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記12記載の記録媒体。
 (付記14)コンピュータで実行されるときに、前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する付記12または付記13記載の記録媒体。
 (付記15)コンピュータに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成処理、および前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理を実行させるためのシステム更新プログラム。
 (付記16)前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記15記載のシステム更新プログラム。
 (付記17)コンピュータに、前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させる記憶処理、および前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する実行処理を実行させる付記15または付記16記載のシステム更新プログラム。
産業上の利用の可能性
 本発明は、例外処理手順(ロールバック手順)の自動生成の分野に好適に適用される。
10、100 システム更新装置
11 状態生成部
12 手順生成部
101 CPU
102 主記憶部
103 通信部
104 補助記憶部
105 入力部
106 出力部
107 システムバス
110 網羅的ロールバック手順生成部
120 網羅的状態生成部
130 手順実行部
140 手順記憶部
150 現在状態記憶部
200 手順生成システム
300 更新対象システム

Claims (17)

  1.  更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成部と、
     前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備える
     ことを特徴とするシステム更新装置。
  2.  前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
     請求項1記載のシステム更新装置。
  3.  前記更新手順の実行中の前記更新対象システムの最新の状態を記憶する状態記憶部と、
     前記更新手順の実行中に例外が発生した前記更新対象システムに対して前記状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部とを備える
     請求項1または請求項2記載のシステム更新装置。
  4.  生成されたロールバック手順と、前記ロールバック手順が実行されるときの前記更新対象システムの状態とを関連付けて記憶する手順記憶部を備える
     請求項1から請求項3のうちのいずれか1項に記載のシステム更新装置。
  5.  前記手順生成部は、ロールバック手順の実行に要する予定時間を算出し、
     前記手順記憶部は、算出された予定時間と前記ロールバック手順とを関連付けて記憶する
     請求項4記載のシステム更新装置。
  6.  前記状態生成部は、
     前記更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、
     算出された各組合せに応じた前記更新対象システムの状態を前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態としてそれぞれ生成する
     請求項1から請求項5のうちのいずれか1項に記載のシステム更新装置。
  7.  前記更新手順は、2つ以上の作業が順不同に実行可能に並べられた手順である
     請求項1から請求項6のうちのいずれか1項に記載のシステム更新装置。
  8.  前記手順生成部は、前記初期状態と前記目的状態とに基づいて前記更新手順を生成する
     請求項1から請求項7のうちのいずれか1項に記載のシステム更新装置。
  9.  更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、
     前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する
     ことを特徴とするシステム更新方法。
  10.  前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
     請求項9記載のシステム更新方法。
  11.  前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、
     前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する
     請求項9または請求項10記載のシステム更新方法。
  12.  コンピュータで実行されるときに、
     更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、
     前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する
     システム更新プログラム
     を記録したコンピュータ読み取り可能な記録媒体。
  13.  前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
     請求項12記載の記録媒体。
  14.  コンピュータで実行されるときに、
     前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、
     前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する
     請求項12または請求項13記載の記録媒体。
  15.  コンピュータに、
     更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成処理、および
     前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理
     を実行させるためのシステム更新プログラム。
  16.  前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
     請求項15記載のシステム更新プログラム。
  17.  コンピュータに、
     前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させる記憶処理、および
     前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する実行処理を実行させる
     請求項15または請求項16記載のシステム更新プログラム。
PCT/JP2019/001011 2018-02-06 2019-01-16 システム更新装置およびシステム更新方法 WO2019155827A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019570631A JP7024804B2 (ja) 2018-02-06 2019-01-16 システム更新装置およびシステム更新方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-019014 2018-02-06
JP2018019014 2018-02-06

Publications (1)

Publication Number Publication Date
WO2019155827A1 true WO2019155827A1 (ja) 2019-08-15

Family

ID=67548455

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/001011 WO2019155827A1 (ja) 2018-02-06 2019-01-16 システム更新装置およびシステム更新方法

Country Status (2)

Country Link
JP (1) JP7024804B2 (ja)
WO (1) WO2019155827A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011510381A (ja) * 2008-01-11 2011-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法
JP2011199623A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd ネットワーク管理装置、ネットワーク管理方法及びネットワーク管理プログラム
WO2015008377A1 (ja) * 2013-07-19 2015-01-22 富士通株式会社 状態復元プログラム、装置、及び支援方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126693A (ja) * 2015-01-08 2016-07-11 富士通株式会社 制御手順方法、制御手順プログラム及び制御手順装置
JPWO2017138506A1 (ja) * 2016-02-08 2018-12-13 日本電気株式会社 変更手順生成システム、変更手順生成方法およびプログラム
US20200326952A1 (en) * 2016-03-10 2020-10-15 Nec Corporation Modification procedure generation device, modification procedure generation method and storage medium for storing modification procedure generation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011510381A (ja) * 2008-01-11 2011-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法
JP2011199623A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd ネットワーク管理装置、ネットワーク管理方法及びネットワーク管理プログラム
WO2015008377A1 (ja) * 2013-07-19 2015-01-22 富士通株式会社 状態復元プログラム、装置、及び支援方法

Also Published As

Publication number Publication date
JP7024804B2 (ja) 2022-02-24
JPWO2019155827A1 (ja) 2021-02-04

Similar Documents

Publication Publication Date Title
US11487536B2 (en) System for automating user-defined actions for applications executed using virtual machines in a guest system
US20200183896A1 (en) Upgrade of heterogeneous multi-instance database clusters
US8893118B2 (en) Migratable unit based application migration
US10956013B2 (en) User interface for automated flows within a cloud based developmental platform
US20170046146A1 (en) Autonomously healing microservice-based applications
US20220078093A1 (en) State transitions for a set of services
US20180324051A1 (en) User interface for automated flows within a cloud based developmental platform
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
US20070206611A1 (en) Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters
Kolb et al. Updatable process views for user-centered adaption of large process models
US11947996B2 (en) Execution of services concurrently
US20190026097A1 (en) Model based upgrade campaign generation
US20100275186A1 (en) Segmentation for static analysis
US10931749B2 (en) Efficient configuration combination selection in migration
CN109196466B (zh) 用于评估升级活动的方法和系统
WO2019155827A1 (ja) システム更新装置およびシステム更新方法
EP4134805A1 (en) Framework for live data migration
JP6897866B2 (ja) システム更新装置およびシステム更新方法
CN112214501A (zh) 用于利用序列库的模块工程化的系统和方法
JP6897867B2 (ja) システム更新装置およびシステム更新方法
Fayçal et al. A graph transformation based approach for multi-agent systems reorganization
US20170185485A1 (en) Method and system for cloud parallelization of recursive lifing calculations
Demidov et al. CONFIGURING THE STRUCTURE OF THE SERVERLESS SYSTEM FOR EFFICIENT DATA COLLECTION
Apfelbeck et al. Preserving Validity of Batch-Job Nets under Change at Run-Time
Kendon et al. DisSLib: CC: A Library for Distributed Search with a Central Common Search State

Legal Events

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

Ref document number: 19750861

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019570631

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19750861

Country of ref document: EP

Kind code of ref document: A1