(57)【特許請求の範囲】
【請求項１】
それぞれ独立してインストール可能な複数のソフトウェア部品を有する画像形成装置であって、
各ソフトウェア部品に対して共通の設定項目の設定値のデータ形式を、前記各ソフトウェア部品より取得する形式取得手段と、
前記データ形式と前記データ形式が取得されたソフトウェア部品とを関連付けて記録する記録手段と、
前記設定項目に対する設定値を入力させる画面を表示させる表示手段と、
前記設定項目に対して入力された設定値を、前記記録手段によって記録された情報において当該設定値のデータ形式と関連付けられているソフトウェア部品に設定する設定手段とを有することを特徴とする画像形成装置。
【請求項２】
前記画面において、相互にデータ形式の異なる複数の設定値を入力可能であることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記各ソフトウェア部品は、相互に異なる方法によって情報の送信を前記画像形成装置に実行させるソフトウェア部品であり、
前記設定項目は、前記情報の送信先の識別情報である請求項1又は２記載の画像形成装置。
【請求項４】
それぞれ独立してインストール可能な複数のソフトウェア部品を有する画像形成装置が、
各ソフトウェア部品に関して共通する設定項目の設定値のデータ形式を、前記各ソフトウェア部品より取得する形式取得手順と、
前記データ形式と前記データ形式が取得されたソフトウェア部品とを関連付けて記録する記録手順と、
前記設定項目に対する設定値を設定させる画面を表示させる表示手順と、
前記設定項目に対して入力された設定値を、前記記録手順において記録された情報において当該設定値のデータ形式と関連付けられているソフトウェア部品に設定する設定手順とを実行することを特徴とする情報処理方法。
【請求項５】
前記画面において、相互にデータ形式の異なる複数の設定値を入力可能であることを特徴とする請求項４記載の情報処理方法。
【請求項６】
前記各ソフトウェア部品は、相互に異なる方法によって情報の送信を前記画像形成装置に実行させるソフトウェア部品であり、
前記設定項目は、前記情報の送信先の識別情報である請求項４又は５記載の情報処理方法。
【請求項７】
請求項４乃至６いずれか一項記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理方法及び情報処理プログラムに関し、特にそれぞれ独立してインストール可能な複数のソフトウェア部品を有する画像形成装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像形成装置では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にＣＰＵを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００３】
例えば、特許文献１に記載された画像形成装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのＡＰＩを利用してアプリケーションを実装することができる。かかる画像形成装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般的に、共通的に利用されるＡＰＩを備えたプラットフォームについては、当該プラットフォームによって提供される機能又はインタフェースの粒度が適切に設計されていないと、アプリケーションの開発効率の向上が期待以上に図れない場合がある。
【０００５】
例えば、当該粒度が小さ過ぎると、単純なサービスを提供するアプリケーションであるにもかかわらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００６】
一方、当該粒度が大き過ぎると、或るインタフェースによって提供されている機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、当該プラットフォーム内を修正しなければならず、開発工数の増加を招いてしまいかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００７】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、当該一部以外の部分については既存のアプリケーションを呼び出すといったようなことは出来ない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、機能のカスタマイズ又は拡張等を簡便化させることのできる画像形成装置、情報処理方法及び情報処理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、本発明は、それぞれ独立してインストール可能な複数のソフトウェア部品を有する画像形成装置であって、各ソフトウェア部品より設定可能な設定項目の識別情報を取得する識別情報取得手段と、前記識別情報と前記識別情報が取得されたソフトウェア部品とを関連付けて記録する記録手段と、前記記録手段によって記録された情報に含まれる識別情報に係る設定項目の設定値を設定させる画面を表示させる設定画面表示手段とを有することを特徴とする。
【００１０】
このような画像形成装置では、機能のカスタマイズ又は拡張等を簡便化させることができる。
【発明の効果】
【００１１】
本発明によれば、機能のカスタマイズ又は拡張等を簡便化させることのできる画像形成装置、情報処理方法及び情報処理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を一台の筐体において実現する画像形成装置をいう。
【００１３】
図１に示されるように、複合機１におけるソフトウェアは、ユーザインタフェース層１０、コントロール層２０、アプリケーションロジック層３０、デバイスサービス層４０、及びデバイス制御層５０等より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
【００１４】
ユーザインタフェース層１０は、機能（例えば、コピー、印刷、スキャン、ＦＡＸ送信）の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部１１及びローカルＵＩ部１２等が含まれる。通信サーバ部１１は、例えば、非図示のクライアントＰＣ（Personal Computer）等からネットワーク経由で要求を受け付ける。ローカルＵＩ部１２は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層１０において受け付けられた要求は、コントロール層２０に伝えられる。
【００１５】
コントロール層２０は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層３０における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施の形態において「複合機１の機能」とは、複合機１がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００１６】
アプリケーションロジック層３０は、それぞれが複合機１において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層３０における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機１のソフトウェアアーキテクチャが「パイプ＆フィルタ」と呼ばれる考え方に基づくことによる。
【００１７】
図２は、パイプ＆フィルタの概念を説明するための図である。図２において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
【００１８】
すなわち、本実施の形態における複合機１では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「変換フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。したがって、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００１９】
図１において、アプリケーションロジック層３０には、入力フィルタとして、読取フィルタ３０１、保管文書読出フィルタ３０２、メール受信フィルタ３０３、ＦＡＸ受信フィルタ３０４、ＰＣ文書受信フィルタ３０５、レポートフィルタ３０６等が含まれている。
【００２０】
読取フィルタ３０１は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ３０２は、複合機１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ３０３は、電子メールの受信し、当該電子メールに含まれているデータを出力する。ＦＡＸ受信フィルタ３０４は、ＦＡＸ受信を制御し、受信されたデータを出力する。ＰＣ文書受信フィルタ３０５は、非図示のクライアントＰＣから印刷データを受信し、受信された印刷データを出力する。レポートフィルタ３０６は、複合機１の設定情報や履歴情報等を、例えば表形式に整形されたデータとして出力する。
【００２１】
また、変換フィルタとしては、文書加工フィルタ３１１及び文書変換フィルタ３１２等が含まれている。文書加工フィルタ３１１は、入力されたデータに所定の画像変換処理（集約、拡大、又は縮小等）を施し、出力する。文書変換フィルタ３１２は、レンダリング処理を実行する。すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００２２】
また、出力フィルタとしては、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、フォルダ送信フィルタ３２５、及びプレビューフィルタ３２６等が含まれている。
【００２３】
印刷フィルタ３２１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ３２２は、入力されたデータを複合機１内のハードディスク内に保存する。メール送信フィルタ３２３は、入力されたデータを電子メールに添付して指定されたメールアドレスに送信する。ＦＡＸ送信フィルタ３２４は、入力されたデータを指定されたＦＡＸ番号にＦＡＸ送信する。フォルダ送信フィルタ３２５は、入力されたデータをネットワークを介して接続されるコンピュータ等の指定されたフォルダに送信する。プレビューフィルタ３２６は、入力されたデータを、複合機１のオペレーションパネルにプレビュー表示させる。
【００２４】
デバイスサービス層４０は、アプリケーションロジック層３０における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ４１及びデータ管理部４２等が含まれる。画像パイプ４１は、上述したパイプの機能を実現する。すなわち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部４２は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
【００２５】
デバイス制御層５０は、デバイス（ハードウェア）を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部５１、プロッタ制御部５２、メモリ制御部５３、Ｔｅｌ回線制御部５４、及びネットワーク制御部５５等が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
【００２６】
フィルタについて更に詳しく説明する。図３は、フィルタの構成要素を説明するための図である。図３に示されるように、各フィルタは、フィルタ設定用ＵＩ、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用ＵＩ、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【００２７】
フィルタ設定用ＵＩは、フィルタの実行条件等を設定させるための画面をオペレーションパネル等に表示させるプログラムである。例えば、読取フィルタ３０１であれば、解像度、濃度、画像種別等を設定させる画面が相当する。なお、オペレーションパネルの表示がＨＴＭＬデータや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用ＵＩはＨＴＭＬデータやスクリプトであってもよい。
【００２８】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、デバイスサービス層４０又はデバイス制御層５０等を利用して、フィルタ設定用ＵＩを介して設定された実行条件に応じてフィルタの機能を実現する。例えば、読取フィルタ３０１であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
【００２９】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能（ライブラリ）である。すなわち、デバイスサービス層４０又はデバイス制御層５０相当する機能であるが、他のフィルタから使用されないものについては、フィルタの一部として実装されてもよく、当該一部がフィルタ固有下位サービスに相当する。例えば、読取フィルタ３０１であれば、スキャナを制御するための機能が相当するが、本実施の形態では、デバイス制御層５０においてスキャナ制御部５１として実装されている。したがって、読取フィルタ３０１において、フィルタ固有下位サービスの実装は必ずしも必要ではない。
【００３０】
永続記憶領域情報は、フィルタに対する設定情報（例えば、実行条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部４２に登録される。
【００３１】
図４は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【００３２】
例えば、コピー機能は、読取フィルタ３０１と印刷フィルタ３２１とを接続することにより実現される。読取フィルタ３０１によって原稿より読み取られた画像データを印刷フィルタ３２１によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書加工フィルタ３１１が二つのフィルタの間に挿入される。
【００３３】
プリンタ機能（クライアントＰＣからの印刷機能）は、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２と印刷フィルタ３２１とを接続することにより実現される。スキャンｔｏ  ｅｍａｉｌ機能（スキャンした画像データを電子メールで転送する機能）は、読取フィルタ３０１とメール送信フィルタ３２３とを接続することによって実現される。ＦＡＸ送信機能は、読取フィルタ３０１とＦＡＸ送信フィルタ３２４とを接続することによって実現される。ＦＡＸ受信機能は、ＦＡＸ受信フィルタ３０４と印刷フィルタ３２１とを接続することによって実現される。ドキュメントボックス蓄積機能（スキャンした画像データを複合機１内に保存する機能）は、読取フィルタ３０１と保管文書登録フィルタ３２２とを接続することによって実現される。ドキュメントボックス印刷機能（複合機１内に保存されている文書データを印刷する機能）は、保管文書読出フィルタ３０２と印刷フィルタ３２１とを接続することにより実現される。
【００３４】
図４において、例えば、読取フィルタ３０１については５つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。例えば、コピー機能とスキャン機能（ドキュメントボックス蓄積）について、その実行条件を設定させるためのユーザインタフェースは類似しているものであった。しかし、各機能をアプリケーションによって実装する場合には、アプリケーションごとに個別にユーザインタフェースの実装も行われていた。しかし、本実施の形態では、コピー機能及びスキャン機能のいずれの場合も、読取フィルタ３０１のユーザインタフェースによって設定が行われ、ユーザインタフェースの共通化をも図ることができる。
【００３５】
更に、新たな機能を実現する場合について考える。まず、機能１として、複合機１では対応していないＰＤＬ（Page Description Language）（以下、「他ＰＤＬ」という。）によってクライアントＰＣから送信される印刷データを印刷する機能を実現する場合について考える。この場合、図４におけるプリンタ機能を雛形とすることができる。但し、プリンタ機能では、ＰＣ文書受信フィルタ３０５により出力されるデータがＰｏｓｔＳｃｒｉｐｔ形式であることが前提とされている。文書変換フィルタ３１２が入力データとして扱えるのはＰｏｓｔＳｃｒｉｐｔ形式のデータだからである。しかし、機能１の場合、ＰＣ文書受信フィルタ３０５によって受信され、当該フィルタより出力されるのは他ＰＤＬ形式のデータである。したがって、このまま文書変換フィルタ３１２に転送しても文書変換フィルタ３１２は適切に処理を実行することができない。そこで、他ＰＤＬ形式からＰｏｓｔＳｃｒｉｐｔ形式へのデータ変換を実行する変換フィルタ（以下「他ＰＤＬ−ＰＳ変換フィルタ」という。）を新たに実装し、当該フィルタをＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２との間に挿入すれば、機能１を実現することができる。すなわち、機能１は、ＰＣ文書受信フィルタ３０５と他ＰＤＬ−ＰＳ変換フィルタと文書変換フィルタ３１２と印刷フィルタ３２１とを接続することにより実現される。
【００３６】
次に、機能２として、Ｗｅｂサイトから情報を収集し、収集された情報を印刷する機能（以下「機能２」という。）を実現する場合について考える。この場合、Ｗｅｂサイトから情報を収集するフィルタが存在しない。したがって、少なくともＷｅｂサイトから情報を収集する入力フィルタ（以下「Ｗｅｂ収集フィルタ」という。）を新たに実装する必要がある。また、機能２では最終的に印刷を実行させたいので、出力フィルタとしては印刷フィルタ３２１を用いるのが適切である。ここで問題となるのが、Ｗｅｂ収集フィルタと印刷フィルタ３２１との間をどのように接続するかである。すなわち、印刷フィルタ３２１の入力データはレンダリングされたビットマップである必要があるところ、Ｗｅｂ収集フィルタ内にレンダリング機能を実装するのは非常に工数がかかるので適切ではない。そこで、既にレンダリング機能を実現する文書変換フィルタ３１２を利用することが考えられる。ただし、文書変換フィルタ３１２の入力データは、ＰｏｓｔＳｃｒｉｐｔ形式である必要がある。そこで、Ｗｅｂ収集フィルタを、収集した情報をＰｏｓｔＳｃｒｉｐｔ形式によって出力するように実装すれば、文書変換フィルタ３１２との接続が可能となる。このようにＷｅｂ収集フィルタを実装することにより、機能２は、Ｗｅｂ収集フィルタと文書変換フィルタ３１２と、文書変換フィルタ３１２と印刷フィルタ３２１との接続により実現される。
【００３７】
以下、本実施の形態における複合機１の処理手順について説明する。図５及び図６は、複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【００３８】
まず、ユーザによって入力フィルタが選択され（Ｓ１０１）、選択された入力フィルタの実行条件が設定される（Ｓ１０２）。同様に、変換フィルタ又は出力フィルタについても選択が行われ（Ｓ１０３）、フィルタ間の接続が指定され（Ｓ１０４）、実行条件が設定される（Ｓ１０５）。
【００３９】
上記の操作は、ローカルＵＩ部１２の制御のもと、例えば、図７に示されるようなオペレーションパネルを介して行われる。
【００４０】
図７は、オペレーションパネルにおけるフィルタの選択例を示す図である。図７において、オペレーションパネル２０２は、タッチパネル５１１とスタートボタン５１２とを含む。タッチパネル５１１は、タッチ操作で入力を行うためのハードウェア（タッチ操作部）であると共に、画面表示で出力を得るためのハードウェア（画面表示部）である。スタートボタン５１２は、要求した機能の実行開始指示を行うためのハードウェアである。
【００４１】
図７のタッチパネル５１１には、要求入力画面が表示されている。要求入力画面は、入力フィルタ選択領域５１３、変換フィルタ選択領域５１４、出力フィルタ選択領域５１５、及び要求表示領域５１６等より構成される。入力フィルタ選択領域５１３は、入力フィルタを選択させるための領域であり、入力フィルタごとにボタンが表示されている。入力フィルタ選択領域５１３でいずれかのボタンが選択されると、選択されたボタンに対応する入力フィルタのボタンが要求表示領域５１６に表示される。図中では、便宜上、読取フィルタ３０１及び保管文書読出フィルタ５１３のボタンが表示されている。
【００４２】
変換フィルタ選択領域５１４は、変換フィルタを選択させるための領域であり、変換フィルタごとにボタンが表示されている。変換フィルタ選択領域５１４でいずれかのボタンが選択されると、選択されたボタンに対応する変換フィルタのボタンが要求表示領域５１６に表示される。
【００４３】
出力フィルタ選択領域５１５は、出力フィルタを選択させるための領域であり、出力フィルタごとにボタンが表示されている。出力フィルタ選択領域５１５でいずれかのボタンが選択されると、選択されたボタンに対応する出力フィルタのボタンが要求表示領域５１６に表示される。図中では、便宜上、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、及びＦＡＸ送信フィルタ３２４のボタンが表示されている。
【００４４】
なお、インストールされているフィルタ（入力フィルタ、変換フィルタ、出力フィルタ）の一覧情報は、記憶装置に記録されており、例えば、コントロール層２０によって管理されている。したがって、ローカルＵＩ部１２は、コントロール層２０に問い合わせることにより、入力フィルタ選択領域５１３、変換フィルタ選択領域５１４、出力フィルタ選択領域５１５を表示させるためのフィルタの一覧情報を取得する。
【００４５】
要求表示領域５１６には、入力フィルタ選択領域５１３、変換フィルタ選択領域５１４又は出力フィルタ選択領域５１５において選択されたフィルタのボタンが表示され、入力フィルタ、変換フィルタ、又は出力フィルタとの間は、データの流れ又はパイプを示す矢印で接続される。矢印を操作することにより、実行するフィルタの順番を変更することも可能である。要求表示領域５１６における表示内容によって、ユーザは、利用するフィルタとその流れを認識することができる。要求表示領域５１６には、更に、設定ボタン５１７及び削除ボタン５１８が配置されている。設定ボタン５１７は、要求表示領域５１６においてフィルタのボタンが選択されている場合に、当該フィルタの設定画面を表示させるためのボタンである。すなわち、設定ボタン５１７が押下（タッチ）されると、選択されているフィルタのフィルタ設定ＵＩに基づいて、その設定画面がタッチパネル５１１に表示される。削除ボタン５１８は、要求表示領域５１６においてフィルタのボタンが選択されている場合に、当該フィルタの利用を解除するためのボタンである。
【００４６】
なお、入力フィルタ、変換フィルタ、及び出力フィルタは、一つの機能に対してそれぞれ複数個の選択が可能である。例えば、スキャンされた画像と、複合機１内に保存されている画像を合成して、印刷すると共にＦＡＸ送信するといったような場合、少なくとも二つの入力フィルタ（読取フィルタ３０１及び保管文書読出フィルタ３０２）と二つの出力フィルタ（印刷フィルタ３２１及びＦＡＸ送信フィルタ３２４）とが選択される。
【００４７】
フィルタの選択が完了し（Ｓ１０６でＹＥＳ）、スタートボタン５１２が押下されると、ユーザインタフェース層１０からコントロール層２０に対して、要求内容が通知される。
【００４８】
図８は、ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。図８に示されるように、ユーザインタフェース層１０からの要求は、ユーザインタフェース層１０において選択されたフィルタごとに、フィルタの種別と当該フィルタに対する設定情報とを含むものであり、更にフィルタの実行順も含も含んでいる（図中において各ブロックを結ぶ矢印が、フィルタの実行順を示す）。
【００４９】
図８に示されるような要求内容を受けて、コントロール層２０は、選択された各フィルタ間をパイプによって接続する（Ｓ１０７）。パイプの実体はメモリ（ＨＤＤ（Hard Disk Drive）も含む）であるが、パイプの両端のフィルタに応じて利用するメモリの種類が異なり、その対応関係は、例えば、複合機１のＨＤＤ内に予め定義されている。
【００５０】
図９は、フィルタとパイプの対応テーブルの例を示す図である。図９の対応テーブル６０によれば、例えば、読取フィルタ３０１と印刷フィルタ３２１や、文書変換フィルタ３１２と印刷フィルタ３２１は、ＤＭＡ（Direct Memory Access）パイプによって接続され、高速にデータが転送される。また、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２とは、スプールパイプによって接続される。スプールパイプとは、ＨＤＤを用いるパイプであり、左側のフィルタから出力されたデータは、右側のフィルタが読み出すまでＨＤＤにスプール（保存）される。それ以外のフィルタ間は、汎用メモリパイプによって接続される。汎用メモリパイプとは、有限サイズのＲＡＭバッファによってデータ転送を行うパイプである。図９に示される対応テーブル６０は、フィルタやパイプの拡張（追加）や削除等に応じて編集可能である。なお、図１における画像パイプ４１は、上記の各種のパイプへのインタフェースを提供するモジュールを抽象的に表現したものである。
【００５１】
したがって、コントロール層２０は、図９の対応テーブル６０に基づいて、各フィルタ間を特定のパイプで接続する。
【００５２】
図１０は、コントロール層によって生成される情報を概念的に示す図である。図１０では、各フィルタ（「Ｆ」）間がパイプ（「Ｐ」）によって接続されている様子が示されている。
【００５３】
続いて、コントロール層２０は、各フィルタに対して並列的に実行要求を出力する（Ｓ１０８）。すなわち、フィルタの呼び出しはフィルタの接続順ではなく、全てのフィルタに対してほぼ同時に行われる。フィルタ間の同期はパイプによってとられるからである。すなわち、コントロール層からの実行要求を受けて、各フィルタは自分の入力側のパイプにデータが入力されるまで待機する。但し、入力フィルタには、入力側にパイプは存在しない。したがって、入力フィルタは実行要求に応じて処理を開始する。
【００５４】
まず、入力フィルタは、入力デバイスよりデータを入力し（図６のＳ１１１）、当該データを、出力側に接続されているパイプに出力する（Ｓ１１２）。なお、データが複数回に分けて入力される場合（複数枚の原稿がスキャンされる場合等）は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると（Ｓ１１３でＹＥＳ）、入力フィルタの処理は終了する。
【００５５】
変換フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１２１）、データに対して画像処理を施す（Ｓ１２２）。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する（Ｓ１２３）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１２４でＹＥＳ）、変換フィルタの処理は終了する。
【００５６】
出力フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１３１）。続いて、読み込まれたデータを出力デバイスを利用して出力する（Ｓ１３２）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１３３でＹＥＳ）、出力フィルタの処理は終了する。
【００５７】
パイプについて更に詳しく説明する。図１１は、パイプを介したフィルタ間のデータの伝達手順を説明するための図である。図中において、フィルタＡ３００ａ及びフィルタＢ３００ｂは、それぞれフィルタを示す。ＤＭＡパイプ４１ａは、図９において説明した、画像パイプ４１の一例としてのＤＭＡパイプである。画像メモリ２５０は、複合機１に備えられた物理的な（ハードウェアとしての）画像メモリである。
【００５８】
フィルタＡ３００ａからフィルタＢ３００ｂにデータ（画像データ）が伝達される場合、フィルタＡ３００ａは、ＤＭＡパイプ４１ａに対して画像データを格納するためのメモリ領域の確保を要求する（Ｓ５１）。ＤＭＡパイプ４１ａは、当該メモリ領域を確保し、そのアドレスをフィルタＡ３００ａに返却する（Ｓ５２）。フィルタＡ３００ａは、返却されたアドレス（画像メモリ２５０）に画像データを書き込み（Ｓ５３）、画像データを書き込んだアドレスをＤＭＡパイプ４１ａに通知する（Ｓ５４）。
【００５９】
フィルタＢ３００ｂは、ＤＭＡパイプ４１ａに対して画像データが書き込まれたアドレスが通知されるまで、当該アドレスの問い合わせを繰り返し（定期的に）行っている（Ｓ５５）。但し、フィルタＢ３００ｂは、当該アドレスが通知されるまで待機していてもよい。当該アドレスがＤＭＡパイプ４１ａに通知されると、フィルタＢ３００ｂは、当該アドレスを取得し、画像メモリ２５０に対する画像データの書き込みを検知する。そこで、フィルタＢ３００ｂは、画像メモリ２５０の当該アドレスより画像データを読み出し（Ｓ５６）、当該画像データに対してフィルタ３００ｂに関する処理を実行する。処理が完了すると、フィルタＢ３００ｂは、当該アドレスに係るメモリ領域の開放をＤＭＡパイプ４１ａに要求する（Ｓ５７）。ＤＭＡパイプ４１ａは、当該メモリ領域を開放する（Ｓ５８）。
【００６０】
このように、フィルタ間のデータの伝達を画像メモリ（共有メモリ）を介して行うことにより、フィルタごとに画像データを格納するためのメモリ領域を確保する必要がなくなり、メモリ効率や処理性能の向上を図ることができる。また、フィルタ間に呼び出し関係が生じないため、フィルタの独立性を保つことができる。
【００６１】
次に、具体的な機能を例として、複合機１内における処理シーケンスを説明する。図１２は、コピー機能を実現する際の処理手順を説明するための図である。
【００６２】
ステップＳ１１において、ローカルＵＩ部１２は、図７に示したオペレーションパネルを介してユーザからコピー要求の入力（フィルタの選択）を受け付ける。
【００６３】
ところで、図７に示されるようにユーザに各フィルタを選択させるといったユーザインタフェースは、ユーザの要求に柔軟に対応できるという反面、コピーのように頻繁に利用する機能については、毎回フィルタの選択によって実行指示を行うのはユーザにとって煩雑である。そこで、例えば、頻繁に利用する機能については、「コピー」ボタンを表示させ、「コピー」ボタンが選択されると、内部的に利用するフィルタが選択されるようにしてもよい。
【００６４】
ユーザによって要求が入力されると、ローカルＵＩ部１２は、入力された要求（選択されたフィルタ）の実行をコントロール層２０に要求する（Ｓ１２）。コントロール層２０は、選択されたフィルタ間をパイプによって接続する（Ｓ１３）。
【００６５】
図１３は、コピー機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図１３において、読取フィルタ３０１と印刷フィルタ３２１とが画像パイプ４１によって接続されている。ステップＳ１３では、このような内容を示す情報が生成される。図９より、ここでの画像パイプ４１は、ＤＭＡパイプが相当する。
【００６６】
続いて、コントロール層２０は、利用する各フィルタ（読取フィルタ３０１及び印刷フィルタ３２１）に対して実行要求を並列的に出力する（Ｓ１４）。
【００６７】
まず、入力フィルタである読取フィルタ３０１は、スキャナ制御部５１に対して画像の読み取りを指示する（Ｓ１５）。当該指示に応じてスキャナ制御部５１の制御のもと、スキャナ（撮像部）によって原稿から画像データが読み取られ、読取フィルタ３０１に出力される。読取フィルタ３０１は、当該画像データを画像パイプ４１に出力する（Ｓ１６）。画像パイプ４１の実体はメモリであるため、画像パイプ４１は、メモリ制御部５３を介して画像データをメモリに書き込む（Ｓ１７）。なお、ここでは、ＤＭＡ転送が行われる。
【００６８】
一方、印刷フィルタ３２１は、入力側に接続されている画像パイプ４１への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ３２１は、画像パイプ４１に対し画像データの読み込みを要求する（Ｓ１８）。画像パイプ４１は、メモリ制御部５３を介して画像データを読み込む（Ｓ１９）。印刷フィルタ３２１は、当該画像データの印刷をプロッタ制御部５２に指示する（Ｓ２０）。当該指示に応じてメモリ制御部５３からプロッタ制御部５２に画像データがＤＭＡ転送され、プロッタ制御部５２の制御のもと、プロッタ（印刷部）によって画像データが印刷される。
【００６９】
次に、プリンタ機能（クライアントＰＣからの印刷機能）について説明する。図１４は、プリンタ機能を実現する際の処理手順を説明するための図である。
【００７０】
ステップＳ２１において、クライアントＰＣからの印刷要求が受け付けられる。当該印刷要求は、まず、ネットワーク制御部５５によって受信され、通信サーバ部１１に通知される。通信サーバ部１１は、プリンタ機能を実現するために必要なフィルタを選択し、選択されたフィルタの実行をコントロール層２０に要求する（Ｓ２２）。コントロール層２０は、選択されたフィルタ間をパイプによって接続する（Ｓ２３）。
【００７１】
図１５は、プリンタ機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図１５において、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２とが画像パイプ４１によって接続されている。また、文書変換フィルタ３１２と印刷フィルタ３２１とも画像パイプ４１によって接続されている。図９より、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２との間の画像パイプ４１は、スプールパイプが相当する。また、文書変換フィルタ３１２と印刷フィルタ３２１との間の画像パイプ４１は、ＤＭＡパイプが相当する。
【００７２】
続いて、コントロール層２０は、利用する各フィルタ（ＰＣ文書受信フィルタ３０５、文書変換フィルタ３１２、及び印刷フィルタ３２１）に対して実行要求を並列的に出力する（Ｓ２４）。
【００７３】
まず、入力フィルタであるＰＣ文書受信フィルタ３０５は、ネットワーク制御部５５に対して印刷データ（ＰＤＬ）の受信を指示する（Ｓ２５）。印刷データが受信されると、ＰＣ文書受信フィルタ３０５は、受信された印刷データを画像パイプ４１に出力する（Ｓ２６）、画像パイプ４１は、メモリ制御部５３を介して印刷データをメモリ（ここではＨＤＤ）に書き込む（Ｓ２７）。
【００７４】
文書変換フィルタ３１２は、入力側に接続されている画像パイプ４１への印刷データの書き込みが検知されると処理を開始する。まず、文書変換フィルタ３１２は、画像パイプ４１に対し印刷データの読み込みを要求する（Ｓ２８）。画像パイプ４１は、メモリ制御部５３を介してＨＤＤより印刷データを読み込み（Ｓ２９）、文書変換フィルタ３１２に出力する。文書変換フィルタ３１２は、当該印刷データを画像データ（ビットマップ）に変換し（Ｓ３０）、当該画像データを画像パイプ４１に出力する（Ｓ３１）。続いて、画像パイプ４１は、メモリ制御部５３を介して画像データをメモリに書き込む（Ｓ３２）。
【００７５】
印刷フィルタ３２１は、入力側に接続されている画像パイプ４１への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ３２１は、画像パイプ４１に対し画像データの読み込みを要求する（Ｓ３３）。画像パイプ４１は、メモリ制御部５３を介して画像データを読み込む（Ｓ３４）。印刷フィルタ３２１は、当該画像データの印刷をプロッタ制御部５２に指示する（Ｓ３５）。当該指示に応じてメモリ制御部５３からプロッタ制御部５２に画像データがＤＭＡ転送され、プロッタ制御部５２の制御のもと、プロッタ（印刷部）によって画像データが印刷される。
【００７６】
なお、他の機能についても同様のシーケンスによって実現される。
【００７７】
上述したように第一の形態における複合機１によれば、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能（アプリケーション）を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、コントロール層２０及びアプリケーションロジック層３０より下位の層について、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【００７８】
また、フィルタ単位で実行条件の設定用のユーザインタフェースが実装されるため、或るフィルタを用いて実現されるアプリケーション間では、当該フィルタのユーザインタフェースを共通的に用いることができ、アプリケーションごとのユーザインタフェースの開発工数を削減することができる。
【００７９】
ところで、第一の実施の形態のようにフィルタ単位でユーザインタフェース（操作画面）が実装される場合、各フィルタのユーザインタフェースに対して共通の修正を行いたいときにフィルタごとに修正を行う必要がある。この場合、フィルタの独立性の担保の代償として開発効率の低減を招くといった問題がある。なお、共通の修正とは、例えば、各フィルタに対して横断的な機能に関するボタンの追加や、ユーザインタフェース全体のデザインの変更等が挙げられる。
【００８０】
但し、複数のフィルタに対するユーザインタフェースを単純に統合してしまっては、フィルタの追加（インストール）や削除（アンインストール）に伴って、統合されたユーザインタフェースを修正しなければならない。そこで、斯かる問題点を解決した例を第二の実施の形態以降において説明する。なお、第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に明記しない点については第一の実施の形態と同様でよい。
【００８１】
図１６は、第二の実施の形態におけるアプリケーションロジック層の構成例を示す図である。図１６では、第二の実施の形態において言及されないフィルタ等については省略されている。図１６に示されるように、第二の実施の形態におけるアプリケーションロジック層３０には、マルチ送信フィルタ３３０が追加されている。
【００８２】
マルチ送信フィルタ３３０は、他のフィルタと同様、図３に示されるような構造を有するフィルタであり、出力フィルタに分類される。但し、マルチ送信フィルタ３３０は、それ自身が出力機能を有するわけではなく、画像データの送信を実現するという点で機能が共通する複数のフィルタ（以下「送信フィルタ」という。）に関するユーザインタフェースの制御を共通的に（一元的に）行う。なお、本実施の形態では、メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、及びフォルダ送信フィルタ３２５が送信フィルタに該当する。
【００８３】
マルチ送信フィルタ３３０のフィルタ設定用ＵＩは、複数の送信フィルタに関して一元的にユーザインタフェース（設定画面）の生成を行い、その設定画面をオペレーションパネル等に表示させる。
【００８４】
マルチ送信フィルタ３３０のフィルタロジックは、設定画面を介して設定された設定値を、各送信フィルタに設定する。
【００８５】
マルチ送信フィルタ３３０の永続記憶領域情報には、送信フィルタ一覧情報３３１が含まれる。送信フィルタ一覧情報３３１は、送信フィルタに該当するフィルタのフィルタ名及び当該フィルタを呼び出すために必要な情報（フィルタの実体のファイル名等）がフィルタごとに記録された情報である。送信フィルタ一覧情報３３１には、例えば、送信フィルタに該当するフィルタが複合機１にインストールされる際に当該フィルタに関する情報が追加され、アンインストールされる際に当該フィルタに関する情報が削除される。
【００８６】
なお、マルチ送信フィルタ３３０によってユーザインタフェースが一元的に制御される各送信フィルタは、フィルタ設定用ＵＩは有していなくてもよい。
【００８７】
以下、第二の実施の形態における処理手順について説明する。図１７は、第二の実施の形態の処理手順を説明するための図である。図１７に示されるように、第二の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ３２３及びフォルダ送信フィルタ３２５がインストールされていることとする。
【００８８】
図１７における各ステップの詳細は、図１８及び図２０を用いて説明する。図１７と図１８又は図２０とのステップ番号は共通する。図１８は、第二の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。ここで、「予め」とは、例えば、各送信フィルタのインストール時であってもよい。
【００８９】
まず、マルチ送信フィルタ３３０のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報３３１に基づいて判定し、判定された各送信フィルタ（メール送信フィルタ３２３、フォルダ送信フィルタ３２５）より、それぞれの実行条件として設定可能な設定項目の情報（設定項目名等）と、それぞれのフィルタ名とを取得する（Ｓ２０１）。
【００９０】
続いて、送信フィルタ３３０のフィルタロジックは、取得された情報に基づいて各送信フィルタの設定項目名とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置（ＨＤＤ（Hard Disk Drive）等）に保存（記録）する（Ｓ２０２）。
【００９１】
図１９は、第二の実施の形態における設定項目名とフィルタ名との対応表の例を示す図である。図１９に示される対応表３３２には、設定項目名として、メール本文、送信時刻、送信先フォルダパスワード等が記録され、それぞれの設定項目が取得された送信フィルタのフィルタ名が記録されている。なお、送信時刻指定には、メール送信フィルタ３２３及びフォルダ送信フィルタ３２５の双方のフィルタ名が対応付けられている。これは、当該設定項目が、双方の送信フィルタより取得されたことを示す。
【００９２】
続いて、図２０は、第二の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。ここでは、例えば、図７に示されるような要求入力画面において、利用する出力フィルタとして、マルチ送信フィルタ３３０が選択されていることとする。
【００９３】
例えば、要求入力画面の要求表示領域５１６においてマルチ送信フィルタ３３０のボタンが選択され、設定ボタン５１７が押下（タッチ）されることにより、ローカルＵＩ部１２よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ３３０のフィルタ設定用ＵＩは、対応表３３２に基づいて表示情報を生成し、ローカルＵＩ部１２に返信する（Ｓ２１１）。ローカルＵＩ部１２は、返信された表示情報に基づいてオペレーションパネル等にユーザインタフェースを表示させる。
【００９４】
図２１は、第二の実施の形態において表示されるユーザインタフェースの例を示す図である。図２１に示されるように、設定画面４１０には、対応表３２２に含まれる全ての設定項目について、設定値を入力させるための領域が配置されている。すなわち、設定画面４１０は、特定の送信フィルタに限定された設定画面ではなく、マルチ送信フィルタ３３０配下の各送信フィルタに対して共通の設定画面として機能する。
【００９５】
続いて、設定画面４１０において、設定項目に対する設定値がユーザによって入力されると、ローカルＵＩ部１２は、設定の対象とされた設定項目名と設定値とをマルチ送信フィルタ３３０のフィルタロジックに通知する（Ｓ２１２）。なお、ここでは、設定画面４１０に表示された全ての設定項目に対して設定値が入力される必要はない。ユーザは、自らが利用する送信手段（メール又はＦＡＸ）に対して必要な設定項目について設定値を入力すればよい。
【００９６】
続いて、マルチ送信フィルタ３３０のフィルタロジックは、入力された各設定値について、その設定項目名と対応表３３２とに基づいて設定先の送信フィルタを判定する（Ｓ２１３）。
【００９７】
設定値が設定された設定項目名のレコードが対応表３３２に含まれている場合（Ｓ２１４でＹｅｓ）、マルチ送信フィルタ３３０のフィルタロジックは、当該設定項目名に対応する送信フィルタに対して当該設定値を設定する（Ｓ２１５）。例えば、メール本文が入力された場合、その値はメール送信フィルタ３２３に設定される。また、送信時刻が設定された場合、その値は、メール送信フィルタ３２３及びフォルダ送信フィルタ３２５の双方に設定される。一方、設定値が設定された設定項目名のレコードが対応表３３２に含まれていない場合（Ｓ２１４でＮｏ）、マルチ送信フィルタ３３０のフィルタロジックは、ローカルＵＩ部１２にエラーを通知する（Ｓ２１６）。
【００９８】
以降、メール送信フィルタ３２３又はフォルダ送信フィルタ３２５が利用される（実行される）場合、各送信フィルタは、設定値に応じて動作する。
【００９９】
上述したように、第二の実施の形態における複合機１によれば、マルチ送信フィルタ３３０により、複数の送信フィルタに対して共通の設定画面が一元的に生成される。また、共通の設定画面において設定された設定値は、マルチ送信フィルタ３３０によって、対応表３３２に基づいてその設定項目に対応する送信フィルタに対して適切に設定される。したがって、送信フィルタごとにユーザインタフェースを実装しなくてもよい。また、設定画面は、複合機１にインストールされている送信フィルタの構成に基づいて動的に生成される。したがって、送信フィルタが新たに追加された場合や削除された場合でも、斯かる構成の変更が設定画面の表示内容に自動的に反映される。
【０１００】
ところで、「宛先」のように、送信フィルタごとにその設定値のデータ形式が異なる設定項目については、設定項目名ではなく、入力された設定値の形式によって設定先の送信フィルタを判定してもよい。以下、斯かる例を第三の実施の形態として説明する。第三の実施の形態において、特に明記しない点については第二の実施の形態と同様でよい。
【０１０１】
図２２は、第三の実施の形態の処理手順を説明するための図である。図２２に示されるように、第三の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、及びフォルダ送信フィルタ３２５がインストールされていることとする。
【０１０２】
図２２における各ステップの詳細は、図２３及び図２５を用いて説明する。図２２と図２３又は図２５とのステップ番号は共通する。図２３は、第三の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
【０１０３】
まず、マルチ送信フィルタ３３０のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報３３１に基づいて判定し、配下の各送信フィルタ（メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、フォルダ送信フィルタ３２５）より、それぞれの宛先のデータ形式（宛先形式）と、それぞれのフィルタ名とを取得する（Ｓ３０１）。
【０１０４】
続いて、送信フィルタ３３０のフィルタロジックは、取得された情報に基づいて宛先形式とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置（ＨＤＤ（Hard Disk Drive）等）に保存（記録）する（Ｓ３０２）。
【０１０５】
図２４は、第三の実施の形態における宛先形式とフィルタ名との対応表の例を示す図である。図２４に示される対応表３３３には、宛先形式として、「全て数字」、「半角英数字中に＠を含む」、「半角英数字中に￥を含む」等が記録され、それぞれの宛先形式が取得された送信フィルタのフィルタ名が記録されている。すなわち、ＦＡＸ送信フィルタ３２４については、ＦＡＸ番号が宛先となるため、その形式は全て数字となる。また、メール送信フィルタ３２３については、メールアドレスが宛先となるため、その形式は、半角英数字中に＠を含むものとなる。更に、フォルダ送信フィルタ３２５については、フォルダのパス名が宛先となるため、その形式は、半角英数字中に￥を含むものとなる。
【０１０６】
続いて、図２５は、第三の実施の形態において送信フィルタに対する宛先の設定処理を説明するためのフローチャートである。図２５が実行される場面は、第二の実施の形態において図２０が実行される場面と同様である。
【０１０７】
例えば、ローカルＵＩ部１２よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ３３０のフィルタ設定用ＵＩは、宛先を設定させるための画面（宛先設定画面）の表示情報を生成し、ローカルＵＩ部１２に返信する（Ｓ３１１）。ローカルＵＩ部１２は、返信された表示情報に基づいてオペレーションパネル等に宛先設定画面を表示させる。なお、宛先設定画面の表示情報は動的に生成されなくてもよく、固定的であってもよい。
【０１０８】
図２６は、第三の実施の形態における宛先設定画面の例を示す図である。図２６に示される宛先設定画面４２０には、複数の宛先の入力が可能とされている。すなわち、追加ボタン４２１が選択（押下）されると、宛先入力欄が一行追加され、更なる宛先の入力が可能となる。
【０１０９】
続いて、宛先設定画面４２０において、宛先がユーザによって入力されると、ローカルＵＩ部１２は、入力された宛先をマルチ送信フィルタ３３０に通知する（Ｓ３１２）。なお、宛先設定画面４２０において設定される宛先は、ＦＡＸ番号、メールアドレス、フォルダのパス名等が混在していてもよい。
【０１１０】
続いて、マルチ送信フィルタ３３０のフィルタロジックは、入力された各宛先についてデータ形式を判別（解析）し（Ｓ３１３）、そのデータ形式と対応表３３３とに基づいて設定先の送信フィルタを判定する（Ｓ３１４）。
【０１１１】
入力された宛先のデータ形式に対応するレコードが対応表３３３に含まれている場合（Ｓ３１５でＹｅｓ）、マルチ送信フィルタ３３０のフィルタロジックは、当該データ形式に対応する送信フィルタに対して当該宛先を設定する（Ｓ３１６）。一方、入力された宛先のデータ形式に対応するレコードが対応表３３３に含まれていない場合（Ｓ３１６でＮｏ）、マルチ送信フィルタ３３０のフィルタロジックは、ローカルＵＩ部１２にエラーを通知する（Ｓ３１８）。
【０１１２】
以降、いずれかの送信フィルタが利用される（実行される）場合、当該送信フィルタは、設定された宛先に画像データを送信する。
【０１１３】
上述したように、第三の実施の形態における複合機１によれば、入力された宛先は、対応表３３３に基づいて、そのデータ形式に応じた送信フィルタに設定される。したがって、複数の送信フィルタに対して共通の宛先設定画面を用いることができる。また、送信フィルタが新たに追加された場合や削除された場合は、対応表３３３が更新されるため、斯かる構成の変更が自動的に処理内容に反映される。
【０１１４】
次に、第四の実施の形態について説明する。第四の実施の形態において、特に明記しない点については第二の実施の形態と同様でよい。
【０１１５】
図２７は、第四の実施の形態の処理手順を説明するための図である。図２７に示されるように、第四の実施の形態では、便宜上、送信フィルタとしてメール送信フィルタ３２３及びＦＡＸ送信フィルタ３２４がインストールされていることとする。
【０１１６】
図２７における各ステップの詳細は、図２８及び図３０を用いて説明する。図２７と図２８又は図３０とのステップ番号は共通する。図２８は、第四の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
【０１１７】
まず、マルチ送信フィルタ３３０のフィルタロジックは、配下の送信フィルタを送信フィルタ一覧情報３３１に基づいて判定し、配下の各送信フィルタ（メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４）より、それぞれが利用する通信手段の種別を識別する情報（通信手段名）と、それぞれのフィルタ名とを取得する（Ｓ４０１）。
【０１１８】
続いて、送信フィルタ３３０のフィルタロジックは、取得された情報に基づいて通信手段とフィルタ名との対応表を生成し、当該対応表を不揮発性の記憶装置（ＨＤＤ（Hard Disk Drive）等）に保存（記録）する（Ｓ４０２）。
【０１１９】
図２９は、第三の実施の形態における通信手段名とフィルタ名との対応表の例を示す図である。図２９に示される対応表３３４には、通信手段として、電話回線及びＬＡＮ回線が記録され、それぞれの通信手段を利用する送信フィルタのフィルタ名が記録されている。すなわち、電話回線を利用するのはＦＡＸ送信フィルタ３２４であり、ＬＡＮ回線を利用するのはメール送信フィルタ３２３である。
【０１２０】
すなわち、第四の実施の形態では、各送信フィルタが利用する通信手段を基準として各送信フィルタが分類される例を示す。
【０１２１】
続いて、図３０は、第四の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。図３０が実行される場面は、第二の実施の形態において図２０が実行される場面と同様である。
【０１２２】
例えば、ローカルＵＩ部１２よりユーザインタフェースの表示情報の提供が要求されると、マルチ送信フィルタ３３０のフィルタ設定用ＵＩは、対応表３３５に基づいて表示情報を生成し、ローカルＵＩ部１２に返信する（Ｓ４１１）。ローカルＵＩ部１２は、返信された表示情報に基づいてオペレーションパネル等にユーザインタフェースを表示させる。
【０１２３】
ここで、対応表３３５は、予めマルチ送信フィルタ３３０が、例えば、自らの永続記憶領域情報として管理している情報であり、設定項目名と通信手段の種別（送信フィルタの分類）との対応が定義されたものである。図３１は、第四の実施の形態における設定項目名と通信手段との対応表の例を示す図である。
【０１２４】
図３１に示されるように、対応表３３５には、設定項目名ごとに、当該設定項目の設定が必要とされる通信手段が記録されている。すなわち、第四の実施の形態では、設定項目は、送信フィルタごとといった細かい単位ではなく通信手段の種別に応じて定まるであろうという考えに基づき、対応表３３５に基づいて設定画面の表示情報が生成される。したがって、送信フィルタの分類の基準は設定項目の共通性に基づいて定めると良い。
【０１２５】
対応表３３５に基づいて表示される設定画面の例を示す。図３２は、第四の実施の形態において表示されるユーザインタフェースの例を示す図である。図３２に示されるように、設定画面４３０には、対応表３３５に含まれる全ての設定項目について、設定値を入力させるための領域が配置されている。
【０１２６】
続いて、設定画面４３０において、設定項目に対する設定値がユーザによって入力されると、ローカルＵＩ部１２は、設定の対象とされた設定項目名と設定値とをマルチ送信フィルタ３３０のフィルタロジックに通知する（Ｓ４１２）。
【０１２７】
続いて、マルチ送信フィルタ３３０のフィルタロジックは、入力された各設定値について、その設定項目名と対応表３３５とに基づいて、対応する通信手段を判定する（Ｓ４１３）。続いて、マルチ送信フィルタ３３０のフィルタロジックは、各設定値について、対応表３３４に基づいて、判定された通信手段に対応する送信フィルタを判定する（Ｓ４１４）。
【０１２８】
判定された通信手段のレコードが対応表３３４に含まれている場合（Ｓ４１５でＹｅｓ）、マルチ送信フィルタ３３０のフィルタロジックは、当該通信手段に対応する送信フィルタに対して当該設定値を設定する（Ｓ４１６）。例えば、メール本文が入力された場合、その値はメール送信フィルタ３２３に設定される。また、送信時刻が設定された場合、その値は、メール送信フィルタ３２３及びＦＡＸ送信フィルタ３２４の双方に設定される。一方、設定値が設定された通信手段のレコードが対応表３３４に含まれていない場合（Ｓ４１５でＮｏ）、マルチ送信フィルタ３３０のフィルタロジックは、ローカルＵＩ部１２にエラーを通知する（Ｓ４１７）。
【０１２９】
上述したように、第四の実施の形態における複合機１によれば、マルチ送信フィルタ３３０により、複数の送信フィルタに対して共通の設定画面が一元的に生成される。また、共通の設定画面において設定された設定値は、マルチ送信フィルタ３３０によって、対応表３３４及び３３５に基づいてその設定項目に対応する送信フィルタに対して適切に設定される。したがって、送信フィルタごとにユーザインタフェースを実装しなくてもよい。また、設定画面は、送信フィルタごとではなく、更に抽象度の高い通信手段（分類）との対応関係を示す対応表３３５に基づいて生成されるため、送信フィルタが追加されたとしても、既存の通信手段が利用される限り変更の必要はない。
【０１３０】
なお、上記では、対応表３３５のみに基づいて設定画面４３０が生成される例について説明したが、対応表３３４及び３３５の双方を用いて設定画面４３０を生成するようにしてもよい。具体的には、対応表３３４に登録されていない通信手段に対応する設定項目については、設定画面４３０に表示させないようにしてもよい。そうすることにより、送信フィルタのインストール状況に応じた操作画面を表示させることができる。
【０１３１】
次に、第二の実施の形態の変形例として、第五の形態を説明する。第五の実施の形態では図２０に対応する処理が異なる。したがって、図２０に対応する処理について説明する。他については第二の実施の形態と同様でよい。すなわち、図２０に対応する処理の前に、図１８の処理が実行されている。
【０１３２】
図３３は、第五の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。
【０１３３】
ステップＳ５１１、Ｓ５１２は、図２０のステップＳ２１１、Ｓ２１２と同じである。
【０１３４】
続いて、マルチ送信フィルタ３３０のフィルタロジックは、入力された各設定値について、その設定項目名を各送信フィルタに通知し、当該設定項目名の設定値の要否を問い合わせる（Ｓ５１３）。続いて、マルチ送信フィルタ３３０のフィルタロジックは、各送信フィルタより問い合わせに対する回答を受信する（Ｓ５１４）。設定値が必要であることを示す回答があった場合（Ｓ５１５でＹｅｓ）、マルチ送信フィルタ３３０のフィルタロジックは、当該回答を行った送信フィルタに対して当該設定値を設定する（Ｓ５１６）。
【０１３５】
問い合わせを行った全ての送信フィルタからの回答に対して処理が完了したら（Ｓ５１７でＹｅｓ）、設定値が必要であることを示す回答が少なくとも一つは有ったか否かを判定する（Ｓ５１８）。斯かる回答が一つも無かった場合（Ｓ５１８でＮｏ）、マルチ送信フィルタ３３０のフィルタロジックは、ローカルＵＩ部１２にエラーを通知する（Ｓ５１９）。
【０１３６】
上述したように、第五の実施の形態における複合機１によれば、第二の実施の形態と同様の効果を得ることができる。なお、マルチ送信フィルタ３３０は、各送信フィルタに対して設定値の要否の問い合わせを行わず、強制的に設定項目名と設定値とを各送信フィルタに通知するようにしてもよい。この場合、各送信フィルタ側で、通知された設定項目名に基づいて、その設定値の要否を判定し、必要な設定値のみを自らに設定すればよい。
【０１３７】
なお、第二から第五の実施の形態においては、送信フィルタを例として説明したが、第二から第五の実施の形態に係る発明の適用範囲は送信フィルタに限定されない。機能的に共通するソフトウェア部品であれば、設定項目の共通性は一般的に高い。したがって、機能的な共通性を有する複数のソフトウェア部品が存在する環境において、当該発明は適切に適用可能である。
【０１３８】
なお、第二から第五の実施の形態において、マルチ送信フィルタ３３０のフィルタロジックは、識別情報取得手段、記録手段、設定手段、分類識別情報取得手段等に対応する。マルチ送信フィルタ３３０のフィルタ設定用ＵＩは、設定画面表示手段に対応する。
【０１３９】
なお、以下に複合機１のハードウェア構成の一例を示す。図３４は、本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。
【０１４０】
複合機１のハードウェアとしては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。
【０１４１】
コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ２２１、ＳＢ２２２、ＭＥＭ−Ｐ２３１、ＭＥＭ−Ｃ２３２、ＨＤＤ（ハードディスクドライブ）２３３、メモリカードスロット２３４、ＮＩＣ（ネットワークインタフェースコントローラ）２４１、ＵＳＢデバイス２４２、ＩＥＥＥ１３９４デバイス２４３、セントロニクスデバイス２４４により構成される。
【０１４２】
ＣＰＵ２１１は、種々の情報処理用のＩＣである。ＡＳＩＣ２１２は、種々の画像処理用のＩＣである。ＮＢ２２１は、コントローラ２０１のノースブリッジである。ＳＢ２２２は、コントローラ２０１のサウスブリッジである。ＭＥＭ−Ｐ２３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ２３２は、複合機１のローカルメモリである。ＨＤＤ２３３は、複合機１のストレージである。メモリカードスロット２３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ２４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル２０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【０１４３】
なお、図１に示されるソフトウェアは、例えば、ＭＥＭ−Ｃ２３２に格納され、ＣＰＵ２１１によって処理されることによりその機能を複合機に実行させる。
【０１４４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１４５】
【図１】第一の実施の形態における複合機のソフトウェア構成例を示す図である。
【図２】パイプ＆フィルタの概念を説明するための図である。
【図３】フィルタの構成要素を説明するための図である。
【図４】本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図５】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【図６】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【図７】オペレーションパネルにおけるフィルタの選択例を示す図である。
【図８】ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。
【図９】フィルタとパイプの対応テーブルの例を示す図である。
【図１０】コントロール層によって生成される情報を概念的に示す図である。
【図１１】パイプを介したフィルタ間のデータの伝達手順を説明するための図である。
【図１２】コピー機能を実現する際の処理手順を説明するための図である。
【図１３】コピー機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。
【図１４】プリンタ機能を実現する際の処理手順を説明するための図である。
【図１５】プリンタ機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。
【図１６】第二の実施の形態におけるアプリケーションロジック層の構成例を示す図である。
【図１７】第二の実施の形態の処理手順を説明するための図である。
【図１８】第二の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
【図１９】第二の実施の形態における設定項目名とフィルタ名との対応表の例を示す図である。
【図２０】第二の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。
【図２１】第二の実施の形態において表示されるユーザインタフェースの例を示す図である。
【図２２】第三の実施の形態の処理手順を説明するための図である。
【図２３】第三の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
【図２４】第三の実施の形態における宛先形式とフィルタ名との対応表の例を示す図である。
【図２５】第三の実施の形態において送信フィルタに対する宛先の設定処理を説明するためのフローチャートである。
【図２６】第三の実施の形態における宛先設定画面の例を示す図である。
【図２７】第四の実施の形態の処理手順を説明するための図である。
【図２８】第四の実施の形態において各送信フィルタが利用される前に予め実行される処理を説明するためのフローチャートである。
【図２９】第三の実施の形態における通信手段名とフィルタ名との対応表の例を示す図である。
【図３０】第四の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。
【図３１】第四の実施の形態における設定項目名と通信手段との対応表の例を示す図である。
【図３２】第四の実施の形態において表示されるユーザインタフェースの例を示す図である。
【図３３】第五の実施の形態における送信フィルタに対する設定値の設定処理を説明するためのフローチャートである。
【図３４】本発明の実施の形態における複合機のハードウェア構成の一例を示す図である
【符号の説明】
【０１４６】
１          複合機
１０        ユーザインタフェース層（フィルタ選択手段の一例）
１１        通信サーバ部
１２        ローカルＵＩ部
２０        コントロール層（フィルタ接続手段の一例）
３０        アプリケーションロジック層
３１        アクティビティ（機能実行手段の一例）
３１ａ      コピーアクティビティ
３１ｂ      プリンタアクティビティ
３１ｃ      マルチ文書アクティビティ
４０        デバイスサービス層
４１        画像パイプ（伝達手段の一例）
４２        データ管理部
５０        デバイス制御層
５１        スキャナ制御部
５２        プロッタ制御部
５３        メモリ制御部
５４        Ｔｅｌ回線制御部
５５        ネットワーク制御部
６０        対応テーブル（対応関係管理手段の一例）
１２１      撮像部
１２２      印刷部
２０１      コントローラ
２０２      オペレーションパネル
２０３      ファクシミリコントロールユニット
２１１      ＣＰＵ
２１２      ＡＳＩＣ
２２１      ＮＢ
２２２      ＳＢ
２３１      ＭＥＭ−Ｐ
２３２      ＭＥＭ−Ｃ
２３３      ＨＤＤ
２３４      メモリカードスロット
２３５      メモリカード
２４１      ＮＩＣ
２４２      ＵＳＢデバイス
２４３      ＩＥＥＥ１３９４デバイス
２４４      セントロニクスデバイス
３０１      読取フィルタ
３０２      保管文書読出フィルタ
３０３      メール受信フィルタ
３０４      ＦＡＸ受信フィルタ
３０５      ＰＣ文書受信フィルタ
３０６      レポートフィルタ
３１１      文書変換フィルタ
３１２      文書変換フィルタ
３２１      印刷フィルタ
３２２      保管文書登録フィルタ
３２３      メール送信フィルタ
３２４      ＦＡＸ送信フィルタ
３２５      フォルダ送信フィルタ
３２６      プレビューフィルタ
３３０      マルチ送信フィルタ
３３１      送信フィルタ一覧情報
３３２、３３３、３３４、３３５  対応表
【図１】
0005037271.tif 000002
【図２】
0005037271.tif 000003
【図３】
0005037271.tif 000004
【図４】
0005037271.tif 000005
【図５】
0005037271.tif 000006
【図６】
0005037271.tif 000007
【図７】
0005037271.tif 000008
【図８】
0005037271.tif 000009
【図９】
0005037271.tif 000010
【図１０】
0005037271.tif 000011
【図１１】
0005037271.tif 000012
【図１２】
0005037271.tif 000013
【図１３】
0005037271.tif 000014
【図１４】
0005037271.tif 000015
【図１５】
0005037271.tif 000016
【図１６】
0005037271.tif 000017
【図１７】
0005037271.tif 000018
【図１８】
0005037271.tif 000019
【図１９】
0005037271.tif 000020
【図２０】
0005037271.tif 000021
【図２１】
0005037271.tif 000022
【図２２】
0005037271.tif 000023
【図２３】
0005037271.tif 000024
【図２４】
0005037271.tif 000025
【図２５】
0005037271.tif 000026
【図２６】
0005037271.tif 000027
【図２７】
0005037271.tif 000028
【図２８】
0005037271.tif 000029
【図２９】
0005037271.tif 000030
【図３０】
0005037271.tif 000031
【図３１】
0005037271.tif 000032
【図３２】
0005037271.tif 000033
【図３３】
0005037271.tif 000034
【図３４】
0005037271.tif 000035