(57)【要約】  ネットワーク内のノード間でアプリケーションコンテナを移行するためのシステム、方法、およびコンピュータ可読媒体が開示される。アプリケーションコンテナのインタレストは、起点ノードによって受信され得、それに応じて、起点ノードは、アプリケーションコンテナのコピーをネットワークを介して宛先ノードに送信し得る。次いで、起点ノードはアプリケーションコンテナをシャットダウンし、任意の残りのコンテナステートおよび受信した要求を宛先ノードに送信することができる。次いで、宛先ノードは、ネットワークのルーティングプレーンを更新して、移行されたアプリケーションにサービス要求を配信し得る。【選択図】図２
2021536627.tif 000002
【特許請求の範囲】
【請求項１】
情報指向ネットワークを介して、起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、前記インタレストパケットは前記アプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に１つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは、前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを含む、方法。
【請求項２】
前記起点ノードにおいて、アプリケーションに対する、前記起点ノードで受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して、前記起点ノードバッファを送信することとをさらに含む、請求項１に記載の方法。
【請求項３】
前記宛先ノードにおいて、前記アプリケーションが移行している間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することをさらに含む、請求項２に記載の方法。
【請求項４】
前記宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることをさらに含む、請求項３に記載の方法。
【請求項５】
前記マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる、請求項４に記載の方法。
【請求項６】
前記ネットワークの前記ルーティングプレーンを更新することが、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための１つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちの少なくとも１つを実行することとを含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記アプリケーションコンテナの前記インタレストパケットが、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
ハードウェアプロセッサと、
命令を含むメモリであって、前記命令は前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、前記インタレストパケットは前記アプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に１つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを行わせるメモリと、を備える、システム。
【請求項９】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記起点ノードにおいて、前記アプリケーションに対する、前記起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して前記起点ノードバッファを送信することとを行わせる、請求項８に記載のシステム。
【請求項１０】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記宛先ノードにおいて、前記アプリケーションが移行する間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる、請求項９に記載のシステム。
【請求項１１】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることを行わせる、請求項１０に記載のシステム。
【請求項１２】
前記マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間に従って順序付けられる、請求項１１に記載のシステム。
【請求項１３】
前記ネットワークの前記ルーティングプレーンを更新することが、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための前記１つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、または前記フラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか１つを実行することとを含む、請求項８〜１２のいずれか一項に記載のシステム。
【請求項１４】
前記アプリケーションコンテナの前記インタレストパケットは、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項８〜１２のいずれか一項に記載のシステム。
【請求項１５】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、前記インタレストパケットはアプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に１つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを行わせる、非一時的コンピュータ可読媒体。
【請求項１６】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
前記起点ノードにおいて、前記アプリケーションに対する、前記起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して前記起点ノードバッファを送信することとを行わせる、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
前記宛先ノードにおいて、前記アプリケーションが移行する間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる、請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることであって、前記マージされたバッファは、受信時間に従って順序付けられる、マージすることを行わせる、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記アプリケーションコンテナの前記インタレストパケットが、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項１５〜１８のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記ネットワークの前記ルーティングプレーンを更新することは、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための１つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、または前記フラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか１つを実行することとを含む、請求項１５〜１９のいずれか一項に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
この出願は、２０１８年９月１３日に出願された「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＭＩＧＲＡＴＩＮＧ  Ａ  ＬＩＶＥ  ＳＴＡＴＥＦＵＬ  ＣＯＮＴＡＩＮＥＲ」と題された米国非仮特許出願第１６／１３０，８２４号の利益および優先権を主張するものであり、参照によりその全体が本明細書に明示的に組み込まれる。
【０００２】
本技術は、ネットワーク環境におけるコンテナおよびアプリケーションの管理に関する。
【背景技術】
【０００３】
コンピューティング能力がネットワーク内のノードにオフロードされるにつれて、ソフトウェアアプリケーションは、アプリケーションのユーザーが遠隔からアクセスする、サーバ、基地局などのデバイス上に、ますますホスティングされる。特に、モバイルユーザーにサービスを提供するホスティングされたアプリケーションは、ユーザーがネットワーク内のアクセスポイント間を移動する際に、サービス要求を維持しなければならないことが多い。多くの場合、遅延および応答性に寄与するその他の要因が最重要であるため、ユーザーに十分なレベルの応答性を維持するために、ホストされているアプリケーションをネットワーク全体にわたって移行する必要がある。ただし、アプリケーションは、さらなる遅延およびサービスの中断を回避するために、移行中に要求をサービスし続けなければならないことが多い。情報指向ネットワークおよびその他のアーキテクチャにおいて、移行作業中に永続的で中断のないサービスを維持することは実質的に困難である。
【図面の簡単な説明】
【０００４】
本開示の上記および他の利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定すると見なされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【０００５】
【図１Ａ】本技術の様々な実施形態による、例示的な動作環境を示す。
【図１Ｂ】本技術の様々な実施形態による、例示的な動作環境を示す。
【図２】本技術の様々な実施形態による、例示的なネットワーク環境およびバックエンドを示す。
【図３】本技術の様々な実施形態による、ネットワークを介してコンテナを移行するための例示的な方法を示す。
【図４】本技術の様々な実施形態による、ネットワークのルーティングプレーンを更新するための例示的な方法を示す。
【図５】本技術の様々な実施形態による、例示的なネットワークデバイスを示す。
【図６】本技術の様々な実施形態による、例示的なコンピューティングデバイスを示す。
【０００６】
例示的な実施形態の説明
本開示の様々な実施形態について、以下で詳細に考察する。特定の実装形態について考察するが、これは例証のみを目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から離れることなく、他の構成要素および構成を使用することができることを認識するであろう。したがって、以下の説明および図面は例示的なものであり、限定的なものとして解釈されるべきではない。本開示の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、特定の例において、説明を曖昧にすることを避けるために、周知の内容、つまり従来技術の内容は説明されていない。本開示における一実施形態または実施形態への参照は、同一の施形態または任意の実施形態への参照であり得、このような参照は、実施形態の少なくとも１つを意味する。
【０００７】
「一実施形態」または「実施形態」への参照は、実施形態に関連して記載された特定の特徴、構造、または特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態において」という語句の出現は、必ずしもすべてが同一の実施形態を指すわけではなく、他の実施形態を相互に排除する別個のまたは代替の実施形態でもない。さらに、いくつかの実施形態によって示され、他の実施形態によって示されない場合もある、様々な特徴が記載されている。
【０００８】
本明細書で使用される用語は、一般に、本技術において、本開示の文脈内で、および各用語が使用される特定の文脈において、それらの通常の意味を有する。代替の言語および同義語は、本明細書で論じられる用語のいずれか１つ以上に使用されてもよく、用語が本明細書で詳述または論じられるかどうかに特別な意味を置くべきではない。場合によっては、特定の用語に対する同義語が提供される。１つ以上の同義語の詳述は、他の同義語の使用を排除するものではない。本明細書で論じられる任意の用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示または任意の例示的な用語の範囲および意味をさらに制限することを意図するものではない。同様に、本開示は、本明細書に示される様々な実施形態に限定されない。
【０００９】
本開示の範囲を限定することを意図することなく、本開示の実施形態による機器、装置、方法、およびそれらに関連する結果の例を以下に示す。タイトルまたはサブタイトルは、読者の便宜のために例で使用される場合があり、開示の範囲を制限するものではないことに留意されたい。別段の定義がない限り、本明細書で使用される技術的および科学的用語は、本開示が関係する当業者によって一般的に理解される意味を有する。矛盾する場合は、定義を含む本明細書が優先される。
【００１０】
本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【００１１】
概要
ステートフルアプリケーションの移行において、移行中にアプリケーションへのサービス要求を維持することに支障が生じる可能性があり、シームレスに実行することが困難になり得る。例えば、モバイルエッジコンピューティング（ＭＥＣ）において、「モノのインターネット」（ＩＯＴ）デバイスなどのデバイスは、ノードによって提供されるアプリケーション（例えば、コンテナ化されたアプリケーションなど）に要求を送信し続けながら、ＩＯＴデバイスにサービスを提供するノード間を切り替えることができる。ネットワーク内の各ノードが、現実的にすべての単一アプリケーションを同時にホスティングすることができないため、アプリケーションは、継続して要求を処理するためにノード間を移行し得る。特に、モバイルＩＯＴデバイスについて遅延が懸念される場合、またはそうでなければアプリケーションがノード間などを頻繁に移行する必要がある場合は、ノード間のシームレスでステートフルな移行が望ましくなり得る。
【００１２】
本開示技術は、パケット損失を伴わないライブアプリケーションコンテナのステートフルな移行のための当技術分野におけるニーズに対処する。本明細書において、着信要求ストリームにサービスを提供しながら、ネットワーク上のノード間でアプリケーションコンテナを移行するためのシステム、方法、およびコンピュータ可読媒体が開示される。アプリケーションコンテナのインタレストは、ネットワーク上の起点ノードおよび宛先ノードから受信することが可能である。アプリケーションコンテナのコピーは、起点ノードから宛先ノードに送信することが可能である。次いで、起点ノードのアプリケーションコンテナは、シャットダウンされ得、起点ノードにおける残りのコンテナステートが宛先ノードに送信され得る。次いで、宛先ノードは、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするために、ネットワークのルーティングプレーンを更新し得る。
【００１３】
例示的な実施形態の説明
一実施例において、コンテナ、仮想マシン（ＶＭ）などは、パケット損失を伴わずに情報指向ネットワーク（ＩＣＮ）上でライブで移行することができる。コンピューティングインフラストラクチャを備えた基地局を含むネットワークについて考える。例えば、５Ｇネットワークは、例えば、限定を課すものではないが、自動車または自動車内のデバイスなどのＭＥＣデバイスにインターネット接続または他のネットワーク接続を提供するための複数の基地局を含み得る。さらに、自動車が基地局間を移動するとき、第１の基地局において提供されるアプリケーションは、第２の基地局において提供され得るか、または自動車とアプリケーションとの通信が（例えば、自動車がその範囲内に移動し得る、第２の基地局またはその他の基地局から）第１の基地局にルーティングされ得るかのいずれかである。
【００１４】
ただし、アプリケーションが、例えば、遅延またはスケーラビリティの懸念を有する場合、第２の基地局を経由して、自動車と第１の基地局との通信をルーティングすることにより、収束時間が増大しすぎることが発生する可能性がある。特に、ＩＣＮがグローバルルーティングプロトコルを含む場合、ルーティングされる送信の収束時間は、例えば、低遅延アプリケーションなどに非適合であり得る。その結果、アプリケーションは、代わりに、自動車との低遅延接続を維持するために、基地局間で移行され得る。
【００１５】
一実施例において、アプリケーションは、基地局間で、およびＩＣＮ全体にわたって（例えば、ＩＣＮ内の中間ネットワークノードを介して、および基地局間で）移行することができる。宛先ノード（例えば、第２の基地局）は、アプリケーションコンテナを要求する「インタレストパケット」を起点ノード（例えば、第１の基地局）に発信し得る。例えば、第２の基地局は、自動車が基地局のカバレッジエリア間を横断するときに、第１の基地局で実行されているアプリケーションによって生成されたデータの要求を自動車から受信し得る。この要求（例えば、異なるノードにおいてアプリケーションによって提供されるデータに対する）は、第２の基地局に、第１の基地局からそして第２の基地局自体に、それぞれのアプリケーション（つまり、任意の関連ステートにあるアプリケーションコンテナ）の移行要求を送信させ得る。
【００１６】
ＩＣＮのコンテキストにおいて、インタレストパケットは、いくつかの指定されたデータの要求を含む。インタレストパケットは、指定されたデータのプロデューサーがインタレストパケットを受信するまで、ＩＣＮ全体のノード間で転送され得る。ＩＣＮ内の各ノードは、内部に格納された転送情報ベース（ＦＩＢ）を使用することによって、インタレストパケットを転送する次のノード（例えば、フェース）を知り得る。ＦＩＢは、データを取得するために、プレフィックスまたは名前に関連付けられたフェースのリストを格納し得る。ＦＩＢを使用して、インタレストパケットを（例えば、インタレストパケットに含まれる名前または指定されたデータソースを介して）ロンゲストプレフィックスまたは最も一致する名前と照合することにより、インタレストパケットを転送する適切なフェースを特定することができる。フェースは、ネットワークインターフェース、ネクストホップＬ２イーサネットアドレス、ネクストホップＩＰアドレス（例えば、ＩＣＮ  ｏｖｅｒ  ＩＰなど）、ローカルアプリケーション、またはＩＣＮ内の任意の他の可能なネクストホップなどのインターフェースを含むことができる。
【００１７】
プロデューサーは、インタレストパケットの受信に応答して、指定されたデータを生成してそれを「データパケット」としてＩＣＮ全体に送信し得、このデータパケットは、ＩＣＮを通過した元のインタレストパケットとして生成されたペンディングインタレストテーブル（ＰＩＴ）のエントリに基づいてＩＣＮ内のノード間で転送され得る。ＰＩＴ上の各エントリは、要求側のフェース（例えば、インタレストパケットの送信元のフェース）を含み、これにより、データパケットは適切なＰＩＴエントリと照合され、次いで、エントリに格納されている各フェースに転送され得る。各受信フェースは、データパケットがそれぞれのインタレストパケットが生成されたノードに送信されるまで、このプロセス（例えば、適切なＰＩＴエントリに一致し、それに応じて転送する）を繰り返し得る。ＩＣＮのノードの集約されたＦＩＢおよびＰＩＴは、単にフォワーディングプレーンなどと呼ばれることが多い。
【００１８】
前述の自動車の実施例に戻ると、第１の基地局または起点ノードは、ＩＣＮを介してアプリケーションコンテナを要求するインタレストパケットを受信することができる。これに応答して、起点ノードは、アプリケーションコンテナのコピーをデータパケットとしてＩＣＮを介して送信し、要求元の宛先ノードに返信し得る。つまり、アプリケーションは、送信可能なデータオブジェクトとしてＩＣＮによって取り扱われ得る。さらに、送信可能なデータオブジェクトは、アプリケーションのインタレスト（例えば、アプリケーションインタレスト）よって使用されるオブジェクトとして、少なくとも部分的に、共有されるルーティング可能な名前プレフィックスを使用し得る。例えば、アプリケーションインタレストは次のような形式になり得る：〜／ｐｒｅｆｉｘ／ｆｏｒ／ａｐｐ／ｓｏｍｅ／ｃｏｎｔｅｎｔ。並べてみると、コンテナインタレストは次の形式である得る：〜／ｐｒｅｆｉｘ／ｆｏｒ／ａｐｐ／ｍｉｇｒａｔｉｏｎ。各インタレストにはプレフィックスが含まる：〜／ｐｒｅｆｉｘ／ｆｏｒ／ａｐｐ。この結果、転送されたアプリケーションインタレストから構築されるルーティングプレーンを使用して、コンテナインタレストを解決することもできる。
【００１９】
いくつかの実施例において、アプリケーションコンテナのコピーはマニフェストの形式とし得る。例えば、制限を課すのではないが、マニフェストは、構成ファイルおよび複数の「レイヤー」またはアプリケーションイメージ（例えば、メモリスナップショット）を含み得、これらのイメージは、結合的かつ動作可能なコンテナ化されたアプリケーションが構築されるまで重ね合わされ得る。アプリケーションコンテナのコピーが宛先ノードに向かうのと同時に、起点ノードにおけるアプリケーションコンテナは、ＩＣＮからインタレストパケットとして受信された要求を継続して処理し得る。
【００２０】
起点ノードは、アプリケーションコンテナを要求する最終インタレストパケットが受信されると、アプリケーションコンテナをシャットダウンし得る。例えば、レイヤーを含むマニフェストを使用してアプリケーションコンテナを送信する場合、各レイヤーは、それぞれが１つ以上のレイヤーを要求するシーケンシャルインタレストパケットとして反復的に要求され得る。次いで、あらゆる残りのステートが、データパケットとして宛先ノードに送信され得る。いくつかの実施例において、アプリケーションは、処理要求などに応答して、またはその一部分として、内部ステートなどを更新し得る。アプリケーションが移行している間に継続して要求を処理する結果、アプリケーションコンテナのコピーを送信するときのアプリケーションステートは、起点ノードがアプリケーションをシャットダウンする準備ができているときのアプリケーションステートと異なり得る。データ損失を伴わずにシームレスなサービスを保証するために、ステートの変化は、例えば、追加のマニフェストレイヤーなどとして宛先ノードに送信され得る。
【００２１】
いくつかの実施例において、２つのチャネルが、ＩＣＮを横断するために設定され得る。第１のチャネルは、起点ノードから宛先ノードへのアプリケーションコンテナの移行経路を設定し得る。この第１のチャネルは、アプリケーションコンテナ自体のインタレストパケット、またはコンテナインタレストのためのものとし得、宛先ノードまたはハイパーバイザーと起点ノードまたはハイパーバイザーとをリンクし得る。さらに、２つのチャネルは、前述のような、共有プレフィックス命名スキームから生じる共有フォワーディングプレーンによって暗黙的に定義することができる。実際には、２つのチャネルは、フォワーディングプレーンなどの追加のステートを管理することなく維持することができる。
【００２２】
第１のチャネルは、チャネルエンドポイント間でのアプリケーションコンテナのイメージの通過を容易にし得る。一実施例において、マニフェストベースのＩＣＮ交換を使用することができる。アプリケーションコンテナのベースイメージ（例えば、ディスクに格納されているバイナリファイルおよび構成ファイルを含む）および現在のイメージ（例えば、ランダムアクセスメモリ（ＲＡＭ）のステートなど）は、データパケットとして宛先ノードに反復的に送信することができる。
【００２３】
これに対して、第２のチャネルは、例えば、前述の実施例から、自動車などのＭＥＣデバイスからのＩＣＮを通る要求経路を設定することができる。第２のチャネルは、移行プロセス全体を通じてサービスを継続するために、ＭＥＣデバイスから起点ノード上のアプリケーションにインタレストパケットを搬送することができる。つまり、アプリケーションインタレストは、第２のチャネルを介してＩＣＮを通過し得る。
【００２４】
一実施例において、起点ノードがアプリケーションコンテナのイメージの残りのコンポーネントを含む最後のデータパケットを送信すると、起点ノードは元のコンテナを終了させることができる。さらに、アプリケーションインタレストパケットとして起点ノードによって受信されたあらゆる要求は、次いで、移行されたアプリケーション（例えば、宛先ノードにおいて完了したアプリケーション）への後の送信のために、バッファ（例えば、起点バッファノード）に格納され得る。
【００２５】
宛先ノードがコンテナイメージの残りのコンポーネントを受信すると、移行されたアプリケーションが要求などを処理するためにコンテナを起動し得る。さらに、宛先ノードはＩＣＮのフォワーディングプレーンを更新して、アプリケーションインタレストパケットが確実に提供されるようにすることができる。いくつかの実施例において、宛先ノードは、適切なフェースおよび／またはプレフィックスを用いてフォワーディングプレーンを更新するために使用することができる「Ｍａｐ−Ｍｅ」プロトコルなどを送信する。
【００２６】
一実施例において、起点ノードに格納されたバッファリングされたアプリケーションインタレストパケットは、宛先ノードからのフォワーディングプレーン更新を受信したことに応答して、宛先ノードに送信され得る。実際には、更新の受信は、移行されたアプリケーションにアプリケーションインタレストパケットを転送するための適切なフェースを起点ノードに通知し得る。
【００２７】
いくつかの実施例において、（例えば、宛先ノードバッファを含めることによって）宛先ノードは、アプリケーションが移行の途中である間に受信したアプリケーションインタレストをバッファリングし得る。このような場合、および／または要求の順序がアプリケーションの実行の要因である場合（例えば、各要求がアプリケーションの内部ステートに依存し、各要求がアプリケーションの内部ステートなども変更する場合）、宛先ノードにおけるバッファは、起点ノードからバッファを受け取り、そのバッファを適切な順序にマージし得る。
【００２８】
さらに、要求（例えば、アプリケーションインタレスト）のリターン経路は、適切な配信を確実にするために更新することができ、例えば、要求は第１のノードを介して発信されたが、自動車が基地局カバレッジなどの間を通過するときに要求を送信する場合など、第２のノードを介して受信されることになる。ＩＣＮなどの一部のネットワーク構成において、送信元アドレスを含まない要求がさらに困難になるため、これは特に困難なシナリオになる可能性がある。一実施例において、分岐アプローチを使用して、要求のリターン経路を適切に更新することができる。
【００２９】
起点ノードは、移行されたアプリケーションのＰＩＴエントリのコピーを宛先ノードに送信し得る。いくつかの実施例において、これは、バッファリングされたインタレストパケットの前に送信され得、したがって、起点ノードからのバッファリングされたアプリケーションインタレストパケットが受信されるまで、他の任意方法で、受信されたアプリケーションインタレストパケットの処理を停止する指示を宛先ノードにさらに提供し得る。次いで、受信したＰＩＴエントリは宛先ノードのＰＩＴにマージされ得、仮想ループバックフェースを使用して、応答を宛先ノードのコンテンツストアに格納するか、または要求元のＭＥＣデバイス（例えば、自動車）に送出し得る。
【００３０】
さらに、起点ノードは、起点ノードＰＩＴ上のあらゆる未充足のエントリに対して、その宛先ノードにフラグ付きアプリケーションインタレストを送信し得る。フラグ付きアプリケーションインタレストには、オン−パスルータ（例えば、インタレストパケットの転送に使用されるルータ）の更新手順を含む追加のコンテンツを組み込み得る。
【００３１】
各ルータにおいて、フラグ付きアプリケーションインタレストパケットに対してＰＩＴエントリが存在しない場合、フラグ付きアプリケーションインタレストは、他のあらゆるインタレストと同じように（例えば、非フラグ付きアプリケーションインタレストとして）処理され得る。つまり、フラグ付きアプリケーションインタレストに新しいＰＩＴエントリが追加され得、次いで、ルータはＦＩＢに従って、フラグ付きアプリケーションインタレストを新しいフェースに転送する。
【００３２】
フラグ付きアプリケーションインタレストパケットに対してＰＩＴエントリが存在する場合は、次いで、ＦＩＢは、２つのアクションコースのどちらを実行できるかを判断するために調査され得る。一致するＰＩＴエントリが、更新されたＦＩＢエントリと同一のフェースを含む場合、ＰＩＴエントリは削除され得、フラグ付きアプリケーションインタレストが（ＦＩＢに従って）転送され得る。このようにして、古くなったエントリは、宛先ノードに転送されるそれぞれのアプリケーションインタレストパケットと一致するため、各ルータＰＩＴから削除され得る。
【００３３】
代替的に、ＰＩＴエントリが存在し、更新されたＦＩＢエントリが別のフェースを示す場合、フラグ付きアプリケーションインタレストは単にＦＩＢに従って転送され、ルータＰＩＴは変更されない。実際には、この「不一致」は、無関係のアプリケーションインタレストパケットであること（例えば、現在宛先ノードのバッファにあるなど）を示しており、すでに正しいステートにある。
【００３４】
更新された経路を知るための前述の方策は、宛先ノードからのＩＣＮ更新によって生成された送信経路を使用することによって（例えば、Ｍａｐ−Ｍｅなどを介して）常に安定した性能および低ネットワークオーバーヘッドを提供することができる。実際には、未選択の経路は調査されないため、ネットワーク計算時間および帯域幅の使用が不必要に浪費されることはない。このことは、ＭＥＣデバイスのコンテキストにおいて、トポロジ的に離れたノード間で移行が発生し得、したがってノード間の未選択の経路が多数存在し得るため、メリットが大きくなり得る。いくつかの実施例において、バッファリングされたアプリケーションインタレストパケットのすべては、例えば、関連するすべてのサフィックス、名前などを含む１つのインタレストパケットを宛先ノードに送信することによって、単一のインタレストパケットに集約することができる。
【００３５】
図１Ａ〜図１Ｂは両方とも、ホスティングされたアプリケーションがネットワークノード間で送信または移行され得る動作環境１００を示す。例えば、移行は、ホスティングされたアプリケーションにアクセスするユーザーが物理ノード間を移動するときに発生し得る。いくつかの実施例において、移行は、ユーザーがネットワークスライス間でサービスを移動するときに発生し得る。ネットワークスライスなどの間を移動する場合、ユーザーと、アクセスされるアプリケーションをホスティングするノードとの間の経路は、仮想的に（例えば、ネットワークグラフ全体にわたるトラバーサル要件などのために）、または物理的に（例えば、ノードまたはサーバが物理的に離れて位置することに起因して）より大きくなる可能性がある。このような場合、ホスティングされたアプリケーションをより近接した、仮想または物理的なノードに移行させることにより、当業者に明らかである他の利点の中でもとりわけ、遅延時間の短縮および／または応答性の向上を提供することができる。
【００３６】
動作環境１００は、モバイルワイヤレスネットワークまたは他の通信ネットワークであり得るネットワーク１０２を含む。ネットワーク１０２は、１つ以上のキャリアまたはサービスプロバイダによって提供することができ、ネットワーク機能などを実行するためのサーバ１０８Ａ〜１０８Ｂを含む。例えば、特定の顧客または顧客グループにサービスを提供するネットワークスライスは、サーバ１０８Ａ〜１０８Ｂにわたってネットワーク１０２内に分散され得る。サーバ１０８Ａ〜１０８Ｂは、例として、限定を課するものではないが、認証およびモビリティ管理機能、セッション管理機能、ポリシー管理機能、および当業者に明らかである他のものなどの１つ以上のネットワーク機能をホスティングすることができる。さらに、いくつかの実施例において、サーバ１０８Ａ〜１０８Ｂは、ファイルストレージなどの他のサービスをさらに提供し得る。
【００３７】
サーバ１０８Ａ〜１０８Ｂは、ネットワーク１０２全体にわたって、および様々な基地局１０４Ａ〜１０４Ｃと相互通信し得る。いくつかの実施例において、ネットワーク１０２、つまりサーバ１０８Ａ〜１０８Ｂおよび基地局１０４Ａ〜１０４Ｃも、情報指向ネットワーク（ＩＣＮ）であり得る。ネットワーク１０２のコンポーネントは、ＩＣＮとして、仮想的にまたは専用ハードウェアを介して、サーバ１０８Ａ〜１０８Ｂによって提供することができる。さらに、いくつかの実施例において、基地局１０４Ａ〜１０４Ｃは、「アプリ」１１０Ａ〜１１０Ｂ、またはソフトウェアアプリケーションをホスティングするための十分なコンピューティング能力を有し得る。アプリ１１０Ａ〜１１０Ｂは同一のアプリケーションであるが、アプリ１００Ａは移行前のアプリケーション、つまり起点ノード上に展開されたものであり、アプリ１１０Ｂは移行後の同一のアプリケーション、つまり宛先ノード上に展開されたものであると解される。
【００３８】
アプリ１１０Ａ〜１１０Ｂは、あらゆるホスティングされたアプリケーションとすることができる。ローカルアプリケーションと比較して、ホスティングされたアプリケーションは、基地局１０４Ａなどのリモートプロバイダ上で実行され、当業者に明らかであるように、モバイルデバイス、ウェブ端末、ラップトップなどを介してユーザーがアクセスすることができる。図１Ａ〜図１Ｂは、基地局１０４Ａ〜１０４Ｂをホスティングアプリ１１０Ａ〜１１０Ｂとして示しているが、いくつかの実施例では、サーバ１０８Ａ〜１０８Ｂまたはアプリ１１０Ａ〜１１０Ｂをホスティングしている基地局１０４Ｃを含み得る。一般に、十分なコンピューティング能力およびネットワークリンケージを備えたノードが、ソフトウェアアプリケーションをホスティングまたはそれにサービスを提供することができる。
【００３９】
一実施例として、限定を課すものではないが、アプリ１１０Ａは、自動車１０６にナビゲーションサポートを提供し得る。ここで、自動車１０６は、道路１１２に沿って移動し、その結果、基地局１０４Ａ〜１０４Ｃの間を順次通過する。遅延の影響を受けやすいアプリケーションの場合、ソフトウェアアプリケーションがそれぞれのユーザーに対して最も近い受信送信ノードにおいて存在を維持する場合があり得る。例えば、アプリ１１０Ａ〜１１０Ｂは、自動車１０６が基地局１０４Ａへのしきい値近傍から出て、基地局１０４Ｂへのしきい値近傍に入るときに、基地局１０４Ａ〜１０４Ｂ間を移行し得る。
【００４０】
移行は、例えば、自動車１０６からの信号を受信し処理している基地局１０４Ａ〜１０４Ｃとの間の切替器によって開始させることができる。例えば、自動車１０６が基地局１０４Ａとの一次接触を維持している間、アプリ１１０Ａ〜１１０Ｂからのサービスを要求する自動車１０６からのあらゆる信号は、受信する基地局１０４Ａによって直ちにサービスを提供され得る。ただし、自動車１０６が基地局１０４Ｂによって制御されるサービスエリア（例えば、一次接触のために基地局１０４Ｂ）に移行すると、アプリ１１０Ａ〜１１０Ｂのサービス要求は、最初に、基地局１０４Ａ上にホスティングされたアプリ１１０Ａにルーティングされ得、それによって、基地局１０４Ｂは、自動車１０６から、基地局１０４Ａ上のアプリ１１０Ａに向かうサービス要求を受信することができる。これにより、いくつかの実施例において、アプリ１１０Ａ〜１１０Ｂの基地局１０４Ｂへの移行が開始され得、その結果、自動車１０６からのサービス要求は、（移行されたアプリ１１０Ｂをホスティングする）基地局１０４Ｂへのより短い送信およびルーティング距離に起因して応答性が高くなり得る。
【００４１】
いくつかの実施例において、ソフトウェアアプリケーションの変数またはステートは、ノード間で移行中に継続して変化し得る。ここで、アプリ１１０Ａ〜１１０Ｂがナビゲーション支援を提供している場合、アプリ１１０Ａ〜１１０Ｂによって維持されるステートは、例えば、限定を課すものではないが、自動車１０６が道路１１２に沿って移動しているときのその位置情報、選択されたルート、リアルタイム交通情報、推奨ルート、および当業者に明らかである他のそのような情報を含み得る。さらに、アプリ１１０Ａは、アプリ１１０Ａからアプリ１１０Ｂへの要求サーバの移動とともにアプリ１１０Ｂへの移行が発生するときに、車１０６からの要求に継続してサービスを提供し得る。
【００４２】
図２は、アプリ１１０Ａ〜１１０Ｂを基地局１０４Ａから基地局１０４Ｃに移動させるための移行環境２００を示す。アプリ１１０Ａ〜１１０Ｂを基地局１０４Ｂ、または実際にはネットワーク１０２に接続された他の任意の対応可能なノード（例えば、サーバ１０８Ａ〜１０８Ｂなど）に移動するために、同一のプロセスが実行され得ると解される。いくつかの実施例において、移行は、ネットワークイベント（例えば、自動車１０６がルーティングホップのしきい値数などに応じて、基地局１０４Ａによってサービスされるエリアから基地局１０４Ｃに移動する）によって開始され得る。いくつかの実施例において、移行は、当業者に明らかであるように、ユーザー、システムまたはネットワーク管理者、または他のネットワーク参加者からの要求によって開始することができる。
【００４３】
いくつかの実施例において、アプリケーションの移行は、最新のステートでアプリ１１０Ａ〜１１０Ｂを移行する間に、シームレスなサービスを提供する（例えば、移行プロセス全体にわたって継続して要求にサービスを提供する）ために、２つのチャネル２０８、２１０を介して行われることができる。移行チャネル２１０は、コンテナインタレストにサービスを提供し、アプリ１１０Ａ〜１１０Ｂの送信に備え、同時に、サービスチャネル２０８は、アプリケーションインタレストにサービスを提供し、アプリ１１０Ｂがサービスを引き継ぐように配備し準備をしている間に、アプリ１００Ａが要求に継続してサービスを提供することを可能にする。
【００４４】
アプリ１１０Ａ〜１１０Ｂの移行を開始すると、基地局１０４Ｃは、アプリコンテナイメージ２０２のサービス要求を基地局１０４Ａに発信し得る。ネットワーク１０２がＩＣＮであるいくつかの実施例において、サービス要求は、求められるアプリケーションまたはアプリケーションのインスタンス化を指定し得る。ＩＣＮアーキテクチャにおいて、ネットワーク１０２は、サービス要求を、要求を満たすことができるエンドポイント（例えば、アプリ１１０Ａをホスティングする基地局１０４Ａ）に搬送し得る。
【００４５】
アプリコンテナイメージ２０２のサービス要求を受信すると、基地局１０４Ａは、アプリコンテナイメージ２０２を生成し、移行チャネル２１０を介して基地局１０４Ｃに発信することができる。いくつかの実施例において、アプリコンテナイメージ２０２は、構成ファイル２０４および複数のコンテナイメージレイヤー２０６を含む。構成ファイル２０４は、例えば、限定を課すものではないが、ポート設定、メモリ設定、ユーザー設定などのような様々な変数定義および設定を含み得る。コンテナイメージレイヤー２０６は、完成したアプリケーションコンテナイメージを生成するために複数の他のレイヤーがその上に置かれるベースレイヤーを含み得る。いくつかの実施例において、ベースレイヤーはコアオペレーティングシステムまたはカーネルを提供し得、各順次レイヤー化されたコンテナイメージレイヤー２０６はファイル、コンポーネント、および実行可能バイナリマッピングを提供し、これらは、後に「インストール済み」イメージに依存関係などを提供するために順次オーバーレイされる。いくつかの実施例において、コンテナイメージレイヤー２０６の各レイヤーは、アプリ１１０Ｂを生成するために、移行チャネル２１０を介して基地局１０４Ｃに順次発信され得る。
【００４６】
一方、アプリ１１０Ａは、基地局１０４Ｃによって受信され、サービスチャネル２０８を経由してネットワーク１０２を介して基地局１０４Ａに送信される要求に継続してサービスを提供し得る。いくつかの実施例において、移行の一部分または全部について、アプリ１１０Ａは要求へのサービスの提供を停止し得、代わりに基地局１０４Ａは、アプリ１１０Ｂによってサービスを提供されるべき基地局１０４Ｃに後で送信するために、要求のバッファを維持し得る。コンテナイメージレイヤー２０６が基地局１０４Ｃによって完全に受信されると、アプリ１１０Ｂは完全にインスタンス化され得、アプリ１１０Ａはシャットダウンされ、基地局１０４Ａから除去され得る。さらに、基地局１０４Ａによって保持されるアプリ１１０Ａ〜１１０Ｂのバッファリングされたサービス要求は、サービスチャネル２０８または移行チャネル２１０のいずれかを介して、基地局１０４Ｃにおけるアプリ１１０Ｂに送信することができる。
【００４７】
いくつかの実施例において、ＩＣＮ全体で保留中のインタレストテーブル（ＰＩＴ）エントリを更新するために、最終的なバッファリングされた送信がフラグ付きとなり得る。さらに、いくつかの実施例において、アプリ１１０Ｂは、開始されると、ＩＣＮ全体で転送情報ベース（ＦＩＢ）エントリを更新し得る。基地局１０４ＡにおけるＦＩＢ更新の受信は、アプリ１１０Ｂによる処理のために、および基地局１０４Ｃへの経路に沿ったノードにおけるＰＩＴエントリを更新するために、基地局１０４Ａに信号を送ってフラグ付きのバッファリングされた送信を基地局１０４Ｃに送信し得る（以下で図４に関連してさらに説明する）。アプリ１１０Ｂがバッファリングされた送信を受信すると、バッファリングされた送信は、受信された順序でアプリ１１０Ｂによって処理され得る。いくつかの実施例において、例えば、サービス要求処理の順序が要求自体の処理にとって重要または必要である場合、アプリ１１０Ｂは、アプリ１１０Ａからの要求バッファを待ち受けているときに、受信した要求をバッファリングし得る。
【００４８】
例えば、アプリ１１０Ａ〜１１０Ｂなどのアプリケーションコンテナは、限定を課すわけではないが、図３に示されるように、方法３００により、移行することができる。方法３００は、例えば、ネットワーク１０２などを介して実行され得る。いくつかの実施例において、方法３００は、例えば、基地局１０４Ａ〜１０４Ｃの間を移動する自動車１０６によって開始され得、これら基地局は、ネットワークグラフ内のノードまたは他の位相的抽象化されたものなどとして表すことができる。
【００４９】
例えば、自動車１０６が基地局１０４Ａの送信範囲から基地局１０４Ｂの送信範囲に移動する場合、宛先ノードである基地局１０４Ｂは、ナビゲーションアプリケーションなどのサービス要求の形態で、自動車１０６からアプリケーション（例えば、アプリ１１０Ａ）のインタレストまたはサービス要求を受信し得る。その結果、起点ノードは、次いで、宛先ノードからアプリケーションコンテナインタレストを受信し得る（オペレーション３０２）。つまり、宛先ノードは、（例えば、サービス要求のルーティングなどと比較して）起点ノードからアプリケーション自体を要求することができる。
【００５０】
アプリケーションコンテナインタレストを受信すると、起点ノードは、後処理のためにさらなるアプリケーションインタレストをバッファリングすることができる（オペレーション３０４）。実際には、バッファは、特殊なペンディングインタレストテーブル（ＰＩＴ）またはＰＩＴの切片とし得る。いくつかの実施例において、例えば、サービスチャネル２１０を介して受信されたあらゆるインタレストは、アプリケーションが正常に移行された後の後処理のためにバッファリングされ得る。
【００５１】
次いで、起点ノードは、コンテナマニフェストを使用して、ネットワーク（例えば、ネットワーク１０２）を介してコンテナイメージのコピーを宛先ノードに送信することができる（オペレーション３０６）。いくつかの実施例において、コンテナマニフェストは、（上記のように）構成ファイルおよび複数のイメージレイヤーを含み得る。いくつかの実施例において、コンテナイメージを送信することは、例えば、宛先ノードにおける空のコンテナを作成するための構成ファイルを最初に送信することによって、反復的に行われ得る。次いで、ベースレイヤーが送信され空のコンテナに展開してから、順次ファイルイメージレイヤーを送信し、コンテナイメージの完全なコピーを生成するために、宛先ノードでコンテナ内に反復的にオーバーレイされ得る。
【００５２】
いくつかの実施例において、各コンテナファイルイメージレイヤーの展開が成功するたびに、宛先ノードがコンテナインタレストを（例えば、移行チャネル２１０を介して）送信し得る。結果的に、最後のコンテナインタレストが起点ノードによって受信されると、起点ノードにおけるアプリケーションコンテナがシャットダウンされ得る（オペレーション３０８）。いくつかの実施例において、例えば、制限を課すわけではないが、サイドコンテナ、構成ファイル、ユーザー変数など、様々な「ステート」が、起点ノードにおけるアプリケーションコンテナに関連付けられ得る。あらゆる残りのステートが、起点ノードから宛先ノードに送信され得る（オペレーション３１０）。
【００５３】
宛先ノードは、残りのステートを受信し、それに応答して、例えば、ネットワーク１０２全体にわたってルーティングプレーン情報を更新し得る（オペレーション３１２）。いくつかの実施例において、残りのステートは、例えば、アプリケーションコンテナの最新のＲＡＭイメージ（例えば、プロセスの現在のステートへのマッピング）などを含むことができる。さらに、いくつかの実施例において、宛先ノードは、例えば、Ｍａｐ−Ｍｅなどのプロトコル、またはグラフまたはネットワーク探索および書き換えルールなどを使用する他のアルゴリズムを介してルーティングプレーンを更新し得る。特に、ＩＣＮなどにおいて、宛先ノードは、例えば、アプリ１１０Ａ〜１１０Ｂに関連するインタレストが移行されたアプリケーションに正しくルーティングされるように、ＩＣＮ内のルータの転送情報ベース（ＦＩＢ）を更新し得る。
【００５４】
いくつかの実施例において、ネットワーク内のルータ（例えば、ＩＣＮ）のペンディング−インタレストテーブル（ＰＩＴ）も、前述のようにＦＩＢが更新されると更新され得る。図４は、例えばアプリ１１０Ａに元々関連付けられていたペンディングインタレストがその関連付けをアプリ１１０Ｂ（例えば、移行されたアプリケーション）に変更できるように、そのような更新を実行するための方法４００を示す。
【００５５】
起点ノードのペンディング−インタレストテーブルは、宛先ノードに移行され得る（オペレーション４０２）。いくつかの実施例において、起点ノードは、例えば、宛先ノードからＦＩＢ更新を（例えば、オペレーション３１２の一部分として）受信すると、移行を起動し得る。いくつかの実施例において、起点ノードのＰＩＴは、例えば、移行チャネル２１０を介して移行し得る。
【００５６】
次いで、起点ノードは、更新されたルータＦＩＢを使用して、未充足のＰＩＴエントリのアプリケーションインタレストを宛先ノードに送信し得る（オペレーション４０４）。いくつかの実施例において、受信ルータがアプリケーションインタレストの受信時に比較および／または更新手順を実行するように、アプリケーションインタレストにフラグを立てることができる。さらに、いくつかの実施例において、後続のオペレーションでルータＰＩＴをより効率的に更新するために、すべての未充足のペンディングアプリケーションインタレストを含む単一のパケットがネットワーク全体にわたって発信され得る。
【００５７】
アプリケーションインタレストを受信するルータは、同一の宛先に対する更新されたＦＩＢエントリに格納されているものと同一のフェース（例えば、ネットワークノードまたはインターフェース、ルータ、基地局など）を指すＰＩＴエントリを削除し得る（オペレーション４０６）。ただし、アプリケーションインタレストを受信するルータが、更新されたＦＩＢエントリとは異なるフェースを指すＰＩＴエントリを含む場合、ＰＩＴエントリを保持し、ＦＩＢエントリに従ってアプリケーションインタレストを転送することができる。つまり、更新されたＦＩＢは、例えば、アプリ１１０Ｂ（例えば、移行されたアプリ１１０Ａ〜１１０Ｂ）に特有のインタレストを方向付ける特定のフェースを指し、これにより、アプリ１１０Ａ（例えば、「事前移行された」アプリ１１０Ａ〜１１０Ｂ）を対象とするＰＩＴエントリは、移行されたアプリケーションの特定のフェースにリダイレクトされることになる。
【００５８】
また、アプリケーションインタレストを受信するルータは、ルータＰＩＴに存在しない、送信されたアプリケーションインタレストに関連するＰＩＴエントリを追加し得る（オペレーション４０８）。実際には、これによりルータのＰＩＴをネットワークの現在のステートに更新する。移行によってネットワーク経路が変化するいくつかの実施例において、一部のルータ（および関連するＰＩＴ）はもはやネットワーク経路に沿っていなくてもよく、いくつかの他のルータが、移行されたアプリケーションに効率的なルートを提供するように、ネットワーク経路に新たに追加され得る。ネットワークのＰＩＴエントリが更新されると、ネットワーク全体が、ＰＩＴおよびＦＩＢの両方において、移行されたアプリケーションへの正しい経路を正確に反映し得る。
【００５９】
図５に示されるシステムは、本開示の１つの特定のネットワークデバイスであるが、本明細書における概念が実装できる唯一のネットワークデバイスアーキテクチャであることを意味するものではない。例えば、通信およびルーティング計算などを処理する単一のプロセッサを有するアーキテクチャを使用することができる。さらに、他のタイプのフェースおよび媒体もまた、ネットワークデバイス５００とともに使用することができる。
【００６０】
ネットワークデバイスの構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング関数のための汎用ネットワーク操作およびメカニズムのためのプログラム命令を格納するように構成された１つ以上のメモリまたはメモリモジュール（メモリ５０６を含む）を使用し得る。プログラム命令は、例えば、オペレーティングシステムおよび／または１つ以上のアプリケーションの操作を制御することができる。また、１つのメモリまたは複数のメモリは、モビリティバインディング、登録、および関連付けテーブルなどのテーブルを格納するように構成され得る。さらに、メモリ５０６は、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【００６１】
ネットワークデバイス５００はまた、ルーティングおよび／またはスイッチング操作を実行するように構成することができる特定用途向け集積回路（ＡＳＩＣ）を含むことができる。ＡＳＩＣは、接続部５１０を介してネットワークデバイス５００内の他のコンポーネントと通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および／またはデータ格納操作などのネットワークデバイス５００による様々なタイプの操作を連携することができる。
【００６２】
図６は、バスなどの接続部６０５を使用して互いに電気的に通信するコンポーネントを含むコンピューティングシステムアーキテクチャ６００を示す。システム６００は、処理ユニット（ＣＰＵまたはプロセッサ）６１０、および、読み出し専用メモリ（ＲＯＭ）６２０およびランダムアクセスメモリ（ＲＡＭ）６２５などのシステムメモリ６１５を含む様々なシステムコンポーネントをプロセッサ６１０に結合するシステム接続部６０５を含む。システム６００は、プロセッサ６１０に直接接続されているか、近接しているか、またはプロセッサ６１０の一部分として統合された高速メモリのキャッシュを含むことができる。システム６００は、プロセッサ６１０による高速アクセスのために、メモリ６１５および／または記憶デバイス６３０からキャッシュ６１２にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ６１０の遅延を回避するという性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ６１０を制御するか、または制御するように構成して、様々なアクションを実行することができる。他のシステムメモリ６１５も同様に利用可能であり得る。メモリ６１５は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ６１０は、任意の汎用プロセッサと、プロセッサ６１０を制御するように構成された記憶デバイス６３０に格納されたサービス１  ６３２、サービス２  ６３４、およびサービス３  ６３６のようなハードウェアまたはソフトウェアサービスと、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサとを含むことができる。プロセッサ６１０は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【００６３】
コンピューティングデバイス６００とのユーザーインタラクションを可能にするために、入力デバイス６４５は、音声用マイク、ジェスチャまたはグラフィック入力用のタッチスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力メカニズムを表すことができる。出力デバイス６３５はまた、当業者に知られている出力メカニズムのうちの１つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザーがコンピューティングデバイス６００と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース６４０は、一般に、ユーザー入力およびシステム出力を統御および管理することができる。特定のハードウェア構成での操作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【００６４】
記憶デバイス６３０は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）６２５、読み取り専用メモリ（ＲＯＭ）６２０、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【００６５】
記憶デバイス６３０は、プロセッサ６１０を制御するためのサービス６３２、６３４、６３６を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。記憶デバイス６３０は、システム接続部６０５に接続することができる。一態様において、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ６１０、接続部６０５、出力デバイス６３５などの必要なハードウェアコンポーネントに関連して、コンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができる。
【００６６】
説明を明確にするために、場合によっては、本技術は、ソフトウェアで具体化される方法におけるデバイス、デバイスコンポーネント、ステップもしくはルーチン、またはハードウェアとソフトウェアの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【００６７】
いくつかの実施例において、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含むことができる。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【００６８】
上記の例による方法は、コンピュータ可読媒体に格納されているか、他の場合にはそれから利用可能であるコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実行するために、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを引き起こすか、あるいは構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能であり得る。コンピュータの実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であり得る。命令、使用される情報、および／または説明された例による方法中に作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたＵＳＢデバイス、ネットワークストレージデバイスなどが含まれる。
【００６９】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および／またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明される機能はまた、周辺機器またはアドインカードで具体化され得る。このような機能は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装することもできる。
【００７０】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【００７１】
本明細書では、本開示の理解を高めるために、多数の実施例が提供される。本開示の特定の一連のステートメントには、以下が含まれる。
【００７２】
ステートメント１：方法が開示され、方法は、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットは宛先ノードへアプリケーションを移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードの間に１つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートは、アプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することと、を含む。
【００７３】
ステートメント２：方法が、前述のステートメント１にしたがって開示され、さらに、起点ノードにおいて、アプリケーションに対する、起点ノードで受信された要求を受信し保持するための起点ノードバッファを生成することと、起点ノードから宛先ノードに中間ネットワークノードを介して、起点ノードバッファを送信することを含む。
【００７４】
ステートメント３：方法が、前述のステートメント２にしたがって開示され、さらに、宛先ノードにおいて、アプリケーションが移行する間に、アプリケーションに対する、宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを含む。
【００７５】
ステートメント４：方法が、前述のステートメント３にしたがって開示され、さらに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージすることを含む。
【００７６】
ステートメント５：方法が、前述のステートメント４にしたがって開示され、マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる。
【００７７】
ステートメント６：方法が、前述のステートメント１〜５のいずれかにしたがって開示され、ネットワークのルーティングプレーンを更新することが、起点ノードから宛先ノードに、アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための１つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するためのルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちの少なくとも１つを実行することとを含む。
【００７８】
ステートメント７：方法が、前述のステートメント１〜６のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットが、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する。
【００７９】
ステートメント８：システムが開示され、システムは、ハードウェアプロセッサと、命令を含むメモリであって、命令はハードウェアプロセッサによって実行されると、プロセッサに、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットは、アプリケーションを宛先ノードに移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードとの間に１つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、アプリケーションコンテナのコピーを送信することと、起点ノードにおいて、アプリケーションコンテナをシャットダウンすることと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートはアプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することとを行わせるメモリ、とを備える。
【００８０】
ステートメント９：システムが、前述のテートメント８にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、起点ノードにおいて、アプリケーションに対する、起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、起点ノードから宛先ノードに、中間ネットワークノードを介して起点ノードバッファを送信することとを行わせる。
【００８１】
ステートメント１０：システムが、前述のステートメント９にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、宛先ノードにおいて、プリケーションが移行する間に、アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる。
【００８２】
ステートメント１１：システムが、前述のステートメント１０にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージさせる。
【００８３】
ステートメント１２：システムが、前述のステートメント１１にしたがって開示され、マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる。
【００８４】
ステートメント１３：システムが、前述のステートメント８〜１２のいずれかにしたがって開示され、システムは、起点ノードから前宛先ノードに、アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための１つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するための前記ルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか１つを実行することとを含む。
【００８５】
ステートメント１４：システムが、前述のステートメント８〜１３のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットは、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットとルーティングプレーンおよび命名規則を共有する。
【００８６】
ステートメント１５：非一時的コンピュータ可読媒体が開示され、非一時的コンピュータ可読媒体は命令を含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットはアプリケーションを宛先ノードに移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードの間に１つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、アプリケーションコンテナのコピーを送信することと、起点ノードにおいて、アプリケーションコンテナをシャットダウンすることと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートはアプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することとを行わせる。
【００８７】
ステートメント１６：非一時的コンピュータ可読媒体が、前述のステートメント１５にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、ネットワークデバイスによって実行されると、ネットワークデバイスに、起点ノードにおいて、アプリケーションに対する、起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、中間ネットワークノードを介して起点ノードから宛先ノードに、起点ノードバッファを送信することとを行わせる。
【００８８】
ステートメント１７：非一時的コンピュータ可読媒体が、前述のステートメント１６にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、宛先ノードにおいて、アプリケーションが移行する間に、アプリケーションに対する、宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる。
【００８９】
ステートメント１８：非一時的コンピュータ可読媒体が、前述のステートメント１７にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージすることであって、マージされたバッファは受信時間にしたがって順序付けられる、マージすることを行わせる。
【００９０】
ステートメント１９：非一時的コンピュータ可読媒体が、前述のステートメント１５〜１８のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットが、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの１つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する。
【００９１】
ステートメント２０：非一時的コンピュータ可読媒体が、前述のステートメント１５〜１９のいずれかにしたがって開示され、起点ノードから宛先ノードに、アプリケーションコンテナのための１つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための１つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、１つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するためのルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか１つを実行することとを含む。
【００９２】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報を使用したが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、かかる例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および／または方法ステップの例に固有の言語で説明されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの説明された特徴または行為に限定されないことを理解されたい。例えば、かかる機能は、ここで特定されている構成要素以外の構成要素で、異なって配布し、または実行することができる。むしろ、説明された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。
【００９３】
「少なくとも１つ」のセットと記載される特許請求項の文言は、セットの１つのメンバーまたはセットの複数のメンバーが特許請求項を満たしていることを示す。例えば、「ＡおよびＢのうちの少なくとも１つ」と記載される特許請求項の文言は、Ａ、Ｂ、またはＡおよびＢを意味する。
【図１Ａ】
2021536627.tif 000003
【図１Ｂ】
2021536627.tif 000004
【図２】
2021536627.tif 000005
【図３】
2021536627.tif 000006
【図４】
2021536627.tif 000007
【図５】
2021536627.tif 000008
【図６】
2021536627.tif 000009
【国際調査報告】
2021536627.tif 000010
2021536627.tif 000011