JP2013516668A - プラットフォーム間での仮想イメージのポーティング - Google Patents

プラットフォーム間での仮想イメージのポーティング Download PDF

Info

Publication number
JP2013516668A
JP2013516668A JP2012546408A JP2012546408A JP2013516668A JP 2013516668 A JP2013516668 A JP 2013516668A JP 2012546408 A JP2012546408 A JP 2012546408A JP 2012546408 A JP2012546408 A JP 2012546408A JP 2013516668 A JP2013516668 A JP 2013516668A
Authority
JP
Japan
Prior art keywords
model
target
topology
source
platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012546408A
Other languages
English (en)
Other versions
JP5669861B2 (ja
Inventor
ポッダル、インドラジット
スハレフ、イゴル
ミロシキン、アレクセイ
ポノマレフ、ヴラディスラフ、ボリソヴィチ
ガポネンコ、ユリア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013516668A publication Critical patent/JP2013516668A/ja
Application granted granted Critical
Publication of JP5669861B2 publication Critical patent/JP5669861B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】実施形態において、ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求める手法を提供する。
【解決手段】この、相違を求めることは、プロセッサによって実行され、その結果トポロジ相違が得られる。アセット・ライブラリからワークフロー・モデル内の動作が取得され、この動作は、トポロジ相違に関連する。アセット・ライブラリの少なくとも一部分は、永続ストレージ媒体に記憶されている。ソリューションの一部分を展開する動作が、展開のために送られる。ソリューションの展開される一部分は、ターゲット・プラットフォームと互換性があるターゲット・イメージを含む。
【選択図】図5

Description

本発明は、分散コンピュータ・システムの分野に関する。特に、本発明は、仮想イメージをプラットフォーム間でポーティングする方法及びシステムに関する。
クラウド・コンピューティングは、インターネット・ベースのサービスを表す用語である。インターネット・ベースのサービスは、サービス・プロバイダによってホストされる。サービス・プロバイダは、リクエスト側のクライアントに、コンピュータ・ネットワーク上でハードウェア・インフラストラクチャ又はソフトウェア・アプリケーションを提供し得る。リクエスト側のクライアントは、このソフトウェア・アプリケーションに、従来のクライアント・ベースの「ブラウザ」ソフトウェア・アプリケーションを使用してアクセスすることもでき、ソフトウェア(命令)及びデータは、クラウド・コンピューティング・プロバイダによって維持されるサーバ上に記憶される。
クラウド・コンピューティング環境におけるアプリケーションの実行をサービス・プロバイダが活用することを可能にするには、サービス・プロバイダが、その既存のアプリケーションをクラウド・コンピューティング環境に移すことができる必要がある。あるいは、サービス・プロバイダは、そのアプリケーションを、1つのコンピューティング環境から別のコンピューティング環境にポーティングしなければならないこともある。
アプリケーションを1つの環境から別の環境にポーティングすることは、多くの場合、実行に時間がかかり、困難である。イメージ・フォーマットは、クラウド・コンピューティング環境によってサポートされるハイパーバイザ技術に特有であるため、1つ以上の仮想イメージ内のプラットフォーム独立ソリューションを1つのクラウド・プロバイダから別のクラウド・プロバイダにポーティングすることは、困難である。さらに、クラウド特有ハイパーバイザ要件に準拠するよう、ゲスト・オペレーティング・システムにおける面倒な手動構成ステップが複数必要とされ、部分的にインストール及び構成された適切なバージョンの依存ソフトウェア・コンポーネントなどを備えるベース・イメージは、利用可能でないことが多い。
特許文献1は、ユーザの指定に従い仮想マシン(VM:virtual machine)を自動的に構成して、VMを物理ホスト上に展開するプロビジョニング・サーバを開示している。ユーザは、事前構成された、すぐに展開できるVMのリストから選ぶことも、又はユーザがVMにどのハードウェア、オペレーティング・システム、及びアプリケーション(単数又は複数)を望むかを選択することもできる。続いてプロビジョニング・サーバは、所望の構成が利用可能であればそれに応じてVMを構成し、又は、利用可能でなければ、ヒューリスティック法を適用して、ユーザのリクエストに最もよく合うVMを構成する。この発明はさらに、VM及びホストのステータスの監視、ホスト間でのVMのマイグレート、及びVMのネットワークの作成のためのメカニズムを含む。
特許文献2の開示では、少なくとも1つのソース・ディスクの状態を含むソース・コンピュータのハードウェア及びソフトウェア構成のソース・イメージが、自動的に獲得される。ソース・コンピュータは、準備が行われないままでよく、コンピュータのクローニング及び再構成を促進するプログラムは必要とされない。ソース・イメージは、自動的に分析されて、宛先コンピュータのハードウェア構成が判断される。ソース・イメージは、宛先コンピュータとの互換性又はカスタマイズのいずれかのために、必要に応じて変更され、変更される場合はその変更の後、ソース・イメージは宛先コンピュータ上に展開される。ソース及び宛先コンピュータのいずれか又は両方を、仮想マシンとすることもできる。
米国特許出願公開第2009/0282404号 米国特許第7356679号
しかし、上記の従来技術のソリューションはいずれも、1つ以上の仮想イメージを含む部分的/完全なソリューションを互換性チェック/情報を用いて1つのクラウド・コンピューティング環境から別のクラウド・コンピューティング環境にポーティングする手段を開示していない。
実施形態において、ソース・プラットフォーム(source platform)に関連するソース・トポロジ・モデル(source topology model)及びターゲット・プラットフォーム(target platform)に関連するターゲット・トポロジ・モデル(target topology model)の相違を求める(differencing)手法が提供される。この、相違を求めることは、プロセッサによって実行され、その結果、トポロジ相違(topology difference)が得られる。ワークフロー・モデル内の動作がアセット・ライブラリから取得され、この動作は、トポロジ相違に関連する。アセット・ライブラリの少なくとも一部分は、永続ストレージ媒体に記憶されている。ソリューションの一部分を展開する動作が、展開のために送られる。ソリューションの展開される一部分は、ターゲット・プラットフォームと互換性があるターゲット・イメージ(target image)を含む。
前述の事項は要約であり、したがって、必然的に、細部の単純化、一般化、及び省略を含む。その結果として、当業者には当然のことながら、この要約は例示にすぎず、いかなる形でも限定するものとしては意図されていない。特許請求の範囲によってのみ定義される、他の側面、発明に関する特徴、及び利点は、以下に記載される非限定的な詳細な説明において明らかになる。
第1側面から見ると、本発明は、情報処理システムによって実装される方法を提供し、この方法は、ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求めるステップであって、その結果、トポロジ相違が得られ、相違を求めるステップの少なくとも一部分は、プロセッサによって実行される、ステップと、ワークフロー・モデル内の動作をアセット・ライブラリから取得するステップであって、動作は、トポロジ相違に関連し、アセット・ライブラリの少なくとも一部分は、永続ストレージ媒体に記憶されている、ステップと、ソリューションの少なくとも一部分を展開するために動作を送るステップであって、ソリューションの展開される一部分は、ターゲット・プラットフォームと互換性があるターゲット仮想イメージを含む、ステップとを含む。
好適には、本発明は、動作を実行することによってソリューションの一部分をターゲット・プラットフォームにて展開するステップをさらに含む方法を提供する。
好適には、本発明は、展開するステップの結果が、ソース・プラットフォームからターゲット・プラットフォームへのソリューションのポーティングを含む、方法を提供する。
好適には、本発明は、ソース・プラットフォームが第1クラウドであり、ターゲット・プラットフォームが第2クラウドである、方法を提供する。
好適には、本発明は、ソリューションが複合ソリューションであり、第2クラウドが複数のクラウドを含む、方法を提供する。
好適には、本発明は、ソース・プラットフォームがプライベート・クラウドであり、ターゲット・プラットフォームがパブリック・クラウドである、方法を提供する。
好適には、本発明は、ターゲット・プラットフォームに関連する少なくとも1つのベース仮想イメージ・メタデータ(base virtual image metadata)を求めてメタデータを検索するステップをさらに含む方法を提供する。
好適には、本発明は、1つ以上のクラウド特有仮想イメージ・ライブラリにおいて、メタデータを検索するステップをさらに含む方法を提供する。
好適には、本発明は、検索において使用される入力パラメータを読み出すステップであって、入力パラメータは、ターゲット・トポロジ・モデルによって提供される、ステップをさらに含む方法を提供する。
好適には、本発明は、アセット・ライブラリに記憶されているメタデータから、1つ以上のベース仮想イメージ記述(base virtual image description)を、検索に応答して読み出すステップをさらに含む方法を提供する。
好適には、本発明は、ソース・プラットフォームが第1クラウドであり、ターゲット・プラットフォームが第2クラウドである、方法を提供し、この方法は、ソース・プラットフォームに対応する第1組のモデル・ユニット(model unit)を、アセット・ライブラリから読み出すステップと、ターゲット・プラットフォームに対応する第2組のモデル・ユニットを、アセット・ライブラリから読み出すステップであって、相違を求めるステップの結果、共通する1つ以上のモデル・ユニット及び異なる1つ以上のモデル・ユニットが得られる、ステップと、共通するモデル・ユニットそれぞれに対応する、第1組の1つ以上のワークフロー・ステップを再使用するステップと、異なるモデル・ユニットのうちの1つ以上に対応する、第2組の1つ以上のワークフロー・ステップを、アセット・ライブラリから読み出すステップと、再使用された第1組のワークフロー・ステップ及び読み出された第2組のワークフロー・ステップを使用して、ワークフロー・モデルを作成するステップとをさらに含む。
好適には、本発明は、トポロジ相違をソース・トポロジ・モデル及びターゲット・トポロジ・モデルに関連付けるステップと、トポロジ相違及び関連付けを、パッチとしてアセット・ライブラリに記憶するステップとをさらに含む方法を提供する。
好適には、本発明は、ソース・トポロジ・モデルと部分的に共通している第2ソース・トポロジ・モデル、及びターゲット・プラットフォームと部分的に共通している第2ターゲット・プラットフォームを受け取るステップと、アセット・ライブラリにおいて、該パッチを含む1つ以上のパッチを検索するステップであって、検索は、関連付けられたソース・トポロジ・モデルを含む、ステップと、検索に応答して、アセット・ライブラリからパッチを読み出すステップと、読み出されたパッチを、第2ソース・トポロジ・モデルに適用するステップであって、その結果、第2ターゲット・プラットフォームに関連する第2ターゲット・トポロジ・モデルが得られる、ステップとをさらに含む方法を提供する。
好適には、本発明は、ソリューションが、複数の仮想部分から成る複合ソリューションであり、仮想部分が、仮想イメージ並びにその構成要素であるゲストOS、ミドルウェア、及びアプリケーション・モデル・ユニットのモデルから成り、各仮想部分が、種々のターゲット・プラットフォームに展開され、各ターゲット・プラットフォームは、パブリック・クラウド又はプライベート・クラウドのいずれかに対応する、方法を提供する。
好適には、本発明は、完全なソリューションを展開するために、該動作を含む複数の動作を送るステップをさらに含む方法を提供する。
好適には、本発明は、相違を求めるステップが、ソース・プラットフォームに対応する第1組のモデル・ユニットを特定するステップと、ターゲット・プラットフォームに対応する第2組のモデル・ユニットを特定するステップと、第1組のモデル・ユニットと、第2組のモデル・ユニットとを比較するステップであって、比較の結果、一組の変更された1つ以上のモデル・ユニットと、一組の共通する1つ以上のモデル・ユニットとが得られる、ステップと、共通するモデル・ユニットに対応する第1組の自動化ステップ・モデルを、ソース・トポロジ・モデルから読み出すステップと、変更されたモデル・ユニットを求めてアセット・ライブラリを検索するステップであって、検索の結果、変更されたモデル・ユニットに対応する第2組の自動化ステップ・モデルが得られる、ステップと、第1及び第2組の自動化ステップ・モデルをワークフロー・モデルに含めるステップとをさらに含む方法を提供する。
好適には、本発明は、相違を求めるステップの結果、1つ以上の新たなユニットが特定される、方法を提供し、新たなユニットは、ターゲット・トポロジ・モデルにおいて発見され、ソース・トポロジ・モデルにおいては発見されず、この方法は、新たなユニットを求めてアセット・ライブラリを検索するステップをさらに含む。
好適には、本発明は、ソリューションの一部分を展開する動作が、1つのクラウド・ベンダから別のクラウド・ベンダにソリューションの一部分がポーティングされることを可能にする、方法を提供する。
好適には、本発明は、ソリューションの一部分を展開する動作が、セキュリティ・ファイアウォールを設定する、方法を提供する。
好適には、本発明は、ソリューションの一部分を展開する動作が、ターゲット・プラットフォームにおいてターゲット仮想イメージをインスタンス化する、方法を提供する。
好適には、本発明は、ソース・プラットフォームが、第1組の1つ以上のコンピュータ・システム上で実行されている第1ハイパーバイザであり、ターゲット・プラットフォームが、第2組の1つ以上のコンピュータ・システム上で実行されている第2ハイパーバイザであり、第1及び第2ハイパーバイザは、異なるタイプのハイパーバイザである、方法を提供する。
好適には、本発明は、ソース及びターゲット・トポロジ・モデルがそれぞれ、1つ以上のソフトウェア・アプリケーション・コンポーネント、ミドルウェア・ソフトウェア・アプリケーション・コンポーネント、及びゲスト・オペレーティング・システム・コンポーネントを記述するメタデータを含む、方法を提供する。
好適には、本発明は、ソース及びターゲット・トポロジ・モデルとともに含まれるメタデータがそれぞれ、1つ以上の仮想イメージ展開パラメータをさらに含み、ソース・トポロジ・モデルが、ソース・クラウドに対応するソース構成パラメータ並びにソース認証情報及びソース・サービス・エンドポイントのソース・トポロジ・モデル・ユニットを含み、ターゲット・トポロジ・モデルが、ターゲット・クラウドに対応するターゲット構成パラメータ並びにターゲット認証情報及びターゲット・サービス・エンドポイントのターゲット・トポロジ・モデル・ユニットを含む、方法を提供する。
好適には、本方法は、ソース・トポロジ・モデル・ユニットそれぞれと、ソース自動化ステップ・モデルとを関連付けるステップであって、ソース自動化ステップ・モデルは、関連付けられたソース・トポロジ・モデル・ユニットを展開するために使用される動作のうちの1つ以上を詳述する、ステップと、ターゲット・トポロジ・モデル・ユニットそれぞれと、ターゲット自動化ステップ・モデルとを関連付けるステップであって、ターゲット自動化ステップ・モデルは、関連付けられたターゲット・トポロジ・モデル・ユニットを展開するために使用される動作のうちの1つ以上を詳述する、ステップと、ターゲット自動化ステップ・モデルそれぞれを、ワークフロー・モデルに記憶するステップとをさらに含む方法を提供する。
好適には、本発明は、ソリューションの一部分を展開する動作の実行が、マルチテナンシを可能にする、方法を提供する。
好適には、本発明は、ソリューションの一部分を展開する動作の実行が、様々なワークロードを可能にする、方法を提供する。
別の側面から見ると、本発明は、1つ以上のプロセッサと、プロセッサのうちの少なくとも1つによってアクセス可能なメモリと、プロセッサのうちの少なくとも1つによってアクセス可能な永続ストレージ媒体と、情報処理システムをコンピュータ・ネットワークに接続するネットワーク・インターフェイスであって、プロセッサのうちの少なくとも1つによってアクセス可能な、ネットワーク・インターフェイスと、メモリに記憶された一組の命令とを含む、情報処理システムであって、該一組の命令は、以下のアクション:ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求めることであって、その結果、トポロジ相違が得られる、相違を求めること、ワークフロー・モデル内の動作をアセット・ライブラリから取得することであって、動作は、トポロジ相違に関連し、アセット・ライブラリの少なくとも一部分は、永続ストレージ媒体に記憶されている、取得すること、及びソリューションの少なくとも一部分を展開するために動作を送ることであって、ソリューションの展開される一部分は、ターゲット・プラットフォームと互換性があるターゲット仮想イメージを含む、送ること、を実行するために、プロセッサのうちの少なくとも1つによって実行される、情報処理システムを提供する。
好適には、本発明は、アクションが、動作を実行することによってソリューションの一部分をターゲット・プラットフォームにて展開することをさらに含む、情報処理システムを提供する。
好適には、本発明は、ソース・プラットフォームが第1クラウドであり、ターゲット・プラットフォームが第2クラウドである、情報処理システムを提供する。
好適には、本発明は、アクションが、ターゲット・プラットフォームに関連する少なくとも1つのベース仮想イメージ・メタデータを求めてメタデータを検索することをさらに含む、情報処理システムを提供する。
好適には、本発明は、アクションが、アセット・ライブラリに記憶されているメタデータから、1つ以上のベース仮想イメージ記述を、検索に応答して読み出すことをさらに含む、情報処理システムを提供する。
好適には、本発明は、ソース・プラットフォームが第1クラウドであり、ターゲット・プラットフォームが第2クラウドである、情報処理システムを提供し、アクションは、ソース・プラットフォームに対応する第1組のモデル・ユニットを、アセット・ライブラリから読み出すこと、ターゲット・プラットフォームに対応する第2組のモデル・ユニットを、アセット・ライブラリから読み出すことであって、相違を求めることの結果、共通する1つ以上のモデル・ユニット及び異なる1つ以上のモデル・ユニットが得られる、読み出すこと、共通するモデル・ユニットそれぞれに対応する、第1組の1つ以上のワークフロー・ステップを再使用すること、異なるモデル・ユニットのうちの1つ以上に対応する、第2組の1つ以上のワークフロー・ステップを、アセット・ライブラリから読み出すこと、並びに、再使用された第1組のワークフロー・ステップ及び読み出された第2組のワークフロー・ステップを使用して、ワークフロー・モデルを作成することをさらに含む。
好適には、本発明は、アクションが、トポロジ相違をソース・トポロジ・モデル及びターゲット・トポロジ・モデルに関連付けること、並びに、トポロジ相違及び関連付けを、パッチとしてアセット・ライブラリに記憶することをさらに含む、情報処理システムを提供する。
好適には、本発明は、アクションが、ソース・トポロジ・モデルと部分的に共通している第2ソース・トポロジ・モデル、及びターゲット・プラットフォームと部分的に共通している第2ターゲット・プラットフォームを受け取ること、アセット・ライブラリにおいて、該パッチを含む1つ以上のパッチを検索することであって、検索は、関連付けられたソース・トポロジ・モデルを含む、検索すること、検索に応答して、アセット・ライブラリからパッチを読み出すこと、並びに、読み出されたパッチを、第2ソース・トポロジ・モデルに適用することであって、その結果、第2ターゲット・プラットフォームに関連する第2ターゲット・トポロジ・モデルが得られる、適用することをさらに含む、情報処理システムを提供する。
好適には、本発明は、アクションが、ソース・プラットフォームに対応する第1組のモデル・ユニットを特定すること、ターゲット・プラットフォームに対応する第2組のモデル・ユニットを特定すること、第1組のモデル・ユニットと、第2組のモデル・ユニットとを比較することであって、比較の結果、一組の変更された1つ以上のモデル・ユニットと、一組の共通する1つ以上のモデル・ユニットとが得られる、比較すること、共通するモデル・ユニットに対応する第1組の自動化ステップ・モデルを、ソース・トポロジ・モデルから読み出すこと、変更されたモデル・ユニットを求めてアセット・ライブラリを検索することであって、検索の結果、変更されたモデル・ユニットに対応する第2組の自動化ステップ・モデルが得られる、検索すること、並びに、第1及び第2組の自動化ステップ・モデルをワークフロー・モデルに含めることをさらに含む、情報処理システムを提供する。
好適には、本発明は、相違を求めることの結果、1つ以上の新たなユニットが特定され、新たなユニットは、ターゲット・トポロジ・モデルにおいて発見され、ソース・トポロジ・モデルにおいては発見されず、アクションが、新たなユニットを求めてアセット・ライブラリを検索することをさらに含む、情報処理システムを提供する。
好適には、本発明は、ソース・プラットフォームが、第1組の1つ以上のコンピュータ・システム上で実行されている第1ハイパーバイザであり、ターゲット・プラットフォームが、第2組の1つ以上のコンピュータ・システム上で実行されている第2ハイパーバイザであり、第1及び第2ハイパーバイザが、異なるタイプのハイパーバイザである、情報処理システムを提供する。
好適には、本発明は、ソース及びターゲット・トポロジ・モデルがそれぞれ、1つ以上のソフトウェア・アプリケーション・コンポーネント、ミドルウェア・ソフトウェア・アプリケーション・コンポーネント、及びゲスト・オペレーティング・システム・コンポーネントを記述するメタデータを含む、情報処理システムを提供する。
好適には、本発明は、ソース及びターゲット・トポロジ・モデルとともに含まれるメタデータがそれぞれ、1つ以上の仮想イメージ展開パラメータをさらに含み、ソース・トポロジ・モデルが、ソース・クラウドに対応するソース構成パラメータ並びにソース認証情報及びソース・サービス・エンドポイントのソース・トポロジ・モデル・ユニットを含み、ターゲット・トポロジ・モデルが、ターゲット・クラウドに対応するターゲット構成パラメータ並びにターゲット認証情報及びターゲット・サービス・エンドポイントのターゲット・トポロジ・モデル・ユニットを含む、情報処理システムを提供する。
好適には、本発明は、アクションが、ソース・トポロジ・モデル・ユニットそれぞれと、ソース自動化ステップ・モデルとを関連付けることであって、ソース自動化ステップ・モデルは、関連付けられたソース・トポロジ・モデル・ユニットを展開するために使用される動作のうちの1つ以上を詳述する、関連付けること、ターゲット・トポロジ・モデル・ユニットそれぞれと、ターゲット自動化ステップ・モデルとを関連付けることであって、ターゲット自動化ステップ・モデルは、関連付けられたターゲット・トポロジ・モデル・ユニットを展開するために使用される動作のうちの1つ以上を詳述する、関連付けること、及び、ターゲット自動化ステップ・モデルそれぞれを、ワークフロー・モデルに記憶することをさらに含む、情報処理システムを提供する。
別の側面から見ると、本発明は、ターゲット・プラットフォームに展開されるトポロジ・モデル・ユニットを取得するステップと、受け取られたトポロジ・モデル・ユニットに関連する、選択される自動化ステップ・モデルを求めて、永続ストレージ媒体に記憶されたアセット・ライブラリに記憶されている複数の自動化ステップ・モデルを検索するステップであって、検索は、1つ以上のプロセッサによって実行される、ステップと、アセット・ライブラリから、1つ以上の展開動作を取得するステップであって、取得される展開動作は、選択された自動化ステップ・モデルに関連する、ステップと、トポロジ・モデル・ユニットをターゲット・プラットフォームに展開するために、取得された展開動作を実行するステップとを含む、情報処理システムによって実装される方法を提供する。
好適には、本発明は、検索するステップが、複数の自動化ステップ・モデルから一組の自動化ステップ・モデルを特定するステップであって、一組の自動化ステップ・モデルはそれぞれ、トポロジ・モデル・ユニットに関連する、ステップと、一組の特定された自動化ステップ・モデルと、一組の基準とを比較するステップであって、比較の結果、選択される自動化ステップ・モデルが特定される、ステップとをさらに含む、方法を提供する。
好適には、本発明は、プロセッサを使用して、永続性ストレージ媒体からソース・イメージ・メタデータを読み出すステップであって、ソース・イメージ・メタデータは、ソース・プラットフォームに関連するソース・イメージに対応する、ステップと、読み出されたソース・イメージ・メタデータと、ターゲット・プラットフォームに関連する1つ以上の利用可能な仮想イメージに対応する1つ以上の利用可能なイメージ・メタデータとを、プロセッサによって比較するステップと、比較に基づき、利用可能なイメージ・メタデータのうち、ソース・イメージ・メタデータに対し最も互換性が高い1つを特定するステップと、特定された利用可能なイメージ・メタデータに対応する利用可能な仮想イメージを、ターゲット・プラットフォームと互換性があるターゲット仮想イメージとして使用するステップとを含む、情報処理システムによって実装される方法を提供する。
好適には、本発明は、ソース・イメージ・メタデータがソース・トポロジ・モデルに関連し、ターゲット・プラットフォームがターゲット・トポロジ・モデルに関連する、方法を提供する。
好適には、本発明は、ソース・イメージ・メタデータ及び利用可能なイメージ・メタデータが、ソフトウェア・コンポーネント・メタデータを含む、方法を提供する。
好適には、本発明は、利用可能な仮想イメージを、使用前に改善するステップをさらに含む方法を提供する。
好適には、本発明は、改善するステップが、利用可能な仮想イメージに含まれている1つ以上のソフトウェア・コンポーネントを更新するステップをさらに含む、方法を提供する。
好適には、本発明は、更新するステップが、ソフトウェア・コンポーネントのうちの1つを追加するステップを含む、方法を提供する。
別の側面から見ると、本発明は、トポロジ相違に関連する動作を取得するステップであって、トポロジ相違は、ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違である、ステップと、取得された動作を実行することによってソリューションの少なくとも一部分を展開するステップであって、ソリューションの展開される一部分は、ターゲット・プラットフォームと互換性があるターゲット・イメージを含む、ステップとを含む方法を提供する。
好適には、本発明は、ソース・プラットフォームが第1クラウドであり、ターゲット・プラットフォームが第2クラウドであり、ソリューションの少なくとも一部分を展開するステップが、第1クラウドから第2クラウドにソリューションの少なくとも一部分をポーティングするステップを含む、方法を提供する。
好適には、本発明は、ソース・プラットフォームがプライベート・クラウドであり、ターゲット・プラットフォームがパブリック・クラウドであり、ソリューションの少なくとも一部分を展開するステップが、プライベート・クラウドからパブリック・クラウドにソリューションを展開するステップを含む、方法を提供する。
以下、添付の図面を参照しながら、単なる例として本発明の実施形態について記載する。
本発明の好適な実施形態による、クラウド・コンピューティング環境におけるノードとしての機能を果たし、本願明細書に記載される方法を実装することもできる、情報処理システムの実施形態のブロック図である。 本発明の好適な実施形態による、本願明細書に記載される方法がネットワーク化環境において動作する多種多様な情報処理システム上で実行可能であることを示す、図1に示された情報処理システム環境の拡張の実施形態である。 本発明の好適な実施形態による、クラウド・コンピューティング環境の実施形態を示す図である。 本発明の好適な実施形態による、クラウド・コンピューティング環境によって提供される一組の機能抽象化層の実施形態を示す図である。 本発明の好適な実施形態による、ソリューションをソースからターゲット・プラットフォームにポーティングするために使用される、アセット・ライブラリに記憶されたソース及びターゲット・トポロジ・モデル並びに自動化ステップ・モデルの実施形態の図である。 本発明の好適な実施形態による、展開ワークフローを生成するために、トポロジ・モデル・ユニットを利用してソース及びターゲット・トポロジ・モデル間の共通点及び相違を発見するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、クラウド環境に展開される例示としての展開ワークフローを作成するために使用される自動化ステップ・モデルの実施形態を示す図である。 本発明の好適な実施形態による、トポロジ・モデルを作成するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、自動化ステップ・モデルを作成するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、入力パラメータを指定しトポロジ・モデル内に記憶するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、クラウド・ベースのアプリケーションの実行中のインスタンスを完全に指定して展開するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、アセット・ライブラリに記憶されているアセットを再使用し、再使用されたアセットを使用してターゲット・クラウド環境にソリューションを展開するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、リクエストに一致する既存のトポロジ・ユニットを発見し、クラウド特有モデル・ユニットを置換し、アセット・ライブラリに新たなモデル・ユニット及び変更されたモデル・ユニットを記憶するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、展開ワークフロー・モデルを生成するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、展開ワークフローをモデルから生成して、展開エンジンを使用し展開するためにとられるステップを示すフローチャートである。 本発明の好適な実施形態による、展開ワークフローをモデルから生成して、複数のクラウド・ベースの環境に複合ソリューションを展開するためにとられるステップを示すフローチャートである。
便宜上、詳細な説明には、セクション1:クラウド・コンピューティングの定義、及びセクション2:詳細な実装のセクションがある。
セクション1:クラウド・コンピューティングの定義
以下の定義の多くは、2009年10月7日付けの、ピーター・メル(Peter Mell)及びティム・グランス(Tim Grance)著、「Draft NIST Working Definition of Cloud Computing」から得たものである。
クラウド・コンピューティングは、最小限の管理努力又はサービス・プロバイダとの対話により迅速にプロビジョニング及びリリース可能である構成可能なコンピューティング・リソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、及びサービス)の共有プールに対する、便利なオンデマンドのネットワーク・アクセスを可能にするモデルである。このクラウド・モデルは、利用可能性を促進し、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとから成る。
特徴は以下のとおりである。
オンデマンド・セルフサービス:消費者は、サーバ時間及びネットワーク・ストレージなどのコンピューティング能力を、必要に応じて自動的に、各サービス・プロバイダとの人的対話の必要なく、一方的にプロビジョニングできる。
広範なネットワーク・アクセス:各能力は、ネットワーク上で利用可能であり、異種シン・クライアント・プラットフォーム又はシック・クライアント・プラットフォーム(例えば、モバイル電話、ラップトップ、及びPDA(personal digital assistant:携帯情報端末))による使用を促進する標準のメカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の消費者にサービスを提供するようプールされ、種々の物理リソース及び仮想リソースが消費者の要求に応じて動的に割り当て及び再割り当てされる。一般に顧客は、提供されるリソースの正確な位置についての制御又は知識を有しないという点で、非位置依存の意識があるが、より高いレベルの抽象化における位置(例えば、国、州、又はデータセンター)を指定できることもある。リソースの例には、ストレージ、処理、メモリ、ネットワーク帯域幅、及び仮想マシンがある。
迅速な伸縮性:各能力は、迅速且つ伸縮自在にプロビジョニング可能であり、場合によっては自動的に、すぐにスケール・アウトすること、及び迅速にリリースされてすぐにスケール・インすることができる。多くの場合、顧客には、プロビジョニングに利用可能な各能力は無制限のように見え、任意の量をいつでも購入できる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの測定能力を活用することによって、リソースの使用を自動的に制御及び最適化する。リソース使用量は、監視、制御、及びレポート可能であり、利用されるサービスのプロバイダ及び顧客両方に透明性が提供される。
サービス・モデルは以下のとおりである。
クラウド・ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションの使用である。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェイスを介して、様々なクライアント・デバイスからアクセス可能である(例えば、ウェブ・ベースの電子メール)。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージを含む基礎をなすクラウド・インフラストラクチャも、個々のアプリケーションの能力さえも、管理又は制御しないが、限られたユーザ特有アプリケーション構成セッティングは例外となり得る。
クラウド・プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):消費者に提供される能力は、消費者が作成又は入手した、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成されているアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャの管理又は制御は行わないが、展開されたアプリケーション、及び場合によりアプリケーション・ホスティング環境構成を制御する。
クラウド・インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):消費者に提供される能力は、処理、ストレージ、ネットワーク、及びその他の基本的なコンピューティング・リソースのプロビジョニングであり、消費者はそこで、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを展開及び実行できる。消費者は、基礎をなすクラウド・インフラストラクチャの管理又は制御は行わないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合により、選ばれたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)を限定的に制御する。
展開モデルは以下のとおりである。
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のみのために運用される。組織又はサード・パーティによって管理可能であり、構内又は構外に存在し得る。セキュリティ・メカニズムが整備されている。整備され得るセキュリティ・メカニズムの例は、ファイアウォールである。整備され得るセキュリティ・メカニズムのもう1つの例は、仮想プライベート・ネットワーク(VPN:virtual private network)である。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される関心事(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス意識)を有する特定のコミュニティをサポートする。組織又はサード・パーティによって管理され得、構内又は構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、公衆又は大規模業界団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の複合であり、各クラウドは一意的なエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準又はプロプライエタリ技術によって結び付けられる(例えば、クラウド間のロード・バランシングのためのクラウド・バースト)。
クラウド・コンピューティング環境は、サービス指向であり、ステートレスであること、疎結合性、モジュール性、及び意味論的相互運用性に焦点を合わせる。
仮想イメージは、ファイル・システム内の仮想マシンを表し、それを仮想マシンとして実行するのに必要な構成パラメータを含み得る。仮想イメージは、物理マシンに位置することもでき物理マシンのオペレーティング・システムに追加することもできるハイパーバイザと呼ばれるソフトウェア・コンポーネントによって、実行され得る。仮想イメージは、マシン・イメージ又は仮想マシン・イメージとも呼ばれ得る。
仮想マシンは、物理マシンのようにプログラムを実行するマシンの、ソフトウェア実装である。
「イメージ」は、コンピュータ・システム及びコンピュータ・システム上で実行されているソフトウェアの状態である。ハイパーバイザ・システムでは、イメージは「仮想イメージ」とされ得るが、これは、ハイパーバイザがコンピュータ・システム・ハードウェアに対するアクセスを制御し、実際のところ現実にはハイパーバイザがコンピュータ・ハードウェア・コンポーネントに対するアクセスを制御して複数のパーティション(例えばゲスト・オペレーティング・システムなど)間のコンピュータ・ハードウェア・リソースの共有を管理しているときに、ゲスト・オペレーティング・システム又はパーティションには、ゲスト・オペレーティング・システム/パーティションがコンピュータ・システム全体を制御しているかのように見えるためである。
セクション2:詳細な実装
当業者であれば当然のことであるが、詳細な実装は、システム、方法、又はコンピュータ・プログラム製品として具現化され得る。したがって、実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本願明細書においてすべて概して「回路」、「モジュール」若しくは「システム」と呼ばれることもある、ソフトウェア及びハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、実施形態は、コンピュータ可読プログラム・コードが具現化された1つ以上のコンピュータ可読媒体(単数又は複数)において具現化されたコンピュータ・プログラム製品の形態をとることもできる。
1つ以上のコンピュータ可読媒体(単数又は複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とされ得る。コンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、若しくは半導体システム、装置、若しくはデバイス、又は前述のものの任意の適切な組み合わせとすることもできる。コンピュータ可読ストレージ媒体のより具体的な例(包括的でないリスト)には、1つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM(erasable programmable read−only memory)若しくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光学式ストレージ・デバイス、磁気ストレージ・デバイス又は前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって、又はそれに関連して使用されるプログラムを含むこと、又は記憶することができる任意の有形の媒体としてよい。
コンピュータ可読信号媒体は、例えば、ベースバンドに、又は搬送波の一部として、コンピュータ可読プログラム・コードが具現化された伝播データ信号を含み得る。そのような伝播信号は、電磁気、光学、又はその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体でなく、命令実行システム、装置若しくはデバイスによって、又はそれに関連して使用されるプログラムを伝達すること、伝播させること、又は搬送することができる、任意のコンピュータ可読媒体としてよい。
コンピュータ可読媒体上に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、又は前述のものの任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して送られてもよい。
動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++又は同様のものなどのオブジェクト指向プログラミング言語、及び「C」プログラミング言語若しくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、又は部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されること、又は完全にリモート・コンピュータ若しくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN:local area network)、若しくは広域ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、又は、外部コンピュータに接続されてもよい(例えば、インターネット・サービス・プロバイダを使用しインターネットを介して)。
実施形態は、方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図若しくはブロック図又はその両方を参照して下記に記載される。当然のことながら、フローチャート図若しくはブロック図又はその両方の各ブロック、及びフローチャート図若しくはブロック図又はその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。マシンを生じるよう、こうしたコンピュータ・プログラム命令が、汎用コンピュータ、専用コンピュータ、又はその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータ又はその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、又はその他のデバイスに指示することができるこうしたコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能/動作を実施する命令を含む製品を生じるようにすることもできる。
さらに、コンピュータ・プログラム命令(機能的記述情報)は、コンピュータ、その他のプログラム可能データ処理装置、又はその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、又はその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスを生じさせ、コンピュータ又はその他のプログラム可能装置上で実行される命令が、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
様々な実施形態が完全に理解されるよう、以下の記載及び図面に、ある特定の詳細が記載される。なお、様々な実施形態を不必要に分かりにくくすることを避けるために、コンピューティング及びソフトウェア技術に関連することが多い特定の周知の詳細は、以下の開示には記載されない。さらに、当業者であれば当然のことであるが、他の実施形態を、以下に記載される詳細のうちの1つ以上を伴わずに実施することができる。最後に、以下の開示では、ステップ及びシーケンスを参照して様々な方法が記載されるが、そのような記載は、実施形態の明らかな実装を提供するためのものであり、ステップ及びステップのシーケンスは、実施形態を実施するために必須と解釈されてはならない。それどころか、下記の事項は、1つ以上の実施形態の詳細な説明を提供することを目的としており、限定的なものとして解釈されてはならず、むしろ、任意の数の変形が、詳細な説明に続く特許請求の範囲によって定義されている範囲内に入り得る。
以下の詳細な説明は、概して、上記に記載された概要に従い、必要に応じて、様々な側面及び実施形態の定義をさらに説明及び拡大する。この目的を達成するために、この詳細な説明は、まず、実施形態に関連するソフトウェア若しくはハードウェア又はその両方の技術を実装するのに適した、図1のコンピューティング環境の例について記載する。複数の個別デバイスにわたって実行可能な現代のコンピューティング技術を強調するために、基本的なコンピューティング環境の拡張として、ネットワーク化環境の実施形態が図2に示されている。
以下、図1を参照する。クラウド・コンピューティング・ノードとしての機能を果たすことができる情報処理システムの実施形態の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例でしかなく、本願明細書に記載される用途又は機能性の範囲についてのいかなる制限を意味することも目的としていない。いずれにせよ、クラウド・コンピューティング・ノード10は、上記のセクション1に記載された機能のいずれかの実装若しくは実行又はその両方ができる。
クラウド・コンピューティング・ノード10内には、コンピュータ・システム/サーバ12があり、これは、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成とともに動作可能である。コンピュータ・システム/サーバ12とともに使用されるのに適していると考えられる周知のコンピューティング・システム、環境、若しくは構成、又はそのいずれかの組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド若しくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び上記のシステム若しくはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、並びに同様のものがあるが、これらに限定はされない。
コンピュータ・システム/サーバ12については、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において記載することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含む。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及びリモート両方のコンピュータ・システム・ストレージ媒体に位置し得る。
図1に示されているように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つ以上のプロセッサ又は処理ユニット16、システム・メモリ28、及びシステム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18を含み得るが、これらに限定はされない。
バス18は、メモリ・バス又はメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート、及び様々なバス・アーキテクチャのいずれかを使用するプロセッサ若しくはローカル・バスを含む、いくつかのタイプのバス構造の任意のものの1つ以上を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)ローカル・バス、及びペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnects)バスがある。
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体としてよく、揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30若しくはキャッシュ・メモリ32又はその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12はさらに、他のリムーバブル/非リムーバブルの揮発性/不揮発性コンピュータ・システム・ストレージ媒体を含み得る。単なる例として、非リムーバブルの不揮発性磁気媒体(図示はしておらず、典型的には「ハード・ドライブ」と呼ばれる)に対する読み取り及び書き込みのために、ハード・ディスク・ドライブ34が提供されることが可能である。図示してはいないが、リムーバブル不揮発性磁気ディスク(例えば「フレキシブル・ディスク」)に対する読み取り及び書き込みのための磁気ディスク・ドライブ、及びCD−ROM、DVD−ROM、又は他の光媒体など、リムーバブル不揮発性光ディスクに対する読み取り又は書き込みのための光ディスク・ドライブが提供されることが可能である。そのような場合には、それぞれが、1つ以上のデータ媒体インターフェイスによってバス18に接続されることが可能である。さらに図示され以下に記載されるように、メモリ28は、本願明細書に記載される機能を実行するよう構成された一組(例えば少なくとも1つ)のプログラム・モジュールを有する少なくとも1つのプログラム製品を含むとよい。
一組(少なくとも1つ)のプログラム・モジュール42を有するプログラム/ユーティリティ40は、限定ではなく例として、オペレーティング・システム、1つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データと同様に、メモリ28に記憶され得る。オペレーティング・システム、1つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はその何らかの組み合わせはそれぞれ、ネットワーキング環境の実装を含み得る。プログラム・モジュール42は、概して、本願明細書に記載される機能若しくは手順又はその両方を実行する。
コンピュータ・システム/サーバ12はさらに、キーボード、ポインティング・デバイス、ディスプレイ24などの1つ以上の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話できるようにする1つ以上のデバイス、若しくはコンピュータ・システム/サーバ12が1つ以上の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えばネットワーク・カード、モデムなど)、又はそのいずれかの組み合わせと通信するとよい。そのような通信は、I/Oインターフェイス22を介して生じることが可能である。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、若しくはパブリック・ネットワーク(例えばインターネット)、又はそのいずれかの組み合わせなどの1つ以上のネットワークと、ネットワーク・アダプタ20を介して通信できる。図示されているように、ネットワーク・アダプタ20は、コンピュータ・システム/サーバ12の他のコンポーネントと、バス18を介して通信する。図示されてはいないが、当然のことながら、他のハードウェア若しくはソフトウェア又はその両方のコンポーネントが、コンピュータ・システム/サーバ12とともに使用されることが可能であろう。例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどがあるが、これに限定はされない。
図2は、実施形態による、本願明細書に記載される方法がネットワーク化環境において動作する多種多様な情報処理システム上で実行可能であることを示す、図1に示された情報処理システム環境の拡張を提供する。情報処理システムのタイプは、ハンドヘルド・コンピュータ/モバイル電話210などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ270などの大型メインフレーム・システムまで多岐にわたる。ハンドヘルド・コンピュータ210の例には、携帯情報端末(PDA)、MP3プレーヤなどの個人用娯楽デバイス、携帯用テレビ、及びコンパクト・ディスク・プレーヤがある。情報処理システムの他の例には、ペン、すなわちタブレット・コンピュータ220、ラップトップ、すなわちノート型コンピュータ290、ワークステーション240、パーソナル・コンピュータ・システム250、及びサーバ260がある。図2に個別に示されていない他のタイプの情報処理システムは、情報処理システム280によって表されている。図のように、コンピュータ・ネットワーク200を使用して、様々な情報処理システムをともにネットワーク化することが可能である。様々な情報処理システムを相互接続するために使用できるコンピュータ・ネットワークのタイプには、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN:Wireless Local Area Network)、インターネット、公衆交換電話網(PSTN:Public Switched Telephone Network)、その他の無線ネットワーク、及び情報処理システムを相互接続するために使用可能なその他任意のネットワーク・トポロジが含まれる。情報処理システムの多くは、ハード・ドライブ若しくは不揮発性メモリ、又はその両方などの不揮発性データ・ストアを含む。図2に示されている情報処理システムの一部は、独立した不揮発性データ・ストアを示し(サーバ260は不揮発性データ・ストア265を利用し、メインフレーム・コンピュータ270は不揮発性データ・ストア275を利用し、情報処理システム280は不揮発性データ・ストア285を利用する)。不揮発性データ・ストアは、様々な情報処理システムに外付けされるコンポーネントとされても、情報処理システムのうちの1つに内蔵されていてもよい。さらに、リムーバブル不揮発性ストレージ・デバイスを情報処理システムのUSBポート又はその他のコネクタに接続するなど、様々な技術を使用して、リムーバブル不揮発性ストレージ・デバイスを2つ以上の情報処理システム間で共有することが可能である。さらに、コンピュータ・ネットワーク200は、様々な情報処理システムを、クラウド・コンピューティング環境205及び任意の数の他のクラウド・コンピューティング環境を含むクラウド・コンピューティング環境201に接続するために使用可能である。図3及び4に表されているように、クラウド・コンピューティング環境201は、クラウド・コンピューティング環境を提供するよう連携するいくつかのネットワーク化情報処理システム(ノード)を含む。クラウド・コンピューティング環境201はそれぞれ、図4に示されている抽象化層を提供する。抽象化層は、ハードウェア及びソフトウェア層410、仮想化層420、管理層430、及びワークロード層440を含む。様々な層410〜440内のコンポーネントは、クラウド環境毎に異なることが可能である。様々な層内にあるコンポーネントの例は、図4に示されている。
以下、図3を参照する。例示のためのクラウド・コンピューティング環境201が示されている。図のように、クラウド・コンピューティング環境201は、1つ以上のクラウド・コンピューティング・ノード10を含み、これと、例えば携帯情報端末(PDA)又はセルラ電話210、デスクトップ・コンピュータ250、ラップトップ・コンピュータ290、自動車コンピュータ・システム230、及び図2に示されている他のタイプのクライアント・デバイスなどのコンピューティング・デバイスが通信する。これによって、インフラストラクチャ、プラットフォーム、若しくはソフトウェア、又はそのいずれかの組み合わせが、クラウド・コンピューティング環境201からサービスとして(セクション1において上述したように)提供可能になり、その結果、各クライアントがそのようなリソースを別々に維持することは必要とされない。当然のことながら、図2及び3に示されているコンピューティング・デバイスのタイプは、例示のみを目的としており、クラウド・コンピューティング環境201は、任意のタイプのネットワーク若しくはネットワーク/アドレス指定可能接続(例えばウェブ・ブラウザを使用)又はその両方によって任意のタイプのコンピュータ化されたデバイスと通信できる。
本発明者らの認識のとおり、異なるクラウド(又はハイパーバイザ)プロバイダのソース及び宛先仮想イメージは、互換性のないハードウェア・アーキテクチャ、ハイパーバイザ技術、ゲストOS若しくはミドルウェア又はその両方のタイプ若しくはバージョン又はその両方を有することもある。仮想イメージにおけるディスク・パーティションは、クラウド(又はハイパーバイザ)プロバイダに特有であることもある。小規模なカスタマイズを伴うコンテンツの直接コピーでは、正常に機能しないこともある。例えば、Amazon EC2が、x86ハードウェアのXEN仮想イメージをサポートする一方で、p−seriesサーバを用いるIBM(IBM社の登録商標)クラウドは、System p(IBM社の登録商標)イメージのみをサポートし得る。
本発明者らは、一部の状況では、ファイアウォール及びブロック・ストレージ・ボリュームなどのクラウド(又はハイパーバイザ)特有構成は、APIの相違が原因で、ポーティングされるソリューションに追加できないことも認識している。例えば、Amazon EC2は、ブロック・ストレージ・ボリュームを実行中のインスタンスに接続する構成オプションを提供するが、VMwareベースのプライベート・クラウドはそのオプションを提供しないこともある。
本発明者らは、複数の仮想イメージを含むソリューションが、部分的にのみ別のクラウド(又はハイパーバイザ)にポーティングされる必要もあり得るということも認識している。例えば、1つの仮想イメージ内にビジネス・ロジック層、別の仮想イメージ内にデータベース層を備えるソリューションでは、データ機密性の問題が原因で、ビジネス・ロジック層仮想イメージのみがパブリック・クラウドにポーティングされ、データベース層仮想イメージがプライベート・クラウドに残ることが必要とされるかもしれない。一方、発明者らは、一部の状況ではソリューション全体を別のクラウド(又はハイパーバイザ)にポーティングすることが望ましいこともあるということも認識している。
本発明者らは、別のクラウド(又はハイパーバイザ)にポーティングするときに、プロビジョニング・ワークフローにおいて変更、追加、若しくは削除、又はそのいずれかの組み合わせを行われたソリューション・コンポーネント/構成と、変更、追加、若しくは削除、又はそのいずれかの組み合わせを行われた対応する展開動作との、特定若しくは視覚化、又はその両方を行うことが望ましいこともあるということも認識している。本発明者らは、これらの変更、追加、若しくは削除、又はそのいずれかの組み合わせを、ソース・モデルのパッチに記憶することが望ましいこともあるということも認識している。例えば、WebSphere(IBM社の登録商標)アプリケーションを、VMwareベースのプライベート・クラウドからAmazon EC2にポーティングするには、ベースVMwareイメージから、WebSphereを備えるベースAmazonマシン・イメージ(AMI:Amazon Machine Image)への変更、及びVMwareイメージの代わりにAMIを展開するための変更された動作が必要である。
さらに、本発明者らの認識のとおり、ソリューションを複数のクラウドにプロビジョニングすることが望ましいこともある。例えば、Amazon EC2及びIBM Development and Test Cloudはどちらも、イメージをインスタンス化し、実行中の仮想マシンにセキュアにリモート接続して、ソリューション・プロビジョニング・タスクをリモートで実行するためのAPIを提供する。
以下、図4を参照する。クラウド・コンピューティング環境201(図3)によって提供される一組の機能抽象化層400の実施形態が示されている。図4に示されているコンポーネント、層、及び機能は、例示のみを目的としており、実施形態はそれに限定されないことをあらかじめ理解されたい。図示されているように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層410は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、IBM(R)zSeries(R)システムが1つの例であるメインフレーム、IBM pSeries(R)システムが1つの例であるRISC(Reduced Instruction Set Computer:縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ、IBM xSeries(R)システム、IBM Blade Center(R)システム、ストレージ・デバイス、ネットワーク、及びネットワーキング・コンポーネントがある。ソフトウェア・コンポーネントの例には、IBM WebSphere(R)アプリケーション・サーバ・ソフトウェアが1つの例であるネットワーク・アプリケーション・サーバ・ソフトウェア、及びIBM DB2(R)データベース・ソフトウェアが1つの例であるデータベース・ソフトウェアがある。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、及びDB2は、米国、その他の国々、又は両方におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である)。
仮想化層420は、抽象化層を提供し、抽象化層から、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション、及び仮想クライアントという仮想エンティティが提供されるとよい。
管理層430は、以下に記載される機能を提供する。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及びその他のリソースの動的な調達を提供する。測定及び価格決定は、クラウド・コンピューティング環境内でリソースが利用されるときの費用の追跡と、こうしたリソースの消費に対する請求又はインボイスの作成を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、ユーザ及びタスク両方のアイデンティティ証明、並びにデータ及びその他のリソースの保護を提供する。ユーザ・ポータルは、ユーザ及びシステム管理者の両方に、クラウド・コンピューティング環境に対するアクセスを提供する。サービス・レベル管理は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス水準合意(SLA:Service Level Agreement)計画及び達成は、SLAに従い将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備及び調達を提供する。
ワークロード層440は、クラウド・コンピューティング環境を利用する目的となる機能性を提供する。この層から提供され得るワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、並びにトランザクション処理がある。上記のように、図4を参照して記載された前述の例はすべて、例示のためのものでしかなく、これらの例に限定はされない。
図5は、ソリューションをソースからターゲット・プラットフォームにポーティングするために使用される、アセット・ライブラリに記憶されたソース及びターゲット・トポロジ・モデル並びに自動化ステップ・モデルの実施形態の図である。実施形態では、「ソリューション」は、特定の機能的及び非機能的要件を満たすために使用される1つ以上のハードウェア・ベースのコンピュータ・システムによって実行される1つ以上のソフトウェア・アプリケーションを含むソフトウェア・ソリューションである。ソフトウェア・ソリューションは、1つ以上のソフトウェア・アプリケーション、並びにその関係する構成パラメータを含む。実施形態では、ソリューションは、ターンキー・ソリューション及びワンストップ手法である。ソリューションは、複数のアプリケーションを含んでもよく、アプリケーションに関連する構成情報を含んでもよい。ソリューションは、複数の仮想イメージを含み得るという点で、複合的な性質であってもよい。ソリューションの一部が、1つの仮想イメージにあってもよく、ソリューションの別の一部が、別の仮想イメージにあってもよい。アセット・ライブラリ500は、トポロジ及び自動化データのリポジトリとして使用される。トポロジ・データは、クラウド・ベースのソリューションのコンポーネント、及びその関係を表す。アセット・ライブラリ500は、任意の数のトポロジ・モデル510のデータを記憶するために使用される。実施形態では、アセット・ライブラリ500は、コンピュータ・システムからアクセス可能な不揮発性ストレージ・デバイスなどの永続ストレージ媒体に記憶される。トポロジ・モデル510はそれぞれ、クラウド・ベースのソリューションにおいて使用されるデータを表す。クラウド・ベースのソリューション(「ターゲット・クラウド・トポロジ」)を最初に特定のクラウド環境(「ターゲット・クラウド」)に展開するとき、様々なソース・クラウド・トポロジ・モデル・ユニットを再使用することでターゲット・クラウド・トポロジを開発するのに使用可能な、アセット・ライブラリに既に記憶されているトポロジ(「ソース・クラウド・トポロジ」)を特定するために、アセット・ライブラリ500に記憶されているアセットが検索されることが可能である。実施形態では、これは、ソリューションをソース・クラウド(例えば、第1クラウド・プロバイダによって提供されるクラウド)からターゲット・クラウド(例えば、第2クラウド・プロバイダによって提供されるクラウド)にポーティングするときに生じる。
ソース・プラットフォームの実施形態は、ソリューションが展開されているクラウド(例えばAmazon EC2(TM)クラウド)とすることもできるであろう。ターゲット・プラットフォームの実施形態は、ソリューションがポーティングされる別のクラウド(例えば、IBM Smart Business Development and Test Cloud)とすることができるであろう。ソース・プラットフォームの実施形態は、ハイパーバイザ(例えばVMWareハイパーバイザ)とすることができ、対応するターゲット・プラットフォームの実施形態は、別のハイパーバイザ(例えばKVMハイパーバイザ)とすることができるであろう。ソース・プラットフォームの実施形態は、ディスク・パーティションを備える物理コンピュータ・システム(例えばIBM pSeriesサーバ)とすることができ、対応するターゲット・プラットフォームの実施形態は、別の物理コンピュータ・システム(例えば、Sun Microsystemsサーバ)とすることができるであろう。さらに、プラットフォームは、混合されて組み合わされることが可能であろう。例えば、ソース・プラットフォームの実施形態をハイパーバイザとし、対応するターゲット・プラットフォームの実施形態をクラウドとすることができるであろう。
多数のトポロジ・モデルに対応するモデル・ユニットが、アセット・ライブラリ500に記憶され得るが、図5には、ソース・クラウド・トポロジ・モデル・ユニット520及びターゲット・クラウド・トポロジ・モデル・ユニット560の2つが示されている。ソース及びターゲット・クラウド・トポロジ・モデルはどちらも、メタデータ(それぞれ522及び562)、認証情報及びサービス・エンドポイント・データ(それぞれ524及び564)、並びに構成パラメータ(それぞれ526及び566)などの様々なモデル・ユニットを含む。モデル・ユニットは、アプリケーション、ミドルウェア、ゲスト・オペレーティング・システム、仮想イメージ、構成パラメータ、及びその他のソリューション・コンポーネントを表すために使用され得る。各モデル・ユニットは、仮想イメージ・タイプ、id、構成パラメータ、ソフトウェア・バージョン、アクセス認証情報、ファイアウォール・ルールなどのメタデータを含むとよい。個別のトポロジ・モデルのメタデータは、仮想イメージ展開パラメータ、トポロジに含まれるソフトウェアに関するメタデータ、トポロジに含まれるミドルウェアに関するメタデータ、トポロジに含まれるゲスト・オペレーティング・システムに関するメタデータなど、いくつかのメタデータ項目を含む。
図のように、自動化ステップ・モデル515もアセット・ライブラリ500に記憶されており、トポロジ・モデル・ユニットと関連付けられている。名称が示すように、自動化ステップ・モデルは、トポロジに含まれる様々なトポロジ・モデル・ユニットを展開するために使用される自動化ステップを表す。ソース・クラウド自動化ステップ・モデル530は、ソース・クラウド・トポロジ・モデル・ユニット520を展開するために使用される自動化ステップを含み、ターゲット・クラウド自動化ステップ・モデル570は、ターゲット・クラウド・トポロジ・モデル・ユニット560を展開するために使用される自動化ステップを含む。ターゲット・クラウド・トポロジ・モデル・ユニット560及びターゲット・クラウド自動化ステップ・モデル570を開発するとき、ターゲット・トポロジに存在するがソース・トポロジに存在しない新たなモデル・ユニットとともに、ソース・クラウド・トポロジ・モデル・ユニット520とターゲット・クラウド・トポロジ・モデル・ユニットとの相違が特定される。
さらに、相違には、ソース・トポロジに存在するがターゲット・トポロジには存在しない除去されるモデル・ユニットが含まれる。ターゲット・トポロジ・モデル内の特定された異なるモデル・ユニット及び新たなモデル・ユニットの自動化ステップ・モデルを発見するために、アセット・ライブラリ500が検索される。相違は、アセット・ライブラリ500に、パッチとして記憶されることができると考えられ、類似したソース・トポロジ・モデルに適用されて、ターゲット・トポロジ・モデルを作成することができる。ソース・プラットフォーム(例えばソース・クラウド、ソース・ハイパーバイザなど)に関連するソース・トポロジ・モデルと、ターゲット・プラットフォーム(例えばターゲット・クラウド、ターゲット・ハイパーバイザなど)に関連するターゲット・トポロジとの相違を求めることの実行に、1つ以上のプロセッサが使用されるとよい。トポロジ・モデルは、トポロジ・モデル・ユニットを含む。
トポロジ・モデル・ユニットは、ユニット・パラメータ又は属性を含むとよく、さらにタイプも含んでもよい。タイプは、例えば、仮想イメージ、ミドルウェア、オペレーティング・システム、ファイアウォール、又は当該技術分野で既知の任意の他のタイプとしてよい。ハイパーバイザは、オペレーティング・システムの上位で実行されるとよいソフトウェアである。ハイパーバイザは、オペレーティング・システムの下位で実行されてもよい。ハイパーバイザは、種々のオペレーティング・システム、又は単一のオペレーティング・システムの種々のインスタンスが、同時にシステム上で実行されることを可能にするとよい。言い換えれば、ハイパーバイザは、ホスト・システムが複数のゲスト・マシンをホストすることを可能にするとよい。このように相違を求める結果として、新たな、変更された、及び除去されたモデル・ユニットを含むトポロジ相違が得られる。トポロジ相違は、ターゲット・トポロジ・モデルにおいて、ソース・トポロジ・モデルと異なる、ソリューションの様々なコンポーネントに対応する一組のトポロジ・モデル・ユニットであるとよい。
一組のトポロジ・モデル・ユニットは、ソリューションをソース・プラットフォームからターゲット・プラットフォームにポーティングするときに変更が必要なこともある。ワークフロー・モデル内の少なくとも1つの動作を含む組(例えば、自動化ステップ・モデル515に記憶された自動化ステップ・モデル)が、アセット・ライブラリ500から取得される。ワークフロー・モデル内の動作は、実行され得るアクションである。例えば、ワークフロー・モデル内の動作は、sMashアプリケーション・サーバの上にsMashアプリケーションをインストールするために使用され得る。
もう1つの例として、ワークフロー・モデル内の動作は、仮想イメージをインスタンス化するために使用され得る。各動作は、ソース及びターゲット・トポロジ・モデル間のトポロジ相違内のモデル・ユニットのうちの1つに関連する。実施形態では、完全なソリューション(例えば、ソース・トポロジからターゲット・トポロジにポーティングされるソリューション)が、取得された動作のうちの1つ以上を1つ以上のプロセッサを使用して実行することによって展開される。実施形態では、ソリューションの一部分が、取得された動作のうちの1つ以上を1つ以上のプロセッサを使用して実行することによってソース・トポロジからターゲット・トポロジにポーティングされる。ソリューションの展開される一部分は、ターゲット・プラットフォーム(例えば、ターゲット・クラウド590、ターゲット・ハイパーバイザなど)と互換性のあるターゲット・イメージを含む。実施形態では、互換性は、ハイパーバイザ技術、ハードウェア・アーキテクチャ、オペレーティング・システム・バージョン、ミドルウェア・バージョン、種々のクラウドにおいて利用可能なAPI(ファイアウォール及びVPNの構成など)、並びに同様のものなどの様々な原因に起因する。実施形態では、非互換性は、上記の1つ以上のコンポーネントが、ソース・プラットフォームからターゲット・プラットフォームへの互換性を有しない、様々な同じ原因に起因する。
図のように、ソース展開ワークフロー575は、ソリューションをソース・クラウド580に展開するために動作する。展開は、ソース・クラウドにロードされている仮想イメージ582、及び実行中のミドルウェア・イメージ・インスタンスに展開されたアプリケーション550をもたらす。同様に、ターゲット展開ワークフロー585は、ソリューションをターゲット・クラウド590に展開するよう動作する。展開は、ターゲット・クラウドにロードされている仮想イメージ592、及び実行中のミドルウェア・イメージ・インスタンスに展開されたアプリケーション550をもたらす。
なお、共通のアプリケーション550が、ソース・クラウド580及びターゲット・クラウド590の両方に展開されている。実施形態では、アプリケーション550は、プラットフォーム依存の「仮想マシン」上で実行される、Javaプログラミング言語などのプラットフォーム独立のコンピュータ言語で書かれたアプリケーションなどのプラットフォーム独立アプリケーションである。ターゲット・イメージは、ターゲット・トポロジ・モデル内の、仮想イメージ・モデル・ユニット及びその含まれているユニット内のメタデータを使用することによって特定されるとよい。このメタデータは、ターゲット・クラウド内のすべての既知の仮想イメージのメタデータを検索するための入力として使用されるとよい。そのようなメタデータはすべて、アセット・ライブラリに記憶できる。ターゲット・イメージは、ターゲット・イメージを実行するターゲット・プラットフォーム上にアプリケーションを展開可能なように、特定されてターゲット・プラットフォーム(クラウド)に展開されるとよい。実施形態では、ターゲット・イメージは、アプリケーションが動作するのに適したターゲット環境を提供するオペレーティング・システム及びミドルウェア(例えば仮想マシン)を含む。このように、ソース・クラウドにおいて現在実行されソース・トポロジ・モデルにおいて記述されているソリューションを、ターゲット・トポロジ・モデルにおいて記述されている類似のモデル・ユニットを用いて、ターゲット・クラウドにポーティング及び展開できる。
図6は、実施形態による、展開ワークフローを生成するために、トポロジ・モデル・ユニットを利用してソース及びターゲット・トポロジ・モデル間の共通点及び相違を発見するためにとられるステップを示すフローチャートである。
共通点は、ターゲット・トポロジ・モデルにおいて、ソース・トポロジ・モデルと同じである、ソリューションの様々なコンポーネントに対応する一組のトポロジ・モデル・ユニットであるとよい。共通点の例は、ターゲット・プラットフォームに関連するモデル・ユニットにおいて表される仮想イメージのタイプが、ソース・プラットフォームに関連するモデル・ユニットにおいて表される仮想イメージのタイプと同じであり得るということであってもよい。両方のモデル・ユニットに関してタイプは同じであるが、例えばイメージ識別子などの何らかの他のパラメータが、ソース・トポロジ・モデルに関連するモデル・ユニットと比較して、ターゲット・トポロジ・モデルに関連するモデル・ユニットにおいて異なる場合など、共通点は事実上部分的であってもよい。共通点は、2つのトポロジ・モデル・ユニットのパラメータすべてが同じであり、異なるパラメータがまったくない場合など、事実上全体であってもよい。共通点が事実上全体であれば、関連する展開動作及びソリューション・コンポーネントは、ソリューションをソース・プラットフォームからターゲット・プラットフォームにポーティングするときに変更される必要がないこともある。共通点が事実上部分的であれば、これらは相違として扱われても、又は完全に共通するものとして扱われてもよい。
相違は、ターゲット・トポロジ・モデルにおいて、ソース・トポロジ・モデルと異なる、ソリューションの様々なコンポーネントに対応する一組のトポロジ・モデル・ユニットであるとよい。相違の例は、ターゲット・プラットフォームに関連するモデル・ユニットにおいて表される仮想イメージのタイプが、ソース・プラットフォームに関連するモデル・ユニットにおいて表される仮想イメージのタイプと異なり得るということであってもよい。相違があれば、関連する展開動作及びソリューション・コンポーネントは、ソリューションをソース・プラットフォームからターゲット・プラットフォームにポーティングするときに変更される必要があることもある。
処理が600にて開始すると、ステップ610にて、ソース・トポロジ・モデル・ユニット及びトポロジ・モデルが作成されてアセット・ライブラリ500に記憶される。ステップ620にて、ステップ610においてソース・トポロジ・モデルに関して作成された、いくつかのトポロジ・モデル・ユニットに関して、自動化ステップ・モデルが作成され、これらの自動化モデルもアセット・ライブラリ500に記憶される。ステップ625にて、ステップ610及び620において作成されたモデル(トポロジ及び自動化)が、ソース・クラウド580の展開ワークフロー628を生成するために使用される。
ステップ630及び640は、ステップ610及び620に似ているが、ステップ630及び640は別の(ターゲット)クラウドを対象とする。ステップ630にて、ターゲット・トポロジ・モデル・ユニット及びトポロジ・モデルが作成されてアセット・ライブラリ500に記憶される。これらのターゲット・トポロジ・モデル・ユニット及びトポロジ・モデルは、ソース・クラウド上に展開されるのと同じソリューションを展開するよう設計されるが、ターゲット・トポロジ・モデル・ユニット及びトポロジ・モデルは、ソリューションを別の「ターゲット」クラウド上で実行するよう設計される。ステップ640にて、ステップ630においてターゲット・トポロジ・モデルに関して作成されたトポロジ・モデル・ユニットの一部に関して、自動化ステップ・モデルが作成され、これらの自動化モデルもアセット・ライブラリ500に記憶される。
ステップ650にて、ソース及びターゲット・トポロジ・モデルが、アセット・ライブラリ500から読み取られ、モデル間の相違を特定するために比較される。これらの相違は、変更された、新たな、又は削除されたユニットを含むことができる。変更されたモデル・ユニットは、ソース及びターゲット・モデルの両方に存在するが、異なるパラメータ又はサブタイプを有するユニットであり、例えば、ソース・トポロジ・サブタイプの仮想イメージは、ターゲット・トポロジ・サブタイプの仮想イメージとは異なる。パラメータの相違は、ミドルウェアのバージョンを含むことができる。新たなモデル・ユニットは、ソース・トポロジに存在しなかったがターゲット・トポロジに追加された当該ユニットである(例えば、ソリューションをソース・クラウドに展開するためには必要なかったが、ソリューションをターゲット・クラウドに展開するには必要なトポロジ・モデルなど)。除去されたモデル・ユニットは、ソース・トポロジにはあったが、ターゲット・トポロジに存在しなかったものである。ステップ660にて、特定された変更されたユニット及び新たなユニットに対応する自動化ステップ・モデルを求めて、アセット・ライブラリ500が検索される。ステップ660において発見される自動化ステップ・モデルは、アセット・ライブラリ500に記憶されている自動化ステップ・モデルである。例えば、新たな又は変更されたモデル・ユニットが特定された場合、特定された新たな又は変更されたモデル・ユニットに対応し、アセット・ライブラリに記憶されている別のトポロジが、既に存在することもある。さらに、あるモデル・ユニットが最初に生じたときに、その生じたモデル・ユニットの自動化ステップ・モデルが、ステップ660の動作時に発見されるよう、開発されてアセット・ライブラリ500に記憶されることができる。
ステップ670にて、ターゲット・クラウド590の展開ワークフロー675が、ステップ660において特定された自動化ステップ・モデル(新たな/変更されたモデル・ユニットに関する)と、ステップ625においてソース・クラウドの展開ワークフローを生成するために使用されたステップの一部(変更がないモデル・ユニットに関する)とを使用して生成される。なお、除去されたユニットの展開動作は、ソース・ワークフロー・モデルから削除される。ステップ680にて、展開ワークフロー675及び628が、展開エンジン690によって実行され、その結果、ソース・クラウド580におけるソリューションの実行中のインスタンス582及びターゲット・クラウド590におけるソリューションの実行中のインスタンス592が得られる。一実施形態では、展開ワークフローの実行は、ワークフロー・モデルに含まれる動作を展開エンジン690に送ることによって実行される。
展開エンジン690は、670における生成ステップを実行するのと同じコンピュータ・システム上のソフトウェア・プロセスであってもよく、コンピュータ・ネットワークを介して接続されている別のコンピュータ・システム上でもよい。同じコンピュータ・システムが使用される場合、動作は、内部動作を使用して送られるとよい(例えば、サブルーチン呼び出しによって、展開動作を処理するインライン・コードの実行によって、外部プログラム呼び出しによってなど)。別のコンピュータ・システムが使用される場合、動作は、プライベート・コンピュータ・ネットワーク(例えばLAN)若しくはパブリック・ネットワーク(例えばインターネット、公衆交換電話網(PSTN)など)、又はその両方などのネットワークを介して送ることにより、別のコンピュータ・システムに送られるとよい。1つの展開エンジンが示されているが、種々の展開エンジンを使用可能である。実施形態では、自動化ステップ・モデルは、様々なモデル・ユニットの展開を自動化するために使用されるステップの一般的表現を提供する一方、生成される展開ワークフロー(628及び675)は、展開エンジン690によって読み取り及び処理されるよう設計された機能的記述情報(例えばスクリプトなど)を含む。
図7は、クラウド環境に展開される例示の展開ワークフローを作成するために使用される自動化ステップ・モデルの実施形態を示す図である。トポロジ・モデル700は、トポロジ・モデル・ユニットを含む。自動化ステップ・モデル710は、トポロジ・モデル・ユニットの一部に対応する。展開ワークフロー720は、自動化ステップ・モデル710から生成され、ソリューションを展開するためのいくつかの動作を提供する。図7は、パブリック・ターゲット・クラウド760及びプライベート・ターゲット・クラウド780を含むハイブリッド・ソリューションの例を示す。パブリック・ターゲット・クラウド機能の例は、インターネットなどのネットワークから公衆アクセス可能な顧客フロントエンド運用とされ得るであろう。プライベート・ターゲット・クラウド機能の例は、データベース及びLDAP(Lightweight Directory Access Protocol:ライトウェイト・ディレクトリ・アクセス・プロトコル)動作を処理するバックエンド・サーバ運用とされ得るであろう。
示されている例では、展開ワークフローは、動作725〜750を含む。動作725は、特定のマシン・イメージをパブリック・ターゲット・クラウド760及びプライベート・ターゲット・クラウド780にインスタンス化する。この結果、ゲストOSを備えるクラウド・マシン・イメージ768がパブリック・ターゲット・クラウド760上でインスタンス化される。実施形態において、動作725はさらに、クラウド・マシン・イメージ782をプライベート・ターゲット・クラウド780上でインスタンス化し、実施形態では、クラウド・マシン・イメージ782は、複数のパブリック・ターゲット・クラウドによって利用される共通バックエンド・サーバである。プライベート・ターゲット・クラウド780上でインスタンス化され実行されているクラウド・マシン・イメージ782は、ゲスト・オペレーティング・システム784を含み、これは、パブリック・ターゲット・クラウド上で実行されているオペレーティング・システムとは異なるオペレーティング・システムであってもよい。クラウド・マシン・イメージ782はさらに、データベース・サーバ786(例えばIBM DB2(TM)データベース・サーバなど)を含んでもよく、その下でデータベース・アプリケーションが動作する。クラウド・マシン・イメージ782はさらに、LDAP(ライトウェイト・ディレクトリ・アクセス・プロトコル)サーバ788を含んでもよく、その下でLDAPアプリケーションが動作する。
動作730は、IBM Websphere(R)sMash(TM)ミドルウェア・アプリケーションなどのミドルウェア・アプリケーションを、パブリック・ターゲット・クラウド上でインスタンス化されたイメージ上にインストールする。この結果、アプリケーション・サーバ772が、ゲストOSを備えるクラウド・マシン・イメージ768上で実行される。さらに、動作730は、アプリケーション・サーバ上で実行されるプラットフォーム独立アプリケーション774をインストールできる。図のように、ゲストOSを備えるクラウド・マシン・イメージ768は、IPテーブル・ルール及びVPN構成770を含み、パブリック・ターゲット・クラウドは、クラウドのエラスティックIPアドレス762、クラウドのセキュリティ・グループ764、及びクラウドのエラスティック・ブロック・ストレージ766を含む。1つのクラウド環境において、動作735が、エラスティックIPアドレスを構成するために実行され、その結果、クラウドのエラスティックIPアドレス762が構成される。このクラウド環境において、動作740が、クラウドのセキュリティ・グループ764を構成するために実行され、動作745が、クラウドのエラスティック・ブロック・ストレージ766を構成するために実行される。動作750が、VPN(仮想プライベート・ネットワーク)を構成するために実行される。動作750の結果、インスタンス化されたイメージ768において実行されておりパブリック・ターゲット・クラウド760及びプライベート・ターゲット・クラウド780の間の仮想プライベート・ネットワークをセットアップする、IPテーブル・ルール及びVPN構成770が更新される。
図8は、実施形態による、トポロジ・モデルを作成するためにとられるステップを示すフローチャートである。処理が800にて開始すると、ステップ802にて、Java仮想マシンなどのミドルウェア・ユニットが選択される(例えば、IBM WebSphere(R)sMashアプリケーションなど)。ミドルウェア・ユニットは、一般にプラットフォーム依存である。トポロジ・モデル804は、仮想アプライアンス806を含み、その中に、選択されたミドルウェア・ランタイム環境810が置かれる。Javaアプリケーションなどのプラットフォーム独立アプリケーション808も、選択されて、ミドルウェア・ランタイム環境810に関連付けられる。ステップ805にて、クラウド特有ベース仮想イメージに関するトポロジ・モデル・ユニットが追加される。次に、マシン・イメージ812が仮想アプライアンス806に含められる。この例では、マシン・イメージ812は、ゲスト・オペレーティング・システム814(例えばLinux(R)オペレーティング・システムなど)、サーバ・ソフトウェア816、及びクラウド・イメージ・インスタンス818を含む。
クラウドと互換性がある既存の仮想イメージのメタデータが、そのクラウドに関する1つ以上のクラウド特有イメージ・ライブラリにおいて発見されることもある。そのようなメタデータは、既存の仮想イメージにプレインストールされているソフトウェア・コンポーネントの記述を含み得る。ターゲット・トポロジ・モデル内の、仮想アプライアンス・ユニット及びその含まれているユニット内のメタデータは、ソリューションの必須のソフトウェア・コンポーネントを記述していることもあり、これはクラウド特有ベース仮想イメージにプレインストールされていることが分かることもある。仮想アプライアンス・ユニット内のメタデータは、ソリューションをターゲット・クラウドに展開するのに適したベース仮想イメージを発見するために、イメージ・ライブラリ内でメタデータを検索するために使用され得る。検索の結果として特定された仮想イメージが、必須のソフトウェア・コンポーネントすべて、又は必須のソフトウェア・コンポーネントの適切なバージョンを含まない場合、最も近い一致のベース仮想イメージが判断されるとよい。続いて、そのような最も近い一致のベース仮想イメージが、展開ワークフローの一部として、仮想イメージ内のソフトウェア・コンポーネントの追加、更新、又は除去によって改善されるとよい。
実施形態では、ステップ820において、エラスティックIPアドレス、ボリューム情報、セキュリティ・グループ・セッティング、及び同様のものなどのクラウド特有構成セッティング822及び824が追加される。ステップ826にて、アプリケーション・サーバ(ミドルウェア・ランタイム環境810)が、アプリケーション・ユニット(プラットフォーム独立アプリケーション808)にリンクされる。ステップ828にて、オペレーティング・システム特有構成セッティングが、追加されて、ゲスト・オペレーティング・システム814に関連付けられる。これらのオペレーティング・システム特有構成セッティングは、HTTPセッティング、ネットワーク・セッティング、ファイアウォール・セッティングなどを含むことができる。ステップ832にて、クラウド・ベースの仮想アプライアンスから外部提供されるデータベース・サービス及びLDAPサービスなどの必須のアプリケーション・サービスをホストする、ターゲット・クラウドの1つ以上の仮想アプライアンス(外部サービス・ユニット834)が追加される。ステップ836にて、アプリケーション通信リンクが、アプリケーション・ユニット(アプリケーション808)と、ステップ832にて追加された必須の外部サービスとの間に構成される。ステップ838にて、種々のモデル・ユニット間の展開順序制約が指定される。ステップ838は、ソリューションの展開に使用される自動化ステップの順序付けを可能にする。ステップ840にて、トポロジ・モデル・ユニットすべて及び指定された展開順序を含むトポロジ・モデル804が、アセット・ライブラリ500に記憶される。実施形態では、アセット・ライブラリ500は、アセット・マネージャ・ソフトウェア・アプリケーション850によって管理される。所定のプロセス860にて、記憶されたトポロジ・モデル及び指定された展開ステップが、自動化モデルを作成するために使用され、これもアセット・ライブラリ500に記憶される(自動化モデルの作成に関する処理の詳細については図9及び対応する文章を参照されたい)。
図9は、実施形態による、自動化ステップ・モデルを作成するためにとられるステップを示すフローチャートである。処理は、ソリューションをターゲット・クラウドに展開するために使用される様々な自動化ステップ・モデル910を作成する。処理が900にて開始すると、ステップ905にて、自動化ステップ・モデル915が作成される。自動化ステップ・モデル915は、ターゲット・クラウド内に、セキュリティ・グループなどを確立するクラウド特有構成を展開するための動作920を含む。ステップ925にて、アプリケーション・サーバ(ミドルウェア・ランタイム環境)及びプラットフォーム独立ソフトウェア・アプリケーションに関するパラメータを含む、アプリケーションをインストールするための自動化ステップ・モデル930が作成される。自動化ステップ・モデル930は、プラットフォーム独立アプリケーション(例えばJava sMashアプリケーションなど)をインストールするために使用される動作935、及びミドルウェア・ランタイム環境を構成するために使用される動作940を含む。ステップ945にて、イメージをターゲット・クラウド上でインスタンス化する自動化ステップ・モデル950が作成される。自動化ステップ・モデル950は、特定のイメージをターゲット・クラウド上でインスタンス化するために使用される動作955を含む。ステップ960にて、アセット・マネージャ・アプリケーション・ソフトウェア850によって管理されているように示されているアセット・ライブラリ500に、自動化ステップ・モデル910が記憶される。所定のプロセス970にて、入力パラメータ指定が提供され、ターゲット・トポロジとともにアセット・ライブラリに記憶される(処理の詳細については図10及び対応する文章を参照されたい)。
図10は、実施形態による、入力パラメータを指定してトポロジ・モデル内に記憶するためにとられるステップを示すフローチャートである。図10には、図8で紹介されたトポロジ・モデル804が示されている。図10では、1000にて処理が開始すると、ステップ1010にて、展開モデル・ユニットが、コンポーネントにバインドされる。例えば、展開可能なプラットフォーム独立バイナリを含むアセット・ライブラリ内の特定の圧縮ファイル・アセットが、トポロジ・モデル内のアプリケーション・ユニットにバインドされる。アプリケーション808は、プロパティ及びパラメータ1020を含み、そこに例えば指定の圧縮ファイル(「zip」ファイル)が構成されていると考えられる。ステップ1030にて、構成パラメータの、おそらくすべてではないが一部が、トポロジ・モデル・ユニットに関して指定される。例えば、アプリケーションのHTTPポート、zipファイル名、及びURLが指定され得るであろう。ステップ1040にて、部分的に指定されたパターンが、再使用可能なアセットとしてアセット・ライブラリ500において共有される。所定のプロセス1050にて、インスタンス(単数又は複数)が完全に指定され、ターゲット・プラットフォームに展開される(処理の詳細については図11及び対応する文章を参照されたい)。
図11は、実施形態による、クラウド・ベースのアプリケーションの実行中のインスタンスを完全に指定して展開するためにとられるステップを示すフローチャートである。図11に示されているフローチャートはさらに、指定中に小規模な構成変更をすることによる、マルチテナンシのための複数のインスタンスの展開を示す。処理が1100にて開始すると、ステップ1105にて、トポロジ・モデル・ユニット内のパラメータが完全に指定され、トポロジ・モデル804に記憶される。一部のトポロジ・モデル・ユニットは、トポロジ・モデル・ユニットを展開するために使用される動作を記述する自動化ステップ・モデル910に関連する。ステップ1110にて、展開動作の順序付けられたシーケンスが生成され、自動化ワークフロー・モデル1115内に記憶される。実施形態では、自動化ワークフロー・モデルは、トポロジ・モデル・ユニットを展開するために使用される動作の一般的表現である。ステップ1120にて、展開ワークフロー1125が、自動化ワークフロー・モデル1115から生成される。実施形態では、展開ワークフロー1125は、特定の展開エンジン1135によって実行可能なフォーマットの、動作の非一般的表現である。このように、ステップ1120が実行されて、種々の展開エンジンで動作する種々の展開ワークフローを提供することが可能である。
ステップ1130にて、展開エンジン1135が、展開ワークフロー1125を実行し、1つ以上のターゲット・クラウド1140上で実行されるクラウド・ベースのアプリケーションの1つ以上の実行中のインスタンス(インスタンス1150及び1155)を作成する。ステップ1160にて、実行中のインスタンスが観測及びテストされて、クラウド・ベースのソリューションが適切に実行されていることが確認される。モデル・ユニットにおいて指定されているパラメータに対する変更が必要かどうかについて、判断が下される(決定1170)。変更が必要であれば、決定1170は「はい」の分岐に進み、その後ステップ1175にてインスタンスのパラメータが編集され、処理は、ループを戻り、ワークフロー・モデル、展開ワークフローを再生成して、展開エンジンによって展開ワークフローを再実行する。このループは、さらなる変更が必要なくなるまで続き、その後決定1170が「いいえ」の分岐へ進む。なお、当該パラメータが、ユーザ入力によって再展開の前に変更可能である入力パラメータとして指定されている場合、ワークフロー・モデルを再生成する必要はないこともある。アプリケーション(クラウド・ベースのソリューション)の複数のインスタンスがターゲット・クラウド(又は複数のターゲット・クラウド)において作成されるかどうかについて、判断が下される。アプリケーションの複数のインスタンスが作成される場合、決定1180は、「はい」の分岐に進み、その後ステップ1185にて、次のインスタンスを作成するために少数のワークフロー・パラメータが変更され、処理は、ループを戻り、別のワークフロー・モデル及び別の展開ワークフローを生成し、展開エンジンを使用して新たな展開ワークフローを実行する。例えば、マルチテナント・ソリューションにおける新たなテナントに関して、新たなインスタンスが展開される必要があることもある。実施形態では、マルチテナンシは、複数のクライアント間でプラットフォーム(例えばクラウド、ハイパーバイザ)を共有する能力である。別の例では、様々なワークロードにおいて異なるパフォーマンス又はセキュリティ要件を満たすために、ソリューションの新たなインスタンス(単数又は複数)が必要とされることもある。このループは、アプリケーションのインスタンスがそれ以上求められなくなるまで続き、求められなくなった時点で、決定1180は「いいえ」の分岐に進み、処理は1195にて終了する。
図12は、実施形態による、アセット・ライブラリに記憶されているアセットを再使用し、再使用されたアセットを使用してターゲット・クラウド環境にソリューションを展開するためにとられるステップを示すフローチャートである。処理が1200にて開始すると、ステップ1210にて、処理は、ソリューションを特定のターゲット・クラウド又はハイパーバイザにポーティングするリクエストを受け取る。所定のプロセス1220にて、リクエストに最も近い既存のトポロジ及びトポロジ・モデル・ユニットが、アセット・ライブラリ500において発見される。所定のプロセス1220は、クラウド特有モデル・ユニットを置換し、新たなトポロジ及び新たなモデル・ユニットをアセット・ライブラリ500に記憶することを含む。所定のプロセス1220に関する処理の詳細については、図13及び対応する文章を参照されたい。ステップ1230にて、ターゲット・トポロジ・モデル内の構成パラメータが完全に指定され、アセット・ライブラリ500に記憶される。所定のプロセス1240にて、置換又は追加されたクラウド特有モデル・ユニットに対応する自動化ステップ・モデルが、アセット・ライブラリ500において発見される。さらに、所定のプロセス1240にて、ターゲット・クラウド特有トポロジ・モデル・ユニットに対応する自動化ステップ・モデルが、アセット・ライブラリ500内で発見され、自動化ステップ・モデルがアセット・ライブラリ500内に記憶される。
自動化ステップ・モデルは、トポロジ・モデル・ユニットをターゲット・クラウドに展開するために使用される。所定のプロセス1240に関する処理の詳細については、図14及び対応する文章を参照されたい。所定のプロセス1250にて、自動化ステップ・モデルに基づき展開ワークフローが生成される(処理の詳細については図15及び対応する文章を、複合ソリューションの展開に関する詳細については図16及び対応する文章を参照されたい)。展開の結果は、既存のクラウド・ベースのソリューションのインスタンス1265を備えるソース・クラウド1260、及びクラウド・ベースのソリューションの新たなインスタンス1275を備えるターゲット・クラウド1270である。実施形態では、ソース及びターゲット両方のクラウドが、インターネットなどのコンピュータ・ネットワーク200からアクセス可能である。したがって、例えば、各インスタンスは、例えばクライアント・ベースのウェブ・ブラウジング・ソフトウェアを使用することなどによってコンピュータ・ネットワーク上でクライアントによってアクセス可能な、ウェブ・ベースのアプリケーションのインスタンスを提供できる。
図13は、実施形態による、リクエストに一致する既存のトポロジ・ユニットを発見し、クラウド特有モデル・ユニットを置換し、アセット・ライブラリに新たなモデル・ユニット及び変更されたモデル・ユニットを記憶するためにとられるステップを示すフローチャートである。図13は、図12に示されている所定のプロセス1220により呼び出される。図13に示されている処理が1300にて開始すると、ステップ1320にて、新たなクラウド・ベースのソリューションの要件がユーザ1310から受け取られる。ステップ1325にて、ユーザによって提供された要件にある程度一致する既存のトポロジ・モデルを発見するために、アセット・ライブラリ500に記憶されている既存のトポロジ・モデルのメタデータが検索される。実施形態では、前に計算された相違が、アセット・ライブラリ500からパッチとして読み出されることが可能であると考えられ、ターゲット・トポロジ・モデルを作成するために既存のソース・トポロジ・モデルに適用されることが可能である。ユーザの要件に一致する任意の既存のトポロジ・モデルがアセット・ライブラリにおいて発見されたかどうかについて、判断が下される(決定1330)。ユーザの要件に一致するトポロジ・モデルが現在アセット・ライブラリに存在しなければ、決定1330は「いいえ」の分岐に進み、その後、所定のプロセス1335にて、新たなトポロジ・モデルが作成される(新たなトポロジ・モデルを作成する例については、例えば図8及び対応する文章を参照されたい)。
他方、ユーザの要件に一致する1つ以上のトポロジ・モデルが発見された場合、決定1330は「はい」の分岐に進み、その後ステップ1340にて、ユーザの要件に最も近く一致する、アセット・ライブラリにおいて発見された既存のトポロジ・モデルがコピーされる。ステップ1350にて、新たなトポロジ・モデルがアセット・ライブラリに記憶される(所定のプロセス1335において作成された、新たに作成されたトポロジ・モデル、又はステップ1340にてコピーされた既存のトポロジ・モデルのいずれか)。
トポロジ・モデル・ユニットに変更が必要かどうかについて、判断が下される(決定1360)。例えば、トポロジ・モデルがステップ1340にてコピーされた場合、新たなターゲット・トポロジ・モデルは、コピーされたトポロジ・モデルがユーザによって指定された要件に正確に一致しなければ、変更が必要かもしれない。1つ以上のトポロジ・モデル・ユニットが変更を必要とする場合、決定1360は「はい」の分岐に進み、その後ステップ1370にて、変更を必要とするトポロジ・モデル・ユニットが、ターゲット・トポロジ・モデルから読み出され、ユーザの要件に合うよう変更される。ステップ1380にて、変更されたトポロジ・モデル・ユニットが、アセット・ライブラリ500内のターゲット・トポロジ・モデルに記憶される。決定1360に戻り、トポロジ・モデル・ユニットが変更を必要としない場合、決定1360は「いいえ」の分岐に進み、ステップ1370及び1380をバイパスする。ステップ1390にて、ターゲット・クラウドのクラウド特有モデル・ユニットの置換が行われる。処理は続いて、1395にて、呼び出し側のルーチン(図12参照)に戻る。
図14は、実施形態による、展開ワークフロー・モデルを生成するためにとられるステップを示すフローチャートである。図14は、図12に示されている所定のプロセス1240により呼び出される。図14に示されている処理が1400にて開始すると、ステップ1410にて、ソリューションをターゲット・クラウド上に展開するために使用される、第1の変更された又は新たなトポロジ・モデル・ユニットが特定される。なお、変更されなかったソース・トポロジ・モデル・ユニットは、その変更のないトポロジ・モデル・ユニットに既に関連している自動化ステップ・モデルが使用され得るため、特定される必要はない。なお、ソース・トポロジ・モデルから任意のモデル・ユニットが除去されると、対応する展開動作も、ターゲット・ワークフロー・モデルから除去されるとよい。なお、さらに、実施形態では、複数のトポロジ・モデル・ユニットが、自動化ステップ・モデル(ASM:automation step model)と関連することが可能である。複数のトポロジ・モデル・ユニットが、自動化ステップ・モデルと関連する場合、そのユニットすべてがターゲット・トポロジ・モデルに存在するかどうかについて確認され得る。ステップ1420にて、ターゲット・クラウドに関連する自動化ステップ・モデルを求めてアセット・ライブラリ500が検索される。
任意の一致する自動化ステップ・モデルがアセット・ライブラリにおいて発見されたかどうかについて、判断が下される(決定1430)。一致する自動化ステップ・モデルが発見されなかった場合、決定1430は、「いいえ」の分岐に進み、その後ステップ1450にて、新たな自動化ステップ・モデルがターゲット・クラウドに関して作成される。他方、一致する自動化ステップ・モデルが発見された場合、決定1430は、「はい」の分岐に進み、その後、発見された自動化ステップ・モデルが使用される。ステップ1450にて、自動化ステップ・モデル(検索によって発見されたか、又はステップ1440において作成されたかのいずれか)が、特定された新たな又は変更されたトポロジ・モデル・ユニットに関連付けられる。処理するべき変更された又は新たなトポロジ・モデル・ユニットがさらにあるかどうかについて、判断が下される(決定1460)。処理するべき変更された又は新たなトポロジ・モデル・ユニットがさらにあれば、決定1460は、「はい」の分岐に進み、ループを戻り、上記のように、次の変更された又は新たなトポロジ・モデル・ユニットを特定してそれを自動化ステップ・モデルと関連付ける。なお、変更されたモデル・ユニットに関して、ターゲット・クラウドの類似の自動化ステップ・モデルを発見するために、ソース・クラウドにおいて使用された自動化ステップ・モデル名が検索において使用されることが可能である。このループは、処理するべき変更された又は新たなトポロジ・モデル・ユニットがそれ以上なくなるまで続き、なくなった時点で、決定1460は、「いいえ」の分岐に進む。
ステップ1470にて、ターゲット・クラウドの展開ワークフロー・モデル1480が生成される。ワークフロー・モデルは、特定された新たな又は変更されたトポロジ・モデル・ユニットに関連する発見又は新たに作成された自動化ステップ・モデルと、ソリューションをターゲット・クラウドにポーティングするために変更されなかった、ソース・トポロジ・モデル内のトポロジ・モデル・ユニットに既に関連している自動化ステップ・モデルとを使用して生成される。処理は続いて、1495にて、呼び出し側のルーチン(図12参照)に戻る。
図15は、実施形態による、展開ワークフローをモデルから生成し、展開エンジンを使用して展開するためにとられるステップを示すフローチャートである。図15は、図12に示されている所定のプロセス1250により呼び出される。図15に示されている処理は、1500にて開始し、その後ステップ1510にて、ソリューションをターゲット・クラウドに展開するために使用される展開エンジンが、展開エンジン・データ・ストア1515から選択される。一部のターゲット・クラウドは特定の展開エンジンを使用し得るが、他の汎用展開エンジンも、ソリューションをターゲット・クラウドに展開するために使用可能である。各展開エンジンは、異なる処理能力及び特徴を有することもあり、それによって、ソリューションの特定のターゲット・クラウドへの展開に関して、特定の展開エンジンが魅力的となることもある。ステップ1520にて、第1展開動作(単数又は複数)が、図14において生成された展開ワークフロー・モデル1480から選択される。
各自動化ステップ・モデルは、複数の展開動作を含むことができる。これらの展開動作は、ワークフロー・モデルにおいて連続して順序付けられている。展開動作はさらに、展開エンジンに特有である。その結果、各展開動作は、展開エンジン特有ステップを生成するために使用される。ステップ1520は、選択された展開エンジンによって実行可能な、1つ以上の展開エンジン1515特有ステップを生成する。生成された展開エンジン特有ステップは、第1展開ステップ1531、第2展開ステップ1532などとして、最終展開ステップ1534まで、展開ワークフロー1530に記憶される。処理するべき展開動作がさらにあるかどうかについて判断が下される(決定1540)。処理するべきステップ・モデルがさらにあれば、決定1540は「はい」の分岐に進み、ループを戻り、ステップ1520にて、上記のように展開ワークフロー・モデル1480から次の自動化ステップ・モデルを選択して展開エンジン特有ステップを生成する。このループは、処理するべき展開動作がそれ以上なくなるまで続き、なくなった時点で、決定1540は「いいえ」の分岐に進み、その後、展開ワークフロー1530を処理するために、選択された展開エンジン1550が呼び出される。展開ワークフロー1530は、展開動作を含み、呼び出しの前に、選択された展開エンジン1550に送られる。
展開エンジン処理は、展開ワークフロー1530に含まれる第1展開ステップ(ステップ1531)を実行することによって開始する。第1展開ステップの実行の結果、ターゲット・プラットフォーム(ターゲット・クラウド1270)にソリューションの一部分が展開される。処理するべき展開ステップがさらにあるかどうかについて、展開エンジン1515のうちの1つによって判断が下される(決定1570)。処理するべき展開ステップがさらにあれば、決定1570は、「はい」の分岐に進み、ループを戻り、展開ワークフロー1530から次のステップ(例えば第2展開ステップ1532)を選択して実行し、その結果、ソリューションがターゲット・プラットフォームにさらに展開される。このループは、最終展開ステップ(最終展開ステップ1534)がステップ1560にて処理されるまで続き、処理された時点で、決定1570が「いいえ」の分岐に進み、1595にて処理が戻る。展開ステップがすべて実行された結果は、ターゲット・プラットフォーム(ターゲット・クラウド1270)上で実行される新たなクラウド・ベースのソリューション1275である。
図16は、実施形態による、展開ワークフローをモデルから生成し、複合ソリューションを複数のクラウド・ベースの環境に展開するためにとられるステップを示すフローチャートである。各ステップは、図15において示され記載されたものと同じであるが、図16では、展開ステップの結果、ソリューションが2つのターゲット・プラットフォーム(第1ターゲット・クラウド1610及び第2ターゲット・クラウド1630)に展開され、その結果、複合ソリューション1600が得られる。ターゲット・クラウドはそれぞれ、ソリューションの仮想部分をホストする(第1ターゲット・クラウド1610によってホストされる仮想部分1620及び第2ターゲット・クラウド1630によってホストされる仮想部分1640)。さらに、展開ワークフロー1530に含まれる展開ステップのうちの1つ以上は、仮想部分1620と、仮想部分1640との間に通信リンク1650を確立する。通信リンク1650は、仮想プライベート・ネットワーク(VPN)上で確立可能である。2つのクラウド及び仮想部分が複合ソリューション1600に示されているが、複合ソリューションには、任意の数のターゲット・クラウド及び仮想部分が含まれることが可能であり、任意の数の仮想部分間に通信リンクが確立される。
実施形態では、ターゲット・クラウド又はハイパーバイザのソリューションは、モデル駆動手法を使用して再構築され得、これは、i)イメージ・コンテンツのコピー、及びii)仮想イメージ・コンテンツの統一されたディスク・ファイル・フォーマットでの表現を避けるとよい。実施形態は、互換性のないハードウェア・アーキテクチャ、ハイパーバイザ技術、タイプ、及びゲストOSのバージョンを備える、種々のクラウド(又はハイパーバイザ)プロバイダ間でソリューションがポーティングされることを可能にし得る。実施形態はさらに、クラウド特有(又はハイパーバイザ特有)構成が、ポーティング中に追加されることを可能にし得る。実施形態はさらに、ハイブリッド・クラウド向けの複合ソリューション内に、部分的にポーティングされることが可能な仮想イメージ部分を含めることを可能にし得る。
実施形態において、ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求めることの結果として、トポロジ相違が得られ、これは、Eclipse Modeling Framework(EMF)Compareプロジェクトなどのツールを使用して取得若しくはパッチとしての記憶、又はその両方を行われ得る。実施形態では、相違を求めることの一部分は、1つ以上のプロセッサから選択されるとよい少なくとも1つのプロセッサによって実行される。実施形態では、トポロジ・モデル・ユニットは、Eclipse上のRational(IBM社の登録商標)Software Architectを使用して構築若しくは視覚化又はその両方を行われてもよい。実施形態では、自動化ステップ・モデルは、Eclipse上のRational Software Architectを使用して構築若しくは視覚化又はその両方を行われてもよい。Rational Software Architectは、モデル・データをXMLフォーマットで記憶する。XMLは、仮想アプライアンス、ミドルウェア、仮想イメージ、ゲスト・オペレーティング・システム、クラウド特有構成、アプリケーション・レベル通信リンク、及び同様のものなどの種々のモデル・ユニットの種々のセクションを含む。各XMLセクションは、ソフトウェア・バージョン及びタイプなど、複数の展開パラメータを含むことができる。仮想アプライアンス・セクションのパラメータは、ターゲット・クラウドに対し互換性のある仮想イメージを発見するために、アセット・ライブラリの検索において入力として使用可能である。
実施形態では、アセット・ライブラリからの、ワークフロー・モデル内の動作の取得は、展開動作を含む自動化ステップ・モデルが記憶され得るRational Asset Managerを検索することによって取得されてもよい。検索は、自動化ステップ・モデルに関連するトポロジ・モデル・ユニットのメタデータを入力として使用してもよい。実施形態では、アセット・ライブラリの一部分が、永続ストレージ媒体に記憶されてもよい。実施形態では、アセット・ライブラリの一部分を含むアセット・ライブラリ全体が、永続ストレージ媒体に記憶されてもよい。
実施形態では、ターゲット・プラットフォームと互換性があるターゲット・イメージを含むソリューションの一部分を展開する動作の実行は、Tivoli(IBM社の登録商標)Provisioning Managerを展開エンジンとして使用して実行されてもよい。実施形態では、Tivoli Provisioning Managerは、ソリューションの種々の部分を種々のクラウド又はハイパーバイザに展開するワークフローを実行し得る。
ソリューションをソース・プラットフォームからターゲット・プラットフォームにポーティングする方法、コンピュータ・プログラム製品、及びシステムの実施形態が開示される。ソース・トポロジ・モデル内の一組のモデル・ユニットと、ターゲット・トポロジ・モデル内の一組のモデル・ユニットとの間の相違が判断される。ソース・トポロジ・モデルは、ソース・プラットフォームに関連し、ターゲット・トポロジ・モデルは、ターゲット・プラットフォームに関連する。ワークフロー・モデル内の動作は、その、ソース・トポロジ・モデルの一組のモデル・ユニット及びターゲット・トポロジ・モデルの一組のモデル・ユニット間の判断された相違との関連に基づいて、アセット・ライブラリから取得される。動作は送られる。動作は、ターゲット・プラットフォームと互換性があるターゲット・イメージを含むソリューションの少なくとも一部分を展開するよう構成される。そのような実施形態は、異なるハードウェア・アーキテクチャ、仮想イメージ・フォーマット、及びプログラミング・インターフェイスをサポートする、異なるインフラストラクチャのクラウド又はハイパーバイザ間でソリューションをポーティングするために使用され得る。そのような実施形態はさらに、共通のソリューション・コンポーネント、構成パラメータ、及び展開自動化動作を、ソリューションのポーティング時に再使用するために使用され得る。
さらなる開示された実施形態によれば、ソース・プラットフォームは、第1組のハードウェア及びソフトウェア・リソースであり、ターゲット・プラットフォームは、第2組のハードウェア及びソフトウェア・リソースである。ソリューションの少なくとも一部分が、第1組のハードウェア及びソフトウェア・リソースから、第2組のハードウェア及びソフトウェア・リソースにポーティングされる。そのような実施形態は、1つのクラウド(又はハイパーバイザ又はコンピュータ・システム)から別のクラウド(又はハイパーバイザ又はコンピュータ・システム)にソリューションをポーティングするために使用され得る。
開示されたさらなる実施形態によれば、ソース・プラットフォームは、一組の、プライベート・ハードウェア及びソフトウェア・リソースである。ターゲット・プラットフォームは、一組の、パブリック・ハードウェア及びソフトウェア・リソースである。そのような実施形態は、ソリューションをプライベート・クラウドからパブリック・クラウドにポーティングするために使用され得る。その他の実施形態が、ソリューションの、パブリック・クラウドからプライベート・クラウド、プライベート・クラウドからプライベート・クラウド、若しくはパブリック・クラウドからパブリック・クラウド、又はそのいずれかの組み合わせのポーティングを行うために使用され得る。
開示されたさらなる実施形態によれば、ソリューションは複合ソリューションである。第2組のハードウェア及びソフトウェア・リソースは、複数組のハードウェア及びソフトウェア・リソースを含む。そのような実施形態は、ソリューションの種々の仮想部分を、ハイブリッド・クラウドを含む種々のクラウド(又はハイパーバイザ又はコンピュータ・システム)にポーティングするために使用され得る。
開示されたさらなる実施形態によれば、アセット・ライブラリに記憶されているメタデータは、ターゲット・プラットフォームに関連する少なくとも1つのベース・イメージ・メタデータを求めて検索される。そのような実施形態は、ソリューションの必須のソフトウェア・コンポーネントがプレインストールされている、ターゲット・プラットフォームの互換性のあるベース仮想イメージを発見するために使用され得る。
開示されたさらなる実施形態によれば、ソース・プラットフォームは、第1組の1つ以上のコンピュータ・システム上で実行されている第1ハイパーバイザである。ターゲット・プラットフォームは、第2組の1つ以上のコンピュータ・システム上で実行されている第2ハイパーバイザである。第1及び第2ハイパーバイザは、異なるタイプのハイパーバイザである。そのような実施形態は、1つのハイパーバイザ(又はコンピュータ・システム)から別のハイパーバイザ(又はコンピュータ・システム)にソリューションをポーティングするために使用され得る。
開示されたさらなる実施形態によれば、判断される相違は、新たなモデル・ユニット、変更されたモデル・ユニット、又は除去されたモデル・ユニットのうちの少なくとも1つを含む。そのような実施形態は、共通のソリューション・コンポーネント、構成パラメータ、及び展開自動化動作を、ソリューションのポーティング時に再使用するために使用され得る。
開示されたさらなる実施形態によれば、判断される相違は、ソース・トポロジ・モデル内の一組のモデル・ユニットの1つ以上の属性を特定すること、及び特定された属性が、ターゲット・トポロジ内の一組のモデル・ユニットの1つ以上の特定された属性と互換性がないかどうかを特定することをさらに含む。判断される相違は、ターゲット・トポロジ・モデルと比べた、ソース・トポロジ・モデルのモデル・ユニット内の互換性のない属性(タイプを含む)の特定を含んでもよい。そのような実施形態は、ソリューションのポーティング時に変更が必要なソリューション・コンポーネント、構成パラメータ、及び展開自動化動作を特定するために使用され得る。
開示されたさらなる実施形態によれば、モデル・ユニットの、特定された互換性のない属性は、特定された属性に互換性がないと特定するのに応答して、分析される。モデル・ユニットの、互換性のない属性は、ソリューションをソース・プラットフォームからターゲット・プラットフォームにポーティングするために変更される。そのような実施形態は、ソリューションをポーティングするための、ソリューション・コンポーネント、構成パラメータ、及び展開自動化動作に対する変更を判断するために使用されるとよく、さらに、モデル・ユニット内の、特定された互換性のない属性に、ターゲット・プラットフォーム・トポロジ・モデルとの互換性をもたせるために使用されてもよい。
開示されたさらなる実施形態によれば、特定された互換性のない属性は、ソース・トポロジ・モデルと比較して、ターゲット・トポロジにおいてモデル・ユニットが除去、追加、又は変更されているかどうかを特定する。そのような実施形態は、ソリューションのポーティング時に変更が必要なソリューション・コンポーネント、構成パラメータ、及び展開自動化動作を特定するために使用され得る。
開示されたさらなる実施形態によれば、互換性のない属性の変更は、ソース・トポロジの一組のモデル・ユニットと、ターゲット・トポロジの一組のモデル・ユニットとの間の特定された非互換性を修正するために、新たなモデル・ユニットを追加すること、モデル・ユニットを更新すること、又はモデル・ユニットを除去することをさらに含む。そのような実施形態は、ソリューションをポーティングするための、ソリューション・コンポーネント、構成パラメータ、及び展開自動化動作に対する変更を判断するために使用され得る。
開示されたさらなる実施形態によれば、モデル・ユニットは、トポロジ・モデルの1つ以上の属性を特定するデータを含む。そのような実施形態は、ソリューションをプラットフォームに展開するための構成及び展開パラメータを判断するために使用され得る。
開示されたさらなる実施形態によれば、ソース・プラットフォームは、第1組のハードウェア・リソース及びソフトウェア・リソース上で実行されている第1ハイパーバイザである。ターゲット・プラットフォームは、第2組のハードウェア及びソフトウェア・リソース上で実行されている第2ハイパーバイザである。ソース及びターゲット・ハイパーバイザは、異なるタイプのものである。そのような実施形態は、種々のタイプのハイパーバイザと互換性がある仮想イメージ間でソリューションをポーティングするために使用され得る。
ターゲット・プラットフォームに展開されるトポロジ・モデル・ユニットを取得する、方法、コンピュータ・プログラム製品、及びシステムの実施形態が提供される。アセット・ライブラリに記憶されている複数の自動化ステップ・モデルが、受け取られたトポロジ・モデル・ユニットに関連する、選択される自動化ステップ・モデルを求めて検索される。検索は、1つ以上のプロセッサによって実行される。アセット・ライブラリから1つ以上の展開動作が取得される。取得された展開動作は、選択された自動化ステップ・モデルに関連する。取得された展開動作は、トポロジ・モデル・ユニットをターゲット・プラットフォームに展開するために実行される。そのような実施形態は、ソリューションを別のプラットフォームに展開するべく、新たな又は変更されたワークフロー・モデルを構築するために使用され得る。
方法、コンピュータ・プログラム製品、及びシステムの実施形態は、永続ストレージ媒体からソース・イメージ・メタデータを読み出す手法を提供する。ソース・イメージ・メタデータは、ソース・プラットフォームに関連するソース・イメージに対応する。読み出されたソース・メタデータは、ターゲット・プラットフォームに関連する1つ以上の利用可能なイメージに対応する1つ以上の利用可能なイメージ・メタデータと比較される。利用可能なイメージ・メタデータのうち、ソース・イメージ・メタデータに対し最も互換性が高い1つが、比較に基づき特定される。特定された利用可能なイメージ・メタデータに対応する利用可能なイメージが、ターゲット・プラットフォームと互換性があるターゲット・イメージとして使用される。そのような実施形態は、ソリューションの必須のソフトウェア・コンポーネントのほとんど(すべてでなくても)がプレインストールされている、ターゲット・プラットフォームの互換性のあるベース仮想イメージを発見するために使用され得る。
当然のことながら、様々な代わりの実施形態がある。例えば、実施形態では、本発明は、本願明細書において説明された機能性をコンピュータ・インフラストラクチャが提供できるようにするコンピュータ・プログラム・コードを含む、コンピュータ可読/使用可能媒体を提供する。この点で、コンピュータ可読/使用可能媒体は、様々なプロセスそれぞれを実装するプログラム・コードを含む。当然のことながら、コンピュータ可読媒体又はコンピュータ使用可能媒体という用語は、プログラム・コードの任意のタイプの物理的実施形態の1つ以上を含む。特に、コンピュータ可読/使用可能媒体は、1つ以上のポータブル・ストレージ製品(例えば、コンパクト・ディスク、磁気ディスク、テープなど)上で、若しくはメモリ28(図1)若しくはストレージ・システム34(図1)又はその両方(例えば、固定ディスク、読み取り専用メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリなど)などのコンピューティング・デバイスの1つ以上のデータ・ストレージ部分上で、若しくはネットワーク上を伝わる(例えば、プログラム・コードの有線/無線電子的配布の間に)データ信号(例えば、伝播信号)として、又はそのいずれかの組み合わせで、具現化されたプログラム・コードを含むことができる。
実施形態では、加入、宣伝、若しくは手数料、又はそのいずれかの組み合わせに基づきプロセスを実行する方法が提供される。すなわち、ソリューション・インテグレータなどのサービス・プロバイダは、本願明細書に記載されるサービスの提供を提案することができるであろう。この場合、サービス・プロバイダは、1以上の顧客に対してプロセスを実行するコンピュータ・システム12(図1)などのコンピュータ・インフラストラクチャを作成、維持、サポートなどすることができる。見返りとして、サービス・プロバイダは、加入又は手数料の取り決め又はその両方に従って顧客(単数又は複数)から支払いを受け取ること、若しくは1つ以上のサード・パーティに対する宣伝コンテンツの販売からの支払いを受け取ること、又はその両方ができる。
実施形態では、本願明細書に記載された機能性を提供するための、コンピュータで実装される方法が提供される。この場合、コンピュータ・システム12(図1)などのコンピュータ・インフラストラクチャが提供されることが可能であり、プロセスを実行するための1つ以上のシステムが取得(例えば作成、購入、使用、変更など)されてコンピュータ・インフラストラクチャに展開されることが可能である。この点で、システムの展開は、(1)コンピュータ・システム12(図1)などのコンピューティング・デバイス上に、コンピュータ可読媒体からプログラム・コードをインストールすること、(2)1つ以上のコンピューティング・デバイスをコンピュータ・インフラストラクチャに追加すること、及び(3)コンピュータ・インフラストラクチャの1つ以上の既存のシステムの、組み込み若しくは変更又はその両方を行い、コンピュータ・インフラストラクチャがプロセスを実行できるようにすることのうちの1つ以上を含むことができる。
記載された実装のうちの1つは、ソフトウェア・アプリケーション、すなわち、一組の命令(プログラム・コード)又はコード・モジュール内の他のコンピュータ・プログラム命令であり、これは、例えばコンピュータのランダム・アクセス・メモリに常駐していてもよい。機能的記述情報は、情報処理能力を有するコンピューティング・デバイスに、直接、又は(a)別の言語、コード若しくは表記法への変換、若しくは(b)異なる有形形態での複製のうちのいずれか又は両方の後に、特定の機能を実行させることを目的とした、一組の命令の任意の言語、コード又は表記法での「プログラム・コード」、「コンピュータ・プログラム・コード」、「コンピュータ命令」、及び任意の表現を含む。この点で、プログラム・コードは、アプリケーション/ソフトウェア・プログラム、コンポーネント・ソフトウェア/関数のライブラリ、オペレーティング・システム、特定のコンピューティング・デバイスの基本デバイス・システム/ドライバ、及び同様のもののうちの1つ以上として具現化されることが可能である。コンピュータによって要求されるまで、一組の命令は、例えばハード・ディスク・ドライブ内などの別のコンピュータ・メモリ内、又は光ディスク(最終的にCD ROMにおいて使用されるように)若しくはフレキシブル・ディスク(最終的にフレキシブル・ディスク・ドライブにおいて使用されるように)などのリムーバブル・メモリ内などに記憶されていてもよい。したがって、実施形態は、コンピュータで使用されるコンピュータ・プログラム製品として実装されてもよい。さらに、記載された様々な方法は、ソフトウェアによって選択的に有効化又は再構成される汎用コンピュータにおいて実装されると便利であるが、そのような方法は、要求される方法ステップを実行するよう構築されたハードウェア、ファームウェア、又はより専門化した装置において実行され得ることも、当業者には当然のことである。機能的記述情報は、機能性を機械に与える情報である。機能的記述情報は、限定はされないが、コンピュータ・プログラム、命令、ルール、ファクト、計算可能関数の定義、オブジェクト、データ構造を含む。
プログラム・コードの記憶若しくは実行又はその両方に適した情報処理システム(データ処理システム)は、この記載に従って提供されることができ、システム・バスを介して通信可能にメモリ要素(単数又は複数)に直接又は間接的に結合された少なくとも1つのプロセッサを含むことができる。メモリ要素は、限定はされないが、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量ストレージ、及び、実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなるキャッシュ・メモリを含むことができる。入出力、すなわちI/Oデバイス(限定はされないがキーボード、ディスプレイ、ポインティング・デバイスなどを含む)は、直接、又は介在するデバイス・コントローラを介して、システムに結合されることが可能である。
ネットワーク・アダプタもシステムに結合されて、データ処理システムが、他のデータ処理システム、リモート・プリンタ、ストレージ・デバイス、若しくは同様のもの、又はそのいずれかの組み合わせに、介在するプライベート又はパブリック・ネットワークの任意の組み合わせを介して結合された状態となることを可能にしてもよい。例示のためのネットワーク・アダプタには、限定はされないが、モデム、ケーブル・モデム、及びEthernet(R)カードがある。
前述の説明は、例示及び説明のために提示された。明らかに、多数の変更及び変形が可能であるため、包括的であることも、又は限定することも意図されてはいない。当業者には明らかであると考えられるそのような変更及び変形は、添付の特許請求の範囲によって定義される開示の範囲内に含まれるものとする。
特定の実施形態が、示され記載されたが、当業者には当然のことながら、本願明細書の教示に基づき、この開示及びそのより広い側面から逸脱することなく、変更及び改変が行われ得る。
さらに、当然のことながら、1つ以上の実施形態は添付の特許請求の範囲によって定義される。当業者には当然のことながら、導入された請求項の構成要素の特定の数が意図される場合、そのような意図は、その請求項に明確に記載され、そのような記載がなければそうした限定は存在しない。理解のための補助として非限定的な例を挙げると、以下の添付の特許請求の範囲は、請求項の構成要素を導入するために、「少なくとも1つ」及び「1つ以上」という前置き表現の使用を含む。しかし、たとえ同じ請求項が「1つ以上の」又は「少なくとも1つの」という前置き表現と、「a」又は「an」などの不定冠詞とを含む場合でも、不定冠詞「a」又は「an」による請求項の構成要素の導入が、そのように導入された請求項の構成要素を含む任意の特定の請求項を、当該構成要素を1つのみ含む制約に限定するということが、そうした前置き表現の使用によって示唆されるとは、解釈されるべきではない。特許請求の範囲における定冠詞の使用に関しても同じことが当てはまる。

Claims (27)

  1. プラットフォーム間で仮想イメージをポーティングする方法であって、前記方法は、
    ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求めるステップであって、その結果、トポロジ相違が得られ、前記相違を求めるステップの少なくとも一部分は、プロセッサによって実行される、前記ステップと、
    ワークフロー・モデル内の動作をアセット・ライブラリから取得するステップであって、前記動作は、前記トポロジ相違に関連し、前記アセット・ライブラリの少なくとも一部分は、永続ストレージ媒体に記憶されている、前記ステップと、
    ソリューションの少なくとも一部分を展開するために前記動作を送るステップであって、前記ソリューションの前記展開される一部分は、前記ターゲット・プラットフォームと互換性があるターゲット仮想イメージを含む、前記ステップと、
    を含む方法。
  2. 前記動作を実行することによって前記ソリューションの前記一部分を前記ターゲット・プラットフォームにて展開するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記展開するステップの結果は、前記ソース・プラットフォームから前記ターゲット・プラットフォームへの前記ソリューションのポーティングを含む、請求項2に記載の方法。
  4. 前記ターゲット・プラットフォームに関連する少なくとも1つのベース仮想イメージ・メタデータを求めてメタデータを検索するステップ
    をさらに含む、請求項1に記載の方法。
  5. 前記検索において使用される入力パラメータを読み出すステップであって、前記入力パラメータは、前記ターゲット・トポロジ・モデルによって提供される、前記ステップ
    をさらに含む、請求項4に記載の方法。
  6. 前記アセット・ライブラリに記憶されている前記メタデータから、1つ以上のベース仮想イメージ記述を、前記検索に応答して読み出すステップ
    をさらに含む、請求項4に記載の方法。
  7. 前記ソース・プラットフォームに対応する第1組のモデル・ユニットを、前記アセット・ライブラリから読み出すステップと、
    前記ターゲット・プラットフォームに対応する第2組のモデル・ユニットを、前記アセット・ライブラリから読み出すステップであって、前記相違を求めるステップの結果、共通する1つ以上のモデル・ユニット及び異なる1つ以上のモデル・ユニットが得られる、前記ステップと、
    前記共通するモデル・ユニットそれぞれに対応する、第1組の1つ以上のワークフロー・ステップを再使用するステップと、
    前記異なるモデル・ユニットのうちの1つ以上に対応する、第2組の1つ以上のワークフロー・ステップを、前記アセット・ライブラリから読み出すステップと、
    前記再使用された第1組のワークフロー・ステップ及び前記読み出された第2組のワークフロー・ステップを使用して、前記ワークフロー・モデルを作成するステップと、
    をさらに含む、請求項6に記載の方法。
  8. 前記トポロジ相違を前記ソース・トポロジ・モデル及び前記ターゲット・トポロジ・モデルに関連付けるステップと、
    前記トポロジ相違及び前記関連付けを、パッチとして前記アセット・ライブラリに記憶するステップと、
    をさらに含む、請求項1に記載の方法。
  9. 前記ソース・トポロジ・モデルと部分的に共通している第2ソース・トポロジ・モデル、及び前記ターゲット・プラットフォームと部分的に共通している第2ターゲット・プラットフォームを受け取るステップと、
    前記アセット・ライブラリにおいて、前記パッチを含む1つ以上のパッチを検索するステップであって、前記検索は、前記関連付けられたソース・トポロジ・モデルを含む、前記ステップと、
    前記検索に応答して、前記アセット・ライブラリから前記パッチを読み出すステップと、
    前記読み出されたパッチを、前記第2ソース・トポロジ・モデルに適用するステップであって、その結果、前記第2ターゲット・プラットフォームに関連する第2ターゲット・トポロジ・モデルが得られる、前記ステップと、
    をさらに含む、請求項1に記載の方法。
  10. 完全なソリューションを展開するために、前記動作を含む複数の動作を送るステップ
    をさらに含む、請求項1に記載の方法。
  11. 前記相違を求めるステップは、
    前記ソース・プラットフォームに対応する第1組のモデル・ユニットを特定するステップと、
    前記ターゲット・プラットフォームに対応する第2組のモデル・ユニットを特定するステップと、
    前記第1組のモデル・ユニットと、前記第2組のモデル・ユニットとを比較するステップであって、前記比較の結果、一組の変更された1つ以上のモデル・ユニットと、一組の共通する1つ以上のモデル・ユニットとが得られる、前記ステップと、
    前記共通するモデル・ユニットに対応する第1組の自動化ステップ・モデルを、前記ソース・トポロジ・モデルから読み出すステップと、
    前記変更されたモデル・ユニットを求めて前記アセット・ライブラリを検索するステップであって、前記検索の結果、前記変更されたモデル・ユニットに対応する第2組の自動化ステップ・モデルが得られる、前記ステップと、
    前記第1及び第2組の自動化ステップ・モデルを前記ワークフロー・モデルに含めるステップと、
    をさらに含む、請求項1に記載の方法。
  12. 前記相違を求めるステップの結果、1つ以上の新たなユニットが特定され、前記新たなユニットは、前記ターゲット・トポロジ・モデルにおいて発見され、前記ソース・トポロジ・モデルにおいては発見されず、前記方法は、
    前記新たなユニットを求めて前記アセット・ライブラリを検索するステップ
    をさらに含む、請求項1に記載の方法。
  13. 前記ソリューションの前記一部分を展開する前記動作は、セキュリティ・ファイアウォールを設定する、請求項1に記載の方法。
  14. 前記ソリューションの前記一部分を展開する前記動作は、前記ターゲット・プラットフォームにおいて前記ターゲット仮想イメージをインスタンス化する、請求項1に記載の方法。
  15. 前記ソース・プラットフォームは、第1組の1つ以上のコンピュータ・システム上で実行されている第1ハイパーバイザであり、前記ターゲット・プラットフォームは、第2組の1つ以上のコンピュータ・システム上で実行されている第2ハイパーバイザであり、前記第1及び第2ハイパーバイザは、異なるタイプのハイパーバイザである、請求項1に記載の方法。
  16. プラットフォーム間で仮想イメージをポーティングする情報処理システムであって、
    1つ以上のプロセッサと、
    前記プロセッサのうちの少なくとも1つによってアクセス可能なメモリと、
    前記プロセッサのうちの少なくとも1つによってアクセス可能な永続ストレージ媒体と、
    前記情報処理システムをコンピュータ・ネットワークに接続するネットワーク・インターフェイスであって、前記プロセッサのうちの少なくとも1つによってアクセス可能な、前記ネットワーク・インターフェイスと、
    前記メモリに記憶された一組の命令と、
    を含む、前記情報処理システムであって、前記一組の命令は、以下のアクション:
    ソース・プラットフォームに関連するソース・トポロジ・モデルと、ターゲット・プラットフォームに関連するターゲット・トポロジ・モデルとの相違を求めることであって、その結果、トポロジ相違が得られる、前記相違を求めること、
    ワークフロー・モデル内の動作をアセット・ライブラリから取得することであって、前記動作は、前記トポロジ相違に関連し、前記アセット・ライブラリの少なくとも一部分は、前記永続ストレージ媒体に記憶されている、前記取得すること、及び
    ソリューションの少なくとも一部分を展開するために前記動作を送ることであって、前記ソリューションの前記展開される一部分は、前記ターゲット・プラットフォームと互換性があるターゲット仮想イメージを含む、前記送ること、
    を実行するために、前記プロセッサのうちの少なくとも1つによって実行される、情報処理システム。
  17. 前記動作を実行することによって前記ソリューションの前記一部分を前記ターゲット・プラットフォームにて展開すること
    をさらに含む、請求項16に記載の情報処理システム。
  18. 前記ソース・プラットフォームは、第1クラウドであり、前記ターゲット・プラットフォームは、第2クラウドである、請求項16に記載の情報処理システム。
  19. 前記ターゲット・プラットフォームに関連する少なくとも1つのベース仮想イメージ・メタデータを求めてメタデータを検索すること
    をさらに含む、請求項16に記載の情報処理システム。
  20. 前記アセット・ライブラリに記憶されている前記メタデータから、1つ以上のベース仮想イメージ記述を、前記検索に応答して読み出すこと
    をさらに含む、請求項19に記載の情報処理システム。
  21. 前記ソース・プラットフォームに対応する第1組のモデル・ユニットを、前記アセット・ライブラリから読み出すこと、
    前記ターゲット・プラットフォームに対応する第2組のモデル・ユニットを、前記アセット・ライブラリから読み出すことであって、前記相違を求めることの結果、共通する1つ以上のモデル・ユニット及び異なる1つ以上のモデル・ユニットが得られる、前記読み出すこと、
    前記共通するモデル・ユニットそれぞれに対応する、第1組の1つ以上のワークフロー・ステップを再使用すること、
    前記異なるモデル・ユニットのうちの1つ以上に対応する、第2組の1つ以上のワークフロー・ステップを、前記アセット・ライブラリから読み出すこと、並びに
    前記再使用された第1組のワークフロー・ステップ及び前記読み出された第2組のワークフロー・ステップを使用して、前記ワークフロー・モデルを作成すること、
    をさらに含む、請求項20に記載の情報処理システム。
  22. 前記トポロジ相違を前記ソース・トポロジ・モデル及び前記ターゲット・トポロジ・モデルに関連付けること、並びに
    前記トポロジ相違及び前記関連付けを、パッチとして前記アセット・ライブラリに記憶すること、
    をさらに含む、請求項16に記載の情報処理システム。
  23. 前記ソース・トポロジ・モデルと部分的に共通している第2ソース・トポロジ・モデル、及び前記ターゲット・プラットフォームと部分的に共通している第2ターゲット・プラットフォームを受け取ること、
    前記アセット・ライブラリにおいて、前記パッチを含む1つ以上のパッチを検索することであって、前記検索は、前記関連付けられたソース・トポロジ・モデルを含む、前記検索すること、
    前記検索に応答して、前記アセット・ライブラリから前記パッチを読み出すこと、並びに
    前記読み出されたパッチを、前記第2ソース・トポロジ・モデルに適用することであって、その結果、前記第2ターゲット・プラットフォームに関連する第2ターゲット・トポロジ・モデルが得られる、前記適用すること、
    をさらに含む、請求項22に記載の情報処理システム。
  24. 前記ソース・プラットフォームに対応する第1組のモデル・ユニットを特定すること、
    前記ターゲット・プラットフォームに対応する第2組のモデル・ユニットを特定すること、
    前記第1組のモデル・ユニットと、前記第2組のモデル・ユニットとを比較することであって、前記比較の結果、一組の変更された1つ以上のモデル・ユニットと、一組の共通する1つ以上のモデル・ユニットとが得られる、前記比較すること、
    前記共通するモデル・ユニットに対応する第1組の自動化ステップ・モデルを、前記ソース・トポロジ・モデルから読み出すこと、
    前記変更されたモデル・ユニットを求めて前記アセット・ライブラリを検索することであって、前記検索の結果、前記変更されたモデル・ユニットに対応する第2組の自動化ステップ・モデルが得られる、前記検索すること、並びに
    前記第1及び第2組の自動化ステップ・モデルを前記ワークフロー・モデルに含めること、
    をさらに含む、請求項16に記載の情報処理システム。
  25. 前記相違を求めることの結果、1つ以上の新たなユニットが特定され、前記新たなユニットは、前記ターゲット・トポロジ・モデルにおいて発見され、前記ソース・トポロジ・モデルにおいては発見されず、前記アクションは、前記新たなユニットを求めて前記アセット・ライブラリを検索することをさらに含む、請求項26に記載の情報処理システム。
  26. 前記ソース・プラットフォームは、第1組の1つ以上のコンピュータ・システム上で実行されている第1ハイパーバイザであり、前記ターゲット・プラットフォームは、第2組の1つ以上のコンピュータ・システム上で実行されている第2ハイパーバイザであり、前記第1及び第2ハイパーバイザは、異なるタイプのハイパーバイザである、請求項16に記載の情報処理システム。
  27. コンピュータ・システムにロードされ実行されると、請求項1〜15のいずれか1項に記載の方法の前記ステップすべてを実行する、コンピュータ・プログラム・コードを含むコンピュータ・プログラム。
JP2012546408A 2009-12-31 2010-12-14 プラットフォーム間での仮想イメージのポーティング Active JP5669861B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/651,277 2009-12-31
US12/651,277 US8984503B2 (en) 2009-12-31 2009-12-31 Porting virtual images between platforms
PCT/EP2010/069569 WO2011080063A1 (en) 2009-12-31 2010-12-14 Porting virtual machine images between platforms

Publications (2)

Publication Number Publication Date
JP2013516668A true JP2013516668A (ja) 2013-05-13
JP5669861B2 JP5669861B2 (ja) 2015-02-18

Family

ID=43734823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012546408A Active JP5669861B2 (ja) 2009-12-31 2010-12-14 プラットフォーム間での仮想イメージのポーティング

Country Status (8)

Country Link
US (3) US8984503B2 (ja)
JP (1) JP5669861B2 (ja)
KR (1) KR101442360B1 (ja)
CN (1) CN102725733B (ja)
BR (1) BR112012018768B1 (ja)
CA (1) CA2781496C (ja)
DE (1) DE112010004160T5 (ja)
WO (1) WO2011080063A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016125554A1 (ja) * 2015-02-03 2016-08-11 日本電気株式会社 仮想ネットワークシステム、仮想ネットワーク制御方法、仮想ネットワーク機能データベース、統合制御装置、制御装置およびその制御方法と制御プログラム
JP2016527604A (ja) * 2013-06-10 2016-09-08 アマゾン テクノロジーズ インコーポレイテッド 事前設定および事前起動計算リソース
US9477510B2 (en) 2014-09-29 2016-10-25 Fujitsu Limited Determination method and determination device
JP2017117273A (ja) * 2015-12-25 2017-06-29 株式会社ユーズテック ミドルウェア
JP2017534109A (ja) * 2014-09-30 2017-11-16 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP セカンドデーオペレーションのトポロジーベースの管理

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143575A1 (ja) * 2009-06-08 2010-12-16 シャープ株式会社 ソフトウェア更新システム、表示ユニット、及びソフトウェア更新方法
US8671222B2 (en) * 2010-05-11 2014-03-11 Smartshift Gmbh Systems and methods for dynamically deploying an application transformation tool over a network
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US9021046B2 (en) 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US9436459B2 (en) * 2010-05-28 2016-09-06 Red Hat, Inc. Generating cross-mapping of vendor software in a cloud computing environment
US9009663B2 (en) * 2010-06-01 2015-04-14 Red Hat, Inc. Cartridge-based package management
US10235439B2 (en) 2010-07-09 2019-03-19 State Street Corporation Systems and methods for data warehousing in private cloud environment
WO2012006638A1 (en) * 2010-07-09 2012-01-12 State Street Corporation Systems and methods for private cloud computing
US10671628B2 (en) * 2010-07-09 2020-06-02 State Street Bank And Trust Company Systems and methods for data warehousing
US20120054626A1 (en) * 2010-08-30 2012-03-01 Jens Odenheimer Service level agreements-based cloud provisioning
US8856770B2 (en) * 2010-09-17 2014-10-07 Sap Ag Solution packages including segments of a process chain
US8819672B2 (en) * 2010-09-20 2014-08-26 International Business Machines Corporation Multi-image migration system and method
US8380661B2 (en) * 2010-10-05 2013-02-19 Accenture Global Services Limited Data migration using communications and collaboration platform
US8800055B2 (en) * 2010-10-20 2014-08-05 International Business Machines Corporation Node controller for an endpoint in a cloud computing environment
US9128742B1 (en) * 2010-11-19 2015-09-08 Symantec Corporation Systems and methods for enhancing virtual machine backup image data
US8875122B2 (en) * 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
US9009105B2 (en) * 2010-12-30 2015-04-14 Sap Se Application exits for consistent tenant lifecycle management procedures
US20120233315A1 (en) * 2011-03-11 2012-09-13 Hoffman Jason A Systems and methods for sizing resources in a cloud-based environment
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
US8732267B2 (en) * 2011-03-15 2014-05-20 Cisco Technology, Inc. Placement of a cloud service using network topology and infrastructure performance
US8909762B2 (en) * 2011-03-17 2014-12-09 Hewlett-Packard Development Company, L.P. Network system management
US8984104B2 (en) * 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US20130007726A1 (en) 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
CN102325043B (zh) * 2011-07-20 2014-09-03 华为技术有限公司 一种拓扑生成方法、装置和系统
US8943220B2 (en) 2011-08-04 2015-01-27 Microsoft Corporation Continuous deployment of applications
US8732693B2 (en) * 2011-08-04 2014-05-20 Microsoft Corporation Managing continuous software deployment
US9038055B2 (en) 2011-08-05 2015-05-19 Microsoft Technology Licensing, Llc Using virtual machines to manage software builds
US8838764B1 (en) * 2011-09-13 2014-09-16 Amazon Technologies, Inc. Hosted network management
US8793379B2 (en) * 2011-11-01 2014-07-29 Lsi Corporation System or method to automatically provision a storage volume by having an app-aware based appliance in a storage cloud environment
US9880868B2 (en) * 2011-11-30 2018-01-30 Red Hat, Inc. Modifying an OS installer to allow for hypervisor-specific adjustment of an OS
TWI515658B (zh) 2011-12-07 2016-01-01 萬國商業機器公司 用於創建虛擬裝置之方法及系統
KR101342592B1 (ko) * 2011-12-23 2013-12-17 주식회사 케이티 클라우드 시스템에서의 웹 방화벽 서비스 장치 및 방법
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
US8547379B2 (en) 2011-12-29 2013-10-01 Joyent, Inc. Systems, methods, and media for generating multidimensional heat maps
TWI462017B (zh) * 2012-02-24 2014-11-21 Wistron Corp 伺服器部署系統及資料更新的方法
US8789164B2 (en) 2012-03-16 2014-07-22 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and devices usable in an SVAC
US9003502B2 (en) * 2012-03-19 2015-04-07 Empire Technology Development Llc Hybrid multi-tenancy cloud platform
US9086929B2 (en) * 2012-04-06 2015-07-21 International Business Machines Corporation Dynamic allocation of a workload across a plurality of clouds
US9071613B2 (en) 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
GB2501287A (en) 2012-04-18 2013-10-23 Ibm Installing applications at selected runtime instances
US9286103B2 (en) * 2012-04-21 2016-03-15 International Business Machines Corporation Method and apparatus for providing a test network as an IP accessible cloud service
US9237188B1 (en) * 2012-05-21 2016-01-12 Amazon Technologies, Inc. Virtual machine based content processing
US8924969B2 (en) 2012-06-07 2014-12-30 Microsoft Corporation Virtual machine image write leasing
TW201401074A (zh) * 2012-06-26 2014-01-01 Quanta Comp Inc 軟體跨雲部署機制及系統
US10338940B2 (en) * 2012-06-27 2019-07-02 International Business Machines Corporation Adjusting adminstrative access based on workload migration
US8856382B2 (en) 2012-07-30 2014-10-07 International Business Machines Corporation On-boarding services to a cloud environment
US9836548B2 (en) 2012-08-31 2017-12-05 Blackberry Limited Migration of tags across entities in management of personal electronically encoded items
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9208041B2 (en) 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US9135436B2 (en) 2012-10-19 2015-09-15 The Aerospace Corporation Execution stack securing process
GB2507338A (en) 2012-10-26 2014-04-30 Ibm Determining system topology graph changes in a distributed computing system
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US11475381B2 (en) * 2012-12-24 2022-10-18 International Business Machines Corporation Graphical user interface for receiving proposed and displaying alternative computer architectures
US9256700B1 (en) * 2012-12-31 2016-02-09 Emc Corporation Public service for emulation of application load based on synthetic data generation derived from preexisting models
US10671418B2 (en) * 2013-01-09 2020-06-02 Red Hat, Inc. Sharing templates and multi-instance cloud deployable applications
US10025580B2 (en) * 2013-01-23 2018-07-17 Dell Products L.P. Systems and methods for supporting multiple operating system versions
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8793688B1 (en) 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US9690607B2 (en) * 2013-03-15 2017-06-27 Oracle International Corporation System and method for generic product wiring in a virtual assembly builder environment
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US9268549B2 (en) * 2013-03-27 2016-02-23 Vmware, Inc. Methods and apparatus to convert a machine to a virtual machine
CN103324474B (zh) * 2013-05-22 2016-08-03 中标软件有限公司 基于Linux操作系统跨体系构造ISO的方法及模块
US9390076B2 (en) * 2013-06-06 2016-07-12 Microsoft Technology Licensing, Llc Multi-part and single response image protocol
US9632802B2 (en) 2013-06-14 2017-04-25 Sap Se Automatic configuration of mobile programs
CN104253831B (zh) 2013-06-26 2018-05-11 国际商业机器公司 一种用于在云计算环境中部署应用的方法和系统
US9990189B2 (en) * 2013-07-03 2018-06-05 International Business Machines Corporation Method to optimize provisioning time with dynamically generated virtual disk contents
US9043576B2 (en) 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
CN103607426B (zh) * 2013-10-25 2019-04-09 中兴通讯股份有限公司 安全服务订制方法和装置
JP2017523508A (ja) * 2014-06-10 2017-08-17 アルカテル−ルーセント セキュアな統合型クラウドストレージ
WO2016053304A1 (en) * 2014-09-30 2016-04-07 Hewlett Packard Enterprise Development Lp Topology based management with compliance policies
US9569249B1 (en) 2015-09-08 2017-02-14 International Business Machines Corporation Pattern design for heterogeneous environments
US9983796B2 (en) * 2015-09-17 2018-05-29 Veritas Technologies Llc Systems and methods for provisioning frequently used image segments from caches
CN108351773B (zh) * 2015-10-26 2021-11-05 惠普发展公司,有限责任合伙企业 云平台os管理
CN105515933A (zh) * 2015-11-30 2016-04-20 中电科华云信息技术有限公司 基于OpenStack实现VMware网络功能的管理方法
US9823919B2 (en) * 2015-12-30 2017-11-21 Microsoft Technology Licensing, Llc Controlled deployment of application feature in mobile environment
US9626166B1 (en) * 2016-01-26 2017-04-18 International Business Machines Corporation Common secure cloud appliance image and deployment
US11593342B2 (en) 2016-02-01 2023-02-28 Smartshift Technologies, Inc. Systems and methods for database orientation transformation
US10423331B2 (en) * 2016-02-02 2019-09-24 Samsung Electronics Co., Ltd. Polymorphic storage devices
US11287973B2 (en) 2016-02-02 2022-03-29 Samsung Electronics Co., Ltd. Polymorphic storage devices
US10498726B2 (en) 2016-03-22 2019-12-03 International Business Machines Corporation Container independent secure file system for security application containers
US10585655B2 (en) 2016-05-25 2020-03-10 Smartshift Technologies, Inc. Systems and methods for automated retrofitting of customized code objects
US10089103B2 (en) 2016-08-03 2018-10-02 Smartshift Technologies, Inc. Systems and methods for transformation of reporting schema
US11231912B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Post-deployment modification of information-technology application using lifecycle blueprint
US11231910B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Topological lifecycle-blueprint interface for modifying information-technology application
US10331973B2 (en) * 2017-06-26 2019-06-25 Nicira, Inc. System and method for deploying graphical diagram topologies
CN113535384B (zh) * 2018-01-29 2023-06-27 华为云计算技术有限公司 一种针对应用的克隆方法及装置
US10528343B2 (en) 2018-02-06 2020-01-07 Smartshift Technologies, Inc. Systems and methods for code analysis heat map interfaces
US10698674B2 (en) 2018-02-06 2020-06-30 Smartshift Technologies, Inc. Systems and methods for entry point-based code analysis and transformation
US10740075B2 (en) 2018-02-06 2020-08-11 Smartshift Technologies, Inc. Systems and methods for code clustering analysis and transformation
US10867067B2 (en) * 2018-06-07 2020-12-15 Cisco Technology, Inc. Hybrid cognitive system for AI/ML data privacy
US10904099B2 (en) * 2018-09-07 2021-01-26 Cisco Technology, Inc. Formal model checking based approaches to optimized realizations of network functions in multi-cloud environments
CN109861850B (zh) * 2019-01-11 2021-04-02 中山大学 一种基于sla的无状态云工作流负载均衡调度的方法
WO2020190775A1 (en) * 2019-03-15 2020-09-24 Acentium Inc. Systems and methods for identifying and monitoring solution stacks
KR102162834B1 (ko) * 2019-11-25 2020-10-08 (주) 이노트리 멀티클라우드 또는 하이브리드클라우드를 위한 토폴로지 맵 이용 시스템 및 방법
US11334341B2 (en) * 2020-04-02 2022-05-17 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11269609B2 (en) 2020-04-02 2022-03-08 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11194561B1 (en) * 2020-07-08 2021-12-07 Vmware, Inc. System and method for generating and recommending desired state of virtualization software
US20220083876A1 (en) * 2020-09-17 2022-03-17 International Business Machines Corporation Shiftleft topology construction and information augmentation using machine learning
US11886867B2 (en) 2020-11-12 2024-01-30 International Business Machines Corporation Workflow patching
US11435996B2 (en) * 2020-12-09 2022-09-06 Vmware, Inc. Managing lifecycle of solutions in virtualization software installed in a cluster of hosts
US11435997B2 (en) * 2020-12-09 2022-09-06 Vmware, Inc. Desired state model for managing lifecycle of virtualization software installed in heterogeneous cluster of hosts
US11221836B1 (en) * 2021-06-21 2022-01-11 Instabase, Inc. Systems and methods to control configurations of customer-specific deployments of sets of enterprise software applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051834A (ja) * 1999-08-04 2001-02-23 Hitachi Ltd ワークフローシステムにおける動的アプリケーション起動方法及びシステム
JP2006196014A (ja) * 2000-12-15 2006-07-27 Ntt Docomo Inc 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848415A (en) 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US6058397A (en) 1997-04-08 2000-05-02 Mitsubishi Electric Information Technology Center America, Inc. 3D virtual environment creation management and delivery system
US7227837B1 (en) 1998-04-30 2007-06-05 At&T Labs, Inc. Fault tolerant virtual tandem switch
US6792615B1 (en) 1999-05-19 2004-09-14 New Horizons Telecasting, Inc. Encapsulated, streaming media automation and distribution system
JP4688270B2 (ja) 1999-10-13 2011-05-25 株式会社ビジュアルジャパン ネットワーク型データ伝送システム、並びに同システムにおけるサーバ及び端末装置
US7006494B1 (en) 2000-01-04 2006-02-28 Cisco Technology, Inc. System and method for a virtual telephony intermediary
US6714980B1 (en) 2000-02-11 2004-03-30 Terraspring, Inc. Backup and restore of data associated with a host in a dynamically changing virtual server farm without involvement of a server that uses an associated storage device
US7209921B2 (en) * 2000-09-01 2007-04-24 Op40, Inc. Method and system for deploying an asset over a multi-tiered network
US7002976B2 (en) 2000-11-01 2006-02-21 Marconi Intellectual Property (Ringfence) Inc. Virtual ethernet ports with automated router port extension
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
US7283533B1 (en) 2001-06-25 2007-10-16 Cisco Technology, Inc. Interworking of packet-based voice technologies using virtual TDM trunks
US6785744B2 (en) 2001-08-08 2004-08-31 International Business Machines Corporation Mapping SCSI medium changer commands to mainframe-compatible perform library function commands
US6760804B1 (en) 2001-09-11 2004-07-06 3Com Corporation Apparatus and method for providing an interface between legacy applications and a wireless communication network
US7184789B2 (en) 2001-10-03 2007-02-27 Qualcomm, Incorporated Method and apparatus for data packet transport in a wireless communication system using an internet protocol
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7080378B1 (en) 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
US20040039815A1 (en) * 2002-08-20 2004-02-26 Compaq Information Technologies Group, L.P. Dynamic provisioning system for a network of computers
US20040059829A1 (en) 2002-09-24 2004-03-25 Chu Thomas P. Methods and devices for converting routing data from one protocol to another in a virtual private network
US7092958B2 (en) 2003-01-29 2006-08-15 Battelle Energy Alliance, Llc Knowledge information management toolkit and method
US8209680B1 (en) 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
GB0405792D0 (en) 2004-03-15 2004-04-21 Univ Catholique Louvain Augmented reality vision system and method
US20060101116A1 (en) 2004-10-28 2006-05-11 Danny Rittman Multifunctional telephone, walkie talkie, instant messenger, video-phone computer, based on WiFi (Wireless Fidelity) and WiMax technology, for establishing global wireless communication, network and video conferencing via the internet
US8051148B2 (en) * 2005-01-13 2011-11-01 National Instruments Corporation Determining differences between configuration diagrams
US20110016214A1 (en) * 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
US7454407B2 (en) * 2005-06-10 2008-11-18 Microsoft Corporation Techniques for estimating progress of database queries
US7914519B2 (en) 2005-06-23 2011-03-29 Elcam Medical Agricultural Cooperative Association, Ltd. Catheter device
US7440894B2 (en) 2005-08-09 2008-10-21 International Business Machines Corporation Method and system for creation of voice training profiles with multiple methods with uniform server mechanism using heterogeneous devices
US20070050525A1 (en) 2005-08-25 2007-03-01 Moxa Technologies Co., Ltd. [virtual com port for remote i/o controller]
US8078728B1 (en) * 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US7587570B2 (en) 2006-05-31 2009-09-08 International Business Machines Corporation System and method for providing automated storage provisioning
US20080080526A1 (en) 2006-09-28 2008-04-03 Microsoft Corporation Migrating data to new cloud
US7865663B1 (en) 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
US8205195B2 (en) * 2007-06-08 2012-06-19 Sap Ag Method and system for automatically classifying and installing patches on systems
KR100955426B1 (ko) * 2007-08-10 2010-05-04 (주)지란지교소프트 가상 플랫폼 실행방법
US7383327B1 (en) 2007-10-11 2008-06-03 Swsoft Holdings, Ltd. Management of virtual and physical servers using graphic control panels
US8386918B2 (en) 2007-12-06 2013-02-26 International Business Machines Corporation Rendering of real world objects and interactions into a virtual universe
WO2009082388A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Modelling computer based business process for customisation and delivery
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8127086B2 (en) * 2008-06-06 2012-02-28 International Business Machines Corporation Transparent hypervisor pinning of critical memory areas in a shared memory partition data processing system
US8230500B1 (en) * 2008-06-27 2012-07-24 Symantec Corporation Methods and systems for detecting rootkits
US20100043046A1 (en) 2008-07-07 2010-02-18 Shondip Sen Internet video receiver
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US8281307B2 (en) * 2009-06-01 2012-10-02 International Business Machines Corporation Virtual solution composition and deployment system and method
US8060714B1 (en) * 2008-09-26 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Initializing volumes in a replication system
US8271536B2 (en) * 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
CN101430649B (zh) 2008-11-19 2011-09-14 北京航空航天大学 基于虚拟机的虚拟计算环境系统
US8572587B2 (en) * 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US8856294B2 (en) 2009-06-01 2014-10-07 Oracle International Corporation System and method for converting a Java application into a virtual server image for cloud deployment
US8886708B2 (en) 2009-12-02 2014-11-11 Vmware, Inc. Centralized computer network virtualization environment
US9002838B2 (en) 2009-12-17 2015-04-07 Wausau Financial Systems, Inc. Distributed capture system for use with a legacy enterprise content management system
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US8140735B2 (en) 2010-02-17 2012-03-20 Novell, Inc. Techniques for dynamic disk personalization
US8352415B2 (en) 2010-06-15 2013-01-08 International Business Machines Corporation Converting images in virtual environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051834A (ja) * 1999-08-04 2001-02-23 Hitachi Ltd ワークフローシステムにおける動的アプリケーション起動方法及びシステム
JP2006196014A (ja) * 2000-12-15 2006-07-27 Ntt Docomo Inc 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016527604A (ja) * 2013-06-10 2016-09-08 アマゾン テクノロジーズ インコーポレイテッド 事前設定および事前起動計算リソース
US9477510B2 (en) 2014-09-29 2016-10-25 Fujitsu Limited Determination method and determination device
JP2017534109A (ja) * 2014-09-30 2017-11-16 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP セカンドデーオペレーションのトポロジーベースの管理
US11159385B2 (en) 2014-09-30 2021-10-26 Micro Focus Llc Topology based management of second day operations
WO2016125554A1 (ja) * 2015-02-03 2016-08-11 日本電気株式会社 仮想ネットワークシステム、仮想ネットワーク制御方法、仮想ネットワーク機能データベース、統合制御装置、制御装置およびその制御方法と制御プログラム
JPWO2016125554A1 (ja) * 2015-02-03 2017-11-09 日本電気株式会社 仮想ネットワークシステム、仮想ネットワーク制御方法、仮想ネットワーク機能データベース、統合制御装置、制御装置およびその制御方法と制御プログラム
US11665061B2 (en) 2015-02-03 2023-05-30 Nec Corporation Virtual network system, virtual network control method, virtual network function database, orchestration apparatus, control apparatus, and control method and control program of control apparatus
JP2017117273A (ja) * 2015-12-25 2017-06-29 株式会社ユーズテック ミドルウェア

Also Published As

Publication number Publication date
BR112012018768B1 (pt) 2020-12-22
CA2781496A1 (en) 2011-07-07
US10528617B2 (en) 2020-01-07
US8990794B2 (en) 2015-03-24
CA2781496C (en) 2020-09-15
US20150106396A1 (en) 2015-04-16
US20120180035A1 (en) 2012-07-12
US8984503B2 (en) 2015-03-17
BR112012018768A2 (pt) 2018-06-05
WO2011080063A1 (en) 2011-07-07
JP5669861B2 (ja) 2015-02-18
US20110161952A1 (en) 2011-06-30
DE112010004160T5 (de) 2012-09-20
KR20120113716A (ko) 2012-10-15
CN102725733B (zh) 2015-04-29
CN102725733A (zh) 2012-10-10
KR101442360B1 (ko) 2014-09-17

Similar Documents

Publication Publication Date Title
JP5669861B2 (ja) プラットフォーム間での仮想イメージのポーティング
US11178207B2 (en) Software version control without affecting a deployed container
US10379845B2 (en) Source to image transformation pipeline for a platform-as-a-service system
US9720668B2 (en) Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US10983774B2 (en) Extensions for deployment patterns
US10884732B1 (en) Automation utilizing infrastructure as code modules
US9195453B1 (en) Remediation of known defects and vulnerabilities in cloud application packages
US11023267B2 (en) Composite virtual machine template for virtualized computing environment
US9047160B2 (en) Designing and building virtual images using semantically rich composable software image bundles
US8495352B2 (en) System and method for instantiation of distributed applications from disk snapshots
EP3149603B1 (en) Customized configuration of cloud-based applications prior to deployment
US11263053B2 (en) Tag assisted cloud resource identification for onboarding and application blueprint construction
Das Integrating cloud service deployment automation with software-defined environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141216

R150 Certificate of patent or registration of utility model

Ref document number: 5669861

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150