(57)【要約】  マルチリング高信頼メッセージングシステムは、トークンリングと通信するように構成されたアクティブゲートウェイと、トークンリングと通信するように構成されたスタンバイゲートウェイとを含むゲートウェイのペアを介して、複数のトークンリングを相互接続することにより形成される。アクティブゲートウェイは第１のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成し、第２のトークンリングに関連メッセージを伝搬する。アクティブゲートウェイは、トークンリング内でメッセージの全順序配信を、トークンリング間で因果順序配信をサポートする。スタンバイゲートウェイは、アクティブゲートウェイが故障した際にメッセージが失われるのを防ぐように、トークンリングを介して受信したオリジナルメッセージと関連メッセージを監視する。
2016515343.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第１のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第２のトークンリングを決定することと、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成することと、
関連メッセージを第２のトークンリングに伝搬することと
を行うように構成された、装置。
【請求項２】
第１のトークンリングが第１のノードタイプの第１の複数のノードを含み、第２のトークンリングが第１のノードタイプとは異なる第２のノードタイプの第２の複数のノードを含む、請求項１に記載の装置。
【請求項３】
プロセッサが第１のトークンリングプロトコルを使用して第１のトークンリングと通信するように構成され、プロセッサが第１のトークンリングプロトコルまたは第２のトークンリングプロトコルを使用して第２のトークンリングと通信するように構成された、請求項１に記載の装置。
【請求項４】
プロセッサが、メッセージのメッセージタイプ、第１のトークンリングの第１の複数のノードのノードタイプまたは第２のトークンリングの第２の複数のノードのノードタイプのうち少なくとも１つに基づいて、オリジナルメッセージが提供される第２のトークンリングを決定するように構成された、請求項１に記載の装置。
【請求項５】
プロセッサが、第１のトークンリング内でオリジナルメッセージの全順序配信をサポートするように構成された、請求項１に記載の装置。
【請求項６】
プロセッサが、第１のトークンリングと第２のトークンリングとの間で関連メッセージの因果順序配信をサポートするように構成された、請求項１に記載の装置。
【請求項７】
オリジナルメッセージが、第１のトークンリング内での配信のための情報のセットを含み、関連メッセージがオリジナルメッセージの情報のセットを含む、請求項１に記載の装置。
【請求項８】
オリジナルメッセージがヘッダー情報を含み、プロセッサが、
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、
請求項１に記載の装置。
【請求項９】
プロセッサが、ネットワーク通信、１つまたは複数の通信アプリケーションプログラミングインターフェース（ＡＰＩ）、または第１のトークンリングへの第１の物理インターフェースおよび第２のトークンリングへの第２の物理インターフェースのうち少なくとも１つを使用して、第１のトークンリングおよび第２のトークンリングと通信するように構成された、請求項１に記載の装置。
【請求項１０】
方法であって、
第１のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第２のトークンリングを決定し、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成し、
関連メッセージを第２のトークンリングに伝搬する、
ためにプロセッサとメモリを使用すること
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は全体としてメッセージングシステムに関するものであり、限定されないがより具体的には、メッセージングシステムにおけるメッセージの交換の処理に関する。
【背景技術】
【０００２】
多くの種類のシステムにおいて、メッセージの交換により、システムの構成要素がその時点でのシステムの状況について素早く見解を一致させることが必要である。それらのシステムのうちいくつかでは、メッセージの交換はメッセージルーターソリューション（例、ＲａｂｂｉｔＭＱ）を使用して、またはトークンリングプロトコル（例、Ｓｐｒｅａｄ  Ｔｏｏｌｋｉｔやｃｏｒｏｓｙｎｃが実装するＴＯＴＥＭプロトコル）を使用することにより提供される。しかし、不利なことに、メッセージルーターソリューションはシステムのサイズが大きくなるにつれてボトルネックに直面することがしばしばあり、トークンリングプロトコルはシステムサイズに合わせて拡張することが難しい。
【発明の概要】
【課題を解決するための手段】
【０００３】
従来技術の様々な欠陥は、マルチリング高信頼性メッセージング機能に関連する実施形態により解決され得る。
【０００４】
一実施形態において、装置は、プロセッサと、プロセッサと通信可能に接続されたメモリとを含み、プロセッサは、第１のトークンリングを介してオリジナルメッセージを受信することと、オリジナルメッセージが提供される第２のトークンリングを決定することと、オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成することと、関連メッセージを第２のトークンリングに伝搬することとを行うように構成される。
【０００５】
一実施形態において、方法は、第１のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが提供される第２のトークンリングを決定し、オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成し、関連メッセージを第２のトークンリングに伝搬するためにプロセッサとメモリを使用することを含む。
【０００６】
一実施形態において、装置は、プロセッサと、プロセッサと通信可能に接続されたメモリとを含み、プロセッサは、第１のトークンリングからオリジナルメッセージを受信し、オリジナルメッセージをメモリに記憶し、１つまたは複数のトークンリングそれぞれからのオリジナルメッセージと関連付けられた１つまたは複数の関連メッセージの受信を監視するように構成される。
【０００７】
一実施形態において、方法は、第１のトークンリングからオリジナルメッセージを受信し、オリジナルメッセージをメモリに記憶し、１つまたは複数のトークンリングそれぞれからのオリジナルメッセージと関連付けられた１つまたは複数の関連メッセージの受信を監視するためにプロセッサとメモリを使用することを含む。
【０００８】
本明細書の教示は、以下の詳細な説明を付随する図面と併せて考慮することで容易に理解することができる。
【図面の簡単な説明】
【０００９】
【図１】アクティブゲートウェイおよびスタンバイゲートウェイを含むゲートウェイのペアと複数のリングとを含む、例示的なマルチリングメッセージングシステムを示す図である。
【図２】図１のトークンリングのうちの１つから発生するメッセージを処理するために図１のアクティブゲートウェイが使用する方法の例示的な実施形態を示す図である。
【図３】図１のトークンリングのうちの１つから発生するメッセージを処理するために図１のスタンバイゲートウェイが使用する方法の例示的な実施形態を示す図である。
【図４】図１のトークンリングから発生するメッセージを処理するために図１のスタンバイゲートウェイが使用する方法の例示的な実施形態を示す図である。
【図５】クラウドベースの無線アクセスネットワーク管理アプリケーションのための、マルチリングメッセージングシステムの例示的な実施形態を示す図である。
【図６】図５の例示的なマルチリングメッセージングシステムのための例示的なメッセージフローを示す図である。
【図７】本明細書で説明する機能を実行するのに適切な、コンピュータの上位レベルブロック図である。
【発明を実施するための形態】
【００１０】
理解しやすくするため、複数の図に共通する同一の要素を指定するために可能な限り同一の符号が使用されている。
【００１１】
全体として、本明細書ではマルチリング高信頼メッセージング機能が提供される。少なくともいくつかの実施形態において、マルチリング高信頼メッセージング機能は、本明細書でマルチリング高信頼メッセージングシステムと称される高信頼メッセージングシステムを実装するために、複数の相互接続されたトークンリングの使用をサポートし得る。高信頼メッセージングシステムを実装するために相互接続される複数のトークンリングは、使用可能なトークンリングのサブセットであり得ることが理解されよう（例、マルチリング高信頼メッセージング機能が提供されるシステムにおける、トークンリングのサブセット）。
【００１２】
少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、複数のトークンリングのそれぞれと通信するように構成されたアクティブゲートウェイと、複数のトークンリングのそれぞれと通信するようにやはり構成されたスタンバイゲートウェイとを含むゲートウェイのペアを介して、複数のトークンリングを相互接続することにより形成し得る。ここで、複数のトークンリングは選択された複数のトークンリングであり得ることが理解されよう（例、マルチリング高信頼メッセージングシステムを提供するために使用される、あるいは使用され得るトークンリングのセットから選択されたトークンリングのサブセット）。
【００１３】
少なくともいくつかの実施形態において、アクティブゲートウェイは、複数のトークンリングのうち第１のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが対象とする１つまたは複数の他のトークンリングに１つまたは複数の関連メッセージを伝搬するように構成される。少なくともいくつかの実施形態において、アクティブゲートウェイは、複数のトークンリングのうち第１のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが提供される１つまたは複数の他のトークンリングを決定し、オリジナルメッセージが提供される１つまたは複数の他のトークンリングへの１つまたは複数の関連メッセージを生成し、１つまたは複数の他のトークンリングに１つまたは複数の関連メッセージを伝搬するように構成される。
【００１４】
少なくともいくつかの実施形態において、スタンバイゲートウェイは、アクティブゲートウェイが故障した際にメッセージが失われるのを防ぐように、トークンリングを介して受信したオリジナルメッセージと関連メッセージを監視するように構成される。少なくともいくつかの実施形態において、スタンバイゲートウェイは、複数のトークンリングのうち第１のトークンリングから第１のトークンリングのノードが生成したオリジナルメッセージを受信し、オリジナルメッセージを格納し、複数のトークンリングのうち１つまたは複数の他のトークンリングからの、オリジナルメッセージと関連付けられた１つまたは複数の関連メッセージの受信を監視するように構成される。
【００１５】
少なくともいくつかの実施形態において、各トークンリング内のメッセージ配信は、各トークンリング内で全順序メッセージ配信が提供されるように実行されるが、トークンリング間で全順序メッセージ配信をサポートする必要がないよう、トークンリング間のメッセージ配信は緩和される（例、トークンリング間では、メッセージの因果順序配信のみをサポートする）。全体として、全順序によるメッセージの配信は、メッセージが対象とする受信者（およびメッセージの送信者）のそれぞれに同じ順番で配信されることを意味することが理解されよう。全体として、因果順序によるメッセージの配信は、メッセージ「ａ」がメッセージ「ｂ」よりも先に送信された場合、メッセージ「ａ」はメッセージ「ｂ」よりも先に配信されることを意味することが理解されよう。
【００１６】
少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、マルチリング高信頼メッセージングシステムのノードがそれぞれのノードタイプに基づいてグループ化されるように構築される（例、マルチリング高信頼メッセージングシステムのノードの各ノードタイプについて、ノードは、それぞれのノードタイプの１つまたは複数のトークンリングにグループ分けされる）。少なくともいくつかの実施形態において、ノードタイプに基づいてノードをトークンリングにグループ分けすることは、（それぞれのトークンリング内の）同じノードタイプのノード間でメッセージの全順序配信を確実にサポートするために使用することができる。一方で、（トークンリング間の）異なるノードタイプのノード間ではメッセージの因果順序配信のみがサポートされればよい。言い換えると、少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、システムのサイズが大きくなるにつれ、システムがシステム内で生成されたメッセージのサブセットにのみ関心があるノードのグループを含む可能性も大きくなることが予期されるという事実を活用し得る。それで、ノードのグループをシステム内で生成されたメッセージの特定のタイプのために保持し、また、メッセージの全順序配信はノードのグループ内でのみ要求され、メッセージの因果順序配信はノードのグループ間でサポートされるようにシステム全体のメッセージの全順序配信に対する要求を緩和することができる。
【００１７】
少なくともいくつかの実施形態において、メッセージ配信にトークンリングを使用することに伴う様々な利点を保持しつつ、マルチリング高信頼メッセージングシステムは水平拡張性を向上させる（例、高信頼メッセージ配信、高速な反応時間など）。水平拡張性は、サポートされうるノードの数という点で、トークンリングネットワークの既存の限界を克服することが理解されよう（例、特定のタイプのトークンリングは最大でＭノードしか持つことができず、メッセージ遅延や他の基準などのパフォーマンスを考慮に入れると、Ｍよりも少ないノードの使用にさらに限定されることもある）。たとえば、Ｍノードに限定されるトークンリングネットワークにおいて、Ｎ個のトークンリングを含むマルチリング高信頼メッセージングシステムは、合計ＮｘＭノードをサポートすることができる（これは、マルチリング高信頼メッセージングシステムを使用しない場合にサポートされるノードよりもはるかに大きい数であり得る）。
【００１８】
マルチリング高信頼メッセージング機能の様々な実施形態については、図１に関して示され説明されているように、例示的なマルチリングメッセージングシステムを参照することで、よりよく理解できる。
【００１９】
図１は、アクティブゲートウェイおよびスタンバイゲートウェイを含むゲートウェイのペアと複数のリングとを含む、例示的なマルチリングメッセージングシステムを示している。
【００２０】
例示的なマルチリングメッセージングシステム１００は、複数のトークンリング１１０１−１１０Ｎ（集合的に、トークンリング１１０）と、アクティブゲートウェイ１２０Ａおよびスタンバイゲートウェイ１２０Ｓを含むゲートウェイのペア（集合的に、ゲートウェイ１２０）とを含む。ゲートウェイ１２０はそれぞれ、各トークンリング１１０と通信可能に接続されている。
【００２１】
トークンリング１１０はそれぞれ、複数のノード１１２１−１１２Ｍ（集合的に、ノード１１２）を含む。所与のトークンリング１１０内で、トークンリング１１０のノード１１２はリング構造で通信可能に接続されている。トークンリング１１０のノード１１２は、ノード１１０のノードタイプに基づいて構築されてもよい。少なくともいくつかの実施形態において、トークンリング１１０および関連ノード１１２は、例示的なマルチリングメッセージングシステム１００内でサポートされるＮ個のノードタイプに対して同じノードタイプを持つノード１１２がグループ化され、それぞれトークンリング１１０１−１１０Ｎを形成するように構築され得る（つまり、トークンリング１１０１のノード１１２１は第１のノードタイプのノード、トークンリング１１０２のノード１１２２は第２のノードタイプのノード、など）。ノード１１２のノードタイプとトークンリング１１０との間の一対一の関係で主に示され説明されているが、トークンリング１１０と関連ノード１１２は他の配置を使用して構築され得ることが理解されよう（例、複数のノードタイプが１つのトークンリング１１０内で結合され得る、所与のノードタイプのノードが複数のトークンリング１１０に構築され得るなど、およびこれらの様々な組み合わせ）。少なくともいくつかの実施形態において、所与のノードタイプのノード１１２に対してメッセージの全順序配信が要求されない場合、所与のノードタイプのノード１１２は、複数のトークンリング１１０をまたがって分散され得るだけであることが理解されよう（例、ノードタイプに対するそれぞれのトークンリング１１０のノード１１２間では、メッセージの配信は因果順序でのみ提供され得る）。したがって、トークンリング１１０のノード１１２の数は、トークンリング１１０によって異なることが理解されよう。
【００２２】
トークンリング１１０は、ノード１１２のそれぞれのセットを含む。所与のトークンリング１１０内で、トークンリング１１０のノード１１２は、メッセージを生成し、トークンリング１１０の他のノード１１２に生成されたメッセージを伝搬し、トークンリング１１０の他のノード１１２から受信したメッセージを処理し、トークンリング１１０の他のノード１１２から受信したメッセージを転送するなどするように構成される。全体として、トークンリング１１０のノード１１２によって生成されたメッセージは、そのトークンリング１１０から発生したと見なされる（また、そのトークンリング１１０のオリジナルメッセージとして参照され得る）。所与のトークンリング１１０において、トークンリング１１０のノード１１２は、そのトークンリング１１０のノード１１２間でのメッセージの交換を促進するトークンリングプロトコルをサポートするように構成される。たとえば、所与のトークンリング１１０の各ノード１１２は、そのトークンリング１１０内でのメッセージの配信に使用されるトークンリングプロトコルのシングルインスタンスをサポートし得る。所与のトークンリング１１０内で、トークンリング１１０のノード１１２は、トークンリング１１０から発生するメッセージに対して、トークンリング１１０内のメッセージの全順序配信をサポートするように構成される。例示的なマルチリングメッセージングシステム１００は、トークンリング内での全順序メッセージ配信をサポートする１つまたは複数のトークンリングプロトコルの使用をサポートし得る（例、ＴＯＴＥＭプロトコル、ｃｏｒｏｓｙｎｃが実装するＴＯＴＥＭプロトコル、Ｓｐｒｅａｄプロトコルや他の適切なタイプのトークンリングプロトコル）。少なくともいくつかの実施形態において、たとえば、各トークンリング１１０において同じトークンリングプロトコルが使用され得る。少なくともいくつかの実施形態において、たとえば、各トークンリング１１０は複数のトークンリングプロトコルのうち１つを使用するが、使用されるトークンリングプロトコルはトークンリング１１０によって異なるなど、複数のトークンリングプロトコルがサポートされ得る。
【００２３】
トークンリング１１０はまた、各ゲートウェイ１２０を含む。ゲートウェイ１２０のそれぞれは、各トークンリング１１０とインターフェースで接続するように構成される。より具体的には、各ゲートウェイ１２０が各トークンリング１１０で交換される各メッセージを受信するように、ゲートウェイ１２０のそれぞれは各トークンリング１１０のリング構造内に含まれる。この意味において、各ゲートウェイ１２０は各トークンリング１１０上で「ノード」と見なされる（とはいえ、トークンリング１１０内のゲートウェイ１２０の存在は、トークンリング１１０のノード１１２に対しては透過的である）。トークンリング１１０間でのメッセージの交換を可能にするようにトークンリング１１０を統合するゲートウェイ１２０を除いて、トークンリング１１０は互いに独立して動作する。アクティブゲートウェイ１２０Ａとスタンバイゲートウェイ１２０Ｓは、アクティブゲートウェイ１２０Ａとスタンバイゲートウェイ１２０Ｓの両方が同時に故障しないことを保証する（あるいは少なくとも可能性を高める）ために、非アフィニティルールに基づいて配備してもよい（例、地理的多様性やプラットフォームの多様性を使用するなど）。
【００２４】
アクティブゲートウェイ１２０Ａは、プロセッサ１２２Ａと、プロセッサ１２２Ａに通信可能に接続されたメモリ１２４Ａとを含む。本明細書で示され説明されているように、メモリ１２４Ａは、プロセッサ１２２Ａに実行されたときにプロセッサ１２２Ａにアクティブゲートウェイ１２０Ａの様々な機能を実行させる、メッセージ交換プログラム１２５Ａを記憶する。メモリ１２４Ａはまた、アクティブゲートウェイ１２０Ａの故障に応じてスタンバイゲートウェイ１２０Ｓがアクティブの役割を担うという故障から回復した後に、アクティブゲートウェイ１２０Ａがスタンバイの役割として機能する場合に、アクティブゲートウェイ１２０Ａによって使用されるデータ構造１２６Ａ（例、リンクされたリストや他の適切なタイプのデータ構造）を記憶し得る。
【００２５】
スタンバイゲートウェイ１２０Ｓは、プロセッサ１２２Ｓと、プロセッサ１２２Ｓに通信可能に接続されたメモリ１２４Ｓとを含む。本明細書で示され説明されているように、メモリ１２４Ｓは、プロセッサ１２２Ｓに実行されたときにプロセッサ１２２Ｓにスタンバイゲートウェイ１２０Ｓの様々な機能を実行させる、メッセージ交換プログラム１２５Ｓを記憶する。本明細書で示され説明されているように、メモリ１２４Ｓはまた、スタンバイゲートウェイ１２０Ｓの様々な機能を実行するために使用する、データ構造１２６Ｓ（例、リンクされたリストや他の適切なタイプのデータ構造）を記憶し得る。
【００２６】
ゲートウェイ１２０のプロセッサ１２２のそれぞれは、各トークンリング１１０とインターフェースで接続されるように構成される。このようなインターフェースは、例示的なメッセージングシステム１００が使用される環境やコンテキストによって異なる適切な仕方で提供され得る（例、ＴＣＰ／ＩＰネットワーキング、１つまたは複数の通信アプリケーションプログラミングインターフェース（ＡＰＩ）、またはトークンリング１１０１−１１０Ｎのそれぞれに対応するＮ個の専用物理インターフェースなどを使用するか、これらの様々な組み合わせ）。プロセッサ１２２のそれぞれは、トークンリング１１０との通信をサポートする１つまたは複数のトークンリングプロトコルの１つまたは複数のインスタンスを実行するように構成される（例、トークンリング１１０に使用される、異なるトークンリングプロトコルの数やタイプに応じて）。たとえば、各トークンリング１１０がｃｏｒｏｓｙｎｃを実行している場合、各プロセッサ１２２は、関連ゲートウェイ１２０とトークンリング１１０１−１１０Ｎのそれぞれとの通信（例、Ｎ個のｃｏｒｏｓｙｎｃクローズドプロセスグループ（ＣＰＧ）ＡＰＩを使用する）のためにＮ個のｃｏｒｏｓｙｎｃインスタンスを実行し、トークンリング１１０１−１１０Ｎのそれぞれにおいて複数の同時リング操作をサポートするために変更されたｃｏｒｏｓｙｎｃコアを実行するなどするように構成され得る。
【００２７】
スタンバイゲートウェイ１２０Ｓのデータ構造１２６Ｓは、各トークンリング１１０へのメッセージの順番を保存するように構成される。データ構造１２６Ｓは、トークンリング１１０から発生するメッセージに対して、スタンバイゲートウェイ１２０Ｓで受信したトークンリング１１０からのメッセージを格納するために使用され得る。データ構造１２６Ｓは、メッセージが受信されるトークンリング１１０から発生しないメッセージに対して、スタンバイゲートウェイ１２０Ｓで受信したトークンリング１１０からのメッセージを追跡するために使用され得る（すなわち、アクティブゲートウェイ１２０Ａによって生成されトークンリングに提供されるメッセージ）。上記のように、データ構造１２６Ｓは、リンクされたリストとして、またはメッセージの格納と追跡のための使用に適切な他のタイプのデータ構造として実装されるか、それを含むことができる。
【００２８】
したがって、明瞭化のために、ゲートウェイ１２０のプロセッサ１２２とトークンリング１１０との間のインターフェースは、ゲートウェイ１２０とそれぞれのトークンリング１１０との間の通信パスのそれぞれのセットとして示される。
【００２９】
アクティブゲートウェイ１２０Ａとスタンバイゲートウェイ１２０Ｓの動作は、それぞれアクティブ状態にあるかスタンバイ状態にあるかにより異なる。
【００３０】
アクティブゲートウェイ１２０Ａは、メッセージが発生される１つのトークンリング１１０からのオリジナルメッセージを受信するように構成される（上述の通り、メッセージはそのトークンリング１１０上の１つのノード１１２によって生成されたものである）。
【００３１】
アクティブゲートウェイ１１０Ａは、オリジナルメッセージが発生される１つのトークンリング内でオリジナルメッセージの全順序配信を維持するような仕方で、オリジナルメッセージが発生される１つのトークンリング１１０のトークンリングプロトコルを使用して、オリジナルメッセージが発生される１つのトークンリング１１０を介して、オリジナルメッセージを伝搬するように構成される。このことは、トークンリングの要素であるノードがトークンリング上の他のノードによって生成されたメッセージを受信する際の、トークンリングの例示的な動作であることが理解されよう。
【００３２】
アクティブゲートウェイ１２０Ａはまた、オリジナルメッセージが例示的なマルチリングメッセージングシステム１００内で適切に配信されるように、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０にオリジナルメッセージを提供するように構成される。１つのトークンリング１１０を介して受信されるオリジナルメッセージを１つまたは複数の他のトークンリング１１０に提供することについての言及は、オリジナルメッセージ１１０が伝達する情報が１つまたは複数の他のトークンリング１１０の他のノード１１２へ配信されることを示していることが理解されよう。
【００３３】
アクティブゲートウェイ１２０Ａは、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を決定するように構成される。オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０は、他のトークリング１１０のすべて、または他のトークンリング１１０のサブセットを含み得る。アクティブゲートウェイ１２０Ａは、オリジナルメッセージの１つまたは複数のメッセージタイプやオリジナルメッセージが発生されるノード１１２のノードタイプなどを示し得るオリジナルメッセージの１つまたは複数のアドレスフィールドに基づいて、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を決定し得る。たとえば、例示的なマルチリングメッセージングシステム１００が４つのトークンリング１１０１−１１０４（すなわち、Ｎ＝４）を含み、トークンリング１１０１のノード１１２１から発生しアクティブゲートウェイ１２０Ａで受信されたオリジナルメッセージがトークンリング１１０２と１１０３のノード１１２２とノード１１２３にとってのみ必要で、トークンリング１１０４のノード１１２４にとって必要ではない場合、アクティブゲートウェイ１２０Ａはオリジナルメッセージをトークンリング１１０２と１１０３のみに提供しトークンリング１１０４には提供しないことにより、例示的なマルチメッセージングシステム１００内で交換される必要のあるメッセージの数を減らすことができる。各トークンリング１１０内で生成されたすべてのオリジナルメッセージがすべての他のトークンリング１１０に配信される場合、オリジナルメッセージが提供される他のトークンリング１１０を決定することは不必要であり得ることが理解されよう（例、アクティブゲートウェイ１２０Ａが、各オリジナルメッセージが完全に配信されなければならないことを単に知っている場合）。
【００３４】
アクティブゲートウェイ１２０Ａは、オリジナルメッセージに基づいて生成される１つまたは複数の関連メッセージを使用して、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０にオリジナルメッセージを提供するように構成され得る。全体として、オリジナルメッセージに対応する関連メッセージは、オリジナルメッセージが伝達するのと同じ情報を伝達する。したがって、オリジナルメッセージに対応する関連メッセージは、少なくともオリジナルメッセージのペイロードと同じ情報を含むペイロードを持ち（例、関連メッセージのペイロードがオリジナルメッセージのペイロードと同一であるような同じ形式、または関連メッセージのペイロードとオリジナルメッセージのペイロードは異なるが同じ情報を伝達するような異なる形式）、場合によってはオリジナルメッセージの複製であり得る。たとえば、トークンリング１１０が異なるトークンリングプロトコルを使用する場合、オリジナルメッセージと１つまたは複数の関連メッセージは同一のペイロードと異なるヘッダーを持ち得る。たとえば、トークンリング１１０が同一のトークンリングプロトコルを使用し同じノードタイプのノード１１２を持つ場合、１つまたは複数の関連メッセージはオリジナルメッセージと同一であり得る。アクティブゲートウェイ１２０Ａは、何らかの適切な方法で１つまたは複数の関連メッセージを生成するように構成され得る（例、オリジナルメッセージに基づいて生成される１つまたは複数の関連メッセージの各インスタンスのためにメモリからオリジナルメッセージを取得する、オリジナルメッセージの１つまたは複数のコピーを生成する、必要に応じて１つまたは複数の関連メッセージのヘッダー情報を変更するなど、およびこれらの様々な組み合わせ）。したがって、例示的なマルチリングメッセージングシステム１００内での情報の配信を追跡するために、トークンリング１１０上のオリジナルメッセージ（そのトークンリング１１０のノード１１２に生成されるメッセージ）とトークンリング１１０上の関連メッセージ（そのトークンリング１１０上で伝搬のためにアクティブゲートウェイ１２０Ａに生成されるメッセージ）には差異があることが理解されよう。また、「メッセージ」という語はオリジナルメッセージおよび関連メッセージを参照する際に使用されることも理解されよう。
【００３５】
アクティブゲートウェイ１２０Ａは、オリジナルメッセージが対象とするトークンリング１１０（つまり、オリジナルメッセージが生成されたトークンリング１１０の１つと、オリジナルメッセージが対象とする１つまたは複数の他のトークンリング１１０）間で、オリジナルメッセージと関連メッセージの因果順序配信を維持する仕方でオリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０に、１つまたは複数の関連メッセージを提供するように構成され得る。アクティブゲートウェイ１２０Ａは、オリジナルメッセージが対象とするトークンリング１１０間でオリジナルメッセージと関連メッセージの全順序配信を維持する仕方で、１つまたは複数の関連メッセージを１つまたは複数の他のトークンリング１１０に提供する必要が必ずしもあるわけではない。メッセージはそれぞれのトークンリング１１０内において独立したトークンリング１１０から、アクティブゲートウェイ１２０Ａで全順序で受信されるので、関連メッセージはアクティブゲートウェイ１２０Ａからトークンリング１１０に因果順序で提供されることが理解されよう。しかしながら、少なくともいくつかの実施形態において、トークンリング１１０間でのメッセージの因果順序配信は、トークンリング１１０においてメッセージが観察される順序が、他のトークンリング１１０で現れる順序と違うというメッセージの再順序付け状態を引き起こし得る。この種類のメッセージ再順序付けは、配信されるメッセージの１つまたは複数のタイプ、トークンリング１１０のノードのタイプおよびトークンリング１１０のトークンリングプロトコルのタイプなどにより、問題になることもあれば、ならないこともある。たとえば、分散管理アプリケーション内での状態変化通知（ＳＣＮ）メッセージの全順序は必要ではないことがあるが、一方でデータベースシステム内でのデータベース更新メッセージの全順序は必要であり得る。したがって、少なくともいくつかの実施形態において、１つまたは複数の再順序付けの仕組みが、異なるトークンリング１１０間での潜在的なメッセージの再順序付けに対処するために使用され得る。
【００３６】
アクティブゲートウェイ１２０Ａのプロセッサ１２２Ａに実行され得る方法の例示的な実施形態は、図２に関して示され説明される。本明細書で示され説明されている機能の他の組み合わせについては、アクティブゲートウェイ１２０Ａのプロセッサ１２２Ａが実行するように構成される１つまたは複数のプロセスとして実装され得ることが理解されよう。
【００３７】
スタンバイゲートウェイ１２０Ｓは、アクティブゲートウェイ１２０Ａが故障した場合でもメッセージが失われないことを保証するように構成される。スタンバイゲートウェイ１２０Ｓは、トークンリング１１０で発生するオリジナルメッセージと、アクティブゲートウェイ１２０Ａに生成されアクティブゲートウェイ１２０Ａによりトークンリング１１０に提供される関連メッセージとを含む、アクティブゲートウェイ１２０Ａに受信されたのと同じメッセージを受信する（どちらもすべてのトークンリング１１０の要素だからである）。
【００３８】
スタンバイゲートウェイ１２０Ｓは、トークンリングの１つからメッセージを受信する。スタンバイゲートウェイ１２０Ｓは、メッセージが（メッセージがそこを介して受信されたトークンリング１１０で発生する）オリジナルメッセージか、（メッセージを受信したトークンリング１１０以外のトークンリング１１０で発生し、アクティブゲートウェイ１２０Ａがそこでメッセージを受信したトークンリング１１０に提供されたオリジナルメッセージに基づいて、アクティブゲートウェイ１２０Ａによって生成された）関連メッセージかを決定する。スタンバイゲートウェイ１２０Ｓは、メッセージのバージョンがスタンバイゲートウェイ１２０Ｓにその時点で格納されているかどうかに基づいて、メッセージがオリジナルメッセージか関連メッセージかを決定し得る（つまり、メッセージのバージョンがその時点でスタンバイゲートウェイ１２０Ｓに格納されていない場合、メッセージはオリジナルメッセージと識別され、それ以外の場合は、メッセージは関連メッセージと識別される）。メッセージのバージョンがその時点でスタンバイゲートウェイ１２０Ｓに格納されているかどうかの決定は、メッセージのバージョンがスタンバイゲートウェイ１２０Ｓのメモリ１２４Ｓに記憶されているかどうかに基づいて実行されてもよい。
【００３９】
スタンバイゲートウェイ１２０Ｓは、トークンリング１１０を介してオリジナルメッセージを受信したことに応じて、オリジナルメッセージをメモリ１２４Ｓに記憶し（例、オリジナルメッセージをデータ構造１２６Ｓに追加する）、オリジナルメッセージを提供する１つまたは複数の他のトークンリング１１０を決定し（例、他のトークンリング１１０のすべて、または他のトークンリング１１０の適切なサブセット）、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０からの１つまたは複数の関連メッセージの受信を監視し、オリジナルメッセージに対応する１つまたは複数の関連メッセージが、オリジナルメッセージが提供される他のトークンリング１１０のそれぞれから、スタンバイゲートウェイ１２０Ｓで受信されたかどうかの決定に基づいて、オリジナルメッセージをメモリ１２４Ｓから削除する（例、オリジナルメッセージをデータ構造１２６Ｓから削除することによって）。スタンバイゲートウェイ１２０Ｓは、アクティブゲートウェイ１２０Ａと同じような仕方で、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を決定し得る（例、メッセージの１つまたは複数のメッセージタイプ、メッセージが発生するノード１１２のノードタイプなどを示し得るメッセージの１つまたは複数のアドレスフィールドに基づいて）。オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を識別することは、スタンバイゲートウェイ１２０Ｓがそこからオリジナルメッセージに関連付けられている１つまたは複数の関連メッセージを受信することを予期し得る、１つまたは複数の他のトークンリング１１０についての暗示を提供する。
【００４０】
スタンバイゲートウェイ１２０Ｓは、トークンリング１１０を介して関連メッセージを受信したことに応じて、関連メッセージが関連付けられているオリジナルメッセージを識別し、オリジナルメッセージに関連付けられているメッセージ追跡情報を更新する。メッセージ追跡情報は以下を含む。（１）オリジナルメッセージに対する、スタンバイゲートウェイ１２０Ｓが受信すると予期される１つまたは複数の関連メッセージのうちどれが実際にスタンバイゲートウェイ１２０Ｓによって受信されたかを示す情報（例、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０のリストが、スタンバイゲートウェイ１２０Ｓがオリジナルメッセージを受信したときに作成され、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０から関連メッセージが受信されたときにエントリをリストから削除する）、または（２）オリジナルメッセージに対する、スタンバイゲートウェイ１２０Ｓが受信すると予期される１つまたは複数の関連メッセージのうちどれがまだスタンバイゲートウェイ１２０Ｓによって受信されていないかを示す情報（例、オリジナルメッセージが提供される１つまたは複数のトークンリング１１０のリストが、スタンバイゲートウェイ１２０Ｓがオリジナルメッセージを受信したときに初期化されて空になり、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０から１つまたは複数の関連メッセージが受信されたときにエントリがリストに追加される）。スタンバイゲートウェイ１２０Ｓは、（１つまたは複数の関連メッセージを介して）メッセージが提供されると予期される１つまたは複数の他のトークンリング１１０のそれぞれからオリジナルメッセージが受信されたという決定に応じて、オリジナルメッセージのメッセージ追跡を終了する。
【００４１】
このように、アクティブゲートウェイ１２０Ａが故障した場合でもスタンバイゲートウェイ１２０Ｓがメッセージが失われないことを保証できるように、スタンバイゲートウェイ１２０Ｓは、例示的なマルチリングメッセージングシステム１００で生成されたメッセージ（つまり、トークンリング１１０のノード１１２に生成されたオリジナルメッセージとアクティブノード１２０Ａに生成された関連メッセージ）のうちどれが例示的なマルチリングメッセージングシステム１００内で十分に配信されたかについてのスナップショットを維持することができる。
【００４２】
スタンバイゲートウェイ１２０Ｓは、アクティブゲートウェイ１２０Ａが故障したとの決定に基づいて、アクティブゲートウェイ１２０Ａが故障した時点でどの関連メッセージが例示的なマルチリングメッセージングシステム１００内で依然として配信される必要があるかを決定する。スタンバイゲートウェイ１２０Ｓは、どの関連メッセージが依然として配信される必要があるかを、以下により決定する：（１）どのオリジナルメッセージが依然としてメモリ１２４Ｓに記憶されているかを決定する、および（２）依然としてメモリ１２４Ｓに記憶されているオリジナルメッセージのそれぞれに対して：オリジナルメッセージが提供されるが、スタンバイゲートウェイ１２０Ｓが１つまたは複数の他のトークンリング１１０からの関連する１つまたは複数の関連メッセージを依然としてそこを介して受信していない、１つまたは複数の他のトークンリング１１０を決定し、関連する１つまたは複数の関連メッセージを、オリジナルメッセージが提供されるが、スタンバイゲートウェイ１２０Ｓが１つまたは複数の他のトークンリング１１０からの関連する１つまたは複数の関連メッセージを依然としてそこを介して受信していない、１つまたは複数の他のトークンリング１１０に提供する。
【００４３】
スタンバイゲートウェイ１２０Ｓは、そのような関連メッセージ追跡機能と関連メッセージ配信機能をサポートするためにデータ構造１２６Ｓを使用し得る。たとえば、スタンバイゲートウェイ１２０Ｓは、（１）オリジナルメッセージが受信されると、関連する１つまたは複数の関連メッセージが提供される１つまたは複数の他のトークンリング１１０への１つまたは複数のエントリをデータ構造１２６Ｓにそれぞれ追加し（例、オリジナルメッセージが提供されるｘ個のトークンリング１１０へのｘ個のエントリにオリジナルメッセージがｘ個の関連メッセージを使用してｘ回格納される、またはオリジナルメッセージが提供されるｘ個のトークンリング１１０へのｘ個のエントリにオリジナルメッセージが一度格納され、ｘ個のエントリのそれぞれが、ｘ個の関連メッセージを使用して提供される格納されたオリジナルメッセージへのポインタを含む）、かつ（２）オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を介してオリジナルメッセージに関連付けられた１つまたは複数の関連メッセージが受信されると、データ構造１２６Ｓから１つまたは複数のエントリを削除し得る。同様に、たとえばスタンバイゲートウェイ１２０Ｓは、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０を介してオリジナルメッセージと関連付けられた１つまたは複数の関連メッセージが受信されると、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０へのエントリの追加に対してリバースプロセスを実行し得る。いずれにしても、スタンバイゲートウェイ１２０Ｓは例示的なマルチリングメッセージングシステム１００内で、関連メッセージの配信を監視し追跡することができる。データ構造１２６Ｓは、リンクされたリストとして、またはメッセージが提供される他のトークンリング１１０のそれぞれからの関連メッセージの受信を監視し追跡するのに適切な他の何らかのタイプのデータ構造を使用して実装され得ることが理解されよう。
【００４４】
このように、スタンバイゲートウェイ１２０Ｓは、各トークンリング１１０で発生する各メッセージに対してそれらの機能を実行することで、アクティブゲートウェイ１２０Ａが故障した場合でもメッセージが失われないことを保証することができる（例、アクティブゲートウェイ１２０Ａはオリジナルメッセージが発生されるトークンリング１１０の１つからメッセージを受信したが、オリジナルメッセージが提供される１つまたは複数の他のトークンリング１１０のそれぞれにオリジナルメッセージを提供する前に故障した、１つまたは複数のオリジナルメッセージのそれぞれに対して）。
【００４５】
スタンバイゲートウェイ１２０Ｓのプロセッサ１２２Ｓにより実行され得る方法の例示的な実施形態は、図３に関して示され説明される。本明細書で示され説明されている機能の他の組み合わせについては、スタンバイゲートウェイ１２０Ｓのプロセッサ１２２Ｓが実行するように構成される１つまたは複数のプロセスとして実装され得ることが理解されよう。
【００４６】
本明細書で記述されているように、例示的なマルチリングメッセージングシステム１００は、様々な種類の環境やコンテキストにおいて実装することができ、したがって、例示的なマルチリングメッセージングシステム１００の様々な要素の実装（例、ノード１１２、トークンリング１１０内のノード１１２間の通信、ゲートウェイ１２０など）は、環境やコンテキストの種類によって異なり得る。
【００４７】
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム１００は、クラウド環境でのアプリケーションをサポートするために使用し得る。少なくともいくつかの実施形態において、たとえば、ノード１１２は１つまたは複数のクラウドデータセンターでホストされる仮想マシン（ＶＭ）であることができ、トークンリング１１０内のノード１１２間の通信はインターネットプロトコル（ＩＰ）ベースのネットワーキングを使用して実行でき、ゲートウェイ１２０は１つまたは２つのクラウドデータセンターでホストされるＶＭであることができ（例、１つのデータセンターでの異なるホストにホストされる、地理的に分散したデータセンターにホストされる、など）、およびメッセージは状態変化通知を含むことができる。少なくともいくつかのそのような実施形態において、アプリケーションはキャリアグレードの通信アプリケーション、クラウドベースのファイルシステム、オンラインショッピングアプリケーションなどであり得る。第３世代無線アクセスネットワーク（ＲＡＮ）のクラウドベースの管理をサポートするように構成されたマルチリングメッセージングシステムの例示的な実施形態は、図５−図６に関して示され説明されている。
【００４８】
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム１００は、サーバーデバイス内で使用され得る。少なくともいくつかのそのような実施形態において、たとえば、ノード１１２はサーバーデバイスのサーバーブレードであることができ、トークンリング１１０内のノード１１２間の通信は内部通信バスを使用して実行でき、ゲートウェイ１２０はサーバーデバイスの専用カードであることができ、メッセージは状態変化通知を含むことができる。
【００４９】
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム１００は、データベースシステム内で使用し得る。少なくともいくつかのそのような実施形態において、たとえば、ノード１１２はデータベースシステムのそれぞれの部分の管理を担当するプロセッサであることができ、トークンリング１１０内のノード１１２間の通信は適切なタイプの通信パスを使用して実行でき（例、内部通信パス、ネットワーク上の通信パスなど）、ゲートウェイ１２０はデータベースシステムの専用プロセッサであることができ、メッセージはデータベース更新指示を含むことができる。
【００５０】
前述の例は、例示的なマルチリングメッセージングシステム１００の実施形態を実装し得る、様々な環境やコンテキストのうち少しの例を提供したに過ぎないことが理解されよう。
【００５１】
図２は、図１のトークンリングのうちの１つから発生するメッセージを処理するために図１のアクティブゲートウェイが使用する方法の例示的な実施形態を示している。主に連続して実行されるように示され説明されてはいるが、方法２００のステップのうち少なくとも一部は同時に実行されるか、図２に示されているのとは違う順序で実行され得ることが理解されよう。ステップ２０１で、方法２００が開始する。ステップ２１０で、トークンリングから発生するオリジナルメッセージがトークンリングを介して受信される。ステップ２２０で、オリジナルメッセージが提供される１つまたは複数の他のトークンリングが決定される。ステップ２３０で、オリジナルメッセージに基づいて、オリジナルメッセージが提供される１つまたは複数の他のトークンリングへの、１つまたは複数の関連メッセージが生成される（例、オリジナルメッセージのペイロードを含むか、オリジナルメッセージの１つまたは複数のコピーなどとして、オリジナルメッセージのペイロードに基づいて１つまたは複数の新しいペイロードを生成する）。ステップ２４０で、１つまたは複数の関連メッセージが、オリジナルメッセージが提供される１つまたは複数の他のトークンリングに提供される。ステップ２９９で、方法２００は終了する。図２の方法２００の動作は、図１と併せて読むことで、より理解し得ることが理解されよう。
【００５２】
図３は、図１のトークンリングのうちの１つから発生するメッセージを処理するために図１のスタンバイゲートウェイが使用する方法の例示的な実施形態を示している。主に連続して実行されるように示され説明されてはいるが、方法３００のステップのうち少なくとも一部は同時に実行されるか、図３に示されているのとは違う順序で実行され得ることが理解されよう。
【００５３】
ステップ３０１で、方法３００が開始する。
【００５４】
ステップ３１０で、オリジナルメッセージが発生するトークンリングを介してオリジナルメッセージが受信される。
【００５５】
ステップ３２０で、オリジナルメッセージは格納される。オリジナルメッセージは、スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障したときに必要であれば、１つまたは複数のトークンリングを介してオリジナルメッセージを配信するために、後で使用するために格納される。
【００５６】
ステップ３３０で、オリジナルメッセージが提供される１つまたは複数の他のトークンリングが決定される。１つまたは複数の他のトークンリングは、オリジナルメッセージの情報を１つまたは複数の他のトークンリングに配信するためにアクティブゲートウェイにより生成される１つまたは複数の関連メッセージをスタンバイゲートウェイがそこから受信すると予想される、１つまたは複数のトークンリングを表している。
【００５７】
ステップ３４０で、１つまたは複数の他のトークンリングからの１つまたは複数の関連メッセージの受信が監視される。監視は、１つまたは複数の関連メッセージが１つまたは複数の他のトークンリングのうちどれを介して受信されたかを追跡することを含む。１つまたは複数の関連メッセージが１つまたは複数の他のトークンリングのうちどれを介して受信されたかを追跡することは、データ構造を使用して実行し得る。
【００５８】
ステップ３５０で、オリジナルメッセージは１つまたは複数の他のトークンリングからの１つまたは複数の関連メッセージの受信を監視することに基づいて処理される。スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障する前に、スタンバイゲートウェイで１つまたは複数の関連メッセージのそれぞれが受信された場合、オリジナルメッセージはスタンバイゲートウェイから削除され、１つまたは複数の関連メッセージの監視は終了する。スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障する前に、スタンバイゲートウェイで１つまたは複数の関連メッセージのうち少なくとも１つが受信されなかった場合、オリジナルメッセージは、オリジナルメッセージが提供されるが関連メッセージがそこから受信されてはいない１つまたは複数の他のトークンリングのいずれかに提供される（例、アクティブゲートウェイと同じように、オリジナルメッセージと関連付けられた１つまたは複数の関連メッセージを使用して）。このように、オリジナルメッセージの完全で信頼できる配信は、アクティブゲートウェイが故障した際にも保証される。
【００５９】
ステップ３９９で、方法３００は終了する。
【００６０】
図４は、図１のトークンリングから発生するメッセージを処理するために図１のスタンバイゲートウェイが使用する方法の例示的な実施形態を示す図である。主に連続して実行されるように示され説明されてはいるが、方法４００のステップのうち少なくとも一部は同時に実行されるか、図４に示されているのとは違う順序で実行され得ることが理解されよう。
【００６１】
ステップ４０１で、方法４００が開始する。
【００６２】
ステップ４１０で、メッセージは複数のトークンリングを介して受信される。メッセージは、メッセージが発生するトークンリングを介して受信されたオリジナルメッセージ、または関連するオリジナルメッセージが発生するトークンリング以外のトークンリングを介して受信された関連メッセージを含み得る（例、スタンバイゲートウェイと関連付けられたアクティブゲートウェイにより、トークンリング上で配信される）。
【００６３】
ステップ４２０で、受信されたメッセージは追跡される。トークンリングを介して受信される各オリジナルメッセージに対して、オリジナルメッセージの追跡は、オリジナルメッセージが提供される１つまたは複数の他のトークンリングを決定することと、オリジナルメッセージが提供される１つまたは複数の他のトークンリングのうちどれからオリジナルメッセージが（例、オリジナルメッセージに基づいて生成された１つまたは複数の関連メッセージという形で）受信されたかを追跡することとを含む。トークンリングを介して受信される各関連メッセージに対して、関連メッセージの追跡は、関連メッセージが関連付けられているオリジナルメッセージを識別することと、そのオリジナルメッセージに対する関連メッセージがそのトークンリングを介して受信されたことをマーキングすることとを含む。少なくともいくつかの実施形態において、受信されたメッセージの追跡は、スタンバイゲートウェイのデータ構造を使用して実行され得る。
【００６４】
ステップ４３０で、アクティブゲートウェイが故障したかどうかが決定される。アクティブゲートウェイが故障していない場合、方法４００はステップ４１０に戻る（すなわち、方法４００は引き続きスタンバイゲートウェイを動作させ、トークンリングを介してメッセージを受信し、トークンリングを介して受信したメッセージを追跡する）。アクティブゲートウェイが故障した場合、方法４００はステップ４４０に進む。
【００６５】
ステップ４４０で、受信したメッセージの追跡に基づいて回復手順が開始される。回復手順は、１つまたは複数の関連メッセージを使用したオリジナルメッセージの配信が不完全（つまり、１つまたは複数の関連メッセージが、オリジナルメッセージが提供される１つまたは複数の他のトークンリングのそれぞれを介して受信されていない）な各オリジナルメッセージを識別することと、１つまたは複数の関連メッセージを使用したオリジナルメッセージの配信が不完全な各オリジナルメッセージに対して、オリジナルメッセージの配信を完成するような仕方で１つまたは複数の関連メッセージを使用して１つまたは複数の他のトークンリングへオリジナルメッセージを提供することとを含む。
【００６６】
ステップ４９９で、方法４００は終了する。
【００６７】
マルチリング高信頼メッセージング機能の様々な実施形態は、図５と図６に関して示され説明されているように、クラウドベースの無線アクセスネットワーク管理アプリケーションのマルチリングメッセージングシステムの例示的な実施形態を考慮することにより、よりよく理解し得る。
【００６８】
図５は、クラウドベースの無線アクセスネットワーク管理アプリケーションのための、マルチリングメッセージングシステムの例示的な実施形態を示している。
【００６９】
例示的なマルチリングメッセージングシステム５００は、ワイヤレスユーザーデバイスにセルラーアクセスを提供する多数のセルサイトを含む、無線アクセスネットワーク（ＲＡＮ）の管理に関連する状態変化通知（ＳＣＮ）メッセージの交換をサポートする（例、ユーザー端末（ＵＥ）にセルラーアクセスを提供する多数のＮｏｄｅＢｓ）。ＳＣＮメッセージは主に、ＲＡＮの無線ネットワークコントローラー（ＲＮＣ）のクラウドベース実装を提供するために使用される、仮想マシン（ＶＭ）の状態を伝達するために使用される。ＶＭは、セル管理機能（ＣＭＵ  ＶＭが提供）、ユーザー端末管理機能（ＵＭＵ  ＶＭが提供）およびプロトコル変換機能（ＰＣ  ＶＭが提供）を含む、ＲＮＣの特定の機能を提供する。たとえば、ＳＣＮメッセージは、セルサイトイベントに関連するメッセージ（例、セルサイトのダウン、セルサイトの回復）、セルサイトイベントの影響を受けるワイヤレスユーザーデバイスに関するメッセージ、セルサイトとワイヤレスコアネットワークとの間のトラフィックの移送をサポートするバックホール機器に関連するメッセージなどであり得る。
【００７０】
例示的なマルチリングメッセージングシステム５００は以下のような３つのトークンリング５１０を含む：セルサイトの状態を監視し制御するように構成された複数のＣＭＵノード５１２１（ＣＭＵ  ＶＭのそれぞれを表す）から成るＣＭＵトークンリング５１０１、セルサイトにサポートされるワイヤレスユーザーデバイスを監視し制御するように構成される複数のＵＭＵノード５１２２（ＵＭＵ  ＶＭのそれぞれを表す）から成るＵＭＵトークンリング５１０２、セルサイトとコアネットワークコンポーネントをホストするクラウドネットワークおよびパブリックネットワーク内でプライベートネットワークを分離するネットワークゲートウェイとして動作するように構成された、複数のＰＣノード５１２３（ＰＣ  ＶＭのそれぞれを表す）から成るＰＣトークンリング５１０３。ＣＭＵトークンリング５１０１、ＵＭＵトークンリング５１０２およびＰＣトークンリング５１０３は集合的にトークンリング５１０と称されることがあり、同様にＣＭＵノード５１２１、ＵＭＵノード５１２２およびＰＣノード５１０３は集合的にノード５１２と称されることがある。
【００７１】
例示的なマルチリングメッセージングシステム５００はまた、アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓとを含み、どちらも各トークンリング５１０に含まれる。アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓはまた、それぞれＶＭを使用して実装される。アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓは高信頼メッセージングサービスをトークンリング５１０のすべてのノード５１２に提供する。たとえば、例示的なマルチリングメッセージングシステム５００は、例示的なマルチリングメッセージングシステム１００に関して示され説明されている通りに動作するよう構成され得る。例示的なマルチリングメッセージングシステム５００の動作は、図６に関して示され説明されているように、例示的なマルチリングメッセージングシステム５００のための例示的なメッセージフローを考慮することにより、よりよく理解できる。
【００７２】
図６は、図５の例示的なマルチリングメッセージングシステムのための例示的なメッセージフローを示している。主に連続して実行されるように示され説明されてはいるが、例示的なメッセージフロー６００のステップのうち少なくとも一部は同時に実行されるか、図６に示されているのとは違う順序で実行され得ることが理解されよう。
【００７３】
図６に示されているように、図５の各要素は例示的なメッセージフローに含まれている（つまり、ＣＭＵノードを持つトークンリング５１０１（ＣＭＵトークンリング５１０１と表示されている）、ＵＭＵノードを持つトークンリング５１０２（ＵＭＵトークンリング５１０２と表示されている）、ＰＣノードを持つトークンリング５１０３（ＰＣトークンリング５１０３と表示されている）、アクティブゲートウェイ５２０Ａ、およびスタンバイゲートウェイ５２０Ｓ）。
【００７４】
ステップ６０２で、ＣＭＵトークンリング５１０１はＣＭＵトークンリング５１０１のノードＣ３がダウンしたことを示すメッセージ（Ｃ３  ＤＯＷＮと表示されている）を送信する。Ｃ３  ＤＯＷＮメッセージは、アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓの両方に受信される。
【００７５】
ステップ６０４で、スタンバイゲートウェイ５２０Ｓは、Ｃ３  ＤＯＷＮメッセージがＵＭＵトークンリング５１０２とＰＣトークンリング５１０３の両方に配信されるべきかどうかを決定する。スタンバイゲートウェイ５２０Ｓはそのデータ構造に、Ｃ３  ＤＯＷＮメッセージがＵＭＵトークンリング５１０２（エントリＣ３  ＤＯＷＮ−＞ＵＭＵと表示されている）とＰＣトークンリング５１０３（Ｃ３  ＤＯＷＮ−＞ＰＣと表示されている）の両方に配信されるべきことを示す２つのエントリを追加する。
【００７６】
ステップ６０６で、アクティブゲートウェイ５２０Ａは、Ｃ３  ＤＯＷＮメッセージがＵＭＵトークンリング５１０２に配信されるべきという決定に基づいて、Ｃ３  ＤＯＷＮメッセージをＵＭＵトークンリング５１０２に伝搬する。
【００７７】
ステップ６０８で、スタンバイゲートウェイ５２０Ｓは、ＵＭＵトークンリング５１０２を介してＣ３  ＤＯＷＮメッセージを受信し、ＵＭＵトークンリング５１０２を介してＣ３  ＤＯＷＮメッセージの受信を反映するようにそのデータ構造を更新する（実例、データ構造からＣ３  ＤＯＷＮ−＞ＵＭＵエントリを削除し、Ｃ３  ＤＯＷＮメッセージに対してデータ構造のＣ３  ＤＯＷＮ−＞ＰＣエントリのみを残す）。
【００７８】
ステップ６１０で、アクティブゲートウェイ５２０Ａは、Ｃ３  ＤＯＷＮメッセージがＰＣトークンリング５１０３にも配信されるべきという決定に基づいて、Ｃ３  ＤＯＷＮメッセージをＰＣトークンリング５１０３に伝搬する。
【００７９】
ステップ６１２で、スタンバイゲートウェイ５２０Ｓは、ＰＣトークンリング５１０３を介してＣ３  ＤＯＷＮメッセージを受信し、ＰＣトークンリング５１０３を介してＣ３  ＤＯＷＮメッセージの受信を反映するようにそのデータ構造を更新する（実例、データ構造がＣ３  ＤＯＷＮメッセージに対するエントリを何も含まないように、データ構造からＣ３  ＤＯＷＮ−＞ＰＣエントリを削除する）。
【００８０】
ステップ６１４で、ＣＭＵトークンリング５１０１は、ＣＭＵトークンリング５１０１のノードＣ３が回復したことを示すメッセージ（Ｃ３  ＵＰと表示されている）を送信する。Ｃ３  ＵＰメッセージは、アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓの両方に受信される。
【００８１】
ステップ６１６で、スタンバイゲートウェイ５２０Ｓは、Ｃ３  ＵＰメッセージがＵＭＵトークンリング５１０２とＰＣトークンリング５１０３の両方に配信されるべきかどうかを決定する。スタンバイゲートウェイ５２０Ｓはそのデータ構造に、Ｃ３  ＵＰメッセージがＵＭＵトークンリング５１０２（エントリＣ３  ＵＰ−＞ＵＭＵと表示されている）とＰＣトークンリング５１０３（Ｃ３  ＵＰ−＞ＰＣと表示されている）の両方に配信されるべきことを示す２つのエントリを追加する。
【００８２】
ステップ６１８で、アクティブゲートウェイ５２０Ａは、Ｃ３  ＵＰメッセージがＵＭＵトークンリング５１０２に配信されるべきという決定に基づいて、Ｃ３  ＵＰメッセージをＵＭＵトークンリング５１０２に伝搬する。
【００８３】
ステップ６２０で、スタンバイゲートウェイ５２０Ｓは、ＵＭＵトークンリング５１０２を介してＣ３  ＵＰメッセージを受信し、ＵＭＵトークンリング５１０２を介してＣ３  ＵＰメッセージの受信を反映するようにそのデータ構造を更新する（実例、データ構造からＣ３  ＵＰ−＞ＵＭＵエントリを削除し、Ｃ３  ＵＰメッセージに対してデータ構造のＣ３  ＵＰ−＞ＰＣエントリのみを残す）。
【００８４】
ステップ６２２で、アクティブゲートウェイ５２０Ａは故障する。この時点で、スタンバイゲートウェイ５２０Ｓのデータ構造は依然としてＣ３  ＵＰメッセージに対してＣ３  ＵＰ−＞ＰＣエントリを含む。
【００８５】
ステップ６２４で、ＣＭＵトークンリング５１０１、ＵＭＵトークンリング５１０２、ＰＣトークンリング５１０３およびスタンバイゲートウェイ５２０Ｓはアクティブゲートウェイ５２０Ａが故障したことを検出する。
【００８６】
ステップ６２６で、スタンバイゲートウェイ５２０Ｓが例示的なマルチリングメッセージングシステム５００のアクティブゲートウェイとして動作を開始できるように、またアクティブゲートウェイ５２０Ａが故障から復旧した後にアクティブゲートウェイ５２０Ａが例示的なマルチリングメッセージングシステム５００の予備のゲートウェイとして動作を開始できるように、ゲートウェイ切り替えプロセスが開始される。
【００８７】
ステップ６２８で、スタンバイゲートウェイ５２０Ｓは、アクティブゲートウェイ５２０Ａが故障する前に伝搬すべきだったがそうされなかったメッセージの集合を表すそのデータ構造に基づいて、メッセージ回復プロセスを開始する。例示的なメッセージフロー６００で、スタンバイゲートウェイ５２０Ｓのデータ構造は依然として、アクティブゲートウェイ５２０Ａが故障前にＰＣトークンリング５１０３を介してＣ３  ＵＰメッセージを伝搬しなかったことをスタンバイゲートウェイ５２０Ｓに示す、Ｃ３  ＵＰメッセージに対するＣ３  ＵＰ−＞ＰＣエントリを含む。
【００８８】
ステップ６３０で、スタンバイゲートウェイ５２０Ｓは、Ｃ３  ＵＰメッセージが依然としてＰＣトークンリング５１０３に配信されるべきという、そのデータ構造からの決定に基づいて、Ｃ３  ＵＰメッセージをＰＣトークンリング５１０３に伝搬する。
【００８９】
ステップ６３２で、スタンバイゲートウェイ５２０ＳはＰＣトークンリング５１０３を介してＣ３  ＵＰメッセージの伝搬を反映するため、そのデータ構造を更新する（実例、データ構造がＣ３  ＤＯＷＮメッセージに対するエントリを何も含まないように、データ構造からＣ３  ＵＰ−＞ＰＣエントリを削除する）。ステップ６３２で示されているように、スタンバイゲートウェイ５２０Ｓのデータ構造は現時点で空である（すなわち、メッセージ回復プロセスが完了）。
【００９０】
ステップ６３４で、スタンバイゲートウェイ５２０Ｓはメッセージ回復プロセス完了メッセージをアクティブゲートウェイ５２０Ａに送信する（上述の通り、アクティブゲートウェイは現時点で例示的なマルチリングメッセージングシステム５００の予備のゲートウェイとして動作する）。例示的なマルチリングメッセージングシステム５００は、ステップ６０２−６２０に関して示され説明されているように引き続き機能するが、例示的なマルチリングメッセージングシステム５００のノード５１２に対して信頼できるメッセージ配信をサポートするため、アクティブゲートウェイ５２０Ａとスタンバイゲートウェイ５２０Ｓのアクティブ／予備の役割は逆転している。
【００９１】
本明細書で示されているように、例示的なメッセージフロー６００と関連付けられた例示的なマルチリングメッセージングシステム５００は、トークンリング５１０内ではメッセージの全順序配信をサポートし得るが、トークンリング５１０間ではメッセージの因果順序配信のみをサポートでき、その結果トークンリング５１０で観察されるメッセージの順序が、他のトークンリング５１０で現れる順序と違うというメッセージの再順序付け状態を引き起こし得る。たとえば、ＵＭＵトークンリング５１０２でのイベントＵ１の発生は、ＰＣトークンリング５１０３でのイベントＰ１の発生に先立って生じ得るが、メッセージの報告イベントＵ１とＰ１は、ＣＭＵトークンリング５１０１において逆の順序で観察され得る（つまり、Ｐ１、Ｕ１）。例示的なマルチリングメッセージングシステム５００で配信されるこの種類のメッセージ（つまり、ＳＣＮメッセージ）に対するこの種類の再順序付けの影響はないはずだが、例示的なマルチリングメッセージングシステム１００が他の種類のネットワーク、システム、環境などで実装される実施形態においては、この種類の再順序付けが問題となることもある。したがって、少なくともいくつかの実施形態において、メッセージの潜在的な再順序付けに対処するために、１つまたは複数のメッセージ再順序付けの仕組みが使用され得る。
【００９２】
トークンリングへのメッセージの伝搬についての本明細書の言及は、メッセージがトークンリングによって（つまり、トークンリングの１つまたは複数のノードによって）受信されるように、トークンリングへメッセージを送信するデバイスが実行する様々な動作を含むと見なし得ることが理解されよう。同様に、トークンリングへのメッセージの提供についての本明細書の言及は、メッセージがトークンリングによって受信されるように、トークンリングへメッセージを伝搬または送信するデバイスが実行する様々な動作を含むと見なし得ることが理解されよう。
【００９３】
マルチリングメッセージング機能を使用することで、トークンリングプロトコル（例、ＴＯＴＥＭ）のほとんどの利点を大規模なシステムに適用できることが理解されよう（例、本明細書で示され説明されているような複数のトークンリングの使用をサポートしない、既存のメッセージングシステムと比較して）。たとえば、マルチリングメッセージング機能の様々な実施形態により、アプリケーションは以下から利点を得ることができる：メッセージの１つまたは複数の安全な配信（例、すべてのノードがメッセージを受信するか、どのノードもメッセージを受信しないかのどちらか）、因果順序でのメッセージの配信（例、ノードアップ通知が因果ノードダウン通知に先立つことはできない）、ロバスト性（例、システムは、アクティブゲートウェイが故障した際にスタンバイゲートウェイに切り替えることも含め、ノードが故障した際にもサービスを提供し続ける）、標準的なベストエフォートメッセージングサービスの継続的な使用（例、カスタムの相互接続技術は必要ない）、改善されたパフォーマンス（例、大規模なシステムが可能なだけではなく、複数の小規模なリングを使用することで、トークン循環時間が大幅に減少し、メッセージの遅延が有意に減少する）。
【００９４】
明瞭化のために省略されているが、少なくともいくつかの実施形態において、どちらのゲートウェイもオリジナルメッセージが生成されたオリジナルトークンリング上でオリジナルメッセージを見て、オリジナルメッセージが配信される他のトークンリング上で重複するいかなるメッセージも見ることを保証するために、調整機能が提供されることが理解されよう。少なくともいくつかの実施形態において、アクティブゲートウェイとスタンバイゲートウェイとの間の調整の確立に先立ってスタンバイゲートウェイがデータ構造にメッセージをポピュレートを開始しないことを保証するため、スタンバイゲートウェイによりブロードキャスト調整メッセージがすべてのトークンリングに対して送信され、スタンバイが調整メッセージを各トークンリング上で受信すると、スタンバイゲートウェイはトークンリングを介して受信したそれぞれのメッセージの記録を始める。この調整機能は、スタンバイゲートウェイが初期化されたときか、故障したゲートウェイが回復（例、以前のアクティブゲートウェイが回復し、スタンバイゲートウェイとしての役割を担う）した後に使用され得ることが理解されよう。
【００９５】
アクティブゲートウェイが一組の機能（アクティブゲートウェイの機能）を実行するように構成され、スタンバイゲートウェイが他の一組の機能（スタンバイゲートウェイの機能）を実行するように構成されている実施形態に関して主に示され記述されているが、少なくともいくつかの実施形態において、アクティブゲートウェイとスタンバイゲートウェイのそれぞれが両方とも、アクティブゲートウェイ機能とスタンバイゲートウェイ機能を実行するように構成され得ることが理解されよう（例、ゲートウェイが接続されるトークンリング内またはトークンリング間でのメッセージの配信を保証するために、ゲートウェイは必要に応じてアクティブ状態とスタンバイ状態を切り替え得る）。
【００９６】
ゲートウェイが接続されるトークンリングのノードに加えて、ゲートウェイ（すなわち、アクティブゲートウェイとスタンバイゲートウェイ）が専用ノードである実施形態に関して主に示され説明されているが、少なくともいくつかの実施形態において、ゲートウェイの機能はすべてのトークンリングの要素である任意のノードにより提供され得ることが理解されよう（例、すべてのトークンリングの要素である既存のノード）。
【００９７】
トークンリングがアクティブゲートウェイとスタンバイゲートウェイによって相互接続されている実施形態に関して主に示され説明されているが、少なくともいくつかの実施形態において、トークンリングは１つの（アクティブ）ゲートウェイのみにより相互接続されることができ、スタンバイゲートウェイは省略され得ることが理解されよう。１つのゲートウェイのみがトークンリングを相互接続する場合、トークンリング間のメッセージの因果順序配信は依然として保証され得ることが理解されよう。
【００９８】
メッセージングシステムのそれぞれのトークンリングが使用される例示的な実施形態に関して主に示され説明されているが、メッセージングシステムは１つまたは複数の付加的なリングを含み得ることが理解されよう。したがって、少なくともいくつかの実施形態において、本明細書の各リングへの言及は、メッセージングシステムのリングのサブセット（またはより一般的に、複数のリングのサブセット）への言及と見なし得る。同様に、所与のトークンリングの様々な特徴が所与のトークンリングのノードのそれぞれに適用される例示的な実施形態に関して主に示され説明されているが、１つまたは複数のトークンリングのノードのグループは１つまたは複数の異なる特徴を含み得ることが理解されよう。
【００９９】
図７は、本明細書で説明する機能を実行するのに適切な、コンピュータの上位レベルブロック図を示している。
【０１００】
コンピュータ７００は、プロセッサ７０２（例、中央処理装置（ＣＰＵ）または他の適切なプロセッサ）とメモリ７０４（例、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）など）とを含む。
【０１０１】
コンピュータ７００はまた、連携モジュール／プロセス７０５を含み得る。連携プロセス７０５は、本明細書で説明している機能を実装するためにメモリ７０４に読み込まれ、プロセッサ７０２に実行されることができ、したがって、連携プロセス７０５（関連するデータ構造を含む）はコンピュータの可読記憶媒体（例、ＲＡＭメモリ、磁気または光学ドライブやディスケットなど）に記憶され得る。
【０１０２】
コンピュータ７００はまた、１つまたは複数の入力／出力デバイス７０６を含み得る（例、ユーザー入力デバイス（キーボード、キーパッド、マウスなど）、ユーザー出力デバイス（ディスプレイ、スピーカーなど）、入力ポート、出力ポート、受信器、送信機、１つまたは複数のストレージデバイス（例、テープドライブ、フロッピー（登録商標）ドライブ、ハードディスクドライブ、コンパクトディスクドライブなど）など、およびこれらの様々な組み合わせ）。
【０１０３】
図７に示されているコンピュータ７００は、本明細書で示されている機能要素または本明細書で示されている機能要素の一部を実装するのに適切な、汎用のアーキテクチャと機能性を提供していることが理解されよう。たとえば、コンピュータ７００は、１つのノード１１２、１つのノード１１２の一部、アクティブゲートウェイ１２０Ａ、アクティブゲートウェイ１２０Ａの一部、スタンバイゲートウェイ１２０Ｓ、スタンバイゲートウェイ１２０Ｓの一部などを実装するのに適切な、汎用のアーキテクチャと機能性を提供する。
【０１０４】
本明細書で示され説明されている機能は、ハードウェアにより、またはソフトウェアとハードウェアの組み合わせにより実装され得ることが理解されよう（例、汎用コンピュータを使用して、特殊用途のコンピュータを提供するために汎用コンピュータでソフトウェアを実行することにより、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）または他の均等のハードウェアを使用して、およびこれらの様々な組み合わせ）。
【０１０５】
本明細書で説明されている少なくともいくつかの方法のステップは、ハードウェア内で実装され得る（例、様々な方法のステップを実行するためにプロセッサと連携する回路として）ことが理解されよう。本明細書で説明されている機能／要素の一部は、コンピュータの命令がコンピュータに処理される際、本明細書で説明されている方法や技術が呼び出されるかあるいは提供されるように、コンピュータの動作を適応させるコンピュータプログラム製品として実装され得る。本発明の方法を呼び出す命令は、固定媒体または取り外し可能媒体に格納され、ブロードキャストのデータストリームまたは他の信号担持媒体を介して送信され、または命令に従って動作するコンピューティングデバイスのメモリ内に記憶され得る。
【０１０６】
本明細書で使用されている「または」という用語は、別段の指示（例、「または他に」または「または別の方法で」）がない限り、非排他的な「または」を意味することが理解されよう。
【０１０７】
様々な実施形態の様態は請求項で定められる。様々な実施形態のそれらのおよび他の様態は、以下の番号付けされた条項により定められる：
【０１０８】
１．  装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第１のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第２のトークンリングを決定することと、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成することと、
関連メッセージを第２のトークンリングに伝搬することと
を行うように構成された、装置。
【０１０９】
２．  第１のトークンリングが第１のノードタイプの第１の複数のノードを含み、第２のトークンリングが第１のノードタイプとは異なる第２のノードタイプの第２の複数のノードを含む、条項１に記載の装置。
【０１１０】
３．  プロセッサが第１のトークンリングプロトコルを使用して第１のトークンリングと通信するように構成され、プロセッサが第１のトークンリングプロトコルまたは第２のトークンリングプロトコルを使用して第２のトークンリングと通信するように構成された、条項１に記載の装置。
【０１１１】
４．  プロセッサが、メッセージのメッセージタイプ、第１のトークンリングの第１の複数のノードのノードタイプまたは第２のトークンリングの第２の複数のノードのノードタイプのうち少なくとも１つに基づいて、オリジナルメッセージが提供される第２のトークンリングを決定するように構成された、条項１に記載の装置。
【０１１２】
５．  プロセッサが、第１のトークンリング内でオリジナルメッセージの全順序配信をサポートするように構成された、条項１に記載の装置。
【０１１３】
６．  プロセッサが、第１のトークンリングと第２のトークンリングとの間で関連メッセージの因果順序配信をサポートするように構成された、条項１に記載の装置。
【０１１４】
７．  オリジナルメッセージが、第１のトークンリング内での配信のための情報のセットを含み、関連メッセージがオリジナルメッセージの情報のセットを含む、条項１に記載の装置。
【０１１５】
８．  オリジナルメッセージがヘッダー情報を含み、プロセッサが、
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、条項１に記載の装置。
【０１１６】
９．  プロセッサが、ネットワーク通信、１つまたは複数の通信アプリケーションプログラミングインターフェース（ＡＰＩ）、または第１のトークンリングへの第１の物理インターフェースおよび第２のトークンリングへの第２の物理インターフェースのうち少なくとも１つを使用して、第１のトークンリングおよび第２のトークンリングと通信するように構成された、条項１に記載の装置。
【０１１７】
１０．  方法であって、
第１のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第２のトークンリングを決定し、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成し、
関連メッセージを第２のトークンリングに伝搬する、
ためにプロセッサとメモリを使用すること
を含む、方法。
【０１１８】
１１．  装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第１のトークンリングからオリジナルメッセージを受信することと、
オリジナルメッセージをメモリに記憶することと、
１つまたは複数の他のトークンリングのそれぞれからのオリジナルメッセージに関連付けられた１つまたは複数の関連メッセージの受信を監視することと
を行うように構成された、装置。
【０１１９】
１２．  プロセッサが、オリジナルメッセージの１つまたは複数のアドレスフィールドに基づいて１つまたは複数の他のトークンリングを識別するように構成された、条項１１に記載の装置。
【０１２０】
１３．  プロセッサが、
１つまたは複数の他のトークンリングからの１つまたは複数の関連メッセージの受信に応じて、メモリからメッセージを削除するように構成された、条項１１に記載の装置。
【０１２１】
１４．  プロセッサが、
１つまたは複数の関連メッセージのうち少なくとも１つが受信される前に、アクティブゲートウェイの故障の検出に基づいて、
少なくとも１つの関連メッセージがそこを介して受信されていない、１つまたは複数の他のトークンリングのうち少なくとも１つに対するオリジナルメッセージの配信を開始するように構成された、条項１１に記載の装置。
【０１２２】
１５．  プロセッサが、少なくとも１つの関連メッセージがそこを介して受信されていない、１つまたは複数の他のトークンリングのうち少なくとも１つに対して、
オリジナルメッセージに基づいて、１つまたは複数の他のトークンリングの少なくとも１つのそれぞれに対して、少なくとも１つの関連メッセージを生成し、
１つまたは複数の他のトークンリングの少なくとも１つのそれぞれに対して、少なくとも１つの関連メッセージを伝搬することにより、
オリジナルメッセージを配信するように構成された、条項１４に記載の装置。
【０１２３】
１６．  プロセッサが、１つまたは複数の関連メッセージの受信が監視されている１つまたは複数の他のトークンリングのそれぞれに関連付けられた１つまたは複数のエントリを含むデータ構造に基づいて、１つまたは複数の他のトークンリングからの１つまたは複数の関連メッセージの受信を監視するように構成された、条項１１に記載の装置。
【０１２４】
１７．  プロセッサが、
１つまたは複数の他のトークンリングを識別することと、
１つまたは複数の関連メッセージの受信が監視されている１つまたは複数の他のトークンリングに関連付けられたデータ構造の１つまたは複数のエントリを生成することと
を行うように構成された、条項１６に記載の装置。
【０１２５】
１８．  プロセッサが、
１つまたは複数の他のトークンリングのそれぞれから１つまたは複数の関連メッセージの１つを受信することと、
１つまたは複数の関連メッセージのうちの１つがそこから受信された、１つまたは複数の他のトークンリングの１つに関連付けられた１つまたは複数のエントリのうちの１つをデータ構造から削除することと
を行うように構成された、条項１６に記載の装置。
【０１２６】
１９．  プロセッサが、
アクティブゲートウェイの故障の検出に基づいて、
１つまたは複数のエントリのいずれかがデータ構造に残っているかを決定することと、
１つまたは複数のエントリのうち少なくとも１つがデータ構造に残っているという決定に基づいて、データ構造に残っている１つまたは複数のエントリのうち少なくとも１つに関連付けられた１つまたは複数の他のトークンリングのうち少なくとも１つへのオリジナルメッセージの配信を開始することと
を行うように構成された、条項１６に記載の装置。
【０１２７】
２０．  プロセッサが、
アクティブゲートウェイの故障の検出に基づいて、
第１のトークンリングを介して第２のオリジナルメッセージを受信することと、
第２のオリジナルメッセージが提供される第２のトークンリングを決定することと、
第２のオリジナルメッセージに基づいて第２のトークンリングへの対応する第２の関連メッセージを生成することと、
第２の関連メッセージを第２のトークンリングに伝搬することと
を行うように構成された、条項１１に記載の装置。
【０１２８】
上記の説明は、本明細書で提示されている特徴の様々な実施形態を対象としているが、その基本的な範囲から逸脱することなく、他の実施形態が考案され得ることが理解されよう。
【図１】
2016515343.tif 000003
【図２】
2016515343.tif 000004
【図３】
2016515343.tif 000005
【図４】
2016515343.tif 000006
【図５】
2016515343.tif 000007
【図６】
2016515343.tif 000008
【図７】
2016515343.tif 000009
【手続補正書】
【提出日】平成27年10月28日(2015.10.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
プロセッサと、プロセッサと通信可能に接続されたメモリとを含み、プロセッサが、
第１のトークンリングと少なくとも２つの他のトークンリングとを含むトークンリングのセットを介して通信をサポートすることと、
第１のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第２のトークンリングを少なくとも２つの他のトークンリングのうちから決定することと、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成することと、
関連メッセージを第２のトークンリングに伝搬することと
を行うように構成された、装置。
【請求項２】
第１のトークンリングが第１のノードタイプの第１の複数のノードを含み、第２のトークンリングが第１のノードタイプとは異なる第２のノードタイプの第２の複数のノードを含む、請求項１に記載の装置。
【請求項３】
プロセッサが第１のトークンリングプロトコルを使用して第１のトークンリングと通信するように構成され、プロセッサが第１のトークンリングプロトコルまたは第２のトークンリングプロトコルを使用して第２のトークンリングと通信するように構成された、請求項１に記載の装置。
【請求項４】
プロセッサが、メッセージのメッセージタイプ、第１のトークンリングの第１の複数のノードのノードタイプまたは第２のトークンリングの第２の複数のノードのノードタイプのうち少なくとも１つに基づいて、オリジナルメッセージが提供される第２のトークンリングを決定するように構成された、請求項１に記載の装置。
【請求項５】
プロセッサが、第１のトークンリング内でのオリジナルメッセージの全順序配信または第１のトークンリングと第２のトークンリングとの間の関連メッセージの因果順序配信のうち、少なくとも１つをサポートするように構成された、請求項１に記載の装置。
【請求項６】
オリジナルメッセージが、第１のトークンリング内での配信のための情報のセットを含み、関連メッセージがオリジナルメッセージの情報のセットを含む、請求項１に記載の装置。
【請求項７】
オリジナルメッセージがヘッダー情報を含み、プロセッサが、
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、
請求項１に記載の装置。
【請求項８】
プロセッサが、ネットワーク通信、１つまたは複数の通信アプリケーションプログラミングインターフェース（ＡＰＩ）、または１つまたは複数のトークンリングへの１つまたは複数の物理インターフェースのうち少なくとも１つを使用して、トークンリングを介する通信をサポートするように構成された、請求項１に記載の装置。
【請求項９】
方法であって、
第１のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第２のトークンリングを少なくとも２つの他のトークンリングのうちから決定し、
オリジナルメッセージに基づいて第２のトークンリングへの関連メッセージを生成し、関連メッセージを第２のトークンリングに伝搬する、
ために第１のトークンリングと少なくとも２つの他のトークンリングとを含むトークンリングのセットを介して通信をサポートするように構成されたプロセッサを使用すること
を含む、方法。
【請求項１０】
装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが
第１のトークンリングを介してオリジナルメッセージを受信することであって、オリジナルメッセージが、オリジナルメッセージに基づいて生成された１つまたは複数の関連メッセージに関連付けられており、１つまたは複数の関連メッセージが、１つまたは複数の他のトークンリングそれぞれに対して生成された、受信することと、
１つまたは複数の関連メッセージがそのために生成された、１つまたは複数の他のトークンリングを、オリジナルメッセージに基づいて決定することと、
１つまたは複数の他のトークンリングそれぞれからの１つまたは複数の関連メッセージの受信を監視することと
を行うように構成された、装置。
【国際調査報告】
2016515343.tif 000010
2016515343.tif 000011