(57)【要約】【解決手段】  ノードスタックの障害に起因するネットワーク競合を自動的に防止するために、マスターノードとスレーブノードを有する回復リンクが使用される。スタックノードの障害やリンクの障害の結果として生成されるスタックスタブは、回復リンクを用いて、スタックマスターノードがまだオンライン状態にありサービスを提供しているかどうかを判定する。回復リンクでの通信により、元のマスターノードがオフライン状態にあると判定された場合は、新しいスタックスタブがその役割を引き継ぎ、所望のサービスを提供する。元のマスターノードがまだオンライン状態にある場合は、新たなスタックマスターは適切な代替動作を行うか、フォールバック動作を行う。【選択図】図５
2010541413.tif 000002
【特許請求の範囲】
【請求項１】
スタックにおけるネットワーク競合を防止するネットワーク競合防止装置において、
ネットワークデータリンクにより複数のスレーブノードに接続されたマスターノードと、
前記マスターノードと前記複数のスレーブノードの各々を接続する回復リンクと、を有し、
前記回復リンクは、制御情報のみを伝送すること、前記ネットワークリンクの通信帯域幅以下の通信帯域幅であること、のうち少なくとも１つを満たす
ことを特徴とするネットワーク競合防止装置。
【請求項２】
前記スタックは、リングノード型、スター型、二重スター型、メッシュ型のうち少なくとも１つの構成をとることを特徴とする請求項１記載のネットワーク競合防止装置。
【請求項３】
前記マスターノードと前記複数のスレーブノードのうち少なくとも１つは、１つのスレーブノードを代替マスターノードとして再構成するための設定ファイルを格納することを特徴とする請求項１記載のネットワーク競合防止装置。
【請求項４】
前記回復リンクは、ハブを経由して前記マスターノードを前記複数のスレーブノードに接続することを特徴とする請求項１記載のネットワーク競合防止装置。
【請求項５】
前記ハブは前記回復リンク経由で前記マスターノードおよび前記スレーブノードのそれぞれに接続されることを特徴とする請求項４記載のネットワーク競合防止装置。
【請求項６】
ネットワークデータリンクにより複数のスレーブノードに接続されるとともに元の設定ファイルにより設定されたマスターノードを含むスタックにおけるネットワーク競合を防止するネットワーク競合防止方法において、
少なくとも１つのスレーブノードにおいて所定時間内に状態確認通知を受信できない場合に、スタックマスターが動作不能であると判定する手順と、
前記マスターノードの状態に関する前記状態確認通知を各スレーブノードに対して回復リンクを経由して送る手順と、
スタックマスター障害が判定された場合に、適用すべき適切な設定を決定する手順と、
を有するネットワーク競合防止方法。
【請求項７】
前記複数のスレーブノードは、前記状態確認通知を前記回復リンクを経由して受信することを特徴とする請求項６記載のネットワーク競合防止方法。
【請求項８】
前記状態確認通知が前記マスターノードが動作可能状態にあることを示している場合に、フォールバック設定ファイルを使用して１以上のスレーブノードを再構成する手順をさらに有することを特徴とする請求項６記載のネットワーク競合防止方法。
【請求項９】
状態確認通知のタイムアウトにより前記マスターノードが動作不能状態にあることが判明した場合に、前記元の設定ファイルを使用して１以上のスレーブノードを再構成する手順をさらに有することを特徴とする請求項６記載のネットワーク競合防止方法。
【請求項１０】
ネットワークデータリンクにより複数のスレーブノードに接続されるとともに元の設定ファイルにより構成されたマスターノードを含むスタックにおけるネットワーク競合を防止するネットワーク競合防止システムにおいて、
少なくとも１つのスレーブノードにおいて所定時間内に状態確認通知を受信できない場合に、スタックマスター障害が発生したと判定する判定部と、
前記マスターノードの状態に関する前記状態確認通知を各スレーブノードに対して回復リンクを経由して送る提供部と、
スタックマスター障害が判定された場合に、適用すべき適切な設定を決定する判定部と、
を有するネットワーク競合防止システム。
【請求項１１】
各スレーブノードに対して前記マスターノードの前記状態を通知する前記提供部はハブを有することを特徴とする請求項１０記載のネットワーク競合防止システム。
【請求項１２】
前記状態確認通知が前記マスターノードが動作可能であることを示している場合に、フォールバック設定ファイルを使用して１以上のスレーブノードを再構成する再構成部、をさらに有することを特徴とする請求項１０記載のネットワーク競合防止システム。
【請求項１３】
前記再構成部はフォールバック設定ファイルを有することを特徴とする請求項１２記載のネットワーク競合防止システム。
【請求項１４】
ネットワークデータリンクにより複数のスレーブノードに接続されるとともに元の設定ファイルにより設定されたマスターノードを含むスタックにおけるネットワーク競合を防止するネットワーク競合防止システムにおいて、
プロセッサと、
前記プロセッサを通じて機能するユーザインタフェースと、
前記プロセッサからアクセス可能なリポジトリ、とを有し、
少なくとも１つのスレーブノードにおいて所定時間内に状態確認通知を受信できない場合にスタックマスター障害が発生したと判定し、
前記マスターノードの状態に関する通知を各スレーブノードに対して回復リンクを経由して送り、
スタックマスター障害が判定された場合に、適用すべき適切な設定を適用する、
ことを特徴とするネットワーク競合防止システム。
【請求項１５】
前記プロセッサは端末装置内にあることを特徴とする請求項１４記載のネットワーク競合防止システム。
【請求項１６】
前記プロセッサはサーバ内にあることを特徴とする請求項１４記載のネットワーク競合防止システム。
【請求項１７】
前記サーバはネットワークに接続されていることを特徴とする請求項１６記載のネットワーク競合防止システム。
【請求項１８】
ネットワークデータリンクにより複数のスレーブノードに接続されるとともに元の設定ファイルにより設定されたマスターノードを含むスタックにおけるネットワーク競合を、コンピュータにより防止する制御ロジックを格納する、コンピュータ使用可能な媒体を有するコンピュータプログラム製品において、前記制御ロジックは、
少なくとも１つのスレーブノードにおいて所定時間内に状態確認通知を受信できない場合にスタックマスター障害が発生したと判定する第１のコンピュータ読み取り可能なプログラムコード手段と、
前記マスターノードの状態に関する通知を各スレーブノードに対して回復リンクを経由して送る第２のコンピュータ読み取り可能なプログラムコード手段と、
スタックマスター障害が判定された場合に、適用すべき適切な設定を判定する第３のコンピュータ読み取り可能なプログラムコード手段と、
を有することを特徴とするコンピュータプログラム製品。
【請求項１９】
適切な設定を決定する手順は、前記通知が前記マスターノードが動作可能であることを示している場合に、競合する設定を前記複数のスレーブノードに適用しないように排除することを特徴とする請求項６記載のネットワーク競合防止方法。
【請求項２０】
適切な構成を決定する前記判定部は、前記通知が前記マスターノードが動作可能であることを示している場合に、競合する設定を前記複数のスレーブノードに適用しないように排除する排除部を有することを特徴とする請求項１０記載のネットワーク競合防止システム。
【請求項２１】
適用されている前記適切な設定は、前記状態通知が前記マスターノードが動作可能であることを示している場合に、前記複数のスレーブノードに適用されないように排除された競合する設定を有することを特徴とする請求項１４記載のネットワーク競合防止システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００７年９月２８日出願の米国特許仮出願第６０／９６０４４４号、名称「Virtual Chassis Stacking」を基礎とする優先権主張を伴う出願である。本明細書は同仮出願の全体を援用するものとする。
【０００２】
本発明は、ネットワーク競合防止装置およびネットワーク競合防止方法に関し、特に、ネットワークスタックにおけるリンクまたはノードの障害の際にネットワーク競合を防止するネットワーク競合防止装置およびネットワーク競合防止方法に関する。
【背景技術】
【０００３】
ネットワークは複数のネットワークノードで構成される。ノードスタックは、これらのネットワークノードをグループ化することにより、例えばＩＰアドレスのホスティングなど、所望のサービスを提供する１つの仮想ネットワークノードを形成するものである。障害が発生すると、通常はスタックのノード間相互接続は解除されるが、ここではスタックスタブ（stack stub）が生成される。スタックスタブは、障害発生後も互いの接続が維持された、より少数のノードからなるグループである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
新たに形成されたスタックスタブにおいては、マスターノード（例えば別のスタブスタックのマスターノード）がまだオンライン状態にありサービスを提供しているのか、あるいはもはや動作不能なのかを判定する必要があるが、この判定を行うために、以前のスタックが持っていた好適な通信パスを使うことができない。
【０００５】
そのため元のスタックが提供していたサービスと同じサービスを、障害で生成されたスタックスタブが重複して提供する可能性がある。これは障害の結果生じる問題の１つである。例えば相異なる第１のスタブと第２のスタブの両方が、元のスタックが使っていたのと同一のＩＰアドレスを持ってしまうと、ネットワーク競合が起きてしまう。また別の問題として、障害の結果スタックスタブが生成されたものの、そのいずれもサービスを提供できなかった場合は、そのサービス自体の機能停止となる。上記の例で言えば、それまでのＩＰアドレスが到達不能になるという問題が生ずる。
【０００６】
従って当該技術分野においては、ネットワーク障害によるサービス重複やサービス機能停止を防止するための装置や方法が求められている。
【課題を解決するための手段】
【０００７】
上述の問題点および課題に鑑み、本発明の各種態様例によれば、スタック並びにそのスタックを構成するノードの状態を監視するための代替通信パスを実現する回復リンク装置、およびその動作方法が提供される。スタックノードの状態とは、例えばノードがオフラインであるかどうか、またはスタックがＩＰアドレスのホスティングなど特定のサービスを提供可能かどうかを指す。
【０００８】
本発明の各種態様例によれば、障害に対して高い耐性を有するスタッキングの手法を使うことで上述の問題を克服するために回復リンク（resiliency link）が使用される。回復リンクはネットワークリンクと同様のものであるが、その通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよく、またスタック制御情報のみを伝送するものとしてもよい。スタックノードの障害やリンクの障害の結果として新たに生成されるスタックスタブは、いずれも回復リンクを用いて、元のスタックスタブがまだオンライン状態にありサービスを提供しているかどうかを判定するようにしてもよい。本発明の各種態様例によれば、回復リンクでの通信により、元のスタックスタブがオフライン状態になったと判定された場合は、新しいスタックスタブがその役割を引き継ぎ、所望のサービス（例えばＩＰアドレスのホスティング）を提供する。一方、回復リンクでの通信により、元のスタックマスターがオンライン状態にあると判定された場合は、新たなスタックマスターは適切な代替動作を行うか、フォールバック動作を行う。本発明の各種態様例によれば、前記の適切な代替動作あるいはフォールバック動作とは、例えば別のＩＰアドレスのホスティングであってもよく、あるいはどのＩＰアドレスのホスティングも行わないことでもよい。なおスタックがどのようなサービスを提供するかは設定によって決まる。例えば、あるスタックの設定としてＩＰアドレスを与えれば、それが同スタックのサービスとなる。
【０００９】
本発明の各種態様例によれば、回復リンクはフォールバック設定と組み合わせてもよい。フォールバック設定は、元のスタック内の障害により生成された新スタックスタブを動的に再構成し、元のスタックのサービスと競合しない別のサービスを提供するものである。回復リンクとフォールバック設定の使用により、スタックはユーザの介在なしで障害から復旧できるようになる。すなわち障害の起きたスタックを、安定した状態で共存する２つ以上の別々のスタックスタブに分割することでネットワーク競合を防止する。
【００１０】
本発明の各種態様例によれば、回復リンクはリング配列スタック、スター配列、二重スター配列、メッシュ配列、その他のスタックトポロジーに適用することができる。本発明の各種態様例によれば、回復リンクはスタック内の複数ノードを接続する補助リングとすることもできる。また、スタックの各ノードを接続するためにハブを使用してもよい。
【００１１】
本発明のこれらの態様におけるその他の利点および新規な特徴は、一部はこの後に続く説明の通りであり、また一部は、以下に述べる事柄を精査することにより、または本発明の実施を通じて、当業者にとってより明らかになるであろう。
【発明の効果】
【００１２】
本発明の各種態様例によれば、スタックノード間の好適通信パスが切断されるような劇的スタック障害から、動的かつ自動的に復旧することが可能になる。
以下の図面を参照して、本発明のシステムおよび方法の様々な実施の形態について詳細に説明する。
【図面の簡単な説明】
【００１３】
【図１】従来のノードスタックの障害の例を示す図である。
【図２】従来のノードスタックの障害の例を示す図である。
【図３】従来のノードスタックの障害の例を示す図である。
【図４】従来のノードスタックの障害の例を示す図である。
【図５】本発明の各種態様における、回復リンクを有するノードスタックを示す図である。
【図６】本発明の各種態様における、回復リンクを有するノードスタックを示す図である。
【図７】本発明の各種態様における、回復リンクを有するノードスタックを示す図である。
【図８】本発明の各種態様における、回復リンクを有するノードスタックを示す図である。
【図９】本発明の各種態様における、回復リンクを有するノードスタックを示す図である。
【図１０】本発明の各種態様における、ノードスタックのネットワーク競合防止方法を示すフローチャートである。
【図１１】本発明の態様における、各種ハードウェア部品およびその他の機能からなるシステムの例を示す図である。
【図１２】本発明の態様における各種システム要素の例を示すブロック図である。
【発明を実施するための形態】
【００１４】
本発明の上記および他の特徴および利点は、本発明の各種態様例を示す以下の詳細説明に記載されている、あるいは同詳細説明から明らかである。
図１〜図４は、従来のノードスタックにおいて障害が起きた場合を示す図である。図１は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがリング配列スタックの形で接続された従来のノードスタックにおいて、２つのデータリンクに障害が起きた場合を示す図である。図１では、ノードＢとノードＣの間、およびノードＤとノードＥの間においてデータあるいはネットワークリンクに障害が発生し、データ通信不能となっている。障害により２つのスタックスタブ（stack stub）が形成される。すなわち元のマスターノードＡおよびノードＢ、ノードＥからなる第１のスタブと、ノードＣとノードＤからなる第２のスタックスタブが形成される。第２のスタックスタブでは、元のスタックの障害の検出に応じて、ノードＣまたはノードＤが新たなスタックマスターとして選出される。この新マスターノードＣまたはＤの設定は元のマスターノードＡと同じ設定となる。すなわち新マスターノードＣまたはＤは、マスターノードＡと同じサービスを提供すべく自分自身を再構成する。その結果、同じ設定を有する２つのスタックスタブが生成されることになり、ネットワーク競合が発生する。
【００１５】
図２は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがリング配列スタックの形で接続された従来のノードスタックにおいて、ノードＤとノードＥの間のデータリンクとノードＢに障害が起きた場合を示す図である。障害により２つのスタックスタブが形成される。すなわち元のマスターノードＡとノードＥからなる第１のスタブと、ノードＣとノードＤからなる第２のスタックスタブが形成される。第２のスタックスタブでは、元のスタックでの障害の検出に応じて、ノードＣまたはノードＤが新たなスタックマスターとして選出される。この新マスターノードＣまたはＤの設定は元のマスターノードＡと同じ設定となる。すなわち新マスターノードＣまたはＤは、マスターノードＡと同じサービスを提供すべく自分自身を再構成する。その結果、同じ設定を有する２つのスタックスタブが生成されることになり、ネットワーク競合が発生する。
【００１６】
図３は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがスター配列スタックの形で接続された従来のノードスタックにおいて、ノードＡとノードＤの間のデータリンクに障害が起きた場合を示す図である。障害により２つのスタックスタブが形成される。すなわち元のマスターノードＡおよびノードＢ，Ｃ，Ｅからなる第１のスタブと、ノードＤからなる第２のスタックスタブが形成される。ノードＤからなる第２のスタックスタブでは、元のスタックでの障害の検出に応じて、ノードＤが新たなスタックマスターとして自分自身を選出する。この新マスターノードＤは元のマスターノードＡと同じ設定を有し、かつ同じサービスを提供する。あるいは元のマスターノードＡと同じ設定を有するか、または同じサービスを提供する。その結果、同じ設定を有する２つのスタックスタブが生成されることになり、ネットワーク競合が発生する。
【００１７】
図４は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅ，Ｆが二重スター配列スタックの形で接続された従来のノードスタックにおいて、ノードＡとノードＤの間のデータリンクと、ノードＦとノードＤの間のデータリンクとに障害が起きた場合を示す図である。障害により２つのスタックスタブが形成される。すなわち元のマスターノードＡおよびノードＢ，Ｃ，Ｅ，Ｆからなる第１のスタブと、ノードＤからなる第２のスタックスタブとが形成される。ノードＤからなる第２のスタックスタブでは、元のスタックでの障害の検出に応じて、ノードＤが新たなスタックマスターとして自分自身を選出する。この新マスターノードＤは元のマスターノードＡと同じ設定を有し、かつ同じサービスを提供する。あるいは元のマスターノードＡと同じ設定を有するか、または同じサービスを提供する。その結果、同じ設定を有する２つのスタックスタブが生成されることになり、ネットワーク競合が発生する。
【００１８】
図５〜図９は、本発明の各種態様例における、回復リンクを有するノードスタックを示す図である。図５は、本発明の各種態様例における、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがリング配列スタックの形に接続されたノードスタックを示す図である。ここではノードＢとノードＣの間のデータリンクと、ノードＤとノードＥの間のデータリンクとに障害が起きているものとする。本発明の各種態様例によれば、ノードスタックはハブＨを更に含み、このハブＨはノードＡ，Ｂ，Ｃ，Ｄ，Ｅとそれぞれ回復リンクで接続されている。これらの回復リンクの通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよい。回復リンクは、スタック制御情報のみを伝送するものとしてもよく、通常ネットワークデータリンクが伝送するユーザデータは、回復リンクでは伝送しなくてもよい。また回復リンクは、従来のリング構成のネットワークデータリンクよりも低価格なものとすることもできる。ノードＤとノードＥの間のデータリンク、およびノードＢとノードＣの間のデータリンクの障害により、２つのスタックスタブが形成される。すなわちマスターノードＡがノードＢ，Ｅとともに第１のスタックスタブを形成する一方、ノードＣとノードＤは第２のスタックスタブを形成する。ノードＣとノードＤはネゴシエーションを行って第２のスタックスタブ用のマスターノードを選択する。もし回復リンクがなければノードＣとノードＤは元のスタック設定を適用するところであるが、本構成では回復リンクによって各ノードＡ，Ｂ，Ｃ，Ｄ，ＥがハブＨに接続されており、このハブＨを通じて各ノードＢ，Ｃ，Ｄ，Ｅに対してマスターノードＡがまだ動作していることを伝えることができる。元のマスターノードＡが動作していることを、第２のスタックスタブを形成するノードＣとノードＤが回復リンクを経由して検出すると、ノードＣとノードＤは代替設定ファイルから代替設定をロードする。これによりネットワーク設定の競合を防ぐことができる。または、ノードＣとノードＤは何の設定もロードしないようにしてもよい。いずれの場合もネットワーク競合は発生しない。
【００１９】
図６は、本発明の各種態様例において、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがハブなしでリング配列スタックの形で接続されたノードスタックを示す図である。図５では、ノードＢとノードＣの間のデータリンクと、ノードＤとノードＥの間のデータリンクとに障害が起きているものとする。本発明の各種態様例によれば、本ノードスタックは、ノードＡ，Ｂ，Ｃ，Ｄ，Ｅを接続する回復リンクＲをさらに有する。この回復リンクＲの通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよく、またスタック制御情報のみを伝送するものとしてもよい。通常ネットワークデータリンクが伝送するユーザデータは、回復リンクＲでは伝送しなくてもよい。ノードＤとノードＥの間のデータリンク、およびノードＢとノードＣの間のデータリンクの障害により、２つのスタックスタブが形成されるが、回復リンクＲは引き続き全ノードＡ，Ｂ，Ｃ，Ｄ，Ｅにつながっている。マスターノードＡがノードＢ，Ｅとともに第１のスタックスタブを形成し、ノードＣとノードＤが第２のスタックスタブを形成する。ノードＣとノードＤはネゴシエーションを行って第２のスタックスタブ用のマスターノードを選択する。もし回復リンクＲがなければノードＣとノードＤは元のスタック設定を適用することになる。しかし本構成では回復リンクＲによってノードＡ，Ｂ，Ｃ，Ｄ，Ｅが互いに接続されているので、各ノードＢ，Ｃ，Ｄ，Ｅに対してマスターノードＡがまだ動作しているという情報を回復リンクＲで伝えることができる。元のマスターノードＡが動作していることを、第２のスタックスタブのノードＣとノードＤが回復リンクＲを経由して検出すると、ノードＣとノードＤは代替設定ファイルから代替設定をロードする。これによりネットワーク設定の競合を防ぐことができる。あるいは、ノードＣとノードＤは何の設定もロードしないようにしてもよい。いずれの場合もネットワーク競合は発生しない。
【００２０】
図７は、本発明の各種態様例において、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがスター配列スタックの形で接続されたノードスタックを示す図である。図７では、ノードＡとノードＢの間のデータリンクに障害が起きているものとする。本発明の各種態様例によれば、ノードスタックはハブＨを更に含み、このハブＨは各ノードＡ，Ｂ，Ｃ，Ｄ，Ｅに回復リンクで接続されている。この回復リンクの通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよく、またスタック制御情報のみを伝送するものとしてもよい。通常ネットワークデータリンクが伝送するユーザデータは、回復リンクでは伝送しなくてもよい。ノードＡとノードＢの間のデータリンクの障害により、２つのスタックスタブが形成される。すなわちマスターノードＡはノードＣ，Ｄ，Ｅとともに第１のスタックスタブを形成する。ノードＢは単独で第２のスタックスタブを形成し、そのマスターノードとなる。もし回復リンクがなければノードＢは元のスタック設定を適用することになる。しかし本構成では回復リンクによってノードＢはハブＨに接続され、このハブＨを通じて、マスターノードＡがまだ動作していることをノードＢに伝えることができる。元のマスターノードＡが動作していることを、第２のスタックスタブのノードＢが回復リンクを経由して検出すると、ノードＢは代替設定をロードすることでネットワーク設定の競合を防ぐことができる。あるいは、ノードＢは何の設定もロードしないようにしてもよい。いずれの場合もネットワーク競合は発生しない。
【００２１】
図８は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅ，Ｆが二重スター配列スタックの形で接続されたノードスタックを示す図である。ここでノードＡとノードＢの間、およびノードＢとノードＦの間のデータリンクに障害が起きているものとする。本発明の各種態様例によれば、ノードスタックはハブＨを更に含み、このハブＨは各ノードＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆに回復リンクで接続されている。この回復リンクの通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよく、またスタック制御情報のみを伝送するものとしてもよい。通常ネットワークデータリンクが伝送するユーザデータは、回復リンクでは伝送しなくてもよい。ノードＡとノードＢの間、およびノードＢとノードＦの間のデータリンクの障害により、２つのスタックスタブが形成される。すなわちマスターノードＡはノードＣ，Ｄ，Ｅ，Ｆとともに第１のスタックスタブを形成する一方、ノードＢは単独で第２のスタックスタブを形成する。ノードＢはネゴシエーションを行って、第２のスタックスタブのマスターノードを選択する。もし回復リンクがなければノードＢは元のスタック設定を適用することになる。しかし本構成では回復リンクによってノードＢはハブＨに接続され、このハブＨを通じて、マスターノードＡがまだ動作していることをノードＢに伝えることができる。元のマスターノードＡが動作していることを、第２のスタックスタブのノードＢが回復リンクを経由して検出すると、ノードＢは代替設定をロードすることでネットワーク設定の競合を防ぐことができる。あるいは、ノードＢは何の設定もロードしないようにしてもよい。いずれの場合もネットワーク競合は発生しない。
【００２２】
図９は、マスターノードＡとスレーブノードＢ，Ｃ，Ｄ，Ｅがリング配列スタックの形で接続されたノードスタックを示す図である。ここでノードＣとノードＤの間のデータリンク、およびノードＡに障害が起きているものとする。本発明の各種態様例によれば、ノードスタックはハブＨを更に含み、このハブＨは各ノードＡ，Ｂ，Ｃ，Ｄ，Ｅに回復リンクで接続されている。この回復リンクの通信帯域幅は一般的ネットワークデータリンクの通信帯域幅よりも低くてもよく、またスタック制御情報のみを伝送するものとしてもよい。通常ネットワークデータリンクが伝送するユーザデータは、回復リンクでは伝送しなくてもよい。ノードＣとノードＤの間のデータリンク、およびノードＡの障害により、２つのスタックスタブが形成される。すなわちノードＤ，Ｅからなる第１のスタックスタブと、ノードＢ，Ｃからなる第２のスタックスタブが形成される。このケースではマスターノードが失われているので、ノードＢとノードＣはネゴシエーションを行って第１のスタブのマスターノードを選定し、ノードＤとノードＥもネゴシエーションを行って第２のスタブのマスターノードを選定する。各ノードは互いの動作状態に関する情報をハブＨと回復リンクを通じてやりとりする。ここで回復リンクは２つのスタックスタブの間のネゴシエーションにも使用できる。つまり、２つのうちどちらのスタックスタブが好適設定を適用するか、またどちらのスタックスタブが代替設定を適用するかについて、ハブＨを経由したネゴシエーションで決定することができる。従ってネットワーク競合は発生しない。
【００２３】
本発明の各種態様によれば、ノード障害を検出するにはいろいろな方法が考えられる。その１つとして、ノードスタックを構成する各ノードに対して周期的にマルチキャストメッセージを送ることにより障害を検出する方法がある。例えば、マスターノードからスレーブノードに向かって、マルチキャストメッセージを定期的に（例えば５００ｍｓに一回）回復リンクを使って送信する。本発明の各種態様によれば、このメッセージはマスターノードのＭＡＣアドレスや、マスターノードが生成する昇順のシーケンス番号などを含むものとしてもよい。このように一斉送信されたメッセージは状態確認メッセージとして解釈される。すなわちスレーブノードから見ると、これらの状態確認メッセージがマスターノードから届いている間はマスターノードがオンライン状態にあり動作中であることがわかる。マスターノードからの状態確認メッセージの受信間隔が所定の時間、例えば２秒間を超えると、スレーブノードはマスターノードがオフラインであり動作不能状態にあると判断する。本発明の各種態様例によれば、マスターノードがネットワークデータリンクでは到達不能となった場合、マスターノードを失った１つ以上のスレーブノードがスタックスタブを作り、新しいマスターを選出する。もしこの新マスターが状態確認メッセージを受信できない時、それは元のマスターノードがもはや動作不能であることを示している。この場合、新マスターノードは元の設定をロードすることができる。逆に状態確認メッセージがタイムアウトしない場合は、新マスターノードはフォールバック設定または代替設定またはその両方を使用してスタブスタックを再構成してもよい。本発明の各種態様によれば、フォールバック設定も様々なものがあり、バックアップ用ＩＰアドレスを指定する設定もあれば、代替スタックをセットアップするための全面的な設定もある。フォールバック設定がない場合は、各スレーブノードは自身の設定を解除し、全ネットワークインタフェースを遮断することにより、ネットワーク競合を回避してもよい。
【００２４】
本発明の態様によれば、スタックノードの状態を確認するために回復リンクで用いるプロトコルとして、上述以外の通信プロトコルを使用してもよい。可能な通信プロトコルとしては、例えばＩＣＭＰ（Internet Control Message Protocol）のエコー要求、ＡＲＰ（Address Resolution Protocol）要求、ＲＡＲＰ（Reverse Address Resolution Protocol）要求などがある。あるいはＬＬＤＰ（Link Layer Discovery Protocol）などの発見プロトコルを用いてもよい。
【００２５】
本発明の各種態様によれば、状態確認メッセージはスタックの回復動作に関する動的なネゴシエーションを指定することもできる。例えば、どのスタックスタブがノード数最小であるかによってフォールバック設定のネゴシエーションを行い、最大帯域幅を有するスタックスタブに好適なスタックスタブ設定を適用するようにしてもよい。あるいは、スタックスタブが数種類のフォールバック設定ファイルを用意し、新スタックに適用する設定ファイルをネゴシエーションで決定するようにしてもよい。
【００２６】
図１０は、本発明の各種態様におけるノードスタックのネットワーク競合防止方法を示すフローチャートである。本方法は、ステップＳ１１０において、例えばＩＰアドレスのホスティングなど所定のサービスを提供するノードスタックが、リンクまたはノードの障害を検出することにより実行開始される。本発明の各種態様例によれば、ノードスタックは回復リンクを有する。回復リンクは補助リングに類似し、従来のデータリンクの通信帯域幅と同等かそれ以下の通信帯域幅を持つ。回復リンクは、ノードスタック内の各ノードと、同ノードスタック内の少なくとも１つの別ノードとを接続する。あるいは、ノードスタックの各ノードを接続するハブに回復リンクを接続してもよい。次にステップＳ１２０に進み、ここではネットワークデータリンクを通じてスタックマスターがまだ各スレーブノードにつながっているかどうかを判定する。ステップＳ１３０において、マスターがネットワークデータリンクを通じて全スレーブノードから到達可能である場合は、分離したスタックスタブは生成されていない。そこでステップＳ１４０に進み、通常のスタックの動作が継続され、スタブマスターの選出は行われない。
【００２７】
ステップＳ１３０においてマスターが各スレーブノードから到達できない場合は、ステップＳ１５０に進み、生成されたスタッキングスタブの新たなスタックマスターを選出する。さらにステップＳ１６０において、マスター状態確認メッセージが回復リンクを通して全スレーブノードに届いたかどうかの確認が行われる。もしマスターノードが動作不能となっており、状態確認メッセージも全く受信されていない場合は、ステップＳ１７０に進み、元の設定がローカルスタブマスターに適用される。ステップＳ１６０でマスターノードが動作不能でないと判定されるとステップＳ１８０に進み、バックアップ設定がローカルスタブマスターに適用される。よって、元のスタックマスターとローカルスタブマスターの間でネットワークサービスの提供に関する競合が起きることはない。なお本発明の各種態様によれば、ステップＳ１８０においてバックアップ設定を適用する代わりに、ローカルスタブマスターに対しては特に何も設定せず、ローカルスタブマスターが自身の元々の設定を継続するようにしてもよい。
【００２８】
図１１は、本発明の態様における、各種ハードウェア部品およびその他の機能からなるシステムの例を示す図である。本発明はハードウェア、ソフトウェア、またはその組み合わせにより実現できる。また本発明は１台またはそれ以上のコンピュータシステムや他の処理システムとして実現してもよい。本発明の一態様によれば、ここで述べたような機能を実行する１台以上のコンピュータシステムが提供される。図１１のコンピュータシステム９００はこのようなコンピュータシステムの一例である。
【００２９】
コンピュータシステム９００は、プロセッサ９０４等、１つ以上のプロセッサを有する。プロセッサ９０４は、通信バス、クロスオーババー、ネットワーク等の通信基盤９０６に接続されている。このコンピュータシステムについては、様々なソフトウェアの変形例を述べる。当業者が本明細書を読めば、他のコンピュータシステムおよび他のアーキテクチャを使用して本発明を実施するにはどうすればよいか理解できるであろう。
【００３０】
コンピュータシステム９００は、通信基盤９０６から（または図示しないフレームバッファから）得られるグラフィックスやテキスト等のデータを表示ユニット９３０上に表示させるために送出する表示インタフェース９０２を有する。またコンピュータシステム９００はメインメモリ９０８、および補助記憶装置９１０を有する。好適には、メインメモリ９０８はランダムアクセスメモリ（ＲＡＭ）である。補助記憶装置９１０としては、例えばハードディスク装置９１２やリムーバブル（着脱可能な）記憶装置９１４がある。リムーバブル記憶装置９１４は、フロッピーディスク装置、磁気テープ装置、光ディスク装置等のドライブを指す。リムーバブル記憶装置９１４はリムーバブル記憶ユニット９１８に対して既知の方法により読み書きを行う。リムーバブル記憶ユニット９１８は、フロッピーディスク、磁気テープ、光ディスク等、リムーバブル記憶装置９１４から読み書きできるものを指す。後述のようにリムーバブル記憶ユニット９１８の範囲には、ソフトウェアおよびデータが記録された、コンピュータ使用可能な媒体が含まれる。
【００３１】
本発明の態様によれば、コンピュータシステム９００にコンピュータプログラム等の命令をロードするものであれば、補助記憶装置９１０は他の同様の装置であってもよい。例えばリムーバブル記憶ユニット９２２とインタフェース９２０の組み合わせとすることもできる。その一例として、ビデオゲーム装置で用いられているような、プログラムを格納したカートリッジとそのインタフェースがある。またＥＰＲＯＭ（Erasable Programmable Read Only Memory）やＰＲＯＭ（Programmable Read Only Memory）などの挿抜可能なメモリチップとそのソケットであってもよく、その他のリムーバブル記憶ユニット９２２と、そこからコンピュータシステム９００にソフトウェアやデータを転送するためのインタフェース９２０の組み合わせであってもよい。
【００３２】
コンピュータシステム９００はまた通信インタフェース９２４を有し、これによりコンピュータシステム９００と外部装置の間でソフトウェアとデータを転送することが可能となる。通信インタフェース９２４の例としては、モデム、イーサネットカード等のネットワークインタフェース、通信ポート、ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）スロットとＰＣＭＣＩＡカードなどがある。ソフトウェアとデータが通信インタフェース９２４で転送される際には信号９２８の形をとるが、これは例えば電気信号、電磁信号、光信号、その他の通信インタフェース９２４が受信可能な信号である。これらの信号９２８は通信パス（例えばチャネル）９２６を経由して通信インタフェース９２４に供給される。このパス９２６は信号９２８を運ぶものであり、ワイヤやケーブル、光ファイバ、電話線、移動体通信リンク、無線周波数（ＲＦ）リンク、その他の通信チャネルにより実現される。本明細書においては、「コンピュータプログラム媒体」や「コンピュータ使用可能な媒体」は、リムーバブル記憶装置９１８、ハードディスク装置９１２に実装されたハードディスク、信号９２８といった媒体全般を指すものとする。これらのコンピュータプログラム製品は、コンピュータシステム９００にソフトウェアを供給する。本発明はこのようなコンピュータプログラム製品に関するものである。
【００３３】
コンピュータプログラム（コンピュータ制御ロジックともいう）はメインメモリ９０８または補助記憶装置９１０またはその両方に格納される。またコンピュータプログラムを通信インタフェース９２４経由で受信することもできる。こうしたコンピュータプログラムを実行することにより、コンピュータシステム９００は本発明の機能を実現する。特に、プロセッサ９０４がコンピュータプログラムを実行することにより、本発明の機能を実現する。このようにコンピュータプログラムはコンピュータシステム９００を制御するものである。
【００３４】
本発明をソフトウェアで実装する場合の一変形例として、例えばコンピュータプログラム製品に格納されたソフトウェアを、リムーバブル記憶装置９１４、ハードドライブ９１２、通信インタフェース９２０を使ってコンピュータシステム９００にロードし、この制御ロジック（ソフトウェア）をプロセッサ９０４で実行することにより、本明細書で述べた本発明の機能が実現される。別の一変形例では、例えばＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェア素子を使って、本発明を主にハードウェアで実装する。本明細書で述べた機能を持つ状態マシンをハードウェアで構築することは、当業者にとっては明らかであろう。
【００３５】
さらに別の一変形例として、本発明はハードウェア、ソフトウェア両方の組み合わせでも実現される。
図１２は、本発明の態様における、各種システム要素の例を示すブロック図である。図１２は、本発明で使用される通信システム１０００を示す。通信システム１０００は、１人以上のアクセス者（ユーザ）１０６０，１０６２と、１台以上の端末装置１０４２，１０６６を含む。ある実施の形態において、本発明で使用されるデータは、例えばアクセス者１０６０，１０６４から端末装置１０４２，１０６６を経由して入力あるいはアクセスされる。ここで端末装置１０４２，１０６６は、例えばパーソナルコンピュータ（PC）、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、電話通信装置、ＰＤＡ（Personal Digital Assistants）などの手持ち型の無線通信装置である。これらの端末装置は、インターネットやイントラネットなどのネットワーク１０４４と接続リンク１０４５，１０４６，１０６４でサーバ１０４３に接続されている。サーバ１０４３は、プロセッサ、およびデータレポジトリあるいはデータレポジトリへの接続を有する装置、例えばパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータなどの装置である。接続リンク１０４５，１０４６，１０６４は、例えば有線リンク、無線リンク、光ファイバリンクなどである。本発明の一態様として、本発明は例えば単独の端末装置等、独立した環境で動作する。
【００３６】
以上、複数の態様例とともに本発明を説明したが、様々な置換、変更、変形、改良、実質的均等物が、現在知られているか否か、また予見されているか否かにかかわらず、当業者にとって可能である。すなわち上述の態様例は単に本発明の例を示すものであり、本発明はこれらに限定されない。本発明の意図および範囲から離れることなく多様な変更が可能である。よって、現在知られている、または今後もたらされるであろうあらゆる置換、変更、変形、改良、実質的均等物およびそれらの組み合わせは本発明の範囲に含まれる。
【符号の説明】
【００３７】
Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ  ノード
Ｈ  ハブ
Ｒ  回復リンク
【図１】
2010541413.tif 000003
【図２】
2010541413.tif 000004
【図３】
2010541413.tif 000005
【図４】
2010541413.tif 000006
【図５】
2010541413.tif 000007
【図６】
2010541413.tif 000008
【図７】
2010541413.tif 000009
【図８】
2010541413.tif 000010
【図９】
2010541413.tif 000011
【図１０】
2010541413.tif 000012
【図１１】
2010541413.tif 000013
【図１２】
2010541413.tif 000014
【国際調査報告】
2010541413.tif 000015