(57)【要約】  高度なサービスルーティングを実行するための方法、システムおよびコンピュータ読取可能媒体が開示される。一方法は、ＤＳＲに関連付けられたメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップを含む。当該方法はまた、複数のサービスプロバイダによって提供されるサービス能力情報に基づくサービスルーティングデータを用いて、Ｄｉａｍｅｔｅｒメッセージに関連付けられたサービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、サービスを実行するために少なくとも１つのサービスプロバイダにＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む。
2016526217.tif 000002
【特許請求の範囲】
【請求項１】
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）において高度なサービスルーティングを実行するための方法であって、
前記ＤＳＲに関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップと、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む、方法。
【請求項２】
前記Ｄｉａｍｅｔｅｒアプリケーションにおいて、前記サービスを実行した後、前記少なくとも１つのサービスプロバイダからの応答メッセージを受信するステップを含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲによってホストされるローカルアプリケーションである、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲとは異なるノードによってホストされるアプリケーションである、請求項１に記載の方法。
【請求項５】
前記サービス能力情報は、前記複数のサービスプロバイダのうち１つ以上に関連付けられた１つ以上のサービスについての、動作状態情報、利用可能性情報、優先度情報、冗長状態情報、処理能力情報、輻輳情報、物理的位置情報またはグループ分け情報を含む、請求項１に記載の方法。
【請求項６】
前記サービスルーティングデータは、前記Ｄｉａｍｅｔｅｒアプリケーションによって維持される履歴情報またはロードバランシング情報を含む、請求項１に記載の方法。
【請求項７】
サービスルーティングデータを用いて前記少なくとも１つのサービスプロバイダを決定するステップは、前記履歴情報または前記ロードバランシング情報を用いて、ロードバランシングを実行するステップを含む、請求項５に記載の方法。
【請求項８】
前記サービス能力情報は、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサに対して周期的、非周期的または動的に提供される、請求項１に記載の方法。
【請求項９】
前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記複数のサービスプロバイダをサブスクライブし、前記複数のサービスプロバイダは、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサにサービス能力情報を送信する、請求項１に記載の方法。
【請求項１０】
サービスルーティングデータを用いて前記少なくとも１つのサービスプロバイダを決定するステップは、前記複数のサービスプロバイダに関連付けられた動作状態情報、利用可能性情報、優先度もしくは優先順位情報、冗長状態情報、処理能力情報、輻輳情報、物理的位置情報、履歴ルーティング情報、ロードバランシング情報またはグループ分け情報のうち少なくとも１つを用いて、前記少なくとも１つのサービスプロバイダを選択するステップを含む、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのサービスプロバイダは、複数のＤｉａｍｅｔｅｒアプリケーションまたはＤｉａｍｅｔｅｒメッセージプロセッサに関連付けられたサービス処理を実行し得る、請求項１に記載の方法。
【請求項１２】
前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記ＤＳＲは、前記少なくとも１つのサービスプロバイダのためのプロキシとして機能する、請求項１に記載の方法。
【請求項１３】
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）において高度なサービスルーティングを実行するためのシステムであって、
ＤＳＲを含み、前記ＤＳＲは、
複数のサービスプロバイダによって提供されるサービス能力情報に基づいたサービスルーティングデータを格納するように構成された非一時的なコンピュータ読取可能媒体と、
前記ＤＳＲに関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサとを含み、前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、
前記ＤＳＲに関連付けられた前記Ｄｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信し、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定し、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するように構成される、システム。
【請求項１４】
前記ＤＳＲは、前記Ｄｉａｍｅｔｅｒアプリケーションにおいて、前記サービスを実行した後、前記少なくとも１つのサービスプロバイダからの応答メッセージを受信するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲによってホストされるローカルアプリケーションである、請求項１３に記載のシステム。
【請求項１６】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲとは異なるノードによってホストされるアプリケーションである、請求項１３に記載のシステム。
【請求項１７】
前記サービス能力情報は、前記複数のサービスプロバイダのうち１つ以上に関連付けられる１つ以上のサービスについての、動作状態情報、利用可能性情報、優先度情報、冗長性状態情報、処理能力情報、輻輳情報、物理的位置情報またはグループ分け情報を含む、請求項１３に記載のシステム。
【請求項１８】
前記サービスルーティングデータは、前記Ｄｉａｍｅｔｅｒアプリケーションによって維持される履歴情報またはロードバランシング情報を含む、請求項１３に記載のシステム。
【請求項１９】
前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記履歴情報または前記ロードバランシング情報を用いてロードバランシングを実行するように構成される、請求項１８に記載のシステム。
【請求項２０】
前記サービス能力情報は、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサに周期的、非周期的または動的に提供される、請求項１３に記載のシステム。
【請求項２１】
前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記複数のサービスプロバイダをサブスクライブし、前記複数のサービスプロバイダは、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサにサービス能力情報を送信する、請求項１３に記載のシステム。
【請求項２２】
前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記複数のサービスプロバイダに関連付けられた動作状態情報、優先度または優先順位情報、冗長性状態情報、処理能力情報、輻輳情報、物理的位置情報、履歴情報、ロードバランシング情報またはグループ分け情報のうち少なくとも１つを用いて、前記少なくとも１つのサービスプロバイダを選択するように構成される、請求項１３に記載のシステム。
【請求項２３】
前記少なくとも１つのサービスプロバイダは、複数のＤｉａｍｅｔｅｒアプリケーションまたはＤｉａｍｅｔｅｒメッセージプロセッサに関連付けられたサービス処理を実行する、請求項１３に記載のシステム。
【請求項２４】
前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記ＤＳＲは、前記少なくとも１つのサービスプロバイダのためのプロキシとして機能する、請求項１３に記載のシステム。
【請求項２５】
コンピュータ読取可能媒体において具体化されるコンピュータ実行可能命令を含む非一時的なコンピュータ読取可能媒体であって、コンピュータのプロセッサによって実行されると、
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）に関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップと、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む、非一時的なコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本願は、２０１３年５月２３日に提出され、その開示の全体が引用によりこの明細書中に援用されている米国特許出願連続番号第１３／９０１，５３４号の利益を主張する。
【０００２】
技術分野
この明細書中に記載される主題は、Ｄｉａｍｅｔｅｒノードにおいてルーティングを実行することに関する。より特定的には、本主題は、高度なサービスルーティングを実行するための方法、システムおよびコンピュータ読取可能媒体に関する。
【背景技術】
【０００３】
背景
Ｄｉａｍｅｔｅｒは、コンピューターネットワークのための認証、認可およびアカウンティング（ＡＡＡ：authentication, authorization and accounting）プロトコルであり、ＲＡＤＩＵＳの後継プロトコルである。Ｄｉａｍｅｔｅｒベースのプロトコルは、その開示全体が引用によりこの明細書中に援用されているＩＥＴＦ  ＲＦＣ  ６７３３において定義されている。Ｄｉａｍｅｔｅｒノードは、Ｄｉａｍｅｔｅｒプロトコルを実現するホストプロセスを実行する如何なる好適なエンティティ（たとえば、コンピューティングプラットフォーム、プロセッサまたはデバイス）であってもよい。メッセージプロセッサ（ＭＰ：message processor）は、ＤＳＲシグナリングアプリケーションをホストとする好適なエンティティ（たとえば、物理的なプロセッサまたは回路基板）であってもよい。Ｄｉａｍｅｔｅｒエージェントは、リレーサービス、プロキシサービス、リダイレクトサービスまたは翻訳サービスを提供するＤｉａｍｅｔｅｒノードであってもよい。Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ：Diameter signaling router）は、同じ場所に配置された１つ以上のＭＰを含んでもよく、１つ以上のＤｉａｍｅｔｅｒノードまたはエージェント（たとえば、Ｄｉａｍｅｔｅｒリレーエージェント、Ｄｉａｍｅｔｅｒプロキシエージェント、Ｄｉａｍｅｔｅｒ翻訳エージェントおよび／またはＤｉａｍｅｔｅｒ翻訳エージェント）で構成されてもよい。
【０００４】
ＤｉａｍｅｔｅｒメッセージがＤＳＲにおいて受信されると、メッセージを１つ以上のＤｉａｍｅｔｅｒアプリケーションで処理する必要が生じるかもしれない。従来のＤｉａｍｅｔｅｒアプリケーションは１つ以上のサービスを実行するように構成される。しかしながら、このような構成に関連する１つの問題として、このような構成がスケーラブルにならない点が挙げられる。これは、各々のＤｉａｍｅｔｅｒアプリケーションがネットワークオペレータによる特定のサービスを実行するように構成される可能性があり、このようなサービスが他のＤｉａｍｅｔｅｒアプリケーションによって使用されない可能性があるからである。Ｄｉａｍｅｔｅｒアプリケーションから遠隔でサービスを実行する場合に、さらに他の問題が生じる可能性がある。
【０００５】
したがって、これらの問題点を考慮して、高度なサービスルーティングを実行するための方法、システムおよびコンピュータ読取可能媒体が必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
高度なサービスルーティングを実行するための方法、システムおよびコンピュータ読取可能媒体が開示される。一方法は、ＤＳＲに関連付けられたメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップを含む。当該方法はまた、複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、Ｄｉａｍｅｔｅｒメッセージに関連付けられたサービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、サービスを実行するために少なくとも１つのサービスプロバイダにＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む。
【０００７】
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）において高度なサービスルーティングを実行するためのシステムも開示される。システムは、サービスルーティングデータを格納するように構成された非一時的なコンピュータ読取可能媒体を備えたＤＳＲを含む。サービスルーティングデータは、複数のサービスプロバイダによって提供されるサービス能力情報を含む。ＤＳＲはまた、ＤＳＲに関連付けられたメッセージプロセッサを含む。メッセージプロセッサは、ＤＳＲに関連付けられたメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信し、サービスルーティングデータを用いて、Ｄｉａｍｅｔｅｒメッセージに関連付けられたサービスを実行するための少なくとも１つのサービスプロバイダを決定し、サービスを実行するために少なくとも１つのサービスプロバイダにＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を送信するように構成される。
【０００８】
この明細書中に記載される主題は、ハードウェアおよび／またはファームウェアと組み合わせてソフトウェアにおいて実現されてもよい。たとえば、この明細書中に記載される主題は、プロセッサによって実行される機能として実現されてもよい。１つの例示的な実現例においては、高度なサービスルーティングを実行するための、この明細書中に記載される主題は、実行可能な命令が格納された非一時的なコンピュータ読取可能媒体を用いて実現されてもよく、当該実行可能な命令は、コンピュータのプロセッサによって実行されると、当該プロセッサがステップを実行するよう制御する。この明細書中に記載される主題を実現するのに適した例示的な非一時的なコンピュータ読取可能媒体は、プロセッサによってアクセス可能なチップメモリデバイスまたはディスクメモリデバイス、プログラマブルロジックデバイス、および特定用途向け集積回路を含む。加えて、この明細書中に記載される主題を実現するコンピュータ読取可能媒体は、単一のコンピューティングプラットフォーム上に配置されてもよく、または複数のコンピューティングプラットフォームにわたって分散させてもよい。
【０００９】
「ノード」という語は、この明細書中において用いられる場合、１つ以上のプロセッサおよびメモリを含む物理的なコンピューティングプラットフォームを指す。
【００１０】
「機能（function）」または「モジュール（module）」という語は、この明細書中において用いられる場合、この明細書中に記載される特徴を実現するために、ハードウェアおよび／またはファームウェアと組合わされたソフトウェアを指す。
【００１１】
この明細書中に記載される主題をここで、添付の図面に関連付けて説明する。
【図面の簡単な説明】
【００１２】
【図１】この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングを実行するための例示的な環境を示す図である。
【図２】この明細書中に記載される主題の実施形態に従った、いくつかのＤｉａｍｅｔｅｒアプリケーションを実行する例示的なＤｉａｍｅｔｅｒエージェントメッセージプロセッサ（ＤＡ−ＭＰ：Diameter agent message processor）を示す図である。
【図３】この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングの実行に関連付けられた例示的なメッセージを示す図である。
【図４】この明細書中に記載される主題の実施形態に従った、ロードバランシングサービス要求に関連付けられた例示的なメッセージを示す図である。
【図５】この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングを実行するための例示的なプロセスを示す図である。
【発明を実施するための形態】
【００１３】
詳細な説明
この明細書中に記載される主題は、高度なサービスルーティングを実行するための方法、システムおよびコンピュータ読取可能媒体を含む。いくつかの実施形態においては、この明細書中に記載される主題は、Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）などのＤｉａｍｅｔｅｒエージェントまたはＤｉａｍｅｔｅｒノードにおいて実現されてもよい。この明細書中に開示される主題のいくつかの局面に従ったＤＳＲ、プロセッサ、ＤｉａｍｅｔｅｒアプリケーションまたはＤｉａｍｅｔｅｒノードは、１つ以上のサービスプロバイダをサブスクライブするかまたは１つ以上のサービスプロバイダとインタラクトするように構成されてもよい。サブスクライバは、１つ以上のサービスプロバイダからサービス能力情報（service capability information）を受信してもよく、この情報を用いてサービスルーティングデータを維持してもよい。サービスプロバイダは、課金バインディングサービス、ドメイン名レゾリューションサービスまたは国際移動加入者識別（ＩＭＳＩ：international mobile subscriber identity）レゾリューションサービスなどのサービスを提供または実行する如何なるエンティティ（たとえば、データベースプロセッサ、セッションバインディングリポジトリまたはサーバ）をも含み得る。この明細書中に開示される主題のいくつかの局面に従うと、ＤＳＲ（またはその内部にあるコンポーネント）上で実行されるＤｉａｍｅｔｅｒアプリケーションは、サービス能力情報および／またはロードバランシング情報（たとえば、履歴ルーティング情報）に基づいたサービスルーティングデータを用いて、Ｄｉａｍｅｔｅｒメッセージなどのさまざまなメッセージに関連付けられたサービスを実行するための１つ以上のサービスプロバイダを決定するように構成されてもよい。
【００１４】
有利には、この明細書中に記載される主題のいくつかの局面は、ＤｉａｍｅｔｅｒアプリケーションとＤｉａｍｅｔｅｒサービスとのデカップリングを可能にする。ＤｉａｍｅｔｅｒアプリケーションとＤｉａｍｅｔｅｒサービスとをデカップリングすることにより、Ｄｉａｍｅｔｅｒサービスプロバイダは、Ｄｉａｍｅｔｅｒアプリケーションから独立して展開されてもよく、これにより、リソースのスケーラビリティおよび展開の融通性が改善され得る。有利には、この明細書中に記載される主題のいくつかの局面は、Ｄｉａｍｅｔｅｒアプリケーションが１つ以上のサービスプロバイダを用いて、（たとえば、Ｄｉａｍｅｔｅｒアプリケーションによって従来から提供または実行されている）いくつかのサービスを提供または実行することを可能にする。有利には、この明細書中に記載される主題のいくつかの局面は、複数のＤｉａｍｅｔｅｒアプリケーションが１つ以上のサービスプロバイダのサービスを共有することを可能にし、これにより、リソース（たとえばサービス）を共有しない従来のＤｉａｍｅｔｅｒアプリケーションに比べてリソース利用効率を高め得る。
【００１５】
図１は、この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングを実行するための例示的な環境を示す図である。例示的な環境１００は、１つ以上のネットワークを含んでもよく、１つ以上のネットワークマネージャ１０２および少なくとも１つのＤＳＲ１０４を含んでもよい。
【００１６】
ネットワークマネージャ１０２は、環境１００におけるネットワーク、ＤＳＲ１０４および／または他のネットワーキングノードに関連付けられた動作、管理、メンテナンスおよび／またはプロビジョニング（ＯＡＭ＆Ｐ：operations, administration, maintenance, and/or provisioning）を実行するための如何なる好適なエンティティをも表わし得る。いくつかの実施形態においては、ネットワークマネージャ１０２は、ＯＡＭ＆Ｐまたは関連する機能を実行するためのプライマリノードおよびバックアップノードまたは待機ノードを表わし得る。いくつかの実施形態においては、ネットワークマネージャ１０２はＤＳＲ１０４またはその内部のコンポーネントを構成してもよい。たとえば、ネットワークマネージャ１０２を用いるネットワークオペレータは、１つ以上のサービスプロバイダをサブスクライブするようにＤＳＲ１０４またはその内部のコンポーネントを構成してもよい。ネットワークマネージャ１０２はまた、サービスプロバイダをグループ分けし、さまざまなノードのための冗長構成を決定してもよい。
【００１７】
ＤＳＲ１０４は、Ｄｉａｍｅｔｅｒメッセージを含むさまざまなメッセージを受信、送信および／または処理するための如何なる好適なエンティティ（たとえば、１つ以上のコンピューティングプラットフォーム）をも表わし得る。たとえば、ＤＳＲ１０４は、物理的な区域または位置にわたって分散された１つ以上のネットワークエレメントまたはノードを含んでもよい。ＤＳＲ１０４は、ＤｉａｍｅｔｅｒクライアントおよびＤｉａｍｅｔｅｒサーバなどの多数のＤｉａｍｅｔｅｒピアノードと通信するための機能を含み得る。たとえば、Ｄｉａｍｅｔｅｒノードは、ＤＳＲ１０４に関連付けられた１つ以上のインターフェイスを介してＤｉａｍｅｔｅｒメッセージを送信または受信してもよい。
【００１８】
ＤＳＲ１０４は、高度なサービスルーティングを実行するための機能を含み得る。ＤＳＲ１０４は、サービスルーティングデータを維持してもよく、受信されたＤｉａｍｅｔｅｒメッセージに関連付けられた処理用の１つ以上のサービスプロバイダを選択するためにサービスルーティングデータを用いてもよい。ＤＳＲ１０４は、１つ以上の宛先、たとえば、ＤＳＲ１０４外にあるＤｉａｍｅｔｅｒサーバまたはＤＳＲ１０４内のメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションに、メッセージをルーティング、転送、翻訳、リダイレクトまたは送信するための機能を含んでいてもよい。
【００１９】
ＤＳＲ１０４はストレージ１２６を含み得る。ストレージ１２６は、サービスルーティングデータまたは関連する情報を格納または維持するための如何なる好適なエンティティ（たとえば、データベースコンピューティングプラットフォーム）をも表わし得る。いくつかの実施形態においては、サービスルーティングデータは、サービス能力情報および／またはロードバランシング情報（たとえば、履歴ルーティング情報）から得られてもよい。例示的なサービスルーティングデータは、サービスを実行するための適切なサービスプロバイダを決定または選択するために使用可能な如何なる情報をも含み得る。たとえば、ストレージ１２６は、１つ以上のサービスプロバイダおよびサービスグループ（たとえば、サービスプロバイダのグループ）に関連付けられたサービス能力情報を含み得る。例示的なサービス能力情報は、動作状態情報、利用可能性情報、優先度情報、冗長状態情報、処理能力情報、輻輳情報、物理的位置情報および／またはグループ分け情報を含んでもよい。例示的な履歴情報は、履歴ルーティング情報、ロードバランシングアルゴリズムまたは他のロードバランシング情報を含んでもよい。
【００２０】
いくつかの実施形態においては、サービスルーティングデータ（たとえば、サービス能力情報）は、サービスプロバイダによって提供されてもよく、Ｄｉａｍｅｔｅｒアプリケーションなどのサービスユーザによって消費されてもよい。いくつかの実施形態においては、サービスルーティングデータ（たとえば、履歴ルーティング情報またはロードバランシング情報）は、ＤＳＲ１０４のＤｉａｍｅｔｅｒアプリケーションまたはコンポーネントなどのサービスユーザによって提供または維持されてもよい。
【００２１】
ＤＳＲ１０４は、ＤＡ１０６およびＤＡ１０８などの１つ以上のＤＡまたはノードを含んでもよい。ＤＡ１０６およびＤＡ１０８は、Ｄｉａｍｅｔｅｒサービスルーティングおよび／またはこの明細書中に記載される他の機能を含むメッセージ処理を実行するための如何なる好適なエンティティをも表わし得る。たとえば、ＤＡ１０８は、メッセージを受信または伝送するために１つ以上のプロセッサおよび１つ以上のネットワークインターフェイスと共に、コンピューティングプラットフォーム上で実現されてもよい。
【００２２】
ＤＡ１０６およびＤＡ１０８は、さまざまなメッセージ（たとえば、プロトコルデータ単位（ＰＤＵ：protocol data unit））を受信、処理および／または送信するための機能を含んでもよく、Ｄｉａｍｅｔｅｒノードとの通信のためのさまざまな通信インターフェイス、たとえば、第３世代パートナーシッププロジェクト（３ＧＰＰ：3rd Generation Partnership Project）ＬＴＥ通信インターフェイスおよび他の（たとえば非ＬＴＥ）通信インターフェイス、を含んでもよい。いくつかの実施形態においては、受信、処理および／またはルーティングの機能は１つ以上のモジュールに含まれてもよい。たとえば、ＤＡ１０８は、複数の異なるＤｉａｍｅｔｅｒシグナリングインターフェイス、たとえばＳ９、Ｓ６ａ、Ｓ１１、ＣｘおよびＤｘに関連付けられるＤｉａｍｅｔｅｒシグナリングメッセージを受信するための１つ以上のモジュールを含み得るかまたはこれら１つ以上のモジュールにアクセスし得る。ＤＡ１０６およびＤＡ１０８は、ストレージ１２６にアクセスするための機能および／または高度なサービスルーティングを実行するための機能を含み得る。
【００２３】
ＤＡ１０６は、ＤＡマネージャ１１０、１つ以上のＤＡ−ＭＰ１１２、サービス「Ｃ」を提供するためのサービスプロバイダのグループ（サービスＣグループ）１１４、およびサービス「Ｄ」を提供するためのサービスプロバイダのグループ（サービスＤグループ）１１６を含み得る。ＤＡマネージャ１１０は、ＤＡ１０６の１つ以上の局面を構成、管理またはプロビジョニングするための如何なる好適なエンティティ（たとえば、ＤＡ−ＭＰ１１２上で実行されるソフトウェア）であってもよい。たとえば、ＤＡマネージャ１１０は、ＤＳＲ１０４におけるさまざまなＤＡと通信するため機能、および１つ以上のサービスグループと対話するための機能を含み得る。ＤＡマネージャ１１０はまた、１つ以上のサービスグループからのサービス能力情報をサブスクライブおよび処理し、サービス能力情報に基づいてサービスルーティングデータを生成し、ならびに／または、ストレージ１２６にサービスルーティングデータを格納するように構成されてもよい。
【００２４】
ＤＡ−ＭＰ１１２は、メッセージを処理するための１つ以上の好適なエンティティ（たとえば、１つ以上の物理的プロセッサ、ハードウェアベースの回路、フィールドプログラマブルゲートウェイアレイ（ＦＰＧＡ：field-programmable gateway array）、特定用途向け集積回路（ＡＳＩＣ：application-specific integrated circuit））を表わし得る。ＤＡ−ＭＰ１１２は、高度なサービスルーティングに関連付けられたさまざまな局面を実行するためのソフトウェアまたはコードを実行してもよい。たとえば、ＤＡ−ＭＰ１１２は、Ｄｉａｍｅｔｅｒアプリケーションなどの１つ以上のプロセスを含み得る。Ｄｉａｍｅｔｅｒアプリケーションは、通信機能および処理機能を実行するための機能を含み得る。たとえば、Ｄｉａｍｅｔｅｒアプリケーションは、フルアドレスベースのレゾリューションを実行してもよく、このレゾリューションを完成する際に１つ以上のサービスプロバイダと通信してもよい。いくつかの実施形態においては、Ｄｉａｍｅｔｅｒアプリケーションは、プロキシエージェント、翻訳エージェント、リダイレクトエージェント、リレーエージェントまたは課金プロキシエージェントに関連付けられた機能を実行してもよい。たとえば、Ｄｉａｍｅｔｅｒアプリケーションは、課金バインディングサービスプロバイダのためのプロキシとして機能してもよい。
【００２５】
サービスＣグループ１１４は１つ以上のサービスプロバイダを表わし得る。サービスＣグループ１１４における各々のサービスプロバイダは、特定のサービス「Ｃ」を実行するための如何なる好適なエンティティ（たとえば、ＤＡ−ＭＰ１１２上で実行されるソフトウェア）であってもよい。たとえば、サービスＣグループ１１４のメンバによって実行される例示的なサービスは、課金サービス、セッションバインディングサービス、課金バインディングサービス、データベースルックアップまたはクエリサービス、ポリシーサービス、ポリシールールサービス、認証サービス、アカウンティングサービス、または認可サービスを含み得る。
【００２６】
いくつかの実施形態においては、サービスＣグループ１１４は、１つ以上の識別子、たとえば、１つ以上のグループ識別子（たとえば、グループ１５）、１つ以上の物理的位置識別子（たとえば、ＩＰアドレスもしくはサブネット）、ブレードもしくはサーバ識別子、または、全地球測位システム（ＧＰＳ：global positioning system）座標、動作状態識別子（たとえば、「利用可能」、「輻輳した」もしくは「利用不可能」）、および／または、冗長状態識別子（たとえば「プライマリ」、「バックアップ」、「プライマリ／バックアップ」）などに関連付けられてもよい。いくつかの実施形態においては、各々のサービスプロバイダ（たとえば、サービスＣグループ１１４のメンバまたはインスタンス）は、サービスプロバイダ識別子（ＳＰＩＤ：service provider identifier）などの一意識別子に関連付けられてもよい。たとえば、ＳＰＩＤは、比較的固有（たとえば、或るグループまたは位置内において固有）であってもよく、または汎用的に固有（たとえば、すべての利用可能またはアクティブなサービスプロバイダにわたって固有）であってもよい。
【００２７】
サービスＤグループ１１６は１つ以上のサービスプロバイダを表わし得る。サービスＤグループ１１６における各々のサービスプロバイダは、特定のサービス「Ｄ」を実行するための如何なる好適なエンティティ（たとえば、ＤＡ−ＭＰ１１２上で実行されるソフトウェア）であってもよい。たとえば、サービスＤグループ１１６のメンバによって実行される例示的なサービスは、サービスＣグループ１１４のメンバによって実行されるのとは異なるサービスを含み得る。たとえば、サービスＣグループ１１４のメンバが課金サービスを実行する場合、サービスＤグループ１１６のメンバは認証サービスを実行してもよい。
【００２８】
いくつかの実施形態においては、サービスＤグループ１１６は、１つ以上の識別子、たとえば、１つ以上のグループ識別子、１つ以上の一意識別子（たとえばグループメンバのためのＳＰＩＤ）、１つ以上の物理的位置識別子、動作状態識別子、および／または、冗長状態識別子などに関連付けられてもよい。
【００２９】
いくつかの実施形態においては、サービスグループまたはサービスプロバイダは、複数のＤＡに関連付けられてもよい。たとえば、サービスグループ（たとえば、サービスＥグループ）は、ＤＡ１０６およびＤＡ１０８において、またはＤＡ１０６およびＤＡ１０８によってホストされるサービスプロバイダを含み得る。
【００３０】
ＤＡ１０８は、ＤＡマネージャ１１８、１つ以上のＤＡ−ＭＰ１２０、サービスＣグループ１２２、およびサービスＤグループ１２４を含み得る。ＤＡマネージャ１１８は、ＤＡ１０８の１つ以上の局面を構成、管理またはプロビジョニングするための如何なる好適なエンティティ（たとえば、ＤＡ−ＭＰ１１２上で実行されるソフトウェア）であってもよく、ＤＡマネージャ１１０と同様の機能を含んでもよい。ＤＡ−ＭＰ１２０はＤＡ−ＭＰ１１２と同様の機能を含み得る。サービスＣグループ１２２のメンバはサービスＣグループ１１４のメンバと同様の機能を含み得る。いくつかの実施形態においては、サービスＣグループ１２２は、サービスＣグループ１１４とは異なるグループ識別子に関連付けられてもよい。たとえば、図１に示されるように、サービスＣグループ１２２はグループ３０に関連付けられてもよく、サービスＣグループ１１４はグループ１５に関連付けられてもよい。サービスＤグループ１２４のメンバはサービスＤグループ１１６のメンバと同様の機能を含み得る。いくつかの実施形態においては、サービスＤグループ１２４は、サービスＤグループ１１６とは異なるグループ識別子に関連付けられてもよい。たとえば、図１に示されるように、サービスＤグループ１２４はグループ２０に関連付けられてもよく、サービスＤグループ１１６はグループ１５および２０に関連付けられてもよい。
【００３１】
図１は、ＤＳＲ１０４内のサービスグループを示しているが、いくつかのサービスグループまたはその内部のサービスプロバイダが、（図１には示されない）別のＤＳＲによって、またはＤＳＲ１０４とは異なるノードによってホストされ得ることが認識されるだろう。たとえば、サービスプロバイダは、サブスクライバプロファイルリポジトリ（ＳＰＲ：subscriber profile repository）または図１に示されないホームサブスクライバサーバ（ＨＳＳ：home subscriber server）に関連付けられてもよい。
【００３２】
図２は、この明細書中に記載される主題の実施形態に従った、いくつかのＤｉａｍｅｔｅｒアプリケーションを実行する例示的なＤＡ−ＭＰ２００を示す図である。ＤＡ−ＭＰ２００は、ＤＡ−ＭＰ１１２および／またはＤＡ−ＭＰ１２２のための上述と同様の機能を含み得る。図２に示される実施形態においては、ＤＡ−ＭＰ２００は、Ｄｉａｍｅｔｅｒスタック、たとえばさまざまな開放型システム間相互接続（ＯＳＩ：open systems interconnection）層においてＤｉａｍｅｔｅｒメッセージを処理するソフトウェア、を内蔵および／または実行してもよい。いくつかの実施形態においては、ＤＡ−ＭＰ２００はＤｉａｍｅｔｅｒスタックをサポートし得る。Ｄｉａｍｅｔｅｒスタックは、Ｄｉａｍｅｔｅｒ接続を処理するための、および／または、さまざまなＤＡまたはＤｉａｍｅｔｅｒノード間で通信を行なうためのＤｉａｍｅｔｅｒ接続層（ＤＣＬ：Diameter connection layer）２０１と、メッセージ内容に基づいてピアまたはローカルアプリケーションに要求メッセージをルーティングし、メッセージ内容ルールおよび／またはピア輻輳制御に基づいてＤｉａｍｅｔｅｒ要求メッセージを廃棄または拒絶するためのＤｉａｍｅｔｅｒルーティング層（ＤＲＬ：Diameter routing layer）２０２と、さまざまなＤｉａｍｅｔｅｒアプリケーションおよび関連機能をホストするためのＤｉａｍｅｔｅｒアプリケーション層（ＤＡＬ：Diameter application layer）２０４とを含む。いくつかの実施形態においては、ＤＡ−ＭＰ２００は、異なる機能を有するさまざまな層および／もしくは付加的な層を含んでもよく、ならびに／または、組合わされた層を含んでもよい。
【００３３】
ＤＡＬ２０４は、ＡＰＰ１  ２０６、ＡＰＰ２  ２０８およびＡＰＰ３  ２１０を含む１つ以上のＤｉａｍｅｔｅｒアプリケーションを含み得る。たとえば、いくつかのＤｉａｍｅｔｅｒアプリケーション（たとえばＡＰＰ１  ２０６、ＡＰＰ２  ２０８および／またはＡＰＰ３  ２１０）は、Ｄｉａｍｅｔｅｒセッション（たとえば、Ｄｉａｍｅｔｅｒクライアント、サーバまたは翻訳エージェント）を開始または終了させるアドレス可能なＤｉａｍｅｔｅｒノードエンドポイントに関連付けられた機能をサポート、エミュレートまたは実行し得る。いくつかのＤｉａｍｅｔｅｒアプリケーションは、Ｄｉａｍｅｔｅｒリレーエージェントをサポートしてもよい。このＤｉａｍｅｔｅｒリレーエージェントは、いくつかのタイプのメッセージを遮断し、新しい宛先ルーティング情報を含むピアに応答メッセージを送信するアドレス可能なＤｉａｍｅｔｅｒノードであってもそうでなくてもよい。別のＤｉａｍｅｔｅｒアプリケーションは連続的なアプリケーションであってもよい。連続的なアプリケーションは、１つのノードからのＤｉａｍｅｔｅｒセッションを終了させ、リクエスタの代わりに新しいセッションを開始し、２つのノード間のセッションを相互作用させ得る（たとえばＡＡＡＨサーバ）。いくつかのＤｉａｍｅｔｅｒアプリケーションは、エンド・ツー・エンドのトランザクションシグナリングフローにそれ自体を挿入してもよく（要求／応答）、メッセージ中のＡＶＰを追加または変更してもよい（たとえば、Ｄｉａｍｅｔｅｒプロキシエージェント）。いくつかのＤｉａｍｅｔｅｒアプリケーションは、いくつかのメッセージを遮断し、任意には、たとえばメッセージルーティングに影響を及ぼすが、エンド・ツー・エンド信号方式では残存し得ないメッセージを変更し得る。
【００３４】
いくつかの実施形態においては、Ｄｉａｍｅｔｅｒアプリケーションは、或る機能を実行する際に１つ以上のサービスを要求および使用してもよい。たとえば、Ｄｉａｍｅｔｅｒアプリケーションは、サービスが１つ以上のサービスプロバイダによって実行されることを要求してもよい。この例においては、Ｄｉａｍｅｔｅｒアプリケーションは、１つ以上の適切なサービスプロバイダを決定するようにサービストポロジを決定するためにサービスルーティング情報または他の情報を用いてもよい。
【００３５】
いくつかの実施形態においては、サービスがＤｉａｍｅｔｅｒアプリケーションからデカップリングされてもよい。Ｄｉａｍｅｔｅｒアプリケーションおよびサービスをデカップリングすることにより、Ｄｉａｍｅｔｅｒアプリケーションおよび／またはサービスの各々が独立してスケーラブルにされてもよく、（たとえば、サービスについての予測された負荷に基づいてサービスプロバイダを増やすかまたは減らしてもよく）、フレキシブルに展開されてもよく（たとえば、さまざまな物理的位置で、および／またはさまざまな時間に展開されてもよく）、独立して冗長にされてもよい（たとえば、プライマリグループおよびバックアップグループを用いて高度に利用可能にされてもよい）。たとえば、現在、Ｄｉａｍｅｔｅｒアプリケーションがいくつ使用中または実行中であるかにかかわらず、処理容量を増やすために、付加的なサービスプロバイダまたはサービスインスタンス（たとえばＤ４およびＤ５）がさまざまなサービスグループ（たとえばサービスＤグループ２３  ２２２）に追加されてもよい。さらに、Ｄｉａｍｅｔｅｒアプリケーションおよびサービスをデカップリングすることにより、複数のＤｉａｍｅｔｅｒアプリケーションは、１つ以上のサービスプロバイダにサービスを要求し、これらサービスを使用することにより、リソース効率を高め得る。対照的に、従来のＤｉａｍｅｔｅｒアプリケーションは、他のＤｉａｍｅｔｅｒアプリケーション間で共有されないサービスに連結されるかまたは当該サービスを実行する。
【００３６】
図２に示される実施形態においては、ＡＰＰ１  ２０６、ＡＰＰ２  ２０８およびＡＰＰ３  ２１０は、１つ以上のサービスプロバイダおよび／またはサービスプロバイダグループに関連付けられてもよい。たとえば、ＡＰＰ１  ２０６はサービスＡグループ２１２に関連付けられ、ＡＰＰ２  ２０８はサービスＢグループ２１４およびサービスＣグループ２１６に関連付けられ、ＡＰＰ３  ２１０はサービスＢグループ２１４およびサービスＤグループ２１８〜２２２に関連付けられてもよい。いくつかの実施形態においては、Ｄｉａｍｅｔｅｒアプリケーションは、さまざまなサービスを実行するのにどのサービスが利用可能であるかを判断する際に、および／または、関連するサービスプロバイダと如何にインタラクトするかを判断する際に、１つ以上のデータベースに照会を行ってもよい。各々のＤｉａｍｅｔｅｒアプリケーションは、サービスルーティング情報についてストレージ１２６に照会を行なって、適切なサービスプロバイダ、インスタンスまたは関連するグループを選択するためのサービスルーティング情報を用いてもよい。
【００３７】
Ｄｉａｍｅｔｅｒアプリケーションはロードバランシングを実行する際に１つ以上のデータベースに照会を行なってもよい。たとえば、各々のＤｉａｍｅｔｅｒアプリケーション（たとえばＡＰＰ１  ２０６）は履歴情報および／またはロードバランシング情報を維持してもよい。履歴情報は、所与のサービスのために直前に用いられたサービスプロバイダおよび／または最長時間未使用のサービスプロバイダを示し得る。他のロードバランシング情報は、１つ以上のサービスプロバイダ間で負荷を分散するためのインプリメンテーション、アルゴリズムまたは定式を含み得る。Ｄｉａｍｅｔｅｒアプリケーションは、履歴情報および／またはロードバランシング情報を用いて、バランスのとれたやり方でサービス要求を行ない得る。
【００３８】
サービスＡグループ２１２は、サービスＡ、たとえばＡ１〜Ａ３、の複数のインスタンスを含み得る。各々のサービスＡインスタンスは、たとえば、ＤＡ２００から、またはその内部で実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられたサービスを実行することができる可能性がある。いくつかの実施形態においては、サービスＡグループ２１２および／またはその内部にあるインスタンスはグループに関連付けられてもよい。グループは物理的位置および／または論理的位置に基づいていてもよい。たとえば、サービスＡグループ２１２のすべてのインスタンスは、同じコンピューティングプラットフォームまたはブレードにおいて実行されていてもよい。いくつかの実施形態においては、サービスＡグループ２１２は、プライマリグループまたはバックアップグループなどの冗長性グループに関連付けられてもよい。
【００３９】
サービスＢグループ２１４は、サービスＢ、たとえばＢ１〜Ｂ５、の複数のインスタンスを含み得る。各々のサービスＢインスタンスは、たとえば、ＤＡ２００から、またはその内部において実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられたサービスを実行することができる可能性がある。いくつかの実施形態においては、サービスＢグループ２１４および／またはその内部におけるインスタンスがグループに関連付けられてもよい。グループは物理的位置および／または論理的位置に基づいてもよい。たとえば、サービスＢグループ２１４のすべてのインスタンスは、共通のサブネットを共有する１つ以上のノードにおいて実行されてもよい。いくつかの実施形態においては、サービスＢグループ２１４は、プライマリクループまたはバックアップクループなどの冗長性グループに関連付けられてもよい。
【００４０】
サービスＣグループ２１６は、サービスＣ、たとえばＣ１〜Ｃ３、の複数のインスタンスを含み得る。各々のサービスＣインスタンスは、たとえば、ＤＡ２００から、またはその内部において実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられるサービスを実行することができる可能性がある。いくつかの実施形態においては、サービスＣグループ２１６および／またはその内部にあるインスタンスがグループに関連付けられてもよい。グループは、物理的位置および／または論理的位置に基づいていてもよい。たとえば、サービスＣグループ２１６のすべてのインスタンスは、同じコンピューティングプラットフォームまたはブレードにおいて実行されてもよい。いくつかの実施形態においては、サービスＣグループ２１６は、プライマリグループまたはバックアップクループなどの冗長性グループに関連付けられてもよい。
【００４１】
サービスＤグループ２３  ２１８は、サービスＤ、たとえばＤ１〜Ｄ３、の複数のインスタンスを含み得る。各々のサービスＤインスタンスは、たとえば、ＤＡ２００から、またはその内部において実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられるサービスを実行することができる可能性がある。図２に示される実施形態においては、サービスＤグループ２３  ２１８および／またはその内部にあるインスタンスはグループ「２３」に関連付けられてもよい。グループ「２３」は、物理的位置および／または論理的位置に基づいていてもよい。たとえば、サービスＤグループ２３  ２１８のすべてのインスタンスは、共通のシティまたはその内部にあるネットワークを共有する１つ以上のノードにおいて実行されてもよい。図２に示される実施形態においては、サービスＤグループ２３  ２１８は、冗長性を目的としたプライマリ（たとえば非バックアップの）グループであってもよい。
【００４２】
サービスＤグループ９９  ２２０は、サービスＤ、たとえばＤ１〜Ｄ３、の複数のインスタンスを含み得る。各々のサービスＤインスタンスは、たとえば、ＤＡ２００から、またはその内部において実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられるサービスを実行することができる可能性がある。図２に示される実施形態においては、サービスＤグループ９９  ２２０および／またはその内部にあるインスタンスはグループ「９９」に関連付けられてもよい。グループ「９９」は、物理的位置および／または論理的位置に基づいていてもよい。たとえば、サービスＤグループ９９  ２２０のすべてのインスタンスは、共通のシティまたはそこにあるネットワークを共有する１つ以上のノードにおいて実行されてもよく、サービスＤグループ２３  ２１８に関連付けられた位置とは異なる位置であってもよい。図２に示される実施形態においては、サービスＤグループ９９  ２２０は、バックアップグループであってもよく、冗長性を目的として用いられてもよい。たとえば、サービスＤグループ２３  ２１８が不安定になるかまたはオフラインになる場合、サービスＤグループ９９  ２２０はプライマリグループになってもよく、ＤＡ２００からのＤｉａｍｅｔｅｒメッセージを処理してもよい。
【００４３】
サービスＤグループ２３  ２２２は、サービスＤ、たとえばＤ４〜Ｄ５、の複数のインスタンスを含み得る。各々のサービスＤインスタンスは、たとえば、ＤＡ２００から、またはそこで実行されるＤｉａｍｅｔｅｒアプリケーションからの１つ以上のＤｉａｍｅｔｅｒメッセージに関連付けられるサービスを実行することができる可能性がある。図２に示される実施形態においては、サービスＤグループ２３  ２２２および／またはそこにあるインスタンスはグループ「２３」に関連付けられてもよい。グループ「２３」は、物理的位置および／または論理的位置に基づいていてもよい。いくつかの実施形態においては、サービスインスタンスは同じグループに関連付けられてもよいが、さまざまな物理的位置に配置されてもよい。たとえば、サービスＤグループ２３  ２２２のすべてのインスタンスは、サービスＤグループ２３  ２１８に関連付けられる物理アドレスとは異なる物理アドレスに位置する１つ以上のノードにおいて実行されてもよい。図２に示される実施形態においては、サービスＤグループ２３  ２１８は、プライマリ（たとえば非バックアップの）グループであってもよい。
【００４４】
図２に示される実施形態を用いる例示的なＤｉａｍｅｔｅｒメッセージルーティングシナリオにおいては、Ｄｉａｍｅｔｅｒピアノード（たとえば、Ｄｉａｍｅｔｅｒクライアント）がＤＳＲ１０４にＤｉａｍｅｔｅｒメッセージを送信してもよい。Ｄｉａｍｅｔｅｒメッセージは、ＤＡ−ＭＰ２００においてＤＣＬ２０１によって受信されてもよい。ＤＣＬ２０１は、ＤＲＬ２０２にＤｉａｍｅｔｅｒメッセージを渡してもよい。アプリケーション処理が必要な場合、ＤＲＬ２０８は、ＤＡＬ２０４またはＤｉａｍｅｔｅｒアプリケーション、たとえばＡＰＰ１  ２０６、ＡＰＰ２  ２０８またはＡＰＰ３  ２１０などにＤｉａｍｅｔｅｒメッセージを転送してもよい。たとえば、ＤＲＬ２０８は、ＤｉａｍｅｔｅｒメッセージをＡＰＰ１  ２０６に転送してもよく、これが、メッセージをインスタンスＡ１に送信することによって当該メッセージを処理し得る。Ａ１から適切な応答を受信した後、ＡＰＰ１  ２０６は、処理されたＤｉａｍｅｔｅｒメッセージをＤＲＬ２０８に送信してもよい。ＤＲＬ２０８は、Ｄｉａｍｅｔｅｒメッセージを別のＤＡ−ＭＰまたはＤＣＬ２０１に転送してもよく、別のＤＡ−ＭＰまたはＤＣＬ２０１が、当該メッセージをＤｉａｍｅｔｅｒサーバまたはＤｉａｍｅｔｅｒクライアントなどの別のＤｉａｍｅｔｅｒノードまたは宛先に送信してもよい。
【００４５】
図３は、この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングの実行に関連付けられた例示的なメッセージを示す図である。図３に示される実施形態においては、サービスＣプロバイダ３００および３０２は、サービスＣグループ１１４、サービスＣグループ１２２および／またはサービスＣグループ２１６のメンバについて上述と同様の機能を含んでもよく、サービスＤプロバイダ３０４は、サービスＤグループ１１６、サービスＤグループ１２４および／またはサービスＤグループ２１８〜２２２のメンバについて上述と同様の機能を含んでもよい。いくつかの実施形態においては、サービスＣプロバイダ３００および／または３０２は、ＤＳＲ１０４またはそこにあるコンポーネント（たとえばＤＡ１０６）によってホストされてもよく、または、ＤＳＲ１０４とは異なるノード（たとえばＨＳＳ）によってホストされてもよい。
【００４６】
いくつかの実施形態においては、ＤＡ１０６は、１つ以上のサービスプロバイダを要求するかまたはサブスクライブするように構成されてもよい。たとえば、ＤＡ１０６は、或る位置またはネットワークにおける各々のサービスプロバイダにメッセージを送信し得る。メッセージは、サービスプロバイダによって実行されるサービス、グループまたは位置識別子および状態情報などの要求サービス能力情報についてのものであり得る。いくつかの実施形態においては、ＤＡ１０６は、サービス能力情報および更新についての、サービスプロバイダからのサブスクリプション要求を与えてもよい。いくつかの実施形態においては、ＤＡ１０６は、サービス能力情報についての情報要求および更新についての追加要求をサービスプロバイダから送信してもよい。いくつかの実施形態においては、インタラクションおよびサービス能力情報は動的に交換されてもよく、サービストポロジおよび／または他のサービスルーティングデータを識別するために使用可能であってもよい。たとえば、１つ以上のサービスインスタンスが利用不可能になった場合、サービスインスタンスは、利用不可能であることを示す更新メッセージをＤＡ１０６またはＤＳＲ１０４に公開または送信してもよく、後続のサービスルーティングがこのサービストポロジの変化に応じて調整されてもよい。
【００４７】
ステップ１〜３においては、ＤＡ１０６または関連するコンポーネント（たとえばＤＳＲ１０４またはＤＡ１０６において実行されるプロセス）がサービス能力情報を要求したことに応じて、サービスＤプロバイダ３０４ならびにサービスＣプロバイダ３００および３０２は、サービス能力メッセージを供給し得る。各々のサービス能力メッセージは、サービスプロバイダの能力および関連情報を示すための情報を含んでもよい。たとえば、サービスＤプロバイダ３０４からのサービス能力メッセージは、「利用可能な」状態を示すサービストークンおよび情報を含み得る。サービストークンは、サービスタイプまたは識別子、一意識別子（たとえばＳＰＩＤ）、グループ識別子および／または冗長性識別子を示してもよい。図３に示されるように、サービスＤプロバイダ３０４は、「Ｄ」のサービスタイプおよび「１２」のグループ識別子を示すサービストークンを提供し、サービスＣプロバイダ３０２は、「Ｃ」のサービスタイプおよび「１２」のグループ識別子を示すサービストークンを提供し、サービスＣプロバイダ３００は、「Ｃ」のサービスタイプおよび「１２」のグループ識別子を示すサービストークンを提供してもよい。
【００４８】
サービス能力メッセージを受信した後、ＤＡ１０６または関連するコンポーネントは、メッセージから受取ったサービス能力情報を用いて、たとえばストレージ１２６に格納されたサービスルーティングデータを生成および／または更新し得る。いくつかの実施形態においては、履歴情報および／またはロードバランシング情報が、サービスルーティングデータを生成および／または更新する際に用いられてもよい。たとえば、他のすべての基準が満たされた場合にサービスプロバイダが次に用いられるべきであることが履歴ルーティング情報によって示される場合、Ｄｉａｍｅｔｅｒアプリケーションは、或るサービスプロバイダに関連付けられた優先順位または優先度フラグを更新してもよい。
【００４９】
ステップ４において、ＤＡ１０６は、（たとえばＤｉａｍｅｔｅｒインターフェイスを介してＤｉａｍｅｔｅｒピアノードから）Ｄｉａｍｅｔｅｒメッセージを受信し得る。Ｄｉａｍｅｔｅｒメッセージは１つ以上のサービスを必要とする可能性がある。たとえば、Ｄｉａｍｅｔｅｒメッセージは、（たとえばＤＳＲ１０４またはコアネットワークに対して）ローカルな命名規則を用いて宛先にアドレス指定されてもよい。この例においては、Ｄｉａｍｅｔｅｒメッセージは、フルアドレスベースのレゾリューション（ＦＡＢＲ：Full Address Based Resolution）Ｄｉａｍｅｔｅｒアプリケーションによって受信されてもよい。ＦＡＢＲ  Ｄｉａｍｅｔｅｒアプリケーションは、宛先アドレスをレゾルブするために、ＩＭＳＩレゾリューションサービスプロバイダまたはＤＮレゾリューションサービスプロバイダなどの１つ以上のサービスプロバイダを決定するように構成されてもよい。１つ以上のサービスプロバイダを決定した後、ＦＡＢＲ  Ｄｉａｍｅｔｅｒアプリケーションは、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部（たとえば宛先アドレス）を１つ以上のサービスプロバイダに送信し得る。
【００５０】
ステップ５において、サービス要求がＤＡ１０６からサービスＣプロバイダ３０２に送信され得る。サービス要求はサービストークンおよびイベント情報を含み得る。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきであるＤｉａｍｅｔｅｒメッセージからの情報を含み得る。たとえば、サービスＣプロバイダ３０２がデータベースクエリサービスである場合、イベント情報は、ステップ４のＤｉａｍｅｔｅｒメッセージからのキー、基準または他の情報を含んでもよく、データベース照合中に情報を識別する際に用いられるサービスＣプロバイダ３０２であってもよい。
【００５１】
いくつかの実施形態においては、サービスＣプロバイダ３０２は、サービス要求を処理することができない可能性があり、エラーメッセージおよび／または他の応答を送信する可能性がある。いくつかの実施形態においては、サービスＣプロバイダ３０２は、サービスＣプロバイダ３０２に関連付けられた能力が変化したことを示すメッセージ（たとえばサービス能力更新メッセージ）をＤＡ１０６に送信してもよく、このような変化を示す関連するサービス能力情報を含んでもよい。
【００５２】
ステップ６において、サービス能力更新メッセージがサービスＣプロバイダ３０２からＤＡ１０６に送信されてもよい。サービス能力更新メッセージは、サービスＣプロバイダ３０２が現在輻輳していることを示す可能性もある。いくつかの実施形態においては、サービス能力更新メッセージは、エラーメッセージ、またはステップ５のサービス要求に関連付けられたサービスが実行できないことを示す他のメッセージなどの応答メッセージに加えられてもよく、または当該応答メッセージの代わりであってもよい。
【００５３】
サービスを実行することができないという指摘を受信したことに応じて、ＤＡ１０６は付加的なサービスルーティング機能を実行してもよい。たとえば、ＤＡ１０６は、新しく得られたサービス能力情報でサービスルーティングデータを更新してもよく、適切なサービスを実行するための異なるサービスプロバイダまたは新しいサービスプロバイダを決定してもよい。この例においては、新しいサービスプロバイダを決定した後、新しいサービス要求が新しいサービスプロバイダに送信されてもよい。
【００５４】
ステップ７において、サービス要求がＤＡ１０６からサービスＣプロバイダ３００に送信され得る。サービス要求はサービストークンおよびイベント情報を含み得る。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきであるＤｉａｍｅｔｅｒメッセージからの情報を含んでもよい。たとえば、サービスＣプロバイダがＤＮレゾリューションサービスである場合、イベント情報は、ステップ４のＤｉａｍｅｔｅｒメッセージからのドメイン関連情報を含んでもよく、１つ以上のデータベースまたはリポジトリを用いて、その情報をドメイン名にレゾルブしてもよい。
【００５５】
サービスＣプロバイダ３００はサービス要求を受信し、要求されたサービスを実行してもよい。いくつかの実施形態においては、サービス要求を実行した後、サービスＣプロバイダ３００は、サービス要求または関連する処理要求を１つ以上の付加的なサービスプロバイダに提供してもよい。１つ以上の付加的なサービスプロバイダは、元のサービス要求で受信された情報を用いて、および／または、サービスＣプロバイダ３００によって決定された情報から、決定されてもよい。たとえば、サービス要求は、ＤＮ数およびサブスクライバ関連情報を含んでもよく、ＤＮレゾリューションを実行するためにサービスＣプロバイダ３００に送信されてもよい。ＤＮレゾリューションを実行した後、サービスＣプロバイダ３００は、レゾルブされたＤＮについてＤＡ１０６に通知してもよく、および／または、ＩＭＳＩレゾリューションを実行するためにサービス要求もしくは関連するメッセージをサービスＤプロバイダ３０４に送信してもよく、たとえば、サービスＤプロバイダ３０４は、サブスクライバ関連情報を用いて適切なＩＭＳＩを識別してもよい。
【００５６】
ステップ８において、サービス要求を受信および処理した後、サービス応答メッセージがサービスＣプロバイダ３００からＤＡ１０６に送信されてもよい。サービス応答メッセージは、要求されたサービスが実行されたことおよび／または関連情報であったことを示す情報を含んでもよく、たとえば、応答メッセージは、サービスＣプロバイダ３００によって決定、識別または収集された情報を含んでもよい。
【００５７】
図４は、この明細書中に記載される主題の実施形態に従った、ロードバランシングサービス要求に関連付けられた例示的なメッセージを示す図である。図４に示される実施形態おいては、サービスＣプロバイダ４２０、４２１および４２２は、サービスＣグループ１１４、サービスＣグループ１２２および／またはサービスＣグループ２１６のメンバについて上述したのと同様の機能を含み得る。いくつかの実施形態においては、サービスＣプロバイダ４２０、４２１および４２２のうちいくつかが、ＤＳＲ１０４もしくはそこにあるコンポーネント（たとえばＤＡ１０６）によってホストされてもよく、または、ＤＳＲ１０４とは異なるノード（たとえばＨＳＳ）によってホストされてもよい。いくつかの実施形態においては、サービスＣプロバイダ４２０、４２１および４２２は、同じグループの一部（たとえば、グループ１２）であってもよく、各々がＳＰＩＤなどの一意識別子に関連付けられてもよい。
【００５８】
いくつかの実施形態においては、ＤＡ１０６、ＤＳＲ１０４またはＤｉａｍｅｔｅｒアプリケーションは、サービス要求に関連付けられたロードバランシングを実行するように構成されてもよい。たとえば、（たとえば、ＤＡ−ＭＰ１１２上で実行される）Ｄｉａｍｅｔｅｒアプリケーションは、複数のサービスプロバイダ間でサービス要求を（たとえば均等に、不均等にまたは別の態様で）分散させるように構成されてもよい。この例においては、Ｄｉａｍｅｔｅｒアプリケーションは、ロードバランシング情報を維持してもよく、または、このような情報についてストレージ１２６に照会を行ってもよい。例示的なロードバランシング情報は、履歴ルーティング情報および／またはロードバランシング技術もしくはアルゴリズムを含んでもよい。履歴ルーティング情報は、直前に用いられたサービスプロバイダ、最長時間未使用のサービスプロバイダ、ならびに／または、そのサービスプロバイダが受信および／もしくは処理したサービス要求の最近の履歴を含み得るかまたは示し得る。他のロードバランシング情報は、複数のサービスプロバイダ間にサービス要求を供給するための１つ以上のロードバランシング技術またはアルゴリズム（たとえば、ラウンドロビン、位置ベース、ロードベース、リソースベースなど）を含み得る。履歴ルーティング情報および／またはロードバランシング情報を用いることにより、Ｄｉａｍｅｔｅｒアプリケーションは、最長時間未使用のサービスプロバイダを識別し、この最長時間未使用のサービスプロバイダにサービス要求を与えることによって、いくつかのサービス要求のロードバランスを行なってもよい。
【００５９】
ステップ４０１〜４０３において、ＤＡ１０６または関連するコンポーネント（たとえば、ＤＳＲ１０４またはＤＡ１０６において実行されるプロセス）がサービス能力情報を要求したことに応じて、サービスＣプロバイダ４２０、４２１および４２２がサービス能力メッセージを提供してもよい。各々のサービス能力メッセージは、サービスプロバイダの能力および関連情報を示すための情報を含んでもよい。たとえば、サービスＣプロバイダ４２２からのサービス能力メッセージは、「利用可能な」状態を示すサービストークンおよび情報を含んでもよい。サービストークンは、サービスタイプもしくは識別子、一意識別子（たとえばＳＰＩＤ）、グループ識別子、および／または、冗長性識別子を示してもよい。図４に示されるように、サービスＣプロバイダ４２２は、「Ｃ」のサービスタイプ、「１２」のグループ識別子および「１」のＳＰＩＤを示すサービストークンを提供してもよく、サービスＣプロバイダ４２１は、「Ｃ」のサービスタイプ、「１２」のグループ識別子および「２」のＳＰＩＤを示すサービストークンを提供してもよく、サービスＣプロバイダ４２２は、「Ｃ」のサービスタイプ、「１２」のグループ識別子および「３」のＳＰＩＤを示すサービストークンを提供してもよい。
【００６０】
サービス能力メッセージを受信した後、ＤＡ１０６または関連するコンポーネントは、メッセージから受取ったサービス能力情報を用いて、たとえばストレージ１２６に格納されたサービスルーティングデータを生成および／または更新してもよい。いくつかの実施形態においては、ロードバランシング情報が、サービスルーティングデータを生成および／または更新する際に用いられてもよい。たとえば、他のすべての基準が満たされる場合にサービスプロバイダが次に用いられるべきであることを履歴ルーティング情報が示す場合、Ｄｉａｍｅｔｅｒアプリケーションは、或るサービスプロバイダに関連付けられた優先順位または優先度フラグを更新し得る。
【００６１】
ステップ４０４において、ＤＡ１０６が、（たとえばＤｉａｍｅｔｅｒインターフェイスを介してＤｉａｍｅｔｅｒピアノードから）Ｄｉａｍｅｔｅｒメッセージを受信してもよい。Ｄｉａｍｅｔｅｒメッセージは１つ以上のサービスを必要とするかもしれない。たとえば、Ｄｉａｍｅｔｅｒメッセージは、（たとえばＤＳＲ１０４またはコアネットワークに対して）ローカルな命名規則を用いて宛先にアドレス指定されてもよい。この例においては、ＤｉａｍｅｔｅｒメッセージがＤｉａｍｅｔｅｒアプリケーションによって受信されてもよい。Ｄｉａｍｅｔｅｒアプリケーションは、宛先アドレスをレゾルブするために、ＩＭＳＩレゾリューションサービスプロバイダまたはＤＮレゾリューションサービスプロバイダなどの１つ以上のサービスプロバイダを決定するように構成されてもよい。１つ以上のサービスプロバイダを決定した後、Ｄｉａｍｅｔｅｒアプリケーションは、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部（たとえば宛先アドレス）を１つ以上のサービスプロバイダに送信してもよい。
【００６２】
ステップ４０５において、サービス要求がＤＡ１０６からサービスＣプロバイダ４２２に送信されてもよい。サービス要求はサービストークンおよびイベント情報を含み得る。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきである、Ｄｉａｍｅｔｅｒメッセージからの情報を含んでもよい。たとえば、サービスＣプロバイダ４２２がデータベースクエリサービスである場合、イベント情報は、ステップ４のＤｉａｍｅｔｅｒメッセージからのキー、基準または他の情報を含んでもよく、データベース照合中に情報を識別する際に用いられるサービスＣプロバイダ４２２であってもよい。
【００６３】
いくつかの実施形態においては、サービス要求を受信および処理した後、サービス応答メッセージがサービスＣプロバイダ４２２からＤＡ１０６に送信されてもよい。サービス応答メッセージは、要求されたサービスが実行されたことおよび／または関連情報であったことを示す情報を含んでもよく、たとえば、応答メッセージは、サービスＣプロバイダ４２２によって決定、識別または収集された情報を含んでもよい。
【００６４】
ステップ４０６において、ロードバランシング情報が更新されてもよく、サービスルーティングデータを生成および／または更新する際に用いられてもよい。たとえば、サービス要求の送信前、送信と同時、または送信後に、ＤＡ１０６において実行されるＤｉａｍｅｔｅｒアプリケーションが、（たとえばストレージ１２６における）テーブルまたは他のメモリにある履歴ルーティング情報を更新してもよい。別の例においては、サービス応答メッセージを受信した後、ＤＡ１０６において実行されるＤｉａｍｅｔｅｒアプリケーションが、（たとえばストレージ１２６における）テーブルまたは他のメモリにある履歴ルーティング情報を更新してもよい。更新された履歴ルーティング情報は、サービス要求に関連付けられたタイムスタンプ、および／または、サービスＣプロバイダ４２２が最近利用されたことを示すサービス応答メッセージを含み得る。更新された履歴ルーティング情報はまた、サービスＣプロバイダ４２２が、（たとえば、現在利用可能であり、グループ１２に関連付けられたサービスプロバイダの）サービス「Ｃ」を提供する最長時間未使用のサービスプロバイダであることを示す、事前に送信または処理されたメッセージに関連付けられたタイムスタンプを含んでもよい。
【００６５】
ステップ４０７において、ＤＡ１０６が別のＤｉａｍｅｔｅｒメッセージを受信してもよい。Ｄｉａｍｅｔｅｒメッセージは１つ以上のサービスを必要とする可能性がある。Ｄｉａｍｅｔｅｒアプリケーションは、１つ以上のサービスプロバイダを決定する際にサービス能力情報と共に履歴ルーティング情報を用いてもよい。１つ以上のサービスプロバイダを決定した後、Ｄｉａｍｅｔｅｒアプリケーションは、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を１つ以上のサービスプロバイダに送信してもよい。
【００６６】
ステップ４０８において、サービス要求がＤＡ１０６からサービスＣプロバイダ４２１に送信されてもよい。サービス要求はサービストークンおよびイベント情報を含んでもよい。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきであるＤｉａｍｅｔｅｒメッセージからの情報を含んでもよい。サービスＣプロバイダ４２１はサービス要求を受信し、要求されたサービスを実行してもよい。いくつかの実施形態においては、サービス要求を実行した後、サービスＣプロバイダ４２１がサービス要求または関連する処理要求を１つ以上の付加的なサービスプロバイダに与えてもよい。
【００６７】
いくつかの実施形態においては、サービス要求を受信および処理した後、サービス応答メッセージがサービスＣプロバイダ４２１からＤＡ１０６に送信されてもよい。サービス応答メッセージは、要求されたサービスが実行されたことおよび／または関連情報であったことを示す情報を含んでもよく、たとえば、応答メッセージは、サービスＣプロバイダ４２１によって決定、識別または収集された情報を含んでもよい。
【００６８】
ステップ４０９において、ロードバランシング情報が更新されてもよく、サービスルーティングデータを生成および／または更新する際に用いられてもよい。更新された履歴ルーティング情報は、サービス要求に関連付けられたタイムスタンプ、および／または、サービスＣプロバイダ４２１が最近利用されたことを示すサービス応答メッセージを含み得る。更新された履歴ルーティング情報はまた、サービスＣプロバイダ４２０がサービス「Ｃ」を提供する最長時間未使用のサービスプロバイダであることを示す、事前に送信または処理されたメッセージに関連付けられたタイムスタンプを含んでもよい。
【００６９】
ステップ４１０において、ＤＡ１０６が別のＤｉａｍｅｔｅｒメッセージを受信してもよい。Ｄｉａｍｅｔｅｒメッセージは１つ以上のサービスを必要とする可能性がある。Ｄｉａｍｅｔｅｒアプリケーションは、１つ以上のサービスプロバイダを決定する際にサービス能力情報と共に履歴ルーティング情報を用いてもよい。１つ以上のサービスプロバイダを決定した後、Ｄｉａｍｅｔｅｒアプリケーションは、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を１つ以上のサービスプロバイダに送信してもよい。
【００７０】
ステップ４１１においては、サービス要求がＤＡ１０６からサービスＣプロバイダ４２０に送信されてもよい。サービス要求はサービストークンおよびイベント情報を含んでもよい。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきであるＤｉａｍｅｔｅｒメッセージからの情報を含んでもよい。サービスＣプロバイダ４２０はサービス要求を受信し、要求されたサービスを実行してもよい。いくつかの実施形態においては、サービス要求を実行した後、サービスＣプロバイダ４２０は、サービス要求または関連する処理要求を１つ以上の付加的なサービスプロバイダに与えてもよい。
【００７１】
いくつかの実施形態においては、サービス要求を受信および処理した後、サービス応答メッセージがサービスＣプロバイダ４２０からＤＡ１０６に送信されてもよい。サービス応答メッセージは、要求されたサービスが実行されたことおよび／または関連情報であったことを示す情報を含んでもよく、たとえば、応答メッセージは、サービスＣプロバイダ４２０によって決定、識別または収集された情報を含んでもよい。
【００７２】
ステップ４１２において、ロードバランシング情報が更新されてもよいし、サービスルーティングデータを生成および／または更新する際に用いられてもよい。更新された履歴ルーティング情報は、サービス要求に関連付けられたタイムスタンプ、および／または、サービスＣプロバイダ４２０が最近利用されたことを示すサービス応答メッセージを含んでもよい。更新された履歴ルーティング情報はまた、サービスＣプロバイダ４２２がサービス「Ｃ」を提供する最長時間未使用のサービスプロバイダであることを示す、事前に送信または処理されたメッセージに関連付けられたタイムスタンプを含んでもよい。
【００７３】
ステップ４１３において、ＤＡ１０６が別のＤｉａｍｅｔｅｒメッセージを受信してもよい。Ｄｉａｍｅｔｅｒメッセージは１つ以上のサービスを必要とする可能性がある。Ｄｉａｍｅｔｅｒアプリケーションは、１つ以上のサービスプロバイダを決定する際にサービス能力情報と共に履歴ルーティング情報を用いてもよい。１つ以上のサービスプロバイダを決定した後、Ｄｉａｍｅｔｅｒアプリケーションは、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部を１つ以上のサービスプロバイダに送信してもよい。
【００７４】
ステップ４１４において、サービス要求がＤＡ１０６からサービスＣプロバイダ４２２に送信されてもよい。サービス要求はサービストークンおよびイベント情報を含んでもよい。いくつかの実施形態においては、イベント情報は、分析および／または処理されるべきであるＤｉａｍｅｔｅｒメッセージからの情報を含んでもよい。サービスＣプロバイダ４２２はサービス要求を受信し、要求されたサービスを実行してもよい。いくつかの実施形態においては、サービス要求を実行した後、サービスＣプロバイダ４２２は、サービス要求または関連する処理要求を１つ以上の付加的なサービスプロバイダに与えてもよい。
【００７５】
図４が例示的なものであること、かつ、ロードバランシングを実行する際に付加的および／または異なるステップまたはメッセージが発生し得ることが認識されるだろう。さらに、さまざまなステップが図４に示されるのとは異なる順序で行われ得ることが認識されるだろう。たとえば、複数のＤｉａｍｅｔｅｒ要求メッセージは、Ｄｉａｍｅｔｅｒアプリケーションが１つ以上のサービス要求をサービスＣプロバイダ４２０、４２１および４２２のうち１つ以上に送信するより前に受信される可能性がある。
【００７６】
図５は、この明細書中に記載される主題の実施形態に従った、高度なサービスルーティングを実行するための例示的なプロセスを示す図である。いくつかの実施形態においては、この明細書中に記載される例示的なプロセスまたはその一部が、ＤＳＲ１０４、ＤＡ１０６、ＤＡ１０８、ＤＡ−ＭＰ１１２、ＤＡ−ＭＰ１２０、Ｄｉａｍｅｔｅｒエージェント、Ｄｉａｍｅｔｅｒアプリケーション、Ｄｉａｍｅｔｅｒノード、および／または、別のモジュールもしくはノードにおいて、またはこれらによって実行されてもよい。
【００７７】
図５に示される実施形態を参照すると、ステップ５００において、Ｄｉａｍｅｔｅｒメッセージが受信されてもよい。たとえば、Ｄｉａｍｅｔｅｒクライアントから発信されたＤｉａｍｅｔｅｒ要求メッセージは、ＤＡ−ＭＰ１１２を実行するＤｉａｍｅｔｅｒアプリケーションにおいて受信されてもよい。
【００７８】
ステップ５０２において、少なくとも１つのサービスプロバイダがサービスルーティングデータを用いて決定されてもよい。いくつかの実施形態においては、サービスルーティングデータは、複数のサービスプロバイダによって提供されるサービス能力情報を含んでもよい。いくつかの実施形態においては、サービスルーティングデータはまた、履歴情報またはロードバランシング情報を含んでもよい。たとえば、Ｄｉａｍｅｔｅｒアプリケーションは、ストレージ１２６におけるサービスルーティングデータに照会を行なってもよい。サービスルーティングデータは、３つのサービスプロバイダが、必要とされるサービスを実行するように構成されていることを示し得るが、その時点ではサービスＣプロバイダ３００だけがオンラインおよび／または利用可能である。この例においては、Ｄｉａｍｅｔｅｒメッセージが、サービスＣプロバイダ３００を選択してサービスを実行してもよい。別の例においては、Ｄｉａｍｅｔｅｒアプリケーションは、ストレージ１２６におけるサービスルーティングデータに照会を行ってもよい。サービスルーティングデータは、５つのサービスプロバイダが必要とされるサービスを実行するように構成されていることを示してもよい。サービスルーティングデータはまた、５つのサービスプロバイダのうち、サービスＣプロバイダ３００が最長時間未使用であるプロバイダを示す履歴ルーティングデータを含み得る。履歴ルーティングデータおよび／またはロードバランシングアルゴリズムを用いることにより、サービスユーザ（たとえばＤｉａｍｅｔｅｒアプリケーション）は、複数のサービスプロバイダ間でロード（たとえばサービス要求）を分散させることによってロードバランスを行なってもよい。
【００７９】
ステップ５０４において、ＤｉａｍｅｔｅｒメッセージまたはＤｉａｍｅｔｅｒメッセージの一部が、サービスを実行するために少なくとも１つのサービスプロバイダに送信されてもよい。いくつかの実施形態においては、少なくとも１つのサービスプロバイダからの応答メッセージが少なくとも１つのサービスプロバイダから送信されてもよい。応答メッセージはＤｉａｍｅｔｅｒアプリケーションにおいて受信されてもよい。
【００８０】
いくつかの実施形態においては、少なくとも１つのサービスプロバイダは、（たとえばＤＡ−ＭＰ１２０における）ＤＳＲによってホストされるローカルアプリケーションであってもよい。
【００８１】
いくつかの実施形態においては、少なくとも１つのサービスプロバイダは、ＤＳＲ１０４とは異なるノードによってホストされるアプリケーションであってもよい。たとえば、サービスプロバイダアプリケーションは、アプリケーションサーバなどの異なるＤＳＲまたは別のノードによってホストされてもよい。
【００８２】
いくつかの実施形態においては、サービス能力情報は、複数のサービスプロバイダのうち１つ以上に関連付けられた１つ以上のサービスについての、動作状態情報（operational status information）、利用可能性情報（availability information）、優先度情報（preference information）、冗長状態情報（redundancy status information）、処理能力情報（processing capacity information）、輻輳情報（congestion information）、物理的位置情報またはグループ分け情報（physical location information, or grouping information）を含み得る。
【００８３】
いくつかの実施形態においては、サービス能力情報は、ＤＳＲ１０４、Ｄｉａｍｅｔｅｒアプリケーション、ＭＰ、ＤＡ−ＭＰ１１２またはＤＡ−ＭＰ１２０に対して、周期的、非周期的または動的に提供されてもよい。
【００８４】
いくつかの実施形態においては、ＤＳＲ１０４、Ｄｉａｍｅｔｅｒアプリケーション、ＭＰ、ＤＡ−ＭＰ１１２またはＤＡ−ＭＰ１２０は、複数のサービスプロバイダをサブスクライブしてもよく、複数のサービスプロバイダは、ＤＳＲ１０４、Ｄｉａｍｅｔｅｒアプリケーション、ＭＰ、ＤＡ−ＭＰ１１２またはＤＡ−ＭＰ１２０にサービス能力情報を送信してもよい。
【００８５】
いくつかの実施形態においては、サービスルーティングデータを用いて少なくとも１つのサービスプロバイダ決定するステップは、複数のサービスプロバイダに関連付けられた動作状態情報、利用可能性情報、優先度情報、冗長状態情報、処理能力情報、輻輳情報、物理的位置情報、履歴ルーティング情報、ロードバランシング情報またはグループ分け情報のうち少なくとも１つに基づいて、少なくとも１つのサービスプロバイダを選択するステップを含み得る。
【００８６】
いくつかの実施形態においては、サービスルーティングデータは、Ｄｉａｍｅｔｅｒアプリケーションによって維持される履歴情報またはロードバランシング情報を含み得る。
【００８７】
いくつかの実施形態においては、サービスルーティングデータを用いて少なくとも１つのサービスプロバイダを決定するステップは、履歴情報またはロードバランシング情報を用いて、ロードバランシングを実行するステップを含み得る。
【００８８】
いくつかの実施形態においては、少なくとも１つのサービスプロバイダが、複数のＤｉａｍｅｔｅｒアプリケーションまたはＤｉａｍｅｔｅｒメッセージプロセッサに関連付けられたサービスを実行してもよい。たとえば、サービスプロバイダは、複数のＤｉａｍｅｔｅｒアプリケーションまたはメッセージプロセッサからのサービス要求を処理してもよい。
【００８９】
いくつかの実施形態においては、ＤｉａｍｅｔｅｒアプリケーションまたはＤＳＲ１０４は少なくとも１つのサービスプロバイダのためのプロキシとして機能してもよい。
【００９０】
この明細書中に記載される主題のさまざまな詳細が、この明細書中に記載される主題の範囲から逸脱することなく変更され得ることが理解されるだろう。さらに、この明細書中に記載される主題が添付の特許請求の範囲によって規定されているので、上述の説明は例示だけを目的としたものであって、限定を目的としたものではない。
【図１】
2016526217.tif 000003
【図２】
2016526217.tif 000004
【図３】
2016526217.tif 000005
【図４】
2016526217.tif 000006
【図５】
2016526217.tif 000007
【手続補正書】
【提出日】平成28年1月28日(2016.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）において高度なサービスルーティングを実行するための方法であって、
前記ＤＳＲに関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップと、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む、方法。
【請求項２】
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）において高度なサービスルーティングを実行するためのシステムであって、
ＤＳＲを含み、前記ＤＳＲは、
複数のサービスプロバイダによって提供されるサービス能力情報に基づいたサービスルーティングデータを格納するように構成されたコンピュータ読取可能媒体と、
前記ＤＳＲに関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサとを含み、前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、
前記ＤＳＲに関連付けられた前記Ｄｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信し、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定し、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するように構成される、システム。
【請求項３】
前記ＤＳＲは、前記Ｄｉａｍｅｔｅｒアプリケーションにおいて、前記サービスを実行した後、前記少なくとも１つのサービスプロバイダからの応答メッセージを受信するように構成される、請求項２に記載のシステム。
【請求項４】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲによってホストされるローカルアプリケーションである、請求項２または３に記載のシステム。
【請求項５】
前記少なくとも１つのサービスプロバイダは、前記ＤＳＲとは異なるノードによってホストされるアプリケーションである、請求項２または３に記載のシステム。
【請求項６】
前記サービス能力情報は、前記複数のサービスプロバイダのうち１つ以上に関連付けられる１つ以上のサービスについての、動作状態情報、利用可能性情報、優先度情報、冗長性状態情報、処理能力情報、輻輳情報、物理的位置情報またはグループ分け情報を含む、請求項２〜５のいずれか１項に記載のシステム。
【請求項７】
前記サービスルーティングデータは、前記Ｄｉａｍｅｔｅｒアプリケーションによって維持される履歴情報またはロードバランシング情報を含む、請求項２〜６のいずれか１項に記載のシステム。
【請求項８】
前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記履歴情報または前記ロードバランシング情報を用いてロードバランシングを実行するように構成される、請求項７に記載のシステム。
【請求項９】
前記サービス能力情報は、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサに周期的、非周期的または動的に提供される、請求項２〜８のいずれか１項に記載のシステム。
【請求項１０】
前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記複数のサービスプロバイダをサブスクライブし、前記複数のサービスプロバイダは、前記ＤＳＲ、前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記Ｄｉａｍｅｔｅｒメッセージプロセッサにサービス能力情報を送信する、請求項２〜９のいずれか１項に記載のシステム。
【請求項１１】
前記Ｄｉａｍｅｔｅｒメッセージプロセッサは、前記複数のサービスプロバイダに関連付けられた動作状態情報、優先度または優先順位情報、冗長性状態情報、処理能力情報、輻輳情報、物理的位置情報、履歴情報、ロードバランシング情報またはグループ分け情報のうち少なくとも１つを用いて、前記少なくとも１つのサービスプロバイダを選択するように構成される、請求項２〜１０のいずれか１項に記載のシステム。
【請求項１２】
前記少なくとも１つのサービスプロバイダは、複数のＤｉａｍｅｔｅｒアプリケーションまたはＤｉａｍｅｔｅｒメッセージプロセッサに関連付けられたサービス処理を実行する、請求項２〜１１のいずれか１項に記載のシステム。
【請求項１３】
前記Ｄｉａｍｅｔｅｒアプリケーションまたは前記ＤＳＲは、前記少なくとも１つのサービスプロバイダのためのプロキシとして機能する、請求項２〜１２のいずれか１項に記載のシステム。
【請求項１４】
コンピュータ読取可能プログラムであって、コンピュータのプロセッサによって実行されると、前記コンピュータに以下のステップを実行させ、当該以下のステップは、
Ｄｉａｍｅｔｅｒシグナリングルータ（ＤＳＲ）に関連付けられたＤｉａｍｅｔｅｒメッセージプロセッサ上で実行されるＤｉａｍｅｔｅｒアプリケーションにおいて、サービスを必要とするＤｉａｍｅｔｅｒメッセージを受信するステップと、
複数のサービスプロバイダによって提供されるサービス能力情報を含むサービスルーティングデータを用いて、前記Ｄｉａｍｅｔｅｒメッセージに関連付けられた前記サービスを実行するための少なくとも１つのサービスプロバイダを決定するステップと、
前記サービスを実行するために前記少なくとも１つのサービスプロバイダに前記Ｄｉａｍｅｔｅｒメッセージまたは前記Ｄｉａｍｅｔｅｒメッセージの一部を送信するステップとを含む、コンピュータ読取可能プログラム。
【国際調査報告】
2016526217.tif 000008
2016526217.tif 000009
2016526217.tif 000010