以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、情報処理装置の具体例として画像形成装置を用いて説明する。図1は、本発明の実施の形態における画像形成装置のハードウェア構成の一例を示す図である。図1では、画像形成装置の具体例として、プリンタ、コピー、スキャナ、又は、ファクス等の複数の機能を一台の筐体において実現する複合機1のハードウェア構成が示されている。
複合機1のハードウェアとしては、コントローラ601と、オペレーションパネル602と、ファクシミリコントロールユニット(FCU)603と、撮像部604と、印刷部605が存在する。
コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。
CPU611は、種々の情報処理用のICである。ASIC612は、種々の画像処理用のICである。NB621は、コントローラ601のノースブリッジである。SB622は、コントローラ601のサウスブリッジである。MEM−P631は、複合機1のシステムメモリである。MEM−C632は、複合機1のローカルメモリである。HDD633は、複合機1のストレージである。メモリカードスロット634は、メモリカード635をセットするためのスロットである。NIC641は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス642は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス643は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス644は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル602は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
図2は、本発明の実施の形態の画像形成装置におけるソフトウェア構成例を示す図である。図2に示されるように、複合機1におけるソフトウェアは、アプリケーションメカニズム10、サービスメカニズム20、デバイスメカニズム30、及び運用部40等のレイヤによって構成される。図2におけるレイヤの上下関係は、レイヤ間の呼び出し関係に基づいている。すなわち、基本的に図中において上にあるレイヤが下のレイヤを呼び出す。図2に示されるソフトウェアは、例えば、HDD633に記憶されており、実行時にMEM−P631にロードされてCPU611にその機能を実行させる。
アプリケーションメカニズム10は、複合機1が提供する機能又は情報(データ)等の資源をユーザに利用させるためのソフトウェア部品(プログラム)群が実装されているレイヤである。本実施の形態では、アプリケーションメカニズム10に実装される一部のソフトウェア部品を「フィルタ」と呼ぶ。これは、複合機1のジョブを実行する手アプリケーションが、「パイプ&フィルタ」と呼ばれるソフトウェアアーキテクチャに基づいて構築されることによる。
図3は、パイプ&フィルタアーキテクチャの概念を説明するための図である。図3において、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、例えば、両端のフィルタより参照可能な記録領域によって構成され、フィルタから出力されたデータを次のフィルタに伝達する。
すなわち、本実施の形態における複合機1では、ジョブをドキュメント(データ)に対する「変換」の連続として捉える。複合機1のジョブは、ドキュメントの入力、加工、及び、出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び、「出力」を、それぞれ「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。基本的に、各フィルタは、単独では一つのジョブを実行することはできず、複数のフィルタが、図3に示されるように接続されることにより、一つのジョブを実行するアプリケーションが構築される。
なお、各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的に存在しない。従って、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
図2において、アプリケーションメカニズム10には、入力フィルタとして、読取フィルタ111、保管文書読出フィルタ112、メール受信フィルタ113、及びファクス受信フィルタ114等が示されている。
読取フィルタ111は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ112は、複合機1の記憶装置に保管されている文書データ(画像データ)を読み出し、読み出されたデータを出力する。メール受信フィルタ113は、電子メールを受信し、当該電子メールに含まれているデータを出力する。ファクス受信フィルタ114は、ファクス受信を制御し、受信された印刷データを出力する。
また、加工フィルタとしては、文書編集フィルタ121及び文書変換フィルタ122等が示されている。文書編集フィルタ121は、入力されたデータに所定の画像変換処理(濃度調整、変倍、回転、及び集約等集)を施し、出力する。文書変換フィルタ122は、画像データのデータ形式を変換する。文書変換フィルタ122は、例えば、レンダリング処理、すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
また、出力フィルタとしては、印刷フィルタ131、保管文書登録フィルタ132、メール送信フィルタ133、ファクス送信フィルタ134、及びマーキング解析フィルタ135等が示されている。
印刷フィルタ131は、入力されたデータをプロッタに出力(印刷)させる。保管文書登録フィルタ132は、入力されたデータを複合機1内の記憶装置、例えば、HDD633に保存する。メール送信フィルタ133は、入力されたデータを電子メールに添付して送信する。ファクス送信フィルタ134は、入力されたデータをファクス送信する。マーキング解析フィルタ135は、入力された画像データに合成されているマーキング(バーコードや地紋等のパターン)の解析(マーキングに埋め込まれた情報の抽出等)を行い、その解析結果を出力する。
例えば、複合機1における各種機能は、次のようなフィルタの組み合わせにより実現される。図4は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
例えば、コピー機能は、読取フィルタ111と印刷フィルタ131とを接続することにより実現される。読取フィルタ111によって原稿より読み取られた画像データを印刷フィルタ131によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書編集フィルタ121が二つのフィルタの間に挿入される。
スキャンto email機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ111とメール送信フィルタ133とを接続することによって実現される。ファクス送信機能は、読取フィルタ111とファクス送信フィルタ134とを接続することによって実現される。ファクス受信機能は、ファクス受信フィルタ114と印刷フィルタ131とを接続することによって実現される。ドキュメントボックス蓄積機能(スキャンした画像データを複合機1内に保存する機能)は、読取フィルタ111と保管文書登録フィルタ132とを接続することによって実現される。ドキュメントボックス印刷機能(複合機1内に保存されている文書データを印刷する機能)は、保管文書読出フィルタ102と印刷フィルタ131とを接続することにより実現される。
図4において、例えば、読取フィルタ111については5つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。また、複合機1では各フィルタを部品としてアプリケーションを構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たなアプリケーションを容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、アプリケーションメカニズム10より下位のレイヤについて、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
アプリケーションメカニズム10には、また、「アクティビティ」と呼ばれるソフトウェア部品が存在する。アクティビティは、複数のフィルタをどの順番で接続するかを管理し、その順番でフィルタを実行させることによりジョブを実行するソフトウェア部品であり、一つのアクティビティによって一つのアプリケーションが実現される。
すなわち、フィルタはそれぞれ独立性が高いため、フィルタの組み合わせ(アプリケーション)を動的に構築することが可能である。具体的には、ジョブの実行要求を受け付けるたびに、利用するフィルタと、フィルタの実行順序、及びそれぞれのフィルタの動作条件等をオペレーションパネル602を介してユーザに設定させることにより、ユーザ所望の機能を実現するようにしてもよい。
しかし、コピー機能のように頻繁に利用する機能については、毎回フィルタを選択することにより実行指示を行うのはユーザにとって煩雑である。かかる課題を解決するのがアクティビティである。すなわち、フィルタの組み合わせ(接続関係)をアクティビティとして予め定義しておけば、ユーザは、アクティビティを単位として実行対象を選択することができる。選択されたアクティビティは、当該アクティビティに定義された組み合わせに係る各フィルタを自動的に実行する。したがって、アクティビティによって、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
図中には、アクティビティの一例として、コピーアクティビティ101、送信アクティビティ102、ファクスアクティビティ103、リフレッシュコピー検知アクティビティ104、セキュリティトレース検知アクティビティ105、及び改竄検知アクティビティ106等が含まれる。例えば、コピーアクティビティ101は、読取フィルタ111と、文書編集フィルタ121と、印刷フィルタ131との組み合わせにより、コピー機能(コピーアプリケーション)を実現する。リフレッシュコピー検知アクティビティ104は、リフレッシュコピー機能を実現するアクティビティである。
リフレッシュコピー機能について説明する。図7は、リフレッシュコピー機能を説明するための図である。リフレッシュコピー機能を実現するための処理は、埋込段階(リフレッシュコピー埋込処理)と読取段階(リフレッシュコピー読取処理)とより構成される。図中において、(A)は埋込段階を示し、(B)は読取段階を示す。
(A)では、紙文書300が複合機1によってコピーされ紙文書300aが出力される様子が示されている。この際、複合機1は、紙文書300aの紙IDを示すマーキングとしてバーコードb1を紙文書300aに印字する。また、複合機1は、紙文書300より読み取られた画像データ310と紙IDとを関連付けてHDD633に保存する。ここで、紙IDとは、紙文書一枚一枚を識別するための識別情報である。
(B)では、紙文書300aが複合機1によってコピーされ紙文書300bが出力される様子が示されている。この際、複合機1は、紙文書300aのバーコードb1を読み取ることにより紙文書300の紙IDを識別し、当該紙IDに関連付けられてHDD633に保存されている画像データを印刷用紙に印刷した結果を紙文書300bとして出力する。なお、紙文書300bには、紙文書300aとは異なる紙IDを示すバーコードb2が印字される。
すなわち、リフレッシュコピー機能における読取段階(B)では、コピー元の紙文書300aから読み取られた画像データではなく、埋込段階において保存されている画像データ310が印刷対象となる。したがって、例えば、紙文書300aに書き込みd1がされている場合であっても、書き込みd1は紙文書300bに印字されない。
リフレッシュコピー検知アクティビティ104は、斯かるリフレッシュコピー機能において、読取段階を実行するためのアクティビティである。
セキュリティトレース検知アクティビティ105は、紙文書として印刷された情報のセキュリティの確保を目的として当該情報と共に紙文書に印字されたマーキング(本実施の形態では地紋)を解析し、その解析結果を通知する。
改竄検知アクティビティ106は、紙文書として印刷された情報の改竄の検知を目的として当該情報と共に紙文書に印字されたマーキング(本実施の形態では地紋)に基づいて、紙文書における情報の改竄の有無を検知する。
なお、基本的に各アクティビティは独立しており、アクティビティ間における依存関係(呼び出し関係)は基本的に存在しない。したがって、アクティビティ単位で追加(インストール)又は削除(アンインストール)が可能である。よって、図2に示されているアクティビティ以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティを作成し、インストールすることができる。
フィルタ及びアクティビティについて更に詳しく説明する。図5は、フィルタの構成要素を説明するための図である。図5に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用UI、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
フィルタ設定用UIは、フィルタの動作条件等を設定させるための画面をオペレーションパネル602等に表示させるプログラムである。すなわち、フィルタごとに動作条件が設定される。例えば、読取フィルタ111であれば、フィルタ設定用UIは、原稿種類、読取サイズ、解像度等を設定させる画面が相当する。なお、オペレーションパネル602が、HTMLデータや、スクリプトに基づいて表示制御を行うことが可能であれば、フィルタ設定用UIは、HTMLデータやスクリプトであってもよい。
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、サービスメカニズム20等を利用して、フィルタ設定用UIを介して設定された動作条件に応じてフィルタの機能を実現する。例えば、読取フィルタ111であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。
永続記憶領域情報は、フィルタに対する設定情報(例えば、動作条件のデフォルト値)等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部23に登録される。
図6は、アクティビティの構成要素を説明するための図である。図6に示されるように、アクティビティは、アクティビティUI、アクティビティロジック、及び永続記憶領域情報等より構成される。
アクティビティUIは、アクティビティに関する画面(例えば、アクティビティの動作条件等を設定させるための設定画面)をオペレーションパネル602等に表示させるための情報又はプログラムである。
アクティビティロジックは、アクティビティの処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック(例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等)が実装されている。
永続記憶領域情報は、アクティビティに対する設定情報(例えば、動作条件のデフォルト値)等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティのインストール時にデータ管理部23に登録される。
図2に戻る。サービスメカニズム20は、アクティビティ又はフィルタ等が利用するプリミティブなサービスを提供するソフトウェア部品や、アプリケーションが機種等のハード的な仕様に対して、非依存となるための仕組みを提供すソフトウェア部品等が実装されるレイヤである。図中において、サービスメカニズム20には、画像パイプ21、UI部22、データ管理部23、紙トレースサービス24、マーキング解析サービス25、及びマーキングハンドリングサービス26等のソフトウェア部品が含まれる。
画像パイプ21は、上述したパイプの機能を実現する。すなわち、メモリ領域等を用いて或るフィルタからの出力データを次のフィルタに伝達する。なお、図中において、画像パイプ21は、一つのブロックによって示されているが、その実体はフィルタ間を接続するパイプの数だけ生成される。
UI部22は、オペレーションパネル602に表示される操作画面を介して入力されるユーザ要求を解釈し、ユーザ要求に応じた処理制御をアプリケーションメカニズム10又はサービスメカニズム20等におけるソフトウェア部品に委譲する。データ管理部23は、ユーザ情報等、機器内外に保存される各種情報について、保存方法、及び保存場所等を規定する。
紙トレースサービス24は、複合機1によって画像データが印刷された紙文書を一意に識別するための紙IDの発行及び管理を行う。マーキング解析サービス25は、画像データに対して合成されているマーキングを解析ための処理の制御を行う。マーキングハンドリングサービス26は、マーキング解析サービス25より指定された条件で画像データからのマーキングの検知処理を実行する。
デバイスメカニズム30は、複合機1が有するデバイス毎に設けられたデバイスを制御する手段を有する。
運用部40は、システムの運用管理に関するソフトウェア部品が実装される部分であり、アプリケーションメカニズム10、サービスメカニズム20、及びデバイスメカニズム30より共通に利用される。図中において、運用部40には、プラグイン管理部41が含まれている。プラグイン管理部41は、アクティビティ及びフィルタ等、自由に抜き差し(インストール・アンインストール)可能なソフトウェア部品の情報を管理する。
以上のようなソフトウェア構成を有する複合機1において、本実施の形態ではマーキングフィルタ解析フィルタ135を用いてアプリケーションを実現するリフレッシュコピー検知アクティビティ104、セキュリティトレース検知アクティビティ105、及び改竄検知アクティビティ106について詳細に説明する。
第一の実施の形態では、リフレッシュコピー検知アクティビティ104について説明する。図8及び図9は、第一の実施の形態における処理手順を説明するためのシーケンス図である。
オペレーションパネル602に表示されている操作画面を介して、ユーザによってリフレッシュコピー検知アクティビティ104が実行対象として選択されると、UI部22は、リフレッシュコピー検知アクティビティ104に対して起動を指示する(S101)。リフレッシュコピー検知アクティビティ104は、起動指示に応じ、リフレッシュコピー検知アクティビティ104自身の動作条件を格納するためのオブジェクト(以下、「プリファレンスオブジェクト」という。)を生成する(S102)。プリファレンスオブジェクトとは、動作条件を規定するパラメータが属性として定義されたクラスのインスタンスをいい、当該クラスの構成は、アクティビティ及びフィルタごとに異なり得る。
続いて、リフレッシュコピー検知アクティビティ104は、自らが利用する各フィルタ(読取フィルタ111、マーキング解析フィルタ135、保管文書読み出しフィルタ112、文書編集フィルタ121、及び印刷フィルタ131)のそれぞれに対して、プリファレンスオブジェクトの生成を要求する(S103〜S107)。各フィルタは、当該フィルタに固有の属性を有するプリファレンスオブジェクトを生成し、生成されたプリファレンスオブジェクトをリフレッシュコピー検知アクティビティ104に返却する。なお、以上において生成されたリフレッシュコピー検知アクティビティ104及び各フィルタのプリファレンスオブジェクトの属性には既定値が設定されている。
続いて、リフレッシュコピー検知アクティビティ104は、自らに定義されているリフレッシュコピー検知アクティビティ104と各フィルタとの接続関係(リフレッシュコピー検知アクティビティ104と各フィルタとの利用関係及び各フィルタの実行順の前後関係)に基づいて、各プリファレンスオブジェクトの間に関連を生成することにより当該接続関係を示す情報(プリファレンスツリー)を構築する(S108)。
ところで、リフレッシュコピー検知アクティビティ104は、一回の実行要求に応じて2つのジョブを実行する。1つ目は、紙文書からの画像データの読み込みと、その画像データに合成されているマーキングの解析による紙IDの特定を行うジョブ(以下、「第一ジョブ」という。)であり、読取フィルタ111とマーキング解析フィルタ135が利用される。2つ目は、紙IDに関連付けられている画像データの読み出しと、当該画像データに対する変換処理と、変換処理が施された画像データの印刷を行うジョブ(以下、「第二ジョブ」という。)であり、保管文読出フィルタ112、文書編集フィルタ121、及び印刷フィルタ131が利用される。第二ジョブは、第一ジョブにおいて、正常に紙IDが取得された場合に実行される。すなわち、第二ジョブは、必ずしも実行されるとは限らない。したがって、ステップS108では、第一ジョブに関するプリファレンスツリーが構築される。
図10は、リフレッシュコピー検知アクティビティの第一ジョブに関するプリファレンスツリーの例を示す図である。
同図において、プリファレンスツリーP1は、リフレッシュコピー検知アクティビティ104、読取フィルタ111、マーキング解析フィルタ135のそれぞれに対するプリファレンスオブジェクトである、リフレッシュコピー検知プリファレンス104p、読取プリファレンス111p、及びマーキング解析プリファレンス135p等より構成される。
読取プリファレンス111pは、原稿種類、読取サイズ、カラーモード、解像度、及び原稿面等のパラメータを含む。マーキング解析フィルタ135pは、マーキングタイプ等のパラメータを含む。マーキングタイプは、解析すべきマーキング自体又はその用途の種類を示す情報であり、本実施の形態では「バーコード」、「セキュリティトレース」、又は「改竄検知」の値が設定されうる。マーキング解析フィルタ135pは、更に、マーキングタイプの値に応じてバーコード用パラメータ135p1、セキュリティトレース用パラメータ135p2、改竄検知用パラメータ135p3を含む。バーコード用パラメータ135p1は、マーキングタイプが「バーコード」の際に有効となるパラメータであり、検知領域を含む。検知領域は、マーキングを検知すべき領域を示す。セキュリティトレース用パラメータ135p2及び改竄検知用パラメータ135p3については、第二又は第三の実施の形態において説明する。
リフレッシュコピー検知プリファレンス104pから他のプリファレンスオブジェクトへの関連l1及びl2は、リフレッシュコピー検知アクティビティ104と各フィルタとの利用関係に基づいて生成される。各フィルタ間の関連l3は、フィルタの実行順の前後関係に基づいて生成される。なお、各関連は、例えば、一方のプリファレンスオブジェクトが他方のプリファレンスオブジェクトの識別情報(参照、ポインタ、又はID等)をメンバ変数によって保持することにより実装すればよい。
起動指示に対応する処理が完了すると(S109)、UI部22は、オペレーションパネル602に、リフレッシュコピー検知アクティビティ104の操作画面(リフレッシュコピー検知操作画面)を表示させる。
図11は、リフレッシュコピー検知操作画面の表示例を示す図である。図11において、リフレッシュコピー検知操作画面500は、文書編集条件設定領域121g及び印刷条件設定領域131g等より構成される。各領域は、各フィルタのフィルタ設定用UI(図5参照)に基づいてUI部22が表示させる。ユーザは、各領域を操作することにより、各フィルタの動作条件を設定する。各領域において設定可能な動作条件のパラメータは、基本的に各フィルタに対応するプリファレンスオブジェクトの属性に一致する。
例えば、文書編集条件設定領域121gにおいて動作条件が設定されると、UI部22は、文書編集フィルタ121に対して設定内容を通知する(S110)。当該通知に応じ、文書編集フィルタ121は、設定内容を文書編集プリファレンス121pに反映(設定)する。同様に、印刷条件設定領域131gにおいて動作条件が設定されると、UI部22は、印刷フィルタ131に対して設定内容を通知する(S111)。当該通知に応じ、印刷フィルタ131は、設定内容を印刷プリファレンス131pに反映(設定)する。
なお、リフレッシュコピー検知操作画面500には、リフレッシュコピー検知アクティビティ104より利用されるフィルタのうち、読取フィルタ111、マーキング解析フィルタ135、及び保管文書読出フィルタ112の動作条件を設定させるための領域は無い。これらのフィルタの動作条件については、リフレッシュコピー機能の読取段階を実現するために適切な値が自動的に設定されるからである。
続いて、オペレーションパネル602においてスタートボタンが押下されることにより、ユーザによってジョブの開始指示が入力されると、UI部22は、リフレッシュコピー検知アクティビティ104に対してジョブの実行を指示する(S112)。ジョブの実行指示に応じ、リフレッシュコピー検知アクティビティ104は、読取フィルタ111に対してマーキングタイプを引数として、当該マーキングタイプに対応した適切な動作条件を自ら(読取フィルタ111)に設定するよう要求する(S113)。リフレッシュコピー機能では、紙IDを示すバーコードを読み取る必要があるため、ここでのマーキングタイプには、「バーコード」が指定される。
当該要求に応じ、読取フィルタ111は、指定されたマーキングタイプ(バーコード)の読み取りに適切な動作条件(読取条件)をマーキング解析サービス25に問い合わせる(S114)。マーキング解析サービス25は、バーコードの読み取りに適切な読取条件(例えば、グレースケール、600dpi等)を判定し(S115)、判定結果としての読取条件を読取フィルタ111に返却する(S116)読取フィルタ111は、返却された読取条件を読取プリファレンス111pに設定する(S117)。
ここで、マーキングタイプに応じた読取条件をマーキング解析サービス25に判定させるのは、読取フィルタ111の汎用性を確保するためである。すなわち、読取フィルタ111の責務は、紙文書より画像データを読み取ることである。また、読取フィルタ111は、リフレッシュコピー検知アクティビティ104だけでなく、コピーアクティビティ101等の他のアクティビティからも利用される。読取フィルタ111の斯かる責務及びその汎用性に鑑みて、マーキングの読み取り又は解析といった特定の機能に関する判断処理を読取フィルタ111に組み込むのは好ましくない。そこで、マーキングタイプに応じた読取条件の判定処理は、マーキングの解析に特化したソフトウェア部品であるマーキング解析サービス25に委譲させているのである。
読取フィルタ111による動作条件の設定が完了すると(S118)、リフレッシュコピー検知アクティビティ104は、マーキングタイプ(バーコード)を引数として、当該マーキングタイプに対応した動作条件の設定をマーキング解析フィルタ135に要求する(S120)。マーキング解析フィルタ135は、当該要求に応じ、マーキング解析プリファレンス135pのマーキングタイプの値を「バーコード」に設定すると共に、バーコード用パラメータ135p1の検知領域の値を設定する。
続いて、リフレッシュコピー検知アクティビティ104は、プリファレンスツリーP1に基づいて、第一ジョブにおいて利用されるフィルタ間を接続する画像パイプ21を生成する(S121)。ここでは、図10のプリファレンスツリーP1における関連l3に基づいて、読取フィルタ111とマーキング解析フィルタ135とを接続する画像パイプ21aが生成される。
続いて、リフレッシュコピー検知アクティビティ104は、プリファレンスツリーP1に基づいて、リフレッシュコピー検知アクティビティ104と各フィルタと画像パイプ21aとの接続を行う(S122)。当該接続が形成されることにより、リフレッシュコピー検知アクティビティ104、読取フィルタ111、マーキング解析フィルタ135、及び画像パイプ21aによって実行される第一ジョブにおける処理の流れを表現するツリー構造(以下「ジョブツリー」という。)が構築される。
図12は、リフレッシュコピー検知アクティビティの第一ジョブに関するジョブツリーの例を示す図である。同図に示されるジョブツリーJ1は、リフレッシュコピー検知アクティビティ104、読取フィルタ111、マーキング解析フィルタ135、及び画像パイプ21a等より構成される。
リフレッシュコピー検知アクティビティ104と各フィルタとの接続(関連l51、l52)は、プリファレンスツリーP1における関連l1及びl2に基づいて生成される。また、読取フィルタ111と画像パイプ21aとの接続(関連l53)、及び画像パイプ21aとマーキング解析フィルタ135との接続(関連l54)は、プリファレンスツリーP1における関連l3に基づいて生成される。
このように、プリファレンスツリーに基づくジョブツリーの構築は、固定的なものでなく汎用的な、また、動的な変換処理として実装されている。
ジョブツリーJ1が構築されると、リフレッシュコピー検知アクティビティ104は、ジョブツリーJ1に基づいてジョブの実行を開始する。まず、リフレッシュコピー検知アクティビティ104は、ジョブツリーJ1において末端のフィルタ(当該フィルタの出力先に画像パイプ21が接続されていないフィルタ)に対して処理の実行要求を行う。通常、末端のフィルタは、出力フィルタであり、ここでは、マーキング解析フィルタ135がそれに該当する。したがって、まず、マーキング解析フィルタ135に対して実行要求がなされる(S123)。
実行要求を受けたマーキング解析フィルタ135は、ジョブツリーJ1において自らの入力先に接続されている画像パイプ21aに画像データの入力を要求する(S124)。画像パイプ21aは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーJ1において自らの入力先に接続されている読取フィルタ111に対して処理の実行を要求する(S125)。
読取フィルタ111は、実行要求に応じ、読取プリファレンス111pに設定された動作条件(すなわち、バーコードの読み取りに適した読取条件)に従って撮像部604を制御して原稿からの画像データの読み取りを行い(S126)、読み取られた画像データをジョブツリーJ1において自らの出力先に接続されている画像パイプ21aに出力する(S127)。画像パイプ21aは、画像データの入力に応じ、画像データの入力を要求していたマーキング解析フィルタ135に対して画像パイプ21aの状態変化(ここでは、画像データが入力されたこと)を通知する(S128)。当該通知に応じ、マーキング解析フィルタ135は、画像パイプ21aより画像データを取得し、マーキング解析プリファレンス135pに設定された動作条件(マーキングタイプ=「バーコード」等)に基づいて画像データに合成されているバーコードの解析処理を実行する(S129)。当該解析処理において、マーキング解析フィルタ135は、マーキングタイプ(バーコード)及びバーコード用パラメータ135p1等を引数として、画像データに合成されているマーキングの解析をマーキング解析サービス25に委譲する(S130)。マーキング解析サービス25は、マーキングハンドリングサービス26に対してバーコード用パラメータ135p1に指定された検知領域におけるバーコードの検知を要求する(S131)。マーキングハンドリングサービス26は、指定された検知領域に基づいて画像データにおけるバーコードの検知を行い、検知されたバーコードに記録されているデータ(ビット列)を解析結果としてマーキング解析サービス25に返却する(S132)。マーキング解析サービス25は、解析結果としてのデータをマーキング解析フィルタ135に返却する(S133)。マーキング解析フィルタ135は、解析結果を保持し、処理の完了通知をリフレッシュコピー検知アクティビティ104に通知する(S134)。これにより、第一ジョブは完了する。
続いて、リフレッシュコピー検知アクティビティ104は、マーキング解析フィルタ135より、バーコードより解析されたデータを取得する(S135、S136)。リフレッシュコピー検知アクティビティ104は、当該データ(ビット列)を紙IDとして扱い、当該紙IDに関連付けられている文書情報の取得を紙トレースサービス24に要求する(S137)。
続いて、紙トレースサービス24は、紙IDに関連付けられて管理されている(例えば、HDD633に記録されている)文書IDを検索し、当該文書IDに関連付けられて管理されている文書情報をリフレッシュコピー検知アクティビティ104に返却する(S138)。ここで、文書IDとは、図7(A)に示される埋込段階等においてHDD633に保存される画像データ300、並びに当該画像データの保存を指示したユーザのユーザ名、保存が行われた日時、及び保存を行った複合機1の名前(マシン名)等の書誌情報(文書情報)を、複合機1内において(ローカルな範囲内において)一意に識別するために各画像データ300に対して割り当てられるIDである。一方、紙一枚一枚の識別を目的とする紙IDは、複合機1内において(ローカルな範囲において)一意ではなく、複合機1外において(グローバルな範囲において)一意となるように割り当てられる。紙は複合機1の存在と関係なく流通するからである。紙トレースサービス24は、埋込段階において画像データ300に対する紙IDを発行し、当該紙IDを画像データ300の文書IDと関連付けて管理している。したがって、紙トレースサービス24は、ステップS137における要求に応じ、紙IDに対応する文書情報を返却することができるのである。なお、紙トレースサービス24は、画像データのロケーション情報を文書情報に含めて返却する。ロケーション情報とは、画像データが所在する複合機1を識別するための情報であり、例えば、IPアドレス等が用いられる。ロケーション情報は、紙IDに基づいて特定される。例えば、ロケーション情報は、紙IDの一部として含まれていても良い。この場合、紙トレースサービス24は、ステップS137において入力された紙IDよりロケーション情報を抽出し、抽出されたロケーション情報を文書情報に含めて返却する。
続いて、リフレッシュコピー検知アクティビティ104は、リフレッシュコピー検知アクティビティ104と各フィルタとの第二ジョブに関する接続関係に基づいて、各プリファレンスオブジェクトの間に関連を生成することにより第二ジョブに関するプリファレンスツリーを構築する(S139)。
図13は、リフレッシュコピー検知アクティビティの第二ジョブに関するプリファレンスツリーの例を示す図である。同図において、プリファレンスツリーP2は、リフレッシュコピー検知アクティビティ104、保管文書読出フィルタ112、文書編集フィルタ121、印刷フィルタ131のそれぞれに対するプリファレンスオブジェクトである、リフレッシュコピー検知プリファレンス104p、保管文書読出プリファレンス112p、文書編集プリファレンス121p、及び印刷プリファレンス131p等より構成される。
保管文書読出プリファレンス112pは、ロケーション情報及び文書ID等のパラメータを含む。文書編集プリファレンス121pは、自動濃度、手動濃度、変倍種類、画像回転、及び集約等のパラメータを含む。印刷プリファレンス131pは、カラーモード、用紙選択、印刷面、印刷部数、ソート、ステープル、パンチ、及び排紙先等のパラメータを含む。
リフレッシュコピー検知プリファレンス104pから他のプリファレンスオブジェクトへの関連l4、l5、及びl6は、リフレッシュコピー検知アクティビティ104と各フィルタとの利用関係に基づいて生成される。各フィルタ間の関連l7及びl8は、フィルタの実行順の前後関係に基づいて生成される。
続いて、リフレッシュコピー検知アクティビティ104は、取得された文書情報に含まれているロケーション情報及び文書IDを、画像データの読み出し条件として設定するよう保管文書読出フィルタ112に要求する(S140)。保管文書読出フィルタ112は、当該ロケーション情報及び文書IDを、読み出し対象とする画像データを特定するための動作条件として保管文書読出プリファレンス112pに設定する。
続いて、リフレッシュコピー検知アクティビティ104は、プリファレンスツリーP2に基づいて、各フィルタ間を接続する画像パイプ21を生成する(S141、S142)。ここでは、プリファレンスツリーP2における関連l7に基づいて、保管文書読出フィルタ112と文書編集フィルタ121とを接続する画像パイプ21bが生成され、関連l8に基づいて、文書編集フィルタ121と印刷フィルタ131とを接続する画像パイプ21cが生成される。
続いて、リフレッシュコピー検知アクティビティ104は、プリファレンスツリーP2に基づいて、コピーアクティビティ101と各フィルタと画像パイプ21との接続を行い、第二ジョブのジョブツリーを生成する(S143)。
図14は、リフレッシュコピー検知アクティビティの第二ジョブに関するジョブツリーの例を示す図である。同図に示されるジョブツリーJ2は、リフレッシュコピー検知アクティビティ104、文書読出フィルタ112、文書編集フィルタ121、印刷フィルタ131、画像パイプ21b及び21c等より構成される。
リフレッシュコピー検知アクティビティ104と各フィルタとの接続(関連l55、l56、l57)は、プリファレンスツリーP2における関連l4、l5、l6に基づいて生成される。また、保管文書読出フィルタ112と画像パイプ21bとの接続(関連l58)、及び画像パイプ21bと文書編集フィルタ121との接続(関連l59)は、プリファレンスツリーP2における関連l7に基づいて生成される。また、文書編集フィルタ121と画像パイプ21cとの接続(関連l60)、及び画像パイプ21cと印刷フィルタ131との接続(関連l61)は、プリファレンスツリーP2における関連l8に基づいて生成される。
ジョブツリーJ2が構築されると、リフレッシュコピー検知アクティビティ104は、ジョブツリーJ2に基づいてジョブの実行を開始する。まず、リフレッシュコピー検知アクティビティ104は、ジョブツリーJ2において末端のフィルタである、印刷フィルタ131に対して処理の実行要求を行う(S144)。
実行要求を受けた印刷フィルタ131は、ジョブツリーJ2において自らの入力先に接続されている画像パイプ21cに1ページ分の画像データの入力を要求する(S145)。画像パイプ21cは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーJ2において自らの入力先に接続されている文書編集フィルタ121に対して処理の実行を要求する(S146)。文書編集フィルタ121は、ジョブツリーJ2において自らの入力先に接続されている画像パイプ21bに画像データの入力を要求する(S147)。画像パイプ21bは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーJ2において自らの入力先に接続されている保管文書読出フィルタ112に対して処理の実行を要求する(S148)。
保管文書読出フィルタ112は、実行要求に応じ、保管文書読出プリファレンス112pに設定された文書ID及びロケーション情報によって特定される画像データをHDD633より読み出し(取得し)(S149)、読み出された画像データをジョブツリーJ2において自らの出力先に接続されている画像パイプ21bに出力する(S150)。この際、ロケーション情報に基づいて、読み出すべき画像データが当該複合機1外に保存されていると判定される場合、保管文書読出フィルタ112は、ネットワークを介して画像データを取得する。なお、ここで読み出される画像データは、第一ジョブにおいて紙文書より読み取られた画像データに含まれていたバーコードに記録されていた紙IDに係る画像データである。
画像パイプ21bは、画像データの入力に応じ、画像データの入力を要求していた文書編集フィルタ121に対して画像パイプ21bの状態変化(ここでは、画像データが入力されたこと)を通知する(S151)。当該通知に応じ、文書編集フィルタ121は、画像パイプ21bより画像データを取得し、取得された画像データに対して文書編集プリファレンス121pに設定された動作条件に従って、画像データに対する画像処理を行う(S152)。続いて、文書編集フィルタ121は、画像処理が施された画像データを自らの出力先に接続されている画像パイプ21cに出力する(S153)。画像パイプ21cは、画像データの入力に応じ、画像データの入力を要求していた印刷フィルタ131に対して画像パイプ21cの状態変化(ここでは、画像データが入力されたこと)を通知する(S154)。当該通知に応じ、印刷フィルタ131は、画像パイプ21cより画像データを取得し、印刷プリファレンス131pに設定された動作条件に従って印刷部605を制御して取得された画像データの印刷を行う(S155)。続いて、印刷フィルタ131は、処理の完了をリフレッシュコピー検知アクティビティ104に通知する(S156)。以上によって、第二ジョブの実行が完了し、併せてリフレッシュコピー機能における読取段階の実行が完了する。なお、上記では、1ページ分のコピーについて説明しているが、複数ページのコピーの場合は、ステップS145〜S155までがページ数分繰り返される。
次に、第二の実施の形態として、セキュリティトレース検知アクティビティ105について説明する。図15及び図16は、第二の実施の形態における処理手順を説明するためのシーケンス図である。
ステップS201〜S204では、図8におけるステップS101〜S104と同様の手順によって、セキュリティトレース検知アクティビティ105からの要求に応じて読取フィルタ111は読取プリファレンス111pを、マーキング解析フィルタ135はマーキング解析プリファレンス135pを生成する。続いて、セキュリティトレース検知アクティビティ105は、自らに定義されているセキュリティトレース検知アクティビティ105と各フィルタとの接続関係に基づいて、各プリファレンスオブジェクトの間に関連を生成することによりプリファレンスツリーを生成する(S205)。
図17は、セキュリティトレース検知アクティビティに関するプリファレンスツリーの例を示す図である。図17中、図10と同一部分には同一符号を付し、その説明は省略する。
図17において、プリファレンスツリーP3は、セキュリティトレース検知プリファレンス105p、読取プリファレンス111p、及びマーキング解析プリファレンス135p等より構成される。セキュリティトレース検知プリファレンス105pは、セキュリティトレース検知アクティビティ105のプリファレンスオブジェクトである。
マーキング解析プリファレンス135pに含まれるパラメータのうち、第二の実施の形態ではセキュリティトレース用パラメータ135p2が用いられる。セキュリティトレース用パラメータ135p2は、マーキング解析プリファレンス135pのマーキングタイプが「セキュリティトレース」の際に有効となるパラメータであり、検知モード、原稿濃度、及び検知閾値等を含む。検知モードは、速度優先で地紋を検知するか、正確性優先で地紋を検知するかを示す。原稿濃度は、画像の濃度を補正するためのパラメータである。原稿の濃度によって地紋が検知できあに場合があるために指定される。検知閾値は、地紋の検知を行う際の濃度の閾値を示す。
なお、セキュリティトレースプリファレンス105pから他のプリファレンスオブジェクトへの関連l10及びl11は、セキュリティトレース検知アクティビティ105と各フィルタとの利用関係に基づいて生成される。各フィルタ間の関連l12は、フィルタの実行順の前後関係に基づいて生成される。
起動指示に対応する処理が完了すると(S206)、UI部22は、オペレーションパネル602に、スタートボタンの押下を促すメッセージを表示させる。スタートボタンが押下されることにより、ユーザによってジョブの開始指示が入力されると、UI部22は、セキュリティトレースに対してジョブの実行を指示する(S207)。ジョブの実行指示に応じ、セキュリティトレース検知アクティビティ105は、読取フィルタ111に対してマーキングタイプとして「セキュリティトレース」を引数として、当該マーキングタイプに対応した適切な動作条件を自ら(読取フィルタ111)に設定するよう要求する(S208)。
当該要求に応じ、読取フィルタ111は、第一の実施の形態と同様に、指定されたマーキングタイプ(セキュリティトレース)の読み取りに適切な動作条件(読取条件)をマーキング解析サービス25に問い合わせる(S209)。マーキング解析サービス25は、セキュリティトレース用の地紋の読み取りに適切な読取条件を判定し(S210)、判定結果としての読取条件を読取フィルタ111に返却する(S211)。読取フィルタ111は、返却された読取条件を読取プリファレンス111pに設定する(S212)。
読取フィルタ111による動作条件の設定が完了すると(S213)、セキュリティトレース検知アクティビティ105は、マーキングタイプ(セキュリティトレース)を引数として、当該マーキングタイプに対応した動作条件の設定をマーキング解析フィルタ135に要求する(S214)。マーキング解析フィルタ135は、当該要求に応じ、マーキング解析プリファレンス135pのマーキングタイプの値を「セキュリティトレース」に設定すると共に、セキュリティトレース用パラメータ135p2の各パラメータの値を設定する。
続いて、セキュリティトレース検知アクティビティ105は、プリファレンスツリーP3に基づいて、ジョブにおいて利用されるフィルタ間を接続する画像パイプ21を生成する(S215)。ここでは、図17のプリファレンスツリーP3における関連l12に基づいて、読取フィルタ111とマーキング解析フィルタ135とを接続する画像パイプ21dが生成される。
続いて、セキュリティトレース検知アクティビティ105は、プリファレンスツリーP3に基づいて、セキュリティトレース検知アクティビティ105と各フィルタと画像パイプ21dとの接続を行うことによりジョブツリーを生成する(S216)。
図18は、セキュリティトレース検知アクティビティに関するジョブツリーの例を示す図である。同図に示されるジョブツリーJ3は、セキュリティトレース検知アクティビティ105、読取フィルタ111、マーキング解析フィルタ135、及び画像パイプ21d等より構成される。
セキュリティトレース検知アクティビティ105と各フィルタとの接続(関連l62、l63)は、プリファレンスツリーP3における関連l10及びl11に基づいて生成される。また、読取フィルタ111と画像パイプ21dとの接続(関連l64)、及び画像パイプ21dとマーキング解析フィルタ135との接続(関連l65)は、プリファレンスツリーP3における関連l12に基づいて生成される。
ジョブツリーJ3が構築されると、セキュリティトレース検知アクティビティ105は、ジョブツリーJ3に基づいてジョブの実行を開始する。まず、セキュリティトレース検知アクティビティ105は、ジョブツリーJ3において末端のフィルタであるマーキング解析フィルタ135に対して処理の実行要を行う(S217)。ステップS218〜S222においては、図8におけるステップS124〜S128と同様の手順によって、画像データの読み取りが実行され、マーキング解析フィルタ135に対して画像パイプ21dの状態変化(ここでは、画像データが入力されたこと)が通知される。なお、ステップS220では、セキュリティトレース用の地紋の読み取りに適した読取条件によって画像データの読み取りが行われる。
画像パイプ21dからの通知に応じ、マーキング解析フィルタ135は、画像パイプ21dより画像データを取得し、マーキング解析プリファレンス135pに設定された動作条件(マーキングタイプ=「セキュリティトレース」等)に基づいて画像データに合成されている地紋の解析処理を実行する(S223)。当該解析処理において、マーキング解析フィルタ135は、マーキングタイプ(セキュリティトレース)及びセキュリティトレース用パラメータ135p2等を引数として、画像データに合成されているマーキングの解析をマーキング解析サービス25に委譲する(S224)。マーキング解析サービス25は、マーキングハンドリングサービス26に対してマーキングタイプ(セキュリティトレース)とセキュリティトレース用パラメータ135p2に設定されたパラメータとを指定して地紋の検知を要求する(S225)。マーキングハンドリングサービス26は、指定されたパラメータに基づいて画像データからの地紋の検知を行い、検知された地紋に記録されているデータ(ビット列)を解析結果としてマーキング解析サービス25に返却する(S226)。
マーキング解析サービス25は、解析結果として返却されたデータ(すなわち、地紋に埋め込まれているデータ)が紙IDであるか否かを判定する(S227)。具体的には、当該データが紙IDの値として適切か否か(紙IDのデータ構成に合致するか否か)を判定する。当該データが紙IDである場合、マーキング解析サービス25は、当該紙IDを引数として紙トレースサービス24に対して文書情報の取得を要求する(S228)。紙トレースサービス24は、指定された紙IDに関連付けられている文書IDに係る文書情報を取得し、取得された文書情報を返却する(S229)。マーキング解析サービス25は、当該文書情報を解析結果としてマーキング解析フィルタ135に返却する(S230)。
なお、ステップS227において、マーキングハンドリングサービス26より返却されたデータが紙IDではないと判定された場合、マーキング解析サービス25は、ステップS230において当該データをそのまま返却する。本実施の形態では、セキュリティトレース用として地紋に埋め込まれている情報は紙ID又は文書情報そのものであるとする。したがって、いずれの場合であっても、ステップS230では文書情報がマーキング解析フィルタ135に返却される。
続いて、マーキング解析フィルタ135は、解析結果としての文書情報を保持し、処理の完了通知をセキュリティトレース検知アクティビティ105に通知する(S231)。セキュリティトレース検知アクティビティ105は、地紋より解析された文書情報を取得し(S232、S233)、当該文書情報の表示をUI部22に実行させる(S234)。これにより、オペレーションパネル602には、セキュリティトレースの解析結果を表示させるセキュリティトレース検知画面が表示される。
図19は、セキュリティトレース検知画面の表示例を示す図である。図19に示されるセキュリティトレース検知画面610は、今回実行されたジョブだけでなく、以前に行われたジョブを含んだ解析結果の一覧が表示される例が示されている。すなわち、セキュリティトレース検知画面610には、解析結果ごと(ジョブごと)に、検知日時、検知ジョブID、ジョブ総括、及び参照ボタンが表示されている。検知日時は、図15及び図16において説明したジョブが実行された日時である。検知ジョブIDは、当該ジョブのIDである。ジョブ総括は、当該ジョブの結果の概要を示すメッセージである。参照ボタンが押下されると、UI部22は、対応するジョブにおいて地紋より解析(抽出)された文書情報を表示させる。なお、このように、過去のジョブによる検知結果についても表示させる場合は、セキュリティトレース検知アクティビティ105は、ジョブが実行される度に解析結果等をHDD633に蓄積しておけばよい。
次に、第三の実施の形態として、改竄検知アクティビティ106について説明する。図20及び図21は、第三の実施の形態における処理手順を説明するためのシーケンス図である。
ステップS301〜S305では、図8におけるステップS101〜S104及びS107と同様の手順によって、改竄検知アクティビティ106からの要求に応じて読取フィルタ111は読取プリファレンス111pを、マーキング解析フィルタ135はマーキング解析プリファレンス135pを、印刷フィルタ131は印刷プリファレンス131pを生成する。続いて、改竄検知アクティビティ106は、自らに定義されている改竄検知アクティビティ106と各フィルタとの接続関係に基づいて、各プリファレンスオブジェクトの間に関連を生成することによりプリファレンスツリーを生成する(S306)。
図22は、改竄検知アクティビティに関するプリファレンスツリーの例を示す図である。図22中、図10又は図13と同一部分には同一符号を付し、その説明は省略する。
図22において、プリファレンスツリーP4は、改竄検知プリファレンス106p、読取プリファレンス111p、マーキング解析プリファレンス135p、及び印刷プリファレンス131p等より構成される。改竄検知プリファレンス106pは、改竄検知アクティビティ106のプリファレンスオブジェクトである。
マーキング解析プリファレンス135pに含まれるパラメータのうち、第三の実施の形態では改竄検知用パラメータ135p3が用いられる。改竄検知用パラメータ135p3は、マーキング解析プリファレンス135pのマーキングタイプが「改竄検知」の際に有効となるパラメータであり、検知精度及び原稿濃度等を含む。検知精度は、地紋の検知精度の高さを示す。原稿濃度は、セキュリティトレース用検知パラメータ135p2においける原稿濃度と同義である。
改竄検知プリファレンス106pから他のプリファレンスオブジェクトへの関連l13、l14、及びl15は、リフレッシュコピー検知アクティビティ104と各フィルタとの利用関係に基づいて生成される。各フィルタ間の関連l16及びl17は、フィルタの実行順の前後関係に基づいて生成される。起動指示に対応する処理が完了すると(S307)、UI部22は、改竄検知アクティビティ106のアクティビティUIに基づいて、改竄検知アクティビティ106の操作画面(改竄検知操作画面)をオペレーションパネル602に表示させる。
図23は、改竄検知操作画面の表示例を示す図である。図23において、改竄検知操作画面700は、印刷設定ボタン710及び検知設定ボタン720等より構成される。
検知設定ボタン720が押下されると、UI部22は、マーキング解析フィルタ135のフィルタ設定用UIに基づいて、図22に示される改竄検知用パラメータ135p3を設定させるための画面を表示させる。当該画面において各パラメータの値が設定されると、UI部22は、マーキング解析フィルタ135に対して設定内容を通知するとともに、マーキングタイプとして改竄検知を設定するように要求する(S308)。マーキング解析フィルタ135は、通知された設定内容を改竄検知用パラメータ135p3に反映すると共に、マーキング解析プリファレンス135pのマーキングタイプを「改竄検知」に設定する。
また、印刷設定ボタン710が押下されると、UI部22は、印刷フィルタ131のフィルタ設定用UIに基づいて、図22に示される印刷プリファレンス131pのパラメータを設定させるための画面を表示させる。当該画面において各パラメータの値が設定されると、UI部22は、設定内容を印刷フィルタ131に通知する(S309)。印刷フィルタ131は、通知された設定内容を印刷プリファレンス131pに反映する。
続いて、オペレーションパネル602においてスタートボタンが押下されることにより、ユーザによってジョブの開始指示が入力されると、UI部22は、改竄検知アクティビティ106に対してジョブの実行を指示する(S310)。ジョブの実行指示に応じ、改竄検知アクティビティ106は、読取フィルタ111に対してマーキングタイプとして「改竄検知」を引数として、当該マーキングタイプに対応した適切な動作条件を自ら(読取フィルタ111)に設定するよう要求する(S311)。
当該要求に応じ、読取フィルタ111は、第一又は第二の実施の形態と同様に、指定されたマーキングタイプ(改竄検知)の読み取りに適切な動作条件(読取条件)をマーキング解析サービス25に問い合わせる(S312)。マーキング解析サービス25は、改竄検知用の地紋の読み取りに適切な読取条件を判定し(S313)、判定結果としての読取条件を読取フィルタ111に返却する(S314)。読取フィルタ111は、返却された読取条件を読取プリファレンス111pに設定する(S315)。
続いて、改竄検知アクティビティ106は、プリファレンスツリーP4に基づいて、各フィルタ間を接続する画像パイプ21を生成する(S317、S318)。ここでは、プリファレンスツリーP4における関連l16に基づいて、読取フィルタ111とマーキング解析フィルタ135とを接続する画像パイプ21eが生成され、関連l17に基づいて、マーキング解析フィルタ135と印刷フィルタ131とを接続する画像パイプ21fが生成される。
続いて、改竄検知アクティビティ106は、プリファレンスツリーP4に基づいて、改竄検知アクティビティ106と各フィルタと画像パイプ21e及び21fとの接続を行うことによりジョブツリーを生成する(S216)。
図24は、改竄検知アクティビティに関するジョブツリーの例を示す図である。同図に示されるジョブツリーJ4は、改竄検知アクティビティ106、読取フィルタ111、マーキング解析フィルタ135、印刷フィルタ131、画像パイプ21e及び21f等より構成される。
改竄検知アクティビティ106と各フィルタとの接続(関連l71、l72、l73)は、プリファレンスツリーP4における関連l13、l14、l15に基づいて生成される。また、読取フィルタ111と画像パイプ21eとの接続(関連l74)、及び画像パイプ21eとマーキング解析フィルタ135との接続(関連l75)は、プリファレンスツリーP4における関連l16に基づいて生成される。また、マーキング解析フィルタ135と画像パイプ21fとの接続(関連l76)、及び画像パイプ21fと印刷フィルタ131との接続(関連l77)は、プリファレンスツリーP4における関連l17に基づいて生成される。
ジョブツリーJ4が構築されると、改竄検知アクティビティ106は、ジョブツリーJ4に基づいてジョブの実行を開始する。まず、改竄検知アクティビティ106は、ジョブツリーJ4において末端のフィルタである、印刷フィルタ131に対して処理の実行要求を行う(S320)。
実行要求を受けた印刷フィルタ131は、ジョブツリーJ4において自らの入力先に接続されている画像パイプ21fに1ページ分の画像データの入力を要求する(S321)。画像パイプ21fは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーJ4において自らの入力先に接続されているマーキング解析フィルタ135に対して処理の実行を要求する(S322)。マーキング解析フィルタ135は、ジョブツリーJ4において自らの入力先に接続されている画像パイプ21eに画像データの入力を要求する(S323)。画像パイプ21eは、自らが管理するメモリ領域に画像データが入力されていないため、ジョブツリーJ4において自らの入力先に接続されている読取フィルタ111に対して処理の実行を要求する(S324)。
ステップS325〜S327においては、図8におけるステップS126〜S128と同様の手順によって、画像データの読み取りが実行され、マーキング解析フィルタ135に対して画像パイプ21eの状態変化(ここでは、画像データが入力されたこと)が通知される。なお、ステップS325では、改竄検知用の地紋の読み取りに適した読取条件によって画像データの読み取りが行われる。
画像パイプ21eからの通知に応じ、マーキング解析フィルタ135は、画像パイプ21eより画像データを取得し、マーキング解析プリファレンス135pに設定された動作条件(マーキングタイプ=「改竄検知」等)に基づいて画像データに合成されている地紋の解析処理を実行する(S328)。当該解析処理において、マーキング解析フィルタ135は、マーキングタイプ(改竄検知)及び改竄検知用パラメータ135p3等を引数として、画像データに合成されているマーキングの解析をマーキング解析サービス25に委譲する(S329)。マーキング解析サービス25は、マーキングハンドリングサービス26に対してマーキングタイプ(改竄検知)と改竄検知用パラメータ135p3に設定されたパラメータを指定して地紋の検知を要求する(S330)。マーキングハンドリングサービス26は、指定されたパラメータに基づいて画像データからの地紋の検知を行い、検知された地紋に記録されているデータ(ビット列)を用いて、画像データの描画要素として記録されている情報(例えば、文章や図形等)の改竄の有無、及び改竄が有る場合はその位置(領域)を解析する。マーキングハンドリングサービス26は、その解析結果をマーキング解析サービス25に返却する(S331)。なお、地紋を利用した改竄の検知及び改竄位置の判定については、例えば、特開2005−12530号公報や特開2005−192148号公報等に記載されている公知の技術を用いればよい。
マーキングハンドリングサービス26より返却される解析結果において改竄が検知されたことが示されている場合、マーキング解析サービス25は、改竄された位置が視覚的に識別可能となるような画像処理を画像データに対して施す(S332)。例えば、改竄された位置を赤等の目立つ色による矩形又は円等によって囲む等、その位置にマークを付加する。続いて、マーキング解析サービス25は、改竄が検知されなかった場合は、改竄を識別するための画像処理が施されていない画像データを、改竄が検知された場合は当該画像処理が施された画像データ(以下、双方を総称する場合「解析結果画像データ」という。)をマーキング解析フィルタ135に返却する(S333)。
続いて、マーキング解析フィルタ135は、解析結果画像データをジョブツリーJ4において自らの出力先に接続されている画像パイプ21fに出力する(S334)。画像パイプ21fは、解析結果画像データの入力に応じ、画像データの入力を要求していた印刷フィルタ131に対して画像パイプ21fの状態変化(ここでは、画像データが入力されたこと)を通知する(S335)。当該通知に応じ、印刷フィルタ131は、画像パイプ21fより解析結果画像データを取得し、印刷プリファレンス131pに設定された動作条件に従って印刷部605を制御して取得された解析結果画像データの印刷を行う(S336)。したがって、改竄が検知された場合、改竄位置を示すマークが付加された印刷結果が得られる。続いて、印刷フィルタ131は、処理の完了を改竄検知アクティビティ106に通知する(S337)。
上述したように本実施の形態における複合機1によれば、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能(アプリケーション)を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。
したがって、本実施の形態のように、紙文書より読み取られた画像データに合成されているマーキングの解析機能を実現する場合も、マーキング解析フィルタ25を追加すればよく、画像データの読み取りに関しては既存の読取フィルタ111を利用することで、開発効率を向上させることができる。
また、フィルタの組み合わせによって構成される機能をアクティビティとして予め定義しておくことにより、より簡便な操作で、フィルタの組み合わせによる機能を利用することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。