(57)【特許請求の範囲】
【請求項１】
ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうためのシステムであって、
複数のDiameterシグナリングルーティングノードを含み、各ノードは、ステート情報を維持するための複数のデータベースのうちの少なくとも１つへのアクセスを有し、前記複数のノードのうちの少なくともいくつかは、第１のグループのメンバーとなるように構成され、
前記第１のグループの各メンバーは、前記第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、前記第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される、システム。
【請求項２】
前記第１のグループは、第１のベンダーからのノードを含み、前記第１のグループのメンバーではないノードは、別のベンダーからのノードを含む、請求項１に記載のシステム。
【請求項３】
前記第１のグループの第１のメンバーはさらに、前記第１のグループのメンバーではないノードと組になるペアとして動作するように構成される、請求項１または２に記載のシステム。
【請求項４】
前記第１のメンバーは、ベンダーに依存しないストラテジーを使用して、そのペアとなる相手とデータベース一貫性を維持するとともに、ベンダー固有のストラテジーを使用して、グループの他のメンバーとデータベース一貫性を維持するように構成される、請求項３に記載のシステム。
【請求項５】
前記データベース一貫性を維持するための、ベンダーに依存しないストラテジーは、メッセージングストラテジー、複製ストラテジー、および独自開発でないストラテジーのうちの少なくとも１つを含む、請求項４に記載のシステム。
【請求項６】
前記データベース一貫性を維持するための、ベンダー固有のストラテジーは、メッセージングストラテジー、複製ストラテジー、およびベンダー独自開発のストラテジーのうちの少なくとも１つを含む、請求項４に記載のシステム。
【請求項７】
前記ステート情報は、加入者またはセッションを識別する情報を含む、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記第１のメンバーは、
加入者のために第１のセッションを確立するようにという要求を受信し、
そのデータベースが当該加入者に関連付けられたステート情報を含むかどうか判断し、
そのデータベースが当該加入者に関連付けられたステート情報を含むと判断すると、当該加入者に関連付けられたステート情報に従って要求を処理し、
そのデータベースが当該加入者に関連付けられたステート情報を含んでいないと判断すると、ペアとなる相手のデータベースが当該加入者に関連付けられたステート情報を含むかどうか判断し、
ペアとなる相手のデータベースが当該加入者に関連付けられたステート情報を含むと判断すると、ペアとなる相手からステート情報を検索し、当該加入者に関連付けられたステート情報に従って要求を処理し、ペアとなる相手から受信されたステート情報をそのデータベースに格納し、
ペアとなる相手のデータベースが当該加入者に関連付けられたステート情報を含んでいないと判断すると、当該加入者に関連付けられたステート情報を作成し、作成されたステート情報に従って要求を処理し、作成されたステート情報をそのデータベースに格納する、ように構成される、請求項３に記載のシステム。
【請求項９】
前記複数のDiameterシグナリングルーティングノードは、ポリシーに関連するDiameterシグナリングメッセージを、ポリシーノードに、および、ポリシーノードからルーティングする、請求項１〜８のいずれか１項に記載のシステム。
【請求項１０】
前記複数のDiameterシグナリングルーティングノードは、課金に関連するDiameterシグナリングメッセージを、課金ノードに、および、課金ノードからルーティングする、請求項１〜９のいずれか１項に記載のシステム。
【請求項１１】
ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうための方法であって、
複数のDiameterシグナリングルーティングノードの各々でステート情報を維持するステップを含み、各ノードは、ステート情報を維持するための複数のデータベースのうちの少なくとも１つへのアクセスを有し、
ステートフルDiameterルーティングを提供するためにステート情報を使用するステップと、
前記複数のDiameterシグナリングルーティングノードのうちの少なくともいくつかを、第１のグループのメンバーとなるように構成するステップとを含み、前記第１のグループの各メンバーは、前記第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、前記第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される、方法。
【請求項１２】
コンピュータ読取可能プログラムであって、コンピュータのプロセッサによって実行されると以下のステップを実行するようにコンピュータを制御し、以下のステップは、
複数のDiameterシグナリングルーティングノードの各々でステート情報を維持するステップを含み、各ノードは、ステート情報を維持するための複数のデータベースのうちの少なくとも１つへのアクセスを有し、
ステートフルDiameterルーティングを提供するためにステート情報を使用するステップと、
前記複数のDiameterシグナリングルーティングノードのうちの少なくともいくつかを、第１のグループのメンバーとなるように構成するステップとを含み、前記第１のグループの各メンバーは、前記第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、前記第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される、コンピュータ読取可能プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本願は、２０１３年３月２８日に出願された米国仮特許出願連続番号第６１／８０６，３２６号の利益を主張する。その開示は、その全体がここに引用により援用される。
【０００２】
技術分野
ここに説明される主題は、電気通信ネットワーク内でDiameterシグナリングメッセージをルーティングするための方法およびシステムに関する。より特定的には、ここに説明される主題は、ステートフル（stateful）・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェント（Diameter routing agent：ＤＲＡ）を介してステートフル・ルーティングを行なうための方法、システム、およびコンピュータ読取可能媒体に関する。
【背景技術】
【０００３】
背景
小規模な電気通信ネットワークでは、ポリシーおよび課金ルール機能（policy and charging rules function：ＰＣＲＦ）などのあるネットワークサービスまたは機能が、単一のノードを介して適切に行なわれ得る。Diameterシグナリングルーティングノードなどのルーティングノードは、必要に応じて、メッセージをさまざまな機能に、およびさまざまな機能からルーティングするように構成される。ネットワークは、より小規模なネットワークが、必要な場合に、トラフィックの増加に対処するためにノードを追加でき、それによりサイズを拡張する（たとえば、より大きくなる）ように、スケーラブルであってもよい。
【０００４】
より大規模なネットワークは、同じ機能を行なうために複数のノードを必要とし、たとえば、複数のＰＣＲＦノード、複数のポリシーおよび課金実施機能（policy and charging enforcement function：ＰＣＥＦ）ノード、複数のアプリケーション機能（ＡＦ）ノード、などが挙げられる。ネットワークにおけるノードの数が増加するにつれて、ルーティングノード（たとえば、Diameterルーティングノード）の数は通常、比例して増加する。Diameterプロトコルを使用する大規模な電気通信ネットワークは、複数のDiameterシグナリングルーティングノードおよび相関データベースを有し得る。今まで、応答性があり、かつスケーラブルである、データ（たとえばステート情報）を分散させるための単純な、および／または効率的な方法もしくはシステムは、ない。
【０００５】
図１は、概して１００で示される従来の電気通信ネットワークを示すブロック図である。ネットワークは複数のDiameterルーティングエージェント（ＤＲＡ）１０２を含み、それらは各々、ネットワーク１００内（たとえばネットワーク内）でDiameterメッセージをルーティングするように構成される。他のノード（たとえばエッジノード）は、ネットワーク１００と他のネットワークとの間（たとえばネットワーク間）でDiameterメッセージをルーティングするように構成される。たとえば、Diameterエッジエージェント（Diameter edge agent：ＤＥＡ）１０４は、複数のネットワーク間でメッセージをルーティングしてもよい。
【０００６】
図１に示すように、ＤＲＡ１０２は、ネットワーク１００内のネットワーク内ノード間で、たとえば、ＰＣＲＦノード１０６、ＰＣＥＦノード（たとえばアプリケーションサーバＡＳ１０８）、ゲートウェイＧＷ１１０、コール／セッション制御機能（call/session control function）ＣＳＣＦ１１２ノード間で、ならびに、ホーム加入者サーバ（home subscriber server：ＨＳＳ）／加入者プロファイルレジストリ（subscriber profile registry：ＳＰＲ）ノード１１４との間で、Diameterメッセージをルーティングするように構成される。ＤＥＡ１０４は、ネットワーク１００と、他のネットワーク内のノード、たとえば別のネットワークにおけるＰＣＲＦ１０６’などとの間で、メッセージをルーティングする。
【０００７】
ＤＲＡ１０２のグループが集団でおよび／または機能的に単一のＤＲＡとして動作するためには、ネットワーク１００内でのDiameterセッションのために、ステート情報（すなわち、加入者またはセッションをある特定のサーバに関連付ける情報）を維持することが必要になる。このため、各ＤＲＡ１０２は、ネットワーク１００内での加入者とセッションとの関連付けを維持するための少なくとも１つのデータベース１１６を含む。加入者らは、単なる例示として、国際モバイル加入者識別番号（international mobile subscriber identity：ＩＭＳＩ）、インターネットプロトコル（ＩＰ）アドレス、一意的な加入者ＩＤなどといった、何らかの形の識別子によって識別され得る。
【０００８】
モバイル加入者１１８が初めてネットワーク１００に加わると、ＣＳＣＦ１１２などのＰＣＥＦが、Ｇｘインターフェイスを使用する要求（ここに「Ｇｘ要求」と呼ばれる）を、１つのＤＲＡ１０２（たとえばＤＲＡ−１）に送信し得る。その後、ＡＳ１０８などのアプリケーションサーバが、Ｒｘインターフェイスを使用する要求（ここに「Ｒｘ要求」と呼ばれる）を、別のＤＲＡ１０２（たとえばＤＲＡ−２）に送信し得る。各ＤＲＡ１０２（たとえばＤＲＡ−２）は、他の各ＤＲＡ１０２（たとえばＤＲＡ−１）によってセットアップされたDiameterセッションの存在について知っている必要があるため、各ＤＲＡ１０２（たとえばＤＲＡ−２）で維持されアクセスされるデータベース１１６（たとえばＤＢ２）は、他の各ＤＲＡ１０２によって維持されアクセスされる他の各データベース１１６と同じ情報を含んでいなければならない。同じ情報を含むデータベース１１６同士は、ここに「一貫性のある（coherent）」データベースと呼ばれる。
【０００９】
データベース一貫性を維持するには、現在２つのアプローチがある。第１の方法は複製であり、それにより、１つのデータベースへのいかなる変更も、他のデータベースの各々への更新の送信をトリガする。しかしながら、ネットワークのサイズが大きくなり（たとえば拡張し）、より多くのルーティングノードがオンラインで使用されるようになるにつれて、一貫性が維持されなければならないデータベースの数も増加する。データベースの数が増加するにつれて、複製トラフィックの量は、機能的限界に達するまで非直線的に増加する。言い換えれば、複製のみでは良好に拡張しない。
【００１０】
データベース一貫性を維持する第２の方法はメッセージベースであり、それにより、１つのデータベースが必要な情報を有していない場合には、不足したデータベースをホストするノードは、別のデータベースをホストする別のノードに、その別のデータベースが必要な情報を含むかどうか判断するために問い合わせを行なわなければならない。その別のデータベースが必要な情報を含んでいない場合には、第３のデータベースをホストする第３のノードが問合され、というように、問い合わせは、情報が見つかるまで、または、問合されたデータベースのいずれも必要な情報を含んでいないと判断されるまで行なわれる。メッセージベースの方法は、特定の状況に依存して、複製方法よりも少ないトラフィックを生成するかもしれないし、生成しないかもしれないが、この方法は、情報を見つけるために複数のノードに１つずつ問い合わせを行なうのに時間がかかるため、長い待ち時間遅延を被る傾向がある。図１に示す従来のネットワーク１００では、データベース一貫性の維持に関連するトラフィックは破線で描かれ、他のすべてのトラフィックは実線で描かれている。
【００１１】
ネットワークオペレータは、ある機能について最適なベンダーとして、単一の機器ベンダーを選択することが多い。たとえば、ネットワークオペレータは、すべてのＤＲＡ１０２が互換性を有し、正確におよび／または途切れなく一緒に動作することを確実にするために、すべてのＤＲＡ１０２を同じベンダーから購入するかもしれない。このシナリオでは、ＤＲＡ１０２は、データベース一貫性を維持するために、ベンダー固有の（vendor-specific）、またはベンダー独自開発の（vendor-proprietary）方法を使用してもよい。
【００１２】
しかしながら、他のネットワークオペレータは、追加の形の冗長性を提供するために、同じ機能を行なう機器を複数のベンダーから購入するよう決定するかもしれない。１つの特定のベンダーからの機器すべてが、同じソフトウェアバグのために故障し、もしくは特定の欠陥または弱点の影響を受けるようになる場合には、（願わくば）同様の影響を受けないであろう少なくとも別の一連の機器があるであろう。しかしながら、これは、新しい一連の問題を生み出す。たとえば、異なるベンダーからのＤＲＡを有するネットワークは、データベース一貫性を維持するために、ある特定のベンダー独自開発の方法を使用することができない。このため、ネットワークはやむを得ず、前述の複製方法またはメッセージベースの方法といった最小公分母アプローチを使用する。
【００１３】
したがって、上述の従来のアプローチに関連するこれらの欠点に鑑みて、ステートフル・ルーティングを達成するために異なる機構を使用するＤＲＡを用いて、ステートフルDiameterルーティングを行なうための方法、システム、およびコンピュータ読取可能媒体に対する要望が存在する。
【発明の概要】
【課題を解決するための手段】
【００１４】
概要
一局面によれば、ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうためのシステムは、Diameterシグナリングメッセージをルーティングするための一連のDiameterシグナリングルーティングノードを含む。いくつかの局面では、ステートフル・ルーティングは、ベンダー固有のノードが、データベースを維持するための少なくとも１つのベンダー固有の一貫性ストラテジーを利用できるようにしており、同じベンダーからのノードはベンダー固有の技術を利用してもよく、複製および／またはメッセージベースの一貫性方法に依存するよう強制されないようになっている。これは、ネットワーク内のトラフィックを減少させ、および／または待ち時間遅延を減少させ得る。各ノードは、ステート情報を維持するための一連のデータベースのうちの少なくとも１つへのアクセスを有していてもよく、一連のノードは、第１のグループのメンバーとなるように構成され、第１のグループの各メンバーは、第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される。
【００１５】
別の局面によれば、ここに説明される主題は、ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうための方法を含む。この方法は、Diameterシグナリングメッセージをルーティングするための複数のDiameterシグナリングルーティングノードの各々でステート情報を維持するステップを含み、各ノードは、ステート情報を維持するための少なくとも１つのデータベースへのアクセスを有し、この方法はさらに、ステートフルDiameterルーティングを提供するためにステート情報を使用するステップを含む。一連のDiameterシグナリングルーティングノードは、第１のグループのメンバーとなるように構成され、第１のグループの各メンバーは、第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される。
【００１６】
ここに説明される主題は、ハードウェアおよび／またはファームウェアと組合されるソフトウェアで実現されてもよい。たとえば、ここに説明される主題は、ハードウェアプロセッサによって実行されるソフトウェアで実現されてもよい。例示的な一実現化例では、ここに説明される主題は、コンピュータのプロセッサによって実行されるとステップを行なうようにコンピュータを制御するコンピュータ実行可能な命令を格納した、非一時的コンピュータ読取可能媒体を使用して実現されてもよい。ここに説明される主題を実現するために好適である例示的なコンピュータ読取可能媒体は、ディスクメモリデバイス、チップメモリデバイス、プログラマブルロジックデバイス、および特定用途向け集積回路といった、非一時的コンピュータ読取可能媒体を含む。加えて、ここに説明される主題を実現するコンピュータ読取可能媒体は、単一のデバイスまたはコンピューティング・プラットフォームに配置されてもよく、もしくは、複数のデバイスまたはコンピューティング・プラットフォームにわたって分散されてもよい。
【００１７】
ここに説明される主題の好ましい実施形態を、添付図面を参照してこれから説明する。図中、同様の参照符号は同様の部分を表わす。
【図面の簡単な説明】
【００１８】
【図１】複数のDiameterルーティングエージェントを有する従来の電気通信ネットワークを示すブロック図である。
【図２】ここに説明される主題の一実施形態に従った、ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうための例示的なシステムを示すブロック図である。
【図３】ここに説明される主題の一実施形態に従った、ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェントを用いて、ステートフルDiameterルーティングを行なうための例示的なプロセスを示すフローチャートである。
【図４】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図５】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図６】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図７】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図８】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図９】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【図１０】ここに説明される主題に従ったシステムおよび方法の動作を示す例示的なメッセージフローを示す図である。
【発明を実施するための形態】
【００１９】
詳細な説明
ここに開示された主題に従って、ステートフル・ルーティングを達成するために異なる機構を使用するDiameterルーティングエージェント（ＤＲＡ）を用いて、ステートフルDiameterルーティングを行なうためのシステム、方法、およびコンピュータ読取可能媒体が提供される。いくつかの局面では、ステートフル・ルーティングは、ベンダー固有の（たとえば、ベンダー別にグループ化された）ノードが、データベースを維持するための少なくとも１つのベンダー固有の一貫性ストラテジーを利用できるようにしており、同じベンダーからのノードは、複製および／またはメッセージベースの一貫性方法に依存するよう強制されないようになっている。これは、ネットワーク内のトラフィックを減少させ、スケーラビリティを向上させ、および／または待ち時間遅延を減少させ得る。
【００２０】
この発明の例示的な実施形態を詳細に参照する。それらの例を添付図面に示す。可能な限り、同じまたは同様の部分を指すために、図面全体を通して同じ参照符号が使用されるであろう。
【００２１】
ここに使用されるように、「ステート情報」という用語は、加入者またはセッションをある特定のサーバに関連付けるあらゆる情報を含む。ステート情報は、加入者を識別する情報（たとえばＩＭＳＩ番号、ＩＰアドレスなど）、セッションを識別する情報（たとえばセッションＩＤ）、および／またはサーバを識別する情報（たとえばサーバー名、またはアドレス）を含んでいてもよい。ステート情報は、所与の加入者についての情報を含んでいてもよく、および／または、所与の加入者について、１つのサーバで確立された初期のセッションまたはDiameter要求（たとえばＧｘ要求）を、別のサーバで確立されたその後のセッションまたはDiameter要求（たとえばＲｘ要求）と相関させるために使用されてもよい。
【００２２】
ここに使用されるように、「ペアリング（paring）」および／または「組になるペア（mated pair）」という用語は、いくつかの局面ではネットワークオペレータを介して機能的に関連付けられた、および／または他の態様で関連させられた少なくとも２つのノードを指す。ノードは、ノードを互いに関連させるためのルーティングテーブルの設定および／または一意的なノード固有アドレスの利用を含む、容易化された関連付けを介して、ペアとして規定され、および／または構成されてもよい。ルーティングテーブルは、組になるペアを指定するために使用されてもよく、および／または、２つのノードを機能的に関連させる任意の他の好適な方法が使用されてもよい。
【００２３】
図２は、ここに説明される主題の局面に従った、ステートフル・ルーティングを達成するために異なる機構を使用するように構成されたＤＲＡを介してステートフルDiameterルーティングを行なうための、概して２００で示される例示的なネットワークまたはシステムを示すブロック図である。図２に示す実施形態では、システム２００は、Diameterシグナリングメッセージをルーティングするための複数のDiameterシグナリングルーティングノードを含み、各ノードは、ステート情報を維持するための複数のデータベース２０２のうちの１つを含み、および／または、それへのアクセスを有する。図２および図４〜７では、データベース一貫性の維持に関連するトラフィックは凡例によって識別され、他のすべてのトラフィックは破線または実線で描かれている。
【００２４】
Diameterシグナリングルーティングノードは、１つのグループのメンバーとなるように構成された一連のノードを含み、グループの各メンバーは、グループの他の各メンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される。図２に示す実施形態では、システム２００におけるＤＲＡは２つのグループへと構成されており、各グループは「プレーン（plane）」と呼ばれる。各グループは、同じベンダー（たとえば、ベンダー「Ａ」およびベンダー「Ｂ」）に属するノードを示していてもよい。このため、ネットワーク２００は、２つ以上のベンダーによって供給される機器を利用するように構成される。
【００２５】
図２が示すように、システム２００は、少なくともプレーンＡおよびプレーンＢを含み得る。プレーンＡは、ノードまたは「メンバー」ＤＲＡ  Ａ１およびＤＲＡ  Ａ２を含む。プレーンＢは、ノードまたは「メンバー」ＤＲＡ  Ｂ１およびＤＲＡ  Ｂ２を含む。一局面では、プレーンＡにおけるノードは、第１の機器ベンダーを介して提供され、プレーンＢにおけるノードは、第１の機器ベンダーとは異なる別の機器ベンダーを介して提供される。
【００２６】
グループの各メンバー（たとえば、プレーンＡ、プレーンＢのメンバー）は、第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために第１の機構を使用し、第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される。図２に示す実施形態では、プレーンＡのノードは、プレーンＡにおける他のノードとの間でステートフル・ルーティングを達成するために第１の機構を使用し、プレーンＢにおけるノードとの間でステートフル・ルーティングを達成するために別の異なる機構を使用するように構成される。例示的な目的のために、プレーンＡおよびプレーンＢは、２つのメンバー（たとえば、ＤＲＡ  Ａ１／Ｂ１およびＤＲＡ  Ａ２／Ｂ２）を有するとして示されているが、グループおよび／またはプレーンごとに、２つよりも多い、または少ないメンバーが提供されてもよい。
【００２７】
いくつかの局面では、１つのグループの１つ以上のメンバーは、その同じグループ内にない少なくとも１つのノード（たとえば、異なるグループにおけるノード）と組になるペアとして動作するように構成される。たとえば、図２に示す実施形態では、プレーンＡにおけるノードの各々は、プレーンＢにおける少なくとも１つのノードと組になるペア（たとえば、ペア１およびぺア２を示す）として動作するように構成される。いくつかの局面では、プレーンＡにおける各ＤＲＡは、ベンダーに依存しないストラテジーを使用して、そのペアとなる相手（mate）とデータベース一貫性を維持し、ベンダー固有のストラテジーを使用して、プレーンＡ内の他のノードとデータベース一貫性を維持するように構成される。ベンダーに依存しないストラテジーの例は、上述の複製ストラテジーまたはメッセージベースのストラテジー、もしくは任意の他の独自開発でないストラテジーを含むものの、それらに限定されない。ベンダー固有のストラテジーの例も、上述の複製ストラテジーまたはメッセージベースのストラテジー、もしくはある特定のベンダーにのみ利用可能な何らかの他の独自開発のストラテジーを含むものの、それらに限定されない。ノードをプレーンへと編成することは、１つの特定のベンダーからのノードが、複数のノードにわたってステートフル・ルーティングを提供するための、そのベンダーの固有の、およびおそらくは独自開発の方法を有利に使用できるようにする。一方、ノードをペアへと編成することは、異なるネットワークプレーン間の完全な互換性および／またはスケーラビリティを提供する。
【００２８】
いくつかの局面では、ＤＲＡ  Ａ１およびＤＲＡ  Ｂ１は組になるペアとして構成され、添字「Ａ」および「Ｂ」は異なるベンダーを示す。システム２００は、必要な場合に、組になるペア（たとえば、Ａ２−Ｂ２、Ａ３−Ｂ３など）を追加および／または除去することによって、容易に拡張または縮小され得る。異なるグループ内にあるものの、組になるペア内にあるノードは、データベース２０２内のデータを要求するかまたは同期させるために、ベンダーに依存しないソリューション（たとえば、メッセージングソリューション）を使用してもよい。同じグループ（たとえば、プレーンＡまたはプレーンＢ）内にあるノードは、同じベンダーからのものであってもよく、データベース２０２内のデータを同期させるために、ベンダー固有のソリューションを使用してもよい。
【００２９】
図２が示すように、各ＤＲＡは、ステート情報を含む少なくとも１つのデータベース２０２を含み、および／または、それへのアクセスを有する。ステート情報は、加入者またはセッションをある特定のサーバに関連付ける。たとえば、各データベース２０２は、加入者を識別する情報（たとえばＩＭＳＩ番号、ＩＰアドレスなど）またはセッションを識別する情報（たとえばセッションＩＤ）を、サーバを識別する情報（たとえばサーバ名、または一意的なノード固有アドレス）と関連付けてもよい。異なるグループにおけるノード間のデータベース２０２の一貫性は、ベンダーに依存しないストラテジーを介して維持されてもよく、一方、同じグループにおけるノード間の一貫性は、ベンダー固有のストラテジーを介して維持されてもよい。
【００３０】
図３は、ここに説明される主題の一実施形態に従った、ステートフル・ルーティングを達成するために異なる機構を使用するＤＲＡを介してステートフルDiameterルーティングを行なうための例示的なプロセスを示すフローチャートである。ブロック３００で、方法は、Diameterシグナリングメッセージをルーティングするための複数のDiameterシグナリングルーティングノードの各々でステート情報を維持するステップを含む。いくつかの局面では、各ノードは、ステート情報を維持するための複数のデータベースのうちの少なくとも１つへのアクセスを有しており、ステートフルDiameterルーティングを提供するためにステート情報を使用してもよい。
【００３１】
ブロック３０２で、一連のDiameterシグナリングルーティングノードは、ノードの第１のグループ（たとえば、またはプレーン）のメンバーとなるように構成される。グループは、同じベンダーによって供給されるハードウェアを有するノード、および／または同じソフトウェアを利用するハードウェアで構成されたノードを含んでいてもよい。ノードの第１のグループの各メンバーは、同じ第１のグループの他のメンバーとの間でステートフル・ルーティングを達成するために１つの機構を使用し、第１のグループのメンバーではないノードとの間でステートフル・ルーティングを達成するために第２の機構を使用するように構成される。たとえば、１つのベンダーからのノードは第１のグループへと構成され、データベース一貫性を維持するための第１のベンダー固有の方法を使用してもよい。別のベンダーからのノードは第２のグループ（すなわち、第１のベンダーのグループとは異なるグループ）へと構成され、データベース一貫性を維持するための第２のベンダー固有の方法を使用してもよい。
【００３２】
ブロック３０４で、第１のグループの１つ以上のメンバーが、第１のグループのメンバーではない少なくとも１つのノードと組になるペアとして動作するように構成される。たとえば、第１のグループの各メンバーは、第２のグループからのノードと組になるペアとして構成されてもよい。組になるペアは、ルーティングアドレス、ルーティングテーブル、および／または、少なくとも２つのノードを結合する、および／または機能的に関連させるための他の情報を使用して、ネットワークオペレータによって構成されてもよい。
【００３３】
ブロック３０６で、組になるペアとして動作するように構成された、第１のグループの１つ以上のメンバーは、ベンダーに依存しないストラテジーを使用して、そのペアとなる相手とデータベース一貫性を維持するように構成される。たとえば、組になるペアにおける各ノードは、他方のノードの（たとえば、ペアとなる相手の）データベースに問い合わせてそれを更新するために、複製および／または標準Diameterメッセージを使用してもよい。
【００３４】
ブロック３０８で、組になるペアとして動作するように構成された、第１のグループの１つ以上のメンバーは、ベンダー固有のストラテジーを使用して、第１のグループの他のメンバーとデータベース一貫性を維持するように構成される。各グループ内のノードは、ステートフル・ルーティングを達成するために同じ機構を使用し得るため、これらのノードは、その機構が、他のグループ内の（たとえば、および別のベンダーの）ノードによる使用のために利用できない、ベンダー固有のまたはベンダー独自開発の機構であっても、その機構を実現し得る。このように、各ベンダーは、競合する、または異なるベンダーからのノードとの相互互換性を依然として維持しながら、ベンダー固有の最適化されたソリューション、または独自開発のアルゴリズムを自由に使用することができる。
【００３５】
図４〜７は、ネットワークまたはシステム２００内のさまざまなノード間で生じる例示的なメッセージングを示しており、それらのベンダーグループおよびペアリングは、図２に示され、上述されている。システム２００は、Diameterシグナリングルーティングノードの少なくとも２つのグループ（たとえば、プレーンＡおよびプレーンＢ、図２）を含み、それらは、例示的な実施形態ではＤＲＡを含む。ＤＲＡ  Ａ１およびＤＲＡ  Ａ２は、ベンダー「Ａ」によって製造され、または供給されたデバイスを含み、ステートフル・ルーティングを達成するために１つの機構（たとえば、ベンダー固有の一貫性ストラテジーまたは機構）を使用する。ＤＲＡ  Ａ１およびＤＲＡ  Ａ２は、１つのプレーンであるプレーンＡへとグループ化される。ＤＲＡ  Ｂ１およびＤＲＡ  Ｂ２はベンダー「Ｂ」に関連付けられており、ステートフル・ルーティングを達成するために、第１のグループが使用する第１の機構とは異なる別の機構を使用する。ＤＲＡ  Ｂ１およびＤＲＡ  Ｂ２は、別のプレーンであるプレーンＢへとグループ化される。ＤＲＡ  Ａ１およびＤＲＡ  Ｂ１は、１つの組になるペア（たとえばペア１、図２）を含み、ＤＲＡ  Ａ２およびＤＲＡ  Ｂ２は、別の第２の組になるペア（たとえばペア２、図２）を含む。
【００３６】
図４によれば、およびブロック４０２で、ＰＣＥＦ２が、新しいＧｘセッションについての新しい要求を、ＤＲＡ  Ａ２およびＤＲＡ  Ｂ２（たとえばペア２、図２）間がラウンドロビンで処理するように構成される。たとえばブロック４０２で、ＰＣＥＦ２が最初に第１のＩＰ−ＣＡＮセッションを確立した時に、ＰＣＥＦ２を介して（たとえば、Ｇｘ確立のために）送信されたメッセージには、ＰＣＲＦを識別する情報がない（たとえば、宛先ホストまたは宛先ホスト値がない）かもしれない。この例では、ＤＲＡ  Ｂ２がメッセージを受信し、メッセージには宛先ホスト値がないと判断し、それはＤＲＡ処理をトリガする。一実施形態では、ＤＲＡ  Ｂ２は最初に、そのそれぞれのデータベース２０２をチェックして、Ｇｘ要求に関連する加入者またはセッションについての既存の結合があるかどうか判断する。一実施形態では、加入者は、ＩＭＳＩ番号によって識別されてもよい。ＤＲＡ  Ｂ２に関連付けられたデータベース２０２に、加入者またはセッションに関連付けられた既存の結合がある場合には、データベース２０２は、ＤＲＡ  Ｂ２がＧｘ要求を転送すべき特定のＰＣＲＦノードの識別情報を返すであろう。この例では、ブロック４０４で、要求はＰＣＲＦ２に転送される。
【００３７】
一方、ＤＲＡ  Ｂ２が、対応するデータベース２０２に、加入者またはセッションについてのエントリを含んでいない場合には、ブロック４０６で、ＤＲＡ  Ｂ２は、そのペアとなる相手に、Ｇｘ要求に関連する加入者／セッションについての既存の結合があるかどうか判断するよう問い合わせるであろう。既存の結合がある場合、ブロック４０８で、ＤＲＡ  Ａ２は、正しいＰＣＲＦ（たとえば、ＰＣＲＦ２）を識別する情報をＤＲＡ  Ｂ２に転送し得る。ＤＲＡ  Ｂ２は次に、それ自体のデータベース２０２に情報を格納し、その情報を使用して要求を適切にルーティングしてもよい。
【００３８】
ブロック４０２で、ＤＲＡ  Ａ２にも、Ｇｘ要求に関連付けられた加入者またはセッションについてのエントリがない場合には、ＤＲＡ  Ｂ２は、ＰＣＲＦの利用可能なプールから１つのＰＣＲＦを割り当て、選択されたＰＣＲＦにメッセージをルーティングし、選択されたＰＣＲＦとの加入者またはセッションの関連付けをそれぞれのデータベース２０２に格納してもよい。ＤＲＡ  Ｂ２は次に、関連付けについてＤＲＡ  Ａ２に通知し、またはその他の場合、ＤＲＡ  Ａ２に対応するデータベース２０２を更新して、それぞれのデータベース２０２が依然として一貫性を有するようにしてもよい。
【００３９】
いくつかの局面では、ＤＲＡ  Ａ２に関連付けられたデータベース２０２が更新されると、ＤＲＡ  Ａ２がメンバーであるプレーンＡ内のすべてのノードによって共有される一貫性ストラテジーが、起動されてもよい。その結果、プレーンＡ内の各ノードは、プレーンＡの他のノードとの間でデータベース一貫性を維持するための必要なステップを行なってもよい。図４〜７に示す実施形態では、たとえば、ＤＲＡ  Ａ２は、ＤＲＡ  Ａ１およびＤＲＡ  Ａ２に含まれる、および／またはそれらによってアクセスされるデータベース２０２を更新するために、複製機能をトリガしてもよい。同様に、ＤＲＡ  Ａ２およびＤＲＡ  Ａ１は、データベース一貫性を確実にするために、メッセージベースの一貫性ストラテジーを行なってもよい。ベンダー独自開発のストラテジーを含む他のストラテジーも、使用されてもよい。
【００４０】
いくつかの局面では、プレーンＡに関して説明されたものと同じ方法論が、プレーンＢ内のノードにも当てはまる。たとえば、プレーンＢにおけるノードに関連付けられたデータベースが一旦更新されると、プレーンＢのノードは、それらのノードが使用するデータベース一貫性ストラテジーに従事してもよい。上述の例は主として、データベース一貫性を維持するためのストラテジーについて述べているが、方法論は、ステートフル・ルーティングを達成するために使用されるあらゆる機構にも当てはまる。以下の図５〜１０の各々では、ステートフル・ルーティングを達成するために、各プレーンがその機構を起動する、たとえばデータベース一貫性ストラテジーなどを起動する、と仮定されており、それらのステップはここに完全には繰り返されない。
【００４１】
ここに説明されるシステムおよび方法の１つの利点は、組になるペアにおける各ノードは、そのそれぞれのデータベース内での変更について、そのペアとなる相手にのみ通知すればよい、ということである。図４に示す例では、ＤＲＡ  Ｂ２は、新しい／更新された結合および／またはステートフル情報について、ＤＲＡ  Ａ２にのみ通知すればよい。ＤＲＡ  Ｂ２は、新しい結合情報について、ＤＲＡ  Ａ１および／またはＤＲＡ  Ｂ１に通知しなくてもよい。ステートフル・ルーティングを達成するための各プレーンのそれぞれの機構は、そのような不一致を解決する。
【００４２】
図５では、図４と同様に、Ｇｘ要求には結合情報がない。むしろ、図５は、既存のＧｘセッションに関連付けられたメッセージングを示す。ブロック５０２で、ＰＣＥＦ２は、ＰＣＲＦ２を宛先ホストとして識別するメッセージをＤＲＡ  Ｂ２に送信する。宛先ホストが特定されているため、ＤＲＡ  Ｂ２はメッセージをルーティングするだけでよく、ＤＲＡ処理に従事しなくてもよい。ステップ５０４で、ＤＲＡ  Ｂ２は、要求をＰＣＲＦ２にルーティングする。
【００４３】
図６は、追加のＩＰ−ＣＡＮセッションを確立するためのメッセージングを示す。図６に示す実施形態では、ステップ６０２で、ＰＣＥＦ１などの別のＰＣＥＦが、新しいＧｘセッションについての要求を、ＤＲＡ  Ａ１およびＤＲＡ  Ｂ１を含むペア１のノードについてラウンドロビンで処理する。ブロック６０２で、ＰＣＥＦ１は新しい要求をＤＲＡ  Ａ１に送信する。ＤＲＡ  Ａ１は次に、この加入者またはセッションについての既存の結合があるかどうかチェックする。既存の結合がある場合、ブロック６０４Ａおよび６０４Ｂで、ＤＲＡ  Ａ１は、ＤＲＡ  Ａ２を介して、要求を識別されたＰＣＲＦ（たとえば、ＰＣＲＦ２）にルーティングする。ＤＲＡ  Ａ１は次に、その関連付けられたデータベース２０２を新しいセッション情報で更新してもよい。ＤＲＡ  Ａ１は次に、新しい結合のブロックでＤＲＡ  Ｂ１に通知してもよく、またはその他の場合、ＤＲＡ  Ｂ２が使用するデータベース２０２が、新しい、または更新された情報で更新されるようにしてもよい。
【００４４】
ＤＲＡ  Ａ１がそのそれぞれのデータベースに結合情報を含んでいない場合には、ブロック６０６で、ＤＲＡ  Ａ１は、そのペアとなる相手であるＤＲＡ  Ｂ１に問い合わせる。ＤＲＡ  Ｂ１が結合情報を有する場合、ブロック６０８で、ＤＲＡ  Ｂ１はその情報をＤＲＡ  Ａ１に送信する。ＤＲＡ  Ａ１は次に、そのそれぞれのデータベースを新しい情報で更新し、その情報を使用して問い合わせを適切にルーティングする。ＤＲＡ  Ｂ１も（たとえば、第１のＩＰ−ＣＡＮセッション確立要求を示す）結合情報を含んでいない場合には、ＤＲＡ  Ａ１は、利用可能なＰＣＲＦのプールから１つのＰＣＲＦを選択し、選択されたＰＣＲＦに要求をルーティングし、そのそれぞれのデータベース２０２をサービングノード情報で更新し、そのペアとなる相手（たとえば、ＤＲＡ  Ｂ１）に、ペアとなる相手もそのそれぞれのデータベース２０２を同じ情報で更新するよう通知してもよい。
【００４５】
いくつかの局面では、ここに説明されるシステムおよび方法は、たとえば、ポリシーノード間でのポリシー関連メッセージのルーティング、および／または課金ノード間での課金関連メッセージのルーティングを含む、あらゆるタイプのステートフル・ルーティングに適用可能であり得る。組になるペア内の各ＤＲＡはまた、図７に示すように、１つのタイプのDiameterセッションを別のタイプのDiameterセッションと相関させてもよい。
【００４６】
ここで図７を参照して、ブロック７０２で、アプリケーション機能ＡＦ２が、新しいＲｘセッションについての要求を、ＤＲＡ  Ａ２およびＤＲＡ  Ｂ２間でラウンドロビンに処理するように構成される。ＡＦ２は、最初のＲｘセッション確立要求をＤＲＡ  Ａ２に送信してもよい。加入者をＰＣＲＦ２に関連付ける、この加入者についての結合（たとえば、図４で確立されたＧｘセッション）がすでにある場合には、ブロック７０４で、ＤＲＡ  Ａ２はＲｘ要求をＰＣＲＦ２にルーティングするであろう。このように、新しく作成されたＲｘセッションは、同じ加入者についての既存のＧｘセッションと相関される。これは、１つのDiameterインターフェイス上で受信された要求を、別のDiameterインターフェイス上で受信された要求と相関させる方法を含む。例示的なDiameterインターフェイスは、Ｇｘ、Ｇｘａ、Ｇｘｂ、Ｇｘｃ、Ｇｙ、Ｒｆ、Ｒｏ、Ｒｘ、Ｓｄ、およびＳ９インターフェイスを含むものの、それらに限定されない。
【００４７】
上述の図４の説明と同様に、ＤＲＡ  Ａ２で含まれる、および／またはＤＲＡ  Ａ２によってアクセスされるデータベース２０２が、その加入者についての結合情報を含まない場合には、ブロック７０６で、ＤＲＡ  Ａ２はそのペアとなる相手（たとえば、ＤＲＡ  Ｂ２）に問い合わせし、ブロック７０８で（すなわち、ＤＲＡ  Ｂ２に関連付けられたデータベース２０２がなんらかの情報を含む場合）そこから情報を受信し、その情報を使用して問い合わせをルーティングし、次にその情報をそれ自体のデータベース内に格納してもよい。
【００４８】
図４〜７に示すようなネットワーク内ルーティングに加えて、図８〜１０は、ネットワーク間ルーティングに関する、ここに説明されるシステムおよび方法を示す。図８〜１０は、概して８００で示されるネットワークまたはシステムを示す。ネットワーク８００内のＤＲＡの各々に含まれる、および／またはそれらによってアクセスされるデータベースは、明確にするために省略されている。しかしながら、図２および図４〜７に関してこれまでに示され説明されたように、各ＤＲＡは、それぞれのデータベースを含み、および／またはそれぞれのデータベースにアクセスする、ということが理解される。図８〜１０では、データベース一貫性の維持を引き起こし得る、ステートフルDiameterルーティングに関連するトラフィックは、破線で識別されている。他のすべてのトラフィックは実線で描かれている。
【００４９】
図８によれば、加入者は、訪問先ネットワーク８０２へとローミングした。訪問先ネットワークにおけるノードであるｖＰＣＥＦが、訪問先ネットワークにおけるＰＣＲＦであるｖＰＣＲＦに、ポリシー要求を発行する。ポリシーノードｖＰＣＲＦは、ＰＣＲＦ−ＰＣＲＦトラフィック用に指定されたDiameterインターフェイス（たとえば、Ｓ９インターフェイス）を使用して、ユーザのホームネットワークの２つのDiameterエッジエージェントＤＥＡ  ＡおよびＤＥＡ  Ｂのうちの１つに、ラウンドロビンのやり方でポリシー要求をルーティングするように構成される。図８に示す例では、ブロック８０４で、要求はＤＥＡ  Ａにルーティングされる。一実施形態では、ＤＥＡは、加入者のホームネットワークにおけるＤＲＡのうちのいくつかまたはすべてに、要求をラウンドロビンで処理するように構成される。ブロック８０６で、ＤＥＡ  Ａは、要求をＤＲＡ  Ａ１にルーティングする。ＤＲＡ  Ａ１でのデータベース、および／またはＤＲＡ  Ａ１によってアクセスされるデータベースがステート情報を含む場合、その情報は、要求をルーティングするために使用されるであろう。ステート情報を含まない場合、ＤＲＡ  Ａ１は、そのペアとなる相手であるＤＲＡ  Ｂ１に問い合わせるであろう。ＤＲＡ  Ｂ１がステート情報を有する場合、それはその情報をＤＲＡ  Ａ１に送信し、それは適宜、そのステート情報を使用し、更新し、格納するであろう。ＤＲＡ  Ｂ１がステート情報を含んでいない場合、ＤＲＡ  Ａ１は、ＰＣＲＦを割り当て、ステート情報を作成し、ブロック８０８で作成されたステート情報を使用してメッセージをルーティングし、更新／作成された情報をＤＲＡ  Ｂ１に提供し、それは次に、ステート情報をそのそれぞれのデータベースに格納するであろう。
【００５０】
図９は、ローミングする加入者が、訪問先ネットワーク８０２における訪問先アプリケーション機能ｖＡＦによって提供されるであろうサービスまたは機能を探すシナリオを示す。ブロック９０２で、着信要求に応答して、ｖＡＦはｖＰＣＲＦにポリシー要求を送信する。訪問先ノードｖＰＣＲＦは、Ｒｘセッションを以前に確立されたＧｘセッションに相関させることを担当しており、そのため、ｖＰＣＲＦを介してＤＥＡのうちの１つ（たとえば、ＤＥＡ  Ａ）に送信されたメッセージは、適切なＰＣＲＦ（たとえば、ＰＣＲＦ１）に設定されている宛先ホスト値を有するであろう。ブロック９０４で、ｖＰＣＲＦはメッセージをＤＥＡ  Ａにルーティングする。次に、ブロック９０６Ａおよび９０６Ｂで、ＤＥＡ  Ａは、たとえばＤＲＡ  Ａ１を介して、要求をＰＣＲＦ１にルーティングし、それはＤＲＡ機能を行なわなくてもよい。なぜなら、メッセージは以前に相関されたためである。
【００５１】
図１０は、ここに説明される主題に従ったネットワークで、別のネットワークからの加入者がローミングしている、着信したローミングサービス利用者の要求（たとえば、Ｓ９およびＲｘ送信トラフィック）のシナリオを示す。ステップ１００２Ａ、１００２Ｂ、１００２Ｃ、および１００２Ｄで示すように、訪問先ネットワークにおけるＰＣＲＦ（たとえば、ＰＣＲＦ２）からのＳ９トラフィックと、訪問先ネットワークにおけるアプリケーション機能（たとえば、ＡＦ２）からのＲｘトラフィックとが、宛先領域に基づいて、ＤＥＡのうちの１つを介して加入者のホームネットワークにルーティングされてもよい。送信トラフィックのために、ＤＲＡ  Ａ１、ＤＲＡ  Ａ２、ＤＲＡ  Ｂ１、またはＤＲＡ  Ｂ２のいずれにおいても、ＤＲＡ処理は引き起こされない。なぜなら、トラフィックは宛先領域情報に基づいてルーティングされるためである。
【００５２】
ここに説明された主題のさまざまな詳細は、ここに説明された主題の範囲から逸脱することなく、変更されてもよい、ということが理解される。さらに、前述の説明は、限定のためではなく、例示のためのものに過ぎない。
【図１】
0006033984.tif 000002
【図２】
0006033984.tif 000003
【図３】
0006033984.tif 000004
【図４】
0006033984.tif 000005
【図５】
0006033984.tif 000006
【図６】
0006033984.tif 000007
【図７】
0006033984.tif 000008
【図８】
0006033984.tif 000009
【図９】
0006033984.tif 000010
【図１０】
0006033984.tif 000011