[1]構成
図1は、本実施形態に係るシステム1の構成を示す模式図である。システム1は、サーバ10と、画像形成装置20(表示制御装置の一例)とを備える。サーバ10は、いわゆるWebサーバの機能を提供する装置である。画像形成装置20は、コピー、スキャン、ファクシミリ、プリント(画像データの媒体への出力)などのサービスを利用者に提供する装置である。画像形成装置20は、媒体に画像を形成する画像形成処理や、媒体に形成された画像を読み取る画像読取処理などの処理を行う。これらの処理は、コピー、スキャン、ファクシミリ、プリントなどのサービスが利用者に提供される際に行われる。通信回線2は、例えばインターネットや移動体通信網、電話回線などのうちの少なくとも1つ以上を含む。通信回線2には、サーバ10および画像形成装置20が接続されている。
画像形成装置20にはWebブラウザが搭載されている。このWebブラウザが装置内部に搭載されたWebサーバや外部装置のWebサーバにアクセスすることで、画像形成装置20の操作画面が、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)などのWeb技術により実現される。Webブラウザは予め定められたURL(Uniform Resource Locator)で示されるWebサーバから操作画面を表示するためのデータ(HTMLで記述されたデータなど)を取得し、これを解析して表示装置に解析結果を表示する。表示部品(ボタンやテキスト)に対する操作により、そのデータに記述されたWebサーバのアクセス先(URL)にデータの取得要求が送信され、Webサーバから返送されるファイルの情報(MIMEタイプ(text/html、text/plain、text/javascript、text/css、text/xml、image/jpeg、image/png、image/bmp、等))に応じた処理が行われる。例えばファイル情報がHTMLであれば構文が解析され、表示が行われる。ファイル情報がJPEGであればJPEG画像が解凍されて表示される。ファイル情報がJavaScriptならばプログラムが解析され実行される。Webサーバは、Webブラウザからの要求に対して必要なファイルを返送すると共に、必要に応じた処理を実行する。
図2は、システム1の機能構成の一例を示す図である。画像形成装置20は、処理実行手段201と、取得手段202と、記憶手段203と、描画処理手段204とを有する。処理実行手段201は、利用者の操作に応じた処理を実行する。取得手段202は、利用者の操作履歴、処理実行手段201によって実行された処理の実行履歴、画像形成装置20が使用する消耗品の使用量、画像形成装置20に含まれる機器の稼働量および画像形成装置20に設けられた検知手段の出力値の少なくともいずれかの情報を含む履歴情報が予め定められた条件を満たす場合、上記履歴情報に対応付けられた画面を表示するためのデータを、その画面の表示を指示されているか否かに関わらず、Webサーバから取得する。記憶手段203は、取得手段202によって取得されたデータをメモリ205に記憶する。描画処理手段204は、画面の表示を指示された場合、指示された画面に対応するデータがメモリ205に記憶されている場合に上記データに従って画面の描画処理を行う。
図3は、画像形成装置20のハードウェア構成を例示する図である。画像形成装置20は、制御モジュール21と、ディスプレイ22と、操作パネル23と、認証装置24と、記憶装置26と、通信I/F27と、原稿送り装置28と、画像読取装置29と、プリント装置30とを備える。制御モジュール21は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを備える。CPUは画像形成装置20の各部を制御する。ROMはプログラムおよびデータを記憶する不揮発性の記憶装置である。RAMはCPUがプログラムを実行する際の作業領域として機能する揮発性の主記憶装置である。
ディスプレイ22は、例えば液晶ディスプレイを有し、制御モジュール21により制御されて表示面に画像を表示する。操作パネル23は、例えばタッチスクリーンとキーとを備えている。操作パネル23は、画像形成装置20を操作するために用いられる。認証装置24は、例えばカードリーダなどを備え、利用者を認証するための認証情報を読み取る。記憶装置26は、ハードディスクドライブなどを備え、プログラムおよびデータを記憶する不揮発性の補助記憶装置である。通信I/F27は、通信回線2を介した通信を行うためのインターフェースであり、この例では特に、サーバ10と通信を行うためのインターフェースである。
原稿送り装置28は、複数の搬送ロールなどを備え、利用者によりセットされた原稿を画像読取装置29に搬送する。画像読取装置29は、例えばCCD(Charge Coupled Devices)方式を用いて、原稿に描かれた画像を読み取る画像読取処理を行う。画像読取装置29は、用紙などの媒体に形成された画像を光学的に読み取って、読み取った画像を表す画像データを制御モジュール21に供給する。プリント装置30は、例えば電子写真方式を用いて、画像データに応じた画像を用紙などの媒体に形成する。なお、画像の読み取りおよび画像の形成に用いられる前述した方式は、それぞれ一例であり、他の方式であってもよい。
この例で、記憶装置26(またはROM)に記憶されているプログラムを制御モジュール21が実行することにより、図2に示される機能が実装される。プログラムを実行している制御モジュール21、または、制御モジュール21および通信I/F27は、処理実行手段201、取得手段202、記憶手段203および描画処理手段204の一例である。制御モジュール21のRAMはメモリの一例である。
記憶装置26には、操作頻度管理テーブル261と、処理実行頻度管理テーブル262と、故障予測管理テーブル263と、消耗品交換予測管理テーブル264と、センサ管理テーブル265とが記憶されている。これらのテーブルは、制御モジュール21が操作画面を表示するためのデータをキャッシュまたはプリロードするかを判定する際に参照される。操作頻度管理テーブル261は、利用者の操作履歴を保持するためのテーブルであり、この例で、利用者による利用回数がサービス毎に記憶される。処理実行頻度管理テーブル262は、処理の実行履歴を保持するためのテーブルであり、この例で、各サービスに対応する処理の実行回数が記憶される。故障予測管理テーブル263は、画像形成装置20に含まれる機器の稼働量を管理するためのテーブルであり、この例で、搬送ロールなどの機器の稼働回数が記憶される。消耗品交換予測管理テーブル264は、画像形成装置20が使用する消耗品の使用量を管理するためのテーブルであり、この例で、消耗品の残量を示す値が記憶される。センサ管理テーブル265は、プリント装置30や原稿送り装置28などに設けられたセンサ(検知手段の一例)と、そのセンサから出力があった場合に実行されるサービスとの対応関係を示すテーブルである。
また、記憶装置26には、プリロード管理テーブル266と、キャッシュ管理テーブル267と、サービス管理テーブル268とが記憶されている。プリロード管理テーブル266は、操作画面を表示するためのデータをプリロードすると判定されたサービスが登録されるテーブルである。キャッシュ管理テーブル267は、操作画面を表示するためのデータをキャッシュすると判定されたサービスが登録されるテーブルである。サービス管理テーブル268は、各サービスに対応する操作画面の格納場所を管理するためのテーブルである。
[2]動作
図4は、画像形成装置20の制御モジュール21が行う処理の流れを示すフローチャートである。図4に示される処理は、画像形成装置20の電源がオンされたことをトリガとして開始される。ステップS101において、制御モジュール21は画像形成装置20の初期化処理を行う。
図5は、図4のステップS101における初期化処理の流れを示すフローチャートである。ステップS201において、制御モジュール21は画像形成装置20に含まれる機器などについて予め設定された初期化処理を行う。ステップS202乃至ステップS205において、制御モジュール21は操作頻度管理テーブル261、処理実行頻度管理テーブル262、故障予測管理テーブル263および消耗品交換予測管理テーブル264をそれぞれ参照し、各テーブルの記憶内容に従ってどの操作画面に対応するデータをキャッシュ(またはプリロード)するかを特定する処理を行う。
図6は、図5のステップS202に示した操作頻度管理テーブル処理の流れを示すフローチャートである。ステップS301において、制御モジュール21は、操作頻度管理テーブル261のエントリを確認する。
図7は、操作頻度管理テーブル261の内容の一例を示す図である。図示のように、このテーブルには、「サービス」と「ベースURL」と「利用回数」と「閾値」と「利用者」との各項目が互いに関連付けて記憶される。これらの項目のうち、「サービス」の項目には、「コピー」や「ファクシミリ」などのサービスの種別を示す情報が格納される。「ベースURL」の項目には、そのサービスに対応する操作画面のデータのベースURL(ベースパス)を示す情報が格納される。「利用回数」の項目には、そのサービスが利用された回数を示す情報が格納される。「閾値」の項目には、サービス毎に予め設定された閾値が格納される。この実施形態では、サービスの利用回数が予め設定された閾値を超える場合、制御モジュール21はそのサービスに対応する操作画面のデータをプリロードまたはキャッシュする。この閾値は固定値であってもよく、また、変更可能であってもよい。なお、プリロード処理およびキャッシュ処理の詳細については後述するためここではその詳細な説明を省略する。「利用者」の項目には、利用者を識別する情報が記憶される。図7の例では、この項目には、特定の利用者に限定されない旨を示す「共用」が記憶されている。
図6の説明に戻る。ステップS302において、制御モジュール21は、ステップS301で確認されたエントリの「利用回数」に格納されている値がそのエントリの「閾値」を越えるかを判定する。閾値を越える場合、制御モジュール21はステップS303の処理に進む。一方、閾値以下である場合、制御モジュール21はステップS301の処理に戻り、次のエントリについての確認処理を行う。
ステップS303において、制御モジュール21は、利用回数が閾値を越えるサービスに対応するURLをサービス管理テーブル268から検索する。
図8は、サービス管理テーブル268の内容の一例を示す図である。サービス管理テーブル268は、各サービスに対応する操作画面のデータのURL(格納場所)を管理するためのテーブルである。このテーブルには、「サービス」と「ベースURL」との各項目が互いに関連付けて記憶される。これらの項目のうち、「サービス」の項目には、サービスの種別を示す情報が格納される。この例で、サービスには、「コピー」や「スキャン」などのサービスに加えて、画像形成装置20に含まれる部材が故障した場合に提供されるサービスや、消耗品の交換が必要になった場合に提供されるサービスが含まれる。「ベースURL」の項目には、そのサービスに対応するURL(データの格納場所を示す情報)が格納される。
図6の説明に戻る。URLが検索されると、ステップS304において、制御モジュール21は、プリロード処理を行うか、キャッシュ処理を行うかを判定する。この判定は、サービスの種別毎にどちらの処理を行うかが予め設定され、その設定値が参照されることにより行われてもよい。プリロード処理を行うと判定された場合(ステップS304;Y)、制御モジュール21はステップS305の処理に進む。
ステップS305において、制御モジュール21は、プリロード管理テーブル266に、検索されたURLを登録する。
図9は、プリロード管理テーブル266の内容の一例を示す図である。プリロード管理テーブル266は、操作画面のデータをプリロードすると判定されたサービスが登録されるテーブルである。このテーブルには、「サービス」と「URL」との各項目が互いに関連付けて記憶される。これらの項目のうち、「サービス」の項目には、サービスの種別を示す情報が格納される。「URL」の項目には、そのサービスに対応するURL(データの格納場所を示す情報)が格納される。
図6の説明に戻る。ステップS305の処理を終えると、ステップS306において、制御モジュール21は、プリロード処理を行う旨を指示する。ステップS306の処理を終えると、制御モジュール21はステップS309の処理に進む。
ステップS304において、キャッシュ処理を行うと判定された場合(ステップS304;N)、制御モジュール21はステップS307の処理に進む。ステップS307において、制御モジュール21は、キャッシュ管理テーブル267に、検索されたURLを登録する。
図10は、キャッシュ管理テーブル267の内容の一例を示す図である。キャッシュ管理テーブル267は、操作画面のデータをキャッシュすると判定されたサービスが登録されるテーブルである。このテーブルには、「サービス」と「URL」との各項目が互いに関連付けて記憶される。これらの項目のうち、「サービス」の項目には、サービスの種別を示す情報が格納される。「URL」の項目には、そのサービスに対応するURL(データの格納場所を示す情報)が格納される。
図6の説明に戻る。ステップS307の処理を終えると、ステップS308において、制御モジュール21は、キャッシュ処理を行う旨を指示する。ステップS308の処理を終えると、制御モジュール21はステップS309の処理に進む。ステップS309において、制御モジュール21は、操作頻度管理テーブル261に次のエントリがあるかを判定する。次のエントリがある場合(ステップS309;Y)、制御モジュール21はステップS301の処理に戻り、次のエントリの確認処理を行う。一方、次のエントリがない場合(ステップS309;N)、制御モジュール21は処理を終了する。
図5の説明に戻る。ステップS202の処理を終えると、制御モジュール21は、ステップS203において、処理実行頻度管理テーブル262の記憶内容に従ってどの操作画面のデータをキャッシュ(またはプリロード)するかを特定する処理を行う。
図11は、図5のステップS203に示した処理実行頻度管理テーブル処理の流れを示すフローチャートである。ステップS401において、制御モジュール21は、処理実行頻度管理テーブル262のエントリを確認する。
図12は、処理実行頻度管理テーブル262の内容の一例を示す図である。図示のように、このテーブルには、「サービス」と「リクエストURL」と「利用回数」と「閾値」と「利用者」との各項目が互いに関連付けて記憶される。これらの項目のうち、「サービス」の項目にはサービスの種別を示す情報が格納される。「リクエストURL」の項目には、そのサービスに対応する操作画面のデータの格納場所を示す情報が格納される。「利用回数」の項目には、そのサービスに対応する処理が実行された回数を示す情報が格納される。「閾値」の項目には、サービス毎に予め設定された閾値が格納される。この実施形態では、サービスに対応する処理の実行回数が予め設定された閾値を超える場合、そのサービスに対応する操作画面のデータがプリロードまたはキャッシュされる。この閾値は変更可能であってもよいし、固定値であってもよい。「利用者」の項目には、利用者を識別する情報が記憶される。
図11の説明に戻る。ステップS402において、制御モジュール21は、ステップS401で確認されたエントリの「利用回数」に格納されている値がそのエントリの「閾値」を越えるかを判定する。閾値を越える場合、制御モジュール21はステップS403の処理に進む。一方、閾値以下である場合、制御モジュール21はステップS401の処理に戻り、次のエントリについての確認処理を行う。
ステップS403において、制御モジュール21は、実行回数が閾値を越えるサービスに対応するURLをサービス管理テーブル268から検索する。ステップS403の処理を終えると、制御モジュール21はステップS304の処理に進む。図11のステップS304以降の処理(ステップS304乃至ステップS309の処理)は、図6のステップS304乃至ステップS309の処理と同様である。
図5の説明に戻る。ステップS203の処理を終えると、制御モジュール21はステップS204の処理に進む。ステップS204において、制御モジュール21は、故障予測管理テーブル263の記憶内容に従って、どのデータをキャッシュ(またはプリロード)するかを特定する処理を行う。
図13は、図5のステップS204に示した故障予測管理テーブル処理の流れを示すフローチャートである。ステップS501において、制御モジュール21は、故障予測管理テーブル263のエントリを確認する。
図14は、故障予測管理テーブル263の内容の一例を示す図である。図示のように、このテーブルには、「情報」と「稼働回数」と「閾値」と「サービス名」との各項目が互いに関連付けて記憶される。これらの項目のうち、「情報」の項目には、画像形成装置20に含まれる部材の種別を示す情報が格納される。この項目には、例えば、媒体を搬送する搬送ロールを識別する情報が格納される。「稼働回数」の項目には、その部材の稼働回数を示す情報が格納される。「閾値」の項目には、部材毎に予め設定された閾値が格納される。この実施形態では、部材の稼働回数が予め定められた閾値を超える場合、制御モジュール21はその部材が故障した場合に表示される画面のデータをプリロードまたはキャッシュする。この閾値は変更可能であってもよいし、固定値であってもよい。「サービス名」の項目には、その部材が故障した場合に行われる処理(その部材が故障した場合に提供されるサービス)の種別を示す情報が格納される。
図13の説明に戻る。ステップS502において、制御モジュール21は、ステップS501で確認されたエントリの「稼働回数」に格納されている値がそのエントリの「閾値」を越えているかを判定する。閾値を越える場合、制御モジュール21はステップS503の処理に進む。一方、閾値以下である場合、制御モジュール21はステップS501の処理に戻り、次のエントリについての確認処理を行う。
ステップS503において、制御モジュール21は、稼働回数が閾値を越える部材に対応するサービスに対応するURLをサービス管理テーブル268から検索する。ステップS503の処理を終えると、制御モジュール21はステップS304の処理に進む。図13のステップS304以降の処理(ステップS304乃至ステップS309の処理)は、図6のステップS304乃至ステップS309の処理と同様である。
図5の説明に戻る。ステップS204の処理を終えると、制御モジュール21はステップS205の処理に進む。ステップS205において、制御モジュール21は、消耗品交換予測管理テーブル264の記憶内容に従って、どのデータをキャッシュ(またはプリロード)するかを特定する処理を行う。
図15は、図5のステップS205に示す消耗品交換予測管理テーブル処理の流れを示すフローチャートである。ステップS601において、制御モジュール21は、消耗品交換予測管理テーブル264のエントリを確認する。
図16は、消耗品交換予測管理テーブル264の内容の一例を示す図である。図示のように、このテーブルには、「情報」と「現在値」と「閾値」と「サービス名」との各項目が互いに関連付けて記憶される。これらの項目のうち、「情報」の項目には、画像形成装置20が使用する消耗品の種別を示す情報が格納される。「現在値」の項目には、その消耗品の使用量または残量を示す情報が格納される。図の例では、消耗品の残量を示す値が格納される。「閾値」の項目には、消耗品毎に予め設定された閾値が格納される。この実施形態では、消耗品の残量が予め定められた閾値未満の場合(消耗品の使用量が予め定められた閾値を超える場合)、制御モジュール21はその消耗品が無くなった場合に表示される画面のデータをプリロードまたはキャッシュする。この閾値は変更可能であってもよいし、固定値であってもよい。「サービス名」の項目には、その消耗品が無くなった場合に行われる処理(その消耗品が無くなった場合に提供されるサービス)の種別を示す情報が格納される。
図15の説明に戻る。ステップS602において、制御モジュール21は、ステップS601で確認されたエントリの「現在値」に格納されている値がそのエントリの「閾値」を下回っているかを判定する。閾値を下回っている場合、制御モジュール21はステップS603の処理に進む。一方、閾値以上である場合、制御モジュール21はステップS601の処理に戻り、次のエントリについての確認処理を行う。
ステップS603において、制御モジュール21は、現在値が閾値を下回っている消耗品に対応するサービスに対応するURLをサービス管理テーブル268から検索する。図16に示す例では、「Toner」が閾値を下回っているので、「Warning1」のサービスに対応するデータがプリロードまたはキャッシュの対象となる。ステップS603の処理を終えると、制御モジュール21はステップS304の処理に進む。図15のステップS304以降の処理(ステップS304乃至ステップS309の処理)は、図6のステップS304乃至ステップS309の処理と同様である。
図5の説明に戻る。ステップS205の処理を終えると、制御モジュール21はステップS206の処理に進む。ステップS206において、制御モジュール21は、初期画面を表示するためのデータが格納されているURL(固定URLという)にアクセスする。この例で、サーバ10とのI/FはHTTPが使用される。例えば固定URLが「http://xxxxxx/cs/init.htm」である場合、「GET http://xxxxxx/cs/init.htm HTTP1.1」といったリクエストがサーバ10へ送信される。この場合、サーバ10からは「HTTP1.1 200 Ok Content-Length: 123 Content-Type: text/html」といったヘッダを有するレスポンスが返信される。ステップS206の処理を終えると、制御モジュール21は図4の処理に戻り、ステップS102以降の処理を行う。
図4の説明に戻る。制御モジュール21は、処理が指示されるまで待機し(ステップS102;N)、処理が指示されると(ステップS102;Y)、ステップS103の処理に進む。ステップS103において、制御モジュール21はプリロードが指示されたかを判定する。プリロード指示は、例えば、図6、図11、図13および図15のステップS306の処理で発行される。プリロード指示である場合(ステップS103;Y)、制御モジュール21はステップS104に進み、プリロード処理を行う。一方、プリロード指示でない場合(ステップS103;N)、制御モジュール21はステップS105の処理に進む。
ステップS105において、制御モジュール21はキャッシュを指示されたかを判定する。キャッシュ指示である場合(ステップS105;Y)、制御モジュール21はステップS106の処理に進み、キャッシュ処理を行う。一方、キャッシュ指示でない場合(ステップS105;N)、制御モジュール21はステップS107の処理に進む。
ステップS107において、制御モジュール21は、センサの出力値の変化があったかを判定する。センサの出力値の変化があった場合(ステップS107;Y)、制御モジュール21はステップS108の処理に進む。一方、センサの出力値が変化していない場合(ステップS107;N)、制御モジュール21はステップS109の処理に進む。
ステップS109において、制御モジュール21は、サーバ10からデータを受信したかを判定する。サーバ10からデータを受信した場合(ステップS109;Y)、制御モジュール21はステップS110に進み、受信処理を行う。一方、サーバ10からデータを受信していない場合(ステップS109;N)、制御モジュール21はステップS111の処理に進む。
ステップS111において、制御モジュール21は、画像形成装置20に含まれる機器、部材(部品)、消耗品などに関する情報(以下「利用情報」という)が更新されたかを判定する。利用情報は、例えば、部材の稼働回数を示す情報や、消耗品の現在値を示す情報である。利用情報が更新されている場合(ステップS111;Y)、制御モジュール21はステップS112に進み、情報更新処理を行う。一方、利用情報が更新されていない場合(ステップS111;N)、制御モジュール21はステップS113の処理に進む。
ステップS113において、制御モジュール21は、利用者による操作が検知されたかを判定する。利用者による操作があった場合(ステップS113;Y)、制御モジュール21はステップS114の処理に進み、操作処理を行う。一方、利用者による操作が検知されていない場合(ステップS113;N)、制御モジュール21はステップS115の処理に進む。
ステップS115において、制御モジュール21は、認証操作が検知されたかを判定する。例えば、ICカードリーダにICカードがかざされた場合に認証操作が検知されたと判定されてもよい。認証操作が検知された場合(ステップS115;Y)、制御モジュール21はステップS116の処理に進み、認証処理を行う。一方、認証処理が検知されていない場合(ステップS116;N)、制御モジュール21はステップS102の処理に戻る。
図17は、図4のステップS104に示すプリロード処理の流れを示すフローチャートである。ステップS701において、制御モジュール21は、プリロード管理テーブル266のエントリを確認する。ステップS702において、制御モジュール21は、プリロード管理テーブル266に登録されているURLを検索する。ステップS703において、制御モジュール21は、URLにアクセスしてサーバ10からデータを取得する。取得されたデータにプログラムが含まれる場合、制御モジュール21はプログラムを解釈および実行して表示データを生成し、生成した表示データをメモリに格納する。
ステップS704において、制御モジュール21はプリロード管理テーブル266に次のエントリがあるかを判定する。次のエントリがある場合(ステップS704;Y)、制御モジュール21はステップS701の処理に戻り、次のエントリについてプリロードを行う。
図18は、図4のステップS106に示すキャッシュ処理の流れを示すフローチャートである。この例では、制御モジュール21は、キャッシュ管理テーブル267に登録されているURLに対応するデータを、Webブラウザのディスクキャッシュ機能を用いてキャッシュする。ステップS801において、制御モジュール21は、キャッシュ管理テーブル267のエントリを確認する。ステップS802において、制御モジュール21は、キャッシュ管理テーブル267からURLを検索する。ステップS803において、制御モジュール21は、URLにアクセスしてサーバ10からデータを取得し、取得したデータをメモリに格納する。
ステップS804において、制御モジュール21はキャッシュ管理テーブル267に次のエントリがあるかを判定する。次のエントリがある場合(ステップS804;Y)、制御モジュール21はステップS801の処理に戻り、次のエントリについてキャッシュ処理を行う。
図19は、図4のステップS108に示すセンサ処理の流れを示すフローチャートである。ステップS901において、制御モジュール21はセンサ管理テーブル265のエントリを確認する。
図20は、センサ管理テーブル265の内容の一例を示す図である。図示のように、このテーブルには、「情報」と「サービス名」との各項目が互いに関連付けて記憶される。これらの項目のうち、「情報」の項目には、センサによって検知される画像形成装置20における状態変化の種別を示す情報が記憶される。例えば、媒体が収容されている収容部がオープンされたことを示す情報や、トナーが収容されている部分の扉がオープンされたことを示す情報、画像読取装置29に原稿がセットされたことを示す情報などが記憶される。「サービス名」の項目には、各情報に対応するサービスの種別を示す情報が格納される。例えば、媒体の収容部がオープンされた状態を示す情報には「コピー」のサービスが対応付けられ、原稿が画像読取装置29にセットされたことを示す情報には「スキャン」のサービスが対応付けられてもよい。
図19の説明に戻る。ステップS902において、制御モジュール21は、センサ管理テーブル265から検知されたセンサの出力値に対応するサービスを検索する。例えば、センサ情報が「Document Set」の場合、原稿送り装置28に原稿がセットされたことを意味するので、Copyサービスが選択される。ステップS903において、制御モジュール21は、ステップS902で検索されたサービスに対応するURLを、サービス管理テーブル268から検索する。URLが検索されると、制御モジュール21はステップS304の処理に進む。図19のステップS304以降の処理(ステップS304乃至ステップS309の処理)は、図6のステップS304乃至ステップS309の処理と同様である。
図21は、図4のステップS110に示す受信処理の流れを示すフローチャートである。ステップS1101において、制御モジュール21は、サーバ10から受信されたデータ(以下「受信情報」という)がキャッシュ対象であるかを判定する。この判定は、受信情報の取得元のアドレスがキャッシュ管理テーブル267に登録されているかによって判定されてもよい。受信情報がキャッシュ対象でない場合(ステップS1101;N)、制御モジュール21はステップS1102の処理に進む。一方、受信情報がキャッシュ対象である場合(ステップS1101;Y)、制御モジュール21は、ステップS1107において、受信情報を予め定められた記憶領域にキャッシュする。
ステップS1102乃至ステップS1111の処理では、制御モジュール21は受信情報のMIMEタイプに応じた処理を行う。まず、ステップS1102において、制御モジュール21は、受信情報がHTMLまたはCSSで記述されたデータであるかを判定する。この判定は、例えばサーバ10から送信されてきたHTTPレスポンスのヘッダにより判定されてもよい。受信情報がHTMLまたはCSSで記述されたデータである場合(ステップS1102;Y)、制御モジュール21はステップS1103の処理に進む。一方、受信情報がHTMLで記述されたデータでもCSSで記述されたデータでもない場合(ステップS1102;N)、制御モジュール21はステップS1108の処理に進む。
ステップS1103において、制御モジュール21は、HTMLまたはCSSのデータを解析し、画面を描画するための表示データを生成する。生成された表示データは予め定められた記憶領域に記憶される。ステップS1104において、受信情報がプリロード対象であるかを判定する。受信情報がプリロード対象でない場合(ステップS1104;N)、制御モジュール21はステップS1103で生成した表示データをディスプレイ22に出力して表示データの表す画面をディスプレイ22に表示する。
図27は表示される画面の一例を示す図である。図において、メニュー画面G1は、画像形成装置20が提供するサービスを利用者が選択するための初期画面である。操作画面G2は、図4のメニュー画面G1において「スキャナー(メール送信)」のメニューが選択された場合に表示される画面の一例である。
一方、受信情報がプリロード対象である場合(ステップS1104;Y)、制御モジュール21は表示処理を行うことなく(すなわちステップS1105の処理を行うことなく)、ステップS1106の処理に進む。ステップS1106において、制御モジュール21は、他に必要な情報がある場合はその情報をサーバ10から取得するためにサーバ10に再度アクセスする。
ステップS1108において、制御モジュール21は、受信情報が画像を表す画像データであるかを判定する。画像データである場合(ステップS1108;Y)、制御モジュール21はステップS1109の処理に進む。一方、受信情報が画像データでない場合(ステップS1108;N)、制御モジュール21はステップS1112の処理に進む。
ステップS1109において、制御モジュール21は、画像データを解析し、画面を描画するための表示データを生成する。生成された表示データは予め定められた記憶領域に記憶される。ステップS1110において、制御モジュール21は、受信情報がプリロード対象であるかを判定する。受信情報がプリロード対象でない場合(ステップS1110;N)、制御モジュール21はステップS1109で生成した表示データをディスプレイ22に出力して表示データの表す画像をディスプレイ22に表示する。一方、受信情報がプリロード対象である場合(ステップS1110;Y)、制御モジュール21は表示処理を行うことなく(すなわちステップS1111の処理を行うことなく)処理を終了する。
ステップS1112において、制御モジュール21は受信情報がJavaScriptであるかを判定する。受信情報がJavaScriptである場合(ステップS1112;Y)、制御モジュール21はステップS113の処理に進み、プログラムを評価し、必要に応じて処理を実行する。
図22は、図4のステップS112に示す情報更新処理の流れを示すフローチャートである。情報更新処理では、制御モジュール21は、更新された利用情報が、部材の稼働回数を示す情報(部品稼働情報)であるか、消耗品の現在値を示す情報(消耗品管理情報)であるかによって異なる処理を行う。ステップS1201において、制御モジュール21は、更新された利用情報が部品稼働情報であるかを判定する。部品稼働情報である場合(ステップS1201;Y)、制御モジュール21は、ステップS1202の処理に進み、故障予測管理テーブル263の内容を更新する。一方、部品稼働情報でない場合(ステップS1201;N)、制御モジュール21は、ステップS1203の処理に進む。
ステップS1203において、制御モジュール21は、更新された利用情報が消耗品管理情報であるかを判定する。消耗品管理情報である場合(ステップS1203;Y)、制御モジュール21は、ステップS1204の処理に進み、消耗品交換予測管理テーブル264の内容を更新する。一方、消耗品管理情報でない場合(ステップS1203;N)、制御モジュール21はステップS1204の処理を行うことなくそのまま処理を終了する。
図23は、図4のステップS114に示す操作処理の流れを示すフローチャートである。ステップS1301において、制御モジュール21は、検知された操作が、操作パネルを用いた操作であるかを判定する。
図28は、ディスプレイ22に表示される画面の一例を示す図である。図において、情報閲覧画面G3は、ブラウザの操作パネルP1が画面上部に表示され、操作パネルP1が操作されることにより、「戻る」、「進む」、「停止」、「リロード」などの動作が実施される。
検知された操作が操作パネル23または操作パネルP1を用いた操作である場合(ステップS1301;Y)、制御モジュール21はステップS1302の処理に進む。一方、操作パネル23または操作パネルP1を用いた操作でない場合(ステップS1301;N)、制御モジュール21はステップS1303の処理に進む。ステップS1302において、制御モジュール21は、利用者によって操作された内容に応じた処理を行う。例えば、制御モジュールは、利用者の操作に応じて画面を遷移させたり、処理を停止したり、といった制御を行う。
ステップS1303において、制御モジュール21は、検知された操作がリンクの選択またはフォームの選択であるかを判定する。例えば、操作された領域に対応する箇所がHTMLの<A>タグや<FORM>タグで構成されている場合、リンクまたはフォームの選択であると判定されてもよい。具体的には、以下のように記述されている場合、リンクまたはフォームの選択であると判定されてもよい。
<A HREF=http://xxxxxx/cs/copy.htm>Copy</A>
<FORM METHOD=GET ACTION= http://xxxxxx/cs/copy.htm>
リンクまたはフォームを選択する操作である場合(ステップS1303;Y)、制御モジュール21はステップS1304の処理に進む。一方、リンクまたはフォームを選択する操作でない場合(ステップS1303;N)、制御モジュール21はステップS1310の処理に進む。
ステップS1304において、制御モジュール21は、選択されたリンクまたはフォームに対応するURLのデータがプリロード済またはキャッシュ済のデータであるかを判定する。プリロードまたはキャッシュされていない場合(ステップS1304;N)、制御モジュール21はステップS1305の処理に進む。一方、プリロード済またはキャッシュ済である場合(ステップS1304;Y)、制御モジュール21は、ステップS1309において、プリロード済またはキャッシュ済の表示データを予め定められた記憶領域から読み出し、表示データをディスプレイ22に出力して表示を行う。画面表示の方法としては、例えば、
<IFRAME SRC= http://xxxxxx/cs/copy.htm style="display:none">
といったように、<IFRAME>タグで指定されているURLの場合、制御モジュール21がCSSのdisplay:none(すなわち非表示)の状態でロードしておき、表示する際にdisplay:blockなどの属性に変更すればよい。この他にも、<FRAME>タグを利用したり、JavaScriptプログラムにてWindowを生成するなどの方法も考えられる。
ステップS1305において、制御モジュール21は、サーバ10からデータを取得するための取得要求など、処理に必要な情報をサーバ10に送信する。ステップS1306において、制御モジュール21は、ユーザ認証がなされているかを判定する。ユーザ認証済である場合(ステップS1306;Y)、制御モジュール21はステップS1307の処理に進み、操作頻度管理テーブル261にそのURLを操作履歴として登録する。この操作履歴の「利用者」の項目には認証された利用者を識別する情報が設定される。一方、ユーザ認証がなされていない場合(ステップS1306;N)、制御モジュール21はステップS1308の処理に進み、操作頻度管理テーブル261にそのURLを操作履歴として登録する。この操作履歴の「利用者」の項目には「共用」を示す値が設定される。すなわち、利用者が認証済であれば、認証された利用者のユーザ名とURLが操作頻度管理テーブル261に登録される、または利用回数が更新される。一方、未認証であれば、共用ユーザとして操作頻度管理テーブル261が更新される。
ステップS1310において、制御モジュール21は検知された操作がJavaScriptに対する操作であるかを判定する。JavaScriptに対する操作である場合(ステップS1310;Y)、制御モジュール21はステップS1311の処理に進む。一方、JavaScriptに対する操作でない場合(ステップS1310;N)、制御モジュール21はステップS1309の処理に進み、記憶装置26の予め定められた記憶領域から表示データを読み出し、ディスプレイ22に出力して表示処理を行う。
ステップS1311において、制御モジュール21は検知された操作に対応するURLのデータがプリロード済またはキャッシュ済のデータであるかを判定する。プリロードもキャッシュもされていない場合(ステップS1311;N)、制御モジュール21はステップS1312の処理に進む。一方、プリロードまたはキャッシュされている場合(ステップS1311;Y)、制御モジュール21は、ステップS1309の処理に進み、プリロード済またはキャッシュ済の表示データを予め定められた記憶領域から読み出し、表示データをディスプレイ22に出力して表示処理を行う。具体的には、例えば、利用者の操作がJavaScriptの処理として、
ステップS1312において、制御モジュール21は、サーバ10からデータを取得するための取得要求などの、処理に必要な情報をサーバ10に送信する。ステップS1313において、制御モジュール21は、ユーザ認証がなされているかを判定する。ユーザ認証済である場合(ステップS1313;Y)、制御モジュール21はステップS1314の処理に進み、処理実行頻度管理テーブル262にその実行処理を処理履歴として登録する。この処理履歴の「利用者」の項目には認証された利用者を識別する情報が設定される。一方、ユーザ認証がなされていない場合(ステップS1313;N)、制御モジュール21はステップS1315の処理に進み、処理実行頻度管理テーブル262にその実行処理を処理履歴として登録する。この処理履歴の「利用者」の項目には「共用」を示す値が設定される。すなわち、利用者が認証済であれば、認証された利用者のユーザ名とURLが操作頻度管理テーブル261に登録される、または利用回数が更新される。一方、未認証であれば、共用ユーザとして操作頻度管理テーブル261が更新される。
図24は、図4のステップS116に示す認証処理の流れを示すフローチャートである。ステップS1401において、制御モジュール21は認証処理を開始するかを判定する。認証処理を開始する場合(ステップS1401;Y)、制御モジュール21はステップS1402の処理に進む。一方、認証処理を開始しないと判定された場合(ステップS1401;N)、制御モジュール21はステップS1405の処理に進む。
ステップS1402において、制御モジュール21は画像形成装置20の認証を行う。例えば、ICカードから読み取られた利用者名が画像形成装置20に登録されている利用者名である場合、認証完了となる。その後、ステップS1403において、制御モジュール21は操作頻度管理テーブル処理(図6の処理)を行う。ステップS1404において、制御モジュール21は処理実行頻度管理テーブル処理(図11の処理)を行う。
ステップS1405において、制御モジュール21は画像形成装置20の認証解除を行う。認証が完了している状態において認証解除指示が認証装置24からきた場合、認証解除が行われる。その後、制御モジュール21はステップS1406においてプリロード破棄処理を行い、ステップS1407においてキャッシュ破棄処理を行う。
図25はプリロード破棄処理の流れを示すフローチャートである。ステップS1501において、制御モジュール21は、プリロード管理テーブル266のエントリを確認する。ステップS1502において、制御モジュール21は、プリロード管理テーブル266からURLを検索する。ステップS1503において、制御モジュール21は検索されたURLに対応するデータを破棄する。例えば<IFRAME>タグが使用されている場合、制御モジュール21がプリロード管理テーブル266に登録されているURLに対応する<IFRAME>タグのDOM(Document Object Model)のノードを削除してもよい。また、JavaScriptプログラムであれば、以下のようになる。
var iframe = document.getElementById("myIframe");
iframe.parentNode.removeChild(iframe);
ステップS1504において、制御モジュール21はプリロード管理テーブル266に次のエントリがあるかを判定する。次のエントリがある場合(ステップS1504;Y)、制御モジュール21はステップS1501の処理に戻り、次のエントリについて処理を行う。一方、次のエントリがない場合(ステップS1504;N)、制御モジュール21はそのまま処理を終了する。
図26はキャッシュ破棄処理の流れを示すフローチャートである。キャッシュの破棄は、キャッシュ管理テーブル267のURLに対応するファイルを破棄する処理が、このテーブルのエントリ数だけ繰り返される。ステップS1601において、制御モジュール21は、キャッシュ管理テーブル267のエントリを確認する。ステップS1602において、制御モジュール21は、キャッシュ管理テーブル267からURLを検索する。ステップS1603において、制御モジュール21は検索されたURLに対応したファイルを破棄する。ステップS1604において、制御モジュール21はキャッシュ管理テーブル267に次のエントリがあるかを判定する。次のエントリがある場合(ステップS1604;Y)、制御モジュール21はステップS1601の処理に戻り、次のエントリについて処理を行う。一方、次のエントリがない場合(ステップS1604;N)、制御モジュール21はそのまま処理を終了する。
ところで、Webブラウザを用いて操作画面を表示するシステムでは、画面表示の度にWebサーバとファイルを遣り取りするために画面表示に時間がかかる場合がある。これらの遣り取りを削減するために、ファイル・キャッシュという方法が用いられる場合がある。ファイル・キャッシュは、Webサーバから取得したファイルを記憶装置に保持し、これを再利用することで、ファイルの遣り取りを削減しようとするものである。しかし、遣り取りするファイルを全て保持するには、大きな記憶装置の容量が必要となる。
また、Webサーバからファイルを取得したあとも、HTMLの構文解析や、JavaScriptプログラムの構文解析や実行には、多くの時間が必要であり、画面表示までに長い時間を要する場合がある。これらを改善するために、ロードして実行した状態のまま保持しておくことが考えられるが、多くのメモリ(記憶装置)が必要となる。
それに対しこの実施形態では、操作画面を表示するためのデータをキャッシュ(またはプリロード)するかを、制御モジュール21が利用者の操作履歴や処理の実行履歴などの履歴情報に基づいて判定する。そのため、全てのデータをキャッシュ(またはプリロード)することなく、画面の描画処理に係る処理時間が短縮される。
[3]変形例
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態及び以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
上述の実施形態において、画像形成装置20が装置内にウェブサーバ25(図3に点線で図示)の機能を備えていてもよい。この場合、画像形成装置20の制御モジュール21は、例えば内部ループバックの機能によりウェブブラウザからウェブサーバへアクセスしてもよい。この場合も、制御モジュール21が、画像形成装置20の利用者の操作履歴、処理の実行履歴、消耗品の使用量、機器(部材)の稼働量などの履歴情報に基づいてプリロード(またはキャッシュ)するかを判定する。
上述の実施形態において、データをキャッシュするかプリロードするかは、サービス毎に予め設定されていてもよく、また、その設定値を利用者が必要に応じて変更する構成であってもよい。
画像形成装置20は、電子写真方式以外の方式で画像を形成するプリンタであってもよい。また、画像形成装置20は、白黒の画像を形成するものであってもよいし、カラーの画像を形成するものであってもよい。
上述した実施形態において、画像形成装置20の制御モジュール21により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。