(57)【特許請求の範囲】
【請求項１】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとを一対一に対応させて管理すると共にクライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するサーバと、
前記サーバと通信をすると共に前記サーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンと
を備えたことを特徴とするシステム。
【請求項２】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとを一対一に対応させて管理するサーバと、
クライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するリモートマシンと、
前記サーバと通信をすると共に前記サーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンと
を備えたことを特徴とするシステム。
【請求項３】
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとが一対一に対応させて格納されたＷｅｂサーバと、
複数の前記クラス及び複数の前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、
クライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するリモートマシンと、
前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンと
を備えたことを特徴とするシステム。
【請求項４】
前記クラスが、
システムに備えられた機器のリモート診断用のクラスであることを特徴とする
請求項１乃至請求項３のいずれかに記載のシステム。
【請求項５】
前記クラスが、
データ解析表示用のクラスであることを特徴とする
請求項１乃至請求項３のいずれかに記載のシステム。
【請求項６】
前記クラスが、
システムの点検クラスであることを特徴とする
請求項１乃至請求項３のいずれかに記載のシステム。
【請求項７】
前記クラスが、
システムに備えられた各機器に対する指示を行うクラス若しくはシステムに備えられた機器を監視するクラスであることを特徴とする
請求項１乃至請求項３のいずれかに記載のシステム。
【請求項８】
前記クライアントマシン及び前記リモートマシンが、
ダウンロードしてきた前記ユーザインターフェース・クラス及び前記クラスと関連情報を記憶するキャッシュを有することを特徴とする
請求項２若しくは請求項３記載のシステム。
【請求項９】
前記クライアントマシンが、
前記キャッシュに前記ユーザインターフェース・クラスが存在する場合に設定時刻が経過するまで前記キャッシュに記憶された前記ユーザインターフェース・クラスを使用することを特徴とする
請求項８記載のシステム。
【請求項１０】
前記クライアントマシンが、
前記キャッシュに記憶された前記ユーザインターフェース・クラスを使用する場合に前記クラス及び前記ユーザインターフェース・クラスとを管理するサーバを介して前記リモートマシンにその情報を伝えることを特徴とする
請求項９記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介してプログラムを配信して動作させるプログラム実行方法及びこれを用いたシステムに関し、特に柔軟性が高く様々なプログラムを実行させることが可能なプログラム実行方法及びこれを用いたシステムに関する。
【０００２】
【従来の技術】
従来のネットワークを介してプログラムを配信して動作させるプログラム実行方法には大きく２つの種類に分類される。すなわち、プログラムファイルをユーザ側のマシンに配信して実行する方法、及び、動的にプログラムをユーザ側のマシンのメモリ上で動作させる方法である。
【０００３】
前者の方法としては、例えば、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等のファイル転送ソフトを用いてプログラムファイルをユーザ側のマシンに転送して実行したり、ユーザがブラウザを用いてＷｅｂサーバからプログラムファイルをダウンロードして実行する。
【０００４】
また、後者の方法としては、例えば、ユーザ側からの動的なプログラム実行命令によりＷｅｂサーバからプログラムの実行部分がユーザ側のマシンのメモリ上にダウンロードされ実行される。
【０００５】
図９は後者の方法であるＪａｖａ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社が開発したオブジェクト指向のインタープリタ言語。Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社の商標若しくは登録商標。）アプレットを用いたプログラム動作方法の一例を示す構成ブロック図である。図９において１はＷｅｂサーバ、２はサーバサイトに存在するコンピュータ等のマシン、３はクライアントマシン、４はクライアントサイトに存在するマシンである。また、５０はサーバサイトを、５１はクライアントサイトをそれぞれ示している。
【０００６】
ユーザ側からの動的なプログラム実行命令が発せされると、Ｗｅｂサーバ１から図９中”ＡＰ０１”に示すようなアプレットが図９中”ＤＬ０１”に示すようにクライアントマシン３のメモリ上にダウンロードされて動作する。
【０００７】
また、現在では多様な状況の変化に対応してシステム自体が柔軟に変化、言い換えれば、リモートで即座に任意のプログラムを実行することが可能で、必要に応じて使いたい機能の随時追加が可能で、使用済みの機能の即時削除が可能であるプログラム実行方法及びこれを用いたシステムが必要になっている。
【０００８】
【発明が解決しようとする課題】
しかし、前述した前者の従来例では、クライアントマシンに使用済みのプログラムファイルが残存してしまったりすると言った問題点があった。また、後者の従来例ではブラウザの動作が不安定であったり、アプレットの通信先がＷｅｂサーバに限定されてしまい柔軟性に欠けると言った問題点があった。
【０００９】
例えば、図９中”ＡＰ０２”に示すクライアントマシン３のメモリ上で実行されているアプレットは図９中”ＡＥ０１”に示すＷｅｂサーバ１への通信のみが可能であり、図９中”ＡＤ０１”、”ＡＤ０２”及び”ＡＤ０３”と言ったサーバサイト５０側に存在するマシン２、クライアントサイト５１側に存在するマシン４及びクライアントマシン３自身のローカルディスクにはアクセスできない。
【００１０】
すなわち、アプレットを用いた場合であってもリモートで即座に任意のプログラムを実行したり、必要に応じて使いたい機能を随時追加・削除することが困難であると言った問題点があった。
従って本発明が解決しようとする課題は、柔軟性が高く様々なプログラムを動作させることが可能なプログラム実行方法及びこれを用いたシステムを実現することにある。
【００１１】
【課題を解決するための手段】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとを一対一に対応させて管理すると共にクライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するサーバと、前記サーバと通信をすると共に前記サーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備えたことにより、柔軟性が高く様々なプログラムを動作させることが可能になる。
【００１２】
請求項２記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとを一対一に対応させて管理するサーバと、クライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するリモートマシンと、前記サーバと通信をすると共に前記サーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備えたことにより、柔軟性が高く様々なプログラムを動作させることが可能になる。
【００１３】
請求項３記載の発明は、
ネットワークを介してクラスを配信して動作させるプログラム実行方法を用いたシステムにおいて、
複数の前記クラスと、複数の前記クラスとの通信をそれぞれ行う複数のユーザインターフェース・クラスとが一対一に対応させて格納されたＷｅｂサーバと、複数の前記クラス及び複数の前記ユーザインターフェース・クラスの登録管理を行う管理サーバと、クライアントマシンで動作するプロセスからの生成依頼に基づき複数の前記クラスの一のクラスをプロセス中にクラスダウンロードして実行するリモートマシンと、前記管理サーバと通信をすると共に前記Ｗｅｂサーバから前記一のクラスに一対一に対応する前記ユーザインターフェース・クラスをプロセス中にクラスダウンロードして実行させ前記ユーザインターフェース・クラスを介して前記クラスとの間で通信を行うクライアントマシンとを備えたことにより、柔軟性が高く様々なプログラムを動作させることが可能になる。
【００１４】
請求項４記載の発明は、
請求項１乃至請求項３のいずれかに記載の発明であるシステムにおいて、
前記クラスが、
システムに備えられた機器のリモート診断用のクラスであることにより、機器のリモート診断が可能になる。
【００１５】
請求項５記載の発明は、
請求項１乃至請求項３のいずれかに記載の発明であるシステムにおいて、
前記クラスが、
データ解析表示用のクラスであることにより、データビューアとすることが可能になる。
【００１６】
請求項６記載の発明は、
請求項１乃至請求項３のいずれかに記載の発明であるシステムにおいて、
前記クラスが、
システムの点検クラスであることにより、システム起動点検及び定期点検が可能になる。
【００１７】
請求項７記載の発明は、
請求項１乃至請求項３のいずれかに記載の発明であるシステムにおいて、
前記クラスが、
システムに備えられた各機器に対する指示を行うクラス若しくはシステムに備えられた機器を監視するクラスであることにより、広域監視や異常処理が可能になる。
【００１８】
請求項８記載の発明は、
請求項２若しくは請求項３記載の発明であるシステムにおいて、
前記クライアントマシン及び前記リモートマシンが、
ダウンロードしてきた前記ユーザインターフェース・クラス及び前記クラスと関連情報を記憶するキャッシュを有することにより、ネットワーク上のトラフィック集中を緩和することができる。
【００１９】
請求項９記載の発明は、
請求項８記載の発明であるシステムにおいて、
前記クライアントマシンが、
前記キャッシュに前記ユーザインターフェース・クラスが存在する場合に設定時刻が経過するまで前記キャッシュに記憶された前記ユーザインターフェース・クラスを使用することにより、ネットワーク上のトラフィック集中を緩和することができる。
【００２０】
請求項１０記載の発明は、
請求項９記載の発明であるシステムにおいて、
前記クライアントマシンが、
前記キャッシュに記憶された前記ユーザインターフェース・クラスを使用する場合に前記クラス及び前記ユーザインターフェース・クラスとを管理するサーバを介して前記リモートマシンにその情報を伝えることにより、クライアントマシンとリモートマシンとの間でバージョンの異なる前記ユーザインターフェース・クラス及び前記クラスが起動されることが防止される。
【００２８】
【発明の実施の形態】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るプログラム実行方法を用いたシステムの一実施例を示す構成ブロック図である。図１において５は管理サーバ、６はＷｅｂサーバ、７はクライアントマシン、８及び９はリモートマシンである。
【００２９】
管理サーバ５、Ｗｅｂサーバ６、クライアントマシン７、リモートマシン８及び９は図示しないネットワークにより相互に接続される。
【００３０】
ここで、図１に示す実施例の動作を説明する。管理サーバ５はＷｅｂサーバ６に格納されている図１中”ＷＡ１１”，”ＷＡ１２”及び”ＷＡ１３”に示すプログラムである”Ｗｏｒｋｅｒ（以下、単にＷｏｒｋｅｒと呼ぶ。）”をネットワークを介してリモートマシン８及び９にダウンロードさせる。
【００３１】
これと同時に、Ｗｅｂサーバ６に格納されている図１中”ＷＧ１１”，”ＷＧ１２”及び”ＷＧ１３”に示すＷｏｒｋｅｒと通信をしてユーザからの指示を与えたり、Ｗｏｒｋｅｒからのデータを表示するユーザインターフェース・プログラムである”ＷｏｒｋｅｒＧＵＩ（以下、単にＷｏｒｋｅｒＧＵＩと呼ぶ。）”をクライアントマシン７にダウンロードさせる。
【００３２】
そして、ユーザはクライアントマシン７で動的に実行されるＷｏｒｋｅｒＧＵＩを用いてリモートマシン８及び９で実行されているＷｏｒｋｅｒとの間で通信を行うことにより仮想的にＷｏｒｋｅｒをクライアントマシン７上で実行させることができる。
【００３３】
この結果、クライアントマシン７に使用済みのプログラムファイルが残存せず、リモートマシン８及び９上で実行されているＷｏｒｋｅｒを選択することにより、柔軟性が高く様々なプログラムを動作させることが可能になる。
【００３４】
さらに、図１に示す実施例の動作を図２、図３、図４、図５及び図６を用いて詳細に説明する。図２はＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録等を説明する説明図、図３はクライアントマシン７の動作を説明するフロー図、図４は管理サーバ５の動作を説明するフロー図、図５はリモートマシン８及び９の動作を説明するフロー図である。
【００３５】
但し、以下の説明においては”ＷＧ１１”及び”ＷＡ１１”はプログラム本体ではなくクラスファイルとして取り扱う。
【００３６】
図２において５及び６と”ＷＧ１１”、”ＷＧ１２”、”ＷＧ１３”、”ＷＡ１１”、”ＷＡ１２”及び”ＷＡ１３”は図１と同一符号を付してあり、１０はＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの開発等を行うマシンである。
【００３７】
管理者は、予め、図２中”ＮＲ２１”に示すようにマシン１０で作成したクライアントが使用する可能性のある様々なＷｏｒｋｅｒのクラスを管理サーバ５上で稼動している管理プログラムであるＷｏｒｋｅｒＭａｎａｇｅｒに登録する。また、図２中”ＵＬ２１”に示すようにＷｏｒｋｅｒクラス及び対応するＷｏｒｋｅｒＧＵＩクラスのクラスペアをＷｅｂサーバ６に格納しておく。
【００３８】
先ず第１にクライアントマシン７では、図３中”Ｓ００１”においてクライアントマシン７は管理サーバ５で稼動されているＷｏｒｋｅｒＭａｎａｇｅｒとの間で通信等を行う予めインストールされているプロセスであるＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩを起動する。
【００３９】
図３中”Ｓ００２”においてクライアントマシン７はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩを介してＷｏｒｋｅｒＭａｎａｇｅｒに登録されているＷｏｒｋｅｒクラスから使用したいＷｏｒｋｅｒクラスを選択し、このＷｏｒｋｅｒクラスをクラスダウンロードさせるリモートマシンを選択し、ＷｏｒｋｅｒＭａｎａｇｅｒに生成を依頼する。
【００４０】
例えば、図１中”ＲＱ１１”に示すようにＷｏｒｋｅｒＭａｎａｇｅｒに対して、図１中”ＷＡ１１”及び”ＷＡ１２”のＷｏｒｋｅｒクラスをそれぞれリモートマシン９及び８にクラスダウンロードさせるように選択する。
【００４１】
図３中”Ｓ００３”においてクライアントマシン７は選択したＷｏｒｋｅｒクラスに対応するＷｏｒｋｅｒＧＵＩクラスの格納先であるＷｅｂサーバ６のアドレスをＷｏｒｋｅｒＭａｎａｇｅｒから通知され、このアドレスのＷｅｂサーバ６にアクセスして、ＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードする。
【００４２】
例えば、図１中”ＤＬ１１”に示すようにＷｅｂサーバ６から図１中”ＷＡ１１”及び”ＷＡ１２”にそれぞれ対応する図１中”ＷＧ１１”及び”ＷＧ１２”に示すＷｏｒｋｅｒＧＵＩクラスを図１中”ＷＭＧ１”に示すＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードする。
【００４３】
図３中”Ｓ００４”においてクライアントマシン７はインスタンスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に生成してＷｏｒｋｅｒＧＵＩを起動し、図３中”Ｓ００５”においてリモートマシン上で稼動しているＷｏｒｋｅｒと通信を開始してＷｏｒｋｅｒに対して適宜処理を行わせる。
【００４４】
例えば、図１中”ＭＣ１１”に示すように起動されたＷｏｋｅｒＧＵＩである”ＷＧ１１’”はリモートマシン９上で起動されたＷｏｒｋｅｒである”ＷＡ１１’”との間で通信を行い、図１中”ＭＣ１２”に示すように起動されたＷｏｋｅｒＧＵＩである”ＷＧ１２’”はリモートマシン８上で起動されたＷｏｒｋｅｒである”ＷＡ１２’”との間で通信を行う。
【００４５】
また、管理サーバ５では、図４中”Ｓ１０１”において管理サーバ５はＷｏｒｋｅｒのクラスを管理するＷｏｒｋｅｒＭａｎａｇｅｒを起動する。そして、図４中”Ｓ１０２”においてクライアントマシン７で稼動しているＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからＷｏｒｋｅｒの生成依頼があったか否かを判断する。
【００４６】
もし、図４中”Ｓ１０２”においてＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからＷｏｒｋｅｒの生成依頼があった場合には、図４中”Ｓ１０３”において管理サーバ５はＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩからクラスダウンロード先として指定されたリモートマシンに選択されたＷｏｒｋｅｒの生成を指示する。
【００４７】
例えば、図１中”ＩＷ１１”及び”ＩＷ１２”に示すようにリモートマシン９及び８に対してクラスダウンロードすべきＷｏｒｋｅｒクラス名と当該Ｗｏｒｋｅｒクラスの格納先であるＷｅｂサーバ６のアドレスを通知する。
【００４８】
図４中”Ｓ１０４”において管理サーバ５は選択されたＷｏｒｋｅｒクラスに対応するＷｏｋｅｒＧＵＩクラスの格納先であるＷｅｂサーバ６のアドレスを通知する。
【００４９】
最後に、リモートマシン８及び９では、図５中”Ｓ２０１”においてＷｏｒｋｅｒの動作領域を提供するプロセスであるＷｏｒｋｅｒＳｐａｃｅを起動させる。例えば、リモートマシン９は図１中”ＷＳ１１”に示すようなＷｏｒｋｅｒＳｐａｃｅを起動し、リモートマシン８は図１中”ＷＳ１２”に示すようなＷｏｒｋｅｒＳｐａｃｅを起動する。
【００５０】
そして、図５中”Ｓ２０２”においてリモートマシン８及び９はＷｏｒｋｅｒＭａｎａｇｅｒからＷｏｒｋｅｒの生成指示があったか否かを判断し、Ｗｏｒｋｅｒの生成指示があった場合には図５中”Ｓ２０３”において指定されたＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にクラスダウンロードする。
【００５１】
例えば、ＷｏｒｋｅｒＭａｎａｇｅｒからクラスダウンロードすべきＷｏｒｋｅｒクラス名と当該Ｗｏｒｋｅｒクラスの格納先であるＷｅｂサーバ６のアドレスが通知され、図１中”ＷＡ１１”及び”ＷＡ１２”のＷｏｒｋｅｒクラスをそれぞれリモートマシン９及び８にクラスダウンロードするように指示された場合を考える。
【００５２】
リモートマシン９では図１中”ＤＬ１２”に示すようにＷｅｂサーバ６から図１中”ＷＡ１１”に示すＷｏｒｋｅｒクラスを図１中”ＷＳ１１”に示すＷｏｒｋｅｒＳｐａｃｅにクラスダウンロードする。
【００５３】
同様に、リモートマシン８では図１中”ＤＬ１３”に示すようにＷｅｂサーバ６から図１中”ＷＡ１２”に示すＷｏｒｋｅｒクラスを図１中”ＷＳ１２”に示すＷｏｒｋｅｒＳｐａｃｅにクラスダウンロードする。
【００５４】
そして、図５中”Ｓ２０４”においてリモートマシン８及び９はインスタンスをＷｏｒｋｅｒＳｐａｃｅ内にそれぞれ生成してそれぞれのＷｏｒｋｅｒを起動し、図５中”Ｓ２０５”においてクライアントマシン７上で稼動しているＷｏｒｋｅｒＧＵＩと通信を開始する。
【００５５】
例えば、図１中”ＭＣ１１”に示すようにリモートマシン９上の起動されたＷｏｒｋｅｒである”ＷＡ１１’”はクライアントマシン７上の起動された一方のＷｏｋｅｒＧＵＩである”ＷＧ１１’”との間で通信を行い、図１中”ＭＣ１２”に示すようにリモートマシン８上の起動されたＷｏｒｋｅｒである”ＷＡ１２’”はクライアントマシン７上の起動された他方のＷｏｋｅｒＧＵＩである”ＷＧ１２’”との間で通信を行う。
【００５６】
すなわち、リモートマシン上でＷｏｒｋｅｒＳｐａｃｅを動作させることにより、様々な種類のＷｏｒｋｅｒクラスを動的にクラスダウンロードしてＷｏｒｋｅｒを起動できるために、いちいちリモートマシン上に様々なプログラムをインストールする必要性がなくなる。
【００５７】
また、クライアントマシン７にはＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩのみをインストールしておけば動的に様々なＷｏｒｋｅｒＧＵＩクラスをクラスダウンロードしてリモートマシン上で稼動するＷｏｒｋｅｒと通信ができるので柔軟性が高く様々なプログラムをリモートで動作させることが可能になる。
【００５８】
さらに、ＷｏｒｋｅｒＭａｎａｇｅｒによりＷｏｒｋｅｒクラスと対応するＷｏｒｋｅｒＧＵＩクラスが対になって管理されているために、リモートマシンとクライアントマシンとの間のバージョンの整合性が保証される。
【００５９】
また、図１に示す実施例の応用例としては以下に示すようなものが考えられる。
（１）機器のリモート診断
（２）データビューア
（３）プログラムの自動配信
（４）システム起動点検及び定期点検
（５）広域監視、異常処理
【００６０】
「（１）機器のリモート診断」に関しては、機器にＷｏｒｋｅｒＳｐａｃｅを動作させるコンピュータ等を接続し、リモート診断用の様々なＷｏｒｋｅｒを用意する。ユーザは機器の異常に対応したＷｏｒｋｅｒを前記コンピュータ等にダウンロードさせて機器の診断を行うことが可能になる。
【００６１】
この場合には、リモート側のコンピュータ等に様々な診断用プログラムをインストール等しておく必要性はなく、必要時にのみＷｏｒｋｅｒをダウンロードさせてリモート診断が可能になる。言い換えれば、ロースペックのコンピュータで充分診断が可能になる。
【００６２】
また、別途新たな診断用Ｗｏｒｋｅｒを開発した場合であっても既存の環境のままで使用可能である。さらに、機器が離散して設置されている場合であってもこれらの機器を１台のコンピュータに接続すれば一括でリモート診断が可能になる。
【００６３】
「（２）データビューア」に関しては、リモート側のデータベースに接続されＷｏｒｋｅｒＳｐａｃｅを動作させるコンピュータ等を設け、データ解析表示用の様々なＷｏｒｋｅｒを用意する。ユーザは機器の表示させたい形式を満足するＷｏｒｋｅｒを前記コンピュータ等にダウンロードさせて所望の形式でデータを引き出すことが可能になる。
【００６４】
この場合でも、リモート側のコンピュータ等に様々なデータ解析プログラムをインストール等しておく必要性はなく、必要時にのみＷｏｒｋｅｒをダウンロードさせて所望の形式でデータを引き出すことが可能になる。言い換えれば、ロースペックのコンピュータで充分診断が可能になる。また、別途新たなデータ解析表示用Ｗｏｒｋｅｒを開発した場合であっても既存の環境のままで使用可能である。
【００６５】
「（３）プログラムの自動配信」に関しては、ユーザに配信するＷｏｒｋｅｒ自体に動作期限を設定することにより、一定期間動作するＷｏｒｋｅｒをユーザに配信することができる。また、ＷｏｒｋｅｒＭａｎａｇｅｒに契約ユーザ情報を持たせることにより契約ユーザにのみＷｏｒｋｅｒを配信することが可能になる。
【００６６】
また、図６はこのようなプログラム配信の一例を示す構成ブロック図である。図６において５ａは管理サーバ、６ａはＷｅｂサーバ、１０ａは開発用等のマシン、１１は宣伝用のＷｅｂサーバ、１２及び１３はクライアントマシンである。５２は開発会社、５３はＷｏｒｋｅｒ管理センター、５４及び５５はユーザをそれぞれ示している。
【００６７】
管理サーバ５ａ、Ｗｅｂサーバ６ａ及び１１、クライアントマシン１２及び１３は図示しないネットワークにより相互に接続される。
【００６８】
ここで、図６に示す応用例の説明をする。但し、図１での説明と重複する部分の説明に関しては説明を省略する。開発会社５２で開発されたＷｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩは図６中”ＵＬ２１”及び”ＮＲ３１”に示すようにＷｏｒｋｅｒ管理センター５３のＷｅｂサーバ６ａに格納されると共に、管理サーバ５ａ上で動作するＷｏｒｋｅｒＭａｎａｇｅｒに登録される。
【００６９】
一方、開発会社５２の宣伝用Ｗｅｂサーバ１１には開発されたＷｏｒｋｅｒの仕様及びＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩが公開され、興味を持ったユーザは適宜ＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩをダウンロードしてユーザのクライアントマシンにインストールして起動する。
【００７０】
そして、Ｗｏｒｋｅｒ管理センター５３の管理サーバ５ａにアクセスしてＷｏｒｋｅｒＧＵＩクラスをクラスダウンロードし、リモートマシン上で起動されたＷｏｒｋｅｒを使用する。
【００７１】
例えば、ユーザ５５はＷｅｂサーバ１１から図６中”ＷＭＧ２”に示すＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩをクライアントマシン１３にダウンロードし、インストールして起動する。そして、Ｗｏｒｋｅｒ管理センター５３の管理サーバ５ａにアクセスして図６中”ＷＧ３１”及び”ＷＡ３１”に示すＷｏｒｋｅｒＧＵＩ及びＷｏｒｋｅｒをダウンロードして使用する。
【００７２】
また、例えば、ユーザ５５はＷｅｂサーバ１１から図６中”ＷＭＧ２”に示すＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩをクライアントマシン１３にダウンロードし、インストールして起動する。そして、Ｗｏｒｋｅｒ管理センター５３の管理サーバ５ａにアクセスして図６中”ＷＧ３１”に示すＷｏｒｋｅｒＧＵＩのみをダウンロードしてリモートマシン上で起動されたＷｏｒｋｅｒを使用することも可能である。
【００７３】
この場合、ユーザが当該プログラムを使用中であってもＷｏｒｋｅｒ管理センター５３の管理サーバ５ａに格納されている図６中”ＷＧ３１”及び”ＷＡ３１”等に示すＷｏｒｋｅｒＧＵＩ及びＷｏｒｋｅｒを随時アップデートすることが可能になるので、ユーザが使用中でもアップデート等の保守作業が可能になる。
【００７４】
一方、ユーザは図６中”ＷＧ３１”等に示すＷｏｒｋｅｒＧＵＩのみをダウンロードする際に常に最新のプログラムを利用することが可能になる。
【００７５】
さらに、後述のようなシステムにおいては起動時にＷｏｒｋｅｒＧＵＩをダウンロードするために、多くのユーザが同時にダウンロードを行うとした場合には、ネットワーク上のトラフィックが増大してしまうと言った問題点がある。
【００７６】
例えば、このシステムを銀行の自動金銭出納器（ＡＴＭ：Ａｕｔｏｍａｔｅｄ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）に適用した場合には業務開始時間に一斉にＷｏｒｋｅｒＧＵＩをダウンロードが発生してしまう。
【００７７】
この場合、クライアントマシンにダウンロード許可時刻を示す”ＲｅｌｏａｄＩＤ”を設定すると共にダウンロードしてきたＷｏｒｋｅｒＧＵＩクラス、クラス名及びＷｏｒｋｅｒＧＵＩクラスの格納先情報を格納するキャッシュを設ける。
【００７８】
例えば、”ＲｅｌｏａｄＩＤ”としては”１０：３０”，”１１：３０”及び”１２：３０”と言ったような時刻を設定しネットワーク上のトラフィックを分散させるように平均的に分散させて設定する。勿論、設定時刻の重複があっても構わない。
【００７９】
一方、選択されたＷｏｒｋｅｒが実行されるリモートマシンにはダウンロードしてきたＷｏｒｋｅｒクラス、クラス名及びＷｏｒｋｅｒクラスの格納先情報を格納するキャッシュを設ける。
【００８０】
そして、クライアントマシン及びリモートマシンはＷｏｒｋｅｒＧＵＩクラス及びＷｏｒｋｅｒクラスをダウンロードした時点で上記情報等を各々のキャッシュに格納する。
【００８１】
ここで、クライアントマシンとリモートマシンの動作を図７及び図８を用いて説明する。図７はクライアントマシンの動作を説明するフロー図、図８はリモートマシンの動作を説明するフロー図である。但し、基本的な動作に関しては既に説明済みであるのでその部分の説明は省略する。
【００８２】
図７中”Ｓ３０１”においてクライントマシンは使用するＷｏｒｋｅｒを選択する。この時、図７中”Ｓ３０２”においてクライントマシンのキャッシュに当該選択したＷｏｒｋｅｒに対応するＷｏｒｋｅｒＧＵＩクラスが格納されているか否かを判断する。
【００８３】
もし、クライアントマシンのキャッシュ内にＷｏｒｋｅｒＧＵＩが存在する場合には、図７中”Ｓ３０３”においてクライントマシンは自己に設定されている”ＲｅｌｏａｄＩＤ”と現在の時刻を比較して現在の時刻が”ＲｅｌｏａｄＩＤ”の設定時刻を経過しているか否かを判断する。
【００８４】
もし、現在の時刻が”ＲｅｌｏａｄＩＤ”の設定時刻を経過していない場合には、図７中”Ｓ３０４”においてクライアントマシンはキャッシュに格納されているＷｏｒｋｅｒＧＵＩの格納先情報をＷｏｒｋｅｒＭａｎａｇｅｒに伝える。
【００８５】
ＷｏｒｋｅｒＭａｎａｇｅｒはリモートマシンにＷｏｒｋｅｒの生成依頼をする場合にクライントマシンから得られたＷｏｒｋｅｒＧＵＩの格納先情報に対応するＷｏｒｋｅｒの格納先をリモートマシンに伝える。
【００８６】
そして、図７中”Ｓ３０５”においてクライアントマシンはキャッシュ内のＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にコピーする。
【００８７】
一方、図７中”Ｓ３０２”においてクライアントマシンのキャッシュ内にＷｏｒｋｅｒＧＵＩが存在しない場合、及び、図７中”Ｓ３０３”において”ＲｅｌｏａｄＩＤ”の設定時刻を経過している場合には、図７中”Ｓ３０６”においてクライアントマシンはＷｏｒｋｅｒＧＵＩクラスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内にクラスダウンロードする。
【００８８】
最後に、図７中”Ｓ３０７”においてクライアントマシンはインスタンスをＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩ内に生成してＷｏｒｋｅｒＧＵＩを起動する。
【００８９】
一方、図８中”Ｓ４０１”においてリモートマシンはＷｏｋｅｒＭａｎａｇｅｒからのＷｏｋｅｒの生成指示があったか否かを判断し、Ｗｏｒｋｅｒの生成指示があった場合には図８中”Ｓ４０２”においてリモートマシンのキャッシュ内に生成指示されたＷｏｒｋｅｒクラスが格納されているか否かを判断する。
【００９０】
もし、リモートマシンのキャッシュ内に生成指示されたＷｏｒｋｅｒが存在する場合には、図８中”Ｓ４０３”においてリモートマシンはキャッシュ内のＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にコピーする。
【００９１】
もし、リモートマシンのキャッシュ内に生成指示されたＷｏｒｋｅｒが存在しない場合には、図８中”Ｓ４０４”においてリモートマシンはＷｏｒｋｅｒクラスをＷｏｒｋｅｒＳｐａｃｅ内にクラスダウンロードする。
【００９２】
最後に、図８中”Ｓ４０５”においてリモートマシンはインスタンスをＷｏｒｋｅｒＳｐａｃｅ内に生成してＷｏｒｋｅｒを起動する。
【００９３】
すなわち、クライアントマシンにおいてはキャッシュに使用するＷｏｒｋｅｒに対応するＷｏｒｋｅｒＧＵＩクラスが格納さており、且つ、”ＲｅｌｏａｄＩＤ”の設定時刻が経過するまでは格納されているＷｏｒｋｅｒＧＵＩを使用することにより、ネットワーク上のトラフィック集中を緩和することができる。
【００９４】
同様に、リモートマシンにおいてはキャッシュに生成し辞されたＷｏｒｋｅｒクラスが格納されている場合にはこのＷｏｒｋｅｒを使用することにより、ネットワーク上のトラフィック集中を緩和することができる。
【００９５】
また、Ｗｅｂサーバ上のＷｏｒｋｅｒＧＵＩ及びＷｏｒｋｅｒがバージョンアップされた場合でも、クライアントマシンにおいてキャッシュ内のＷｏｒｋｅｒＧＵＩを用いる旨がＷｏｒｋｅｒＭａｎａｇｅｒによりリモートマシンに伝達されるのでクライアントマシンとリモートマシンとの間でバージョンの異なるＷｏｒｋｅｒＧＵＩ及びＷｏｒｋｅｒが起動されることが防止される。
【００９６】
「（４）システム起動点検及び定期点検」に関しては、システム上でＷｏｒｋｅｒＳｐａｃｅを動作させ、システム起動時にのみ必要な点検プログラムや通常運転では使用されない定期点検プログラムをＷｏｒｋｅｒとして用意する。
【００９７】
この場合でも、システム側に様々な点検プログラムをインストール等しておく必要性はなく、必要時にのみＷｏｒｋｅｒをダウンロードさせて指定の点検を行うことが可能になる。また、別途新たな点検用Ｗｏｒｋｅｒを開発した場合であっても既存の環境のままで使用可能である。
【００９８】
「（５）広域監視、異常処理」に関しては、広域監視やＩＴＳ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｔｒａｎｓｐｏｒｔａｔｉｏｎ  Ｓｙｓｔｅｍｓ）の分野においてはＪａｖａを動作させることが可能なセンサ機器やアクチュエータ機器若しくはこのような機器とのインターフェースを有するＪａｖａが動作可能な機器等を広域配置する。一方、各機器に対する指示を行うＷｏｒｋｅｒや機器を監視するＷｏｒｋｅｒを用意する。
【００９９】
そして、監視者は必要に応じてＷｏｒｋｅｒを各機器にダウンロードさせて監視や指示をリモートで行うことが可能になる。
【０１００】
なお、図１に示す実施例では説明の簡単のために、ＷｏｒｋｅｒＭａｎａｇｅｒが動作する管理サーバ５と、Ｗｏｒｋｅｒクラス及びＷｏｒｋｅｒＧＵＩクラスが格納されるＷｅｂサーバ６と、ＷｏｒｋｅｒＳｐａｃｅが動作するリモートマシン８及び９を個々に分けているがネットワークのトラフィックやマシンスペックの諸条件が許せば全ての役割を１台のマシンに集約したり、役割を統合しても構わない。
【０１０１】
例えば、管理サーバ５とＷｅｂサーバ６を統合したり、Ｗｅｂサーバ６とリモートマシン８及び９とを統合しても構わない。
【０１０２】
また、図１に示す実施例ではＷｏｒｋｅｒクラスとＷｏｒｋｅｒＧＵＩクラスとが一対一のペアとして記載されているが勿論これに限定されるものではない。例えば、１つのＷｏｒｋｅｒクラスに対して複数のＷｏｒｋｅｒＧＵＩクラスを用意することにより、クライアントマシンのスペックに対応したＧＵＩを適宜選択できるの柔軟性が向上する。
【０１０３】
【発明の効果】
以上説明したことから明らかなように、本発明によれば次のような効果がある。請求項１，２及び請求項３の発明によれば、リモートマシン上でＷｏｒｋｅｒＳｐａｃｅを動作させることにより、様々な種類のＷｏｒｋｅｒクラスを動的にクラスダウンロードしてＷｏｒｋｅｒを起動できるために、いちいちリモートマシン上に様々なプログラムをインストールする必要性がなくなる。
【０１０４】
また、クライアントマシンにはＷｏｒｋｅｒＭａｎａｇｅｒＧＵＩのみをインストールしておけば動的に様々なＷｏｒｋｅｒＧＵＩクラスをクラスダウンロードしてリモートマシン上で稼動するＷｏｒｋｅｒと通信ができるので柔軟性が高く様々なプログラムをリモートで動作させることが可能になる。
【０１０５】
さらに、ＷｏｒｋｅｒＭａｎａｇｅｒによりＷｏｒｋｅｒクラスと対応するＷｏｒｋｅｒＧＵＩクラスが対になって管理されているために、リモートマシンとクライアントマシンとの間のバージョンの整合性が保証される。
【０１０８】
また、請求項４乃至請求項７の発明によれば、プログラムの種類を適宜選択することにより、機器のリモート診断、データビューア、プログラムの自動配信、システム起動点検及び定期点検及び広域監視、異常処理等の処理等が可能になる。
【０１０９】
また、請求項８及び請求項９の発明によれば、クライアントマシン及びリモートマシンが、ダウンロードしてきたユーザインターフェース・クラス及びクラスと関連情報を記憶するキャッシュを設け設定時刻が経過するまで前記キャッシュに記憶された前記ユーザインターフェース・プログラムを使用することにより、ネットワーク上のトラフィック集中を緩和することができる。
【０１１０】
また、請求項１０の発明によれば、クライアントマシンが、キャッシュに記憶されたユーザインターフェース・クラスをプログラム等を管理するサーバを介してリモートマシンにその情報を伝えることにより、クライアントマシンとリモートマシンとの間でバージョンの異なる前記ユーザインターフェース・クラス及び前記クラスが起動されることが防止される。
【図面の簡単な説明】
【図１】本発明に係るプログラム実行方法を用いたシステムの一実施例を示す構成ブロック図である。
【図２】Ｗｏｒｋｅｒ及びＷｏｒｋｅｒＧＵＩの登録等を説明する説明図である。
【図３】クライアントマシンの動作を説明するフロー図である。
【図４】管理サーバの動作を説明するフロー図である。
【図５】リモートマシンの動作を説明するフロー図である。
【図６】プログラム配信の一例を示す構成ブロック図である。
【図７】クライアントマシンの動作を説明するフロー図である。
【図８】リモートマシンの動作を説明するフロー図である。
【図９】Ｊａｖａアプレットを用いたプログラム動作方法の一例を示す構成ブロック図である。
【符号の説明】
１，６，６ａ，１１  Ｗｅｂサーバ
２，４，１０，１０ａ  マシン
３，７，１２，１３  クライアントマシン
５，５ａ  管理サーバ
８，９  リモートマシン
５０  サーバサイト
５１  クライアントサイト
５２  開発会社
５３  Ｗｏｒｋｅｒ管理センター
５４，５５  ユーザ
【図１】
0003577714.tif 000002
【図２】
0003577714.tif 000003
【図３】
0003577714.tif 000004
【図４】
0003577714.tif 000005
【図５】
0003577714.tif 000006
【図６】
0003577714.tif 000007
【図７】
0003577714.tif 000008
【図８】
0003577714.tif 000009
【図９】
0003577714.tif 000010