(57)【要約】【課題】画像に埋め込まれた情報の処理機能のカスタマイズ性を向上させることのできる画像形成装置を提供することを目的とする。【解決手段】画像データに関してジョブの一部を構成する処理を実行するソフトウェア部品を接続してジョブを実行する画像形成装置であって、前記ソフトウェア部品の一つに基づいて、他の前記ソフトウェア部品より出力された画像データに対する埋め込み情報の抽出又は埋め込みに関する埋め込み情報処理を制御する埋め込み情報処理制御手段と、前記埋め込み情報制御手段からの指示に応じて、前記画像データに対する埋め込み情報処理を実行する埋め込み情報処理サービス手段とを有し、前記埋め込み情報処理サービス手段は、前記埋め込み情報処理の種類に対して共通の処理を実行する共通サービス手段と、前記種類に応じた固有の処理を行う一つ以上の固有サービス手段とを有することにより上記課題を解決する。【選択図】図８
2010074434.tif 000002
【特許請求の範囲】
【請求項１】
画像データに関してジョブの一部を構成する処理を実行するソフトウェア部品を接続してジョブを実行する画像形成装置であって、
前記ソフトウェア部品の一つに基づいて、他の前記ソフトウェア部品より出力された画像データに対する埋め込み情報の抽出又は埋め込みに関する埋め込み情報処理を制御する埋め込み情報処理制御手段と、
前記埋め込み情報制御手段からの指示に応じて、前記画像データに対する埋め込み情報処理を実行する埋め込み情報処理サービス手段とを有し、
前記埋め込み情報処理サービス手段は、前記埋め込み情報処理の種類に対して共通の処理を実行する共通サービス手段と、前記種類に応じた固有の処理を行う一つ以上の固有サービス手段とを有し、
前記共通サービス手段は、前記埋め込み情報制御手段からの指示を受け付け、
前記固有サービス手段は、前記画像データに対して前記埋め込み処理を実行することを特徴とする画像形成装置。
【請求項２】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理に関してユーザに設定させる設定項目の構成情報を前記共通サービス手段に問い合わせ、
前記共通サービス手段は、該問い合わせに応じた応答を前記埋め込み情報処理の種類に応じた固有サービス手段に実行させることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理に関してユーザに設定させる設定項目の初期値を前記共通サービス手段に問い合わせ、
前記共通サービス手段は、該問い合わせに応じた応答を前記埋め込み情報処理の種類に応じた固有サービス手段に実行させることを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理サービス手段が処理可能な画像データの形式を前記共通サービス手段に問い合わせ、該問い合わせに応じた応答に基づいて、前記他の前記ソフトウェア部品より出力される画像データの処理の可否を判定し、
前記共通サービス手段は、該問い合わせに応じ、前記固有サービス手段に処理可能な画像形式を問い合わせることを特徴とする請求項１乃至３いずれか一項記載の画像形成装置。
【請求項５】
前記ソフトウェア部品を接続して画像データに対する埋め込み情報の抽出又は埋め込みに関するジョブである埋め込み情報ジョブを制御する埋め込み情報ジョブ制御手段を有し、
前記埋め込み情報ジョブ制御手段は、前記埋め込み情報ジョブの種類に対して共通の処理を実行する共通手段と、前記埋め込み情報ジョブの種類に応じた固有の処理を行う一つ以上の固有手段とを有し、
前記固有手段は、前記埋め込み情報ジョブの種類に応じて前記ソフトウェア部品の接続関係を生成することを特徴とする請求項１乃至４いずれか一項記載の画像形成装置。
【請求項６】
画像データに関してジョブの一部を構成する処理を実行するソフトウェア部品を接続してジョブを実行する画像形成装置を、
前記ソフトウェア部品の一つに基づいて、他の前記ソフトウェア部品より出力された画像データに対する埋め込み情報の抽出又は埋め込みに関する埋め込み情報処理を制御する埋め込み情報処理制御手段と、
前記埋め込み情報制御手段からの指示に応じて、前記画像データに対する埋め込み情報処理を実行する埋め込み情報処理サービス手段とをして機能させ、
前記埋め込み情報処理サービス手段は、前記埋め込み情報処理の種類に対して共通の処理を実行する共通サービス手段と、前記種類に応じた固有の処理を行う一つ以上の固有サービス手段とを有し、
前記共通サービス手段は、前記埋め込み情報制御手段からの指示を受け付け、
前記固有サービス手段は、前記画像データに対して前記埋め込み処理を実行することを特徴とするプログラム。
【請求項７】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理に関してユーザに設定させる設定項目の構成情報を前記共通サービス手段に問い合わせ、
前記共通サービス手段は、該問い合わせに応じた応答を前記埋め込み情報処理の種類に応じた固有サービス手段に実行させることを特徴とする請求項６記載のプログラム。
【請求項８】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理に関してユーザに設定させる設定項目の初期値を前記共通サービス手段に問い合わせ、
前記共通サービス手段は、該問い合わせに応じた応答を前記埋め込み情報処理の種類に応じた固有サービス手段に実行させることを特徴とする請求項７記載のプログラム。
【請求項９】
前記埋め込み情報処理制御手段は、前記埋め込み情報処理サービス手段が処理可能な画像データの形式を前記共通サービス手段に問い合わせ、該問い合わせに応じた応答に基づいて、前記他の前記ソフトウェア部品より出力される画像データの処理の可否を判定し、
前記共通サービス手段は、該問い合わせに応じ、前記固有サービス手段に処理可能な画像形式を問い合わせることを特徴とする請求項６乃至８いずれか一項記載のプログラム。
【請求項１０】
前記ソフトウェア部品を接続して画像データに対する埋め込み情報の抽出又は埋め込みに関するジョブである埋め込み情報ジョブを制御する埋め込み情報ジョブ制御手段を有し、
前記埋め込み情報ジョブ制御手段は、前記埋め込み情報ジョブの種類に対して共通の処理を実行する共通手段と、前記埋め込み情報ジョブの種類に応じた固有の処理を行う一つ以上の固有手段とを有し、
前記固有手段は、前記埋め込み情報ジョブの種類に応じて前記ソフトウェア部品の接続関係を生成することを特徴とする請求項６乃至９いずれか一項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに関してジョブの一部を構成する処理を実行するソフトウェア部品を接続してジョブを実行する画像形成装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、パイプ＆フィルタアーキテクチャを採用し、フィルタと呼ばれるソフトウェアコンポーネントの組み合わせによって構成されるアクティビティと呼ばれるソフトウェアコンポーネントによって、ジョブを実行するアプリケーションが実現される画像形成装置が開示されている。このような画像形成装置によれば、機能のカスタマイズ又は拡張等を簡便化させることができる。
【０００３】
他方において、画像形成装置の中には、スキャンされた原稿画像に埋め込まれている情報を抽出し、当該原稿に関する情報を解析する機能（例えば、原稿の改竄検知や流通経路の追跡（出力者検知）等。以下、総称して「マーキング検知機能」という。）を備えているものがある（例えば、特許文献２）。
【特許文献１】特開２００７−３２５２５１号公報
【特許文献２】特開２００６−２０２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載された画像形成装置において、マーキング検知機能を実現する場合を考える。この場合、入力フィルタによって入力された画像より情報を抽出し、解析処理を行い、その解析結果を出力するフィルタ（以下、「マーキング検知フィルタ」という。）を作成すればよい。ここで、改竄検知と、出力者検知とでは、情報の抽出処理、解析処理、解析結果の出力形態はそれぞれ異なるため、原稿画像に埋め込まれた情報の用途に応じてマーキング検知フィルタを作成する必要がある。したがって、改竄検知と出力者検知との双方の機能を実装する必要がある場合、それぞれに対応したマーキング検知フィルタ（例えば、改竄検知フィルタ、出力者検知フィルタ）を作成する必要がある。
【０００５】
また、入力フィルタと各マーキング検知フィルタとの組み合わせごとにアクティビティを作成すればよい。例えば、改竄検知フィルタを利用する改竄検知アクティビティと、出力者検知フィルタを利用する出力者検知アクティビティとの二つのアクティビティを作成すればよい。
【０００６】
このような開発作業は、特許文献１以前の技術に対しては非常に簡便である。しかし、各マーキングフィルタ、及び各マーキングフィルタを利用する各アクティビティについて多くの共通部分が見受けられることに鑑みれば、カスタマイズ性を更に向上させる余地が有ると考えられる。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、画像に埋め込まれた情報の処理機能のカスタマイズ性を向上させることのできる画像形成装置及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、本発明は、画像データに関してジョブの一部を構成する処理を実行するソフトウェア部品を接続してジョブを実行する画像形成装置であって、前記ソフトウェア部品の一つに基づいて、他の前記ソフトウェア部品より出力された画像データに対する埋め込み情報の抽出又は埋め込みに関する埋め込み情報処理を制御する埋め込み情報処理制御手段と、前記埋め込み情報制御手段からの指示に応じて、前記画像データに対する埋め込み情報処理を実行する埋め込み情報処理サービス手段とを有し、前記埋め込み情報処理サービス手段は、前記埋め込み情報処理の種類に対して共通の処理を実行する共通サービス手段と、前記種類に応じた固有の処理を行う一つ以上の固有サービス手段とを有し、前記共通サービス手段は、前記埋め込み情報制御手段からの指示を受け付け、前記固有サービス手段は、前記画像データに対して前記埋め込み処理を実行することを特徴とする。
【０００９】
このような画像形成装置では、画像に埋め込まれた情報の処理機能のカスタマイズ性を向上させることができる。
【発明の効果】
【００１０】
本発明によれば、画像に埋め込まれた情報の処理機能のカスタマイズ性を向上させることのできる画像形成装置及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、情報処理装置の具体例として画像形成装置を用いて説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。図１では、画像形成装置の具体例として、プリンタ、コピー、スキャナ、又は、ファクス等の複数の機能を一台の筐体において実現する複合機１のハードウェア構成が示されている。
【００１２】
複合機１のハードウェアとしては、コントローラ６０１と、オペレーションパネル６０２と、ファクシミリコントロールユニット（ＦＣＵ）６０３と、撮像部６０４と、印刷部６０５が存在する。
【００１３】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００１４】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ６３２は、複合機１のローカルメモリである。ＨＤＤ６３３は、複合機１のストレージである。メモリカードスロット６３４は、メモリカード６３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【００１５】
図２は、本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。図２に示されるように、複合機１におけるソフトウェアは、アプリケーションメカニズム１０、サービスメカニズム２０、デバイスメカニズム３０、及び運用部４０等のレイヤによって構成される。図２におけるレイヤの上下関係は、レイヤ間の呼び出し関係に基づいている。すなわち、基本的に図中において上にあるレイヤが下のレイヤを呼び出す。図２に示されるソフトウェアは、例えば、ＨＤＤ６３３に記憶されており、実行時にＭＥＭ−Ｐ６３１にロードされてＣＰＵ６１１にその機能を実行させる。
【００１６】
アプリケーションメカニズム１０は、複合機１が提供する機能又は情報（データ）等の資源をユーザに利用させるためのソフトウェア部品（プログラム）群が実装されているレイヤである。本実施の形態では、アプリケーションメカニズム１０に実装される一部のソフトウェア部品を「フィルタ」と呼ぶ。これは、複合機１のジョブを実行するアプリケーションが、「パイプ＆フィルタ」と呼ばれるソフトウェアアーキテクチャに基づいて構築されることによる。
【００１７】
図３は、パイプ＆フィルタアーキテクチャの概念を説明するための図である。図３において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、例えば、両端のフィルタより参照可能な記録領域によって構成され、フィルタから出力されたデータを次のフィルタに伝達する。
【００１８】
すなわち、本実施の形態における複合機１では、ジョブをドキュメント（データ）に対する「変換」の連続として捉える。複合機１のジョブは、ドキュメントの入力、加工、及び、出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び、「出力」を、それぞれ「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。基本的に、各フィルタは、単独では一つのジョブを実行することはできず、それぞれジョブの一部を実行する複数のフィルタが、図３に示されるように接続されることにより、一つのジョブを実行するアプリケーションが構築される。
【００１９】
なお、各フィルタは、フィルタフレームワーク１１０上で動作可能なように実装される。具体的には、各フィルタは、フィルタフレームワーク１１０において規定されたインタフェースを備える必要がある。フィルタフレームワーク１１０は、斯かるインタフェースを介して、各フィルタの実行手順等を制御する。
【００２０】
また、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。従って、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００２１】
図２において、アプリケーションメカニズム１０には、入力フィルタとして、読取フィルタ１１１、保管文書読出フィルタ１１２、メール受信フィルタ１１３、及びファクス受信フィルタ１１４等が示されている。
【００２２】
読取フィルタ１１１は、撮像部６０４（スキャナ）による画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ１１２は、複合機１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ１１３は、電子メールを受信し、当該電子メールに含まれているデータを出力する。ファクス受信フィルタ１１４は、ファクス受信を制御し、受信された印刷データを出力する。
【００２３】
また、加工フィルタとしては、文書編集フィルタ１２１及び文書変換フィルタ１２２等が示されている。文書編集フィルタ１２１は、入力されたデータに所定の画像変換処理（変倍、回転、及び集約等）を施し、出力する。文書変換フィルタ１２２は、画像データのデータ形式を変換する。文書変換フィルタ１２２は、例えば、レンダリング処理、すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００２４】
また、出力フィルタとしては、印刷フィルタ１３１、保管文書登録フィルタ１３２、メール送信フィルタ１３３、ファクス送信フィルタ１３４、及びマーキングフィルタ１３５等が示されている。
【００２５】
印刷フィルタ１３１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ１３２は、入力されたデータを複合機１内の記憶装置、例えば、ＨＤＤ６３３に保存する。メール送信フィルタ１３３は、入力されたデータを電子メールに添付して送信する。ファクス送信フィルタ１３４は、入力されたデータをファクス送信する。マーキングフィルタ１３５は、入力された画像データに対する埋め込み情報の抽出処理又埋め込み処理を制御し、その処理結果を出力する。ここで、埋め込み情報とは、地紋やバーコード等の形式によって、画像の描画要素とは別に、画像に対して埋め込まれる（又は埋め込まれた）情報をいう。埋め込み情報の用途は所定のものに限定されないが、例えば、紙文書の改竄の検知や、紙文書の出力者（印刷指示したユーザ又はコピー指示したユーザ）の検知（出力者検知）等が挙げられる。
【００２６】
例えば、複合機１における各種機能は、次のようなフィルタの組み合わせにより実現される。図４は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【００２７】
例えば、コピー機能は、読取フィルタ１１１と印刷フィルタ１３１とを接続することにより実現される。読取フィルタ１１１によって原稿より読み取られた画像データを印刷フィルタ１３１によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書編集フィルタ１２１が二つのフィルタの間に挿入される。
【００２８】
スキャンｔｏ  ｅｍａｉｌ機能（スキャンした画像データを電子メールで転送する機能）は、読取フィルタ１１１とメール送信フィルタ１３３とを接続することによって実現される。ファクス送信機能は、読取フィルタ１１１とファクス送信フィルタ１３４とを接続することによって実現される。ファクス受信機能は、ファクス受信フィルタ１１４と印刷フィルタ１３１とを接続することによって実現される。ドキュメントボックス蓄積機能（スキャンした画像データを複合機１内に保存する機能）は、読取フィルタ１１１と保管文書登録フィルタ１３２とを接続することによって実現される。ドキュメントボックス印刷機能（複合機１内に保存されている文書データを印刷する機能）は、保管文書読出フィルタ１０２と印刷フィルタ１３１とを接続することにより実現される。
【００２９】
図４において、例えば、読取フィルタ１１１については５つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。また、複合機１では各フィルタを部品としてアプリケーションを構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たなアプリケーションを容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、アプリケーションメカニズム１０より下位のレイヤについて、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【００３０】
アプリケーションメカニズム１０には、また、「アクティビティ」と呼ばれるソフトウェア部品が存在する。アクティビティは、複数のフィルタをどの順番で接続するかを管理し、その順番でフィルタを実行させることによりジョブを実行するソフトウェア部品であり、一つのアクティビティによって一つのアプリケーションが実現される。
【００３１】
すなわち、フィルタはそれぞれ独立性が高いため、フィルタの組み合わせ（接続関係）を動的に構築することが可能である。具体的には、ジョブの実行要求を受け付けるたびに、利用するフィルタと、フィルタの実行順序、及びそれぞれのフィルタの動作条件等をオペレーションパネル６０２を介してユーザに設定させることにより、ユーザ所望の機能を実現するようにしてもよい。
【００３２】
しかし、コピー機能のように頻繁に利用する機能については、毎回フィルタを選択することにより実行指示を行うのはユーザにとって煩雑である。かかる課題を解決するのがアクティビティである。すなわち、フィルタの組み合わせ（接続関係）をアクティビティとして予め定義しておけば、ユーザは、アクティビティを単位として実行対象を選択することができる。選択されたアクティビティは、当該アクティビティに定義された組み合わせに係る各フィルタを自動的に実行する。したがって、アクティビティによって、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
【００３３】
図中には、アクティビティの一例として、コピーアクティビティ１０１、送信アクティビティ１０２、ファクスアクティビティ１０３、及びマーキングアクティビティ１０４等が含まれる。例えば、コピーアクティビティ１０１は、読取フィルタ１１１と、文書編集フィルタ１２１と、印刷フィルタ１３１との組み合わせにより、コピージョブ（コピーアプリケーション）を実現する。マーキングアクティビティ１０４については後述する。
【００３４】
なお、各アクティビティは、アクティビティフレームワーク１００上で動作可能なように実装される。具体的には、各アクティビティは、アクティビティフレームワーク１００において規定されたインタフェースを備える必要がある。アクティビティフレームワーク１００は、斯かるインタフェースを介して、各アクティビティの実行手順等を制御する。
【００３５】
また、基本的に各アクティビティは独立しており、アクティビティ間における依存関係（呼び出し関係）は基本的に存在しない。したがって、アクティビティ単位で追加（インストール）又は削除（アンインストール）が可能である。よって、図２に示されているアクティビティ以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティを作成し、インストールすることができる。
【００３６】
フィルタ及びアクティビティについて更に詳しく説明する。図５は、フィルタの構成要素を説明するための図である。図５に示されるように、各フィルタは、フィルタ設定用ＵＩ、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用ＵＩ、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【００３７】
フィルタ設定用ＵＩは、フィルタの動作条件等を設定させるための画面をオペレーションパネル６０２等に表示させるプログラムである。すなわち、フィルタごとに動作条件が設定される。例えば、読取フィルタ１１１であれば、フィルタ設定用ＵＩは、原稿種類、読取サイズ、解像度等を設定させる画面が相当する。なお、オペレーションパネル６０２が、ＨＴＭＬデータや、スクリプトに基づいて表示制御を行うことが可能であれば、フィルタ設定用ＵＩは、ＨＴＭＬデータやスクリプトであってもよい。
【００３８】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、サービスメカニズム２０等を利用して、フィルタ設定用ＵＩを介して設定された動作条件に応じてフィルタの機能を実現する。例えば、読取フィルタ１１１であれば、撮像部６０４による原稿の読み取り制御のためのロジックが相当する。
【００３９】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能（ライブラリ）である。
【００４０】
永続記憶領域情報は、フィルタに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部２３に登録される。
【００４１】
図６は、アクティビティの構成要素を説明するための図である。図６に示されるように、アクティビティは、アクティビティＵＩ、アクティビティロジック、及び永続記憶領域情報等より構成される。
【００４２】
アクティビティＵＩは、アクティビティに関する画面（例えば、アクティビティの動作条件等を設定させるための設定画面）をオペレーションパネル６０２等に表示させるための情報又はプログラムである。
【００４３】
アクティビティロジックは、アクティビティの処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック（例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等）が実装されている。
【００４４】
永続記憶領域情報は、アクティビティに対する設定情報（例えば、動作条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティのインストール時にデータ管理部２３に登録される。
【００４５】
図２に戻る。サービスメカニズム２０は、アクティビティ又はフィルタ等が利用するプリミティブなサービスを提供するソフトウェア部品や、アプリケーションが機種等のハード的な仕様に対して非依存となるための仕組みを提供すソフトウェア部品等が実装されるレイヤである。図中において、サービスメカニズム２０には、画像パイプ２１、ＵＩ部２２、データ管理部２３、及びマーキングサービス２４等のソフトウェア部品が含まれる。
【００４６】
画像パイプ２１は、上述したパイプの機能を実現する。すなわち、メモリ領域等を用いて或るフィルタからの出力データを次のフィルタに伝達する。なお、図中において、画像パイプ２１は、一つのブロックによって示されているが、その実体はフィルタ間を接続するパイプの数だけ生成される。
【００４７】
ＵＩ部２２は、オペレーションパネル６０２に表示される操作画面を介して入力されるユーザ要求を解釈し、ユーザ要求に応じた処理制御をアプリケーションメカニズム１０又はサービスメカニズム２０等におけるソフトウェア部品に委譲する。データ管理部２３は、ユーザ情報等、機器内外に保存される各種情報について、保存方法、及び保存場所等を規定する。
【００４８】
マーキングサービス２４は、マーキングフィルタ１３５からの要求に応じ、画像データに対する埋め込み情報の抽出処理又は埋め込み処理を行う。
【００４９】
デバイスメカニズム３０は、複合機１が有するデバイス毎に設けられたデバイスを制御する手段を有する。
【００５０】
運用部４０は、システムの運用管理に関するソフトウェア部品が実装される部分であり、アプリケーションメカニズム１０、サービスメカニズム２０、及びデバイスメカニズム３０より共通に利用される。図中において、運用部４０には、プラグイン管理部４１が含まれている。プラグイン管理部４１は、アクティビティ及びフィルタ等、自由に抜き差し（インストール・アンインストール）可能なソフトウェア部品の情報を管理する。
【００５１】
以上のようなソフトウェア構成を有する複合機１における、埋め込み情報の抽出又は埋め込み機能（以下、「マーキング処理機能」という。）について詳細に説明する。
【００５２】
図７は、マーキング処理機能を実現するためのソフトウェアコンポーネントの構成例を示す図である。マーキング処理機能に関するジョブ（以下、「マーキングジョブ」という。）は、マーキングアクティビティ１０４によって制御される。同図において、マーキングアクティビティ１０４は、読取フィルタ１１１と、マーキングフィルタ１０４と、印刷フィルタ１３１との組み合わせによりマーキングジョブを実行する。但し、印刷フィルタ１３１は、マーキング処理機能の種類に応じて必ずしも必要ではない。
【００５３】
例えば、マーキングジョブの一つである出力者検知ジョブを実行する場合、読取フィルタ１１１の制御によって撮像部６０４より紙文書の画像データが読み取られ、マーキングフィルタ１３５の制御によって当該紙文書（当該画像データ）に対して地紋又はバーコード等の形式によって埋め込まれている出力者検知用の埋め込み情報（出力者検知情報）が抽出される。出力者検知情報を抽出するための画像処理は、マーキングサービス２４によって実行される。続いて、抽出された情報（出力者を示す情報（例えば、誰によって印刷されたかを示す情報））は、オペレーションパネル６０２に表示される。このように、出力者検知ジョブの場合、文書編集フィルタ１２１及び印刷フィルタ１３１は必要ではない。
【００５４】
一方、やはりマーキングジョブの一つである改竄検知ジョブを実行する場合、読取フィルタ１１１の制御によって撮像部６０４より画像データが読み取られ、マーキングフィルタ１３５の制御によって当該画像データに対する改竄検知用の埋め込み情報がマーキングフィルタ１３５によって読み取られ、マーキングフィルタ１３５の制御によって当該紙文書（当該画像データ）に対して地紋又はバーコード等の形式によって埋め込まれている改竄検知用の埋め込み情報（改竄検知情報）が抽出される。改竄検知情報を抽出するための画像処理は、マーキングサービス２４によって実行される。マーキングサービス２４は、更に、改竄検知情報に基づいて改竄の有無及び改竄されている場合は改竄の箇所を特定し、当該箇所に赤丸を付す等の画像処理を行う。なお、地紋を利用した改竄の検知及び改竄位置の判定については、例えば、特開２００５−１２５３０号公報や特開２００５−１９２１４８号公報等に記載されている公知の技術を用いればよい。
【００５５】
マーキングサービス２４によって改竄が検知された場合、マーキングフィルタ１３５は、改竄箇所に赤丸が付された画像データを文書編集フィルタ１２１に出力する。続いて、印刷フィルタ１３１によって当該画像データが印刷される。したがって、ユーザは、印刷された文書を参照することにより改竄の存在及び改竄位置を認識することができる。一方、マーキングサービス２４によって改竄が検知されなかった場合、改竄は無いことを示すメッセージがオペレーションパネル６０２に表示されることにより改竄検知ジョブは終了する。したがって、この場合、文書編集フィルタ１２１及び印刷フィルタ１３１は利用されない。
【００５６】
なお、同図では入力フィルタとして読取フィルタ１１１を、出力フィルタ１３１として印刷フィルタを用いた例を示しているが、入力フィルタ及び出力フィルタは、実現したいジョブの種類に応じて適宜変更すればよい。
【００５７】
図７においてマーキング処理機能を実現するために必須のソフトウェアコンポーネント（破線で囲まれたもの）について更に詳しく説明する。図８は、マーキングアクティビティ、マーキングフィルタ、及びマーキングサービスの構成例を示す図である。
【００５８】
同図において、マーキングアクティビティ１０４は、マーキングアクティビティ共通部１０４１及びマーキングアクティビティ固有部１０４２より構成される。マーキングアクティビティ共通部１０４１は、マーキングアクティビティ１０４として実行すべき処理のうち、マーキングジョブの種類に対して共通に実行される処理が実装された部分である。一方、マーキングアクティビティ固有部１０４２は、マーキングジョブの種類に応じた固有の処理を実行する部分であり、当該種類ごとに実装される。なお、マーキングアクティビティ固有部１０４２は、マーキングアクティビティ共通部１０４１において規定されているインタフェース（関数又はメソッド）を備えている必要がある。換言すれば、マーキングアクティビティ固有部１０４２は、当該関数等についてマーキングジョブの種類に応じた固有の処理を実装することにより生成される。
【００５９】
マーキングサービス２４も同様に、マーキングサービス共通部２４１及びマーキングサービス固有部２４２より構成される。マーキングサービス共通部２４１は、マーキングサービス２４として実行すべき処理のうち、マーキング処理の種類に対して共通に実行される処理が実装された部分である。一方、マーキングサービス固有部２４２は、マーキング処理の種類に応じた固有の処理を実行する部分であり、当該種類ごとに実装される。なお、マーキングサービス固有部２４２は、マーキングサービス共通部２４１において規定されているインタフェース（関数又はメソッド）を備えている必要がある。換言すれば、マーキングサービス固有部２４２は、当該関数等についてマーキング処理の種類に応じた固有の処理を実装することにより生成される。
【００６０】
一方、マーキングフィルタ１３５は、マーキング処理機能の種類に対して汎用的に作られている。したがって、マーキング処理機能の種類を問わず同一のマーキングフィルタ１３５が利用される。これは、マーキング処理機能の種類に対して異なる部分がマーキングアクティビティ固有部１０４２及びマーキングサービス固有部２４２によって吸収されるからである。
【００６１】
なお、同図において、マーキング処理機能の種類に対して共通な部分（マーキングアクティビティ共通部１０４１、マーキングフィルタ１３５、及びマーキングサービス共通部２４１）は、マーキング処理機能を実現するためのフレームワーク（以下、「マーキングフレームワーク」という。）として機能する。すなわち、或るマーキング処理機能を実装したい場合、マーキングフレームワーク以外の部分（マーキングアクティビティ固有部１０４２及びマーキングサービス固有部２４２）を、マーキングフレームワークにおいて規定されるインタフェースに従って実装すればよい。
【００６２】
例えば、図９は、マーキングフレームワークに対して出力者検知機能及び改竄検知機能を実装した場合の構成例を示す図である。
【００６３】
同図では、マーキングアクティビティ固有部１４０２として、及び出力者検知アクティビティ部１０４２ａ及び改竄検知アクティビティ部１０４２ｂがプラグインされた例が示されている。また、マーキングサービス固有部２４２として、出力者検知サービス部２４２ａ及び改竄検知サービス部２４２ｂがプラグインされた例が示されている。同図の構成によれば、出力者検知ジョブと改竄検知ジョブとの実行が可能となる。
【００６４】
図１０は、マーキングサービス共通部の構成例を示す図である。同図において、マーキングサービス共通部２４１は、代理部２４１１、固有部管理部２４１２、固有部実行部２４１３、及びサービス処理条件２４１４等を含む。
【００６５】
代理部２４１１は、マーキングサービス共通部２４１の窓口的な存在であり、各種のマーキング処理機能に対して共通のインタフェース（関数又はメソッド）をマーキングフィルタ１３５に提供する。代理部２４１１は、当該共通のインタフェースを介してマーキングフィルタ１３５からの各種の要求を受け、当該要求をマーキングサービス固有部２４２に伝達する。このように、マーキングフィルタ１３５からは、マーキングサービス固有部２４２が直接呼び出されることはない。したがって、マーキングフィルタ１３５は、実行されるマーキング処理機能がいかなるものかを意識することなく、マーキングサービス２４を利用することができる。
【００６６】
固有部管理部２４１２は、マーキングサービス固有部２４２の管理を行う。具体的には、固有部管理部２４１２は、インストールされているマーキングサービス固有部２４２の一覧情報の管理や、各マーキングサービス固有部２４２のロード（例えば、オブジェクトのインスタンス化）等を行う。
【００６７】
サービス処理条件２４１４は、ジョブの実行時におけるマーキングサービス２４の処理の実行条件を格納するためのデータ（オブジェクト）である。具体的には、サービス処理条件２４１４は、実行対象とされているジョブにおいて利用されるマーキングサービス固有部２４２のインスタンスを識別する情報（インスタンス自体又は参照等でよい。）を格納する。
【００６８】
固有部実行部２４１３は、代理部２４１１からの要求に応じ、サービス処理条件２４１４に格納された情報によって特定されるマーキングサービス固有部２４２に具体的な（各マーキング処理機能に応じた）処理を実行させる。
【００６９】
なお、同図には、固有部インタフェース２４１５が示されている。固有部インタフェース２４１５は、実体が存在するものではなく、マーキングサービス固有部２４２が備えるべきインタフェースを示す。基本的に、固有部インタフェース２４１５は、代理部２４１１がマーキングフィルタ１３５に対して提供するインタフェースに対応する（対をなす）。代理部２４１１及び固有部実行部２４１３等は、固有部インタフェース２４１５に基づいて、マーキングフィルタ１３５からの要求を各マーキングサービス固有部２４２に伝達する。
【００７０】
以下、マーキング処理機能を実行する際に複合機１において実行される処理手順について説明する。まず、マーキングジョブのための初期化処理について説明する。ここでいう初期化処理とは、マーキングジョブを実行するための準備処理をいい、例えば、複合機１の起動時等に自動的に実行される。但し、ユーザによるマーキングジョブの利用要求に応じて（例えば、オペレーションパネル６０２におけるマーキングジョブに対応するボタンの選択に応じて）実行されてもよい。
【００７１】
図１１は、マーキングジョブのための初期化処理の概要を説明するための図である。同図に示されるように、初期化処理ではマーキングジョブにおいて利用される各フィルタ（読取フィルタ１１１、マーキングフィルタ１３５、及び印刷フィルタ１３５）に対して設定が必要な実行条件を構成するパラメータ（属性項目（設定項目））の構成情報（属性名、データ型、属性値（初期値））が各フィルタよりマーキングアクティビティ１０４に対して設定される。読取フィルタ１１１の実行条件を読取属性という。マーキングフィルタ１３５の実行条件をマーキング属性という。印刷フィルタ１３１の実行条件を印刷属性という。
【００７２】
同図において注目すべき点は、マーキング属性のマーキングアクティビティ１０４に対する設定については、マーキングフィルタ１３５が実行するのではなく、マーキングサービス２４に委譲されている点である。これは、複合機１にインストールされているマーキングサービス固有部２４２ごとにマーキング属性の構成が異なるからである。マーキング属性の設定がマーキングサービス２４に委譲されることにより、マーキングフィルタ１３５の汎用性が確保されている。なお、マーキング属性は、マーキングフィルタ１３５に対しても設定される。
【００７３】
初期化処理について更に詳細に説明する。図１２及び図１３は、マーキングジョブのための初期化処理を説明するためのシーケンス図である。
【００７４】
ステップＳ１０１において、アクティビティフレームワーク１００は、マーキングアクティビティ共通部１０４１に対してプリファレンスの生成を要求する（Ｓ１０１）。本実施の形態において、「プリファレンス」とは、アクティビティロジック又はフィルタロジックの一部を構成するオブジェクトであって、ジョブ等の実行条件を構成する属性項目に関する情報を格納するためのオブジェクトをいう。具体的には、プリファレンスは、各属性項目の属性名、データ型、及び属性値等を格納する。
【００７５】
続いて、マーキングアクティビティ共通部１０４１は、マーキングジョブ用のプリファレンスとしてマーキングアクティビティプリファレンス１０４１ｐを生成（インスタンス化）し（Ｓ１０２）、生成されたマーキングアクティビティプリファレンス１０４１ｐをアクティビティフレームワーク１００に返却する（Ｓ１０３）。なお、この時点においてマーキングアクティビティプリファレンス１０４１ｐの中身は空である。すなわち、実行条件の属性項目の構成情報は設定されていない。
【００７６】
続いて、アクティビティフレームワーク１００は、マーキングアクティビティプリファレンス１０４１ｐのセットアップ（実行条件の属性項目の構成情報の設定）をマーキングアクティビティプリファレンス１０４１ｐに要求する（Ｓ１０４）。当該要求に応じマーキングアクティビティプリファレンス１０４１ｐは、自ら（マーキングアクティビティプリファレンス１０４１ｐ）のインスタンスを引数として、マーキング属性の構成情報（各属性項目の属性名及びデータ型）の設定をマーキングサービス共通部２４１の代理部２４１１に対して要求する（Ｓ１０５）。当該要求に応じマーキングサービス２４は、マーキング属性の構成情報（属性名及びデータ型）の設定をマーキングアクティビティプリファレンス１０４１ｐに対して行う（Ｓ１０６）。ステップＳ１０６の詳細については後述する。
【００７７】
続いて、マーキングアクティビティプリファレンス１０４１ｐは、マーキングアクティビティプリファレンス１０４１ｐに対する属性値（ここでは初期値）の設定を代理部２４１１に対して要求する（Ｓ１０７）。当該要求に応じマーキングサービス２４は、ステップＳ１０６においてその構成情報が設定されているマーキング属性の各属性項目について初期値（デフォルト値）を設定する（Ｓ１０８）。ステップＳ１０８の詳細については後述する。
【００７８】
ステップＳ１０６及びＳ１０８では、空のマーキングプリファレンス１０４ｐに対してマーキング属性のスキーマ定義（各属性項目の属性名及びデータ型）と初期値とが定義されたことになる。斯かる定義をマーキングサービス２４に動的に行わせるのは、マーキング属性の構成はどのようなマーキングサービス固有部２４２がプラグインされているかによって異なり、予め固定的に定めることはできないからである。
【００７９】
続いて、マーキングアクティビティプリファレンス１０４１ｐは、現在インストールされている各マーキングアクティビティ固有部２４２（本実施の形態では出力者検知アクティビティ部１０４２ａ及び改竄検知アクティビティ部１０４２ｂ）に、それぞれに固有のマーキング処理機能を実行するために必要な実行条件の構成情報の設定を実行させる。
【００８０】
まず、マーキングアクティビティプリファレンス１０４１ｐは、出力者検知アクティビティ部１０４２ａをインスタンス化する（Ｓ１０９）。続いて、マーキングアクティビティプリファレンス１０４１ｐは、出力者検知アクティビティ部１０４２ａに対し、出力者検知ジョブの実行条件に関する情報の設定（マーキングアクティビティプリファレンス１０４１ｐへの設定）を要求する（Ｓ１１０）。当該要求に応じ、出力者検知アクティビティ部１０４２ａは、出力者検知ジョブにおいて利用する各フィルタ（読取フィルタ１１１、マーキングフィルタ１３５）よりそれぞれの実行条件に関する情報を格納するプリファレンス（フィルタプリファレンス）を取得する。
【００８１】
まず、出力者検知アクティビティ部１０４２ａは、読取フィルタ１１１に対しフィルタプリファレンスの生成を要求する（Ｓ１１１）。読取フィルタ１１１は、読取属性を構成する各属性項目の属性名、データ型、初期値が格納されたフィルタプリファレンス（読取フィルタプリファレンス）を生成し、当該読取フィルタプリファレンスを出力者検知アクティビティ部１０４２ａに返却する（Ｓ１１２）。
【００８２】
続いて、出力者検知アクティビティ部１０４２ａは、読取フィルタプリファレンスに設定されている属性項目のうち、ＵＩ画面（設定画面）に表示させる属性項目（表示項目）に関する属性名のリストをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１１３）。すなわち、読取フィルタ１１１は、各種のアクティビティ（各種のアプリケーション）から利用可能なように汎用的に作られている。したがって、読取フィルタ１１１の属性項目も汎用的な構成となっている。しかし、出力者検知ジョブを実行するに際し、読取フィルタ１１１の属性項目のうち属性値が所定値（固定的）である必要があるもの（例えば、解像度等）がある。そこで、斯かる属性項目については設定画面では非表示とされるように全属性項目から非表示とする属性項目が除かれた表示項目がマーキングアクティビティプリファレンス１０４１ｐに設定されるのである。なお、いずれを表示項目とするかの判定は、ロジックとしてハードコーディングされていてもよいし、例えば、図１４に示されるようなテーブル形式でＨＤＤ６３３に記録されている情報（表示項目定義テーブル）に基づいて行われてもよい。後者の場合、機能拡張等に応じて柔軟に対応できるという利点がある。なお、図１４の例では、表示要否の値が「ＴＲＵＥ」の属性項目が表示項目とされる。
【００８３】
続いて、出力者検知アクティビティ部１０４２ａは、読取フィルタプリファレンスに設定されている全ての属性項目について属性名と属性値（初期値）とをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１１４）。
【００８４】
続いて、出力者検知アクティビティ部１０４２ａは、マーキングフィルタ１３５について、読取フィルタ１１１に関して行った処理と同様のことを繰り返す。まず。出力者検知アクティビティ部１０４２ａは、マーキングフィルタ１３５に対しフィルタプリファレンスの生成を要求する（Ｓ１１５）。マーキングフィルタ１３５は、マーキングフィルタ１３５用の空のフィルタプリファレンス（マーキングフィルタプリファレンス）を生成し、当該マーキングプリファレンスに対するマーキング属性の構成情報の設定をマーキングサービス共通部２４１の代理部２４１１に対して要求する（Ｓ１１６）。当該要求に応じマーキングサービス２４は、マーキング属性の構成情報（属性名及びデータ型）の設定をマーキングフィルタプリファレンスに対して行う（Ｓ１１７）。ステップＳ１１７の詳細については後述する。
【００８５】
続いて、マーキングフィルタ１３５は、マーキングフィルタプリファレンスに対する属性値（ここでは属性の初期値）の設定を代理部２４１１に対して要求する（Ｓ１１８）。当該要求に応じマーキングサービス２４は、ステップＳ１１７においてその構成情報が設定されているマーキング属性の各属性項目について初期値（デフォルト値）を設定する（Ｓ１１９）。ステップＳ１１９の詳細については後述する。続いて、マーキングフィルタ１３５は、マーキングフィルタプリファレンスを出力者検知アクティビティ１０４２ａに返却する（Ｓ１２０）。
【００８６】
続いて、出力者検知アクティビティ部１０４２ａは、マーキングフィルタプリファレンスに設定されている全ての属性項目について属性名と属性値（初期値）とをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１２１）。
【００８７】
続いて、出力者検知アクティビティ部１０４２ａは、出力者検知ジョブにおいて利用する読取フィルタ１１１とマーキングフィルタ１３５とのそれぞれのフィルタプリファレンス（読取フィルタプリファレンス、マーキングフィルタプリファレンス）を、フィルタの実行順に対応させて接続する（Ｓ１２２）。すなわち、フィルタの接続関係を決定する。したがって、読取フィルタプリファレンスが前段（前方）となり、マーキングフィルタプリファレンスが後段（後方）となる。図１５に、読取フィルタプリファレンス１１１ｐとマーキングフィルタプリファレンス１３５ｐとが接続された状態を示す。
【００８８】
続いて、図１３に進み、マーキングアクティビティプリファレンス１０４１ｐは、ステップＳ１１１からステップＳ１２２において出力者検知アクティビティ部１０４２ａが実行した処理と同様の処理を改竄検知アクティビティ部１０４２ｂに実行させる。まず、マーキングアクティビティプリファレンス１０４１ｐは、改竄検知アクティビティ部１０４２ｂをインスタンス化する（Ｓ１３１）。続いて、マーキングアクティビティプリファレンス１０４１ｐは、改竄検知アクティビティ部１０４２ｂに対し、改竄検知ジョブの実行条件に関する情報の設定（マーキングアクティビティプリファレンス１０４１ｐへの設定）を要求する（Ｓ１３２）。当該要求に応じ、改竄検知アクティビティ部１０４２ｂは、改竄検知ジョブにおいて利用する各フィルタ（読取フィルタ１１１、マーキングフィルタ１３５、及び印刷フィルタ１３１）よりそれぞれの実行条件に関する情報を格納するプリファレンス（フィルタプリファレンス）を取得する。
【００８９】
まず、改竄検知アクティビティ部１０４２ｂは、読取フィルタ１１１に対しフィルタプリファレンスの生成を要求する（Ｓ１３３）。ステップＳ１１２と同様に読取フィルタ１１１は、読取フィルタプリファレンスを生成し、当該読取フィルタプリファレンスを改竄検知アクティビティ部１０４２ｂに返却する（Ｓ１３４）。なお、ここで生成される読取フィルタプリファレンスのインスタンスは、ステップＳ１１２において生成されるものとは異なる。
【００９０】
続いて、改竄検知アクティビティ部１０４２ｂは、読取フィルタプリファレンスに設定されている属性項目のうち、表示項目に関する属性名のリストをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１３５）。続いて、改竄検知アクティビティ部１０４２ｂは、読取フィルタプリファレンスに設定されている全ての属性項目について属性名と属性値（初期値）とをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１３６）。
【００９１】
続いて、改竄検知アクティビティ部１０４２ｂの制御の下、マーキングフィルタ１３５についてステップＳ１１５からＳ１２１と同様の処理が実行される（Ｓ１３７〜Ｓ１４３）。その結果、マーキングフィルタプリファレンスが生成され、マーキングフィルタプリファレンスに設定された各属性項目の属性名及び属性値がマーキングアクティビティプリファレンス１０４１ｐに設定される。なお、ステップＳ１３７生成されるマーキングフィルタプリファレンスのインスタンスは、ステップＳ１１６において生成されるものとは異なる。
【００９２】
続いて、改竄検知アクティビティ部１０４２ｂは、印刷フィルタ１３１について、読取フィルタ１１１等に関して行った処理と同様のことを繰り返す。改竄検知アクティビティ部１０４２ｂは、印刷フィルタ１３１に対しフィルタプリファレンスの生成を要求する（Ｓ１４４）。印刷フィルタ１３１は、印刷フィルタ１３１の実行条件に対応した（印刷フィルタ１３１の実行条件を構成する各属性項目の属性名、データ型、初期値が格納された）フィルタプリファレンス（印刷フィルタプリファレンス）を生成し、当該印刷フィルタプリファレンスを改竄検知アクティビティ部１０４２ｂに返却する（Ｓ１４５）。続いて、改竄検知アクティビティ部１０４２ｂは、印刷フィルタプリファレンスに設定されている全ての属性項目について属性名と属性値（初期値）とをマーキングアクティビティプリファレンス１０４１ｐに設定する（Ｓ１４６）。
【００９３】
続いて、改竄検知アクティビティ部１０４２ｂは、読取フィルタプリファレンスとマーキングフィルタプリファレンスとを、フィルタの実行順に対応させて接続する（Ｓ１４７）。また、改竄検知アクティビティ部１０４２ｂは、マーキングフィルタプリファレンスと印刷フィルタプリファレンスとをフィルタの実行順に対応させて結合（接続）する（Ｓ１４８）。したがって、読取フィルタプリファレンス、マーキングフィルタプリファレンス、印刷フィルタプリファレンスの順で接続関係が構築される。図１６に、読取フィルタプリファレンス１１１ｐとマーキングフィルタプリファレンス１３５ｐと印刷フィルタプリファレンス１３１ｐとが接続された状態を示す。
【００９４】
続いて、ステップＳ１０６、Ｓ１１７、及びＳ１３９において共通に行われる処理について説明する。図１７は、マーキングサービスによるプリファレンスに対するマーキング属性の構成情報の設定処理を説明するためのシーケンス図である。
【００９５】
まず、代理部２４１１は、複合機１にインストールされているマーキングサービス固有部２４２のインスタンス（オブジェクト）の一覧（以下、「マーキングサービス固有部一覧」という。）を固有部管理部２４１２より取得する（Ｓ１５１、Ｓ１５２）。なお、固有管理部２４１２は、既に各マーキングサービス固有部２４２のインスタンスをメモリ上にロードし、管理していることとする。
【００９６】
続いて、マーキング処理機能タイプに応じて処理が分岐する。マーキング処理機能タイプとは、マーキング処理機能の種類（本実施の形態では、「出力者検知機能」と「改竄検知機能」との別）を示す情報であり、ステップＳ１１７の場合は、ステップＳ１１５及びＳ１１６を介して出力者検知アクティビティ部１０４２ａより通知される。また、ステップＳ１３９の場合は、ステップＳ１３７及びＳ１３８を介して改竄検知アクティビティ部１０４２ｂより通知される。
【００９７】
マーキング処理機能タイプが出力者検知機能を示す場合（すなわち、ステップＳ１１７の場合）、代理部２４１１は、出力者検知サービス部２４２ａに対して、プリファレンスへのマーキング属性の構成情報の設定を要求する（Ｓ１５３）。当該要求に応じ、出力者検知サービス部２４２ａは、出力者検知ジョブに必要な各属性項目の属性名及びデータ型をプリファレンスに設定する。
【００９８】
また、マーキング処理機能タイプが改竄検知機能を示す場合（すなわち、ステップＳ１３９の場合）、代理部２４１１は、改竄検知サービス部２４２ｂに対して、プリファレンスへのマーキング属性の構成情報の設定を要求する（Ｓ１５４）。当該要求に応じ、改竄検知サービス部２４２ｂは、改竄検知ジョブに必要な各属性項目の属性名及びデータ型をプリファレンスに設定する。
【００９９】
このように、代理部２４１１は、マーキング属性の構成情報の設定要求（マーキング属性の構成情報の問い合わせ）に対する応答を、マーキングサービス固有部２４２に実行させる。
【０１００】
なお、図１７の処理において設定対象となるプリファレンスは、ステップＳ１０５、Ｓ１１６、又はＳ１３９において引数として渡されたプリファレンスである。
【０１０１】
続いて、図１２又は図１３のステップＳ１０８、Ｓ１１９、及びＳ１４１において共通に行われる処理について説明する。図１８は、マーキングサービスによるプリファレンスに対するマーキング属性の初期値の設定処理を説明するためのシーケンス図である。
【０１０２】
まず、代理部２４１１は、マーキングサービス固有部一覧を固有部管理部２４１２より取得する（Ｓ１６１、Ｓ１６２）。続いて、マーキング処理機能タイプに応じて処理が分岐する。
【０１０３】
マーキング処理機能タイプが出力者検知機能を示す場合（すなわち、ステップＳ１１９の場合）、代理部２４１１は、出力者検知サービス部２４２ａに対して、プリファレンスへのマーキング属性の初期値の設定を要求する（Ｓ１６３）。当該要求に応じ、出力者検知サービス部２４２ａは、出力者検知ジョブに必要な各属性項目の初期値型をプリファレンスに設定する。ここでは、マーキング処理機能タイプとして出力者検知機能を示す値もプリファレンスに設定される。
【０１０４】
また、マーキング処理機能タイプが改竄検知機能を示す場合（すなわち、ステップＳ１４１の場合）、代理部２４１１は、改竄検知サービス部２４２ｂに対して、プリファレンスへのマーキング属性の構成情報の設定を要求する（Ｓ１６４）。当該要求に応じ、改竄検知サービス部２４２ｂは、改竄検知ジョブに必要な属性項目の初期値をプリファレンスに設定する。ここでは、マーキング処理機能タイプとして改竄検知機能を示す値もプリファレンスに設定される。
【０１０５】
このように、代理部２４１１は、マーキング属性の初期値の設定要求（マーキング属性の初期値の問い合わせ）に対する応答を、マーキングサービス固有部２４２に実行させる。
【０１０６】
なお、図１８の処理において設定対象となるプリファレンスは、ステップＳ１０７、Ｓ１１８、又はＳ１４０において引数として渡されたプリファレンスである。
【０１０７】
以上で初期化処理は終了する。初期化処理のうち、マーキング処理機能ごとに固有の実装が必要な部分は、図１２及び図１３においては、出力者検知アクティビティ部１０４２ａ又は改竄検知アクティビティ部１０４２ｂに関する処理のみである。また、図１７及び図１８においては、マーキング処理機能ごとに固有の実装が必要な部分は、出力者検知サービス部２４２ａ又は改竄検知サービス部２４２ｂに関する処理のみである。
【０１０８】
一方、仮に複合機１がマーキングフレームワークを備えていない場合、図１２及び図１３においては、マーキングアクティビティ共通部１０４１、マーキングアクティビティプリファレンス１０４１ｐ、マーキングフィルタ１３５、及び代理部２４１１に関する処理についてもマーキング処理機能ごとに個別に実装される必要がある。また、図１７及び図１８においては、代理部２４１１及び固有部管理部２４１２についてもマーキング処理機能ごとに個別に実装される必要がある。
【０１０９】
このように、マーキングフレームワークの存在により、初期化処理の実装について、マーキング処理機能ごとに実装が必要とされる部分が著しく削減されることが分かる。
【０１１０】
初期化処理（図１２、図１３）の終了後、オペレーションパネル６０２において所定のハードキー（ボタン）がユーザによって押下されると、複合機１は、ログイン画面をオペレーションパネル６０２に表示させる。
【０１１１】
図１９は、ログイン画面の表示例を示す図である。同図に示されるログイン画面５１０を介してユーザ名及びパスワードが入力されると、複合機１の非図示の認証部は、ユーザの認証を行う。認証に成功した場合、複合機１は、ユーザに利用可能なマーキング処理機能を利用権限テーブルに基づいて判定する。
【０１１２】
図２０は、利用権限テーブルの例を示す図である。同図の利用権限テーブルには、マーキング処理機能ごとに利用権限を有するユーザ名が登録されている。例えば、出力者検知機能は、ユーザ１及びユーザ２が利用権限を有する。改竄検知機能は、ユーザ１及びユーザ３が利用権限を有する。
【０１１３】
続いて、複合機１は、利用権限テーブルに基づいて利用権限を有すると判定された機能のみが選択可能なように、アプリケーション選択画面をオペレーションパネル６０２に表示させる。
【０１１４】
図２１は、アプリケーション選択画面の表示例を示す図である。同図に示されるアプリケーション選択画面５２０には、出力者検知ボタンと改竄検知ボタンとが表示されている。図２０の利用権限テーブルに基づく場合、図２１の例は、ユーザ１がログインした際に表示されるアプリケーション選択画面である。
【０１１５】
アプリケーション選択画面５２０において、いずれかのアプリケーション（マーキング処理機能）に対応するボタンが選択されると、マーキングアクティビティ１０４のアクティビティＵＩ（図６参照。以下、「マーキングアクティビティＵＩ」という。）は、選択されたアプリケーション（出力者検知機能又は改竄検知機能）に対応する設定画面をオペレーションパネル６０２に表示させる。なお、アプリケーションの選択に応じ、選択されたアプリケーションに対応するマーキング処理機能タイプがＭＥＭ−Ｐ６３１に記録（保持）される。
【０１１６】
出力者検知機能が選択された場合、マーキングアクティビティＵＩは、出力者検知アクティビティ部１０４２ａによってマーキングアクティビティプリファレンス１０４１ｐに設定された属性項目（すなわち、出力者検知ジョブに必要な属性項目）に対する属性値（すなわち、出力者検知ジョブの実行条件）を設定させるための設定画面（出力者検知設定画面）を表示させる。
【０１１７】
図２２は、出力者検知設定画面の表示例を示す図である。同図において出力者検知設定画面５３０には、検知モード、マーキングタイプ、原稿濃度、及び元原稿からの変倍率等のマーキング属性の各属性項目の値（属性値）を設定させるための表示部品が表示されている。なお、出力者検知設定画面５３０の初期状態において、各属性項目にはマーキングアクティビティプリファレンス１０４１ｐに設定されている初期値が表示される。
【０１１８】
また、出力者検知設定画面５３０には読取設定ボタン５３１が表示されている。読取設定ボタン５３１が押下されると、マーキングアクティビティＵＩは、マーキングアクティビティプリファレンス１０４１ｐに設定されている読取属性を設定させるための画面を表示させる。
【０１１９】
一方、改竄検知機能が選択された場合、マーキングアクティビティＵＩは、改竄検知アクティビティ部１０４２ｂによってマーキングアクティビティプリファレンス１０４１ｐに設定された属性項目（すなわち、改竄検知ジョブに必要な属性項目）に対する属性値（すなわち、改竄検知ジョブの実行条件）を設定させるための設定画面（改竄検知設定画面）を表示させる。
【０１２０】
図２３は、改竄検知設定画面の表示例を示す図である。同図において改竄検知設定画面５４０には、地紋濃度の上限、地紋濃度の下限、処理精度、処理速度、原稿濃度、検知モード、及び改竄部分の印刷（の要否）等のマーキング属性の各属性項目の値（属性値）を設定させるための表示部品が表示されている。
【０１２１】
また、改竄検知設定画面５４０には読取設定ボタン５４１が表示されている。読取設定ボタン５４１が押下されると、マーキングアクティビティＵＩは、マーキングアクティビティプリファレンス１０４１ｐに設定されている読取属性の属性値を設定させるための画面を表示させる。
【０１２２】
続いて、出力者検知設定画面５３０又は改竄検知設定画面５４０等の設定画面を介してマーキングジョブに対する実行条件（属性値）の設定がユーザによって行われた際に複合機１が実行する処理手順について説明する。
【０１２３】
図２４は、マーキングジョブに対する属性値の設定処理の概要を示す図である。同図に示されるように属性値の設定処理では、ユーザによって設定される属性値がマーキングアクティビティ１０４から各フィルタに対して設定される。例えば、読取フィルタ１１１に対しては読取属性の各属性項目の属性値が設定される。マーキングフィルタ１３５に対してはマーキング属性の各属性項目の属性値が設定される。印刷フィルタ１３１に対しては印刷属性の各属性項目の属性値が設定される。なお、各フィルタに設定された属性値は、各フィルタが処理を実行する際に利用する。但し、マーキングフィルタ１３５に設定された属性値は、マーキングサービス２４によって利用される。すなわち、マーキングフィルタ１３５は属性値をマーキングサービス２４にそのまま設定し、当該属性値に基づいて行う処理（ロジック）については関与しない。斯かる構成により、マーキングフィルタ１３５の汎用性が確保されている。
【０１２４】
属性値の設定処理について更に詳細に説明する。図２５は、マーキングジョブに対する属性値の設定処理を説明するためのシーケンス図である。
【０１２５】
出力者検知設定画面５３０又は改竄検知設定画面５４０等の設定画面を介してユーザによって各属性項目に属性値（出力者検知ジョブ又は改竄検知ジョブの実行条件）が設定されると、マーキングアクティビティＵＩ１０４１ｕは、マーキングフレームワーク１００を介して設定対象とされた属性項目とその属性値とをマーキングアクティビティプリファレンス１０４１ｐに通知する（Ｓ２０１、Ｓ２０２）。続いて、マーキングアクティビティプリファレンス１０４１ｐは、アプリケーション選択画面５２０におけるアプリケーションの選択に応じてＭＥＭ−Ｐ６３１に記録されたマーキング処理機能タイプを取得し、保持する（Ｓ２０３、Ｓ２０４）。
【０１２６】
取得されたマーキング処理機能タイプが出力者検知機能を示すものである場合、マーキングアクティビティプリファレンス１０４１ｐは、出力者検知マーキングアクティビティプリファレンス１０４２ａｐに設定対象とされた属性名及び属性値を通知する（Ｓ２０５）。出力者検知マーキングアクティビティプリファレンス１０４２ａｐは、出力者検知アクティビティ部１０４２ａに対するプリファレンスである。続いて、出力者検知マーキングアクティビティプリファレンス１０４２ａｐは、当該属性名に対する属性値を、対応するフィルタプリファレンスに設定する。例えば、当該属性名が読取属性の属性項目に対するものである場合、出力者検知マーキングアクティビティプリファレンス１０４２ａｐは、当該属性名に対する属性値を読取フィルタプリファレンス１１１ｐに設定する（Ｓ２０６）。一方、当該属性名がマーキング属性の属性項目に対するものである場合、出力者検知マーキングアクティビティプリファレンス１０４２ａｐは、当該属性値をマーキングフィルタプリファレンス１３５ｐに設定する（Ｓ２０７）。
【０１２７】
また、取得されたマーキング処理機能タイプが改竄検知機能を示すものである場合、マーキングアクティビティプリファレンス１０４１ｐは、改竄検知マーキングアクティビティプリファレンス１０４２ｂｐに設定対象とされた属性名及び属性値を通知する（Ｓ２０８）。改竄検知マーキングアクティビティプリファレンス１０４２ｂｐは、改竄検知アクティビティ部１０４２ｂに対するプリファレンスである。続いて、改竄検知マーキングアクティビティプリファレンス１０４２ｂｐは、当該属性名に対する属性値を、対応するフィルタプリファレンスに設定する。例えば、当該属性名が読取属性の属性項目に対するものである場合、改竄検知マーキングアクティビティプリファレンス１０４２ａｐは、当該属性名に対する属性値を読取フィルタプリファレンス１１１ｐに設定する（Ｓ２０９）。一方、当該属性名がマーキング属性の属性項目に対するものである場合、改竄検知マーキングアクティビティプリファレンス１０４２ａｐは、当該属性値をマーキングフィルタプリファレンス１３５ｐに設定する（Ｓ２１０）。また、改竄検知マーキングアクティビティプリファレンス１０４２ａｐは、印刷フィルタプリファレンス１３１ｐに対して、印刷属性の属性名及び属性値を設定する（Ｓ２１１）。なお、図２３の改竄設定画面５４０には印刷属性を設定させる領域は無い。本実施の形態では、印刷属性の属性値は、改竄検知マーキングアクティビティプリファレンス１０４２ａｐによって固定的に印刷フィルタプリファレンス１３１ｐに設定される例を示しているからである。
【０１２８】
図２５の処理によって、出力者検知設定画面５３０又は改竄検知設定画面５４０等を介して設定された属性値は、各フィルタプリファレンス（図１５、図１６参照）に設定される。したがって、この段階において、出力者検知ジョブ又は改竄検知ジョブの実行条件は、各フィルタプリファレンスに保持されていることになる。
【０１２９】
なお、属性値の設定処理（図２５）のうち、マーキング処理機能ごとに固有の実装が必要な部分は、出力者検知アクティビティプリファレンス１０４２ａｐ又は改竄検知アクティビティプリファレンス１０４２ｂｐに関する処理のみである。一方、仮に複合機１がマーキングフレームワークを備えていない場合、マーキングアクティビティプリファレンス１０４１ｐ及びマーキングフィルタプリファレンス１３５ｐに関する処理についてもマーキング処理機能ごとに個別に実装される必要がある。このように、マーキングフレームワークの存在により、属性値の設定処理の実装について、マーキング処理機能ごとに実装が必要とされる部分が著しく削減されることが分かる。
【０１３０】
続いて、図２６及び図２７は、マーキングジョブの実行処理を説明するためのシーケンス図である。
【０１３１】
出力者検知設定画面５３０又は改竄検知設定画面５４０等を介して属性値（ジョブの実行条件）が設定された後、オペレーションパネル６０２のスタートボタンがユーザによって押下されると、マーキングアクティビティＵＩ１０４１ｕは、ジョブの開始をアクティビティフレームワーク１００に要求する（Ｓ３０１）。続いて、アクティビティフレームワーク１００は、マーキングアクティビティ共通部１０４１に対し、マーキングアクティビティプリファレンス１０４１ｐを引数に指定してジョブオブジェクトの生成を要求する（Ｓ３０２）。ここで、ジョブオブジェクトとは、アクティビティロジック又はフィルタロジックを構成するオブジェクトであり、ジョブの開始の度に当該ジョブにおいて利用されるアクティビティ及びフィルタごとに生成され、ジョブの実行を制御する。また、ジョブオブジェクトの接続の前後関係によって、フィルタの実行順等が表現される。
【０１３２】
マーキングアクティビティ共通部１０４１は、まず、マーキングアクティビティ１０４（マーキングアクティビティ共通部１０４１）に対応するジョブオブジェクト（マーキングアクティビティジョブ１０４１ｊ）を生成する（Ｓ３０３）。この際、マーキングアクティビティ共通部１０４１は、マーキングアクティビティプリファレンス１０４１ｐを引数としてマーキングアクティビティジョブ１０４１ｊに引き渡す。続いて、マーキングアクティビティジョブ１０４１ｊは、マーキングアクティビティプリファレンス１０４１ｐよりマーキング処理機能タイプを取得する（Ｓ３０４、Ｓ３０５）。
【０１３３】
続いて、マーキングアクティビティジョブ１０４１ｊは、マーキングアクティビティ固有部１０４２に対応するジョブオブジェクトを生成する。具体的には、マーキング処理機能タイプが出力者検知機能を示す場合、マーキングアクティビティジョブ１０４１ｊは、出力者検知アクティビティ部１０４２ａに対応するジョブオブジェクトである出力者検知アクティビティジョブ１０４２ａｊを生成する（Ｓ３０６）。一方、マーキング処理機能タイプが改竄検知機能を示す場合、マーキングアクティビティジョブ１０４１ｊは、改竄検知アクティビティ部１０４２ｂに対応するジョブオブジェクトである改竄検知アクティビティジョブ１０４２ｂｊを生成する（Ｓ３０７）。ステップＳ３０６又はＳ３０７に続き、マーキングアクティビティジョブ１０４１ｊは、生成された出力者検知アクティビティジョブ１０４２ａｊ又は改竄検知アクティビティジョブ１０４２ｂｊを自ら（マーキングアクティビティジョブ１０４１ｊ）に設定（保持）しておく（Ｓ３０８）。続いて、マーキングアクティビティジョブ１０４１ｊは、自らのインスタンスをマーキングアクティビティ共通部１０４１に返却する（Ｓ３０９）。マーキングアクティビティ共通部１０４１は、マーキングアクティビティジョブ１０４１ｊをアクティビティフレームワーク１００に返却する（Ｓ３１０）。
【０１３４】
続いて、アクティビティフレームワーク１００は、各フィルタのジョブオブジェクトの生成をフィルタフレームワーク１１０に要求する（Ｓ３１１）。フィルタフレームワーク１１０は、実行対象とされているマーキングジョブに応じたフィルタプリファレンスに基づいて各フィルタのジョブオブジェクトを生成する。例えば、フィルタフレームワーク１１０は、マーキングフィルタ１３５に対してジョブオブジェクトの生成を要求する（Ｓ３１２）。マーキングフィルタ１３５はマーキングフィルタジョブ１３５ｊを生成し、マーキングフレームワーク１１０に返却する。フィルタフレームワーク１１０は、アクティビティフレームワーク１００にマーキングフィルタジョブを返却する。
【０１３５】
なお、図２６では、便宜上、マーキングフィルタジョブ１３５ｊの生成に関してのみ記載されている。したがって、他のフィルタのジョブのジョブオブジェクトについても、各フィルタによって生成され、フィルタフレームワーク１１０を介してアクティビティフレームワーク１００に返却される。
【０１３６】
例えば、実行対象とされているマーキングジョブが出力者検知ジョブの場合、図１５に示される読取フィルタプリファレンス１１１ｐ及びマーキングフィルタプリファレンス１３５ｐに基づいて、読取フィルタ１１１のジョブオブジェクト（読取フィルタジョブ１１１ｊ）とマーキングフィルタ１３５のジョブオブジェクト（マーキングフィルタジョブ１３５ｊ）とが生成される。
【０１３７】
また、実行対象とされているマーキングジョブが改竄検知ジョブの場合、図１６に示される読取フィルタプリファレンス１１１ｐ、マーキングフィルタプリファレンス１３５ｐ、及び印刷フィルタプリファレンス１３１ｐに基づいて、読取フィルタ１１１のジョブオブジェクト（読取フィルタジョブ１１１ｊ）とマーキングフィルタ１３５のジョブオブジェクト（マーキングフィルタジョブ１３５ｊ）と印刷フィルタ１３１のジョブオブジェクト（印刷フィルタジョブ１３１ｊ）とが生成される。
【０１３８】
以上の処理によって、アクティビティフレームワーク１００には、マーキングアクティビティに対応するジョブオブジェクトと、実行対象とされているマーキングジョブにおいて利用される各フィルタに対応するジョブオブジェクトとが収集される。そこで、アクティビティフレームワーク１００は、収集されたジョブオブジェクトをプリファレンスの接続関係（図１５、図１６参照）に対応させて接続し、ジョブツリーをＭＥＭ−Ｐ６３１内に構築（生成）する（Ｓ３１５）。ここで、構築されるジョブツリーは、実行されるマーキングジョブに応じて例えば次のようになる。
【０１３９】
図２８は、出力者検知ジョブが実行される場合のジョブツリーの例を示す図である。同図のジョブツリーでは、読取フィルタジョブ１１１ｊ及びマーキングフィルタジョブ１３５ｊが、図１５のプリファレンスの接続順序に対応した順序で接続されている。また、ステップＳ３０８において出力者検知アクティビティジョブ１０４２ａｊが設定されたマーキングアクティビティジョブ１０４１ｊから各フィルタジョブに対してジョブにおける利用関係を示す関連が生成されている。斯かるジョブツリーより、出力者検知ジョブは、読取フィルタ１１１→マーキングフィルタ１３５の順でフィルタを実行させる必要があることが識別される。
【０１４０】
また、図２９は、改竄検知ジョブが実行される場合のジョブツリーの例を示す図である。同図のジョブツリーでは、読取フィルタジョブ１１１ｊ、マーキングフィルタジョブ１３５ｊ、及び印刷フィルタジョブ１３１ｊが、図１６のプリファレンスの接続順序に対応した順序で接続されている。また、ステップＳ３０８において改竄検知アクティビティジョブ１０４２ｂｊが設定されたマーキングアクティビティジョブ１０４１ｊから各フィルタジョブに対してジョブにおける利用関係を示す関連が生成されている。斯かるジョブツリーより、改竄検知ジョブは、読取フィルタ１１１→マーキングフィルタ１３５→印刷フィルタ１３１の順でフィルタを実行させる必要があることが識別される。
【０１４１】
ジョブツリーの構築に続いて、アクティビティフレームワーク１００は、ジョブの実行の開始をフィルタフレームワーク１１０に要求する（図２７：Ｓ３２１）。ジョブの開始要求に応じ、フィルタフレームワーク１１０は、ＭＥＭ−Ｐ６３１に記録されているジョブツリーに基づいてジョブの実行処理を制御する。まず、フィルタフレームワーク１１０は、ジョブにおいて利用する各フィルタにフィルタ間調整を実行させる。
【０１４２】
図３０は、フィルタ間調整を説明するための図である。フィルタ間調整とは、接続関係にあるフィルタ間同士で、パイプを介して伝達する画像データのデータ形式（画像形式）等を調整する処理をいう。例えば、読取フィルタ１１１は、ＴＩＦＦ形式及びＪＰＥＧ形式による画像データの出力が可能であり、マーキングフィルタ１３５はＪＰＥＧ形式及びＢＭＰ形式による画像データの処理が可能である（入力データとして受け付け可能である）場合、両者の間で伝達される画像データはＪＰＥＧ形式が採用される。基本的に、各フィルタは自らが処理可能な画像データを知っている。但し、マーキングフィルタ１３５は、汎用的に作成されているため、処理可能な画像形式を示す情報（以下、「フィルタ間調整値」という。）は、マーキングサービス２４に問い合わせることにより判定される。
【０１４３】
フィルタ間調整を行う場合、フィルタフレームワーク１１０は、まず、ジョブツリーによって示されるフィルタの接続関係において末端に位置するフィルタ（「フィルタＣ」とする。）にフィルタ間調整を指示する。フィルタＣは、フィルタフレームワーク１１０に対して自らのフィルタ間調整値を返却する。フィルタフレームワーク１１０は、返却されたフィルタ間調整値をフィルタＣの前段のフィルタ（「フィルタＢ」とする。）に対して通知し、フィルタＢに対してフィルタ間調整を要求する。フィルタＢは、通知されたフィルタ間調整値によって示される画像形式による出力の可否を判定し、可能であれば自らのフィルタ間調整値をフィルタフレームワーク１１０に返却する。フィルタフレームワーク１１０は、更に前段のフィルタ（「フィルタＡ」とする。）が存在する場合は、フィルタＡに対してフィルタＢのフィルタ間調整値を通知し、フィルタ間調整を要求する。このように、フィルタ間調整では、後段から前段のフィルタにかけて順番に調整処理が行われる。
【０１４４】
但し、前段から後段のフィルタにかけてフィルタ間調整が行われてもよい。この場合、フィルタフレームワーク１１０は、ジョブツリーによって示されるフィルタの接続関係において先端に位置するフィルタ（「フィルタＡ」とする。）にフィルタ間調整を指示する。フィルタＡは、フィルタフレームワーク１１０に対して自らのフィルタ間調整値を返却する。フィルタフレームワーク１１０は、返却されたフィルタ間調整値を当フィルタＡの後段のフィルタ（「フィルタＢ」とする。）に対して通知し、フィルタＢに対してフィルタ間調整を要求する。フィルタＢは、通知されたフィルタ間調整値によって示される画像形式による出力の可否を判定し、可能であれば自らのフィルタ間調整値をフィルタフレームワーク１１０に返却する。フィルタフレームワーク１１０は、更に後段のフィルタ（「フィルタＣ」とする。）が存在する場合は、フィルタＣに対してフィルタＢのフィルタ間調整値を通知し、フィルタ間調整を要求する。
【０１４５】
本実施の形態では、後者の例（前段のフィルタから後段のフィルタにかけて調整処理が行われる例）について説明する。
【０１４６】
図２７では、便宜上、マーキングフィルタ１３５によるフィルタ間調整のみが示されている。すなわち、ステップＳ３２２において、フィルタフレームワーク１１０は、フィルタ間調整値を引数に指定してフィルタ間調整をマーキングフィルタジョブ１３５ｊに要求する。ここで、引数に指定されるフィルタ間調整値は、マーキングフィルタ１３５の前段のフィルタのジョブオブジェクト（すなわち、読取フィルタジョブ１１１ｊ）から取得されたものである。なお、当該フィルタ間調整値には、複数種類の画像形式が含まれうる。
【０１４７】
続いてマーキングフィルタジョブ１３５ｊは、図３０において説明したように、処理可能な画像形式をマーキングサービス共通部２４１の代理部２４１１に問い合わせる（Ｓ３２３）。問い合わせに際し、マーキングフィルタジョブ１３５ｊは、フィルタ名（「マーキングフィルタ」）とマーキングフィルタプリファレンス１３５ｐとを引数として代理部２４１１に引き渡す。これは、マーキングサービス２４（厳密にはマーキングサービス固有部２４２）が、自らを利用するフィルタとマーキングフィルタプリファレンス１３５ｐ（マーキング属性）の値とに応じて処理可能な画像形式が変化する可能性が有るからである。
【０１４８】
代理部２４１１は、当該問い合わせに応じ、現在利用対象とされている（すなわち、実行対象とされているマーキングジョブに対応する）マーキングサービス固有部２４２において処理可能な画像形式を取得し（Ｓ３２４）、当該画像形式をマーキングフィルタジョブ１３５ｊに返却する（Ｓ３２５）。なお、ここでは複数種類の画像形式が返却されうる。ステップＳ３２５の詳細については後述する。
【０１４９】
続いて、マーキングフィルタジョブ１３５ｊは、ステップＳ３２２において通知されたフィルタ間調整値（読取フィルタ１１１が出力可能な画像形成）と、代理部２４１１より返却された画像形式とを比較することにより、フィルタ間の接続の可否を判定する（Ｓ３２６）。すなわち、当該フィルタ間調整値と当該画像形式との間で一致する画像形式が存在すればフィルタ間の接続は可能であると判定し、一致しなければフィルタ間調整は不可能であると判定する。続いて、マーキングフィルタジョブ１３５ｊは、判定結果（フィルタ間の接続の可否）をフィルタフレームワーク１１０に返却する（Ｓ３２７）。
【０１５０】
利用される他の全てのフィルタ（読取フィルタ１１１、印刷フィルタ１３１）についても隣接するフィルタとの接続が可能である場合、フィルタフレームワーク１１０は、ジョブの準備を各フィルタに対して指示する。図２７では、便宜上、マーキングフィルタ１３５についてのみ記載されている。すなわち、ステップＳ３２８において、フィルタフレームワーク１１０は、ジョブの実行準備をマーキングフィルタジョブ１３５ｊに要求する。マーキングフィルタジョブ１３５ｊは、マーキングフィルタプリファレンス１３５ｐを引数に指定して代理部２４１１に対してサービス処理条件２４１４（図１０参照）の生成を要求する（Ｓ３２９）。代理部２４１１は、サービス処理条件２４１４を生成し（Ｓ３３０）、当該サービス処理条件２４１４をマーキングフィルタジョブ１３５ｊに返却する（Ｓ３３１）。
【０１５１】
利用される他の全てのフィルタについてもジョブの準備が完了すると、フィルタフレームワーク１１０は、各フィルタ（のジョブオブジェクト）を利用してマーキングジョブの実行を制御する。
【０１５２】
図３１は、マーキングジョブの実行手順の概要を説明するための図である。同図において、画像パイプ２１ａは、読取フィルタ１１１とマーキングフィルタ１３５との間を接続する画像パイプ２１である。画像パイプ２１ｂは、マーキングフィルタ１３５と印刷フィルタ１３１との間を接続する画像パイプ２１である。なお、実行対象のジョブが出力者検知ジョブである場合、印刷フィルタジョブ１３１ｊに関する手順は実行されない。
【０１５３】
まず、フィルタフレームワーク１１０は、ジョブで利用される各フィルタのジョブオブジェクト（印刷フィルタジョブ１１１ｊ、マーキングフィルタジョブ１３５ｊ、印刷フィルタジョブ１３１ｊ）に対してジョブの開始を同時に指示する（Ｓ１１）。ジョブの開始を指示された各フィルタのジョブオブジェクトは、自らの前段側（画像データの入力側）に接続されているフィルタの処理が完了するまで（入力側に接続されている画像パイプ２１に対して画像データが入力されるまで）処理の開始を待機する。但し、ジョブツリーにおいて先端に位置するフィルタ（本実施の形態では読取フィルタ１１１）は、待機することなく処理を開始する。
【０１５４】
すなわち、読取フィルタジョブ１１１ｊは、紙文書からの画像データの読み取りを撮像部６０４に実行させ（Ｓ１２）、読み取られた画像データを画像パイプ２１ａに出力する（Ｓ１３）。なお、画像データは、フィルタ間調整によって選択された画像形式によって出力される。続いて、読取フィルタジョブ１１１ｊは、画像パイプ２１ａへの画像データの出力の完了を示すイベント（画像確定イベント）をフィルタフレームワーク１１０に通知する（Ｓ１４）。
【０１５５】
フィルタフレームワーク１１０は、読取フィルタジョブ１１１ｊからの画像確定イベントをマーキングフィルタジョブ１３５ｊに通知する（Ｓ１５）。マーキングフィルタジョブ１３５ｊは、イベントの通知に応じ、画像パイプ２１ａより画像データを取り出し（Ｓ１６）、当該画像データに関するマーキング処理（本実施の形態では、出力者検知処理又は改竄検知処理）をマーキングサービス２４に実行させる（Ｓ１７）。マーキングフィルタジョブ１３５ｊは、マーキングサービス２４による処理結果（検知結果）に画像データが含まれている場合は、当該画像データを画像パイプ２１ｂに出力する（Ｓ１８）。本実施の形態において、マーキングサービス２４による処理結果に画像データが含まれている場合とは、改竄検知ジョブにおいて改竄が検知された場合が相当する。この場合、改竄箇所にマークが付された画像データがマーキングサービス２４の処理結果に含まれている。続いて、マーキングフィルタジョブ１３５ｊは、画像確定イベント又は処理の完了（画像データを出力しなかった場合）を示すイベント（終了イベント）をフィルタフレームワーク１１０に通知する（Ｓ１９）。
【０１５６】
フィルタフレームワーク１１０は、マーキングフィルタジョブ１３５ｊからのイベント（画像データの出力の完了）を印刷フィルタジョブ１３１ｊに通知する（Ｓ２０）。印刷フィルタジョブ１３１ｊは、イベントの通知に応じ、画像パイプ２１ｂより画像データを取り出し（Ｓ２１）、当該画像データの印刷を印刷部６０５に実行させる（Ｓ２２）。印刷が完了すると、印刷フィルタジョブ１３１ｊは、終了イベントをフィルタフレームワーク１１０に通知する（Ｓ２３）。
【０１５７】
なお、ステップＳ１２からＳ１９又はＳ２３までの処理手順は１ページごとに実行される。また、各フィルタは全ページ分の処理が完了した場合、又は何らかの理由で途中で終了した場合（中止された場合）、終了イベントをフィルタフレームワーク１１０に通知する。
【０１５８】
図３１において説明した処理のうち、図２７では便宜上、マーキングフィルタジョブ１３５ｊに関する部分のみが記載されている。
【０１５９】
すなわち、ステップＳ３３２においてフィルタフレームワーク１１０は、マーキングフィルタジョブ１３５ｊに対してジョブの開始を指示する（図３１のＳ１１に対応）。続いて、フィルタフレームワーク１１０は、読取フィルタジョブ１１１ｊより画像確定イベントが通知されると、マーキングフィルタジョブ１３５ｊに対して当該画像確定イベントを通知する（Ｓ３４１）。当該画像確定イベントに応じ、マーキングフィルタジョブ１３５ｊは、画像パイプ２１ａより１ページ分の画像データ（ページ画像）を取り出す（Ｓ３４２、Ｓ３４３）。続いて、マーキングフィルタジョブ１３５ｊは、ステップＳ３３１において取得したサービス処理条件２４１４とページ画像とを引数に指定してマーキング処理の実行を代理部２４１１に要求する（Ｓ３４４）。当該要求に応じマーキングサービス２４は、サービス処理条件２４１４に従ったマーキング処理を実行し（Ｓ３４５）、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ３４６）。実行ＩＤとは、マーキングサービス２４が、マーキング処理の実行、終了、又は中止等の要求を受け付けた際に発行するＩＤである。
【０１６０】
一方、マーキングフィルタ１３５の前段のフィルタ（読取フィルタ１１１）のフィルタジョブ（読取フィルタジョブ１１１ｊ）より終了イベント（全ページの読み取りの完了を示すイベント）がフィルタフレームワーク１１０に通知されると、フィルタフレームワーク１１０はマーキングフィルタジョブ１３５ｊに対して前段のフィルタの終了を示すイベント（前段フィルタ終了イベント）を通知する（Ｓ３５１）。前段フィルタ終了イベントに応じ、マーキングフィルタジョブ１３５ｊは、サービス処理条件２４１４を引数に指定してマーキング処理の終了を代理部２４１１に要求する（Ｓ３５２）。当該要求に応じマーキングサービス２４は、サービス処理条件２４１４に基づいてマーキング処理の終了処理を実行し（Ｓ３５３）、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ３５４）。
【０１６１】
更に、マーキングフィルタ１３５の後段のフィルタ（印刷フィルタ１３１）のフィルタジョブ（印刷フィルタジョブ１３１ｊ）より終了イベント（例えば、処理の中止を示すイベント）がフィルタフレームワーク１１０に通知されると、フィルタフレームワーク１１０はマーキングフィルタジョブ１３５ｊに対して後段のフィルタの終了を示すイベント（後段フィルタ終了イベント）を通知する（Ｓ３６１）。後段フィルタ終了イベントに応じ、マーキングフィルタジョブ１３５ｊは、サービス処理条件２４１４を引数に指定してマーキング処理の中止を代理部２４１１に要求する（Ｓ３６２）。当該要求に応じマーキングサービス２４は、サービス処理条件２４１４に基づいてマーキング処理の中止処理を実行し（Ｓ３６３）、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ３６４）。
【０１６２】
続いて、ステップＳ３２４の詳細について説明する。図３２は、マーキングサービスによる処理可能な画像形式の取得処理を説明するためのシーケンス図である。
【０１６３】
代理部２４１１は、ステップＳ３２３の引数として渡されたマーキングフィルタプリファレンス１３５ｐよりマーキング処理機能タイプの値を取得する（Ｓ４０１）。続いて、代理部２４１１は、マーキング処理機能タイプに対応するマーキングサービス固有部１０４２のインスタンスを固有部管理部２４１２より取得する（Ｓ４０２、Ｓ４０３）。続いて、代理部２４１１は、ステップＳ３２３の引数として渡されたフィルタ名及びマーキングフィルタプリファレンス１３５ｐを引数に指定して、取得されたマーキングサービス固有部１０４（出力者検知サービス部２４２ａ又は改竄検知サービス部２４２ｂ）に対して処理可能な画像形式を問い合わせる（Ｓ４０４又はＳ４０６）。出力者検知サービス部２４２ａ又は改竄検知サービス部２４２ｂは、フィルタ名及びマーキングフィルタプリファレンス１３５ｐに格納されているマーキング属性に基づいて処理可能な画像形式を判定し、当該画像形式を示す情報を代理部２４１１に返却する（Ｓ４０５又はＳ４０７）。
【０１６４】
続いて、図２７のステップＳ３３０の詳細について説明する。図３３は、マーキングサービスによるサービス処理条件の生成処理を説明するためのシーケンス図である。
【０１６５】
代理部２４１１は、ステップＳ３２９の引数として渡されたマーキングフィルタプリファレンス１３５ｐよりマーキング属性を取得する（Ｓ４１１）。続いて、代理部２４１１は、取得されたマーキング属性を引数に指定して、実行対象とされているマーキングジョブに対応したマーキングサービス固有部２４２のインスタンスの生成を固有部管理部２４１２に要求する（Ｓ４１２）。
【０１６６】
なお、図３３より前のシーケンス図において登場するマーキングサービス固有部２４２のインスタンス（出力者検知サービス部２４２ａ又は改竄検知サービス部２４２ｂ）は、常駐するインスタンスであり、各ジョブから共通的に利用されるものである。一方、ステップＳ４１２において生成が要求されているインスタンスは、ジョブごとに固有のものであり、ジョブの開始に伴って生成され、ジョブの終了に伴って破棄されるものである。両者の区別を明確にするため、後者については参照番号の末尾に「ｊ」を付加する。
【０１６７】
続いて、固有部管理部２４１２は、マーキング属性よりマーキング処理機能タイプを取得する（Ｓ４１３）。マーキング処理機能タイプが出力者検知機能を示す場合、固有部管理部２４１２は、出力者検知サービス部２４２ａｊのインスタンス（オブジェクト）を生成する（Ｓ４１４）。この際、固有部管理部２４１２は、マーキング属性を出力者検知サービス部２４２ａｊに設定する。一方、マーキング処理機能タイプが改竄検知機能を示す場合、固有部管理部２４１２は、改竄検知サービス部２４２ｂｊのインスタンス（オブジェクト）を生成する（Ｓ４１５）。この際、固有部管理部２４１２は、マーキング属性を改竄検知サービス部２４２ｂｊに設定する。
【０１６８】
続いて、固有部管理部２４１２は、生成されたマーキングサービス固有部２４２のインスタンス（出力者検知サービス部２４２ａｊ又は改竄検知サービス部２４２ｂｊ）を代理部に返却する（Ｓ４１６）。続いて、代理部２４１１は、サービス処理条件２４１４のインスタンスを生成し、ステップＳ４１４又はＳ４１５において生成されたマーキングサービス固有部２４２のインスタンスをサービス処理条件２４１４に登録する（Ｓ４１８）。
【０１６９】
図３４は、サービス処理条件とマーキングサービス固有部とマーキング属性との関係を示す図である。同図に示されるように、サービス処理条件２４１４の中には実行対象のマーキングサービス固有部２４２（出力者検知サービス部２４２ａｊ又は改竄検知サービス部２４２ｂｊ）が登録されている。更に、マーキングサービス固有部２４２の中にはマーキング属性が登録されている。したがって、サービス処理条件２４１４によって、実行対象とされているジョブに対応したマーキング処理を実行するために必要な全ての情報（処理条件）が管理されていることになる。
【０１７０】
続いて、図２７のステップＳ３４５の詳細について説明する。図３５は、マーキングサービスによるマーキング処理の実行手順を説明するためのシーケンス図である。
【０１７１】
上述したステップＳ３４４（図２７）において、マーキング処理の実行要求をマーキングフィルタジョブ１３５ｊより受け付けると、代理部２４１１は、当該実行要求に対する実行ＩＤを生成する（Ｓ４２１）。続いて、代理部２４１１は、実行ＩＤと、図３３の処理によって生成されたサービス処理条件２４１２（図３４参照）とページ画像とを引数に指定して、マーキング処理の実行を固有部実行部２４１３に依頼する（Ｓ４２２）。当該依頼後、代理部２４１１は、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ４２３）。
【０１７２】
一方、マーキング処理の実行を依頼された固有部実行部２４１３は、引数に指定されたサービス処理条件２４１４に登録されているマーキングサービス固有部２４２のインスタンスを取得し（Ｓ４２４、Ｓ４２５）、取得されたインスタンスに対してページ画像を引数に指定してマーキング処理の実行要求を入力する。
【０１７３】
したがって、取得されたインスタンスが出力者検知サービス部２４２ａｊの場合、当該実行要求は出力者検知サービス部２４２ａｊに入力される（Ｓ４２６）。出力者検知サービス部２４２ａｊは、自らに設定されているマーキング属性に基づいて、ページ画像に対して出力者検知処理を実行し、その処理結果（検知結果）を固有部実行部２４１３に返却する（Ｓ４２７）。出力者検知処理が正常に実行された場合、当該検知結果には、出力者を識別する情報（出力者名等）が含まれる。また、出力者検知処理中に異常が発生した場合、例外が発行される。
【０１７４】
一方、取得されたインスタンスが改竄検知サービス部２４２ｂｊの場合、当該実行要求は改竄検知サービス部２４２ｂｊに入力される（Ｓ４２８）。改竄検知サービス部２４２ｂｊは、自らに設定されているマーキング属性に基づいて、ページ画像に対して改竄検知処理を実行し、その処理結果（検知結果）を固有部実行部２４１３に返却する（Ｓ４２９）。改竄検知処理が正常に実行された場合、当該検知結果には、改竄の有無と改竄が検知された場合には改竄位置にマークが付されたページ画像（検知結果画像）等が含まれる。また、改竄検知処理中に異常が発生した場合、例外が発行される。
【０１７５】
続いて、固有部実行部２４１３は、検知結果を示すイベントの生成処理を実行する（Ｓ４３０）。すなわち、マーキング処理が正常に実行された場合、検知完了イベントを生成し（Ｓ４３１）、例外が発行された場合、中止要求イベントを生成する（Ｓ４３２）。なお、検知完了イベントには検知結果が含まれる。続いて、固有部実行部２４１３は、生成されたイベントをマーキングフィルタジョブ１３５ｊに通知する（Ｓ４３３）。当該イベントの通知に応じ、マーキングフィルタジョブ１３５ｊは、通知されたイベントに応じた処理を実行する（Ｓ４３４）。ステップＳ４３４の詳細については後述する。
【０１７６】
続いて、図２７のステップＳ３５３の詳細について説明する。図３６は、マーキングサービスによるマーキング処理の終了手順を説明するためのシーケンス図である。
【０１７７】
上述したステップＳ３５２（図２７）において、マーキング処理の終了要求をマーキングフィルタジョブ１３５ｊより受け付けると、代理部２４１１は、当該終了要求に対する実行ＩＤを生成する（Ｓ４５１）。続いて、代理部２４１１は、実行ＩＤと、図３３の処理によって生成されたサービス処理条件２４１２（図３４参照）とを引数に指定して、マーキング処理の終了を固有部実行部２４１３に依頼する（Ｓ４５２）。当該依頼後、代理部２４１１は、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ４５３）。
【０１７８】
一方、マーキング処理の実行を依頼された固有部実行部２４１３は、引数に指定されたサービス処理条件２４１４に登録されているマーキングサービス固有部２４２のインスタンスを取得し（Ｓ４５４、Ｓ４５５）、取得されたインスタンスに対してマーキング処理の終了要求を入力する。
【０１７９】
したがって、取得されたインスタンスが出力者検知サービス部２４２ａｊの場合、当該終了要求は出力者検知サービス部２４２ａｊに入力される（Ｓ４５６）。出力者検知サービス部２４２ａｊは、自らに設定されているマーキング属性や現在の出力者検知処理の実行状況等に基づいて処理の終了の可否を判定し、終了が可能な場合は出力者検知処理を終了させる。出力者検知サービス部２４２ａｊは、処理の終了の可否の判定結果を固有部実行部２４１３に返却する（Ｓ４５７）。
【０１８０】
一方、取得されたインスタンスが改竄検知サービス部２４２ｂｊの場合、当該終了要求は改竄検知サービス部２４２ｂｊに入力される（Ｓ４５８）。改竄検知サービス部２４２ｂｊは、自らに設定されているマーキング属性や現在の改竄検知処理の実行状況等に基づいて処理の終了の可否を判定し、終了が可能な場合は改竄検知処理を終了させる。改竄検知サービス部２４２ｂｊは、処理の終了の可否の判定結果を固有部実行部２４１３に返却する（Ｓ４５９）。
【０１８１】
続いて、固有部実行部２４１３は、処理の終了の判定結果を示すイベントの生成処理を実行する（Ｓ４６０）。すなわち、処理の終了が可能である場合、終了完了イベントを生成し（Ｓ４６１）、処理の終了が不可能である場合、終了失敗イベントを生成する（Ｓ４６２）。続いて、固有部実行部２４１３は、生成されたイベントをマーキングフィルタジョブ１３５ｊに通知する（Ｓ４６３）。当該イベントの通知に応じ、マーキングフィルタジョブ１３５ｊは、通知されたイベントに応じた処理を実行する（Ｓ４６４）。ステップＳ４６４の詳細については後述する。
【０１８２】
続いて、図２７のステップＳ３６３の詳細について説明する。図３７は、マーキングサービスによるマーキング処理の中止手順を説明するためのシーケンス図である。
【０１８３】
上述したステップＳ３６２（図２７）において、マーキング処理の中止要求をマーキングフィルタジョブ１３５ｊより受け付けると、代理部２４１１は、当該中止要求に対する実行ＩＤを生成する（Ｓ４７１）。続いて、代理部２４１１は、実行ＩＤと、図３３の処理によって生成されたサービス処理条件２４１２（図３４参照）とを引数に指定して、マーキング処理の中止を固有部実行部２４１３に依頼する（Ｓ４７２）。当該依頼後、代理部２４１１は、実行ＩＤをマーキングフィルタジョブ１３５ｊに返却する（Ｓ４７３）。
【０１８４】
一方、マーキング処理の実行を依頼された固有部実行部２４１３は、引数に指定されたサービス処理条件２４１４に登録されているマーキングサービス固有部２４２のインスタンスを取得し（Ｓ４７４、Ｓ４７５）、取得されたインスタンスに対してマーキング処理の中止要求を入力する。
【０１８５】
したがって、取得されたインスタンスが出力者検知サービス部２４２ａｊの場合、当該中止要求は出力者検知サービス部２４２ａｊに入力される（Ｓ４７６）。出力者検知サービス部２４２ａｊは、自らに設定されているマーキング属性や現在の出力者検知処理の実行状況等に基づいて処理の中止の可否を判定し、中止が可能な場合は出力者検知処理を中止させる。出力者検知サービス部２４２ａｊは、処理の中止の可否の判定結果を固有部実行部２４１３に返却する（Ｓ４７７）。
【０１８６】
一方、取得されたインスタンスが改竄検知サービス部２４２ｂｊの場合、当該中止要求は改竄検知サービス部２４２ｂｊに入力される（Ｓ４７８）。改竄検知サービス部２４２ｂｊは、自らに設定されているマーキング属性や現在の改竄検知処理の実行状況等に基づいて処理の中止の可否を判定し、中止が可能な場合は改竄検知処理を中止させる。改竄検知サービス部２４２ｂｊは、処理の中止の可否の判定結果を固有部実行部２４１３に返却する（Ｓ４７９）。
【０１８７】
続いて、固有部実行部２４１３は、処理の中止の判定結果を示すイベントの生成処理を実行する（Ｓ４８０）。すなわち、処理の中止が可能である場合、中止完了イベントを生成し（Ｓ４８１）、処理の中止が不可能である場合、中止失敗イベントを生成する（Ｓ４８２）。続いて、固有部実行部２４１３は、生成されたイベントをマーキングフィルタジョブ１３５ｊに通知する（Ｓ４８３）。当該イベントの通知に応じ、マーキングフィルタジョブ１３５ｊは、通知されたイベントに応じた処理を実行する（Ｓ４８４）。ステップＳ４８４の詳細については後述する。
【０１８８】
続いて、ステップＳ４３４（図３５）の詳細について説明する。図３８及び図３９は、マーキングサービスより検知完了イベントが通知された場合に実行される処理を説明するためのシーケンス図である。
【０１８９】
マーキングサービス２４より通知されたイベントが検知完了イベントであった場合、マーキングフィルタジョブ１３５ｊは、検知完了イベントに検知結果画像（改竄位置にマークが付された画像データ）が含まれているか否かを判定し、含まれている場合は検知結果画像を画像パイプ２１ｂ（図３１参照）に出力する（Ｓ５０１）。続いて、マーキングフィルタジョブ１３５ｊは、検知完了イベントをマーキングアクティビティジョブ１０４１ｊに通知する（Ｓ５０２）。
【０１９０】
続いて、マーキングアクティビティは、図２６のステップＳ３０８において自らに設定されているマーキングアクティビティ固有部１０４２のジョブオブジェクトに対して検知完了イベントを通知する。
【０１９１】
したがって、検知完了イベントが出力検知機能の検知結果を含む場合、当該検知完了イベントは出力者検知アクティビティジョブ１０４２ａｊに通知される（Ｓ５１１）。出力者検知アクティビティジョブ１０４２ａｊは、アクティビティフレームワーク１００に検知完了イベントを通知する（Ｓ５１２）。アクティビティフレームワーク１００は、マーキングアクティビティＵＩ１０４１ｕに検知完了イベントを通知する（Ｓ５１３）。
【０１９２】
続いて、マーキングアクティビティＵＩ１０４１ｕは、検知結果を一覧形式に整形したデータ（以下、「検知結果リスト」という。）の取得をマーキングアクティビティ共通部１０４１に対して要求する（Ｓ５１４）。当該要求に応じ、マーキングアクティビティ共通部１０４１は、出力者検知アクティビティジョブ１０４２ａｊに対して検知結果の取得を要求する（Ｓ５１５）。出力者検知アクティビティジョブ１０４２ａｊは、検知完了イベントを解析することにより検知結果（出力者検知結果）を取り出し、当該出力者検知結果をマーキングアクティビティ共通部１０４１に返却する（Ｓ５１６）。なお、出力者検知結果とは出力者の識別情報（例えば、出力者名）を含む情報である。続いて、マーキングアクティビティ共通部１０４１は、出力者検知結果に基づいて出力者の検知結果リストを生成し（Ｓ５１７）、当該検知結果リストをマーキングアクティビティＵＩ１０４１ｕに返却する（Ｓ５１８）。マーキングアクティビティＵＩ１０４１ｕは、出力者の検知結果リストを表示させる画面（出力者検知結果画面）をオペレーションパネル６０２に表示させる（Ｓ５１９）。
【０１９３】
図４０は、出力者検知結果画面の表示例を示す図である。同図に示されるように、出力者検知結果画面５５０には、ページごとに出力者の識別情報（図中における「○○○○」、「△△△△」、及び「××××」等）が表示される。また、出力者を検知できなかったページについてはその旨を示すメッセージが表示される。
【０１９４】
一方、検知完了イベントが改竄検知機能の検知結果を含む場合、検知完了イベントは改竄検知アクティビティジョブ１０４２ｂｊに通知される（図３９：Ｓ５２１）。改竄検知アクティビティジョブ１０４２ｂｊは、アクティビティフレームワーク１００に検知完了イベントを通知する（Ｓ５２２）。アクティビティフレームワーク１００は、マーキングアクティビティＵＩ１０４１ｕに検知完了イベントを通知する（Ｓ５２３）。
【０１９５】
続いて、マーキングアクティビティＵＩ１０４１ｕは、検知結果リストの取得をマーキングアクティビティ共通部１０４１に対して要求する（Ｓ５２４）。当該要求に応じ、マーキングアクティビティ共通部１０４１は、改竄検知アクティビティジョブ１０４２ｂｊに対して検知結果の取得を要求する（Ｓ５２５）。改竄検知アクティビティジョブ１０４２ｂｊは、検知完了イベントを解析することにより検知結果（改竄検知結果）を取り出し、当該改竄検知結果をマーキングアクティビティ共通部１０４１に返却する（Ｓ５２６）。なお、改竄検知結果とは改竄の有無を示す情報である。続いて、マーキングアクティビティ共通部１０４１は、改竄検知結果に基づいて改竄の検知結果リストを生成し（Ｓ５２７）、当該検知結果リストをマーキングアクティビティＵＩ１０４１ｕに返却する（Ｓ５２８）。マーキングアクティビティＵＩ１０４１ｕは、改竄の検知結果リストを表示させる画面（改竄検知結果画面）をオペレーションパネル６０２に表示させる（Ｓ５２９）。
【０１９６】
図４１は、改竄検知結果画面の表示例を示す図である。同図に示されるように、改竄検知結果画面５６０には、ページごとに改竄の有無を示すメッセージが表示される。また、改竄の有無を検知できなかったページについてはその旨を示すメッセージが表示される。
【０１９７】
続いて、ステップＳ４６４（図３６）、又はステップＳ４８４（図３７）の詳細について説明する。図４２は、マーキングサービスより終了完了イベント又は中止完了イベントが通知された場合に実行される処理を説明するためのシーケンス図である。
【０１９８】
マーキングサービス２４より通知されたイベントが終了完了イベントであった場合、マーキングフィルタジョブ１３５ｊは、ジョブの終了をフィルタフレームワーク１１０に通知する（Ｓ６０１）。フィルタフレームワーク１１０は、マーキングジョブで利用されている各フィルタのジョブオブジェクトに対してジョブの終了を通知する。なお、図４２では、便宜上、マーキングフィルタジョブ１３５ｊに対してのみジョブの終了が通知されている（Ｓ６０２）。
【０１９９】
続いて、マーキングフィルタジョブ１３５ｊは、終了完了イベントをフィルタフレームワーク１１０に通知する（Ｓ６０３）。フィルタフレームワーク１１０は、終了完了イベントをアクティビティフレームワーク１００に通知する（Ｓ６０４）。アクティビティフレームワーク１００は、ジョブの終了処理を行い（Ｓ６０５）、終了完了イベントをマーキングアクティビティＵＩ１０４１ｕに通知する（Ｓ６０６）。マーキングアクティビティＵＩ１０４１ｕは、終了完了イベントの通知に応じ、ジョブの終了時の状態に表示画面を遷移させる。
【０２００】
一方、マーキングサービス２４より通知されたイベントが中止完了イベントであった場合、マーキングフィルタジョブ１３５ｊは、ジョブの中止をフィルタフレームワーク１１０に通知する（Ｓ６１１）。フィルタフレームワーク１１０は、マーキングジョブで利用されている各フィルタのジョブオブジェクトに対してジョブの中止を通知する。なお、図４２では、便宜上、マーキングフィルタジョブ１３５ｊに対してのみジョブの中止が通知されている（Ｓ６１２）。
【０２０１】
続いて、マーキングフィルタジョブ１３５ｊは、中止完了イベントをフィルタフレームワーク１１０に通知する（Ｓ６１３）。フィルタフレームワーク１１０は、中止完了イベントをアクティビティフレームワーク１００に通知する（Ｓ６１４）。アクティビティフレームワーク１００は、ジョブの中止処理を行い（Ｓ６１５）、中止完了イベントをマーキングアクティビティＵＩ１０４１ｕに通知する（Ｓ６１６）。マーキングアクティビティＵＩ１０４１ｕは、中止完了イベントの通知に応じ、ジョブの中止時の状態に表示画面を遷移させる。
【０２０２】
以上のマーキングジョブの実行処理のうち、マーキング処理機能ごとに固有の実装が必要な部分は、図２６、図２７、図３８、図３９、及び図４２においては、出力者検知アクティビティジョブ１０４２ａｊ又は改竄検知アクティビティジョブ１０４２ｂｊに関する処理のみである。また、図３２、図３３、図３５、図３６、及び図３７においては、出力者検知サービス２４２ａ（２４２ａｊ）又は改竄検知サービス部２４２ｂ（２４２ｂｊ）に関する処理のみである。  一方、仮に複合機１がマーキングフレームワークを備えていない場合、図２６、図２７、図３８、図３９、及び図４２においては、マーキングアクティビティ共通部１０４１、マーキングアクティビティジョブ１０４１ｊ、マーキングアクティビティプリファレンス１０４１ｐ、マーキングフィルタ１３５、及びマーキングフィルタジョブ１３５ｊに関する処理についてもマーキング処理機能ごとに個別に実装される必要がある。また、図３２、図３３、図３５、図３６、及び図３７においては、代理部２４１１及び固有部管理部２４１２に関する処理についてもマーキング処理機能ごとに個別に実装される必要がある。
【０２０３】
このように、マーキングフレームワークの存在により、マーキングジョブの実行処理の実装について、マーキング処理機能ごとに実装が必要とされる部分が著しく削減されることが分かる。
【０２０４】
上述したように、本実施の形態における複合機１によれば、マーキング処理機能に関して、アクティビティとフィルタとの関係、フィルタ間の関係、及びフィルタとサービスメカニズム２０との関係等に関する処理制御はマーキングフレームワークによって実現される。したがって、新たなマーキング処理機能を追加する場合は、マーキングアクティビティ共通部１０４１において決められたインタフェース（関数又はメソッド）に対する実装（新たなマーキングアクティビティ固有部１０４２）を作成し、マーキングサービス共通部２１４において決められたインタフェース（固有部インタフェース２４１５）に対する実装（新たなマーキングサービス固有部２４２）を作成すればよい。すなわち、マーキング処理機能の開発者は、予め決められた関数又はメソッドに対する実装のみを行えばよく、他のコンポーネントとの関係を意識する必要はない。よって、複合機１のソフトウェアアーキテクチャの全体像について詳細な知識の無い開発者であっても、新たなマーキング処理機能を実装することができる。
【０２０５】
なお、本実施の形態では、マーキング処理機能のうち、主に情報の抽出機能（出力者検知機能及び改竄検知機能）の処理手順等を説明したが、情報の埋め込み機能（出力者検知情報埋め込み機能、改竄検知情報埋め込み機能等）についても同様にマーキングフレームワーク上に実装することができる。例えば、出力者検知情報埋め込み機能を追加する場合、マーキングアクティビティ固有部として出力者検知情報埋め込みアクティビティ部を実装し、マーキングサービス固有部２４２として出力者検知情報埋め込みサービス部を実装すればよい。出力者検知情報埋め込みアクティビティ部は、出力者検知アクティビティ部１０４２ａとほぼ同様の処理を行えばよい。また、出力者検知情報埋め込みサービス部は、処理対象として入力されたページ画像に対して地紋又はバーコード等によって出力者の識別情報（例えば、複合機１にログインしているユーザのユーザ名）を埋め込めばよい。改竄検知情報埋め込み情報についても同様である。
【０２０６】
ところで、本実施の形態では、マーキングアクティビティ１０４、マーキングフィルタ１３５、及びマーキングサービス２４の三つの階層における全てのコンポーネントをフレームワーク化した例について説明した（図８又は図９参照）。但し、マーキングアクティビティ１０４又はマーキングサービス２４のいずれか一方についてフレームワーク部分を有さない構成であっても、マーキング処理機能のカスタマイズ性の向上を達成することは可能である。
【０２０７】
例えば、図４３は、マーキングフレームワークがマーキングサービス共通部を有さない場合の構成例を示す図である。図４３中、図９と同一部分には同一符号を付している。
【０２０８】
マーキング共通部２４１がマーキングフレームワークに含まれていない場合、マーキング処理機能ごとにマーキングサービス２４を作成する必要がある。同図では、マーキング処理機能ごとに作成されたマーキングサービス２４の例として出力検知サービス２５及び改竄検知サービス２６が示されている。この場合、出力検知サービス２５及び改竄検知サービス２６の双方において、マーキング共通部２４１が行っていた処理（すなわち、シーケンス図において、代理部２４１１、固有部管理部２４１２、及び固有部実行部２４１３が行っていた処理）を実装する必要がある。したがって、図９の構成に比べてマーキングサービス２４の作成は煩雑化する。但し、マーキングアクティビティ１０４については、マーキングアクティビティ固有部１０４２のみを実装すればよいため、カスタマイズ性を向上させることができる。
【０２０９】
また、図４４は、マーキングフレームワークがマーキングアクティビティ共通部を有さない場合の構成例を示す図である。図４４中、図９と同一部分には同一符号を付している。
【０２１０】
マーキングアクティビティ共通部１０４１がマーキングフレームワークに含まれていない場合、マーキング処理機能ごとにマーキングアクティビティ１０４を作成する必要がある。同図では、マーキング処理機能ごとに作成されたマーキングアクティビティ１０４の例として出力検知アクティビティ１０５及び改竄検知アクティビティ１０６が示されている。この場合、出力検知アクティビティ１０５及び改竄検知アクティビティ１０６の双方において、マーキングアクティビティ共通部１０４１が行っていた処理（すなわち、シーケンス図において、マーキングアクティビティ共通部１０４１、マーキングアクティビティプリファレンス１０４１ｐ、及びマーキングアクティビティジョブ１０４１ｊが行っていた処理）を実装する必要がある。したがって、図９の構成に比べてマーキングアクティビティ１０４の作成は煩雑化する。但し、マーキングサービス２４については、マーキングサービス固有部２４２のみを実装すればよいため、カスタマイズ性を向上させることができる。
【０２１１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０２１２】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。
【図２】本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。
【図３】パイプ＆フィルタアーキテクチャの概念を説明するための図である。
【図４】本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図５】フィルタの構成要素を説明するための図である。
【図６】アクティビティの構成要素を説明するための図である。
【図７】マーキング処理機能を実現するためのソフトウェアコンポーネントの構成例を示す図である。
【図８】マーキングアクティビティ、マーキングフィルタ、及びマーキングサービスの構成例を示す図である。
【図９】マーキングフレームワークに対して出力者検知機能及び改竄検知機能を実装した場合の構成例を示す図である。
【図１０】マーキングサービス共通部の構成例を示す図である。
【図１１】マーキングジョブのための初期化処理の概要を説明するための図である。
【図１２】マーキングジョブのための初期化処理を説明するためのシーケンス図である。
【図１３】マーキングジョブのための初期化処理を説明するためのシーケンス図である。
【図１４】表示項目定義テーブルの例を示す図である
【図１５】読取フィルタプリファレンスとマーキングフィルタプリファレンスとが接続された状態を示す図である。
【図１６】読取フィルタプリファレンスとマーキングフィルタプリファレンスと印刷フィルタプリファレンスとが接続された状態を示す図である。
【図１７】マーキングサービスによるプリファレンスに対するマーキング属性の構成情報の設定処理を説明するためのシーケンス図である。
【図１８】マーキングサービスによるプリファレンスに対するマーキング属性の初期値の設定処理を説明するためのシーケンス図である。
【図１９】ログイン画面の表示例を示す図である。
【図２０】利用権限テーブルの例を示す図である。
【図２１】アプリケーション選択画面の表示例を示す図である。
【図２２】出力者検知設定画面の表示例を示す図である。
【図２３】改竄検知設定画面の表示例を示す図である。
【図２４】マーキングジョブに対する属性値の設定処理の概要を示す図である。
【図２５】マーキングジョブに対する属性値の設定処理を説明するためのシーケンス図である。
【図２６】マーキングジョブの実行処理を説明するためのシーケンス図である。
【図２７】マーキングジョブの実行処理を説明するためのシーケンス図である。
【図２８】出力者検知ジョブが実行される場合のジョブツリーの例を示す図である。
【図２９】改竄検知ジョブが実行される場合のジョブツリーの例を示す図である。
【図３０】フィルタ間調整を説明するための図である。
【図３１】マーキングジョブの実行手順の概要を説明するための図である。
【図３２】マーキングサービスによる処理可能な画像形式の取得処理を説明するためのシーケンス図である。
【図３３】マーキングサービスによるサービス処理条件の生成処理を説明するためのシーケンス図である。
【図３４】サービス処理条件とマーキングサービス固有部とマーキング属性との関係を示す図である。
【図３５】マーキングサービスによるマーキング処理の実行手順を説明するためのシーケンス図である。
【図３６】マーキングサービスによるマーキング処理の終了手順を説明するためのシーケンス図である。
【図３７】マーキングサービスによるマーキング処理の中止手順を説明するためのシーケンス図である。
【図３８】マーキングサービスより検知完了イベントが通知された場合に実行される処理を説明するためのシーケンス図である。
【図３９】マーキングサービスより検知完了イベントが通知された場合に実行される処理を説明するためのシーケンス図である。
【図４０】出力者検知結果画面の表示例を示す図である。
【図４１】改竄検知結果画面の表示例を示す図である。
【図４２】マーキングサービスより終了完了イベント又は中止完了イベントが通知された場合に実行される処理を説明するためのシーケンス図である。
【図４３】マーキングフレームワークがマーキングサービス共通部を有さない場合の構成例を示す図である。
【図４４】マーキングフレームワークがマーキングアクティビティ共通部を有さない場合の構成例を示す図である。
【符号の説明】
【０２１３】
１          複合機
１０        アプリケーションメカニズム
２０        サービスメカニズム
２１        画像パイプ
２２        ＵＩ部
２３        データ管理部
２４        マーキングサービス
２５        出力者検知サービス
２６        改竄検知サービス
３０        デバイスメカニズム
４０        運用部
４１        プラグイン管理部
１００      アクティビティフレームワーク
１０１      コピーアクティビティ
１０２      送信アクティビティ
１０３      ファクスアクティビティ
１０４      マーキングアクティビティ
１０５      出力者検知アクティビティ
１０６      改竄検知アクティビティ
１１０      フィルタフレームワーク
１１１      読取フィルタ
１１２      保管文書読出フィルタ
１１３      メール受信フィルタ
１１４      ファクス受信フィルタ
１２１      文書編集フィルタ
１２２      文書変換フィルタ
１３１      印刷フィルタ
１３２      保管文書登録フィルタ
１３３      メール送信フィルタ
１３４      ファクス送信フィルタ
１３５      マーキングフィルタ
２４１      マーキングサービス共通部
２４２      マーキングサービス固有部
２４２ａ    出力者検知サービス部
２４２ｂ    改竄検知サービス部
６０１      コントローラ
６０２      オペレーションパネル
６０３      ファクシミリコントロールユニット
６０４      撮像部
６０５      印刷部
６１１      ＣＰＵ
６１２      ＡＳＩＣ
６２１      ＮＢ
６２２      ＳＢ
６３１      ＭＥＭ−Ｐ
６３２      ＭＥＭ−Ｃ
６３３      ＨＤＤ
６３４      メモリカードスロット
６３５      メモリカード
６４１      ＮＩＣ
６４２      ＵＳＢデバイス
６４３      ＩＥＥＥ１３９４デバイス
６４４      セントロニクスデバイス
１０４１    マーキングアクティビティ共通部
１０４２    マーキングアクティビティ固有部
１０４２ａ  出力者検知アクティビティ部
１０４２ｂ  改竄検知アクティビティ部
２４１１    代理部
２４１２    固有部管理部
２４１３    固有部実行部
２４１４    サービス処理条件
２４１５    固有部インタフェース
【図１】
2010074434.tif 000003
【図２】
2010074434.tif 000004
【図３】
2010074434.tif 000005
【図４】
2010074434.tif 000006
【図５】
2010074434.tif 000007
【図６】
2010074434.tif 000008
【図７】
2010074434.tif 000009
【図８】
2010074434.tif 000010
【図９】
2010074434.tif 000011
【図１０】
2010074434.tif 000012
【図１１】
2010074434.tif 000013
【図１２】
2010074434.tif 000014
【図１３】
2010074434.tif 000015
【図１４】
2010074434.tif 000016
【図１５】
2010074434.tif 000017
【図１６】
2010074434.tif 000018
【図１７】
2010074434.tif 000019
【図１８】
2010074434.tif 000020
【図１９】
2010074434.tif 000021
【図２０】
2010074434.tif 000022
【図２１】
2010074434.tif 000023
【図２２】
2010074434.tif 000024
【図２３】
2010074434.tif 000025
【図２４】
2010074434.tif 000026
【図２５】
2010074434.tif 000027
【図２６】
2010074434.tif 000028
【図２７】
2010074434.tif 000029
【図２８】
2010074434.tif 000030
【図２９】
2010074434.tif 000031
【図３０】
2010074434.tif 000032
【図３１】
2010074434.tif 000033
【図３２】
2010074434.tif 000034
【図３３】
2010074434.tif 000035
【図３４】
2010074434.tif 000036
【図３５】
2010074434.tif 000037
【図３６】
2010074434.tif 000038
【図３７】
2010074434.tif 000039
【図３８】
2010074434.tif 000040
【図３９】
2010074434.tif 000041
【図４０】
2010074434.tif 000042
【図４１】
2010074434.tif 000043
【図４２】
2010074434.tif 000044
【図４３】
2010074434.tif 000045
【図４４】
2010074434.tif 000046