(58)【調査した分野】(Int.Cl.,DB名)
仮想ネットワーク機能プール(508)と制御エンティティ(520)との間におけるインターフェース・エレメント(510)のための方法であって、前記仮想ネットワーク機能プールが、少なくとも第1仮想ネットワーク機能インスタンスと第2仮想ネットワーク機能インスタンスとを含む複数の仮想ネットワーク機能インスタンスを含み、前記制御エンティティ(520)が前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスを制御して、少なくとも前記第2仮想ネットワーク機能インスタンス上における前記第1仮想ネットワーク機能インスタンスの状態の複製を補助するように構成され、前記方法が、
−前記インターフェース・エレメントが、前記制御エンティティから前記第1仮想ネットワーク機能インスタンスへのメッセージを入手するステップと、
−前記インターフェース・エレメントが、前記メッセージのコピー、前記メッセージを含んだ別のメッセージ、または、前記メッセージの受け取りを示すおよび/若しくは前記メッセージのコンテンツを示す別のメッセージを、少なくとも前記第1仮想ネットワーク機能インスタンスおよび前記第2仮想ネットワーク機能インスタンスに供給するステップと、
−前記インターフェース・エレメントが、前記第1仮想ネットワーク機能インスタンスに供給された、前記メッセージのコピー、前記メッセージを含んだ前記別のメッセージ、または、前記メッセージの受け取りを示すおよび/若しくは前記メッセージのコンテンツを示す前記別のメッセージについての受け取り通知と、前記第2仮想ネットワーク機能インスタンスに供給された、前記メッセージのコピー、前記メッセージを含んだ前記別のメッセージ、または、前記メッセージの受け取りを示すおよび/若しくは前記メッセージのコンテンツを示す前記別のメッセージについての受け取り通知と、を有するときに、前記インターフェース・エレメントが、前記メッセージの受け取り通知を前記制御エンティティに供給するステップと、
を含み、前記第1仮想ネットワーク機能インスタンスおよび/または前記第2仮想ネットワーク機能インスタンスにおける前記メッセージの受け取りに応答して、前記受け取り通知が、少なくとも前記第1仮想ネットワーク機能インスタンスおよび/または前記第2仮想ネットワーク機能インスタンスから前記インターフェース・エレメントに供給される、方法。
請求項1記載の方法において、前記仮想ネットワーク機能インスタンスが、2つ以上の仮想ネットワーク機能インスタンス、好ましくは3つ以上の仮想ネットワーク機能インスタンスを含み、前記インターフェース・エレメントが、前記メッセージを少なくとも前記第1仮想ネットワーク機能インスタンスおよび前記第2仮想ネットワーク機能インスタンスに供給するステップが、前記メッセージを、前記仮想ネットワーク機能プールの仮想ネットワーク機能インスタンスの内少なくとも2つ、好ましくは全部に供給するステップを含み、前記方法が、更に、
−前記インターフェース・エレメントが、前記仮想ネットワーク機能プールの内、前記インターフェース・エレメントが前記メッセージの受け取り通知を受信しなかった仮想ネットワーク機能インスタンスを識別するステップと、
−前記インターフェース・エレメントが、前記識別した仮想ネットワーク機能インスタンスの指示を、前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスが登録されている仮想ネットワーク機能プール・レジストラ(504)に供給するステップと、
を含む、方法。
請求項1または2記載の方法であって、更に、前記インターフェース・エレメントと、前記制御エンティティ、前記第1仮想ネットワーク機能インスタンス、および前記第2仮想ネットワーク機能インスタンスの各々との間に、ベース通信チャネル、好ましくは、TCPチャネルを確立するステップを含む、方法。
請求項3記載の方法において、前記仮想ネットワーク機能インスタンスが、2つ以上の仮想ネットワーク機能インスタンス、好ましくは3つ以上の仮想ネットワーク機能インスタンスを含み、前記インターフェース・エレメントが前記ベース通信チャネルを確立するステップが、前記インターフェース・エレメントと、前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスの内前記少なくとも2つ、好ましくは全部の各々との間に、前記ベース通信チャネルを確立するステップを含み、前記方法が、更に、
−前記インターフェース・エレメントが、前記仮想ネットワーク機能プールの内、前記ベース通信チャネルを確立することができなかったおよび/または前記ベース通信チャネルが破壊された仮想ネットワーク機能インスタンスを識別するステップと、
−前記インターフェース・エレメントが、前記識別した仮想ネットワーク機能インスタンスの指示を、前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスが登録されている仮想ネットワーク機能プール・レジストラ(504)に供給するステップと、
を含む、方法。
請求項3または4記載の方法であって、更に、前記インターフェース・エレメントが、前記インターフェース・エレメントと、前記制御エンティティ、前記第1仮想ネットワーク機能インスタンス、および前記第2仮想ネットワーク機能インスタンスの各々との間に確立された前記ベース通信チャネル上に、安全な通信チャネルを確立するステップを含む、方法。
請求項5または6記載の方法において、前記インターフェース・エレメントと、前記制御エンティティ、前記第1仮想ネットワーク機能インスタンス、および前記第2仮想ネットワーク機能インスタンスの各々との間の前記安全な通信チャネルが、実質的に並列に確立される、方法。
請求項5から7のいずれか1項記載方法において、前記仮想ネットワーク機能インスタンスが、2つ以上の仮想ネットワーク機能インスタンス、好ましくは、3つ以上の仮想ネットワーク機能インスタンスを含み、前記インターフェース・エレメントが前記安全な通信チャネルを確立するステップが、前記インターフェース・エレメントと、前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスの内少なくとも2つ、好ましくは全部の各々との間に、前記安全な通信チャネルを確立するステップを含み、前記方法が、更に、
−前記インターフェース・エレメントが、前記仮想ネットワーク機能プールの内、前記安全な通信チャネルを確立できなかったおよび/または前記安全な通信チャネルが破壊された仮想ネットワーク機能インスタンスを識別するステップと、
−前記インターフェース・エレメントが、前記識別した仮想ネットワーク機能インスタンスの指示を、前記仮想ネットワーク機能プールの前記仮想ネットワーク機能インスタンスが登録されている仮想ネットワーク機能プール・レジストラに供給するステップと、
を含む、方法。
プロセッサ上で実行されると、請求項1から8のいずれか1項記載の方法ステップを実行するように構成されたソフトウェア・コード部分を含み、好ましくはコンピュータ読み取り可能非一時的記憶媒体上に格納されたコンピュータ・プログラム。
請求項12記載のシステムにおいて、前記仮想ネットワーク機能プールがプール・ユーザにサービス提供するように構成され、前記仮想ネットワーク機能プール・レジストラが、更に、前記第1仮想ネットワーク機能インスタンスからの切り替えの場合、バックアップ仮想ネットワーク機能インスタンスへのハンドルを、前記プール・ユーザに供給するように構成され、前記バックアップ仮想ネットワーク機能インスタンスが、前記第1仮想ネットワーク機能インスタンスについて複製された状態を有する、システム。
請求項12記載のシステムにおいて、前記仮想ネットワーク機能プール・レジストラが、更に、データ・プレーンにおける少なくとも前記第1仮想ネットワーク機能インスタンスと第2仮想ネットワーク機能インスタンスとの間における負荷分担の場合、前記第2仮想ネットワーク機能インスタンスへのハンドルをプール・ユーザに供給するように構成される、システム。
【発明の概要】
【発明が解決しようとする課題】
【0015】
当技術分野において必要とされるのは、VNFプールの1つのVNFインスタンスの状態を、このVNFプールの少なくとも1つの他のVNFインスタンス上に複製し、以上で論じた欠点の内少なくともいくつかを改良または解消する技法である。
【課題を解決するための手段】
【0016】
当業者には認められるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態をなすことができ、これらは全て、総じて、「回路」、「モジュール」、または「システム」と本明細書では呼ぶこともできる。本開示において説明する機能は、コンピュータのマイクロプロセッサによって実行されるアルゴリズムとして実現することができる。更に、本発明の態様は、コンピュータ読み取り可能プログラム・コードが具体化された、例えば、格納された、1つ以上のコンピュータ読み取り可能媒体(1つまたは複数)において具体化されたコンピュータ・プログラム製品の形態をなすこともできる。
【0017】
1つ以上のコンピュータ読み取り可能媒体(1つまたは複数)の任意の組み合わせも利用することができる。コンピュータ読み取り可能媒体とは、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体であるとして差し支えない。コンピュータ読み取り可能記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、あるいはデバイス、更には以上の任意の適した組み合わせでもよいが、これらに限定されるのではない。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的なリスト)をあげるとすれば、以下になる。1本以上のワイヤを有する電気接続、携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯用コンパクト・ディスク・リード・オンリー・メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または以上のものの任意の適した組み合わせ。この文書のコンテキストでは、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによる使用、あるいはこれと関連付けた使用のためにプログラムを収容または格納することができる任意の有形媒体として差し支えない。
【0018】
コンピュータ読み取り可能信号媒体は、例えば、ベースバンドにおいてまたは搬送波の一部として、コンピュータ読み取り可能プログラム・コードが内部に具体化された伝搬データ信号を含むことができる。このような伝搬信号は、電磁、光、またはこれらの任意の適した組み合わせを含むがこれらに限定されない種々の形態の内任意のものをなすことができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによる使用、あるいはこれと関連付けた使用のためにプログラムを伝達、伝搬、または移送することができる任意のコンピュータ読み取り可能媒体として差し支えない。
【0019】
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、任意のしかるべき媒体を使用して送信することができる。任意のしかるべき媒体には、ワイヤレス、ワイヤライン、光ファイバ、ケーブル、RF等、または以上のものの任意の適した組み合わせが含まれるが、これらに限定されるのではない。本発明の態様に合わせて動作を実行するためのコンピュータ・プログラム・コードは、1つ以上のプログラム言語の任意の組み合わせで書くことができる。プログラミング言語には、Java(商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、あるいは「C」プログラミング言語または同様のプログラミング言語のような従来の手順型プログラミング言語が含まれる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、単体ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは全体的にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータをユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを通じて接続することができ、あるいは接続が外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを介してインターネットを通じて)。
【0020】
以下に、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートおよび/またはブロック図を参照しながら、本発明の態様について説明する。尚、フローチャートおよび/またはブロック図、あるいはフローチャートおよび/またはブロック図におけるブロックの組み合わせの各ブロックは、コンピュータ・プログラム命令によって実現できることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサ、具体的には、マイクロプロセッサまたは中央処理ユニット(CPU)に供給され、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスのプロセッサによって実行する命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実施する手段を形成する(create)ように、機械(machine)を制作する(produce)ことができる。
【0021】
また、これらのコンピュータ・プログラム命令をコンピュータ読み取り可能媒体に格納することもでき、コンピュータ読み取り可能媒体に格納された命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実現する命令を含む製品を制作するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定のやり方で機能するように指令することができる。
【0022】
また、コンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実現するためのプロセスを提供するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させてコンピュータ実装プロセスを制作することもできる。
【0023】
図におけるフローチャートおよびブロック図は、本発明の種々の実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能(1つまたは複数)を実現するための1つ以上の実行可能命令を含む、モジュール、セグメント、またはコード部(portion of code)を表すことができる。また、ある代替実施態様では、ブロック内に記される機能が、図に示される順序以外で行われてもよいことは注記してしかるべきである。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、関係する機能に応じて、ときにはブロックが逆の順序で実行されてもよい。また、ブロック図および/またはフローチャートの各ブロック、ならびにブロック図および/またはフローチャートにおけるブロックの組み合わせは、指定された機能またはアクトを実行する特殊目的ハードウェア・ベース・システム、あるいは特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実現できることも注記しておく。
【0024】
先に論じた問題の少なくとも一部を低減または解消するために、本発明の実施形態の一態様によれば、VNFプールと制御エンティティとの間においてインターフェース・エレメントによって実行されるコンピュータ実装方法を開示する。VNFプールは、少なくとも第1VNFインスタンス(VNFi1)および第2VNFインスタンス(VNFi2)を含む複数のVNFインスタンスを含む。制御エンティティは、VNFプールのVNFインスタンスを制御するように構成される。この方法は、第1VNFインスタンスの状態を少なくとも第2VNFインスタンス上において複製するときに、インターフェース・エレメントが補助することを可能にする。この方法は、制御エンティティから第1VNFインスタンスに供給された制御メッセージを、何らかのやり方で入手する、即ち、受信する、傍受する、判定する等のステップと、入手した制御メッセージを少なくとも第1VNFインスタンスおよび第2VNFインスタンスに供給するステップと、インターフェース・エレメントが、第1VNFインスタンスに供給された制御メッセージおよび第2VNFインスタンスに供給された制御メッセージ双方の、明示的または暗示的いずれかの受け取り通知を有するとき、制御メッセージの受け取り通知を制御エンティティに供給するステップとを含む。
【0025】
本明細書において使用する場合、「VNFインスタンス」という用語は、コンピュータ・サーバ、例えば、汎用サーバ上で実行することによって、アプリケーション、コンピュータ・サーバ、システム、ハードウェア・コンポーネント、またはネットワーク機能の仮想化を、複数のユーザ間においてその機能を共有することができる物理ネットワーク機能のスライス、あるいはソフトウェアおよび物理ネットワーク機能のスライス双方の組み合わせに供給するソフトウェアを意味する。
【0026】
本明細書において使用する場合、「制御メッセージ」という用語は、制御エンティティによって送られVNFインスタンスに到達するように宛てられた任意の制御または管理メッセージを意味する。
【0027】
本発明の実施形態は、VNFプールのVNFインスタンスと、VNFインスタンスを制御する制御エンティティとの間にインターフェース・エレメントを設けることによって、制御エンティティによって送られた制御メッセージをVNFインスタンスの1つから他のVNFインスタンスに複写する(duplicate)ことが可能になるという認識に基づく。VNFインスタンスによって受信された制御メッセージはそれらの状態を定めるので、このような複写(duplication)は、プール内部の1つ以上の他のVNFインスタンス上において1つのVNFインスタンスの状態の複製(replication)を可能にする。つまり、本明細書において使用する場合、「1つのVNFインスタンスの状態を他のVNFインスタンス上で複製する」という表現、および同様の表現は、インターフェース・エレメントが、第1VNFインスタンスに宛てられた制御メッセージを第1VNFインスタンスだけでなく第2VNFインスタンスにも供給することによって、第1VNFインスタンスの状態が第2VNFインスタンス上で複製されるのをインターフェース・エレメントが補助することを意味する。
【0028】
一方、状態の複製は、プール・ユーザに供給される主VNFインスタンスへのハンドルの代わりにまたはそれに加えて、新たなVNFインスタンスへのハンドルをVNFプールのユーザに供給することが必要になる場合があるという異なるシナリオにおいて、種々の利点を提供する。本明細書において使用する場合、「ハンドル」という用語は、例えば、ネットワーク・コンポーネント、このコンテキストではVNFインスタンスの、IPまたはMACアドレスのような、アドレス可能な識別子を指す。
【0029】
このようなシナリオの1つはフェイルオーバーに関係し、本明細書において使用する場合、「フェイルオーバー」という用語は、これまでアクティブであった(即ち、主)アプリケーション、コンピュータ・サーバ、システム、ハードウェア・コンポーネント、仮想機械、またはネットワークの障害または異常な終了時に、冗長なまたは交換用の(即ち、補助的な)アプリケーション、コンピュータ・サーバ、システム、ハードウェア・コンポーネント、仮想機械、またはネットワークに切り替えることを意味する。本明細書において説明するように、インターフェース・エレメントによって補助される、VNFプールの異なるVNFインスタンス間の状態複製により、主VNFインスタンスに障害が発生した場合に、迅速な復元(fast recovery)が可能になる。何故なら、プール・ユーザは、VNFプールにおける他のVNFインスタンスの1つへのハンドルを受け取るだけで済むからである。プール・ユーザが新たに選択したVNFインスタンスにおいて状態を再現することはもはや不要となる。何故なら、障害前には主VNFインスタンスであったが障害を発生したVNFインスタンスの状態は、既に、新たに選択されたVNFインスタンス上に複製されているからである。
【0030】
本明細書では、本発明の実施形態について主にフェイルオーバーを参照して説明するが、1つのVNFインスタンスの状態をVNFプールの少なくとも1つの他のVNFインスタンス上に複製することによって、VNFインスタンスにおいて全く障害がない場合にも利点が得られることは、当業者には認められよう。例えば、1つのVNFインスタンスの状態を少なくとも1つの他のVNFインスタンスに複製させることによって、例えば、ほぼ過剰負荷の状況の場合に後者のVNFインスタンスの方が容量が大きいとき、または2つのVNFインスタンス間でサービスを分担するときに、前者のVNFインスタンスによって提供されるサービスを、素早く後者のVNFインスタンスに切り替えることが可能になる。
【0031】
本明細書において説明するインターフェース・エレメントの実装により、このような状態の複製が、特に、構成集約的な(configuration-intensive)VNFインスタンスのために望まれる可能性がある全てのシナリオにおいて、VNFプールの1つのVNFインスタンスの状態をVNFプールの1つ以上の他のVNFインスタンスに複製するメカニズムを、高速化し、透過性を高め、一層リソース効率的にして提供する。
【0032】
実施形態では、VNFインスタンスは、2つ以上のVNFインスタンス、好ましくは、3つ以上のVNFインスタンスを含むとよい。したがって、インターフェース・エレメントが制御メッセージを少なくとも第1VNFインスタンスおよび第2VNFインスタンスに供給するステップは、VNFプールのVNFインスタンスの内少なくとも2つ、しかし好ましくは全てに制御メッセージを供給するステップを含むとよい。このような実施形態では、この方法は、更に、インターフェース・エレメントが、VNFプールの2つ以上のVNFインスタンスから、インターフェース・エレメントが制御メッセージの受け取り通知を受信しなかったVNFインスタンスを識別するステップと、VNFプールのVNFインスタンスが登録されているVNFプール・レジストラ(PR−H)に、識別したVNFインスタンスの指示を供給するステップを含むとよい。3つ以上のVNFインスタンスを有するVNFプールを設けることによって、第1VNFインスタンスの状態を、より多くの数の異なるVNFインスタンス上に複製することが可能になり、このため、第1VNFインスタンスから何らかの他のVNFインスタンスへの切り替えが必要となった場合における信頼性を高める。VNFインスタンスの1つに供給された制御メッセージの受け取り通知をインターフェース・エレメントが受信しないのは、第1VNFインスタンスの状態がこのようなVNFインスタンス上に複製されていないからである可能性があることを示す。このようなVNFインスタンスを識別し、この情報をVNFプール・レジストラと共有することによって、インターフェース・エレメントが、VNFプール・レジストラによって考慮されるVNFプールを更新する(即ち、「プール内」にあると見なされるはずのVNFインスタンスを更新する)ことが可能になるので、切り替えの場合に、VNFプール・レジストラは、VNFインスタンスの内、第1VNFインスタンスの状態が複製されていない可能性があるものにはハンドルを供給しない。
【0033】
実施形態では、この方法は、更に、インターフェース・エレメントが、インターフェース・エレメントと、制御エンティティ、第1VNFインスタンス、および第2VNFインスタンスの各々との間に、ベース通信チャネル、好ましくは、TCPチャネルを確立するステップを含んでもよい。本明細書において使用する場合、「ベース通信チャネル」という用語は、例えば、二進エンコード・データグラムを使用してメッセージをいずれの方向にも交換することができる2つのエンドポイント間における双方向物理(例えば、ワイヤ)媒体または双方向論理媒体(物理媒体上に多重化することができる)のいずれかを記述するために使用される。ベース通信チャネル上の通信は、盗聴(いわゆる「中間者」攻撃)の被害を受けやすいおそれがあり、攻撃者は双方のエンドポイントとの独立した接続を行い、エンドポイントに知らせずに、これらの間でメッセージを中継する。
【0034】
このようなベース通信チャネルの確立により、インターフェース・エレメントが、制御VNFによってVNFインスタンスの1つに送られた制御メッセージを入手して、この入手した制御メッセージを他のVNFインスタンスに供給することが可能になる。
【0035】
一実施形態では、ベース通信チャネルは、当技術分野では周知の3ウェイ・ハンドシェーク、例えば、3ウェイTCP型ハンドシェークを使用して確立されてもよい。このような実施形態は、通信媒体によって相互接続された2つのプロセス間において、信頼性が高く、整列され、エラー・チェックされたオクテット・ストリームの配信を提供するという利点が得られる。
【0036】
ベース・チャネルの確立を伴う他の一実施形態では、VNFプールのVNFインスタンスが2つ以上のVNFインスタンス、好ましくは、3つ以上のVNFインスタンスを含んでもよく、インターフェース・エレメントがベース通信チャネルを確立するステップは、インターフェース・エレメントと、VNFプールのVNFインスタンスの内少なくとも2つであるが、好ましくは、全ての各々との間にベース通信チャネルを確立するステップを含むとよい。このような実施形態では、この方法は、更に、インターフェース・エレメントが、VNFプールから、ベース通信チャネルを確立できなかったおよび/または破壊されたVNFインスタンスを識別するステップと、インターフェース・エレメントが、VNFプールのVNFインスタンスが登録されているVNFプール・レジストラ(PR−H)に、識別したVNFインスタンスの指示を供給するステップを含んでもよい。このような実施形態は、ベース通信チャネルの確立および/または動作における障害がいずれも、VNFプール・レジストラへの、VNFプールからいくつかのVNFインスタンスを除外する指示として役割を果たすことができるという利点がある。何故なら、ベース通信チャネルが確立されていない、および/または破壊されたVNFインスタンス上には、第1VNFインスタンスの状態を首尾良く複製成功できないからである。このように、1つのVNFインスタンスから他のVNFインスタンスに切り替える場合、または2つのVNFインスタンス間において負荷分担が必要となる場合、VNFプール・レジストラは、VNFインスタンスの内、ベース通信チャネル(1つまたは複数)におけるエラーのために、第1VNFインスタンスの状態が複製されなかった可能性があるものにはハンドルを供給しない。
【0037】
実施形態では、この方法は、更に、インターフェース・エレメントと、制御エンティティ、第1VNFインスタンス、および第2VNFインスタンス(そして好ましくは、プールにおける全てのVNFインスタンス)の各々との間に確立されたベース通信チャネル上に、インターフェース・エレメントが安全な通信チャネルを確立するステップを含んでもよい。
【0038】
本明細書において使用する場合、「安全な通信チャネル」という用語は、以上で説明したベース通信チャネルのような通信チャネルであって、更に機密で真正であるものを記述するために使用される。機密チャネルは、盗聴(即ち、内容を読み取る)には耐性があるが、必ずしも改竄には耐性がないデータを転送する経路(way)を提供する。真正チャネルは、改竄には耐性があるが、必ずしも盗聴には耐性がないデータを転送する経路を提供する。つまり、安全な通信チャネルは盗聴および改竄の双方に耐性がある。
【0039】
安全な通信チャネルを確立することによって、インターフェース・エレメントとVNFインスタンスとの間で交換されるデータだけでなく、インターフェース・エレメントとVNFインスタンスとの間で交換されるデータの安全性を確保することが可能になるという利点がある。このように、制御エンティティと個々のVNFインスタンスとの間に、盗聴(overhearing)および改竄に耐性があるマルチポイント接続が可能になる。したがって、インターフェース・エレメントは、VNFインスタンスと制御エンティティとの間において安全な接続を容易に行うための信頼できる中間者(trusted man in the middle)と見なすことができる。
【0040】
本明細書において使用する場合、ベース・チャネルおよび安全なチャネル双方に該当する「通信チャネルをインターフェース・エレメントが確立する」という表現は、インターフェース・エレメントがチャネルの確立に関与するという事実だけに言及するのであって、どのエンティティがこのような確立を開始したか示すのではない。ある実施形態では、インターフェース・エンティティが、特定の通信チャネルの確立を開始することも可能であるが、他の実施形態では、何らかの他のエンティティ、例えば、本明細書において説明する制御エンティティがそれを行うこともできる。
【0041】
他の一実施形態では、安全な通信チャネル(1つまたは複数)はSSL/TLSベース・チャネル(1つまたは複数)を含むことができる。この実施形態は、インターフェース・エレメントと制御VNFおよび異なるVNFインスタンスの各々との間に安全なチャネルを確立するために、例えば、SSLベース4フェーズ・ハンドシェークのような、標準化されたハンドシェーク・プロセスを使用することが可能になるという利点がある。
【0042】
更なる他の一実施形態では、インターフェース・エレメントと制御エンティティ、第1VNFインスタンス、および第2VNFインスタンスの各々との間の安全な通信チャネルを実質的に並列に確立することができる。この実施形態では、制御エンティティと個々のVNFプール・インスタンスとの間に、盗聴および改竄に耐性があるマルチポイント接続の確立を加速するという利点が得られる。実施形態では、VNFインスタンスは、2つ以上のVNFインスタンス、好ましくは、3つ以上のVNFインスタンスを含むことができ、インターフェース・エレメントが安全な通信チャネルを確立するステップは、インターフェース・エレメントと、VNFプールのVNFインスタンスの内少なくとも2つであるが、好ましくは、全部の各々との間に安全な通信チャネルを確立するステップを含んでもよい。このような実施形態では、この方法は、更に、インターフェース・エレメントが、VNFプールから、安全な通信チャネルを確立することができなかったおよび/または破壊されたVNFインスタンスを識別し、VNFプールのVNFインスタンスが登録されているVNFプール・レジストラに、識別したVNFインスタンスの指示を供給するステップを含んでもよい。この実施形態では、安全な通信チャネルの確立および/または動作における障害がいずれも、VNFプール・レジストラへの、VNFプールからいくつかのVNFインスタンス(即ち、安全な通信チャネルを首尾良く確立することができなかった、および/または安全な通信チャネルが破壊されたVNFインスタンス)を除外する指示として役割を果たすことができるという利点を得ることができる。このような指示を供給することによって、インターフェース・エレメントが、VNFプール・レジストラによって考慮されるVNFプールを更新することが可能になるので、1つのVNFインスタンスから他のVNFインスタンスに切り替る場合、または2つのVNFインスタンスの間で負荷分担が必要となる場合に、VNFプール・レジストラは、VNFインスタンスの内、安全な通信チャネルがないために検出されなかった可能性があるものにはハンドルを供給しない。
【0043】
本発明の他の態様によれば、本明細書において説明する方法ステップを実行するためのデータ処理システムおよびノード(即ち、例えば、サービス・プロバイダ・セルラ電気通信ネットワークの3GPP P−GW,S−GWのようなデバイスまたはネットワーク・エンティティ)を提供する。データ処理システムおよびノードの各々は、本明細書において説明する方法ステップを実行するように構成された少なくとも1つのプロセッサを含む。このようなデータ処理システムをノード内に含むこともできる。
【0044】
本発明の更なる他の態様によれば、システムを開示する。このシステムは、少なくとも第1VNFインスタンス(VNFi1)および第2VNFインスタンス(VNFi2)を含む複数のVNFインスタンスを含むVNFプールと、VNFプールのVNFインスタンスを制御するように構成された制御エンティティと、VNFインスタンスおよび制御エンティティに通信可能に接続されたインターフェース・エンティティであって、本明細書において説明する方法ステップを実行するように構成された少なくとも1つのプロセッサを含む、インターフェース・エンティティとを含んでもよい。実施形態では、このようなシステムは、更に、VNFプールのVNFインスタンスが登録されているVNFプール・レジストラを含むことができる。VNFプール・レジストラは、インターフェース・エレメントに通信可能に接続され、以上で説明した異なる実施形態にしたがって、インターフェース・エレメントによって識別されたVNFインスタンスを、インターフェース・エレメントから少なくとも受け取るように構成される。他の実施形態の1つでは、VNFプール・レジストラは、更に、VNFインスタンスの障害または不適切な動作の場合、および/またはデータ・プレーンにおいて使用される2つ以上のVNFインスタンスの間で負荷を分担する場合、第2VNFインスタンスへのハンドルをプール・ユーザに供給するように構成することができる。続いて、プール・ユーザは、代替VNFインスタンスを使用するためにネットワークを再構成することができる。
【0045】
また、本開示は、コンピュータ読み取り可能記憶媒体上に実装されるコンピュータ・プログラム、およびこのようなコンピュータ・プログラムを格納する、好ましくは、非一時的なコンピュータ読み取り可能記憶媒体に関係するとしてもよい。コンピュータ・プログラムは、コンピュータ上で実行されると、本開示において説明する方法の内任意のものにしたがって方法ステップを実行するように構成されたソフトウェア・コード部分を含んでもよい。
【0046】
更に、添付図面を参照して本開示を例示する。添付図面は本開示による実施形態を模式的に示す。尚、本開示はこれらの具体的な実施形態には決して限定されないことは理解されよう。更に、実施形態および限定のいずれの組み合わせも、本開示によって予見されるものとする。
図面に示す実証的実施形態を参照して、本発明の態様について更に詳しく説明する。
【発明を実施するための形態】
【0048】
図5は、本発明の一実施形態によるVNFプール・アーキテクチャ500の模式図を示す。先に説明したアーキテクチャ200と同様、VNFプール・アーキテクチャ500は、3種類のコンポーネント、1)3つのVNFインスタンス502、VNFi1、VNFi2、VNFi3として示す複数のプール・エレメント502、2)VNFレジストラ504として示すプール・レジストラ、および3)PU506として示すプール・ユーザを利用する。NVFインスタンス502の各々は、サーバであることも可能である。VNFインスタンス502は全て、同じネットワーク機能を実行し、併せてVNFプール508を形成することができる。
図5の例に示すプール508は、プール・エレメントの3つのインスタンスを含むように示されているが、本発明の実施形態は、2つ以上の任意の数のプール・エレメントに適用可能である。PU506は、プール508のサービスを使用する、例えば、SFC制御システムのような、クライアントである。VNFレジストラ504は、プール508のVNFインスタンス502の登録および管理機能を実行するように構成され、当技術分野において現在実行されているように、そして
図1に関連付けてPRコンポーネントについて、更には
図2に関連付けてVNFレジストラ・コンポーネントについて先に概説したように、個々のVNFインスタンス502へのハンドルをPU506に提供する。VNFプール508のVNFインスタンス502、VNFレジストラ504、およびPU506は、これらのエレメント間の二重矢印で示すように、ASAPを使用して互いに通信することができる。
【0049】
また、アーキテクチャ500は制御エンティティ520も示す。制御エンティティ520は、それ自体がVNFインスタンス502を制御する役割を担うVNFであることも可能な制御/管理エンティティであるが、そうである必要はない。先に説明したように、VNFインスタンス502の状態は、制御エンティティ520からVNFインスタンス502の各々に伝達される制御メッセージによって判定される。以上で示した制御エンティティによって制御されるVNFインスタンスとして実装されるネットワーク機能の例は、ここでも当てはまり、したがって繰り返さない。
【0050】
更に、アーキテクチャ500は、インターフェース・エレメント510を含むことを特徴とする。インターフェース・エレメント510は、VNFプール508のVNFインスタンス502と制御エンティティ520との間にインターフェースを設け、VNFインスタンス502の1つに宛てられたメッセージを制御エンティティ520から入手し、次いで入手した制御メッセージをそれぞれのVNFインスタンスおよびVNFプール508内部の他のVNFインスタンスに供給することができる。このように、インターフェース・エレメント510は、制御エンティティ520と個々のVNFインスタンス502との間において論理VNFインターフェースとして役割を果たす。これは、以下で説明する
図6のメッセージング図において示される。
【0051】
図5は、特定のVNFインスタンスの状態が確定される構成または相互作用から1つの制御エンティティ520を示すが、常にこのようになるとは限らない。言い換えると、必ずしも、VNFインスタンスの状態を1つの制御エンティティとの相互作用に変換(reduce)できるとは限らない。このような場合、制御エンティティ520について本明細書で説明する同じ原理を、VNFインスタンスの全ての他のインターフェースにも適用することができ、インターフェース・エレメント510はこの場合でも論理VNFインターフェースとして役割を果たす。
【0052】
図6に示すように、最初に、インターフェース・エレメント510は制御メッセージ602を入手する。この時点において、アクティブなインスタンス、即ち、VNFレジストラ504がPU506へのハンドルを提供したVNFインスタンスは、VNFi1であり、メッセージ602は制御エンティティ520によってVNFi1に送られた場合について検討する。インターフェース・エレメント510は、このような制御メッセージを多数の異なる方法で入手することができ、その全てが本発明の範囲内に入る。例えば、インターフェース・エレメント510は物理ポイント・ツー・ポイントまたはマルチポイント媒体(LAN)から受信したデータグラムを通じて、メッセージ602を傍受する(intercept)することもできる。他の例では、インターフェース・エレメント510は、制御エンティティ520からメッセージ602を受信することもできる(即ち、制御エンティティ520が意図的にVNFi1に対するメッセージ602をインターフェース・エレメント510に送信する)。何故なら、インターフェース・エレメント510と制御エンティティ520との間には、TCPチャネルのような、定着したベース通信チャネルがあるからである。次いで、インターフェース・エレメント510は、メッセージが本来宛てられたVNFi1だけでなく、VNFプール508の少なくとも1つの他のVNFインスタンスにも制御メッセージ602を供給することができる。これは、
図6において、インターフェース・エレメント510がメッセージ602のコピー、メッセージ602を含むメッセージ、あるいはメッセージ604および608のような、それぞれ、第1および第2VNFインスタンスへのメッセージ602の受信を示すおよび/またはその内容を示すメッセージを供給することによって示されている。1つのVNFインスタンスに宛てられたメッセージ602をそのVNFインスタンスおよび少なくとも1つの他のVNFインスタンスに供給することによって、インターフェース・エレメント510は、第2VNFインスタンス上における第1VNFインスタンスの状態の複製を可能にする。
【0053】
実施形態では、インターフェース・エレメント510がメッセージ604および608を実質的に並列して供給するように構成することもできる。
【0054】
メッセージ604供給後のある時点において、インターフェース・エレメントは、第1VNFインスタンスから、この第1VNFインスタンスがメッセージ604を受信したという受け取り通知(acknowledgement)を入手する。同様に、メッセージ608の供給後のある時点において、インターフェース・エレメントは、第2VNFインスタンスから、この第2VNFインスタンスがメッセージ608を受信したという受け取り通知を入手する。第1および第2VNFインスタンスからの受け取り通知は、
図6において、それぞれ、メッセージ606および610として示されている。
【0055】
一旦インターフェース・エレメント510が第1および第2VNFインスタンス双方から、これらがメッセージ604および608をそれぞれ受信したという受け取り通知を受けた(has)なら、受け取り通知メッセージ612を制御エンティティ520に送り、こうして、これらは同じ制御メッセージを首尾良く受信したので、第1VNFインスタンスの状態が第2VNFインスタンス上に複製されたことを示す。インターフェース・エレメント510は制御エンティティ520から制御メッセージを入手して、受け取り通知を制御エンティティに返送したので、これは制御エンティティ520に対する論理VNFインターフェースとして機能する。
【0056】
当業者であれば、明示的な受け取り通知メッセージ606および610を受信する以外にも、インターフェース・エレメント510がこのような受け取り通知を受けるには他の方法もあり、それらの全ては本発明の範囲内であることを認めよう。例えば、TCPにしたがって(即ち、インターフェース・エンティティ510と第1および第2VNFインスタンスの各々との間にベースTCPチャネルがあるとき)、CTRL_MSGs<n>604および608がシーケンス番号(n)を取得するとき、これらのメッセージをそれぞれメッセージ606および610によって明示的に受け取りを通知する代わりに、それぞれのVNFインスタンスは、例えば、「私はCTRL_MSG<n+1>を受信する用意ができています」というメッセージを送ることによって、暗示的に受信を通知することもできる。他の例では、制御メッセージ602が「規則X=<...>を設定する」というフォーマットである場合、VNFインスタンスの各々からインターフェース・エレメント510に返送されるメッセージ606および610は、「報告:規則X=<...>」というフォーマットにすることができる。更に他の例では、インターフェース・エレメント510に送られる明示的な受け取り通知メッセージも暗示的な受け取り通知メッセージもないとき、インターフェース・エレメントは、変化したことを検証するために、変化した状態について明示的に調査するように、制御エンティティ520に要求することによって、このような受け取り通知を入手するように構成することもできる。次いで、インターフェース・エレメント510は、この調査(polling)に対する応答を1つのメッセージに統合し、更にこの過程では所望の受け取り通知を入手することによって、仮想化機能に関わることになる。また、インターフェース・エレメント510が1つのVNFインスタンスからの受け取り通知を1つのやり方で入手する一方、他のVNFインスタンスからの受け取り通知を他のやり方で入手する実施形態も可能である。
【0057】
以上の論述と同様、
図6では受け取り通知612が明示的な受け取り通知メッセージ(explicit acknowledgement message)として示されているが、種々の実施形態では、インターフェース・エレメント510が、明示的または暗示的のいずれかの他の形態で、例えば、以上で説明した方法の内任意のものでこのような受け取り通知を供給するように構成することもできる。
【0058】
図6はVNFプール508の第1および第2VNFインスタンスのみに対する状態の複製を示すが、他の実施形態において、もっと多いVNFインスタンスが同じネットワーク機能を実行する場合、このような複製は、もっと多くの、そして好ましくは全てのこれらのVNFインスタンスに対して実行することができる。この場合、インターフェース・エレメント510は、どのVNFインスタンスに、第1VNFインスタンスの状態が複製されたかについて、VNFレジストラ504に指示を与え、こうしてVNFレジストラ504がVNFプール508内にあると見なすVNFインスタンスを更新するように構成することができる。好ましくは、第1VNFインスタンスの状態を複製することができない可能性があるVNFインスタンス(例えば、インターフェース・エレメント510が
図6において説明したような受け取り通知を入手していないため)は、VNFレジストラがこのようなVNFインスタンスへのハンドルをPU506に供給しないので、VNFプール508から削除される(take out of)。
【0059】
以上で説明したように制御コマンドを自動的に複写(duplicate)することによって、1つのVNFインスタンスの状態を少なくとも1つの他のVNFインスタンス上に複製する(replicate)ことによって、VNFインスタンスとPU506との間でも、VNFインスタンス自体の間でもメッセージを能動的に送る必要なく、これらのVNFインスタンスの状態が、これらの構成が変化した時点から同期することを確保する。このような場合、以前にアクティブであったVNFインスタンスの状態は既にこれらのVNFインスタンスに複製されているので、新たなVNFインスタンスへのハンドルをPU507に供給しなければならない時点から(供給された古いハンドルの代わりに、またはそれに加えて)、VNFレジストラ504は、直ちに、レジストラがプール508を形成すると見なすVNFインスタンスへのハンドルの内任意のものを選択することができる。これによって、フェイルオーバー、切り替え、または負荷分配の高速化が可能になり、更にネットワーク・リソース全体の利用度が高まることになる。
【0060】
インターフェース・エレメント510と制御エンティティ520との間、およびインターフェース・エレメント510とプールにおいて状態複製に関与するVNFインスタンスの各々との間における信頼性の高い通信は、例えば、TCPチャネルの形態で、これらのコンポーネント間にベース通信チャネルを確立することによって達成することができる。更に、例えば、SSL/TLSチャネルのような安全な通信チャネルをベース通信チャネル上に確立することによって、関係するエンティティ間においてデータを交換する際のセキュリティを保証することができる。つまり、実施形態では、インターフェース・エレメント510は、信頼性を確保するために制御エンティティ520とのベース通信チャネルを確立し、そして好ましくは、セキュリティを確保するために制御エンティティ520との安全な通信チャネルを確立するように構成することができる。同様に、インターフェース・エレメント510は、複製に関与することになる個別のVNFインスタンスの各々とのベース通信チャネル、そして好ましくは安全な通信チャネルを、これらのインスタンスとの個々の通信セッションを設定することによって確立するように構成することができる。
【0061】
図7は、本発明の一実施形態にしたがって、個々のベース通信チャネルを設定するブートストラップ・プロセスの模式図を示す。
【0062】
チャネルの設定は、大抵の場合、ハンドシェークのようなメカニズムを伴う。
図7は、TCP型(TCP-like)3ウェイ・ハンドシェークのためのプロセスの特定例を示す。
図7に示す例では、ベース接続の確立は、制御下にある主VNFインスタンスに向けてSYNメッセージ702を送ることによって、制御エンティティ520によって開始されると仮定する。
図6の例を続けると、第1VNFインスタンスVNFi1は、主VNFインスタンスであると見なされる。第1VNFインスタンスによって実行されるネットワーク機能が、VNFプール508全体で冗長的に実施されるので、SYNメッセージはインターフェース・エレメント510によって処理され、インターフェース・エレメント510は、この場合も、論理VNFインターフェースとして機能する。次に、インターフェース・エレメント510は、VNFプール508の少なくとも第1および第2VNFインスタンス502、好ましくは全てのVNFインスタンス502に向けて、ミラーSYNメッセージ(mirrored SYN message)を発信する(initiate)。好ましくは、このプロセスは並列に行われる。第1および第2VNFインスタンスに向けての複写SYNメッセージは、
図7では、それぞれ、メッセージ704および708として示されている。
【0063】
このSYNメッセージに応答して、それぞれのVNFインスタンスは、第1および第2VNFインスタンスに対して、それぞれ、メッセージ706および710として、インターフェース・エンティティ510に向けた
図7に示すSYN+ACKメッセージで回答する。SYN+ACKメッセージが少なくとも第1および第2VNFインスタンス、しかし好ましくはVNFプール508の全てのVNFインスタンスからインターフェース・エレメント510によって受信されると、インターフェース・エレメント510は、ハンドシェークの第2フェーズに入るために、SYN+ACKメッセージ712を制御エンティティ520に向けて返送する。後者は、制御エンティティ520が、インターフェース・エレメント510に向けた最終ACKメッセージ714で回答するきっかけとなる。個々のVNFインスタンスとのベース通信チャネルの確立を開始するインターフェース・エレメント510のレベルにおいて、ここでACKがインターフェース・エレメント510から個々のVNFインスタンスに向けて、
図7に示すハンドシェークの最終フェーズとして、第1および第2VNFインスタンスに対してそれぞれメッセージ716および718として、送られる。
【0064】
少なくとも第1および第2VNFインスタンスからのSYN+ACKメッセージがインターフェース・エレメント510によって受信されないとき、またはSYNメッセージが供給された全てのVNFインスタンスからSYN+ACKメッセージが受信されないとき、インターフェース・エレメント510は、ハンドシェーク・プロセスが失敗し、VNF保護メカニズムが起動されなかった(bootstrapped)と判断し、好ましくは、これの指示を制御エンティティ520に与えることができる。次いで、ベース通信チャネルの確立のプロセスを繰り返すことができる。
【0065】
実施形態では、インターフェース・エレメント510は、VNFレジストラ504へのベース通信チャネルの確立における任意の時点で、障害の指示を与えるように構成することができる。一方、VNFレジストラは、VNFプール508内に含ませることを考慮するVNFインスタンス502を更新することを検討することもできる。例えば、SYNメッセージの受け取り通知が、インターフェース・エレメント510がSYNメッセージを複写したVNFインスタンスの内の1つから受信されなかった場合、インターフェース・エレメントは、このようなVNFインスタンスを識別し、この情報をVNFレジストラ504に提供することができ、次いで、VNFレジストラ504はこのVNFインスタンスをVNFプール508から除外する。
【0066】
一旦、
図7に示したTCP接続のようなベース通信チャネルが設定されたなら、例えば、SSL TLSベース・チャネルのような安全な通信チャネルを、ベース・チャネルの上に、更に高いレイヤ・ハンドシェーク・メカニズムで設定することができる。この場合も、提案する解決策は、VNFプール508の少なくとも2つであるが好ましくは全てのVNFインスタンスとインターフェース・エレメント510との間、およびインターフェース・エレメント510と制御エンティティ520との間に、安全なチャネルを設定することを目的とする。これは、関与するあらゆるノード、即ち、VNFインスタンス502、制御エンティティ520、およびインターフェース・エレメント510が、秘密/公開鍵対、およびこの公開鍵に署名する証明書を有することを必要とする。種々の実施形態において、これらの鍵は、個々のVNFインスタンスによって自己生成および自己署名されてもよく、または信頼できる証明書当局との相互作用において受け取られてもよい。この設定において、インターフェース・エレメント510の鍵対は、制御エンティティ520がインターフェースする論理VNFの鍵対を表すことができる。
【0067】
図8は、クライアントとサーバとの間における、既存の標準化SSLベース4フェーズ・ハンドシェーク・プロセスを示す。
図8に示すように、ハロー・メッセージ(hello message)(フェーズ1)は、セッションID、鍵交換アルゴリズム、MACアルゴリズム、暗号化アルゴリズムのネゴシエーション、および初期乱数の交換を伴う。次に、サーバはその証明書および鍵交換メッセージを送ることができ、クライアントに証明書を送るように要求することができる。次いで、サーバはハロー・フェーズの終了を伝える(フェーズ2)。続いて、クライアントは、要求された場合、証明書を送り、明示的な証明書検証メッセージを送ることができ、更にクライアントは常にその鍵交換メッセージを送る(フェーズ3)。最後に、暗号仕様(cipher spec)が変更され、ハンドシェークを終了する(フェーズ4)。当業者であれば認められようが、暗号仕様は、例えば、DESのようなバルク・データ暗号化アルゴリズム、および、例えば、MD5またはSHA−1のようなハッシュ・アルゴリズムを指定することができ、更にハッシュ・サイズのような暗号属性を定めることもできる。
図8において、破線はメッセージが任意であることを示し、一方実線は、ハンドシェークが成功するためには、メッセージが必須であることを示す。
【0068】
図9は、本発明の一実施形態にしたがって、個々の安全な通信チャネルを設定するときの模式図を示す。具体的には、
図9は、3つのセキュアSSL−チャネルの並列設定を示し、各SSL−チャネルは、
図8に示すような4フェーズ・ハンドシェーク・メカニズムに従う。1つのチャネルは、制御エンティティ520とインターフェース・エレメント510との間にあり、
図8の4フェーズ・ハンドシェーク・メカニズムは4ウェイSSLハンドシェーク902として示されている。他のチャネルは、第1VNFインスタンスVNFi1とインターフェース・エレメント510との間にあり、
図8の4フェーズ・ハンドシェーク・メカニズムは4ウェイSSLハンドシェーク906として示されている。第3のチャネルは、第2VNFインスタンスVNFi2とインターフェース・エレメント510との間にあり、
図8の4フェーズ・ハンドシェーク・メカニズムは4ウェイSSLハンドシェーク904として示されている。
【0069】
ベース通信チャネルについて先に説明したように、実施形態では、インターフェース・エレメント510は、安全な通信チャネルの確立における任意の時点において障害の指示をVNFレジストラ504に与えるように構成することができる。一方、VNFレジストラは、それがVNFプール508内に含ませることを考慮するVNFインスタンス502を更新することを検討することができる。
【0070】
好ましい実施形態では、
図6に関連付けて説明した複製メカニズムは、
図7について説明したようなベース通信チャネル、および好ましくは、
図9について説明したような安全な通信チャネルを設定するブートストラップ・プロセスが首尾良く実行された(即ち、制御チャネルがアクティブであると見なされるとき)ときにだけ実行される。
【0071】
技術的現状とは異なり、提案する解決策は、VNFインスタンス502とPU506との間に、状態複製のための追加の帯域幅を必要としない。これは、クッキー・メッセージが不要であるからである。加えて、提案する解決策において結果的に得られる新たなVNFインスタンスに切り替えるまたは有効化するプロセスは、極めて高速化することができる。これらの利点は、再度
図4Aに戻り、以上で説明したアーキテクチャ500の使用を拠り所とする、同じプールの異なるVNFインスタンス間において状態複製を行うフェイルオーバー・プロセスはステップ402、414、および416を必要としないことに気がつくことによって、確認することができる。
図4Aにおいて示したフェイルオーバー・プロセスの説明の残り部分は、PE1をVNFi1と置き換え、PE2をVNFi2と置き換え、RP−H104をVNFレジストラ504と置き換え、PU106をPU506と置き換えることによって、アーキテクチャ500にも適用可能であり、したがって、これらの図示および説明はここでは繰り返さない。PE1に向かう接続(connectivity)が障害を発生したときから、即ち、キープアライブの時間切れから、VNFレジストラ504は、第2VNFインスタンスVNFi2へのハンドルによって、PU506に通知する(notify)ことができる。このメッセージがPU506によって受信された時点から、フェイルオーバーは終了したと見なすことができる。何故なら、VNFi1の状態は、以上で説明したプロセスの結果、VNFi2上で既に継続的に複製されているからである。
【0072】
図10は、本発明の一実施形態にしたがって、異なるVNFインスタンス502の状態が、制御エンティティ520によってそれぞれのVNFインスタンスに供給される制御メッセージによって定められるときにおける、デフォルトのフェイルオーバー・プロセスの模式図を示す。
図10は、技術的現状による類似シナリオを示す
図4Bに相当する。つまり、
図10は、検討対象のVNFインスタンス502が、例えば、OpenFlow−ファイアウォールのような、OpenFlow−制御型ネットワーク機能である場合のプロセスも示す。
図10に示すように、メッセージ1002によって、制御エンティティ520、この場合はOpenFlowコントローラは、新たなフロー・エントリ(例えば、RULEx)をアクティブなVNFインスタンス、即ち、VNFレジストラ504がPU506へのハンドラを供給したVNFインスタンス、この例ではVNFi1、に伝達し、インターフェース・エレメント510はこのメッセージを入手する。インターフェース・エレメント510は、この制御情報を複写して、個々のプール・エレメント、この場合は、OpenFlowスイッチ、VNFi1、およびVNFi2に向けて、それぞれメッセージ1008および1004によって、
図6に関連付けて説明したようなやり方で、
図7および
図9に関連付けて説明したような関与するエンティティ間に確立された通信チャネルによって伝える。また、先に
図6について説明したように、インターフェース・エレメント510が、
図10ではそれぞれ明示的なメッセージ1010および1006によって示す、受け取り通知をVNFインスタンスVNFi1およびVNFi2から受けたときにのみ、インターフェース・エレメント510は、制御エンティティ520に向けて受け取り通知を送る。これは
図10ではメッセージ1012によって示されている。先に説明したように、このプロセスは、個々のプール・エレメントVNFi1およびVNFi2の状態が常に同期することを確保する。一方、VNFレジストラ504(PR−H)とVNFインスタンスi1およびi2との間におけるキープアライブ・プロセスは、これらのプール・エレメントが、正しく動作し続けているか否か監視する。これは、
図10では、それぞれ、メッセージ1018および1014によって示されている。主プール・エレメントVNFi1の障害発生時に、対応するキープアライブ・セッションが時間切れとなり(
図10ではステップ1020によって示す)、VNFレジストラ504は、VNFi2へのハンドルという形態である、新たなハンドルによってPU506(例えば、SFC制御システム)を更新する。これは
図10においてステップ1022によって示されている(
図10においてステップ1016によって示すように、プール・エレメントVNFi2には障害がなかったことを条件とする)。これによって、PU506は、データ・プレーンに関するネットワーク/サービス機能チェーン構成を再プロビジョニングすることが可能となる。状態は継続的に同期が取られ続けているので、データ・プレーン切り替え(switchover)が終了すると直ちにフェイルオーバーが終了する。これは、PU506によるハンドル更新の受信、およびネットワークにおけるデータ・プレーン切り替えの実行を伴う。追加の状態を複製する必要はこれ以上ないので、復元(recovery)は即座に行うことができる。
【0073】
本発明の実施形態は、データ・プレーンにおいてヒットレス・スイッチオーバー(hitless switchover)を可能にするために使用することができるので、ネットワーク保護技法、即ち、バックアップ経路の先回り(pro-active)プロビジョニングを使用することができる。保護の場合、ネットワーク制御システムは、バックアップVNFに向かうネットワーク経路を前もってプロビジョニングすることを可能にするために、障害が実際に起こる前に、バックアップVNFインスタンスのハンドルを知らなければならない。代替VNFインスタンスのハンドルは、例えば、VNFレジストラ(PR−H)からPUに向かう拡張ハンドル・メッセージ314を介して交換することができ、拡張ハンドル・メッセージ314は、i)アクティブなハンドル、およびii)バックアップVNFのハンドルを含む。当技術分野では周知であるが、ネットワーク保護を使用するとき、障害が検出されPR−Hから制御インスタンス(この場合、PU506、例えば、SFC制御システム)に向けて通知された時点から、障害および/または警報指示信号がネットワーク制御システム(PU506自体、またはPU506によって直接通知されるネットワーク制御システムとすることができる)から、主およびバックアップ・セグメント/経路間で切り替える必要がある分岐点に向けて送られる。
【0074】
ネットワーク保護技法は、50ms未満のネットワーク復元時間を加える(deliver)ことが知られている。
図11は、本発明の一実施形態にしたがって、本明細書において説明したインターフェース・エレメント510の機能と共に使用することができるデータ・プレーン・アーキテクチャ1100の模式図を示す。
【0075】
図11は、2つのプール・エレメント、主(第1)VNFインスタンスVNFi1とバックアップ(第2)VNFインスタンスVNFi2とを有するVNFプール508を示す。第1および第2VNF502と制御エンティティ520との間の制御インターフェースは、先に説明したように、インターフェース・エレメント510によって処理される。データ・プレーンにおいて、VNFi1およびVNFi2の各々は、n個のインターフェースを有することができ、これは
図11ではインターフェースif1〜ifnとして示されており、相互接続ネットワークを通じて、
図11では2つのSAP、SAP1 1102からSAP2 1104として示される、n箇所のサービス・アタッチメント・ポイント(SAP)に相互接続されている。SAPとNVFインターフェースの主およびバックアップVNFインスタンスとの間にあるネットワーク経路の部分は、分岐点まで重複する場合もある。これらは
図11では分岐点b1〜bnとして示されており、b1は第1インターフェースに至るネットワーク経路の分岐点であり、bnは第nインターフェースに至るネットワーク経路の分岐点である。PU506の1つの役割は、例えば、OpenFlow制御または一般化/マルチ・プロトコル・ラベル・スイッチング(G/MPLS:Generalized/Multi-Protocol Label Switching)シグナリング・プロトコルを使用して、バックアップVNFインスタンスに向かうネットワーク経路がプロビジョニングされることを確保することである。PU506が代替VNFインスタンスを使用するように命令されたときから、バックアップVNFに向かうネットワーク経路をSAP間で変更する処置を講ずることができる。保護技法を使用する場合、これは、バックアップ・セグメントに向かうように切り替える、即ち、
図11に示す破線の相互接続を使用して切り替えるように、分岐点に命令することを伴う。
【0076】
ここで説明するインターフェース・エンティティ510によって実行される方法ステップは、これらの方法ステップを実行するように構成されたプロセッサを少なくとも含む任意の種類のデータ処理システムによって実行されればよい。このようなデータ処理システムの一例を
図12において、データ処理システム1200として示し、このようなデータ処理システムを実装することができる場合の論述を、
図12の説明の後に行う。
【0077】
データ処理システム1200は、システム・バス1210を通じてメモリ・エレメント1204に結合された少なくとも1つのプロセッサ1202を含むことができる。したがって、データ処理システムは、プログラム・コードをメモリ・エレメント1204内に格納することができる。更に、プロセッサ1202は、システム・バス1210を通じてメモリ・エレメント1204からアクセスされたプログラム・コードを実行することができる。1つの態様では、データ処理システム1200は、プログラム・コードを格納および/または実行するのに適したコンピュータとして実現されてもよい。しかしながら、システム1200は、プロセッサとメモリとを含み、本明細書において説明した機能を実行することができる任意のシステムの形態で実現されればよいことは認められてしかるべきである。
【0078】
メモリ・エレメント1204は、例えば、ローカル・メモリ1206のような1つ以上の物理メモリ・デバイスと、1つ以上の大容量記憶デバイス1208とを含むことができる。ローカル・メモリとは、プログラム・コードの実際の実行中に通常使用されるランダム・アクセス・メモリまたは他の非永続的メモリ・デバイス(1つまたは複数)を指すことができる。大容量記憶デバイスは、ハード・ドライブまたは他の永続的データ記憶デバイスとして実装されればよい。また、処理システム1200は1つ以上のキャッシュ・メモリ(図示せず)も含むことができる。キャッシュ・メモリは、実行中にプログラム・コードを大容量記憶デバイス1208から引き出さなければならない回数を減らすために、少なくとも一部のプログラム・コードの一時的格納に備える。
【0079】
入力デバイス1212および出力デバイス1214として図示されている入力/出力(I/O)デバイスを、任意に、データ処理システムに結合することができる。入力デバイスの例には、例えば、キーボード、マウスのようなポインティング・デバイス等を含むことができるが、これらに限定されるのではない。出力デバイスの例には、例えば、モニタまたはディスプレイ、スピーカ等を含むことができるが、これらに限定されるのではない。入力デバイスおよび/または出力デバイスは、直接、または仲介するI/Oコントローラを介してのいずれで、データ処理システムに結合することができる。また、ネットワーク・アダプタ1216をデータ処理システムに結合して、他のシステム、コンピュータ・システム、リモート・ネットワーク・デバイス、および/またはリモート記憶デバイスに、仲介するプライベートまたはパブリック・ネットワークを通じて結合されることを可能にしてもよい。ネットワーク・アダプタは、具体的には、前記システム、デバイス、および/またはネットワークによって前記データに送信されるデータを受信するデータ受信機1218、およびデータを前記システム、デバイス、および/またはネットワークに送信するデータ送信機1220を含むことができる。モデム、ケーブル・モデム、およびイーサネット・カードは、データ処理システム1200と共に使用することができる異なるタイプのネットワーク・アダプタの例である。
【0080】
メモリ・エレメント1204はアプリケーション(図示せず)を格納することができる。尚、データ処理システム1200は、更に、アプリケーションの実行を容易にすることができるオペレーティング・システム(図示せず)を実行してもよいことは認められてしかるべきである。実行可能プログラム・コードの形態で実現されるアプリケーションは、データ処理システム1200によって、例えば、プロセッサ1202によって実行することができる。アプリケーションを実行したことに応答して、データ処理システム1200は本明細書において説明した1つ以上の方法ステップを実行するように構成することができる。
【0081】
尚、エレメント1202〜1220は
図12では別々のエレメントとして示されているが、他の実施形態では、これらの機能をもっと少ない数の個別エレメントに実装すること、またはもっと多い数のコンポーネントにわたって分散させることもできることは、当業者には認められよう。
【0082】
図13は、電気通信システム1300の模式図を示す。電気通信システム1300は、無線アクセス・ネットワーク1302(
図13ではE−UTRANまたはRANとしても示されている)と、以下で更に詳しく説明する種々のエレメントまたはノードを内蔵するコア・ネットワーク1304とを含む。
【0083】
図13の電気通信システムでは、簡潔さのために、三世代のネットワークが一緒に模式的に図示されている。このアーキテクチャの更に詳細な説明および全体像は、3GPP TS23.002において探し出すことができる。3GPP TS23.002をここで引用したことにより、その内容全体が本願にも含まれるものとする。
図13の下側の枝線(branch)は、GPRSまたはUMTS電気通信ネットワークを表す。
【0084】
GSM/GPRS電気通信ネットワーク(即ち、2G/2.5G電気通信ネットワーク)では、無線アクセス・ネットワーク1302は複数の基地局(BSCおよびBTSの組み合わせ)と、
図13には個々に図示しない、1つ以上の無線ネットワーク・コントローラ(RNC)とを含む。コア・ネットワーク1304は、ゲートウェイGPRSサポート・ノード(GGSN)、サービングGPRSサポート・ノード(GPRS用、SGSN)、または移動体交換センタ(GSM用、MCS、
図13には示されていない)、および認証局(AuC)と組み合わされたホーム・ロケーション・レジスタ(HLR)を含む。HLRは、移動体デバイス1306(「ユーザ機器」(UE)またはユーザ・デバイスと呼ぶこともある)についての加入情報(subscription information)を含み、AuCは、認証および鍵照合(AKA:key agreement)手順に使用される共有秘密鍵Kを含む。
【0085】
UMTS無線アクセス・ネットワーク(UTRAN)(即ち、3G電気通信ネットワーク)では、無線アクセス・ネットワーク1302は、複数のNodeBに接続された無線ネットワーク・コントローラ(RNC)も含む。NodeBも図示されていない。コア・ネットワーク1304において、GGSNおよびSGSN/MSCは従来通りにHLR/AuCに接続され、HLR/AuCは加入情報と、移動体デバイス1306の共有秘密鍵Kとを収容する。
【0086】
尚、GSMおよびUMTSネットワークにおけるRNC機能は正式にはRANの一部であることは注記してしかるべきである。RNC機能は、1つ以上の基地局に実装することができる。このような構成は、圧縮アーキテクチャ(collapsed architecture)として知られている。
【0087】
図13の上側の枝線は、一般にロング・ターム・エボリューション(LTE)システムまたは進化型パケット・システム(EPS)(即ち、4G電気通信ネットワーク)として示される、次世代電気通信ネットワークを表す。このようなネットワークでは、E−UTRANとして示されている無線アクセス・ネットワーク1302は、移動体デバイス1306にワイヤレス・アクセスを提供する進化NodeB(eNodeBまたはeNB)を含む。コア・ネットワーク1304は、PDNゲートウェイ(P−GW)と、サービング・ゲートウェイ(S−GW)を含む。EPSのE−UTRANは、パケット・ネットワークを通じて、S−GWに接続される。S−GWは、シグナリングの目的で、ホーム・サブスクライバ・サーバHSSおよび移動管理エンティティMMEに接続される。HSSは、加入プロファイル・レポジトリSPRを含み、AKA手順のために共有秘密鍵Kを格納する認証局(AuC)と組み合わせられる。EPSネットワークの全体的なアーキテクチャのこれ以上の情報は、3GPP TS 23.401において探し出すことができる。
【0088】
GPRS、UMTS、およびLTE電気通信ネットワークでは、コア・ネットワーク1304は、通常、例えばゲートウェイ(例えば、P−GW)を使用して、他のネットワーク1308、例えば、インターネットに接続される。
【0089】
種々の実施形態において、本明細書において説明したインターフェース・エレメント510は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせで実現することができる。例えば、
図13に示すネットワークでは、本明細書において説明したインターフェース・エレメント510として機能するように構成されたデータ処理システム1200は、S−GW、P−GWの一部、あるいはコア・ネットワークのSGSNまたはGGSNとして実現することができ、あるいは、本明細書において説明したインターフェース・エレメント510は、コア・ネットワークのこれらのエレメントの1つまたは組み合わせにおいてソフトウェア機能として実現することができる。勿論、3GGPによって定められる以外のアーキテクチャ、例えば、WiMAXも、本開示のコンテキスト内で使用することができる。
【0090】
本発明の種々の実施形態は、コンピュータ・システムまたはプロセッサと共に使用するためのプログラム製品として実現することもでき、プログラム製品のプログラム(1つまたは複数)は、実施形態の機能(本明細書において説明した方法を含む)を定める。一実施形態では、プログラム(1つまたは複数)は、種々の非一時的コンピュータ読み取り可能媒体(一般に、「ストレージ」と呼ぶ)に収容することがでる。本明細書において使用する場合、「非一時的コンピュータ読み取り可能記憶媒体」という表現は、全てのコンピュータ読み取り可能媒体を含み、唯一の例外が一時的な伝搬信号である。他の実施形態では、プログラム(1つまたは複数)は種々の一時的コンピュータ読み取り可能記憶媒体に収容することができる。例示的なコンピュータ読み取り可能記憶媒体には、(i)情報が永続的に格納される非書き込み可能記憶媒体(例えば、CD−ROMドライブによって読み取り可能なCD−ROMディスク、ROMチップ、または任意のタイプのソリッド・ステート不揮発性半導体メモリのような、コンピュータ内部のリード・オンリー・メモリ・デバイス)、および(ii)変化する可能性がある情報が格納される書き込み可能記憶媒体(例えば、フラッシュ・メモリ、ディスケット・ドライブ内部のフロッピ・ディスク、またはハード・ディスク・ドライブ、あるいは任意のタイプのソリッド・ステート・ランダム・アクセス半導体メモリ)が含まれるが、これらに限定されるのではない。コンピュータ・プログラムは、本明細書において説明したプロセッサ1202上で実行することができる。
【0091】
いずれの1つの実施形態に関係して説明したいずれの特徴も、単独で、または説明した他の特徴と組み合わせて使用することができ、更に実施形態の他のいずれかの1つ以上の特徴と組み合わせて、あるいは実施形態の他のいずれかのいずれの組み合わせでも使用できることは理解されよう。更に、本発明は以上で説明した実施形態に限定されるのではなく、添付する請求項の範囲内で変更することも可能である。
【0092】
本明細書において使用した用語は、特定の実施形態を説明するために限られており、本発明の限定であることを意図するのではない。本明細書において使用する場合、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを示すのでなければ、複数形も含むことを意図している。更に、「含む」(comprises)および/または「含んでいる」(comprising)という用語は、本明細書において使用する場合、述べられる特徴、整数、ステップ、動作、エレメント、および/またはコンポーネントの存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、エレメント、コンポーネント、および/またはそのグループの存在や追加を除外するのではないことも理解されよう。
【0093】
以下の特許請求の範囲における全ての手段またはステップ+機能エレメントの対応する構造、材料、アクト、および均等物は、特定的に特許請求される他の特許請求対象エレメントと組み合わせて当該機能を実行する任意の構造、材料、またはアクトを含むことを意図している。本発明の説明は、例示および説明の目的に限って提示されたのであって、網羅的であること、または開示した形態に本発明を限定することを意図するのではない。本発明から逸脱することなく、当業者には多くの変更および変種が明白であろう。以上の実施形態が選択され説明されたのは、本発明の原理および実用的用途を最良に説明するためであり、更に他の当業者が、本発明を理解して、想定される特定の使用に適する種々の変更を行って種々の実施形態を得ることを可能にするためである。