(57)【特許請求の範囲】
【請求項１】
ネットワークを備える、クラウドベースのサービス交換ポイントであって、ネットワークデータセンターを運営する、クラウドエクスチェンジプロバイダによって運営される、クラウドベースのサービス交換ポイントと、
それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、データモデルに従ったサービス定義を含む、エンドツーエンドサービスに対する、サービス要求を受信するように構成され、
前記サービス定義は、共通のマイクロサービス定義に従って、前記複数のクラウドサービスの各々を規定し、
前記共通のマイクロサービス定義は、
前記クラウドベースのサービス交換ポイントの第１のエンドポイントであって、第１のクラウドサービスプロバイダを識別し、前記クラウドベースのサービス交換ポイント内の前記第１のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第１のエンドポイント規定データを規定する、第１のエンドポイントと、
前記クラウドベースのサービス交換ポイントの第２のエンドポイントであって、顧客及び第２のクラウドサービスプロバイダのうちの一つを識別し、前記クラウドベースのサービス交換ポイント内の前記第２のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第２のエンドポイント規定データを規定する、第２のエンドポイントと、を規定し、
前記サービス要求が、前記複数のクラウドサービスに対するトポロジをさらに規定し、
前記サービス要求に応答して、前記複数のクラウドサービスに対する前記トポロジに従って、前記複数のクラウドサービスのシーケンスに沿った前記エンドツーエンドのサービスに対するサービストラフィックを、前記サービストラフィックに対する前記それぞれのクラウドサービスプロバイダネットワークによるアプリケーションのため、転送するように、前記クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、
少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームと、
を備える、ネットワークデータセンター。
【請求項２】
前記クラウドベースのサービス交換ポイントをプロビジョニングするために、前記プログラム可能なネットワークプラットフォームは、前記クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ３ルートを受信するよう、前記クラウドベースのサービス交換ポイントの仮想ルータを構成するように構成され、
前記仮想ルータは、前記複数のクラウドサービスに対する前記トポロジに従う、前記クラウドサービスプロバイダネットワークに対する前記レイヤ３ルートに従って、前記サービストラフィックを転送するように構成される、
請求項１に記載のネットワークデータセンター。
【請求項３】
前記クラウドベースのサービス交換ポイントは、クラウドエクスチェンジプロバイダによって運営され、前記ネットワークデータセンター内に設置される、レイヤ３（Ｌ３）自律システムを備え、
前記Ｌ３自律システムは、複数のトンネルによって、複数のプロバイダエッジ（ＰＥ）ルータを相互接続する、インターネットプロトコルネットワークを備え、
前記クラウドベースのサービス交換ポイントをプロビジョニングするために、前記プログラム可能なネットワークプラットフォームは、前記複数のトンネルのうちの一つを備える、エンドツーエンドのＬ３経路を確立するように、前記複数のＰＥルータを構成するように構成され、レイヤ３で前記クラウドサービスプロバイダネットワークの各々を前記仮想ルータに接続する、
請求項２に記載のネットワークデータセンター。
【請求項４】
前記クラウドベースのサービス交換ポイントをプロビジョニングするために、前記プログラム可能なネットワークプラットフォームは、前記クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ２仮想プライベートネットワークで、前記クラウドベースのサービス交換ポイントの仮想ルータを構成するように構成され、
前記仮想ルータは、前記複数のクラウドサービスに対する前記トポロジに従う、前記クラウドサービスプロバイダネットワークに対する前記それぞれのレイヤ２仮想プライベートネットワークに従って、前記サービストラフィックを転送するように構成される、
請求項１に記載のネットワークデータセンター。
【請求項５】
前記サービス定義は、前記複数のクラウドサービスを備える全体のサービスに対して、権限を持つサービス所有者を指定する、請求項１に記載のネットワークデータセンター。
【請求項６】
前記サービス定義は、前記複数のクラウドサービスを備える全体のサービスに対して、サービス識別子を指定する、請求項１に記載のネットワークデータセンター。
【請求項７】
前記サービス要求は、前記クラウドエクスチェンジプロバイダの顧客によって創出される、請求項１に記載のネットワークデータセンター。
【請求項８】
前記プログラム可能なネットワークプラットフォームは、前記複数のクラウドサービスの各クラウドサービスに対して、オーケストレーションシステムに、前記クラウドサービスプロバイダネットワーク内で前記クラウドサービスを調整させるように、対応する前記クラウドサービスプロバイダネットワークに対する前記オーケストレーションシステムに、前記クラウドサービスのサービス要求を送信するように構成される、請求項１に記載のネットワークデータセンター。
【請求項９】
前記サービス要求は、前記クラウドベースのサービス交換ポイントによって適用される、ネイティブサービスをさらに規定し、
前記プログラム可能なネットワークプラットフォームは、前記サービス要求に応答して、前記複数のクラウドサービスのうちの少なくとも一つに対するサービストラフィックに、前記ネイティブサービスを適用するように、前記クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、
請求項１に記載のネットワークデータセンター。
【請求項１０】
前記プログラム可能なネットワークプラットフォームは、第三者オーケストレーションモジュールを備え、
前記プログラム可能なネットワークプラットフォームは、前記サービス要求に応じて、第１のクラウドサービスプロバイダが、前記クラウドサービスプロバイダネットワークのうちの第１のクラウドサービスプロバイダネットワークにおいて、前記サービス要求に対する前記複数のクラウドサービスのうちの第１のクラウドサービスを調整することを要求するために、前記クラウドサービスプロバイダのうちの前記第１のクラウドサービスプロバイダのオーケストレーションシステムと通信するように、前記第三者オーケストレーションモジュールを呼び出すように構成され、
前記プログラム可能なネットワークプラットフォームは、前記クラウドベースのサービス交換ポイントに連結する前記第１のクラウドサービスプロバイダネットワークから、前記クラウドベースのサービス交換ポイントに連結する顧客ネットワークに、前記第１のクラウドサービスを送達するように、前記クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、
請求項１に記載のネットワークデータセンター。
【請求項１１】
前記プログラム可能なネットワークプラットフォームは、前記第三者オーケストレーションモジュールから、前記第１のクラウドサービスに対する接続性情報を受信するように構成され、
前記プログラム可能なネットワークプラットフォームは、前記第１のクラウドサービスのデリバリのために、前記クラウドベースのサービス交換ポイントと、前記第１のクラウドサービスプロバイダネットワークとの間のネットワーク接続性を使用可能にするように、前記接続性情報に基づき、前記クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、
請求項１０に記載のネットワークデータセンター。
【請求項１２】
データセンター内のクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームによって、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、データモデルに従ったサービス定義を含む、エンドツーエンドサービスに対する、サービス要求を受信することであって、
前記サービス定義は、共通のマイクロサービス定義に従って、前記複数のクラウドサービスの各々を規定し、
前記共通のマイクロサービス定義は、
前記クラウドベースのサービス交換ポイントの第１のエンドポイントであって、第１のクラウドサービスプロバイダを識別し、前記クラウドベースのサービス交換ポイント内の前記第１のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第１のエンドポイント規定データを規定する、第１のエンドポイントと、
前記クラウドベースのサービス交換ポイントの第２のエンドポイントであって、顧客及び第２のクラウドサービスプロバイダのうちの一つを識別し、前記クラウドベースのサービス交換ポイント内の前記第２のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第２のエンドポイント規定データを規定する、第２のエンドポイントと、を規定し、
前記サービス要求が、前記複数のクラウドサービスに対するトポロジをさらに規定する、ことと、
前記サービス要求に応答する前記プログラム可能なネットワークプラットフォームによって、前記複数のクラウドサービスに対する前記トポロジに従って、前記複数のクラウドサービスのシーケンスに沿った前記エンドツーエンドのサービスに対するサービストラフィックを、前記サービストラフィックに対する前記それぞれのクラウドサービスプロバイダネットワークによるアプリケーションのため、転送するように、前記クラウドベースのサービス交換ポイントをプロビジョニングすることと、
を含む、方法。
【請求項１３】
実行されるとき、データセンターを基盤とするクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームの、少なくとも一つのプログラム可能なプロセッサに、
それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、データモデルに従ったサービス定義を含む、エンドツーエンドサービスに対する、サービス要求を受信することであって、
前記サービス定義は、共通のマイクロサービス定義に従って、前記複数のクラウドサービスの各々を規定し、
前記共通のマイクロサービス定義は、
前記クラウドベースのサービス交換ポイントの第１のエンドポイントであって、第１のクラウドサービスプロバイダを識別し、前記クラウドベースのサービス交換ポイント内の前記第１のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第１のエンドポイント規定データを規定する、第１のエンドポイントと、
前記クラウドベースのサービス交換ポイントの第２のエンドポイントであって、顧客及び第２のクラウドサービスプロバイダのうちの一つを識別し、前記クラウドベースのサービス交換ポイント内の前記第２のエンドポイントのポート、データセンター、及びメトロロケーションの少なくとも１つを規定する第２のエンドポイント規定データを規定する、第２のエンドポイントと、を規定し、
前記サービス要求が、前記複数のクラウドサービスに対するトポロジをさらに規定する、ことと、
前記サービス要求に応答して、前記複数のクラウドサービスに対する前記トポロジに従って、前記複数のクラウドサービスのシーケンスに沿った前記エンドツーエンドのサービスに対するサービストラフィックを、前記サービストラフィックに対する前記それぞれのクラウドサービスプロバイダネットワークによるアプリケーションのため、転送するように、前記クラウドベースのサービス交換ポイントをプロビジョニングすることと、
を含む動作を実施させる、命令を備える、非一時的なコンピュータで読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１５年５月１２日出願の米国特許仮出願番号第６２／１６０，５４７号の利益を主張するものであり、その内容は、参照により全て本発明に援用される。本出願は、各々２０１６年１月２０日に出願された米国特許出願番号第１５／００１，７６６号、第１５／００１，８２２号、第１５／００１，８３９号、第１５／００１，８６２号、第１５／００１，８７５号、及び第１５／００１，９１９号に関係し、それらの各々の内容は参照により全て本発明に援用される。
【０００２】
本発明は、コンピュータネットワークに関し、より具体的には、クラウドサービスの顧客とクラウドサービスプロバイダとの間における、サービスのプロビジョニング及びデリバリの促進に関する。
【背景技術】
【０００３】
クラウドコンピューティングとは、インターネットなどのネットワークを介してアクセス可能な、動的に拡張可能なコンピューティングリソースの使用を指す。よく「クラウド」と呼ばれるコンピューティングリソースは、一つ以上のサービスをユーザに提供する。これらのサービスは、サービスタイプに従って分類されてもよく、例えば、アプリケーション／ソフトウェア、プラットフォーム、インフラ、仮想化、並びにサーバ及びデータ記憶部を含んでもよい。サービスタイプ名は、「ａｓ‐ａ‐Ｓｅｒｖｉｃｅ」という語句の前に追加されることが多く、例として、アプリケーション／ソフトウェア及びインフラのデリバリは、それぞれＳｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＰａａＳ）、及びＩｎｆｒａｓｔｒｕｃｔｕｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＩａａＳ）と呼んでもよい。
【０００４】
用語「クラウドベースのサービス」又はより簡単に「クラウドサービス」は、クラウドによって提供されるサービスだけでなく、クラウドの顧客が、クラウドにより提供されるサービスのオンラインデリバリのために、クラウドサービスプロバイダと契約するサービスプロビジョニングの形態も指す。クラウドサービスプロバイダは、パブリッククラウド、プライベートクラウド、又はハイブリッドクラウドを管理し、一つ以上のクラウドの顧客へのクラウドサービスのオンラインデリバリを促進する。
【発明の概要】
【０００５】
概して、本開示は、クラウドエクスチェンジ及び／又はクラウドエクスチェンジに結合するクラウドサービスプロバイダによって提供される、サービスのビジネス要件をカプセル化するサービス要求を応答可能で確実に遂行するように、クラウドベースのサービス交換（「クラウドエクスチェンジ」）を動的にプログラミングする、プログラム可能なネットワークプラットフォームについて記載する。本明細書に記載する通りのプログラム可能なネットワークプラットフォームは、結果として、明確に定義されたサービスポリシー、サービス品質、サービスレベル契約、及び費用に従い、並びにビジネスレベルのサービス用のサービストポロジにさらに従い、異種のクラウドサービスプロバイダにわたってビジネスレベルのサービスを調整してもよい。
【０００６】
プログラム可能なネットワークプラットフォームによって、クラウドエクスチェンジを運営するクラウドサービスプロバイダが、例えば、複数のクラウドサービスプロバイダから一つ以上のクラウドの顧客へ、クラウドサービスデリバリのために仮想接続を促進するように、クラウドエクスチェンジを動的に構成及び管理することが可能になる。クラウドエクスチェンジによって、クラウドの顧客が、性能を向上させ、費用を削減し、接続のセキュリティ及びプライバシーを高め、クラウドコンピューティングをさらなる用途に利用するために、パブリックインターネットを迂回して、クラウドサービスプロバイダに直接接続することが可能となってもよい。このように、企業、ネットワーク回線事業者、及びＳａａＳ顧客は、例えば、当該サービスが自身のデータセンターネットワークの一部であるか、又はそうでなければ自身のデータセンターネットワークに直接連結しているかのように、少なくともいくつかの態様において、クラウドサービスを内部アプリケーションと統合できる。
【０００７】
いくつかの態様では、本明細書に記載する通りのプログラム可能なネットワークプラットフォームは、集中ネットワークコントローラ（ＣＮＣ）が、ネットワークフィールドユニット（ＮＦＵ）の形態で、グローバルに分散しインテリジェントな論理を管理する、配信モデルに従って動作する。ＣＮＣは、インタフェースを介してビジネスサービス要求を受信し、クラウドエクスチェンジ内でビジネスサービスとして送達され確実に行われるように、ビジネスインスタンス化パラメータ及びネットワークプロビジョニングパラメータに、ビジネスサービス要求を変換してもよい。したがって、ＣＮＣは、プログラム可能なネットワークプラットフォームのインテリジェントな中央処理装置として動作する。プログラム可能なネットワークプラットフォームの各インスタンス化は、このインテリジェントな論理の一つの論理インスタンス（すなわち、ＣＮＣ）を有してもよい。ＣＮＣは、監視、分析、計画、及び実行（Ｍｏｎｉｔｏｒ，  Ａｎａｌｙｚｅ，  Ｐｌａｎ  ａｎｄ  Ｅｘｅｃｕｔｅ：ＭＡＰＥ）ループ法を使用してサービス保証を提供してもよく、サービスレベル契約をサービスが忠実に守ることを保証するように実装される。
【０００８】
様々なＮＦＵが、プログラム可能なネットワークプラットフォームを運営する、クラウドエクスチェンジプロバイダのグローバルに分散するクラウドエクスチェンジポイント間に分散する。各ＮＦＵは、ＣＮＣからネットワークインスタンス化コマンド／パラメータを受信し、サービスを送達するのに必要なネットワークリソースをインスタンス化し、構成する。ＮＦＵは、ＣＮＣの要求に従って、ネットワークサービスを送達して確実に行う知能を有する。いくつかの態様では、ＮＦＵは、サービス要求が必要とする場合には、第三者オーケストレーションシステムと通信する機能をさらに有する。ＮＦＵは、ユニットによって送達されるネットワークサービスが、サービスの有効期間中に確実に行われることを保証するように、別個のＭＡＰＥループを適用する。
【０００９】
いくつかの態様では、本明細書に記載するプログラム可能なネットワークプラットフォームは、ポリシー、セキュリティ、及びＳＬＡの一貫性を保証しながら、一つのサービスとして、ネイティブ構成要素及び第三者構成要素の両方に関連するサービスの調整を提供してもよい。プログラム可能なネットワークプラットフォームは、第三者（又は「提携企業の」）オーケストレーションモジュール（又は「プラグイン」）を使用して、第三者サービス構成要素を調整してもよい。第三者オーケストレーションモジュールによって、第三者オーケストレーションシステムが、プログラム可能なネットワークプラットフォームで、自身の機能（例えば、サービスカタログ、ポリシー、セキュリティ、及びＳＬＡ）を登録することが可能になる。サービス所有者として、クラウドサービスプロバイダは、対応する第三者オーケストレーションモジュールを介して、サービスデリバリに対するワークフローの一部として、第三者オーケストレーションシステムに、サービスを守り、サービスに対して第三者サービスを送達するように指図するよう、プログラム可能なネットワークプラットフォームを使用してもよい。
【００１０】
いくつかの態様では、本明細書に記載するプログラム可能なネットワークプラットフォームは、複数の異なるクラウドサービスプロバイダによって提供される、複数の構成サービスから成るサービスを送達するように、クラウドエクスチェンジをプロビジョニングしてもよい。これらの構成サービスの各々は、サービストラフィックに適用される、全体のサービスの一部である点から、本明細書では「マイクロサービス」と呼ぶ。すなわち、複数のマイクロサービスは、サービストラフィックに対して全体のサービスを構成するために、ある特定の「配置」、「順序」、又は「トポロジ」でサービストラフィックに適用されてもよい。マイクロサービス自体が、クラウドサービスプロバイダによって適用又は提供されてもよい。
【００１１】
このように、プログラム可能なネットワークプラットフォームは、異種のクラウドサービスプロバイダにわたってビジネスレベルのサービスを調整してもよい。プログラム可能なネットワークプラットフォームは、インタフェースを公開し、そのインタフェースによって、ポータル、コンソール（例えば、ユーザインタフェースアプリケーション）、又はその他のアプリケーションは、サービスポリシー、品質、ＳＬＡ、及び費用を、異なるクラウドサービスプロバイダ（又は「クラウドベンダー」）によって提供される、マイクロサービスから成る連携サービストポロジとして定義してもよい。各マイクロサービスには、エンドツーエンドのビジネスサービス定義全体の一部として、対応するサービスポリシー、品質、ＳＬＡ、及び費用があってもよい。複数の構成要素のマイクロサービスを有するエンドツーエンドのサービスに対するサービス定義が提供された場合、プログラム可能なネットワークプラットフォームは、クラウドエクスチェンジのデータプレーン（例えば、クラウドエクスチェンジに対するエッジネットワーク）内でエンドツーエンドのサービスを具体化するために、クラウドエクスチェンジ内でマイクロサービスの各々を調整して、定義されたトポロジに従ってマイクロサービスをまとめてつなぎ合わせる。結果として、クラウドエクスチェンジは、データプレーンにおいて、クラウドエクスチェンジの顧客に代わり、クラウドエクスチェンジの顧客のために、それぞれのクラウドサービスプロバイダによって提供されるマイクロサービスを相互接続する。それを行う際に、クラウドエクスチェンジプロバイダは、クラウドサービスプロバイダと顧客との間のビジネス取引を促進してもよい。
【００１２】
いくつかの態様では、複数の構成要素のマイクロサービスを有するエンドツーエンドのサービスに対するサービス定義が提供された場合、本明細書に記載する通りのプログラム可能なネットワークプラットフォームは、クラウドエクスチェンジ内でエンドツーエンドのサービスを具体化するために、クラウドエクスチェンジ内でマイクロサービスの各々を調整して、定義されたトポロジに従ってマイクロサービスをまとめてつなぎ合わせてもよい。本開示の技術に従って、エンドツーエンドのサービスに対するサービス定義によって、マイクロサービスのサービスの連鎖に正しく順序付けすることを保証するように、プログラム可能なネットワークプラットフォームのユーザが、エンドツーエンドのサービスだけでなく、サービストポロジも定義することが可能になってもよい。また、サービス定義に対するデータモデルにカプセル化されるデータは、ビジネス目的（例えば、支払請求及びＳＬＡ保証）の、権限を持つサービス所有者を含んでもよい。「ユーザ」は、権限を持つサービス所有者である、顧客、クラウドエクスチェンジプロバイダ、又はクラウドサービスプロバイダを指してもよい。
【００１３】
本明細書に記載する通りの、マルチクラウドでマルチサービスのサービス定義に対するデータモデルを使用することによって、プログラム可能なネットワークプラットフォーム（及び／又はソフトウェア定義ネットワーク（ＳＤＮ）コントローラ若しくはオーケストレータなどのその他のオーケストレーションシステム）が、全体のサービスを構成する、１組のマイクロサービスの要求として、サービス要求を認識することが可能になってもよい。いくつかの実施例では、サービス定義は、プログラム可能なネットワークプラットフォームが、クラウドエクスチェンジプロバイダによって提供されるネイティブサービス、又は一つ若しくは複数のクラウドサービスプロバイダによって提供されるクラウドサービスのどちらかである、数個のサービスをつないだサービスを提供するのを可能にするであろう、数個のセクションを含む。すなわち、プログラム可能なネットワークプラットフォームを運営するクラウドエクスチェンジプロバイダは、複数のマイクロサービスに対するそれぞれの定義、及び複数のマイクロサービスに対するトポロジ（又はシーケンス）が与えられると、エンドツーエンドのサービスを促進するように、トポロジに従ってマイクロサービスを相互接続する、連鎖するサービスを提供できる。したがって、データモデルは、プログラム可能なネットワークプラットフォームが、要求されるサービスのつながりを効果的にインスタンス化でき、また、それによってもたらされるサービスが、正しいトポロジでつながっていることも保証する、データを提供する。データモデルは、プログラム可能なネットワークプラットフォームによって、クラウドエクスチェンジ用のネイティブのプログラム可能なネットワークプラットフォームが、完成させるためにその他のサービスオーケストレーションシステムに発行してもよい、一つ以上のサービス要求に分割されてもよい。その他のサービスオーケストレーションシステムは、例えば、ＳＤＮコントローラ、及び／又はＮＦＶインスタンス化と、ＮＦＶインスタンスから／へのサービストラフィックのルーティングとを促進する、クラウドサービスプロバイダ用のオーケストレーションシステムを含んでもよい。
【００１４】
いくつかの実施例では、方法は、データセンター内のクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームによって、データモデルに従うサービス定義を含むサービス要求を受信することであって、サービス定義が、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定し、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、サービス要求に応答するプログラム可能なネットワークプラットフォームによって、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングすることと、を含む。
【００１５】
いくつかの実施例では、ネットワークデータセンターは、ネットワークを備える、クラウドベースのサービス交換ポイントであって、ネットワークデータセンターを運営する、クラウドエクスチェンジプロバイダによって運営される、クラウドベースのサービス交換ポイントと、データモデルに従うサービス定義を含む、サービス要求を受信するように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームであって、サービス定義が、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定し、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定し、サービス定義が、共通のマイクロサービス定義に従って、複数のクラウドサービスの各々を規定する、プログラム可能なネットワークプラットフォームであって、サービス要求に応答して、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームと、を備える。
【００１６】
いくつかの実施例では、方法は、データセンター内のクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームによって、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、サービス要求を受信することであって、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、サービス要求に応答するプログラム可能なネットワークプラットフォームによって、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングすることと、を含む。
【００１７】
いくつかの実施例では、ネットワークデータセンターは、ネットワークを備える、クラウドベースのサービス交換ポイントであって、ネットワークデータセンターを運営する、クラウドエクスチェンジプロバイダによって運営される、クラウドベースのサービス交換ポイントと、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、サービス要求を受信するように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームであって、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、プログラム可能なネットワークプラットフォームであって、サービス要求に応答して、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームと、を備える。
【００１８】
いくつかの実施例では、プログラム可能なネットワークプラットフォームは、少なくとも一つのプログラム可能なプロセッサと、クラウドサービスプロバイダのオーケストレーションシステムと通信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、第三者オーケストレーションモジュールと、クラウドエクスチェンジプロバイダによって運営されるクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、集中ネットワークコントローラと、を備え、集中ネットワークコントローラは、サービス要求に応じて、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整するように要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すようにさらに構成され、集中ネットワークコントローラは、クラウドエクスチェンジのネットワークに連結するクラウドサービスプロバイダネットワークから、クラウドエクスチェンジのネットワークに連結する顧客ネットワークへ、クラウドサービスを送達するように、データセンター内でクラウドエクスチェンジのネットワークをプロビジョニングする。
【００１９】
いくつかの実施例では、方法は、プログラム可能なネットワークプラットフォームの集中ネットワークコントローラによって、クラウドエクスチェンジプロバイダによって運営されるクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信することと、サービス要求に応じる集中ネットワークコントローラによって、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整するように要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すことと、集中ネットワークコントローラによって、クラウドベースのサービス交換ポイントに連結するクラウドサービスプロバイダネットワークから、クラウドベースのサービス交換ポイントに連結する顧客ネットワークへ、クラウドサービスを送達するように、データセンター内でクラウドエクスチェンジのネットワークをプロビジョニングすることと、を含む。
【００２０】
いくつかの実施例では、ネットワークデータセンターは、ネットワークを備える、クラウドエクスチェンジであって、クラウドエクスチェンジプロバイダによって運営されるクラウドエクスチェンジと、少なくとも一つのプログラム可能なプロセッサ、クラウドサービスプロバイダのオーケストレーションシステムと通信する、第三者オーケストレーションモジュール、及びクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、集中ネットワークコントローラを備える、プログラム可能なネットワークプラットフォームと、を備え、集中ネットワークコントローラは、サービス要求に応じて、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整するように要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すようにさらに構成され、集中ネットワークコントローラは、クラウドエクスチェンジのネットワークに連結するクラウドサービスプロバイダネットワークから、クラウドエクスチェンジのネットワークに連結する顧客ネットワークへ、クラウドサービスを送達するように、クラウドエクスチェンジのネットワークをプロビジョニングする。
【００２１】
いくつかの実施例では、方法は、集中ネットワーク制御（ＣＮＣ）システムによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ＣＮＣシステムによってソフトウェアインタフェースを提供することと、ＣＮＣシステムによって、ソフトウェアインタフェースを介して、ネットワークデータセンターのエッジネットワーク内でサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ＣＮＣシステムによって、サービス要求に基づき、サービスを実装する一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＣＮＣシステムによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成するように、ＣＮＣシステムによって、少なくとも一つのネットワークフィールドユニットへネットワークサービス定義を送信することとを含む。
【００２２】
いくつかの実施例では、集中ネットワーク制御（ＣＮＣ）システムは、一つ以上のコンピュータプロセッサと、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ＣＮＣシステムによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、ソフトウェアインタフェースを介して、ネットワークデータセンターのエッジネットワーク内でサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、サービス要求に基づき、サービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成するように、少なくとも一つのネットワークフィールドユニットへネットワークサービス定義を送信することと、を行わせる命令を備える、メモリとを備える。
【００２３】
いくつかの実施例では、方法は、少なくとも一つのネットワークフィールドユニットによって、一つ以上のネットワークデータセンターのエッジネットワークの一部分の内部で、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を受信することであって、ネットワークサービス定義は、ネットワークサービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能であり、一つ以上のネットワークデータセンター内のエッジネットワークの一部分は、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークフィールドユニットによって、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、ネットワークフィールドユニットによって、ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を含む。
【００２４】
いくつかの実施例では、ネットワークフィールドユニットは、一つ以上のコンピュータプロセッサと、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、一つ以上のネットワークデータセンターのエッジネットワークの一部分の内部で、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を受信することであって、ネットワークサービス定義は、ネットワークサービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能であり、一つ以上のネットワークデータセンター内のエッジネットワークの一部分は、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を行わせる命令を備える、メモリとを備える。
【００２５】
いくつかの実施例では、方法は、ＰＮＰにより制御される一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、プログラム可能なネットワークプラットフォーム（ＰＮＰ）によってソフトウェアインタフェースを提供することと、ＰＮＰによって、ソフトウェアインタフェースを介して、一つ以上のネットワークデータセンターのエッジネットワーク内でネットワークサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ＰＮＰによって、サービス要求に基づき、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＰＮＰによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、少なくとも一つのネットワークフィールドユニットによって、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、少なくとも一つのネットワークフィールドユニットによって、サービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を含む。
【００２６】
いくつかの実施例では、プログラム可能なネットワークプラットフォーム（ＰＮＰ）は、一つ以上のコンピュータプロセッサと、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ＰＮＰによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、一つ以上のネットワークデータセンターのエッジネットワーク内でネットワークサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＰＮＰによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、サービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を行わせる命令を備える、メモリとを備える。
【００２７】
本発明の一つ以上の実施形態の詳細は、添付図面及び以下の記載において説明する。本発明のその他の特徴、目的、及び利点は、本明細書及び図面、並びに請求項より明らかである。
【図面の簡単な説明】
【００２８】
【図１】クラウドベースのサービス交換に動作環境を提供する、データセンターの上位レベル図を示すブロック図である。
【図２】本明細書に記載する技術に従って、クラウドベースのサービス交換に動作環境を提供する、データセンターの上位レベル図を示すブロック図である。
【図３Ａ】本開示に記載する技術に従い、クラウドエクスチェンジプロバイダの顧客に対するプロビジョニングのために、複数のクラウドサービスプロバイダのクラウドサービスを集約し、一つ以上のクラウドサービスプロバイダへの複数の顧客のアクセスを集約する、クラウドエクスチェンジ用のプログラム可能なネットワークプラットフォームによる、例示のネットワークインフラ及びサービスプロビジョニングを示すブロック図である。
【図３Ｂ】本開示に記載する技術に従い、クラウドエクスチェンジプロバイダの顧客に対するプロビジョニングのために、複数のクラウドサービスプロバイダのクラウドサービスを集約し、一つ以上のクラウドサービスプロバイダへの複数の顧客のアクセスを集約する、クラウドエクスチェンジ用のプログラム可能なネットワークプラットフォームによる、例示のネットワークインフラ及びサービスプロビジョニングを示すブロック図である。
【図４】本明細書に記載する技術に従い、クラウドエクスチェンジポイントのルータが、複数のクラウドサービスプロバイダネットワークから顧客ネットワークへ集約されたサービストラフィックをルーティング及び転送するために、ＶＰＮのルーティング及び転送インスタンスを用いて、プログラム可能なネットワークプラットフォームによって構成される、データセンターをベースとするクラウドエクスチェンジポイントの実施例を示すブロック図である。
【図５】ソフトウェア制御ネットワーク用のプラットフォームを示すブロック図であり、プラットフォームは、本開示の一つ以上の技術に従い動作する。
【図６】本開示の一つ以上の技術に従う、例示のサービスプロビジョニングエンジンを示すブロック図である。
【図７】本開示の一つ以上の技術に従う、例示のサービス保証エンジンを示すブロック図である。
【図８】本開示の一つ以上の技術に従う、例示のネットワークプロビジョニングエンジンを示すブロック図である。
【図９】本開示の一つ以上の技術に従う、例示のネットワーク保証エンジンを示すブロック図である。
【図１０】本開示の一つ以上の技術に従う、プログラム可能なネットワークプラットフォームを示すブロック図である。
【図１１】本開示の一つ以上の技術に従う、サービスを要求する例示のユーザインタフェースを示すブロック図である。
【図１２】本開示の一つ以上の技術に従い、サービスに対する費用の見積りを表示する、例示のユーザインタフェースを示すブロック図である。
【図１３】本開示に記載する技術に従い動作する、プログラム可能なネットワークプラットフォームの例示の構成要素を示す概念図である。
【図１４Ａ】顧客へのデリバリのために、クラウドエクスチェンジにより集約される、複数のクラウドサービスプロバイダからのクラウドサービストラフィックに、複数のネイティブサービスを適用するように構成された、プログラム可能なエッジネットワークの例示の構成を示すブロック図である。
【図１４Ｂ】それぞれのクラウドサービスプロバイダによって適用される、複数の構成マイクロサービスのシーケンスである、エンドツーエンドのサービスを提供するように構成された、プログラム可能なエッジネットワークの例示の構成を示すブロック図である。
【図１５】本開示に記載する技術に従い、プログラム可能なネットワークプラットフォームを使用してクラウドエクスチェンジをプログラムするための、構成要素間のインタフェースを示す概念図である。
【図１６】本開示に記載する技術に従い、外部アプリケーションが、クラウドサービスプロバイダからのクラウドサービスのデリバリを促進するように、クラウドエクスチェンジを構成するのに利用してもよいインタフェースを含む、プログラム可能なネットワークプラットフォームを示すブロック図である。
【図１７】本開示の一つ以上の技術に従い動作する、コンピュータデバイスの一実施例のさらなる詳細を示すブロック図である。
【発明を実施するための形態】
【００２９】
図及び文章中では、同様の参照符号は同様の要素を示す。
【００３０】
概して、本開示は、クラウドベースのサービス交換（「クラウドエクスチェンジ」）をリアルタイムで構成及び管理するための、プログラム可能なネットワークプラットフォームについて記載する。本明細書に記載する通り、相互接続プラットフォームは、例えば、企業、ネットワーク回線事業者、及びＳａａＳ顧客といったエクスチェンジの顧客に、複数のクラウドサービスプロバイダ（ＣＳＰ）への安全な仮想接続をグローバルに提供する。複数のＣＳＰは、顧客が、ＣＳＰによって提供される一つ以上のクラウドサービスに接続できるクラウドエクスチェンジにおいて、それぞれ少なくとも一つのアクセス可能なポートを有することから、クラウドエクスチェンジに参加する。
【００３１】
本明細書に記載する様々な実施例に従い、いずれの顧客のプライベートネットワークも、共有ポイントでいかなる他の顧客にも直接交差接続が可能となり、それによって、顧客ネットワーク間のネットワークトラフィックの直接交換が可能となる、クラウドエクスチェンジについて記載する。顧客には、ネットワーク回線事業者（又はネットワークサービスプロバイダ）、企業、及び一つ以上のクラウドサービスプロバイダによって提供されるクラウドサービスのその他ユーザを含んでもよい。
【００３２】
図１は、本明細書に記載する技術に従い、複数のクラウドエクスチェンジポイントを提供する、大都市をベースとするクラウドエクスチェンジを有する、ネットワークシステム２の概念図を示す。クラウドベースのサービス交換１００（「クラウドエクスチェンジ１００」）のクラウドベースのサービス交換ポイント１２８Ａ〜１２８Ｄ（以後「クラウドエクスチェンジポイント」と記載し、「クラウドエクスチェンジポイント１２８」と総称する）の各々は、クラウドをベースとするサービスの顧客（「クラウドの顧客」）及びクラウドベースのサービスプロバイダ（「クラウドプロバイダ」）が、クラウドサービスをそれぞれ受け取り提供するように接続する、回復力があり独立したクラウドベースのサービス交換を提供する、地理的に同じ大都市圏（「大都市をベースとする」、例えば、ニューヨーク州ニューヨーク市、カリフォルニア州シリコンバレー、ワシントン州シアトル・タコマ、ミネソタ州ミネアポリス・セントポール、英国ロンドンなど）内に設置される異なるデータセンターを表してもよい。様々な実施例において、クラウドエクスチェンジ１００は、より多くの又はより少ないクラウドエクスチェンジポイント１２８を含んでもよい。いくつかのインスタンスでは、クラウドエクスチェンジ１００は、一つのみのクラウドエクスチェンジポイント１２８を含む。本明細書に使用する通り、「クラウドエクスチェンジ」又は「クラウドベースのサービス交換」への言及は、クラウドエクスチェンジポイントを指してもよい。クラウドエクスチェンジプロバイダは、複数の異なる大都市圏にクラウドエクスチェンジ１００のインスタンスを配備してもよく、クラウドエクスチェンジ１００の各インスタンスは、一つ以上のクラウドエクスチェンジポイント１２８を有する。
【００３３】
クラウドエクスチェンジポイント１２８の各々は、クラウドの顧客１０８Ａ〜１０８Ｄ（総称して「クラウドの顧客１０８」）が、複数のクラウドサービスプロバイダ１１０Ａ〜１１０Ｎ（総称して「クラウドサービスプロバイダ１１０」）からクラウドサービスを受け取る、ネットワークインフラ及び動作環境を含む。クラウドの顧客１０８は、クラウドエクスチェンジポイント１２８のうちの一つへのレイヤ３ピアリング及び物理的接続を経由して直接、又はネットワークサービスプロバイダ１０６Ａ〜１０６Ｂ（総称して「ＮＳＰ１０６」又は代替として「回線事業者１０６」）のうちの一つを経由して間接的に、クラウドベースのサービスを受け取ってもよい。ＮＳＰ１０６は、クラウドエクスチェンジポイント１２８のうちの一つ以上の内部に物理的存在を維持し、一つ又は複数の顧客１０８からのレイヤ３アクセスを集約することによって、「クラウドトランジット」を提供する。ＮＳＰ１０６は、レイヤ３で、一つ以上のクラウドエクスチェンジポイント１２８と直接ピアリングし、それを行う際に、顧客１０８がクラウドエクスチェンジ１００からクラウドサービスを取得できる、間接的なレイヤ３の接続性及びピアリングを、一つ以上の顧客１０８に提供してもよい。クラウドエクスチェンジポイント１２８の各々は、図１の実施例において、異なる自律システム番号（ＡＳＮ）を付与される。例えば、クラウドエクスチェンジポイント１２８ＡはＡＳＮ１を付与され、クラウドエクスチェンジポイント１２８ＢはＡＳＮ２を付与されるなどする。したがって、各クラウドエクスチェンジポイント１２８は、クラウドサービスプロバイダ１１０から顧客１０８へのパスベクタ型ルーティングプロトコル（例えば、ＢＧＰ）経路における次のホップである。結果として、各クラウドエクスチェンジポイント１２８は、一つ以上の広域ネットワークリンク、並びに同時インターネットアクセス及びトランジットポリシーを有するトランジットネットワークではないにもかかわらず、一つ以上のクラウドサービスプロバイダ１１０から顧客へのサービストラフィックを交換し、集約し、ルーティングするために、外部ＢＧＰ（ｅＢＧＰ）又はその他の外部ゲートウェイルーティングプロトコルによって、複数の異なる自律システムとピアリングしてもよい。言い換えると、クラウドエクスチェンジポイント１２８は、クラウドサービスプロバイダ１１０及び顧客１０８が一対ごとに維持するであろう、ｅＢＧＰピアリング関係を内在化してもよい。代わりに、顧客１０８は、クラウドエクスチェンジポイント１２８と単一のｅＢＧＰピアリング関係を構成し、クラウドエクスチェンジによって、一つ以上のクラウドサービスプロバイダ１１０から複数のクラウドサービスを受け取ってもよい。主にクラウドエクスチェンジポイントと、顧客、ＮＳＰ又はクラウドサービスプロバイダネットワークとの間のｅＢＧＰ又はその他のレイヤ３ルーティングプロトコルのピアリングに関して、本明細書に記載するものの、クラウドエクスチェンジポイントは、静的構成によって、又はＲｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＲＩＰ）、Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ（ＯＳＰＦ）、Ｉｎ��ｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ‐ｔｏ‐Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ（ＩＳ‐ＩＳ）、若しくはその他のルート配信プロトコルによってなど、その他の手段でこれらのネットワークからのルートを学習してもよい。
【００３４】
上記の実施例の通り、顧客１０８Ｃは、クラウドエクスチェンジポイント１２８Ｃによってレイヤ３のクラウドサービスに直接アクセスするように、クラウドエクスチェンジ１００のクラウドエクスチェンジプロバイダと契約していると示される。このように、顧客１０８Ｄは、例えば、クラウドサービスプロバイダ１１０Ａへの冗長なレイヤ３の接続性を受け取る。対照的に顧客１０８Ｃは、クラウドエクスチェンジポイント１２８Ｃを経由してレイヤ３のクラウドサービスに直接アクセスし、またＮＳＰ１０６Ｂのトランジットネットワークを経由してレイヤ３のクラウドサービスにアクセスするよう、ＮＳＰ１０６Ｂと契約しているように、クラウドエクスチェンジ１００のクラウドエクスチェンジプロバイダと契約していると示される。顧客１０８Ｂは、ＮＳＰ１０６Ａ、１０６Ｂのそれぞれのトランジットネットワークを経由して、クラウドエクスチェンジポイント１２８Ａ、１２８Ｂへの冗長なクラウドアクセスを有するように、複数のＮＳＰ１０６Ａ、１０６Ｂと契約していると示される。上に記載する契約は、クラウドエクスチェンジポイント１２８のネットワークインフラにおいて、ＮＳＰ１０６及びクラウドエクスチェンジポイント１２８のスイッチングデバイス内のＬ３ピアリング構成によって、並びに例えばレイヤ３の仮想回路といった、クラウドサービスプロバイダ１１０のネットワークをＮＳＰ１０６のネットワーク及び顧客１０８のネットワークに相互接続するように、クラウドエクスチェンジポイント１２８内に確立されるＬ３接続によって、インスタンスを作成され、全ては、クラウドエクスチェンジポイント１２８のうちの一つ以上の内部に接続性を提供する少なくとも一つのポートを有する。
【００３５】
いくつかの実施例では、クラウドエクスチェンジ１００によって、いずれのネットワークサービスプロバイダ（ＮＳＰ）若しくは「回線事業者」１０６Ａ〜１０６Ｂ（総称して「回線事業者１０６」）の顧客１０８Ａ、１０８Ｂ、又は顧客１０８Ｃを含むその他のクラウドの顧客のうちの対応する一つが、仮想レイヤ２（Ｌ２）又はレイヤ３（Ｌ３）接続で、いかなる他の顧客ネットワーク及び／又はＣＳＰ１１０のいずれかへ直接交差接続することが可能となり、それによって、顧客ネットワークとＣＳＰ１１０との間でネットワークトラフィックの直接交換が可能になる。
【００３６】
回線事業者１０６は各々、回線事業者１０６のネットワーク加入者が、クラウドエクスチェンジ１００を経由してＣＳＰ１１０によって提供されるクラウドサービスにアクセスできる、トランジットネットワークと関連するネットワークサービスプロバイダを表してもよい。概して、ＣＳＰ１１０の顧客は、ネットワーク回線事業者、大企業、マネージドサービスプロバイダ（ＭＳＰ）だけでなく、クラウドエクスチェンジ１００を経由してＣＳＰ１１０によって提供されるクラウドベースのサービスのような、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍ-ａａＳ（ＰａａＳ）、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ-ａａＳ（ＩａａＳ）、Ｖｉｒｔｕａｌｉｚａｔｉｏｎ-ａａＳ（ＶａａＳ）、及びｄａｔａ  Ｓｔｏｒａｇｅ-ａａＳ（ｄＳａａＳ）の顧客も含んでもよい。
【００３７】
このように、クラウドエクスチェンジ１００は、透過的かつ中立的に、ＣＳＰ１１０及び顧客と（回線事業者１０６を経由して又は直接）提携するプロセスを簡素化及び簡易化する。クラウドエクスチェンジ１００の一例示的用途は、ＣＳＰ１１０及び回線事業者１０６並びに／又は顧客１０８が、データセンター内の相互接続に一つ以上のアクセス可能なポートを利用可能にすることによってなど、既にネットワークを有してもよい、コロケーションで相互接続のデータセンターであり、クラウドエクスチェンジポイント１２８のいずれかを表してもよい。これによって、参加する回線事業者、顧客、及びＣＳＰが、同じ施設内で幅広い相互接続性の選択肢を有することが可能になる。回線事業者／顧客は、このように、一つ以上のクラウドエクスチェンジポイント１２８への一度のみの接続で、多対多の相互接続を作成する選択肢を有してもよい。言い換えると、一つ以上のクラウドサービスプロバイダのうちの異なるクラウドサービスプロバイダ又は異なるクラウドサービスにアクセスするように、トランジットネットワーク上で別々の接続を確立しなくてはならないということの代わりに、クラウドエクスチェンジ１００によって、顧客は、複数のＣＳＰ及びクラウドサービスに相互接続することが可能になる。
【００３８】
本明細書に記載する技術に従い、クラウドエクスチェンジ１００は、クラウドエクスチェンジ１００及び／又はクラウドエクスチェンジ１００に結合するクラウドサービスプロバイダ１１０によって提供される、サービスのビジネス要件をカプセル化するサービス要求をレスポンシブで確実に遂行するように、クラウドエクスチェンジ１００を動的にプログラムするプログラム可能なネットワークプラットフォーム１２０を含む。本明細書に記載する通りのプログラム可能なネットワークプラットフォーム１２０は、結果として、明確に定義されたサービスポリシー、サービス品質ポリシー、サービスレベル契約、及び費用に従い、並びにビジネスレベルのサービス用のサービストポロジにさらに従い、異種のクラウドサービスプロバイダ１１０にわたってビジネスレベルのサービスを調整してもよい。
【００３９】
プログラム可能なネットワークプラットフォーム１２０によって、クラウドエクスチェンジ１００を運営するクラウドサービスプロバイダが、例えば、複数のクラウドサービスプロバイダ１１０から一つ以上のクラウドの顧客１０８へ、クラウドベースのサービスデリバリのための仮想接続を促進するように、クラウドエクスチェンジを動的に構成及び管理することが可能になる。クラウドエクスチェンジ１００によって、クラウドの顧客１０８が、性能を向上させ、費用を削減し、接続のセキュリティ及びプライバシーを高め、クラウドコンピューティングをさらなる用途に利用するために、パブリックインターネットを迂回して、クラウドサービスプロバイダ１１０に直接接続することが可能となってもよい。このように、企業、ネットワーク回線事業者、及びＳａａＳ顧客は、例えば、当該サービスが自身のデータセンターネットワークの一部であるか、又はそうでなければ自身のデータセンターネットワークに直接結合するかのように、少なくともいくつかの態様において、クラウドサービスを内部アプリケーションと統合できる。
【００４０】
プログラム可能なネットワークプラットフォーム１２０は、クラウドエクスチェンジ１００の一つ以上のデータセンター内、又は代替として、（例えば）現地から離れたクラウドプロバイダのバックオフィス若しくは支店で実行されるアプリケーションを表してもよい。プログラム可能なネットワークプラットフォーム１２０は、データセンター間で全体又は一部が分散されてもよく、各データセンターは、クラウドエクスチェンジ１００を構成するように、異なるクラウドエクスチェンジポイント１２８と関連する。単一のクラウドエクスチェンジ１００を運営するものとして示すものの、プログラム可能なネットワークプラットフォーム１２０は、複数の異なるクラウドエクスチェンジに対するサービスのプロビジョニングを制御してもよい。代替として又は追加として、プログラム可能なネットワークプラットフォーム１２０の複数の別個のインスタンスが、それぞれの複数の異なるクラウドエクスチェンジに対するサービスのプロビジョニングを制御してもよい。
【００４１】
示す実施例では、プログラム可能なネットワークプラットフォーム１２０は、方法、フィールド、及び／又はアプリケーションがプログラム可能なネットワークプラットフォーム１２０を呼び出すのに用いてもよい、その他のソフトウェア基本要素を定義する、サービスインタフェース（又は「サービスＡＰＩ」）１１４を含む。サービスインタフェース１１４によって、回線事業者１０６、顧客１０８、クラウドサービスプロバイダ１１０、及び／又はクラウドエクスチェンジプロバイダが、クラウドエクスチェンジ１００の機能及び資産へプログラム可能にアクセスすることが可能になってもよい。
【００４２】
例えば、本明細書にさらに記載する通り、サービスインタフェース１１４は、マシンツーマシン通信を促進し、顧客とクラウドサービスプロバイダネットワークとを相互接続するために、クラウドエクスチェンジにおいて仮想回路を動的にプロビジョニングすることを可能にしてもよい。このように、プログラム可能なネットワークプラットフォーム１２０によって、クラウドサービスのプロビジョニングの態様を自動化することが可能である。例えば、サービスインタフェース１１４は、クラウドエクスチェンジに参加する複数の異なるクラウドプロバイダとの相互接続を顧客が確立、削除、及び管理する、自動化されたシームレスな手段を提供してもよい。
【００４３】
クラウドベースのサービス交換のさらなる実施例の詳細は、２０１５年４月１７日出願の米国特許仮出願番号第６２／１４９，３７４号「Cloud-Based Services Exchange」、及び２０１４年１０月３０日出願の米国特許仮出願番号第６２／０７２，９７６号「INTERCONNECTION PLATFORM FOR REAL-TIME CONFIGURATION AND MANAGEMENT OF A CLOUD-BASED SERVICES EXCHANGE」において見つけられ、各々は参照によりそれぞれ全て本発明に援用される。
【００４４】
図２は、本明細書に記載する技術に従って、クラウドベースのサービス交換２００に動作環境を提供する、データセンター２０１の上位レベル図を示すブロック図である。クラウドベースのサービス交換２００（「クラウドエクスチェンジ２００」）によって、顧客ネットワーク２０４Ｄ、２０４Ｅ、及びいずれのＮＳＰ１０６Ａ〜１０６ＣのＮＳＰネットワーク２０４Ａ〜２０４Ｃ（総称して「『プライベート』又は『回線事業者』ネットワーク２０４」）、又は顧客１０８Ａ、１０８Ｂを含むその他のクラウドの顧客のうちの対応する一つを、レイヤ３（Ｌ３）又はレイヤ２（Ｌ２）接続で、いかなる他の顧客ネットワーク及び／又はクラウドサービスプロバイダ１１０Ａ〜１１０Ｎのうちのいずれかへ直接交差接続することが可能となり、それによって、顧客ネットワークとＣＳＰ１１０との間でクラウドサービストラフィックの交換が可能になる。データセンター２０１は、倉庫又は局在するデータセンター複合施設など、集中した地域内に全体が設置され、電力、ケーブル、セキュリティ、及びその他のサービスを、データセンター２０１内にそれぞれのネットワークを（例えば、コロケーションのために）設置する、及び／又は一つ以上の外部リンクによってデータセンター２０１に接続する、ＮＳＰ、顧客、及びクラウドサービスプロバイダに提供してもよい。
【００４５】
ネットワークサービスプロバイダ１０６は各々、ＮＳＰ１０６のネットワーク加入者が、クラウドエクスチェンジ２００を経由してＣＳＰ１１０によって提供されるクラウドサービスにアクセスできる、トランジットネットワークと関連するネットワークサービスプロバイダを表してもよい。概して、ＣＳＰ１１０の顧客は、ネットワーク回線事業者、大企業、マネージドサービスプロバイダ（ＭＳＰ）だけでなく、クラウドエクスチェンジ２００を経由してＣＳＰ１１０によって提供されるクラウドベースのサービスのような、Ｓｏｆｔｗａｒｅ‐ａｓ‐a‐Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍ-ａａＳ（ＰａａＳ）、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ-ａａＳ（ＩａａＳ）、Ｖｉｒｔｕａｌｉｚａｔｉｏｎ-ａａＳ（ＶａａＳ）、及びｄａｔａ  Ｓｔｏｒａｇｅ-ａａＳ（ｄＳａａＳ）の顧客も含んでもよい。
【００４６】
このように、クラウドエクスチェンジ２００は、透過的かつ中立的に、ＣＳＰ１１０及び顧客１０８と（ＮＳＰ１０６を経由して間接的に又は直接）提携するプロセスを簡素化及び簡易化する。クラウドエクスチェンジ２００の一例示的用途は、ＣＳＰ１１０、ＮＳＰ１０６、及び／又は顧客１０８が、データセンター内の相互接続に一つ以上のアクセス可能なポートを利用可能にすることによってなど、既にネットワークを有してもよい、コロケーションで相互接続のデータセンターである。これによって、参加する回線事業者、顧客、及びＣＳＰが、同じ施設において幅広い相互接続性の選択肢を有することが可能になる。データセンター２０１のクラウドエクスチェンジ２００は、ＣＳＰ１１０及び顧客／ＮＳＰが相互に接続する、Ｌ２／Ｌ３スイッチングファブリックを提供するネットワークインフラ２２２を含む。これによって、ＮＳＰ／顧客は、クラウドエクスチェンジ２００の相互接続プラットフォームを提示する、スイッチングネットワークであり基になるネットワークインフラ２２２への一度のみの接続で、多対多の相互接続を作成する選択肢を有することが可能になる。言い換えると、一つ以上のクラウドサービスプロバイダのうちの異なるクラウドサービスプロバイダ又は異なるクラウドサービスにアクセスするように、トランジットネットワーク上で別々の接続を確立しなくてはならないということの代わりに、クラウドエクスチェンジ２００によって、顧客は、データセンター２０１内のネットワークインフラ２２２を使用して、複数のＣＳＰ及びクラウドサービスに相互接続することが可能になり、データセンター２０１は、本開示に記載するエッジネットワークのうちのいずれかを少なくとも一部表してもよい。
【００４７】
クラウドエクスチェンジ２００に接続して利用することによって、顧客は、複数のＣＳＰ１１０との複数の仮想接続を組み込み維持することと通常関連する、同じ出費を負担することなく、多くの地理的に異なる地域で、サービスを購入し多くのエンドユーザに接触できる。例えば、ＮＳＰ１０６Ａは、ＮＳＰ１０６Ｂのネットワーク２０４Ｂを使用して、自身のサービスを拡大できる。クラウドエクスチェンジ２００に接続することによって、ＮＳＰ１０６は、その他の回線事業者に自身のネットワークサービスの販売を提供することによって、さらなる収入を生み出すことができてもよい。例えば、ＮＳＰ１０６Ｃは、その他のＮＳＰに、ＮＳＰネットワーク２０４Ｃを使用する機会を提供できる。
【００４８】
クラウドエクスチェンジ２００は、少なくとも一つのサービスインタフェースを公開する、プログラム可能なネットワークプラットフォーム１２０を含み、サービスインタフェースは、アプリケーションが、プログラム可能なネットワークプラットフォーム１２０を呼び出すことができる方法、フィールド、及び／又はその他のソフトウェア基本要素を定義する点から、代替として、アプリケーションプログラミングインタフェース（ＡＰＩ）とも称され、いくつかの実施例では、それらを含んでもよい。ソフトウェアインタフェースによって、ＮＳＰ１０６及び顧客１０８は、クラウドエクスチェンジ２００の機能及び資産へのプログラム可能なアクセスが可能になる。プログラム可能なネットワークプラットフォーム１２０は、代替として、本明細書に記載する技術に従い、例えば、顧客とクラウドサービスプロバイダとの間の接続性を含む、エンドツーエンドのサービスを確立する、コントローラ、プロビジョニングプラットフォーム、プロビジョニングシステム、サービスオーケストレーションシステムなどと称されてもよい。
【００４９】
買い手側では、基になる相互接続プラットフォームによって提示されるソフトウェアインタフェースは、クラウドエクスチェンジ２００（例えば、顧客１０８及びＮＳＰ１０６）の顧客と関連するソフトウェア開発者に、プログラム可能なネットワークプラットフォーム１２０へのアクセスを可能にして利用する、ソフトウェアアプリケーションを作成することを可能にする、拡張可能なフレームワークを提供し、プログラム可能なネットワークプラットフォーム１２０によって、アプリケーションは、クラウドエクスチェンジ２００が、顧客と、ＣＳＰ１１０のうちのいずれかによって提供されるクラウドサービスとの間に接続性を確立するように要求してもよい。例えば、これら買い手側のソフトウェアインタフェースによって、ＮＳＰ及び企業顧客用の顧客アプリケーションが、例えば、クラウドエクスチェンジにアクセスする承認を取得し、利用可能なクラウドサービスに関する情報を取得し、顧客にアクティブなポート及び大都市圏の詳細を取得し、クラウドサービスプロバイダへのオンデマンド及び必要性に基づいた仮想回路を作成する、、購入したクラウドサービスに基づく、帯域幅の動的な選択を含む、クラウドサービスにアクセスするように、異なる帯域幅の仮想回路を作成し、仮想回路を削除し、アクティブな仮想回路の情報を取得し、クラウドエクスチェンジプロバイダと提携するＣＳＰを取り巻く詳細を取得し、カスタマイズされた分析データを取得し、相互接続資産への提携相手のアクセスの正当性を検証し、サービスデリバリを確実に行うことを可能にしてもよい。
【００５０】
クラウドサービスプロバイダ（売り手）側では、ソフトウェアインタフェースによって、クラウドプロバイダと関連するソフトウェア開発者が、クラウドプロバイダのクラウドサービスを管理し、顧客がクラウドプロバイダのクラウドサービスに接続できるようにすることを可能にしてもよい。例えば、これら売り手側のソフトウェアインタフェースによって、クラウドプロバイダサービスアプリケーションが、クラウドエクスチェンジにアクセスする承認を取得し、利用可能なクラウドサービスに関する情報を取得し、プロバイダにアクティブなポート及び大都市圏の詳細を取得し、プロバイダに所与のデータセンターにおけるアクティブなポートの詳細を取得し、クラウドサービスにアクセスするために、顧客によって作成される、異なる帯域幅の仮想回路を承認又は拒絶し、保留中の仮想回路の追加を取得して仮想回路の追加を確認し、保留中の仮想回路の削除を取得して仮想回路の削除を確認し、カスタマイズされた分析データを取得し、相互接続資産への提携相手のアクセスの正当性を検証し、サービスデリバリを確実に行うことを可能にしてもよい。
【００５１】
本明細書にさらに記載する通り、サービスインタフェース１１４は、マシンツーマシン通信を促進して、動的にサービスをプロビジョニングし、サービスデリバリを保証することを可能にする。このように、プログラム可能なネットワークプラットフォーム１２０によって、クラウドサービスのプロビジョニングの態様を自動化することが可能である。例えば、ソフトウェアインタフェースは、クラウドエクスチェンジに参加する複数の異なるクラウドプロバイダとの相互接続を顧客が確立、削除、及び管理する、自動化されたシームレスな手段を提供してもよい。プログラム可能なネットワークプラットフォーム１２０は、様々な実施例において、一つ又は複数の仮想マシン及び／又はデータセンター２０１若しくは現地外の現実のサーバ上で実行されてもよい。
【００５２】
図２の実施例では、ネットワークインフラ２２２は、クラウドエクスチェンジのスイッチングファブリックを表し、例えば、プログラム可能なネットワークプラットフォーム１２０のサービスインタフェース１１４を呼び出すことによって、仮想回路と動的に相互接続されてもよい複数のポートを含む。ポートの各々は、回線事業者１０６、顧客１０８、及びＣＳＰ１１０のうちの一つと関連する。
【００５３】
図３Ａ〜３Ｂは、本開示に記載する技術に従い、クラウドエクスチェンジプロバイダの顧客に対するプロビジョニングのために、複数のクラウドサービスプロバイダのクラウドサービスを集約し、一つ以上のクラウドサービスプロバイダへの複数の顧客のアクセスを集約する、クラウドエクスチェンジ用のプログラム可能なネットワークプラットフォームによる、例示のネットワークインフラ及びサービスプロビジョニングを示すブロック図である。本実施例では、各々が異なる顧客と関連する、顧客ネットワーク３０８Ａ〜３０８Ｃ（総称して「顧客ネットワーク３０８」）は、各々が異なるクラウドサービスプロバイダ１１０と関連する、一つ以上のクラウドサービスプロバイダネットワーク３２０から、集約されるクラウドサービスを受信するために、データセンター３００内のクラウドエクスチェンジポイントにアクセスする。顧客ネットワーク３０８は各々、クラウドサービスプロバイダネットワーク３２０によって提供されるクラウドサービスを消費する、エンドポイントのデバイスを含む。例示のエンドポイントのデバイスは、サーバ、スマートフォン、テレビのセットトップボックス、ワークステーション、ノートパソコン／タブレットコンピュータ、テレビゲームシステム、遠隔会議システム、メディアプレーヤーなどを含む。
【００５４】
顧客ネットワーク３０８Ａ〜３０８Ｂは、それぞれのプロバイダエッジ／自律システムの境界ルータ（ＰＥ／ＡＳＢＲ）３１０Ａ〜３１０Ｂを含む。ＰＥ／ＡＳＢＲ３１０Ａ、３１０Ｂの各々は、アクセスリンク３１６Ａ〜３１６Ｂ（総称して「アクセスリンク３１６」）のうちの一つの上で、ＰＥルータ３０２Ａ〜３０２Ｂ（「ＰＥルータ３０２」又はより単純に「ＰＥ３０２」）のうちの一つとピアリングするように、外部ゲートウェイのルーティングプロトコルを実行してもよい。示す実施例では、アクセスリンク３１６の各々は、顧客ネットワーク３０８のエッジルータと、クラウドエクスチェンジポイント３０３のエッジルータ（又は自律システムの境界ルータ）との間のトランジットリンクを表す。例えば、ＰＥ３１０Ａ及びＰＥ３０２Ａは、アクセスリンク３１６上でＬ３ルートを交換し、かつ顧客ネットワーク３０８Ａとクラウドサービスプロバイダネットワーク３２０との間でＬ３データトラフィックを交換するように、例えば、外部ＢＧＰといった外部ゲートウェイプロトコルによって直接ピアリングしてもよい。アクセスリンク３１６は、いくつかの場合には、下にさらに詳細に記載する通り、ＩＰ／ＭＰＬＳファブリック３０１において構成されるＩＰ‐ＶＰＮ用の連結回路を表してもよく、代替として、連結回路と称してもよい。いくつかの場合には、アクセスリンク３１６は各々、顧客ネットワーク３０８の少なくとも一つのポートと、クラウドエクスチェンジポイント３０３の少なくとも一つのポートとの間の、トランジットネットワークが介在しない直接的な物理的接続を含んでもよい。アクセスリンク３１６は、ＶＬＡＮ若しくは積層されたＶＬＡＮ（例えば、ＱｉｎＱ）、ＶｘＬＡＮ、ＬＳＰ、ＧＲＥトンネル、又はその他の種類のトンネル上で動作してもよい。
【００５５】
Ｌ３の接続性に関して示し、主に記載しているものの、ＰＥルータ３０２は、アクセスリンク３１６を介して、顧客ネットワーク３０８とクラウドサービスプロバイダネットワーク３２０との間に、Ｌ２の接続性を追加で提供してもよい。例えば、ＰＥルータ３０２Ａのポートは、顧客ネットワーク３０８Ａに、アクセスリンク３１６Ａを介してクラウドサービスプロバイダ３２０ＡへのＬ２接続性を、またＬ２インタフェースで構成されるＰＥルータ３０４Ａのポートに結合する、クラウドサービスプロバイダ３２０Ａのルータ３１２Ａによって提供する、Ｌ２インタフェースで構成されてもよい。ＰＥルータ３０２Ａのポートは、顧客ネットワーク３０８Ａに、アクセスリンク３１６Ａを介するクラウドサービスプロバイダ３２０ＢへのＬ３の接続性を提供する、Ｌ３のインタフェースで追加として構成されてもよい。ＰＥ３０２Ａは、顧客３０８Ａに、クラウドエクスチェンジプロバイダによって、複数のクラウドサービスプロバイダ３２０への一対多接続を提供してもよいような、複数のＬ２及び／又はＬ３サブインタフェースで構成されてもよい。
【００５６】
顧客ネットワーク３０８とクラウドサービスプロバイダネットワーク３２０との間にＬ２相互接続を作成するために、いくつかの実施例では、ＩＰ／ＭＰＬＳファブリック３０１は、ＰＥ３０２の顧客に対面するポートと、クラウドサービスプロバイダ３２０のＣＳＰに対面するポートとの間で、Ｌ２トラフィックの橋渡しをするように、Ｌ２ブリッジドメイン（例えば、仮想プライベートＬＡＮサービス（ＶＰＬＳ）、Ｅ‐ＬＩＮＥ、又はＥ‐ＬＡＮなど、Ｌ２仮想プライベートネットワーク（Ｌ２ＶＰＮ））で構成される。いくつかの場合、クラウドサービスプロバイダ３２０及び顧客３０８は、ブリッジドメインを使用してＬ２トラフィックの橋渡しをする、同じＰＥルータ３０２、３０４へのアクセスリンクを有してもよい。
【００５７】
顧客ネットワーク３０８とクラウドサービスプロバイダネットワーク３２０との間に、Ｌ３相互接続を作成するために、いくつかの実施例では、ＩＰ／ＭＰＬＳファブリック３０１は、図４に関して下にさらに詳細に記載する通り、Ｌ３仮想ルーティング及び転送インスタンス（ＶＲＦ）で構成される。
【００５８】
アクセスリンク３１６及び集約リンク３２２の各々は、顧客ネットワーク３０８又はクラウドサービスプロバイダ３２８を、ネットワークインタフェースデバイス（ＮＩＤ）と、ＰＥルータ３０２、３０４のうちの一つとの間のネットワークリンクに接続するＮＩＤを含んでもよい。アクセスリンク３１６及び集約リンク３２２の各々は、Ｌ２及び／又はＬ３の接続性を提供する、いくつかの異なるタイプのリンクのうちのいずれかを表してもよく、又は含んでもよい。
【００５９】
本実施例では、顧客ネットワーク３０８Ｃは、自律システム番号を有する自律システムではない。顧客ネットワーク３０８Ｃは、企業、ネットワークサービスプロバイダ、又はクラウドエクスチェンジポイントのルーティングの範囲内にある、その他の顧客ネットワークを表してもよい。顧客ネットワークは、アクセスリンク３１６Ｃ上でＰＥルータ３０２Ｂとピアリングするように、外部ゲートウェイのルーティングプロトコルを実行してもよい、顧客のエッジ（ＣＥ）デバイス３１１を含む。様々な実施例では、ＰＥ３１０Ａ〜３１０Ｂのうちのいずれも、代替としてＣＥデバイスであってもよく、他の場合であればＣＥデバイスを表してもよい。
【００６０】
アクセスリンク３１６は物理的なリンクを含む。ＰＥ／ＡＳＢＲ３１０Ａ〜３１０Ｂ、ＣＥデバイス３１１、及びＰＥルータ３０２Ａ〜３０２Ｂは、アクセスリンク３１６を介して、Ｌ２／Ｌ３パケットを交換する。この点において、アクセスリンク３１６は、クラウドエクスチェンジポイント３０３を介するクラウドアクセス用の伝送リンクを構成する。クラウドエクスチェンジポイント３０３は、クラウドエクスチェンジポイント１２８のうちのいずれの実施例を表してもよい。データセンター３００は、データセンター２０１の実施例を表してもよい。
【００６１】
クラウドエクスチェンジポイント３０３は、いくつかの実施例では、クラウドエクスチェンジポイント３０３、及びそこからいずれか一つ以上のクラウドサービスプロバイダ３２０への顧客３０８のアクセスを集約する。図３Ａ〜３Ｂは、例えば、それぞれの顧客ネットワーク３０８Ａ〜３０８Ｂをクラウドエクスチェンジポイント３０３のＰＥルータ３０２Ａに接続するアクセスリンク３１６Ａ〜３１６Ｂと、顧客ネットワーク３０８ＣをＰＥルータ３０２Ｂに接続するアクセスリンク３１６Ｃとを示す。ＰＥルータ３０２、３０４のうちのいずれの一つ以上も、ＡＳＢＲを備えてもよい。ＰＥルータ３０２、３０４及びＩＰ／ＭＰＬＳファブリック３０１は、アクセスリンク３１６のうちのいずれかを、クラウド集約リンク３２２のうちのいずれかに相互接続するように、本明細書に記載する技術に従って構成されてもよい。結果として、クラウドサービスプロバイダネットワーク３２０Ａは、例えば、サービスを複数の顧客ネットワーク３０８に提供するために、単一のクラウド集約リンク（ここでは、アクセスリンク３２２Ａ）を構成しておくことのみが必要である。すなわち、クラウドサービスプロバイダネットワーク３０２Ａを運営するクラウドサービスプロバイダは、例えば、顧客ネットワーク３０８の各々にサービスを提供するために、クラウドサービスプロバイダネットワーク３０２Ａから、ＰＥルータ３１０、３１１の各々への別個のサービスリンクをプロビジョニングし構成する必要はない。クラウドエクスチェンジポイント３０３は、代わりに、レイヤ３のピアリング及びクラウドサービスのデリバリに対するネットワーク到達可能性を提供するように、クラウドサービスプロバイダネットワーク３２０Ａのクラウド集約リンク３２２Ａ及びＰＥ３１２Ａを、複数のクラウドアクセスリンク３１６に交差接続してもよい。
【００６２】
加えて、単一の顧客ネットワーク、例えば、顧客ネットワーク３０８Ａは、クラウドサービスを提供する複数のクラウドサービスプロバイダネットワーク３２０から、クラウドエクスチェンジポイント３０３を経由してサービスを取得するために、データセンター３００内でクラウドエクスチェンジポイント３０３への単一のクラウドアクセスリンク（ここでは、アクセスリンク３１６Ａ）を構成しておくことのみが必要である。すなわち、顧客又は顧客ネットワーク３０８Ａを運営するネットワークサービスプロバイダは、例えば、複数のクラウドサービスプロバイダネットワーク３２０からサービスを取得するために、顧客ネットワーク３０８Ａを異なるＰＥルータ３１２に接続する、別個のサービスリンクをプロビジョニングし構成する必要はない。クラウドエクスチェンジポイント３０３は、代わりに、レイヤ３のピアリングと、顧客ネットワーク３０８Ａへのクラウドサービスデリバリに対するネットワーク到達可能性とを提供するように、クラウドアクセスリンク３１６Ａ（再び、一実施例として）を、複数のクラウド集約リンク３２２に交差接続してもよい。
【００６３】
クラウドサービスプロバイダネットワーク３２０は各々、一つ以上のクラウドサービスをユーザに提供するように構成されるサーバを含む。これらのサービスは、サービスタイプに従って分類されてもよく、例えば、アプリケーション／ソフトウェア、プラットフォーム、インフラ、仮想化、並びにサーバ及びデータ記憶部を含んでもよい。例示のクラウドサービスは、コンテンツ／メディアのデリバリ、クラウドベースの記憶、クラウドコンピューティング、オンラインゲーム、ＩＴサービスなどを含んでもよい。
【００６４】
クラウドサービスプロバイダネットワーク３２０は、クラウドエクスチェンジポイント３０３のＰＥルータ３０４Ａ〜３０４Ｂ（総称して「ＰＥルータ３０４」）とルートを交換するように、外部ゲートウェイのルーティングプロトコル、例えば、ｅＢＧＰを各々実行する、ＰＥルータ３１２Ａ〜３１２Ｄを含む。クラウドサービスプロバイダネットワーク３２０の各々は、パブリッククラウド、プライベートクラウド、又はハイブリッドクラウドを表してもよい。クラウドサービスプロバイダネットワーク３２０の各々は、付与される自律システム番号を有してもよく、又はクラウドエクスチェンジポイント３０３の自律システムの範囲の一部であってもよい。
【００６５】
示す実施例では、インターネットプロトコル／マルチプロトコルラベルスイッチング（ＩＰ／ＭＰＬＳ）ファブリック３０１は、ＰＥ３０２及びＰＥ３０４を相互接続する。ＩＰ／ＭＰＬＳファブリック３０１は、ＩＰバックボーンを形成するように、ＩＰパケットのＩＰ／ＭＰＬＳスイッチング及びルーティングを提供し、ＰＥ３０２、３０４を含む、一つ以上のスイッチング及びルーティングデバイスを含む。いくつかの実施例では、ＩＰ／ＭＰＬＳファブリック３０１は、ＰＥルータ間のトラフィックをルーティングし、及び／又はトラフィックを異なるＩＰ‐ＶＰＮと関連付けるように、一つ以上の異なるトンネリングプロトコル（すなわち、ＭＰＬＳ以外）を実装してもよい。本明細書に記載する技術に従い、ＩＰ／ＭＰＬＳファブリック３０１は、データセンターをベースとする「伝送」及びレイヤ３の交差接続を提供するように、顧客３０８のうちのいずれかを、複数のクラウドサービスプロバイダネットワーク３２０に接続する、ＩＰ仮想プライベートネットワーク（ＩＰ‐ＶＰＮ）を実装する。サービスプロバイダをベースとするＩＰバックボーンネットワークが、レイヤ３のサービスプロバイダから顧客へサービストラフィックを伝送するように、限定された帯域幅での広域ネットワーク（ＷＡＮ）接続を必要とするのに対して、本明細書に記載する通りのクラウドエクスチェンジポイント３０３は、サービストラフィックを「伝送」し、データセンターをベースとするＩＰ／ＭＰＬＳファブリック３０１によって提供されるデータセンター３００の高帯域幅の構内環境内で、クラウドサービスプロバイダ３２０を顧客３０８に交差接続する。いくつかの実施例では、ＩＰ／ＭＰＬＳファブリック３０１は、２００６年２月、Internet Engineering Task Force (IETF) Network Working Group発行、Rosen & Rekhterの「BGP/MPLS IP Virtual Private Networks (VPNs)」、Request for Comments 4364に記載される技術を使用してＩＰ‐ＶＰＮを実装し、その内容は、参照により全て本発明に援用される。いくつかの例示的構成において、顧客ネットワーク３０８及びクラウドサービスプロバイダネットワーク３２０は、それぞれのリンクを介して、ＩＰ／ＭＰＬＳファブリック３０１の同じＰＥルータに接続してもよい。
【００６６】
アクセスリンク３１６及び集約リンク３２２は、接続された顧客ネットワーク３０８又はクラウドサービスプロバイダネットワーク３２０と交換するトラフィックを、ＰＥ３０２、３０４において構成され、ＩＰ／ＭＰＬＳファブリック３０１上で動作するＩＰ‐ＶＰＮに相当する、仮想ルーティング及び転送インスタンス（ＶＲＦ）と関連付ける、連結回路を含んでもよい。例えば、ＰＥ３０２Ａは、アクセスリンク３１６Ａ上で動作する双方向のラベルスイッチパス（ＬＳＰ）上のＰＥ３１０Ａと、ＩＰパケットを交換してもよく、ＬＳＰは、ＰＥ３０２Ａに構成されるＶＲＦ用の連結回路である。別の実施例として、ＰＥ３０４Ａは、アクセスリンク３２２Ａ上を動作する双方向のラベルスイッチパス（ＬＳＰ）上のＰＥ３１２Ａと、ＩＰパケットを交換してもよく、ＬＳＰは、ＰＥ３０４Ａに構成されるＶＲＦ用の連結回路である。各ＶＲＦは、個別のルートによる異なるルーティング及び転送テーブルを含んでもよいか、又は表してもよい。
【００６７】
ＩＰ／ＭＰＬＳファブリック３０１のＰＥルータ３０２、３０４は、クラウドサービス向けにそれぞれのハブアンドスポーク型の配置で構成されてもよく、ＰＥ３０４はクラウドサービスハブを実装し、ＰＥ３０２はハブのスポークとして構成される（様々なハブアンドスポーク型のインスタンス／配置のため）。ハブアンドスポーク型の配置によって、サービストラフィックが、直接異なるスポークＰＥ間ではなく、ハブＰＥと、スポークＰＥのいずれかとの間を流れることが可能となることを保証する。さらに下に記載する通り、データセンターをベースとするＩＰ／ＭＰＬＳファブリック３０１用及びサウスバウンドのサービストラフィック（すなわち、ＣＳＰから顧客へ）用のハブアンドスポーク型の配置において、ＰＥ３０２は、ＰＥ３１０から受信されるルートをＰＥ３０４に公示し、それによってＰＥ３１２にルートを公示する。ノースバウンドのサービストラフィック（すなわち、顧客からＣＳＰへ）に対しては、ＰＥ３０４は、ＰＥ３１２から受信されるルートをＰＥ３０２に公示し、それによってＰＥ３１０にルートを公示する。
【００６８】
クラウドエクスチェンジポイント３０３のいくつかの顧客に対して、クラウドエクスチェンジポイント３０３のプロバイダは、フルメッシュの配置を構成してもよく、それによって、１組のＰＥ３０２、３０４の各々が、顧客用の異なる顧客のサイトネットワークに結合する。そのような場合には、ＩＰ／ＭＰＬＳファブリック３０１は、ラックからラック又は冗長なトラフィック（東西又は水平トラフィックとしても知られる）に対して、レイヤ３のＶＰＮ（Ｌ３ＶＰＮ）を実装する。Ｌ３ＶＰＮは、閉じられたユーザグループを有効化してもよく、それによって、各顧客サイトネットワークは、トラフィックを互いに送信できるが、Ｌ３ＶＰＮの外側へはトラフィックを送受信できない。
【００６９】
ＰＥルータは、オーバーレイネットワークを使用せずに、ピアモデルに従って互いに結合してもよい。すなわち、ＰＥ３１０及びＰＥ３１２は、ルートを交換するために互いに直接ピアリングするのではなく、むしろＩＰ／ＭＰＬＳファブリック３０１を介して間接的にルートを交換してもよい。図３Ｂの実施例において、クラウドエクスチェンジポイント３０３は、顧客ネットワーク３０８及びクラウドサービスプロバイダネットワーク３２２を、エンドツーエンドのＩＰ経路と相互接続させるように、複数のレイヤ３の仮想回路３３０Ａ〜３３０Ｃ（総称して「仮想回路３３０」）を実装するように構成される。クラウドサービスプロバイダ３２０及び顧客３０８の各々は、複数の仮想回路３３０のエンドポイントであってもよく、複数の仮想回路３３０は、ＩＰ／ＭＰＬＳファブリック３０１のＰＥ／ＰＥ又はＰＥ／ＣＥの１対と、ＣＳＰ／顧客との間に一つ以上の連結回路を横断させる。仮想回路３３０は、顧客ネットワークをファブリック３０１に接続する連結回路と、クラウドサービスプロバイダネットワークをファブリック３０１に接続する連結回路との間の、ＩＰ／ＭＰＬＳファブリック３０１を通るレイヤ３経路を表す。各仮想回路３３０は、ＰＥ３０２、３０４にエンドポイントを有する、少なくとも一つのトンネル（例えば、ＬＳＰ及び／又は総称ルーティングカプセル化（ＧＲＥ）トンネル）を含んでもよい。ＰＥ３０２、３０４は、互いに相互接続するフルメッシュ型トンネルを確立してもよい。
【００７０】
各仮想回路３３０は、フルメッシュ型又は一部メッシュ型の境界ゲートウェイプロトコルのピアリングセッション、本実施例の場合には、フルメッシュ型のマルチプロトコル内部境界ゲートウェイプロトコル（ＭＰ‐ｉＢＧＰ）のピアリングセッションを使用して、ルートを交換するＰＥルータ３０２、３０４を有する、ＩＰ／ＭＰＬＳネットワーク３０１に構成される、異なるハブアンドスポーク型のネットワークを含んでもよい。ＭＰ‐ｉＢＧＰ又は単純にＭＰ‐ＢＧＰは、ルータが、ＭＰＬＳベースのＶＰＮを実装するようにラベル付きルートを交換する、プロトコルの一実施例である。しかしながら、ＰＥ３０２、３０４は、その他の技術及び／又はプロトコルを使用してＩＰ‐ＶＰＮを実装するように、ルートを交換してもよい。
【００７１】
仮想回路３３０Ａの実施例では、クラウドサービスプロバイダネットワーク３２０ＡのＰＥルータ３１２Ａは、クラウドサービスプロバイダネットワーク３２０Ａ用のルートを、ＰＥ３０４Ａを伴うルーティングプロトコル（例えば、ｅＢＧＰ）のピアリング接続を介して、ＰＥ３０４Ａに送信してもよい。ＰＥ３０４Ａは、関連するＶＲＦを有してもよく、スポークＰＥルータ３０２Ａを含む、ハブアンドスポーク型のネットワークに、ルートを関連付ける。その後ＰＥ３０４Ａは、ＰＥルータ３０２Ａにエクスポートするため、ＰＥルータ３０４Ａは、ハブアンドスポーク型のネットワークを識別するラベルと共に、ＰＥルータ３０４Ａを次のホップルータとして指定するルートを、エクスポートしてもよい。ＰＥルータ３０２Ａは、ＰＥ３１０Ｂを伴うルーティングプロトコルによる接続によって、ＰＥルータ３１０Ｂにルートを送信する。ＰＥルータ３０２Ａは、クラウドエクスチェンジポイント３０３の（例えば、ＢＧＰ自律システム経路（ＡＳ＿ＰＡＴＨ）属性に対する）自律システム番号を追加し、ＰＥルータ３０２Ａを次のホップルータとして指定した後に、ルートを送信してもよい。それゆえ、クラウドエクスチェンジポイント３０３は、データセンター内をベースとしてもよいものの、顧客３０８からクラウドサービスプロバイダ３２０（逆の場合も同様）への自律システムの経路における、自律システムの「ホップ」となる。ＰＥルータ３１０Ｂは、クラウドサービスプロバイダネットワーク３２０Ａへレイヤ３での到達可能性を提供する、ＢＧＰルーティング情報ベース（ＲＩＢ）など、ルーティングデータベースへのルートを設ける。このように、直接的な層でのピアリング接続を必要とする、顧客ネットワーク３０８へのクラウドサービスプロバイダネットワーク３２０がない場合には、クラウドエクスチェンジポイント３０３は、クラウドサービスプロバイダネットワーク３２０から顧客ネットワーク３０８へのルートを「漏出する」。
【００７２】
ＰＥルータ３１０Ｂ、３０２Ａ、３０４Ａ、及び３１２Ａは、顧客ネットワーク３０８Ｂによって創出されるルートを、ＰＥ３１２Ａに転送するのと反対の方向で類似の動作を実施することで、クラウドサービスプロバイダネットワーク３２０Ａから顧客ネットワーク３０８Ｂへの接続性を提供してもよい。仮想回路３３０Ｂの実施例では、ＰＥルータ３１２Ｂ、３０４Ａ、３０２Ａ、及び３１０Ｂは、仮想回路３３０Ｂを確立するための上に記載したものと類似する方式で、顧客ネットワーク３０８Ｂ及びクラウドサービスプロバイダ３２０Ｂ用のルートを交換する。結果として、データセンター３００内のクラウドエクスチェンジポイント３０３は、異なるクラウドサービスプロバイダネットワーク３２０Ａ、３２０Ｂによって提供される複数のレイヤ３のクラウドサービスに対して、クラウド集約を実施し、クラウドエクスチェンジポイント３０３への単一のアクセスリンク３１６Ｂを有する顧客ネットワーク３０８Ｂに、複数の集約されたレイヤ３のクラウドサービスを送達するために、他の場合には、ＰＥ３１０ＢとＰＥ３１２Ａ、３１２Ｂの各々との間に確立されるであろう、ピアリング接続を内在化する。本明細書に記載する技術がなければ、完全に相互接続する顧客ネットワーク３０８及びクラウドサービスプロバイダネットワーク３２０は、クラウドサービスプロバイダネットワーク３２０の各々に対して、ＰＥ３１０の各々と、ＰＥ３１２のうちの少なくとも一つとの間に、３×３ピアリング接続を必要とするであろう。例えば、ＰＥ３１０Ａは、ＰＥ３１２の各々を伴うレイヤ３のピアリング接続を必要とするであろう。本明細書に記載する技術によって、クラウドエクスチェンジポイント３０３は、レイヤ３のピアリングを内在化し、クラウドアクセスとクラウド集約インタフェースとの間で、データセンターをベースとする「伝送」を提供することによって、顧客ネットワーク３０８及びクラウドサービスプロバイダネットワーク３２０を、サイトのＰＥごとに（すなわち、ＰＥ３１０及びＰＥ３１２の各々に対して）一つのピアリング接続で完全に相互接続してもよい。
【００７３】
ＩＰ／ＭＰＬＳファブリック３０１が、ＢＧＰ／ＭＰＬＳのＩＰ‐ＶＰＮ、又はＩＰバックボーン内でのルート配信を制御するように、ルートターゲットを使用する、その他のＩＰ‐ＶＰＮを実装する実施例において、ＰＥ３０４は、異なる非対称のルートターゲットを使用して、ＰＥ３０２からルートをインポートし、ＰＥ３１２から受信したルートをエクスポートするように構成されてもよい。同様に、ＰＥ３０２は、非対称のルートターゲットを使用して、ＰＥ３０４からルートをインポートし、ＰＥ３１０から受信したルートをエクスポートするように構成されてもよい。したがって、ＰＥ３０２、３０４は、顧客ネットワーク３０８のうちのいずれかのエクストラネットと、基本バックボーンＬ３ＶＰＮに連結する、クラウドサービスプロバイダネットワーク３２０のうちのいずれかと共に、ＩＰ／ＭＰＬＳファブリック３０１の基本バックボーンＬ３ＶＰＮを各々含む、先進的なＬ３ＶＰＮを実装するように構成されてもよい。各先進的なＬ３ＶＰＮは、クラウドサービスプロバイダネットワーク３２０から一つ以上の顧客ネットワーク３０８、及びその反対の方向のクラウドサービスのデリバリネットワークを構成する。このように、クラウドエクスチェンジポイント３０３によって、何対かの顧客ネットワーク３０８と、所与の一対の間のいかなるクラウドサービス接続用のクラウドサービスプロバイダネットワーク３２０との間に、他の場合であれば確立されるであろう、レイヤ３ルーティングプロトコルのピアリング接続を内在化しながら、クラウドサービスプロバイダネットワーク３２０が、クラウドサービストラフィックを、いかなる顧客ネットワーク３０８とも交換することを可能にする。言い換えると、クラウドエクスチェンジポイント３０３によって、顧客ネットワーク３０８及びクラウドサービスプロバイダネットワーク３２０の各々が、データセンターをベースとするレイヤ３の交差接続への、単一の（又は冗長性若しくはその他の理由のために一つ以上の）レイヤ３ルーティングプロトコルのピアリング接続を確立することを可能にする。クラウドサービスプロバイダネットワーク３２０から顧客ネットワーク３０８へ及びその反対の方向のルートをフィルタリングすることによって、ＰＥ３０２、３０４は、仮想回路３３０の確立、及び顧客ネットワーク３０８とデータセンター３００内のクラウドサービスプロバイダネットワーク３２０との間の関連するクラウドサービストラフィックの流れを、それによって制御する。ＭＰ‐ｉＢＧＰメッシュ３１８に配信されるルートは、ＶＰＮ-ＩＰv４ルートであり、重複するアドレス空間を有する異なるサイトよりルートを区別する、ルート識別子と関連付けられてもよい。
【００７４】
プログラム可能なネットワークプラットフォーム１２０は、クラウドエクスチェンジポイント３０３のエンドツーエンドのサービスを作成、読み取り、更新、及び／又は削除するサービス要求を受信してもよい。それに応じて、プログラム可能なネットワークプラットフォーム１２０は、ＰＥ３０２、３０４及び／又はＩＰ／ＭＰＬＳファブリック３０１のその他のネットワークインフラを、サービスに関する性能又はその他の動作情報をプロビジョニング又は取得するように構成してもよい。サービスをプロビジョニングし、プログラム可能なネットワークプラットフォーム１２０によって実施される動作は、ＶＲＦを構成若しくは更新し、ＳＤＮの転送情報を組み込み、ＬＳＰ又はその他のトンネルを構成し、ＢＧＰを構成し、アクセスリンク３１６及び集約リンク３２２を構成し、又は他の場合であればＩＰ／ＭＰＬＳファブリック３０１の構成を修正することを含んでもよい。以下にさらに詳細に記載する通り、その他の動作は、クラウドサービスプロバイダネットワーク３２０用のオーケストレーションシステムにサービス要求を行うことを含んでもよい。
【００７５】
図４は、本明細書に記載する技術に従い、クラウドエクスチェンジポイントのルータが、複数のクラウドサービスプロバイダネットワークから顧客ネットワークへ集約されたサービストラフィックをルーティング及び転送するために、ＶＰＮのルーティング及び転送インスタンスを用いて、プログラム可能なネットワークプラットフォーム１２０によって構成される、データセンターをベースとするクラウドエクスチェンジポイントの実施例を示すブロック図である。本実施例では、仮想回路３３０Ａ〜３３０Ｂを確立するために、ＩＰ／ＭＰＬＳファブリック３０１のＰＥルータ３０２Ａ及び３０４Ａは、ＶＲＦで構成される。ＰＥ３０２Ａは、ＶＲＦ４０２Ａ及び４０４Ａで構成される一方、ＰＥ３０４Ａは、ＶＲＦ４０２Ｂ及び４０４Ｂで構成される。ＶＲＦ４０２Ａは、ＶＲＦ４０２Ｂによってエクスポートされるルートをインポートするように構成され、ＶＲＦ４０２Ｂは、ＶＲＦ４０２Ａによってエクスポートされるルートをインポートするように構成される。構成は、ＶＲＦ４０２ＡとＶＲＦ４０２Ｂとの間のインポート／エクスポート用の非対称のルートターゲットを含んでもよい。ＶＲＦ４０４Ａは、ＶＲＦ４０２Ｂによってエクスポートされるルートをインポートするように構成され、ＶＲＦ４０２Ｂは、ＶＲＦ４０２Ａによってエクスポートされるルートをインポートするように構成される。構成は、ＶＲＦ４０２ＡとＶＲＦ４０２Ｂとの間のインポート／エクスポート用の非対称のルートターゲットを含んでもよい。顧客が、レイヤ３のサービスにアクセスするように、別個のＶＲＦと各々関連する異なるＣＳＰから、複数のレイヤ３のサービスにアクセスできる、この構成によって、ＣＳＰと交換されるそれぞれのトラフィックが分離される。いくつかの実施例では、ＰＥ３０２Ａは、ＶＲＦ４０２Ｂ及びＶＲＦ４０４Ｂの両方によってエクスポートされるルートをインポートするように、単一のＶＲＦで構成されてもよい。図３Ａ〜３Ｂに関して上で述べた通り、ＰＥ３０２、３０４はさらに、顧客３０８Ｂとクラウドサービスプロバイダ３２０との間で、レイヤ２のトラフィックの橋渡しをするように構成されてもよい。
【００７６】
本実施例では、ＰＥ３０４Ａは、それぞれのクラウドサービスプロバイダネットワーク３２０Ａ、３２０Ｂとルートを交換するように、ＢＧＰ、又はそれぞれのＰＥ３１２Ａ、３１２Ｂを伴う、その他のルート配信プロトコルのピアリング接続４０６Ｂ、４０８Ｂを操作する。ＰＥ３０２Ａは、顧客ネットワーク３０８Ｂとルートを交換するように、ＢＧＰ、又はＰＥ３１０Ｂを伴う、その他のルート配信プロトコルのピアリング接続４１０を操作する。いくつかの実施例では、ＰＥ３０２Ａ、３０４Ａは、サイトネットワーク用のルートで静的に構成されてもよい。
【００７７】
クラウドエクスチェンジポイント３０３に対する、本明細書に記載する管理者又はプログラム可能なネットワークプラットフォームは、データセンターをベースとする接続性又は少なくとも大都市をベースとする接続性を発展させることによって、エンドツーエンドのＩＰ経路を潜在的に最適化しながら、ＰＥ３１２とＰＥ３１０Ｂとの間のルートを漏出して、仮想回路３３０によって図中に示すエンドツーエンドのＩＰ経路に対するレイヤ３の接続性を促進するために、ＰＥ３０２Ａ、３０４ＡをＶＲＦ４０２Ａ〜４０２Ｂ、４０４Ａ〜４０４Ｂで構成してもよい。したがって、クラウドエクスチェンジポイント３０３は、クラウドサービスプロバイダネットワーク３２０のプライベート及び／又はパブリックルートを経由する、顧客ネットワーク３０８Ｂへのクラウドサービスプロバイダ専用アクセスを提供してもよい。ノースバウンド方向では、クラウドエクスチェンジポイント３０３は、顧客ネットワーク３０８のプライベート及び／又はパブリックルートを経由する、複数の顧客ネットワーク３０８へのクラウドサービスプロバイダ専用配信を提供してもよい。ＰＥ３１０ＢもＰＥ３０２Ａ、３０４Ａのうちのいずれも、クラウドサービスプロバイダネットワーク３２０又は顧客ネットワーク３０８に到達するために、完全なインターネットのＢＧＰルーティングテーブルにアクセスする必要はない。その上、ＰＥ３０２Ａ、３０４Ａは、物理ＩＰ、物理的なサービス、及びＶＲＦのうちのいずれか一つ以上に基づいて、顧客／ＣＳＰのルート及び／又はサービストラフィックを集約するように構成されてもよい。
【００７８】
図５は、ソフトウェア制御ネットワーク用のプラットフォームを示すブロック図であり、プラットフォームは、本開示の一つ以上の技術に従い動作する。図５は、クラウドベースのサービス交換又は「クラウドエクスチェンジ」の動的な構成及び管理をまとめて提供する、複数の構成要素を含む、プログラム可能なネットワークプラットフォーム１００００を示す。これらの構成要素は、複数のクラウドサービスプロバイダから一つ以上のクラウドの顧客へ、クラウドサービスのデリバリ用の仮想接続を提供してもよい。プログラム可能なネットワークプラットフォーム１００００は、集中ネットワーク制御（ＣＮＣ）システム１０００２、一つ以上のネットワークフィールドユニット（ＮＦＵ）１０００４、ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ１０００６、ハードウェア構成ツール１０００８、インフラデータ収集ツール１００１０、及び情報技術システム（１００１０）を含む。
【００７９】
プログラム可能なネットワークプラットフォーム１００００によって、複数のサービスプロバイダにわたってサービスのオーケストレーションが提供され、サービスプロバイダのうちの一つが、サービスの監視、保証、及び支払請求の点で、サービス所有者となることを可能にしてもよい。プログラム可能なネットワークプラットフォーム１００００が、単一のクリックによりオンデマンドで組み合わせられたサービスを送達するよう、互いと安全に通信するように、複数のサービスプロバイダのオーケストレーションシステムにプロセス及び装置を提供してもよい。プログラム可能なネットワークプラットフォーム１００００は、プログラム可能なネットワークプラットフォーム１２０若しくは別のプログラム可能なネットワークプラットフォーム、コントローラ、又はサービスをプロビジョニングしサービスデリバリを確実に行うための、本明細書に記載するシステムの例示的インスタンスを表してもよい。
【００８０】
図５の実施例では、ＣＮＣシステム１０００２によって、クラウドサービスのプロビジョニングの態様を自動化することが可能である。そのため、ＣＮＣシステム１０００２は、顧客が、自動的にシームレスに、クラウドエクスチェンジに参加する複数の異なるクラウドプロバイダとの相互接続を確立、削除、及び管理することを可能にする、一つ以上のソフトウェアインタフェースを提供してもよい。ＣＮＣシステム１０００２は、ＡＰＩの呼び出しによってビジネスサービス要求を受信し、それを、ビジネスサービスとして送達され確実に行われるように、必要なビジネスインスタンス化パラメータ及びネットワークプロビジョニングパラメータに変換する論理を含んでもよい。ＣＮＣシステム１０００２は、オーケストレーションシステムのインテリジェントな中央処理装置（例えば、プログラム可能なネットワークプラットフォーム１００００）であってもよく、インスタンス化ごとに存在する、このインテリジェントな論理の一つの論理インスタンスがあってもよい。また、ＣＮＣシステム１０００２は、サービス要求が必要とする場合には、第三者オーケストレーションシステムと通信する機能も有する。ＣＮＣシステム１０００２は、本開示にさらに記載する通り、監視、分析、計画、及び実行（ＭＡＰＥ）ループ法を使用してサービス保証を提供してもよく、サービスがサービスレベル契約を忠実に守ることを保証するように実装される。
【００８１】
いくつかの実施例では、ＮＦＵ１０００４は、一つ以上のサービスに対してクラウドエクスチェンジポイントのネットワークインフラを構成するように、ＣＮＣシステム１０００２から要求又は命令を受信する、内蔵ユニットとして実装される。例えば、ＮＦＵ１０００４は、ハードウェア及びソフトウェアの組み合わせを備えてもよい。いくつかの実施例では、ＮＦＵ１０００４は仮想マシンであってもよい。いずれの場合でも、ＮＦＵ１０００４は、ＣＮＣシステム１０００２に出される顧客の要求に基づく、ＣＮＣシステム１０００２からの要求又は命令を受信する。以下にさらに記載する通り、ＮＦＵ１０００４は、ＣＮＣシステム１０００２によって要求されるサービスを提供するのに、充分なリソースが存在するか否かを判定してもよい。充分なリソースが存在する場合、ＮＦＵ１０００４は、要求されるサービスを提供するよう、ネットワークインフラを構成するように、ＳＤＮコントローラ１０００６、ハードウェア構成ツール１０００８、及びインフラデータ収集ツール１００１０と通信、又は他の場合であれば相互運用してもよい。ＮＦＵ１０００４は、ＣＮＣシステム１０００２からネットワークインスタンス化コマンドを受信し、サービスを送達するのに必要なネットワークリソースをインスタンス化し、構成する、グローバルに分散しインテリジェントな論理ユニットを表してもよい。ＮＦＵ１０００４は、ＣＮＣシステム１０００２の要求ごとに、ネットワークサービスを送達し確実に行う知能を有してもよい。ＮＦＵ１０００４は、ユニットによって送達されるネットワークサービスが、サービスの有効期間中に確実に行われることを保証するように、自身のＭＡＰＥループ（例えば、図９に示す通り）を有してもよい。
【００８２】
いくつかの実施例では、複数のクラウドエクスチェンジポイントは、地理的に散在してもよい。地理上位置づけられる各クラウドエクスチェンジポイントは、それぞれのクラウドエクスチェンジポイントと同じ場所に地理上位置づけられる、対応するＮＦＵを有してもよい。対応するＮＦＵは、ある特定の地理上位置づけられるクラウドエクスチェンジポイントのネットワークインフラを構成してもよく、他の場合であれば管理してもよい。このように、ある特定のＮＦＵは、ＣＮＣシステム１０００２からの要求又は命令を受信し、ある特定のＮＦＵによって管理される、クラウドエクスチェンジポイントのネットワークインフラを構成してもよい。いくつかの場合には、大都市圏の複数のクラウドエクスチェンジポイントは、単一のＮＦＵによって管理される、大都市をベースとするクラウドエクスチェンジを構成する。
【００８３】
そのため、ＮＦＵ１０００４は、プログラム可能なネットワークプラットフォーム１００００の分散処理部を表してもよく、分散処理部は、水平スケールへの能力、及びサービスを送達し確実に行う能力を、プログラム可能なネットワークプラットフォーム１００００に提供する、ＮＦＵ１０００４は、ベンダーに依存せず、フォームファクタにも依存せずに、サービスを送達する機能性を提供してもよい、プログラム可能なネットワークプラットフォーム１００００の構成要素である。図５に示す通り、ＮＦＵ１０００４は、分散処理部がサービスを送達するのを可能にする、数個のソフトウェア構成要素を有する。
【００８４】
クラウドの顧客及びクラウドサービスプロバイダへのサービス及び仮想接続をプロビジョニングするために、ＣＮＣシステム１０００２は、サービス選択ツール１００１２を含む。いくつかの実施例では、サービス選択ツール１００１２は、ＡＰＩゲートウェイとして動作してもよい。例えば、サービス選択ツール１００１２は、一つ以上のＡＰＩに従って定義されるソフトウェアインタフェースを公開してもよい。サービス選択ツール１００１２が受信する要求及び／又は命令は、クラウドエクスチェンジによって提供及び／又は送達されるサービスに関してなされる、作成、読み出し、更新、及び／又は削除（ｃｒｅａｔｅ、ｒｅａｄ、ｕｐｄａｔｅ、ｄｅｌｅｔｅ：ＣＲＵＤ）要求の形態を含む可能性がある。アプリケーションは、サービス選択ツール１００１２によって提供される、ＡＰＩのエンドポイントを呼び出してもよく、エンドポイントは、順に、サービスプロビジョニングエンジン１００１４を呼び出してもよい。サービス選択ツール１００１２は、例えば、一つ又は複数の仮想マシン及び／又は現実のサーバ上で実行されてもよい。図５では単一要素として示しているものの、サービス選択ツール１００１２は、一つ以上の物理プロセッサ上で実行される、一つ以上の物理計算機及び／又は仮想計算機の集まりを備えてもよい。いくつかの態様では、サービス選択ツール１００１２は、利用可能なサービス、及び利用可能なサービスのプロバイダについて記述する、サービスカタログを提供する。
【００８５】
サービスプロビジョニングエンジン１００１４は、サービス選択ツール１００１２からのサービスをプロビジョニングする、要求を受信してもよい。サービスプロビジョニングエンジン１００１４は、ネットワークフィールドユニット１０００４と連動して、クラウドサービスの管理だけでなく、ネットワークインフラ内のサービスプロビジョニングの様々な態様を管理するために、基になるハードウェア及びソフトウェアのサブシステムを構築、運営及び統合する。例えば、サービスプロビジョニングエンジン１００１４は、サービス選択ツール１００１２と、ネットワークフィールドユニット１０００４によって構成される、クラウドエクスチェンジの基になる相互接続プラットフォームとの間で動作する、ルール駆動型のワークフローエンジンを提供してもよい。このように、サービスプロビジョニングエンジン１００１４は、ネットワークフィールドユニット１０００４によって構成される、クラウドエクスチェンジのネットワークインフラのプログラム可能なネットワークプラットフォームで直接参加するために、顧客専用アプリケーション、クラウドプロバイダベースの顧客ポータル、及び／又はクラウドサービスプロバイダシステムによって、サービス選択ツール１００１２を介して呼び出すことができる。図６などに関して以下にさらに詳細に記載する通り、サービスプロビジョニングエンジン１００１４は、サービスが、エンドツーエンドのクラウドベースのサービス遂行を提供するよう、的確にネットワークで共に接続されることを保証するように、第三者オーケストレーションシステムと通信する、第三者サービスコネクタを含んでもよい。さらに以下に記載する通り、ＮＦＵ１０００４は、ＮＦＵ１０００４が、一つ以上のクラウドエクスチェンジポイントで、サービスをプロビジョニングするように使用するＣＮＣシステム１０００２から、命令及び／又は要求を受信してもよい。
【００８６】
サービスプロビジョニングエンジン１００１４は、一つ以上のデータ記憶部において、サービステレメトリ及び分析データ（ｓｅｒｖｉｃｅ  ｔｅｌｅｍｅｔｒｙ  ａｎｄ  ａｎａｌｙｔｉｃｓ  ｄａｔａ：ＳＴＡＤ）１００１６に問い合わせ記憶してもよい。ＳＴＡＤ１００１６は、サービスプロビジョニングエンジン１００１４によって構成される、サービスの数量、種類、定義、及びコンシューマについてのメトリクスを含んでもよい。ＳＴＡＤ１００１６は、ＮＦＵ１０００４からの未加工のメトリクスデータに基づく、分析情報を含んでもよい。例えば、ＳＴＡＤ１００１６の分析情報は、数個の例のみを挙げると、コンシューマ、サービスの種類、サービスの使用など、様々な側面において分析できる、履歴統計及び／又はリアルタイム統計を含んでもよい。
【００８７】
また、ＣＮＣシステム１０００２は、財務論理１００１８を含んでもよい。財務論理１００１８は、顧客の会計情報を記憶してもよい。例えば、財務論理１００１８は、数個の例のみを挙げると、名前、住所、電話番号、電子メールなど、顧客の支払請求情報を記憶してもよい。サービスプロビジョニングエンジン１００１４が、サービス料を含む、顧客へのサービスを構成するとき、財務論理１００１８は、当該出費情報を記憶してもよい。このように、財務論理１００１８は、顧客が購入するサービスの会計処理を提供し、当該サービスに支払請求を提供してもよい。
【００８８】
ＣＮＣシステム１０００２は、情報技術（ＩＴ）システム１０００２２と連動する、ＩＴゲートウェイ１００２０を含んでもよい。ＩＴシステム１０００２２は、数個の例のみを挙げると、デスクトップコンピュータ、タブレット、スマートフォン、及びサーバなど、一つ以上のコンピュータデバイスを含んでもよい。ＩＴシステム１０００２２は、ＣＮＣシステム１０００２を運営するように、ＩＴシステム１０００２２を使用してもよい管理者に、一つ以上のユーザインタフェースを提供してもよい。ＩＴシステム１０００２２は、例えば、ＣＮＣシステム１０００２及び／又はＮＦＵ１０００４を構成するように、ユーザ入力を受信してもよい。ユーザ入力に基づいて、ＩＴシステム１０００２２は、ＩＴゲートウェイ１００２０によって受信される要求及び／又は命令を、ＣＮＣシステム１０００２に送信してもよい。いくつかの実施例では、ＣＮＣシステム１０００２は、ＩＴシステム１０００２２によって呼ぶことができる、又は他の場合であれば呼び出すことができる、一つ以上のＲＥＳＴｆｕｌインタフェースを提供してもよく、又は他の場合であれば公開してもよい。ＩＴゲートウェイ１００２０は、要求及び／又は命令の種類に基づいてさらに処理するために、ＣＮＣシステム１０００２内のその他の構成要素に、当該命令又は要求をルーティングしてもよい。
【００８９】
上に記載する通り、ＮＦＵ１０００４は、一つ以上のサービスをプロビジョニングするように、ＣＮＣシステム１０００２から要求又は命令を受信してもよい。ネットワークプロビジョニングエンジン１００２４は、サービスプロビジョニングエンジン１００１４から要求及び／又は命令を受信してもよい。ネットワークプロビジョニングエンジン１００２４は、クラウドエクスチェンジポイントにおいて構成されるサービスの要求を満たすほど、充分なリソースが存在するか否かを判定してもよい。いくつかの実施例では、ネットワークプロビジョニングエンジン１００２４は、ＳＤＮコントローラ１０００６、ハードウェア構成ツール１０００８、及び／又はネットワークテレメトリ及び分析データ（ｎｅｔｗｏｒｋ  ｔｅｌｅｍｅｔｒｙ  ａｎｄ  ａｎａｌｙｔｉｃｓ  ｄａｔａ：ＮＴＡＤ）１００２６など、一つ以上の構成要素に問い合わせてもよい。要求されたサービスをプロビジョニングするのに、充分なリソースが存在する場合、ネットワークプロビジョニングエンジン１００２４は、ＳＤＮコントローラ１０００６、及び／又は各構成要素それぞれを、要求されるサービスをプロビジョニングするように構成させる、ハードウェア構成ツール１０００８のうちの一つ以上に、命令及び／又は要求を送信してもよい。そして、ネットワークプロビジョニングエンジン１００２４は、ベンダー、及びサービスが送達されるフォームファクタを選択する機能性を提供する。また、ネットワークプロビジョニングエンジン１００２４は、サービスが正しい動作の順序で送達されることを保証するポリシー管理ツールの機能性も提供する。
【００９０】
いくつかの実施例では、ＮＦＵ１０００４のネットワークプロビジョニングエンジン１００２４は、ネットワークアプライアンスが適するサイズであることを保証する機能性を、アプライアンスによって送達される適切なＳＬＡに提供する、ネットワークアプライアンスサイズ設定エンジン（図示せず）を含んでもよい。いくつかの実施例では、ＮＦＵ１０００４は、サービスを送達する正しいデバイスを選択する機能性を提供する、デバイス選択及びハンドラ（図示せず）を含み、ネットワークコマンドを、選択されるデバイスに対して適切な構成コマンドに変換してもよい。例えば、ＮＦＵ１００１４は、ファイアウォール（ＦＷ）、ネットワークアドレス変換（ＮＡＴ）、及びディープパケットインスペクション（ＤＰＩ）などのネイティブサービスを、クラウドエクスチェンジを横断するサービストラフィックに提供するために、クラウドエクスチェンジ内の仮想及び／又は専用アプライアンスの機能を記述するリストにアクセスしてもよい。ＮＦＵ１０００４は、例えば、図８に関して以下にさらに詳細に記載する通り、サービス要求を満たすようにリストよりデバイスを選択してもよい。
【００９１】
ネットワークプロビジョニングエンジン１００２４は、一つ以上のデータ記憶部で、ネットワークテレメトリ及び分析データ（ＮＴＡＤ）１００２６に問い合わせ記憶してもよい。ＮＴＡＤ１００２６は、ネットワークの数量、種類、定義、及びＮＦＵ１０００４によって構成される、リソース構成についてのメトリクスを含んでもよい。ＮＴＡＤ１００２６は、ある特定のサービスで使用される、リソースの未加工メトリクスデータに基づく、インフラデータ収集ツール１００１０からの分析情報を含んでもよい。例えば、ＮＴＡＤ１００２６の分析情報は、履歴統計及び／又はリアルタイム統計を含んでもよい。
【００９２】
図５に示す通り、一つ以上のＳＤＮコントローラ１０００６は、クラウドエクスチェンジポイントを通ってネットワークトラフィックを運ぶように、物理的なインフラを提供する、ルータ、スイッチ、ブリッジ、及び同種のものなどのネットワークリソースを構成してもよい。一つ以上のハードウェア構成ツール１０００８は、サーバ、又は上で言及したネットワークリソース、すなわち、サーバ内のリソース、及びプロセッサ割り当て、メモリ割り当てを含むネットワークリソース、ストレージアプライアンス、その他ハードウェアリソース、並びに顧客へのサービスをプロビジョニングするように構成されてもよい、ソフトウェア構成など、ハードウェアリソースを構成してもよい。一つ以上のインフラデータ収集ツール１００１０は、ネットワークの数量、種類、定義、及びＮＦＵ１０００４によって構成される、リソース構成についてのメトリクスを収集してもよい。例えば、インフラデータ収集ツール１００１０は、ネットワークリソース、及び顧客へのサービスをプロビジョニングするように構成されるいかなる他のリソースのメトリクスを監視及び測定してもよい。インフラデータ収集ツール１００１０は、ＮＴＡＤ１００２６に当該メトリクスを記憶してもよい。
【００９３】
ＮＦＵ１０００４はネットワーク保証エンジン１００２８を、ＣＮＣシステム１０００２はサービス保証エンジン１００３０を、それぞれ含んでもよい。ネットワーク保証エンジン１００２８は、ＮＴＡＤ１００２６に基づいて、サービスを提供するように構成されるインフラが、満足のいくレベルのサービスを提供しているか否かを判定してもよい。例えば、機能停止、リソースの消費過剰、ハードウェア及び／又はソフトウェアの不具合若しくは問題、並びにその他の事象が、クラウドエクスチェンジポイントでネットワークインフラによって提供されるサービス品質に影響を与えてもよい。ネットワーク保証エンジン１００２８は、ＮＴＡＤ１００２６を監視し、いくつかの場合には、サービス保証エンジン１００３０に情報を送信してもよい。いくつかの実施例では、情報は、サービスレベルが満たされているか否かの警告、又はより具体的には、機能停止、リソースの消費過剰、ハードウェア及び／又はソフトウェアの不具合若しくは問題への警告を含んでもよい。いくつかの実施例では、ネットワーク保証エンジン１００２８によってサービス保証エンジン１００３０へ送信される情報は、特定の事象に基づくというよりはむしろ、情報を提供するものであってもよい。例えば、ネットワーク保証エンジン１００２８は、ある特定のスケジュール若しくは間隔で、及び／又は継続的若しくはリアルタイムで、インフラの性能についての情報を、サービス保証エンジンに送信してもよい。いくつかの実施例では、ＮＴＡＤ１００２６は、サービスプロビジョニングエンジン１００１４及びネットワーク保証エンジン１００２８が、プログラム可能なネットワークプラットフォーム１００００の動作を援助するように、データを適切に記憶し引き出すことを可能にする、１組の構造化及び／又は非構造化データベースを包含してもよい。
【００９４】
ネットワーク保証エンジン１００２８は、作成されたネットワーク構成が、ＣＮＣシステム１０００２によって要求されるネットワークＳＬＡの通りに確実に行われることを保証する機能性を提供してもよい。ネットワーク保証エンジンは、(１）所与のサービスに対してデータを監視して集めるようにプログラムされる、数個のデータ収拾ツールによって実施される、監視、（２）サービスが要求されるＳＬＡに準拠していることを比較して保証するように、データ収拾ツールによって収集されるデータを分析する、分析、（３）一つ又は１組のサービスが準拠していない場合、現行の非準拠が、局所で軽減できる、又はさらなる処理のためにＣＮＣシステム１０００２にエスカレートさせる必要があるかを、計画モジュールが決定するであろう、計画、及び（４）非準拠が局所で軽減できる場合に操作を実行するように、計画モジュールによる決定に基づく、実行を含む、ＭＡＰＥループによって保証を送達する、数個の下位構成要素から成る。
【００９５】
サービス保証エンジン１００３０は、ネットワーク保証エンジン１００２８から情報を受信してもよく、その情報を、ＳＴＡＤ１００１６に含まれるサービスレベル契約などのサービスレベル情報と比較してもよい。インフラの性能についての情報を、ＳＴＡＤ１００１６の中のサービスレベル情報と比較することによって、サービス保証エンジンは、一つ以上のサービス保証ＡＰＩを使用して、当該サービスレベル契約を満たしているか否かという、サービスレベル情報を顧客に送信してもよい。このように、顧客は、一つ以上のクラウドエクスチェンジポイントによって提供されるサービス品質を監視してもよく、又は他の場合であればエスカレートしてもよい。
【００９６】
上に記載する通り、プログラム可能なネットワークプラットフォーム１００００は、顧客及びクラウドサービスプロバイダなど、ビジネスシステムと、運営効率を向上させる、一つ以上のクラウドエクスチェンジポイントのネットワークインフラなど、運営システムとの橋渡しをしてもよい。そのため、プログラム可能なネットワークプラットフォーム１００００は、エンドツーエンドのサービス及びその構成要素を監視し確実に行うように、可視性の向上を提供してもよい。したがって、プログラム可能なネットワークプラットフォーム１００００は、従来のシステムとは異なり、複数のクラウドプロバイダに対する複数のオーケストレーションシステムにわたって、サービスのプロビジョニング及び保証を実施する能力を含んでもよい。ＣＮＣシステム１０００２は、サービスのビジネス要件をカプセル化するサービス要求を受信して、サービスをインスタンス化して確実に行うように、ビジネス、ネットワーク、及び提携企業のサブシステム論理を使用する機能を実施する、マスターコントローラとして動作してもよい。図５に示す通り、ＣＮＣシステム１０００２は、サービス要求を遂行する異なる機能を実施する、複数の異なるソフトウェアモジュールから構成される。プログラム可能なネットワークプラットフォーム１００００は、サービスを作成して、サービスを送達し確実に行う知能を配信する、分散オーケストレーションシステムを提供してもよい。加えて、図６に関して以下にさらに詳細に記載する通り、プログラム可能なネットワークプラットフォーム１００００は、第三者サービスオーケストレーションシステムと通信して分散サービスを送達できる、分散システムを提供してもよい。
【００９７】
プログラム可能なネットワークプラットフォーム１００００は、異種のサービスプロバイダにわたって、ビジネスレベルのサービスであるサービスオーケストレーションを提供してもよい。連携サービストポロジとしてのサービスポリシー、品質、サービスレベル契約、及び費用の定義は、プログラム可能なネットワークプラットフォーム１００００で提供してもよい。プログラム可能なネットワークプラットフォーム１００００は、仕様及び施行の観点から、個々の下位構成要素レベルのトポロジ、ポリシー、ＳＬＡ、及び費用を定義してもよい。
【００９８】
プログラム可能なネットワークプラットフォーム１００００は、システムによって送達されるサービスが、サービスの有効期間中にサービスレベル契約を忠実に守って確実に行うことを保証するであろう、図７及び９に示すような、障害軽減の監視／分析／計画／実行（ＭＡＰＥ）ループを有する能力を伴う、インテリジェントな集中サービスデリバリ及び保証システムである。プログラム可能なネットワークプラットフォーム１００００は、自身のデリバリインフラによって提供できる、サービスを送達するだけではなく、組み合わせた異種サービスを送達するように、その他の第三者オーケストレーションシステムにわたって通信する機能も有する。プログラム可能なネットワークプラットフォーム１００００、又はより具体的には、ＣＮＣシステム１０００２は、運用及び実施されるビジネス関係機能の両方に対する中央制御センターであってもよい。
【００９９】
また、ＮＦＵ１０００４及びＣＮＣシステム１０００２は、サービスを作成して、サービスを送達し確実に行う知能を配信する、分散オーケストレーションシステムを有する必要性を満たしてもよい。加えて、ＮＦＵ１０００４及びＣＮＣシステム１０００２は、分散サービスを送達するように、第三者サービスオーケストレーションシステムと通信できる、分散システムの必要性を満たしてもよい。プログラム可能なネットワークプラットフォーム１００００は、分散型の水平スケーリングアーキテクチャを提供する利点を提供する。ＣＮＣ１０００２及び一つ以上のＮＦＵ１０００４は、次の二つの明らかに別個の機能、（１）ＣＮＣ―ビジネスの要求をサービスパラメータに変換する機能を処理してもよい、（２）ＮＦＵ―サービスパラメータをネットワークパラメータに変換して、サービスをインスタンス化する機能を処理してもよい、の中へビジネスサービスを送達して確実に行う機能性を提供してもよい。
【０１００】
図６は、本開示の一つ以上の技術に従い、さらに詳細に図５のサービスプロビジョニングエンジン１００１４を示すブロック図である。図６に示す通り、サービスプロビジョニングエンジン１００１４は、サービスポリシー管理ツール１０４００を含めてもよい。サービスポリシー管理ツール１０４００は、サービス選択ツール１００１２、サービス保証エンジン１００３０、財務論理１００１８、及びＩＴゲートウェイ１００２０など、ＣＮＣシステム１０００２のその他の構成要素から、サービス要求及び／又は命令を受信してもよい。サービスポリシー管理ツール１０４００によって受信される要求及び／又は命令は、作成、読み出し、更新、及び／又は削除（ＣＲＵＤ）要求の形態を取ってもよい。サービスポリシー管理ツール１０４００は、ＣＮＣシステム１０００のその他の構成要素が、サービスポリシー管理ツール１０４００にサービス要求及び／又は命令を送信することを可能にする、１組のＡＰＩを提供してもよい。サービスポリシー管理ツール１０４００は、当該サービス要求及び／又は命令を、サービスポリシー管理ツール１０４００内のその他の構成要素に方向づけてもよい。
【０１０１】
サービスプロビジョニングエンジン１００１４は、ネイティブサービス１０４０２、及び第三者オーケストレーションモジュール１０４０４によって調整される第三者サービスを含んでもよい。ネイティブサービス１０４０２は、ＣＮＣシステム１０００２のオペレータによって設計及び／又は実装されるサービスを含んでもよい。例えば、ネイティブサービスは、一つ以上のクラウドエクスチェンジポイントで、仮想回路を構成するように使用されてもよい。ネイティブサービス１０４０２の実施例は、ポートサービス１０４０２Ａ、一つ以上のレイヤ３（Ｌ３）接続サービス１０４０２Ｂ、一つ以上のレイヤ２（Ｌ２）接続サービス１０４０２Ｃ、及びアプリケーション、表示、セッション、及び伝送レイヤサービス（「Ｌ３＋サービス１０４０２Ｄ」）など、Ｌ３よりも大きなＯＳＩレイヤにおいて提供される、一つ以上の接続サービスを含んでもよいが、それらに限定されない。ポートサービス１０４０２Ａは、クラウドエクスチェンジポイントで一つ以上のサービスを提供するように、一つ以上のポートを識別及び／又は構成してもよい。Ｌ２、Ｌ３、及びＬ３＋サービスは、ある特定のサービスが適用される、ＯＳＩ又はＴＣＰ／ＩＰレイヤを指してもよい。
【０１０２】
いくつかの実施例では、本明細書に記載するプログラム可能なネットワークプラットフォームは、ポリシー、セキュリティ、及びサービスレベル契約（ＳＬＡ）の一貫性を保証しながら、ネイティブ構成要素及び第三者構成要素の両方に関連するサービスの調整を提供してもよい。プログラム可能なネットワークプラットフォームは、第三者（又は「提携企業の」）オーケストレーションモジュール（又は「プラグイン」）を使用して、第三者サービス構成要素を調整してもよい。第三者オーケストレーションモジュールによって、第三者オーケストレーションシステムが、プログラム可能なネットワークプラットフォームで、自身の機能（例えば、サービスカタログ、ポリシー、セキュリティ、及びＳＬＡ）を登録することが可能になる。サービス所有者として、クラウドサービスプロバイダは、対応する第三者オーケストレーションモジュールを介して、サービスデリバリに対するワークフローの一部として、第三者オーケストレーションシステムに、サービスを守り、サービスに対して第三者サービスを送達するように指図するよう、プログラム可能なネットワークプラットフォームを使用してもよい。
【０１０３】
結果として、プログラム可能なネットワークプラットフォームは、いかなる第三者オーケストレーションシステムに対しても、第三者オーケストレーションモジュールを登録（又は更新）することによって、適合し拡張されてもよい。これによって、プログラム可能なネットワークプラットフォームを運営するクラウドサービスプロバイダが、顧客とクラウドサービスプロバイダとの間の相互接続性をブローカにも提供して、顧客にクラウドサービスプロバイダのレイヤ３のサービスを送達することが可能になってもよい。
【０１０４】
図６に示す通り、サービスプロビジョニングエンジン１００１４は、サービスプロビジョニングエンジン１００１４によって、クラウドサービスのオーケストレーションを行えるように、一つ以上の第三者オーケストレーションモジュール１０４０４を含んでもよい。いくつかの実施例では、第三者オーケストレーションモジュール１０４０４は、クラウドエクスチェンジポイントの管理者以外では、それぞれのクラウドサービスプロバイダによって設計及び／又は実装されてもよい。第三者によって設計及び実装されるものの、第三者オーケストレーションモジュール１０４０４は、クラウドエクスチェンジポイントにてホストされ実行される。このように、第三者が、クラウドエクスチェンジポイントにてホストされ実行する、第三者オーケストレーションモジュール１０４０４を設計及び実装してもよい。
【０１０５】
第三者オーケストレーションモジュール１０４０４の各々は、クラウドサービスプロバイダからクラウドサービスを要求するための、サービスプロビジョニングエンジン１００１４への共通インタフェースを提示してもよい。インタフェースは、クラウドサービスプロバイダが、利用可能なポリシー、セキュリティ、ＳＬＡパラメータ、及びクラウドサービスの費用と共に、利用可能な自身のクラウドサービスのリストを、プログラム可能なネットワークプラットフォームに発行できる、カタログインタフェースを含んでもよい。プログラム可能なネットワークプラットフォームは、様々なクラウドサービスプロバイダが利用可能なクラウドサービスのリストを、顧客ポータルを介して顧客に複製してもよい。例えば、それぞれの第三者オーケストレーションモジュール１０４０４に対するクラウドサービスプロバイダは各々、データ記憶サービスを提供し、第三者オーケストレーションモジュール１０４０４を介して、この提供内容を公開してもよい。そして、所与の第三者オーケストレーションモジュール１０４０４が登録しているプログラム可能なネットワークプラットフォームは、提供されるクラウドサービスのうちの一つのオーケストレーションを要求するように、共通インタフェースを呼び出してもよい。第三者オーケストレーションモジュール１０４０４は、クラウドサービスプロバイダネットワークに、要求の中のサービスパラメータに従って、要求されるレイヤ３のクラウドサービスを設定させるように、対応するクラウドサービスプロバイダのオーケストレーションシステムとレスポンシブに通信する。当該サービスパラメータは、その他のパラメータの中に、ポリシー、レイヤ３のクラウドサービスの種類に特有のサービス固有の情報（例えば、ｄＳａａＳサービスのデータ記憶部の大きさ）、接続性情報（例えば、顧客又は別のクラウドサービスプロバイダネットワーク用のＬ３アドレス）、ＱｏＳ情報を含んでもよい。
【０１０６】
（例えば）第三者オーケストレーションモジュール１０４０４Ａを介してサービスプロビジョニングエンジンにより要求される、クラウドサービスのインスタンス化の際、第三者オーケストレーションモジュール１０４０４Ａは、クラウドエクスチェンジが、インスタンス化されるクラウドサービスに接続することを可能にする、接続性情報を受信してもよい。この接続性情報又は「ネットワークの処理」は、例えば、サービスへのレイヤ３ルート、すなわち、ＶｘＬＡＮ、ＶＬＡＮ、又は、クラウドサービスプロバイダネットワークに対面するクラウドエクスチェンジのルータによって、クラウドサービスにアクセスするのに使用可能なその他のトンネル識別子（例えば、クラウドサービスへのサービストラフィックの転送、又はクラウドサービスプロバイダネットワークからクラウドエクスチェンジポイントが受信するクラウドサービスのサービストラフィックの識別）を含んでもよい。第三者オーケストレーションモジュール１０４０４Ａは、接続性情報１４０５をサービスプロビジョニングエンジン１００１４（例えば、共通インタフェースを介して）に提供してもよく、サービスプロビジョニングエンジン１００１４は、サービスデータを入手して、最終的に１０４１０でネットワークプロビジョニングデータを生成するように、接続性情報及びＳＴＡＤ１０４０６を使用する。ＳＴＡＤ１０４０６は、サービスプロビジョニングエンジン１００１４に、提供されるサービスの指標を提供する。このように、クラウドエクスチェンジプロバイダは、対応するクラウドサービスプロバイダのＡＰＩ又はクラウドサービスプロバイダポータルを介して、クラウドサービスを確立する必要性を免除される。代わりに、第三者オーケストレーションモジュール１０４０４が、共通インタフェースを介して、サービスプロビジョニングエンジン１００１４によってなされるサービス要求に応じて、設定を管理する。
【０１０７】
第三者オーケストレーションモジュール１０４０４は、それぞれのクラウドサービスプロバイダのオーケストレーションシステムを含む、それぞれのクラウドサービスプロバイダと通信するために、接続性情報で構成されてもよい。クラウドサービスプロバイダは、最新の新しい又は修正されたサービスカタログ及びサービス価格情報を押し出すことによって、第三者オーケストレーションモジュール１０４０４を更新してもよい。そのため、クラウドエクスチェンジプロバイダは、クラウドサービスプロバイダからこの情報を引き出す必要がない場合もある。
【０１０８】
第三者オーケストレーションモジュール１０４０４の各々は、クラウドエクスチェンジの一つ以上のデータセンターのサーバ上で実行され、クラウドエクスチェンジプロバイダによって運営されるアプリケーション、すなわち、ソフトウェアのプラグイン、モジュール、若しくはリンク付けされたライブラリ、又は上に記載するように、プログラム可能なネットワークプラットフォームと連動して実行可能で、第三者オーケストレーションへのサービス要求を満たすことができる、別のマシンで実行可能なコードを表してもよい。
【０１０９】
プログラム可能なネットワークプラットフォーム内で、第三者クラウドサービスプロバイダからのクラウドサービスの設定及び管理の一元管理を可能にすることによって、第三者オーケストレーションモジュール１０４０４は、クラウドサービスプロバイダが、クラウドサービスプロバイダによって提供される、少なくとも一つの構成要素のサービス（又は「マイクロサービス」）を含む、エンドツーエンドのサービスの権限を持つ所有者になることを可能とする。いくつかの場合では、エンドツーエンドのサービスは、異なる第三者オーケストレーションモジュール１０４０４と各々関連する、複数の異なるクラウドサービスプロバイダからの、複数のマイクロサービスを含んでもよい。また、エンドツーエンドのサービスは、クラウドエクスチェンジによって適用される、一つ以上のネイティブサービス（本明細書に記載するＮＦＶのうちのいずれかなど）を含んでもよい。サービスプロビジョニングの一元管理によって、クラウドエクスチェンジプロバイダが、一元化した支払請求を顧客に提供することが可能になり、それによって、クラウドエクスチェンジプロバイダは、クラウドサービスプロバイダから受信する費用情報に従って、クラウドサービスプロバイダが提供するサービスについて顧客に支払いを請求し、クラウドサービスプロバイダに支払いを渡す。また、クラウドエクスチェンジプロバイダは、レイヤ３又はその他の接続、ＮＦＶなどを含む、いかなるネイティブサービスについても顧客に支払いを請求する。
【０１１０】
図６は、以下に記載するサービスプロビジョニングを示す。サービスポリシー管理ツール１０４００は、ある特定のサービスを構成するように、サービス要求を受信してもよい。要求は、第三者サービス１０４０４Ａなど、第三者サービス１０４０４のうちの一つを指定してもよい。要求は、一つ以上のポートの使用を必要としてもよく、それによってポートサービス１０４０２Ａを呼び出す。要求はさらに、Ｌ３サービスを必要としてもよく、それによって、Ｌ３サービス１０４０２Ｂを呼び出す。サービスプロビジョニングエンジン１００１４は、要求されるサービスを構成するように、１組の動作１０４０６〜１０４１０を実施してもよい。
【０１１１】
サービスプロビジョニングエンジン１００１４は、要求されるサービスに対するサービスデータを入手する、一つ以上の動作１０４０６を実施してもよい。サービスデータを入手するために、サービスプロビジョニングエンジン１００１４は、前に図５に記載した通り、ビジネスゲートウェイ１０４１２及び／又はＳＴＡＤ１００１６で、データに問い合わせしてもよく、及び／又はデータを記憶してもよい。ビジネスゲートウェイ１０４１２は、図５に示す通り、財務論理１００１８と連動する、一つ以上のＡＰＩを含んでもよい。例えば、サービスプロビジョニングエンジン１００１４は、要求されるサービスの支払請求情報を、ビジネスゲートウェイ１０４１２に送信してもよく、ビジネスゲートウェイ１０４１２は、情報を財務論理１００１８に送信してもよい。財務論理１００１８は、サービスの支払請求情報を、ある特定のアカウントと関連付けてもよい。また、サービスプロビジョニングエンジン１００１４は、サービス、及び一つ以上のサービスのプロパティを識別する、ＳＴＡＤ１００１６の中に情報を記憶してもよい。例えば、サービスが、ある特定の地理的な場所、ある特定のサービスレベルの要求などを含む場合、サービスの識別子を伴う当該詳細は、ＳＴＡＤ１００１６に記憶されてもよい。サービスが、実装され使用された後、サービスに対するＳＴＡＤ１００１６のメトリクスは、ＳＴＡＤ１００１６において更新及び記憶されてもよい。
【０１１２】
要求されるサービスを実装するように、サービスデータを入手すると、サービスプロビジョニングエンジン１００１４は、一つ以上のＮＦＵを選択するように、一つ以上の動作１０４０８を実施してもよい。サービスプロビジョニングエンジン１００１４は、サービス選択ツール１００１２から受信する最初の要求又は命令に基づいて、一つ以上のＮＦＵを選択してもよい。例えば、要求がある特定の地理的な場所を指定する場合、サービスプロビジョニングエンジン１００１４は、ある特定の地理的な場所用のＮＦＵを選択してもよい。要求が、リソースのある特定の数量又は種類を指定する場合、サービスプロビジョニングエンジン１００１４は、要求されるリソースのある特定の数量及び／又は種類を満たすのに充分なリソースで、一つ以上のクラウドエクスチェンジポイントを管理する、一つ以上のＮＦＵを判定してもよい。サービスプロビジョニングエンジン１００１４は、異なるＮＦＵによって管理されるリソースの数量及び／又は種類を判定するために、ＳＴＡＤ１００１６に問い合わせてもよい。
【０１１３】
サービスプロビジョニングエンジン１００１４は、要求されるサービスをプロビジョニングするように、ＮＦＵを選択すると、１０４１０でネットワークプロビジョニングデータを生成するように、一つ以上の動作を実施してもよい。例えば、サービスプロビジョニングエンジン１００１４は、顧客から受信したより上位のサービス要求を、サービスプロビジョニングエンジン１００１４が一つ以上のＮＦＵに送信する、より特異的な１組の命令及び／又は要求を備えるネットワークプロビジョニングデータに変換してもよい。ネットワークプロビジョニングデータを受信するＮＦＵは、要求されるサービスを提供するように、ネットワークプロビジョニングデータに基づいてネットワークインフラを構成してもよい。
【０１１４】
図７は、本開示の一つ以上の技術に従い、さらに詳細に図５のサービス保証エンジン１００３０を示すブロック図である。図５に記載する通り、サービス保証エンジン１００３０は、ネットワーク保証エンジン１００２８から情報を受信してもよく、その情報を、サービスレベル契約など、ＳＴＡＤ１００１６に含まれるサービスレベル情報と比較してもよい。インフラの性能についての情報を、ＳＴＡＤ１００１６の中のサービスレベル情報と比較することによって、サービス保証エンジンは、一つ以上のサービス保証ＡＰＩを使用して、当該サービスレベル契約又はその他の性能閾値を満たしているか否かという、サービスレベル情報を顧客に送信してもよい。
【０１１５】
当該サービスレベル契約又はその他の性能閾値が満たされているか否かを判定するために、サービス保証エンジン１００３０は、一つ以上の動作１６０００〜１０６０８を実施してもよい。サービス保証エンジン１００３０は、サービスデータ１６００を引き出してもよい。サービスデータは、顧客によって要求され、一つ以上のクラウドエクスチェンジポイントにてプロビジョニングされていた、サービスの定義及び／又は記述を含んでもよい。サービスデータに基づいて、サービス保証エンジン１００３０は、要求されるサービスを提供する、クラウドエクスチェンジポイントの実際の性能を監視してもよい。クラウドエクスチェンジポイントの実際の性能を判定するために、サービス保証エンジン１００３０は、ＣＮＣシステム１０００２によって、ＮＦＵ１０００４など、一つ以上の構成要素からのデータを追加される、ＳＴＡＤ１００３０からの性能データに問い合わせてもよく、又は他の場合であれば性能データを受信（１０６０２）してもよい。
【０１１６】
サービス保証エンジン１００３０は、クラウドエクスチェンジポイントによってプロビジョニングされるサービスと関連する異常、問題、又は不充分な性能を識別するように、サービスデータと連動して性能データを分析してもよい（１０６０４）。例えば、サービス保証エンジン１００３０は、異常、問題、又は不充分な性能を示す、一つ以上の状況、条件、及び／又は閾値を満たすと判定してもよい（１０６０４）。当該状況、条件、及び／又は閾値を満たす場合、サービス保証エンジン１００３０は、一つ以上の修復操作を実施してもよい。
【０１１７】
サービス保証エンジン１００３０は、一つ以上の修復操作１０６０６を記憶してもよい。いくつかの実施例では、修復操作は、異常、問題、又は不充分な性能を修復するように、ＣＮＣシステム１０００２の一つ以上の構成要素が行ってもよい、一つ以上の動作を指してもよい。修復操作は、サービス保証エンジン１００３０にて、一つ以上の状況と関連付けられてもよい。例えば、サービス保証エンジン１００３０は、一つ以上の状況、条件、及び／又は閾値を満たすと判定するとき、一つ以上の状況、条件、及び／又は閾値と関連する修復操作を判定してもよい。修復操作の実施例は、数個の例のみを挙げると、クラウドエクスチェンジポイントである特定のサービス提供を継続するように、リソースを再割り当てすることと、一つ以上の受信者に一つ以上の通知を送信することとを含んでもよい。いくつかのインスタンスでは、管理者及び／又は顧客は、サービスがクラウドエクスチェンジポイントでプロビジョニングされるとき、又はその前に、修復操作並びに／又は一つ以上の状況、条件、及び／若しくは閾値を構成してもよい。このように、クラウドエクスチェンジポイントに関して、一つ以上の状況、条件、及び／又は閾値を満たす場合、サービス保証エンジン１００３０は、対応する修復操作を判定してもよい。
【０１１８】
図７に示す通り、クラウドエクスチェンジポイントに関して、一つ以上の状況、条件、及び／又は閾値を満たす場合、サービス保証エンジン１００３０は、一つ以上の修復操作を実行してもよい（１０６０８）。修復操作を実行するために、サービス保証エンジン１００３０は、修復操作によって定義される動作を行う、サービスプロビジョニングエンジン１００１４に、修復操作を伝達してもよい。このように、サービス保証エンジン１００３０は、一つ以上の修復操作を実施することによって、自動的に異常、問題、又は不充分な性能を監視しそれらに応答してもよい。
【０１１９】
図８は、本開示の一つ以上の技術に従い、さらに詳細に図５のネットワークプロビジョニングエンジン１００２４を示すブロック図である。ネットワークプロビジョニングエンジン１００２４は、ＣＮＣシステム１０００２のサービスプロビジョニングエンジン１００１４から、ネットワークサービス定義、命令、及び／又は要求を受信してもよい。ネットワークプロビジョニングエンジン１００２４は、一つ以上のクラウドエクスチェンジポイントにて、ネットワークサービスをプロビジョニングするために、ＮＦＵ１０００４によって管理されるインフラを構成するように、ネットワークサービス定義、命令、及び／又は要求を使用する。本明細書で使用する通り、「ネットワークサービス定義」は、ネットワークサービスを提供する、ネットワークデバイスのネットワークを構成することによって、少なくとも一部インスタンス化可能である、ネットワークサービスをプロビジョニングするためのパラメータを定義するデータである。ネットワークサービスは、前述のネットワークサービスのコンシューマに、（ネイティブサービスの）クラウドエクスチェンジによって提供される、又は（クラウドサービス又は第三者サービスの）クラウドエクスチェンジによって送達されるネットワークサービスを含んでもよい。
【０１２０】
さらに示すと、図８では、ネットワークサービス定義、一つ以上の命令、及び／又は要求を受信すると、ネットワークプロビジョニングエンジン１００２４が、ネットワークサービス定義、命令、及び／又は要求のコンテンツ及び形式を検証してもよい（１０８００）。例えば、ネットワークプロビジョニングエンジン１００２４は、ネットワークサービス定義、命令、及び／又は要求が有効であるか否かを判定してもよい。コンテンツ及び／又は形式が無効の場合、ネットワークプロビジョニングエンジン１００２４は、コンテンツ及び／又は形式の無効を示す応答を、サービスプロビジョニングエンジン１００１４に送信してもよい。
【０１２１】
ネットワークサービス定義、命令、及び／又は要求のコンテンツ及び形式が有効の場合、ネットワークプロビジョニングエンジンは、ネットワークサービス定義、命令、及び／又は要求に基づいてサービスを提供するように、ベンダーを選んでもよい（１０８０２）。例えば、ＣＮＣシステム１０００２によって、顧客又はクラウドサービスプロバイダが、ある特定のサービスを提供するように、１組のベンダー機器より、一つ以上のある特定の種類のベンダー機器を選択することが可能になってもよい。実施例として、クラウドサービスプロバイダは、ファイアウォールサービスを提供するために、ある特定のベンダーを指定してもよい。ネットワークプロビジョニングエンジン１００２４によって受信される、ＣＮＣシステム１０００２からのネットワークサービス定義、命令、及び／又は要求は、サービスを提供するために、ある特定のベンダーを指定してもよい。ネットワークプロビジョニングエンジン１００２４は、ある特定のベンダー用の機器が、サービスを提供するのに利用可能か否かを判定してもよい。利用可能でない場合、ネットワークプロビジョニングエンジン１００２４は、ベンダー機器が利用できないことを示す応答を、サービスプロビジョニングエンジン１００１４に送信してもよい。
【０１２２】
ある特定のベンダー用の機器が利用可能な場合、ネットワークプロビジョニングエンジン１００２４は、ベンダー機器に対して、ある特定のフォームファクタを選んでもよい（１０８０４）。いくつかの実施例では、フォームファクタは、ネットワークプロビジョニングエンジン１００２４によって受信される、サービスプロビジョニングエンジン１００１４からのネットワークサービス定義、命令、及び／又は要求に基づいて規定されてもよい。その他の実施例では、ネットワークプロビジョニングエンジン１００２４は、ネットワークサービス定義、命令、及び／又は要求の中の一つ以上のパラメータに基づいて、ベンダー機器に対するフォームファクタを自動的に判定してもよい。例えば、一つ以上のパラメータは、フォームファクタを規定しなくてもよいが、しかしながら、ネットワークプロビジョニングエンジン１００２４は、パラメータに基づいて、ベンダー機器のある特定のフォームファクタが、ネットワークサービス定義、命令、及び／又は要求の要件を満たすであろうと判定してもよい。例えば、パラメータは、ベンダー機器のどのフォームファクタが要件を満たすことができるのかを、ネットワークプロビジョニングエンジン１００２４が判定するのに使用してもよい、ある特定の種類の機能性及び又はリソース要件を規定してもよい。
【０１２３】
ネットワークプロビジョニングエンジン１００２４は、ベンダー機器に対するサイズ設定を判定してもよく、及び／又はベンダー機器の容量を検証してもよい（１０８０６）。いくつかの実施例では、ネットワークプロビジョニングエンジン１００２４は、ネットワークプロビジョニングエンジン１００２４によって管理される、クラウドエクスチェンジポイントのインフラに対する、現行のリソース割り当て及び使用率を判定するように、ＮＴＡＤ１００２６に問い合わせてもよい。インフラは、サービスプロビジョニングエンジン１００１４から受信する、ネットワークサービス定義、命令、及び／又は要求に対して、ネットワークプロビジョニングエンジン１００２によって識別されるベンダー機器を含んでもよい。ＣＮＣ１０００２から受信する命令及び／要求、並びにＮＴＡＤ１００２６からの現行のリソース割り当て及び使用率の要件に基づいて、ネットワークプロビジョニングエンジン１００２４は、要求されるサービスをプロビジョニングするように、ネットワークプロビジョニングエンジン１００２４によって判定されるベンダー機器に、的確なリソースが存在するか否かを判定してもよい。ベンダー機器のサイズ設定及び／又は容量が、サービスプロビジョニングエンジン１００１４から受信する命令及び／又は要求に対して不充分な場合、ネットワークプロビジョニングエンジン１００２４は、ベンダー機器のサイズ設定及び／又は容量が不充分であることを示す応答を、サービスプロビジョニングエンジン１００１４に送信してもよい。
【０１２４】
ベンダー機器のサイズ設定及び／又は容量が、サービスプロビジョニングエンジン１００１４から受信するネットワークサービス定義、命令、及び／又は要求に対して充分な場合、ネットワークプロビジョニングエンジン１００２４は、特定のベンダー機器へのデバイスハンドラを取得してもよい（１０８０８）。いくつかの実施例では、デバイスハンドラは、ある特定のデバイスを一意に識別する、識別子であってもよい。当該デバイスは、一つ以上のクラウドエクスチェンジポイントのインフラに含まれる、ベンダー機器を含んでもよい。デバイスハンドラを選ぶと、ネットワークプロビジョニングエンジン１００２４は、デバイスハンドラによって識別されるデバイスを構成してもよく、又は他の場合であれば、デバイスハンドラによって識別されるデバイスを構成するように、一つ以上の要求及び／若しくは命令を、ＳＤＮコントローラ１０００６及び／若しくはハードウェア構成ツール１０００８に送信してもよい（１０８１０）。いくつかの実施例では、要求は、デバイスハンドラによって識別されるデバイスに関して実施するように、作成、読み出し、更新、又は削除の動作を規定してもよい。
【０１２５】
図９は、本開示の一つ以上の技術に従い、さらに詳細に図５のネットワーク保証エンジン１００２８を示すブロック図である。図５に記載する通り、ネットワーク保証エンジン１００２８は、サービス保証エンジン１００３０に情報を送信してもよく、サービス保証エンジン１００３０は、その情報を、サービスレベル契約など、ＳＴＡＤ１００１６に含まれるサービスレベル情報と比較してもよい。ネットワーク保証エンジン１００３０は、サービス保証エンジン１００３０がＳＴＡＤ１００１６に問い合わるのと類似する方法で、ＮＴＡＤ１００２６に問い合わせてもよい。インフラの性能についての情報を、ＮＴＡＤ１００２６の中のサービスレベル情報と比較することによって、ネットワーク保証エンジンは、一つ以上のネットワーク保証ＡＰＩを使用して、サービスレベル契約又はその他の性能閾値を満たしているか否かという、ネットワークレベル情報を顧客に送信してもよい。
【０１２６】
当該サービスレベル契約又はその他の性能閾値が満たされているか否かを判定するために、ネットワーク保証エンジン１００２８は、一つ以上の動作１１０００〜１１００１０を実施してもよい。ネットワーク保証エンジン１００２８は、ネットワークデータを引き出してもよい（１１０００）。ネットワークデータは、数個の例のみを挙げると、実際の帯域幅、パケット損失、遅延、稼働時間を含んでもよい。ネットワークデータに基づいて、ネットワーク保証エンジン１００２８は、要求されるサービスを提供する、クラウドエクスチェンジポイントの実際の性能を監視してもよい。クラウドエクスチェンジポイントの実際の性能を判定するために、ネットワーク保証エンジン１００２８は、ＮＦＵ１０００４によって追加される性能データに問い合わせてもよく、又は他の場合であればＮＴＡＤ１００２６から性能データを受信してもよい（１１００２）。
【０１２７】
ネットワーク保証エンジン１００２８は、クラウドエクスチェンジポイントのネットワークインフラと関連する異常、問題、又は不充分な性能を識別するように、サービスデータと連動して性能データを分析してもよい（１１００４）。例えば、ネットワーク保証エンジン１００２８は、異常、問題、又は不充分な性能１１００４を示す、一つ以上の状況、条件、及び／又は閾値を満たすと判定してもよい。当該状況、条件、及び／又は閾値を満たす場合、ネットワーク保証エンジン１１００４は、一つ以上の修復操作を実施してもよい。
【０１２８】
ネットワーク保証エンジン１００２８は、一つ以上の修復操作を記憶してもよい（１１００６）。いくつかの実施例では、修復操作は、異常、問題、又は不充分な性能を修復するように、ＣＮＣシステム１０００２の一つ以上の構成要素が行ってもよい、一つ以上の動作を指してもよい。修復操作は、ネットワーク保証エンジン１００２８にて、一つ以上の状況と関連付けられてもよい。例えば、ネットワーク保証エンジン１００２８は、一つ以上の状況、条件、及び／又は閾値を満たすと判定するとき、一つ以上の状況、条件、及び／又は閾値と関連する修復操作を判定してもよい。修復操作の実施例は、数個の例のみを挙げると、クラウドエクスチェンジポイントである特定のサービス提供を継続するように、リソースを再割り当てすること、及び／又は一つ以上の受信者に一つ以上の通知を送信することを示してもよい。いくつかのインスタンスでは、管理者及び／又は顧客は、サービスがクラウドエクスチェンジポイントでプロビジョニングされるとき、又はその前に、修復操作並びに／又は一つ以上の状況、条件、及び／若しくは閾値を構成してもよい。このように、クラウドエクスチェンジポイントに関して、一つ以上の状況、条件、及び／又は閾値を満たす場合、ネットワーク保証エンジン１００２８は、対応する修復操作を判定してもよい。
【０１２９】
図９に示す通り、クラウドエクスチェンジポイントに関して、一つ以上の状況、条件、及び／又は閾値を満たす場合、ネットワーク保証エンジン１００２８は、一つ以上の修復操作を実行してもよい（１１００８）。修復操作を実行するために、ネットワーク保証エンジン１００２８は、修復操作によって定義される動作を行う、ネットワークプロビジョニングエンジン１００２４に、修復操作を伝達してもよい。このように、ネットワーク保証エンジン１００２８は、一つ以上の修復操作を実施することによって、自動的に異常、問題、又は不充分な性能を監視してそれらに応答してもよい。
【０１３０】
図１０は、本開示の一つ以上の技術に従う、プログラム可能なネットワークプラットフォーム１１６００を示すブロック図である。プログラム可能なネットワークプラットフォーム１１６００は、プログラム可能なネットワークプラットフォーム１２０、プログラム可能なネットワークプラットフォーム１００００、又は本開示に記載するその他のプログラム可能なネットワークプラットフォームの例示的インスタンスを表してもよい。図１０に示す通り、プログラム可能なネットワークプラットフォーム１１６００は、データファブリック１１６１４を制御する、集中ネットワーク制御（ＣＮＣ）システム１１６０１を含んでもよい。データファブリック１１６１４は、顧客１１６１０が、クラウドサービスプロバイダ１１６１６によって提供されるサービスを使用することを可能にする、仮想接続を含む、一つ以上のサービスを提供するように、ＣＮＣシステム１１６０１によって構成されてもよい。
【０１３１】
顧客１１６１０は、データファブリック１１６１４などの共通のポイントで、クラウドサービスプロバイダ１１６１６に直接、交差接続したいと望んでもよく、それによって、顧客のネットワークとクラウドサービスプロバイダとの間で、ネットワークトラフィックの直接交換が可能になる。いくつかの実施例では、一つ以上のサービスが、顧客１１６１０とクラウドサービスプロバイダ１１６１６との間で転送されるネットワークトラフィックに、データファブリック１１６１４によって適用されてもよい。例えば、顧客は、データファブリック１１６１４を使用して、顧客とクラウドサービスプロバイダとの間に、ファイアウォールを伴うＬ３接続サービスを構成してもよい。
【０１３２】
図１６にさらに示す通り、データファブリック１１６１４を実装するインフラは、エッジネットワーク及びコアネットワークのインフラとして論理的に分割されてもよい。エッジネットワークインフラは、データファブリック１１６１４のコアネットワークを、顧客ネットワーク及びクラウドサービスプロバイダネットワークに結合する、ネットワークデバイスを含んでもよい。コアネットワークインフラは、データファブリック１１６１４のコアネットワークを通って、ネットワークトラフィックを転送する、ネットワークデバイスを含んでもよい。図１０の実施例では、ＣＮＣシステム１１６０１は、データファブリック１１６１４のエッジネットワークインフラに含まれるネットワークデバイスにて、サービスを構成及びプロビジョニングする、エッジネットワーク制御モジュール１１６１８を含む。また、ＣＮＣシステム１６６０１は、データファブリック１１６１４のコアネットワークインフラに含まれるネットワークデバイスにて、サービスを構成及びプロビジョニングする、コアネットワーク制御モジュール１１６２０を含む。ＣＮＣシステム１１６０１に示す通り、エッジネットワーク制御モジュール１１６１８及び／又はコアネットワーク制御モジュール１１６２０の機能性は、一つ以上のＮＦＵに含まれてもよく、及び／又はＮＦＵとＣＮＣシステム１１６０１との間に分散されてもよい。
【０１３３】
一実施例では、顧客１１６１０のうちの一つの顧客が、クラウドサービスプロバイダ１１６１６によって提供される、一つ以上のサービスにアクセスしたいと望んでもよい。実施例として、顧客は、クラウドサービスプロバイダ１１６１６のオフィス生産性サービスにアクセスしたいと望んでもよい。したがって、顧客は、顧客とオフィス生産性サービスのクラウドサービスプロバイダとの間で、ネットワークトラフィックの直接交換を可能にする、データファブリック１１６１４にて提供される、Ｌ３接続及びファイアウォールに対して、ユーザポータル１１６０２を使用して、要求を出してもよい。ユーザポータル１１６０２によって提供される例示のユーザインタフェースを、図１１及び図１２に示す。
【０１３４】
ＣＮＣシステム１１６０１は、Ｌ３接続サービスの要求を受信する。エッジネットワーク制御モジュール１１６１８はエッジネットワークインフラを、コアネットワーク制御モジュール１１６２０はコアネットワークインフラを、Ｌ３接続サービスに対して各々構成してもよい。いくつかの実施例では、エッジネットワーク制御モジュール１１６１８及びコアネットワーク制御モジュール１１６２０は、Ｌ３接続サービスを提供するように、ネットワークインフラを構成するであろう、一つ以上のＮＦＵを識別してもよい。例えば、エッジネットワーク制御１１６１８は、エッジネットワークインフラを構成するように、一つ以上のＮＦＵのうちの第１の組を識別してもよく、一方、コアネットワーク制御モジュール１１６２０は、コアネットワークインフラを構成するように、一つ以上のＮＦＵのうちの第２の組を識別してもよい。
【０１３５】
いくつかの実施例では、ネットワーク制御１１６１８は、顧客ネットワークをデータファブリック１１６１４のコアネットワークに、及びクラウドサービスプロバイダ１１６１６をデータファブリック１１６１４のコアネットワークに結合する、エッジネットワークインフラを直接構成してもよい。その他の実施例では、エッジネットワーク制御モジュール１１６１８は、顧客ネットワークをデータファブリック１１６１４のコアネットワークに、及びクラウドサービスプロバイダ１１６１６をデータファブリック１１６１４のコアネットワークに結合する、エッジネットワークインフラを構成する一つ以上のＮＦＵに、Ｌ３接続サービス及びファイアウォールサービスに対する命令及び／又は要求を送信してもよい。同様に、コアネットワーク制御モジュール１１６２０は、データファブリック１１６１４のコアネットワークインフラ、及びデータファブリック１１６１４のコアネットワークへのクラウドサービスプロバイダ１１６１６を構成する、一つ以上のＮＦＵに、Ｌ３接続サービス及びファイアウォールに対する命令及び／又は要求を送信してもよい。Ｌ３接続サービス及びファイアウォールを提供するように、エッジネットワークインフラ及びコアネットワークインフラを構成すると、Ｌ３接続サービスを要求した顧客１１６１０のうちの一つの顧客は、ネットワークサービスプロバイダ及びデータファブリック１１６１４を介して、オフィス生産性サービスに直接接続してもよい。
【０１３６】
いくつかの実施例では、一つ以上のＩＴシステム１１６０４が、ＣＮＣシステム１１６０１に結合してもよい。ＩＴシステム１１６０４は、数個の例のみを挙げると、デスクトップコンピュータ、タブレット、スマートフォン、及びサーバなど、一つ以上のコンピュータデバイスを含んでもよい。ＩＴシステム１１６０４は、１１６０１を運営するために、ＩＴシステム１１６０４を使用してもよい管理者に、一つ以上のユーザインタフェースを提供してもよい。ＩＴシステム１１６０４は、例えば、ＣＮＣシステム１１６０１を構成するように、ユーザ入力を受信してもよい。ユーザ入力に基づいて、ＩＴシステム１１６０４は、要求及び／又は命令をＣＮＣシステム１１６０１に送信してもよい。いくつかの実施例では、ＣＮＣシステム１１６０１は、ＩＴシステム１１６０４によって呼び出すことができる、一つ以上のＲＥＳＴｆｕｌインタフェースを提供してもよく、又は他の場合であれば公開してもよい。
【０１３７】
図１１は、本開示の一つ以上の技術に従う、サービスを要求する例示のユーザインタフェース１２２００を示すブロック図である。いくつかの実施例では、ＣＮＣシステム１０００２若しくはＣＮＣシステム１１６０１などの集中ネットワーク制御システム、又はシステムなどへのポータルは、表示用のユーザインタフェース１２２００を生成してもよい。いくつかの実施例では、ユーザインタフェース１２２００は、ウェブブラウザで表示されてもよい、一つ以上のＨＴＭＬドキュメントとして実装されてもよい。ユーザインタフェース１２２００は、数個の例のみを挙げると、モバイルコンピュータデバイス、デスクトップコンピュータデバイス、又はラップトップコンピュータデバイス上で実行可能であり、本明細書に記載する方式でプログラム可能なネットワークプラットフォームを呼び出す、独立型アプリケーションの中に実装されてもよい。例示のために、図１１ではユーザインタフェース１２２００をウェブブラウザで示す。
【０１３８】
図１１に示す通り、ユーザインタフェース１２２００によって、ユーザが、Ｌ３接続サービスを構成することが可能になってもよい。ユーザインタフェース１２２００は、ユーザによって構成されてもよい、各々異なる種類のサービスを一覧で示す、サイドメニュー１２２０２を含んでもよい。サイドメニュー１２２０２は、一つ以上の要素を含んでもよく、それぞれの要素は各々、ある特定の種類のサービスに相当する。要素は、ユーザによって選択されてもよく、要素と関連するサービスの種類を構成するように、対応するユーザインタフェースを表示する。例えば、図１１に示す通り、Ｌ３接続サービスの構成に相当する要素が、ユーザによって選択されている。したがって、ユーザインタフェース１２２００は、Ｌ３接続サービスを構成する、ユーザインタフェース要素を含む。
【０１３９】
いくつかの実施例では、ユーザインタフェース１２２００は、ラベルなど、ユーザによって構成されているサービス定義の種類を表示する、ユーザインタフェース要素１２００４を含む。図１１の実施例では、ユーザインタフェース要素１２００４は、ユーザによって構成されているサービス定義の種類として、Ｌ３接続サービスに相当してもよい、「Ｌ３接続」を含む。本明細書に使用する通り、用語「サービス定義」は、前述のサービスのコンシューマに、（ネイティブサービスの）クラウドエクスチェンジによって提供される、又は（クラウドサービス又は第三者サービスの）クラウドエクスチェンジによって送達される一つ以上のネットワークサービスに対して、クラウドエクスチェンジ内でビジネスレベルのサービスをプロビジョニングするためのパラメータを定義するデータを指す。サービス定義は、サービスを実装するように、各サービスにつき一つ以上のサービス要件を含め、全体のサービス内で複数のサービスを定義してもよい。サービスの実装は、例えば、サービスのオーケストレーション及びネットワークのプロビジョニング両方を含んでもよい。ネイティブサービスは、例えば、ポートサービス、Ｌ３接続サービス、Ｌ２サービス、Ｌ３＋サービス、ファイアウォール、ＮＡＴ、ＤＰＩ、並びにクラウドサービストラフィックを修正、検査、成形（例えば、ＱｏＳをフィルタリング又は適用）、及び／又は送達するように、クラウドサービスプロバイダネットワークからのクラウドサービストラフィックに、クラウドエクスチェンジ内で適用されるその他のネイティブサービスを含んでもよい。クラウドサービスは、例えば、コンテンツ／メディアのデリバリ、クラウドベースの記憶、クラウドコンピューティング、オンラインゲーム、ＩＴサービスなど、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍ-ａａＳ（ＰａａＳ）、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ-ａａＳ（ＩａａＳ）、Ｖｉｒｔｕａｌｉｚａｔｉｏｎ-ａａＳ（ＶａａＳ）、及びｄａｔａ  Ｓｔｏｒａｇｅ-ａａＳ（ｄＳａａＳ）のサービスを含んでもよい。サービス定義は、クラウドエクスチェンジのエンドポイント、並びに例えば、サービス、発信者、所有者、サービス識別子、宛先のために、クラウドサービス、ポリシー、ＳＬＡ、及び／又はＱｏＳに接続するためのその他の接続性情報を規定してもよい。サービス定義の追加の実施例を、以下に記載する。クラウドエクスチェンジ内で適用されるサービスに対する帯域幅、ポリシー、ＳＬＡ、及びＱｏＳなど、サービス定義のある種のパラメータは、サービスが当該要件を満たすのと同様に適用／送達されることを、要求者が要求する点から、代替として「サービス要件」と呼ばれてもよい。
【０１４０】
いくつかの実施例では、ユーザインタフェース１２２００は、ユーザが、地理的な場所を選択、又は他の場合であれば指定することを可能にする、ユーザインタフェース要素１２００６を含んでもよい。地理的な場所は、顧客サイトの場所及び／又はクラウドエクスチェンジポイントの場所であってもよい。例えば、図１１では、ユーザは、カリフォルニア州サンノゼにある地理的な場所を提供するように、ユーザインタフェース要素１２００６を使用してもよい。数個の例のみを挙げると、ユーザインタフェース要素１２００６は、利用可能な場所を事前に追加されたドロップダウンメニューとして実装されてもよく、又はユーザが場所を入力できる、テキスト入力フィールドとして実装されてもよい。
【０１４１】
ユーザインタフェース１２２００は、ユーザが、顧客用のＬ３接続サービスのネットワークセグメントを選択、又は他の場合であれば規定することを可能にする、ユーザインタフェース要素１２００８を含んでもよい。いくつかの実施例では、ネットワークセグメントは、インターネットプロトコル（ＩＰ）アドレス１２００８など、レイヤ３アドレスの範囲によって定義される。例えば、図１１では、ユーザは、１０．１０．１０．０／２４のＩＰアドレスの範囲を提供するように、ユーザインタフェース要素１２００８を使用してもよい。数個の例のみを挙げると、ユーザインタフェース要素１２００８は、利用可能なネットワークセグメント値を事前に追加されたドロップダウンメニューとして実装されてもよく、又はユーザがネットワークセグメント値を入力できる、テキスト入力フィールドとして実装されてもよい。
【０１４２】
ユーザインタフェース１２２００は、ユーザが、Ｌ３接続サービスに対する最小及び／若しくは最大の性能要件を選択、又は他の場合であれば規定することを可能にする、一つ以上のユーザインタフェース要素１２０１０を含んでもよい。例えば、様々な帯域幅は、ユーザが、サービスに対する最小及び／若しくは最大の性能要件を選択してもよい、一つ以上のユーザインタフェース要素１２０１０と関連してもよい。図１１の実施例では、ユーザによって選択可能な例示の性能要件は、１Ｍｂｐｓ、１０Ｍｂｐｓ、１００Ｍｂｐｓ、１Ｇｂｐｓ、１０Ｇｂｐｓ、４０Ｇｂｐｓ、及び１００Ｇｂｐｓを含む。数個の例のみを挙げると、ユーザインタフェース要素１２０１０は、利用可能な帯域幅を事前に追加されたドロップダウンメニュー、選択可能な各要素が対応する帯域幅を有する、１組のラジオボタン若しくはチェックリストとして実装されてもよく、又はユーザが帯域幅を入力できる、テキスト入力フィールドとして実装されてもよい。
【０１４３】
ユーザインタフェース１２２００は、ユーザがそれぞれ、帯域幅がバースト可能か否かを規定、Ｅｘｃｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ（ＥＩＲ）を規定、及び／又は最大遅延を規定することを可能にする、一つ以上のユーザインタフェース要素１２０１２、１２０１４、及び１２０１６を含んでもよい。図１１に示す通り、ユーザインタフェース要素１２０１２は、チェックボックスとして実装されてもよく、ユーザインタフェース要素１２０１２は、テキスト入力フィールドとして実装されてもよく、ユーザインタフェース要素１２０１６は、テキスト入力フィールドとして実装されてもよいが、また、その他の種類のユーザインタフェース要素が使用されてもよい。
【０１４４】
ユーザインタフェース１２２００は、ユーザが、Ｌ３接続サービスに対する稼働時間若しくは可用性要件を選択、又は他の場合であれば規定することを可能にする、一つ以上のユーザインタフェース要素１２０１８を含んでもよい。例えば、ユーザが、サービスに対する稼働時間又は可用性要件を選択してもよい、一つ以上のユーザインタフェース要素１２０１８と、様々な可用性レベルが関連してもよい。図１１の実施例では、ユーザが選択可能な、例示の稼働時間又は可用性要件は、９９．９９９９％、９９．９９９％、９９．９９５％、９９．９９％、９９％、及び９０％の稼働時間を含む。数個の例のみを挙げると、ユーザインタフェース要素１２０１８は、稼働時間若しくは可用性値を事前に追加されたドロップダウンメニュー、選択可能な各要素が対応する稼働時間若しくは可用性を有する、１組のラジオボタン若しくはチェックリストとして実装されてもよく、又はユーザが、稼働時間若しくは可用性を入力できる、テキスト入力フィールドとして実装されてもよい。
【０１４５】
ユーザインタフェース１２２００は、ユーザが、Ｌ３接続サービス用のクラウドサービスプロバイダを選択、又は他の場合であれば指定することを可能にする、一つ以上のユーザインタフェース要素１２０２０を含んでもよい。例えば、顧客がＬ３接続サービスを使用して消費してもよい、サービスを提供する一つ以上のクラウドサービスプロバイダを、顧客が選択してもよい。数個の例のみを挙げると、ユーザインタフェース要素１２０２０は、クラウドサービスプロバイダを事前に追加されたドロップダウンメニュー、選択可能な各要素が対応するクラウドサービスプロバイダを有する、１組のラジオボタン若しくはチェックリストとして実装されてもよく、又はユーザがクラウドサービスプロバイダを入力できる、テキスト入力フィールドとして実装されてもよい。ユーザインタフェース１２２００は、ユーザが、クラウドサービスプロバイダに対するＬ３接続サービスのネットワークセグメントを選択、又は他の場合であれば規定することを可能にする、ユーザインタフェース要素１２０２２を含んでもよい。いくつかの実施例では、ネットワークセグメントは、インターネットプロトコル（ＩＰ）アドレス１２０２２など、レイヤ３アドレスの範囲によって定義される。
【０１４６】
ユーザインタフェース１２２００は、ユーザが、サービスに対する分散型サービス拒否に対する保護、分散型サービス拒否に対する保護のプロバイダ、及び／又はリダイレクトＩＰアドレスをそれぞれ選択することを可能にする、一つ以上のユーザインタフェース要素１２０２４、１２０２６、及び１２０２８を含んでもよい。図１１に示す通り、ユーザインタフェース要素１２０２４は、ラジオボタン又はチェックボックスとして実装されてもよく、ユーザインタフェース要素１２０２６は、ドロップダウンリストとして実装されてもよく、ユーザインタフェース要素１２０２８は、テキスト入力フィールドとして実装されてもよいが、また、その他の種類のユーザインタフェース要素が使用されてもよい。
【０１４７】
ユーザインタフェース１２２００は、さらなる処理に対してユーザインタフェース１２２００の選択値及び／又は入力値を出すように、ユーザインタフェース要素１２０３０を含んでもよい。図１１では、ユーザインタフェース要素１２０３０はボタンとして実装される。ユーザインタフェース要素１２０３０が選択されるとき、ユーザインタフェース１２２００の選択値及び／又は入力値が有効であるか検証されてもよく、サービスを実装するように、及び／又はサービスを実際に実装する前にサービスを実装する費用の見積りをユーザに提出するように、さらに処理が行われてもよい。
【０１４８】
図１２は、本開示の一つ以上の技術に従い、サービスに対する費用の見積りを表示する、例示のユーザインタフェース１２４００を示すブロック図である。いくつかの実施例では、ＣＮＣシステム１０００２若しくはＣＮＣシステム１１６０１などの集中ネットワーク制御システム、又はシステムなどへのポータルは、表示用のユーザインタフェース１２４００を生成してもよい。いくつかの実施例では、ユーザインタフェース１２４００は、ウェブブラウザで表示されてもよい、一つ以上のＨＴＭＬドキュメントとして実装されてもよい。ユーザインタフェース１２４００は、数個の例のみを挙げると、モバイルコンピュータデバイス、デスクトップコンピュータデバイス、又はラップトップコンピュータデバイス上で実行可能であり、本明細書に記載する方式でプログラム可能なネットワークプラットフォームを呼び出す、独立型アプリケーションの中に実装されてもよい。例示のために、図１２ではユーザインタフェース１２４００をウェブブラウザで示す。
【０１４９】
図１２に示す通り、ユーザインタフェース１２４００は、図１１でユーザインタフェース１２２００に提供されるユーザ入力に基づいて、サービスに費用情報を提供してもよい。いくつかの実施例では、ユーザインタフェース１２４００は、図１１のユーザインタフェース１２２００において、ユーザによって提供される入力値を含む、一つ以上のユーザインタフェース要素１２４０２を含んでもよい。したがって、ユーザは、値が正しいことを判定するように、入力値を再検討してもよい。ユーザは、一つ以上の値を変更したいと望む場合、ユーザインタフェース１２２００に再び入力値を伴って表示させる、ユーザインタフェース要素１２２０４を選択してもよく、それによって、ユーザは、当該入力値を更新、又は他の場合であれば変更することが可能になる。その他の実施例では、ユーザインタフェース要素１２２０４は、ユーザが、ユーザインタフェース１２２００に戻ることなく、ユーザインタフェース１２２０４で入力値を更新、又は他の場合であれば変更することを可能にする、ユーザインタフェース要素を含んでもよい。
【０１５０】
ユーザインタフェース１２４００は、要求されるサービスの一つ以上の費用を含んだ、一つ以上のユーザインタフェース要素を含んでもよい。例えば、ユーザインタフェース１２４００は、要求されるサービスの月ごとの費用を表示する、ユーザインタフェース要素１２４０６を含んでもよい。要求されるサービスの月ごとの費用を出力することによって、ユーザはサービスの費用を評価してもよい。いくつかの実施例では、その他の費用の値がユーザインタフェース１２４００に含まれてもよい。例えば、ユーザインタフェース１２４００は、ユーザインタフェース要素１２４０２の一つ以上の入力値に対する、項目別の費用を含んでもよい。いくつかの実施例では、代替の入力値に対する代替の項目別の費用もまた、ユーザインタフェース１２４００に含まれてもよい。例えば、９９．９９９％の稼働時間に対する代替の費用が、ユーザインタフェース１２４００に含まれてもよい。ユーザは、費用情報を再検討すると、ユーザインタフェース要素１２４０６（例えば、ボタン）を選択して、サービスの要求を出してもよい。ユーザインタフェース要素を選択すると、ＣＮＣシステム１０００２は、ユーザインタフェース１２４００に示される入力値に基づいて、ユーザが要求するサービスをプロビジョニングするように、一つ以上のクラウドエクスチェンジポイントを構成してもよい。
【０１５１】
図１３は、本開示に記載する技術に従い動作する、プログラム可能なネットワークプラットフォームの例示の構成要素を示す概念図である。本実施例では、プログラム可能なネットワークプラットフォーム１２５００は、エッジネットワーク１２６００のデバイスをプロビジョニングして、顧客にレイヤ３のクラウドサービスのデリバリを確実に行うように、複数の非集中的なネットワークフィールドユニット１２５０８Ａ〜１２５０８Ｃ（「ＮＦＵ１２５０８」）と連動する集中ネットワーク制御構成要素１２５０４（「ＣＮＣ１２５０４」）を含む。ＮＦＵ１２５０８の各々は、デバイスのエッジネットワーク１２６００のデバイスの異なる１組のサブセット、又はエッジネットワーク１２６００「の一部分」をプロビジョニングしてもよい。例えば、エッジネットワーク１２６００は、多数のクラウドエクスチェンジポイント又は大都市をベースとするクラウドエクスチェンジ間に分散されるデバイスを含んでもよく、各クラウドエクスチェンジポイント又は大都市をベースとするクラウドエクスチェンジは、異なるＮＦＵ１２５０８によりサービスに対してプロビジョニングされる。
【０１５２】
プログラム可能なネットワークプラットフォーム１２５００は、例えば、プログラム可能なネットワークプラットフォーム１２０の例示のインスタンスを表してもよい。ＣＮＣ１２５０４は、ＣＮＣ１００２又はＣＮＣ１１６０１の例示のインスタンスを表してもよい。ＮＦＵ１２５０８は、ＮＦＵ１００４の例示のインスタンスを各々表してもよい。ユーザポータル１２５０２は、プログラム可能なネットワークプラットフォーム１２５００と連動する、クライアント側のソフトウェアを表し、顧客ポータル、顧客のアプリケーション、クラウドエクスチェンジプロバイダのアプリケーション、コマンドラインインタフェース若しくはグラフィカルユーザインターフェースなどのコンソール、及び／又はクラウドサービスプロバイダにより開発されたアプリケーションを表してもよい。ユーザ／クライアントは、顧客、クラウドエクスチェンジプロバイダ、及びクラウドサービスプロバイダを含んでもよい。
【０１５３】
いくつかの態様では、本明細書に記載するプログラム可能なネットワークプラットフォームなどのコントローラは、異なるクラウドサービスプロバイダによって提供される、複数の構成サービスから成るサービスで、クラウドエクスチェンジをプロビジョニングしてもよい。これらの構成サービスの各々は、サービストラフィックに適用される、全体のサービスの一部である点から、本明細書では「マイクロサービス」と呼ぶ。すなわち、複数のマイクロサービスは、サービストラフィックに対して全体のサービスを構成するために、ある特定の「配置」、「順序」、又は「トポロジ」でサービストラフィックに適用されてもよい。マイクロサービスは、クラウドサービスプロバイダによって、又はクラウドエクスチェンジ内で適用されてもよい。
【０１５４】
このように、プログラム可能なネットワークプラットフォームは、異種のサービスプロバイダにわたってビジネスレベルのサービスを調整してもよい。プログラム可能なネットワークプラットフォームは、インタフェースを公開し、そのインタフェースによって、ポータル、コンソール（例えば、ユーザインタフェースアプリケーション）、又はその他のアプリケーションは、サービスポリシー、品質、サービスレベル契約（ＳＬＡ）、及び費用を、異なるクラウドサービスプロバイダ（又は「クラウドベンダー」）によって提供される、マイクロサービスから成る連携サービストポロジとして定義してもよい。各マイクロサービスには、以下にさらに詳細に記載する通り、エンドツーエンドのビジネスサービス定義全体の一部として、対応するサービスポリシー、品質、ＳＬＡ、及び費用があってもよい。複数の構成要素のマイクロサービスを有するエンドツーエンドのサービスに対するサービス定義が提供される場合、プログラム可能なネットワークプラットフォームは、クラウドエクスチェンジ（又はクラウドエクスチェンジを含むエッジネットワーク）内でエンドツーエンドのサービスを具体化するために、クラウドエクスチェンジ内でマイクロサービスの各々を調整して、定義されたトポロジに従ってマイクロサービスをまとめてつなぎ合わせてもよい。結果として、クラウドエクスチェンジは、データプレーンにおいて、クラウドエクスチェンジの顧客、又はクラウドサービスプロバイダのうちの少なくとも一つに代わり、クラウドエクスチェンジの顧客、又はクラウドサービスプロバイダのうちの少なくとも一つのために、それぞれのクラウドサービスプロバイダによって提供されるマイクロサービスを相互接続する。
【０１５５】
図１４Ａは、顧客へのデリバリのために、クラウドエクスチェンジにより集約される、複数のクラウドサービスプロバイダからのクラウドサービストラフィックに、複数のネイティブサービスを適用するように構成された、プログラム可能なエッジネットワークの例示の構成を示すブロック図である。エッジネットワーク１２６００は、図１のクラウドエクスチェンジポイント１２８、図２のクラウドエクスチェンジ２００、及びデータファブリック１１６１４を含む、図１０のクラウドエクスチェンジポイントなど、本明細書に記載する、データセンターをベースとするクラウドエクスチェンジ又はクラウドエクスチェンジポイントのうちのいずれを含んでもよい。
【０１５６】
エッジネットワーク１２６００は、レイヤ３（Ｌ３）転送要素１２６２２Ａ〜１２６２２Ｂ（総称して「転送要素１２６２２」）を含む、ネットワークインフラを含み、転送要素１２６２２は、一つ以上のルータ、スイッチ、及びその他のＬ３転送デバイスを含んでもよい。図示しないものの、エッジネットワーク１２６００はまた、例えば、一つ以上の非エッジ（コア）スイッチ、ルータ、ハブ、ゲートウェイ、ファイアウォールなどのセキュリティデバイス、侵入検出及び／若しくは侵入防止デバイス、コンピュータ端末、ノートパソコン、プリンタ、データベース、携帯電話若しくは個人用携帯情報端末などの無線モバイルデバイス、無線アクセスポイント、ブリッジ、ケーブルモデム、アプリケーションアクセラレータ、又はその他のネットワークデバイスを含んでもよい。
【０１５７】
エッジネットワーク１２６００はさらに、エッジネットワーク１２６００が、顧客１２６０４にサービスを提供、及び／又は顧客１２６０４に対するサービストラフィックにサービスを適用するのに用いてもよい、一つ以上の計算／コンピューティングファームを提供する、サーバ１２６４０Ａ〜１２６４０Ｂ（総称して「サーバ１２６４０」）を含む。サーバ１２６４０は、顧客にサービスを適用及び／又は提供するように構成される、ｘ８６サーバ若しくはその他の現実のサーバ又は汎用サーバを表してもよい。また、サーバ１２６４０は、顧客とクラウドサービスプロバイダ１２６０６との間のサービストラフィックにサービスを適用する、専用アプライアンス又はコンテナを含んでもよい。当該サービスは、例えば、ＮＡＴ、ＤＰＩ、ＦＷ、ＤＤＯＳ軽減、及びクラウドエクスチェンジプロバイダによって制御され、プログラム可能なネットワークプラットフォーム１２５００によって構成される通りのクラウドエクスチェンジのエッジネットワーク１２６００によって適用されてもよい、その他のネイティブサービスを含んでもよい。
【０１５８】
エッジネットワーク１２６００を構築、運営、及び構成するクラウドエクスチェンジプロバイダは、当該ネイティブサービスの、顧客１２６０４とクラウドサービスプロバイダ１２６０６Ａ〜１２６０６Ｄ（「ＣＳＰ１２６０６」）のうちのいずれかとの間で交換されるサービストラフィックへの適用を促進し、ＣＳＰ１２６０６の各々は、例えば、クラウドサービスプロバイダ１１０のいずれを表してもよい。エッジネットワーク１２６００は、ＣＳＰ１２６０６Ａによって調達される、又はＣＳＰ１２６０６Ａに向かうサービストラフィックに適用するための仮想ＮＡＴ（ｖＮＡＴ）サービス１２６１４、ＣＳＰ１２６０６Ｂによって調達される、又はＣＳＰ１２６０６Ｂに向かうサービストラフィックに適用するための仮想ディープパケットインスペクション（ｖＤＰＩ）サービス１２６１６、及びＣＳＰ１２６０６Ｃによって調達される、又はＣＳＰ１２６０６Ｃに向かうサービストラフィックに適用するための仮想ファイアウォール（ｖＦＷ）サービス１２６１８で構成され、全ての当該サービストラフィックは、顧客１２６０４によって調達されるか、又は顧客１２６０４に向かう。サービス１２６１４、１２６１６、及び１２６１８は、サービスが、専用のサービスアプライアンス（例えば、ＮＡＴ、ＤＰＩ、及びファイアウォールデバイス、別個に採用される、又は総合的な統合脅威管理（ＵＭＴ）デバイスによってなど）を採用するネットワークサービスプロバイダによって頻繁に提供される機能を仮想化する点から、ネットワーク機能仮想化（ＮＦＶ）サービスを表してもよい。本実施例は、仮想サービス（又はＮＦＶ）を示し記載するものの、サービスは、クラウドエクスチェンジプロバイダが運営するコントローラ、アプライアンス、又はコンテナによって適用されてもよい。
【０１５９】
本実施例のＰＥルータ１２６０２は、単一の顧客１２６０４へのデリバリのために、複数のクラウドサービスプロバイダ１２６０６からのサービストラフィックを集約する、現実のＰＥルータ又は仮想ＰＥルータを表す。プログラム可能なネットワークプラットフォーム１２５００は、図１〜４に関して上に記載する通り、集約されたレイヤ３クラウドサービスのクラウドサービスデリバリを可能にするよう、クラウドサービスプロバイダ１２６０６用のＬ３ルートをインポート及びエクスポートするように、ＰＥルータ１２６０２を構成する。加えて、プログラム可能なネットワークプラットフォーム１２５００によって、顧客、クラウドサービスプロバイダ、及び／又はクラウドエクスチェンジプロバイダが、それぞれのクラウドサービスプロバイダ１２６０６Ａ〜１２６０６Ｃからのクラウドサービストラフィックを確実にデリバリするために、サービス１２６１４、１２６１６、及び１２６１８でエッジネットワーク１２６００を構成することが可能になる。
【０１６０】
いくつかの態様では、本明細書に記載するプログラム可能なネットワークプラットフォームなどのコントローラは、異なるクラウドサービスプロバイダによって、及びいくつかの場合には、クラウドエクスチェンジ自体によって提供される、複数の構成サービスから成るサービスを送達するように、Ｌ３のクラウドベースのサービス交換（「クラウドエクスチェンジ」）をプロビジョニングしてもよい。これらの構成サービスの各々は、サービストラフィックに適用される、全体のサービスの一部である点から、本明細書では「マイクロサービス」と呼ぶ。すなわち、複数のマイクロサービスは、サービストラフィックに対して全体のサービスを構成するために、ある特定の「配置」、「順序」、又は「トポロジ」でサービストラフィックに適用されてもよい。マイクロサービス自体が、クラウドサービスプロバイダによって適用又は提供されてもよい。
【０１６１】
このように、プログラム可能なネットワークプラットフォームは、異種のクラウドサービスプロバイダにわたってビジネスレベルのサービスを調整してもよい。プログラム可能なネットワークプラットフォームは、アプリケーションプログラミングインタフェース（ＡＰＩ）を公開し、そのＡＰＩによって、ポータル、コンソール（例えば、ユーザインタフェースアプリケーション）、又はその他のアプリケーションは、サービスポリシー、品質、サービスレベル契約（ＳＬＡ）、及び費用を、異なるクラウドサービスプロバイダ（又は「クラウドベンダー」）によって提供される、マイクロサービスから成る連携サービストポロジとして定義してもよい。各マイクロサービスには、以下にさらに詳細に記載する通り、エンドツーエンドのビジネスサービス定義全体の一部として、対応するサービスポリシー、品質、ＳＬＡ、及び費用があってもよい。複数の構成要素のマイクロサービスを有するエンドツーエンドのサービスに対するサービス定義が提供される場合、プログラム可能なネットワークプラットフォームは、クラウドエクスチェンジのデータプレーン（例えば、クラウドエクスチェンジに対するエッジネットワーク）内でエンドツーエンドのサービスを具体化するために、クラウドエクスチェンジ内でマイクロサービスの各々を調整して、定義されたトポロジに従ってマイクロサービスをまとめてつなぎ合わせる。結果として、クラウドエクスチェンジは、データプレーンにおいて、クラウドエクスチェンジの顧客に代わり、クラウドエクスチェンジの顧客のために、それぞれのクラウドサービスプロバイダによって提供されるマイクロサービスを相互接続する。それを行う際に、クラウドエクスチェンジプロバイダは、クラウドサービスプロバイダと顧客との間のビジネス取引を促進してもよい。
【０１６２】
図１４Ｂは、それぞれのクラウドサービスプロバイダによって適用される、複数の構成マイクロサービスのシーケンスである、エンドツーエンドのサービスを提供するように構成された、プログラム可能なエッジネットワークの例示の構成を示すブロック図である。エッジネットワーク１２６００は、図１のクラウドエクスチェンジポイント１２８、図２のクラウドエクスチェンジ２００、及びデータファブリック１１６１４を含む、図１０のクラウドエクスチェンジポイントなど、本明細書に記載する、データセンターをベースとするクラウドエクスチェンジ又はクラウドエクスチェンジポイントのうちのいずれを含んでもよい。
【０１６３】
顧客のために確立される全体のサービスに対するマイクロサービスは、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）、Ｐｌａｔｆｏｒｍ-ａａＳ（ＰａａＳ）、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ-ａａＳ（ＩａａＳ）、Ｖｉｒｔｕａｌｉｚａｔｉｏｎ-ａａＳ（ＶａａＳ）、及びｄａｔａ  Ｓｔｏｒａｇｅ-ａａＳ（ｄＳａａＳ）のサービスを任意の順序で融合したものを含んでもよい。例えば、異なるクラウドサービスプロバイダ１２６０６は、報告データを生成し、アプリケーションデータを記憶し、マイクロサービスのシーケンスに沿って追加のサービストラフィック１２６１２として送信するための、新しいアプリケーションデータを生成するようになど、サービストラフィック１２６１２のアプリケーションデータを分析するアプリケーションを実行してもよい。
【０１６４】
本明細書に記載する技術に従って、クラウドサービスプロバイダ１２６０６の各々は、エッジネットワーク１２６００が、顧客１２６０４に対して全体のマルチクラウドサービスを成形するように、共に配置する（又は「つなぐ」）マイクロサービスを提供／実行する。より具体的には、いくつかの態様では、プログラム可能なネットワークプラットフォーム１２５００は、サービストラフィック１２６１２のパケットに適用するよう、それぞれの様々なクラウドサービスプロバイダ１２６０６によって提供されるマイクロサービスを、全体のサービスの中へとまとめてつなぎ合わせるように、ルータ（又は転送ツール）１２６０２を構成する。
【０１６５】
顧客１２６０４は、顧客１２６０４のネットワークによって創出又は受信されるサービストラフィックのうちの少なくともいくつかに対して、クラウドサービスプロバイダ１２６０６のマイクロサービスを選択及び配置するように、プログラム可能なネットワークプラットフォーム１２５００を使用してもよい。上に記載する通り、プログラム可能なネットワークプラットフォーム１２５００は、複数の異なるクラウドサービスプロバイダへの接続性を、顧客に提供してもよい。マイクロサービス及びマイクロサービス用のトポロジを提供する、クラウドサービスプロバイダを選択すると、プログラム可能なネットワークプラットフォーム１２５００は、顧客１２６０４に対するマイクロサービスの接続性をプロビジョニングするように、エッジネットワーク１２６００を構成する。クラウドサービスプロバイダの選択には、クラウドサービスプロバイダによって提供される、マイクロサービスの接続パラメータの入力を含んでもよい。当該接続パラメータは、Ｌ３ルート及び帯域幅又はその他のＱｏＳ要件を含んでもよい。
【０１６６】
示す実施例では、ルータ１２６０２が、エンドツーエンドのサービス経路全体に沿ってサービストラフィック１２６１２を転送するのを可能にする、クラウドサービスプロバイダ１２６０６のネットワークの各々に対するＬ３ルートを、ルータ１２６０２は受信する。ルータ１２６０２を実装するために、プログラム可能なネットワークプラットフォーム１２５００は、例えば、クラウドサービスプロバイダ１２６０６のネットワークの各々に対するＶＲＦを含む、仮想ルータを実行（又は専用のルータを構成）するように、一つ以上のサーバを構成してもよい。図４に関して上に記載する通り、例えば、ＶＲＦは、マイクロサービスを提供するクラウドサービスプロバイダ１２６０６のネットワークから、及びマイクロサービスを提供するクラウドサービスプロバイダ１２６０６のネットワークへ、ルータ１２６０２でサービストラフィック１２６１２を送受信する、ハブアンドスポーク型のトポロジを確立するように、ルートターゲットと関連づけられてもよい。
【０１６７】
結果的に、プログラム可能なネットワークプラットフォーム１２５００経由で使用して、エッジネットワーク１２６００を運営するクラウドエクスチェンジプロバイダによって、顧客１２６０４が、クラウドサービスプロバイダ１２６０６のマイクロサービスから成るエンドツーエンドのサービスを確立し、運営し、及び少なくともいくつかのインスタンスでは、確実に行うのを軽減してもよい。顧客１２６０４は、例えば、クラウドエクスチェンジプロバイダのルートに従って、サービストラフィック１２６１２をエッジネットワーク１２６００に転送でき、クラウドサービスプロバイダ１２６０６のネットワークの各々に対してルートを取得するために、それらのネットワークとピアリングする必要はない。むしろ、エッジネットワーク１２６００のクラウドエクスチェンジポイントは、クラウドサービスプロバイダ１２６０６のネットワークとの、Ｌ３ルーティングプロトコルのピアリング配置を内在化して、全体のサービスのトポロジに沿ってサービストラフィックを転送するために、Ｌ３ルートをクラウドサービスプロバイダ１２６０６のネットワークにインポートする。
【０１６８】
ルータ１２６０２は、クラウドサービスプロバイダ１２６０６によって提供されるサービスに対して、それぞれのＬ３ルートをインポート及びエクスポートするように、プログラム可能なネットワークプラットフォームによって構成されるＶＲＦを含んでもよい。ルータ１２６０２は、いくつかのインスタンスでは、プログラム可能なネットワークプラットフォームからルートを受信してもよく、又はクラウドサービスプロバイダ１２６０６のネットワークのうちのいずれかにクラウドエクスチェンジを接続する、エッジネットワーク１２６００のプロバイダエッジ（ＰＥ）ルータとのピアリングセッションを介して、ルートを受信してもよい。
【０１６９】
エッジネットワーク１２６００は、クラウドエクスチェンジによってクラウドサービスプロバイダ１２６０６ＤのネットワークのＬ３ルートでネットワークアドレス変換される、クラウドエクスチェンジポイントの自律システムのＬ３ルート、ｖＮＡＴサービス１２６１４用のＬ３ルート（ＮＡＴサービスを含む本実施例では）、又はクラウドサービスプロバイダ１２６０６ＤのネットワークのＬ３ルートを、顧客１２６０４に公示してもよい。このように、エッジネットワーク１２６００は、複数のマルチクラウドＬ３サービスの顧客１２６０４へのデリバリを集約してもよい。
【０１７０】
図１４Ｂは、エッジネットワーク１２６００による、サービストラフィック１２６１２への複数のマイクロサービスから成るエンドツーエンドのサービスのデリバリを示す。顧客１２６０４のネットワークは、エッジネットワーク１２６００にサービストラフィック１２６１２を送信し、顧客１２６０４のネットワークへエッジネットワーク１２６００によってＬ３ルートとして公示されるプレフィックス内のネットワークアドレスに向かう。サービストラフィック１２６１２は、一つ以上のパケットの流れを含んでもよく、各パケットの流れは、顧客１２６０４のネットワーク内で実行されるアプリケーションによって生成及び／又は消費される、アプリケーション層のデータを含む一つ以上のパケットと関連付けられる。顧客１２６０４のネットワークから始まり、クラウドサービスプロバイダに向かって上りに進むように図１４Ｂに示すものの、技術は、クラウドサービスプロバイダ１２６０６のネットワークのうちの一つから始まり、クラウドサービスプロバイダ１２６０６のネットワークのうちの一つに向かう、下りのサービストラフィックだけでなく、顧客１２６０４のネットワークに向かう下りのサービストラフィックにも同様に適用可能である。例えば、クラウドサービスプロバイダ１２６０６Ｄは、アプリケーションデータを分析するように、ルータ１２６０２を経由して、クラウドサービスプロバイダ１２６０６Ｃのネットワークによって実行されるアプリケーションに、アプリケーションデータを注入してもよく、クラウドサービスプロバイダ１２６０６Ｃのネットワークは、処理用に分析されたアプリケーションデータを、クラウドサービスプロバイダ１２６０６Ｂのネットワークに送信し、クラウドサービスプロバイダ１２６０６Ｂのネットワークは、順に、記憶のためにアプリケーションデータを、ｄＳａａＳが提供するクラウドサービスプロバイダ１２６０６Ａのネットワークに送信する。
【０１７１】
しかしながら、示す実施例では、ルータ１２６０２は、サービストラフィック１２６１２を受信し、サービストラフィック１２６１２に対する第１のマイクロサービスを判定し、サービストラフィック１２６１２を、クラウドサービスプロバイダ１２６０６Ａのネットワークに方向づける。クラウドサービスプロバイダ１２６０６Ａのネットワークは、自身のマイクロサービスを適用して、サービストラフィック１２６１２（クラウドサービスプロバイダ１２６０６Ａによって適用されるマイクロサービスに従って、顧客１２６０４によって創出されるサービストラフィックから修正されてもよい）を、ルータ１２６０２に返送する。
【０１７２】
ルータ１２６０２は、サービストラフィック１２６１２に対する次のマイクロサービスを判定して、サービストラフィック１２６１２をクラウドサービスプロバイダ１２６０６Ｂに転送する。クラウドサービスプロバイダ１２６０６Ｂのネットワークは、自身のマイクロサービスを適用して、サービストラフィック１２６１２（クラウドサービスプロバイダ１２６０６Ｂによって適用されるマイクロサービスに従って、修正されてもよい）を、ルータ１２６０２に返送する。
【０１７３】
ルータ１２６０２は、サービストラフィック１２６１２に対する次のマイクロサービスを判定して、サービストラフィック１２６１２をクラウドサービスプロバイダ１２６０６Ｃに転送する。クラウドサービスプロバイダ１２６０６Ｃのネットワークは、自身のマイクロサービスを適用して、サービストラフィック１２６１２（クラウドサービスプロバイダ１２６０６Ｃによって適用されるマイクロサービスに従って、修正されてもよい）を、ルータ１２６０２に返送する。ルータ１２６０２は、サービストラフィック１２６１２に対する次のマイクロサービスを判定して、サービストラフィック１２６１２をクラウドサービスプロバイダ１２６０６Ｄに転送する。
【０１７４】
また、いくつかの実施例では、ＣＳＰ１２６０６がサービストラフィックを創出して、エッジネットワーク１２６００が下りの顧客１２６０４にサービストラフィックを送達してもよく、エッジネットワーク１２６００は、１組のマイクロサービスを当該下りのサービストラフィックに適用する。例えば、クラウドサービスプロバイダ１２６０６Ｄのネットワークは、コンテンツデリバリネットワーク（ＣＤＮ）を含んでもよく、又は他の場合であればＣＤＮを表してもよい。ＣＤＮは、動画のストリーミング、音声のストリーミング、マルチメディアのストリーミング、ゲームコンテンツ、又はその他のコンテンツデリバリサービスを顧客に、この場合は、クラウドエクスチェンジを介して顧客１２６０４に提供してもよい。
【０１７５】
結果として、クラウドエクスチェンジを含むエッジネットワーク１２６００は、データプレーンにおいて、クラウドエクスチェンジの顧客１２６０４、又はクラウドサービスプロバイダのうちの少なくとも一つに代わり、クラウドエクスチェンジの顧客１２６０４、又はクラウドサービスプロバイダのうちの少なくとも一つのために、それぞれのクラウドサービスプロバイダ１２６０６によって提供されるマイクロサービスを相互接続する。
【０１７６】
複数の構成要素のマイクロサービスを有するエンドツーエンドのサービスに対するサービス定義が提供される場合、本明細書に記載する通りのプログラム可能なネットワークプラットフォームは、クラウドエクスチェンジ（又はクラウドエクスチェンジを含むエッジネットワーク）内でエンドツーエンドのサービスを具体化するために、クラウドエクスチェンジ内でマイクロサービスの各々を調整して、定義されたトポロジに従ってマイクロサービスをまとめてつなぎ合わせてもよい。本開示の技術に従って、エンドツーエンドのサービスに対するサービス定義によって、マイクロサービスのサービスの連鎖に正しく順序付けすることを保証するように、プログラム可能なネットワークプラットフォームのユーザが、エンドツーエンドのサービスだけでなく、サービストポロジも定義することが可能になってもよい。また、サービス定義に対するデータモデルにカプセル化されるデータは、ビジネス目的（例えば、支払請求及びＳＬＡ保証）の、権限を持つサービス所有者を含んでもよい。「ユーザ」は、権限を持つサービス所有者である、顧客、クラウドエクスチェンジプロバイダ、又はクラウドサービスプロバイダを指してもよい。
【０１７７】
本明細書に記載する通りの、マルチクラウドでマルチサービスのサービス定義に対するデータモデルを使用することによって、プログラム可能なネットワークプラットフォーム（又はＳＤＮコントローラ若しくはオーケストレータなどのその他のオーケストレーションシステム）が、全体のサービスを構成する、１組のマイクロサービスの要求として、サービス要求を認識することが可能になってもよい。いくつかの実施例では、サービス定義は、プログラム可能なネットワークプラットフォームが、クラウドエクスチェンジプロバイダによって提供されるネイティブサービス、又は一つ若しくは複数のクラウドサービスプロバイダによって提供されるクラウドサービスのどちらかである、数個のサービスをつないだサービスを提供するのを可能にするであろう、数個のセクションを含む。すなわち、プログラム可能なネットワークプラットフォームを運営するクラウドエクスチェンジプロバイダは、複数のマイクロサービスに対するそれぞれの定義、及び複数のマイクロサービスに対するトポロジ（又はシーケンス）が与えられると、エンドツーエンドのサービスを促進するように、トポロジに従ってマイクロサービスを相互接続する、サービスの連鎖を提供できる。したがって、データモデルは、プログラム可能なネットワークプラットフォームが、要求されるサービスのつながりを効果的にインスタンス化でき、また、それによってもたらされるサービスが、正しいトポロジでつながっていることも保証する、データを提供する。データモデルは、プログラム可能なネットワークプラットフォームによって、クラウドエクスチェンジ用のネイティブのプログラム可能なネットワークプラットフォームが、完成させるためにその他のサービスオーケストレーションシステムに発行してもよい、一つ以上のサービス要求に分割されてもよい。その他のサービスオーケストレーションシステムは、例えば、ＳＤＮコントローラ、及び／又はＮＦＶインスタンス化と、ＮＦＶインスタンスから／へのサービストラフィックのルーティングとを促進する、クラウドサービスプロバイダ用のオーケストレーションシステムを含んでもよい。
【０１７８】
記載する技術のマルチクラウドでマルチサービスのデータモデルに適合するサービス定義は、（１）発信者、（２）所有者、（３）識別子、（４）宛先、及び（５）トポロジのうちの一つ以上と関連するエンドツーエンドのサービス全体を規定してもよい。発信者は、通常、クラウドエクスチェンジの顧客に限らないものの、エンドツーエンドのサービス要求者を指す。所有者は、例えば、クラウドサービスプロバイダの代わりに発信者／顧客への支払請求、及び課金を処理し、それに対して責任を持つ、権限を持つサービス所有者を指す。識別子は、一意に、クラウドエクスチェンジ内のエンドツーエンドのサービスを識別する。宛先は、要求されるサービスがインスタンス化される、クラウドエクスチェンジを指す。トポロジは、サービス定義に含まれる、一連のマイクロサービスのシーケンスを判定する。
【０１７９】
サービス定義内に定義される各マイクロサービスは、一連のマイクロサービスのうちの一要素であってもよい。マイクロサービスは、データモデルにおいて、（１）記述情報、（２）第１の又は「顧客」のエンドポイント、（３）第２の又は「クラウドサービスプロバイダ」のエンドポイント、（４）マイクロサービスに対してクラウドエクスチェンジによって適用されるべきポリシー、（５）マイクロサービス用のサービスの品質（ＱｏＳ）パラメータ、及び（６）マイクロサービスの時間範囲のうちの一つ以上と関連してもよい。
【０１８０】
記述情報は、クラウドエクスチェンジ内に、マイクロサービスに対する一意の識別子を含んでもよい。データモデルに対する第１のエンドポイントは、クラウドエクスチェンジがサービスデリバリのために連結すべき顧客の識別子、及びサービスキーを指定してもよい。サービスキーは、要求されるサービスをインスタンス化して起動させるために、顧客が取得するライセンスキーである。サービスが、クラウドエクスチェンジ自体によって一時的に要求される場合、クラウドエクスチェンジは、クラウドサービスプロバイダからサービスキーを取得して、サービスをインスタンス化し起動させるように、サービスキーを使用してもよい。データモデルに対する第２のエンドポイントは、クラウドエクスチェンジがサービスデリバリのために連結すべきクラウドサービスプロバイダの識別子、及びサービスキーを指定してもよい。また、第１及び第２のエンドポイントに関する各エンドポイントの記述は、例えば、大都市の場所の識別子、ポートの識別子、データセンターの識別子、仮想回路及び仮想回路の帯域幅、プロファイル、並びに構成など、エンドポイントの特定のデータを含んでもよい。
【０１８１】
ポリシーは、対応するマイクロサービスに適用される、構成及び設定を識別してもよい。例えば、ポリシーは、サービスの連鎖内に、ファイアウォールのマイクロサービスに対するファイアウォールルールを含む。別のポリシーは、ＤＰＩのマイクロサービスに対するパケット検査ルールを含んでもよい。別のポリシーは、ＱｏＳマイクロサービスに対して適用される、ＱｏＳを規定してもよい。時間範囲は、サービスの状態を問い合わせるときに、サービスメトリクスを報告すべき、期間を規定するように使用される。いくつかの実施例では、時間範囲は、サービスのＲＥＡＤ動作中のみ使用される。
【０１８２】
プログラム可能なネットワークサービスのデータモデルは、外部アプリケーションがマイクロサービスのトポロジを定義することが可能になるように、本明細書に記載するプログラム可能なネットワークプラットフォームの実施例のうちのいずれのサービスインタフェースによって使用されてもよい。次のＭＳ＿ＡＰＩ定義は、本明細書に記載する技術に従う、プログラム可能なネットワークサービスのデータモデルの実施例である。
MS_API
｛
SRVC_Tag
｛
SRVC_Orig: Varchar
SRVC_Owner: Varchar
SRVC_accID: Varchar
SRVC_Dest: Varchar
SRVC_Topology:Varchar
｝
SRVC_Num: Integer // Number of SRVC_API elements
SRVC_Value
｛
SRVC_API
｛
// Micro-service 1
｝
SRVC_API
｛
// Micro-service 2
｝
…
SRVC_API
｛
// Micro-service N
｝
｝  // End micro-service definitions
｝ // End service definition
【０１８３】
ＭＳ＿ＡＰＩのエンドツーエンドのサービス定義のデータモデルは、ＳＲＶＣ＿Ｔａｇ及びＳＲＶＣ＿Ｖａｌｕｅのコンテナを含む。ＳＲＶＣ＿Ｔａｇコンテナは、全体のサービス定義と関連する値を含む。具体的には、ＳＲＶＣ＿Ｏｒｉｇは発信者を指定し、ＳＲＶＣ＿Ｏｗｎｅｒはサービスに対して権限を持つ所有者を指定し、ＳＲＶＣ＿ａｃｃＩＤは、クラウドエクスチェンジプロバイダへの発信者を識別する、サービス発信者に属するアカウント識別子を指定し、ＳＲＶＣ＿Ｄｅｓｔは、要求されるサービスがインスタンス化される、クラウドエクスチェンジを指定し、ＳＲＶＣ＿Ｔｏｐｏｌｏｇｙは、ＳＲＶＣ＿Ｖａｌｕｅコンテナにおいて指定される、一連のマイクロサービスのシーケンスを規定する。
【０１８４】
ＳＲＶＣ＿Ｖａｌｕｅは、マイクロサービス定義のコンテナであり、それぞれのマイクロサービスに対する一つ以上のマイクロサービス定義を含む。次のＳＲＶＣ＿ＡＰＩデータモデルは、例えば、上記のＭＳ＿ＡＰＩの定義モデルに対する、マイクロサービス定義の一実施例である。
SRVC_API
｛
Srvc_Defn
｛
Srvc_AccID: VarChar
Srvc_Type: VarChar
Srvc_Oper_Type: VarChar
Srvc_ID: VarChar
Target_SP: VarChar
Srvc_Vendor: VarChar
EndPoint1 ｛
SP_ID: VarChar
Srvc_Key: VarChar[]
EP_Data ｛
＜定義されたサービスに特有のデータ＞
｝
｝ // End Endpoint1 Definition
EndPoint2 ｛
SP_ID: VarChar
Srvc_Key: VarChar[]
EP_Data ｛
＜定義されたサービスに特有のデータ＞
｝
｝ // End Endpoint2 Definition
｝ // End Service Definition
Policy ｛
＜定義されたサービスのポリシー定義に特有のデータ＞
｝ // End Policy Definition
QOS ｛
<<Parameter: Configured_Value, Real_Value>>
Availability: VarChar, VarChar
Bandwidth: Num, Num
Burstable: Boolean
Burst_EIR: VarChar,V arChar
Class_Of_Service: VarChar, VarChar
｛
Latency: [VarChar, VarChar],[VarChar, VarChar]
Jitter: [VarChar, VarChar, VarChar, VarChar]
ErrorRate: [VarChar,VarChar],[VarChar, VarChar]
PacketDrops: [VarChar,VarChar],[VarChar, VarChar]
｝
｝ // End QOS definition
TimeRange ｛
Start_Time: VarChar
End_Time: VarChar
｝ // End Time Range Definition
｝ // End SRVC_API
【０１８５】
上記のサービス定義は、プログラム可能なネットワークプラットフォームを介して、マイクロサービスの特性を規定及び取得する、サービス定義（「Ｓｒｖｃ＿Ｄｅｆｎ」）、ポリシー（「Ｐｏｌｉｃｙ」）、サービス品質（「ＱＯＳ」）、及び時間範囲（「ＴｉｍｅＲａｎｇｅ」）のコンテナを含む。サービス定義のコンテナは、Ｓｒｖｃ＿ＡｃｃＩＤ、Ｓｒｖｃ＿Ｔｙｐｅ、Ｓｒｖｃ＿Ｏｐｅｒ＿Ｔｙｐｅ、Ｓｒｖｃ＿ＩＤ、Ｔａｒｇｅｔ＿ＳＰ、Ｓｒｖｃ＿Ｖｅｎｄｏｒを含む、マイクロサービスに関する記述情報を規定する。Ｓｒｖｃ＿ＡｃｃＩＤは、ある特定のターゲットサービスプロバイダＴａｒｇｅｔ＿ＳＰで、一意にある特定のサービス発信者を識別する、一意のアカウント識別子である。Ｓｒｖｃ＿Ｔｙｐｅは、ネイティブのクラウドエクスチェンジサービスを提供するときのみ適用可能であってもよく、送達中のクラウドエクスチェンジサービスの種類を定義する。Ｓｒｖｃ＿Ｏｐｅｒ＿Ｔｙｐｅは、動作の種類、すなわち、ＣＲＵＤ動作のうちの一つを指定する。Ｓｒｖｃ＿ＩＤは、読み出し、更新、又は削除動作が実施されるべき、既に存在する（例えば、既に作成された）サービスに対して、発信者が提供すべきものである。Ｔａｒｇｅｔ＿ＳＰは、要求されるサービスを提供する、ターゲットサービスプロバイダである。
【０１８６】
エンドポイント１のコンテナは、マイクロサービスに対するクラウドエクスチェンジの第１のエンドポイントを定義し、クラウドエクスチェンジが、サービスキー又はライセンスキーを使用して、サービスデリバリのために連結する、サービスプロバイダの識別子（ＳＰ＿ＩＤ）を指定する。エンドポイント２のコンテナは、マイクロサービスに対するクラウドエクスチェンジの第２のエンドポイントを定義し、クラウドエクスチェンジが、サービスデリバリのために連結する、クラウドサービスプロバイダの識別子（「ＣＳＰ＿ＩＤ」）、及びサービスキーを指定する。また、第１及び第２のエンドポイントに関する各エンドポイントの記述は、例えば、大都市の場所の識別子、ポートの識別子、データセンターの識別子など、エンドポイントの特定のデータを含む。
【０１８７】
ポリシーコンテナの中のポリシーは、インスタンス化されているサービスに適用される必要がある構成の設定を識別してもよく、そのようなサービスに対するポリシーの例としては、ファイアウォールルール、ＮＡＴルール、暗号化ポリシー、ＷＡＮ最適化ポリシーなどが含まれる。言い換えると、ポリシーは、適用されるサービスが、マイクロサービスに対する第１及び第２のエンドポイント間のサービストラフィックに適用するために、どのように構成されるであろうかを判定する。ＱＯＳコンテナの中のＱｏＳパラメータは、マイクロサービスに対するサービストラフィックに適用される、ＱｏＳを規定する。ＴｉｍｅＲａｎｇｅコンテナの中の時間範囲は、プログラム可能なネットワークプラットフォームが、サービス識別子（「Ｓｒｖｃ＿ＩＤ」）を使用して、発信者及び／又は所有者に保証を提供してもよい、マイクロサービスの期間を定義する、開始時間及び終了時間を規定する。
【０１８８】
データモデルに従うサービス定義を伝達するインタフェースは、ＨＴＴＰ／ＨＴＴＰＳによるｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）又はＪａｖａ（登録商標）Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）を含んでもよい。すなわち、クラウドエクスチェンジプロバイダは、上に例として記載するサービスデータモードに従って、サービス定義を受信するＸＭＬ／ＪＳＯＮインタフェースを定義して、当該サービス定義を受信する手段である、ＨＴＴＰエンドポイントを公開してもよい。
【０１８９】
図１５は、本開示に記載する技術に従い、プログラム可能なネットワークプラットフォームを使用してクラウドエクスチェンジをプログラムするための、構成要素間のインタフェースを示す概念図である。プログラム可能なネットワークプラットフォーム１２５００は、サービスデリバリ及びデータアクセス用のサービスＡＰＩ１２７１０を公開する。ＡＰＩのこの様々な実施形態、及びプログラム可能なネットワークプラットフォーム１２５００の実施形態と通信する、本開示の他の部分に記載するその他のインタフェースは、サービスＡＰＩ１２７１０の実施例を全て表してもよい。サービスＡＰＩ１２７１０は、上に記載するＭＳ＿ＡＰＩなど、マイクロサービスのトポロジから成るエンドツーエンドのサービスを定義する、プログラム可能なネットワークサービスのデータモデルを使用してもよい。
【０１９０】
メタコンソール１２７０４は、クラウドサービスプロバイダによって製作され、クラウドサービスプロバイダの技術者又はオペレータが使用可能な、例えば、プログラム可能なネットワークプラットフォーム１２５００のサービスＡＰＩ１２７１０を呼び出すプラットフォームを表す。「ＣＸ」又は顧客ポータル１２７０２は、クラウドサービスプロバイダによって製作され、企業／顧客／ＣＳＰの技術者又はオペレータが使用可能な、例えば、プログラム可能なネットワークプラットフォーム１２５００のサービスＡＰＩ１２７１０を呼び出すプラットフォームを表す。クラウドエクスチェンジ開発者（ＣＸ  ＡＰＩ）１２７００は、プログラム可能なネットワークプラットフォーム１２５００からサービスを要求するように、サービスＡＰＩ１２７１０を呼び出す、第三者開発者（例えば、ＣＳＰ又は顧客の開発者）、又はクラウドエクスチェンジプロバイダの開発者によって作成される、第三者によって開発される、又はクライドサービスプロバイダによって開発されるプラットフォームを表す。
【０１９１】
ビジネスアプリケーション１２７０６は、顧客の会計情報を記憶してもよい。例えば、ビジネスアプリケーション１２７０６は、数個の例のみを挙げると、名前、顧客の識別子、住所、電話番号、電子メールなど、顧客の支払請求情報を記憶してもよい。プログラム可能なネットワークプラットフォーム１２５００が、サービス料を含む、顧客へのサービスを構成するとき、ビジネスアプリケーション１２７０６は、当該出費情報を記憶してもよい。このように、ビジネスアプリケーション１２７０６は、顧客によって購入されたサービスの会計処理を提供し、当該サービスに一元化した支払請求を提供してもよい。ビジネスアプリケーション１２７０６とプログラム可能なネットワークプラットフォーム１２５００との間のＡＰＩは、ＰＡＣＥ統合を含んでもよい。
【０１９２】
図１６は、本開示に記載する技術に従い、外部アプリケーションが、クラウドサービスプロバイダからのクラウドサービスのデリバリを促進するように、クラウドエクスチェンジを構成するのに利用してもよいインタフェースを含む、プログラム可能なネットワークプラットフォームを示すブロック図である。本実施例では、プログラム可能なネットワークプラットフォーム１２５００は、サービスデリバリ及びデータアクセス用のサービスＡＰＩ１２８２０を公開する。ＡＰＩのこの様々な実施形態、及びプログラム可能なネットワークプラットフォーム１２５００の実施形態と通信する、本開示の他の部分に記載するその他のインタフェースは、サービスＡＰＩ１２８２０の実施例を全て表してもよい。
【０１９３】
サービスＡＰＩ１２８２０は、本実施例では、クラウドサービスプロバイダによって開発され、クラウドサービスプロバイダからのレイヤ３のクラウドサービスを要求及び確立するように、プログラム可能なネットワークプラットフォーム１２５００によって実行される、少なくとも一つの第三者プラグイン１２８１０を含む。プラグイン１２８１０は、第三者オーケストレーションモジュール１０４０４のいずれを表してもよい。プラグイン１２８１０は、プログラム可能なネットワークプラットフォーム１２５００用の共通のプラグインインタフェースを実装して、インタフェースの方法、フィールドなどを、ＣＳＰオーケストレーション用のクラウドサービスプロバイダのインタフェースに変換してもよい。例えば、プログラム可能なネットワークプラットフォーム１２５００は、クラウドエクスチェンジプロバイダにクラウドサービスプロバイダからのサービスインスタンスを要求する（例えば、６０ＧＢのデータ記憶サービス）ように、プラグイン１２８１０を呼び出してもよい。クラウドサービスプロバイダのプラグイン１２８１０は、要求を受信して、クラウドサービスプロバイダが、要求されたサービスのインスタンス化を調整することが可能になるように、ＣＳＰオーケストレーションシステム１２８００を呼び出す。プラグイン１２８１０を介するＣＳＰオーケストレーション１２８００は、その後、「ネットワークハンドル」の形態で、プログラム可能なネットワークプラットフォーム１２５００に接続性情報を返送する。ネットワークハンドルは、クラウドエクスチェンジが要求されインスタンス化されたサービスに接続できる、情報を含む。例えば、ネットワークハンドルは、ＶｘＬＡＮ識別子若しくはＶＬＡＮ識別子、レイヤ３ルートアドレス若しくはレイヤ３ネットワークアドレス、トンネル情報、及び／又はクラウド集約リンク情報を含んでもよい。プログラム可能なネットワークプラットフォーム１２５００は、要求されインスタンス化されるサービスに接続して、要求されインスタンス化されるサービスに少なくとも一つの顧客ネットワークを相互接続するよう、エッジネットワーク１２６００を構成するように、ネットワークハンドルを使用する。
【０１９４】
操作ポータル１２８０４は、クラウドサービスプロバイダ１２８０４の技術者又はオペレータが使用するために、例えば、プログラム可能なネットワークプラットフォーム１２５００のサービスＡＰＩ１２８２０を呼び出す、クラウドサービスプロバイダによって製作されるプラットフォームを表す。ＣＳＰオーケストレーションシステム１２８００は、クラウドサービスプロバイダからのレイヤ３のサービスを要求するように、クラウドサービスプロバイダによって開発され、プログラム可能なネットワークプラットフォーム１２５００が使用可能な、一つ以上のシステムを表す。ＡＰＩゲートウェイ１２８０２は、顧客によって開発されるプラットフォーム、又はクラウドサービスプロバイダによって開発される顧客ポータルが、プログラム可能なネットワークプラットフォーム１２５００からのサービスを要求するのに用いてもよい、上位ＡＰＩを提供する。ＡＰＩゲートウェイ及び上位ＡＰＩのさらなる詳細は、上記に援用する、米国特許仮出願番号第６２／０７２，９７６号において見つけられる。
【０１９５】
図１７は、本開示の一つ以上の技術に従い動作する、コンピュータデバイスの一実施例のさらなる詳細を示すブロック図である。図１７は、プログラム可能なネットワークプラットフォームの構成要素（例えば、ＣＮＣ、ＮＦＵなど）、又は本明細書に記載するいかなる他のシステム、アプリケーション、若しくはモジュールのうちのいずれか一つ以上を実行する、一つ以上のプロセッサ１３５０２を含む、サーバ又はその他のコンピュータデバイス１３５００のある特定の実施例を示してもよい。コンピュータデバイス１３５００のその他の実施例は、その他のインスタンスにおいて使用してもよい。例示のためスタンドアローンのコンピュータデバイス１３５００として図１７に示すものの、コンピュータデバイスは、ソフトウェア命令を実行する、一つ以上のプロセッサ又はその他の好適なコンピュータ環境を含む、いかなる構成要素又はシステムであってもよく、例えば、必ずしも図１７に示す一つ以上の要素を含む必要はない（例えば、通信部１３５０６、及びいくつかの実施例では、記憶デバイス１３５０８などの構成要素は、同じ場所に設置されなくてもよく、又はその他の構成要素として同じ筐体の中になくてもよい）。
【０１９６】
図１７の特定の実施例に示す通り、コンピュータデバイス１３５００は、一つ以上のプロセッサ１３５０２、一つ以上の入力デバイス１３５０４、一つ以上の通信部１３５０６、一つ以上の出力デバイス１３５１２、一つ以上の記憶デバイス１３５０８、並びにユーザインタフェース（ＵＩ）デバイス１３５１０及び通信部１３５０６を含む。コンピュータデバイス１３５００は、一実施例では、コンピュータデバイス１３５００によって実行可能である、一つ以上のアプリケーション１３５２２、プログラム可能なネットワークプラットフォームアプリケーション１３５２４、及びオペレーティングシステム１３５１６をさらに含む。構成要素１３５０２、１３５０４、１３５０６、１３５０８、１３５１０、及び１３５１２の各々は、構成要素間通信のために（物理的に、通信可能に、及び／又は動作可能に）結合される。いくつかの実施例では、通信チャネル１３５１４は、システムバス、ネットワーク接続、プロセス間通信データ構造、又はデータを伝達するいかなる他の方法を含んでもよい。一実施例として、構成要素１３５０２、１３５０４、１３５０６、１３５０８、１３５１０、及び１３５１２は、一つ以上の通信チャネル１３５１４によって結合されてもよい。
【０１９７】
プロセッサ１３５０２は、一実施例では、コンピュータデバイス１３５００内で実行する機能性及び／又はプロセス命令を実装するように構成される。例えば、プロセッサ１３５０２は、記憶デバイス１３５０８に記憶される命令の処理を行うことが可能であってもよい。プロセッサ１３５０２の実施例には、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は同等の個別若しくは統合論理回路のうちのいずれか一つ以上を含んでもよい。
【０１９８】
一つ以上の記憶デバイス１３５０８は、動作中コンピュータデバイス１３５００内に情報を記憶するように構成されてもよい。記憶デバイス１３５０８は、いくつかの実施例では、コンピュータで読み取り可能な記憶媒体として記載される。いくつかの実施例では、記憶デバイス１３５０８は一時メモリであり、記憶デバイス１３５０８の主要な目的が長期間の記憶ではないことを意味する。記憶デバイス１３５０８は、いくつかの実施例では、揮発性メモリとして記載され、コンピュータの電源が切れると、記憶デバイス１３５０８は記憶したコンテンツを維持しないことを意味する。揮発性メモリの実施例には、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、及び当該技術分野で既知であるその他の形態の揮発性メモリを含む。いくつかの実施例では、記憶デバイス１３５０８は、プロセッサ１３５０２によって実施するプログラム命令を記憶するように使用される。記憶デバイス１３５０８は、一実施例では、プログラム実行中一時的に情報を記憶するように、コンピュータデバイス１３５００上で動作されるソフトウェア又はアプリケーションによって使用される。
【０１９９】
また記憶デバイス１３５０８は、いくつかの実施例では、一つ以上のコンピュータで読み取り可能な記憶媒体を含む。記憶デバイス１３５０８は、揮発性メモリよりも大きい情報量を記憶するように構成されてもよい。記憶デバイス１３５０８はさらに、長期間情報を記憶するように構成されてもよい。いくつかの実施例では、記憶デバイス１３５０８は不揮発性記憶要素を含む。当該不揮発性記憶要素の実施例には、磁気ハードディスク、光ディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、又は電気的にプログラム可能なメモリ（ＥＰＲＯＭ）若しくは電気的に消去及びプログラム可能なメモリ（ＥＥＰＲＯＭ）の形態を含む。
【０２００】
コンピュータデバイス１３５００も、いくつかの実施例では、一つ以上の通信部１３５０６を含む。コンピュータデバイス１３５００は、一実施例では、一つ以上の有線／無線／モバイルネットワークなど、一つ以上のネットワークを介して外部デバイスと通信するように、通信部１３５０６を利用する。通信部１３５０６は、イーサネット（登録商標）カードなどのネットワークインタフェースカード、光送受信機、無線周波数送受信機、又は情報を送受信できる、いかなる他の種類のデバイスを含んでもよい。いくつかの実施例では、コンピュータデバイス１３５００は、外部デバイスと通信するように、通信部１３５０６を使用する。
【０２０１】
コンピュータデバイス１３５００も、一実施例では、一つ以上のユーザインタフェースデバイス１３５１０を含む。ユーザインタフェースデバイス１３５１０は、いくつかの実施例では、触覚、音声、又は動画によるフィードバックによって、ユーザからの入力を受信するように構成される。ユーザインタフェースデバイス１３５１０の実施例には、存在を感知するディスプレイ、マウス、キーボード、声に反応するシステム、ビデオカメラ、マイク、又はユーザからのコマンドを検出する、いかなる他の種類のデバイスを含む。いくつかの実施例では、存在を感知するディスプレイはタッチ感応式スクリーンを含む。
【０２０２】
また、一つ以上の出力デバイス１３５１２も、コンピュータデバイス１３５００に含まれてもよい。出力デバイス１３５１２は、いくつかの実施例では、触覚、音声、又はビデオによる刺激を使用して、ユーザに出力を提供するように構成される。出力デバイス１３５１２は、一実施例では、存在を感知するディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、又は人若しくはマシンが理解可能である適切な形態に信号を変換する、いかなる他の種類のデバイスを含む。出力デバイス１３５１２のさらなる実施例には、スピーカ、陰極管（ＣＲＴ）モニタ、液晶ディスプレイ（ＬＣＤ）、又はユーザへの分かりやすい出力を生成できる、いかなる他の種類のデバイスを含む。
【０２０３】
コンピュータデバイス１３５００は、オペレーティングシステム１３５１６を含んでもよい。オペレーティングシステム１３５１６は、いくつかの実施例では、コンピュータデバイス１３５００の構成要素の動作を制御する。例えば、一実施例では、オペレーティングシステム１３５１６によって、一つ以上のアプリケーション１３５２２と、プロセッサ１３５０２、通信部１３５０６、記憶デバイス１３５０８、入力デバイス１３５０４、ユーザインタフェースデバイス１３５１０、及び出力デバイス１３５１２を伴うプログラム可能なネットワークプラットフォームアプリケーション１３５２４との通信が促進される。
【０２０４】
また、アプリケーション５２２及びプログラム可能なネットワークプラットフォームアプリケーション１３５２４は、コンピュータデバイス１３５００によって実行可能なプログラム命令及び／又はデータを含んでもよい。コンピュータデバイス１３５００によって実行可能な例示のプログラム可能なネットワークプラットフォームアプリケーション１３５２４は、集中ネットワーク制御アプリケーション１３５５０（「ＣＮＣ１３５５０」）、及びネットワークフィールドユニットアプリケーション１３５５２（「ＮＦＵ１３５５２」）のうちのいずれか一つ以上を含んでもよく、各々は、これらがコンピュータデバイス１３５００のいかなる所与の実施例によって実行可能であってもよく、又は実行可能でなくてもよいことを示す点線で示される。
【０２０５】
集中ネットワーク制御１３５５０は、コンピュータデバイス１３５００に、集中ネットワーク制御に関して本開示に記載する、動作及び操作のうちの一つ以上を実施させる命令を含んでもよい。一実施例として、ＣＮＣ１３５５０は、コンピュータデバイス１３５００に、自動的にシームレスに、クラウドエクスチェンジに参加する複数の異なるクラウドサービスプロバイダとの相互接続を確立、削除、及び管理させる命令を含んでもよい。
【０２０６】
ネットワークフィールドユニット１３５５２は、コンピュータデバイス１３５００に、ネットワークフィールドユニットに関して本開示に記載する、動作及び操作のうちの一つ以上を実施させる命令を含んでもよい。一実施例として、ＮＦＵ１３５５２は、例えば、異なるデータセンターなどの地理的に異なる場所で、一つ以上のサービスをプロビジョニングするため、クラウドエクスチェンジポイントのネットワークインフラを構成するように、コンピュータデバイス１３５００に、別のサーバ上で実施するＣＮＣからの要求又は命令を受信させる命令を含んでもよい。
[クラウドベースのサービス交換用のプログラム可能なネットワークプラットフォーム]
【０２０７】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０２０８】
条項１
データセンター内のクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームによって、データモデルに従うサービス定義を含むサービス要求を受信することであって、サービス定義が、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定し、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、サービス要求に応答するプログラム可能なネットワークプラットフォームによって、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングすることと、を含む、方法。
【０２０９】
条項２
サービス定義は、複数のクラウドサービスの要求として、サービス要求を識別する、条項１に記載の方法。
【０２１０】
条項３
サービス定義は、複数のクラウドサービスを備える全体のサービスに対して、権限を持つサービス所有者を含む、条項１に記載の方法。
【０２１１】
条項４
権限を持つサービス所有者は、クラウドベースのサービス交換を運営する、クラウドエクスチェンジプロバイダである、条項３に記載の方法。
【０２１２】
条項５
サービス定義は、複数のクラウドサービスを備える全体のサービスに対して、サービス識別子を含む、条項１に記載の方法。
【０２１３】
条項６
サービス要求は、クラウドベースのサービス交換の顧客によって創出される、条項１に記載の方法。
【０２１４】
条項７
サービス定義は、複数のクラウドサービスのうちのいくつかを指定する値を含む、条項１に記載の方法。
【０２１５】
条項８
サービス定義は、共通のマイクロサービス定義に従って、複数のクラウドサービスの各々を規定する、条項１に記載の方法。
【０２１６】
条項９
共通のマイクロサービス定義は、クラウドサービスに対する第１のクラウドサービスプロバイダを識別する第１のエンドポイントと、顧客及び第２のクラウドサービスプロバイダのうちの一つを識別する第２のエンドポイントとを指定する、条項８に記載の方法。
【０２１７】
条項１０
共通のマイクロサービス定義は、クラウドサービスに適用するようにポリシーを定義する、ポリシー定義を規定する、条項８に記載の方法。
【０２１８】
条項１１
共通のマイクロサービス定義は、クラウドサービスに適用するようにサービス品質を定義する、サービス品質定義を規定する、条項８に記載の方法。
【０２１９】
条項１２
共通のマイクロサービス定義は、クラウドベースのサービス交換が、クラウドベースのサービス交換によって、クラウドサービスのデリバリの保証を提供するべきである、時間の範囲を定義する、時間範囲定義を規定する、条項８に記載の方法。
【０２２０】
条項１３
複数のクラウドサービスを規定するために、サービス定義は、複数のクラウドサービスのうちの対応するクラウドサービスを定義する、一連の複数のマイクロサービス定義を含む、条項１に記載の方法。
【０２２１】
条項１４
ネットワークを備える、クラウドベースのサービス交換ポイントであって、ネットワークデータセンターを運営する、クラウドエクスチェンジプロバイダによって運営される、クラウドベースのサービス交換ポイントと、データモデルに従うサービス定義を含む、サービス要求を受信するように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームであって、サービス定義が、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定し、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定し、サービス定義が、共通のマイクロサービス定義に従って、複数のクラウドサービスの各々を規定する、プログラム可能なネットワークプラットフォームであって、サービス要求に応答して、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームと、を備える、ネットワークデータセンター。
【０２２２】
条項１５
共通のマイクロサービス定義は、クラウドサービスに対する第１のクラウドサービスプロバイダを識別する第１のエンドポイントと、顧客及び第２のクラウドサービスプロバイダのうちの一つを識別する第２のエンドポイントとを指定する、条項１４に記載のネットワークデータセンター。
【０２２３】
条項１６
共通のマイクロサービス定義は、クラウドサービスに適用するようにポリシーを定義する、ポリシー定義を規定する、条項１４に記載のネットワークデータセンター。
【０２２４】
条項１７
共通のマイクロサービス定義は、クラウドサービスに適用するようにサービス品質を定義する、サービス品質定義を規定する、条項１４に記載のネットワークデータセンター。
【０２２５】
条項１８
共通のマイクロサービス定義は、クラウドベースのサービス交換が、クラウドベースのサービス交換によって、クラウドサービスのデリバリの保証を提供するべきである、時間の範囲を定義する、時間範囲定義を規定する、条項１４に記載のネットワークデータセンター。
【０２２６】
条項１９
複数のクラウドサービスを規定するために、サービス定義は、複数のクラウドサービスのうちの対応するクラウドサービスを定義する、一連の複数のマイクロサービス定義を含む、条項１４に記載のネットワークデータセンター。
【０２２７】
条項２０
実行されるとき、データセンターをベースとするクラウドエクスチェンジ用のプログラム可能なネットワークプラットフォームの、少なくとも一つのプログラム可能なプロセッサに、データモデルに従うサービス定義を含むサービス要求を受信することであって、サービス定義が、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定し、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、サービス要求に対してクラウドベースのサービス交換ポイントをプロビジョニングすることと、を備える動作を実施させる、命令を備える、非一時的なコンピュータで読み取り可能な媒体。
[クラウドエクスチェンジによる複数のクラウドサービスデリバリ]
【０２２８】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０２２９】
条項１
データセンター内のクラウドベースのサービス交換ポイント用のプログラム可能なネットワークプラットフォームによって、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、サービス要求を受信することであって、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、サービス要求に応答するプログラム可能なネットワークプラットフォームによって、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングすることと、を含む方法。
【０２３０】
条項２
クラウドベースのサービス交換ポイントをプロビジョニングすることは、プログラム可能なネットワークプラットフォームによって、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ３ルートを受信するように、クラウドベースのサービス交換ポイントの仮想ルータを構成することを含み、仮想ルータは、複数のクラウドサービスに対するトポロジに従う、クラウドサービスプロバイダネットワークに対するレイヤ３ルートに従って、サービストラフィックを転送する、条項１に記載の方法。
【０２３１】
条項３
クラウドベースのサービス交換ポイントは、クラウドエクスチェンジプロバイダによって運営され、データセンター内に設置される、レイヤ３（Ｌ３）自律システムを備え、Ｌ３自律システムは、複数のトンネルによって、複数のプロバイダエッジ（ＰＥ）ルータを相互接続する、インターネットプロトコルネットワークを備え、クラウドベースのサービス交換ポイントをプロビジョニングするために、プログラム可能なネットワークプラットフォームは、複数のトンネルのうちの一つを備え、レイヤ３でクラウドサービスプロバイダネットワークの各々を仮想ルータに接続する、エンドツーエンドのＬ３経路を確立するように、複数のＰＥルータを構成する、条項２に記載の方法。
【０２３２】
条項４
クラウドベースのサービス交換ポイントをプロビジョニングするために、プログラム可能なネットワークプラットフォームは、複数のクラウドサービスに対して、それぞれの仮想プライベートネットワークのルーティング及び転送インスタンス（ＶＲＦ）を定義する構成データで、複数のＰＥルータを構成し、複数のＰＥルータは、第１のルーティングプロトコルによって、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ３ルートを受信し、仮想ルータは、第２のルーティングプロトコルによって、複数のＰＥルータから、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ３ルートを受信する、条項３に記載の方法。
【０２３３】
条項５
クラウドベースのサービス交換ポイントをプロビジョニングすることは、プログラム可能なネットワークプラットフォームによって、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ２仮想プライベートネットワークで、クラウドベースのサービス交換ポイントの仮想ルータを構成することを含み、仮想ルータは、複数のクラウドサービスに対するトポロジに従う、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ２仮想プライベートネットワークに従って、サービストラフィックを転送する、条項１に記載の方法。
【０２３４】
条項６
サービス要求は、複数のクラウドサービスの要求としてサービス要求を識別する、サービス定義に適合する、条項１に記載の方法。
【０２３５】
条項７
サービス要求は、複数のクラウドサービスを備える全体のサービスに対して、権限を持つサービス所有者を指定する、条項１に記載の方法。
【０２３６】
条項８
権限を持つサービス所有者は、クラウドベースのサービス交換を運営する、クラウドエクスチェンジプロバイダである、条項７に記載の方法。
【０２３７】
条項９
サービス要求は、複数のクラウドサービスを備える全体のサービスに対して、サービス識別子を指定する、条項１に記載の方法。
【０２３８】
条項１０
サービス要求は、クラウドベースのサービス交換の顧客によって創出される、条項１に記載の方法。
【０２３９】
条項１１
複数のクラウドサービスの各クラウドサービスに対するプログラム可能なネットワークプラットフォームによって、オーケストレーションシステムに、クラウドサービスプロバイダネットワーク内でクラウドサービスを調整させるように、対応するクラウドサービスプロバイダネットワークに対するオーケストレーションシステムに、クラウドサービスのサービス要求を送信することを、さらに含む、条項１に記載の方法。
【０２４０】
条項１２
サービス要求は、クラウドベースのサービス交換ポイントによって適用される、ネイティブサービスをさらに規定し、サービス要求に応答するプログラム可能なネットワークプラットフォームによって、複数のクラウドサービスのうちの少なくとも一つに対するサービストラフィックに、ネイティブサービスを適用するように、クラウドベースのサービス交換ポイントをプロビジョニングすること、をさらに含む、条項１に記載の方法。
【０２４１】
条項１３
ネットワークを備える、クラウドベースのサービス交換ポイントであって、ネットワークデータセンターを運営する、クラウドエクスチェンジプロバイダによって運営される、クラウドベースのサービス交換ポイントと、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、サービス要求を受信するように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームであって、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、プログラム可能なプロセッサであって、サービス要求に応答して、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、クラウドベースのサービス交換ポイントをプロビジョニングするように構成される、少なくとも一つのプログラム可能なプロセッサを備える、プログラム可能なネットワークプラットフォームと、を備える、ネットワークデータセンター。
【０２４２】
条項１４
クラウドベースのサービス交換ポイントをプロビジョニングすることは、プログラム可能なネットワークプラットフォームによって、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ３ルートを受信するように、クラウドベースのサービス交換ポイントの仮想ルータを構成することを含み、仮想ルータは、複数のクラウドサービスに対するトポロジに従う、クラウドサービスプロバイダネットワークに対するレイヤ３ルートに従って、サービストラフィックを転送する、条項１３に記載のネットワークデータセンター。
【０２４３】
条項１５
クラウドベースのサービス交換ポイントは、クラウドエクスチェンジプロバイダによって運営され、ネットワークデータセンター内に設置される、レイヤ３（Ｌ３）自律システムを備え、Ｌ３自律システムは、複数のトンネルによって、複数のプロバイダエッジ（ＰＥ）ルータを相互接続する、インターネットプロトコルネットワークを備え、クラウドベースのサービス交換ポイントをプロビジョニングするために、プログラム可能なネットワークプラットフォームは、複数のトンネルのうちの一つを備える、エンドツーエンドのＬ３経路を確立するように、複数のＰＥルータを構成して、レイヤ３でクラウドサービスプロバイダネットワークの各々を仮想ルータに接続する、条項１４に記載のネットワークデータセンター。
【０２４４】
条項１６
クラウドベースのサービス交換ポイントをプロビジョニングすることは、プログラム可能なネットワークプラットフォームによって、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ２仮想プライベートネットワークで、クラウドベースのサービス交換ポイントの仮想ルータを構成することを含み、仮想ルータは、複数のクラウドサービスに対するトポロジに従う、クラウドサービスプロバイダネットワークに対するそれぞれのレイヤ２仮想プライベートネットワークに従って、サービストラフィックを転送する、条項１３に記載のネットワークデータセンター。
【０２４５】
条項１７
サービス要求は、複数のクラウドサービスの要求としてサービス要求を識別する、サービス定義に適合する、条項１３に記載のネットワークデータセンター。
【０２４６】
条項１８
サービス要求は、複数のクラウドサービスを備える全体のサービスに対して、権限を持つサービス所有者を指定する、条項１３に記載のネットワークデータセンター。
【０２４７】
条項１９
サービス要求は、複数のクラウドサービスを備える全体のサービスに対して、サービス識別子を指定する、条項１３に記載のネットワークデータセンター。
【０２４８】
条項２０
実行されるとき、データセンターをベースとするクラウドエクスチェンジ用のプログラム可能なネットワークプラットフォームの、少なくとも一つのプログラム可能なプロセッサに、それぞれのクラウドサービスプロバイダにより運営される、それぞれのクラウドサービスプロバイダネットワークが提供する、複数のクラウドサービスを規定する、サービス要求を受信することであって、サービス要求が、複数のクラウドサービスに対するトポロジをさらに規定する、ことと、複数のクラウドサービスに対するトポロジに従って、複数のクラウドサービスに対するサービストラフィックを転送するように、サービス要求に対してクラウドベースのサービス交換ポイントをプロビジョニングすることと、を備える動作を実施させる、命令を備える、非一時的なコンピュータで読み取り可能な媒体。
[クラウドエクスチェンジのプログラム可能なネットワークプラットフォーム用の第三者オーケストレーションモジュール]
【０２４９】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０２５０】
条項１
少なくとも一つのプログラム可能なプロセッサと、クラウドサービスプロバイダのオーケストレーションシステムと通信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、第三者オーケストレーションモジュールと、クラウドエクスチェンジプロバイダによって運営されるクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、集中ネットワークコントローラと、を備え、集中ネットワークコントローラは、サービス要求に応じて、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整することを要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すようにさらに構成され、集中ネットワークコントローラは、クラウドエクスチェンジのネットワークに連結するクラウドサービスプロバイダネットワークから、クラウドエクスチェンジのネットワークに連結する顧客ネットワークへ、クラウドサービスを送達するように、データセンター内でクラウドエクスチェンジのネットワークをプロビジョニングする、プログラム可能なネットワークプラットフォーム。
【０２５１】
条項２
第三者オーケストレーションモジュールは、クラウドサービスプロバイダネットワークによって適用されるサービスのリスト又はカタログを発行するように、プログラム可能なネットワークプラットフォームに登録する、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２５２】
条項３
集中ネットワークコントローラは、顧客ネットワークを運営する顧客に表示するため、顧客ポータルアプリケーションにサービスのリスト又はカタログを送信するようにさらに構成される、条項２に記載のプログラム可能なネットワークプラットフォーム。
【０２５３】
条項４
第三者オーケストレーションモジュールは、クラウドエクスチェンジプロバイダによって製作される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２５４】
条項５
集中ネットワークコントローラは、第三者オーケストレーションモジュールから、クラウドサービスに対する接続性情報を受信するようにさらに構成され、クラウドサービスを送達するよう、クラウドエクスチェンジのネットワークをプロビジョニングするために、集中ネットワークコントローラは、接続性情報に基づいて、クラウドサービスのデリバリのために、クラウドエクスチェンジのネットワークとクラウドサービスプロバイダネットワークとの間のネットワーク接続性を使用可能にするよう、クラウドエクスチェンジのネットワークをプロビジョニングするようにさらに構成される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２５５】
条項６
接続性情報は、仮想ローカルエリアネットワーク（ＶＬＡＮ）識別子、Ｖｘローカルエリアネットワーク（ＶｘＬＡＮ）識別子、クラウドサービスプロバイダネットワークのネットワークアドレスを指定するルート、及びクラウドエクスチェンジのネットワークにおけるポートのうちの少なくとも一つを備える、条項５に記載のプログラム可能なネットワークプラットフォーム。
【０２５６】
条項７
第三者オーケストレーションモジュールは、第１の第三者オーケストレーションモジュールを備え、クラウドサービスプロバイダのオーケストレーションシステムは、第１のクラウドサービスプロバイダのオーケストレーションシステムを備え、クラウドサービスプロバイダは、第１のクラウドサービスプロバイダを備え、クラウドサービスプロバイダネットワークは、第１のクラウドサービスプロバイダネットワークを備え、クラウドサービスは、第１のクラウドサービスを備え、サービス要求は、第１のサービス要求を備え、プログラム可能なネットワークプラットフォームは、第２のクラウドサービスプロバイダのオーケストレーションシステムと通信するように、少なくとも一つのプログラム可能なプロセッサによる実行のために構成される、第２の第三者オーケストレーションモジュールをさらに備え、集中ネットワークコントローラは、クラウドエクスチェンジのネットワーク上で、第２のクラウドサービスプロバイダネットワークによって適用される第２のクラウドサービスを規定する、第２のサービス要求を受信するように、少なくとも一つのプログラム可能なプロセッサによる実行のためにさらに構成され、集中ネットワークコントローラは、第２のサービス要求に応じて、第２のクラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で第２のクラウドサービスを調整することを要求するために、第２のクラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第２の第三者オーケストレーションモジュールを呼び出すようにさらに構成され、集中ネットワークコントローラは、クラウドエクスチェンジに連結する第２のクラウドサービスプロバイダネットワークから顧客ネットワークへ、第２のクラウドサービスを送達するように、クラウドエクスチェンジのネットワークをプロビジョニングする、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２５７】
条項８
第１の第三者オーケストレーションモジュール及び第２の第三者オーケストレーションモジュールは、集中ネットワークコントローラが、サービスを調整するように、第１の第三者オーケストレーションモジュール及び第２の第三者オーケストレーションモジュールを呼び出せる、集中ネットワークコントローラで、共通インタフェースを登録する、条項７に記載のプログラム可能なネットワークプラットフォーム。
【０２５８】
条項９
クラウドエクスチェンジは、クラウドエクスチェンジプロバイダによって運営されるエッジネットワークを備え、クラウドエクスチェンジのネットワークをプロビジョニングするために、集中ネットワークコントローラは、クラウドサービスの、及び顧客ネットワークへの配信用のクラウドサービストラフィックを受信するよう、エッジネットワークをプロビジョニングするようにさらに構成される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２５９】
条項１０
クラウドエクスチェンジのネットワークは、クラウドエクスチェンジプロバイダによって運営され、データセンター内に設置される、レイヤ３（Ｌ３）自律システムを備え、複数の連結回路は、データセンター内で、複数のクラウドサービスプロバイダネットワークを、Ｌ３自律システムに接続するように構成され、複数のクラウドサービスプロバイダネットワークは、クラウドサービスプロバイダネットワークを含み、一つ以上の連結回路は、データセンター内で、一つ以上の顧客ネットワークをＬ３自律システムに接続するように構成され、一つ以上の顧客ネットワークは、顧客ネットワークを含み、集中ネットワークコントローラは、複数のクラウドサービスプロバイダネットワークと一つ以上の顧客ネットワークとの間に、エンドツーエンドのネットワーク経路を確立することによって、複数のクラウドサービスプロバイダネットワーク、及び一つ以上の顧客ネットワークを相互接続するように、Ｌ３自律システムをプロビジョニングし、各エンドツーエンドのネットワーク経路は、それぞれ複数のクラウドサービスプロバイダネットワークを、Ｌ３自律システムに接続する複数の連結回路のうちの一つを含み、また、それぞれ一つ以上の顧客ネットワークをＬ３自律システムに接続する、一つ以上の連結回路のうちの一つを含み、Ｌ３自律システムは、それぞれ一つ以上の顧客ネットワークをＬ３自律システムに接続する、一つ以上の連結回路に、エンドツーエンドのネットワーク経路に沿ってそれぞれ複数のクラウドサービスプロバイダネットワークを接続する、複数の連結回路上で受信される、クラウドサービストラフィックを転送するように構成される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２６０】
条項１１
サービス要求は、クラウドサービスに対する一つ以上のサービス要件を規定する、サービス定義を含む、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２６１】
条項１２
クラウドサービスのサービストラフィックは、ネットワークパケットを備え、クラウドエクスチェンジのネットワークをプロビジョニングするために、集中ネットワークコントローラは、ネットワークパケットを転送するよう、クラウドエクスチェンジのネットワークのエッジネットワークを構成するようにさらに構成される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２６２】
条項１３
クラウドエクスチェンジのネットワークは、クラウドエクスチェンジプロバイダによって運営され、データセンター内に設置される、レイヤ３（Ｌ３）自律システムを備え、Ｌ３自律システムは、複数のトンネルによって、複数のプロバイダエッジ（ＰＥ）ルータを相互接続する、インターネットプロトコルネットワークを備え、クラウドエクスチェンジのネットワークをプロビジョニングするために、集中ネットワークコントローラは、複数のトンネルのうちの一つを備え、レイヤ３でクラウドサービスプロバイダネットワークを顧客ネットワークに接続する、エンドツーエンドのＬ３経路を確立するよう、複数のＰＥルータを構成するようにさらに構成される、条項１に記載のプログラム可能なネットワークプラットフォーム。
【０２６３】
条項１４
プログラム可能なネットワークプラットフォームの集中ネットワークコントローラによって、クラウドエクスチェンジプロバイダが運営するクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信することと、サービス要求に応じる集中ネットワークコントローラによって、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整することを要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すことと、集中ネットワークコントローラによって、クラウドベースのサービス交換ポイントに連結するクラウドサービスプロバイダネットワークから、クラウドベースのサービス交換ポイントに連結する顧客ネットワークへ、クラウドサービスを送達するように、データセンター内でクラウドエクスチェンジのネットワークをプロビジョニングすることと、を含む、方法。
【０２６４】
条項１５
第三者オーケストレーションモジュールから集中ネットワークコントローラによって、クラウドサービスプロバイダネットワークにより提供される、サービスのリストを受信することをさらに含む、条項１４に記載の方法。
【０２６５】
条項１６
集中ネットワークコントローラは、顧客ネットワークを運営する顧客に表示するため、顧客ポータルアプリケーションにサービスのリストを送信するようにさらに構成される、条項１４に記載の方法。
【０２６６】
条項１７
第三者オーケストレーションモジュールから集中ネットワークコントローラによって、クラウドサービスに対する接続性情報を受信することをさらに含み、クラウドサービスを送達するよう、クラウドエクスチェンジのネットワークをプロビジョニングするために、集中ネットワークコントローラは、接続性情報に基づいて、クラウドサービスのデリバリのために、クラウドエクスチェンジのネットワークとクラウドサービスプロバイダネットワークとの間のネットワーク接続性を使用可能にするように、クラウドエクスチェンジのネットワークをプロビジョニングする、条項１４に記載の方法。
【０２６７】
条項１８
接続性情報は、仮想ローカルエリアネットワーク（ＶＬＡＮ）識別子、Ｖｘローカルエリアネットワーク（ＶｘＬＡＮ）識別子、クラウドサービスプロバイダネットワークのネットワークアドレスを指定するルート、及びクラウドベースのサービス交換ポイントにおけるポートのうちの少なくとも一つを備える、条項１７に記載の方法。
【０２６８】
条項１９
クラウドエクスチェンジ用のネットワークは、クラウドエクスチェンジプロバイダによって運営されるエッジネットワークを備え、クラウドエクスチェンジ用のネットワークをプロビジョニングするために、集中ネットワークコントローラは、クラウドサービスの、及び顧客ネットワークへの配信用のクラウドサービストラフィックを受信するように、エッジネットワークをプロビジョニングする、条項１４に記載の方法。
【０２６９】
条項２０
ネットワークを備える、クラウドエクスチェンジであって、クラウドエクスチェンジプロバイダによって運営されるクラウドエクスチェンジと、少なくとも一つのプログラム可能なプロセッサ、クラウドサービスプロバイダのオーケストレーションシステムと通信する、第三者オーケストレーションモジュール、及びクラウドエクスチェンジのネットワーク上で、クラウドサービスプロバイダによって運営されるクラウドサービスプロバイダネットワークが適用するクラウドサービスを規定する、サービス要求を受信するように、少なくとも一つのプログラム可能なプロセッサによって実行するために構成される、集中ネットワークコントローラを備える、プログラム可能なネットワークプラットフォームと、を備え、集中ネットワークコントローラは、サービス要求に応じて、クラウドサービスプロバイダが、クラウドエクスチェンジのネットワーク上で、クラウドサービスを調整することを要求するために、クラウドサービスプロバイダのオーケストレーションシステムと通信するよう、第三者オーケストレーションモジュールを呼び出すようにさらに構成され、集中ネットワークコントローラは、クラウドエクスチェンジのネットワークに連結するクラウドサービスプロバイダネットワークから、クラウドエクスチェンジのネットワークに連結する顧客ネットワークへ、クラウドサービスを送達するように、クラウドエクスチェンジのネットワークをプロビジョニングする、ネットワークデータセンター。
[クラウドベースのサービス交換のための集中ネットワーク制御]
【０２７０】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０２７１】
条項１
集中ネットワーク制御（ＣＮＣ）システムによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ＣＮＣシステムによってソフトウェアインタフェースを提供することと、ＣＮＣシステムによって、ソフトウェアインタフェースを介して、ネットワークデータセンターのエッジネットワーク内でサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ＣＮＣシステムによって、サービス要求に基づき、サービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＣＮＣシステムによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成するように、ＣＮＣシステムによって、少なくとも一つのネットワークフィールドユニットへネットワークサービス定義を送信することとを含む、方法。
【０２７２】
条項２
ＣＮＣシステムによって、少なくとも一つのネットワークフィールドユニットから受信されるサービスに対して、性能データを監視することと、ＣＮＣシステムによって、サービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、サービス要件のうちの少なくとも一つを伴う性能データ、並びにＣＮＣシステムによって記憶される、サービステレメトリ及び分析データを比較することと、サービスに対するサービス要件が満たされないとの判定に応答して、ＣＮＣシステムによって、サービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、ＣＮＣシステムによって、少なくとも一つの修復操作を実行することと、をさらに含む、条項１に記載の方法。
【０２７３】
条項３
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークの異なる一部分を再構成するように、少なくとも一つのネットワークフィールドユニットに、一つ以上の命令を送信することを含む、条項２に記載の方法。
【０２７４】
条項４
一つ以上のサービス要件は、サービスの種類、サービスの地理的な場所、サービスの帯域幅、帯域幅がバースト可能か否かの指標、Ｅｘｃｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ（ＥＩＲ）、帯域幅に対する最大遅延、サービスの最小可用性レベル、サービスのクラウドサービスプロバイダ、又はサービスに対する一つ以上のセキュリティプロパティのうちの少なくとも一つを規定する、条項１に記載の方法。
【０２７５】
条項５
サービスは、レイヤ３の相互接続サービス、ファイアウォールサービス、データ記憶サービス、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）サービス、分析サービス、ネットワークアドレス変換サービス、又はディープパケットインスペクションサービスのうちの少なくとも一つを備える、条項１に記載の方法。
【０２７６】
条項６
エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成することに応答して、ＣＮＣシステムによって、サービスの要求者にサービスをプロビジョニングする料金を示す、支払請求情報を記憶することと、ＣＮＣシステムによって、サービスの要求者に支払請求情報の指標を送信することと、をさらに含む、条項１に記載の方法。
【０２７７】
条項７
一つ以上のネットワークデータセンターは地理的に散在し、複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、エッジネットワークのそれぞれ一部分を制御する、条項１に記載の方法。
【０２７８】
条項８
サービス定義のサービス要件は、エッジネットワークのある特定の物理デバイスを指定せず、ネットワークサービス定義は、エッジネットワークのある特定の物理デバイスを構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、条項１に記載の方法。
【０２７９】
条項９
サービスは第１のサービスであり、エッジネットワークの一部分で第１のサービスの少なくとも一つのネットワークサービスを構成するように、ネットワークサービス定義を送信することは、第１のクラウドサービスプロバイダから始まる第１のクラウドサービストラフィック、及び第２のクラウドサービスプロバイダから始まる第２のクラウドサービストラフィックを集約するように、エッジネットワークを構成することと、集約されたクラウドサービストラフィックを送達するように、エッジネットワークを構成することと、とさらに含む、条項１に記載の方法。
【０２８０】
条項１０
一つ以上のコンピュータプロセッサと、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ＣＮＣシステムによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、ソフトウェアインタフェースを介して、ネットワークデータセンターのエッジネットワーク内でサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、サービス要求に基づき、サービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成するように、少なくとも一つのネットワークフィールドユニットへネットワークサービス定義を送信することと、を行わせる命令を備える、メモリとを備える、集中ネットワーク制御（ＣＮＣ）システム。
【０２８１】
条項１１
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、少なくとも一つのネットワークフィールドユニットから受信されるサービスに対して、性能データを監視することと、サービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、サービス要件のうちの少なくとも一つを伴う性能データ、並びにＣＮＣシステムによって記憶される、サービステレメトリ及び分析データを比較することと、サービスに対するサービス要件が満たされないとの判定に応答して、サービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、少なくとも一つの修復操作を実行することと、を行わせる命令を備える、条項１０に記載のＣＮＣシステム。
【０２８２】
条項１２
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークの異なる一部分を再構成するように、少なくとも一つのネットワークフィールドユニットに、一つ以上の命令を送信することを含む、条項１１に記載のＣＮＣシステム。
【０２８３】
条項１３
一つ以上のサービス要件は、サービスの種類、サービスの地理的な場所、サービスの帯域幅、帯域幅がバースト可能か否かの指標、Ｅｘｃｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ（ＥＩＲ）、帯域幅に対する最大遅延、サービスの最小可用性レベル、サービスのクラウドサービスプロバイダ、又はサービスに対する一つ以上のセキュリティプロパティのうちの少なくとも一つを規定する、条項１０に記載のＣＮＣシステム。
【０２８４】
条項１４
サービスは、レイヤ３の相互接続サービス、ファイアウォールサービス、データ記憶サービス、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）サービス、分析サービス、ネットワークアドレス変換サービス、又はディープパケットインスペクションサービスのうちの少なくとも一つを備える、条項１０に記載のＣＮＣシステム。
【０２８５】
条項１５
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、エッジネットワークの一部分でサービスの少なくとも一つのネットワークサービスを構成することに応答して、サービスの要求者にサービスをプロビジョニングする料金を示す、支払請求情報を記憶することと、サービスの要求者に支払請求情報の指標を送信することと、を行わせる命令を備える、条項１０に記載のＣＮＣシステム。
【０２８６】
条項１６
一つ以上のネットワークデータセンターは地理的に散在し、複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、エッジネットワークのそれぞれ一部分を制御する、条項１０に記載のＣＮＣシステム。
【０２８７】
条項１７
サービス定義のサービス要件は、エッジネットワークのある特定の物理デバイスを指定せず、ネットワークサービス定義は、エッジネットワークのある特定の物理デバイスを構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、条項１０に記載のＣＮＣシステム。
【０２８８】
条項１８
サービスは第１のサービスであり、メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、第１のクラウドサービスプロバイダから始まる第１のクラウドサービストラフィック、及び第２のクラウドサービスプロバイダから始まる第２のクラウドサービストラフィックを集約するように、エッジネットワークを構成することと、集約されたクラウドサービストラフィックを送達するように、エッジネットワークを構成することと、を行わせる命令を備える、条項１０に記載のＣＮＣシステム。
【０２８９】
条項１９
実行されるとき、集中ネットワーク制御（ＣＮＣ）システムの少なくとも一つのプログラム可能なプロセッサに、ＣＮＣシステムによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、ソフトウェアインタフェースを介して、ネットワークデータセンターのエッジネットワーク内でサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、サービス要求に基づき、サービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、エッジネットワークの一部分で、サービスの少なくとも一つのネットワークサービスを構成するように、少なくとも一つのネットワークフィールドユニットへネットワークサービス定義を送信することと、を備える動作を実施させる、命令を備える、非一時的なコンピュータで読み取り可能な媒体。
【０２９０】
条項２０
実行されるとき、少なくとも一つのプログラム可能なプロセッサに、少なくとも一つのネットワークフィールドユニットから受信されるサービスに対して、性能データを監視することと、サービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、サービス要件のうちの少なくとも一つを伴う性能データ、並びにＣＮＣシステムによって記憶される、サービステレメトリ及び分析データを比較することと、サービスに対するサービス要件が満たされないとの判定に応答して、サービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、少なくとも一つの修復操作を実行することと、を備える動作を実施させる、命令を備える、条項１９に記載の非一時的なコンピュータで読み取り可能な媒体。
[クラウドベースのサービス交換用のネットワークフィールドユニット]
【０２９１】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０２９２】
条項１
少なくとも一つのネットワークフィールドユニットによって、一つ以上のネットワークデータセンターのエッジネットワークの一部分の内部で、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を受信することであって、ネットワークサービス定義は、ネットワークサービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能であり、一つ以上のネットワークデータセンター内のエッジネットワークの一部分は、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークフィールドユニットによって、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、ネットワークフィールドユニットによって、ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を含む、方法。
【０２９３】
条項２
エッジネットワークの一つ以上のある特定の物理デバイスを構成することは、ネットワークサービスを提供するよう、エッジネットワークの一つ以上のある特定の物理デバイスを構成するように、ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ又はハードウェア構成ツールのうちの少なくとも一つによって使用可能である一つ以上の命令を、ネットワークフィールドユニットによって、ＳＤＮコントローラ又はハードウェア構成ツールのうちの少なくとも一つに送信することをさらに含む、条項１に記載の方法。
【０２９４】
条項３
一つ以上のネットワークデータセンターは地理的に散在し、ネットワークフィールドユニットを含む複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、エッジネットワークのそれぞれ一部分を制御する、条項１に記載の方法。
【０２９５】
条項４
ネットワークフィールドユニットによって、ＳＤＮコントローラ、ハードウェア構成ツール、又はインフラデータ収集ツールのうちの少なくとも一つから受信されるネットワークサービスに対して、性能データを監視することと、ネットワークフィールドユニットによって、ネットワークサービスに対するサービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、性能の状況、又はＣＮＣシステムによって記憶されるネットワークテレメトリ及び分析データのうちの少なくとも一つと、性能データを比較することと、ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークフィールドユニットによって、ネットワークサービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、ＣＮＣシステムによって、少なくとも一つの修復操作を実行することと、をさらに含む、条項１に記載の方法。
【０２９６】
条項５
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークの異なる一部分を再構成することを含む、条項４に記載の方法。
【０２９７】
条項６
ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークフィールドユニットによって、ネットワークサービスに対するサービス要件が満たされないことを示す情報を、ＣＮＣシステムに送信することをさらに含む、条項４に記載の方法。
【０２９８】
条項７
ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することは、ネットワークサービスに対して、一つ以上の仮想プライベートネットワークのルーティング及び転送インスタンス（ＶＲＦ）を定義するように、エッジネットワークの一部分に含まれる複数のプロバイダエッジルータを構成することをさらに含む、条項１に記載の方法。
【０２９９】
条項８
一つ以上のコンピュータプロセッサと、
一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、一つ以上のネットワークデータセンターのエッジネットワークの一部分の内部で、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を受信することであって、ネットワークサービス定義は、ネットワークサービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能であり、一つ以上のネットワークデータセンター内のエッジネットワークの一部分は、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を行わせる命令を備える、メモリと、を備える、ネットワークフィールドユニット。
【０３００】
条項９
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ネットワークサービスを提供するよう、エッジネットワークの一つ以上のある特定の物理デバイスを構成するように、ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ又はハードウェア構成ツールのうちの少なくとも一つによって使用可能である一つ以上の命令を、ＳＤＮコントローラ又はハードウェア構成ツールのうちの少なくとも一つに送信させる、命令を備える、条項８に記載のネットワークフィールドユニット。
【０３０１】
条項１０
一つ以上のネットワークデータセンターは地理的に散在し、ネットワークフィールドユニットを含む複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、エッジネットワークのそれぞれ一部分を制御する、条項８に記載のネットワークフィールドユニット。
【０３０２】
条項１１
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ＳＤＮコントローラ、ハードウェア構成ツール、又はインフラデータ収集ツールのうちの少なくとも一つから受信されるネットワークサービスに対して、性能データを監視することと、ネットワークサービスに対するサービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、性能の状況、又はＣＮＣシステムによって記憶されるネットワークテレメトリ及び分析データのうちの少なくとも一つと、性能データを比較することと、ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークサービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、少なくとも一つの修復操作を実行することと、を行わせる命令を備える、条項８に記載のネットワークフィールドユニット。
【０３０３】
条項１２
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークの異なる一部分を再構成することを含む、条項８に記載のネットワークフィールドユニット。
【０３０４】
条項１３
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークサービスに対するサービス要件が満たされないことを示す情報を、ＣＮＣシステムに送信させる、命令を備える、条項８に記載のネットワークフィールドユニット。
【０３０５】
条項１４
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ネットワークサービスに対して、一つ以上の仮想プライベートネットワークのルーティング及び転送インスタンス（ＶＲＦ）を定義するように、エッジネットワークの一部分に含まれる複数のプロバイダエッジルータを構成させる、命令を備える、条項８に記載のネットワークフィールドユニット。
【０３０６】
条項１５
実行されるとき、ネットワークフィールドユニットの少なくとも一つのプログラム可能なプロセッサに、一つ以上のネットワークデータセンターのエッジネットワークの一部分の内部で、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を受信することであって、ネットワークサービス定義は、ネットワークサービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能であり、一つ以上のネットワークデータセンター内のエッジネットワークの一部分は、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、ネットワークサービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を備える動作を実施させる、命令を備える、非一時的なコンピュータで読み取り可能な媒体。
【０３０７】
条項１６
実行されるとき、ネットワークフィールドユニットの少なくとも一つのプログラム可能なプロセッサに、ネットワークサービスを提供するよう、エッジネットワークの一つ以上のある特定の物理デバイスを構成するように、ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ又はハードウェア構成ツールのうちの少なくとも一つによって使用可能である一つ以上の命令を、ＳＤＮコントローラ又はハードウェア構成ツールのうちの少なくとも一つに送信すること、を備える動作を実施させる、命令を備える、条項１５に記載の非一時的なコンピュータで読み取り可能な媒体。
【０３０８】
条項１７
一つ以上のネットワークデータセンターは地理的に散在し、ネットワークフィールドユニットを含む複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、エッジネットワークのそれぞれ一部分を制御する、条項１５に記載の非一時的なコンピュータで読み取り可能な媒体。
【０３０９】
条項１８
実行されるとき、ネットワークフィールドユニットの少なくとも一つのプログラム可能なプロセッサに、ＳＤＮコントローラ、ハードウェア構成ツール、又はインフラデータ収集ツールのうちの少なくとも一つから受信されるネットワークサービスに対して、性能データを監視することと、ネットワークサービスに対するサービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、性能の状況、又はＣＮＣシステムによって記憶されるネットワークテレメトリ及び分析データのうちの少なくとも一つと、性能データを比較することと、ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークサービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、少なくとも一つの修復操作を実行することと、を備える動作を実施させる、命令を備える、条項１５に記載の非一時的なコンピュータで読み取り可能な媒体。
【０３１０】
条項１９
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークの異なる一部分を再構成することを含む、条項１５に記載の非一時的なコンピュータで読み取り可能な媒体。
【０３１１】
条項２０
実行されるとき、ネットワークフィールドユニットの少なくとも一つのプログラム可能なプロセッサに、ネットワークサービスに対するサービス要件が満たされないとの判定に応答して、ネットワークサービスに対するサービス要件が満たされないことを示す情報を、ＣＮＣシステムに送信すること、を備える動作を実施させる、命令を備える、条項１５に記載の非一時的なコンピュータで読み取り可能な媒体。
[ソフトウェア制御のクラウドエクスチェンジ]
【０３１２】
様々な実施例を以下の条項に記載する。以下の条項のいずれにおいて説明する実施例は、本明細書に記載する技術に従う、本開示を通して記載するその他の実施例のうちのいずれとも併用して組み込まれ実装されてもよい。
【０３１３】
条項１
プログラム可能なネットワークプラットフォーム（ＰＮＰ）によって、ＰＮＰにより制御される一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、ＰＮＰによって、ソフトウェアインタフェースを介して、一つ以上のネットワークデータセンターのエッジネットワーク内でネットワークサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ＰＮＰによって、サービス要求に基づき、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＰＮＰによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、少なくとも一つのネットワークフィールドユニットによって、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、少なくとも一つのネットワークフィールドユニットによって、サービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を含む、方法。
【０３１４】
条項２
ＰＮＰによって、少なくとも一つのネットワークフィールドユニットから受信されるサービスに対して、性能データを監視することと、ＰＮＰによって、サービスに対するサービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、サービスのサービス要件のうちの少なくとも一つを伴う性能データ、並びにＰＮＰによって記憶される、サービステレメトリ及び分析データを比較することと、サービスに対するサービス要件が満たされないとの判定に応答して、ＰＮＰによって、サービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、ＰＮＰによって、少なくとも一つの修復操作を実行することと、をさらに含む、条項１に記載の方法。
【０３１５】
条項３
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークのその他の相互接続資産の異なる一部分を再構成するように、少なくとも一つのネットワークフィールドユニットに、一つ以上の命令を送信することを含む、条項２に記載の方法。
【０３１６】
条項４
一つ以上のサービス要件は、サービスの種類、サービスの地理的な場所、サービスの帯域幅、帯域幅がバースト可能か否か、Ｅｘｃｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ（ＥＩＲ）、帯域幅に対する最大遅延、サービスの最小可用性レベル、サービスのクラウドサービスプロバイダ、又はサービスに対する一つ以上のセキュリティプロパティのうちの少なくとも一つを規定する、条項１に記載の方法。
【０３１７】
条項５
サービスは、レイヤ３の相互接続サービス、ファイアウォールサービス、データ記憶サービス、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）サービス、分析サービス、ネットワークアドレス変換サービス、又はディープパケットインスペクションサービスのうちの少なくとも一つを備える、条項１に記載の方法。
【０３１８】
条項６
少なくとも一つのネットワークフィールドユニットに応答して、エッジネットワークの一部分でサービスを構成することと、ＰＮＰによって、サービスの要求者にサービスをプロビジョニングする料金を示す、支払請求情報を記憶することと、ＰＮＰによって、サービスの要求者に支払請求情報の指標を送信することと、をさらに含む、条項１に記載の方法。
【０３１９】
条項７
一つ以上のネットワークデータセンターは地理的に散在し、複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、複数のネットワークデータセンターのうちの一つのそれぞれの相互接続資産を制御する、条項１に記載の方法。
【０３２０】
条項８
サービス要求は、相互接続資産のある特定の物理デバイスを指定せず、ネットワークサービス定義は、相互接続資産のある特定の物理デバイスを構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、条項７に記載の方法。
【０３２１】
条項９
第１のクラウドサービスプロバイダから始まる第１のクラウドサービストラフィック、及び第２のクラウドサービスプロバイダから始まる第２のクラウドサービストラフィックを集約するように、エッジネットワークの一部分を構成することと、集約されたクラウドサービストラフィックを送達するように、エッジネットワークの一部分を構成することと、をさらに含む、条項１に記載の方法。
【０３２２】
条項１０
エッジネットワークの一つ以上のある特定の物理デバイスを構成することは、サービスを提供するよう、エッジネットワークの一つ以上のある特定の物理デバイスを構成するように、ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ又はハードウェア構成ツールのうちの少なくとも一つによって使用可能である一つ以上の命令を、ネットワークフィールドユニットによって、ＳＤＮコントローラ又はハードウェア構成ツールのうちの少なくとも一つに送信することをさらに含む、条項１に記載の方法。
【０３２３】
条項１１
一つ以上のネットワークデータセンターは地理的に散在し、ネットワークフィールドユニットを含む複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、複数のネットワークデータセンターのうちの一つのそれぞれの相互接続資産を制御する、条項１に記載の方法。
【０３２４】
条項１２
サービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することは、サービスに対して、一つ以上の仮想プライベートネットワークのルーティング及び転送インスタンス（ＶＲＦ）を定義するように、エッジネットワークの一部分に含まれる複数のプロバイダエッジルータを構成することをさらに含む、条項１に記載の方法。
【０３２５】
条項１３
一つ以上のコンピュータプロセッサと、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、ＰＮＰによって制御される、一つ以上のネットワークデータセンターのエッジネットワーク内で、サービス構成のサービス要求を受信するように、ソフトウェアインタフェースを提供することと、一つ以上のネットワークデータセンターのエッジネットワーク内でネットワークサービスを構成するように、サービス要求を受信することであって、一つ以上のネットワークデータセンター内のエッジネットワークは、一つ以上のネットワークデータセンターの一つ以上のスイッチングファブリックを通って接続する、ことと、ネットワークサービスを実装するように、一つ以上のサービス要件を規定する、ネットワークサービス定義を生成することと、ＰＮＰによって、ネットワークサービス定義に基づき、サービス要求にサービスを提供できる、少なくとも一つのネットワークフィールドユニットを判定することであって、ネットワークフィールドユニットは、エッジネットワークの一部分を制御し、ネットワークサービス定義は、サービスを提供するよう、エッジネットワークの一部分を構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、ことと、ネットワークサービス定義に基づき、サービスを提供するように使用可能なエッジネットワークの、一つ以上のある特定の物理デバイスを判定することと、サービスを提供するように、エッジネットワークの一つ以上のある特定の物理デバイスを構成することと、を行わせる命令を備える、メモリとを備える、プログラム可能なネットワークプラットフォーム（ＰＮＰ）。
【０３２６】
条項１４
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、少なくとも一つのネットワークフィールドユニットから受信されるサービスに対して、性能データを監視することと、サービスに対するサービス要件が、エッジネットワークの一部分の性能によって満たされるか否かを判定するように、サービスのサービス要件のうちの少なくとも一つを伴う性能データ、並びにＰＮＰによって記憶される、サービステレメトリ及び分析データを比較することと、サービスに対するサービス要件が満たされないとの判定に応答して、サービスに対するサービス要件を満たすように、少なくとも一つの修復操作を判定することと、少なくとも一つの修復操作を実行することと、を行わせる命令を備える、条項１３に記載のＰＮＰ。
【０３２７】
条項１５
少なくとも一つの修復操作を実行することは、エッジネットワークの少なくとも一部分、又はエッジネットワークのその他の相互接続資産の異なる一部分を再構成するように、少なくとも一つのネットワークフィールドユニットに、一つ以上の命令を送信することを含む、条項１４に記載のＰＮＰ。
【０３２８】
条項１６
一つ以上のサービス要件は、サービスの種類、サービスの地理的な場所、サービスの帯域幅、帯域幅がバースト可能か否か、Ｅｘｃｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ（ＥＩＲ）、帯域幅に対する最大遅延、サービスの最小可用性レベル、サービスのクラウドサービスプロバイダ、又はサービスに対する一つ以上のセキュリティプロパティのうちの少なくとも一つを規定する、条項１３に記載のＰＮＰ。
【０３２９】
条項１７
サービスは、レイヤ３の相互接続サービス、ファイアウォールサービス、データ記憶サービス、Ｓｏｆｔｗａｒｅ‐ａｓ‐ａ‐Ｓｅｒｖｉｃｅ（ＳａａＳ）サービス、分析サービス、ネットワークアドレス変換サービス、又はディープパケットインスペクションサービスのうちの少なくとも一つを備える、条項１３に記載のＰＮＰ。
【０３３０】
条項１８
メモリは、一つ以上のコンピュータプロセッサによって実行されるとき、一つ以上のコンピュータプロセッサに、エッジネットワークの一部分で、サービスを構成する少なくとも一つのネットワークフィールドユニットに応答して、サービスの要求者にサービスをプロビジョニングする料金を示す、支払請求情報を記憶することと、サービスの要求者に支払請求情報の指標を送信することと、を行わせる命令を備える、条項１３に記載のＰＮＰ。
【０３３１】
条項１９
一つ以上のネットワークデータセンターは地理的に散在し、複数のネットワークフィールドユニットは、それぞれ一つ以上の地理的に散在するネットワークデータセンターを伴って地理的に散在し、複数のネットワークフィールドユニットの各々は、複数のネットワークデータセンターのうちの一つのそれぞれの相互接続資産を制御する、条項１３に記載のＰＮＰ。
【０３３２】
条項２０
サービス要求は、相互接続資産のある特定の物理デバイスを指定せず、ネットワークサービス定義は、相互接続資産のある特定の物理デバイスを構成するように、少なくとも一つのネットワークフィールドユニットによって使用可能である、条項１３に記載のＰＮＰ。
【０３３３】
条項１Ａ
本開示に記載する方法のいかなる組み合わせ。
【０３３４】
条項２Ａ
条項１Ａの方法を実施するように構成される、少なくとも一つのコンピュータデバイス。
【０３３５】
先行セクションのいずれにおける技術を含む、本明細書に記載する技術は、ハードウェア、ソフトウェア、ファームウェア、又はいかなるそれらの組み合わせにおいて実装されてもよい。モジュール、ユニット、又は構成要素として記載する様々な特徴は、統合された論理デバイスにおいて、若しくは個別であるが相互運用可能な論理デバイスとして別個に、又はその他のハードウェアデバイスにおいて共に実装されてもよい。いくつかの場合では、電子回路の様々な特徴は、集積回路チップ又はチップセットなど、一つ以上の集積回路デバイスとして実装されてもよい。
【０３３６】
ハードウェアの中に実装される場合には、本開示は、例えば、プロセッサ、又は集積回路チップ若しくはチップセットなどの集積回路デバイスといった装置を対象としてもよい。代替として又は追加として、ソフトウェア又はファームウェアにおいて実装される場合、技術は、実行されるとき、上に記載する方法のうちの一つ以上をプロセッサに実施させる命令を備える、コンピュータで読み取り可能なデータ記憶媒体によって、少なくとも一部実現されてもよい。例えば、コンピュータで読み取り可能なデータ記憶媒体は、プロセッサによる実行の当該命令を記憶してもよい。
【０３３７】
コンピュータで読み取り可能な媒体は、包装資材を含んでもよい、コンピュータプログラム製品の一部を形成してもよい。コンピュータで読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能でプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気又は光学データ記憶媒体、及び同種のものなど、コンピュータデータ記憶媒体を備えてもよい。いくつかの実施例では、製造品は、一つ以上のコンピュータで読み取り可能な記憶媒体を備えてもよい。
【０３３８】
いくつかの実施例では、コンピュータで読み取り可能な記憶媒体は、非一時的な媒体を備えてもよい。用語「非一時的」は、記憶媒体が、搬送波又は伝播信号においては具体化されないことを示してもよい。ある実施例では、非一時的な記憶媒体は、経時変化し得るデータを（例えば、ＲＡＭ又はキャッシュの中に）記憶してもよい。
【０３３９】
コード又は命令は、一つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はその他の同等の集積回路若しくは個別の論理回路など、一つ以上のプロセッサを含む処理回路によって実行される、ソフトウェア及び／又はファームウェアであってもよい。したがって、本明細書で使用する通り、用語「プロセッサ」は、前述の構造のうちのいずれか、又は本明細書に記載する技術の実装に好適ないかなる他の構造を指してもよい。加えて、いくつかの態様では、本開示に記載の機能性は、ソフトウェアモジュール又はハードウェアモジュール内に提供されてもよい。
【０３４０】
様々な実施形態について記載してきた。これらの及びその他の実施形態は、以下の実施例の範囲内である。
【符号の説明】
【０３４１】
１００    クラウドエクスチェンジ
１０６    回線事業者、ネットワークサービスプロバイダ
１０６Ａ    ネットワークサービスプロバイダ（ＮＳＰ）、回線事業者
１０６Ｂ    ネットワークサービスプロバイダ（ＮＳＰ）、回線事業者
１０６Ｃ    ＮＳＰ
１０８    クラウドの顧客
１０８Ａ    クラウドの顧客
１０８Ｂ    クラウドの顧客
１０８Ｃ    クラウドの顧客
１０８Ｄ    クラウドの顧客
１１０    クラウドサービスプロバイダ
１１０Ａ〜Ｎ    クラウドサービスプロバイダ
１１４    サービスインタフェース
１２０    プログラム可能なネットワークプラットフォーム
１２８    クラウドエクスチェンジポイント
１２８Ａ    クラウドエクスチェンジポイント
１２８Ｂ    クラウドエクスチェンジポイント
１２８Ｃ    クラウドエクスチェンジポイント
２０１    データセンター
２０４    プライベートネットワーク，回線事業者ネットワーク
２０４Ａ    ＮＳＰネットワーク
２０４Ｂ    ＮＳＰネットワーク
２０４Ｃ    ＮＳＰネットワーク
２０４Ｄ    顧客ネットワーク
２０４Ｅ    顧客ネットワーク
２２２    ネットワークインフラ
３００    データセンター
３０１    インターネットプロトコル／マルチプロトコルラベルスイッチング（ＩＰ／ＭＰＬＳ）ファブリック
３０２    ＰＥルータ
３０２Ａ    ＰＥルータ、クラウドサービスプロバイダネットワーク
３０２Ｂ    ＰＥルータ
３０３    クラウドエクスチェンジポイント
３０４    ＰＥルータ
３０４Ａ    ＰＥルータ
３０４Ｂ    ＰＥルータ
３０８    顧客ネットワーク
３０８Ａ    顧客ネットワーク
３０８Ｂ    顧客ネットワーク
３０８Ｃ    顧客ネットワーク
３１０    ＰＥルータ
３１０Ａ    プロバイダエッジ／自律システムの境界ルータ（ＰＥ／ＡＳＢＲ）
３１０Ｂ    プロバイダエッジ／自律システムの境界ルータ（ＰＥ／ＡＳＢＲ）
３１１    顧客のエッジ（ＣＥ）デバイス、ＰＥルータ
３１２    ＰＥルータ
３１２Ａ    ＰＥルータ
３１２Ｂ    ＰＥルータ
３１２Ｃ    ＰＥルータ
３１２Ｄ    ＰＥルータ
３１８    ＭＰ‐ｉＢＧＰメッシュ
３２０    クラウドサービスプロバイダネットワーク
３２０Ａ    クラウドサービスプロバイダネットワーク
３２０Ｂ    クラウドサービスプロバイダネットワーク
４０２Ａ    ＶＲＦ
４０２Ｂ    ＶＲＦ
４０４Ａ    ＶＲＦ
４０４Ｂ    ＶＲＦ
１０００２    集中ネットワーク制御（ＣＮＣ）システム
１０００４    ネットワークフィールドユニット（ＮＦＵ）
１０００６    ソフトウェア定義ネットワーク（ＳＤＮ）コントローラ
１０００８    ハードウェア構成ツール
１００１０    インフラデータ収集ツール
１００１２    サービス選択ツール
１００１４    サービスプロビジョニングエンジン
１００１６    サービステレメトリ及び分析データ（ＳＴＡＤ）
１００１８    財務論理
１００２０    ＩＴゲートウェイ
１００２４    ネットワークプロビジョニングエンジン
１００２６    ネットワークテレメトリ及び分析データ（ＮＴＡＤ）
１００２８    ネットワーク保証エンジン
１００３０    サービス保証エンジン
１０４００    サービスポリシー管理ツール
１０４０２    ネイティブサービス
１０４０２Ａ    ポートサービス
１０４０２Ｂ    レイヤ３（Ｌ３）接続サービス
１０４０２Ｃ    レイヤ２（Ｌ２）接続サービス
１０４０２Ｄ    伝送レイヤサービス、Ｌ３＋サービス
１０４０４    第三者オーケストレーションモジュール
１０４０４Ａ    第三者オーケストレーションモジュール
１０４０６    サービステレメトリ及び分析データ（ＳＴＡＤ）、動作
１０４０８    動作
１０４１０    動作、ネットワークプロビジョニングデータを生成
１０４１２    ビジネスゲートウェイ
１０６０２    動作
１０６０４    動作
１０６０６    動作、修復操作
１０６０８    動作
１１０００    動作
１１００２    動作
１１００４    動作
１１００６    動作
１１００８    動作
１１６００    プログラム可能なネットワークプラットフォーム
１１６０１    集中ネットワーク制御（ＣＮＣ）システム
１１６０２    ユーザポータル
１１６０４    ＩＴシステム
１１６１４    データファブリック
１１６１６    クラウドサービスプロバイダ
１１６１８    エッジネットワーク制御モジュール
１１６２０    コアネットワーク制御モジュール
１２００４    ユーザインタフェース要素
１２００６    ユーザインタフェース要素
１２００８    インターネットプロトコル（ＩＰ）アドレス、ユーザインタフェース要素
１２０１０    ユーザインタフェース要素
１２０１２    ユーザインタフェース要素
１２０１４    ユーザインタフェース要素
１２０１６    ユーザインタフェース要素
１２０１８    ユーザインタフェース要素
１２０２０    ユーザインタフェース要素
１２０２２    ユーザインタフェース要素、インターネットプロトコル（ＩＰ）アドレス
１２０２４    ユーザインタフェース要素
１２０２６    ユーザインタフェース要素
１２０２８    ユーザインタフェース要素
１２０３０    ユーザインタフェース要素
１２２００    ユーザインタフェース
１２２０２    サイドメニュー
１２２０４    ユーザインタフェース要素
１２４００    ユーザインタフェース
１２４０２    ユーザインタフェース要素
１２４０６    ユーザインタフェース要素
１２５００    プログラム可能なネットワークプラットフォーム
１２５０２    ユーザポータル
１２５０４    集中ネットワーク制御構成要素、ＣＮＣ
１２５０８    ＮＦＵ
１２５０８Ａ    ネットワークフィールドユニット
１２５０８Ｂ    ネットワークフィールドユニット
１２５０８Ｃ    ネットワークフィールドユニット
１２６００    エッジネットワーク
１２６０２    ＰＥルータ
１２６０４    顧客
１２６０６    クラウドサービスプロバイダ
１２６０６Ａ    クラウドサービスプロバイダ
１２６０６Ｂ    クラウドサービスプロバイダ
１２６０６Ｃ    クラウドサービスプロバイダ
１２６０６Ｄ    クラウドサービスプロバイダ
１２６１２    サービストラフィック
１２６１４    仮想ＮＡＴ（ｖＮＡＴ）サービス
１２６１６    仮想ディープパケットインスペクション（ｖＤＰＩ）サービス
１２６１８    仮想ファイアウォール（ｖＦＷ）サービス
１２６２２    転送要素
１２６２２Ａ    転送要素
１２６２２Ｂ    転送要素
１２６４０    サーバ
１２６４０Ａ    サーバ
１２６４０Ｂ    サーバ
１２７００    クラウドエクスチェンジ開発者（ＣＸＡＰＩ）
１２７０２    顧客ポータル
１２７０４    メタコンソール
１２７０６    ビジネスアプリケーション
１２７１０    サービスＡＰＩ
１２８００    ＣＳＰオーケストレーションシステム
１２８０２    ＡＰＩゲートウェイ
１２８０４    動作ポータル
１２８１０    プラグイン
１２８２０    サービスＡＰＩ
１３５００    コンピュータデバイス
１３５０２    プロセッサ、構成要素
１３５０４    入力デバイス、構成要素
１３５０６    通信部、構成要素
１３５０８    記憶デバイス、構成要素
１３５１０    ユーザインタフェースデバイス、構成要素
１３５１２    出力デバイス、構成要素
１３５１４    通信チャネル
１３５１６    オペレーティングシステム
１３５２２    アプリケーション
１３５２４    プログラム可能なネットワークプラットフォームアプリケーション
１３５５０    集中ネットワーク制御アプリケーション、ＣＮＣ
１３５５２    ネットワークフィールドユニット、ＮＦＵ
【図１】
0006495949.tif 000002
【図２】
0006495949.tif 000003
【図３Ａ】
0006495949.tif 000004
【図３Ｂ】
0006495949.tif 000005
【図４】
0006495949.tif 000006
【図５】
0006495949.tif 000007
【図６】
0006495949.tif 000008
【図７】
0006495949.tif 000009
【図８】
0006495949.tif 000010
【図９】
0006495949.tif 000011
【図１０】
0006495949.tif 000012
【図１１】
0006495949.tif 000013
【図１２】
0006495949.tif 000014
【図１３】
0006495949.tif 000015
【図１４Ａ】
0006495949.tif 000016
【図１４Ｂ】
0006495949.tif 000017
【図１５】
0006495949.tif 000018
【図１６】
0006495949.tif 000019
【図１７】
0006495949.tif 000020