(57)【要約】【課題】冗長化機構を有しない既存のアプリケーションを利用する場合でも、アプリケーションに改造を加えることなく、システム側の冗長化機構の仕組みを利用可能にすること。【解決手段】同じ機能を有する複数のアプリケーションソフトウェア２０−１、２０−２をそれぞれ独立したアプリケーション管理ユニット１０−１、１０−２で管理し、運用側ＡＣＴおよび待機側ＳＢＹとして同時に同じ状態で動作させる。同じ要求信号を複数のアプリケーションソフトウェア２０−１、２０−２に与えることにより、運用側ＡＣＴ、待機側ＳＢＹを同じ状態に維持し、一方の応答信号のみを選択して出力する。運用側ＡＣＴに故障が発生した場合は、ＩＰアドレスの追加や切り替えにより、待機側ＳＢＹを運用側ＡＣＴに切り替える。複数のアプリケーションソフトウェア２０−１、２０−２の応答信号の比較により異常の有無を検知できる。【選択図】図６
2018136814.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータのハードウェア上、又は仮想マシン上で動作可能な所定の機能を実現するアプリケーションソフトウェアの稼働状況を管理すると共に、冗長化機能を付与するアプリケーション冗長化管理システムであって、
第１のアプリケーションソフトウェアの稼働開始に伴って、前記第１のアプリケーションソフトウェアと同一の機能を提供する第２のアプリケーションソフトウェアを稼働できる状態で生成し、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態に制御するシステム構築部と、
前記第１のアプリケーションソフトウェアの入力と、前記第２のアプリケーションソフトウェアの入力との両方に、同一の共通信号を同時に与える信号管理部と、
を備えたことを特徴とするアプリケーション冗長化管理システム。
【請求項２】
前記信号管理部は、同時に稼働している前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの一方を運用側アプリケーション、他方を待機側アプリケーションとして割り当て、定常状態においては前記運用側アプリケーションの出力信号のみを選択的に出力する、
請求項１に記載のアプリケーション冗長化管理システム。
【請求項３】
前記信号管理部は、同時に稼働している前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方の出力信号を常時監視し、前記両方の出力信号の状態が一致している場合に、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの稼働状態に異常が発生していないことを認識する、
請求項１に記載のアプリケーション冗長化管理システム。
【請求項４】
前記信号管理部は、同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのうち、前記運用側アプリケーションの異常を検知した場合には、前記待機側アプリケーションの出力信号のみを選択的に出力する、
請求項２に記載のアプリケーション冗長化管理システム。
【請求項５】
同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのうち、前記運用側アプリケーションの異常を検知した場合には、前記待機側アプリケーション、又は前記待機側アプリケーションを管理している管理部に割り当てた第１の識別子を、前記運用側アプリケーション、又は前記運用側アプリケーションを管理している管理部に割り当てた第２の識別子に切り替えるアドレス管理部、
を備えた、請求項４に記載のアプリケーション冗長化管理システム。
【請求項６】
同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのそれぞれに状態管理部を接続し、前記運用側アプリケーションに接続した第１の状態管理部と、前記待機側アプリケーションに接続した第２の状態管理部との間で相互に通信を行い、前記第１の状態管理部および前記第２の状態管理部の少なくとも一方が、前記運用側アプリケーション又は待機側アプリケーションの稼働状況の異常の有無を識別する、
請求項４に記載のアプリケーション冗長化管理システム。
【請求項７】
前記システム構築部は、同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのいずれか一方の異常を検知した場合には、異常が発生したアプリケーションの代わりの新たなアプリケーションを稼働可能な状態で追加し、追加した前記アプリケーションを前記待機側アプリケーションとして割り当てる、
請求項４に記載のアプリケーション冗長化管理システム。
【請求項８】
コンピュータのハードウェア上、又は仮想マシン上で動作可能な所定の機能を実現するアプリケーションソフトウェアの稼働状況を管理すると共に、冗長化機能を付与するアプリケーション冗長化管理方法であって、
第１のアプリケーションソフトウェアの稼働開始に伴って、前記第１のアプリケーションソフトウェアと同一の機能を提供する第２のアプリケーションソフトウェアを稼働できる状態で生成し、
前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態に制御し、
前記第１のアプリケーションソフトウェアの入力と、前記第２のアプリケーションソフトウェアの入力との両方に、同一の共通信号を同時に与える、
ことを特徴とするアプリケーション冗長化管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション冗長化管理システムおよびアプリケーション冗長化管理方法に関する。
【背景技術】
【０００２】
例えば様々な通信サービスを提供するような通信システムにおいては、非常に高い信頼性が求められる場合がある。したがって、単体のサーバに故障耐性の高いものを採用したり、機器の障害発生時であってもサービスを継続可能にするために、冗長性を持たせるようにシステム全体を構成する必要がある。
【０００３】
例えば、サーバ上で動作する各種ＡＰＬ（アプリケーションソフトウェア）が特別な冗長化機構を有していない場合には、各ＡＰＬが動作するサーバやシステム側に冗長性を持たせるための特別な仕組みが必要になる。
【０００４】
例えば、ＡＣＴ−ＳＢＹ（アクティブ−スタンバイ）型のアーキテクチャを採用した通信システムにおいては、通常はアクティブ状態である運用系のサーバ（ＡＣＴ）と、通常はスタンバイ状態である待機系の専用のサーバ（ＳＢＹ）との両方を常時用意してある。したがって、運用系のサーバに何らかの障害が発生した場合には、直ちに待機系のサーバを稼働状態に切り替えて、運用系のサーバの動作を待機系のサーバで引き継ぐことができる。しかし、ＡＣＴ−ＳＢＹ型の通信システムの場合には、待機系として割り当てた設備は、障害が発生しない限り使われることはなく利用効率が低い。したがって、信頼性を高めるために設備のコストが高くなるのは避けられない。
【０００５】
一方、非特許文献１の図１などに示されているＮ−ＡＣＴ型アーキテクチャを採用した通信システムにおいては、処理中のサーバが同時に他のサーバの予備系になる。したがって、待機系の専用サーバを設ける必要はなく、設備の利用効率が高くなる。そのため、通信システムの設備コストを削減できる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】福元健・飯尾政美・上田清志 、“将来網に向けたフレキシブルネットワーク構成技術 将来のネットワーク制御ノード実現に向けた取り組み”、NTT技術ジャーナル, ２０１２年３月１日、第２４巻、第３号、Ｐ．２３−Ｐ．２７．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記のＡＣＴ−ＳＢＹ型のアーキテクチャや、Ｎ−ＡＣＴ型アーキテクチャを採用する場合に、実際に冗長化機構を使うための仕組みは、クラスタや分散システムのミドルウェアとして提供される。したがって、サーバのミドルウェア上で動作する各々のアプリケーションソフトウェアが冗長化機構を内蔵していない場合には、ミドルウェアを介して設備側の冗長化機構を利用できるように、各々のアプリケーションソフトウェアに改造を加える必要がある。しかし、冗長化機構を使うために既存の様々なアプリケーションソフトウェアに改造を加えようとすると、改造のために大きなコストがかかるのは避けられない。
【０００８】
本発明は、上記の状況に鑑みてなされたものであり、冗長化機構を内蔵していない既存のアプリケーションソフトウェアを利用する場合であっても、これらのアプリケーションソフトウェアに改造を加えることなく、システム側の冗長化機構の仕組みを利用することが可能なアプリケーション冗長化管理システムおよびアプリケーション冗長化管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）コンピュータのハードウェア上、又は仮想マシン上で動作可能な所定の機能を実現するアプリケーションソフトウェアの稼働状況を管理すると共に、冗長化機能を付与するアプリケーション冗長化管理システムであって、
第１のアプリケーションソフトウェアの稼働開始に伴って、前記第１のアプリケーションソフトウェアと同一の機能を提供する第２のアプリケーションソフトウェアを稼働できる状態で生成し、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態に制御するシステム構築部と、
前記第１のアプリケーションソフトウェアの入力と、前記第２のアプリケーションソフトウェアの入力との両方に、同一の共通信号を同時に与える信号管理部と、を備える。
【００１０】
このアプリケーション冗長化管理システムによれば、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態にすると共に、これらに与える前記共通信号によって、同じ状態で常に前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方が動作するように制御できる。したがって、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの一方に障害が発生したような場合であっても、障害が発生していない他方を運用側として選択することにより、通常のサービス実行状態を継続できる。つまり、冗長化機構を有しないアプリケーションソフトウェア自体に特別な改造を加えなくても、同じ機能を果たす２つのアプリケーションソフトウェアの同時稼働によって、冗長化の機能を付与することができる。
【００１１】
（２）前記信号管理部は、同時に稼働している前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの一方を運用側アプリケーション、他方を待機側アプリケーションとして割り当て、定常状態においては前記運用側アプリケーションの出力信号のみを選択的に出力する。
【００１２】
このアプリケーション冗長化管理システムによれば、定常状態では、前記運用側アプリケーションの出力信号を利用してユーザに所定のサービスを提供することができる。また、前記待機側アプリケーションも同時に動作している。これにより、前記運用側アプリケーションに障害が発生した場合には、前記待機側アプリケーションの出力を選択することにより、ユーザに提供するサービスを正常な状態で継続できる。
【００１３】
（３）前記信号管理部は、同時に稼働している前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方の出力信号を常時監視し、前記両方の出力信号の状態が一致している場合に、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの稼働状態に異常が発生していないことを認識する。
【００１４】
このアプリケーション冗長化管理システムによれば、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの稼働状態に異常が発生していないことを、単純な処理により常時検知できる。
【００１５】
（４）前記信号管理部は、同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのうち、前記運用側アプリケーションの異常を検知した場合には、前記待機側アプリケーションの出力信号のみを選択的に出力する。
【００１６】
このアプリケーション冗長化管理システムによれば、前記運用側アプリケーションの動作に異常が発生した場合に、前記待機側アプリケーションの出力信号のみを選択的に出力する。これにより、障害が発生した場合であっても、ユーザに提供するサービスを正常な状態で継続できる。
【００１７】
（５）同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのうち、前記運用側アプリケーションの異常を検知した場合には、前記待機側アプリケーション、又は前記待機側アプリケーションを管理している管理部に割り当てた第１の識別子を、前記運用側アプリケーション、又は前記運用側アプリケーションを管理している管理部に割り当てた第２の識別子に切り替えるアドレス管理部を備える。
【００１８】
このアプリケーション冗長化管理システムによれば、前記第１の識別子を前記第２の識別子に切り替えることにより、前記待機側アプリケーションを前記運用側アプリケーションの代わりに利用することが可能になる。また、このような切り替えは瞬時に行うことが可能である。
【００１９】
（６）同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのそれぞれに状態管理部を接続し、前記運用側アプリケーションに接続した第１の状態管理部と、前記待機側アプリケーションに接続した第２の状態管理部との間で相互に通信を行い、前記第１の状態管理部および前記第２の状態管理部の少なくとも一方が、前記運用側アプリケーション又は待機側アプリケーションの稼働状況の異常の有無を識別する。
【００２０】
このアプリケーション冗長化管理システムによれば、前記第１の管理部又は前記第２の管理部が、前記運用側アプリケーション又は待機側アプリケーションの稼働状況の異常の有無を検知できる。
【００２１】
（７）前記システム構築部は、同時に稼働している前記運用側アプリケーションおよび前記待機側アプリケーションのいずれか一方の異常を検知した場合には、異常が発生したアプリケーションの代わりの新たなアプリケーションを稼働可能な状態で追加し、追加した前記アプリケーションを前記待機側アプリケーションとして割り当てる。
【００２２】
このアプリケーション冗長化管理システムによれば、異常を検知した後においても、新たなアプリケーションを起動する。これにより複数のアプリケーションが正常に稼働している状況を維持できる。そのため、１つのアプリケーションに異常が発生した後に、更に別のアプリケーションに異常が発生した場合であっても、再びアプリケーションを切り替えることが可能であり、サービスの提供を正常な状態で継続できる。
【００２３】
（８）コンピュータのハードウェア上、又は仮想マシン上で動作可能な所定の機能を実現するアプリケーションソフトウェアの稼働状況を管理すると共に、冗長化機能を付与するアプリケーション冗長化管理方法であって、
第１のアプリケーションソフトウェアの稼働開始に伴って、前記第１のアプリケーションソフトウェアと同一の機能を提供する第２のアプリケーションソフトウェアを稼働できる状態で生成し、
前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態に制御し、
前記第１のアプリケーションソフトウェアの入力と、前記第２のアプリケーションソフトウェアの入力との両方に、同一の共通信号を同時に与える。
【００２４】
このアプリケーション冗長化管理方法によれば、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方を同時に稼働状態にすると共に、これらに与える前記共通信号によって、同じ状態で常に前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの両方が動作するように制御できる。したがって、前記第１のアプリケーションソフトウェアおよび前記第２のアプリケーションソフトウェアの一方に障害が発生したような場合であっても、障害が発生していない他方を運用側として選択することにより、通常のサービス実行状態を継続できる。つまり、冗長化機構を有しないアプリケーションソフトウェア自体に特別な改造を加えなくても、同じ機能を果たす２つのアプリケーションソフトウェアの同時稼働によって、冗長化の機能を付与することができる。
【発明の効果】
【００２５】
本発明のアプリケーション冗長化管理システムおよびアプリケーション冗長化管理方法によれば、冗長化機構を内蔵していない既存のアプリケーションソフトウェアを利用する場合であっても、これらのアプリケーションソフトウェアに改造を加えることなく、システム側の冗長化機構の仕組みを利用することが可能になる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態におけるアプリケーション冗長化管理システムの主要な構成要素を表すブロック図である。
【図２】本発明の実施形態においてアプリケーション冗長化管理システムを構築する際のシステム構成の変化例を表す状態遷移図である。
【図３】本発明の実施形態におけるアプリケーション冗長化管理システムの基本動作の概要を示す状態遷移図である。
【図４】図４（ａ）および図４（ｂ）は、本発明のアプリケーション冗長化管理システムを有しない第１比較例の通信システムの構成および動作の例を表すブロック図である。
【図５】本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を表すブロック図である。
【図６】本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を表すブロック図である。
【図７】図７（ａ）および図７（ｂ）は、本発明のアプリケーション冗長化管理システムを有しない第２比較例の通信システムの構成および動作の例を表すブロック図である。
【図８】本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を表すブロック図である。
【図９】本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を表すブロック図である。
【図１０】図１０（ａ）および図１０（ｂ）は、本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、運用側の設備に故障が発生した場合のそれぞれ異なる動作状態を表すブロック図である。
【図１１】図１１（ａ）、図１１（ｂ）、および図１１（ｃ）は、本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、運用側の設備に故障が発生した場合のそれぞれ異なる動作状態を表すブロック図である。
【図１２】図１２（ａ）および図１２（ｂ）は、本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、待機側の設備に故障が発生した場合のそれぞれ異なる動作状態を表すブロック図である。
【図１３】図１３（ａ）、図１３（ｂ）、および図１３（ｃ）は、本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、待機側の設備に故障が発生した場合のそれぞれ異なる動作状態を表すブロック図である。
【発明を実施するための形態】
【００２７】
本発明の実施形態について各図を参照しながら以下に説明する。
＜アプリケーション冗長化管理システムの主要な要素の構成例＞
本発明の実施形態におけるアプリケーション冗長化管理システムの主要な構成要素を図１に示す。
【００２８】
図１に示したアプリケーション管理ユニット１０が、本発明のアプリケーション冗長化管理システムの主要な構成要素である。このアプリケーション管理ユニット１０は、サーバのようなコンピュータのハードウェア上、又はコンピュータ上に形成された仮想マシン上で動作するミドルウェア（ＭＷ）として構成されている。則ち、サーバのＣＰＵ（Central Processing Unit）がミドルウェア・プログラムを実行することにより、このアプリケーション管理ユニット１０が具現化される。勿論、アプリケーション管理ユニット１０と同様な機能をミドルウェア以外の形態で実現することも可能である。各図中および本明細書中に示した「ＭＷ」の各々は、１つのアプリケーション管理ユニット１０と同じものを表している。
【００２９】
ユーザに対して各種サービスなどを提供する様々なアプリケーションソフトウェア２０の各々は、アプリケーション管理ユニット１０によって配置され、かつ管理される。各図では、アプリケーションソフトウェア２０をアプリケーション管理ユニット１０の上側に描くことで、このアプリケーション管理ユニット１０により管理されることを示している。なお、各図中および本明細書中に示した「ＡＰＬ」はそれぞれ１つのアプリケーションソフトウェア２０を表している。
【００３０】
図１に示したように、アプリケーション管理ユニット１０は、外部信号送受信部１１、内部信号複製／比較部（信号管理部）１２、内部信号送受信部１３、同期信号送受信部１４、ＩＰアドレス管理部１５、ＭＷ状態管理部１６、およびシステム構築部１７を備えている。また、内部信号複製／比較部１２はキャッシュ１２ａを備え、ＩＰアドレス管理部１５はデータベース（ＤＢ）１５ａを備え、ＭＷ状態管理部１６もデータベース１６ａを備えている。
【００３１】
＿＜外部信号送受信部１１の機能＞
外部信号送受信部１１は、外部の装置から外部信号１１ａを受信した場合に、この外部信号１１ａを内部信号複製／比較部１２に送信する。また、外部信号送受信部１１は、内部信号複製／比較部１２から信号を受信した場合に、この信号を外部信号１１ｂとして外部の装置に送信する。送受信する各信号は、例えばＩＰ（Internet Protocol）パケットである。
【００３２】
＿＜内部信号複製／比較部１２の機能＞
内部信号複製／比較部１２は、以下の（１）〜（３）に示す動作を行う。
（１）内部信号複製／比較部１２は、内部信号送受信部１３から受信した信号を複製し、複製した信号を内部信号送受信部１３および同期信号送受信部１４に送信する。
【００３３】
（２）内部信号複製／比較部１２は、内部信号送受信部１３から受信した信号をキャッシュ１２ａに記憶し、ＭＷ状態管理部１６の状態を確認し、ＭＷ状態管理部１６の状態に応じて以下の（２−１）又は（２−２）の処理を実行する。
【００３４】
＿（２−１）受信した信号の送信元のアプリケーションソフトウェア２０が、運用側ＡＣＴとして割り当てられている場合、内部信号複製／比較部１２は、受信した信号を外部信号送受信部１１に送信する。
＿（２−２）受信した信号の送信元のアプリケーションソフトウェア２０が、待機側ＳＢＹとして割り当てられている場合、内部信号複製／比較部１２は、受信した信号を同期信号送受信部１４に送信する。
【００３５】
（３）内部信号複製／比較部１２は、同期信号送受信部１４から受信した信号をキャッシュ１２ａに記憶し、ＭＷ状態管理部１６の状態を確認し、ＭＷ状態管理部１６の状態に応じて以下の（３−１）〜（３−２）の処理を実行する。
【００３６】
＿（３−１）受信した信号の送信元のアプリケーションソフトウェア２０が、運用側ＡＣＴとして割り当てられている場合、内部信号複製／比較部１２は、内部信号送受信部１３から受信した信号と比較する。内部信号送受信部１３から受信した信号がまだ揃っていない場合は揃うまで待機する。
＿＿（３−１−１）内部信号複製／比較部１２は、上記（３−１）の比較結果が一致であれば、キャッシュ１２ａに記憶していた内部信号送受信部１３からの受信信号および同期信号送受信部１４からの受信信号を削除する。
＿＿（３−１−２）内部信号複製／比較部１２は、上記（３−１）の比較結果が不一致であれば、キャッシュ１２ａに記憶していた内部信号送受信部１３からの受信信号および同期信号送受信部１４からの受信信号を削除し、内部信号送受信部１３が受信した信号の送信元の待機側ＳＢＹが異常であることを、ＭＷ状態管理部１６に通知する。
＿（３−２）受信した信号の送信元のアプリケーションソフトウェア２０が、待機側ＳＢＹとして割り当てられている場合、内部信号複製／比較部１２は、内部信号送受信部１３に信号を送信する。
【００３７】
＿＜内部信号送受信部１３の機能＞
内部信号送受信部１３は、以下の（１），（２）に示す動作を行う。
（１）内部信号送受信部１３は、内部信号複製／比較部１２から受信した信号をアプリケーションソフトウェア２０に送信する。
（２）内部信号送受信部１３は、アプリケーションソフトウェア２０から受信した信号を内部信号複製／比較部１２に送信する。
【００３８】
＿＜同期信号送受信部１４の機能＞
同期信号送受信部１４は、以下の（１）〜（３）に示す動作を行う。
（１）同期信号送受信部１４は、内部信号複製／比較部１２から信号を受信した場合、ＭＷ状態管理部１６の状態を確認し、ＭＷ状態管理部１６の状態に応じて以下の（１−１）〜（１−３）の処理を実行する。
【００３９】
＿（１−１）受信した信号の送信元のアプリケーションソフトウェア２０が運用側ＡＣＴであれば、同期信号送受信部１４は、待機側ＳＢＹに存在するアプリケーション管理ユニット１０内の同期信号送受信部１４に対して、信号をカプセル化して送信する。
＿（１−２）受信した信号の送信元のアプリケーションソフトウェア２０が待機側ＳＢＹであれば、同期信号送受信部１４は、運用側ＡＣＴに存在するアプリケーション管理ユニット１０内の同期信号送受信部１４に対して、信号をカプセル化して送信する。
＿（１−３）同期信号送受信部１４は、アプリケーション管理ユニット１０が故障状態であれば信号を送信しない。
【００４０】
（２）外部から信号を受信した場合、同期信号送受信部１４は、その信号をデカプセル化して内部信号複製／比較部１２に送信する。
（３）同期信号送受信部１４は、暗号化情報やセッション情報等、アプリケーション管理ユニット１０間で必要な情報を共有し、信号を書き換える。
【００４１】
＿＜ＩＰアドレス管理部１５の機能＞
ＩＰアドレス管理部１５は、以下の（１），（２）に示す動作を行う。
（１）ＩＰアドレス管理部１５は、外部装置から見えるアプリケーション管理ユニット１０のＩＰアドレスと、アプリケーションソフトウェア２０に見せかけるＩＰアドレスを管理する。但し、アプリケーション管理ユニット１０のＩＰアドレスは物理ＩＰアドレスではなく、フローティングＩＰアドレス等とする。なお、アプリケーション管理ユニット１０とアプリケーションソフトウェア２０のＩＰアドレスを同一にすることもできるし、別々の値にすることもできる。また、１つのアプリケーション管理ユニット１０に対して複数のＩＰアドレスを付与することもできる。
（２）ＩＰアドレス管理部１５は、ＭＷ状態管理部１６からの通知に基づき、自アプリケーション管理ユニット１０のＩＰアドレスの変更を外部装置に通知する。
【００４２】
＿＜ＭＷ状態管理部１６の機能＞
ＭＷ状態管理部１６は、以下の（１）〜（６）に示す動作を行う。
（１）ＭＷ状態管理部１６は、自アプリケーション管理ユニット１０、およびそれ自身に冗長化のために接続されている他のアプリケーション管理ユニット１０の各々について、そのＩＰアドレスと、そのアプリケーション管理ユニット１０上に存在しているアプリケーションソフトウェア２０のＩＰアドレスと、装置状態とを管理する。この装置状態は、「運用中」、「故障中」、「構築中」のいずれかを表す。
【００４３】
（２）ＭＷ状態管理部１６は、各アプリケーション管理ユニット１０上のアプリケーションソフトウェア２０の状態を管理する。この状態は、運用側ＡＣＴと待機側ＳＢＹとの区別を表す。
（３）ＭＷ状態管理部１６は、自アプリケーション管理ユニット１０と接続されている他のアプリケーション管理ユニット１０との間で、「KeepAlive」を実施し、応答がない場合、または明示的に異常を通知された場合、対向のアプリケーション管理ユニット１０を故障とみなす。なお、「KeepAlive」は、ネットワーク上で接続が有効であることを確認するために定期的に行われる通信のことであり、例えば双方向ハートビート確認である。そして、更に以下の動作も行う。
＿（３−１）ＭＷ状態管理部１６は、「KeepAlive」の実施に伴い、対向のアプリケーション管理ユニット１０に、自アプリケーション管理ユニット１０の状態も通知する。
＿（３−２）対向のアプリケーション管理ユニット１０が故障の場合、かつ、対向アプリケーション管理ユニット１０上のアプリケーションソフトウェア２０が運用側ＡＣＴの場合、ＭＷ状態管理部１６は、自アプリケーション管理ユニット１０のＩＰアドレスを、運用側ＡＣＴのアプリケーションソフトウェア２０のＩＰアドレスに変更し、この変更をＩＰアドレス管理部１５に通知する。
＿（３−３）待機側ＳＢＹのアプリケーションソフトウェア２０が複数存在している場合、ＭＷ状態管理部１６は、各アプリケーションソフトウェア２０を運用側ＡＣＴに切り替える際の優先順位を事前に決めておく。なお、ＭＷ状態管理部１６は、複数の待機側ＳＢＹのアプリケーションソフトウェア２０による合意を形成してもよい。
【００４４】
（４）ＭＷ状態管理部１６は、「KeepAlive」に対して、正常／異常の区別を応答する。また、ＭＷ状態管理部１６は、対向アプリケーション管理ユニット１０から通知された状態に更新する。また、対向アプリケーション管理ユニット１０に対して異常を通知した場合、ＭＷ状態管理部１６は、自身に故障を通知して、自アプリケーション管理ユニット１０をネットワークから切り離す。
【００４５】
（５）内部信号複製／比較部１２から待機側ＳＢＹの異常を通知された場合、ＭＷ状態管理部１６は、対象のアプリケーション管理ユニット１０を故障と判定し、対象のアプリケーション管理ユニット１０に対して故障通知を送信する。
（６）冗長化を組んでいる対向アプリケーション管理ユニット１０から故障通知を受信した場合、ＭＷ状態管理部１６は、対向アプリケーション管理ユニット１０を故障と判定する。また、冗長化のシステム構成として複数の待機側ＳＢＹを用意してある場合には、運用側ＡＣＴのＭＷ状態管理部１６が、故障していない待機側ＳＢＹに対して故障を通知する。
【００４６】
＿＜システム構築部１７の機能＞
システム構築部１７は、以下の（１）〜（３）に示す動作を行う。
（１）システム構築部１７は、運用側ＡＣＴのアプリケーションソフトウェア２０をインストールする。なお、このインストール作業を行っている間は、ＭＷ状態管理部１６に対して「構築中」を通知し、インストール作業の完了後に「運用中」を通知する。
【００４７】
（２）システム構築部１７は、運用側ＡＣＴのアプリケーションソフトウェア２０に対してライブマイグレーションを実施して、待機側ＳＢＹのアプリケーションソフトウェア２０を構築する。勿論、ライブマイグレーション以外の技術を用いて待機側ＳＢＹのアプリケーションソフトウェア２０を構築することも可能である。また、システム構築部１７は、上記と同様に、このライブマイグレーションを行っている間は、ＭＷ状態管理部１６に対して「構築中」を通知し、ライブマイグレーションの完了後にＭＷ状態管理部１６に対して「運用中」を通知する。なお、ライブマイグレーションとは、あるコンピュータ（仮想マシンを含む）で稼働しているソフトウェアを停止させずに、別のコンピュータ（仮想マシンを含む）に移動させる機能である。
（３）システム構築部１７は、ＭＷ状態管理部１６に対して、自アプリケーション管理ユニット１０と冗長化を組む他のアプリケーション管理ユニット１０を登録又は削除する。
【００４８】
＜アプリケーション冗長化管理システムの構築＞
本発明の実施形態においてアプリケーション冗長化管理システムを構築する際のシステム構成の変化例を図２に示す。図２に示した例では、３つの独立したベース装置３０−１、３０−２、３０−３を同時に使用してシステムを構築する場合を想定している。ベース装置３０−１、３０−２、３０−３の各々は、サーバを構成するコンピュータのハードウェア（ＨＷ）又は仮想マシン（ＶＭ）である。
【００４９】
図２に示した最初の状態の通信システム１０１Ａにおいては、ベース装置３０−１、３０−２、３０−３のみが存在している。そして、ベース装置３０−１、３０−２、３０−３の各々に、ミドルウェアであるアプリケーション管理ユニット１０を構築する前に、それぞれのアプリケーション管理ユニット１０に、所定のＩＰアドレスが割り当てられている。
【００５０】
そして、通信システム１０１Ａの状態から、ベース装置３０−１、３０−２、３０−３の各々に、ミドルウェアであるアプリケーション管理ユニット１０−１〜１０−３を構築すると、通信システム１０１Ｂの構成に遷移する。
【００５１】
すなわち、通信システム１０１Ｂの構成では、ベース装置３０−１上にアプリケーション管理ユニット１０−１が構築され、これにＩＰアドレス「192.168.10.11」が割り当てられている。また、ベース装置３０−２上にアプリケーション管理ユニット１０−２が構築され、これにＩＰアドレス「192.168.10.12」が割り当てられている。ベース装置３０−３上にはアプリケーション管理ユニット１０−３が構築され、これにＩＰアドレス「192.168.10.13」が割り当てられている。ベース装置３０−１〜３０−３のＣＰＵ（Central Processing Unit）は、それぞれアプリケーション管理プログラムを実行することにより、各アプリケーション管理ユニット１０−１〜１０−３を具現化する。
【００５２】
通信システム１０１Ｂの状態で、処理４１を実行すると通信システム１０１Ｃの構成に遷移する。処理４１において、まず最初に、運用側ＡＣＴとして割り当てるアプリケーション管理ユニット１０−１のシステム構築部１７は、アプリケーションソフトウェア２０−１をインストールすると共に、アプリケーションソフトウェア２０−１の動作開始に必要な各種設定を行う。これにより、アプリケーションソフトウェア２０−１は、アプリケーション管理ユニット１０−１上に配置される。
次に、アプリケーション管理ユニット１０−１のシステム構築部１７は、待機側ＳＢＹとして割り当てるアプリケーション管理ユニット１０−２に対して、ライブマイグレーションを実施する。これにより、システム構築部１７は、動作中のアプリケーションソフトウェア２０−１の状態と同じものを、新たにアプリケーションソフトウェア２０−２としてアプリケーション管理ユニット１０−２上に構築することができる。これにより、アプリケーションソフトウェア２０−２は、アプリケーション管理ユニット１０−２上に配置される。
【００５３】
図２に示した通信システム１０１Ｃの構成において、アプリケーション管理ユニット１０−１上に配置されたアプリケーションソフトウェア２０−１は運用側ＡＣＴである。アプリケーション管理ユニット１０−２上に配置されたアプリケーションソフトウェア２０−２は待機側ＳＢＹである。
【００５４】
なお、アプリケーション管理ユニット１０−１のシステム構築部１７は、アプリケーション管理ユニット１０−３に対してライブマイグレーションを実施する。これにより、システム構築部１７は、動作中のアプリケーションソフトウェア２０−１の状態と同じものを、新たにアプリケーションソフトウェア２０−３としてアプリケーション管理ユニット１０−３上に構築することができる。アプリケーションソフトウェア２０−３は、アプリケーション管理ユニット１０−３上に配置される。つまり、待機側ＳＢＹのアプリケーションソフトウェア２０の数は必要に応じて増やすことができる。
【００５５】
また、運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレスおよびポート番号は、外部装置からアプリケーション管理ユニット１０−１のＩＰアドレスおよびポート番号と同一に見えるように、アプリケーション管理ユニット１０−１のＩＰアドレス管理部１５が処理する。
【００５６】
また、待機側ＳＢＹのアプリケーションソフトウェア２０−２のＩＰアドレスおよびポート番号については、外部装置から運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレスおよびポート番号と同一に見えるように、アプリケーション管理ユニット１０−２のＩＰアドレス管理部１５が処理する。つまり、アプリケーション管理ユニット１０−２のＩＰアドレス管理部１５は、外部から見えるアプリケーションソフトウェア２０−２のＩＰアドレスを、運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレスと同じにする。
【００５７】
通信システム１０１Ｃの構成に更にアプリケーションソフトウェア２０を追加して通信システム１０１Ｄを構成することができる。通信システム１０１Ｄの構成において、アプリケーション管理ユニット１０−１上には、運用側ＡＣＴのアプリケーションソフトウェア２０−１と、待機側ＳＢＹのアプリケーションソフトウェア２０−４が配置されている。アプリケーション管理ユニット１０−２上には、待機側ＳＢＹのアプリケーションソフトウェア２０−２と、運用側ＡＣＴのアプリケーションソフトウェア２０−５が配置されている。アプリケーション管理ユニット１０−３上には、待機側ＳＢＹのアプリケーションソフトウェア２０−３と、運用側ＡＣＴのアプリケーションソフトウェア２０−６が配置されている。
【００５８】
この通信システム１０１Ｄの構成のように、アプリケーション管理ユニット１０−１〜１０−３の各々の上には、運用側ＡＣＴおよび待機側ＳＢＹの両方のアプリケーションソフトウェア２０を配置することができる。但し、冗長化のために互いに紐付けられる運用側ＡＣＴおよび待機側ＳＢＹのアプリケーションソフトウェア２０は、それぞれ異なるアプリケーション管理ユニット１０上に配置される。
【００５９】
図２に示した通信システム１０１Ｄにおいては、運用側ＡＣＴのアプリケーションソフトウェア２０（ＡＰＬ−ＡＣＴ）と、待機側ＳＢＹのアプリケーションソフトウェア２０（ＡＰＬ−ＳＢＹ）とが複数のアプリケーション管理ユニット１０間の「Association」によりそれぞれ紐付けられている。
【００６０】
例えば、運用側ＡＣＴのアプリケーションソフトウェア２０−１と、待機側ＳＢＹのアプリケーションソフトウェア２０−２とが、処理４２の「Association」により紐付けられている。また、運用側ＡＣＴのアプリケーションソフトウェア２０−５と、待機側ＳＢＹのアプリケーションソフトウェア２０−３とが「Association」により紐付けられている。また、運用側ＡＣＴのアプリケーションソフトウェア２０−６と、待機側ＳＢＹのアプリケーションソフトウェア２０−４とが「Association」により紐付けられている。
これらアプリケーション管理ユニット１０間の「Association」によりそれぞれ紐付けられている運用側ＡＣＴのアプリケーションソフトウェア２０と待機側ＳＢＹのアプリケーションソフトウェア２０とは、冗長化されている。つまり運用側ＡＣＴのアプリケーションソフトウェア２０が故障等で停止した場合、待機側ＳＢＹであったアプリケーションソフトウェア２０が運用側ＡＣＴに切り替わる。これにより、クライアント端末に対するサービスを継続することができる。また、アプリケーション冗長化管理システムは、１つのアプリケーション管理ユニット１０の上に、複数の運用側ＡＣＴのアプリケーションソフトウェア２０（ＡＰＬ−ＡＣＴ）を配置することも可能である。その場合、不図示の外部装置は、ポート番号を用いて複数のアプリケーションソフトウェア２０（ＡＰＬ−ＡＣＴ）を識別することが想定される。
【００６１】
＜アプリケーション冗長化管理システムの基本動作＞
本発明の実施形態におけるアプリケーション冗長化管理システムの基本動作の概要を図３に示す。
【００６２】
図３に示した通信システム１０２Ａ〜１０２Ｇは、アプリケーション冗長化管理システムにより管理されている。通信システム１０２Ａ〜１０２Ｇは同じシステムであるが、動作状態がそれぞれ異なっている。
【００６３】
例えば、通信システム１０２Ａにおいて、ベース装置３０−１上にアプリケーション管理ユニット１０−１が配置されている。更に、アプリケーション管理ユニット１０−１の上にアプリケーションソフトウェア２０−１が配置されている。
【００６４】
実際の通信システム１０２Ａには待機側ＳＢＹの設備も含まれているが、ユーザが使用するクライアント端末５０からは運用側ＡＣＴのアプリケーションソフトウェア２０−１のみが見える状態である。ユーザは、クライアント端末５０を用いて要求信号５１を送信することにより、運用側ＡＣＴのアプリケーションソフトウェア２０−１によるサービスを受けることができる。
【００６５】
要求信号５１は、クライアント端末５０のＩＰアドレスおよびポートを表す送信元の情報「192.168.1.100:10000」、送信先のアプリケーションソフトウェア２０−１のＩＰアドレスおよびポートを表す情報「192.168.10.11:8080」、およびプロトコル「ＴＣＰ」を含むように構成される。
【００６６】
通信システム１０２Ａは、この要求信号５１がアプリケーション管理ユニット１０−１に入力されると、通信システム１０２Ｂの状態に遷移する。つまり、要求信号転送処理５２において、外部信号送受信部１１と内部信号複製／比較部１２と内部信号送受信部１３により、要求信号５１の内容がアプリケーションソフトウェア２０−１に転送される。要求信号転送処理５２は、アプリケーション管理ユニット１０−１を透過するように要求信号５１の内容を転送する処理である。
【００６７】
また、通信システム１０２Ｂは、要求信号５１に応答して、通信システム１０２Ｃの状態に遷移する。すなわち、要求信号転送処理５３において、運用側ＡＣＴのアプリケーション管理ユニット１０−１は、同期信号送受信部１４により、待機側ＳＢＹのアプリケーション管理ユニット１０−２に向けて、要求信号５１の内容を転送する。なお、要求信号転送処理５３において、同期信号送受信部１４は、要求信号５１がＵＤＰであっても、ＴＣＰカプセリング等で確実に送信する。また、要求信号転送処理５４において、待機側ＳＢＹのアプリケーション管理ユニット１０−２は、運用側ＡＣＴのアプリケーション管理ユニット１０−１の同期信号送受信部１４から、自身の同期信号送受信部１４により受け取った要求信号５１の内容を、内部信号複製／比較部１２と内部信号送受信部１３により待機側ＳＢＹのアプリケーションソフトウェア２０−２に転送する。要求信号転送処理５４は、アプリケーション管理ユニット１０−２を透過するように要求信号５１の内容を転送する処理である。なお、要求信号転送処理５２と、要求信号転送処理５３とは、同じタイミングで実施されてもよい。
【００６８】
したがって、ユーザが送信した同じ要求信号５１の内容が、要求信号転送処理５２、５３、５４により、運用側ＡＣＴのアプリケーションソフトウェア２０−１と、待機側ＳＢＹのアプリケーションソフトウェア２０−２の両方にほぼ同時に入力される。そして、運用側ＡＣＴのアプリケーションソフトウェア２０−１、および待機側ＳＢＹのアプリケーションソフトウェア２０−２の各々は、入力された同じ要求信号に従って同じ処理を実行する。
【００６９】
通信システム１０２Ｃは、要求信号転送処理５３、５４により、通信システム１０２Ｄの状態に遷移する。そして、アプリケーションソフトウェア２０−１の処理の結果出力される応答信号は、応答信号転送処理５５によりアプリケーション管理ユニット１０−１の内部信号送受信部１３に転送される。また、アプリケーションソフトウェア２０−２の処理の結果出力される応答信号は、応答信号転送処理５６によりアプリケーション管理ユニット１０−２の内部信号送受信部１３に転送される。この応答信号は、更に応答信号転送処理５７により、アプリケーション管理ユニット１０−１の内部信号送受信部１３に転送される。
【００７０】
また、運用側ＡＣＴおよび待機側ＳＢＹの各アプリケーションソフトウェア２０−１、２０−２からそれらの処理の結果として送信された各応答信号は、処理５８により、運用側ＡＣＴのアプリケーション管理ユニット１０−１の内部で一時的に保存される。
【００７１】
通信システム１０２Ｄの状態において故障が発生し、通信システム１０２Ｅの状態に遷移すると、処理５９において、運用側ＡＣＴのアプリケーション管理ユニット１０−１は、内部信号複製／比較部１２により、運用側ＡＣＴのアプリケーションソフトウェア２０−１の応答信号と、待機側ＳＢＹのアプリケーションソフトウェア２０−２の応答信号とを比較する。この比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号が一致した場合、アプリケーション管理ユニット１０−１は、待機側ＳＢＹからの応答信号を破棄する。また、比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号が不一致の場合、アプリケーション管理ユニット１０−１の内部信号複製／比較部１２は、処理６０において、待機側ＳＢＹの故障とみなす。
【００７２】
また、通信システム１０２Ｄの状態において故障が発生していない場合には、通信システム１０２Ｆの状態に遷移する。通信システム１０２Ｆの状態において、運用側ＡＣＴのアプリケーション管理ユニット１０−１の内部信号複製／比較部１２が、外部信号送受信部１１により、アプリケーションソフトウェア２０−１からの応答信号を、応答信号６１としてクライアント端末５０に送信する。一方、アプリケーション管理ユニット１０−２の内部信号複製／比較部１２は、待機側ＳＢＹのアプリケーションソフトウェア２０−２からの応答信号を、応答信号６２としてクライアント端末５０に送信することはない。したがって、クライアント端末５０を使用するユーザは、運用側ＡＣＴのアプリケーションソフトウェア２０−１からの応答のみを受け取ることができる。
【００７３】
また、通信システム１０２Ｇの状態において、クライアント端末５０との間の通信に必要な情報があれば、処理６３により、アプリケーション管理ユニット１０−１、１０−２は、両者間でその情報を共有する。例えば、アプリケーション管理ユニット１０−１、１０−２は、ＴＣＰセッション情報等を共有することが想定される。
【００７４】
なお、図３に示したように、この例ではアプリケーション管理ユニット１０−１、アプリケーションソフトウェア２０−１、および２０−２にＩＰアドレス「192.168.10.11」が割り当てられている。アプリケーション管理ユニット１０−２にはＩＰアドレス「192.168.10.12」が割り当てられている。
【００７５】
＜通信システムの具体的な動作例−１＞
通信システムの具体的な動作例−１について以下に説明する。また、特徴的な冗長化機構の有無による動作の違いが明確になるように、冗長化機構を有しない第１比較例の通信システムの場合と、本発明のアプリケーション冗長化管理システムを含む通信システムとのそれぞれについて順番に説明する。
【００７６】
＿＜第１比較例の通信システムの場合＞
本発明のアプリケーション冗長化管理システムを有しない第１比較例の通信システムの構成および動作の例を図４（ａ）および図４（ｂ）に示す。
【００７７】
図４（ａ）に示した通信システム２００Ａにおいては、ベース装置２０１上にアプリケーションソフトウェア２１１が配置され、ベース装置２０２上にアプリケーションソフトウェア２１２が配置されている。また、ベース装置２０３上のアプリケーションソフトウェア２１３はまだ存在しない。
【００７８】
図４（ａ）に示した通信システム２００Ａの状態において、ユーザが使用するクライアント端末５０は、Ｌ４（レイヤ４）スイッチである負荷分散装置（ロードバランサ：ＬＢ）７０を経由して、アプリケーションソフトウェア２１１又は２１２にアクセスすることができる。この例では、クライアント端末５０が信号２２５として送信する要求信号の要求先のＩＰアドレスは、負荷分散装置７０のＩＰアドレスである。そして、負荷分散装置７０は、何らかのアルゴリズムを用いて入力された要求信号をベース装置２０１，２０２のうちいずれかに振り分ける。ここで負荷分散装置７０は、要求信号をベース装置２０１に振り分けている。
【００７９】
したがって、図４（ａ）に示したように、クライアント端末５０から送出される要求信号は、負荷分散装置７０を経由してベース装置２０１に向かい、ベース装置２０１上のアプリケーションソフトウェア２１１に入力される。また、アプリケーションソフトウェア２１１が処理の結果として出力する応答信号は、ベース装置２０１、負荷分散装置７０を経由してクライアント端末５０に返ってくる。信号２２５は、これら要求信号と応答信号の経路を示している。
【００８０】
図４（ｂ）に示した通信システム２００Ｂの状態は、通信システム２００Ａの状態においてアプリケーションソフトウェア２１１に何らかの障害が発生した場合を想定している。そのため、処理２２１において示したように、アプリケーションソフトウェア２１１には、「サービス断」が発生する。
【００８１】
したがって、アプリケーションソフトウェア２１１の「サービス断」が発生した後で、不図示の上位装置は、処理２２２により、空いているベース装置２０３上に新たなアプリケーションソフトウェア２１３を構築する。これにより、クライアント端末５０のユーザが同じサービスを利用可能な状態にすることができる。
【００８２】
つまり、この場合はユーザが継続的にアプリケーションソフトウェア２１１のサービスを利用することはできない。そして、障害の発生に伴ってサービス提供が一端終了した後で、新たなアプリケーションソフトウェア２１３が利用可能な状態になると、ユーザはアプリケーションソフトウェア２１３からのサービスを利用することが可能になる。したがって、ユーザは障害発生の影響を受けることになり、ユーザは障害発生後にサービスの再開を求めるために特別な操作を行う必要がある。
【００８３】
＿＜アプリケーション冗長化管理システムを含む通信システムの場合＞
本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を図５および図６に示す。図５の通信システム１０３Ａと、図６の通信システム１０３Ｂとは状態および構成が多少異なる。なお、図５および図６に示した負荷分散装置７０がなくても本発明は実施できる。
【００８４】
図５に示した通信システム１０３Ａは、本発明のアプリケーション冗長化管理システムを備えている。各ベース装置３０−１、３０−２、３０−３の上に、アプリケーション管理ユニット１０−１、１０−２、１０−３がそれぞれ配置されている。そして、アプリケーション管理ユニット１０−１上にアプリケーションソフトウェア２０−１が配置されている。アプリケーション管理ユニット１０−２上にアプリケーションソフトウェア２０−２が配置されている。
【００８５】
ここで、アプリケーションソフトウェア２０−１が運用側ＡＣＴ、アプリケーションソフトウェア２０−２が待機側ＳＢＹである。そして、２つのアプリケーションソフトウェア２０−１、２０−２は同じ機能を有するものである。また、１つの要求信号に対して２つのアプリケーションソフトウェア２０−１、２０−２は、同期した状態で同時に同じ動作を実行する。
【００８６】
図５に示した通信システム１０３Ａの構成において、アプリケーション管理ユニット１０−１、アプリケーションソフトウェア２０−１、および２０−２の各々のＩＰアドレスが同じ値「192.168.10.11」になっている。また、アプリケーション管理ユニット１０−２のＩＰアドレスは「192.168.10.12」になっている。
【００８７】
つまり、運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレスは、アプリケーション管理ユニット１０−１のＩＰアドレスと同じになっている。更に、待機側ＳＢＹのアプリケーションソフトウェア２０−２のＩＰアドレスは、運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレスと同じになっている。
【００８８】
なお、図５に示した通信システム１０３Ａの状態で、アプリケーション管理ユニット１０−３上のアプリケーションソフトウェア２０−３は、破線で示されており、まだ存在していないことを示している。つまり、ベース装置３０−３およびアプリケーション管理ユニット１０−３はまだ空き状態である。
【００８９】
図５に示した通信システム１０３Ａの状態で、ユーザがクライアント端末５０から、宛先ＩＰアドレスを負荷分散装置７０のＩＰアドレスとするとする要求信号５１を送信する。この要求信号は負荷分散装置７０によりＩＰアドレス「192.168.10.11」のベース装置３０−１に振り分けられ、アプリケーション管理ユニット１０−１を通ってアプリケーションソフトウェア２０−１に到達する。
【００９０】
ここで、運用側ＡＣＴのアプリケーション管理ユニット１０−１と、待機側ＳＢＹのアプリケーション管理ユニット１０−２の間は互いに連携している状態である。アプリケーション管理ユニット１０−１に入力された要求信号は、要求信号転送処理５３において、同期信号送受信部１４により、アプリケーション管理ユニット１０−２に転送される。また、この要求信号は、アプリケーション管理ユニット１０−２を通ってアプリケーションソフトウェア２０−２まで到達する。また、運用側ＡＣＴのアプリケーション管理ユニット１０−１の同期信号送受信部１４と、待機側ＳＢＹのアプリケーション管理ユニット１０−２の同期信号送受信部１４の間では、セッション継続に必要な情報、例えばＬ７（レイヤ７）情報などがあればそれを共有する。
【００９１】
運用側ＡＣＴのアプリケーションソフトウェア２０−１が処理の結果として出力する応答信号は、運用側ＡＣＴのアプリケーション管理ユニット１０−１に転送される。また、待機側ＳＢＹのアプリケーションソフトウェア２０−２が処理の結果として出力する応答信号は、待機側ＳＢＹのアプリケーション管理ユニット１０−２に転送される。更に、アプリケーション管理ユニット１０−２は、内部信号送受信部１３により、アプリケーションソフトウェア２０−２から受け取った応答信号を、応答信号転送処理５７において、同期信号送受信部１４により運用側ＡＣＴのアプリケーション管理ユニット１０−１に転送する。なお、アプリケーション管理ユニット１０−２は、同期信号送受信部１４により、カプセル化された複製信号をデカプセル化して原信号を復元する。復元された原信号は、内部信号送受信部１３によりアプリケーションソフトウェア２０−２に転送される。アプリケーションソフトウェア２０−２は、原信号を処理して応答信号を生成する。また、図３に示した通信システム１０２Ｅの場合と同じように、運用側ＡＣＴのアプリケーション管理ユニット１０−１は、内部信号複製／比較部１２により、待機側ＳＢＹのアプリケーションソフトウェア２０−２から返ってきた応答信号と、運用側ＡＣＴのアプリケーションソフトウェア２０−１の応答信号とを比較する。この比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号とが一致した場合、アプリケーション管理ユニット１０−１の内部信号複製／比較部１２は、待機側ＳＢＹからの応答信号は破棄する。また、比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号が不一致の場合、アプリケーション管理ユニット１０−１の内部信号複製／比較部１２は、待機側ＳＢＹの故障とみなす。なお、この比較機能は必要不可欠なものではない。
【００９２】
上記のように、内部信号複製／比較部１２により待機側ＳＢＹからの応答信号が破棄される。これにより、運用側ＡＣＴのアプリケーションソフトウェア２０−１からの応答信号のみが、アプリケーション管理ユニット１０−１、ベース装置３０−１、負荷分散装置７０を通って応答信号６１としてクライアント端末５０に届く。
【００９３】
一方、図６に示した通信システム１０３Ｂは、図５の通信システム１０３Ａの状態で、アプリケーションソフトウェア２０−１に何らかの障害が発生した場合の状況を表している。
【００９４】
図６の通信システム１０３Ｂにおいては、アプリケーション管理ユニット１０−１のＭＷ状態管理部１６は、運用側ＡＣＴの故障を検知する。処理Ｐ６３において、アプリケーション管理ユニット１０−１のＭＷ状態管理部１６は、アプリケーション管理ユニット１０−２に運用側ＡＣＴの故障を通知し、次の処理を行わせる。すなわち、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６は、ＩＰアドレス管理部１５により、自身のＩＰアドレスを、この時点における運用側ＡＣＴのアプリケーション管理ユニット１０−１のＩＰアドレス「192.168.10.11」と同じ値に切り替える。
【００９５】
また、この故障を契機として、処理Ｐ６４で、負荷分散装置７０がＡＲＰ（Address Resolution Protocol）テーブルの内容を書き換える。ＡＲＰテーブルは、ネットワーク上の通信に用いられるＩＰアドレスとＭＡＣ（Media Access Control）アドレスの対応関係を管理するためのものである。ＡＲＰテーブルの書き換えは、アプリケーション管理ユニット１０−１からの指示により適切に行うことができる。これにより要求信号は、負荷分散装置７０によりＩＰアドレス「192.168.10.11」のベース装置３０−２に振り分けられるようになる。この要求信号は更に、アプリケーション管理ユニット１０−２を通ってアプリケーションソフトウェア２０−２に到達する。
【００９６】
処理Ｐ６３において、アプリケーション管理ユニット１０−１は、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＩＰアドレスを切り替えさせる。これにより、それまで待機側ＳＢＹであったアプリケーション管理ユニット１０−２およびアプリケーションソフトウェア２０−１を、運用側ＡＣＴに切り替わる。また、それまでのアプリケーションソフトウェア２０−２は、運用側ＡＣＴのアプリケーションソフトウェア２０−１と同じ動作をしていたので、アプリケーションソフトウェア２０−２の動作に特別な変更を加える必要はない。したがって、処理Ｐ６１として、運用側ＡＣＴが故障する前と同じ状態のまま、クライアント端末５０に対するサービスを継続できる。
【００９７】
図６に示すように、アプリケーションソフトウェア２０−１における故障の発生に伴ってクライアント端末５０の要求信号５１および応答信号６１の通る経路が変化する。しかし、システムによる通信サービスが中断することはなく、クライアント端末５０を使用するユーザが故障発生の影響を受けることはない。
【００９８】
また、図６に示した状態では、アプリケーションソフトウェア２０−１の機能が使えない状態になり、アプリケーションソフトウェア２０−２が待機側ＳＢＹから運用側ＡＣＴに切り替わったので、冗長化機構の存在を維持するために、新たに待機側ＳＢＹを用意する必要がある。
【００９９】
そこで、アプリケーション管理ユニット１０−２、１０−３は、システム構築部１７により、処理Ｐ６２において、ライブマイグレーションを実施し、アプリケーションソフトウェア２０−１と同じ状態の新たなアプリケーションソフトウェア２０−３をアプリケーション管理ユニット１０−３上に構築する。このアプリケーション管理ユニット１０−３およびアプリケーションソフトウェア２０−３を新たな待機側ＳＢＹとして割り当てる。新たな待機側ＳＢＹのアプリケーションソフトウェア２０−３のＩＰアドレスは、運用側ＡＣＴのＩＰアドレス「192.168.10.11」と同じ値とする。
更に、運用側ＡＣＴのアプリケーション管理ユニット１０−２のシステム構築部１７と、待機側ＳＢＹのアプリケーション管理ユニット１０−３のシステム構築部１７とは、お互いを関連付ける。すなわち、これらシステム構築部１７は、冗長化を組む相手として相互に登録する。これにより、運用側ＡＣＴのアプリケーション管理ユニット１０−２と、待機側ＳＢＹのアプリケーション管理ユニット１０−３との間は、「Association」によりそれぞれ紐付けられる。そして、クライアント端末５０との間の通信に必要な情報、例えばセッション情報などがあれば、運用側ＡＣＴのアプリケーション管理ユニット１０−２の同期信号送受信部１４と、待機側ＳＢＹのアプリケーション管理ユニット１０−３の同期信号送受信部１４とが、これら情報を共有する。
以降は、運用側ＡＣＴのアプリケーション管理ユニット１０−２の同期信号送受信部１４と待機側ＳＢＹのアプリケーション管理ユニット１０−２の同期信号送受信部１４との間で、要求信号転送処理５３、応答信号転送処理５７などを実施し、運用側ＡＣＴと待機側ＳＢＹとが連携できるように動作する。詳細な動作は既に説明したとおりである。
処理Ｐ６５において、運用側ＡＣＴのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６と、待機側ＳＢＹのアプリケーション管理ユニット１０−３のＭＷ状態管理部１６とは、両者間で定期的に「KeepAlive」の通信を行い、通信の死活監視を実施している。
【０１００】
＜通信システムの具体的な動作例−２＞
通信システムの具体的な動作例−２について以下に説明する。また、特徴的な冗長化機構の有無による動作の違いが明確になるように、冗長化機構を有しない第２比較例の通信システムの場合と、本発明のアプリケーション冗長化管理システムを含む通信システムとのそれぞれについて順番に説明する。
【０１０１】
＿＜第２比較例の通信システムの場合＞
本発明のアプリケーション冗長化管理システムを有しない第２比較例の通信システムの構成および動作の例を図７（ａ）および図７（ｂ）に示す。
【０１０２】
図７（ａ）に示した通信システム２００Ａにおいては、ベース装置２０１上にアプリケーションソフトウェア２１１が配置され、ベース装置２０２上にアプリケーションソフトウェア２１２が配置されている。また、ベース装置２０３上のアプリケーションソフトウェア２１３はまだ存在しない。
【０１０３】
図７（ａ）に示した通信システム２００Ａにおいては、ＤＮＳ（Domain Name System）サーバ７２が設けてある。ＤＮＳサーバ７２は、ＤＮＳの名前解決の機能を有している。つまり、ホスト名やメールアドレスに含まれるドメイン名などの名前などに基づき、ＩＰアドレスなどを特定することができる。また、この例ではＤＮＳサーバ７２が負荷分散装置（ロードバランサ：ＬＢ）の機能も有する場合を想定している。すなわち、ＤＮＳサーバ７２は、ＤＮＳラウンドロビンを利用して負荷を分散する。ＤＮＳラウンドロビンでは、１つのドメイン名に複数のＩＰアドレスを割り当てることにより負荷を分散することができる。
【０１０４】
したがって、図７（ａ）に示した通信システム２００Ａにおいては、ユーザのクライアント端末５０は、信号２２５によりアプリケーションソフトウェア２１１のサービスにアクセスする際に、ＤＮＳサーバ７２からサービスの要求先であるアプリケーションソフトウェア２１１のＩＰアドレスを取得する。そして、クライアント端末５０は、ＤＮＳサーバ７２から取得したＩＰアドレスを宛先アドレスとする要求信号を送る。つまり、処理２２０に示したように、サービスの要求先のＩＰアドレスは、ＤＮＳサーバ７２に基づいて取得することができる。
一方、図７（ｂ）に示した通信システム２００Ｂにおいては、図７（ａ）の通信システム２００Ａの状態で、アプリケーションソフトウェア２１１に何らかの障害が発生した場合を想定している。したがって、図７（ｂ）に示した処理２２１により、アプリケーションソフトウェア２１１は「サービス断」となる。
【０１０５】
そのため、処理２２１の「サービス断」が発生した場合、クライアント端末５０のユーザはそれまでアプリケーションソフトウェア２１１で提供されていたサービスを利用できない状態になる。したがって、図７（ｂ）に示す処理２２２により、空き状態であるベース装置２０３の上に新たなアプリケーションソフトウェア２１３を構築する必要がある。そして、ユーザは要求信号の送信先を切り替えて、アプリケーションソフトウェア２１３からサービスを受けることになる。しかし、いずれにしても、ユーザに対するサービス提供は一時的に中断し、ユーザは障害発生の影響を受ける。
【０１０６】
＿＜アプリケーション冗長化管理システムを含む通信システムの場合＞
本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムの構成および動作の例を図８および図９に示す。なお、図８および図９に示したＤＮＳサーバ７２Ｂ上の負荷分散装置（ＬＢ）がなくても本発明は実施できる。
【０１０７】
図８に示した通信システム１０４Ａは、本発明のアプリケーション冗長化管理システムを備えている。各ベース装置３０−１、３０−２、３０−３の上に、アプリケーション管理ユニット１０−１、１０−２、１０−３がそれぞれ配置されている。そして、アプリケーション管理ユニット１０−１上にアプリケーションソフトウェア２０−１が配置され、アプリケーション管理ユニット１０−２上にアプリケーションソフトウェア２０−２が配置されている。
【０１０８】
ここで、アプリケーションソフトウェア２０−１が運用側ＡＣＴ、アプリケーションソフトウェア２０−２が待機側ＳＢＹである。そして、２つのアプリケーションソフトウェア２０−１、２０−２は同じ機能を果たすものである。また、１つの要求信号に対して２つのアプリケーションソフトウェア２０−１、２０−２が同期した状態で同時に同じ動作を実行する。
【０１０９】
図８に示した通信システム１０４Ａの構成においては、アプリケーション管理ユニット１０−１、アプリケーションソフトウェア２０−１、および２０−２の各々のＩＰアドレスが同じ値「192.168.10.11」になっている。また、アプリケーション管理ユニット１０−２のＩＰアドレスの値は「192.168.10.12」になっている。
【０１１０】
つまり、運用側ＡＣＴでは、処理Ｐ８２により、アプリケーションソフトウェア２０−１のＩＰアドレスが、アプリケーション管理ユニット１０−１のＩＰアドレス「192.168.10.11」と同じになっている。更に、待機側ＳＢＹのアプリケーションソフトウェア２０−２（ＡＰＬ−ＳＢＹ）のＩＰアドレスは、処理Ｐ８３により、運用側ＡＣＴのアプリケーションソフトウェア２０−１（ＡＰＬ−ＡＣＴ）のＩＰアドレス「192.168.10.11」と同じになっている。
【０１１１】
また、セッション継続に必要なＬ７（レイヤ７）などの情報がある場合、処理Ｐ８１により、その情報を運用側ＡＣＴのアプリケーション管理ユニット１０−１の同期信号送受信部１４と、待機側ＳＢＹのアプリケーション管理ユニット１０−２の同期信号送受信部１４との間で共有する。
【０１１２】
なお、図８に示した通信システム１０４Ａの状態で、アプリケーション管理ユニット１０−３上のアプリケーションソフトウェア２０−３は、破線で示されており、まだ存在していないことを示している。つまり、アプリケーション管理ユニット１０−３上は、まだ空き状態である。
【０１１３】
図８に示した通信システム１０４Ａの状態で、ユーザがクライアント端末５０からアプリケーションソフトウェア２０−１にアクセスしてそのサービスを利用する場合、ＤＮＳサーバ７２Ｂを利用して、要求信号５１の要求先のＩＰアドレスを取得する。
【０１１４】
ＤＮＳサーバ７２Ｂは、処理Ｐ８７において、アプリケーション管理ユニット１０のＩＰアドレスにラウンドロビンを適用すると共に、運用側ＡＣＴと待機側ＳＢＹの組合せをＤＮＳラウンドロビンの対象とする。ここで、待機側ＳＢＹが複数台の場合もあり得る。
【０１１５】
クライアント端末５０は、ＤＮＳサーバ７２Ｂから取得したＩＰアドレス「192.168.10.11」を宛先アドレスに設定した要求信号５１を送信する。この要求信号５１は、ベース装置３０−１、アプリケーション管理ユニット１０−１を経由してアプリケーションソフトウェア２０−１に入力される。
【０１１６】
ここで、運用側ＡＣＴ、待機側ＳＢＹのアプリケーション管理ユニット１０−１、１０−２の間は互いに連携している状態である。アプリケーション管理ユニット１０−１に入力された要求信号は、処理Ｐ８４において、内部信号複製／比較部１２により複製され、カプセル化されて待機側ＳＢＹのアプリケーション管理ユニット１０−２に転送される。また、運用側ＡＣＴのアプリケーション管理ユニット１０−１の内部信号複製／比較部１２と、待機側ＳＢＹのアプリケーション管理ユニット１０−２の内部信号複製／比較部１２との間では、セッション継続に必要な情報、例えばＬ７（レイヤ７）情報などがあればそれを共有する。
【０１１７】
運用側ＡＣＴのアプリケーションソフトウェア２０−１が処理の結果として出力する応答信号は、運用側ＡＣＴのアプリケーション管理ユニット１０−１の内部信号送受信部１３に転送される。また、待機側ＳＢＹのアプリケーションソフトウェア２０−２が処理の結果として出力する応答信号は、待機側ＳＢＹのアプリケーション管理ユニット１０−２の内部信号送受信部１３に転送される。また、アプリケーション管理ユニット１０−２は、処理Ｐ８５において、同期信号送受信部１４により、カプセル化された複製信号をデカプセル化して原信号を復元する。復元された原信号は、内部信号送受信部１３によりアプリケーションソフトウェア２０−２に転送される。アプリケーションソフトウェア２０−２は、転送された原信号を処理して応答信号を生成する。
アプリケーション管理ユニット１０−２は、内部信号送受信部１３により、アプリケーションソフトウェア２０−２から応答信号を受け取る。更に、アプリケーション管理ユニット１０−２は、アプリケーションソフトウェア２０−２から受け取った応答信号を、応答信号転送処理５７において、同期信号送受信部１４により、運用側ＡＣＴのアプリケーション管理ユニット１０−１に転送する。
【０１１８】
また、図３に示した通信システム１０２Ｅの場合と同じように、処理Ｐ８６において、運用側ＡＣＴのアプリケーション管理ユニット１０−１は、内部信号複製／比較部１２により、待機側ＳＢＹのアプリケーションソフトウェア２０−２から返ってきた応答信号と、運用側ＡＣＴのアプリケーションソフトウェア２０−１の応答信号とを比較する。この比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号とが一致した場合、アプリケーション管理ユニット１０−１の内部信号複製／比較部１２は、待機側ＳＢＹからの応答信号を破棄する。また、比較の結果、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号が不一致の場合、アプリケーション管理ユニット１０−１の内部信号複製／比較部１２は、待機側ＳＢＹの故障とみなす。なお、この比較機能は必要不可欠なものではない。
【０１１９】
上記のように、内部信号複製／比較部１２により待機側ＳＢＹからの応答信号が破棄される。これにより、運用側ＡＣＴのアプリケーションソフトウェア２０−１からの応答信号のみが、アプリケーション管理ユニット１０−１、ベース装置３０−１を通って応答信号６１としてクライアント端末５０に届く。
【０１２０】
一方、図９に示した通信システム１０４Ｂは、図８の通信システム１０４Ａの状態で、アプリケーションソフトウェア２０−１に何らかの障害が発生した場合の状況を表している。
【０１２１】
図９の通信システム１０４Ｂにおいて、アプリケーション管理ユニット１０−１のＭＷ状態管理部１６は、運用側ＡＣＴの故障を検知する。すると、処理Ｐ９１において、アプリケーション管理ユニット１０−１のＭＷ状態管理部１６は、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＩＰアドレスを、それまでの運用側ＡＣＴのアプリケーション管理ユニット１０−１のＩＰアドレスと同じ値「192.168.10.11」に切り替えさせる。なお、この故障の際に、ＤＮＳサーバ７２Ｂにおいて特別な制御を実施する必要はない。
【０１２２】
処理Ｐ９３で、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＩＰアドレスを、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＩＰアドレスと同じ値に切り替えることにより、それまで待機側ＳＢＹであったアプリケーション管理ユニット１０−２およびアプリケーションソフトウェア２０−１は、運用側ＡＣＴに切り替わる。また、それまでのアプリケーションソフトウェア２０−２は、運用側ＡＣＴのアプリケーションソフトウェア２０−１と同じ動作をしていたので、アプリケーションソフトウェア２０−２の動作に特別な変更を加える必要はない。したがって、処理Ｐ９２において、通信システム１０４Ｂは、運用側ＡＣＴが故障する前と同じ状態のまま、クライアント端末５０に対するサービスを継続できる。
【０１２３】
図９に示すように、故障の発生に伴ってクライアント端末５０の要求信号５１および応答信号６１の通る経路が変化する。しかし、通信システム１０４Ｂは、通信サービスを中断することはない。クライアント端末５０のユーザは、アプリケーションソフトウェア２０−１の故障発生の影響を受けることはない。
【０１２４】
また、図９に示した状態では、アプリケーションソフトウェア２０−１の機能が使えない状態になり、アプリケーションソフトウェア２０−２が待機側ＳＢＹから運用側ＡＣＴに切り替わる。このとき、通信システム１０４Ｂは、冗長化機構の存在を維持するために、新たに待機側ＳＢＹを用意する必要がある。
【０１２５】
そこで、アプリケーション管理ユニット１０−２、１０−３は、システム構築部１７により、処理Ｐ９３において、ライブマイグレーションを実施し、アプリケーションソフトウェア２０−１と同じ状態の新たなアプリケーションソフトウェア２０−３をアプリケーション管理ユニット１０−３上に構築する。このアプリケーション管理ユニット１０−３およびアプリケーションソフトウェア２０−３を新たな待機側ＳＢＹとして割り当てる。新たな待機側ＳＢＹのアプリケーションソフトウェア２０−３のＩＰアドレスは、運用側ＡＣＴのＩＰアドレス「192.168.10.11」と同じ値とする。
更に運用側ＡＣＴのアプリケーション管理ユニット１０−２のシステム構築部１７と、待機側ＳＢＹのアプリケーション管理ユニット１０−３のシステム構築部１７とは、お互いを関連付ける。すなわち、これらシステム構築部１７は、冗長化を組む相手として相互に登録する。これにより、運用側ＡＣＴのアプリケーション管理ユニット１０−２と、待機側ＳＢＹのアプリケーション管理ユニット１０−３との間は、「Association」によりそれぞれ紐付けられる。
そして、処理Ｐ９４により、クライアント端末５０との間の通信に必要な情報、例えばセッション情報などがあれば、運用側ＡＣＴのアプリケーション管理ユニット１０−２の同期信号送受信部１４と、待機側ＳＢＹのアプリケーション管理ユニット１０−２の同期信号送受信部１４とが、これら情報を共有する。
以降は、運用側ＡＣＴのアプリケーション管理ユニット１０−２の同期信号送受信部１４と、待機側ＳＢＹのアプリケーション管理ユニット１０−３の同期信号送受信部１４との間で、要求信号や応答信号の転送処理などを実施し、運用側ＡＣＴと待機側ＳＢＹとが連携できるように動作する。詳細な動作は既に説明したとおりである。
【０１２６】
＜運用側ＡＣＴに故障が発生した場合の動作例＞
本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、運用側ＡＣＴの設備に故障が発生した場合のそれぞれ異なる動作状態を、図１０（ａ）、図１０（ｂ）、図１１（ａ）、図１１（ｂ）、および図１１（ｃ）に示す。
【０１２７】
例えば図１０（ａ）に示した通信システム１０５Ａは、アプリケーション冗長化管理システムを含んでいるので、運用側ＡＣＴ、待機側ＳＢＹの両方の機能を備えている。すなわち、ベース装置３０−１上にアプリケーション管理ユニット１０−１が配置され、アプリケーション管理ユニット１０−１上にアプリケーションソフトウェア２０−１が配置されている。アプリケーション管理ユニット１０−１およびアプリケーションソフトウェア２０−１は、運用側ＡＣＴとして割り当てられている。また、ベース装置３０−２上にアプリケーション管理ユニット１０−２が配置され、アプリケーション管理ユニット１０−２上にアプリケーションソフトウェア２０−２が配置されている。アプリケーション管理ユニット１０−２およびアプリケーションソフトウェア２０−２は、待機側ＳＢＹとして割り当てられている。
【０１２８】
また、図１０（ａ）に示した処理Ｐ１０１において、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６と、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６との間で定期的に「KeepAlive」の通信を行い、通信の死活監視を実施している。具体的にいうと、これらＭＷ状態管理部１６は、双方向ハートビート確認などの処理を実施する。
【０１２９】
また、ユーザの端末からの要求信号５１は、運用側ＡＣＴのアプリケーション管理ユニット１０−１およびアプリケーションソフトウェア２０−１に割り当てたＩＰアドレス「192.168.10.11」が宛先アドレスとなる。したがって、この要求信号５１は所定の通信ネットワークを経由して、アプリケーション管理ユニット１０−１に入力され、外部信号送受信部１１と内部信号複製／比較部１２と内部信号送受信部１３により、アプリケーションソフトウェア２０−１までに到達する。
【０１３０】
図１０（ａ）に示した通信システム１０５Ａの状態で、運用側ＡＣＴに故障が発生すると、図１０（ｂ）に示した通信システム１０５Ｂの状態に遷移する。すなわち、ベース装置３０−１、アプリケーション管理ユニット１０−１、アプリケーションソフトウェア２０−１のいずれかの故障に起因して、運用側ＡＣＴの動作異常が発生したような場合、処理Ｐ１０２において、アプリケーション管理ユニット１０−２が、ＭＷ状態管理部１６により「KeepAlive」通信の途絶を検知し、よって運用側ＡＣＴの故障を検知する。この場合は、アプリケーションソフトウェア２０−１のみの故障であっても、システムの故障とみなす。このような故障検知は、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６により実現してもよい。
【０１３１】
図１０（ｂ）に示した通信システム１０５Ｂにおいて、運用側ＡＣＴの故障が検知された場合、前述のように待機側ＳＢＹが運用側ＡＣＴに切り替わる。この時、切り替え前に待機側ＳＢＹであったアプリケーション管理ユニット１０−２は、自身のＭＷ状態管理部１６とＩＰアドレス管理部１５により、処理Ｐ１０３において、それ自身を表すＩＰアドレス「192.168.10.12」に、故障が発生した運用側ＡＣＴのＩＰアドレス「192.168.10.11」を追加する。
【０１３２】
これにより、ＩＰアドレス「192.168.10.11」が割り当てられた運用側ＡＣＴのアプリケーションソフトウェア２０−１が仮想的にアプリケーション管理ユニット１０−２上に載っている場合と同じ状況になる。このＩＰアドレス「192.168.10.11」の追加の際、処理Ｐ１０４において、アプリケーション管理ユニット１０−２は、ＩＰアドレス管理部１５により、例えば通信ネットワーク上に存在するルータ等７３に対して、ＩＰアドレスの変更を通知する。この通知は、ＡＲＰテーブルの書き換えなどの指示も含む。
【０１３３】
なお、アプリケーション管理ユニット１０−２にＩＰアドレスを追加する代わりに、アプリケーション管理ユニット１０−２のＩＰアドレスを変更することも考えられる。例えば、アプリケーション管理ユニット１０−２は、自身のＭＷ状態管理部１６とＩＰアドレス管理部１５により、自身のＩＰアドレスを「192.168.10.12」から「192.168.10.11」に変更する。これにより、アプリケーション管理ユニット１０−２は、自身およびアプリケーションソフトウェア２０−２を待機側ＳＢＹから運用側ＡＣＴに切り替えることができる。
【０１３４】
アプリケーション管理ユニット１０−２が待機側ＳＢＹから運用側ＡＣＴに切り替わると、ユーザからの要求信号５１は、ベース装置３０−２を通じてアプリケーション管理ユニット１０−２に入力される。
【０１３５】
一方、待機側ＳＢＹが１組だけ存在する場合に、図１０に示した通信システム１０５Ｂのように待機側ＳＢＹを運用側ＡＣＴに切り替えると、待機側ＳＢＹが存在しない状態になる。したがって、システム内に冗長化機構が存在する状態を常に維持するために、通信システムは、待機側ＳＢＹを運用側ＡＣＴに切り替える際に、新たな待機側ＳＢＹを更に用意する必要がある。
【０１３６】
そこで、図１１（ａ）に示した通信システム１０５Ｃのように、図１０（ｂ）の通信システム１０５Ｂの構成に加えて、新たなベース装置３０−３を用意する。更に、図１１（ａ）に示した通信システム１０５Ｃの状態から、図１１（ｂ）に示した通信システム１０５Ｄの状態に遷移する。すなわち、ベース装置３０−３上にアプリケーション管理ユニット１０−３を構築し、このアプリケーション管理ユニット１０−３の上にアプリケーションソフトウェア２０−３を構築する。そして、現在の運用側ＡＣＴと対になる待機側ＳＢＹを構成するように、アプリケーション管理ユニット１０−３、およびアプリケーションソフトウェア２０−３を割り当てる。
【０１３７】
具体的には、アプリケーション管理ユニット１０−１，１０−３は、システム構築部１７により、処理Ｐ１１１において、ライブマイグレーションを実施し、アプリケーションソフトウェア２０−１と同じ状態の新たなアプリケーションソフトウェア２０−３をアプリケーション管理ユニット１０−３上に構築する。このアプリケーション管理ユニット１０−３およびアプリケーションソフトウェア２０−３を新たな待機側ＳＢＹとして割り当てる。新たな待機側ＳＢＹのアプリケーションソフトウェア２０−３のＩＰアドレスは、運用側ＡＣＴのＩＰアドレス「192.168.10.11」と同じ値とする。
なお、この処理Ｐ１１１を開始してから完了するまでの間、外部から入力される信号はアプリケーション管理ユニット１０−２、１０−３で止められている。
【０１３８】
更に、処理Ｐ１１２において、運用側ＡＣＴのアプリケーション管理ユニット１０−２のシステム構築部１７と、待機側ＳＢＹのアプリケーション管理ユニット１０−３のシステム構築部１７とは、お互いを関連付ける。すなわち、これらシステム構築部１７は、冗長化を組む相手として相互に登録する。これにより、運用側ＡＣＴのアプリケーション管理ユニット１０−２と、待機側ＳＢＹのアプリケーション管理ユニット１０−３との間は、「Association」によりそれぞれ紐付けられる。
そして、処理Ｐ１１３において、クライアント端末５０との間の通信に必要な情報、例えばセッション情報などがあれば、これを運用側ＡＣＴのアプリケーション管理ユニット１０−２の同期信号送受信部１４と待機側ＳＢＹのアプリケーション管理ユニット１０−３の同期信号送受信部１４とが、これら情報を共有する。
【０１３９】
図１１（ｂ）に示した通信システム１０５Ｄの状態で、ライブマイグレーション、ＭＷ関連付け、セッション情報共有の処理が完了すると、通常の基本動作が可能になる。よって、図１１（ｃ）に示した通信システム１０５Ｅの状態に遷移する。図１１（ｂ）に示す通信システム１０５Ｄのベース装置３０−１、アプリケーション管理ユニット１０−１、およびアプリケーションソフトウェア２０−１は、故障の発生により完全に切り離されるため、図１１（ｃ）の通信システム１０５Ｅには存在しない。
【０１４０】
図１１（ｃ）の処理Ｐ１０１において、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６と、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６とは、両者間で定期的に「KeepAlive」の通信を行い、通信の死活監視を実施している。通信システム１０５Ｅにおいては、クライアント端末５０からの要求信号５１が、運用側ＡＣＴのアプリケーション管理ユニット１０−２に入力される。そして、要求信号５１の内容は、外部信号送受信部１１と内部信号複製／比較部１２と内部信号送受信部１３により、アプリケーションソフトウェア２０−２に転送される。また、要求信号５１の内容は、要求信号転送処理５３において、アプリケーション管理ユニット１０−２の同期信号送受信部１４により、アプリケーション管理ユニット１０−３の同期信号送受信部１４に転送される。更に要求信号５１の内容は、要求信号転送処理５３Ｂにおいて、内部信号複製／比較部１２と内部信号送受信部１３により、アプリケーションソフトウェア２０−３に転送される。
【０１４１】
＜待機側ＳＢＹに故障が発生した場合の動作例＞
本発明の実施形態におけるアプリケーション冗長化管理システムを含む通信システムにおいて、待機側ＳＢＹの設備に故障が発生した場合のそれぞれ異なる動作状態を図１２（ａ）、図１２（ｂ）、図１３（ａ）、図１３（ｂ）、および図１３（ｃ）に示す。
【０１４２】
例えば図１２（ａ）に示した通信システム１０６Ａは、アプリケーション冗長化管理システムを含んでいるので、運用側ＡＣＴ、待機側ＳＢＹの両方の機能を備えている。すなわち、ベース装置３０−１上にアプリケーション管理ユニット１０−１が配置され、アプリケーション管理ユニット１０−１上にアプリケーションソフトウェア２０−１が配置されている。アプリケーション管理ユニット１０−１およびアプリケーションソフトウェア２０−１は、運用側ＡＣＴとして割り当てられている。また、ベース装置３０−２上にアプリケーション管理ユニット１０−２が配置され、アプリケーション管理ユニット１０−２上にアプリケーションソフトウェア２０−２が配置されている。アプリケーション管理ユニット１０−２およびアプリケーションソフトウェア２０−２は、待機側ＳＢＹとして割り当てられている。
【０１４３】
また、図１２（ａ）に示した処理Ｐ１２１において、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６と、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６とは、両者間で定期的に「KeepAlive」の通信を行い、通信の死活監視を実施している。具体的にいうと、これらＭＷ状態管理部１６は、双方向ハートビート確認などの処理を実施する。
【０１４４】
また、ユーザの端末からの要求信号５１は、運用側ＡＣＴのアプリケーション管理ユニット１０−１およびアプリケーションソフトウェア２０−１に割り当てたＩＰアドレス「192.168.10.11」が宛先アドレスとなる。したがって、この要求信号５１は所定の通信ネットワークを経由して、アプリケーション管理ユニット１０−１に入力され、アプリケーションソフトウェア２０−１までに到達する。
【０１４５】
図１２（ａ）に示した通信システム１０６Ａの状態で、待機側ＳＢＹに故障が発生すると、図１２（ｂ）に示した通信システム１０６Ｂの状態に遷移する。すなわち、ベース装置３０−２、アプリケーション管理ユニット１０−２、アプリケーションソフトウェア２０−２のいずれかの故障に起因して、待機側ＳＢＹの動作異常が発生したような場合、処理Ｐ１２２において、アプリケーション管理ユニット１０−２は、ＭＷ状態管理部１６により、システムの故障を検知する。この場合は、アプリケーションソフトウェア２０−２のみの故障であっても、システムの故障とみなす。このような故障検知は、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６により実現してもよい。
【０１４６】
図１２（ｂ）に示した通信システム１０６Ｂにおいて、待機側ＳＢＹの故障が検知された場合、アプリケーション管理ユニット１０−１は、処理Ｐ１２３でアプリケーション管理ユニット１０−２への要求信号の転送を行わない。また、アプリケーション管理ユニット１０−１は、処理Ｐ１２１において「KeepAlive」を行う必要もなくなる。
【０１４７】
図１２（ｂ）に示した通信システム１０６Ｂのように、待機側ＳＢＹに故障が発生した場合、現在の運用側ＡＣＴの機能には問題ないが、冗長化機構が使えない状態になっている。したがって、冗長化機構が使えるように通信システム１０６Ｂの構成を変更する必要がある。
【０１４８】
そこで、図１２（ｂ）に示した通信システム１０６Ｂの状態から図１３（ａ）に示した通信システム１０６Ｃの状態に遷移する際に、処理Ｐ１３１で、新たなアプリケーションソフトウェア２０−３のために、ベース装置３０−３を用意する。なお、図１３（ａ）の処理Ｐ１３３の破線矢印は、アプリケーション管理ユニット１０−１と、故障により停止したアプリケーション管理ユニット１０−２とが冗長化されていたことを示している。
【０１４９】
そして、処理Ｐ１３２で、ベース装置３０−３上にアプリケーション管理ユニット１０−３を構築する。更にアプリケーション管理ユニット１０−３は、システム構築部１７により、アプリケーション管理ユニット１０−３上に待機側ＳＢＹのアプリケーションソフトウェア２０−３を再構築する。
【０１５０】
再構築される待機側ＳＢＹのアプリケーションソフトウェア２０−３には、対になる運用側ＡＣＴのアプリケーションソフトウェア２０−１のＩＰアドレス「192.168.10.11」と同じＩＰアドレスが割り当てられる。アプリケーション管理ユニット１０−３のＩＰアドレスの値は、通信システム１０６Ｄにおいては「192.168.10.13」である。
【０１５１】
また、アプリケーション管理ユニット１０−１、１０−３は、システム構築部１７により、処理Ｐ１３４において、ライブマイグレーションを実施し、アプリケーションソフトウェア２０−１と同じ状態の新たなアプリケーションソフトウェア２０−３をアプリケーション管理ユニット１０−３上に構築する。このアプリケーション管理ユニット１０−３およびアプリケーションソフトウェア２０−３を新たな待機側ＳＢＹとして割り当てる。なお、この処理Ｐ１３４が開始してから完了するまでの間は、外部から入力される信号はアプリケーション管理ユニット１０−１、１０−３で止められている。
【０１５２】
更に、処理Ｐ１３５において、運用側ＡＣＴのアプリケーション管理ユニット１０−１のシステム構築部１７と、待機側ＳＢＹのアプリケーション管理ユニット１０−３のシステム構築部１７とは、お互いを関連付ける。すなわち、これらシステム構築部１７は、冗長化を組む相手として相互に登録する。これにより、運用側ＡＣＴのアプリケーション管理ユニット１０−１と、待機側ＳＢＹのアプリケーション管理ユニット１０−３との間は、「Association」によりそれぞれ紐付けられる。
更に、処理Ｐ１３６において、運用側ＡＣＴのアプリケーション管理ユニット１０−１の同期信号送受信部１４と待機側ＳＢＹのアプリケーション管理ユニット１０−３の同期信号送受信部１４とは、クライアント端末５０との間の通信に必要な情報、例えばセッション情報などがあれば、これら情報を共有する。
【０１５３】
図１３（ｂ）に示した通信システム１０６Ｄの状態で、ライブマイグレーション、ＭＷ関連付け、セッション情報共有の処理が完了すると（処理Ｐ１３７）、通常の基本動作が可能になる。よって、図１３（ｃ）に示した通信システム１０６Ｅの状態に遷移する。図１３（ｂ）に示す通信システム１０６Ｄのベース装置３０−２、アプリケーション管理ユニット１０−２、およびアプリケーションソフトウェア２０−２は、故障の発生により完全に切り離されるため、図１３（ｃ）の通信システム１０６Ｅには存在しない。
【０１５４】
図１３（ｃ）の処理Ｐ１３３において、運用側ＡＣＴのアプリケーション管理ユニット１０−１のＭＷ状態管理部１６と、待機側ＳＢＹのアプリケーション管理ユニット１０−２のＭＷ状態管理部１６とは、両者間で定期的に「KeepAlive」の通信を行い、通信の死活監視を実施している。
通信システム１０６Ｅにおいては、クライアント端末５０からの要求信号５１が、運用側ＡＣＴのアプリケーション管理ユニット１０−１に入力される。そして、要求信号５１の内容は、外部信号送受信部１１と内部信号複製／比較部１２と同期信号送受信部１４により、アプリケーションソフトウェア２０−１に転送される。また、要求信号５１の内容は、要求信号転送処理５３において、アプリケーション管理ユニット１０−１の同期信号送受信部１４により、アプリケーション管理ユニット１０−３の同期信号送受信部１４に転送される。更に要求信号５１の内容は、要求信号転送処理５３Ｂにおいて、内部信号複製／比較部１２と内部信号送受信部１３により、アプリケーションソフトウェア２０−３に転送される。
【０１５５】
＜アプリケーション冗長化管理システムの利点＞
（１）本発明のアプリケーション冗長化管理システムを利用する場合、例えば図５に示した通信システム１０３Ａのように、同じ機能を有する複数のアプリケーションソフトウェア２０−１、２０−２を同時に同じ状態で動作させることができる。したがって、複数のアプリケーションソフトウェア２０−１、２０−２のいずれかを運用側ＡＣＴに割り当て、残りを待機側ＳＢＹに割り当てることができる。そして、例えば運用側ＡＣＴに故障が発生した場合、図６に示すように待機側ＳＢＹを運用側ＡＣＴに切り替えることができる。これによりシステムは、故障発生の場合でも、そのままユーザへのサービス提供を継続できる。
【０１５６】
（２）また、例えば図３に示した通信システム１０２Ｆのように、同時に稼働している複数のアプリケーションソフトウェア２０−１、２０−２の一方を運用側ＡＣＴ、他方を待機側ＳＢＹとし、定常状態においては運用側ＡＣＴの応答信号のみを選択的に外部に出力する。これによりシステムは、運用側ＡＣＴが故障した場合、即座に待機側ＳＢＹの応答信号に切り替えて出力することが可能である。
【０１５７】
（３）また、例えば図３に示した通信システム１０２Ｅのように、運用側ＡＣＴの応答信号と待機側ＳＢＹの応答信号とを比較することにより、これらの一致／不一致に応じて、運用側ＡＣＴ又は待機側ＳＢＹの故障の有無を識別できる。
【０１５８】
（４）また、例えば図９に示した通信システム１０４Ｂのように、同時に稼働している運用側ＡＣＴおよび待機側ＳＢＹのアプリケーションソフトウェア２０−１、２０−２のうち、運用側ＡＣＴの異常を検知した場合、待機側ＳＢＹのアプリケーションソフトウェア２０−２を運用側ＡＣＴに切り替える。これによりシステムは、故障の影響を受けることなく、正常な応答信号を直ちに出力できる。
【０１５９】
（５）また、例えば図１０（ｂ）に示した通信システム１０５Ｂのように、同時に稼働している運用側ＡＣＴおよび待機側ＳＢＹのアプリケーションソフトウェア２０−１、２０−２のうち、運用側ＡＣＴの異常を検知した場合、アプリケーション管理ユニット１０−２にＩＰアドレスを追加するか、又はＩＰアドレスを変更する。これにより、待機側ＳＢＹのアプリケーション管理ユニット１０−２、およびアプリケーションソフトウェア２０−２を、待機側ＳＢＹから運用側ＡＣＴに瞬時に切り替えることができる。なお、各アプリケーションソフトウェア２０や各アプリケーション管理ユニット１０を、ＩＰアドレス以外の識別子を用いて管理してもよい。
【０１６０】
（６）また、例えば図３に示した通信システム１０２Ｄのように、同時に稼働している複数のアプリケーションソフトウェア２０のそれぞれにアプリケーション管理ユニット１０を接続し、複数のアプリケーション管理ユニット１０の間で相互に通信を行う。これにより、各アプリケーション管理ユニット１０は各アプリケーションソフトウェア２０の異常の有無を識別できる。
【０１６１】
（７）また、例えば図１１（ｃ）に示した通信システム１０５Ｄのように、同時に稼働している複数のアプリケーションソフトウェア２０のうちいずれか一方の異常を検知した場合、異常が発生したアプリケーションの代わりの新たなアプリケーションソフトウェア２０−３を稼働可能な状態で追加し、これを新たに待機側ＳＢＹとして割り当てる。これにより、既に故障が発生した状況であっても、冗長化機構を利用可能な状況を常時維持できる。
【０１６２】
なお、上述のようなアプリケーション冗長化管理システムは、これと同じような処理手順を適用することにより、様々な方法で実現可能である。例えば、同様の処理手順を実行するプログラムとして実現することも可能である。上記実施形態では、分散システムを例として説明しているが、分散システムでなくてもよい。
【符号の説明】
【０１６３】
１０，１０−１，１０−２，１０−３  アプリケーション管理ユニット
１１  外部信号送受信部
１１ａ，１１ｂ  外部信号
１２  内部信号複製／比較部（信号管理部）
１２ａ  キャッシュ
１３  内部信号送受信部
１４  同期信号送受信部
１５  ＩＰアドレス管理部
１５ａ  データベース
１６  ＭＷ状態管理部  （第１の状態管理部、第２の状態管理部）
１６ａ  データベース
１７  システム構築部
２０，２０−１，２０−２，２０−３  アプリケーションソフトウェア
３０，３０−１，３０−２，３０−３  ベース装置
４１，４２，５８，５９，６０，６３，２２１，２２２  処理
５０  クライアント端末
５１  要求信号
５２，５３，５４  要求信号転送処理
５５，５６，５７  応答信号転送処理
６１，６２  応答信号
７０  負荷分散装置（ロードバランサ：ＬＢ）
７２，７２Ｂ  ＤＮＳサーバ
７３  ルータ等
１０１Ａ，１０１Ｂ，１０１Ｃ，１０１Ｄ，１０１Ｅ  通信システム
１０２Ａ，１０２Ｂ，１０２Ｃ，１０２Ｄ，１０２Ｅ  通信システム
１０３Ａ，１０３Ｂ，１０４Ａ，１０４Ｂ  通信システム
１０５Ａ，１０５Ｂ，１０５Ｃ，１０５Ｄ，１０５Ｅ  通信システム
１０６Ａ，１０６Ｂ，１０６Ｃ，１０６Ｄ，１０６Ｅ  通信システム
Ｐ６１，Ｐ６２，Ｐ６３，Ｐ６４，Ｐ６５  処理
Ｐ８１，Ｐ８２，Ｐ８３，Ｐ８４，Ｐ８５，Ｐ８６，Ｐ８７  処理
Ｐ９１，Ｐ９２，Ｐ９３，Ｐ９４  処理
Ｐ１０１，Ｐ１０２，Ｐ１０３  処理
Ｐ１１１，Ｐ１１２，Ｐ１１３  処理
Ｐ１２１，Ｐ１２２，Ｐ１２３  処理
Ｐ１３１，Ｐ１３２，Ｐ１３４，Ｐ１３５，Ｐ１３６，Ｐ１３７  処理
２００Ａ，２００Ｂ  通信システム
２０１，２０２，２０３  ベース装置
２１１，２１２，２１３  アプリケーションソフトウェア
２２５  信号
ＡＣＴ  運用側
ＳＢＹ  待機側
【図１】
2018136814.tif 000003
【図２】
2018136814.tif 000004
【図３】
2018136814.tif 000005
【図４】
2018136814.tif 000006
【図５】
2018136814.tif 000007
【図６】
2018136814.tif 000008
【図７】
2018136814.tif 000009
【図８】
2018136814.tif 000010
【図９】
2018136814.tif 000011
【図１０】
2018136814.tif 000012
【図１１】
2018136814.tif 000013
【図１２】
2018136814.tif 000014
【図１３】
2018136814.tif 000015