(57)【要約】【課題】アプリケーションと通信できなくなった情報処理装置に通信継続方法を判断するための情報を簡易な処理で通知する。【解決手段】管理装置１０は、情報処理装置３へのアプリケーション１ａの移行処理の開始に応じて送信された状態情報を受信すると、移行中であることを管理情報１１ａに記録し、移行処理の完了に応じて送信された、状態情報と移行先を示す移行先情報１１ｂとを受信すると、移行済みであることを管理情報１１ａに記録するとともに移行先情報１１ｂを記憶部１１に格納し、アプリケーション１ａとの通信の失敗に応じて情報処理装置２から送信された問合せを受信すると、管理情報１１ａに基づいてアプリケーション１ａの状態を情報処理装置２に通知するとともに、移行済みの場合には移行先情報１１ｂを情報処理装置２に送信する。【選択図】図１
2020173498.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置で動作するアプリケーションの状態を管理するための管理情報を記憶する記憶部と、
前記アプリケーションから第２の情報処理装置へのデータ送信に応じて前記第１の情報処理装置から送信された、前記アプリケーションが正常に通信可能であることを示す第１の状態情報を受信すると、前記第１の状態情報が示す状態を前記管理情報に記録し、
前記第１の情報処理装置から第３の情報処理装置への前記アプリケーションの移行処理の開始に応じて前記第１の情報処理装置から送信された、前記アプリケーションが移行中であることを示す第２の状態情報を受信すると、前記第２の状態情報が示す状態を前記管理情報に記録し、
前記移行処理の完了に応じて前記第３の情報処理装置から送信された、前記アプリケーションが移行済みであることを示す第３の状態情報と前記アプリケーションの移行先を示す移行先情報とを受信すると、前記第３の状態情報が示す状態を前記管理情報に記録するとともに、前記移行先情報を前記記憶部に格納し、
前記アプリケーションとの通信の失敗に応じて前記第２の情報処理装置から送信された問合せを受信すると、前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知するとともに、前記管理情報に前記第３の状態情報が示す状態が記録されている場合には前記移行先情報を前記第２の情報処理装置に送信する、処理部と、
を有する管理装置。
【請求項２】
前記管理情報は、前記アプリケーションと、前記第２の情報処理装置で動作して前記アプリケーションと通信する他のアプリケーションとに対応付けられており、
前記問合せは、前記他のアプリケーションと前記アプリケーションとの通信の失敗に応じて、前記他のアプリケーションの識別情報が指定された状態で送信され、
前記処理部は、受信した前記問合せにおいて指定された前記識別情報に基づいて前記管理情報を特定し、特定した前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知する、
請求項１記載の管理装置。
【請求項３】
アプリケーションが動作する第１の情報処理装置と、前記アプリケーションと通信する第２の情報処理装置と、第３の情報処理装置と、管理装置とを有し、
前記第１の情報処理装置は、前記アプリケーションから前記第２の情報処理装置へのデータ送信に応じて、前記アプリケーションが正常に通信可能であることを示す第１の状態情報を送信し、前記第１の情報処理装置から前記第３の情報処理装置への前記アプリケーションの移行処理の開始に応じて、前記アプリケーションが移行中であることを示す第２の状態情報を送信し、
前記第３の情報処理装置は、前記移行処理が完了すると、前記アプリケーションが移行済みであることを示す第３の状態情報と前記アプリケーションの移行先を示す移行先情報とを送信し、
前記第２の情報処理装置は、前記アプリケーションとの通信に失敗すると、前記管理装置に問合せを送信し、
前記管理装置は、前記第１の状態情報を受信すると、前記第１の状態情報が示す状態を、前記アプリケーションの状態を管理するための管理情報に記録し、前記第２の状態情報を受信すると、前記第２の状態情報が示す状態を前記管理情報に記録し、前記第３の状態情報および前記移行先情報を受信すると、前記第３の状態情報が示す状態を前記管理情報に記録するとともに前記移行先情報を記憶部に格納し、前記問合せを受信すると、前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知するとともに、前記管理情報に前記第３の状態情報が示す状態が記録されている場合には前記移行先情報を前記第２の情報処理装置に送信する、
情報処理システム。
【請求項４】
前記第２の情報処理装置は、
前記アプリケーションに対する送信データの送信に失敗したとき、前記問合せを送信し、
前記問合せの送信に応じて前記管理装置から通知された状態に基づき、前記アプリケーションが前記移行処理を完了した状態である場合には、前記管理装置から受信した前記移行先情報に基づいて前記送信データを前記第３の情報処理装置に送信する、
請求項３記載の情報処理システム。
【請求項５】
前記第２の情報処理装置では、前記アプリケーションと通信する他のアプリケーションが動作し、
前記第２の情報処理装置は、
前記他のアプリケーションから、前記第１の情報処理装置を送信先とした前記アプリケーションに対する第１の送信データが出力されたとき、前記第１の送信データを前記第１の情報処理装置に送信し、
前記第１の送信データの送信に失敗したとき、前記問合せを送信し、
前記問合せの送信に応じて前記管理装置から通知された状態に基づき、前記アプリケーションが前記移行処理を完了した状態である場合には、前記管理装置から受信した前記移行先情報に基づいて前記第１の送信データを前記第３の情報処理装置に送信するとともに、前記移行先情報を保持し、
前記他のアプリケーションから、前記第１の情報処理装置を送信先とした前記アプリケーションに対する第２の送信データが出力されたとき、保持された前記移行先情報に基づき、前記第２の送信データの送信先を前記第３の情報処理装置に変換して送信する、
請求項３記載の情報処理システム。
【請求項６】
前記第２の情報処理装置では、前記アプリケーションと通信する他のアプリケーションが動作し、
前記第２の情報処理装置は、前記他のアプリケーションが前記アプリケーションと通信するための送信先アドレスとして前記第１の情報処理装置のアドレスが設定された定義情報を保持し、
前記他のアプリケーションは、前記アプリケーションに送信データを送信する際、前記定義情報に基づいて送信先を指定し、
前記第２の情報処理装置は、
前記他のアプリケーションから、前記第１の情報処理装置が送信先として指定された前記アプリケーションに対する前記送信データが出力されたとき、前記送信データを前記第１の情報処理装置に送信し、
前記送信データの送信に失敗したとき、前記問合せを送信し、
前記問合せの送信に応じて前記管理装置から通知された状態に基づき、前記アプリケーションが前記移行処理を完了した状態である場合には、前記管理装置から受信した前記移行先情報に基づいて、前記定義情報に設定された送信先アドレスを前記第３の情報処理装置のアドレスに書き替える、
請求項３記載の情報処理システム。
【請求項７】
前記管理情報は、前記アプリケーションと、前記第２の情報処理装置で動作して前記アプリケーションと通信する他のアプリケーションとに対応付けられており、
前記第２の情報処理装置は、前記他のアプリケーションと前記アプリケーションとの通信に失敗したとき、前記問合せを、前記他のアプリケーションの識別情報が指定された状態で送信し、
前記管理装置は、受信した前記問合せにおいて指定された前記識別情報に基づいて前記管理情報を特定し、特定した前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知する、
請求項３または４記載の情報処理システム。
【請求項８】
コンピュータに、
第１の情報処理装置で動作するアプリケーションから第２の情報処理装置へのデータ送信に応じて前記第１の情報処理装置から送信された、前記アプリケーションが正常に通信可能であることを示す第１の状態情報を受信すると、前記第１の状態情報が示す状態を、前記アプリケーションの状態を管理するための管理情報に記録し、
前記第１の情報処理装置から第３の情報処理装置への前記アプリケーションの移行処理の開始に応じて前記第１の情報処理装置から送信された、前記アプリケーションが移行中であることを示す第２の状態情報を受信すると、前記第２の状態情報が示す状態を前記管理情報に記録し、
前記移行処理の完了に応じて前記第３の情報処理装置から送信された、前記アプリケーションが移行済みであることを示す第３の状態情報と前記アプリケーションの移行先を示す移行先情報とを受信すると、前記第３の状態情報が示す状態を前記管理情報に記録するとともに、前記移行先情報を記憶部に格納し、
前記アプリケーションとの通信の失敗に応じて前記第２の情報処理装置から送信された問合せを受信すると、前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知するとともに、前記管理情報に前記第３の状態情報が示す状態が記録されている場合には前記移行先情報を前記第２の情報処理装置に送信する、
処理を実行させる管理プログラム。
【請求項９】
前記管理情報は、前記アプリケーションと、前記第２の情報処理装置で動作して前記アプリケーションと通信する他のアプリケーションとに対応付けられており、
前記問合せは、前記他のアプリケーションと前記アプリケーションとの通信の失敗に応じて、前記他のアプリケーションの識別情報が指定された状態で送信され、
前記アプリケーションの状態の通知では、受信した前記問合せにおいて指定された前記識別情報に基づいて前記管理情報を特定し、特定した前記管理情報に基づいて前記アプリケーションの状態を前記第２の情報処理装置に通知する、
請求項８記載の管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、情報処理システムおよび管理プログラムに関する。
【背景技術】
【０００２】
情報処理システムに含まれる各情報処理装置では、様々なアプリケーションが動作している。このような情報処理システムでは、アプリケーションの状態（例えば、正常に動作しているか、異常停止しているか）を管理するための仕組みを備えるものが多い。
【０００３】
このような技術の例として、次のようなネットワーク通信管理システムが提案されている。このシステムでは、あるコンピュータでのサーバアプリケーションの起動や停止の状況が隣接するコンピュータ間で順次通知されていくことで、各コンピュータがサーバアプリケーションの状態を管理できるようになっている。
【０００４】
また、サーバの切り替えに関して、次のようなクライアントサーバシステムが提案されている。このシステムでは、サーバ切り替え要因が発生すると、接続先切り替え装置が、クライアントから要因発生サーバへの信号が切り替え先のサーバへ配信されるように、この信号の宛先アドレスを書き替えて送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１７５５６０号公報
【特許文献２】特開２０００−３２２３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、情報処理システムでは、ある情報処理装置で動作していたアプリケーションが他の情報処理装置に移行する場合がある。例えば、アプリケーションが動作している情報処理装置が老朽化する、あるいはその情報処理装置のリソースが足りなくなった場合に、そのアプリケーションを他の情報処理装置に移行させる。
【０００７】
ここで、第１の情報処理装置で動作するアプリケーションと第２の情報処理装置とが通信している状態から、そのアプリケーションが第３の情報処理装置に移行した場合、第２の情報処理装置は移行前のアプリケーションと通信できなくなる。第２の情報処理装置が移行後のアプリケーションと通信を継続できるようにするには、第２の情報処理装置が、アプリケーションが移行したことやその移行先の情報を認識できる必要がある。しかし、第２の情報処理装置がアプリケーションとの通信を継続する方法をどのようにして判断するか、さらに、その判断を可能にするための処理をどのようにして簡易な仕組みで実現するかという点に課題がある。
【０００８】
１つの側面では、本発明は、アプリケーションと通信できなくなった情報処理装置に通信継続方法を判断するための情報を簡易な処理で通知できるようにした管理装置、情報処理システムおよび管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、記憶部と処理部とを有する次のような管理装置が提供される。この管理装置において、記憶部は、第１の情報処理装置で動作するアプリケーションの状態を管理するための管理情報を記憶する。処理部は、アプリケーションから第２の情報処理装置へのデータ送信に応じて第１の情報処理装置から送信された、アプリケーションが正常に通信可能であることを示す第１の状態情報を受信すると、第１の状態情報が示す状態を管理情報に記録し、第１の情報処理装置から第３の情報処理装置へのアプリケーションの移行処理の開始に応じて第１の情報処理装置から送信された、アプリケーションが移行中であることを示す第２の状態情報を受信すると、第２の状態情報が示す状態を管理情報に記録し、移行処理の完了に応じて第３の情報処理装置から送信された、アプリケーションが移行済みであることを示す第３の状態情報とアプリケーションの移行先を示す移行先情報とを受信すると、第３の状態情報が示す状態を管理情報に記録するとともに、移行先情報を記憶部に格納し、アプリケーションとの通信の失敗に応じて第２の情報処理装置から送信された問合せを受信すると、管理情報に基づいてアプリケーションの状態を第２の情報処理装置に通知するとともに、管理情報に第３の状態情報が示す状態が記録されている場合には移行先情報を第２の情報処理装置に送信する。
【００１０】
また、１つの案では、アプリケーションが動作する第１の情報処理装置と、アプリケーションと通信する第２の情報処理装置と、第３の情報処理装置、管理装置とを有する情報処理システムが提供される。この情報処理システムにおいて、第１の情報処理装置は、アプリケーションから第２の情報処理装置へのデータ送信に応じて、アプリケーションが正常に通信可能であることを示す第１の状態情報を送信し、第１の情報処理装置から第３の情報処理装置へのアプリケーションの移行処理の開始に応じて、アプリケーションが移行中であることを示す第２の状態情報を送信する。第３の情報処理装置は、移行処理が完了すると、アプリケーションが移行済みであることを示す第３の状態情報とアプリケーションの移行先を示す移行先情報とを送信する。第２の情報処理装置は、アプリケーションとの通信に失敗すると、管理装置に問合せを送信する。管理装置は、第１の状態情報を受信すると、第１の状態情報が示す状態を、アプリケーションの状態を管理するための管理情報に記録し、第２の状態情報を受信すると、第２の状態情報が示す状態を管理情報に記録し、第３の状態情報および移行先情報を受信すると、第３の状態情報が示す状態を管理情報に記録するとともに移行先情報を記憶部に格納し、問合せを受信すると、管理情報に基づいてアプリケーションの状態を第２の情報処理装置に通知するとともに、管理情報に第３の状態情報が示す状態が記録されている場合には移行先情報を第２の情報処理装置に送信する。
【００１１】
さらに、１つの案では、上記の管理装置と同様の処理をコンピュータに実行させる管理プログラムが提供される。
【発明の効果】
【００１２】
１つの側面では、アプリケーションと通信できなくなった情報処理装置に通信継続方法を判断するための情報を簡易な処理で通知できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係る情報処理システムの構成例を示す図である。
【図３】サーバのハードウェア構成例を示す図である。
【図４】サーバ間でのアプリケーションの移行について説明するための図である。
【図５】状態管理サーバを用いたサーバ状態管理の概要を示す図である。
【図６】サーバおよび状態管理サーバが備える処理機能の構成例を示すブロック図である。
【図７】状態管理情報の構成例を示す図である。
【図８】マネージャの移行処理例を示す第１の図である。
【図９】マネージャの移行処理例を示す第２の図である。
【図１０】マネージャの移行処理例を示す第３の図である。
【図１１】マネージャの移行処理例を示す第４の図である。
【図１２】マネージャの通常通信時の処理例を示すフローチャートである。
【図１３】マネージャの移行通知時の処理例を示すフローチャートである。
【図１４】エージェントの通常通信時の処理例を示すフローチャート（その１）である。
【図１５】エージェントの通常通信時の処理例を示すフローチャート（その２）である。
【図１６】エージェントによる情報送信の処理例を示すフローチャートである。
【図１７】状態管理の処理例を示すフローチャートである。
【図１８】問合せ応答の処理例を示すフローチャートである。
【図１９】状態管理情報の遷移の例を示す図（その１）である。
【図２０】状態管理情報の遷移の例を示す図（その２）である。
【図２１】第３の実施の形態におけるマネージャの移行処理例を示す図である。
【図２２】第３の実施の形態におけるエージェントの通常通信時の処理例を示すフローチャート（その１）である。
【図２３】第３の実施の形態におけるエージェントの通常通信時の処理例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図１に示す情報処理システムは、情報処理装置１〜３と管理装置１０を有する。
【００１５】
情報処理装置１では、情報処理装置２と通信するアプリケーション１ａが動作する。アプリケーション１ａの処理は、例えば、情報処理装置１が備えるプロセッサが所定のアプリケーションプログラムを実行することで実現される。アプリケーション１ａは、アプリケーションプログラムによって実行されるひとまとめのプロセスと見なすこともできる。情報処理装置２は、アプリケーション１ａと通信する。情報処理装置３は、本実施の形態では、アプリケーション１ａの移行先として利用される。アプリケーション１ａが情報処理装置３に移行すると、情報処理装置３上のアプリケーション１ａが情報処理装置２と通信するようになる。
【００１６】
管理装置１０は、記憶部１１と処理部１２を有する。記憶部１１は、例えば、管理装置１０が備える記憶装置である。記憶部１１には、情報処理装置１におけるアプリケーション１ａの状態を管理するための管理情報１１ａと、アプリケーション１ａの移行先を示す移行先情報１１ｂが記憶される。処理部１２は、例えば、管理装置１０が備えるプロセッサである。処理部１２は、情報処理装置１からの状態情報を受信し、受信した状態情報が示すアプリケーション１ａの状態を管理情報１１ａに記録する。また、処理部１２は、情報処理装置２から問合せを受信すると、管理情報１１ａに基づいてアプリケーション１ａの状態を情報処理装置２に通知する。
【００１７】
以下、情報処理システムにおける処理例について説明する。
情報処理装置１は、アプリケーション１ａから情報処理装置２へのデータ送信（ステップＳ１ａ）に応じて、アプリケーション１ａが正常に通信可能であることを示す状態情報を管理装置１０へ送信する（ステップＳ１ｂ）。管理装置１０の処理部１２は、受信した状態情報が示すアプリケーション１ａの状態（すなわち、通信可能な状態）を管理情報１１ａに記録する。
【００１８】
また、情報処理装置１は、情報処理装置１から情報処理装置３へのアプリケーション１ａの移行処理の開始（ステップＳ２ａ）に応じて、アプリケーション１ａが移行中であることを示す状態情報を管理装置１０へ送信する（ステップＳ２ｂ）。管理装置１０の処理部１２は、受信した状態情報が示すアプリケーション１ａの状態（すなわち、移行中の状態）を管理情報１１ａに記録する。
【００１９】
情報処理装置３は、アプリケーション１ａの移行が完了すると（ステップＳ３ａ）、アプリケーション１ａが移行済みであることを示す状態情報と、アプリケーション１ａの移行先を示す移行先情報１１ｂとを管理装置１０へ送信する（ステップＳ３ｂ）。移行先情報１１ｂは、情報処理装置３を示す情報であり、例えば情報処理装置３のネットワークアドレスを示す。管理装置１０の処理部１２は、受信した状態情報が示すアプリケーション１ａの状態（すなわち、移行済みの状態）を管理情報１１ａに記録するとともに、受信した移行先情報１１ｂを記憶部１１に格納する。
【００２０】
一方、情報処理装置２は、情報処理装置１のアプリケーション１ａとの通信に失敗すると（ステップＳ４ａ）、管理装置１０に対し、アプリケーション１ａの状態を問い合わせるための問合せを送信する（ステップＳ４ｂ）。管理装置１０の処理部１２は、問合せを受信すると、管理情報１１ａに基づいて、アプリケーション１ａの状態を情報処理装置２に通知する（ステップＳ４ｃ）。また、処理部１２は、管理情報１１ａに、アプリケーション１ａが移行済みの状態であることが記録されている場合には、状態の通知とともに、移行先情報１１ｂを情報処理装置２に送信する（ステップＳ４ｄ）。
【００２１】
このように、情報処理装置２は、管理装置１０に問合せを送信することにより、通信先のアプリケーション１ａの状態を認識できる。例えば、情報処理装置２は、アプリケーション１ａとの通信に失敗したとき、アプリケーション１ａが通信可能、移行中、移行済みのいずれの場合でも、アプリケーション１ａに異常が発生しておらず、アプリケーション１ａとの通信を継続可能と判断できる。情報処理装置２は、この判断結果に基づき、その後にアプリケーション１ａとの通信を再実行できる。
【００２２】
例えば、情報処理装置２は、問合せの送信に応じて、アプリケーション１ａが移行中であることが管理装置１０から通知された場合、一定時間後に、情報処理装置１を通信先としたアプリケーション１ａとの通信を再実行する。このとき、アプリケーション１ａが情報処理装置３に移行済みであれば、再度通信に失敗し、問合せが管理装置１０に送信されて、管理装置１０からは、アプリケーション１ａが移行済みであることの通知と、移行先情報１１ｂとが送信される。情報処理装置２は、これらの情報に基づいて、アプリケーション１ａが情報処理装置３に移行済みであることを認識し、送信先に関する設定変更を行い、移行先の情報処理装置３を通信先としたアプリケーション１ａとの通信を再実行することができる。このとき通信に成功するので、情報処理装置２はアプリケーション１ａとの通信を継続できる。
【００２３】
このように、第１の実施の形態では、アプリケーション１ａと通信できなくなった情報処理装置２に対して、通信継続方法を判断するための情報を通知できる。情報処理装置２は、このような通知を受けることで、送信情報を再送する、送信先に関する設定変更を行うなど、アプリケーション１ａの状態に応じた適切な通信継続方法を判断することが可能となる。また、このような通知を可能にするための処理を簡易に実現できる。
【００２４】
すなわち、情報処理装置１は、データ送信や移行開始、移行完了というアプリケーション１ａに関する既存の処理の実行を契機として、アプリケーション１ａの状態を管理装置１０に通知する。情報処理装置１が、このような処理とは独立した処理によってアプリケーション１ａの状態を管理装置１０に通知する（例えば、定期的に通知する）場合と比較して、状態通知のための処理を簡易化できる。
【００２５】
また、管理装置１０は、ポーリングなどによる管理装置１０からの要求によってアプリケーション１ａの状態を検出するのではなく、情報処理装置１からの自律的な状態通知によってアプリケーション１ａの状態を認識する。そして、管理装置１０は、情報処理装置２からの問合せに応じて、アプリケーション１ａの状態に関する情報を提供する。これにより、管理装置１０による状態管理および情報提供の処理を簡易化できる。
【００２６】
したがって、第１の実施の形態では、アプリケーション１ａと通信できなくなった情報処理装置２に対して、通信継続方法を判断するための情報を簡易な処理によって通知できる。
【００２７】
〔第２の実施の形態〕
図２は、第２の実施の形態に係る情報処理システムの構成例を示す図である。図２に示す情報処理システムは、サーバ１００，２００，３００、状態管理サーバ４００およびストレージ装置５００を含む。また、これらの装置はネットワーク６００を介して接続されている。
【００２８】
サーバ１００，２００，３００は、各種のアプリケーションソフトウェア（アプリケーションプログラム）が実行される汎用のサーバコンピュータである。状態管理サーバ４００は、サーバ１００，２００，３００の状態を管理するためのサーバコンピュータである。なお、状態管理サーバ４００も、サーバ１００，２００，３００のような汎用サーバの１つを用いて実現されてもよい。
【００２９】
ストレージ装置５００は、ストレージ５１０と制御装置５２０を備える。ストレージ５１０には、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの複数台の不揮発性記憶装置が搭載されている。制御装置５２０は、ストレージ５１０に対するアクセスを制御するストレージ制御装置である。
【００３０】
例えば、制御装置５２０は、ストレージ５１０内の記憶装置を用いて論理ボリュームを生成する。制御装置５２０は、サーバ１００，２００，３００のうち、業務処理を行うサーバ（業務サーバ）から論理ボリュームに対するアクセスを受け付けることで、ストレージ５１０にアクセスする。また、制御装置５２０は、ストレージ５１０内の記憶装置を用いて、論理ボリュームのデータを他の論理ボリュームにバックアップするバックアップ処理を実行することができる。
【００３１】
さらに、論理ボリュームが仮想ボリュームである場合、制御装置５２０は、仮想ボリュームに対して物理領域を動的に割り当てることができる。また、アクセス性能が異なる複数種類の記憶装置がストレージ５１０に搭載されている場合、制御装置５２０は、仮想ボリュームに対する業務サーバからのアクセス頻度に応じて、仮想ボリュームに割り当てる物理領域をアクセス性能が異なる記憶装置の間で動的に変更することができる。このような割り当て変更処理は、ストレージの階層制御と呼ばれる。
【００３２】
ここで、初期状態では、サーバ１００は、ストレージ装置５００の制御に関するマネージャ１１０を備え、サーバ２００は、ストレージ装置５００の制御に関するエージェント２１０を備えるものとする。マネージャ１１０およびエージェント２１０は、いずれもアプリケーションソフトウェアによって実現されるアプリケーションの一例である。例えば、マネージャ１１０は、サーバ２００の業務処理によって利用可能な論理ボリュームに関する管理情報を保持する。マネージャ１１０は、この管理情報に基づいて処理対象の論理ボリュームを指定して、論理ボリュームについてのバックアップ処理の実行や、階層制御において論理ボリュームに割り当てられている記憶領域の変更を、エージェント２１０に指示することができる。エージェント２１０は、マネージャ１１０からの指示に応じて、バックアップ処理や階層制御における記憶領域の変更を、ストレージ装置５００の制御装置５２０に指示する。これにより、エージェント２１０は、マネージャ１１０からのストレージ制御に関する実行指示を仲介する。
【００３３】
また、サーバ１００，２００，３００の間では、アプリケーションが移行する場合がある。例えば、あるサーバにおける処理負荷やリソースの使用状況において、そのサーバで動作しているアプリケーションを別のサーバに移行させ、そのサーバで動作させる。これ以後、例として、サーバ１００のマネージャ１１０をサーバ３００に移行させる場合について説明する。図２に示すマネージャ３１０は、サーバ３００に移行してマネージャ１１０の処理を引き継ぐことが可能になった、移行後のマネージャを示す。
【００３４】
図３は、サーバのハードウェア構成例を示す図である。図３では、サーバ１００，２００，３００のうちサーバ１００について例示する。
サーバ１００は、例えば、図３に示すようなコンピュータとして実現される。図３に示すサーバ１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ１０３、グラフィックインタフェース（Ｉ／Ｆ）１０４、入力インタフェース（Ｉ／Ｆ）１０５、読み取り装置１０６および通信インタフェース（Ｉ／Ｆ）１０７を備える。
【００３５】
プロセッサ１０１は、サーバ１００全体を統括的に制御する。プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３６】
ＲＡＭ１０２は、サーバ１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションソフトウェアの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３７】
ＨＤＤ１０３は、サーバ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションソフトウェア、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【００３８】
グラフィックインタフェース１０４には、表示装置１０４ａが接続されている。グラフィックインタフェース１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａに表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【００３９】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４０】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００４１】
通信インタフェース１０７は、ネットワーク６００を介してサーバ２００などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、サーバ１００の処理機能を実現することができる。なお、サーバ２００，３００、状態管理サーバ４００および制御装置５２０も、図３のようなハードウェア構成のコンピュータとして実現可能である。
【００４２】
図４は、サーバ間でのアプリケーションの移行について説明するための図である。図４に示すように、サーバ１００ではマネージャ１１０が動作し、サーバ２００ではエージェント２１０が動作する。前述のように、エージェント２１０は、マネージャ１１０からの指示に応じて動作するので、マネージャ１１０とエージェント２１０との間では通信が行われる。
【００４３】
また、サーバ１００は、マネージャ１１０の処理に必要な各種のデータが設定されている定義情報１１１を保持する。マネージャ１１０は、定義情報１１１を参照しながら処理を実行する。同様に、サーバ２００は、エージェント２１０の処理に必要な各種のデータが設定されている定義情報２１１を保持する。エージェント２１０は、定義情報２１１を参照しながら処理を実行する。
【００４４】
定義情報１１１，２１１は、例えば、通信先のアプリケーションが動作するサーバのＩＰ（Internet Protocol）アドレスを含む。ここでは例として、サーバ１００のＩＰアドレスは「１０．１００．１００．１０」であり、サーバ２００のＩＰアドレスは「１０．１００．１００．２０」であるとする。この場合、例えば、エージェント２１０の定義情報２１１には、通信先のサーバ１００のＩＰアドレス（図４では「マネージャＩＰ」と表記）として「１０．１００．１００．１０」が設定されている。
【００４５】
マネージャ１１０をサーバ１００からサーバ３００に移行する場合には、マネージャ１１０に対応するアプリケーションソフトウェアや定義情報１１１を、移行先のサーバ３００に設定する処理が必要になる。このような移行処理は、例えば、マネージャ１１０に対応する移行ツールを用いて自動的に実行される場合もある。
【００４６】
しかしながら、このような移行処理を実行するだけでは、エージェント２１０は移行先のマネージャ３１０と通信することができない。なぜなら、エージェント２１０の定義情報２１１には通信先サーバのＩＰアドレスとしてサーバ１００のＩＰアドレスが設定されたままであり、エージェント２１０はこの定義情報２１１に基づいてサーバ１００としか通信できないからである。
【００４７】
エージェント２１０が移行先のマネージャ３１０と通信できるようにするには、例えば、移行先のサーバ３００のＩＰアドレスを移行元のサーバ１００と同一の値に設定し直さなければならない。図４の例では、サーバ３００のＩＰアドレスは「１０．１００．１００．３０」であり、これをサーバ１００と同じ「１０．１００．１００．１０」に設定し直さなければならない。
【００４８】
例えば、サーバ１００の全体の機能をサーバ３００に移行するのであれば、サーバ２００の通信先のＩＰアドレスをサーバ１００からサーバ３００に設定し直せばよい。しかし、本実施の形態では、サーバ単位でなく、アプリケーション単位でサーバ間の移行が行われる。例えば、サーバ１００のリソースが不足してきたため、サーバ１００のあるアプリケーションがリソースに余裕のあるサーバ３００に移行し、別のアプリケーションはリソースに余裕のある、サーバ３００とは別のサーバに移行することもあり得る。このため、通信先ＩＰアドレスの設定し直しは、サーバとアプリケーションとの組み合わせごとに行う必要があり、作業に大きな手間がかかる。
【００４９】
また、エージェント２１０は、マネージャ１１０の移行処理の実行中にはマネージャ１１０と通信できない状態となる。エージェント２１０は、マネージャ１１０の状態を把握していないので、マネージャ１１０と通信しようとしてそれができなかった場合、なぜ通信できないのかを判断できず、原因が特定できないエラーが発生したとしか判断できない。例えば、エージェント２１０はこのとき、サーバ２００に接続された管理端末に対して、エラーの発生を通知できるのみであり、そのエラーの具体的な内容を通知できない。
【００５０】
以上の説明では、マネージャ１１０の移行について述べたが、エージェント２１０を他のサーバに移行させる場合でも同様の問題が生じる。
図５は、状態管理サーバを用いたサーバ状態管理の概要を示す図である。本実施の形態では、状態管理サーバ４００を用いて、サーバ１００，２００，３００の状態を管理し、サーバ１００，２００，３００が状態管理サーバ４００からの情報提供によって通信先のサーバの状態を認識できるようにする。
【００５１】
状態管理サーバ４００は、サーバ１００，２００，３００において動作するアプリケーションの状態を示す情報が登録された状態管理情報４３０を保持する。また、サーバ１００，２００，３００には、状態管理サーバ４００との通信を可能にする状態通知部が設けられる。例えば図５に示すように、サーバ１００には、マネージャ１１０に対応する状態通知部１２０が設けられ、サーバ２００には、エージェント２１０に対応する状態通知部２２０が設けられる。
【００５２】
サーバ１００，２００，３００のアプリケーションの状態は、サーバ１００，２００，３００のそれぞれからの自律的なデータ送信によって状態管理サーバ４００に通知される。例えば、状態通知部１２０は、サーバ１００のマネージャ１１０の状態を自律的に状態管理サーバ４００に通知する。また、状態通知部１２０は、サーバ２００のエージェント２１０の状態を状態管理サーバ４００に問い合わせ、その状態に関する情報の提供を状態管理サーバ４００から受けることができる。同様に、状態通知部２２０は、サーバ２００のエージェント２１０の状態を自律的に状態管理サーバ４００に通知する。また、状態通知部２２０は、サーバ１００のマネージャ１１０の状態を状態管理サーバ４００に問い合わせ、その状態に関する情報の提供を状態管理サーバ４００から受けることができる。
【００５３】
例えばマネージャ１１０の状態に関しては、状態管理情報４３０には少なくとも、マネージャ１１０がエージェント２１０と通信可能であるか、マネージャ１１０が他のサーバへの移行中であるか、マネージャ１１０が他のサーバへ移行済みであるかのいずれかの状態が保持される。また、マネージャ１１０が移行済みである場合、状態管理情報４３０にはその移行先のサーバの情報も保持される。
【００５４】
状態通知部２２０は、エージェント２１０がマネージャ１１０と通信できない場合に、マネージャ１１０の状態を状態管理サーバ４００に問い合わせる。マネージャ１１０が移行中または移行済みである場合、状態通知部２２０は状態管理サーバ４００からの応答情報によってそのようなマネージャ１１０の状態を認識し、エージェント２１０に伝達できる。
【００５５】
また、マネージャ１１０が移行済みの場合、状態通知部２２０は状態管理サーバ４００から移行先のサーバのＩＰアドレスを受信する。第２の実施の形態では、状態通知部２２０は、受信したＩＰアドレスを保持し、それ以後、エージェント２１０からサーバ１００のマネージャ１１０宛ての送信情報を検知すると、その送信先のＩＰアドレスを移行先サーバのＩＰアドレスに振り替えて送信情報を送信する。これにより、移行先サーバのＩＰアドレスを手動で変更する手間を省略できる。
【００５６】
例えば、サーバ２００のエージェント２１０と通信するサーバ１００のマネージャ１１０が、サーバ３００に移行するとする。これとともに、サーバ２００で動作する別のアプリケーション（第１アプリケーションとする）と通信する、サーバ１００で動作する別のアプリケーションが、さらに別のサーバに移行するとする。本実施の形態によれば、これらの移行処理が完了した後、マネージャ１１０の通信先と第１アプリケーションの通信先の両方が自動的に移行先に振り替えられる。このため、エージェント２１０の定義情報２１１と第１アプリケーションの定義情報の両方について通信先ＩＰアドレスを設定し直す必要がなくなり、移行作業の効率を向上させることができる。
【００５７】
図６は、サーバおよび状態管理サーバが備える処理機能の構成例を示すブロック図である。
サーバ１００は、前述したマネージャ１１０および状態通知部１２０と、記憶部１３０を備える。マネージャ１１０および状態通知部１２０の処理は、プロセッサ１０１が所定のプログラムを実行することで実現される。記憶部１３０は、ＲＡＭ１０２、ＨＤＤ１０３など、サーバ１００が備える記憶装置の記憶領域として実現される。記憶部１３０には、マネージャ１１０に関する定義情報１１１が記憶される。
【００５８】
サーバ２００は、前述したエージェント２１０および状態通知部２２０と、記憶部２３０を備える。エージェント２１０および状態通知部２２０の処理は、サーバ２００が備えるプロセッサが所定のプログラムを実行することで実現される。記憶部２３０は、サーバ２００が備える記憶装置の記憶領域として実現される。記憶部２３０には、エージェント２１０に関する定義情報２１１が記憶される。
【００５９】
サーバ３００は、前述したマネージャ３１０と、状態通知部３２０および記憶部３３０を備える。マネージャ３１０および状態通知部３２０の処理は、サーバ３００が備えるプロセッサが所定のプログラムを実行することで実現される。記憶部３３０は、サーバ３００が備える記憶装置の記憶領域として実現される。記憶部３３０には、マネージャ３１０に関する定義情報３１１が記憶される。なお、マネージャ３１０、状態通知部３２０および定義情報３１１は、サーバ１００からサーバ３００へのマネージャ１１０の移行が完了したときに実装される。
【００６０】
状態通知部１２０はマネージャ１１０を送信元としたエージェント２１０との通信に関して、状態通知部２２０はエージェント２１０を送信元としたマネージャ１１０との通信に関して、状態通知部３２０はマネージャ３１０を送信元としたエージェント２１０との通信に関して、それぞれ同様の処理を実行する。
【００６１】
状態通知部１２０，２２０，３２０は、送信元アプリケーションから送信先アプリケーションへ送信される情報を捕捉する。状態通知部１２０，２２０，３２０は、捕捉した送信情報を送信先アプリケーションに送信するとともに、送信元アプリケーションが通信可能であることを状態管理サーバ４００に通知する。
【００６２】
また、状態通知部１２０，２２０，３２０は、送信先アプリケーションに対する情報送信が不可能の場合、送信先アプリケーションの状態を状態管理サーバ４００に問い合わせ、返信された状態を送信元アプリケーションに伝達する。さらに、状態通知部１２０，２２０，３２０は、送信先アプリケーションが移行済みの場合、その移行先サーバのＩＰアドレスを状態管理サーバ４００から受信し、アドレス変換情報に記録する。アドレス変換情報には、移行元サーバのＩＰアドレスと移行先サーバのＩＰアドレス（振替先ＩＰアドレス）とが対応付けて記録される。状態通知部１２０，２２０，３２０はそれ以後、送信元アプリケーションから送信先アプリケーションへの送信情報が出力されると、アドレス変換情報に基づき、その送信先のＩＰアドレスを移行先サーバのＩＰアドレスに振り替えて送信情報を送信する。図６では、状態通知部２２０に対応するアドレス変換情報２２１を例示している。アドレス変換情報２２１は、記憶部２３０に記憶され、移行元サーバ（例えばサーバ１００）のＩＰアドレスと、移行先サーバ（例えばサーバ３００）のＩＰアドレスとを対応付けて保持する。
【００６３】
また、状態通知部１２０，２２０，３２０は、送信元アプリケーションを他のサーバに移行させる移行処理が開始されると、送信元アプリケーションが移行中であることを状態管理サーバ４００に通知する。さらに、状態通知部１２０，２２０，３２０は、対応するアプリケーションが移行先のものであり、その移行処理が完了したとき、移行済みであることと、その移行先サーバ（自分自身が実装されているサーバ）のＩＰアドレスとを状態管理サーバ４００に送信する。
【００６４】
状態管理サーバ４００は、状態管理処理部４１０と記憶部４２０を備える。状態管理処理部４１０の処理は、状態管理サーバ４００が備えるプロセッサが所定のプログラムを実行することで実現される。記憶部４２０は、状態管理サーバ４００が備える記憶装置の記憶領域として実現される。記憶部４２０には、状態管理情報４３０が記憶される。
【００６５】
状態管理処理部４１０は、状態通知部１２０，２２０，３２０からの通知に応じて、対応する送信元アプリケーションの状態を示す情報を状態管理情報４３０に登録する。また、状態管理処理部４１０は、状態通知部１２０，２２０，３２０からの問合せに応じて、状態管理情報４３０を参照し、指定された送信先アプリケーションの状態を示す情報を返信する。状態管理情報４３０には、送信元のサーバおよびアプリケーションのそれぞれについて、送信元アプリケーションの状態や、振替先サーバのＩＰアドレスなどが登録される。
【００６６】
図７は、状態管理情報の構成例を示す図である。状態管理情報４３０は、サーバテーブル４３１、ソフトウェアテーブル４３２および通信テーブル４３３を含む。
サーバテーブル４３１は、サーバごとに生成される管理テーブルであり、サーバを識別するサーバＩＤと、サーバのＩＰアドレスとが登録される。
【００６７】
ソフトウェアテーブル４３２は、各サーバにおいて実行されるアプリケーションソフトウェア（以下、「ソフトウェア」と略称する）ごとに生成される管理テーブルである。すなわち、ソフトウェアテーブル４３２は、各サーバで動作するアプリケーションごとに存在する。ソフトウェアテーブル４３２には、ソフトウェアが実行されるサーバのサーバＩＤと、ソフトウェアを識別するソフトウェアＩＤと、ソフトウェアの状態とが登録される。
【００６８】
状態の項目には、例えば、「通信可」「サービス停止」「ソフトウェア異常」「移行中」「移行済み」のいずれかが登録される。「通信可」は、ソフトウェアが通信可能な状態を示す。「サービス停止」は、ソフトウェアによるサービスが停止していることを示す。「ソフトウェア異常」は、ソフトウェアの異常が発生していることを示す。「移行中」は、他のサーバへの移行処理中であることを示す。「移行済み」は、他のサーバへの移行処理が完了していることを示す。
【００６９】
通信テーブル４３３は、通信元のソフトウェアと通信先のソフトウェアとの組み合わせごとに生成される管理テーブルである。すなわち、通信テーブル４３３は、通信元アプリケーションと通信先アプリケーションとの組み合わせごとに存在する。通信テーブル４３３は、通信元サーバＩＤ、通信元ソフトウェアＩＤ、通信先サーバＩＤ、通信先ソフトウェアＩＤおよび振替先サーバＩＤの各項目を含む。通信元サーバＩＤは、通信元のソフトウェアが実行されているサーバのサーバＩＤを示す。通信元ソフトウェアＩＤは、通信元のソフトウェアのソフトウェアＩＤを示す。通信先サーバＩＤは、通信先のソフトウェアが実行されているサーバのサーバＩＤを示す。通信先ソフトウェアＩＤは、通信先のソフトウェアのソフトウェアＩＤを示す。振替先サーバＩＤは、通信先のソフトウェアが他のサーバに移行済みの場合に、移行先サーバのサーバＩＤを示す。通信テーブル４３３が登録された初期状態では、振替先サーバＩＤの項目には「Ｎｕｌｌ」が登録される。
【００７０】
例えば、図６に示すようにマネージャ１１０とエージェント２１０との通信が開始される状態では、次のような２つの通信テーブル４３３が登録される。第１の通信テーブル４３３には、通信元サーバＩＤとしてサーバ１００のサーバＩＤが登録され、通信元ソフトウェアＩＤとしてマネージャ１１０のソフトウェアＩＤが登録され、通信先サーバＩＤとしてサーバ２００のサーバＩＤが登録され、通信先ソフトウェアＩＤとしてエージェント２１０のソフトウェアＩＤが登録されている。第２の通信テーブル４３３には、通信元サーバＩＤとしてサーバ２００のサーバＩＤが登録され、通信元ソフトウェアＩＤとしてエージェント２１０のソフトウェアＩＤが登録され、通信先サーバＩＤとしてサーバ１００のサーバＩＤが登録され、通信先ソフトウェアＩＤとしてマネージャ１１０のソフトウェアＩＤが登録されている。例えばマネージャ１１０がサーバ３００に移行すると、第２の通信テーブル４３３の振替先サーバＩＤとして移行先のサーバ３００のサーバＩＤが登録される。
【００７１】
次に、図８〜図１１を用いて、サーバ１００のマネージャ１１０がサーバ３００に移行する場合の移行処理例について説明する。なお、図８〜図１１では、サーバ１００，３００のサーバＩＤをそれぞれ「サーバ＃１」「サーバ＃３」とする。また、マネージャ１１０，３１０のソフトウェアＩＤを「ＭＮＧ」とする。
【００７２】
図８は、マネージャの移行処理例を示す第１の図である。図８では、図に示すように、サーバ１００のマネージャ１１０とサーバ２００のエージェント２１０との間で通信が行われている。なお、エージェント２１０の定義情報２１１には、通信先サーバのＩＰアドレス（マネージャＩＰ）としてサーバ１００のＩＰアドレス「１０．１００．１００．１０」が設定されている。
【００７３】
サーバ１００の状態通知部１２０は、マネージャ１１０がエージェント２１０に対して情報を送信する際に、その送信情報を捕捉する。状態通知部１２０は、捕捉した送信情報をサーバ２００に対して送信する（ステップＳ１１）。すなわち、状態通知部１２０は、送信先への送信情報の送信を代行する。これとともに、マネージャ１１０が通信可能な状態であることを示す状態通知情報を状態管理サーバ４００に送信する（ステップＳ１２）。状態管理サーバ４００の状態管理処理部４１０は、マネージャ１１０の状態が「通信可」であることを状態管理情報４３０に登録する。具体的には、状態管理情報４３０に含まれる、マネージャ１１０に対応するソフトウェアテーブル４３２の「状態」の項目に、「通信可」と登録される。
【００７４】
なお、サーバ２００の状態通知部２２０も、エージェント２１０がマネージャ１１０に対して情報を送信する際に、その送信情報を捕捉する。状態通知部２２０は、捕捉した送信情報をサーバ１００に対して送信するとともに、エージェント２１０が通信可能な状態であることを示す状態通知情報を状態管理サーバ４００に送信する。
【００７５】
図９は、マネージャの移行処理例を示す第２の図である。図９は、サーバ１００からサーバ３００へのマネージャ１１０の移行処理が開始された状態を示す。
サーバ１００の状態通知部１２０は、サーバ３００へのマネージャ１１０の移行処理が開始されたことがマネージャ１１０から通知されると、マネージャ１１０が移行中であることを示す状態通知情報を状態管理サーバ４００に送信する（ステップＳ２１）。状態管理サーバ４００の状態管理処理部４１０は、マネージャ１１０の状態が「移行中」であることを状態管理情報４３０に登録する。具体的には、状態管理情報４３０に含まれる、マネージャ１１０に対応するソフトウェアテーブル４３２の「状態」の項目が、「移行中」に更新される。
【００７６】
一方、サーバ２００の状態通知部２２０は、エージェント２１０がマネージャ１１０に対して情報を送信する際に、その送信情報を捕捉し、捕捉した送信情報をサーバ１００に対して送信する。しかし、マネージャ１１０が移行中の場合にはマネージャ１１０と通信できないので、通信エラーが発生する（ステップＳ２２）。状態通知部２２０は、通信エラーが発生すると、マネージャ１１０の状態を状態管理サーバ４００に問い合わせる（ステップＳ２３）。
【００７７】
状態管理サーバ４００の状態管理処理部４１０は、状態管理情報４３０に基づいて、マネージャ１１０の状態が「移行中」であることをサーバ２００に通知する（ステップＳ２４）。サーバ２００の状態通知部２２０は、その通知に応じて、マネージャ１１０が他のサーバに移行中であり、通信できないことをエージェント２１０に通知する。これによりエージェント２１０は、マネージャ１１０が他のサーバに移行中であることを認識する。例えば、エージェント２１０は、マネージャ１１０が他のサーバに移行中のため通信できないことを示すメッセージ２４１を、管理端末に表示させることができる（ステップＳ２５）。
【００７８】
なお、エージェント２１０はその後、例えば一定時間間隔で、マネージャ１１０に対する送信情報の再送を試みる。エージェント２１０は、状態通知部２２０からの通知によってマネージャ１１０が移行中であることを認識することによって、マネージャ１１０の異常ではないので通信を継続できる（停止する必要はない）と判断する。エージェント２１０はこの判断結果に基づいて、送信情報の再送を試みるように制御することができる。状態通知部２２０は、再送のためにマネージャ１１０から出力される送信情報を捕捉するたびに図９に示す処理を実行する。
【００７９】
図１０は、マネージャの移行処理例を示す第３の図である。図１０は、サーバ１００からサーバ３００へのマネージャ１１０の移行処理が完了した状態を示す。このとき、サーバ３００ではマネージャ３１０と状態通知部３２０が起動する。
【００８０】
サーバ３００の状態通知部３２０は、マネージャ１１０の移行処理が完了してマネージャ３１０が実装されると、マネージャ１１０が移行済みであることを示す状態通知情報と、移行先のサーバ３００のＩＰアドレスとを状態管理サーバ４００に送信する（ステップＳ３１）。状態管理サーバ４００の状態管理処理部４１０は、マネージャ１１０の状態が「移行済み」であることを状態管理情報４３０に登録する。具体的には、状態管理情報４３０に含まれる、マネージャ１１０に対応するソフトウェアテーブル４３２の「状態」の項目が、「移行済み」に更新される。
【００８１】
これとともに、状態管理処理部４１０は、移行先のサーバ３００におけるマネージャ３１０のソフトウェアテーブル４３２を状態管理情報４３０に登録し、このソフトウェアテーブル４３２の状態の項目に「通信可」を登録する。さらに、状態管理処理部４１０は、サーバ１００から通知されたＩＰアドレスに基づき、エージェント２１０の通信先に対応する振替先サーバとして、サーバ３００の情報を状態管理情報４３０に登録する。具体的には、通信元サーバＩＤおよび通信元ソフトウェアＩＤとしてそれぞれサーバ２００およびエージェント２１０のＩＤが登録され、通信先サーバＩＤおよび通信先ソフトウェアＩＤとしてそれぞれサーバ１００およびマネージャ１１０のＩＤが登録された通信テーブル４３３における振替先サーバＩＤの項目に、サーバ３００のサーバＩＤが登録される。
【００８２】
一方、サーバ２００において、エージェント２１０は、マネージャ１１０に対する送信情報の再送を試みる。状態通知部２２０は、送信情報を捕捉して、その送信情報をマネージャ１１０宛てに送信するが、図９の場合と同様に通信エラーになり（ステップＳ３２）、状態管理サーバ４００に対してマネージャ１１０の状態を問い合わせる（ステップＳ３３）。
【００８３】
状態管理サーバの状態管理処理部４１０は、状態管理情報４３０に基づいて、マネージャ１１０の状態が「移行済み」であることと、移行先のサーバ３００のＩＰアドレスとをサーバ２００に通知する（ステップＳ３４）。サーバ２００の状態通知部２２０は、その通知に基づき、エージェント２１０に対応するアドレス変換情報２２１を生成する（ステップＳ３５）。このアドレス変換情報２２１には、元の送信先であるサーバ１００のＩＰアドレスと、振替先サーバのＩＰアドレスとして通知されたサーバ３００のＩＰアドレスとが対応付けて登録される。
【００８４】
そして、状態通知部２２０は、アドレス変換情報２２１に基づき、捕捉した送信情報の送信先ＩＰアドレスを振替先サーバのＩＰアドレスに振り替えて、その送信情報を再送する。これにより、送信情報は移行先のサーバ３００に送信され、移行後のマネージャ３１０によって受信される（ステップＳ３６）。
【００８５】
図１１は、マネージャの移行処理例を示す第４の図である。図１１は、図１０のようにエージェント２１０からの送信情報が移行先のサーバ３００に送信された後、エージェント２１０からさらにサーバ１００のマネージャ１１０宛ての送信情報が出力された場合について示す。
【００８６】
状態通知部２２０は、サーバ１００のＩＰアドレスとマネージャ１１０のソフトウェアＩＤとを送信先として指定した送信情報をエージェント２１０から捕捉すると、アドレス変換情報２２１に基づき、送信先のＩＰアドレスを振替先のＩＰアドレスに振り替える（ステップＳ４１）。状態通知部２２０は、ＩＰアドレスが振り替えられた送信情報を送信する。これにより、送信情報は移行先のサーバ３００に送信され、マネージャ３１０に受信される（ステップＳ４２）。このように、状態通知部２２０は、エージェント２１０からマネージャ１１０宛ての送信情報をすべてマネージャ３１０宛てに送信する。
【００８７】
また、状態通知部２２０は、マネージャ３１０からエージェント２１０宛ての送信情報をサーバ３００から受信すると、アドレス変換情報２２１に基づき、送信元ＩＰアドレスを移行元のサーバ１００のＩＰアドレスに変換する。状態通知部２２０は、送信元ＩＰアドレスが変換された送信情報をエージェント２１０に出力する。
【００８８】
このようにして、エージェント２１０と、移行後のマネージャ３１０との通信が可能になる。状態通知部２２０の処理により、エージェント２１０は、通信先のマネージャ１１０が移行したことを意識することなく通信を継続できる。
【００８９】
以上の図８〜図１１の処理によれば、状態管理サーバ４００において、サーバとアプリケーションとの組み合わせごとに状態が管理される。さらに、アプリケーションがサーバ間を移行した場合には、移行先のサーバの情報も状態管理サーバ４００で管理される。そして、一方のサーバ２００のアプリケーションは、他方のサーバ１００のアプリケーションの移行によってそのアプリケーションと通信できなくなったとき、移行により通信できないことを状態通知部２２０による状態管理サーバ４００への問合せによって認識できるようになる。
【００９０】
また、状態通知部２２０は、通信先のアプリケーションが他のサーバに移行すると、移行先のサーバの情報を状態管理サーバ４００から取得して、アドレス変換情報２２１を生成する。それ以後、状態通知部２２０は、アドレス変換情報２２１を用いて、通信先を移行先サーバ上の移行先アプリケーションに自動的に切り替えて通信を継続する。これにより、通信先アプリケーションがサーバ間で移行した場合でも、通信先のＩＰアドレスを手動で設定し直すことなく、通信を継続できる。その結果、運用管理者の作業効率を高めることができる。
【００９１】
また、アプリケーションに対応する状態通知部が導入され、状態通知部がそのアプリケーションと他方のアプリケーションとの間の通信を代行するとともに、状態管理サーバ４００から他方のアプリケーションの状態を取得できる構成となっている。この構成により、アプリケーションに対応する既存のソフトウェアを改変することなく、上記の効果を得ることができる。
【００９２】
また、アプリケーション同士が正常に通信している状態では、一方のアプリケーションから他方に対して情報が送信される際に、一方のアプリケーションの状態が状態管理サーバ４００に通知される。このため、アプリケーション間の通信とは独立した処理により、アプリケーションの状態を例えば定期的に状態管理サーバ４００に通知する場合と比較して、アプリケーションが動作するサーバの処理負荷を低減でき、その処理を単純化できる。さらに、サーバ間およびサーバと状態管理サーバとを接続するネットワーク６００における通信負荷を軽減する効果も期待できる。
【００９３】
また、状態管理サーバ４００は、ポーリングなどによる自装置からの要求によってアプリケーションの状態を検出するのではなく、各サーバの状態通知部からの自律的な状態通知情報の送信によってアプリケーションの状態を認識する。そして、各サーバの状態通知部からの問合せに応じてアプリケーションの状態に関する情報を提供する。このような構成により、状態管理サーバ４００の処理を簡易化し、その処理負荷を軽減できる。また、このような状態管理サーバ４００の導入と、各サーバへの状態通知部の導入によって、各サーバのアプリケーションごとの状態管理やそのサーバ間の移行に伴うアドレス変更を効率的に実現できる。
【００９４】
このように、他のサーバのアプリケーションと通信できなくなったサーバやこのサーバ上のアプリケーションに対して、通信の継続可否や継続方法を判断するための情報を、簡易な仕組みによる簡易な処理によって通知できるようになる。
【００９５】
次に、サーバ１００，２００，３００の処理についてフローチャートを用いて説明する。以下の説明では、図８のように、初期状態ではサーバ１００のマネージャ１１０とサーバ２００のエージェント２１０とが通信しており、マネージャ１１０が他のサーバに移行する場合について説明する。なお、マネージャ１１０は他のサーバに移行した後、サーバ１００に戻る場合もある。
【００９６】
まず、図１２、図１３を用いて、マネージャに対応する状態通知部（例えば状態通知部１２０，３２０）の処理について説明する。
図１２は、マネージャの通常通信時の処理例を示すフローチャートである。
【００９７】
［ステップＳ１０１］マネージャからエージェント２１０宛ての送信情報が出力されると、状態通知部は、この送信情報を取得する。送信情報には、送信先のサーバ２００のＩＰアドレスと送信先のエージェント２１０のソフトウェアＩＤとが指定されている。
【００９８】
［ステップＳ１０２］状態通知部は、指定されているＩＰアドレスを送信先として送信情報を送信する。これにより、送信情報がサーバ２００に送信される。
［ステップＳ１０３］状態通知部は、通信元サーバのＩＰアドレスとして状態通知部が動作するサーバのＩＰアドレスを指定し、通信元ソフトウェアＩＤとしてマネージャのソフトウェアＩＤを指定して、「正常」を示す状態通知情報を状態管理サーバ４００に送信する。
【００９９】
図１３は、マネージャの移行通知時の処理例を示すフローチャートである。
［ステップＳ１１１］マネージャから状態通知部に対して、サーバ間でのマネージャの移行処理の開始または完了が通知される。状態通知部は、通知内容が移行開始の場合、ステップＳ１１２の処理を実行し、通知内容が移行完了の場合、ステップＳ１１３の処理を実行する。
【０１００】
［ステップＳ１１２］このケースは、移行元サーバのマネージャ（移行前のマネージャ）から移行開始が通知されたケースである。状態通知部は、移行元サーバのＩＰアドレスとして状態通知部が動作するサーバのＩＤを指定し、移行対象のソフトウェアＩＤとしてマネージャのソフトウェアＩＤを指定して、移行開始を通知する状態通知情報を状態管理サーバ４００に送信する。
【０１０１】
［ステップＳ１１３］このケースは、移行先サーバのマネージャ（移行後のマネージャ）から移行完了が通知された通知されたケースである。状態通知部は、移行元サーバのＩＰアドレスをマネージャから受信する。状態通知部は、移行元サーバのＩＰアドレスとしてマネージャから受信したＩＰアドレスを指定し、移行先サーバのＩＰアドレスとして状態通知部が動作するサーバのＩＰアドレスを指定し、移行対象のソフトウェアＩＤとしてマネージャのソフトウェアＩＤを指定して、移行完了を通知する状態通知情報を状態管理サーバ４００に送信する。これにより、完了した移行処理におけるマネージャとエージェントとの組み合わせが指定されるとともに、移行先サーバのＩＰアドレスが通知される。
【０１０２】
なお、図示しないが、状態通知部は、マネージャのサービスが停止した場合には、「サービス停止」を示す状態通知情報を状態管理サーバ４００に送信する。また、状態通知部は、マネージャの動作が異常停止した場合には、「ソフトウェア異常」を示す状態通知情報を状態管理サーバ４００に送信する。いずれの場合でも、状態通知情報には、通信元サーバのＩＰアドレスとして状態通知部が動作するサーバのＩＰアドレスが指定され、通信元ソフトウェアＩＤとしてマネージャのソフトウェアＩＤが指定される。
【０１０３】
次に、エージェント２１０に対応する状態通知部２２０の処理について説明する。
図１４、図１５は、エージェントの通常通信時の処理例を示すフローチャートである。
［ステップＳ１２１］エージェント２１０からマネージャ１１０宛ての送信情報が出力されると、状態通知部２２０は、この送信情報を取得する。送信情報には、送信先のサーバ１００のＩＰアドレスと送信先のマネージャ１１０のソフトウェアＩＤとが指定されている。
【０１０４】
［ステップＳ１２２］状態通知部２２０は、エージェント２１０からマネージャ１１０への通信に対応する振替先ＩＰアドレスが存在するかを判定する。実際には、エージェント２１０に対応するアドレス変換情報２２１が記憶部２３０に登録されている場合、振替先ＩＰアドレスが存在すると判定される。状態通知部２２０は、振替先ＩＰアドレスが存在しない場合、ステップＳ１２３の処理を実行し、振替先ＩＰアドレスが存在する場合、ステップＳ１２４の処理を実行する。
【０１０５】
［ステップＳ１２３］状態通知部２２０は、送信情報に指定されているＩＰアドレスを送信先として送信情報を送信する。これにより、送信情報がサーバ１００に送信される。
［ステップＳ１２４］状態通知部２２０は、エージェント２１０に対応するアドレス変換情報２２１から振替先ＩＰアドレスを読み出し、この振替先ＩＰアドレスを送信先として送信情報を送信する。これにより、送信情報が移行先のサーバ（サーバ１００以外のサーバ）に送信される。
【０１０６】
［ステップＳ１２５］状態通知部２２０は、送信情報の送信に成功した場合、ステップＳ１２６の処理を実行し、送信情報の送信に失敗した場合（通信エラーが発生した場合）、図１５のステップＳ１３１の処理を実行する。
【０１０７】
［ステップＳ１２６］状態通知部２２０は、エージェント２１０に対して送信が正常に完了したことを通知する。
以下、図１５を用いて説明を続ける。
【０１０８】
［ステップＳ１３１］状態通知部２２０は、状態管理サーバ４００に対し、送信情報の送信先サーバ（通信先サーバ）のＩＰアドレスとマネージャ１１０のソフトウェアＩＤとを指定して、通信先のマネージャの状態を問い合わせる。ここで言う「通信先のマネージャ」とは、ステップＳ１２３またはステップＳ１２４での実際の送信情報の送信先のマネージャを含む。マネージャが移行している場合、マネージャ１１０でなく、移行先のサーバ上のマネージャを示す。
【０１０９】
［ステップＳ１３２］状態通知部２２０は、状態管理サーバ４００からの応答情報を受信する。
［ステップＳ１３３］状態通知部２２０は、応答情報に基づいて、通信先のマネージャの状態を判定する。状態通知部２２０は、通信先のマネージャが「移行中」の場合、ステップＳ１３４の処理を実行し、通信先のマネージャが「移行済み」の場合、ステップＳ１３５の処理を実行する。
【０１１０】
［ステップＳ１３４］状態通知部２２０は、通信先のマネージャが「移行中」であることによる通信エラーが発生したことを、エージェント２１０に通知する。これにより、エージェント２１０は、例えば、通信先のマネージャがサーバ間の移行処理の実行中であるため通信できないことを示すメッセージを、管理端末に表示させることができる。
【０１１１】
［ステップＳ１３５］通信先のマネージャが「移行済み」の場合、状態管理サーバ４００から受信した応答情報には移行処理における移行先サーバのＩＰアドレスが含まれている。状態通知部２２０は、エージェント２１０に対応するアドレス変換情報２２１に、振替先ＩＰアドレスとして応答情報に含まれる移行先サーバのＩＰアドレスが登録されているかを判定する。エージェント２１０に対応するアドレス変換情報２２１とは、通信元ソフトウェアＩＤとしてエージェント２１０のソフトウェアＩＤが登録され、通信元サーバのＩＰアドレスとしてサーバ２００のＩＰアドレスが登録されたアドレス変換情報２２１である。状態通知部２２０は、該当ＩＰアドレスが登録されていない場合、ステップＳ１３６の処理を実行し、該当ＩＰアドレスが登録されている場合、ステップＳ１３８の処理を実行する。
【０１１２】
［ステップＳ１３６］状態通知部２２０は、エージェント２１０に対応するアドレス変換情報２２１が記憶部２３０に記憶されていない場合、これを生成して記憶部２３０に登録する。状態通知部２２０は、生成したアドレス変換情報２２１に、振替先ＩＰアドレスとして応答情報に含まれる移行先サーバのＩＰアドレスを登録する。また、エージェント２１０に対応するアドレス変換情報２２１がすでに記憶部２３０に記憶されている場合、状態通知部２２０は、このアドレス変換情報２２１における振替先ＩＰアドレスを、応答情報に含まれる移行先サーバのＩＰアドレスに更新する。
【０１１３】
［ステップＳ１３７］状態通知部２２０は、アドレス変換情報２２１に登録した振替先ＩＰアドレスを送信先として、図１４のステップＳ１２１で取得した送信情報を再送する。これにより、送信情報が移行先のサーバ（サーバ１００以外のサーバ）に送信される。
【０１１４】
［ステップＳ１３８］ステップＳ１３５で「Ｙｅｓ」と判定されるケースとは、マネージャの移行先がサーバ１００に戻ったケースである。この場合、状態通知部２２０は、振替先ＩＰアドレスを削除する。具体的には、状態通知部２２０は、エージェント２１０に対応するアドレス変換情報２２１を記憶部２３０から削除する。
【０１１５】
［ステップＳ１３９］状態通知部２２０は、図１４のステップＳ１２１で取得した送信情報に指定されているＩＰアドレスを送信先として送信情報を送信する。これにより、送信情報がサーバ１００に送信される。
【０１１６】
なお、図示しないが、ステップＳ１３３において、応答情報に基づく通信先のマネージャの状態が「サービス停止」であった場合、ステップＳ１３４では、通信先のマネージャが「サービス停止」の状態であるために通信エラーが発生したことがエージェント２１０に通知される。また、ステップＳ１３３において、応答情報に基づく通信先のマネージャの状態が「ソフトウェア異常」であった場合、ステップＳ１３４では、通信先のマネージャが「ソフトウェア異常」の状態であるために通信エラーが発生したことがエージェント２１０に通知される。このような処理により、エージェント２１０は、例えば、通信先のマネージャが、サービスを停止している、またはソフトウェアの異常が発生しているために通信できないことを示すメッセージを、管理端末に表示させることができる。
【０１１７】
さらに、ステップＳ１３３において、応答情報に基づく通信先のマネージャの状態が「通信可」であった場合、ステップＳ１３４では、通信先のマネージャが「通信可」であることがエージェント２１０に通知される。この場合、状態通知部２２０は、通信エラーの原因が通信先のマネージャにはないことをエージェント２１０に通知してもよい。いずれの場合でも、エージェント２１０は、例えば、原因不明の通信エラーが発生したこと、あるいは、通信先のマネージャの異常以外の原因による通信エラーが発生したことを示すメッセージを、管理端末に表示させることができる。また、エージェント２１０は、通信先のマネージャが「通信可」の状態であることから、送信情報の再送を試みることもできる。
【０１１８】
図１６は、エージェントによる情報送信の処理例を示すフローチャートである。
［ステップＳ１４１］エージェント２１０は、マネージャ１１０宛ての送信情報を出力する。このとき、エージェント２１０は、定義情報２１１に基づき、送信情報に対して、送信先のサーバ１００のＩＰアドレスと送信先のマネージャ１１０のソフトウェアＩＤとを指定する。
【０１１９】
［ステップＳ１４２］エージェント２１０は、状態通知部２２０からの通知に基づき、送信に成功した場合には処理を終了し、送信に失敗した場合にはステップＳ１４３の処理を実行する。
【０１２０】
［ステップＳ１４３］エージェント２１０は、状態通知部２２０から通知されたマネージャ１１０の状態に応じたエラーメッセージを、管理端末に表示させる。
［ステップＳ１４４］エージェント２１０は、状態通知部２２０から通知されたマネージャ１１０の状態に基づき、マネージャ１１０が停止している場合には処理を終了する。マネージャ１１０が停止している場合とは、マネージャ１１０が「サービス停止」または「ソフトウェア異常」の場合である。一方、エージェント２１０は、マネージャ１１０が停止していない場合には、通信を継続できると判断し、一定時間後にステップＳ１４１の処理を再実行する。この場合、ステップＳ１４１では同じ送信情報の再送処理が行われる。
【０１２１】
次に、状態管理サーバ４００の処理についてフローチャートを用いて説明する。
まず、図１７は、状態管理の処理例を示すフローチャートである。
［ステップＳ１５１］状態管理処理部４１０は、サーバから、通信元サーバのＩＰアドレスとソフトウェアＩＤとが指定された状態通知情報を受信する。なお、通信元サーバのＩＰアドレスは、状態通知情報の送信元サーバのＩＰアドレスである。
【０１２２】
以下、マネージャのソフトウェアＩＤが指定されたものとして説明を続ける。
［ステップＳ１５２］状態管理処理部４１０は、受信した状態通知が移行中または移行済みを示す移行通知である場合、ステップＳ１５４の処理を実行し、その他の状態を示す場合、ステップＳ１５３の処理を実行する。
【０１２３】
［ステップＳ１５３］状態管理処理部４１０は、状態管理情報４３０に対し、マネージャの状態として受信した状態通知情報が示す状態を登録する。具体的には、状態管理処理部４１０は、指定されたＩＰアドレスに対応するサーバＩＤ（通信元サーバのサーバＩＤ）と、指定されたソフトウェアＩＤ（マネージャのソフトウェアＩＤ）とが登録されたソフトウェアテーブル４３２を参照する。状態管理処理部４１０は、参照先のソフトウェアテーブル４３２における「状態」の項目に、受信した状態通知情報が示す状態を登録する。ここでは、「通信可」「サービス停止」「ソフトウェア異常」のいずれかが登録される。すでに「状態」の項目に状態の情報が登録されている場合、この情報は更新される。
【０１２４】
［ステップＳ１５４］状態管理処理部４１０は、受信した状態通知が移行開始を示す場合、ステップＳ１５５の処理を実行し、移行完了を示す場合、ステップＳ１５６の処理を実行する。
【０１２５】
［ステップＳ１５５］状態管理処理部４１０は、状態管理情報４３０に登録された、移行元サーバにおけるマネージャの状態を「移行中」に更新する。具体的には、状態管理処理部４１０は、ステップＳ１５３と同じ参照先のソフトウェアテーブル４３２における「状態」の項目に登録された情報を、「移行中」に更新する。
【０１２６】
［ステップＳ１５６］ステップＳ１５１では、移行完了を示す状態通知情報が受信された場合、これとともに移行先サーバのＩＰアドレスも受信されている。ステップＳ１５６において、状態管理処理部４１０は、このＩＰアドレスに対応する移行先サーバのサーバＩＤが通信先サーバＩＤとして登録された通信テーブル４３３が、状態管理情報４３０に含まれているかを判定する。この処理において登録の有無が判定される通信テーブル４３３とは、より正確には次の条件を満たす通信テーブル４３３である。
【０１２７】
（１）通信元サーバＩＤとして、サーバ２００のサーバＩＤが登録されている。
（２）通信元ソフトウェアＩＤとして、エージェント２１０のソフトウェアＩＤが登録されている。
【０１２８】
（３）通信先サーバＩＤとして、状態通知情報とともに受信されたＩＰアドレスに対応する移行先サーバのサーバＩＤが登録されている。
（４）通信先ソフトウェアＩＤとして、マネージャのソフトウェアＩＤが登録されている。
【０１２９】
以上の条件を満たす通信テーブル４３３とは、マネージャ１１０とエージェント２１０との通信が開始されたときに生成された、エージェント２１０を通信元とした通信テーブル４３３である。なお、（１）のサーバＩＤと（２）のソフトウェアＩＤは、マネージャ１１０とエージェント２１０との通信が開始されたときに生成された、マネージャ１１０を通信元とした通信テーブル４３３から取得される。
【０１３０】
（１）〜（４）を満たす通信テーブル４３３が存在するケースとは、移行先サーバが元のサーバ１００に戻ったケースである。この場合、状態管理処理部４１０はステップＳ１６０の処理を実行する。一方、（１）〜（４）を満たす通信テーブル４３３が存在しない場合、状態管理処理部４１０はステップＳ１５７の処理を実行する。
【０１３１】
［ステップＳ１５７］状態管理処理部４１０は、状態管理情報４３０に対して移行先サーバの情報を登録する。具体的には、状態管理処理部４１０は、移行先サーバのサーバＩＤとマネージャのソフトウェアＩＤとが設定されたソフトウェアテーブル４３２を生成して状態管理情報４３０に追加登録する。このソフトウェアテーブル４３２の状態の項目には「通信可」が設定される。また、状態管理処理部４１０は、エージェント２１０と、移行先サーバのマネージャとの間の通信に関する次の第３、第４の通信テーブル４３３を生成して状態管理情報４３０に追加登録する。
【０１３２】
第３の通信テーブル４３３には、通信元サーバＩＤとして移行先サーバのサーバＩＤが登録され、通信元ソフトウェアＩＤとしてマネージャのソフトウェアＩＤが登録され、通信先サーバＩＤとしてサーバ２００のサーバＩＤが登録され、通信先ソフトウェアＩＤとしてエージェント２１０のソフトウェアＩＤが登録されている。第４の通信テーブル４３３には、通信元サーバＩＤとしてサーバ２００のサーバＩＤが登録され、通信元ソフトウェアＩＤとしてエージェント２１０のソフトウェアＩＤが登録され、通信先サーバＩＤとして移行先サーバのサーバＩＤが登録され、通信先ソフトウェアＩＤとしてマネージャのソフトウェアＩＤが登録されている。いずれの通信テーブル４３３にも、振替先サーバＩＤの項目には「Ｎｕｌｌ」が登録される。
【０１３３】
［ステップＳ１５８］状態管理処理部４１０は、状態管理情報４３０に登録された、移行元サーバにおけるマネージャの状態を「移行済み」に更新する。具体的には、状態管理処理部４１０は、ステップＳ１５３と同じ参照先のソフトウェアテーブル４３２における「状態」の項目に登録された情報を、「移行済み」に更新する。
【０１３４】
［ステップＳ１５９］状態管理処理部４１０は、状態管理情報４３０に対し、振替先サーバとして移行先サーバを登録する。具体的には、状態管理処理部４１０は、マネージャ１１０とエージェント２１０との通信が開始されたときに生成された、サーバ２００およびエージェント２１０を通信元とした通信テーブル４３３における振替先サーバＩＤの項目に、移行先サーバのサーバＩＤを登録する。振替先サーバＩＤの項目にすでにサーバＩＤが登録されている場合（すなわち、２回目以降の移行の場合）、そのサーバＩＤは新たな移行先サーバのサーバＩＤによって更新される。
【０１３５】
［ステップＳ１６０］前述のように、ステップＳ１５６で「Ｙｅｓ」と判定されるケースとは、移行先サーバが元のサーバ１００に戻ったケースである。この場合、状態管理処理部４１０は、状態管理情報４３０に登録された、移行元サーバにおけるマネージャの状態を「移行済み」に更新する。具体的には、状態管理処理部４１０は、移行元サーバのサーバＩＤとマネージャのソフトウェアＩＤとが設定されたソフトウェアテーブル４３２を参照し、このソフトウェアテーブル４３２における「状態」の項目に登録された情報を、「移行済み」に更新する。また、状態管理処理部４１０はさらに、移行元サーバのマネージャとサーバ２００のエージェント２１０との通信に関する通信テーブル４３３のうち、サーバ２００を通信元とする通信テーブル４３３を参照し、振替先サーバＩＤとして移行先サーバのＩＤを登録する。
【０１３６】
［ステップＳ１６１］状態管理処理部４１０は、振替先サーバの情報を削除する。具体的には、状態管理処理部４１０は、上記の（１）〜（４）を満たす通信テーブル４３３から、振替先サーバＩＤを削除する。
【０１３７】
［ステップＳ１６２］状態管理処理部４１０は、状態管理情報４３０に登録された、移行先サーバにおけるマネージャの状態を「移行済み」から「通信可」に更新する。具体的には、状態管理処理部４１０は、ステップＳ１５３と同じ参照先のソフトウェアテーブル４３２における「状態」の項目に登録された情報を、「通信可」に更新する。
【０１３８】
図１８は、問合せ応答の処理例を示すフローチャートである。
［ステップＳ１７１］状態管理処理部４１０は、サーバからの問合せを受信する。ここでは、サーバ２００の状態通知部２２０から問合せを受信するものとする。この問合せには、通信元サーバおよび通信先サーバの各ＩＰアドレスと、エージェントおよびマネージャの各ソフトウェアＩＤとが指定されている。
【０１３９】
［ステップＳ１７２］状態管理処理部４１０は、状態管理情報４３０から通信先サーバにおけるマネージャの状態を取得する。具体的には、状態管理処理部４１０は、指定された通信先サーバのサーバＩＤおよびマネージャのソフトウェアＩＤが設定されたソフトウェアテーブル４３２から、状態の項目に設定された情報を読み込む。
【０１４０】
［ステップＳ１７３］状態管理処理部４１０は、通信先サーバにおけるマネージャの状態が「移行済み」の場合、ステップＳ１７４の処理を実行し、「移行済み」以外の状態である場合、ステップＳ１７６の処理を実行する。
【０１４１】
［ステップＳ１７４］状態管理処理部４１０は、状態管理情報４３０から振替先のＩＰアドレスを取得する。具体的には、状態管理処理部４１０は次のような通信テーブル４３３を参照する。この通信テーブル４３３では、ステップＳ１７１で受信したＩＰアドレスに基づく通信元サーバのサーバＩＤおよび通信先サーバのサーバＩＤが、それぞれ通信元サーバＩＤおよび通信先サーバＩＤとして設定されている。また、ステップＳ１７１で受信したエージェントのソフトウェアＩＤおよびマネージャのソフトウェアＩＤが、それぞれ通信元ソフトウェアＩＤおよび通信先ソフトウェアＩＤとして設定されている。状態管理処理部４１０は、このような参照先の通信テーブル４３３から振替先サーバＩＤを読み出し、この振替先サーバＩＤが設定されたサーバテーブル４３１からＩＰアドレスを取得する。
【０１４２】
［ステップＳ１７５］状態管理処理部４１０は、問合せに対する応答情報をサーバ２００に送信する。この応答情報には、ステップＳ１７２で取得した、「移行済み」を示すマネージャの状態が含まれる。また、この応答情報には、ステップＳ１７４で取得した振替先のＩＰアドレスが、移行先サーバのＩＰアドレスとして含まれる。
【０１４３】
［ステップＳ１７６］状態管理処理部４１０は、ステップＳ１７２で取得したマネージャの状態を含む応答情報をサーバ２００に送信する。
次に、図１９、図２０を用いて、サーバ間でのアプリケーションの移行時における状態管理情報４３０の遷移の例について説明する。
【０１４４】
図１９、図２０は、状態管理情報の遷移の例を示す図である。図１９、図２０に示すそれぞれの行は、通信元のサーバおよびソフトウェアに対応する通信テーブル４３３と、この通信テーブル４３３に基づいて参照されるサーバテーブル４３１およびソフトウェアテーブル４３２とに設定されている情報をまとめて示したものである。
【０１４５】
例えば、図１９の上段は、サーバ１００のマネージャ１１０とサーバ２００のエージェント２１０との通信が実行されている状態を示す。図１９の上段において、行４４１には、サーバ１００およびマネージャ１１０が通信元として設定され、サーバ２００およびエージェント２１０が通信先として設定された通信テーブル４３３に基づく情報が記載されている。通信元のＩＰアドレスは、サーバ１００のサーバテーブル４３１に設定され、通信元のソフトウェアＩＤおよび状態は、サーバ１００およびマネージャ１１０に対応するソフトウェアテーブル４３２に設定されている。通信先のＩＰアドレスは、サーバ２００のサーバテーブル４３１に設定され、通信先のソフトウェアＩＤおよび状態は、サーバ２００およびエージェント２１０に対応するソフトウェアテーブル４３２に設定されている。
【０１４６】
また、行４４２には、サーバ２００およびエージェント２１０が通信元として設定され、サーバ１００およびマネージャ１１０が通信先として設定された通信テーブル４３３に基づく情報が記載されている。通信元のＩＰアドレスは、サーバ２００のサーバテーブル４３１に設定され、通信元のソフトウェアＩＤおよび状態は、サーバ２００およびエージェント２１０に対応するソフトウェアテーブル４３２に設定されている。通信先のＩＰアドレスは、サーバ１００のサーバテーブル４３１に設定され、通信先のソフトウェアＩＤおよび状態は、サーバ１００およびマネージャ１１０に対応するソフトウェアテーブル４３２に設定されている。
【０１４７】
この状態から、マネージャ１１０をサーバ１００（サーバ＃１）からサーバ３００（サーバ＃３）に移行する移行処理が開始されたとする。このとき、図１９の中段に示すように、行４４１では通信元のマネージャ１１０の状態が「通信可」から「移行中」に更新され、行４４２では通信先のマネージャ１１０の状態が「通信可」から「移行中」に更新される。
【０１４８】
次に、移行処理が完了したとする。このとき、図１９の下段に示すように、エージェント２１０と、移行後のマネージャ３１０との通信に関する行４４３，４４４の情報が、状態管理情報４３０に登録される。行４４３には、サーバ２００およびエージェント２１０が通信元として設定され、移行後のサーバ３００およびマネージャ３１０が通信先として設定された通信テーブル４３３に基づく情報が記載されている。通信元のＩＰアドレスは、サーバ２００のサーバテーブル４３１に設定され、通信元のソフトウェアＩＤおよび状態は、サーバ２００およびエージェント２１０に対応するソフトウェアテーブル４３２に設定されている。通信先のＩＰアドレスは、サーバ３００のサーバテーブル４３１に設定され、通信先のソフトウェアＩＤおよび状態は、サーバ３００およびマネージャ３１０に対応するソフトウェアテーブル４３２に設定されている。
【０１４９】
また、行４４４には、移行後のサーバ３００およびマネージャ３１０が通信元として設定され、サーバ２００およびエージェント２１０が通信先として設定された通信テーブル４３３に基づく情報が記載されている。通信元のＩＰアドレスは、サーバ３００のサーバテーブル４３１に設定され、通信元のソフトウェアＩＤおよび状態は、サーバ３００およびマネージャ３１０に対応するソフトウェアテーブル４３２に設定されている。通信先のＩＰアドレスは、サーバ２００のサーバテーブル４３１に設定され、通信先のソフトウェアＩＤおよび状態は、サーバ２００およびエージェント２１０に対応するソフトウェアテーブル４３２に設定されている。
【０１５０】
さらに、行４４２では、振替先サーバのＩＰアドレスとしてサーバ３００のＩＰアドレスが登録され、サーバ３００における移行先のマネージャ３１０の状態として「通信可」が登録される。これは、サーバ２００およびエージェント２１０が通信元として設定され、サーバ１００およびマネージャ１１０が通信先として設定された通信テーブル４３３において、振替先サーバＩＤとしてサーバ３００のサーバＩＤが登録されたことを示す。
【０１５１】
次に、サーバ３００のマネージャ３１０をサーバ１００に移行する、すなわちサーバ１００に戻す移行処理が開始されたとする。このとき、図２０の上段に示すように、行４４３では通信先のマネージャ３１０の状態が「通信可」から「移行中」に更新され、行４４４では通信元のマネージャ３１０の状態が「通信可」から「移行中」に更新される。
【０１５２】
次に、移行処理が完了したとする。このとき、図２０の下段に示すように、行４４１では通信元のマネージャ１１０の状態が「移行済み」から「通信可」に戻される。また、行４４２では、通信先のマネージャ１１０の状態が「移行済み」から「通信可」に戻され、振替先のＩＰアドレスが削除される。また、エージェント２１０と、移行前のマネージャ３１０との通信に関する行４４３では、通信先サーバの状態が「移行済み」に更新され、振替先のＩＰアドレスとしてサーバ１００のＩＰアドレスが登録され、サーバ１００における移行先のマネージャ１１０の状態として「通信可」が登録される。
【０１５３】
以上の図１９、図２０に示すように、状態管理サーバ４００では、サーバ上のアプリケーションの通信状態や移行処理の状態、移行に伴う振替先サーバのＩＰアドレスが、状態管理情報４３０を用いて管理される。
【０１５４】
〔第３の実施の形態〕
以下、第２の実施の形態における処理の一部を変形した第３の実施の形態について説明する。
【０１５５】
図２１は、第３の実施の形態におけるマネージャの移行処理例を示す図である。図２１では、図１０と同じ構成要素や処理ステップには同じ符号を付して示している。
第２の実施の形態では、状態通知部２２０は、通信先のマネージャ１１０が他のサーバに移行した後、エージェント２１０からの送信情報の送信先ＩＰアドレスを、アドレス変換情報２２１に基づいて移行先サーバのＩＰアドレスに付け替えていた（図１０参照）。これに対して、第３の実施の形態では、アドレス変換情報２２１を用いず、マネージャ１１０の移行が完了したとき、状態通知部２２０は、エージェント２１０の定義情報２１１に設定されている通信先サーバのＩＰアドレスを、移行後のサーバのＩＰアドレスに書き替える。
【０１５６】
具体的には、サーバ１００からサーバ３００へのマネージャ１１０の移行が完了した後、図２１に示すように、ステップＳ３１からステップＳ３４までの処理は図１０と同様である。状態通知部２２０は、ステップＳ３４での状態管理サーバ４００からの通知を受けると、マネージャ１１０が移行済みであることと、移行先のサーバ３００のＩＰアドレスとをエージェント２１０に通知する。通知を受けたエージェント２１０は、定義情報２１１に設定されている通信先サーバのＩＰアドレスを、移行先のサーバ３００のＩＰアドレスに書き替える（ステップＳ３５ａ）。その後、エージェント２１０は、定義情報２１１に基づき、サーバ３００のＩＰアドレスを送信先と指定し、移行後のマネージャ３１０に対する送信情報の再送を試みる。状態通知部２２０は、この送信情報を捕捉し、指定されたＩＰアドレスに基づいて送信情報をサーバ３００に送信する（ステップＳ３６ａ）。すなわち、状態通知部２２０は、エージェント２１０からの送信情報を、アドレス変換を行わずにそのまま送信する。
【０１５７】
このように、第３の実施の形態では、通信先のマネージャが他のサーバに移行したとき、状態管理サーバ４００から取得した移行先サーバのＩＰアドレスを用いて、通信元のエージェント２１０の定義情報２１１自体が書き替えられる。これにより、エージェント２１０は、通信先のマネージャが他のサーバに移行したことと、その移行先とを認識して、移行先のサーバ上のマネージャとの通信を継続できる。
【０１５８】
図２２、図２３は、第３の実施の形態におけるエージェントの通常通信時の処理例を示すフローチャートである。図２２、図２３では、それぞれ図１４、図１５と同じ処理内容の処理ステップには同じステップ番号を付して示しており、その説明を省略する。
【０１５９】
図２２では、図１４におけるステップＳ１２２，Ｓ１２４が削除され、ステップＳ１２１の次にステップＳ１２３が実行され、ステップＳ１２３の次にステップＳ１２５が実行される。すなわち、第３の実施の形態では、第２の実施の形態とは異なり、送信情報に指定されている送信先ＩＰアドレスを振替先ＩＰアドレスに振り替える処理は実行されない。
【０１６０】
また、図２３では、ステップＳ１３３において通信先マネージャの状態が「移行済み」と判定された場合、図１５のステップＳ１３５〜Ｓ１３９の代わりにステップＳ１８１，Ｓ１８２が実行される。
【０１６１】
［ステップＳ１８１］状態通知部２２０は、通信先のマネージャが「移行済み」であることと、状態管理サーバ４００から通知された移行先サーバのＩＰアドレスとをエージェント２１０に通知する。これにより、エージェント２１０は、定義情報２１１に登録された、通信先のマネージャが動作するサーバのＩＰアドレスを、状態通知部２２０から通知された移行先サーバのＩＰアドレスに書き替える。そして、エージェント２１０は、書き替え後の定義情報２１１に基づき、書き替え後のＩＰアドレスを送信先として指定した送信情報を、再送のために出力する。
【０１６２】
［ステップＳ１８２］状態通知部２２０は、エージェント２１０から出力された送信情報を取得し、送信情報に指定されたＩＰアドレスを送信先として送信情報をそのまま送信する。
【０１６３】
なお、状態管理サーバ４００の状態管理処理部４１０による状態管理処理については、図１７と同様である。また、状態管理処理部４１０による問合せ応答処理については、図１８と同様である。
【０１６４】
また、上記の各実施の形態に示した装置（例えば、情報処理装置１〜３、管理装置１０、サーバ１００，２００，３００、状態管理サーバ４００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１６７】
１〜３  情報処理装置
１ａ  アプリケーション
１０  管理装置
１１  記憶部
１１ａ  管理情報
１１ｂ  移行先情報
１２  処理部
【図１】
2020173498.tif 000003
【図２】
2020173498.tif 000004
【図３】
2020173498.tif 000005
【図４】
2020173498.tif 000006
【図５】
2020173498.tif 000007
【図６】
2020173498.tif 000008
【図７】
2020173498.tif 000009
【図８】
2020173498.tif 000010
【図９】
2020173498.tif 000011
【図１０】
2020173498.tif 000012
【図１１】
2020173498.tif 000013
【図１２】
2020173498.tif 000014
【図１３】
2020173498.tif 000015
【図１４】
2020173498.tif 000016
【図１５】
2020173498.tif 000017
【図１６】
2020173498.tif 000018
【図１７】
2020173498.tif 000019
【図１８】
2020173498.tif 000020
【図１９】
2020173498.tif 000021
【図２０】
2020173498.tif 000022
【図２１】
2020173498.tif 000023
【図２２】
2020173498.tif 000024
【図２３】
2020173498.tif 000025