【文献】
小川琢也,外6名,仮想マシン群の効率的な配置に関する一検討,電子情報通信学会技術研究報告,日本,2009年11月 5日,Vol.109 No.275,pp.23-28
【文献】
Monthly Report クラウドでデスクトップ仮想化 通信事業者などがサービスを開始,日経コミュニケーション 第558号,日本,日経BP社,2010年 7月 1日,pp.45-46
(58)【調査した分野】(Int.Cl.,DB名)
システム・ユーザ・インターフェースは、パーソナル・コンピュータ,パーソナル・デジタル・アシスタント,タブレット・デバイス,又は、スマートフォンを含む、請求項1に記載のコンピュータ・システム。
プロビジョナーは、少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求を、同種のサービスを提供する、複数の第一種のサーバと、複数の第二種のサーバに、平均して配分するプロビジョニング・サービスを提供する負荷バランサを含む、請求項1に記載のコンピュータ・システム。
第一種のサーバは、2つのウェブ・サーバと、少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求を、2つのウェブ・サーバに、平均して配分する負荷バランサを含む、請求項8に記載のコンピュータ・システム。
少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求は、ハイパーテキスト・トランスファー・プロトコル(HTTP)にしたがってフォーマットされている、請求項1に記載のコンピュータ・システム。
システム・ユーザ・インターフェースは、パーソナル・コンピュータ,パーソナル・デジタル・アシスタント,タブレット・デバイス,又は、スマートフォンを含む、請求項13に記載のコンピュータ・システム。
プロビジョナーは、少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求を、同種のサービスを提供する、複数の第一種のサーバと、複数の第二種のサーバに、平均して配分するプロビジョニング・サービスを提供する負荷バランサを含む、請求項13に記載のコンピュータ・システム。
第一種のサーバは、2つのウェブ・サーバと、少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求を、2つのウェブ・サーバに、平均して配分する負荷バランサを含む、請求項20に記載のコンピュータ・システム。
少なくとも1つのシステム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求は、ハイパーテキスト・トランスファー・プロトコル(HTTP)にしたがってフォーマットされている、請求項13に記載のコンピュータ・システム。
活性化する第一種のサーバと第二種のサーバの数を制御するため、及び、プロビジョナーが、システム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求を、クラウド・コンピューティング環境の、同種のサービスを提供する、複数の第一種のサーバと、複数の第二種のサーバの間で、バランスするように配布するために、クラウド・コンピューティング環境が受け付けた、システム・ユーザ・インターフェースからの、クラウド・コンピューティング環境を介してアクセス可能な、又は、クラウド・コンピューティング環境に記憶された、アプリケーション、及び/又は、仮想マシン・サービスについて、アクセス及び使用をするための要求の数をモニタするモニタを更に含む、請求項13に記載のコンピュータ・システム。
【発明を実施するための形態】
【0037】
[0058]本発明は、クラウド・コンピューティング、ならびに企業内プライベート・クラウドにおけるクラウド・アプリケーションの開発(development)および展開(deployment)
のためのコンピュータ・ベース・システムおよび方法に向けられている。本発明はまた、プライベート・クラウド・コンピューティングのためのコンピュータ・ベース・システムと方法にも向けられており、クラウド・インフラストラクチャは、そのプライベート・クラウド・システムのために開発されたアプリケーションの展開および使用によって生じる変更に対し、自動的にまたは実質的に自動的に適応および応答する。本発明のプライベー
ト・クラウド・コンピューティング・システムおよび方法は、
図1に示されるアプリケーション層104の一部として組み込むことができるアプリケーション・レイヤおよびサービス・レイヤのようなより高位レベル・レイヤにおいて実施される。
【0038】
[0059]
図2を参照する。全般的に200において、本発明のコンピュータ・ベース・プライベート・クラウド・コンピュータ・システムの物理構造についての代表的な図が示されている。
図2において、クラウド・アプリケーション・サーバを形成するクラウド・クラスタおよびルータが202に示される。このクラスタは、クラウド・アプリケーション・サーバを形成する4台のサーバ・コンピュータを示す。このように、サービス提供を通じた本発明のプライベート・クラウドにおける負荷バランシングの特徴のために、任意のものを提供することができ、クラウド・アプリケーションまたはウェブ・サービスへの要求をハンドルする。しかしながら、クラスタは、4台よりも多いまたはそれより少ないサーバ・コンピュータを備えることができ、なおも本発明の範囲内にあるものとすることができる。
【0039】
[0060]外部クラウド・サービス204は、クラウド・アプリケーション・サーバ202に接続される。図示の外部クラウド・サービスは、ネットワーク・セキュリティをクラウドに提供するために用いるクロークウェア・サーバ(cloakware server)206を含む。
【0040】
[0061]外部クラウド・サービス204は、ファイル転送サービス210を含む。ファイル転送サービス210によって取り扱われるサービスには、クライアント・デバイス−クラウド間、クラウド−外部システム間、および内部クラウドにおけるファイル転送が含まれるが、これに限定されない。これらのファイル転送をセキュリティ目的のために暗号化できるということは、本発明の範囲内にある。
【0041】
[0062]外部クラウド・サービス204に示される最後のサーバは、eメール・サーバ212である。このサーバは、eメール・メッセージをクライアント・デバイスに送信し、およびeメール・メッセージを送クライアント・デバイスから受信するためのものである。より具体的には、このサーバにハンドルされることが予想されるeメール・メッセージには、プライベート・クラウドから外部システムへのeメール・メッセージが含まれ、例えば、プライベート・クラウド内でアラート条件またはサービス・レベル目標(「SLO;Service level objective」)違反を通知する。
【0042】
[0063]クラウド・アプリケーション・サーバ202は、アプリケーション・データベース214に接続する。好ましくは、このデータベースは、クラウド・アプリケーション・データを格納する。このデータは、例えば、アプリケーション・トランザクション・データ、レポートおよびウェアハウス・データを含む。
【0043】
[0064]ウェブ・サーバ216は、クラウド・アプリケーション・サーバ202に接続して、クライアント・デバイス222およびクラウド・アプリケーション・サーバ202の間に配置される。Webサーバ216は、従来どおり、コンテンツをクライアント・デバイスに提供し、また、クラウド・アプリケーション・サーバ202に向けられるクライアント・デバイスからの要求を処理するように動作する。ウェブ・サーバ216はまた、サイトマインダ(SiteMinder)サーバ218にも接続する。好ましくは、サイトマインダ・サーバ218は、認証サービスの形態でウェブ・アクセス管理をウェブ・サーバ216に提供する。
【0044】
[0065]クライアント・デバイス222およびウェブ・サーバ216の間に配置される負荷バランサ220は、クラウド・インフラストラクチャ内のクラウドにおいて起動しているクラウド・アプリケーションの分散(distribution)をバランシングするための
プロビジョニング・サービス
の提供を行う。より具体的には、負荷バランサ220は、数多くのウェブ・サーバ間で入来するHTTP要求を負荷バランシングする。数多くのウェブ・サーバの1つのみを
図2Bに示す。
【0045】
[0066]
図2Bを参照する。全般的に230において、
図2Aに示した本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムの論理構造の代表的な図を示している。負荷バランサ220は、ウェブ・サーバのプールに入来するHTTP要求をバランシングし、そして、ウェブ・サーバのようなクラウド・インフラストラクチャを、上りおよび下りについてトラフィックのニーズを満たすようにスケーリングする。Webサーバ216/218は、Webサーバおよびシングル・サインオン・ベースの認証エージェントの機能を実行する。
【0046】
[0067]ウェブ・サーバは、アプリケーション・ルータに要求をルーティングする。アプリケーション・ルータは、アプリケーション・サーバ202の一部であるルータのクラスタ形態である。アプリケーション・ルータは、クラウド・アプリケーション・サーバ・クラスタ内でウェブ・サービスに要求をルーティングする。クラウド・アプリケーション・サーバ・クラスタはまた、クラウド・アプリケーション・サーバ202の一部でもある。各サービスは、固有IDによって識別される。
【0047】
[0068]アプリケーション・サーバ・クラスタは、ウェブ・サービスをホストし、アプリケーション・ルータ・クラスタからこのようなサービスについての要求を受信する。アプリケーション・サーバ・クラスタはまた、ジョブを収容する。ジョブは、アプリケーション・サーバ・クラスタ内に常駐するクラウド・アプリケーションの一部であるバッチ・ジョブである。
【0048】
[0069]アプリケーション・サーバ・クラスタのウェブ・サービスは、企業データを含むアプリケーション・データベース214に接続する。アプリケーション・データベースは、プライベート・クラウドの外側に常駐する。企業データは、オンライン・トランザクション処理(「OLTP」)およびウェアハウス・データを含み、これらは別々に格納される。好ましくは、オラクル・インスタンスとして示される複製(replicated)インスタンスが、OLTP用のデータを保有する。
【0049】
[0070]
図3を参照する。全般的に300において、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムのコンポーネントが示されている。これらコンポーネントについてこれから説明する。
【0050】
[0071]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムの主要なコンポーネントは、クラウド・コントローラ302、クラウド・スタック324、サービス・レジストリ345およびクラウド・アプリケーション・ビルダ350を含む。先に述べたように、クラウド・コントローラ302は、本発明のコンピュータ・ベース・プライベート・コンピューティング・システムにインテリジェンスを供給する。クラウド・コントローラ302の一般的な機能は、展開ワークフローをハンドルすること、クラウド・アプリケーションを展開するための時間および日付を設定すること、起動することになるクラウド・アプリケーションに従ってプラットフォーム・ニーズの拡大および縮小をすること、物理マシンおよびバーチャル・マシンを点検するための時間および日付を設定すること、クラウド・アプリケーション・ログを走査するための時間および日付をセットすること、クラウド・アプリケーション・トランザクションをモニタリングするための時間および日付を設定すること、およびエラーがプライベート・クラウド内で発生したときにアラートを送ることである。展開ワークフローについては、
図27〜32に関してこれよりより詳細に説明する。
【0051】
[0072]クラウド・コントローラ302の有する変更制御(Change Control)サービス308は、クラウド・アプリケーションのセットアップに関連付けられる。変更制御サービス308は、クラウド・アプリケーション用に作成されるバンドルされたバイナリを受け入れて、認可されたシステム・ユーザが、クラウド・アプリケーション・プロファイルを作成および更新し、ならびに特定のクラウド・アプリケーションに関する情報を閲覧することを許可する。クラウド・プロファイルの作成は、既にプライベート・クラウドに展開されてきたクラウド・アプリケーションのためのものであり、起動されることになる適切なクラウド・アプリケーションを特定する。
【0052】
[0073]変更制御サービス308は、認可されたユーザが、識別フィールドのない既存のプロファイルの記載(description)をコピーすることを許可し、その結果、新規のクラウ
ド・アプリケーションを記載するために用いることができる。変更制御サービス308はまた、認可されたユーザが、既存のクラウド・アプリケーション・プロファイルを閲覧して、それらが収容する情報を精査(review)することを許可する。さらに、変更制御サービス308は、認可されたユーザが、関連付けられたアプリケーション・バイナリを含む既存のアプリケーション・プロファイルを修正することを許可する。
【0053】
[0074]変更制御サービス308は、認可されたユーザがアプリケーション・プロファイルのステータスを変更することを許可する。例えば、この機能を用いると、認可されたユーザであれば、クラウド・アプリケーションのステータスを「下書き中(DRAFT)」から「
公開済み(PUBLISHED)」に変更できるだろう。しかしながら、他のステータスへの変更が
なおも本発明の範囲内にあるとすることができるものと認識される。
【0054】
[0075] 変更制御サービス308により、認可されたシステム・ユーザが、クラウド・
アプリケーションのアプリケーション・ステータスを閲覧して、クラウド・アプリケーションの現在および直前のステータスを精査することを可能にする。変更制御サービス308はまた、認可されたシステム・ユーザが、クラウド・アプリケーションに関連付けられたプロパティを閲覧し、そして、それらプロパティを編集することを可能にする。
【0055】
[0076]上記説明した変更制御サービス308の特徴は、好ましい特徴のみである。変更制御サービス308が、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるものとすることができることを意図している。
【0056】
[0077]再度、クラウド・コントローラ302を参照すると、自動審査ルール(Auto-Audit rule)が310に示される。自動審査ルール310は、クラウド・アプリケーション・
プロファイル・ステータスが変更されるときに検査される特定のルールに向けられる。自動審査ルール310はシステムについて構成され、通例では、クラウド・マネージャだけがこれらのルールを変更することができる。自動審査ルール310は、好ましくは、クラウド・アプリケーション・プロファイルに行われるあらゆる変更に適用されるルールのセットを含む。アラートは、この自動審査ルールに不合格になる度に発生される。自動審査ルール310について、
図23Aおよび23Bに関して更に詳細に説明する。
【0057】
[0078]クラウド・コントローラ302は、312においてプロビジョニング・サービスを示す。プロビジョニング・サービス312は、クラウド・コントローラのルール・エンジンによって発行される展開に関連したコマンドを実行する役割を果たす。プロビジョニング・サービス312は、クラウド・アプリケーション・インスタンスを自動的に作成、シャット・ダウン、および再開することになる。ここでは、インスタンスは起動しているアプリケーションのシングル・コピーとなる。プロビジョニング・サービス312は、プロビジョニングの実施のために、プラットフォーム・インフラストラクチャと相互作用す
る。動作において、クラウド・アプリケーションを起動する前に、プロビジョニング・サービス312は、クラウド・アプリケーションを起動し、そしてインフラストラクチャに提供するために必要となる資産(asset)を決定する。
【0058】
[0079]上記説明したプロビジョニング・サービス312の特徴は、好ましい特徴だけである。プロビジョニング・サービス312は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができることを意図している。
【0059】
[0080]クラウド・コントローラ302は、314においてモニタリング・サービスを示している。モニタリング・サービス314は、様々なクラウド・アプリケーションの少なくとも動作上の性能についての情報をキャプチャする。アプリケーション・コントロールパネルおよびダッシュボードを通じたユーザ・インターフェイスが、このキャプチャした情報を彼/彼女のクライアント・デバイス上のシステム・ユーザに可視なものとする。さらに、情報は、ゾーンによって可視なものにすることができる。ゾーンは認可されたユーザによって作成され、本発明の目的を達成するために、ゾーンは予め決められたコンピュータのグループとして定義される。企業または他のタイプのグループ化の分類(division)によって、このようなコンピュータは、地域的にグループ化することができる。このように、ゾーンは、例えば、展開、システム・テスト、システム・ユーザによる受け入れ試験および製造のような環境の隔離のためのクラウドのセグメントを分離して、区別する手段となり、異なる物理位置およびデータセンタを識別して、素早い災害救助を可能とする。
【0060】
[0081]モニタリング・サービス314はまた、認可されたユーザが、クラウド・サーバ構成をゾーンによって詳細フォーマットで閲覧し、クラウド・アプリケーションがどのようにゾーンまたはユーザが定義した基準によって用いられているかを示すトランザクションのリストを閲覧することを許可する。さらに、モニタリング・サービス314は、認可されたユーザが、プライベート・クラウドに関して特定クラウド・ユーザが何をしてきたかについて示す活動ログを閲覧することを許可する。認可されたユーザはまた、クラウドに関する物理マシン仮想マシン上のデータ、およびSLO違反に関するデータのグラフィカル表現を閲覧することもできる。モニタリング・サービス314は、認可されたユーザが、プライベート・クラウドに格納されるクラウド・アプリケーションに関する情報を閲覧し、現在、アクティブ状態であるクラウド・アプリケーションに関する情報を閲覧し、クラウド・アプリケーションに関して履歴データを閲覧すること許可する。さらには、モニタリング・サービス314は、認可されたユーザがSLO閾値を設定および更新し、SLO統計情報を精査し、そして、どのようなエラーがクラウド・アプリケーション内で発生しているかに基づきアクションすることを許可する。
【0061】
[0082]上記説明したモニタリング・サービス314の特徴は、好ましい特徴だけである。モニタリング・サービス314は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができることを意図している。
【0062】
[0083]クラウド・コントローラのアラート・サービス316は、開発および展開プロセスにおけるクラウド・アプリケーションのステータス変化を示すために生成される。アラート・サービス316によって発生するアラートは、自動審査ルールに関連付けられる。アラートは、「情報(INFO)」、「警告(WARN)」、「エラー(ERROR)」および「致命的(FATAL)」のアラートとして分類される。クラウド・アプリケーションの開発において、クラウド・アプリケーションおよび承認者(approver)(クラウド・マネージャ)の開発者は、クラウド・アプリケーション・プロファイル・ステータスのあらゆる変化と関連したアラートをビューすることができる。展開プロセスにおいて、すべてのアラートは、クラウド・マネージャによる承認を必要とする。しかしながら、クラウド・マネージャは承認者につ
いて1つ以上のレベルを含むことができ、このことがなおも本発明の範囲内にあるものとも理解される。
【0063】
[0084]クラウド・マネージャは、精査後にアラートを受理し、または拒否することができる。クラウド・マネージャがそのアラートを受理することを選択する場合、クラウド・アプリケーションは前進する(move forward)ことになる。しかしながら、クラウド・マネージャがアラートを拒否する場合には、クラウド・アプリケーション・プロファイルのステータスを下書き中に設定することによって、クラウド・アプリケーションを後方に移行することになる。その理由は「拒絶された(rejected)」からである。
【0064】
[0085]アラート・サービス316は、認可されたユーザが、ゾーンによってクラウド・アプリケーションについてのプロファイル変更のアラートを構成することを許可する。例えば、クラウド・アプリケーションが拡大したとき、所定の数の健康状態検査(health check)が所定の時間量において不合格となったとき、またはSLO違反が平均を上回ったときに、アラートをアラート・サービス316によって送信することができる。アラートは、手動で、または所定の条件下(例えばeメールによる)では自動的に発出することができる。自動審査ルールに関するアラートは、
図23A、23Bおよび32に関してこれよりより詳細に説明する。
【0065】
[0086]上記説明したアラート・サービス316の特徴は、好ましい特徴だけである。アラート・サービス316は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【0066】
[0087]クラウド・コントローラ302が有するSLOによる監視および遵守(watch and
compliance)サービス318は、認可されたシステム・ユーザが、個々のクラウド・アリケーションにより、またはゾーンにより、すべてのSLO違反の概要をビューすることができる。SLO監視遵守サービス318はまた、認可されたシステム・ユーザが要約の評価のために個々の違反をビューすることを許可する。さらに、SLO監視遵守サービス318は、認可されたシステム・ユーザが個々のトランザクション違反のログをビューすることを可能にする。なおもさらに、SLO監視遵守サービス318は、認可されたユーザが、ユーザ、ゾーン、クラウド・アプリケーション、ウェブ・サービスその他所定の基準による違反をフィルタリングすることを許可する。
【0067】
[0088]上記説明したSLO監視遵守サービス318の特徴は、好ましい特徴だけである。SLO監視遵守サービス318は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【0068】
[0089]クラウド・コントローラ302のログ走査サービス320は、認可されたシステム・ユーザがクラウド・ドアリケーション、インスタンス、仮想マシンにおけるハイパバイザ(hypervisor)、その他のクラウド要素に関係する行動(activity)をビューすることを許可する。ログ走査サービスを用いると、認可されたシステム・ユーザは、いかなるクラウド・プリケーションまたはクラウド・コンポーネントのオンデマンドのログ走査をも要求することができる。さらに、ログ走査サービス320を用いると、認可されたシステム・ユーザは、展開されたクラウド・アプケーションに関係する行動をビューすることができる。
【0069】
[0090]スレッド・アナライザ・サービス322は、認可されたシステム・ユーザが、起動しているクラウド・アプリケーションに関係する特定ノードに関し、プライベート・クラウド内で行うトランザクションをビューすることを許可する。
【0070】
[0091]トランザクション・ブラウザ323は、認可されたシステム・ユーザがユーザ、ゾーン、クラウド・アプリケーション、ウェブ・サービス、その他の所定の基準によるトランザクションをフィルタリングすることを許可する。トランザクション・ブラウザ323は、共にグループ・トランザクションに対し認可されたユーザが、マクロ挙動(macro behavior)を理解し、クラウド・アプリケーションおよびゾーンによる時間統計情報をビューし、現在におけるクラウド・アプリケーションおよびゾーンについての応答時間統計情報を、通例のクラウド・アプリケーションおよびゾーンについての応答時間統計情報と比較することを許可する。
【0071】
[0092]上記説明したスレッド・アナライザ・サービス322およびトランザクション・ブラウザ323の特徴は、好ましい特徴だけである。スレッド・アナライザ・サービス322およびトランザクション・ブラウザ323は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【0072】
[0093]クラウド・スタック324は、プライベート・クラウドについてのソフトウェア・スタックを含む。クラウド・スタック324は、オペレーティング・システム・ソフトウェア326を含み、好ましくはLinux(登録商標)ソフトウェアである。さらに、クラウド・スタック324は、仮想マシンのオペレーティング・ソフトウェア328であり、クラウド内で起動している仮想マシンが用いるためのものである。仮想マシンは、ハイパバイザによって管理される。好ましくは、このソフトウェアは、サン・マイクロシステムズ社/オラクル社からのJava(登録商標)開発キット(「JDK」)ソフトウェアである。
【0073】
[0094]クラウド・スタック324は、ウェブ・サーバ・ソフトウェア330を含み、このウェブ・サーバ・ソフトウェア330は、好ましくはApacheソフトウェア財団によるApacheWebServerソフトウェアである。クラウド・スタック324はまた、アプリケーション・サーバ・ソフトウェア332も含む。好ましくは、アプリケーション・サーバ・ソフトウェアは、Tomcatサーブレット・コンテナを含むJBossソフトウェアである。JBossソフトウェアはRed Hat社によるものであり、Tomcatサーブレット・コンテナ・ソフトウェアはApacheソフトウェア財団によるものである。
【0074】
[0095]クラウド・スタック324は、ネットワーク・セキュリティ・ソフトウェア334を含み、好ましくはIrdeto B.V.によるクロークウェア(Cloakware)ソフトウェアである。クラウド・スタック324の次のソフトウェアはウェブ・アクセス管理ソフトウェア336であり、好ましくは、Computer Associates社によるサイトマインダ(SiteMinder)ソフトウェアである
【0075】
[0096]クラウド・スタック324はデータベース・アクセス・ドライバ338を含み、好ましくはJDBCドライバである。クラウド・スタック324はまた、クラウド・アプリケーション・ビルダ・ランタイム・ソフトウェア340も含み、これは、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーション・フレームワーク・ソフトウェアである。
【0076】
[0097]最後に、クラウド・スタック324は、サードパーティのライブラリ342を含む。ライブラリの数として、このような1つ以上のサードパーティ・ライブラリを含むことができ、なおも本発明の範囲内にあるものとすることができる。
【0077】
[0098]サービス・レジストリ345は、先にも説明したが、プライベート・クラウドに
おいて展開されるクラウド・アプリケーションについての少なくともウェブ・サービスのレジストリを含む。サービス・レジストリは、プライベート・クラウド内で開発されたクラウド・アプリケーションを展開するために、クラウド・コントローラ302およびクラウド・スタック324と協働する。
【0078】
[0099]好ましくは、クラウド・コントローラ302は、上記説明したサービスを含み、クラウド・スタックは、上記説明したソフトウェア・スタックを含み、これらは、クラウド・アプリケーション・フレームワークと共にランタイム・コンポーネントを形成する。ラウド・アプリケーション・フレームワークは、レバレッジされて、プライベート・クラウドにおける展開用にクラウド・アプリケーションを用意するために、クラウド・アプリケーションをビルドする。クラウド・コントローラ302およびクラウド・スタック324に関し、特定のコンポーネントについて、上記のように特定してきた。しかしながら、多かれ少なかれ、これらのコンポーネントはクラウド・コントローラ302およびクラウド・スタック324を形成し、これらはなおも本発明の範囲内にあるものと理解される。
【0079】
[0100]クラウド・アプリケーション・ビルダ350は、本発明のプライベート・クラウドの展開のためのクラウド・アプリケーションおよびウェブ・サービスを開発するのに用いる。クラウド・アプリケーション・ビルダ350は、サービス開発ツールキット352を含み、主に、プライベート・クラウド内で展開される、クラウド・アプリケーションのためのウェブ・サービスの開発用に用いられる。このサービス開発ツールキットは、ウェブ・サービス、およびクラウド・アプリケーション・フレームワークに従って開発されるクラウド・アプリケーションについてのユーザ・インターフェイスの開発時に少なくとも用いられるツールを含む。
【0080】
[0101]クラウド・アプリケーション・ビルダ350のクラウド開発ツールキット(「CDT」)354は、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーションに関連付けられたユーザ・インターフェイスの開発用のものである。
【0081】
[0102]クラウド・アプリケーション・ビルダ350は、ウェブ・アプリケーションで開発するためのソフトウェア356を含む。好ましくは、アプリケーション開発ソフトウェア356は、Eclipse財団によるEclipseであり、Google社によるGoogleウェブ・ツールキット(「GWT」)に加えて、アプリケーション開発用の統合開発環境(「IDE」)を提供する。
【0082】
[0103]クラウド・アプリケーション・ビルダ350は、試験ソフトウェア358を含み、好ましくは、JUnit.orgによるJUnitソフトウェアである。最後に、クラウド・アプリケーション・ビルダ350は、ウェブ・サーバ・サーブレット・ソフトウェア360を含み、クラウドにおける展開のために開発されているクラウド・アプリケーションについてのウェブ・サーバのための動的コンテンツを生成するために用いられる。好ましくは、ウェブ・サーバ・サーブレット・ソフトウェアは、Apache Software財団によるApache Tomcatである。
【0083】
[0104]
図4を参照する。全般的に400において、本発明のプライベート・クラウド・コンピューティング・システムのコンポーネントについての論理構造の代表的な図を示している。ユーザ・インターフェイス402は、クライアント・デバイスのユーザ・インターフェイスである。インタフェースは、ダッシュボード406を含むことになるアプリケーション・コントロールパネル404を含む。代表的なアプリケーション・コントロールパネルが
図15に示され、代表的なダッシュボードが
図24に示される。
【0084】
[0105]アプリケーション・コントロールパネル404は、開発者、クラウド・アプリケ
ーションの管理者、クラウド・アプリケーションの所有者、ソフトウェア品質保証(「SQA」)、システム・ユーザその他の者が、クラウドにおいてクラウド・アプリケーションをビュー、使用および操作することを可能にする。ダッシュボード406により、認可されたユーザがインフラストラクチャ・コンポーネントを管理することを可能にする。ユーザ・インターフェイス402は、クラウド・アプリケーションおよび関連する情報、ならびにCLDB410に格納された他のデータおよび情報にアクセスするためにCLDB410に双方向に接続される。
【0085】
[0106]ユーザ・インターフェイス402はまた、クラウド・コントローラにメッセージを送信するために、クラウド・コントローラ408にも接続する。好ましくは、これらのメッセージは、特定のクラウド・アプリケーションおよびウェブ・サービスにアクセスするための要求、およびSLOモニタリングを含むことになるがこれに限定されない。
【0086】
[0107]eSFプロキシ412は、eSFデータベース413と共にセキュリティをクラウドに提供する。eSFプロキシ412およびeSFデータベース413は、データ・グループ、機能グループおよびユーザ役割に基づいてクラウド・アプリケーションおよびウェブ・サービス・アクセスにパーミッション(permission)を提供する。データ・グループ、機能グループおよびユーザ役割は、
図11〜14に関してより詳細に説明する。
【0087】
[0108]パーミッションは、クラウドにおいて、ユーザがクラウドにおいて特定のクラウド・アプリケーションおよびウェブ・サービスにアクセスすること、ユーザが特定の機能、例えば、承認の付与、クラウド・アプリケーション・プロファイルの変更、またはCLDB410からのクラウド・アプリケーションの削除を実行できることを含むが、これに限定されない。さらには、eSF412/413は、セキュリティ・インフラストラクチャを提供することができる。セキュリティ・インフラストラクチャは、プライベート・クラウドにおいて起動されるクラウド・アプリケーションについてのセキュリティ要件の全てを、プライベート・クラウドそれ自体のセキュリティ要件と同様に、収容して満たすことになる。セキュリティeSFの少なくとも一部は機能レベル権限を付与し、eSFはまた、このようなセキュリティ付与をサポートするデータも収容する。上記説明したパーミッションが網羅的ではなく、追加のパーミッションがある場合もあり、また、これが本発明の範囲内にあるものと理解される。
【0088】
[0109]サービス・レジストリ415は、クラウド・コントローラ408に接続する。サービス・レジストリ415は、これより詳細に説明するが、開発者がプライベート・クラウド用に登録されるウェブ・サービスについて検索し、そして、それらに関する詳細な情報をビューすることを可能にする。
【0089】
[0110]ユーザ・インターフェイス402からの特定のクラウド・アプリケーションまたはウェブ・サービスについての要求を処理する際に、クラウド・コントローラ408は、要求をプロビジョニング・サービス414に送信する。プロビジョニング・サービス414は、それらが制御するハイパバイザおよび仮想マシンに提供して、クラウドにおいてクラウド・アプリケーションを起動するクライアント・デバイスの必要性に順応する。
図4に示すように、ハイパバイザ420は、ウェブサーバ・インスタンス422、アプリケーション・インスタンス424およびアプリケーション・インスタンス426を管理する。これらのソフトウェア・インスタンスの各々は、ハイパバイザ420によって監督される仮想マシン・インスタンスにおいて起動している。本発明のプライベート・クラウド・コンピューティング・システムは、仮想マシン・インスタンスにおいて起動しているクラウド・アプリケーションおよびウェブ・サーバのインスタンスを制御する1つ以上のハイパバイザを有することができ、これはなおも本発明の範囲内にあるとすることができるものである。
【0090】
[0111]
図4を参照すると、416は、ビルド.xmlを示す。ビルド.xmlは、アプリケーション・ビルド・フレームワークに関連しており、開発者がクラウド・アプリケーション・ビルダ350(
図3)およびそれに関連するランタイム・ライブラリを用いてクラウド・アプケーションをビルドすることを可能にする。このようなクラウド・アプリケーションがビルドされると、クラウド・アプリケーションに関連したバイナリがバイナリ・ビルダ418に提供される。バイナリは、次いで、CLDB410に記憶するために送信され、ハイパバイザに提供するためにプロビジョニング・サービス414に提供される。その結果、バイナリは、クラウド・アプリケーションを起動するためのクライアント・デバイスを含むシステム・ユーザ、およびクラウド・アプリケーションを操作するためのパーミッションを有する認可されたシステム・ユーザに利用可能となる。
【0091】
[0112]モニタリング・サービス428は、健康状態検査サービス430およびログ走査サービス432を含む。健康状態検査サービス430は、プライベート・クラウドの物理リソースおよび仮想リソースをモニタリングする。ログ走査サービス432は、SLO違反を探しているクラウド・アプリケーションおよびクラウド・インフラストラクチャのコンポーネントについてのログの自動およびオンデマンドの走査を実行する。健康状態検査サービス430およびログ走査サービス432によって測定される情報は、CLDB410に格納される。
【0092】
[0113]クラウド・アプリケーションの開発を説明する前に、各クラウド・アプリケーションのユーザ・インターフェイス管理は、
図5を参照して説明される。
【0093】
[0114]
図5は500において、プライベート・クラウド上のクラウド・アプリケーションについてのフォアグラウンド・タスク、データ・ストレージおよびバックグラウンド・タスクのユーザ・インターフェイス管理のための代表的な図を示している。サービス・コンシューマ502は、クラウドの内側または外側にいるサービスのコンシューマである。プライベート・クラウド外側のサービス・コンシューマの例には、504で示されるようなクライアント・デバイスで起動しているサービスを含む。
【0094】
[0115]データ・アクセス506は、508および510で示されるようなフォアグラウンド・サービスに向けられており、それらはユーザ・インターフェイスのために作成され、プライベート・クラウドにアクセスする。例えば、開発者であれば、この目的のために、HTML、Adobe Flash、AJAXその他ツールでの軽量ユーザ・インターフェイスのコンポーネントを作成ことができるであろう。しかしながら、他のサービスを作成することができ、なおも本発明の範囲内にあるとすることができるものと理解される。
【0095】
[0116]データ・ストレージ512は、オンライン・トランザクション処理(「OLTP」)データに向けられ、それはウェアハウス・データとは別個のアプリケーション・データベース214に格納される。したがって、OLTPデータは、データベース・トランザクションを実行することと関連している。OLTPの例は、データ・ストレージ512が有する514および516に示される。データ・ストレージ512において、メインフレーム顧客情報処制御システム(「CICS」)514は、本発明によるデータ・ストレージのために、従来のCICS機能をレバレッジする。データ・ストレージ512はまたRDBMS516を示しており、リレーショナル・データベース管理システムである。本発明の目的のために、RDBMSは、本発明によるデータ・ストレージのために、従来のリレーショナル・データベース管理機能をレバレッジする。しかしながら、本発明のシステムが他のOLTPデータ・コンポーネントを含むことができ、なおも本発明の範囲内にあるとすることができるものと理解される。
【0096】
[0117]バックグラウンド518を使用して、ジョブ520および522のようなバックグラウンド・プロセスを作成し、ウェアハウス・データを管理する。ジョブの作成について、これよりより詳細に説明する。
【0097】
[0118]eSF526は、先に述べたように、セキュリティをクラウドに提供する。eSF526は、
図4の412および413で示されるものを含む。ユーザ・インターフェイスを通じて、eSF526は、権限の施行(entitlement enforcement)に向けられる。こ
のように、データ・アクセス506およびバックグラウンド518に関して、eSF526は、ユーザ役割を割り当てることにより、クラウド・アプリケーションおよびウェブ・サービスにアクセスして利用するための認可について制御する。ユーザ役割は、好ましくは、企業内において格納したデータを機能と関連付けることによって工夫される。
【0098】
[0119]サービス・レジストリ524は、プライベート・クラウドのサービス・レジストリに関連する。サービス・レジストリは、開発者がウェブ・サービスを検索し、それらに関する詳細情報をビューすることを可能にする。したがって、ユーザ・インターフェイスは、再利用できるウェブ・サービスについてサービス・レジストリを閲覧するために用いることができる。さらに、サービス・レジストリ524は、プライベート・クラウドにアプリケーションおよびウェブ・サービスを持ち込み、そして、それらのSLOの遵守および利用をモニタリングするという機能を実行する。サービス・レジストリは、
図6でより詳細に説明する。
【0099】
[0120]
図6は、全般的に600において、サービス・レジストリ524を示す本発明のプライベート・クラウド・コンピューティング・システムのアーキテクチャの代表的な図を示している。
図6において、プロビジョニング・サービス312、モニタリング・サービス314、SLO監視遵守サービス318、ログ走査サービス320、およびトランザクション・ブラウザ323(図示せず)は、
図3に示し先に説明したクラウド・コントローラ302のコンポーネントである。ユーザ・インターフェイス406は、
図4に示しており、先に説明したものである。トランザクション・ブラウザ323は
図6に示すことができ、なおも本発明の範囲内にあるものと理解される。
【0100】
[0121]
図6の中央部には、審査監跡(audit trail)608、データ保全性610、セキ
ュリティ612およびスケジューラ614を含む持続状態606がある。審査追跡608は、クラウド・アプリケーションに関する変更追跡のためにある。データ保全性610は、データベース内でのデータ保全性を確実にするために制約をアプリケーション・データベースに課すためにある。スケジューラ614は、ジョブをスケジューリングするためにある。セキュリティ612は、eSFアクセス・セキュリティである。
【0101】
[0122]ルール・エンジン602は、プライベート・クラウド(クラウド・コントローラ)の一部であり、クラウド・マネージャによって作成され、そして、プライベート・クラウドの範囲内で起動しているクラウド・アプリケーションの動作に対するルールを含む。これらルールは、例えば、拡大または縮小ルール、アラート・ルール、またはゾーン・ルールを含む。ルール・エンジンは、他のルールを含むことができ、なおも本発明の範囲内にあるものとすることができる。
【0102】
[0123]再度
図6を参照すると、構成要素の各々は、メッセージング環境604内において接続されることが示されている。これにより、さまざまな構成要素間での通信を可能にする。
【0103】
[0124]
図6のサービス・レジストリ524を参照すると、サービス・レジストリが少な
くとも4つのサービスを提供することを意図している。しかしながら、4つより多いまたは少ないものを提供することができ、なおも本発明の範囲とすることができるものと理解される。
【0104】
[0125]サービス・レジストリ524が好ましくは提供する第1のサービスは、認可された開発者がウェブ・サービスに関するメタデータを作成および操作するためのアプリケーション・プログラミング・インタフェース(「API」)をサービス提供するためのものである。このことは、認可されたユーザが、機能および機能グループに関するメタデータおよび情報を作成または更新することを可能にする。APIはこの情報を参照する。これは、好ましくはサービス・インベントリ・ファイルにおけるウェブ・サービス詳細である。
【0105】
[0126]第2のサービスは、検索カタログ・サービスである。検索カタログ・サービスは、認可されたシステム・ユーザが、サービス・レジストリのカタログ検索ページ上でウェブ・サービスを検索および発見することを可能にする。
【0106】
[0127]サービス・レジストリ524の第3のサービスは、閲覧カテゴリ・サービスである。
このサービスは、認可されたシステム・ユーザが、クラウド・アプリケーション機能グループからサービス・レジストリのアプリケーション・ブラウザ・ページ上で構成ウェブ・サービスのリストにドリルダウン(drill down)することを可能にする。
【0107】
[0128]サービス・レジストリの第4のサービスは、ウェブ・サービス詳細のサービスである。このサービスは、メタデータおよび他のデータを提供し、認可されたシステム・ユーザが、
図26に示したユーザ・インターフェイスにおいてウェブ・サービス詳細ダイアログ・ボックスの様々なタブにアクセスすることができる
【0108】
[0129]
図7を参照する。全般的に700において、代表的なサービス・レジストリ・アーキテクチャが示されている。サービス・レジストリ524(
図5)は、クラウド・コントローラ408(
図4)に接続する。図示のように、クラウド・コントローラ408およびサービス・レジストリ524は、プライベート・クラウド内にある。また、サービス・メタデータ・レポジトリ704(メタデータ・データベースである)は、クラウドの外側からサービス・レジストリ524に接続される。サービス・メタデータ・レポジトリ704はメタデータ・データベースである。さらに、eSF412/413(
図4)はクラウドの外側からクラウド・コントローラ408に接続する。図示していないが、eSFプロキシ412は、eSFデータベース413とクラウド・コントローラ408の間に配置されるが、プライベート・クラウド内にある。
【0109】
[0130]クラウド・コントローラ408はブラウザ・クライアント(ユーザ・インターフェイス)402に接続する。ブラウザ・クライアント402がユーザ706にコンテンツを提供し、それらがアクセスサービス・レジストリ524にアクセスするのを許可する。
【0110】
[0131]eSFのサービス・レジストリ524との統合は、クラウド・アプリケーション、ウェブ・サービス、およびボタンおよびメニュー・オプションのようなユーザ・インターフェイス・アイテムへアクセスが認可されたシステム・ユーザのみに制限されることを保証する。これは、開発者およびユーザによるアクセス権を決定する、注意深く定義された役割に基づいている。このアクセス制御の例をこれから詳細に説明する。
【0111】
[0132] クラウドにおいて開発されるクラウド・アプリケーションのコンポーネントは
、ユーザ・インターフェイス、潜在的な再利用を提供する登録済みのウェブ・サービス、
再利用可能なバックグラウンド・ジョブについてのレジストリを含む。プライベート・クラウドでの展開のためのクラウド・アプリケーションを作成している開発者はまた、ウェブ・サービスおよびジョブに関するビジネス・ルールおよび/またはJava(登録商標)クラスを作成することができる。一旦クラウド・アプリケーションのコンポーネントが作成されると、それらはCLDB410に格納することができる。これらのコンポーネントの作成は、プライベート・クラウド環境内で行うことができる。
【0112】
[0133]ウェブ・サービス、ユーザ・インターフェイス・コンポーネント、およびバッチ・ジョブを開発する際、クラウド・アプリケーションに関して開発者が行う要件分析があり、彼/彼女のアプリケーション、クラウド・アプリケーションのタスクを実現することが必要とされるユーザ・インターフェイス・コンポーネント、および、クラウド・アプリケーションについてのデータを格納することが必要とされるバッチ・ジョブについて実施するウェブ・サービスを特定する。これらタスクを実行する際には、クラウド・コントローラにおいて、開発者は、サービス・レジストリ内で登録済みサービスを閲覧および参照することができ、いずれが彼/彼女のクラウド・アプリケーションで再利用できるかについて理解する。
【0113】
[0134]本発明のシステム及び方法によれば、ウェブ・サービスがクラウド・アプリケーションについて作成される前に、開発者はクラウド・アプリケーション・コードおよびその拡張を含むアプリケーション識別子を取得しなければならない。これは、クラウド・アプリケーションについてのクラウド・アプリケーション・プロファイルの作成を含む開発プロセスを通じてアプリケーションを追跡することになる。好ましくは、クラウド・アプリケーションがプライベート・クラウド環境へさらに移行することができる前に、クラウド・アプリケーションのソースコードはソースコード制御システムに置かれる。一旦このタスクが実行されると、クラウド・アプリケーションおよびそのコンポーネントはクラウド・アプリケーション・ビルダ350(
図3)を使用して開発することができる。
【0114】
[0135]特定のクラウド・アプリケーションに関し、ウェブ・サービス・コンポーネントの開発は、開発者によるサービス定義用のメタデータの作成およびクラウド・アプリケーション用のサービス・インベントリ・ファイルの完了を含む。各クラウド・アプリケーションは、それに関連付けられるサービス・インベントリ・ファイルを有することになり、全メンバのウェブ・サービスにおける機能グループを記述する。クラウド・コントローラ302(
図3)は、このデータを用いて、クラウド・アプリケーションが展開される際に自動的にサービス・レジストリを更新する。
【0115】
[0136]好ましくは、開発業者は、フォアグラウンド・プロセスおよびバックグラウンド・プロセス(
図5参照)用に別々の.war(「ウェブ・アーカイブ」)ファイルをビルドし、クラウド・アプリケーションに関連付けられたバイナリをバンドルし、そして、クラウド・アプリケーション・プロファイルを作成する。フォアグラウンド・プロセスと関連付けられるバイナリは、ウェブ・サービスおよびユーザ・インターフェイス・コンポーネントに関係する。バックグラウンド・プロセスと関連付けられるバイナリは、ジョブに関係する。しかしながら、開発者がクラウドにおいて使用するためのウェブ・サービスを展開できないうちに、適切な承認を得なければならない。この承認はサービス・レジストリの更新およびeSFに格納される関連するeSF役割の調整をトリガする。開発におけるこのプロセスについて、
図8に視覚的に示す。
【0116】
[0137]
図8は、全般的に800において、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーションについてのウェブ・サービス・コンポーネントの開発のためのプロセスの代表的な図を示している。クラウド・アプリケーションの開発および適用のプロセスの一部として、開発者801は、804において、クラウド・アプリ
ケーションと関連しているウェブ・サービスを開発することになる。ウェブ・サービスが開発される際、806において、開発者はサービス・インベントリ・ファイルを更新するために808で用いられることになるサービス定義のメタデータを更新することになる。これにより、クラウド・アプリケーション開発と関連したウェブ・サービス開発の一部が完成する。
【0117】
[0138]808におけるサービス・インベントリ・ファイルの更新に続き、開発者は、810においてフォアグラウンド・プロセスおよびバックグラウンド・プロセスのためのアプリケーション・バイナリ・ファイルをビルドする。クラウド・アプリケーションに関連付けられたバイナリはバンドルされる。そして、812において、ウェブ・サービスを展開するための要求は、クラウド・アプリケーションのために作成されてきたクラウド・アプリケーション・プロファイルを用いて行われる。この要求は、クライアント・デバイスのユーザ・インターフェイスを用いている開発者によって、クラウド・コントローラ814に送信される。816において、適切に認可されたユーザによる承認が要求される。承認が拒否される場合には、通知が適切なメッセージングを通じて開発者に送り返される。しかしながら、承認が付与される場合、818においてウェブ・サービス用のサービス・レジストリに送られる更新がある。また、820において、eSFの更新が、ウェブ・サービスの利用のための適切なパーミッションとともにある。これに続いて、822において、ウェブ・サービスがプライベート・クラウド内にライブで提供される。好ましくは、プライベート・クラウドは、ウェブ・サービスが展開される際、サービス定義中のメタデータおよびサービス・インベントリ・ファイルを用いて、サービス・レジストリを自動的に更新する。
【0118】
[0139]先に述べたように、ユーザ・インターフェイスはまた、クラウド・アプリケーションのコンポーネントでもある。クラウド・アプリケーション・ビルダ350は、CDT354およびユーザ・インターフェイス上の適切なパネルを通じて、特定のクラウド・アプリケーションと関係付けられることになるユーザ・インターフェース・コンポーネントを開発する。このツールキットは、開発者がクラウド・アプリケーションに関連付けられたウェブ・サービスをユーザ・インターフェイスに拡張することができる。好ましくは、ツールキットは、ユーザ・インターフェイス開発に基づくFlashおよびMicrosoft Officeをサポートすることになる。
【0119】
[0140]プライベート・クラウドにおいて展開されるクラウド・アプリケーションは、非クラウドのウェブ・ページに組み込むことができる。これが行われると、クラウド・アプリケーションのすべての機能性は、ポップアップとしてユーザ・インターフェイスを有するそのウェブ・ページからアクセスすることができるが、ウェブ・サービスはプライベート・クラウドにおいて起動している。
【0120】
[0141]クラウド・アプリケーションの最後のコンポーネントは、バックグラウンド・ジョブである。これらのジョブは、バックグラウンドで起動し、クラウドおよび他のデータベースに情報を格納するバッチ・ジョブである。クラウド・アプリケーションのバックグラウンド・ジョブは、異なるマシン上に配置することができる2つのインスタンスにおいて起動することができる。例えば、これらのジョブは、2つの別々のデータセンタにおいてアクティブ−アクティブに起動される。バックグラウンド・ジョブは、クラウド・アプリケーション・サーバがフォアグラウンドでスレッドをハングアップすることなくスケーラビリティをハンドルすることを支援する処理を含むことができる。
【0121】
[0142]
図9を参照すると、全般的に900において、代表的な図が、バックグラウンド・ジョブ開発およびハンドリングのために示されている。
図9において、外部サービス902は、バックグラウンド・クラウド909に接続する。外部サービス902は、RDB
MS904、メッセージング906およびファイル転送サービス908を含む。これらの各々は、他の図に関して先に述べたものであり、このように、これらの説明はここでも同等であり参照によりここに組み込むものとする。
【0122】
[0143]バックグラウンド・クラウド909は、910、916および922において3つの代表的なクラウド・アプリケーション・インスタンスを含む。アプリケーション・インスタンス910は、バッチ・ジョブ912および914を示す。アプリケーション・インスタンス916は、バッチ・ジョブ918および920を示す。また、アプリケーション・インスタンス922は、バッチ・ジョブ924および926を示す。スケジューラ(図示せず)は、ジョブを管理して、
図9に示すような複数のアプリケーション・インスタンスをハンドルする。バックグラウンド・クラウド909で示されるバッチ・ジョブは、複数のジョブを収容できる別々の.warファイルにバンドルすることができる。これらのジョブは、次いで、CLDB410に格納することができ、適切なクラウド・アプリケーションに関連付けることができる。
【0123】
[0144]先に述べたように、eSFは、クラウド・アプリケーション・セキュリティをハンドルする。好ましくは、クラウド・アプリケーション開発者は、eSF役割をセットアップし、保護されるアイテムをセキュリティ保護する(secure)ために、eSFプロキシAPIを使用することになる。eSFセキュリティの使用については、これより
図10を参照してより詳細に説明する。
【0124】
[0145]
図10を参照する。全般的に1000において、eSFセキュリティを実施するための代表的な図を示している。システム・ユーザがクラウド・アプリケーションまたはウェブ・サービス・アクセスを要求するときに、サービス・コンシューマ1002として示されるシステム・ユーザは認可されなければならない。このように、サイトマインダ(SiteMinder)1004は、eディレクトリ(eDirectory)1006に問い合わせることにより、システム・ユーザ認可を検査する。認可が確認される場合には、クラウド・アプリケーションと関連して要求されたウェブ・サービス1008は、eSFプロキシ1010と通信し、eSFデータベース1012内のシステム・ユーザのeSF権限を検査する。これらの権限は、システム・ユーザがサービス要求において特定の機能を実行するよう認可されているかどうかを含むことになる。システム・ユーザが認可される場合には、システム・ユーザは、1014において、ウェブ・サービスを通じてデータベース情報にアクセスすることになる。システム・ユーザが認可されない場合にはアクセスが拒否されることになる。
【0125】
[0146]クラウド・アプリケーションおよびウェブ・サービスへのアクセスが役割に基づくことができると先に説明してきた。本発明の目的のために、機能グループは、認可されたシステム・ユーザが当該システム・ユーザのジョブ・ディスクリプションに関係する如何なるデータに対する動作を実行するのを可能にする機能のコレクションである。好ましくは、機能グループは、クラウド・アプリケーション開発者によって定義される特定データへのアクセス権を有することになる。機能グループおよび機能は、サービス・インベントリ・ファイルで定義され、サービス・レジストリおよびeSFデータベースを更新することになるアプリケーション・バイナリ・ファイルの一部として展開される。機能グループの形成およびこれら機能グループがアクセス権を有するサービスの例を
図11に示す。
【0126】
[0147]
図11は、全般的に1100において、クラウド・アプリケーションに関係した機能グループ、およびこれらのグループの各々がアクセス権を有するサービスの図を示している。クラウド・アプリケーション・ブロック1102において、「マスタ・フィーダ」と名づけられたクラウド・アプリケーションを示す。マスタ・フィーダ・クラウド・アプリケーション1104の開発者は、機能グループ・ブロック1106において2つの機
能グループを定義している。1108における第1の機能グループは、管理(administrative)機能によって定義され、1110における第2の機能グループは、閲覧機能によって定義される。
【0127】
[0148] サービス・ブロック1112において、マスタ・フィーダ・クラウド・アプリ
ケーション1104について登録されたサービスが示される。1108における第1の機能グループに関して、当該機能グループが、791002、791003および791004として登録されたサービスを実行するのを許可する。これにより、第1の機能グループがマスタ作成(Create Master)、フィーダ追加(Add Feeder)、およびフィーダ削除(Remove Feeder)のそれぞれを許可することになる。
【0128】
[0149]1110における第2の機能グループに関して、この機能グループが、792001および792002として登録されたサービスを実行するのを許可する。これにより、第2の機能グループが、マスタ発見(Find Master)およびフィーダ取得(Get Feeders)のそれぞれを許可することになる。第2の機能グループは、第1の機能グループ用に認可されるサービスにアクセスするのは許可されないことに留意されたい。
【0129】
[0150]機能グループの定義は、クラウド・アプリケーション役割に基づく。
図12を参照して、これら役割が機能グループを定義する方法について説明する。
【0130】
[0151]
図12を参照する。全般的に1200において、機能グループを定義するクラウド・アプリケーション役割の使用について示している。クラウド・アプリケーション・ブロック1202は、「マスタ・フィーダ」と名づけられたクラウド・アプリケーションを示す。クラウド・アプリケーション役割テンプレート・ブロック1206では、アプリケーション開発者は、マスタ・フィーダ・クラウド・アプリケーションと関連付けられた役割を定義する。これらの役割は、1208におけるマスタ・フィーダ管理者(Administrator)および1210におけるマスタ・フィーダ・ユーザである。好ましくは、クラウド・
アプリケーション役割テンプレートは、システム・ユーザが実行しなければならない機能を評価し、機能グループ内のこれらの機能を集約(assemble)し、そして、システム・ユーザによって操作することができる全データを収容するデータ・グループを識別することによって、構築される。
【0131】
[0152]
図12に示すように、機能グループ・ブロック1214において、1208で示されるマスタ・フィーダ管理者の役割は、2つの機能グループに分けることができる。第1の機能グループは、システム・ユーザが1216における管理機能を許可されるものであり、また、第2が1218における閲覧機能のみを許可されるものである。
【0132】
[0153]先に述べたように、クラウド・アプリケーションの開発者によっても定義されるクラウド・アプリケーション役割はまた、1210においてマスタ・フィーダ・ユーザも提供する。この役割に割り当てられる機能グループは、1220における閲覧機能を許可される。これら閲覧機能は、マスタ・フィーダ管理者とは同一または異なるものとすることができ、なおも本発明の範囲内にあるものとすることができる。
【0133】
[0154]クラウド・アプリケーション役割テンプレートは、サービス・インベントリ・ファイルの一部となり、そしてクラウド・アプリケーションがプライベート・クラウドにおいて展開される際にeSFを更新する。
【0134】
[0155]
図13は、全般的に1300において、
図12に示される管理者役割についてのeSF権限マップを示している。機能ブロック1302では、機能グループのブロック1314における1316の第1の機能グループ、および1318における第2の機能グル
ープに利用可能な機能を示す。図示のように、1316の第1の機能グループは、1304のマスタ編集、1306のフィーダ追加、および1308のフィーダ削除の機能を許可される。同じように、1318における第2の機能グループは、1310のマスタ閲覧および1312のフィーダ閲覧を許可される。
【0135】
[0156]役割ブロック1320では、1322の役割はABC社で管理者のためにあることを示す。データ・グループ・ブロック1324では、管理者が1326でABC社のファンドに関するデータを受信することを示す。例えば、このファンドはミューチュアル・ファンドとすることができる。データ・ブロック1328は、ABC社のファンドに関する特定のデータのレポジトリとすることができ、1330のABC1データ、1332のABC2データ、および1334のABC3データを含み、1322の管理者が1326においてデータ・グループのブロック1324でアクセス権を有することになる。マスタ・フィーダ・クラウド・アプリケーションに関する権限マップを精査する際、機能グループに基づく制約がマップに従って施行される。
【0136】
[0157]
図14は、全般的に1400において、
図12に示したユーザ役割についてのeSF権限マップを示している。機能ブロック1402では、機能グループ・ブロック1414における1416の第1の機能グループおよび1418の第2の機能グループに利用可能となる機能を示す。図示のように、1416の第1の機能グループは、1404のマスタ編集、1406のフィーダ追加、および1408のフィーダ削除という機能を許可される。同じように、1418の第2の機能グループは、1410のマスタ閲覧および1412のフィーダ閲覧という機能が許可される。
【0137】
[0158]役割ブロック1420において、1422における役割がABC社のシステム・ユーザのためのものであることを示す。データ・グループ・ブロック1424では、システム・ユーザが1426においてABC社のファンドに関するデータを受信することを示す。そのファンドは、
図13のようなミューチュアル・ファンドとすることができる。データ・ブロック1428は、1430のABC1データ、1432のABC2データ、および1434のABC3データを含むABC社のファンドに関する特定のデータ・レポジトとすることができ、1422のシステム・ユーザが、1426においてデータ・グループ・ブロック1424を通じてアクセス権を有することになる。マスタ・フィーダ・クラウド・アプリケーションに関する権限マップを精査する際には、機能グループに基づく制約がこのマップに従って施行される。このように、役割ブロック1420における役割は、システム・ユーザのためだけであり、このシステム・ユーザは、機能グループ・ブロック1414における1418で閲覧機能を許可されるだけである。この機能グループの一部として、システム・ユーザは、機能ブロック1402についての1410のマスタ閲覧およびの1412のフィーダ閲覧を許可されるだけである。
【0138】
[0159]先に
図8を参照して、プライベート・クラウドにおけるクラウド・アプリケーションを開発および展開するためのプロセスについて説明した。そのプロセスについて、これより
図15〜22を参照してさらに詳細に説明する。
【0139】
[0160]好ましくは、プライベート・クラウドにおけるクラウド・アプリケーションを展開するための5つの主要なステップがある。このプロセスは、クラウド・アプリケーション・プロモーション・プロセスと称することができる。この5つの主要なステップは、アプリケーション・バイナリをバンドルして、このバンドルしたアプリケーション・バイナリをプライベート・プラウドにエクスポートし、プライベート・クラウドにおいてクラウド・アプリケーションを展開するためにクラウド・アプリケーション・プロファイルを作成および編集し、プライベート・クラウドにおいてクラウド・アプリケーションを展開するために適切な承認を取得し、ユーザ受け入れ試験(「UAT」)にプロモートされるこ
とができように、アプリケーションについて認定される(certified)ビルドを実行し、そ
して、プライベート・クラウドへのクラウド・アプリケーション・プロモーションのためにクラウド・アプリケーション・プロファイルのシステム・プロパティを設定および変更することを含む。
【0140】
[0161]クラウド・アプリケーションを開発(「DEV」)環境に展開してクラウド・アプ
リケーション・プロモーション・プロセスを開始する前に、好ましくは、開発者は、アプリケーション用の先に述べたアプリケーション識別子を入手することになる。更に、開発者は、適切なクラウド・コントローラ・アクセスeSF役割権限が開発者用にeSFにおいてセットアップされることを要求したことになり、その結果、開発者は、クラウド・アプリケーションを展開するための適切な役割を有する。開発者は、クラウド・アプリケーション・ビルダ350(
図3)においてクラウド・アプリケーションについてのビルド・プロジェクトを作成し、クラウド・アプリケーション上での適切な試験を起動させることになる。次いで、開発業者は、クラウド・アプリケーション・ビルダにおいてクラウド・アプロケーションをビルドすることになり、開発者は、プライベート・クラウドにエクスポートするためにクラウド・アプリケーションに関連付けられたバイナリをバンドルする準備を整える。
【0141】
[0162]一旦、上記のステップが達成されると、クラウド・アプリケーション・バイナリはバンドルされ、そして、クラウド・コントローラは、プライベート・クラウドにクラウド・アプリーションと関連付けられた、承認された安全なウェブ・サービスをプロモートする。本発明によれば、バイナリ・バンドラは、概念実証(「POC; proof of concept」)およびシステム統合(「SYS; System Integration」)の展開についてビルドした後
に、開発者のクライアント・デバイスから呼び出すことができる。しかしながら、バイナリ・バンドは、UATおよび生産(「PROD」)展開のために、より高位レベルのビルド・マシン、例えば、クリア・ケース(ClearCase)ビルダ・マシンその他、認定されたビ
ルド・マシンによって、呼び出すことのみができる。
【0142】
[0163]本発明の目的のために、POCおよびDEV展開において、開発者は.warファイルを彼/彼女のクライアント・デバイスからビルドすることができる。SYSにおいて、UATにクラウド・アプリケーション・イメージをプロモートするために、好ましくは、認定されたマシンのような指定されたマシンからそれは行われる。そこでは、開発者はクリア・ケース(ClearCase)ビルド・スクリプトまたはほかの変更制御メカニズムを起動させることができる。
【0143】
[0164]UATおよびPRODの展開のためのクラウド・アプリケーションは、ビルドからプライベート・クラウドへ直接は行かない。開発者がUATのためのクラウドアプリケーション・プロファイルを作成したとき、開発者は、認定されたビルド・マシン上のSYSについてビルドされたクラウド・アプリケーションを選ぶ(pick)。好ましくは、ここで、クリア・ケース・ビルド・ディスクリプションが起動することができる。PRODについて、開発者は、UATにプロモートされたクラウド・アプリケーションを選ぶ。このように、これは、クラウド・アプリケーションと同様に、UATおよびPRODに展開されるクラウド・アプリケーションをメイクする。クラウド・アプリケーションは、クラウド・プロモーション・プロセスにおいて先の環境で試験されている。ただし、アプリケーション・プロモーションについての好ましい方法として上記説明してきたことについて、他の方法が可能であり、なおも本発明の範囲内にあるとすることができるものと理解される。
【0144】
[0165]先に説明した4つの展開環境についてこれからプロモーション・プロセスの観点から説明する。何故ならば、これはクラウド・アプリケーション・プロファイルの作成に
関係するからである。
【0145】
[0166]DEV−開発者がクラウド・アプリケーションについて開発および試験を行った後に、彼/彼女はクラウド・アプリケーションの.warファイルをプライベート・クラウドにエクスポートすることができる。ユーザ・インターフェイスを使用している開発者は、ユーザ・インターフェイス上のアプリケーション・プロファイル・タブを選択することができる。クラウド・アプリケーションの初期ステータスは、下書き中である。開発者は、適切な情報を、クラウド・アプリケーション・プロファイルを完成させるために提供し、それとの関連付けのためにクラウド・アプリケーションを選択する。開発者は、次いで、ステータスを公開済みに変更する。開発者のクラウド・アプリケーションは、適正レベルのクラウド・マネージャによって承認を受けたDEV環境で起動することになる。
【0146】
[0167]SYS−DEVで起動しているクラウド・アプリケーションだけが、SYSにプロモートされることができる。SYSにおいて、クラウド・アプリケーションは、認定されたビルド・マシン上、例えば、クリア・ケース・ビルド・スクリプトを起動しているビルド・マシン上でビルドすることができる。
【0147】
[0168]UAT−SYSで起動しているクラウド・アプリケーションだけが、UATにプロモートされることができる。
【0148】
[0169]PROD−UATで起動しているクラウド・アプリケーションだけが、PRODにプロモートされることができる。ここでは、このようなクラウド・アプリケーションがプライベート・クラウド上においてライブで起動されることになる。
【0149】
[0170] クラウド・アプリケーション・プロファイルを作成し、そして、クラウド・ア
プリケーションのステータスを下書き中から公開済みに変更するための方法について、これから
図15〜22を参照して説明する。
【0150】
[0171]
図15を参照する。全般的に1500において、代表的なクラウド・アプリケーション・コントロール・パネルが、1502で示される。新しいアプリケーション・プロファイルを生成するために、アプリケーション・プロファイル・タブ1504が活性化され、アプリケーション・プロファイル追加タブ1506を有する下部画面を提供することになる。ステータス・ライン1508で見られるように、初期ステータスは常に下書き中である。新規追加ボタン1510が活性化されると、新規アプリケーション・プロファイル追加ウィンドウ1600を表示する。
【0151】
[0172]
図16を参照する。新規アプリケーション・プロファイル追加1600において、クラウド・アリケーションの名前が、名前フィールド1602に入力される。次いで、アプリケーション・コード・フィールド1604において、ボタンが選択されてドロップダウン・リストを設け、特定のクラウド・アプリケーションに割り当てられていた適切なアプリケーション識別子が選択される。プロファイルの残りを完成させることが、これから必要となる。
【0152】
[0173]第一に、アプリケーションのバージョンが、バージョン・フィールド1606に入力される。次いで、ゾーン環境フィールド1608において、ボタンが選択されて、ドロップダウン・リストを設け、展開のための適切な環境が選択される。同様に、全般的に1700において、ゾーン・コード・フィールド1610において、ボタンが選択されて、
図17に示されるドロップダウン・リストのようなドロップダウン・リストを設ける。適切なゾーン・コードが選択されると、ゾーン・コード・フィールド1610にデータを読み込む。
【0153】
[0174]次に、発効日および時間が発効日フィールド1612で選択される。将来日付の選択が承認プロセスが完了するのに可能であり、また、これは、プライベート・クラウドがクラウド・アプリケーションを起動開始する日付となる。発効日が承認なしで経過する場合、承認プロセスが終了しているときには、プライベート・クラウドはクラウド・アプリケーションの実行を開始することになる。失効日フィールド1614を完成させることができるがこれは任意である。
【0154】
[0175]コンテキスト・フィールド1616は、クラウド・アプリケーションについてのコンテキストを含むことになる。例えば、このコンテキスト・フィールドは、http://Cloud.statestreet.com/App1/[default]のような完全な条件つきパス(fully qualified path)をクラウド・アプリケーションに提供する。
【0155】
[0176]要求パターン・フィールド1618において、サービス要求プレフィックスまたは他の文字が付加される。例えば、このフィールドで発見されるルーティングについてのサービス要求プレフィックスは、クラウド・コントローラが提供する。
【0156】
[0177]アプリケーション・イメージ(App Image)フィールド1620にデータを読み込
むために、
図18のイメージ・ブラウザ・ダイアログ・ウィンドウ1800をオープンするボタン1622が活性化される。ここでは、適切なクラウド・アプリケーションが選択される。1802において情報アイコンを選択することによって、
図19の1900で示されるダイアログ・ウインドウが表示される。ダイアログ・ウインドウはクラウド・アプリケーションの詳細を示す。一旦クラウド・アプリケーションの詳細が正しいことが確認されると、関連イメージ・タブ1902が活性化され、
図20の2000における表示ウィンドウをオープンすることになる。
図20に示される表示ウィンドウの情報が検証された後に、
図19に示されるイメージ・ブラウザ・ウインドウと併せてこのウィンドウを閉じる。次いで、
図18の1804において選択されたイメージ・ボタンが活性化され、そして、
図16の1624での保存ボタンが活性化されて新規アプリケーション・プロファイルを保存する。保存が終了すると、クラウド・アプリケーションのステータスを下書き中に設定する。
【0157】
[0178]ステータスを下書き中から公開済みに変更するためには、
図16のステータス・フィールド1626のボタン1628を活性化することが必要となる。これには、
図21の2100で示されるアプリケーション変更プロファイル・ステータス表示ウィンドウをオープンすることになる。新規ステータス・フィールド2102において、2104のボタンが選択されて、ドロップダウン・リストを設け、そして、適切なステータスが選択される。この例では公開済みである。
【0158】
[0179]次に、2106のビュー・アラート・ボタンが活性化され、
図22に示すアラート・ダイアログ・ウィンドウ2200がオープンされることになる。アラートが受理される場合には、2202の受理ボタンが活性化され、クラウド・アプリケーションのステータスが公開済みに変更され、一旦すべての承認が得られたらプライベート・クラウドにおいて始動することができる。しかしながら、アラートの性質のために2204の拒否ボタンが活性化されると、アプリケーションのステータスは公開済みに変更されることはなく、プライベート・クラウドにおいて始動されないことになる。
【0159】
[0180]アラートについて、クラウド・アプリケーションの開発および適用における使用に関して、全般的に説明してきた。これより、アラートについてさらに詳細に説明する。
【0160】
[0181]クラウド・アプリケーション・プロファイルが下書き中のステータスである間、
クラウド・アプリケーション開発者はクラウド・アプリケーション・プロファイルの変更を行うことができる。自動審査サービスは、クラウド・アプリケーション・プロファイルに対して行われるあらゆる変更に適用されるルール・セットである。
【0161】
[0182]アラートは、不合格となったあらゆる自動審査に対して発生される。先に述べたように、アラートは、情報(INFO)、警告(WARN)、エラー(ERROR)、および致命的(FATAL)に分類される。好ましくは、開発者は、各クラウド・アプリケーション・プロファイルの変更と関連付けられたアラートを精査することになる。さらに、適切な承認者、クラウド・マネージャは、それらがクラウド・アプリケーション・プロファイルと関連付けられた非INFOアラートであるときにはアラートを精査しなければならず、その後、クラウド・アプリケーションは、プライベート・クラウドへのライブでの提供に進むことができる。
【0162】
[0183]先に説明したように、承認者は、精査後にアラートを受理または拒否することができる。承認者がアラートを受理する場合、クラウド・アプリケーションは開発および適用プロセスに前進する。しかしながら、承認者がアラートを拒否する場合には、クラウド・アプリケーションは、クラウド・アプリケーション・プロファイルのステータスを拒否済みアラートの理由コードと共に拒絶済み(REJECTED)に設定することによって後退する。発生したアラートは、電子メールまたは他のメッセージング方法により承認者に自動的に送信することができ、その結果、このようなアラートの発生に対してアラートされる。
【0163】
[0184]一般的には、自動審査メカニズムは、クラウド・アプリケーション・プロファイルにおける問題や課題を識別するためのものである。この自動審査はルールを含む。このルールは、検査した任意のルールが不合格となるときに、自動アラートを発生することになるルールを含む。自動審査ルールは、クラウド・マネージャによって作成される。
【0164】
[0185]アラートは、クラウド・アプリケーション・プロファイルの問題および課題と関係している、そして、一旦発生すると、クラウド・マネージャの適正レベルの承認者によって受理または拒否されなければならない。クラウド・マネージャがクラウド・アプリケーション・プロファイルと関連付けられたアラートを受理する場合、クラウド・アプリケーションはプライベート・クラウドにおいてライブで表示される方へプロセスにおいて前進することになる。アラートが拒否される場合、クラウド・アプリケーションは拒絶され、クラウド・アプリケーション・プロファイルのステータスは下書き中に変更される。この場合には、開発者は題を解決しなければならず、その後にアプリケーションが公開済みに前進することができる。
【0165】
[0186]
図23Aを参照する。全般的に2250において、自動審査ルール・アプリケーションのアプリケーションと関連付けられたアクションに関係する代表的な図を示している。2252において、自動審査ルールは、関連付けられたクラウド・アプリケーション・プロファイルが下書き中のステータスである間に変更されたときに、クラウド・アプリケーションに適用される。「検出」段階では、アラートは、不合格となるあらゆる自動審査ルールごとに発生される。先に述べたように、アラートは、情報、警告、エラー、または致命的と分類される。
【0166】
[0187]2254の「精査」段階において、開発者は、クラウド・アプリケーション・プロファイルへのあらゆる変更ごとの後に、アラートを精査する。クラウド・マネージャの承認者は、あらゆるアラートを精査する。「制御」段階において、クラウド・マネージャの承認者は、精査後にそのアラートを受理または拒否しなければならない。
【0167】
[0188]自動審査ルールの代表的なセットが、全般的に
図23Bの2300において示される。
図23Bを参照すると、自動審査ルールの代表的なセットを2302で示す。図示
されるルールが10個あるが、この10個のセットは例示にすぎない。各ルールに関しては、2304で示されるルールの厳正性がある。この厳正性は、4つのアラート・ステータス、すなわち、情報、警告、エラー、致命的のうちの1つによって定義される。2306において、アラートについて説明される。つまり、任意のクラウド・アプリケーション・プロファイル・ステータスへの変更がある際に、自動審査ルールの各々が検査され、いかなる違反がある限りにおいて、アラートはそのクラウド・アプリケーションに対して申し出る。クラウド・アプリケーションが開発および適用のプロセスにおいて前進できるのは、適切な承認者によるこれらアラート受理に応じたときのみである。
【0168】
[0189]
図4において、ユーザ・インターフェイス402は、ダッシュボード406を示す。代表的なダッシュボードの表示が、全般的に
図24の2400に示される。図示のように、クラウド・アプリケーションおよびゾーンは、クラウド・アプリケーションの健康状態(health)についての調査を可能にするために、詳細にまたは視覚的にビューすることができる。
図24において、2401で示されるクラウド・アプリケーションについて、アプリケーションの詳細が2402で示され、仮想マシンの詳細が2406で示され、そして、仮想詳細(virtual detail)が2408で示される。さらに、ゾーンのグラフィック表示について2410に示される。
【0169】
[0190]2410において、ゾーンのグラフィック表示は、2412のTX/SLO(トランザクション/SLO)および2418のユーザに関する健康状態が非常に良好であることを示す。2416で示される物理マシンの健康状態はこれほどは良好ではない。何故ならば、インジケータの矢印がイエロー域または警告域の近くにあるからである。最後に、2414で示される仮想マシンの健康状態は良好でない。何故ならば、インジケータの矢印がレッド域にあるからである。好ましくは、インジケータの矢印がレッド域にあるために、クラウド・マネージャはこれに対してアラートされ、そして、可能であれば、仮想マシンと関連付けられた負荷(loading)課題を是正する。
【0170】
[0191]ダッシュボード・ディスプレイ2400上に表示される様々なタブの選択があり得、これが、システム・アプリケーションおよびインフラストラクチャに関する付加的な健康状態情報を提供するものと理解される。
【0171】
[0192]
図6および7に関してサービス・レジストリ524の説明において、サービス・レジストリのコンテンツについて図示していないが説明してきた。また、サービス・レジストリを通じて、認可されたシステム・ユーザが、サービス・レジストリの入力に関係するウェブ・サービス詳細へのアクセス権を有することについて先に説明してきた。
図25および26において、サービス・レジストリ・ウインドウおよびウェブ・サービス詳細ウィンドウの代表的な画面表示が示される。
【0172】
[0193]
図25を参照する。全般的に2500において、代表的なサービス・レジストリ表示ウィンドウが示される。2502で示すように、各レジストリ入力は、サービスに関する番号、名前、説明および追加情報を有する。この情報は、サービスを認可されたシステム・ユーザによって検索可能にする。認可されたシステム・ユーザがサービス・レジストリでの特定入力に関する詳細情報を要望する場合、
図26に示されるようなウェブ・サービス詳細ウィンドウをオープンするサービス入力を選択することによって取得することができる。
【0173】
[0194]
図26を参照する。全般的に2600において、ウェブ・サービス詳細表示2604のウィンドウを有するサービス・レジストリ表示2602が示されている。認可されたシステム・ユーザがサービス・レジストリ・ウインドウ2602内のサービス・レジストリ番号511446を選択する場合、サービス・レジストリ番号511446について
の詳細表示ウィンドウ2604をオープンし、そのレジストリ番号に関する具体的な詳細情報を提供する。表示ウィンドウ2604において、サービス・レジストリ番号511446に関する基本情報が示される。しかしながら、追加タブのいずれかを選択することによって、追加の詳細情報は、このレジストリ番号について提供されることになる。
【0174】
[0195]
図27〜32を参照する。代表的なクラウド・アプリケーション展開ワークフローについて説明する。
【0175】
[0196]
図27を参照する。全般的に2700において、クラウド・アプリケーション展開ワークフローが、POC/DEV/SYS環境について示される。POC/DEV/SYSは、ひとまとめにしてゾーンを形成する。この図は、クラウド・アプリケーションがPOC、DEVおよびSYS環境に展開されるときに、クラウド・アプリケーション・プロファイルが行わなければならないプロセスについて示している。
【0176】
[0197]2702において、開発者はクラウド・アプリケーション・プロファイルへのアクセス権を有することになり、2704で示すように、下書き中のステータスである限りプロファイル・ファイルのフィールドを編集する。一旦開発者がクラウド・アプリケーション・プロファイルの変更に満足すると、クラウド・アプリケーション・プロファイルのステータスは2706で公開済みに変更される。
【0177】
[0198]次に、好ましくは、筆頭の開発者がアプリケーション・プロファイルを精査することになり、それに満足すると、2208で示すように、彼/彼女は、クラウド・アプリケーションのステータスを筆頭者(LEAD)承認に変更する。しかしながら、筆頭の開発者が満足しない場合には、彼/彼女は2710で拒絶済みとして示すように、アプリケーションを拒絶することができる。そして、クラウド・アプリケーション・プロファイルのステータスを下書き中に戻す。
【0178】
[0199]筆頭の開発者がクラウド・アプリケーションを承認する場合、クラウド・アプリケーション・プロファイルは2711でクラウド・コントローラに転送される。2712に示すように、この時点で引き継ぎを行ったクラウド・コントローラは、クラウド・アプリケーション・プロファイルを検証し、クラウド・アプリケーション・プロファイルのステータスをスケジュール済みに変更する。プライベート・クラウドへの展開の時間になるまで、アプリケーション・プロファイルはそのステータスにとどまることになる。
【0179】
[0200]通例、クラウド・アプリケーションを展開する時間は、クラウド・アプリケーション・プロファイルにおいて示される。展開の時間がくると、クラウド・コントローラは、クラウド・アプリケーションのインストールするための提供(provisioning)を同時に実行しながら、2713において、クラウド・アプリケーション・プロファイルのステータスをインストール中に変更する。クラウド・コントローラは、サービス・インベントリ・ファイルを抽出し、サービス・メタデータおよびアクセス制御情報、2715のeSF更新、ならびに2714のサービス・レジストリ更新を読み取る。一旦インストールが完了すると、クラウド・アプリケーション・プロファイルのステータスは2716で起動中に変更される。好ましくは、起動中とは、プライベート・クラウドにおいてクラウド・アプリケーションがライブで起動していることを意味する。
【0180】
[0201]
図28を参照する。全般的に2800において、クラウド・アプリケーション展開ワークフローがPOC/DEV/SYS環境について示されている。UAT/PREPROD/PRODは、ひとまとめにしてゾーンを形成する。
図28において、2704の下書き中、2706の公開済み、2708の筆頭者承認、2710の拒絶済み、2712のスケジュール済み、2713のインストール中、2715のeSF更新および2714
のレジストリ更新に関するワークフロー・プロセスは、
図27のそれらと同様である。したがって、
図27に関するこれら項目の説明が同等に適用され、参照によりここに組み込むものとする。
【0181】
[0202]UATおよびPROD環境へのクラウド・アプリケーションを展開するときに、ワークフローは2708で筆頭者承認の後にさらに3つの承認を要求する。これらの承認は、2802の管理者承認、2804のSQA承認および2810のビジネス承認を含む。これら追加承認より多いまたは少ない承認とすることができ、なおも本発明の範囲内にあるものとすることができる。
【0182】
[0203]
図29を参照する。全般的に2900において、非常事態についてのクラウド・アプリケーション展開ワークフローが示される。
図29において、2704の下書き中、2706の公開済み、2708の筆頭者承認、2710の拒絶済み、2802の管理者承認、2804のSQA承認、2810のビジネス承認、および2712のスケジュール済みに関係するワークフロー・プロセスは、
図28のそれらと同一である。ただし、2708の筆頭者承認および2802の管理者承認が開発者2702の一部であり、また、2804のSQA承認および2810のビジネス承認が非常時承認2904を含む代替のフロー2902でグルーピングされることを除く。したがって、
図28に関するこれらの項目の説明が同様に適用され、参照により組み込むものとする。
【0183】
[0204]クラウド・アプリケーション・プロファイルを非常時の展開として移行することを開発者が要求する場合に、
図29のワークフローが用いられる。非常時の展開ワークフローにおいて、SQA承認およびビジネス承認、2904で非常時承認へのアクセス権を有する認可された人によって、スキップすることができる。好ましくは、非常時ワークフローは、前に展開へ移動することを必要とする、予想外であるが、クリティカルな技術変更を展開するためのものである。この技術変更は、緊急に展開へと前進する必要がある。
【0184】
[0205]
図30を参照する。全般的に3000において、モラトリアム・クラウド・アプリケーション展開ワークフローを示している。
図29において、2704の下書き中、2706の公開済み、2708の筆頭者承認、2710の拒絶済み、2802の管理者承認、2804のSQA承認、2810のビジネス2712のスケジュール済み、および2904の非常時承認に関係するワークフロー・プロセスは、
図29のそれらと同様である。したがって、
図29に関するこれらの項目の説明が同等に適用され、参照により組み込むものとする。
【0185】
[0206]クラウド・アプリケーションが毎月のモラトリアムまたは他の一定の期間の間に移行される必要があるときに、モラトリアム展開ワークフローが用いられる。例えば、1ヵ月の最終営業日と第1営業日とを一致させることができる。この間は、ライブでのクラウド・アプリケーションの変更が制限される。
【0186】
[0207]
図30によれば、代替のワークフロー2902が、3002のモラトリアム承認1および3004のモラトリアム承認2を含む。これら後者の承認は、企業内で高位レベルのエンティティから得られる。
【0187】
[0208]
図31を参照する。全般的に3100において、展開プロセスからアプリケーションを後退させるためのクラウド・アプリケーション展開ワークフローを示している。クラウド・アプリケーションの展開がクラウド・アプリケーションにおいて予想外の故障という結果となるとき、プライベート・クラウドから後退されるために展開されたクラウド・アプリケーションのバージョンが必要となることがある。
【0188】
[0209]展開されたクラウド・アプリケーションで課題が検出されるとき、アプリケーションを取り消すかどうかの決定がなされる。これは、アプリケーションの「取消」ファイルの作成によって行うことができる。このファイルは、クラウド・アプリケーションについてのバイナリを用いて作成することができる。このバイナリは、クラウド・アプリケーションが課題を有する前に展開されたものである。取消のプロファイルは、これらのバイナリを用いている開発者によって作成される。
【0189】
[0210]再度
図31を参照する。取消アプリケーション展開ワークフローを視覚的に示している。3102において、展開されたクラウド・アプリケーションのバージョンで検出された課題が一旦存在すれば、取消プロファイルを作成および使用すべきかどうかについて決定しなければならない。
【0190】
[0211]取消プロファイルを作成することが決定された場合は、このプロセスは3104へ進む。3104において、取消プロファイルは、アプリケーション・コントロールパネルを用いて作成することができる。取消プロファイルを作成する際、以前に展開したクラウド・アプリケーションだけを使用することができる。さらに、一旦取消プロファイルが作成されると、それは変更することができない。行動ログは、取消プロファイルに関係した履歴の経過を追う。
【0191】
[0212]一旦取消ファイルが作成されると、このプロセスは3106へ進む。ここでは、適切な承認を得ることが必要となる。少なくとも
図27〜30および32に示したワークフローと整合するようにして、これらの承認が得られる。
【0192】
[0213]
図32を参照する。全般的に3200において、だいたいのクラウド・アプリケーション展開ワークフローを示しており、自動アラートが組み込まれる。
図32において、2704の下書き中、2706の公開済み、2708の筆頭者承認、2710の拒絶済み、2802の管理者承認、2804のSQA承認、2810のビジネス承認および2712のスケジュール済みに関するワークフロー・プロセスは、
図29におけるそれらと同様である。したがって、
図29に関するこれらの項目の説明が同等に適用され、参照により組み込むものとする。
【0193】
[0214]
図32に示されるワークフローは、各段階における自動審査ルールの使用を組み込む。2704において、下書き中のステータスを有するクラウド・アプリケーションは3202において変更されるクラウド・アプリケーション・プロファイルを有し、次いで、自動審査ルールは、3204においてその変更を評価する。これにより、3206でアプリケーション・プロファイル・アラートを発生することになる。開発者は、次いで、3208においてアラートを生じさせた課題を解決する。この解決が適切なものと考えられる場合には、クラウド・アプリケーションは2706の公開済みとなる。しかしながら、3205の代替のワークフローにおける各段階で、各承認レベルは、アプリケーションが次の承認ステージへ移るために、3010、3012、3014、および3016に示すように、アラートを受理しなければならない。承認された段階のいずれかでアラートが拒否された場合は、ワークフローは3218でアラートを拒否するために移り、2710でアプリケーションを拒絶する。アプリケーションがこのようにして拒絶されるとき、そのステータスは下書き中に戻され、このプロセスはクラウド・アプリケーションをプライベート・クラウドの展開に移すために、再度開始しなければならない。
【0194】
[0215]本発明のシステムおよび方法における本実施形態やその部分は、コンピュータ・ハードウェア、ファームウェア、および/またはプログラム可能なコンピュータやサーバ上で起動できるコンピュータ・プログラムに実装することができる。プログラム可能なコンピュータかサーバは、それぞれプロセッサおよび当該プロセッサによって読み取り可能
な(揮発性および不揮発性メモリ、ならびに/またはストレージ・エレメントを含んだ)ストレージ媒体を含む。いかなるコンピュータ・プログラムも、コンピュータ・ベース・システムの内側および外側で通信するために、高位レベル手順であるかオブジェクト指向プログラミング言語で実装することができる。
【0195】
[0216]いかなるコンピュータ・プログラムも、例えばストレージ媒体(例えば、CD―ROM、ハードディスクや磁気ディスケット)またはデバイス(例えば、コンピュータ周辺機器)のような製造品上に格納することができる。コンピュータ・プログラムは、汎用または専用目的のプログラム可能なコンピュータによって読み取り可能であり、ストレージ媒体やデバイスがコンピュータで読み取られて本実施形態の機能を実行する際に、そのコンピュータを構成し動作させる。本実施形態やその部分はまた、コンピュータ・プログラムを用いて構成されるマシン読み取り可能ストレージ媒体として実装することもできる。そこでは、実行時に、コンピュータ・プログラム内の命令によって先に述べた本実施形態の機能を実行するようにマシンに動作させる。
【0196】
[0217]本発明のシステムおよび方法における本実施形態やその部分は、様々なアプリケーションで使用することができる。本実施形態やその部分はこの点では制限されていなが、本実施形態やその部分は、他の電気コンポーネントにおいて、マイクロコントローラ、汎用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、縮小命令セット・コンピューティング(RISC)および複合命令セット・コンピューティング(CISC)のメモリデバイスを用いて実施することができる。さらには、先に説明した本実施形態やその部分はまた、メイン・メモリとして称される集積回路ブロック、キャッシュメモリ、マイクロプロセッサによって実行される電気命令を格納、または算術演算において使用できるデータを格納する他のタイプのメモリを用いて、実施することができる。
【0197】
[0218]本説明は、いかなるコンピューティング環境または処理環境においても適用可能である。本実施形態またはその部分は、ハードウェア、ソフトウェアまたはこれら2つの組合せにおいて実施することができる。例えば、本実施形態やその部分は、1以上のプログラム可能ロジック(例えば、ASIC)、論理ゲート、プロセッサおよびメモリのような回路を使用して実施することができる。
【0198】
[0219]開示した実施形態に対するさまざまな変更態様が当業者にとって明らかであり、一般原則を他の実施形態およびアプリケーションに適用することができる。このように、本発明は、本明細書に図示および説明した実施形態に限定されることを意図するものではない。