(57)【特許請求の範囲】
【請求項１】
クラウド・コンピューティング環境用およびクラウド・コンピューティング環境内のクラウド・アプリケーションの開発のためのコンピュータ・ベースの方法であって、前記クラウド・アプリケーションが前記クラウド環境に接続することを認可されたコンピュータ・システム・ユーザによってアクセスおよび起動されることが可能であり、当該方法が、（Ａ）前記クラウド環境に接続できるコンピュータ・ベース・デバイス上で、前記クラウド・アプリケーションを開発し、少なくとも、
（１）前記クラウド・アプリケーションについての少なくとも１つのウェブ・サービスを作成すること、
（２）ユーザ・インターフェイス・コンポーネントを含むユーザ・インターフェイスを作成すること、
（３）前記クラウド・アプリケーションについてのデータを格納するためのジョブを作成すること、
によって、前記開発されたクラウド・アプリケーションをクラウド環境における展開のために準備するステップと、
（Ｂ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ａ）で作成された前記少なくとも１つのウェブ・サービスにしたがって、前記クラウド・アプリケーションに関連付けられたメタデータを更新するステップと、
（Ｃ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ｂ）にしたがって前記クラウド・アプリケーションに関連付けられた前記更新されたメタデータを用いて、少なくともサービス定義およびサービス・インベントリ・ファイルを更新するステップと、
（Ｄ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ｃ）で更新された前記少なくとも更新されたサービス定義およびサービス・インベントリ・ファイル、ならびに前記ステップ（Ａ）で作成された前記ユーザ・インターフェイスおよびジョブをバンドルするために、ウェブ・アーカイブ・ファイルをビルドするステップと、
（Ｅ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ｄ）でビルドされた前記ウェブ・アーカイブ・ファイルをバンドルし、前記クラウド環境における展開のためのクラウド・アプリケーションを作成するステップと、
（Ｆ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ｅ）でバンドルされた、前記バンドルされたウェブ・アーカイブ・ファイルに関連付いた前記クラウド・アプリケーションを特定するクラウド・アプリケーション・プロファイルを作成するステップと、
（Ｇ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記クラウド環境に接続し、前記ステップ（Ｆ）で作成された前記クラウド・アプリケーション・プロファイルを前記クラウド環境に送信することによって、前記クラウド環境における前記クラウド・アプリケーション・プロファイルで特定される前記クラウド・アプリケーションの展開を少なくとも要求するステップであって、前記要求が受理される場合にはステップ（Ｈ）に、そうでない場合には前記ステップ（Ａ）に進むステップと、
（Ｈ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記クラウド環境における前記クラウド・アプリケーションを展開するために、前記クラウド環境からの承認を得るステップと、
（Ｉ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記クラウド・アプリケーションに関連付けられた前記サービスによって前記クラウド環境のサービス・レジストリを更新するステップと、
（Ｊ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、コンピュータ・システム・ユーザが前記クラウド・アプリケーションに関するデータに少なくともアクセス、変更、および操作するために、前記クラウド環境に対するアクセス・セキュリティを許可レベルに更新するステップと、
（Ｋ）前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、前記ステップ（Ｊ）で前記更新されたアクセス・セキュリティにしたがってコンピュータ・システム・ユーザが利用するために、前記クラウド・アプリケーションを前記クラウド環境にプロモートするステップと
を含む、方法。
【請求項２】
請求項１記載の方法において、前記ステップ（Ｉ）で前記クラウド環境のサービス・レジストリを更新するステップが、前記ステップ（Ａ）（１）で作成された前記少なくとも１つのウェブ・サービスによって前記サービス・レジストリを更新することを含む、方法。
【請求項３】
請求項１記載の方法において、前記ステップ（Ａ）（３）で作成された前記ジョブが、バッチ・ジョブを含み、該バッチ・ジョブが、前記クラウド環境において検索可能なレジストリに対して更新されることを含む、方法。
【請求項４】
請求項１記載の方法において、前記クラウド・アプリケーションがフォアグランド・プロセスおよびバックグラウンド・プロセスを含む、方法。
【請求項５】
請求項４記載の方法において、前記フォアグラウンド・プロセスがウェブ・サービスと前記ユーザ・インターフェイスのコンポーネントとを含む、方法。
【請求項６】
前記バックグラウンド・プロセスがジョブを含む、請求項４記載の方法。
【請求項７】
請求項４記載の方法において、前記クラウド環境に接続できる前記コンピュータ・ベース・デバイス上で、別個のウェブ・アーカイブ・ファイルが前記フォアグランド・プロセスおよび前記バックグラウンド・プロセスについて作成される、方法。
【請求項８】
請求項７記載の方法において、前記ステップ（Ｅ）における、前記ウェブ・アーカイブ・ファイルをバンドルして、前記クラウド環境における展開のためのクラウド・アプリケーションを生成するステップが、前記フォアグラウンド・プロセスおよび前記バックグラウンド・プロセスについてのバイナリをバンドルすることを含む、方法。
【請求項９】
請求項１記載の方法において、前記少なくとも１つのウェブ・サービスが、（ａ）アプリケーション・プログラミング・インターフェイスを提供するサービス、（ｂ）前記サービス・レジストリにおいてウェブ・サービスを検索するための検索カタログ・サービス、（ｃ）クラウド・アプリケーションの機能グループを構成するウェブ・サービスについて、このような機能グループより低いレベルの検索を実施するカタログ閲覧サービス、（ｄ）ウェブ・サービス詳細サービス、を含むサービスにおける少なくとも１つのグループを含む、方法。
【請求項１０】
クラウド・コンピューティング環境用およびクラウド・コンピューティング環境内のクラウド・アプリケーションの展開のためのコンピュータ・ベース・システムであって、前記クラウド・アプリケーションが前記クラウド環境に接続することを認可されたコンピュータ・システム・ユーザによってアクセスおよび起動されることが可能であり、当該システムが、
少なくとも１つのクラウド・データベースにおけるクラウドに収集および格納された情報を分析するためのクラウド・コントローラと、
前記クラウド・コントローラ、サービス・レジストリ、およびクラウド・アプリケーション・ビルダに電気的に接続されたクラウド・スタックであって、前記クラウド・コントローラが少なくともクラウド・ソフトウェア・システムを含み、前記クラウド・スタックが前記クラウドに電気的に接続され、さらに当該コンピュータ・ベース・システムのための少なくとも動作ソフトウェアを含む、クラウド・スタックと、
前記クラウド・コントローラ、前記クラウド・スタック、およびクラウド・アプリケーション・ビルダに電気的に接続された前記サービス・レジストリであって、前記クラウド環境において展開されるクラウド・アプリケーションについてのウェブ・サービスを登録するための少なくともレジスタを含むサービス・レジストリと、
前記クラウド・コントローラ、前記クラウド・スタック、およびクラウド・レジストリに電気的に接続された前記クラウド・アプリケーション・ビルダであって、前記クラウド環境における展開のためにクラウド・アプリケーションをビルドするためのクラウド・アプリケーション・ビルダと
を備える、コンピュータ・ベース・システム。
【請求項１１】
前記少なくとも１つのクラウド・データベースが、少なくとも１つのクラウド・アプリケーション・バイナリを格納する、請求項１０記載のコンピュータ・ベース・システム。
【請求項１２】
前記少なくとも１つのクラウド・データベースが、クラウド・アプリケーション・バイナリおよびモニタリング情報を少なくとも格納する、請求項１１記載のコンピュータ・ベース・システム。
【請求項１３】
請求項１０記載のコンピュータ・ベース・システムにおいて、前記クラウド・ソフトウェア・システムが、オペレーティング・システム・ソフトウェア、仮想マシン・ソフトウェア、ウェブ・サーバ・ソフトウェア、アプリケーション・サーバ・ソフトウェア、ネットワーク・セキュリティ・ソフトウェア、ウェブ・アクセス管理ソフトウェア、データベース・ドライバ・ソフトウェア、アプリケーション・ビルダ・ランタイム・ソフトウェア、およびサードパーティ・ライブラリ・ソフトウェアを含む１つ以上のグループを備える、コンピュータ・ベース・システム。
【請求項１４】
前記クラウド・アプリケーション・ビルダが、前記クラウド環境において展開されるクラウド・アプリケーションのための少なくともコンポーネントを作成するための少なくともソフトウェア開発ツールを含む、請求項１０記載のコンピュータ・ベース・システム。
【請求項１５】
前記ソフトウェア開発ツールが、少なくともウェブ・サービスを開発し、ユーザ・インターフェイスを開発してウェブ・サービスを登録し、およびジョブを開発するためのツールを含む、請求項１４記載のコンピュータ・ベース・システム。
【請求項１６】
請求項１５記載のコンピュータ・ベース・システムにおいて、ユーザ・インターフェイスを開発しウェブ・サービスを登録するための前記ツールが、前記クラウド環境において開発および展開されたクラウド・アプリケーションへのレベル・アクセス制御を提供する、ユーザ・インターフェイスを開発してウェブ・サービスを登録するツールを含む、コンピュータ・ベース・システム。
【請求項１７】
請求項１０記載のコンピュータ・ベース・システムにおいて、前記クラウド・コントローラが、クラウド・アプリケーション展開ワークフローの提供、前記クラウド環境におけるクラウド・アプリケーションを展開する時間および日付の設定、クラウド・アプリケーションに依存する前記クラウド環境のスケーリングという機能の少なくとも１つ以上のグループを提供し、
前記クラウド・アプリケーションが、所与の時間地点において前記クラウドで起動され、クラウド・アプリケーション・ログを走査するための時間および日付をセットし、前記クラウド環境に関連付けられる物理および仮想マシンを検査するための時間および日付をセットし、クラウド・アプリケーション・トランザクションをモニタリングするための時間および日付をセットし、ならびに前記クラウド環境においてエラーが発生したときに前記クラウド環境にアラートを発生させる、
コンピュータ・ベース・システム。
【請求項１８】
前記クラウド・アプリケーション・ビルダが、クラウド・アプリケーション・コンポーネントをビルドするためのソフトウェア・ツールを含む、請求項１０記載のコンピュータ・ベース・システム。
【請求項１９】
請求項１８記載のコンピュータ・ベース・システムにおいて、前記クラウド・アプリケーション・コンポーネントをビルドするための前記ソフトウェア・ツールが、少なくとも１つのウェブ・サービスおよび少なくとも１つのユーザ・インターフェイスを開発するための、ならびに、前記サービス・レジストリにおける少なくとも１つのウェブ・サービスおよび少なくとも１つのジョブを登録するためのツールを少なくとも含む、コンピュータ・ベース・システム。
【請求項２０】
前記少なくとも１つのユーザ・インターフェイスを開発するための、ならびに、前記サービス・レジストリにおける少なくとも１つのウェブ・サービスを登録するための前記ツールが、開発中の前記クラウド・アプリケーションに対するアクセス・レベル制御を提供するツールを含む、請求項１９記載のコンピュータ・ベース・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]本出願は、「クラウド・コンピューティングの自己組織化」(Self-Organizing Cloud Computing)と題した２０１０年７月９日付けの米国仮出願第６１／３６３,０９２号、 35 U.S.C. §119(e)の下での優先権の利益を享受するものである。
【０００２】
[0002]本発明は、クラウド・コンピューティングためのコンピュータ・ベース・システムと方法に関し、より詳細にはプライベート・クラウド・コンピューティングのための、また、プライベート・クラウド内でのクラウド・アプリケーションの開発(development)および適用(deployment)のためのコンピュータ・ベース・システムおよび方法に関するものである。
【従来技術】
【０００３】
[0003]一般的に、クラウド・コンピューティングは、インターネットのようなデジタル・ネットワークを用いた複数のサーバ・ベースの計算リソースの使用およびそのアクセスに関連する。クラウド・システム・ユーザは、クラウドを使用しているクライアント・デバイス、例えばデスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット型コンピュータ、スマートフォン、パーソナル・デジタル・アシスタント（ＰＤＡ）、その他類似するタイプのデバイス（以下これらをまとめて「クライアント・デバイス」または「複数のクライアント・デバイス」と称する）のウェブ・サーバ・サービスにアクセスする。
【０００４】
[0004]クラウド・コンピューティングでは、アプリケーションはクラウド・サーバによって提供および管理される。また、データはクラウド・データベースにリモートに格納される。通例は、クラウド・システム・ユーザは、クラウドに存在するアプリケーションを自身のコンピューティング・デバイス上にダウンロードしたりインストールしたりすることはしない。何故ならば、処理および記憶は、クラウド・サーバおよびクラウド・データベースによってそれぞれ維持されるからである。
【０００５】
[0005]通例は、オンライン・サービスが、クラウド・プロバイダまたはプライベート組織によって提供される。このことは、クラウド・システム・ユーザが、アプリケーション・ソフトウェアを自身の個別のクライアント・デバイス上にインストールする必要性からも明らかである。このように、クライアント・デバイス上に要求されるクライアント・バージョンのアプリケーションがインストールされることなく、クライアント・サービスによって実行および管理されるクラウド・サーバ上のアプリケーションを提供することによって、クラウド・コンピューティングは、古典的なクライアント・サーバー・モデルと異なるものとなる。クラウド・サービスの中央化は、クライアントに提供されるブラウズ・ベースのアプリケーションのバージョンにわたるクラウド・サービス・プロバイダ制御を与える。このことはまた、個々のクライアント・デバイス上において更新されたバージョンのアプリケーションの必要性をも取り除く。
【０００６】
[0006]動作において、クラウド・システム・ユーザは、パブリックまたはプライベートのクラウドに対しログインすることになる。コンピューティングは、次いで、ウェブ・ブラウザ・プロトコルを用いてクライアント／サーバ・ベースで実行される。クラウドはサーバ・ベースのアプリケーションおよびクラウド・システム・ユーザへの全てのデータ・サービスを、前記クライアント・デバイス上にそれから表示される結果と共に提供する。このように、クラウド・システム・ユーザは、クライアント・デバイス上のクラウド・アプリケーションを用いて行われている行為(work)を表示するデータベースにおいてリモートで起動している所望のアプリケーションに対してアクセスすることになる。
【０００７】
[0007]クライアント・デバイスに配置されるクラウド・データベース・ストレージが用いられて、クライアント・デバイス・ディスプレイに出現(appear)されるアプリケーションが作成される。しかしながら、すべての計算および変更がクラウド・サーバによって記録され、また、作成および修正されるファイルがクラウド・データベース・ストレージに永久的に記憶される。
【０００８】
[0008]クラウド・コンピューティングは、実装する際に、動的にスケーラブルかつ仮想化されたリソースを供給することを含む。これにより、物理的な位置についてのクラウド・システム・ユーザのナレッジ、および要求されたサービスをデリバするシステム構成が無くても、クラウド・プロバイダによって実行することができる。このように、クラウド・コンピューティングのインフラストラクチャは、共有データセンタを通じてデリバされるサービスを含む。しかしながら、クライアント側からは、このクラウドはアクセスの単一ポイントとして出現する。
【０００９】
[0009]一般的なクラウド・アーキテクチャは、クラウド・コンピューティング・サービスのデリバリに関わるハードウェアおよびソフトウェア・システムのアーキテクチャを含む。クラウド・コンピューティング・アーキテクチャにおける２つの重要な構成要素は、「フロントエンド」および「バックエンド」である。フロントエンドは、彼／彼女のクライアント・デバイスにおいてクラウド・システム・ユーザが見るものである。これは、ウェブ・ブラウザのようなユーザ・インターフェイスを介してクラウドにアクセスするために用いられるクライアント・デバイス・アプリケーションを含む。クラウド・コンピューティング・アーキテクチャのバックエンドは、クラウド・システム・ユーザが何らのナレッジも有さない、様々なコンピュータ、サーバおよびデータ・ストレージ・デバイスを備えるクラウドそのものである。
【００１０】
[0010]典型的なクラウド・コンピューティング環境内の共有サービスについて、全般的に図１の１００に示している。クライアント１０２は、ウェブ・サービスによるアプリケーション・デリバリについてのクラウド・コンピューティングに依存する内部ソフトウェアを有したクライアント・デバイスである。クラウド・アプリケーション１０４はまた、「Software as a Service (SaaS)」と称されるクラウド・アプリケーション・サービスでもある。これは、クラウド・システム・ユーザのコンピューティング・デバイス上にアプリケーションをインストールおよび起動する必要性を取り除くインターネット上のソフトウェア・デリバリである。これらのアプリケーションはクラウド・アプリケーションであるので、これらアプリケーションにおける保守およびサポートは非常に単純化されている。
【００１１】
[0011]クラウド・プラットフォーム１０６はまた、「Platform as a Service (PaaS)」とも称されるクラウド・プラットフォーム・サービスである。ＰａａＳは、サービスとしてのコンピューティング・プラットフォームおよび／またはソリューション・スタックであり、このサービスは、クラウド・インフラストラクチャおよびクラウド・アプリケーションを使用する。これは、クラウドからのアプリケーションの展開(deployment)を容易にする。
【００１２】
[0012]クラウド・インフラストラクチャ１０８はまた、「Infrastructure as a Service (IaaS)」とも称されるクラウド・インフラストラクチャ・サービスである。ＩａａＳは、通例、プラットフォームの仮想化という形態のサービスとしてコンピュータ・インフラストラクチャをデリバリするものである。クラウド・インフラストラクチャ・サービスは、物理マシン上で起動する仮想マシンを動作させるデータセンタの形態とすることができる。
【００１３】
[0013]サーバ１１０は、クラウドのサーバ層に関係する。これは、クライアント１０２に対してクラウド・サービスをデリバリするためのコンピュータ・ハードウェアおよびソフトウェアを含む。
【００１４】
[0014]先に述べたように、クラウドは、パブリックまたはプライベートなものとすることができる。また、両方の要素を含むことができる他のクラウド構成もある。いくつかの周知のクラウド・タイプについてこれから簡単に述べる。
【００１５】
[0015]「パブリック・クラウド」は、リソースがサードパーティ・プロバイダからウェブ・アプリケーションおよびウェブ・サービスを用いてインターネットを通じて動的に配給されるクラウドである。
【００１６】
[0016]「コミュニティ・クラウド」は、いくつかの組織が同程度の要件を有し、クラウド・コンピューティングの利点を実現するためにインフラストラクチャを共有しようとして確立されるものである。
【００１７】
[0017]「複合型(hybrid)クラウド」は、サービスをいくつかの企業内(in-house)の方法に対して従来のやり方によってデリバし、企業(company)で固定化されたデリバリ方法から生じる性能、セキュリティおよびプライバシ上の問題を管理する際における複雑性を管理する技術を提供するための企業の必要性を認識させるものである。複合型クラウドは、パブリック・ストレージ・クラウドおよびプライベート・ストレージ・クラウドの組む合わせを用いる。
【００１８】
[0018]「結合型(combined)クラウド」は、２つのクラウドが結合されるものである。このような構成では、複数の内部および／または外部のクラウド・プロバイダが存在するであろう。
【００１９】
[0019]「プライベート・クラウド」は、基本的には、プライベート・ネットワーク上で動作しているパブリック・クラウドのエミュレーションである。仮想化を通じて、プライベート・クラウドは、仮想マシンの企業ワイド(virtual machines enterprise-wide)上のアプリケーションをホストする能力を企業(enterprise)に与える。このことは、共有ハードウェア・コスト、より良好なサービス・リカバリ、および要求に応じて拡大(scale up)または縮小(scale down)する能力という利点を提供する。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
[0020]しかしながら、より良好なシステムの実装のためのコンピュータ・ベースのプライベート・クラウド・システム、ならびに、クラウド・コンピューティングおよび企業ワイド・ベースのクラウド・アプリケーション開発および適用のための方法における必要性が存在する。
本発明のシステム及び方法は、これらの必要性を解決するものである。
【課題を解決するための手段】
【００２１】
[0021]本発明は、クラウド・コンピューティング、ならびに企業内のプライベート・クラウドにおいてクラウド・アプリケーション開発および展開のためのコンピュータ・ベース・システムおよび方法である。さらに本発明は、プライベート・クラウド・コンピューティングのためのコンピュータ・ベース・システムおよび方法に向けられており、クラウド・インフラストラクチャが、プライベート・クラウド・システムについて開発されたクラウド・アプリケーションの展開および使用によって生じる変更に対し自動で適応し、さらには応答することを可能にする。本発明のプライベート・クラウド・コンピューティング・システムおよび方法は、図１に示されるアプリケーション・レイヤ１０４の一部として組み込むことができるアプリケーション・レイヤおよびサービス・レイヤのような、より高位レベル・レイヤで実装することができる。
【００２２】
[0022]本発明のプライベート・クラウド・コンピューティング・システム及び方法は、好ましくは、クラウド・コントローラ、クラウド・スタック、サービス・レジストリ、およびクラウド・アプリケーション・ビルダを含む。クラウド・コントローラは、プライベート・クラウドにインテリジェンスを提供する。クラウド・コントローラは、クラウド・データベースに収集され格納される情報を分析するために用いるルール・エンジンを含む。このデータベースは、クラウド・アプリケーション・バイナリをモニタリング情報と同様に格納する。従って、典型的なファイル・システムに格納されているクラウド・アプリケーションではなく、本発明のコンピュータ・ベース・プライベート・クラウド・システムは、クラウド・アプリケーションをデータベース内に格納し、その結果、当該アプリケーションを簡易で効率的な方法によりクラウド全体において維持することができる。
【００２３】
[0023]クラウド・スタックは、クラウドについてのオペレーティング・ソフトウェアを含む。例えば、クラウド・スタックは、オペレーティング・システム・ソフトウェア、仮想マシン・ソフトウェア、ウェブ・サーバ・ソフトウェア、アプリケーション・サーバ・ソフトウェア、ネットワーク・セキュリティ・ソフトウェア、ウェブ・アクセス管理ソフトウェア、データベース・ドライバ・ソフトウェア、アプリケーション・ビルダ・ランタイム・ソフトウェア、およびサードパーティ・ライブラリを含むことができる。
【００２４】
[0024]サービス・レジストリは、プライベート・クラウドにおいて展開される少なくともクラウド・アプリケーションについてのウェブ・サービス・レジスタを収容する。ウェブ・サービスは多くの異なる方法によって検索可能であり、その結果、開発者は、彼らがプライベート・クラウドに展開するために開発しているクラウド・アプリケーションを用いて再利用できそうなウェブ・サービスおよびこれらの詳細情報をビューすることができる。
【００２５】
[0025]クラウド・アプリケーション・ビルダは、クラウド・コントローラを用いてプライベート・クラウドに展開されるアプリケーションをビルドする手段を開発者に提供する。クラウド・アプリケーション・ビルダは、好ましくは、クラウド・アリケーションのコンポーネントを作成するためのツールを含む。これらのコンポーネントは、好ましくは、プライベート・クラウドに展開されることになるクラウド・アプリケーションごとに、ウェブ・サービス、ユーザ・インターフェイスおよびジョブを含む。このように、クラウド・アプリケーション・ビルディング・ツールは、ウェブ・サービスを開発するためのツール、クラウド・アプリケーションへのアクセス・レベルを制御するためのユーザ・インターフェイスを開発しサービス・レジストリ内のウェブ・サービスを登録するためのツール、およびジョブを開発するためのツールを含む。しかしながら、これらに限定されない。これらのツールを用いると、開発および展開される各クラウド・アプリケーションは、フォアグラウンドのタスク、データ・ストレージおよびバックグラウンドのタスクを管理するためのユーザ・インターフェイスを含む。しかしながら、これらツールは多かれ少なかれ利用することができ、また、それがなおも本発明の範囲内にあるものと理解される。
【００２６】
[0026]クラウド・アプリケーションをビルドすることに関し、好ましくは相違する２つの部分がある。第１は、クラウド・アプリケーションをビルドするための開発時間であり、そして、第２は、クラウド・アプリケーション・フレームワークであろう。開発時間は、クラウド・アプリケーション・フレームワークに従ってアプリケーションをビルドするためのクラウド・アプリケーション・ビルダの使用を含む。クラウド・アプリケーション・フレームワークは、結果として生じるクラウド・アプリケーション・コンポーネントと共に、プライベート・クラウドに展開される。
【００２７】
[0027]本発明のシステムおよび方法は、クラウド・アプリケーションへのアクセスを認可するユーザ役割(user role)を管理する企業セキュリティ財団（「ｅＳＦ」; enterprise Security Foundation）のソフトウェアを含む。したがって、ｅＳＦを通じて、アクセス・セキュリティが、本発明のプライベート・クラウドに提供される。
【００２８】
[0028] 本発明のシステムおよび方法によれば、プライベート・クラウドの様々なウェブ・サーバおよびアプリケーション・サーバにクライアント・デバイスから入来する要求をルーティングすることによってクラウド・アプリケーションおよびウェブ・サービスを利用するために、クラウド・インフラストラクチャ・リソースが、これら要求をバランシングすることにより管理される。
【００２９】
[0029]本発明のプライベート・クラウド内部では、また、クラウド・アプリケーションについてのウェブ・サービスに関連するビジネス・ルールの作成も存在することができる。これらは、より大きなフレキシビリティ、管理、ならびにプライベート・クラウド内で開発および展開されるクラウド・アプリケーションの制御を提供する。
【００３０】
[0030]本発明のプライベート・クラウド・コンピューティング・システム及び方法は、外部サービスをサポートする。したがって、クラウド・データベースへのサービスの提供は、このような外部サービスのアクセスおよび制御についてのセルフサービス・アプリケーションを用いて実施することができる。
【００３１】
[0031]本発明のプライベート・クラウド・コンピューティング・システム及び方法は、ログファイル内の使用データ、およびプライベート・クラウドで起動しているクラウド・アプリケーションに関連付けられた健康状態記録(health record)を分析するためにクラウドをモニタリングするサービスを企図する。分析の結果は、クラウド・インフラストラクチャを拡大または縮小し、アラート処理を制御し、そしてキャパシティ・プランニングを容易にするために用いる。
【００３２】
[0032]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システム及び方法は、企業内でのクラウド・アプリケーションおよびウェブ・サービスの開発および適用を提供する。
【００３３】
[0033]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システム及び方法はまた、クラウド・コントローラ、クラウド・スタック、サービス・レジストリ、およびクラウド・アプリケーション・ビルダを用いて実施することができる。この実施を行う際、クラウド・アプリケーション・ビルダは、クラウド・アリケーション・フレームワークに従ってクラウド・アプリケーションをビルドする。一旦クラウド・アプリケーションがビルドされると、クラウド・スタックおよびサービス・レジストリを有するクラウド・コントローラは、プライベート・クラウドのクラウド・アプリケーションを展開するために用いられる。
【００３４】
[0034]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システム及び方法は、さらに、クラウド・スタックを通じたＰａａＳを提供し、企業システムのニーズを予想することによるＩａａＳ拡張を行い、企業がクラウド・アプリケーション開発および適用のプロセスの標準化を支援する。
【００３５】
[0035]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システム及び方法は、図面を参照して本明細書の残りで更に詳細に説明される。
【図面の簡単な説明】
【００３６】
【図１】[0036]図１は、サービスをクラウド環境で共有できる階層構造についての代表的な図を示している。
【図２Ａ】[0037]図２Ａは、本発明のコンピュータ・ベース・プライベート・クラウド・コンピュータ・システムが有する物理構造の代表的な図を示している。
【図２Ｂ】[0038]図２Ｂは、図２Ａに示した本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムが有する論理構造の代表的な図を示している。
【図３】[0039]図３は、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムが有するクラウド・コンポーネントの代表的な面を示している。
【図４】[0040]図４は、本発明のプライベート・クラウド・コンピューティング・システムのコンポーネントが有する論理構造の代表的な図を示している。
【図５】[0041] 図５は、本発明のコンピュータ・ベース・コンピューティング・システムによるフォアグラウンド・タスク、データ・ストレージおよびバックグラウンド・タスクについてのクラウド・ユーザ・インターフェイス管理のための代表的な図を示している。
【図６】[0042]図６は、サービス・レジストリを含む本発明のプライベート・クラウド・コンピューティング・システムについての論理アーキテクチャの代表的な図を示している。
【図７】[0043]図７は、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムについてのサービス・レジストリ・アーキテクチャの代表的な図を示している。
【図８】[0044]図８は、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムによるクラウド・アプリケーションのウェブ・サービス・コンポーネントにおける開発についてのプロセスの代表的な視覚図を示している。
【図９】[0045]図９は、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムによるバックグラウンド・ジョブ開発およびハンドリングについての代表的な図を示している。
【図１０】[0046]図１０は、ｅＳＦセキュリティを実施するための代表的な図を示している。
【図１１】[0047]図１１は、クラウド・アプリケーションについての機能グループ形成、およびこのように形成された機能グループがアクセス権を有するサービスに関係する代表的な図を示している。
【図１２】[0048]図１２は、機能グループを決定するために用いられるクラウド・アプリケーション役割に関係する代表的な図を示している。
【図１３】[0049] 図１３は、図１２に示される管理者役割用のｅＳＦ権限(entitlement)マップについての代表的な図を示している。
【図１４】[0050] 図１４は、図１２に示されるシステム・ユーザ役割用のｅＳＦ権限マップの代表的な図を示している。
【図１５】[0051]図１５は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中(DRAFT)から公開済み(PUBLISHED)に変更するための代表的な画面表示を示している。
【図１６】図１６は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図１７】図１７は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図１８】図１８は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図１９】図１９は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図２０】図２０は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図２１】図２１は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図２２】図２２は、クラウド・アプリケーション・プロファイルを作成し、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための代表的な画面表示を示している。
【図２３Ａ】[0052]図２３Ａは、自動審査(Auto-Audit)ルールについてのアプリケーションに関連したアクションに関係する代表的な図を示している。
【図２３Ｂ】[0053]図２３Ｂは、クラウド・アプリケーション・プロファイルのステータスが変更したときに検査される自動審査ルールの代表的なリストを示している。
【図２４】[0054]図２４は、本発明のコンピュータ・ベース・プライベート・クラウド・システムによるダッシュボード(Dashboard)についての代表的な画面表示を示している。
【図２５】[0055]図２５は、本発明のコンピュータ・ベース・プライベート・クラウド・システムによる代表的なサービス・レジストリ表示画面について示している。
【図２６】[0056]図２６は、本発明のコンピュータ・ベース・プライベート・クラウド・システムによる代表的なウェブ・サービスの詳細表示画面について示している。
【図２７】[0057]図２７は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【図２８】図２８は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【図２９】図２９は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【図３０】図３０は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【図３１】図３１は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【図３２】図３２は、クラウド・アプリケーション展開ワークフローに関する代表的な図を示している。
【発明を実施するための形態】
【００３７】
[0058]本発明は、クラウド・コンピューティング、ならびに企業内プライベート・クラウドにおけるクラウド・アプリケーションの開発(development)および展開(deployment)のためのコンピュータ・ベース・システムおよび方法に向けられている。本発明はまた、プライベート・クラウド・コンピューティングのためのコンピュータ・ベース・システムと方法にも向けられており、クラウド・インフラストラクチャは、そのプライベート・クラウド・システムのために開発されたアプリケーションの展開および使用によって生じる変更に対し、自動的にまたは実質的に自動的に適応および応答する。本発明のプライベート・クラウド・コンピューティング・システムおよび方法は、図１に示されるアプリケーション層１０４の一部として組み込むことができるアプリケーション・レイヤおよびサービス・レイヤのようなより高位レベル・レイヤにおいて実施される。
【００３８】
[0059]図２を参照する。全般的に２００において、本発明のコンピュータ・ベース・プライベート・クラウド・コンピュータ・システムの物理構造についての代表的な図が示されている。図２において、クラウド・アプリケーション・サーバを形成するクラウド・クラスタおよびルータが２０２に示される。このクラスタは、クラウド・アプリケーション・サーバを形成する４台のサーバ・コンピュータを示す。このように、サービス提供を通じた本発明のプライベート・クラウドにおける負荷バランシングの特徴のために、任意のものを提供することができ、クラウド・アプリケーションまたはウェブ・サービスへの要求をハンドルする。しかしながら、クラスタは、４台よりも多いまたはそれより少ないサーバ・コンピュータを備えることができ、なおも本発明の範囲内にあるものとすることができる。
【００３９】
[0060]外部クラウド・サービス２０４は、クラウド・アプリケーション・サーバ２０２に接続される。図示の外部クラウド・サービスは、ネットワーク・セキュリティをクラウドに提供するために用いるクロークウェア・サーバ(cloakware server)２０６を含む。
【００４０】
[0061]外部クラウド・サービス２０４は、ファイル転送サービス２１０を含む。ファイル転送サービス２１０によって取り扱われるサービスには、クライアント・デバイス−クラウド間、クラウド−外部システム間、および内部クラウドにおけるファイル転送が含まれるが、これに限定されない。これらのファイル転送をセキュリティ目的のために暗号化できるということは、本発明の範囲内にある。
【００４１】
[0062]外部クラウド・サービス２０４に示される最後のサーバは、ｅメール・サーバ２１２である。このサーバは、ｅメール・メッセージをクライアント・デバイスに送信し、およびｅメール・メッセージを送クライアント・デバイスから受信するためのものである。より具体的には、このサーバにハンドルされることが予想されるｅメール・メッセージには、プライベート・クラウドから外部システムへのｅメール・メッセージが含まれ、例えば、プライベート・クラウド内でアラート条件またはサービス・レベル目標（「ＳＬＯ;Service level objective」）違反を通知する。
【００４２】
[0063]クラウド・アプリケーション・サーバ２０２は、アプリケーション・データベース２１４に接続する。好ましくは、このデータベースは、クラウド・アプリケーション・データを格納する。このデータは、例えば、アプリケーション・トランザクション・データ、レポートおよびウェアハウス・データを含む。
【００４３】
[0064]ウェブ・サーバ２１６は、クラウド・アプリケーション・サーバ２０２に接続して、クライアント・デバイス２２２およびクラウド・アプリケーション・サーバ２０２の間に配置される。Ｗｅｂサーバ２１６は、従来どおり、コンテンツをクライアント・デバイスに提供し、また、クラウド・アプリケーション・サーバ２０２に向けられるクライアント・デバイスからの要求を処理するように動作する。ウェブ・サーバ２１６はまた、サイトマインダ(SiteMinder)サーバ２１８にも接続する。好ましくは、サイトマインダ・サーバ２１８は、認証サービスの形態でウェブ・アクセス管理をウェブ・サーバ２１６に提供する。
【００４４】
[0065]クライアント・デバイス２２２およびウェブ・サーバ２１６の間に配置される負荷バランサ２２０は、クラウド・インフラストラクチャ内のクラウドにおいて起動しているクラウド・アプリケーションの分散(distribution)をバランシングするためのサービス提供を行う。より具体的には、負荷バランサ２２０は、数多くのウェブ・サーバ間で入来するＨＴＴＰ要求を負荷バランシングする。数多くのウェブ・サーバの１つのみを図２Ｂに示す。
【００４５】
[0066]図２Ｂを参照する。全般的に２３０において、図２Ａに示した本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムの論理構造の代表的な図を示している。負荷バランサ２２０は、ウェブ・サーバのプールに入来するＨＴＴＰ要求をバランシングし、そして、ウェブ・サーバのようなクラウド・インフラストラクチャを、上りおよび下りについてトラフィックのニーズを満たすようにスケーリングする。Ｗｅｂサーバ２１６／２１８は、Ｗｅｂサーバおよびシングル・サインオン・ベースの認証エージェントの機能を実行する。
【００４６】
[0067]ウェブ・サーバは、アプリケーション・ルータに要求をルーティングする。アプリケーション・ルータは、アプリケーション・サーバ２０２の一部であるルータのクラスタ形態である。アプリケーション・ルータは、クラウド・アプリケーション・サーバ・クラスタ内でウェブ・サービスに要求をルーティングする。クラウド・アプリケーション・サーバ・クラスタはまた、クラウド・アプリケーション・サーバ２０２の一部でもある。各サービスは、固有ＩＤによって識別される。
【００４７】
[0068]アプリケーション・サーバ・クラスタは、ウェブ・サービスをホストし、アプリケーション・ルータ・クラスタからこのようなサービスについての要求を受信する。アプリケーション・サーバ・クラスタはまた、ジョブを収容する。ジョブは、アプリケーション・サーバ・クラスタ内に常駐するクラウド・アプリケーションの一部であるバッチ・ジョブである。
【００４８】
[0069]アプリケーション・サーバ・クラスタのウェブ・サービスは、企業データを含むアプリケーション・データベース２１４に接続する。アプリケーション・データベースは、プライベート・クラウドの外側に常駐する。企業データは、オンライン・トランザクション処理（「ＯＬＴＰ」）およびウェアハウス・データを含み、これらは別々に格納される。好ましくは、オラクル・インスタンスとして示される複製(replicated)インスタンスが、ＯＬＴＰ用のデータを保有する。
【００４９】
[0070]図３を参照する。全般的に３００において、本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムのコンポーネントが示されている。これらコンポーネントについてこれから説明する。
【００５０】
[0071]本発明のコンピュータ・ベース・プライベート・クラウド・コンピューティング・システムの主要なコンポーネントは、クラウド・コントローラ３０２、クラウド・スタック３２４、サービス・レジストリ３４５およびクラウド・アプリケーション・ビルダ３５０を含む。先に述べたように、クラウド・コントローラ３０２は、本発明のコンピュータ・ベース・プライベート・コンピューティング・システムにインテリジェンスを供給する。クラウド・コントローラ３０２の一般的な機能は、展開ワークフローをハンドルすること、クラウド・アプリケーションを展開するための時間および日付を設定すること、起動することになるクラウド・アプリケーションに従ってプラットフォーム・ニーズの拡大および縮小をすること、物理マシンおよびバーチャル・マシンを点検するための時間および日付を設定すること、クラウド・アプリケーション・ログを走査するための時間および日付をセットすること、クラウド・アプリケーション・トランザクションをモニタリングするための時間および日付を設定すること、およびエラーがプライベート・クラウド内で発生したときにアラートを送ることである。展開ワークフローについては、図２７〜３２に関してこれよりより詳細に説明する。
【００５１】
[0072]クラウド・コントローラ３０２の有する変更制御(Change Control)サービス３０８は、クラウド・アプリケーションのセットアップに関連付けられる。変更制御サービス３０８は、クラウド・アプリケーション用に作成されるバンドルされたバイナリを受け入れて、認可されたシステム・ユーザが、クラウド・アプリケーション・プロファイルを作成および更新し、ならびに特定のクラウド・アプリケーションに関する情報を閲覧することを許可する。クラウド・プロファイルの作成は、既にプライベート・クラウドに展開されてきたクラウド・アプリケーションのためのものであり、起動されることになる適切なクラウド・アプリケーションを特定する。
【００５２】
[0073]変更制御サービス３０８は、認可されたユーザが、識別フィールドのない既存のプロファイルの記載(description)をコピーすることを許可し、その結果、新規のクラウド・アプリケーションを記載するために用いることができる。変更制御サービス３０８はまた、認可されたユーザが、既存のクラウド・アプリケーション・プロファイルを閲覧して、それらが収容する情報を精査(review)することを許可する。さらに、変更制御サービス３０８は、認可されたユーザが、関連付けられたアプリケーション・バイナリを含む既存のアプリケーション・プロファイルを修正することを許可する。
【００５３】
[0074]変更制御サービス３０８は、認可されたユーザがアプリケーション・プロファイルのステータスを変更することを許可する。例えば、この機能を用いると、認可されたユーザであれば、クラウド・アプリケーションのステータスを「下書き中(DRAFT)」から「公開済み(PUBLISHED)」に変更できるだろう。しかしながら、他のステータスへの変更がなおも本発明の範囲内にあるとすることができるものと認識される。
【００５４】
[0075] 変更制御サービス３０８により、認可されたシステム・ユーザが、クラウド・アプリケーションのアプリケーション・ステータスを閲覧して、クラウド・アプリケーションの現在および直前のステータスを精査することを可能にする。変更制御サービス３０８はまた、認可されたシステム・ユーザが、クラウド・アプリケーションに関連付けられたプロパティを閲覧し、そして、それらプロパティを編集することを可能にする。
【００５５】
[0076]上記説明した変更制御サービス３０８の特徴は、好ましい特徴のみである。変更制御サービス３０８が、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるものとすることができることを意図している。
【００５６】
[0077]再度、クラウド・コントローラ３０２を参照すると、自動審査ルール(Auto-Audit rule)が３１０に示される。自動審査ルール３１０は、クラウド・アプリケーション・プロファイル・ステータスが変更されるときに検査される特定のルールに向けられる。自動審査ルール３１０はシステムについて構成され、通例では、クラウド・マネージャだけがこれらのルールを変更することができる。自動審査ルール３１０は、好ましくは、クラウド・アプリケーション・プロファイルに行われるあらゆる変更に適用されるルールのセットを含む。アラートは、この自動審査ルールに不合格になる度に発生される。自動審査ルール３１０について、図２３Ａおよび２３Ｂに関して更に詳細に説明する。
【００５７】
[0078]クラウド・コントローラ３０２は、３１２においてプロビジョニング・サービスを示す。プロビジョニング・サービス３１２は、クラウド・コントローラのルール・エンジンによって発行される展開に関連したコマンドを実行する役割を果たす。プロビジョニング・サービス３１２は、クラウド・アプリケーション・インスタンスを自動的に作成、シャット・ダウン、および再開することになる。ここでは、インスタンスは起動しているアプリケーションのシングル・コピーとなる。プロビジョニング・サービス３１２は、プロビジョニングの実施のために、プラットフォーム・インフラストラクチャと相互作用する。動作において、クラウド・アプリケーションを起動する前に、プロビジョニング・サービス３１２は、クラウド・アプリケーションを起動し、そしてインフラストラクチャに提供するために必要となる資産(asset)を決定する。
【００５８】
[0079]上記説明したプロビジョニング・サービス３１２の特徴は、好ましい特徴だけである。プロビジョニング・サービス３１２は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができることを意図している。
【００５９】
[0080]クラウド・コントローラ３０２は、３１４においてモニタリング・サービスを示している。モニタリング・サービス３１４は、様々なクラウド・アプリケーションの少なくとも動作上の性能についての情報をキャプチャする。アプリケーション・コントロールパネルおよびダッシュボードを通じたユーザ・インターフェイスが、このキャプチャした情報を彼／彼女のクライアント・デバイス上のシステム・ユーザに可視なものとする。さらに、情報は、ゾーンによって可視なものにすることができる。ゾーンは認可されたユーザによって作成され、本発明の目的を達成するために、ゾーンは予め決められたコンピュータのグループとして定義される。企業または他のタイプのグループ化の分類(division)によって、このようなコンピュータは、地域的にグループ化することができる。このように、ゾーンは、例えば、展開、システム・テスト、システム・ユーザによる受け入れ試験および製造のような環境の隔離のためのクラウドのセグメントを分離して、区別する手段となり、異なる物理位置およびデータセンタを識別して、素早い災害救助を可能とする。
【００６０】
[0081]モニタリング・サービス３１４はまた、認可されたユーザが、クラウド・サーバ構成をゾーンによって詳細フォーマットで閲覧し、クラウド・アプリケーションがどのようにゾーンまたはユーザが定義した基準によって用いられているかを示すトランザクションのリストを閲覧することを許可する。さらに、モニタリング・サービス３１４は、認可されたユーザが、プライベート・クラウドに関して特定クラウド・ユーザが何をしてきたかについて示す活動ログを閲覧することを許可する。認可されたユーザはまた、クラウドに関する物理マシン仮想マシン上のデータ、およびＳＬＯ違反に関するデータのグラフィカル表現を閲覧することもできる。モニタリング・サービス３１４は、認可されたユーザが、プライベート・クラウドに格納されるクラウド・アプリケーションに関する情報を閲覧し、現在、アクティブ状態であるクラウド・アプリケーションに関する情報を閲覧し、クラウド・アプリケーションに関して履歴データを閲覧すること許可する。さらには、モニタリング・サービス３１４は、認可されたユーザがＳＬＯ閾値を設定および更新し、ＳＬＯ統計情報を精査し、そして、どのようなエラーがクラウド・アプリケーション内で発生しているかに基づきアクションすることを許可する。
【００６１】
[0082]上記説明したモニタリング・サービス３１４の特徴は、好ましい特徴だけである。モニタリング・サービス３１４は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができることを意図している。
【００６２】
[0083]クラウド・コントローラのアラート・サービス３１６は、開発および展開プロセスにおけるクラウド・アプリケーションのステータス変化を示すために生成される。アラート・サービス３１６によって発生するアラートは、自動審査ルールに関連付けられる。アラートは、「情報(INFO)」、「警告(WARN)」、「エラー(ERROR)」および「致命的(FATAL)」のアラートとして分類される。クラウド・アプリケーションの開発において、クラウド・アプリケーションおよび承認者(approver)（クラウド・マネージャ）の開発者は、クラウド・アプリケーション・プロファイル・ステータスのあらゆる変化と関連したアラートをビューすることができる。展開プロセスにおいて、すべてのアラートは、クラウド・マネージャによる承認を必要とする。しかしながら、クラウド・マネージャは承認者について１つ以上のレベルを含むことができ、このことがなおも本発明の範囲内にあるものとも理解される。
【００６３】
[0084]クラウド・マネージャは、精査後にアラートを受理し、または拒否することができる。クラウド・マネージャがそのアラートを受理することを選択する場合、クラウド・アプリケーションは前進する(move forward)ことになる。しかしながら、クラウド・マネージャがアラートを拒否する場合には、クラウド・アプリケーション・プロファイルのステータスを下書き中に設定することによって、クラウド・アプリケーションを後方に移行することになる。その理由は「拒絶された(rejected)」からである。
【００６４】
[0085]アラート・サービス３１６は、認可されたユーザが、ゾーンによってクラウド・アプリケーションについてのプロファイル変更のアラートを構成することを許可する。例えば、クラウド・アプリケーションが拡大したとき、所定の数の健康状態検査(health check)が所定の時間量において不合格となったとき、またはＳＬＯ違反が平均を上回ったときに、アラートをアラート・サービス３１６によって送信することができる。アラートは、手動で、または所定の条件下（例えばｅメールによる）では自動的に発出することができる。自動審査ルールに関するアラートは、図２３Ａ、２３Ｂおよび３２に関してこれよりより詳細に説明する。
【００６５】
[0086]上記説明したアラート・サービス３１６の特徴は、好ましい特徴だけである。アラート・サービス３１６は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【００６６】
[0087]クラウド・コントローラ３０２が有するＳＬＯによる監視および遵守(watch and compliance)サービス３１８は、認可されたシステム・ユーザが、個々のクラウド・アリケーションにより、またはゾーンにより、すべてのＳＬＯ違反の概要をビューすることができる。ＳＬＯ監視遵守サービス３１８はまた、認可されたシステム・ユーザが要約の評価のために個々の違反をビューすることを許可する。さらに、ＳＬＯ監視遵守サービス３１８は、認可されたシステム・ユーザが個々のトランザクション違反のログをビューすることを可能にする。なおもさらに、ＳＬＯ監視遵守サービス３１８は、認可されたユーザが、ユーザ、ゾーン、クラウド・アプリケーション、ウェブ・サービスその他所定の基準による違反をフィルタリングすることを許可する。
【００６７】
[0088]上記説明したＳＬＯ監視遵守サービス３１８の特徴は、好ましい特徴だけである。ＳＬＯ監視遵守サービス３１８は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【００６８】
[0089]クラウド・コントローラ３０２のログ走査サービス３２０は、認可されたシステム・ユーザがクラウド・ドアリケーション、インスタンス、仮想マシンにおけるハイパバイザ(hypervisor)、その他のクラウド要素に関係する行動(activity)をビューすることを許可する。ログ走査サービスを用いると、認可されたシステム・ユーザは、いかなるクラウド・プリケーションまたはクラウド・コンポーネントのオンデマンドのログ走査をも要求することができる。さらに、ログ走査サービス３２０を用いると、認可されたシステム・ユーザは、展開されたクラウド・アプケーションに関係する行動をビューすることができる。
【００６９】
[0090]スレッド・アナライザ・サービス３２２は、認可されたシステム・ユーザが、起動しているクラウド・アプリケーションに関係する特定ノードに関し、プライベート・クラウド内で行うトランザクションをビューすることを許可する。
【００７０】
[0091]トランザクション・ブラウザ３２３は、認可されたシステム・ユーザがユーザ、ゾーン、クラウド・アプリケーション、ウェブ・サービス、その他の所定の基準によるトランザクションをフィルタリングすることを許可する。トランザクション・ブラウザ３２３は、共にグループ・トランザクションに対し認可されたユーザが、マクロ挙動(macro behavior)を理解し、クラウド・アプリケーションおよびゾーンによる時間統計情報をビューし、現在におけるクラウド・アプリケーションおよびゾーンについての応答時間統計情報を、通例のクラウド・アプリケーションおよびゾーンについての応答時間統計情報と比較することを許可する。
【００７１】
[0092]上記説明したスレッド・アナライザ・サービス３２２およびトランザクション・ブラウザ３２３の特徴は、好ましい特徴だけである。スレッド・アナライザ・サービス３２２およびトランザクション・ブラウザ３２３は、多かれ少なかれ上記説明した特徴を有することができ、そして、なおも本発明の範囲内にあるとすることができるものと意図している。
【００７２】
[0093]クラウド・スタック３２４は、プライベート・クラウドについてのソフトウェア・スタックを含む。クラウド・スタック３２４は、オペレーティング・システム・ソフトウェア３２６を含み、好ましくはＬｉｎｕｘ（登録商標）ソフトウェアである。さらに、クラウド・スタック３２４は、仮想マシンのオペレーティング・ソフトウェア３２８であり、クラウド内で起動している仮想マシンが用いるためのものである。仮想マシンは、ハイパバイザによって管理される。好ましくは、このソフトウェアは、サン・マイクロシステムズ社／オラクル社からのＪａｖａ（登録商標）開発キット（「ＪＤＫ」）ソフトウェアである。
【００７３】
[0094]クラウド・スタック３２４は、ウェブ・サーバ・ソフトウェア３３０を含み、このウェブ・サーバ・ソフトウェア３３０は、好ましくはＡｐａｃｈｅソフトウェア財団によるＡｐａｃｈｅＷｅｂＳｅｒｖｅｒソフトウェアである。クラウド・スタック３２４はまた、アプリケーション・サーバ・ソフトウェア３３２も含む。好ましくは、アプリケーション・サーバ・ソフトウェアは、Ｔｏｍｃａｔサーブレット・コンテナを含むＪＢｏｓｓソフトウェアである。ＪＢｏｓｓソフトウェアはＲｅｄ  Ｈａｔ社によるものであり、Ｔｏｍｃａｔサーブレット・コンテナ・ソフトウェアはＡｐａｃｈｅソフトウェア財団によるものである。
【００７４】
[0095]クラウド・スタック３２４は、ネットワーク・セキュリティ・ソフトウェア３３４を含み、好ましくはＩｒｄｅｔｏ  Ｂ．Ｖ．によるクロークウェア（Ｃｌｏａｋｗａｒｅ）ソフトウェアである。クラウド・スタック３２４の次のソフトウェアはウェブ・アクセス管理ソフトウェア３３６であり、好ましくは、Ｃｏｍｐｕｔｅｒ  Ａｓｓｏｃｉａｔｅｓ社によるサイトマインダ（ＳｉｔｅＭｉｎｄｅｒ）ソフトウェアである
【００７５】
[0096]クラウド・スタック３２４はデータベース・アクセス・ドライバ３３８を含み、好ましくはＪＤＢＣドライバである。クラウド・スタック３２４はまた、クラウド・アプリケーション・ビルダ・ランタイム・ソフトウェア３４０も含み、これは、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーション・フレームワーク・ソフトウェアである。
【００７６】
[0097]最後に、クラウド・スタック３２４は、サードパーティのライブラリ３４２を含む。ライブラリの数として、このような１つ以上のサードパーティ・ライブラリを含むことができ、なおも本発明の範囲内にあるものとすることができる。
【００７７】
[0098]サービス・レジストリ３４５は、先にも説明したが、プライベート・クラウドにおいて展開されるクラウド・アプリケーションについての少なくともウェブ・サービスのレジストリを含む。サービス・レジストリは、プライベート・クラウド内で開発されたクラウド・アプリケーションを展開するために、クラウド・コントローラ３０２およびクラウド・スタック３２４と協働する。
【００７８】
[0099]好ましくは、クラウド・コントローラ３０２は、上記説明したサービスを含み、クラウド・スタックは、上記説明したソフトウェア・スタックを含み、これらは、クラウド・アプリケーション・フレームワークと共にランタイム・コンポーネントを形成する。ラウド・アプリケーション・フレームワークは、レバレッジされて、プライベート・クラウドにおける展開用にクラウド・アプリケーションを用意するために、クラウド・アプリケーションをビルドする。クラウド・コントローラ３０２およびクラウド・スタック３２４に関し、特定のコンポーネントについて、上記のように特定してきた。しかしながら、多かれ少なかれ、これらのコンポーネントはクラウド・コントローラ３０２およびクラウド・スタック３２４を形成し、これらはなおも本発明の範囲内にあるものと理解される。
【００７９】
[0100]クラウド・アプリケーション・ビルダ３５０は、本発明のプライベート・クラウドの展開のためのクラウド・アプリケーションおよびウェブ・サービスを開発するのに用いる。クラウド・アプリケーション・ビルダ３５０は、サービス開発ツールキット３５２を含み、主に、プライベート・クラウド内で展開される、クラウド・アプリケーションのためのウェブ・サービスの開発用に用いられる。このサービス開発ツールキットは、ウェブ・サービス、およびクラウド・アプリケーション・フレームワークに従って開発されるクラウド・アプリケーションについてのユーザ・インターフェイスの開発時に少なくとも用いられるツールを含む。
【００８０】
[0101]クラウド・アプリケーション・ビルダ３５０のクラウド開発ツールキット（「ＣＤＴ」）３５４は、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーションに関連付けられたユーザ・インターフェイスの開発用のものである。
【００８１】
[0102]クラウド・アプリケーション・ビルダ３５０は、ウェブ・アプリケーションで開発するためのソフトウェア３５６を含む。好ましくは、アプリケーション開発ソフトウェア３５６は、Ｅｃｌｉｐｓｅ財団によるＥｃｌｉｐｓｅであり、Ｇｏｏｇｌｅ社によるＧｏｏｇｌｅウェブ・ツールキット（「ＧＷＴ」）に加えて、アプリケーション開発用の統合開発環境（「ＩＤＥ」）を提供する。
【００８２】
[0103]クラウド・アプリケーション・ビルダ３５０は、試験ソフトウェア３５８を含み、好ましくは、ＪＵｎｉｔ．ｏｒｇによるＪＵｎｉｔソフトウェアである。最後に、クラウド・アプリケーション・ビルダ３５０は、ウェブ・サーバ・サーブレット・ソフトウェア３６０を含み、クラウドにおける展開のために開発されているクラウド・アプリケーションについてのウェブ・サーバのための動的コンテンツを生成するために用いられる。好ましくは、ウェブ・サーバ・サーブレット・ソフトウェアは、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ財団によるＡｐａｃｈｅ  Ｔｏｍｃａｔである。
【００８３】
[0104]図４を参照する。全般的に４００において、本発明のプライベート・クラウド・コンピューティング・システムのコンポーネントについての論理構造の代表的な図を示している。ユーザ・インターフェイス４０２は、クライアント・デバイスのユーザ・インターフェイスである。インタフェースは、ダッシュボード４０６を含むことになるアプリケーション・コントロールパネル４０４を含む。代表的なアプリケーション・コントロールパネルが図１５に示され、代表的なダッシュボードが図２４に示される。
【００８４】
[0105]アプリケーション・コントロールパネル４０４は、開発者、クラウド・アプリケーションの管理者、クラウド・アプリケーションの所有者、ソフトウェア品質保証（「ＳＱＡ」）、システム・ユーザその他の者が、クラウドにおいてクラウド・アプリケーションをビュー、使用および操作することを可能にする。ダッシュボード４０６により、認可されたユーザがインフラストラクチャ・コンポーネントを管理することを可能にする。ユーザ・インターフェイス４０２は、クラウド・アプリケーションおよび関連する情報、ならびにＣＬＤＢ４１０に格納された他のデータおよび情報にアクセスするためにＣＬＤＢ４１０に双方向に接続される。
【００８５】
[0106]ユーザ・インターフェイス４０２はまた、クラウド・コントローラにメッセージを送信するために、クラウド・コントローラ４０８にも接続する。好ましくは、これらのメッセージは、特定のクラウド・アプリケーションおよびウェブ・サービスにアクセスするための要求、およびＳＬＯモニタリングを含むことになるがこれに限定されない。
【００８６】
[0107]ｅＳＦプロキシ４１２は、ｅＳＦデータベース４１３と共にセキュリティをクラウドに提供する。ｅＳＦプロキシ４１２およびｅＳＦデータベース４１３は、データ・グループ、機能グループおよびユーザ役割に基づいてクラウド・アプリケーションおよびウェブ・サービス・アクセスにパーミッション(permission)を提供する。データ・グループ、機能グループおよびユーザ役割は、図１１〜１４に関してより詳細に説明する。
【００８７】
[0108]パーミッションは、クラウドにおいて、ユーザがクラウドにおいて特定のクラウド・アプリケーションおよびウェブ・サービスにアクセスすること、ユーザが特定の機能、例えば、承認の付与、クラウド・アプリケーション・プロファイルの変更、またはＣＬＤＢ４１０からのクラウド・アプリケーションの削除を実行できることを含むが、これに限定されない。さらには、ｅＳＦ４１２／４１３は、セキュリティ・インフラストラクチャを提供することができる。セキュリティ・インフラストラクチャは、プライベート・クラウドにおいて起動されるクラウド・アプリケーションについてのセキュリティ要件の全てを、プライベート・クラウドそれ自体のセキュリティ要件と同様に、収容して満たすことになる。セキュリティｅＳＦの少なくとも一部は機能レベル権限を付与し、ｅＳＦはまた、このようなセキュリティ付与をサポートするデータも収容する。上記説明したパーミッションが網羅的ではなく、追加のパーミッションがある場合もあり、また、これが本発明の範囲内にあるものと理解される。
【００８８】
[0109]サービス・レジストリ４１５は、クラウド・コントローラ４０８に接続する。サービス・レジストリ４１５は、これより詳細に説明するが、開発者がプライベート・クラウド用に登録されるウェブ・サービスについて検索し、そして、それらに関する詳細な情報をビューすることを可能にする。
【００８９】
[0110]ユーザ・インターフェイス４０２からの特定のクラウド・アプリケーションまたはウェブ・サービスについての要求を処理する際に、クラウド・コントローラ４０８は、要求をプロビジョニング・サービス４１４に送信する。プロビジョニング・サービス４１４は、それらが制御するハイパバイザおよび仮想マシンに提供して、クラウドにおいてクラウド・アプリケーションを起動するクライアント・デバイスの必要性に順応する。図４に示すように、ハイパバイザ４２０は、ウェブサーバ・インスタンス４２２、アプリケーション・インスタンス４２４およびアプリケーション・インスタンス４２６を管理する。これらのソフトウェア・インスタンスの各々は、ハイパバイザ４２０によって監督される仮想マシン・インスタンスにおいて起動している。本発明のプライベート・クラウド・コンピューティング・システムは、仮想マシン・インスタンスにおいて起動しているクラウド・アプリケーションおよびウェブ・サーバのインスタンスを制御する１つ以上のハイパバイザを有することができ、これはなおも本発明の範囲内にあるとすることができるものである。
【００９０】
[0111]図４を参照すると、４１６は、ビルド．ｘｍｌを示す。ビルド．ｘｍｌは、アプリケーション・ビルド・フレームワークに関連しており、開発者がクラウド・アプリケーション・ビルダ３５０（図３）およびそれに関連するランタイム・ライブラリを用いてクラウド・アプケーションをビルドすることを可能にする。このようなクラウド・アプリケーションがビルドされると、クラウド・アプリケーションに関連したバイナリがバイナリ・ビルダ４１８に提供される。バイナリは、次いで、ＣＬＤＢ４１０に記憶するために送信され、ハイパバイザに提供するためにプロビジョニング・サービス４１４に提供される。その結果、バイナリは、クラウド・アプリケーションを起動するためのクライアント・デバイスを含むシステム・ユーザ、およびクラウド・アプリケーションを操作するためのパーミッションを有する認可されたシステム・ユーザに利用可能となる。
【００９１】
[0112]モニタリング・サービス４２８は、健康状態検査サービス４３０およびログ走査サービス４３２を含む。健康状態検査サービス４３０は、プライベート・クラウドの物理リソースおよび仮想リソースをモニタリングする。ログ走査サービス４３２は、ＳＬＯ違反を探しているクラウド・アプリケーションおよびクラウド・インフラストラクチャのコンポーネントについてのログの自動およびオンデマンドの走査を実行する。健康状態検査サービス４３０およびログ走査サービス４３２によって測定される情報は、ＣＬＤＢ４１０に格納される。
【００９２】
[0113]クラウド・アプリケーションの開発を説明する前に、各クラウド・アプリケーションのユーザ・インターフェイス管理は、図５を参照して説明される。
【００９３】
[0114]図５は５００において、プライベート・クラウド上のクラウド・アプリケーションについてのフォアグラウンド・タスク、データ・ストレージおよびバックグラウンド・タスクのユーザ・インターフェイス管理のための代表的な図を示している。サービス・コンシューマ５０２は、クラウドの内側または外側にいるサービスのコンシューマである。プライベート・クラウド外側のサービス・コンシューマの例には、５０４で示されるようなクライアント・デバイスで起動しているサービスを含む。
【００９４】
[0115]データ・アクセス５０６は、５０８および５１０で示されるようなフォアグラウンド・サービスに向けられており、それらはユーザ・インターフェイスのために作成され、プライベート・クラウドにアクセスする。例えば、開発者であれば、この目的のために、ＨＴＭＬ、Ａｄｏｂｅ  Ｆｌａｓｈ、ＡＪＡＸその他ツールでの軽量ユーザ・インターフェイスのコンポーネントを作成ことができるであろう。しかしながら、他のサービスを作成することができ、なおも本発明の範囲内にあるとすることができるものと理解される。
【００９５】
[0116]データ・ストレージ５１２は、オンライン・トランザクション処理（「ＯＬＴＰ」）データに向けられ、それはウェアハウス・データとは別個のアプリケーション・データベース２１４に格納される。したがって、ＯＬＴＰデータは、データベース・トランザクションを実行することと関連している。ＯＬＴＰの例は、データ・ストレージ５１２が有する５１４および５１６に示される。データ・ストレージ５１２において、メインフレーム顧客情報処制御システム（「ＣＩＣＳ」）５１４は、本発明によるデータ・ストレージのために、従来のＣＩＣＳ機能をレバレッジする。データ・ストレージ５１２はまたＲＤＢＭＳ５１６を示しており、リレーショナル・データベース管理システムである。本発明の目的のために、ＲＤＢＭＳは、本発明によるデータ・ストレージのために、従来のリレーショナル・データベース管理機能をレバレッジする。しかしながら、本発明のシステムが他のＯＬＴＰデータ・コンポーネントを含むことができ、なおも本発明の範囲内にあるとすることができるものと理解される。
【００９６】
[0117]バックグラウンド５１８を使用して、ジョブ５２０および５２２のようなバックグラウンド・プロセスを作成し、ウェアハウス・データを管理する。ジョブの作成について、これよりより詳細に説明する。
【００９７】
[0118]ｅＳＦ５２６は、先に述べたように、セキュリティをクラウドに提供する。ｅＳＦ５２６は、図４の４１２および４１３で示されるものを含む。ユーザ・インターフェイスを通じて、ｅＳＦ５２６は、権限の施行(entitlement enforcement)に向けられる。このように、データ・アクセス５０６およびバックグラウンド５１８に関して、ｅＳＦ５２６は、ユーザ役割を割り当てることにより、クラウド・アプリケーションおよびウェブ・サービスにアクセスして利用するための認可について制御する。ユーザ役割は、好ましくは、企業内において格納したデータを機能と関連付けることによって工夫される。
【００９８】
[0119]サービス・レジストリ５２４は、プライベート・クラウドのサービス・レジストリに関連する。サービス・レジストリは、開発者がウェブ・サービスを検索し、それらに関する詳細情報をビューすることを可能にする。したがって、ユーザ・インターフェイスは、再利用できるウェブ・サービスについてサービス・レジストリを閲覧するために用いることができる。さらに、サービス・レジストリ５２４は、プライベート・クラウドにアプリケーションおよびウェブ・サービスを持ち込み、そして、それらのＳＬＯの遵守および利用をモニタリングするという機能を実行する。サービス・レジストリは、図６でより詳細に説明する。
【００９９】
[0120]図６は、全般的に６００において、サービス・レジストリ５２４を示す本発明のプライベート・クラウド・コンピューティング・システムのアーキテクチャの代表的な図を示している。図６において、プロビジョニング・サービス３１２、モニタリング・サービス３１４、ＳＬＯ監視遵守サービス３１８、ログ走査サービス３２０、およびトランザクション・ブラウザ３２３（図示せず）は、図３に示し先に説明したクラウド・コントローラ３０２のコンポーネントである。ユーザ・インターフェイス４０６は、図４に示しており、先に説明したものである。トランザクション・ブラウザ３２３は図６に示すことができ、なおも本発明の範囲内にあるものと理解される。
【０１００】
[0121]図６の中央部には、審査監跡(audit trail)６０８、データ保全性６１０、セキュリティ６１２およびスケジューラ６１４を含む持続状態６０６がある。審査追跡６０８は、クラウド・アプリケーションに関する変更追跡のためにある。データ保全性６１０は、データベース内でのデータ保全性を確実にするために制約をアプリケーション・データベースに課すためにある。スケジューラ６１４は、ジョブをスケジューリングするためにある。セキュリティ６１２は、ｅＳＦアクセス・セキュリティである。
【０１０１】
[0122]ルール・エンジン６０２は、プライベート・クラウド（クラウド・コントローラ）の一部であり、クラウド・マネージャによって作成され、そして、プライベート・クラウドの範囲内で起動しているクラウド・アプリケーションの動作に対するルールを含む。これらルールは、例えば、拡大または縮小ルール、アラート・ルール、またはゾーン・ルールを含む。ルール・エンジンは、他のルールを含むことができ、なおも本発明の範囲内にあるものとすることができる。
【０１０２】
[0123]再度図６を参照すると、構成要素の各々は、メッセージング環境６０４内において接続されることが示されている。これにより、さまざまな構成要素間での通信を可能にする。
【０１０３】
[0124]図６のサービス・レジストリ５２４を参照すると、サービス・レジストリが少なくとも４つのサービスを提供することを意図している。しかしながら、４つより多いまたは少ないものを提供することができ、なおも本発明の範囲とすることができるものと理解される。
【０１０４】
[0125]サービス・レジストリ５２４が好ましくは提供する第１のサービスは、認可された開発者がウェブ・サービスに関するメタデータを作成および操作するためのアプリケーション・プログラミング・インタフェース（「ＡＰＩ」）をサービス提供するためのものである。このことは、認可されたユーザが、機能および機能グループに関するメタデータおよび情報を作成または更新することを可能にする。ＡＰＩはこの情報を参照する。これは、好ましくはサービス・インベントリ・ファイルにおけるウェブ・サービス詳細である。
【０１０５】
[0126]第２のサービスは、検索カタログ・サービスである。検索カタログ・サービスは、認可されたシステム・ユーザが、サービス・レジストリのカタログ検索ページ上でウェブ・サービスを検索および発見することを可能にする。
【０１０６】
[0127]サービス・レジストリ５２４の第３のサービスは、閲覧カテゴリ・サービスである。
このサービスは、認可されたシステム・ユーザが、クラウド・アプリケーション機能グループからサービス・レジストリのアプリケーション・ブラウザ・ページ上で構成ウェブ・サービスのリストにドリルダウン(drill down)することを可能にする。
【０１０７】
[0128]サービス・レジストリの第４のサービスは、ウェブ・サービス詳細のサービスである。このサービスは、メタデータおよび他のデータを提供し、認可されたシステム・ユーザが、図２６に示したユーザ・インターフェイスにおいてウェブ・サービス詳細ダイアログ・ボックスの様々なタブにアクセスすることができる
【０１０８】
[0129]図７を参照する。全般的に７００において、代表的なサービス・レジストリ・アーキテクチャが示されている。サービス・レジストリ５２４（図５）は、クラウド・コントローラ４０８（図４）に接続する。図示のように、クラウド・コントローラ４０８およびサービス・レジストリ５２４は、プライベート・クラウド内にある。また、サービス・メタデータ・レポジトリ７０４（メタデータ・データベースである）は、クラウドの外側からサービス・レジストリ５２４に接続される。サービス・メタデータ・レポジトリ７０４はメタデータ・データベースである。さらに、ｅＳＦ４１２／４１３（図４）はクラウドの外側からクラウド・コントローラ４０８に接続する。図示していないが、ｅＳＦプロキシ４１２は、ｅＳＦデータベース４１３とクラウド・コントローラ４０８の間に配置されるが、プライベート・クラウド内にある。
【０１０９】
[0130]クラウド・コントローラ４０８はブラウザ・クライアント（ユーザ・インターフェイス）４０２に接続する。ブラウザ・クライアント４０２がユーザ７０６にコンテンツを提供し、それらがアクセスサービス・レジストリ５２４にアクセスするのを許可する。
【０１１０】
[0131]ｅＳＦのサービス・レジストリ５２４との統合は、クラウド・アプリケーション、ウェブ・サービス、およびボタンおよびメニュー・オプションのようなユーザ・インターフェイス・アイテムへアクセスが認可されたシステム・ユーザのみに制限されることを保証する。これは、開発者およびユーザによるアクセス権を決定する、注意深く定義された役割に基づいている。このアクセス制御の例をこれから詳細に説明する。
【０１１１】
[0132] クラウドにおいて開発されるクラウド・アプリケーションのコンポーネントは、ユーザ・インターフェイス、潜在的な再利用を提供する登録済みのウェブ・サービス、再利用可能なバックグラウンド・ジョブについてのレジストリを含む。プライベート・クラウドでの展開のためのクラウド・アプリケーションを作成している開発者はまた、ウェブ・サービスおよびジョブに関するビジネス・ルールおよび／またはＪａｖａ（登録商標）クラスを作成することができる。一旦クラウド・アプリケーションのコンポーネントが作成されると、それらはＣＬＤＢ４１０に格納することができる。これらのコンポーネントの作成は、プライベート・クラウド環境内で行うことができる。
【０１１２】
[0133]ウェブ・サービス、ユーザ・インターフェイス・コンポーネント、およびバッチ・ジョブを開発する際、クラウド・アプリケーションに関して開発者が行う要件分析があり、彼／彼女のアプリケーション、クラウド・アプリケーションのタスクを実現することが必要とされるユーザ・インターフェイス・コンポーネント、および、クラウド・アプリケーションについてのデータを格納することが必要とされるバッチ・ジョブについて実施するウェブ・サービスを特定する。これらタスクを実行する際には、クラウド・コントローラにおいて、開発者は、サービス・レジストリ内で登録済みサービスを閲覧および参照することができ、いずれが彼／彼女のクラウド・アプリケーションで再利用できるかについて理解する。
【０１１３】
[0134]本発明のシステム及び方法によれば、ウェブ・サービスがクラウド・アプリケーションについて作成される前に、開発者はクラウド・アプリケーション・コードおよびその拡張を含むアプリケーション識別子を取得しなければならない。これは、クラウド・アプリケーションについてのクラウド・アプリケーション・プロファイルの作成を含む開発プロセスを通じてアプリケーションを追跡することになる。好ましくは、クラウド・アプリケーションがプライベート・クラウド環境へさらに移行することができる前に、クラウド・アプリケーションのソースコードはソースコード制御システムに置かれる。一旦このタスクが実行されると、クラウド・アプリケーションおよびそのコンポーネントはクラウド・アプリケーション・ビルダ３５０（図３）を使用して開発することができる。
【０１１４】
[0135]特定のクラウド・アプリケーションに関し、ウェブ・サービス・コンポーネントの開発は、開発者によるサービス定義用のメタデータの作成およびクラウド・アプリケーション用のサービス・インベントリ・ファイルの完了を含む。各クラウド・アプリケーションは、それに関連付けられるサービス・インベントリ・ファイルを有することになり、全メンバのウェブ・サービスにおける機能グループを記述する。クラウド・コントローラ３０２（図３）は、このデータを用いて、クラウド・アプリケーションが展開される際に自動的にサービス・レジストリを更新する。
【０１１５】
[0136]好ましくは、開発業者は、フォアグラウンド・プロセスおよびバックグラウンド・プロセス（図５参照）用に別々の．ｗａｒ（「ウェブ・アーカイブ」）ファイルをビルドし、クラウド・アプリケーションに関連付けられたバイナリをバンドルし、そして、クラウド・アプリケーション・プロファイルを作成する。フォアグラウンド・プロセスと関連付けられるバイナリは、ウェブ・サービスおよびユーザ・インターフェイス・コンポーネントに関係する。バックグラウンド・プロセスと関連付けられるバイナリは、ジョブに関係する。しかしながら、開発者がクラウドにおいて使用するためのウェブ・サービスを展開できないうちに、適切な承認を得なければならない。この承認はサービス・レジストリの更新およびｅＳＦに格納される関連するｅＳＦ役割の調整をトリガする。開発におけるこのプロセスについて、図８に視覚的に示す。
【０１１６】
[0137]図８は、全般的に８００において、プライベート・クラウドにおいて展開されることになるクラウド・アプリケーションについてのウェブ・サービス・コンポーネントの開発のためのプロセスの代表的な図を示している。クラウド・アプリケーションの開発および適用のプロセスの一部として、開発者８０１は、８０４において、クラウド・アプリケーションと関連しているウェブ・サービスを開発することになる。ウェブ・サービスが開発される際、８０６において、開発者はサービス・インベントリ・ファイルを更新するために８０８で用いられることになるサービス定義のメタデータを更新することになる。これにより、クラウド・アプリケーション開発と関連したウェブ・サービス開発の一部が完成する。
【０１１７】
[0138]８０８におけるサービス・インベントリ・ファイルの更新に続き、開発者は、８１０においてフォアグラウンド・プロセスおよびバックグラウンド・プロセスのためのアプリケーション・バイナリ・ファイルをビルドする。クラウド・アプリケーションに関連付けられたバイナリはバンドルされる。そして、８１２において、ウェブ・サービスを展開するための要求は、クラウド・アプリケーションのために作成されてきたクラウド・アプリケーション・プロファイルを用いて行われる。この要求は、クライアント・デバイスのユーザ・インターフェイスを用いている開発者によって、クラウド・コントローラ８１４に送信される。８１６において、適切に認可されたユーザによる承認が要求される。承認が拒否される場合には、通知が適切なメッセージングを通じて開発者に送り返される。しかしながら、承認が付与される場合、８１８においてウェブ・サービス用のサービス・レジストリに送られる更新がある。また、８２０において、ｅＳＦの更新が、ウェブ・サービスの利用のための適切なパーミッションとともにある。これに続いて、８２２において、ウェブ・サービスがプライベート・クラウド内にライブで提供される。好ましくは、プライベート・クラウドは、ウェブ・サービスが展開される際、サービス定義中のメタデータおよびサービス・インベントリ・ファイルを用いて、サービス・レジストリを自動的に更新する。
【０１１８】
[0139]先に述べたように、ユーザ・インターフェイスはまた、クラウド・アプリケーションのコンポーネントでもある。クラウド・アプリケーション・ビルダ３５０は、ＣＤＴ３５４およびユーザ・インターフェイス上の適切なパネルを通じて、特定のクラウド・アプリケーションと関係付けられることになるユーザ・インターフェース・コンポーネントを開発する。このツールキットは、開発者がクラウド・アプリケーションに関連付けられたウェブ・サービスをユーザ・インターフェイスに拡張することができる。好ましくは、ツールキットは、ユーザ・インターフェイス開発に基づくＦｌａｓｈおよびＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅをサポートすることになる。
【０１１９】
[0140]プライベート・クラウドにおいて展開されるクラウド・アプリケーションは、非クラウドのウェブ・ページに組み込むことができる。これが行われると、クラウド・アプリケーションのすべての機能性は、ポップアップとしてユーザ・インターフェイスを有するそのウェブ・ページからアクセスすることができるが、ウェブ・サービスはプライベート・クラウドにおいて起動している。
【０１２０】
[0141]クラウド・アプリケーションの最後のコンポーネントは、バックグラウンド・ジョブである。これらのジョブは、バックグラウンドで起動し、クラウドおよび他のデータベースに情報を格納するバッチ・ジョブである。クラウド・アプリケーションのバックグラウンド・ジョブは、異なるマシン上に配置することができる２つのインスタンスにおいて起動することができる。例えば、これらのジョブは、２つの別々のデータセンタにおいてアクティブ−アクティブに起動される。バックグラウンド・ジョブは、クラウド・アプリケーション・サーバがフォアグラウンドでスレッドをハングアップすることなくスケーラビリティをハンドルすることを支援する処理を含むことができる。
【０１２１】
[0142]図９を参照すると、全般的に９００において、代表的な図が、バックグラウンド・ジョブ開発およびハンドリングのために示されている。図９において、外部サービス９０２は、バックグラウンド・クラウド９０９に接続する。外部サービス９０２は、ＲＤＢＭＳ９０４、メッセージング９０６およびファイル転送サービス９０８を含む。これらの各々は、他の図に関して先に述べたものであり、このように、これらの説明はここでも同等であり参照によりここに組み込むものとする。
【０１２２】
[0143]バックグラウンド・クラウド９０９は、９１０、９１６および９２２において３つの代表的なクラウド・アプリケーション・インスタンスを含む。アプリケーション・インスタンス９１０は、バッチ・ジョブ９１２および９１４を示す。アプリケーション・インスタンス９１６は、バッチ・ジョブ９１８および９２０を示す。また、アプリケーション・インスタンス９２２は、バッチ・ジョブ９２４および９２６を示す。スケジューラ（図示せず）は、ジョブを管理して、図９に示すような複数のアプリケーション・インスタンスをハンドルする。バックグラウンド・クラウド９０９で示されるバッチ・ジョブは、複数のジョブを収容できる別々の．ｗａｒファイルにバンドルすることができる。これらのジョブは、次いで、ＣＬＤＢ４１０に格納することができ、適切なクラウド・アプリケーションに関連付けることができる。
【０１２３】
[0144]先に述べたように、ｅＳＦは、クラウド・アプリケーション・セキュリティをハンドルする。好ましくは、クラウド・アプリケーション開発者は、ｅＳＦ役割をセットアップし、保護されるアイテムをセキュリティ保護する(secure)ために、ｅＳＦプロキシＡＰＩを使用することになる。ｅＳＦセキュリティの使用については、これより図１０を参照してより詳細に説明する。
【０１２４】
[0145]図１０を参照する。全般的に１０００において、ｅＳＦセキュリティを実施するための代表的な図を示している。システム・ユーザがクラウド・アプリケーションまたはウェブ・サービス・アクセスを要求するときに、サービス・コンシューマ１００２として示されるシステム・ユーザは認可されなければならない。このように、サイトマインダ（ＳｉｔｅＭｉｎｄｅｒ）１００４は、ｅディレクトリ（ｅＤｉｒｅｃｔｏｒｙ）１００６に問い合わせることにより、システム・ユーザ認可を検査する。認可が確認される場合には、クラウド・アプリケーションと関連して要求されたウェブ・サービス１００８は、ｅＳＦプロキシ１０１０と通信し、ｅＳＦデータベース１０１２内のシステム・ユーザのｅＳＦ権限を検査する。これらの権限は、システム・ユーザがサービス要求において特定の機能を実行するよう認可されているかどうかを含むことになる。システム・ユーザが認可される場合には、システム・ユーザは、１０１４において、ウェブ・サービスを通じてデータベース情報にアクセスすることになる。システム・ユーザが認可されない場合にはアクセスが拒否されることになる。
【０１２５】
[0146]クラウド・アプリケーションおよびウェブ・サービスへのアクセスが役割に基づくことができると先に説明してきた。本発明の目的のために、機能グループは、認可されたシステム・ユーザが当該システム・ユーザのジョブ・ディスクリプションに関係する如何なるデータに対する動作を実行するのを可能にする機能のコレクションである。好ましくは、機能グループは、クラウド・アプリケーション開発者によって定義される特定データへのアクセス権を有することになる。機能グループおよび機能は、サービス・インベントリ・ファイルで定義され、サービス・レジストリおよびｅＳＦデータベースを更新することになるアプリケーション・バイナリ・ファイルの一部として展開される。機能グループの形成およびこれら機能グループがアクセス権を有するサービスの例を図１１に示す。
【０１２６】
[0147]図１１は、全般的に１１００において、クラウド・アプリケーションに関係した機能グループ、およびこれらのグループの各々がアクセス権を有するサービスの図を示している。クラウド・アプリケーション・ブロック１１０２において、「マスタ・フィーダ」と名づけられたクラウド・アプリケーションを示す。マスタ・フィーダ・クラウド・アプリケーション１１０４の開発者は、機能グループ・ブロック１１０６において２つの機能グループを定義している。１１０８における第１の機能グループは、管理(administrative)機能によって定義され、１１１０における第２の機能グループは、閲覧機能によって定義される。
【０１２７】
[0148] サービス・ブロック１１１２において、マスタ・フィーダ・クラウド・アプリケーション１１０４について登録されたサービスが示される。１１０８における第１の機能グループに関して、当該機能グループが、７９１００２、７９１００３および７９１００４として登録されたサービスを実行するのを許可する。これにより、第１の機能グループがマスタ作成(Create Master)、フィーダ追加(Add Feeder)、およびフィーダ削除(Remove Feeder)のそれぞれを許可することになる。
【０１２８】
[0149]１１１０における第２の機能グループに関して、この機能グループが、７９２００１および７９２００２として登録されたサービスを実行するのを許可する。これにより、第２の機能グループが、マスタ発見(Find Master)およびフィーダ取得(Get Feeders)のそれぞれを許可することになる。第２の機能グループは、第１の機能グループ用に認可されるサービスにアクセスするのは許可されないことに留意されたい。
【０１２９】
[0150]機能グループの定義は、クラウド・アプリケーション役割に基づく。図１２を参照して、これら役割が機能グループを定義する方法について説明する。
【０１３０】
[0151]図１２を参照する。全般的に１２００において、機能グループを定義するクラウド・アプリケーション役割の使用について示している。クラウド・アプリケーション・ブロック１２０２は、「マスタ・フィーダ」と名づけられたクラウド・アプリケーションを示す。クラウド・アプリケーション役割テンプレート・ブロック１２０６では、アプリケーション開発者は、マスタ・フィーダ・クラウド・アプリケーションと関連付けられた役割を定義する。これらの役割は、１２０８におけるマスタ・フィーダ管理者(Administrator)および１２１０におけるマスタ・フィーダ・ユーザである。好ましくは、クラウド・アプリケーション役割テンプレートは、システム・ユーザが実行しなければならない機能を評価し、機能グループ内のこれらの機能を集約(assemble)し、そして、システム・ユーザによって操作することができる全データを収容するデータ・グループを識別することによって、構築される。
【０１３１】
[0152]図１２に示すように、機能グループ・ブロック１２１４において、１２０８で示されるマスタ・フィーダ管理者の役割は、２つの機能グループに分けることができる。第１の機能グループは、システム・ユーザが１２１６における管理機能を許可されるものであり、また、第２が１２１８における閲覧機能のみを許可されるものである。
【０１３２】
[0153]先に述べたように、クラウド・アプリケーションの開発者によっても定義されるクラウド・アプリケーション役割はまた、１２１０においてマスタ・フィーダ・ユーザも提供する。この役割に割り当てられる機能グループは、１２２０における閲覧機能を許可される。これら閲覧機能は、マスタ・フィーダ管理者とは同一または異なるものとすることができ、なおも本発明の範囲内にあるものとすることができる。
【０１３３】
[0154]クラウド・アプリケーション役割テンプレートは、サービス・インベントリ・ファイルの一部となり、そしてクラウド・アプリケーションがプライベート・クラウドにおいて展開される際にｅＳＦを更新する。
【０１３４】
[0155]図１３は、全般的に１３００において、図１２に示される管理者役割についてのｅＳＦ権限マップを示している。機能ブロック１３０２では、機能グループのブロック１３１４における１３１６の第１の機能グループ、および１３１８における第２の機能グループに利用可能な機能を示す。図示のように、１３１６の第１の機能グループは、１３０４のマスタ編集、１３０６のフィーダ追加、および１３０８のフィーダ削除の機能を許可される。同じように、１３１８における第２の機能グループは、１３１０のマスタ閲覧および１３１２のフィーダ閲覧を許可される。
【０１３５】
[0156]役割ブロック１３２０では、１３２２の役割はＡＢＣ社で管理者のためにあることを示す。データ・グループ・ブロック１３２４では、管理者が１３２６でＡＢＣ社のファンドに関するデータを受信することを示す。例えば、このファンドはミューチュアル・ファンドとすることができる。データ・ブロック１３２８は、ＡＢＣ社のファンドに関する特定のデータのレポジトリとすることができ、１３３０のＡＢＣ１データ、１３３２のＡＢＣ２データ、および１３３４のＡＢＣ３データを含み、１３２２の管理者が１３２６においてデータ・グループのブロック１３２４でアクセス権を有することになる。マスタ・フィーダ・クラウド・アプリケーションに関する権限マップを精査する際、機能グループに基づく制約がマップに従って施行される。
【０１３６】
[0157]図１４は、全般的に１４００において、図１２に示したユーザ役割についてのｅＳＦ権限マップを示している。機能ブロック１４０２では、機能グループ・ブロック１４１４における１４１６の第１の機能グループおよび１４１８の第２の機能グループに利用可能となる機能を示す。図示のように、１４１６の第１の機能グループは、１４０４のマスタ編集、１４０６のフィーダ追加、および１４０８のフィーダ削除という機能を許可される。同じように、１４１８の第２の機能グループは、１４１０のマスタ閲覧および１４１２のフィーダ閲覧という機能が許可される。
【０１３７】
[0158]役割ブロック１４２０において、１４２２における役割がＡＢＣ社のシステム・ユーザのためのものであることを示す。データ・グループ・ブロック１４２４では、システム・ユーザが１４２６においてＡＢＣ社のファンドに関するデータを受信することを示す。そのファンドは、図１３のようなミューチュアル・ファンドとすることができる。データ・ブロック１４２８は、１４３０のＡＢＣ１データ、１４３２のＡＢＣ２データ、および１４３４のＡＢＣ３データを含むＡＢＣ社のファンドに関する特定のデータ・レポジトとすることができ、１４２２のシステム・ユーザが、１４２６においてデータ・グループ・ブロック１４２４を通じてアクセス権を有することになる。マスタ・フィーダ・クラウド・アプリケーションに関する権限マップを精査する際には、機能グループに基づく制約がこのマップに従って施行される。このように、役割ブロック１４２０における役割は、システム・ユーザのためだけであり、このシステム・ユーザは、機能グループ・ブロック１４１４における１４１８で閲覧機能を許可されるだけである。この機能グループの一部として、システム・ユーザは、機能ブロック１４０２についての１４１０のマスタ閲覧およびの１４１２のフィーダ閲覧を許可されるだけである。
【０１３８】
[0159]先に図８を参照して、プライベート・クラウドにおけるクラウド・アプリケーションを開発および展開するためのプロセスについて説明した。そのプロセスについて、これより図１５〜２２を参照してさらに詳細に説明する。
【０１３９】
[0160]好ましくは、プライベート・クラウドにおけるクラウド・アプリケーションを展開するための５つの主要なステップがある。このプロセスは、クラウド・アプリケーション・プロモーション・プロセスと称することができる。この５つの主要なステップは、アプリケーション・バイナリをバンドルして、このバンドルしたアプリケーション・バイナリをプライベート・プラウドにエクスポートし、プライベート・クラウドにおいてクラウド・アプリケーションを展開するためにクラウド・アプリケーション・プロファイルを作成および編集し、プライベート・クラウドにおいてクラウド・アプリケーションを展開するために適切な承認を取得し、ユーザ受け入れ試験（「ＵＡＴ」）にプロモートされることができように、アプリケーションについて認定される(certified)ビルドを実行し、そして、プライベート・クラウドへのクラウド・アプリケーション・プロモーションのためにクラウド・アプリケーション・プロファイルのシステム・プロパティを設定および変更することを含む。
【０１４０】
[0161]クラウド・アプリケーションを開発（「DEV」）環境に展開してクラウド・アプリケーション・プロモーション・プロセスを開始する前に、好ましくは、開発者は、アプリケーション用の先に述べたアプリケーション識別子を入手することになる。更に、開発者は、適切なクラウド・コントローラ・アクセスｅＳＦ役割権限が開発者用にｅＳＦにおいてセットアップされることを要求したことになり、その結果、開発者は、クラウド・アプリケーションを展開するための適切な役割を有する。開発者は、クラウド・アプリケーション・ビルダ３５０（図３）においてクラウド・アプリケーションについてのビルド・プロジェクトを作成し、クラウド・アプリケーション上での適切な試験を起動させることになる。次いで、開発業者は、クラウド・アプリケーション・ビルダにおいてクラウド・アプロケーションをビルドすることになり、開発者は、プライベート・クラウドにエクスポートするためにクラウド・アプリケーションに関連付けられたバイナリをバンドルする準備を整える。
【０１４１】
[0162]一旦、上記のステップが達成されると、クラウド・アプリケーション・バイナリはバンドルされ、そして、クラウド・コントローラは、プライベート・クラウドにクラウド・アプリーションと関連付けられた、承認された安全なウェブ・サービスをプロモートする。本発明によれば、バイナリ・バンドラは、概念実証（「ＰＯＣ; proof of concept」）およびシステム統合（「SYS; System Integration」）の展開についてビルドした後に、開発者のクライアント・デバイスから呼び出すことができる。しかしながら、バイナリ・バンドは、ＵＡＴおよび生産（「ＰＲＯＤ」）展開のために、より高位レベルのビルド・マシン、例えば、クリア・ケース(ClearCase)ビルダ・マシンその他、認定されたビルド・マシンによって、呼び出すことのみができる。
【０１４２】
[0163]本発明の目的のために、ＰＯＣおよびＤＥＶ展開において、開発者は．ｗａｒファイルを彼／彼女のクライアント・デバイスからビルドすることができる。ＳＹＳにおいて、ＵＡＴにクラウド・アプリケーション・イメージをプロモートするために、好ましくは、認定されたマシンのような指定されたマシンからそれは行われる。そこでは、開発者はクリア・ケース（ＣｌｅａｒＣａｓｅ）ビルド・スクリプトまたはほかの変更制御メカニズムを起動させることができる。
【０１４３】
[0164]ＵＡＴおよびＰＲＯＤの展開のためのクラウド・アプリケーションは、ビルドからプライベート・クラウドへ直接は行かない。開発者がＵＡＴのためのクラウドアプリケーション・プロファイルを作成したとき、開発者は、認定されたビルド・マシン上のＳＹＳについてビルドされたクラウド・アプリケーションを選ぶ(pick)。好ましくは、ここで、クリア・ケース・ビルド・ディスクリプションが起動することができる。ＰＲＯＤについて、開発者は、ＵＡＴにプロモートされたクラウド・アプリケーションを選ぶ。このように、これは、クラウド・アプリケーションと同様に、ＵＡＴおよびＰＲＯＤに展開されるクラウド・アプリケーションをメイクする。クラウド・アプリケーションは、クラウド・プロモーション・プロセスにおいて先の環境で試験されている。ただし、アプリケーション・プロモーションについての好ましい方法として上記説明してきたことについて、他の方法が可能であり、なおも本発明の範囲内にあるとすることができるものと理解される。
【０１４４】
[0165]先に説明した４つの展開環境についてこれからプロモーション・プロセスの観点から説明する。何故ならば、これはクラウド・アプリケーション・プロファイルの作成に関係するからである。
【０１４５】
[0166]ＤＥＶ−開発者がクラウド・アプリケーションについて開発および試験を行った後に、彼／彼女はクラウド・アプリケーションの．ｗａｒファイルをプライベート・クラウドにエクスポートすることができる。ユーザ・インターフェイスを使用している開発者は、ユーザ・インターフェイス上のアプリケーション・プロファイル・タブを選択することができる。クラウド・アプリケーションの初期ステータスは、下書き中である。開発者は、適切な情報を、クラウド・アプリケーション・プロファイルを完成させるために提供し、それとの関連付けのためにクラウド・アプリケーションを選択する。開発者は、次いで、ステータスを公開済みに変更する。開発者のクラウド・アプリケーションは、適正レベルのクラウド・マネージャによって承認を受けたＤＥＶ環境で起動することになる。
【０１４６】
[0167]ＳＹＳ−ＤＥＶで起動しているクラウド・アプリケーションだけが、ＳＹＳにプロモートされることができる。ＳＹＳにおいて、クラウド・アプリケーションは、認定されたビルド・マシン上、例えば、クリア・ケース・ビルド・スクリプトを起動しているビルド・マシン上でビルドすることができる。
【０１４７】
[0168]ＵＡＴ−ＳＹＳで起動しているクラウド・アプリケーションだけが、ＵＡＴにプロモートされることができる。
【０１４８】
[0169]ＰＲＯＤ−ＵＡＴで起動しているクラウド・アプリケーションだけが、ＰＲＯＤにプロモートされることができる。ここでは、このようなクラウド・アプリケーションがプライベート・クラウド上においてライブで起動されることになる。
【０１４９】
[0170] クラウド・アプリケーション・プロファイルを作成し、そして、クラウド・アプリケーションのステータスを下書き中から公開済みに変更するための方法について、これから図１５〜２２を参照して説明する。
【０１５０】
[0171]図１５を参照する。全般的に１５００において、代表的なクラウド・アプリケーション・コントロール・パネルが、１５０２で示される。新しいアプリケーション・プロファイルを生成するために、アプリケーション・プロファイル・タブ１５０４が活性化され、アプリケーション・プロファイル追加タブ１５０６を有する下部画面を提供することになる。ステータス・ライン１５０８で見られるように、初期ステータスは常に下書き中である。新規追加ボタン１５１０が活性化されると、新規アプリケーション・プロファイル追加ウィンドウ１６００を表示する。
【０１５１】
[0172]図１６を参照する。新規アプリケーション・プロファイル追加１６００において、クラウド・アリケーションの名前が、名前フィールド１６０２に入力される。次いで、アプリケーション・コード・フィールド１６０４において、ボタンが選択されてドロップダウン・リストを設け、特定のクラウド・アプリケーションに割り当てられていた適切なアプリケーション識別子が選択される。プロファイルの残りを完成させることが、これから必要となる。
【０１５２】
[0173]第一に、アプリケーションのバージョンが、バージョン・フィールド１６０６に入力される。次いで、ゾーン環境フィールド１６０８において、ボタンが選択されて、ドロップダウン・リストを設け、展開のための適切な環境が選択される。同様に、全般的に１７００において、ゾーン・コード・フィールド１６１０において、ボタンが選択されて、図１７に示されるドロップダウン・リストのようなドロップダウン・リストを設ける。適切なゾーン・コードが選択されると、ゾーン・コード・フィールド１６１０にデータを読み込む。
【０１５３】
[0174]次に、発効日および時間が発効日フィールド１６１２で選択される。将来日付の選択が承認プロセスが完了するのに可能であり、また、これは、プライベート・クラウドがクラウド・アプリケーションを起動開始する日付となる。発効日が承認なしで経過する場合、承認プロセスが終了しているときには、プライベート・クラウドはクラウド・アプリケーションの実行を開始することになる。失効日フィールド１６１４を完成させることができるがこれは任意である。
【０１５４】
[0175]コンテキスト・フィールド１６１６は、クラウド・アプリケーションについてのコンテキストを含むことになる。例えば、このコンテキスト・フィールドは、http://Cloud.statestreet.com/App1/[default]のような完全な条件つきパス(fully qualified path)をクラウド・アプリケーションに提供する。
【０１５５】
[0176]要求パターン・フィールド１６１８において、サービス要求プレフィックスまたは他の文字が付加される。例えば、このフィールドで発見されるルーティングについてのサービス要求プレフィックスは、クラウド・コントローラが提供する。
【０１５６】
[0177]アプリケーション・イメージ(App Image)フィールド１６２０にデータを読み込むために、図１８のイメージ・ブラウザ・ダイアログ・ウィンドウ１８００をオープンするボタン１６２２が活性化される。ここでは、適切なクラウド・アプリケーションが選択される。１８０２において情報アイコンを選択することによって、図１９の１９００で示されるダイアログ・ウインドウが表示される。ダイアログ・ウインドウはクラウド・アプリケーションの詳細を示す。一旦クラウド・アプリケーションの詳細が正しいことが確認されると、関連イメージ・タブ１９０２が活性化され、図２０の２０００における表示ウィンドウをオープンすることになる。図２０に示される表示ウィンドウの情報が検証された後に、図１９に示されるイメージ・ブラウザ・ウインドウと併せてこのウィンドウを閉じる。次いで、図１８の１８０４において選択されたイメージ・ボタンが活性化され、そして、図１６の１６２４での保存ボタンが活性化されて新規アプリケーション・プロファイルを保存する。保存が終了すると、クラウド・アプリケーションのステータスを下書き中に設定する。
【０１５７】
[0178]ステータスを下書き中から公開済みに変更するためには、図１６のステータス・フィールド１６２６のボタン１６２８を活性化することが必要となる。これには、図２１の２１００で示されるアプリケーション変更プロファイル・ステータス表示ウィンドウをオープンすることになる。新規ステータス・フィールド２１０２において、２１０４のボタンが選択されて、ドロップダウン・リストを設け、そして、適切なステータスが選択される。この例では公開済みである。
【０１５８】
[0179]次に、２１０６のビュー・アラート・ボタンが活性化され、図２２に示すアラート・ダイアログ・ウィンドウ２２００がオープンされることになる。アラートが受理される場合には、２２０２の受理ボタンが活性化され、クラウド・アプリケーションのステータスが公開済みに変更され、一旦すべての承認が得られたらプライベート・クラウドにおいて始動することができる。しかしながら、アラートの性質のために２２０４の拒否ボタンが活性化されると、アプリケーションのステータスは公開済みに変更されることはなく、プライベート・クラウドにおいて始動されないことになる。
【０１５９】
[0180]アラートについて、クラウド・アプリケーションの開発および適用における使用に関して、全般的に説明してきた。これより、アラートについてさらに詳細に説明する。
【０１６０】
[0181]クラウド・アプリケーション・プロファイルが下書き中のステータスである間、クラウド・アプリケーション開発者はクラウド・アプリケーション・プロファイルの変更を行うことができる。自動審査サービスは、クラウド・アプリケーション・プロファイルに対して行われるあらゆる変更に適用されるルール・セットである。
【０１６１】
[0182]アラートは、不合格となったあらゆる自動審査に対して発生される。先に述べたように、アラートは、情報(INFO)、警告(WARN)、エラー(ERROR)、および致命的(FATAL)に分類される。好ましくは、開発者は、各クラウド・アプリケーション・プロファイルの変更と関連付けられたアラートを精査することになる。さらに、適切な承認者、クラウド・マネージャは、それらがクラウド・アプリケーション・プロファイルと関連付けられた非ＩＮＦＯアラートであるときにはアラートを精査しなければならず、その後、クラウド・アプリケーションは、プライベート・クラウドへのライブでの提供に進むことができる。
【０１６２】
[0183]先に説明したように、承認者は、精査後にアラートを受理または拒否することができる。承認者がアラートを受理する場合、クラウド・アプリケーションは開発および適用プロセスに前進する。しかしながら、承認者がアラートを拒否する場合には、クラウド・アプリケーションは、クラウド・アプリケーション・プロファイルのステータスを拒否済みアラートの理由コードと共に拒絶済み(REJECTED)に設定することによって後退する。発生したアラートは、電子メールまたは他のメッセージング方法により承認者に自動的に送信することができ、その結果、このようなアラートの発生に対してアラートされる。
【０１６３】
[0184]一般的には、自動審査メカニズムは、クラウド・アプリケーション・プロファイルにおける問題や課題を識別するためのものである。この自動審査はルールを含む。このルールは、検査した任意のルールが不合格となるときに、自動アラートを発生することになるルールを含む。自動審査ルールは、クラウド・マネージャによって作成される。
【０１６４】
[0185]アラートは、クラウド・アプリケーション・プロファイルの問題および課題と関係している、そして、一旦発生すると、クラウド・マネージャの適正レベルの承認者によって受理または拒否されなければならない。クラウド・マネージャがクラウド・アプリケーション・プロファイルと関連付けられたアラートを受理する場合、クラウド・アプリケーションはプライベート・クラウドにおいてライブで表示される方へプロセスにおいて前進することになる。アラートが拒否される場合、クラウド・アプリケーションは拒絶され、クラウド・アプリケーション・プロファイルのステータスは下書き中に変更される。この場合には、開発者は題を解決しなければならず、その後にアプリケーションが公開済みに前進することができる。
【０１６５】
[0186]図２３Ａを参照する。全般的に２２５０において、自動審査ルール・アプリケーションのアプリケーションと関連付けられたアクションに関係する代表的な図を示している。２２５２において、自動審査ルールは、関連付けられたクラウド・アプリケーション・プロファイルが下書き中のステータスである間に変更されたときに、クラウド・アプリケーションに適用される。「検出」段階では、アラートは、不合格となるあらゆる自動審査ルールごとに発生される。先に述べたように、アラートは、情報、警告、エラー、または致命的と分類される。
【０１６６】
[0187]２２５４の「精査」段階において、開発者は、クラウド・アプリケーション・プロファイルへのあらゆる変更ごとの後に、アラートを精査する。クラウド・マネージャの承認者は、あらゆるアラートを精査する。「制御」段階において、クラウド・マネージャの承認者は、精査後にそのアラートを受理または拒否しなければならない。
【０１６７】
[0188]自動審査ルールの代表的なセットが、全般的に図２３Ｂの２３００において示される。図２３Ｂを参照すると、自動審査ルールの代表的なセットを２３０２で示す。図示されるルールが１０個あるが、この１０個のセットは例示にすぎない。各ルールに関しては、２３０４で示されるルールの厳正性がある。この厳正性は、４つのアラート・ステータス、すなわち、情報、警告、エラー、致命的のうちの１つによって定義される。２３０６において、アラートについて説明される。つまり、任意のクラウド・アプリケーション・プロファイル・ステータスへの変更がある際に、自動審査ルールの各々が検査され、いかなる違反がある限りにおいて、アラートはそのクラウド・アプリケーションに対して申し出る。クラウド・アプリケーションが開発および適用のプロセスにおいて前進できるのは、適切な承認者によるこれらアラート受理に応じたときのみである。
【０１６８】
[0189]図４において、ユーザ・インターフェイス４０２は、ダッシュボード４０６を示す。代表的なダッシュボードの表示が、全般的に図２４の２４００に示される。図示のように、クラウド・アプリケーションおよびゾーンは、クラウド・アプリケーションの健康状態(health)についての調査を可能にするために、詳細にまたは視覚的にビューすることができる。図２４において、２４０１で示されるクラウド・アプリケーションについて、アプリケーションの詳細が２４０２で示され、仮想マシンの詳細が２４０６で示され、そして、仮想詳細(virtual detail)が２４０８で示される。さらに、ゾーンのグラフィック表示について２４１０に示される。
【０１６９】
[0190]２４１０において、ゾーンのグラフィック表示は、２４１２のＴＸ／ＳＬＯ（トランザクション／ＳＬＯ）および２４１８のユーザに関する健康状態が非常に良好であることを示す。２４１６で示される物理マシンの健康状態はこれほどは良好ではない。何故ならば、インジケータの矢印がイエロー域または警告域の近くにあるからである。最後に、２４１４で示される仮想マシンの健康状態は良好でない。何故ならば、インジケータの矢印がレッド域にあるからである。好ましくは、インジケータの矢印がレッド域にあるために、クラウド・マネージャはこれに対してアラートされ、そして、可能であれば、仮想マシンと関連付けられた負荷(loading)課題を是正する。
【０１７０】
[0191]ダッシュボード・ディスプレイ２４００上に表示される様々なタブの選択があり得、これが、システム・アプリケーションおよびインフラストラクチャに関する付加的な健康状態情報を提供するものと理解される。
【０１７１】
[0192]図６および７に関してサービス・レジストリ５２４の説明において、サービス・レジストリのコンテンツについて図示していないが説明してきた。また、サービス・レジストリを通じて、認可されたシステム・ユーザが、サービス・レジストリの入力に関係するウェブ・サービス詳細へのアクセス権を有することについて先に説明してきた。図２５および２６において、サービス・レジストリ・ウインドウおよびウェブ・サービス詳細ウィンドウの代表的な画面表示が示される。
【０１７２】
[0193]図２５を参照する。全般的に２５００において、代表的なサービス・レジストリ表示ウィンドウが示される。２５０２で示すように、各レジストリ入力は、サービスに関する番号、名前、説明および追加情報を有する。この情報は、サービスを認可されたシステム・ユーザによって検索可能にする。認可されたシステム・ユーザがサービス・レジストリでの特定入力に関する詳細情報を要望する場合、図２６に示されるようなウェブ・サービス詳細ウィンドウをオープンするサービス入力を選択することによって取得することができる。
【０１７３】
[0194]図２６を参照する。全般的に２６００において、ウェブ・サービス詳細表示２６０４のウィンドウを有するサービス・レジストリ表示２６０２が示されている。認可されたシステム・ユーザがサービス・レジストリ・ウインドウ２６０２内のサービス・レジストリ番号５１１４４６を選択する場合、サービス・レジストリ番号５１１４４６についての詳細表示ウィンドウ２６０４をオープンし、そのレジストリ番号に関する具体的な詳細情報を提供する。表示ウィンドウ２６０４において、サービス・レジストリ番号５１１４４６に関する基本情報が示される。しかしながら、追加タブのいずれかを選択することによって、追加の詳細情報は、このレジストリ番号について提供されることになる。
【０１７４】
[0195]図２７〜３２を参照する。代表的なクラウド・アプリケーション展開ワークフローについて説明する。
【０１７５】
[0196]図２７を参照する。全般的に２７００において、クラウド・アプリケーション展開ワークフローが、ＰＯＣ／ＤＥＶ／ＳＹＳ環境について示される。ＰＯＣ／ＤＥＶ／ＳＹＳは、ひとまとめにしてゾーンを形成する。この図は、クラウド・アプリケーションがＰＯＣ、ＤＥＶおよびＳＹＳ環境に展開されるときに、クラウド・アプリケーション・プロファイルが行わなければならないプロセスについて示している。
【０１７６】
[0197]２７０２において、開発者はクラウド・アプリケーション・プロファイルへのアクセス権を有することになり、２７０４で示すように、下書き中のステータスである限りプロファイル・ファイルのフィールドを編集する。一旦開発者がクラウド・アプリケーション・プロファイルの変更に満足すると、クラウド・アプリケーション・プロファイルのステータスは２７０６で公開済みに変更される。
【０１７７】
[0198]次に、好ましくは、筆頭の開発者がアプリケーション・プロファイルを精査することになり、それに満足すると、２２０８で示すように、彼／彼女は、クラウド・アプリケーションのステータスを筆頭者(LEAD)承認に変更する。しかしながら、筆頭の開発者が満足しない場合には、彼／彼女は２７１０で拒絶済みとして示すように、アプリケーションを拒絶することができる。そして、クラウド・アプリケーション・プロファイルのステータスを下書き中に戻す。
【０１７８】
[0199]筆頭の開発者がクラウド・アプリケーションを承認する場合、クラウド・アプリケーション・プロファイルは２７１１でクラウド・コントローラに転送される。２７１２に示すように、この時点で引き継ぎを行ったクラウド・コントローラは、クラウド・アプリケーション・プロファイルを検証し、クラウド・アプリケーション・プロファイルのステータスをスケジュール済みに変更する。プライベート・クラウドへの展開の時間になるまで、アプリケーション・プロファイルはそのステータスにとどまることになる。
【０１７９】
[0200]通例、クラウド・アプリケーションを展開する時間は、クラウド・アプリケーション・プロファイルにおいて示される。展開の時間がくると、クラウド・コントローラは、クラウド・アプリケーションのインストールするための提供(provisioning)を同時に実行しながら、２７１３において、クラウド・アプリケーション・プロファイルのステータスをインストール中に変更する。クラウド・コントローラは、サービス・インベントリ・ファイルを抽出し、サービス・メタデータおよびアクセス制御情報、２７１５のｅＳＦ更新、ならびに２７１４のサービス・レジストリ更新を読み取る。一旦インストールが完了すると、クラウド・アプリケーション・プロファイルのステータスは２７１６で起動中に変更される。好ましくは、起動中とは、プライベート・クラウドにおいてクラウド・アプリケーションがライブで起動していることを意味する。
【０１８０】
[0201]図２８を参照する。全般的に２８００において、クラウド・アプリケーション展開ワークフローがＰＯＣ／ＤＥＶ／ＳＹＳ環境について示されている。ＵＡＴ／ＰＲＥＰＲＯＤ／ＰＲＯＤは、ひとまとめにしてゾーンを形成する。図２８において、２７０４の下書き中、２７０６の公開済み、２７０８の筆頭者承認、２７１０の拒絶済み、２７１２のスケジュール済み、２７１３のインストール中、２７１５のｅＳＦ更新および２７１４のレジストリ更新に関するワークフロー・プロセスは、図２７のそれらと同様である。したがって、図２７に関するこれら項目の説明が同等に適用され、参照によりここに組み込むものとする。
【０１８１】
[0202]ＵＡＴおよびＰＲＯＤ環境へのクラウド・アプリケーションを展開するときに、ワークフローは２７０８で筆頭者承認の後にさらに３つの承認を要求する。これらの承認は、２８０２の管理者承認、２８０４のＳＱＡ承認および２８１０のビジネス承認を含む。これら追加承認より多いまたは少ない承認とすることができ、なおも本発明の範囲内にあるものとすることができる。
【０１８２】
[0203]図２９を参照する。全般的に２９００において、非常事態についてのクラウド・アプリケーション展開ワークフローが示される。図２９において、２７０４の下書き中、２７０６の公開済み、２７０８の筆頭者承認、２７１０の拒絶済み、２８０２の管理者承認、２８０４のＳＱＡ承認、２８１０のビジネス承認、および２７１２のスケジュール済みに関係するワークフロー・プロセスは、図２８のそれらと同一である。ただし、２７０８の筆頭者承認および２８０２の管理者承認が開発者２７０２の一部であり、また、２８０４のＳＱＡ承認および２８１０のビジネス承認が非常時承認２９０４を含む代替のフロー２９０２でグルーピングされることを除く。したがって、図２８に関するこれらの項目の説明が同様に適用され、参照により組み込むものとする。
【０１８３】
[0204]クラウド・アプリケーション・プロファイルを非常時の展開として移行することを開発者が要求する場合に、図２９のワークフローが用いられる。非常時の展開ワークフローにおいて、ＳＱＡ承認およびビジネス承認、２９０４で非常時承認へのアクセス権を有する認可された人によって、スキップすることができる。好ましくは、非常時ワークフローは、前に展開へ移動することを必要とする、予想外であるが、クリティカルな技術変更を展開するためのものである。この技術変更は、緊急に展開へと前進する必要がある。
【０１８４】
[0205]図３０を参照する。全般的に３０００において、モラトリアム・クラウド・アプリケーション展開ワークフローを示している。図２９において、２７０４の下書き中、２７０６の公開済み、２７０８の筆頭者承認、２７１０の拒絶済み、２８０２の管理者承認、２８０４のＳＱＡ承認、２８１０のビジネス２７１２のスケジュール済み、および２９０４の非常時承認に関係するワークフロー・プロセスは、図２９のそれらと同様である。したがって、図２９に関するこれらの項目の説明が同等に適用され、参照により組み込むものとする。
【０１８５】
[0206]クラウド・アプリケーションが毎月のモラトリアムまたは他の一定の期間の間に移行される必要があるときに、モラトリアム展開ワークフローが用いられる。例えば、１ヵ月の最終営業日と第１営業日とを一致させることができる。この間は、ライブでのクラウド・アプリケーションの変更が制限される。
【０１８６】
[0207]図３０によれば、代替のワークフロー２９０２が、３００２のモラトリアム承認１および３００４のモラトリアム承認２を含む。これら後者の承認は、企業内で高位レベルのエンティティから得られる。
【０１８７】
[0208]図３１を参照する。全般的に３１００において、展開プロセスからアプリケーションを後退させるためのクラウド・アプリケーション展開ワークフローを示している。クラウド・アプリケーションの展開がクラウド・アプリケーションにおいて予想外の故障という結果となるとき、プライベート・クラウドから後退されるために展開されたクラウド・アプリケーションのバージョンが必要となることがある。
【０１８８】
[0209]展開されたクラウド・アプリケーションで課題が検出されるとき、アプリケーションを取り消すかどうかの決定がなされる。これは、アプリケーションの「取消」ファイルの作成によって行うことができる。このファイルは、クラウド・アプリケーションについてのバイナリを用いて作成することができる。このバイナリは、クラウド・アプリケーションが課題を有する前に展開されたものである。取消のプロファイルは、これらのバイナリを用いている開発者によって作成される。
【０１８９】
[0210]再度図３１を参照する。取消アプリケーション展開ワークフローを視覚的に示している。３１０２において、展開されたクラウド・アプリケーションのバージョンで検出された課題が一旦存在すれば、取消プロファイルを作成および使用すべきかどうかについて決定しなければならない。
【０１９０】
[0211]取消プロファイルを作成することが決定された場合は、このプロセスは３１０４へ進む。３１０４において、取消プロファイルは、アプリケーション・コントロールパネルを用いて作成することができる。取消プロファイルを作成する際、以前に展開したクラウド・アプリケーションだけを使用することができる。さらに、一旦取消プロファイルが作成されると、それは変更することができない。行動ログは、取消プロファイルに関係した履歴の経過を追う。
【０１９１】
[0212]一旦取消ファイルが作成されると、このプロセスは３１０６へ進む。ここでは、適切な承認を得ることが必要となる。少なくとも図２７〜３０および３２に示したワークフローと整合するようにして、これらの承認が得られる。
【０１９２】
[0213]図３２を参照する。全般的に３２００において、だいたいのクラウド・アプリケーション展開ワークフローを示しており、自動アラートが組み込まれる。図３２において、２７０４の下書き中、２７０６の公開済み、２７０８の筆頭者承認、２７１０の拒絶済み、２８０２の管理者承認、２８０４のＳＱＡ承認、２８１０のビジネス承認および２７１２のスケジュール済みに関するワークフロー・プロセスは、図２９におけるそれらと同様である。したがって、図２９に関するこれらの項目の説明が同等に適用され、参照により組み込むものとする。
【０１９３】
[0214]図３２に示されるワークフローは、各段階における自動審査ルールの使用を組み込む。２７０４において、下書き中のステータスを有するクラウド・アプリケーションは３２０２において変更されるクラウド・アプリケーション・プロファイルを有し、次いで、自動審査ルールは、３２０４においてその変更を評価する。これにより、３２０６でアプリケーション・プロファイル・アラートを発生することになる。開発者は、次いで、３２０８においてアラートを生じさせた課題を解決する。この解決が適切なものと考えられる場合には、クラウド・アプリケーションは２７０６の公開済みとなる。しかしながら、３２０５の代替のワークフローにおける各段階で、各承認レベルは、アプリケーションが次の承認ステージへ移るために、３０１０、３０１２、３０１４、および３０１６に示すように、アラートを受理しなければならない。承認された段階のいずれかでアラートが拒否された場合は、ワークフローは３２１８でアラートを拒否するために移り、２７１０でアプリケーションを拒絶する。アプリケーションがこのようにして拒絶されるとき、そのステータスは下書き中に戻され、このプロセスはクラウド・アプリケーションをプライベート・クラウドの展開に移すために、再度開始しなければならない。
【０１９４】
[0215]本発明のシステムおよび方法における本実施形態やその部分は、コンピュータ・ハードウェア、ファームウェア、および／またはプログラム可能なコンピュータやサーバ上で起動できるコンピュータ・プログラムに実装することができる。プログラム可能なコンピュータかサーバは、それぞれプロセッサおよび当該プロセッサによって読み取り可能な（揮発性および不揮発性メモリ、ならびに／またはストレージ・エレメントを含んだ）ストレージ媒体を含む。いかなるコンピュータ・プログラムも、コンピュータ・ベース・システムの内側および外側で通信するために、高位レベル手順であるかオブジェクト指向プログラミング言語で実装することができる。
【０１９５】
[0216]いかなるコンピュータ・プログラムも、例えばストレージ媒体（例えば、ＣＤ―ＲＯＭ、ハードディスクや磁気ディスケット）またはデバイス（例えば、コンピュータ周辺機器）のような製造品上に格納することができる。コンピュータ・プログラムは、汎用または専用目的のプログラム可能なコンピュータによって読み取り可能であり、ストレージ媒体やデバイスがコンピュータで読み取られて本実施形態の機能を実行する際に、そのコンピュータを構成し動作させる。本実施形態やその部分はまた、コンピュータ・プログラムを用いて構成されるマシン読み取り可能ストレージ媒体として実装することもできる。そこでは、実行時に、コンピュータ・プログラム内の命令によって先に述べた本実施形態の機能を実行するようにマシンに動作させる。
【０１９６】
[0217]本発明のシステムおよび方法における本実施形態やその部分は、様々なアプリケーションで使用することができる。本実施形態やその部分はこの点では制限されていなが、本実施形態やその部分は、他の電気コンポーネントにおいて、マイクロコントローラ、汎用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、縮小命令セット・コンピューティング（ＲＩＳＣ）および複合命令セット・コンピューティング（ＣＩＳＣ）のメモリデバイスを用いて実施することができる。さらには、先に説明した本実施形態やその部分はまた、メイン・メモリとして称される集積回路ブロック、キャッシュメモリ、マイクロプロセッサによって実行される電気命令を格納、または算術演算において使用できるデータを格納する他のタイプのメモリを用いて、実施することができる。
【０１９７】
[0218]本説明は、いかなるコンピューティング環境または処理環境においても適用可能である。本実施形態またはその部分は、ハードウェア、ソフトウェアまたはこれら２つの組合せにおいて実施することができる。例えば、本実施形態やその部分は、１以上のプログラム可能ロジック（例えば、ＡＳＩＣ）、論理ゲート、プロセッサおよびメモリのような回路を使用して実施することができる。
【０１９８】
[0219]開示した実施形態に対するさまざまな変更態様が当業者にとって明らかであり、一般原則を他の実施形態およびアプリケーションに適用することができる。このように、本発明は、本明細書に図示および説明した実施形態に限定されることを意図するものではない。
【図１７】
0005982366.tif 000002
【図１】
0005982366.tif 000003
【図２Ａ】
0005982366.tif 000004
【図２Ｂ】
0005982366.tif 000005
【図３】
0005982366.tif 000006
【図４】
0005982366.tif 000007
【図５】
0005982366.tif 000008
【図６】
0005982366.tif 000009
【図７】
0005982366.tif 000010
【図８】
0005982366.tif 000011
【図９】
0005982366.tif 000012
【図１０】
0005982366.tif 000013
【図１１】
0005982366.tif 000014
【図１２】
0005982366.tif 000015
【図１３】
0005982366.tif 000016
【図１４】
0005982366.tif 000017
【図１５】
0005982366.tif 000018
【図１６】
0005982366.tif 000019
【図１８】
0005982366.tif 000020
【図１９】
0005982366.tif 000021
【図２０】
0005982366.tif 000022
【図２１】
0005982366.tif 000023
【図２２】
0005982366.tif 000024
【図２３Ａ】
0005982366.tif 000025
【図２３Ｂ】
0005982366.tif 000026
【図２４】
0005982366.tif 000027
【図２５】
0005982366.tif 000028
【図２６】
0005982366.tif 000029
【図２７】
0005982366.tif 000030
【図２８】
0005982366.tif 000031
【図２９】
0005982366.tif 000032
【図３０】
0005982366.tif 000033
【図３１】
0005982366.tif 000034
【図３２】
0005982366.tif 000035