JP2016515343A - マルチリング高信頼メッセージングシステム - Google Patents
マルチリング高信頼メッセージングシステム Download PDFInfo
- Publication number
- JP2016515343A JP2016515343A JP2015561856A JP2015561856A JP2016515343A JP 2016515343 A JP2016515343 A JP 2016515343A JP 2015561856 A JP2015561856 A JP 2015561856A JP 2015561856 A JP2015561856 A JP 2015561856A JP 2016515343 A JP2016515343 A JP 2016515343A
- Authority
- JP
- Japan
- Prior art keywords
- token ring
- message
- token
- ring
- original message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/423—Loop networks with centralised control, e.g. polling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/02—Protocol performance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/437—Ring fault isolation or reconfiguration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L2012/421—Interconnected ring systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
マルチリング高信頼メッセージングシステムは、トークンリングと通信するように構成されたアクティブゲートウェイと、トークンリングと通信するように構成されたスタンバイゲートウェイとを含むゲートウェイのペアを介して、複数のトークンリングを相互接続することにより形成される。アクティブゲートウェイは第1のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成し、第2のトークンリングに関連メッセージを伝搬する。アクティブゲートウェイは、トークンリング内でメッセージの全順序配信を、トークンリング間で因果順序配信をサポートする。スタンバイゲートウェイは、アクティブゲートウェイが故障した際にメッセージが失われるのを防ぐように、トークンリングを介して受信したオリジナルメッセージと関連メッセージを監視する。
Description
本開示は全体としてメッセージングシステムに関するものであり、限定されないがより具体的には、メッセージングシステムにおけるメッセージの交換の処理に関する。
多くの種類のシステムにおいて、メッセージの交換により、システムの構成要素がその時点でのシステムの状況について素早く見解を一致させることが必要である。それらのシステムのうちいくつかでは、メッセージの交換はメッセージルーターソリューション(例、RabbitMQ)を使用して、またはトークンリングプロトコル(例、Spread Toolkitやcorosyncが実装するTOTEMプロトコル)を使用することにより提供される。しかし、不利なことに、メッセージルーターソリューションはシステムのサイズが大きくなるにつれてボトルネックに直面することがしばしばあり、トークンリングプロトコルはシステムサイズに合わせて拡張することが難しい。
従来技術の様々な欠陥は、マルチリング高信頼性メッセージング機能に関連する実施形態により解決され得る。
一実施形態において、装置は、プロセッサと、プロセッサと通信可能に接続されたメモリとを含み、プロセッサは、第1のトークンリングを介してオリジナルメッセージを受信することと、オリジナルメッセージが提供される第2のトークンリングを決定することと、オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成することと、関連メッセージを第2のトークンリングに伝搬することとを行うように構成される。
一実施形態において、方法は、第1のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが提供される第2のトークンリングを決定し、オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成し、関連メッセージを第2のトークンリングに伝搬するためにプロセッサとメモリを使用することを含む。
一実施形態において、装置は、プロセッサと、プロセッサと通信可能に接続されたメモリとを含み、プロセッサは、第1のトークンリングからオリジナルメッセージを受信し、オリジナルメッセージをメモリに記憶し、1つまたは複数のトークンリングそれぞれからのオリジナルメッセージと関連付けられた1つまたは複数の関連メッセージの受信を監視するように構成される。
一実施形態において、方法は、第1のトークンリングからオリジナルメッセージを受信し、オリジナルメッセージをメモリに記憶し、1つまたは複数のトークンリングそれぞれからのオリジナルメッセージと関連付けられた1つまたは複数の関連メッセージの受信を監視するためにプロセッサとメモリを使用することを含む。
本明細書の教示は、以下の詳細な説明を付随する図面と併せて考慮することで容易に理解することができる。
理解しやすくするため、複数の図に共通する同一の要素を指定するために可能な限り同一の符号が使用されている。
全体として、本明細書ではマルチリング高信頼メッセージング機能が提供される。少なくともいくつかの実施形態において、マルチリング高信頼メッセージング機能は、本明細書でマルチリング高信頼メッセージングシステムと称される高信頼メッセージングシステムを実装するために、複数の相互接続されたトークンリングの使用をサポートし得る。高信頼メッセージングシステムを実装するために相互接続される複数のトークンリングは、使用可能なトークンリングのサブセットであり得ることが理解されよう(例、マルチリング高信頼メッセージング機能が提供されるシステムにおける、トークンリングのサブセット)。
少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、複数のトークンリングのそれぞれと通信するように構成されたアクティブゲートウェイと、複数のトークンリングのそれぞれと通信するようにやはり構成されたスタンバイゲートウェイとを含むゲートウェイのペアを介して、複数のトークンリングを相互接続することにより形成し得る。ここで、複数のトークンリングは選択された複数のトークンリングであり得ることが理解されよう(例、マルチリング高信頼メッセージングシステムを提供するために使用される、あるいは使用され得るトークンリングのセットから選択されたトークンリングのサブセット)。
少なくともいくつかの実施形態において、アクティブゲートウェイは、複数のトークンリングのうち第1のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが対象とする1つまたは複数の他のトークンリングに1つまたは複数の関連メッセージを伝搬するように構成される。少なくともいくつかの実施形態において、アクティブゲートウェイは、複数のトークンリングのうち第1のトークンリングを介してオリジナルメッセージを受信し、オリジナルメッセージが提供される1つまたは複数の他のトークンリングを決定し、オリジナルメッセージが提供される1つまたは複数の他のトークンリングへの1つまたは複数の関連メッセージを生成し、1つまたは複数の他のトークンリングに1つまたは複数の関連メッセージを伝搬するように構成される。
少なくともいくつかの実施形態において、スタンバイゲートウェイは、アクティブゲートウェイが故障した際にメッセージが失われるのを防ぐように、トークンリングを介して受信したオリジナルメッセージと関連メッセージを監視するように構成される。少なくともいくつかの実施形態において、スタンバイゲートウェイは、複数のトークンリングのうち第1のトークンリングから第1のトークンリングのノードが生成したオリジナルメッセージを受信し、オリジナルメッセージを格納し、複数のトークンリングのうち1つまたは複数の他のトークンリングからの、オリジナルメッセージと関連付けられた1つまたは複数の関連メッセージの受信を監視するように構成される。
少なくともいくつかの実施形態において、各トークンリング内のメッセージ配信は、各トークンリング内で全順序メッセージ配信が提供されるように実行されるが、トークンリング間で全順序メッセージ配信をサポートする必要がないよう、トークンリング間のメッセージ配信は緩和される(例、トークンリング間では、メッセージの因果順序配信のみをサポートする)。全体として、全順序によるメッセージの配信は、メッセージが対象とする受信者(およびメッセージの送信者)のそれぞれに同じ順番で配信されることを意味することが理解されよう。全体として、因果順序によるメッセージの配信は、メッセージ「a」がメッセージ「b」よりも先に送信された場合、メッセージ「a」はメッセージ「b」よりも先に配信されることを意味することが理解されよう。
少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、マルチリング高信頼メッセージングシステムのノードがそれぞれのノードタイプに基づいてグループ化されるように構築される(例、マルチリング高信頼メッセージングシステムのノードの各ノードタイプについて、ノードは、それぞれのノードタイプの1つまたは複数のトークンリングにグループ分けされる)。少なくともいくつかの実施形態において、ノードタイプに基づいてノードをトークンリングにグループ分けすることは、(それぞれのトークンリング内の)同じノードタイプのノード間でメッセージの全順序配信を確実にサポートするために使用することができる。一方で、(トークンリング間の)異なるノードタイプのノード間ではメッセージの因果順序配信のみがサポートされればよい。言い換えると、少なくともいくつかの実施形態において、マルチリング高信頼メッセージングシステムは、システムのサイズが大きくなるにつれ、システムがシステム内で生成されたメッセージのサブセットにのみ関心があるノードのグループを含む可能性も大きくなることが予期されるという事実を活用し得る。それで、ノードのグループをシステム内で生成されたメッセージの特定のタイプのために保持し、また、メッセージの全順序配信はノードのグループ内でのみ要求され、メッセージの因果順序配信はノードのグループ間でサポートされるようにシステム全体のメッセージの全順序配信に対する要求を緩和することができる。
少なくともいくつかの実施形態において、メッセージ配信にトークンリングを使用することに伴う様々な利点を保持しつつ、マルチリング高信頼メッセージングシステムは水平拡張性を向上させる(例、高信頼メッセージ配信、高速な反応時間など)。水平拡張性は、サポートされうるノードの数という点で、トークンリングネットワークの既存の限界を克服することが理解されよう(例、特定のタイプのトークンリングは最大でMノードしか持つことができず、メッセージ遅延や他の基準などのパフォーマンスを考慮に入れると、Mよりも少ないノードの使用にさらに限定されることもある)。たとえば、Mノードに限定されるトークンリングネットワークにおいて、N個のトークンリングを含むマルチリング高信頼メッセージングシステムは、合計NxMノードをサポートすることができる(これは、マルチリング高信頼メッセージングシステムを使用しない場合にサポートされるノードよりもはるかに大きい数であり得る)。
マルチリング高信頼メッセージング機能の様々な実施形態については、図1に関して示され説明されているように、例示的なマルチリングメッセージングシステムを参照することで、よりよく理解できる。
図1は、アクティブゲートウェイおよびスタンバイゲートウェイを含むゲートウェイのペアと複数のリングとを含む、例示的なマルチリングメッセージングシステムを示している。
例示的なマルチリングメッセージングシステム100は、複数のトークンリング1101−110N(集合的に、トークンリング110)と、アクティブゲートウェイ120Aおよびスタンバイゲートウェイ120Sを含むゲートウェイのペア(集合的に、ゲートウェイ120)とを含む。ゲートウェイ120はそれぞれ、各トークンリング110と通信可能に接続されている。
トークンリング110はそれぞれ、複数のノード1121−112M(集合的に、ノード112)を含む。所与のトークンリング110内で、トークンリング110のノード112はリング構造で通信可能に接続されている。トークンリング110のノード112は、ノード110のノードタイプに基づいて構築されてもよい。少なくともいくつかの実施形態において、トークンリング110および関連ノード112は、例示的なマルチリングメッセージングシステム100内でサポートされるN個のノードタイプに対して同じノードタイプを持つノード112がグループ化され、それぞれトークンリング1101−110Nを形成するように構築され得る(つまり、トークンリング1101のノード1121は第1のノードタイプのノード、トークンリング1102のノード1122は第2のノードタイプのノード、など)。ノード112のノードタイプとトークンリング110との間の一対一の関係で主に示され説明されているが、トークンリング110と関連ノード112は他の配置を使用して構築され得ることが理解されよう(例、複数のノードタイプが1つのトークンリング110内で結合され得る、所与のノードタイプのノードが複数のトークンリング110に構築され得るなど、およびこれらの様々な組み合わせ)。少なくともいくつかの実施形態において、所与のノードタイプのノード112に対してメッセージの全順序配信が要求されない場合、所与のノードタイプのノード112は、複数のトークンリング110をまたがって分散され得るだけであることが理解されよう(例、ノードタイプに対するそれぞれのトークンリング110のノード112間では、メッセージの配信は因果順序でのみ提供され得る)。したがって、トークンリング110のノード112の数は、トークンリング110によって異なることが理解されよう。
トークンリング110は、ノード112のそれぞれのセットを含む。所与のトークンリング110内で、トークンリング110のノード112は、メッセージを生成し、トークンリング110の他のノード112に生成されたメッセージを伝搬し、トークンリング110の他のノード112から受信したメッセージを処理し、トークンリング110の他のノード112から受信したメッセージを転送するなどするように構成される。全体として、トークンリング110のノード112によって生成されたメッセージは、そのトークンリング110から発生したと見なされる(また、そのトークンリング110のオリジナルメッセージとして参照され得る)。所与のトークンリング110において、トークンリング110のノード112は、そのトークンリング110のノード112間でのメッセージの交換を促進するトークンリングプロトコルをサポートするように構成される。たとえば、所与のトークンリング110の各ノード112は、そのトークンリング110内でのメッセージの配信に使用されるトークンリングプロトコルのシングルインスタンスをサポートし得る。所与のトークンリング110内で、トークンリング110のノード112は、トークンリング110から発生するメッセージに対して、トークンリング110内のメッセージの全順序配信をサポートするように構成される。例示的なマルチリングメッセージングシステム100は、トークンリング内での全順序メッセージ配信をサポートする1つまたは複数のトークンリングプロトコルの使用をサポートし得る(例、TOTEMプロトコル、corosyncが実装するTOTEMプロトコル、Spreadプロトコルや他の適切なタイプのトークンリングプロトコル)。少なくともいくつかの実施形態において、たとえば、各トークンリング110において同じトークンリングプロトコルが使用され得る。少なくともいくつかの実施形態において、たとえば、各トークンリング110は複数のトークンリングプロトコルのうち1つを使用するが、使用されるトークンリングプロトコルはトークンリング110によって異なるなど、複数のトークンリングプロトコルがサポートされ得る。
トークンリング110はまた、各ゲートウェイ120を含む。ゲートウェイ120のそれぞれは、各トークンリング110とインターフェースで接続するように構成される。より具体的には、各ゲートウェイ120が各トークンリング110で交換される各メッセージを受信するように、ゲートウェイ120のそれぞれは各トークンリング110のリング構造内に含まれる。この意味において、各ゲートウェイ120は各トークンリング110上で「ノード」と見なされる(とはいえ、トークンリング110内のゲートウェイ120の存在は、トークンリング110のノード112に対しては透過的である)。トークンリング110間でのメッセージの交換を可能にするようにトークンリング110を統合するゲートウェイ120を除いて、トークンリング110は互いに独立して動作する。アクティブゲートウェイ120Aとスタンバイゲートウェイ120Sは、アクティブゲートウェイ120Aとスタンバイゲートウェイ120Sの両方が同時に故障しないことを保証する(あるいは少なくとも可能性を高める)ために、非アフィニティルールに基づいて配備してもよい(例、地理的多様性やプラットフォームの多様性を使用するなど)。
アクティブゲートウェイ120Aは、プロセッサ122Aと、プロセッサ122Aに通信可能に接続されたメモリ124Aとを含む。本明細書で示され説明されているように、メモリ124Aは、プロセッサ122Aに実行されたときにプロセッサ122Aにアクティブゲートウェイ120Aの様々な機能を実行させる、メッセージ交換プログラム125Aを記憶する。メモリ124Aはまた、アクティブゲートウェイ120Aの故障に応じてスタンバイゲートウェイ120Sがアクティブの役割を担うという故障から回復した後に、アクティブゲートウェイ120Aがスタンバイの役割として機能する場合に、アクティブゲートウェイ120Aによって使用されるデータ構造126A(例、リンクされたリストや他の適切なタイプのデータ構造)を記憶し得る。
スタンバイゲートウェイ120Sは、プロセッサ122Sと、プロセッサ122Sに通信可能に接続されたメモリ124Sとを含む。本明細書で示され説明されているように、メモリ124Sは、プロセッサ122Sに実行されたときにプロセッサ122Sにスタンバイゲートウェイ120Sの様々な機能を実行させる、メッセージ交換プログラム125Sを記憶する。本明細書で示され説明されているように、メモリ124Sはまた、スタンバイゲートウェイ120Sの様々な機能を実行するために使用する、データ構造126S(例、リンクされたリストや他の適切なタイプのデータ構造)を記憶し得る。
ゲートウェイ120のプロセッサ122のそれぞれは、各トークンリング110とインターフェースで接続されるように構成される。このようなインターフェースは、例示的なメッセージングシステム100が使用される環境やコンテキストによって異なる適切な仕方で提供され得る(例、TCP/IPネットワーキング、1つまたは複数の通信アプリケーションプログラミングインターフェース(API)、またはトークンリング1101−110Nのそれぞれに対応するN個の専用物理インターフェースなどを使用するか、これらの様々な組み合わせ)。プロセッサ122のそれぞれは、トークンリング110との通信をサポートする1つまたは複数のトークンリングプロトコルの1つまたは複数のインスタンスを実行するように構成される(例、トークンリング110に使用される、異なるトークンリングプロトコルの数やタイプに応じて)。たとえば、各トークンリング110がcorosyncを実行している場合、各プロセッサ122は、関連ゲートウェイ120とトークンリング1101−110Nのそれぞれとの通信(例、N個のcorosyncクローズドプロセスグループ(CPG)APIを使用する)のためにN個のcorosyncインスタンスを実行し、トークンリング1101−110Nのそれぞれにおいて複数の同時リング操作をサポートするために変更されたcorosyncコアを実行するなどするように構成され得る。
スタンバイゲートウェイ120Sのデータ構造126Sは、各トークンリング110へのメッセージの順番を保存するように構成される。データ構造126Sは、トークンリング110から発生するメッセージに対して、スタンバイゲートウェイ120Sで受信したトークンリング110からのメッセージを格納するために使用され得る。データ構造126Sは、メッセージが受信されるトークンリング110から発生しないメッセージに対して、スタンバイゲートウェイ120Sで受信したトークンリング110からのメッセージを追跡するために使用され得る(すなわち、アクティブゲートウェイ120Aによって生成されトークンリングに提供されるメッセージ)。上記のように、データ構造126Sは、リンクされたリストとして、またはメッセージの格納と追跡のための使用に適切な他のタイプのデータ構造として実装されるか、それを含むことができる。
したがって、明瞭化のために、ゲートウェイ120のプロセッサ122とトークンリング110との間のインターフェースは、ゲートウェイ120とそれぞれのトークンリング110との間の通信パスのそれぞれのセットとして示される。
アクティブゲートウェイ120Aとスタンバイゲートウェイ120Sの動作は、それぞれアクティブ状態にあるかスタンバイ状態にあるかにより異なる。
アクティブゲートウェイ120Aは、メッセージが発生される1つのトークンリング110からのオリジナルメッセージを受信するように構成される(上述の通り、メッセージはそのトークンリング110上の1つのノード112によって生成されたものである)。
アクティブゲートウェイ110Aは、オリジナルメッセージが発生される1つのトークンリング内でオリジナルメッセージの全順序配信を維持するような仕方で、オリジナルメッセージが発生される1つのトークンリング110のトークンリングプロトコルを使用して、オリジナルメッセージが発生される1つのトークンリング110を介して、オリジナルメッセージを伝搬するように構成される。このことは、トークンリングの要素であるノードがトークンリング上の他のノードによって生成されたメッセージを受信する際の、トークンリングの例示的な動作であることが理解されよう。
アクティブゲートウェイ120Aはまた、オリジナルメッセージが例示的なマルチリングメッセージングシステム100内で適切に配信されるように、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110にオリジナルメッセージを提供するように構成される。1つのトークンリング110を介して受信されるオリジナルメッセージを1つまたは複数の他のトークンリング110に提供することについての言及は、オリジナルメッセージ110が伝達する情報が1つまたは複数の他のトークンリング110の他のノード112へ配信されることを示していることが理解されよう。
アクティブゲートウェイ120Aは、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を決定するように構成される。オリジナルメッセージが提供される1つまたは複数の他のトークンリング110は、他のトークリング110のすべて、または他のトークンリング110のサブセットを含み得る。アクティブゲートウェイ120Aは、オリジナルメッセージの1つまたは複数のメッセージタイプやオリジナルメッセージが発生されるノード112のノードタイプなどを示し得るオリジナルメッセージの1つまたは複数のアドレスフィールドに基づいて、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を決定し得る。たとえば、例示的なマルチリングメッセージングシステム100が4つのトークンリング1101−1104(すなわち、N=4)を含み、トークンリング1101のノード1121から発生しアクティブゲートウェイ120Aで受信されたオリジナルメッセージがトークンリング1102と1103のノード1122とノード1123にとってのみ必要で、トークンリング1104のノード1124にとって必要ではない場合、アクティブゲートウェイ120Aはオリジナルメッセージをトークンリング1102と1103のみに提供しトークンリング1104には提供しないことにより、例示的なマルチメッセージングシステム100内で交換される必要のあるメッセージの数を減らすことができる。各トークンリング110内で生成されたすべてのオリジナルメッセージがすべての他のトークンリング110に配信される場合、オリジナルメッセージが提供される他のトークンリング110を決定することは不必要であり得ることが理解されよう(例、アクティブゲートウェイ120Aが、各オリジナルメッセージが完全に配信されなければならないことを単に知っている場合)。
アクティブゲートウェイ120Aは、オリジナルメッセージに基づいて生成される1つまたは複数の関連メッセージを使用して、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110にオリジナルメッセージを提供するように構成され得る。全体として、オリジナルメッセージに対応する関連メッセージは、オリジナルメッセージが伝達するのと同じ情報を伝達する。したがって、オリジナルメッセージに対応する関連メッセージは、少なくともオリジナルメッセージのペイロードと同じ情報を含むペイロードを持ち(例、関連メッセージのペイロードがオリジナルメッセージのペイロードと同一であるような同じ形式、または関連メッセージのペイロードとオリジナルメッセージのペイロードは異なるが同じ情報を伝達するような異なる形式)、場合によってはオリジナルメッセージの複製であり得る。たとえば、トークンリング110が異なるトークンリングプロトコルを使用する場合、オリジナルメッセージと1つまたは複数の関連メッセージは同一のペイロードと異なるヘッダーを持ち得る。たとえば、トークンリング110が同一のトークンリングプロトコルを使用し同じノードタイプのノード112を持つ場合、1つまたは複数の関連メッセージはオリジナルメッセージと同一であり得る。アクティブゲートウェイ120Aは、何らかの適切な方法で1つまたは複数の関連メッセージを生成するように構成され得る(例、オリジナルメッセージに基づいて生成される1つまたは複数の関連メッセージの各インスタンスのためにメモリからオリジナルメッセージを取得する、オリジナルメッセージの1つまたは複数のコピーを生成する、必要に応じて1つまたは複数の関連メッセージのヘッダー情報を変更するなど、およびこれらの様々な組み合わせ)。したがって、例示的なマルチリングメッセージングシステム100内での情報の配信を追跡するために、トークンリング110上のオリジナルメッセージ(そのトークンリング110のノード112に生成されるメッセージ)とトークンリング110上の関連メッセージ(そのトークンリング110上で伝搬のためにアクティブゲートウェイ120Aに生成されるメッセージ)には差異があることが理解されよう。また、「メッセージ」という語はオリジナルメッセージおよび関連メッセージを参照する際に使用されることも理解されよう。
アクティブゲートウェイ120Aは、オリジナルメッセージが対象とするトークンリング110(つまり、オリジナルメッセージが生成されたトークンリング110の1つと、オリジナルメッセージが対象とする1つまたは複数の他のトークンリング110)間で、オリジナルメッセージと関連メッセージの因果順序配信を維持する仕方でオリジナルメッセージが提供される1つまたは複数の他のトークンリング110に、1つまたは複数の関連メッセージを提供するように構成され得る。アクティブゲートウェイ120Aは、オリジナルメッセージが対象とするトークンリング110間でオリジナルメッセージと関連メッセージの全順序配信を維持する仕方で、1つまたは複数の関連メッセージを1つまたは複数の他のトークンリング110に提供する必要が必ずしもあるわけではない。メッセージはそれぞれのトークンリング110内において独立したトークンリング110から、アクティブゲートウェイ120Aで全順序で受信されるので、関連メッセージはアクティブゲートウェイ120Aからトークンリング110に因果順序で提供されることが理解されよう。しかしながら、少なくともいくつかの実施形態において、トークンリング110間でのメッセージの因果順序配信は、トークンリング110においてメッセージが観察される順序が、他のトークンリング110で現れる順序と違うというメッセージの再順序付け状態を引き起こし得る。この種類のメッセージ再順序付けは、配信されるメッセージの1つまたは複数のタイプ、トークンリング110のノードのタイプおよびトークンリング110のトークンリングプロトコルのタイプなどにより、問題になることもあれば、ならないこともある。たとえば、分散管理アプリケーション内での状態変化通知(SCN)メッセージの全順序は必要ではないことがあるが、一方でデータベースシステム内でのデータベース更新メッセージの全順序は必要であり得る。したがって、少なくともいくつかの実施形態において、1つまたは複数の再順序付けの仕組みが、異なるトークンリング110間での潜在的なメッセージの再順序付けに対処するために使用され得る。
アクティブゲートウェイ120Aのプロセッサ122Aに実行され得る方法の例示的な実施形態は、図2に関して示され説明される。本明細書で示され説明されている機能の他の組み合わせについては、アクティブゲートウェイ120Aのプロセッサ122Aが実行するように構成される1つまたは複数のプロセスとして実装され得ることが理解されよう。
スタンバイゲートウェイ120Sは、アクティブゲートウェイ120Aが故障した場合でもメッセージが失われないことを保証するように構成される。スタンバイゲートウェイ120Sは、トークンリング110で発生するオリジナルメッセージと、アクティブゲートウェイ120Aに生成されアクティブゲートウェイ120Aによりトークンリング110に提供される関連メッセージとを含む、アクティブゲートウェイ120Aに受信されたのと同じメッセージを受信する(どちらもすべてのトークンリング110の要素だからである)。
スタンバイゲートウェイ120Sは、トークンリングの1つからメッセージを受信する。スタンバイゲートウェイ120Sは、メッセージが(メッセージがそこを介して受信されたトークンリング110で発生する)オリジナルメッセージか、(メッセージを受信したトークンリング110以外のトークンリング110で発生し、アクティブゲートウェイ120Aがそこでメッセージを受信したトークンリング110に提供されたオリジナルメッセージに基づいて、アクティブゲートウェイ120Aによって生成された)関連メッセージかを決定する。スタンバイゲートウェイ120Sは、メッセージのバージョンがスタンバイゲートウェイ120Sにその時点で格納されているかどうかに基づいて、メッセージがオリジナルメッセージか関連メッセージかを決定し得る(つまり、メッセージのバージョンがその時点でスタンバイゲートウェイ120Sに格納されていない場合、メッセージはオリジナルメッセージと識別され、それ以外の場合は、メッセージは関連メッセージと識別される)。メッセージのバージョンがその時点でスタンバイゲートウェイ120Sに格納されているかどうかの決定は、メッセージのバージョンがスタンバイゲートウェイ120Sのメモリ124Sに記憶されているかどうかに基づいて実行されてもよい。
スタンバイゲートウェイ120Sは、トークンリング110を介してオリジナルメッセージを受信したことに応じて、オリジナルメッセージをメモリ124Sに記憶し(例、オリジナルメッセージをデータ構造126Sに追加する)、オリジナルメッセージを提供する1つまたは複数の他のトークンリング110を決定し(例、他のトークンリング110のすべて、または他のトークンリング110の適切なサブセット)、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110からの1つまたは複数の関連メッセージの受信を監視し、オリジナルメッセージに対応する1つまたは複数の関連メッセージが、オリジナルメッセージが提供される他のトークンリング110のそれぞれから、スタンバイゲートウェイ120Sで受信されたかどうかの決定に基づいて、オリジナルメッセージをメモリ124Sから削除する(例、オリジナルメッセージをデータ構造126Sから削除することによって)。スタンバイゲートウェイ120Sは、アクティブゲートウェイ120Aと同じような仕方で、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を決定し得る(例、メッセージの1つまたは複数のメッセージタイプ、メッセージが発生するノード112のノードタイプなどを示し得るメッセージの1つまたは複数のアドレスフィールドに基づいて)。オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を識別することは、スタンバイゲートウェイ120Sがそこからオリジナルメッセージに関連付けられている1つまたは複数の関連メッセージを受信することを予期し得る、1つまたは複数の他のトークンリング110についての暗示を提供する。
スタンバイゲートウェイ120Sは、トークンリング110を介して関連メッセージを受信したことに応じて、関連メッセージが関連付けられているオリジナルメッセージを識別し、オリジナルメッセージに関連付けられているメッセージ追跡情報を更新する。メッセージ追跡情報は以下を含む。(1)オリジナルメッセージに対する、スタンバイゲートウェイ120Sが受信すると予期される1つまたは複数の関連メッセージのうちどれが実際にスタンバイゲートウェイ120Sによって受信されたかを示す情報(例、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110のリストが、スタンバイゲートウェイ120Sがオリジナルメッセージを受信したときに作成され、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110から関連メッセージが受信されたときにエントリをリストから削除する)、または(2)オリジナルメッセージに対する、スタンバイゲートウェイ120Sが受信すると予期される1つまたは複数の関連メッセージのうちどれがまだスタンバイゲートウェイ120Sによって受信されていないかを示す情報(例、オリジナルメッセージが提供される1つまたは複数のトークンリング110のリストが、スタンバイゲートウェイ120Sがオリジナルメッセージを受信したときに初期化されて空になり、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110から1つまたは複数の関連メッセージが受信されたときにエントリがリストに追加される)。スタンバイゲートウェイ120Sは、(1つまたは複数の関連メッセージを介して)メッセージが提供されると予期される1つまたは複数の他のトークンリング110のそれぞれからオリジナルメッセージが受信されたという決定に応じて、オリジナルメッセージのメッセージ追跡を終了する。
このように、アクティブゲートウェイ120Aが故障した場合でもスタンバイゲートウェイ120Sがメッセージが失われないことを保証できるように、スタンバイゲートウェイ120Sは、例示的なマルチリングメッセージングシステム100で生成されたメッセージ(つまり、トークンリング110のノード112に生成されたオリジナルメッセージとアクティブノード120Aに生成された関連メッセージ)のうちどれが例示的なマルチリングメッセージングシステム100内で十分に配信されたかについてのスナップショットを維持することができる。
スタンバイゲートウェイ120Sは、アクティブゲートウェイ120Aが故障したとの決定に基づいて、アクティブゲートウェイ120Aが故障した時点でどの関連メッセージが例示的なマルチリングメッセージングシステム100内で依然として配信される必要があるかを決定する。スタンバイゲートウェイ120Sは、どの関連メッセージが依然として配信される必要があるかを、以下により決定する:(1)どのオリジナルメッセージが依然としてメモリ124Sに記憶されているかを決定する、および(2)依然としてメモリ124Sに記憶されているオリジナルメッセージのそれぞれに対して:オリジナルメッセージが提供されるが、スタンバイゲートウェイ120Sが1つまたは複数の他のトークンリング110からの関連する1つまたは複数の関連メッセージを依然としてそこを介して受信していない、1つまたは複数の他のトークンリング110を決定し、関連する1つまたは複数の関連メッセージを、オリジナルメッセージが提供されるが、スタンバイゲートウェイ120Sが1つまたは複数の他のトークンリング110からの関連する1つまたは複数の関連メッセージを依然としてそこを介して受信していない、1つまたは複数の他のトークンリング110に提供する。
スタンバイゲートウェイ120Sは、そのような関連メッセージ追跡機能と関連メッセージ配信機能をサポートするためにデータ構造126Sを使用し得る。たとえば、スタンバイゲートウェイ120Sは、(1)オリジナルメッセージが受信されると、関連する1つまたは複数の関連メッセージが提供される1つまたは複数の他のトークンリング110への1つまたは複数のエントリをデータ構造126Sにそれぞれ追加し(例、オリジナルメッセージが提供されるx個のトークンリング110へのx個のエントリにオリジナルメッセージがx個の関連メッセージを使用してx回格納される、またはオリジナルメッセージが提供されるx個のトークンリング110へのx個のエントリにオリジナルメッセージが一度格納され、x個のエントリのそれぞれが、x個の関連メッセージを使用して提供される格納されたオリジナルメッセージへのポインタを含む)、かつ(2)オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を介してオリジナルメッセージに関連付けられた1つまたは複数の関連メッセージが受信されると、データ構造126Sから1つまたは複数のエントリを削除し得る。同様に、たとえばスタンバイゲートウェイ120Sは、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110を介してオリジナルメッセージと関連付けられた1つまたは複数の関連メッセージが受信されると、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110へのエントリの追加に対してリバースプロセスを実行し得る。いずれにしても、スタンバイゲートウェイ120Sは例示的なマルチリングメッセージングシステム100内で、関連メッセージの配信を監視し追跡することができる。データ構造126Sは、リンクされたリストとして、またはメッセージが提供される他のトークンリング110のそれぞれからの関連メッセージの受信を監視し追跡するのに適切な他の何らかのタイプのデータ構造を使用して実装され得ることが理解されよう。
このように、スタンバイゲートウェイ120Sは、各トークンリング110で発生する各メッセージに対してそれらの機能を実行することで、アクティブゲートウェイ120Aが故障した場合でもメッセージが失われないことを保証することができる(例、アクティブゲートウェイ120Aはオリジナルメッセージが発生されるトークンリング110の1つからメッセージを受信したが、オリジナルメッセージが提供される1つまたは複数の他のトークンリング110のそれぞれにオリジナルメッセージを提供する前に故障した、1つまたは複数のオリジナルメッセージのそれぞれに対して)。
スタンバイゲートウェイ120Sのプロセッサ122Sにより実行され得る方法の例示的な実施形態は、図3に関して示され説明される。本明細書で示され説明されている機能の他の組み合わせについては、スタンバイゲートウェイ120Sのプロセッサ122Sが実行するように構成される1つまたは複数のプロセスとして実装され得ることが理解されよう。
本明細書で記述されているように、例示的なマルチリングメッセージングシステム100は、様々な種類の環境やコンテキストにおいて実装することができ、したがって、例示的なマルチリングメッセージングシステム100の様々な要素の実装(例、ノード112、トークンリング110内のノード112間の通信、ゲートウェイ120など)は、環境やコンテキストの種類によって異なり得る。
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム100は、クラウド環境でのアプリケーションをサポートするために使用し得る。少なくともいくつかの実施形態において、たとえば、ノード112は1つまたは複数のクラウドデータセンターでホストされる仮想マシン(VM)であることができ、トークンリング110内のノード112間の通信はインターネットプロトコル(IP)ベースのネットワーキングを使用して実行でき、ゲートウェイ120は1つまたは2つのクラウドデータセンターでホストされるVMであることができ(例、1つのデータセンターでの異なるホストにホストされる、地理的に分散したデータセンターにホストされる、など)、およびメッセージは状態変化通知を含むことができる。少なくともいくつかのそのような実施形態において、アプリケーションはキャリアグレードの通信アプリケーション、クラウドベースのファイルシステム、オンラインショッピングアプリケーションなどであり得る。第3世代無線アクセスネットワーク(RAN)のクラウドベースの管理をサポートするように構成されたマルチリングメッセージングシステムの例示的な実施形態は、図5−図6に関して示され説明されている。
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム100は、サーバーデバイス内で使用され得る。少なくともいくつかのそのような実施形態において、たとえば、ノード112はサーバーデバイスのサーバーブレードであることができ、トークンリング110内のノード112間の通信は内部通信バスを使用して実行でき、ゲートウェイ120はサーバーデバイスの専用カードであることができ、メッセージは状態変化通知を含むことができる。
少なくともいくつかの実施形態において、たとえば、例示的なマルチリングメッセージングシステム100は、データベースシステム内で使用し得る。少なくともいくつかのそのような実施形態において、たとえば、ノード112はデータベースシステムのそれぞれの部分の管理を担当するプロセッサであることができ、トークンリング110内のノード112間の通信は適切なタイプの通信パスを使用して実行でき(例、内部通信パス、ネットワーク上の通信パスなど)、ゲートウェイ120はデータベースシステムの専用プロセッサであることができ、メッセージはデータベース更新指示を含むことができる。
前述の例は、例示的なマルチリングメッセージングシステム100の実施形態を実装し得る、様々な環境やコンテキストのうち少しの例を提供したに過ぎないことが理解されよう。
図2は、図1のトークンリングのうちの1つから発生するメッセージを処理するために図1のアクティブゲートウェイが使用する方法の例示的な実施形態を示している。主に連続して実行されるように示され説明されてはいるが、方法200のステップのうち少なくとも一部は同時に実行されるか、図2に示されているのとは違う順序で実行され得ることが理解されよう。ステップ201で、方法200が開始する。ステップ210で、トークンリングから発生するオリジナルメッセージがトークンリングを介して受信される。ステップ220で、オリジナルメッセージが提供される1つまたは複数の他のトークンリングが決定される。ステップ230で、オリジナルメッセージに基づいて、オリジナルメッセージが提供される1つまたは複数の他のトークンリングへの、1つまたは複数の関連メッセージが生成される(例、オリジナルメッセージのペイロードを含むか、オリジナルメッセージの1つまたは複数のコピーなどとして、オリジナルメッセージのペイロードに基づいて1つまたは複数の新しいペイロードを生成する)。ステップ240で、1つまたは複数の関連メッセージが、オリジナルメッセージが提供される1つまたは複数の他のトークンリングに提供される。ステップ299で、方法200は終了する。図2の方法200の動作は、図1と併せて読むことで、より理解し得ることが理解されよう。
図3は、図1のトークンリングのうちの1つから発生するメッセージを処理するために図1のスタンバイゲートウェイが使用する方法の例示的な実施形態を示している。主に連続して実行されるように示され説明されてはいるが、方法300のステップのうち少なくとも一部は同時に実行されるか、図3に示されているのとは違う順序で実行され得ることが理解されよう。
ステップ301で、方法300が開始する。
ステップ310で、オリジナルメッセージが発生するトークンリングを介してオリジナルメッセージが受信される。
ステップ320で、オリジナルメッセージは格納される。オリジナルメッセージは、スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障したときに必要であれば、1つまたは複数のトークンリングを介してオリジナルメッセージを配信するために、後で使用するために格納される。
ステップ330で、オリジナルメッセージが提供される1つまたは複数の他のトークンリングが決定される。1つまたは複数の他のトークンリングは、オリジナルメッセージの情報を1つまたは複数の他のトークンリングに配信するためにアクティブゲートウェイにより生成される1つまたは複数の関連メッセージをスタンバイゲートウェイがそこから受信すると予想される、1つまたは複数のトークンリングを表している。
ステップ340で、1つまたは複数の他のトークンリングからの1つまたは複数の関連メッセージの受信が監視される。監視は、1つまたは複数の関連メッセージが1つまたは複数の他のトークンリングのうちどれを介して受信されたかを追跡することを含む。1つまたは複数の関連メッセージが1つまたは複数の他のトークンリングのうちどれを介して受信されたかを追跡することは、データ構造を使用して実行し得る。
ステップ350で、オリジナルメッセージは1つまたは複数の他のトークンリングからの1つまたは複数の関連メッセージの受信を監視することに基づいて処理される。スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障する前に、スタンバイゲートウェイで1つまたは複数の関連メッセージのそれぞれが受信された場合、オリジナルメッセージはスタンバイゲートウェイから削除され、1つまたは複数の関連メッセージの監視は終了する。スタンバイゲートウェイに関連付けられたアクティブゲートウェイが故障する前に、スタンバイゲートウェイで1つまたは複数の関連メッセージのうち少なくとも1つが受信されなかった場合、オリジナルメッセージは、オリジナルメッセージが提供されるが関連メッセージがそこから受信されてはいない1つまたは複数の他のトークンリングのいずれかに提供される(例、アクティブゲートウェイと同じように、オリジナルメッセージと関連付けられた1つまたは複数の関連メッセージを使用して)。このように、オリジナルメッセージの完全で信頼できる配信は、アクティブゲートウェイが故障した際にも保証される。
ステップ399で、方法300は終了する。
図4は、図1のトークンリングから発生するメッセージを処理するために図1のスタンバイゲートウェイが使用する方法の例示的な実施形態を示す図である。主に連続して実行されるように示され説明されてはいるが、方法400のステップのうち少なくとも一部は同時に実行されるか、図4に示されているのとは違う順序で実行され得ることが理解されよう。
ステップ401で、方法400が開始する。
ステップ410で、メッセージは複数のトークンリングを介して受信される。メッセージは、メッセージが発生するトークンリングを介して受信されたオリジナルメッセージ、または関連するオリジナルメッセージが発生するトークンリング以外のトークンリングを介して受信された関連メッセージを含み得る(例、スタンバイゲートウェイと関連付けられたアクティブゲートウェイにより、トークンリング上で配信される)。
ステップ420で、受信されたメッセージは追跡される。トークンリングを介して受信される各オリジナルメッセージに対して、オリジナルメッセージの追跡は、オリジナルメッセージが提供される1つまたは複数の他のトークンリングを決定することと、オリジナルメッセージが提供される1つまたは複数の他のトークンリングのうちどれからオリジナルメッセージが(例、オリジナルメッセージに基づいて生成された1つまたは複数の関連メッセージという形で)受信されたかを追跡することとを含む。トークンリングを介して受信される各関連メッセージに対して、関連メッセージの追跡は、関連メッセージが関連付けられているオリジナルメッセージを識別することと、そのオリジナルメッセージに対する関連メッセージがそのトークンリングを介して受信されたことをマーキングすることとを含む。少なくともいくつかの実施形態において、受信されたメッセージの追跡は、スタンバイゲートウェイのデータ構造を使用して実行され得る。
ステップ430で、アクティブゲートウェイが故障したかどうかが決定される。アクティブゲートウェイが故障していない場合、方法400はステップ410に戻る(すなわち、方法400は引き続きスタンバイゲートウェイを動作させ、トークンリングを介してメッセージを受信し、トークンリングを介して受信したメッセージを追跡する)。アクティブゲートウェイが故障した場合、方法400はステップ440に進む。
ステップ440で、受信したメッセージの追跡に基づいて回復手順が開始される。回復手順は、1つまたは複数の関連メッセージを使用したオリジナルメッセージの配信が不完全(つまり、1つまたは複数の関連メッセージが、オリジナルメッセージが提供される1つまたは複数の他のトークンリングのそれぞれを介して受信されていない)な各オリジナルメッセージを識別することと、1つまたは複数の関連メッセージを使用したオリジナルメッセージの配信が不完全な各オリジナルメッセージに対して、オリジナルメッセージの配信を完成するような仕方で1つまたは複数の関連メッセージを使用して1つまたは複数の他のトークンリングへオリジナルメッセージを提供することとを含む。
ステップ499で、方法400は終了する。
マルチリング高信頼メッセージング機能の様々な実施形態は、図5と図6に関して示され説明されているように、クラウドベースの無線アクセスネットワーク管理アプリケーションのマルチリングメッセージングシステムの例示的な実施形態を考慮することにより、よりよく理解し得る。
図5は、クラウドベースの無線アクセスネットワーク管理アプリケーションのための、マルチリングメッセージングシステムの例示的な実施形態を示している。
例示的なマルチリングメッセージングシステム500は、ワイヤレスユーザーデバイスにセルラーアクセスを提供する多数のセルサイトを含む、無線アクセスネットワーク(RAN)の管理に関連する状態変化通知(SCN)メッセージの交換をサポートする(例、ユーザー端末(UE)にセルラーアクセスを提供する多数のNodeBs)。SCNメッセージは主に、RANの無線ネットワークコントローラー(RNC)のクラウドベース実装を提供するために使用される、仮想マシン(VM)の状態を伝達するために使用される。VMは、セル管理機能(CMU VMが提供)、ユーザー端末管理機能(UMU VMが提供)およびプロトコル変換機能(PC VMが提供)を含む、RNCの特定の機能を提供する。たとえば、SCNメッセージは、セルサイトイベントに関連するメッセージ(例、セルサイトのダウン、セルサイトの回復)、セルサイトイベントの影響を受けるワイヤレスユーザーデバイスに関するメッセージ、セルサイトとワイヤレスコアネットワークとの間のトラフィックの移送をサポートするバックホール機器に関連するメッセージなどであり得る。
例示的なマルチリングメッセージングシステム500は以下のような3つのトークンリング510を含む:セルサイトの状態を監視し制御するように構成された複数のCMUノード5121(CMU VMのそれぞれを表す)から成るCMUトークンリング5101、セルサイトにサポートされるワイヤレスユーザーデバイスを監視し制御するように構成される複数のUMUノード5122(UMU VMのそれぞれを表す)から成るUMUトークンリング5102、セルサイトとコアネットワークコンポーネントをホストするクラウドネットワークおよびパブリックネットワーク内でプライベートネットワークを分離するネットワークゲートウェイとして動作するように構成された、複数のPCノード5123(PC VMのそれぞれを表す)から成るPCトークンリング5103。CMUトークンリング5101、UMUトークンリング5102およびPCトークンリング5103は集合的にトークンリング510と称されることがあり、同様にCMUノード5121、UMUノード5122およびPCノード5103は集合的にノード512と称されることがある。
例示的なマルチリングメッセージングシステム500はまた、アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sとを含み、どちらも各トークンリング510に含まれる。アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sはまた、それぞれVMを使用して実装される。アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sは高信頼メッセージングサービスをトークンリング510のすべてのノード512に提供する。たとえば、例示的なマルチリングメッセージングシステム500は、例示的なマルチリングメッセージングシステム100に関して示され説明されている通りに動作するよう構成され得る。例示的なマルチリングメッセージングシステム500の動作は、図6に関して示され説明されているように、例示的なマルチリングメッセージングシステム500のための例示的なメッセージフローを考慮することにより、よりよく理解できる。
図6は、図5の例示的なマルチリングメッセージングシステムのための例示的なメッセージフローを示している。主に連続して実行されるように示され説明されてはいるが、例示的なメッセージフロー600のステップのうち少なくとも一部は同時に実行されるか、図6に示されているのとは違う順序で実行され得ることが理解されよう。
図6に示されているように、図5の各要素は例示的なメッセージフローに含まれている(つまり、CMUノードを持つトークンリング5101(CMUトークンリング5101と表示されている)、UMUノードを持つトークンリング5102(UMUトークンリング5102と表示されている)、PCノードを持つトークンリング5103(PCトークンリング5103と表示されている)、アクティブゲートウェイ520A、およびスタンバイゲートウェイ520S)。
ステップ602で、CMUトークンリング5101はCMUトークンリング5101のノードC3がダウンしたことを示すメッセージ(C3 DOWNと表示されている)を送信する。C3 DOWNメッセージは、アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sの両方に受信される。
ステップ604で、スタンバイゲートウェイ520Sは、C3 DOWNメッセージがUMUトークンリング5102とPCトークンリング5103の両方に配信されるべきかどうかを決定する。スタンバイゲートウェイ520Sはそのデータ構造に、C3 DOWNメッセージがUMUトークンリング5102(エントリC3 DOWN−>UMUと表示されている)とPCトークンリング5103(C3 DOWN−>PCと表示されている)の両方に配信されるべきことを示す2つのエントリを追加する。
ステップ606で、アクティブゲートウェイ520Aは、C3 DOWNメッセージがUMUトークンリング5102に配信されるべきという決定に基づいて、C3 DOWNメッセージをUMUトークンリング5102に伝搬する。
ステップ608で、スタンバイゲートウェイ520Sは、UMUトークンリング5102を介してC3 DOWNメッセージを受信し、UMUトークンリング5102を介してC3 DOWNメッセージの受信を反映するようにそのデータ構造を更新する(実例、データ構造からC3 DOWN−>UMUエントリを削除し、C3 DOWNメッセージに対してデータ構造のC3 DOWN−>PCエントリのみを残す)。
ステップ610で、アクティブゲートウェイ520Aは、C3 DOWNメッセージがPCトークンリング5103にも配信されるべきという決定に基づいて、C3 DOWNメッセージをPCトークンリング5103に伝搬する。
ステップ612で、スタンバイゲートウェイ520Sは、PCトークンリング5103を介してC3 DOWNメッセージを受信し、PCトークンリング5103を介してC3 DOWNメッセージの受信を反映するようにそのデータ構造を更新する(実例、データ構造がC3 DOWNメッセージに対するエントリを何も含まないように、データ構造からC3 DOWN−>PCエントリを削除する)。
ステップ614で、CMUトークンリング5101は、CMUトークンリング5101のノードC3が回復したことを示すメッセージ(C3 UPと表示されている)を送信する。C3 UPメッセージは、アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sの両方に受信される。
ステップ616で、スタンバイゲートウェイ520Sは、C3 UPメッセージがUMUトークンリング5102とPCトークンリング5103の両方に配信されるべきかどうかを決定する。スタンバイゲートウェイ520Sはそのデータ構造に、C3 UPメッセージがUMUトークンリング5102(エントリC3 UP−>UMUと表示されている)とPCトークンリング5103(C3 UP−>PCと表示されている)の両方に配信されるべきことを示す2つのエントリを追加する。
ステップ618で、アクティブゲートウェイ520Aは、C3 UPメッセージがUMUトークンリング5102に配信されるべきという決定に基づいて、C3 UPメッセージをUMUトークンリング5102に伝搬する。
ステップ620で、スタンバイゲートウェイ520Sは、UMUトークンリング5102を介してC3 UPメッセージを受信し、UMUトークンリング5102を介してC3 UPメッセージの受信を反映するようにそのデータ構造を更新する(実例、データ構造からC3 UP−>UMUエントリを削除し、C3 UPメッセージに対してデータ構造のC3 UP−>PCエントリのみを残す)。
ステップ622で、アクティブゲートウェイ520Aは故障する。この時点で、スタンバイゲートウェイ520Sのデータ構造は依然としてC3 UPメッセージに対してC3 UP−>PCエントリを含む。
ステップ624で、CMUトークンリング5101、UMUトークンリング5102、PCトークンリング5103およびスタンバイゲートウェイ520Sはアクティブゲートウェイ520Aが故障したことを検出する。
ステップ626で、スタンバイゲートウェイ520Sが例示的なマルチリングメッセージングシステム500のアクティブゲートウェイとして動作を開始できるように、またアクティブゲートウェイ520Aが故障から復旧した後にアクティブゲートウェイ520Aが例示的なマルチリングメッセージングシステム500の予備のゲートウェイとして動作を開始できるように、ゲートウェイ切り替えプロセスが開始される。
ステップ628で、スタンバイゲートウェイ520Sは、アクティブゲートウェイ520Aが故障する前に伝搬すべきだったがそうされなかったメッセージの集合を表すそのデータ構造に基づいて、メッセージ回復プロセスを開始する。例示的なメッセージフロー600で、スタンバイゲートウェイ520Sのデータ構造は依然として、アクティブゲートウェイ520Aが故障前にPCトークンリング5103を介してC3 UPメッセージを伝搬しなかったことをスタンバイゲートウェイ520Sに示す、C3 UPメッセージに対するC3 UP−>PCエントリを含む。
ステップ630で、スタンバイゲートウェイ520Sは、C3 UPメッセージが依然としてPCトークンリング5103に配信されるべきという、そのデータ構造からの決定に基づいて、C3 UPメッセージをPCトークンリング5103に伝搬する。
ステップ632で、スタンバイゲートウェイ520SはPCトークンリング5103を介してC3 UPメッセージの伝搬を反映するため、そのデータ構造を更新する(実例、データ構造がC3 DOWNメッセージに対するエントリを何も含まないように、データ構造からC3 UP−>PCエントリを削除する)。ステップ632で示されているように、スタンバイゲートウェイ520Sのデータ構造は現時点で空である(すなわち、メッセージ回復プロセスが完了)。
ステップ634で、スタンバイゲートウェイ520Sはメッセージ回復プロセス完了メッセージをアクティブゲートウェイ520Aに送信する(上述の通り、アクティブゲートウェイは現時点で例示的なマルチリングメッセージングシステム500の予備のゲートウェイとして動作する)。例示的なマルチリングメッセージングシステム500は、ステップ602−620に関して示され説明されているように引き続き機能するが、例示的なマルチリングメッセージングシステム500のノード512に対して信頼できるメッセージ配信をサポートするため、アクティブゲートウェイ520Aとスタンバイゲートウェイ520Sのアクティブ/予備の役割は逆転している。
本明細書で示されているように、例示的なメッセージフロー600と関連付けられた例示的なマルチリングメッセージングシステム500は、トークンリング510内ではメッセージの全順序配信をサポートし得るが、トークンリング510間ではメッセージの因果順序配信のみをサポートでき、その結果トークンリング510で観察されるメッセージの順序が、他のトークンリング510で現れる順序と違うというメッセージの再順序付け状態を引き起こし得る。たとえば、UMUトークンリング5102でのイベントU1の発生は、PCトークンリング5103でのイベントP1の発生に先立って生じ得るが、メッセージの報告イベントU1とP1は、CMUトークンリング5101において逆の順序で観察され得る(つまり、P1、U1)。例示的なマルチリングメッセージングシステム500で配信されるこの種類のメッセージ(つまり、SCNメッセージ)に対するこの種類の再順序付けの影響はないはずだが、例示的なマルチリングメッセージングシステム100が他の種類のネットワーク、システム、環境などで実装される実施形態においては、この種類の再順序付けが問題となることもある。したがって、少なくともいくつかの実施形態において、メッセージの潜在的な再順序付けに対処するために、1つまたは複数のメッセージ再順序付けの仕組みが使用され得る。
トークンリングへのメッセージの伝搬についての本明細書の言及は、メッセージがトークンリングによって(つまり、トークンリングの1つまたは複数のノードによって)受信されるように、トークンリングへメッセージを送信するデバイスが実行する様々な動作を含むと見なし得ることが理解されよう。同様に、トークンリングへのメッセージの提供についての本明細書の言及は、メッセージがトークンリングによって受信されるように、トークンリングへメッセージを伝搬または送信するデバイスが実行する様々な動作を含むと見なし得ることが理解されよう。
マルチリングメッセージング機能を使用することで、トークンリングプロトコル(例、TOTEM)のほとんどの利点を大規模なシステムに適用できることが理解されよう(例、本明細書で示され説明されているような複数のトークンリングの使用をサポートしない、既存のメッセージングシステムと比較して)。たとえば、マルチリングメッセージング機能の様々な実施形態により、アプリケーションは以下から利点を得ることができる:メッセージの1つまたは複数の安全な配信(例、すべてのノードがメッセージを受信するか、どのノードもメッセージを受信しないかのどちらか)、因果順序でのメッセージの配信(例、ノードアップ通知が因果ノードダウン通知に先立つことはできない)、ロバスト性(例、システムは、アクティブゲートウェイが故障した際にスタンバイゲートウェイに切り替えることも含め、ノードが故障した際にもサービスを提供し続ける)、標準的なベストエフォートメッセージングサービスの継続的な使用(例、カスタムの相互接続技術は必要ない)、改善されたパフォーマンス(例、大規模なシステムが可能なだけではなく、複数の小規模なリングを使用することで、トークン循環時間が大幅に減少し、メッセージの遅延が有意に減少する)。
明瞭化のために省略されているが、少なくともいくつかの実施形態において、どちらのゲートウェイもオリジナルメッセージが生成されたオリジナルトークンリング上でオリジナルメッセージを見て、オリジナルメッセージが配信される他のトークンリング上で重複するいかなるメッセージも見ることを保証するために、調整機能が提供されることが理解されよう。少なくともいくつかの実施形態において、アクティブゲートウェイとスタンバイゲートウェイとの間の調整の確立に先立ってスタンバイゲートウェイがデータ構造にメッセージをポピュレートを開始しないことを保証するため、スタンバイゲートウェイによりブロードキャスト調整メッセージがすべてのトークンリングに対して送信され、スタンバイが調整メッセージを各トークンリング上で受信すると、スタンバイゲートウェイはトークンリングを介して受信したそれぞれのメッセージの記録を始める。この調整機能は、スタンバイゲートウェイが初期化されたときか、故障したゲートウェイが回復(例、以前のアクティブゲートウェイが回復し、スタンバイゲートウェイとしての役割を担う)した後に使用され得ることが理解されよう。
アクティブゲートウェイが一組の機能(アクティブゲートウェイの機能)を実行するように構成され、スタンバイゲートウェイが他の一組の機能(スタンバイゲートウェイの機能)を実行するように構成されている実施形態に関して主に示され記述されているが、少なくともいくつかの実施形態において、アクティブゲートウェイとスタンバイゲートウェイのそれぞれが両方とも、アクティブゲートウェイ機能とスタンバイゲートウェイ機能を実行するように構成され得ることが理解されよう(例、ゲートウェイが接続されるトークンリング内またはトークンリング間でのメッセージの配信を保証するために、ゲートウェイは必要に応じてアクティブ状態とスタンバイ状態を切り替え得る)。
ゲートウェイが接続されるトークンリングのノードに加えて、ゲートウェイ(すなわち、アクティブゲートウェイとスタンバイゲートウェイ)が専用ノードである実施形態に関して主に示され説明されているが、少なくともいくつかの実施形態において、ゲートウェイの機能はすべてのトークンリングの要素である任意のノードにより提供され得ることが理解されよう(例、すべてのトークンリングの要素である既存のノード)。
トークンリングがアクティブゲートウェイとスタンバイゲートウェイによって相互接続されている実施形態に関して主に示され説明されているが、少なくともいくつかの実施形態において、トークンリングは1つの(アクティブ)ゲートウェイのみにより相互接続されることができ、スタンバイゲートウェイは省略され得ることが理解されよう。1つのゲートウェイのみがトークンリングを相互接続する場合、トークンリング間のメッセージの因果順序配信は依然として保証され得ることが理解されよう。
メッセージングシステムのそれぞれのトークンリングが使用される例示的な実施形態に関して主に示され説明されているが、メッセージングシステムは1つまたは複数の付加的なリングを含み得ることが理解されよう。したがって、少なくともいくつかの実施形態において、本明細書の各リングへの言及は、メッセージングシステムのリングのサブセット(またはより一般的に、複数のリングのサブセット)への言及と見なし得る。同様に、所与のトークンリングの様々な特徴が所与のトークンリングのノードのそれぞれに適用される例示的な実施形態に関して主に示され説明されているが、1つまたは複数のトークンリングのノードのグループは1つまたは複数の異なる特徴を含み得ることが理解されよう。
図7は、本明細書で説明する機能を実行するのに適切な、コンピュータの上位レベルブロック図を示している。
コンピュータ700は、プロセッサ702(例、中央処理装置(CPU)または他の適切なプロセッサ)とメモリ704(例、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)など)とを含む。
コンピュータ700はまた、連携モジュール/プロセス705を含み得る。連携プロセス705は、本明細書で説明している機能を実装するためにメモリ704に読み込まれ、プロセッサ702に実行されることができ、したがって、連携プロセス705(関連するデータ構造を含む)はコンピュータの可読記憶媒体(例、RAMメモリ、磁気または光学ドライブやディスケットなど)に記憶され得る。
コンピュータ700はまた、1つまたは複数の入力/出力デバイス706を含み得る(例、ユーザー入力デバイス(キーボード、キーパッド、マウスなど)、ユーザー出力デバイス(ディスプレイ、スピーカーなど)、入力ポート、出力ポート、受信器、送信機、1つまたは複数のストレージデバイス(例、テープドライブ、フロッピー(登録商標)ドライブ、ハードディスクドライブ、コンパクトディスクドライブなど)など、およびこれらの様々な組み合わせ)。
図7に示されているコンピュータ700は、本明細書で示されている機能要素または本明細書で示されている機能要素の一部を実装するのに適切な、汎用のアーキテクチャと機能性を提供していることが理解されよう。たとえば、コンピュータ700は、1つのノード112、1つのノード112の一部、アクティブゲートウェイ120A、アクティブゲートウェイ120Aの一部、スタンバイゲートウェイ120S、スタンバイゲートウェイ120Sの一部などを実装するのに適切な、汎用のアーキテクチャと機能性を提供する。
本明細書で示され説明されている機能は、ハードウェアにより、またはソフトウェアとハードウェアの組み合わせにより実装され得ることが理解されよう(例、汎用コンピュータを使用して、特殊用途のコンピュータを提供するために汎用コンピュータでソフトウェアを実行することにより、1つまたは複数の特定用途向け集積回路(ASIC)または他の均等のハードウェアを使用して、およびこれらの様々な組み合わせ)。
本明細書で説明されている少なくともいくつかの方法のステップは、ハードウェア内で実装され得る(例、様々な方法のステップを実行するためにプロセッサと連携する回路として)ことが理解されよう。本明細書で説明されている機能/要素の一部は、コンピュータの命令がコンピュータに処理される際、本明細書で説明されている方法や技術が呼び出されるかあるいは提供されるように、コンピュータの動作を適応させるコンピュータプログラム製品として実装され得る。本発明の方法を呼び出す命令は、固定媒体または取り外し可能媒体に格納され、ブロードキャストのデータストリームまたは他の信号担持媒体を介して送信され、または命令に従って動作するコンピューティングデバイスのメモリ内に記憶され得る。
本明細書で使用されている「または」という用語は、別段の指示(例、「または他に」または「または別の方法で」)がない限り、非排他的な「または」を意味することが理解されよう。
様々な実施形態の様態は請求項で定められる。様々な実施形態のそれらのおよび他の様態は、以下の番号付けされた条項により定められる:
1. 装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第1のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第2のトークンリングを決定することと、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成することと、
関連メッセージを第2のトークンリングに伝搬することと
を行うように構成された、装置。
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第1のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第2のトークンリングを決定することと、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成することと、
関連メッセージを第2のトークンリングに伝搬することと
を行うように構成された、装置。
2. 第1のトークンリングが第1のノードタイプの第1の複数のノードを含み、第2のトークンリングが第1のノードタイプとは異なる第2のノードタイプの第2の複数のノードを含む、条項1に記載の装置。
3. プロセッサが第1のトークンリングプロトコルを使用して第1のトークンリングと通信するように構成され、プロセッサが第1のトークンリングプロトコルまたは第2のトークンリングプロトコルを使用して第2のトークンリングと通信するように構成された、条項1に記載の装置。
4. プロセッサが、メッセージのメッセージタイプ、第1のトークンリングの第1の複数のノードのノードタイプまたは第2のトークンリングの第2の複数のノードのノードタイプのうち少なくとも1つに基づいて、オリジナルメッセージが提供される第2のトークンリングを決定するように構成された、条項1に記載の装置。
5. プロセッサが、第1のトークンリング内でオリジナルメッセージの全順序配信をサポートするように構成された、条項1に記載の装置。
6. プロセッサが、第1のトークンリングと第2のトークンリングとの間で関連メッセージの因果順序配信をサポートするように構成された、条項1に記載の装置。
7. オリジナルメッセージが、第1のトークンリング内での配信のための情報のセットを含み、関連メッセージがオリジナルメッセージの情報のセットを含む、条項1に記載の装置。
8. オリジナルメッセージがヘッダー情報を含み、プロセッサが、
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、条項1に記載の装置。
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、条項1に記載の装置。
9. プロセッサが、ネットワーク通信、1つまたは複数の通信アプリケーションプログラミングインターフェース(API)、または第1のトークンリングへの第1の物理インターフェースおよび第2のトークンリングへの第2の物理インターフェースのうち少なくとも1つを使用して、第1のトークンリングおよび第2のトークンリングと通信するように構成された、条項1に記載の装置。
10. 方法であって、
第1のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第2のトークンリングを決定し、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成し、
関連メッセージを第2のトークンリングに伝搬する、
ためにプロセッサとメモリを使用すること
を含む、方法。
第1のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第2のトークンリングを決定し、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成し、
関連メッセージを第2のトークンリングに伝搬する、
ためにプロセッサとメモリを使用すること
を含む、方法。
11. 装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第1のトークンリングからオリジナルメッセージを受信することと、
オリジナルメッセージをメモリに記憶することと、
1つまたは複数の他のトークンリングのそれぞれからのオリジナルメッセージに関連付けられた1つまたは複数の関連メッセージの受信を監視することと
を行うように構成された、装置。
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第1のトークンリングからオリジナルメッセージを受信することと、
オリジナルメッセージをメモリに記憶することと、
1つまたは複数の他のトークンリングのそれぞれからのオリジナルメッセージに関連付けられた1つまたは複数の関連メッセージの受信を監視することと
を行うように構成された、装置。
12. プロセッサが、オリジナルメッセージの1つまたは複数のアドレスフィールドに基づいて1つまたは複数の他のトークンリングを識別するように構成された、条項11に記載の装置。
13. プロセッサが、
1つまたは複数の他のトークンリングからの1つまたは複数の関連メッセージの受信に応じて、メモリからメッセージを削除するように構成された、条項11に記載の装置。
1つまたは複数の他のトークンリングからの1つまたは複数の関連メッセージの受信に応じて、メモリからメッセージを削除するように構成された、条項11に記載の装置。
14. プロセッサが、
1つまたは複数の関連メッセージのうち少なくとも1つが受信される前に、アクティブゲートウェイの故障の検出に基づいて、
少なくとも1つの関連メッセージがそこを介して受信されていない、1つまたは複数の他のトークンリングのうち少なくとも1つに対するオリジナルメッセージの配信を開始するように構成された、条項11に記載の装置。
1つまたは複数の関連メッセージのうち少なくとも1つが受信される前に、アクティブゲートウェイの故障の検出に基づいて、
少なくとも1つの関連メッセージがそこを介して受信されていない、1つまたは複数の他のトークンリングのうち少なくとも1つに対するオリジナルメッセージの配信を開始するように構成された、条項11に記載の装置。
15. プロセッサが、少なくとも1つの関連メッセージがそこを介して受信されていない、1つまたは複数の他のトークンリングのうち少なくとも1つに対して、
オリジナルメッセージに基づいて、1つまたは複数の他のトークンリングの少なくとも1つのそれぞれに対して、少なくとも1つの関連メッセージを生成し、
1つまたは複数の他のトークンリングの少なくとも1つのそれぞれに対して、少なくとも1つの関連メッセージを伝搬することにより、
オリジナルメッセージを配信するように構成された、条項14に記載の装置。
オリジナルメッセージに基づいて、1つまたは複数の他のトークンリングの少なくとも1つのそれぞれに対して、少なくとも1つの関連メッセージを生成し、
1つまたは複数の他のトークンリングの少なくとも1つのそれぞれに対して、少なくとも1つの関連メッセージを伝搬することにより、
オリジナルメッセージを配信するように構成された、条項14に記載の装置。
16. プロセッサが、1つまたは複数の関連メッセージの受信が監視されている1つまたは複数の他のトークンリングのそれぞれに関連付けられた1つまたは複数のエントリを含むデータ構造に基づいて、1つまたは複数の他のトークンリングからの1つまたは複数の関連メッセージの受信を監視するように構成された、条項11に記載の装置。
17. プロセッサが、
1つまたは複数の他のトークンリングを識別することと、
1つまたは複数の関連メッセージの受信が監視されている1つまたは複数の他のトークンリングに関連付けられたデータ構造の1つまたは複数のエントリを生成することと
を行うように構成された、条項16に記載の装置。
1つまたは複数の他のトークンリングを識別することと、
1つまたは複数の関連メッセージの受信が監視されている1つまたは複数の他のトークンリングに関連付けられたデータ構造の1つまたは複数のエントリを生成することと
を行うように構成された、条項16に記載の装置。
18. プロセッサが、
1つまたは複数の他のトークンリングのそれぞれから1つまたは複数の関連メッセージの1つを受信することと、
1つまたは複数の関連メッセージのうちの1つがそこから受信された、1つまたは複数の他のトークンリングの1つに関連付けられた1つまたは複数のエントリのうちの1つをデータ構造から削除することと
を行うように構成された、条項16に記載の装置。
1つまたは複数の他のトークンリングのそれぞれから1つまたは複数の関連メッセージの1つを受信することと、
1つまたは複数の関連メッセージのうちの1つがそこから受信された、1つまたは複数の他のトークンリングの1つに関連付けられた1つまたは複数のエントリのうちの1つをデータ構造から削除することと
を行うように構成された、条項16に記載の装置。
19. プロセッサが、
アクティブゲートウェイの故障の検出に基づいて、
1つまたは複数のエントリのいずれかがデータ構造に残っているかを決定することと、
1つまたは複数のエントリのうち少なくとも1つがデータ構造に残っているという決定に基づいて、データ構造に残っている1つまたは複数のエントリのうち少なくとも1つに関連付けられた1つまたは複数の他のトークンリングのうち少なくとも1つへのオリジナルメッセージの配信を開始することと
を行うように構成された、条項16に記載の装置。
アクティブゲートウェイの故障の検出に基づいて、
1つまたは複数のエントリのいずれかがデータ構造に残っているかを決定することと、
1つまたは複数のエントリのうち少なくとも1つがデータ構造に残っているという決定に基づいて、データ構造に残っている1つまたは複数のエントリのうち少なくとも1つに関連付けられた1つまたは複数の他のトークンリングのうち少なくとも1つへのオリジナルメッセージの配信を開始することと
を行うように構成された、条項16に記載の装置。
20. プロセッサが、
アクティブゲートウェイの故障の検出に基づいて、
第1のトークンリングを介して第2のオリジナルメッセージを受信することと、
第2のオリジナルメッセージが提供される第2のトークンリングを決定することと、
第2のオリジナルメッセージに基づいて第2のトークンリングへの対応する第2の関連メッセージを生成することと、
第2の関連メッセージを第2のトークンリングに伝搬することと
を行うように構成された、条項11に記載の装置。
アクティブゲートウェイの故障の検出に基づいて、
第1のトークンリングを介して第2のオリジナルメッセージを受信することと、
第2のオリジナルメッセージが提供される第2のトークンリングを決定することと、
第2のオリジナルメッセージに基づいて第2のトークンリングへの対応する第2の関連メッセージを生成することと、
第2の関連メッセージを第2のトークンリングに伝搬することと
を行うように構成された、条項11に記載の装置。
上記の説明は、本明細書で提示されている特徴の様々な実施形態を対象としているが、その基本的な範囲から逸脱することなく、他の実施形態が考案され得ることが理解されよう。
Claims (10)
- 装置であって、
プロセッサと、プロセッサに通信可能に接続されたメモリとを含み、プロセッサが、
第1のトークンリングを介してオリジナルメッセージを受信することと、
オリジナルメッセージが提供される第2のトークンリングを決定することと、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成することと、
関連メッセージを第2のトークンリングに伝搬することと
を行うように構成された、装置。 - 第1のトークンリングが第1のノードタイプの第1の複数のノードを含み、第2のトークンリングが第1のノードタイプとは異なる第2のノードタイプの第2の複数のノードを含む、請求項1に記載の装置。
- プロセッサが第1のトークンリングプロトコルを使用して第1のトークンリングと通信するように構成され、プロセッサが第1のトークンリングプロトコルまたは第2のトークンリングプロトコルを使用して第2のトークンリングと通信するように構成された、請求項1に記載の装置。
- プロセッサが、メッセージのメッセージタイプ、第1のトークンリングの第1の複数のノードのノードタイプまたは第2のトークンリングの第2の複数のノードのノードタイプのうち少なくとも1つに基づいて、オリジナルメッセージが提供される第2のトークンリングを決定するように構成された、請求項1に記載の装置。
- プロセッサが、第1のトークンリング内でオリジナルメッセージの全順序配信をサポートするように構成された、請求項1に記載の装置。
- プロセッサが、第1のトークンリングと第2のトークンリングとの間で関連メッセージの因果順序配信をサポートするように構成された、請求項1に記載の装置。
- オリジナルメッセージが、第1のトークンリング内での配信のための情報のセットを含み、関連メッセージがオリジナルメッセージの情報のセットを含む、請求項1に記載の装置。
- オリジナルメッセージがヘッダー情報を含み、プロセッサが、
ヘッダー情報を変更せずにオリジナルメッセージをコピーするか、
オリジナルメッセージをコピーし、ヘッダー情報の少なくとも一部を変更するか
のいずれかにより、関連メッセージを生成するように構成された、
請求項1に記載の装置。 - プロセッサが、ネットワーク通信、1つまたは複数の通信アプリケーションプログラミングインターフェース(API)、または第1のトークンリングへの第1の物理インターフェースおよび第2のトークンリングへの第2の物理インターフェースのうち少なくとも1つを使用して、第1のトークンリングおよび第2のトークンリングと通信するように構成された、請求項1に記載の装置。
- 方法であって、
第1のトークンリングを介してオリジナルメッセージを受信し、
オリジナルメッセージが提供される第2のトークンリングを決定し、
オリジナルメッセージに基づいて第2のトークンリングへの関連メッセージを生成し、
関連メッセージを第2のトークンリングに伝搬する、
ためにプロセッサとメモリを使用すること
を含む、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/803,558 | 2013-03-14 | ||
US13/803,558 US9444913B2 (en) | 2013-03-14 | 2013-03-14 | Multi-ring reliable messaging system |
PCT/CA2014/050201 WO2014138960A1 (en) | 2013-03-14 | 2014-03-10 | Multi-ring reliable messaging system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016515343A true JP2016515343A (ja) | 2016-05-26 |
Family
ID=51533540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561856A Pending JP2016515343A (ja) | 2013-03-14 | 2014-03-10 | マルチリング高信頼メッセージングシステム |
Country Status (4)
Country | Link |
---|---|
US (2) | US9444913B2 (ja) |
EP (1) | EP2974161A1 (ja) |
JP (1) | JP2016515343A (ja) |
WO (1) | WO2014138960A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10091103B2 (en) * | 2016-04-22 | 2018-10-02 | Juniper Networks, Inc. | Efficient synchronization of stored information using a parallel ring network topology |
US20180048487A1 (en) * | 2016-08-15 | 2018-02-15 | Alcatel-Lucent Canada Inc. | Method for handling network partition in cloud computing |
US10623204B2 (en) | 2017-06-11 | 2020-04-14 | Syyed Gholam Reza Moazami | Controlling a distributed system |
US11580058B1 (en) | 2021-08-30 | 2023-02-14 | International Business Machines Corporation | Hierarchical ring-based interconnection network for symmetric multiprocessors |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0360244A (ja) * | 1989-07-19 | 1991-03-15 | Ncr Corp | 発生源発信ブリツジ方法及び装置 |
JPH05260060A (ja) * | 1992-03-09 | 1993-10-08 | Matsushita Electric Ind Co Ltd | 通信装置 |
JP2006279279A (ja) * | 2005-03-28 | 2006-10-12 | Fujitsu Ltd | データ中継装置および障害復旧方法 |
JP2009044562A (ja) * | 2007-08-09 | 2009-02-26 | Mitsubishi Electric Corp | マルチリングrprノード装置 |
WO2010116465A1 (ja) * | 2009-03-30 | 2010-10-14 | 三菱電機株式会社 | リングノード装置、マルチリングネットワークシステムおよび経路切り替え方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0732401B2 (ja) * | 1985-04-24 | 1995-04-10 | 株式会社日立製作所 | 伝送制御方式 |
US5392399A (en) * | 1992-05-18 | 1995-02-21 | 3Com Corporation | Bridge system for selectively routing frame with ordering parameter identifying ordering of identifiers only based upon its source identifier |
US5530808A (en) * | 1993-12-10 | 1996-06-25 | International Business Machines Corporation | System for transferring ownership of transmitted data packet from source node to destination node upon reception of echo packet at source node from destination node |
US6483812B1 (en) * | 1999-01-06 | 2002-11-19 | International Business Machines Corporation | Token ring network topology discovery and display |
US6779038B1 (en) * | 1999-12-31 | 2004-08-17 | Nortel Networks Limited | System and method for extending virtual synchrony to wide area networks |
US7274656B2 (en) * | 2001-07-10 | 2007-09-25 | Tropic Networks Inc. | Protection system and method for resilient packet ring (RPR) interconnection |
US7383354B2 (en) * | 2002-02-12 | 2008-06-03 | Fujitsu Limited | Spatial reuse and multi-point interconnection in bridge-interconnected ring networks |
US7733868B2 (en) * | 2005-01-26 | 2010-06-08 | Internet Broadcasting Corp. | Layered multicast and fair bandwidth allocation and packet prioritization |
JP4900878B2 (ja) | 2005-03-31 | 2012-03-21 | 日本電気株式会社 | リングネットワークシステム、障害回復方法、障害検出方法、ノード、およびノード用プログラム |
CN101106516A (zh) * | 2006-07-14 | 2008-01-16 | 华为技术有限公司 | 一种避免弹性分组相交环广播风暴的相交节点及方法 |
US7814248B2 (en) * | 2006-12-07 | 2010-10-12 | Integrated Device Technology, Inc. | Common access ring/sub-ring system |
CN101232427A (zh) | 2007-01-23 | 2008-07-30 | 华为技术有限公司 | 一种以太网环保护方法及装置 |
US8345576B2 (en) | 2007-06-19 | 2013-01-01 | Red Hat, Inc. | Methods and systems for dynamic subring definition within a multi-ring |
US8149830B2 (en) * | 2008-09-23 | 2012-04-03 | International Business Machines Corporation | Efficient light-weight multicasting communication protocol |
CN101931898B (zh) * | 2009-06-26 | 2014-03-05 | 华为技术有限公司 | 用户面数据的传输方法、装置及系统 |
JP5434318B2 (ja) | 2009-07-09 | 2014-03-05 | 富士通株式会社 | 通信装置および通信パス提供方法 |
-
2013
- 2013-03-14 US US13/803,558 patent/US9444913B2/en active Active
-
2014
- 2014-03-10 WO PCT/CA2014/050201 patent/WO2014138960A1/en active Application Filing
- 2014-03-10 JP JP2015561856A patent/JP2016515343A/ja active Pending
- 2014-03-10 EP EP14762502.4A patent/EP2974161A1/en not_active Withdrawn
-
2016
- 2016-08-18 US US15/240,091 patent/US20170048081A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0360244A (ja) * | 1989-07-19 | 1991-03-15 | Ncr Corp | 発生源発信ブリツジ方法及び装置 |
JPH05260060A (ja) * | 1992-03-09 | 1993-10-08 | Matsushita Electric Ind Co Ltd | 通信装置 |
JP2006279279A (ja) * | 2005-03-28 | 2006-10-12 | Fujitsu Ltd | データ中継装置および障害復旧方法 |
JP2009044562A (ja) * | 2007-08-09 | 2009-02-26 | Mitsubishi Electric Corp | マルチリングrprノード装置 |
WO2010116465A1 (ja) * | 2009-03-30 | 2010-10-14 | 三菱電機株式会社 | リングノード装置、マルチリングネットワークシステムおよび経路切り替え方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014138960A1 (en) | 2014-09-18 |
US9444913B2 (en) | 2016-09-13 |
US20140280700A1 (en) | 2014-09-18 |
US20170048081A1 (en) | 2017-02-16 |
EP2974161A1 (en) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10469312B1 (en) | Methods and apparatus for scalable resilient networks | |
US11038705B2 (en) | Fast recovery of multicast router ports on spanning tree protocol (STP) topology change in a layer 2 (L2) network | |
TWI393401B (zh) | 用以管理多播路由之系統、裝置、方法及具有電腦程式收錄其中之記憶體 | |
CN102347905B (zh) | 一种网络设备及其转发信息更新方法 | |
US20130332601A1 (en) | Dynamic logging | |
US10198338B2 (en) | System and method of generating data center alarms for missing events | |
US12041052B2 (en) | Continuing a media access control security (MACSEC) key agreement (MKA) session upon a network device becoming temporarily unavailable | |
US20170048081A1 (en) | Multi-ring reliable messaging system | |
WO2020057445A1 (zh) | 一种通信系统、方法及装置 | |
CN113709220B (zh) | 虚拟负载均衡器的高可用实现方法、系统及电子设备 | |
WO2019174454A1 (zh) | 链路恢复方法及装置、系统、存储介质、电子装置 | |
US8515079B1 (en) | Hybrid rekey distribution in a virtual private network environment | |
CN104852955B (zh) | 一种数据处理方法及系统 | |
US11973687B2 (en) | Multilayer decentralized server network | |
CN116346698A (zh) | 在分组转发引擎系统上复制业务统计数据的系统和方法 | |
CN109450794B (zh) | 一种基于sdn网络的通信方法及设备 | |
US9104562B2 (en) | Enabling communication over cross-coupled links between independently managed compute and storage networks | |
CN113630242A (zh) | 使用数据平面反馈促进无损安全密钥翻转 | |
Zhu et al. | SMSEI‐SDN: A Suppression Method of Security Incident Impact for the Inter‐Domain Routing System Based on Software‐Defined Networking | |
CN113765783B (zh) | 通信方法及装置 | |
CN114666087B (zh) | 安全性冗余 | |
CN103634219A (zh) | 一种任播汇集点Anycast-RP的维护方法及装置 | |
CN115190168B (zh) | 一种边缘服务器管理系统及服务器集群 | |
US20240275797A1 (en) | Method to provide disaster recovery with reverse proxy across geographically distributed data lakes | |
US11736340B2 (en) | Signaling a prefix unreachability in a network utilizing a route summarization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161108 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170606 |