(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムが実行される情報処理装置であって、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムの現在のプログラム遷移状態に基づいて、前記異常終了アプリケーションプログラムの複数の状態のうち前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定する問合せ処理部と、
前記問合せ処理部により判定された、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を復元する復元処理部と有する情報処理装置。
【請求項２】
前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動前に、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定し、
前記復元処理部は、
再起動後の前記異常終了アプリケーションプログラムの状態が、前記問合せ処理部により判定された異常終了の直前の状態となるように、前記異常終了アプリケーションプログラムを再起動する請求項１に記載の情報処理装置。
【請求項３】
前記復元処理部は、
前記異常終了アプリケーションプログラムのスナップショットイメージを用いて、再起動後の前記異常終了アプリケーションプログラムの状態が、前記問合せ処理部により判定された異常終了の直前の状態となるように、前記異常終了アプリケーションプログラムを再起動する請求項２に記載の情報処理装置。
【請求項４】
前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動後に、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定し、
前記復元処理部は、
再起動後の前記異常終了アプリケーションプログラムの状態を、前記問合せ処理部により判定された異常終了の直前の状態に変更する請求項１に記載の情報処理装置。
【請求項５】
前記問合せ処理部は、
前記異常終了アプリケーションプログラムの再起動前に、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定し、
前記復元処理部は、
前記異常終了アプリケーションプログラムを再起動するとともに、再起動後の前記異常終了アプリケーションプログラムの状態を、前記問合せ処理部により判定された異常終了の直前の状態に変更する請求項１に記載の情報処理装置。
【請求項６】
複数のアプリケーションプログラムを実行するコンピュータが、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムの現在のプログラム遷移状態に基づいて、前記異常終了アプリケーションプログラムの複数の状態のうち前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定し、
判定した、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を復元する情報処理方法。
【請求項７】
複数のアプリケーションプログラムを実行するコンピュータに、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムの現在のプログラム遷移状態に基づいて、前記異常終了アプリケーションプログラムの複数の状態のうち前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を判定する問合せ処理と、
前記問合せ処理により判定された、前記異常終了アプリケーションプログラムが異常終了する直前の前記異常終了アプリケーションプログラムの状態を復元する復元処理とを実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム（以下、単にアプリケーションともいう）が異常終了した際の復旧処理に関する。
【背景技術】
【０００２】
カーナビゲーションシステム等の組込システムでは、様々なアプリケーションが複雑に動作する。
このような組込システムでは、アプリケーションに障害が発生した際に高速に復旧処理を行うことが必要である。
特許文献１では、アプリケーションの状態に関する情報を集中管理し、集中管理した情報を復旧時に利用することによって高速な障害復旧を行う方法が開示されている。
また、特許文献２では、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の状態をイメージ化したスナップショットイメージを用いることによって高速な障害復旧を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３４２０９５号公報
【特許文献２】特開２００９−１８７１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の方法では、集中管理を行う管理アプリケーションもしくは管理サービスに障害が発生した場合は、復旧対象のアプリケーションの障害復旧を行うことができないという課題がある。【０００５】
特許文献２の方法では、集中管理は行われないので、特許文献１の課題は生じない。
しかしながら、特許文献２の方法では、障害が発生したアプリケーションは、スナップショットイメージが取得された時点の状態で復旧される。
このため、複数のアプリケーションが密結合している場合は、アプリケーション間で状態の不整合が発生するため、復旧対象アプリケーションと復旧対象アプリケーション以外のアプリケーションとの整合性をとる必要があるという課題がある。【０００６】
この発明は上記のような課題を解決することを主な目的としており、複数のアプリケーションが密結合している場合でも、異常終了したアプリケーションの復旧を高速にできるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
複数のアプリケーションプログラムが実行される情報処理装置であって、
いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を問い合わせる問合せ処理部と、
前記問合せ処理部による問い合わせに対して前記連携アプリケーションプログラムから通知された、前記異常終了アプリケーションプログラムが異常終了する前の前記異常終了アプリケーションプログラムの状態を復元する復元処理部と有する。
【発明の効果】
【０００８】
本発明では、連携アプリケーションプログラムに、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を問い合わせ、連携アプリケーションプログラムから通知された、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を復元する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る情報処理装置のハードウェア構成例を示す図。
【図２】実施の形態１に係る情報処理装置のソフトウェア構成例を示す図。
【図３】実施の形態１に係るＲＯＭの記憶内容の例を示す図。
【図４】実施の形態１に係るアプリケーション（１）が状態ＡであるときのＲＡＭの記憶内容の例を示す図。
【図５】実施の形態１に係るアプリケーション（１）が状態ＢであるときのＲＡＭの記憶内容の例を示す図。
【図６】実施の形態１に係るアプリケーション（１）が状態ＣであるときのＲＡＭの記憶内容の例を示す図。
【図７】実施の形態１に係るアプリケーション（１）のスナップショットイメージの例を示す図。
【図８】実施の形態１に係るアプリケーション（１）のスナップショット差分イメージの例を示す図。
【図９】実施の形態１に係るアプリケーションの機能モジュール構成例を示す図。
【図１０】実施の形態１に係るアプリケーション（１）の状態関係情報の例を示す図。
【図１１】実施の形態１に係るアプリケーション（２）の状態関係情報の例を示す図。
【図１２】実施の形態１に係るアプリケーション（０）の子プロセス連携アプリケーション情報の例を示す図。
【図１３】実施の形態１に係るアプリケーション（０）の処理例を示すフローチャート図。
【図１４】実施の形態１に係るアプリケーション（２）の処理例を示すフローチャート図。
【図１５】実施の形態２に係る情報処理装置のソフトウェア構成例を示す図。
【図１６】実施の形態２に係るＲＯＭの記憶内容の例を示す図。
【図１７】実施の形態２に係るアプリケーションの機能モジュール構成例を示す図。
【図１８】実施の形態２に係るアプリケーション（１）の状態関係情報の例を示す図。
【図１９】実施の形態２に係るアプリケーション（０）の処理例を示すフローチャート図。
【図２０】実施の形態２に係るアプリケーション（１）の処理例を示すフローチャート図。
【図２１】実施の形態３に係るアプリケーションの機能モジュール構成例を示す図。
【図２２】実施の形態３に係るアプリケーション（０）の処理例を示すフローチャート図。
【図２３】実施の形態３に係るアプリケーション（１）の処理例を示すフローチャート図。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る情報処理装置１００のハードウェア構成例を示す。
【００１１】
図１において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＮＯＲ  Ｆｌａｓｈ型のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＮＡＮＤ  Ｆｌａｓｈ型のＲＯＭ１０３、ＲＡＭ１０４、各種Ｉ／Ｆ（Ｉｎｆｅｒｆａｃｅ）１０５を備える。
【００１２】
ＣＰＵ１０１は、情報処理装置１００の制御を行う演算装置（演算回路）である。
ＮＯＲ  Ｆｌａｓｈ型のＲＯＭ１０２は、情報処理装置１００が起動直後に実行するためのプログラムであるブートローダや設定情報等が格納される不揮発性記録装置である。
ＮＡＮＤ  Ｆｌａｓｈ型のＲＯＭ１０３は、ＳＤ（登録商標）カードやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）等の、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及びアプリケーション、スナップショットイメージを格納する不揮発性記憶装置である。
ＮＡＮＤ  Ｆｌａｓｈ型のＲＯＭのかわりにＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を用いてもよいし、ＮＡＮＤ  Ｆｌａｓｈ型のＲＯＭとＨＤＤの双方を用いてもよい。
【００１３】
図２は、本実施の形態に係る情報処理装置１００のソフトウェア構成例を示す。
情報処理装置１００では、複数のアプリケーションとＯＳが実行される。
図２において、情報処理装置１００は、ＯＳ１１０、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３を備える。
以下では、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３を区別する必要がない場合は、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３をまとめて、アプリケーションという。
ＯＳ１１０は、スナップショット取得部１１４と、スナップショットロード部１１５とを備える。
スナップショット取得部１１４は、アプリケーションの状態を表すＲＡＭ１０４のイメージデータであるスナップショットイメージ及びスナップショット差分イメージを取得し、取得したスナップショットイメージ及びスナップショット差分イメージをＲＯＭ１０３に格納する。
スナップショットロード部１１５は、ＲＯＭ１０３からスナップショットイメージ及びスナップショット差分イメージをＲＡＭ１０４にロードする。
【００１４】
図３は、本実施の形態に係るＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３に格納されているデータの例を示す。
図３に示すように、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３はプログラム１２１、スナップショットイメージ１２２、各アプリケーションのスナップショット差分イメージ１２３を記憶する。
プログラム１２１はプログラムコードである。
図３に示すように、ＲＯＭ１０３には、アプリケーション（０）１１１のプログラムコード、アプリケーション（１）１１２のプログラムコード、アプリケーション（２）１１３のプログラムコード、ＯＳ１１０のプログラムコードが格納されている。
また、スナップショットイメージ１２２は、各アプリケーション及びＯＳ１１０の初期状態のスナップショットイメージである。
スナップショット差分イメージ１２３は、各アプリケーション及びＯＳ１１０の初期状態からの差分を示すスナップショットイメージである。
スナップショット取得部１１４は、各アプリケーション及びＯＳ１１０の起動時に、初期状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショットイメージ１２２としてＲＯＭ１０３に格納する。
また、スナップショット取得部１１４は、各アプリケーション及びＯＳ１１０において状態が遷移する度に、遷移後の状態のスナップショットイメージを取得し、取得したスナップショットイメージをスナップショット差分イメージ１２３としてＲＯＭ１０３に格納する。
なお、図３では、説明の便宜上、アプリケーション（１）１１２のスナップショット差分イメージ１２３のみを図示しているが、アプリケーション（０）１１１、アプリケーション（２）１１３及びＯＳ１１０についてもスナップショット差分イメージ１２３がＲＯＭ１０３に格納されている。
【００１５】
図４は、本実施の形態に係るアプリケーション（１）１１２の起動時にＲＡＭ１０４に展開されるデータの例を示す。
アプリケーション（１）１１２の初期状態は状態Ａである。
図４において、ＲＡＭ領域１３１及びＲＡＭ領域１３２は、アプリケーション（１）１１２の実行時に使用されるＲＡＭ領域である。
ＲＡＭ領域１３１には、状態Ａのアプリケーション（１）１１２のプログラムコードが展開されている。
ＲＡＭ領域１３２には、状態Ａのアプリケーション（１）１１２に利用されるデータ（Ｄａｔａ：ａ）がロードされている。
ＲＡＭ領域１３３は、アプリケーション２の動作時に使用されるＲＡＭ領域である。
ＲＡＭ領域１３３には、アプリケーション（２）１１３のプログラムコードが展開されている。
アドレス１３４は、ＲＡＭ１０４に設定されているアドレスである。
なお、図４では図示を省略しているが、アプリケーション（０）１１１及びＯＳ１１０もＲＡＭ１０４にプログラムコード及び必要なデータがロードされている。
【００１６】
図５は、アプリケーション（１）１１２が状態Ｂとなった際にＲＡＭ１０４に展開されるデータの例を示す。
図５では、状態Ｂのアプリケーション（１）１１２のプログラムコードがＲＡＭ領域１３５に展開されている。
【００１７】
図６は、アプリケーション（１）１１２が状態Ｃとなった際にＲＡＭ１０４に展開されるデータの例を示す。
図６では、状態Ｃのアプリケーション（１）１１２に利用されるデータ（Ｄａｔａ：ｃ）がＲＡＭ領域１３６に展開されている。
【００１８】
図７は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３に格納する、アプリケーション（１）１１２のスナップショットイメージの例を示す。
図７は、初期状態（状態Ａ）のアプリケーション（１）１１２のスナップショットイメージである。
なお、ＲＯＭ１０３には、アプリケーション（０）１１１、アプリケーション（２）１１３及びＯＳ１１０のスナップショットイメージも格納されている。
【００１９】
図８は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３に格納する、アプリケーション（１）１１２のスナップショット差分イメージの例を示す。
図８は、状態Ｂ及び状態Ｃのアプリケーション（１）１１２のスナップショット差分イメージである。
なお、ＲＯＭ１０３には、アプリケーション（０）１１１、アプリケーション（２）１１３及びＯＳ１１０のスナップショット差分イメージも格納されている。
【００２０】
図９は、アプリケーションの機能モジュール構成例を示す。
つまり、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３の各々は、図９に示す構成を備える。
【００２１】
図９において、状態関係保持部２０１は、アプリケーションの状態と、当該アプリケーションと連携して動作する連携アプリケーションプログラム（以下、単に、連携アプリケーションともいう）の状態とが示される状態関係情報を保持する。
子プロセス連携アプリケーション保持部２０２は、子プロセスに相当するアプリケーションの連携アプリケーションが示される子プロセス連携アプリケーション情報を保持する。
【００２２】
本実施の形態では、アプリケーション（０）１１１が親プロセスであり、アプリケーション（１）１１２及びアプリケーション（２）１１３がアプリケーション（０）１１１により呼び出された子プロセスであると仮定する。
また、アプリケーション（１）１１２とアプリケーション（２）１１３とが、互いに他方のアプリケーションの連携アプリケーションであると仮定する。
つまり、アプリケーション（１）１１２は、アプリケーション（２）１１３の連携アプリケーションであり、アプリケーション（２）１１３は、アプリケーション（１）１１２の連携アプリケーションである。
【００２３】
アプリケーション（１）１１２の状態関係保持部２０１は、図１０に示す状態関係情報２１０を保持している。
アプリケーション（２）１１３の状態関係保持部２０１は、図１１に示す状態関係情報２２０を保持している。
図１０の状態関係情報２１０は、アプリケーション（１）１１２の状態がＡもしくはＢの時はアプリケーション（２）１１３の状態はａであり、アプリケーション（１）１１２の状態がＣの時はアプリケーション（２）１１３の状態はｃであることを示している。
また、図１１の状態関係情報２２０は、アプリケーション（２）１１３の状態がａの時はアプリケーション（１）１１２の状態はＡもしくはＢであり、アプリケーション（２）１１３の状態がｃの時はアプリケーション（１）１１２の状態はＣであることを示している。
このように、アプリケーション（１）１１２と連携アプリケーションであるアプリケーション（２）１１３は、相互に並行して、連携しながら動作し、一方のアプリケーション（例えば、アプリケーション（１）１１２）の状態に基づいて他方のアプリケーション（例えば、アプリケーション（２）１１３）の状態を識別できる関係にある。
【００２４】
なお、アプリケーション（０）１１１に連携アプリケーションがあれば、アプリケーション（０）１１１の状態関係保持部２０１は、アプリケーション（０）１１１の状態と連携アプリケーションの状態とが関連付けられる状態関連情報を保持する。
【００２５】
アプリケーション（０）１１１の子プロセス連携アプリケーション保持部２０２は、図１２に示す子プロセス連携アプリケーション情報２３０を保持する。
図１２の子プロセス連携アプリケーション情報２３０の１行目は、アプリケーション（０）１１１の子プロセスであるアプリケーション（１）１１２の連携アプリケーションがアプリケーション（２）１１３であることを示している。
また、図１２の子プロセス連携アプリケーション情報２３０の２行目は、アプリケーション（０）１１１の子プロセスであるアプリケーション（２）１１３の連携アプリケーションがアプリケーション（１）１１２であることを示している。
【００２６】
なお、アプリケーション（１）１１２、アプリケーション（２）１１３に子プロセスがあれば、アプリケーション（１）１１２、アプリケーション（２）１１３は、子プロセスのアプリケーションと子プロセスのアプリケーションの連携アプリケーションとを関連付けて示す子プロセス連携アプリケーション情報を保持する。
【００２７】
なお、状態関係保持部２０１に保持される状態関連情報と、子プロセス連携アプリケーション保持部２０２に保持される子プロセス連携アプリケーション情報をアプリケーションが参照することを明確にするために、図９では、状態関係保持部２０１及び子プロセス連携アプリケーション保持部２０２をアプリケーションの内部要素として説明している。
状態関係保持部２０１及び子プロセス連携アプリケーション保持部２０２は、厳密には、ＲＡＭ１０４内の記憶領域であり、アプリケーションの構成要素ではない。
【００２８】
次に、図９に示す、終了判定部２０３、情報取得部２０４、問合せ処理部２０５、復元処理部２０６を説明する。
【００２９】
終了判定部２０３は、親プロセスのアプリケーションで動作する。
終了判定部２０３は、子プロセスの終了を検知した際に、子プロセスの終了が正常終了であるか異常終了であるかを判定する。
正常終了は、正規の終了手順に従ったアプリケーションの終了であり、システムシャットダウン等による終了である。
異常終了は、正規の終了手順に従わないアプリケーションの終了であり、障害発生等による終了である。
【００３０】
情報取得部２０４は、状態関係保持部２０１から状態関連情報を取得し、子プロセス連携アプリケーション保持部２０２から子プロセス連携アプリケーション情報を取得する。
より具体的には、アプリケーションが親プロセスである場合には、情報取得部２０４は、子プロセス連携アプリケーション保持部２０２から子プロセス連携アプリケーション情報を取得する。
また、他のアプリケーションから、異常終了したアプリケーション（以下、異常終了アプリケーションプログラム又は異常終了アプリケーションという）の親プロセスのアプリケーションから、問い合わせがあった場合に、情報取得部２０４は、状態関係保持部２０１から状態関連情報を取得する。
【００３１】
問合せ処理部２０５は、親プロセスのアプリケーションと子プロセスのアプリケーションで動作する。
具体的には、問合せ処理部２０５は、親プロセスのアプリケーションでは、終了判定部２０３により子プロセスのアプリケーションが異常終了したと判定された場合に、異常終了アプリケーションプログラムである子プロセスのアプリケーションの連携アプリケーションに、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を問い合わせる。
また、問合せ処理部２０５は、子プロセスのアプリケーションでは、親プロセスのアプリケーションから異常終了アプリケーションの状態の問合せがあった際に、異常終了アプリケーションの状態を親プロセスのアプリケーションに応答する。
例えば、アプリケーション（１）１１２が異常終了した場合は、親アプリケーションであるアプリケーション（０）１１１の問合せ処理部２０５は、アプリケーション（１）１１２の連携アプリケーションであるアプリケーション（２）１１３に、アプリケーション（１）１１２の異常終了前のアプリケーション（１）１１２の状態を問い合わせる。
また、アプリケーション（２）１１３の問合せ処理部２０５は、アプリケーション（０）１１１の問合せ処理部２０５からアプリケーション（１）１１２の異常終了前のアプリケーション（１）１１２の状態の問合せがあった際に、アプリケーション（１）１１２の状態をアプリケーション（０）１１１に応答する。
【００３２】
復元処理部２０６は、親プロセスであるアプリケーションで動作する。
復元処理部２０６は、問合せ処理部２０５による問い合わせに対して連携アプリケーションから通知された、子プロセスのアプリケーションが異常終了する前の子プロセスのアプリケーションの状態を復元する。
例えば、アプリケーション（１）１１２が異常終了した場合は、親プロセスであるアプリケーション（０）１１１の復元処理部２０６は、連携アプリケーションであるアプリケーション（２）１１３から通知された、アプリケーション（１）１１２の異常終了前の状態を復元する。
【００３３】
なお、情報処理装置１００はコンピュータであり、ＲＯＭ１０３に格納されているＯＳ１１０、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３がＲＡＭ１０４にロードされ、ＣＰＵ１０１に読み込まれ、ＣＰＵ１０１によって実行される。
また、ＯＳ１１０、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３の処理の結果を示す情報やデータや信号値や変数値が、ＲＯＭ１０３、ＲＡＭ１０４又はＣＰＵ１０１内のレジスタ又はキャッシュメモリに記憶される。
【００３４】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る情報処理装置１００の動作例を説明する。
【００３５】
情報処理装置１００の電源が投入され、リセットが解除されると、ＣＰＵ１０１は、ＲＯＭ（ＮＯＲ  Ｆｌａｓｈ）１０２内に格納されているブートローダを読み込み、ＯＳ１１０の起動を開始する。
この際、ＣＰＵ１０１は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３内のプログラム１２１からＯＳ１１０のプログラムコードを取得し、ＯＳ１１０のプログラムコードをＲＡＭ１０４に展開してＯＳ１１０を起動する。
【００３６】
ＯＳ１１０の起動後に、ＣＰＵ１０１は、アプリケーションの起動を行う。
この際、ＣＰＵ１０１は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３内のプログラム１２１からアプリケーション（０）１１１、アプリケーション（１）１１２及びアプリケーション（２）１１３のプログラムコードを取得し、取得したプログラムコードをＲＡＭ１０４に展開してアプリケーション（０）１１１、アプリケーション（１）１１２及びアプリケーション（２）１１３を起動する。
【００３７】
前述したように、各アプリケーションの起動直後のＲＡＭ１０４のデータ例を図４に示している。
アプリケーション（１）１１２は、起動直後は状態Ａであり、ＲＡＭ領域１３１及び１３２を用いて動作している。
また、アプリケーション（２）１１３はＲＡＭ領域１３３を用いて動作している。
状態が遷移してアプリケーション（１）１１２が状態Ｂとなった場合は、アプリケーション（１）１１２は図５に示すＲＡＭ領域１３１、１３２及び１３５を用いて動作する。
また、アプリケーション（１）１１２が状態Ｃとなった場合は、アプリケーション（１）１１２は、図６に示すＲＡＭ領域１３１及び１３６を用いて動作を行う。
【００３８】
ＯＳ１１０のスナップショット取得部１１４は、各アプリケーションにおいて状態が遷移する度にスナップショットイメージを取得する。
スナップショット取得部１１４により取得される各状態のスナップショットイメージはスナップショットイメージ１２２と各アプリケーションのスナップショット差分イメージ１２３から成る。
アプリケーション（１）１１２を例にすると、スナップショットイメージ１２２内のアプリケーション（１）スナップショットイメージ１４０は、図７に示す領域１４１及び１４２とその格納先となるアドレスデータ１４３から成る。
また、各アプリケーションスナップショット差分イメージ１２３のうちアプリケーション（１）スナップショット差分イメージ１５０では、起動直後の状態である状態Ａとの差分が記憶される。
つまり、状態Ｂの差分保存領域１５１では、差分領域１５３及びその格納先となるアドレスデータ１５４が記憶される。
また、状態Ｃの差分保存領域１５２では、差分領域１５５及びその格納先となるアドレスデータ１５６が記憶される。
【００３９】
次に、図１３及び図１４を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図１３は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図１３に示す手順は、情報処理方法及び情報処理プログラムの例に相当する。
図１４は、異常終了したアプリケーションの連携アプリケーションの動作例を示す。
以下では、アプリケーション（０）１１１が親プロセスであり、アプリケーション（１）１１２とアプリケーション（２）１１３が子プロセスであるとする。
また、アプリケーション（２）１１３は、アプリケーション（１）１１２の連携アプリケーションであるとする。
【００４０】
子プロセスのアプリケーションが終了すると、一般的に、親プロセスのアプリケーションに終了ステータスが通知される。
親プロセスのアプリケーションは、終了ステータスの受信タイミング等で子プロセスのアプリケーションが異常終了したと判定した場合に、親プロセスのアプリケーションは子プロセスのアプリケーションを再起動させる処理を行う。
終了ステータスは子プロセスが終了したタイミングで親プロセスに通知されるため、システムシャットダウン等の正常終了の場合でも終了ステータスは通知される。
このため、親プロセスのアプリケーションの終了判定部２０３は、処理５０１にて、子プロセスから通知された終了ステータスの内容を確認して、子プロセスがシステムシャットダウン等により正常終了したか、障害発生等により異常終了したかを判定する。
ここでは、子プロセスであるアプリケーション（１）１１２の終了ステータスが親プロセスであるアプリケーション（０）１１１に通知され、処理５０１にて、アプリケーション（０）１１１の終了判定部２０３がアプリケーション（１）１１２が正常終了したか異常終了したかを判定する。
【００４１】
処理５０１においてシステムシャットダウン等による正常終了であると判定された場合は、処理５０２に移行し、アプリケーション（０）１１１は、そのまま再起動処理を行わず、図１３のフローを終了する。
処理５０１においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション（１）１１２が異常終了したと判定された場合は、アプリケーション（０）１１１は、処理５０３以降の再起動処理を実施する。
【００４２】
処理５０３では、アプリケーション（０）１１１の終了判定部２０３が情報取得部２０４に子プロセス連携アプリケーション情報の取得を指示し、情報取得部２０４が子プロセス連携アプリケーション保持部２０２から、子プロセス連携アプリケーション情報を取得する。
具体的には、情報取得部２０４は、図１２に示す子プロセス連携アプリケーション情報２３０を取得する。
そして、情報取得部２０４は取得した子プロセス連携アプリケーション情報２３０を問合せ処理部２０５に転送する。
問合せ処理部２０５は、子プロセス連携アプリケーション情報２３０を参照して、アプリケーション（１）１１２の連携アプリケーションは、アプリケーション（２）１１３であることを認識する。
【００４３】
次に、処理５０４にて、問合せ処理部２０５が、連携アプリケーションであるアプリケーション（２）１１３に、異常終了した子プロセスのアプリケーション（１）１１２の異常終了の直前の状態を問い合わせる。
処理５０４の問合せは、プロセス間通信により行われる。
【００４４】
アプリケーション（２）１１３は、被問い合わせ側の処理として、図１４のフローを実施する。
アプリケーション（２）１１３の問合せ処理部２０５が、処理５１０にてアプリケーション（０）１１１からの問い合わせを受け、処理５１１にてアプリケーション（２）１１３の状態を用いてアプリケーション（１）１１２の異常終了直前の状態を確認する。
具体的には、問合せ処理部２０５は情報取得部２０４に状態関係情報の取得を指示する。
情報取得部２０４は、状態関係保持部２０１から、図１１の状態関係情報２２０を取得する。
問合せ処理部２０５は、状態関係情報２２０を参照して、アプリケーション（２）１１３の現在の状態に対応するアプリケーション（１）１１２の状態を判定する。
例えば、アプリケーション（２）１１３の現在の状態がｃであれば、アプリケーション（１）１１２の異常終了の直前の状態は状態Ｃであると判定する。
次に、処理５１２にて、問合せ処理部２０５は、アプリケーション（０）１１１に対して、アプリケーション（１）１１２の異常終了の直前の状態を通知する。
処理５１２の通知は、プロセス間通信により行われる。
【００４５】
次に、親プロセスであるアプリケーション（０）１１１の説明に戻る。
アプリケーション（０）１１１の問合せ処理部２０５は、処理５０４に対する図１４に示す処理５１２の通知を受信すると、受信した通知を復元処理部２０６に転送する。
復元処理部２０６は、処理５０５にて、アプリケーション（２）１１３から通知された状態となるよう、スナップショットイメージをＲＡＭ１０４上に展開し、子プロセスのアプリケーションを再起動する。
アプリケーション（２）１１３から、問合せ応答として、状態Ｃが通知された場合は、復元処理部２０６は、スナップショットロード部１１５をコールし、スナップショットロード部１１５に図７のアプリケーション（１）スナップショットイメージ１４０と図８のアプリケーション（１）スナップショット差分イメージの内の状態Ｃの差分保存領域１５２をＲＡＭ１０４に展開させる。
この結果、ＲＡＭ１０４には、アプリケーション（１）１１２について図６に示す状態が再現され、アプリケーション（１）１１２の再起動時にアプリケーション（１）１１２の異常終了の直前の状態が復元される。
【００４６】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、親プロセスのアプリケーションが、異常終了アプリケーションの再起動前に、異常終了アプリケーションの異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、異常終了アプリケーションを再起動する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
【００４７】
また、本実施の形態は、特許文献１のように、アプリケーションの状態を集中管理する方式ではないため、集中管理を行っているシステムで障害が発生した場合にアプリケーションの復旧が不可能になるという問題は発生しない。
【００４８】
また、特許文献１の方法では、アプリケーションの暴走等によって誤った情報が、集中管理を行っているシステムに登録されることにより異常終了したアプリケーションの復旧が不能もしくは復旧後に同一の障害が当該アプリケーションに発生する可能性もある。
本実施の形態では、予め定義されている連携アプリケーション間の状態の対応関係を用いて、異常終了アプリケーションの異常終了直前の状態を導出するため、特許文献１のような問題は発生しない。
【００４９】
実施の形態２．
実施の形態１では、スナップショットイメージを用いて異常終了アプリケーションの復旧を行っているが、本実施の形態では、スナップショットイメージを用いずに、異常終了アプリケーションの復旧を行う例を説明する。
【００５０】
＊＊＊構成の説明＊＊＊
図１５は、本実施の形態に係る情報処理装置１００のソフトウェア構成例を示す。
図１５に示すように、本実施の形態では、ＯＳ１１０にはスナップショット取得部１１４とスナップショットロード部１１５が含まれていない。
なお、図１５において、アプリケーション（０）１１１、アプリケーション（１）１１２、アプリケーション（２）１１３は、図２に示したものと同様であり、説明を省略する。
また、本実施の形態に係る情報処理装置１００のハードウェア構成例は、図１に示したものと同様である。
【００５１】
図１６は、本実施の形態に係るＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３に格納されるデータの例を示す。
図１６に示すように、本実施の形態では、ＲＯＭ１０３には、図３に示したスナップショットイメージ１２２及びスナップショット差分イメージ１２３は記憶されない。
本実施の形態では、ＲＯＭ１０３には、図３のプログラム１２１に相当するプログラム６０１のみが記憶される。
【００５２】
図１７は、本実施の形態に係るアプリケーションの機能モジュール構成例を示す。
【００５３】
状態関係保持部２０１は、実施の形態１で説明したものと同じである。
つまり、アプリケーション（１）１１２の状態関係保持部２０１は、図１０の状態関係情報２１０を保持する。
また、アプリケーション（２）１１３の状態関係保持部２０１は、図１１の状態関係情報２２０を保持する。
【００５４】
終了判定部２０３も、実施の形態１で説明したものと同じである。
【００５５】
連携アプリケーション保持部６１１は、図１８に例示する連携アプリケーション情報６２０を保持する。
図１８は、アプリケーション（１）１１２の連携アプリケーション保持部６１１が保持する連携アプリケーション情報６２０を示す。
連携アプリケーション情報６２０には、アプリケーション（１）１１２の連携アプリケーションであるアプリケーション（２）１１３が記述されている。
【００５６】
起動指示部６１２は、親プロセスのアプリケーションで動作する。
起動指示部６１２は、子プロセスのアプリケーションが異常終了した場合に、子プロセスのアプリケーションに起動を指示する。
【００５７】
起動判定部６１３は、子プロセスのアプリケーションで動作する。
起動判定部６１３は、子プロセスのアプリケーションの起動の形態が、通常起動であるか復旧起動であるかを判定する。
通常起動は、通常のルーティンに従った起動の形態である。
復旧起動は、連携アプリケーションへの状態の問合せが必要な起動の形態である。
【００５８】
情報取得部６１４は、状態関係保持部２０１から状態関係情報を取得し、また、連携アプリケーション保持部６１１から連携アプリケーション情報を取得する。
【００５９】
問合せ処理部６１５は、再起動した異常終了アプリケーションと、再起動した異常終了アプリケーションの連携アプリケーションで動作する。
具体的には、問合せ処理部６１５は、再起動した異常終了アプリケーションでは、連携アプリケーションに、異常終了アプリケーションが異常終了する直前の異常終了アプリケーションの状態を問い合わせる。
また、問合せ処理部６１５は、連携アプリケーションでは、異常終了アプリケーションから状態の問合せがあった際に、異常終了アプリケーションの異常終了の直前の状態を異常終了アプリケーションに応答する。
【００６０】
復元処理部６１６は、再起動した異常終了アプリケーションで動作する。
復元処理部６１６は、再起動後の異常終了アプリケーションの状態を、連携アプリケーションから通知された異常終了の直前の状態に変更する。
【００６１】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る情報処理装置１００の動作例を説明する。
【００６２】
情報処理装置１００の電源が投入され、リセットが解除されると、ＣＰＵ１０１は、ＲＯＭ（ＮＯＲ  Ｆｌａｓｈ）１０２内に格納されているブートローダを読み込み、ＯＳの起動を開始する。
この際、ＣＰＵ１０１は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３内のプログラム６０１からＯＳのプログラムコードを取得し、ＯＳのプログラムコードをＲＡＭ１０４に展開してＯＳ１１０を起動する。
【００６３】
ＯＳ１１０の起動後に、ＣＰＵ１０１は、アプリケーションの起動を行う。
この際、ＣＰＵ１０１は、ＲＯＭ（ＮＡＮＤ  Ｆｌａｓｈ）１０３内のプログラム６０１からアプリケーション（０）１１１、アプリケーション（１）１１２及びアプリケーション（２）１１３のプログラムコードを取得し、取得したプログラムコードをＲＡＭ１０４に展開してアプリケーション（０）１１１、アプリケーション（１）１１２及びアプリケーション（２）１１３を起動する。
【００６４】
次に、図１９及び図２０を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図１９は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図２０は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション（０）１１１が親プロセスであり、アプリケーション（１）１１２とアプリケーション（２）１１３が子プロセスであるとする。
また、アプリケーション（２）１１３は、アプリケーション（１）１１２の連携アプリケーションであるとする。
【００６５】
親プロセスであるアプリケーション（０）１１１に、子プロセスであるアプリケーション（１）１１２の終了ステータスが通知されると、処理６３１にて、アプリケーション（０）１１１の終了判定部２０３がアプリケーション（１）１１２が正常終了したか異常終了したかを判定する。
【００６６】
処理６３１においてシステムシャットダウン等による正常終了であると判定された場合は、処理６３２に移行し、アプリケーション（０）１１１は、そのまま再起動処理を行わず、図１９のフローを終了する。
処理６３１においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション（１）１１２が異常終了したと判定された場合は、起動指示部６１２が、アプリケーション（１）１１２に復旧起動を指示する。
復旧起動の指示方法は、例えばパラメータ渡しによる方法が考えられる。
【００６７】
起動が指示されたアプリケーション（１）１１２は、図２０のフローに従って動作する。
つまり、処理６４１において、ＣＰＵ１０１によりアプリケーション（１）１１２が起動される。
そして、起動されたアプリケーション（１）１１２では、起動判定部６１３が、処理６４２にて、処理６４１の起動形態が通常起動であるか、復旧起動であるかを判定する。
起動判定部６１３により処理６４１の起動形態が通常起動であると判定された場合は、処理６４３にて、アプリケーション（１）１１２では、通常起動に後続する処理を実施する。
通常起動に後続する処理は任意の処理であり、本実施の形態では詳細は記載しない。
【００６８】
一方、処理６４２にて起動判定部６１３により処理６４１の起動形態が復旧起動であると判定された場合は、処理６４４にて、起動判定部６１３が情報取得部６１４に連携アプリケーション情報の取得を指示し、情報取得部６１４が連携アプリケーション保持部６１１から、連携アプリケーション情報を取得する。
具体的には、情報取得部６１４は、図１８に示す連携アプリケーション情報６２０を取得する。
そして、情報取得部６１４は取得した連携アプリケーション情報６２０を問合せ処理部６１５に転送する。
問合せ処理部６１５は、連携アプリケーション情報６２０を参照して、アプリケーション（１）１１２の連携アプリケーションは、アプリケーション（２）１１３であることを認識する。
【００６９】
次に、処理６４５にて、問合せ処理部６１５が、連携アプリケーションであるアプリケーション（２）１１３に、アプリケーション（１）１１２の異常終了の直前の状態を問い合わせる。
処理６４５の問合せは、プロセス間通信により行われる。
【００７０】
アプリケーション（２）１１３は、被問い合わせ側の処理として、図１４のフローを実施する。
図１４のフローは実施の形態１で説明した通りなので、説明は省略する。
ここでは、アプリケーション（２）１１３は、アプリケーション（１）１１２の異常終了の直前の状態として、状態Ｃをアプリケーション（１）１１２に通知するものとする。
【００７１】
アプリケーション（１）１１２の問合せ処理部６１５は、処理６４５に対する図１４に示す処理５１２の通知を受信すると、受信した通知を復元処理部６１６に転送する。
復元処理部６１６は、処理６４６にて、アプリケーション（２）１１３から通知された状態となるよう、アプリケーション（１）１１２の状態を変更する。
アプリケーション（２）１１３から、問合せ応答として、状態Ｃが通知された場合は、復元処理部６１６は、アプリケーション（１）１１２の状態を状態Ｃに遷移させる。
この結果、ＲＡＭ１０４には、アプリケーション（１）１１２について図６に示す状態が再現され、アプリケーション（１）１１２の異常終了の直前の状態が復元される。
【００７２】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、アプリケーションの状態を連携アプリケーション間で把握し、あるアプリケーションが異常終了した場合に、異常終了アプリケーションが再起動した後に、再起動後の異常終了アプリケーションが、異常終了の直前の状態を連携アプリケーションに問い合わせ、連携アプリケーションから通知された異常終了の直前の状態となるように、再起動後の異常終了アプリケーションの状態を変更する。
従って、複数のアプリケーションが密結合している場合でも、異常終了アプリケーションと連携アプリケーションとの間で状態の不整合が発生せず、異常終了アプリケーションと連携アプリケーションとの間で状態の整合をとる処理が不要のため、異常終了アプリケーションの復旧を高速に行うことができる。
更に、本実施の形態ではスナップショットイメージを用いないため、スナップショットイメージを保存する領域を削減できるという効果が得られる。
【００７３】
実施の形態３．
実施の形態では、異常終了アプリケーションの再起動前に、親プロセスのアプリケーションが連携アプリケーションに状態の問合せを行い、異常終了アプリケーションを通常起動させ、通常起動した後の異常終了アプリケーションが、通常起動した後の異常終了アプリケーションの状態を連携アプリケーションから通知された状態に変更する例を説明する。
【００７４】
＊＊＊構成の説明＊＊＊
なお、本実施の形態に係る情報処理装置１００のハードウェア構成例は図１に示したものと同様である。
また、本実施の形態に係るソフトウェア構成例は図１５に示したものと同様である。
本実施の形態に係るアプリケーションの機能モジュール構成例は図２１に示す通りである。
図２１において、状態関係保持部２０１、子プロセス連携アプリケーション保持部２０２、終了判定部２０３は図９に示したものと同様である。
また、図２１において、起動指示部６１２、起動判定部６１３、情報取得部６１４、問合せ処理部６１５、復元処理部６１６は、図１７に示したものと同様である。
【００７５】
＊＊＊動作の説明＊＊＊
次に、図２２及び図２３を参照して、子プロセスのアプリケーションが異常終了した際の動作例を説明する。
図２２は、子プロセスのアプリケーションが異常終了した際の親プロセスのアプリケーションの動作例を示す。
図２３は、異常終了した子プロセスのアプリケーションが再起動した後の動作例を示す。
なお、本実施の形態でも、アプリケーション（０）１１１が親プロセスであり、アプリケーション（１）１１２とアプリケーション（２）１１３が子プロセスであるとする。
また、アプリケーション（２）１１３は、アプリケーション（１）１１２の連携アプリケーションであるとする。
【００７６】
親プロセスであるアプリケーション（０）１１１に、子プロセスであるアプリケーション（１）１１２の終了ステータスが通知されると、処理５０１にて、アプリケーション（０）１１１の終了判定部２０３がアプリケーション（１）１１２が正常終了したか異常終了したかを判定する。
【００７７】
処理５０１においてシステムシャットダウン等による正常終了であると判定された場合は、処理５０２に移行し、アプリケーション（０）１１１は、そのまま再起動処理を行わず、図２２のフローを終了する。
処理５０１においてシステムシャットダウン等による正常終了ではないと判定された場合、つまり、アプリケーション（１）１１２が異常終了したと判定された場合は、アプリケーション（０）１１１は、処理５０３以降の再起動処理を実施する。
【００７８】
処理５０３は、図１３の処理５０３と同じである。
すなわち、処理５０３において、アプリケーション（０）１１１の終了判定部２０３が情報取得部６１４に子プロセス連携アプリケーション情報の取得を指示し、情報取得部６１４が子プロセス連携アプリケーション保持部２０２から、子プロセス連携アプリケーション情報を取得する。
そして、情報取得部６１４は取得した子プロセス連携アプリケーション情報２３０を問合せ処理部６１５に転送する。
問合せ処理部６１５は、子プロセス連携アプリケーション情報２３０を参照して、アプリケーション（１）１１２の連携アプリケーションは、アプリケーション（２）１１３であることを認識する。
【００７９】
また、処理５０４も図１３の処理５０４と同じである。
つまり、処理５０４にて、問合せ処理部６１５が、連携アプリケーションであるアプリケーション（２）１１３に、異常終了した子プロセスのアプリケーション（１）１１２の異常終了の直前の状態を問い合わせる。
【００８０】
アプリケーション（２）１１３は、被問い合わせ側の処理として、図１４のフローを実施する。
図１４のフローは実施の形態１で説明した通りなので、説明は省略する。
ここでは、アプリケーション（２）１１３は、アプリケーション（１）１１２の異常終了の直前の状態として、状態Ｃをアプリケーション（０）１１１に通知するものとする。
【００８１】
アプリケーション（０）１１１の問合せ処理部６１５は、処理５０４に対する図１４に示す処理５１２の通知を受信すると、受信した通知を起動指示部６１２に転送する。
起動指示部６１２は、処理５０７にて、子プロセスのアプリケーションであるアプリケーション（１）１１２に通常起動を指示し、更に、アプリケーション（１）１１２にアプリケーション（２）１１３から通知された状態（状態Ｃ）を通知する。
【００８２】
起動が指示されたアプリケーション（１）１１２は、図２３のフローに従って動作する。
つまり、処理６４１において、ＣＰＵ１０１によりアプリケーション（１）１１２が起動される。
そして、起動されたアプリケーション（１）１１２では、起動判定部６１３が、処理６４７にて、親プロセスであるアプリケーション（０）１１１から状態が通知されているか否かを判定する。
アプリケーション（０）１１１から状態が通知されていない場合は、処理６４３にて、アプリケーション（１）１１２では、通常起動に後続する処理を実施する。
一方、アプリケーション（０）１１１から状態が通知されている場合は、起動判定部６１３はアプリケーション（０）１１１から通知された状態を復元処理部６１６に通知する。
そして、復元処理部６１６は、処理６４８にて、アプリケーション（０）１１１から通知された状態となるよう、アプリケーション（１）１１２の状態を変更する。
アプリケーション（０）１１１から、問合せ応答として、状態Ｃが通知された場合は、復元処理部６１６は、アプリケーション（１）１１２の状態を状態Ｃに遷移させる。
この結果、ＲＡＭ１０４には、アプリケーション（１）１１２について図６に示す状態が再現され、アプリケーション（１）１１２の異常終了の直前の状態が復元される。
【００８３】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態においても、実施の形態２と同様の効果が得られる。
【００８４】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８５】
１００  情報処理装置、１０１  ＣＰＵ、１０２  ＲＯＭ、１０３  ＲＯＭ、１０４  ＲＡＭ、１０５  各種Ｉ／Ｆ、１１０  ＯＳ、１１１  アプリケーション（０）、１１２  アプリケーション（１）、１１３  アプリケーション（２）、１１４  スナップショット取得部、１１５  スナップショットロード部、２０１  状態関係保持部、２０２  子プロセス連携アプリケーション保持部、２０３  終了判定部、２０４  情報取得部、２０５  問合せ処理部、２０６  復元処理部、６１２  起動指示部、６１３  起動判定部、６１４  情報取得部、６１５  問合せ処理部、６１６  復元処理部。
【要約】
問合せ処理部（２０５）は、いずれかのアプリケーションプログラムが異常終了した場合に、異常終了した異常終了アプリケーションプログラムと連携して動作していた連携アプリケーションプログラムに、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を問い合わせる。復元処理部（２０６）は、問合せ処理部（２０５）による問い合わせに対して連携アプリケーションプログラムから通知された、異常終了アプリケーションプログラムが異常終了する前の異常終了アプリケーションプログラムの状態を復元する。【図１】
0006023898.tif 000002
【図２】
0006023898.tif 000003
【図３】
0006023898.tif 000004
【図４】
0006023898.tif 000005
【図５】
0006023898.tif 000006
【図６】
0006023898.tif 000007
【図７】
0006023898.tif 000008
【図８】
0006023898.tif 000009
【図９】
0006023898.tif 000010
【図１０】
0006023898.tif 000011
【図１１】
0006023898.tif 000012
【図１２】
0006023898.tif 000013
【図１３】
0006023898.tif 000014
【図１４】
0006023898.tif 000015
【図１５】
0006023898.tif 000016
【図１６】
0006023898.tif 000017
【図１７】
0006023898.tif 000018
【図１８】
0006023898.tif 000019
【図１９】
0006023898.tif 000020
【図２０】
0006023898.tif 000021
【図２１】
0006023898.tif 000022
【図２２】
0006023898.tif 000023
【図２３】
0006023898.tif 000024