(57)【要約】【課題】改善された仮想ネットワーク・サービスを可能にする。【解決手段】オブジェクト指向のネットワーク仮想化が、ソフトウェア・プログラムされるネットワーキング・オペレーティング・システム（SPN  OS）を使って仮想ネットワーク・オブジェクト（VNO）を生成し、動作させる。VNOは、SPN  OSのもとで提供されるある仮想ネットワーク・サービスの完全な表現であってもよい。VNOは、一意的な識別情報、プロパティを、該VNOによってカプセル化される機能を実行するためのメソッドの内的な集合とともに有していてもよい。VNOは、持続性および自律制御を示してもよく、改善された仮想ネットワーク・サービスを可能にする。【選択図】図２
2015204614.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワーク・サービスを提供する方法であって：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを前記物理的ネットワークに送ることができるようにする段階とを含み、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
方法。
【請求項２】
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
請求項１記載の方法。
【請求項３】
前記仮想ネットワーク・サービスが：
前記物理的ネットワークのトポロジー仮想化；および
前記物理的ネットワークのアドレス空間仮想化を含む、
請求項１記載の方法。
【請求項４】
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
請求項１記載の方法。
【請求項５】
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
前記物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
前記物理的ネットワークについての保護サービス・パターン；
前記物理的ネットワークについての回復サービス・パターン；
前記物理的ネットワークについてのスケジューリングされたサービス；
前記物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
請求項４記載の方法。
【請求項６】
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて前記物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とをさらに含む、
請求項２記載の方法。
【請求項７】
仮想ネットワーク・サービスを提供するためのオブジェクト指向のネットワーク仮想化（OONV）コントローラを有する物理的ネットワークであって、前記OONVコントローラは：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、当該物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを当該物理的ネットワークに送ることができるようにする段階とを実行するためのものであり、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
物理的ネットワーク。
【請求項８】
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
請求項７記載の物理的ネットワーク。
【請求項９】
前記仮想ネットワーク・サービスが：
当該物理的ネットワークのトポロジー仮想化；および
当該物理的ネットワークのアドレス空間仮想化を含む、
請求項７記載の物理的ネットワーク。
【請求項１０】
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
請求項７記載の物理的ネットワーク。
【請求項１１】
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
当該物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
当該物理的ネットワークについての保護サービス・パターン；
当該物理的ネットワークについての回復サービス・パターン；
当該物理的ネットワークについてのスケジューリングされたサービス；
当該物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
請求項１０記載の物理的ネットワーク。
【請求項１２】
前記OONVコントローラがさらに：
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて当該物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とのためのものである、
請求項８記載の物理的ネットワーク。
【請求項１３】
前記OONVコントローラが、ネットワーク要素またはハイパーバイザー上で実行される仮想マシンの一方である、請求項７記載の物理的ネットワーク。
【請求項１４】
仮想ネットワーク・サービスを提供するためのオブジェクト指向のネットワーク仮想化（OONV）コントローラであって、当該OONVコントローラは：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを前記物理的ネットワークに送ることができるようにする段階とを実行するためのものであり、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
OONVコントローラ。
【請求項１５】
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
請求項１４記載のOONVコントローラ。
【請求項１６】
前記仮想ネットワーク・サービスが：
前記物理的ネットワークのトポロジー仮想化；および
前記物理的ネットワークのアドレス空間仮想化を含む、
請求項１４記載のOONVコントローラ。
【請求項１７】
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
請求項１４記載のOONVコントローラ。
【請求項１８】
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
前記物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
前記物理的ネットワークについての保護サービス・パターン；
前記物理的ネットワークについての回復サービス・パターン；
前記物理的ネットワークについてのスケジューリングされたサービス；
前記物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
請求項１７記載のOONVコントローラ。
【請求項１９】
当該OONVコントローラがさらに：
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて前記物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とのためのものである、
請求項１５記載のOONVコントローラ。
【請求項２０】
当該OONVコントローラが、ネットワーク要素またはハイパーバイザー上で実行される仮想マシンの一方である、請求項１５記載のOONVコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は2014年4月10日に出願された、「オブジェクト指向のネットワーク仮想化」と題する米国仮出願第61/977,991号の米国特許法第１１９条（ｅ）に基づく恩恵を主張するものである。
【０００２】
開示の分野
本開示は通信ネットワークに、より詳細にはオブジェクト指向のネットワーク仮想化に関する。
【背景技術】
【０００３】
ますます多くのアプリケーションがデータセンター・インフラストラクチャー（「クラウド」と称される）からネットワーク化されたサービス（「クラウド・アプリケーション」と称される）として提供される際、クラウド・アプリケーションは共有される物理的インフラストラクチャー上で実行され、マルチテナントクラウドにおける「テナント」と見ることができる。たとえば、クラウドは、各データセンター内部のコンピューティング資源およびデータセンター内ネットワークを、地理的に分散したデータセンターを接続するデータセンター間光ネットワークとともに含む分散式のデータ・センター・インフラストラクチャーを表わすことがある。コンピューティング資源の仮想化は、クラウドのためのキー技術として台頭しており、複数のテナントが効率的にコンピューティング資源およびネットワーク資源の両方を共有できるようにしうる。コンピューティング資源の仮想化における標準的な抽象化アーキテクチャは、ハイパーバイザー上で実行される仮想マシン（VM:  virtual  machine）に関わる。抽象化（abstraction）は、選択基準に重要でない他の特性は隠されたまたは要約されたままで、特定の基準または特性を用いて選択されるエンティティの表現であってもよい。本稿での用法では、「仮想化（virtualization）」は、選択基準が資源を特定のクライアントまたはアプリケーションの専用にすることである抽象化を表わしうる。
【０００４】
ソフトウェア定義されるネットワーキング（SDN:  software-defined  networking）は、ネットワーク仮想化および抽象化に向けた重要なステップを表わし、論理ネットワーク・エンティティが、ユーザー入力から手動でではなく、ソフトウェア命令を使って自動的にインスタンス化されることを許容しうる。たとえば、オープン・ネットワーク・ファウンデーション（ONF:  Open  Network  Foundation）によって管理されるOpenFlow（オープンフロー）通信プロトコルを使うと、トラフィック・フロー・エンティティは、ヘッダ・スペースにおいて定義されたレイヤー識別子の任意の組み合わせを使ってインスタンス化されうる。OpenFlowは、トラフィック・フローを定義するために、さまざまなレイヤーにおいてトラフィック識別子（インターネット・プロトコル（IP）アドレス、媒体アクセス・コントローラ（MAC）アドレス、ポート・アドレスなど）のさまざまな組み合わせを使用しうる。次いで、諸物理的スイッチへの該トラフィック・フローに関連するパケット転送規則をインストールし、構成設定することによって、OpenFlowコントローラは、トラフィック・フロー・エンティティが、該物理的スイッチを含むネットワークを通じてルーティングされる経路をインスタンス化することを保証しうる。
【０００５】
ハイパーバイザー上で実行されるVMといくらか似通った仕方で、OpenFlowのFlowVisor（フローバイザー）は、仮想ネットワーク・エンティティ（「スライス」と称される）をインスタンス化することを、複数のトラフィック・フロー・エンティティを所与のスライスと関連付けることによって行ないうる。それにより、各スライスは別個のテナント・コントローラによって管理され、テナントは、ネットワーク・トラフィックの一部分および物理的ネットワークのサブセットに対して制御することができる。OpenFlowでは、各ネットワーク・スイッチについて複数のフロー空間が定義されうる。各フロー空間はスライスと関連付けられ、該スライスは別個のコントローラによって管理される。FlowVisorは、OpenFlowメッセージを途中で受け止め、書き換えることによって、あるスライスにおけるアクションが他のスライスに影響しないことを保証しうる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、SDN一般（特にOpenFlow）は、ある種のネットワーク資源については所望されるレベルの抽象化を提供しないことがある。たとえば、SDNは、論理ネットワーク・エンティティについてプロパティを定義してもよいが、論理ネットワーク・エンティティが独自の挙動をもつことは許容しないことがある。SDNとともに典型的に使われる中央集中式の制御アーキテクチャのため、（パケット転送規則のような）論理ネットワーク・エンティティの挙動は、論理ネットワーク・エンティティ自身によってではなく、SDNコントローラによって外部的に制御されることがある。仮想化との類推により、SDNにおける論理ネットワーク・エンティティのインスタンス化は、ネットワーク資源を論理ネットワーク・エンティティに割り当て（VMの生成と同様）、一方では論理ネットワーク・エンティティが独立に処理機能を立ち上げるのは防止してもよい（各VMの各コンピューティング・タスクがハイパーバイザーから外部的に立ち上げられるよう強制するのと類似）。このように、論理ネットワーク・エンティティのインスタンス化はSDNを使うスケーラビリティ課題に関連しうる。他の例の中では、回線指向の制御および光レイヤー制約の導入について、SDNのある種の制限がさらに観察されうる。よって、幅広い多様な抽象化をもつ多数の同時並行の仮想ネットワーク・エンティティをサポートしつつ、各仮想ネットワークが自分自身のネットワーク・スライス上できわめて柔軟かつ高速な制御論理を実行することを許容するために、SDNよりも効率的でありスケーラブルな解決策が所望されうる。
【課題を解決するための手段】
【０００７】
ある側面では、仮想ネットワーク・サービスを提供するための開示される方法は、ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化することを含む。仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わしていてもよい。仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定してもよい。本方法は、オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが仮想ネットワーク・オブジェクトと通信できるようにすることを含んでいてもよい。本方法はさらに、オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを物理的ネットワークに送ることができるようにすることを含んでいてもよい。仮想ネットワーク・オブジェクトは、識別子、プロパティおよび該仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含んでいてもよい。
【０００８】
個別的な諸実施形態では、仮想ネットワーク・オブジェクトをインスタンス化する方法動作は、オペレーティング・システムにおいて、仮想ネットワーク・オブジェクトをインスタンス化するためにユーザーからのインスタンス化コマンドを受領することを含む。インスタンス化コマンドは、仮想ネットワーク・オブジェクトの属性（アトリビュート）を指定するパラメータを含んでいてもよい。インスタンス化コマンドに応答して、本方法は、オペレーティング・システムに含まれる裁定器によって、仮想ネットワーク・オブジェクトの検証を実行することを含んでいてもよい。検証は、仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む。仮想ネットワーク・オブジェクトの検証が成功のときは、本方法は、裁定器によって、仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、仮想ネットワーク・オブジェクトについてのサービス提案を生成することを含んでいてもよい。
【０００９】
追加的な開示される側面は、仮想ネットワーク・サービスを提供するためのオブジェクト指向のネットワーク仮想化（OONV:  object  oriented  network  virtualization）コントローラおよび本稿に記載されるようなOONVコントローラを含むネットワークを含む。
【図面の簡単な説明】
【００１０】
本開示およびその特徴および利点のより完全な理解のために、ここで、付属の図面との関連で参酌される以下の記述が参照される。
【図１】ネットワークのある実施形態の選択された要素のブロック図である。
【図２】オブジェクト指向のネットワーク仮想化のためのネットワーク・アーキテクチャのある実施形態の選択された要素のブロック図である。
【図３】オブジェクト指向のネットワーク仮想化を実装する方法のある実施形態の選択された要素のフローチャートである。
【図４】仮想ネットワーク・オブジェクトをインスタンス化する方法のある実施形態の選択された要素のフローチャートである。
【図５】OONVコントローラのある実施形態の選択された要素のブロック図である。
【発明を実施するための形態】
【００１１】
以下では、開示される主題の議論を助けるため、例として、詳細が記述される。しかしながら、開示される実施形態は例示的なものであり、あらゆる可能な実施形態を網羅したものではないことは当業者には明白なはずである。
【００１２】
本開示を通じて、参照符号のハイフン付きの形は要素の個別的なインスタンスを指し、該参照符号のハイフンなしの形は該要素を一般的または集団的に指す。よって、例として（図示せず）、装置「１２−１」は、装置「１２」とまとめて称されうる装置クラスのあるインスタンスを指す。それらの装置の任意のものは一般的に装置「１２」と称されうる。図面および本記述において、同様の符号は同様の要素を表わすことが意図されている。
【００１３】
ここで図面に目を転じると、図１は、ネットワーク１００のある実施形態の選択された要素を示すブロック図である。ある種の実施形態では、ネットワーク１００はイーサネット〔登録商標〕ネットワークであってもよい。ネットワーク１００は、ネットワーク１００の諸コンポーネントによって通信される一つまたは複数の信号を搬送するよう機能できる、一つまたは複数の伝送媒体１２を含んでいてもよい。伝送媒体１２によって一緒に結合されるネットワーク１００の諸コンポーネントは、複数のネットワーク要素１０２を含んでいてもよい。図示したネットワーク１００では、各ネットワーク要素１０２は四つの他のノードに結合されている。しかしながら、ネットワーク要素１０２の任意の好適な数の任意の好適な構成がネットワーク１０を作り出していてもよい。ネットワーク１００はメッシュ・ネットワークとして示されているが、ネットワーク１００はリング・ネットワーク、ポイントツーポイント・ネットワークまたは他の任意の好適なネットワークもしくはネットワークの組み合わせとして構成されてもよい。ネットワーク１０は、短距離都市圏ネットワーク、長距離都市間ネットワークまたは他の任意の好適なネットワークもしくはネットワークの組み合わせにおいて使用されうる。
【００１４】
各伝送媒体１２は、ネットワーク装置１０２を互いに通信上結合し、対応するネットワーク装置１０２の間で情報を通信するよう構成された任意のシステム、デバイスまたは装置を含んでいてもよい。たとえば、伝送媒体１２は、光ファイバー、イーサネット〔登録商標〕ケーブル、T1ケーブル、WiFi信号、ブルートゥース信号および／または他の好適な媒体を含んでいてもよい。
【００１５】
ネットワーク１００は、伝送媒体１２を通じて情報または「トラフィック」を通信してもよい。本稿での用法では、「トラフィック」は、ネットワーク１００において伝送、記憶またはソートされる情報を意味する。そのようなトラフィックは、オーディオ、ビデオ、テキストおよび／または他の任意の好適なデータをエンコードするよう構成された光信号または電気信号を含んでいてもよい。データは、同期的または非同期的な仕方で伝送されてもよく、決定論的に（「リアルタイム」とも称される）および／または統計的に伝送されてもよい。個別的な実施形態では、トラフィックは、限定するものではないがインターネット・プロトコル（IP）を含む好適な通信プロトコルを介して通信されてもよい。さらに、ネットワーク１００を介して通信されるトラフィックは、フレーム、パケットの形に構造化されたまたは構造化されていないビットストリームであることを含むがそれに限られない任意の適切な仕方で構成されてもよい。
【００１６】
ネットワーク１００における各ネットワーク要素１０２は、トラフィックを送信および受信するよう動作可能な任意の好適なシステムを含んでいてもよい。図示した実施形態では、各ネットワーク要素１０２は、一つまたは複数の他のネットワーク要素１０２に直接トラフィックを送信し、該一つまたは複数の他のネットワーク要素１０２から直接トラフィックを受信するよう動作可能であってもよい。
【００１７】
本開示の範囲から外れることなく、ネットワーク１００に修正、追加または省略がなされてもよい。記載されるネットワーク１００のコンポーネントおよび要素は、具体的なニーズに応じて統合されたり分離されたりしてもよい。さらに、ネットワーク１００の動作はより多くの、より少数のまたは他のコンポーネントによって実行されてもよい。
【００１８】
動作では、ネットワーク１００は、本稿に記載されるオブジェクト指向の（OO:  object-oriented）ネットワーク仮想化を用いてもよい。特に、ネットワーク１００は、ソフトウェア・プログラムされるネットワーキング（SPN:  software-programmed  networking）のために有効にされてもよい。SPNは、仮想ネットワーク・オブジェクト（VNO:  virtual  network  object）である仮想ネットワーク・エンティティの生成を含み、SPNオペレーティング・システムを実行する（図２参照）。SPNオペレーティング・システムはネットワーク・コントローラによって実行されてもよい。各VNOは、所望に応じて、一意的な識別情報、プロパティおよび挙動を有していてもよい。OpenFlowを使ってたとえばSDNによって生成されるフロー・エンティティのような論理ネットワーク・エンティティとは対照的に、本稿に記載されるOOネットワーク仮想化は、VNOのためのプロパティおよび挙動の両方を定義しうる。VNOの挙動は、それによりVNOが内的に機能を実行できるところのメソッドの集合を表わしていてもよい。さらに、VNOについての持続性および自律制御が本稿に記載されるOOネットワーク仮想化では実装されてもよい。VNOの持続性（persistence）は、他の機能の中でも、スケジューリング（scheduling）、保護（protection）、回復（restoration）またはそれらの組み合わせのような回線指向の機能のネイティブなサポートを提供してもよい。VNOの自律制御は、他の型の制御の中でも、自己モニタリング、自己適応、自己最適化またはそれらの組み合わせを含んでいてもよい。
【００１９】
ここで図２を参照するに、OOネットワーク仮想化（OONV）アーキテクチャ２００のある実施形態の選択された要素のブロック図が示されている。図２のOONVアーキテクチャ２００は、たとえばネットワーク１００（図１）において、OONVコントローラ（図５）を使って実装されてもよい。
【００２０】
図２では、OONVアーキテクチャ２００はソフトウェア・プログラムされるネットワーキング（SPN）オペレーティング・システム（OS）２０２を含んでいてもよく、これはOONVのためのコア・プラットフォームを表わしていてもよい。種々の実施形態において、SPN  OS  ２０２はOONVコントローラを使って、論理的に中央集中化された専用の諸サーバーおよび対応する諸VMを使って、一つまたは複数のネットワーク要素１０２を使って実行されてもよく、あるいはネットワーク機能仮想化（NFV:  network  function  virtualization）を使ってネットワーク機能として実装されてもよい。
【００２１】
図２に示されるように、OONVアーキテクチャ２００は、SPN  OS  ２０２によってサポートされうる根底にあるネットワークの種々の型をサポートしてもよい。本稿での用法では、「SPN対応ネットワーク２０４」は、SPN  OS  ２０２によって動作させられ、管理される物理的ネットワーク（または仮想化された物理的ネットワーク）を表わしてもよい。ある種の実施形態では、SPN対応ネットワーク２０４は、階層的なネットワーク・アーキテクチャまたは再帰的なネットワーク・アーキテクチャまたはそれらの組み合わせ（図示せず）を表わしていてもよい。たとえば、下位レベルのSPN  OSが関連する物理的ネットワークを管理してもよく、上位レベルのSPN  OSに対して仮想ネットワークを呈示してもよい。一方、該上位レベルのSPN  OSは該下位レベルの仮想ネットワークを対応する物理的ネットワークとして扱ってもよく、該上位レベルSPN  OSのテナントに対して仮想ネットワーク・サービスを提供してもよい。
【００２２】
SPNベースの仮想ネットワーク・サービスを提供するためにSPN  OS  ２０２およびSPN対応ネットワーク２０４を運用する運用者（operator）は、「SPNサービス・プロバイダー」と称されてもよい。「SPNテナント」は、SPNベースの仮想ネットワーク（VN）サービスを使用し、SPN対応ネットワーク２０４内に存在するVNを所有するユーザーを指していてもよい。SPNテナントにオファーされる各VNサービスは、SPN  OS  ２０２において仮想ネットワーク・オブジェクト（VNO）２０６として表わされてもよく、該SPNテナントは該仮想ネットワーク・オブジェクトの「VNO所有者」と称されてもよい。VNO1  ２０６−１において代表的に示されるように、VNO  ２０６は、SPN対応ネットワーク２０４の根底にある物理的ネットワーク・インフラストラクチャーを使って実現される仮想ノード２１０および仮想リンク２１２によって表わされてもよい。OONVアーキテクチャ２００では、VNO  ２０６の種々の例が示されている。VNO1  ２０６−１は、SPNテナントであるクラウド・アプリ２２０であるVNO所有者を有していてもよい。VNO2  ２０６−２は、SPNテナントであるネットワーク運用者２２２であるVNO所有者を有していてもよい。VNO3  ２０６−３は、SPNテナントであるクラウド・プロバイダー２２４であるVNO所有者を有していてもよい。VNO4  ２０６−４は、SPNテナントであるSDNコントローラ２２６であるVNO所有者を有していてもよい。
【００２３】
OONVアーキテクチャ２００において示されるように、SPN  OS  ２０２は、SPNテナントのためにノースバウンド（northbound）API  ２３２を提供してもよい（図２では、VNO  ２０６とそれぞれのSPNテナントとの間の矢印として示されている）。特に、ノースバウンドAPI  ２３２−１は、VNO  ２０６−１についてのクラウド・アプリ２２０によって使用されてもよい；ノースバウンドAPI  ２３２−２は、VNO  ２０６−２についてのネットワーク運用者２２２によって使用されてもよい；ノースバウンドAPI  ２３２−３は、VNO  ２０６−３についてのクラウド・プロバイダー２２４によって使用されてもよい；ノースバウンドAPI  ２３２−４は、VNO  ２０６−４についてのSDNコントローラ２２６によって使用されてもよい。SPN  OS  ２０２はまた、SPN対応ネットワーク２０４に対してサウスバウンド（southbound）インターフェース２３４（図２では、SPN  OS  ２０２とSPN対応ネットワーク２０４との間の矢印によって示されている）をも提供してもよい。SPN  OS  ２０２は、ノースバウンドAPI  ２３２およびサウスバウンド・インターフェース２３４のためのセッション管理を実行してもよい。SPN  OS  ２０２は、ノースバウンドAPI  ２３２を使ってSPNベースの仮想ネットワーク・サービスを、中でもクラウド・アプリ２２０、ネットワーク運用者２２２、クラウド・プロバイダー２２４およびSDNコントローラ２２６を含むさまざまなSPNテナントに提供してもよい。SDNコントローラ２２６（または他のネットワーク・オペレーティング・システム）も、一つの型のSPNアプリケーションとしてサポートされてもよく、既存のSDNアーキテクチャに対する後方互換性を提供してもよい。SPN  OS  ２０２のためのサウスバウンド・インターフェース２３４については、さまざまなプロトコルおよび／または制御機構が、SPN  OS  ２０２とSPN対応ネットワーク２０４との間の対話のために使用されてもよい。たとえば、例示的なサウスバウンド・インターフェース２３４−１、２３４−２、２３４−３は、所望に応じて：OpenFlow、シンプル・ネットワーク・マネジメント・プロトコル（SNMP:  Simple  Network  Management  Protocol）、ネットワーク・コンフィギュレーション・プロトコル（NETCONF:  Network  Configuration  Protocol）、トランザクション言語１（TL1:  transaction  language  1）、一般化マルチプロトコル・ラベル・スイッチング（GMPLS:  generalized  multi-protocol  label  switching）または他のベンダー固有のネットワーク管理システム（NMS:  network  management  system）およびプロトコルのうちの任意の一つまたは複数を表わしていてもよい。
【００２４】
図２のOONVアーキテクチャ２００では、進んだコンピューティングおよびソフトウェア技術が、所望されるレベルのパフォーマンスおよび信頼性を提供しうる。たとえば、ある種のデータベース技術（たとえば、In-Memory  Databases（インメモリ・データベース）、GraphDB（グラフDB））がVNOプール２１４またはVNO裁定器２３０に付随する資源管理機能のために採用されてもよい。他の型のOOプログラミングのために使用されるソフトウェア技法のようなさまざまなソフトウェア技法が、開発中に、VNO  ２０６の検証、デバッグおよび試験のために使用されてもよい。VNOプール２１４の実行環境のためにマルチスレッド環境が使用されてもよい。マルチスレッド環境では、各VNO  ２０６のためのイベント・ハンドラが、VNO  ２０６に関連付けられた別個のスレッドにおいて実行されてもよい。さらに、分散式のサーバーおよびOS技術が、SPN  OS  ２０２において、他の利点の中でも、スケーラブルなパフォーマンス、弾力性、効率性、一貫性を提供してもよい。SPN  OS  ２０２は既知のOOプログラミング言語（たとえばジャバ（商標）、C++、C#）を使って実装されうるが、カスタマイズされたOOネットワーク・プログラミング言語が、SPN  OS  ２０２とともに使うために考えられてもよく、VNO  ２０６およびSPN  OS  ２０２の効率的かつ合理化された実装のために特に好適でありうる。そのようなカスタマイズされたOOネットワーク・プログラミング言語はOOプログラミング言語が提供するのに匹敵する利点を提供でき、たとえば抽象化、カプセル化、継承および多形を含みうる。
【００２５】
本稿に記載されるOONVアーキテクチャ２００のある種のアーキテクチャ上の特徴は、VMベースのコンピューティング資源仮想化との類推を使って表わされてもよい。たとえば、データセンターにおけるVMは、OONVアーキテクチャ２００を実装するネットワークにおけるVNO  ２０６に対応する要素を表わしうる。VMは、共有される物理的コンピューティング資源（処理資源、メモリ資源、記憶資源など）上で実行されるコンピューティング・ソフトウェアのユニットを表わしてもよく、一方、VNO  ２０６は共有される物理的ネットワーク資源（スイッチング資源、ルーティング資源、再構成可能な光挿入／分岐マルチプレクサ（ROADM:  reconfigurable  optical  add/drop  multiplexer）のような挿入／分岐資源、無線資源または電気的／光学式／無線リンクのような媒体資源など）を管理し、制御するネットワーキング・ソフトウェアのユニットを表わしていてもよい。さらに、OONVアーキテクチャ２００の進化またはOONV開発環境がコンピューティング言語の進化と類似の仕方で表わされてもよい。たとえば、コンピューティング・アプリケーションのためのアセンブリ言語のような初期の低レベル言語が、中でもSDN前の諸言語、SNMP、NETCONF、TL1、GMPLSのような以前に使われた低レベルのネットワーク言語およびツールに対応してもよい。これらの初期に採用された低レベルのツールは、コンピューティング言語についてのコンピューティング・プラットフォームあるいはネットワーク言語／ツールについての物理的ネットワークといった物理的なインフラストラクチャーに近いアプリケーションのためのソフトウェア開発を可能にしうるが、より現代的なツールよりも使うのに直観的ではないことがありうる。
【００２６】
次いで、中でもC、フォートラン、パスカル、ベーシックのような手続き型言語が開発された仕方と同様に、たとえばSDNおよびOpenFlowのような現在使われるネットワーク・プログラミング・ツールが導入された。しかしながら、現在のネットワーク・プログラミング・ツールは、変数またはパラメータの集合を含むデータ構造に関してプログラム・エンティティ（またはネットワーク・エンティティ）のプロパティを定義することに制限されることがある。ソフトウェア・プログラミングのために手続き型言語が使用されるときは、データおよび該データに対する操作は別個である一方、手続き型の方法論はメソッドにデータを送ることを含む。よって、手続き型言語はプログラム・エンティティの挙動を定義せず、OO言語におけるようにメソッドをカプセル化するクラスの概念はない。現行のネットワーク・プログラミング・ツールもそのような制限のもとで機能する。
【００２７】
コンピューティング言語の進化は、プログラム・エンティティがプロパティおよび挙動を有し、クラスに属するオブジェクトとして表現されることを可能にするOO言語（たとえばジャバ、C++、C#）の利用可能性をもって続いてきた。ソフトウェア・プログラミングのためにOO言語を使うことは、データおよび該データに関するある種の操作を、オブジェクトと呼ばれる単一のエンティティ内に置く。このようにして、OO言語は、データおよびメソッドの両方を効率的に再利用する、高度にスケーラブルな、ソフトウェア・プログラムされたシステムの開発を可能にしうる。
【００２８】
本稿に記載されるOONVアーキテクチャ２００は、ネットワーク・ユーザーとネットワーク・プロバイダーとの間の明確な区分を可能にしうる。ネットワーク・プロバイダーはネットワーク資源を管理してもよく、現在のネットワーク条件をユーザーに対してSPN  OS  ２０２を通じて呈示してもよい。各ユーザーのVNネットワーク要求は、SPN  OS  ２０２においてインスタンス化されるVNO  ２０６としてサービスされてもよい。より多くの機能をVNO  ２０６に委譲することによって、OONVアーキテクチャ２００は、VNOプール２１４におけるまたはVNO裁定器２３０を通じた中央集中式の管理を維持しつつ、より中央集中的でない、よってよりスケーラブルなネットワーク動作を可能にしうる。このように、より自己管理的な、自律的な仕方で振る舞うさまざまな異なる種類のVNO  ２０６が実装さることができ、ポリシー・ベースの監督に従って管理されうる。
【００２９】
図２に示されるように、VNO  ２０６は、SPNテナントに提供される仮想ネットワーク・サービスの表現であってもよい。VNO  ２０６は、SPN対応ネットワーク２０４のためのトポロジー仮想化およびアドレス空間仮想化を提供してもよい。VNO  ２０６は、VNO  ２０６によって提供される仮想ネットワーク・サービスの寿命を通じて持続性を維持してもよく、よって所望される安定性および堅牢性を提供してもよい。さらに、VNO  ２０６は、中でもトラフィック・エンジニアリング、弾力性、サービス内再構成設定、アップグレード、再最適化、ライブ・マイグレーションのような機能を提供してもよい。VNO  ２０６は、OO言語におけるオブジェクトと同様であってもよく、特定の識別情報、プロパティおよび挙動を有していてもよい。たとえば、VNO  ２０６の識別情報は、中でも、VNO識別子（ID）、テナントIDを含んでいてもよい。VNO  ２０６のプロパティは、中でも、仮想ノード・リスト、仮想ノード・インターフェース・リスト、仮想リンク・リスト、仮想アドレス空間、ルーティング表、スケジューラを含んでいてもよい。VNO  ２０６のために設定される透明レベル・ポリシーに依存して、VNO  ２０６は、中でも、（たとえばVNO  ２０６から「見たときの」）物理的ネットワーク・トポロジー、仮想ノードから物理的ノードへのマッピング、仮想ノード・インターフェースから物理的ノード・インターフェースへのマッピング、仮想リンクから物理的経路へのマッピング、仮想アドレス空間から物理的アドレス空間へのマッピングのようなプロパティをも有していてもよい。VNO  ２０６の挙動（または内的なメソッド）は、VNO初期化の間に実行されるメソッド、VNO動作の間に実行されるメソッドおよびVNO廃用（decommissioning）の間に実行されるメソッドを含んでいてもよい。
【００３０】
図２において、SPNテナント（例示的なSPNテナント：クラウド・アプリ２２０、ネットワーク運用者２２２、クラウド・プロバイダー２２４およびSDNコントローラ２２６によって表わされている）は、SPN  OS  ２０２を通じて、該SPNテナントに関連付けられているまたは該SPNテナント「によって所有されている」VNO  ２０６に対する可視性および制御を有していてもよい。VNO  ２０６におけるメソッドは、自己実行可能であっても（スケジュールされた再構成設定、保護／回復など）、あるいはVNO所有者によって呼び出されても（ライブ・マイグレーションなど）よい。ある種の実施形態では、VNO  ２０６は、完全に新しいVNOとして設計または開発されてもよい。他の実施形態では、VNO  ２０６は、VNO機能の他の例の中でも、シングル・ビッグ・スイッチ（Single  Big  Switch）、ファット・ツリー（Fat  Tree）、プロテクテッド・リング（Protected  Ring）のようなさまざまなあらかじめ定義されたVNOテンプレート（レシピ）から生成されてもよい。VNOテンプレートは、OO言語におけるクラスと同様であってもよく、抽象化、カプセル化、継承および多形のような同様の利点を提供してもよい。VNO  ２０６は、ノースバウンドAPI  ２３２を通じてSPNテナントであるVNO所有者と対話してもよい。VNO  ２０６は、VNOプールからVNO裁定器インターフェース２３６を通じてVNO裁定器２３０と対話してもよい。VNO  ２０６はサウスバウンド・インターフェース２３４を通じてSPN対応ネットワーク２０４と対話してもよい。また、VNO  ２０６は、VNO間インターフェース２３８を通じて他のVNO  ２０６と対話してもよい。SDNにおけるフロー・エンティティがSPN  OS  ２０２におけるVNO  ２０６に匹敵する限りにおいて、VNO間インターフェース２３８は、SDNに付随する機能に匹敵しない通信機能を表わしていてもよい。たとえば、SDNは一般に、SDN間コントローラ通信を許容しないことがある（あるいは制約された仕方で許容することがある）。こうして、複数のVNO  ２０６が自律的に互いと対話できるようにすることは、OONVアーキテクチャ２００の利点を表わしうる。これはよりスケーラブルなSPNシステムの設計および動作を可能にでき、さらに新しい機能およびサービスを可能にできる。たとえば、SPNテナントは複数のVNO  ２０６を「縫い合わせて」より大きな（マルチドメインまたはマルチセグメントの）仮想ネットワークを形成してもよい。別の例では、それぞれ異なるSPNテナントによって所有される複数のVNO  ２０６が、（たとえば過剰申し込みの場合に）共有される物理的資源へのアクセスを「交渉」できるようにされてもよい。これは、OONVアーキテクチャ２００の動作のついての全体的な経済的な恩恵を提供しうる。
【００３１】
図２では、OONVアーキテクチャ２００は、プロビジョニング機能を含んでいてもよい。たとえば、クラウド・プロバイダーは新しいクラウド・アプリ２２８のための仮想ネットワークを所望することがありうる。クラウド・プロバイダーの資源編成器（orchestrator）は、OONVアーキテクチャ２００のためのAPIコマンド（たとえばOONVgetNetworkResourceInfo()）を通じてSPN  OS  ２０２から現在のネットワーク資源情報を取得してもよい。ネットワーク資源情報は、他の事項の中でも、トポロジー、帯域幅、遅延、共有されるリスク・グループを指定してもよいことを注意しておく。受領されたネットワーク資源情報に基づいて、編成器は次いで、VNOプール２１４内に新しいVNOを生成してもよい。先述したように、新しいVNOは、自己定義されたまたは事前定義されたVNOテンプレートを使って生成されてもよい。たとえば、事前定義されたBigSwitch  VNOテンプレートを使って、新しいVNOは、「OONVmyCloudVN=new  BigSwitchVNO(ID,仮想ノードおよびリンク・プロパティなど)」のような対応するAPIコマンドを使って生成されうる。応答して、BigSwitch型のVNOが生成され、「myCloudVN」と称されてもよく、初期化方法および機能を実行してもよい。この新しいBigSwitch型VNOは、指定された数の仮想ノードを有していてもよく、一方、指定された容量をもつフル・メッシュの諸仮想リンクが自動的に、関連する仮想ノード対の間に作成されてもよい。また、さまざまな事前定義された関数またはメソッドが新しいBigSwitch型のVNOに含められてもよい。新しいBigSwitch型のVNOがインスタンス化されたのち、VNO裁定器２３０はVNO検証を実行してもよい。VNO検証は、VNO  ２０６内のフィールドおよびコードが有効であり、レース条件（race  conditions）のような論理的な欠陥を含んでいないことを検証してもよい。これは、VNO  ２０６についての「健全性検査（sanity  check）」と称される。VNO検証は、VNO  ２０６が現在のネットワーク条件の下でサービスされうるかどうかを検査してもよい。これはVNO  ２０６についての「サービス可能性検査（serviceability）」と称される。サービス可能性検査が肯定的な結果を与えるとき、VNO検証は有効なサービス・パターンおよび関連付けられたプロパティ、制約条件およびコストをリストしてもよい。これはVNO  ２０６についての「サービス提案」と称される。VNO  ２０６についての「サービス・パターン」は、仮想ノードから物理的ノードへのマッピング・リスト、仮想リンクから物理的経路へのマッピング・リストまたは中でもノードおよびリンク・プロパティ、可用性、信頼性、コストといった他の属性を含みうるマッピング・パターンであってもよい。
【００３２】
図２に示されるOONVアーキテクチャ２００では、VNO裁定器（arbiter）２３０はVNO  ２０６に検証結果を書き込んでもよく、VNO  ２０６の生成を要求するエンティティに制御を返してもよい。前の例では、制御は編成器に返される一方、検証結果は新たに生成されたVNO（myCloudVN）に書き込まれてもよい。編成器は検証結果を吟味し、中でも好ましいマッピング・サイトといった選好および中でもコスト、可用性といったサービス・パターン条件に基づいて、所望されるサービス・パターンについての決定をしてもよい。次いで、編成器はその所望されるサービス・パターンをmyCloudVNに書き込んでもよい。VNサービスがアクティブ化される時点において、編成器は、サービス・アクティブ化を要求するために、APIコマンドをSPN  OS  ２０２に送ってもよい。該APIコマンドの送信は、OONVmyCloudVN.activateService(now)のような、VNOのサービス・アクティブ化関数を呼び出すことによって達成されてもよい。ここで、スケジュールされたアクティブ化については、「now」〔今〕パラメータの代わりに、将来の時刻および日付が指定されてもよい。VNO裁定器２３０は、VNO  ２０６からサービス・アクティブ化要求を受け取ってもよい。前の例では、VNOプール２１４中のmyCloudVNがOONVactivateService(now)要求をVNO裁定器２３０に送ってもよい。
【００３３】
OONVアーキテクチャ２００では、VNO裁定器２３０は、VNO  ２０６についてのアドミッション制御および物理的ネットワーク資源割り当てをも実行してもよい。VNO  ２０６によって選択されたサービス・パターンに基づいて、VNO裁定器２３０は、仮想ノード／リンクから物理的ノード／経路へのマッピング、仮想から物理アドレスへの変換および他の変換を実行してもよい。ある種のマッピングおよびコンバセーション表がVNO裁定器２３０にとって利用可能なデータベースに記憶されていてもよく、あるいはVNO  ２０６に記憶されていてもよい。次いで、VNO裁定器２３０は、物理的ネットワーク資源を構成設定または割り当てするために、制御コマンドをSPN対応ネットワーク２０４にサウスバウンド・インターフェース２３４を通じて送ってもよい。そのような諸プロセスの間に、VNO裁定器２３０は、他の裁定タスクの中でも、物理的ネットワーク資源管理およびスケジューリング、ネットワーク規模でのポリシー施行、セキュリティおよび認証、権限付与およびアカウント処理といった他の動作を実行してもよい。VNO  ２０６について許容される制御または透明性の所望されるレベルに依存して、VNO裁定器２３０の機能の少なくとも一部分はVNO  ２０６に委譲されてもよい。たとえば、VNO  ２０６がSPN対応ネットワーク２０４への直接アクセスをもつことを許容されるとき、仮想から物理への変換およびSPN対応ネットワーク構成設定コマンドが、VNO裁定器２３０を経るのではなく、VNO  ２０６自身によって実行されてもよい。これはある種のVNO機能について特に有用でありうる。たとえば、VNO  ２０６が高速保護または回復を実装するとき、VNO  ２０６は、ネットワーク障害をモニタリングおよび検出するために、OONVmonitorPhysicalNetwork()のような内的メソッドを使用し、SPN対応ネットワーク２０４の一部分を迅速に再構成設定してVNO  ２０６を代替的なネットワーク資源にマッピングし直すために、OONVremapTo(保護マッピング・パターン)またはOONVrestoreFrom(代替的マッピング・パターン)のような別の内的メソッドを使ってもよい。
【００３４】
クラウド・プロバイダーがVNO  ２０６をアクティブ化解除することを望むときは、OONVmyCloudVN.deactivateService(now)のような関数が、現在の仮想から物理的へのマッピングをアクティブ化解除して、VNO  ２０６に関連付けられている物理的な資源を解放するために使用されてもよい。VNO  ２０６は、OONVmyCloudVN.activateService(now)のような関数を再び呼び出すことによって、再アクティブ化されてもよい。クラウド・プロバイダーが恒久的にVNO  ２０６を終了させることを望むときは、OONVmyCloud.decommission(now)のような関数が、たとえばVNOプール２１４からVNO  ２０６を削除するために使われてもよい。VNO裁定器２３０はVNOプール２１４内の諸VNO  ２０６をモニタリングしていてもよく、これと通信してもよい。ある種のVNO  ２０６が（他の原因の中でも、VNOの機能上のバグ、予期しないネットワーク条件のため）異常な振る舞いをするときには、VNO裁定器２３０は強制的に異常なまたは誤ったVNO  ２０６を終了させてもよい。
【００３５】
まとめると、下記の表１は、SDNとOONVアーキテクチャ２００のためのSPNとの間の、限定するものではないある種の技術的な相違を列挙している。
【表１】
2015204614.tif 000003
【００３６】
本稿に開示されるところでは、OONVアーキテクチャ２００は、OpenFlowのようなSDNのためのサポートを提供しうる。OpenFlowまたは他の通常のSDNプロトコルのための後方互換性が、個々のVNO  ２０６における互換性機能を使うことによって、本稿に開示されるOONVアーキテクチャ２００のためのSPNによってサポートされてもよい。たとえば、myCloudVN  VNOは、OpenFlowを可能にされて生成されてもよく、それによりOpenFlow関数の群がmyCloudVN  VNOにおいて自動的に追加される。該OpenFlow関数の群は、他のSDN／OpenFlow関数の中でもOFPacketInHandler()、OFPacketOutHandler()；OFFlowModHandler()；およびOFFlowExpiredHandler()を含んでいてもよい。このようにして、サポートされるOpenFlow関数の群はVNO  ２０６についての「組み込みの」OpenFlowコントローラのはたらきをしてもよい。VNO  ２０６は、VNO裁定器２３０を通じてOpenFlow互換の物理的ネットワークと対話するためにOpenFlow関数を使ってもよく、ここで、VNO裁定器２３０は、仮想から物理的へのマッピングおよびアドレス空間変換を実行する、OpenVirtex(NetVisor)またはFlowNと同様の仕方で動作してもよい。より透明な仮想化をもつVNO  ２０６については、VNO  ２０６はマッピングおよびアドレス空間情報を保持してもよく、OpenFlow互換の物理的ネットワークと直接対話してもよいことを注意しておく。VNO  ２０６は複数のSDN関数を同時にサポートしてもよい。たとえば、OpenFlowHandlers()に加えて、myCloudVN  VNOは、FujitsuSDNHandlers()関数を含めることによって富士通のSDNのような他のSDNプロトコルをもサポートしてもよい。
【００３７】
本稿に開示されるところでは、OONVアーキテクチャ２００は通常のネットワーク動作のためのサポートを提供してもよい。通常のネットワーク・プロビジョニング動作への後方互換性が、通常のネットワーク・プロビジョニングの各型に専用の特別なVNO  ２０６を提供することによって、本稿に開示されるOONVアーキテクチャ２００のためのSPNによってサポートされてもよい。たとえば、GMPLSコマンドをサポートするSPN対応光ネットワーク上でGMPLSOpticalVN  VNOが生成されてもよい。光ノードまたは光リンクの一部分はGMPLSOpticalVN  VNOに割り当てられて、物理的な光ネットワーク・スライスを形成してもよく、これがGMPLSOpticalVN  VNOの所有者には真の物理的な光ネットワークとして見える。仮想から物理的へのマッピングは完全に透明であってもよい；換言すれば、物理的ノード／リンクIDは仮想／リンク・ノードIDと同一であってもよい。通常のネットワーク運用者が、GMPLSにおける「lightpath  setup〔光経路セットアップ〕」のような通常のネットワーク・プロビジョニング・コマンドをGMPLSOpticalVN  VNOに送るとき、GMPLSOpticalVN  VNOは、サウスバウンド・インターフェース２３４を通じて当該光ネットワークのあるスライスに対して同じコマンドを呼び出してもよい。すると、根底にある光ノードはGMPLSOpticalVN  VNOからのGMPLSコマンドに従って、所望される光経路をセットアップしてもよい。
【００３８】
本稿に開示されるところでは、OONVアーキテクチャ２００は、過剰申し込みについてのネイティブなサポートを提供してもよい。同じCPU上で実行されるタスク、スレッドなどといった複数のソフトウェア・プロセスと類似の仕方で、あるいは同じ物理的サーバー上で実行される複数のVMと同様の仕方で、複数のVNO  ２０６が、時間的または空間的な共有の構成において同じ物理的ネットワーク資源を共有してもよい。これがVNO  ２０６の過剰申し込みを定義しうる。たとえば、パケット・ベースのVNO過剰申し込みは、統計的な多重化によって実現されてもよく、一方、回線ベースのVNO過剰申し込みは統計的な共有によって実現されてもよい。過剰申し込みに対するサポートはSDNでも可能であることはあるが、そのようなサポートはかなりの課題あるいは困難に関わることがある。典型的な実施形態では、中央集中されたSDNコントローラは、仮想ネットワーク・エンティティ間の共有関係を管理し、諸仮想ネットワークのための再構成設定スケジュールを管理し、比較的頻繁でありうる諸仮想ネットワークのための再構成設定を実行するよう強いられることがある。たとえば、多数の仮想ネットワーク（たとえば100万の仮想ネットワーク）が同じネットワークにおいて共存する場合、10または100の仮想ネットワーク毎にいくつかの共通の物理的資源を共有することがあり、よって毎分または毎時間に再構成設定される必要があることがあり、このことはSDNコントローラを過負荷にしたり、あるいはSDNパフォーマンスの望ましくないレベルにつながったりすることがある。
【００３９】
OONVアーキテクチャ２００では、それぞれのVNO  ２０６についてSPN対応ネットワーク２０４のためのアドミッション制御および資源割り当てが実行されるとき、過剰申し込みはVNO裁定器２３０によって実現されてもよい。VNO  ２０６が過剰申し込みを許容しないときは、専用のネットワーク資源がVNO  ２０６に割り当てられてもよい。VNO  ２０６が過剰申し込みを許容するときは（たとえば、VNO所有者がより低価格のために過剰申し込みサービスにオプトインする）、VNO  ２０６に割り当てられているネットワーク資源の少なくとも一部分が他のVNO  ２０６と共有される（または他のVNO  ２０６に再割り当てされる）ことがある。過剰申し込みの場合、共有スケジュール（たとえば１分交替）およびポリシー（たとえば先着順）がVNOのサービス・パターンに書き込まれていてもよい。サービス・アクティブ化後、各VNO  ２０６は、アクティブなサービス・パターンに基づいてネットワーク資源を利用してもよく、VNO裁定器２３０による介入なしに他のVNO  ２０６と物理的な資源を共有してもよい。サービス型に依存して、共通の資源を共有する複数のVNO  ２０６は、自律的な仕方でVNO間通信を通じて、資源使用を交渉または裁定し、スケジューリングするよう互いと対話してもよい。VNO  ２０６がVNOのサービス・パターンに変更を行なう（たとえば、共有される資源に関して専用とされる資源を修正する）とき、VNO裁定器２３０が関わってもよい。VNO裁定器２３０は、諸VNO  ２０６がネットワーク資源を適正に使用しており、該ネットワーク資源がたとえばVNO所有者とのサービス・レベル合意（SLA:  service-level  agreement）のような他の何らかの制約条件を超えて過剰申し込みされていない（過剰販売されていない）ことを保証するために、ネットワーク規模のポリシー施行を実行してもよい。
【００４０】
本稿に開示されるところでは、OONVアーキテクチャ２００はトラフィック・エンジニアリングのためのサポートを提供してもよい。トラフィック・エンジニアリングおよび／または負荷の均衡化機能は、本稿に開示されるOONVアーキテクチャによって、諸VNO  ２０６によりサポートされてもよい。VNO  ２０６の仮想ネットワーク・トポロジーは「物理的なトポロジー」と同一に見えてもよい。したがって、仮想ネットワーク・トポロジーおよびリンク容量のような関連するプロパティに対して変更がなされない限り、VNO裁定器２３０によるアドミッション制御および物理的資源割り当ては関わらなくてもよい。SDNテナントがある種のパケット・フローおよび／または回線を再ルーティングすることを望むとき、SDNテナントは、SDNテナントによって所有されるVNO  ２０６のルーティング表またはパケット転送（packet  forwarding）／回線転送（circuit  forwarding）規則に変更をしてもよい。そのような変更は、仮想から物理的へのマッピングおよびコンバセーション・テーブルを使ってSPN対応ネットワーク２０４のネットワーク資源における関連する転送（forwarding）／交換（switching）再構成設定に自動的に変換されてもよい。次いで、VNO  ２０６は、サウスバウンド・インターフェース２３４を通じて再構成設定コマンドをSPN対応ネットワーク２０４に送ってもよい。
【００４１】
本稿に開示されるところでは、OONVアーキテクチャ２００はネットワーク保護／回復のためのサポートを提供してもよい。ネットワーク保護およびネットワーク回復は、本稿に開示されるOONVアーキテクチャ２００によって、諸VNO  ２０６内のメソッドによりサポートされてもよい。保護は、VNO  ２０６における一つまたは複数の保護サービス・パターン（PSP:  protection  service  pattern）を指定し、該PSPに対してSPN対応ネットワーク２０４の専用のまたは高優先度の資源を割り当てることによって実現されてもよい。回復は、VNO  ２０６における一つまたは複数の回復サービス・パターン（RSP:  restoration  service  pattern）を指定することによって、該RSPに対してSPN対応ネットワーク２０４の専用のまたは高優先度の資源を割り当てることなく、実現されてもよい。保護／回復をサポートするVNO  ２０６は、サウスバウンド・インターフェースを通じてネットワーク障害をモニタリングおよび検出するよう、OONVmonitorPhysicalNetowork()のようなモニタリング関数を実装してもよい。ひとたびネットワーク障害が検出されたら、影響を受けている諸VNO  ２０６は自動的に該VNOのPSPまたはRSPに切り換えてもよい。保護の場合、VNO  ２０６は、VNO裁定器２３０による介入なしに、そのPSPにすぐに切り換えてもよい。回復の場合、VNO  ２０６は、まずVNO裁定器２３０におけるVNO検証手順を呼び出して有効なRSPを決定し、次いで割り当てられた回復資源をオンデマンドで決定してもよい。保護／回復については、VNO検証技術が重要な役割を演じることがある。仮想化された環境において十分な信頼性を提供することは困難であることがあるので、VNO検証は、正常な状況のもとでおよびネットワーク障害条件の間に、諸VNO  ２０６の間でレース条件を防止してもよい。ある実施形態では、VNO検証解決策は、より粒度の細かいサービス弾力性を提供するPSP／RSPを計算することによって、「優雅な保護／回復」のような新たなサービスを提供してもよい。
【００４２】
本稿に開示されるところでは、OONVアーキテクチャ２００は、スケジュールされたサービスのためのサポートを提供してもよい。スケジュールされたサービスは、本稿に開示されるOONVアーキテクチャ２００によって、諸VNO  ２０６によりサポートされてもよい。VNO  ２０６が即時のサービス・アクティブ化を要求するとき、VNO  ２０６は、VNO初期化直後にOONVactivateService(now)のようなサービス関数を呼び出してもよい。アドバンス・サービス・アクティブ化を要求するVNO  ２０６は、VNO初期化後に、OONVactivateService(将来の日時)を呼び出してもよい。VNO裁定器２３０は、アドバンス・サービスを要求するVNO  ２０６のために利用可能なSPN対応ネットワーク２０４上での将来の資源をスケジューリングしてもよい。VNO  ２０６におけるOONVactivateService()関数は、指定された日時にサービス・アクティブ化を惹起してもよい。定期的なサービス・アクティブ化を要求するVNO  ２０６は、OONVactivateService(serviceScheduler)を呼び出してもよい。OONVserviceSchedulerは、詳細なサービス・アクティブ化／アクティブ化解除スケジュールまたは条件を指定しうる論理的なエンティティ（リスト、テーブル、データベースまたはスケジュール・オブジェクト）であってもよい。VNO裁定器２３０は、SPN対応ネットワーク２０４について将来の資源をスケジューリングしてもよい。VNO  ２０６におけるOONVactivateService()関数は、サービス・アクティブ化およびアクティブ化解除を定期的に惹起してもよい。
【００４３】
本稿に開示されるところでは、OONVアーキテクチャ２００は、VNライブ・マイグレーションのためのネイティブなサポートを提供してもよい。SDNベースのアプローチは、Floodlight（フラッドライト）コントローラの上のライブ・マイグレーション・オブ・アンサンブルズ（LIME:  Live  Migration  of  Ensembles）のようなVNライブ・マイグレーションをサポートするためのSDNコントローラの上の別個のマネージャを構築することに関わってもよい。トラフィック・エンジニアリングと異なり、ライブ・マイグレーションおよび（仮想ネットワーク再設計のような）他の同様のネットワーキング機能は、VNに対する変更に関わる。VNライブ・マイグレーションは、既存のVNトポロジーを維持してもよいが、少なくともいくつかの仮想ノードの異なる物理的ノードへの再マッピングを含むことがある。VN再設計は、VNトポロジーを変えることがある。仮想ノードおよび仮想リンクを追加／除去する、仮想リンク容量を増大／減少させるなどである。VNライブ・マイグレーションは、VNO  ２０６における再構成設定機能によってサポートされてもよい。先のOONVmyCloudVNの例を使うと、OONVmyCloudVN  VNOはOONVmyCloudVN.reconfigVNO(仮想ノードおよびリンク・プロパティの新しいセット)を呼び出してもよい。OONVmyCloudVN  VNOは、仮想ノードおよびリンク・プロパティの該新しいセットに従って（新しい仮想から物理的へのノード・マッピング・パターンのような）新しいサービス・パターンを自動的に生成してもよい。VNO裁定器２３０はOONVmyCloudVN検証を実行してもよく、有効なサービス・パターンを返してもよい。OONVmyCloudVNは一つの有効なサービス・パターンを選択してもよく、OONVmyCloudVN.reconfigService(選択されたサービス・パターン)のようなコマンドを使ってサービスを再構成設定してもよい。VNO裁定器２３０は、古いサービスをアクティブ化解除してもよく、新しいサービス・パターンをもってサービスを再アクティブ化してもよい。
【００４４】
本稿に開示されるところでは、OONVアーキテクチャ２００は、ネットワーク再最適化のためのサポートを提供してもよい。SPNサービス・プロバイダーは、物理的ネットワーク利用を最適化し直すためまたはVNOサービス中断なしにネットワーク・メンテナンス／アップグレードを実行するために、SPN  OS２０２を使ってもよい。再最適化は、VNO裁定器２３０からVNOサービス・パターン再マッピングを呼び出すことによって実現されてもよい。たとえば、SPNサービス・プロバイダーが新技術の物理的経路を設置し、旧技術の経路を終了させることを望むとき、SPNサービス・プロバイダーは旧経路上にマッピングされている仮想リンクをもつVNO  ２０６をリストするためにVNOプール２１４を検索してもよい。次いで、SPNサービス・プロバイダーは、VNO裁定器２３０を使って旧経路VNOの、稼働中のサービス・パターンを書き換えてもよく、新しいサービス・パターンをアクティブ化するために旧経路VNOについてOONVreconfigService()関数を呼び出してもよい。いくつかの実施形態では、ネットワーク再最適化動作は、VNO所有者にとって不可視であってもよい。他の実施形態では、VNO所有者は、メンテナンス・アラートとしてネットワーク再最適化動作のことを通知されてもよい。そのようなVNOサービス再マッピングを系統的な仕方で実装することによって、光スペクトル・フラグメンテーション除去のような、自動化されたネットワーク規模での再最適化が、OONVアーキテクチャ２００で実行されうる。
【００４５】
ここで図３を参照するに、本稿に開示される、仮想ネットワーク・サービスを提供する方法３００のある実施形態の選択された要素のブロック図がフローチャートの形で描かれている。方法３００における少なくともある種の動作は、OONVアーキテクチャ２００（図２参照）を使って、たとえばOONVコントローラ（図５も参照）上で実行されるSPN  OS  ２０２によって実行されてもよい。いくつかの実施形態では、方法３００における少なくともある種の動作は、VNO裁定器２３０によって実行されてもよい。方法３００において記載されているある種の動作は任意的であることもあり、あるいは異なる実施形態では配列し直されることもあることを注意しておく。
【００４６】
方法３００は、SPN  OSにおいてVNOをインスタンス化することによって始まってもよい（動作３０２）。該VNOはSPN  OSのユーザーに提供される仮想ネットワーク・サービスを表わす。該仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する。VNOは、識別子、プロパティおよびVNOによってカプセル化される機能のための内的メソッドを含む。方法３００は、ユーザーが、SPN  OSによってサポートされるAPIを使ってVNOと連絡することを可能にする（動作３０４）ことを含んでいてもよい。方法３００は、VNOが、SPN  OSにおいてインスタンス化された第二のVNOと通信することを可能にすること（動作３０４）を含んでいてもよい。方法３００は、物理的ネットワーク資源を制御するためにSPN  OSが物理的ネットワークに制御コマンドを送ることができるようにすること（動作３０４）を含んでいてもよい。
【００４７】
ここで図４を参照するに、本稿に開示される、仮想ネットワーク・サービスを提供する方法３０２のある実施形態の選択された要素のブロック図がフローチャートの形で描かれている。方法３０２は、方法３００（図３参照）における動作３０２のある実施形態を表わしていてもよい。方法３０２において記載されているある種の動作は任意的であることもあり、あるいは異なる実施形態では配列し直されることもあることを注意しておく。
【００４８】
方法３０２は、SPN  OSにおいてVNOをインスタンス化するためのユーザーからのインスタンス化コマンドを受領することによって始まってもよい（動作４０２）。該インスタンス化コマンドは、VNOの属性〔アトリビュート〕を指定するパラメータを含む。該インスタンス化コマンドに応答して、方法３０２は、SPN  OSに含まれるVNO裁定器によって、VNOの健全性検査およびサービス可能性検査を含むVNOの検証を実行すること（動作４０４）を含んでいてもよい。次いで、方法３０２において、該仮想ネットワーク・オブジェクトの検証が成功であるかどうかの判定がなされてもよい（動作４０６）。動作４０６の結果が否である場合には、方法３０２は終了してもよい（動作４１０）。動作４０６の結果が肯定である場合には、方法３０２はVNO裁定器によって、VNOのための有効なサービス・パターンを含む、VNOのためのサービス提案を生成すること（動作４０８）を含んでいてもよい。
【００４９】
ここで図５を参照するに、OONVコントローラ５００のある実施形態の選択された要素のブロック図が示されている。図５では、OONVコントローラ５００は、本稿に記載されるOONVアーキテクチャ２００を実装するための物理的および論理的コンポーネントを含むコンピュータ・システムとして表現されており、よってプロセッサ５０１、メモリ５１０およびネットワーク・インターフェース５２０を含んでいてもよい。プロセッサ５０１は一つまたは複数の個別の処理ユニットを表わしていてもよく、プログラム命令を実行し、データを解釈し、メモリ５１０またはOONVコントローラ５００によって記憶されているデータを処理してもよい。OONVコントローラ５００は種々の実施形態で実装されうることを注意しておく。たとえば、いくつかの実施形態では、OONVコントローラ５００は、ネットワーク要素１０２（図１参照）を使って実装されてもよい。個別的な実施形態では、メモリ５１０は、複数の仮想マシンの並行した実行を可能にするハイパーバイザーを使ってプロセッサ５０１上で実行される仮想マシンを表わしていてもよい。
【００５０】
図５では、メモリ５１０は、プロセッサ５０１に通信上結合されていてもよく、ある時間期間にわたってプログラム命令および／またはデータを保持するのに好適なシステム、デバイスまたは装置であってもよい（たとえばコンピュータ可読媒体）。メモリ５１０は、さまざまな型のコンポーネントおよびデバイス、たとえばランダム・アクセス・メモリ（RAM）、電気的に消去可能なプログラム可能型読み出し専用メモリ（EEPROM）、PCMCIAカード、フラッシュ・メモリ、半導体ディスク、ハードディスク・ドライブ、磁気テープ・ライブラリ、光ディスク・ドライブ、光磁気ディスク・ドライブ、コンパクトディスク・ドライブ、コンパクトディスク・アレイ、ディスク・アレイ・コントローラおよび／または揮発性もしくは不揮発性メモリの任意の好適なセレクションまたはアレイを含んでいてもよい。不揮発性メモリは、電源を切った後でもデータを保持するメモリをいう。メモリ５１０は、さまざまな実施形態において異なる数の物理的な記憶装置を含んでいてもよいことを注意しておく。
【００５１】
図５に示されるように、メモリ５１０は、図２に関して上記したようなSPN  OS  ２０２を含んでいてもよい。情報記憶部５４０はさまざまなデータおよびパラメータ、たとえばSPN  OS  ２０２に関連するデータおよびパラメータを記憶してもよい。
【００５２】
本稿に開示されるところでは、OONVは、SPN  OSを使ってVNOを生成し、動作させることに関わってもよい。VNOは、SPN  OSのもとで提供される仮想ネットワーク・サービスの完全な表現であってもよい。VNOは、一意的な識別情報およびプロパティを、VNOによってカプセル化される機能を実行するためのメソッドの内的なセットとともに、有していてもよい。VNOは、改善された仮想ネットワーク・サービスを可能にするために、持続性および自律的な制御を示してもよい。
【００５３】
上記に開示した主題は、制約するものではなく、例示的であると考えられるべきであり、付属の請求項は、本開示の精神および範囲内にはいるあらゆる修正、向上および他の実施形態をカバーすることが意図されている。よって、法によって許される最大限度まで、本開示の範囲は、付属の請求項およびその等価物の最も広い許される解釈によって決定されるべきであり、上記の詳細な説明によって制約または制限されるものではない。
【００５４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
仮想ネットワーク・サービスを提供する方法であって：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを前記物理的ネットワークに送ることができるようにする段階とを含み、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
方法。
（付記２）
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
付記１記載の方法。
（付記３）
前記仮想ネットワーク・サービスが：
前記物理的ネットワークのトポロジー仮想化；および
前記物理的ネットワークのアドレス空間仮想化を含む、
付記１記載の方法。
（付記４）
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
付記１記載の方法。
（付記５）
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
前記物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
前記物理的ネットワークについての保護サービス・パターン；
前記物理的ネットワークについての回復サービス・パターン；
前記物理的ネットワークについてのスケジューリングされたサービス；
前記物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
付記４記載の方法。
（付記６）
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて前記物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とをさらに含む、
付記２記載の方法。
（付記７）
仮想ネットワーク・サービスを提供するためのオブジェクト指向のネットワーク仮想化（OONV）コントローラを有する物理的ネットワークであって、前記OONVコントローラは：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、当該物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを当該物理的ネットワークに送ることができるようにする段階とを実行するためのものであり、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
物理的ネットワーク。
（付記８）
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
付記７記載の物理的ネットワーク。
（付記９）
前記仮想ネットワーク・サービスが：
当該物理的ネットワークのトポロジー仮想化；および
当該物理的ネットワークのアドレス空間仮想化を含む、
付記７記載の物理的ネットワーク。
（付記１０）
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
付記７記載の物理的ネットワーク。
（付記１１）
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
当該物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
当該物理的ネットワークについての保護サービス・パターン；
当該物理的ネットワークについての回復サービス・パターン；
当該物理的ネットワークについてのスケジューリングされたサービス；
当該物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
付記１０記載の物理的ネットワーク。
（付記１２）
前記OONVコントローラがさらに：
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて当該物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とのためのものである、
付記８記載の物理的ネットワーク。
（付記１３）
前記OONVコントローラが、ネットワーク要素またはハイパーバイザー上で実行される仮想マシンの一方である、付記７記載の物理的ネットワーク。
（付記１４）
仮想ネットワーク・サービスを提供するためのオブジェクト指向のネットワーク仮想化（OONV）コントローラであって、当該OONVコントローラは：
ソフトウェア・プログラムされたネットワーキングをサポートするオペレーティング・システムにおいて仮想ネットワーク・オブジェクトをインスタンス化する段階であって、前記仮想ネットワーク・オブジェクトは、オペレーティング・システムのユーザーに提供される仮想ネットワーク・サービスを表わし、前記仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する、段階と；
オペレーティング・システムによってサポートされるアプリケーション・プログラミング・インターフェースを使って、ユーザーが前記仮想ネットワーク・オブジェクトと通信できるようにする段階と；
オペレーティング・システムが、物理的ネットワーク資源を制御するために制御コマンドを前記物理的ネットワークに送ることができるようにする段階とを実行するためのものであり、
前記仮想ネットワーク・オブジェクトは、識別子、プロパティおよび前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための内的メソッドを含む、
OONVコントローラ。
（付記１５）
前記仮想ネットワーク・オブジェクトをインスタンス化する段階はさらに：
前記仮想ネットワーク・オブジェクトをインスタンス化するためのユーザーからのインスタンス化コマンドを、オペレーティング・システムにおいて受領する段階であって、前記インスタンス化コマンドは、前記仮想ネットワーク・オブジェクトの属性を指定するパラメータを含む、段階と；
前記インスタンス化コマンドに応答して、オペレーティング・システムに含まれる裁定器によって、前記仮想ネットワーク・オブジェクトの健全性検査およびサービス可能性検査を含む、前記仮想ネットワーク・オブジェクトの検証を実行する段階と；
前記仮想ネットワーク・オブジェクトの検証が成功のときは、前記裁定器によって、前記仮想ネットワーク・オブジェクトについての有効なサービス・パターンを含む、前記仮想ネットワーク・オブジェクトについてのサービス提案を生成する段階とを含む、
付記１４記載のOONVコントローラ。
（付記１６）
前記仮想ネットワーク・サービスが：
前記物理的ネットワークのトポロジー仮想化；および
前記物理的ネットワークのアドレス空間仮想化を含む、
付記１４記載のOONVコントローラ。
（付記１７）
前記仮想ネットワーク・オブジェクトによってカプセル化された機能のための前記内的メソッドが：
前記仮想ネットワーク・オブジェクトについての初期化関数；
前記仮想ネットワーク・オブジェクトについての操作関数；および
前記仮想ネットワーク・オブジェクトについての廃用関数を含む、
付記１４記載のOONVコントローラ。
（付記１８）
前記仮想ネットワーク・オブジェクトについての前記操作関数（operational  functions）が：
ソフトウェア定義されるネットワーキング・プロトコル；
前記物理的ネットワーク資源の統計的多重化を使ったパケット・ベースの過剰申し込み；
前記物理的ネットワーク資源の統計的共有を使った回線ベースの過剰申し込み；
前記物理的ネットワーク上でのネットワーク・トラフィックのための転送規則；
前記物理的ネットワークについての保護サービス・パターン；
前記物理的ネットワークについての回復サービス・パターン；
前記物理的ネットワークについてのスケジューリングされたサービス；
前記物理的ネットワークの動作中に前記仮想ノードの少なくともいくつかを異なる物理的ネットワーク資源に再マッピングすることを含むライブ・マイグレーションのうちの少なくとも一つから選択される、
付記１７記載のOONVコントローラ。
（付記１９）
当該OONVコントローラがさらに：
前記仮想ネットワーク・オブジェクトが、オペレーティング・システムにおいてインスタンス化されている第二の仮想ネットワーク・オブジェクトと通信することを可能にする段階と；
前記裁定器によって、複数の仮想ネットワーク・オブジェクトについて前記物理的ネットワークのネットワーク再最適化を可能にする段階であって、前記物理的ネットワーク資源の少なくともいくつかが新しい物理的ネットワーク資源に再構成設定される、段階とのためのものである、
付記１５記載のOONVコントローラ。
（付記２０）
当該OONVコントローラが、ネットワーク要素またはハイパーバイザー上で実行される仮想マシンの一方である、付記１５記載のOONVコントローラ。
【符号の説明】
【００５５】
１２  伝送媒体
１０２  ネットワーク要素
２００  オブジェクト指向のネットワーク仮想化（OONV）アーキテクチャ
２０２  ソフトウェア・プログラムされたネットワーキング（SPN）オペレーティング・システム（OS）
２０４  SPN対応ネットワーク
２１４  仮想ネットワーク・オブジェクト（VNO）プール
２２０  クラウド・アプリ
２２２  ネットワーク・オペレーター
２２４  クラウド・プロバイダー
２２６  SDNコントローラ
２２８  新たなクラウド・アプリ
２３０  VNO裁定器
３００  仮想ネットワーク・サービスを提供する方法
３０２  SPN  OSにおいてVNOをインスタンス化。VNOはSPN  OSのユーザーに提供される仮想ネットワーク・サービスを表わす。仮想ネットワーク・サービスは、物理的ネットワークに基づく仮想ネットワークにおける仮想ノードおよび仮想リンクを指定する。VNOは、識別子、プロパティおよび該VNOによってカプセル化される機能のための内的メソッドを含む
３０４  ユーザーが、SPN  OSによってサポートされるAPIを使ってVNOと連絡することを可能にする
３０６  VNOが、SPN  OSにおいてインスタンス化されている第二のVNOと通信することを可能にする
３０８  物理的ネットワーク資源を制御するためにSPN  OSが物理的ネットワークに制御コマンドを送ることを可能にする
４００  仮想ネットワーク・サービスを提供する方法
４０２  VNOをインスタンス化するためのユーザーからのインスタンス化コマンドをSPN  OSにおいて受領。該インスタンス化コマンドは、VNOの属性を指定するパラメータを含む
４０４  VNO裁定器によって、VNOの健全性検査およびサービス可能性検査を含むVNOの検証を実行
４０６  VNOの検証成功？
４０８  VNOのための有効なサービス・パターンを含む、VNOのためのサービス提案を、VNO裁定器によって、生成
５００  オブジェクト指向のネットワーク仮想化（OONV）コントローラ
５０１  プロセッサ
５１０  メモリ
５２０  ネットワーク・インターフェース
５４０  情報記憶部
【図１】
2015204614.tif 000004
【図２】
2015204614.tif 000005
【図３】
2015204614.tif 000006
【図４】
2015204614.tif 000007
【図５】
2015204614.tif 000008