(57)【要約】【課題】命令文の漏洩を抑制できる情報処理システム、情報処理装置、端末装置、制御プログラムおよび制御方法を提供する。【解決手段】端末装置１２は、現用系の情報処理装置１１Ａに送信したパケットに対する応答の異常を検知する。端末装置１２は、応答の異常を検知した場合、待機系の情報処理装置１１Ｂに対して、現用系の情報処理装置１１Ａを待機系の情報処理装置１１Ｂに切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する。待機系の情報処理装置１１Ｂは、端末装置１２から送信された複数のパケットに付加された分割命令文それぞれを記憶する。待機系の情報処理装置１１Ｂは、記憶された複数の分割命令文から生成される切り替え命令により、現用系の情報処理装置１１Ａを待機系の情報処理装置１１Ｂに切り替える切替処理を実行する。【選択図】図１０
2015095247.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、前記端末装置からの要求を受けて、前記要求に応じた処理を実行する現用系装置と、待機系装置とを備えた情報処理システムであって、
前記端末装置は、
前記現用系装置に送信したパケットに対する応答の異常を検知する検知部と、
前記応答の異常を検知した場合、前記待機系装置に対して、前記現用系装置を前記待機系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する送信制御部と、を備え、
前記待機系装置は、
前記端末装置から送信された前記複数のパケットに付加された分割命令文それぞれを記憶する記憶部と、
前記複数の分割命令文から生成される前記切り替え命令により、前記現用系装置を前記待機系装置に切り替える切替処理を実行する切替部と、を備えたことを特徴とする情報処理システム。
【請求項２】
前記待機系装置および前記現用系装置は、
前記待機系装置と前記現用系装置との切り替えを指示する切り替え命令の命令文を複数に分割した複数の分割命令文を前記端末装置へ通知する通知部をさらに備えたことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記検知部は、前記現用系装置にパケットを送信してから第１の期間以内に当該パケットに対する応答が得られない場合、前記現用系装置に通信のタイムアウトが発生したと検知し、
前記送信制御部は、通信のタイムアウトを検知した場合、前記待機系装置に対して、前記複数のパケットを送信する
ことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記検知部は、前記現用系装置でのパケットに対する処理が第２の期間以上の場合、前記現用系装置に処理時間オーバが発生したと検知し、
前記送信制御部は、処理時間オーバを検知した場合、前記現用系装置を前記待機系装置に切り替える切り替え命令の命令文を複数に分割して、送信の順番が対応付けられ複数の分割命令文のうち、連続して異常が検知された回数に対応した順番の分割命令文をヘッダ領域に付加したパケットを前記現用系装置に対して送信し、
前記現用系装置は、
前記端末装置から送信された前記複数のパケットに付加された分割命令文それぞれを記憶する記憶部と、
前記記憶部に保持された前記複数の分割命令文により、前記切り替え命令の命令文が生成可能となったときに、前記待機系装置と前記現用系装置とを切り替える切替処理を実行する切替部と、をさらに備えたことを特徴とする請求項１〜３の何れか１に記載の情報処理システム。
【請求項５】
端末装置からの要求を受けて、前記要求に応じた処理を実行する現用系装置に対応する待機系の情報処理装置であって、
前記端末装置から送信されたパケットを受信する受信部と、
前記端末装置から送信された前記複数のパケットのヘッダ領域に付加された、前記待機系装置を前記現用系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文それぞれを記憶する記憶部と、
前記複数の分割命令文から生成される前記切り替え命令により、前記現用系装置を待機系に切り替える切替処理を実行する切替部と、
を備えたことを特徴とする情報処理装置。
【請求項６】
要求に応じた処理を実行する現用系装置へ要求を送信する端末装置であって、
前記現用系装置に送信したパケットに対する応答の異常を検知する検知部と、
前記応答の異常を検知した場合、前記現用系装置に対応する待機系装置に対して、前記待機系装置を前記現用系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する送信制御部と、
を備えたことを特徴とする端末装置。
【請求項７】
端末装置からの要求を受けて、前記要求に応じた処理を実行する現用系装置に対応する待機系の情報処理装置の制御プログラムであって、
前記端末装置から送信されたパケットを受信する受信部により受信されたパケットのヘッダ領域に付加された、待機系を前記現用系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文それぞれを記憶部に記憶し、
前記複数の分割命令文から生成される前記切り替え命令により、前記現用系装置を待機系に切り替える
処理を実行させることを特徴とする制御プログラム。
【請求項８】
要求に応じた処理を実行する現用系装置へ要求を送信する端末装置の制御プログラムであって、
前記現用系装置に送信したパケットに対する応答の異常を検知し、
前記応答の異常を検知した場合、前記現用系装置に対応する待機系装置に対して、前記待機系装置を前記現用系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する
処理を実行させることを特徴とする制御プログラム。
【請求項９】
端末装置と、前記端末装置からの要求を受けて、前記要求に応じた処理を実行する現用系装置と、待機系装置を備えた情報処理システムの制御方法であって、
前記端末装置は、
前記現用系装置に送信したパケットに対する応答の異常を検知し、
前記応答の異常を検知した場合、前記待機系装置に対して、前記現用系装置を前記待機系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信し、
前記待機系装置は、
前記端末装置から送信された前記複数のパケットに付加された分割命令文それぞれを記憶部に記憶し、
前記複数の分割命令文から生成される前記切り替え命令により、前記現用系装置を前記待機系装置に切り替える
処理を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、端末装置、制御プログラムおよび制御方法に関する。
【背景技術】
【０００２】
コンピュータの信頼性、可用性を高める技術としてＨＡ（High  Availability）クラスタシステムが知られている。ＨＡクラスタシステムは、複数のサーバが相互接続され、システムの冗長化が図られている。
【０００３】
ＨＡクラスタシステムでは、例えば、ＨＡクラスタシステムを構成するサーバ間を専用のネットワークで接続し、専用のネットワークを介して相互監視して異常を検出する。例えば、ＨＡクラスタシステムでは、各サーバがハートビートと呼ばれる、正常に稼動していることを外部に知らせる信号を専用のネットワークを介して他のサーバへ送信し、他のサーバが信号を監視して異常を検出する。ＨＡクラスタシステムでは、端末装置からの処理要求に基づく処理を実行する現用系のサーバの停止や動作中の異常を待機系のサーバが検知した場合、待機系のサーバが現用系として処理を行なうように切り替えることで、障害発生時にも処理を継続する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０５３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＨＡクラスタシステムでは、サーバで異常が発生した場合であっても、ハートビート通信が継続される場合がある。例えば、ＯＳ（Operating  System）の高信頼化により、サーバは、ＯＳの一部分が動作しない場合でも全体として動作できるようになっている。このため、ＯＳの一部分で異常が発生した場合でも、サーバでは、ハートビートは正常動作するが、アプリケーションの処理は正常に動作しない場合がある。
【０００６】
このため、ＨＡクラスタシステムでは、例えば、端末装置側からもサーバを監視して異常検知に伴う現用系の切り替えを行なうことが考えられる。
【０００７】
しかしながら、端末装置から切り替えの命令を送信する場合、切り替えの命令文が悪意あるユーザにより盗聴されて命令文が漏洩する虞がある。このように命令文が漏洩した場合、システムがハッキングされる虞がある。
【０００８】
一側面では、命令文の漏洩を抑制できる情報処理システム、情報処理装置、端末装置、制御プログラムおよび制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面によれば、情報処理システムは、端末装置と、前記端末装置からの要求を受けて、前記要求に応じた処理を実行する現用系装置と、待機系装置とを備える。端末装置は、検知部と、送信制御部と、を備える。検知部は、前記現用系装置に送信したパケットに対する応答の異常を検知する。送信制御部は、前記応答の異常を検知した場合、前記待機系装置に対して、前記現用系装置を前記待機系装置に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する。また、待機系装置は、記憶部と、切替部と、を備える。記憶部は、端末装置から送信された前記複数のパケットに付加された分割命令文それぞれを記憶する。切替部は、複数の分割命令文から生成される前記切り替え命令により、前記現用系装置を前記待機系装置に切り替える切替処理を実行する。
【発明の効果】
【００１０】
本発明の一側面によれば、命令文の漏洩を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、情報処理システムの概略的な構成の一例を示す図である。
【図２】図２は、情報処理装置の機能的な構成の一例を示す図である。
【図３】図３は、格納される命令文のデータ構成の一例を示す図である。
【図４】図４は、処理状況情報のデータ構成の一例を示す図である。
【図５】図５は、端末装置の機能的な構成の一例を示す図である。
【図６】図６は、構成情報テーブルのデータ構成の一例を示す図である。
【図７】図７は、情報処理システムの処理の流れの一例を説明する図である。
【図８】図８は、情報処理システムの処理の流れの一例を説明する図である。
【図９】図９は、情報処理システムの処理の流れの一例を説明する図である。
【図１０】図１０は、情報処理システムの処理の流れの一例を説明する図である。
【図１１】図１１は、端末装置が異常を検知して切り替えを制御する制御処理の手順を示すフローチャートである。
【図１２】図１２は、情報処理装置がパケットを受信した際の制御処理の手順を示すフローチャートである。
【図１３】図１３は、制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる情報処理システム、情報処理装置、端末装置、制御プログラムおよび制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
実施例１に係る情報処理システム１０について説明する。図１は、情報処理システムの概略的な構成の一例を示す図である。情報処理システム１０は、複数の情報処理装置１１と、端末装置１２とを有する。情報処理システム１０は、システムの信頼性、可用性を向上させるため、複数の情報処理装置１１によりＨＡクラスタが構成されている。複数の情報処理装置１１および端末装置１２は、各種の情報を交換することが可能とされている。例えば、複数の情報処理装置１１および端末装置１２は、ネットワーク１３を介して通信可能に接続され、各種の情報を交換することが可能とされている。かかるネットワーク１３の一態様としては、有線または無線を問わず、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の通信網が挙げられる。
【００１４】
情報処理システム１０は、端末装置１２からの処理要求に応じて情報処理装置１１が所定の機能を提供する。このような情報処理システム１０は、例えば、金融業界など、システムの信頼性、可用性が要求される場合に用いられる。なお、図１の例では、複数の情報処理装置１１として、２台の情報処理装置１１Ａ、１１ＢによりＨＡクラスタを構成した場合を例示したが、開示のシステムはこれに限定されず、３台以上の情報処理装置１１によりＨＡクラスタを構成してもよい。また、図１の例では、１台の端末装置１２から処理の要求を受け付ける場合を例示したが、開示のシステムはこれに限定されず、複数の端末装置１２から処理の要求を受け付けてもよい。
【００１５】
情報処理装置１１は、所定の機能を提供するアプリケーションソフトが動作する物理サーバであり、例えば、データセンサや各企業に設けられたサーバコンピュータである。本実施例では、２台の情報処理装置１１Ａ、１１ＢによりＨＡクラスタを構成している。情報処理装置１１Ａ、１１Ｂは、略同一の構成とされている。情報処理装置１１Ａ、１１Ｂは、一方が要求に応じた処理を実行する現用系として動作し、他方が現用系に異常が発生した場合のバックアップである待機系として動作する。現用系として動作する情報処理装置１１が、現用系装置である。待機系として動作する情報処理装置１１が、待機系装置である。
【００１６】
端末装置１２は、処理を要求する装置である。端末装置１２は、現用系の情報処理装置１１に対して処理を要求する。なお、端末装置１２は、ユーザからの操作を受け付けて、情報処理装置１１へ処理を要求するクライアント端末であってもよい。また、端末装置１２は、他のクライアント端末からユーザの操作を受け付けて、情報処理装置１１へ処理を要求するサーバであってもよい。
【００１７】
次に、図２を参照して、情報処理装置１１のより詳細な構成について説明する。図２は、情報処理装置の機能的な構成の一例を示す図である。図２に示すように、情報処理装置１１は、通信Ｉ／Ｆ（interface）部２０と、記憶部２１と、制御部２２とを有する。
【００１８】
通信Ｉ／Ｆ部２０は、少なくとも１つのポートを有し、ネットワーク１３との間の通信を制御するインタフェースである。通信Ｉ／Ｆ部２０は、ネットワーク１３を介して他の装置と各種の情報を送受信する。例えば、通信Ｉ／Ｆ部２０は、端末装置１２から処理要求を受信する。
【００１９】
記憶部２１は、各種のデータを記憶する記憶デバイスである。例えば、記憶部２１は、ハードディスク、ＳＳＤ（Solid  State  Drive）、光ディスクなどの記憶装置である。なお、記憶部２１は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであってもよい。
【００２０】
記憶部２１は、制御部２２で実行されるＯＳや各種プログラムを記憶する。例えば、記憶部２１は、待機系と現用系との切り替えの制御に用いる各種のプログラムを記憶する。さらに、記憶部２１は、制御部２２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２１は、命令ブロック情報３０と、受信命令文情報３１と、処理状況情報３２とを記憶する。
【００２１】
命令ブロック情報３０は、ＨＡクラスタされた情報処理装置１１を制御する各種の命令の命令文を格納したデータである。本実施例では、盗聴による命令文の漏洩を抑制するため、命令文を分割し、ランダムに並び替えた命令文のブロックを命令ブロック情報３０に記憶させる。例えば、現用系と待機系とを切り替える切り替え命令の命令文を所定の圧縮形式で圧縮し、圧縮された命令文のデータを複数のブロックに分割してランダムに並び替えた命令文のブロックを命令ブロック情報３０に記憶させる。
【００２２】
図３は、格納される命令文のデータ構成の一例を示す図である。図３の例では、現用系と待機系とを切り替える切り替え命令の命令文を所定の圧縮形式で圧縮し、圧縮された命令文のデータをブロックＡ〜Ｅに分割している。そして、ブロックＡ〜Ｅをランダムに並べ替え、先頭から順に１〜５の番号を対応付けて命令ブロック情報３０に記憶させる。図３の例では、ブロックＡ〜Ｅが「Ａ」、「Ｅ」、「Ｄ」、「Ｃ」、「Ｂ」と並べ替えされており、先頭から順に１〜５の番号を対応付けている。命令ブロック情報３０は、並べ替えた命令文のブロックＡ〜Ｅを、番号と共に記憶する。この「Ａ」、「Ｅ」、「Ｄ」、「Ｃ」、「Ｂ」の順とされたブロックＡ〜Ｅは、番号「１」、「５」、「４」、「３」、「２」の順に並び変えると、ブロックＡ〜Ｅの正しい順番となる。
【００２３】
図２に戻り、受信命令文情報３１は、端末装置１２から受信された命令文に関する情報を格納したデータである。本実施例では、端末装置１２から各種の指示として、命令文のブロックに関連付けられた番号を受信する。受信命令文情報３１は、端末装置１２から受信された命令文のブロックの番号を記憶する。
【００２４】
処理状況情報３２は、端末装置１２から要求された処理の処理状況に関する各種の情報を格納したデータである。図４は、処理状況情報のデータ構成の一例を示す図である。図４に示すように、処理状況情報３２は、「シリアルＮｏ」、「受信コマンド」、「処理開始時刻」、「処理完了時刻」、「サーバ処理の閾値」の各項目を有する。「シリアルＮｏ」の項目は、受信したパケットを識別する識別情報を記憶する領域である。受信したパケットには、それぞれを識別するため、数字や文字を組み合わせて、ユニークなシリアル番号が付与される。「シリアルＮｏ」の項目には、パケットに付与されたシリアル番号が記憶される。「受信コマンド」の項目は、受信したパケットに含まれた命令文のブロックの番号を記憶する領域である。ここで、本実施例では、端末装置１２が情報処理装置１１に指示を行う場合、パケットのヘッダに、指示する命令文のブロックの番号を格納して送信する。「受信コマンド」の項目には、受信されたパケットのヘッダに格納された命令文のブロックの番号が記憶される。なお、番号「０」は、指示された命令文のブロックが無いことを示す。「処理開始時刻」の項目は、パケットの処理を開始した時刻を記憶する領域である。本実施例では、パケットの処理を開始した時刻として、パケットを受信した時刻を「処理開始時刻」の項目に記憶させる。また、本実施例では、情報処理装置１１Ａ、１１Ｂ、端末装置１２は、時刻が同期されているものとする。例えば、情報処理装置１１Ａ、１１Ｂおよび端末装置１２は、基準の時刻を保持するサーバと、ＮＴＰ（Network  Time  Protocol）を用いて時刻の同期を行うことにより、時刻が同期されている。
【００２５】
「処理完了時刻」の項目は、パケットの処理を完了した時刻を記憶する領域である。本実施例では、パケットの処理を終了した時刻として、受信したパケットに対する応答のパケットを送信した時刻を「処理完了時刻」の項目に記憶させる。「サーバ処理の閾値」の項目は、処理時間オーバが発生したと見なす処理時間の閾値を記憶する領域である。ここで、情報処理装置１１は、ＯＳの異常などにより処理が停止または遅延する場合がある。サーバ処理の閾値は、このような異常の発生を検出するための閾値である。サーバ処理の閾値は、端末装置１２がパケットのヘッダに設定して情報処理装置１１に通知する。
【００２６】
図２に戻り、制御部２２は、情報処理装置１１を制御するデバイスである。制御部２２としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部２２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２２は、通知部４０と、アプリケーション処理部４１と、切替部４２とを有する。
【００２７】
通知部４０は、各種の通知を行う処理部である。本実施例では、端末装置１２が、起動時など、装置の初期処理の際に、ＨＡクラスタ化された装置があるか否かの問合せをブロードキャストする。通知部４０は、端末装置１２からブロードキャストによる問合せを受け付けると、クラスタに関する各種の情報を端末装置１２に通知する。例えば、通知部４０は、自装置のコンピュータ名、ＩＰアドレス、クラスタを識別するクラスタ名、クラスタ構成とされたアプリケーション名を端末装置１２に通知する。また、通知部４０は、クラスタを制御する命令文を通知する。また、盗聴による命令文の漏洩を抑制するため、通知部４０は、命令文を分割し、ランダムに並び替えて命令ブロック情報３０に記憶させる。例えば、通知部４０は、図３に示すように、現用系と待機系の切り替える切り替え命令の命令文を所定の圧縮形式で圧縮し、圧縮された命令文のデータをブロックＡ〜Ｅに分割する。そして、通知部４０は、ブロックＡ〜Ｅをランダムに並べ替えて先頭から順に１〜５の番号を対応付けて命令ブロック情報３０に記憶させる。通知部４０は、ランダムに並べ替えた命令文のブロックの正しい並び順を番号で示した番号の順番を端末装置１２に通知する。例えば、通知部４０は、ランダムに並び変えたブロックＡ〜Ｅの正しい並び順を示す番号の順番「１５４３２」を端末装置１２に通知する。
【００２８】
アプリケーション処理部４１は、アプリケーションの処理を実行する処理部である。例えば、アプリケーション処理部４１は、端末装置１２からの処理要求に応じて、要求に応じたアプリケーションの処理を実行する。この際、アプリケーション処理部４１は、処理状況情報３２の更新を行う。例えば、アプリケーション処理部４１は、端末装置１２からの処理要求のパケットを受け付けると、受信したパケットに対して、ユニークなシリアル番号が付与する。そして、アプリケーション処理部４１は、付与したシリアル番号、パケットの受信時刻、パケットのヘッダに含まれる命令文のブロックの番号、パケットのヘッダに含まれる処理時間の閾値を処理状況情報３２に登録する。そして、アプリケーション処理部４１は、処理要求に応じたアプリケーションの処理を実行する。アプリケーション処理部４１は、パケットの処理を終了すると、処理完了時刻を処理状況情報３２に登録し、受信したパケットに対する応答のパケットを端末装置１２へ送信する。また、アプリケーション処理部４１は、アプリケーションの処理の処理期間を計測する。例えば、アプリケーション処理部４１は、処理完了時刻と処理開始時刻の差からアプリケーションの処理の処理期間を計測する。なお、アプリケーション処理部４１は、処理期間として、パケットの受信時刻からの経過期間を計測してもよい。アプリケーション処理部４１は、処理期間が処理時間の閾値よりも長くなった場合、処理時間オーバを端末装置１２へ通知する。
【００２９】
切替部４２は、ＨＡクラスタ構成とされた待機系と現用系の情報処理装置１１の切替を制御する処理部である。例えば、切替部４２は、端末装置１２からパケットを受信すると、受信したパケットのヘッダに含まれる命令文のブロックの番号を受信命令文情報３１に記憶させる。そして、切替部４２は、受信命令文情報３１に保持された複数の命令文のブロックの番号から、切り替え命令の命令文が生成可能となったときに、待機系と現用系の情報処理装置１１の切替を実行する。例えば、切替部４２は、新しく受信したパケットの番号のブロックから順に、命令文の分割数分のブロックを結合する。切替部４２は、結合したデータを解凍した結果、替え命令の命令文を得られた場合、切替を実行する。例えば、切替部４２は、自身が現用系の情報処理装置１１である場合、待機系の情報処理装置１１の切替部４２へ現用系への切替指示を送信し、自身を待機系の情報処理装置１１へ移行させる。また、切替部４２は、自身が待機系の情報処理装置１１である場合、現用系の情報処理装置１１の切替部４２へ待機系への切替指示を送信して、現用系の情報処理装置１１を待機系の情報処理装置１１に切り替える切替処理を実行する。また、切替部４２は、自身を現用系の情報処理装置１１へ移行させる。
【００３０】
次に、端末装置１２のより詳細な構成について説明する。図５は、端末装置の機能的な構成の一例を示す図である。図５に示すように、端末装置１２は、通信Ｉ／Ｆ部５０と、記憶部５１と、制御部５２とを有する。
【００３１】
通信Ｉ／Ｆ部５０は、少なくとも１つのポートを有し、ネットワーク１３との間の通信を制御するインタフェースである。通信Ｉ／Ｆ部５０は、ネットワーク１３を介して他の装置と各種の情報を送受信する。例えば、通信Ｉ／Ｆ部５０は、現用系の情報処理装置１１へ処理要求を送信する。
【００３２】
記憶部５１は、各種のデータを記憶する記憶デバイスである。例えば、記憶部５１は、ハードディスク、ＳＳＤ、光ディスクなどの記憶装置である。なお、記憶部５１は、ＲＡＭ、フラッシュメモリ、ＮＶＳＲＡＭなどのデータを書き換え可能な半導体メモリであってもよい。
【００３３】
記憶部５１は、制御部５２で実行されるＯＳや各種プログラムを記憶する。例えば、記憶部５１は、パケットを受信した際の制御に用いる各種のプログラムを記憶する。さらに、記憶部５１は、制御部５２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部５１は、定義情報６０と、構成情報テーブル６１とを記憶する。
【００３４】
定義情報６０は、各種の設定情報を記憶したデータである。例えば、定義情報６０には、処理時間オーバとする処理時間の閾値が記憶されている。また、定義情報６０には、通信タイムアウトとするタイムアウト時間の閾値が記憶されている。これらの各種の設定情報は、例えば、システムの管理者により定義情報６０に設定される。なお、処理時間の閾値およびタイムアウト時間の閾値は、１つの設定を各情報処理装置１１にそれぞれ設定してもよい。また、処理時間の閾値およびタイムアウト時間の閾値は、情報処理装置１１毎に、個別に設定できてもよい。また、定義情報６０は、例えば、他のサーバからダウンロードするものとしてもよい。また、定義情報６０に記憶された各種の設定情報は、例えば、設定情報を用いる際に他のサーバから取得するものとしてもよい。
【００３５】
構成情報テーブル６１は、システムを構成する各装置の各種の構成情報を記憶したデータである。図６は、構成情報テーブルのデータ構成の一例を示す図である。図６に示すように、構成情報テーブル６１は、「サーバ名」、「ＩＰアドレス」、「クラスタ名」、「アプリ名」、「サーバ処理の閾値」、「タイムアウト時間」、「切替コマンド」の各項目を有する。「サーバ名」の項目は、装置のコンピュータ名を記憶する領域である。「ＩＰアドレス」の項目は、装置のＩＰアドレスを記憶する領域である。「クラスタ名」の項目は、装置がＨＡクラスタを構成している場合、クラスタを識別する情報を記憶する領域である。ＨＡクラスタを構成した場合、クラスタを識別するクラスタ名が設定される。「クラスタ名」の項目には、装置がＨＡクラスタを構成している場合、クラスタ名が記憶される。「アプリ名」の項目は、装置がＨＡクラスタを構成している場合、クラスタ構成されたアプリケーション名を記憶する領域である。「サーバ処理の閾値」の項目は、処理時間オーバとする処理時間の閾値を記憶する領域である。「タイムアウト時間」の項目は、通信タイムアウトとするタイムアウト時間の閾値を記憶する領域である。「切替コマンド」の項目は、装置がＨＡクラスタを構成している場合、現用系と待機系とを切り替える切り替え命令の命令文に関する情報を記憶する領域である。
【００３６】
図６の例は、情報処理装置１１Ａのコンピュータ名を「サーバ１」とし、情報処理装置１１Ｂのコンピュータ名を「サーバ２」とし、端末装置１２のコンピュータ名を「サーバＡ」として、構成情報テーブル６１に各種の構成情報が格納された状態を示している。図６の例では、「サーバ１」のＩＰアドレスが「１９２．１６８．０．１」であり、「サーバ２」のＩＰアドレスが「１９２．１６８．０．２」であり、「サーバＡ」のＩＰアドレスが「１９２．１６８．０．１００」であることを示している。また、「サーバ１」と「サーバ２」は、クラスタ名が「ＣＬ１」のクラスタ構成とされており、クラスタ構成されたアプリケーション名が「アプリＸ」であることを示している。また、「サーバ１」と「サーバ２」は、処理時間オーバとする処理時間の閾値が「５秒」であり、通信タイムアウトとするタイムアウト時間の閾値が「３０秒」であること示している。また、「サーバ１」は、待機系と現用系を切り替える切り替え命令の命令文の命令ブロックの正しい並び順が番号「３５１２４」であることを示す。また、「サーバ２」は、待機系と現用系を切り替える切り替え命令の命令文の命令ブロックの正しい並び順が番号「１５４３２」であることを示す。
【００３７】
制御部５２は、端末装置１２を制御するデバイスである。制御部５２としては、ＣＰＵ、ＭＰＵ等の電子回路や、ＡＳＩＣ、ＦＰＧＡ等の集積回路を採用できる。制御部５２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部５２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部５２は、特定部７０と、処理要求部７１と、検知部７２と、送信制御部７３とを有する。
【００３８】
特定部７０は、各種の特定を行う処理部である。例えば、特定部７０は、システムを構成する各装置の各種の構成情報を特定し、構成情報テーブル６１に登録する。特定部７０は、端末装置１２の起動時に、ＨＡクラスタ化された装置があるか否かの問合せをブロードキャストして、各情報処理装置１１からクラスタに関する各種の情報を取得する。例えば、特定部７０は、各情報処理装置１１からコンピュータ名、ＩＰアドレス、クラスタ名、クラスタ構成のアプリケーション名、切り替え命令の命令文の命令ブロックの正しい番号の順番を取得する。本実施例では、この取得された順番の番号がそれぞれ分割命令文に対応する。また、特定部７０は、定義情報６０から処理時間の閾値およびタイムアウト時間の閾値を取得する。そして、特定部７０は、装置毎に、取得した各情報を構成情報テーブル６１に登録する。これにより、構成情報テーブル６１には、図６に示すような各情報が登録される。
【００３９】
処理要求部７１は、処理要求を送信する処理部である。例えば、処理要求部７１は、情報処理システム１０がクラスタ構成で提供するアプリケーションの処理を求める場合、現用系の情報処理装置１１へ処理要求を送信する。これにより、現用系の情報処理装置１１では、要求に応じたアプリケーションの処理が実行される。
【００４０】
検知部７２は、異常の検知を行う処理部である。例えば、検知部７２は、現用系の情報処理装置１１に送信したパケットに対する応答から異常を検知する。例えば、検知部７２は、パケットに対する応答がタイムアウト時間の閾値以内に得られない場合、タイムアウトの異常が発生したものと検知する。また、検知部７２は、パケットに対する応答が得られたものの、現用系の情報処理装置１１から処理時間オーバが通知された場合、情報処理装置１１で処理時間オーバの異常が発生したものと検知する。
【００４１】
送信制御部７３は、検知部７２により異常が検知された場合、現用系と待機系の切り替え指示を送信する処理部である。例えば、送信制御部７３は、検知部７２によりタイムアウトの異常の発生が検知された場合、待機系を現用系に切り替える切り替え命令の命令文を待機系の情報処理装置１１へ送信する。例えば、送信制御部７３は、構成情報テーブル６１に記憶された待機系の情報処理装置１１の切替コマンドを読み出す。そして、送信制御部７３は、切替コマンドに記憶された番号を先頭から順にヘッダ領域に付加したパケットを順次生成し、生成されたパケットを生成順に待機系の情報処理装置１１へ送信する。すなわち、タイムアウトの異常は、１回の発生で切替コマンドの各番号が１つずつ順にヘッダに付加された複数のパケットが待機系の情報処理装置１１へ送信される。
【００４２】
また、例えば、送信制御部７３は、検知部７２により処理時間オーバの異常の発生が検知された場合、待機系を現用系に切り替える切り替え命令の命令文を現用系の情報処理装置１１へ送信する。例えば、送信制御部７３は、構成情報テーブル６１に記憶された現用系の情報処理装置１１の切替コマンドを読み出す。そして、送信制御部７３は、切替コマンドに記憶された番号のうち、連続して処理時間オーバの異常が検知された回数に対応した順番の番号をヘッダ領域に付加したパケットを生成し、生成されたパケットを現有系の情報処理装置１１へ送信する。すなわち、処理時間オーバの異常は、１回の発生で切替コマンドの番号が付加された１つのパケットが待機系の情報処理装置１１へ送信される。このパケットに付加される番号は、連続して処理時間オーバの異常が検知された回数に対応した番号である。
【００４３】
次に、情報処理システム１０の処理の流れを説明する。図７〜図１０は、情報処理システムの処理の流れの一例を説明する図である。なお、以下では、情報処理装置１１Ａが現用系として動作し、情報処理装置１１Ｂが待機系として動作しているものとする。図７に示すように、端末装置１２は、情報処理システム１０がクラスタ構成で提供するアプリケーションの処理を求める場合、現用系である情報処理装置１１Ａに処理要求のパケットを送信する。端末装置１２は、情報処理装置１１Ａに切り替えを指示ない場合、パケットのヘッダに付加される番号をゼロとする。
【００４４】
図８に示すように、情報処理装置１１Ａでは、端末装置１２からの処理要求のパケットを受信すると、アプリケーション処理部４１が受信したパケットに対して、ユニークなシリアル番号が付与する。そして、アプリケーション処理部４１は、シリアル番号、パケットの受信時刻、パケットのヘッダに含まれる命令文のブロックの番号、パケットのヘッダに含まれる処理時間の閾値を処理状況情報３２に登録する。図８の例では、処理状況情報３２に、シリアルＮｏ「１」、受信コマンド「０」、処理開始時刻「００：０１：００」、サーバ処理の閾値「００：０５：００」と登録されている。アプリケーション処理部４１は、処理要求に応じたアプリケーションの処理を実行する。
【００４５】
図９に示すように、アプリケーション処理部４１は、処理完了時刻を処理状況情報３２に登録する。図９の例では、処理状況情報３２に、処理完了時刻「００：０７：００」と登録されている。また、アプリケーション処理部４１は、受信したパケットに対する応答のパケットを端末装置１２へ送信する。そして、アプリケーション処理部４１は、処理完了時刻と処理開始時刻の差からアプリケーションの処理の処理期間を計測し、処理期間が処理時間の閾値よりも長い場合、処理時間オーバを端末装置１２へ通知する。
【００４６】
図１０に示すように、端末装置１２は、処理要求の結果を受信する（図１０（１））。端末装置１２は、パケットに対する応答がタイムアウト時間の閾値以内に得られず、タイムアウトの異常の発生が検知された場合、待機系を現用系に切り替える切り替え命令の命令文を待機系の情報処理装置１１Ｂへ送信する（図１０（２））。一方、送信制御部７３は、処理時間オーバの異常の発生が検知された場合、待機系を現用系に切り替える切り替え命令の命令文を現用系の情報処理装置１１Ａへ送信する（図１０（３））。
【００４７】
これにより、情報処理装置１１Ａと情報処理装置１１Ｂでは、現用系と待機系の切り替えが行われる（図１０（４））。
【００４８】
次に、本実施例に係る情報処理システム１０により実行される各種の処理の流れを説明する。最初に、端末装置１２が異常を検知して切り替えを制御する制御処理の流れについて説明する。図１１は、端末装置が異常を検知して切り替えを制御する制御処理の手順を示すフローチャートである。この制御処理は、所定のタイミング、例えば、処理要求を送信したタイミングで実行される。
【００４９】
図１１に示すように、検知部７２は、処理要求に対する応答パケットを受信したか否かを判定する（Ｓ１０）。応答パケットを受信していない場合（Ｓ１０否定）、検知部７２は、処理要求のパケットを送信してから、タイムアウト時間の閾値の時間が経過したか否かを判定する（Ｓ１１）。タイムアウト時間の閾値の時間を経過していない場合（Ｓ１１否定）、処理は、上述のＳ１０へ移行する。
【００５０】
応答パケットを受信した場合（Ｓ１０肯定）、検知部７２は、現用系の情報処理装置１１から処理時間オーバが通知されたか否かを判定する（Ｓ１２）。処理時間オーバが通知された場合（Ｓ１２肯定）、送信制御部７３は、連続して処理時間オーバの異常が検知された回数に対応した番号をヘッダ領域に付加したパケットを生成して現有系の情報処理装置１１へ送信し（Ｓ１３）、処理を終了する。一方、処理時間オーバが通知されていない場合（Ｓ１２否定）、処理を終了する。
【００５１】
一方、タイムアウト時間の閾値の時間を経過した場合（Ｓ１１肯定）、送信制御部７３は、構成情報テーブル６１に記憶された待機系の情報処理装置１１の切替コマンドを読み出す（Ｓ１４）。送信制御部７３は、切替コマンドに記憶された番号を先頭から順にヘッダ領域に付加したパケットを生成する（Ｓ１５）。送信制御部７３は、生成されたパケットを待機系の情報処理装置１１へ送信する（Ｓ１６）。送信制御部７３は、切替コマンドに記憶された番号のパケットを全て送信したか否かを判定する（Ｓ１７）。切替コマンドに記憶された番号のパケットを全て送信していない場合（Ｓ１７否定）、処理は、上述のＳ１５へ移行する。一方、切替コマンドに記憶された番号のパケットを全て送信した場合（Ｓ１７肯定）、処理を終了する。
【００５２】
次に、情報処理装置１１がパケットを受信した際の制御処理の流れについて説明する。図１２は、情報処理装置がパケットを受信した際の制御処理の手順を示すフローチャートである。この制御処理は、所定のタイミング、例えば、パケットを受信したタイミングで実行される。
【００５３】
図１２に示すように、切替部４２は、受信したパケットのヘッダに含まれる命令文のブロックの番号がゼロ以外であるか否かを判定する（Ｓ２０）。ヘッダに含まれる命令文のブロックの番号がゼロ以外である場合（Ｓ２０肯定）、切替部４２は、受信したパケットのヘッダに含まれる命令文のブロックの番号を受信命令文情報３１に格納する（Ｓ２１）。そして、切替部４２は、新しく受信したパケットの番号のブロックから順に、命令文の分割数分のブロックを結合し、結合したデータを解凍して待機系と現用系を切り替える切り替え命令の命令文が得られるか否かを判定する（Ｓ２２）。切り替え命令の命令文が得られた場合（Ｓ２２肯定）、切替部４２は、現用系と待機系の切り替える切替処理を実行し（Ｓ２３）、処理を終了する。
【００５４】
一方、ヘッダに含まれる命令文のブロックの番号がゼロである場合（Ｓ２０否定）および切り替え命令の命令文が得られない場合（Ｓ２２否定）、アプリケーション処理部４１は、受信したパケットに基づき、処理状況情報３２の更新する（Ｓ２４）。そして、アプリケーション処理部４１は、受信したパケットに応じた処理を実行する（Ｓ２５）。例えば、受信したパケットが処理要求である場合、アプリケーション処理部４１は、処理要求に応じたアプリケーションの処理を実行する。アプリケーション処理部４１は、処理を終了すると、受信したパケットに対する応答のパケットを端末装置１２へ送信する（Ｓ２６）。アプリケーション処理部４１は、パケットの処理の処理期間が処理時間の閾値よりも長い処理時間オーバが発生したか否かを判定する（Ｓ２７）。処理時間オーバが発生した場合（Ｓ２７肯定）、アプリケーション処理部４１は、処理時間オーバを端末装置１２へ通知し（Ｓ２８）、処理を終了する。一方、処理期間が処理時間の閾値よりも長くはない場合（Ｓ２７否定）、処理を終了する。
【００５５】
このように、端末装置１２は、現用系の情報処理装置１１Ａに送信したパケットに対する応答の異常を検知する。端末装置１２は、応答の異常を検知した場合、待機系の情報処理装置１１Ｂに対して、情報処理装置１１Ｂを現用系に切り替える切り替え命令の命令文を複数に分割した複数の分割命令文をヘッダ領域に付加した複数のパケットを送信する。情報処理装置１１Ｂは、端末装置１２から送信された複数のパケットに付加された分割命令文それぞれを記憶部５１に記憶する。情報処理装置１１Ｂは、記憶部５１に保持された複数の分割命令文により、前記切り替え命令の命令文が生成可能となったときに、待機系と現用系とを切り替える切替処理を実行する。このように、端末装置１２が切り替え命令の命令文を分割した分割命令文を送信することにより、情報処理システム１０は、命令文の漏洩を抑制できる。また、情報処理システム１０では、端末装置１２から異常の発生を検知して、現用系と待機系の切り替えを行わせることができる。また、情報処理システム１０では、処理要求などのデータを交換するパケットのヘッダ領域に分割命令文を付加しており、分割命令文を送信するために個別にパケットを送信していないため、通信トラフィックの増加を抑制できる。
【００５６】
また、待機系および現用系の現用系の情報処理装置１１は、待機系と現用系との切り替えを指示する切り替え命令の命令文を複数に分割した複数の分割命令文を端末装置１２へ通知する。これにより、端末装置１２は、待機系および現用系の現用系の情報処理装置１１の何れに対しても切り替え指示を行うことができる。
【００５７】
また、端末装置１２は、現用系の情報処理装置１１Ａとの間で通信のタイムアウトを検知した場合、待機系の情報処理装置１１Ｂに対して、複数のパケットを送信する。これにより、待機系の情報処理装置１１Ｂを速やかに現用系に切り替えさせることができる。
【００５８】
また、端末装置１２は、現用系の情報処理装置１１Ａに処理時間オーバを検知した場合、連続して異常が検知された回数に対応した順番の分割命令文をヘッダ領域に付加したパケットを現用系の情報処理装置１１Ａに対して送信する。現用系の情報処理装置１１Ａは、受信した複数のパケットに付加された分割命令文それぞれを記憶し、保持した複数の分割命令文により、切り替え命令の命令文が生成可能となったときに、待機系と現用系とを切り替える切替処理を実行する。これにより、現用系の情報処理装置１１Ａに異常が発生して処理時間オーバが頻発する場合、現用系と待機系の切り替えを行わせることができる。また、分割命令文により、切り替え命令の命令文が生成可能とならなければ、現用系と待機系の切り替えが行われないため、現用系の情報処理装置１１Ａに一時的に処理時間オーバが発生したことにより、現用系と待機系の切り替えが過剰に行われることを抑制できる。
【実施例２】
【００５９】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６０】
例えば、上記実施例では、切り替え命令の命令文を分割した分割命令文として、分割された命令のブロックの番号を用いた場合について説明したが、開示の装置はこれに限定されない。例えば、情報処理装置１１が分割して並び変えた命令の各ブロックを端末装置１２へ送信し、端末装置１２が分割命令文としてブロックのデータをパケットのヘッダに付加して送信してもよい。
【００６１】
また、上記実施例では、情報処理装置１１において処理時間オーバを検知して端末装置１２へ通知する場合について説明したが、開示の装置はこれに限定されない。例えば、情報処理装置１１が処理時間を端末装置１２へ通知し、端末装置１２において処理時間オーバを検知してもよい。
【００６２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示す情報処理装置１１の通知部４０、アプリケーション処理部４１および切替部４２の各処理部が適宜統合されてもよい。また、図５に示す端末装置１２の特定部７０、処理要求部７１、検知部７２および送信制御部７３の各処理部が適宜統合されてもよい。また、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６３】
［制御プログラム］
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１３は、制御プログラムを実行するコンピュータを示す図である。
【００６４】
図１３に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。
【００６５】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮する制御プログラム３２０ａが予め記憶される。例えば、上記実施例の情報処理装置１１の通知部４０、アプリケーション処理部４１、切替部４２、または、端末装置１２の特定部７０、処理要求部７１、検知部７２、送信制御部７３と同様の機能を発揮する制御プログラム３２０ａを記憶させる。なお、制御プログラム３２０ａについては、適宜分離しても良い。
【００６６】
そして、ＣＰＵ３１０が、制御プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、上記実施例と同様の動作を実行する。すなわち、制御プログラム３２０ａは、情報処理装置１１の通知部４０、アプリケーション処理部４１、切替部４２、または、端末装置１２の特定部７０、処理要求部７１、検知部７２、送信制御部７３と同様の動作を実行する。
【００６７】
なお、上記した制御プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。制御プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。
【００６８】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００６９】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７０】
１０    情報処理システム
１１、１１Ａ、１１Ｂ  情報処理装置
１２    端末装置
２１    記憶部
２２    制御部
３０    命令ブロック情報
３１    受信命令文情報
３２    処理状況情報
４０    通知部
４１    アプリケーション処理部
４２    切替部
５１    記憶部
５２    制御部
６０    定義情報
６１    構成情報テーブル
７０    特定部
７１    処理要求部
７２    検知部
７３    送信制御部
【図１】
2015095247.tif 000003
【図２】
2015095247.tif 000004
【図３】
2015095247.tif 000005
【図４】
2015095247.tif 000006
【図５】
2015095247.tif 000007
【図６】
2015095247.tif 000008
【図７】
2015095247.tif 000009
【図８】
2015095247.tif 000010
【図９】
2015095247.tif 000011
【図１０】
2015095247.tif 000012
【図１１】
2015095247.tif 000013
【図１２】
2015095247.tif 000014
【図１３】
2015095247.tif 000015