(57)【特許請求の範囲】
【請求項１】
インターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システムであって、
ネットワーク機能を含むネットワーク化されたコンピューティング・リソースと、
少なくとも１つのネットワーク・サービスを実施するためのコードを記憶するためのサービス・コード・リポジトリであって、前記少なくとも１つのネットワーク・サービスは、前記ネットワーク機能が受け取ったイベントに対する該ネットワーク機能の将来の挙動を決定するグローバル状態であって、該ネットワーク機能の有する該グローバル状態を格納するように構成された状態リポジトリ・サービスを備える、サービス・コード・リポジトリと、
前記ネットワーク機能を実施するためのコードを記憶するための機能コード・リポジトリであって、前記ネットワーク機能は、前記システム内の同じネットワーク機能のインスタンス間において前記グローバル状態が共有されることを保証するために、前記状態リポジトリ・サービスによって格納された該グローバル状態を用いるように構成された、機能コード・リポジトリと、
前記ネットワーク化されたコンピューティング・リソース上で動作する複数のプログラム可能な論理エンティティであって、前記エンティティの各々は、インスタンス化されていない状態にあるか、または、前記機能コード・リポジトリまたは前記サービス・コード・リポジトリからのコードがそこで展開された後にインスタンス化された状態にあるか、のいずれかである、論理エンティティと、
前記インスタンス化された論理エンティティに関する最新の状態情報を維持し、前記ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態に関する情報を提供するコントローラであって、前記機能コード・リポジトリおよび／または前記サービス・コード・リポジトリからのコードを、インスタンス化されていないプログラム可能な論理エンティティ上に展開するか、または、インスタンス化されたプログラム可能な論理エンティティを終了および解放する、ようにさらに構成されたコントローラと、
前記インスタンス化されたプログラム可能な論理エンティティをベンチマークすることを可能にするためのモニタリング・サービスを有するモニタリング・ユニットと、
ネットワーク機能および／またはネットワーク・サービスに関する前記モニタリング・ユニットからの入力に個別に基づいて、前記ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するために前記コントローラを用いる融通性サービスを有する融通性ユニットと、
を備える、
ＩＭＳシステム。
【請求項２】
前記モニタリング・ユニットは、ネットワーク機能および／またはネットワーク・サービスの負荷を判定し、前記融通性ユニットは、前記負荷が所定の動作範囲外である場合、前記ネットワーク機能および／または前記ネットワーク・サービスに関する、前記インスタンス化された論理エンティティの数を修正するように構成された、請求項１に記載のＩＭＳシステム。
【請求項３】
前記融通性ユニットはさらに、前記インスタンス化された論理エンティティの数を修正するか否かを判定するために、前記コントローラから取得された前記ネットワーク化されたコンピューティング・リソースの利用可能性の状態を考慮するように構成された、請求項２に記載のＩＭＳシステム。
【請求項４】
前記サービス・コード・リポジトリは、前記モニタリング・サービスおよび前記融通性サービスを実施するためのコードを備え、前記モニタリング・ユニットは、プログラム可能な論理エンティティ上に前記モニタリング・サービスのインスタンス化を備え、前記融通性ユニットは、プログラム可能な論理エンティティ上に前記融通性サービスのインスタンス化を備える、請求項１乃至３のいずれか１項に記載のＩＭＳシステム。
【請求項５】
前記ネットワーク機能および／または前記ネットワーク・サービスの負荷急増を予測するための予測サービスを有する予測ユニットを備え、前記融通性ユニットは、前記予測サービスの出力に基づいて、前記ネットワーク機能および／または前記ネットワーク・サービスに関する、前記インスタンス化された論理エンティティの数を修正するように構成された、請求項１乃至４のいずれか１項に記載のＩＭＳシステム。
【請求項６】
前記サービス・コード・リポジトリは、前記予測サービスを実施するためのコードを備え、前記予測ユニットは、プログラム可能な論理エンティティ上の前記予測サービスのインスタンス化である、請求項５に記載のＩＭＳシステム。
【請求項７】
前記機能コード・リポジトリおよび／またはサービス・コード・リポジトリは、複数のネットワーク機能および／またはネットワーク・サービスそれぞれのためのコードを備え、前記融通性ユニットは、ネットワーク機能および／またはネットワーク・サービスに関する前記モニタリング・ユニットからの入力に個別に基づいて、各ネットワーク機能および／またはネットワーク・サービスに関する前記インスタンス化された論理エンティティの数を修正するように構成された、請求項１乃至６のいずれか１項に記載のＩＭＳシステム。
【請求項８】
前記コントローラは、ネットワーク機能および／またはネットワーク・サービスの名称、および、各インスタンス化された論理エンティティのための対応するアドレスおよびステータスを記憶しているデータベースを備え、該各インスタンス化された論理エンティティ上に、前記ネットワーク機能および／またはネットワーク・サービスがインスタンス化されている、請求項１乃至７のいずれか１項に記載のＩＭＳシステム。
【請求項９】
前記ＩＭＳシステム内の他の機能またはサービスのために前記データベースへのアクセスを可能にするためのルックアップ・サービスを有するルックアップ・ユニット、をさらに備える、請求項８に記載のＩＭＳシステム。
【請求項１０】
インターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システムを弾力的にスケールするためにＩＭＳアーキテクチャによって実行される方法であって、
ネットワーク機能を含むネットワーク化されたコンピューティング・リソースを提供するステップと、
少なくとも１つのネットワーク・サービスを実施するためのコードを、サービス・コード・リポジトリに記憶するステップであって、前記少なくとも１つのネットワーク・サービスは、前記ネットワーク機能が受け取ったイベントに対する該ネットワーク機能の将来の挙動を決定するグローバル状態であって、該ネットワーク機能の有する該グローバル状態を格納するように構成された状態リポジトリ・サービスを備える、記憶するステップと、
前記ネットワーク機能を実施するためのコードを、機能コード・リポジトリに記憶するステップであって、前記ネットワーク機能は、前記システム内の同じネットワーク機能のインスタンス間において前記グローバル状態が共有されることを保証するために、前記状態リポジトリ・サービスによって格納された該グローバル状態を用いるように構成された、記憶するステップと、
前記ネットワーク化されたコンピューティング・リソース上で動作する複数のプログラム可能な論理エンティティを提供するステップであって、前記エンティティの各々は、インスタンス化されていない状態にあるか、または、前記機能コード・リポジトリまたは前記サービス・コード・リポジトリからのコードが展開された後にインスタンス化された状態にあるか、のいずれかである、提供するステップと、
前記インスタンス化された論理エンティティに関する最新の状態情報を維持し、前記ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態に関する情報を提供するステップと、
インスタンス化されていないプログラム可能な論理エンティティ上で、前記機能コード・リポジトリおよび／または前記サービス・コード・リポジトリからのコードを展開することによって、または、インスタンス化されたプログラム可能な論理エンティティを終了および解放するために、前記ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するステップと、
前記インスタンス化されたプログラム可能な論理エンティティをベンチマークするステップと、
を備え、
前記ネットワーク機能および／またはネットワーク・サービスに関する、インスタンス化された論理エンティティの数を前記修正するステップは、ネットワーク機能および／またはネットワーク・サービスに関する前記ベンチマークするステップに基づく、
方法。
【請求項１１】
前記ネットワーク機能および／またはネットワーク・サービスの負荷を判定するステップをさらに備え、前記修正するステップは、前記負荷が所定の動作範囲外である場合、前記ネットワーク機能および／または前記ネットワーク・サービスに関する、前記インスタンス化された論理エンティティの数を修正するステップを備える、請求項１０に記載の方法。
【請求項１２】
前記インスタンス化された論理エンティティの数を修正するか否かを判定するために、前記ネットワーク化されたコンピューティング・リソースの利用可能性の状態を考慮するステップ、をさらに備える請求項１０または１１に記載の方法。
【請求項１３】
前記ネットワーク機能および／または前記ネットワーク・サービスの負荷急増を予測するステップをさらに備え、前記修正するステップは、前記予測するステップの出力にも基づいて、前記ネットワーク機能および／または前記ネットワーク・サービスに関する、前記インスタンス化された論理エンティティの数を修正するステップを備える、請求項１０乃至１２のいずれか１項に記載の方法。
【請求項１４】
前記機能コード・リポジトリおよび／またはサービス・コード・リポジトリは、複数のネットワーク機能および／またはネットワーク・サービスそれぞれのためのコードを備え、前記修正するステップは、ネットワーク機能および／またはネットワーク・サービスをベンチマークするステップに個別に基づいて、各ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するステップを備える、請求項１０乃至１３のいずれか１項に記載の方法。
【請求項１５】
インターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システム・パッケージであって、
コンピュータ読取可能な記憶媒体を備え、
前記コンピュータ読取可能な記憶媒体は、ネットワーク機能を含むネットワーク化されたコンピューティング・リソースにおいて動作する複数のプログラム可能な論理エンティティ上に展開されるべきコードを備え、前記エンティティの各々は、インスタンス化されていない状態にあるか、または、コードがそこで展開された後にインスタンス化された状態にあるか、のいずれかであり、前記コンピュータ読取可能な記憶媒体は、
少なくとも１つのネットワーク・サービスを実施するためのコードであって、前記少なくとも１つのネットワーク・サービスは、前記ネットワーク機能が受け取ったイベントに対する該ネットワーク機能の将来の挙動を決定するグローバル状態であって、該ネットワーク機能の有する該グローバル状態を格納するように構成された状態リポジトリ・サービスを備える、コードと、
前記ネットワーク機能を実施するためのコードであって、前記ネットワーク機能は、前記システム内の同じネットワーク機能のインスタンス間において前記グローバル状態が共有されることを保証するために、前記状態リポジトリ・サービスによって格納された該グローバル状態を用いるように構成された、コードと、
前記インスタンス化された論理エンティティに関する最新の状態情報を維持し、前記ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態に関する情報を提供するコントローラ・サービスを実施するためのコードであって、前記コントローラ・サービスはさらに、インスタンス化されていないプログラム可能な論理エンティティ上に、前記ネットワーク機能を実施するための前記コードを記憶するための機能コード・リポジトリおよび／または前記少なくとも１つのネットワーク・サービスを実施するための前記コードを記憶するためのサービス・コード・リポジトリからのコードを展開し、または、インスタンス化されたプログラム可能な論理エンティティを終了および解放するように構成された、コードと、
前記インスタンス化されたプログラム可能な論理エンティティをベンチマークすることを可能にするためのモニタリング・サービスを実施するためのコードと、
前記ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を、ネットワーク機能および／またはネットワーク・サービスに関するモニタリング・ユニットからの入力に基づいて修正するために前記コントローラ・サービスを用いるように構成された融通性サービスを実施するためのコードと、
を備える、
ＩＭＳシステム・パッケージ。
【請求項１６】
前記ネットワーク機能および／またはネットワーク・サービスの負荷急増を予測するための予測サービスを実施するためのコードをさらに備え、前記融通性サービスは、前記予測サービスの出力に基づいて、前記ネットワーク機能および／またはネットワーク・サービスに関する前記インスタンス化された論理エンティティの数を修正するように構成された、請求項１５に記載のＩＭＳシステム・パッケージ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケーラブル(scalable)で融通性のある(elastic)クラウド・ベースのＩＭＳシステムおよび方法に関する。
【背景技術】
【０００２】
電気通信システムの発展における最近の傾向は、ハードウェアにおいてまたはスタンドアロン・マシンとして実装される機能要素を、ソフトウェア・コンポーネントによって実行される論理機能で置き換えることに見られる。インターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）仕様に基づく電話システムの現在のアーキテクチャは、要求されるサービスを提供するために協調する個別のソフトウェア機能の相互運用のための論理的なインターフェースおよびプロトコルを指定する。したがって、ＩＭＳアーキテクチャは、特定のハードウェア実装から離れて電話システム全体を「仮想化」した。
【０００３】
しかしながら、ＩＭＳが現在実施され管理されている手法は、未だに、電気通信オペレータの慣例に従う。もはや厳密には必要とされないが、論理的な機能は未だに、独立したマシン、または、共有されたマシン上の独立したブレード／コアである、個別のハードウェア・プラットフォーム上に実装され実行されている。この選択の主な理由は、異なるソフトウェアの間の好ましくない干渉を恐れること、および良好に規定された機能に個別のマシンを割り当てるという習慣によるものである。
【０００４】
図１は、先行技術システムの例示的な実施形態を例示する。以下、「ワーカ（ｗｏｒｋｅｒ）」という用語は、ＩＭＳ機能またはサービスがインスタンス化されるネットワーク化されたコンピューティング・リソースで実行し得るプログラム可能な論理エンティティを意味するために使用される。たとえば、プロキシ・コール・セッション制御機能（Ｐ−ＣＳＣＦ）は、プログラム可能な論理エンティティ上にインスタンス化され、これによって、Ｐ−ＣＳＣＦワーカを形成する。
【０００５】
再び図１を参照すると、Ｐ−ＣＳＣＦワーカおよびサービング・コール・セッション制御機能（Ｓ−ＣＳＣＦ）ワーカは、２つのユーザ機器（ＵＥ）間の基本的な呼の確立をサポートするために展開されている。
【０００６】
各ＵＥ１、２は、Ｐ−ＣＳＣＦワーカ３、４を介して自分自身をＳ−ＣＳＣＦワーカ５に登録し、Ｓ−ＣＳＣＦワーカ５は、ＵＥのアドレスを、データ・ストア（ＨＳＳ−ホーム加入者サーバ）６に記憶する。発呼者がセッションを開始した場合、そのＵＥは、Ｐ−ＣＳＣＦワーカへリクエストを送る。Ｐ−ＣＳＣＦワーカは、被呼者の位置を決定するために、そのリクエストを、Ｓ−ＣＳＣＦへ転送する。次に、そのリクエストは、Ｐ−ＣＳＣＦワーカへ再び転送される。Ｐ−ＣＳＣＦワーカは、そのリクエストを、被呼者へ送信する。
【０００７】
２つのＵＥ間のコールを確立した場合、関連するＳＩＰリクエストおよび応答が、同じ固定経路に従う。正確に言えば、Ｐ−ＣＳＣＦ、インタロゲーティング・コール・セッション・制御機能（Ｉ−ＣＳＣＦ）インスタンスおよびＳ−ＣＳＣＦインスタンスのようなコール・ステートフル(call-stateful)ＩＭＳサーバは、すべての（セッション）関連のリクエストおよび応答が、影響を受けているセッション状態に現在対処している同じサーバ・インスタンスを訪問することを保証するために、ＲＯＵＴＥおよびＶＩＡヘッダを用いてメッセージをマーク付けし得る。そのような「スティッキーな(sticky)セッション」を実施することは、多くの利点を有し得るが、いくつかの欠点を示す。たとえば、コール・ステートフルＩＭＳワーカのクラスタをスケール・バックする場合、この動作を調整する制御エージェントは、ワーカを、安全実行状態にしなければならない。安全実行状態では、そのワーカを安全に停止できる前に、すべての進行中のセッションが確立されているか終了している。これは、ワーカがすべての進行中のセッションを完了するまで待機することによって、または、進行中のセッションの処理を、他のワーカ・インスタンスへ移動させることによって、達成され得る。さらに、コール・ステートフルＩＭＳワーカのクラスタをスケール・アウトした場合、新たなワーカは、新たなセッションが確立された場合にのみ、徐々に使用される。これは、作業負荷の均衡を崩し、モニタリング・サービスに対して、新たなワーカが不正確に振る舞っているとの誤った結論に至らせ得る。
【０００８】
したがって、既知の解決策の欠点は、ネットワーク化されたコンピューティング・リソースが、効率的な方式で使用されていないという点にある。たとえば、ＩＭＳネットワークにおいて、さほど多くのユーザ・コールがなされていないのであれば、ほとんどのリソースがアイドルになるであろう一方、これらリソースは、エネルギ消費量およびその他の変動コストを低減するために、プールから解放されるか、または、他のタスクを実行するために使用され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、動的に契約された計算リソースに、必要とされる機能的な構成要素を柔軟に割り当てるための手法を提供するシステムを提供することが、本発明の目的である。
【００１０】
この目的のために、本発明は、第１の態様では、請求項１によるインターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システムを提供する。
【００１１】
本発明によれば、ＩＭＳシステムは、ネットワーク化されたコンピューティング・リソースと、少なくとも１つのネットワーク・サービスを実施するためのコードを記憶するためのサービス・コード・リポジトリとを備える。少なくとも１つのネットワーク・サービスは、ネットワーク機能に対応するグローバル状態のストレージを提供する状態リポジトリ・サービスを備える。
【００１２】
ＩＭＳシステムはさらに、ネットワーク機能を実施するためのコードを記憶するための機能コード・リポジトリを備える。ネットワーク機能は、システム内の同じネットワーク機能のインスタンス間におけるグローバル状態共有を保証するために、状態リポジトリ・サービスを用いるように構成されている。
【００１３】
さらに、ＩＭＳシステムは、ネットワーク化されたコンピューティング・リソース上で動作する複数のプログラム可能な論理エンティティを備える。これらエンティティの各々は、インスタンス化されていない状態にあるか、または、機能コード・リポジトリまたはサービス・コード・リポジトリからのコードがそこで展開された後にインスタンス化された状態にあるか、のいずれかである。
【００１４】
ＩＭＳシステムはさらに、インスタンス化された論理エンティティのステータスの一貫した(consistent)ビューを維持し、ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態を判定するためのコントローラを備える。このコントローラはさらに、機能コード・リポジトリおよび／またはサービス・コード・リポジトリからのコードを、インスタンス化されていないプログラム可能な論理エンティティ上に展開するか、または、インスタンス化されたプログラム可能な論理エンティティを終了させ、解放するように構成される。
【００１５】
ＩＭＳシステムはさらに、インスタンス化されたプログラム可能な論理エンティティをベンチマークすることが可能なモニタリング・サービスを有するモニタリング・ユニットと、ネットワーク機能および／またはネットワーク・サービスに関するモニタリング・ユニットからの入力に基づいて、ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するためにコントローラを用いる融通性サービスを有する融通性ユニットと、を備え得る。
【００１６】
ほんの少数のインスタンスしか利用可能ではなく、これらのインスタンスが完全に占有されているか、または負荷を与えられていることをベンチマークが示すのであれば、新たな機能および／またはサービスがインスタンス化され得る。
【００１７】
既存のシステムに伴う問題は、所与のＩＭＳネットワーク機能は、取り扱っているセッションがアクティブである間、アクティブであり続けることを要求されることである。これは、ネットワークにわたる負荷の等しい分散と、ＩＭＳシステムのタイムリーな再構成とを阻止するので、もはや望まれない。
【００１８】
しかしながら、新たな機能またはサービスがインスタンス化されているのであれば、他の機能またはサービスが関与する進行中のセッションを引き継ぐための情報を必要とする。この問題に対処するために、本発明は、ネットワーク機能に対応するグローバル状態のストレージを提供する状態リポジトリ・サービスを用いることを提案する。
【００１９】
グローバル状態は、機能のインスタンスの複数の間で共有される必要のある状態情報である。それは、すべてのインスタンスがアクセスおよび／または（主設定、暗号鍵等を）修正する必要がある状態情報と、その複数のインスタンス間で共有される状態情報とを備えるが、それら（たとえば、領域設定、サイト・ワイド・パラメータ(site-wide parameter)等）のうちのすべてである訳ではない。ユーザ・セッション情報は、このカテゴリに属する。他のタイプの共有状態もまた、この定義に含まれ得る。異なる種類のグローバル状態は、ネットワーク機能の正しい動作のための異なる程度の一貫性保証を必要とし得る。
【００２０】
本発明によれば、新たにインスタンス化されたネットワーク機能は、その機能に対応するグローバル状態を、状態リポジトリからフェッチする。これは、新たにインスタンス化されたネットワーク機能を、このネットワーク機能の既存のインスタンスと同様の方式で動作することを可能にする。
【００２１】
複数の同一のネットワーク機能が、このネットワーク機能に関するグローバル状態を共有するために、同じ状態リポジトリ・サービスを使用し得ることが注目されるべきである。
【００２２】
モニタリング・ユニットは、ネットワーク機能および／またはネットワーク・サービスの負荷を判定し得る。さらに、融通性ユニットは、負荷が所定の動作範囲外である場合、ネットワーク機能および／またはネットワーク・サービスに関する、インスタンス化された論理エンティティの数を修正するように構成され得る。所定の動作範囲は、それよりも上ではインスタンス化された論理エンティティの数が増加される上限と、それよりも下ではインスタンス化された論理エンティティの数が低減される下限と、から構成され得る。
【００２３】
融通性ユニットはさらに、インスタンス化された論理エンティティの数を修正するか否かを判定するために、コントローラから取得されたネットワーク化されたコンピューティング・リソースの利用可能性の状態を考慮するように構成され得る。たとえば、これ以上のリソースが利用可能ではないのであれば、インスタンス化された論理エンティティの数は、増加されることはない。同様に、多くのリソースが利用可能であるのであれば、インスタンス化された論理エンティティを増加させるとの決定が、早期になされ得る。同様に、前述された動作範囲は、この利用可能性の状態に依存し得る。
【００２４】
サービス・コード・リポジトリは、モニタリング・サービスおよび融通性サービスを実施するためのコードを備え得る。さらに、モニタリング・ユニットは、プログラム可能な論理エンティティにおけるモニタリング・サービスのインスタンス化を備え、融通性ユニットは、プログラム可能な論理エンティティにおける融通性サービスのインスタンス化を備え得る。
【００２５】
ＩＭＳシステムはさらに、ネットワーク機能および／またはネットワーク・サービスの負荷急増を予測するための予測サービスを有する予測ユニットを備え得る。このケースでは、融通性ユニットは、予測サービスの出力に基づいて、ネットワーク機能および／またはネットワーク・サービスに関する、インスタンス化された論理エンティティの数を修正するように構成され得る。予測サービスによって、インスタンス化された論理エンティティの数の予防的な増加または低減を可能とする。たとえば、この数は、元旦の午前０：００前に増加され得る。
【００２６】
サービス・コード・リポジトリは、予測サービスを実施するためのコードを備え得る。モニタリング・ユニットと同様に、予測ユニットは、プログラム可能な論理エンティティ上の予測サービスのインスタンス化であり得る。
【００２７】
コントローラは、ネットワーク機能および／またはネットワーク・サービスの名称、および、ネットワーク機能および／またはネットワークがインスタンス化された各インスタンス化された論理エンティティのための対応するアドレスおよびステータスを記憶しているデータベースを備え得る。このデータベースは、この機能またはサービスにアクセスする目的で使用するために、どの機能またはサービスがどの論理エンティティ、および、たとえばＩＰアドレスまたはその他のネットワーク識別子のようなどのアドレス情報にインスタンス化されているのかを追跡する。
【００２８】
ＩＭＳシステム内の他の機能またはサービスのためのデータベースへの読取専用アクセスが、ルックアップ・サービスを有するルックアップ・ユニットを用いて可能とされ得る。
【００２９】
機能コード・リポジトリおよび／またはサービス・コード・リポジトリは、複数のネットワーク機能および／またはネットワーク・サービスのためのコードをそれぞれ備え得る。このケースでは、融通性ユニットは、そのネットワーク機能および／またはネットワーク・サービスに関するモニタリング・ユニットからの入力に個別に基づいて、各ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するように構成され得る。したがって、いくつかのネットワーク機能またはネットワーク・サービスについては、ＩＭＳシステム内のインスタンス化の数が増加し得る一方、他の機能またはサービスについては、この数は、減少し得る。これらはすべて、これら機能またはサービスの負荷に依存する。
【００３０】
第２の態様によれば、本発明は、インターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システムを弾力的にスケールするための方法を提供する。
【００３１】
本発明による方法は、
ネットワーク化されたコンピューティング・リソースを提供するステップと、
少なくとも１つのネットワーク・サービスを実施するためのコードを、サービス・コード・リポジトリに記憶するステップであって、少なくとも１つのネットワーク・サービスは、ネットワーク機能に対応するグローバル状態のストレージを提供する状態リポジトリ・サービスを備える、記憶するステップと、
少なくとも１つのネットワーク機能を実施するためのコードを、機能コード・リポジトリに記憶するステップであって、ネットワーク機能は、システム内のネットワーク機能のインスタンス間におけるグローバル状態共有を保証するために、状態リポジトリ・サービスを用いるように構成された、記憶するステップと、
ネットワーク化されたコンピューティング・リソース上で動作する複数のプログラム可能な論理エンティティを提供するステップであって、これらエンティティの各々は、インスタンス化されていない状態にあるか、または、機能コード・リポジトリまたはサービス・コード・リポジトリからのコードがそこで展開された後にインスタンス化された状態にあるか、のいずれかである、提供するステップと、
インスタンス化された論理エンティティのステータスの一貫したビューを維持し、ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態を判定するステップと、
インスタンス化されていないプログラム可能な論理エンティティにおける機能コード・リポジトリまたはサービス・コード・リポジトリからのコードを展開することによって、または、インスタンス化されたプログラム可能な論理エンティティを終了および解放するために、ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するステップと、
からなる各ステップを備える。
【００３２】
この方法はさらに、インスタンス化されたプログラム可能な論理エンティティをベンチマークするステップを備え得る。このケースでは、前述された、ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を修正するステップは、そのネットワーク機能および／またはネットワーク・サービスに関するベンチマークに基づき得る。
【００３３】
第３の態様によれば、本発明は、コンピュータ読取可能な記憶媒体を備えるインターネット・プロトコル・マルチメディア・サブシステム（ＩＭＳ）システム・パッケージを提供する。この媒体は、ネットワーク化されたコンピューティング・リソースにおいて動作する複数のプログラム可能な論理エンティティ上で展開されるべきコードを備える。これらエンティティの各々は、インスタンス化されていない状態にあるか、または、コードがそこで展開された後にインスタンス化された状態にあるかのいずれかである。
【００３４】
本発明によれば、記憶媒体は、少なくとも１つのネットワーク・サービスを実施するためのコードを備える。少なくとも１つのネットワーク・サービスは、ネットワーク機能に対応するグローバル状態のストレージを提供する状態リポジトリ・サービスを備える。それはさらに、ネットワーク機能を実施するためのコードを備える。このネットワーク機能は、システム内の同じネットワーク機能のインスタンス間におけるグローバル状態共有を保証するために、状態リポジトリ・サービスを用いるように構成される。
【００３５】
この媒体はまた、インスタンス化された論理エンティティのステータスの一貫したビューを維持し、ネットワーク化されたコンピューティング・リソースの全体的な利用可能性の状態を判定するためのコントローラ・サービスを実施するためのコードをも備える。このコントローラ・サービスはさらに、インスタンス化されていないプログラム可能な論理エンティティ上でコードを展開する、または、インスタンス化されたプログラム可能な論理エンティティを終了および解放する、ように構成される。
【００３６】
この媒体はまた、インスタンス化されたプログラム可能な論理エンティティをベンチマークすることを可能にするようにモニタリング・サービスを実施するためのコードと、ネットワーク機能および／またはネットワーク・サービスに関するインスタンス化された論理エンティティの数を、そのネットワーク機能および／またはネットワーク・サービスに関するモニタリング・ユニットからの入力に基づいて修正するためにコントローラ・サービスを用いるように構成された融通性サービスを実施するためのコードと、を備え得る。
【００３７】
このパッケージは、前述されたコードが分散される複数の異なる記憶媒体を備え得ることが当業者には理解されよう。
【００３８】
次に、本発明を、図面を参照しながらより詳細に説明する。
【図面の簡単な説明】
【００３９】
【図１】先行技術実施形態による呼設定手順を例示する図である。
【図２】本発明によるシステムの実施形態の論理的な構成要素を例示する図である。
【図３】本発明によるシステムの実施形態を用いた図１に例示された呼設定の実行を例示する図である。
【図４】本発明によるシステムの実施形態を用いた図１に例示された呼設定の実行を例示する別の図である。
【発明を実施するための形態】
【００４０】
概略的に、すべてのネットワーク機能Ｆ（ｉ）は、他の機能からおよび／またはシステムのユーザから受け取るネットワーク・イベントに応じて、その機能の将来の挙動を決定するグローバル状態Ｓ（ｉ）を有する。グローバル状態Ｓ（ｉ）は、同じアプリケーションのすべてのインスタンス間で共有されなければならない一方、共有される必要のないいくつかのローカル状態ｓ（ｉ）も存在し得る。なぜなら、それがなくても、通常のプロトコルによって考慮される復元可能な欠点にしかならないからである。異なるネットワーク機能は、必ずしも状態を共有せず、グローバル状態がアクセス可能でなければならない最大レイテンシ、利用可能性、および一貫性のレベルに関する異なる要件を有し得る。
【００４１】
たとえば、ビデオ・コールの設定、または、マルチメディア・メッセージの配信のような、ユーザによって開始されるすべてのマクロ的なトランザクションについて、ワークフローは、多くの機能における一連の動作および状態更新をトリガするであろうことを明らかにするであろう。ユーザ動作は、処理の複雑さ、および、各機能が実施しなければならないプロトコルの詳細によって決定されるような、ネットワーク機能を介した動作の可変的な程度となる。ネットワーク機能の役割およびリソース消費量の相違は、増大しているユーザ負荷の下において、各機能の異なるスケーリング挙動を決定する。
【００４２】
本発明は、ネットワーク化されたリソースＭのプールが、所望される数のワーカＷを動作させるために動的にインスタンス化され得るアーキテクチャまたはシステムを開示する。ワーカは、とりわけ、アプリケーションを構成するネットワーク機能Ｆを実施し得るコードの任意の一部を動作させるようにプログラムされ得るソフトウェア・インスタンスである。適切なワーカは、いくつかの周知の手法で実施され得る。そして、マルチタスク、リアルタイム・スケジューリング、仮想化、サンドボックス(sandboxing)等のような確立された技術を活用し得る。（たとえば、集中型または分散型のいずれかであるアプリケーション・アウェア・コントローラ(application-aware controller)によって判定されるように）機能を求めるシステム要求が高くなり過ぎた場合、プールからのワーカは、コード・リポジトリからコードをロードすることによって、所望される機能のインスタンスとなるようにインスタンス化される。
【００４３】
コード・リポジトリは、Ｆ個のネットワーク機能を実施するコードの命名された／バージョン付けされた部分の記憶および取得を提供する。コードは、不変であると考えられ、リポジトリは、当該技術分野において広く適用されているような、バージョンおよび設定管理技術を実施し得る。
【００４４】
リソースＭのプールはまた、とりわけ、グローバル状態記憶のための統一された設備のセットを提供するシステム・ワイド・サービスの数Ｄをホストするように構成される。ネットワーク機能は、一貫性、相互排除、および耐障害性等の要求される保証を用いて、すべてのインスタンス間におけるグローバル状態共有を保証するために、Ｄ個の状態記憶設備のうちの１つまたは複数を用いるように設計される。Ｄ個のサービスは、ワーカＷのプールによって実行される第２のカテゴリのソフトウェア・プログラムとして、専用のハードウェア・リソースのセットにおいて、または、好適な実施形態において動作し得る。
【００４５】
図２は、システムの論理的な構成要素を例示する。ワーカ７は、右側に、正方形として表される。ワーカは、（仮想化された）オペレーティング・システム、ＯＳシェル、仮想マシン等のようなネットワーク化されたコンピューティング・リソースにおいて動作するプログラム可能なロジック・エンティティである。ワーカとリソースとの間に１対１の関係が存在すると仮定されており、我々は、最大Ｍ個のワーカがシステム内に存在すると仮定するであろう。ワーカは、２つの状態、特に、インスタンス化されていない（空の正方形として表される）状態と、リポジトリからの適切なコードがそこで実行された後にインスタンス化された状態（埋められた正方形）とに存在し得る。同図には、機能コード（たとえば、Ｆ（１）およびＦ（２）とラベルされた正方形）およびサービス・コード（Ｄ（１）、Ｄ（２）、およびＳＲとラベルされた）を実行するインスタンス化されたワーカが図示されている。
【００４６】
図２はさらに、左に、埋められたシリンダとして表されるリポジトリ８を例示する。リポジトリは、（分散）ファイル・システム、（分散）鍵値記憶、（分散）メモリ・データベース等のような周知の技術的手段で実装され得る記憶設備である。
【００４７】
ワーカ上で動作する特別なタイプのサービス・コードは、たとえば、ネットワーク記憶機能を実装するコード、すなわち、初期化されたワーカ１０上で動作するサービス、または（分散）コントローラ機能１１、（分散）ルックアップ・サービス１２等のような他のネットワーク・ワイドなサービスとしての状態リポジトリ９であるネットワーク記憶機能を実装するコード、を含む。すべてのサービスのためのコードは、「サービス・コード・リポジトリ」内に含まれ、コントローラの監督の下、ワーカにオン・デマンドで展開される。
【００４８】
コントローラ１１は、コンピューティング・リソースの利用可能性の状態、およびワーカの展開に関する最新状態情報を維持する。それは、この目的のために、（たとえば、帯域幅、レイテンシ、およびその他の関連する量について）ネットワークにわたる測定を実行し、それらのステータスに関してワーカ・ノードに定期的に問い合わせを行いうる。したがって、これらの情報は、システム／機能／サービス特有の知識とともに取得され、インスタンス化されていないワーカにおける機能およびサービス・コードの展開、または、指定されたインスタンス化されたワーカの終了および解放を決定するための基礎として使用される。それは、集中システムまたは分散システムとして実施され得る。
【００４９】
ルックアップ・サービス１２は、Ｍ個のコンピューティング・リソースにわたって、展開された他の機能およびサービスのネットワーク・アドレスを取得するために、他の機能またはサービスによって問い合わされ得る。それは、（たとえば、分散されたハッシュ・テーブルのように周知の技術を用いて）集中システムまたは分散システムとして実施され得る。
【００５０】
融通性のあるＰ−ＣＳＣＦワーカおよびＳ−ＣＳＣＦワーカを展開する場合、コントローラは、機能コード・リポジトリから取得されたような適切なコードを実行する新たなワーカ・インスタンスＦ（１）およびＦ（２）をインスタンス化する。コントローラはまた、以下のサービスのうちの１つまたは複数を実行するために、ワーカＤ（１）およびＤ（２）をもインスタンス化し得る。
・（共有されたデータ・ストレージ・システムのような）採用されたシステムワイドなサービスのみならず、ＩＭＳワーカをベンチマークすることおよびプロファイルすることを可能にするためにサービスをモニタリングすること。
・（将来の負荷変動を予測するために、履歴ベースの予測と組み合わされた短期のコール負荷予測に基づいて）負荷急増を予測するための予測サービス。このオプション・サービスは、ＩＭＳワーカに事前にプロビジョンすることを可能にする。これは、（ＳＬＡ違反を引き起こし、顧客を失うリスクを増加させ得る）プロビジョニング不足のワーカのリスクを制限しながら、プロビジョニング過剰のワーカの量を低減することを可能にする。
・（ａ）新たなワーカをいくつ生成するか、（ｂ）どの既存のワーカを解放するのか、および（ｃ）どれくらいの期間アイドル状態でいるのか、を決定するために、ＩＭＳワーカの各タイプを担当するフィードバック・ループを実施する融通性サービス。
・たとえば、解放される前に、ＩＭＳワーカを安全な実行状態にするために、様々な運用的なＩＭＳワーカへのアクセスを提供するメンテナンス・サービス。
【００５１】
スケーラブルなＩＭＳサービスを運用するために、融通性を提供し、動作中のシステムの全体的な耐障害性および負荷平準特性を改善するために使用され得る、前述したシステム・ワイドなサービスのセットが導入され得る。
【００５２】
必要とされる場合には常に直ちにワーカを解放することを可能にするために、および、新たなワーカを追加する場合に、負荷を等しく共有するために、Ｐ−ＣＳＣＦワーカおよびＳ−ＣＳＣＦワーカは、関連するグローバル状態に関連付けられた、または、関連するグローバル状態に影響を与えうるリクエスト／応答の処理の前および後において、共有されたストレージ・システムからの実行状態の取得、および／または、共有されたストレージ・システムへの実行状態の記憶を行う。図２では、Ｐ−ＣＳＣＦワーカおよびＳ−ＣＳＣＦワーカにサービス提供するための、余剰な状態リポジトリ・ワーカＳＲの展開が図示されている。
【００５３】
最後に、ＩＭＳコール機能は使用可能な状態であり、基本的なコールの確立と、その他のＩＭＳテレフォニ機能とをサポートし得る。
【００５４】
図３および図４は、クラウド・ベースのＩＭＳシステムの基本動作を監視する基礎的なメカニズム、特に、所望された標準的なＩＭＳ機能を提供するために、複数のワーカの生成および協調を可能にするメカニズムを例示する。
【００５５】
図３は、たとえば、図１のＵＥ１とＵＥ２との間に例示されたコール・フローの実行のコンテキストにおける適切な機能に対するサービス要求のルーティングを図示する。発呼者ＵＥ１が受信者ＵＥ２に向けてセッションを開始した場合、ＳＩＰメッセージのようなネットワーク・メッセージが、ＩＭＳシステムへのエントリ・ポイント１３に達し、そのリクエストを処理することができるＰ−ＣＳＣＦワーカＦ（１）を発見するために、ステップＳ１において、ルックアップ・サービス１２を起動させる。次に、ステップＳ２において、このメッセージが、Ｆ（１）によって具体化されるＰ−ＣＳＣＦ機能３へ転送される。ステップＳ３では、Ｆ（１）は、状態リポジトリＳＲのインスタンスを発見するために、ルックアップ・サービス１２にアクセスする。ステップＳ４では、Ｆ（１）は、発呼者ＵＥ１のアクティブなテレフォニ・セッションに関する関連するグローバル状態情報をフェッチし、更新する。ＳＲに含まれる状態によって、Ｐ−ＣＳＣＦ機能Ｆ（１）は、適切なＳ−ＣＳＣＦワーカ５のアドレスにコンタクトすることが可能になるであろう。これは、ワーカＦ（２）によって具体化され、このリクエストを処理することが可能であり、さらに、ステップＳ５において、ＵＥ１に対して、ＩＭＳ仕様およびプロトコル状態マシンに従ってコールの進捗を通知することが可能である。ワーカＦ（２）は、ステップＳ６において、このリクエストを受け取った後、ステップＳ７において、ＳＲに記憶された状態にアクセスし、Ｆ（１）から受け取った命令に基づいて、および、関連するＩＭＳプロトコルおよび状態マシンに基づいて、それを更新するであろう。それは、ステップＳ８においてＦ（１）にコンタクトし、恐らくは、最終的にＵＥ２に達するために、ＨＳＳ６および／または他のＰ−ＣＳＣＦ機能のような他のＩＭＳ機能にコンタクトするであろう。図示された完全な呼設定手順の終了時に、コールが、ＵＥ１とＵＥ２との間で確立され得る。
【００５６】
図４は、ＩＭＳシステムが、たとえば、ＵＥ１によって受信されるべきビデオのための新たなデータ・ベアラを求める設定リクエストのような、以前にインスタンス化されていない機能を求める新たな要求を受け取るケースを例示する。
【００５７】
エントリ・ポイント１３は、ステップＳ９において、システムにおいて現在インスタンス化されておらず、新たなデータ・ベアラのために所望される機能を提供するワーカを発見するために、ルックアップ・サービス１２を起動させる。そのようなケースでは、ルックアップ・サービス１２は、このリクエストを処理するためにワーカ・インスタンスを発見することはできない。ステップＳ１０では、ルックアップ・サービス１２は、コントローラ１１に対して、ステップＳ１１において、新たな適切なマルチメディア処理機能Ｆ（３）をインスタンス化するように指示する。新たなワーカＦ（３）が使用可能になると、ルックアップ・サービスは、ステップＳ１２において、エントリ・ポイント１３へＦ（３）機能ワーカのアドレスを返し、ＵＥ１からのメッセージが最終的にステップＳ１３においてＦ（３）をルート付けられる。Ｆ（３）は、その後、関連するＩＭＳ仕様およびプロトコル状態マシンに従って、前述したような、ＵＥ１に関する適切なグローバル状態情報と、恐らくは、コンタクトが必要な他のＩＭＳネットワーク機能のネットワーク・アドレスとを取得するために、ＳＲにアクセスすることによって、適切なフロー実行を続けるであろう。
【００５８】
本発明は、所望される機能および／またはサービスのインスタンス化を可能にし、これによって、要求される計算リソースを調節することが可能なフレキシブルなアーキテクチャを提供する。それは、新たな機能およびサービスを、要求されたときにインスタンス化することができるシステムを提供する。したがって、計算リソースは、厳密に確保される必要はない。
【００５９】
融通性サービスおよびモニタリング・サービスのようなオプション・サービスを追加することで、システムに機能が追加され得る。さらには、特に、これらのサービスによって、ＩＭＳシステムは、要求される機能および／または負荷分散に依存して、弾力的に増加または減少することが可能となる。要求される機能が低い場合、リソースは、他の用途のために利用可能になり得る。これは、従来技術システムで可能であるものよりも、より効率的な計算リソースの管理を可能にする。
【００６０】
添付された特許請求の範囲によって規定された本発明の範囲から逸脱することとなく、本明細書に記載された実施形態に対して様々な実施形態がなされ得ることが明らかに当業者に明らかになるべきである。
【図１】
0006416895.tif 000002
【図２】
0006416895.tif 000003
【図３】
0006416895.tif 000004
【図４】
0006416895.tif 000005