(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-21
(45)【発行日】2023-08-29
(54)【発明の名称】ライブステートフルコンテナを移行するためのシステムおよび方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20230822BHJP
H04L 45/02 20220101ALI20230822BHJP
【FI】
G06F9/50 150Z
H04L45/02
(21)【出願番号】P 2021512221
(86)(22)【出願日】2019-09-06
(86)【国際出願番号】 US2019050031
(87)【国際公開番号】W WO2020055694
(87)【国際公開日】2020-03-19
【審査請求日】2022-05-02
(32)【優先日】2018-09-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】エンゲハルト,マルセル ポール ソステネ
(72)【発明者】
【氏名】デムソー,ヨアン
(72)【発明者】
【氏名】オージュ,ジョルダン
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2012-088863(JP,A)
【文献】特開2018-088134(JP,A)
【文献】山中 広明,エッジコンピューティングにおけるスケーラブルなサービスマイグレーションの検討,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2018年04月12日,第118巻,第8号,pp.35-40
【文献】朝枝 仁,ネットワーク技術,コンピュータソフトウェア,日本,一般社団法人日本ソフトウェア科学会,2016年07月25日,第33巻,第3号,pp.3-15
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
H04L 45/02
(57)【特許請求の範囲】
【請求項1】
情報指向ネットワークを介して
宛先ノードから送信される、アプリケーションコンテナのインタレストパケットを
、起点ノードによって受信することであって、前記インタレストパケットは前記アプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に1つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは、前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを含む、方法。
【請求項2】
前記起点ノードにおいて、アプリケーションに対する、前記起点ノードで受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して、前記起点ノードバッファを送信することとをさらに含む、請求項1に記載の方法。
【請求項3】
前記宛先ノードにおいて、前記アプリケーションが移行している間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することをさらに含む、請求項2に記載の方法。
【請求項4】
前記宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることをさらに含む、請求項3に記載の方法。
【請求項5】
前記マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる、請求項4に記載の方法。
【請求項6】
前記ネットワークの前記ルーティングプレーンを更新することが、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための1つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちの少なくとも1つを実行することとを含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記アプリケーションコンテナの前記インタレストパケットが、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項1~6のいずれか一項に記載の方法。
【請求項8】
ハードウェアプロセッサと、
命令を含むメモリであって、前記命令は前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
情報指向ネットワークを介して
宛先ノードから送信される、アプリケーションコンテナのインタレストパケットを
、起点ノードによって受信することであって、前記インタレストパケットは前記アプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に1つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを行わせるメモリと、を備える、システム。
【請求項9】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記起点ノードにおいて、前記アプリケーションに対する、前記起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して前記起点ノードバッファを送信することとを行わせる、請求項8に記載のシステム。
【請求項10】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記宛先ノードにおいて、前記アプリケーションが移行する間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる、請求項9に記載のシステム。
【請求項11】
前記メモリが、命令をさらに含み、前記命令は、前記ハードウェアプロセッサによって実行されると、前記プロセッサに、
前記宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることを行わせる、請求項10に記載のシステム。
【請求項12】
前記マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間に従って順序付けられる、請求項11に記載のシステム。
【請求項13】
前記ネットワークの前記ルーティングプレーンを更新することが、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための前記1つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、または前記フラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか1つを実行することとを含む、請求項8~12のいずれか一項に記載のシステム。
【請求項14】
前記アプリケーションコンテナの前記インタレストパケットは、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項8~12のいずれか一項に記載のシステム。
【請求項15】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
情報指向ネットワークを介して
宛先ノードから送信される、アプリケーションコンテナのインタレストパケットを
、起点ノードによって受信することであって、前記インタレストパケットはアプリケーションを宛先ノードに移行するための要求を含み、前記情報指向ネットワークは前記起点ノードと前記宛先ノードとの間に1つ以上の中間ネットワークノードを含む、受信することと、
前記中間ネットワークノードを介して前記宛先ノードに、前記アプリケーションコンテナのコピーを送信することと、
前記起点ノードにおいて、前記アプリケーションコンテナをシャットダウンすることと、
前記中間ネットワークノードを介して前記宛先ノードに、残りのコンテナステートを送信することであって、前記残りのコンテナステートは前記アプリケーションコンテナの前記コピーの送信中に発生する前記アプリケーションのランタイムへの変更を含む、送信することと、
前記宛先ノードへの前記アプリケーションコンテナのネットワークトラフィックをルーティングするための前記ネットワークのルーティングプレーンを、前記宛先ノードによって更新することとを行わせる、非一時的コンピュータ可読媒体。
【請求項16】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
前記起点ノードにおいて、前記アプリケーションに対する、前記起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、
前記起点ノードから前記宛先ノードに、前記中間ネットワークノードを介して前記起点ノードバッファを送信することとを行わせる、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
前記宛先ノードにおいて、前記アプリケーションが移行する間に、前記アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
命令をさらに含み、前記命令は、ネットワークデバイスによって実行されると、前記ネットワークデバイスに、
宛先ノードにおいて、前記起点ノードバッファを前記宛先ノードバッファにマージすることであって、前記マージされたバッファは、受信時間に従って順序付けられる、マージすることを行わせる、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記アプリケーションコンテナの前記インタレストパケットが、前記アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する、請求項15~18のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記ネットワークの前記ルーティングプレーンを更新することは、
前記起点ノードから前記宛先ノードに、前記アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、
前記宛先ノードにおいて、前記アプリケーションコンテナのための1つ以上のテーブルエントリを前記宛先ノードにおけるテーブルにマージすることと、
前記起点ノードからルータに、前記1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、
前記ルータにおいて、前記フラグ付きコピーに一致するルータエントリの削除、前記宛先ノードを参照するための前記ルータエントリの更新、または前記フラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか1つを実行することとを含む、請求項15~19のいずれか一項に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2018年9月13日に出願された「SYSTEM AND METHOD FOR MIGRATING A LIVE STATEFUL CONTAINER」と題された米国非仮特許出願第16/130,824号の利益および優先権を主張するものであり、参照によりその全体が本明細書に明示的に組み込まれる。
【0002】
本技術は、ネットワーク環境におけるコンテナおよびアプリケーションの管理に関する。
【背景技術】
【0003】
コンピューティング能力がネットワーク内のノードにオフロードされるにつれて、ソフトウェアアプリケーションは、アプリケーションのユーザーが遠隔からアクセスする、サーバ、基地局などのデバイス上に、ますますホスティングされる。特に、モバイルユーザーにサービスを提供するホスティングされたアプリケーションは、ユーザーがネットワーク内のアクセスポイント間を移動する際に、サービス要求を維持しなければならないことが多い。多くの場合、遅延および応答性に寄与するその他の要因が最重要であるため、ユーザーに十分なレベルの応答性を維持するために、ホストされているアプリケーションをネットワーク全体にわたって移行する必要がある。ただし、アプリケーションは、さらなる遅延およびサービスの中断を回避するために、移行中に要求をサービスし続けなければならないことが多い。情報指向ネットワークおよびその他のアーキテクチャにおいて、移行作業中に永続的で中断のないサービスを維持することは実質的に困難である。
【図面の簡単な説明】
【0004】
本開示の上記および他の利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定すると見なされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【0005】
【
図1A】本技術の様々な実施形態による、例示的な動作環境を示す。
【
図1B】本技術の様々な実施形態による、例示的な動作環境を示す。
【
図2】本技術の様々な実施形態による、例示的なネットワーク環境およびバックエンドを示す。
【
図3】本技術の様々な実施形態による、ネットワークを介してコンテナを移行するための例示的な方法を示す。
【
図4】本技術の様々な実施形態による、ネットワークのルーティングプレーンを更新するための例示的な方法を示す。
【
図5】本技術の様々な実施形態による、例示的なネットワークデバイスを示す。
【
図6】本技術の様々な実施形態による、例示的なコンピューティングデバイスを示す。
【0006】
例示的な実施形態の説明
本開示の様々な実施形態について、以下で詳細に考察する。特定の実装形態について考察するが、これは例証のみを目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から離れることなく、他の構成要素および構成を使用することができることを認識するであろう。したがって、以下の説明および図面は例示的なものであり、限定的なものとして解釈されるべきではない。本開示の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、特定の例において、説明を曖昧にすることを避けるために、周知の内容、つまり従来技術の内容は説明されていない。本開示における一実施形態または実施形態への参照は、同一の施形態または任意の実施形態への参照であり得、このような参照は、実施形態の少なくとも1つを意味する。
【0007】
「一実施形態」または「実施形態」への参照は、実施形態に関連して記載された特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態において」という語句の出現は、必ずしもすべてが同一の実施形態を指すわけではなく、他の実施形態を相互に排除する別個のまたは代替の実施形態でもない。さらに、いくつかの実施形態によって示され、他の実施形態によって示されない場合もある、様々な特徴が記載されている。
【0008】
本明細書で使用される用語は、一般に、本技術において、本開示の文脈内で、および各用語が使用される特定の文脈において、それらの通常の意味を有する。代替の言語および同義語は、本明細書で論じられる用語のいずれか1つ以上に使用されてもよく、用語が本明細書で詳述または論じられるかどうかに特別な意味を置くべきではない。場合によっては、特定の用語に対する同義語が提供される。1つ以上の同義語の詳述は、他の同義語の使用を排除するものではない。本明細書で論じられる任意の用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示または任意の例示的な用語の範囲および意味をさらに制限することを意図するものではない。同様に、本開示は、本明細書に示される様々な実施形態に限定されない。
【0009】
本開示の範囲を限定することを意図することなく、本開示の実施形態による機器、装置、方法、およびそれらに関連する結果の例を以下に示す。タイトルまたはサブタイトルは、読者の便宜のために例で使用される場合があり、開示の範囲を制限するものではないことに留意されたい。別段の定義がない限り、本明細書で使用される技術的および科学的用語は、本開示が関係する当業者によって一般的に理解される意味を有する。矛盾する場合は、定義を含む本明細書が優先される。
【0010】
本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【0011】
概要
ステートフルアプリケーションの移行において、移行中にアプリケーションへのサービス要求を維持することに支障が生じる可能性があり、シームレスに実行することが困難になり得る。例えば、モバイルエッジコンピューティング(MEC)において、「モノのインターネット」(IOT)デバイスなどのデバイスは、ノードによって提供されるアプリケーション(例えば、コンテナ化されたアプリケーションなど)に要求を送信し続けながら、IOTデバイスにサービスを提供するノード間を切り替えることができる。ネットワーク内の各ノードが、現実的にすべての単一アプリケーションを同時にホスティングすることができないため、アプリケーションは、継続して要求を処理するためにノード間を移行し得る。特に、モバイルIOTデバイスについて遅延が懸念される場合、またはそうでなければアプリケーションがノード間などを頻繁に移行する必要がある場合は、ノード間のシームレスでステートフルな移行が望ましくなり得る。
【0012】
本開示技術は、パケット損失を伴わないライブアプリケーションコンテナのステートフルな移行のための当技術分野におけるニーズに対処する。本明細書において、着信要求ストリームにサービスを提供しながら、ネットワーク上のノード間でアプリケーションコンテナを移行するためのシステム、方法、およびコンピュータ可読媒体が開示される。アプリケーションコンテナのインタレストは、ネットワーク上の起点ノードおよび宛先ノードから受信することが可能である。アプリケーションコンテナのコピーは、起点ノードから宛先ノードに送信することが可能である。次いで、起点ノードのアプリケーションコンテナは、シャットダウンされ得、起点ノードにおける残りのコンテナステートが宛先ノードに送信され得る。次いで、宛先ノードは、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするために、ネットワークのルーティングプレーンを更新し得る。
【0013】
例示的な実施形態の説明
一実施例において、コンテナ、仮想マシン(VM)などは、パケット損失を伴わずに情報指向ネットワーク(ICN)上でライブで移行することができる。コンピューティングインフラストラクチャを備えた基地局を含むネットワークについて考える。例えば、5Gネットワークは、例えば、限定を課すものではないが、自動車または自動車内のデバイスなどのMECデバイスにインターネット接続または他のネットワーク接続を提供するための複数の基地局を含み得る。さらに、自動車が基地局間を移動するとき、第1の基地局において提供されるアプリケーションは、第2の基地局において提供され得るか、または自動車とアプリケーションとの通信が(例えば、自動車がその範囲内に移動し得る、第2の基地局またはその他の基地局から)第1の基地局にルーティングされ得るかのいずれかである。
【0014】
ただし、アプリケーションが、例えば、遅延またはスケーラビリティの懸念を有する場合、第2の基地局を経由して、自動車と第1の基地局との通信をルーティングすることにより、収束時間が増大しすぎることが発生する可能性がある。特に、ICNがグローバルルーティングプロトコルを含む場合、ルーティングされる送信の収束時間は、例えば、低遅延アプリケーションなどに非適合であり得る。その結果、アプリケーションは、代わりに、自動車との低遅延接続を維持するために、基地局間で移行され得る。
【0015】
一実施例において、アプリケーションは、基地局間で、およびICN全体にわたって(例えば、ICN内の中間ネットワークノードを介して、および基地局間で)移行することができる。宛先ノード(例えば、第2の基地局)は、アプリケーションコンテナを要求する「インタレストパケット」を起点ノード(例えば、第1の基地局)に発信し得る。例えば、第2の基地局は、自動車が基地局のカバレッジエリア間を横断するときに、第1の基地局で実行されているアプリケーションによって生成されたデータの要求を自動車から受信し得る。この要求(例えば、異なるノードにおいてアプリケーションによって提供されるデータに対する)は、第2の基地局に、第1の基地局からそして第2の基地局自体に、それぞれのアプリケーション(つまり、任意の関連ステートにあるアプリケーションコンテナ)の移行要求を送信させ得る。
【0016】
ICNのコンテキストにおいて、インタレストパケットは、いくつかの指定されたデータの要求を含む。インタレストパケットは、指定されたデータのプロデューサーがインタレストパケットを受信するまで、ICN全体のノード間で転送され得る。ICN内の各ノードは、内部に格納された転送情報ベース(FIB)を使用することによって、インタレストパケットを転送する次のノード(例えば、フェース)を知り得る。FIBは、データを取得するために、プレフィックスまたは名前に関連付けられたフェースのリストを格納し得る。FIBを使用して、インタレストパケットを(例えば、インタレストパケットに含まれる名前または指定されたデータソースを介して)ロンゲストプレフィックスまたは最も一致する名前と照合することにより、インタレストパケットを転送する適切なフェースを特定することができる。フェースは、ネットワークインターフェース、ネクストホップL2イーサネットアドレス、ネクストホップIPアドレス(例えば、ICN over IPなど)、ローカルアプリケーション、またはICN内の任意の他の可能なネクストホップなどのインターフェースを含むことができる。
【0017】
プロデューサーは、インタレストパケットの受信に応答して、指定されたデータを生成してそれを「データパケット」としてICN全体に送信し得、このデータパケットは、ICNを通過した元のインタレストパケットとして生成されたペンディングインタレストテーブル(PIT)のエントリに基づいてICN内のノード間で転送され得る。PIT上の各エントリは、要求側のフェース(例えば、インタレストパケットの送信元のフェース)を含み、これにより、データパケットは適切なPITエントリと照合され、次いで、エントリに格納されている各フェースに転送され得る。各受信フェースは、データパケットがそれぞれのインタレストパケットが生成されたノードに送信されるまで、このプロセス(例えば、適切なPITエントリに一致し、それに応じて転送する)を繰り返し得る。ICNのノードの集約されたFIBおよびPITは、単にフォワーディングプレーンなどと呼ばれることが多い。
【0018】
前述の自動車の実施例に戻ると、第1の基地局または起点ノードは、ICNを介してアプリケーションコンテナを要求するインタレストパケットを受信することができる。これに応答して、起点ノードは、アプリケーションコンテナのコピーをデータパケットとしてICNを介して送信し、要求元の宛先ノードに返信し得る。つまり、アプリケーションは、送信可能なデータオブジェクトとしてICNによって取り扱われ得る。さらに、送信可能なデータオブジェクトは、アプリケーションのインタレスト(例えば、アプリケーションインタレスト)よって使用されるオブジェクトとして、少なくとも部分的に、共有されるルーティング可能な名前プレフィックスを使用し得る。例えば、アプリケーションインタレストは次のような形式になり得る:~/prefix/for/app/some/content。並べてみると、コンテナインタレストは次の形式である得る:~/prefix/for/app/migration。各インタレストにはプレフィックスが含まる:~/prefix/for/app。この結果、転送されたアプリケーションインタレストから構築されるルーティングプレーンを使用して、コンテナインタレストを解決することもできる。
【0019】
いくつかの実施例において、アプリケーションコンテナのコピーはマニフェストの形式とし得る。例えば、制限を課すのではないが、マニフェストは、構成ファイルおよび複数の「レイヤー」またはアプリケーションイメージ(例えば、メモリスナップショット)を含み得、これらのイメージは、結合的かつ動作可能なコンテナ化されたアプリケーションが構築されるまで重ね合わされ得る。アプリケーションコンテナのコピーが宛先ノードに向かうのと同時に、起点ノードにおけるアプリケーションコンテナは、ICNからインタレストパケットとして受信された要求を継続して処理し得る。
【0020】
起点ノードは、アプリケーションコンテナを要求する最終インタレストパケットが受信されると、アプリケーションコンテナをシャットダウンし得る。例えば、レイヤーを含むマニフェストを使用してアプリケーションコンテナを送信する場合、各レイヤーは、それぞれが1つ以上のレイヤーを要求するシーケンシャルインタレストパケットとして反復的に要求され得る。次いで、あらゆる残りのステートが、データパケットとして宛先ノードに送信され得る。いくつかの実施例において、アプリケーションは、処理要求などに応答して、またはその一部分として、内部ステートなどを更新し得る。アプリケーションが移行している間に継続して要求を処理する結果、アプリケーションコンテナのコピーを送信するときのアプリケーションステートは、起点ノードがアプリケーションをシャットダウンする準備ができているときのアプリケーションステートと異なり得る。データ損失を伴わずにシームレスなサービスを保証するために、ステートの変化は、例えば、追加のマニフェストレイヤーなどとして宛先ノードに送信され得る。
【0021】
いくつかの実施例において、2つのチャネルが、ICNを横断するために設定され得る。第1のチャネルは、起点ノードから宛先ノードへのアプリケーションコンテナの移行経路を設定し得る。この第1のチャネルは、アプリケーションコンテナ自体のインタレストパケット、またはコンテナインタレストのためのものとし得、宛先ノードまたはハイパーバイザーと起点ノードまたはハイパーバイザーとをリンクし得る。さらに、2つのチャネルは、前述のような、共有プレフィックス命名スキームから生じる共有フォワーディングプレーンによって暗黙的に定義することができる。実際には、2つのチャネルは、フォワーディングプレーンなどの追加のステートを管理することなく維持することができる。
【0022】
第1のチャネルは、チャネルエンドポイント間でのアプリケーションコンテナのイメージの通過を容易にし得る。一実施例において、マニフェストベースのICN交換を使用することができる。アプリケーションコンテナのベースイメージ(例えば、ディスクに格納されているバイナリファイルおよび構成ファイルを含む)および現在のイメージ(例えば、ランダムアクセスメモリ(RAM)のステートなど)は、データパケットとして宛先ノードに反復的に送信することができる。
【0023】
これに対して、第2のチャネルは、例えば、前述の実施例から、自動車などのMECデバイスからのICNを通る要求経路を設定することができる。第2のチャネルは、移行プロセス全体を通じてサービスを継続するために、MECデバイスから起点ノード上のアプリケーションにインタレストパケットを搬送することができる。つまり、アプリケーションインタレストは、第2のチャネルを介してICNを通過し得る。
【0024】
一実施例において、起点ノードがアプリケーションコンテナのイメージの残りのコンポーネントを含む最後のデータパケットを送信すると、起点ノードは元のコンテナを終了させることができる。さらに、アプリケーションインタレストパケットとして起点ノードによって受信されたあらゆる要求は、次いで、移行されたアプリケーション(例えば、宛先ノードにおいて完了したアプリケーション)への後の送信のために、バッファ(例えば、起点バッファノード)に格納され得る。
【0025】
宛先ノードがコンテナイメージの残りのコンポーネントを受信すると、移行されたアプリケーションが要求などを処理するためにコンテナを起動し得る。さらに、宛先ノードはICNのフォワーディングプレーンを更新して、アプリケーションインタレストパケットが確実に提供されるようにすることができる。いくつかの実施例において、宛先ノードは、適切なフェースおよび/またはプレフィックスを用いてフォワーディングプレーンを更新するために使用することができる「Map-Me」プロトコルなどを送信する。
【0026】
一実施例において、起点ノードに格納されたバッファリングされたアプリケーションインタレストパケットは、宛先ノードからのフォワーディングプレーン更新を受信したことに応答して、宛先ノードに送信され得る。実際には、更新の受信は、移行されたアプリケーションにアプリケーションインタレストパケットを転送するための適切なフェースを起点ノードに通知し得る。
【0027】
いくつかの実施例において、(例えば、宛先ノードバッファを含めることによって)宛先ノードは、アプリケーションが移行の途中である間に受信したアプリケーションインタレストをバッファリングし得る。このような場合、および/または要求の順序がアプリケーションの実行の要因である場合(例えば、各要求がアプリケーションの内部ステートに依存し、各要求がアプリケーションの内部ステートなども変更する場合)、宛先ノードにおけるバッファは、起点ノードからバッファを受け取り、そのバッファを適切な順序にマージし得る。
【0028】
さらに、要求(例えば、アプリケーションインタレスト)のリターン経路は、適切な配信を確実にするために更新することができ、例えば、要求は第1のノードを介して発信されたが、自動車が基地局カバレッジなどの間を通過するときに要求を送信する場合など、第2のノードを介して受信されることになる。ICNなどの一部のネットワーク構成において、送信元アドレスを含まない要求がさらに困難になるため、これは特に困難なシナリオになる可能性がある。一実施例において、分岐アプローチを使用して、要求のリターン経路を適切に更新することができる。
【0029】
起点ノードは、移行されたアプリケーションのPITエントリのコピーを宛先ノードに送信し得る。いくつかの実施例において、これは、バッファリングされたインタレストパケットの前に送信され得、したがって、起点ノードからのバッファリングされたアプリケーションインタレストパケットが受信されるまで、他の任意方法で、受信されたアプリケーションインタレストパケットの処理を停止する指示を宛先ノードにさらに提供し得る。次いで、受信したPITエントリは宛先ノードのPITにマージされ得、仮想ループバックフェースを使用して、応答を宛先ノードのコンテンツストアに格納するか、または要求元のMECデバイス(例えば、自動車)に送出し得る。
【0030】
さらに、起点ノードは、起点ノードPIT上のあらゆる未充足のエントリに対して、その宛先ノードにフラグ付きアプリケーションインタレストを送信し得る。フラグ付きアプリケーションインタレストには、オン-パスルータ(例えば、インタレストパケットの転送に使用されるルータ)の更新手順を含む追加のコンテンツを組み込み得る。
【0031】
各ルータにおいて、フラグ付きアプリケーションインタレストパケットに対してPITエントリが存在しない場合、フラグ付きアプリケーションインタレストは、他のあらゆるインタレストと同じように(例えば、非フラグ付きアプリケーションインタレストとして)処理され得る。つまり、フラグ付きアプリケーションインタレストに新しいPITエントリが追加され得、次いで、ルータはFIBに従って、フラグ付きアプリケーションインタレストを新しいフェースに転送する。
【0032】
フラグ付きアプリケーションインタレストパケットに対してPITエントリが存在する場合は、次いで、FIBは、2つのアクションコースのどちらを実行できるかを判断するために調査され得る。一致するPITエントリが、更新されたFIBエントリと同一のフェースを含む場合、PITエントリは削除され得、フラグ付きアプリケーションインタレストが(FIBに従って)転送され得る。このようにして、古くなったエントリは、宛先ノードに転送されるそれぞれのアプリケーションインタレストパケットと一致するため、各ルータPITから削除され得る。
【0033】
代替的に、PITエントリが存在し、更新されたFIBエントリが別のフェースを示す場合、フラグ付きアプリケーションインタレストは単にFIBに従って転送され、ルータPITは変更されない。実際には、この「不一致」は、無関係のアプリケーションインタレストパケットであること(例えば、現在宛先ノードのバッファにあるなど)を示しており、すでに正しいステートにある。
【0034】
更新された経路を知るための前述の方策は、宛先ノードからのICN更新によって生成された送信経路を使用することによって(例えば、Map-Meなどを介して)常に安定した性能および低ネットワークオーバーヘッドを提供することができる。実際には、未選択の経路は調査されないため、ネットワーク計算時間および帯域幅の使用が不必要に浪費されることはない。このことは、MECデバイスのコンテキストにおいて、トポロジ的に離れたノード間で移行が発生し得、したがってノード間の未選択の経路が多数存在し得るため、メリットが大きくなり得る。いくつかの実施例において、バッファリングされたアプリケーションインタレストパケットのすべては、例えば、関連するすべてのサフィックス、名前などを含む1つのインタレストパケットを宛先ノードに送信することによって、単一のインタレストパケットに集約することができる。
【0035】
図1A~
図1Bは両方とも、ホスティングされたアプリケーションがネットワークノード間で送信または移行され得る動作環境100を示す。例えば、移行は、ホスティングされたアプリケーションにアクセスするユーザーが物理ノード間を移動するときに発生し得る。いくつかの実施例において、移行は、ユーザーがネットワークスライス間でサービスを移動するときに発生し得る。ネットワークスライスなどの間を移動する場合、ユーザーと、アクセスされるアプリケーションをホスティングするノードとの間の経路は、仮想的に(例えば、ネットワークグラフ全体にわたるトラバーサル要件などのために)、または物理的に(例えば、ノードまたはサーバが物理的に離れて位置することに起因して)より大きくなる可能性がある。このような場合、ホスティングされたアプリケーションをより近接した、仮想または物理的なノードに移行させることにより、当業者に明らかである他の利点の中でもとりわけ、遅延時間の短縮および/または応答性の向上を提供することができる。
【0036】
動作環境100は、モバイルワイヤレスネットワークまたは他の通信ネットワークであり得るネットワーク102を含む。ネットワーク102は、1つ以上のキャリアまたはサービスプロバイダによって提供することができ、ネットワーク機能などを実行するためのサーバ108A~108Bを含む。例えば、特定の顧客または顧客グループにサービスを提供するネットワークスライスは、サーバ108A~108Bにわたってネットワーク102内に分散され得る。サーバ108A~108Bは、例として、限定を課するものではないが、認証およびモビリティ管理機能、セッション管理機能、ポリシー管理機能、および当業者に明らかである他のものなどの1つ以上のネットワーク機能をホスティングすることができる。さらに、いくつかの実施例において、サーバ108A~108Bは、ファイルストレージなどの他のサービスをさらに提供し得る。
【0037】
サーバ108A~108Bは、ネットワーク102全体にわたって、および様々な基地局104A~104Cと相互通信し得る。いくつかの実施例において、ネットワーク102、つまりサーバ108A~108Bおよび基地局104A~104Cも、情報指向ネットワーク(ICN)であり得る。ネットワーク102のコンポーネントは、ICNとして、仮想的にまたは専用ハードウェアを介して、サーバ108A~108Bによって提供することができる。さらに、いくつかの実施例において、基地局104A~104Cは、「アプリ」110A~110B、またはソフトウェアアプリケーションをホスティングするための十分なコンピューティング能力を有し得る。アプリ110A~110Bは同一のアプリケーションであるが、アプリ100Aは移行前のアプリケーション、つまり起点ノード上に展開されたものであり、アプリ110Bは移行後の同一のアプリケーション、つまり宛先ノード上に展開されたものであると解される。
【0038】
アプリ110A~110Bは、あらゆるホスティングされたアプリケーションとすることができる。ローカルアプリケーションと比較して、ホスティングされたアプリケーションは、基地局104Aなどのリモートプロバイダ上で実行され、当業者に明らかであるように、モバイルデバイス、ウェブ端末、ラップトップなどを介してユーザーがアクセスすることができる。
図1A~
図1Bは、基地局104A~104Bをホスティングアプリ110A~110Bとして示しているが、いくつかの実施例では、サーバ108A~108Bまたはアプリ110A~110Bをホスティングしている基地局104Cを含み得る。一般に、十分なコンピューティング能力およびネットワークリンケージを備えたノードが、ソフトウェアアプリケーションをホスティングまたはそれにサービスを提供することができる。
【0039】
一実施例として、限定を課すものではないが、アプリ110Aは、自動車106にナビゲーションサポートを提供し得る。ここで、自動車106は、道路112に沿って移動し、その結果、基地局104A~104Cの間を順次通過する。遅延の影響を受けやすいアプリケーションの場合、ソフトウェアアプリケーションがそれぞれのユーザーに対して最も近い受信送信ノードにおいて存在を維持する場合があり得る。例えば、アプリ110A~110Bは、自動車106が基地局104Aへのしきい値近傍から出て、基地局104Bへのしきい値近傍に入るときに、基地局104A~104B間を移行し得る。
【0040】
移行は、例えば、自動車106からの信号を受信し処理している基地局104A~104Cとの間の切替器によって開始させることができる。例えば、自動車106が基地局104Aとの一次接触を維持している間、アプリ110A~110Bからのサービスを要求する自動車106からのあらゆる信号は、受信する基地局104Aによって直ちにサービスを提供され得る。ただし、自動車106が基地局104Bによって制御されるサービスエリア(例えば、一次接触のために基地局104B)に移行すると、アプリ110A~110Bのサービス要求は、最初に、基地局104A上にホスティングされたアプリ110Aにルーティングされ得、それによって、基地局104Bは、自動車106から、基地局104A上のアプリ110Aに向かうサービス要求を受信することができる。これにより、いくつかの実施例において、アプリ110A~110Bの基地局104Bへの移行が開始され得、その結果、自動車106からのサービス要求は、(移行されたアプリ110Bをホスティングする)基地局104Bへのより短い送信およびルーティング距離に起因して応答性が高くなり得る。
【0041】
いくつかの実施例において、ソフトウェアアプリケーションの変数またはステートは、ノード間で移行中に継続して変化し得る。ここで、アプリ110A~110Bがナビゲーション支援を提供している場合、アプリ110A~110Bによって維持されるステートは、例えば、限定を課すものではないが、自動車106が道路112に沿って移動しているときのその位置情報、選択されたルート、リアルタイム交通情報、推奨ルート、および当業者に明らかである他のそのような情報を含み得る。さらに、アプリ110Aは、アプリ110Aからアプリ110Bへの要求サーバの移動とともにアプリ110Bへの移行が発生するときに、車106からの要求に継続してサービスを提供し得る。
【0042】
図2は、アプリ110A~110Bを基地局104Aから基地局104Cに移動させるための移行環境200を示す。アプリ110A~110Bを基地局104B、または実際にはネットワーク102に接続された他の任意の対応可能なノード(例えば、サーバ108A~108Bなど)に移動するために、同一のプロセスが実行され得ると解される。いくつかの実施例において、移行は、ネットワークイベント(例えば、自動車106がルーティングホップのしきい値数などに応じて、基地局104Aによってサービスされるエリアから基地局104Cに移動する)によって開始され得る。いくつかの実施例において、移行は、当業者に明らかであるように、ユーザー、システムまたはネットワーク管理者、または他のネットワーク参加者からの要求によって開始することができる。
【0043】
いくつかの実施例において、アプリケーションの移行は、最新のステートでアプリ110A~110Bを移行する間に、シームレスなサービスを提供する(例えば、移行プロセス全体にわたって継続して要求にサービスを提供する)ために、2つのチャネル208、210を介して行われることができる。移行チャネル210は、コンテナインタレストにサービスを提供し、アプリ110A~110Bの送信に備え、同時に、サービスチャネル208は、アプリケーションインタレストにサービスを提供し、アプリ110Bがサービスを引き継ぐように配備し準備をしている間に、アプリ100Aが要求に継続してサービスを提供することを可能にする。
【0044】
アプリ110A~110Bの移行を開始すると、基地局104Cは、アプリコンテナイメージ202のサービス要求を基地局104Aに発信し得る。ネットワーク102がICNであるいくつかの実施例において、サービス要求は、求められるアプリケーションまたはアプリケーションのインスタンス化を指定し得る。ICNアーキテクチャにおいて、ネットワーク102は、サービス要求を、要求を満たすことができるエンドポイント(例えば、アプリ110Aをホスティングする基地局104A)に搬送し得る。
【0045】
アプリコンテナイメージ202のサービス要求を受信すると、基地局104Aは、アプリコンテナイメージ202を生成し、移行チャネル210を介して基地局104Cに発信することができる。いくつかの実施例において、アプリコンテナイメージ202は、構成ファイル204および複数のコンテナイメージレイヤー206を含む。構成ファイル204は、例えば、限定を課すものではないが、ポート設定、メモリ設定、ユーザー設定などのような様々な変数定義および設定を含み得る。コンテナイメージレイヤー206は、完成したアプリケーションコンテナイメージを生成するために複数の他のレイヤーがその上に置かれるベースレイヤーを含み得る。いくつかの実施例において、ベースレイヤーはコアオペレーティングシステムまたはカーネルを提供し得、各順次レイヤー化されたコンテナイメージレイヤー206はファイル、コンポーネント、および実行可能バイナリマッピングを提供し、これらは、後に「インストール済み」イメージに依存関係などを提供するために順次オーバーレイされる。いくつかの実施例において、コンテナイメージレイヤー206の各レイヤーは、アプリ110Bを生成するために、移行チャネル210を介して基地局104Cに順次発信され得る。
【0046】
一方、アプリ110Aは、基地局104Cによって受信され、サービスチャネル208を経由してネットワーク102を介して基地局104Aに送信される要求に継続してサービスを提供し得る。いくつかの実施例において、移行の一部分または全部について、アプリ110Aは要求へのサービスの提供を停止し得、代わりに基地局104Aは、アプリ110Bによってサービスを提供されるべき基地局104Cに後で送信するために、要求のバッファを維持し得る。コンテナイメージレイヤー206が基地局104Cによって完全に受信されると、アプリ110Bは完全にインスタンス化され得、アプリ110Aはシャットダウンされ、基地局104Aから除去され得る。さらに、基地局104Aによって保持されるアプリ110A~110Bのバッファリングされたサービス要求は、サービスチャネル208または移行チャネル210のいずれかを介して、基地局104Cにおけるアプリ110Bに送信することができる。
【0047】
いくつかの実施例において、ICN全体で保留中のインタレストテーブル(PIT)エントリを更新するために、最終的なバッファリングされた送信がフラグ付きとなり得る。さらに、いくつかの実施例において、アプリ110Bは、開始されると、ICN全体で転送情報ベース(FIB)エントリを更新し得る。基地局104AにおけるFIB更新の受信は、アプリ110Bによる処理のために、および基地局104Cへの経路に沿ったノードにおけるPITエントリを更新するために、基地局104Aに信号を送ってフラグ付きのバッファリングされた送信を基地局104Cに送信し得る(以下で
図4に関連してさらに説明する)。アプリ110Bがバッファリングされた送信を受信すると、バッファリングされた送信は、受信された順序でアプリ110Bによって処理され得る。いくつかの実施例において、例えば、サービス要求処理の順序が要求自体の処理にとって重要または必要である場合、アプリ110Bは、アプリ110Aからの要求バッファを待ち受けているときに、受信した要求をバッファリングし得る。
【0048】
例えば、アプリ110A~110Bなどのアプリケーションコンテナは、限定を課すわけではないが、
図3に示されるように、方法300により、移行することができる。方法300は、例えば、ネットワーク102などを介して実行され得る。いくつかの実施例において、方法300は、例えば、基地局104A~104Cの間を移動する自動車106によって開始され得、これら基地局は、ネットワークグラフ内のノードまたは他の位相的抽象化されたものなどとして表すことができる。
【0049】
例えば、自動車106が基地局104Aの送信範囲から基地局104Bの送信範囲に移動する場合、宛先ノードである基地局104Bは、ナビゲーションアプリケーションなどのサービス要求の形態で、自動車106からアプリケーション(例えば、アプリ110A)のインタレストまたはサービス要求を受信し得る。その結果、起点ノードは、次いで、宛先ノードからアプリケーションコンテナインタレストを受信し得る(オペレーション302)。つまり、宛先ノードは、(例えば、サービス要求のルーティングなどと比較して)起点ノードからアプリケーション自体を要求することができる。
【0050】
アプリケーションコンテナインタレストを受信すると、起点ノードは、後処理のためにさらなるアプリケーションインタレストをバッファリングすることができる(オペレーション304)。実際には、バッファは、特殊なペンディングインタレストテーブル(PIT)またはPITの切片とし得る。いくつかの実施例において、例えば、サービスチャネル210を介して受信されたあらゆるインタレストは、アプリケーションが正常に移行された後の後処理のためにバッファリングされ得る。
【0051】
次いで、起点ノードは、コンテナマニフェストを使用して、ネットワーク(例えば、ネットワーク102)を介してコンテナイメージのコピーを宛先ノードに送信することができる(オペレーション306)。いくつかの実施例において、コンテナマニフェストは、(上記のように)構成ファイルおよび複数のイメージレイヤーを含み得る。いくつかの実施例において、コンテナイメージを送信することは、例えば、宛先ノードにおける空のコンテナを作成するための構成ファイルを最初に送信することによって、反復的に行われ得る。次いで、ベースレイヤーが送信され空のコンテナに展開してから、順次ファイルイメージレイヤーを送信し、コンテナイメージの完全なコピーを生成するために、宛先ノードでコンテナ内に反復的にオーバーレイされ得る。
【0052】
いくつかの実施例において、各コンテナファイルイメージレイヤーの展開が成功するたびに、宛先ノードがコンテナインタレストを(例えば、移行チャネル210を介して)送信し得る。結果的に、最後のコンテナインタレストが起点ノードによって受信されると、起点ノードにおけるアプリケーションコンテナがシャットダウンされ得る(オペレーション308)。いくつかの実施例において、例えば、制限を課すわけではないが、サイドコンテナ、構成ファイル、ユーザー変数など、様々な「ステート」が、起点ノードにおけるアプリケーションコンテナに関連付けられ得る。あらゆる残りのステートが、起点ノードから宛先ノードに送信され得る(オペレーション310)。
【0053】
宛先ノードは、残りのステートを受信し、それに応答して、例えば、ネットワーク102全体にわたってルーティングプレーン情報を更新し得る(オペレーション312)。いくつかの実施例において、残りのステートは、例えば、アプリケーションコンテナの最新のRAMイメージ(例えば、プロセスの現在のステートへのマッピング)などを含むことができる。さらに、いくつかの実施例において、宛先ノードは、例えば、Map-Meなどのプロトコル、またはグラフまたはネットワーク探索および書き換えルールなどを使用する他のアルゴリズムを介してルーティングプレーンを更新し得る。特に、ICNなどにおいて、宛先ノードは、例えば、アプリ110A~110Bに関連するインタレストが移行されたアプリケーションに正しくルーティングされるように、ICN内のルータの転送情報ベース(FIB)を更新し得る。
【0054】
いくつかの実施例において、ネットワーク内のルータ(例えば、ICN)のペンディング-インタレストテーブル(PIT)も、前述のようにFIBが更新されると更新され得る。
図4は、例えばアプリ110Aに元々関連付けられていたペンディングインタレストがその関連付けをアプリ110B(例えば、移行されたアプリケーション)に変更できるように、そのような更新を実行するための方法400を示す。
【0055】
起点ノードのペンディング-インタレストテーブルは、宛先ノードに移行され得る(オペレーション402)。いくつかの実施例において、起点ノードは、例えば、宛先ノードからFIB更新を(例えば、オペレーション312の一部分として)受信すると、移行を起動し得る。いくつかの実施例において、起点ノードのPITは、例えば、移行チャネル210を介して移行し得る。
【0056】
次いで、起点ノードは、更新されたルータFIBを使用して、未充足のPITエントリのアプリケーションインタレストを宛先ノードに送信し得る(オペレーション404)。いくつかの実施例において、受信ルータがアプリケーションインタレストの受信時に比較および/または更新手順を実行するように、アプリケーションインタレストにフラグを立てることができる。さらに、いくつかの実施例において、後続のオペレーションでルータPITをより効率的に更新するために、すべての未充足のペンディングアプリケーションインタレストを含む単一のパケットがネットワーク全体にわたって発信され得る。
【0057】
アプリケーションインタレストを受信するルータは、同一の宛先に対する更新されたFIBエントリに格納されているものと同一のフェース(例えば、ネットワークノードまたはインターフェース、ルータ、基地局など)を指すPITエントリを削除し得る(オペレーション406)。ただし、アプリケーションインタレストを受信するルータが、更新されたFIBエントリとは異なるフェースを指すPITエントリを含む場合、PITエントリを保持し、FIBエントリに従ってアプリケーションインタレストを転送することができる。つまり、更新されたFIBは、例えば、アプリ110B(例えば、移行されたアプリ110A~110B)に特有のインタレストを方向付ける特定のフェースを指し、これにより、アプリ110A(例えば、「事前移行された」アプリ110A~110B)を対象とするPITエントリは、移行されたアプリケーションの特定のフェースにリダイレクトされることになる。
【0058】
また、アプリケーションインタレストを受信するルータは、ルータPITに存在しない、送信されたアプリケーションインタレストに関連するPITエントリを追加し得る(オペレーション408)。実際には、これによりルータのPITをネットワークの現在のステートに更新する。移行によってネットワーク経路が変化するいくつかの実施例において、一部のルータ(および関連するPIT)はもはやネットワーク経路に沿っていなくてもよく、いくつかの他のルータが、移行されたアプリケーションに効率的なルートを提供するように、ネットワーク経路に新たに追加され得る。ネットワークのPITエントリが更新されると、ネットワーク全体が、PITおよびFIBの両方において、移行されたアプリケーションへの正しい経路を正確に反映し得る。
【0059】
図5に示されるシステムは、本開示の1つの特定のネットワークデバイスであるが、本明細書における概念が実装できる唯一のネットワークデバイスアーキテクチャであることを意味するものではない。例えば、通信およびルーティング計算などを処理する単一のプロセッサを有するアーキテクチャを使用することができる。さらに、他のタイプのフェースおよび媒体もまた、ネットワークデバイス500とともに使用することができる。
【0060】
ネットワークデバイスの構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング関数のための汎用ネットワーク操作およびメカニズムのためのプログラム命令を格納するように構成された1つ以上のメモリまたはメモリモジュール(メモリ506を含む)を使用し得る。プログラム命令は、例えば、オペレーティングシステムおよび/または1つ以上のアプリケーションの操作を制御することができる。また、1つのメモリまたは複数のメモリは、モビリティバインディング、登録、および関連付けテーブルなどのテーブルを格納するように構成され得る。さらに、メモリ506は、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【0061】
ネットワークデバイス500はまた、ルーティングおよび/またはスイッチング操作を実行するように構成することができる特定用途向け集積回路(ASIC)を含むことができる。ASICは、接続部510を介してネットワークデバイス500内の他のコンポーネントと通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および/またはデータ格納操作などのネットワークデバイス500による様々なタイプの操作を連携することができる。
【0062】
図6は、バスなどの接続部605を使用して互いに電気的に通信するコンポーネントを含むコンピューティングシステムアーキテクチャ600を示す。システム600は、処理ユニット(CPUまたはプロセッサ)610、および、読み出し専用メモリ(ROM)620およびランダムアクセスメモリ(RAM)625などのシステムメモリ615を含む様々なシステムコンポーネントをプロセッサ610に結合するシステム接続部605を含む。システム600は、プロセッサ610に直接接続されているか、近接しているか、またはプロセッサ610の一部分として統合された高速メモリのキャッシュを含むことができる。システム600は、プロセッサ610による高速アクセスのために、メモリ615および/または記憶デバイス630からキャッシュ612にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ610の遅延を回避するという性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ610を制御するか、または制御するように構成して、様々なアクションを実行することができる。他のシステムメモリ615も同様に利用可能であり得る。メモリ615は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ610は、任意の汎用プロセッサと、プロセッサ610を制御するように構成された記憶デバイス630に格納されたサービス1 632、サービス2 634、およびサービス3 636のようなハードウェアまたはソフトウェアサービスと、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサとを含むことができる。プロセッサ610は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0063】
コンピューティングデバイス600とのユーザーインタラクションを可能にするために、入力デバイス645は、音声用マイク、ジェスチャまたはグラフィック入力用のタッチスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力メカニズムを表すことができる。出力デバイス635はまた、当業者に知られている出力メカニズムのうちの1つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザーがコンピューティングデバイス600と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース640は、一般に、ユーザー入力およびシステム出力を統御および管理することができる。特定のハードウェア構成での操作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【0064】
記憶デバイス630は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)625、読み取り専用メモリ(ROM)620、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0065】
記憶デバイス630は、プロセッサ610を制御するためのサービス632、634、636を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。記憶デバイス630は、システム接続部605に接続することができる。一態様において、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ610、接続部605、出力デバイス635などの必要なハードウェアコンポーネントに関連して、コンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができる。
【0066】
説明を明確にするために、場合によっては、本技術は、ソフトウェアで具体化される方法におけるデバイス、デバイスコンポーネント、ステップもしくはルーチン、またはハードウェアとソフトウェアの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【0067】
いくつかの実施例において、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含むことができる。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0068】
上記の例による方法は、コンピュータ可読媒体に格納されているか、他の場合にはそれから利用可能であるコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実行するために、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを引き起こすか、あるいは構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能であり得る。コンピュータの実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であり得る。命令、使用される情報、および/または説明された例による方法中に作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワークストレージデバイスなどが含まれる。
【0069】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明される機能はまた、周辺機器またはアドインカードで具体化され得る。このような機能は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装することもできる。
【0070】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【0071】
本明細書では、本開示の理解を高めるために、多数の実施例が提供される。本開示の特定の一連のステートメントには、以下が含まれる。
【0072】
ステートメント1:方法が開示され、方法は、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットは宛先ノードへアプリケーションを移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードの間に1つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートは、アプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することと、を含む。
【0073】
ステートメント2:方法が、前述のステートメント1にしたがって開示され、さらに、起点ノードにおいて、アプリケーションに対する、起点ノードで受信された要求を受信し保持するための起点ノードバッファを生成することと、起点ノードから宛先ノードに中間ネットワークノードを介して、起点ノードバッファを送信することを含む。
【0074】
ステートメント3:方法が、前述のステートメント2にしたがって開示され、さらに、宛先ノードにおいて、アプリケーションが移行する間に、アプリケーションに対する、宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを含む。
【0075】
ステートメント4:方法が、前述のステートメント3にしたがって開示され、さらに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージすることを含む。
【0076】
ステートメント5:方法が、前述のステートメント4にしたがって開示され、マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる。
【0077】
ステートメント6:方法が、前述のステートメント1~5のいずれかにしたがって開示され、ネットワークのルーティングプレーンを更新することが、起点ノードから宛先ノードに、アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための1つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するためのルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちの少なくとも1つを実行することとを含む。
【0078】
ステートメント7:方法が、前述のステートメント1~6のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットが、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する。
【0079】
ステートメント8:システムが開示され、システムは、ハードウェアプロセッサと、命令を含むメモリであって、命令はハードウェアプロセッサによって実行されると、プロセッサに、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットは、アプリケーションを宛先ノードに移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードとの間に1つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、アプリケーションコンテナのコピーを送信することと、起点ノードにおいて、アプリケーションコンテナをシャットダウンすることと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートはアプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することとを行わせるメモリ、とを備える。
【0080】
ステートメント9:システムが、前述のテートメント8にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、起点ノードにおいて、アプリケーションに対する、起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、起点ノードから宛先ノードに、中間ネットワークノードを介して起点ノードバッファを送信することとを行わせる。
【0081】
ステートメント10:システムが、前述のステートメント9にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、宛先ノードにおいて、プリケーションが移行する間に、アプリケーションに対する、前記宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる。
【0082】
ステートメント11:システムが、前述のステートメント10にしたがって開示され、メモリは命令をさらに含み、命令は、ハードウェアプロセッサによって実行されると、プロセッサに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージさせる。
【0083】
ステートメント12:システムが、前述のステートメント11にしたがって開示され、マージされた起点ノードバッファおよび宛先ノードバッファのアプリケーション要求が、受信時間にしたがって順序付けられる。
【0084】
ステートメント13:システムが、前述のステートメント8~12のいずれかにしたがって開示され、システムは、起点ノードから前宛先ノードに、アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための1つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するための前記ルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか1つを実行することとを含む。
【0085】
ステートメント14:システムが、前述のステートメント8~13のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットは、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットとルーティングプレーンおよび命名規則を共有する。
【0086】
ステートメント15:非一時的コンピュータ可読媒体が開示され、非一時的コンピュータ可読媒体は命令を含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、情報指向ネットワークを介して起点ノードによって、アプリケーションコンテナのインタレストパケットを受信することであって、インタレストパケットはアプリケーションを宛先ノードに移行するための要求を含み、情報指向ネットワークは起点ノードと宛先ノードの間に1つ以上の中間ネットワークノードを含む、受信することと、中間ネットワークノードを介して宛先ノードに、アプリケーションコンテナのコピーを送信することと、起点ノードにおいて、アプリケーションコンテナをシャットダウンすることと、中間ネットワークノードを介して宛先ノードに、残りのコンテナステートを送信することであって、残りのコンテナステートはアプリケーションコンテナのコピーの送信中に発生するアプリケーションのランタイムへの変更を含む、送信することと、宛先ノードへのアプリケーションコンテナのネットワークトラフィックをルーティングするためのネットワークのルーティングプレーンを、宛先ノードによって更新することとを行わせる。
【0087】
ステートメント16:非一時的コンピュータ可読媒体が、前述のステートメント15にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、ネットワークデバイスによって実行されると、ネットワークデバイスに、起点ノードにおいて、アプリケーションに対する、起点ノードにおいて受信された要求を受信し保持するための起点ノードバッファを生成することと、中間ネットワークノードを介して起点ノードから宛先ノードに、起点ノードバッファを送信することとを行わせる。
【0088】
ステートメント17:非一時的コンピュータ可読媒体が、前述のステートメント16にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、宛先ノードにおいて、アプリケーションが移行する間に、アプリケーションに対する、宛先ノードで受信された要求を受信し保持するための宛先ノードバッファを生成することを行わせる。
【0089】
ステートメント18:非一時的コンピュータ可読媒体が、前述のステートメント17にしたがって開示され、非一時的コンピュータ可読媒体は命令をさらに含み、命令は、ネットワークデバイスによって実行されると、ネットワークデバイスに、宛先ノードにおいて、起点ノードバッファを宛先ノードバッファにマージすることであって、マージされたバッファは受信時間にしたがって順序付けられる、マージすることを行わせる。
【0090】
ステートメント19:非一時的コンピュータ可読媒体が、前述のステートメント15~18のいずれかにしたがって開示され、アプリケーションコンテナのインタレストパケットが、アプリケーションコンテナに対応するアプリケーションによって提供されるサービスの1つ以上のインタレストパケットと、ルーティングプレーンおよび命名規則を共有する。
【0091】
ステートメント20:非一時的コンピュータ可読媒体が、前述のステートメント15~19のいずれかにしたがって開示され、起点ノードから宛先ノードに、アプリケーションコンテナのための1つ以上のテーブルエントリを送信することと、宛先ノードにおいて、アプリケーションコンテナのための1つ以上のテーブルエントリを宛先ノードにおけるテーブルにマージすることと、起点ノードからルータに、1つ以上のテーブルエントリの一部分のフラグ付きコピーを送信することと、ルータにおいて、フラグ付きコピーに一致するルータエントリの削除、宛先ノードを参照するためのルータエントリの更新、またはフラグ付きコピーを含む新しいルータエントリの追加のうちのいずれか1つを実行することとを含む。
【0092】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報を使用したが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、かかる例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの例に固有の言語で説明されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの説明された特徴または行為に限定されないことを理解されたい。例えば、かかる機能は、ここで特定されている構成要素以外の構成要素で、異なって配布し、または実行することができる。むしろ、説明された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。
【0093】
「少なくとも1つ」のセットと記載される特許請求項の文言は、セットの1つのメンバーまたはセットの複数のメンバーが特許請求項を満たしていることを示す。例えば、「AおよびBのうちの少なくとも1つ」と記載される特許請求項の文言は、A、B、またはAおよびBを意味する。