(57)【要約】【課題】  ソフトウェア・アプリケーション・バイナリを含む仮想アプライアンスの仮想ディスクを自動的にインストール及びアップグレードするための方法及びシステムを提供する。【解決手段】  コンピュータの仮想マシン・モニタ上で実行されている仮想マシン・システムにおいて、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にインストールし、更新し、除去するための方法、コンピュータ・プログラム、及びシステムである。ソフトウェア・アプリケーションの仮想アプライアンスは、コマンドを含むスクリプトを、ＡＰＩを通じて仮想マシン・モニタに対して実行する仮想ディスク・アクティブ化マネージャ（ＶＤＡＭ）により、顧客により自動的に検出され、インストールされ、又は除去される１つの仮想ディスクを含む。仮想アプライアンス仮想ディスクは、ＶＤＡＭプログラムを用いて、ソフトウェア製造業者により自動的に作成される。仮想アプライアンス仮想ディスクは、ソフトウェア・アプリケーションのバイナリと、ソフトウェア・パッケージ・ツールを用いてソフトウェア製造業者により作成されるソフトウェア・パッケージと、ソフトウェア・パッケージを実行するためのインストーラと、インストール及びアンインストール・スクリプトと、仮想マシン仮想ディスクに関する署名である一意の識別子とを格納する。【選択図】      図１
2013540302.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの仮想マシン・モニタ上で実行されている、少なくとも１つのＯＳ仮想ディスクを含む仮想マシン・システムにおいて、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にアップグレードするための方法であって、前記方法は、前記仮想マシン・モニタのＡＰＩを用いて自動的に実行される次のステップ、すなわち、
前記仮想マシンにアタッチされた仮想アプライアンス仮想ディスクのリストの以前に格納されたバージョンにおける変更を検出するステップと、
新しい仮想アプライアンス仮想ディスクが検出された場合、前記少なくとも１つのＯＳ仮想ディスク上にこの新しい仮想ディスク上で読み出された非アクティブ化スクリプトを格納し、かつ、
前記新しい仮想ディスク上に格納された前記ソフトウェア・アプリケーションをインストールする、前記新しい仮想ディスク上に格納されたインストール／アンインストール・プログラム（ＳＩＥ）の実行を開始することにより、前記新しい仮想ディスク上に格納された命令に従って前記ＯＳシステムを修正することと、
前記新しい仮想アプライアンス仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストに付加することと、
を実行することにより、前記新しい仮想ディスク上で読み出されるインストール・スクリプトを実行するステップと、
を含む方法。
【請求項２】
前記新しい仮想ディスク上に格納された場合、必要に応じて、前記ソフトウェア・アプリケーションを再構成するために、特定の付加的なアクティブ化操作を前記システム上で実行するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記仮想アプライアンス仮想ディスクの除去が検出された場合、
除去される前記仮想ディスク上に格納されたインストール／アンインストール・プログラムの実行を開始し、除去される前記仮想ディスク上に格納された、前記ソフトウェア・アプリケーションをアンインストールする命令に従って前記ＯＳシステムを修正することと、
除去される前記仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストから削除すること、
を実行することにより、除去される前記仮想ディスクの前記ＯＳに既に格納されたアンインストール・スクリプトを実行するステップをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
除去される前記仮想ディスク上に格納された場合、前記アプリケーションがアンインストールされるのを可能にする特定の付加的な操作を前記システム上で実行するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記仮想マシン上での前記仮想ディスク・アタッチ・イベント又は前記仮想ディスク除去イベントについて、前記仮想マシンを継続的に監視するステップをさらに含む、請求項１から請求項４までのいずれか１項に記載の方法。
【請求項６】
初期化された新しい仮想ディスク上にソフトウェア・アプリケーション・パッケージを格納する初期ステップと、
前記新しい仮想ディスク上に、前記ソフトウェア・アプリケーションをインストール／アンインストールするインストール／アンインストール・プログラムを格納する初期ステップと、
プログラム・パッケージ・ツールを用いて、前記インストール／アンインストール・プログラムにより実行される前記ソフトウェア・アプリケーションをインストール／アンインストールするように前記ＯＳシステムを修正するための、プログラム・パッケージを形成する命令を作成する初期ステップと、
前記仮想ディスクを前記仮想アプライアンス仮想ディスクとして識別するディスク識別子を作成し、これを前記新しい仮想アプライアンス仮想ディスク上に格納する初期ステップと、
をさらに含む請求項１又は請求項２に記載の方法。
【請求項７】
必要に応じて、インストール後に、前記ソフトウェア・アプリケーションの構成を可能にするように、前記新しい仮想ディスク上に、前記システム上で実行される特定の付加的な操作を作成しかつ格納するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記方法の前記ステップは、前記仮想マシンの前記仮想マシン・モニタとインターフェース接続する、ＡＰＩプログラミング命令を含むスクリプトを実行するプログラム（ＶＤＡＭ）により自動的に実行される、請求項１から請求項７までのいずれか１項に記載の方法。
【請求項９】
前記自動ステップの実行のために前記プログラム（ＶＤＡＭ）をセットアップする初期ステップをさらに含む、請求項１から請求項８までのいずれか１項に記載の方法。
【請求項１０】
前記仮想アプライアンス仮想ディスクの前記リストにおける変更を検出する前記ステップは、各々が前記仮想アプライアンス仮想ディスクの特定の署名である一意の識別子のリストにおける変更を検出することを含み、
前記一意の識別子を作成する前記ステップは、前記仮想アプライアンス仮想ディスクの属性に基づいて前記特定の署名を計算することを含む、
請求項１から請求項９までのいずれか１項に記載の方法。
【請求項１１】
請求項１から請求項１０までのいずれか１項に記載の方法のステップを実行するように適合された手段を含むシステム。
【請求項１２】
コンピュータ上で実行されたとき、請求項１から請求項９までのいずれか１項に記載の方法のステップを実行するための命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、仮想アプライアンスとして配布されるソフトウェアのインストール及びアップグレードに関し、より具体的には、本発明は、仮想アプライアンスを含む仮想ディスクの自動アクティブ化を扱う。
【背景技術】
【０００２】
仮想アプライアンスは、少なくとも１つのソフトウェア・アプリケーションと、少なくとも１つの仮想マシン（ＶＭ）とを含む、仮想マシン・イメージである。仮想アプライアンスは、物理マシン上で動作している仮想マシン・モニタ上に直接インストールすることができる。仮想アプライアンスは、ソフトウェア・アプリケーションを配置する新しい方法である。
【０００３】
ソフトウェアのパッケージング及び配布の観点から、ソフトウェア開発者は、単一のプラットフォームを作成し、ソフトウェアの開発及び管理の費用と複雑さを低減させることができる。仮想アプライアンスは、電子的ダウンロード又は物理的配布のいずれかを介して、ファイルとしてユーザ又は顧客に提供される。仮想アプライアンスを配布することにより、ソフトウェア・アプリケーションの製造業者は、ターンキー式ソフトウェア・サービスをエンドユーザに提供する。
【０００４】
別個のプロセスと同じ数の層を含むクライアント・サーバ・アプリケーションである多層アーキテクチャ・アプリケーションを配布するために仮想アプライアンスを作成したいと望む場合、単一のＶＭでは十分でないことに留意されたい。多層アーキテクチャの仮想アプライアンスは、少なくとも、層の数と同じ数のＶＭを含む。例えば、単一のＶＭしか含まない現在の仮想アプライアンスと比較すると、例えば、最新の企業アプリケーション・モデルのサービス指向アーキテクチャ（service oriented architectures、ＳＯＡ）は多層アーキテクチャであり、各層が１つ又は複数のマシンを含む。従って、多層サービスを配布するために、単一のＶＭモデルでは十分でなく、従って、仮想アプライアンスは、より多くのＶＭで構成されることになる。３つの層、すなわち提示論理を実装する１つの層、ビジネス論理を実装するアプリケーション・サーバ層及びバックエンド・データベース層からなるウェブ・アプリケーションの場合、仮想アプライアンスは、各層について１つ、３つのＶＭを含む。
【０００５】
今日、仮想アプライアンスのコンポーネントを仮想ディスクに分離することができる。仮想ディスク・イメージは、仮想マシン・モニタによりハードディスクとして解釈できるフォーマットを有する物理ディスク上のファイルである。ほとんどの場合、ＶＭのベース・オペレーティング・システムを他のソフトウェア・アプリケーション及び他のコンポーネントから分離し、仮想アプライアンスを形成する複数の仮想ディスクを作成することができる。ＵＮＩＸのために配布されるほとんど全てのアプリケーションは、アプリケーションを実行するための全てのバイナリを含有するバイナリ・セクションを含み、このバイナリ・セクションは、アプリケーションがインストールされる特定のシステムに依存しない。構成／データ・セクションも与えられ、これらは現在のインストールに特有の構成及びデータ・ファイルを含む。この２つのセクションは、２つの異なるファイル・システム・パス上にインストールすることができ、潜在的に２つの異なる仮想ディスクを指し示す。
【０００６】
仮想アプライアンスを複数のディスク上に与える利点は以下の通りである。
これにより、ソフトウェア・アプリケーション製品のバイナリの保守が単純化される。例えば、ソフトウェア・アプリケーション製造業者は、バイナリを更新し、更新されたバイナリを有する新しい仮想ディスクを顧客に提供することができる。顧客は、ＶＭを停止し、対応する仮想ディスク・イメージを置換し、ＶＭを再開しなければならない。
−顧客は、仮想アプライアンスのオペレーティング・システムの仮想ディスクを修正し、ＯＳを顧客自身のバージョンに置換することができる。
−異なる仮想環境（ＶＭｗａｒｅ（ＶＭｗａｒｅは、米国及び／又は他の管轄区域におけるＶＭｗａｒｅ，Ｉｎｃ．の登録商標又は商標である）又はＸｅｎ（Ｘｅｎは、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ.及び／又は１つ又は複数の子会社の商標であり、米国特許商標庁及び他の国々において登録されたものとすることができる）などの）をサポートするために、アプリケーション・ソフトウェア製造業者は、例えば、製品アプリケーション・バイナリのＶＭｗａｒｅフォーマット済み仮想ディスク（製品ディスク）を、Ｘｅｎフォーマット済み仮想ディスクに変換するだけでよい。オペレーティング・システムを含む仮想ディスクを変換する必要はない。
−製品ディスクを用いて、異なるＶＭをサポートすることができる。Ｘｅｎイメージ仮想ディスク・フォーマットを用いることにより、ユーザは、Ｌｉｎｕｘシステム（Ｌｉｎｕｘは、米国、他の国々、又はその両方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの登録商標である）の製品アプリケーションのバイナリを含有する同じ仮想ディスクを適切なマウント・ポイントにマウントし、これを、ソフトウェア・アプリケーション・アクティブ化スクリプトを用いて構成することができる。これは、製品をＬｉｎｕｘサーバにインストールするのと同等である。この文脈において、同じ製品ディスクを同じオペレーティング・システム・ファミリー上にインストールすることができ、同じオペレーティング・システムのバージョンごとに、スクリプトは異なり得る。従って、製品ディスクを備えた全てのスクリプトが、同じＯＳファミリーに適用される。
−さらに、製品バイナリを構成／データから分離させるために、製品自体を複数のディスクに分割することができる。この場合、いずれの構成及び／又はデータも失うことなく、バイナリを更新することが可能である。
【０００７】
しかしながら、仮想ディスク上に分散した、アプリケーション・バイナリを含有する仮想ディスクをインストールする又は置換するには、手動操作の実行が必要である。例えば、ユーザは、ＶＭシステム・ディレクトリの下でシステム・ファイルを作成及び／又は更新するために、構成／インストール・スクリプトを手動で実行して仮想ディスクをインストールする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、バイナリが仮想ディスク上に分散した、仮想アプライアンスとして配布されるアプリケーションをインストール又は置換する際の手動操作を回避する必要性がある。
【課題を解決するための手段】
【０００９】
本発明の目的は、ソフトウェア・アプリケーション・バイナリを含む仮想アプライアンスの仮想ディスクを自動的にインストール及びアップグレードするための方法及びシステムを提供することである。
【００１０】
この目的は、請求項１により、コンピュータの仮想マシン・モニタ上で実行されている、少なくとも１つのＯＳ仮想ディスクを含む仮想マシン・システムにおいて、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にアップグレードするための方法であって、仮想マシン・モニタのＡＰＩを用いて自動的に実行される次のステップ、すなわち、
仮想マシンにアタッチされた仮想アプライアンス仮想ディスクのリストの以前に格納されたバージョンにおける変更を検出するステップと、
新しい仮想アプライアンス仮想ディスクが検出された場合、少なくとも１つのＯＳ仮想ディスク上にこの新しい仮想ディスク上で読み出された非アクティブ化スクリプトを格納し、かつ、
新しい仮想ディスク上に格納されたソフトウェア・アプリケーションをインストールする、新しい仮想ディスク上に格納されたインストール／アンインストール・プログラム（ＳＩＥ）の実行を開始することにより、新しい仮想ディスク上に格納された命令に従ってＯＳシステムを修正することと、
新しい仮想アプライアンス仮想ディスクのエントリを、現在アタッチされている仮想ディスクのリストに付加することと、
を実行することにより、新しい仮想ディスク上で読み出されるインストール・スクリプトを実行するステップと、
を含む方法によって実現される。
【００１１】
この目的は、請求項２により、新しい仮想ディスク上に格納された場合、必要に応じて、ソフトウェア・アプリケーションを再構成するために、特定の付加的なアクティブ化操作をシステム上で実行するステップをさらに含む、請求項１に記載の方法によって実現される。
【００１２】
この目的は、請求項３により、
−仮想アプライアンス仮想ディスクの除去が検出された場合、
除去される仮想ディスク上に格納されたインストール／アンインストール・プログラムの実行を開始し、除去される仮想ディスク上に格納された、ソフトウェア・アプリケーションをアンインストールする命令によってＯＳシステムを修正することと、
除去される仮想ディスクのエントリを、現在アタッチされている仮想ディスクのリストから削除すること、
を実行することにより、除去される仮想ディスクのＯＳに既に格納されたアンインストール・スクリプトを実行するステップと、
をさらに含む、請求項１又は請求項に記載の方法によって実現される。
【００１３】
この目的は、請求項４により、除去される仮想ディスク上に格納された場合、アプリケーションがアンインストールされるのを可能にする特定の付加的な操作をシステム上で実行するステップをさらに含む、請求項３に記載の方法によって実現される。
【００１４】
この目的は、請求項５により、仮想マシン上での仮想ディスク・アタッチ・イベント又は仮想ディスク除去イベントについて、仮想マシンを継続的に監視するステップをさらに含む、請求項１から請求項４までのいずれか１項に記載の方法によって実現される。
【００１５】
この目的は、請求項６により、
初期化された新しい仮想ディスク上にソフトウェア・アプリケーション・パッケージを格納する初期ステップと、
新しい仮想ディスク上に、ソフトウェア・アプリケーションをインストール／アンインストールするインストール／アンインストール・プログラムを格納する初期ステップと、
プログラム・パッケージ・ツールを用いて、インストール／アンインストール・プログラムにより実行されるソフトウェア・アプリケーションをインストール／アンインストールするようにＯＳシステムを修正するための、プログラム・パッケージを形成する命令を作成する初期ステップと、
仮想ディスクを仮想アプライアンス仮想ディスクとして識別するディスク識別子を作成し、これを新しい仮想アプライアンス仮想ディスク上に格納する初期ステップと、
をさらに含む、請求項１又は請求項２に記載の方法によって実現される。
【００１６】
この目的は、請求項７により、必要に応じて、インストール後に、ソフトウェア・アプリケーションの構成を可能にするように、新しい仮想ディスク上に、システム上で実行される特定の付加的な操作を作成しかつ格納するステップをさらに含む、請求項６に記載の方法によって実現される。
【００１７】
この目的は、請求項８により、方法のステップは、仮想マシンの仮想マシン・モニタとインターフェース接続する、ＡＰＩプログラミング命令を含むスクリプトを実行するプログラム（ＶＤＡＭ）により自動的に実行される、請求項１から請求項７までのいずれか１項に記載の方法によって実現される。
【００１８】
この目的は、請求項９により、自動ステップの実行のためにプログラム（ＶＤＡＭ）をセットアップする初期ステップをさらに含む、請求項１から請求項８までのいずれか１項に記載の方法によって実現される。
【００１９】
この目的は、請求項１０により、
仮想アプライアンス仮想ディスクのリストにおける変更を検出するステップは、各々が仮想アプライアンス仮想ディスクの特定の署名である一意の識別子のリストにおける変更を検出することを含み、
一意の識別子を作成するステップは、仮想アプライアンス仮想ディスクの属性に基づいて特定の署名を計算することを含む、
請求項１から請求項９までのいずれか１項に記載の方法によって実現される。
【００２０】
この目的は、請求項１１により、請求項１から請求項１０までのいずれか１項に記載の方法のステップを実行するように適合された手段を含むシステムによって実現される。
【００２１】
この目的は、請求項１２により、コンピュータ上で実行されたとき、請求項１から請求項９までのいずれか１項に記載の方法のステップを実行するための命令を含むコンピュータ・プログラムによって実現される。
【００２２】
本発明の解決法によって、異なる仮想ディスク上に仮想アプライアンスを分散させる従来技術の慣例を活用して、ここでは、ソフトウェア製造業者が、ソフトウェア・アプリケーション・バイナリを含み、ユーザにより自動的にインストールされる又はユーザ・サイトのＶＭ上で置換され、手動操作の実行を回避させる自動アクティブ化仮想ディスク（Self-Activating Virtual Disk、ＳＡＶＤ）（製品ディスク）を構築するのを可能にする方法及びシステムが開示される。
【００２３】
ＳＡＶＤを有するアプリケーションを配布するソフトウェア製造業者にとっての１つの利点は、図３の説明に関連して好ましい実施形態の詳細な説明において説明されるように、ソフトウェア製造業者による、その準備サイトにおけるＳＡＶＤ製品ディスクの作成も自動化できることである。
【００２４】
この方法は、ソフトウェア製造業者が、仮想アプライアンス内にＯＳを配布するのを回避することを可能にする。仮想アプライアンスは、アプリケーション・バイナリと、顧客のＶＭ環境におけるアプリケーションの自動インストール又は置換に必要な全てのアーチファクトとを含む仮想ディスクのような、１つのＳＡＶＤだけを含むことができる。ＳＡＶＤ製品ディスクを置換することによりアプリケーションをアップグレードする際、ＯＳディスクがアプリケーション・アップグレード仮想アプライアンスと共に配布されれば失われ得る付加的なデータ及び構成を顧客が含ませていた可能性がある、ＶＭ  ＯＳディスクを変更しない。さらに、全てのオペレーティング・システム関連ファイルは含まれないため、アプライアンスをインストールするのに必要なアーチファクトの全体のサイズが低減される。
【００２５】
この解決法の１つの付加的な利点は、オペレーティング・システムが新しいバージョンのアプリケーションと共に配布されないことであり、このことは、オペレーティング・システムを、新しいバージョンの仮想アプライアンスと共に再配布することが必要な場合に要求されるライセンス契約に関連した製造業者に対する問題を解決する。実際に、通常、オペレーティング・システムには、イメージの無償の再配布を防ぐ所有者ライセンスが付随する。
【００２６】
本発明の解決法によって、ソフトウェア製造業者は、ＯＳ仮想ディスク及びＳＡＶＤ製品ディスクを、アプリケーション仮想アプライアンスの最初のバージョンで配布し、かつ、アプリケーションの各新しいバージョンに対してのみ、ＳＡＶＤ製品ディスクを配布するよう選択することができる。本発明の解決法によって、製造業者は、アプリケーション・アップグレードを含むＳＡＶＤと共にＯＳディスクを配布することもできるが、この事例は、顧客が、自身のサイト上でＳＡＶＤを置換してアプリケーション・バイナリをアップグレードする際に、ＯＳベース・システムを修正することを回避するという、本発明の１つの利点が失われるため、推奨されない。
【００２７】
本方法は、特定の仮想化ベンダーがそうした製品のインストール／アップグレードを実装するために提供するＡＰＩ及びコマンドの特定のシーケンシング及び使用に依存する。サイレントかつ全自動の手法に対する代替的手法として、再構成プロセスにおいて管理者を案内し、支援するユーザ・インターフェースが提供される。
【００２８】
本方法は、ソフトウェア・アプリケーションをインストールする際に、ターゲット・マシン上で実行される自動操作を含むソフトウェア・アプリケーション・ライブラリを供給するためのソフトウェア・パッケージの使用も活用する。
【００２９】
ＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓオペレーティング・システム（Ｍｉｃｒｏｓｏｆｔは、米国、及び／又は他の国々におけるＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標又は商標である）の従来技術のＡＵＴＯＲＵＮ機能と同様に、顧客のＶＭは、ＳＡＶＤ製品ディスクの一意の識別子を用いて、新しい又は除去されたＳＡＶＤ製品ディスクを検出し、インストール／アンインストールし、かつ、ターゲットＶＭ上の対応するソフトウェアの自動インストール又は置換を開始することができる、新しいプログラム（ＶＤＡＭ）を使用する。
【図面の簡単な説明】
【００３０】
【図１】本発明の好ましい実施形態による、準備サイトをセットアップし、仮想アプライアンスを作成するためのシステム環境を示す。
【図２】本発明の好ましい実施形態による、仮想アプライアンスを準備するためのサイトをセットアップする方法の流れ図である。
【図３】本発明の好ましい実施形態による、図２の流れ図で説明された方法に従ってセットアップされた準備サイトにおいて、仮想アプライアンスを作成する方法の流れ図である。
【図４】本発明の好ましい実施形態による、図３の流れ図で説明された方法に従って、説明されたように作成された仮想アプライアンスを、インストールする又はアンインストールするためのシステム環境を示す。
【図５】本発明の好ましい実施形態による、図３の流れ図で説明された方法に従って、説明されたように作成された仮想アプライアンスＳＡＶＤをインストール又はアンインストールするための、方法の流れ図である。
【発明を実施するための形態】
【００３１】
図１は、本発明の好ましい実施形態による、準備サイトをセットアップし、仮想アプライアンスを作成するためのシステム環境を示す。仮想アプライアンスのイメージを作成するために、ソフトウェア・アプリケーション製造業者は、仮想マシン環境を管理するための仮想管理サーバ（１１０）と、仮想マシンをインストールすることができる準備サイトサーバ（１００）とを有することができる。例えば、仮想マシン・モニタであるホスト環境（１２５）は、仮想マシン、すなわち、その仮想ディスク（１１５、１２０）を用いてゲストＯＳ（１３０）を管理するためのＶＭｗａｒｅ仮想マシン・モニタとすることができる。
【００３２】
仮想管理サーバ（１１０）上には、顧客に配布される仮想アプライアンスの最終イメージを作成するための全ての必要なファイル（１５０）をファイル・リポジトリ（１４５）内に作成するために新しいソフトウェア・コンポーネント、すなわち仮想ディスク・アクティブ化マネージャ（Virtual Disk Activation manager、ＶＤＡＭ）（１３５）がインストールされる。これらのファイルは、仮想アプライアンスのベースＯＳ仮想ディスクを作成するのに用いられるＶＭイメージを含むが、特に、これらのファイルは、アプリケーションを含有する自己アクティブ化仮想ディスクＳＡＶＤを作成するために用いられる。最初の作成について、仮想イメージは、ＶＭベースＯＳのための仮想ディスクと、アプリケーションのためのＳＡＶＤとを含有する。アプリケーションのアップグレードのために、１つのＳＡＶＤだけが作成される。
【００３３】
ＶＤＡＭは、より具体的には、ソフトウェア・アプリケーション・ライブラリ、つまり製品ディスクを含む仮想アプライアンスの仮想ディスクを作成する。好ましい実施形態によると、製品ディスクは、自己アクティブ化仮想ディスク（ＳＡＶＤ）である。ＶＤＡＭは、既存のＡＰＩを用いてホスト環境と通信する。より具体的には、ＶＤＡＭは、スクリプトの組を用いて、ＶＭｗａｒｅサーバにより与えられるＶＩＸインターフェースを活用するＶＭｗａｒｅ仮想マシン・モニタと対話して、コマンドを、ＶＭｗａｒｅ仮想マシン・モニタ及びＶＭｗａｒｅＶＭの両方に送る。ＶＩＸ  ＡＰＩは、ＶＭｗａｒｅ仮想マシンの動作を自動化し、ゲスト・オペレーティング・システム内でプログラムを実行するか又はファイルを操作する。ＶＩＸインターフェースは、ＶＭの動作（ＶＭを停止する、ＶＭを開始する、ＶＭのスナップショットを撮る等）及びゲストの動作（ゲストＯＳ内でアプリケーションを実行する、ゲストとホストとの間でファイルをコピーする等）の両方を自動化するためのプログラミング・インターフェースである。ＶＭｗａｒｅの他に、類似のＡＰＩを異なる仮想化環境において用いることができる。ＶＤＡＭコンポーネントは、特に、ディスク処理（追加する／置換する／除去する）に関連したＶＭにおけるあらゆる変更を検出し、仮想アプライアンス・ディスクをＶＭに接続させる又はＶＭから分離させるために適切な構成を呼び出すことができる。
【００３４】
ＳＡＶＤ製品ディスクの作成のために、ＩＢＭ  Ｔｉｖｏｌｉ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  Ｍａｎａｇｅｒ（ＩＢＭ及びＴｉｖｏｌｉは、ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標である）のＡＵＴＯＰＡＣＫ機能のような既存のソフトウェア・パッケージ・ツール、及びソフトウェア・パッケージ・インストーラ・エンジン（ＳＩＥ）もＳＡＶＤ製品ディスクを作成するための準備サイトにおいて用いられる。従来技術において周知のように、ソフトウェア・パッケージは、システム上にソフトウェア・アプリケーションをインストールするのに必要な動作を含む。ソフトウェア・パッケージ・インストーラは、ソフトウェア・パッケージを読み出すことにより、ソフトウェア・アプリケーションのインストールに対してターゲットＯＳを準備することができる。通常、ＳＩＥプログラムは、ターゲットＶＭのアーキテクチャに依存する。
【００３５】
以下に、これらのコンポーネント（１４０、１５５、１６０）間の様々な情報交換について、本文書の残りにおける図２及び図３の説明と関連してそれぞれ説明される準備をセットアップする及び仮想アプライアンスを作成するための方法のステップとの関連で説明する。
【００３６】
図２は、本発明の好ましい実施形態による、サイトをセットアップして仮想アプライアンスを準備するための方法の流れ図である。ソフトウェア製造業者は、好ましくは仮想管理サーバと、ホスト環境である仮想マシン・モニタを含む準備サーバとを含む準備サイトをセットアップする。本方法は、仮想アプライアンスの製品ディスクに対応するＳＡＶＤの作成に対して準備サイトを使用可能状態にすることを目的とする。準備サイトをセットアップするための全てのステップは、仮想管理サーバ上にインストールされ、かつ、準備サーバのホスト環境と通信するスクリプトを実行するＶＤＡＭプログラムによって実行される。例えば、ＶＤＡＭは、ホスト環境がＶＭｗａｒｅ仮想マシン・モニタである場合、ＶＩＸスクリプトを用いてホスト環境と通信する。全てのステップがスクリプトを通して実行されるため、本方法は完全に自動化できることに留意されたい。
【００３７】
最初のステップ（２００）は、要求されるゲストＯＳに対して仮想マシンをインストールすることからなる。ＶＭイメージは、仮想マシン・マネージャ（例えば、ＶＭｗａｒｅ仮想マシン・モニタ）であるホスト環境マシン上のファイル・リポジトリから作成されることが好ましい。
【００３８】
次いで、そのＡＰＩを用いてＶＭを仮想マシン・マネージャに構成する必要がある。このステップ（２１０）は、コピーされたばかりのイメージを参照して新しいＶＭを登録することからなり、その結果、ベースＯＳ仮想ディスクが作成される。
【００３９】
次のステップ（２２０）は、これもホスト環境上で実行され、それからイメージを作成しなければならない新しい仮想ディスクを構成し、この新しい仮想ディスクをＶＭイメージにアタッチすることからなる。
【００４０】
このディスクは、プロセスの最後にＳＡＶＤ製品ディスクとなる。
【００４１】
次いで、ゲストＯＳ  ＶＭの電源が投入され（２３０）、ソフトウェア・パッケージを作成するためのツール（ＡＵＴＯＰＡＣＫ等）、対応するソフトウェア・パッケージ・インストーラ（ＳＩＥ）及びＶＤＡＭのプログラムコードがゲストＯＳ上にコピーされ（２４０）、ライブラリは、ＶＭｗａｒｅの場合には、これもＶＩＸベースのスクリプトを通してＳＡＶＤにコピーされる。実際には、顧客サイトではインストーラ（ＳＩＥ）だけが必要であり、単純化のために、顧客に配布される最終ＳＡＶＤ上に、ソフトウェア・パッケージ・ツール（ＡＵＴＯＰＡＣＫ等）が格納されないことがある。
【００４２】
図３は、本発明の好ましい実施形態による、図２の流れ図に説明される方法に従ってセットアップされた準備サイトにおいて、仮想アプライアンスを作成するための方法の流れ図である。ひとたび、準備サイトにおけるゲストＯＳが使用可能状態になると、ＳＡＶＤ製品ディスクを作成することができる。このＳＡＶＤ製品ディスクは、顧客に配布される最初の仮想アプライアンス製品ディスク、又は、ソフトウェア・アプリケーションのアップグレードを含む製品ディスクとすることができ、かつ、アプリケーションのアップグレードのために仮想アプライアンス内にＳＡＶＤ＋ＯＳ仮想ディスクを提供する意味がないので、ユーザのソフトウェア・アプリケーションのアップグレードのためにユーザに配布される唯一の仮想ディスクであることに留意されたい。アプリケーションの最初の配布の仮想アプライアンスは、ＯＳ仮想ディスクを含み得るが、ＯＳディスクの作成は、本発明の一部ではない。このような理由で、この方法は、寧ろ、仮想アプライアンスにおける唯一の仮想ディスクとして、ＳＡＶＤの作成に焦点を当てる。
【００４３】
ＳＡＶＤ製品ディスクを作成するための全てのステップは、ＡＰＩベースのスクリプト（ＶＭｗａｒｅ環境に対してはＶＩＸ）を用いて、ホスト環境ＶＭモニタとインターフェース接続するＶＤＡＭコンポーネントによって自動的に実行される。
【００４４】
製品バイナリを含むソフトウェア・アプリケーションのインストール・イメージが、リポジトリ・ファイルからホスト環境に、及び、ホスト環境からゲストＯＳにコピーされる（３００）。
【００４５】
ソフトウェア・パッケージを作成するツールによって、配布されるソフトウェア・アプリケーションのためのソフトウェア・パッケージがゲストＯＳ  ＶＭ内に最初に作成される（３１０）。例えば、ＡＵＴＯＰＡＣＫツールは、ソフトウェア・アプリケーションのインストール前後に、準備マシン・システムの２つの連続するシステム・スナップショットを比較することにより、差分手法を用いて、ソフトウェア・パッケージの作成を自動化する。このように、ＡＵＴＯＰＡＣＫは、アプリケーションのインストールによってなされたファイル及びシステムの変更を検出し、ターゲット・システムをソフトウェア・アプリケーションに適合させるために実行される操作を作成する。次いで、インストーラ（ＳＩＥ）は、ターゲット・システム上でその操作を実行するためのソフトウェア・アプリケーション・ライブラリをインストールすることにより、その操作を自動的に実行することができる。
【００４６】
ＶＤＡＭは、ＡＰＩベースのスクリプトを用いて、ゲストＯＳ  ＶＭにおけるシステムの第１のＡＵＴＯＰＡＣＫスナップショットを実行する。ＡＵＴＯＰＡＣＫは、ＯＳベース仮想ディスク上のシステム関連ファイル及びレジストリ・エントリに生じた変更だけを捕捉する。次いで、ＳＡＶＤ製品ディスクのソフトウェア・アプリケーションのインストール・イメージ・ディレクトリを参照しながら、ソフトウェア・アプリケーションがインストールされる。このインストールは、ゲストＯＳ及びこのアプリケーションによりサポートされていればサイレント・モードで、又はサポートされていなければオペレータ補助モードで実行される。第２のＡＵＴＯＰＡＣＫスナップショットが、ゲストＯＳ  ＶＭにおいて実行される。ＡＵＴＯＰＡＣＫ差分手法が実行され、ゲストＯＳ  ＶＭにソフトウェア・パッケージが構築される。次いで、ＡＵＴＯＰＡＣＫによって作成されたソフトウェア・パッケージが、サイト準備のセットアップ中に作成されたＳＡＶＤ製品ディスク（１２０）内に格納される（３１０）。
【００４７】
ソフトウェア・パッケージを作成するための幾つかの既存のツールを用いると、幾つかのソフトウェア・パッケージは、システム・ファイルを作成／修正するために実行される命令だけでなく、アプリケーションのバイナリ・ライブラリも含む場合があることに留意されたい。これは実装の１つの選択肢にすぎず、好ましい実施形態において説明された場合においては、ソフトウェア・パッケージとアプリケーション・バイナリ・ライブラリとは分離され、２つのステップ（３００、３１０）でＳＡＶＤ製品ディスク上に格納される。
【００４８】
ＶＤＡＭは、ユーザ・ターゲット・システム上へのソフトウェア・アプリケーションのインストールの際に、ＶＤＡＭにより用いられる特定のアクティブ化／非アクティブ化ＡＰＩベース・スクリプトを作成する（３２０）。実際のところ、ひとたびインストールされたソフトウェア・アプリケーションは、特定のホスト名が用いられていること等を必要とする場合がある。一例として、幾つかのアプリケーションは、それがインストールされたマシンのＩＰアドレスが変更されると、再構成する必要がある。この目的に対しては、特定の再構成コマンドを実行しなければならない。作成されたアクティブ化／非アクティブ化ＡＰＩベース・スクリプトは、ＳＡＶＤ製品ディスクにコピーされる。
【００４９】
ＳＡＶＤ製品ディスクを識別する一意の識別子が作成され（３３０）、ＳＡＶＤ製品ディスク内に格納される。一意の識別子は、ＳＡＶＤ製品ディスクの署名の一種であり、例えば、ＳＡＶＤの名称、サイズ、バージョン、仮想アプライアンスの名称等を用いて、ＳＡＶＤの様々な属性を構成するように計算することができる。幾つかのアルゴリズムが、ＵＵＩＤ、すなわち汎用一意識別子（Universally Unique Identifier）の計算の分野において既に存在する。一意の識別子は、顧客がソフトウェア・アプリケーションを初めてインストールするとき又はアップグレードするとき、顧客のサイトでのＳＡＶＤ製品ディスクのアクティブ化段階中に用いられる。
【００５０】
ゲストＯＳの電源を遮断し、ＳＡＶＤ製品ディスクがデタッチされる。ＳＡＶＤ製品ディスク・イメージが、ホスト環境からファイル・リポジトリにコピーされる（３４０）。最終的に、ＳＡＶＤ製品ディスクは、ソフトウェア・アプリケーション・インストール・イメージ（ソフトウェア・アプリケーションのバイナリを含む）、ソフトウェア・パッケージ、アクティブ化／非アクティブ化イベントが発生するとＶＤＡＭにより実行されるアクティブ化／非アクティブ化スクリプト、ＶＤＡＭ、ＳＩＥ及びＡＵＴＯＰＡＣＫライブラリを含む。作成されたばかりのＳＡＶＤ製品ディスクは、仮想アプライアンス・イメージ（１５０）の最初の配布の一部とすることができ、又は製品の新しいバージョンが顧客に配布された際に作成することができる。
【００５１】
図４は、本発明の好ましい実施形態による、図３の流れ図に説明された方法に従って、説明されたように作成された仮想アプライアンスを、インストール又はアンインストールするためのシステム環境を示す。ソフトウェア・アプリケーションをインストール及びアップグレードするための顧客のシステム環境（４００）は、その上でＶＭｗａｒｅ仮想マシン・モニタ等の仮想マシン・モニタ、すなわちホスト環境（４２５）が仮想マシンを管理する、サーバを含む。
【００５２】
ソフトウェア・アプリケーションの最初のインストールの際に、最初のインストールの仮想アプライアンスで提供され得たＶＭイメージは、そのベースＯＳ仮想ディスク（４１０）を用いてターゲットＯＳ（４３０）として、顧客によりインストールされる。アプリケーションの仮想アプライアンスが、最初のバーションであっても、ＳＡＶＤのみを含有する場合、顧客は、自分のＶＭをインストールし、自分のＶＭのＯＳに対するＳＡＶＤを注文する。従って、顧客は、ソフトウェア・アプリケーションをターゲットＯＳ  ＶＭ上にインストールするのに用いられる自動アクティブ化仮想ディスクであるＳＡＶＤ製品ディスク（４２０）をインストールしなければならない。
【００５３】
ＳＡＶＤのアクティブ化／非アクティブ化に対して、ＶＤＡＭ及びＳＩＥ（４３５）の両方がターゲットＯＳ上で開始される。ＶＤＡＭは、ＳＩＥをツールとして用いてインストールを実行する。ＶＤＡＭは、デーモン・コンポーネント等のサービスとして開始され、ディスクの追加又は除去に関連したイベントについてシステムを継続的に監視することが好ましい。
【００５４】
ＶＤＡＭは、仮想マシン・モニタへのコマンドのスクリプトを実行するため、顧客ＶＭ上に一度インストールする必要があることに留意されたい。ひとたびインストールされると、ＶＤＡＭは、次のＳＡＶＤのインストール、更新、及び除去に再利用される。随意的に、顧客は、ＶＤＡＭプログラムのセットアップを実行することができる。セットアップ・プログラムは、ＳＡＶＤ上に格納し、仮想マシンのＯＳ内の既存のツール（ＷｉｎｄｏｗｓのＡＵＴＯＲＵＮ等の）を用いて、仮想ディスクをアタッチする際に実行することができる。
【００５５】
図５は、本発明の好ましい実施形態による、図３の流れ図に説明された方法に従って、説明されたように作成された仮想アプライアンスのＳＡＶＤをインストール又はアンインストールするための方法の流れ図である。
【００５６】
ＳＡＶＤ製品ディスクがターゲットＯＳにアタッチされたと仮定すると、ＶＤＡＭは、ＵＩＤを読み出すことにより、ＶＭにアタッチされた全てのＳＡＶＤのリストを収集する（５１０）。ＶＤＡＭは、現在のリストを、ベースＯＳ内にローカルに格納され、かつ、ＶＤＡＭサービスの最後の開始に対応するリストと比較する。ターゲットＯＳの作成の際、リストは空であり、仮想アプライアンスが初めてインストールされると、１つのＳＡＶＤが識別される。
【００５７】
ＶＤＡＭが新しいＳＡＶＤを検出（テスト５１５に対してイエスと回答）すると、ＶＤＡＭは、ＳＡＶＤの非アクティブ化スクリプトをベースＯＳ仮想ディスクにコピーする（５２５）。次いで、ＶＤＡＭは、ＳＩＥにより、ＳＡＶＤにおけるソフトウェア・パッケージのインストールを開始し、ソフトウェア・アプリケーションをインストールするためのアクティブ化スクリプトが実行される（５３０）。ＶＤＡＭは、新しいＳＡＶＤのエントリを付加することにより、ベースＯＳディスクにおけるアクティブなＳＡＶＤのローカル・リストを更新する（５３５）。必要に応じて、ソフトウェア・パッケージのインストール又はアクティブ化スクリプトにより要求された場合、ターゲットＯＳシステムは再起動される。
【００５８】
ＶＤＡＭが、ＳＡＶＤが除去されたことを検出（テスト５２０に対してイエスと回答）すると、アクティブ化の際にＳＡＶＤからベースＯＳ仮想ディスクにコピーされた関連する非アクティブ化スクリプトが実行される（５４０）。ＶＤＡＭは、ＳＩＭを実行して、除去されるＳＡＶＤに対応するソフトウェア・パッケージのインストールを取り消す。
【００５９】
ＳＡＶＤの非アクティブ化スクリプトは、ベースＯＳ仮想ディスクから除去される（５４５）。ＶＤＡＭは、ＳＡＶＤのエントリをＳＡＶＤのリストから削除する（５５０）。必要に応じて、ソフトウェア・パッケージのアンインストール又は非アクティブ化スクリプトにより要求された場合、ターゲットＯＳシステムは再起動される。
【００６０】
サービスとして機能するために、ＶＤＡＭは、ループを開始し（テスト５２０に対してノーと回答）、ターゲットＯＳにおける仮想ディスクの追加／除去に関連した仮想システム・イベントを収集し、処理することができる。新しいＳＡＶＤに関するイベントを受信すると、ＶＤＡＭは、これをアクティブ化するためのステップを実行し、除去されたＳＡＶＤに関するイベントを受信すると、ＶＤＡＭは、これを非アクティブ化するためのステップを実行する。システム・イベントを検出するデーモンとして開始されたＶＤＡＭ上のループのために、仮想ディスクのインストール又は除去（５３５、５５０）を実行した後、ステップ５１０へのループが実行される。
【符号の説明】
【００６１】
１００：準備サイトサーバ
１１０：仮想管理サーバ
１４０、１５５、１６０：コンポーネント
１５０：ファイル
４００：顧客のシステム環境
【図１】
2013540302.tif 000003
【図２】
2013540302.tif 000004
【図３】
2013540302.tif 000005
【図４】
2013540302.tif 000006
【図５】
2013540302.tif 000007
【手続補正書】
【提出日】平成25年5月10日(2013.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータの仮想マシン・モニタ上で実行されている、少なくとも１つのＯＳ仮想ディスクを含む仮想マシン・システム（ＯＳシステム）において、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にアップグレードするための方法であって、前記方法は、前記仮想マシン・モニタのＡＰＩを用いて自動的に実行される次のステップ、すなわち、
前記仮想マシンにアタッチされた仮想アプライアンス仮想ディスクのリストの以前に格納されたバージョンにおける変更を検出するステップと、
新しい仮想アプライアンス仮想ディスクが検出された場合、前記少なくとも１つのＯＳ仮想ディスク上にこの新しい仮想ディスク上で読み出された非アクティブ化スクリプトを格納し、かつ、
前記新しい仮想ディスク上に格納された前記ソフトウェア・アプリケーションをインストールする、前記新しい仮想ディスク上に格納されたインストール／アンインストール・プログラム（ＳＩＥ）の実行を開始することにより、前記新しい仮想ディスク上に格納された命令に従って前記ＯＳシステムを修正することと、
前記新しい仮想アプライアンス仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストに付加することと、
を実行することにより、前記新しい仮想ディスク上で読み出されるインストール・スクリプトを実行するステップと、
を含む方法。
【請求項２】
前記新しい仮想ディスク上に格納された場合、必要に応じて、前記ソフトウェア・アプリケーションを再構成するために、特定の付加的なアクティブ化操作を前記システム上で実行するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記仮想アプライアンス仮想ディスクの除去が検出された場合、
除去される前記仮想ディスク上に格納されたインストール／アンインストール・プログラムの実行を開始し、除去される前記仮想ディスク上に格納された、前記ソフトウェア・アプリケーションをアンインストールする命令に従って前記ＯＳシステムを修正することと、
除去される前記仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストから削除すること、
を実行することにより、除去される前記仮想ディスクの前記ＯＳに既に格納されたアンインストール・スクリプトを実行するステップをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
除去される前記仮想ディスク上に格納された場合、前記アプリケーションがアンインストールされるのを可能にする特定の付加的な操作を前記システム上で実行するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記仮想マシン上での仮想ディスク・アタッチ・イベント又は仮想ディスク除去イベントについて、前記仮想マシンを継続的に監視するステップをさらに含む、請求項１から請求項４までのいずれか１項に記載の方法。
【請求項６】
初期化された新しい仮想ディスク上にソフトウェア・アプリケーション・パッケージを格納する初期ステップと、
前記新しい仮想ディスク上に、前記ソフトウェア・アプリケーションをインストール／アンインストールするインストール／アンインストール・プログラムを格納する初期ステップと、
プログラム・パッケージ・ツールを用いて、前記インストール／アンインストール・プログラムにより実行される前記ソフトウェア・アプリケーションをインストール／アンインストールするように前記ＯＳシステムを修正するための、プログラム・パッケージを形成する命令を作成する初期ステップと、
前記仮想ディスクを前記仮想アプライアンス仮想ディスクとして識別するディスク識別子を作成し、これを前記新しい仮想アプライアンス仮想ディスク上に格納する初期ステップと、
をさらに含む請求項１又は請求項２に記載の方法。
【請求項７】
必要に応じて、インストール後に、前記ソフトウェア・アプリケーションの構成を可能にするように、前記新しい仮想ディスク上に、前記システム上で実行される特定の付加的な操作を作成しかつ格納するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記方法の前記ステップは、前記仮想マシンの前記仮想マシン・モニタとインターフェース接続する、ＡＰＩプログラミング命令を含むスクリプトを実行するプログラム（ＶＤＡＭ）により自動的に実行される、請求項１から請求項７までのいずれか１項に記載の方法。
【請求項９】
前記自動ステップの実行のために前記プログラム（ＶＤＡＭ）をセットアップする初期ステップをさらに含む、請求項１から請求項８までのいずれか１項に記載の方法。
【請求項１０】
前記仮想アプライアンス仮想ディスクの前記リストにおける変更を検出する前記ステップは、各々が前記仮想アプライアンス仮想ディスクの特定の署名である一意の識別子のリストにおける変更を検出することを含み、
前記一意の識別子を作成する前記ステップは、前記仮想アプライアンス仮想ディスクの属性に基づいて前記特定の署名を計算することを含む、
請求項１から請求項９までのいずれか１項に記載の方法。
【請求項１１】
請求項１から請求項１０までのいずれか１項に記載の方法のステップを実行するように適合された手段を含むシステム。
【請求項１２】
請求項１から請求項９までのいずれか１項に記載の方法の各ステップをコンピュータに実行させるコンピュータ・プログラム。
【国際調査報告】
2013540302.tif 000008
2013540302.tif 000009