(57)【特許請求の範囲】
【請求項１】
ソフトウェア製品の仮想イメージの配布パッケージから少なくとも１つの仮想ディスクをマウントすることによってインスタンス化される仮想マシンにソフトウェア製品のあらかじめ必要なソフトウェアをインストールするための方法であって、
−  前記ソフトウェア製品の仮想イメージの前記配布パッケージで提供された前記ソフトウェア製品に関するあらかじめ必要なソフトウェアのリストを読むステップと、
−  あらかじめ必要なソフトウェアが前記仮想マシンにインストールされていないかどうかをテストし、前記あらかじめ必要なソフトウェアがインストールされていない場合に、前記ソフトウェア製品の仮想イメージの前記配布パッケージで提供されたリポジトリ内の前記あらかじめ必要なソフトウェアのロケーションを読んだ後に前記あらかじめ必要なソフトウェアを取得するステップ（４２０）と、
−  取得されたあらかじめ必要なソフトウェアのライセンス文を読み、前記ライセンス文をユーザに対して表示するステップ（４３０）と、
−  前記ユーザによって前記ライセンス文が承認されたときに、前記取得されたあらかじめ必要なソフトウェアをインストールするステップと、
−  すべての前記あらかじめ必要なソフトウェアがインストールされるまで前３つのステップを繰り返すステップと
のブート時の自動実行を含み、さらに、
−  前記ソフトウェア製品および前記ソフトウェア製品のあらかじめ必要なソフトウェアを開発者の仮想マシンにインストールする先行ステップと、
−  前記開発者の仮想マシンにおいて前記ソフトウェア製品をテストする先行ステップと、
−  前記ソフトウェア製品に関するすべての前記あらかじめ必要なソフトウェアを前記開発者の仮想マシンから削除する先行ステップ（２４０）と、
−  前記開発者の仮想マシンの少なくとも１つの仮想ディスクを作成する先行ステップと、
−  前記少なくとも１つの仮想ディスクがマウントされるときにアクティブ化されるべきブート・プログラムを作成する先行ステップと、
−  前記ソフトウェア製品に関する前記あらかじめ必要なソフトウェアのリストを作成する先行ステップ（２２０）と、
−  前記あらかじめ必要なソフトウェアが取得されることができるロケーションを含むリポジトリを作成する先行ステップと、
−  前記少なくとも１つの仮想ディスク、前記ソフトウェア製品に関する前記あらかじめ必要なソフトウェアの前記リスト、および前記あらかじめ必要なソフトウェアが取得されることができる前記ロケーションを含むリポジトリを含むソフトウェア製品の仮想イメージの配布パッケージを作成する先行ステップと
を含む、方法。
【請求項２】
前記あらかじめ必要なソフトウェアが前記仮想マシンにインストールされていると示される場合に、前記あらかじめ必要なソフトウェアに関してその後の取得するステップ、読むステップ、表示するステップ、およびインストールするステップをスキップするステップをさらに含む請求項１に記載の方法。
【請求項３】
前記あらかじめ必要なソフトウェアが前記仮想マシンに既にインストールされていると示されない場合に、すべての既に取得されたあらかじめ必要なソフトウェアのリスト内の前記あらかじめ必要なソフトウェアが取得されることができるロケーションを読むことによって前記あらかじめ必要なソフトウェアが既に取得されていないかどうかをテストするステップであって、前記リストは、取得された前記あらかじめ必要なソフトウェアをインストールする各ステップの後で、新しく取得された前記あらかじめ必要なソフトウェアについて更新される、ステップをさらに含む請求項１または２に記載の方法。
【請求項４】
ライセンス文を読み、前記ライセンス文を表示する前記ステップは、リモート・サーバと通信して（３４０）、前記読み、表示するステップが前記リモート・サーバによって実行されるように求める初期ステップを含む請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
取得されたあらかじめ必要なソフトウェアのライセンス文を読む前記ステップは、前記取得されたあらかじめ必要なソフトウェアから前記ライセンス文を引き出す初期ステップを含む請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
取得されたあらかじめ必要なソフトウェアのライセンス文を読む前記ステップは、前記ソフトウェア製品の仮想イメージの前記配布パッケージで提供されたライセンス・ファイルから前記ライセンス文を読むことに存する請求項１ないし４のいずれか一項に記載の方法。
【請求項７】
前記ソフトウェア製品のあらかじめ必要なソフトウェアの前記ライセンス文を含むライセンス・ファイルを作成し、前記ライセンス・ファイルを前記ソフトウェア製品の仮想イメージの配布パッケージに追加するステップ
をさらに含む請求項６に記載の方法。
【請求項８】
あらかじめ必要なソフトウェアがインストールされておらず、前記あらかじめ必要なソフトウェアが前記あらかじめ必要なソフトウェアのロケーションから読まれることができない場合に、前記あらかじめ必要なソフトウェアの手動インストールが要求され、プロセスが停止される請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
前記あらかじめ必要なソフトウェアを取得するステップは、前記配布パッケージで提供されたリポジトリ内のインターネット・アドレスを読むステップを含み、前記インストールするステップは、前記インターネット・アドレスから前記あらかじめ必要なソフトウェアをダウンロードするステップを含む請求項１ないし８のいずれか一項に記載の方法。
【請求項１０】
コンピュータ・プログラムがコンピュータ上で実行されるときに、請求項１ないし８のいずれか一項に記載の方法のステップを実行するための命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には仮想アプライアンスとして配布されるソフトウェア製品のインストールに関し、より詳細には、本発明は、ソフトウェア製品の仮想アプライアンスをデプロイするときに必要とされるあらかじめ必要なソフトウェアのライセンスの承認を管理することを含む、あらかじめ必要なソフトウェアを管理するための方法、コンピュータ・プログラム、およびシステムを扱う。
【背景技術】
【０００２】
仮想アプライアンスは、少なくとも１つのソフトウェア・アプリケーションおよび少なくとも１つの仮想マシン（ＶＭ）を含む仮想マシン・イメージである。仮想アプライアンスは、物理マシン上で動作する仮想マシン・モニタに直接インストールされることができる。仮想アプライアンスは、ソフトウェア・アプリケーションをデプロイする新しい方法である。
【０００３】
ソフトウェアのパッケージ化および配布の観点から見ると、ソフトウェアの開発者が、単一のプラットフォームを作成し、ソフトウェアの開発および管理のコストおよび複雑性を削減することができる。仮想アプライアンスは、電子的なダウンロードか、または物理的な配布かのどちらかによってユーザまたは顧客にファイルとして提供される。仮想アプライアンスを配布することによって、ソフトウェア・アプリケーションの製造者は、エンド・ユーザにターンキー・ソフトウェア・サービスを納入する。
【０００４】
新しい仮想アプライアンスはより複雑であることが留意される。現在の仮想アプライアンスは単一のＶＭのみを含むが、複数の層を有する最新のエンタープライズ・アプリケーション・モデルのサービス指向アーキテクチャ（ＳＯＡ）に関しては、各層が１つまたは複数のマシンを含む。したがって、単一ＶＭモデルは、多層サービスを配布するには不十分であり、そのため、仮想アプライアンスは、より多くのＶＭで構成されることになる。例えば、典型的なウェブ・アプリケーションは、３つの層、すなわち、プレゼンテーション・ロジックを実装するウェブ層、ビジネス・ロジックを実装するアプリケーション・サーバ層、およびバックエンドのデータベース層からなる可能性がある。単純な実装は、これを、各層に対して１つずつ、３つの仮想マシンに分割する。このように、アプリケーションは、単一の物理的なホストの一部から３つの物理的なホストまで広がる可能性がある。
【０００５】
複雑な仮想アプライアンスのインストールに関する１つの問題は、ソフトウェア製品のベンダーが、仮想環境にインストールされるべき製品のイメージがさらなるあらかじめ必要なソフトウェアを要求する仮想アプライアンスを提供する可能性があることに起因する。正確に言えば、これらの「あらかじめ必要なソフトウェア」は、１つのソフトウェア・プログラム、またはソフトウェア・プログラムとデータとをグループ化する可能性があるパッケージを含む。これらのあらかじめ必要なソフトウェア／パッケージは、製品自体とともに提供されないが、顧客は、従来のインストール手法を用いて製品をインストールする前にそれらのソフトウェア／パッケージをダウンロードし、インストールする（さらに、関連するライセンスの条項および条件に同意する）必要がある。
【０００６】
一方で、ベンダーが、さらなるあらかじめ必要なパッケージ／ソフトウェアと一緒に製品が既にインストールされている仮想アプライアンスを提供すると決定する場合、このことは、顧客が、その顧客の仮想環境にイメージをデプロイするときに、対応するあらかじめ必要なパッケージ／ソフトウェアのライセンスに違反する事態につながりかねない。
【０００７】
米国特許出願第２００９０３００６０４号は、ユーザが仮想アプライアンスに関連して元リポジトリ（origin repository）に含まれるソフトウェアを選択することを可能にすることによって仮想マシンのインストール中にソフトウェアの依存関係を解決するため、および対応するパッケージのインストール中に発生する可能性があるライセンスの競合の組を表示するための方法を開示する。典型的なケースは、仮想マシンがインスタンス化され、「インストールされるべきソフトウェア」に応じて、適切なインストール時の「ソフトウェアの依存関係」もインストールされることである。これは、仮想化の状況に関わらず非常によくあるプロセスである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願第２００９０３００６０４号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
自身の仮想環境に仮想アプライアンスをデプロイ中のユーザが、ソフトウェア製品をアクティブ化するために必要なすべてのソフトウェアのライセンスに準拠したインストールを保証することを可能にするソフトウェア製品の仮想アプライアンスを作成するための方法、コンピュータ・プログラム、およびシステムを提供することが、本発明の目的である。
【課題を解決するための手段】
【００１０】
この目的は、請求項１によれば、ソフトウェア製品の仮想イメージの配布パッケージから少なくとも１つの仮想ディスクをマウントすることによってインスタンス化される仮想マシンにソフトウェア製品のあらかじめ必要なソフトウェアをインストールするための方法であって、
−  ソフトウェア製品の仮想イメージの配布パッケージで提供されたソフトウェア製品に関するあらかじめ必要なソフトウェアのリストを読むステップと、
−  あらかじめ必要なソフトウェアが仮想マシンにインストールされていないかどうかをテストし、あらかじめ必要なソフトウェアがインストールされていない場合に、ソフトウェア製品の仮想イメージの配布パッケージで提供されたリポジトリ内のあらかじめ必要なソフトウェアのロケーションを読んだ後にあらかじめ必要なソフトウェアを取得するステップ（４２０）と、
−  取得されたあらかじめ必要なソフトウェアのライセンス文を読み、そのライセンス文をユーザに対して表示するステップ（４３０）と、
−  ユーザによってライセンス文が承認されたときに、取得されたあらかじめ必要なソフトウェアをインストールするステップと、
−  すべてのあらかじめ必要なソフトウェアがインストールされるまで前の３つのステップを繰り返すステップと
のブート時の自動実行を含む、方法によって達成される。
【００１１】
目的は、請求項２によれば、あらかじめ必要なソフトウェアが仮想マシンにインストールされていると示される場合に、このあらかじめ必要なソフトウェアに関してその後の取得するステップ、読むステップ、表示するステップ、およびインストールするステップをスキップするステップをさらに含む請求項１に記載の方法によってやはり達成される。
【００１２】
目的は、請求項３によれば、あらかじめ必要なソフトウェアが仮想マシンに既にインストールされていると示されない場合に、すべての既に取得されたあらかじめ必要なソフトウェアのリスト内のあらかじめ必要なソフトウェアが取得されることができるロケーションを読むことによってあらかじめ必要なソフトウェアが既に取得されていないかどうかをテストするステップであって、リストは、取得されたあらかじめ必要なソフトウェアをインストールする各ステップの後で、新しく取得されたあらかじめ必要なソフトウェアで更新される、ステップをさらに含む請求項１または２に記載の方法によってやはり達成される。
【００１３】
目的は、請求項４によれば、ライセンス文を読み、前記ライセンス文を表示するステップが、リモート・サーバと通信して（３４０）、その読み、表示するステップがリモート・サーバによって実行されるように求める初期ステップを含む請求項１ないし３のいずれか一項に記載の方法によってやはり達成される。
【００１４】
目的は、請求項５によれば、取得されたあらかじめ必要なソフトウェアのライセンス文を読むステップが、取得されたあらかじめ必要なソフトウェアからライセンス文を引き出す初期ステップを含む請求項１ないし４のいずれか一項に記載の方法によってやはり達成される。
【００１５】
目的は、請求項６によれば、取得されたあらかじめ必要なソフトウェアのライセンス文を読むステップが、ソフトウェア製品の仮想イメージの配布パッケージで提供されたライセンス・ファイルからライセンス文を読むことに存する請求項１ないし４のいずれか一項に記載の方法によってやはり達成される。
【００１６】
目的は、請求項７によれば、
−  ソフトウェア製品およびそのソフトウェア製品のあらかじめ必要なソフトウェアを開発者の仮想マシンにインストールする先行ステップと、
−  開発者の仮想マシンにおいてソフトウェア製品をテストする先行ステップと、
−  ソフトウェア製品に関するすべてのあらかじめ必要なソフトウェアを開発者の仮想マシンから削除する先行ステップ（２４０）と、
−  開発者の仮想マシンの少なくとも１つの仮想ディスクを作成する先行ステップと、
−  少なくとも１つの仮想ディスクがマウントされるときにアクティブ化されるべきブート・プログラムを作成する先行ステップと、
−  ソフトウェア製品に関するあらかじめ必要なソフトウェアのリストを作成する先行ステップ（２２０）と、
−  あらかじめ必要なソフトウェアが取得されることができるロケーションを含むリポジトリを作成する先行ステップと、
−  少なくとも１つの仮想ディスク、ソフトウェア製品に関するあらかじめ必要なソフトウェアのリスト、およびあらかじめ必要なソフトウェアが取得されることができるロケーションを含むリポジトリを含むソフトウェア製品の仮想イメージの配布パッケージを作成する先行ステップと
をさらに含む請求項１ないし６のいずれか一項に記載の方法によってやはり達成される。
【００１７】
目的は、請求項８によれば、
ソフトウェア製品のあらかじめ必要なソフトウェアのライセンス文を含むライセンス・ファイルを作成し、そのライセンス・ファイルをソフトウェア製品の仮想イメージの配布パッケージに追加するステップ
をさらに含む請求項７に記載の方法によってやはり達成される。
【００１８】
目的は、請求項９によれば、あらかじめ必要なソフトウェアがインストールされておらず、あらかじめ必要なソフトウェアがあらかじめ必要なソフトウェアのロケーションから読まれることができない場合に、あらかじめ必要なソフトウェアの手動インストールが要求され、プロセスが停止される請求項１ないし８のいずれか一項に記載の方法によってやはり達成される。
【００１９】
目的は、請求項１０によれば、あらかじめ必要なソフトウェアを取得するステップが、配布パッケージで提供されたリポジトリ内のインターネット・アドレスを読むステップを含み、インストールするステップが、そのインターネット・アドレスからあらかじめ必要なソフトウェアをダウンロードするステップを含む請求項１ないし９のいずれか一項に記載の方法によってやはり達成される。
【００２０】
目的は、請求項１１によれば、請求項１ないし１０のいずれか一項に記載の方法のステップを実行するように適合された手段を含むシステムによってやはり達成される。
【００２１】
目的は、請求項１２によれば、コンピュータ・プログラムがコンピュータ上で実行されるときに、請求項１ないし９のいずれか一項に記載の方法のステップを実行するための命令を含むコンピュータ・プログラムによってやはり達成される。
【００２２】
顧客が、その顧客の仮想環境にソフトウェア製品をインストールするために仮想アプライアンスをデプロイするときに「インストール不可能な」あらかじめ必要なソフトウェアをインストールしないことを保証するために、あらかじめ必要なソフトウェアは、ソフトウェア製品の開発者によって準備されるＶＭイメージ自体から削除され、ライセンスに準拠するようにして再インストールされる。ブート時に自動的に開始する特定のアクティベーション・フェーズ中に、あらかじめ必要なソフトウェアのインストールが、ユーザがあらかじめ必要なソフトウェアのライセンスに同意する場合にのみ実行され、次いで、ソフトウェア製品が、すべてのあらかじめ必要なソフトウェアがインストールされる場合にのみアクティブ化される。
【図面の簡単な説明】
【００２３】
【図１】本発明の好ましい実施形態による仮想アプライアンスが作成される準備サイト（preparationsite）をセットアップするためのシステム環境を示す図である。
【図２】ソフトウェア製品を配布するために仮想アプライアンスのイメージを準備するための方法の流れ図である。
【図３】顧客の仮想環境にソフトウェア製品の仮想アプライアンスをデプロイするためのシステム環境を示す図である。
【図４】顧客の仮想環境にソフトウェア製品の仮想アプライアンスをデプロイするための、本発明の好ましい実施形態による方法の流れ図である。
【発明を実施するための形態】
【００２４】
図１は、本発明の好ましい実施形態による仮想アプライアンスが作成される準備サイトをセットアップするためのシステム環境を示す。ソフトウェア製品の仮想アプライアンスのイメージを作成するために、ソフトウェアのベンダーは、仮想マシン環境を管理するための仮想管理サーバ（１１０）と、仮想マシンがインストールされ得る準備サイトサーバ（１００）とを有する可能性がある。例えば、仮想マシン・モニタであるホスト環境（１２５）は、仮想マシン（ＶＭ）、ゲストＯＳ（１３０）をその仮想ディスク（１１５、１２０）とともに管理するためのＶＭｗａｒｅ（ＶＭｗａｒｅはＶＭｗａｒｅ  Ｉｎｃ．の商標である）仮想マシン・モニタである可能性がある。
【００２５】
ファイル・リポジトリ（１４５）は、ソフトウェア製品の仮想アプライアンスをビルドするために必要なすべてのファイルを記憶するためにイメージ準備マネージャによって使用される。
【００２６】
仮想管理サーバ（１１０）は、例えば、ＶＭｗａｒｅ仮想マシン・モニタ用のＶＩＸである仮想マシン・モニタのＡＰＩを使用して仮想マシン・モニタと通信する。ＡＰＩは、例えば、リポジトリからゲストＯＳ準備サイト（Guest OS Preparation site）にファイルをコピーするために使用される。ＡＰＩコマンドは、インタラクティブにか、または同じ操作を自動的に実行するために送られるスクリプトを通じてかのどちらかで使用される可能性がある。
【００２７】
図２は、ソフトウェア製品を配布するために仮想アプライアンスのイメージを準備するための方法の流れ図である。このイメージの準備は、仮想マシン・モニタと通信するためのＡＰＩコマンドを実施するスクリプトを使用することによって自動的に実行され得る。
【００２８】
第１のステップ（２００）は、仮想アプライアンスとして配布されるべきソフトウェア製品を準備サイトにインストールすることに存する。ソフトウェア製品は、仮想マシン・モニタのホスト環境の上でアクティブ化された仮想マシンであるゲストＯＳ準備サイトの仮想マシン上にインストールされる。
【００２９】
あらかじめ必要なソフトウェア／パッケージが、ソフトウェア製品の実行を可能にするために同じゲストＯＳの仮想マシン上にダウンロードされ、インストールされる（２１０）。これらのあらかじめ必要なソフトウェア／パッケージは、例えば、インターネットからダウンロードされるべきオープン・ソースのパッケージである可能性がある。それらのソフトウェア／パッケージは、例えば、ＡＩＸ（ＡＩＸはＩＢＭの商標である）またはＬｉｎｕｘ（Ｌｉｎｕｘは米国およびその他の国におけるLinus Torvalsの商標である）の標準的なオペレーティング・システムのサービスを修正する．ｒｐｍファイルである可能性がある。
【００３０】
あらかじめ必要なソフトウェア／パッケージのリスト、いわゆる外部コンポーネント要件（ExternalComponent Prerequisite）（ＥＣＰ）が、開発者によって作成され、ＥＣＰリストは、ソフトウェア製品の実行のためにインストールされる必要があるあらかじめ必要なソフトウェア／パッケージのリストを含む。このリストは、顧客のサイトにおけるソフトウェア製品のインストール中に使用される。開発者によってやはり作成され、顧客のサイトにおけるソフトウェア製品のインストール中に使用される追加的な情報は、あらかじめ必要なソフトウェア／パッケージを取得するためのそれらのあらかじめ必要なソフトウェア／パッケージの情報（例えば、そのソフトウェア／パッケージをダウンロードすべきＵＲＬアドレス）、仮想イメージ内のすべてのソフトウェアを載せたリポジトリ、また、任意で、顧客がインストールの前に同意しなければならない事前に存在するソフトウェア／パッケージのライセンス文である（２２０）。
【００３１】
ソフトウェア製品が、ゲストＯＳ準備サイトの仮想マシン上でテストされる（２３０）。このテストは、自動化されたテスト・スイートを実行することである可能性がある。
【００３２】
テスト・スイートがまったくエラーがなく実行されるならば、製品の実行が停止される（２４０）。
【００３３】
ＥＣＰリストに挙げられたあらかじめ必要なソフトウェア／パッケージ製品（artifact）が、仮想マシンから削除される（２４０）。仮想イメージがゲストＯＳ準備サイトの仮想マシンから作成され（仮想イメージは、１つまたは複数の仮想ディスク、例えば、オペレーティング・システム用の１つの仮想ディスク、プログラム製品用の１つの仮想ディスクを含む可能性がある）、仮想イメージは、いかなるあらかじめ必要なソフトウェアも含まない。
【００３４】
通常、ソフトウェア・プログラムのアクティベーションは、仮想マシンが仮想アプライアンスからインスタンス化されるときのブート時に自動的に開始される。顧客がソフトウェア製品の実行を自動的に開始することを防止するために、（通常はＯＳの仮想ディスクにおける）初回ブート時の製品の自動スタートアップが無効化される。その代わりに、（以下で説明される）特定のアクティベーション・プログラムが作成され、仮想イメージに追加される。アクティベーション・プログラムは、プログラム製品自体のアクティベーションの前に事前に存在するソフトウェア／パッケージをインストールするために、ユーザが仮想アプライアンスをデプロイするときに開始される（２５０）。
【００３５】
アクティベーション・プログラムは、顧客の仮想環境に仮想アプライアンスをデプロイするための方法のステップを示す図４の説明に関連してより深く説明される。
【００３６】
ステップ２６０において、仮想アプライアンスのパッケージが、顧客に配布するためにビルドされる。開発者は、仮想アプライアンスの配布パッケージに、以下のようなインストールに必要な追加的な情報を含める。
−  仮想システムに何がインストールされるかを示すリポジトリ：顧客のサイトにおけるアクティベーション・フェーズ中、あらかじめ必要なソフトウェア／パッケージを取得するときに、リポジトリが読まれる。あらかじめ必要なソフトウェア／パッケージは開発者によって仮想マシンから削除されているので、仮想アプライアンスを作成するときは、このリポジトリに載せられたソフトウェア製品のあらかじめ必要なソフトウェア／パッケージは１つも存在しない。アクティベーション・フェーズ中に、アクティベーション・プログラムは、図４の説明を参照して本明細書において後（４１０）で説明されるように、このリポジトリを用いて、ソフトウェア製品に必須のあらかじめ必要なソフトウェア／パッケージがインストールされているかどうかを調べる。リポジトリがＷｉｎｄｏｗｓ（Ｗｉｎｄｏｗｓはマイクロソフトの商標である）ＯＳのレジストリまたはＬｉｎｕｘのＲＰＭなどのＯＳのリポジトリである場合、リポジトリは仮想ディスクに含まれる。
−  ＥＣＰ（１つの所与の製品に関するあらかじめ必要なソフトウェア／パッケージのリスト）
−  あらかじめ必要なソフトウェア／パッケージが取得され得るロケーション。ロケーションは、例えば、ソフトウェア／パッケージをダウンロードすべきＵＲＬアドレスである可能性がある。
−  任意で、製品のあらかじめ必要なソフトウェア／パッケージのライセンス文が仮想ディスクの作成中に収集された場合は、これらのライセンス文のリスト。好ましい実施形態においては、ライセンス文は、アクティベーション・プログラムによってあらかじめ必要なソフトウェア／パッケージのインストール中にオンザフライで取得される。
−  ユーザによる仮想アプライアンスの情報への安全なアクセスのためのセキュリティの特徴。
【００３７】
アクティベーション・フェーズに必要なこの追加的な情報は、仮想ディスクに含まれるか、または仮想アプライアンスの配布パッケージ内に別個に提供されるかのどちらかである可能性がある。変更されることができないＥＣＰは、仮想イメージに含まれる。あらかじめ必要なソフトウェア／パッケージのロケーションなどのその他の追加的な情報は、それらの情報がアクティベーション・フェーズ中にユーザによって修正される可能性があり、例えば、あらかじめ必要なソフトウェア／パッケージがユーザのインストールの際に１つのその他のロケーションから取得され得る場合に、ユーザがロケーションを変更する可能性があるので、仮想ディスクに含まれないことが好ましい。例えば、ユーザは、仮想イメージの作成時に開発者によって入力されたＵＲＬアドレスを、すべてのあらかじめ必要なソフトウェア／パッケージが顧客のサイトのリポジトリファイルから見つけられ得る場合にはこのリポジトリによって置き換える可能性がある。
【００３８】
ユーザインターフェースが、ＥＣＰ、および上述のあらかじめ必要なソフトウェア／パッケージに関するその他の情報を入力するために開発者によって使用されることができる。
【００３９】
仮想アプライアンスのパッケージの準備に適合する任意のフォーマットが、使用され得る。分散管理タスクフォース（Distributed Management Task Force）（ＤＭＴＦ）協会内で開発されている規格であるオープン仮想化フォーマット（OpenVirtualization Format）（ＯＶＦ）仕様が、使用され得る。ＯＶＦ配布パッケージは、インストールに必要な追加的な情報（ＥＣＰ、ライセンス情報など）を含み得るＯＶＦ記述子（OVFdescriptor）ＸＭＬファイル（ＯＶＦエンベロープ（OVF envelope）とも呼ばれる）を含み、ＯＶＦ配布パッケージは、ＯＶＦパッケージおよび仮想ディスク・イメージにアクセスするときのセキュリティのために使用されるＯＶＦマニフェストおよび証明書ファイルも含む。
【００４０】
図３は、顧客の仮想環境にソフトウェア製品の仮想アプライアンスをデプロイするためのシステム環境を示す。
【００４１】
ソフトウェア・アプリケーションをインストールし、アクティブ化するための顧客のシステム環境（３００）は、ＶＭｗａｒｅ仮想マシン・モニタなどの仮想マシン・モニタ、ホスト環境（３２５）が仮想マシンを管理するサーバを含み得る。図２に記載の方法にしたがって準備された仮想アプライアンスは、例えば、ＯＳイメージを有する１つの仮想ディスク（３１０）と、プログラム製品のデータを有する１つの仮想ディスク（３２０）との２つの仮想ディスクに存する。
【００４２】
通常、仮想マシンを開始するためのステップは、初めに、仮想ディスクをロードすることによって仮想マシンをインスタンス化することと、次に、通常はオペレーティング・システムの仮想ディスクに配置されるブートストラップによって自動的に行われる、仮想マシンをアクティブ化することとを含む。ソフトウェア製品を含む仮想アプライアンスをデプロイするために、顧客は、初めに、仮想アプライアンスの仮想ディスクをマウントすることによって仮想マシンをインスタンス化する。図２に記載のステップにしたがって作成された仮想アプライアンスをデプロイする顧客は、仮想マシンをインスタンス化し、ソフトウェア・プログラムを自動的にアクティブ化するブート・プログラムを有する代わりに、アクティベーション・プログラムが開始される。
【００４３】
ロードされるアクティベーション・プログラム（３３５）は、ライセンス許諾ソフトウェア・エンティティ・アクティベータ（Licensing Software entities Activator）（ＬＳＥＡ）、ライセンス許諾ソフトウェア・エンティティ・レジストリ（LicensingSoftware Entities Registry）（ＬＳＥＲ）、およびライセンス許諾ソフトウェア・エンティティ・ユーザ・インターフェース（LicensingSoftware Entities User Interface）（ＬＳＥＵ）を含む。ＬＳＥＡコンポーネントは、あらかじめ必要なソフトウェア／パッケージのライセンスに準拠したインストールおよびアクティベーションを可能にする主コンポーネントであり、すなわち、ＬＳＥＡコンポーネントは、アクティベーション・フェーズにおいて、あらかじめ必要なソフトウェア／パッケージが既にインストールされているかどうかを調べ、ライセンスがユーザによって同意される場合にのみインストールを許可する。ＬＳＥＲコンポーネントは、前に取得済みであるか、またはアクティベーション・フェーズ中にインストールされるあらかじめ必要なソフトウェア／パッケージのリストと、それらのソフトウェア／パッケージのソフトウェア製品とのリンクと、あらかじめ必要なソフトウェアが取得されることができるアドレスとを含むレジストリである。新しいあらかじめ必要なソフトウェア／パッケージがインストールされるたびに、そのソフトウェア／パッケージがＬＳＥＲに登録される。ＬＳＥＲは、ソフトウェア製品のインストールのアクティベーション・フェーズ中にインストールされたあらかじめ必要なソフトウェア／パッケージへの参照を含む。ＬＳＥＲは、同じソフトウェア／パッケージが２つ以上のソフトウェア製品に関するあらかじめ必要なソフトウェア／パッケージである可能性があり、これらのその他のソフトウェア製品のために既に取得された可能性があるので、そのＬＳＥＲが２つ以上のシステム（物理的なシステムまたは仮想マシン）によって共有される場合、アクティベーション・フェーズの前にインストールされたソフトウェア／パッケージを含む。ＬＳＥＵのユーザインターフェースは、アクティベーション・フェーズ中にいつでも、インストールされるべき製品に関するあらかじめ必要なソフトウェア／パッケージのライセンス文を取得し、ユーザに対して表示することができる。アクティベーション・プログラムは、ＥＣＰと、インストールに役立つ、あらかじめ必要なソフトウェア／パッケージをダウンロードすべきロケーションなどの仮想アプライアンスの配布パッケージで提供される追加的な情報とをやはり使用する。すべてのこれらのコンポーネントおよび情報は、図４の説明で、仮想アプライアンスのデプロイの際のアクティベーション・プログラムにおけるそれらのコンポーネントおよび情報の使用に関連してさらに説明される。
【００４４】
仮想アプライアンスのデプロイのアクティベーション・フェーズ中に、アクティベーション・プログラム（３３５）が、ＶＭ（３３０）にロードされ、実行される。上述のように、ＥＣＰおよびＬＳＥＡコンポーネントは特定のソフトウェア製品のインストールおよびアクティベーションに関連するが、配布された仮想イメージから利用可能なＬＳＥＵおよびＬＳＥＲは、任意で、仮想ディスク（３２０、３３５）からではなく、ホスト環境（３２５）の仮想マシン・モニタを通じて仮想マシンによってアクセスされる１つのリモート・サーバ（３４０）から使用される可能性がある。したがって、ユーザは、任意で、ソフトウェア製品のインストール／アクティベーションのために顧客のサイトの多くのシステムによって共有される（仮想または物理マシン上の）サーバ（３４０）を使用する可能性があり、このサーバは、利用できるインストール可能なあらかじめ必要なソフトウェア／パッケージを有することができ、その理由は、それらのソフトウェア／パッケージが２つ以上のソフトウェア製品に関するあらかじめ必要なソフトウェア／パッケージであるためである。この場合、ＬＳＥＲおよびＬＳＥＵコンポーネントは、ソフトウェア・プログラムがインストールされ、アクティブ化される２つ以上のシステム（物理または仮想マシン）によって使用される。
【００４５】
顧客は、ホスト環境からの仮想マシン・モニタのＡＰＩを（オンライン・コマンドとしてか、またはスクリプトを通じてかのどちらかで）使用して、仮想マシンを開始し、仮想マシンとのインターフェースをとってファイルの修正などを行う。
【００４６】
図４は、図３に示された顧客の仮想環境にソフトウェア製品の仮想アプライアンスをデプロイするための、本発明の好ましい実施形態による方法の流れ図である。仮想アプライアンスが図２の流れ図のステップにしたがって作成されたものとする。図４の流れ図は、仮想アプライアンスとともに配布されるアクティベーション・プログラムの実行のステップ（４１０、４５０）を示す。
【００４７】
ユーザは、初めに、仮想アプライアンスの仮想ディスク、例えば、ＯＳ用の１つの仮想ディスクおよびソフトウェア製品用の１つの仮想ディスクをマウントする（４００）。仮想アプライアンスをデプロイする顧客は、新しい仮想マシンを、ホスト環境を形成する仮想マシン・モニタの上のターゲットＯＳ（Target OS）として開始し、この仮想マシン内でソフトウェア製品の実行を開始することを望む。仮想ディスクがマウントされると、仮想マシンがインスタンス化され、ブート・プログラムが仮想ディスクから、通常はＯＳの仮想ディスクから実行を開始する。ソフトウェア製品のベンダーによってイメージの準備中に作成され、ブート時に開始されるアクティベーション・プログラムを用いると、ソフトウェア製品自体の実行は、あらかじめ必要なソフトウェア／パッケージがＶＭイメージから削除されたために、直ちに開始されない。その代わりに、アクティベーション・プログラムのＬＳＥＡ主コンポーネントが、すべてのあらかじめ必要なソフトウェア／パッケージが、仮想ディスクのマウントによって既にインスタンス化されたイメージにインストールされており、利用可能であるかどうかを調べる（４１０）。この調査を実行するために、ＬＳＥＡは、アクティブ化されるべき製品に添付されたすべての必須のあらかじめ必要なソフトウェア／パッケージのリストを含む、仮想アプライアンスのパッケージで提供されたＥＣＰを見て、それらのソフトウェア／パッケージが顧客によってまだインストールされていないかどうかを最初に調べる。これは、仮想アプライアンスで追加的な情報として配布された、ＯＳのリポジトリか、または独立したファイルであるかのどちらかである可能性がある、すべてのインストールされるソフトウェアを載せたリポジトリを読むことによって行われる。必須のあらかじめ必要なソフトウェア／パッケージは、１つのその他の製品のインストールのためにユーザによって既にインストールされた可能性があり、対応するリポジトリは、このインストールによって既に更新された可能性があることが留意される。すべてのあらかじめ必要なソフトウェア／パッケージがインストールされ、アクティブ化されている（テスト４１５に対する答えがはいである）場合、製品は、そのままアクティブ化される（ステップ４５０に進む）。
【００４８】
外部コンポーネント要件リストが満足されない（４１５に対する答えがいいえである）場合、仮想マシンをインストールする顧客は、好ましくはホスト環境のコンソールに表示されるメッセージによって、あらかじめ必要なソフトウェア／パッケージが見つからないことを知らされる。次に、ＥＣＰのあらかじめ必要なソフトウェア／パッケージが、取得される必要がある（４２０）。あらかじめ必要なソフトウェア／パッケージを取得するために、アクティベーション・プログラムは３つのケースに行き当たる。
−  アクティベーション・プログラムが、ユーザの環境に既にインストールされるあらかじめ必要なソフトウェア／パッケージを見つけるために、ＬＳＥＲで読まれたアドレスを取得する。
−  アクティベーション・プログラムが、仮想アプライアンスのパッケージ（例えば、ＯＶＦ）とともに提供された追加的な情報を読むことによって、例えば、あらかじめ必要なソフトウェア／パッケージがダウンロードされることができるＵＲＬを取得することによって、あらかじめ必要なソフトウェア／パッケージがどこから取得されることができるかを調べる。
−  取得が、アクティベーション・プログラムによってスキップされ、ＶＭのユーザによって後で実行される。これは、例えば、隔離された環境に仮想マシンがデプロイされ、どうしてもパッケージを取得することができないか、または仮想イメージをアクティブ化するために使用される仮想マシン・モニタがイメージにいかなる追加的なリポジトリを付加することも許さない場合に当てはまる。この場合、アクティベーション・プログラムは、ソフトウェア製品のアクティベーションを実行することなく終了される（停止）。このオプションが選択されるときは、ユーザが、あらかじめ必要なソフトウェア／パッケージを自身で取得し、それを手動でインストールする必要がある。
【００４９】
ＬＳＥＵは、取得されたあらかじめ必要なソフトウェア／パッケージ製品からライセンスを読み（４３０）、それをユーザに対して表示し、ユーザがライセンスに同意するかどうかをユーザに尋ねる。ユーザがライセンスに同意しない場合、アクティベーション・プログラムは、ソフトウェア製品のアクティベーションを実行することなく終了される（停止）。その後のインストールを認める前に、ユーザは、そのユーザのライセンスに関する問題を解決する必要がある。
【００５０】
ユーザがライセンスに同意する場合、ＬＳＥＡコンポーネントが、あらかじめ必要なソフトウェア／パッケージをインストールする（４３０）。次に、ＬＳＥＡは、ＬＳＥＲを、インストールされたあらかじめ必要なソフトウェア／パッケージのロケーション、およびその他のあらかじめ必要なソフトウェア／パッケージとの関係、およびソフトウェア製品の関係について更新する（４４０）。このステップが実行されない場合、アクティベーション・プログラムは終了される（停止）。
【００５１】
すべてのあらかじめ必要なソフトウェア／パッケージがインストールされると、最後のステップは、ソフトウェア製品をアクティブ化するためのものである（４５０）。プログラム製品のアクティベーションは、必要に応じて構成するステップと、仮想マシンの仮想ディスクから既に利用可能であるプログラムの実行を開始するステップとを必要とする可能性がある。
【００５２】
仮想イメージをインストールするユーザによる承認のためにライセンス文を表示するために、ＬＳＥＵコンポーネントは、仮想イメージを作成する開発者によって既に与えられたライセンス・ファイルからライセンス文を読むことができるか、またはＬＳＥＵは、あらかじめ必要なソフトウェア／パッケージが記憶されるロケーションからアクティベーション・フェーズ中にオンザフライでライセンス文を引き出すことができることが留意される。
【００５３】
結果として、仮想マシンのアクティベーション・フェーズ中に、開発者によって仮想イメージから削除されたあらかじめ必要なソフトウェア／パッケージが、自動的に、しかし、ライセンスに準拠するようにして再インストールされる。
【００５４】
イメージの作成およびソフトウェア製品のインストールのすべてのステップは、仮想マシン・モニタのＡＰＩに基づくスクリプトを用いて自動的に実行できる。
【図１】
0005863818.tif 000002
【図２】
0005863818.tif 000003
【図３】
0005863818.tif 000004
【図４】
0005863818.tif 000005