(57)【要約】  サービスプロバイダネットワークにおいて複数のインスタンスを有するインラインサービスを配置するためのシステム及び方法である。１つの実装において、上記サービスプロバイダネットワークのトポロジーと、そこに配置されるべきサービスとが定義される。サービスインスタンス数などのサービスチェーン化ポリシー要件を入力として用いて、全体としてのネットワークメトリックが全ての加入者データフローについて最適化されるように、それら複数のインスタンスがネットワーク内に配置される。【選択図】図１Ａ
2016533689.tif 000002
【特許請求の範囲】
【請求項１】
サービスプロバイダネットワーク（１００）においてサービスを配置するための方法（２００，３００）であって、
前記サービスプロバイダネットワーク（１００）のトポロジーを定義すること（２０２）と、
前記サービスプロバイダネットワーク（１００）内に配置されるべきサービス（１１２）のセットを定義すること（２０４）と、少なくとも１つのサービスは複数のインスタンスで提供されることと、
複数の加入者データフローについての要件のセットを判定すること（２０６）と、
各要件は、各加入者データフローについての通過すべきサービスのシーケンスであることと、
前記サービスプロバイダネットワーク（１００）に関連付けられるネットワークメトリックが全ての加入者データフローについて最適化されるように、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに対して、複数のインスタンスを有する前記少なくとも１つのサービスを含む前記サービス（１１２）を配置すること（２０８）と、
を含む方法（２００，３００）。
【請求項２】
最適化されるべきネットワークメトリックは、全ての加入者データフローについての、帯域幅メトリック、合計遅延、合計距離、及び合計ホップ数、のうちの少なくとも１つを含む、請求項１に記載の方法（２００，３００）。
【請求項３】
前記サービスを配置すること（２０８）は、
各サービスについてサービス依存関係を定義し（３０２）及び前記サービス依存関係をランク付けすることと、
前記サービス依存関係の前記ランク付け及び配置されるべき前記サービスのインスタンス数のうちの少なくとも一方に基づいて、各サービスについて重みを決定すること（３０４）と、
前記ネットワークメトリックの最適化に基づいて、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに、インスタンスを含む各サービスを反復的に配置すること（３０６）と、前記反復的な配置は、前記サービス（１１２）の全ての重みのうちの最大の重みの値を有する前記サービスから開始されることと、
をさらに含む、請求項２に記載の方法（２００，３００）。
【請求項４】
前記ネットワークメトリックは、前記サービスの反復的な各配置において決定される局所最適化の仕組みに基づいて最適化される、請求項３に記載の方法（２００，３００）。
【請求項５】
前記サービスプロバイダネットワークに関連付けられる管理ノードへ、サービス配置情報を提供すること（３０８）、
をさらに含む、請求項１に記載の方法（２００，３００）。
【請求項６】
前記サービスプロバイダネットワーク（１００）は、論理的に一元化されたコントローラノード（１１６）により制御されるソフトウェア定義ネットワークとして構成され、サービス配置情報は、前記論理的に一元化されたコントローラノード（１１６）へ提供される、請求項１に記載の方法（２００，３００）。
【請求項７】
前記論理的に一元化されたコントローラノード（１１６）は、ＯｐｅｎＦｌｏｗプロトコルを用いて複数のデータスイッチングノード（１１０）のデータ転送動作を制御するように構成されるＯｐｅｎＦｌｏｗコントローラを含む、請求項６に記載の方法（２００，３００）。
【請求項８】
サービスプロバイダネットワーク（１００，２００）と共に動作するように構成されるネットワークコントローラノード（４００）であって、
１つ以上のプロセッサ（４０４）と、
前記１つ以上のプロセッサ（４０４）へ連結される永続的なメモリ（４０９）と、
を備え、
前記永続的なメモリ（４０９）は、１つ以上のプロセッサ（４０４）により実行可能な命令を含み、
前記命令は、
前記サービスプロバイダネットワーク（１００）のトポロジーを定義（２０２）し、
前記サービスプロバイダネットワーク（１００）内に配置されるべきサービス（１１２）のセットであって、少なくとも１つのサービスが複数のインスタンスで提供される、当該セットを定義（２０４）し、
複数の加入者データフローについての要件のセットであって、各要件が各加入者データフローについての通過すべきサービスのシーケンスである、当該セットを判定（２０６）し、
前記サービスプロバイダネットワーク（１００）に関連付けられるネットワークメトリックが全ての加入者データフローについて最適化されるように、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに対して、複数のインスタンスを有する前記少なくとも１つのサービスを含む前記サービス（１１２）を、サービスプロバイダネットワーク（１００）において割り当てる（２０８）、
ように構成される、ネットワークコントローラノード（４００）。
【請求項９】
最適化されるべきネットワークメトリックは、全ての加入者データフローについての、帯域幅メトリック、合計遅延、合計距離、及び合計ホップ数、のうちの少なくとも１つを含む、請求項８に記載のネットワークコントローラノード（４００）。
【請求項１０】
前記サービスを割り当てる（２０８）前記命令は、
各サービスについてサービス依存関係を定義し（３０２）及び前記サービス依存関係をランク付けするための命令と、
前記サービス依存関係の前記ランク付け及び配置されるべき前記サービスのインスタンス数のうちの少なくとも一方に基づいて、各サービスについて重みを決定する（３０４）ための命令と、
前記ネットワークメトリックの最適化に基づいて、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに対して、インスタンスを含む各サービスを反復的に割り当てる（３０６）ための命令と、
をさらに含み、
前記反復的な割り当ては、前記サービス（１１２）の全ての重みのうちの最大の重みの値を有する前記サービスから開始される、
請求項９に記載のネットワークコントローラノード（４００）。
【請求項１１】
前記ネットワークメトリックは、前記サービスの反復的な各割り当てにおいて決定される局所最適化の仕組みに基づいて最適化される、請求項１０に記載のネットワークコントローラノード（４００）。
【請求項１２】
前記永続的なメモリ（４０９）は、前記サービスプロバイダネットワークに関連付けられる管理ノードへ、サービス割り当て情報を提供（３０８）するための命令、をさらに含む、請求項８に記載のネットワークコントローラノード（４００）。
【請求項１３】
前記サービスプロバイダネットワーク（１００）は、ソフトウェア定義ネットワークとして構成され、前記ネットワークコントローラノード（４００）は、複数のデータスイッチングノード（１１０）のデータ転送動作を制御するためのＯｐｅｎＦｌｏｗプロトコルと共に動作可能である、請求項８に記載のネットワークコントローラノード（４００）。
【請求項１４】
サービスプロバイダネットワーク（１００，２００）内のネットワークコントローラノード（４００）として動作するように構成されるコンピュータシステムにより実行された場合に、
前記サービスプロバイダネットワーク（１００）のトポロジーを定義する動作（２０２）と、
前記サービスプロバイダネットワーク（１００）内に配置されるべきサービス（１１２）のセットであって、少なくとも１つのサービスが複数のインスタンスで提供される、当該セットを定義する動作（２０４）と、
複数の加入者データフローについての要件のセットであって、各要件が各加入者データフローについての通過すべきサービスのシーケンスである、当該セットを判定する動作（２０６）と、
前記サービスプロバイダネットワーク（１００）に関連付けられるネットワークメトリックが全ての加入者データフローについて最適化されるように、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに対して、複数のインスタンスを有する前記少なくとも１つのサービスを含む前記サービスを割り当てる動作（２０８）と、
を実行する格納済みの命令、を含む非一時的なコンピュータ読取可能な媒体。
【請求項１５】
最適化されるべきネットワークメトリックは、全ての加入者データフローについての、帯域幅メトリック、合計遅延、合計距離、及び合計ホップ数、のうちの少なくとも１つを含む、請求項１４に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１６】
前記サービスを割り当てる（２０８）ための前記命令は、
各サービスについてサービス依存関係を定義し（３０２）及び前記サービス依存関係をランク付けするための命令と、
前記サービス依存関係の前記ランク付け及び配置されるべき前記サービスのインスタンス数のうちの少なくとも一方に基づいて、各サービスについて重みを決定する（３０４）ための命令と、
前記ネットワークメトリックの最適化に基づいて、前記サービスプロバイダネットワーク（１００）の１つ以上のネットワークノードに対して、インスタンスを含む各サービスを反復的に割り当てる（３０６）ための命令と、
をさらに含み、
前記反復的な割り当ては、前記サービス（１１２）の全ての重みのうちの最大の重みの値を有する前記サービスから開始される、
請求項１５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１７】
前記ネットワークメトリックは、前記サービス（１１２）の反復的な各割り当てにおいて決定される局所最適化の仕組みに基づいて最適化される、請求項１６に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１８】
前記サービスプロバイダネットワーク（１００）に関連付けられる管理ノードへ、サービス割り当て情報を提供する（３０８）ための命令、をさらに含む、請求項１４に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１９】
前記サービスプロバイダネットワーク（１００）は、ネットワークコントローラノード（４００）により制御されるソフトウェア定義ネットワークとして構成され、サービス配置情報は、前記ネットワークコントローラノード（４００）へ提供される、請求項１４に記載の非一時的なコンピュータ読取可能な媒体。
【請求項２０】
前記ネットワークコントローラノード（４００）は、論理的に一元化されたコントローラ（１１６）として構成される、請求項１９に記載の非一時的なコンピュータ読取可能な媒体。
【請求項２１】
前記論理的に一元化されたコントローラ（１１６）は、ＯｐｅｎＦｌｏｗプロトコルを用いて複数のデータスイッチングノード（１１０）のデータ転送動作を制御するように構成されるＯｐｅｎＦｌｏｗコントローラを含む、請求項２０に記載の非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本出願は、以下の米国特許出願の主題に関連する主題を開示する：（ｉ）“METHOD  AND  APPARATUS  FOR  PLACING  SERVICES  IN  A  NETWORK”（Ericsson  Ref.  No.：P38903-US1)，出願番号：１３／７５１，８２６，Ying  Zhang及びNeda  Beheshti-Zavarehの名の下に２０１３年１月２８日出願、（ｉｉ）“CHAINING  OF  INLINES  SERVICES  USING  SOFTWARE  DEFINED  NETWORKING”（Ericsson  Ref.  No.：P37236-US2)，出願番号：１３／５５６，４５６,Geoffrey  Lefebvre、Erik  Rubow及びRavi  Manghirmalaniの名の下に２０１２年７月２４日出願；これらの各々は、全体として参照によりここに取り入れられる。
【０００２】
［開示の分野］
本開示は、概して、ネットワークの分野に関する。より具体的には、何らの限定の形ではないものの、本開示はネットワーク内で複数インスタンスを有するサービスの配置を対象とする。
【背景技術】
【０００３】
事業者は、加入者のトラフィックを管理するために、ＤＰＩ（Deep  Packet  Inspection）、ロギング／計量／課金／高度化課金、ファイアウォール、ＩＤＰ（Intrusion  Detection  and  Prevention）、ＮＡＴ（Network  Address  Translation）などといった、インラインサービスと呼ばれる様々なミドルボックスサービス又はアプリケーションを使用する。これらサービスは、スループット及びパケット検査ケイパビリティについて高い要件を有する。それらは、エンドユーザにとって透過的であり又は非透過的であり得る。インラインサービスは、専用の物理ハードウェア上で、又は仮想マシン内でホスティングされることができる。
【０００４】
トラフィックが１つよりも多くのインラインサービスを経なければならない場合には、サービスチェーン化（service  chaining）が必要とされ得る。そのうえ、１つよりも多くのサービスチェーンが可能である場合、事業者は、正しいトラフィックを正しいインラインサービスパスへ誘導するようにネットワーキング基盤を構成しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本特許の開示は、サービスプロバイダネットワークにおいて複数のインスタンス（“サービスレプリカ”ともいう）を有するインラインサービスを配置するための方式を広く対象とする。
【課題を解決するための手段】
【０００６】
１つの観点において、サービスプロバイダネットワーク内にサービスインスタンスを配置するための方法の一実施形態が開示される。主張される実施形態は、上記サービスプロバイダネットワークのトポロジーを定義することと、上記サービスプロバイダネットワーク内に配置されるべきサービスのセットを定義することと、少なくとも１つのサービスは複数のインスタンスで提供されることと、複数の加入者データフローについての要件のセットを判定することと、各要件は、各加入者データフローについての通過すべきサービスのシーケンスであることと、上記サービスプロバイダネットワークに関連付けられる全体的なネットワークメトリックが全ての加入者データフローについて最適化されるように、上記サービスプロバイダネットワークの１つ以上のネットワークノードに対して、サービス及びもしあればそれらの複数のインスタンスを配置し又は割り当てることと、を含む。一例としての実装において、最適化されるべきネットワークメトリックは、全ての加入者フローについての、帯域幅メトリック（例えば、帯域幅利用率）、合計遅延及び／若しくは合計距離、並びに合計ホップ数、のうちの少なくとも１つを含む。さらなる実装において、上記サービス配置の方法論は、各サービスについてサービス依存関係を定義し及び上記サービス依存関係をランク付けすることと、上記サービス依存関係のランク付け、各サービスのインスタンス数、又は双方に基づいて、各サービスについて重みを決定することと、最大の重みの値を有するサービスから始まる選択されたネットワーク／性能メトリックの局所最適化のための局所最適化メカニズム（例えば、貪欲アルゴリズムの使用）に基づいて、複数のネットワークノードに対して、各サービス及びそのインスタンスを反復的に配置し又は割り当てることと、をさらに含み得る。
【０００７】
他の観点において、ネットワークコントローラノードの一実施形態が開示される。当該ネットワークコントローラノードは、１つ以上のプロセッサと、当該プロセッサにより実行された場合に上で説明した方法の一実施形態を実行するように構成される命令群を有する永続メモリモジュールとを備える。またさらなる観点において、上に明記した方法の１つ以上の実施形態を実行するための、格納済みの命令群を収容した非一時的なコンピュータ読取可能な媒体の一実施形態が開示される。１つのバリエーションにおいて、ネットワークコントローラノードの一実施形態は、ソフトウェア定義ネットワーク内に設置される論理的に一元化されたコントローラとして実装されてもよい。さらなるバリエーションにおいて、上記論理的に一元化されたコントローラノードは、複数のネットワークノードのデータ転送動作を制御するように構成されるＯｐｅｎＦｌｏｗコントローラを含み得る。ある実施形態はＳＤＮアーキテクチャに関連するが、本発明は必ずしもそれに限定されず、ここでの教示はトラフィックステアリングの要件を有するいかなるネットワークにおいても実践され得ることが理解されるであろう。
【発明の効果】
【０００８】
本発明の利点は、限定ではないものの、１つ以上のサービスチェーン化ポリシーを有するサービスプロバイダネットワーク内で、複数インスタンスのサービスの配置及び／又は割り当てが最適化されること、を含む。既定の割り当てを動的に変更することができるため、サービスネットワーク事業者は、スケーラビリティに影響を与えることなく、より多くのサービスをオンラインに持ち込むことができる。多様な実施形態のさらなる特徴は、従属請求項において記述された通りである。以下の説明及び添付図面を見ることで、実施形態の追加的な恩恵及び利点が明らかとなるであろう。
【図面の簡単な説明】
【０００９】
本開示の実施形態は、限定の形ではなく例示の形で添付図面の図に示されており、その中で類似の参照は同様の要素を指し示す。留意すべきこととして、本開示における“一”実施形態又は“１つの”実施形態への様々言及は、必ずしも同じ実施形態へ向けたものではなく、そうした言及は少なくとも１つを意味し得る。さらに、具体的な特徴、構造又は特性が一実施形態との関連において説明される場合、明示的に説明されているか否かに関わらず、そうした特徴、構造又は特性を他の実施形態との関連で作用させることは当業者の知識の範囲内であると考えられる。
【００１０】
添付図面は、本開示の１つ以上の例示的な実施形態を示すために、本明細書へ取り入れられ、及びその一部をなす。本開示の多様な利点及び特徴が、添付の特許請求の範囲との関連において考慮される以下の詳細な説明から、次の添付図面の図を参照しつつ理解されるであろう。
【００１１】
【図１Ａ】本特許の開示の１つ以上の実施形態が実践され得る、一例としてのネットワークを描いている。
【図１Ｂ】本特許の開示の１つ以上の実施形態が実践され得る、追加的な例としてのネットワークを描いている。
【図２】本特許の開示のサービス配置及び／又は割り当ての仕組みの一実施形態に従って生じ得るイベントのシーケンスに関するフローチャートを描いている。
【図３】本特許の開示のサービス配置及び／又は割り当ての仕組みの一実施形態に従って生じ得るイベントのシーケンスに関するフローチャートを描いている。
【図４】本特許の開示の一実施形態に係るサービス配置及び／又は割り当ての仕組みを実装するように構成され得るネットワークコントローラノードのブロック図を描いている。
【発明を実施するための形態】
【００１２】
以下の説明では、本特許の開示の１つ以上の実施形態に関連して、多くの特定の詳細が明記される。しかしながら、そうした特定の詳細が無くとも１つ以上の実施形態が実践され得ることが理解されるべきである。他の例では、例示的な実施形態の理解を曖昧にすることのないように、よく知られた回路、サブシステム、コンポーネント、構造及び技法は、詳細には示されていない。それに応じて、本特許の開示の１つ以上の実施形態がそうした特定のコンポーネントに基づく詳細が無くとも実践され得ることが、当業者には理解されるであろう。さらに、当業者は、ここで明記される詳細な説明の助けを得て、及び添付図面を考慮に入れて、過度の実験を行うことなく１つ以上の実施形態を活用することができるようになると認識されるはずである。
【００１３】
加えて、以下の説明、特許請求の範囲又はそれら双方では、“連結される（coupled）”及び“接続される（connected）”という用語が、その派生語と共に使用され得る。これら用語は互いに対して必ずしも同義語ではないことが理解されるべきである。“連結される”は、互いに物理的に又は電気的に直接接触してもしなくてもよい２つ以上の要素が互いに協働し又はインタラクションすることを示すために使用され得る。“接続される”は、互いに連結される２つ以上の要素間における通信の確立、即ち通信面での関係を示すために使用され得る。さらに、ここに明記される１つ以上の例示的な実施形態において、概していうと、エレメント、コンポーネント又はモジュールは、エレメントがある機能を実行可能でありさもなければ実行するように構造的に構成されている場合に、当該機能を実行するように構成される、と言える。
【００１４】
ここで用いられるものとして、ネットワークエレメント又はノード（例えば、ルータ、スイッチ、ブリッジ）は、ネットワーク上の他の機器（例えば、他のネットワークエレメント、エンドステーションなど）と通信可能に相互接続するハードウェア及びソフトウェアを含む、１つのネットワーキング機器である。いくつかのネットワークエレメントは、複数のネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２アグリゲーション、セッションボーダコントロール、ＱｏＳ（Quality  of  Service）、及び／又は加入者管理など）についてのサポートを提供し、及び／又は複数のアプリケーションサービス（例えば、データ、音声、及び映像）についてのサポートを提供する、“マルチサービスネットワークエレメント”であってよい。加入者エンドステーション（例えば、サーバ、ワークステーション、ラップトップ、ネットブック、パームトップ、携帯電話、スマートフォン、マルチメディアフォン、ＶＯＩＰ（Voice  Over  Internet  Protocol）フォン、ユーザ機器、端末、ポータブルメディアプレイヤー、ＧＰＳユニット、ゲームシステム、セットトップボックス）は、インターネットなどのパケット交換型のワイドエリアパブリックネットワーク上で提供されるコンテンツ／サービスにアクセスし又はそれらを消費し得る。加入者エンドステーションは、インターネット上にオーバレイされる（例えば、トンネリングされる）仮想プライベートネットワーク（ＶＰＮ）上で提供されるコンテンツ／サービスにもアクセスし又はそれらを消費し得る。具体的な実装に関わらず、理解されるべきこととして、本特許の開示の１つ以上の実施形態は、複数のネットワークノード（例えば、トポロジー的な配置において相互接続されるスイッチ群）を有するサービスプロバイダネットワークに関与してよく、複数のインスタンス（即ち、“サービスレプリカ”）を有する１つ以上のサービスが、既知の又はさもなければ予め構成されるサービス要件に従って、（任意のタイプの上述した加入者エンドステーションにより生成され又はそれに関与する）複数の加入者データフローにより通過されるために配置され得る。
【００１５】
本特許の開示の１つ以上の実施形態は、ソフトウェア、ファームウェア及び／又はハードウェアの様々な組み合わせを用いて実装されてよい。よって、図（例えば、フローチャート）に示す１つ以上の技法が、１つ以上の電子デバイス（例えば、エンドステーション、ネットワークエレメントなど）上に格納され、実行されるコード及びデータを用いて実装され得る。そうした電子デバイスは、非一時的なコンピュータ読取り可能な記憶媒体（例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読取り専用メモリ、フラッシュメモリデバイス、相変化メモリなど）、及び一時的なコンピュータ読取り可能な送信媒体（例えば、搬送波、赤外線信号、デジタル信号といった、電子、光、音響、又は他の形式の伝搬される信号）といったコンピュータ読取り可能な媒体を用いて、コード及びデータを格納し、及び（内部的に、及び／又はネットワーク上の他の電子デバイスと）通信し得る。加えて、そのような電子デバイスは、典型的には、１つ以上のストレージデバイス（非一時的なマシン読取可能な記憶媒体）、ユーザ入力／出力デバイス（例えば、キーボード、タッチスクリーン、ポインティングデバイス及び／又はディスプレイ）、並びにネットワーク接続といった、１つ以上の他のコンポーネントに連結される１つ以上のプロセッサのセットを含み得る。プロセッサのセットと他のコンポーネントとの連結は、典型的には、任意の既知の（例えば、シンメトリックな／共有型のマルチプロセシング）又は今のところ知られていないアーキテクチャで構成される、１つ以上のバス及びブリッジ（バスコントローラとも呼ばれる）を通じてなされ得る。そのため、所与の電子デバイスのストレージデバイスは、本開示の１つ以上の技法を実装する目的で、当該電子デバイスの１つ以上のプロセッサ上での実行のためのコード及び／又はデータを記憶するように構成され得る。
【００１６】
特に図１Ａを参照すると、そこには、１つ以上の入口ノード１０６−１〜１０６−Ｍと、１つ以上の出口ノード１０８−１〜１０８−Ｋとを有する一例としてのサービスプロバイダネットワーク１００が描かれており、当該ネットワークにおいて複数インスタンスのサービスを配置する目的で、本特許の開示の１つ以上の実施形態が実践され得る。参照番号１１０−１〜１１０−Ｌは、入口ノード１０６−１〜１０６−Ｍにてソースドメインから受信されたインカミングのデータパケットフロー１０２−１〜１０２−Ｎの、出口ノード１０８−１〜１０８−Ｋへのルーティングを有効化し、出口ノード１０８−１〜１０８−Ｋに外部ドメインへとアウトゴーイングのデータパケットフロー１０４−１〜１０４Ｎを出させる目的で、トポロジー的な構成として互いに連結される複数のデータ転送ノードを指す。理解されるべきこととして、ネットワーク１００内のデータパケットのルーティングは、例えばリンクステートルーティングプロトコル又は距離ベクタルーティングプロトコルといった任意の既知のクラスの、ネットワーク内の任意の２つのノードの間のルーティングプロトコルを用いて有効化されてよい。参照番号１１２−１〜１１２−Ｉは、ネットワーク１００内に配置されるべき１つ以上のインラインサービスを指し、インカミングの加入者データフロー１０２−１〜１０２−Ｎは、加入者及び／又は事業者のポリシー、並びにサービスチェーン化要件などに基づいて、シーケンシャルな順序でそれらインラインサービスを通過することを要し得る。例示として、そうしたサービスは、ＤＰＩ（Deep  Packet  Inspection）、ウィルススキャン（ＶＳ）、ＵＤＰ（Intrusion  Detection  and  Prevention）、ファイアウォール（ＦＷ）フィルタリング、及びＮＡＴ（Network  Address  Translation）などを含み得る。さらに、そうしたインラインサービスの１つ以上は、複数のレプリカのインスタンスで提供されてよく、例えば負荷分散のために、それらインスタンスがネットワーク事業者により配備され得る。
【００１７】
説明として、例示したサービスプロバイダネットワーク１００は、例えば、ＯＦ（OpenFlow）プロトコル、ＦｏｒＣＥＳ（Forwarding  and  Control  Element  Separation）プロトコルなどといった既知のプロトコルに基づくソフトウェア定義ネットワーク（ＳＤＮ）として構築されてもよく、但し、ここで説明される実施形態は他のネットワークアーキテクチャとの関係においても実践され得ることが理解されるべきである。一例としてのＳＤＮアーキテクチャは、典型的には、ネットワークエレメントの制御プレーン及びデータプレーンの隔離（separation）及び分離（decoupling）に関与し、それによりネットワークの知能部（intelligence）及び状態制御を論理的に一元化することができ、基礎となるネットワーク基盤がアプリケーションから抽象化される。ＳＤＮベースのサービスの１つの実装は、従って、複数のデータ転送ノードあるいはスイッチを監督し及び制御するように構成される、ネットワーク内の１つ以上のサービスを実行するネットワークワイドな制御プラットフォームを含み得る。それに応じて、（本特許出願のいくつかの実施形態の目的のために、“中央コントローラ”として言及されることのある）ネットワークワイドな制御プラットフォームと、データスイッチング／転送ノードとの間に、標準化されたインタフェースが提供されてよく、それにより、高いスケーラビリティ、フローベースのサービスチェーン化、マルチテナンシー及びセキュアな基盤共有、仮想オーバレイネットワーキング、並びに効率的な負荷分散などが容易化される。対照的に、旧来のネットワークアーキテクチャは、総合的な設計を遵守し、そこでは制御プレーン及びデータ転送プレーンが同じネットワークエレメントにおいて緊密に連結され、結果的に通常は過度に込み入った制御プレーン及び複雑なネットワーク管理がもたらされ、複数の欠点及び欠陥が伴う。
【００１８】
典型的なＳＤＮスイッチングノードは、パケットのルックアップ及び転送を実行するフローテーブル、並びに、当該スイッチを中央コントローラへと接続してそれらの間でオープンかつ標準的なプロトコルを用いてコマンド及びパケットを送信することを可能とするセキュアチャネル、を含む。転送エレメントあるいはスイッチの主なタスクは、コントローラによりプログラミングされるフローテーブル内のルールに従って、入口ポートから出口ポートへとパケットを転送することである。フローテーブルは、フローエントリのセット、アクティビティカウンタ、及び適合するパケットに適用すべき１つ以上のアクションのセットを含み得る。例えば、フローエントリは、次のようなアクションのセットと共に構成され得る：所与のポートへのパケットの転送、パケットヘッダ内のあるビットの修正、コントローラへのパケットのカプセル化、又は単純なパケットの破棄。新たなフローにおける最初のパケットについて、スイッチは、通常、そのパケットをコントローラへと転送して、新たなフローエントリのプログラミングをトリガする。スイッチは、例えばＩＣＭＰ（Internet  Control  Message  Protocol）パケットなどの全ての低速パス（slow-path）パケットを処理のためにコントローラへと転送するために使用されることもできる。理解されるべきこととして、あるデータパケットフローの概念は、例えば、ＴＣＰ（Transmission  Control  Protocol）接続、特定のＭＡＣ（Media  Access  Control）アドレス若しくはＩＰ（Internet  Protocol）アドレスからの全てのトラフィック、同じＶＬＡＮ（Virtual  LAN）タグを伴う全てのパケット、同じスイッチポートからの全てのパケット、又は１つ以上のユーザ定義の制御フラグを有する全てのパケット、として広く定義され得ると共に、上述した条件の任意の組み合わせを含み得る。
【００１９】
図１Ａに示した例示的なネットワーク実装に関して、インタフェース１１６、１１８により例示される通りの残余のネットワークコンポーネントに対して、参照番号１１５は、標準化されたインタフェースアーキテクチャを用いてネットワークの制御プレーン動作を実装するための、ネットワークワイドなコントローラを指す。ネットワークコントローラ１１５は、データプレーンスイッチのセット内の例えば相互接続及びルーティングを定義することの一部として、フローテーブルへのフローエントリの追加及びフローエントリの削除を行うように動作可能であり得る。ネットワークコントローラ１１５は、スイッチからの情報の収集及びスイッチへのルーティング命令の配信といった、ネットワーク状態の配布をもハンドリングする。ネットワークコントローラ１１５は、何らかの新たなアドレッシング、ルーティング、及び複雑なパケット処理アプリケーションをサポートするようにプログラミングされることもできる。そのため、ネットワークコントローラ１１５を例示的なサービスプロバイダネットワーク１００の“頭脳（brain）”と見なしてもよく、スイッチは、適切に動作するために、少なくとも１つのコントローラ機能性へ接続することを要し得る。
【００２０】
理解されるべきこととして、図１Ａの例示的なネットワーク１００の入口ノード及び出口ノードは、ネットワーク１００の外周に配置され、入口ノード１０６−１〜１０６−Ｎは、インカミングのトラフィックフローを分類して、サービスチェーン化ポリシー及び他のサービス要件（サービス要件データベース１１４としてまとめて描かれている）に基づき、コントローラノード１１５により実行されるトラフィックステアリングの仕組みを用いて、次のサービスへ向けて操舵する。図１Ｂへ移ると、そこには、サービスプロバイダネットワーク構成１５０の、ある面で簡略化され及びより具体化された様子が示されており、そこで一実施形態に従ってサービス配置／割り当ての仕組みが実践され得る。図示したように、ＶＳ１６８、ファイアウォール１７０、ＤＰＩ１８２、コンテンツキャッシュ１９０といったサービスが、１つ以上の外周ノード又はスイッチ１６２、１６４、１６６、１８０、及び１つ以上の内側ノード又はスイッチ１７２、１７４、１７６、１７８を用いて、ネットワークを介して加入者へと提供される。上で述べた説明に従い、ＯＦ（OpenFlow）プロトコルに従って提供される論理的に一元化されたコントローラ１６５が、スイッチ及び例えばサービスなどのミドルボックスを管理するために使用される。一例としてのステアリングアーキテクチャにおいて、サービスパスは、加入者、特定のアプリケーション及び所要のサービス順序に基づいて構成されてよく、方向固有としてあるいは一方向的なものとして提供されてよい。即ち、アップストリーム及びダウンストリームのトラフィックのために異なるサービスパスが特定され得る。図１Ｂでは、２つの異なるサービスパスが示されている。（例えば無線基盤１５４からのモバイルネットワークトラフィックに関与する）１つの加入者向けのサービスパス１５６は、外周スイッチ１８０を通じて退出し及びボーダゲートウェイ１９２を介してインターネット１９４へと入る前に、ＶＳ１６８、ＤＰＩ１８２及びコンテンツキャッシュ１９０を通過するアップストリームトラフィックを示す。一方で、（例えば加入者ホーム設備１５２からの固定ネットワークトラフィックに関与する）他の（又は同じ）加入者向けのサービスパス１５８は、それらサービスの全てを迂回する。
【００２１】
スイッチ１６２、１６４、１６６、１８０は、ネットワークの外周に提供されるＯｐｅｎＦｌｏｗノードとして、インカミングトラフィックを分類し、及びそれぞれのフロー１５６、１５８に関する適用可能なサービスチェーン化ポリシーに応じたコントローラ１６５の制御の下でそれを操舵する、ように構成されてよい。１つ以上のサービスを通過することを要するポリシーに加えて、サービスを迂回するポリシーが提供されてもよい。理解されるべきこととして、そうしたサービス迂回ポリシーは、ネットワーク内のリソースを節約するために有益であり得る。さらに、当業者は、図１Ｂの実施形態において、外周スイッチ１６２、１６４、１６６、１８０がサービス及び／又は他のゲートウェイノードの接続先となるネットワークノードであることを認識するであろう。一方、内側スイッチ１７２、１７４、１７６、１７８は、レイヤ２（Ｌ２）スイッチングを用いてトラフィックを単純に転送するように構成されてよく、よって他のスイッチへ接続するのみであってよい。それに応じて、１つの実装において、内側スイッチ１７２、１７４、１７６、１７８は、コントローラ１６５により制御されるＯＦスイッチであってもなくてもよい。内側スイッチがＯＦ準拠のスイッチであるかに関わらず、中央コントローラ１６５により実行されるステアリングの仕組みは、２ステップのプロセスを内包し得る。第１のステップは、インカミングパケットを分類し、予め定義される加入者、アプリケーション及び他の順序付けポリシーに基づいて、それらにサービスパスを割り当てる。第２のステップは、その割り当てられたサービスパスに沿って最新の位置に基づき次のサービスへとパケットを転送することを内包する。こうした２ステップのトラフィックステアリングプロセスは、任意のボーダルータの間で、それらにいくつのスイッチが接続しているとしても、１回実行されればよいだけである。ＳＤＮアーキテクチャにおける例示的なトラフィックステアリング実装及び単一インスタンスサービスの配置に関する追加的な詳細は、次の共通に所有されている同時係属中の米国特許出願のうちの１つ以上において見出され得る：
（ｉ）“CHAINING  OF  INLINES  SERVICES  USING  SOFTWARE  DEFINED  NETWORKING”（Ericsson  Ref.  No.：P37236-US2)，出願番号：１３／５５６，４５６,Geoffrey  Lefebvre、Erik  Rubow及びRavi  Manghirmalaniの名の下に２０１２年７月２４日出願
（ｉｉ）“METHOD  AND  APPARATUS  FOR  PLACING  SERVICES  IN  A  NETWORK”（Ericsson  Ref.  No.：P38903-US1)，出願番号：１３／７５１，８２６，Ying  Zhang及びNeda  Beheshti-Zavarehの名の下に２０１３年１月２８日出願
これらは上で相互参照されており、参照によりここに取り入れられる。
【００２２】
上述した例示的なネットワークアーキテクチャの１つの実装において、以下の観点又は要因のうちの１つ以上が、本特許出願のマルチインスタンスサービス配置方式の一実施形態に従って考慮され得る。第一に、各加入者は、当該加入者のトラフィックフローが通過する必要のあるサービスの正確な順序又はシーケンス（即ち、特定の加入者向けのサービス要件）を特定することを要し得る。例えば、ある加入者は、当該加入者のトラフィックが最初にファイアウォールサービスを、次いでＤＰＩサービスを経由すべきであることを特定し得る。第二に、サービスプロバイダ／事業者は、例えば負荷分散、帯域幅最適化及び遅延最小化などの多様なトラフィック管理の理由のために、サービスの複数のインスタンスを配備し得る。事例として、インラインサービスネットワークは、ファイアウォールサービスの３つのインスタンスと、ＤＰＩの２つのインスタンスとを有してもよく、これはいくつかの実装において仮想化されたサービス製品として提供されてもよい。追加的に、１つの加入者の複数のフローを、負荷分散のために、サービスの互いに異なるインスタンス又はレプリカへと割り当てることができる。一方で、サービスインスタンスの割り当ての設定が、既定の割り当てから動的に変更されてもよい。１つの構成において、既定の割り当ての戦略は、遅延を最小化する目的で、トラフィックフローを地理的に最も近いサービスインスタンス／レプリカへとルーティングすることであり得る。
【００２３】
従って、当業者は、各サービスについて利用可能なインスタンスの数がここで明記される教示に係るサービス配置方式の一実施形態においてとりわけ重要な要因又は入力であることを認識するであろう。さらに、以下に詳細に説明されるように、最も余裕の無い（例えば、最も少ない数のインスタンスしか有しないのに、多数のサービスパス及び／又は大量のデータトラフィックが通過する）リソースであると推定されさもなければ判定されたサービスは、ネットワーク内で最初に位置付けられ又は配置され、追加的なサービスがその後に反復的に配置されることになる。
【００２４】
本特許出願の目的のために、マルチインスタンスサービス配置の仕組みは、ネットワーク内のサービスの配置に対して、適切な全体的なネットワークメトリックを最小化し、最大化し又はさもなければ最適化するような最適化メカニズムとして系統的に説明され得る。例えば、マルチインスタンスサービス配置の仕組みの一実施形態は、全ての加入者トラフィック（即ち、データフロー）について通過される合計遅延又は距離が最小化される形で実装されてもよい。ネットワークがどのように構成されるかに依存して、マルチインスタンスサービス配置の仕組みの他の実施形態が、ネットワーク内の加入者データフローによりとられる合計ホップ数（即ち、ホップカウント）が最小化されるという形で実装されてもよい。またさらなる実施形態において、合計ネットワーク帯域幅消費／割り当てといった他の性能メトリックが、複数のサービスインスタンスの配置のために最適化されてもよい。
【００２５】
サービス配置の仕組みを実装するための多様な処理、ステップ、動作及びブロックを定式化するために、一例としてのサービスプロバイダネットワークがグラフ理論からのある構成概念（construct）を用いて抽象化されてよく、その際、例えばネットワークトラフィック／性能メトリックといった予め決定される目的関数が最小化され又はさもなければ最適化される。この目的のために、次の考え方を用いる。例えば上述したトラフィックステアリングの仕組みを有するＯＦネットワークなどの一例としてのネットワークをグラフＧ＝（Ｖ，Ｅ）と表し、ここでノード集合Ｖは、ネットワーク内のスイッチを表現し、エッジ集合Ｅは、ネットワークの所与の接続性又は構成に依存して、スイッチ間のペアごとのリンク又はエッジを表現する。１つの実装において、グラフＧは、重み付けされたエッジを伴う、無方向性の対称的なグラフであってよく、即ち（ｕ，ｖ）  ０  Ｅならば（ｖ，ｕ）  ０  Ｅである。各エッジは、遅延値ｄｕ，ｖに関連付けられ得る。当該遅延値は、単にｄｕ，ｖ＝ｄｖ，ｕ＝１であることができ、これはその遅延がホップカウントとして近似され得ることを意味する。
【００２６】
インラインサービスの集合はＳ＝｛ｓ１，ｓ２，…，ｓｈ｝として表され、ここでの各要素は配置されるべき１タイプのサービスである。各加入者のデータフローは、通過すべき一連のインラインサービスに対して自己の要件を有する。例えば、加入者ｉの要件ｒｉ＝ｉｎｇ０，ｓ１，ｓ３，ｓ５，ｓ２，ｅｇｒ０であり、ｉｎｇ０及びｅｇｒ０は特定の加入者のトラフィックの入口及び出口の位置である。要件の集合はＲ＝｛ｒ１，ｒ２，…，ｒｋ｝であり、合計でｋ個の加入者が存在する。追加的に、各サービスについてのレプリカ数又はインスタンス数Ｎ＝｛ｎ１，ｎ２，…，ｎｈ｝を格納する他の｛１×ｈ｝ベクトル又はレプリカ配列が存在し、これは個々のサービスｓｉがｎｉ個のインスタンスを有することを示す。
【００２７】
サービス配置の目的のために、目的は、全ての候補ＶＮ＝｜Ｖ｜の中の位置のサブセットＭ（｜Ｍ｜＝｜Ｓ｜＝ｈ）をオープンし、ユーザの全てについての合計遅延が最小化されるようにサービスを配置することである。各サービスシーケンスｒｉについて、サービス配置Ｌを所与とすると、ｒｉ内のサービスの全てを通過するための合計遅延を計算することができる。この計算は、次のように記述される：
【００２８】
【数１】
2016533689.tif 000003
【００２９】
ここで、ｄ（ｒｉ）Ｌは、解Ｌの下でのサービスチェーンｒｉの遅延を意味する。要素ａ及びｂは、任意の入口点、出口点、及び任意のサービスインスタンスであり得る。それは、ｒｉ内の全ての連続する入口／出口ノード及びサービス（ａ，ｂ）の間の遅延にわたる総和である。連続する各サービスペア（ｓａ，ｓｂ）についての遅延は、次の解の下でのａとｂとの間のパス内の全てのエッジ（ｕ，ｖ）の和として計算される。
【００３０】
【数２】
2016533689.tif 000004
【００３１】
この解は、次のようにＬを見つけ出す形で定式化され得る：
【００３２】
【数３】
2016533689.tif 000005
【００３３】
本特許の開示の教示に従って、個別の各サービスと他のサービスとの間並びに全ての入口及び出口ノードの間の依存関係を検査することにより、仮想的なグラフが生成される。その後、配置される全てのサービスを基準として、最小の合計性能ペナルティ（このケースでは遅延）に寄与する位置を選択する都度（例えば、貪欲法）、局所最適化ヒューリスティクスを用いて、サービスが反復的に配置され得る。認識されるべきこととして、局所最適化ヒューリスティクスのための目的関数は、サービス配置を有効化する目的で、他のネットワークメトリックを、単独で又は遅延メトリックとの何らかの組み合わせで内包してもよい。
【００３４】
本特許出願の目的のために、サービス依存関係は、考慮対象のカレントサービスの位置がどのように他のエンティティの位置に依存し又は依存すべきかの定量化として決定され得る。サービス依存関係グラフＧ０＝（Ｖ０，Ｅ０）は、Ｖ０がＳ内の全てのサービスと共にＧ内の全てのエッジノード（即ち、入口及び出口ノード）を含むように定義され得る。Ｅ０内のエッジ（ｕ０，ｖ０）は、ｕ０からｖ０へのトラフィックが存在することを意味する。さらに、重みファクタ又はパラメータｗ（ｕ０，ｖ０）が定義され又はさもなければエッジへ割り当てられ、これはｕ０からｖ０へ行く必要のあるトラフィックを有する加入者又はデータフローの合計数を示す（即ち、エッジ重み）。認識されるべきこととして、データトラフィックフローに関連付けられる指向性が存在することから、グラフＧ０は有向グラフであり得る。また別の重みファクタ又はパラメータが定義され又はさもなければグラフＧ０内の各ノードに関連付けられ、即ちｗ（ｖ０）であり、これは、未配置のサービスへのノードのアウトバウンドエッジの重みの和として決定され又は計算され得る（即ち、ノード重み）。
【００３５】
そのため、理解されるべきこととして、サービス配置の仕組みは、仮想サービスグラフＧ０から物理ネットワークグラフＧへのマッピングのための変換メカニズム又はグラフ埋め込みメカニズムとして取り扱われてよい。上で明記したように、連続的な局所最適化に基づく貪欲（greedy）アルゴリズムが、大規模なグラフにおける計算効率のために、グローバルな最適条件（optimum）を見出す期待と共に、そうした仕組みを実効あるものとするために使用されてもよい。しかしながら、当業者は、線形計画法又は動的計画法などといった他の形式的な最適化技法もまた使用されてよいことを認識するであろう。但し、そうした技法は、極端に計算量が多く、収束に過剰な時間量が掛かるかもしれず、特に数百のノードと膨大な数の加入者フローとが関与するネットワークではそうである。
【００３６】
１つの実施形態において、サービス配置の仕組みは、仮想サービスグラフＧ０内の全ての入口ノード及び出口ノードを既に配置済みノードとみなしてもよい。各サービスについての新たな重みが、サービス依存関係のランキング及びサービスインスタンス数のランキングに基づく関数として計算されてもよい。初期には、全てのサービスが、ネットワーク内のノードに対して未だ配置されず又は割り当てられていないために、未配置集合のメンバとして扱われる。各反復において、最大の新たな重みを伴う未配置のサービスが選択され、当該サービスの全てのレプリカが１つ１つ配置される。毎回、グラフＧ内の全ての位置の中で、配置済みのサービスと、配置のために考慮されている特定のサービスの固有のインスタンスとの間の合計遅延を最小にする特定の位置解が選択される。それが配置された後、サービスレプリカ配列が、各レプリカ上の残余の負荷で更新される。未配置集合がゼロへと減少するまで（即ち、配置すべきそれ以上のサービスが無くなるまで）、特定のサービスの全てのインスタンス／レプリカが配置され、その後他の全ての未配置のサービスのノード重みが更新される。
【００３７】
サービス配置の仕組みの上記実施形態の一実装を、適切なネットワークアーキテクチャに従って提供される、例えば上述したコントローラ１６５又は他の何らかの管理ノードなどのＯＦ準拠の中央コントローラにより実行可能なコンピュータ読取可能な命令のセットの手法で、体現し及び／又は有効化し得る。そうした実施形態に関する例示的なプロセスフローが、以下の表１において提供される。
【００３８】
【表１】
2016533689.tif 000006
【００３９】
当業者は、これを参照すれば、上述したサービス配置のプロセスフローが、４つの多変量／多次元の成分、即ちＧ、Ｓ、Ｒ及びＮを１つの実施形態に係る入力として利用することを認識するであろう。複数の手法でこれを実装することができ、限定ではないものの、それは専用ハードウェア部品、及び任意の既知の又は現在のところ未知のプログラミング言語でのプログラミング命令群に基づくソフトウェア／ファームウェアエンジンなどを用いることを含む。上述したように、サービス依存関係グラフＧ０は、Ｓと、物理グラフＧの入口／出口ノードとの和集合として生成される。また、初期化の一部として、全てのサービスが（もしあれば）それらのインスタンスを含めて、未配置集合内に格納される。連続するサービスの各ペアについて有向エッジを生成した後、適切な重みパラメータが、いくつのフローが特定のエッジを通過するか及びいくつのフローが特定のサービスを通過するかに基づいて計算される。上述した演算は、まとめて、初期化及び重み計算ブロック又はループとして言及され得る。その後、各サービスについて、それ以前に計算された重みパラメータの関数として新たな重みが計算され得る。上に示した例示的なプロセスフローでは、新たな重みは、２つの重み（即ち、エッジ重み及びノード重み）のランキングの平均（mean）又は代表値（average）として計算される。これら演算は、新たな重み計算ブロック又はループとして言及され得る。第３のセットの演算は、新たな重みの最大値を有するサービスを選択することから始まる、各ステージでの反復的な局所最適化プロセスを実行するための、未配置集合に関する配置演算ブロック又はループとしてまとめて言及される。
【００４０】
１つの実施形態において、上述したサービス配置のプロセスフローの出力は、（サービスネットワークの物理ノードを表現する）グラフＧと（配置すべきマルチインスタンスサービスを表現する）ミドルボックスＳとの間のマッピング割り当てのセットとして理解され得る。マッピング関係に応じて、サービスネットワークのコントローラ／管理ロジックは、ネットワークノードに対してサービスを配置し、配備し、接続し及び／又はさもなければ割り当て得る。さらに、マッピング関係の出力は、サービスネットワークに関連付けられる他の運営／管理ノードへと提供されてもよい。理解されるべきこととして、複数のサービスインスタンス及び複数のタイプのサービスを同じネットワークノードに対して配置し又は割り当てることが可能である。例えば、ＤＰＩサービスの少なくとも１つのインスタンス及びＮＡＴサービスの少なくとも１つのインスタンスを、同じネットワークノードに共に配置し得る。加えて、サービスネットワーク構成、サービスチェーン化要件、各サービスが有し得るインスタンス数などに基づき、いくつかの実装において、入口／出口ノード及び／又は内部ノードへサービスが割り当てられてもよい。
【００４１】
図２及び図３を参照すると、そこには参照番号２００、３００でおおまかに示されている、サービス配置及び／又は割り当ての仕組みの一実施形態に従って生じ得るイベントのシーケンスに関するフローチャートが示されている。図２に示したブロック２０２において、サービスプロバイダネットワーク及びそのネットワークノードのトポロジー的な配置が、定義されさもなければ取得される。ブロック２０４において、それぞれ複数のインスタンスを含む１つ以上のサービスが（もしあれば）定義され、判定され、初期化され及び／又はさもなければ取得される。ブロック２０６に明記したように、多様な加入者データフローに対する１つ以上のサービス要件、サービスチェーン化ポリシー、事業者／アプリケーションポリシーなどが判定され、定義され及び／又はさもなければ取得される。前に説明したように、従って、サービスプロバイダネットワークの入口ノードと出口ノードとの間で通過されるべきサービスのシーケンスに、各加入者データフローが関連付けられ得る。さらには、加入者データフローがどのサービスも通過することを要しない（即ち、“サービス無し”ポリシー）場合、緩和された要件のセットが実装されてもよい。理解されるべきこととして、ＡＡＡ（Authentication,  Authorization  and  Accounting）ノードなどの管理ノードから、サービス、チェーン化ポリシーなどが取得されてもよい。ブロック２０８において、サービス及び（もしあれば）複数のインスタンスが、全ての加入者フローについて、全体としてのネットワークメトリックが最小化され、最大化され又はさもなければ最適化されるように、１つ以上のネットワークノードに対して、ネットワーク内で配置され及び／又は割り当てられる。
【００４２】
図３へ移ると、そこには、ブロック２０８に明記された機能に関する追加的なステップ、機能、動作及び／又はブロックのフローチャートが示されている。ブロック３０２において、サービス依存関係グラフが生成され又はさもなければ定義され、それはサービスプロバイダネットワークのサービス及びネットワーク入口／出口ノードに基づいてノード又は交点（vertices）を定義することを含む。追加的に、ノード重み又はエッジ重みが、フロー数、フロー別サービス需要度などに関連するパラメータに基づいてサービス依存関係グラフのノード及びエッジについてそれぞれ定義されてもよい。各サービスについて、相対的なランキング、トラフィック量、サービスレプリカ／インスタンス数などに基づく新たな重みが決定され又はさもなければ取得され得る（ブロック３０４）。理解されるべきこととして、ある例示的な実装において、ノード重み及びエッジ重みの双方を含むことは必須ではない。同様に、他のある実装において、追加的なパラメータとしての重みが、ここでの教示に係るサービス配置の仕組みを実効あるものとする目的で定義され又は提供されてもよい。ブロック３０６において、貪欲アルゴリズム（例えば、反復の連続する各ステージにて局所最適な選択を行う問題解決ヒューリスティックに従うアルゴリズム）が、ネットワークノードへのサービスの割り当てのために採用されてもよい。プロセスフローの完了後に、その都度必ずしもグローバル最適な配置の解が見つかるわけではないかもしれないが、上記ヒューリスティックな配置の仕組みは、リーズナブルな時間及び限りある計算リソースの範囲内で、“十分に良好な”解を概算し得る。そうした仕組みを実装するために、以下のコンポーネントが少なくとも何らかの組み合わせで提供され得る。まず、配置の解を生成し得る元となる候補セットが定義される。配置の解へ追加すべき最良の候補を選択する選択機能（selection  function）が提供され、又はさもなければ定義される。ある候補が配置の解へ寄与することができるかを判定するために使用され得る実現性機能（feasibility  function）が定義されてもよい。完全な配置の解が達成されたかを示すための解決機能（solution  function）が提供されてもよい。理解されるべきこととして、本開示の貪欲アルゴリズムの配置メカニズムは、例えば、“純粋貪欲度（pure  greediness）”、“直交貪欲度（orthogonal  greediness）”又は“緩和貪欲度（relaxed  greediness）”といった“貪欲度”の様々な特性と共に、貪欲度の道筋の指針とされる様々なメトリックを用いて実装されてよい。さらに、例えば比較的少数のネットワークノード及び／又は加入者フローが関与するような、あるネットワーク実装において、前に指摘した通り、より形式的な最適化技法がサービス配置のために使用されてもよい。配置の解を取得し及び／又はさもなければ決定した後に、ミドルボックスサービス及びそれぞれのインスタンスがネットワークノードへと割り当てられ、そうした割り当てデータがネットワークに関連付けられる１つ以上の管理ノードへ提供され得る（ブロック３０８）。
【００４３】
図４は、本特許の開示の一実施形態に係るサービス配置及び／又は割り当ての仕組みを実効あるものとするように構成され得る、例示的なコンピュータシステムとして実装されるネットワークコントローラノード４００のブロック図を描いている。当業者は、ネットワークコントローラノード４００が上で説明したコントローラ１１５又は１６５の例であると認識するであろう。１つ以上のプロセッサ４０４は、適切なバスアーキテクチャを用いて相互接続され得る（ハードウェア、ソフトウェア、ファームウェア及び／又はそれらの何らかの組み合わせで実装される）複数のサブシステムを制御するように動作可能である。Ｔｘ／Ｒｘインタフェースモジュール４０２は、コントローラノード４００に関する多様なタイプのネットワーク接続性を有効化するように動作可能であり、限定ではないものの、サービスプロバイダネットワークの内部的な接続性のみならず、外部的な接続性も含む。１つ以上のプロトコルエンジン４０６は、サービスプロバイダネットワークがいかなるアーキテクチャで構成され得るかに基づいて適切な通信プロトコル群を有効化するように動作可能である。揮発性ストレージ４１８は、一時的なデータ又は情報のストレージを提供するための多様なタイプのランダムアクセスメモリ（ＲＡＭ）を含み得る。不揮発性ストレージ４０９は、例えば読み取り専用メモリ（ＲＯＭ）回路、ＥＥＰＲＯＭ（erasable  programmable  read-only  memory）回路及びフラッシュメモリに加えて、外部的なメモリカードなどといった永続的なストレージの例であり、適切な加入者情報及び関連するサービスチェーン化ポリシーデータ４０８が記憶され、ダウンロードされ、アップロードされ、更新され及び／又は再構成されてよく、それらは事業者、サードバーティベンダ及び／又は加入者により（例えばエアを介する）無線手段で又はインターネット上で行われ得る。加えて、永続的メモリ４０９は、サービスプロバイダネットワーク内のマルチインスタンスサービスの配置及び／又は割り当てを有効化するために１つ以上のプロセッサ４０４により実行される１つ以上のモジュール４１０として整備されるプログラム命令群を含むように構成され得る。フローコントローラ４１４は、ＳＤＮベースのサービスプロバイダネットワーク内のＯＦ準拠の転送エレメント内のＯＦ準拠のフローテーブルの制御を有効化させることに関して提供され得る。１つ以上のアプリケーション４１６は、サービスプロバイダに固有のネットワークレベルの機能性を有効化させるために、ネットワークコントローラノード４００の一部としても提供され得る。他のハードウェア４１２は、１つ以上のユーザ入力／出力デバイス（例えば、ディスプレイ画面、ポインティングデバイスなど）、コマンドインタフェース、バスコントローラ、メモリコントローラ、及び電力サプライ回路などであり得る。
【００４４】
ここまでの詳細な説明に基づき、理解されるべきこととして、本開示の実施形態は、サービスプロバイダネットワーク内にマルチインスタンスサービスを配置し又はさもなければ割り当てるための、新規かつ非自明な方法論を提供している。仮想化された環境及び／又はクラウドベースのプラットフォームにおけるサービスの配備がより普及するようになるため、ネットワーク内のより最適か又はさもなければより適切な位置へサービスインスタンスを動かすその柔軟性は、特に重要となると想定される。既定の割り当てを動的に変更することができるため、サービスネットワーク事業者は、スケーラビリティに影響を与えることなく、より多くのサービスをオンラインへと持ち込むことができる。ここに明記された１つ以上の実施形態は、全体的な遅延、距離、ホップカウント、及び／又は帯域幅消費若しくは割り当てといった、多くのネットワーク性能メトリックを（例えば、非効率的な帯域幅使用を低減することにより）最小化し、最大化し又はさもなければ最適化する目的で、多様なトラフィックステアリングメカニズムとの関係において任意のタイプのサービスネットワークアーキテクチャにおいて実践されてよい。選択的に特定のサービスを通過し又は特定のサービスから離れる（即ち迂回する）ようにトラフィックを操舵することにより、資本の支出の節約を有利に実現することができる。さらに、本開示の教示に従って反復的な局所最適化方式を採用することにより、多数のノード若しくは加入者データフロー又はそれら双方を伴う高度に複雑なネットワーク環境においてさえ、収束性の解が確実に得られるであろう。
【００４５】
本開示の多様な実施形態の上の説明において、理解されることとして、ここで使用される専門用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することを意図しない。特段の定義が無ければ、ここで使用されている（技術的及び学術的な用語を含む）全ての用語は、本発明が属する技術において当業者により通常理解されるものと同じ意味を有する。さらに理解されることとして、通常使用される辞書において定義されているような用語は、本明細書及び関連技術の文脈におけるその意味と整合する意味を有するものとして解釈されるべきであり、ここでそのように明示的に定義されている理想的な又は過度に形式的な意味合いで解釈されなくてよい。
【００４６】
ここでは、コンピュータ実装される方法、装置（システム及び／若しくはデバイス）並びに／又はコンピュータプログラムプロダクトのブロック図及び／又はフローチャートの例を参照しながら、少なくともいくつかの例示的な実施形態が開示されている。理解されることとして、ブロック図のブロック及び／又はフローチャートの例、並びにブロック図内の複数のブロックの組み合わせ及び／又はフローチャートの例の組み合わせを、１つ以上のコンピュータ回路により実行されるコンピュータプログラム命令により実装することができる。そうしたコンピュータプログラム命令は、汎用コンピュータ回路、特殊目的コンピュータ回路、及び／又は他のプログラマブルデータ処理回路のプロセッサ回路へ提供されてよい。それらは、コンピュータ及び／又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令群が、トランジスタ、メモリ位置に記憶される値、及びそうした回路内の他のハードウェア部品を変形させ及び制御するようにマシンを産み出して、ブロック図及び／又はフローチャートの１つ又は複数のブロックにおいて特定された機能群／動作群を実装し、それによりブロック図及び／又はフローチャートのブロックにおいて特定された機能群／動作群を実装するための手段（機能性）及び／又は構造を生成するようになされる。追加的に、コンピュータプログラム命令は、ブロック図及び／又はフローチャートの１つ又は複数のブロックにおいて特定された機能群／動作群を実装する命令を含む製品を、コンピュータ読取可能な媒体内に記憶される当該命令が生み出すように、コンピュータ又は他のプログラマブルデータ処理装置に指示することのできる、有形のコンピュータ読取可能な媒体内に記憶されてもよい。
【００４７】
前に示唆したように、有形の非一時的なコンピュータ読取可能な媒体は、電子的、磁気的、光学的、電磁気的又は半導体のデータストレージシステム、装置又はデバイスを含み得る。コンピュータ読取可能な媒体のより具体的な例は、以下を含むはずである：ポータブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）回路、読取専用メモリ（ＲＯＭ）回路、ＥＥＰＲＯＭ（erasable  programmable  read-only  memory）若しくはフラッシュメモリ回路、ポータブルＣＤ−ＲＯＭ（compact  disc  read-only  memory）及びポータブルＤＶＤ／Ｂｌｕ−ｒａｙ（digital  video  disc  read-only  memory）。また、コンピュータプログラム命令は、コンピュータ及び／又は他のプログラマブルデータ処理装置へとロードされ又はさもなければダウンロードされて、一連の動作ステップを当該コンピュータ及び／又は他のプログラマブル装置上で実行させ、当該コンピュータ又は他のプログラマブル装置がブロック図及び／又はフローチャートの１つ又は複数のブロックにおいて特定された機能群／動作群を実装するためのステップを提供するようにコンピュータ実装されたプロセスを生み出してもよい。そのため、本発明の実施形態は、ハードウェア、及び／又は、“回路”、“モジュール”又はそれらの派生語として総称され得るデジタル信号プロセッサなどのプロセッサ上で稼動する（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）ソフトウェアにおいて具現化されてよい。
【００４８】
さらに、少なくともいくつかの追加的な又は代替的な実装において、ブロック内で説明されている機能／動作は、フローチャートに示した順序から外れて生じてもよい。例えば、連続的に示されている２つのブロックが実際には実質的に並列的に実行されてもよく、又はそれらブロックは、関与する機能性／動作に依存して時には逆の順序で実行されてもよい。そのうえ、フローチャート及び／若しくはブロック図の所与のブロックの機能性が複数のブロックへと分割されてもよく、並びに／又は、フローチャート及び／若しくはブロック図の２つ以上のブロックの機能性が少なくとも部分的に統合されてもよい。最後に、図示されたブロックの間に他のブロックが追加／挿入されてもよく、互いに異なるフローチャートからのブロックが、任意のコンビネーション若しくはサブコンビネーションで追加的なフローチャートへと組み合わされ、再配置され及び／又は再構成されてもよい。そのうえ、図のいくつかが通信の主要な方向を示すために通信パス上の矢印を含むとしても、描かれた矢印とは反対方向に通信が生じてもよいことが理解されるべきである。
【００４９】
多様な実施形態が詳細に示され説明されたが、特許請求の範囲はいかなる特定の実施形態又は例にも限定されない。上の詳細な説明は、いかなる個別のコンポーネント、モジュール、エレメント、ステップ、動作又は機能も特許請求の範囲のスコープに含まれなければならないような本質的なものであることを示唆するものとして読み取られるべきではない。単数形のエレメントへの言及は、そのような明示的な記述が無い限り、“１つであって唯１つ”を意味することを意図されておらず、むしろ“１つ以上”又は“少なくとも１つ”を意味する。上述した実施形態のエレメントの、当業者に知られた全ての構造的な均等物及び機能的な均等物は、参照によりここに明白に取り入れられ、本特許請求の範囲により包含されるものと意図される。そのため、当業者は、ここで説明した例示的な実施形態を、以下に添付する特許請求の範囲の精神及びスコープの範囲内の多様な修正及び変形と共に実践し得ることを認識するであろう。
【図１Ａ】
2016533689.tif 000007
【図１Ｂ】
2016533689.tif 000008
【図２】
2016533689.tif 000009
【図３】
2016533689.tif 000010
【図４】
2016533689.tif 000011
【国際調査報告】
2016533689.tif 000012
2016533689.tif 000013
2016533689.tif 000014