(57)【要約】【課題】  異なるバージョンの仮想マシンのアプレットを一つのメニューから起動可能とし、ユーザの操作性、およびシステムの流用性を向上させること。【解決手段】  クライアント１のメニューのアンカをクリックすると、Ｗｅｂサーバ２にリクエストがあがり、起動システム名、システム起動に必要なパラメタなどが渡される。Ｗｅｂサーバ２は、渡されたパラメタを元にシステム起動用のファイル（システム起動用ＨＴＭＬ１２）を作成し、クライアント１にダウンロードする。システム起動用アプレット１１は、ブラウザ起動用のパラメタを形成し、ブラウザの実行ファイル１３を起動する。これにより、例えばＡメニューを選択した場合にはＡシステムが起動される。ブラウザ起動用ＨＴＭＬ１２は、ブラウザの実行ファイルを実行後に消去される。【選択図】          図２
2006276939.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザのメニューを表示して、メニュー項目を選択することにより、異なるバージョンの仮想マシンのプログラムを起動する方法であって、
上記ブラウザから渡されるパラメータに基づき、システム起動用ファイルを生成し、
上記システム起動用ファイルのプログラムにより、ブラウザの実行ファイルを起動して、上記選択された仮想マシンのプログラムを起動させる
ことを特徴とする異なるバージョンの仮想マシンのプログラムの起動方法。
【請求項２】
ブラウザのメニューを表示して、メニュー項目を選択することにより、異なるバージョンの仮想マシンのプログラムを起動する方法であって、
上記メニュー項目が選択されたとき、クライアント上のブラウザから、起動させるプログラムのＵＲＬを含む必要なパラメータをＷＥＢサーバに渡し、
ＷＥＢサーバのプログラムでシステム起動用ファイルを生成して、上記依頼元のクライアントに送信し、
上記システム起動用ファイルのプログラムにより、ブラウザの実行ファイルを起動して、上記選択された仮想マシンのプログラムを起動させる
ことを特徴とする異なるバージョンの仮想マシンのプログラムの起動方法。
【請求項３】
ブラウザのメニューを表示して、メニュー項目を選択することにより、異なるバージョンの仮想マシンのプログラムを起動させる機能を備えたクライアント・サーバシステムであって、
上記クライアントに、上記メニュー項目が選択されたとき、起動させるプログラムのＵＲＬを含む必要なパラメータをＷＥＢサーバに渡して、システム起動用ファイルの生成を依頼する手段を設け、
上記ＷＥＢサーバに、上記依頼に応じて、システム起動用ファイルを生成して、上記依頼元のクライアントに送信する手段を設け、
上記クライアントにおいて、上記送信されたシステム起動用ファイルのプログラムによりブラウザの実行ファイルを起動して、上記選択された仮想マシンのプログラムを起動させる
ことを特徴とするクライアント・サーバシステム。
【請求項４】
表示されたファイル形式のブラウザのメニューの中から、メニュー項目が選択されたとき、該選択された項目に対応する異なるバージョンの仮想マシンのプログラムを起動する機能を備えた端末であって、、
上記ブラウザから起動させるプログラムのＵＲＬを含む必要なパラメータを渡して、ＷＥＢサーバに、システム起動用ファイルプログラムを生成を依頼する手段と、
生成された上記システム起動用ファイルのプログラムにより、ブラウザの実行ファイルを起動して、上記選択された仮想マシンを起動させる手段を備えた
ことを特徴とする異なるバージョンの仮想マシンのプログラムを起動するための機能を備えた端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なるバージョンの仮想マシンをブラウザのメニュー上から起動することを可能にした仮想マシンのプログラム起動方法およびクライアントサーバシステムに関する。
【背景技術】
【０００２】
近年、Ｊａｖａ（登録商標）言語で記述したアプリケーションプログラムが用いられる事例が増えている。Ｊａｖａ（登録商標）仮想マシンを備えるＣＰＵであれば、ＣＰＵの種類に依存せずにＪａｖａ（登録商標）アプリケーションを実行することができる。
ＷｅｂブラウザがＪａｖａ（登録商標）アプレットを含むページをダウンロードすると、ブラウザはアプレットを抽出し、Ｊａｖａ（登録商標）仮想マシンに実行のために引渡す。これにより、上記アプレットをユーザのＣＰＵ上で実行することができる。
なお、アプレットとは、ネットワークを通じてダウンロードされ、ブラウザのウィンドウに埋め込まれて実行されるＪａｖａ（登録商標）プログラムである。また、Ｊａｖａ（登録商標）仮想マシンは、Ｊａｖａ（登録商標）のコードを各プラットフォームに合わせて変換し実行するソフトウェアである。なお、以下では、Ｊａｖａ（登録商標）仮想マシンを、単に仮想マシンもしくはＶＭという。
【０００３】
ところで、ＨＴＭＬ形式のメニューをブラウザに表示し、そこからアプレットを起動する場合、ブラウザの仕様により、同一バーションの仮想マシンの起動は何度でも正しく行なわれるが、異なるバージョンのＶＭ起動時にエラーが発生してしまう。また、ブラウザによっては、そのタイミングでウィンドウが消滅してしまうこともある。
図９に、ブラウザのメニューから異なるバージョンのＶＭを起動する場合の問題点を示す。
図９において、クライアントのブラウザにより、メニュー画面１０上に「Ａメニュー」、「Ｂメニュー」、「Ｃメニュー」が表示されている。これらのメニューは、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔのｗｉｎｄｏｗｓ（登録商標）．ｏｐｅｎやＨＴＭＬの＜ａｈｒｅｆ＝"..." ＞を用いて別システムの起動を行なうものである。
「Ａメニュー」は、例えばＶＭのＪａｖａ（登録商標）プログラム実行システム（以下プログラム実行システムという）として、ＪＲＥ［Ｊａｖａ（登録商標）Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ］のバージョン１．１．６を使用するＡシステム、「Ｂメニュー」は、バージョン１．１．６を使用するＢシステム、「Ｃメニュー」は、バージョン１．４を使用するＣシステムを起動するものであるとする。
また、サーバ上には、「Ａメニュー」、「Ｂメニュー」に対応したＡシステム、Ｂシステムとして、それぞれバージョン１．１．６用のアプレットと、「Ｃメニュー」に対応したＣシステムとして、バージョン１．４用のアプレットが登録されているとする。なお、以下、図面上では例えばバージョン１．１．６をＶ１．１．６と表記する。
【０００４】
図９において、メニューからの最初の起動、または同一バージョンのＶＭを使用するシステムの起動であれば問題なく起動される。したがって、例えばメニュー画面１０上で「Ａメニュー」のシステム（バージョン１．１．６）起動用のアンカをクリックしてＡシステム起動し、また、「Ｂメニュー」のシステム（バージョン１．１．６）起動用のアンカをクリックしてＢシステム起動することができ、Ａシステムと、Ｂシステムを同時に起動できる。
しかし、Ｃシステム（バージョン１．４）起動用のアンカをクリックし、システム起動する場合には、既に他バージョンのＶＭが起動されていると、起動がエラーとなってしまう。
【０００５】
従来においては、上記のように異なるバージョンのＶＭを使用するシステムが混在する環境においては、例えば、以下の対応を採る必要があった。
（１）一つのメニューから起動するのではなく、個々のシステムを起動するためのアイコン（ショートカット等) を配備する。
この方法であれば、プロセスが別のブラウザを起動することになるため、異なるバージョンのＶＭの起動が可能となる。        
（２）各システムのバージョンを統一するため、リコンパイルを行なう。
例えば、特許文献１には、ＶＭのバージョンに柔軟に対応することができるようにするため、中間コード（Ｊａｖａ（登録商標）バイトコード）を命令実行部が解釈可能な命令列に変換する命令変換回路に仮想計算機（ＶＭ）のバージョンに対応できる機構を設ける技術が記載されている。
【特許文献１】特開２００４−１２７２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記（１）のショートカット起動の方法では、同一メニューから個々のシステムを起動したいという顧客要望があった場合、要件を満たせなくなってしまう。
また、ショートカット起動の場合には、以下の問題がある。
・各端末にショートカットを配備する必要があるため、使用システムの増減があった場合、個々の端末に対して資源配布する必要がある。
・ファイル情報のため、使用者により移動・削除されてしまう可能性がある。
・リンク情報が固定となるため、動的な情報が渡せない。
また上記（２）のリコンパイルを行う方法は、作業的な負荷も大きく、一般製品であった場合に現実的に対応不可能の場合もある。
本発明は上記事情を考慮してなされたものであって、その目的は、ブラウザ上のメニューからアプレットシステムを起動する際、ＶＭの起動をサポートするアプレット画面を経由することにより、異なるバージョンの仮想マシンのアプレットを一つのメニューから起動可能とし、ユーザの操作性、およびシステムの流用性を向上させることである。
【課題を解決するための手段】
【０００７】
図１は本発明の概要を説明する図である。
図１において、前記図９と同様、クライアントのブラウザにより、メニュー画面１０上に「Ａメニュー」、「Ｂメニュー」、「Ｃメニュー」が表示されている。「Ａメニュー」、「Ｂメニュー」により起動されるシステムは、例えばＶＭのバージョン１．１．６を使用するシステム、「Ｃメニュー」により起動されるシステムは、バージョン１．４を使用するシステムであるとする。
また、サーバ上には、「Ａメニュー」、「Ｂメニュー」に対応したＡシステム１４として、それぞれバージョン１．１．６用のアプレットと、「Ｃメニュー」に対応したＣシステム１５として、バージョン１．４用のアプレットが登録されているとする。
本発明では同図に示すように、ＶＭの起動をサポートするアプレット画面を経由することにより、異なるバージョンのシステムを一つのメニューから起動可能とする。
すなわち、メニューから他システムを起動する際は、必要なパラメタ（ＵＲＬ等）をサーバ渡し、システム起動用ファイルを生成し、依頼元のクライアントに送信する。クライアントでは、送信されたシステム起動用ファイルのシステム起動用アプレット１１を起動する。システム起動用アプレット１１は渡されたパラメタを元に、ブラウザの実行ファイル１３を直接起動することにより仮想的に前記（１）で述べた方法をとり、個々のブラウザで異なるＶＭの使用を可能とする。
【０００８】
図２は、上記処理を更に具体的に示したものであり、本発明では、以下のようにして異なるバージョンのＶＭの使用を可能とする。
（ａ）図２（ａ）の(i) (ii)に示すように、クライアント１のブラウザのメニュー画面１０から他システムを起動する際、システムを起動する際に必要なパラメタ（アプレットのＵＲＬ等）を渡し、Ｗｅｂサーバ２のサーブレット経由でシステム起動用のアプレット１１を起動する。なお、サーブレットはサーバで実行するＪａｖａ（登録商標）プログラムである。
図２（ｂ）は上記(i) (ii)の処理を説明する図であり、クライアント１のメニュー画面１０のアンカをクリックすると、Ｗｅｂサーバ２にリクエストがあがる。その際、起動システム名、システム起動に必要なパラメタ、必要に応じてメニュー内の情報（例：ユーザＩＤ・ユーザ名等）をパラメタとして渡す。
Ｗｅｂサーバ２は、渡されたパラメタを元にシステム起動用のファイル（システム起動用ＨＴＭＬ１２）を作成する。このブラウザ起動用ＨＴＭＬ１２は、リクエスト時に渡された各種情報を、システム起動用アプレット１１から参照できる形式で作成される。
上記起動用のファイル（ＨＴＭＬ）１２は、クライアント１にダウンロードされる。
【０００９】
（ｂ）図２（ａ）の(iii) に示すように、システム起動用アプレット１１は渡されたパラメタを引数に、ブラウザ実行ファイル１３を直接起動することにより、確実に別プロセスでブラウザが起動される。
また、システム起動用アプレットはブラウザ実行後に消去させるため、オペレータからはあたかも直接システム起動したかのような操作性が実現可能となる。
図２（ｃ）は上記(iii) の処理を説明する図であり、システム起動用アプレットは、ＨＴＭＬ１２に記載されている情報をパラメタとし、システム起動用のパラメタを形成し、ブラウザの実行ファイル１３を起動する。
これにより該当システムが起動される。例えばＡメニューを選択した場合には、Ａシステム１４のアプレットがＷｅｂサーバ２からクライアント１にダウンロードされ、Ａシステム１４が起動される。なお、前記したようにシステム起動用ＨＴＭＬ１２は、ブラウザの実行ファイルを実行後に消去される。
【発明の効果】
【００１０】
以上説明したように、本発明においては、以下の効果を得ることができる。
（１）メニューをブラウザ上に表示して、メニューを選択することにより、異なるバージョンのシステムを起動することができるので、ユーザの操作性、およびシステムの流用性を向上させることができる。
（２）メニューは、サーバ内で一元的管理をすることができるので、メインテナンス性がよく、ショートカットを配備する場合のように、使用システムの増減の際に個々の端末に対して資源配布する必要がなく、また、使用者により移動・削除されてしまうといったこともない。        
また、サーブレット／ＪＳＰ［Ｊａｖａ（登録商標)   Ｓｅｒｖｅｒ  Ｐａｇｅｓ］を使用することにより動的な情報を渡すことも可能なため、業務システムを共通メニューとするニーズにも対応できる。      
【発明を実施するための最良の形態】
【００１１】
図３は本発明の前提となるシステムの構成例を示す図である。
図１において、１はパソコン、携帯端末、携帯電話などのクライアントであり、クライアント１は、ネットワーク３を介して、サーバ２と接続される。
クライアント１上には、ブラウザ１ａと、異なるバージョンの仮想マシン１ｂが実装されている。例えば、図１では、ＶＭのプログラム実行システム（ＩＲＥ）として、バージョン１．１．６、バージョン１．４用が実装されている。
サーバ２上のウエブサーバコンテナ２ａには、システム起動用ＨＴＭＬ生成用のサーブレットが設けられている。
また、サーバ２上には、業務処理用のＪａｖａ（登録商標）アプリケーション（アプレット）２ｂが登録されている。この例では、バージョン１．１．６と１．４用のアプレットが登録されている。このアプレットは、クライアント１でメニュー選択することによりクライアント１にダウンロードされて実行される。
さらに、サーバ２上には、クライアントのブラウザのパスを管理する管理テーブル２ｃが登録されている。
【００１２】
図４、図５は、本発明の実施例のロジックフローを示す図である。なお、図４はシステム起動依頼からシステム起動アプレット表示までのロジックフローを示し、図５はシステム起動用アプレット表示からシステム起動までのロジックフローを示しており、図４〜図５のＡ−Ａの部分が従来とは異なる流れの部分である。
図４において、クライアント１のブラウザが起動されると、システム起動依頼がサーバ２に通知され、サーバ２はメニュー用ＨＴＭＬをクライアント１にダウンロードする。
これにより、クライアントの画面上には、例えば「Ａシステム」、「Ｂシステム」、「Ｃシステム」のようなメニュー画面２０が表示される。
ユーザが上記メニュー画面２０のアンカーをクリックすると、Ｊａｖａ (登録商標）Ｓｃｒｉｐｔにてシステム起動用ＨＴＭＬ表示用のウィンドウ２１が表示される。
システム起動用ＨＴＭＬ表示用のウィンドウ２１が表示されると、必要パラメタを付加して、システム起動用ＨＴＭＬの生成をサーバ２のサーブレットに依頼する。
上記パラメータ（＊１）としては、例えば以下のものがある。
・起動システムＵＲＬ
・起動ＶＭバージョン
・システム起動時必要資源 (Ｊａｒ, Ｃｌａｓｓの情報) 
・クライアント端末識別情報
【００１３】
サーバ２のサーブレットは、上記依頼があると、以下の処理を行う。
(i) ブラウザパスの取得
端末ごとにブラウザのインストール先が異なるため、サーバ２は前記したように端末識別情報（端末ＩＤ）をキーに、ブラウザパスをテーブル管理しており、この管理テーブル２ｃを参照し、依頼に従って、パス情報を情報取得する（＊２）。
(ii)システム起動用ＨＴＭＬ生成
サーバ２のシステム起動用ＨＴＭＬ生成用のサーブレットは、システム起動用ＨＴＭＬ２２を生成する（＊３）。
(iii) パラメタ付加
上記（＊３）で生成したＨＴＭＬ内の＜ＯＢＪＥＣＴ＞タグ内のパラメタとして、上記（＊１）と（＊２）の情報も付加する。
(iv)ＨＴＭＬ送信
生成したシステム起動用ＨＴＭＬ２２を依頼元のクライアント１に送信する。
【００１４】
上記のようにシステム起動用ＨＴＭＬ１２が依頼元のクライアントに送信されると、システム起動用ＨＴＭＬのアプレット２３が起動され、図５に示すように、アプレット２３は、＜ＯＢＪＥＣＴ＞タブ内のパラメタを取得する (＊４) 。
上記（＊４）の処理で、ブラウザのインストール先および起動システムＵＲＬが取得されるため、その情報を元にＪａｖａ（登録商標）ＡＰＩのＲｕｎｔｉｍｅ. ｅｘｅｃを使用してシステム起動を行なう。すなわち、ブラウザの実行ファイルを直接起動することにより、確実にＶＭを別プロセスで起動するようにする。
これにより、新規ブラウザ２４が自動起動され、サーバ２に、例えばＡシステム用ＨＴＭＬのダウンロードを依頼し、クライアント１にＡシステム用のアプレット２５がダウンロードされる。システム起動完了後、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔを用いてシステム起動用アプレットのブラウザを消去する。
【００１５】
図６は、クライアント１におけるブラウザ自動起動フローであり、上記図５に示してフローにおける、システム起動用ＨＴＭＬが送信されてからシステム起動用ＨＴＭＬが消去されるまでの詳細フローを示している。
前記したようにサーバ２のサーブレットにより、システム起動用ＨＴＭＬ２２が生成され、クライアント１に通知される。このシステム起動用ＨＴＭＬ２２には、システム起動用アプレット２３の起動用タグと、システム起動用アプレット２３が使用するパラメタと、システム起動用ＨＴＭＬ２２をクローズするためのＪａｖａ（登録商標）Ｓｃｒｉｐｔが含まれる。
システム起動用ＨＴＭＬ２２内には、アプレット起動のタグが埋め込まれているため、クライアント１で上記起動用ＨＴＭＬ２２が受信されると、ブラウザからアプレット２３が起動される。
【００１６】
このアプレットは、起動用ＨＴＭＬ内に記述された業務アプレット起動用のパラメタを取得し、取得したパラメタを元にブラウザおよび業務システム（例えばＡシステム）２６を起動する。
これにより、ブラウザ起動時に指定した業務システムのＵＲＬを元に、業務システム２６のＨＴＭＬがサーバ２からダウンロードされる。
業務システム２６のＨＴＭＬでは、そのアプレット２５が業務として必要な初期処理を行ない、業務画面を表示する。
また、業務システム実行後、アプレットからＨＴＭＬ上に埋め込まれたブラウザ消去用のＪａｖａ（登録商標）Ｓｃｒｉｐｔを呼び出し、ブラウザの消去を行なう。
【００１７】
図７、図８は本発明よる起動シーケンスと従来の起動シーケンスを示す図であり、図７は本発明の起動シーケンスを示し、図８は従来の起動シーケンスを示す。
図７において、メニュー画面２０で、ユーザがマウスをクリックしてＡシステムを起動すると、前記したように、サーバ２からシステム起動用ＨＴＭＬ２２がダウンロードされる。なお、メニュー画面２０、システム起動用ＨＴＭＬ画面２２は同一プロセス内画面表示である。
システム起動用ＨＴＭＬ２２のアプレット２３は、プログラム実行システムのバージョンの指定が不要のため、システムデフォルトのＶＭ（例えばバージョン１．４）が起動される。また、システム起動用ＨＴＭＬ２２のアプレット２３により、別プロセスで新規ブラウザ２４が起動される。
ついで、サーバ２からＡシステムのＨＴＭＬ２５がダウンロードされ、Ａシステムで使用する例えばバージョン１．２用のＶＭが起動される。
【００１８】
ついで、ユーザがマウスをクリックして、Ｂシステムを起動すると、上記と同様、サーバ２からシステム起動用ＨＴＭＬ２２がダウンロードされる。
そして、システム起動用ＨＴＭＬのアプレットにより、別プロセスで新規ブラウザ２４’が起動される。ここでは、既に起動済みのシステムデフォルトのＶＭが使用される。
ついで、サーバ２からＢシステムのＨＴＭＬ２５’がダウンロードされ、Ｂシステムで使用する例えばバージョン１．３用のＶＭが起動される。
【００１９】
以上のように、本発明によれば、ブラウザのメニューから異なったバージョンのＶＭの起動が可能であるが、従来のシステムでは、図８に示すように、一つのメニューから異なったバージョンのＶＭを起動することは出来ない。
図８において、メニュー画面２０で、ユーザがマウスをクリックしてＡシステムを起動すると、サーバ２からＡシステムのＨＴＭＬがダウンロードされ、このアップレットにより、Ａシステムで使用するバージョン（例えばバージョン１．２用）のＶＭが起動される。
ついで、メニュー画面２０で、ユーザがマウスをクリックしてＢシステムを起動すると、サーバ２からＢシステムのＨＴＭＬ２７がダウンロードされる。ここで、Ｂシステムがバージョン１．３用のＶＭを必要とする場合、ブラウザプロセス内で、既にＡシステムにより異なるバージョンのＶＭが起動されているため、Ｂシステムの起動はエラーとなり、起動することはできない。
【図面の簡単な説明】
【００２０】
【図１】本発明の概要を説明する図である。
【図２】図１の処理を更に具体的に説明する図である。
【図３】本発明の前提となるシステムの構成例を示す図である。
【図４】本発明の実施例のロジックフローを示す図（１）である。
【図５】本発明の実施例のロジックフローを示す図（２）である。
【図６】クライアントにおけるブラウザ自動起動フローを示す図である。
【図７】本発明による起動シーケンスを示す図である。
【図８】従来例における起動シーケンスを示す図である。
【図９】ブラウザのメニューから異なるバージョンのＶＭを起動する場合の問題点を説明する図である。
【符号の説明】
【００２１】
１  クライアント
２  サーバ
３  ネットワーク
１０  アプレット画面
１１  システム起動用アプレット
１２  システム起動用ファイル（ブラウザ起動用ＨＴＭＬ）
【図１】
2006276939.tif 000003
【図２】
2006276939.tif 000004
【図３】
2006276939.tif 000005
【図４】
2006276939.tif 000006
【図５】
2006276939.tif 000007
【図６】
2006276939.tif 000008
【図７】
2006276939.tif 000009
【図８】
2006276939.tif 000010
【図９】
2006276939.tif 000011