WO2016166900A1 - 情報処理装置及び情報処理方法及び情報処理プログラム - Google Patents
情報処理装置及び情報処理方法及び情報処理プログラム Download PDFInfo
- Publication number
- WO2016166900A1 WO2016166900A1 PCT/JP2015/061909 JP2015061909W WO2016166900A1 WO 2016166900 A1 WO2016166900 A1 WO 2016166900A1 JP 2015061909 W JP2015061909 W JP 2015061909W WO 2016166900 A1 WO2016166900 A1 WO 2016166900A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- application program
- state
- abnormally
- abnormal termination
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Definitions
- the present invention relates to a recovery process when an application program (hereinafter also simply referred to as an application) ends abnormally.
- Patent Document 1 discloses a method for performing high-speed failure recovery by centrally managing information related to an application state and using the centrally managed information at the time of recovery.
- Patent Document 2 discloses a method for performing high-speed failure recovery by using a snapshot image obtained by imaging the state of a RAM (Random Access Memory).
- Patent Document 1 has a problem that when a failure occurs in a management application or management service that performs centralized management, failure recovery of the recovery target application cannot be performed.
- Patent Document 2 since centralized management is not performed, the problem of Patent Document 1 does not occur. However, in the method of Patent Document 2, an application in which a failure has occurred is recovered in the state at the time when the snapshot image is acquired. For this reason, when multiple applications are tightly coupled, a state mismatch occurs between the applications, so there is a problem that it is necessary to ensure consistency between the recovery target application and an application other than the recovery target application. .
- the main object of the present invention is to solve the above-mentioned problems, and it is a main object of the present invention to enable recovery of an abnormally terminated application at high speed even when a plurality of applications are tightly coupled. To do.
- An information processing apparatus includes: An information processing apparatus that executes a plurality of application programs, The status of the abnormally terminated application program before the abnormally terminated application program is abnormally terminated to a linked application program that has been operating in cooperation with the abnormally terminated abnormally terminated application program when any of the application programs terminates abnormally; An inquiry processing unit for inquiring A restoration processing unit that restores a state of the abnormally terminated application program before the abnormally terminated application program is abnormally terminated, which is notified from the cooperative application program in response to the query by the query processing unit;
- the linked application program is inquired about the status of the abnormally terminated application program before the abnormally terminated application program is terminated abnormally, and notified from the linked application program before the abnormally terminated application program terminates abnormally. Restore the state of. Therefore, even when multiple applications are tightly coupled, there is no state inconsistency between the abnormal termination application and the linked application, and the process of matching the state between the abnormal termination application and the linked application is performed. Since it is not necessary, the abnormally terminated application can be recovered at high speed.
- FIG. 3 is a diagram illustrating a hardware configuration example of the information processing apparatus according to the first embodiment.
- FIG. 3 is a diagram illustrating a software configuration example of the information processing apparatus according to the first embodiment.
- FIG. 3 is a diagram illustrating an example of stored contents of a ROM according to the first embodiment.
- the figure which shows the example of the memory content of RAM when the application (1) which concerns on Embodiment 1 is the state A.
- the figure which shows the example of the memory content of RAM when the application (1) which concerns on Embodiment 1 is the state B.
- the figure which shows the example of the memory content of RAM when the application (1) which concerns on Embodiment 1 is the state C.
- FIG. 3 is a diagram illustrating a functional module configuration example of an application according to the first embodiment.
- FIG. 4 is a diagram illustrating a software configuration example of an information processing apparatus according to a second embodiment.
- FIG. 6 shows an example of the contents stored in a ROM according to the second embodiment.
- FIG. 10 is a diagram illustrating a functional module configuration example of an application according to the second embodiment. The figure which shows the example of the state related information of the application (1) which concerns on Embodiment 2.
- FIG. The flowchart figure which shows the process example of the application (0) which concerns on Embodiment 2.
- FIG. The flowchart figure which shows the process example of the application (1) which concerns on Embodiment 2.
- FIG. FIG. 10 is a diagram illustrating a functional module configuration example of an application according to the third embodiment.
- FIG. 10 is a flowchart showing an example of processing of an application (0) according to the third embodiment.
- FIG. 10 is a flowchart showing a processing example of an application (1) according to the third embodiment.
- FIG. *** Explanation of configuration *** FIG. 1 shows a hardware configuration example of an information processing apparatus 100 according to the present embodiment.
- an information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a NOR Flash type ROM (Read Only Memory) 102, a NAND Flash type ROM 103, a RAM 104, and various I / Fs (Interface) 105.
- CPU Central Processing Unit
- NOR Flash type ROM Read Only Memory
- NAND Flash type ROM a NAND Flash type ROM
- RAM random access memory
- I / Fs Interface
- the CPU 101 is an arithmetic device (arithmetic circuit) that controls the information processing apparatus 100.
- the NOR Flash ROM 102 is a non-volatile recording device that stores a boot loader that is a program to be executed immediately after the information processing apparatus 100 is started up, setting information, and the like.
- the NAND flash ROM 103 is a non-volatile storage device that stores an OS (Operating System), an application, and a snapshot image such as an SD (registered trademark) card or an SSD (Solid State Disk).
- An HDD Hard Disk Drive
- FIG. 2 shows a software configuration example of the information processing apparatus 100 according to the present embodiment.
- the information processing apparatus 100 includes an OS 110, an application (0) 111, an application (1) 112, and an application (2) 113.
- the application (0) 111, the application (1) 112, and the application (2) 113 are collectively It is called an application.
- the OS 110 includes a snapshot acquisition unit 114 and a snapshot load unit 115.
- the snapshot acquisition unit 114 acquires a snapshot image and a snapshot difference image, which are image data of the RAM 104 representing the application state, and stores the acquired snapshot image and the snapshot difference image in the ROM 103.
- the snapshot load unit 115 loads the snapshot image and the snapshot difference image from the ROM 103 to the RAM 104.
- FIG. 3 shows an example of data stored in a ROM (NAND Flash) 103 according to this embodiment.
- a ROM (NAND Flash) 103 stores a program 121, a snapshot image 122, and a snapshot difference image 123 for each application.
- the program 121 is a program code.
- the ROM 103 stores the program code of the application (0) 111, the program code of the application (1) 112, the program code of the application (2) 113, and the program code of the OS 110.
- the snapshot image 122 is a snapshot image in an initial state of each application and the OS 110.
- the snapshot difference image 123 is a snapshot image indicating differences from the initial state of each application and the OS 110.
- the snapshot acquisition unit 114 acquires an initial snapshot image when each application and the OS 110 are activated, and stores the acquired snapshot image in the ROM 103 as the snapshot image 122.
- the snapshot acquisition unit 114 acquires a snapshot image of the state after the transition every time the state changes in each application and the OS 110, and stores the acquired snapshot image in the ROM 103 as the snapshot difference image 123.
- FIG. 3 for convenience of explanation, only the snapshot difference image 123 of the application (1) 112 is illustrated, but the snapshot difference image 123 is also displayed for the application (0) 111, the application (2) 113, and the OS 110. Stored in the ROM 103.
- FIG. 4 shows an example of data developed in the RAM 104 when the application (1) 112 according to this embodiment is started.
- the initial state of application (1) 112 is state A.
- a RAM area 131 and a RAM area 132 are RAM areas used when the application (1) 112 is executed.
- the program code of the application (1) 112 in the state A is expanded.
- data (Data: a) used for the application (1) 112 in the state A is loaded.
- the RAM area 133 is a RAM area used when the application 2 operates.
- the program code of the application (2) 113 is expanded.
- the address 134 is an address set in the RAM 104.
- the application (0) 111 and the OS 110 are also loaded with program codes and necessary data in the RAM 104.
- FIG. 5 shows an example of data expanded in the RAM 104 when the application (1) 112 enters the state B.
- the program code of the application (1) 112 in the state B is expanded in the RAM area 135.
- FIG. 6 shows an example of data expanded in the RAM 104 when the application (1) 112 enters the state C.
- data (Data: c) used for the application (1) 112 in the state C is expanded in the RAM area 136.
- FIG. 7 shows an example of a snapshot image of the application (1) 112 stored in the ROM (NAND Flash) 103.
- FIG. 7 is a snapshot image of the application (1) 112 in the initial state (state A).
- the ROM 103 also stores snapshot images of the application (0) 111, the application (2) 113, and the OS 110.
- FIG. 8 shows an example of a snapshot difference image of the application (1) 112 stored in the ROM (NAND Flash) 103.
- FIG. 8 is a snapshot difference image of the application (1) 112 in the state B and the state C.
- the ROM 103 also stores snapshot difference images of the application (0) 111, the application (2) 113, and the OS 110.
- FIG. 9 shows a functional module configuration example of the application. That is, each of the application (0) 111, the application (1) 112, and the application (2) 113 has the configuration shown in FIG.
- the state relation holding unit 201 holds state relation information indicating the state of an application and the state of a cooperative application program that operates in cooperation with the application (hereinafter also simply referred to as a cooperative application).
- the child process cooperation application holding unit 202 holds child process cooperation application information indicating a cooperation application of an application corresponding to the child process.
- application (0) 111 is a parent process
- application (1) 112 and application (2) 113 are child processes called by application (0) 111.
- application (1) 112 and application (2) 113 are linked applications of the other application. That is, application (1) 112 is a cooperative application of application (2) 113, and application (2) 113 is a cooperative application of application (1) 112.
- the state relation holding unit 201 of the application (1) 112 holds the state relation information 210 shown in FIG.
- the state relation holding unit 201 of the application (2) 113 holds the state relation information 220 shown in FIG.
- the state relation information 210 in FIG. 10 indicates that when the state of the application (1) 112 is A or B, the state of the application (2) 113 is a, and when the state of the application (1) 112 is C, the application (2 ) 113 indicates c.
- the state relation information 220 in FIG. 11 indicates that when the state of the application (2) 113 is a, the state of the application (1) 112 is A or B, and when the state of the application (2) 113 is c, the application (1) The state 112 is C.
- the application (1) 112 and the application (2) 113 that is a cooperative application operate in cooperation with each other in parallel, and based on the state of one application (for example, the application (1) 112). There is a relationship in which the state of the other application (for example, application (2) 113) can be identified.
- the state relation holding unit 201 of the application (0) 111 holds state-related information in which the state of the application (0) 111 and the state of the cooperative application are associated.
- the child process cooperation application holding unit 202 of the application (0) 111 holds the child process cooperation application information 230 illustrated in FIG.
- the first line of the child process cooperation application information 230 in FIG. 12 indicates that the cooperation application of the application (1) 112 that is a child process of the application (0) 111 is the application (2) 113.
- the second line of the child process cooperation application information 230 in FIG. 12 indicates that the cooperation application of the application (2) 113 that is a child process of the application (0) 111 is the application (1) 112.
- the application (1) 112 and the application (2) 113 have child processes, the application (1) 112 and the application (2) 113 show the child process application and the linked application of the child process in association with each other. Holds child process linkage application information.
- the relationship holding unit 201 and the child process cooperation application holding unit 202 are described as internal elements of the application. Strictly speaking, the state relationship holding unit 201 and the child process cooperation application holding unit 202 are storage areas in the RAM 104 and are not components of the application.
- the end determination unit 203 operates with an application of the parent process. When the end determination unit 203 detects the end of the child process, the end determination unit 203 determines whether the end of the child process is a normal end or an abnormal end.
- Normal termination is termination of an application according to a regular termination procedure, such as termination due to a system shutdown.
- Abnormal termination is termination of an application that does not follow the regular termination procedure, and is termination due to occurrence of a failure or the like.
- the information acquisition unit 204 acquires state-related information from the state relationship holding unit 201 and acquires child process cooperation application information from the child process cooperation application holding unit 202. More specifically, when the application is a parent process, the information acquisition unit 204 acquires child process cooperation application information from the child process cooperation application holding unit 202. In addition, when there is an inquiry from the parent process application of an application that has ended abnormally (hereinafter referred to as an abnormally ended application program or an abnormally ended application) from another application, the information acquisition unit 204 receives the information from the state relationship holding unit 201. Get state related information.
- the query processing unit 205 operates with a parent process application and a child process application. Specifically, in the parent process application, when the termination determination unit 203 determines that the child process application has terminated abnormally, the query processing unit 205 links the child process application that is an abnormal termination application program. Also, the application status of the child process before the abnormal termination of the child process application is inquired. Further, in the application of the child process, the inquiry processing unit 205 responds to the application of the parent process with the state of the abnormal termination application when the parent process application makes an inquiry about the state of the abnormal termination application.
- the query processing unit 205 of the application (0) 111 that is the parent application sends the application (1) 112 to the application (2) 113 that is the cooperative application of the application (1) 112. Inquires about the state of the application (1) 112 before the abnormal termination of 112).
- the inquiry processing unit 205 of the application (2) 113 receives an inquiry about the state of the application (1) 112 before the abnormal termination of the application (1) 112 from the inquiry processing unit 205 of the application (0) 111.
- the state of the application (1) 112 is returned to the application (0) 111.
- the restoration processing unit 206 operates with an application that is a parent process.
- the restoration processing unit 206 restores the state of the child process application that was notified from the cooperation application in response to the inquiry from the inquiry processing unit 205 and before the child process application ended abnormally. For example, when the application (1) 112 is abnormally terminated, the restoration processing unit 206 of the application (0) 111 that is the parent process notifies the application (1) 112 notified from the application (2) 113 that is the cooperative application. Restore the state before abnormal termination.
- the information processing apparatus 100 is a computer, and an OS 110, an application (0) 111, an application (1) 112, and an application (2) 113 stored in the ROM 103 are loaded into the RAM 104, read into the CPU 101, and executed by the CPU 101. Is done.
- information, data, signal values, and variable values indicating the processing results of the OS 110, the application (0) 111, the application (1) 112, and the application (2) 113 are stored in the ROM 103, the RAM 104, the register in the CPU 101, or the cache memory.
- the CPU 101 When the information processing apparatus 100 is powered on and reset is released, the CPU 101 reads a boot loader stored in a ROM (NOR Flash) 102 and starts the OS 110. At this time, the CPU 101 acquires the program code of the OS 110 from the program 121 in the ROM (NAND Flash) 103, expands the program code of the OS 110 in the RAM 104, and starts the OS 110.
- NOR Flash NOR Flash
- the CPU 101 After starting the OS 110, the CPU 101 starts an application. At this time, the CPU 101 acquires the program code of the application (0) 111, the application (1) 112, and the application (2) 113 from the program 121 in the ROM (NAND Flash) 103, and expands the acquired program code in the RAM 104. Application (0) 111, application (1) 112, and application (2) 113 are activated.
- FIG. 4 shows an example of data stored in the RAM 104 immediately after starting each application.
- the application (1) 112 is in the state A immediately after activation, and operates using the RAM areas 131 and 132.
- the application (2) 113 operates using the RAM area 133.
- the application (1) 112 operates using the RAM areas 131, 132, and 135 shown in FIG.
- the application (1) 112 enters the state C, the application (1) 112 operates using the RAM areas 131 and 136 shown in FIG.
- the snapshot acquisition unit 114 of the OS 110 acquires a snapshot image every time the state changes in each application.
- the snapshot image of each state acquired by the snapshot acquisition unit 114 includes a snapshot image 122 and a snapshot difference image 123 of each application.
- application (1) snapshot image 140 in snapshot image 122 includes areas 141 and 142 shown in FIG. 7 and address data 143 serving as a storage destination thereof.
- the application (1) snapshot difference image 150 among the application snapshot difference images 123 the difference from the state A, which is the state immediately after startup, is stored. That is, in the difference storage area 151 in the state B, the difference area 153 and the address data 154 that is the storage destination are stored. Further, in the difference storage area 152 in the state C, the difference area 155 and the address data 156 serving as the storage destination are stored.
- FIG. 13 shows an operation example of the parent process application when the child process application terminates abnormally.
- the procedure illustrated in FIG. 13 corresponds to an example of an information processing method and an information processing program.
- FIG. 14 shows an operation example of the cooperative application of the application that has ended abnormally.
- application (0) 111 is a parent process
- application (1) 112 and application (2) 113 are child processes.
- the application (2) 113 is a cooperative application of the application (1) 112.
- the termination status is generally notified to the parent process application.
- the parent process application determines that the child process application has ended abnormally, such as at the end status reception timing, the parent process application performs processing to restart the child process application. Since the end status is notified to the parent process at the timing when the child process ends, the end status is notified even in the case of normal termination such as system shutdown. Therefore, the termination determination unit 203 of the application of the parent process confirms the contents of the termination status notified from the child process in the process 501, and whether the child process has terminated normally due to a system shutdown or the like, Determine if it ended abnormally.
- the end status of the application (1) 112 that is the child process is notified to the application (0) 111 that is the parent process, and in the process 501, the end determination unit 203 of the application (0) 111 receives the application (1) 112. To determine whether the process ended normally or abnormally.
- the process proceeds to the process 502, and the application (0) 111 does not perform the restart process as it is and ends the flow of FIG. If it is determined in the process 501 that the normal termination due to the system shutdown or the like is not completed, that is, if it is determined that the application (1) 112 is abnormally terminated, the application (0) 111 performs the restart process after the process 503. carry out.
- the end determination unit 203 of the application (0) 111 instructs the information acquisition unit 204 to acquire child process cooperation application information, and the information acquisition unit 204 receives child process cooperation application information from the child process cooperation application holding unit 202. To get. Specifically, the information acquisition unit 204 acquires the child process cooperation application information 230 illustrated in FIG. Then, the information acquisition unit 204 transfers the acquired child process cooperation application information 230 to the inquiry processing unit 205.
- the inquiry processing unit 205 refers to the child process cooperation application information 230 and recognizes that the cooperation application of the application (1) 112 is the application (2) 113.
- the inquiry processing unit 205 inquires of the application (2) 113 that is the cooperative application about the state immediately before the abnormal termination of the child process application (1) 112 that terminated abnormally.
- the inquiry of the process 504 is performed by interprocess communication.
- the application (2) 113 executes the flow of FIG. 14 as the process on the inquired side.
- the inquiry processing unit 205 of the application (2) 113 receives an inquiry from the application (0) 111 in the process 510, and immediately before the abnormal end of the application (1) 112 using the state of the application (2) 113 in the process 511. Check the status of. Specifically, the inquiry processing unit 205 instructs the information acquisition unit 204 to acquire state-related information.
- the information acquisition unit 204 acquires the state relationship information 220 in FIG. 11 from the state relationship holding unit 201.
- the inquiry processing unit 205 refers to the state relation information 220 to determine the state of the application (1) 112 corresponding to the current state of the application (2) 113.
- processing 512 the inquiry processing unit 205 notifies the application (0) 111 of the state immediately before the abnormal termination of the application (1) 112.
- the notification of processing 512 is performed by inter-process communication.
- the description returns to the application (0) 111 which is the parent process.
- the inquiry processing unit 205 of the application (0) 111 receives the notification of the processing 512 shown in FIG. 14 for the processing 504, the inquiry processing unit 205 transfers the received notification to the restoration processing unit 206.
- the restoration processing unit 206 expands the snapshot image on the RAM 104 so that the state notified from the application (2) 113 is obtained, and restarts the child process application.
- the restoration processing unit 206 calls the snapshot loading unit 115, and the snapshot loading unit 115 stores the application (1) snapshot in FIG.
- the state shown in FIG. 6 for the application (1) 112 is reproduced in the RAM 104, and the state immediately before the abnormal end of the application (1) 112 is restored when the application (1) 112 is restarted.
- the status of an application is grasped between linked applications, and when a certain application terminates abnormally, the parent process application restarts the abnormal termination application before restarting the abnormal termination application.
- the linked application is inquired about the state immediately before the abnormal termination, and the abnormally terminated application is restarted so that the state immediately before the abnormal termination notified from the cooperative application is obtained. Therefore, even when multiple applications are tightly coupled, there is no state inconsistency between the abnormal termination application and the linked application, and the process of matching the state between the abnormal termination application and the linked application is performed. Since it is not necessary, the abnormally terminated application can be recovered at high speed.
- the present embodiment is not a method for centrally managing the state of an application as in Patent Document 1, it is impossible to recover an application when a failure occurs in a system that performs centralized management. There is no problem.
- Patent Document 1 incorrect information due to an application runaway or the like is registered in a system that performs centralized management, so that an application that has ended abnormally cannot be recovered, or the same failure occurs after the recovery. It may occur.
- the state immediately before abnormal termination of the abnormally terminated application is derived using the predefined correspondence relationship between the linked applications, the problem as in Patent Document 1 does not occur.
- Embodiment 2 FIG. In the first embodiment, the abnormally terminated application is recovered using the snapshot image. However, in the present embodiment, an example in which the abnormally terminated application is recovered without using the snapshot image will be described.
- FIG. 15 shows a software configuration example of the information processing apparatus 100 according to the present embodiment.
- the OS 110 does not include the snapshot acquisition unit 114 and the snapshot load unit 115.
- application (0) 111, application (1) 112, and application (2) 113 are the same as those shown in FIG.
- the hardware configuration example of the information processing apparatus 100 according to the present embodiment is the same as that shown in FIG.
- FIG. 16 shows an example of data stored in a ROM (NAND Flash) 103 according to the present embodiment.
- the snapshot image 122 and the snapshot difference image 123 shown in FIG. 3 are not stored in the ROM 103.
- the ROM 103 stores only a program 601 corresponding to the program 121 of FIG.
- FIG. 17 shows a functional module configuration example of the application according to the present embodiment.
- the state relationship holding unit 201 is the same as that described in the first embodiment. That is, the state relation holding unit 201 of the application (1) 112 holds the state relation information 210 of FIG. Further, the state relationship holding unit 201 of the application (2) 113 holds the state relationship information 220 of FIG.
- the end determination unit 203 is the same as that described in the first embodiment.
- the cooperative application holding unit 611 holds the cooperative application information 620 illustrated in FIG. FIG. 18 shows cooperative application information 620 held by the cooperative application holding unit 611 of the application (1) 112.
- FIG. 18 shows cooperative application information 620 held by the cooperative application holding unit 611 of the application (1) 112.
- an application (2) 113 that is a cooperative application of the application (1) 112 is described.
- the activation instruction unit 612 operates with an application of the parent process.
- the start instruction unit 612 instructs the child process application to start when the child process application ends abnormally.
- the activation determination unit 613 operates with a child process application.
- the activation determination unit 613 determines whether the activation mode of the child process application is normal activation or recovery activation. Normal activation is a form of activation according to normal routines.
- Recovery start-up is a form of start-up that requires a status inquiry to the cooperative application.
- the information acquisition unit 614 acquires the state relationship information from the state relationship holding unit 201 and acquires the cooperation application information from the cooperation application holding unit 611.
- the inquiry processing unit 615 operates with a restarted abnormal termination application and a linked application of the restarted abnormal termination application. Specifically, in the restarted abnormal termination application, the inquiry processing unit 615 inquires the cooperation application about the state of the abnormal termination application immediately before the abnormal termination application terminates abnormally. Further, in the cooperative application, when the inquiry about the state is received from the abnormal termination application, the inquiry processing unit 615 responds to the abnormal termination application with the state immediately before the abnormal termination of the abnormal termination application.
- the restoration processing unit 616 operates with the restarted abnormal termination application.
- the restoration processing unit 616 changes the state of the abnormally terminated application after the restart to the state immediately before the abnormally terminated notified from the cooperative application.
- the CPU 101 When the information processing apparatus 100 is powered on and reset is released, the CPU 101 reads a boot loader stored in a ROM (NOR Flash) 102 and starts the OS. At this time, the CPU 101 acquires the OS program code from the program 601 in the ROM (NAND Flash) 103, expands the OS program code in the RAM 104, and starts the OS 110.
- NOR Flash NOR Flash
- the CPU 101 After starting the OS 110, the CPU 101 starts an application. At this time, the CPU 101 acquires the program codes of the application (0) 111, the application (1) 112, and the application (2) 113 from the program 601 in the ROM (NAND Flash) 103, and expands the acquired program codes in the RAM 104. Application (0) 111, application (1) 112, and application (2) 113 are activated.
- FIG. 19 shows an example of the operation of the parent process application when the child process application terminates abnormally.
- FIG. 20 shows an operation example after the application of the child process that has ended abnormally is restarted.
- application (0) 111 is a parent process
- application (1) 112 and application (2) 113 are child processes.
- the application (2) 113 is a cooperative application of the application (1) 112.
- step 631 the end determination unit 203 of the application (0) 111 receives the application (1) 112. To determine whether the process ended normally or abnormally.
- the process proceeds to the process 632, and the application (0) 111 does not perform the restart process as it is, and ends the flow of FIG.
- the activation instructing unit 612 causes the application (1) 112 to start recovery. Instruct.
- a method for instructing recovery activation for example, a method using parameter passing is conceivable.
- the application (1) 112 instructed to start up operates according to the flow of FIG. That is, in process 641, the application (1) 112 is activated by the CPU 101.
- the activation determination unit 613 determines in process 642 whether the activation form of the process 641 is normal activation or recovery activation.
- the application (1) 112 performs a process subsequent to the normal activation in the process 643.
- the process following the normal activation is an arbitrary process, and details are not described in the present embodiment.
- the activation determination unit 613 determines in step 642 that the activation form of the process 641 is recovery activation
- the activation determination unit 613 instructs the information acquisition unit 614 to acquire cooperative application information in operation 644.
- the information acquisition unit 614 acquires the cooperative application information from the cooperative application holding unit 611. Specifically, the information acquisition unit 614 acquires the cooperative application information 620 illustrated in FIG. Then, the information acquisition unit 614 transfers the acquired cooperative application information 620 to the inquiry processing unit 615.
- the inquiry processing unit 615 recognizes that the cooperative application of the application (1) 112 is the application (2) 113 with reference to the cooperative application information 620.
- the inquiry processing unit 615 inquires of the application (2) 113 that is the cooperative application about the state immediately before the abnormal termination of the application (1) 112.
- the inquiry of the process 645 is performed by interprocess communication.
- the application (2) 113 executes the flow of FIG. 14 as the process on the inquired side. Since the flow of FIG. 14 is as described in the first embodiment, description thereof is omitted. Here, it is assumed that the application (2) 113 notifies the application (1) 112 of the state C as the state immediately before the abnormal termination of the application (1) 112.
- the query processing unit 615 of the application (1) 112 When the query processing unit 615 of the application (1) 112 receives the notification of the processing 512 illustrated in FIG. 14 for the processing 645, the query processing unit 615 transfers the received notification to the restoration processing unit 616.
- the restoration processing unit 616 changes the state of the application (1) 112 so that the state notified from the application (2) 113 is obtained.
- the restoration processing unit 616 changes the state of the application (1) 112 to the state C.
- the state shown in FIG. 6 for the application (1) 112 is reproduced in the RAM 104, and the state immediately before the abnormal end of the application (1) 112 is restored.
- the status of an application is grasped between linked applications, and when an application is abnormally terminated, the abnormally terminated application is restarted after the abnormally terminated application is restarted.
- the status immediately before termination is inquired of the linked application, and the status of the abnormally terminated application after restart is changed so that the status immediately before the abnormal termination notified from the linked application is obtained. Therefore, even when multiple applications are tightly coupled, there is no state inconsistency between the abnormal termination application and the linked application, and the process of matching the state between the abnormal termination application and the linked application is performed. Since it is not necessary, the abnormally terminated application can be recovered at high speed. Furthermore, since the snapshot image is not used in the present embodiment, an effect that the area for storing the snapshot image can be reduced is obtained.
- Embodiment 3 In the embodiment, before the abnormally terminated application is restarted, the parent process application inquires of the linked application about the status, normally starts the abnormally terminated application, and after the abnormally terminated application is normally started An example of changing the status of the abnormally terminated application to the status notified from the cooperative application will be described.
- FIG. 21 the hardware configuration example of the information processing apparatus 100 according to the present embodiment is the same as that shown in FIG.
- a software configuration example according to the present embodiment is the same as that shown in FIG.
- An example of the functional module configuration of the application according to the present embodiment is as shown in FIG.
- the state relationship holding unit 201, the child process cooperation application holding unit 202, and the end determination unit 203 are the same as those shown in FIG.
- the activation instruction unit 612, the activation determination unit 613, the information acquisition unit 614, the inquiry processing unit 615, and the restoration processing unit 616 are the same as those illustrated in FIG.
- FIG. 22 shows an operation example of the parent process application when the child process application terminates abnormally.
- FIG. 23 shows an operation example after the application of the child process that has ended abnormally is restarted.
- application (0) 111 is a parent process
- application (1) 112 and application (2) 113 are child processes.
- the application (2) 113 is a cooperative application of the application (1) 112.
- step 501 the end determination unit 203 of the application (0) 111 receives the application (1) 112. To determine whether the process ended normally or abnormally.
- the process proceeds to the process 502, and the application (0) 111 does not perform the restart process as it is and ends the flow of FIG. If it is determined in the process 501 that the normal termination due to the system shutdown or the like is not completed, that is, if it is determined that the application (1) 112 is abnormally terminated, the application (0) 111 performs the restart process after the process 503. carry out.
- the process 503 is the same as the process 503 in FIG. That is, in process 503, the end determination unit 203 of the application (0) 111 instructs the information acquisition unit 614 to acquire child process cooperation application information, and the information acquisition unit 614 receives a child process cooperation from the child process cooperation application holding unit 202. Get application information. Then, the information acquisition unit 614 transfers the acquired child process cooperation application information 230 to the inquiry processing unit 615.
- the inquiry processing unit 615 refers to the child process cooperation application information 230 and recognizes that the cooperation application of the application (1) 112 is the application (2) 113.
- the process 504 is the same as the process 504 in FIG. That is, in processing 504, the inquiry processing unit 615 inquires of the application (2) 113, which is a cooperative application, about the state immediately before the abnormal termination of the child process application (1) 112 that has terminated abnormally.
- the application (2) 113 executes the flow of FIG. 14 as the process on the inquired side. Since the flow of FIG. 14 is as described in the first embodiment, description thereof is omitted. Here, it is assumed that the application (2) 113 notifies the application (0) 111 of the state C as the state immediately before the abnormal termination of the application (1) 112.
- the inquiry processing unit 615 of the application (0) 111 receives the notification of the processing 512 illustrated in FIG. 14 for the processing 504, the inquiry processing unit 615 transfers the received notification to the activation instruction unit 612.
- the activation instructing unit 612 instructs the application (1) 112, which is an application of a child process, to perform normal activation, and the application (1) 112 is notified from the application (2) 113 (state C). ).
- the application (1) 112 instructed to start up operates according to the flow of FIG. That is, in process 641, the application (1) 112 is activated by the CPU 101. Then, in the activated application (1) 112, the activation determining unit 613 determines whether or not the state is notified from the application (0) 111 which is the parent process in the process 647. If the status is not notified from the application (0) 111, in the process 643, the application (1) 112 performs a process subsequent to the normal activation. On the other hand, when the state is notified from the application (0) 111, the activation determination unit 613 notifies the restoration processing unit 616 of the state notified from the application (0) 111.
- step 648 the restoration processing unit 616 changes the state of the application (1) 112 so that the state notified from the application (0) 111 is obtained.
- the restoration processing unit 616 changes the state of the application (1) 112 to the state C.
- the state shown in FIG. 6 for the application (1) 112 is reproduced in the RAM 104, and the state immediately before the abnormal end of the application (1) 112 is restored.
- 100 information processing apparatus 101 CPU, 102 ROM, 103 ROM, 104 RAM, 105 various I / F, 110 OS, 111 application (0), 112 application (1), 113 application (2), 114 snapshot acquisition unit, 115 snapshot load unit, 201 state relation holding unit, 202 child process cooperation application holding unit, 203 end determination unit, 204 information acquisition unit, 205 inquiry processing unit, 206 restoration processing unit, 612 start instruction unit, 613 start determination unit, 614 Information acquisition unit, 615 inquiry processing unit, 616 restoration processing unit.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
問合せ処理部(205)は、いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を問い合わせる。復元処理部(206)は、問合せ処理部(205)による問い合わせに対して連携アプリケーションプログラムから通知された、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を復元する。
Description
本発明は、アプリケーションプログラム(以下、単にアプリケーションともいう)が異常終了した際の復旧処理に関する。
カーナビゲーションシステム等の組込システムでは、様々なアプリケーションが複雑に動作する。
このような組込システムでは、アプリケーションに障害が発生した際に高速に復旧処理を行うことが必要である。
特許文献1では、アプリケーションの状態に関する情報を集中管理し、集中管理した情報を復旧時に利用することによって高速な障害復旧を行う方法が開示されている。
また、特許文献2では、RAM(Random Access Memory)の状態をイメージ化したスナップショットイメージを用いることによって高速な障害復旧を行う方法が開示されている。
このような組込システムでは、アプリケーションに障害が発生した際に高速に復旧処理を行うことが必要である。
特許文献1では、アプリケーションの状態に関する情報を集中管理し、集中管理した情報を復旧時に利用することによって高速な障害復旧を行う方法が開示されている。
また、特許文献2では、RAM(Random Access Memory)の状態をイメージ化したスナップショットイメージを用いることによって高速な障害復旧を行う方法が開示されている。
しかし、特許文献1の方法では、集中管理を行う管理アプリケーションもしくは管理サービスに障害が発生した場合は、復旧対象のアプリケーションの障害復旧を行うことができないという課題がある。
特許文献2の方法では、集中管理は行われないので、特許文献1の課題は生じない。
しかしながら、特許文献2の方法では、障害が発生したアプリケーションは、スナップショットイメージが取得された時点の状態で復旧される。
このため、複数のアプリケーションが密結合している場合は、アプリケーション間で状態の不整合が発生するため、復旧対象アプリケーションと復旧対象アプリケーション以外のアプリケーションとの整合性をとる必要があるという課題がある。
しかしながら、特許文献2の方法では、障害が発生したアプリケーションは、スナップショットイメージが取得された時点の状態で復旧される。
このため、複数のアプリケーションが密結合している場合は、アプリケーション間で状態の不整合が発生するため、復旧対象アプリケーションと復旧対象アプリケーション以外のアプリケーションとの整合性をとる必要があるという課題がある。
この発明は上記のような課題を解決することを主な目的としており、複数のアプリケーションが密結合している場合でも、異常終了したアプリケーションの復旧を高速にできるようにすることを主な目的とする。
本発明に係る情報処理装置は、
複数のアプリケーションプログラムが実行される情報処理装置であって、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせる問合せ処理部と、
前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する復元処理部と有する。
複数のアプリケーションプログラムが実行される情報処理装置であって、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせる問合せ処理部と、
前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する復元処理部と有する。
本発明では、連携アプリケーションプログラムに、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を問い合わせ、連携アプリケーションプログラムから通知された、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を復元する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る情報処理装置100のハードウェア構成例を示す。
***構成の説明***
図1は、本実施の形態に係る情報処理装置100のハードウェア構成例を示す。
図1において、情報処理装置100は、CPU(Central Processing Unit)101、NOR Flash型のROM(Read Only Memory)102、NAND Flash型のROM103、RAM104、各種I/F(Inferface)105を備える。
CPU101は、情報処理装置100の制御を行う演算装置(演算回路)である。
NOR Flash型のROM102は、情報処理装置100が起動直後に実行するためのプログラムであるブートローダや設定情報等が格納される不揮発性記録装置である。
NAND Flash型のROM103は、SD(登録商標)カードやSSD(Solid State Disk)等の、OS(Operating System)及びアプリケーション、スナップショットイメージを格納する不揮発性記憶装置である。
NAND Flash型のROMのかわりにHDD(Hard Disk Drive)を用いてもよいし、NAND Flash型のROMとHDDの双方を用いてもよい。
NOR Flash型のROM102は、情報処理装置100が起動直後に実行するためのプログラムであるブートローダや設定情報等が格納される不揮発性記録装置である。
NAND Flash型のROM103は、SD(登録商標)カードやSSD(Solid State Disk)等の、OS(Operating System)及びアプリケーション、スナップショットイメージを格納する不揮発性記憶装置である。
NAND Flash型のROMのかわりにHDD(Hard Disk Drive)を用いてもよいし、NAND Flash型のROMとHDDの双方を用いてもよい。
図2は、本実施の形態に係る情報処理装置100のソフトウェア構成例を示す。
情報処理装置100では、複数のアプリケーションとOSが実行される。
図2において、情報処理装置100は、OS110、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113を備える。
以下では、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113を区別する必要がない場合は、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113をまとめて、アプリケーションという。
OS110は、スナップショット取得部114と、スナップショットロード部115とを備える。
スナップショット取得部114は、アプリケーションの状態を表すRAM104のイメージデータであるスナップショットイメージ及びスナップショット差分イメージを取得し、取得したスナップショットイメージ及びスナップショット差分イメージをROM103に格納する。
スナップショットロード部115は、ROM103からスナップショットイメージ及びスナップショット差分イメージをRAM104にロードする。
情報処理装置100では、複数のアプリケーションとOSが実行される。
図2において、情報処理装置100は、OS110、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113を備える。
以下では、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113を区別する必要がない場合は、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113をまとめて、アプリケーションという。
OS110は、スナップショット取得部114と、スナップショットロード部115とを備える。
スナップショット取得部114は、アプリケーションの状態を表すRAM104のイメージデータであるスナップショットイメージ及びスナップショット差分イメージを取得し、取得したスナップショットイメージ及びスナップショット差分イメージをROM103に格納する。
スナップショットロード部115は、ROM103からスナップショットイメージ及びスナップショット差分イメージをRAM104にロードする。
図3は、本実施の形態に係るROM(NAND Flash)103に格納されているデータの例を示す。
図3に示すように、ROM(NAND Flash)103はプログラム121、スナップショットイメージ122、各アプリケーションのスナップショット差分イメージ123を記憶する。
プログラム121はプログラムコードである。
図3に示すように、ROM103には、アプリケーション(0)111のプログラムコード、アプリケーション(1)112のプログラムコード、アプリケーション(2)113のプログラムコード、OS110のプログラムコードが格納されている。
また、スナップショットイメージ122は、各アプリケーション及びOS110の初期状態のスナップショットイメージである。
スナップショット差分イメージ123は、各アプリケーション及びOS110の初期状態からの差分を示すスナップショットイメージである。
スナップショット取得部114は、各アプリケーション及びOS110の起動時に、初期状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショットイメージ122としてROM103に格納する。
また、スナップショット取得部114は、各アプリケーション及びOS110において状態が遷移する度に、遷移後の状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショット差分イメージ123としてROM103に格納する。
なお、図3では、説明の便宜上、アプリケーション(1)112のスナップショット差分イメージ123のみを図示しているが、アプリケーション(0)111、アプリケーション(2)113及びOS110についてもスナップショット差分イメージ123がROM103に格納されている。
図3に示すように、ROM(NAND Flash)103はプログラム121、スナップショットイメージ122、各アプリケーションのスナップショット差分イメージ123を記憶する。
プログラム121はプログラムコードである。
図3に示すように、ROM103には、アプリケーション(0)111のプログラムコード、アプリケーション(1)112のプログラムコード、アプリケーション(2)113のプログラムコード、OS110のプログラムコードが格納されている。
また、スナップショットイメージ122は、各アプリケーション及びOS110の初期状態のスナップショットイメージである。
スナップショット差分イメージ123は、各アプリケーション及びOS110の初期状態からの差分を示すスナップショットイメージである。
スナップショット取得部114は、各アプリケーション及びOS110の起動時に、初期状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショットイメージ122としてROM103に格納する。
また、スナップショット取得部114は、各アプリケーション及びOS110において状態が遷移する度に、遷移後の状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショット差分イメージ123としてROM103に格納する。
なお、図3では、説明の便宜上、アプリケーション(1)112のスナップショット差分イメージ123のみを図示しているが、アプリケーション(0)111、アプリケーション(2)113及びOS110についてもスナップショット差分イメージ123がROM103に格納されている。
図4は、本実施の形態に係るアプリケーション(1)112の起動時にRAM104に展開されるデータの例を示す。
アプリケーション(1)112の初期状態は状態Aである。
図4において、RAM領域131及びRAM領域132は、アプリケーション(1)112の実行時に使用されるRAM領域である。
RAM領域131には、状態Aのアプリケーション(1)112のプログラムコードが展開されている。
RAM領域132には、状態Aのアプリケーション(1)112に利用されるデータ(Data:a)がロードされている。
RAM領域133は、アプリケーション2の動作時に使用されるRAM領域である。
RAM領域133には、アプリケーション(2)113のプログラムコードが展開されている。
アドレス134は、RAM104に設定されているアドレスである。
なお、図4では図示を省略しているが、アプリケーション(0)111及びOS110もRAM104にプログラムコード及び必要なデータがロードされている。
アプリケーション(1)112の初期状態は状態Aである。
図4において、RAM領域131及びRAM領域132は、アプリケーション(1)112の実行時に使用されるRAM領域である。
RAM領域131には、状態Aのアプリケーション(1)112のプログラムコードが展開されている。
RAM領域132には、状態Aのアプリケーション(1)112に利用されるデータ(Data:a)がロードされている。
RAM領域133は、アプリケーション2の動作時に使用されるRAM領域である。
RAM領域133には、アプリケーション(2)113のプログラムコードが展開されている。
アドレス134は、RAM104に設定されているアドレスである。
なお、図4では図示を省略しているが、アプリケーション(0)111及びOS110もRAM104にプログラムコード及び必要なデータがロードされている。
図5は、アプリケーション(1)112が状態Bとなった際にRAM104に展開されるデータの例を示す。
図5では、状態Bのアプリケーション(1)112のプログラムコードがRAM領域135に展開されている。
図5では、状態Bのアプリケーション(1)112のプログラムコードがRAM領域135に展開されている。
図6は、アプリケーション(1)112が状態Cとなった際にRAM104に展開されるデータの例を示す。
図6では、状態Cのアプリケーション(1)112に利用されるデータ(Data:c)がRAM領域136に展開されている。
図6では、状態Cのアプリケーション(1)112に利用されるデータ(Data:c)がRAM領域136に展開されている。
図7は、ROM(NAND Flash)103に格納する、アプリケーション(1)112のスナップショットイメージの例を示す。
図7は、初期状態(状態A)のアプリケーション(1)112のスナップショットイメージである。
なお、ROM103には、アプリケーション(0)111、アプリケーション(2)113及びOS110のスナップショットイメージも格納されている。
図7は、初期状態(状態A)のアプリケーション(1)112のスナップショットイメージである。
なお、ROM103には、アプリケーション(0)111、アプリケーション(2)113及びOS110のスナップショットイメージも格納されている。
図8は、ROM(NAND Flash)103に格納する、アプリケーション(1)112のスナップショット差分イメージの例を示す。
図8は、状態B及び状態Cのアプリケーション(1)112のスナップショット差分イメージである。
なお、ROM103には、アプリケーション(0)111、アプリケーション(2)113及びOS110のスナップショット差分イメージも格納されている。
図8は、状態B及び状態Cのアプリケーション(1)112のスナップショット差分イメージである。
なお、ROM103には、アプリケーション(0)111、アプリケーション(2)113及びOS110のスナップショット差分イメージも格納されている。
図9は、アプリケーションの機能モジュール構成例を示す。
つまり、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113の各々は、図9に示す構成を備える。
つまり、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113の各々は、図9に示す構成を備える。
図9において、状態関係保持部201は、アプリケーションの状態と、当該アプリケーションと連携して動作する連携アプリケーションプログラム(以下、単に、連携アプリケーションともいう)の状態とが示される状態関係情報を保持する。
子プロセス連携アプリケーション保持部202は、子プロセスに相当するアプリケーションの連携アプリケーションが示される子プロセス連携アプリケーション情報を保持する。
子プロセス連携アプリケーション保持部202は、子プロセスに相当するアプリケーションの連携アプリケーションが示される子プロセス連携アプリケーション情報を保持する。
本実施の形態では、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112及びアプリケーション(2)113がアプリケーション(0)111により呼び出された子プロセスであると仮定する。
また、アプリケーション(1)112とアプリケーション(2)113とが、互いに他方のアプリケーションの連携アプリケーションであると仮定する。
つまり、アプリケーション(1)112は、アプリケーション(2)113の連携アプリケーションであり、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションである。
また、アプリケーション(1)112とアプリケーション(2)113とが、互いに他方のアプリケーションの連携アプリケーションであると仮定する。
つまり、アプリケーション(1)112は、アプリケーション(2)113の連携アプリケーションであり、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションである。
アプリケーション(1)112の状態関係保持部201は、図10に示す状態関係情報210を保持している。
アプリケーション(2)113の状態関係保持部201は、図11に示す状態関係情報220を保持している。
図10の状態関係情報210は、アプリケーション(1)112の状態がAもしくはBの時はアプリケーション(2)113の状態はaであり、アプリケーション(1)112の状態がCの時はアプリケーション(2)113の状態はcであることを示している。
また、図11の状態関係情報220は、アプリケーション(2)113の状態がaの時はアプリケーション(1)112の状態はAもしくはBであり、アプリケーション(2)113の状態がcの時はアプリケーション(1)112の状態はCであることを示している。
このように、アプリケーション(1)112と連携アプリケーションであるアプリケーション(2)113は、相互に並行して、連携しながら動作し、一方のアプリケーション(例えば、アプリケーション(1)112)の状態に基づいて他方のアプリケーション(例えば、アプリケーション(2)113)の状態を識別できる関係にある。
アプリケーション(2)113の状態関係保持部201は、図11に示す状態関係情報220を保持している。
図10の状態関係情報210は、アプリケーション(1)112の状態がAもしくはBの時はアプリケーション(2)113の状態はaであり、アプリケーション(1)112の状態がCの時はアプリケーション(2)113の状態はcであることを示している。
また、図11の状態関係情報220は、アプリケーション(2)113の状態がaの時はアプリケーション(1)112の状態はAもしくはBであり、アプリケーション(2)113の状態がcの時はアプリケーション(1)112の状態はCであることを示している。
このように、アプリケーション(1)112と連携アプリケーションであるアプリケーション(2)113は、相互に並行して、連携しながら動作し、一方のアプリケーション(例えば、アプリケーション(1)112)の状態に基づいて他方のアプリケーション(例えば、アプリケーション(2)113)の状態を識別できる関係にある。
なお、アプリケーション(0)111に連携アプリケーションがあれば、アプリケーション(0)111の状態関係保持部201は、アプリケーション(0)111の状態と連携アプリケーションの状態とが関連付けられる状態関連情報を保持する。
アプリケーション(0)111の子プロセス連携アプリケーション保持部202は、図12に示す子プロセス連携アプリケーション情報230を保持する。
図12の子プロセス連携アプリケーション情報230の1行目は、アプリケーション(0)111の子プロセスであるアプリケーション(1)112の連携アプリケーションがアプリケーション(2)113であることを示している。
また、図12の子プロセス連携アプリケーション情報230の2行目は、アプリケーション(0)111の子プロセスであるアプリケーション(2)113の連携アプリケーションがアプリケーション(1)112であることを示している。
図12の子プロセス連携アプリケーション情報230の1行目は、アプリケーション(0)111の子プロセスであるアプリケーション(1)112の連携アプリケーションがアプリケーション(2)113であることを示している。
また、図12の子プロセス連携アプリケーション情報230の2行目は、アプリケーション(0)111の子プロセスであるアプリケーション(2)113の連携アプリケーションがアプリケーション(1)112であることを示している。
なお、アプリケーション(1)112、アプリケーション(2)113に子プロセスがあれば、アプリケーション(1)112、アプリケーション(2)113は、子プロセスのアプリケーションと子プロセスのアプリケーションの連携アプリケーションとを関連付けて示す子プロセス連携アプリケーション情報を保持する。
なお、状態関係保持部201に保持される状態関連情報と、子プロセス連携アプリケーション保持部202に保持される子プロセス連携アプリケーション情報をアプリケーションが参照することを明確にするために、図9では、状態関係保持部201及び子プロセス連携アプリケーション保持部202をアプリケーションの内部要素として説明している。
状態関係保持部201及び子プロセス連携アプリケーション保持部202は、厳密には、RAM104内の記憶領域であり、アプリケーションの構成要素ではない。
状態関係保持部201及び子プロセス連携アプリケーション保持部202は、厳密には、RAM104内の記憶領域であり、アプリケーションの構成要素ではない。
次に、図9に示す、終了判定部203、情報取得部204、問合せ処理部205、復元処理部206を説明する。
終了判定部203は、親プロセスのアプリケーションで動作する。
終了判定部203は、子プロセスの終了を検知した際に、子プロセスの終了が正常終了であるか異常終了であるかを判定する。
正常終了は、正規の終了手順に従ったアプリケーションの終了であり、システムシャットダウン等による終了である。
異常終了は、正規の終了手順に従わないアプリケーションの終了であり、障害発生等による終了である。
終了判定部203は、子プロセスの終了を検知した際に、子プロセスの終了が正常終了であるか異常終了であるかを判定する。
正常終了は、正規の終了手順に従ったアプリケーションの終了であり、システムシャットダウン等による終了である。
異常終了は、正規の終了手順に従わないアプリケーションの終了であり、障害発生等による終了である。
情報取得部204は、状態関係保持部201から状態関連情報を取得し、子プロセス連携アプリケーション保持部202から子プロセス連携アプリケーション情報を取得する。
より具体的には、アプリケーションが親プロセスである場合には、情報取得部204は、子プロセス連携アプリケーション保持部202から子プロセス連携アプリケーション情報を取得する。
また、他のアプリケーションから、異常終了したアプリケーション(以下、異常終了アプリケーションプログラム又は異常終了アプリケーションという)の親プロセスのアプリケーションから、問い合わせがあった場合に、情報取得部204は、状態関係保持部201から状態関連情報を取得する。
より具体的には、アプリケーションが親プロセスである場合には、情報取得部204は、子プロセス連携アプリケーション保持部202から子プロセス連携アプリケーション情報を取得する。
また、他のアプリケーションから、異常終了したアプリケーション(以下、異常終了アプリケーションプログラム又は異常終了アプリケーションという)の親プロセスのアプリケーションから、問い合わせがあった場合に、情報取得部204は、状態関係保持部201から状態関連情報を取得する。
問合せ処理部205は、親プロセスのアプリケーションと子プロセスのアプリケーションで動作する。
具体的には、問合せ処理部205は、親プロセスのアプリケーションでは、終了判定部203により子プロセスのアプリケーションが異常終了したと判定された場合に、異常終了アプリケーションプログラムである子プロセスのアプリケーションの連携アプリケーションに、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を問い合わせる。
また、問合せ処理部205は、子プロセスのアプリケーションでは、親プロセスのアプリケーションから異常終了アプリケーションの状態の問合せがあった際に、異常終了アプリケーションの状態を親プロセスのアプリケーションに応答する。
例えば、アプリケーション(1)112が異常終了した場合は、親アプリケーションであるアプリケーション(0)111の問合せ処理部205は、アプリケーション(1)112の連携アプリケーションであるアプリケーション(2)113に、アプリケーション(1)112の異常終了前のアプリケーション(1)112の状態を問い合わせる。
また、アプリケーション(2)113の問合せ処理部205は、アプリケーション(0)111の問合せ処理部205からアプリケーション(1)112の異常終了前のアプリケーション(1)112の状態の問合せがあった際に、アプリケーション(1)112の状態をアプリケーション(0)111に応答する。
具体的には、問合せ処理部205は、親プロセスのアプリケーションでは、終了判定部203により子プロセスのアプリケーションが異常終了したと判定された場合に、異常終了アプリケーションプログラムである子プロセスのアプリケーションの連携アプリケーションに、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を問い合わせる。
また、問合せ処理部205は、子プロセスのアプリケーションでは、親プロセスのアプリケーションから異常終了アプリケーションの状態の問合せがあった際に、異常終了アプリケーションの状態を親プロセスのアプリケーションに応答する。
例えば、アプリケーション(1)112が異常終了した場合は、親アプリケーションであるアプリケーション(0)111の問合せ処理部205は、アプリケーション(1)112の連携アプリケーションであるアプリケーション(2)113に、アプリケーション(1)112の異常終了前のアプリケーション(1)112の状態を問い合わせる。
また、アプリケーション(2)113の問合せ処理部205は、アプリケーション(0)111の問合せ処理部205からアプリケーション(1)112の異常終了前のアプリケーション(1)112の状態の問合せがあった際に、アプリケーション(1)112の状態をアプリケーション(0)111に応答する。
復元処理部206は、親プロセスであるアプリケーションで動作する。
復元処理部206は、問合せ処理部205による問い合わせに対して連携アプリケーションから通知された、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を復元する。
例えば、アプリケーション(1)112が異常終了した場合は、親プロセスであるアプリケーション(0)111の復元処理部206は、連携アプリケーションであるアプリケーション(2)113から通知された、アプリケーション(1)112の異常終了前の状態を復元する。
復元処理部206は、問合せ処理部205による問い合わせに対して連携アプリケーションから通知された、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を復元する。
例えば、アプリケーション(1)112が異常終了した場合は、親プロセスであるアプリケーション(0)111の復元処理部206は、連携アプリケーションであるアプリケーション(2)113から通知された、アプリケーション(1)112の異常終了前の状態を復元する。
なお、情報処理装置100はコンピュータであり、ROM103に格納されているOS110、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113がRAM104にロードされ、CPU101に読み込まれ、CPU101によって実行される。
また、OS110、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113の処理の結果を示す情報やデータや信号値や変数値が、ROM103、RAM104又はCPU101内のレジスタ又はキャッシュメモリに記憶される。
また、OS110、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113の処理の結果を示す情報やデータや信号値や変数値が、ROM103、RAM104又はCPU101内のレジスタ又はキャッシュメモリに記憶される。
***動作の説明***
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
情報処理装置100の電源が投入され、リセットが解除されると、CPU101は、ROM(NOR Flash)102内に格納されているブートローダを読み込み、OS110の起動を開始する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム121からOS110のプログラムコードを取得し、OS110のプログラムコードをRAM104に展開してOS110を起動する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム121からOS110のプログラムコードを取得し、OS110のプログラムコードをRAM104に展開してOS110を起動する。
OS110の起動後に、CPU101は、アプリケーションの起動を行う。
この際、CPU101は、ROM(NAND Flash)103内のプログラム121からアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113のプログラムコードを取得し、取得したプログラムコードをRAM104に展開してアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113を起動する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム121からアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113のプログラムコードを取得し、取得したプログラムコードをRAM104に展開してアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113を起動する。
前述したように、各アプリケーションの起動直後のRAM104のデータ例を図4に示している。
アプリケーション(1)112は、起動直後は状態Aであり、RAM領域131及び132を用いて動作している。
また、アプリケーション(2)113はRAM領域133を用いて動作している。
状態が遷移してアプリケーション(1)112が状態Bとなった場合は、アプリケーション(1)112は図5に示すRAM領域131、132及び135を用いて動作する。
また、アプリケーション(1)112が状態Cとなった場合は、アプリケーション(1)112は、図6に示すRAM領域131及び136を用いて動作を行う。
アプリケーション(1)112は、起動直後は状態Aであり、RAM領域131及び132を用いて動作している。
また、アプリケーション(2)113はRAM領域133を用いて動作している。
状態が遷移してアプリケーション(1)112が状態Bとなった場合は、アプリケーション(1)112は図5に示すRAM領域131、132及び135を用いて動作する。
また、アプリケーション(1)112が状態Cとなった場合は、アプリケーション(1)112は、図6に示すRAM領域131及び136を用いて動作を行う。
OS110のスナップショット取得部114は、各アプリケーションにおいて状態が遷移する度にスナップショットイメージを取得する。
スナップショット取得部114により取得される各状態のスナップショットイメージはスナップショットイメージ122と各アプリケーションのスナップショット差分イメージ123から成る。
アプリケーション(1)112を例にすると、スナップショットイメージ122内のアプリケーション(1)スナップショットイメージ140は、図7に示す領域141及び142とその格納先となるアドレスデータ143から成る。
また、各アプリケーションスナップショット差分イメージ123のうちアプリケーション(1)スナップショット差分イメージ150では、起動直後の状態である状態Aとの差分が記憶される。
つまり、状態Bの差分保存領域151では、差分領域153及びその格納先となるアドレスデータ154が記憶される。
また、状態Cの差分保存領域152では、差分領域155及びその格納先となるアドレスデータ156が記憶される。
スナップショット取得部114により取得される各状態のスナップショットイメージはスナップショットイメージ122と各アプリケーションのスナップショット差分イメージ123から成る。
アプリケーション(1)112を例にすると、スナップショットイメージ122内のアプリケーション(1)スナップショットイメージ140は、図7に示す領域141及び142とその格納先となるアドレスデータ143から成る。
また、各アプリケーションスナップショット差分イメージ123のうちアプリケーション(1)スナップショット差分イメージ150では、起動直後の状態である状態Aとの差分が記憶される。
つまり、状態Bの差分保存領域151では、差分領域153及びその格納先となるアドレスデータ154が記憶される。
また、状態Cの差分保存領域152では、差分領域155及びその格納先となるアドレスデータ156が記憶される。
次に、図13及び図14を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図13は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図13に示す手順は、情報処理方法及び情報処理プログラムの例に相当する。
図14は、異常終了したアプリケーションの連携アプリケーションの動作例を示す。
以下では、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
図13は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図13に示す手順は、情報処理方法及び情報処理プログラムの例に相当する。
図14は、異常終了したアプリケーションの連携アプリケーションの動作例を示す。
以下では、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
子プロセスのアプリケーションが終了すると、一般的に、親プロセスのアプリケーションに終了ステータスが通知される。
親プロセスのアプリケーションは、終了ステータスの受信タイミング等で子プロセスのアプリケーションが異常終了したと判定した場合に、親プロセスのアプリケーションは子プロセスのアプリケーションを再起動させる処理を行う。
終了ステータスは子プロセスが終了したタイミングで親プロセスに通知されるため、システムシャットダウン等の正常終了の場合でも終了ステータスは通知される。
このため、親プロセスのアプリケーションの終了判定部203は、処理501にて、子プロセスから通知された終了ステータスの内容を確認して、子プロセスがシステムシャットダウン等により正常終了したか、障害発生等により異常終了したかを判定する。
ここでは、子プロセスであるアプリケーション(1)112の終了ステータスが親プロセスであるアプリケーション(0)111に通知され、処理501にて、アプリケーション(0)111の終了判定部203がアプリケーション(1)112が正常終了したか異常終了したかを判定する。
親プロセスのアプリケーションは、終了ステータスの受信タイミング等で子プロセスのアプリケーションが異常終了したと判定した場合に、親プロセスのアプリケーションは子プロセスのアプリケーションを再起動させる処理を行う。
終了ステータスは子プロセスが終了したタイミングで親プロセスに通知されるため、システムシャットダウン等の正常終了の場合でも終了ステータスは通知される。
このため、親プロセスのアプリケーションの終了判定部203は、処理501にて、子プロセスから通知された終了ステータスの内容を確認して、子プロセスがシステムシャットダウン等により正常終了したか、障害発生等により異常終了したかを判定する。
ここでは、子プロセスであるアプリケーション(1)112の終了ステータスが親プロセスであるアプリケーション(0)111に通知され、処理501にて、アプリケーション(0)111の終了判定部203がアプリケーション(1)112が正常終了したか異常終了したかを判定する。
処理501においてシステムシャットダウン等による正常終了であると判定された場合は、処理502に移行し、アプリケーション(0)111は、そのまま再起動処理を行わず、図13のフローを終了する。
処理501においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、アプリケーション(0)111は、処理503以降の再起動処理を実施する。
処理501においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、アプリケーション(0)111は、処理503以降の再起動処理を実施する。
処理503では、アプリケーション(0)111の終了判定部203が情報取得部204に子プロセス連携アプリケーション情報の取得を指示し、情報取得部204が子プロセス連携アプリケーション保持部202から、子プロセス連携アプリケーション情報を取得する。
具体的には、情報取得部204は、図12に示す子プロセス連携アプリケーション情報230を取得する。
そして、情報取得部204は取得した子プロセス連携アプリケーション情報230を問合せ処理部205に転送する。
問合せ処理部205は、子プロセス連携アプリケーション情報230を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
具体的には、情報取得部204は、図12に示す子プロセス連携アプリケーション情報230を取得する。
そして、情報取得部204は取得した子プロセス連携アプリケーション情報230を問合せ処理部205に転送する。
問合せ処理部205は、子プロセス連携アプリケーション情報230を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
次に、処理504にて、問合せ処理部205が、連携アプリケーションであるアプリケーション(2)113に、異常終了した子プロセスのアプリケーション(1)112の異常終了の直前の状態を問い合わせる。
処理504の問合せは、プロセス間通信により行われる。
処理504の問合せは、プロセス間通信により行われる。
アプリケーション(2)113は、被問い合わせ側の処理として、図14のフローを実施する。
アプリケーション(2)113の問合せ処理部205が、処理510にてアプリケーション(0)111からの問い合わせを受け、処理511にてアプリケーション(2)113の状態を用いてアプリケーション(1)112の異常終了直前の状態を確認する。
具体的には、問合せ処理部205は情報取得部204に状態関係情報の取得を指示する。
情報取得部204は、状態関係保持部201から、図11の状態関係情報220を取得する。
問合せ処理部205は、状態関係情報220を参照して、アプリケーション(2)113の現在の状態に対応するアプリケーション(1)112の状態を判定する。
例えば、アプリケーション(2)113の現在の状態がcであれば、アプリケーション(1)112の異常終了の直前の状態は状態Cであると判定する。
次に、処理512にて、問合せ処理部205は、アプリケーション(0)111に対して、アプリケーション(1)112の異常終了の直前の状態を通知する。
処理512の通知は、プロセス間通信により行われる。
アプリケーション(2)113の問合せ処理部205が、処理510にてアプリケーション(0)111からの問い合わせを受け、処理511にてアプリケーション(2)113の状態を用いてアプリケーション(1)112の異常終了直前の状態を確認する。
具体的には、問合せ処理部205は情報取得部204に状態関係情報の取得を指示する。
情報取得部204は、状態関係保持部201から、図11の状態関係情報220を取得する。
問合せ処理部205は、状態関係情報220を参照して、アプリケーション(2)113の現在の状態に対応するアプリケーション(1)112の状態を判定する。
例えば、アプリケーション(2)113の現在の状態がcであれば、アプリケーション(1)112の異常終了の直前の状態は状態Cであると判定する。
次に、処理512にて、問合せ処理部205は、アプリケーション(0)111に対して、アプリケーション(1)112の異常終了の直前の状態を通知する。
処理512の通知は、プロセス間通信により行われる。
次に、親プロセスであるアプリケーション(0)111の説明に戻る。
アプリケーション(0)111の問合せ処理部205は、処理504に対する図14に示す処理512の通知を受信すると、受信した通知を復元処理部206に転送する。
復元処理部206は、処理505にて、アプリケーション(2)113から通知された状態となるよう、スナップショットイメージをRAM104上に展開し、子プロセスのアプリケーションを再起動する。
アプリケーション(2)113から、問合せ応答として、状態Cが通知された場合は、復元処理部206は、スナップショットロード部115をコールし、スナップショットロード部115に図7のアプリケーション(1)スナップショットイメージ140と図8のアプリケーション(1)スナップショット差分イメージの内の状態Cの差分保存領域152をRAM104に展開させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の再起動時にアプリケーション(1)112の異常終了の直前の状態が復元される。
アプリケーション(0)111の問合せ処理部205は、処理504に対する図14に示す処理512の通知を受信すると、受信した通知を復元処理部206に転送する。
復元処理部206は、処理505にて、アプリケーション(2)113から通知された状態となるよう、スナップショットイメージをRAM104上に展開し、子プロセスのアプリケーションを再起動する。
アプリケーション(2)113から、問合せ応答として、状態Cが通知された場合は、復元処理部206は、スナップショットロード部115をコールし、スナップショットロード部115に図7のアプリケーション(1)スナップショットイメージ140と図8のアプリケーション(1)スナップショット差分イメージの内の状態Cの差分保存領域152をRAM104に展開させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の再起動時にアプリケーション(1)112の異常終了の直前の状態が復元される。
***実施の形態の効果の説明***
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、親プロセスのアプリケーションが、異常終了アプリケーションの再起動前に、異常終了アプリケーションの異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、異常終了アプリケーションを再起動する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、親プロセスのアプリケーションが、異常終了アプリケーションの再起動前に、異常終了アプリケーションの異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、異常終了アプリケーションを再起動する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
また、本実施の形態は、特許文献1のように、アプリケーションの状態を集中管理する方式ではないため、集中管理を行っているシステムで障害が発生した場合にアプリケーションの復旧が不可能になるという問題は発生しない。
また、特許文献1の方法では、アプリケーションの暴走等によって誤った情報が、集中管理を行っているシステムに登録されることにより異常終了したアプリケーションの復旧が不能もしくは復旧後に同一の障害が当該アプリケーションに発生する可能性もある。
本実施の形態では、予め定義されている連携アプリケーション間の状態の対応関係を用いて、異常終了アプリケーションの異常終了直前の状態を導出するため、特許文献1のような問題は発生しない。
本実施の形態では、予め定義されている連携アプリケーション間の状態の対応関係を用いて、異常終了アプリケーションの異常終了直前の状態を導出するため、特許文献1のような問題は発生しない。
実施の形態2.
実施の形態1では、スナップショットイメージを用いて異常終了アプリケーションの復旧を行っているが、本実施の形態では、スナップショットイメージを用いずに、異常終了アプリケーションの復旧を行う例を説明する。
実施の形態1では、スナップショットイメージを用いて異常終了アプリケーションの復旧を行っているが、本実施の形態では、スナップショットイメージを用いずに、異常終了アプリケーションの復旧を行う例を説明する。
***構成の説明***
図15は、本実施の形態に係る情報処理装置100のソフトウェア構成例を示す。
図15に示すように、本実施の形態では、OS110にはスナップショット取得部114とスナップショットロード部115が含まれていない。
なお、図15において、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113は、図2に示したものと同様であり、説明を省略する。
また、本実施の形態に係る情報処理装置100のハードウェア構成例は、図1に示したものと同様である。
図15は、本実施の形態に係る情報処理装置100のソフトウェア構成例を示す。
図15に示すように、本実施の形態では、OS110にはスナップショット取得部114とスナップショットロード部115が含まれていない。
なお、図15において、アプリケーション(0)111、アプリケーション(1)112、アプリケーション(2)113は、図2に示したものと同様であり、説明を省略する。
また、本実施の形態に係る情報処理装置100のハードウェア構成例は、図1に示したものと同様である。
図16は、本実施の形態に係るROM(NAND Flash)103に格納されるデータの例を示す。
図16に示すように、本実施の形態では、ROM103には、図3に示したスナップショットイメージ122及びスナップショット差分イメージ123は記憶されない。
本実施の形態では、ROM103には、図3のプログラム121に相当するプログラム601のみが記憶される。
図16に示すように、本実施の形態では、ROM103には、図3に示したスナップショットイメージ122及びスナップショット差分イメージ123は記憶されない。
本実施の形態では、ROM103には、図3のプログラム121に相当するプログラム601のみが記憶される。
図17は、本実施の形態に係るアプリケーションの機能モジュール構成例を示す。
状態関係保持部201は、実施の形態1で説明したものと同じである。
つまり、アプリケーション(1)112の状態関係保持部201は、図10の状態関係情報210を保持する。
また、アプリケーション(2)113の状態関係保持部201は、図11の状態関係情報220を保持する。
つまり、アプリケーション(1)112の状態関係保持部201は、図10の状態関係情報210を保持する。
また、アプリケーション(2)113の状態関係保持部201は、図11の状態関係情報220を保持する。
終了判定部203も、実施の形態1で説明したものと同じである。
連携アプリケーション保持部611は、図18に例示する連携アプリケーション情報620を保持する。
図18は、アプリケーション(1)112の連携アプリケーション保持部611が保持する連携アプリケーション情報620を示す。
連携アプリケーション情報620には、アプリケーション(1)112の連携アプリケーションであるアプリケーション(2)113が記述されている。
図18は、アプリケーション(1)112の連携アプリケーション保持部611が保持する連携アプリケーション情報620を示す。
連携アプリケーション情報620には、アプリケーション(1)112の連携アプリケーションであるアプリケーション(2)113が記述されている。
起動指示部612は、親プロセスのアプリケーションで動作する。
起動指示部612は、子プロセスのアプリケーションが異常終了した場合に、子プロセスのアプリケーションに起動を指示する。
起動指示部612は、子プロセスのアプリケーションが異常終了した場合に、子プロセスのアプリケーションに起動を指示する。
起動判定部613は、子プロセスのアプリケーションで動作する。
起動判定部613は、子プロセスのアプリケーションの起動の形態が、通常起動であるか復旧起動であるかを判定する。
通常起動は、通常のルーティンに従った起動の形態である。
復旧起動は、連携アプリケーションへの状態の問合せが必要な起動の形態である。
起動判定部613は、子プロセスのアプリケーションの起動の形態が、通常起動であるか復旧起動であるかを判定する。
通常起動は、通常のルーティンに従った起動の形態である。
復旧起動は、連携アプリケーションへの状態の問合せが必要な起動の形態である。
情報取得部614は、状態関係保持部201から状態関係情報を取得し、また、連携アプリケーション保持部611から連携アプリケーション情報を取得する。
問合せ処理部615は、再起動した異常終了アプリケーションと、再起動した異常終了アプリケーションの連携アプリケーションで動作する。
具体的には、問合せ処理部615は、再起動した異常終了アプリケーションでは、連携アプリケーションに、異常終了アプリケーションが異常終了する直前の異常終了アプリケーションの状態を問い合わせる。
また、問合せ処理部615は、連携アプリケーションでは、異常終了アプリケーションから状態の問合せがあった際に、異常終了アプリケーションの異常終了の直前の状態を異常終了アプリケーションに応答する。
具体的には、問合せ処理部615は、再起動した異常終了アプリケーションでは、連携アプリケーションに、異常終了アプリケーションが異常終了する直前の異常終了アプリケーションの状態を問い合わせる。
また、問合せ処理部615は、連携アプリケーションでは、異常終了アプリケーションから状態の問合せがあった際に、異常終了アプリケーションの異常終了の直前の状態を異常終了アプリケーションに応答する。
復元処理部616は、再起動した異常終了アプリケーションで動作する。
復元処理部616は、再起動後の異常終了アプリケーションの状態を、連携アプリケーションから通知された異常終了の直前の状態に変更する。
復元処理部616は、再起動後の異常終了アプリケーションの状態を、連携アプリケーションから通知された異常終了の直前の状態に変更する。
***動作の説明***
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
次に、本実施の形態に係る情報処理装置100の動作例を説明する。
情報処理装置100の電源が投入され、リセットが解除されると、CPU101は、ROM(NOR Flash)102内に格納されているブートローダを読み込み、OSの起動を開始する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム601からOSのプログラムコードを取得し、OSのプログラムコードをRAM104に展開してOS110を起動する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム601からOSのプログラムコードを取得し、OSのプログラムコードをRAM104に展開してOS110を起動する。
OS110の起動後に、CPU101は、アプリケーションの起動を行う。
この際、CPU101は、ROM(NAND Flash)103内のプログラム601からアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113のプログラムコードを取得し、取得したプログラムコードをRAM104に展開してアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113を起動する。
この際、CPU101は、ROM(NAND Flash)103内のプログラム601からアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113のプログラムコードを取得し、取得したプログラムコードをRAM104に展開してアプリケーション(0)111、アプリケーション(1)112及びアプリケーション(2)113を起動する。
次に、図19及び図20を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図19は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図20は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
図19は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図20は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
親プロセスであるアプリケーション(0)111に、子プロセスであるアプリケーション(1)112の終了ステータスが通知されると、処理631にて、アプリケーション(0)111の終了判定部203がアプリケーション(1)112が正常終了したか異常終了したかを判定する。
処理631においてシステムシャットダウン等による正常終了であると判定された場合は、処理632に移行し、アプリケーション(0)111は、そのまま再起動処理を行わず、図19のフローを終了する。
処理631においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、起動指示部612が、アプリケーション(1)112に復旧起動を指示する。
復旧起動の指示方法は、例えばパラメータ渡しによる方法が考えられる。
処理631においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、起動指示部612が、アプリケーション(1)112に復旧起動を指示する。
復旧起動の指示方法は、例えばパラメータ渡しによる方法が考えられる。
起動が指示されたアプリケーション(1)112は、図20のフローに従って動作する。
つまり、処理641において、CPU101によりアプリケーション(1)112が起動される。
そして、起動されたアプリケーション(1)112では、起動判定部613が、処理642にて、処理641の起動形態が通常起動であるか、復旧起動であるかを判定する。
起動判定部613により処理641の起動形態が通常起動であると判定された場合は、処理643にて、アプリケーション(1)112では、通常起動に後続する処理を実施する。
通常起動に後続する処理は任意の処理であり、本実施の形態では詳細は記載しない。
つまり、処理641において、CPU101によりアプリケーション(1)112が起動される。
そして、起動されたアプリケーション(1)112では、起動判定部613が、処理642にて、処理641の起動形態が通常起動であるか、復旧起動であるかを判定する。
起動判定部613により処理641の起動形態が通常起動であると判定された場合は、処理643にて、アプリケーション(1)112では、通常起動に後続する処理を実施する。
通常起動に後続する処理は任意の処理であり、本実施の形態では詳細は記載しない。
一方、処理642にて起動判定部613により処理641の起動形態が復旧起動であると判定された場合は、処理644にて、起動判定部613が情報取得部614に連携アプリケーション情報の取得を指示し、情報取得部614が連携アプリケーション保持部611から、連携アプリケーション情報を取得する。
具体的には、情報取得部614は、図18に示す連携アプリケーション情報620を取得する。
そして、情報取得部614は取得した連携アプリケーション情報620を問合せ処理部615に転送する。
問合せ処理部615は、連携アプリケーション情報620を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
具体的には、情報取得部614は、図18に示す連携アプリケーション情報620を取得する。
そして、情報取得部614は取得した連携アプリケーション情報620を問合せ処理部615に転送する。
問合せ処理部615は、連携アプリケーション情報620を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
次に、処理645にて、問合せ処理部615が、連携アプリケーションであるアプリケーション(2)113に、アプリケーション(1)112の異常終了の直前の状態を問い合わせる。
処理645の問合せは、プロセス間通信により行われる。
処理645の問合せは、プロセス間通信により行われる。
アプリケーション(2)113は、被問い合わせ側の処理として、図14のフローを実施する。
図14のフローは実施の形態1で説明した通りなので、説明は省略する。
ここでは、アプリケーション(2)113は、アプリケーション(1)112の異常終了の直前の状態として、状態Cをアプリケーション(1)112に通知するものとする。
図14のフローは実施の形態1で説明した通りなので、説明は省略する。
ここでは、アプリケーション(2)113は、アプリケーション(1)112の異常終了の直前の状態として、状態Cをアプリケーション(1)112に通知するものとする。
アプリケーション(1)112の問合せ処理部615は、処理645に対する図14に示す処理512の通知を受信すると、受信した通知を復元処理部616に転送する。
復元処理部616は、処理646にて、アプリケーション(2)113から通知された状態となるよう、アプリケーション(1)112の状態を変更する。
アプリケーション(2)113から、問合せ応答として、状態Cが通知された場合は、復元処理部616は、アプリケーション(1)112の状態を状態Cに遷移させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の異常終了の直前の状態が復元される。
復元処理部616は、処理646にて、アプリケーション(2)113から通知された状態となるよう、アプリケーション(1)112の状態を変更する。
アプリケーション(2)113から、問合せ応答として、状態Cが通知された場合は、復元処理部616は、アプリケーション(1)112の状態を状態Cに遷移させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の異常終了の直前の状態が復元される。
***実施の形態の効果の説明***
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、異常終了アプリケーションが再起動した後に、再起動後の異常終了アプリケーションが、異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、再起動後の異常終了アプリケーションの状態を変更する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
更に、本実施の形態ではスナップショットイメージを用いないため、スナップショットイメージを保存する領域を削減できるという効果が得られる。
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、異常終了アプリケーションが再起動した後に、再起動後の異常終了アプリケーションが、異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、再起動後の異常終了アプリケーションの状態を変更する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
更に、本実施の形態ではスナップショットイメージを用いないため、スナップショットイメージを保存する領域を削減できるという効果が得られる。
実施の形態3.
実施の形態では、異常終了アプリケーションの再起動前に、親プロセスのアプリケーションが連携アプリケーションに状態の問合せを行い、異常終了アプリケーションを通常起動させ、通常起動した後の異常終了アプリケーションが、通常起動した後の異常終了アプリケーションの状態を連携アプリケーションから通知された状態に変更する例を説明する。
実施の形態では、異常終了アプリケーションの再起動前に、親プロセスのアプリケーションが連携アプリケーションに状態の問合せを行い、異常終了アプリケーションを通常起動させ、通常起動した後の異常終了アプリケーションが、通常起動した後の異常終了アプリケーションの状態を連携アプリケーションから通知された状態に変更する例を説明する。
***構成の説明***
なお、本実施の形態に係る情報処理装置100のハードウェア構成例は図1に示したものと同様である。
また、本実施の形態に係るソフトウェア構成例は図15に示したものと同様である。
本実施の形態に係るアプリケーションの機能モジュール構成例は図21に示す通りである。
図21において、状態関係保持部201、子プロセス連携アプリケーション保持部202、終了判定部203は図9に示したものと同様である。
また、図21において、起動指示部612、起動判定部613、情報取得部614、問合せ処理部615、復元処理部616は、図17に示したものと同様である。
なお、本実施の形態に係る情報処理装置100のハードウェア構成例は図1に示したものと同様である。
また、本実施の形態に係るソフトウェア構成例は図15に示したものと同様である。
本実施の形態に係るアプリケーションの機能モジュール構成例は図21に示す通りである。
図21において、状態関係保持部201、子プロセス連携アプリケーション保持部202、終了判定部203は図9に示したものと同様である。
また、図21において、起動指示部612、起動判定部613、情報取得部614、問合せ処理部615、復元処理部616は、図17に示したものと同様である。
***動作の説明***
次に、図22及び図23を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図22は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図23は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
次に、図22及び図23を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図22は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図23は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション(0)111が親プロセスであり、アプリケーション(1)112とアプリケーション(2)113が子プロセスであるとする。
また、アプリケーション(2)113は、アプリケーション(1)112の連携アプリケーションであるとする。
親プロセスであるアプリケーション(0)111に、子プロセスであるアプリケーション(1)112の終了ステータスが通知されると、処理501にて、アプリケーション(0)111の終了判定部203がアプリケーション(1)112が正常終了したか異常終了したかを判定する。
処理501においてシステムシャットダウン等による正常終了であると判定された場合は、処理502に移行し、アプリケーション(0)111は、そのまま再起動処理を行わず、図22のフローを終了する。
処理501においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、アプリケーション(0)111は、処理503以降の再起動処理を実施する。
処理501においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション(1)112が異常終了したと判定された場合は、アプリケーション(0)111は、処理503以降の再起動処理を実施する。
処理503は、図13の処理503と同じである。
すなわち、処理503において、アプリケーション(0)111の終了判定部203が情報取得部614に子プロセス連携アプリケーション情報の取得を指示し、情報取得部614が子プロセス連携アプリケーション保持部202から、子プロセス連携アプリケーション情報を取得する。
そして、情報取得部614は取得した子プロセス連携アプリケーション情報230を問合せ処理部615に転送する。
問合せ処理部615は、子プロセス連携アプリケーション情報230を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
すなわち、処理503において、アプリケーション(0)111の終了判定部203が情報取得部614に子プロセス連携アプリケーション情報の取得を指示し、情報取得部614が子プロセス連携アプリケーション保持部202から、子プロセス連携アプリケーション情報を取得する。
そして、情報取得部614は取得した子プロセス連携アプリケーション情報230を問合せ処理部615に転送する。
問合せ処理部615は、子プロセス連携アプリケーション情報230を参照して、アプリケーション(1)112の連携アプリケーションは、アプリケーション(2)113であることを認識する。
また、処理504も図13の処理504と同じである。
つまり、処理504にて、問合せ処理部615が、連携アプリケーションであるアプリケーション(2)113に、異常終了した子プロセスのアプリケーション(1)112の異常終了の直前の状態を問い合わせる。
つまり、処理504にて、問合せ処理部615が、連携アプリケーションであるアプリケーション(2)113に、異常終了した子プロセスのアプリケーション(1)112の異常終了の直前の状態を問い合わせる。
アプリケーション(2)113は、被問い合わせ側の処理として、図14のフローを実施する。
図14のフローは実施の形態1で説明した通りなので、説明は省略する。
ここでは、アプリケーション(2)113は、アプリケーション(1)112の異常終了の直前の状態として、状態Cをアプリケーション(0)111に通知するものとする。
図14のフローは実施の形態1で説明した通りなので、説明は省略する。
ここでは、アプリケーション(2)113は、アプリケーション(1)112の異常終了の直前の状態として、状態Cをアプリケーション(0)111に通知するものとする。
アプリケーション(0)111の問合せ処理部615は、処理504に対する図14に示す処理512の通知を受信すると、受信した通知を起動指示部612に転送する。
起動指示部612は、処理507にて、子プロセスのアプリケーションであるアプリケーション(1)112に通常起動を指示し、更に、アプリケーション(1)112にアプリケーション(2)113から通知された状態(状態C)を通知する。
起動指示部612は、処理507にて、子プロセスのアプリケーションであるアプリケーション(1)112に通常起動を指示し、更に、アプリケーション(1)112にアプリケーション(2)113から通知された状態(状態C)を通知する。
起動が指示されたアプリケーション(1)112は、図23のフローに従って動作する。
つまり、処理641において、CPU101によりアプリケーション(1)112が起動される。
そして、起動されたアプリケーション(1)112では、起動判定部613が、処理647にて、親プロセスであるアプリケーション(0)111から状態が通知されているか否かを判定する。
アプリケーション(0)111から状態が通知されていない場合は、処理643にて、アプリケーション(1)112では、通常起動に後続する処理を実施する。
一方、アプリケーション(0)111から状態が通知されている場合は、起動判定部613はアプリケーション(0)111から通知された状態を復元処理部616に通知する。
そして、復元処理部616は、処理648にて、アプリケーション(0)111から通知された状態となるよう、アプリケーション(1)112の状態を変更する。
アプリケーション(0)111から、問合せ応答として、状態Cが通知された場合は、復元処理部616は、アプリケーション(1)112の状態を状態Cに遷移させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の異常終了の直前の状態が復元される。
つまり、処理641において、CPU101によりアプリケーション(1)112が起動される。
そして、起動されたアプリケーション(1)112では、起動判定部613が、処理647にて、親プロセスであるアプリケーション(0)111から状態が通知されているか否かを判定する。
アプリケーション(0)111から状態が通知されていない場合は、処理643にて、アプリケーション(1)112では、通常起動に後続する処理を実施する。
一方、アプリケーション(0)111から状態が通知されている場合は、起動判定部613はアプリケーション(0)111から通知された状態を復元処理部616に通知する。
そして、復元処理部616は、処理648にて、アプリケーション(0)111から通知された状態となるよう、アプリケーション(1)112の状態を変更する。
アプリケーション(0)111から、問合せ応答として、状態Cが通知された場合は、復元処理部616は、アプリケーション(1)112の状態を状態Cに遷移させる。
この結果、RAM104には、アプリケーション(1)112について図6に示す状態が再現され、アプリケーション(1)112の異常終了の直前の状態が復元される。
***実施の形態の効果の説明***
本実施の形態においても、実施の形態2と同様の効果が得られる。
本実施の形態においても、実施の形態2と同様の効果が得られる。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 情報処理装置、101 CPU、102 ROM、103 ROM、104 RAM、105 各種I/F、110 OS、111 アプリケーション(0)、112 アプリケーション(1)、113 アプリケーション(2)、114 スナップショット取得部、115 スナップショットロード部、201 状態関係保持部、202 子プロセス連携アプリケーション保持部、203 終了判定部、204 情報取得部、205 問合せ処理部、206 復元処理部、612 起動指示部、613 起動判定部、614 情報取得部、615 問合せ処理部、616 復元処理部。
Claims (9)
- 複数のアプリケーションプログラムが実行される情報処理装置であって、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせる問合せ処理部と、
前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する復元処理部と有する情報処理装置。 - 前記問合せ処理部は、
前記連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を問い合わせ、
前記復元処理部は、
前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を復元する請求項1に記載の情報処理装置。 - 前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動前に、前記連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせ、
前記復元処理部は、
再起動後の前記異常終了アプリケーションプログラムの状態が、前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された異常終了の前の状態となるように、前記異常終了アプリケーションプログラムを再起動する請求項1に記載の情報処理装置。 - 前記復元処理部は、
前記異常終了アプリケーションプログラムのスナップショットイメージを用いて、再起動後の前記異常終了アプリケーションプログラムの状態が、前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された異常終了の前の状態となるように、前記異常終了アプリケーションプログラムを再起動する請求項3に記載の情報処理装置。 - 前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動後に、前記連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせ、
前記復元処理部は、
再起動後の前記異常終了アプリケーションプログラムの状態を、前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された異常終了の前の状態に変更する請求項1に記載の情報処理装置。 - 前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動前に、前記連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせ、
前記復元処理部は、
前記異常終了アプリケーションプログラムを再起動するとともに、再起動後の前記異常終了アプリケーションプログラムの状態を、前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された異常終了の前の状態に変更する請求項1に記載の情報処理装置。 - 前記復元処理部は、
前記連携アプリケーションプログラムから前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態として通知された、前記連携アプリケーションプログラムの現在の状態に対応する前記異常終了アプリケーションプログラムの状態を復元する請求項1に記載の情報処理装置。 - 複数のアプリケーションプログラムを実行するコンピュータが、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせ、
問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する情報処理方法。 - 複数のアプリケーションプログラムを実行するコンピュータに、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせる問合せ処理と、
前記問合せ処理による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する復元処理とを実行させる情報処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015550888A JP6023898B1 (ja) | 2015-04-17 | 2015-04-17 | 情報処理装置及び情報処理方法及び情報処理プログラム |
PCT/JP2015/061909 WO2016166900A1 (ja) | 2015-04-17 | 2015-04-17 | 情報処理装置及び情報処理方法及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/061909 WO2016166900A1 (ja) | 2015-04-17 | 2015-04-17 | 情報処理装置及び情報処理方法及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016166900A1 true WO2016166900A1 (ja) | 2016-10-20 |
Family
ID=57125719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/061909 WO2016166900A1 (ja) | 2015-04-17 | 2015-04-17 | 情報処理装置及び情報処理方法及び情報処理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6023898B1 (ja) |
WO (1) | WO2016166900A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835961A (zh) * | 2021-09-23 | 2021-12-24 | 中国联合网络通信集团有限公司 | 告警信息监控方法、装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332734A (ja) * | 1993-05-24 | 1994-12-02 | Nec Corp | システム稼動維持方式 |
JPH0830473A (ja) * | 1994-07-12 | 1996-02-02 | Hitachi Ltd | プロセス復旧方法 |
JP2007133863A (ja) * | 2006-10-13 | 2007-05-31 | Nippon Telegr & Teleph Corp <Ntt> | サーバ再開方法、サーバ再開装置、サーバ再開プログラム |
JP2007226547A (ja) * | 2006-02-23 | 2007-09-06 | Yokogawa Electric Corp | 分散コンピューティングシステム |
JP2014142741A (ja) * | 2013-01-23 | 2014-08-07 | Chugoku Electric Power Co Inc:The | ジョブ再実行支援システム |
-
2015
- 2015-04-17 WO PCT/JP2015/061909 patent/WO2016166900A1/ja active Application Filing
- 2015-04-17 JP JP2015550888A patent/JP6023898B1/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332734A (ja) * | 1993-05-24 | 1994-12-02 | Nec Corp | システム稼動維持方式 |
JPH0830473A (ja) * | 1994-07-12 | 1996-02-02 | Hitachi Ltd | プロセス復旧方法 |
JP2007226547A (ja) * | 2006-02-23 | 2007-09-06 | Yokogawa Electric Corp | 分散コンピューティングシステム |
JP2007133863A (ja) * | 2006-10-13 | 2007-05-31 | Nippon Telegr & Teleph Corp <Ntt> | サーバ再開方法、サーバ再開装置、サーバ再開プログラム |
JP2014142741A (ja) * | 2013-01-23 | 2014-08-07 | Chugoku Electric Power Co Inc:The | ジョブ再実行支援システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835961A (zh) * | 2021-09-23 | 2021-12-24 | 中国联合网络通信集团有限公司 | 告警信息监控方法、装置、服务器及存储介质 |
CN113835961B (zh) * | 2021-09-23 | 2023-05-16 | 中国联合网络通信集团有限公司 | 告警信息监控方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2016166900A1 (ja) | 2017-04-27 |
JP6023898B1 (ja) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9471435B2 (en) | Information processing device, information processing method, and computer program | |
US7975188B2 (en) | Restoration device for BIOS stall failures and method and computer program product for the same | |
US9946553B2 (en) | BMC firmware recovery | |
US9229815B2 (en) | Information processing apparatus, program update method, and program | |
JP5183542B2 (ja) | 計算機システム及び設定管理方法 | |
CN109144776B (zh) | 虚拟机镜像文件处理方法及装置 | |
CN109361542B (zh) | 客户端的故障处理方法、装置、***、终端和服务器 | |
US11704198B2 (en) | Method and apparatus for providing recovery from a computing device boot up error | |
WO2012149774A1 (zh) | 一种处理器启动方法及装置 | |
US20150269029A1 (en) | Immediate Recovery of an Application from File Based Backups | |
CN116266150A (zh) | 一种业务恢复方法、数据处理单元及相关设备 | |
JP6023898B1 (ja) | 情報処理装置及び情報処理方法及び情報処理プログラム | |
CN115904793B (zh) | 一种基于多核异构***的内存转存方法、***及芯片 | |
WO2011158367A1 (ja) | 実行中のプログラムの更新技術 | |
JP2011053780A (ja) | 復旧システム、復旧方法及びバックアップ制御システム | |
JP2014179039A (ja) | 情報処理装置、情報処理方法及びプログラム | |
US20190227865A1 (en) | Information processing device and information processing method | |
EP3159795B1 (en) | Image forming apparatus that ensures operation while hdd is inoperative, and recording medium therefor | |
WO2014147707A1 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP5944017B2 (ja) | 情報処理装置およびプログラム | |
JP6364773B2 (ja) | 情報処理装置、情報処理システム、メモリレプリケーション方法、並びにコンピュータ・プログラム | |
CN113641556B (zh) | 用于保障汽车仪表稳定运行的***、方法、装置、处理器及其计算机可读存储介质 | |
JP2010102441A (ja) | 情報処理装置、情報処理プログラム | |
JP5791524B2 (ja) | Os動作装置及びos動作プログラム | |
JP2007249382A (ja) | コンピュータシステムおよびその障害時の復旧方法ならびにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2015550888 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15889237 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15889237 Country of ref document: EP Kind code of ref document: A1 |