画面表示を高速化する画像処理装置、方法およびプログラム
【課題】操作パネルに表示すべき画面の内部表現データを格納するキャッシュメモリの容量制限によって生じる画面表示の遅延を防止して、操作パネルの画面表示を高速化する画像処理装置、方法およびプログラムを提供すること。
【解決手段】本発明の画像処理装置は、画面の優先度を算出するための優先度算出情報を用いて画面の優先度を算出する。そして、画像処理装置は、描画手段が解読可能なプログラム言語および形式で記述された画面の内部表現データが保存されるキャッシュメモリに保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に保存する。
【解決手段】本発明の画像処理装置は、画面の優先度を算出するための優先度算出情報を用いて画面の優先度を算出する。そして、画像処理装置は、描画手段が解読可能なプログラム言語および形式で記述された画面の内部表現データが保存されるキャッシュメモリに保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に保存する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画面を表示する画像処理装置に関し、より詳細には、操作パネルの画面表示を高速化する画像処理装置、方法およびプログラムに関する。
【背景技術】
【0002】
従来、Webページ等をブラウザで閲覧するPCなどの情報処理装置が広く利用されている。このような情報処理装置では、ユーザが指定したWebページを構成するファイルをWebサーバから取得して、ブラウザが表示可能な形式のデータに変換してディスプレイに表示する。
【0003】
しかしながら、ユーザからの閲覧要求があったときに、その都度、Webサーバから閲覧対象のWebページの構成ファイルを取得し、解析および変換して表示すると、Webページをディスプレイに表示する時間が遅くなり、ユーザビリティが低下するという問題があった。
【0004】
この点につき、特許文献1は、ブラウザによるWebページの表示処理を高速化する方法を開示する。この方法では、Webページを構成するファイルを解析し、その解析データをプログラムが可読な形式の内部表現データに変換してキャッシュメモリに保持する。そして、Webページの表示処理において、ユーザが要求するWebページの内部表現データがキャッシュメモリに保持されているか否か判断し、内部表現データがキャッシュメモリに保持されている場合には、当該内部表現データをキャッシュメモリから取得して表示することにより、Webページの表示処理を高速化する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1が開示する方法では、生成された内部表現データをキャッシュメモリに逐次保存するため、この方法を、キャッシュメモリの容量が制限されている画像処理装置などの組み込み系装置に採用した場合、キャッシュメモリ領域がフルの状態では、新たに生成した内部表現データを保持するためにスワップアウトが発生し、ユーザが閲覧要求する頻度の高い画像の内部表現データをキャッシュメモリからスワップアウトまたは削除する虞があり、表示すべき画像の内部表現データのヒット率が低くなるという問題がある。
【0006】
このため、メモリの制限により内部表現データを削除する場合、その画面を表示する際に当該画像を構成するファイルを再度取得して解析および変換しなければならず、また、当該内部表現データをスワップアウトする場合には、その画面を表示する際に当該内部表現データをキャッシュメモリにスワップインさせなければならず、いずれの場合にも画面表示が遅延してしまうという問題があった。
【0007】
本発明は、上記従来技術の問題に鑑みてなされたものであり、操作パネルに表示すべき画面の内部表現データを格納するキャッシュメモリの容量制限によって生じる画面表示の遅延を防止して、操作パネルの画面表示を高速化する画像処理装置、方法およびプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の画像処理装置は、画面の優先度を算出するための優先度算出情報を用いて画像の優先度を算出する。そして、画像処理装置は、描画手段が解読可能なプログラム言語および形式で記述された画面の内部表現データが保存されるキャッシュメモリに保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に保存する。これにより、本発明の画像処理装置は、ユーザの閲覧頻度の高い画面の内部表現データのヒット率を向上させることができ、操作パネルの画面表示を高速化することができる。
【0009】
さらに、本発明は、ユーザの閲覧頻度の高い画面の内部表現データのヒット率を向上させて操作パネルの画面表示を高速化する方法およびプログラムを提供する。
【図面の簡単な説明】
【0010】
【図1】本実施形態の画像処理装置の機能構成を示す図。
【図2】本発明が採用するパイプおよびフィルタアーキテクチャの概念図。
【図3】本実施形態の画像処理装置が実装するプラグインモジュールを示す図。
【図4】本実施形態の画像処理装置が実装するブラウザの機能構成を示す図。
【図5】本実施形態の画像処理装置がプラグインモジュールをインストールする場合のシーケンスを示す図。
【図6】本実施形態の画像処理装置が実行する操作パネルに表示すべき画面の内部表現データの生成処理を示すフローチャート。
【図7】本実施形態の画像処理装置が使用する優先度算出情報テーブルおよび優先度テーブルを示す図。
【図8】本実施形態の画像処理装置が使用する優先度テーブルの一実施形態を示す図。
【図9】本実施形態の画像処理装置が使用する優先度テーブルの別の実施形態を示す図。
【図10】本実施形態の画像処理装置が使用する優先度テーブルを他の実施形態を示す図。
【図11】本実施形態の画像処理装置が操作パネルに画面を表示する際に実行する処理を示すフローチャート。
【図12】本実施形態の画像処理装置が使用する内部表現データおよび画面構成情報の一実施形態を示す図。
【図13】本実施形態の画像処理装置の機能拡張を示す概念図。
【図14】本実施形態の画像処理装置が実装するプラグインモジュールと、当該プラグインモジュールをインストールする画像処理装置との関係を示す図。
【発明を実施するための形態】
【0011】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の画像処理装置の機能構成を示す図である。以下、図1を参照して、画像処理装置100が実装する機能構成について説明する。
【0012】
画像処理装置100は、原稿画像をスキャニングして生成した画像データを印刷してコピーし、画像データをローカルネットワーク等のネットワークを介して配信し、画像データをFAX送信するMFP(Multi-Function Peripheral)として構成される。
【0013】
画像処理装置100は、画像処理装置100が実行する処理の全体制御を行うCPU等のプロセッサ、原稿画像のスキャニングや画像データの各種配信処理、画像データの印刷処理を実行するASIC(Application Specific Integrated Circuit)、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク装置(HDD)、ネットワークI/F、操作パネルなどを含んで実装されており、UNIX(登録商標)、LINUX(登録商標)などのOSの制御下で、アセンブラ、C、C++、JAVA(登録商標)、JavaScript(登録商標)などのプログラミング言語で記述された本実施形態のプログラムをRAMに展開して実行し、後述する機能を当該画像処理装置上で実現する。
【0014】
図1に示す画像処理装置100は、ユーザインタフェース部110と、コントロール部120と、機能実現部130と、デバイスサービス部150と、デバイス制御部160とを含む。
【0015】
ユーザインタフェース部110は、ユーザからの各種ジョブ(例えば、コピーや印刷、スキャン、ファックス、画面表示等)を受け付ける機能手段であり、ブラウザ111を含む。ブラウザ111は、操作パネルに種々の画面を表示する描画エンジンであり、当該画面に介してユーザが発行するジョブを受け付け、コントロール部120に通知する。
【0016】
コントロール部120は、ユーザが発行したジョブを制御する機能手段であり、プラグイン管理部121と、リクエスト管理部122と、認証管理部123とを含む。
【0017】
プラグイン管理部121は、画像処理装置100の機能を拡張するプログラムモジュール(以下、「プラグインモジュール」とする。)を管理する機能手段である。具体的には、プラグイン管理部121は、インストールすべきプラグインモジュールを、当該プラグインモジュールが格納された記憶装置から取得してインストールすると共に、当該プラグインモジュールをインスタンス化する。このとき、プラグイン管理部121は、画像処理装置100にインストールされたプラグインモジュールの識別情報と、当該プラグインモジュールのオブジェクトが格納されているメモリアドレスとを関連付けてプラグイン管理テーブルに登録する。
【0018】
プラグイン管理部121は、後述するデータ管理部151が管理するプラグイン管理テーブルを参照し、画像処理装置100にインストール可能なプラグインモジュールの一覧を生成する。また、プラグイン管理部121は、或るオブジェクトから別のオブジェクトの取得要求を受信すると、プラグイン管理テーブルを参照し、指定された別のオブジェクトのメモリアドレスを要求元のオブジェクトに提供することで、オブジェクト間の相互呼び出しを可能にする。
【0019】
本実施形態では、インストールすべきプラグインモジュールが格納されている記憶装置として、ネットワークを介して接続された情報処理装置、USBメモリやSDカード等のフラッシュメモリ、CD−ROM等を使用することができる。
【0020】
リクエスト管理部122は、ユーザが発行したジョブを機能実現部130に実行させる機能手段である。認証管理部123は、ユーザを認証する機能手段であり、操作パネルを介して入力されたユーザのアカウント名やパスワード等のユーザ識別情報によりユーザを認証する。
【0021】
機能実現部130は、ユーザが発行したジョブを実行する機能手段であり、コピーアプリケーション131と、送信アプリケーション132と、ファックスアプリケーション133とを含む。
【0022】
コピーアプリケーション131は、後述するスキャナ部134、加工部138および印刷部140を用いて、原稿をスキャンして印刷するコピー機能を実現するアプリケーションプログラムである。
【0023】
送信アプリケーション132は、後述するスキャナ部134およびメール送信部142を用いて、原稿をスキャンして得られた原稿画像をメール送信するアプリケーションプログラムである。
【0024】
ファックスアプリケーション133は、後述するスキャナ部134およびファックス送信部143を用いて、原稿をスキャンして得られた原稿画像をファックス送信するアプリケーションプログラムである。
【0025】
また、機能実現部130は、スキャナ部134と、読出部135と、メール受信部136と、ファックス受信部137とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0026】
スキャナ部134は、スキャナ装置を制御して原稿をスキャンして原稿画像を生成する機能手段である。読出部135は、画像処理装置100のHDDに格納されている画像データを読み出す機能手段である。メール受信部136は、外部からネットワークを介して電子メールを受信する機能手段である。ファックス受信部137は、外部からネットワークを介してファックスを受信する機能手段である。
【0027】
さらに、機能実現部130は、加工部138と、変換部139とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0028】
加工部138は、原稿画像等の入力画像データに対して、集約や拡大、縮小等の種々の画像変換処理を施す機能手段である。変換部139は、画像データのデータ形式を変換する機能手段であり、例えば、外部から受信したPostScript形式の印刷データをBitmap形式のデータに変換する。
【0029】
さらに、機能実現部130は、印刷部140と、登録部141と、メール送信部142と、ファックス送信部143とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0030】
印刷部140は、加工部138が入力データをプロッタに印刷出力させる機能手段である。登録部141は、画像処理装置100に入力した画像データやスキャンデータを画像処理装置100のHDDに保存する機能手段である。メール送信部142は、スキャンデータやHDDに格納されている画像データをメール送信する機能手段である。ファックス送信部143は、スキャンデータやHDDに格納されている画像データをファックス送信する機能手段である。
【0031】
さらに、機能実現部130は、ユーザ情報管理部144と、画面構成情報提供部145とを含む。
【0032】
ユーザ情報管理部144は、ユーザ識別情報等の認証情報を管理する機能手段であり、後述するデータ管理部151を用いて認証情報の参照や更新、削除、検索を行う。
【0033】
画面構成情報提供部145は、画像処理装置100にインストールされたプラグインモジュールの画面を構成する情報(以下、「画面構成情報」とする。)を提供する機能手段である。画面構成情報提供部145は、画像処理装置100にプラグインモジュールがインストールされると、画面構成情報提供部145が管理する記憶装置に当該プラグインモジュールが使用する画面の画面構成情報を登録する。画面構成情報提供部145は、ブラウザ111からの画面構成情報の取得要求に応じて、要求されている画面構成情報を当該記憶装置から取得し、ブラウザ111に提供する。
【0034】
デバイスサービス部150は、上述した機能手段が適宜呼び出し可能な機能手段であり、データ管理部151を含んで構成される。データ管理部151は、画像処理装置100にプラグインモジュールを管理するデータテーブルであるプラグイン管理テーブルを管理する機能手段である。
【0035】
プラグイン管理テーブルには、画像処理装置100にインストール可能なプラグインモジュールの識別情報と、プラグインモジュールが登録されているか否かを示す情報と、当該プラグインモジュールをインスタンス化して生成されるオブジェクトの識別情報と、その格納先のメモリアドレスとが登録される。
【0036】
データ管理部151は、新たなプラグインモジュールがインストールされるとプラグイン管理テーブルに当該プラグインモジュールの識別情報を登録し、プラグインモジュールがアンインストールされると、当該プラグインモジュールの識別情報をプラグイン管理テーブルから削除する。
【0037】
プラグイン管理121がプラグインモジュール一覧を生成する場合、データ管理部151は、画像処理装置100にインストール可能なプラグインモジュールの識別情報のうち、未だインストールされていないプラグインモジュールの識別情報をプラグイン管理121に提供する。
【0038】
また、データ管理部151は、プラグインモジュールのインストール時に、プラグインモジュールをインスタンス化して生成されるオブジェクトの識別情報と、その格納先のメモリアドレスとを関連付けて登録する。データ管理部151は、プラグイン管理部121の要求により、これらの情報をプラグイン管理部121に提供する。
【0039】
デバイス制御部160は、画像処理装置100が備えるスキャナ装置やプロッタ等の装置を制御する手段である。
【0040】
図2は、本発明が採用するパイプおよびフィルタアーキテクチャの概念図である。パイプおよびフィルタアーキテクチャでは、フィルタ201,203,205が入力データを変換し、パイプ202,204はフィルタが変換したデータを次のフィルタに提供する。
【0041】
ここで、データの変換を入力、加工および出力として捉えると、図1に示す画像処理装置100が実装する機能手段は、入力フィルタ、加工フィルタおよび出力フィルタに分類することができる。具体的には、スキャナ部134、読出部135、メール受信部136およびファックス受信部137は入力フィルタに該当し、加工部138および変換部139は加工フィルタに該当する。また、印刷部140、登録部141、メール送信部142およびファックス送信部143は出力フィルタに該当する。これらの各フィルタは、1のプラグインモジュールであり、独立して画像処理装置100に追加および削除が可能である。
【0042】
図3は、本実施形態の画像処理装置が実装するプラグインモジュールを示す図である。プラグインモジュール300は、動作オブジェクト310と、画面構成情報320とを含んで構成される。
【0043】
動作オブジェクト310は、動作中のプラグインモジュールにアクセスするためにメモリ領域上に形成されるクラスのインスタンス、すなわちオブジェクトである。動作オブジェクト310は、他のプラグインモジュールの動作オブジェクトからの要求を受けて処理を実行し、または、他のプラグインモジュールの動作オブジェクトに対して処理を依頼する。
【0044】
例えば、プラグインモジュールであるスキャナ部134の動作オブジェクトは、他のプラグインモジュールであるコピーアプリケーション131の動作オブジェクトからスキャンの設定情報をパラメータとして受け取り、原稿のスキャンを実行する。スキャンが終了すると、スキャナ部134の動作オブジェクトは、コピーアプリケーション131の動作オブジェクトにスキャンデータを提供する。
【0045】
画面構成情報320は、画面構造322と、画面デザイン324と、アイコン326と、制御プログラム328とを含んで構成される。
【0046】
画面構造322は、GUIの構造を規定する情報である。画面デザイン324は、画面構造322が規定する画面構造に基づくGUIの具体的なレイアウトおよびデザインを規定する情報である。アイコン326は、GUIに表示する画像データである。制御プログラム328は、GUI上に動的に画像を表示し、またはボタン等の押下によってユーザの入力を受け付けてジョブを発行するなどの所定の処理を実行する。
【0047】
図4は、本実施形態の画像処理装置が実装するブラウザの機能構成を示す図である。以下、図4を参照して、画像処理装置100のブラウザ111について詳細に説明する。
【0048】
ブラウザ111は、リクエスト要否判定部401と、リクエスト送信部402と、レスポンス受信部403とを含む。
【0049】
リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要があるか否か判定する機能手段である。具体的には、リクエスト要否判定部401は、ユーザが操作パネルに表示されたGUIを用いて指定する遷移先画面の内部表現データが、GUIの内部表現データを格納すべき記憶装置である内部表現データメモリ411に保持されているか否か判断する。
【0050】
遷移先画面の内部表現データが内部表現データメモリ411に保持されている場合には、リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要がないと判断する。一方、遷移先画面の内部表現データが内部表現データメモリ411に保持されていない場合には、リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要があると判断する。
【0051】
本実施形態では、内部表現データメモリ411は、画像処理装置100のCPU等のプロセッサが高速にアクセス可能な不揮発性のキャッシュメモリであり、主記憶装置に比べてメモリ容量が制限されている。
【0052】
リクエスト送信部402は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する機能手段である。リクエスト送信部402は、遷移先画面の内部表現データが内部表現データメモリ411に保存されていない場合に、当該遷移先画面の画面構成情報を画面構成情報提供部145に要求する。
【0053】
レスポンス受信部403は、画面構成情報提供部145からレスポンスを受信したか否か判断する機能手段である。レスポンス受信部403は、リクエスト送信部402が送信した遷移先画面の画面構成情報のリクエストに対するレスポンスを受信したか否か判断する。
【0054】
また、ブラウザ111は、解析部404と、内部表現データ読出部405と、内部表現データ記憶部406とを含む。
【0055】
解析部404は、画面構成情報を解析して変換する機能手段である。具体的には、解析部404は、XMLやHTML、XHTML等の構造化言語やCSS等のスタイルシート言語で記述された画面構成情報であるテキスト文書を構文解析および字句解析し、後述する描画部407が解読可能なプログラム言語および形式で記述された内部表現データを生成する。本実施形態では、解析部404として、XMLパーサやHTMLパーサ、XHTMLパーサ、CSSパーサ等の種々のパーサを採用することができる。
【0056】
内部表現データ読出部405は、内部表現データメモリ411に保持された内部表現データを読み出す機能手段である。内部表現データ読出部405は、リクエスト要否判定部401が遷移先画面の内部表現データが内部表現データメモリ411に保持されていると判断した場合に、遷移先画面の内部表現データを内部表現データメモリ411から読み出す。
【0057】
内部表現データ記憶部406は、操作パネルに表示される画面の内部表現データを内部表現データメモリ411に保存または削除する機能手段である。内部表現データ記憶部406は、他の機能手段から呼び出すことができ、指定された画面の内部表現データを、そのメタデータである当該画面の識別情報と共に内部表現データメモリ411に保存する。また、内部表現データ記憶部406は、指定された内部表現データを、その識別情報と共に内部表現データメモリ411から削除する。
【0058】
さらに、ブラウザ111は、描画部407と、優先度管理部408と、保存判定部409と、計測部410とを含む。
【0059】
描画部407は、画像処理装置100の操作パネルに画面を描画する機能手段である。描画部407は、内部表現データ読出部405を介して内部表現データメモリ411から取得した内部表現データを解析して操作パネルに画面を描画する。本実施形態では、描画部407として、DOM仕様で記述された内部表現データから画面を生成するJava(登録商標)アプリケーションやJava(登録商標)アプレット等のJava(登録商標)プログラムや他の描画プログラムを採用することができる。
【0060】
優先度管理部408は、操作パネルに表示される画面の使用頻度を示す優先度を管理する機能手段である。優先度管理部408は、操作パネルに表示される画面の優先度を算出するための情報(以下、「優先度算出情報」とする。)が登録される優先度算出情報テーブルと、画面の優先度が登録される優先度テーブルを管理する。
【0061】
優先度管理部408は、プラグインモジュールのインストール時や画面表示時に優先度算出情報テーブルを更新し、これらの優先度算出情報を使用して優先度を算出し、優先度テーブルを更新する。優先度算出情報テーブルおよび優先度テーブルは、記憶装置412に保存される。
【0062】
本実施形態では、記憶装置412は、画像処理装置100のCPU等のプロセッサが高速にアクセス可能な不揮発性のキャッシュメモリとすることができる。他の実施形態では、記憶装置412を不揮発性のRAMやHDDで構成してもよい。
【0063】
優先度管理部408は、以下の数式1を用いて、プラグインモジュールが使用する画面の優先度を算出することができる。
【0064】
【数1】
【0065】
ここで、所定の係数は利用回数を重み付けする値であり、静的または動的に設定することができる。この値を調整することにより、利用回数の重要度を変更することができる。
【0066】
優先度管理部408は、プラグインモジュールを新たにインストールする場合、既にインストールされているプラグインモジュールが使用する画面の利用回数を使用して、新たなプラグインモジュールが使用する画面の優先度を算出することができる。なお、新たなプラグインモジュールが使用する画面の優先度の算出方法については、図7を参照して詳細に説明する。
【0067】
保存判定部409は、操作パネルに表示される画面の内部表現データを内部表現データメモリ411に保存すべきか否か判断する機能手段である。保存判定部409は、画面の優先度や内部表現データメモリ411の残量に基づいて、当該画面の内部表現データを内部表現データメモリ411に保存すべきか否か判断する。なお、内部表現データの保存の可否を判断する方法については、図6,8〜11を参照して詳細に説明する。
【0068】
計測部410は、内部表現データの生成時間を計測する手段である。計測部410は、S/WタイマーやH/Wタイマー等のタイマーを使用して、解析部404が画面構成情報から内部表現データを生成するまでの時間を計測する。
【0069】
図5は、本実施形態の画像処理装置がプラグインモジュールをインストールする場合のシーケンスを示す図である。以下、図5を参照して、画像処理装置100が実行するプラグインモジュールのインストール処理について説明する。
【0070】
プラグインモジュールのインストール処理は、ユーザが画像処理装置100の操作パネルを使用してプラグインモジュールのインストール画面の表示要求を発行することにより開始する。画像処理装置100に実装されたブラウザ111は、インストール画面の表示要求を受け付けると、内部表現データメモリ411を検索してインストール画面の内部表現データが保持されているか否か判断する。インストール画面の内部表現データが内部表現データメモリ411に保持されている場合には、ブラウザ111は、内部表現データメモリ411からインストール画面の内部表現データを取得する。
【0071】
次に、ブラウザ111は、プラグイン管理部121に対し、画像処理装置100にインストール可能なプラグインモジュールの一覧を要求する。プラグイン管理部121は、データ管理部151に対して、インストール可能なプラグインモジュールの識別情報を要求する。データ管理部151は、プラグイン管理テーブルを参照して画像処理装置100にインストール可能なプラグインモジュールを検索し、インストール可能なプラグインモジュールの識別情報をプラグイン管理部121に提供する。
【0072】
プラグイン管理部121は、プラグインモジュールの識別情報を用いてインストール可能なプラグインモジュールの一覧を生成し、ブラウザ111に提供する。ブラウザ111は、当該プラグインモジュールの一覧を操作パネルに表示する。
【0073】
ユーザが、操作パネルに表示されたプラグインモジュールの一覧からインストールすべきプラグインモジュールを選択してインストール要求を発行すると、ブラウザ111は、プラグイン管理部121に対して、当該プラグインモジュールのインストールを要求する。プラグイン管理部121は、プラグインモジュールが格納されている記憶装置からユーザが指定したプラグインモジュールを取得し、当該プラグインモジュールをインスタンス化してオブジェクトを生成する。プラグイン管理部121は、当該オブジェクトの識別情報と、その格納先のメモリアドレスとを、データ管理部151を介してプラグイン管理テーブルに登録する。
【0074】
プラグインモジュールのインストールによって新たに生成されたオブジェクト512は、当該プラグインモジュールが有する画面構成情報を、画面構成情報提供部145に提供して登録する。画面構成情報が登録されると、オブジェクト512は、当該画面構成情報の内部表現データの生成要求と共に、当該画面構成情報をプラグイン管理部121に送信する。プラグイン管理部121は、ブラウザ111に内部表現データの生成要求および当該画面構成情報を送信して内部表現データを生成させる。
【0075】
図6は、本実施形態の画像処理装置が実行する操作パネルに表示すべき画面の内部表現データの生成処理を示すフローチャートである。以下、図6を参照して内部表現データの生成処理について説明する。
【0076】
図6の処理は、画像処理装置100に実装されたブラウザ111が、プラグイン管理部121から内部表現データの生成要求を受信することによりステップS600から開始する。ステップS601では、ブラウザ111の解析部404が、内部表現データの生成要求と共に受信した画面構成情報を解析し、内部表現データを生成する。ステップS602では、計測部410が内部表現データの生成時間を計測する。
【0077】
ステップS603では、保存判定部409が、新たに生成した内部表現データを保存する容量が内部表現データメモリ411に有るか否か判断する。内部表現データを保存する容量が有ると判断した場合には(yes)、処理をステップS610に分岐する。一方、内部表現データを保存する容量が無いと判断した場合には(no)、処理をステップS604に分岐する。
【0078】
ステップS604では、優先度管理部408は、優先度算出情報テーブルを参照し、これに登録されている総ての優先度算出情報を読み出す。ステップS605では、優先度管理部408は、当該優先度算出情報を使用して、内部表現データメモリに保持されている内部表現データの優先度を算出し、優先度テーブルを更新する。ステップS606では、優先度管理部408は、ステップS601で新たに生成した内部表現データの優先度を算出する。
【0079】
ステップS607では、保存判定部409は、新たに生成した内部表現データの優先度と、優先度テーブルに登録された内部表現データの優先度とを比較し、新たに生成した内部表現データよりも優先度の低い内部表現データが存在するか否か判断する。新たに生成した内部表現データよりも優先度の低い内部表現データが存在しない場合には(no)、処理をステップS612に分岐して終了する。一方、新たに生成した内部表現データよりも優先度の低い内部表現データが存在する場合には(yes)、処理をステップS608に分岐する。
【0080】
ステップS608では、保存判定部409は、優先度テーブルを参照して、新たに生成された内部表現データと置換すべき内部表現データを特定する。ステップS609では、内部表現データ記憶部406が、内部表現データメモリ411から当該置換すべき内部表現データを削除する。
【0081】
ステップS610では、内部表現データ記憶部406は、新たに生成した内部表現データを内部表現データメモリ411に保存する。ステップS611では、優先度管理部408は、優先度算出情報テーブルおよび優先度テーブルを更新し、ステップS612で処理が終了する。具体的には、優先度管理部408は、新たに生成された内部表現データの優先度算出情報および優先度を優先度算出情報テーブルおよび優先度テーブルに登録すると共に、削除された内部表現データの優先度を優先度テーブルから削除する。
【0082】
図7は、本実施形態の画像処理装置が使用する優先度算出情報テーブルおよび優先度テーブルを示す図である。以下、図7を参照して、優先度算出情報テーブル710および優先度テーブル720と、新たにインストールするプラグインモジュールが使用する画面の優先度の算出方法とについて説明する。
【0083】
優先度算出情報テーブル710は、画像処理装置100にインストールされているプラグインモジュールが使用する画面の優先度算出情報を登録するデータテーブルである。優先度算出情報テーブル710には、プラグイン名711と、画面ID712と、上位画面ID713と、生成時間714と、利用回数715と、データサイズ716とが関連付けて登録される。
【0084】
プラグイン名711は、画像処理装置100にインストールされているプラグインモジュールの識別情報である。プラグイン名711は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、プラグイン名として「コピーアプリケーション」および「送信アプリケーション」が登録されているが、プラグインモジュールを固有に識別できる限り、如何なる文字や数字、記号、これらの組み合わせを用いてもよい。
【0085】
画面ID712は、プラグイン名711に示すプラグインモジュールが使用する画面の識別情報である。画面ID712は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、プラグインモジュールである「コピーアプリケーション」が使用する画面の画面IDとして、「COPY_TOP」や「COPY_COVER」、「COPY_MAGNIFICATION」等の識別情報が登録されている。また、「送信アプリケーション」が使用する画面の画面IDとして、「SEND_TOP」や「SEND_ADDRESS」、「SEND_SCAN_SETTING」等の識別情報が登録されている。
【0086】
上位画面ID713は、画面ID712に登録された画面IDが示す画面が従属する上位画面の識別情報である。上位画面ID713は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」が示す画面の上位画面が、画面ID「SEND_SCAN_SETTING」が示す画面であることを表している。
【0087】
生成時間714は、画面ID712に登録された画面IDが示す画面の内部表現データの生成時間である。内部表現データの生成時間は、プラグインモジュールのインストール時に計測され、生成時間714に登録される。
【0088】
利用回数715は、画面IDが示す画面の利用回数である。利用回数は、当該画面が表示される度に更新される。
【0089】
データサイズ716は、画面IDが示す画面の内部表現データのデータサイズである。プラグインモジュールをインストールする際に登録される。
【0090】
優先度テーブル720は、画像処理装置100の内部表現データメモリ411に保持されている内部表現データを用いて描画される画面の優先度を登録するデータテーブルである。優先度テーブル720には、プラグイン名721と、画面ID722と、優先度723と、データサイズ724とが登録される。
【0091】
プラグイン名721は、画像処理装置100にインストールされているプラグインモジュールのうち、内部表現データメモリ411に保持されている内部表現データを用いて描画される画面を使用するプラグインモジュールの識別情報である。画面ID722は、プラグイン名721が示すプラグインモジュールが使用する画面の識別情報である。優先度723は、画面ID722が示す画面の優先度である。データサイズ724は、画面ID722が示す画面の内部表現データのデータサイズである。
【0092】
本実施形態では、新たにインストールするプラグインモジュールが使用する画面(以下、「新規画面」とする。)の優先度は、当該画面に関連する画面の利用回数を用いて算出することができる。具体的には、優先度管理部408は、新規画面を使用するプラグインモジュールが使用する他の画面の利用回数の平均値を、当該新規画面の利用回数として使用して、上述した数式1により、新規画面の優先度を算出することができる。
【0093】
例えば、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」が示す画面を新規画面と仮定すると、これらの新規画面の優先度は、当該新規画面を使用するプラグインモジュール「送信アプリケーション」が使用する他の画面「SEND_TOP」、「SEND_ADDRESS」、「SEND_SCAN_SETTING」の利用回数を用いて算出することができる。
【0094】
また、優先度管理部408は、新規画面の上位画面の利用回数を当該新規画面の利用回数として使用して、新規画面の優先度を算出することもできる。例えば、上述した例では、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」の上位画面である「SEND_SCAN_SETTING」の利用回数を用いて、これらの新規画面の優先度を算出することができる。
【0095】
図8〜10は、本実施形態の画像処理装置が使用する優先度テーブルを示す。以下、図8〜10を参照し、本実施形態の画像処理装置が置換すべき内部表現データを特定する方法を説明する。
【0096】
図8に示す優先度テーブル810は、更新前の優先度テーブルであり、優先度テーブル820は、更新後の優先度テーブルである。画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル810を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「200」よりもデータサイズの大きい画面ID(「COPY_COVER」)を抽出する。保存判定部409は、当該画面ID(「COPY_COVER」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0097】
更新後の優先度テーブル820には、画面ID「COPY_COVER」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0098】
図9に示す優先度テーブル910は、更新前の優先度テーブルであり、優先度テーブル920は、更新後の優先度テーブルである。図8を参照して説明した方法と同様に、画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル910を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「160」よりもデータサイズの大きい画面ID(「COPY_DUPLEX」)を抽出する。
【0099】
さらに、保存判定部409は、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」が、当該画面IDよりも優先度の低い画面ID(「COPY_COVER」および「COPY_EDIT」)の優先度の合計値「453」とを比較する。これらの画像IDの優先度の合計値「453」が、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」よりも大きい場合には、保存判定部409は、当該抽出した画面ID(「COPY_DUPLEX」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0100】
更新後の優先度テーブル920には、画面ID「COPY_DUPLEX」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0101】
図10に示す優先度テーブル1010は、更新前の優先度テーブルであり、優先度テーブル1020は、更新後の優先度テーブルである。図9を参照して説明した方法と同様に、画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル1010を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「160」よりもデータサイズの大きい画面ID(「COPY_DUPLEX」)を抽出する。
【0102】
さらに、保存判定部409は、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」が、当該画面IDよりも優先度の低い画面ID(「COPY_COVER」および「COPY_EDIT」)の優先度の合計値「218」とを比較する。これらの画像IDの優先度の合計値「218」が、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」よりも小さい場合には、保存判定部409は、これらの画面ID(「COPY_COVER」および「COPY_EDIT」)のデータサイズの合計値「170」と、画面ID「NEW_CONTENTS」のデータサイズ「160」とを比較する。
【0103】
そして、画面ID(「COPY_COVER」および「COPY_EDIT」)のデータサイズの合計値「170」が、画面ID「NEW_CONTENTS」のデータサイズ「160」よりも大きい場合には、画面ID(「COPY_COVER」および「COPY_EDIT」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0104】
更新後の優先度テーブル1020には、画面ID「COPY_COVER」および「COPY_EDIT」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0105】
図11は、本実施形態の画像処理装置が操作パネルに画面を表示する際に実行する処理を示すフローチャートである。以下、図11を参照して、画面の表示処理について説明する。
【0106】
図11の処理は、画像処理装置100のブラウザ111が、ユーザが操作パネルを使用して発行した画面の表示要求を受信することにより、ステップS1100から開始する。ステップS1101では、リクエスト要否判定部401は、表示要求と共に受信した画面IDが示す遷移先画面の内部表現データが、内部表現データメモリ411に保持されているか否か判断する。
【0107】
遷移先画面の内部表現データが内部表現データメモリ411に保持されている場合には(yes)、処理をステップS1102に分岐する。ステップS1102では、描画部407が、遷移先画面の内部表現データを解析し、画像処理装置100の操作パネルに遷移先画面を表示する。ステップS1103では、優先度管理部408は、遷移先画面の利用回数をインクリメントして優先度算出情報テーブルを更新し、ステップS1117で処理が終了する。
【0108】
一方、ステップS1101で遷移先画面の内部表現データが内部表現データメモリ411に保持されていないと判断した場合には(no)、ステップS1104でリクエスト送信部402が、画面構成情報提供部145に遷移先画面の画面構成情報を要求する。ステップS1105では、レスポンス受信部403が、画面構成情報提供部145から遷移先画面の画面構成情報を受信したか否か判断し、受信していない場合には(no)、当該処理を反復する。一方、遷移先画面の画面構成情報を受信した場合には(yes)、処理をステップS1106に分岐する。
【0109】
ステップS1106では、解析部404が、遷移先画面の画面構成情報を解析して内部表現データを生成する。ステップS1107では、描画部407が、遷移先画面の内部表現データを解析して、操作パネルに遷移先画面を表示する。
【0110】
ステップS1108では、保存判定部409が、内部表現データメモリ411に遷移先画面の内部表現データを保存する容量があるか否か判断する。遷移先画面の内部表現データを保存する容量がある場合には(yes)、処理をステップS1115に分岐する。一方、遷移先画面の内部表現データを保存する容量が無い場合には(no)、処理をステップS1109に分岐する。
【0111】
ステップS1109では、優先度管理部408が、優先度算出情報テーブルに登録されている総ての優先度算出情報を読み出す。ステップS1110では、優先度管理部408は、優先度算出情報を使用して、内部表現データメモリ411に保持されている内部表現データの優先度を算出し、優先度テーブルを更新する。ステップS1111では、優先度管理部408は、優先度算出情報テーブルを参照し、遷移先画面の優先度算出情報を用いて遷移先画面の内部表現データの優先度を算出する。
【0112】
ステップS1112では、保存判定部409は、優先度テーブルを参照し、遷移先画面よりも優先度の低い画面が存在するか否か判断する。遷移先画面よりも優先度の低い画面が存在しない場合には(no)、処理をステップS1117に分岐して終了する。一方、遷移先画面よりも優先度の低い画面が存在する場合には(yes)、処理をステップS1113に分岐する。
【0113】
ステップS1113では、保存判定部409は、優先度テーブルを参照して、新たに生成された遷移先画面の内部表現データと置換すべき内部表現データを特定する。ステップS1114では、内部表現データ記憶部406が、内部表現データメモリ411から当該置換すべき内部表現データを削除する。ステップS1115では、内部表現データ記憶部406は、新たに生成した遷移先画面の内部表現データを内部表現データメモリ411に保存する。
【0114】
ステップS1116では、優先度管理部408は、優先度算出情報テーブルおよび優先度テーブルを更新し、ステップS1117で処理が終了する。具体的には、優先度管理部408は、新たに生成された遷移先画面の内部表現データの優先度算出情報である遷移先画面の利用回数を更新し、遷移先画面の優先度を登録する。また、優先度管理部408は、内部表現データメモリ411から削除された内部表現データの優先度を優先度テーブルから削除する。
【0115】
図12は、本実施形態の画像処理装置が使用する内部表現データおよび画面構成情報の一実施形態を示す図である。以下、図12を参照して内部表現データおよび画面構成情報について説明する。
【0116】
内部表現データメモリ411には、画面ID1212と、内部表現データ1214とが保存される。画面ID1212は、内部表現データ1214によって描画される画面IDであり、内部表現データ1214のメタデータとして保存される。内部表現データ1214は、内部表現データを格納したファイル名であり、当該ファイルに内部表現データが含まれている。
【0117】
画像処理装置100の操作パネルに画面を表示する場合、ブラウザ111は、ユーザが選択した遷移先画面の画面IDを、内部表現データメモリ411で使用する形式の画面IDに変換し、対象となる遷移先画面の内部表現データ1214を取得することができる。例えば、画面ID「COPY_TOP」の遷移先画面の表示が要求された場合、ブラウザ111は、画面ID「COPY_TOP」を「/copy/top.html」に変換し、内部表現データメモリ411からメタデータが「/copy/top.html」である内部表現データ「Copy_top.dat」を読み出すことができる。
【0118】
また、置換すべき内部表現データを内部表現データメモリ411から削除する場合、ブラウザ111は、置換すべき内部表現データによって描画される画面の画面IDを内部表現データメモリ411の形式に変換し、該当する内部表現データを削除することができる。さらに、新たに生成した内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111は、予め規定されている当該内部表現データの画面IDを内部表現データメモリ411の形式に変換し、その内部表現データと共に保存する。
【0119】
他の実施形態では、内部表現データメモリ411に登録する画面IDとして、優先度算出情報テーブルや優先度テーブルに登録される画面IDと共通の画面IDを使用してもよい。
【0120】
テキストデータ1220は、画像処理装置100が処理する画面構成情報に含まれる画面構造を規定するテキストデータの一実施形態である。ツリー構造1230は、テキストデータ1220を用いて生成される内部表現データのツリー構造をDOM仕様に基づいて表したものである。画像処理装置100のブラウザ111は、このようなテキストデータ1220をパースして内部表現データを生成する。
【0121】
図13は、本実施形態の画像処理装置の機能拡張を示す概念図である。本実施形態では、画像処理装置100が有する基本機能を提供する基本プログラムであるフレームワークに対して、複数のプラグインモジュールを追加することができる。さらに、これらのプラグインモジュールには、当該プラグインモジュールの機能を拡張するプラグインモジュールを追加することができる。これにより、将来的に変更や拡張が予測される機能については、予めフレームワークや拡張対象のプラグインモジュールと切り離して設計することができ、すなわち、拡張すべき機能に特化したプラグインモジュールのみを開発することができ、開発工数等を軽減することができる。
【0122】
図14は、本実施形態の画像処理装置が実装するプラグインモジュールと、当該プラグインモジュールをインストールする画像処理装置との関係を示す図である。
【0123】
画像処理装置1420,1430,1440には、それぞれ異なる描画エンジンが搭載されている。画像処理装置1420には、汎用的な描画エンジンが搭載されており、画像処理装置1430,1440には、それぞれ独自の描画エンジンが搭載されている。また、画像処理装置1420,1430,1440は、各描画エンジンが描画可能な形式の内部表現データを生成する内部表現データ生成部を備えている。プラグインモジュール1410に含まれる画像構成情報は、これらの描画エンジンが処理可能な形式の情報であり、これにより、画像処理装置1420,1430,1440が、共通のプラグインモジュールを利用することができる。
【0124】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の構成要素の追加や、本実施形態の構成要素の変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0125】
100…画像処理装置、110…ユーザインタフェース部、111…ブラウザ、120…コントロール部、121…プラグイン管理部、122…リクエスト管理部、123…認証管理部、130…機能実現部、131…コピーアプリケーション、132…送信アプリケーション、133…ファックスアプリケーション、134…スキャナ部、135…読出部、136…メール受信部、137…ファックス受信部、138…加工部、139…変換部、140…印刷部、141…登録部、142…メール送信部、143…ファックス送信部、144…ユーザ情報管理部、145…画面構成情報提供部、150…デバイスサービス部、151…データ管理部、160…デバイス制御部
【先行技術文献】
【特許文献】
【0126】
【特許文献1】特開2009−187465号公報
【技術分野】
【0001】
本発明は、画面を表示する画像処理装置に関し、より詳細には、操作パネルの画面表示を高速化する画像処理装置、方法およびプログラムに関する。
【背景技術】
【0002】
従来、Webページ等をブラウザで閲覧するPCなどの情報処理装置が広く利用されている。このような情報処理装置では、ユーザが指定したWebページを構成するファイルをWebサーバから取得して、ブラウザが表示可能な形式のデータに変換してディスプレイに表示する。
【0003】
しかしながら、ユーザからの閲覧要求があったときに、その都度、Webサーバから閲覧対象のWebページの構成ファイルを取得し、解析および変換して表示すると、Webページをディスプレイに表示する時間が遅くなり、ユーザビリティが低下するという問題があった。
【0004】
この点につき、特許文献1は、ブラウザによるWebページの表示処理を高速化する方法を開示する。この方法では、Webページを構成するファイルを解析し、その解析データをプログラムが可読な形式の内部表現データに変換してキャッシュメモリに保持する。そして、Webページの表示処理において、ユーザが要求するWebページの内部表現データがキャッシュメモリに保持されているか否か判断し、内部表現データがキャッシュメモリに保持されている場合には、当該内部表現データをキャッシュメモリから取得して表示することにより、Webページの表示処理を高速化する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1が開示する方法では、生成された内部表現データをキャッシュメモリに逐次保存するため、この方法を、キャッシュメモリの容量が制限されている画像処理装置などの組み込み系装置に採用した場合、キャッシュメモリ領域がフルの状態では、新たに生成した内部表現データを保持するためにスワップアウトが発生し、ユーザが閲覧要求する頻度の高い画像の内部表現データをキャッシュメモリからスワップアウトまたは削除する虞があり、表示すべき画像の内部表現データのヒット率が低くなるという問題がある。
【0006】
このため、メモリの制限により内部表現データを削除する場合、その画面を表示する際に当該画像を構成するファイルを再度取得して解析および変換しなければならず、また、当該内部表現データをスワップアウトする場合には、その画面を表示する際に当該内部表現データをキャッシュメモリにスワップインさせなければならず、いずれの場合にも画面表示が遅延してしまうという問題があった。
【0007】
本発明は、上記従来技術の問題に鑑みてなされたものであり、操作パネルに表示すべき画面の内部表現データを格納するキャッシュメモリの容量制限によって生じる画面表示の遅延を防止して、操作パネルの画面表示を高速化する画像処理装置、方法およびプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の画像処理装置は、画面の優先度を算出するための優先度算出情報を用いて画像の優先度を算出する。そして、画像処理装置は、描画手段が解読可能なプログラム言語および形式で記述された画面の内部表現データが保存されるキャッシュメモリに保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に保存する。これにより、本発明の画像処理装置は、ユーザの閲覧頻度の高い画面の内部表現データのヒット率を向上させることができ、操作パネルの画面表示を高速化することができる。
【0009】
さらに、本発明は、ユーザの閲覧頻度の高い画面の内部表現データのヒット率を向上させて操作パネルの画面表示を高速化する方法およびプログラムを提供する。
【図面の簡単な説明】
【0010】
【図1】本実施形態の画像処理装置の機能構成を示す図。
【図2】本発明が採用するパイプおよびフィルタアーキテクチャの概念図。
【図3】本実施形態の画像処理装置が実装するプラグインモジュールを示す図。
【図4】本実施形態の画像処理装置が実装するブラウザの機能構成を示す図。
【図5】本実施形態の画像処理装置がプラグインモジュールをインストールする場合のシーケンスを示す図。
【図6】本実施形態の画像処理装置が実行する操作パネルに表示すべき画面の内部表現データの生成処理を示すフローチャート。
【図7】本実施形態の画像処理装置が使用する優先度算出情報テーブルおよび優先度テーブルを示す図。
【図8】本実施形態の画像処理装置が使用する優先度テーブルの一実施形態を示す図。
【図9】本実施形態の画像処理装置が使用する優先度テーブルの別の実施形態を示す図。
【図10】本実施形態の画像処理装置が使用する優先度テーブルを他の実施形態を示す図。
【図11】本実施形態の画像処理装置が操作パネルに画面を表示する際に実行する処理を示すフローチャート。
【図12】本実施形態の画像処理装置が使用する内部表現データおよび画面構成情報の一実施形態を示す図。
【図13】本実施形態の画像処理装置の機能拡張を示す概念図。
【図14】本実施形態の画像処理装置が実装するプラグインモジュールと、当該プラグインモジュールをインストールする画像処理装置との関係を示す図。
【発明を実施するための形態】
【0011】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の画像処理装置の機能構成を示す図である。以下、図1を参照して、画像処理装置100が実装する機能構成について説明する。
【0012】
画像処理装置100は、原稿画像をスキャニングして生成した画像データを印刷してコピーし、画像データをローカルネットワーク等のネットワークを介して配信し、画像データをFAX送信するMFP(Multi-Function Peripheral)として構成される。
【0013】
画像処理装置100は、画像処理装置100が実行する処理の全体制御を行うCPU等のプロセッサ、原稿画像のスキャニングや画像データの各種配信処理、画像データの印刷処理を実行するASIC(Application Specific Integrated Circuit)、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク装置(HDD)、ネットワークI/F、操作パネルなどを含んで実装されており、UNIX(登録商標)、LINUX(登録商標)などのOSの制御下で、アセンブラ、C、C++、JAVA(登録商標)、JavaScript(登録商標)などのプログラミング言語で記述された本実施形態のプログラムをRAMに展開して実行し、後述する機能を当該画像処理装置上で実現する。
【0014】
図1に示す画像処理装置100は、ユーザインタフェース部110と、コントロール部120と、機能実現部130と、デバイスサービス部150と、デバイス制御部160とを含む。
【0015】
ユーザインタフェース部110は、ユーザからの各種ジョブ(例えば、コピーや印刷、スキャン、ファックス、画面表示等)を受け付ける機能手段であり、ブラウザ111を含む。ブラウザ111は、操作パネルに種々の画面を表示する描画エンジンであり、当該画面に介してユーザが発行するジョブを受け付け、コントロール部120に通知する。
【0016】
コントロール部120は、ユーザが発行したジョブを制御する機能手段であり、プラグイン管理部121と、リクエスト管理部122と、認証管理部123とを含む。
【0017】
プラグイン管理部121は、画像処理装置100の機能を拡張するプログラムモジュール(以下、「プラグインモジュール」とする。)を管理する機能手段である。具体的には、プラグイン管理部121は、インストールすべきプラグインモジュールを、当該プラグインモジュールが格納された記憶装置から取得してインストールすると共に、当該プラグインモジュールをインスタンス化する。このとき、プラグイン管理部121は、画像処理装置100にインストールされたプラグインモジュールの識別情報と、当該プラグインモジュールのオブジェクトが格納されているメモリアドレスとを関連付けてプラグイン管理テーブルに登録する。
【0018】
プラグイン管理部121は、後述するデータ管理部151が管理するプラグイン管理テーブルを参照し、画像処理装置100にインストール可能なプラグインモジュールの一覧を生成する。また、プラグイン管理部121は、或るオブジェクトから別のオブジェクトの取得要求を受信すると、プラグイン管理テーブルを参照し、指定された別のオブジェクトのメモリアドレスを要求元のオブジェクトに提供することで、オブジェクト間の相互呼び出しを可能にする。
【0019】
本実施形態では、インストールすべきプラグインモジュールが格納されている記憶装置として、ネットワークを介して接続された情報処理装置、USBメモリやSDカード等のフラッシュメモリ、CD−ROM等を使用することができる。
【0020】
リクエスト管理部122は、ユーザが発行したジョブを機能実現部130に実行させる機能手段である。認証管理部123は、ユーザを認証する機能手段であり、操作パネルを介して入力されたユーザのアカウント名やパスワード等のユーザ識別情報によりユーザを認証する。
【0021】
機能実現部130は、ユーザが発行したジョブを実行する機能手段であり、コピーアプリケーション131と、送信アプリケーション132と、ファックスアプリケーション133とを含む。
【0022】
コピーアプリケーション131は、後述するスキャナ部134、加工部138および印刷部140を用いて、原稿をスキャンして印刷するコピー機能を実現するアプリケーションプログラムである。
【0023】
送信アプリケーション132は、後述するスキャナ部134およびメール送信部142を用いて、原稿をスキャンして得られた原稿画像をメール送信するアプリケーションプログラムである。
【0024】
ファックスアプリケーション133は、後述するスキャナ部134およびファックス送信部143を用いて、原稿をスキャンして得られた原稿画像をファックス送信するアプリケーションプログラムである。
【0025】
また、機能実現部130は、スキャナ部134と、読出部135と、メール受信部136と、ファックス受信部137とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0026】
スキャナ部134は、スキャナ装置を制御して原稿をスキャンして原稿画像を生成する機能手段である。読出部135は、画像処理装置100のHDDに格納されている画像データを読み出す機能手段である。メール受信部136は、外部からネットワークを介して電子メールを受信する機能手段である。ファックス受信部137は、外部からネットワークを介してファックスを受信する機能手段である。
【0027】
さらに、機能実現部130は、加工部138と、変換部139とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0028】
加工部138は、原稿画像等の入力画像データに対して、集約や拡大、縮小等の種々の画像変換処理を施す機能手段である。変換部139は、画像データのデータ形式を変換する機能手段であり、例えば、外部から受信したPostScript形式の印刷データをBitmap形式のデータに変換する。
【0029】
さらに、機能実現部130は、印刷部140と、登録部141と、メール送信部142と、ファックス送信部143とを含む。本実施形態では、これらの機能手段は1のプラグインモジュールとして構成されており、当該機能手段以外の他の機能手段に依存することなくインストールおよびアンインストールが可能である。
【0030】
印刷部140は、加工部138が入力データをプロッタに印刷出力させる機能手段である。登録部141は、画像処理装置100に入力した画像データやスキャンデータを画像処理装置100のHDDに保存する機能手段である。メール送信部142は、スキャンデータやHDDに格納されている画像データをメール送信する機能手段である。ファックス送信部143は、スキャンデータやHDDに格納されている画像データをファックス送信する機能手段である。
【0031】
さらに、機能実現部130は、ユーザ情報管理部144と、画面構成情報提供部145とを含む。
【0032】
ユーザ情報管理部144は、ユーザ識別情報等の認証情報を管理する機能手段であり、後述するデータ管理部151を用いて認証情報の参照や更新、削除、検索を行う。
【0033】
画面構成情報提供部145は、画像処理装置100にインストールされたプラグインモジュールの画面を構成する情報(以下、「画面構成情報」とする。)を提供する機能手段である。画面構成情報提供部145は、画像処理装置100にプラグインモジュールがインストールされると、画面構成情報提供部145が管理する記憶装置に当該プラグインモジュールが使用する画面の画面構成情報を登録する。画面構成情報提供部145は、ブラウザ111からの画面構成情報の取得要求に応じて、要求されている画面構成情報を当該記憶装置から取得し、ブラウザ111に提供する。
【0034】
デバイスサービス部150は、上述した機能手段が適宜呼び出し可能な機能手段であり、データ管理部151を含んで構成される。データ管理部151は、画像処理装置100にプラグインモジュールを管理するデータテーブルであるプラグイン管理テーブルを管理する機能手段である。
【0035】
プラグイン管理テーブルには、画像処理装置100にインストール可能なプラグインモジュールの識別情報と、プラグインモジュールが登録されているか否かを示す情報と、当該プラグインモジュールをインスタンス化して生成されるオブジェクトの識別情報と、その格納先のメモリアドレスとが登録される。
【0036】
データ管理部151は、新たなプラグインモジュールがインストールされるとプラグイン管理テーブルに当該プラグインモジュールの識別情報を登録し、プラグインモジュールがアンインストールされると、当該プラグインモジュールの識別情報をプラグイン管理テーブルから削除する。
【0037】
プラグイン管理121がプラグインモジュール一覧を生成する場合、データ管理部151は、画像処理装置100にインストール可能なプラグインモジュールの識別情報のうち、未だインストールされていないプラグインモジュールの識別情報をプラグイン管理121に提供する。
【0038】
また、データ管理部151は、プラグインモジュールのインストール時に、プラグインモジュールをインスタンス化して生成されるオブジェクトの識別情報と、その格納先のメモリアドレスとを関連付けて登録する。データ管理部151は、プラグイン管理部121の要求により、これらの情報をプラグイン管理部121に提供する。
【0039】
デバイス制御部160は、画像処理装置100が備えるスキャナ装置やプロッタ等の装置を制御する手段である。
【0040】
図2は、本発明が採用するパイプおよびフィルタアーキテクチャの概念図である。パイプおよびフィルタアーキテクチャでは、フィルタ201,203,205が入力データを変換し、パイプ202,204はフィルタが変換したデータを次のフィルタに提供する。
【0041】
ここで、データの変換を入力、加工および出力として捉えると、図1に示す画像処理装置100が実装する機能手段は、入力フィルタ、加工フィルタおよび出力フィルタに分類することができる。具体的には、スキャナ部134、読出部135、メール受信部136およびファックス受信部137は入力フィルタに該当し、加工部138および変換部139は加工フィルタに該当する。また、印刷部140、登録部141、メール送信部142およびファックス送信部143は出力フィルタに該当する。これらの各フィルタは、1のプラグインモジュールであり、独立して画像処理装置100に追加および削除が可能である。
【0042】
図3は、本実施形態の画像処理装置が実装するプラグインモジュールを示す図である。プラグインモジュール300は、動作オブジェクト310と、画面構成情報320とを含んで構成される。
【0043】
動作オブジェクト310は、動作中のプラグインモジュールにアクセスするためにメモリ領域上に形成されるクラスのインスタンス、すなわちオブジェクトである。動作オブジェクト310は、他のプラグインモジュールの動作オブジェクトからの要求を受けて処理を実行し、または、他のプラグインモジュールの動作オブジェクトに対して処理を依頼する。
【0044】
例えば、プラグインモジュールであるスキャナ部134の動作オブジェクトは、他のプラグインモジュールであるコピーアプリケーション131の動作オブジェクトからスキャンの設定情報をパラメータとして受け取り、原稿のスキャンを実行する。スキャンが終了すると、スキャナ部134の動作オブジェクトは、コピーアプリケーション131の動作オブジェクトにスキャンデータを提供する。
【0045】
画面構成情報320は、画面構造322と、画面デザイン324と、アイコン326と、制御プログラム328とを含んで構成される。
【0046】
画面構造322は、GUIの構造を規定する情報である。画面デザイン324は、画面構造322が規定する画面構造に基づくGUIの具体的なレイアウトおよびデザインを規定する情報である。アイコン326は、GUIに表示する画像データである。制御プログラム328は、GUI上に動的に画像を表示し、またはボタン等の押下によってユーザの入力を受け付けてジョブを発行するなどの所定の処理を実行する。
【0047】
図4は、本実施形態の画像処理装置が実装するブラウザの機能構成を示す図である。以下、図4を参照して、画像処理装置100のブラウザ111について詳細に説明する。
【0048】
ブラウザ111は、リクエスト要否判定部401と、リクエスト送信部402と、レスポンス受信部403とを含む。
【0049】
リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要があるか否か判定する機能手段である。具体的には、リクエスト要否判定部401は、ユーザが操作パネルに表示されたGUIを用いて指定する遷移先画面の内部表現データが、GUIの内部表現データを格納すべき記憶装置である内部表現データメモリ411に保持されているか否か判断する。
【0050】
遷移先画面の内部表現データが内部表現データメモリ411に保持されている場合には、リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要がないと判断する。一方、遷移先画面の内部表現データが内部表現データメモリ411に保持されていない場合には、リクエスト要否判定部401は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する必要があると判断する。
【0051】
本実施形態では、内部表現データメモリ411は、画像処理装置100のCPU等のプロセッサが高速にアクセス可能な不揮発性のキャッシュメモリであり、主記憶装置に比べてメモリ容量が制限されている。
【0052】
リクエスト送信部402は、遷移先画面の画面構成情報を画面構成情報提供部145に要求する機能手段である。リクエスト送信部402は、遷移先画面の内部表現データが内部表現データメモリ411に保存されていない場合に、当該遷移先画面の画面構成情報を画面構成情報提供部145に要求する。
【0053】
レスポンス受信部403は、画面構成情報提供部145からレスポンスを受信したか否か判断する機能手段である。レスポンス受信部403は、リクエスト送信部402が送信した遷移先画面の画面構成情報のリクエストに対するレスポンスを受信したか否か判断する。
【0054】
また、ブラウザ111は、解析部404と、内部表現データ読出部405と、内部表現データ記憶部406とを含む。
【0055】
解析部404は、画面構成情報を解析して変換する機能手段である。具体的には、解析部404は、XMLやHTML、XHTML等の構造化言語やCSS等のスタイルシート言語で記述された画面構成情報であるテキスト文書を構文解析および字句解析し、後述する描画部407が解読可能なプログラム言語および形式で記述された内部表現データを生成する。本実施形態では、解析部404として、XMLパーサやHTMLパーサ、XHTMLパーサ、CSSパーサ等の種々のパーサを採用することができる。
【0056】
内部表現データ読出部405は、内部表現データメモリ411に保持された内部表現データを読み出す機能手段である。内部表現データ読出部405は、リクエスト要否判定部401が遷移先画面の内部表現データが内部表現データメモリ411に保持されていると判断した場合に、遷移先画面の内部表現データを内部表現データメモリ411から読み出す。
【0057】
内部表現データ記憶部406は、操作パネルに表示される画面の内部表現データを内部表現データメモリ411に保存または削除する機能手段である。内部表現データ記憶部406は、他の機能手段から呼び出すことができ、指定された画面の内部表現データを、そのメタデータである当該画面の識別情報と共に内部表現データメモリ411に保存する。また、内部表現データ記憶部406は、指定された内部表現データを、その識別情報と共に内部表現データメモリ411から削除する。
【0058】
さらに、ブラウザ111は、描画部407と、優先度管理部408と、保存判定部409と、計測部410とを含む。
【0059】
描画部407は、画像処理装置100の操作パネルに画面を描画する機能手段である。描画部407は、内部表現データ読出部405を介して内部表現データメモリ411から取得した内部表現データを解析して操作パネルに画面を描画する。本実施形態では、描画部407として、DOM仕様で記述された内部表現データから画面を生成するJava(登録商標)アプリケーションやJava(登録商標)アプレット等のJava(登録商標)プログラムや他の描画プログラムを採用することができる。
【0060】
優先度管理部408は、操作パネルに表示される画面の使用頻度を示す優先度を管理する機能手段である。優先度管理部408は、操作パネルに表示される画面の優先度を算出するための情報(以下、「優先度算出情報」とする。)が登録される優先度算出情報テーブルと、画面の優先度が登録される優先度テーブルを管理する。
【0061】
優先度管理部408は、プラグインモジュールのインストール時や画面表示時に優先度算出情報テーブルを更新し、これらの優先度算出情報を使用して優先度を算出し、優先度テーブルを更新する。優先度算出情報テーブルおよび優先度テーブルは、記憶装置412に保存される。
【0062】
本実施形態では、記憶装置412は、画像処理装置100のCPU等のプロセッサが高速にアクセス可能な不揮発性のキャッシュメモリとすることができる。他の実施形態では、記憶装置412を不揮発性のRAMやHDDで構成してもよい。
【0063】
優先度管理部408は、以下の数式1を用いて、プラグインモジュールが使用する画面の優先度を算出することができる。
【0064】
【数1】
【0065】
ここで、所定の係数は利用回数を重み付けする値であり、静的または動的に設定することができる。この値を調整することにより、利用回数の重要度を変更することができる。
【0066】
優先度管理部408は、プラグインモジュールを新たにインストールする場合、既にインストールされているプラグインモジュールが使用する画面の利用回数を使用して、新たなプラグインモジュールが使用する画面の優先度を算出することができる。なお、新たなプラグインモジュールが使用する画面の優先度の算出方法については、図7を参照して詳細に説明する。
【0067】
保存判定部409は、操作パネルに表示される画面の内部表現データを内部表現データメモリ411に保存すべきか否か判断する機能手段である。保存判定部409は、画面の優先度や内部表現データメモリ411の残量に基づいて、当該画面の内部表現データを内部表現データメモリ411に保存すべきか否か判断する。なお、内部表現データの保存の可否を判断する方法については、図6,8〜11を参照して詳細に説明する。
【0068】
計測部410は、内部表現データの生成時間を計測する手段である。計測部410は、S/WタイマーやH/Wタイマー等のタイマーを使用して、解析部404が画面構成情報から内部表現データを生成するまでの時間を計測する。
【0069】
図5は、本実施形態の画像処理装置がプラグインモジュールをインストールする場合のシーケンスを示す図である。以下、図5を参照して、画像処理装置100が実行するプラグインモジュールのインストール処理について説明する。
【0070】
プラグインモジュールのインストール処理は、ユーザが画像処理装置100の操作パネルを使用してプラグインモジュールのインストール画面の表示要求を発行することにより開始する。画像処理装置100に実装されたブラウザ111は、インストール画面の表示要求を受け付けると、内部表現データメモリ411を検索してインストール画面の内部表現データが保持されているか否か判断する。インストール画面の内部表現データが内部表現データメモリ411に保持されている場合には、ブラウザ111は、内部表現データメモリ411からインストール画面の内部表現データを取得する。
【0071】
次に、ブラウザ111は、プラグイン管理部121に対し、画像処理装置100にインストール可能なプラグインモジュールの一覧を要求する。プラグイン管理部121は、データ管理部151に対して、インストール可能なプラグインモジュールの識別情報を要求する。データ管理部151は、プラグイン管理テーブルを参照して画像処理装置100にインストール可能なプラグインモジュールを検索し、インストール可能なプラグインモジュールの識別情報をプラグイン管理部121に提供する。
【0072】
プラグイン管理部121は、プラグインモジュールの識別情報を用いてインストール可能なプラグインモジュールの一覧を生成し、ブラウザ111に提供する。ブラウザ111は、当該プラグインモジュールの一覧を操作パネルに表示する。
【0073】
ユーザが、操作パネルに表示されたプラグインモジュールの一覧からインストールすべきプラグインモジュールを選択してインストール要求を発行すると、ブラウザ111は、プラグイン管理部121に対して、当該プラグインモジュールのインストールを要求する。プラグイン管理部121は、プラグインモジュールが格納されている記憶装置からユーザが指定したプラグインモジュールを取得し、当該プラグインモジュールをインスタンス化してオブジェクトを生成する。プラグイン管理部121は、当該オブジェクトの識別情報と、その格納先のメモリアドレスとを、データ管理部151を介してプラグイン管理テーブルに登録する。
【0074】
プラグインモジュールのインストールによって新たに生成されたオブジェクト512は、当該プラグインモジュールが有する画面構成情報を、画面構成情報提供部145に提供して登録する。画面構成情報が登録されると、オブジェクト512は、当該画面構成情報の内部表現データの生成要求と共に、当該画面構成情報をプラグイン管理部121に送信する。プラグイン管理部121は、ブラウザ111に内部表現データの生成要求および当該画面構成情報を送信して内部表現データを生成させる。
【0075】
図6は、本実施形態の画像処理装置が実行する操作パネルに表示すべき画面の内部表現データの生成処理を示すフローチャートである。以下、図6を参照して内部表現データの生成処理について説明する。
【0076】
図6の処理は、画像処理装置100に実装されたブラウザ111が、プラグイン管理部121から内部表現データの生成要求を受信することによりステップS600から開始する。ステップS601では、ブラウザ111の解析部404が、内部表現データの生成要求と共に受信した画面構成情報を解析し、内部表現データを生成する。ステップS602では、計測部410が内部表現データの生成時間を計測する。
【0077】
ステップS603では、保存判定部409が、新たに生成した内部表現データを保存する容量が内部表現データメモリ411に有るか否か判断する。内部表現データを保存する容量が有ると判断した場合には(yes)、処理をステップS610に分岐する。一方、内部表現データを保存する容量が無いと判断した場合には(no)、処理をステップS604に分岐する。
【0078】
ステップS604では、優先度管理部408は、優先度算出情報テーブルを参照し、これに登録されている総ての優先度算出情報を読み出す。ステップS605では、優先度管理部408は、当該優先度算出情報を使用して、内部表現データメモリに保持されている内部表現データの優先度を算出し、優先度テーブルを更新する。ステップS606では、優先度管理部408は、ステップS601で新たに生成した内部表現データの優先度を算出する。
【0079】
ステップS607では、保存判定部409は、新たに生成した内部表現データの優先度と、優先度テーブルに登録された内部表現データの優先度とを比較し、新たに生成した内部表現データよりも優先度の低い内部表現データが存在するか否か判断する。新たに生成した内部表現データよりも優先度の低い内部表現データが存在しない場合には(no)、処理をステップS612に分岐して終了する。一方、新たに生成した内部表現データよりも優先度の低い内部表現データが存在する場合には(yes)、処理をステップS608に分岐する。
【0080】
ステップS608では、保存判定部409は、優先度テーブルを参照して、新たに生成された内部表現データと置換すべき内部表現データを特定する。ステップS609では、内部表現データ記憶部406が、内部表現データメモリ411から当該置換すべき内部表現データを削除する。
【0081】
ステップS610では、内部表現データ記憶部406は、新たに生成した内部表現データを内部表現データメモリ411に保存する。ステップS611では、優先度管理部408は、優先度算出情報テーブルおよび優先度テーブルを更新し、ステップS612で処理が終了する。具体的には、優先度管理部408は、新たに生成された内部表現データの優先度算出情報および優先度を優先度算出情報テーブルおよび優先度テーブルに登録すると共に、削除された内部表現データの優先度を優先度テーブルから削除する。
【0082】
図7は、本実施形態の画像処理装置が使用する優先度算出情報テーブルおよび優先度テーブルを示す図である。以下、図7を参照して、優先度算出情報テーブル710および優先度テーブル720と、新たにインストールするプラグインモジュールが使用する画面の優先度の算出方法とについて説明する。
【0083】
優先度算出情報テーブル710は、画像処理装置100にインストールされているプラグインモジュールが使用する画面の優先度算出情報を登録するデータテーブルである。優先度算出情報テーブル710には、プラグイン名711と、画面ID712と、上位画面ID713と、生成時間714と、利用回数715と、データサイズ716とが関連付けて登録される。
【0084】
プラグイン名711は、画像処理装置100にインストールされているプラグインモジュールの識別情報である。プラグイン名711は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、プラグイン名として「コピーアプリケーション」および「送信アプリケーション」が登録されているが、プラグインモジュールを固有に識別できる限り、如何なる文字や数字、記号、これらの組み合わせを用いてもよい。
【0085】
画面ID712は、プラグイン名711に示すプラグインモジュールが使用する画面の識別情報である。画面ID712は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、プラグインモジュールである「コピーアプリケーション」が使用する画面の画面IDとして、「COPY_TOP」や「COPY_COVER」、「COPY_MAGNIFICATION」等の識別情報が登録されている。また、「送信アプリケーション」が使用する画面の画面IDとして、「SEND_TOP」や「SEND_ADDRESS」、「SEND_SCAN_SETTING」等の識別情報が登録されている。
【0086】
上位画面ID713は、画面ID712に登録された画面IDが示す画面が従属する上位画面の識別情報である。上位画面ID713は、プラグインモジュールのインストール時に登録される。図7に示す実施形態では、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」が示す画面の上位画面が、画面ID「SEND_SCAN_SETTING」が示す画面であることを表している。
【0087】
生成時間714は、画面ID712に登録された画面IDが示す画面の内部表現データの生成時間である。内部表現データの生成時間は、プラグインモジュールのインストール時に計測され、生成時間714に登録される。
【0088】
利用回数715は、画面IDが示す画面の利用回数である。利用回数は、当該画面が表示される度に更新される。
【0089】
データサイズ716は、画面IDが示す画面の内部表現データのデータサイズである。プラグインモジュールをインストールする際に登録される。
【0090】
優先度テーブル720は、画像処理装置100の内部表現データメモリ411に保持されている内部表現データを用いて描画される画面の優先度を登録するデータテーブルである。優先度テーブル720には、プラグイン名721と、画面ID722と、優先度723と、データサイズ724とが登録される。
【0091】
プラグイン名721は、画像処理装置100にインストールされているプラグインモジュールのうち、内部表現データメモリ411に保持されている内部表現データを用いて描画される画面を使用するプラグインモジュールの識別情報である。画面ID722は、プラグイン名721が示すプラグインモジュールが使用する画面の識別情報である。優先度723は、画面ID722が示す画面の優先度である。データサイズ724は、画面ID722が示す画面の内部表現データのデータサイズである。
【0092】
本実施形態では、新たにインストールするプラグインモジュールが使用する画面(以下、「新規画面」とする。)の優先度は、当該画面に関連する画面の利用回数を用いて算出することができる。具体的には、優先度管理部408は、新規画面を使用するプラグインモジュールが使用する他の画面の利用回数の平均値を、当該新規画面の利用回数として使用して、上述した数式1により、新規画面の優先度を算出することができる。
【0093】
例えば、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」が示す画面を新規画面と仮定すると、これらの新規画面の優先度は、当該新規画面を使用するプラグインモジュール「送信アプリケーション」が使用する他の画面「SEND_TOP」、「SEND_ADDRESS」、「SEND_SCAN_SETTING」の利用回数を用いて算出することができる。
【0094】
また、優先度管理部408は、新規画面の上位画面の利用回数を当該新規画面の利用回数として使用して、新規画面の優先度を算出することもできる。例えば、上述した例では、画面ID「SEND_SCAN_RESOLUTION」および「SEND_SCAN_SIZE」の上位画面である「SEND_SCAN_SETTING」の利用回数を用いて、これらの新規画面の優先度を算出することができる。
【0095】
図8〜10は、本実施形態の画像処理装置が使用する優先度テーブルを示す。以下、図8〜10を参照し、本実施形態の画像処理装置が置換すべき内部表現データを特定する方法を説明する。
【0096】
図8に示す優先度テーブル810は、更新前の優先度テーブルであり、優先度テーブル820は、更新後の優先度テーブルである。画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル810を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「200」よりもデータサイズの大きい画面ID(「COPY_COVER」)を抽出する。保存判定部409は、当該画面ID(「COPY_COVER」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0097】
更新後の優先度テーブル820には、画面ID「COPY_COVER」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0098】
図9に示す優先度テーブル910は、更新前の優先度テーブルであり、優先度テーブル920は、更新後の優先度テーブルである。図8を参照して説明した方法と同様に、画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル910を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「160」よりもデータサイズの大きい画面ID(「COPY_DUPLEX」)を抽出する。
【0099】
さらに、保存判定部409は、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」が、当該画面IDよりも優先度の低い画面ID(「COPY_COVER」および「COPY_EDIT」)の優先度の合計値「453」とを比較する。これらの画像IDの優先度の合計値「453」が、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」よりも大きい場合には、保存判定部409は、当該抽出した画面ID(「COPY_DUPLEX」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0100】
更新後の優先度テーブル920には、画面ID「COPY_DUPLEX」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0101】
図10に示す優先度テーブル1010は、更新前の優先度テーブルであり、優先度テーブル1020は、更新後の優先度テーブルである。図9を参照して説明した方法と同様に、画面ID「NEW_CONTENTS」が示す画面の内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111の保存判定部409は、優先度テーブル1010を優先度順にソートする。そして、保存判定部409は、画面ID「NEW_CONTENTS」が示す画面の優先度「289」よりも優先度が低く、かつ、当該画面の内部表現データのデータサイズ「160」よりもデータサイズの大きい画面ID(「COPY_DUPLEX」)を抽出する。
【0102】
さらに、保存判定部409は、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」が、当該画面IDよりも優先度の低い画面ID(「COPY_COVER」および「COPY_EDIT」)の優先度の合計値「218」とを比較する。これらの画像IDの優先度の合計値「218」が、抽出した画面ID(「COPY_DUPLEX」)の優先度「276」よりも小さい場合には、保存判定部409は、これらの画面ID(「COPY_COVER」および「COPY_EDIT」)のデータサイズの合計値「170」と、画面ID「NEW_CONTENTS」のデータサイズ「160」とを比較する。
【0103】
そして、画面ID(「COPY_COVER」および「COPY_EDIT」)のデータサイズの合計値「170」が、画面ID「NEW_CONTENTS」のデータサイズ「160」よりも大きい場合には、画面ID(「COPY_COVER」および「COPY_EDIT」)が示す画面の内部表現データを、置換すべき内部表現データと特定する。
【0104】
更新後の優先度テーブル1020には、画面ID「COPY_COVER」および「COPY_EDIT」の代わりに、画面ID「NEW_CONTENTS」に関連する優先度およびデータサイズが登録される。
【0105】
図11は、本実施形態の画像処理装置が操作パネルに画面を表示する際に実行する処理を示すフローチャートである。以下、図11を参照して、画面の表示処理について説明する。
【0106】
図11の処理は、画像処理装置100のブラウザ111が、ユーザが操作パネルを使用して発行した画面の表示要求を受信することにより、ステップS1100から開始する。ステップS1101では、リクエスト要否判定部401は、表示要求と共に受信した画面IDが示す遷移先画面の内部表現データが、内部表現データメモリ411に保持されているか否か判断する。
【0107】
遷移先画面の内部表現データが内部表現データメモリ411に保持されている場合には(yes)、処理をステップS1102に分岐する。ステップS1102では、描画部407が、遷移先画面の内部表現データを解析し、画像処理装置100の操作パネルに遷移先画面を表示する。ステップS1103では、優先度管理部408は、遷移先画面の利用回数をインクリメントして優先度算出情報テーブルを更新し、ステップS1117で処理が終了する。
【0108】
一方、ステップS1101で遷移先画面の内部表現データが内部表現データメモリ411に保持されていないと判断した場合には(no)、ステップS1104でリクエスト送信部402が、画面構成情報提供部145に遷移先画面の画面構成情報を要求する。ステップS1105では、レスポンス受信部403が、画面構成情報提供部145から遷移先画面の画面構成情報を受信したか否か判断し、受信していない場合には(no)、当該処理を反復する。一方、遷移先画面の画面構成情報を受信した場合には(yes)、処理をステップS1106に分岐する。
【0109】
ステップS1106では、解析部404が、遷移先画面の画面構成情報を解析して内部表現データを生成する。ステップS1107では、描画部407が、遷移先画面の内部表現データを解析して、操作パネルに遷移先画面を表示する。
【0110】
ステップS1108では、保存判定部409が、内部表現データメモリ411に遷移先画面の内部表現データを保存する容量があるか否か判断する。遷移先画面の内部表現データを保存する容量がある場合には(yes)、処理をステップS1115に分岐する。一方、遷移先画面の内部表現データを保存する容量が無い場合には(no)、処理をステップS1109に分岐する。
【0111】
ステップS1109では、優先度管理部408が、優先度算出情報テーブルに登録されている総ての優先度算出情報を読み出す。ステップS1110では、優先度管理部408は、優先度算出情報を使用して、内部表現データメモリ411に保持されている内部表現データの優先度を算出し、優先度テーブルを更新する。ステップS1111では、優先度管理部408は、優先度算出情報テーブルを参照し、遷移先画面の優先度算出情報を用いて遷移先画面の内部表現データの優先度を算出する。
【0112】
ステップS1112では、保存判定部409は、優先度テーブルを参照し、遷移先画面よりも優先度の低い画面が存在するか否か判断する。遷移先画面よりも優先度の低い画面が存在しない場合には(no)、処理をステップS1117に分岐して終了する。一方、遷移先画面よりも優先度の低い画面が存在する場合には(yes)、処理をステップS1113に分岐する。
【0113】
ステップS1113では、保存判定部409は、優先度テーブルを参照して、新たに生成された遷移先画面の内部表現データと置換すべき内部表現データを特定する。ステップS1114では、内部表現データ記憶部406が、内部表現データメモリ411から当該置換すべき内部表現データを削除する。ステップS1115では、内部表現データ記憶部406は、新たに生成した遷移先画面の内部表現データを内部表現データメモリ411に保存する。
【0114】
ステップS1116では、優先度管理部408は、優先度算出情報テーブルおよび優先度テーブルを更新し、ステップS1117で処理が終了する。具体的には、優先度管理部408は、新たに生成された遷移先画面の内部表現データの優先度算出情報である遷移先画面の利用回数を更新し、遷移先画面の優先度を登録する。また、優先度管理部408は、内部表現データメモリ411から削除された内部表現データの優先度を優先度テーブルから削除する。
【0115】
図12は、本実施形態の画像処理装置が使用する内部表現データおよび画面構成情報の一実施形態を示す図である。以下、図12を参照して内部表現データおよび画面構成情報について説明する。
【0116】
内部表現データメモリ411には、画面ID1212と、内部表現データ1214とが保存される。画面ID1212は、内部表現データ1214によって描画される画面IDであり、内部表現データ1214のメタデータとして保存される。内部表現データ1214は、内部表現データを格納したファイル名であり、当該ファイルに内部表現データが含まれている。
【0117】
画像処理装置100の操作パネルに画面を表示する場合、ブラウザ111は、ユーザが選択した遷移先画面の画面IDを、内部表現データメモリ411で使用する形式の画面IDに変換し、対象となる遷移先画面の内部表現データ1214を取得することができる。例えば、画面ID「COPY_TOP」の遷移先画面の表示が要求された場合、ブラウザ111は、画面ID「COPY_TOP」を「/copy/top.html」に変換し、内部表現データメモリ411からメタデータが「/copy/top.html」である内部表現データ「Copy_top.dat」を読み出すことができる。
【0118】
また、置換すべき内部表現データを内部表現データメモリ411から削除する場合、ブラウザ111は、置換すべき内部表現データによって描画される画面の画面IDを内部表現データメモリ411の形式に変換し、該当する内部表現データを削除することができる。さらに、新たに生成した内部表現データを内部表現データメモリ411に保存する場合、ブラウザ111は、予め規定されている当該内部表現データの画面IDを内部表現データメモリ411の形式に変換し、その内部表現データと共に保存する。
【0119】
他の実施形態では、内部表現データメモリ411に登録する画面IDとして、優先度算出情報テーブルや優先度テーブルに登録される画面IDと共通の画面IDを使用してもよい。
【0120】
テキストデータ1220は、画像処理装置100が処理する画面構成情報に含まれる画面構造を規定するテキストデータの一実施形態である。ツリー構造1230は、テキストデータ1220を用いて生成される内部表現データのツリー構造をDOM仕様に基づいて表したものである。画像処理装置100のブラウザ111は、このようなテキストデータ1220をパースして内部表現データを生成する。
【0121】
図13は、本実施形態の画像処理装置の機能拡張を示す概念図である。本実施形態では、画像処理装置100が有する基本機能を提供する基本プログラムであるフレームワークに対して、複数のプラグインモジュールを追加することができる。さらに、これらのプラグインモジュールには、当該プラグインモジュールの機能を拡張するプラグインモジュールを追加することができる。これにより、将来的に変更や拡張が予測される機能については、予めフレームワークや拡張対象のプラグインモジュールと切り離して設計することができ、すなわち、拡張すべき機能に特化したプラグインモジュールのみを開発することができ、開発工数等を軽減することができる。
【0122】
図14は、本実施形態の画像処理装置が実装するプラグインモジュールと、当該プラグインモジュールをインストールする画像処理装置との関係を示す図である。
【0123】
画像処理装置1420,1430,1440には、それぞれ異なる描画エンジンが搭載されている。画像処理装置1420には、汎用的な描画エンジンが搭載されており、画像処理装置1430,1440には、それぞれ独自の描画エンジンが搭載されている。また、画像処理装置1420,1430,1440は、各描画エンジンが描画可能な形式の内部表現データを生成する内部表現データ生成部を備えている。プラグインモジュール1410に含まれる画像構成情報は、これらの描画エンジンが処理可能な形式の情報であり、これにより、画像処理装置1420,1430,1440が、共通のプラグインモジュールを利用することができる。
【0124】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の構成要素の追加や、本実施形態の構成要素の変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0125】
100…画像処理装置、110…ユーザインタフェース部、111…ブラウザ、120…コントロール部、121…プラグイン管理部、122…リクエスト管理部、123…認証管理部、130…機能実現部、131…コピーアプリケーション、132…送信アプリケーション、133…ファックスアプリケーション、134…スキャナ部、135…読出部、136…メール受信部、137…ファックス受信部、138…加工部、139…変換部、140…印刷部、141…登録部、142…メール送信部、143…ファックス送信部、144…ユーザ情報管理部、145…画面構成情報提供部、150…デバイスサービス部、151…データ管理部、160…デバイス制御部
【先行技術文献】
【特許文献】
【0126】
【特許文献1】特開2009−187465号公報
【特許請求の範囲】
【請求項1】
複数の画面を操作パネルに表示する画像処理装置であって、
前記複数の画面の優先度を算出するための優先度算出情報を用いて前記画面の優先度を算出し、データテーブルに登録して管理する優先度管理手段と、
前記画面を前記操作パネルに描画する描画手段と、
前記描画手段が解読可能なプログラム言語および形式で記述された前記画面の内部表現データが保存されるキャッシュメモリ手段と、
前記キャッシュメモリ手段に保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に前記キャッシュメモリ手段に保存する保存手段と
を含む、画像処理装置。
【請求項2】
前記画像処理装置の機能を拡張するプラグインモジュールをインストールする場合、
前記優先度管理手段は、前記プラグインモジュールが使用する画面の優先度算出情報を、前記画面に関連する画面の優先度算出情報を用いて算出する、請求項1に記載の画像処理装置。
【請求項3】
前記優先度算出情報は、優先度を算出すべき画面の利用回数および内部表現データの生成時間を含み、
前記優先度管理手段は、前記プラグインモジュールが使用する画面に関連する画面の利用回数を使用して優先度を算出する、請求項2に記載の画像処理装置。
【請求項4】
複数の画面を操作パネルに表示する画像処理装置が実行する方法であって、前記方法は、前記画像処理装置が、
前記複数の画面の優先度を算出するための優先度算出情報を用いて前記画像の優先度を算出するステップと、
前記画面を前記操作パネルに描画する描画手段が解読可能なプログラム言語および形式で記述された前記画面の内部表現データが保存されるキャッシュメモリ手段に保存すべき内部表現データを判定するステップと、
優先度の高い画面の内部表現データを優先的に前記キャッシュメモリ手段に保存するステップと
を含む、方法。
【請求項5】
前記画像処理装置の機能を拡張するプラグインモジュールをインストールする場合、
前記優先度を算出するステップは、前記プラグインモジュールが使用する画面の優先度算出情報を、前記画面に関連する画面の優先度算出情報を用いて算出する、請求項4に記載の方法。
【請求項6】
前記優先度算出情報は、優先度を算出すべき画面の利用回数および内部表現データの生成時間を含み、
前記優先度を算出するステップは、前記プラグインモジュールが使用する画面に関連する画面の利用回数を使用して優先度を算出する、請求項5に記載の方法。
【請求項7】
請求項4〜6のいずれか1項に記載の各ステップを画像処理装置が実行するためのコンピュータ実行可能なプログラム。
【請求項1】
複数の画面を操作パネルに表示する画像処理装置であって、
前記複数の画面の優先度を算出するための優先度算出情報を用いて前記画面の優先度を算出し、データテーブルに登録して管理する優先度管理手段と、
前記画面を前記操作パネルに描画する描画手段と、
前記描画手段が解読可能なプログラム言語および形式で記述された前記画面の内部表現データが保存されるキャッシュメモリ手段と、
前記キャッシュメモリ手段に保存すべき内部表現データを判定し、優先度の高い画面の内部表現データを優先的に前記キャッシュメモリ手段に保存する保存手段と
を含む、画像処理装置。
【請求項2】
前記画像処理装置の機能を拡張するプラグインモジュールをインストールする場合、
前記優先度管理手段は、前記プラグインモジュールが使用する画面の優先度算出情報を、前記画面に関連する画面の優先度算出情報を用いて算出する、請求項1に記載の画像処理装置。
【請求項3】
前記優先度算出情報は、優先度を算出すべき画面の利用回数および内部表現データの生成時間を含み、
前記優先度管理手段は、前記プラグインモジュールが使用する画面に関連する画面の利用回数を使用して優先度を算出する、請求項2に記載の画像処理装置。
【請求項4】
複数の画面を操作パネルに表示する画像処理装置が実行する方法であって、前記方法は、前記画像処理装置が、
前記複数の画面の優先度を算出するための優先度算出情報を用いて前記画像の優先度を算出するステップと、
前記画面を前記操作パネルに描画する描画手段が解読可能なプログラム言語および形式で記述された前記画面の内部表現データが保存されるキャッシュメモリ手段に保存すべき内部表現データを判定するステップと、
優先度の高い画面の内部表現データを優先的に前記キャッシュメモリ手段に保存するステップと
を含む、方法。
【請求項5】
前記画像処理装置の機能を拡張するプラグインモジュールをインストールする場合、
前記優先度を算出するステップは、前記プラグインモジュールが使用する画面の優先度算出情報を、前記画面に関連する画面の優先度算出情報を用いて算出する、請求項4に記載の方法。
【請求項6】
前記優先度算出情報は、優先度を算出すべき画面の利用回数および内部表現データの生成時間を含み、
前記優先度を算出するステップは、前記プラグインモジュールが使用する画面に関連する画面の利用回数を使用して優先度を算出する、請求項5に記載の方法。
【請求項7】
請求項4〜6のいずれか1項に記載の各ステップを画像処理装置が実行するためのコンピュータ実行可能なプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−16094(P2013−16094A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−149698(P2011−149698)
【出願日】平成23年7月6日(2011.7.6)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成23年7月6日(2011.7.6)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]