説明

画像処理装置

【課題】本発明では、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することを目的とする。
【解決手段】本発明に係る画像処理装置は、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能な画像処理装置であって、プラグインが追加される際に、該プラグインの備えるインタフェースに関する仕様が、アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理に関するアプリケーションの機能を拡張するためのプラグインを追加する際に、当該プラグインが備えるインタフェースの仕様について適切か否かの判定を行う技術に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータおよびワークステーションなどの装置だけでなく、様々な装置に高性能なAPI(Application Program Interface)を有するOS(Operating System)が採用されている。例えば、コピー、プリンタ、スキャナ、FAX、またはドキュメントサーバなどの機能を集約した複合機(MFP)などの装置にも、このようなOSが採用されている。
APIの性能が低かった頃は、これらの装置の機能拡張を行い、または応用的な処理を行うためのプログラムを作成することは難しく、手間が掛かった。装置の構造を理解し、機械語などの言語を用いてプログラムをコーディングしなければならなかったからである。
【0003】
しかし、高性能なAPIが採用されるようになってからは、予め用意されているAPI関数をコールするだけで種々の機能を呼び出して処理を行うことができるようになった。これにより、従来よりも容易にプログラミングが行われるようになった。
したがって、今後、これらの装置の機能拡張を行いまたは応用的な処理を行うためのプログラム、およびこれらのプログラムを作成し提供するサービス提供者が増えると予測される。このことは、ユーザにとって、装置をより便利に使用することができるようになるという利点があるが、その一方で、不正な処理を実行しユーザに損害をもたらす欠陥のあるプログラムや悪意のあるプログラムが流通しやすくなるという問題点もある。
【0004】
そこで、上記装置でプログラムを実行する際に、何らかのチェックを行う必要があるものと考えられるが、特許文献1では、MFPにプログラムを追加する際に、そのプログラムの作成者の情報に基づいて当該プログラムの実行制御を行う技術が公開されている。この技術においては、プログラム実行時に、該プログラムの作成者にアクセス許可されていないAPI呼び出しを行うと、そのAPI呼び出しが禁止される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記技術においては、プログラムの作成者情報を登録する必要があり、未登録の作成者により作成されたプログラムには適用できないという問題点がある。
また、上記技術においては、プログラムの作成者が正当か否かに基づいてプログラムの実行制御はできるものの、装置に追加するプログラム自体に問題が無いか否かをチェックすることができないという問題点がある。
【0006】
そこで、本発明では、上記問題点に鑑み、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
開示の画像処理装置の一形態では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能な画像処理装置であって、プラグインが追加される際に、該プラグインの備えるインタフェースに関する仕様が、対応するアプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段を有することを特徴とする。
【発明の効果】
【0008】
本発明では、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。
【図面の簡単な説明】
【0009】
【図1】本実施の形態に係る複合機のソフトウェア構成例を説明するための図である。
【図2】本実施の形態に係るパイプ&フィルタの概念を説明するための図である。
【図3】本実施の形態に係るフィルタの構成要素を説明するための図である。
【図4】本実施の形態に係る複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図5】本実施の形態に係る複合機の動作原理を説明するための図である。
【図6】本実施の形態に係る機能拡張プラグインを追加する前の処理例を説明するためのシーケンス図である。
【図7】本実施の形態に係る機能拡張プラグインを追加した後の処理例を説明するためのシーケンス図である。
【図8】本実施の形態に係る機能拡張プラグインを追加する際に行うテスト項目例を説明するための図である。
【図9】本実施の形態に係る複合機のハードウェア構成の一例を示す図である。
【図10】本実施の形態に係る複合機に機能拡張プラグインを追加する際の処理例を示すフローチャートである。
【図11】本実施の形態に係る複合機に機能拡張プラグインを追加する際の処理例を示すフローチャートである。
【図12】本実施の形態に係る機能拡張プラグインに対するテスト内容を変更する処理例を示すフローチャートである。
【図13】画像処理装置がCPUとメモリを2組ずつ有する構成を示す図である。
【図14】画像処理装置が有する1組のCPUとメモリをテスト専用にする構成を示す図である。
【図15】画像処理装置が有するCPUを1つにした構成を示す図である。
【図16】画像処理装置が有するメモリを1つにした構成を示す図である。
【図17】画像処理装置が有するCPUの両方を通常でも使用する構成(片方が終わるまで待つ場合)を示す図である。
【図18】画像処理装置が有するCPUの両方を通常でも使用する構成(一方を止めて委譲する場合)を示す図である。
【図19】画像処理装置が有するCPUの両方を通常でも使用する構成(片方が終わるまで待つ場合)のフローチャートである。
【図20】画像処理装置が有するCPUの両方を通常でも使用する構成(一方を止めて委譲する場合)のフローチャートである。
【図21】ジョブが投入された場合、テストを中断/再開する場合のフローチャートである。
【図22】ジョブが投入された場合、テストを中断/再開する場合の構成を示す図である。
【図23】テストサーバと画像処理装置との接続例を示す図である。
【図24】テストサーバと画像処理装置との接続例を示す図である。
【図25】テスト実施部をプリントサーバと別構成にした場合の構成を示す図である。
【図26】テスト実施をプラグインのインストール後に行う場合のフローチャートを示す図である。
【図27】テストサーバに格納されている情報の一例を示す図である。
【図28】テスト実施をプラグインのインストール前に行う場合のフローチャートを示す図である。
【図29】テスト実施部をプリントサーバ内でソフトエミュレーションした場合の構成を示す図である。
【図30】プラグイン可能なインストール一覧を更新する場合のフローチャートを示す図である。
【図31】テスト項目を特定する場合のフローチャートを示す図である。
【発明を実施するための形態】
【0010】
図面を参照しながら、本発明を実施するための最良の形態について説明する。
(本発明に係る画像処理装置のソフトウェア構成)
図1は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する画像処理装置をいう。
【0011】
図1で示すように、複合機1におけるソフトウェアは、ユーザインタフェース層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40及びデバイス制御層50より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
【0012】
ユーザインタフェース層10は、機能(例えば、コピー、印刷、スキャン、FAX送信)の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部11及びローカルUI(User Interface)部12が含まれる。通信サーバ部11は、例えば、非図示のクライアントPC(Personal Computer)からネットワーク経由で要求を受け付ける。ローカルUI部12は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層10において受け付けられた要求は、コントロール層20に伝えられる。
【0013】
コントロール層20は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層30における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。
コントロール層20は、例えば、リクエスト管理部21、プラグイン管理部22を有する。リクエスト管理部21は、要求されたジョブに応じて、アプリケーションロジック層30が有する各フィルタを接続し、接続されたフィルタに基づいてジョブの実行を制御する。プラグイン管理部22は、複合機1に実装されるジョブを実行するための手段等の物理的なアドレスと、手段の動作とを管理する。なお、本実施の形態においては、プラグイン管理部22が管理する「プラグイン」とは、複合機1が有する基本機能に対して新たに追加される機能に対応するプログラム又はデバイス、及び、複合機1が有する基本機能に対応するプログラム又はデバイスを含む。すなわち、プラグイン管理部22は、複合機1が有する基本機能及び追加機能に対応するプログラム又はデバイス等の物理的なアドレス、及び、それらの動作を管理する手段である。
なお、本実施の形態において「複合機1の機能」とは、複合機1がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【0014】
アプリケーションロジック層30は、それぞれが複合機1において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層30における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機1のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくことによる。
【0015】
図2は、パイプ&フィルタの概念を示すための図である。図2においては、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
【0016】
すなわち、本実施の形態における複合機1では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで、「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお。各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的には存在しない。したがって、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
【0017】
図1において、アプリケーションロジック層30には、入力フィルタとして、読取フィルタ301、メール受信フィルタ302、FAX受信フィルタ303、PC文書受信フィルタ304が含まれている。
読取フィルタ301は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。メール受信フィルタ302は、電子メールを受信し、当該電子メールに含まれているデータを出力する。FAX受信フィルタ303は、FAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ304は、非図示のクライアントPCから印刷データを受信し、受信された印刷データを出力する。
【0018】
図1において、アプリケーションロジック層30には、加工フィルタとして、文書加工フィルタ311、文書変換フィルタ312が含まれている。
文書加工フィルタ311は、入力されたデータに所定の画像変換処理(集約、拡大、又は縮小等)を施し、出力する。文書変換フィルタ312は、レンダリング処理を実行する。すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
【0019】
図1において、アプリケーションロジック層30には、出力フィルタとして、印刷フィルタ321、メール送信フィルタ322、FAX送信フィルタ323、PC文書送信フィルタ324が含まれている。
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。メール送信フィルタ322は、入力されたデータを電子メールに添付して送信する。FAX送信フィルタ323は、入力されたデータをFAX送信する。PC文書送信フィルタ324は、入力されたデータをクライアントPCに送信する。
【0020】
また、アプリケーションロジック層30は、ビルトインテスト34を含む。ビルトインテスト34は、上記で説明したフィルタ又はアクティビティの機能を拡張するプラグイン(プログラム)を複合機1に追加する際に、該プラグインの備えるインタフェース(I/F)が適切か否かをチェックする。また、ビルトインテスト34は、後述するテスト内容抽出手段120及びプラグインテスト手段130に該当し、プラグインテストテーブル200を含むものである。
【0021】
デバイスサービス層40は、アプリケーションロジック層30における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ41及びデータ管理部42が含まれる。画像パイプ41は、上述したパイプの機能を実現する。すなわち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部42は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
【0022】
デバイス制御層50は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部51、プロッタ制御部52、メモリ制御部53、電話回線制御部54、及びネットワーク制御部55が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
【0023】
フィルタについて更に詳しく説明する。図3は、フィルタの構成要素を説明するための図である。図3に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス及び永続記憶領域情報により構成される。
フィルタ設定用UIは、フィルタの実行条件を設定させるための画面をオペレーションパネルに表示させるプログラムである。例えば、入力フィルタの一つである読取フィルタであれば、解像度、濃度、画像種別を設定する画面が相当する。なお、オペレーションパネルの表示がHTML(HyperText Markup Language)データや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用UIはHTMLデータやスクリプトであっても良い。
【0024】
フィルタロジックは、フィルタの機能を実現するためのロジックが実装されたプログラムである。例えば、読取フィルタであれば、スキャナによる原稿読み取り制御のためのロジックが相当する。
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。例えば、読取フィルタであれば、スキャナを制御するための機能が相当する。
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値)等、不揮発性メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部42に登録される。
【0025】
図4は、本実施の形態の複合機における各機能(アプリケーション)を実現するためのフィルタの組み合わせの例を示す図である。
例えば、コピー機能は、読取フィルタ301と印刷フィルタ321とを接続することにより実現される。読取フィルタ301によって、原稿から読み取られた画像データを印刷フィルタ321によって印刷すれば良いからである。なお、コピー機能に付随する、集約、拡大、縮小等の加工が要求された場合には、これらの加工を実現する文書加工フィルタ311が読取フィルタ301と印刷フィルタ321の間に挿入される。
【0026】
プリンタ機能(クライアントPCからの印刷機能)は、PC文書受信フィルタ304と文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。スキャンto email機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ301とメール送信フィルタ322とを接続することにより実現される。FAX送信機能は、読取フィルタ301とFAX送信フィルタ323とを接続することにより実現される。FAX受信機能は、FAX受信フィルタ303と印刷フィルタ321とを接続することにより実現される。
【0027】
また、アプリケーションロジック層30は、コピーアクティビティ31、プリンタアクティビティ32、マルチ文書アクティビティ33を含む。ここで、アクティビティとは、予め固定的に定義されたフィルタの組み合わせによって、一つの機能(複合機1がユーザに対して提供する一つのまとまった単位のサービス又はアプリケーション)を実現するソフトウェアである。コピーのように頻繁に利用する機能については、毎回フィルタの選択によってユーザが実行指示を行うのは煩雑であるため、予めフィルタの組み合わせを定義することで、この煩雑さを解消するために用意されるものである。
コピーアクティビティ31は、読取フィルタ301と文書加工フィルタ311と印刷フィルタ321との組み合わせにより、コピー機能(コピーアプリケーション)を実現するアクティビティである。
プリンタアクティビティ32は、PC文書受信フィルタ304と文書変換フィルタ312と印刷フィルタ321との組み合わせにより、印刷機能(プリンタアプリケーション)を実現するアクティビティである。
マルチ文書アクティビティ33は、入力フィルタ、加工フィルタ、出力フィルタのそれぞれについて、自由な組み合わせが可能なアクティビティである。
なお、各アクティビティは独立しており、各アクティビティ間における依存関係(呼び出し関係)は基本的には存在せず、したがって、アクティビティ毎に追加(インストール)、削除(アンインストール)が可能である。
【0028】
(本実施の形態に係る複合機1の動作原理)
図5を用いて、本発明の画像処理装置である複合機1の動作原理について説明する。図5は複合機1の動作原理を示した図である。
図5で示すように、複合機1は、プラグイン登録手段110、テスト内容抽出手段120、プラグインテスト手段130、プラグイン削除手段140、テスト実行選択手段150、テスト内容変更手段160、画像処理テスト手段170、画像処理手段180、記憶装置83を有する。また、複合機1とダウンロードサーバ300とは、通信ネットワークで接続されているものとし、該通信ネットワークは、有線通信ネットワークであっても無線通信ネットワークであっても良い。
【0029】
画像処理手段180は、複合機1が行う一般的な画像処理を実行し、例えば、コピー処理、プリンタ処理、FAX処理等を実行する。
【0030】
記憶装置83は、画像処理に係るアプリケーションの機能を拡張するためのプラグイン190、プラグイン190を追加する際のテスト内容を規定するプラグインテストテーブル200、複合機1の基本性能を規定する基本機能確認基準210を保持している。
画像処理に係るアプリケーションは、上記説明におけるアプリケーションロジック層30を構成する入力フィルタ(読取フィルタ301等)、加工フィルタ(文書加工フィルタ311等)、出力フィルタ(印刷フィルタ321等)、各アクティビティ31、32、33、ビルトインテスト34とする形態であっても良い。
【0031】
図6、7を用いて、上記画像処理に係るアプリケーションを機能拡張するためのプラグイン190について説明することとし、ここでは、複合機1が有するスキャナ89を用いて、3枚の原稿を読み取る処理を例にして説明を行う。この場合、追加するプラグイン190によって機能拡張されるアプリケーションは、読取フィルタ301となる。
図6で示すように、機能拡張プラグイン190を複合機1に追加する前の環境では、ローカルUI部12から受け付けられた要求「スキャン実行」は読取フィルタ301に伝達され、読取フィルタ301は当該要求に従いスキャナ89に原稿を読み取らせる。そして、スキャナ89は原稿を1枚読み取る毎に、スキャンを実行した旨の信号「スキャン実行イベント(進捗)」を読取フィルタ301に通知し、読取フィルタ301は当該信号をローカルUI部12へ通知する処理を行う。
【0032】
一方、図7で示すように、機能拡張プラグインを複合機に追加した後の環境でも、ローカルUI部12から受け付けられた要求「スキャン実行」は読取フィルタ301に伝達され、読取フィルタ301は当該要求に従いスキャナ89に原稿を読み取らせる。ただし、スキャナ89が原稿を1枚読み取る毎に読取フィルタ301に通知する信号「スキャン実行イベント(進捗)」は、一旦機能拡張プラグイン190に通知され、当該通知をトリガーとして機能拡張プラグイン190による所定の処理が行われた後、読取フィルタ301は当該信号をローカルUI部12へ通知する。
ここで、機能拡張プラグイン190による所定の処理は、スキャナ89が原稿を読み取った時刻や処理実行(ここでは、スキャン実行)を要求したユーザのIDなどの履歴情報を記録する処理(ログを残す処理)であっても良いし、機能拡張プラグイン190において予め定める特定のイベントが発生したと通知された場合に、スキャナ89による原稿の読取処理を停止、再開、キャンセルさせる処理であっても良い。つまり、読取フィルタ301における処理に関連する処理であれば良い。
【0033】
また、図8を用いて、プラグインテストテーブル200について説明する。図8は、機能拡張のためのプラグインを複合機1に追加する際に、当該プラグインに対し確認すべき項目の一例であり、機能拡張の対象となるアプリケーション(図8では、フィルタ)毎に、必要なインタフェース(以後、I/F:InterFace)、当該I/Fに関する引数の個数、及び当該I/Fに関する引数の型が定められている。例えば、図7で説明した例のように、読取フィルタ301の機能を拡張するプラグイン190を複合機1に追加する際に、追加するプラグイン190が備えるべきI/Fは「スキャンイベント受取」であり、当該I/F「スキャンイベント受取」に関する引数の個数は1つで、該I/F「スキャンイベント受取」に関する引数の型は「Object型」であることを要求される。
【0034】
ここで、プラグインテストテーブル200において、必要なI/Fは1つであっても複数であっても良く、また、各I/Fに関する引数の個数は1つであっても複数であっても良い。さらに、各I/Fに関する引数の型は、Object型であっても他の型であっても良い。
また、図8において、機能拡張される対象のアプリケーションをフィルタとしているが、該アプリケーションはアクティビティであっても良く、他のアプリケーションであっても良い。
【0035】
また、基本機能確認基準210は、複合機1において画像処理を行った場合に、当該画像処理が最低限満足すべき基準であり、例えば、スキャナ89で読み取られた画像品質やプロッタ90で印刷された画像品質等に関する機能性基準、コピーやFAX等の画像処理に要する時間や当該画像処理に関するリソース消費量(メモリリーク、GC、UIの応答時間等)に関する非機能性基準を含むものであっても良い。
【0036】
プラグイン登録手段110は、ダウンロードサーバ300から、画像処理に係るアプリケーションの機能を拡張するためのプラグイン190をダウンロード(取得)し、当該プラグイン190を記憶装置83に記録する。
また、プラグイン登録手段110は、後述するプラグインテスト手段130の判定に基づいて、画像処理手段180による処理においてプラグイン190を利用できる状態にする。ここで、プラグイン190を利用できる状態とは、プラグイン管理部22にプラグイン190が登録された状態である。一方で、プラグイン登録手段110は、テスト実行選択手段150の決定により、プラグインテスト手段130による処理が行われない場合についても、画像処理手段180による処理においてプラグイン190を利用できる状態にする。
【0037】
テスト内容抽出手段120は、プラグイン登録手段110により取得されたプラグイン190がどのアプリケーション(フィルタ、アクティビティ等)に対する機能拡張プラグインなのかを判断し、この判断結果と図8で示すようなプラグインテーブル200とを照合し、当該プラグイン190に関して確認すべき項目を抽出する。例えば、プラグイン登録手段110により取得されたプラグイン190が読取フィルタ301に対するプラグインであると判断した場合、テスト内容抽出手段190は、図8で示すプラグインテストテーブル200において読取フィルタ301を検索し、読取フィルタ301に必要なI/Fは「スキャンイベント受取」であり、「スキャンイベント受取」に必要な引数の個数は「1つ」であり、「スキャンイベント受取」に必要な引数の型は「Object型」であるという確認すべき項目を抽出する。
【0038】
プラグインテスト手段130は、テスト内容抽出手段120により抽出される確認項目に基づいて、プラグイン190の備えるI/Fの仕様を確認する。具体的には、プラグイン190の備えるI/Fに関して、テスト内容抽出手段120により抽出される必要なI/Fを備えているか否か、テスト内容抽出手段120により抽出される引数の個数と一致するか否か、テスト内抽出手段120により抽出される引数の型と一致するか否かについて、それぞれ判定を行う。例えば、プラグインテスト手段130は、プラグイン190(実行オブジェクト)に対して、テスト内容抽出手段120により抽出される必要なI/Fを指定し、リフレクション機能を使用して取得を行い、プラグイン190が必要なI/Fを有するか否かを判定する。そして、プラグインテスト手段130は、上記で取得したI/Fに対して、引数の数を取得し、テスト内容抽出手段120により抽出される引数の数と一致するか否かを判定する。さらに、プラグインテスト手段130は、上記で取得したI/Fに対して、引数の型を取得し、テスト内容抽出手段120により抽出される引数の型と一致するか否かを判定する。このようにして、適切なI/Fの未実装を防止し、プログラムをバーションアップする場面で起こりがちなI/Fの不整合等による複合機1の動作不良を防止することができる。
【0039】
また、プラグインテスト手段130は、プラグイン190の備えるI/Fに関して、応答時間を計測し、該応答時間が所定の時間内であるか否かを判定する。具体的には、プラグインテスト手段130は、プラグイン190(実行オブジェクト)に対して、テスト内容抽出手段120により抽出される必要なI/Fを指定し、リフレクション機能を使用して取得を行った後、該取得したI/Fの応答時間を計測し、この計測した応答時間が所定の時間内であるか否かを判定する。ここで、I/Fの応答時間は、該I/Fに何らかの問合せを行った時刻と、該問合せに対して何らかの応答があった時刻との時刻差である。障害として発見することが難しいタイムアウトによるスレッドの不正処理等を防止することができる。
【0040】
プラグイン削除手段140は、プラグインテスト手段130により、プラグイン190の備えるI/Fの仕様と、テスト内容抽出手段120により抽出される仕様とが一致しないと判定された場合、又は、該I/Fの応答時間が所定の時間内でないと判定された場合に、プラグイン190を記憶装置83から削除する。未知なコンポーネントが正しい拡張ルールに従っているかを、プラグイン追加時にリアルタイムで確認することで、より信頼性の高いものしか追加させない堅牢なシステムを構築することができる。
【0041】
テスト実行選択手段150は、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するか否かに関するユーザの選択を受け付け、該選択に基づいて、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するか否かを決定する。すなわち、テスト内容抽出手段120及びプラグインテスト手段130による処理を実行するとユーザが選択すればこれらの手段による処理が実行され、反対に、実行しないとユーザが選択すればこれらの手段による処理は実行されない。テスト実行の有無に関する選択をユーザに委ね、不要なテストを行わないことで、テスト実行時間の削減することができ、または、記憶装置の資源を有効活用することができる。
【0042】
テスト内容変更手段160は、ダウンロードサーバ300から、図8で示すようなプラグインテストテーブル200をダウンロード(取得)し、該プラグインテストテーブル200を記憶装置83に記録する。このとき、従来のプラグインテーブル200は、上書き、削除される形態としても良い。テスト内容変更手段160による処理は、アプリケーションロジック層30のビルトインテスト34を再インストールする処理に該当する。
こうすることで、製品が市場に出た後であっても、テスト内容を適宜変更することで、機能拡張プラグインに関するテストを適切に行うことができる。
【0043】
画像処理テスト手段170は、プラグイン190により機能拡張されたアプリケーションを含む画像処理が、基本機能確認基準210を満たすか否かを判定する。機能拡張をした後でも、複合機1の基本性能が落ちていないこと(複合機1の基本性能が確保できていること)を確認することができる。
【0044】
以下では、上記で説明した複合機1の動作原理に基づき、複合機1による処理の流れを説明する。ここでは、図7で示すように、読取フィルタ301の機能を拡張するためのプラグイン190を追加する場合の処理について説明する。
はじめに、プラグイン登録手段110が、ダウンロードサーバ300から、プラグイン190をダウンロードし、記憶装置83に記憶する。そして、テスト実行選択手段150が、プラグイン190に関するテストを実行する旨のユーザの選択を受け付けると、テスト内容抽出手段120が、プラグイン190が読取フィルタ301の機能拡張を行うものであることを検出し、プラグインテストテーブル200から読取フィルタ301に対応する確認項目を抽出する。
【0045】
そして、プラグインテスト手段130が、プラグイン190の備えるI/Fの仕様と、テスト内容抽出手段120により抽出された仕様とが一致するか否かを確認、判定し、両者の全ての仕様が一致すると判定した場合に、プラグイン登録手段110が、プラグイン190を利用できる状態にする。一方、プラグインテスト手段130が、両者の仕様に関し1項目でも一致しないと判定した場合には、プラグイン削除手段140が、プラグイン190を記憶装置83から削除する。
【0046】
また、プラグイン登録手段110が、プラグイン190を利用できる状態にした後、画像処理手段180が、プラグイン190を利用した画像処理(例えば、原稿をスキャナ89で読み取り、プロッタ90から紙出力するコピー処理)を実行し、画像処理テスト手段170が、該コピー処理と、該コピー処理に関する基本機能確認基準210とを比較して、該コピー処理が基本機能確認基準210をクリアしているか否かを判定する。そして、画像処理テスト手段170により基本機能確認基準210をクリアしていないと判定された場合に、プラグイン削除手段140が、プラグイン190を記憶装置83から削除する。
【0047】
そして、テスト内容変更手段160が、ダウンロードサーバ300から、プラグインテストテーブル200を適宜ダウンロードし、該プラグインテストテーブル200を更新する。
上記のような処理を行うことで、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。
【0048】
(本実施の形態に係る複合機のハードウェア構成)
図9を用いて、本発明の画像処理装置である複合機1のハードウェアの構成例を説明する。図9は、本発明の実施の形態における複合機1のハードウェア構成の一例を示す図である。
複合機1のハードウェアとしては、コントローラ80と、オペレーションパネル87、ファクシミリコントロールユニット(FCU:Facsimile Control Unit)88と、撮像部89と、印刷部90が存在する。
【0049】
コントローラ80は、CPU(Central Processing Unit)84、ASIC(Application Specific Integrated Circuit)86、NB(North Bridge)85、SB(South Bridge)91、MEM−P81、MEM−C82、HDD(ハードディスクドライブ)83、メモリカードスロット96、ネットワークインタフェースコントローラ(NIC:Network Interface Controller)92、USB(Universal Serial Bus)デバイス93、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)1394デバイス94、セントロニクスデバイス95により構成される。
【0050】
CPU84は、種々の情報処理用のIC(Integrated Circuit)である。ASIC86は、種々の画像処理用のICである。NB85は、コントローラのノースブリッジである。SB91は、コントローラのサウスブリッジである。MEM−P81は、複合機1のシステムメモリである。MEM−C82は、複合機1のローカルメモリである。HDD83は、複合機1のストレージである。メモリカードスロット96は、メモリカード97をセットするためのスロットである。NIC92は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス93は、USB規格の接続端子を提供するためのデバイスである。セントロニクスデバイス95は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル87は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
【0051】
なお、本発明に係る複合機1のソフトウェアは、例えば、MEM−C82に格納され、CPU84によって処理されることにより、その機能を複合機1に実行させる。
【0052】
(本発明の複合機1による処理例)
<第1の実施例>
従来、自動テストを行うことにより、複合機1本体に負荷が掛かってしまうため、複合機1の性能に影響が発生するが、第1の実施例においては、自動でテストを行いながらも複合機1の性能を低下させないようにする。
【0053】
(1)複合機1によるプラグイン追加処理について
図10を用いて、プラグインを追加する際の、複合機1による処理例について説明する。図10は、プラグインを追加する際の、複合機1による処理の一例を示すフローチャートである。
ここでは、図7で示すような読取フィルタ301に関するプラグイン190を追加する際の処理について説明することとし、図8で示すプラグインテストテーブル200に従って、プラグイン190の備えるI/Fに関するテストを行う。
【0054】
S10で複合機1がプラグイン追加時の処理を開始する。当該処理の開始は、ユーザによるプラグイン追加操作をローカルUI部12が受け付けたことで開始する形態としても良い。
S20でプラグイン登録手段110が、ダウンロードサーバ300から、読取フィルタ301の機能を拡張するプラグイン190を取得(ダウンロード)し、当該プラグイン190をHDD83に保存する。ここで、プラグイン登録手段110は、プラグイン190をMEM−P81に保存する形態としても良い。
【0055】
S30でテスト実行選択手段150が、複合機1に追加するプラグイン190に関するテストを実行するか否かに関するユーザの選択に基づいて、テスト内容抽出手段120及びプラグインテスト手段130によるテストを実施するか否かについて決定する。
追加されるプラグインの適性を確認するテストを実施するか否かの選択をユーザに委ね、不要なテストを行わないことで、テスト実行時間を削減することができ、一方では、記憶装置のリソースを有効活用することができる。
【0056】
S30でテスト実行選択手段150が、プラグイン190に関するテストを実施すると決定した場合(S30でYesの場合)、S40でテスト内容抽出手段120が、プラグイン190がどのアプリケーションに関するプラグインであるかを判別し、該判別結果に基づいて、図8で示すプラグインテストテーブル200から、プラグイン190の備えるI/Fが満たすべき仕様に関する情報を抽出する。I/Fが満たすべき仕様に関する情報は、必要なI/F、該I/Fの引数の数、該I/Fの引数の型に関する情報である。本処理例のように、複合機1に追加しようとするプラグイン190が読取フィルタ301に関するプラグインの場合、該プラグイン190のI/Fが満たすべき仕様は、「スキャンイベント受取」というI/Fを有し、該「スキャンイベント受取」の引数の数は1つであり、該「スキャンイベント受取」の引数の型は「Object型」であることである。
【0057】
S30でテスト実行選択手段150が、プラグイン190に関するテストを実施しないと決定した場合(S30でNoの場合)、S70でプラグイン登録手段110が、プラグイン190を追加する処理を完了させる、つまり、プラグイン190をプラグイン管理部22に登録し、画像処理手段180による処理において使用できるようにする。
【0058】
S50でプラグインテスト手段130が、テスト内容抽出手段120により抽出した仕様と、プラグイン190の備えるI/Fに関する仕様とを比較して、両者の仕様が一致するか否かを判定する。すなわち、プラグインテスト手段130は、プラグイン190の備えるI/Fが「スキャンイベント受取」であるか否か(プラグイン190は「スキャンイベント受取」という名称のI/Fを有するか否か)、プラグイン190の有する「スキャンイベント受取」というI/Fの引数の数は1つであるか否か、プラグイン190の有する「スキャンイベント受取」というI/Fの引数の型は「Object型」であるか否かについて、確認し、判定を行う。
また、プラグインテスト手段130は、プラグイン190の有する「スキャンイベント受取」というI/Fの応答時間が所定の時間内であるか否かについても、確認し、判定を行う。該応答時間の測定には、タイマーを使用する。
この様なチェックを行うことで、適切なI/Fの未実装を防止し、プログラムをバーションアップする場面で起こりがちなI/Fの不整合等による複合機1の動作不良を防止することができる。また、障害として発見することが難しいタイムアウトによるスレッドの不正処理等についても防止することができる。
【0059】
S60でプラグインテスト手段130が、上記項目の全てについて一致する(要件を満たす)と判定した場合(S60でYesの場合)、S70でプラグイン登録手段110が、プラグイン190を追加する処理を完了させる、つまり、プラグイン190をプラグイン管理部22に登録し、画像処理手段180による処理において使用できるようにする。
S60でプラグインテスト手段130が、上記項目のうち1項目でも一致しない(要件を満たさない)と判定した場合(S60でNoの場合)、S80でプラグイン削除手段140が、プラグイン190を記憶装置83又はMEM−P81から削除する。
【0060】
S90で複合機1がプラグイン追加時の処理を終了する。以後、プラグイン190が追加され、プラグイン管理部22に登録された場合には、画像処理手段180が、プラグイン190の追加された環境で、コピー処理、プリンタ処理、FAX処理等を行い、他方、プラグイン190が削除された場合には、画像処理手段180が、プラグイン190の追加される前の環境で、コピー処理、プリンタ処理、FAX処理等を行う。
このような処理を行うことで、未知なコンポーネントが正しい拡張ルールに従っているかを、プラグイン追加時にリアルタイムで確認することで、より信頼性の高いものしか追加させない堅牢なシステムとすることができる。
【0061】
(2)複合機1の基本動作を確認する処理について
図11を用いて、プラグイン190を追加する際の、複合機1の基本動作を確認する処理について説明する。図11は、複合機1の基本動作を確認する処理の一例を示すフローチャートである。
ここでは、図7で示すような読取フィルタ301に関するプラグイン190を追加する際の処理について説明する。
【0062】
S110で複合機1が基本動作の確認を行う処理を開始する。当該処理の開始は、ユーザによる当該処理開始操作をローカルUI部12が受け付けることで開始する形態としても良いし、ユーザの操作によらず、プラグイン190のダウンロード後又はプラグイン管理部22への登録後、自動的に処理を開始する形態としても良い。
S120で画像処理手段180が、読取フィルタ301に関するプラグイン190を追加した環境で、コピー処理、FAX処理等、機能拡張された読取フィルタ301を使用する処理を実行する。プラグイン190を追加したことに伴う、複合機1の基本性能への影響の有無を確認するためである。
【0063】
S130で画像処理テスト手段170が、画像処理手段180により実行された画像処理に対応する基本機能確認基準210を取得する。ここで、基本機能確認基準210は、複合機1において画像処理を行った場合に、当該画像処理が最低限満足すべき基準であり、例えば、スキャナ89で読み取られた画像品質やプロッタ90で印刷された画像品質等に関する機能性基準と、コピーやFAX等の画像処理に要する時間や当該画像処理に関するリソース消費量(メモリリーク、GC、UIの応答時間等)に関する非機能性基準とで構成される。
【0064】
S140で画像処理テスト手段170が、画像処理手段180により実行された画像処理の結果と、当該画像処理に対応する基本機能確認基準210とを比較して、画像処理手段180により実行された画像処理の結果が基本機能確認基準210を満たしているか否かを判定する。
S150で画像処理テスト手段170により基本機能確認基準210を満たしていると判定された場合(S150でYesの場合)、S170で複合機1が基本動作の確認を行う処理を終了する。ここで、プラグイン190がプラグイン管理部22に未登録の状態であれば、S150で画像処理テスト手段170による上記判定がされた後、プラグイン登録手段110が、追加すべきプラグイン190をプラグイン管理部22へ登録し、S170の処理へ移行する形態としても良い。
【0065】
S150で画像処理テスト手段170により基本機能確認基準210を満たしていないと判定された場合(S150でNoの場合)、S160でプラグイン削除手段140が、プラグイン190を記憶装置83又はMEM−P81から削除し、必要であれば、プラグイン管理部22からも登録を削除し、S170で複合機1が基本動作の確認を行う処理を終了する。
上記のような処理を行うことで、機能拡張をした後でも、複合機1の基本性能が落ちていないこと(確保できていること)を確認することができる。
【0066】
(3)複合機1によるプラグインテストテーブル200を更新する処理について
図12を用いて、複合機1によるプラグインテストテーブル200を更新する処理について説明する。図12は、複合機1によるプラグインテストテーブル200を更新する処理の一例を示すフローチャートである。
S210で複合機1が、プラグインテストテーブル200を更新する処理を開始する。当該処理の開始は、ユーザによる処理開始操作をローカルUI部12が受け付けることで開始する形態としても良く、一定の時間間隔で自動的に処理が開始される形態としても良い。
【0067】
S220でテスト内容変更手段160が、ダウンロードサーバ300から、プラグインテストテーブル200を取得(ダウンロード)し、S230で当該プラグインテストテーブル200を記憶装置83に記憶(登録)する。このとき、従来の(古い)プラグインテストテーブル200は削除される(新しいプラグインテストテーブル200を上書き保存する)形態としても良い。S220におけるテスト内容変更手段160による処理は、アプリケーションロジック層30のビルトインテスト34を再インストールする処理に該当する。
S240で複合機1が、プラグインテストテーブル200を更新する処理を終了する。
上記のように、製品が市場に出た後であっても、テスト内容を適宜変更することで、機能拡張プラグインに関するテストを適切に行うことができる。
【0068】
<第2の実施例>
図13、図14で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリを複数保持し、プラグインテストを実施する専用のCPU・メモリを有することを特徴とする。これにより、プラグインテストをすぐに実施することができる。
【0069】
また、図15−20で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリを複数保持し、使用されていないCPU・メモリを検索し、プラグインテストを実施することを特徴とする。こうすることにより、リソースを最大限利用できる。
【0070】
さらに、図15−20で示すように、第2の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、CPU(演算装置)・メモリのどちらか一方のみ複数保持し、プラグインテストを実施することを特徴とする。こうすることにより、コスト削減を図ることができる。
【0071】
図21で示すように、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、一組のCPU・メモリで行う予定となっている処理を別のCPU・メモリに委譲させ、プラグインテストを実施するためのCPU・メモリを確保することを特徴とする。こうすることにより、リソースを最大限利用でき、また、テストもすぐに実施することができる。
【0072】
ここで、図19−21のフローチャートの動作主体は、図13中のスケジューラである。また、図21において、ジョブが終わったことの検知方法については、例えば、作像装置90やFCU88から終了通知がCPUに通知され、使ったデバイス全てから終了通知が来た場合にジョブ終了を検知する形態としても良い。
【0073】
図22で示すように、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、新規画像処理のジョブが実行される時に、実行中のプラグインテストを中断させ、画像処理のジョブを実施し、ジョブ終了後プラグインテストを再開させることを特徴とする。こうすることにより、ジョブを優先させることができる。つまり、ユーザの要求により詳細に応えることができる。
【0074】
また、第2の実施例における画像処理装置1では、CPU(演算装置)・メモリを複数保持し、プラグイン追加時に画像処理装置1が行っている画像処理のジョブを中断させ、プラグインテストを実施し、プラグインテスト終了後ジョブを再開させることを特徴とする。こうすることにより、テストを優先させることができる。つまり、ユーザの要求により詳細に応えることができる。
【0075】
従来、自動でテストを行うことにより、本体1に負荷がかかってしまうため、画像処理装置1の性能に影響が発生していたが、上記のように第2の実施例においては、画像処理装置1の性能を低下させずに自動でテストを行うことができる。
【0076】
<第3の実施例>
図23、24で示すように、第3の実施例においては、サーバ300と画像処理装置1とを直接接続する形態としても良く、サーバ300をユーザが構築したLAN内に設置する形態としても良く、また、サーバ300を画像処理装置1の提供元のLAN内に設置する形態としても良い。こうすることにより、セキュリティの向上を図ることができたり、テスト項目を常に最新にすることができる。また、問題が発生したときの対処を素早く取ることができる。
【0077】
そして、図25、26、27で示すように、第3の実施例における画像処理装置1では、画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能となっており、前記プラグインが追加された後に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段130を有する画像処理装置1であって、サーバ300に本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、追加されたプラグイン情報、本体の使用状況、テスト項目を送る手段と、サーバ300でテストされた結果を受け取る手段と、テスト結果を判断する手段を有することを特徴とする。こうすることにより、本体1に負担を全く掛けずにテストを実施することができる。
【0078】
また、図25、27、28で示すように、第3の実施例における画像処理装置1では、ユーザがプラグイン追加を希望した際に、プラグインを本体1にサーバから取得する前に、サーバ300に本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、追加希望されたプラグイン情報、本体1の使用状況を送り、サーバ300でテストを実施し、その結果によってダウンロードを開始することを特徴とする。こうすることにより、テスト失敗時のダウンロードの時間を削減することができる。
【0079】
さらに、図29で示すように、第3の実施例における画像処理装置1では、サーバ300で実施するテストを、ソフトエミュレーション環境によって実施することを特徴とする。こうすることにより、コスト削減を図ることができる。
【0080】
図30、31で示すように、第3の実施例における画像処理装置1では、定期的にサーバに本体1の構成(プリントサーバ、ASIC、CPU、メモリ)、本体1の使用状況を送信しておき、毎日定期的にサーバ300でプラグインに対してテストを行い、ダウンロード可能なプラグインを選定しておくことを特徴とする。こうすることにより、ユーザの手間が減り、ユーザが選択した後のテスト失敗がなくなる。
【0081】
従来、自動でテストを行うことにより、本体1に負荷がかかってしまうため、画像処理装置1の性能に影響が発生していたが、上記のように第3の実施例においては、画像処理装置1の性能を低下させずに自動でテストを行うことができる。
【0082】
(総括)
本発明では、画像処理に係るアプリケーションの機能を拡張するプログラムを追加する際に、該プログラム自体に問題がないか否かの確認を行い、信頼性の高いプログラムのみを追加することにより、堅牢なシステムを有する画像処理装置を提供することができる。
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
【符号の説明】
【0083】
1 複合機(画像処理装置)
12 ローカルUI部
22 プラグイン管理部
30 アプリケーションロジック層
31 コピーアクティビティ
32 プリンタアクティビティ
81 記憶装置(MEM−P)
83 記憶装置(HDD)
301 読取フィルタ
311 文書加工フィルタ
321 印刷フィルタ
110 プラグイン登録手段
120 テスト内容抽出手段
130 プラグインテスト手段
140 プラグイン削除手段
150 テスト実行選択手段
160 テスト内容変更手段
170 画像処理テスト手段
180 画像処理手段
190 プラグイン
200 プラグインテストテーブル
210 基本機能確認基準
300 ダウンロードサーバ
【先行技術文献】
【特許文献】
【0084】
【特許文献1】特開2005−092275号公報

【特許請求の範囲】
【請求項1】
画像処理に係るアプリケーションの機能を拡張するためのプラグインを追加可能な画像処理装置であって、
前記プラグインが追加される際に、該プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致するか否かの判定を行うプラグインテスト手段を有することを特徴とする画像処理装置。
【請求項2】
前記アプリケーションは、前記画像処理に係るジョブを構成する処理毎に設けられたフィルタであることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記プラグインテスト手段は、前記プラグインの備えるインタフェースが、前記アプリケーションの要求する該インタフェースと一致するか否かの判定を行うことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記プラグインテスト手段は、前記プラグインの備えるインタフェースに関する引数の数が、前記アプリケーションの要求する該インタフェースに関する引数の数と一致するか否かの判定を行うことを特徴とする請求項1乃至3の何れか一に記載の画像処理装置。
【請求項5】
前記プラグインテスト手段は、前記プラグインの備えるインタフェースに関する引数の型が、前記アプリケーションの要求する該インタフェースに関する引数の型と一致するか否かの判定を行うことを特徴とする請求項1乃至4の何れか一に記載の画像処理装置。
【請求項6】
前記プラグインテスト手段は、前記プラグインの備えるインタフェースの応答時間が、前記アプリケーションの要求する所定の時間内であるか否かの判定を行うことを特徴とする請求項1乃至5の何れか一に記載の画像処理装置。
【請求項7】
アプリケーションの要求する前記仕様を変更するテスト内容変更手段を有することを特徴とする請求項1乃至6の何れか一に記載の画像処理装置。
【請求項8】
前記プラグインを追加する際に、該プラグインを記憶する記憶装置と、
前記プラグインテスト手段により、前記プラグインの備えるインタフェースに関する仕様が、前記アプリケーションの要求する該インタフェースに関する仕様と一致しないと判定された場合に、前記プラグインを前記記憶装置から削除するプラグイン削除手段と、を有することを特徴とする請求項1乃至7の何れか一に記載の画像処理装置。
【請求項9】
ユーザによる、前記プラグインテスト手段による処理を実行させるか否かの選択に基づいて、前記プラグインテスト手段による処理を実行するか否かを決定するテスト実行選択手段を有することを特徴とする請求項1乃至8の何れか一に記載の画像処理装置。
【請求項10】
前記プラグインにより機能が拡張される前記アプリケーションを含む前記画像処理が、当該画像処理装置により定められる所定の基準を満たすか否かの判定を行う画像処理テスト手段を有することを特徴とする請求項1乃至9の何れか一に記載の画像処理装置。
【請求項11】
前記プラグインテスト手段による処理専用のCPU(Central Processing Unit)及び記憶装置を有することを特徴とする請求項1乃至10の何れか一に記載の画像処理装置。
【請求項12】
複数のCPU及び記憶装置を有し、
前記複数のCPU及び記憶装置のうち、不使用の該CPU及び記憶装置を検索し、検索した該CPU及び記憶装置を用いて、前記プラグインテスト手段による処理を実施することを特徴とする請求項1乃至11の何れか一に記載の画像処理装置。
【請求項13】
前記画像処理に係るジョブを優先実行させるために、前記プラグインテスト手段による処理を中断させ、該画像処理に係るジョブの実行が終了した後、前記プラグインテスト手段による処理を再開することを特徴とする請求項2乃至12の何れか一に記載の画像処理装置。
【請求項14】
前記画像処理に係るジョブを実行中に前記プラグインが追加された場合、該画像処理に係るジョブを中断すると共に、前記プラグインテスト手段による処理を優先実行し、該プラグインテスト手段による処理が終了した後、該画像処理に係るジョブを再開することを特徴とする請求項2乃至12の何れか一に記載の画像処理装置。
【請求項15】
当該画像処理装置と接続されるサーバに対し、当該画像処理装置の構成、当該画像処理装置に追加された前記プラグイン情報、当該画像処理装置の使用状況及びテスト項目を通知する手段と、該サーバによるテスト結果を取得する手段とを有し、
前記プラグインテスト手段は、前記テスト結果を判定することを特徴とする請求項1乃至14の何れか一に記載の画像処理装置。
【請求項16】
前記サーバから当該画像処理装置に前記プラグインをダウンロードする場合、
前記サーバに対し、当該画像処理装置の構成、当該画像処理装置に追加される前記プラグイン情報、当該画像処理装置の使用状況及びテスト項目を通知する手段と、該サーバによるテスト結果を取得する手段とを有し、
前記プラグインテスト手段は前記テスト結果の判定を行い、該判定の結果に応じて前記プラグインのダウンロードを開始することを特徴とする請求項1乃至15の何れか一に記載の画像処理装置。
【請求項17】
前記サーバにおけるテストは、ソフトエミュレーション環境において実施されることを特徴とする請求項15又は16に記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2010−16797(P2010−16797A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2009−55699(P2009−55699)
【出願日】平成21年3月9日(2009.3.9)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】