(57)【要約】【課題】アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能な制御装置を提供する。【解決手段】制御装置１０は、多重化制御部１２、画面比較部１３、選択肢提示部１４及び復帰制御部１５を有する。多重化制御部１２は、情報処理装置２Ａ，２Ｂで同一のアプリケーションを実行させるように制御する。画面比較部１３は、情報処理装置２Ａ，２Ｂのそれぞれで実行されているアプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する。選択肢提示部１４は、画面表示内容が一致していない場合に、アプリケーションのユーザに対して、アプリケーションの復帰処理の選択肢を提示する。復帰制御部１５は、選択肢の提示に応じてユーザによってなされた選択に基づいて、アプリケーションの復帰を制御する。【選択図】図１
2018169841.tif 000002
【特許請求の範囲】
【請求項１】
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する制御装置。
【請求項２】
前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
請求項１に記載の制御装置。
【請求項３】
前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
請求項１又は２に記載の制御装置。
【請求項４】
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
請求項３に記載の制御装置。
【請求項５】
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
請求項３又は４に記載の制御装置。
【請求項６】
前記コンピュータは、仮想マシンによって実現される
請求項１から５のいずれか１項に記載の制御装置。
【請求項７】
前記複数のコンピュータの数は２つである
請求項１から６のいずれか１項に記載の制御装置。
【請求項８】
本番系又は待機系としてそれぞれ動作する複数のコンピュータと、
前記複数のコンピュータを制御する制御装置と
を有し、
前記制御装置は、
前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する
多重化システム。
【請求項９】
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する
多重化方法。
【請求項１０】
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップと
を前記複数のコンピュータとは別のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、多重化システム、多重化方法及びプログラムに関し、特に、アプリケーションの実行を制御する制御装置、多重化システム、多重化方法及びプログラムに関する。
【背景技術】
【０００２】
ユーザがコンピュータでアプリケーションを使用する際、ユーザの作業ファイルレベルでの冗長化は、一般に、ファイルバックアップにより行われる。しかしながら、アプリケーションにおいてファイルに保存されない作業履歴等については、メモリ上に記憶されているため、ユーザの操作ではバックアップ（二重化）することができない。このため、ハードウェア障害、オペレーティングシステム障害、又はアプリケーション障害等の異常が発生したときに、アプリケーションでの作業が中断され、アプリケーションが復旧するまで、ユーザは作業を行うことができない。また、復旧作業には時間がかかってしまう。このような問題を解決するために、フォールトトレラント技術を用いてアプリケーションを多重化（冗長化）することが考えられる。
【０００３】
この技術に関連し、特許文献１は、アプリケーションの処理を行う本番系の計算システム及び待機系の計算システムを有する多重化システムを開示する。特許文献１にかかる多重化システムは、リクエストを本番系の計算システム及び待機系の計算システムに入力し、これらの計算システムからの応答を照合することによって、動作検証を行う。照合の結果が、応答が不一致であれば、異常が発生していると判断される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／１６０６９０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１にかかる技術のように、単に応答を照合するのみでは、本番系の計算システムの応答と待機系の計算システムの応答とが異なる場合に、どちらの応答が正しいのか判断できないおそれがある。つまり、本番系の計算システムに異常が発生している場合ではなく、待機系の計算システムに異常が発生している場合であっても、システムに異常が発生していると判断され得る。このような場合に本番系の計算システムで実行されている処理が待機系の計算システムに引き継がれても、システム全体として不具合は解消できていない。したがって、特許文献１に技術では、アプリケーションの異常が発生した場合に適切にアプリケーションの復帰動作を行うことができないおそれがある。
【０００６】
本発明の目的は、このような課題を解決するためになされたものであり、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能な制御装置、多重化システム、多重化方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明にかかる制御装置は、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段とを有する。
【０００８】
また、本発明にかかる多重化システムは、本番系又は待機系としてそれぞれ動作する複数のコンピュータと、前記複数のコンピュータを制御する制御装置とを有し、前記制御装置は、前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段とを有する。
【０００９】
また、本発明にかかる多重化方法は、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する。
【００１０】
また、本発明にかかるプログラムは、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップとを前記複数のコンピュータとは別のコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能な制御装置、多重化システム、多重化方法及びプログラムを提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態にかかる多重化システムの概要を示す図である。
【図２】実施の形態１にかかる多重化システムを示す図である。
【図３】実施の形態１にかかる制御装置の構成を示す図である。
【図４】実施の形態１にかかる多重化システムによって行われる多重化方法を示すフローチャートである。
【図５】実施の形態１にかかる多重化システムによって行われる多重化方法を示すフローチャートである。
【図６】実施の形態１にかかる、多重化処理がなされた多重化システムを示す図である。
【図７】実施の形態１にかかる選択肢提示部の処理によって制御装置の入出力部に表示される選択肢表示画面を例示する図である。
【図８】実施の形態２にかかる多重化システムを示す図である。
【図９】実施の形態２にかかる多重化システムによって行われる多重化方法を示すフローチャートである。
【図１０】実施の形態２にかかる多重化システムによって行われる多重化方法を示すフローチャートである。
【図１１】実施の形態２にかかる、多重化処理がなされた多重化システムを示す図である。
【発明を実施するための形態】
【００１３】
（本発明にかかる実施の形態の概要）
本発明の実施形態の説明に先立って、本発明にかかる実施の形態の概要について説明する。図１は、本発明の実施の形態にかかる多重化システム１の概要を示す図である。
【００１４】
多重化システム１は、複数の情報処理装置２Ａ，２Ｂ及び制御装置１０を有する。制御装置１０、情報処理装置２Ａ及び情報処理装置２Ｂは、互いに、有線又は無線のネットワーク４を介して通信可能に接続されている。制御装置１０及び情報処理装置２は、プロセッサ、メモリ、通信装置等を有するコンピュータである。情報処理装置２Ａ，２Ｂは、本番系又は待機系としてそれぞれ動作するコンピュータである。
【００１５】
なお、図１には、多重化システム１が２つの情報処理装置２Ａ，２Ｂを有する例が示されているが、情報処理装置２（２Ａ，２Ｂ）の数は任意である。なお、情報処理装置２Ａ及び情報処理装置２Ｂは、物理的に別個の構成要素である必要はない。さらに、情報処理装置２Ａ及び情報処理装置２Ｂは、仮想マシン等の、１つのハードウェア上で論理的に別個に実現されたコンピュータであってもよい。つまり、情報処理装置２は、ハードウェアで構成される必要はなく、論理的な構成要素であってもよい。
【００１６】
制御装置１０は、多重化制御部１２と、画面比較部１３と、選択肢提示部１４と、復帰制御部１５とを有する。多重化制御部１２は、情報処理装置２Ａ，２Ｂで同一のアプリケーションを実行させるように制御する多重化制御手段としての機能を有する。画面比較部１３は、情報処理装置２Ａ，２Ｂのそれぞれで実行されているアプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段としての機能を有する。
【００１７】
選択肢提示部１４は、画面表示内容が一致していない場合に、アプリケーションのユーザに対して、アプリケーションの復帰処理の選択肢を提示する提示手段としての機能を有する。復帰制御部１５は、選択肢の提示に応じてユーザによってなされた選択に基づいて、アプリケーションの復帰を制御する復帰制御手段としての機能を有する。
【００１８】
本実施の形態にかかる多重化システム１は、上記のように構成されているので、複数のコンピュータで実行されているアプリケーションにかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザの選択に応じた復帰動作を行うことができる。したがって、本実施の形態にかかる多重化システム１は、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能となる。なお、制御装置１０及び制御装置１０で実行される多重化方法を用いても、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能となる。
【００１９】
（実施の形態１）
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２０】
まず、実施の形態１について説明する。
図２は、実施の形態１にかかる多重化システム５０を示す図である。多重化システム５０は、共有ディスク装置６０と、制御装置１００と、情報処理装置２００Ａ（情報処理装置Ａ）と、情報処理装置２００Ｂ（情報処理装置Ｂ）とを有する。共有ディスク装置６０、制御装置１００、及び情報処理装置２００Ａ，２００Ｂは、互いに、有線又は無線のネットワーク７０を介して接続されている。
【００２１】
共有ディスク装置６０は、情報処理装置２００Ａ及び情報処理装置２００Ｂに共有されており、情報処理装置２００Ａ及び情報処理装置２００Ｂからアクセスされる。そして、共有ディスク装置６０は、情報処理装置２００Ａ及び情報処理装置２００Ｂからのデータを格納する。また、共有ディスク装置６０は、情報処理装置２００Ａ及び情報処理装置２００Ｂに対し、格納されているデータを提供する。
【００２２】
図３は、実施の形態１にかかる制御装置１００の構成を示す図である。制御装置１００は、ユーザによって操作されユーザに情報を提供するクライアントＰＣ（Personal Computer）として動作するコンピュータである。制御装置１００は、ハードウェアとして、プロセッサ１０１と、メモリ１０２と、ディスク装置１０３と、通信装置１０４と、入出力部１０６とを有する。
【００２３】
プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）である。プロセッサ１０１は、制御処理及び演算処理等を行う演算装置としての機能を有する。メモリ１０２は、例えばＲＡＭ（Random Access Memory）である。メモリ１０２は、プロセッサ１０１の処理に関する処理データ等を一時的に記憶するための機能を有する。ディスク装置１０３は、例えばハードディスクドライブ（ＨＤＤ）である。ディスク装置１０３は、プロセッサ１０１によって実行され得る様々なプログラムを格納する。通信装置１０４は、例えばネットワークインタフェースカード（ＮＩＣ；Network Interface Card）である。通信装置１０４は、ネットワーク７０を介して情報処理装置２００等の他のノードと通信を行うために使用される。
【００２４】
入出力部１０６は、ユーザインタフェースとしての機能を有する。入出力部１０６は、例えば、ディスプレイ等の表示装置、及び、キーボード又はポインティングデバイス（例えばマウス）等の入力装置である。あるいは、入出力部１０６は、例えば、表示装置と入力装置とが一体となったタッチパネル等である。入出力部１０６は、プロセッサ１０１によって実行されるプログラムの処理に関する画面を表示してユーザに視認可能とする。また、入出力部１０６は、ユーザの操作を受け付ける。
【００２５】
さらに、制御装置１００は、ソフトウェアとして、仮想基盤クライアント１１０を有する。仮想基盤クライアント１１０は、ディスク装置１０３に格納され、制御装置１００にインストールされている。仮想基盤クライアント１１０については後述する。なお、仮想基盤クライアント１１０は、ＶＤＩ（Virtual Desktop Infrastructure；仮想デスクトップインフラストラクチャー）によって実現されてもよい。
【００２６】
情報処理装置２００Ａ，２００Ｂは、サーバとして動作するコンピュータである。情報処理装置２００Ａ及び情報処理装置２００Ｂは、一方が本番系（運用系）のサーバ、他方が待機系（予備系）のサーバとして動作し得る。情報処理装置２００Ａ及び情報処理装置２００Ｂは、物理的に１つの装置に組み込まれていてもよいし、物理的に別個であってもよい。なお、以下、情報処理装置２００Ａ，２００Ｂ等の複数ある構成要素を区別することなく説明するときは、単に、情報処理装置２００等と記載することがある。なお、図２は、多重化システム５０が２つの情報処理装置２００Ａ，２００Ｂを有する例を示すが、情報処理装置２００の数は任意である。
【００２７】
情報処理装置２００Ａ及び情報処理装置２００Ｂは、それぞれ、ハードウェア２０２Ａ及びハードウェア２０２Ｂを有する。ハードウェア２０２は、プロセッサ１０１、メモリ１０２、ディスク装置１０３及び通信装置１０４と実質的に同様の構成を有する。
【００２８】
また、情報処理装置２００Ａ及び情報処理装置２００Ｂは、それぞれ、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂを有する。ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれ、ハードウェア２０２Ａ及びハードウェア２０２Ｂのディスク装置に格納されているプログラムである。ハイパーバイザ２１０Ａは、１つのハードウェア２０２Ａ上で１つ以上の仮想マシン（仮想マシン２２０Ａ）を実行するための処理を行う、仮想化制御手段としての機能を有する。同様に、ハイパーバイザ２１０Ｂは、１つのハードウェア２０２Ｂ上で１つ以上の仮想マシン（図６に示す仮想マシン２２０Ｂ）を実行するための処理を行う、仮想化制御手段としての機能を有する。ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、共有ディスク装置６０にデータを書き込み、共有ディスク装置６０に格納されたデータを読み出すことができる。ハイパーバイザ２１０の動作については後述する。
【００２９】
仮想マシン２２０は、物理的な構成要素であるハードウェア２０２と同様に、論理的な構成要素である仮想プロセッサ、仮想メモリ、仮想ディスク及び仮想ＮＩＣ等を有する。仮想マシン２２０は、仮想ＮＩＣを用いて、ハイパーバイザ２１０と通信を行うことができる。なお、図２に示した例では、情報処理装置２００Ａにおいて仮想マシン２２０Ａが実行されており、情報処理装置２００Ｂにおいて仮想マシン２２０は実行されていない。仮想マシン２２０Ａは、ハイパーバイザ２１０にインストールされている。
【００３０】
仮想マシン２２０Ａには、ゲストＯＳ２３０Ａがインストールされている。ゲストＯＳ２３０Ａは、仮想マシン２２０Ａ上で動作するＯＳ（仮想ＯＳ）である。ゲストＯＳ２３０Ａは、制御装置１００のユーザに視覚的なインタフェースを提供するＧＵＩ（Graphical User Interface）を備えている。また、ゲストＯＳ２３０Ａには、ユーザが制御装置１００を用いて使用するアプリケーション２４０Ａがインストールされている。また、ゲストＯＳ２３０Ａには、ＶＭ（Virtual Machine）ツール２５０Ａがインストールされている。なお、仮想マシン２２０Ａ、ゲストＯＳ２３０Ａ及びアプリケーション２４０Ａを構成するためのデータは、ハードウェア２０２Ａのディスク装置に格納されている。なお、後述する仮想マシン２２０Ｂについても、上述した仮想マシン２２０Ａと同様である。
【００３１】
制御装置１００は、仮想基盤クライアント１１０の機能によって、ハイパーバイザ２１０に対して管理のための指示を送信する。この管理のための指示は、仮想マシン２２０の生成、仮想マシン２２０の起動、ゲストＯＳ２３０のシャットダウン、ゲストＯＳ２３０の再起動、仮想マシン２２０のテンプレートの生成及び展開、ＶＭツール２５０のインストール、及びハイパーバイザ２１０の再起動を含む。ハイパーバイザ２１０は、各指示を受け付けると、その指示に応じた処理を行う。
【００３２】
また、仮想基盤クライアント１１０は、ハイパーバイザ２１０上で実行されているゲストＯＳ２３０に関する画面表示内容を、入出力部１０６に表示させる。これにより、ユーザは、入出力部１０６に表示されたゲストＯＳ２３０に関する画面表示内容を視覚的に確認することができる。したがって、ユーザは、入出力部１０６を用いてアプリケーション２４０の画面表示内容を視覚的に確認することができる。さらに、ユーザは、ゲストＯＳ２３０で実現されているＧＵＩを介して、マウス又はタッチパネル等のポインティングデバイス又はキーボード等によって、入力を行うことも可能である。
【００３３】
各ハイパーバイザ２１０は、仮想マシン２２０のテンプレートの生成の指示を受け付けると、指定された仮想マシン２２０を参照して、その仮想マシン２２０の上のゲストＯＳ２３０、ＶＭツール２５０及びアプリケーション２４０を含むテンプレート６２を生成する。そして、ハイパーバイザ２１０は、生成されたテンプレート６２を、共有ディスク装置６０上の指定された領域に格納する。ＶＭツール２５０の機能については後述する。
【００３４】
また、各ハイパーバイザ２１０は、仮想マシン２２０のテンプレートの展開の指示を受け付けると、指定されたテンプレートを参照して、元の仮想マシン２２０の複製を生成する。各ハイパーバイザ２１０から参照できる共有ディスク装置６０上のディスク領域にテンプレートを格納することで、別のハイパーバイザ２１０に仮想マシン２２０の複製を生成することができる。例えば、ハイパーバイザ２１０Ｂは、テンプレート６２を展開して、仮想マシン２２０Ａの複製（仮想マシン２２０Ｂ）を生成することができる。
【００３５】
また、各ハイパーバイザ２１０は、ＶＭツール２５０のインストールの指示を受け付けると、ＶＭツール２５０をゲストＯＳ２３０にインストールする機能を有する。ハイパーバイザ２１０は、ＶＭツール２５０と通信を行い、保護対象のアプリケーション２４０を起動及び終了する機能を有する。ここで、「保護対象のアプリケーション」とは、そのアプリケーションを実行しているシステム（情報処理装置２００等）に何らかの異常があったとしても、データの破壊及びアプリケーションの継続不能を防止すべきアプリケーションのことをいう。本実施の形態では、アプリケーションの冗長化によって、アプリケーションを保護し得る。
【００３６】
また、各ハイパーバイザ２１０は、ＶＭツール２５０からゲストＯＳ２３０の起動が完了したことを示す通知を受け付け、この通知に応じて制御装置１００の仮想基盤クライアント１１０に対してゲストＯＳ２３０の起動が完了したことを示す通知を送信する機能を有する。また、各ハイパーバイザ２１０は、ＶＭツール２５０を介して、保護対象のアプリケーション２４０のウィンドウ範囲を示す情報を取得して、その情報を制御装置１００の仮想基盤クライアント１１０に対して送信する機能を有する。また、各ハイパーバイザ２１０は、ＶＭツール２５０を介して、保護対象のアプリケーション２４０のアプリケーション環境をゲストＯＳ２３０から取得し、その環境を他のゲストＯＳ２３０へ、ＶＭツール２５０を介して複製する機能を有する。
【００３７】
アプリケーション２４０Ａは、ゲストＯＳ２３０Ａでカプセル化されている。したがって、アプリケーション２４０Ａに関する、バイナリデータ、使用ライブラリ、設定ファイル、使用ファイル（作業ファイル）等のアプリケーション２４０Ａの実行環境（アプリケーション環境）に変更があった場合でも、アプリケーション２４０Ａ（の実行環境）は、容易に他のゲストＯＳ２３０に複製され得る。ユーザは、アプリケーション２４０Ａを使用する際に、アプリケーション２４０Ａ上で作業ファイルを開き、ＧＵＩ又はキーボード等によって、アプリケーション２４０Ａに対して入力を行い、作業ファイルを保存する。なお、アプリケーション２４０Ａは、ユーザの入力に対して、特定の画面表示内容を含む応答を送信する。ここで、本実施の形態にかかるアプリケーション２４０は、好ましくは、乱数又はシステムの時刻等により画面表示が変更されるアプリケーション、サーバ／クライアント型のアプリケーションなど、ユーザの入力内容に関係なく変化する画面表示を行うアプリケーションではない。
【００３８】
ＶＭツール２５０は、ハイパーバイザ２１０からの指示で、自身に登録されている保護対象のアプリケーション２４０を起動又は終了する機能を有する。ＶＭツール２５０は、自身がインストールされているゲストＯＳ２３０の起動が完了したことを、ハイパーバイザ２１０に通知する機能を有する。また、ゲストＯＳ２３０は、起動しているアプリケーション２４０の画面表示内容が表示されているウィンドウ範囲を示す情報（ウィンドウ範囲情報）を有している。ＶＭツール２５０は、ゲストＯＳ２３０からこのウィンドウ範囲情報を取得して、ハイパーバイザ２１０に対して送信する機能を有する。
【００３９】
また、ＶＭツール２５０は、ユーザがアプリケーション２４０の保護の開始時に、その保護対象のアプリケーション２４０の起動ファイルの位置をこのＶＭツール２５０に指定するためのインタフェースを有する。また、ＶＭツール２５０は、保護対象のアプリケーション２４０の実行環境（アプリケーション環境）をゲストＯＳ２３０から取得して、ハイパーバイザ２１０に送信する機能を有する。さらに、ＶＭツール２５０は、ハイパーバイザ２１０から受け付けた保護対象のアプリケーション２４０のアプリケーション環境を、自身がインストールされたゲストＯＳ２３０へ複製して反映する機能を有する。
【００４０】
仮想基盤クライアント１１０は、多重化制御部１１２、入力送信部１２０、画面比較部１３０、選択肢提示部１４０、及び復帰制御部１５０を有する。多重化制御部１１２は、本番系設定部１１４及び多重化処理部１１６を有する。復帰制御部１５０は、本番系選択部１５２及び環境複製部１５４を有する。多重化制御部１１２、画面比較部１３０、選択肢提示部１４０、及び復帰制御部１５０は、それぞれ、図１に示された多重化制御部１２、画面比較部１３、選択肢提示部１４、及び復帰制御部１５に対応する。
【００４１】
多重化制御部１１２は、ゲストＯＳ２３０へＶＭツール２５０をインストールするように、ハイパーバイザ２１０に対して指示する機能を有する。また、多重化制御部１１２は、ＶＭツール２５０を介して保護対象のアプリケーション２４０をユーザに指定させるための機能を有する。また、多重化制御部１１２は、保護対象のアプリケーション２４０、そのアプリケーション２４０が動作するゲストＯＳ２３０、及びそのアプリケーション２４０を実行するハイパーバイザ２１０（及び情報処理装置２００）を本番系と設定する機能を有する。また、多重化制御部１１２は、待機系とすべきアプリケーション２４０、そのアプリケーション２４０が起動するゲストＯＳ２３０、及びそのアプリケーション２４０を起動させるハイパーバイザ２１０（及び情報処理装置２００）を、待機系と設定する機能を有する。これにより、多重化制御部１１２は、本番系又は待機系としてそれぞれ動作する複数のコンピュータである情報処理装置２００Ａ，２００Ｂで同一のアプリケーションを実行させるように制御する多重化制御手段としての機能を有する。
【００４２】
入力送信部１２０は、ユーザからのアプリケーション２４０に対する入力を受け付ける。そして、入力送信部１２０は、その入力を、本番系及び待機系のハイパーバイザ２１０に対して同時に送信する。また、入力送信部１２０は、入力に対する応答のないハイパーバイザ２１０に対してｐｉｎｇコマンドを実行する。また、入力送信部１２０は、入出力部１０６を用いて、ユーザに対して、ハイパーバイザ２１０での入力状況について通知して対応の選択肢を提示する機能を有する。さらに、入力送信部１２０は、それぞれの選択肢に応じた処理を行う機能を有する。
【００４３】
画面比較部１３０は、本番系及び待機系のハイパーバイザ２１０それぞれから、保護対象のアプリケーション２４０のウィンドウ範囲情報を取得する。そして、画面比較部１３０は、本番系のアプリケーション２４０の画面表示内容と待機系のアプリケーション２４０の画面表示内容とを比較して、互いに一致しているか否かを判定する。これにより、画面比較部１３０は、複数のコンピュータである情報処理装置２００Ａ，２００Ｂのそれぞれで実行されているアプリケーション２４０Ａ，２４０Ｂへの入力に対して出力される画面表示内容が一致しているか否かを比較する比較手段としての機能を有する。
【００４４】
選択肢提示部１４０は、本番系のアプリケーション２４０の画面表示内容と待機系のアプリケーション２４０の画面表示内容とが一致していない場合に、その旨を、入出力部１０６を用いてユーザに通知する。さらに、選択肢提示部１４０は、保護対象のアプリケーション２４０の復帰処理（リカバリ処理）の選択肢を提示する。また、選択肢提示部１４０は、本番系のアプリケーション２４０及び待機系のアプリケーション２４０それぞれの最新の画面表示内容を、ユーザに提示する機能を有する。この最新の画面表示内容の提示は、本番系のアプリケーション２４０の画面表示内容と待機系のアプリケーション２４０の画面表示内容とが一致しているか否かに関わらず、行われてもよい。選択肢提示部１４０は、画面表示内容が一致していない場合に、アプリケーション２４０のユーザに対して、アプリケーション２４０の復帰処理の選択肢を提示する提示手段としての機能を有する。
【００４５】
復帰制御部１５０は、選択肢提示部１４０によって提示されたそれぞれの選択肢に応じた復帰処理を行う機能を有する。また、復帰制御部１５０は、ハイパーバイザ２１０に対して、保護対象のアプリケーション２４０のアプリケーション環境を、他のゲストＯＳ２３０に複製するように指示する機能を有する。そして、復帰制御部１５０は、選択肢の提示に応じてユーザによってなされた選択に基づいて、アプリケーション２４０の復帰を制御する復帰制御手段としての機能を有する。
【００４６】
図４及び図５は、実施の形態１にかかる多重化システム５０によって行われる多重化方法を示すフローチャートである。図４及び図５に示される処理は、主に、制御装置１００（仮想基盤クライアント１１０）によって行われ得る。また、図４及び図５では、アプリケーション２４０Ａ（ＡＰＰ＿Ａ）を保護対象とする。
【００４７】
アプリケーション２４０Ａが動作するゲストＯＳ２３０Ａに、ＶＭツール２５０がインストールされる（ステップＳ１０２）。具体的には、仮想基盤クライアント１１０の多重化制御部１１２は、アプリケーション２４０Ａを実行するハイパーバイザ２１０Ａに対して、ゲストＯＳ２３０ＡにＶＭツール２５０Ａをインストールするように指示する。ハイパーバイザ２１０Ａは、この指示に応じて、アプリケーション２４０Ａが動作するゲストＯＳ２３０Ａに、ＶＭツール２５０Ａをインストールする。
【００４８】
仮想基盤クライアント１１０は、本番系の設定を行う（ステップＳ１０４）。具体的には、多重化制御部１１２の本番系設定部１１４は、保護対象であるアプリケーション２４０Ａを、本番系のアプリケーション２４０と設定する。また、本番系設定部１１４は、保護対象のアプリケーション２４０Ａが動作するゲストＯＳ２３０Ａ及び仮想マシン２２０Ａを、それぞれ、本番系のゲストＯＳ２３０及び仮想マシン２２０と設定する。また、本番系設定部１１４は、保護対象のアプリケーション２４０Ａを実行するハイパーバイザ２１０Ａを本番系のハイパーバイザ２１０と設定し、情報処理装置２００Ａを本番系の情報処理装置２００と設定する。
【００４９】
一方、本番系設定部１１４は、本番系である情報処理装置２００Ａとは異なる他の情報処理装置２００Ｂで実行されるハイパーバイザ２１０Ｂを、待機系のハイパーバイザ２１０と設定する。なお、本番系設定部１１４は、情報処理装置２００Ｂを、待機系の情報処理装置２００と設定してもよい。
【００５０】
多重化システム５０は、多重化処理を行う（ステップＳ１０６）。図６は、実施の形態１にかかる、多重化処理がなされた多重化システム５０を示す図である。仮想基盤クライアント１１０の多重化処理部１１６は、ハイパーバイザ２１０Ａに対して、テンプレート６２を生成するように指示する。ハイパーバイザ２１０Ａは、この指示に応じて、ゲストＯＳ２３０Ａをシャットダウンして、仮想マシン２２０Ａからテンプレート６２を生成する。ハイパーバイザ２１０Ａは、生成されたテンプレート６２を、共有ディスク装置６０上の指定された領域に格納する。
【００５１】
多重化処理部１１６は、ハイパーバイザ２１０Ｂに対して、共有ディスク装置６０に格納された、仮想マシン２２０Ａに対応するテンプレート６２の展開を指示する。ハイパーバイザ２１０Ｂは、この指示に応じて、テンプレート６２から、仮想マシン２２０Ａの複製である仮想マシン２２０Ｂを生成する。また、ハイパーバイザ２１０Ｂは、ゲストＯＳ２３０Ａの複製であるゲストＯＳ２３０Ｂを生成する。また、ハイパーバイザ２１０Ｂは、アプリケーション２４０Ａの複製であるアプリケーション２４０Ｂを生成する。また、ハイパーバイザ２１０Ｂは、ＶＭツール２５０Ａの複製であるＶＭツール２５０Ｂを生成する。そして、多重化制御部１１２（本番系設定部１１４）は、仮想マシン２２０Ｂを待機系の仮想マシン２２０と設定し、ゲストＯＳ２３０Ｂを待機系のゲストＯＳ２３０と設定し、アプリケーション２４０Ｂを待機系のアプリケーション２４０と設定する。このようにして、図６に示すように、待機系のシステムが生成される。
【００５２】
次に、多重化システム５０は、アプリケーション２４０の起動処理を行う（ステップＳ１０８）。具体的には、仮想基盤クライアント１１０の多重化制御部１１２は、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂに対して、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂを起動するように指示する。ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、この指示に応じて、それぞれ仮想マシン２２０Ａ及び仮想マシン２２０Ｂを起動する。仮想マシン２２０Ａ及び仮想マシン２２０Ｂは、それぞれ、ゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂを起動する。
【００５３】
ハイパーバイザ２１０Ａは、ＶＭツール２５０ＡからゲストＯＳ２３０Ａの起動が完了したことを示す通知を受け付けた後、ＶＭツール２５０Ａを介して、アプリケーション２４０Ａを起動する。同様に、ハイパーバイザ２１０Ｂは、ＶＭツール２５０ＢからゲストＯＳ２３０Ｂの起動が完了したことを示す通知を受け付けた後、ＶＭツール２５０Ｂを介して、アプリケーション２４０Ｂを起動する。
【００５４】
なお、仮想基盤クライアント１１０は、予め設定された待機時間Ｔａｐｐｗｔだけ待機した後、アプリケーション２４０Ａ及びアプリケーション２４０Ｂが共に起動を完了したと判断してもよい。したがって、待機時間Ｔａｐｐｗｔは、アプリケーション２４０Ａ及びアプリケーション２４０Ｂの実際の起動完了時間よりも十分長いとする。そして、このとき、仮想基盤クライアント１１０は、アプリケーション２４０Ａ及びアプリケーション２４０Ｂのウィンドウ範囲情報を取得して、後述する処理を行う。
【００５５】
仮想基盤クライアント１１０は、アプリケーション２４０Ａに対してユーザから入力があったか否かを判定する（ステップＳ１１０）。そして、ユーザから入力があった場合（Ｓ１１０のＹＥＳ）、入力送信部１２０は、入力内容を、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂに対して同時に送信する（ステップＳ１１２）。ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、送信された入力内容を受信すると、入力内容を、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂに入力し反映する。これにより、アプリケーション２４０Ａ及びアプリケーション２４０Ｂは、システムに異常が発生していなければ、入力内容に応じた動作を行い得る。
【００５６】
このとき、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、送信された入力内容を受信すると、入力内容を受信した旨を示す応答を、仮想基盤クライアント１１０に返す。ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂの応答時間が仮想基盤クライアント１１０で予め設定された応答待ち時間Ｔｒｗｔを超える場合は、入力送信部１２０は、入力に対する応答のないハイパーバイザ２１０に対してｐｉｎｇコマンドを実行する。これによりそのハイパーバイザ２１０の応答がないと確認されると、入力送信部１２０は、「該当ハイパーバイザへの入力に対する応答がなく、ｐｉｎｇ応答もない」とユーザへ通知する。なお、ｐｉｎｇコマンドに対してｐｉｎｇ応答があった場合は、入力送信部１２０は、「該当ハイパーバイザでｐｉｎｇ応答はあるが入力処理が遅れている」とユーザへ通知し、「応答待ち」又は「応答を待たない」の選択肢をユーザへ提示する。ユーザが、入出力部１０６を用いて「応答待ち」を選択すると、仮想基盤クライアント１１０の入力送信部１２０は、再び、応答待ち時間Ｔｒｗｔの時間、入力に対する応答を待つ。
【００５７】
仮想基盤クライアント１１０の画面比較部１３０は、アプリケーション２４０Ａ，２４０Ｂへの入力に対して出力される画面表示内容が一致しているか否かを比較する（ステップＳ１２０）。具体的には、画面比較部１３０は、アプリケーション２４０Ａに対する入力があった後、仮想基盤クライアント１１０で予め設定されている待ち時間Ｔｕｉｗｔの間、待機する。そして、画面比較部１３０は、待機後の直近のアプリケーション２４０Ａ及びアプリケーション２４０Ｂそれぞれのウィンドウ範囲の画面表示内容を比較する。なお、画面比較部１３０は、アプリケーション２４０の画面表示内容の全ての範囲について比較する必要はない。例えば、画面比較部１３０は、ある時間内で変化した表示内容のみ、比較してもよい。
【００５８】
画面表示内容が一致する場合（ステップＳ１３０のＹＥＳ）、Ｓ１１０の処理に戻り、画面比較部１３０は、次回の入力があるまで待機する。そして、次回の入力があった場合に、画面比較部１３０は、再び、待ち時間Ｔｕｉｗｔ待機した後、アプリケーション２４０Ａ及びアプリケーション２４０Ｂの画面表示内容を比較する。なお、待ち時間Ｔｕｉｗｔ待機する間に次の入力がなされた場合は、仮想基盤クライアント１１０は、待ち時間Ｔｕｉｗｔのカウンタをリセットして、再カウントを行う。
【００５９】
一方、画面表示内容が一致しない場合（Ｓ１３０のＮＯ）、画面比較部１３０は、Ｎ回、再比較処理を行う（ステップＳ１３２）。なお、Ｎは、予め定められた１以上の整数である。具体的には、画面比較部１３０は、Ｎ回、画面表示内容を比較していない場合（Ｓ１３２のＮＯ）、Ｓ１２０の処理に戻り、待ち時間Ｔｕｉｗｔ待機した後、アプリケーション２４０Ａ及びアプリケーション２４０Ｂの画面表示内容を、再度比較する。なお、この再比較処理の途中で入力がなされた場合は、Ｓ１２０の処理に戻り、画面比較部１３０は、その入力について画面表示内容を比較する。
【００６０】
再比較処理をＮ回行っても画面表示内容が一致しない場合（Ｓ１３２のＹＥＳ）、選択肢提示部１４０は、入出力部１０６を用いて、ユーザに対し、画面表示内容が一致しない旨の通知及び復帰処理についての選択肢の提示を行う（ステップＳ１４０）。その際、選択肢提示部１４０は、入出力部１０６を用いて、アプリケーション２４０Ａの画面表示内容及びアプリケーション２４０Ｂの画面表示内容を、ユーザに提示する。選択肢提示部１４０は、図７に例示するような選択肢表示画面８０を、入出力部１０６に表示させる。
【００６１】
図７は、実施の形態１にかかる選択肢提示部１４０の処理によって制御装置１００の入出力部１０６に表示される選択肢表示画面８０を例示する図である。図７に例示する選択肢表示画面８０は、情報処理装置２００Ａ（アプリケーション２４０Ａ）の画面表示内容８２Ａ及び情報処理装置２００Ｂ（アプリケーション２４０Ｂ）の画面表示内容８２Ｂを含む。また、選択肢表示画面８０は、選択肢＃１〜選択肢＃５を含む。
【００６２】
選択肢＃１は、「通知を無視してそのまま続行する」である。選択肢＃２は、「両方の結果が正しくないとしてアプリケーション（ＡＰＰ）を再起動する」である。選択肢＃３は、「両方の結果が正しくないとしてゲストＯＳを再起動する」である。選択肢＃４は、「両方の結果が正しくないとしてハイパーバイザ（ＨＰＶ）を再起動する」である。選択肢＃５は、「いずれかの結果が正しいとして復帰処理を行う」である。
【００６３】
ユーザは、画面表示内容８２Ａ及び画面表示内容８２Ｂを視認しながら、選択肢＃１〜選択肢＃５のいずれかを選択することができる。選択肢表示画面８０は、例えばＧＵＩによって実現され得る。そして、この選択操作は、例えば入出力部１０６がタッチパネルである場合、選択肢＃１〜選択肢＃５のいずれかのアイコンをユーザがタッチすることでなされ得る。
【００６４】
ユーザによって選択肢＃１「通知を無視してそのまま続行する」が選択された場合（ステップＳ１４２のＹＥＳ）、処理はＳ１３２の処理に戻る。ユーザによって選択肢＃２「両方の結果が正しくないとしてアプリケーションを再起動する」が選択された場合（ステップＳ１４４のＹＥＳ）、復帰制御部１５０は、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂに対し、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂを再起動するように指示する（ステップＳ１４５）。これにより、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂを再起動する。そして、処理はＳ１１０の処理に戻る。
【００６５】
ユーザによって選択肢＃３「両方の結果が正しくないとしてゲストＯＳを再起動する」が選択された場合（ステップＳ１４６のＹＥＳ）、復帰制御部１５０は、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂに対し、それぞれゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂを再起動するように指示する（ステップＳ１４７）。これにより、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂを再起動する。その後、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂを起動する。そして、処理はＳ１１０の処理に戻る。
【００６６】
ユーザによって選択肢＃４「両方の結果が正しくないとしてハイパーバイザを再起動する」が選択された場合（ステップＳ１４８のＹＥＳ）、復帰制御部１５０は、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂに対し、再起動するように指示する（ステップＳ１４９）。これにより、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、自身を再起動する。その後、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂを再起動する。さらに、ハイパーバイザ２１０Ａ及びハイパーバイザ２１０Ｂは、それぞれアプリケーション２４０Ａ及びアプリケーション２４０Ｂを起動する。そして、処理はＳ１１０の処理に戻る。
【００６７】
ユーザによって選択肢＃５「いずれかの結果が正しいとして復帰処理を行う」が選択された場合（ステップＳ１５０のＹＥＳ）、復帰制御部１５０は、ユーザに対して本番系の選択を提示する（ステップＳ１５２）。具体的には、本番系選択部１５２は、入出力部１０６を用いて、ユーザに対して、アプリケーション２４０Ａ及びアプリケーション２４０Ｂのいずれを本番系とするかの選択画面を提示する。ユーザは、画面表示内容８２Ａ及び画面表示内容８２Ｂを視認して、正しい方の画面表示内容に対応するアプリケーション２４０を選択することができる。例えば、選択肢表示画面８０において画面表示内容８２Ａ及び画面表示内容８２Ｂを点滅させることで、いずれかを選択するように促すことができる。このように、ユーザに画面表示内容８２Ａ及び画面表示内容８２Ｂを提示することで、ユーザは、どちらが正常か（又はどちらも正常でないか）を、容易に判断することができる。
【００６８】
そして、本番系選択部１５２は、ユーザによって選択されたアプリケーション２４０を、本番系のアプリケーション２４０と設定する（ステップＳ１５４）。これにより、ユーザが正常であると判断したアプリケーション２４０を動作しているコンピュータ（情報処理装置２００又は仮想マシン２２０）を、適切に本番系と設定することができる。一方、本番系選択部１５２は、ユーザによって選択されなかった方のアプリケーション２４０を終了するように、そのアプリケーション２４０が実行されるハイパーバイザ２１０に指示する（ステップＳ１５６）。この指示に応じて、ハイパーバイザ２１０は、アプリケーション２４０を終了する。これにより、異常であるアプリケーション２４０を適切に終了することができる。そして、本番系選択部１５２は、選択されなかったアプリケーション２４０が動作するゲストＯＳ２３０を、新たな待機系と設定する。
【００６９】
復帰制御部１５０の環境複製部１５４は、ユーザに対して、設定された本番系のアプリケーション２４０で作業ファイルを保存するように指示する（ステップＳ１５８）。例えば、環境複製部１５４は、入出力部１０６を用いて、本番系のアプリケーション２４０で作業ファイルを保存することを促すような画面（ポップアップ画面等）を表示させてもよい。この指示に応じてユーザが作業ファイルを保存すると、環境複製部１５４は、本番系のアプリケーション２４０を終了するように、ハイパーバイザ２１０に対して指示する。この指示に応じて、ハイパーバイザ２１０は、本番系のアプリケーション２４０を終了する。
【００７０】
そして、環境複製部１５４は、新たに設定された待機系のゲストＯＳ２３０へ、新たに設定された本番系のアプリケーション２４０の実行環境を複製する（ステップＳ１６０）。このように、待機系のシステムに正常である本番系のアプリケーション２４０を複製することで、保護対象のアプリケーション２４０を冗長化することができる。したがって、保護対象のアプリケーション２４０を適切に保護することができる。
【００７１】
なお、本実施の形態における多重化システム５０は、仮想マシン２２０によって構成されているので、上述したように、アプリケーション２４０の実行環境はカプセル化され得る。したがって、環境複製部１５４は、容易に本番系のアプリケーション２４０の実行環境を複製することができる。言い換えると、コンピュータが仮想マシン２２０で実現されることで、本番系と待機系とで、容易に同じ環境にすることが可能となる。
【００７２】
そして、復帰制御部１５０は、ハイパーバイザ２１０に対して、本番系のアプリケーション２４０及び待機系のアプリケーション２４０の起動を指示する（ステップＳ１６２）。この指示に応じて、本番系のアプリケーション２４０を実行するハイパーバイザ２１０は、本番系のアプリケーション２４０を起動する。また、待機系のゲストＯＳ２３０を実行するハイパーバイザ２１０は、待機系のアプリケーション２４０を起動する。そして、処理は、Ｓ１１０の処理に戻る。
【００７３】
例えば、Ｓ１５２の処理に応じてユーザがアプリケーション２４０Ｂを本番系と選択した場合の例について説明する。このとき、ハイパーバイザ２１０Ａは、選択されなかったアプリケーション２４０Ａを終了する。そして、ゲストＯＳ２３０Ａが新たな待機系と設定される。また、ユーザが、新たに本番系と設定されたアプリケーション２４０Ｂで作業ファイルを保存した後、ハイパーバイザ２１０Ｂは、アプリケーション２４０Ｂを終了する。そして、環境複製部１５４は、新たに設定された待機系のゲストＯＳ２３０Ａへ、新たに設定された本番系のアプリケーション２４０Ｂの実行環境を複製する。その後、ハイパーバイザ２１０Ｂは、新たに設定された本番系のアプリケーション２４０Ｂを起動する。また、ハイパーバイザ２１０Ａは、新たに設定された待機系のアプリケーション２４０Ａを起動する。
【００７４】
このように、本実施の形態にかかる多重化システム５０は、複数のコンピュータで実行されているアプリケーション２４０にかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザに対して、アプリケーション２４０の復帰処理の選択肢を提示するように構成されている。これにより、本実施の形態にかかる多重化システム５０は、ユーザの選択に応じたアプリケーション２４０の復帰動作を行うことができる。したがって、本実施の形態にかかる多重化システム５０は、アプリケーションについて異常が発生した場合であっても、ユーザの選択に応じて適切にアプリケーションの復帰動作を行うことが可能となる。
【００７５】
また、上述したフォールトトレラント技術では、本番系の計算システムと待機系の計算システムとの間で、アプリケーションの処理に関して厳密に同期を行う必要がある。しかしながら、厳密に同期を行うようにするために、複雑な処理又は構成が必要となるおそれがある。したがって、上述したフォールトトレラント技術では、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことができないおそれがある。
【００７６】
一方、本実施の形態にかかる多重化システム５０は、ユーザが画面表示内容の比較を行うことができればよいのであるから、アプリケーションの処理に関して厳密に同期を行う必要はない。したがって、本実施の形態にかかる多重化システム５０は、上述したフォールトトレラント技術と比較して、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことが可能となる。
【００７７】
なお、ユーザによる入力に対し、アプリケーション２４０が正常に動作していても、アプリケーション２４０の仕様によっては、一方のアプリケーション２４０（情報処理装置２００）における画面表示の遅延が生じる場合があり得る。具体的には、アプリケーション２４０におけるディスクＩ／Ｏによる遅延、又は、アプリケーション２４０のＣＰＵバウンドの処理による遅延等が生じる場合がある。このような遅延に対処するために、以下の処理が行われてもよい。
【００７８】
仮想基盤クライアント１１０は、アプリケーション２４０に関するＣＰＵ使用率がユーザによって設定された閾値を超えている場合に、アプリケーション２４０によるＣＰＵバウンドの状態と判断する。そして、仮想基盤クライアント１１０は、このＣＰＵバウンドの時間がユーザによって設定された時間を超えていない間は、正常にアプリケーション２４０の処理が行われているとして、画面表示内容の比較処理を行わないようにしてもよい。また、仮想基盤クライアント１１０は、本番系及び待機系のアプリケーション２４０のいずれについても、ＣＰＵバウンドの時間が設定された時間を超えた場合に、画面表示内容の比較処理を行うようにしてもよい。
【００７９】
また、アプリケーション２４０においてファイルの読み書きの処理が行われている間は、仮想基盤クライアント１１０は、画面表示内容の比較処理を行わないようにしてもよい。具体的には、ハイパーバイザ２１０は、ファイル読み書きでＯＳ（ゲストＯＳ２３０）が呼び出された時点からファイルの読み書きが完了するまでの間、仮想基盤クライアント１１０に対し、画面表示内容の比較処理を行わないように通知してもよい。そして、ハイパーバイザ２１０は、ファイルの読み書きが完了したときに、仮想基盤クライアント１１０に通知を行ってもよい。そして、仮想基盤クライアント１１０は、本番系及び待機系の両方のアプリケーション２４０においてファイルの読み書きが完了したときに、画面表示内容の比較処理を行ってもよい。なお、ファイルの読み書きの処理がシステムエラーに起因して完了しないことも考慮して、待機時間の閾値を設定してもよい。
【００８０】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２は、１つの情報処理装置２００で複数のアプリケーション２４０が実行され得る点で、実施の形態１と異なる。なお、これ以外の点では、実施の形態２は、実施の形態１と実質的に同様である。実施の形態１にかかる構成要素の同様の構成要素の構造及び機能については、適宜、説明を省略する。
【００８１】
図８は、実施の形態２にかかる多重化システム５０を示す図である。多重化システム５０は、制御装置１００と、１つの情報処理装置２００とを有する。実施の形態２にかかる多重化システム５０は、実施の形態１にかかる多重化システム５０と異なり、共有ディスク装置を有さない。制御装置１００及び情報処理装置２００は、互いに、ネットワーク７０を介して接続されている。
【００８２】
情報処理装置２００は、ハードウェア２０２と、１つのハイパーバイザ２１０を有する。ハイパーバイザ２１０は、１つのハードウェア２０２上で、複数の仮想マシン２２０を実行するための処理を行う。そして、それらの実行される複数の仮想マシン２２０の１つが本番系の仮想マシン（コンピュータ）として動作し、他の仮想マシン２２０が待機系の仮想マシン（コンピュータ）として動作する。
【００８３】
図８に示した例では、ハイパーバイザ２１０において仮想マシン２２０Ａが実行されている。仮想マシン２２０Ａには、ゲストＯＳ２３０Ａがインストールされている。ゲストＯＳ２３０Ａには、アプリケーション２４０Ａがインストールされている。ゲストＯＳ２３０Ａには、ＶＭツール２５０Ａがインストールされている。なお、仮想マシン２２０Ａ、ゲストＯＳ２３０Ａ及びアプリケーション２４０Ａを構成するためのデータは、ハードウェア２０２のディスク装置に格納されている。なお、実施の形態２にかかるハイパーバイザ２１０は、生成されたテンプレート６２を、自身に格納する。
【００８４】
制御装置１００は、仮想基盤クライアント１１０の機能によって、ハイパーバイザ２１０に対して管理のための指示を送信する。制御装置１００は、図３に示した実施の形態１にかかる制御装置１００と実質的に同様の構成要素を有し得る。なお、実施の形態２においては、情報処理装置２００及びハイパーバイザ２１０は、１つである。したがって、実施の形態２にかかる仮想基盤クライアント１１０は、情報処理装置２００及びハイパーバイザ２１０を、本番系と待機系とで区別しない。つまり、実施の形態２にかかる仮想基盤クライアント１１０は、ハイパーバイザ２１０を本番系又は待機系と設定しない。
【００８５】
図９及び図１０は、実施の形態２にかかる多重化システム５０によって行われる多重化方法を示すフローチャートである。また、図４及び図５に示したフローチャートと同様に、図９及び図１０では、アプリケーション２４０Ａ（ＡＰＰ＿Ａ）を保護対象とする。
【００８６】
Ｓ１０２の処理と同様に、仮想基盤クライアント１１０の多重化制御部１１２の処理により、アプリケーション２４０Ａが動作するゲストＯＳ２３０Ａに、ＶＭツール２５０がインストールされる（ステップＳ２０２）。次に、Ｓ１０４の処理と同様に、仮想基盤クライアント１１０は、本番系の設定を行う（ステップＳ２０４）。具体的には、本番系設定部１１４は、保護対象であるアプリケーション２４０Ａを、本番系のアプリケーション２４０と設定する。また、本番系設定部１１４は、保護対象のアプリケーション２４０Ａが動作するゲストＯＳ２３０Ａ及び仮想マシン２２０Ａを、それぞれ、本番系のゲストＯＳ２３０及び仮想マシン２２０と設定する。なお、上述したように、本番系設定部１１４は、保護対象のアプリケーション２４０Ａを実行するハイパーバイザ２１０を本番系とは設定しない。また、この時点では、本番系設定部１１４は、待機系の設定を行う必要はない。
【００８７】
Ｓ１０６の処理と同様に、多重化システム５０は、多重化処理を行う（ステップＳ２０６）。図１１は、実施の形態２にかかる、多重化処理がなされた多重化システム５０を示す図である。仮想基盤クライアント１１０の多重化処理部１１６は、ハイパーバイザ２１０に対して、テンプレート６２を生成するように指示する。ハイパーバイザ２１０は、この指示に応じて、ゲストＯＳ２３０Ａをシャットダウンして、仮想マシン２２０Ａからテンプレート６２を生成する。ハイパーバイザ２１０は、生成されたテンプレート６２を、自身に格納する。
【００８８】
多重化処理部１１６は、ハイパーバイザ２１０に対して、仮想マシン２２０Ａに対応するテンプレート６２の展開を指示する。ハイパーバイザ２１０は、この指示に応じて、テンプレート６２から仮想マシン２２０Ａの複製である仮想マシン２２０Ｂを生成する。また、ハイパーバイザ２１０は、ゲストＯＳ２３０Ａの複製であるゲストＯＳ２３０Ｂを生成する。また、ハイパーバイザ２１０は、アプリケーション２４０Ａの複製であるアプリケーション２４０Ｂを生成する。また、ハイパーバイザ２１０は、ＶＭツール２５０Ａの複製であるＶＭツール２５０Ｂを生成する。そして、多重化制御部１１２（本番系設定部１１４）は、仮想マシン２２０Ｂを待機系の仮想マシン２２０と設定し、ゲストＯＳ２３０Ｂを待機系のゲストＯＳ２３０と設定し、アプリケーション２４０Ｂを待機系のアプリケーション２４０と設定する。このようにして、図１１に示すように、待機系のシステムが生成される。
【００８９】
次に、Ｓ１０８の処理と同様に、多重化システム５０は、アプリケーション２４０の起動処理を行う（ステップＳ２０８）。具体的には、仮想基盤クライアント１１０の多重化制御部１１２は、ハイパーバイザ２１０に対して、アプリケーション２４０Ａ及びアプリケーション２４０Ｂを起動するように指示する。ハイパーバイザ２１０は、この指示に応じて、仮想マシン２２０Ａ及び仮想マシン２２０Ｂを起動する。仮想マシン２２０Ａ及び仮想マシン２２０Ｂは、それぞれ、ゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂを起動する。
【００９０】
ハイパーバイザ２１０は、ＶＭツール２５０ＡからゲストＯＳ２３０Ａの起動が完了したことを示す通知を受け付けた後、ＶＭツール２５０Ａを介して、アプリケーション２４０Ａを起動する。同様に、ハイパーバイザ２１０は、ＶＭツール２５０ＢからゲストＯＳ２３０Ｂの起動が完了したことを示す通知を受け付けた後、ＶＭツール２５０Ｂを介して、アプリケーション２４０Ｂを起動する。
【００９１】
ユーザからアプリケーション２４０Ａに対して入力があった場合（ステップＳ２１０のＹＥＳ）、入力送信部１２０は、入力内容を、ハイパーバイザ２１０に対して送信する（ステップＳ２１２）。ハイパーバイザ２１０は、送信された入力内容を受信すると、入力内容を、アプリケーション２４０Ａ及びアプリケーション２４０Ｂに入力し反映する。これにより、アプリケーション２４０Ａ及びアプリケーション２４０Ｂは、システムに異常が発生していなければ、入力内容に応じた動作を行い得る。
【００９２】
次に、Ｓ１２０〜Ｓ１３２の処理と同様に、画面比較部１３０は、画面表示内容の比較処理を行う（ステップＳ２２０〜ステップＳ２３２）。そして、アプリケーション２４０Ａとアプリケーション２４０Ｂとで画面表示内容が一致しない場合（Ｓ２３０のＮＯ及びＳ２３２のＮＯ）に、Ｓ１４０の処理と同様に、選択肢提示部１４０は、選択肢提示処理を行う（ステップＳ２４０）。さらに、Ｓ１４２〜Ｓ１６２の処理と同様に、ユーザの選択に応じて、復帰制御部１５０は、復帰処理を行う（ステップＳ２４２〜ステップＳ２６２）。Ｓ２４２〜Ｓ２６２の処理は、それぞれ、Ｓ１４２〜Ｓ１６２の処理と実質的に同様であるので、説明を省略する。
【００９３】
なお、実施の形態２にかかる復帰処理においては、復帰制御部１５０は、１つのハイパーバイザ２１０に対して指示を行う。そして、ハイパーバイザ２１０は、アプリケーション２４０Ａ及びアプリケーション２４０Ｂの再起動を行い（Ｓ２４５）、ゲストＯＳ２３０Ａ及びゲストＯＳ２３０Ｂの再起動を行い（Ｓ２４７）、自身の再起動を行う（Ｓ２４９）。
【００９４】
また、Ｓ２５６の処理において、本番系選択部１５２は、ユーザによって選択されなかった方のアプリケーション２４０を終了するように、１つのハイパーバイザ２１０に指示する。この指示に応じて、ハイパーバイザ２１０は、ユーザによって選択されなかった方のアプリケーション２４０を終了する。そして、本番系選択部１５２は、選択されなかったアプリケーション２４０が動作するゲストＯＳ２３０を、新たな待機系と設定する。
【００９５】
また、Ｓ２６２の処理において、復帰制御部１５０は、１つのハイパーバイザ２１０に対して、本番系のアプリケーション２４０及び待機系のアプリケーション２４０の起動を指示する。この指示に応じて、ハイパーバイザ２１０は、本番系のゲストＯＳ２３０上で本番系のアプリケーション２４０を起動する。また、ハイパーバイザ２１０は、待機系のゲストＯＳ２３０上で待機系のアプリケーション２４０を起動する。
【００９６】
上述したように、実施の形態２にかかる多重化システム５０においても、複数のコンピュータ（仮想マシン２２０）で実行されているアプリケーション２４０にかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザに対して、アプリケーション２４０の復帰処理の選択肢を提示するように構成されている。したがって、実施の形態２にかかる多重化システム５０においても、アプリケーションについて異常が発生した場合であっても、ユーザの選択に応じて適切にアプリケーションの復帰動作を行うことが可能となる。また、実施の形態２にかかる多重化システム５０においても、ユーザが画面表示内容の比較を行うことができればよいので、アプリケーションの処理に関して厳密に同期を行う必要はない。したがって、実施の形態２にかかる多重化システム５０においても、上述したフォールトトレラント技術と比較して、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことが可能となる。
【００９７】
このように、実施の形態２にかかる多重化システム５０のように、ハードウェア２０２が複数ない場合であっても、実施の形態１にかかる多重化システム５０と実質的に同様の効果を奏し得る。一方、実施の形態１にかかる多重化システム５０は、ハードウェア２０２を複数有している。言い換えると、複数のコンピュータが互いに別のハードウェア２０２に実装されている。したがって、実施の形態１にかかる多重化システム５０は、ハードウェア２０２の障害に起因するアプリケーション２４０の異常が発生した場合であっても、適切に対処することができる。これに対し、実施の形態２にかかる多重化システム５０では、１つのハードウェア２０２に複数のコンピュータ（仮想マシン２２０）が実装されている。したがって、実施の形態１とは異なり、実施の形態２にかかる多重化システム５０は、ハードウェア２０２の障害に起因するアプリケーション２４０の異常が発生した場合に、適切に対処することが困難である。
【００９８】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理（ステップ）の順序は、適宜、変更可能である。また、複数ある処理（ステップ）のうちの１つ以上は、省略されてもよい。また、Ｓ１３２にかかる再比較処理は、必ずしも必要でない。この場合、Ｎ＝１と設定される。
【００９９】
また、上述した実施の形態では、仮想マシン２２０によってアプリケーション２４０が実行されるとしたが、このような構成に限られない。ハードウェア２０２（ホストＯＳ）が、直接、アプリケーション２４０を実行するようにしてもよい。一方、上述したように、仮想マシン２２０によってアプリケーション２４０が実行されることによって、アプリケーション２４０の実行環境の複製を、容易に行うことが可能となる。
【０１００】
また、上述した実施の形態にかかる多重化システム５０は、アプリケーション２４０を実行する２つのコンピュータを有するとしたが、このような構成に限られない。アプリケーション２４０を実行するコンピュータの数は任意である。一方、コンピュータの数が３つ以上である場合、上述したフォールトトレラント技術では、アプリケーションの応答が異なる場合に、多数決によって異常となるシステムを判定することができる。しかしながら、コンピュータの数が２つである場合、上述したフォールトトレラント技術では、多数決を行うことができないので、異常となるシステムを判定することが困難である。しかしながら、本実施の形態にかかる多重化システム５０では、多数決を行うことなく、異常となるシステムを判定できるので、コンピュータの数が２つであっても、適切に、異常となるシステムを判定することが可能となる。つまり、本実施の形態にかかる多重化システム５０は、コンピュータの数が２つである場合に、特に有効である。
【０１０１】
また、上述した実施の形態では、復帰処理の際に、新たに待機系と設定されるゲストＯＳ２３０は、ユーザに選択されなかった方のアプリケーション２４０が動作するゲストＯＳ２３０としたが、このような構成に限られない。ユーザに選択されなかった方のアプリケーション２４０が動作するゲストＯＳ２３０及び新たな本番系のゲストＯＳ２３０とは別のゲストＯＳを、新たな待機系として設定してもよい。例えば、仮想マシン２２０のテンプレート（テンプレート６２）から新たな仮想マシン２２０を展開及び起動して、そのゲストＯＳを、新たな待機系として設定してもよい。あるいは、復帰処理を迅速化するため、新たな待機系と設定され得るゲストＯＳを、ゲストＯＳ２３０Ａ，２３０Ｂとは別に予め起動しておいてもよい。
【０１０２】
また、上述した実施の形態１の説明では、２つのハードウェア２０２Ａ，２０２Ｂの両方が故障する場合については言及していないが、本実施の形態は、２つのハードウェア２０２Ａ，２０２Ｂの両方が故障する場合についても適用可能である。このような場合に備えて、３台以上のハードウェア２０２が実装されていてもよく、それらのハードウェア２０２に、新たな待機系となり得るゲストＯＳ２３０を予め実装しておいてもよい。
【０１０３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する制御装置。
（付記２）
前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記１に記載の制御装置。
（付記３）
前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記１又は２に記載の制御装置。
（付記４）
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記３に記載の制御装置。
（付記５）
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記３又は４に記載の制御装置。
（付記６）
前記コンピュータは、仮想マシンによって実現される
付記１から５のいずれか１項に記載の制御装置。
（付記７）
前記複数のコンピュータの数は２つである
付記１から６のいずれか１項に記載の制御装置。
（付記８）
前記複数のコンピュータは互いに別のハードウェアに実装されている
付記１から７のいずれか１項に記載の制御装置。
（付記９）
本番系又は待機系としてそれぞれ動作する複数のコンピュータと、
前記複数のコンピュータを制御する制御装置と
を有し、
前記制御装置は、
前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する
多重化システム。
（付記１０）
前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記９に記載の多重化システム。
（付記１１）
前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記９又は１０に記載の多重化システム。
（付記１２）
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記１１に記載の多重化システム。
（付記１３）
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記１１又は１２に記載の多重化システム。
（付記１４）
前記コンピュータは、仮想マシンによって実現される
付記９から１３のいずれか１項に記載の多重化システム。
（付記１５）
前記複数のコンピュータの数は２つである
付記９から１４のいずれか１項に記載の多重化システム。
（付記１６）
前記複数のコンピュータは互いに別のハードウェアに実装されている
付記９から１５のいずれか１項に記載の多重化システム。
（付記１７）
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する
多重化方法。
（付記１８）
前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記１７に記載の多重化方法。
（付記１９）
前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記１７又は１８に記載の多重化方法。
（付記２０）
前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記１９に記載の多重化方法。
（付記２１）
前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記１９又は２０に記載の多重化方法。
（付記２２）
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップと
を前記複数のコンピュータとは別のコンピュータに実行させるプログラム。
【符号の説明】
【０１０５】
１  多重化システム
２  情報処理装置
４  ネットワーク
１０  制御装置
１２  多重化制御部
１３  画面比較部
１４  選択肢提示部
１５  復帰制御部
５０  多重化システム
６０  共有ディスク装置
６２  テンプレート
７０  ネットワーク
１００  制御装置
１０６  入出力部
１１０  仮想基盤クライアント
１１２  多重化制御部
１１４  本番系設定部
１１６  多重化処理部
１２０  入力送信部
１３０  画面比較部
１４０  選択肢提示部
１５０  復帰制御部
１５２  本番系選択部
１５４  環境複製部
２００  情報処理装置
２０２  ハードウェア
２１０  ハイパーバイザ
２２０  仮想マシン
２３０  ゲストＯＳ
２４０  アプリケーション
２５０  ＶＭツール
【図１】
2018169841.tif 000003
【図２】
2018169841.tif 000004
【図３】
2018169841.tif 000005
【図４】
2018169841.tif 000006
【図５】
2018169841.tif 000007
【図６】
2018169841.tif 000008
【図７】
2018169841.tif 000009
【図８】
2018169841.tif 000010
【図９】
2018169841.tif 000011
【図１０】
2018169841.tif 000012
【図１１】
2018169841.tif 000013