(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-25
(45)【発行日】2022-04-04
(54)【発明の名称】サービスとしてメッセージ符号化/復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体
(51)【国際特許分類】
H04L 69/00 20220101AFI20220328BHJP
【FI】
H04L69/00
(21)【出願番号】P 2019553236
(86)(22)【出願日】2018-01-30
(86)【国際出願番号】 US2018016042
(87)【国際公開番号】W WO2018182843
(87)【国際公開日】2018-10-04
【審査請求日】2020-08-31
(32)【優先日】2017-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ザイディ,サイード・モーシン・レザ
(72)【発明者】
【氏名】グローバー,ラリット
【審査官】平井 嗣人
(56)【参考文献】
【文献】米国特許出願公開第2016/0371143(US,A1)
【文献】米国特許出願公開第2016/0077800(US,A1)
【文献】特開2012-079044(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 69/00-69/40
(57)【特許請求の範囲】
【請求項1】
サービスとしてメッセージ符号化または復号化を提供するための方法であって、
符号化/復号化機能(EDF)ノードにおいて、
少なくとも1つのTLV(Type-Length-Value)要素を含むメッセージを受信するステップと、
前記メッセージの少なくとも一部を復号化するステップと、
前記メッセージまたは関連するメッセージ内容を識別するためのメッセージ識別子を生成するステップと、
前記メッセージ識別子と動作識別子とを含んだメッセージ符号化/復号化動作要求を受信するステップと
、を含み、前記メッセージ符号化/復号化動作要求は、処理されるメッセージペイロードの代わりに前記メッセージ識別子を含み、前記方法は、さらに、
前記メッセージ識別子を用いてデータ構造に問い合わせて、前記少なくとも1つのTLV要素を含む復号化されたメッセージ内容を取得するステップと、
前記動作識別子を用いて、前記メッセージ識別子が示す
前記メッセージから復号化された
前記少なくとも1つのTLV要
素を修正することを伴うメッセージ符号化/復号化動作を実行するステップと、
前記メッセージ符号化/復号化動作が正常に実行されたかどうかを示す応答を送信するステップとを含む、方法。
【請求項2】
前
記メッセージは、Diameterメッセージ、RADIUS(Remote Authentication Dial In User Service)メッセージ、COPS(Common Open Policy Service)メッセージ、LLDP(Link Layer Discovery Protocol)メッセージ、HTTP(Hypertext Transfer Protocol)メッセージ、AJAXメッセージ、XML(Extensible Markup Language)メッセージ、REST(Representational State Transfer)メッセージ、HTML(Hypertext Markup Language)メッセージ、またはIS-IS(Intermediate System To Intermediate System)メッセージを含む、請求項
1に記載の方法。
【請求項3】
前記メッセージ符号化/復号化動作要求は、特定のメッセージに関連付けられた1つ以上のTLV要素を符号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を用いて、符号化されたメッセージを生成および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を復号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を含んだ符号化されたメッセージを復号化および/または取り出す要求、特定のメッセージの1つ以上のTLV要素を修正する要求、特定のメッセージの1つ以上のTLV要素を追加する要求、または特定のメッセージの1つ以上のTLV要素を削除する要求を含
み、前記メッセージ符号化/復号化動作要求は、前記少なくとも1つのTLV要素を修正することを伴う前記メッセージ符号化/復号化動作を引き起こす、請求項1
または2に記載の方法。
【請求項4】
前記少なくとも1つのTLV要素は、プロトコルインタフェース識別子、関連接続/パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のTLV要素、またはNGN-PS(Next Generation Networks Priority Services)TLV要素を含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記メッセージ符号化/復号化動作要求は、分散ネットワーク機能(DNF:Distributed Network Function)に関連する第1機能を実行するように構成された第1ノードからの要求である、請求項1から
4のいずれか1項に記載の方法。
【請求項6】
前記第1ノードは、前記メッセージ識別子を含んだ送信メッセージを、前記DNFに関連する第2機能を実行するように構成された第2ノードに送信する、請求項
5に記載の方法。
【請求項7】
前記DNFは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、DSR(Diameter Signaling Router)、Diameterノード、RADIUS(Remote Authentication Dial In User Service)ノード、RADIUS信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたDSR、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび/もしくはファイアウォールエージェント
を含む、請求項
5または
6に記載の方法。
【請求項8】
符号化/復号化機能(EDF)ノードにおいて、
前記メッセージ識別子と、前記少なくとも1つのTLV要素に対して行う第2動作を示す第2の動作識別子とを含んだ第2のメッセージ符号化/復号化動作要求を受信するステップを含む、請求項1から
7のいずれか1項に記載の方法。
【請求項9】
サービスとしてメッセージ符号化または復号化を提供するためのシステムであって、前記システムは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサを用いて実装される符号化/復号化機能(EDF)ノードとを備え、前記EDFノードは、
少なくとも1つのTLV(Type-Length-Value)要素を含むメッセージを受信し、
前記メッセージの少なくとも一部を復号化し、
前記メッセージまたは関連するメッセージ内容を識別するためのメッセージ識別子を生成し、
前記メッセージ識別子と動作識別子とを含んだメッセージ符号化/復号化動作要求を受信し、
前記メッセージ符号化/復号化動作要求は、処理されるメッセージペイロードの代わりに前記メッセージ識別子を含み、前記EDFノードは、さらに、
前記メッセージ識別子を用いてデータ構造に問い合わせて、前記少なくとも1つのTLV要素を含む復号化されたメッセージ内容を取得し、
前記動作識別子を用いて、前記メッセージ識別子が示す
前記メッセージから復号化された
前記少なくとも1つのTLV要
素を修正することを伴うメッセージ符号化/復号化動作を実行し、
前記メッセージ符号化/復号化動作が正常に実行されたかどうかを示す応答を送信するように構成される、システム。
【請求項10】
前
記メッセージは、Diameterメッセージ、RADIUS(Remote Authentication Dial In User Service)メッセージ、COPS(Common Open Policy Service)メッセージ、LLDP(Link Layer Discovery Protocol)メッセージ、HTTP(Hypertext Transfer Protocol)メッセージ、AJAXメッセージ、XML(Extensible Markup Language)メッセージ、REST(Representational State Transfer)メッセージ、HTML(Hypertext Markup Language)メッセージ、またはIS-IS(Intermediate System To Intermediate System)メッセージを含む、請求項
9に記載のシステム。
【請求項11】
前記メッセージ符号化/復号化動作要求は、特定のメッセージに関連付けられた1つ以上のTLV要素を符号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を用いて、符号化されたメッセージを生成および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を復号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を含んだ符号化されたメッセージを復号化および/または取り出す要求、特定のメッセージの1つ以上のTLV要素を修正する要求、特定のメッセージの1つ以上のTLV要素を追加する要求、または特定のメッセージの1つ以上のTLV要素を削除する要求を含
み、前記メッセージ符号化/復号化動作要求は、前記少なくとも1つのTLV要素を修正することを伴う前記メッセージ符号化/復号化動作を引き起こす、請求項
9または10に記載のシステム。
【請求項12】
前記少なくとも1つのTLV要素は、プロトコルインタフェース識別子、関連接続/パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のTLV要素、またはNGN-PS(Next Generation Networks Priority Services)TLV要素を含む、請求項
9から
11のいずれか1項に記載のシステム。
【請求項13】
前記メッセージ符号化/復号化動作要求は、分散ネットワーク機能(DNF)に関連する第1機能を実行するように構成された第1ノードからの要求である、請求項
9から
12のいずれか1項に記載のシステム。
【請求項14】
前記第1ノードは、前記メッセージ識別子を含んだ送信メッセージを、前記DNFに関連する第2機能を実行するように構成された第2ノードに送信する、請求項
13に記載のシステム。
【請求項15】
前記DNFは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、DSR(Diameter Signaling Router)、Diameterノード、RADIUS(Remote Authentication Dial In User Service)ノード、RADIUS信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたDSR、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび/もしくはファイアウォールエージェントを含む、請求項
13または
14に記載のシステム。
【請求項16】
前記EDFノードは、
前記メッセージ識別子と、前記少なくとも1つのTLV要素に対して行う第2動作を示す第2の動作識別子とを含んだ第2のメッセージ符号化/復号化動作要求を受信するように構成される、請求項
9から
15のいずれか1項に記載のシステム。
【請求項17】
少なくとも1つのプロセッサに請求項1から
8のいずれか1項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、2017年3月29日に出願された米国特許出願第15/473,519号の優先権の利益を主張するものであり、そのすべての開示内容を引用により本明細書に援用する。
【0002】
技術分野
本明細書に記載の主題は、通信を処理することに関する。より具体的には、この主題は、サービスとしてメッセージ符号化/復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体に関する。
【背景技術】
【0003】
背景
TLV(Type-Length-Value)要素、たとえば、属性と値とのペアまたは情報要素(IE:Information Element)は、情報(たとえば、属性)をプロトコルパケットまたはその他のメッセージに含めて提供するために用いることができるデータ構成を含む。たとえば、TLV要素は、それに含まれる情報の種類または部類を示す識別子、それに含まれる当該情報の長さ、およびそれに含まれる情報の値を含み得る。情報をやり取りおよび/または格納するために、様々な通信プロトコルおよび/またはデータ表現方式(たとえば、XML(Extensible Markup Language))がTLV要素を用いる。たとえば、DiameterおよびRADIUS(Remote Authentication Dial In User Service)は、AAA(Authentication(認証)、Authorization(認可)、Accounting(課金))プロトコルであり、情報を様々なメッセージに含めて提供するためにTLV要素を用いる。
【0004】
いくつかのネットワーク機能または関連ノードは、TLV要素を含んだメッセージを処理する(たとえば、符号化、復号化、および/またはその他の動作)ように構成されてもよい。たとえば、Diameterルーティングエージェント(DRA:Diameter Routing Agent)は、TLV要素を含んだ受信メッセージを復号化し、当該TLV要素を修正し、TLV要素を追加し、TLV要素を削除し、修正されたTLV要素および/またはさらなるTLV要素を含んだ送信メッセージを符号化し、当該送信メッセージを宛先に送信するように構成されてもよい。
【0005】
いくつかのネットワークは、ネットワーク機能の様々な態様、サービス、または機能をサービスまたは関連コンポーネントに分けることを伴うネットワークアーキテクチャを利用する。たとえば、分散ネットワーク機能(DNF:Distributed Network Function)(たとえば、仮想化および/または分散ノード)は、クラウドコンピューティングインフラストラクチャ、仮想化されたインフラストラクチャ、またはその他のネットワーク化されたインフラストラクチャにおいて分散リソースを実行できる1つ以上のDNFコンポーネントまたはそのインスタンスを含んでもよい。この例では、各DNFコンポーネントまたはそのインスタンスは、何らかの機能を実行するための関連するソフトウェアおよび/または処理を含んでもよく、ゆるくつながれていてもよく、および/または個々にスケーラブルであってもよい。
【0006】
分散アーキテクチャによって、ネットワーク事業者および/またはサービスプロバイダは、柔軟性があり、スケーラブルであり、かつ特徴をカスタマイズしたネットワーク機能を導入できるようになるが、複数のDNFコンポーネントおよび/またはそのインスタンスの形で復号化/符号化機能が複製された場合、このようなアーキテクチャでは様々な問題が起こり得る。たとえば、サービスおよび/または特徴が複数のDNFコンポーネントおよびそのインスタンスの形で複製された場合、仮想化または分散DRAは、計算リソースおよび入/出力(I/O)リソースの利用が非効率になり得る。さらに、DNFコンポーネント同士が動作中に大きなペイロードを含んだメッセージをやり取りする場合、リソースの利用がさらに非効率になり得る。
【発明の概要】
【課題を解決するための手段】
【0007】
概要
サービスとしてメッセージ符号化/復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体を開示する。サービスとしてメッセージ符号化または復号化を提供するための1つの方法によると、この方法は、符号化/復号化機能(EDF)ノードにおいて発生する。方法は、メッセージ識別子と動作識別子とを含んだメッセージ符号化/復号化動作要求を受信するステップを含む。また、方法は、少なくとも1つのTLV要素と動作識別子とを用いて、メッセージ識別子が示すメッセージから復号化された少なくとも1つのTLV要素にアクセスまたは当該少なくとも1つのTLV要素を修正することを伴うメッセージ符号化/復号化動作を実行するステップを含む。方法は、メッセージ符号化/復号化動作が正常に実行されたかどうかを示す応答を送信するステップをさらに含む。
【0008】
サービスとしてメッセージ符号化/復号化を提供するための1つのシステムによると、このシステムは、少なくとも1つのプロセッサを備える。また、システムは、EDFノードを備える。EDFノードは、当該少なくとも1つのプロセッサを用いて実現される。EDFノードは、メッセージ識別子と動作識別子とを含んだメッセージ符号化/復号化動作要求を受信し、動作識別子を用いて、メッセージ識別子が示すメッセージから復号化された少なくとも1つのTLV要素にアクセスまたは当該少なくとも1つのTLV要素を修正することを伴うメッセージ符号化/復号化動作を実行し、メッセージ符号化/復号化動作が正常に実行されたかどうかを示す応答を送信するように構成される。
【0009】
本明細書に記載の主題は、ハードウェアおよび/またはファームウェアと組み合わせたソフトウェアで実現されてもよい。たとえば、本明細書に記載の主題は、プロセッサによって実行されるソフトウェアで実現されてもよい。1つの例示的な実装形態において、本明細書に記載の主題は、コンピュータにより実行可能な命令を格納したコンピュータ読み取り可能な媒体を用いて実現されてもよく、当該命令は、コンピュータのプロセッサによって実行されると、ステップを実行するようコンピュータを制御する。本明細書に記載の主題を実現するのに適したコンピュータ読み取り可能な媒体として、ディスク記憶装置、チップ記憶装置、プログラム可能な論理回路、および特定用途向け集積回路などの非一時的なデバイスが挙げられる。これに加えて、本明細書に記載の主題を実現するコンピュータ読み取り可能な媒体は、1つのデバイスまたは1つのコンピューティングプラットフォーム上に位置してもよく、複数のデバイス間または複数のコンピューティングプラットフォーム間で分散されてもよい。
【0010】
本明細書において使用するとき、用語「ノード」は、1つ以上のプロセッサとメモリとを備えた少なくとも1つの物理コンピューティングプラットフォームを指す。
【0011】
本明細書において使用するとき、用語「TLV要素」は、情報を通信プロトコルパケットまたはメッセージに含めて提供するために用いることができる任意の情報要素(IE:Information Element)、属性値ペア(AVP)、またはその他のデータ構成、たとえば、抽象構文記法(ASN:Abstract Syntax Notation)もしくはJSON(JavaScript Object Notation)を用いて符号化されたデータを指す。
【0012】
本明細書において使用するとき、用語「機能」または「モジュール」は、本明細書に記載の特徴を実装するためのハードウェアおよび/またはファームウェアと組み合わせたハードウェア、ファームウェア、またはソフトウェアを指す。
【0013】
ここで、添付の図面を参照して本明細書に記載の主題を説明する。
【図面の簡単な説明】
【0014】
【
図2】分散メッセージ処理モジュールに含まれる例示的な機能を示す図である。
【
図3】TLV要素を含んだ例示的な受信メッセージを示す図である。
【
図4A】は、メッセージ処理に関連付けられた例示的な通信を示す図である。
【
図4B】は、メッセージ処理に関連付けられた例示的な通信を示す図である。
【
図5】メッセージ処理動作を実行するための例示的な処理を示す図である。
【発明を実施するための形態】
【0015】
詳細な説明
本明細書に記載の主題は、サービスとしてメッセージ符号化および/または復号化(符号化/復号化)を提供するための方法、システム、およびコンピュータ読み取り可能な媒体に関する。コンポーネント(たとえば、サービス)のインスタンスがゆるくつながれたほとんどの分散ネットワーク機能(DNF:Distributed Network Function)では、各コンポーネントの境界においてメッセージが符号化および/または復号化される。たとえば、当該DNFに含まれる第1コンポーネントによってメッセージが処理された後、第1コンポーネントは、さらに処理するためにDNFに含まれる第2コンポーネントに送信する前にこのメッセージを(再)符号化してもよく、ここで、第2コンポーネントは、その処理の一部としてメッセージを復号化してもよい。この例では、この符号化-復号化サイクルは、メッセージが完全に処理される前に複数回発生してもよい(たとえば、このメッセージは、1つ以上のDNFに含まれる複数のコンポーネントによって、または1つ以上のDNF間で復号化および符号化されてもよい)。各コンポーネントまたはDNFの境界において符号化および復号化されるサイクルは、リソース利用が非効率になる一因となる。なぜならば、たとえば、メッセージを繰り返し符号化/復号化するために、かなりの計算リソースおよび/または処理リソースが使用される可能性があるからである。さらに、コンポーネント間で完全なメッセージ(たとえば、符号化されたペイロードを含むメッセージ)をやり取りすることは、I/Oのリソース利用および/またはネットワーキング関連リソースに影響を与え、リソース利用が非効率になるおよび/またはネットワークの輻輳の一因となる。
【0016】
本明細書に記載の主題のいくつかの態様によると、サービスとしてメッセージ符号化/復号化を提供するための技術、方法、システム、またはメカニズムを開示する。たとえば、本明細書に記載の態様に係るメッセージ符号化/復号化サービスは、メッセージの復号化および符号化を1回実行し、共通インタフェース、たとえば、API(Application Program Interface)、EDL(Encode And/Or Decode Library)呼び出し、またはRPC(Remote Procedure Call)を介してすべてのコンポーネントインスタンスを供給することができる。この例では、メッセージ符号化/復号化サービスによって、特定のメッセージまたはそれに含まれるメッセージ内容を識別、アクセス、または参照するためにその他のコンポーネントによって使用され得るメッセージ識別子および/またはメッセージ復号化メタデータを生成してもよく、メッセージ処理時にコンポーネントまたはそのインスタンス間で転送されるデータ量を最小限に抑えることができる。
【0017】
有利には、本明細書に記載の主題のいくつかの態様によると、共通のメッセージ符号化/復号化サービスを分散環境において利用することによって、複製される符号化/復号化処理を最小限に抑える、それどころかなくすことができ、(たとえば、共通のメッセージ符号化/復号化サービスによって生成された)メッセージ識別子をメッセージペイロードの代わりに利用することによって、ネットワーク機能内(たとえば、DNFコンポーネント間またはそのインスタンス間)およびネットワーク機能間(たとえば、DNF間)のコンポーネント同士またはそのインスタンス同士での大きなペイロードを含んだメッセージの交換を大幅に抑えることができる。
【0018】
ここで、本明細書に記載の主題の様々な実施形態を詳細に説明する。これらの実施形態の例は、添付の図面に示される。可能な限り、図面の全体にわたって、同じまたは同様の部品には同じ参照番号を付す。
【0019】
図1は、本明細書に記載の主題の実施形態に係る、例示的な処理ノード(PN:Processing Node)100を示す図である。
図1を参照すると、PN100は、メッセージ処理モジュール(MPM:Message Processing Module)102とMPMストレージ104とを含んでもよい。PN100は、1つ以上のTLV要素を含んだメッセージの処理(たとえば、符号化、修正、および/または復号化)に関連付けられた1つ以上の態様を実行するための任意の適した1つエンティティまたは複数のエンティティ(たとえば、1つ以上のコンピューティングプラットフォーム、コンピューティングデバイス、および/または少なくとも1つのプロセッサ上で実行中のソフトウェア)を表してもよい。たとえば、PN100は、1つ以上のTLV要素を含んだメッセージを受信、処理、および/または送信するように構成されてもよい。例示的なPN100は、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、DSR(Diameter Signaling Router)、Diameterノード、RADIUSノード、RADIUS信号ルータ、ネットワークルータ、ネットワークスイッチ、またはネットワーク機器を含んでもよいが、これらに限定されない。
【0020】
いくつかの実施形態では、PN100は、1つ以上の通信プロトコルに関連付けられたメッセージを受信および/または送信するための機能を含んでもよい。たとえば、PN100は、Diameterプロトコル、RADIUSプロトコル、COPS(Common Open Policy Service)メッセージ、LLDP(Link Layer Discovery Protocol)、IS-IS(Intermediate System To Intermediate System)プロトコル、および/または、たとえば、ASN(Abstract Syntax Notation)、もしくはJSON(JavaScript Object Notation)、もしくはその他の形態の符号化されたデータを含む信号プロトコルなどのその他のプロトコルを用いてノードと通信を行うための様々な通信インタフェースを含んでもよい。
【0021】
MPM102は、1つ以上のTLV要素を含んだメッセージを処理することに関連付けられた1つ以上の態様を実行するための任意の適した1つのエンティティまたは複数のエンティティ(たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、および/または プロセッサ上で実行中のソフトウェア)を表してもよい。たとえば、MPM102は、1つ以上のTLV要素を含んだメッセージを受信、処理、修正、符号化、復号化、および/または送信するように構成されてもよい。MPM102によって実行可能な処理として、TLV要素および/または関連属性を識別すること、TLV要素および/または関連属性を修正すること、ならびに/またはTLV要素を含んだメッセージを復号化および/もしくは符号化することなどが挙げられ得る。たとえば、ユーザまたはその他のエンティティからの要求を受信することに応答して、MPM102は、受信したメッセージに含まれる特定のTLV要素を復号化してもよい。また、MPM102は、復号化および/または検出された(たとえば、点検された)TLV要素についての情報を、ステートフルな復号化アルゴリズムを利用するときなどに格納するための機能を含んでもよい。たとえば、MPM102は、復号化されたTLV要素についての格納された情報を、少なくともいくつかの送信メッセージを生成または符号化する際に利用してもよい。
【0022】
いくつかの実施形態では、MPM102は、ステートフルな復号化アルゴリズムと連動してまたはステートフルな復号化アルゴリズムの代わりに、ステートレスな復号化アルゴリズムを利用するための機能を含んで、TLV要素を含んだ様々なメッセージを復号化してもよい。たとえば、ステートフルな復号化アルゴリズムはメッセージを復号化するときにメタデータを格納または更新してもよいが、ステートレスな復号化アルゴリズムはメッセージを復号化するときにすべてではないとしてもいくつかのメタデータを格納または更新することを避けてもよい。この例では、いくつかのメッセージは、1回しか読み出されずまったく修正されないTLV要素を含んでいる可能性があるため、復号化にはステートレスな復号化アルゴリズムが好ましい。なぜならば、ステートフルな復号化アルゴリズムはより多くの処理リソースおよびメモリリソースを利用する可能性があり、不要なメタデータを格納してしまうためである。例示的なステートフルな復号化戦略および/または関連アルゴリズムについてのさらなる詳細は、2014年9月12日に出願された、METHODS,SYSTEMS,AND COMPUTER READABLE MEDIA FOR PROCESSING DATA CONTAINING TYPE-LENGTH-VALUE (TLV) ELEMENTS(TLV(TYPE-LENGTH-VALUE)要素を含んだデータを処理するための方法、システム、およびコンピュータ読み取り可能な媒体)と題する米国特許出願第14/485,147号に見られる。当該出願のすべての開示内容を引用により本明細書に援用する。
【0023】
いくつかの実施形態では、MPM102は、MPMストレージ104を含むまたはMPMストレージ104にアクセスしてもよい。MPMストレージ104は、TLV要素に関連する情報(たとえば、TLV要素の属性、TLV要素の種類の情報、TLV要素の長さまたは大きさ情報、TLV要素値、受信オフセット値および/または送信オフセット値)および/または関連データ構造を格納するための任意の適した1つのエンティティまたは複数のエンティティ(たとえば、非一時的なコンピュータ読み取り可能な媒体、フラッシュメモリ、ランダムアクセスメモリ、および/または記憶装置)を表してもよい。たとえば、MPMストレージ104は、処理中の受信メッセージ106および/または送信メッセージ108ごとに、復号化イテレータおよび/または検証情報を格納してもよい。いくつかの実施形態では、MPMストレージ104は、PN100および/もしくはMPM102の外部にあってもよく、ならびに/または内蔵されてもよい。
【0024】
図1は例示のためであり、
図1に関連して上述した様々なデータ構造および/または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。たとえば、いくつかのノードおよび/または機能が1つのエンティティに組み合わされてもよい。別の例では、いくつかのノードおよび/または機能が複数のノード間および/または複数のプラットフォーム間に分散してもよい。
【0025】
図2は、分散MPM(DMPM:DISTRIBUTED MPM)200に含まれる例示的な機能を示す図である。いくつかの実施形態では、DMPM200は、メッセージ処理を行うための分散ネットワーク機能(DNF:Distributed Network Function)を表してもよく、MPM102と同様の機能を含んでもよい。たとえば、DMPM200は、1つ以上のTLV要素を含んだメッセージを受信、処理、符号化、復号化、および/または送信するように構成された様々なコンポーネントまたは機能を含んでもよい。DMPM200に関連付けられたコンポーネントまたは機能によって実行可能な処理として、TLV要素および/または関連属性の識別、TLV要素および/または関連属性の修正、および/またはTLV要素を含んだメッセージの復号化および/または符号化などが挙げられ得る。
【0026】
図2を参照すると、DMPM200は、ノード202~208(たとえば、物理デバイス、コンピューティングプラットフォームなど)を含んでもよい。ノード202~208は、1つ以上のDNFコンポーネントまたは関連サービス、たとえば、接続マネージャ機能(CMF:Connection Manager Function)210、エンコーダおよび/またはデコーダ(エンコーダ/デコーダ)機能(EDF:Encoder and/or Decoder Function)212、メッセージ選別機能(MSF:Message Screening Function)214、メッセージ優先順位機能(MPF:Message Priority Function)216、受信制御機能(ICF:Ingress Control Function)218、および/またはルーティング制御機能(RCF:Routing Control Function)220を実行するためのメモリおよび/または1つ以上の計算リソース(たとえば、ハードウェアによるプロセッサ)を含んでもよい。いくつかの実施形態では、DMPM200に含まれる1つ以上の機能(たとえば、DNFコンポーネント)は、たとえば、仮想マシン(VM)または仮想化コンテナ(たとえば、Dockerコンテナ)など、仮想環境に格納されるおよび/または仮想環境において実行されるソフトウェアまたは論理を含んでもよい。いくつかの実施形態では、DMPM200に含まれる1つ以上の機能(たとえば、DNFコンポーネント)は、たとえば、仮想化ソフトウェアを用いない物理リソースを利用して非仮想環境に格納されるおよび/または非仮想環境において実行されるソフトウェアまたは論理を含んでもよい。
【0027】
いくつかの実施形態では、DMPM200は、サービス指向アーキテクチャ(SOA:Service Oriented Architecture)を含む、利用する、または当該アーキテクチャの一部であってもよい。いくつかの実施形態では、EDF212および/またはその他のDNF機能は、個々にスケーリングされてもよく、たとえば、DNF機能のインスタンスまたは複製を作成し、必要に応じて導入してもよい。たとえば、ネットワークにおいてメッセージの数が増えると、EDF212の複数のインスタンスを作成して導入し、増大したトラフィックを処理してもよい。この例では、EDF212の各インスタンスは、同様の符号化/復号化機能を提供してもよく、総メッセージ負荷の一部を処理してもよい。この例では、EDF212またはそのインスタンスを、サービスまたはマイクロサービスと称する場合がある。
【0028】
CMF210は、メッセージに関連付いたトランスポートサービスおよび/または接続を処理するための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。たとえば、CMF210は、Diameterメッセージを受信し、Diameterメッセージを処理することに関連付いたトランスポートを実行または容易にしてもよい。いくつかの実施形態では、CMF210は、このDiameterメッセージを何らかの前処理のためにEDF212に送信してもよく、Diameterメッセージを別のDNFまたは処理ノードに送信するときに、最終の符号化されたパケット(たとえば、DMPM200に含まれる様々な機能による処理の後)も要求してもよい。
【0029】
いくつかの実施形態では、CMF210は、メッセージをメッセージ処理のためにその他の機能(たとえば、EDF212、MSF214、MPF216、ICF)218、および/またはRCF220)に提供するための1つ以上のトランスポートメカニズムを利用してもよい。1つの例示的なメカニズムは、プッシュメカニズムを含んでもよく、たとえば、CMF210は、処理するための新しいメッセージを示すメッセージを1つ以上の利用可能な機能に送信してもよい。別の例示的なメカニズムは、プルメカニズムを含んでもよく、たとえば、処理対象のRADIUSまたはDiameterメッセージを(たとえば、APIまたはRPCを介して)機能がCMF210に要求してもよい。別の例示的なメカニズムは、新たな処理可能なメッセージについての通知を受信するよう初期機能が加入する、加入/公開システムを含んでもよく、メッセージが受信されて処理可能になると、CMF210は、このような通知を提供または公開してもよい。
【0030】
いくつかの実施形態では、メッセージをその他の機能に送信する前に、CMF210は、AVP、TLV要素、および/またはその他のメッセージ内容を含んだメッセージを(前)処理のためにEDF212に送信してもよい。たとえば、EDF212は、AVP、TLV要素、またはその他のデータを含んだメッセージを受信してもよく、それに含まれるメッセージ内容を復号化してもよく、メッセージおよび/またはそれに含まれる復号化されたメッセージ内容を識別するためのメッセージ識別子を生成してもよい。この例では、EDF212は、メッセージ内容(たとえば、TLV要素、AVP、および/またはメタデータ)を1つ以上のデータ構造に復号化および/または格納してもよく、メッセージ識別子を用いてこのメッセージ内容にインデックスを付けてもよい。この例を引き続き参照して、EDF212からメッセージ識別子を受信した後、CMF210は、EDF212から返されたメッセージ識別子とともに処理命令をその他の機能に送信してもよい。
【0031】
いくつかの実施形態では、CMF210は、様々なトランスポート機能および/またはトランスポートサービスを実行してもよい。たとえば、CMF210は、どの機能が受信メッセージ106を初期処理のために受信するかを決定してもよく、このメッセージを別の宛先、たとえば、別のDNFまたは処理ノードに送信する際、符号化されたメッセージまたはその一部をEDF212が生成するよう要求してもよい。
【0032】
いくつかの実施形態では、メッセージ識別子は、DNFコンポーネント間またはその他のエンティティ間でやり取りされてもよい。このような実施形態では、各DNFコンポーネントまたは機能は、EDF212(または関連API)と関連メッセージ識別子とを利用することによって、関連するメッセージにアクセスおよび/または修正することができる。たとえば、EDF212は、受信メッセージ106、たとえば、AVPを含んだDiameterメッセージを表すためのメッセージ識別子をCMF210に提供してもよい。この例では、受信メッセージ106を送信する代わりに、DMPM200に含まれる次の機能に処理を要求するときに、メッセージ識別子を含んだ部分的なメッセージまたはより小さいサイズのメッセージを、CMF210およびその他の機能が送信してもよい。
【0033】
EDF212は、メッセージ符号化および/または復号化動作を行うための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。たとえば、EDF212は、メッセージ内容、たとえば、パケットデータにアクセスおよび/または修正するための共通インタフェース(たとえば、REST(Representational State Transfer)API、RPCなど)をその他の機能(たとえば、DNFコンポーネント)に提供してもよい。いくつかの実施形態では、EDF212は、メッセージ内容、たとえば、AVP、TLV要素、および/またはメタデータのためのストレージおよび/またはメンテナンス機能を提供してもよい。
【0034】
EDF212は、様々なメッセージおよび/またはプロトコルに関連付けられた様々なデータ構成を復号化または符号化するための機能を含んでもよい。EDF212が処理(たとえば、復号化および/または符号化)できるデータ構成として、TLV、AVP、ASN符号化されたデータ、および/またはJSON符号化されたデータなどが挙げられるが、これらに限定されない。たとえば、受信したトラフィックおよび/または通信環境によっては、EDF212および/または関連エンティティは、AVPを含んだDiameterメッセージおよび/またはJSON符号化されたデータを有するメッセージを処理するように構成されてもよい。
【0035】
いくつかの実施形態では、EDF212は、その他の機能、ユーザ、および/またはノードとやり取りを行うための1つ以上の通信インタフェースを含んでもよい。たとえば、EDF212は、Diameterメッセージ、RADIUSメッセージ、COPSメッセージ、LLDPメッセージ、IS-ISメッセージ、および/もしくはその他のメッセージを受信ならびに/または送信するための通信インタフェースを含んでもよい。別の例では、EDF212は、(たとえば、EDF212と様々なその他の機能との間の
図2の破線で表されるような)様々なDNFコンポーネントおよび/またはノードと通信を行うための1つ以上の通信インタフェースを含んでもよい。この例では、EDF212は、受信メッセージを復号化および/もしくは送信メッセージを符号化する、またはメッセージ内容に対して様々なメッセージ処理動作を行うための処理要求をエンティティ(たとえば、API、EDL呼び出し、またはその他のメカニズムを介して)から受信してもよい。
【0036】
いくつかの実施形態では、EDF212は、たとえば、TLV属性に基づく、TLV要素の一定時間ごとのルックアップ(たとえば、同じ時間を必要とし、データ構造の大きさの影響を受けない複数回のルックアップ)を提供するように構成されてもよい。たとえば、EDF212は、所与のメッセージについてのメッセージ関連情報を、連想コンテナ(たとえば、連想配列、ハッシュマップ、またはその他の関連データ構造)、および/または一定時間ごとのルックアップを提供および可能にし、かつ、メッセージ識別子によってインデックスを付けられ得るまたは識別可能であり得るその他のデータ構造に格納してもよい。別の例では、連想配列は、TLV関連タグおよび/またはTLVベンダー識別子(ID)に対応するハッシュ値を用いてインデックスを付けられたTLVインスタンスコンテナ(たとえば、特定の種類のTLV要素についての情報を含んだアレイまたはベクトル)を含んでもよい。この例では、衝突がないものと仮定すると、連想配列のルックアップは、1つの動作を実行するために必要な時間を含んでもよく、この時間は、連想配列の大きさに関係なく大幅に変わらなくてもよい。
【0037】
いくつかの実施形態では、EDF212は、受信メッセージ(たとえば、パケット)からのTLV要素の最適化した(たとえば、ニードに基づいた、またはLazy)復号化を提供するように構成されてもよい。たとえば、EDF212は、一致しないTLV要素に対して余分な動作を実行しないで、TLV属性(たとえば、TLV要素タグ)を比較するまたはメッセージ構造を検証するパケットを「検索(walk)」するように構成されてもよい。この例では、EDF212は、要求されたTLV要素についての情報を取得するために必要な場合に限り「検索」するように構成されてもよい。
【0038】
いくつかの実施形態では、EDF212は、受信メッセージ(たとえば、1つ以上のデータ構造において)でのTLV要素の位置(たとえば、オフセット値)を特定して格納するように構成されてもよい。このような実施形態では、位置情報は、TLV要素の値を実際に格納することなく読み取り専用動作を許可するために使用できる。TLV要素の値またはその他の属性を格納する代わりに位置情報を格納することによって、リソースと時間とを節約してもよい(たとえば、TLV要素の存在または位置が要求されるがそこに含まれる実際の値は要求されないシナリオにおいてコストがかかる可能性のあるメモリ関連の動作を回避することによって)。
【0039】
いくつかの実施形態では、EDF212は、TLV要素の最適化した符号化を送信メッセージに提供するように構成されてもよい。たとえば、受信パケットにおけるTLV要素の格納位置(たとえば、受信オフセット値)によって、修正されていないTLV要素を受信パケットから直接複製することによって、送信パケットの最適化した符号化を可能にしてもよく、余分な動作を回避することができる。別の例では、送信パケットにおけるTLV要素の位置(たとえば、送信オフセット値)を格納し、修正/追加されたTLV要素を、たとえば、このようなTLV要素が最後の符号化から修正されていない場合、前に符号化された送信パケットから複製するために利用してもよく、余分な動作を回避することができる。
【0040】
いくつかの実施形態では、EDF212は、符号化されたメッセージごとの位置(たとえば、オフセット値)を維持する符号化イテレータ(たとえば、ポインタオブジェクト)を用いてもよい。この例では、EDF212は、メッセージの先頭の符号化イテレータを初期化してもよく、TLV要素が送信メッセージ108に挿入されると、EDF212は、次に点検されるTLV要素のためのメッセージにおける位置を符号化イテレータが維持するよう、当該符号化イテレータをインクリメントしてもよい。いくつかの実施形態では、EDF212は、送信メッセージ108に複数の復号化イテレータを用いてもよい。
【0041】
受信メッセージ106は、EDF212によって受信、処理、および/または復号化され得る1つ以上のTLV要素を含んだ任意のメッセージ(たとえば、パケット)を表してもよい。たとえば、受信メッセージ106は、Diameterメッセージ、RADIUSメッセージ、COPSメッセージ、LLDPメッセージ、またはIS-ISメッセージを表してもよい。
図1に示すように、受信メッセージ106は、同じまたは異なる種類の複数のTLV要素を含んでもよい。たとえば、各TLV要素の種類は、「A」、「B」、「C」、および/または「D」などの文字によって表されてもよい。この例では、(たとえば、特定のTLV要素種類の)各TLV要素は、「A1」、「A2」、および「A3」など、特定の文字の後の数字によって表されてもよい。
【0042】
いくつかの実施形態では、EDF212は、受信メッセージ106を(たとえば、CMF210から)受信するように構成されてもよく、および/または受信メッセージ106に関連付けられたTLV要素を処理すること関連する1つ以上の動作を実行するように構成されてもよい。たとえば、EDF212は、EDL関連の要求を受信するように構成されてもよい(たとえば、特定のTLV要素が受信メッセージ106に存在するかどうかを判断するための要求、および/または受信メッセージ106に含まれる特定のTLV要素の値を判断するための要求)。これに応答して、EDF212は、受信メッセージ106に含まれるTLV要素を(たとえば、関連付けられたタグを介して)点検して、要求されたTLV要素が見つかった場合、EDL関連の要求に対する適切な応答を提供するように構成されてもよい。
【0043】
送信メッセージ108は、1つ以上のTLV要素を含んだメッセージ(たとえば、パケット)を表してもよく、EDF212によって生成および/または符号化されてもよい。たとえば、送信メッセージ108は、Diameterメッセージ、RADIUSメッセージ、COPSメッセージ、LLDPメッセージ、またはIS-ISメッセージを表してもよい。
図1に示すように、送信メッセージ108は、同じまたは異なる種類の複数のTLV要素を含んでもよい。たとえば、各TLV要素の種類は、「A」、「B」、「C」、および/または「D」などの文字によって表されてもよい。この例では、各TLV要素は、「A1」、「A2」、および「A3」など、特定の文字の後の数字によって表されてもよい。
【0044】
いくつかの実施形態では、送信メッセージ108は、受信メッセージ106から復号化されたTLV要素を含んでもよい。たとえば、TLV要素「A1」、「B1」、「C1」、「C2」、および「A2」は、受信メッセージ106から復号化されてもよく、これらのTLV要素についての情報がMPMストレージ104に格納されてもよく、送信メッセージ108を符号化する際に利用されてもよい。
【0045】
いくつかの実施形態では、送信メッセージ108は、復号化および/または修正されなかった受信メッセージ106からのTLV要素を含んでもよい。たとえば、受信メッセージ106からのTLV要素「B2」は、が含まれてもよい。この例では、EDF212は、受信メッセージ106の一部が送信メッセージ108から直接複製され得ると判断するように構成されてもよい。
【0046】
いくつかの実施形態では、送信メッセージ108は、受信メッセージ106に含まれるTLV要素とは異なる、またはこれらに加えて、TLV要素を含んでもよい。たとえば、TLV要素「E1」、「F1」、「A3」、および「D1」は、EDF212によって追加および/または修正され、送信メッセージ108を符号化するときに用いられてもよい。
【0047】
いくつかの実施形態では、EDF212は、送信メッセージ108を生成および/もしくは符号化するように構成され、ならびに/または送信メッセージ108に関連付けられたTLV要素を処理することに関連する1つ以上の動作を実行するように構成されてもよい。たとえば、メッセージ処理要求(たとえば、メッセージ符号化/復号化動作(MEDO:Message Encode or Decode Operation)要求)を受信することに応答して、EDF212は、受信メッセージ106の宛先アドレスを含んだタグ「A」に関連付けられた第1のTLV要素(たとえば、TLV要素「A1」)を修正し、かつ、当該修正されたTLV要素を含んだ送信メッセージ内容を符号化し、当該符号化されたメッセージ内容を含む送信メッセージ108をCMF210に送信するように構成されてもよく、ここで、CMF210は、送信メッセージ108を別のDNFまたは処理ノードに送信してもよい。この例では、受信メッセージ106に含まれる様々な復号化されたTLV要素についての情報を含んだ1つ以上のデータ構造を用いて、EDF212は、TLV要素「A1」を関連する宛先アドレスを含むように修正し、当該修正されたTLV要素を送信メッセージ108に含めてもよい。
【0048】
MSF214は、メッセージを選別するための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。たとえば、MSF214は、無効なトランザクション、異常メッセージ、または孤立メッセージを破または選別してもよい。この例では、Diameterメッセージを選別するときにMSF214がDiameterメッセージの1つ以上の復号化されたAVPを分析できるよう、MSF214は、これらのAVPを要求するためのメッセージ処理要求をEDF212に送信してもよい。いくつかの実施形態では、たとえば、受信メッセージがさらに処理されるとMSF214が判断した場合、MSF214は、送信メッセージ(たとえば、機能要求)を次の機能、たとえば、MPF216に送信してもよい。このような実施形態では、当該送信メッセージは、受信メッセージからの実際のTLV要素の代わりに、メッセージ内容を識別するためのメッセージ識別子を含んでもよい。
【0049】
MPF216は、メッセージ優先順位を割り当てまたは決定するための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。たとえば、MPF216は、メッセージ優先順位方式を利用してもよく、ここで、「P0」~「P4」が、順に高いレベルのメッセージ優先順位を表す。メッセージ優先順位「P4」が、最も高いメッセージ優先順位を表してもよく、NGN-PS(Next Generation Networks Priority Services)メッセージ(たとえば、緊急時第一応答者に関連付けられたメッセージ)に割り当てられてもよい。メッセージ優先順位「P3」が、2番目に高いレベルのメッセージ優先順位を表してもよく、応答メッセージに割り当てられてもよい。メッセージ優先順位「P2」、「P1」、および「P0」が、順に低いレベルのメッセージ優先順位を表してもよく、これらの優先順位のうちのいずれかを割り当ててメッセージを要求してもよい。
【0050】
いくつかの実施形態では、MPF216は、IETF(Internet Engineering Task Force)のRFC(Request for Comments)7944において定義されたDRMP(Diameter Routing Message Priority)標準に基づくメッセージ優先順位方式を利用してもよい。いくつかの実施形態では、MPF216は、特定の状況時、たとえば、過負荷イベントに応答して、メッセージのメッセージ優先順位を調整してもよい。たとえば、MPF216は、様々なメッセージ優先順位のメッセージ率を規制または監視してもよい。この例では、DMPM200が「P4」メッセージを最大率(たとえば、設計されたサーバ容量の15%)よりも多く受信した場合、いくつかの「P4」メッセージは、「P3」に再割り当てられてもよい。この例を引き続き参照して、DMPM200が「P4」メッセージを最大率よりも少なく受信した場合、「P4」メッセージは、不可侵(たとえば、再割り当てされない)であってもよく、保証されたサービスを提供するためのすべての輻輳制御を無視することができてもよい。
【0051】
ICF218は、受信メッセージの率および/または量を制御するための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。いくつかの実施形態では、ICF218は、受信メッセージに関連する様々な接続の最大接続率を規制し、これらの接続率を超えるメッセージを破棄してもよい。また、いくつかの実施形態では、ICF218は、予約接続率も規制してもよく、メッセージが高メッセージ率の(たとえば、負荷がかかった)接続に対応付けられているかどうかに基づいて、「緑」=通常負荷、黄=かなりの負荷、「赤」=過負荷検出など、メッセージを色付けまたはマーク付けしてもよい。
【0052】
いくつかの実施形態では、ICF218または別の機能は、過負荷イベント時にトラフィックを処理および/または管理するための論理を含んでもよい。いくつかの実施形態では、DMPM200または関連コンポーネントに過負荷がかかっている場合、ICF218は、予め定められたメッセージ率(たとえば、設計されたまたは好ましいメッセージ率)に基づいてメッセージを規制してもよく、当該予め定められたメッセージ率を超過するメッセージを破棄してもよい。いくつかの実施形態では、DMPM200または関連コンポーネントに過負荷がかかっていない場合、ICF218は、最大メッセージ率(たとえば、設計されたメッセージ率よりも高い率)に基づいてメッセージを規制してもよく、当該最大メッセージ率を超えるメッセージを破棄してもよい。
【0053】
RCF220は、関連処理をルーティングするための任意の適したエンティティ(たとえば、少なくとも1つのプロセッサ上で実行されているソフトウェア)であってもよい。たとえば、RCF220は、アプリケーション関連処理のためにDMPM200に関連付けられた1つ以上の機能に受信メッセージ106をルーティングしてもよい。別の例では、RCF220は、受信メッセージ106をどのように処理するかおよび/またはどこに送信メッセージ108をルーティングするかを決定するための様々なその他の機能に受信メッセージ106をルーティングしてもよい。
【0054】
図2は例示のためであり、
図2に関連して上述した様々なエンティティおよび/または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。たとえば、いくつかのノードおよび/または機能を1つのエンティティ、たとえば、ルーティング機能群に組み合わせてもよい。別の例では、いつくかのノードおよび/または機能を複数のノードおよび/またはプラットフォーム間に分散させてもよい。
【0055】
図3は、TLV要素を含んだ受信メッセージ106を示す図である。
図3を参照すると、受信メッセージ106は、複数のTLV要素、たとえば、「A1」、「B1」、「C1」、「C2」、「B2」、および「A2」を含んでもよい。各TLV要素は、TLV要素の名前または種類を表すタグ属性値と、TLV要素の全体の長さまたは大きさ(たとえば、バイト単位)を表す長さ属性値と、TLV要素のデータを表す値属性値とを含んでもよい。
【0056】
いくつかの実施形態では、EDF212は、TLV要素を含んだメッセージを「検索」するための機能を含んでもよい。たとえば、EDF212は、復号化されたメッセージごとの位置(たとえば、オフセット値)を維持する復号化イテレータ(たとえば、ポインタオブジェクト)を利用してもよい。この例では、EDF212は、メッセージの先頭にある復号化イテレータを初期化してもよく、TLV要素および/または関連タグが点検されると、メッセージにおいて点検された直近の位置または次に点検される位置を復号化イテレータが維持するよう、復号化イテレータをインクリメントしてもよい。
【0057】
いくつかの実施形態では、EDF212は、特定のメッセージに対して複数の復号化イテレータを用いてもよい。たとえば、EDF212は、出くわしたTLV要素種類ごとに復号化イテレータを用いてもよい。この例を引き続き参照して、EDF212は、点検された最後の位置から引き続きメッセージを「検索」できるので、特定の種類の次のTLV要素をすぐに見つけるために、復号化イテレータを用いてもよい。メッセージが1つ以上の入れ子のTLV要素(たとえば、
図1における受信メッセージ106のTLV要素「D1」)を含む別の例では、EDF212は、グループ化されたTLV要素/親TLV要素ごとに復号化イテレータを用いてもよい。この例では、特定の入れ子のTLV要素に含まれる次のTLV要素、たとえば、受信メッセージ106のTLV要素「D1」に含まれるTLV要素「A2」をすぐに見つけるために復号化イテレータを使用可能である。いくつかの実施形態では、EDF212は、入れ子のTLV要素ごとに複数の復号化イテレータ、たとえば、入れ子のTLV要素に含まれるTLV種類ごとに1つの復号化イテレータを用いてもよい。
【0058】
いくつかの実施形態では、EDF212は、受信メッセージ106を復号化または「検索」するためのステートレスな復号化アルゴリズムを用いてもよく、復号化イテレータを更新するときにポインタ演算を用いてもよい。たとえば、長さまたは大きさを有し、EDF212によって識別可能であるヘッダを点検した後、EDF212は、第1のTLV要素、たとえば、TLV要素「A1」を読み出すまたは点検することによって受信メッセージ106の復号化を開始してもよい。この例では、EDF212は、第1のTLV要素の長さ属性値(たとえば、「Len1」=20)を点検してもよく、当該長さ属性値、および、次のTLV要素、TLV要素「B1」を指し得る、更新された復号化イテレータ(たとえば、40)を演算するための復号化イテレータを表すバイトオフセット値(たとえば、20)を追加してもよい。この例を引き続き参照して、特定のTLV要素が見つかるまで、または、異なる復号化アルゴリズム、たとえば、ステートフルな復号化アルゴリズムを利用すると判断するまで、EDF212は、ステートレスな復号化アルゴリズムを用いて引き続き受信メッセージ106を「検索」してもよい。
【0059】
図3は例示のためであり、
図3に関連して上述した様々なエンティティおよび/または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。
【0060】
図4A~
図4Bは、メッセージ処理に関連付けられた例示的な通信を示す図である。いくつかの実施形態では、MPM102または関連機能は、DNFコンポーネント(たとえば、機能またはサービス)に分けられてもよい。いくつかの実施形態では、メッセージ処理の様々な態様を実行可能なDNFコンポーネントのセットを、まとめてDMPM200と称する場合がある。いくつかの実施形態では、様々なDNFコンポーネント(たとえば、CMF210、MSF214、MPF216、ICF218、および/またはRCF220)は、EDF212と通信を行ってもよく、ここで、EDF212は、メッセージ符号化、メッセージ修正、および/またはメッセージ復号化に関する1つ以上の機能、動作、またはサービスを実行してもよい。いくつかの実施形態では、DMPM200に含まれる1つ以上のDNFコンポーネントは、VMを用いて仮想化および/または実装されてもよい。
【0061】
図4Aを参照すると、ステップ401では、Diameterメッセージ「A」をCMF210において受信してもよい。たとえば、CMF210が受信メッセージ106を受信してもよい。
【0062】
ステップ402では、Diameterメッセージ「A」を、前処理のためにCMF210からEDF212に送信してもよい。たとえば、EDF212は、メッセージ識別子を生成してメッセージ内容(たとえば、AVPおよび/またはメタデータ)を復号化できるよう、第1機能(たとえば、MSF214)が処理する前にDiameterメッセージを受信してもよい。この例では、復号化されたメッセージ内容を1つ以上のデータ構造に格納し、メッセージ識別子によってインデックスを付けてもよい。
【0063】
ステップ403では、EDF212は、Diameterメッセージ「A」および/またはその中のメッセージ内容(たとえば、AVP)を一意に識別するためのメッセージ識別子「X」を生成してもよい。また、EDF212は、メッセージ識別子「X」とDiameterメッセージ「A」に含まれるメッセージ内容とを対応付けてデータ構造に格納してもよい。
【0064】
ステップ404では、生成されたメッセージ識別子を含む応答メッセージをEDF212からCMF210に送信してもよい。たとえば、REST API、RPC、またはEDLメッセージを介して応答メッセージを送信してもよい。この例では、応答メッセージは、メッセージおよび/またはその中のメッセージ内容を表すためのメッセージ識別子を含んでもよく、DMPM200に含まれる様々な機能(たとえば、DNFコンポーネント)および/または関連エンティティによって当該メッセージ参照するときに利用されてもよい。
【0065】
ステップ405では、機能要求メッセージは(たとえば、RPCもしくはAPI呼び出し、または別のメッセージング機構を介して)、生成されたメッセージ識別子を、処理のためにCMF210からMSF214に送信してもよい。いくつかの実施形態では、機能要求メッセージは、Diameterメッセージ「A」と同様のDiameterメッセージを含んでもよいが、メッセージ識別子によって識別可能であるTLVまたはその他のメッセージ内容の代わりにまたはそれに代えて、メッセージ識別子を含んでもよい。
【0066】
図4Bを参照すると、ステップ406では、メッセージ処理要求をMSF214からEDF212に送信してもよい。このメッセージ処理要求は、メッセージおよび/またはメッセージ内容(たとえば、TLV要素)を示すメッセージ識別子と、示されたメッセージまたはメッセージ内容に関係する、実行するメッセージ処理動作を示すオペコードまたは識別子とを含んでもよい。別の例では、メッセージ処理要求は、追加および/または修正されるメッセージデータと、メッセージ識別子と、メッセージ修正を行うメッセージ処理動作を示すオペコードまたは識別子とを含んでもよい。
【0067】
例示的なメッセージ処理要求は、特定のメッセージに関連付けられた1つ以上のTLV要素を符号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を用いて、符号化されたメッセージを生成および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を復号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を含んだ符号化されたメッセージを復号化および/または取り出す要求、特定のメッセージの1つ以上のTLV要素を修正する要求、特定のメッセージの1つ以上のTLV要素を追加する要求、または特定のメッセージの1つ以上のTLV要素を削除する要求を含んでもよい。上記メッセージ処理要求例は、例示であり、限定ではない。さらに、上記メッセージ処理要求例は、全てのリストではない。
【0068】
ステップ407では、EDF212は、メッセージ処理要求を受信し、メッセージ識別子が示すメッセージ内容を用いて、オペコードが示す動作を行ってもよい。たとえば、メッセージ処理要求に含まれるメッセージ識別子とオペコードとを用いて、EDF212は、復号化されたAVPのセットを、Diameterメッセージが異常または孤立しているかどうかをMSF214が判断できるよう、MSF214に送信してもよい。
【0069】
ステップ408では、メッセージ処理応答をEDF212からMSF214に送信してもよい。このメッセージ処理応答は、メッセージ識別子と、オペコードと、成功を示すためのおよび/またはメッセージ処理関連の出力を提供するための結果値とを含んでもよい。たとえば、MSF214からメッセージ処理要求を受信した後、EDF212は、1つ以上の復号化されたAVPを含むメッセージ処理応答メッセージをMSF214に提供してもよい。
【0070】
ステップ409では、EDF212から応答メッセージを受信してその機能を実行した後、MSF214は、機能要求メッセージを、さらなる処理のために、(たとえば、RPC、API呼び出し、または別のメッセージング機構を介して)別の機能(たとえば、MPF216)に送信してもよい。
【0071】
いくつかの実施形態では、DMPM200によってメッセージが完全に処理された後、CMF210が符号化されたメッセージを別の宛先、たとえば、別のDNFに送信できるよう、CMF210は、符号化されたメッセージまたはその一部を要求するためのメッセージ処理要求を送信してもよい。
【0072】
図4A~
図4Bは例示のためであり、EDF212または関連機能を用いてメッセージ処理するために、異なるおよび/もしくは追加のメッセージならびに/または動作を用いてもよいことを理解されたい。また、
図4A~
図4Bを参照して本明細書に記載した様々なメッセージおよび/または動作は、異なる順序またはシーケンスで生じてもよいことを理解されたい。
【0073】
図5は、メッセージ処理動作を実行するための例示的な処理500を示す図である。いくつかの実施形態では、例示的な処理500またはその一部は、EDF212および/または別のノード、機能、またはモジュールによって/おいて実行されてもよい。いくつかの実施形態では、例示的な処理500またはその一部は、仮想環境においてノードまたは機能(たとえば、EDF212)によって実行されてもよい。いくつかの実施形態では、例示的な処理500は、ステップ502、504、および506を含んでもよい。
【0074】
例示的な処理500を参照すると、ステップ502では、メッセージ識別子と動作識別子とを含んだメッセージ符号化/復号化動作(MEDO)要求を受信してもよい。たとえば、EDF212はMSF214からMEDO要求を受信してもよい。この例では、MEDO要求は、メッセージおよび/またはメッセージ内容(たとえば、TLV要素)を示すメッセージ識別子と、メッセージまたはメッセージ内容に関係する、実行する動作を示すオペコードまたは識別子とを含んでもよい。
【0075】
いくつかの実施形態では、MEDO要求は、特定のメッセージに関連付けられた1つ以上のTLV要素を符号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を用いて、符号化されたメッセージを生成および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を復号化および/または取り出すための要求、特定のメッセージに関連付けられた1つ以上のTLV要素を含んだ符号化されたメッセージを復号化および/または取り出す要求、特定のメッセージの1つ以上のTLV要素を修正する要求、特定のメッセージの1つ以上のTLV要素を追加する要求、または特定のメッセージの1つ以上のTLV要素を削除する要求を含んでもよい。
【0076】
いくつかの実施形態では、MEDO要求を受信する前に、EDFノードは、少なくとも1つのTLV要素を含んだ第1メッセージを受信してもよく、当該少なくとも1つのTLV要素を識別するためのメッセージ識別子を生成してもよく、当該メッセージ識別子と少なくとも1つのTLV要素とを関連付けるエントリをデータ構造に格納してもよい。
【0077】
いくつかの実施形態では、(たとえば、EDFノードが受信した)第1メッセージは、Diameterメッセージ、RADIUSメッセージ、COPSメッセージ、LLDPメッセージ、HTTP(Hypertext Markup Language)メッセージ、AJAXメッセージ、XML(Extensible Markup Language)メッセージ、REST(Representational State Transfer)メッセージ、HTML(Hypertext Markup Language)メッセージ、またはIS-ISメッセージを含んでもよい。
【0078】
いくつかの実施形態では、メッセージ識別子の大きさは、少なくとも1つのTLV要素よりも小さくてもよい。たとえば、Diameter要求メッセージは、1500バイトまたはオクテットのメッセージペイロードを含んでもよい一方、メッセージ識別子は、16バイトまたはオクテットであってもよい。
【0079】
いくつかの実施形態では、少なくとも1つのTLV要素(たとえば、Diameter AVP)は、プロトコルインタフェース識別子、関連接続/パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のTLV要素、またはNGN-PS TLV要素を含んでもよい。
【0080】
いくつかの実施形態では、MEDO要求は、DNFに関連する第1機能を実行するように構成された第1ノードからの要求であってもよい。たとえば、MSF214は、DMPM200のためにメッセージ選別機能を実行中にMEDO要求を送信してもよい。
【0081】
いくつかの実施形態では、第1ノードは、DNFに関連する第2機能を実行するように構成された第2ノードに、メッセージ識別子を含んだ送信メッセージを送信してもよい。たとえば、メッセージ選別機能の実行後、MSF214は、メッセージ識別子を含んだメッセージを、メッセージ優先順位関連処理のためにMPF216に送信してもよい。また、この例では、MPF216は、その機能を実行しているときに、MEDO要求をEDF212に送信してもよい。
【0082】
いくつかの実施形態では、DNFは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、DSR、DRA、Diameterノード、RADIUSノード、RADIUS信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたDSR、仮想化されたDRA、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび/もしくはファイアウォールエージェントを含んでもよい。たとえば、DMPM200は、仮想化されたおよび/または分散DRAを表してもよい。
【0083】
ステップ504では、動作識別子を用いてMEDOを実行してもよく、ここで、MEDOは、メッセージ識別子が示すメッセージから復号化された少なくとも1つのTLV要素へのアクセスまたは当該TLV要素の修正を伴ってもよい。たとえば、EDF212は、一意のメッセージ識別子によってインデックスを付けられた復号化されたメッセージペイロード(たとえば、その中のTLV要素)を含んだデータ構造にアクセスしてもよい。この例では、EDF212は、MEDO要求に含まれるメッセージ識別子に関連付けられた1つ以上のTLV要素を識別でき、MEDO要求に含まれるオペコードに基づいて、識別されたTLV要素に関係する動作を実行してもよい。
【0084】
ステップ506では、MEDOが正常に実行されたかどうかを示す応答を送信してもよい。たとえば、受信メッセージ106に関係する動作を実行した後、EDF212は、動作が成功したことを示し、および/またはなんらかの関連する出力(たとえば、復号化されたパラメータ値)を含むMEDO応答を、要求元、たとえば、MSF214に送信してもよい。いくつかの実施形態では、取り出されたメッセージ内容またはMEDO応答に含めて送信されたその他のデータは、MEDOが正常に実行されたことを示すものであってもよい。
【0085】
いくつかの実施形態では、EDFノードは、メッセージ識別子と、少なくとも1つのTLV要素に対して行う第2動作を示す第2の動作識別子とを含んだ第2のMEDO要求を受信してもよい。たとえば、メッセージ識別子を含んだメッセージをMSF214から受信した後、MPF216は、当該メッセージ識別子と、1つ以上の特定のTLV要素に関係する特定の動作を示すオペコードとを含むMEDO要求をEDF212送信してもよい。
【0086】
いくつかの実施形態では、DMPM200に含まれるEDF212および/またはその他のDNFコンポーネントは、仮想化技術を用いて動作するVMまたはVMインスタンスを含んでもよい。たとえば、EDF212は、たとえば、仮想リソースおよびハイパーバイザを用いてノード204によって仮想環境で実行可能なソフトウェアを含んでもよい。
【0087】
いくつかの実施形態では、DMPM200に含まれるEDF212および/またはその他のDNFコンポーネントは、仮想化技術を用いることなく、物理リソースを用いて動作するソフトウェアを含んでもよい。たとえば、EDF212は、ノード204によって非仮想環境で実行可能なソフトウェアを含んでもよい。
【0088】
いくつかの実施形態では、EDF212は、DMPM200に関連付けられてもよい。たとえば、DMPM200は、DNF、たとえば、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、DSR、Diameterノード、RADIUSノード、RADIUS信号ルータ、ネットワークルータ、ネットワークスイッチ、ネットワーク機器、またはセキュリティおよび/もしくはファイアウォールエージェントを表してもよい。この例では、DMPM200および/またはそれに含まれる関連DNFコンポーネントは、1つ以上のプロセッサ、ノード、またはコンピューティングプラットフォームを用いて実装されてもよい。
【0089】
なお、本明細書に記載のEDF212、ノード204、および/または機能によって、特定用途向けのコンピューティングデバイスが構成されてもよい。さらに、本明細書に記載のEDF212、ノード204、および/または機能は、TLV要素を復号化および/または符号化するための技術を含む、様々なデータ構成または符号化されたデータを含んだメッセージを処理する技術分野を向上させることができる。
【0090】
サービスとしてメッセージ符号化/復号化を提供するための本明細書に記載の主題は、より効率の良いリソース(たとえば、コンピュータ、ネットワーク、および/またはメモリ)利用および処理速度の改善を可能にすることによって、メッセージプロセッサおよび関連ノードの機能を改善することができる。さらに、EDF212、ノード204、または関連機能を利用することによって、メッセージ処理(たとえば、パケット復号化および符号化)論理をネットワーク要素(たとえば、DSR、信号ルータ、MPM102、DMPM200など)から切り離すことができ、ネットワーク要素が必要とする計算リソース量を大幅に削減してネットワーク機能間で大幅に節約することができる。たとえば、共通の復号化/符号化サービスを利用することによって、DNF(たとえば、DMPM200)に含まれるDNFコンポーネント(たとえば、ノード)間で、またはDNF間で完全なパケット(たとえば、TLV要素の符号化されたペイロードを含んだパケット)をやり取りする必要をなくすことができ、当該コンポーネントおよび/またはDNFの境界においてパケットを復号化/符号化するために必要な入/出力(I/O)帯域幅および計算リソースの両方を節約することができる。この例では、リソース利用の削減により、特に、大きなペイロードが存在するときの、復号化/符号化サービスの運転および当該サービスとの通信のI/Oおよび計算コストを補う。さらには、DNF間でEDF212、ノード204、または関連機能(およびそれらを構成するコンポーネント)を利用することによって、I/O帯域幅および計算リソースの消費をより大きなスケールで最適化することができる。
【0091】
本明細書に記載の主題の様々な詳細は、本明細書に記載の主題の範囲を逸脱することなく、変更されてもよいと理解されるだろう。さらには、本明細書に記載の主題は以下に記載する特許請求の範囲によって示されるため、上記の説明は例示のみを目的としており、限定ではない。