(57)【要約】      （修正有）【課題】トランスポートスタックおよびそのコンポーネントの名称の仕組みと相俟って、トランスポートスタックの各コンポーネントの直接的なアドレシングを容易にするアイデンティティ管理方法及びシステムを提供する。【解決手段】コンピューティング環境１００は、名称を含むインタレストに対応するパケットをフォワーダ１４０、１８０によって受信する。インタレストが通信モジュールのスタックコンポーネントに宛てられているとの判断に応答して、フォワーダはこのインタレストをインタレストの名称に基づいて宛先のコンポーネントに送信する。ここでスタックは、自身の上位または下位の層とのみ通信するそれぞれの通信モジュールを必要としない。インタレストがスタックコンポーネントに宛てられてはいないとの判断に応答して、フォワーダはこのインタレストをインタレストの名称に基づいてネットワークエレメントに送信する。【選択図】図１
2017011695.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
インタレストに対応するパケットをフォワーダによって受信するステップであって、該インタレストは名称を含んでいるステップと、
前記インタレストが通信モジュールのスタックのコンポーネントに宛てられているとの判断に応答して、該インタレストを該インタレストの前記名称に基づいて前記宛先のコンポーネントに送信するステップであって、前記スタックは自身の上位または下位の層とのみ通信するそれぞれの通信モジュールを必要としないステップと、
前記インタレストが前記スタックのコンポーネントに宛てられてはいないとの判断に応答して、該インタレストを該インタレストの前記名称に基づいてネットワークエレメントに送信するステップと
を含むことにより、前記スタックの個々のコンポーネントの直接的なアドレシングを容易にする方法。
【請求項２】
前記インタレストの前記名称は、
前記スタックの名称、
対応するポータルインスタンスに関連付けられた前記フォワーダの名称、
前記スタックのコンポーネントの名称、および
前記スタックのコンポーネントに関連付けられたコマンド
のうちの１つ以上を含む、請求項１に記載の方法。
【請求項３】
前記スタックのコンポーネントの名称が、
最も全体的なレベルから最も具体的なレベルに順に並べられた連続する名称構成要素を含んでおり、前記スタックに対応するポータルインスタンスにおいて適用可能である階層構造可変長識別子（ＨＳＶＬＩ）、
いかなる階層も示さないフラットな名称、
前記スタックの前記コンポーネントの役割、および
前記スタックの前記コンポーネントに固有の一意の識別子
のうちの１つ以上に基づく、請求項１に記載の方法。
【請求項４】
前記インタレストは、該インタレストの前記名称によって特定されるコンポーネントに関連付けられたコマンドを含むペイロードを含む、請求項１に記載の方法。
【請求項５】
インストラクションを格納している非一時的なコンピュータにとって読み取り可能な記憶媒体であって、
前記インストラクションは、コンピュータによって実行されたときに、
インタレストに対応するパケットをフォワーダによって受信するステップであって、該インタレストは名称を含んでいるステップと、
前記インタレストが通信モジュールのスタックのコンポーネントに宛てられているとの判断に応答して、該インタレストを該インタレストの前記名称に基づいて前記宛先のコンポーネントに送信するステップであって、前記スタックは自身の上位または下位の層とのみ通信するそれぞれの通信モジュールを必要としないステップと、
前記インタレストが前記スタックのコンポーネントに宛てられてはいないとの判断に応答して、該インタレストを該インタレストの前記名称に基づいてネットワークエレメントに送信するステップと
を含むことにより、前記スタックの個々のコンポーネントの直接的なアドレシングを容易にする方法を、該コンピュータに実行させる、記憶媒体。
【請求項６】
前記インタレストの前記名称は、
前記スタックの名称、
対応するポータルインスタンスに関連付けられた前記フォワーダの名称、
前記スタックのコンポーネントの名称、および
前記スタックのコンポーネントに関連付けられたコマンド
のうちの１つ以上を含む、請求項５に記載の記憶媒体。
【請求項７】
前記スタックのコンポーネントの名称が、
最も全体的なレベルから最も具体的なレベルに順に並べられた連続する名称構成要素を含んでおり、前記スタックに対応するポータルインスタンスにおいて適用可能である階層構造可変長識別子（ＨＳＶＬＩ）、
いかなる階層も示さないフラットな名称、
前記スタックの前記コンポーネントの役割、および
前記スタックの前記コンポーネントに固有の一意の識別子
のうちの１つ以上に基づく、請求項５に記載の記憶媒体。
【請求項８】
パケットの転送を容易にするためのコンピュータシステムであって、
プロセッサと、
インストラクションを格納しているストレージデバイスと
を備えており、
前記インストラクションは、前記プロセッサによって実行されたときに、
インタレストに対応するパケットをフォワーダによって受信するステップであって、該インタレストは名称を含んでいるステップと、
前記インタレストが通信モジュールのスタックのコンポーネントに宛てられているとの判断に応答して、該インタレストを該インタレストの前記名称に基づいて前記宛先のコンポーネントに送信するステップであって、前記スタックは自身の上位または下位の層とのみ通信するそれぞれの通信モジュールを必要としないステップと、
前記インタレストが前記スタックのコンポーネントに宛てられてはいないとの判断に応答して、該インタレストを該インタレストの前記名称に基づいてネットワークエレメントに送信するステップと
を含むことにより、前記スタックの個々のコンポーネントの直接的なアドレシングを容易にする方法を、該プロセッサに実行させる、コンピュータシステム。
【請求項９】
前記インタレストの前記名称は、
前記スタックの名称、
対応するポータルインスタンスに関連付けられた前記フォワーダの名称、
前記スタックのコンポーネントの名称、および
前記スタックのコンポーネントに関連付けられたコマンド
のうちの１つ以上を含む、請求項８に記載のコンピュータシステム。
【請求項１０】
前記スタックのコンポーネントの名称が、
最も全体的なレベルから最も具体的なレベルに順に並べられた連続する名称構成要素を含んでおり、前記スタックに対応するポータルインスタンスにおいて適用可能である階層構造可変長識別子（ＨＳＶＬＩ）、
いかなる階層も示さないフラットな名称、
前記スタックの前記コンポーネントの役割、および
前記スタックの前記コンポーネントに固有の一意の識別子
のうちの１つ以上に基づく、請求項８に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くには、トランスポートフレームワークに関する。より詳しくは、本発明は、トランスポートスタックのアイデンティティ管理および初期化の仕組み、ならびにスタックおよびそのコンポーネントの名称の仕組みに関する。
【背景技術】
【０００２】
モバイルコンピューティングデバイスおよびインターネットの遍在性が、あらゆる場所からのデジタルコンテンツの体験を人々にとって可能にしている。人々は、映画または音楽のストリーミングあるいは他者とのゲームプレイなど、自身のモバイルコンピューティングデバイスにおいてアプリケーションを使用してインターネットのあちこちのサービスプロバイダからコンテンツを消費し、あるいはやりとりすることができる。モバイルコンピューティングにおけるこれらの進歩は、これらのモバイルデバイスによって再生できるコンテンツの品質も向上させ、デジタルコンテンツを生成および記録してインターネットを介して他者と共有することができるデバイスの数を大きく増加させる。今日では、スマートフォンなどの小型のモバイルデバイスでさえも、フルＨＤ（ｆｕｌｌ  ｈｉｇｈ−ｄｅｆｉｎｉｔｉｏｎ）のビデオを高品質の色再現にて生成することができ、高速のセルラーおよびブロードバンドネットワークが、このコンテンツをＹｏｕＴｕｂｅ（登録商標）（Ｇｏｏｇｌｅ，Ｉｎｃ．）およびＦａｃｅｂｏｏｋ（Ｆａｃｅｂｏｏｋ，Ｉｎｃ．）コンテンツ共有サービスなどの種々のインターネットサービスによって他者と共有することを、ユーザにとって可能にしている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多数のコンピュータアプリケーションが、これらのコンピュータネットワークおよびインターネットサービスを活用して、社交の機能（ｓｏｃｉａｌ  ｆｅａｔｕｒｅ）をユーザに提供し、ユーザの体験を大きく高めている。アプリケーションがネットワークの使用を望むとき、アプリケーションは、コンピューティングデバイスのオペレーティングシステム上で動作する１つ以上のアプリケーション・プログラミング・インタ−フェイス（ＡＰＩ）を使用することによってネットワークを使用する。これらのＡＰＩは、データを送信し、受信し、記憶し、設定し、あるいは他のやり方でネットワークにおける他のコンピュータと通信する方法を提供する。
【０００４】
例えば、アプリケーションは、ネットワークを介してデータを送信または受信するためにＡＰＩを使用できる前に、ネットワークＡＰＩを実行するプロトコルスタックをインスタンス化する。例えば開放型システム間相互接続（ＯＳＩ）モデルに基づく伝統的なプロトコルスタックにおいては、各々の層が、その上位または下位の層とだけ通信することができる。コンテンツセントリックネットワーク（ＣＣＮ）に基づくモデルにおいては、プロトコルスタックを、種々のアプリケーションによって使用されるＡＰＩのニーズに適するように動的に生成することができる。これらのアプリケーション主導のプロトコルスタックの生成は、システムの柔軟性を高めることができるが、標準化の欠如が、そのようなスタックにおける特定のコンポーネントのアドレシングに課題を呈している。
【課題を解決するための手段】
【０００５】
一実施形態は、スタックの個々のコンポーネントの直接的なアドレシングのための名称の仕組みを含むアイデンティティ管理および初期化を容易にするトランスポートフレームワークシステムを提供する。動作時、システムが、インタレストに対応するパケットをフォワーダによって受信し、ここでインタレストは、名称を含んでいる。インタレストが通信モジュールのスタックのコンポーネントに宛てられているとの判断に応答して、フォワーダは、このインタレストをインタレストの名称に基づいて宛先のコンポーネントに送信し、ここでスタックは、自身の上位または下位の層とのみ通信するそれぞれの通信モジュールを必要としない。インタレストがスタックのコンポーネントに宛てられてはいないとの判断に応答して、フォワーダは、このインタレストをインタレストの名称に基づいてネットワークエレメントに送信する。これは、スタックの個々のコンポーネントの直接的なアドレシングを容易にする。
【０００６】
いくつかの実施形態において、インタレストの名称は、スタックの名称、対応するポータルインスタンスに関連付けられたフォワーダの名称、スタックのコンポーネントの名称、およびスタックのコンポーネントに関連付けられたコマンドのうちの１つ以上を含む。
【０００７】
いくつかの実施形態において、スタックのコンポーネントの名称は、最も全体的なレベルから最も具体的なレベルに順に並べられた連続する名称構成要素を含んでおり、スタックに対応するポータルインスタンスにおいて適用可能である階層構造可変長識別子（ＨＳＶＬＩ）、いかなる階層も示さないフラットな名称、スタック内のコンポーネントの役割、およびスタックのコンポーネントに固有の一意の識別子のうちの１つ以上に基づく。
【０００８】
いくつかの実施形態において、インタレストは、インタレストの名称によって特定されるコンポーネントに関連付けられたコマンドを含むペイロードを含む。
【０００９】
いくつかの実施形態において、インタレストを宛先のコンポーネントに送信するステップは、インタレストに含まれるメッセージをインタレストの名称に基づいてメッセージ配信システムを介して宛先のコンポーネントに送信するステップをさらに含む。
【００１０】
いくつかの実施形態において、システムは、スタックに関連付けられたポータルインスタンスの生成の要求をアプリケーションから受信する。システムは、要求に含まれるアプリケーション情報に基づいてポータルインスタンスを生成する。システムは、スタック、スタックに関連付けられたフォワーダ、およびスタックの各々のコンポーネントを示すポータルインスタンスをアプリケーションに返す。
【００１１】
いくつかの実施形態において、アプリケーション情報は、ポータルインスタンスの名称およびポータルインスタンスのノンスのうちの１つ以上を含む。
【００１２】
いくつかの実施形態において、ポータルインスタンスの生成は、ポータルインスタンスのクリエータのアイデンティティおよび秘密鍵にさらに基づく。システムは、スタックのベリファイヤコンポーネントにクリエータの秘密鍵を格納する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態によるスタックの個々のコンポーネントの直接的なアドレシングを容易にする典型的な環境を示している。
【図２Ａ】図２Ａは、本発明の実施形態による典型的なトランスポートフレームワークを示している。
【図２Ｂ】図２Ｂは、本発明の実施形態による図２Ａに対応する典型的なトランスポートフレームワークを示している。
【図３】図３は、スタックの個々のコンポーネントを直接的にアドレス指定するための本発明の実施形態による方法を説明するフロー図を示している。
【図４】図４は、ポータルインスタンスを生成するための本発明の実施形態による方法を説明するフロー図を示している。
【図５】図５は、本発明の実施形態によるスタックの個々のコンポーネントの直接のアドレシングを容易にする典型的な装置を示している。
【図６】図６は、本発明の実施形態によるスタックの個々のコンポーネントの直接のアドレシングを容易にする典型的なコンピュータシステムを示している。
【発明を実施するための形態】
【００１４】
図面において、同じ参照番号は、同じ図面構成要素を指している。
【００１５】
以下の説明は、実施形態の製作および使用を当業者にとって可能にするために提示され、特定のアプリケーションおよびその要件の文脈において提示される。開示の実施形態の種々の変更が、当業者にとって容易に明らかであり、本明細書において定められる全体的な原理は、本発明の技術的思想および技術的範囲から離れることなく、他の実施形態およびアプリケーションに適用可能である。したがって、本発明は、示される実施形態に限られず、本明細書に開示の原理および特徴に矛盾しない最も広い範囲が与えられるべきである。
【００１６】
本発明の実施形態は、プロトコルスタックの個々のコンポーネントの直接的なアドレシングの問題を解決するトランスポートフレームワークのためのアイデンティティ管理システムを提供する。ＣＣＮにおいて、トランスポートフレームワークは、高レベルＡＰＩがフレームワークにおいてトランスポートスタックをインスタンス化することを可能にする。トランスポートスタックは、複数のコンポーネントまたは通信モジュールを含むことができ、各々のコンポーネントが自身の下位または上位のコンポーネントとのみ通信する伝統的な層状モデル（例えば、ＯＳＩ）に固執しない。トランスポートスタックを、動的に生成し、ランタイムにおいて設定することができ、トランスポートスタックにおけるコンポーネントの各々は、特定の機能を実行する。例えば、トランスポートスタックの或るコンポーネントは、ネットワークを介して送信されるインタレストに応答して受信されるコンテンツオブジェクトのデジタル署名の検証を担当するベリファイヤコンポーネントであってよい。
【００１７】
伝統的に、アプリケーションは、ＡＰＩによるメッセージの作成を生じさせる呼をＡＰＩに発することによって、ネットワークを介して通信することができる。このメッセージは、適切なトランスポートスタックを通って流れ、メッセージがネットワークに進むときに種々のコンポーネントを訪れる。トランスポートスタックの個々のコンポーネントを直接アドレスすることは、困難である。本発明の実施形態は、特定のＣＣＮトランスポートスタックに関連付けられたポータルＡＰＩインスタンスを作成するアイデンティティ管理および初期化システムを提供する。システムは、任意のアプリケーションまたはトランスポートスタック内のコンポーネントが関連のポータルＡＰＩインスタンスを介して同じまたは別のトランスポートスタックの任意のコンポーネントを直接アドレスすることを可能にする名称の仕組みをさらに提供する。この名称の仕組みは、スタック間およびスタック内のメッセージ（一様な制御メッセージを含む）を状態の変更、コンポーネントの設定、またはエラーの伝達のためにポータルＡＰＩ、スタックコンポーネント、フォワーダインスタンス、およびアプリケーションの間でランタイムにおいて適切に回送することを可能にする。
【００１８】
ポータルＡＰＩインスタンスは、特定のＣＣＮトランスポートスタックに関連付けられてよく、ポータルインスタンスまたはその関連のスタックに関連付けられたメタデータの読み取り、書き込み、変更、および／または削除のための方法を提供することができる。ＣＣＮトランスポートスタックは、米国特許出願第１４／５９５，０６０号に記載のように、設定可能かつ拡張可能である。さらに、システムは、特定のアイデンティティをポータルＡＰＩインスタンスに割り当てることができる。トラフィックの流れを許可または不許可とするためのファイアウォールにおけるパーミッションの設定と同様に、この特定のアイデンティティは、アイデンティティに関連付けられたセキュリティ認証情報に基づいてポータルを通過するＣＣＮメッセージを許可または不許可とすることができる。さらに、この特定のアイデンティティは、ポータルクリエータとポータル要求者またはユーザとの間の分離を提供する。例えば、ルートユーザが、スタックのベリファイヤコンポーネントに格納されてよい自身の秘密鍵を使用してポータルインスタンスを生成でき、ポータルインスタンスの後のユーザまたはアプリケーションが、スタックを通って流れるメッセージの署名または復号のために格納されたルートユーザの秘密鍵に（秘密鍵の値を知る必要なく）頼ることができる。特定のアイデンティティに基づくポータルインスタンスの生成は、図４に関して後述される。
【００１９】
アプリケーションが、ポータルインスタンスを要求し、ポータルインスタンスに関連付けられた情報を使用して、情報に基づいた名称を有するインタレストまたはメッセージを形成することができる。情報は、ポータルインスタンスに関連付けられたスタックの名称、スタックに関連付けられたフォワーダの名称、およびスタックの各々のコンポーネントの名称を含むことができる。次いで、アプリケーションは、名称の仕組みに基づいて同じまたは別のトランスポートスタック内の任意のコンポーネントを直接アドレスすることができる。例えば、個々のスタックコンポーネントを、ポータルインスタンスに関連付けられた情報に基づいてアドレスすることができ、ここでスタックコンポーネントの名称は、コンポーネントの役割または一意の識別子に基づくことができる。名称の仕組みは、図２Ｂに関して後述される。このようにして、システムは、トランスポートスタックの個々のコンポーネントまたは通信モジュールの直接的なアドレシングを容易にする。
【００２０】
いくつかの実施形態において、トランスポートフレームワークは、ＣＣＮアーキテクチャのもとで動作する。ＣＣＮにおいては、各々のコンテンツに個別の名称が付けられ、各々のデータが、そのデータを同じデータの他のバージョンまたは他の出所からのデータなどの他のデータから区別する一意の名称に結びつけられる。この一意の名称は、ネットワークデバイスが一意の名称を示す要求またはインタレストを散布することによってデータを要求することを可能にし、データの格納位置、ネットワーク位置、アプリケーション、および輸送の手段から独立してデータを得ることができる。以下の用語が、ＣＣＮアーキテクチャを説明するために使用される。
【００２１】
コンテンツオブジェクト（Ｃｏｎｔｅｎｔ  Ｏｂｊｅｃｔ（または、「ｃｏｎｔｅｎｔ  ｏｂｊｅｃｔ」））：固有名称に結びつけられた１つの名前付きのデータ。コンテンツオブジェクトは、「永続的（ｐｅｒｓｉｓｔｅｎｔ）」であり、すなわちコンテンツオブジェクトは、コンピューティングデバイス内のあちこちを移動し、あるいは異なるコンピューティングデバイスにまたがって移動しうるが、変更されることはない。コンテンツオブジェクトの何らかのコンポーネントが変更される場合、その変更を行ったエンティティが、更新後のコンテンツを含む新たなコンテンツオブジェクトを生成し、新たなコンテンツオブジェクトを新たな固有名称に結びつける。
【００２２】
固有名称（Ｕｎｉｑｕｅ  Ｎａｍｅ）：ＣＣＮにおける名称は、典型的には、位置とは無関係であり、コンテンツオブジェクトを一意に特定する。データ転送デバイスは、名称または名称のプレフィックス部分を使用することによって、コンテンツオブジェクトのネットワークアドレスまたは物理的な位置にかかわらずに、コンテンツオブジェクトを生成または格納するネットワークノードにパケットを転送することができる。いくつかの実施形態において、名称は、階層構造可変長識別子（ＨＳＶＬＩ）であってよい。ＨＳＶＬＩを、さまざまなやり方で構造化することができるいくつかの階層コンポーネントに分割することができる。例えば、個々の名称コンポーネントｐａｒｃ、ｈｏｍｅ、ｃｃｎ、およびｔｅｓｔ．ｔｘｔを、左側に位置するプレフィックス部分が上位であるようなやり方で構造化して、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」を形成することができる。すなわち、名称「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」が、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」の「親」または「プレフィックス部分」でありうる。さらなるコンポーネントを、共同作業による文書などのコンテンツアイテムの異なるバージョンの間の区別のために使用することができる。
【００２３】
いくつかの実施形態において、名称は、コンテンツオブジェクトのデータ（例えば、チェックサム値）および／またはコンテンツオブジェクトの名称のエレメントから導出されたハッシュ値など、識別子を含むことができる。ハッシュに基づく名称の説明が、米国特許出願第１３／８４７，８１４号に記載されている。名称は、フラットラベル（ｆｌａｔ  ｌａｂｅｌ）であってもよい。以下で、「名称」は、階層による名称または名称のプレフィックス部分、フラットな名称、固定長の名称、任意長の名称、あるいはラベル（例えば、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）ラベル）など、名称−データネットワークにおけるデータのあらゆる名称を指して使用される。
【００２４】
インタレスト（Ｉｎｔｅｒｅｓｔ（または、「ｉｎｔｅｒｅｓｔ」））：データの要求を知らせるパケットであり、そのデータの名称（または、名称のプレフィックス部分）を含んでいるパケット。データ消費者（ｄａｔａ  ｃｏｎｓｕｍｅｒ）が、情報セントリックネットワーク（ｉｎｆｏｒｍａｔｉｏｎ−ｃｅｎｔｒｉｃ  ｎｅｔｗｏｒｋ）のいたる所に要求またはインタレストを散布することができ、そのような要求またはインタレストを、ＣＣＮ／ＮＤＮルータが、要求またはインタレストを満足させるべく要求されたデータを提供することができるストレージデバイス（例えば、キャッシュサーバ）またはデータ生成者（ｄａｔａ  ｐｒｏｄｕｃｅｒ）に伝えることができる。
【００２５】
加えて、「ｌｃｉ」が、ラベル付けされたコンテンツ情報を指し、名称の一部分がラベルを保持しているユニバーサル・リソース・インジケータ（ＵＲＩ）に準拠した識別子である。ＣＣＮなどのネットワークプロトコルは、ＵＲＩの各々の名称部分に特定のラベルを適用することによって、ラベル付けされたコンテンツ情報を使用することができる。階層構造の名称において、ラベル付けされたコンテンツ名称は、意味的（ｓｅｍａｎｔｉｃ）な種類またはラベルを各々の部分に割り当てる。例えば、名称部分の種類として、ＣＣＮがメッセージについて２値ワイヤ上（ｏｎ−ｔｈｅ−ｗｉｒｅ）表現を使用することを可能にする任意のオクテットを含む包括的な名称部分である名称部分を挙げることができる。
【００２６】
本明細書に開示の方法は、ＣＣＮネットワークに限定されず、他のアーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの説明は、米国特許出願第１２／３３８，１７５号に記載されている。
【００２７】
図１は、本発明の実施形態によるスタックの個々のコンポーネントの直接のアドレシングを容易にする典型的な環境１００を示している。コンピューティング環境１００は、ＣＣＮなどのコンピュータネットワーク１０２を含むことができる。環境１００は、ローカルコンピューティングデバイス１０４に関連付けられたユーザ１０６と、リモートコンピューティングデバイス１０８とをさらに含むことができる。デバイス１０４および１０８は、ネットワーク１０２を介して互いにネットワークパケットを交換する内部トランスポートスタック（例えば、トランスポートフレームワーク１３０および１７０にそれぞれ関連付けられる）を有することができる。
【００２８】
伝統的なＩＰアーキテクチャにおいては、フォワーダ（ｆｏｒｗａｒｄｅｒ）が、パケットのヘッダを調べてパケットの出所および送り先を明らかにし、パケットを送り先に転送するＩＰベースのフォワーダである。スタックは、ＴＣＰ／ＵＤＰを実行し、アプリケーションが、ソケットを介してスタックとやりとりする。対照的に、本発明のデバイス１０４は、伝統的な「スタック」を使用しない。むしろ、デバイス１０４は、アプリケーション１１０を介して、トランスポートフレームワーク１３０に対応するポータル１２０に対応するポータルＡＰＩインスタンスを要求することができる。同様に、デバイス１０８は、アプリケーション１５０を介して、トランスポートフレームワーク１７０に対応するポータル１６０に対応するポータルＡＰＩインスタンスを要求することができる。アプリケーション１１０および１５０は、それぞれポータル１２０および１６０に関連付けられたポータルＡＰＩインスタンスの検索または生成のための要求を生成することができる。あるいは、図４に関して後述されるように、デバイス１０４またはデバイス１０８に関連付けられたルートユーザが、それぞれのポータルインスタンスを生成することができる。
【００２９】
デバイス１０４は、スマートフォン１０４．１、タブレットコンピュータ１０４．２、ならびに／あるいはサーバまたはパーソナルコンピュータ１０４．ｍなど、ネットワーク１０２に接続された任意のコンピューティングデバイスを含むことができる。とくに、デバイス１０４は、ポータル１２０を介してトランスポートフレームワーク１３０と通信するアプリケーション１１０を含むことができる。トランスポートフレームワーク１３０は、スタックコンポーネント１３４．１〜１３４．ｎを含むことができる。デバイス１０４は、トランスポートフレームワーク１３０のスタック（および、個々のスタックコンポーネント）とネットワーク１０２との間でパケットを転送することができるフォワーダ１４０（例えば、ネットワーク・インターフェイス・カード、またはローカル・エリア・ネットワークにおけるルータ）をさらに含むことができる。同様に、デバイス１０８は、サーバまたは末端ホストデバイスなど、ネットワーク１０２に接続された任意のコンピューティングデバイスを含むことができる。デバイス１０８は、ポータル１６０を介してトランスポートフレームワーク１７０と通信するアプリケーション１５０を含むことができる。トランスポートフレームワーク１７０は、スタックコンポーネント１７４．１〜１７４．ｐを含むことができる。デバイス１０８は、トランスポートフレームワーク１７０のスタック（および、個々のスタックコンポーネント）とネットワーク１０２との間でパケットを転送することができるフォワーダ１８０をさらに含むことができる。フォワーダ１４０および１８０は、それぞれ個々のスタックコンポーネント１３４．１〜１３４．ｎおよび１７４．１〜１７４．ｐの間のパケットの直接の転送を容易にすることもできる。
【００３０】
図２Ａは、本発明の実施形態による典型的なトランスポートフレームワークを示している。アプリケーション２１０および２５０が、同じデバイス上に位置することができ、あるいはネットワーク２０２を介して通信する異なるデバイス上に位置することができる。アプリケーション２１０は、ネットワーク２０２を介した通信のためにＡＰＩ２１２、２１４、および２１６を使用することができ、ＡＰＩ２１２〜２１６は、ポータル２２０を介してトランスポートフレームワーク２３０とやりとりをすることができる。トランスポートフレームワーク２３０は、各々が複数のスタックコンポーネントまたは通信モジュールを含んでいる１つ以上のトランスポートスタックを含むことができる。図２Ａにおいて、トランスポートフレームワーク２３０は、スタックコンポーネント２３２〜２３８を含む１つのトランスポートスタック（例えば、トランスポートスタック２３１）を示している。ＡＰＩアダプタ２３２が、ＡＰＩと特定のトランスポートスタックおよびトランスポートフレームワーク２３０との間の通信を行うことができる。フローコントローラ２３４が、トラフィックを成形および管理し、インタレストを輸送および伝送し、コンテンツオブジェクトをオーダーすることができる。ベリファイヤ／サイナ（ｖｅｒｉｆｉｅｒ／ｓｉｇｎｅｒ）２３６が、ネットワークエレメントに宛てられたコンテンツオブジェクトのエンコードおよび署名を行い、関連のアプリケーションに宛てられたコンテンツオブジェクトのデコードおよび検証を行い、ネットワークエレメントに宛てられたインタレストのエンコードを行い、関連のアプリケーションに宛てられたインタレストのデコードを行うことができる。フォワーダ／アダプタ２３８が、フォワーダ２４０と通信することができる。フォワーダ２４０は、ネットワーク２０２を介して他のフォワーダと通信することができる。他のスタックコンポーネント（図示せず）は、セキュリティ（例えば、暗号化、暗号の解読、認証、データ署名、署名の検証、信用評価、およびフィルタ処理）、データ処理（例えば、エンコード、デコード、カプセル化、カプセル化の解除、トランスコーディング、圧縮、抽出、および解凍）、およびストレージ（例えば、データの格納、ストレージからのデータの読み出し、重複排除、セグメント化、およびバージョニング）に関係した機能を含むことができる。
【００３１】
同様に、アプリケーション２５０は、ネットワーク２０２を介した通信のためにＡＰＩ２５２、２５４、および２５６を使用することができ、ＡＰＩ２５２〜２５６は、ポータル２６０を介してトランスポートフレームワーク２７０とやりとりをすることができる。トランスポートフレームワーク２７０は、各々が複数のスタックコンポーネントまたは通信モジュールを含んでいる１つ以上のトランスポートスタックを含むことができる。図２Ａにおいて、トランスポートフレームワーク２７０は、以下のスタックコンポーネント、すなわちＡＰＩアダプタ２７２、フローコントローラ２７４、ベリファイヤ／サイナ２７６、およびフォワーダ２８０と通信することができるフォワーダ／アダプタ２７８を含む１つのトランスポートスタック（例えば、トランスポートスタック２７１）を示している。フォワーダ２４０は、ネットワーク２０２を介してフォワーダ２８０と通信することができる。
【００３２】
システム（アプリケーションまたはルートユーザの操作あるいはランタイム実行可能ファイルからの要求による）は、各々のＣＣＮトランスポートスタックに関連付けられたポータルＡＰＩインスタンスを生成することができる。例えば、アプリケーション２１０が、コンポーネント２３２〜２３８を含むトランスポートスタック２３１に関連付けられたポータルＡＰＩインスタンスを要求することができる。ポータルＡＰＩインスタンスの生成は、図４に関連して後述される。ポータルＡＰＩインスタンスの生成において、本明細書に記載の名称の仕組みを使用して、アプリケーションまたは任意の個々のスタックコンポーネントは、同じまたは別のスタックの任意の他の個々のコンポーネントに直接メッセージを送信することができる。例えば、トランスポートスタック２３１のフローコントローラ２３４が、トランスポートスタック２７１のベリファイヤ／サイナ２７６に直接メッセージを送信することができる。メッセージは、フォワーダ２４０および２８０を介してネットワーク２０２を移動することができる。いくつかの実施形態において、メッセージは、プロセス間通信（ＩＰＣ）プロトコルを介してアプリケーション２１０とアプリケーション２５０との間を移動することができる。
【００３３】
図２Ｂが、本発明の実施形態による図２Ａに対応する典型的なトランスポートフレームワークを示している。トランスポートスタック２３１に関するポータルＡＰＩインスタンスの生成において、システムは、以下の情報のうちの一部またはすべて、すなわちスタックの名称（「ｓｔａｃｋ＿ｎａｍｅ」）、スタック内の各々のコンポーネントの名称（「ｃｏｍｐｏｎｅｎｔ＿ｎａｍｅ」）、スタック内の各々のコンポーネントの役割（「ｃｏｍｐｏｎｅｎｔ＿ｒｏｌｅ」）、および各々のコンポーネントに固有であるスタック内の各々のコンポーネントの一意の識別子（「ｃｏｍｐｏｎｅｎｔ＿ｉｄ」）のうちの一部またはすべてを、ポータルインスタンスを要求するエンティティに提供することができる。例えば、トランスポートスタック２３１について、図２Ｂに示されるとおり、ｓｔａｃｋ＿ｎａｍｅは「Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ」という値を有することができ、ｃｏｍｐｏｎｅｎｔ＿ｎａｍｅは「Ｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ  Ａ」という値を有することができ、ｃｏｍｐｏｎｅｎｔ＿ｒｏｌｅは「ＦＬＷＣＮＴＲＬ」という値を有することができ、ｃｏｍｐｏｎｅｎｔ＿ｉｄは「２３４」という値を有することができる。スタックのコンポーネントの名称は、最も全体的なレベルから最も具体的なレベルに順に並べられた連続する名称構成要素を含む階層構造可変長識別子（ＨＳＶＬＩ）であってよく、ここでＨＳＶＬＩは、スタックに対応するポータルインスタンスにおいて適用可能である。スタックコンポーネントの名称は、いかなる階層も示さないフラットな名称であってもよい。いくつかの実施形態において、スタックコンポーネントの名称は、スタックコンポーネントの役割、またはスタックコンポーネントに固有である一意の識別子に基づくことができる。
【００３４】
トランスポートスタックのコンポーネントを、例えば一意の識別子または役割によって、スタックの範囲内においてアドレス指定または参照することができる。例えば、個々のスタックコンポーネントをアドレス指定するためのインタレストの名称は、以下のフォーマットのうちの１つに基づくことができる。
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ／ｃｏｍｐｏｎｅｎｔ＿ｎａｍｅ／ｃｏｍｍａｎｄ  （１）
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ／ｃｏｍｐｏｎｅｎｔ＿ｒｏｌｅ／ｃｏｍｍａｎｄ  （２）
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ／ｃｏｍｐｏｎｅｎｔ＿ｉｄ／ｃｏｍｍａｎｄ  （３）
【００３５】
「ｃｏｍｍａｎｄ」ラベルを、フローコントローラをオンまたはオフにするなど、プロセスを実行し、設定を設定し、あるいはアクションを行うようにスタックコンポーネントにメッセージを送信するために使用することができる。コマンドは、上記のようにメッセージに含まれてよく、あるいはインタレストのペイロードに含まれてよい。例えば、フォーマット（１）および上述の典型的な値に基づいて、トランスポートスタック２３１の個々のスタックコンポーネントを、以下のようにアドレス指定することができる。
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ＝“Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ”／ｃｏｍｐｏｎｅｎｔ＿ｎａｍｅ＝“Ｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ  Ａ”／ｃｏｍｍａｎｄ＝“ＴＵＲＮ  ＯＦＦ”  （４）
同様に、フォーマット（２）および（３）のそれぞれ、ならびに上述の典型的な値に基づいて、トランスポートスタック２３１の個々のスタックコンポーネントを、以下のようにアドレス指定することもできる。
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ＝“Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ”／ｃｏｍｐｏｎｅｎｔ＿ｒｏｌｅ＝“ＦＬＷＣＮＴＲＬ”／ｃｏｍｍａｎｄ＝“ＴＵＲＮ  ＯＦＦ”  （５）
ｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ＝“Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ”／ｃｏｍｐｏｎｅｎｔ＿ｉｄ＝“２３４”／ｃｏｍｍａｎｄ＝“ＴＵＲＮ  ＯＦＦ”  （６）
【００３６】
トランスポートフレームワーク２３０は、トランスポートスタック２３１に関連付けられたメッセージ配信システム２４２をさらに含むことができる。メッセージ配信システム２４２は、インタレスト（例えば、名称（４）、（５）、および（６）によって示されるとおりの名称を有するインタレスト）に含まれるメッセージを、上述の名称の仕組みに基づいて、宛先のコンポーネントに動的に発送または回送することができる。
【００３７】
トランスポートフレームワークのトランスポートスタックは、スタック、アプリケーション、またはネットワークインターフェイスにパケットを転送し、さらには／あるいはスタック、アプリケーション、またはネットワークインターフェイスからパケットを転送するようにマルチプレクサ／デマルチプレクサとして振る舞うフォワーダとやりとりすることができる。いくつかの実施形態において、フォワーダは、論理インターフェイス、物理インターフェイス、またはローカル・エリア・ネットワークにおけるルータを含むことができる。図３は、スタックの個々のコンポーネントを直接的にアドレス指定するための本発明の実施形態による方法を説明するフロー図３００を示している。動作時、フォワーダが、インタレストに対応するパケットを受信し、ここでインタレストは、名称を含んでいる（動作３０２）。名称は、図２Ｂに関して上述したように、ラベル付けされたコンテンツ情報を含むことができる。フォワーダは、スタックに関連付けられ、スタックは、１つ以上の通信モジュールまたはコンポーネントを含んでいる。スタックは、自身の上位または下位の層とのみ通信するそれぞれの通信モジュールまたはコンポーネントを必要としない。フォワーダが、インタレストの名称を検査することによって、インタレストがスタック内のコンポーネントに宛てられたものであるか否かを判断する（判定３０４）。インタレストがスタックのコンポーネントに宛てられたものではない場合、フォワーダは、インタレストをインタレストの名称に基づいてネットワークエレメントに送信する（動作３０６）。例えば、図２Ｂのフォワーダ２４０は、以下の名称、すなわちｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ＝“Ｏｔｈｅｒ  Ｐｏｒｔａｌ”／ｓｔａｃｋ＿ｃｏｍｐｏｎｅｎｔ＝“ＶＥＲ＿ＳＩＧ”を有するインタレストを受信することができる。フォワーダ２４０は、インタレストがトランスポートスタック２３１（「Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ」というｓｔａｃｋ＿ｎａｍｅを有する）のコンポーネントに宛てられたものではないと判断でき、次いでインタレストを名称「Ｏｔｈｅｒ  Ｐｏｒｔａｌ」によって特定されるポータルＡＰＩインスタンスにネットワーク２０２を介して転送することができる。いくつかの実施形態において、インタレストの名称は、フォワーダの名称を示すことができ、したがってフォワーダ２４０が、示されたフォワーダにインタレストをネットワーク２０２を介して送信することができる。
【００３８】
インタレストがスタックのコンポーネントに宛てられたものである場合、フォワーダは、インタレストをインタレストの名称に基づいて宛先のスタックコンポーネントに送信する（動作３０８）。次いで、フォワーダは、インタレストの名称に基づいてメッセージ配信システムによって宛先のスタックコンポーネントにインタレストに含まれるメッセージを送信する（動作３１０）。例えば、図２Ｂのフォワーダ２４０は、インタレストの名称（４）、すなわちｌｃｉ：／ｓｔａｃｋ＿ｎａｍｅ＝“Ｐｏｒｔａｌ  Ａ  Ｓｔａｃｋ”／ｃｏｍｐｏｎｅｎｔ＿ｎａｍｅ＝“Ｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ  Ａ”／ｃｏｍｍａｎｄ＝“ＴＵＲＮ  ＯＦＦ”によって示されるとおりの名称を有するインタレストを受信することができる。フォワーダ２４０は、インタレストがトランスポートスタック２３１のコンポーネントに宛てられたものであると判断でき、次いでインタレストに含まれるメッセージを宛先のスタックコンポーネント（例えば、「Ｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ  Ａ」という名称のスタックコンポーネント（ここでは、フローコントローラ２３４））に送信することができる。とくには、フォワーダ２４０は、メッセージをフローコントローラ２３４に動的に回送または発送するメッセージ配信システム２４２を介して、宛先のスタックコンポーネントにインタレストに含まれるメッセージを送信する。
【００３９】
図４は、ポータルインスタンスを生成するための本発明の実施形態による方法を説明するフロー図４００を示している。動作において、システムは、アプリケーションからポータルインスタンスの生成の要求を受信することができる（動作４０２）。受信するシステムは、ポータルクリエータ（ｐｏｒｔａｌ  ｃｒｅａｔｏｒ）またはオペレーティングシステムサービスであってよく、要求は、名称およびポータルインスタンスに使用されるべきノンス（ｎｏｎｃｅ）などのアプリケーション情報を含むことができる。いくつかの実施形態においては、（アプリケーションよりもむしろ）システムのルートユーザが、ポータルクリエータであってよい。ルートユーザは、ルートユーザのアイデンティティおよび秘密鍵を含むことができるルートユーザの認証情報（ｃｒｅｄｅｎｔｉａｌ）を使用してポータルインスタンスを生成することができる。次いで、システムは、ルートユーザの秘密鍵をトランスポートスタックのベリファイヤコンポーネントに記憶することで、同じシステム上の非ルートユーザが同じポータルインスタンスを介してネットワークと通信またはやりとりすることを可能にできる。例えば、ルートユーザと同じシステム上の非ルートユーザは、ポータルクリエータのセキュリティ認証情報を露出させることなくコンテンツオブジェクトを送信する（例えば、ポータルインスタンスを介してルートユーザの認証情報を使用してコンテンツオブジェクトの生成および署名を行う）ために既存のポータルＡＰＩインスタンスを要求および使用することができる。さらに、暗号的に一意の情報を、トランスポートスタックおよびその内部コンポーネントの名称の仕組みの一部として使用することで、同じマシン上のスタックコンポーネント間およびネットワーク経由（図３に関して上述したとおり）の両方について、メッセージの回送を可能にすることができる。
【００４０】
システムは、要求に含まれるアプリケーション情報に基づいてポータルインスタンスを生成する（動作４０４）。いくつかの実施形態において、要求は、ポータルクリエータのアイデンティティを含むことができ、ポータルクリエータの秘密鍵（例えば、ルートユーザの秘密鍵）に基づいてポータルクリエータによってデジタル署名されてよい。さらに、ポータルインスタンスの生成は、システムから得られる情報（例えば、トランスポートフレームワークおよび関連のトランスポートスタックに関する情報）およびローカルホストフォワーダから得られる情報（例えば、スタックに関連付けられたフォワーダの名称）に基づくことができる。その後に、システムは、ポータルインスタンスをアプリケーションに返す（動作４０６）。ポータルインスタンスは、ポータルインスタンスに関連付けられたトランスポートスタック、スタックに関連付けられたフォワーダ、およびスタックの各々のコンポーネントの名称を示すことができる。
【００４１】
いくつかの実施形態においては、オペレーティングシステムのサービスが、オフラインまたは初期化の際に（例えば、アプリケーションからの要求への応答においてではなく）、ポータルインスタンスを生成することができる。次いで、オペレーティングシステムは、前もって生成されたポータルインスタンスを要求の際に返すことができる。
【００４２】
図５は、本発明の実施形態によるスタックの個々のコンポーネントの直接のアドレシングを容易にする典型的な装置５００を示している。装置５００は、有線または無線の通信チャネルを介して互いに通信することができる複数のモジュールを備えることができる。装置５００は、１つ以上の集積回路を使用して実現されてよく、図５に示されるモジュールよりも少数または多数のモジュールを含むことができる。さらに、装置５００を、コンピュータシステムに統合でき、あるいは他のコンピュータシステムおよび／またはデバイスと通信することができる別のデバイスとして実現することができる。とくには、装置５００は、通信モジュール５０２、宛先判断モジュール５０４、メッセージ配信モジュール５０６、ポータル生成モジュール５０８、およびセキュリティモジュール５１０を備えることができる。
【００４３】
いくつかの実施形態において、通信モジュール５０２は、コンテンツセントリックネットワークなどのコンピュータネットワークにおいて他のネットワークノードにデータパケットを送信し、かつ／または他のネットワークノードからデータパケットを受信することができる。宛先判断モジュール５０４は、インタレストが通信モジュールのスタックのコンポーネントに宛てられたものであるか否かを判断することができる。インタレストがスタックのコンポーネントに宛てられたものではないという判断に応答して、通信モジュール５０２は、インタレストをインタレストの名称に基づいてネットワークエレメントに送信することができる。インタレストがスタックのコンポーネントに宛てられたものであるという判断に応答して、メッセージ配信モジュール５０６は、インタレストおよび／またはメッセージをインタレストの名称に基づいて宛先のコンポーネントに送信することができる。
【００４４】
通信モジュール５０２は、スタックに関連付けられたポータルインスタンスの生成の要求を受信することができる。ポータル生成モジュール５０８が、要求に含まれるアプリケーション情報に基づいてポータルインスタンスを生成することができる。通信モジュール５０２が、ポータルインスタンスをアプリケーションに返すことができる。セキュリティモジュール５１０は、スタックのベリファイヤコンポーネントにクリエータの秘密鍵を格納することができる。
【００４５】
図６は、本発明の実施形態によるスタックの個々のコンポーネントの直接のアドレシングを容易にする典型的なコンピュータシステム６０２を示している。コンピュータシステム６０２は、プロセッサ６０４、メモリ６０６、およびストレージデバイス６０８を含む。メモリ６０６は、管理されたメモリとして働き、１つ以上のメモリプールを格納するために使用されることができる揮発メモリ（例えば、ＲＡＭ）を含むことができる。さらに、コンピュータシステム６０２を、表示装置６１０、キーボード６１２、およびポインティングデバイス６１４に接続することができる。ストレージデバイス６０８は、オペレーティングシステム６１６、トランスポートシステム６１８、およびデータ６３２を格納することができる。
【００４６】
トランスポートシステム６１８は、コンピュータシステム６０２によって実行されたときに本明細書に記載の方法および／またはプロセスをコンピュータシステム６０２に実行させることができるインストラクションを含むことができる。とくには、トランスポートシステム６１８は、コンテンツセントリックネットワークなどのコンピュータネットワークにおいて他のネットワークノードにデータパケットを送信し、かつ／または他のネットワークノードからデータパケットを受信するためのインストラクションを含むことができる（通信モジュール６２０）。さらに、トランスポートシステム６１８は、インタレストが通信モジュールのスタックのコンポーネントに宛てられたものであるか否かを判断するためのインストラクションを含むことができる（宛先判断モジュール６２２）。トランスポートシステム６１８は、インタレストがスタックのコンポーネントに宛てられたものではないという判断に応答して、インタレストをインタレストの名称に基づいてネットワークエレメントに送信するためのインストラクションを含むことができる（通信モジュール６２０）。トランスポートシステム６１８は、インタレストがスタックのコンポーネントに宛てられたものであるという判断に応答して、インタレストおよび／またはメッセージをインタレストの名称に基づいて宛先のコンポーネントに送信するためのインストラクションをさらに含むことができる（メッセージ配信モジュール６２４）。
【００４７】
加えて、トランスポートシステム６１８は、スタックに関連付けられたポータルインスタンスの生成の要求を受信するためのインストラクション（通信モジュール６２０）および要求に含まれるアプリケーション情報に基づいてポータルインスタンスを生成するためのインストラクション（ポータル生成モジュール６２６）を含むことができる。トランスポートシステム６１８は、ポータルインスタンスをアプリケーションに返すためのインストラクションを含むことができる（通信モジュール６２０）。さらに、トランスポートシステム６１８は、スタックのベリファイヤコンポーネントにクリエータの秘密鍵を格納するためのインストラクションを含むことができる（セキュリティモジュール６２８）。
【００４８】
データ６３２は、入力として必要とされ、あるいは本明細書に記載の方法および／またはプロセスによって出力として生成される任意のデータを含むことができる。とくには、データ６３２は、少なくとも名称を含むインタレストに対応するパケット、トランスポートフレームワーク、プロトコルまたはトランスポートスタック、トランスポートまたはプロトコルスタックの１つ以上のコンポーネント、トランスポートまたはプロトコルスタックに関連付けられたポータルインスタンス、ならびにポータルクリエータのセキュリティ認証情報を格納することができる。
【００４９】
この詳細な説明において述べられるデータ構造および符号は、典型的には、コンピュータシステムによる使用のために符号および／またはデータを格納することができる任意のデバイスまたは媒体であってよいコンピュータにとって読み取り可能な記憶媒体上に記憶される。コンピュータにとって読み取り可能な記憶媒体として、これらに限られるわけではないが、揮発メモリ、不揮発メモリ、ディスク駆動装置、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）、などの磁気および光記憶装置、あるいは現時点において公知またはこれから開発されるコンピュータにとって読み取り可能な媒体を格納することができる他の媒体が挙げられる。
【００５０】
この詳細な説明の部分において述べられる方法およびプロセスを、上述のとおりのコンピュータにとって読み取り可能な記憶媒体に格納されてよい符号および／またはデータとして具現化することができる。コンピュータシステムがコンピュータにとって読み取り可能な記憶媒体に格納された符号および／またはデータを読み出して実行するとき、コンピュータシステムは、データ構造および符号として具現化され、コンピュータにとって読み取り可能な記憶媒体に格納された方法およびプロセスを実行する。
【００５１】
さらに、上述の方法およびプロセスは、ハードウェアモジュールに含まれることができる。例えば、ハードウェアモジュールとして、これらに限られるわけではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ならびに現時点において公知またはこれから開発される他のプログラマブルな論理素子を挙げることができる。ハードウェアモジュールの作動時に、ハードウェアモジュールは、ハードウェアモジュール内に含まれる方法およびプロセスを実行する。
【図１】
2017011695.tif 000003
【図２Ａ】
2017011695.tif 000004
【図２Ｂ】
2017011695.tif 000005
【図３】
2017011695.tif 000006
【図４】
2017011695.tif 000007
【図５】
2017011695.tif 000008
【図６】
2017011695.tif 000009