JP2022536787A - ネットワークデータプレーンのエッジデータベース管理 - Google Patents
ネットワークデータプレーンのエッジデータベース管理 Download PDFInfo
- Publication number
- JP2022536787A JP2022536787A JP2021574752A JP2021574752A JP2022536787A JP 2022536787 A JP2022536787 A JP 2022536787A JP 2021574752 A JP2021574752 A JP 2021574752A JP 2021574752 A JP2021574752 A JP 2021574752A JP 2022536787 A JP2022536787 A JP 2022536787A
- Authority
- JP
- Japan
- Prior art keywords
- network
- container
- data
- processor
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000013499 data model Methods 0.000 claims abstract description 45
- 238000004891 communication Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 23
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 5
- 238000012384 transportation and delivery Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 37
- 238000010586 diagram Methods 0.000 description 10
- 230000003936 working memory Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012913 prioritisation Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/24—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5022—Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0233—Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ネットワークデータプレーン管理用の新規のツールおよび手法が提供される。システムが、データベースと、プロセッサと、プロセッサにより実行可能な命令を含む非一時的なコンピュータ可読媒体とを有するホストマシンを含み、プロセッサは、データベースを介してネットワーク設定を取得することと、ネットワーク設定に従ってコンテナを生成することであって、コンテナは、ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、ネットワークインタフェースを介して、コンテナと関連付けられた入力データを受信することであって、入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、データベースによって、入力データに添付された1つまたは複数の添付済みのネットワークデータ属性を、ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することとを行う。
Description
[関連出願の相互参照]
本願は、Ronald A. Lewisらによる2019年7月26日出願の「Edge Database Management of the Network Data Plane」と題する米国特許出願第16/523,741号(代理人整理番号:1541-US-U1)に基づく優先権を主張し、当該米国特許出願は、Ronald A. Lewisらによる2019年6月19日出願の「Edge Database Management of the Network Data Plane」と題する米国仮特許出願第62/863,702号(代理人整理番号:1541-US-P1)に基づく優先権を主張する。両者の開示全体は、いかなる目的に対してもその全体が参照により本明細書に組み込まれる。
本願は、Ronald A. Lewisらによる2019年7月26日出願の「Edge Database Management of the Network Data Plane」と題する米国特許出願第16/523,741号(代理人整理番号:1541-US-U1)に基づく優先権を主張し、当該米国特許出願は、Ronald A. Lewisらによる2019年6月19日出願の「Edge Database Management of the Network Data Plane」と題する米国仮特許出願第62/863,702号(代理人整理番号:1541-US-P1)に基づく優先権を主張する。両者の開示全体は、いかなる目的に対してもその全体が参照により本明細書に組み込まれる。
[著作権宣言]
本特許文書の開示の一部には、著作権保護の対象となる材料が含まれている。著作権者は、米国特許商標庁の特許ファイルまたは記録に見られる特許文書または特許開示の何人かによる複写に不服を申し立てないが、それ以外の全ての著作権に係る一切の権利を保留する。
本特許文書の開示の一部には、著作権保護の対象となる材料が含まれている。著作権者は、米国特許商標庁の特許ファイルまたは記録に見られる特許文書または特許開示の何人かによる複写に不服を申し立てないが、それ以外の全ての著作権に係る一切の権利を保留する。
本開示は概してネットワークアクセスシステムおよびアーキテクチャに関し、より具体的には、既存のインフラストラクチャに基づく、オーバーザトップ(OTT)によるネットワークアクセスソリューションのネットワークアクセスアーキテクチャに関する。
ネットワークデータプレーンは進化を続けている。ネットワークデータプレーンがフレームおよびパケットを管理する(例えば、転送する)方法を改良するための属性を規定するという、インターネット技術タスクフォース(IETF)による多くの試みがある。既存の物理ネットワークハードウェアは通常、予めプログラムされた特定用途向け集積回路(ASIC)を用いる。これは、属性拡張を何も利用することができない。
従来のアプローチでは、ソフトウェア定義型ネットワーク(SDN)のデータプレーンに目を向けて、こうした属性を管理するネットワークデータプレーンの能力を拡張する必要性に対処してきた。こうした標準的なアプローチはキーバリューストアを利用しているが、これは、基本的に複雑な属性を処理する能力が限られている2次元のデータストアである。
したがって、エッジデータベースによるネットワークデータプレーン管理のツールおよび手法が提供されている。
各実施形態の本質および利点のさらなる理解が、本明細書の残りの部分および図面への言及によって実現され得る。これらの図面では、同様の参照番号が同様の要素を参照するのに用いられる。いくつかの事例では、サブラベルを参照番号と関連付けて、複数の類似した要素のうちの1つを示している。既存のサブラベルを指定することなく、参照番号に言及した場合、そのような複数の類似した要素の全てを指すことが意図されている。
以下の詳細な説明では、いくつかの例示的な実施形態をさらに詳細に示して、当業者がそのような実施形態を実施できるようにする。説明される例は、例示を目的として提供されるのであって、本発明の範囲を限定することを意図するものではない。
以下の説明では、説明を目的として、多くの具体的な詳細が、説明される実施形態の十分な理解を提供するために記載されている。しかしながら、こうした具体的な詳細の一部がなくても、本開示の他の実施形態が実施され得ることが、当業者には明らかであろう。他の事例では、特定の構造およびデバイスがブロック図形式で示されている。いくつかの実施形態が本明細書で説明され、様々な特徴が異なる実施形態に属するが、1つの実施形態に関して説明された特徴は他の実施形態とも組み合わされてよいことを理解されたい。しかしながら、同様に、説明されたどの実施形態の1つの特徴も複数の特徴も、本発明のあらゆる実施形態に不可欠であるとみなされるべきではなく、本発明の他の実施形態がそのような特徴を省略してもよい。
特に指示がない限り、用いられる数量や寸法などを表現するのに本明細書で用いられる全ての数字は、全ての事例において用語「about(約)」によって加減されるものと理解されるべきである。本願では、特に記載のない限り、単数形の使用は複数形を含み、用語「and(および)」および「or(または)」の使用は、特に指示がない限り、「and/or(および/または)」を意味する。さらに、用語「including(含む)」並びに「includes(含む)」および「included(含まれる)」などの他の活用形の使用は、非排他的であるとみなされるべきである。また、「element(エレメント)」または「component(要素)」などの用語は、特に記載のない限り、1つのユニットを含むエレメントおよび要素、並びに1つを超えるユニットを含むエレメントおよび要素を両方とも包含する。
様々な実施形態には、限定されないが、方法、システム、および/またはソフトウェア製品が含まれる。単なる例として、方法が1つまたは複数の手順を含んでよく、そのいずれかまたは全てがコンピュータシステムによって実行される。これに対応して、一実施形態が、様々な他の実施形態により提供される方法に従って、1つまたは複数の手順を実行する命令を用いて構成されたコンピュータシステムを提供してよい。同様に、コンピュータプログラムは、コンピュータシステム(および/またはその中にあるプロセッサ)がそのようなオペレーションを行うのに実行可能な一連の命令を含んでよい。多くの場合、そのようなソフトウェアプログラムは、物理的で有形の、および/または非一時的なコンピュータ可読媒体(いくつか例を挙げると、光媒体および/または磁気媒体などといったもの)に符号化されている。
様々な修正および追加が、本発明の範囲から逸脱することなく、説明された実施形態に対して行われてよい。例えば、上述した実施形態は具体的な特徴に言及しているが、本発明の範囲は、各特徴の様々な組み合わせを有する実施形態、および上述した特徴の全てを含まない実施形態も含む。
一態様において、ネットワークデータプレーン管理用のシステムが提供される。本システムは、コンテナオーケストレータを動作させるように構成されたホストマシンを含む。ホストマシンはさらに、データベースと、プロセッサと、プロセッサが様々な機能を実行するのに実行可能な命令を有する非一時的なコンピュータ可読媒体とを含んでよい。データベースは、ネットワークデータモデルを規定するように構成された多次元データストアを含んでよく、さらにネットワーク設定を含んでよい。命令は、プロセッサがデータベースを介してネットワーク設定を取得し、ネットワーク設定に従ってコンテナを生成するのに実行可能であってよく、コンテナはネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される。命令はさらに、プロセッサがネットワークインタフェースを介してコンテナと関連付けられた入力データを受信するのに実行可能であってよく、入力データは、添付された1つまたは複数の添付済みのネットワークデータ属性を有しており、データベースによって、入力データに添付された1つまたは複数の添付済みのネットワークデータ属性をネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定する。
別の態様では、ネットワークデータプレーン管理用の装置が提供される。本装置はプロセッサと非一時的なコンピュータ可読媒体を含み、本媒体は、プロセッサがデータベースを介してネットワーク設定を取得し、ネットワーク設定に従ってコンテナを生成するのに実行可能な命令を含む。コンテナは、ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される。命令はさらに、ネットワークインタフェースを介して、コンテナと関連付けられた入力データを受信することであって、入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、データベースによって、入力データに添付された1つまたは複数の添付済みのネットワークデータ属性をネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することとを行うのに実行可能であってよい。ここで、データベースはネットワークデータモデルを規定するように構成された多次元データストアを有し、ネットワークデータモデルは1つまたは複数のネットワークデータ属性をサポートするように構成される。
さらなる態様では、ネットワークデータプレーン管理用の方法が提供される。本方法は、1つまたは複数のネットワークデータ属性をサポートするように構成されたネットワークデータモデルをエッジデータベースで規定する段階と、エッジデータベースを介してネットワーク設定を提供する段階と、エッジデータベースからオーケストレータを介してネットワーク設定を取得する段階とを含む。本方法は続いて、ネットワーク設定に従いオーケストレータを介してコンテナを生成する段階であって、コンテナを生成する段階はさらに、ネットワーク設定に基づいて、コンテナをネットワークオーバーレイにネットワークインタフェースを介して連結する段階を有する、生成する段階と、ネットワークインタフェースを介して、コンテナと関連付けられた入力データを受信する段階であって、入力データは、添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信する段階と、データベースによって、入力データに添付された1つまたは複数の添付済みのネットワークデータ属性をネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定する段階とを行う。
図1は、ネットワークデータプレーン管理用のシステムに関する概略ブロック図である。様々な実施形態において、システム100はオーケストレータ105を含み、さらに、コンテナネットワークインタフェース(CNI)110、データプレーン管理モジュール115、1つまたは複数のアプリケーションプログラミングインタフェース(API)120、データベース125、1つまたは複数のコンテナ130、パケット処理モジュール135、オペレーティングシステム(OS)のカーネル140、および1つまたは複数のイーサネット(登録商標)アダプタ145a~145n(集合的に「イーサネットアダプタ145」)を含む。様々な実施形態において、データプレーン管理モジュール115は、1つまたは複数のAPIと、データベース125とを含んでよい。システム100の様々な要素は図1に概略的に示されており、様々な実施形態に従ってシステム100への修正があり得るかもしれないことに留意されたい。
様々な実施形態において、オーケストレータ105は、物理マシンまたは仮想マシンなどのホストマシン上で動作するように構成されたKubernetesオーケストレータであってよく、一般にノードとも呼ばれることがある。他の実施形態において、オーケストレータ105は、異なる種類のオーケストレータ(限定されないが、Mesos、Docker Swarm、またはOpenshiftなど)を含んでよい。いくつかの実施形態において、ホストマシンは、当業者に知られているようなLinux(登録商標)または他の好適なOSを動作させるように構成されてよい。したがって、1つの例では、オーケストレータ105用の基本的なホストマシンは、Kubernetesオーケストレータを動作させるように構成されたLinuxホストマシンであってよい。
オーケストレータ105はCNI(110)を含んでよい。CNI(110)は、コンテナランタイムとネットワーク実装との間のインタフェースであってよい。したがって、いくつかの実施形態では、CNI(110)は、コンテナランタイムとネットワークプラグインとの間のアプリケーションプログラミングインタフェース(API)であってもよい。したがって、当業者であれば理解するであろうが、コンテナランタイムはネットワーク名前空間であり、ネットワークプラグインは、コンテナランタイムをネットワーク実装に設定するCNI(110)の仕様書に準拠した実装である。通常、ネットワークプラグインは、呼び出されると、例えば、JavaScript(登録商標) Object Notation(JSON)の設定ファイルを読み込み、ネットワークと共にコンテナを設定するのに必要なパラメータを取得することになる実行可能ファイルである。例えば、JSONの設定ファイルは、ネットワークに連結されるコンテナ130用のインタフェースを作成するように構成された、「ネット」プラグイン用のエントリと、インターネットプロトコル(IP)アドレスをコンテナおよび/またはコンテナインタフェースに割り当てるためのIPアドレス管理(IPAM)エントリとを含んでよい。これに対して、いくつかの実施形態において、オーケストレータは、プラグインを実行するか、またはそうでなければデータプレーン管理モジュール115とインタフェースをとり、例えば、データベース125に格納された永続的なネットワーク設定にコンテナを設定するためにデータベース125から設定ファイルを検索するように構成されてよい。
データプレーン管理モジュール115は、データプレーン管理機能を提供するように構成された特定のAPI(120)およびデータベース125を含んでよい。いくつかの実施形態において、データベース125は、限定されないが、SQLデータベース、NoSQLデータベース、もしくはハイブリッド型SQL/NoSQLデータベース、または他の好適なデータベースを含んでよい。具体的には、データプレーン管理モジュール115は、パケットおよびフレームの属性を管理し、メモリをより効率的に利用し、ネットワークデータモデル内の属性をリファクタリング(追加、削除、変更)する能力をサポートし、帯域幅を増やし、フレームおよびパケットの処理速度を上げるように構成されてよい。前述したように、IETFにおけるセキュリティオートメーションおよび常時監視(SACM)のアーキテクチャは、データ管理およびデータプレーンでのパケット転送に属性拡張を提案している。通常、これは、ハッシュテーブルまたはディクショナリなどのキーバリューストアを用いて処理されている。従来のアプローチとは異なり、データプレーン管理モジュール115はデータベース125を利用するように構成され、このデータベースは、多次元配列などの多次元データストアをサポートできる。例えば、このデータベースは、限定されないが、SQLデータベース、NoSQLデータベース、またはHarperDBなどのハイブリッド型SQL/NoSQLデータベースを含んでよい。例えば、ハイブリッド型データベースは、ドキュメントおよびSQL構造/オブジェクトの両方をブレンディングすることができ得る。様々な実施形態において、多次元には、限定されないが、転送情報ベース(FIB)用のレイヤ、およびプライオリタイゼーションレイヤ、並びに/または1つもしくは複数の付加的な属性を管理するように適切に構成された他のレイヤを含む1つまたは複数のレイヤが含まれてよい。
具体的には、データプレーン管理モジュール115は、Yet Another Next Generation(YANG)およびネットワーク設定プロトコル(NETCONF)のモデルとの関わりに対処するように構成されてよく、ネットワークデータモデルに追加された付加的な属性を処理する能力を提供することになるであろう。したがって、様々な実施形態において、データプレーン管理モジュール115は、提案されたネットワークデータモデルの下で、既存のネットワークハードウェアおよび/またはソフトウェアがデータプレーン管理を容易にできるように構成されてよい。前述したように、従来のキーバリューストアは、柔軟性、拡張性、および性能に障害をもたらす。
したがって、様々な実施形態において、データプレーン管理モジュール115、より具体的にはデータベース125は、1つまたは複数のネットワークデータ属性を含むネットワークデータモデルを規定するように構成されてよい。1つまたは複数のネットワークデータ属性には、限定されないが、サービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、パケットおよびフレームの挙動監視(例えば、予測分析のサポート)が含まれてよい。いくつかのさらなる実施形態において、データプレーン管理モジュール115はさらに、ネットワーク属性がユーザにより作成、追加、削除、またはそうでなければ変更されること、且つ/または動的に優先順位を付けられることを可能にするように構成されてよい。したがって、データプレーン管理モジュール115はさらに、様々なデータプレーン管理機能(例えば、属性の動的な優先順位付けなど)を呼び出すことができるように構成された、データプレーンAPI(120)を含んでよい。
1つまたは複数のコンテナ130は、Kubernetesエンジンなどのオーケストレータによって、および/またはいくつかの実施形態ではDockerなどのコンテナランタイムによって生成されてよい。様々な実施形態において、パケット処理モジュール135は、1つまたは複数のコンテナ130との間でやり取りするパケットを、データプレーン管理モジュール115に従って処理するように構成されてよい。OSのカーネル140は、オーケストレータ105が動作していることがある基本的なシステムのリソースにアクセスするためのインタフェースを提供してよい。1つまたは複数のイーサネットアダプタ145a~145nは、1つまたは複数のコンテナ130のそれぞれと関連付けられたそれぞれのネットワークオーバーレイに従って、且つ/またはCNI(110)に従って構成されてよい。いくつかの実施形態では、1つまたは複数のコンテナ130のうちの複数のコンテナが、イーサネットアダプタと共に構成されてよく、これらのイーサネットアダプタは1つまたは複数のイーサネットアダプタ145a~145nに割り当てられてよい。したがって、様々な実施形態において、1つまたは複数のイーサネットアダプタ145a~145nは物理イーサネットアダプタであってよく、物理イーサネットアダプタは1つまたは複数のコンテナ130の間で共有されても、別の方法で割り当てられてもよい。
様々な実施形態において、オーケストレータ105は、1つまたは複数のコンテナ130の1つまたは複数のコンテナインスタンスをデプロイしてよい。CNI110は、ネットワーク設定に従ってコンテナインスタンスを構成するように構成されてよい。例えば、CNI(110)は、それぞれの仮想ネットワークアダプタを備えた各コンテナインスタンスを構成するように構成されてよい。仮想ネットワークアダプタは仮想スイッチに連結されてよい。したがって、CNI(110)は、コンテナインスタンスをそれぞれの仮想ネットワークアダプタに接続してよい。様々な実施形態において、CNI(110)はさらに、名前空間を特定のCNIネットワーク設定に割り当てるように構成されてよい。いくつかの実施形態において、個々のコンテナインスタンス内にある二進数はそれ自体を、そのコンテナに固有のネットワーク設定と関連付けてよい。いくつかのさらなる実施形態では、ネットワークオーバーレイが、1つまたは複数のコンテナ130のうちのあるコンテナの中に、且つ/または代替的にオーケストレータ105により生成された全てのコンテナ用に永続化されてよい。データプレーン管理モジュール115は次に、1つまたは複数のコンテナ130のそれぞれのコンテナによって且つ/またはパケット処理モジュール135によってデータプレーンをどのように管理するかを規定するように構成されてよい。データプレーン管理モジュール115は、上述したネットワークデータ属性をサポートするように構成されてよい。例えば、パケット処理モジュール135は、1つまたは複数のイーサネットアダプタ145a~145nのそれぞれを介して受信および/または送信されたパケットを管理するように構成されてよい。パケットには属性情報が含まれてよく、属性情報は、データベース125を通じてといったように、データプレーン管理モジュール115によって管理されてよい。前述したように、データプレーン管理モジュールはさらに、1つまたは複数のコンテナ130との間で通信されるデータについて、パケットおよび/またはネットワークデータ属性の優先順位付けを規定してよい。
図2は、様々な実施形態による、同じアドレス空間におけるコンテナ通信用のシステム200に関する概略ブロック図である。システム200は、Kubernetesエンジン210a、データベースプラグイン215a、CNI(220a)、コンテナポッド225a、1つまたは複数のコンテナ230a~230c、レイヤ235a~235c、仮想スイッチ(vSwitch)240a、およびイーサネットアダプタ245a~245dをそれぞれ含むホストA(205a)を備える。システム200はさらに、Kubernetesエンジン210b、データベースプラグイン215b、CNI(220b)、コンテナポッド225b、コンテナ230d~230f、レイヤ235d~235f、vSwitch(240b)、およびイーサネットアダプタ245e~245hをそれぞれ含むホストB(205b)を備える。システム200の様々な要素は図2に概略的に示されており、様々な実施形態に従ってシステム200への修正があり得るかもしれないことに留意されたい。
様々な実施形態において、ホストA(205a)は、Kubernetesエンジン210aをサポートするように構成されたマシン(物理または仮想)であってよい。ホストB(205b)も同様に、Kubernetesエンジン210bを動作させるように構成されたマシン(物理または仮想)であってよい。いくつかの実施形態において、ホストA(205a)およびホストB(205b)は、別々の物理マシン上で実行され、物理スイッチ250を介して連結されてよい。さらなる実施形態において、ホストA(205a)およびホストB(205b)は代替的に、共通の物理マシン上で動作する別々の仮想マシンであってもよい。
ホストA(205a)は、Kubernetesエンジン210aを動作させるように構成されてよい。Kubernetesエンジン210aは、コンテナポッド225aを生成するように構成されてよい。例えば、ポッド225aはコンテナ230a~230cを含んでよい。同様に、ホストB205bはKubernetesエンジン210bを動作させるように構成されてよく、Kubernetesエンジン210bは各コンテナのそれぞれのポッド225bを生成するように構成されてよい。ポッド225bは、コンテナ230d~230fを含んでよい。
コンテナ230a~230fのそれぞれは、レイヤとして生成されてよい。例えば、第1コンテナ230aは第1セットのレイヤ235aとして生成されてよく、第2コンテナ230bは第2セットのレイヤ235bとして生成されてよく、このように第6セットのレイヤ235fとして生成されてよい第6コンテナ230fまで続く。したがって、コンテナ230a~230fは、別々のメモリマッピングおよび予測可能なアドレス指定空間を有するレイヤ235a~235fとして生成されてよい。最下層は不変であってよいが、最上層は動的である。1つの不変なレイヤが、CNI220aによって特定のネットワークオーバーレイのために構成されてよい。
前述したように、このレイヤのアドレス指定空間がvSwitch(240a)プレーンの表現に細分化されてよい。ネットワーキングレイヤの設定を静的な環境変数によって制御する、つまり高遅延のファイルシステムから読み込むよりはむしろ、前述したように、データ移動が低遅延のデータ構造体を使用することによってオーケストレートされてよい。拡張可能なデータ構造体の使用によって、より広い仮想スイッチプレーンの管理が可能になる。例えば、Kubernetesエンジン210aは、ソースデータのメモリアドレスをターゲット/送信先と交換することにより、同じポッド225aの中のコンテナ230a~230cの間でデータを通信するように構成されてよい。1つの例において、Kubernetesエンジン210aは、ソースデータのメモリアドレスと関連付けられたダブルワードのメモリポインタをターゲットコンテナ230a~230cに送るように構成されてよい。したがって、同じアドレス空間内、または代替的に同じ名前空間内のデータおよびリソースが、ポッド内コンテナ230a~230cの間でやり取りされてよい。これは、仮想ブリッジおよび仮想イーサネットインタフェースを使用する且つ/またはlocalhostに割り当てられたポートによる従来のアプローチとは異なる。
したがって、コンテナ230a~230fは、それぞれのvSwitch(240a、240b)に連結されてよく、さらに、ポッド間通信または外部通信のためにそれぞれのネットワークインタフェース(それぞれのイーサネットアダプタ245a~245hなど)に連結されてよい。例えば、ホストA(205a)は、1つまたは複数のイーサネットアダプタ245a~245dを介して物理スイッチ250に連結されてよく、物理スイッチ250はさらに、ホストB(205b)の1つまたは複数のイーサネットアダプタ245e~245hのそれぞれに連結されてよい。したがって、物理的に別々のホストによるポッド間通信では、それぞれのvSwitch(240a、240b)を利用して、コンテナ230a~230fのそれぞれとの間の通信を管理できる。
様々な実施形態において、データベースプラグイン215a、215bはさらに、Kubernetesエンジン210a、210bが前述したデータプレーン管理を実装することを可能にするように構成されてよい。具体的には、データベースプラグイン215a、215bは、Kubernetesエンジン210a、210bがネットワークデータプレーンを適切に管理することを可能にするように構成されてよい。例えば前述したように、様々な実施形態において、vSwitch(240a、240b)は、CNI(220a)を介して1つまたは複数のネットワークデータ属性を適切に管理するように構成されてよい。いくつかの実施形態において、データベースプラグイン215a、215bは、SQLデータベース、NoSQLデータベース、またはハイブリッド型SQL/NoSQLデータベースなどのデータベースとのインタフェースを提供するように構成されてよい。例えば、ハイブリッド型データベースは、ドキュメントおよびSQL構造/オブジェクトの両方をブレンディングすることができ得る。1つのそのようなデータベースがHarperDBであっても、当業者に知られている他のそのようなデータベースであってもよい。
Kubernetesエンジン210a、210b、または特定のコンテナインスタンス230a~230fは、データベースに格納されたネットワークデータモデルを利用するように構成されてよい。いくつかのさらなる実施形態において、Kubernetesエンジン210a、210b、または特定のコンテナインスタンス230a~230fは、ネットワークデータモデル内のネットワークデータ属性をリファクタリング(追加、削除、変更)するように構成されてよい。いくつかの実施形態において、1つまたは複数のネットワークデータ属性には、限定されないが、サービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、パケットおよびフレームの挙動監視(例えば、予測分析のサポート)が含まれてよい。
様々な実施形態において、前述したように、データベースは、多次元配列などの多次元データストアをサポートするように構成されてよい。様々な実施形態において、多次元には、限定されないが、転送情報ベース(FIB)用のレイヤ、およびプライオリタイゼーションレイヤ、並びに/または1つもしくは複数の付加的な属性を管理するように適切に構成された他のレイヤを含む1つまたは複数のレイヤが含まれてよい。したがって、いくつかの実施形態では、データベースによって、ネットワーク設定を永続化することが可能になり得る。ネットワーク設定はKubernetesエンジン210a、210bによって実装されてよく、コンテナインスタンス230a~230fは、永続的なネットワーク設定に(例えば、CNI(220a)を介して)連結されるように構成されてよい。
図3は、様々な実施形態による、ネットワークデータプレーン管理の方法300に関するフローチャートである。方法300は、任意選択的なブロック305で、エッジデータベースを提供することにより始まる。前述したように、エッジデータベースは、多次元データストアをサポートするように構成されたデータベースであってよい。いくつかの実施形態において、エッジデータベースは、エッジデバイス上にデプロイされるように構成されたデータベースであってよい。従来のデータベースとは異なり、エッジデータベースは具体的には、エッジデバイス上にローカルにデプロイされるデータベースである。
方法300は続いて、任意選択的なブロック310で、エッジデータベースを介してネットワークデータモデルを提供する。様々な実施形態において、ネットワークデータモデルは、データパケットおよび/またはフレームに添付され且つデータプレーン管理に用いられ得る1つまたは複数のネットワークデータ属性を規定してよい。1つまたは複数のネットワークデータ属性には、限定されないが、サービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、並びにパケットおよびフレームの挙動監視(例えば、予測分析のサポート)が含まれてよい。いくつかの実施形態において、エッジデータベースは、付加的なネットワーク属性が追加される且つ/またはネットワークデータモデルから削除され得ることを可能にするように構成されてよい。さらに、ネットワークデータモデルは、前述した1つまたは複数のホストマシン上で動作する1つまたは複数のコンテナオーケストレータ(Kubernetesエンジンなど)が利用できるようになってよい。
方法300は続いて、ブロック315で、ネットワーク設定を取得する。いくつかの実施形態において、これには、ネットワーク設定ファイルを検索することが含まれてよい。いくつかの例において、ネットワーク設定ファイルは、エッジデータベースからCNIが読み込んでよい。ネットワーク設定は、1つもしくは複数のコンテナおよび/または1つもしくは複数のポッド用のネットワークオーバーレイを規定するように構成されてよい。したがって、ブロック320で、方法300はさらに、ネットワーク設定ファイルに従ってコンテナを生成する(spawning)ことを含む。
判定ブロック325では、データはコンテナにより送信されるのか、またはコンテナにより受信されるのかが判定される。データが受信データである場合、方法300は続いてブロック335で、データに添付された1つまたは複数のネットワークデータ属性をデータベース上のネットワークデータモデルによって特定する。前述したように、コンテナおよびデータベースは両方とも、エッジデバイスにデプロイされてよく、したがって、いくつかの実施形態において、データベースはエッジデータベースであってよい。データが送信データである場合、方法300は続いてブロック330で、1つまたは複数のネットワークデータ属性をデータに添付し、これは、データを送出するコンテナおよび/またはホストデバイスに基づいて、データが送信される前に判定される。
判定ブロック340では、データの通信がポッド内通信であるかどうかが判定される。様々な実施形態において、Kubernetesエンジンは、コンテナをネットワークオーバーレイに連結するように構成されてよく、パケット処理ロジックおよびエレメント(vSwitchなど)を含む。したがって、パケット処理ロジックおよび/または特定の仮想ネットワークエレメントは、通信が同じポッドのコンテナ同士によるものか(例えば、ポッド内か)どうかを判定し、これに応じて、同じ名前空間および/またはアドレス指定空間を共有するように構成されてよい。通信がポッド内通信であると判定された場合、同じポッドの他のコンテナとの間で送信するまたは受信するデータが、ブロック345で、通信されるデータと関連付けられたメモリポインタを送信する且つ/または受信することにより通信されてよい。通信がポッド内ではなく、その代わりにポッドおよび/またはホストをまたぐものと判定された場合、データを送信する且つ/または受信するコンテナと関連付けられた適切なネットワークインタフェースを介してデータが送信されてよい。
図4は、様々な実施形態による、ネットワークデータプレーン管理用のコンピュータシステム400に関する概略ブロック図である。図4は、ホストデバイス、コンテナノード、またはエッジデバイスといったコンピュータシステム400の1つの実施形態の概略図を提供する。本システムは、本明細書で説明したように、様々な他の実施形態により提供される方法を行うことができる。図4は、様々な要素の一般的な実例を提供しているだけであり、そのうちの1つまたは複数がそれぞれ必要に応じて利用されてよいことに留意されたい。したがって図4は、個々のシステムエレメントが、比較的選別された手法または比較的より総合的な手法で、どのように実装され得るかをおおまかに示している。
コンピュータシステム400は、バス405を介して電気的に連結され得る(または必要に応じて、別の方法で通信できる)複数のハードウェアエレメントを含む。こうしたハードウェアエレメントは、1つまたは複数のプロセッサ410(限定されないが、1つもしくは複数の汎用プロセッサおよび/または1つもしくは複数の専用プロセッサ(マイクロプロセッサ、デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサ、およびマイクロコントローラなど)を含む)、1つまたは複数の入力装置415(限定されないが、マウス、キーボード、および/または1つもしくは複数のセンサなどを含む)、および1つもしくは複数の出力装置420(限定されないが、表示装置などを含み得る)を含んでよい。
コンピュータシステム400はさらに、1つまたは複数の記憶装置425を含んでよい(且つ/またはこれと通信してよい)。この記憶装置は、限定されないが、ローカルおよび/またはネットワークでアクセス可能な記憶装置を含んでよく、且つ/または限定されないが、ディスクドライブ、ドライブアレイ、光学式記憶装置、固体記憶装置(ランダムアクセスメモリ(「RAM」)および/または読み出し専用メモリ(「ROM」)など)を含んでよく、プログラム可能および/またはフラッシュ方式で書き換え可能などであってよい。そのような記憶装置は、あらゆる適切なデータストア(限定されないが、様々なファイルシステムおよび/またはデータベース構造などを含む)を実装するように構成されてよい。
コンピュータシステム400は通信サブシステム430も含んでよく、これには、限定されないが、モデム、ネットワークカード(無線または有線)、IR通信デバイス、無線通信デバイス、および/またはチップセット(Bluetooth(登録商標)デバイス、802.11用デバイス、WiFi用デバイス、WiMAX用デバイス、WWAN用デバイス、低電力(LP)無線デバイス、Z-Wave用デバイス、ZigBee(登録商標)用デバイス、セルラ通信設備などといったもの)が含まれてよい。通信サブシステム430によって、データをネットワーク(1つの例を挙げると、後述されるネットワークなど)と交換する、他のコンピュータもしくはハードウェアシステムと交換する、データセンタ間もしくは異なるクラウドプラットフォーム間で交換する、且つ/または本明細書で説明した任意の他のデバイスと交換することが可能になり得る。多くの実施形態において、コンピュータシステム400はさらにワーキングメモリ435を含み、このメモリには、上述したRAMデバイスまたはROMデバイスが含まれてよい。
コンピュータシステム400は、現在ワーキングメモリ435に配置されているものとして示されているソフトウェアエレメントも含んでよく、このソフトウェアエレメントには、オペレーティングシステム440、デバイスドライバ、実行可能なライブラリ、および/または他のコード(1つまたは複数のアプリケーションプログラム445など)が含まれ、こうしたコードは、本明細書で説明したように、様々な実施形態で提供されるコンピュータプログラムを含んでよく、並びに/または他の実施形態で提供される方法を実装する且つ/もしくはシステムを設定するように設計されてよい。単なる例として、上述した方法に関して説明された1つまたは複数の手順が、コンピュータ(および/またはコンピュータ内のプロセッサ)により実行可能なコードおよび/または命令として実装されてよく、一態様においてその後、そのようなコードおよび/または命令は、説明した方法に従って1つまたは複数のオペレーションを行うように汎用コンピュータ(または他のデバイス)を構成する(且つ/または適合させる)のに用いられてよい。
一連のこうした命令および/もしくはコードは、符号化され、且つ/または非一時的なコンピュータ可読記憶媒体(上述した記憶装置425など)に格納されてよい。場合によっては、記憶媒体はコンピュータシステム(システム400など)に組み込まれてよい。他の実施形態において、記憶媒体はコンピュータシステムから分離してよく(すなわち、コンパクトディスクなどの着脱可能な媒体といったもの)、且つ/またはインストールパッケージで提供されてよく、その結果、記憶媒体は、格納された命令/コードで汎用コンピュータをプログラムする、設定する、且つ/または適合させるのに用いることができる。こうした命令は実行可能なコードの形態をとってよく(このコードは、コンピュータシステム400により実行可能である)、且つ/またはソースコードおよび/もしくはインストール可能なコードの形態をとってよく、このコードは、(例えば、様々な一般に利用可能なコンパイラ、インストールプログラム、圧縮/伸張ツールなどのうちのいずれかを用いて)コンピュータシステム400でコンパイルされ且つ/またはインストールされると、実行可能なコードの形態をとる。
実質的な変形が特定の要件に従って行われてよいことは、当業者には明らかであろう。例えば、カスタマイズされたハードウェア(プログラム可能型ロジック制御装置、シングルボードコンピュータ、FPGA、ASIC、SoCなど)も用いられてよく、且つ/または特定のエレメントがハードウェア、ソフトウェア(アプレットといった高移植性ソフトウェアなどを含む)、またはその両方で実装されてよい。さらに、ネットワーク入力/出力装置などの他のコンピューティングデバイスへの接続が使用されてよい。
上述したように、1つの態様において、いくつかの実施形態が、コンピュータまたはハードウェアシステム(コンピュータシステム400など)を使用して、本発明の様々な実施形態による方法を行ってよい。一連の実施形態によれば、そのような方法の手順の一部または全部は、プロセッサ410がワーキングメモリ435に含まれる1つまたは複数の命令の1つまたは複数のシーケンス(これは、オペレーティングシステム440および/または他のコード(アプリケーションプログラム445またはファームウェアなど)に組み込まれてよい)を実行したことに応答して、コンピュータシステム400により行われてよい。そのような命令は、記憶装置425のうちの1つまたは複数などの別のコンピュータ可読媒体からワーキングメモリ435に読み出されてよい。単なる例として、ワーキングメモリ435に含まれる命令のシーケンスを実行すると、本明細書で説明された方法の1つまたは複数の手順をプロセッサ410に行わせることができる。
「マシン可読媒体」および「コンピュータ可読媒体」という用語は、本明細書で用いられる場合、マシンを特定の方式で動作させるデータを提供することに関与するあらゆる媒体のことを指す。コンピュータシステム400を用いて実装される一実施形態において、様々なコンピュータ可読媒体が、命令/コードを実行のためにプロセッサ410に提供することに関与してよく、並びに/またはそのような命令/コードを(例えば、信号として)格納する且つ/もしくは搬送するのに用いられてよい。多くの実装例において、コンピュータ可読媒体は、非一時的で物理的および/または有形の記憶媒体である。いくつかの実施形態において、コンピュータ可読媒体は多くの形態をとってよく、限定されないが、不揮発性媒体または揮発性媒体などを含む。不揮発性媒体には、例えば、記憶装置425などの光ディスクおよび/または磁気ディスクが含まれる。揮発性媒体には、限定されないが、ワーキングメモリ435などのダイナミックメモリが含まれる。いくつかの代替実施形態において、コンピュータ可読媒体は伝送媒体の形態をとってよく、この伝送媒体は、限定されないが、同軸ケーブル、銅線、および光ファイバを含み、バス405を含む配線および通信サブシステム430の様々な要素(および/または通信サブシステム430が他のデバイスに通信を提供するのに用いる媒体)も含む。一連の代替実施形態において、伝送媒体は波動の形態をとってもよい(限定されないが、電波、音波、および/または光波といった、電波および/または赤外線によるデータ通信時に生成される波動を含む)。
物理的および/または有形のコンピュータ可読媒体の一般的な形態には、例えば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープなどの磁気媒体、CD-ROM、その他の光媒体、パンチカード、紙テープ、穴のパターンを有するその他の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、その他のメモリチップもしくはカートリッジ、以下に説明する搬送波、またはコンピュータが命令および/もしくはコードを読み出すことができるその他の媒体が含まれる。
コンピュータ可読媒体の様々な形態が、1つまたは複数の命令の1つまたは複数のシーケンスを実行のためにプロセッサ410に搬送するのに関与してよい。単なる例として、こうした命令は最初に、リモートコンピュータの磁気ディスクおよび/または光ディスクに搬送されてよい。リモートコンピュータは、この命令をダイナミックメモリにロードし、伝送媒体を介して、コンピュータシステム400により受信される且つ/または実行される信号として命令を送出してよい。こうした信号は、電磁信号、音響信号、および/または光信号などの形態であってよく、全てが搬送波の例であり、搬送波上に命令が本発明の様々な実施形態に従って符号化され得る。
通信サブシステム430(および/またはその要素)は一般に信号を受信し、その後、バス405は信号(および/または信号により搬送されるデータ、命令など)をワーキングメモリ435に搬送してよく、このワーキングメモリから、プロセッサ410は命令を検索して実行する。ワーキングメモリ435が受信する命令は、プロセッサ410による実行の前にまたは後に、任意選択的に記憶装置425に格納されてよい。
図5は、様々な実施形態に従って用いられ得るコンピューティングシステムのネットワークシステムを示すブロック図である。システム500は、1つもしくは複数のユーザデバイス505を含んでよい。ユーザデバイス505は、単なる例として、適切なオペレーティングシステムを動作させるデスクトップコンピュータ、シングルボードコンピュータ、タブレットコンピュータ、ラップトップコンピュータ、およびハンドヘルドコンピュータなどを含んでよい。ユーザデバイス505はさらに、様々なオペレーティングシステムのうちのいずれかを動作させる外部デバイス、リモートデバイス、サーバ、および/またはワークステーションコンピュータを含んでよい。いくつかの実施形態において、オペレーティングシステムは、市販のUNIX(登録商標)またはUNIX系オペレーティングシステムを含んでよい。ユーザデバイス505は、様々な実施形態により提供される方法を行うように構成された1つまたは複数のアプリケーション、並びに1つもしくは複数の事務用アプリケーション、データベースクライアントおよび/もしくはサーバアプリケーション、および/またはウェブブラウザアプリケーションを含む様々なアプリケーションのうちのいずれかも有してよい。あるいは、ユーザデバイス505は、ネットワーク(例えば、後述するネットワーク510)を介して通信できる且つ/またはウェブページもしくは他の種類の電子文書を表示しナビゲートできるシンクライアントコンピュータ、インターネット対応の携帯電話、および/または携帯情報端末といったその他の電子デバイスを含んでもよい。例示的なシステム500には2つのユーザデバイス505が示されているが、任意の数のユーザデバイス505がサポートされてよい。
特定の実施形態がネットワーク環境で動作し、このネットワーク環境にはネットワーク510が含まれてよい。ネットワーク510は、当業者によく知られた、データ通信をサポートできる、アクセスネットワークなどのあらゆる種類のネットワークであってよく、様々な市販の(および/または無料または専用の)プロトコルのうちのいずれかを用いてよい。そのようなプロトコルには、限定されないが、MQTT、CoAP、AMQP、STOMP、DDS、SCADA、XMPP、カスタムミドルウェアエージェント、Modbus、BACnet、NCTIP513、Bluetooth、ZigBee/Z-Wave、TCP/IP、SNA(登録商標)、およびIPX(登録商標)などが含まれる。単なる例として、ネットワーク510にはそれぞれ、限定されないが、ファイバネットワーク、イーサネット型ネットワーク、および/またはトークンリング(登録商標)ネットワークなどを含むローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、無線ワイドエリアネットワーク(「WWAN」)、仮想プライベートネットワーク(「VPN」などの仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(「PSTN」)、赤外線ネットワーク、無線ネットワーク(限定されないが、IEEE802.11スイートのプロトコル、当技術分野で知られているBluetooth(登録商標)プロトコル、および/またはその他の無線プロトコルのうちのいずれかで動作するネットワークを含む)、並びに/またはこうしたネットワークおよび/もしくは他のネットワークのあらゆる組み合わせが含まれてよい。特定の実施形態において、ネットワークはサービスプロバイダ(例えばインターネットサービスプロバイダ(「ISP」))のアクセスネットワークを含んでよい。別の実施形態において、ネットワークには、サービスプロバイダのコアネットワーク、管理ネットワーク、および/またはインターネットが含まれてよい。
実施形態には、1つまたは複数のサーバコンピュータ515も含まれてよい。サーバコンピュータ515のそれぞれは、限定されないが、上述したオペレーティングシステムの他に、あらゆる商業的に(または無料で)利用可能なサーバ用オペレーティングシステムのうちのいずれかを含むオペレーティングシステムを用いて構成されてよい。サーバ515のそれぞれは、1つまたは複数のアプリケーションを動作させていてもよく、こうしたアプリケーションは、1つもしくは複数のクライアント505および/または他のサーバ515にサービスを提供するように構成されてよい。
単なる例として、サーバ515のうちの1つが、上述したように、データサーバ、ウェブサーバ、認証サーバ(例えば、TACACS、RADIUSなど)、またはクラウドコンピューティングデバイスなどであってよい。データサーバは、ウェブサーバを含んでよい(または、これと通信してもよい)。ウェブサーバは、単なる例として、ユーザコンピュータ505からのウェブページまたは他の電子文書を求める要求を処理するのに用いられ得る。ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データベースサーバ、およびJava(登録商標)サーバなどを含む様々なサーバアプリケーションも動作させることができる。本発明のいくつかの実施形態において、ウェブサーバは、ユーザコンピュータ505のうちの1つまたは複数においてウェブブラウザ内で動作して本発明の方法を行うことができるウェブページを供給するように構成されてよい。
サーバコンピュータ515は、いくつかの実施形態において、1つもしくは複数のアプリケーションサーバを含んでよい。このアプリケーションサーバは、1つもしくは複数のアプリケーション、プログラム、ウェブベースのサービス、またはクライアントがアクセス可能な他のネットワークリソースを用いて構成されてよい。単なる例として、サーバ515は、ユーザコンピュータ505および/または他のサーバ515に応答して、限定されないが、ウェブアプリケーション(これは場合によっては、様々な実施形態により提供される方法を行うように構成されてよい)を含むプログラムまたはスクリプトを実行できる1つもしくは複数の汎用コンピュータであってよい。単なる例として、ウェブアプリケーションは、あらゆる好適なプログラミング言語で記述される1つもしくは複数のスクリプトまたはプログラムとして実装されてよい。こうしたプログラミング言語には、Java(登録商標)、C、C#(登録商標)もしくはC++、および/または任意のスクリプト言語(Perl、Python、またはTCLなど)、並びにあらゆるプログラミング言語および/またはスクリプト言語の組み合わせなどがある。アプリケーションサーバはデータベースサーバも含んでよく、データベースサーバは、限定されないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)などから市販されているものを含み、ユーザコンピュータ、ユーザデバイス、または顧客デバイス505および/もしくは別のサーバ515で動作するクライアント(設定に応じて、専用データベースクライアント、APIクライアント、ウェブブラウザなどを含む)からの要求を処理できる。
さらなる実施形態によれば、1つもしくは複数のサーバ515が、ファイルサーバとして機能してよく、且つ/または、様々な開示された方法を実施するのに必要で、ユーザコンピュータ505および/または別のサーバ515で動作するアプリケーションにより組み込まれる複数のファイル(例えば、アプリケーションコード、データファイルなど)のうちの1つまたは複数を含んでよい。あるいは、当業者であれば理解するであろうが、ファイルサーバは全ての必要なファイルを含んでよく、これにより、ユーザコンピュータ、ユーザデバイス、もしくは顧客デバイス505および/またはサーバ515がそのようなアプリケーションをリモートで呼び出すことが可能になる。
本明細書において様々なサーバ(例えば、アプリケーションサーバ、データベースサーバ、ウェブサーバ、ファイルサーバなど)に関して説明される機能は、実装に固有のニーズおよびパラメータに応じて、1つのサーバおよび/または複数の専用サーバによって行われてよいことに留意されたい。
特定の実施形態において、本システムは1つまたは複数のデータベース520a~520n(集合的に「データベース520」)を含んでよい。これらのデータベース520のそれぞれの位置は任意である。単なる例として、データベース520aは、サーバ515a(または代替的にユーザデバイス505)にはローカルの(且つ/またはそこに常駐する)記憶媒体に存在してよい。あるいは、データベース520nは、これらのうちの1つまたは複数と(例えば、ネットワーク510を介して)通信できる限り、遠く離れていてもよい。特定の一連の実施形態において、データベース520は、当業者によく知られたストレージエリアネットワーク(「SAN」)に存在してよい。ある一連の実施形態において、データベース520は、様々なデータソースから収集された1つまたは複数のデータレイクをホストするように構成されたリレーショナルデータベースおよび/または非リレーショナルデータベースであってよい。このデータベースは、データベースサーバによって制御および/または維持されてよい。
システム500はさらに、オーケストレータ530a、ポッド535a、1つまたは複数のコンテナ540a~540n、およびデータベース545aを有する第1ホスト(ホストA)525aを含んでよい。システム500はさらに、オーケストレータ530b、ポッド535b、および1つまたは複数のコンテナ540b~540mを有する第2ホスト(ホストB)525bを含んでよい。
特定の特徴および態様が例示的な実施形態に関して説明されているが、当業者であれば、多くの修正例があり得ることを認識するであろう。例えば、本明細書で説明された方法およびプロセスは、ハードウェア要素、ソフトウェア要素、且つ/またはこのあらゆる組み合わせを用いて実施されてよい。さらに、本明細書で説明された様々な方法およびプロセスは、説明を簡単にするために、特定の構造的要素且つ/または機能的要素に関して説明されているかもしれないが、様々な実施形態により提供される方法は、1つの構造的アーキテクチャおよび/または機能的アーキテクチャに限定されることは全くなく、その代わりに、あらゆる好適なハードウェア設定、ファームウェア設定、および/またはソフトウェア設定で実装されてよい。同様に、特定の機能が特定のシステム要素に属するが、文脈上特に指示されていない限り、この機能は、いくつかの実施形態に従って様々な他のシステム要素に分散されてよい。
さらに、本明細書で説明された方法およびプロセスの手順は、説明を簡単にするために、順に説明されているが、文脈上特に指示されていない限り、様々な実施形態に従って、様々な手順が並べ替えられ、追加され、且つ/または省略されてよい。さらに、1つの方法またはプロセスに関して説明された手順は、他の説明された方法またはプロセスに組み込まれてよく、同様に、特定の構造的アーキテクチャに従って且つ/または1つのシステムに関して説明されたシステム要素が、代替の構造的アーキテクチャに整理され且つ/または他の説明されたシステムに組み込まれてよい。したがって、様々な実施形態が説明を簡単にするために特定の特徴を用いて(または用いずに)説明されており、またこれらの実施形態の例示的な態様を示しているが、1つの実施形態に関して本明細書で説明された様々な要素および/または特徴は、文脈上特に指示されていない限り、他の説明された実施形態の間で置き換えられ、追加され、且つ/またはその中から差し引かれてよい。したがって、いくつかの例示的な実施形態が上述されているが、本発明は、全ての修正例および均等例を以下の特許請求の範囲の範囲内に包含するよう意図されていることが理解されるであろう。
[他の考え得る項目]
(項目1)
コンテナオーケストレータを動作させるように構成されたホストマシンを備えるシステムであって、上記ホストマシンが、ネットワークデータモデルを規定するように構成された多次元データストアを含むデータベースであって、上記ネットワークデータモデルは1つまたは複数のネットワークデータ属性をサポートするように構成され、上記データベースはさらにネットワーク設定を含む、データベースと、
プロセッサと、
上記プロセッサにより実行可能な命令を含む非一時的なコンピュータ可読媒体であって、上記プロセッサが、上記データベースを介して上記ネットワーク設定を取得することと、上記ネットワーク設定に従ってコンテナを生成することであって、上記コンテナは、上記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信することであって、上記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を、上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することとを行う、非一時的なコンピュータ可読媒体と
を有する、システム。
(項目2)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが上記コンテナにより送信され、上記発信データに添付された上記1つまたは複数のデータ属性は上記コンテナに少なくとも部分的に基づいている、添付することと、
上記ネットワークインタフェースを介して上記発信データを送信することと
を行う、項目1に記載のシステム。
(項目3)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定することと、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、項目1に記載のシステム。
(項目4)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する、項目3に記載のシステム。
(項目5)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、項目1に記載のシステム。
(項目6)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する、項目1に記載のシステム。
(項目7)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける、項目1に記載のシステム。
(項目8)
上記1つまたは複数のネットワークデータ属性が、上記コンテナにより送受信されるデータと関連付けられた少なくともサービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、およびパケット挙動の監視を含む、項目1に記載のシステム。
(項目9)
プロセッサと、
上記プロセッサにより実行可能な命令を有する非一時的なコンピュータ可読媒体と
を備える装置であって、
上記プロセッサが、
データベースを介してネットワーク設定を取得することと、
上記ネットワーク設定に従ってコンテナを生成することであって、上記コンテナは、上記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、
上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信することであって、上記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、
上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を、上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することと
を行い、
上記データベースがネットワークデータモデルを規定するように構成された多次元データストアを含み、上記ネットワークデータモデルが1つまたは複数のネットワークデータ属性をサポートするように構成される、装置。
(項目10)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが上記コンテナにより送信され、上記発信データに添付された上記1つまたは複数のデータ属性は上記コンテナに少なくとも部分的に基づいている、添付することと、
上記ネットワークインタフェースを介して上記発信データを送信することと
を行う、項目9に記載の装置。
(項目11)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定することと、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、項目9に記載の装置。
(項目12)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する、項目11に記載の装置。
(項目13)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、項目9に記載の装置。
(項目14)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する、項目9に記載の装置。
(項目15)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける、項目9に記載の装置。
(項目16)
1つまたは複数のネットワークデータ属性をサポートするように構成されたネットワークデータモデルをエッジデータベースで規定する段階と、
上記エッジデータベースを介してネットワーク設定を提供する段階と、
上記ネットワーク設定を上記エッジデータベースからオーケストレータを介して取得する段階と、
上記ネットワーク設定に従い、上記オーケストレータを介してコンテナを生成する段階であって、上記コンテナを生成する段階はさらに、上記ネットワーク設定に基づいて、上記コンテナをネットワークオーバーレイにネットワークインタフェースを介して連結する段階を有する、生成する段階と、
上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信する段階であって、上記入力データは、添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信する段階と、
上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定する段階と
を備える方法。
(項目17)
上記方法がさらに、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定する段階であって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定する段階と、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信する段階と
を備える、項目16に記載の方法。
(項目18)
上記方法がさらに、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する段階を備える、項目17に記載の方法。
(項目19)
上記方法がさらに、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する段階と、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する段階と
を備える、項目16に記載の方法。
(項目20)
上記方法がさらに、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける段階を備える、項目16に記載の方法。
[他の考え得る項目]
(項目1)
コンテナオーケストレータを動作させるように構成されたホストマシンを備えるシステムであって、上記ホストマシンが、ネットワークデータモデルを規定するように構成された多次元データストアを含むデータベースであって、上記ネットワークデータモデルは1つまたは複数のネットワークデータ属性をサポートするように構成され、上記データベースはさらにネットワーク設定を含む、データベースと、
プロセッサと、
上記プロセッサにより実行可能な命令を含む非一時的なコンピュータ可読媒体であって、上記プロセッサが、上記データベースを介して上記ネットワーク設定を取得することと、上記ネットワーク設定に従ってコンテナを生成することであって、上記コンテナは、上記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信することであって、上記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を、上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することとを行う、非一時的なコンピュータ可読媒体と
を有する、システム。
(項目2)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが上記コンテナにより送信され、上記発信データに添付された上記1つまたは複数のデータ属性は上記コンテナに少なくとも部分的に基づいている、添付することと、
上記ネットワークインタフェースを介して上記発信データを送信することと
を行う、項目1に記載のシステム。
(項目3)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定することと、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、項目1に記載のシステム。
(項目4)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する、項目3に記載のシステム。
(項目5)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、項目1に記載のシステム。
(項目6)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する、項目1に記載のシステム。
(項目7)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける、項目1に記載のシステム。
(項目8)
上記1つまたは複数のネットワークデータ属性が、上記コンテナにより送受信されるデータと関連付けられた少なくともサービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、およびパケット挙動の監視を含む、項目1に記載のシステム。
(項目9)
プロセッサと、
上記プロセッサにより実行可能な命令を有する非一時的なコンピュータ可読媒体と
を備える装置であって、
上記プロセッサが、
データベースを介してネットワーク設定を取得することと、
上記ネットワーク設定に従ってコンテナを生成することであって、上記コンテナは、上記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、
上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信することであって、上記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、
上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を、上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することと
を行い、
上記データベースがネットワークデータモデルを規定するように構成された多次元データストアを含み、上記ネットワークデータモデルが1つまたは複数のネットワークデータ属性をサポートするように構成される、装置。
(項目10)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが上記コンテナにより送信され、上記発信データに添付された上記1つまたは複数のデータ属性は上記コンテナに少なくとも部分的に基づいている、添付することと、
上記ネットワークインタフェースを介して上記発信データを送信することと
を行う、項目9に記載の装置。
(項目11)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定することと、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、項目9に記載の装置。
(項目12)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する、項目11に記載の装置。
(項目13)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、項目9に記載の装置。
(項目14)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する、項目9に記載の装置。
(項目15)
上記命令がさらに、上記プロセッサにより実行可能であり、上記プロセッサが、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける、項目9に記載の装置。
(項目16)
1つまたは複数のネットワークデータ属性をサポートするように構成されたネットワークデータモデルをエッジデータベースで規定する段階と、
上記エッジデータベースを介してネットワーク設定を提供する段階と、
上記ネットワーク設定を上記エッジデータベースからオーケストレータを介して取得する段階と、
上記ネットワーク設定に従い、上記オーケストレータを介してコンテナを生成する段階であって、上記コンテナを生成する段階はさらに、上記ネットワーク設定に基づいて、上記コンテナをネットワークオーバーレイにネットワークインタフェースを介して連結する段階を有する、生成する段階と、
上記ネットワークインタフェースを介して、上記コンテナと関連付けられた入力データを受信する段階であって、上記入力データは、添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信する段階と、
上記データベースによって、上記入力データに添付された上記1つまたは複数の添付済みのネットワークデータ属性を上記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定する段階と
を備える方法。
(項目17)
上記方法がさらに、
上記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定する段階であって、上記共通のポッドは、上記コンテナおよび上記第2コンテナを含む1つまたは複数のコンテナを上記ホストマシン上に含む、判定する段階と、
上記コンテナにより上記第2コンテナに送信されるポッド内発信データのために、上記ポッド内発信データの位置と関連付けられたメモリポインタを送信する段階と
を備える、項目16に記載の方法。
(項目18)
上記方法がさらに、
ポッド内入力データのために、上記ポッド内入力データの上記位置と関連付けられた上記メモリポインタを受信する段階を備える、項目17に記載の方法。
(項目19)
上記方法がさらに、
上記データベースを介して、上記ネットワークデータモデルの上記1つまたは複数のネットワークデータ属性に付加的な属性を追加する段階と、
上記データベースを介して、上記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを上記ネットワークデータモデルから削除する段階と
を備える、項目16に記載の方法。
(項目20)
上記方法がさらに、
上記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、上記入力データの転送に優先順位を付ける段階を備える、項目16に記載の方法。
Claims (20)
- コンテナオーケストレータを動作させるように構成されたホストマシンを備えるシステムであって、
前記ホストマシンが、
ネットワークデータモデルを規定するように構成された多次元データストアを含むデータベースであって、前記ネットワークデータモデルは1つまたは複数のネットワークデータ属性をサポートするように構成され、前記データベースはさらにネットワーク設定を含む、データベースと、
プロセッサと、
前記プロセッサにより実行可能な命令を含む非一時的なコンピュータ可読媒体であって、前記プロセッサが、
前記データベースを介して前記ネットワーク設定を取得することと、
前記ネットワーク設定に従ってコンテナを生成することであって、前記コンテナは、前記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、
前記ネットワークインタフェースを介して、前記コンテナと関連付けられた入力データを受信することであって、前記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、
前記データベースによって、前記入力データに添付された前記1つまたは複数の添付済みのネットワークデータ属性を、前記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することと
を行う、非一時的なコンピュータ可読媒体と
を有する、システム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが前記コンテナにより送信され、前記発信データに添付された前記1つまたは複数のデータ属性は前記コンテナに少なくとも部分的に基づいている、添付することと、
前記ネットワークインタフェースを介して前記発信データを送信することと
を行う、請求項1に記載のシステム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、前記共通のポッドは、前記コンテナおよび前記第2コンテナを含む1つまたは複数のコンテナを前記ホストマシン上に含む、判定することと、
前記コンテナにより前記第2コンテナに送信されるポッド内発信データのために、前記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、請求項1または2に記載のシステム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
ポッド内入力データのために、前記ポッド内入力データの前記位置と関連付けられた前記メモリポインタを受信する、請求項3に記載のシステム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記データベースを介して、前記ネットワークデータモデルの前記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、請求項1から4のいずれか一項に記載のシステム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記データベースを介して、前記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを前記ネットワークデータモデルから削除する、請求項1から5のいずれか一項に記載のシステム。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、前記入力データの転送に優先順位を付ける、請求項1から6のいずれか一項に記載のシステム。 - 前記1つまたは複数のネットワークデータ属性が、前記コンテナにより送受信されるデータと関連付けられた少なくともサービス品質、セキュリティ、ルーティング、スイッチング、送信元証明、送達証明、およびパケット挙動の監視を含む、請求項1から7のいずれか一項に記載のシステム。
- プロセッサと、
前記プロセッサにより実行可能な命令を有する非一時的なコンピュータ可読媒体と
を備える装置であって、
前記プロセッサが、
データベースを介してネットワーク設定を取得することと、
前記ネットワーク設定に従ってコンテナを生成することであって、前記コンテナは、前記ネットワーク設定に基づき、ネットワークインタフェースを介してネットワークオーバーレイに連結されるように構成される、生成することと、
前記ネットワークインタフェースを介して、前記コンテナと関連付けられた入力データを受信することであって、前記入力データは添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信することと、
前記データベースによって、前記入力データに添付された前記1つまたは複数の添付済みのネットワークデータ属性を、前記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定することと
を行い、
前記データベースがネットワークデータモデルを規定するように構成された多次元データストアを含み、前記ネットワークデータモデルが1つまたは複数のネットワークデータ属性をサポートするように構成される、装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
1つまたは複数のネットワークデータ属性アソシエートを発信データに添付することであって、発信データが前記コンテナにより送信され、前記発信データに添付された前記1つまたは複数のデータ属性は前記コンテナに少なくとも部分的に基づいている、添付することと、
前記ネットワークインタフェースを介して前記発信データを送信することと
を行う、請求項9に記載の装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定することであって、前記共通のポッドは、前記コンテナおよび前記第2コンテナを含む1つまたは複数のコンテナを前記ホストマシン上に含む、判定することと、
前記コンテナにより前記第2コンテナに送信されるポッド内発信データのために、前記ポッド内発信データの位置と関連付けられたメモリポインタを送信することと
を行う、請求項9または10に記載の装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
ポッド内入力データのために、前記ポッド内入力データの前記位置と関連付けられた前記メモリポインタを受信する、請求項11に記載の装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記データベースを介して、前記ネットワークデータモデルの前記1つまたは複数のネットワークデータ属性に付加的な属性を追加する、請求項9から12のいずれか一項に記載の装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記データベースを介して、前記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを前記ネットワークデータモデルから削除する、請求項9から13のいずれか一項に記載の装置。 - 前記命令がさらに、前記プロセッサにより実行可能であり、前記プロセッサが、
前記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、前記入力データの転送に優先順位を付ける、請求項9から14のいずれか一項に記載の装置。 - 1つまたは複数のネットワークデータ属性をサポートするように構成されたネットワークデータモデルをエッジデータベースで規定する段階と、
前記エッジデータベースを介してネットワーク設定を提供する段階と、
前記ネットワーク設定を前記エッジデータベースからオーケストレータを介して取得する段階と、
前記ネットワーク設定に従い、前記オーケストレータを介してコンテナを生成する段階であって、前記コンテナを生成する段階はさらに、前記ネットワーク設定に基づいて、前記コンテナをネットワークオーバーレイにネットワークインタフェースを介して連結する段階を有する、生成する段階と、
前記ネットワークインタフェースを介して、前記コンテナと関連付けられた入力データを受信する段階であって、前記入力データは、添付された1つまたは複数の添付済みのネットワークデータ属性を有する、受信する段階と、
前記データベースによって、前記入力データに添付された前記1つまたは複数の添付済みのネットワークデータ属性を前記ネットワークデータモデルの1つまたは複数のネットワークデータ属性と特定する段階と
を備える方法。 - 前記方法がさらに、
前記コンテナが共通のポッド内にある第2コンテナと通信しているかどうかを判定する段階であって、前記共通のポッドは、前記コンテナおよび前記第2コンテナを含む1つまたは複数のコンテナを前記ホストマシン上に含む、判定する段階と、
前記コンテナにより前記第2コンテナに送信されるポッド内発信データのために、前記ポッド内発信データの位置と関連付けられたメモリポインタを送信する段階と
を備える、請求項16に記載の方法。 - 前記方法がさらに、
ポッド内入力データのために、前記ポッド内入力データの前記位置と関連付けられた前記メモリポインタを受信する段階を備える、請求項17に記載の方法。 - 前記方法がさらに、
前記データベースを介して、前記ネットワークデータモデルの前記1つまたは複数のネットワークデータ属性に付加的な属性を追加する段階と、
前記データベースを介して、前記1つまたは複数のネットワークデータ属性のうちの少なくとも1つを前記ネットワークデータモデルから削除する段階と
を備える、請求項16から18のいずれか一項に記載の方法。 - 前記方法がさらに、
前記1つまたは複数の添付済みのネットワークデータ属性に少なくとも部分的に基づいて、前記入力データの転送に優先順位を付ける段階を備える、請求項16から19のいずれか一項に記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962863702P | 2019-06-19 | 2019-06-19 | |
US62/863,702 | 2019-06-19 | ||
US16/523,741 | 2019-07-26 | ||
US16/523,741 US10938647B2 (en) | 2019-06-19 | 2019-07-26 | Edge database management of the network data plane |
PCT/US2020/035550 WO2020256912A1 (en) | 2019-06-19 | 2020-06-01 | Edge database management of the network data plane |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022536787A true JP2022536787A (ja) | 2022-08-18 |
Family
ID=72234910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021574752A Pending JP2022536787A (ja) | 2019-06-19 | 2020-06-01 | ネットワークデータプレーンのエッジデータベース管理 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10938647B2 (ja) |
EP (1) | EP3987721A1 (ja) |
JP (1) | JP2022536787A (ja) |
AU (1) | AU2020294521A1 (ja) |
CA (1) | CA3144245A1 (ja) |
WO (1) | WO2020256912A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11785104B2 (en) | 2017-11-27 | 2023-10-10 | Lacework, Inc. | Learning from similar cloud deployments |
US20220232024A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting deviations from typical user behavior |
US11849000B2 (en) | 2017-11-27 | 2023-12-19 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
US11894984B2 (en) | 2017-11-27 | 2024-02-06 | Lacework, Inc. | Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments |
US11770398B1 (en) | 2017-11-27 | 2023-09-26 | Lacework, Inc. | Guided anomaly detection framework |
US11818156B1 (en) | 2017-11-27 | 2023-11-14 | Lacework, Inc. | Data lake-enabled security platform |
US11765249B2 (en) | 2017-11-27 | 2023-09-19 | Lacework, Inc. | Facilitating developer efficiency and application quality |
US11792284B1 (en) | 2017-11-27 | 2023-10-17 | Lacework, Inc. | Using data transformations for monitoring a cloud compute environment |
US11741238B2 (en) | 2017-11-27 | 2023-08-29 | Lacework, Inc. | Dynamically generating monitoring tools for software applications |
US20220232025A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting anomalous behavior of a device |
US11979422B1 (en) | 2017-11-27 | 2024-05-07 | Lacework, Inc. | Elastic privileges in a secure access service edge |
US11973784B1 (en) | 2017-11-27 | 2024-04-30 | Lacework, Inc. | Natural language interface for an anomaly detection framework |
US10425437B1 (en) | 2017-11-27 | 2019-09-24 | Lacework Inc. | Extended user session tracking |
US11249783B1 (en) * | 2018-05-23 | 2022-02-15 | Open Invention Network Llc | Intra application container direct communication protocol |
US10938647B2 (en) | 2019-06-19 | 2021-03-02 | Centurylink Intellectual Property Llc | Edge database management of the network data plane |
US11188571B1 (en) | 2019-12-23 | 2021-11-30 | Lacework Inc. | Pod communication graph |
US11201955B1 (en) | 2019-12-23 | 2021-12-14 | Lacework Inc. | Agent networking in a containerized environment |
US11256759B1 (en) | 2019-12-23 | 2022-02-22 | Lacework Inc. | Hierarchical graph analysis |
WO2021196080A1 (en) | 2020-04-01 | 2021-10-07 | Vmware Information Technology (China) Co., Ltd. | Auto deploying network elements for heterogeneous compute elements |
US11803408B2 (en) | 2020-07-29 | 2023-10-31 | Vmware, Inc. | Distributed network plugin agents for container networking |
US11863352B2 (en) | 2020-07-30 | 2024-01-02 | Vmware, Inc. | Hierarchical networking for nested container clusters |
US20220405112A1 (en) * | 2021-06-21 | 2022-12-22 | International Business Machines Corporation | Isolating virtual machine workloads withiin pods in a cluster environment |
US20230097005A1 (en) * | 2021-09-30 | 2023-03-30 | Fortinet, Inc. | Container network interface for applying security policies to network traffic of containers |
US20230231741A1 (en) * | 2022-01-14 | 2023-07-20 | Vmware, Inc. | Per-namespace ip address management method for container networks |
US11848910B1 (en) | 2022-11-11 | 2023-12-19 | Vmware, Inc. | Assigning stateful pods fixed IP addresses depending on unique pod identity |
US11831511B1 (en) | 2023-01-17 | 2023-11-28 | Vmware, Inc. | Enforcing network policies in heterogeneous systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203175B2 (en) * | 2002-08-15 | 2007-04-10 | Cisco Technology, Inc. | Arrangement for router attachments between roaming mobile routers in a mobile network |
US7454487B1 (en) * | 2002-12-31 | 2008-11-18 | Emc Corporation | Methods and apparatus providing an extensible manageable entity model for a network |
US7660883B2 (en) * | 2005-07-01 | 2010-02-09 | Devicescape Software, Inc. | Network monitoring device |
US10027536B2 (en) | 2014-06-25 | 2018-07-17 | Futurewei Technologies, Inc. | System and method for affinity-based network configuration |
US10558467B2 (en) | 2017-03-30 | 2020-02-11 | International Business Machines Corporation | Dynamically generating a service pipeline comprising filtered application programming interfaces |
US10558542B1 (en) * | 2017-03-31 | 2020-02-11 | Juniper Networks, Inc. | Intelligent device role discovery |
US20200311617A1 (en) | 2017-11-22 | 2020-10-01 | Amazon Technologies, Inc. | Packaging and deploying algorithms for flexible machine learning |
US10708082B1 (en) * | 2018-08-31 | 2020-07-07 | Juniper Networks, Inc. | Unified control plane for nested clusters in a virtualized computing infrastructure |
US10938647B2 (en) | 2019-06-19 | 2021-03-02 | Centurylink Intellectual Property Llc | Edge database management of the network data plane |
-
2019
- 2019-07-26 US US16/523,741 patent/US10938647B2/en active Active
-
2020
- 2020-06-01 AU AU2020294521A patent/AU2020294521A1/en not_active Abandoned
- 2020-06-01 JP JP2021574752A patent/JP2022536787A/ja active Pending
- 2020-06-01 EP EP20761362.1A patent/EP3987721A1/en active Pending
- 2020-06-01 WO PCT/US2020/035550 patent/WO2020256912A1/en unknown
- 2020-06-01 CA CA3144245A patent/CA3144245A1/en active Pending
-
2021
- 2021-02-22 US US17/181,359 patent/US11228482B2/en active Active
- 2021-12-24 US US17/561,875 patent/US11683223B2/en active Active
-
2023
- 2023-06-16 US US18/210,957 patent/US12009972B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CA3144245A1 (en) | 2020-12-24 |
US11683223B2 (en) | 2023-06-20 |
US20220123993A1 (en) | 2022-04-21 |
US20200403860A1 (en) | 2020-12-24 |
US20230327947A1 (en) | 2023-10-12 |
US11228482B2 (en) | 2022-01-18 |
US20210176124A1 (en) | 2021-06-10 |
US10938647B2 (en) | 2021-03-02 |
EP3987721A1 (en) | 2022-04-27 |
WO2020256912A1 (en) | 2020-12-24 |
AU2020294521A1 (en) | 2022-01-27 |
US12009972B2 (en) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022536787A (ja) | ネットワークデータプレーンのエッジデータベース管理 | |
AU2019201345B2 (en) | System for building and modeling web pages | |
US11095711B2 (en) | DNS Resolution of internal tenant-specific domain addresses in a multi-tenant computing environment | |
CN111736775B (zh) | 多源存储方法、装置、计算机系统及存储介质 | |
EP3531305B1 (en) | Web page acquisition and rendering with inter-component data binding | |
JP2021524090A (ja) | 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること | |
US11416573B2 (en) | Bundled scripts for web content delivery | |
US11442931B2 (en) | Enabling federated query access to Heterogeneous data sources | |
US20170061006A1 (en) | System and methods for dynamic generation of object storage datasets from existing file datasets | |
CN111294415A (zh) | 域名解析的方法和装置 | |
EP4214898B1 (en) | Anomaly detection using an ensemble of detection models | |
JP2019536332A (ja) | オンプレミスとオフプレミスとの通信方法、システム、プログラム | |
US11134117B1 (en) | Network request intercepting framework for compliance monitoring | |
Timilsina | A Framework for Location Independent Data and Compute for Data Intensive Science | |
US11860901B1 (en) | SQL execution over HTTP for relational databases using connection pooling | |
Harwalkar et al. | Private STaaS with OpenStack Cinder Volumes for Hybrid/Multi-cloud | |
JP2023541367A (ja) | 単一のターゲットテーブルに対する、複数の行またはパーティションの効率的なバルクロード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230531 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240625 |