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