(57)【要約】【課題】ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理する方法を提供する。【解決手段】本発明に従う方法は、管理要求を受信するステップと、識別ファイル及び修正ファイルを保存するステップと、管理要求の受信に応答して、管理エージェントにより識別ファイルにアクセスするステップと、インターフェースを介して、管理エージェントと、選択された非汎用コンピュータデバイスの対応する配備エージェントとの間の通信を確立するステップと、対応する配備エージェントを介して選択された非汎用コンピュータデバイスの夫々から状態表示を受信するステップと、予め開始されている管理要求を処理する状態を現在示している配備エージェントによる修正パッケージの送信を遅延させるステップと、利用可能状態を現在示している配備エージェントによる修正パッケージの送信を開始するステップとを有する。【選択図】図３
2008123518.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理するためのサーバであって、
前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルと、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージとを含む管理要求を受信するよう前記ネットワークへ動作的に接続されたインターフェースと、
前記識別ファイル及び前記修正パッケージを保存するよう構成されたメモリと、
前記管理要求に応答して、前記識別ファイルにアクセスし、前記インターフェースを介して前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの通信を確立して、前記対応する配備エージェントへのインストールのための前記修正パッケージのネットワーク送信について交渉し、該送信を、与えられた状態表示を基に前記配備エージェントのうちの選択された配備エージェントにより開始する管理エージェントとを有し、
前記修正パッケージの送信は、予め開始されている管理要求を処理する状態を現在示している配備エージェントにより開始されず、送信は、利用可能状態を現在示している配備エージェントにより開始されるサーバ。
【請求項２】
前記インターフェースは、前記管理要求を受信するためのウェブベースのフロントエンドを含む、請求項１記載のサーバ。
【請求項３】
前記識別ファイルは、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスのＩＰアドレスを含む、請求項１記載のサーバ。
【請求項４】
前記修正パッケージは圧縮ファイルである、請求項１記載のサーバ。
【請求項５】
前記管理エージェントは、前記修正パッケージに対応するブートスクリプトを構築するよう前記修正パッケージを解凍し、インストールのための前記非汎用コンピュータデバイスへの送信のために前記ブートスクリプトを含むよう前記修正パッケージを再圧縮する、請求項４記載のサーバ。
【請求項６】
前記管理要求は、ＨＴＴＰポストとして前記クライアントデバイスから供給される、請求項２記載のサーバ。
【請求項７】
前記管理エージェントは、当該サーバのＪａｖａプラットフォームで実行する、請求項１記載のサーバ。
【請求項８】
前記配備エージェントは、当該サーバのＨＴＴＰ通信に応答するＪａｖａサーブレットアプリケーションである、請求項７記載のサーバ。
【請求項９】
ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理するための配信ノードであって、
前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルと、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージとを含む管理要求を受信するよう前記ネットワークへ動作的に接続されたグラフィック・ユーザインターフェースと、
前記識別ファイル及び前記修正パッケージを保存するよう構成されたメモリと、
前記管理要求に応答して、前記識別ファイルにアクセスし、前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの通信を確立して、前記対応する配備エージェントへの前記修正パッケージのネットワーク送信について交渉して実行し、該送信を、前記対応する配備エージェントへ前記修正パッケージをインストールするよう、与えられた状態表示を基に前記配備エージェントのうちの選択された配備エージェントにより開始する管理手段とを有し、
前記修正パッケージの送信は、予め開始されている管理要求を処理する状態を現在示している配備エージェントにより開始されず、送信は、利用可能状態を現在示している配備エージェントにより開始されるサーバ。
【請求項１０】
前記修正パッケージは圧縮ファイルである、請求項９記載のノード。
【請求項１１】
前記管理手段は、前記修正パッケージに対応するブートスクリプトを構築するよう前記修正パッケージを解凍し、インストールのための前記配備エージェントへの送信のために前記ブートスクリプトを含むよう前記修正パッケージを再圧縮する、請求項１０記載のノード。
【請求項１２】
ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理する方法であって、
前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルと、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージとを含む管理要求を受信するステップと、
前記識別ファイル及び前記修正パッケージを保存するステップと、
前記管理要求の受信に応答して、管理エージェントにより前記識別ファイルにアクセスするステップと、
インターフェースを介して、前記管理エージェントと、前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの間の通信を確立するステップと、
前記対応する配備エージェントを介して前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの夫々から状態表示を受信するステップと、
予め開始されている管理要求を処理する状態を現在示している配備エージェントによる前記修正パッケージの送信を遅延させるステップと、
利用可能状態を現在示している配備エージェントによる前記修正パッケージの送信を開始するステップとを有する方法。
【請求項１３】
前記インターフェースは、前記管理要求を受信するためのウェブベースのフロントエンドを含む、請求項１２記載の方法。
【請求項１４】
前記識別ファイルは、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスのＩＰアドレスを含む、請求項１２記載の方法。
【請求項１５】
前記修正パッケージは圧縮ファイルである、請求項１２記載の方法。
【請求項１６】
前記修正パッケージを解凍するステップと、
前記修正パッケージに対応するブートスクリプトを構築するステップと、
前記ブートスクリプトを含むよう前記修正パッケージを再圧縮するステップと、
インストールのための前記非汎用コンピュータデバイスへ前記再圧縮された修正パッケージを送信するステップとを更に有する、請求項１５記載の方法。
【請求項１７】
前記管理要求は、ＨＴＴＰポストとして前記クライアントデバイスから供給される、請求項１３記載の方法。
【請求項１８】
前記管理要求は、サーバのＪａｖａプラットフォームで実行する、請求項１２記載の方法。
【請求項１９】
前記配備エージェントは、前記管理エージェントのＨＴＴＰ通信に応答するＪａｖａサーブレットアプリケーションである、請求項１８記載の方法。
【請求項２０】
前記修正パッケージは、インストール時に、前記複数の非汎用コンピュータデバイスで実行コードのインストールを引き起こす、請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行コードを配備する遠隔配信／インストール・ユーティリティ及び関連する方法に関する。
【背景技術】
【０００２】
また、留意すべきは、ここで与えられる「背景技術」の記載は、概して本発明の背景を提示する目的のためである点である。この背景技術の項目で記載される範囲での目下示されている発明者の研究及び、他の点で出願時に先行技術としては考えられない本明細書の態様は、明示的に又は暗に、本願発明に対する先行技術としては認められない。
【０００３】
多機能印刷装置（ＭＦＰ）で、ソフトウェアのアップデートは、新しい、且つ／あるいは、改正されたベンダー特性を装置へ配信するために用いられる。この処理の効率を上げるために、ユーザが直接的にＭＦＰとやり取りし、遠隔でプログラムをＭＦＰへ与えることを可能にするシステムが開発された。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ネットワークを介してＭＦＰへ接続する場合に、ＭＦＰの現在のバージョン、状態及び以前のアップデートに関する判断が問題となる。
【０００５】
更に、一旦ユーザがＭＦＰにプログラムをインストールすると、プログラムが正しくインストールされたか又は、プロセスに誤りはなかったかを判断することが困難であった。
【課題を解決するための手段】
【０００６】
とりわけ、本発明は、ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理するためのサーバを提供する。当該サーバは、前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルを含む管理要求を受信するよう前記ネットワークへ動作的に接続されたインターフェースを有する。前記管理要求は、また、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージを含む。当該サーバは、前記識別ファイル及び前記修正パッケージを保存するよう構成されたメモリを更に有する。管理エージェントは、前記管理要求に応答して、前記識別ファイルにアクセスし、前記インターフェースを介して前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの通信を確立して、前記対応する配備エージェントへのインストールのための前記修正パッケージのネットワーク送信について交渉する。前記送信は、与えられた状態表示を基に前記配備エージェントのうちの選択された配備エージェントにより開始される。前記修正パッケージの送信は、予め開始されている管理要求を処理する状態を現在示している配備エージェントにより開始されず、送信は、利用可能状態を現在示している配備エージェントにより開始される。
【０００７】
配信ノードは、ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理する。当該ノードは、前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイル含む管理要求を受信するよう前記ネットワークへ動作的に接続されたグラフィック・ユーザインターフェースを有する。前記管理要求は、また、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージを含む。当該ノードは、前記識別ファイル及び前記修正パッケージを保存するよう構成されたメモリを更に有する。当該ノードは、前記識別ファイルにアクセスし、前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの通信を確立する管理手段を更に有する。前記管理手段は、前記管理要求に応答して動作し、前記対応する配備エージェントへの前記修正パッケージのネットワーク送信について交渉して実行する。前記送信は、前記対応する配備エージェントへ前記修正パッケージをインストールするよう、与えられた状態表示を基に前記配備エージェントのうちの選択された配備エージェントにより開始される。前記修正パッケージの送信は、予め開始されている管理要求を処理する状態を現在示している配備エージェントにより開始されず、送信は、利用可能状態を現在示している配備エージェントにより開始される。
【０００８】
ネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理する方法が提供される。当該方法は、前記複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルと、前記複数の非汎用コンピュータデバイスの前記選択された非汎用コンピュータデバイスへの配信のための修正パッケージとを含む管理要求を受信するステップを有する。当該方法は、また、前記識別ファイル及び前記修正パッケージを保存するステップと、前記管理要求の受信に応答して、管理エージェントにより前記識別ファイルにアクセスするステップとを有する。インターフェースを介して、前記管理エージェントと、前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの対応する配備エージェントとの間の通信を確立するステップと、前記対応する配備エージェントを介して前記複数の非汎用コンピュータデバイスのうちの前記選択された非汎用コンピュータデバイスの夫々から状態表示を受信するステップとが、また、当該方法に含まれる。最後に、予め開始されている管理要求を処理する状態を現在示している配備エージェントによる前記修正パッケージの送信を遅延させるステップと、利用可能状態を現在示している配備エージェントによる前記修正パッケージの送信を開始するステップとが、当該方法に含まれる。
【０００９】
当然のことながら、本発明の前出の概要及び以下の詳細な記載は、両方とも、本発明を説明するものであり、限定するものではない。
【発明の効果】
【００１０】
本発明により、ネットワークを介してＭＦＰへ接続する場合に従来問題であったＭＦＰの現在のバージョン、状態及び以前のアップデートに関する判断が可能となる。
【００１１】
更に、本発明により、ユーザがＭＦＰにプログラムをインストールした場合に、プログラムが正しくインストールされたか又は、プロセスに誤りはなかったかを判断することが可能となる。
【発明を実施するための最良の形態】
【００１２】
本発明の他の目的、特徴及び利点は、添付の図面に関連して読まれる場合に、以下の詳細な記載からより明らかになるであろう。
【００１３】
本発明は、１つには、通信ネットワークであるネットワークを介して複数の非汎用コンピュータデバイスのソフトウェア機能を動的に管理するためのサーバに関する。通信ネットワークは、一般に、例えばインターネットのようなＷＡＮである。しかし、ＬＡＮ又はアドホック（ａｄ−ｈｏｃ）を含め、如何なる形式のネットワークが利用されても良く、また、例えば、有線、無線、光、又はいずれかの適切な媒体のような物理的なネットワーク媒体を使用しても良い。
【００１４】
当該サーバは、複数の非汎用コンピュータデバイスのうちの選択された非汎用コンピュータデバイスを示すクライアントデバイスの識別ファイルを含む管理要求を受信するようネットワークへ動作的に接続されたインターフェースを有する。管理要求は、また、複数の非汎用コンピュータデバイスの中から選択された非汎用コンピュータデバイスへの配信のための修正パッケージを含む。
【００１５】
当該サーバは、識別ファイル及び修正パッケージを保存するよう構成されたメモリを更に有する。このメモリは、いずれかの適切な揮発性、不揮発性、ダイナミックメモリ、又は、例えば、ＭＭＣ、ＵＳＢキードライブ、スマートメディア、コンパクトフラッシュ(登録商標)Ｉ及びＩＩ、セキュアデジタル、ソニー（登録商標）メモリスティック若しくはいずれかの適切なソリッドステートディスクのようなフラッシュメモリを含む。
【００１６】
管理エージェントは、複数の非汎用コンピュータデバイスの中から選択された非汎用コンピュータデバイスの対応する配備エージェントへのインストールのための修正パッケージのネットワーク送信について交渉するために、管理要求に応答して識別ファイルにアクセスし、インターフェースを介して対応する配備エージェントとの通信を確立する。
【００１７】
修正パッケージの送信は、与えられた状態表示を基に、複数の配備エージェントの中から選択された配備エージェントにより開始されるが、前に開始されていた管理要求の処理状態を現在示している配備エージェントによっては開始されず、利用可能状態を現在示している配備エージェントにより開始される。
【００１８】
ここで、図面を参照する。図面において、同じ参照番号は、幾つかの図に亘って、より具体的にはそのうちの図１と同一の又は対応する部分を示しており、実行コードを配備する遠隔配信／インストール・ユーティリティ及び関連する方法が表されている。図１には、第１のクライアント１と、第２のクライアント２と、アプリケーションサーバ３と、幾つかの多機能プリンタ（ＭＦＰ）４ａ．．．ｎが示されている。夫々のクライアント（１，２）は、通信ネットワークを介してアプリケーションサーバ３へ接続し、アプリケーションサーバ３は、通信ネットワークを介して夫々のＭＦＰ４ａ．．．ｎへ接続する。先に述べられたように、通信ネットワークは、ローカルＬＡＮ、ＷＡＮ、インターネット又は如何なる望ましい形式の通信ネットワークであっても良い。更に、通信媒体は、例えば、有線、無線、光、又はいずれかの他の適切な媒体など、物理的なネットワーク媒体を使用しても良い。
【００１９】
クライアント（１，２）は、ユーザが通信ネットワークを介してサーバと対話することを可能にするクライアントインターフェースを有するＰＣ又はいずれかの他の形式の装置に相当する。望ましくは、アプリケーションサーバ３は、ｈｔｔｐを介してアクセスされるウェブサーバであるが、アプリケーションサーバ３は、クライアントがアプリケーションサーバ３のハードウェアとインターフェース接続されることを可能にするいずれかのサーバ装置又はソフトウェアであっても良い。
【００２０】
夫々のＭＦＰ４ａ．．．ｎは、例えばＩＰアドレス又はホスト名のような固有識別子を有する多機能プリンタに相当し、図１に示されるように、第１のＭＦＰ４ａはＩＰアドレス１９２．１６８．．ｘ．１を有する。しかし、例えばＭＦＰ１のようなホスト名が使用されても良い。ＭＦＰは、例えば、スキャン、印刷及び／又はファクシミリのような多数の機能を有するいずれかのプリンタ又はコピー機である。更に、スキャン及び印刷は個別の機能であるが、前出のＭＦＰは単一のステップで文書をスキャンして印刷するコピー機を含んでも良い。更に、ＭＦＰは、如何なる非汎用コンピュータデバイスであっても良い。
【００２１】
図２は、アプリケーションサーバ３と夫々のＭＦＰ４ａ．．．ｎとの間の関係を示す。アプリケーションサーバ３は、ＲｅｍＩｎｓｔａｌｌと題されたプログラム５に対応するインストールされたウェブサーバを有する。ＲｅｍＩｎｓｔａｌｌプログラム５は、夫々のＭＦＰ４ａ．．．ｎにインストールされているＲｉＤｅｐｌｏｙ  Ａｇｅｎｔと題されたプログラム６と通信する。
【００２２】
先に述べられたように、アプリケーションサーバ３は、例となる実施形態でアパッチ（Ａｐａｃｈｅ）／トムキャット（Ｔｏｍｃｈａｔ）サーバであるウェブサーバを有する。トムキャットサーバは、サンマイクロシステム社のサーブレット（ｓｅｒｖｌｅｔ）及びＪａｖａ(登録商標)サーバページ（ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅ；ＪＳＰ）を実施するオープンソースなウェブサーバプラットフォームである。トムキャットサーバは、環境有効化（ｅｎｖｉｒｏｎｍｅｎｔ  ｅｎａｂｌｉｎｇ）Ｊａｖａ(登録商標)コードを提供して、ウェブサーバと協働で実行される。しかし、当業者に知られる、例えば、Ｄｅｓｉｄｅｒａｔａソフトウェアが提供するＢｌａｚｉｘ、ＢＥＡシステムズが提供するＷｅｂＬｏｇｉｃ、又はＩＢＭが提供するＷｅｂＳｐｈｅｒｅなど、他の形式のＪＳＰ対応ウェブサーバ又はＪａｖａ(登録商標)サーバが利用可能である。更に、当業者には明らかなように、本発明はＪＳＰ又はＪａｖａ(登録商標)サーバに限定されず、如何なる適切なプログラミング言語又はソフトウェア若しくはファームウェアも利用され得る。
【００２３】
ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６と通信するよう開発されたサーブレットである。ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６は、配備エージェントの一例である。ＲｅｍＩｎｓｔａｌｌ５アプリケーションは、アプリケーションサーバ３にあるサーブレットＪＳＰアプリケーションである。ＲｅｍＩｎｓｔａｌｌ５アプリケーションは、管理エージェントの一例である。ＪＳＰは、ウェブブラウザ要求に応答してダイナミックドキュメントの発生を可能にするＪａｖａ(登録商標)技術である。ＪＳＰは、Ｊａｖａ(登録商標)コード及びある所定動作が静的ウェブページに埋め込まれることを可能にする。
【００２４】
クライアントのユーザは、ウェブブラウザを用いてＲｅｍＩｎｓｔａｌｌプログラム５と情報をやり取りする。ユーザは、ＲｅｍＩｎｓｔａｌｌプログラム５にアクセスするウェブサーバへジョブ要求を送る。結果として、ＲｅｍＩｎｓｔａｌｌプログラム５は、同時に多数のＭＦＰ４ａ．．．ｎへユーザ入力に基づくジョブを転送する。なお、このときのジョブは、ＭＦＰ４ａ．．．ｎに修正パッケージをインストールすることに対応する。修正パッケージは、オブジェクト、構造ファイル、実行コード、アンインストール・シーケンス、バーチャルマシン・アップデート、テキストファイル、Ｘｌｅｔ、Ａｐｐｌｅｔ、サーバ、ソフトウェア、アプリケーションなどであっても良い。
【００２５】
これらのＭＦＰ４ａ．．．ｎの夫々には、ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６が存在する。ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６は、Ｊａｖａ(登録商標)サーブレットアプリケーションである。ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６は、ＲｅｍＩｎｓｔａｌｌプログラム５によって転送された要求に応答する。ＲｅｍＩｎｓｔａｌｌプログラム５によってＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６へ送信される要求は、ｈｔｔｐコマンドを用いて送信される。応答時に、ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６は、夫々のｈｔｔｐ要求応答の中で夫々の応答コードを送信する。受信されるタイプ要求に依存して、ＭＦＰからのＸＭＬ情報も、ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６から送信されても良い。このようにして、ＲｅｍＩｎｓｔａｌｌプログラム５はアプリケーションサーバ３にインストールされ、ＲｉＤｅｐｌｏｙ  Ａｇｅｎｔ６ｗを介してＭＦＰ４ａ．．．ｎと情報をやり取りする。
【００２６】
図３は、クライアント１、アプリケーションサーバ３及びＭＦＰ４のより詳細な図を示す。クライアント１は、アプリケーションサーバ３と通信するためのウェブブラウザ８及びネットワークインターフェースカード（ＮＩＣ）を有する。アプリケーションサーバ３は、アプリケーションサーバ３がクライアント１及びＭＦＰ４ａ．．．ｎと通信することを可能にするＲｅｍＩｎｓｔａｌｌプログラム５及びＮＩＣ１１を有する。ＭＦＰ４は、また、通信ネットワークを介して通信を可能にするＮＩＣカード１３を有する。更にＭＦＰ４には、ＣＰＵ１４と、ＲＯＭ１５と、スキャン／印刷エンジン１６と、ハードドライブ１７と、幾つかのセキュアデジタル（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ；ＳＤ）スロット１８ａ．．．ｃとが含まれる。セキュアデジタルは、持ち運び可能なデバイス及びＭＦＰで使用されるフラッシュメモリフォーマットである。ＳＤスロットの１つには、本例では１８ａには、Ｊａｖａ(登録商標)プラットフォーム／ＣＶＭを含むＳＤカード２０が含まれている。ＣＶＭは、接続デバイス構造（Ｃｏｎｎｅｃｔｅｄ  Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ；ＣＤＣ）の一部として割り当てられたＪａｖａ(登録商標)バーチャルマシンである。ＣＤＣは、非コンピュータデバイスへコアクラスライブラリを与えるＪａｖａ(登録商標)２プラットフォーム、マイクロエディション（Ｊ２ＭＥ）である。
【００２７】
ＣＶＭバーチャルマシンには、ＲｉＤｅｐｌｏｙエージェント６がインストールされている。通常のＭＦＰのハードウェアについて、図２４を参照して以下で記載する。
【００２８】
ＣＶＭバーチャルマシン及びＲｉＤｅｐｌｏｙエージェント６は、最初に、サービス技術者がＳＤカード２０をＭＦＰ４に挿入することによってインストールされる。このインストールが完了すると、ＣＶＭバーチャルマシンは、遠隔インストール・プロシージャによってアップデートされ得る。先に述べられたように、ＣＶＭバーチャルマシンは、特に非汎用コンピュータデバイスでの使用のために設計されたＪａｖａ(登録商標)バーチャルマシンである。ＣＶＭバーチャルマシンは、ＪａｖａＸｌｅｔ／サーバアプリケーションがＭＦＰのオペレーティングシステムを介してＭＦＰ４のハードウェアとインターフェース接続することを可能にする。Ｊａｖａ(登録商標)サーバアプリケーションは、ユーザが、Ｊａｖａ(登録商標)サーバアプリケーションをインストールされているデバイスへ直接に接続することを可能にする。ＪａｖａＸｌｅｔアプリケーションは、接続デバイス構造（ＣＤＣ）に含まれるアプリケーションモデルである。Ｘｌｅｔは、Ａｐｐｌｅｔに類似するが、Ｘｌｅｔを起動及び停止するための方法を提供する。
【００２９】
図４は、クライアント１、アプリケーションサーバ３及びＭＦＰ４の内部ソフトウェアコンポーネントの更に具体的な例である。クライアント１には、ウェブブラウザ３０と、ｄｅｖｉｃｅｌｉｓｔ．ｔｘｔアーティファクト３１と、ｉｎｓｔａｌｌＰａｃｋａｇｅ．ｚｉｐアーティファクト３２とが含まれる。ウェブブラウザコンポーネント３０は、例えば、インターネット・エクスプローラ（Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ）、ファイヤフォックス（Ｆｉｒｅｆｏｘ）、オペラ（Ｏｐｅｒａ）又はモジラ（Ｍｏｚｉｌｌａ）など、ｈｔｔｐを介してインターネットにアクセス可能な如何なるブラウザ閲覧プログラムであっても良い。
【００３０】
ｄｅｖｉｃｅｌｉｓｔ．ｔｘｔアーティファクト３１は、ユーザがアクセスすることを望むＭＦＰ４ａ．．．ｎのＩＰアドレス又はホスト名のリストを含むテキストファイルである。デバイスリストは、また、識別ファイルと呼ばれることもある。このリストは、ＲｅｍＩｎｓｔａｌｌプログラム５へアップロードされ、どのＭＦＰ４ａ．．．ｎにＲｅｍＩｎｓｔａｌｌプログラム５がアクセスするかを決定する。ｉｎｓｔａｌｌＰａｃｋａｇｅ．ｚｉｐアーティファクト３２は、ＲｅｍＩｎｓｔａｌｌプログラム５へ送信されて、ｄｅｖｉｃｅｌｉｓｔ．ｔｘｔ３１で見つけられるデバイスリストに定義されるＭＦＰ４へ転送される、圧縮された形式のアプリケーション、ＣＶＭバーチャルマシン・アップグレード又はファイルである。
【００３１】
図４は、更に、アプリケーションサーバ３がＪＳＰ対応のウェブサーバを有することを表す。本発明の好ましい実施形態で、ウェブサーバは、先に論じられたアパッチ／トムキャットサーバ３３である。また、アプリケーションサーバ３にはＲｅｍＩｎｓｔａｌｌ．ｗａｒコンポーネント３４が含まれる。ＲｅｍＩｎｓｔａｌｌ．ｗａｒファイルは、アプリケーションサーバ３で動作するために使用されるＲｅｍＩｎｓｔａｌｌプログラムの要素を含むアーカイブファイルである。また、アプリケーションサーバ３には、ＲｅｍＩｎｓｔａｌｌプログラムによって生成されるログファイルであるＲｅｍＩｎｓｔａｌｌ．ｌｏｇファイル３５が含まれる。
【００３２】
ＭＦＰ４には、Ｊａｖａ(登録商標)プラットフォームであるＣＶＭバーチャルマシン３６が含まれる。バーチャルマシン３６はＲｉＤｅｐｌｏｙエージェント３７をインストールされ、利用している。先に論じられたように、ＲｉＤｅｐｌｏｙエージェント３７は、ＣＶＭバーチャルマシン３６とひとまとめにされたＪａｖａ(登録商標)サーブレットアプリケーションであり、アプリケーションサーバ３で見つけられるＲｅｍＩｎｓｔａｌｌアプリケーション５によって送信されるｈｔｔｐ要求に応答する。また、Ｘｌｅｔアプリケーション４０Ａ及びサーバ（ｓｅｒｖｅｒ）アプリケーション４０Ｂ又はファイル（ｆｉｌｅ）４１は、ＭＦＰ４にインストールされることが可能である。全てのこれらのコンポーネント４０Ａ及び４０Ｂ並びに４１は、複数のセットにインストールされることが可能である。言い換えると、幾つかのＸｌｅｔアプリケーション４０Ａ及びサーバアプリケーション４０Ｂがインストールされ得る。
【００３３】
このようにして、図４は、デバイスリスト３１及びインストールパッケージ３２をアプリケーションサーバ３へアップロードするためにウェブブラウザ３０を使用することができる。その場合に、アプリケーションサーバ３は、ＲｅｍＩｎｓｔａｌｌプログラム３４を介して、ＲｉＤｅｐｌｏｙエージェント３７と通信して、インストールパッケージ３２で見つけられるコンポーネントをデバイスリスト３１で見つけられる夫々のＭＦＰ４ａ．．．ｎへインストールすることができる。このようにして、図４のＭＦＰ４に示されるコンポーネント４０Ａ及び４０Ｂ並びに４１は、単一のクライアント１から複数のＭＦＰ４ａ．．．ｎに同時にインストールされ得る。
【００３４】
図５は、アプリケーションサーバ３にインストールされるＲｅｍＩｎｓｔａｌｌプログラムのバッチアクション（ＢａｔｃｈＡｃｔｉｏｎ）処理５４を示す。バッチアクション処理５４は、ユーザインフォヘルパー（ＵｓｅｒＩｎｆｏＨｅｌｐｅｒ）５１と、Ｄａｌｐヘルパー（ＤａｌｐＨｅｌｐｅｒ）５２と、パッケージングヘルパー（ＰａｃｋａｇｉｎｇＨｅｌｐｅｒ）５３とから情報を持ってくることによって開始される。ユーザインフォヘルパー５１は、アプリケーションサーバ３へクライアント１によって生成されたｈｔｔｐ要求により受信された情報を集める。Ｄａｌｐヘルパー５２は、ｉｎｓｔａｌｌｐａｃｋａｇｅ．ｚｉｐ３２においてアプリケーションサーバ３へアップロードされたＤａｌｐファイルで見つけられる情報を集める。Ｄａｌｐファイルは、ＲｅｍＩｎｓｔａｌｌプログラム５の設定を含む構造ファイルである。パッケージングヘルパー５３は、アップロードされたプログラムパッケージから情報を集める。
【００３５】
次いで、バッチアクション処理５４は、ブートスクリプトファイル（ＢｏｏｔＳｃｒｉｐｔＦｉｌｅ）６２及びアプリケーションコンテンツ（ＡｐｐＣｏｎｔｅｎｔ）６３を含むジップパッケージ（ＺｉｐＰａｃｋａｇｅ）６１を生成する。バッチアクション処理５４は、ユーザインフォヘルパー５１、Ｄａｌｐヘルパー５２及びパッケージングヘルパー５３から取り出された情報から動的にブートスクリプトファイル６２生成する。次いで、ブートスクリプトファイル６２は、１つのジップパッケージ６１にアプリケーションコンテンツ６３とともにまとめられる。アプリケーションコンテンツ６３は、ユーザがＭＦＰ４ａ．．．ｎにインストールすることを望む、ユーザによりアップロードされるＪａｖａＸｌｅｔ／サーバアプリケーション又はファイルである。
【００３６】
次いで、バッチアクション処理５４は、ＲｉＤｅｐｌｏｙエージェントへ送信されるべき要求のシーケンスであるエージェント要求セット（ＡｇｅｎｔＲｅｑｕｅｓｔＳｅｔ）７１を生成する。幾つかの特定のエージェント要求（ＡｇｅｎｔＲｅｑｕｅｓｔ）７２は、エージェント要求セット７１に含まれる。
【００３７】
次に、バッチアクション処理５４は、デバイスリスト（ＤｅｖｉｃｅＬｉｓｔ）８１に対してエージェント要求セット７１で見つけられる要求シーケンスを実行して、リストで見つけられる夫々のＭＦＰ４ａ．．．ｎに関して新しいスレッドを発生させる。
【００３８】
デバイスリスト８１上で見つけられる夫々のＭＦＰ４ａ．．．ｎは、ＲｉＤｅｐｌｏｙエージェントを介してＲｅｍＩｎｓｔａｌｌプログラムとインターフェース接続する。エージェント要求セット７１における夫々の要求は、応答を引き起こすＲｉＤｅｐｌｏｙエージェントへ送信される。このようにして、システムは、デバイスリスト８１上の夫々のデバイス（Ｄｅｖｉｃｅ）８２（ＭＦＰ４ａ．．．ｎ）により夫々の要求を反復する。
【００３９】
このようにして、ＲｅｍＩｎｓｔａｌｌプログラム５のバッチアクション処理５４は、受信したパッケージを解凍し、ブートスクリプト命令を構築するよう内容を読み出し、再圧縮されるファイルにブートスクリプトファイルを含むパッケージを再圧縮する。
【００４０】
本発明の好ましい実施形態で、ブートスクリプトコンテンツは、ＲｅｍＩｎｓｔａｌｌプログラム５の使用に依存して必要とされることがある。例えば、ｇｅｔ  ｉｎｆｏ（情報取得）コマンドはブートスクリプトを利用しないが、対照的に、ｉｎｓｔａｌｌ  ｘｌｅｔ／ｓｅｒｖｅｒ又はｕｎｉｎｓｔａｌｌ  ｘｌｅｔ／ｓｅｒｖｅｒ（Ｘｌｅｔ／サーバのインストール又はアンインストール）、ｕｐｇｒａｄｉｎｇ  ｐｌａｔｆｏｒｍ又はｄｏｗｎｇｒａｄｉｎｇ  ｐｌａｔｆｏｒｍ（プラットフォームのアップグレード又はダウングレード）、及びｐｕｓｈｉｎｇ  ａ  ｆｉｌｅ  ｔｏ  ｔｈｅ  ＭＦＰ（ＭＦＰへのファイルの転送）は、ブートスクリプトを使用することがある。
【００４１】
受信したコンテンツを再びパッケージ化する場合に、ＲｅｍＩｎｓｔａｌｌプログラム５は、夫々のクライアントセッションに関して一時フォルダを生成する。一時フォルダの名称は、クライアントセッションＩＤと同一である。このディレクトリで、クライアントからの全てのアップロードは記憶され、ＲｅｍＩｎｓｔａｌｌプログラム５による全ての再パッケージ化は起こる。夫々の新しいアップロードは、この一時フォルダに存在するコンテンツをクリアし、いずれかのクライアントが２４時間よりも古い夫々の一時フォルダにログインする場合に削除される。複数のクライアントは、同時にＲｅｍＩｎｓｔａｌｌプログラム５にインターフェース接続しても良い。
【００４２】
先に論じられたブートスクリプトと同様に、ＲｅｍＩｎｓｔａｌｌプログラム５のバッチアクション処理５４によってＲｉＤｅｐｌｏｙエージェント６へ送信される要求のシーケンスは、システムのｕｓｅの形式に従って異なる。
【００４３】
例えば、ｇｅｔ  ｄｅｖｉｃｅ  ｉｎｆｏ  ｕｓｅ  ｃａｓｅで、要求シーケンスは２つのコマンドしか含まない。ｇｅｔ  ｄｅｖｉｃｅ  ｉｎｆｏ  ｕｓｅで、第１のコマンドはｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔコマンドであり、第２のコマンドはｅｎｄ  ｓｅｒｖｅｌｅｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）コマンドである。ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔコマンドは、ＸＭＬフォーマットでＭＦＰから情報を取り出し、ＭＦＰ４ａ．．．ｎにおいてパネルロック（Ｐａｎｅｌ  Ｌｏｃｋ）メッセージを設定する。ｅｎｄ  ｓｅｒｖｅｌｅｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）コマンドは、ＭＦＰ４ａ．．．ｎにおいてパネルロックをオフする。
【００４４】
ｉｎｓｔａｌｌ  ｓｅｒｖｅｒ  ａｐｐｌｉｃａｔｉｏｎ  ｕｓｅ  ｃａｓｅで、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔは第１のコマンドであり、このコマンドは、必要な場合に、前処理のためにＸＭＬで情報を取り出し、ＭＦＰ４ａ．．．ｎのパネルをロックする。次のコマンド、ｉｎｓｔａｌｌ  ｓｅｒｖｌｅｔは、ユーザによってアップロードされるアップロードパッケージをＭＦＰ４ａ．．．ｎへインストールする。次いで、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔ要求は、ＭＦＰ４ａ．．．ｎからＸＭＬ情報を取り出し、インストールの成功を確認するために伝達される。最後に、ｅｎｄ  ｓｅｒｖｅｌｅｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）コマンドが先に述べられたように伝達される。このコマンドは、ＭＦＰ４ａ．．．ｎにおいてパネルロックをオフする。
【００４５】
ｕｎｉｎｓｔａｌｌ  ｓｅｒｖｅｒ  ａｐｐｌｉｃａｔｉｏｎ  ｕｓｅ  ｃａｓｅで、第１の要求、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔは、必要ならば、前処理のためにＸＭＬ情報を取り出し、更に、パネルをロックする。次の要求は、ｕｎｉｎｓｔａｌｌ  ｓｅｒｖｌｅｔ要求であり、この要求はサーバアプリケーションをアンインストールする。次いで、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔは、ＸＭＬ情報を取り出して、アンインストールを確認するために使用される。最後に、ｅｎｄ  ｓｅｒｖｅｌｅｔ  ｒｅｑｕｅｓｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）は、パネルロックをオフするために使用される。
【００４６】
Ｘｌｅｔアプリケーションをインストールする場合に、要求シーケンスにおける第１の要求は、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔ要求である。ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔは、パネルロックをオンし、必要ならば、前処理のためにＸＭＬ情報を取り出す。次の要求は、Ｘｌｅｔアプリケーション及びブートスクリプトを含むファイルをアップロードするｆｉｌｅ  ｕｐｌｏａｄ  ｓｅｒｖｌｅｔ要求である。次のコマンドは、再起動コマンドを発行するｅｎｄ  ｓｅｒｖｅｌｅｔ  ｒｅｑｕｅｓｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）である。ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔコマンドは、次のコマンドであり、インストールを確認するためにＸＭＬ情報を取り出す。最後に、ｅｎｄ  ｓｅｒｖｅｌｅｔ  ｒｅｑｕｅｓｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）は、パネルロックをオフするために使用される。留意すべきは、ｅｎｄ  ｓｅｒｖｌｅｔ要求が受信され、再スタートが真（成功）である場合に、このコマンドはＭＦＰを再起動し、一方、ｅｎｄ  ｓｅｒｖｌｅｔコマンドが受信され、再スタートが失敗である場合に、このコマンドは単に操作パネルを解除する点である。
【００４７】
ｕｎｉｎｓｔａｌｌ  ｘｌｅｔ  ａｐｐｌｉｃａｔｉｏｎ  ｕｓｅ  ｃａｓｅの要求シーケンスは、ｆｉｌｅ  ｕｐｌｏａｄ  ｓｅｒｖｌｅｔコマンドがブートスクリプトコマンドしか含まず、アップロードされるべきファイルを含まない点を除いて、ｉｎｓｔａｌｌ  ｘｌｅｔ  ａｐｐｌｉｃａｔｉｏｎの要求シーケンスと同じである。
【００４８】
ｕｐｇｒａｄｅ  ＣＶＭ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  ｕｓｅ  ｃａｓｅは、ｉｎｓｔａｌｌ  ｘｌｅｔ  ａｐｐｌｉｃａｔｉｏｎと同じ要求シーケンスを含む。
【００４９】
最後に、ｐｕｓｈ  ｆｉｌｅ  ｔｏ  ｄｅｖｉｃｅ  ｕｓｅ  ｃａｓｅは、再起動が必要とされる場合に、ｉｎｓｔａｌｌ  ｘｌｅｔ  ａｐｐｌｉｃａｔｉｏｎと同じ要求シーケンスを含む。再起動が必要とされない場合には、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔは、パネルロックをオンするために使用される。ｆｉｌｅ  ｕｐｌｏａｄ  ｓｅｒｖｌｅｔは、ブートスクリプトによりファイルをアップロードするために使用され、ｅｎｄ  ｓｅｒｖｌｅｔ  ｒｅｑｕｅｓｔ  （ｒｅｓｔａｒｔ＝ｆａｌｓｅ）は、パネルロックをオフするために使用される。
【００５０】
図６は、遠隔インストールシステムの一般的なシーケンス図である。クライアント１から始まって、クライアント１は、デバイスリスト９６をアプリケーションサーバ３へアップロードする。ＲｅｍＩｎｓｔａｌｌプログラム５は、デバイスリストを受信し、そのリストをアプリケーションサーバ３に保存する。次いで、クライアント１は、９８で、必要ならば、クライアント１が必要としている使用によって、パッケージとともに、ＨＴＭＬ形式で所望の動作のための要求を送信する。
【００５１】
クライアント１がステップ９８でアプリケーションサーバ３へファイルをアップロードした場合には、ステップ１００で、ＲｅｍＩｎｓｔａｌｌプログラム５は、アップロードファイルを解凍し、ブートスクリプトファイルにブートスクリプト命令を書き込み、アップロードファイル及びブートスクリプトファイルを単一アーカイブで再圧縮する。次いでステップ１０２で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙエージェント６へ送信されうる要求シーケンスを生成する。そのシーケンスは、クライアント１のブラウザ入力の使用に動的に依存して構築される。
【００５２】
次いでステップ１０４で、クライアント１のユーザは、クライアント１のウェブブラウザのユーザにおいて表示される確認ページを提供される。ステップ１０６で、ユーザはジョブを確認し、ジョブが開始される。ステップ１１０で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ステップ９６でアップロードされたデバイスリストで見つけられる夫々のＭＦＰ４に関してスレッドを生成する。デバイススレッドにおける夫々のＭＦＰ４に関して、ステップ１１４で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙエージェント６による要求応答シーケンスにおいて夫々の要求をループする。
【００５３】
ステップ１１６で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙエージェント６からの夫々の応答において、ＭＦＰ４の状態に関する情報を受信する。エラー応答を生ずる如何なる要求も、ＭＦＰ４のジョブを停止する。バッチ処理ジョブ、又は全ての並列スレッドは、夫々のＭＦＰ４のスレッドが成功又は失敗のいずれか一方を報告する場合に停止する。図６に図示されないが、バッチ処理ジョブが依然として実行されている間のいずれかの時点で、クライアント１は、ブラウザを用いて、バッチ処理ジョブの状態でアップデートをアプリケーションサーバ３から要求する。ＲｅｍＩｎｓｔａｌｌプログラム５は、夫々のＭＦＰから最新の結果アップデートの間に受信した情報を問い合わせることによって、クライアント１からの状態要求に応答する。
【００５４】
留意すべきは、複数のクライアント（１，２）が同時にステップ９６〜１０６を実行することができる点である。しかし、本発明の好ましい実施例で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ステップ１０８〜１１６で１つのクライアント１がＭＦＰ４でジョブを実行している（最後に開始された第１の要求応答が完了していない）間に、他のクライアントが同じＭＦＰ４に対してジョブを実行できないことを確実にする。その結果、第２のクライアント２は、そのＭＦＰ４での前のクライアント１のジョブが完了する（ジョブの成功又は失敗により、要求応答通信ステップが終了する）まで、ＭＦＰ４に対してジョブを実行することを妨げられる。第２のクライアント２は、ブロックされているＭＦＰ４でジョブを実行するよう試みた直後に、このブロックを示す失敗メッセージを通知される。
【００５５】
このブロックは、ＲｅｍＩｎｓｔａｌｌプログラム５が、ブロック中ジョブリストと呼ばれる、現在実行中のジョブを有する全てのデバイスのリストを保持するので、達成される。第１のクライアント１がＭＦＰ４ａ．．．ｎでジョブを開始する場合に、ＭＦＰ４ａ．．．ｎは、ブロック中ジョブリストを確認される。ＭＦＰがリストにない場合には、ＭＦＰはリストに加えられ、そのＭＦＰでのジョブが進行する。ＭＦＰがリストにある場合には、ブロックメッセージは失敗として中継される。第１のクライアントのジョブがＭＦＰ４ａ．．．ｎで完了した場合に、ＭＦＰ４ａ．．．ｎはブロック中ジョブリストから削除される。このとき、第２のクライアント２がジョブを再実行する場合には、問題はなく、ジョブが進行する。両方のクライアントがほぼ同時にジョブを要求する場合には、最初にジョブを要求したクライアントが優先権を与えられ、２番目のクライアントはブロックされる。
【００５６】
図７ａ及び７ｂは、ｉｎｓｔａｌｌ  ｘｌｅｔ  ｕｓｅ  ｃａｓｅの間にＲｅｍＩｎｓｔａｌｌプログラム５によってＲｉＤｅｐｌｏｙエージェント６へ通信される要求シーケンスの詳細を表すシーケンス図を示す。このシーケンス図は、この通信中に実現される重要なステップを示すが、全てを説明しているわけではない。
【００５７】
図７ａの最初に、ｉｎｓｔａｌｌ  ｘｌｅｔ  ｕｓｅ  ｃａｓｅは、クライアント１がジョブを実行する場合に開始する。例えば、図６のステップ１０６で、クライアント１がアプリケーションサーバ３から確認を受信した後、クライアント１はジョブを開始する。クライアント１がステップ１２６で実行コマンドを実行して、コマンドがアプリケーションサーバ３によって受信されると、妥当性確認（バリデーション）がステップ１２８で初期化される。妥当性確認は、問題となっているｕｓｅ  ｃａｓｅ及びユーザ入力に基づく。更に、妥当性確認は、完了したジョブが成功しているかどうかを試験するために使用される。妥当性確認がステップ１２８で初期化されると、ステップ１３０で、ｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔ要求シーケンスは、アプリケーションサーバ３で見つけられるＲｅｍＩｎｓｔａｌｌプログラム５によって、ＭＦＰ４で見つけられるＲｉＤｅｐｌｏｙエージェント６へ送信される。
【００５８】
次いでステップ１３２で、ＭＦＰ４におけるＲｉＤｅｐｌｏｙエージェント６は、パネルロックを切り換える。パネルロックは、ＭＦＰ４が遠隔インストール処理の間に使用され得ないことを確実にするよう、ＭＦＰ４のユーザインターフェースパネルをオンする。アプリケーションサーバ３におけるＲｅｍＩｎｓｔａｌｌプログラム５がＭＦＰ４と通信することができない場合に、ＲｅｍＩｎｓｔａｌｌプログラム５は、何度も再接続を繰り返す。接続リトライは、各リトライの間に１０秒待機して、３回行われる。
【００５９】
ステップ１３６で、要求の結果は、成功、失敗又はリトライ実行のいずれであるかに関わらず、ＲｅｍＩｎｓｔａｌｌプログラム５によってクライアント１へ返送される。次いでステップ１３８で、アプリケーションサーバ３におけるＲｅｍＩｎｓｔａｌｌプログラム５は、５秒待機する。ステップ１４０で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＭＦＰ４及びＲｉＤｅｐｌｏｙエージェント６へｆｉｌｅ  ｕｐｌｏａｄ  ｓｅｒｖｌｅｔコマンドを送る。このステップ１４０は、ＭＦＰ４へブートスクリプト及びアプリケーションファイルをアップロードする。ステップ１３０に関して上述されたｇｅｔ  ｉｎｆｏ  ｓｅｒｖｌｅｔと同様に、ステップ１４４で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ｆｉｌｅ  ｕｐｌｏａｄ  ｓｅｒｖｌｅｔがステップ１４０で失敗する場合にＭＦＰ４へ接続するよう、各リトライの間に１０秒を有して３回までリトライする。
【００６０】
ステップ１４６で、クライアント１は、ＲｅｍＩｎｓｔａｌｌプログラム５によってコマンドの状態に応じてアップロードされる。ステップ１４８で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙエージェント６へｅｎｄ  ｓｅｒｖｌｅｔ（ｒｅｓｔａｒｔ＝ｔｒｕｅ）要求シーケンスを送る。このコマンドは、ＲｉＤｅｐｌｏｙエージェント６にステップ１５０でＭＦＰ４を再起動させる。ｅｎｄ  ｓｅｒｖｌｅｔ（ｒｅｓｔａｒｔ＝ｔｒｕｅ）要求シーケンスの通信がステップ１５２で失敗すると、ＲｅｍＩｎｓｔａｌｌプログラム５はリトライを試みる。次いでステップ１５４で、クライアント１は、通信の状態によりアップロードされる。
【００６１】
ステップ１５６で、ＲｅｍＩｎｓｔａｌｌプログラム５は、次の要求の通信の前に２０秒待機する。ステップ１５８で、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｉＤｅｐｌｏｙエージェント６へｇｅｔ  ｉｎｆｏ要求を送る。この要求は、インストールを確認するよう、ＲｉＤｅｐｌｏｙエージェント６にＸＭＬ情報を取得させて、それをＲｅｍＩｎｓｔａｌｌプログラム５へ返送させる。この場合に、図７ｂの最初に、通信がステップ１６７で失敗する場合に、リトライは達成される。ステップ１６４で、クライアント１は、ステップ１５８で試みられた通信の状態によりアップロードされる。ステップ１６６で、ｅｎｄ  ｓｅｒｖｌｅｔ（ｒｅｓｔａｒｔ＝ｆａｌｓｅ）要求は、パネルロック１６８をオフするよう通信される。通信がステップ１６６で失敗する場合に、リトライはステップ１７０で達成され、ステップ１７２でクライアント１は通信の状態によりアップロードされる。ステップ１７４で、インストールの結果は確認され、ステップ１７８で、確認結果がクライアント１へ送られる。
【００６２】
留意すべきは、異なる待機時間が異なるステップに関して存在する点であり、例えば、図７ａに戻ると、ステップ１３８で、システムは５秒間待機する。この待機は、要求シーケンスにおける最初の要求の後に生じ、最初の要求がＭＦＰ４をスリープモードから目覚めさせる場合にＲｉＤｅｐｌｏｙエージェント６による通信エラーを防ぐために使用される。
【００６３】
ステップ１５６で、ＲｅｍＩｎｓｔａｌｌプログラム５は、２０秒待機する。この待機は、ＲｉＤｅｐｌｏｙエージェント６がＭＦＰ４へ再起動要求を発行した後に生じ、ＭＦＰ４が再起動している間のＲｉＤｅｐｌｏｙエージェント６による通信エラーを防ぐために使用される。更に、図７ｂにおいて、ステップ１６７で、リトライは、デフォルトの３回よりも多く達成されても良い。このステップにおける最大リトライ試行は１５回であり、各リトライの間に１０秒待機する。ＭＦＰ４は再起動中であり、リトライは、異なるデバイスが異なる速度で再起動及び起動する場合に、再起動及びプラットフォーム設定が完了するまで失敗するよう期待されるので、１５回の可能なリトライがこのステップで認められる。
【００６４】
図８ａ及び８ｂは、ＲｉＤｅｐｌｏｙエージェント６との通信のためにＲｅｍＩｎｓｔａｌｌプログラム５によって使用されるルーピング擬似コード論理の一例を示す。行１及２は、前の要求がステップを失敗しなかった場合に、次なる要求の繰り返し（ｉｔｅｒａｔｅ  ｎｅｘｔ  ｒｅｑｕｅｓｔ）から開始する。
【００６５】
行３で、通信されるべき次なる要求が最初の要求であるかどうかを確認し、そうである場合には、ＲｅｍＩｎｓｔａｌｌプログラム５は、ＲｅｍＩｎｓｔａｌｌプログラム５がまさに通信しようとしているＭＦＰ４に対して他のクライアントがジョブを実行しているかどうかを確かめるよう問い合わせる。真（ｔｒｕｅ）の結果が戻される場合には、他のクライアントがＭＦＰ４に対してジョブを実行中であり、ＭＦＰ通信は失敗として設定され、シーケンスは終了する。他のクライアントがＭＦＰ４に対してジョブを実行中でないと確認される場合には、行８で、ＭＦＰ４のアドレスは、全てのクライアントが要求送信前に確認しうるリストに置かれる。
【００６６】
行１０で、ループは続く。行１１で、ＲｅｍＩｎｓｔａｌｌプログラム５は、要求が再起動後であるかどうかを確認するよう問い合わせる。そうである場合に、ＲｅｍＩｎｓｔａｌｌプログラム５は、２０秒待機し、新しい要求状態によりデバイスオブジェクトをアップデートする。デバイスオブジェクトは、例えば、最初の要求、再起動後、シーケンスにおける最初、又は失敗など、要求状態を保持する。
【００６７】
行１４で要求状態がシーケンスにおける最初である場合に、システムは５秒待機する。５秒待機後、行１６で、ＨＴＴＰ通信は設定され、行１８は、エージェント機能へトライ要求（ｔｒｙ  ｒｅｑｕｅｓｔ）を開始する。行１９で、要求が送信される。行２０で、エージェントが４０秒以内に応答しない場合に、ＭＦＰの状態は失敗としてアップデートされる。返送されたＨＴＴＰ応答コードが４０４に等しい場合に、ＭＦＰの状態はアップデートされ、リトライが試みられる。３度のリトライが試みられ、デバイスは、４度目のリトライで失敗として設定される。
【００６８】
ＨＴＴＰ応答コードが返送され、２００に等しい場合に、同じくＨＴＴＰ応答に含まれるＲｉＤｅｐｌｏｙ応答コードは解析される。ＲｉＤｅｐｌｏｙエラーが応答コードで見つけられる場合に、クライアントは通知され、デバイスの状態は更新され、リトライが試みられる。３度のリトライの後、デバイスは４度目で失敗として設定される。
【００６９】
行３０で、ＭＦＰ応答が正当であると確認される場合に、返送された結果は確認され、応答と共に受信したＸＭＬが解析される。異なるＨＴＴＰ応答が受信される場合に、ＭＦＰの状態は更新され、リトライが試みられる。３度のリトライが試みられ、ＭＦＰ４は、４度目で失敗として設定される。
【００７０】
行３６で、接続例外（ｅｘｃｅｐｔｉｏｎ）が存在する場合に、再起動状態が確認される。図８ａの行３７から図８ｂの行２で、システムは、ＭＦＰの状態が再起動後であるかどうかを確認する。そうである場合に、図８ｂの行１で、デバイス状態は更新され、リトライが試みられる。この例で、リトライは２０回試みられ、デバイスは、２１回目のリトライで失敗として設定される。接続例外がキャッチされ、ＭＦＰの状態が再起動後でない場合に、デバイスは更新され、リトライは３度試みられ、デバイスは４度目のリトライ試行で失敗と設定される。
【００７１】
行６でＩＯ例外が検出される場合に、システムは、ＭＦＰの状態が再起動後であるかどうかを確認し、そうである場合に、状態は更新され、最大２０回の再試行を伴うリトライが実行される。ＭＦＰの状態が再起動後でない場合に、デバイス状態は更新され、最大３度のリトライを伴うリトライが試みられる。
【００７２】
それが単に返送される例外に過ぎない場合に、上記接続例外及びＩＯ例外の場合と同様に、ＭＦＰの状態が再起動後であるならば、最大２０回のリトライを有するリトライが存在する。ＭＦＰの状態が再起動後でないならば、リトライは最大３度のリトライを有する。
【００７３】
最後に、行１９で接続は閉じられ、デバイスの状態は更新され、次なる要求は、図８ａの行１より始まる頭に戻って繰り返される。要求の繰り返しが終了し、それ以上要求が試みられない場合に、行２３でログはアップデートされ、デバイスアドレスは、行２４及び２５で、全てのクライアントがチェックするところのリストから削除される。
【００７４】
ここで、３つの異なったｕｓｅ  ｃａｓｅについて図９〜２３を参照して説明する。第１のｕｓｅ  ｃａｓｅは、埋め込みスキャンアプリケーションのインストールである。第２のｕｓｅ  ｃａｓｅは、どのデバイスが埋め込みスキャンアプリケーションをインストールされているかの決定であり、第３のｕｓｅ  ｃａｓｅは、ジョブ失敗の詳細な記述又は過去のジョブの経歴のためのジョブログを見ることである。
【００７５】
埋め込みスキャンアプリケーションは、Ｘｌｅｔ／サーバコンポーネントから成るサーバレスのスキャニングアプリケーションである。Ｘｌｅｔ／サーバコンポーネントは、ＭＦＰ４にインストールされる埋め込みスキャンアプリケーションの遠隔設定に基づくブラウザを可能にするサーバコンポーネント及び埋め込みスキャンアプリケーションのファームウェアに対応する。遠隔インストーラを用いることによって、クライアントは、埋め込みスキャンアプリケーションを設定し、１つのインストール動作で並列なＭＦＰへＸｌｅｔ／サーバ及び設定コンポーネントを転送することができる。
【００７６】
埋め込みスキャンアプリケーションのサーバコンポーネントに関して、このコンポーネントは、この場合に、ユーザが、単一のＭＦＰにおいて埋め込みスキャンアプリケーションを再設定すること、又は、遠隔インストーラを用いずに単一のＭＦＰにおいて再設定を確認することを可能にするよう、夫々のＭＦＰに備わっている。
【００７７】
遠隔インストーラのユーザの観点から、埋め込みスキャンアプリケーションのインストールは、遠隔インストーラが単一ユニットとして両方の埋め込みスキャンコンポーネントをインストールするので、ＭＦＰにおける単一のＸｌｅｔ／サーバアプリケーションのインストールと同じである。遠隔インストーラを用いる埋め込みスキャンコンポーネントは、Ｘｌｅｔ／サーバの設定及びインストールを単一動作で達成するために、各自のモジュールとしてカスタマイズされる。同様に、サーバ及びＸｌｅｔのアンインストールは、単一動作として達成される。留意すべきは、埋め込みスキャンアプリケーションは、遠隔インストールシステムを用いて他のカスタマイズされたコンポーネントを書き込むよう、汎用モデルとして働いても良い点である。
【００７８】
ここで図面に戻って、図９は、ウェブブラウザ３００を用いてクライアントのユーザによってアクセスされるログインウィンドウ３０４を示す。ログインウィンドウ３０４によるアプリケーションサーバ３への接続は一意的なセッションを与えられる。セッションのタイムアウトは３０分であり、例えば、ユーザが３０分以上の間アプリケーションサーバと情報のやり取りを行わない場合には、次の対話はセッションを終了し、ユーザをログイン画面に戻して、新しいセッションを開始する。ユーザは、ユーザ名３０１及びパスワード３０２を入力して、ログインボタン３０３をクリックすることによってログインする。
【００７９】
ログインに成功した後、ユーザが目にする最初のウィンドウは、図１０に示されるメインメニューウィンドウ３０９である。メインメニューウィンドウ３０９は、ユーザ選択のための５つのボタンを表示する。当業者には当然のことながら、様々な数又はスタイルのボタンがメインメニューウィンドウ３０９で使用され得る。本例で、利用可能なボタンは、デバイスリストボタン３１０、Ｅスキャンボタン３１１、情報取得ボタン３１２、ジョブログボタン３１３及びログアウトボタン３１４である。
【００８０】
ここで図１１に移り、図１１は、デバイスリストボタン３１０が押下された場合に表示されるデバイスリストウィンドウ３２０を示す。デバイスリストウィンドウ３２０は、ユーザがＭＦＰの新しいリストをアップロードすることを可能にする。このウィンドウを用いて、ユーザは、閲覧ボタン３２２をクリックすることによってテキストファイルの所在確認をすべくコンピュータを閲覧することができる。テキストファイルがテキストボックス３２３に記載されると、リストアップロードボタン３２４が、クライアント１からアプリケーションサーバ３へリストをアップロードする際にクリックされ得る。現状確認ボタン３２５は、ユーザが、目下アプリケーションサーバ３へアップロードされているデバイスのリストを見ることを可能にする。
【００８１】
現状確認ボタン３２５が押下される場合に、図１２に示されるデバイスリスト結果ウィンドウ３３０が表示される。デバイスリスト結果ウィンドウ３３０は、アプリケーションサーバ３へアップロードされたテキストファイルのファイル名３３２と、現在アップロードされているデバイスの数３３３と、アップロードされるＭＦＰのＩＰアドレス３３４とを示す。また、留意すべきは、デバイスリスト３３４はホスト名も含みうる点である。
【００８２】
ここで、図１３に移り、図１３は、図１０のＥスキャンボタン３１１が押下される場合に表示される埋め込みスキャンウィンドウ３４０を示す。埋め込みスキャンウィンドウ３４０は、ユーザが、デバイスリストで見つけられるＭＦＰに埋め込みスキャンプログラムをインストールすることを可能にし、あるいは代替的に、このウィンドウは、ユーザが、サブミットボタンをクリックすることによってデバイスリスト上のデバイスから埋め込みスキャンプログラムをアンインストールすることを可能にする。
【００８３】
埋め込みスキャンプログラムのインストールに関して、オプション３４２は、目的のＭＦＰのどこに埋め込みスキャンアプリケーションがインストールされうるかをユーザが決定することを可能にする。利用可能なオプションは、ＣＶＭ、ハードドライブ、又はＳＤスロットの１つである。どこに埋め込みスキャンアプリケーションがインストールされうるかをユーザが決定すると、ユーザは、クライアントのローカルハードドライブで見つけられるインストールパッケージの場所を見つける。テキストボックス３４３にはインストールされるパッケージの名称が入力され、このインストールパッケージの所在確認をするために、ユーザは閲覧ボタン３４４をクリックして、ローカルハードドライブを検索することができる。サブミットボタン３４５がクリックされると、図１４に示される埋め込みスキャン設定ウィンドウ３５０が表示される。
【００８４】
埋め込みスキャン設定ウィンドウ３５０は、幾つかの設定用サブウィンドウを有する。サブウィンドウは、一般ウィンドウ３５１と、認証ウィンドウ３５２と、電子メールウィンドウ３５３と、フォルダウィンドウ３５４と、デフォルトスキャン設定ウィンドウ３５５とを有する。この例では、一般ウィンドウ３５１が表示されている。一般設定ウィンドウ３５１は、ユーザがドロップダウンボックス３５６において認証方法を、チェックボックス３５７においてタイムスタンプ接尾語を伴う文書名を、テキストボックス３５８において機械リセット時間を、及びドロップダウンボックス３５９において機械時間コードを選択することを可能にする。管理者パスワード設定が、また、一般ウィンドウ３５１に含まれる。管理者パスワードは、インデックスボックス３６０ａ及び３６０ｂで変更可能である。ユーザが設定をアップデートすると、アップデートボタン３６１は変更をセーブし、キャンセルボタン３６３は変更をクリアする。ユーザが変更を終了すると、完了ボタン３６３は、ユーザが、図１５に示される埋め込みスキャンインストール確認ウィンドウ３８１へ進むことを可能にする。
【００８５】
埋め込みスキャンインストール確認ウィンドウ３８１では、３つのボタンが利用可能である。ＯＫボタン３７０は、ユーザが、埋め込みスキャンインストール確認ウィンドウ３８１で簡単に述べられている動作を実行することを可能にする。キャンセルボタン３７１は、ユーザを図１３で見られる埋め込みスキャンウィンドウ３４０へ戻す。再設定ボタン３７２は、ユーザを図１４で見られる埋め込みスキャン設定ウィンドウ３５０へ戻す。
【００８６】
埋め込みスキャンインストール確認ウィンドウ３８１で見られる一覧は、幾つかの異なる領域を有する。第１の領域は動作領域３７３であり、この領域は達成される動作の種類を示し、本例では、動作はインストールである。様式領域３７４は、どの埋め込みスキャンコンポーネントがインストールされているかを示す。本例で、インストールされるべきＸｌｅｔ／サーバコンポーネントは、埋め込みスキャンファームウェア及び埋め込みスキャン遠隔設定ツールである。製品ＩＤ領域３７５は、インストールされるコンポーネントの製品ＩＤ番号を示す。バージョン領域３７６は、インストールされるコンポーネントのバージョンを示す。インストール媒体領域３７７は、インストールの宛先を示し、本例では、ＭＦＰのハードドライブ（ＨＤＤ）が宛先である。
【００８７】
記述領域３７８は、アプリケーションの記述を与える。例えば、埋め込みスキャンファームウェアＸｌｅｔは、Ｅｍｂｅｄｄｅｄ  Ｓｅｒｖｅｒｌｅｓｓ  Ｓｃａｎｎｉｎｇ（埋め込みサーバレススキャニング）と記述され、埋め込みスキャン遠隔設定ツールは、ＥｍｂｅｄｄｅｄＳｃａｎ  ｗｉｔｈ  Ｋｅｒｂｅｒｏｓ（ケルベロスを用いた埋め込みスキャン）と記述される。
【００８８】
ベンダー領域３７９は、どこの会社がプログラムを作ったかを示し、本例では、リコーがベンダーである。デバイスリスト３８０の領域には、インストールジョブが実行されうるところのデバイスが列挙される。ユーザがＯＫボタン３７０をクリックする場合に、図１６に示される埋め込みスキャンインストールジョブ状態ウィンドウ３９０が表示される。
【００８９】
埋め込みスキャンジョブ状態ウィンドウ３９０では、デバイスリストで見つけられる夫々のＭＦＰ４に対するインストール処理の状態を追跡することが可能である。ジョブ状態３９１の領域で、インストール関連処理は、ジョブがその時点で実行処理の最中であることを記述する。アップデートボタン３９２は、ジョブの状態をリフレッシュする。アップデートボタン３９２は、ジョブが完了するまで選択可能である。デバイス領域３９３は、ジョブを実行中の個々のＭＦＰ４ａ．．．ｎの名称又はＩＰアドレスを列挙する。
【００９０】
状態領域３９４は、夫々のＭＦＰ４ａ．．．ｎの個々の状態を示す。３つのオプション、即ち、実行中、成功又は失敗が、状態領域３９４で利用可能である。成功又は失敗のオプションは、インストールジョブがそのデバイスに関して完了する場合に表示される。通信ステップ領域３９５は、どの通信ステップをＭＦＰが目下処理しているかを示す。埋め込みスキャンインストールの例には、９つの可能な通信ステップが存在する。試行の現在のステップ領域３９６は、ネットワーク不具合の間のリトライを含み、表示される数は、システムが通信ステップ領域３９５で表示される通信ステップで試みた試行数を表す。最後に、失敗記述領域３９７は、失敗が起こった場合に、その失敗に関する詳細な記述を提供する。
【００９１】
ジョブが完了する場合に、ウィンドウは変わり、図１７に示される埋め込みスキャンインストールジョブ結果ウィンドウ４００が表示される。ジョブが完了する場合に、ジョブ状態領域３９１は完了と設定され、処理がいずれかのＭＦＰで失敗した場合には、失敗の数が記され、警告が領域４０１に示される。
【００９２】
デバイス領域３９３は、ＭＦＰのホスト名又はＩＰアドレスを示し、デバイスの状態がある。この場合、ジョブ状態は完了しているので、領域３９４に示される状態は、成功又は失敗のいずれか一方であるべきである。処理の経過時間は領域３９５に示され、失敗した通信ステップは、存在するならば、領域３９６に示される。失敗した通信ステップの領域３９６は、どの通信ステップで処理が失敗したかを示す。最後に、失敗記述領域３９７は、なぜ処理が失敗したかの記述を与える。
【００９３】
図１３に戻り、ユーザがアンインストールのサブミットボタン３４６をクリックする場合に、図１８に示される埋め込みスキャンアンインストール確認ページ４１０が表示される。埋め込みスキャンアンインストール確認ページ４１０では、ＯＫボタン４１１及びキャンセルボタン４１２の２つのボタンが利用可能である。ＯＫボタン４１１は、埋め込みスキャンアンインストール確認ウィンドウ４１０で簡単に記述される動作を実行し、キャンセルボタン４１２は、図１３で見られる埋め込みスキャンウィンドウ３４０へ戻す。
【００９４】
埋め込みスキャンアンインストール確認ウィンドウ４１０には、幾つかの領域が表示される。動作領域４１３は、何の動作が実行されているかを示し、本例では、アンインストールが実行されている。様式領域４１４は、アンインストール中の埋め込みスキャンコンポーネントの名称を示す。製品ＩＤ領域４１５は、アンインストールされるべきコンポーネントの製品ＩＤを示し、デバイスリスト領域４１６は、埋め込みスキャンアプリケーションがアンインストールされるところのＭＦＰ４のホスト名又はＩＰアドレスのリストを提供する。
【００９５】
ここで図１９に移り、この図は、図１０の情報取得ボタン３１２が押下される場合に表示される情報取得ウィンドウ４２０の一例を示す。情報取得ウィンドウ４２０の目的は、埋め込みスキャンファームウェアコンポーネント又はサーバコンポーネントがデバイスリストで見つけられる夫々のＭＦＰ４に関してインストール又はアンインストールをされているかどうかをユーザが問い合わせることを可能にする。埋め込みスキャンコンポーネントがインストールされる場合に、ＭＦＰにおけるインストールファームウェアに関する情報はアクセスされ得る。また、リスト上の夫々のＭＦＰのＪａｖａ(登録商標)プラットフォームＸｌｅｔ／サーバコンポーネントに関する更なる情報もアクセスされ得る。
【００９６】
埋め込みスキャンアプリケーションに問い合わせ（クエリー）を行う場合に、２つのオプション、即ち、第１のファームウェア４２１又は遠隔管理ツール４２２が利用可能である。ファームウェアはＸｌｅｔアプリケーション４２１であり、遠隔管理ツールはサーバアプリケーション４２２である。ユーザが２つのオプションのうちの１つを選択して、サブミット・クエリーボタン４２３をクリックする場合に、図２０に示される情報取得状態ウィンドウ４３０が表示される。
【００９７】
ジョブ状態領域４３２はジョブの状態を表示し、本例では、ジョブが実行中である。アップデートボタン４３３は、ユーザがインストールの状態をアップデートすることを可能にして、ウィンドウをアップデートする。デバイス領域４３４は、デバイスリストで見つけられるＭＦＰ４ａ．．．ｎの名称と、どれに対して情報取得クエリーが実行されているかとを列挙する。クエリーの状態４３５は、状態領域４３５で見つけられ、現在の通信ステップ４３６は、通信ステップ領域４３６で見つけられる。本例では、２つの通信ステップ、即ち、エージェントと更新中及びパネルロック閉鎖中が利用可能である。試行の現在のステップ領域４３７は、現在のステップでの試行数を示し、失敗記述領域４３８は、情報取得クエリーが失敗する場合に失敗に関する記述を示す。
【００９８】
ジョブが完了すると、図２１に示される情報取得結果ウィンドウ４４０が表示される。ジョブ状態領域４４１は完了と表示され、失敗の数及び警告は、失敗が存在した場合に領域４４２に示される。デバイス領域４３４は、ＭＦＰ４ａ．．．ｎのホスト名又はＩＰアドレスを列挙し、状態領域４３５はクエリーの状態を列挙する。２つのオプション、即ち、成功又は失敗が、状態領域で利用可能である。経過時間領域４４３は、クエリーが完了するのにどれくらいの時間を要したかを列挙する。失敗通信ステップ領域４４４は、通信が失敗を生じた場合に、どのステップで通信が失敗したかを列挙する。最後に、結果領域４４５は、図１９で見られる情報取得ウィンドウ４２０から問い合わせられるインストールされたコンポーネントに関する詳細情報を列挙する。
【００９９】
図１９に戻り、留意すべきは、Ｊａｖａ(登録商標)プラットフォームオプション４２４及び４２５が選択されて、サブミット・クエリー４２６がクリックされる場合に、同様の情報取得状態ウィンドウ及び結果ウィンドウが表示される点である。同様の結果は、また、遠隔管理ツールオプション４２２が選択され、サブミット・クエリーボタン４２３がクリックされる場合にも表示される。
【０１００】
ここで図２２に移り、この図は、図１０のジョブログボタン３１３がクリックされる場合に表示されるジョブログウィンドウ４５０を表す。ジョブログウィンドウ４５０は、領域４５１に示されるジョブ開始時間を有する。ユーザ領域４５２は、ユーザセッションの一意のＩＤ番号を有し、異なるセッションが区別されることを可能にする。ジョブ領域４５３は、ログイン及びログオフ並びにデバイスリストアップロード機能が実行される場合に、これらの機能とともに、ＭＦＰ４に対して実行されたジョブの名称を有する。
【０１０１】
デバイス領域４５４は、ジョブが実行されたＭＦＰ４のホスト名又はＩＰアドレスを有する。結果領域４５５は、ジョブが成功又は失敗であったかどうかを列挙する。存続時間領域４５６はジョブの存続時間を示し、ジョブ設定領域４５７は、ジョブ実行前にユーザが選択する設定を列挙する。ジョブがデバイスリストアップロードジョブであった場合に、ジョブ設定領域４５７は、アップロードファイルの名称を表示する。失敗記述領域４５８は、なぜジョブが失敗したのかと、ジョブのタイムアウト量とを示す詳細な技術的な失敗の記述を列挙する。
【０１０２】
最後に、失敗の場合に、ポスト情報領域４５９は、ジョブが失敗したステップを列挙する。代替的に、情報取得コマンドが実行された場合に、コンポーネントがインストール又はアンインストールをされたかどうかが、ポスト情報領域４５９に列挙される。
【０１０３】
最後に、図２３に移り、図１０のログアウトボタン３１４が押下される場合に、ログアウトウィンドウ４６０が表示される。ログアウトウィンドウ４６０は、ログアウトが成功したかどうかを４６１で示し、ユーザセッションに関連する全ての情報をクリアする。ログアウトウィンドウ４６０は、また、ユーザが再ログインすることを可能にするよう、ユーザ名領域４６２及びパスワード領域４６３並びにログインボタン４６４を有する。
【０１０４】
図２４は、本発明の実施例に従うＭＦＰ５００のハードウェア構成を示す。図２４に示されるように、ＭＦＰ５００は、コントローラ基板６００と、操作パネル６１０と、ファクシミリ制御ユニット（ＦＣＵ）６２０と、ＵＳＢ６３０と、ＩＥＥＥ１３９４ポート６４０と、プリンタ６５０とを有する。また、留意すべきは、ＩＥＥＥ１３９４ｂや、ＵＳＢ２．０を含め、他の形式のＩ／Ｏインターフェースが含まれても良い点である。コントローラ基板６００は、処理のためのＣＰＵ６０２と、ＭＦＰ５００に関連するデータを記憶するために使用される、例えば、ＳＤＲＡＭ６０３、ＳＲＡＭ６０８、フラッシュメモリ（フラッシュＲＯＭ）６０４、フラッシュカードインターフェース部６０６及びＨＤ６０５のような幾つかの記憶装置とを有する。これらの構成要素の夫々は、ＡＳＩＣ６０１へ接続されており、ＡＳＩＣ６０１は、特にＭＦＰ５００での使用のために設計された特定用途集積回路である。他の形式の記憶装置が、また、他の形式のデータプロセッサ及び集積回路とともに可能である。操作パネル６１０は、通信インターフェース６２０と同様に、ＡＳＩＣ６０１へ直接的に接続される。通信インターフェース６２０は、また、ネットワーク又は他のいずれかの同様の形式の通信媒体へ接続され得る。ＵＳＢ６３０、ＩＥＥＥ１３９４ポート６４０並びに、例えばスキャニング、印刷及びファクシミリなどの多機能プリンタ機能６５０は、ＰＣＩバス６８０を介してＡＳＩＣ６０１へ接続される。
【０１０５】
ＳＲＡＭ６０８は不揮発性ＲＡＭであり、他の形式のＳＲＡＭも可能である。フラッシュカード６０７は、フラッシュカードインターフェース部６０６に挿入されうるので、データは、フラッシュカードインターフェース部６０６を介してＡＳＩＣ６０１とフラッシュカード６０７との間で送信／受信される。
【０１０６】
操作パネル６１０は、ユーザによる、例えばキー入力のようなキー操作及びボタン押下などのために使用される操作部と、例えば様々な画面のような描画データを表示するための表示部とを有する。当然のことながら、他の形式のハードウェア部品が本発明で使用され得る。
【０１０７】
更に、例えば、フロッピーディスク(登録商標)、磁気テープ、ＣＤ−ＲＯＭなどのコンピュータ読取可能な媒体に関して、コンピュータ読取可能な媒体に記憶されたプログラムをＭＦＰにインストールすることによって、ＭＦＰは本発明の機能を実行することができる。
【０１０８】
本発明は、多機能プリンタに関して記載されてきたが、例えば、コピー機、デジタルコピー機、プリンタ、スキャナ、デジタルカメラ、ファクシミリ機、若しくは多機能プリンタ、又はそれらの組合せなど、如何なる画像処理装置にも適用可能である。汎用コンピュータは画像処理装置として考えられない。更に、本発明は、プログラミング又はプログラムプロセッサを用いて動作する、例えば、ナビゲーションシステム、衛星利用測位システム、自動販売機、計測システム、工作機械、及び他の工具などの他の特殊用途デバイス、自動車、例えば、電車、オードバイ、飛行機、又はボートなどの他の移動手段、レーダーシステム、無線、ＭＰ３プレーヤー、デジタル音楽プレーヤー、及び他の音声システム、携帯電話、他の通信デバイス及びシステム、並びにプラグインを用いて動作する如何なる他の特殊用途デバイスへも適用可能である。
【０１０９】
本発明は、特に開示される実施形態に限定されず、変形及び変更が、本発明の適用範囲を逸脱することなく実施され得る。
【図面の簡単な説明】
【０１１０】
【図１】本発明の例となる実施形態に従う個々のＭＦＰ、クライアント、及びアプリケーションサーバの間の関係の外観を示すブロック図である。
【図２】本発明の一実施例に従うＭＦＰとアプリケーションサーバとの間の相互作用のブロック図である。
【図３】本発明の一実施例に従うＭＦＰとアプリケーションサーバとの間の相互作用のより詳細なブロック図である。
【図４】本発明の実施例に従う夫々の個々のＭＦＰ、夫々のクライアント、及びアプリケーションサーバの間の関係の外観を示すブロック図である。
【図５】どのようにアプリケーションサーバにインストールされたＲｅｍＩｎｓｔａｌｌプログラムがＭＦＰにインストールされたエージェントへの通信シーケンスの準備をするかを表すドメインモデルである。
【図６】遠隔ジョブを実行するための一般的なシーケンスを示す図である。
【図７ａ】アプリケーションサーバから夫々のＭＦＰに含まれるエージェントへ送信されるコマンドを表すシーケンス図である。
【図７ｂ】アプリケーションサーバから夫々のＭＦＰに含まれるエージェントへ送信されるコマンドを表すシーケンス図である。
【図８ａ】夫々のＭＦＰに含まれるエージェントによって用いられる擬似コード論理をループする例を示す。
【図８ｂ】夫々のＭＦＰに含まれるエージェントによって用いられるループ擬似コードログインの例を示す。
【図９】ログインウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１０】メインメニューウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１１】デバイスリストウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１２】デバイスリストウィンドウが、デバイスリストがアップロードされた後に表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１３】埋め込みスキャンウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１４】埋め込みスキャン構造ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１５】埋め込みスキャンインストール確認ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１６】埋め込みスキャンインストールジョブ状態が表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１７】埋め込みスキャンインストールジョブ結果が表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１８】埋め込みスキャンアンインストール確認ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図１９】取得情報ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図２０】取得情報状態ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図２１】取得情報結果ウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図２２】ジョブログウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図２３】ログアウトウィンドウが表示されるところの例となるウェブベースのクライアントインターフェースである。
【図２４】本発明の実施例に従うＭＦＰ５００のハードウェア構成を示す。
【符号の説明】
【０１１１】
１，２  クライアント
３  アプリケーションサーバ（ＨＴＴＰ）
４，５００  デバイス（ＭＦＰ又はＬＰ）
５  ＲｅｍＩｎｓｔａｌｌプログラム
６  ＲｉＤｅｐｌｏｙエージェント
８  ブラウザ
９，１１，１３  ＮＩＣカード
１４，６０２  ＣＰＵ
１５  ＲＯＭ
１６  エンジン
１８  スロット
２０  Ｊａｖａ(登録商標)プラットフォーム
６００  コントローラ基板
６０１  ＡＳＩＣ
６０３  ＳＤＲＡＭ
６０４  フラッシュメモリ
６０５  ハードディスク（ＨＤ）
６０６  フラッシュカードインターフェース部
６０７  フラッシュカード
６０８  ＳＲＡＭ
６１０  操作パネル
６２０  通信インターフェース
６３０  ＵＳＢ
６４０  ＩＥＥＥ１３９４ポート
６５０  プリンタ
６８０  ＰＣＩバス
【図１】
2008123518.tif 000003
【図２】
2008123518.tif 000004
【図３】
2008123518.tif 000005
【図４】
2008123518.tif 000006
【図５】
2008123518.tif 000007
【図６】
2008123518.tif 000008
【図７ａ】
2008123518.tif 000009
【図７ｂ】
2008123518.tif 000010
【図８ａ】
2008123518.tif 000011
【図８ｂ】
2008123518.tif 000012
【図９】
2008123518.tif 000013
【図１０】
2008123518.tif 000014
【図１１】
2008123518.tif 000015
【図１２】
2008123518.tif 000016
【図１３】
2008123518.tif 000017
【図１４】
2008123518.tif 000018
【図１５】
2008123518.tif 000019
【図１６】
2008123518.tif 000020
【図１７】
2008123518.tif 000021
【図１８】
2008123518.tif 000022
【図１９】
2008123518.tif 000023
【図２０】
2008123518.tif 000024
【図２１】
2008123518.tif 000025
【図２２】
2008123518.tif 000026
【図２３】
2008123518.tif 000027
【図２４】
2008123518.tif 000028