(57)【要約】一実施形態では、（１つまたは複数の）アクティブ主サーバ（１０２）および／またはアクティブ副サーバ（１０４）の責任を解放する前に冗長ノードが複製されたデータおよび状態情報をスタンバイ副サーバと先を見越して同期化する「メークビフォアブレーク」冗長性を動的ネットワーク（１０００）が使用するように、サーバ（１０６）は、候補副サーバ役割を割り当てられる。「メークビフォアブレーク」冗長性は、動的ネットワークおよび実現されるサービスの比較的高い可用性を保証する。
2013505499.tif 000002
【特許請求の範囲】
【請求項１】
動的ネットワーク（１０００）を動作させる方法であって、
第１サーバ（１０２）に主サーバ役割を割り当てるステップと、
第２サーバ（１０４）に副サーバ役割を割り当てるステップと、
前記第１サーバと前記第２サーバとの間で動的永続データを同期化するステップと、
第３サーバ（１０６）に非冗長サーバ役割を割り当てるステップと、
前記動的ネットワークからの前記第１サーバおよび前記第２サーバのうちの少なくとも１つの保留中の除去の通知に応答して、少なくとも前記第３サーバに候補副サーバ役割を割り当てるステップと
を特徴とする方法。
【請求項２】
前記動的ネットワークからの前記第１サーバの除去を見越して前記第１サーバの制御されたシャットダウンを開始するステップをさらに特徴とする、請求項１に記載の方法。
【請求項３】
候補副サーバとして前記第３サーバを識別するステップと、
前記第１サーバの動的永続データを前記第２サーバおよび前記第３サーバのそれぞれと同期化するステップと、
前記第１サーバが前記動的ネットワークから除去されたことの指示に応答して、前記第２サーバを前記主サーバ役割に昇格させるステップと
をさらに特徴とする、請求項２に記載の方法。
【請求項４】
前記第１サーバの動的永続データを前記第２サーバおよび前記第３サーバのそれぞれと同期化する前記ステップは、
前記第１サーバの動的永続データを前記第２サーバとバルク・チェックポインティングするステップを特徴とする、請求項３に記載の方法。
【請求項５】
前記第１サーバの動的永続データを前記第２サーバおよび前記第３サーバのそれぞれと同期化する前記ステップは、
前記第１サーバの動的永続データを前記第３サーバとバルク・チェックポインティングするステップを特徴とする、請求項４に記載の方法。
【請求項６】
前記第１サーバの動的永続データを前記第２サーバおよび前記第３サーバのそれぞれと同期化する前記ステップは、
前記第１サーバの前記動的永続データに対する後続の増分変更を前記第２サーバおよび前記第３サーバのそれぞれにバイキャストするステップを特徴とする、請求項５に記載の方法。
【請求項７】
前記第１サーバの動的永続データを前記第２サーバおよび前記第３サーバのそれぞれと同期化する前記ステップは、
前記第１サーバの前記動的永続データに対する後続の増分変更を前記第２サーバおよび前記第３サーバのそれぞれにバイキャストするステップを特徴とする、請求項３に記載の方法。
【請求項８】
同期化する前記ステップは、
前記第１サーバの動的永続データを前記第２サーバにバルク・チェックポインティングするステップを特徴とする、請求項１に記載の方法。
【請求項９】
同期化する前記ステップは、
前記第１サーバの前記動的永続データに対する後続の変更を前記第２サーバに増分チェックポインティングするステップをさらに特徴とする、請求項８に記載の方法。
【請求項１０】
前記第１サーバが前記動的ネットワークから除去されたことの指示に応答して、前記第２サーバに前記主サーバ役割を再割当するステップと、
前記第１サーバが前記動的ネットワークから除去されたことの指示に応答して、前記第３サーバに前記副サーバ役割を再割当するステップと
をさらに特徴とする、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的ネットワークでの改善されたサーバ冗長性のための方法に関する。
【背景技術】
【０００２】
緊急状態応答用、障害回復用、および／または軍事作戦用などの動的ネットワークは、高い可用性およびサーバ冗長性を必要とする。それと同時に、これらのタイプのネットワークは、個々のノードまたはノードのクラスタが通常の動作シナリオおよび／または重大な障害に起因してネットワークに参加し、離脱することのより高い確率をも考慮に入れなければならない。これらのネットワーク参加およびネットワーク離脱は、ネットワークが保護されず脆弱なままにされる、冗長ノードの間の制御された切替および制御されない切替のより多くの発生をもたらす。ネットワーク脆弱性を減らすために、ネットワークが保護されないままにされる切替中の過渡時間を減らさなければならない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願第１１／９５３４２６号（公告第２００９／０１４７７０２号）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在のサーバ冗長性機構は、データおよび状態の複製ならびにシステムの間の健全性監視のためのシグナリングのために、主サーバまたは主ノードと副サーバまたは副ノードとの間の同期を確立する。主サーバが故障するか一時停止される時に、副サーバは、主サーバ役割を引き受け、新しい副サーバが、識別される。しかし、これらの機構は、単一障害状態だけに対処する。従来の機構は、副サーバが、主サーバと同時にまたは主サーバから副サーバへの遷移中に故障するケースを扱わない。これは、二重障害の可能性がかなり低いので、静的ネットワークについては受け入れられる。しかし、動的ネットワークの場合には、ノードは、通常動作の一部として、より頻繁にネットワークに参加し、離脱する。さらに、動的ネットワークが緊急ネットワークとしてまたは軍事状況で展開される時には、動的ネットワークは、それが展開される過酷なユーザ環境に起因して、より複数障害状態になりやすい可能性がある。さらに、現在のサーバ冗長性機構は、単一障害状態だけに対処するので、動的ネットワークは、主サーバまたは副サーバが故障した後に新しい副サーバとのデータおよび状態の同期を確立している間に保護されないままになる。
【課題を解決するための手段】
【０００５】
例示的実施形態は、冗長ノードが、（１つまたは複数の）アクティブ主サーバおよび／またはアクティブ副サーバの責任を解放する前に、複製されたデータおよび状態の情報をスタンバイ副サーバと先を見越して同期化する、「メークビフォアブレーク（ｍａｋｅ−ｂｅｆｏｒｅ−ｂｒｅａｋ）」冗長性を使用する。例示的実施形態は、冗長性役割をサーバに割り当てる機構との新しい相互作用、新しい副サーバとのチェックアップ複製をトリガするための既存冗長性機構との新しい相互作用、ならびに遷移期間中の主サーバからアクティブ副サーバと新しい副サーバとの両方への複製された情報のバイキャスト（ｂｉ−ｃａｓｔ）を利用する。
【０００６】
例示的実施形態に関連して、動的ネットワーク・ノードを、緊急車両または軍用車両に取り付けて、ファースト・レスポンダおよび／または軍人への無線アクセスを提供することができる。第４世代（４Ｇ）ブロードバンド無線セルラ・アクセス技術を使用することによって、例示的実施形態は、ファースト・レスポンダとの間のデータ転送レートを改善すると同時に、無線通信の屋内浸透を改善することができる。
【０００７】
少なくとも１つの例示的実施形態によれば、ネットワーク・ノードは、（１）ノード間通信のため、（２）エンド・ユーザのモビリティをサポートするため、および（３）スケーラビリティを改善するために（たとえば、現場のより多くの車両がアクセス側でより多くのエンド・ユーザをサポートできるようになる）、メッシュ・ネットワークを形成する。メッシュ・ネットワークは、ネットワーク・ノード（およびネットワーク・ノードが取り付けられた車両）が通常動作中に現場に参加し、離脱することができるという点で、性質において動的である。
【０００８】
確立された後に、メッシュ・ネットワーク内の主サーバ・ノードまたは副サーバ・ノードのいずれかが故障するか、ネットワークから離脱する意図を示す場合には、たとえば、アクティブ副サーバが離脱してもよいことをアクティブ副サーバにシグナリングする前（アクティブ副サーバが離脱しようとしている場合）またはアクティブ副サーバが新しい主サーバになる前（アクティブ主サーバが離脱しようとしている場合）に、役割割当アルゴリズムが実行されて、新しい副サーバを選び、新しい副サーバを同期化させるために冗長性機構をトリガする。
【０００９】
本発明は、本明細書で下で与えられる詳細な説明および添付図面からより十分に理解され、添付図面では、同様の要素が同様の符号によって表され、詳細な説明および添付図面は、例示のみのために与えられ、本発明を限定するものではない。
【図面の簡単な説明】
【００１０】
【図１】例示的実施形態を実施できる、すばやく展開可能なネットワークを示す図である。
【図２】例示的実施形態による改善されたサーバ冗長性の方法を示す信号流れ図である。
【発明を実施するための形態】
【００１１】
さまざまな例示的実施形態を、これから、いくつかの例示的実施形態が示されている添付図面を参照してより十分に説明する。本明細書で開示される特定の構造的詳細および機能的詳細は、例示的実施形態を説明するための、単なる代表である。
【００１２】
したがって、例示的実施形態は、さまざまな変更および代替形態が可能であるが、その実施形態を、例として図面に示し、本明細書で詳細に説明する。しかし、例示的実施形態を開示される特定の形態に限定する意図がないことを理解されたい。逆に、例示的実施形態は、すべての変更、同等物、および代替物を含む。同様の符号は、図の説明全体を通じて同様の要素を指す。
【００１３】
用語第１、第２などが、本明細書でさまざまな要素を記述するのに使用される場合があるが、これらの要素が、これらの用語によって限定されてはならないことを理解されたい。これらの用語は、ある要素を別の要素から区別するためにのみ使用される。たとえば、例示的実施形態の範囲から逸脱せずに、第１要素を第２要素と呼ぶことができ、同様に、第２要素を第１要素と呼ぶことができる。本明細書で使用される時に、用語「および／または」は、関連するリストされた項目のうちの１つまたは複数のいずれかおよびすべての組合せを含む。
【００１４】
ある要素が、別の要素に「接続される」または「結合される」と呼ばれる時に、その要素を、その別の要素に直接に接続しまたは結合することができ、あるいは、介在する要素が存在してもよいことを理解されたい。対照的に、ある要素が別の要素に「直接に接続される」または「直接に結合される」と呼ばれる時には、介在する要素は存在しない。要素の間の関係を記述するのに使用される他の単語は、同様の形で解釈されなければならない（たとえば、「〜の間」対「直接に〜の間」、「隣接する」対「直接に隣接する」など）。
【００１５】
本明細書で使用される用語法は、特定の実施形態を説明するためのみのものであって、限定的であることは意図されていない。本明細書で使用される時に、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈がそうではないことを明らかに示さない限り、複数形をも含むことが意図されている。さらに、用語「ｃｏｍｐｒｉｓｅｓ（含む）」、「ｃｏｍｐｒｉｓｉｎｇ（含む）」、「ｉｎｃｌｕｄｅｓ（含む）」、および／または「ｉｎｃｌｕｄｉｎｇ（含む）」は、本明細書で使用される時に、述べられた特徴、整数、ステップ、アクション動作、要素、および／またはコンポーネントの存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および／またはその群の存在または追加を除外しないことを理解されたい。
【００１６】
いくつかの代替実施態様で、記された機能／行為が、図に記された順序から外れて発生してもよいことにも留意されたい。たとえば、用いられる機能性／行為に応じて、連続して示された２つの図を、実際に、実質的に同時に実行してもよく、あるいは、時々、逆の順序で実行してもよい。
【００１７】
特定の詳細を、次の説明で、例示的実施形態の完全な理解を提供するために提供する。しかし、当業者は、例示的実施形態をこれらの特定の詳細なしで実践できることを理解するであろう。たとえば、システムおよびネットワークが、不必要な詳細で例示的実施形態を不明瞭にすることをなくすために、ブロック図で示される場合がある。他の場合に、周知のプロセス、構造、および技法が、例示的実施形態を不明瞭にすることを避けるために、不必要な詳細なしで図示され、かつ／または議論される場合がある。
【００１８】
例示的実施形態を、フローチャート、流れ図、データ流れ図、構造図、信号流れ図、またはブロック図として図示されたプロセスとして説明する場合がある。信号流れ図が、順次プロセスとして動作または相互作用を説明する場合があるが、動作の多くは、並列に、並行して、または同時に実行されてもよい。さらに、動作または相互作用の順序を、再配置することができる。あるプロセスは、その動作が完了した時に終了されてもよいが、図面に含まれない追加ステップをも有してもよい。プロセスは、メソッド、関数、手続き、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する時には、その終了は、呼出し側関数またはメイン関数へのその関数のリターンに対応することができる。
【００１９】
例示的な実施形態は、プログラム・モジュールまたは機能プロセスとして実装されうる（たとえば、信号流れ図の形での）動作の行為および記号表現を参照して説明され、プログラム・モジュールまたは機能プロセスは、特定のタスクを実行するか特定の抽象データ型を実装し、既存のネットワーク要素または制御ノード（たとえば、メッシュ・ネットワークを伴うネットワーク・ノードまたはサーバ）の既存のハードウェアを使用して実装され得るルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。そのような既存のハードウェアは、１つまたは複数の中央処理装置（ＣＰＵ）、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、コンピュータ、または類似物を含むことができる。
【００２０】
しかし、これらおよび類似する用語のすべてが、適当な物理的量に関連付けられなければならず、これらの量に適用される単に便利なラベルであることに留意されたい。そうではないと特に述べられない限り、または議論から明白であるように、「処理」、「コンピューティング」、「計算」、「判定」、「表示」、または類似物などの用語は、コンピュータ・システムのレジスタおよびメモリ内の物理的電子量として表されたデータを操作し、コンピュータ・システム・メモリ、コンピュータ・システム・レジスタ、または他のそのような情報記憶デバイス、情報伝送デバイス、もしくは情報表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータ・システムまたは類似する電子コンピューティング・デバイス（たとえば、メッシュ・ネットワーク内のネットワーク・ノードまたはサーバ）のアクションおよびプロセスを指す。
【００２１】
また、例示的実施形態のソフトウェア実施される態様が、通常、ある形のプログラム可能媒体またはコンピュータ可読記憶媒体上で符号化されることに留意されたい。記憶媒体は、磁気（たとえば、フロッピ・ディスクまたはハード・ディスク）または光学（たとえば、コンパクト・ディスク読取り専用メモリすなわち「ＣＤ  ＲＯＭ」）とすることができ、読取り専用またはランダム・アクセスとすることができる。例示的実施形態は、任意の所与の実施態様のこれらの態様によって限定されない。
【００２２】
図１に、例示的実施形態による方法を実施できる、２つのより小さいメッシュ・ネットワーク１０００および２０００を含む動的なすばやく展開可能なネットワーク（ＲＤＮ）を示す。
【００２３】
図１を参照すると、動的ＲＤＮは、私有イントラネットまたはインターネット１００によってセルラ・バックホール・ネットワーク１１８に接続される衛星バックホール・ネットワーク１１６を含む。
【００２４】
第１メッシュ・ネットワーク１０００は、セルラ・バックホール・ネットワーク１１８を介してインターネットまたは私有イントラネット１００に接続される。
【００２５】
周知のように、無線メッシュ・ネットワーク（ＷＭＮ）は、メッシュ・トポロジで編成された無線ノードからなる無線通信ネットワークである。無線メッシュ・ネットワークは、動的である。しばしば、無線メッシュ・ネットワークは、メッシュ・ルータおよびゲートウェイを含む。
【００２６】
メッシュ・ルータは、一般に、お互いならびにメッシュ・ゲートウェイとの間でトラフィックを転送するコンピュータ／サーバである。メッシュ・ゲートウェイは、たとえばインターネットに接続できるコンピュータ／サーバでもある。一例では、無線メッシュ・ネットワークを、８０２．１１、８０２．１６、セルラ技術、または複数のタイプの組合せを含むさまざまな無線技術を用いて実施することができる。メッシュ・ルータおよび／またはゲートウェイは、一般に、エンド・ユーザ端末のために働くため、およびエンド・ユーザ端末にアクセスを提供するために、無線通信機能を有する。エンド・ユーザ端末は、携帯電話機、ラップトップ機、携帯情報端末（ＰＤＡ）、または無線伝送機能を有する任意の他のデバイスを含むことができる。
【００２７】
戻って図１を参照すると、第１メッシュ・ネットワーク１０００は、無線通信リンクを介してお互いに接続された複数のネットワーク・サーバまたはノード１０２、１０４、１０６を含む。第１メッシュ・ネットワーク１０００内のこれらのサーバを、ＲＤＮモバイル・ネットワーク・ノード（ＲＤＮ  ＭＮＮ）と称する。図１に示されたメッシュ・ネットワーク１０００内では、複数のサーバ１０２、１０４、１０６を、周知の機能ならびに本明細書で議論する追加機能を有するメッシュ・ゲートウェイまたはメッシュ・ルータとすることができる。メッシュ・ネットワーク１０００は、各ノード・セルラ境界の範囲内の複数のエンド・ユーザ端末（図示せず）のために働くことができる。
【００２８】
図１では、第２メッシュ・ネットワーク２０００は、衛星バックホール・ネットワーク１１６、インターネットまたは私有イントラネット１００、およびセルラ・バックホール・ネットワーク１１８を介して第１メッシュ・ネットワーク１０００に接続される。第２メッシュ・ネットワーク２０００も、無線通信リンクを介してお互いに接続された複数のネットワーク・サーバまたはノード１１０、１１２、１１４を含む。メッシュ・ネットワーク１０００がそうであったように、複数のサーバ１１０、１１２、１１４を、メッシュ・ゲートウェイまたはメッシュ・ルータとすることができる。図１には示されていないが、複数のエンド・ユーザ端末も、第２メッシュ・ネットワーク２０００内に存在することができる。
【００２９】
図１に示された複数のネットワーク・ノードまたはサーバを、たとえば、緊急ファース・レスポンダへの無線アクセスを提供するために緊急車両に取り付けることができる。
【００３０】
図１に示されたメッシュ・ネットワーク１０００および２０００などの無線メッシュ・ネットワークを利用することによって、特定の事件について要求されるサイズを、所与の位置（たとえば、災害位置、第一線地区など）により多くの（またはより少ない）ＲＤＮ  ＭＮＮを展開することによって、比較的簡単にスケーリングすることができる。
【００３１】
下でより詳細に論じるように、第１メッシュ・ネットワーク１０００の複数のサーバ１０２、１０４、１０６のそれぞれに、メッシュ・ネットワーク内で役割を割り当てることができる。特定の役割を、複数のサーバ１０２、１０４、１０６のうちの特定の１つに関して論じるが、これらのサーバまたはノードのそれぞれが、メッシュ・ネットワーク１０００内のどの役割のためにも働くことができることを理解されたい。さらに、メッシュ・ネットワーク１０００内には３つのネットワーク・ノードだけが図示されているが、メッシュ・ネットワーク１０００および２０００のそれぞれが、任意の個数のネットワーク・ノードを含むことができることを理解されたい。
【００３２】
図２は、動的ネットワーク内でサーバ冗長性を改善する方法を説明する信号流れ図である。図２に示された信号流れ図は、メークビフォアブレーク冗長性を有するアクティブ主サーバの制御されたシャットダウンが実行される状況でのメッシュ・ネットワーク１０００のサーバの間の例の相互作用を示す。例示的実施形態は、動的または異なる形の他のネットワークに関連して実施されてもよいことを理解されたい。
【００３３】
図２を参照すると、ステップ１では、第１サーバ１０２を初期化する。初期化は、システムおよびそのコンポーネントのパワー・アップ、動作の安定状態までシステム・プロセスおよびサービスを開始すること、メッシュ・ネットワーク１０００へのサーバのネットワーク参加の完了を含むが、これらに限定されない。
【００３４】
ステップ２では、役割割当アルゴリズムをメッシュ・ネットワーク１０００内で実行する。役割割当は、無線メッシュ・ネットワーク内のノードとネゴシエートし、これに役割を割り当てるために、無線メッシュ・ネットワークへの参加（無線メッシュ・ネットワーク内での初期化）時に各ネットワーク・サーバ上で動作する機構である。例の役割割当機構が、２００７年１２月１０日に出願されたＢｕｄｄｈｉｋｏｔ他の米国特許出願第１１／９５３４２６号（公告第２００９／０１４７７０２号）に記載されている。
【００３５】
たとえば、メッシュ・ネットワーク内での初期化の後にまたはこの初期化に応答して、各ネットワーク・ノードは、ネットワーク・トポロジと、どの役割が既にメッシュ・ネットワーク内のネットワーク・ノードに割り当て済みであるのかとに基づいて、「役割」を割り当てられる。図１に示された例のメッシュ・ネットワーク１０００では、ネットワーク・ノードの５つの可能な役割がある。いくつかの場合に、１つのネットワーク・ノードに複数の役割が割り当てられる場合がある。各ノードの可能な役割は、次を含む。
１．中継ノード（ＲＮ）  これは、動的ＲＤＮでの基本的役割である。この役割では、所与のネットワーク・ノードは、そのアクセス・インターフェースおよび中継インターフェースをアクティブにする。ＲＮは、その隣接するネットワーク・ノードと共にメッシュ・ネットワークに参加し、エンド・ユーザデバイスにアクセスを提供する。ＲＮのバックホール・インターフェースは、インアクティブである。その結果、ＲＮは、外部マクロセルラ・ネットワーク、衛星ネットワーク、または無線ネットワークなどのバックホール・ネットワークに直接にアクセスすることができない。その代わりに、ＲＮは、ゲートウェイ・ノード（ＧＮ）を介して外部バックホール・ネットワークにアクセスする。
２．主サーバ・ノード（ＰＳＮ）  このネットワーク・ノードは、中継ノード（ＲＮ）として働くと同時に、ＲＤＮ無線ネットワークの動作に必要な集中化されたサービスをホスティングする。集中化されたサービスは、特定のメッシュ・ネットワークのインスタンス全体についてサービスの単一のアクティブ・インスタンスがある、任意のサービスとすることができる。逆に、分散サービスは、ノードごとの基礎である。１メッシュ・ネットワークあたりに１つのアクティブＰＳＮがある。
３．副サーバ・ノード（ＳＳＮ）  このネットワーク・ノードは、ＲＮとしてならびにアクティブＰＳＮが故障するかネットワークから離脱する場合に冗長ネットワーク・ノードとして働く。ＰＳＮ上で動作するアプリケーションは、ＳＳＮ内のそれに対応するアプリケーションに、その動的永続データを同期化し、これによって、必要な時にＰＳＮとＳＳＮとの間の比較的スムーズなハンドオフを可能にする。
４．候補ゲートウェイ・ノード（ＣＧＮ）  このネットワーク・ノードは、ＲＮとして働き、イネーブルされたバックホール・インターフェースを有する。ＣＧＮは、外部マクロセルラ・ネットワーク、衛星ネットワーク、または無線ネットワークなどのバックホール・ネットワークへのアクセスを提供することができるが、どのネットワーク・ノードについてもアクティブ・ゲートウェイとしては働かない。
５．ゲートウェイ・ノード（ＧＮ）  ＧＮは、ＲＮとして働き、そのバックホール・インターフェースをアクティブにする。ＧＮは、外部マクロセルラ・ネットワーク、衛星ネットワーク、または無線ネットワークなどのバックホール・ネットワークへのゲートウェイとしても働く。したがって、メッシュ・ネットワーク内の他のネットワーク・ノードは、ＧＮを介して外部ネットワークにアクセスすることができる。
【００３６】
戻って図２のステップ２を参照すると、役割割当アルゴリズムを介して、メッシュ・ネットワーク１０００内のネットワーク・ノード１０２、１０６、および１０６は、これらのノードのうちのどれがＰＳＮとして働くのかを判定する。たとえば、ネットワーク・ノード１０２が、メッシュ・ネットワーク１０００内で初期化される最初の唯一のノードである場合には、このネットワーク・ノードは、主サーバすなわちＰＳＮの役割を割り当てられる。議論のために、ネットワーク・ノード１０２が、主サーバ役割を割り当てられると仮定する。したがって、ネットワーク・ノード１０２を、時々、本明細書でＰＳＮ１０２と称する。ネットワーク・ノード１０２に主サーバ役割を割り当てた後に、通常のアクティブ・システム動作が始まる。当技術分野で既知のように、通常のアクティブ・システム動作は、エンド・ユーザ端末上の加入者の認証／認可およびおそらくはメッシュ・ネットワーク１０００へのアドミタンス、メッシュ・ネットワーク１０００内でのエンド・ユーザへおよびエンド・ユーザからの情報の送信および受信、トラフィック・ポリシ機構およびサービス品質（ＱｏＳ）適用機構、ならびにメッシュ・ルータの動作と一貫する他の動作を含む。
【００３７】
ステップ３での別のネットワーク・ノード、たとえばネットワーク・ノード１０４の初期化時に（またはその初期化に応答して）、ステップ４で、役割割当アルゴリズムが、ネットワーク・ノード１０２と１０４との間で実行される。役割割当アルゴリズム中に、ネットワーク・ノード１０２は既にＰＳＮとして働いているので、ネットワーク・ノード１０４は、副（スタンバイ）サーバ役割を割り当てられる（ステップ５）。この単純な例では、ノード１０４は、存在する唯一の他のノードなので、ＳＳＮとして選択される。しかし、より大きくより複雑なネットワーク・トポロジでは、ＳＳＮの選択は、ネットワーク・ホップ数、ルーティング・ツリー・トポロジ、および特定のネットワーク・ノードに対する処理負荷などの要因を含むことができるが、これに限定されない。
【００３８】
ステップ６では、ネットワーク・ノード１０４は、指定された副サーバまたはＳＳＮとしてアクティブＰＳＮ１０２にアタッチする。ＳＳＮを指定された後に、アクティブＰＳＮ１０２の動的永続データは、ステップ７で、アクティブＳＳＮ１０４の動的永続データと同期化される。たとえば、ステップ７では、アクティブＰＳＮ１０２の動的永続データが、アクティブＳＳＮ１０４にバルク・チェックポインティングされる（ｂｕｌｋ−ｃｈｅｃｋｐｏｉｎｔｅｄ）。
【００３９】
バルク・チェックポインティングは、動的ＲＤＮ内のネットワーク・ノードのデータを同期化するための、あるネットワーク・ノードから別のネットワーク・ノードへの完全なデータ・ストアの転送である。バルク・チェックポインティングは、ＳＳＮがアクティブＰＳＮからの冗長データを有しない時に実行される。この例では、バルク・チェックポインティングは、ＳＳＮ１０４が当初に副サーバ役割を割り当てられた後に実行される。
【００４０】
より詳細には、「動的データ」は、メモリ内に格納され、通常はプロセス再始動にまたがって残存しない、状態情報など、動作中のアプリケーションのデータである。「動的永続データ」は、データがプロセス再始動にまたがって永続するようにするためにある永続メモリ・ストアに格納される動的データである。たとえば、動的永続データは、あるデバイス（たとえば、ネットワーク・ノード）が、関連する機能およびサービスを提供するためにソフトウェア内で維持することを要求される、動的オブジェクト状態情報（たとえば、呼び出されるオブジェクト、サービス・フローなど）とすることができる。「静的データ」は、ディスク・ドライブ上のデータベースなどの長期ストレージ・デバイスに格納されるデータである。たとえば、静的データは、ホスト名、ドメイン名、または加入者情報のプロビジョニングなどのシステム構成データとすることができる。
【００４１】
ネットワーク・ノードの間の動的永続データのバルク・チェックポインティングを、さまざまな形で実行することができる。たとえば、データを、要求されるアクセス速度に応じて、ネットワーク・ノードの間で共有されるメモリ内またはディスク上に保存することができる。冗長アーキテクチャの例では、ＰＳＮ１０２上の特定の動的データは、アプリケーション内のまたはアプリケーションへのトランザクションまたはイベントの結果として変更されるが、ＳＳＮ１０４上のこの動的データは、アクティブＰＳＮ１０２の複製の結果として変更される。
【００４２】
図２に視覚的に示されているように、アクティブＰＳＮ１０２とアクティブＳＳＮ１０４との間の動的永続データの同期化は、メッシュ・ネットワーク内で１＋１冗長性を提供する。
【００４３】
ステップ８では、アクティブＰＳＮ１０２とアクティブＳＳＮ１０４との間の同期を更新する。一例では、ステップ８で、アクティブＰＳＮ１０２での後続の動的永続データ変更が、アクティブＳＳＮ１０４に増分的にチェックポインティングされる。増分チェックポインティングは、２つの同期化されたネットワーク・ノード（たとえば、アクティブＰＳＮ１０２とアクティブＳＳＮ１０４と）の間でのデルタすなわち差のみの転送である。これは、たとえば、アクティブＰＳＮ１０２上の動的永続データの、すべてではなく一部が、アクティブＰＳＮ１０２とアクティブＳＳＮ１０４との間の最も最近のバルク・チェックポインティング以降に変更された時に発生する。増分チェックポインティングは、動的永続データ・オブジェクトが変更されるたびに、動的永続データ・オブジェクトのセットが変更されるたびに、またはより粒度の高い基礎で、トリガされてもよい。すなわち、たとえば、増分チェックポインティングは、変更された動的永続データ・オブジェクトごとの基礎で、動的永続データ・オブジェクトの変更されたセットごとの基礎で、またはあるより粒度の高い基礎で、発生することができる。増分チェックポインティングは、アクティブＰＳＮ１０２上の動的永続データが変更されていない場合には実行されない。
【００４４】
アクティブＰＳＮ１０２と同期化された後に、アクティブＳＳＮ１０４は、ＰＳＮ１０２の健全性を監視する。アクティブＰＳＮ１０２が故障するか、制御されたシャットダウンを実行する場合には、アクティブＳＳＮ１０４は、主サーバ役割を引き受ける準備ができている。たとえば、ＳＳＮ１０４は、ＰＳＮ１０２からの肯定応答を期待して、ＰＳＮ１０２にメッセージを送信することができる。ネットワーク内の可能なパケット消失を考慮に入れたある回数の再試行の後に、ＳＳＮ１０４がＰＳＮ１０２から肯定応答を受信しない場合には、ＳＳＮ１０４は、主サーバ役割の責任を引き受ける。将来に、ＰＳＮ１０２がもう一度到達可能になる場合には、役割割当機構は、ノードのうちの１つをＳＳＮ状況にダウングレードすることができる。
【００４５】
メッシュ・ネットワーク１０００を確立した後に、他のシステム（たとえば、ネットワーク・ノード１０６）が、メッシュ・ネットワーク１０００に参加し、メッシュ・ネットワーク１０００内で初期化される可能性がある。これが発生する例の状況を、下で、図２を参照してより詳細に説明する。
【００４６】
まだ図２を参照すると、たとえば、ステップ９で、ネットワーク・ノード１０６が、ステップ３に関して上で論じたものと同一の形でメッシュ・ネットワーク１０００に参加する。初期化の後に（または初期化に応答して）、ステップ１０で、役割割当アルゴリズムが、アクティブＰＳＮ１０２とアクティブＳＳＮ１０４と新たに参加したノード１０６との間で実行される。主サーバ役割と副サーバ役割との両方が既に無線メッシュ・ネットワーク１０００内で割り当て済みなので、ネットワーク・ノード１０６は、ステップ１１で非冗長役割を割り当てられる。たとえば、ネットワーク・ノード１０６は、中継ノード（ＲＮ）として指定される。その後、ＲＮ１０６は、通常動作を開始する。
【００４７】
通常動作中に、アクティブＰＳＮ１０２は、制御されたシャットダウン（たとえば、メッシュ・ネットワークから離脱することを見越して）を開始することができる。上で注記したように、例示的実施形態を、この状況に関して論じる。しかし、類似するプロセスは、アクティブＰＳＮ１０２が、制御されたシャットダウンを開始するのではなく、故障し始める場合に発生してもよい。
【００４８】
戻って図２を参照すると、ステップ１２では、アクティブＰＳＮ１０２が、メッシュ・ネットワーク１０００から離脱するつもりなので、制御されたシャットダウンを開始する。アクティブＰＳＮ１０２がメッシュ・ネットワーク１０００から離脱する意図の指示または通知に応答して、役割割当アルゴリズムは、ステップ１３で、候補ＳＳＮを識別するためにトリガする。候補ＳＳＮは、スタンバイＳＳＮであり、このスタンバイＳＳＮは、アクティブＰＳＮおよびアクティブＳＳＮと同期化された後にアクティブＳＳＮになる。ステップ１４では、候補ＳＳＮが、識別され、アクティブＰＳＮ１０２およびＳＳＮ１０４との動的永続データ同期化の完了まで、候補副サーバ役割を割り当てられる。図１に示された例では、ネットワーク・ノード１０６が、候補またはスタンバイＳＳＮとして識別される。
【００４９】
ステップ１５では、アクティブＰＳＮ１０２の動作中の動的永続データが、候補ＳＳＮ１０６の動的永続データと同期化される。一例では、アクティブＰＳＮ１０２の動作中の動的永続データが、候補ＳＳＮ１０６にバルク・チェックポインティングされる。
【００５０】
アクティブＰＳＮ１０２と候補ＳＳＮ１０６との間で動的永続データを同期化している間に、アクティブＳＳＮ１０４（候補ＰＳＮ）サーバまたはアクティブＰＳＮ１０２サーバのいずれかが故障する場合に少なくとも１つのＳＳＮがそれでもメッシュ・ネットワーク１０００内に存在することを保証するために、動的永続データに対するすべての増分変更が、アクティブＳＳＮ１０４と候補ＳＳＮ１０６との両方にバイキャストされる。
【００５１】
アクティブＰＳＮ１０２と候補ＳＳＮ１０６との間での動的永続データ同期化の完了時に、アクティブＰＳＮ１０２、アクティブＳＳＮ１０４、および候補ＳＳＮ１０６の動的永続データが、ステップ１７で同期化される。同期化された後に、役割割当アルゴリズムは、完了し、動的ネットワークは、過渡的１＋２冗長状態にある。
【００５２】
アクティブＳＳＮ１０４は、アクティブＰＳＮ１０２の健全性を監視し続け、アクティブＰＳＮ１０２が制御されたシャットダウンを完了する（またはその代わりに故障する）時に主サーバ役割を引き受ける準備ができている。さらに、候補ＳＳＮ１０６は、アクティブＳＳＮ１０４またはアクティブＰＳＮ１０２が故障するかメッシュ・ネットワーク１０００から離脱する場合にアクティブＳＳＮになる準備ができている。
【００５３】
ステップ１９に戻ると、アクティブＰＳＮ１０２が制御されたシャットダウンを完了する（たとえば、動的ＲＤＮから離脱する）時に、アクティブＳＳＮ１０４は、ステップ２０でアクティブＰＳＮ１０２の離脱を検出し、ステップ２１でそれ自体をアクティブ主サーバ役割に昇格させる。その後、ＳＳＮ１０４は、その新しい状況についてすべての他のノードに知らせる。
【００５４】
それと並行して、候補ＳＳＮ１０６は、ステップ２２でメッシュ・ネットワーク１０００からのアクティブＰＳＮ１０２の離脱を検出し、ステップ２３でそれ自体をアクティブ副サーバ役割に昇格させる。ネットワークが保護されないままになる時間を減らす（たとえば、最小にする）ために、ＳＳＮ１０６は、ＳＳＮ１０６がそれ自体をアクティブＳＳＮに昇格させる前に、ＰＳＮ状況へのＳＳＮ１０４の昇格を示すＳＳＮ１０４から送信されるメッセージを待たないことに留意されたい。したがって、アクティブＳＳＮへの候補ＳＳＮ１０６の昇格は、実際に、ＰＳＮへのＳＳＮ１０４の昇格の前にまたはこれと並行して発生する可能性がある。
【００５５】
ステップ２４では、現在のアクティブＳＳＮ１０６が、新たなアクティブＰＳＮ１０４にアタッチし、少なくとも１＋１冗長性が、ＰＳＮ１０２の制御されたシャットダウンに関わりなくメッシュ・ネットワーク１０００内で継続的に維持される。
【００５６】
その後、アクティブＰＳＮ１０４の後続の動的永続データ変更が、ステップ２５でアクティブＳＳＮ１０６に増分的にチェックポインティングされる。
【００５７】
副サーバ役割を引き受けた後に、アクティブＳＳＮ１０６は、ＰＳＮ１０４の健全性を監視し、ＰＳＮ１０４が故障するか制御されたシャットダウンを実行する場合にＰＳＮになる準備ができている。
【００５８】
その後、類似するシナリオは、指定されたまたはアクティブなＳＳＮがネットワークから離脱する時またはノードのうちのいずれか３つが動的ネットワーク内で故障する時に発生する。アクティブＳＳＮがネットワークから離脱する時には、候補ＳＳＮ（たとえば、ノード１０８）がそれ自体をアクティブ副サーバ役割に昇格させるので、１＋１冗長性が維持される。
【００５９】
さらに、本明細書では特に論じないが、同一の手順を、図１に示された第２メッシュ・ネットワーク２０００に対して実行することができる。これらの手順は、図１の第１メッシュ・ネットワーク１０００に関して上で論じたものと実質的に同一なので、詳細な議論は省略する。
【００６０】
例示的実施形態は、動的ネットワークおよび実現されるサービスの比較的高い可用性を保証する。より一般的には、例示的実施形態は、動的ネットワークとすべてのネットワークに関するサービスとの可用性を改善するが、特に、動的であり、かつ／または複数同時障害を受けやすいネットワークおよびサービスの可用性を改善する。
【００６１】
例示的実施形態は、たとえば冗長性切替の過渡期間中の、動的ネットワークが保護されないままである時間を減らす。これは、緊急状況中に特に重要である、ネットワークおよびサービスの可用性を高めることができる。
【００６２】
このように本発明を説明したので、本発明を多数の形で変更できることは明白である。そのような変形は、本発明からの逸脱とみなされてはならず、すべてのそのような変更は、本発明の範囲に含まれることが意図されている。
【図１】
2013505499.tif 000003
【図２】
2013505499.tif 000004
【国際調査報告】
2013505499.tif 000005
2013505499.tif 000006
2013505499.tif 000007