(57)【特許請求の範囲】
【請求項１】
クライアント側のプロセスの生成依頼に基づきリモート側のプロセスがクラスをクラスダウンロードして実行し、クライアント側のプロセスがクラスダウンロードして実行させた、前記クラスとの通信を行うためのユーザインターフェース・クラスを介して前記クラスとの間で通信を行うプログラム実行方法において、
キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスが前記クライアント側のキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、
前記キャッシュに存在しない場合には前記ユーザインターフェース・クラスをクラスダウンロードして実行すると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することを特徴とするプログラム実行方法。
【請求項２】
クライアント側の前記プロセスで実行されている前記ユーザインターフェース・クラスが全て破棄された場合には、該ユーザインターフェース・クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記ユーザインターフェース・クラスであって前記キャッシュ内に蓄積されている前記ユーザインターフェース・クラスを廃棄することを特徴とする請求項１記載のプログラム実行方法。
【請求項３】
同じ種類の前記ユーザインターフェース・クラスが全て破棄されてから前記ユーザインターフェース・クラスの登録情報であって、ユーザインターフェース・クラスが格納されているサーバのＵＲＬ（Uniform Resource Locator）でサーバにより管理される登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記ユーザインターフェース・クラスを廃棄することを特徴とする
請求項１記載のプログラム実行方法。
【請求項４】
クライアント側のプロセスの生成依頼に基づきリモート側のプロセスがクラスをクラスダウンロードして実行し、クライアント側のプロセスがクラスダウンロードして実行させた、前記クラスとの通信を行うためのユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うプログラム実行方法において、
キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスが前記リモート側のキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、
前記キャッシュに存在しない場合には前記クラスをクラスダウンロードして実行すると共に前記クラスを前記キャッシュに蓄積することを特徴とするプログラム実行方法。
【請求項５】
リモート側の前記プロセスで実行されている前記クラスが全て破棄された場合には、該クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記クラスであって前記キャッシュ内に蓄積されている前記クラスを廃棄することを特徴とする
請求項４記載のプログラム実行方法。
【請求項６】
同じ種類の前記クラスが全て破棄されてから前記クラスの登録情報であって、ユーザインターフェース・クラスが格納されているサーバのＵＲＬ（Uniform Resource Locator）でサーバにより管理される登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記クラスを廃棄することを特徴とする
請求項４記載のプログラム実行方法。
【請求項７】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理すると共にクライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するサーバと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項８】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理するサーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するリモートマシンと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記リモートマシンにクラスダウンロードされた前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項９】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記プログラムとの通信を行うユーザインターフェース・クラスとが格納されたＷｅｂサーバと、
前記クラス及び前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するリモートマシンと、
前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記リモートマシンにクラスダウンロードされた前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記Ｗｅｂサーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項１０】
前記クライアントマシンが、
前記プロセスで実行されている前記ユーザインターフェース・クラスが全て破棄された場合には、該ユーザインターフェース・クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記ユーザインターフェース・クラスであって前記キャッシュ内に蓄積されている前記ユーザインターフェース・クラスを廃棄することを特徴とする
請求項７〜請求項９のいずれかに記載のシステム。
【請求項１１】
前記クライアントマシンが、
同じ種類の前記ユーザインターフェース・クラスが全て破棄されてから前記ユーザインターフェース・クラスの登録情報であって、前記各サーバの少なくともいずれかにより管理されユーザインターフェース・クラスが格納されている前記サーバのＵＲＬ（Uniform Resource Locator）である登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記ユーザインターフェース・クラスを廃棄することを特徴とする
請求項７〜請求項９のいずれかに記載のシステム。
【請求項１２】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理すると共にクライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するサーバと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うクライアントマシンとを備え、
前記サーバが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記プログラムを再利用し、前記キャッシュに存在しない場合には前記サーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項１３】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理するサーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するリモートマシンと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うクライアントマシンとを備え、
前記リモートマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項１４】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとが格納されたＷｅｂサーバと、
前記プログラム及び前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスをプロセス中にクラスダウンロードして実行するリモートマシンと、
前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備え、
前記リモートマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、前記キャッシュに存在しない場合には前記Ｗｅｂサーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することを特徴とするシステム。
【請求項１５】
前記サーバ若しくは前記リモートマシンが、
前記プロセスで実行されている前記クラスが全て破棄された場合には、該クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記クラスであって前記キャッシュ内に蓄積されている前記クラスを廃棄することを特徴とする請求項１２〜請求項１４のいずれかに記載のシステム。
【請求項１６】
前記サーバ若しくは前記リモートマシンが、
同じ種類の前記クラスが全て破棄されてから前記プログラムの登録情報であって、前記管理サーバにより管理されユーザインターフェース・クラスが格納されている前記ＷｅｂサーバのＵＲＬ（Uniform Resource Locator）である登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記クラスを廃棄することを特徴とする
請求項１２〜請求項１４のいずれかに記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介してプログラムを配信して動作させるプログラム実行方法及びこれを用いたシステムに関し、特に最新のプログラムの利用を担保しながらプログラム起動時間を短縮することが可能なプログラム実行方法及びこれを用いたシステムに関する。
【０００２】
【従来の技術】
従来のネットワークを介してプログラムを配信して動作させるプログラム実行方法には大きく２つの種類に分類される。すなわち、プログラムファイルをユーザ側のマシンに配信して実行する方法、及び、動的にプログラムをユーザ側のマシンのメモリ上で動作させる方法である。
【０００３】
前者の方法としては、例えば、ＦＴＰ（File Transfer Protocol）等のファイル転送ソフトを用いてプログラムファイルをユーザ側のマシンに転送して実行したり、ユーザがブラウザを用いてＷｅｂサーバからプログラムファイルをダウンロードして実行する。
【０００４】
また、後者の方法としては、例えば、ユーザ側からの動的なプログラム実行命令によりＷｅｂサーバからプログラムの実行部分がユーザ側のマシンのメモリ上にダウンロードされ実行される。
【０００５】
例えば、前者の方法としては本願出願人の出願に係る「特願平２０００−２１７４７３号」に記載されたプログラム実行方法及びこれを用いたシステムが存在する。
【０００６】
図６はこのようなプログラム実行方法及びこれを用いたシステムの一例を示す構成ブロック図である。図６において１は管理サーバ、２はＷｅｂサーバ、３はクライアントマシン、４及び５はリモートマシンである。
【０００７】
管理サーバ１、Ｗｅｂサーバ２、クライアントマシン３、リモートマシン４及び５は図示しないネットワークにより相互に接続される。
【０００８】
ここで、図６に示す従来例の動作を説明する。管理サーバ１はＷｅｂサーバ２に格納されている図６中”ＷＡ０１”，”ＷＡ０２”及び”ＷＡ０３”に示すプログラムである”Ｗｏｒｋｅｒ（以下、単にＷｏｒｋｅｒと呼ぶ。）”をネットワークを介してリモートマシン４及び５にダウンロードさせる。
【０００９】
これと同時に、Ｗｅｂサーバ２に格納されている図６中”ＷＧ０１”，”ＷＧ０２”及び”ＷＧ０３”に示すＷｏｒｋｅｒと通信をしてユーザからの指示を与えたり、Ｗｏｒｋｅｒからのデータを表示するユーザインターフェース・プログラムである”ＷｏｒｋｅｒＧＵＩ（以下、単にＷｏｒｋｅｒＧＵＩと呼ぶ。）”をクライアントマシン３にダウンロードさせる。
【００１０】
そして、ユーザはクライアントマシン３で動的に実行されるＷｏｒｋｅｒＧＵＩを用いてリモートマシン４及び５で実行されているＷｏｒｋｅｒとの間で通信を行うことにより仮想的にＷｏｒｋｅｒをクライアントマシン３上で実行させることができる。
【００１１】
この結果、クライアントマシン３に使用済みのプログラムファイルが残存せず、リモートマシン４及び５上で実行されているＷｏｒｋｅｒを選択することにより、柔軟性が高く様々なプログラムを動作させることが可能になる。
【００１２】
さらに、図６に示す実施例の動作を図７、図８、図９及び図１０を用いて詳細に説明する。図７はＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録等を説明する説明図、図８はクライアントマシン３の動作を説明するフロー図、図９は管理サーバ１の動作を説明するフロー図、図１０はリモートマシン４及び５の動作を説明するフロー図である。
【００１３】
但し、以下の説明においては”ＷＧ０１”及び”ＷＡ０１”はプログラム本体ではなくクラスファイルとして取り扱う。
【００１４】
図７において１及び２と”ＷＧ０１”、”ＷＧ０２”、”ＷＧ０３”、”ＷＡ０１”、”ＷＡ０２”及び”ＷＡ０３”は図６と同一符号を付してあり、６はＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの開発等を行うマシンである。
【００１５】
管理者は、予め、図７中”ＮＲ１１”に示すようにマシン６で作成したクライアントが使用する可能性のある様々なＷｏｒｋｅｒのクラスを管理サーバ１上で稼動している管理プログラムであるＷｏｒｋｅｒＭａｎａｇｅｒに登録する。また、図７中”ＵＬ１１”に示すようにＷｏｒｋｅｒクラス及び対応するＷｏｒｋｅｒＧＵＩクラスのクラスペアをＷｅｂサーバ２に格納しておく。
【００１６】
先ず第１にクライアントマシン３では、図８中”Ｓ００１”においてクライアントマシン３は管理サーバ１で稼動されているＷｏｒｋｅｒＭａｎａｇｅｒとの間で通信等を行う予めインストールされているプロセスであるＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩを起動する。
【００１７】
図８中”Ｓ００２”においてクライアントマシン３はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩを介してＷｏｒｋｅｒＭａｎａｇｅｒに登録されているＷｏｒｋｅｒラスから使用したいＷｏｒｋｅｒクラスを選択し、このＷｏｒｋｅｒクラスをクラスダウンロードさせるリモートマシンを選択し、ＷｏｒｋｅｒＭａｎａｇｅｒに生成を依頼する。
【００１８】
例えば、図６中”ＲＱ０１”に示すようにＷｏｒｋｅｒＭａｎａｇｅｒに対して、図６中”ＷＡ０１”及び”ＷＡ０２”のＷｏｒｋｅｒクラスをそれぞれリモートマシン４及び５にクラスダウンロードさせるように選択する。
【００１９】
図８中”Ｓ００３”においてクライアントマシン３は選択したＷｏｒｋｅｒクラスに対応するＷｏｒｋｅｒＧＵＩクラスの格納先であるＷｅｂサーバ２のアドレスをＷｏｒｋｅｒＭａｎａｇｅｒから通知され、このアドレスのＷｅｂサーバ２にアクセスして、ＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードする。
【００２０】
例えば、図６中”ＤＬ０１”に示すようにＷｅｂサーバ２から図６中”ＷＡ０１”及び”ＷＡ０２”にそれぞれ対応する図６中”ＷＧ０１”及び”ＷＧ０２”に示すＷｏｒｋｅｒＧＵＩクラスを図６中”ＷＭＧ１”に示すＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードする。
【００２１】
図８中”Ｓ００４”においてクライアントマシン７はインスタンスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に生成してＷｏｒｋｅｒＧＵＩを起動し、図８中”Ｓ００５”においてリモートマシン上で稼動しているＷｏｒｋｅｒと通信を開始してＷｏｒｋｅｒに対して適宜処理を行わせる。
【００２２】
例えば、図６中”ＭＣ０１”に示すように起動されたＷｏｋｅｒＧＵＩである”ＷＧ０１’”はリモートマシン５上で起動されたＷｏｒｋｅｒである”ＷＡ０１’”との間で通信を行い、図６中”ＭＣ０２”に示すように起動されたＷｏｋｅｒＧＵＩである”ＷＧ０２’”はリモートマシン４上で起動されたＷｏｒｋｅｒである”ＷＡ０２’”との間で通信を行う。
【００２３】
また、管理サーバ１では、図９中”Ｓ１０１”において管理サーバ１はＷｏｒｋｅｒのクラスを管理するＷｏｒｋｅｒＭａｎａｇｅｒを起動する。そして、図９中”Ｓ１０２”においてクライアントマシン３で稼動しているＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからＷｏｒｋｅｒの生成依頼があったか否かを判断する。
【００２４】
もし、図９中”Ｓ１０２”においてＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからＷｏｒｋｅｒの生成依頼があった場合には、図９中”Ｓ１０３”において管理サーバ１はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからクラスダウンロード先として指定されたリモートマシンに選択されたＷｏｒｋｅｒの生成を指示する。
【００２５】
例えば、図６中”ＩＷ０１”及び”ＩＷ０２”に示すようにリモートマシン５及び４に対してクラスダウンロードすべきＷｏｒｋｅｒクラス名と当該Ｗｏｒｋｅｒクラスの格納先であるＷｅｂサーバ２のアドレスを通知する。
【００２６】
図９中”Ｓ１０４”において管理サーバ１は選択されたＷｏｒｋｅｒクラスに対応するＷｏｋｅｒＧＵＩクラスの格納先であるＷｅｂサーバ２のアドレスをクライアントマシン３に通知する。
【００２７】
最後に、リモートマシン４及び５では、図１０中”Ｓ２０１”においてＷｏｒｋｅｒの動作領域を提供するプロセスであるＷｏｒｋｅｒＳｐａｃｅを起動させる。例えば、リモートマシン５は図６中”ＷＳ０１”に示すようなＷｏｒｋｅｒＳｐａｃｅを起動し、リモートマシン４は図６中”ＷＳ０２”に示すようなＷｏｒｋｅｒＳｐａｃｅを起動する。
【００２８】
そして、図１０中”Ｓ２０２”においてリモートマシン４及び５はＷｏｒｋｅｒＭａｎａｇｅｒからＷｏｒｋｅｒの生成指示があったか否かを判断し、Ｗｏｒｋｅｒの生成指示があった場合には図１０中”Ｓ２０３”において指定されたＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にクラスダウンロードする。
【００２９】
例えば、ＷｏｒｋｅｒＭａｎａｇｅｒからクラスダウンロードすべきＷｏｒｋｅｒクラス名と当該Ｗｏｒｋｅｒクラスの格納先であるＷｅｂサーバ２のアドレスが通知され、図６中”ＷＡ０１”及び”ＷＡ０２”のＷｏｒｋｅｒクラスをそれぞれリモートマシン５及び４にクラスダウンロードするように指示された場合を考える。
【００３０】
リモートマシン５では図６中”ＤＬ０２”に示すようにＷｅｂサーバ２から図６中”ＷＡ０１”に示すＷｏｒｋｅｒクラスを図６中”ＷＳ０１”に示すＷｏｒｋｅｒＳｐａｃｅにクラスダウンロードする。
【００３１】
同様に、リモートマシン４では図６中”ＤＬ０３”に示すようにＷｅｂサーバ２から図６中”ＷＡ０２”に示すＷｏｒｋｅｒクラスを図６中”ＷＳ０２”に示すＷｏｒｋｅｒＳｐａｃｅにクラスダウンロードする。
【００３２】
そして、図１０中”Ｓ２０４”においてリモートマシン４及び５はインスタンスをＷｏｒｋｅｒＳｐａｃｅ内にそれぞれ生成してそれぞれのＷｏｒｋｅｒを起動し、図１０中”Ｓ２０５”においてクライアントマシン３上で稼動しているＷｏｒｋｅｒＧＵＩと通信を開始する。
【００３３】
例えば、図６中”ＭＣ０１”に示すようにリモートマシン５上の起動されたＷｏｒｋｅｒである”ＷＡ０１’”はクライアントマシン３上の起動された一方のＷｏｋｅｒＧＵＩである”ＷＧ０１’”との間で通信を行い、図６中”ＭＣ０２”に示すようにリモートマシン４上の起動されたＷｏｒｋｅｒである”ＷＡ０２’”はクライアントマシン３上の起動された他方のＷｏｋｅｒＧＵＩである”ＷＧ０２’”との間で通信を行う。
【００３４】
すなわち、リモートマシン上でＷｏｒｋｅｒＳｐａｃｅを動作させることにより、様々な種類のＷｏｒｋｅｒクラスを動的にクラスダウンロードしてＷｏｒｋｅｒを起動できるために、いちいちリモートマシン上に様々なプログラムをインストールする必要性がなくなる。
【００３５】
また、クライアントマシン３にはＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩのみをインストールしておけば動的に様々なＷｏｒｋｅｒＧＵＩクラスをクラスダウンロードしてリモートマシン上で稼動するＷｏｒｋｅｒと通信ができるので柔軟性が高く様々なプログラムをリモートで動作させることが可能になる。
【００３６】
さらに、ＷｏｒｋｅｒＭａｎａｇｅｒによりＷｏｒｋｅｒクラスと対応するＷｏｒｋｅｒＧＵＩクラスが対になって管理されているために、リモートマシンとクライアントマシンとの間のバージョンの整合性が保証される。
【００３７】
【発明が解決しようとする課題】
しかし、図６に示す従来例ではクライアントマシン３やリモートマシン４及び５はネットワークを介してＷｏｒｋｅｒクラスやＷｏｒｋｅｒＧＵＩクラスをクラスダウンロードするので、プログラムを実行する度に毎回ネットワークを介してＷｏｒｋｅｒクラス等をクラスダウンロードすることになり、ダウンロード時間がかかってＷｏｒｋｅｒ等のプログラムの起動時間が長くなってしまうと言った問題点があった。
【００３８】
安定したＬＡＮ（Local Area Network）等のネットワーク環境では特段の問題を生じる恐れは少ないものの、公衆回線を用いたリモート接続等の貧弱なネットワーク環境の場合には問題が顕著化してしまう。
【００３９】
例えば、”１００ｋＢ”のサイズのＷｏｒｋｅｒを”３３．６ｋｂｐｓ”の通信速度のモデムを用いてダウンロードする場合を想定すると、１０秒〜３０秒程度のダウンロード時間を要してしまい、結果的にＷｏｒｋｅｒ等のプログラムの起動時間が長くなってしまう。
【００４０】
このため、ダウンロードによるオーバーヘッドを削減するために、ダウンロードしたデータをキャッシュに格納して再利用する方法が一般的に考えられるものの、起動時に毎回Ｗｏｒｋｅｒをダウンロードすることにより最新のＷｏｒｋｅｒを利用できると言った従来例の特徴が失われてしまうと言った問題点があった。
【００４１】
例えば、ユーザがキャッシュするしないの選択を任意のＷｏｒｋｅｒに自由に指定したり、キャッシュの内容をリセットするタイミングを自由にした場合には従来例の特徴が失われてしまう。
従って本発明が解決しようとする課題は、最新のプログラムの利用を担保しながらプログラム起動時間を短縮することが可能なプログラム実行方法及びこれを用いたシステムを実現することにある。
【００４２】
【課題を解決するための手段】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
クライアント側のプロセスの生成依頼に基づきリモート側のプロセスがクラスをクラスダウンロードして実行し、クライアント側のプロセスがクラスダウンロードして実行させた、前記クラスとの通信を行うためのユーザインターフェース・クラスを介して前記クラスとの間で通信を行うプログラム実行方法において、
キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスが前記クライアント側のキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、
前記キャッシュに存在しない場合には前記ユーザインターフェース・クラスをクラスダウンロードして実行すると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたユーザインターフェース・プログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００４３】
請求項２記載の発明は、
請求項１記載の発明であるプログラム実行方法において、
クライアント側の前記プロセスで実行されている前記ユーザインターフェース・クラスが全て破棄された場合には、該ユーザインターフェース・クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記ユーザインターフェース・クラスであって前記キャッシュ内に蓄積されている前記ユーザインターフェース・クラスを廃棄することにより、次回の起動時にはら最新の前記ユーザインターフェース・プログラムがダウンロードされて最新のプログラムの利用が担保される。
【００４４】
請求項３記載の発明は、
請求項１記載の発明であるプログラム実行方法において、
同じ種類の前記ユーザインターフェース・クラスが全て破棄されてから前記ユーザインターフェース・クラスの登録情報であって、ユーザインターフェース・クラスが格納されているサーバのＵＲＬ（Uniform Resource Locator）でサーバにより管理される登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記ユーザインターフェース・クラスを廃棄することにより、今後更新の予定がない、若しくは、更新が既に中止されているユーザインターフェース・プログラムに関して無駄なダウンロードを発生させないので起動時間が短縮される。また、最新のユーザインターフェース・プログラムの切り換えタイミングを調整することが可能になる。
【００４５】
請求項４記載の発明は、
クライアント側のプロセスの生成依頼に基づきリモート側のプロセスがクラスをダウンロードして実行し、クライアント側のプロセスがクラスダウンロードして実行させた、前記クラスとの通信を行うためのユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うプログラム実行方法において、
キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスが前記リモート側のキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、
前記キャッシュに存在しない場合には前記クラスをクラスダウンロードして実行すると共に前記クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたプログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００４６】
請求項５記載の発明は、
請求項４記載の発明であるプログラム実行方法において、
リモート側の前記プロセスで実行されている前記クラスが全て破棄された場合には、該クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記クラスであって前記キャッシュ内に蓄積されている前記クラスを廃棄することにより、次回の起動時にはら最新の前記プログラムがダウンロードされて最新のプログラムの利用が担保される。
【００４７】
請求項６記載の発明は、
請求項４記載の発明であるプログラム実行方法において、
同じ種類の前記クラスが全て破棄されてから前記クラスの登録情報であって、ユーザインターフェース・クラスが格納されているサーバのＵＲＬ（Uniform Resource Locator）でサーバにより管理される登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記クラスを廃棄することにより、今後更新の予定がない、若しくは、更新が既に中止されているプログラムに関して無駄なダウンロードを発生させないので起動時間が短縮される。また、最新のプログラムの切り換えタイミングを調整することが可能になる。
【００４８】
請求項７記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理すると共にクライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するサーバと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたユーザインターフェース・プログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００４９】
請求項８記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理するサーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスを前記プロセスの動作中にクラスダウンロードして実行するリモートマシンと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記リモートマシンにクラスダウンロードされた前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたユーザインターフェース・プログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００５０】
請求項９記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記プログラムとの通信を行うユーザインターフェース・クラスとが格納されたＷｅｂサーバと、
前記クラス及び前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスをプロセス中にダウンロードして実行するリモートマシンと、
前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記リモートマシンにクラスダウンロードされた前記クラスとの間で通信を行うクライアントマシンとを備え、
前記クライアントマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記ユーザインターフェース・クラスがキャッシュに蓄積されている場合には蓄積されている前記ユーザインターフェース・クラスを再利用し、前記キャッシュに存在しない場合には前記Ｗｅｂサーバから前記ユーザインターフェース・クラスをクラスダウンロードして実行させると共に前記ユーザインターフェース・クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたユーザインターフェース・プログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００５１】
請求項１０記載の発明は、
請求項７〜請求項９のいずれかに記載の発明であるシステムにおいて、
前記クライアントマシンが、
前記プロセスで実行されている前記ユーザインターフェース・クラスが全て破棄された場合には、該ユーザインターフェース・クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記ユーザインターフェース・クラスであって前記キャッシュ内に蓄積されている前記ユーザインターフェース・クラスを廃棄することにより、次回の起動時にはら最新の前記ユーザインターフェース・プログラムがダウンロードされて最新のプログラムの利用が担保される。
【００５２】
請求項１１記載の発明は、
請求項７乃至請求項９記載の発明であるシステムにおいて、
前記クライアントマシンが、
同じ種類の前記ユーザインターフェース・クラスが全て破棄されてから前記ユーザインターフェース・クラスの登録情報であって、前記各サーバの少なくともいずれかにより管理されユーザインターフェース・クラスが格納されている前記サーバのＵＲＬ（Uniform Resource Locator）である登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記ユーザインターフェース・クラスを廃棄することにより、今後更新の予定がない、若しくは、更新が既に中止されているユーザインターフェース・プログラムに関して無駄なダウンロードを発生させないので起動時間が短縮される。また、最新のユーザインターフェース・プログラムの切り換えタイミングを調整することが可能になる。
【００５３】
請求項１２記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理すると共にクライアント側のプロセスの生成依頼に基づき前記プログラムをプロセス中にクラスダウンロードして実行するサーバと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うクライアントマシンとを備え、
前記サーバが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記プログラムを再利用し、前記キャッシュに存在しない場合には前記サーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたプログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００５４】
請求項１３記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとを管理するサーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスをプロセス中にクラスダウンロードして実行するリモートマシンと、
前記サーバと通信をすると共に前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記プログラムとの間で通信を行うクライアントマシンとを備え、
前記リモートマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、前記キャッシュに存在しない場合には前記サーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたプログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００５５】
請求項１４記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
前記クラスと、前記クラスとの通信を行うユーザインターフェース・クラスとが格納されたＷｅｂサーバと、
前記プログラム及び前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、
クライアント側のプロセスの生成依頼に基づき前記クラスをプロセス中にクラスダウンロードして実行するリモートマシンと、
前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記ユーザインターフェース・クラスを前記クライアント側のプロセス中にクラスダウンロードして実行させた上で前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備え、
前記リモートマシンが、キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する旨を意味するコードであるキャッシュ可否コードが付加された前記クラスがキャッシュに蓄積されている場合には蓄積されている前記クラスを再利用し、前記キャッシュに存在しない場合には前記Ｗｅｂサーバから前記クラスをクラスダウンロードして実行させると共に前記クラスを前記キャッシュに蓄積することにより、キャッシュ可否コードが付加されたプログラムが蓄積されている場合にはダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００５６】
請求項１５記載の発明は、
請求項１２〜請求項１４のいずれかに記載の発明であるシステムにおいて、
前記サーバ若しくは前記リモートマシンが、
前記プロセスで実行されている前記クラスが全て破棄された場合には、該クラスと少なくとも前記キャッシュ可否コードを含むコードベース情報が同一である前記クラスであって前記キャッシュ内に蓄積されている前記クラスを廃棄することにより、次回の起動時にはら最新の前記プログラムがダウンロードされて最新のプログラムの利用が担保される。
【００５７】
請求項１６記載の発明は、
請求項１２〜請求項１４のいずれかに記載の発明であるシステムにおいて、
前記サーバ若しくは前記リモートマシンが、
同じ種類の前記クラスが全て破棄されてから前記プログラムの登録情報であって、前記管理サーバにより管理されユーザインターフェース・クラスが格納されている前記ＷｅｂサーバのＵＲＬ（Uniform Resource Locator）である登録情報、に付加されている時間情報に相当する時間経過後に前記キャッシュ内に蓄積された同じ種類の前記クラスを廃棄することにより、今後更新の予定がない、若しくは、更新が既に中止されているプログラムに関して無駄なダウンロードを発生させないので起動時間が短縮される。また、最新のプログラムの切り換えタイミングを調整することが可能になる。
【００５８】
【発明の実施の形態】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るプログラム実行方法を用いたシステムの一実施例を示す構成ブロック図である。図１において１及び２は図６と同一符号を付してあり、７はクライアントマシン、８はリモートマシンである。
【００５９】
管理サーバ１、Ｗｅｂサーバ２、クライアントマシン７、リモートマシン８は図示しないネットワークにより相互に接続される。
【００６０】
また、図１中”ＷＭＧ２”に示すＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩには図１中”ＣＨ２１”に示すようなクラスダウンロードしたＷｏｒｋｅｒＧＵＩクラスを一時保存するＷｏｒｋｅｒＧＵＩキャッシュが設けられる。
【００６１】
同様に、図１中”ＷＳ２１”に示すＷｏｒｋｅｒＳｐａｃｅには図１中”ＣＨ２２”に示すようなクラスダウンロードしたＷｏｒｋｅｒクラスを一時保存するＷｏｒｋｅｒキャッシュが設けられる。
【００６２】
一方、図１中”ＲＩ２１”に示す管理サーバ１上で稼動している管理プログラムであるＷｏｒｋｅｒＭａｎａｇｅｒが管理するＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録情報に必要に応じて「キャッシュに蓄えられたデータを利用可能な場合には当該データを利用する」旨を意味するコード（以下、単にキャッシュ可否コードと呼ぶ。）を付加する。
【００６３】
例えば、前記登録情報としてはＷｏｒｋｅｒやＷｏｒｋｅｒＧＵＩの格納されているＷｅｂサーバのＵＲＬ（Uniform Resource Locator）等であり、当該ＵＲＬの文字列の先頭等に必要に応じてキャッシュ可否コードである”ｃａｃｈｅ：”なる文字列を付加する。
【００６４】
ここで、図１に示す実施例の動作を図２、図３、図４及び図５を用いて説明する。図２はクライアントマシン７のキャッシュ動作を説明するフロー図、図３はクライアントマシン７の破棄動作を説明するフロー図、図４はリモートマシン８のキャッシュ動作を説明するフロー図、図５はリモートマシン８のキャッシュ破棄動作を説明するフロー図である。但し、図２及び図４おいてキャッシュ動作以外は図６に示す従来例の動作と同様なので説明は省略する。
【００６５】
図２中”Ｓ３０１”においてクライアントマシン７は管理サーバ１から選択したＷｏｒｋｅｒに対するＷｏｒｋｅｒＧＵＩクラスの格納先を通知されると、そのＵＲＬを分析して先頭に”ｃａｃｈｅ：”なるキャッシュ可否コードが付加されているか否かを判断する。
【００６６】
すなわち、「キャッシュに蓄えられたＷｏｒｋｅｒＧＵＩクラスを利用可能な場合には当該ＷｏｒｋｅｒＧＵＩクラスを利用する」か否かを判断する。
【００６７】
もし、図２中”Ｓ３０１”において、キャッシュ可否コードが付加されている場合には、図２中”Ｓ３０２”においてクライアントマシン７は図１中”ＣＨ２１”に示すＷｏｒｋｅｒＧＵＩキャッシュに当該ＷｏｒｋｅｒＧＵＩクラスが蓄積されているか否かを判断する。
【００６８】
もし、図２中”Ｓ３０２”において、ＷｏｒｋｅｒＧＵＩキャッシュに当該ＷｏｒｋｅｒＧＵＩクラスが蓄積されている場合には、図２中”Ｓ３０３”においてクライアントマシン７はＷｏｒｋｅｒＧＵＩキャッシュから選択したＷｏｒｋｅｒに対応するＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にロードする。
【００６９】
一方、図２中”Ｓ３０１”においてキャッシュ可否コードが付加されていない場合、若しくは、図２中”Ｓ３０２”においてＷｏｒｋｅｒＧＵＩクラスがＷｏｒｋｅｒＧＵＩキャッシュに蓄積されていない場合には、図２中”Ｓ３０４”においてクライアントマシン７は図１中”ＤＬ２１”に示すようにＷｅｂサーバ２から選択したＷｏｒｋｅｒクラスに対応するＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードすると共に図１中”ＳＴ２１”に示すように当該ＷｏｒｋｅｒＧＵＩクラスを図１中”ＣＨ２１”に示すＷｏｒｋｅｒＧＵＩキャッシュに格納する。
【００７０】
そして、図２中”Ｓ３０５”においてクライアントマシン７はインスタンスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に生成してＷｏｒｋｅｒＧＵＩを起動する。
【００７１】
この結果、キャッシュ可否コードが付加されたＷｏｒｋｅｒＧＵＩクラスは、ＷｏｒｋｅｒＧＵＩキャッシュに当該ＷｏｒｋｅｒＧＵＩクラスが蓄積されている場合にはＷｅｂサーバ２からクライアントマシン８へのクラスダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００７２】
例えば、”１００ｋＢ”のサイズのＷｏｒｋｅｒＧＵＩクラスを”３３．６ｋｂｐｓ”の通信速度のモデムを用いてクラスダウンロードする場合を想定すると、従来必要としていた１０秒〜３０秒程度のダウンロード時間が”０”になり、ＷｏｒｋｅｒＧＵＩの起動時間が大幅に短縮される。
【００７３】
一方、図３中”Ｓ４０１”においてクライアントマシン７はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内のインスタンスをモニタし、ＷｏｒｋｅｒＧＵＩインスタンスが破棄されたか否かを判断する。
【００７４】
もし、図３中”Ｓ４０１”においてＷｏｒｋｅｒＧＵＩインスタンスが破棄された場合には、図３中”Ｓ４０２”においてクライアントマシン７はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に同じ種類のＷｏｒｋｅｒＧＵＩインスタンスが存在するか否かを判断する。
【００７５】
ここで、同じ種類のＷｏｋｅｒＧＵＩインスタンスとは、管理サーバ１上で稼動している管理プログラムであるＷｏｒｋｅｒＭａｎａｇｅｒのＷｏｒｋｅｒＧＵＩの登録情報に記載されているＷｏｒｋｅｒＧＵＩ名及びキャッシュ可否コード等のコードベース情報が同一のもの同士のＷｏｒｋｅｒＧＵＩインスタンスを指す。
【００７６】
図３中”Ｓ４０２”において同じ種類のＷｏｒｋｅｒＧＵＩインスタンスが存在しない、言い換えれば、同じ種類のＷｏｒｋｅｒＧＵＩインスタンスが全て破棄された場合には、図３中”Ｓ４０３”においてクライアントマシン７はＷｏｒｋｅｒＧＵＩキャッシュ内の該当するＷｏｒｋｅｒＧＵＩクラスを破棄する。
【００７７】
この結果、ＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に同じ種類のＷｏｒｋｅｒＧＵＩインスタンスが存在する限りにおいては、ＷｏｒｋｅｒＧＵＩキャッシュ内のＷｏｒｋｅｒＧＵＩクラスが再利用されるものの、同じ種類のＷｏｒｋｅｒＧＵＩインスタンスが全て破棄されるとＷｏｒｋｅｒＧＵＩキャッシュ内の該当するＷｏｒｋｅｒＧＵＩクラスは破棄されるので、次回の起動時にはＷｅｂサーバ２から最新のＷｏｒｋｅｒＧＵＩクラスがクラスダウンロードされて最新のプログラムの利用が担保される。
【００７８】
また、図４中”Ｓ５０１”においてリモートマシン８は管理サーバ１からクライアントマシン７が選択したＷｏｒｋｅｒのＷｏｒｋｅｒクラスの格納先を通知されると、そのＵＲＬを分析して先頭に”ｃａｃｈｅ：”なるキャッシュ可否コードが付加されているか否かを判断する。
【００７９】
すなわち、「キャッシュに蓄えられたＷｏｒｋｅｒクラスを利用可能な場合には当該Ｗｏｒｋｅｒクラスを利用する」か否かを判断する。
【００８０】
もし、図４中”Ｓ５０１”において、キャッシュ可否コードが付加されている場合には、図４中”Ｓ５０２”においてリモートマシン８は図１中”ＣＨ２２”に示すＷｏｒｋｅｒキャッシュに当該Ｗｏｒｋｅｒクラスが蓄積されているか否かを判断する。
【００８１】
もし、図４中”Ｓ５０２”において、Ｗｏｒｋｅｒキャッシュに当該Ｗｏｒｋｅｒクラスが蓄積されている場合には、図４中”Ｓ５０３”においてリモートマシン８はＷｏｒｋｅｒキャッシュからＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にロードする。
【００８２】
一方、図４中”Ｓ５０１”においてキャッシュ可否コードが付加されていない場合、若しくは、図４中”Ｓ５０２”においてＷｏｒｋｅｒクラスがＷｏｒｋｅｒキャッシュに蓄積されていない場合には、図４中”Ｓ５０４”においてリモートマシン８は図１中”ＤＬ２２”に示すようにＷｅｂサーバ２から選択されたＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にクラスダウンロードすると共に図１中”ＳＴ２２”に示すように当該Ｗｏｒｋｅｒクラスを図１中”ＣＨ２２”に示すＷｏｒｋｅｒキャッシュに格納する。
【００８３】
そして、図４中”Ｓ５０５”においてリモートマシン８はインスタンスをＷｏｒｋｅｒＳｐａｃｅ内に生成してＷｏｒｋｅｒを起動する。
【００８４】
この結果、キャッシュ可否コードが付加されたＷｏｒｋｅｒクラスは、Ｗｏｒｋｅｒキャッシュに当該Ｗｏｒｋｅｒクラスが蓄積されている場合にはＷｅｂサーバ２からリモートマシン８へのクラスダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【００８５】
例えば、”１００ｋＢ”のサイズのＷｏｒｋｅｒクラスを”３３．６ｋｂｐｓ”の通信速度のモデムを用いてクラスダウンロードする場合を想定すると、従来必要としていた１０秒〜３０秒程度のダウンロード時間が”０”になり、Ｗｏｒｋｅｒの起動時間が大幅に短縮される。
【００８６】
一方、図５中”Ｓ６０１”においてリモートマシン８はＷｏｒｋｅｒＳｐａｃｅ内のインスタンスをモニタし、Ｗｏｒｋｅｒインスタンスが破棄されたか否かを判断する。
【００８７】
もし、図５中”Ｓ６０１”においてＷｏｒｋｅｒインスタンスが破棄された場合には、図５中”Ｓ６０２”においてリモートマシン８はＷｏｒｋｅｒＳｐａｃｅ内に同じ種類のＷｏｒｋｅｒインスタンスが存在するか否かを判断する。
【００８８】
ここで、同じ種類のＷｏｋｅｒインスタンスとは、管理サーバ１上で稼動している管理プログラムであるＷｏｒｋｅｒＭａｎａｇｅｒのＷｏｒｋｅｒの登録情報に記載されているＷｏｒｋｅｒ名及びキャッシュ可否コード等のコードベース情報が同一のもの同士のＷｏｒｋｅｒインスタンスを指す。
【００８９】
図５中”Ｓ６０２”において同じ種類のＷｏｒｋｅｒインスタンスが存在しない、言い換えれば、同じ種類のＷｏｒｋｅｒインスタンスが全て破棄された場合には、図５中”Ｓ６０３”においてリモートマシン８はＷｏｒｋｅｒキャッシュ内の該当するＷｏｒｋｅｒクラスを破棄する。
【００９０】
この結果、ＷｏｒｋｅｒＳｐａｃｅ内に同じ種類のＷｏｒｋｅｒインスタンスが存在する限りにおいては、Ｗｏｒｋｅｒキャッシュ内のＷｏｒｋｅｒクラスが再利用されるものの、同じ種類のＷｏｒｋｅｒインスタンスが全て破棄されるとＷｏｒｋｅｒキャッシュ内の該当するＷｏｒｋｅｒクラスは破棄されるので、次回の起動時にはＷｅｂサーバ２から最新のＷｏｒｋｅｒクラスがクラスダウンロードされて最新のプログラムの利用が担保される。
【００９１】
なお、図１に示す実施例では説明の簡単のために、ＷｏｒｋｅｒＭａｎａｇｅｒが動作する管理サーバ１と、Ｗｏｒｋｅｒクラス及びＷｏｒｋｅｒＧＵＩクラスが格納されるＷｅｂサーバ２と、ＷｏｒｋｅｒＳｐａｃｅが動作するリモートマシン８を個々に分けているがネットワークのトラフィックやマシンスペックの諸条件が許せば全ての役割を１台のマシンに集約したり、役割を統合しても構わない。
【００９２】
例えば、管理サーバ１とＷｅｂサーバ２を統合したり、Ｗｅｂサーバ２とリモートマシン８とを統合しても構わない。
【００９３】
また、キャッシュを利用するかしないかは管理者が管理サーバ１へＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩを登録する際に設定できるのでＷｏｒｋｅｒ等の管理が容易になる。
【００９４】
例えば、短い周期でＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩが次々とアップグレードされることが予測される場合には、管理者は当該Ｗｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録情報に”ｃａｃｈｅ：”なるコードを付加しない。
【００９５】
この場合には、全てのクライアントマシンに対して、必ず最新のＷｏｒｋｅｒクラス及びＷｏｒｋｅｒＧＵＩの使用を自動的に強制することが可能になる。
【００９６】
また、例えば、Ｗｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩが安定していてほとんどアップグレードが行われないことが予測される場合には、管理者は当該Ｗｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録情報に”ｃａｃｈｅ：”なるコードを付加する。
【００９７】
この場合には、全てのクライアントマシンが２個以降のＷｒｏｋｅｒ及びＷｏｒｋｅｒＧＵＩの起動時間が大幅に短縮することが可能になる。
【００９８】
また、図３及び図５の説明に際しては、ＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ（若しくは、ＷｏｒｋｅｒＳｐａｃｅ）内で同じ種類のＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）インスタンスが全て破棄された場合に、ＷｏｒｋｅｒＧＵＩキャッシュ（若しくは、Ｗｏｒｋｅｒキャッシュ）内の該当するＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）クラスを破棄しているが、キャッシュ内のクラスの破棄方法はこれに限定される訳ではない。
【００９９】
すなわち、ＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）の登録情報であるＵＲＬの文字列に時間情報を付加し、同じ種類のインスタンスが全て破棄されてから前記時間情報に相当する時間経過後にキャッシュ内の該当するクラスを破棄しても構わない。
【０１００】
この場合には、今後更新の予定がない、若しくは、更新が既に中止されているＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）に関して無駄なクラスダウンロードを発生させないので、ＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）の起動時間が短縮される。
【０１０１】
また、前記時間情報の値に関しては”０”〜”無限大”の値にから任意に選択することが可能である。
【０１０２】
すなわち、このような時間情報を適宜選択することにより、キャッシュ可否コードが登録情報に付加されたＷｏｒｋｅｒＧＵＩ（若しくはＷｏｒｋｅｒ）の最新のＷｏｒｋｅｒ（若しくは、ＷｏｒｋｅｒＧＵＩ）の切り換えタイミングを調整することが可能になる。
【０１０３】
【発明の効果】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項１，４，７，８，９，１２，１３及び請求項１４の発明によれば、キャッシュ可否コードが付加されたＷｏｒｌｅｒＧＵＩクラス（Ｗｏｒｋｅｒクラス）は、ＷｏｒｋｅｒＧＵＩキャッシュ（Ｗｏｒｋｅｒキャッシュ）に当該ＷｏｒｋｅｒＧＵＩクラス（Ｗｏｒｋｅｒクラス）が蓄積されている場合にはクラスダウンロードが発生しないので、ダウンロードによるオーバーヘッドがなくなりプログラム起動時間が短縮される。
【０１０４】
また、請求項２，５，１０及び請求項１５の発明によれば、ＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ（ＷｏｒｋｅｒＳｐａｃｅ）内に同じ種類のＷｏｒｋｅｒＧＵＩインスタンス（Ｗｏｒｋｅｒインスタンス）が存在する限りにおいては、ＷｏｒｋｅｒＧＵＩキャッシュ（Ｗｏｒｋｅｒキャッシュ）内のＷｏｒｋｅｒＧＵＩクラス（Ｗｏｒｋｅｒクラス）が再利用されるものの、同じ種類のＷｏｒｋｅｒＧＵＩインスタンス（Ｗｏｒｋｅｒインスタンス）が全て破棄されるとＷｏｒｋｅｒＧＵＩキャッシュ（ＷｏｒｋｅｒＳｐａｃｅ）内の該当するＷｏｒｋｅｒＧＵＩクラス（Ｗｏｒｋｅｒクラス）は破棄されるので、次回の起動時には最新のＷｏｒｋｅｒＧＵＩクラス（Ｗｏｒｋｅｒクラス）がクラスダウンロードされて最新のプログラムの利用が担保される。
【０１０５】
また、請求項３，６，１１及び請求項１６の発明によれば、ＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）の登録情報に時間情報を付加し、同じ種類のインスタンスが全て破棄されてから前記時間情報に相当する時間経過後にキャッシュ内の該当するクラスを破棄することにより、今後更新の予定がない、若しくは、更新が既に中止されているＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）に関して無駄なクラスダウンロードを発生させないので、ＷｏｒｋｅｒＧＵＩ（若しくは、Ｗｏｒｋｅｒ）の起動時間が短縮される。また、最新のＷｏｒｋｅｒ（若しくは、ＷｏｒｋｅｒＧＵＩ）の切り換えタイミングを調整することが可能になる。
【図面の簡単な説明】
【図１】本発明に係るプログラム実行方法を用いたシステムの一実施例を示す構成ブロック図である。
【図２】クライアントマシンのキャッシュ動作を説明するフロー図である。
【図３】クライアントマシンの破棄動作を説明するフロー図である。
【図４】リモートマシンのキャッシュ動作を説明するフロー図である。
【図５】リモートマシンのキャッシュ破棄動作を説明するフロー図である。
【図６】プログラム実行方法及びこれを用いたシステムの一例を示す構成ブロック図である。
【図７】Ｗｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録等を説明する説明図である。
【図８】クライアントマシンの動作を説明するフロー図である。
【図９】管理サーバの動作を説明するフロー図である。
【図１０】リモートマシンの動作を説明するフロー図である。
【符号の説明】
１  管理サーバ
２  Ｗｅｂサーバ
３，７  クライアントマシン
４，５，８  リモートマシン
６  マシン
【図１】
0004710171.tif 000002
【図２】
0004710171.tif 000003
【図３】
0004710171.tif 000004
【図４】
0004710171.tif 000005
【図５】
0004710171.tif 000006
【図６】
0004710171.tif 000007
【図７】
0004710171.tif 000008
【図８】
0004710171.tif 000009
【図９】
0004710171.tif 000010
【図１０】
0004710171.tif 000011