(57)【要約】  サービスとしてメッセージ符号化／復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体を開示する。サービスとしてメッセージ符号化または復号化を提供するための１つの方法によると、この方法は、符号化／復号化機能（ＥＤＦ）ノードにおいて発生する。方法は、メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信するステップを含む。また、方法は、動作識別子を用いて、メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行するステップを含む。方法は、メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するステップをさらに含む。
2020519048.tif 000002
【特許請求の範囲】
【請求項１】
サービスとしてメッセージ符号化または復号化を提供するための方法であって、
符号化／復号化機能（ＥＤＦ）ノードにおいて、
メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信するステップと、
前記動作識別子を用いて、前記メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行するステップと、
前記メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するステップとを含む、方法。
【請求項２】
前記ＥＤＦノードにおいて、前記メッセージ符号化／復号化要求を受信する前に、
前記少なくとも１つのＴＬＶ要素を含んだ第１メッセージを受信するステップと、
前記少なくとも１つのＴＬＶ要素を識別するための前記メッセージ識別子を生成するステップと、
前記メッセージ識別子と前記少なくとも１つのＴＬＶ要素とを関連付けるエントリをデータ構造に格納するステップとを含む、請求項１に記載の方法。
【請求項３】
前記第１メッセージは、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）メッセージ、ＣＯＰＳ（Ｃｏｍｍｏｎ  Ｏｐｅｎ  Ｐｏｌｉｃｙ  Ｓｅｒｖｉｃｅ）メッセージ、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）メッセージ、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）メッセージ、ＡＪＡＸメッセージ、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）メッセージ、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、またはＩＳ−ＩＳ（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  Ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ）メッセージを含む、請求項２に記載の方法。
【請求項４】
前記メッセージ符号化／復号化動作要求は、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を符号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を用いて、符号化されたメッセージを生成および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を復号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を含んだ符号化されたメッセージを復号化および／または取り出す要求、特定のメッセージの１つ以上のＴＬＶ要素を修正する要求、特定のメッセージの１つ以上のＴＬＶ要素を追加する要求、または特定のメッセージの１つ以上のＴＬＶ要素を削除する要求を含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのＴＬＶ要素は、プロトコルインタフェース識別子、関連接続／パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のＴＬＶ要素、またはＮＧＮ−ＰＳ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋｓ  Ｐｒｉｏｒｉｔｙ  Ｓｅｒｖｉｃｅｓ）ＴＬＶ要素を含む、請求項１に記載の方法。
【請求項６】
前記メッセージ符号化／復号化動作要求は、分散ネットワーク機能（ＤＮＦ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）に関連する第１機能を実行するように構成された第１ノードからの要求である、請求項１に記載の方法。
【請求項７】
前記第１ノードは、前記メッセージ識別子を含んだ送信メッセージを、前記ＤＮＦに関連する第２機能を実行するように構成された第２ノードに送信する、請求項６に記載の方法。
【請求項８】
前記ＤＮＦは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、ＤＳＲ（Ｄｉａｍｅｔｅｒ  Ｓｉｇｎａｌｉｎｇ  Ｒｏｕｔｅｒ）、Ｄｉａｍｅｔｅｒノード、ＲＡＤＩＵＳ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）ノード、ＲＡＤＩＵＳ信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたＤＳＲ、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび／もしくはファイアウォールエージェント含む、請求項６に記載の方法。
【請求項９】
符号化／復号化機能（ＥＤＦ）ノードにおいて、
前記メッセージ識別子と、前記少なくとも１つのＴＬＶ要素に対して行う第２動作を示す第２の動作識別子とを含んだ第２のメッセージ符号化／復号化動作要求を受信するステップを含む、請求項１に記載の方法。
【請求項１０】
サービスとしてメッセージ符号化または復号化を提供するためのシステムであって、前記システムは、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサを用いて実装される符号化／復号化機能（ＥＤＦ）ノードとを備え、前記ＥＤＦノードは、
メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信し、
前記動作識別子を用いて、前記メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行し、
前記メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するように構成される、システム。
【請求項１１】
前記ＥＤＦノードは、
前記メッセージ符号化／復号化動作要求を受信する前に、
前記少なくとも１つのＴＬＶ要素を含んだ第１メッセージを受信し、
前記少なくとも１つのＴＬＶ要素を識別するための前記メッセージ識別子を生成し、
前記メッセージ識別子と前記少なくとも１つのＴＬＶ要素とを関連付けるエントリをデータ構造に格納するように構成される、請求項１０に記載のシステム。
【請求項１２】
前記第１メッセージは、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）メッセージ、ＣＯＰＳ（Ｃｏｍｍｏｎ  Ｏｐｅｎ  Ｐｏｌｉｃｙ  Ｓｅｒｖｉｃｅ）メッセージ、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）メッセージ、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）メッセージ、ＡＪＡＸメッセージ、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）メッセージ、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、またはＩＳ−ＩＳ（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  Ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ）メッセージを含む、請求項１１に記載のシステム。
【請求項１３】
前記メッセージ符号化／復号化動作要求は、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を符号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を用いて、符号化されたメッセージを生成および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を復号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を含んだ符号化されたメッセージを復号化および／または取り出す要求、特定のメッセージの１つ以上のＴＬＶ要素を修正する要求、特定のメッセージの１つ以上のＴＬＶ要素を追加する要求、または特定のメッセージの１つ以上のＴＬＶ要素を削除する要求を含む、請求項１０に記載のシステム。
【請求項１４】
前記少なくとも１つのＴＬＶ要素は、プロトコルインタフェース識別子、関連接続／パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のＴＬＶ要素、またはＮＧＮ−ＰＳ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋｓ  Ｐｒｉｏｒｉｔｙ  Ｓｅｒｖｉｃｅｓ）ＴＬＶ要素を含む、請求項１０に記載のシステム。
【請求項１５】
前記メッセージ符号化／復号化動作要求は、分散ネットワーク機能（ＤＮＦ）に関連する第１機能を実行するように構成された第１ノードからの要求である、請求項１０に記載のシステム。
【請求項１６】
前記第１ノードは、前記メッセージ識別子を含んだ送信メッセージを、前記ＤＮＦに関連する第２機能を実行するように構成された第２ノードに送信する、請求項１５に記載のシステム。
【請求項１７】
前記ＤＮＦは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、ＤＳＲ（Ｄｉａｍｅｔｅｒ  Ｓｉｇｎａｌｉｎｇ  Ｒｏｕｔｅｒ）、Ｄｉａｍｅｔｅｒノード、ＲＡＤＩＵＳ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）ノード、ＲＡＤＩＵＳ信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたＤＳＲ、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび／もしくはファイアウォールエージェントを含む、請求項１５に記載のシステム。
【請求項１８】
前記ＥＤＦノードは、
前記メッセージ識別子と、前記少なくとも１つのＴＬＶ要素に対して行う第２動作を示す第２の動作識別子とを含んだ第２のメッセージ符号化／復号化動作要求を受信するように構成される、請求項１０に記載のシステム。
【請求項１９】
コンピュータの少なくとも１つのプロセッサによって実行されると、前記コンピュータにステップを実行させる非一時的なコンピュータ読み取り可能な媒体に含まれる、コンピュータにより実行可能な命令を含んだ前記非一時的なコンピュータ読み取り可能な媒体であって、前記ステップは、
符号化／復号化機能（ＥＤＦ）ノードにおいて、
メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信するステップと、
前記動作識別子を用いて、前記メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行するステップと、
前記メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するステップとを含む、非一時的なコンピュータ読み取り可能な媒体。
【請求項２０】
前記非一時的なコンピュータ読み取り可能な媒体に含まれる、コンピュータにより実行可能な追加の命令を含み、前記命令は、前記コンピュータの前記少なくとも１つのプロセッサによって実行されると、前記コンピュータにステップを実行させ、前記ステップは、
前記ＥＤＦノードにおいて、前記メッセージ符号化／復号化動作要求を受信する前に、
前記少なくとも１つのＴＬＶ要素を含んだ第１メッセージを受信するステップと、
前記少なくとも１つのＴＬＶ要素を識別するための前記メッセージ識別子を生成するステップと、
前記メッセージ識別子と前記少なくとも１つのＴＬＶ要素とを関連付けるエントリをデータ構造に格納するステップとを含む、請求項１９に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、２０１７年３月２９日に出願された米国特許出願第１５／４７３，５１９号の優先権の利益を主張するものであり、そのすべての開示内容を引用により本明細書に援用する。
【０００２】
技術分野
本明細書に記載の主題は、通信を処理することに関する。より具体的には、この主題は、サービスとしてメッセージ符号化／復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体に関する。
【背景技術】
【０００３】
背景
ＴＬＶ（Ｔｙｐｅ−Ｌｅｎｇｔｈ−Ｖａｌｕｅ）要素、たとえば、属性と値とのペアまたは情報要素（ＩＥ：Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔ）は、情報（たとえば、属性）をプロトコルパケットまたはその他のメッセージに含めて提供するために用いることができるデータ構成を含む。たとえば、ＴＬＶ要素は、それに含まれる情報の種類または部類を示す識別子、それに含まれる当該情報の長さ、およびそれに含まれる情報の値を含み得る。情報をやり取りおよび／または格納するために、様々な通信プロトコルおよび／またはデータ表現方式（たとえば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ））がＴＬＶ要素を用いる。たとえば、ＤｉａｍｅｔｅｒおよびＲＡＤＩＵＳ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）は、ＡＡＡ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ（認証）、Ａｕｔｈｏｒｉｚａｔｉｏｎ（認可）、Ａｃｃｏｕｎｔｉｎｇ（課金））プロトコルであり、情報を様々なメッセージに含めて提供するためにＴＬＶ要素を用いる。
【０００４】
いくつかのネットワーク機能または関連ノードは、ＴＬＶ要素を含んだメッセージを処理する（たとえば、符号化、復号化、および／またはその他の動作）ように構成されてもよい。たとえば、Ｄｉａｍｅｔｅｒルーティングエージェント（ＤＲＡ：Ｄｉａｍｅｔｅｒ  Ｒｏｕｔｉｎｇ  Ａｇｅｎｔ）は、ＴＬＶ要素を含んだ受信メッセージを復号化し、当該ＴＬＶ要素を修正し、ＴＬＶ要素を追加し、ＴＬＶ要素を削除し、修正されたＴＬＶ要素および／またはさらなるＴＬＶ要素を含んだ送信メッセージを符号化し、当該送信メッセージを宛先に送信するように構成されてもよい。
【０００５】
いくつかのネットワークは、ネットワーク機能の様々な態様、サービス、または機能をサービスまたは関連コンポーネントに分けることを伴うネットワークアーキテクチャを利用する。たとえば、分散ネットワーク機能（ＤＮＦ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）（たとえば、仮想化および／または分散ノード）は、クラウドコンピューティングインフラストラクチャ、仮想化されたインフラストラクチャ、またはその他のネットワーク化されたインフラストラクチャにおいて分散リソースを実行できる１つ以上のＤＮＦコンポーネントまたはそのインスタンスを含んでもよい。この例では、各ＤＮＦコンポーネントまたはそのインスタンスは、何らかの機能を実行するための関連するソフトウェアおよび／または処理を含んでもよく、ゆるくつながれていてもよく、および／または個々にスケーラブルであってもよい。
【０００６】
分散アーキテクチャによって、ネットワーク事業者および／またはサービスプロバイダは、柔軟性があり、スケーラブルであり、かつ特徴をカスタマイズしたネットワーク機能を導入できるようになるが、複数のＤＮＦコンポーネントおよび／またはそのインスタンスの形で復号化／符号化機能が複製された場合、このようなアーキテクチャでは様々な問題が起こり得る。たとえば、サービスおよび／または特徴が複数のＤＮＦコンポーネントおよびそのインスタンスの形で複製された場合、仮想化または分散ＤＲＡは、計算リソースおよび入／出力（Ｉ／Ｏ）リソースの利用が非効率になり得る。さらに、ＤＮＦコンポーネント同士が動作中に大きなペイロードを含んだメッセージをやり取りする場合、リソースの利用がさらに非効率になり得る。
【発明の概要】
【課題を解決するための手段】
【０００７】
概要
サービスとしてメッセージ符号化／復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体を開示する。サービスとしてメッセージ符号化または復号化を提供するための１つの方法によると、この方法は、符号化／復号化機能（ＥＤＦ）ノードにおいて発生する。方法は、メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信するステップを含む。また、方法は、少なくとも１つのＴＬＶ要素と動作識別子とを用いて、メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行するステップを含む。方法は、メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するステップをさらに含む。
【０００８】
サービスとしてメッセージ符号化／復号化を提供するための１つのシステムによると、このシステムは、少なくとも１つのプロセッサを備える。また、システムは、ＥＤＦノードを備える。ＥＤＦノードは、当該少なくとも１つのプロセッサを用いて実現される。ＥＤＦノードは、メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作要求を受信し、動作識別子を用いて、メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素にアクセスまたは当該少なくとも１つのＴＬＶ要素を修正することを伴うメッセージ符号化／復号化動作を実行し、メッセージ符号化／復号化動作が正常に実行されたかどうかを示す応答を送信するように構成される。
【０００９】
本明細書に記載の主題は、ハードウェアおよび／またはファームウェアと組み合わせたソフトウェアで実現されてもよい。たとえば、本明細書に記載の主題は、プロセッサによって実行されるソフトウェアで実現されてもよい。１つの例示的な実装形態において、本明細書に記載の主題は、コンピュータにより実行可能な命令を格納したコンピュータ読み取り可能な媒体を用いて実現されてもよく、当該命令は、コンピュータのプロセッサによって実行されると、ステップを実行するようコンピュータを制御する。本明細書に記載の主題を実現するのに適したコンピュータ読み取り可能な媒体として、ディスク記憶装置、チップ記憶装置、プログラム可能な論理回路、および特定用途向け集積回路などの非一時的なデバイスが挙げられる。これに加えて、本明細書に記載の主題を実現するコンピュータ読み取り可能な媒体は、１つのデバイスまたは１つのコンピューティングプラットフォーム上に位置してもよく、複数のデバイス間または複数のコンピューティングプラットフォーム間で分散されてもよい。
【００１０】
本明細書において使用するとき、用語「ノード」は、１つ以上のプロセッサとメモリとを備えた少なくとも１つの物理コンピューティングプラットフォームを指す。
【００１１】
本明細書において使用するとき、用語「ＴＬＶ要素」は、情報を通信プロトコルパケットまたはメッセージに含めて提供するために用いることができる任意の情報要素（ＩＥ：Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔ）、属性値ペア（ＡＶＰ）、またはその他のデータ構成、たとえば、抽象構文記法（ＡＳＮ：Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ）もしくはＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）を用いて符号化されたデータを指す。
【００１２】
本明細書において使用するとき、用語「機能」または「モジュール」は、本明細書に記載の特徴を実装するためのハードウェアおよび／またはファームウェアと組み合わせたハードウェア、ファームウェア、またはソフトウェアを指す。
【００１３】
ここで、添付の図面を参照して本明細書に記載の主題を説明する。
【図面の簡単な説明】
【００１４】
【図１】例示的な処理ノードを示す図である。
【図２】分散メッセージ処理モジュールに含まれる例示的な機能を示す図である。
【図３】ＴＬＶ要素を含んだ例示的な受信メッセージを示す図である。
【図４Ａ】は、メッセージ処理に関連付けられた例示的な通信を示す図である。
【図４Ｂ】は、メッセージ処理に関連付けられた例示的な通信を示す図である。
【図５】メッセージ処理動作を実行するための例示的な処理を示す図である。
【発明を実施するための形態】
【００１５】
詳細な説明
本明細書に記載の主題は、サービスとしてメッセージ符号化および／または復号化（符号化／復号化）を提供するための方法、システム、およびコンピュータ読み取り可能な媒体に関する。コンポーネント（たとえば、サービス）のインスタンスがゆるくつながれたほとんどの分散ネットワーク機能（ＤＮＦ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）では、各コンポーネントの境界においてメッセージが符号化および／または復号化される。たとえば、当該ＤＮＦに含まれる第１コンポーネントによってメッセージが処理された後、第１コンポーネントは、さらに処理するためにＤＮＦに含まれる第２コンポーネントに送信する前にこのメッセージを（再）符号化してもよく、ここで、第２コンポーネントは、その処理の一部としてメッセージを復号化してもよい。この例では、この符号化−復号化サイクルは、メッセージが完全に処理される前に複数回発生してもよい（たとえば、このメッセージは、１つ以上のＤＮＦに含まれる複数のコンポーネントによって、または１つ以上のＤＮＦ間で復号化および符号化されてもよい）。各コンポーネントまたはＤＮＦの境界において符号化および復号化されるサイクルは、リソース利用が非効率になる一因となる。なぜならば、たとえば、メッセージを繰り返し符号化／復号化するために、かなりの計算リソースおよび／または処理リソースが使用される可能性があるからである。さらに、コンポーネント間で完全なメッセージ（たとえば、符号化されたペイロードを含むメッセージ）をやり取りすることは、Ｉ／Ｏのリソース利用および／またはネットワーキング関連リソースに影響を与え、リソース利用が非効率になるおよび／またはネットワークの輻輳の一因となる。
【００１６】
本明細書に記載の主題のいくつかの態様によると、サービスとしてメッセージ符号化／復号化を提供するための技術、方法、システム、またはメカニズムを開示する。たとえば、本明細書に記載の態様に係るメッセージ符号化／復号化サービスは、メッセージの復号化および符号化を１回実行し、共通インタフェース、たとえば、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）、ＥＤＬ（Ｅｎｃｏｄｅ  Ａｎｄ／Ｏｒ  Ｄｅｃｏｄｅ  Ｌｉｂｒａｒｙ）呼び出し、またはＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）を介してすべてのコンポーネントインスタンスを供給することができる。この例では、メッセージ符号化／復号化サービスによって、特定のメッセージまたはそれに含まれるメッセージ内容を識別、アクセス、または参照するためにその他のコンポーネントによって使用され得るメッセージ識別子および／またはメッセージ復号化メタデータを生成してもよく、メッセージ処理時にコンポーネントまたはそのインスタンス間で転送されるデータ量を最小限に抑えることができる。
【００１７】
有利には、本明細書に記載の主題のいくつかの態様によると、共通のメッセージ符号化／復号化サービスを分散環境において利用することによって、複製される符号化／復号化処理を最小限に抑える、それどころかなくすことができ、（たとえば、共通のメッセージ符号化／復号化サービスによって生成された）メッセージ識別子をメッセージペイロードの代わりに利用することによって、ネットワーク機能内（たとえば、ＤＮＦコンポーネント間またはそのインスタンス間）およびネットワーク機能間（たとえば、ＤＮＦ間）のコンポーネント同士またはそのインスタンス同士での大きなペイロードを含んだメッセージの交換を大幅に抑えることができる。
【００１８】
ここで、本明細書に記載の主題の様々な実施形態を詳細に説明する。これらの実施形態の例は、添付の図面に示される。可能な限り、図面の全体にわたって、同じまたは同様の部品には同じ参照番号を付す。
【００１９】
図１は、本明細書に記載の主題の実施形態に係る、例示的な処理ノード（ＰＮ：Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ）１００を示す図である。図１を参照すると、ＰＮ１００は、メッセージ処理モジュール（ＭＰＭ：Ｍｅｓｓａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｍｏｄｕｌｅ）１０２とＭＰＭストレージ１０４とを含んでもよい。ＰＮ１００は、１つ以上のＴＬＶ要素を含んだメッセージの処理（たとえば、符号化、修正、および／または復号化）に関連付けられた１つ以上の態様を実行するための任意の適した１つエンティティまたは複数のエンティティ（たとえば、１つ以上のコンピューティングプラットフォーム、コンピューティングデバイス、および／または少なくとも１つのプロセッサ上で実行中のソフトウェア）を表してもよい。たとえば、ＰＮ１００は、１つ以上のＴＬＶ要素を含んだメッセージを受信、処理、および／または送信するように構成されてもよい。例示的なＰＮ１００は、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、ＤＳＲ（Ｄｉａｍｅｔｅｒ  Ｓｉｇｎａｌｉｎｇ  Ｒｏｕｔｅｒ）、Ｄｉａｍｅｔｅｒノード、ＲＡＤＩＵＳノード、ＲＡＤＩＵＳ信号ルータ、ネットワークルータ、ネットワークスイッチ、またはネットワーク機器を含んでもよいが、これらに限定されない。
【００２０】
いくつかの実施形態では、ＰＮ１００は、１つ以上の通信プロトコルに関連付けられたメッセージを受信および／または送信するための機能を含んでもよい。たとえば、ＰＮ１００は、Ｄｉａｍｅｔｅｒプロトコル、ＲＡＤＩＵＳプロトコル、ＣＯＰＳ（Ｃｏｍｍｏｎ  Ｏｐｅｎ  Ｐｏｌｉｃｙ  Ｓｅｒｖｉｃｅ）メッセージ、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）、ＩＳ−ＩＳ（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  Ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ）プロトコル、および／または、たとえば、ＡＳＮ（Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ）、もしくはＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）、もしくはその他の形態の符号化されたデータを含む信号プロトコルなどのその他のプロトコルを用いてノードと通信を行うための様々な通信インタフェースを含んでもよい。
【００２１】
ＭＰＭ１０２は、１つ以上のＴＬＶ要素を含んだメッセージを処理することに関連付けられた１つ以上の態様を実行するための任意の適した１つのエンティティまたは複数のエンティティ（たとえば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、および／または プロセッサ上で実行中のソフトウェア）を表してもよい。たとえば、ＭＰＭ１０２は、１つ以上のＴＬＶ要素を含んだメッセージを受信、処理、修正、符号化、復号化、および／または送信するように構成されてもよい。ＭＰＭ１０２によって実行可能な処理として、ＴＬＶ要素および／または関連属性を識別すること、ＴＬＶ要素および／または関連属性を修正すること、ならびに／またはＴＬＶ要素を含んだメッセージを復号化および／もしくは符号化することなどが挙げられ得る。たとえば、ユーザまたはその他のエンティティからの要求を受信することに応答して、ＭＰＭ１０２は、受信したメッセージに含まれる特定のＴＬＶ要素を復号化してもよい。また、ＭＰＭ１０２は、復号化および／または検出された（たとえば、点検された）ＴＬＶ要素についての情報を、ステートフルな復号化アルゴリズムを利用するときなどに格納するための機能を含んでもよい。たとえば、ＭＰＭ１０２は、復号化されたＴＬＶ要素についての格納された情報を、少なくともいくつかの送信メッセージを生成または符号化する際に利用してもよい。
【００２２】
いくつかの実施形態では、ＭＰＭ１０２は、ステートフルな復号化アルゴリズムと連動してまたはステートフルな復号化アルゴリズムの代わりに、ステートレスな復号化アルゴリズムを利用するための機能を含んで、ＴＬＶ要素を含んだ様々なメッセージを復号化してもよい。たとえば、ステートフルな復号化アルゴリズムはメッセージを復号化するときにメタデータを格納または更新してもよいが、ステートレスな復号化アルゴリズムはメッセージを復号化するときにすべてではないとしてもいくつかのメタデータを格納または更新することを避けてもよい。この例では、いくつかのメッセージは、１回しか読み出されずまったく修正されないＴＬＶ要素を含んでいる可能性があるため、復号化にはステートレスな復号化アルゴリズムが好ましい。なぜならば、ステートフルな復号化アルゴリズムはより多くの処理リソースおよびメモリリソースを利用する可能性があり、不要なメタデータを格納してしまうためである。例示的なステートフルな復号化戦略および／または関連アルゴリズムについてのさらなる詳細は、２０１４年９月１２日に出願された、ＭＥＴＨＯＤＳ，ＳＹＳＴＥＭＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ  ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＰＲＯＣＥＳＳＩＮＧ  ＤＡＴＡ  ＣＯＮＴＡＩＮＩＮＧ  ＴＹＰＥ−ＬＥＮＧＴＨ−ＶＡＬＵＥ  （ＴＬＶ）  ＥＬＥＭＥＮＴＳ（ＴＬＶ（ＴＹＰＥ−ＬＥＮＧＴＨ−ＶＡＬＵＥ）要素を含んだデータを処理するための方法、システム、およびコンピュータ読み取り可能な媒体）と題する米国特許出願第１４／４８５，１４７号に見られる。当該出願のすべての開示内容を引用により本明細書に援用する。
【００２３】
いくつかの実施形態では、ＭＰＭ１０２は、ＭＰＭストレージ１０４を含むまたはＭＰＭストレージ１０４にアクセスしてもよい。ＭＰＭストレージ１０４は、ＴＬＶ要素に関連する情報（たとえば、ＴＬＶ要素の属性、ＴＬＶ要素の種類の情報、ＴＬＶ要素の長さまたは大きさ情報、ＴＬＶ要素値、受信オフセット値および／または送信オフセット値）および／または関連データ構造を格納するための任意の適した１つのエンティティまたは複数のエンティティ（たとえば、非一時的なコンピュータ読み取り可能な媒体、フラッシュメモリ、ランダムアクセスメモリ、および／または記憶装置）を表してもよい。たとえば、ＭＰＭストレージ１０４は、処理中の受信メッセージ１０６および／または送信メッセージ１０８ごとに、復号化イテレータおよび／または検証情報を格納してもよい。いくつかの実施形態では、ＭＰＭストレージ１０４は、ＰＮ１００および／もしくはＭＰＭ１０２の外部にあってもよく、ならびに／または内蔵されてもよい。
【００２４】
図１は例示のためであり、図１に関連して上述した様々なデータ構造および／または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。たとえば、いくつかのノードおよび／または機能が１つのエンティティに組み合わされてもよい。別の例では、いくつかのノードおよび／または機能が複数のノード間および／または複数のプラットフォーム間に分散してもよい。
【００２５】
図２は、分散ＭＰＭ（ＤＭＰＭ：ＤＩＳＴＲＩＢＵＴＥＤ  ＭＰＭ）２００に含まれる例示的な機能を示す図である。いくつかの実施形態では、ＤＭＰＭ２００は、メッセージ処理を行うための分散ネットワーク機能（ＤＮＦ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）を表してもよく、ＭＰＭ１０２と同様の機能を含んでもよい。たとえば、ＤＭＰＭ２００は、１つ以上のＴＬＶ要素を含んだメッセージを受信、処理、符号化、復号化、および／または送信するように構成された様々なコンポーネントまたは機能を含んでもよい。ＤＭＰＭ２００に関連付けられたコンポーネントまたは機能によって実行可能な処理として、ＴＬＶ要素および／または関連属性の識別、ＴＬＶ要素および／または関連属性の修正、および／またはＴＬＶ要素を含んだメッセージの復号化および／または符号化などが挙げられ得る。
【００２６】
図２を参照すると、ＤＭＰＭ２００は、ノード２０２〜２０８（たとえば、物理デバイス、コンピューティングプラットフォームなど）を含んでもよい。ノード２０２〜２０８は、１つ以上のＤＮＦコンポーネントまたは関連サービス、たとえば、接続マネージャ機能（ＣＭＦ：Ｃｏｎｎｅｃｔｉｏｎ  Ｍａｎａｇｅｒ  Ｆｕｎｃｔｉｏｎ）２１０、エンコーダおよび／またはデコーダ（エンコーダ／デコーダ）機能（ＥＤＦ：Ｅｎｃｏｄｅｒ  ａｎｄ／ｏｒ  Ｄｅｃｏｄｅｒ  Ｆｕｎｃｔｉｏｎ）２１２、メッセージ選別機能（ＭＳＦ：Ｍｅｓｓａｇｅ  Ｓｃｒｅｅｎｉｎｇ  Ｆｕｎｃｔｉｏｎ）２１４、メッセージ優先順位機能（ＭＰＦ：Ｍｅｓｓａｇｅ  Ｐｒｉｏｒｉｔｙ  Ｆｕｎｃｔｉｏｎ）２１６、受信制御機能（ＩＣＦ：Ｉｎｇｒｅｓｓ  Ｃｏｎｔｒｏｌ  Ｆｕｎｃｔｉｏｎ）２１８、および／またはルーティング制御機能（ＲＣＦ：Ｒｏｕｔｉｎｇ  Ｃｏｎｔｒｏｌ  Ｆｕｎｃｔｉｏｎ）２２０を実行するためのメモリおよび／または１つ以上の計算リソース（たとえば、ハードウェアによるプロセッサ）を含んでもよい。いくつかの実施形態では、ＤＭＰＭ２００に含まれる１つ以上の機能（たとえば、ＤＮＦコンポーネント）は、たとえば、仮想マシン（ＶＭ）または仮想化コンテナ（たとえば、Ｄｏｃｋｅｒコンテナ）など、仮想環境に格納されるおよび／または仮想環境において実行されるソフトウェアまたは論理を含んでもよい。いくつかの実施形態では、ＤＭＰＭ２００に含まれる１つ以上の機能（たとえば、ＤＮＦコンポーネント）は、たとえば、仮想化ソフトウェアを用いない物理リソースを利用して非仮想環境に格納されるおよび／または非仮想環境において実行されるソフトウェアまたは論理を含んでもよい。
【００２７】
いくつかの実施形態では、ＤＭＰＭ２００は、サービス指向アーキテクチャ（ＳＯＡ：Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を含む、利用する、または当該アーキテクチャの一部であってもよい。いくつかの実施形態では、ＥＤＦ２１２および／またはその他のＤＮＦ機能は、個々にスケーリングされてもよく、たとえば、ＤＮＦ機能のインスタンスまたは複製を作成し、必要に応じて導入してもよい。たとえば、ネットワークにおいてメッセージの数が増えると、ＥＤＦ２１２の複数のインスタンスを作成して導入し、増大したトラフィックを処理してもよい。この例では、ＥＤＦ２１２の各インスタンスは、同様の符号化／復号化機能を提供してもよく、総メッセージ負荷の一部を処理してもよい。この例では、ＥＤＦ２１２またはそのインスタンスを、サービスまたはマイクロサービスと称する場合がある。
【００２８】
ＣＭＦ２１０は、メッセージに関連付いたトランスポートサービスおよび／または接続を処理するための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。たとえば、ＣＭＦ２１０は、Ｄｉａｍｅｔｅｒメッセージを受信し、Ｄｉａｍｅｔｅｒメッセージを処理することに関連付いたトランスポートを実行または容易にしてもよい。いくつかの実施形態では、ＣＭＦ２１０は、このＤｉａｍｅｔｅｒメッセージを何らかの前処理のためにＥＤＦ２１２に送信してもよく、Ｄｉａｍｅｔｅｒメッセージを別のＤＮＦまたは処理ノードに送信するときに、最終の符号化されたパケット（たとえば、ＤＭＰＭ２００に含まれる様々な機能による処理の後）も要求してもよい。
【００２９】
いくつかの実施形態では、ＣＭＦ２１０は、メッセージをメッセージ処理のためにその他の機能（たとえば、ＥＤＦ２１２、ＭＳＦ２１４、ＭＰＦ２１６、ＩＣＦ）２１８、および／またはＲＣＦ２２０）に提供するための１つ以上のトランスポートメカニズムを利用してもよい。１つの例示的なメカニズムは、プッシュメカニズムを含んでもよく、たとえば、ＣＭＦ２１０は、処理するための新しいメッセージを示すメッセージを１つ以上の利用可能な機能に送信してもよい。別の例示的なメカニズムは、プルメカニズムを含んでもよく、たとえば、処理対象のＲＡＤＩＵＳまたはＤｉａｍｅｔｅｒメッセージを（たとえば、ＡＰＩまたはＲＰＣを介して）機能がＣＭＦ２１０に要求してもよい。別の例示的なメカニズムは、新たな処理可能なメッセージについての通知を受信するよう初期機能が加入する、加入／公開システムを含んでもよく、メッセージが受信されて処理可能になると、ＣＭＦ２１０は、このような通知を提供または公開してもよい。
【００３０】
いくつかの実施形態では、メッセージをその他の機能に送信する前に、ＣＭＦ２１０は、ＡＶＰ、ＴＬＶ要素、および／またはその他のメッセージ内容を含んだメッセージを（前）処理のためにＥＤＦ２１２に送信してもよい。たとえば、ＥＤＦ２１２は、ＡＶＰ、ＴＬＶ要素、またはその他のデータを含んだメッセージを受信してもよく、それに含まれるメッセージ内容を復号化してもよく、メッセージおよび／またはそれに含まれる復号化されたメッセージ内容を識別するためのメッセージ識別子を生成してもよい。この例では、ＥＤＦ２１２は、メッセージ内容（たとえば、ＴＬＶ要素、ＡＶＰ、および／またはメタデータ）を１つ以上のデータ構造に復号化および／または格納してもよく、メッセージ識別子を用いてこのメッセージ内容にインデックスを付けてもよい。この例を引き続き参照して、ＥＤＦ２１２からメッセージ識別子を受信した後、ＣＭＦ２１０は、ＥＤＦ２１２から返されたメッセージ識別子とともに処理命令をその他の機能に送信してもよい。
【００３１】
いくつかの実施形態では、ＣＭＦ２１０は、様々なトランスポート機能および／またはトランスポートサービスを実行してもよい。たとえば、ＣＭＦ２１０は、どの機能が受信メッセージ１０６を初期処理のために受信するかを決定してもよく、このメッセージを別の宛先、たとえば、別のＤＮＦまたは処理ノードに送信する際、符号化されたメッセージまたはその一部をＥＤＦ２１２が生成するよう要求してもよい。
【００３２】
いくつかの実施形態では、メッセージ識別子は、ＤＮＦコンポーネント間またはその他のエンティティ間でやり取りされてもよい。このような実施形態では、各ＤＮＦコンポーネントまたは機能は、ＥＤＦ２１２（または関連ＡＰＩ）と関連メッセージ識別子とを利用することによって、関連するメッセージにアクセスおよび／または修正することができる。たとえば、ＥＤＦ２１２は、受信メッセージ１０６、たとえば、ＡＶＰを含んだＤｉａｍｅｔｅｒメッセージを表すためのメッセージ識別子をＣＭＦ２１０に提供してもよい。この例では、受信メッセージ１０６を送信する代わりに、ＤＭＰＭ２００に含まれる次の機能に処理を要求するときに、メッセージ識別子を含んだ部分的なメッセージまたはより小さいサイズのメッセージを、ＣＭＦ２１０およびその他の機能が送信してもよい。
【００３３】
ＥＤＦ２１２は、メッセージ符号化および／または復号化動作を行うための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。たとえば、ＥＤＦ２１２は、メッセージ内容、たとえば、パケットデータにアクセスおよび／または修正するための共通インタフェース（たとえば、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）ＡＰＩ、ＲＰＣなど）をその他の機能（たとえば、ＤＮＦコンポーネント）に提供してもよい。いくつかの実施形態では、ＥＤＦ２１２は、メッセージ内容、たとえば、ＡＶＰ、ＴＬＶ要素、および／またはメタデータのためのストレージおよび／またはメンテナンス機能を提供してもよい。
【００３４】
ＥＤＦ２１２は、様々なメッセージおよび／またはプロトコルに関連付けられた様々なデータ構成を復号化または符号化するための機能を含んでもよい。ＥＤＦ２１２が処理（たとえば、復号化および／または符号化）できるデータ構成として、ＴＬＶ、ＡＶＰ、ＡＳＮ符号化されたデータ、および／またはＪＳＯＮ符号化されたデータなどが挙げられるが、これらに限定されない。たとえば、受信したトラフィックおよび／または通信環境によっては、ＥＤＦ２１２および／または関連エンティティは、ＡＶＰを含んだＤｉａｍｅｔｅｒメッセージおよび／またはＪＳＯＮ符号化されたデータを有するメッセージを処理するように構成されてもよい。
【００３５】
いくつかの実施形態では、ＥＤＦ２１２は、その他の機能、ユーザ、および／またはノードとやり取りを行うための１つ以上の通信インタフェースを含んでもよい。たとえば、ＥＤＦ２１２は、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳメッセージ、ＣＯＰＳメッセージ、ＬＬＤＰメッセージ、ＩＳ−ＩＳメッセージ、および／もしくはその他のメッセージを受信ならびに／または送信するための通信インタフェースを含んでもよい。別の例では、ＥＤＦ２１２は、（たとえば、ＥＤＦ２１２と様々なその他の機能との間の図２の破線で表されるような）様々なＤＮＦコンポーネントおよび／またはノードと通信を行うための１つ以上の通信インタフェースを含んでもよい。この例では、ＥＤＦ２１２は、受信メッセージを復号化および／もしくは送信メッセージを符号化する、またはメッセージ内容に対して様々なメッセージ処理動作を行うための処理要求をエンティティ（たとえば、ＡＰＩ、ＥＤＬ呼び出し、またはその他のメカニズムを介して）から受信してもよい。
【００３６】
いくつかの実施形態では、ＥＤＦ２１２は、たとえば、ＴＬＶ属性に基づく、ＴＬＶ要素の一定時間ごとのルックアップ（たとえば、同じ時間を必要とし、データ構造の大きさの影響を受けない複数回のルックアップ）を提供するように構成されてもよい。たとえば、ＥＤＦ２１２は、所与のメッセージについてのメッセージ関連情報を、連想コンテナ（たとえば、連想配列、ハッシュマップ、またはその他の関連データ構造）、および／または一定時間ごとのルックアップを提供および可能にし、かつ、メッセージ識別子によってインデックスを付けられ得るまたは識別可能であり得るその他のデータ構造に格納してもよい。別の例では、連想配列は、ＴＬＶ関連タグおよび／またはＴＬＶベンダー識別子（ＩＤ）に対応するハッシュ値を用いてインデックスを付けられたＴＬＶインスタンスコンテナ（たとえば、特定の種類のＴＬＶ要素についての情報を含んだアレイまたはベクトル）を含んでもよい。この例では、衝突がないものと仮定すると、連想配列のルックアップは、１つの動作を実行するために必要な時間を含んでもよく、この時間は、連想配列の大きさに関係なく大幅に変わらなくてもよい。
【００３７】
いくつかの実施形態では、ＥＤＦ２１２は、受信メッセージ（たとえば、パケット）からのＴＬＶ要素の最適化した（たとえば、ニードに基づいた、またはＬａｚｙ）復号化を提供するように構成されてもよい。たとえば、ＥＤＦ２１２は、一致しないＴＬＶ要素に対して余分な動作を実行しないで、ＴＬＶ属性（たとえば、ＴＬＶ要素タグ）を比較するまたはメッセージ構造を検証するパケットを「検索（ｗａｌｋ）」するように構成されてもよい。この例では、ＥＤＦ２１２は、要求されたＴＬＶ要素についての情報を取得するために必要な場合に限り「検索」するように構成されてもよい。
【００３８】
いくつかの実施形態では、ＥＤＦ２１２は、受信メッセージ（たとえば、１つ以上のデータ構造において）でのＴＬＶ要素の位置（たとえば、オフセット値）を特定して格納するように構成されてもよい。このような実施形態では、位置情報は、ＴＬＶ要素の値を実際に格納することなく読み取り専用動作を許可するために使用できる。ＴＬＶ要素の値またはその他の属性を格納する代わりに位置情報を格納することによって、リソースと時間とを節約してもよい（たとえば、ＴＬＶ要素の存在または位置が要求されるがそこに含まれる実際の値は要求されないシナリオにおいてコストがかかる可能性のあるメモリ関連の動作を回避することによって）。
【００３９】
いくつかの実施形態では、ＥＤＦ２１２は、ＴＬＶ要素の最適化した符号化を送信メッセージに提供するように構成されてもよい。たとえば、受信パケットにおけるＴＬＶ要素の格納位置（たとえば、受信オフセット値）によって、修正されていないＴＬＶ要素を受信パケットから直接複製することによって、送信パケットの最適化した符号化を可能にしてもよく、余分な動作を回避することができる。別の例では、送信パケットにおけるＴＬＶ要素の位置（たとえば、送信オフセット値）を格納し、修正／追加されたＴＬＶ要素を、たとえば、このようなＴＬＶ要素が最後の符号化から修正されていない場合、前に符号化された送信パケットから複製するために利用してもよく、余分な動作を回避することができる。
【００４０】
いくつかの実施形態では、ＥＤＦ２１２は、符号化されたメッセージごとの位置（たとえば、オフセット値）を維持する符号化イテレータ（たとえば、ポインタオブジェクト）を用いてもよい。この例では、ＥＤＦ２１２は、メッセージの先頭の符号化イテレータを初期化してもよく、ＴＬＶ要素が送信メッセージ１０８に挿入されると、ＥＤＦ２１２は、次に点検されるＴＬＶ要素のためのメッセージにおける位置を符号化イテレータが維持するよう、当該符号化イテレータをインクリメントしてもよい。いくつかの実施形態では、ＥＤＦ２１２は、送信メッセージ１０８に複数の復号化イテレータを用いてもよい。
【００４１】
受信メッセージ１０６は、ＥＤＦ２１２によって受信、処理、および／または復号化され得る１つ以上のＴＬＶ要素を含んだ任意のメッセージ（たとえば、パケット）を表してもよい。たとえば、受信メッセージ１０６は、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳメッセージ、ＣＯＰＳメッセージ、ＬＬＤＰメッセージ、またはＩＳ−ＩＳメッセージを表してもよい。図１に示すように、受信メッセージ１０６は、同じまたは異なる種類の複数のＴＬＶ要素を含んでもよい。たとえば、各ＴＬＶ要素の種類は、「Ａ」、「Ｂ」、「Ｃ」、および／または「Ｄ」などの文字によって表されてもよい。この例では、（たとえば、特定のＴＬＶ要素種類の）各ＴＬＶ要素は、「Ａ１」、「Ａ２」、および「Ａ３」など、特定の文字の後の数字によって表されてもよい。
【００４２】
いくつかの実施形態では、ＥＤＦ２１２は、受信メッセージ１０６を（たとえば、ＣＭＦ２１０から）受信するように構成されてもよく、および／または受信メッセージ１０６に関連付けられたＴＬＶ要素を処理すること関連する１つ以上の動作を実行するように構成されてもよい。たとえば、ＥＤＦ２１２は、ＥＤＬ関連の要求を受信するように構成されてもよい（たとえば、特定のＴＬＶ要素が受信メッセージ１０６に存在するかどうかを判断するための要求、および／または受信メッセージ１０６に含まれる特定のＴＬＶ要素の値を判断するための要求）。これに応答して、ＥＤＦ２１２は、受信メッセージ１０６に含まれるＴＬＶ要素を（たとえば、関連付けられたタグを介して）点検して、要求されたＴＬＶ要素が見つかった場合、ＥＤＬ関連の要求に対する適切な応答を提供するように構成されてもよい。
【００４３】
送信メッセージ１０８は、１つ以上のＴＬＶ要素を含んだメッセージ（たとえば、パケット）を表してもよく、ＥＤＦ２１２によって生成および／または符号化されてもよい。たとえば、送信メッセージ１０８は、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳメッセージ、ＣＯＰＳメッセージ、ＬＬＤＰメッセージ、またはＩＳ−ＩＳメッセージを表してもよい。図１に示すように、送信メッセージ１０８は、同じまたは異なる種類の複数のＴＬＶ要素を含んでもよい。たとえば、各ＴＬＶ要素の種類は、「Ａ」、「Ｂ」、「Ｃ」、および／または「Ｄ」などの文字によって表されてもよい。この例では、各ＴＬＶ要素は、「Ａ１」、「Ａ２」、および「Ａ３」など、特定の文字の後の数字によって表されてもよい。
【００４４】
いくつかの実施形態では、送信メッセージ１０８は、受信メッセージ１０６から復号化されたＴＬＶ要素を含んでもよい。たとえば、ＴＬＶ要素「Ａ１」、「Ｂ１」、「Ｃ１」、「Ｃ２」、および「Ａ２」は、受信メッセージ１０６から復号化されてもよく、これらのＴＬＶ要素についての情報がＭＰＭストレージ１０４に格納されてもよく、送信メッセージ１０８を符号化する際に利用されてもよい。
【００４５】
いくつかの実施形態では、送信メッセージ１０８は、復号化および／または修正されなかった受信メッセージ１０６からのＴＬＶ要素を含んでもよい。たとえば、受信メッセージ１０６からのＴＬＶ要素「Ｂ２」は、が含まれてもよい。この例では、ＥＤＦ２１２は、受信メッセージ１０６の一部が送信メッセージ１０８から直接複製され得ると判断するように構成されてもよい。
【００４６】
いくつかの実施形態では、送信メッセージ１０８は、受信メッセージ１０６に含まれるＴＬＶ要素とは異なる、またはこれらに加えて、ＴＬＶ要素を含んでもよい。たとえば、ＴＬＶ要素「Ｅ１」、「Ｆ１」、「Ａ３」、および「Ｄ１」は、ＥＤＦ２１２によって追加および／または修正され、送信メッセージ１０８を符号化するときに用いられてもよい。
【００４７】
いくつかの実施形態では、ＥＤＦ２１２は、送信メッセージ１０８を生成および／もしくは符号化するように構成され、ならびに／または送信メッセージ１０８に関連付けられたＴＬＶ要素を処理することに関連する１つ以上の動作を実行するように構成されてもよい。たとえば、メッセージ処理要求（たとえば、メッセージ符号化／復号化動作（ＭＥＤＯ：Ｍｅｓｓａｇｅ  Ｅｎｃｏｄｅ  ｏｒ  Ｄｅｃｏｄｅ  Ｏｐｅｒａｔｉｏｎ）要求）を受信することに応答して、ＥＤＦ２１２は、受信メッセージ１０６の宛先アドレスを含んだタグ「Ａ」に関連付けられた第１のＴＬＶ要素（たとえば、ＴＬＶ要素「Ａ１」）を修正し、かつ、当該修正されたＴＬＶ要素を含んだ送信メッセージ内容を符号化し、当該符号化されたメッセージ内容を含む送信メッセージ１０８をＣＭＦ２１０に送信するように構成されてもよく、ここで、ＣＭＦ２１０は、送信メッセージ１０８を別のＤＮＦまたは処理ノードに送信してもよい。この例では、受信メッセージ１０６に含まれる様々な復号化されたＴＬＶ要素についての情報を含んだ１つ以上のデータ構造を用いて、ＥＤＦ２１２は、ＴＬＶ要素「Ａ１」を関連する宛先アドレスを含むように修正し、当該修正されたＴＬＶ要素を送信メッセージ１０８に含めてもよい。
【００４８】
ＭＳＦ２１４は、メッセージを選別するための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。たとえば、ＭＳＦ２１４は、無効なトランザクション、異常メッセージ、または孤立メッセージを破または選別してもよい。この例では、Ｄｉａｍｅｔｅｒメッセージを選別するときにＭＳＦ２１４がＤｉａｍｅｔｅｒメッセージの１つ以上の復号化されたＡＶＰを分析できるよう、ＭＳＦ２１４は、これらのＡＶＰを要求するためのメッセージ処理要求をＥＤＦ２１２に送信してもよい。いくつかの実施形態では、たとえば、受信メッセージがさらに処理されるとＭＳＦ２１４が判断した場合、ＭＳＦ２１４は、送信メッセージ（たとえば、機能要求）を次の機能、たとえば、ＭＰＦ２１６に送信してもよい。このような実施形態では、当該送信メッセージは、受信メッセージからの実際のＴＬＶ要素の代わりに、メッセージ内容を識別するためのメッセージ識別子を含んでもよい。
【００４９】
ＭＰＦ２１６は、メッセージ優先順位を割り当てまたは決定するための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。たとえば、ＭＰＦ２１６は、メッセージ優先順位方式を利用してもよく、ここで、「Ｐ０」〜「Ｐ４」が、順に高いレベルのメッセージ優先順位を表す。メッセージ優先順位「Ｐ４」が、最も高いメッセージ優先順位を表してもよく、ＮＧＮ−ＰＳ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋｓ  Ｐｒｉｏｒｉｔｙ  Ｓｅｒｖｉｃｅｓ）メッセージ（たとえば、緊急時第一応答者に関連付けられたメッセージ）に割り当てられてもよい。メッセージ優先順位「Ｐ３」が、２番目に高いレベルのメッセージ優先順位を表してもよく、応答メッセージに割り当てられてもよい。メッセージ優先順位「Ｐ２」、「Ｐ１」、および「Ｐ０」が、順に低いレベルのメッセージ優先順位を表してもよく、これらの優先順位のうちのいずれかを割り当ててメッセージを要求してもよい。
【００５０】
いくつかの実施形態では、ＭＰＦ２１６は、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）のＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ）７９４４において定義されたＤＲＭＰ（Ｄｉａｍｅｔｅｒ  Ｒｏｕｔｉｎｇ  Ｍｅｓｓａｇｅ  Ｐｒｉｏｒｉｔｙ）標準に基づくメッセージ優先順位方式を利用してもよい。いくつかの実施形態では、ＭＰＦ２１６は、特定の状況時、たとえば、過負荷イベントに応答して、メッセージのメッセージ優先順位を調整してもよい。たとえば、ＭＰＦ２１６は、様々なメッセージ優先順位のメッセージ率を規制または監視してもよい。この例では、ＤＭＰＭ２００が「Ｐ４」メッセージを最大率（たとえば、設計されたサーバ容量の１５％）よりも多く受信した場合、いくつかの「Ｐ４」メッセージは、「Ｐ３」に再割り当てられてもよい。この例を引き続き参照して、ＤＭＰＭ２００が「Ｐ４」メッセージを最大率よりも少なく受信した場合、「Ｐ４」メッセージは、不可侵（たとえば、再割り当てされない）であってもよく、保証されたサービスを提供するためのすべての輻輳制御を無視することができてもよい。
【００５１】
ＩＣＦ２１８は、受信メッセージの率および／または量を制御するための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。いくつかの実施形態では、ＩＣＦ２１８は、受信メッセージに関連する様々な接続の最大接続率を規制し、これらの接続率を超えるメッセージを破棄してもよい。また、いくつかの実施形態では、ＩＣＦ２１８は、予約接続率も規制してもよく、メッセージが高メッセージ率の（たとえば、負荷がかかった）接続に対応付けられているかどうかに基づいて、「緑」＝通常負荷、黄＝かなりの負荷、「赤」＝過負荷検出など、メッセージを色付けまたはマーク付けしてもよい。
【００５２】
いくつかの実施形態では、ＩＣＦ２１８または別の機能は、過負荷イベント時にトラフィックを処理および／または管理するための論理を含んでもよい。いくつかの実施形態では、ＤＭＰＭ２００または関連コンポーネントに過負荷がかかっている場合、ＩＣＦ２１８は、予め定められたメッセージ率（たとえば、設計されたまたは好ましいメッセージ率）に基づいてメッセージを規制してもよく、当該予め定められたメッセージ率を超過するメッセージを破棄してもよい。いくつかの実施形態では、ＤＭＰＭ２００または関連コンポーネントに過負荷がかかっていない場合、ＩＣＦ２１８は、最大メッセージ率（たとえば、設計されたメッセージ率よりも高い率）に基づいてメッセージを規制してもよく、当該最大メッセージ率を超えるメッセージを破棄してもよい。
【００５３】
ＲＣＦ２２０は、関連処理をルーティングするための任意の適したエンティティ（たとえば、少なくとも１つのプロセッサ上で実行されているソフトウェア）であってもよい。たとえば、ＲＣＦ２２０は、アプリケーション関連処理のためにＤＭＰＭ２００に関連付けられた１つ以上の機能に受信メッセージ１０６をルーティングしてもよい。別の例では、ＲＣＦ２２０は、受信メッセージ１０６をどのように処理するかおよび／またはどこに送信メッセージ１０８をルーティングするかを決定するための様々なその他の機能に受信メッセージ１０６をルーティングしてもよい。
【００５４】
図２は例示のためであり、図２に関連して上述した様々なエンティティおよび／または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。たとえば、いくつかのノードおよび／または機能を１つのエンティティ、たとえば、ルーティング機能群に組み合わせてもよい。別の例では、いつくかのノードおよび／または機能を複数のノードおよび／またはプラットフォーム間に分散させてもよい。
【００５５】
図３は、ＴＬＶ要素を含んだ受信メッセージ１０６を示す図である。図３を参照すると、受信メッセージ１０６は、複数のＴＬＶ要素、たとえば、「Ａ１」、「Ｂ１」、「Ｃ１」、「Ｃ２」、「Ｂ２」、および「Ａ２」を含んでもよい。各ＴＬＶ要素は、ＴＬＶ要素の名前または種類を表すタグ属性値と、ＴＬＶ要素の全体の長さまたは大きさ（たとえば、バイト単位）を表す長さ属性値と、ＴＬＶ要素のデータを表す値属性値とを含んでもよい。
【００５６】
いくつかの実施形態では、ＥＤＦ２１２は、ＴＬＶ要素を含んだメッセージを「検索」するための機能を含んでもよい。たとえば、ＥＤＦ２１２は、復号化されたメッセージごとの位置（たとえば、オフセット値）を維持する復号化イテレータ（たとえば、ポインタオブジェクト）を利用してもよい。この例では、ＥＤＦ２１２は、メッセージの先頭にある復号化イテレータを初期化してもよく、ＴＬＶ要素および／または関連タグが点検されると、メッセージにおいて点検された直近の位置または次に点検される位置を復号化イテレータが維持するよう、復号化イテレータをインクリメントしてもよい。
【００５７】
いくつかの実施形態では、ＥＤＦ２１２は、特定のメッセージに対して複数の復号化イテレータを用いてもよい。たとえば、ＥＤＦ２１２は、出くわしたＴＬＶ要素種類ごとに復号化イテレータを用いてもよい。この例を引き続き参照して、ＥＤＦ２１２は、点検された最後の位置から引き続きメッセージを「検索」できるので、特定の種類の次のＴＬＶ要素をすぐに見つけるために、復号化イテレータを用いてもよい。メッセージが１つ以上の入れ子のＴＬＶ要素（たとえば、図１における受信メッセージ１０６のＴＬＶ要素「Ｄ１」）を含む別の例では、ＥＤＦ２１２は、グループ化されたＴＬＶ要素／親ＴＬＶ要素ごとに復号化イテレータを用いてもよい。この例では、特定の入れ子のＴＬＶ要素に含まれる次のＴＬＶ要素、たとえば、受信メッセージ１０６のＴＬＶ要素「Ｄ１」に含まれるＴＬＶ要素「Ａ２」をすぐに見つけるために復号化イテレータを使用可能である。いくつかの実施形態では、ＥＤＦ２１２は、入れ子のＴＬＶ要素ごとに複数の復号化イテレータ、たとえば、入れ子のＴＬＶ要素に含まれるＴＬＶ種類ごとに１つの復号化イテレータを用いてもよい。
【００５８】
いくつかの実施形態では、ＥＤＦ２１２は、受信メッセージ１０６を復号化または「検索」するためのステートレスな復号化アルゴリズムを用いてもよく、復号化イテレータを更新するときにポインタ演算を用いてもよい。たとえば、長さまたは大きさを有し、ＥＤＦ２１２によって識別可能であるヘッダを点検した後、ＥＤＦ２１２は、第１のＴＬＶ要素、たとえば、ＴＬＶ要素「Ａ１」を読み出すまたは点検することによって受信メッセージ１０６の復号化を開始してもよい。この例では、ＥＤＦ２１２は、第１のＴＬＶ要素の長さ属性値（たとえば、「Ｌｅｎ１」＝２０）を点検してもよく、当該長さ属性値、および、次のＴＬＶ要素、ＴＬＶ要素「Ｂ１」を指し得る、更新された復号化イテレータ（たとえば、４０）を演算するための復号化イテレータを表すバイトオフセット値（たとえば、２０）を追加してもよい。この例を引き続き参照して、特定のＴＬＶ要素が見つかるまで、または、異なる復号化アルゴリズム、たとえば、ステートフルな復号化アルゴリズムを利用すると判断するまで、ＥＤＦ２１２は、ステートレスな復号化アルゴリズムを用いて引き続き受信メッセージ１０６を「検索」してもよい。
【００５９】
図３は例示のためであり、図３に関連して上述した様々なエンティティおよび／または機能は、変更、修正、追加、または削除されてもよいことを理解されたい。
【００６０】
図４Ａ〜図４Ｂは、メッセージ処理に関連付けられた例示的な通信を示す図である。いくつかの実施形態では、ＭＰＭ１０２または関連機能は、ＤＮＦコンポーネント（たとえば、機能またはサービス）に分けられてもよい。いくつかの実施形態では、メッセージ処理の様々な態様を実行可能なＤＮＦコンポーネントのセットを、まとめてＤＭＰＭ２００と称する場合がある。いくつかの実施形態では、様々なＤＮＦコンポーネント（たとえば、ＣＭＦ２１０、ＭＳＦ２１４、ＭＰＦ２１６、ＩＣＦ２１８、および／またはＲＣＦ２２０）は、ＥＤＦ２１２と通信を行ってもよく、ここで、ＥＤＦ２１２は、メッセージ符号化、メッセージ修正、および／またはメッセージ復号化に関する１つ以上の機能、動作、またはサービスを実行してもよい。いくつかの実施形態では、ＤＭＰＭ２００に含まれる１つ以上のＤＮＦコンポーネントは、ＶＭを用いて仮想化および／または実装されてもよい。
【００６１】
図４Ａを参照すると、ステップ４０１では、Ｄｉａｍｅｔｅｒメッセージ「Ａ」をＣＭＦ２１０において受信してもよい。たとえば、ＣＭＦ２１０が受信メッセージ１０６を受信してもよい。
【００６２】
ステップ４０２では、Ｄｉａｍｅｔｅｒメッセージ「Ａ」を、前処理のためにＣＭＦ２１０からＥＤＦ２１２に送信してもよい。たとえば、ＥＤＦ２１２は、メッセージ識別子を生成してメッセージ内容（たとえば、ＡＶＰおよび／またはメタデータ）を復号化できるよう、第１機能（たとえば、ＭＳＦ２１４）が処理する前にＤｉａｍｅｔｅｒメッセージを受信してもよい。この例では、復号化されたメッセージ内容を１つ以上のデータ構造に格納し、メッセージ識別子によってインデックスを付けてもよい。
【００６３】
ステップ４０３では、ＥＤＦ２１２は、Ｄｉａｍｅｔｅｒメッセージ「Ａ」および／またはその中のメッセージ内容（たとえば、ＡＶＰ）を一意に識別するためのメッセージ識別子「Ｘ」を生成してもよい。また、ＥＤＦ２１２は、メッセージ識別子「Ｘ」とＤｉａｍｅｔｅｒメッセージ「Ａ」に含まれるメッセージ内容とを対応付けてデータ構造に格納してもよい。
【００６４】
ステップ４０４では、生成されたメッセージ識別子を含む応答メッセージをＥＤＦ２１２からＣＭＦ２１０に送信してもよい。たとえば、ＲＥＳＴ ＡＰＩ、ＲＰＣ、またはＥＤＬメッセージを介して応答メッセージを送信してもよい。この例では、応答メッセージは、メッセージおよび／またはその中のメッセージ内容を表すためのメッセージ識別子を含んでもよく、ＤＭＰＭ２００に含まれる様々な機能（たとえば、ＤＮＦコンポーネント）および／または関連エンティティによって当該メッセージ参照するときに利用されてもよい。
【００６５】
ステップ４０５では、機能要求メッセージは（たとえば、ＲＰＣもしくはＡＰＩ呼び出し、または別のメッセージング機構を介して）、生成されたメッセージ識別子を、処理のためにＣＭＦ２１０からＭＳＦ２１４に送信してもよい。いくつかの実施形態では、機能要求メッセージは、Ｄｉａｍｅｔｅｒメッセージ「Ａ」と同様のＤｉａｍｅｔｅｒメッセージを含んでもよいが、メッセージ識別子によって識別可能であるＴＬＶまたはその他のメッセージ内容の代わりにまたはそれに代えて、メッセージ識別子を含んでもよい。
【００６６】
図４Ｂを参照すると、ステップ４０６では、メッセージ処理要求をＭＳＦ２１４からＥＤＦ２１２に送信してもよい。このメッセージ処理要求は、メッセージおよび／またはメッセージ内容（たとえば、ＴＬＶ要素）を示すメッセージ識別子と、示されたメッセージまたはメッセージ内容に関係する、実行するメッセージ処理動作を示すオペコードまたは識別子とを含んでもよい。別の例では、メッセージ処理要求は、追加および／または修正されるメッセージデータと、メッセージ識別子と、メッセージ修正を行うメッセージ処理動作を示すオペコードまたは識別子とを含んでもよい。
【００６７】
例示的なメッセージ処理要求は、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を符号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を用いて、符号化されたメッセージを生成および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を復号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を含んだ符号化されたメッセージを復号化および／または取り出す要求、特定のメッセージの１つ以上のＴＬＶ要素を修正する要求、特定のメッセージの１つ以上のＴＬＶ要素を追加する要求、または特定のメッセージの１つ以上のＴＬＶ要素を削除する要求を含んでもよい。上記メッセージ処理要求例は、例示であり、限定ではない。さらに、上記メッセージ処理要求例は、全てのリストではない。
【００６８】
ステップ４０７では、ＥＤＦ２１２は、メッセージ処理要求を受信し、メッセージ識別子が示すメッセージ内容を用いて、オペコードが示す動作を行ってもよい。たとえば、メッセージ処理要求に含まれるメッセージ識別子とオペコードとを用いて、ＥＤＦ２１２は、復号化されたＡＶＰのセットを、Ｄｉａｍｅｔｅｒメッセージが異常または孤立しているかどうかをＭＳＦ２１４が判断できるよう、ＭＳＦ２１４に送信してもよい。
【００６９】
ステップ４０８では、メッセージ処理応答をＥＤＦ２１２からＭＳＦ２１４に送信してもよい。このメッセージ処理応答は、メッセージ識別子と、オペコードと、成功を示すためのおよび／またはメッセージ処理関連の出力を提供するための結果値とを含んでもよい。たとえば、ＭＳＦ２１４からメッセージ処理要求を受信した後、ＥＤＦ２１２は、１つ以上の復号化されたＡＶＰを含むメッセージ処理応答メッセージをＭＳＦ２１４に提供してもよい。
【００７０】
ステップ４０９では、ＥＤＦ２１２から応答メッセージを受信してその機能を実行した後、ＭＳＦ２１４は、機能要求メッセージを、さらなる処理のために、（たとえば、ＲＰＣ、ＡＰＩ呼び出し、または別のメッセージング機構を介して）別の機能（たとえば、ＭＰＦ２１６）に送信してもよい。
【００７１】
いくつかの実施形態では、ＤＭＰＭ２００によってメッセージが完全に処理された後、ＣＭＦ２１０が符号化されたメッセージを別の宛先、たとえば、別のＤＮＦに送信できるよう、ＣＭＦ２１０は、符号化されたメッセージまたはその一部を要求するためのメッセージ処理要求を送信してもよい。
【００７２】
図４Ａ〜図４Ｂは例示のためであり、ＥＤＦ２１２または関連機能を用いてメッセージ処理するために、異なるおよび／もしくは追加のメッセージならびに／または動作を用いてもよいことを理解されたい。また、図４Ａ〜図４Ｂを参照して本明細書に記載した様々なメッセージおよび／または動作は、異なる順序またはシーケンスで生じてもよいことを理解されたい。
【００７３】
図５は、メッセージ処理動作を実行するための例示的な処理５００を示す図である。いくつかの実施形態では、例示的な処理５００またはその一部は、ＥＤＦ２１２および／または別のノード、機能、またはモジュールによって／おいて実行されてもよい。いくつかの実施形態では、例示的な処理５００またはその一部は、仮想環境においてノードまたは機能（たとえば、ＥＤＦ２１２）によって実行されてもよい。いくつかの実施形態では、例示的な処理５００は、ステップ５０２、５０４、および５０６を含んでもよい。
【００７４】
例示的な処理５００を参照すると、ステップ５０２では、メッセージ識別子と動作識別子とを含んだメッセージ符号化／復号化動作（ＭＥＤＯ）要求を受信してもよい。たとえば、ＥＤＦ２１２はＭＳＦ２１４からＭＥＤＯ要求を受信してもよい。この例では、ＭＥＤＯ要求は、メッセージおよび／またはメッセージ内容（たとえば、ＴＬＶ要素）を示すメッセージ識別子と、メッセージまたはメッセージ内容に関係する、実行する動作を示すオペコードまたは識別子とを含んでもよい。
【００７５】
いくつかの実施形態では、ＭＥＤＯ要求は、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を符号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を用いて、符号化されたメッセージを生成および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を復号化および／または取り出すための要求、特定のメッセージに関連付けられた１つ以上のＴＬＶ要素を含んだ符号化されたメッセージを復号化および／または取り出す要求、特定のメッセージの１つ以上のＴＬＶ要素を修正する要求、特定のメッセージの１つ以上のＴＬＶ要素を追加する要求、または特定のメッセージの１つ以上のＴＬＶ要素を削除する要求を含んでもよい。
【００７６】
いくつかの実施形態では、ＭＥＤＯ要求を受信する前に、ＥＤＦノードは、少なくとも１つのＴＬＶ要素を含んだ第１メッセージを受信してもよく、当該少なくとも１つのＴＬＶ要素を識別するためのメッセージ識別子を生成してもよく、当該メッセージ識別子と少なくとも１つのＴＬＶ要素とを関連付けるエントリをデータ構造に格納してもよい。
【００７７】
いくつかの実施形態では、（たとえば、ＥＤＦノードが受信した）第１メッセージは、Ｄｉａｍｅｔｅｒメッセージ、ＲＡＤＩＵＳメッセージ、ＣＯＰＳメッセージ、ＬＬＤＰメッセージ、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、ＡＪＡＸメッセージ、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）メッセージ、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）メッセージ、またはＩＳ−ＩＳメッセージを含んでもよい。
【００７８】
いくつかの実施形態では、メッセージ識別子の大きさは、少なくとも１つのＴＬＶ要素よりも小さくてもよい。たとえば、Ｄｉａｍｅｔｅｒ要求メッセージは、１５００バイトまたはオクテットのメッセージペイロードを含んでもよい一方、メッセージ識別子は、１６バイトまたはオクテットであってもよい。
【００７９】
いくつかの実施形態では、少なくとも１つのＴＬＶ要素（たとえば、Ｄｉａｍｅｔｅｒ  ＡＶＰ）は、プロトコルインタフェース識別子、関連接続／パス識別子、アプリケーション識別子、送信元レルム、送信元アドレス、宛先レルム、宛先アドレス、優先順位関連のＴＬＶ要素、またはＮＧＮ−ＰＳ  ＴＬＶ要素を含んでもよい。
【００８０】
いくつかの実施形態では、ＭＥＤＯ要求は、ＤＮＦに関連する第１機能を実行するように構成された第１ノードからの要求であってもよい。たとえば、ＭＳＦ２１４は、ＤＭＰＭ２００のためにメッセージ選別機能を実行中にＭＥＤＯ要求を送信してもよい。
【００８１】
いくつかの実施形態では、第１ノードは、ＤＮＦに関連する第２機能を実行するように構成された第２ノードに、メッセージ識別子を含んだ送信メッセージを送信してもよい。たとえば、メッセージ選別機能の実行後、ＭＳＦ２１４は、メッセージ識別子を含んだメッセージを、メッセージ優先順位関連処理のためにＭＰＦ２１６に送信してもよい。また、この例では、ＭＰＦ２１６は、その機能を実行しているときに、ＭＥＤＯ要求をＥＤＦ２１２に送信してもよい。
【００８２】
いくつかの実施形態では、ＤＮＦは、コンピューティングプラットフォーム、信号ルータ、ルーティングエージェント、中継エージェント、ＤＳＲ、ＤＲＡ、Ｄｉａｍｅｔｅｒノード、ＲＡＤＩＵＳノード、ＲＡＤＩＵＳ信号ルータ、ネットワークルータ、ネットワークスイッチ、仮想化されたノード、仮想化されたＤＳＲ、仮想化されたＤＲＡ、仮想化された信号ルータ、ネットワーク機器、または、セキュリティおよび／もしくはファイアウォールエージェントを含んでもよい。たとえば、ＤＭＰＭ２００は、仮想化されたおよび／または分散ＤＲＡを表してもよい。
【００８３】
ステップ５０４では、動作識別子を用いてＭＥＤＯを実行してもよく、ここで、ＭＥＤＯは、メッセージ識別子が示すメッセージから復号化された少なくとも１つのＴＬＶ要素へのアクセスまたは当該ＴＬＶ要素の修正を伴ってもよい。たとえば、ＥＤＦ２１２は、一意のメッセージ識別子によってインデックスを付けられた復号化されたメッセージペイロード（たとえば、その中のＴＬＶ要素）を含んだデータ構造にアクセスしてもよい。この例では、ＥＤＦ２１２は、ＭＥＤＯ要求に含まれるメッセージ識別子に関連付けられた１つ以上のＴＬＶ要素を識別でき、ＭＥＤＯ要求に含まれるオペコードに基づいて、識別されたＴＬＶ要素に関係する動作を実行してもよい。
【００８４】
ステップ５０６では、ＭＥＤＯが正常に実行されたかどうかを示す応答を送信してもよい。たとえば、受信メッセージ１０６に関係する動作を実行した後、ＥＤＦ２１２は、動作が成功したことを示し、および／またはなんらかの関連する出力（たとえば、復号化されたパラメータ値）を含むＭＥＤＯ応答を、要求元、たとえば、ＭＳＦ２１４に送信してもよい。いくつかの実施形態では、取り出されたメッセージ内容またはＭＥＤＯ応答に含めて送信されたその他のデータは、ＭＥＤＯが正常に実行されたことを示すものであってもよい。
【００８５】
いくつかの実施形態では、ＥＤＦノードは、メッセージ識別子と、少なくとも１つのＴＬＶ要素に対して行う第２動作を示す第２の動作識別子とを含んだ第２のＭＥＤＯ要求を受信してもよい。たとえば、メッセージ識別子を含んだメッセージをＭＳＦ２１４から受信した後、ＭＰＦ２１６は、当該メッセージ識別子と、１つ以上の特定のＴＬＶ要素に関係する特定の動作を示すオペコードとを含むＭＥＤＯ要求をＥＤＦ２１２送信してもよい。
【００８６】
いくつかの実施形態では、ＤＭＰＭ２００に含まれるＥＤＦ２１２および／またはその他のＤＮＦコンポーネントは、仮想化技術を用いて動作するＶＭまたはＶＭインスタンスを含んでもよい。たとえば、ＥＤＦ２１２は、たとえば、仮想リソースおよびハイパーバイザを用いてノード２０４によって仮想環境で実行可能なソフトウェアを含んでもよい。
【００８７】
いくつかの実施形態では、ＤＭＰＭ２００に含まれるＥＤＦ２１２および／またはその他のＤＮＦコンポーネントは、仮想化技術を用いることなく、物理リソースを用いて動作するソフトウェアを含んでもよい。たとえば、ＥＤＦ２１２は、ノード２０４によって非仮想環境で実行可能なソフトウェアを含んでもよい。
【００８８】
いくつかの実施形態では、ＥＤＦ２１２は、ＤＭＰＭ２００に関連付けられてもよい。たとえば、ＤＭＰＭ２００は、ＤＮＦ、たとえば、信号ルータ、ルーティングエージェント、中継エージェント、転送エージェント、ＤＳＲ、Ｄｉａｍｅｔｅｒノード、ＲＡＤＩＵＳノード、ＲＡＤＩＵＳ信号ルータ、ネットワークルータ、ネットワークスイッチ、ネットワーク機器、またはセキュリティおよび／もしくはファイアウォールエージェントを表してもよい。この例では、ＤＭＰＭ２００および／またはそれに含まれる関連ＤＮＦコンポーネントは、１つ以上のプロセッサ、ノード、またはコンピューティングプラットフォームを用いて実装されてもよい。
【００８９】
なお、本明細書に記載のＥＤＦ２１２、ノード２０４、および／または機能によって、特定用途向けのコンピューティングデバイスが構成されてもよい。さらに、本明細書に記載のＥＤＦ２１２、ノード２０４、および／または機能は、ＴＬＶ要素を復号化および／または符号化するための技術を含む、様々なデータ構成または符号化されたデータを含んだメッセージを処理する技術分野を向上させることができる。
【００９０】
サービスとしてメッセージ符号化／復号化を提供するための本明細書に記載の主題は、より効率の良いリソース（たとえば、コンピュータ、ネットワーク、および／またはメモリ）利用および処理速度の改善を可能にすることによって、メッセージプロセッサおよび関連ノードの機能を改善することができる。さらに、ＥＤＦ２１２、ノード２０４、または関連機能を利用することによって、メッセージ処理（たとえば、パケット復号化および符号化）論理をネットワーク要素（たとえば、ＤＳＲ、信号ルータ、ＭＰＭ１０２、ＤＭＰＭ２００など）から切り離すことができ、ネットワーク要素が必要とする計算リソース量を大幅に削減してネットワーク機能間で大幅に節約することができる。たとえば、共通の復号化／符号化サービスを利用することによって、ＤＮＦ（たとえば、ＤＭＰＭ２００）に含まれるＤＮＦコンポーネント（たとえば、ノード）間で、またはＤＮＦ間で完全なパケット（たとえば、ＴＬＶ要素の符号化されたペイロードを含んだパケット）をやり取りする必要をなくすことができ、当該コンポーネントおよび／またはＤＮＦの境界においてパケットを復号化／符号化するために必要な入／出力（Ｉ／Ｏ）帯域幅および計算リソースの両方を節約することができる。この例では、リソース利用の削減により、特に、大きなペイロードが存在するときの、復号化／符号化サービスの運転および当該サービスとの通信のＩ／Ｏおよび計算コストを補う。さらには、ＤＮＦ間でＥＤＦ２１２、ノード２０４、または関連機能（およびそれらを構成するコンポーネント）を利用することによって、Ｉ／Ｏ帯域幅および計算リソースの消費をより大きなスケールで最適化することができる。
【００９１】
本明細書に記載の主題の様々な詳細は、本明細書に記載の主題の範囲を逸脱することなく、変更されてもよいと理解されるだろう。さらには、本明細書に記載の主題は以下に記載する特許請求の範囲によって示されるため、上記の説明は例示のみを目的としており、限定ではない。
【図１】
2020519048.tif 000003
【図２】
2020519048.tif 000004
【図３】
2020519048.tif 000005
【図４Ａ】
2020519048.tif 000006
【図４Ｂ】
2020519048.tif 000007
【図５】
2020519048.tif 000008
【国際調査報告】
2020519048.tif 000009
2020519048.tif 000010
2020519048.tif 000011