(57)【要約】【課題】機能の追加又は変更が容易な画像処理装置であって、製造時に考慮されていない機能の追加が容易な画像処理装置を提供すること。【解決手段】パイプを介して実行されるフィルタを有するプラグインを追加可能な画像処理装置であって、前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、前記プラグインは、当該プラグインの登録を、プラグインを管理するプラグイン管理手段に対して要求するプラグイン登録要求手段を有する画像処理装置。【選択図】図３
2008065479.tif 000002
【特許請求の範囲】
【請求項１】
画像処理に係るジョブを構成する処理毎に設けられたフィルタを有するプラグインを追加可能な画像処理装置であって、
前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理成装置に追加された場合に、
前記プラグインは、当該プラグインの登録を、プラグインを管理するプラグイン管理手段に対して要求するプラグイン登録要求手段を有することを特徴とする画像処理装置。
【請求項２】
前記プラグイン登録要求手段は、
前記プラグインが有するフィルタの動作及び該動作に対応する動作オブジェクトの登録を要求することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、
前記フィルタは、当該フィルタの登録を、フィルタを管理するフィルタ管理手段に対して要求するフィルタ登録要求手段を有することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記フィルタ登録要求手段は、
前記フィルタの機能及び該機能に対応する機能オブジェクトの登録を要求することを特徴とする請求項３記載の画像処理装置。
【請求項５】
ユーザインタフェース手段を有するＵＩプラグインを有し、
前記ユーザインタフェース手段は、前記フィルタ管理手段が管理するフィルタのフィルタ管理テーブルを取得するフィルタ管理テーブル取得手段を有し、
前記フィルタ管理テーブル取得手段は、前記画像処理装置が起動された場合に、前記プラグイン管理手段が管理するプラグインが有するフィルタが全て前記フィルタ管理手段に登録された後に、前記フィルタ管理テーブルを取得することを特徴とする請求項３記載の画像処理装置。
【請求項６】
前記フィルタ管理テーブル取得手段は、前記プラグインが追加された場合、又は、前記プラグインが削除された場合に、前記フィルタ管理テーブルを取得することを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記フィルタを前記ジョブに応じて選択するリクエスト管理手段を有し、
前記リクエスト管理手段は、
前記ジョブを実行するフィルタの動作に対応する動作オブジェクトを前記プラグイン管理手段から取得することを特徴とする請求項２記載の画像処理装置。
【請求項８】
前記プラグインが前記画像処理装置に追加された場合、又は、前記プラグインが前記画像処理装置から削除された場合に、
前記プラグイン管理手段は、
前記プラグインを管理するプラグイン管理テーブルと前記プラグインが格納されているアドレスの情報とを更新することを特徴とする請求項１ないし４何れか一項に記載の画像処理装置。
【請求項９】
ユーザからの入力を受け付け、ユーザに対し表示を行う、ユーザインタフェース部と、
前記プラグイン管理手段を有し、ジョブの制御を行うコントロール部と、
前記フィルタを有する機能実現部と、
前記フィルタ間の入出力を介する前記パイプを有するデバイスサービス部と、
デバイス毎に設けられたデバイス制御手段を有するデバイス部と
を有することを特徴とする請求項１記載の画像処理装置。
【請求項１０】
ユーザからの入力を受け付け、ユーザに対し表示を行う、ユーザインタフェース部と、
前記ジョブの制御を行うコントロール部と、
前記フィルタ管理手段と前記フィルタとを有する機能実現部と、
前記フィルタを接続する前記パイプを有するデバイスサービス部と、
デバイス毎に設けられたデバイス制御手段を有するデバイス部と
を有することを特徴とする請求項３記載の画像処理装置。
【請求項１１】
パイプを介して実行されるフィルタを有するプラグインが追加可能であり、かつ、前記プラグインを管理するプラグイン管理手段と前記フィルタを管理するフィルタ管理手段とを有する画像処理装置における画像処理方法であって、
前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、
前記プラグインが、当該プラグインの登録を、前記プラグイン管理手段に対して要求するプラグイン登録要求ステップを有することを特徴とする画像処理方法。
【請求項１２】
前記プラグイン登録要求ステップは、
前記プラグインが有するフィルタの動作及び該動作に対応する動作オブジェクトの登録が要求されることを特徴とする請求項１１記載の画像処理方法。
【請求項１３】
前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、
前記フィルタが、当該フィルタの登録を、前記フィルタ管理手段に対して要求するフィルタ登録要求ステップを有することを特徴とする請求項１１記載の画像処理方法。
【請求項１４】
前記フィルタ登録要求ステップは、
前記フィルタの機能及び該機能に対応する機能オブジェクトの登録が要求されることを特徴とする請求項１３記載の画像処理方法。
【請求項１５】
前記画像処理装置が有するユーザインタフェース手段が、前記フィルタ管理手段が管理するフィルタのフィルタ管理テーブルを取得するフィルタ管理テーブル取得ステップを有し、
前記フィルタ管理テーブル取得ステップは、前記画像処理装置が起動された場合に、前記プラグイン管理手段が管理するプラグインが有するフィルタが全て前記フィルタ管理手段に登録された後に、実行されることを特徴とする請求項１３記載の画像処理方法。
【請求項１６】
前記フィルタ管理テーブル取得ステップは、前記プラグインが追加された場合、又は、前記プラグインが削除された場合に、実行されることを特徴とする請求項１５記載の画像処理方法。
【請求項１７】
前記フィルタを前記ジョブに応じて選択するリクエスト管理ステップを有し、
前記リクエスト管理ステップは、
前記ジョブを実行するフィルタの動作に対応する動作オブジェクトが前記プラグイン管理手段から取得されることを特徴とする請求項１２記載の画像処理方法。
【請求項１８】
前記プラグインが前記画像処理装置に追加された場合、又は、前記プラグインが前記画像処理装置から削除された場合に、
前記プラグイン管理手段が、前記プラグインを管理するプラグイン管理テーブルと前記プラグインが格納されているアドレスの情報とを更新するするプラグイン管理更新ステップを有することを特徴とする請求項１１ないし１４何れか一項に記載の画像処理方法。
【請求項１９】
請求項１１ないし１８何れか一項に記載の画像処理方法を、コンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び、画像処理プログラムに関する。
【背景技術】
【０００２】
従来から、画像形成装置等の複数の機能を有する画像処理装置では、機能毎にデバイスが設けられ、さらに、それらのデバイスを制御するソフトウェア等の制御手段や画像の処理を行う手段が必要である。近年、画像処理装置の機能が多様化し、画像処理装置の種類やグレードが多くなるに従い、画像処理装置が有するデバイスの組合せの数が多くなってきた。そこで、それらの組合せ毎に、制御手段や画像の処理を行う手段の開発が必要となり、開発に係る労力又は時間等のコストが高くなってきた。そこで、画像処理装置の開発を効率良く行い、画像処理装置の生産性を高めるための技術が開示されている。
【０００３】
例えば、特許第３６７９３４９号公報（特許文献１）では、画像処理装置の一例である画像形成装置において、機能を実現する手段を、機能固有の手段と機能間で共通に用いられる手段とに分けることにより、画像形成装置の開発を効率的にし、画像形成装置の生産性を高める技術が開示されている。より詳細には、画像形成装置が有する機能毎に、プリンタアプリ、コピーアプリ、スキャナアプリ等のアプリケーションを設け、さらに、複数のアプリケーションにおいて共通に使用されるサービス毎に、サービスモジュールを設けている。特許文献１の構成によれば、画像形成装置の機能を実現するデバイスが追加又は変更される際には、対応するアプリケーションを追加又は更新することにより、他のアプリケーションに影響を与えることなく、デバイスの追加又は変更が可能となっている。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に開示されている画像形成装置等の技術においては、画像形成装置が有するデバイス等の機能が追加又は変更される毎に、追加等される機能を実現するアプリケーションの変更に加えて、変更される制御手段に関わるサービスモジュールの変更が必要であり、開発に係る労力等の削減効果が少ないという課題があった。
【０００５】
上記特許文献１では、さらに、画像形成装置が有する機能の種類が製造時に定まってしまうため、画像形成装置に対して製造時に考慮されていない機能等を追加する場合には、サービスモジュールを含む変更の量が多くなってしまうという不具合もあった。
【０００６】
上記特許文献１では、さらに、アプリケーションやサービスモジュールを変更した場合には、画像形成装置を再起動しなくてはならず、装置の構成の変更が容易では無いという課題もあった。
【０００７】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、機能の追加又は変更が容易な画像処理装置であって、製造時に考慮されていない機能の追加が容易な画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の画像処理装置は次の如き構成を採用した。
【０００９】
本発明の画像処理装置は、画像処理に係るジョブを構成する処理毎に設けられたフィルタを有するプラグインを追加可能な画像処理装置であって、前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、前記プラグインは、当該プラグインの登録を、プラグインを管理するプラグイン管理手段に対して要求するプラグイン登録要求手段を有する構成とすることができる。
【００１０】
これにより、プラグインの登録の要求を、画像処理装置が起動された場合又はプラグインが画像処理装置に追加された場合に、実行する画像処理装置を提供することができる。
【００１１】
また、上記目的を達成するために、本発明の画像処理装置が有する前記プラグイン登録要求手段は、前記プラグインが有するフィルタの動作及び該動作に対応する動作オブジェクトの登録を要求するように構成することができる。
【００１２】
これにより、フィルタの動作等の登録を要求する画像処理装置を提供することができる。
【００１３】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、前記フィルタは、当該フィルタの登録を、フィルタを管理するフィルタ管理手段に対して要求するフィルタ登録要求手段を有する構成とすることができる。
【００１４】
これにより、フィルタの登録の要求を、画像処理装置が起動された場合又はプラグインが画像に追加された場合に、実行する画像処理装置を提供することができる。
【００１５】
また、上記目的を達成するために、本発明の画像処理装置が有する前記フィルタ登録要求手段は、前記フィルタの機能及び該機能に対応する機能オブジェクトの登録を要求するように構成することができる。
【００１６】
これにより、フィルタの機能等の登録を要求する画像処理装置を提供することができる。
【００１７】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、ユーザインタフェース手段を有するＵＩプラグインを有し、前記ユーザインタフェース手段は、前記フィルタ管理手段が管理するフィルタのフィルタ管理テーブルを取得するフィルタ管理テーブル取得手段を有し、前記フィルタ管理テーブル取得手段は、前記画像処理装置が起動された場合に、前記プラグイン管理手段が管理するプラグインが有するフィルタが全て前記フィルタ管理手段に登録された後に、前記フィルタ管理テーブルを取得するように構成することができる。
【００１８】
これにより、フィルタが全て登録された後に、フィルタの機能等の情報を取得するユーザインタフェース手段を有する画像処理装置を提供することができる。
【００１９】
また、上記目的を達成するために、本発明の画像処理装置が有する前記フィルタ管理テーブル取得手段は、前記プラグインが追加された場合、又は、前記プラグインが削除された場合に、前記フィルタ管理テーブルを取得するように構成することができる。
【００２０】
これにより、プラグインの追加又は削除の状態に追従するインタフェース手段を有する画像処理装置を提供することができる。
【００２１】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、前記フィルタを前記ジョブに応じて選択するリクエスト管理手段を有し、前記リクエスト管理手段は、前記ジョブを実行するフィルタの動作に対応する動作オブジェクトを前記プラグイン管理手段から取得するように構成することができる。
【００２２】
これにより、プラグイン管理手段が管理する動作オブジェクトにより、ジョブを構成するフィルタを選択するリクエスト手段を有する画像処理装置を提供することができる。
【００２３】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、前記プラグインが前記画像処理装置に追加された場合、又は、前記プラグインが前記画像処理装置から削除された場合に、前記プラグイン管理手段は、前記プラグインを管理するプラグイン管理テーブルと前記プラグインが格納されているアドレスの情報とを更新するように構成することができる。
【００２４】
これにより、プラグインの追加又は削除の場合に、プラグインに係る情報を更新する画像処理装置を提供することができる。
【００２５】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、ユーザからの入力を受け付け、ユーザに対し表示を行う、ユーザインタフェース部と、前記プラグイン管理手段を有し、ジョブの制御を行うコントロール部と、前記フィルタを有する機能実現部と、前記フィルタ間の入出力を介する前記パイプを有するデバイスサービス部と、デバイス毎に設けられたデバイス制御手段を有するデバイス部とを有する構成とすることができる。
【００２６】
これにより、ジョブの制御を行うコントロール部に、プラグイン管理手段が設けられた画像処理装置を提供することができる。
【００２７】
また、上記目的を達成するために、本発明の画像処理装置は、さらに、ユーザからの入力を受け付け、ユーザに対し表示を行う、ユーザインタフェース部と、前記ジョブの制御を行うコントロール部と、前記フィルタ管理手段と前記フィルタとを有する機能実現部と、前記フィルタを接続する前記パイプを有するデバイスサービス部と、デバイス毎に設けられたデバイス制御手段を有するデバイス部とを有する構成とすることができる。
【００２８】
これによりフィルタを有する機能実現部に、フィルタ管理手段が設けられた画像処理装置を提供することができる。
【００２９】
また、上記目的を達成するために、本発明の画像処理方法は、画像処理に係るジョブを構成する処理毎に設けられたフィルタを有するプラグインが追加可能であり、かつ、前記プラグインを管理するプラグイン管理手段と前記フィルタを管理するフィルタ管理手段とを有する画像処理装置における画像処理方法であって、前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、前記プラグインが、当該プラグインの登録を、前記プラグイン管理手段に対して要求するプラグイン登録要求ステップを有する構成とすることができる。
【００３０】
また、上記目的を達成するために、本発明の画像処理方法が有する前記プラグイン登録要求ステップは、前記プラグインが有するフィルタの動作及び該動作に対応する動作オブジェクトの登録が要求されるように構成することができる。
【００３１】
また、上記目的を達成するために、本発明の画像処理方法は、さらに、前記画像処理装置が起動された場合、又は、前記プラグインが前記画像処理装置に追加された場合に、前記フィルタが、当該フィルタの登録を、前記フィルタ管理手段に対して要求するフィルタ登録要求ステップを有する構成とすることができる。
【００３２】
また、上記目的を達成するために、本発明の画像処理方法が有する前記フィルタ登録要求ステップは、前記フィルタの機能及び該機能に対応する機能オブジェクトの登録が要求されるように構成することができる。
【００３３】
また、上記目的を達成するために、本発明の画像処理方法は、さらに、前記画像処理装置が有するユーザインタフェース手段が、前記フィルタ管理手段が管理するフィルタのフィルタ管理テーブルを取得するフィルタ管理テーブル取得ステップを有し、前記フィルタ管理テーブル取得ステップは、前記画像処理装置が起動された場合に、前記プラグイン管理手段が管理するプラグインが有するフィルタが全て前記フィルタ管理手段に登録された後に、実行されるように構成することができる。
【００３４】
また、上記目的を達成するために、本発明の画像処理方法は、さらに、前記フィルタ管理テーブル取得ステップは、前記プラグインが追加された場合、又は、前記プラグインが削除された場合に、実行されるように構成することができる。
【００３５】
また、上記目的を達成するために、本発明の画像処理方法は、さらに、前記フィルタを前記ジョブに応じて選択するリクエスト管理ステップを有し、前記リクエスト管理ステップは、前記ジョブを実行するフィルタの動作に対応する動作オブジェクトが前記プラグイン管理手段から取得されるように構成することができる。
【００３６】
また、上記目的を達成するために、本発明の画像処理方法は、さらに、前記プラグインが前記画像処理装置に追加された場合、又は、前記プラグインが前記画像処理装置から削除された場合に、前記プラグイン管理手段が、前記プラグインを管理するプラグイン管理テーブルと前記プラグインが格納されているアドレスの情報とを更新するするプラグイン管理更新ステップを有するように構成することができる。
【００３７】
また、上記目的を達成するために、本発明の画像処理プログラムは、請求項１１ないし１８何れか一項に記載の画像処理方法を、コンピュータに実行させるための画像処理プログラムとして構成することができる。
【発明の効果】
【００３８】
本発明の画像処理装置によれば、機能の追加又は変更が容易な画像処理装置であって、製造時に考慮されていない機能の追加が容易な画像処理装置を提供することが可能になる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施例を図面に基づき説明する。
【実施例１】
【００４０】
（ＭＦＰ１のジョブを実行する手段等の構成の例）
図１は、本発明の画像処理装置のジョブを実行する手段等の構成の例である。図１は、画像処理装置として複合機（以下、「ＭＦＰ」という。）１のジョブを実現するソフトウェア構成の例である。ここで、ＭＦＰとは、プリンタ、コピー、スキャナ、又は、ファクシミリ等の複数の機能を一台の筐体において実現する画像形成装置をいう。
【００４１】
図１では、ＭＦＰ１におけるソフトウェアは、ユーザインタフェース部１０、コントロール部２０、機能実現部３０、デバイスサービス部４０、及び、デバイス制御部５０を有する。なお、図１における各部の上下関係は、各部間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
【００４２】
ユーザインタフェース部１０は、ジョブ（例えば、コピー、印刷、スキャン、ファクシミリ送信）の実行要求を受け付けるための機能が実装されている部分であり、例えば、ローカルユーザインタフェース（以下、「ローカルＵＩ」という。）部１１及び通信サーバ部１２を有する。ローカルＵＩ部１１は、例えば、図示しないオペレーションパネルを介して入力される要求を受け付ける。通信サーバ部１２は、例えば、図示しないクライアントＰＣ等からネットワーク経由で要求を受け付ける。ユーザインタフェース部１０において受け付けられた要求は、コントロール部２０に伝えられる。
【００４３】
コントロール部２０は、要求されたジョブを実行するための処理を制御するための機能が実装されている部分である。コントロール部２０は、例えば、プラグイン管理手段２１０及びリクエスト管理手段２２０を有する。プラグイン管理手段２１０は、ＭＦＰ１に実装されるジョブを実行するための手段等の物理的なアドレスと、手段の動作とを管理する。
【００４４】
なお、本実施の形態においては、プラグイン管理手段２１０が管理する「プラグイン」とは、ＭＦＰ１が有する基本機能に対して新たに追加される機能に対応するプログラム又はデバイス、及び、ＭＦＰ１が有する基本機能に対応するプログラム又はデバイスを含む。すなわち、プラグイン管理手段２１０は、ＭＦＰ１が有する基本機能及び追加機能に対応するプログラム又はデバイス等の物理的なアドレス、及び、それらの動作を管理する手段である。
【００４５】
リクエスト管理手段２２０は、要求されたジョブに応じて、機能実現部３０が有する各フィルタを接続し、接続されたフィルタに基づいてジョブの実行を制御する。なお、本実施の形態において「ＭＦＰ１のジョブ」とは、ＭＦＰ１がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００４６】
機能実現部３０は、それぞれがＭＦＰ１において提供されるジョブの一部を実行する部品群が実装されている部分である。すなわち、機能実現部３０における部品を組み合わせることにより一つのジョブが表現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、ＭＦＰ１のジョブを実行する手段をソフトウェアで実装する場合に、ソフトウェアアーキテクチャが「パイプ＆フィルタ」と呼ばれるアーキテクチャに基づいているからである。
【００４７】
図２は、パイプ＆フィルタアーキテクチャの概念を説明するための図である。図２において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
【００４８】
本実施の形態におけるＭＦＰ１では、各機能をドキュメント（データ）に対する「変換」の連続として捉える。ＭＦＰのジョブは、ドキュメントの入力、加工、及び、出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び、「出力」を、「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。なお、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。従って、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００４９】
図１において、機能実現部３０は、複数のフィルタとフィルタを管理するフィルタ管理手段３３０とを有する。フィルタ管理手段３３０は、後述するフィルタ毎に、フィルタが有する機能とその機能を実現するオブジェクトとを対応づけて管理する手段である。
【００５０】
機能実現部３０は、さらに、入力を実現するフィルタとして、読取フィルタ３０１、保管文書読出フィルタ３０２、メール受信フィルタ３０３、ファクシミリ受信フィルタ３０４、ＰＣ文書受信フィルタ３０５、レポートフィルタ３０６を有する。
【００５１】
読取フィルタ３０１は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ３０２は、ＭＦＰ１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ３０３は、電子メールを受信し、当該電子メールに含まれているデータを出力する。ファクシミリ受信フィルタ３０４は、ファクシミリ受信を制御し、受信された印刷データを出力する。レポートフィルタ３０６は、ＭＦＰ１の設定情報や履歴情報等を、例えば、表形式に成形されたデータとして出力する。
【００５２】
機能実現部３０は、また、画像データの加工を実現するフィルタとして、文書加工フィルタ３１１及び文書変換フィルタ３１２を有する。文書加工フィルタ３１１は、入力されたデータに所定の画像変換処理（集約、拡大、又は、縮小等）を施し、出力する。文書変換フィルタ３１２は、画像データのデータ形式を変換する。文書変換フィルタ３１２は、例えば、レンダリング処理、すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００５３】
機能実現部３０は、また、出力を実現するフィルタとして、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、ファクシミリ送信フィルタ３２４、ＰＣ文書送信フィルタ３２５、及び、プレビューフィルタ３２６を有する。
【００５４】
印刷フィルタ３２１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ３２２は、入力されたデータをＭＦＰ１内の記憶装置、例えば、ハードディスク装置に保存する。メール送信フィルタ３２３は、入力されたデータを電子メールに添付して送信する。ファクシミリ送信フィルタ３２４は、入力されたデータをファクシミリ送信する。ＰＣ文書送信フィルタ３２５は、入力されたデータをファクシミリ送信する。プレビューフィルタ３２６は、入力されたデータを、ローカルＵＩ部１１を介して図示しないオペレーションパネルにプレビュー表示させる。
【００５５】
デバイスサービス部４０は、機能実現部３０における各フィルタから、共通に利用される下位機能が実装されている部分であり、データ管理手段４１を有する。データ管理手段４１は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
【００５６】
デバイス部５０は、ＭＦＰ１が有するデバイス毎に設けられたデバイスを制御する手段を有する。
【００５７】
（ＭＦＰ１が有するプラグイン及びフィルタの登録に係る機能構成図）
図３は、ＭＦＰ１が有するプラグインの登録、及び、プラグインが有するフィルタの登録に係る、機能構成の例の図であって、図１のＭＦＰ１のうち、ユーザインタフェース部１０、コントロール部２０、及び、機能実現部３０に対応する、ユーザインタフェース部１０ａ、コントロール部２０ａ、及び、機能実現部３０ａの機能構成の例である。
【００５８】
図３の機能実現部３０ａは、フィルタ管理プラグイン３３９及びフィルタのプラグイン３４０を有する。フィルタのプラグイン３４９は、例えば、フィルタをＭＦＰ１に追加する際のソフトウェアの単位である。フィルタのプラグイン３４９は、フィルタ３４０及びプラグイン登録要求手段３４４を有する。フィルタのプラグイン３４９は、さらに、複数のフィルタを有してもよく、また、フィルタ３４０に対応するユーザインタフェースを有してもよい。
【００５９】
フィルタ３４０は、動作オブジェクト取得手段３４１、及び、フィルタ登録要求手段３４２を有する。フィルタ３４０は、さらに、ユーザインタフェース管理手段（以下、「ＵＩ管理手段」という。）３４３を有してもよい。フィルタ３４０は、また、フィルタ３４０の機能を実行する図示しない主処理部を有する。
【００６０】
動作オブジェクト取得手段３４１は、プラグイン管理手段２１０が管理する他のフィルタの動作オブジェクトを取得する手段である。他のフィルタの動作オブジェクトを取得するとは、例えば、他のフィルタを動作させるための実行プログラムを取得する、又は、他のフィルタを動作させるための指示を設定し他のフィルタに対して出力するプログラムを取得することである。これにより、一のフィルタが、プラグイン管理手段２１０を介して他のフィルタ又はその他の手段に対して動作の要求を行うことができる。
【００６１】
フィルタ登録要求手段３４２は、フィルタのプラグイン３４９がＭＦＰ１に追加された場合、又は、ＭＦＰ１が起動された場合に、フィルタ管理手段３３０に対して、フィルタ３４０の登録要求を行う手段である。フィルタ登録要求手段３４２は、フィルタ３４０の機能及びその機能に対応する機能オブジェクトの登録要求を行う。フィルタ登録要求手段３４２は、フィルタ登録オブジェクト３３２を取得することにより、フィルタ３４０の登録要求を行う。フィルタ登録オブジェクト３３２の取得は、動作オブジェクト取得手段３４１によって行われる。
【００６２】
ＵＩ管理手段３４３は、フィルタ３４０に対応するユーザインタフェースを管理する手段である。図３では、フィルタ３４０に対応するユーザインタフェースは、フィルタのプラグイン３４９とは異なるプラグインに含まれているが、本発明の画像処理装置においては、これに限らず、フィルタ３４０が有していてもよい。
【００６３】
プラグイン登録要求手段３４４は、フィルタのプラグイン３４９がＭＦＰ１に追加された場合、又は、ＭＦＰ１が起動された場合に、プラグイン管理手段２１０に対してフィルタ３４０の登録要求を行う手段である。プラグイン登録要求手段３４４は、フィルタ３４０の動作及び動作オブジェクトの登録要求を行う。動作オブジェクトにより、他のフィルタ等がフィルタ３４０に対して、処理の実行の指示や処理の設定等を行うことができる。フィルタ３４０が、例えば、オブジェクト指向プログラミングによって実装されている場合には、動作オブジェクトは、公開サービスとして構成されてもよい。
【００６４】
プラグイン登録要求手段３４４は、また、フィルタ３４０が有するように構成されてもよい。これにより、複数のフィルタを含むプラグインにおいても、フィルタ毎にフィルタの動作及びその動作に対応する動作オブジェクトの登録要求を行う構成を実現することができる。
【００６５】
フィルタ管理プラグイン３３９は、フィルタ管理手段３３０を有するプラグインである。フィルタ管理プラグイン３３２は、フィルタ登録オブジェクト３３２を有してもよい。フィルタ管理手段３３０は、機能実現部３０ａが有するフィルタの機能等を管理する手段であって、フィルタ管理テーブル保持手段３３１を有する。フィルタ管理テーブル保持手段３３１は、フィルタ３４０等のフィルタの機能及びその機能に対応する機能オブジェクトが登録されたフィルタ管理テーブルを保持する手段である。フィルタ管理テーブルを参照することにより、ＭＦＰ１が有する機能及びその機能を実現する機能オブジェクトを知ることができる。
【００６６】
フィルタ登録オブジェクト３３２は、フィルタ３４０等のフィルタをフィルタ管理手段３３０に登録する際に用いられる動作オブジェクトである。フィルタが、プラグイン管理手段２１０を介してフィルタ登録手段３３２を取得することにより、そのフィルタをフィルタ管理手段３３０に登録することができる。
【００６７】
図３のコントロール部２０ａは、プラグイン管理手段２１０及びリクエスト管理手段２２０を有する。プラグイン管理手段２１０は、プラグインアドレス保持手段２１１及びプラグイン管理テーブル保持手段２１２を有する。プラグインアドレス保持手段２１１は、ＭＦＰ１に対して既に追加されているプラグインが格納されているアドレスを保持して管理する手段である。プラグインアドレス保持手段２１１は、プラグインの名称とプラグインが格納されているアドレスとを対応づけて保持する。
【００６８】
プラグイン管理テーブル２１２は、機能実現部３０ａが有するフィルタの動作及びその動作に対応する動作オブジェクトを登録して管理する手段である。フィルタの動作とは、例えば、フィルタの機能を実現する処理の実行、又は、その処理のための設定等である。また、動作オブジェクトとは、例えば、その処理の実行の指示を受け付け、機能を実現する機能オブジェクトに対して出力するプログラムであってもよい。動作オブジェクトは、また、機能を実現する際の設定条件を定めるためのプログラムであってもよい。
【００６９】
リクエスト管理手段２２０は、ユーザインタフェース部１０ａ等から入力されるジョブの実行の要求等を実現するフィルタを、プラグイン管理手段２１０に登録されているフィルタから選択し、それらを接続する処理を行う手段である。リクエスト管理手段２２０は、さらに、その処理の制御をおこなってもよい。
【００７０】
ユーザインタフェース部１０ａは、ユーザインタフェースプラグイン（以下、「ＵＩプラグイン」という。）１１９を有する。ユーザインタフェース部１０ａは、さらに、フィルタのユーザインタフェース（以下、「ＵＩ」という。）のプラグイン１３９を有してもよい。ＵＩプラグイン１１９は、ユーザインタフェースを実現する手段である。本実施の形態では、ＵＩプラグイン１１９が実現するユーザインタフェースは、ＭＦＰ１に設けられたオペレーションパネル等のローカルユーザインタフェースであるが、本発明の画像処理装置が有するＵＩプラグインは、ＭＦＰ１に接続されたクライアントＰＣ等に対して表示を行い又は入力を受け付ける通信サーバを実現するプラグインであってもよい。
【００７１】
ＵＩプラグイン１１９は、ユーザインタフェース１１１及びフィルタ管理テーブル取得手段１１２を有する。ユーザインタフェース１１１は、オペレーションパネル等の表示手段への表示の制御、又は、入力手段から入力される指示を受け付ける機能を実現する手段である。フィルタ管理テーブル取得手段１１２は、フィルタ管理テーブル保持手段３３１が保持するフィルタ管理テーブルを取得する手段である。フィルタ管理テーブル取得手段１１２は、機能実現部３０ａが有する全てのフィルタが、フィルタ管理テーブルに登録された後に、フィルタ管理テーブル保持手段１１２からテーブルを取得する。フィルタ管理テーブル取得手段１１２は、また、フィルタが機能実現部３０ａに追加された場合に、そのフィルタがフィルタ管理テーブルに登録された後に、フィルタ管理テーブルを取得する。
【００７２】
フィルタのＵＩのプラグイン１３９は、フィルタのＵＩ１３１を有する。フィルタのＵＩ１３１は、機能実現部３０ａが有するフィルタのうちの一つに対応するユーザインタフェースの機能を実現する手段である。フィルタのＵＩ１３１は、例えば、オペレーションパネルに表示する表示画面のデータと、オペレーションパネルから入力される指示等を受け付ける制御手段とを有する。
【００７３】
図４及び図５は、フィルタとフィルタのＵＩとの論理的な対応を説明する図である。
【００７４】
図４は、フィルタが当該フィルタに対応するユーザインタフェースの機能を有する場合の例である。図４では、プラグイン管理手段２１０が、ローカルＵＩ部１１、リクエスト管理手段２２０、データ管理手段４１、フィルタ管理手段３３０、及び、メモリ４２を、それぞれ一つのプラグインとして登録して管理する。一方、フィルタ管理手段３３０は、フィルタ３５０ａから３５０ｃを登録して管理する。フィルタ３５０ａから３５０ｃは、それぞれ、フィルタのＵＩ１５１ａから１５１ｃを有しており、各フィルタのＵＩは、対応するフィルタによって管理される。
【００７５】
図５は、フィルタと当該フィルタに対応するユーザインタフェースとが別のプラグインに含まれている場合の例である。図５では、図４と同様に、プラグイン管理手段が、ローカルＵＩ部１１、リクエスト管理手段２２０、データ管理手段４１、フィルタ管理手段３３０、及び、メモリ４２を管理し、さらに、フィルタのＵＩ１６１ａから１６１ｃを管理している。一方、フィルタ管理手段は、フィルタ３６０ａから３６０ｃを登録して管理する。フィルタ３６０ａから３６０ｃは、それぞれ、フィルタのＵＩ１６１ａから１６１ｃに対応している。
【００７６】
図６は、フィルタとフィルタのＵＩとの物理的な構成を説明する図である。図６（ａ）は、図４の場合の物理的な構成を説明する図であって、プラグイン管理手段２１０は、フィルタ３５０ａから３５０ｃを管理する。一方、図６（ｂ）は、図５の場合の物理的な構成を説明する図であって、プラグイン管理手段２１０は、フィルタ３６０ａから３６０ｃを管理し、さらに、フィルタのＵＩ１６１ａから１６１ｃを管理する。
【００７７】
（ＭＦＰ１が起動された場合の処理（その１））
図７から図１５は、ＭＦＰ１が起動された場合の処理を説明する図であって、フィルタとフィルタのＵＩとが、一のプラグインに含まれている場合の図である。
【００７８】
図７は、プラグイン管理手段２１０にプラグインが有するフィルタが登録される処理の例のシーケンス図である。図７のステップＳ１０１では、ＭＦＰ１の電源が投入されて起動の指示がプラグイン管理手段２１０に対して入力される。ステップＳ１０１に続いてステップＳ１０２に進み、プラグイン管理手段２１０が、プラグインアドレス保持手段２１１にアドレスが保持されているプラグインの一覧を取得する。
【００７９】
図８は、プラグインアドレス保持手段２１１が保持するプラグイン及びプラグインのアドレスの一覧である。図８では、ＭＦＰ１に追加（インストール）済みのプラグインの名称と各プラグインが格納されている場所とが対応づけられている。なお、図８の例では、プラグインの格納場所として、記憶装置上のファイルシステムにおける、ＪＡＶＡ(登録商標）（の実行形式を有するファイルのパス名が示されているが、本発明の画像処理装置は、図８の例に限らない。例えば、プラグインは、ＪＡＶＡ(登録商標）の他のプログラム言語によって記述され実行形式に変換されたプログラムであってもよい。また、例えば、プラグインがプログラムとして構成されている場合には、格納場所は、記憶装置上のセクタ等のアドレスであってもよい。
【００８０】
図７のステップＳ１０２に続くステップＳ１０３では、プラグイン管理手段２１０からフィルタ管理手段３３０を生成する指示が出力され、フィルタ管理手段３３０が生成される。なお、「手段の生成」とは、手段がプログラムとして構成されている場合には、プログラムをメモリ上に展開（ロード）することであり、手段が装置等のハードウェアとして構成されている場合には、装置の電源をＯＮにすることである。
【００８１】
ステップＳ１０３に続いてステップＳ１０４に進み、フィルタ管理手段３３０からプラグイン管理手段２１０に対し、プラグインの登録要求が出力される。手段を有するプラグインの登録要求とは、手段が有する動作及び動作に対応する動作オブジェクトの登録要求である。ステップＳ１０４に続いてステップＳ１０５に進み、プラグイン管理手段２１０が、フィルタ管理手段３３０の動作等を、プラグイン管理テーブルに登録する。
【００８２】
ステップＳ１０５に続いてステップＳ１０６に進み、プラグイン管理手段２１０からフィルタ３５０ａを生成する指示が出力され、フィルタ３５０ａが生成される。なお、「フィルタの生成」とは、フィルタを有するプラグインがプログラムとして構成されている場合には、プログラムをメモリ上に展開（ロード）することであり、フィルタを有するプラグインが装置等のハードウェアとして構成されている場合には、装置の電源をＯＮすることである。
【００８３】
ステップＳ１０６に続いてステップＳ１０７に進み、フィルタ３５０ａを含むプラグインが有するプラグイン登録要求手段からプラグイン管理手段２１０に対し、プラグインの登録要求が出力される。フィルタを有するプラグインの登録要求とは、フィルタが有する動作及び動作に対応する動作オブジェクトの登録要求である。ステップＳ１０７に続いてステップＳ１０８に進み、プラグイン管理手段２１０が、フィルタ３５０ａの動作及び動作に対応する動作オブジェクトを、プラグイン管理テーブルに登録する。
【００８４】
ステップＳ１０８に続いてステップＳ１０９に進み、プラグイン管理手段２１０からフィルタ３５０ｂを生成する指示が出力され、フィルタ３５０ｂが生成される。ステップＳ１０９に続いてステップＳ１１０に進み、フィルタ３５０ｂを含むプラグインが有するプラグイン登録要求手段からからプラグイン管理手段２１０に対し、プラグインの登録要求が出力される。ステップＳ１１０に続いてステップＳ１１１に進み、プラグイン管理手段２１０が、フィルタ３５０ｂの動作及び動作に対応する動作オブジェクトを、プラグイン管理テーブルに登録する。
【００８５】
ステップＳ１１１に続いてステップＳ１１２に進み、プラグイン管理手段２１０からフィルタ管理手段３３０に対し、手段の初期化の指示が出力され、フィルタ管理手段３３０が初期化を実行する。なお、「手段の初期化」とは、手段がプログラムとして構成される場合には、例えば、プログラムが実行する際の変数を初期化することであり、さらに、一のプログラム内での初期値の設定である。
【００８６】
ステップＳ１１２に続いてステップＳ１１３に進み、プラグイン管理手段２１０からフィルタ３５０ａに対し、フィルタ３５０ａの初期化の指示が出力され、フィルタ３５０ａが初期化を実行する。なお、「フィルタの初期化」とは、フィルタがプログラムとして構成される場合には、例えば、プログラムが実行する際の変数を初期化することであり、さらに、一のプログラム内での初期値の設定である。
【００８７】
ステップＳ１１３に続いてステップＳ１１４に進み、フィルタ３５０ａがフィルタ名の設定を行う。フィルタ名の設定とは、例えば「印刷」「読取」等の機能の名称である。ステップＳ１１４に続いて、ステップＳ１１５に進み、フィルタ３５０ａからフィルタのＵＩ１５１ａに対し、フィルタのＵＩの生成の指示が出力され、フィルタのＵＩ１５１ａが生成される。フィルタのＵＩ１５１ａが生成された後、図示しないステップにおいて、フィルタ３５０ａからフィルタのＵＩ１５１ａに対して初期化の指示が出力され、フィルタのＵＩ１５１ａが初期化を実行してもよい。
【００８８】
ステップＳ１１５に続くステップＳ１１６からステップＳ１１８の処理は、フィルタ３５０ｂに係る処理であって、フィルタ３５０ａに係る処理であるステップＳ１１３からステップＳ１１５の処理と同一の処理であるので、ここでは説明を省略する。
【００８９】
なお、上記のステップＳ１０１からステップＳ１１８において、フィルタ管理手段３３０、フィルタ３５０ａ及びフィルタ３５０ｂは、それぞれ、生成されるステップ、プラグインの登録要求を行うステップ、プラグイン管理手段２１０によって登録されるステップの順に処理が行われるが、フィルタ管理手段３３０、フィルタ３５０ａ、フィルタ３５０ｂの間の処理の順は問わず、非同期に実行されてもよい。
【００９０】
以上のステップＳ１０１からステップＳ１１８の処理によって、プラグイン管理手段２１０が有するプラグイン管理テーブルが生成される。
【００９１】
（プラグイン管理手段に対する登録要求の際に出力される情報）
図９は、プラグイン管理手段に対して行われる登録要求の際に出力される情報である。図９（ａ）及び（ｂ）は、図７のステップＳ１０４において、フィルタ管理手段３３０が行う登録要求の際に、フィルタ管理手段３３０からプラグイン管理手段２１０に対して出力されるテーブルの例である。図９（ａ）の例では、フィルタ管理手段３３０が有する動作として、「フィルタの登録」「フィルタの検索」「フィルタの削除」「フィルタの更新」及び「フィルタの一覧取得」と、それらの動作に対応する動作オブジェクトが、プラグイン管理手段２１０に対して出力される。
【００９２】
図９（ｂ）の例では、フィルタ管理手段３３０の動作を受け付ける窓口として「フィルタ管理サービス」の動作と、その動作に対応する動作オブジェクトとを、登録要求の際に出力する。図９（ｂ）の動作がプラグイン管理手段２１０によって登録された場合には、フィルタ管理手段に対する指示を行う手段等は、「フィルタ管理サービス」に対して、「登録」「検索」「削除」「更新」又は「一覧取得」の指示を入力することにより、フィルタ管理手段が動作を行う。
【００９３】
図９（ｃ）及び（ｄ）は、図７のステップＳ１０７において、フィルタ３５０ａが行う登録要求の際に、フィルタ３５０ａを含むプラグインが有するプラグイン登録要求手段からプラグイン管理手段２１０に対して出力されるテーブルの例である。図９（ｃ）の例では、フィルタ３５０ａの動作として、「フィルタ３５０ａのＵＩ取得」「フィルタ３５０ａの設定」及び「フィルタ３５０ａの実行」と、それらの動作に対応する動作オブジェクトが、プラグイン管理手段２１０に対して出力される。
【００９４】
図９（ｄ）の例では、フィルタ３５０ａの動作を受け付ける窓口として「フィルタ３５０ａサービス」の動作と、その動作に対応する動作オブジェクトとを、登録要求の際に出力する。図９（ｄ）の動作がプラグイン管理手段２１０によって登録された場合には、フィルタ３５０ａに対する指示を行う手段又はフィルタ等は、「フィルタ３５０ａサービス」に対して、「ＵＩ取得」「設定」又は「実行」等の指示を入力することにより、フィルタ３５０ａが動作を行う。
【００９５】
なお、登録要求は、動作オブジェクトの代わりに動作オブジェクトのアドレス若しくは名称、又は、動作オブジェクトに対する制御命令の仕様を出力してもよい。
【００９６】
（プラグイン管理テーブルの例）
図１０は、プラグイン管理手段２１０が有するプラグイン管理テーブル保持手段２１２が保持するプラグイン管理テーブルの例である。図１０（ａ）は、フィルタ及び手段の動作が列挙されるプラグイン管理テーブルの例であって、図９（ａ）又は（ｃ）のテーブルが登録される場合の例である。図１０（ｂ）は、フィルタ及び手段毎に、それぞれが有する動作への窓口として、一つのサービスを動作として登録する場合の例であって、図９（ｂ）又は（ｄ）のテーブルが登録される場合の例である。
【００９７】
（フィルタ管理手段３３０にフィルタが登録される処理の例のシーケンス）
図１１は、フィルタ管理手段３３０にフィルタが登録される処理の例のシーケンス図である。図１１の処理は、通常は、図７のステップＳ１０１からＳ１１８の処理に続いて実行されるが、少なくとも、フィルタ管理手段３３０がプラグイン管理テーブルに登録された後に実行されなければならない。ステップＳ２０１では、プラグイン管理手段２１０からフィルタ管理手段３３０に対し、起動の指示が出力され、フィルタ管理手段３３０が起動する。なお、「手段の起動」とは、手段がプログラムとして構成される場合には、その手段に対しＭＦＰ１が有する他の手段又はフィルタの動作等の情報を与えることにより、その手段がＭＦＰ１内の他の手段等に係る変数の設定を行うことをいう。
【００９８】
ステップＳ２０１に続いてステップＳ２０２に進み、プラグイン管理手段２１０からフィルタ３５０ａに対し、起動の指示が出力され、フィルタ３５０ａが起動する。なお、「フィルタの起動」とは、フィルタがプログラムとして構成される場合には、そのフィルタに対しＭＦＰ１が有する他の手段又はフィルタの動作等の情報を与えることにより、そのフィルタがＭＦＰ１内の他の手段等に係る変数の設定を行うことをいう。
【００９９】
ステップＳ２０２に続いてステップＳ２０３に進み、フィルタ３５０ａからプラグイン管理手段２１０に対し、フィルタ登録オブジェクトの取得要求が出力される。ステップＳ２０３に続いてステップＳ２０４に進み、プラグイン管理手段２１０が有するプラグイン管理テーブル保持手段２１２が有するプラグイン管理テーブルから、フィルタ登録オブジェクトが検索される。ステップＳ２０４に続いてステップＳ２０５に進み、プラグイン管理手段２１０からフィルタ３５０ａに対し、フィルタ登録オブジェクトが送信される。
【０１００】
ステップＳ２０５に続いてステップＳ２０６に進み、フィルタ３５０ａが有するフィルタ登録要求手段がフィルタ管理手段３３０に対し、フィルタ登録オブジェクトに基づくフィルタ３５０ａの登録要求を出力する。フィルタの登録要求とは、フィルタの機能及び機能に対応する機能オブジェクトの登録要求である。
【０１０１】
ステップＳ２０６に続いてステップＳ２０７に進み、フィルタ管理手段３３０が有するフィルタ管理テーブル保持手段３３１が、フィルタ３５０ａをフィルタ管理テーブルに登録して管理を開始する。フィルタの登録とは、フィルタの機能及び機能に対応する機能オブジェクトの登録である。
【０１０２】
以上のステップＳ２０２からステップＳ２０７によって、フィルタ３５０ａが起動し、フィルタ管理テーブルに登録される。
【０１０３】
ステップＳ２０７に続くステップＳ２０８からステップＳ２１３は、フィルタ３５０ｂが起動し、フィルタ管理テーブルに登録される処理であって、ステップＳ２０２からステップＳ２０７のフィルタ３５０ａに係る処理と同一であるので、ここでは説明を省略する。
【０１０４】
なお、上記のステップＳ２０２からステップＳ２１３において、フィルタ３０５ａ及びフィルタ３０５ｂは、それぞれ、起動ステップ、フィルタ登録オブジェクトの取得要求ステップ、プラグイン管理手段２１０によってフィルタ登録オブジェクトが検索されるステップ、フィルタ登録オブジェクトを取得するステップ、フィルタの登録要求ステップ、フィルタ管理手段３３０によってフィルタが登録されるステップの順に処理が行われるが、フィルタ３０５ａとフィルタ３０５ｂとの間の処理の順は問わず、非同期に実行されてもよい。
【０１０５】
（フィルタ管理テーブルの例）
図１２は、フィルタ管理テーブルの例である。図１２では、フィルタが有する機能の名称として「読取」及び「印刷」が登録されており、それぞれに対応するオブジェクトとして「読取オブジェクト」及び「印刷オブジェクト」が登録されている。
【０１０６】
（プラグイン管理手段２１０にローカルＵＩ及びリクエスト管理手段が登録される処理の例のシーケンス）
図１３は、ローカルＵＩ部１１及びリクエスト管理手段２２０の動作が、プラグイン管理手段２１０に登録される処理の例のシーケンス図である。図１３では、ステップＳ１０１のＭＦＰ１の電源の投入、ステップＳ１０２のプラグイン管理手段２１０によるプラグインの一覧の取得に続き、ステップＳ３０３からステップＳ３１０において、ローカルＵＩ部１１及びリクエスト管理手段２２０に係る、生成ステップ、プラグインの登録要求ステップ、プラグイン管理手段による登録ステップ、初期化ステップが行われる。ローカルＵＩ部１１及びリクエスト管理手段２２０のそれぞれにおける処理は、図７のステップＳ１０３からＳ１０５及びＳ１１２におけるフィルタ管理手段３３０に係る処理と同一であるので、ここでは説明を省略する。
【０１０７】
なお、ステップＳ３０３からステップＳ３１０では、ローカルＵＩ部１１及びリクエスト管理手段２２０にそれぞれ係るステップは、図１３に記された順で実行されるが、ローカルＵＩ部１１とリクエスト管理手段２２０の間の処理の順、及び、図７のステップＳ１０３からＳ１１８の処理の順は問わず、非同期であってもよい。
【０１０８】
（ローカルＵＩ部１１がフィルタ管理テーブルを取得する処理の例）
図１４は、ローカルＵＩ部１１及びリクエスト管理手段２２０の起動並びにローカルＵＩ部１１がフィルタ管理テーブルを取得する処理の例のシーケンス図である。図１４のステップＳ４０１からステップＳ４０９の処理は、ＭＦＰ１が有する全てのプラグインが初期化された後に行われる。
【０１０９】
ステップＳ４０１では、プラグイン管理手段２１０からリクエスト管理手段２２０に対し、起動の指示が出力され、リクエスト管理手段２２０が起動する。プラグイン管理手段２１０からの起動の指示は、プラグイン管理テーブル保持手段２１２が保持するプラグイン管理テーブルを伴っている。これにより、リクエスト管理手段２２０は、ＭＦＰ１が有するプラグインの動作及び動作に係るオブジェクトの情報を、全て取得することができる。
【０１１０】
ステップＳ４０１に続いて行われるステップＳ４０２からステップＳ４０９の処理では、ローカルＵＩ部１１が起動され、フィルタ管理テーブルを取得する。ステップＳ４０２からステップＳ４０９の処理は、ユーザインタフェース部１０が有するローカルＵＩ部１１等のユーザインタフェース手段を有するプラグインを除く他のプラグイン及び手段の起動が終了し、フィルタ管理手段３３０が有するフィルタ管理テーブル保持手段３３１が、それらの手段及びフィルタの機能及びその機能に係るオブジェクトを取得した後に、実行されなければならない。これにより、ローカルＵＩ部１１等が有するユーザインタフェース手段が、ＭＦＰ１が有する機能に係る情報を全て取得し、表示を行うことができる。
【０１１１】
ステップＳ４０２では、プラグイン管理手段２１０からローカルＵＩ部１１に対し、起動の指示が出力され、ローカルＵＩ部１１が起動する。ステップＳ４０２に続いてステップＳ４０３に進み、ローカルＵＩ部１１からプラグイン管理手段２１０に対し、フィルタ管理テーブル取得オブジェクトの取得要求が出力される。ステップＳ４０３に続いてステップＳ４０４に進み、プラグイン管理手段２１０が、プラグイン管理テーブル保持手段２１２に登録されているフィルタ管理テーブル取得オブジェクトを検索する。
【０１１２】
ステップＳ４０４に続いてステップＳ４０５では、プラグイン管理手段２１０からローカルＵＩ部１１に対し、フィルタ管理テーブル取得オブジェクトが送信される。ステップＳ４０５に続いてステップＳ４０６に進み、ローカルＵＩ部１１が有するフィルタ管理テーブル取得手段１１２がフィルタ管理手段３３０に対し、フィルタ管理テーブルの取得要求を出力する。
【０１１３】
ステップＳ４０６に続いてステップＳ４０７では、フィルタ管理手段３３０が、フィルタ管理テーブル保持手段３３１が有するフィルタ管理テーブルを取得する。ステップＳ４０７に続いてステップＳ４０８に進み、フィルタ管理手段３３０からローカルＵＩ部１１に対し、フィルタ管理テーブルが送信される。
【０１１４】
ステップＳ４０８に続いてステップＳ４０９に進み、ローカルＵＩ部１１がステップＳ４０８で取得したフィルタ管理テーブルに基づき、オペレーションパネル等の表示装置に対して、ＭＦＰ１の操作画面を出力し、表示を行う。
【０１１５】
なお、図１３及び図１４では、ユーザインタフェースとしてローカルＵＩ部１１の処理を例に説明しているが、クライアントＰＣへの表示を生成する場合の処理も、図１３及び図１４から容易に理解できる。
【０１１６】
（ＭＦＰ１の操作画面の例）
図１５は、ＭＦＰ１の操作画面の例であって、オペレーションパネルに表示される画面の例である。図１５の操作画面は、「要求パネル」「入力選択パネル」及び「出力選択パネル」の３つの領域を含んでいる。要求パネルは、ＭＦＰ１が実行する処理を表示する画面である。図１５の例では、画像を読み取る処理、読み取られた画像を印刷して出力する処理、さらに、読み取られた画像をメール送信する処理の３つの処理の実行が関連づけられて表示されている。要求パネルには、さらに、「インストール」「アンインストール」「設定」等のボタンが表示されている。
【０１１７】
入力選択パネルは、ＭＦＰ１に画像を入力する機能を選択する領域であり、「読取」及び「保管文書読出」の２つのボタンが表示されている。「読取」は、スキャナによる画像データの取得に対応し、「保管文書読出」は、ＭＦＰ１が有する記憶装置に格納されている画像データを読み出して取得することに対応する。
【０１１８】
出力選択パネルは、ＭＦＰ１から画像を出力する機能を選択する領域であり、「印刷」「保管文書登録」「メール送信」及び「ＦＡＸ送信」の４つのボタンが表示されている。「印刷」は、プロッタからの出力に対応し、「保管文書登録」は、ＭＦＰ１が有する記憶装置に画像データを格納することに対応している。また、「メール送信」は、画像データのファイルをメールに添付して送信することに対応し、「ＦＡＸ送信」は、画像をファクシミリ送信することに対応する。
【０１１９】
以上の、入力選択パネル及び出力選択パネルに表示されているボタンに対応する機能は、ローカルＵＩ部１１が、図１４のステップＳ４０８で取得したフィルタ管理テーブルにより、機能実現部３０ａが有する各フィルタに対応づけられる。
【０１２０】
（ローカルＵＩ部１１への入力に基づくＭＦＰ１の動作（フィルタの設定の処理））
図１６から図１８は、図７から図１５の処理によって起動されたＭＦＰ１が、ローカルＵＩ部１１への入力に基づきジョブを実行する場合の処理の例のシーケンスである。
【０１２１】
図１６は、ジョブを実現するフィルタの設定の処理の例のシーケンス図である。図１６では、操作者がオペレーションパネルに入力することにより、フィルタ３５０ａの設定を行うローカルＵＩを、オペレーションパネルに表示させる処理を例に説明する。
【０１２２】
図１６のステップＳ５０１からＳ５０３では、オペレーションパネルの表示が初期状態の場合に、オペレーションパネルから入力される指示を受け付けるための準備を行うシーケンスである。ステップＳ５０１では、ローカルＵＩ部１１からプラグイン管理手段２１０に対し、リクエストオブジェクトの取得要求が出力される。リクエストオブジェクトは、ユーザインタフェースを介して入力されるＭＦＰ１の操作者からの指示等の要求を受け付け、要求を実現する機能を選択して実行させるための動作オブジェクトである。
【０１２３】
ステップＳ５０１に続いてステップＳ５０２に進み、プラグイン管理手段２１０が、プラグインテーブル保持手段２１２に保持されている動作オブジェクトの中から、リクエストオブジェクトを検索する。ステップＳ５０２に続いてステップＳ５０３に進み、プラグイン管理手段２１０からローカルＵＩ部１１に対し、リクエストオブジェクトが送信される。
【０１２４】
なお、ステップＳ５０１からステップＳ５０３の処理は、オペレーションパネルの表示が初期状態の場合に実行される処理であるので、オペレーションパネルに既に操作画面等が表示され、ローカルＵＩ部１１がリクエストオブジェクトを取得している場合には、省略してもよい。
【０１２５】
ステップＳ５０４からステップＳ５１１は、フィルタのＵＩ１５１ａを取得してオペレーションパネル上に表示させるための処理であって、例えば、図１５の操作画面において、一つのフィルタが選択され、「設定」ボタンが押下された場合に実行される処理である。
【０１２６】
ステップＳ５０３に続いてステップＳ５０４に進み、ローカルＵＩ部１１からプラグイン管理手段２１０に対し、フィルタのＵＩ取得オブジェクトの取得要求が送信される。ステップＳ５０４に続いてステップＳ５０５に進み、プラグイン管理手段２１０が、プラグインテーブル保持手段２１２に保持されている動作オブジェクトの中から、フィルタのＵＩ１５１ａに対応するフィルタのＵＩ取得オブジェクトを検索する。ステップＳ５０５に続いてステップＳ５０６に進み、プラグイン管理手段２１０からローカルＵＩ部１１に対し、フィルタのＵＩ取得オブジェクトが送信される。
【０１２７】
ステップＳ５０６に続いてステップＳ５０７に進み、ローカルＵＩ部１１からフィルタ３５０ａに対し、ステップＳ５０６で取得したフィルタのＵＩ取得オブジェクトに基づき、フィルタのＵＩ取得要求が送信される。ステップＳ５０７に続いてステップＳ５０８に進み、フィルタ３５０ａからフィルタのＵＩ１５１ａに対し、ＵＩ取得要求が出力される。ステップＳ５０８に続いてステップＳ５０９に進み、フィルタのＵＩ１５１ａからフィルタ３５０ａに対し、フィルタのＵＩオブジェクトが出力される。ステップＳ５０９に続いてステップＳ５１０に進み、フィルタ３５０ａからローカルＵＩ部１１に対し、フィルタのＵＩオブジェクトが出力される。ステップＳ５１０に続いてステップＳ５１１に進み、ローカルＵＩ部１１が、ステップＳ５１０で取得したフィルタのＵＩの画面をオペレーションパネル上に表示させる。
【０１２８】
図１７は、フィルタのＵＩの画面の例であって、「読取」フィルタの場合の例である。図１７では、「読取」機能を実行する際の「カラーモード」「用紙サイズ」及び「片面／両面」の設定が、対応するボタンを選択することにより可能である。ボタンを選択した後、「戻る」ボタンを押下することにより、オペレーションパネル上の表示は、図１５で説明された操作画面に戻り、さらに、「読取」フィルタに対して選択に基づく設定が行われる。
【０１２９】
図１６のステップＳ５１２からステップＳ５１４は、フィルタへの設定の処理である。ステップＳ５１２では、ローカルＵＩ部１１が、ステップＳ５０３で取得したリクエストオブジェクトに対してフィルタ３５０ａをセットする。これにより、オペレーションパネルからの入力を、フィルタ３５０ａへの設定要求として処理することができる。
【０１３０】
オペレーションパネルのボタンによってフィルタ３５０ａの設定が選択された後、ステップＳ５１２に続いてステップＳ５１３に進み、ローカルＵＩ部１１からフィルタのＵＩ１５１ａに対し、オペレーションパネル上で選択された内容を設定要求として出力する。なお、ステップＳ５１３は、オペレーションパネル上に表示される図示しない「設定」ボタン等の選択が終了することを示すボタンが押下られることに続いて実行されてもよい。ステップＳ５１３に続いてステップＳ５１４に進み、フィルタのＵＩ１５１ａからフィルタ３５０ａに対し、設定の内容が出力されフィルタ３５０ａが取得した内容に基づき、設定を行う。
【０１３１】
（ローカルＵＩ部１１への入力に基づくＭＦＰ１の動作（フィルタの実行の処理））
図１８は、ローカルＵＩ部１１に対してオペレーションパネル等から入力された指示に基づき、ＭＦＰ１がフィルタ３５０ａの機能を実現する処理の例のシーケンス図である。図１８では、図１５の操作画面における「スタート」ボタンが押下されることに基づき、ＭＦＰ１がフィルタ３５０ａの機能を実現する。
【０１３２】
オペレーションパネルの「スタート」ボタンが操作者によって押下されることに続いて、ステップＳ６０１では、ローカルＵＩ部１１からリクエスト管理手段２２０に対し、機能の実現の開始の指示であるリクエストが出力される。ステップＳ６０１に続いてステップＳ６０２に進み、リクエスト管理手段２２０が、ローカルＵＩ部１１から取得したリクエストの内容に基づき、ジョブに対応するフィルタとフィルタ毎の設定内容を選択する。
【０１３３】
ステップＳ６０２に続いてステップＳ６０３に進み、リクエスト管理手段２２０からプラグイン管理手段２１０に対し、ステップＳ６０２で選択されたフィルタの実行オブジェクトの取得要求を送信する。ステップＳ６０３に続いてステップＳ６０４に進み、プラグイン管理手段２１０が、ステップＳ６０３で要求されたフィルタの実行オブジェクトを検索する。
【０１３４】
ステップＳ６０４に続いてステップＳ６０５に進み、プラグイン管理手段２１０からリクエスト管理手段２２０に対し、フィルタの実行オブジェクトが送信される。ステップＳ６０５に続いてステップＳ６０６に進み、リクエスト管理手段２２０からフィルタ３５０ａに対し、ステップＳ６０５で取得されたフィルタの実行オブジェクトに基づき、実行要求が出力される。ステップＳ６０６に続いてステップＳ６０７に進み、フィルタ３５０ａが、ステップＳ６０６で取得した実行要求に基づき、フィルタ３５０ａの機能を実現する。
【０１３５】
以上のステップＳ６０１からステップＳ６０７の処理によって、オペレーションパネル等から操作者によって入力された指示に従い、ＭＦＰ１が有する機能を実現する処理が行われる。
【０１３６】
（フィルタのＵＩを含むフィルタをインストールする処理の例）
図１９から図２１は、フィルタのＵＩを含むフィルタをＭＦＰ１に追加する場合の処理を説明する図であって、図１９は処理の際にオペレーションパネルに表示される画面の例、図２０は処理の例のシーケンス図、図２１はプラグインアドレス保持手段２１１が管理するプラグインの内容である。
【０１３７】
図１９（ａ）は、オペレーションパネルにおいて、「インストール」の動作が選択されたことを示す図である。「インストール」が選択されると、オペレーションパネルの表示は図１９（ｂ）の画面に切り替わる。図１９（ｂ）は、ＭＦＰ１に対して追加が可能な機能の一覧である。ＭＦＰ１は、通信サーバ１２によって図示しない外部のサーバ等と通信を行うことにより、追加が可能な機能の一覧を取得してもよい。ＭＦＰ１は、また、ＭＦＰ１が有する記憶装置に格納されているフィルタであって、ＭＦＰ１の機能として追加されていないフィルタの一覧を取得し、それらに対応する機能の一覧を取得してもよい。図１９（ｂ）は、操作者によって「ＦＡＸ送信」の機能が、追加される機能として選択されたことを表している。操作者によって、図１９（ｂ）のように追加される機能が選択されると、フィルタをインストールする処理が開始される。
【０１３８】
図２０のステップＳ７０１では、図１９（ａ）のように、操作者によってオペレーションパネル上に表示された「インストール」が選択され、オペレーションパネルの表示が図１９（ｂ）の画面に切り替わる。ステップＳ７０１に続いてステップＳ７０２に進み、操作者によってオペレーションパネル上に表示されたフィルタが選択され、さらにインストールの開始を指示するボタンが押下される。
【０１３９】
ステップＳ７０２に続いてステップＳ７０３に進み、ローカルＵＩ部１１からプラグイン管理手段２１０に対し、インストール要求が出力される。ステップＳ７０３に続いてステップＳ７０４に進み、プラグイン管理手段２１０が、インストールするフィルタに対応するプラグインをダウンロードする。プラグイン管理手段２１０は、通信サーバ１２によって図示しない外部のサーバからプラグインをダウンロードしてもよく、又は、ＭＦＰ１が有する図示しない記憶装置に格納されているプラグインを取得してもよい。なお、図２０の例では、プラグインがプログラムとして構成される場合の例であるが、プラグインが装置として構成される場合には、プログラムのダウンロードに代えて、追加する装置をＭＦＰ１に接続する処理を行うように構成してもよい。
【０１４０】
ステップＳ７０４に続いてステップＳ７０５に進み、プラグイン管理手段２１０からフィルタ３５０ａを生成する指示が出力され、フィルタ３５０ａが生成する。ステップＳ７０５に続いてステップＳ７０６に進み、プラグイン管理手段２１０が、プラグインアドレス保持手段２１１にフィルタ３５０ａを有するプラグインのアドレスを格納させる。
【０１４１】
ステップＳ７０６に続いてステップＳ７０７に進み、フィルタ３５０ａからプラグイン管理手段２１０に対し、フィルタ３５０ａを有するプラグインの登録要求が出力される。ステップＳ７０７に続いてステップＳ７０８に進み、プラグイン管理手段２１０が、プラグイン管理テーブルに、フィルタ３５０ａの動作及びその動作に対応する動作オブジェクトを登録する。
【０１４２】
ステップＳ７０９に続いてステップＳ７１０に進む。ステップＳ７１０では、フィルタ３５０ａの初期化に係る処理が行われる。ステップＳ７１０の処理は、図７のステップＳ１１３からステップＳ１１５の処理と同一であるので、ここでは説明を省略する。
【０１４３】
ステップＳ７１０に続いてステップＳ７１１に進む。ステップＳ７１１では、フィルタ３５０ａの起動及びフィルタ管理手段３３０への登録に係る処理が行われる。ステップＳ７１１の処理は、図１１におけるステップＳ２０２からステップＳ２０７の処理と同一であるので、ここでは説明を省略する。
【０１４４】
ステップＳ７１１に続いてステップＳ７１２に進む。ステップＳ７１２では、ローカルＵＩ部１１によってオペレーションパネル上の表示が更新される。ステップＳ７１２の処理は、図１４におけるステップＳ４０６からステップＳ４０８の処理と同一であるので、ここでは説明を省略する。
【０１４５】
図１９（ｃ）は、ステップＳ７１２において、ローカルＵＩ部１１によって更新された後の操作画面の例である。図１９（ａ）に対して、出力選択パネルに「ＦＡＸ送信」のボタンが追加されている。
【０１４６】
以上のステップＳ７０１からステップＳ７１２の処理によって、フィルタ３５０ａがＭＦＰ１に追加されその機能を実行することが可能になる。図２０から明らかなように、ＭＦＰ１を起動する場合のフィルタ３５０ａに係る処理と、ＭＦＰ１に対してフィルタ３５０ａを追加する場合の処理とは、略同一である。より詳細には、プラグインがダウンロードされた後（ステップＳ７０５以降）では、ＭＦＰ１を起動する場合と異なる点は、プラグインアドレス保持手段２１１への追加の処理（ステップＳ７０６）が加えられている点である。
【０１４７】
すなわち、ＭＦＰ１が起動される場合と、ＭＦＰ１に対してフィルタが追加される場合とで、処理が略同一であるために、処理を実現する手段を共用することができ、処理を実現する手段がプログラムとして構成される場合には、そのプログラムを格納する記憶装置の容量を少なくすることができる。さらに、プラグインアドレス保持手段２１１に対して追加を行うことにより、ＭＦＰ１が次に起動される場合に、新たに追加されたフィルタが反映される。
【０１４８】
図２１は、フィルタ３５０ａを有するプラグインがＭＦＰ１に追加される前と後とのプラグインアドレス保持手段２１１の内容を説明する図である。図２１（ａ）は、フィルタ３５０ａが追加される前の、プラグインアドレス保持手段２１１の内容である。図２１（ａ）では、ＭＦＰ１が有するプラグインである「リクエスト管理」「フィルタ管理」「ローカルＵＩ」及び「フィルタ３５０ｂ」の名称と、これらのプラグインの格納場所が示されている。
【０１４９】
図２１（ｂ）は、例えば、図１９（ｂ）の画面に対応するプラグインのアドレスの例であって、ＭＦＰ１が外部のサーバ等と通信を行うことにより取得する、追加可能なプラグインのリストである。
【０１５０】
図２１（ｃ）は、フィルタ３５０ａを有するプラグインがＭＦＰ１に追加された後の、プラグインアドレス保持手段２１１が保持する内容であって、図２０のステップＳ７０６によって更新されたものである。
【０１５１】
（フィルタ３５０ａをＭＦＰ１から削除する処理）
図２２は、フィルタ３５０ａをＭＦＰ１から削除する処理の例のシーケンス図である。図２２では、オペレーションパネル等からの削除の指示に基づき、ＭＦＰ１が有するフィルタ３５０ａの削除を行う。
【０１５２】
図２２のステップＳ８０１では、ローカルＵＩ部１１が、オペレーションパネル等から入力されるフィルタ３５０ａの削除（アンインストール）の指示に基づき、プラグイン管理手段２１０に対し、フィルタ３５０ａのアンインストール要求を出力する。
【０１５３】
ステップＳ８０１に続いてステップＳ８０２では、プラグイン管理手段２１０からフィルタ３５０ａに対し、停止要求を送信する。停止要求は、フィルタ３５０ａがプログラムとして構成される場合には、プログラムの削除であってもよく、また、プログラムを格納している記憶装置の管理テーブルからプログラムのアドレスを削除してもよい。さらに、フィルタ３５０ａが装置として構成される場合には、装置の電源供給の停止であってもよい。
【０１５４】
ステップＳ８０２に続いてステップＳ８０３に進み、プラグイン管理手段２１０からフィルタ管理手段３３０に対し、フィルタ管理テーブルからの削除要求が出力される。ステップＳ８０３に続くステップＳ８０４では、プラグイン管理手段２１０が、プラグイン管理テーブル保持手段２１２が保持するプラグイン管理テーブルから、フィルタ３５０ａの動作及びその動作に対応する動作オブジェクトの登録を削除する。一方、ステップＳ８０３に続くステップＳ８０５では、フィルタ管理手段３３０が、フィルタ管理テーブル保持手段３３１が保持するフィルタ管理テーブルから、フィルタ３５０ａの機能及びその機能に対応する動作オブジェクトの登録を削除する。
【０１５５】
ステップＳ８０４に続くステップＳ８０６では、プラグイン管理手段２１０が、プラグインアドレス保持手段２１１が保持するフィルタ３５０ａを有するプラグインが格納されているアドレス等の情報を削除する。
【０１５６】
ステップＳ８０６に続くステップＳ８０７からステップＳ８１０の処理は、ローカルＵＩ部１１がオペレーションパネル等への表示を更新する処理であって、図１４のステップＳ４０６からステップＳ４０９の処理と同一であるので、ここでは説明を省略する。
【０１５７】
以上のステップＳ８０１からステップＳ８１０の処理によって、フィルタ３５０ａを、ＭＦＰ１から削除する処理が終了する。
【０１５８】
（印刷の機能を実現するフィルタを有するＭＦＰ１が起動される場合の処理）
図２３は、印刷の機能を実現するフィルタである印刷３５０ｄを有するＭＦＰ１が、起動される場合の処理の例のシーケンス図である。図２３の処理によって、ＭＦＰ１が印刷の機能を実現可能に起動されることは、図７及び図１１から容易に理解できるので、ここでは説明を省略する。
【０１５９】
（ＭＦＰ１が起動された場合の処理（その２））
図２４から図２７は、ＭＦＰ１が起動された場合の処理を説明する図であって、フィルタとフィルタのＵＩとが、異なるプラグインに含まれている場合の図である。
【０１６０】
図２４は、プラグイン管理手段２１０にプラグインが有するフィルタ及びフィルタのＵＩが登録される処理の例のシーケンス図である。図２４のステップＳ９０１では、ＭＦＰ１の電源が投入されて起動の指示がプラグイン管理手段２１０に対して入力される。
図２４のステップＳ９０３からステップＳ９０８の処理は、図７のステップＳ１０３からステップＳ１０８の処理と略同一であり、図７におけるフィルタ３５０ａに係る処理が、図２４ではフィルタ３６０ａに係る処理となっている他は同一であるので、ここでは説明を省略する。
【０１６１】
ステップＳ９０８に続いてステップＳ９０９に進み、プラグイン管理手段２１０からフィルタのＵＩ１６１ａを生成する指示が出力され、フィルタのＵＩ１６１ａが生成される。ステップＳ９０９に続いてステップＳ９１０に進み、フィルタのＵＩ１６１ａからプラグイン管理手段２１０に対し、プラグインの登録要求が出力され、フィルタのＵＩ１６１ａが有する動作及びその動作に対応する動作オブジェクトの登録が要求される。ステップＳ９１０に続いてステップＳ９１１に進み、プラグイン管理手段２１０が、フィルタのＵＩ１６１ａの動作及びその動作に対応する動作オブジェクトを、プラグイン管理テーブルに登録する。
【０１６２】
ステップＳ９１１に続いてステップＳ９１２に進み、プラグイン管理手段２１０からフィルタ管理手段３３０に対し、手段の初期化の指示が出力され、フィルタ管理手段３３０が初期化を実行する。ステップＳ９１２に続いてステップＳ９１３に進み、プラグイン管理手段２１０からフィルタ３６０ａに対し、フィルタ３６０ａの初期化の指示が出力され、フィルタ３６０ａが初期化を実行する。ステップＳ９１３に続いてステップＳ９１４に進み、フィルタ３６０ａがフィルタ名の設定を行う。
【０１６３】
なお、ステップＳ９０３からステップＳ９１４の処理は、フィルタ管理手段３３０に係る処理、フィルタ３６０ａに係る処理、及び、フィルタのＵＩ１６１ａに係る処理は、それぞれ図示された順で実行されるが、フィルタ管理手段３３０、フィルタ３６０ａ、及び、フィルタのＵＩ１６１ａの間の処理の順は問わず、非同期であってもよい。
【０１６４】
ステップＳ９１４に続いてステップＳ９１５に進み、フィルタ３６０ａからプラグイン管理手段２１０に対し、フィルタのＵＩ取得オブジェクトの取得要求が送信される。ステップＳ９１５に続いてステップＳ９１６に進み、プラグイン管理手段２１０が、プラグイン管理テーブル保持手段２１２が有するプラグイン管理テーブルの中から、フィルタのＵＩ１６１ａ取得オブジェクトを検索する。ステップＳ９１６に続いてステップＳ９１７に進み、プラグイン管理手段２１０からフィルタ３６０ａに対し、フィルタのＵＩ１６１ａ取得オブジェクトが送信される。
【０１６５】
ステップＳ９１７に続いてステップＳ９１８に進み、フィルタ３６０ａからフィルタのＵＩ１６１ａに対し、フィルタのＵＩ取得要求が、ステップＳ９１７で取得したフィルタのＵＩ１６１ａ取得オブジェクトにより出力される。ステップＳ９１８に続いてステップＳ９１９に進み、フィルタのＵＩ１６１ａからフィルタ３６０ａに対し、フィルタのＵＩのオブジェクトが出力される。ステップＳ９１９に続いてステップＳ９２０に進み、フィルタ３６０ａからフィルタのＵＩ１６１ａに対し、ステップＳ９１９で取得したフィルタのＵＩのオブジェクトに基づきフィルタオブジェクトのセット要求が出力され、フィルタのＵＩ１６１ａが、フィルタオブジェクトをセットする。
【０１６６】
以上のステップＳ９０１からステップＳ９２０の処理によって、ＭＦＰ１が有するフィルタ等のプラグインのプラグイン管理テーブルが生成され、さらに、Ｓ９１５からステップＳ９２０の処理によって、フィルタ３６０ａとは異なるプラグインに含まれているフィルタのＵＩ１６１ａが、フィルタ３６０ａに対してセットされる。
【０１６７】
（フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合のプラグインアドレスの例）
図２５は、フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の、プラグインアドレス保持手段２１１が保持するプラグインアドレスの例である。図２５では、図８の例に加えてフィルタのＵＩを有するプラグインのアドレスが格納されている。より詳細には、「フィルタ３６０ａ」及び「フィルタ３６０ｂ」に対応するプラグインが格納されているアドレスに加えて、「フィルタ３６０ａのＵＩ」及び「フィルタ３６０ｂのＵＩ」に対応するプラグインが格納されているアドレスが、保持されている。
【０１６８】
（フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の動作オブジェクト）
図２６は、フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の動作オブジェクトの例であって、図２４の、ステップＳ９０７及びステップＳ９１０で、プラグイン管理手段に対してプラグイン登録要求とともに出力される情報の例である。
【０１６９】
図２６（ａ）は、フィルタ３６０ａの動作及びその動作に対応する動作オブジェクトのテーブルである。一方、図２６（ｂ）は、フィルタ３６０ａのＵＩであるフィルタのＵＩ１６１ａの動作及びその動作に対応する動作オブジェクトのテーブルである。フィルタのＵＩが、フィルタとは異なるプラグインに含まれている場合には、フィルタに加えてフィルタのＵＩも、プラグイン管理手段２１０に対して登録要求を行う。これにより、プラグイン管理手段２１０が、フィルタのＵＩを管理することができる。
【０１７０】
（フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合のフィルタ管理手段３３０への登録）
図２７は、フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の、フィルタ管理手段３３０への登録の処理の例のシーケンス図である。図２７のステップＳ１００１からステップＳ１００８は、図１１のステップＳ２０１からステップＳ２０８の処理と略同一である。より詳細には、図２７におけるフィルタ３６０ａに係る処理は、図１１におけるフィルタ３５０ａに係る処理と同一であり、その他の処理は図１１と図２７とで同一であるので、ここでは説明を省略する。
【０１７１】
図２７によって、フィルタ３６０ａの機能等が、フィルタ管理テーブル保持手段３３１が保持するフィルタ管理テーブルに登録される。一方、フィルタのＵＩ１６１ａの機能及びその機能に対応する機能オブジェクトは、フィルタ管理テーブルには登録されず、フィルタ３６０ａがフィルタのＵＩ１６１ａの管理を行う。
【０１７２】
ＭＦＰ１が起動された場合には、図２４及び図２７の処理に加えて、ローカルＵＩ部１１及びリクエスト管理手段２２０の生成、起動等の処理が実行されるが、ローカルＵＩ部１１部及びリクエスト管理手段２２０の生成等の処理は、図１３及び図１４の処理と同一であるので、ここでは説明を省略する。
【０１７３】
（フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の、フィルタをインストールする処理の例）
図２８は、フィルタとフィルタのＵＩとが異なるプラグインに含まれる場合の、ＭＦＰ１へのフィルタ等の追加の処理の例のシーケンス図である。図２８では、操作者によってオペレーションパネルから入力された「インストール」の指示に基づき、フィルタ３６０ａ等がＭＦＰ１に追加される。オペレーションパネルの表示は、図２０におけるフィルタとフィルタのＵＩとが一のプラグインに含まれる場合と同一である。
【０１７４】
図２８のステップＳ１１０１では、図１９（ａ）のように、操作者によってオペレーションパネル上に表示された「インストール」が選択され、オペレーションパネルの表示が図１９（ｂ）に切り替わる。ステップＳ１１０１に続いて、ステップＳ１１０２に進み、操作者によってオペレーションパネル上に表示されたフィルタが選択され、さらにインストールの開始を指示するボタン押下される。
【０１７５】
ステップＳ１１０２に続いてステップＳ１１０３に進み、ローカルＵＩ部１１からプラグイン管理手段２１０に対し、インストール要求が出力される。ステップＳ１１０３に続いてステップＳ１１０４に進み、プラグイン管理手段２１０が、インストールするフィルタに対応するプラグインとフィルタのＵＩに対応するプラグインとをダウンロードする。プラグイン管理手段２１０は、通信サーバ１２によって図示しない外部のサーバからプラグインをダウンロードしてもよく、又は、ＭＦＰ１が有する図示しない記憶装置に格納されているプラグインを取得してもよい。なお、図２８の例では、プラグインがプログラムとして構成される場合の例であるが、プラグインが装置として構成される場合には、プログラムのダウンロードに代えて、追加する装置をＭＦＰ１に接続する処理を行うように構成してもよい。
【０１７６】
ステップＳ１１０４に続いてステップＳ１１０５に進み、プラグイン管理手段２１０からフィルタ３６０ａを生成する指示が出力され、フィルタ３６０ａが生成する。ステップＳ１１０５に続いてステップＳ１１０６に進み、プラグイン管理手段２１０からフィルタのＵＩ１６１ａを生成する指示が出力され、フィルタのＵＩ１６１ａが生成する。
【０１７７】
ステップＳ１１０６に続いてステップＳ１１０７に進み、プラグイン管理手段２１０が、プラグインアドレス保持手段２１１に、フィルタ３６０ａを有するプラグインのアドレス及びフィルタのＵＩ１６１ａを有するプラグインのアドレスを格納させる。
【０１７８】
ステップＳ１１０７に続いてステップＳ１１０８に進み、フィルタ３６０ａからプラグイン管理手段２１０に対し、フィルタ３６０ａを有するプラグインの登録要求が出力される。ステップＳ１１０８に続いてステップＳ１１０９に進み、プラグイン管理手段２１０が、プラグイン管理テーブルに、フィルタ３６０ａの動作及びその動作に対応する動作オブジェクトを登録する。
【０１７９】
ステップＳ１１０９に続いてステップＳ１１１０に進み、フィルタのＵＩ１６１ａからプラグイン管理手段２１０に対し、フィルタのＵＩ１６１ａを有するプラグインの登録要求が出力される。ステップＳ１１１０に続いてステップＳ１１１１に進み、プラグイン管理手段２１０が、プラグイン管理テーブルに、フィルタのＵＩ１６１ａの動作及びその動作に対応する動作オブジェクトを登録する。
【０１８０】
ステップＳ１１１１に続いてステップＳ１１１２に進む。ステップＳ１１１２では、フィルタ３６０ａ及びフィルタのＵＩ１６１ａの初期化に係る処理が行われる。ステップＳ１１１２の処理は、図２４のステップＳ９１２からステップＳ９２０の処理と同一であるので、ここでは説明を省略する。
【０１８１】
ステップＳ１１１２に続いてステップＳ１１１３に進む。ステップＳ１１１３では、フィルタ３６０ａ及びフィルタのＵＩ１６１ａの起動及びフィルタ管理手段３３０への登録に係る処理が行われる。ステップＳ１１１３の処理は、図２７におけるステップＳ１００２からステップＳ１００８の処理と同一であるので、ここでは説明を省略する。
【０１８２】
ステップＳ１１１３に続いてステップＳ１１１４に進む。ステップＳ１１１４では、ローカルＵＩ部１１によってオペレーションパネル上の表示が更新される。ステップＳ１１１４の処理は、図１４におけるステップＳ４０６からステップＳ４０９の処理と同一であるので、ここでは説明を省略する。
【０１８３】
以上のステップＳ１１０１からステップＳ１１１４の処理によって、フィルタ３６０ａ及びフィルタのＵＩ１６１ａがＭＦＰ１に追加されその機能を実行することが可能になる。図２８から明らかなように、ＭＦＰ１を起動する場合のフィルタ３６０ａ及びフィルタのＵＩ１６１ａに係る処理と、ＭＦＰ１に対してフィルタ３６０ａ及びフィルタのＵＩ１６１ａを追加する場合の処理とは、略同一である。より詳細には、プラグインがダウンロードされた後（ステップＳ１１０５以降）では、ＭＦＰ１を起動する場合と異なる点は、プラグインアドレス保持手段２１０への追加の処理（ステップＳ１１０７）が加えられている点である。
【０１８４】
すなわち、ＭＦＰ１が起動される場合と、ＭＦＰ１に対してフィルタが追加される場合とで、処理が略同一であるために、処理を実現する手段を共用することができ、処理を実現する手段がプログラムとして構成される場合には、そのプログラムを格納する記憶装置の容量を少なくすることができる。さらに、プラグインアドレス保持手段２１１に対して追加を行うことにより、ＭＦＰ１が次に起動される場合に、新たに追加されたフィルタが反映される。
【０１８５】
図２９は、フィルタ３５０ａがＭＦＰ１に追加される前と後とのプラグインアドレス保持手段２１１の内容を説明する図である。なお、図２９（ａ）から（ｃ）では、フィルタ管理手段３３０、及び、リクエスト管理手段２１０のプラグインに係る情報は省略している。図２９（ａ）は、フィルタ３６０ａが追加される前の、プラグインアドレス保持手段２１１の内容である。図２９（ａ）では、「フィルタ３６０ａ」及び「フィルタのＵＩ１６１ａ」の名称と、それらのプラグインの格納場所が示されている。
【０１８６】
図２９（ｂ）は、ＭＦＰ１が外部のサーバ等と通信を行うことにより取得する、追加可能なプラグインのリストである。図２９（ｂ）では、プラグインの名称として「フィルタ３６０ａ」及び「フィルタ３６０ｃ」が示されており、それぞれのフィルタに対応するプラグインの格納場所と、フィルタのＵＩに対応するプラグインの格納場所とが示されている。これにより、操作者がインストールする機能（フィルタの名称）を選択することに基づき、フィルタとフィルタのＵＩとがダウンロードされて追加される。
【０１８７】
図２９（ｃ）は、フィルタ３６０ａを有するプラグインと、フィルタのＵＩ１６１ａを有するプラグインとがＭＦＰ１に追加された後の、プラグインアドレス保持手段２１１が保持する内容であって、図２８のステップＳ１１１４で更新された内容である。
【０１８８】
（フィルタ３６０ａをＭＦＰ１から削除する処理）
図３０は、フィルタ３６０ａをＭＦＰ１から削除する処理の例のシーケンス図である。図３０では、オペレーションパネル等からの削除の指示に基づき、ＭＦＰ１が有するフィルタ３６０ａの削除を行う。
【０１８９】
図３０のステップＳ１２０１では、ローカルＵＩ部１１が、オペレーションパネル等から入力されるフィルタ３６０ａの削除（アンインストール）の指示に基づき、プラグイン管理手段２１０に対し、フィルタ３６０ａのアンインストール要求を出力する。
【０１９０】
ステップＳ１２０１に続いてステップＳ１２０２では、プラグイン管理手段２１０からフィルタ３６０ａに対し、停止要求を送信する。停止要求は、フィルタ３６０ａがプログラムとして構成される場合には、プログラムの削除であってもよく、また、プログラムを格納している記憶装置の管理テーブルからプログラムのアドレスを削除してもよい。さらに、フィルタ３６０ａが装置として構成される場合には、装置の電源供給の停止であってもよい。
【０１９１】
ステップＳ１２０２に続いて、又は、ステップＳ１２０２と前後して、ステップＳ１２０３では、プラグイン管理手段２１０からフィルタ３６０ａに対し、停止要求を送信する。停止要求の内容は、フィルタ３６０ａと略同一である。ステップＳ１２０３に続いてステップＳ１２０４に進み、プラグイン管理手段２１０からフィルタ管理手段３３０に対し、フィルタ管理テーブルからの削除要求が出力される。
【０１９２】
ステップＳ１２０４に続くステップＳ１２０５では、プラグイン管理手段２１０が、プラグイン管理テーブルからフィルタ３６０ａとフィルタのＵＩ１６１ａの動作及びその動作に対応する動作オブジェクトの登録を削除する。一方、ステップＳ１２０４に続くステップＳ１２０６では、フィルタ管理手段３３０が、フィルタ管理テーブル保持手段３３１が保持するフィルタ管理テーブルから、フィルタ３６０ａの機能及びその機能に対応する機能オブジェクトの登録を削除する。
【０１９３】
ステップＳ１２０５に続くステップＳ１２０７では、プラグイン管理手段２１０が、フィルタ３６０ａを有するプラグインと、フィルタのＵＩ１６１ａを有するプラグインとが、それぞれ格納されているアドレス等の情報を、プラグインアドレス保持手段２１１が保持する情報の中から削除する。
【０１９４】
ステップＳ１２０７に続くステップＳ１２０８からステップＳ１２１１の処理は、ローカルＵＩ部１１がオペレーションパネル等への表示を更新する処理であって、図２８のステップＳ１１１４の処理と同一であるので、ここでは説明を省略する。
【０１９５】
以上のステップＳ１２０１からステップＳ１２１１の処理によって、フィルタ３６０ａ及びフィルタのＵＩ１６１ａをＭＦＰ１から削除する処理が終了する。操作者は、ステップＳ１２０１又はその前に、オペレーションパネルからフィルタ３６０ａの削除の指示を入力することにより、フィルタ３６０ａとともに、フィルタのＵＩ１６１ａを削除することができる。
【０１９６】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【図面の簡単な説明】
【０１９７】
【図１】ＭＦＰ１のジョブを実行する手段等の構成の例。
【図２】パイプ＆フィルタアーキテクチャの概念を説明するための図。
【図３】ＭＦＰ１が有するプラグインの登録及びプラグインが有するフィルタの登録に係る機能構成の例。
【図４】フィルタとフィルタのＵＩとの論理的な対応の図（その１）。
【図５】フィルタとフィルタのＵＩとの論理的な対応の図（その２）。
【図６】フィルタとフィルタのＵＩとの物理的な構成の例の図。
【図７】プラグイン管理手段２１０にプラグインが有するフィルタが登録される処理の例のシーケンス。
【図８】プラグインアドレス保持手段２１１が保持するプラグイン及びプラグインのアドレスの一覧の例（その１）。
【図９】プラグイン管理手段に対する登録要求の際に出力される情報の例（その１）。
【図１０】プラグイン管理テーブルの例。
【図１１】フィルタ管理手段３３０にフィルタが登録される処理の例のシーケンス（その１）。
【図１２】フィルタ管理テーブルの例。
【図１３】ローカルＵＩ部１１及びリクエスト管理手段２２０の動作が、プラグイン管理手段２１０に登録される処理の例のシーケンス。
【図１４】ローカルＵＩ部１１及びリクエスト管理手段２２０の起動並びにローカルＵＩ部１１がフィルタ管理テーブルを取得する処理の例のシーケンス。
【図１５】ＭＦＰ１が有するオペレーションパネルに表示される操作画面の例。
【図１６】ジョブを実現するフィルタの設定の処理の例のシーケンス。
【図１７】フィルタのＵＩの画面の例。
【図１８】ＭＦＰ１がフィルタ３５０ａを実行させる処理の例のシーケンス。
【図１９】フィルタのＵＩを含むフィルタをＭＦＰ１に追加する場合の処理の際にオペレーションパネルに表示される画面の例。
【図２０】フィルタをＭＦＰ１に追加する場合の処理の例のシーケンス（その１）。
【図２１】フィルタ３５０ａがＭＦＰ１に追加される前と後とのプラグインアドレス保持手段２１１の内容を説明する図。
【図２２】フィルタ３５０ａをＭＦＰ１から削除する処理の例のシーケンス。
【図２３】印刷の機能を実現するフィルタである印刷３５０ｄを有するＭＦＰ１が、起動される場合の処理の例のシーケンス。
【図２４】プラグイン管理手段２１０にプラグインが有するフィルタ及びフィルタのＵＩが登録される処理の例のシーケンス。
【図２５】プラグインアドレス保持手段２１１が保持するプラグイン及びプラグインのアドレスの一覧の例（その２）。
【図２６】プラグイン管理手段に対する登録要求の際に出力される情報の例（その２）。
【図２７】フィルタ管理手段３３０にフィルタが登録される処理の例のシーケンス（その２）。
【図２８】フィルタをＭＦＰ１に追加する場合の処理の例のシーケンス（その２）
【図２９】フィルタ３６０ａがＭＦＰ１に追加される前と後とのプラグインアドレス保持手段２１１の内容を説明する図
【図３０】フィルタ３６０ａをＭＦＰ１から削除する処理の例のシーケンス。
【符号の説明】
【０１９８】
１  ＭＦＰ
１０、１０ａユーザインタフェース部
１１  ローカルＵＩ部
１２  通信サーバ
２０、２０ａ  コントロール部
３０、３０ａ  機能実現部
４０  デバイスサービス部
４１  データ管理手段
４２  メモリ
５０  デバイス部
１１１  ユーザインタフェース
１１２  フィルタ管理テーブル取得手段
１１９  ＵＩプラグイン
１３１  フィルタのＵＩ
１３９  フィルタのＵＩのプラグイン
１５１ａ、１５１ｂ、１５１ｃ、１６１ａ、１６１ｂ、１６１ｃ  フィルタのプラグイン
２１０  プラグイン管理手段
２１１  プラグインアドレス保持手段
２１２  プラグイン管理テーブル保持手段
２２０  リクエスト管理手段
２２０  リクエスト管理手段
２２１  ジョブ生成手段
３３０  フィルタ管理手段
３３１  フィルタ管理テーブル保持手段
３３２  フィルタ登録オブジェクト
３４０  フィルタ
３４１  動作オブジェクト取得手段
３４２  フィルタ登録要求手段
３４３  ＵＩ管理手段
３４４  プラグイン登録要求手段
３４９  フィルタのプラグイン
３５０ａ、３５０ｂ、３５０ｃ、３６０ａ、３６０ｂ、３６０ｃ  フィルタ
【図１】
2008065479.tif 000003
【図２】
2008065479.tif 000004
【図３】
2008065479.tif 000005
【図４】
2008065479.tif 000006
【図５】
2008065479.tif 000007
【図６】
2008065479.tif 000008
【図７】
2008065479.tif 000009
【図８】
2008065479.tif 000010
【図９】
2008065479.tif 000011
【図１０】
2008065479.tif 000012
【図１１】
2008065479.tif 000013
【図１２】
2008065479.tif 000014
【図１３】
2008065479.tif 000015
【図１４】
2008065479.tif 000016
【図１５】
2008065479.tif 000017
【図１６】
2008065479.tif 000018
【図１７】
2008065479.tif 000019
【図１８】
2008065479.tif 000020
【図１９】
2008065479.tif 000021
【図２０】
2008065479.tif 000022
【図２１】
2008065479.tif 000023
【図２２】
2008065479.tif 000024
【図２３】
2008065479.tif 000025
【図２４】
2008065479.tif 000026
【図２５】
2008065479.tif 000027
【図２６】
2008065479.tif 000028
【図２７】
2008065479.tif 000029
【図２８】
2008065479.tif 000030
【図２９】
2008065479.tif 000031
【図３０】
2008065479.tif 000032