(57)【要約】【課題】機能のカスタマイズ又は拡張等を簡便化させることのできる情報処理装置及び情報処理方法の提供を目的とする。【解決手段】本発明は、複数のソフトウェア部品の接続関係に基づく実行順によって前記ソフトウェア部品に処理を実行させる部品制御手段を有し、前記部品制御手段は、前記接続関係に含まれるソフトウェア部品のうち少なくとも一つのソフトウェア部品による処理の実行を待機させ、他のソフトウェア部品による処理が完了した後に待機させているソフトウェア部品に処理を実行させることにより上記課題を解決する。【選択図】図１４
2009110438.tif 000002
【特許請求の範囲】
【請求項１】
複数のソフトウェア部品の接続関係に基づく実行順によって前記ソフトウェア部品に処理を実行させる部品制御手段を有し、
前記部品制御手段は、前記接続関係に含まれるソフトウェア部品のうち少なくとも一つのソフトウェア部品による処理の実行を待機させ、他のソフトウェア部品による処理が完了した後に待機させているソフトウェア部品に処理を実行させることを特徴とする情報処理装置。
【請求項２】
前記部品制御手段は、前記接続関係において並列的な関係にあるソフトウェア部品のうち一方のソフトウェア部品による処理の実行を待機させ、他方のソフトウェア部品による処理が完了した後に前記一方のソフトウェア部品に処理を実行させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記部品制御手段は、前記接続関係に含まれる各ソフトウェア部品に処理を実行させる前に、各ソフトウェア部品に対して処理の待機の要否を示す情報を設定し、
前記ソフトウェア部品は、設定された前記情報に応じて処理の実行を待機することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
処理の待機が必要であることを示す情報が設定されたソフトウェア部品は、最初に実行要求を受けたときには処理の実行を待機し、次に実行要求を受けたときに処理を実行することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記部品制御手段は
読取装置に原稿からの画像データの読み取りを実行させる第一のソフトウェア部品と、前記第一のソフトウェア部品によって読み取られた画像データを記憶装置に保存する第二のソフトウェア部品と、前記第一のソフトウェア部品によって読み取られた画像データに前記第二のソフトウェア部品によって保存された画像データに関連付けられた識別情報を合成して印刷装置に印刷させる第三のソフトウェア部品とに処理を実行させ、前記第二のソフトウェア部品による画像データの保存が完了するまで前記第三のソフトウェア部品による処理の実行を待機させることを特徴とする請求項１乃至４いずれか一項記載の情報処理装置。
【請求項６】
複数のソフトウェア部品の接続関係に基づく実行順によって前記ソフトウェア部品に処理を実行させる部品制御手段を有するコンピュータが実行する情報処理方法であって、
前記部品制御手段は、前記接続関係に含まれるソフトウェア部品のうち少なくとも一つのソフトウェア部品による処理の実行を待機させ、他のソフトウェア部品による処理が完了した後に待機させているソフトウェア部品に処理を実行させることを特徴とする情報処理方法。
【請求項７】
前記部品制御手段は、前記接続関係において並列的な関係にあるソフトウェア部品のうち一方のソフトウェア部品による処理の実行を待機させ、他方のソフトウェア部品による処理が完了した後に前記一方のソフトウェア部品に処理を実行させることを特徴とする請求項６記載の情報処理方法。
【請求項８】
前記部品制御手段は、前記接続関係に含まれる各ソフトウェア部品に処理を実行させる前に、各ソフトウェア部品に対して処理の待機の要否を示す情報を設定し、
前記ソフトウェア部品は、設定された前記情報に応じて処理の実行を待機することを特徴とする請求項６又は７記載の情報処理方法。
【請求項９】
処理の待機が必要であることを示す情報が設定されたソフトウェア部品は、最初に実行要求を受けたときには処理の実行を待機し、次に実行要求を受けたときに処理を実行することを特徴とする請求項８記載の情報処理方法。
【請求項１０】
前記部品制御手段は
読取装置に原稿からの画像データの読み取りを実行させる第一のソフトウェア部品と、前記第一のソフトウェア部品によって読み取られた画像データを記憶装置に保存する第二のソフトウェア部品と、前記第一のソフトウェア部品によって読み取られた画像データに前記第二のソフトウェア部品によって保存された画像データに関連付けられた識別情報を合成して印刷装置に印刷させる第三のソフトウェア部品とに処理を実行させ、前記第二のソフトウェア部品による画像データの保存が完了するまで前記第三のソフトウェア部品による処理の実行を待機させることを特徴とする請求項６乃至９いずれか一項記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関し、特に複数のソフトウェア部品を用いて機能を実行する情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像形成装置では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にＣＰＵを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００３】
例えば、特許文献１に記載された画像形成装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのＡＰＩを利用してアプリケーションを実装することができる。かかる画像形成装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般的に、共通的に利用されるＡＰＩを備えたプラットフォームについては、当該プラットフォームによって提供される機能又はインタフェースの粒度が適切に設計されていないと、アプリケーションの開発効率の向上が期待以上に図れない場合がある。
【０００５】
例えば、当該粒度が小さ過ぎると、単純なサービスを提供するアプリケーションであるにもかかわらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００６】
一方、当該粒度が大き過ぎると、或るインタフェースによって提供されている機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、当該プラットフォーム内を修正しなければならず、開発工数の増加を招いてしまいかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００７】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、当該一部以外の部分については既存のアプリケーションを呼び出すといったようなことは出来ない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、機能のカスタマイズ又は拡張等を簡便化させることのできる情報処理装置及び情報処理方法の提供を目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、本発明は、複数のソフトウェア部品の接続関係に基づく実行順によって前記ソフトウェア部品に処理を実行させる部品制御手段を有し、前記部品制御手段は、前記接続関係に含まれるソフトウェア部品のうち少なくとも一つのソフトウェア部品による処理の実行を待機させ、他のソフトウェア部品による処理が完了した後に待機させているソフトウェア部品に処理を実行させることを特徴とする。
【００１０】
このような情報処理装置では、機能のカスタマイズ又は拡張等を簡便化させることができる。
【発明の効果】
【００１１】
本発明によれば、機能のカスタマイズ又は拡張等を簡便化させることのできる情報処理装置及び情報処理方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、情報処理装置の具体例として画像形成装置を用いて説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。図１では、画像形成装置の具体例として、プリンタ、コピー、スキャナ、又は、ファクス等の複数の機能を一台の筐体において実現する複合機１のハードウェア構成が示されている。
【００１３】
複合機１のハードウェアとしては、コントローラ６０１と、オペレーションパネル６０２と、ファクシミリコントロールユニット（ＦＣＵ）６０３と、撮像部６０４と、印刷部６０５が存在する。
【００１４】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００１５】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ６３２は、複合機１のローカルメモリである。ＨＤＤ６３３は、複合機１のストレージである。メモリカードスロット６３４は、メモリカード６３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【００１６】
図２は、本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。図２に示されるように、複合機１におけるソフトウェアは、アプリケーションメカニズム１０、サービスメカニズム２０、デバイスメカニズム３０、及び運用部４０等のレイヤによって構成される。図２におけるレイヤの上下関係は、レイヤ間の呼び出し関係に基づいている。すなわち、基本的に図中において上にあるレイヤが下のレイヤを呼び出す。なお、図２に示されるソフトウェアは、例えば、ＨＤＤ６３３に記憶されており、実行時にＭＥＭ−Ｐ６３１にロードされてＣＰＵ６１１にその機能を実行させる。
【００１７】
アプリケーションメカニズム１０は、複合機１が提供する機能又は情報（データ）等の資源をユーザに利用させるためのソフトウェア部品（プログラム）群が実装されているレイヤである。本実施の形態では、アプリケーションメカニズム１０に実装される一部のソフトウェア部品を「フィルタ」と呼ぶ。これは、複合機１のジョブを実行する手アプリケーションが、「パイプ＆フィルタ」と呼ばれるソフトウェアアーキテクチャに基づいて構築されることによる。
【００１８】
図３は、パイプ＆フィルタアーキテクチャの概念を説明するための図である。図３において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、例えば、両端のフィルタより参照可能な記録領域によって構成され、フィルタから出力されたデータを次のフィルタに伝達する。
【００１９】
すなわち、本実施の形態における複合機１では、ジョブをドキュメント（データ）に対する「変換」の連続として捉える。複合機１のジョブは、ドキュメントの入力、加工、及び、出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び、「出力」を、それぞれ「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。基本的に、各フィルタは、単独では一つのジョブを実行することはできず、複数のフィルタが、図３に示されるように接続されることにより、一つのジョブを実行するアプリケーションが構築される。
【００２０】
なお、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。従って、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００２１】
図２において、アプリケーションメカニズム１０には、入力フィルタとして、読取フィルタ１１１、保管文書読出フィルタ１１２、メール受信フィルタ１１３、及びファクス受信フィルタ１１４等が示されている。
【００２２】
読取フィルタ１１１は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ１１２は、複合機１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ１１３は、電子メールを受信し、当該電子メールに含まれているデータを出力する。ファクス受信フィルタ１１４は、ファクス受信を制御し、受信された印刷データを出力する。
【００２３】
また、加工フィルタとしては、文書編集フィルタ１２１及び文書変換フィルタ１２２等が示されている。文書編集フィルタ１２１は、入力されたデータに所定の画像変換処理（濃度調整、変倍、回転、及び集約等集）を施し、出力する。文書変換フィルタ１２２は、画像データのデータ形式を変換する。文書変換フィルタ１２２は、例えば、レンダリング処理、すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００２４】
また、出力フィルタとしては、印刷フィルタ１３１、保管文書登録フィルタ１３２、メール送信フィルタ１３３、及びファクス送信フィルタ１３４等が示されている。
【００２５】
印刷フィルタ１３１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ１３２は、入力されたデータを複合機１内の記憶装置、例えば、ＨＤＤ６３３に保存する。メール送信フィルタ１３３は、入力されたデータを電子メールに添付して送信する。ファクス送信フィルタ１３４は、入力されたデータをファクス送信する。
【００２６】
例えば、複合機１における各種機能は、次のようなフィルタの組み合わせにより実現される。図４は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【００２７】
例えば、コピー機能は、読取フィルタ１１１と印刷フィルタ１３１とを接続することにより実現される。読取フィルタ１１１によって原稿より読み取られた画像データを印刷フィルタ１３１によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書編集フィルタ１２１が二つのフィルタの間に挿入される。
【００２８】
スキャンｔｏ  ｅｍａｉｌ機能（スキャンした画像データを電子メールで転送する機能）は、読取フィルタ１１１とメール送信フィルタ１３３とを接続することによって実現される。ファクス送信機能は、読取フィルタ１１１とファクス送信フィルタ１３４とを接続することによって実現される。ファクス受信機能は、ファクス受信フィルタ１１４と印刷フィルタ１３１とを接続することによって実現される。ドキュメントボックス蓄積機能（スキャンした画像データを複合機１内に保存する機能）は、読取フィルタ１１１と保管文書登録フィルタ１３２とを接続することによって実現される。ドキュメントボックス印刷機能（複合機１内に保存されている文書データを印刷する機能）は、保管文書読出フィルタ１０２と印刷フィルタ１３１とを接続することにより実現される。
【００２９】
図４において、例えば、読取フィルタ１１１については５つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。また、複合機１では各フィルタを部品としてアプリケーションを構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たなアプリケーションを容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、アプリケーションメカニズム１０より下位のレイヤについて、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【００３０】
アプリケーションメカニズム１０には、また、「アクティビティ」と呼ばれるソフトウェア部品が存在する。アクティビティは、複数のフィルタをどの順番で接続するかを管理し、その順番でフィルタを実行させることによりジョブを実行するソフトウェア部品であり、一つのアクティビティによって一つのアプリケーションが実現される。
【００３１】
すなわち、フィルタはそれぞれ独立性が高いため、フィルタの組み合わせ（アプリケーション）を動的に構築することが可能である。具体的には、ジョブの実行要求を受け付けるたびに、利用するフィルタと、フィルタの実行順序、及びそれぞれのフィルタの動作条件等をオペレーションパネル６０２を介してユーザに設定させることにより、ユーザ所望の機能を実現するようにしてもよい。
【００３２】
しかし、コピー機能のように頻繁に利用する機能については、毎回フィルタを選択することにより実行指示を行うのはユーザにとって煩雑である。かかる課題を解決するのがアクティビティである。すなわち、フィルタの組み合わせ（接続関係）をアクティビティとして予め定義しておけば、ユーザは、アクティビティを単位として実行対象を選択することができる。選択されたアクティビティは、当該アクティビティに定義された組み合わせに係る各フィルタを自動的に実行する。したがって、アクティビティによって、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
【００３３】
図中には、アクティビティの一例として、コピーアクティビティ１０１、送信アクティビティ１０２、及びファクスアクティビティ１０３等が含まれる。例えば、コピーアクティビティ１０１は、読取フィルタ１１１と、文書編集フィルタ１２１と、印刷フィルタ１３１との組み合わせにより、コピー機能（コピーアプリケーション）を実現する。
【００３４】
なお、基本的に各アクティビティは独立しており、アクティビティ間における依存関係（呼び出し関係）は基本的に存在しない。したがって、アクティビティ単位で追加（インストール）又は削除（アンインストール）が可能である。よって、図２に示されているアクティビティ以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティを作成し、インストールすることができる。
【００３５】
フィルタ及びアクティビティについて更に詳しく説明する。図５は、フィルタの構成要素を説明するための図である。図５に示されるように、各フィルタは、フィルタ設定用ＵＩ、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用ＵＩ、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【００３６】
フィルタ設定用ＵＩは、フィルタの動作条件等を設定させるための画面をオペレーションパネル６０２等に表示させるプログラムである。すなわち、フィルタごとに動作条件が設定される。例えば、読取フィルタ１１１であれば、フィルタ設定用ＵＩは、原稿種類、読取サイズ、解像度等を設定させる画面が相当する。なお、オペレーションパネル６０２が、ＨＴＭＬデータや、スクリプトに基づいて表示制御を行うことが可能であれば、フィルタ設定用ＵＩは、ＨＴＭＬデータやスクリプトであってもよい。
【００３７】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、サービスメカニズム２０等を利用して、フィルタ設定用ＵＩを介して設定された動作条件に応じてフィルタの機能を実現する。例えば、読取フィルタ１１１であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
【００３８】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能（ライブラリ）である。
【００３９】
永続記憶領域情報は、フィルタに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部２３に登録される。
【００４０】
図６は、アクティビティの構成要素を説明するための図である。図６に示されるように、アクティビティは、アクティビティＵＩ、アクティビティロジック、及び永続記憶領域情報等より構成される。
【００４１】
アクティビティＵＩは、アクティビティに関する画面（例えば、アクティビティの動作条件等を設定させるための設定画面）をオペレーションパネル６０２等に表示させるための情報又はプログラムである。
【００４２】
アクティビティロジックは、アクティビティの処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック（例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等）が実装されている。
【００４３】
永続記憶領域情報は、アクティビティに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティのインストール時にデータ管理部２３に登録される。
【００４４】
図２に戻る。サービスメカニズム２０は、アクティビティ又はフィルタ等が利用するプリミティブなサービスを提供するソフトウェア部品や、アプリケーションが機種等のハード的な仕様に対して、非依存となるための仕組みを提供すソフトウェア部品等が実装されるレイヤである。図中において、サービスメカニズム２０には、画像パイプ２１、ＵＩ部２２、データ管理部２３、紙トレースサービス２４、マーキング処理サービス２５、マーキングハンドリングサービス２６、及びリフレッシュコピー埋込プラグイン２７等のソフトウェア部品が含まれる。
【００４５】
画像パイプ２１は、上述したパイプの機能を実現する。すなわち、メモリ領域等を用いて或るフィルタからの出力データを次のフィルタに伝達する。なお、図中において、画像パイプ２１は、一つのブロックによって示されているが、その実体はフィルタ間を接続するパイプの数だけ生成される。
【００４６】
ＵＩ部２２は、オペレーションパネル６０２に表示される操作画面を介して入力されるユーザ要求を解釈し、ユーザ要求に応じた処理制御をアプリケーションメカニズム１０又はサービスメカニズム２０等におけるソフトウェア部品に委譲する。データ管理部２３は、ユーザ情報等、機器内外に保存される各種情報について、保存方法、及び保存場所等を規定する。
【００４７】
紙トレースサービス２４は、複合機１によって画像データが印刷された紙文書を一意に識別するためのＩＤ（以下、「紙ＩＤ」という。）の発行及び管理を行う。マーキング処理サービス２５は、画像データに対してバーコードや地紋パターン等によって各種の情報（例えば、紙ＩＤ）を埋め込む（合成する）ための処理（マーキング処理）の制御を行う。マーキング処理サービス２５は、ページを認識し、ページ単位でマーキング処理の制御を行う。マーキングハンドリングサービス２６は、マーキング処理サービス２５より指定された画像データの指定された位置に、指定された形式（パーコード又は地紋パターン等）によって指定された情報を合成する処理を実行する。リフレッシュコピー埋込プラグイン２７は、リフレッシュコピー機能の利用が指定された場合にコピーアクティビティ１０１より利用されるソフトウェア部品（プラグイン）である。
【００４８】
リフレッシュコピー機能について説明する。図７は、リフレッシュコピー機能を説明するための図である。リフレッシュコピー機能を実現するための処理は、埋込段階（リフレッシュコピー埋込処理）と読取段階（リフレッシュコピー読取処理）とより構成される。図中において、（Ａ）は埋込段階を示し、（Ｂ）は読取段階を示す。
【００４９】
（Ａ）では、紙文書３００が複合機１によってコピーされ紙文書３００ａが出力される様子が示されている。この際、複合機１は、紙文書３００ａの紙ＩＤを示すバーコードｂ１を紙文書３００ａに印字する。また、複合機１は、紙文書３００より読み取られた画像データ３１０と紙ＩＤとを関連付けてＨＤＤ６３３に保存する。
【００５０】
（Ｂ）では、紙文書３００ａが複合機１によってコピーされ紙文書３００ｂが出力される様子が示されている。この際、複合機１は、紙文書３００ａのバーコードｂ１を読み取ることにより紙文書３００の紙ＩＤを識別し、当該紙ＩＤに関連付けられてＨＤＤ６３３に保存されている画像データを印刷用紙に印刷した結果を紙文書３００ｂとして出力する。なお、紙文書３００ｂには、紙文書３００ａとは異なる紙ＩＤを示すバーコードｂ２が印字される。
【００５１】
すなわち、リフレッシュコピー機能における読取段階（Ｂ）では、コピー元の紙文書３００ａから読み取られた画像データではなく、埋込段階において保存されている画像データ３１０が印刷対象となる。したがって、例えば、紙文書３００ａに書き込みｄ１がされている場合であっても、書き込みｄ１は紙文書３００ｂに印字されない。
【００５２】
リフレッシュコピー埋込プラグイン２７は、斯かるリフレッシュコピー機能において、埋込段階を実行するためのソフトウェア部品である。
【００５３】
デバイスメカニズム３０は、複合機１が有するデバイス毎に設けられたデバイスを制御する手段を有する。
【００５４】
運用部４０は、システムの運用管理に関するソフトウェア部品が実装される部分であり、アプリケーションメカニズム１０、サービスメカニズム２０、及びデバイスメカニズム３０より共通に利用される。図中において、運用部４０には、プラグイン管理部４１が含まれている。プラグイン管理部４１は、アクティビティ、フィルタ、及びリフレッシュコピー埋込プラグイン２７等、自由に抜き差し（インストール・アンインストール）可能なソフトウェア部品の情報を管理する。
【００５５】
以上のようなソフトウェア構成を有する複合機１において、本実施の形態ではコピーアクティビティ１０１がリフレッシュコピー埋込プラグイン２７を利用して、リフレッシュコピー埋込処理を実行する例について説明する。
【００５６】
図８は、リフレッシュコピー埋込処理を実現する主なソフトウェア部品の関係を示す図である。同図に示されるように、リフレッシュ埋込処理を実行する場合、コピーアクティビティ１０１は、読取フィルタ１１１、文書編集フィルタ１２１、及び印刷フィルタ１３１だけでなく、保管文書登録フィルタ１３２をも利用する。コピー元の紙文書より読み取られた画像データをＨＤＤ６２２に蓄積（保存）する必要があるからである。また、コピーアクティビティ１０１は、リフレッシュコピー埋込プラグイン２７を利用し、リフレッシュコピー埋込処理に特有の処理をリフレッシュコピー埋込プラグイン２７に委譲する。リフレッシュコピー埋込プラグイン２７は、紙ＩＤの発行を受けるために紙トレースサービス２４を利用する。印刷フィルタ１３１は、印刷対象となる画像データに紙ＩＤを示すバーコードを埋め込むためにマーキング処理サービス２５を利用する。マーキング処理サービス２５は、マーキングハンドリングサービス２６を利用してバーコードの埋込を実現する。
【００５７】
以下、複合機１による処理手順について説明する。図９は、コピーアクティビティの処理手順を説明するためのシーケンス図である。
【００５８】
オペレーションパネル６０２に表示されている操作画面を介して、ユーザによってコピーアクティビティ１０１が実行対象として選択されると、ＵＩ部２２は、コピーアクティビティ１０１に対して起動を指示する（Ｓ１０１）。コピーアクティビティ１０１は、起動指示に応じ、コピーアクティビティ１０１自身の動作条件を格納するためのオブジェクト（以下、「プリファレンスオブジェクト」という。）を生成する（Ｓ１０２）。プリファレンスオブジェクトとは、動作条件を規定するパラメータが属性として定義されたクラスのインスタンスをいい、当該クラスの構成は、アクティビティ及びフィルタごとに異なり得る。
【００５９】
続いて、コピーアクティビティ１０１は、リフレッシュコピー埋込処理の実行の要否に拘わらず自らが利用する各フィルタ（読取フィルタ１１１、文書編集フィルタ１２１、及び印刷フィルタ１３１）のそれぞれに対して、プリファレンスオブジェクトの生成を要求する（Ｓ１０３、Ｓ１０４、Ｓ１０５）。各フィルタは、当該フィルタに固有の属性を有するプリファレンスオブジェクトを生成し、生成されたプリファレンスオブジェクトをコピーアクティビティ１０１に返却する。なお、以上において生成されたコピーアクティビティ１０１及び各フィルタのプリファレンスオブジェクトの属性には既定値が設定されている。続いて、コピーアクティビティ１０１は、自らに定義されているコピーアクティビティ１０１と各フィルタとの接続関係（コピーアクティビティ１０１と各フィルタとの利用関係及び各フィルタの実行順の前後関係）に基づいて、各プリファレンスオブジェクトの間に関連を生成することにより当該接続関係を示す情報（プリファレンスツリー）を構築する（Ｓ１０６）。
【００６０】
図１０は、コピーアクティビティに関するプリファレンスツリーの例を示す図である。同図において、プリファレンスツリーＡは、コピーアクティビティ１０１、読取フィルタ１１１、文書編集フィルタ１２１、印刷フィルタ１３１のそれぞれに対するプリファレンスオブジェクトである、コピープリファレンス１０１ｐ、読取プリファレンス１１１ｐ、文書編集プリファレンス１２１ｐ、及び印刷プリファレンス１３１ｐ等より構成される。
【００６１】
コピープリファレンス１０１ｐは、カラーモード、自動濃度調整、及び変倍率を含む。読取プリファレンス１１１ｐは、原稿種類、読取サイズ、カラーモード、解像度、及び原稿面等のパラメータを含む。文書編集プリファレンス１２１ｐは、自動濃度、手動濃度、変倍種類、画像回転、及び集約等のパラメータを含む。印刷プリファレンス１３１ｐは、カラーモード、用紙選択、印刷面、印刷部数、ソート、ステープル、パンチ、及び排紙先等のパラメータを含む。また、印刷プリファレンス１３１ｐは、マーキング条件１３１ｐを有する。マーキング条件１３１ｐ１は、紙ＩＤの埋め込みに関する条件であり、埋め込みＯＮ／ＯＦＦフラグ、紙ＩＤ、コード種類、及び埋め込み位置等のパラメータより構成される。埋め込みＯＮ／ＯＦＦフラグは、リフレッシュコピー埋込処理の要否（ＯＮ／ＯＦＦ）を示す。したがって、この値がＯＮの場合に以降のパラメータの値が有効となる。紙ＩＤは、埋め込む紙ＩＤの値を示す。コード種類は、どのような形式（ＱＲ、ＤａｔａＭａｔｒｉｘ、又はＰＤＦ４１７等）によって、紙ＩＤを埋め込むかを示す。埋め込み位置は、バーコードの埋込位置を示す。
【００６２】
コピープリファレンス１０１ｐから他のプリファレンスオブジェクトへの関連ｌ１、ｌ２、及びｌ３は、コピーアクティビティ１０１と各フィルタとの利用関係に基づいて生成される。各フィルタ間の関連ｌ４及びｌ５は、フィルタの実行順の前後関係に基づいて生成される。なお、各関連は、例えば、一方のプリファレンスオブジェクトが他方のプリファレンスオブジェクトの識別情報（参照、ポインタ、又はＩＤ等）をメンバ変数によって保持することにより実装すればよい。
【００６３】
起動指示に対応する処理が完了すると（Ｓ１０７）、ＵＩ部２２は、オペレーションパネル６０２に、コピーアクティビティ１０１の操作画面（コピー操作画面）を表示させる。
【００６４】
図１１は、コピー操作画面の表示例を示す図である。図１１において、コピー操作画面５００は、コピーアクティビティ設定領域１０１ｇ、読取条件設定領域１１１ｇ、編集条件設定領域１２１ｇ、及び印刷条件設定領域１３１ｇ等より構成される。各領域は、コピーアクティビティのアクティビティＵＩ（図６参照）又は各フィルタのフィルタ設定用ＵＩ（図５参照）に基づいてＵＩ部２２が表示させる。ユーザは、各領域を操作することにより、コピーアクティビティ１０１又は各フィルタの動作条件を設定する。各領域において設定可能な動作条件のパラメータは、基本的にコピーアクティビティ１０１又は各フィルタに対応するプリファレンスオブジェクトの属性に一致する。
【００６５】
なお、印刷条件設定領域１３１ｇにおいてリフレ設定項目１３１ｇが選択されると、ＵＩ部２２は、マーキング条件設定画面５１０をオペレーションパネル６０２に表示させる。マーキング条件設定画面５１０では、マーキング条件１３１ｐ１を構成するパラメータが設定される。但し、紙ＩＤはユーザが任意に設定することはできない。紙ＩＤは紙トレースサービス２４によって自動的に発行されるものだからである。
【００６６】
例えば、コピーアクティビティ領域１０１ｇにおいて動作条件が設定されると、ＵＩ部２２は、コピーアクティビティ１０１に対して設定内容を通知する（Ｓ１０８）。当該通知に応じ、コピーアクティビティ１０１は、設定内容をコピープリファレンス１０１ｐに反映（設定）する。
【００６７】
同様に、読取条件設定領域１１１ｇ、編集条件設定領域１２１ｇ、又は印刷条件設定領域１３１ｇにおいて動作条件が設定されると、ＵＩ部２２は、対応するフィルタに対して設定内容を通知する（Ｓ１０９、Ｓ１１０、Ｓ１１１）。当該通知に応じ、対応するフィルタは、自らのプリファレンスオブジェクト（読取プリファレンス１１１ｐ、編集プリファレンス１２１ｐ、又は印刷プリファレンス１３１ｐ）に設定内容を反映する。なお、マーキング条件設定画面５１０を介してマーキング条件が設定された場合、ＵＩ部２２から印刷フィルタに対して通知される動作条件の設定内容には、当該マーキング条件の設定内容も含まれている。この場合、印刷プリファレンス１３１ｐは、当該マーキング条件の設定内容をマーキング条件１３１ｐ１に反映し、マーキング条件１３１ｐ１におけるリフレッシュコピー埋込ＯＮ／ＯＦＦフラグの値をＯＮにする。
【００６８】
続いて、オペレーションパネル６０２においてスタートボタンが押下されることにより、ユーザによってジョブの開始指示が入力されると、ＵＩ部２２は、コピーアクティビティ１０１に対してジョブの実行を指示する（Ｓ１１２）。ジョブの実行指示に応じ、コピーアクティビティ１０１は、印刷プリファレンス１３１ｐのマーキング条件１３１ｐ１におけるリフレッシュコピー埋込ＯＮ／ＯＦＦフラグの値を参照することにより、リフレッシュコピー埋込処理の要否を判定する（Ｓ１１３）。以下の処理は、リフレッシュコピー埋込ＯＮ／ＯＦＦフラグの値に応じて分岐するため、それぞれの場合について図を分けて説明する。
【００６９】
まず、リフレッシュコピー埋込ＯＮ／ＯＦＦフラグがＯＦＦの場合（すわわち、ユーザによってマーキング条件の設定が行われなかった場合）について説明する。図１２は、リフレッシュコピー埋込処理が不要な場合の処理手順を説明するためのシーケンス図である。
【００７０】
ステップＳ１１３に続いて、コピーアクティビティ１０１は、プリファレンスツリーＡに基づいて、各フィルタ間を接続する画像パイプ２１を生成する（Ｓ２０１、Ｓ２０２）。ここでは、図１０のプリファレンスツリーＡにおける関連ｌ４に基づいて、読取フィルタ１１１と文書編集フィルタ１２１とを接続する画像パイプ２１ａが生成され、関連ｌ５に基づいて、文書編集フィルタ１２１と印刷フィルタ１３１とを接続する画像パイプ２１ｂが生成される。
【００７１】
続いて、コピーアクティビティ１０１は、プリファレンスツリーＡに基づいて、コピーアクティビティ１０１と各フィルタと画像パイプ２１との接続を行う（Ｓ２０３）。当該接続が形成されることにより、アクティビティ、フィルタ、及び画像パイプ２１によって実行されるジョブにおける処理の流れを表現するツリー構造（以下「ジョブツリー」という。）が構築される。
【００７２】
図１３は、コピーアクティビティに関するジョブツリーの例を示す図である。同図には、コピーアクティビティ１０１、読取フィルタ１１１、文書編集フィルタ１２１、及び印刷フィルタ１３１と、画像パイプ２１ａ及び２１ｂとが示されている。
【００７３】
コピーアクティビティ１０１と各フィルタとの接続（関連ｌ１１、ｌ１２、及びｌ１３）は、プリファレンスツリーＡにおける関連ｌ１、ｌ２、及びｌ３に基づいて生成される。また、読取フィルタ１１１と画像パイプ２１ａとの接続（関連ｌ１４）及び文書編集フィルタ１２１と画像パイプ２１ａとの接続（関連ｌ１５）は、プリファレンスツリーＡにおける関連ｌ４に基づいて生成される。同様に、文書編集フィルタ１２１と画像パイプ２１ｂとの接続（関連ｌ１６）及び印刷フィルタ１３１と画像パイプ２１ｂとの接続（関連ｌ１７）は、プリファレンスツリーＡにおける関連ｌ５に基づいて生成される。
【００７４】
このように、プリファレンスツリーに基づくジョブツリーの構築は、固定的なものでなく汎用的な、また、動的な変換処理として実装されている。
【００７５】
ジョブツリーが構築されると、コピーアクティビティ１０１は、ジョブツリーに基づいてジョブの実行を開始する。まず、コピーアクティビティ１０１は、ジョブツリーにおける末端のフィルタ（当該フィルタの出力先に画像パイプ２１が接続されていないフィルタ）に対して処理の実行要求を行う。通常、末端のフィルタは、出力フィルタであり、ここでは、印刷フィルタ１３１がそれに該当する。したがって、まず、印刷フィルタ１３１に対して実行要求がなされる（Ｓ２０４）。
【００７６】
実行要求を受けた印刷フィルタ１３１は、ジョブツリーにおいて自らの入力先に接続されている画像パイプ２１ｂに画像データの入力を要求する（Ｓ２０５）。画像パイプ２１ｂは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーにおいて自らの入力先に接続されている文書編集フィルタ１２１に対して処理の実行を要求する（Ｓ２０６）。文書編集フィルタ１２１は、ジョブツリーにおいて自らの入力先に接続されている画像パイプ２１ａに画像データの入力を要求する（Ｓ２０７）。画像パイプ２１ａは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーにおいて自らの入力先に接続されている読取フィルタ１１１に対して処理の実行を要求する（Ｓ２０８）。
【００７７】
読取フィルタ１１１は、実行要求に応じ、読取プリファレンス１１１ｐに設定された動作条件に従って撮像部６０４を制御して原稿からの画像データの読み取りを行い（Ｓ２０９）、読み取られた画像データをジョブツリーにおいて自らの出力先に接続されている画像パイプ２１ａに出力する（Ｓ２１０）。画像パイプ２１ａは、画像データの入力に応じ、画像データの入力を要求していた文書編集フィルタ１２１に対して画像パイプ２１ａの状態変化（ここでは、画像データが入力されたこと）を通知する（Ｓ２１１）。当該通知に応じ、文書編集フィルタ１２１は、画像パイプ２１ａより画像データを取得し、取得された画像データに対して文書編集プリファレンス１２１ｐに設定された動作条件に従って、画像データに対する画像処理を行う（Ｓ２１２）。続いて、文書編集フィルタ１２１は、画像処理が施された画像データを自らの出力先に接続されている画像パイプ２１ｂに出力する（Ｓ２１３）。画像パイプ２１ｂは、画像データの入力に応じ、画像データの入力を要求していた印刷フィルタ１３１に対して画像パイプ２１ｂの状態変化（ここでは、画像データが入力されたこと）を通知する（Ｓ２１４）。当該通知に応じ、印刷フィルタ１３１は、画像パイプ２１ｂより画像データを取得し、印刷プリファレンス１３１ｐに設定された動作条件に従って印刷部６０５を制御して取得された画像データの印刷を行う（Ｓ２１５）。続いて、印刷フィルタ１３１は、処理の完了をコピーアクティビティ１０１に通知する（Ｓ２１６）。以上によって、ユーザに要求されたジョブの実行が完了する。なお、複数ページのコピーの場合は、ステップＳ２０５〜Ｓ２１５までがページ数分繰り返される。
【００７８】
続いて、リフレッシュコピー埋込ＯＮ／ＯＦＦフラグがＯＮの場合（すわわち、ユーザによってマーキング条件の設定が行われた場合）について説明する。図１４は、リフレッシュコピー埋込処理が必要な場合の処理手順を説明するためのシーケンス図である。
【００７９】
ステップＳ１１３に続いて、コピーアクティビティ１０１は、プリファレンスツリーＡ（図１０）を参照し、プリファレンスツリーＡがリフレッシュコピー埋込処理を実行するための動作条件情報として十分な構成となっているか否かを判定する（Ｓ３０１）。
【００８０】
ここで、図１０に示されるプリファレンスツリーＡは、通常のコピーを実行するための動作条件を示すものであり、リフレッシュコピー埋込処理を実行するための動作条件としては不足がある。すなわち、図８に示されるように、リフレッシュコピー埋め込み処理を実行する際、コピーアクティビティ１０１は、保管文書登録フィルタ１３２を利用するが、プリファレンスツリーＡには保管文書登録フィルタ１３２に対応するプリファレンスオブジェクトが含まれていない。
【００８１】
そこで、コピーアクティビティ１０１は、保管文書登録フィルタ１３２に対してプリファレンスオブジェクトの生成を要求する（Ｓ３０２）。保管文書登録フィルタ１３２は、当該フィルタに固有の属性を有するプリファレンスオブジェクトを生成し、生成されたプリファレンスオブジェクトをコピーアクティビティ１０１に返却する。続いて、コピーアクティビティ１０１は、プリファレンスツリーＡに保管文書登録フィルタ１３２のプリファレンスオブジェクトを追加する（Ｓ３０３）。これにより、プリファレンスツリーＡは次のように変化する。
【００８２】
図１５は、保管文書登録フィルタが利用対象とされたプリファレンスツリーの例を示す図である。同図において、保管文書登録プリファレンス１３２ｐは、ステップＳ３０２において生成された保管文書登録フィルタ１３２のプリファレンスオブジェクトであり、保管文書名、ファイル名、ユーザ名、及び登録日時等のパラメータを含む。保管文書名は、保存される画像データに対して付与される名前である。
【００８３】
コピーリプファレンス１０１ｐから保管文書登録プリファレンス１３２ｐへの関連ｌ６と、読取プリファレンス１１１ｐと保管文書登録プリファレンス１３２ｐとの間の関連ｌ７とはステップＳ３０３において追加されたものである。以下、構成が変更されたプリファレンスツリーＡをプリファレンスツリーＢと呼ぶ。
【００８４】
続いて、コピーアクティビティ１０１は、リフレッシュコピー埋込プラグイン２７に対して、保管文書プリファレンス１３２ｐへの保管文書名の設定を要求する（Ｓ３０４）。保管文書名は、オペレーションパネル６０２を介してユーザに入力させてもよいが、ここでは、リフレッシュコピー埋込プラグイン２７が自動設定する例を説明する。リフレッシュコピー埋込プラグイン２７は、保管文書名の設定要求に応じ、保管文書登録フィルタ１３２より保管文書登録プリファレンス１３２ｐを取得し（Ｓ３０５、Ｓ３０６）、取得された保管文書登録プリファレンス１３２ｐの保管文書名に、自動的に生成される文書名（例えば、ＲＦＣ−ＤｏｃｕｍｅｎｔＸＸＸ（ＸＸＸは整数））を設定する（Ｓ３０７）。続いて、リフレッシュコピー埋込プラグイン２７は、保管文書名が設定された保管文書登録プリファレンス１３２ｐを保管文書登録フィルタ１３２に設定する（Ｓ３０８）。
【００８５】
リフレッシュコピー埋込プラグイン２７に委譲した保管文書名の設定処理が終了すると（Ｓ３０９）、コピーアクティビティ１０１は、プリファレンスツリーに基づいて、利用するフィルタを判別し、当該各フィルタ（読取フィルタ１１１、文書編集フィルタ１２１、印刷フィルタ１３１、及び保管文書登録フィルタ１３２）に対して優先順位の設定処理を行う（Ｓ３１０）。
【００８６】
ここで、優先順位とは、フィルタ間の実行順の優先順位をいい、本実施の形態ではその値が小さい方が優先順位は高い。優先順位は、フィルタ間の実行順を制御するために用いられる。図１２からも明らかなように、フィルタは、実行要求を受信すると動作を開始し、自分の入力先に接続されている画像パイプ２１に画像データが入力され次第（画像パイプ２１より状態の変化の通知を受け次第）当該フィルタの機能を実現するための処理を開始する（例えば、印刷フィルタ１３１は、ステップＳ２１４において画像パイプ２１より状態変化の通知を受けると直ちに画像パイプ２１ｂより画像データを取得し、その印刷処理を実行する（Ｓ２１５）。
【００８７】
但し、他のフィルタとの処理のタイミングの関係上、或るフィルタについて直ちに処理を開始させたくない場合がある。そこで、本実施の形態では、各フィルタに優先順位の設定を可能としている。優先順位が「１」に設定されたフィルタは、画像データの入力後、直ちに処理を開始する。優先順位が「２」に設定されたフィルタは、画像パイプ２１より状態の変化の通知を受信したとしても直ちに処理を開始せずに、再度アクティビティより実行要求を受信するまで待機する。すなわち、本実施の形態において、優先順位は、処理の待機の要否を示す情報に相当する。
【００８８】
リフレッシュコピー埋込処理を行う場合、印刷フィルタ１３１による処理を待機させたいため、コピーアクティビティ１０１は、印刷フィルタ１３１の優先順位は「２」に設定する（Ｓ３１０−４）。他のフィルタについては、処理を待機させる必要はないため、優先順位は「１」に設定される（Ｓ３１０−１〜Ｓ３１０−３）。なお、印刷フィルタ１３１の処理を待機させる理由については後述する。
【００８９】
各フィルタへの優先順位の設定処理が完了すると、以降はプリファレンスツリーＢに従った処理が実行される。すなわち、コピーアクティビティ１０１は、プリファレンスツリーに基づいて、図１２のＳ２０１及びＳ２０２と同様に各フィルタ間を接続する画像パイプ２１ａ及び２１ｂを生成する（Ｓ３１１、Ｓ３１２）。続いて、コピーアクティビティ１０１は、プリファレンスツリーＢに基づいて、コピーアクティビティ１０１と各フィルタと画像パイプ２１との接続を行うことによりジョブツリーを構築する（Ｓ３１３）。
【００９０】
図１６は、保管文書登録フィルタが利用対象とされたジョブツリーの例を示す図である。図１６中、図１３と同一部分には同一符号を付し、その説明は省略する。
【００９１】
図１６では、新たに関連ｌ２１及びｌ２２に係る接続が形成されている。関連ｌ２１は、プリファレンスツリー（図１５）における関連ｌ６に基づいて生成される。関連ｌ２２は、プリファレンスツリーにおける関連ｌ７に基づいて生成される。当該ジョブツリーにおいて、画像パイプ２１ａの出力側には、二つの関連（関連ｌ１５、関連ｌ２２）を介して二つのフィルタ（文書編集フィルタ１２１、保管文書登録フィルタ１３２）が接続されている。このことは、画像パイプ２１ａ以降において処理が分岐することを示す。すなわち、文書編集フィルタ１２１と印刷フィルタ１３１によって行われる処理と、保管文書登録フィルタ１３２によって行われる処理とは並列的な関係にあることを示す。なお、図１６では、各フィルタが優先順位を有している様子が示されている。
【００９２】
ジョブツリーが構築されると、コピーアクティビティ１０１は、ジョブツリーに基づいてジョブの実行を開始する。まず、コピーアクティビティ１０１は、ジョブツリーにおいて末端のフィルタである、印刷フィルタ１３１及び保管文書登録フィルタ１３２に対して処理の実行要求を行う（Ｓ３１４、Ｓ３１５）。
【００９３】
ステップＳ３１５に応じて実行されるステップＳ３３１〜Ｓ３３３では、図１２におけるステップＳ２０５〜Ｓ２０７と同様の処理により、画像パイプ２１ａに対して画像データの入力要求がなされる。なお、画像パイプ２１ａは、後述するステップＳ３１７において既に読取フィルタ１１１に対して実行要求を行っているため、ステップＳ３３３において画像データの入力要求を受けた際に画像データが入力されていなくても、読取フィルタ１１１に対する実行要求は行わない。
【００９４】
一方、ステップＳ３１４における実行要求に応じ、保管文書登録フィルタ１３２は、ジョブツリーにおいて自らの入力先に接続されている画像パイプ２１ａに画像データの入力を要求する（Ｓ３１６）。画像パイプ２１ａは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーにおいて自らの入力先に接続されている読取フィルタ１１１に対して処理の実行を要求する（Ｓ３１７）。
【００９５】
実行要求に応じ、読取フィルタ１１１は、優先順位の値を確認し、当該値が１に設定されていることから、その機能を実現するための処理を直ちに開始する。すなわち、読取フィルタ１１１は、読取プリファレンス１１１ｐに設定された動作条件に従って撮像部６０４を制御して原稿からの画像データの読み取りを行い（Ｓ３１８）、読み取られた画像データをジョブツリーにおいて自らの出力先に接続されている画像パイプ２１ａに出力する（Ｓ３１９）。画像パイプ２１ａは、画像データの入力に応じ、画像データの入力を要求していた保管文書登録フィルタ１３２と文書編集フィルタ１２１とに対して画像パイプ２１ａの状態変化（ここでは、画像データが入力されたこと）を通知する（Ｓ３２０、Ｓ３３４）。
【００９６】
ステップＳ３２０による通知に応じ、保管文書登録フィルタ１３２は、優先順位の値を確認し、当該値が１に設定されていることから、その機能を実現するための処理を直ちに開始する。すなわち、保管文書登録フィルタ１３２は、画像パイプ２１ａより画像データを取得し、当該画像データをＨＤＤ６３３に保存する（Ｓ３２１）。画像データを保存する際、保管文書登録フィルタ１３２は、当該画像データに対する文書ＩＤを発行し、画像データと文書ＩＤとの関連付けを管理する。続いて、保管文書登録フィルタ１３２は、処理の完了をコピーアクティビティ１０１に通知する（Ｓ３２２）。なお、文書ＩＤとは、複合機１における文書データベース内においてにおいて各文書データ（画像データ）に対して一意なＩＤである。
【００９７】
一方、ステップＳ３３４による通知に応じ、文書編集フィルタ１２１は、優先順位の値を確認し、当該値が１に設定されていることから、画像パイプ２１ａより画像データを取得し、取得された画像データに対して文書編集プリファレンス１２１ｐに設定された動作条件に従って、画像データに対する画像処理を行う（Ｓ３３５）。続いて、文書編集フィルタ１２１は、画像処理が施された画像データを自らの出力先に接続されている画像パイプ２１ｂに出力する（Ｓ３３６）。画像パイプ２１ｂは、画像データの入力に応じ、画像データの入力を要求していた印刷フィルタ１３１に対して画像パイプ２１ｂの状態変化（ここでは、画像データが入力されたこと）を通知する（Ｓ３３７）。当該通知に応じ、印刷フィルタ１３１は、優先順位の値を確認し、当該値が処理の待機が必要であることを示す２に設定されていることから、画像パイプ２１ｂからの画像データの取得を行わず、その機能を実現するための処理を待機する。したがって、ステップＳ３２２において保管文書登録フィルタ１３２よりコピーアクティビティ１０１に対して処理の完了が通知されたときは、印刷フィルタ１３１は待機状態となっている。
【００９８】
ステップＳ３２２に続いて、コピーアクティビティ１０１は、保管文書登録フィルタ１３２より、保存された画像データの文書ＩＤを取得する（Ｓ３４１、Ｓ３４２）。続いて、コピーアクティビティ１０１は、文書ＩＤを引数として、リフレッシュコピー埋込プラグイン２７に対して、動作を待機させている印刷フィルタ１３１のプリファレンスオブジェクト（印刷プリファレンス１３１ｐ）への紙ＩＤの設定処理を要求する（Ｓ３４３）。
【００９９】
リフレッシュコピー埋込プラグイン２７は、文書ＩＤを引数として、紙トレースサービス２４に対して紙ＩＤの発行を要求する（Ｓ３４４）。紙トレースサービス２４は、紙ＩＤを生成し、生成された紙ＩＤをリフレッシュコピー埋込プラグイン２７に返却する（Ｓ３４５）。紙は複合機１の存在と関係なく流通する。したがって、紙一枚一枚の識別を目的とする紙ＩＤは、複合機１内において（ローカルな範囲において）一意ではなく、複合機１外において（グローバルな範囲において）一意となるように生成される。なお、紙トレースサービス２４は、文書ＩＤと、当該文書ＩＤに対応して発行した紙ＩＤとを関連付けて管理しておく。
【０１００】
続いて、リフレッシュコピー埋込プラグイン２７は、保管文書登録フィルタ１３２より保管文書登録プリファレンス１３２ｐを取得し（Ｓ３４６、Ｓ３４７）、取得された保管文書登録プリファレンス１３２ｐの紙ＩＤに、紙トレースサービス２４より発行された紙ＩＤを設定する（Ｓ３４８）。続いて、リフレッシュコピー埋込プラグイン２７は、保管文書名が設定された保管文書登録プリファレンス１３２ｐを保管文書登録フィルタ１３２に設定する（Ｓ３４９）。
【０１０１】
リフレッシュ埋込プラグイン２７による、印刷フィルタ１３１への紙ＩＤの設定処理が完了すると（Ｓ３５０）、コピーアクティビティ１０１は、印刷フィルタ１３１に対して改めて処理の実行要求を行う（Ｓ３５１）。処理の実行要求に応じ、印刷フィルタ１３１は、優先順位の値を確認する。ここで、印刷フィルタ１３１の優先順位は２であり、当該実行要求は、印刷フィルタ１３１にとって２回目の実行要求である。したがって、印刷フィルタ１３１は、このタイミングで画像パイプ２１ｂより画像データを取得し、取得された画像データに対して印刷プリファレンス１３１ｐに設定された動作条件に従って処理を行う（Ｓ３５２）。この際、印刷が行われる前に、印刷フィルタ１３１は印刷プリファレンス１３１ｐに追加されているマーキング条件１３１ｐ１に基づいて、マーキング処理を行う必要があることを判断し、画像データに対するマーキング処理の実行をマーキング処理サービス２５に要求する（Ｓ３５３）。ここではマーキング条件がパラメータとして渡される。マーキング処理サービス２５は、マーキング条件に従ったマーキング処理（ここでは、バーコードの埋め込み）をマーキングハンドリングサービス２６を用いて実行する（Ｓ３５４、Ｓ３５５）。マーキング処理サービス２５によるマーキング処理が完了すると（Ｓ３５６）、印刷フィルタ１３１は、印刷プリファレンス１３１ｐに設定された動作条件に従って印刷部６０５を制御し、バーコードが埋め込まれた（合成された）画像データの印刷を行う。続いて、印刷フィルタ１３１は、処理の完了をコピーアクティビティ１０１に通知する（Ｓ３５７）。なお、複数ページのコピーの場合は、ステップＳ３１６及びＳ３３１〜Ｓ３５６までがページ数分繰り返される。
【０１０２】
このように、図１４においては、印刷フィルタ１３１により処理の実行は待機させられる。これは、ステップＳ３３７においては、印刷プリファレンス１３１ｐに対して紙ＩＤが設定されていないことによる。すなわち、コピー結果として出力される紙文書に付加されるバーコードは紙ＩＤを示すものであるため、その紙ＩＤが確定していなければ、印刷処理を開始することはできない。そして、紙ＩＤは、文書ＩＤに対応して発行されるものであり、文書ＩＤは、画像データの保存に伴って発行されるものである。そこで、紙ＩＤが発行されるまで印刷フィルタ１３１の処理を待機させているのである。
【０１０３】
なお、画像データが保存される前に空のレコードに対して文書ＩＤ及び紙ＩＤを発行させ、当該紙ＩＤをステップＳ３３７より前に印刷プリファレンス１３１ｐに設定するようにすれば、ステップＳ３３７の通知に応じて印刷フィルタ１３１は処理を開始することはできる。但し、このようなシーケンスでは、保管文書登録フィルタ１３２が画像データの保存処理に失敗した場合に、存在しない画像データに関連付けられた紙ＩＤがコピー結果としての紙文書に印刷されることになる。そうすると、リフレッシュコピー機能の読取段階を正常に実行することができなくなってしまう。斯かる観点からも、図１４に示されるように、画像データの保存が正常に行われるまで印刷を待機させるというシーケンスは合理的である。
【０１０４】
上述したように本実施の形態における複合機１によれば、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能（アプリケーション）を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。
【０１０５】
また、フィルタの組み合わせによって構成される機能をアクティビティとして予め定義しておくことにより、より簡便な操作で、フィルタの組み合わせによる機能を利用することができる。
【０１０６】
更に、各フィルタの実行のタイミングを制御する（処理の実行を待機させる）ことができるため、本実施の形態における印刷フィルタ１３１及び保管文書登録フィルタ１３２といったように、フィルタの接続関係において並列的な関係にあるフィルタの実行のタイミングについても適切に同期制御を行うことができる。また、処理の実行の待機の要否を示す優先順位を各フィルタに設定し、各フィルタに処理の待機の要否を判断させるため、同期制御のためにアクティビティが実行すべき処理内容を簡便化することができる。このことは、フィルタ間の処理のタイミングの同期制御のための実装作業が簡便化されることを意味する。
【０１０７】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。
【図２】本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。
【図３】パイプ＆フィルタアーキテクチャの概念を説明するための図である。
【図４】本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図５】フィルタの構成要素を説明するための図である。
【図６】アクティビティの構成要素を説明するための図である。
【図７】リフレッシュコピー機能を説明するための図である。
【図８】リフレッシュコピー埋込処理を実現する主なソフトウェア部品の関係を示す図である。
【図９】コピーアクティビティの処理手順を説明するためのシーケンス図である。
【図１０】コピーアクティビティに関するプリファレンスツリーの例を示す図である。
【図１１】コピー操作画面の表示例を示す図である。
【図１２】リフレッシュコピー埋込処理が不要な場合の処理手順を説明するためのシーケンス図である。
【図１３】コピーアクティビティに関するジョブツリーの例を示す図である。
【図１４】リフレッシュコピー埋込処理が必要な場合の処理手順を説明するためのシーケンス図である。
【図１５】保管文書登録フィルタが利用対象とされたプリファレンスツリーの例を示す図である。
【図１６】保管文書登録フィルタが利用対象とされたジョブツリーの例を示す図である。
【符号の説明】
【０１０９】
１          複合機
１０        アプリケーションメカニズム
２０        サービスメカニズム
２１        画像パイプ
２２        ＵＩ部
２３        データ管理部
２４        紙トレースサービス
２５        マーキング処理サービス
２６        マーキングハンドリングサービス
２７        リフレッシュコピー埋込プラグイン
３０        デバイスメカニズム
４０        運用部
４１        プラグイン管理部
１０１      コピーアクティビティ
１０２      送信アクティビティ
１０３      ファクスアクティビティ
１１１      読取フィルタ
１１２      保管文書読出フィルタ
１１３      メール受信フィルタ
１１４      ファクス受信フィルタ
１２１      文書編集フィルタ
１２２      文書変換フィルタ
１３１      印刷フィルタ
１３２      保管文書登録フィルタ
１３３      メール送信フィルタ
１３４      ファクス送信フィルタ
６０４      撮像部
６０５      印刷部
６０１      コントローラ
６０２      オペレーションパネル
６０３      ファクシミリコントロールユニット
６１１      ＣＰＵ
６１２      ＡＳＩＣ
６２１      ＮＢ
６２２      ＳＢ
６３１      ＭＥＭ−Ｐ
６３２      ＭＥＭ−Ｃ
６３３      ＨＤＤ
６３４      メモリカードスロット
６３５      メモリカード
６４１      ＮＩＣ
６４２      ＵＳＢデバイス
６４３      ＩＥＥＥ１３９４デバイス
６４４      セントロニクスデバイス
【図１】
2009110438.tif 000003
【図２】
2009110438.tif 000004
【図３】
2009110438.tif 000005
【図４】
2009110438.tif 000006
【図５】
2009110438.tif 000007
【図６】
2009110438.tif 000008
【図７】
2009110438.tif 000009
【図８】
2009110438.tif 000010
【図９】
2009110438.tif 000011
【図１０】
2009110438.tif 000012
【図１１】
2009110438.tif 000013
【図１２】
2009110438.tif 000014
【図１３】
2009110438.tif 000015
【図１４】
2009110438.tif 000016
【図１５】
2009110438.tif 000017
【図１６】
2009110438.tif 000018