(57)【特許請求の範囲】
【請求項１】
クラウド環境においてコンピュータリソースを管理する方法であって、前記方法は
少なくとも１つのサイトサービスマネージャが、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を介して、一組のサービスパラメータを含むクラウドサービス仕様（ＣＳＳ）を受取るステップを備え、前記ＣＳＳはデータベースに格納されており、
前記少なくとも１つのサイトサービスマネージャが、分散協調・メッセージングサービスを介して、少なくとも１つのクラウドサービスマネージャを協調させるステップとを備え、
前記協調させるステップは、
少なくとも１つのクラウドリソースの管理を行なうためのクラウドサービスマネージャを特定するステップと、
前記クラウドサービスマネージャに対して、前記一組のサービスパラメータについての識別子を割り当てるステップとを含み、前記クラウドサービスマネージャは、前記クラウドサービスマネージャに割り当てられた前記識別子についての、前記データベースに格納された一組のサービスパラメータに基づいて、前記少なくとも１つのクラウドリソースを用いてクラウドサービスをインスタンス化するように構成される、方法。
【請求項２】
クラウド環境においてコンピュータリソースを管理するシステムであって、前記システムは
少なくとも１つのサイトサービスマネージャを備え、前記少なくとも１つのサイトサービスマネージャは、
第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を介して、一組のサービスパラメータを含むクラウドサービス仕様（ＣＳＳ）を受取るように構成され、前記ＣＳＳはデータベースに格納されており、
分散協調・メッセージングサービスを介して、少なくとも１つのクラウドサービスマネージャを協調させるように構成され、
前記協調させることは、
少なくとも１つのクラウドリソースの管理を行なうためのクラウドサービスマネージャを特定することと、
前記クラウドサービスマネージャに対して、前記一組のサービスパラメータについての識別子を割り当てることとを含み、前記クラウドサービスマネージャは、前記クラウドサービスマネージャに割り当てられた前記識別子についての、前記データベースに格納された一組のサービスパラメータに基づいて、前記少なくとも１つのクラウドリソースを用いてクラウドサービスをインスタンス化するように構成される、システム。
【請求項３】
前記クラウドサービスマネージャは、クラウドサービスフレームワークと、第２のＡＰＩとを含み、
前記クラウドサービスフレームワークは、前記クラウドサービスマネージャによって管理される前記少なくとも１つのクラウドリソースをスケーリングするように構成され、
前記システムは、前記クラウドサービスマネージャと遣り取りするように構成されたコントローラをさらに備え、
前記コントローラは、ユーザによって提供される前記一組のサービスパラメータに基づいて、前記クラウドサービスをインスタンス化するように構成され、
前記コントローラは、前記第２のＡＰＩを介して、前記クラウドサービスフレームワークと通信するように構成される、請求項２に記載のシステム。
【請求項４】
前記クラウドサービスフレームワークは、前記コントローラを有効にするように構成される、請求項３に記載のシステム。
【請求項５】
前記コントローラは、前記第２のＡＰＩを介して、前記クラウドサービスをインスタンス化する、請求項３または４に記載のシステム。
【請求項６】
前記クラウドサービスフレームワークは、機能しなくなったクラウドリソースを取り換えるために、冗長なクラウドリソースを要求するように構成される、請求項３〜５のいずれか１項に記載のシステム。
【請求項７】
前記クラウドサービスマネージャは、前記少なくとも１つのクラウドリソースを構築および制御するようにさらに構成される、請求項２〜６のいずれか１項に記載のシステム。
【請求項８】
前記クラウドサービスマネージャは、クラウド環境に配置される、請求項２〜７のいずれか１項に記載のシステム。
【請求項９】
前記少なくとも１つのクラウドリソースは、バーチャルマシン、オペレーティングシステム、物理的計算装置、ストレージサービス、ネットワーキングサービス、および高レベルアプリケーションのうちの少なくとも１つである、請求項２〜８のいずれか１項に記載のシステム。
【請求項１０】
前記少なくとも１つのクラウドリソースは、物理マシン、オペレーティングシステム、ストレージサービス、ネットワークサービス、および高レベルアプリケーションのうちの少なくとも２つの組合せである、請求項２〜８のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本発明は、クラウドコンピューティングに関する。より特定的には、本発明は、クラウドコンピューティングにおいてプロセスを協調させて自動化するフレームワークに関する。
【背景技術】
【０００２】
背景
クラウドコンピューティングは、ネットワークによって接続されたインフラストラクチャ上でユーザがデータを格納して計算プロセスを動作させるための方法である。したがって、物理的インフラストラクチャを購入する必要がなく、ユーザは、他のエンティティが所有するインフラストラクチャ上でプロセスおよびデータを実行させて格納するように当該プロセスおよびデータを送信する。ユーザは、単に、希望するデータ記憶量または処理能力の代金を支払うだけである。これにより、ユーザは、実際の物理的な莫大なコンピューティングリソースを所有しなければ不可能であろうコンピューティングリソースを利用することができる。
【０００３】
クラウドコンピューティングは、まさにその性質上、データベースストレージとともにプラグラムおよびタスクを実行するための大型のツールセットを開発者に提供するが、それらの多数のプログラム、タスクおよびストレージの実装に対するロジスティック上の障害も生じさせる。例えば、開発者は、オブジェクトまたはプロセスが実行されるたびに、クラウドマネージャおよびオブジェクトマネージャがロジスティックスをプログラムするための反復デーモンを書込む必要があるであろう。これは、実際の最終製品の開発とは別個に、実際の最終製品の開発から離れて、多くのリソースをクラウドロジスティックスに充てなければならない開発者にとっては余分な作業であるに等しい。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
クラウド環境においてコンピュータリソースを管理するシステムおよび方法は、少なくとも１つのサーバによって、ＡＰＩを介してクラウド管理命令を受取るステップを備え得る。また、上記システムおよび方法は、上記少なくとも１つのサーバによって、分散協調・メッセージングサービスを介して少なくとも１つのクラウドサービスマネージャと協調させるステップを備え得て、上記協調させるステップは、少なくとも１つのクラウドリソースを管理する上記クラウドサービスマネージャに関する命令を含み、上記システムおよび方法はさらに、上記管理命令を格納および検索するように少なくとも１つのデータベースと通信するステップを備え得る。
【０００５】
また、上記システムおよび方法は、上記クラウドサービスマネージャが、少なくともクラウドサービスフレームワークと、ＡＰＩとを含むことを含み得る。また、上記システムおよび方法は、上記クラウドサービスマネージャが、少なくとも１つのクラウドリソースを構築および制御するようにさらに構成されることを含み得る。
【０００６】
いくつかの例示的なシステムおよび方法は、上記クラウドサービスマネージャが、クラウドに位置することを含む。また、いくつかの例示的なシステムおよび方法は、上記クラウドサービスマネージャと相互作用するようにコントローラが構成されることを含む。
【０００７】
他の例は、上記コントローラが、上記ＡＰＩを介して上記クラウドサービスフレームワークと通信するように構成され、上記クラウドサービスフレームワークが、上記コントローラを有効にするように構成されることを含み得る。また、他の例は、上記コントローラがクラウドリソースであることを含み得る。
【０００８】
さらなる例は、上記少なくとも１つのクラウドリソースが、バーチャルマシン、オペレーティングシステム、および物理的計算装置のうちの少なくとも１つであることを含む。さらなる例は、上記コントローラが、ユーザが入力したパラメータに基づいて少なくとも１つのクラウドサービスをインスタンス化するようにさらに構成されることを含む。
【０００９】
さらに他の例は、上記コントローラが、上記ＡＰＩを介して開始デーモンによって少なくとも１つのクラウドサービスをインスタンス化することを含む。さらに他の例は、上記クラウドサービスフレームワークが、上記少なくとも１つのクラウドリソースをスケーリングするように構成されることを含む。また、さらに他の例は、上記クラウドサービスフレームワークが、機能しなくなった（failed）リソースを交換するために冗長なクラウドリソースを要求するように構成されることを含む。さらに他の例は、上記ＡＰＩが、サービスをクラウドに追加することによって動的に拡張されるように構成されることを含む。
【００１０】
他の実施例は、上記クラウドリソースが、バーチャルマシン、物理マシン、オペレーティングシステム、ストレージサービス、ネットワーキングサービス、およびアプリケーションサービスであるか、またはそれらの組合せであることを含む。
【００１１】
本願に記載されているシステムおよび方法をよりよく理解するために、以下の図面とともに以下の説明を参照されたい。
【図面の簡単な説明】
【００１２】
【図１】いくつかの実施例に係るクラウドコンピューティングシステムを概略的に示す概略図である。
【図２】いくつかの実施例に係るクラウド環境と相互作用するＣＳＦの実施例を示す概略図である。
【図３】いくつかの実施例に係るＣＳＦ環境におけるクラウド上での自動スケーリングの図である。
【図４】いくつかの実施例に係るＣＳＦ環境におけるクラウド上での高可用性の図である。
【図５】いくつかの実施例に係るＣＳＦ環境におけるクラウド上での高可用性の図である。
【図６】いくつかの実施例に係るクラウドコンピューティングシステムの代替的な概要を示す概略図である。
【発明を実施するための形態】
【００１３】
詳細な説明
以下の詳細な説明では、本文献に提示される主題を示すために多数の具体的詳細を記載している。しかし、当該主題はこれらの厳密な具体的詳細がなくても実施可能であるということは当業者に明らかであろう。さらに、説明は、一例としてなされており、後にクレームされるいかなる発明の範囲も限定するように用いられるべきではない。
【００１４】
今日、多くの種類のコンピュータネットワークが存在している。閉じられた、独占権下にあるネットワーク、オープンおよびパブリックネットワーク、ならびにハイブリッドネットワークも存在している。これらのネットワークは、コンピュータプログラムを効率的に実行させることができるようにコンピュータサーバおよびデータベースをまとめる。このようなネットワークのいくつかの実施例は、「クラウドコンピューティング」として知られている。インターネットなどのこのようなネットワークを介して、インフラストラクチャ、プラットフォームおよびアプリケーションなどのコンピュータリソースは全て、クライアントユーザによって使用可能である。このようなクラウドネットワークの物理リソースは、さまざまな物理的位置に散らばっている可能性があるが、ネットワーク化されることによって、より大きなリソースになり得る。このようなクラウドネットワーク上でホストとして動作しかつ実行し得るリソースを管理するために、さまざまなシステムおよび方法が使用可能である。
【００１５】
本明細書に記載されているクラウドサービスフレームワーク（Cloud Services Framework：ＣＳＦ）技術は、ロジスティッククラウドインフラストラクチャのためのリソースを管理することを目的とした一組のクラウド管理ツールである。ＣＳＦは、複数回使用できるようにロジスティッククラウド協調を複製してテンプレート化するために、ロジスティッククラウド協調を抽象化する。
【００１６】
ＣＳＦは、オブジェクト／プロセスがクラウド管理システムを通過してエンドクラウドサービスマネージャ（Cloud Services Manager：ＣＳＭ）に至ることを容易にし、当該ＣＳＭは、そこで見つけられるクラウド環境およびリソースと連携する。このシステムは、各々がロードされる際の各オブジェクトの個別処理を回避する。その代わりに、ＣＳＦは、個々のプロセスに対するアンビバレンス（ambivalence）を維持しながら、基本的なロジスティックスを処理することができる。ＣＳＦは、別個の開発者が個々に各プロセスをコードすることなく、バックアップ、スケーラビリティ、冗長性、フェイルセーフ、複数のクラウドにわたるサービスの配置、およびクラウド環境のセキュリティなどのロジスティックスを実現する。
【００１７】
ＣＳＦは、クラウドサービス仕様（Cloud Service Specification：ＣＳＳ）を規定するクラウドサービスコントローラ（コントローラ）を開発者が設定できるようにすることによってこれを達成する。これらのＣＳＳは、クライアントまたは計算リソース（Computational Resource：ＣＲ）をいかに管理すべきかを規定し、基本的には各々の特定のサービスのためのクラウド管理のロジスティックスを予めプログラムする。
【００１８】
ＣＲは、バーチャルマシン（Virtual Machine：ＶＭ）、オペレーティングシステム（Operating System：ＯＳ）コンテナ、または実際の物理的計算マシンを含むがそれらに限定されない任意の計算リソースであり得る。
【００１９】
ＣＳＳは、後に使用されるアプリケーションプログラミングインターフェース（Application Programming Interface：ＡＰＩ）テンプレートになり、自動的にコマンドラインインターフェース（Command Line Interface：ＣＬＩ）およびユーザインターフェース（User Interface：ＵＩ）レベルにおけるコマンドになる。したがって、コントローラは、ごく少数のＡＰＩを有する単純なインターフェースを実現する。
【００２０】
ＣＳＳにより、開発者は、そうするように実際のコードを書込む必要なく、ＣＲがクラウド上で実行されている状態で、協調、ネットワーキング、ストレージ、許可、および他のクラウドオブジェクトをプログラムすることができる。その結果、ＣＲの協調および実行、ネットワーキング、ストレージ、許可、および他のクラウドオブジェクトが容易に実現され、開発者が意図した通りにＣＲが確実に実行される。別の結果として、開発者は、他のロジスティックスの詳細を心配する必要なく、提供したい実際のクラウドサービスに集中できる。
【００２１】
クラウドリソースは、バーチャルマシン、物理マシンまたはＯＳコンテナ、プライベートクラウドもしくはパブリッククラウドによって提供される任意のストレージサービス、プライベートクラウドもしくはパブリッククラウドによって提供される任意のネットワーキングサービス、プライベートクラウドもしくはパブリッククラウドによって提供される任意の機能、クラウドベンダーもしくは第三者のクラウドサービス開発者によって提供されるロードバランサ、オートスケーリング、ＤＮＳ、プラットフォーム・アズ・ア・サービス（Platform As a Service：ＰａａＳ）のような任意の高レベルアプリケーションサービスを含むが、それらに限定されるものではない。
【００２２】
概略
ＣＳＦは、クラウドサービスロジスティックスの複製および自動化を可能にし得る一組のクラウド管理ツールである。これは、サービスが作成されるたびに開発者がそれらのロジスティックスを個々にプログラムしなければならない時間を短縮させる。
【００２３】
ロジスティックスは、ＣＲの協調および実行、クラウドリソースのネットワーキング、ストレージ、許可、バックアップ、スケーラビリティ、冗長性、フェイルセーフ、複数のクラウドにわたるサービスの配置、およびクラウド環境のセキュリティを含むが、それらに限定されるものではない。
【００２４】
ＣＳＦは、個々のプロセスに対するアンビバレンスを維持しながら、オブジェクト／プロセスがシステムを通過してクラウドの基本的なロジスティックスを処理することを可能にする。ＣＳＦは、ＣＳＳを規定するクラウドサービスコントローラを開発者が設定できるようにすることによってこれを達成する。
【００２５】
これらのＣＳＳは、後に使用されるＡＰＩインターフェーステンプレートになり、自動的にＣＬＩおよびＵＩレベルにおけるコマンドになる。
【００２６】
ＣＳＳは、オブジェクトの協調、ネットワーキング、ストレージ、許可、および他のクラウドオブジェクトを規定する。ＣＳＦは、ＡＰＩを用いて、ＣＳＳに規定されるサービス／オブジェクトを実現する。その結果、ＣＲの協調および実行、ネットワーキング、ストレージ、許可、および他のクラウドオブジェクトが容易かつ高速に実現され、開発者が意図した通りにＣＲが確実に実行される。別の結果として、開発者は、他のロジスティックスの詳細を心配する必要なく、提供したい実際のクラウドサービスに集中できる。
【００２７】
クラウドサービスフレームワーク
クラウドサービスフレームワークは、開発者がクライアントＣＲを管理する必要がある時間を短縮することを目的としている。開発者は、ＡＰＩを介して一組のクラウドサービスコントローラを作成する。クラウドサービスコントローラは、ＣＳＦウェブＡＰＩ／インターフェースを実現する「ソフトウェア／プロセス／デーモン」である。それらは、任意のプログラミングパラダイムで書込まれてもよく、クラウドを拡張して機能を追加するためにエンドユーザまたは開発者によって動的に追加され得る。
【００２８】
クラウドサービスコントローラは、ＣＳＳを規定する。これらのＣＳＳは、後に実現されるＡＰＩインターフェーステンプレートになる。したがって、コントローラは、ごく少数のＡＰＩを有する単純なインターフェースを実現して、複雑なクラウドプロセスおよび協調を実行する。
【００２９】
図１は、ＣＳＦがいかにクラウドリソースを管理するように動作するかの１つの例示的な実施例を示す。
【００３０】
この例示的な実施例では、ＣＳＦは、ＡＰＩ  １１０を用いて、１つ以上のサイトサービスマネージャ１１６と通信する。このユーザＡＰＩ  １１０クラウドは、ウェブページのフェッチングに類似した要求を有するｈｔｔｐベースのウェブ言語であるRestful APIであり得る。代替的なＡＰＩとしては、ウェブＡＰＩ、およびシンプル・オブジェクト・アクセス・プロトコル（Simple Object Access Protocol：ＳＯＡＰ）のような規格が挙げられる。
【００３１】
続けて図１を参照して、１つまたは多数のサイトサービスマネージャ１１６は、データベース１２０または分散データストア（distributed data store：ＤＤＳ）と通信し、分散協調・メッセージングサービス１２４（ＤＣメッセージングサービス）を介して１つ以上の個々のクラウドサービスマネージャ１３０，１３２，１３４と通信する。
【００３２】
個々のクラウドサービスマネージャ１３０，１３２，１３４は、コントローラ１４０，１４２，１４４を用いて、クラウド１５０においてプロセスを実行する。
【００３３】
代替的に、個々のクラウドサービスマネージャ１３０，１３２，１３４は、クラウド１５０におけるそれら自体のＣＲ内でも実現可能である。
【００３４】
クラウドサービス仕様（ＣＳＳ）
クラウドサービスは、ＣＳＳのインスタンス化である。開発者は、クラウド上で所望のＣＲを管理および制御したいと思う態様でＣＳＳをカスタマイズできる。複数のサービスを組み合わせて１つのモデルにすることさえできる。
【００３５】
開発者は、ＣＳＳを一組のサービスパラメータと規定する。ユーザは、サービスパラメータを入力して、特定のサービスを起動させる。サービスパラメータは、開発者によってラベル表示されるため、ユーザは、各入力フィールドに何が必要であるかを認識することができる。
【００３６】
ＣＳＳは、一旦構築されると、そのクラウドの実現のための新たな機能／拡張子としてＡＰＩ、ＣＬＩおよびＵＩに自動的に読込まれるため、エンドユーザは、当該新たな機能を認識することができる。
【００３７】
エンドユーザがサービスを立ち上げたい場合、ユーザは、ＡＰＩを用いて当該特定のサービスを呼出す。エンドユーザ（または別のクラウドサービス）がクラウドサービスを使用すると、それは、その消費についてクラウドサービスをインスタンス化する。
【００３８】
ユーザは、ＣＳＳから一組の規定されたパラメータ表示を与えられ、ユーザは、所望のサービスについてのパラメータ値を入力する。サービスパラメータが入力され、ＤＤＳに追加される。サービスパラメータは、ＣＳＳに従って有効にされる。
【００３９】
サービスパラメータは、クラウドサービスがいかにインスタンス化されるべきであるかを特定する。ＣＳＦは、クラウドリソースを協調させるための手段またはＡＰＩを提供し、これにより、ＤＤＳ内の情報が節約され、多くのクラウドを利用できるようになり、クラウドリソースの自動スケーリングが可能になる。
【００４０】
ＤＤＳにおいてサービスパラメータが保存されると、ＤＣメッセージングサービスが通知される。ＤＣメッセージングサービスは、サービスパラメータに識別子を割り当てて、当該識別子をレジストリに入れる。各々のクラウドサービスマネージャにも識別子が割り当てられる。ＤＣメッセージングサービスは、それぞれの識別子を用いて、サービスパラメータを特定のクラウドサービスマネージャに割り当てる。クラウドサービスマネージャは、ロードバランサによる負荷に従ってクラウドサービスのインスタンス化に割り当てられるか、または負荷に従ってサイトマネージャのインスタンス化に割り当てられる。
【００４１】
一旦クラウドサービスマネージャがサービスパラメータ値を有すると、クラウドサービスマネージャは、さまざまなタイプ／クラスサービスを規定する当該サービスパラメータ値をタイプ／クラスレジストリにマッチングさせる。また、クラウドサービスマネージャは、フェッチされたサービスパラメータに対して一組の有効化を実行する。
【００４２】
有効化およびマッチングの後、マネージャは、ユーザによって特定されたＣＳＳまたはクラウドサービスパラメータのインスタンス化に従って、サービスの実行を開始し、クラウド内のＣＲを立ち上げることができる。
【００４３】
クラウドサービスマネージャおよびクラウド
ＣＳＦがいかに配置されて機能するかの例示的な実施例について、図２を参照して説明する。図２に示されるように、クラウドサービスマネージャ２３０は、ＣＳＦ  ２６０を含む。コントローラ２７０は、クラウドに追加されるものとして示されている。ＣＲ  ２８０，２８２，２８４，２８６は、クラウドボックス２４０の中に示されている。
【００４４】
コントローラ２７０は、ＡＰＩ  ２６２を介してＣＳＦ  ２６０と通信する。いくつかの実施例においては、コントローラ２７０は、バーチャルマシン、それ自体のオペレーティングシステム（ＯＳ）コンテナまたは実際の物理的計算装置を含むそれ自体のＣＲ  ２８０内で動作し得る。
【００４５】
一旦追加されると、クラウドサービスマネージャ２３０はコントローラ２７０を有効にする。
【００４６】
コントローラ２７０は、ユーザが入力したパラメータに基づいてクラウドサービスをインスタンス化する。最初に、「開始」デーモンがＣＳＦ  ２６０からクラウドに通信される。コントローラ２７０は、ＣＳＦ  ２６０によって提供されるＡＰＩ  ２６２を介してＣＲ  ２８０上でデーモンを開始することを選択し得る。
【００４７】
一旦受取られると、ＣＲ  ２８０は、クラウドにロードされ、コントローラ２７０は、「add_client」通知によって通知される。特定のＣＲ  ２８０に対応するハンドルが割り当てられる。一旦ハンドルがＣＲ  ２８０に割り当てられると、当該ハンドルは、後にコントローラ２７０と通信してＣＲ  ＡＰＩ  ２６２を呼出してＣＲ  ２８０を管理するために用いられる。
【００４８】
ＣＲハンドルが「add_client」呼出しの一部として提供される状態で、コントローラ２７０は、サービスまたはサービスのサブセットを提供するようにＣＲ  ２８０をセットアップし得る。多数のこのようなサービスがあるが、例としてはウェブサーバ、メモリキャッシュおよびロードバランサが挙げられる。
【００４９】
ユーザの希望およびコントローラ２７０の要求の構成に応じて、多数の複数のＣＲ  ２８０をこのようにロードおよびインスタンス化することができる。
【００５０】
また、他のクラウド機能も同様に利用可能である。例えば、サービスに回復力を持たせてサービスを公的に入手可能であるようにするために、ユーザ指定のストレージおよびパブリックＩＰがクラウドサービスによって管理され得る。ＣＳＦ  ２６０は、複数のプライベートクラウドもしくはパブリッククラウド、またはプライベートクラウドおよびパブリッククラウドの両方のクラウドに存在し得るＣＲ  ２８０、ストレージリソース、ネットワーキングリソース、セキュリティリソースを管理するために必要なＡＰＩ  ２６２を提供する。
【００５１】
複数のプロセスだけでなく任意の種類のプロセスもこのようにインスタンス化されてもよい。例えば、ストレージがＣＲ  ２８０に取付けられてもよく、永続的パブリックＩＰが割り当てられてもよく、設定ファイルがロードされてもよく、またはその他の数のＡＰＩ  ２６２がロードされてもよい。
【００５２】
ＣＳＦ  ２６０は、永続データストア内のクラウドサービスについての統計データおよび情報を節約してユーザが当該情報にアクセスできるように、コントローラにＡＰＩ  ２６２を提供する。当該情報／データは、サービスの変更、サービスの追加、サービスの取外し、ＣＲ  ２８０の開始および停止のために使用可能である。
【００５３】
ユーザは、ユーザがインスタンス化したクラウドサービスをいつ削除するかを決定する。クラウドサービスのインスタンス化が無くなることをユーザが要求すると、フレームワークおよびコントローラ２７０によって作成された全てのクラウドリソースが除去される。サービスのインスタンス化が停止されたことを通知するために、コントローラ２７０によって実現される「停止」ＡＰＩが呼出される。
【００５４】
自動スケーラビリティ
ＣＳＦは、開発者によって決定される基準に応じてクラウド使用量を自動的にスケールアップしたりスケールダウンしたりするようにプログラム可能である。ユーザのニーズに応じて、新たなＣＲを立ち上げたり、既存のＣＲを削除したりし得て、これにより、クラウドリソースの効率的な使用が可能になる。これは、同一タイプのＣＲ  ３８０の多くがＣＳＦ  ３６０によって利用されることを示すことによって、図３に示されている。
【００５５】
例えば、開発者は、最初に、ウェブサーバになる３つのＣＲ  ３８０を呼出し得る。開発者によって決定される負荷基準に基づいて、ＣＳＦ  ３６０は、将来的な使用に備えてより多くのサーバまたはより少ないサーバを準備してもよい。コントローラ３７０は、クラウドサービスをモニタリングし得る。ＣＳＦ  ３６０は、当該モニタリングに役立つようにＡＰＩ  ３６２を提供する。クラウドサービスに特有の特定の閾値が満たされると、コントローラ３７０は、ＣＳＦ  ３６０によって提供されるＡＰＩ  ３６２を介して、スケールアップまたはスケールダウンするように要求し得て、この例では負荷に応じてウェブサーバを追加または除去するように要求し得る。
【００５６】
別の例では、コントローラ３７０がクラウドサービスをモニタリングする。コントローラ３７０は、サービスＡＰＩ  ３６２に通知を送ることによって、何らかの基準に基づいてスケールアップするように要求する。クラウド内で新たなＣＲ  ３８０が作成され、立ち上げられる。サービスＡＰＩ  ３６２は、「add_client」通知を通信することによってコントローラ３７０に新たなＣＲ  ３８０を通知する。同様に、コントローラ３７０がスケールダウンするようにサービスＡＰＩ  ３６２に求める場合には、ＶＭが除去され、サービスＡＰＩ  ３６２は、「remove_client」通知を送ることによってコントローラ３７０に通知する。
【００５７】
典型的なクラウド環境においてＣＳＦ  ３６０を利用し、負荷バランシング／プロキシ、２つのアパッチサーバおよびMySQLデータベースを動作させるさらに別の例では、別のサーバが必要である。クラウドサービスアプリケーションがクラウドをモニタリングする。ウェブサーバ上の負荷が閾値に達すると、コントローラは、スケールアップ通知をサービスＡＰＩに送る。新たなＶＭが作成され、クラウドに入れられる。サービスＡＰＩ  ３６２は、Add-Client通知を送ることによってコントローラ３７０に通知する。新たなＶＭが、大きな負荷を処理するための新たなアパッチサーバになり、コントローラは、設定ファイルを新たなサーバに送り、再構成プロキシをクラウドに送る。次いで、新たなサーバは、クラウドシステムに統合される。
【００５８】
これらのパラメータは、コントローラによって完全にカスタマイズ可能であり、ＣＲ  ＡＰＩを介してクラウドによって実現される。
【００５９】
クラウドサービスフレームワークは処理を遅延させる
ＣＳＦは、サービスをインスタンス化し得て／ＣＲを使用し得て、プロセスの終わり近くになるまで特定のＣＲコードを理解または処理する必要がない。したがって、図１に示されるように、サイトマネージャ、ＤＤＳおよびＤＣメッセージングサービスは、サービスコードを処理する必要がない。サービスまたはＣＲが個々のクラウドサービスコントローラに到達して初めて、特定のサービスコードの実際の理解が必要になる。
【００６０】
ＣＳＦは、識別子をサービスパラメータに割り当てて、それをＤＤＳに格納することによって、サービスの一団を特定のクラウドサービスマネージャに協調させる。したがって、ＣＳＦパラメータは最初に、基本的なインフラストラクチャの残りの部分がサービスパラメータの詳細を理解しないようにしながら、コントローラまで送られる。
【００６１】
その結果、汎用的なフロントエンドの処理プロセスが行われ、コントローラによって処理されるエンドクラウドサービスマネージャに到達するまでサービスの内部コードの処理が遅延する。
【００６２】
コードの処理が遅延することにより、ＣＳＦは、ロジスティックスを汎用化して自動化することができる。ロジスティックスとしては、ＣＲの協調および実行、ネットワーキングクラウドリソース、ストレージ、許可、バックアップ、スケーラビリティ、冗長性、フェイルセーフ、複数のクラウドにわたるサービスの配置、およびクラウド環境のセキュリティが挙げられるが、それらに限定されるものではない。
【００６３】
高可用性（High Availability）
図４に関連して、ＣＳＦ  ４６０は、クラウドサービスの高可用性（High Availability：ＨＡ）を可能にする。ＨＡは、フェイルセーフの目的で、またサービスの適応性についても、クラウドリソースが自動的に冗長になることができる能力である。
【００６４】
ＣＳＦ  ４６０は、新たなＣＲを自動的に割り当てて、機能しなくなったマシンを引き継ぐために、ＨＡ局面を用いてプログラム可能である。ＣＳＦ  ４６０は、既に使用中のＣＲ  ４８０が、機能しなくなったＣＲ  ４８２を引き継ぐことを促し得る。
【００６５】
ＣＲが故障するか、または利用できなくなると、コントローラ４７０は、「remove_client」ＡＰＩを介して通知される。別のＣＲが自動的に配置され、コントローラ４７０は、「add_client」ＡＰＩを介して通知される。
【００６６】
一例では、ＨＡは、プロセスがどの程度冗長でフェイルセーフであることを開発者が望むかを開発者が選択できるようにもする。複数の冗長性がコントローラ４７０によって要求され得る。これは図４に示されており、図４では、新たに生成されたＣＲ  ４８０が、故障したＣＲ  ４８２に取って代わる。クラウドコンピューティングは一般に使用量で課金されるので、冗長性が増大すればコストが増大するが、ＣＳＦにより、ユーザは、必要になるまで使用されない自動冗長性をプログラムすることができる。
【００６７】
図５を参照して、図５は、ＨＡのより詳細な具体的な例を示す。例えば、クラウド環境において、ＣＲは故障するか、または利用できなくなる可能性がある。そのようなことが起こると、クラウドサービスコントローラ５７０は、サービスＡＰＩ  ５６２から「remove_client」通知を送ることによって通知され、故障したまたは利用できないＣＲをカバーするように新たなＣＲが自動的に立ち上げられる。次いで、コントローラは、サービスＡＰＩ  ５６２がAdd-Client通知をコントローラ５７０に送ることによって、新たなＣＲが起動したことを通知される。
【００６８】
この例では、ＣＳＦ  ５６０を利用するクラウド環境は、ロードバランサ／プロキシ５８０、２つのアパッチサーバ５８２，５８４およびMySQLデータベース５８６を動作させている。１つのアパッチサーバ５８２が故障するか、または利用できなくなると、「remove_client」通知がサービスＡＰＩ  ５６２からコントローラ５７０に送られる。再構成プロキシ５９２通信がクライアントＡＰＩからクラウド５４０に送られる。機能しなくなったＣＲの代わりをするように新たなＣＲ  ５９０が作成され、立ち上げられる。コントローラ５７０は、サービスＡＰＩ  ５６２からのAdd-Client５９２通知によって通知される。別の再構成プロキシがＣＲに通信される。
【００６９】
さらに別の例は、既存のＣＲがいかに故障したまたは利用できないＣＲの役割に再構成され得るかを実証する。冗長なＣＲは同時に実行されることができ、第１のＣＲがダウンして冗長なＣＲが促進されると、ＩＰおよびストレージが再び取付けられる。これらの命令は全て、ＣＳＳロジスティックス協調にプログラムされる。
【００７０】
ロードバランサを有するＣＳＦ
図１の代替的な実施例が図６に示されている。この実施例では、分散ロードバランサ６１２を介してクラウド６５０に通信するためにＡＰＩ  ６１０が用いられる。ロードバランサ６１２は、各々がＤＤＳ６２０と通信するさまざまなＣＲ  ６３０にサービスを分配する。ＤＣメッセージングサービス６１４は、クラウド６５０上のＤＤＳ、ＣＲおよびロードバランサ６１２間の通信およびクラウド間の通信を協調させる。
【００７１】
複数のクラウド
本開示の中の「クラウド」、「複数のクラウド」または「クラウド環境」への言及は、１つのクラウドだけでなくクラウドリソースの任意の組合せも包含するように理解されるべきである。例えば、ＣＳＦは、ＣＲを実行するために１つのクラウドを利用できるだけでなく、パブリッククラウドもプライベートクラウドも含めて多数のクラウドを利用できる。
【００７２】
プライベートクラウドは、互いに一斉に機能し得て、パブリッククラウドにもリンクし得る。この構成は、開発者およびクラウドアドミニストレータにセキュリティのオプションを提供し得る。
【００７３】
クラウドリソースは、ＣＳＦによってシームレスにネットワーク化されることができる。これは、クラウドリソース管理を含むクラウドリソースのロジスティックスが全てＣＳＳにプログラム可能であるからである。これにより、ユーザは、どのクラウドをクラウドリソースが利用しているかを認識することさえなくクラウドリソースを利用することができる。
【００７４】
セキュリティ
クラウドアドミニストレータによって各々のクラウドサービスに対して個々に許可が付与され得る。ユーザは、許可を閲覧、リストアップ、追加または削除することができる。
【００７５】
インスタンス化される全てのＣＲは、ファイヤウォールによって完全に切り離される。
セキュリティ規則は、ＣＲに動的に付与され得る。例えば、クラウドサービスコントローラは、特定のサービスのみを露呈させるためにＡＰＩを介してポートを選択的に開くことができる。
【００７６】
各コントローラは、それ自体の切り離されたＯＳコンテナまたはＶＭ内で動作し得る。
全てのＡＰＩ呼出しは、セキュア・ソケット・レイヤ（Secure Socket Layer：ＳＳＬ）証明書を用いて暗号化される。
【００７７】
第三者機能の追加
クラウドコンピューティングでは、膨大な組のリソースが利用される。したがって、それらのリソースのための最良の管理ツールを開発するために、クラウドサービスの管理をできる限り多くのエンティティに対して開放することは理にかなっている。したがって、ＣＳＦは、利用可能なクラウドサービスを追加したり、適応させたり、強化したりすることにユーザが最大限参加することを可能にする。
【００７８】
ＣＳＦは、ユーザおよび第三者の開発者が自身のクラウド機能またはサービスを追加できるようにすることによってこれを行う。これにより、他の第三者のユーザおよび開発者が適当であると思う態様でクラウドを効果的に拡張することができる。
【００７９】
新たなクラウドサービスは、RESTful API、RESTful API/http、ＣＬＩおよびＵＩを介して動的に追加されることができ、即座の使用に備えて利用可能になる。
【００８０】
結論
上記の記載は、説明の目的で、具体的な例を参照しながらなされた。しかし、上記の例示的な説明は、網羅的であるよう意図したものではなく、開示されている厳密な形態に本発明を限定することを意図したものでもない。上記の教示に鑑みて、多くの変形および変更が可能である。これは、上記のさまざまな主題の例を任意の組合せで実施することを含む。これらの例は、本発明の原理およびその実際的な適用例を最もよく説明することによって、意図される特定の使用に適したように当業者がさまざまな変形例とともに本発明を最もよく利用できるようにする目的で、選択され、記載された。
【００８１】
本明細書に開示されているように、本発明に係る機能は、コンピュータハードウェア、ソフトウェアおよび／またはファームウェアによって実現可能である。例えば、本明細書に開示されているシステムおよび方法は、例えばデータベース、デジタル電子回路、ファームウェア、ソフトウェア、コンピュータネットワーク、サーバまたはそれらの組合せも含むコンピュータなどのデータプロセッサを含むさまざまな形態で実施されてもよい。さらに、開示されている実現例のうちのいくつかは特定のハードウェアコンポーネントについて記載しているが、本明細書中の新技術に係るシステムおよび方法は、ハードウェア、ソフトウェアおよび／またはファームウェアの任意の組合せとともに実現されてもよい。さらに、本明細書中の新技術の上記の機能および他の局面および原理は、さまざまな環境で実現されてもよい。このような環境および関連の出願は、本発明に従ってさまざまなルーチン、プロセスおよび／または動作を実行するように特に構築されてもよく、または、それらは、必要な機能を提供するようにコードによって選択的に作動または再構成される汎用コンピュータまたはコンピューティングプラットフォームを含んでいてもよい。本明細書に開示されているプロセスは、任意の特定のコンピュータ、ネットワーク、アーキテクチャ、環境または他の装置に本質的に関連しておらず、ハードウェア、ソフトウェアおよび／またはファームウェアの好適な組合せによって実現され得る。例えば、本発明の教示に従って書込まれるプログラムとともにさまざまな汎用マシンが用いられてもよく、または、必要な方法および技術を実行するように専用の装置またはシステムを構築することがより好都合であり得る。
【００８２】
論理などの本明細書に記載されている方法およびシステムの局面は、フィールド・プログラマブル・ゲート・アレイ（field programmable gate array：「ＦＰＧＡ」）などのプログラム可能な論理デバイス（programmable logic device：「ＰＬＤ」）、プログラム可能なアレイ論理（programmable array logic：「ＰＡＬ」）デバイス、電気的にプログラム可能な論理およびメモリデバイス、標準的なセルベースのデバイス、ならびに特定用途向け集積回路を含むさまざまな回路のうちのいずれかにプログラムされる機能として実現されてもよい。局面を実現するためのいくつかの他の可能性としては、メモリデバイス、（ＥＥＰＲＯＭなどの）メモリを有するマイクロコントローラ、埋込式マイクロプロセッサ、ファームウェア、ソフトウェアなどが挙げられる。さらに、局面は、ソフトウェアベースの回路エミュレーション、（シーケンスおよび組合せ）個別論理、カスタムデバイス、ファジー（神経）論理、量子デバイス、および上記のデバイスタイプのいずれかの混成物を有するマイクロプロセッサにおいて実施されてもよい。基本的なデバイス技術は、さまざまなコンポーネントタイプ、例えば相補型金属酸化膜半導体（complementary metal-oxide semiconductor：「ＣＭＯＳ」）のような金属酸化膜半導体電界効果トランジスタ（metal-oxide semiconductor field-effect transistor：「ＭＯＳＦＥＴ」）技術、エミッタ結合論理（emitter-coupled logic：「ＥＣＬ」）のようなバイポーラ技術、ポリマー技術（例えばシリコン共役ポリマーおよび金属共役ポリマー−金属構造）、混合アナログおよびデジタルなどにおいて提供され得る。
【００８３】
本明細書に開示されているさまざまな論理および／または機能は、挙動特性、レジスタ転送特性、論理コンポーネント特性および／または他の特性の点で、ハードウェア、ファームウェアの任意の数の組合せを用いて、および／または、さまざまな機械読取可能媒体もしくはコンピュータ読取可能媒体において実施されるデータおよび／または命令として、可能にされ得ることにも注目されたい。このようなフォーマットされたデータおよび／または命令が実施され得るコンピュータ読取可能媒体としては、さまざまな形態の不揮発性記録媒体（例えば光学記録媒体、磁気記録媒体または半導体記録媒体）、および、無線信号伝達媒体、光学式信号伝達媒体または有線信号伝達媒体またはそれらの任意の組合せを介してこのようなフォーマットされたデータおよび／または命令を転送するために使用可能な搬送波が挙げられるが、それらに限定されるものではない。搬送波によるこのようなフォーマットされたデータおよび／または命令の転送の例としては、１つ以上のデータ転送プロトコル（例えばＨＴＴＰ、ＦＴＰ、ＳＭＴＰなど）によるインターネットおよび／または他のコンピュータネットワークを介した転送（アップロード、ダウンロード、ｅメールなど）が挙げられるが、それらに限定されるものではない。
【００８４】
文脈上明白に他の意味に解すべき場合を除き、明細書および特許請求の範囲全体にわたって、「備える（comprise）」、「備えている（comprising）」などの用語は、排他的または網羅的な意味に対して包含的な意味で、すなわち「含むが、限定されない」という意味で解釈されるべきである。また、単数または複数を用いた用語は、複数または単数をそれぞれ包含する。さらに、「本明細書において」、「本明細書に基づいて」、「上記の」、「下記の」という用語および類似の意味の用語は、本願の任意の特定の部分を指すのではなく、本願全体を指す。２つ以上の項目のリストに関連して「または」という用語が用いられる場合、当該用語は、当該用語の全ての解釈、すなわちリストの中の項目のうちのいずれか、リストの中の全ての項目、およびリストの中の項目の任意の組合せを包含する。
【００８５】
本発明の特定の現状の好ましい実施例について本明細書で具体的に説明してきたが、本明細書に示され記載されるさまざまな実現例の変更および変形が本発明の精神および範囲から逸脱することなくなされ得ることは、本発明が属する技術分野における当業者に明らかであろう。したがって、本発明は、適用可能な法規範によって規定される範囲内においてのみ限定されることが意図される。
【００８６】
上記の記載は、説明の目的で、具体的な実施例を参照しながらなされた。しかし、上記の例示的な説明は、網羅的であるよう意図したものではなく、開示されている厳密な形態に本発明を限定することを意図したものでもない。上記の教示に鑑みて、多くの変形および変更が可能である。実施例は、本発明の原理およびその実際的な適用例を最もよく説明することによって、意図される特定の使用に適したように当業者がさまざまな変形例とともに本発明およびさまざまな実施例を最もよく利用できるようにする目的で、選択され、記載された。
【図１】
0006460798.tif 000002
【図２】
0006460798.tif 000003
【図３】
0006460798.tif 000004
【図４】
0006460798.tif 000005
【図５】
0006460798.tif 000006
【図６】
0006460798.tif 000007