(57)【要約】  サーバコンピュータで配布されるプログラムを、予め指定した版数の仮想マシンで実行させることができるようにする。  設定ファイル取得手段（１ｅ）により、サーバコンピュータ（２）から設定ファイル（２ａａ），（２ｂａ）が取得される。すると、仮想マシン対応付け手段（１ｆ）により、設定ファイル取得手段（１ｅ）で取得された設定ファイル（２ａａ），（２ｂａ）に基づいて、識別情報と版数との対応付けが管理テーブルに登録される。さらに、実行制御手段（１ｇ）により、配布対象プログラム（２ａｂ），（２ｂｂ）がサーバコンピュータ（２）から取得され、管理テーブルを参照して、複数の仮想マシン（１ａ），（１ｂ），（１ｃ），（１ｄ）の中から、配布対象プログラム（２ａｂ），（２ｂｂ）の識別情報に対応する版数の仮想マシンが選択される。そして、取得した配布対象プログラムが選択した仮想マシンで実行される。【特許請求の範囲】
【請求項１】
サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理プログラムにおいて、
コンピュータに、
前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得する設定ファイル取得手段、
前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録する仮想マシン対応付け手段、
前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる実行制御手段、
として機能させることを特徴とする仮想マシン管理プログラム。
【請求項２】
前記識別情報には、前記配布対象プログラムの名称と、前記配布対象プログラムを提供する前記サーバコンピュータをネットワーク上で識別するためのサーバ識別情報とが含まれており、
前記実行制御手段は、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報と前記配布対象プログラムを提供した前記サーバコンピュータの前記サーバ識別情報との組に対応する版数の仮想マシンを選択することを特徴とする請求の範囲第１項記載の仮想マシン管理プログラム。
【請求項３】
コンピュータを、更に、
取得した前記配布対象プログラムの実行に使用する版数の仮想マシンがインストールされていない場合、該当する版数の仮想マシンの配布プログラムを前記ネットワーク経由で取得し、取得した配布プログラムに基づいて仮想マシンをインストールする仮想マシンインストール手段、
として機能させることを特徴とする請求の範囲第１項記載の仮想マシン管理プログラム。
【請求項４】
前記仮想マシン対応付け手段は、既に前記管理テーブルに登録された識別情報に関する前記設定ファイルを新たに取得した場合、新たに取得した前記設定ファイルに基づいて、前記管理テーブルで識別情報に対応付けられている版数を変更することを特徴とする請求の範囲第１項記載の仮想マシン管理プログラム。
【請求項５】
コンピュータを、更に、
不使用仮想マシンリストの表示を示す操作入力に応答して、前記管理テーブルと、インストールされている仮想マシンとを比較し、対応する製品が存在しない仮想マシンのリストを表示する不使用仮想マシン表示手段、
として機能させることを特徴とする請求の範囲第１項記載の仮想マシン管理プログラム。
【請求項６】
コンピュータにより、サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理方法において、
設定ファイル取得手段が、前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得し、
仮想マシン対応付け手段が、前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録し、
実行制御手段が、前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる、
ことを特徴とする仮想マシン管理方法。
【請求項７】
サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理装置において、
前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得する設定ファイル取得手段と、
前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録する仮想マシン対応付け手段と、
前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる実行制御手段と、
を有することを特徴とする仮想マシン管理装置。
【請求項８】
サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得する設定ファイル取得手段、
前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録する仮想マシン対応付け手段、
前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる実行制御手段、
として機能させることを特徴とする仮想マシン管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理プログラムおよび仮想マシン管理方法に関し、特に仮想マシンの版数が随時更新される場合の版数管理を行う仮想マシン管理プログラムおよび仮想マシン管理方法に関する。
【背景技術】
【０００２】
現在、ネットワークを介してＷｅｂサーバ等の機能を有するサーバコンピュータからソフトウェアを配布し、クライアントコンピュータでソフトウェア（プログラム、およびプログラムに関連するデータを含む）を実行させる技術がある。例えば、Java（登録商標）言語で記述されたプログラムを、サーバコンピュータに配置しておく。そして、クライアントコンピュータのＷｅｂブラウザが、Java言語プログラムをダウンロードし、そのJava言語プログラムをクライアントのＷｅｂブラウザが起動する。これにより、サーバコンピュータからは、単にコンテンツの提供に留まらず、きめ細かなサービスをクライアントコンピュータに対して提供することができる。【０００３】
なお、インターネットのような広域ネットワークでソフトウェアを提供する場合、一般的には、クライアントで動作するＯＳに応じたソフトウェアを提供する必要がある。コンピュータで用いられているＯＳには、ＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）など様々な種類がある。そのため、サーバで提供するソフトウェアを開発する際に、全てのプラットフォーム（ＯＳ）に対応するプログラムを作成したのでは、開発の手間が過大となってしまう。【０００４】
そこで、Javaのようなネットワーク経由で配布することを想定したプログラム言語には、クライアント側においてプラットフォームの違いを吸収するプログラムが用意されている。このようなプログラムを実行することで実現する機能は、仮想マシン(ＶＭ：Virtual Machine)と呼ばれている。例えば、Java言語に対して、ＪＲＥ(Java Runtime Environment)が用意されている。【０００５】
仮想マシンは、配布されたプログラムをプラットフォームが解釈できる形式（マシン語）に変換する機能を有している。そのため、サーバ側のソフトウェアを開発する際には、仮想マシンで実行できるような１種類のプログラムを作成すればよく、開発の人的負荷が削減される。【０００６】
なお、Javaアプリケーションに関しては、様々な応用技術が考えられている。
例えば、Javaアプリケーションを実行することでクライアントコンピュータからアクセスできるサーバコンピュータを制限する技術がある。具体的には、ダウンロードされたJava言語プログラムにおいて、別の装置(サーバ)のＩＰ(Internet Protocol)アドレスとポート番号を識別子として管理しておく。そして、Java言語プログラムを実行することによるネットワーク上のリソースへのアクセスは、予め登録されたＩＰアドレスとポート番号に対してのみ許可する（例えば、特許文献１参照）。【０００７】
なお、ネットワーク経由でアクセス可能なアプリケーションをサーバに導入した場合、そのアプリケーションにはポート番号が割り当てられる。そして、サーバに導入されるアプリケーションの数が増えると、他のアプリケーションと重複しないように、既存のアプリケーションに一度設定されたポート番号が変更される場合がある。【０００８】
ところが、特許文献１の方式では、ダウンロードするプログラムに対応するポート番号が変わってしまうと、同じJava言語プログラムであるのに、別のJava言語プログラムであると認識されてしまう。【０００９】
そこで、仮想マシンとプログラムとの間の対応付けに関する技術が考えられている。例えば、ダウンロードしたプログラムの不正使用を防止するために、プログラムのライセンス管理を行う技術がある。この技術では、Ｗｅｂサーバで製品情報を暗号化したライセンスファイルを生成し、そのライセンスファイルをクライアントで復号する。そして、復号することで得られた製品情報が、ダウンロードしたプログラムの製品情報と同一であれば、そのプログラムを実行する（例えば、特許文献２参照）。【００１０】
この技術では、製品情報によってプログラムを識別するため、ポート番号が変更されても、プログラムの識別が可能である。
【特許文献１】国際公開２００２／０４２９２０号パンフレット
【特許文献２】特開２００４−５４８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、仮想マシンは、技術革新に伴って適宜改変が加えられる。仮想マシンが改変されることで、ネットワーク経由で配布された仮想マシンには、複数の版数のものが存在することとなる。このとき、最新の版数の仮想マシンでは、旧版の仮想マシン向けに作成されたプログラムの正常動作は保証されていない。【００１２】
しかし、従来の技術では、クライアントにおいて、版数の異なる複数のＪＲＥが存在した場合、ＪＲＥとJava言語プログラムの対応づけができない。そのため、クライアント側のJava言語プログラムの動作環境であるJavaＶＭ（ＪＲＥ）は版数が異なると予期できない動作をしてしまう可能性がある。そこで、Java言語プログラムは、使用するＪＲＥを自動的に指定する必要性がある。【００１３】
本発明はこのような点に鑑みてなされたものであり、サーバコンピュータで配布されるプログラムを、予め指定した版数の仮想マシンで実行させることができる仮想マシン管理プログラムおよび仮想マシン管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明では上記課題を解決するために、図１に示すような機能を有する仮想マシン管理プログラムが提供される。本発明に係る仮想マシン管理プログラムは、サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるためのものである。この仮想マシン管理プログラムをコンピュータで実行させることで、図１に示す機能が実現される。【００１５】
設定ファイル取得手段１ｅは、サーバコンピュータ２から、配布対象プログラム２ａｂ，２ｂｂの識別情報と、配布対象プログラム２ａｂ，２ｂｂの実行に使用すべき仮想マシンの版数とを含む設定ファイル２ａａ，２ｂａを取得する。仮想マシン対応付け手段１ｆは、設定ファイル取得手段１ｅで取得された設定ファイル２ａａ，２ｂａに基づいて、識別情報と版数との対応付けを管理テーブルに登録する。実行制御手段１ｇは、配布対象プログラム２ａｂ，２ｂｂをサーバコンピュータ２から取得し、管理テーブルを参照して、版数の異なる複数の仮想マシン１ａ，１ｂ，１ｃ，１ｄの中から、配布対象プログラム２ａｂ，２ｂｂの識別情報に対応する版数の仮想マシンを選択し、取得した配布対象プログラムを選択した仮想マシンで実行させる。【００１６】
このような仮想マシン管理プログラムを実行するコンピュータによれば、設定ファイル取得手段１ｅにより、サーバコンピュータ２から設定ファイル２ａａ，２ｂａが取得される。すると、仮想マシン対応付け手段１ｆにより、設定ファイル取得手段１ｅで取得された設定ファイル２ａａ，２ｂａに基づいて、識別情報と版数との対応付けが管理テーブルに登録される。そして、実行制御手段１ｇにより、配布対象プログラム２ａｂ，２ｂｂがサーバコンピュータ２から取得され、管理テーブルを参照して、複数の仮想マシン１ａ，１ｂ，１ｃ，１ｄの中から、配布対象プログラム２ａｂ，２ｂｂの識別情報に対応する版数の仮想マシンが選択され、取得した配布対象プログラムが選択した仮想マシンで実行される。
【発明の効果】
【００１７】
以上説明したように本発明では、配布対象プログラムの実行に使用する仮想マシンの版数を、予め配布対象プログラムの識別情報に対応付けておき、配布対象プログラムを取得した際には、対応付けられた版数の仮想マシンに配布対象プログラムを実行させるようにした。これにより、クライアント側のコンピュータで版数の異なる仮想マシンが存在していたとしても、配布対象プログラム作成時に想定した版数の仮想マシンを用いて、配布対象プログラムを正しく実行させることができる。【００１８】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に適用される発明の概念図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本発明の実施の形態に用いるクライアントコンピュータのハードウェア構成例を示す図である。
【図４】各コンピュータの機能構成を示すブロック図である。
【図５】管理テーブルの例を示す図である。
【図６】管理テーブルに設定された対応関係を示す図である。
【図７】クライアントコンピュータとサーバコンピュータとの間で行われる処理を示すシーケンス図である。
【図８】クライアントコンピュータの処理手順を示すフローチャートである。
【図９】プログラムファイル更新後の関連付けを示す図である。
【図１０】仮想マシンの自動アンインストール処理手順を示すフローチャートである。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。【００２１】
図１は、実施の形態に適用される発明の概念図である。クライアントコンピュータ１は、サーバコンピュータ２が有する配布対象ソフトウェア２ａ、２ｂをネットワーク経由で取得し、実行する。配布対象ソフトウェア２ａ，２ｂには、設定ファイル２ａａ，２ｂａと配布対象プログラム２ａｂ，２ｂｂとが含まれる。設定ファイル２ａａ，２ｂａには、配布対象プログラム２ａｂ，２ｂｂの識別情報と、配布対象プログラム２ａｂ，２ｂｂの実行に使用すべき仮想マシンの版数とが含まれる。識別情報としては、配布対象プログラム２ａｂ，２ｂｂの名称（例えば、配布対象プログラム２ａｂ，２ｂｂ内に記述されている）や、サーバコンピュータ２のネットワーク上のサーバ識別情報（例えば、サーバコンピュータ２のＩＰアドレス「10.18.108.90」）が含まれる。【００２２】
クライアントコンピュータ１は、複数の仮想マシン１ａ〜１ｄ、設定ファイル取得手段１ｅ、仮想マシン対応付け手段１ｆ、および実行制御手段１ｇを有する。
設定ファイル取得手段１ｅは、サーバコンピュータ２から、設定ファイル２ａａ，２ｂａを取得する。そして、設定ファイル取得手段１ｅは、取得した設定ファイル２ａａ，２ｂａを、仮想マシン対応付け手段１ｆに渡す。【００２３】
仮想マシン対応付け手段１ｆは、設定ファイル取得手段１ｅで取得された設定ファイル２ａａ，２ｂａに基づいて、識別情報と版数との対応付けを管理テーブルに登録する。図１の例では、設定ファイル２ａａに基づいて、名称「ＡＡＡ」、ＩＰアドレス「10.18.108.90」の識別情報と、版数「１．４．０」の仮想マシン１ａとが対応付けられている。また、設定ファイル２ｂａに基づいて、名称「ＢＢＢ」、ＩＰアドレス「10.18.108.90」の識別情報と、版数「１．４．２」の仮想マシン１ｂとが対応付けられている。【００２４】
実行制御手段１ｇは、配布対象プログラム２ａｂ，２ｂｂをサーバコンピュータ２から取得し、管理テーブルを参照して、版数の異なる複数の仮想マシン１ａ，１ｂ，１ｃ，１ｄの中から、配布対象プログラム２ａｂ，２ｂｂの識別情報に対応する版数の仮想マシンを選択する。【００２５】
例えば、実行制御手段１ｇは、配布対象プログラム２ａｂを取得すると、配布対象プログラム２ａｂの内容から名称「ＡＡＡ」を判断する。また、配布対象プログラム２ａｂを取得した際のパケットのヘッダ情報等により、サーバコンピュータ２のＩＰアドレス「10.18.108.90」を判断する。そして、実行制御手段１ｇは、名称「ＡＡＡ」とＩＰアドレス「10.18.108.90」との組に対応付けられた仮想マシン１ａを選択する。【００２６】
さらに、実行制御手段１ｇは、取得した配布対象プログラムを選択した仮想マシンで実行させる。即ち、実行制御手段１ｇは、選択した仮想マシンを起動し、取得した配布対象プログラムの実行を依頼する。【００２７】
このような仮想マシン管理プログラムを実行するコンピュータによれば、設定ファイル取得手段１ｅにより、サーバコンピュータ２から設定ファイル２ａａ，２ｂａが取得される。すると、仮想マシン対応付け手段１ｆにより、設定ファイル取得手段１ｅで取得された設定ファイル２ａａ，２ｂａに基づいて、識別情報と版数との対応付けが管理テーブルに登録される。その後、実行制御手段１ｇにより、配布対象プログラム２ａｂ，２ｂｂがサーバコンピュータ２から取得され、複数の仮想マシン１ａ，１ｂ，１ｃ，１ｄの中から、配布対象プログラム２ａｂ，２ｂｂの識別情報に対応する版数の仮想マシンが選択される。そして、実行制御手段１ｇにより、取得した配布対象プログラムが選択した仮想マシンで実行される。【００２８】
これにより、クライアントコンピュータ１で版数の異なる仮想マシン１ａ〜１ｄが存在していたとしても、配布対象プログラム２ａｂ，２ｂｂ作成時に想定した版数の仮想マシンを用いて、各配布対象プログラム２ａｂ，２ｂｂを実行させることができる。その結果、配布対象プログラムに記述された処理を、クライアントコンピュータで正確に実行することができる。【００２９】
なお、取得した前記配布対象プログラムの実行に使用する版数の仮想マシンがクライアントコンピュータ１にインストールされていない場合もある。この場合、未インストールの版数の仮想マシンの配布プログラムをネットワーク経由で取得し、取得した配布プログラムに基づいて、新たな版数の仮想マシンをクライアントコンピュータ１にインストールすることもできる。【００３０】
また、既に管理テーブルに登録された識別情報に関する設定ファイルを新たに取得する場合もある。この場合、仮想マシン対応付け手段１ｆは、新たに取得した設定ファイルに基づいて、管理テーブルで識別情報に対応付けられている版数を変更する。【００３１】
なお、版数の対応付けを変更することにより、クライアントコンピュータ１内で不要な版数の仮想マシンが発生することもある。その場合、不使用仮想マシンリストの表示を示す操作入力に応答して、管理テーブルと、インストールされている仮想マシンとを比較し、対応する製品が存在しない仮想マシンのリストを表示させることもできる。これにより、ユーザは、配布対象プログラムの識別情報に対応付けられていない仮想マシンを容易に認識することができる。【００３２】
なお、配布対象ソフトウェアの配布は、例えば、Ｗｅｂサーバ機能によって行うことができる。その場合、クライアントコンピュータでは、Ｗｅｂブラウザによって、配布対象ソフトウェアを取得する。以下、Ｗｅｂ技術に本発明を適用した場合の実施の形態を、具体的に説明する。【００３３】
図２は、本実施の形態のシステム構成例を示す図である。本実施の形態では、ネットワーク１０を介して、クライアントコンピュータ１００，１００ａ，・・・、複数のサーバコンピュータ２００，２００ａ，・・・、およびＶＭ（仮想マシン）配布サーバコンピュータ３００が接続されている。【００３４】
クライアントコンピュータ１００，１００ａ，・・・は、Ｗｅｂブラウザアプリケーション（以下、Ｗｅｂブラウザと呼ぶ）を有しており、ユーザからの操作入力に応答してネットワーク１０経由で、サーバコンピュータ２００，２００ａ，・・・からコンテンツを取得する。また、クライアントコンピュータ１００，１００ａ，・・・は、ＶＭ配布サーバコンピュータ３００から仮想マシンプログラムを取得し、内部に仮想マシンの機能を構築することができる。そして、クライアントコンピュータ１００，１００ａ，・・・は、サーバコンピュータ２００，２００ａ，・・・からプログラムを取得した際には、取得したプログラムに対応する仮想マシンを起動して、そのプログラムを実行する。【００３５】
サーバコンピュータ２００，２００ａ，・・・は、Ｗｅｂサーバアプリケーション（以下、Ｗｅｂサーバと呼ぶ）により、コンテンツを提供する。コンテンツには、Javaアプリケーション等のプログラムも含まれる。【００３６】
ＶＭ配布サーバコンピュータ３００は、Ｗｅｂサーバを有しており、仮想マシン（ＶＭ）のプログラムをクライアントコンピュータ１００，１００ａ，・・・に対して提供する。【００３７】
図３は、本発明の実施の形態に用いるクライアントコンピュータのハードウェア構成例を示す図である。クライアントコンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。【００３８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。【００３９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。【００４０】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。【００４１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、クライアントコンピュータ１００のハードウェア構成例を示したが、他のクライアントコンピュータ１００ａ，・・・、サーバコンピュータ２００，２００ａ，・・・、およびＶＭ配布サーバコンピュータ３００も同様のハードウェア構成で実現することができる。【００４２】
次に、クライアントコンピュータ１００がサーバコンピュータ２００からプログラムをダウンロードし、そのプログラムを仮想マシンで実行する場合の例を用いて、本実施の形態を具体的に説明する。【００４３】
図４は、各コンピュータの機能構成を示すブロック図である。クライアントコンピュータ１００は、仮想マシン管理部１１０、複数の仮想マシン１２１，１２２，１２３・・・を有している。【００４４】
仮想マシン管理部１１０は、管理テーブル１１１を用いて、サーバコンピュータ２００で配布されるプログラムを実行する仮想マシンを判断する。管理テーブル１１１には、仮想マシン１２１，１２２，１２３・・・の版数が管理されている。【００４５】
仮想マシン１２１，１２２，１２３・・・は、サーバコンピュータ２００から配布されるプログラムを実行する。なお、仮想マシン１２１，１２２，１２３・・・は、それぞれ版数が異なっている。【００４６】
Ｗｅｂブラウザ１３０は、サーバコンピュータ２００やＶＭ配布サーバコンピュータ３００に対して、ＨＴＴＰ(Hyper Text Transfer Protocol)等のプロトコルを用いてアクセスし、各種コンテンツを取得する。【００４７】
サーバコンピュータ２００は、複数の配布対象ソフトウェア２１０，２１０ａ，２１０ｂ，・・・とＷｅｂサーバ２２０とを有している。
配布対象ソフトウェア２１０，２１０ａ，２１０ｂ，・・・は、クライアントコンピュータ１００に対して配布すべきソフトウェアプロダクトである。配布対象ソフトウェア２１０には、設定ファイル２１１とプログラムファイル２１２とが対応付けて登録されている。【００４８】
設定ファイル２１１には、プログラムファイル２１２の製品名、サーバコンピュータ２００のＩＰアドレス、およびプログラムファイル２１２の版数が設定されている。
プログラムファイル２１２は、仮想マシンで実行可能なコードで記述されている（例えば、Java言語プログラム）。また、プログラムファイル２１２内には、製品名の記述が含まれている。【００４９】
Ｗｅｂサーバ２２０は、クライアントコンピュータ１００からの要求に応じて、配布対象ソフトウェア２１０，２１０ａ，２１０ｂ・・・をクライアントコンピュータ１００に送信する。【００５０】
ＶＭ配布サーバコンピュータ３００は、複数の仮想マシン配布プログラム３１１，３１２，３１３，・・・とＷｅｂサーバ３２０とを有している。
仮想マシン配布プログラム３１１，３１２，３１３，・・・は、クライアントコンピュータ１００に仮想マシン１２１，１２２，１２３・・・としての機能を実現させるためのプログラムである。この仮想マシン配布プログラム３１１，３１２，３１３，・・・は、クライアントコンピュータ１００のプラットフォームで実行可能なコードで記述されている。【００５１】
Ｗｅｂサーバ３２０は、クライアントコンピュータ１００からの要求に応じて、仮想マシン配布プログラム３１１，３１２，３１３，・・・をクライアントコンピュータ１００に送信する。【００５２】
図５は、管理テーブルの例を示す図である。管理テーブル１１１は、プログラム名（製品名）、使用する仮想マシンの版数、およびダウンロードしたサーバのＩＰアドレスが対応付けて管理されている。各レコードは、サーバコンピュータ２００から設定ファイルがダウンロードされた際に、設定ファイルの内容に応じて登録される。【００５３】
図５の例では、ＩＰアドレスが「10.18.108.90」であるサーバコンピュータからダウンロードした「ＰＷＳＶＭ」とうい名称のプログラムで使用する仮想マシンの版数は「１．３．０」である。また、ＩＰアドレスが「10.18.108.90」であるサーバコンピュータからダウンロードした「ＷＳＡ」とうい名称のプログラムで使用する仮想マシンの版数は「１．２．０」である。【００５４】
図６は、管理テーブルに設定された対応関係を示す図である。この例では、サーバコンピュータ２００のＩＰアドレスが「10.18.108.90」であり、サーバコンピュータ２００には、２つの配布対象ソフトウェア２１０，２１０ａが配置されている。【００５５】
配布対象ソフトウェア２１０のプログラムファイル２１２は、版数が「１．２．０」の仮想マシン１２１で正しく実行できるように記述されている。この配布対象ソフトウェア２１０の設定ファイル２１１には、プログラム＃１の製品名「ＷＳＡ」、サーバコンピュータ２００のＩＰアドレス「10.18.108.90」、使用する仮想マシンの版数「１．２．０」が設定されている。【００５６】
配布対象ソフトウェア２１０ａのプログラムファイル２１２ａは、版数が「１．３．０」の仮想マシン１２２で正しく実行できるように記述されている。この配布対象ソフトウェア２１０ａの設定ファイル２１１ａには、プログラム＃２の製品名「ＰＷＳＶＭ」、サーバコンピュータ２００のＩＰアドレス「10.18.108.90」、使用する仮想マシンの版数「１．３．０」が設定されている。【００５７】
クライアントコンピュータ１００には、版数「１．２．０」の仮想マシン１２１と版数「１．３．０」の仮想マシン１２２とがインストールされている。また、クライアントコンピュータ１００の仮想マシン管理部１１０では、図５に示した管理テーブル１１１に、サーバコンピュータ２００で提供しているプログラムファイル２１２，２１２ａ毎のレコード１１１ａ，１１１ｂが格納されている。レコード１１１ａには、サーバコンピュータ２００のＩＰアドレスとプログラムファイル２１２の製品名とが登録されており、版数「１．２．０」の仮想マシン１２１に関連付けられている。レコード１１１ｂには、サーバコンピュータ２００のＩＰアドレスとプログラムファイル２１２ａの製品名とが登録されており、版数「１．３．０」の仮想マシン１２２に関連付けられている。【００５８】
このように、サーバコンピュータ２００側で用意された設定ファイル２１１，２１１ａに登録されている内容に基づいて、クライアントコンピュータ１００において、仮想マシンとプログラムファイル２１２，２１２ａとの対応付けが行われる。【００５９】
図７は、クライアントコンピュータとサーバコンピュータとの間で行われる処理を示すシーケンス図である。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］クライアントコンピュータ１００のＷｅｂブラウザ１３０は、仮想マシン管理部１１０からの要求に応じて、設定ファイルの取得要求を、サーバコンピュータ２００に対して送信する。具体的には、サーバコンピュータ２００のＵＲＬ「http://10.18.108.90/test.dat」を指定したＨＴＴＰ要求である。【００６０】
［ステップＳ１２］サーバコンピュータ２００のＷｅｂサーバ２２０は、設定ファイルの取得要求に応じて、設定ファイル(test.dat)をクライアントコンピュータ１００に対して送信する。【００６１】
［ステップＳ１３］クライアントコンピュータ１００のＷｅｂブラウザ１３０は、設定ファイルを受け取ると、その設定ファイルを仮想マシン管理部１１０に渡す。また、Ｗｅｂブラウザ１３０は、取得した設定ファイルに記載されているＵＲＬに基づいて、プログラムファイルの取得要求をサーバコンピュータ２００に対して送信する。【００６２】
［ステップＳ１４］サーバコンピュータ２００のＷｅｂサーバ２２０は、クライアントコンピュータ１００からの要求に応じて、プログラムファイルをクライアントコンピュータ１００に送信する。【００６３】
［ステップＳ１５］クライアントコンピュータ１００のＷｅｂブラウザ１３０は、プログラムファイルを受け取ると、そのプログラムファイルを仮想マシン管理部１１０に渡す。【００６４】
すると、仮想マシン管理部１１０は、ステップＳ１３で取得した設定ファイルに基づいて、管理テーブル１１１に対するレコードの登録又はレコードの更新を行い、配布対象ソフトウェアと仮想マシンとの関連づけを行う。また、仮想マシン管理部１１０は、管理テーブル１１１での設定内容に基づいて、取得したプログラムファイルに対応する仮想マシンを起動する。そして、仮想マシン管理部１１０は、取得したプログラムファイルを仮想マシンに渡し、プログラムファイルに記述されている処理を実行させる。【００６５】
なお、クライアントコンピュータ１００では、取得したプログラムファイルに対応する仮想マシンがインストールされていない場合、必要な版数の仮想マシンを自動的にインストールすることができる。以下、クライアントコンピュータ１００側で行われる処理手順を説明する。【００６６】
図８は、クライアントコンピュータの処理手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］クライアントコンピュータ１００の仮想マシン管理部１１０は、Ｗｅｂブラウザ１３０を介して、サーバコンピュータ２００に対して設定ファイルの取得要求（ＨＴＴＰ要求）を送信する。【００６７】
［ステップＳ２２］Ｗｅｂブラウザ１３０は、サーバコンピュータ２００から設定ファイルをダウンロードし、仮想マシン管理部１１０に渡す。
［ステップＳ２３］Ｗｅｂブラウザ１３０は、設定ファイルに記述されているＵＲＬに基づいて、プログラムファイルの取得要求（ＨＴＴＰ要求）を送信する。【００６８】
［ステップＳ２４］Ｗｅｂブラウザ１３０は、サーバコンピュータ２００からプログラムファイルをダウンロードし、仮想マシン管理部１１０に渡す。
［ステップＳ２５］仮想マシン管理部１１０は、インストールされている仮想マシンの版数を取得する。【００６９】
［ステップＳ２６］仮想マシン管理部１１０は、ステップＳ２２で取得した設定ファイルに基づいて、プログラムファイルと仮想マシンとを対応付けを行う。
［ステップＳ２７］仮想マシン管理部１１０は、使用する版数の仮想マシンが存在するか（インストールされているか）否かを判断する。使用する版数の仮想マシンが存在すれば、処理がステップＳ２９に進められる。使用する版数の仮想マシンが存在しなければ、処理がステップＳ２８に進められる。【００７０】
［ステップＳ２８］仮想マシン管理部１１０は、使用する版数の仮想マシンをインストールする。具体的には、仮想マシン管理部１１０は、Ｗｅｂブラウザ１３０を介して、ＶＭ配布サーバコンピュータ３００にアクセスし、使用する版数の仮想マシン配布プログラムの取得要求を出力する。すると、ＶＭ配布サーバコンピュータ３００からクライアントコンピュータ１００に対して、指定された仮想マシン配布プログラムが送信される。クライアントコンピュータ１００では、仮想マシン配布プログラムを、Ｗｅｂブラウザ１３０を介して仮想マシン管理部１１０が取得する。そして、仮想マシン管理部１１０は、取得した仮想マシン配布プログラムをクライアントコンピュータ１００のＯＳにインストールする。【００７１】
［ステップＳ２９］仮想マシン管理部１１０は、使用する版数の仮想マシンを起動し、ステップＳ２４で取得したプログラムファイルに記述されている処理の実行を依頼する。
ここで、図６に示す状態のサーバコンピュータ２００において、プログラムファイル２１２，２１２ａにパッチがあてられ、それぞれ版数「１．４．０」、「１．４．２」に対応する記述に更新された場合を考える。この場合、クライアントコンピュータ１００の仮想マシン管理部１１０において、プログラムファイルと仮想マシンとの間の対応付けが変更される。【００７２】
図９は、プログラムファイル更新後の関連付けを示す図である。プログラムファイル２１２，２１２ａが更新されると、サーバコンピュータ２００の管理者による操作入力等に基づいて、配布対象ソフトウェア２１０の設定ファイル２１１の使用する版数が「１．４．０」に変更される。同様に、配布対象ソフトウェア２１０の設定ファイル２１１の使用する版数が「１．４．２」に変更される。【００７３】
その後、クライアントコンピュータ１００では、設定ファイル２１１がダウンロードされると、仮想マシン管理部１１０により、設定ファイル２１１で示される版数「１．４．０」の仮想マシン１２３がインストールされる。そして、プログラムファイル２１２と仮想マシン１２３とが対応付けられる。【００７４】
同様に、設定ファイル２１１ａがダウンロードされると、仮想マシン管理部１１０により、設定ファイル２１１ａで示される版数「１．４．２」の仮想マシン１２４がインストールされる。そして、プログラムファイル２１２ａと仮想マシン１２４とが対応付けられる。【００７５】
このようにして、プログラムファイル２１２，２１２ａに記述されている処理の実行に使用する仮想マシンの版数が、適宜更新される。しかも、サーバコンピュータのＩＰアドレスと、配布対象ソフトウェアの製品名とによって対応関係が示されている。そのため、異なるサーバコンピュータに同じ製品名の異なる版数の配布対象ソフトウェアが存在していても、クライアントコンピュータでは、それらの配布対象ソフトウェアを適当な版数の仮想マシンで処理することができる。【００７６】
さらに、製品名は、ＩＰポート番号のように、サーバコンピュータの動作環境に応じて変更する必要が無い。そのため、各配布対象ソフトウェアに固定の製品名を設定することができる。その結果、サーバコンピュータの動作環境の変更等（例えば、配布対象ソフトウェアのポート番号の変更）があっても、プログラムファイルと仮想マシンとの対応関係を維持することができる。【００７７】
上記システムは、例えば、Java言語プログラムをＪＲＥで実行する際の対応付けに適用することができる。その場合、サーバコンピュータ２００の管理者は、製品名、期待するＪＲＥの版数、およびJava言語プログラムのプログラムファイルの所在を明記した設定ファイルを、サーバコンピュータ２００に登録する。【００７８】
その後、サーバコンピュータ２００の設定ファイルにクライアントコンピュータ１００からＨＴＴＰアクセスが行われ、設定ファイルとプログラムファイルとがクライアントコンピュータ１００にダウンロードされる。そして、クライアントコンピュータ１００において、Java言語プログラムが動作するＪＲＥが自動的に検索され、関連付けが行われる。これにより、どのJava言語プログラムがどの版数のＪＲＥを使用しているかが、アプリケーション上で明確になる。【００７９】
ところで、管理テーブル１１１を用いることで、使用されなくなった版数の仮想マシンを検出することができる。そこで、仮想マシン管理部１１０は、定期的に不要な仮想マシンを検索し、検出された仮想マシンの削除処理（アンインストール）を行う。【００８０】
図１０は、仮想マシンの自動アンインストール処理手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］仮想マシン管理部１１０は、仮想マシン整理指示を受け付ける。仮想マシン整理指示は、例えば、ユーザからの操作入力によって、仮想マシン管理部１１０に入力される。【００８１】
［ステップＳ４２］仮想マシン管理部１１０は、管理テーブル１１１の内容を画面に表示する。
［ステップＳ４３］仮想マシン管理部１１０は、使用していない仮想マシンがあるか否かを判断する。具体的には、仮想マシン管理部１１０は、管理テーブル１１１の「使用する仮想マシン版数」の欄に登録されていない版数の仮想マシンの有無を判断する。使用していない仮想マシンがある場合、処理がステップＳ４４に進められる。使用していない仮想マシンがない場合、処理が終了する。【００８２】
［ステップＳ４４］仮想マシン管理部１１０は、使用していない仮想マシンのリストを画面に表示する。そして、仮想マシン管理部１１０は、使用していない仮想マシンそれぞれに関し、ユーザからの削除の要否を示す操作入力を受け付ける。【００８３】
［ステップＳ４５］仮想マシン管理部１１０は、操作入力の内容を判断し、削除が指示された場合、処理がステップＳ４６に進められる。削除以外が指示された場合、処理がステップＳ４７に進められる。【００８４】
［ステップＳ４６］仮想マシン管理部１１０は、削除指示が出された仮想マシンのアンインストールを行い、処理を終了する。
［ステップＳ４７］仮想マシン管理部１１０は、使用していない仮想マシンの割り当てを示す操作入力を受け付ける。すなわち、管理テーブル１１１に登録されていない版数の仮想マシンであっても、仮想マシン管理部１１０による管理対象外のソフトウェアで使用されることを、ユーザ自身が知っている場合がある。この場合、ユーザは、管理対象外のソフトウェアの製品名と、その製品を配布するサーバのＩＰアドレスを手入力すると共に、そのソフトウェアを実行する仮想マシンを指定する。【００８５】
［ステップＳ４８］仮想マシン管理部１１０は、ステップＳ４７に従って、ソフトウェアと仮想マシンとの対応関係を示すレコードを、管理テーブル１１１に登録する。
このようにして、古い版数に対して、削除するかどうかの問い合わせを行うことが可能になり、使用している版数は明確になる。しかも、使用していない仮想マシンのリストが表示されるため、仮想マシンとソフトウェアとの割り当て操作が容易となる。【００８６】
なお、プログラムファイルの製品名は、例えば、プログラムファイル内の記述内容に記載されている。また、プログラムファイルのプロファイルとして設定された管理情報に製品名が記述されることもある。また、プログラムファイルのファイル名（拡張子も含む）に、プログラムファイルの製品名を示す識別子が含まれることもある。その場合、識別子を、製品名として使用することもできる。【００８７】
また、上記の処理機能は、コンピュータによって実現することができる。その場合、クライアントが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。【００８８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【００８９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。【００９０】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【００９１】
１  クライアントコンピュータ
１ａ〜１ｄ  仮想マシン
１ｅ  設定ファイル取得手段
１ｆ  仮想マシン対応付け手段
１ｇ  実行制御手段
２  サーバコンピュータ
２ａ，２ｂ  配布対象ソフトウェア
２ａａ，２ｂａ  設定ファイル
２ａｂ，２ｂｂ  配布対象プログラム
【図１】
2006067841.tif 000002
【図２】
2006067841.tif 000003
【図３】
2006067841.tif 000004
【図４】
2006067841.tif 000005
【図５】
2006067841.tif 000006
【図６】
2006067841.tif 000007
【図７】
2006067841.tif 000008
【図８】
2006067841.tif 000009
【図９】
2006067841.tif 000010
【図１０】
2006067841.tif 000011
【手続補正書】
【提出日】平成19年6月7日(2007.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理プログラムにおいて、
コンピュータに、
前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得する設定ファイル取得手段、
前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録する仮想マシン対応付け手段、
前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる実行制御手段、
として機能させることを特徴とする仮想マシン管理プログラム。
【請求項２】
前記識別情報には、前記配布対象プログラムの名称と、前記配布対象プログラムを提供する前記サーバコンピュータをネットワーク上で識別するためのサーバ識別情報とが含まれており、
前記実行制御手段は、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報と前記配布対象プログラムを提供した前記サーバコンピュータの前記サーバ識別情報との組に対応する版数の仮想マシンを選択することを特徴とする請求項１記載の仮想マシン管理プログラム。
【請求項３】
コンピュータを、更に、
取得した前記配布対象プログラムの実行に使用する版数の仮想マシンがインストールされていない場合、該当する版数の仮想マシンの配布プログラムを前記ネットワーク経由で取得し、取得した配布プログラムに基づいて仮想マシンをインストールする仮想マシンインストール手段、
として機能させることを特徴とする請求項１記載の仮想マシン管理プログラム。
【請求項４】
前記仮想マシン対応付け手段は、既に前記管理テーブルに登録された識別情報に関する前記設定ファイルを新たに取得した場合、新たに取得した前記設定ファイルに基づいて、前記管理テーブルで識別情報に対応付けられている版数を変更することを特徴とする請求項１記載の仮想マシン管理プログラム。
【請求項５】
コンピュータにより、サーバコンピュータからダウンロードしたプログラムを仮想マシンで実行させるための仮想マシン管理方法において、
設定ファイル取得手段が、前記サーバコンピュータから、配布対象プログラムの識別情報と、前記配布対象プログラムの実行に使用すべき仮想マシンの版数とを含む設定ファイルを取得し、
仮想マシン対応付け手段が、前記設定ファイル取得手段で取得された前記設定ファイルに基づいて、前記識別情報と前記版数との対応付けを管理テーブルに登録し、
実行制御手段が、前記配布対象プログラムを前記サーバコンピュータから取得し、前記管理テーブルを参照して、版数の異なる複数の仮想マシンの中から、前記配布対象プログラムの識別情報に対応する版数の仮想マシンを選択し、取得した前記配布対象プログラムを選択した仮想マシンで実行させる、
ことを特徴とする仮想マシン管理方法。
【国際調査報告】
2006067841.tif 000012
2006067841.tif 000013
2006067841.tif 000014
2006067841.tif 000015