(57)【特許請求の範囲】
【請求項１】
所定のジョブを実行し、前記ジョブの復元情報を生成する復元情報生成手段を有する複数のフィルタと、
前記複数のフィルタにおいて生成された前記復元情報の関連付けを行う関連付け手段と、
前記復元情報が登録されるデータ管理手段とを有し、
前記フィルタは、前記ジョブを識別する識別情報を前記関連付け手段に通知し、
前記関連付け手段は、通知された前記ジョブの識別情報を用いて前記複数のフィルタで実行された前記ジョブの関連付けを示す関連情報を生成し、前記関連情報を前記データ管理手段に登録することを特徴とする情報処理装置。
【請求項２】
前記関連情報を取得する取得手段を有し、
前記取得手段は、
前記データ管理手段に登録された前記関連情報を取得し、前記関連情報に基づきジョブを復元するフィルタを特定し、
前記フィルタは、
前記データ管理手段に登録された復元情報に基づき前記ジョブを復元することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記復元情報は前記ジョブの進捗情報を含み、
前記フィルタにおいて前記ジョブの進捗があるとき、前記フィルタは、前記データ管理手段に登録された前記復元情報に含まれる前記進捗情報を更新することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記復元情報は前記ジョブの進捗情報を含み、
前記フィルタにおいて前記ジョブの進捗があるとき、前記フィルタは、前記データ管理手段に登録された前記復元情報に含まれる前記進捗情報を更新し、
前記進捗情報が更新された前記フィルタと関連する全てのフィルタは、
前記データ管理手段に登録された各フィルタの復元情報に含まれる進捗情報を更新することを特徴とする請求項１又は２記載の情報処理装置。
【請求項５】
前記ジョブの復元を行うか否かを示す要否情報が格納される要否情報保持手段を有し、
前記要否情報保持手段に格納された前記要否情報に基づき、前記フィルタにおいて前記ジョブの復元を行うか否かが判定されることを特徴とする請求項１ないし４の何れか一項に記載の情報処理装置。
【請求項６】
前記フィルタは、前記フィルタにおいて実行されるジョブの復元を行うか否かを判定する復元要否判定手段を有することを特徴とする請求項１ないし４の何れか一項に記載の情報処理装置。
【請求項７】
前記フィルタは、前記データ管理手段に前記復元情報を登録するか否かを判定する登録判定手段を有することを特徴とする請求項１ないし６の何れか一項に記載の情報処理装置。
【請求項８】
前記フィルタは、前記ジョブの復元が可能か否かを判定する復元可否判定手段を有することを特徴とする請求項１ないし７の何れか一項に記載の情報処理装置。
【請求項９】
前記フィルタは、前記復元可否判定手段により前記ジョブの復元が不可能と判定されたとき、前記ジョブの復元の失敗を前記複数のフィルタを制御する制御手段に通知することを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記複数のフィルタは、
画像処理の対象として入力される画像データの入力処理を制御する入力フィルタと、
外部に出力される画像データの出力処理を制御する出力フィルタと、
前記入力フィルタと前記出力フィルタとの間で前記画像データの加工処理を行う加工フィルタと、を含むことを特徴とする請求項１ないし９の何れか一項に記載の情報処理装置。
【請求項１１】
所定のジョブを実行する複数のジョブ実行手順と、
前記ジョブの復元情報を生成する復元情報生成手順と、
前記復元情報の関連付けを行う関連付け手順と、
前記復元情報がデータ管理装置に登録される登録手順とを有し、
前記ジョブ実行手順において、前記ジョブを識別する識別情報を前記関連付け手順に通知し、
前記関連付け手順において、通知された前記ジョブの識別情報を用いて前記ジョブの関連付けを示す関連情報を生成し、前記登録手順において前記関連情報を前記データ管理装置に登録することを特徴とする情報処理方法。
【請求項１２】
前記関連情報を取得する取得手順を有し、
前記取得手順は、
前記データ管理装置に登録された前記関連情報を取得し、前記関連情報に基づきジョブを実行するジョブ実行手順を特定し、
前記ジョブ実行手順は、
前記データ管理装置に登録された復元情報に基づき前記ジョブを復元することを特徴とする請求項１１記載の情報処理方法。
【請求項１３】
コンピュータに、
所定のジョブを実行する複数のジョブ実行ステップと、
前記ジョブの復元情報を生成する復元情報生成ステップと、
前記復元情報の関連付けを行う関連付けステップと、
前記復元情報がデータ管理装置に登録される登録ステップとを実行させ、
前記ジョブ実行ステップは、前記ジョブを識別する識別情報を前記関連付けステップに通知し、
前記関連付けステップは、通知された前記ジョブの識別情報を用いて前記ジョブの関連付けを示す関連情報を生成し、前記登録ステップは前記関連情報を前記データ管理装置に登録する情報処理プログラム。
【請求項１４】
コンピュータに、
前記関連情報を取得する取得ステップを実行させ、
前記取得ステップは、
前記データ管理装置に登録された前記関連情報を取得し、前記関連情報に基づきジョブを実行するジョブ実行ステップを特定し、
前記ジョブ実行ステップは、
前記データ管理装置に登録された復元情報に基づき前記ジョブを復元する請求項１３記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理プログラムに関する。
【背景技術】
【０００２】
近年において、プリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像処理装置では、汎用的にコンピュータと同様にＣＰＵを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００３】
例えば特許第３６７９３４９号公報（特許文献１）に記載された画像形成装置では、各アプリケーションから共通して利用される機能をプラットフォームとして備えており、このプラットフォームのＡＰＩ（Application Programming Interface）を利用してアプリケーションを実装することができる。係る画像形成装置によれば、共通して利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、係る構成では、このプラットフォームによって提供される機能又はインターフェースの粒度が適切に設計されないと、アプリケーションの開発効率の向上が期待以上にはかれない場合がある。
【０００５】
例えば、この粒度が小さすぎると、単純なサービスを提供するアプリケーションであるにも関わらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００６】
一方、粒度が大きすぎると、ある機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、プラットフォーム内を修正しなければならず、開発工数の増加を招きかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００７】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、変更部分以外の部分については既存のアプリケーションを呼び出すといったようなことはできない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００８】
本発明は、上記の点を鑑みてなされたものであって、機能のカスタマイズ又は拡張などを簡略化させることのできる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【００１０】
本発明の情報処理装置は、所定のジョブを実行し、前記ジョブの復元情報を生成する復元情報生成手段を有する複数のフィルタと、前記複数のフィルタにおいて生成された前記復元情報の関連付けを行う関連付け手段と、前記復元情報が登録されるデータ管理手段とを有し、前記フィルタは、前記ジョブを識別する識別情報を前記関連付け手段に通知し、前記関連付け手段は、通知された前記ジョブの識別情報を用いて前記複数のフィルタで実行された前記ジョブの関連付けを示す関連情報を生成し、前記関連情報を前記データ管理手段に登録する構成とした。
【００１１】
係る構成によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００１２】
また本発明の情報処理装置は、前記関連情報を取得する取得手段を有し、前記取得手段は、前記データ管理手段に登録された前記関連情報を取得し、前記関連情報に基づきジョブを復元するフィルタを特定し、前記フィルタは、前記データ管理手段に登録された復元情報に基づき前記ジョブを復元する構成としても良い。
【００１３】
また本発明の情報処理装置において、前記復元情報は前記ジョブの進捗情報を含み、前記データ管理手段に登録された前記復元情報は、前記ジョブの進捗情報に基づき更新される構成としても良い。
【００１４】
また本発明の情報処理装置において、前記復元情報は前記ジョブの進捗情報を含み、前記データ管理手段に登録された復元情報のうち、一の復元情報において前記ジョブの進捗情報が変化したとき、前記一の復元情報と、前記一の復元情報と関連するその他の復元情報とが更新される構成としても良い。
【００１５】
また本発明の情報処理装置は、前記ジョブの復元を行うか否かを示す要否情報が格納される要否情報保持手段を有し、前記要否情報保持手段に格納された前記要否情報に基づき、前記フィルタにおいて前記ジョブの復元を行うか否かが判定される構成としても良い。
【００１６】
また本発明の情報処理装置において、前記フィルタは、前記フィルタにおいて実行されるジョブの復元を行うか否かを判定する復元要否判定手段を有する構成としても良い。
【００１７】
また本発明の情報処理装置において、前記フィルタは、前記データ管理手段に前記復元情報を登録するか否かを判定する登録判定手段を有する構成としても良い。
【００１８】
また本発明の情報処理装置において、前記フィルタは、前記ジョブの復元が可能か否かを判定する復元可否判定手段を有する構成としても良い。
【００１９】
また本発明の情報処理装置において、前記フィルタは、前記復元可否判定手段により前記ジョブの復元が不可能と判定されたとき、前記ジョブの復元の失敗を通知する構成としても良い。
【００２０】
また本発明の情報処理装置において、前記複数のフィルタは、画像処理の対象として入力される画像データの入力処理を制御する入力フィルタと、外部に出力される画像データの出力処理を制御する出力フィルタと、前記入力フィルタと前記出力フィルタとの間で前記画像データの加工処理を行う加工フィルタと、を含む構成としても良い。
【００２１】
本発明の情報処理方法は、所定のジョブを実行する複数のジョブ実行手順と、前記ジョブの復元情報を生成する復元情報生成手順と、前記復元情報の関連付けを行う関連付け手順と、前記復元情報がデータ管理装置に登録される登録手順とを有し、前記ジョブ実行手順において、前記ジョブを識別する識別情報を前記関連付け手順に通知し、前記関連付け手順において、通知された前記ジョブの識別情報を用いて前記ジョブの関連付けを示す関連情報を生成し、前記登録手順において前記関連情報を前記データ管理装置に登録する方法とした。
【００２２】
係る方法によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００２３】
また本発明の情報処理方法は、前記関連情報を取得する取得手順を有し、前記取得手順は、前記データ管理装置に登録された前記関連情報を取得し、前記関連情報に基づきジョブを実行するジョブ実行手順を特定し、前記ジョブ実行手順は、前記データ管理装置に登録された復元情報に基づき前記ジョブを復元する方法としても良い。
【００２４】
本発明の情報処理プログラムは、コンピュータに、所定のジョブを実行する複数のジョブ実行ステップと、前記ジョブの復元情報を生成する復元情報生成ステップと、前記復元情報の関連付けを行う関連付けステップと、前記復元情報がデータ管理装置に登録される登録ステップとを実行させ、前記ジョブ実行ステップは、前記ジョブを識別する識別情報を前記関連付けステップに通知し、前記関連付けステップは、通知された前記ジョブの識別情報を用いて前記ジョブの関連付けを示す関連情報を生成し、前記登録ステップは前記関連情報を前記データ管理装置に登録するプログラムとした。
【００２５】
係るプログラムによれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００２６】
また本発明の情報処理プログラムは、コンピュータに、前記関連情報を取得する取得ステップを実行させ、前記取得ステップは、前記データ管理装置に登録された前記関連情報を取得し、前記関連情報に基づきジョブを実行するジョブ実行ステップを特定し、前記ジョブ実行ステップは、前記データ管理装置に登録された復元情報に基づき前記ジョブを復元するプログラムとした。
【発明の効果】
【００２７】
本発明によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【発明を実施するための最良の形態】
【００２８】
本発明では、パイプ＆フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを情報処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに本発明では、例えばジョブの実行中などに情報処理装置において予期しない電源断が発生した場合に、ジョブの復元情報を保管し、情報処理装置の再起動時にジョブを復元することができる。
【００２９】
以下の本実施形態では、この情報処理装置を例えばプリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を有する画像処理装置により実現する。
【００３０】
以下に、本発明の実施形態の説明に先立ち、画像処理装置に適用されたパイプ＆フィルタの概念について説明する。図１は、パイプ＆フィルタの概念を説明する図である。図１に示す「Ｐ」はパイプを示し、「Ｆ」はフィルタを示す。
【００３１】
フィルタとは、入力された画像データに対して所定の処理を施して、その処理結果を出力するプログラムである。そしてパイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に連結されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ連結されたフィルタへ画像データを伝達する。このように、パイプ＆フィルタの概念によれば、パイプを介在させてフィルタにおける処理を連続したものとすることができる。
【００３２】
本発明では、フィルタにおいて施される所定の処理を、入力された画像データに対し、所定の変換を施す処理と考える。すなわち、本発明の画像処理装置では、画像処理装置で実現される各機能をドキュメント（入力画像データ）に対する「変換処理」の連続として捉える。画像処理装置の各機能は、ドキュメントすなわち画像データの入力、加工及び出力によって構成されるものと考える。そこで、以下の実施形態の説明では「入力処理」、「加工処理」及び「出力処理」のそれぞれを「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成した。
【００３３】
本発明では、画像データの入力処理を制御するフィルタを入力フィルタ、画像データの加工処理を制御するフィルタを加工フィルタ、画像データの出力処理を制御するフィルタを出力フィルタとした。これらの各フィルタはそれぞれ独立したプログラムであって、フィルタ間の依存関係は存在しない。よって、各フィルタは、画像処理装置において独立してフィルタ単位で追加（インストール）、削除（アンインストール）することが可能である。
【００３４】
図２は、パイプ＆フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。画像処理装置１００は、それぞれバスＢで相互に接続されているスキャン装置１１、プロッタ装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６、インターフェース装置１７、操作装置１８で構成される。
【００３５】
スキャン装置１１はスキャナエンジンなどで構成され、原稿を読み取って画像データとするために用いられる。プロッタ装置１２はプロッタエンジンなどで構成され、画像データを印刷するために用いられる。インターフェース装置１７は、モデム、ＬＡＮカードなどで構成されており、ネットワークに接続する為に用いられる。
【００３６】
本発明の画像処理プログラムは、画像処理装置１００を制御する各種プログラムの少なくとも一部である。画像処理プログラムは例えば記録媒体１９の配布やネットワークからのダウンロードなどによって提供される。画像処理プログラムを記録した記録媒体１９は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３７】
また、画像処理プログラムを記録した記録媒体１９がドライブ装置１３にセットされると、画像処理プログラムは記録媒体１９からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた画像処理プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００３８】
画像処理装置１００は、インストールされた画像処理プログラムを格納すると共に、必要なファイル、画像データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から画像処理プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された画像処理プログラムに従って、後述するような各種処理を実現している。
（第一の実施形態）
図３は、本発明の第一の実施形態の画像処理装置１００のソフトウェア構成を示す構成図である。画像処理装置１００は、例えばプリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を一台の筐体において実現する複合機である。
【００３９】
画像処理装置１００の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層１１０、コントロール層１２０、アプリケーションロジック層１３０、デバイスサービス層１４０及びデバイス層１５０により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
【００４０】
画像処理装置１００において、ユーザインターフェイス層１１０によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層１１０は、コントロール層１２０を呼び出しこの実行指示に基づきアプリケーションロジック層１３０を制御する。アプリケーションロジック層１３０では、コントロール層１２０からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層１４０、デバイス層１５０が画像処理装置１００のハードウェア資源を制御する。画像処理装置１００では、このような動作によりユーザインターフェイス層１１０が受け付けた機能に対応した出力結果を得る。
【００４１】
以下に各層について説明する。
【００４２】
ユーザインターフェイス層１１０には、例えばローカルＵＩ（user interface）部１１１が実装されており、画像処理装置１００の各種機能を実現するための実行指示を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、ＦＡＸ機能などである。ローカルＵＩ部１１１は、例えば画像処理装置１００の操作装置１８に設けられていても良い。この操作装置１８は、例えば表示領域を備えるオペレーションパネルなどにより実現されても良い。ユーザインターフェイス層１１０において、ローカルＵＩ部１１１で受け付けられた実行指示は、コントロール層１２０へ伝達される。
【００４３】
コントロール層１２０では、画像処理装置１００の各機能を実現する処理を制御するための機能が実装されている。具体的には、要求された機能に応じてアプリケーションロジック層１３０における各フィルタの実行を制御する。尚、以下の本実施形態において述べる画像処理装置１００の機能とは、画像処理装置１００がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスの定義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００４４】
アプリケーションロジック層１３０には、画像処理装置１００において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層１３０では、コントロール層１２０の制御により、複数のフィルタを組み合わせて一つの機能が実現される。本実施形態におけるアプリケーションロジック層１３０には、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３及びアクティビティ１３４とが実装されている。アプリケーションロジック層１３０に実装された各フィルタは、各フィルタ毎に決められた定義に基づき動作するものであり、この定義に基づき制御される。これら各フィルタの詳細は後述する。アクティビティ１３４は、ユーザインターフェイス層１１０において要求された機能に応じて各フィルタを接続し、各フィルタの実行をとりまとめるコンポーネントである。
【００４５】
デバイスサービス層１４０には、アプリケーションロジック層１３０に実装された各フィルタが共通して利用する下位の機能が実装されている。本実施形態のデバイスサービス層１４０には画像パイプ１４１が実装されている。画像パイプ１４１は上で述べたパイプの機能を実現するものであり、アプリケーションロジック層１３０に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達する。ここで画像パイプ１４１は、例えば入力フィルタ１３１と加工フィルタ１３２とを接続しても良いし、加工フィルタ１３２と出力フィルタ１３３とを接続しても良い。
【００４６】
デバイス層１５０には、ハードウェアを制御するプログラムであるドライバが実装されている。本実施形態のデバイス層１５０には、例えばスキャナ部１５１、プロッタ部１５２等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
【００４７】
以下に、アプリケーションロジック層１３０に実装された各フィルタについてさらに説明する。
【００４８】
本実施形態の入力フィルタ１３１は、画像処理装置１００の外部より入力された画像データに対する入力処理を制御する。入力フィルタ１３１には、例えば読取フィルタ、メール受信フィルタ、ＦＡＸ受信フィルタ、ＰＣ文書受信フィルタ等が含まれる（図示せず）。読取フィルタは、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタは、画像処理装置１００において電子メールを受信し、受信した電子メールに含まれる画像データを出力する。ＦＡＸ受信フィルタはＦＡＸ受信を制御し、受信された画像データを出力する。ＰＣ文書受信フィルタは、図示しないクライアントＰＣなどから印刷画像データを受信し、この印刷画像データを出力する。レポートフィルタは、画像処理装置１００の設定情報や履歴情報などを例えば表形式などに整え、この整えられた画像データを出力する。
【００４９】
本実施形態の加工フィルタ１３２は、加工フィルタ１３２の入力側のフィルタより入力された画像データに所定の加工処理を施し、加工フィルタ１３２の出力側にあるフィルタへ処理結果を出力する。ここで言う加工処理とは、例えば入力された画像データの集約、拡大、縮小、回転処理等である。
【００５０】
本実施形態の出力フィルタ１３３は、入力された画像データに対する出力処理を制御し、画像処理装置１００の外部へ出力する。出力フィルタ１３３には、印刷フィルタ、プレビューフィルタ、メール送信フィルタ、ＦＡＸ送信フィルタ、ＰＣ文書送信フィルタ、文書登録フィルタ等が含まれる。
【００５１】
印刷フィルタは、入力された画像データをプロッタ部１５２に出力（印刷）させる。プレビューフィルタは、入力された画像データを画像処理装置１００の操作装置１８などにプレビュー表示させる。またメール送信フィルタは、画像データを電子メールに添付して送信する。またＦＡＸ送信フィルタは、入力された画像データをＦＡＸ送信する。ＰＣ文書送信フィルタは、入力された画像データを図示しないクライアントＰＣなどに送信する。文書登録フィルタは、入力された画像データを補助記憶装置１４等に出力して蓄積する。
【００５２】
本実施形態のアクティビティ１３４には、ユーザインターフェイス層１１０においてローカルＵＩ部１１１から入力された指示がコントロール層１２０を介して伝達される。アクティビティ１３４は、この指示にしたがって、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３におけるジョブの実行を制御する。
【００５３】
アプリケーションロジック層１３０では、上記各フィルタを組み合わせることにより、画像処理装置１００の各機能を実現している。係る構成によれば、画像処理装置１００では、フィルタとパイプの組み合わせにより各種の機能を実現することができる。具体的には、例えばコピー機能を実現したい場合には、入力フィルタ１３１に含まれる読取フィルタ、加工フィルタ１３２、出力フィルタ１３３に含まれる印刷フィルタを組み合わせれば良い。
【００５４】
以下に、本実施形態の画像処理装置１００における印刷処理について説明する。図４は、第一の実施形態の画像処理装置１００における印刷処理を説明する図である。
【００５５】
本実施形態の画像処理装置１００においてコントロール層１２０は、アクティビティ１３４に対し、各フィルタでの処理の実行を制御させるジョブを生成させる（Ｓ３１）。本実施形態の画像処理装置１００では、例えば画像処理装置１００の電源が投入されたときに、このアクティビティ１３４に対するジョブを生成しても良い。
【００５６】
ローカルＵＩ部１１１により印刷処理の実行要求がなされると、ローカルＵＩ部１１１は、この要求をコントロール層１２０へ伝達する（Ｓ３２）。尚図４に示す例では、印刷処理の一つであるコピー処理が選択されたものとして説明する。この場合、ローカルＵＩ部１１１では、紙原稿の読取及び印刷を指示する操作がなされる。
【００５７】
アクティビティ１３４は、紙原稿の読取及び印刷指示を受けると、読取フィルタ１３１ａ、加工フィルタ１３２、印刷フィルタ１３３ａとを画像パイプにより接続する。尚このとき、実際には読取フィルタ１３１ａに含まれる読取フィルタが加工フィルタ１３２に接続される。次にコントロール層１２０は、読取フィルタ１３１ａにより実行されるジョブ（Ｓ３３）、加工フィルタ１３２により実行されるジョブ（Ｓ３４）、印刷フィルタ１３３ａにより実行されるジョブを生成する（Ｓ３５）。
【００５８】
コントロール層１２０により各フィルタにおいて実行されるジョブが生成されると、アクティビティ１３４は、各フィルタに対しジョブの実行を指示する。すると、読取フィルタ１３１ａにより、入力部であるスキャナ部１５１から紙原稿を読取る処理が実行され、紙原稿が画像データとして読み込まれる。この画像データが読取フィルタ１３１ａから出力されて、画像パイプ１４１を介して加工フィルタ１３２へ伝達される。
【００５９】
加工フィルタ１３２では、この画像データに予め設定された所定の加工処理を施し、加工された画像データとして出力する。加工された画像データは、次に出力フィルタ１３３の一つである印刷フィルタ１３３ａへ伝達される。印刷フィルタ１３３ａでは、この加工された画像データを出力部であるプロッタ部１５２から出力させて、コピー処理を実現する。
【００６０】
このように本実施形態では、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３は、それぞれが独立して制御されており、各フィルタ間に依存関係が存在しない。このため本実施形態では、機能のカスタマイズ又は拡張などを行う場合には、該当するフィルタ毎にカスタマイズ等を行えば良い。よって本実施形態によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態は、第一の実施形態をさらに改良したものである。よって以下の本実施形態の説明において、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００６１】
本実施形態の画像処理装置は、第一の実施形態の画像処理装置１００の有する各機能に加え、画像処理装置において予期しない電源断が発生した場合に、ジョブの復元を行うことができる。
【００６２】
例えば画像処理装置において、処理の実行中に電源断が発生すると、各フィルタにおいてジョブの実行が中断される場合がある。本実施形態の画像処理装置のように、複数のアプリケーション（フィルタ）において実行されるジョブの組み合わせで一機能が実現される装置において、予期しない電源断が発生した場合の対処法として、例えば再起動後に実行が中断されたジョブを生成したフィルタを特定し、特定されたフィルタおいてジョブの復元を行う方法がある。
【００６３】
しかしながら上記の方法では、復元されたジョブ同士の関連について考慮されていないため、要求されたジョブを要求された通りに復元することが困難である。
【００６４】
また本発明の画像処理装置に適用されるパイプ＆フィルタの概念では、アクティビティは任意のフィルタを組み合わせて機能を実現する。よってアクティビティは、未知のフィルタであっても取り扱い可能であることが望ましい。一方、フィルタを復元するための復元情報にはフィルタに対する設定情報もスキーマとして含まれている。このためアクティビティは、復元情報の登録／読み出しを実施する場合、フィルタの設定情報を知っている必要がある。つまり、もしアクティビティが全フィルタの復元情報を登録／読み出しを行なう場合、アクティビティは全てのフィルタについて知っていなければならない。それパイプ＆フィルタの概念とは反する為、アクティビティに全復元情報を登録／読み出しさせる事は難しい。
【００６５】
また、別の問題点として、新規アクティビティの作成が煩雑になるという点が挙げられる。
【００６６】
これは例えば、複数のアプリケーション（フィルタ）を組み合わせてサービスを提供する新たなアプリケーション（アクティビティ）を作成する際に、新たに作成する側のアプリケーション（アクティビティ）でジョブの全復元情報を保持しておくことでジョブの復元することができる。しかしながらこの場合アクティビティに、新たにジョブの全復元情報の定義、全復元情報に対する操作（複数のフィルタに対する復元情報の設定）を実装しておかなければならず、開発工程に日数が係り作成が非常に煩雑になる。
【００６７】
そこで本実施形態では、上記事情を鑑みてこれを解決するものであり、実行されるジョブ同士の関連付けを行い、ジョブ同士の関連を示す情報を関連情報として保管する。そして本実施形態の画像処理装置では、画像処理装置が再起動した際に、関連情報に基づきジョブとジョブの組み合わせを復元することで、要求されたジョブを要求された通りに復元するものである。
【００６８】
図５は、第二の実施形態の画像処理装置１００Ａのソフトウェア構成を示す構成図である。
【００６９】
本実施形態の画像処理装置１００Ａは、オペレーション層１２０Ａ、アプリケーションロジック層１３０Ａ、サービス層１４０Ａ、デバイス層１５０Ａを有する。
【００７０】
オペレーション層１２０Ａには、各層に共通した機能の制御等を行う。オペレーション層１２０Ａは、プラグイン管理１２１が実装されている。プラグイン管理１２１は、画像処理装置１００Ａにおけるフィルタの追加や削除などの管理を行う。
【００７１】
アプリケーションロジック層１３０Ａは、入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａ、アクティビティ１３４Ａ、復元要否ライブラリ１３５が実装されている。入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａ、アクティビティ１３４Ａ、復元要否ライブラリ１３５の詳細は後述する。
【００７２】
サービス層１４０Ａには、アプリケーションロジック層１３０Ａに実装された各フィルタが共通して利用する下位の機能が実装されている。サービス層１４０Ａには、画像パイプ１４１、リクエスト管理１４２、データ管理１４３、設定情報リポジトリサービス１４４が実装されている。リクエスト管理１４２は、画像処理装置１００Ａにおいて要求されるジョブの制御を行う。データ管理１４３は、アプリケーションロジック層１３０Ａに実装された各フィルタの設定情報や、各フィルタで生成された復元情報等が蓄積されて保管される。設定情報リポジトリサービス１４４は、各フィルタの設定情報や、各フィルタで生成された復元情報等が一時的に保持される。
【００７３】
次に図６を参照して、本実施形態のアプリケーションロジック層１３０Ａに実装された各フィルタに共通する機能構成について説明する。図６は、第二の実施形態の画像処理装置１００Ａの有するフィルタの機能構成を説明する図である。
【００７４】
図６に示す機能構成は、本実施形態の入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａが共通して有する機能である。
【００７５】
本実施形態の各フィルタは、復元情報生成部２１０、データ登録部２２０、識別情報通知部２３０、復元情報更新部２４０、復元要否判定部２５０、登録判定部２６０、復元可否判定部２７０を有する。
【００７６】
復元情報生成部２１０は、各フィルタにおいて実行されていたジョブの復元情報を生成する。尚本実施形態の復元情報とは、各フィルタにおけるジョブの実行履歴に基づき生成される。具体的には復元情報は、例えばジョブの識別情報、ジョブの設定情報、ジョブの進捗情報を含む情報である。
【００７７】
データ登録部２２０は、復元情報生成部２１０で生成された復元情報をデータ管理１４３へ登録して保管させる。
【００７８】
識別情報通知部２３０は、復元情報生成部２１０で生成された復元情報のうち、ジョブの識別情報をアクティビティ１３４Ａへ通知する。尚ジョブの識別情報とは、各フィルタにおいて実行されるジョブを特定する情報である。
【００７９】
復元情報更新部２４０は、データ管理１４３に保管された復元情報を更新する。復元要否判定部２５０は、各フィルタが、ジョブの復元が必要か否かを判定する。登録判定部２６０は、復元情報生成部２１０により生成された復元情報をデータ管理１４３へ保管させるか否かを判定する。復元可否判定部２７０は、フィルタにおいてジョブの復元が可能か否かを判定する。
【００８０】
次に、図７を参照して本実施形態のアクティビティ１３４Ａの機能構成について説明する。図７は、第二の実施形態の画像処理装置１００Ａの有するアクティビティの機能構成を説明する図である。
【００８１】
本実施形態のアクティビティ１３４Ａは、関連情報取得部３１０、復元情報生成部３２０、関連付け部３３０、復元情報更新部３４０を有する。関連情報取得部３１０は、データ管理１４３に登録された後述する関連情報を取得する。復元情報生成部３２０は、アクティビティ１３４Ａにおける処理の実行履歴から、アクティビティ１３４Ａの復元情報を生成する。尚アクティビティ１３４Ａの復元情報とは、例えばアクティビティ１３４Ａにおいて実行されるジョブの識別情報、アクティビティ１３４Ａに設定されている設定情報、アクティビティ１３４Ａにおける処理の実行履歴から生成される進捗情報等を含む情報である。
【００８２】
関連付け部３３０は、各フィルタの識別情報通知部２３０より通知された識別情報に基づき、各フィルタにおけるジョブの関連付けを行う。具体的には例えば、各フィルタにおいて復元情報が生成されたとき、生成された復元情報に含まれるジョブの識別情報を紐付けして関連付けを行っても良い。復元情報更新部３４０は、復元情報を更新する。
【００８３】
本実施形態の画像処理装置１００Ａでは、図６、図７で説明した各フィルタ及びアクティビティ１３４Ａの機能により、画像処理装置１００Ａに電源断が発生した場合にも各フィルタにおけるジョブを復元することができる。
【００８４】
次に本実施形態の画像処理装置１００Ａにおける復元情報の登録について説明する。図８は、第二の実施形態に画像処理装置１００Ａにおける復元情報の登録を説明するシーケンス図である。尚図８では、入力フィルタ１３１Ａと加工フィルタ１３２Ａにおいて生成された復元情報が保管される場合を説明している。
【００８５】
本実施形態の画像処理装置１００Ａにおいて、復元情報の登録が開始されると、アクティビティ１３４Ａは、入力フィルタ１３１Ａに復元情報の登録を指示する（Ｓ８１）。入力フィルタ１３１Ａは、復元情報の登録指示を受けて、入力フィルタ１３１Ａの有する復元情報生成部２１０により復元情報を生成し、データ登録部２２０により復元情報をデータ管理１４３へ登録する（Ｓ８２）。また入力フィルタ１３１Ａは、識別情報通知部２３０により、復元情報に含まれるジョブの識別情報をアクティビティ１３４Ａへ通知する（Ｓ８３）。
【００８６】
次にアクティビティ１３４Ａは、加工フィルタ１３２Ａに復元情報の登録を指示する（Ｓ８４）。加工フィルタ１３２Ａは、復元情報の登録指示を受けて、加工フィルタ１３２Ａの有する復元情報生成部２１０により復元情報を生成し、データ登録部２２０により復元情報をデータ管理１４３へ登録する（Ｓ８５）。また加工フィルタ１３２Ａは、識別情報通知部２３０により、復元情報に含まれるジョブの識別情報をアクティビティ１３４Ａへ通知する（Ｓ８６）。
【００８７】
次にアクティビティ１３４Ａは、復元情報生成部３２０により、アクティビティ１３４Ａの復元情報を生成する。またアクティビティ１３４Ａは、関連付け部３３０により、入力フィルタ１３１Ａから通知された識別情報と、加工フィルタ１３２Ａから通知された識別情報の関連付けを行い、これらの識別情報が紐付けされた関連情報を生成する。そしてアクティビティ１３４Ａは、アクティビティ１３４Ａの復元情報に生成された関連情報を含めてデータ管理１４３へ登録する（Ｓ８７）。
【００８８】
本実施形態では、以上のようにして各フィルタの復元情報と、アクティビティ１３４Ａの復元情報と、各フィルタの復元情報を関連付ける関連情報がデータ管理１４３へ登録される。尚本実施形態において復元情報を登録するタイミングについては後述する。
【００８９】
次に図９を参照して本実施形態の画像処理装置１００Ａにおけるジョブの復元について説明する。
【００９０】
図９は、第二の実施形態の画像処理装置におけるジョブの復元を説明するシーケンス図である。図９では、入力フィルタ１３１Ａにおけるジョブと加工フィルタ１３２Ａにおけるジョブが復元される場合について説明する。
【００９１】
画像処理装置１００Ａにおけるジョブの復元は、画像処理装置１００Ａで発生した電源断から画像処理装置１００Ａが再起動された後に行われる。画像処理装置１００Ａにおいて、リクエスト管理１４２が再起動処理の終了通知を受け取ると、リクエスト管理１４２はアクティビティ１３４Ａへジョブの復元開始指示を出す（Ｓ９０１）。
【００９２】
アクティビティ１３４Ａは、復元開始指示を受けてデータ管理１４３を参照し（Ｓ９０２）、アクティビティ１３４Ａの復元情報を取得する（Ｓ９０３）。次にアクティビティ１３４Ａは、関連情報取得部３１０により、復元情報に含まれる関連情報を取得する（Ｓ９０４）。アクティビティ１３４Ａは、取得した関連情報から復元されるジョブを実行するフィルタを特定する（Ｓ９０５）。
【００９３】
ジョブを復元するフィルタを特定すると、アクティビティ１３４Ａは特定されたフィルタへジョブの復元情報の取得指示を出す。図９では、ジョブの復元を行うフィルタとして、入力フィルタ１３１Ａと加工フィルタ１３２Ａとが特定されている。よってアクティビティ１３４Ａは、始めに入力フィルタ１３１Ａへジョブの復元指示を出す（Ｓ９０６）。
【００９４】
入力フィルタ１３１Ａは、復元情報の取得指示を受けるとデータ管理１４３を参照し（Ｓ９０７）、入力フィルタ１３１Ａの復元情報を取得する（Ｓ９０８）。そして入力フィルタ１３１Ａは、取得した復元情報をアクティビティ１３４Ａへ渡す（Ｓ９０９）。次にアクティビティ１３４Ａは、加工フィルタ１３２Ａに復元情報の取得指示を出す（Ｓ９１０）。復元情報の取得指示を受ける加工フィルタ１３２Ａは、データ管理１４３を参照し（Ｓ９１１）、加工フィルタ１３２Ａの復元情報を取得する（Ｓ９１２）。そして入力フィルタ１３１Ａは、取得した復元情報をアクティビティ１３４Ａへ渡す（Ｓ９１３）。
【００９５】
アクティビティ１３４Ａは、アクティビティ１３４Ａの復元情報、入力フィルタ１３１Ａの復元情報、加工フィルタ１３２Ａの復元情報を取得すると、復元情報の構築処理を行う（Ｓ９１４）。復元情報の構築処理により復元情報の集合体が生成されると（Ｓ９１５）、アクティビティ１３４Ａはジョブの復元をリクエスト管理１４２へ要求する（Ｓ９１６）。
【００９６】
尚本実施形態の画像処理装置１００Ａでは、アクティビティ１３４Ａの復元情報クラスの属性として、フィルタ復元情報クラスのオブジェクトを格納するためのリストが定義されている。本実施形態の復元情報の構築処理では、このリストに対し、Ｓ９１３で取得した復元情報クラスのオブジェクトをセットする。また本実施形態における復元情報の集合体とは、構築処理においてフィルタの復元情報オブジェクトがセットされたアクティビティ１３４Ａの復元情報オブジェクトを示す。
【００９７】
リクエスト管理１４２は、この要求を受けて、アクティビティ１３４Ａの復元情報に含まれる関連情報から各フィルタで実行されるジョブの構造（ジョブツリー）を組み立てる（Ｓ９１７）。
【００９８】
次にリクエスト管理１４２は、このジョブツリーに基づき、アクティビティ１３４Ａ、入力フィルタ１３１Ａ、加工フィルタ１３２Ａにおいて実行されるジョブの生成指示を出す。始めにリクエスト管理１４２は、アクティビティ１３４Ａに対してジョブの生成指示を出す（Ｓ９１８）。アクティビティ１３４Ａは、ジョブを生成し、ジョブを生成したことをリクエスト管理１４２へ通知する（Ｓ９１９）。
【００９９】
次にリクエスト管理１４２は、入力フィルタ１３１Ａに対してジョブの生成指示を出す（Ｓ９２０）。入力フィルタ１３１Ａは、ジョブを生成し、ジョブを生成したことをリクエスト管理１４２へ通知する（Ｓ９２１）。次にリクエスト管理１４２は、加工フィルタ１３２Ａに対してジョブの生成指示を出す（Ｓ９２２）。加工フィルタ１３２Ａは、ジョブを生成し、ジョブを生成したことをリクエスト管理１４２へ通知する（Ｓ９２３）。
【０１００】
ジョブが生成されると、リクエスト管理１４２は、アクティビティ１３４Ａ、入力フィルタ１３１Ａ、加工フィルタ１３２Ａにおける設定情報を復元させる（Ｓ９２４）。
【０１０１】
まずリクエスト管理１４２は、アクティビティ１３４Ａの復元情報に含まれるアクティビティ１３４Ａの設定情報に基づき、アクティビティ１３４Ａのジョブを復元する（Ｓ９２５）。尚アクティビティ１３４Ａに設定された設定情報とは、例えば各フィルタの接続に関する設定などである。
【０１０２】
次にリクエスト管理１４２は、入力フィルタ１３１Ａの復元情報に含まれる入力フィルタ１３１Ａの設定情報に基づきジョブを復元する（Ｓ９２６）。尚入力フィルタ１３１Ａに設定された設定情報とは、例えば入力フィルタ１３１Ａが読取フィルタ１３１ａであった場合には、原稿画像の読取りに関する設定などを示す。具体的には、読取りの際の解像度などである。
【０１０３】
次にリクエスト管理１４２は、加工フィルタ１３２Ａの復元情報に含まれる加工フィルタ１３２Ａの設定情報に基づきジョブを復元する（Ｓ９２７）。尚加工フィルタ１３２Ａに設定された設定情報とは、例えば加工フィルタ１３２Ａが編集フィルタ１３２ａであった場合には、画像データの集約、変倍などに関する設定などを示す。
【０１０４】
本実施形態の画像処理装置１００Ａでは、以上のようにしてアクティビティ１３４Ａ及び各フィルタにおけるジョブが復元される。ジョブが復元されると、リクエスト管理１４２からアクティビティ１３４Ａへジョブの実行指示がなされ、アクティビティ１３４Ａにおいてジョブが実行される。
【０１０５】
アクティビティ１３４Ａにおいてジョブが実行されると、アクティビティ１３４Ａから各フィルタにジョブの実行指示がなされる。アクティビティ１３４Ａから各フィルタへジョブの実行指示がなされた後の処理は、第一の実施形態で説明した通りである。
【０１０６】
次に、本実施形態の画像処理装置１００Ａにおける復元情報の更新について説明する。本実施形態の画像処理装置１００Ａでは、データ管理１４３に登録した復元情報を更新することで、電源断が発生したときの続きからジョブの実行を再開することができる。
【０１０７】
図１０は、第二の実施形態の画像処理装置１００Ａにおける復元情報の更新を説明する第一のシーケンス図である。図１０では、加工フィルタ１３２Ａにおいて、ジョブの復元情報が更新される場合について説明する。尚ジョブの復元情報が更新される場合とは、例えばジョブの進捗に変化があった場合である。
【０１０８】
画像処理装置１００Ａの加工フィルタ１３２Ａにおいて、ジョブの進捗に変化があると（Ｓ１００１）、加工フィルタ１３２Ａはデータ管理１４３に保管された加工フィルタ１３２Ａの復元情報をロックする（Ｓ１００２）。データ管理１４３は、加工フィルタ１３２Ａへ復元情報がロックされたことを通知する（Ｓ１００３）。
【０１０９】
次に加工フィルタ１３２Ａは、復元情報更新部２４０により、データ管理１４３に保管された復元情報に含まれるジョブの進捗情報を更新する（Ｓ１００４）。データ管理１４３は、ジョブの進捗情報が更新されたことを加工フィルタ１３２Ａへ通知する（Ｓ１００５）。加工フィルタ１３２Ａは、データ管理１４３において加工フィルタ１３２Ａの復元情報のロックを解除する（Ｓ１００６）。データ管理１４３は、復元情報のロックが解除されたことを加工フィルタ１３２Ａへ通知する（Ｓ１００７）。
【０１１０】
本実施形態の画像処理装置１００Ａでは、以上のようにして復元情報に含まれるジョブの進捗情報を更新する。図１０で説明した方法によれば、各フィルタ毎に独立してジョブの進捗情報を更新するため、短い処理時間でジョブの進捗情報を更新できる。
【０１１１】
尚復元情報は、別の方法で更新されても良い。図１１を参照して、別の方法による復元情報の更新について説明する。図１１は、第二の実施形態の画像処理装置１００Ａにおける復元情報の更新を説明する第二のシーケンス図である。
【０１１２】
図１１に示す例では、あるフィルタにおいてジョブの進捗に変化があった場合には、このフィルタの復元情報と、このフィルタと関連する全てのフィルタの復元情報を更新する。図１１では、入力フィルタ１３１Ａにおいてジョブの進捗に変化あった場合を示している。
【０１１３】
入力フィルタ１３１Ａにおいてジョブの進捗に変化があると（Ｓ１１０１）、入力フィルタ１３１Ａは進捗の変化があったことをアクティビティ１３４Ａへ通知する（Ｓ１１０２）。アクティビティ１３４Ａは、この通知を受けて、アクティビティ１３４Ａの復元情報とアクティビティ１３４Ａの配下にある全てのフィルタの復元情報を更新する。
【０１１４】
まずアクティビティ１３４Ａは、復元情報更新部３４０により、データ管理１４３に保管されたアクティビティ１３４Ａの復元情報に含まれる進捗情報を更新する（Ｓ１１０３）。次にアクティビティ１３４Ａは、アクティビティ１３４Ａの配下のフィルタである入力フィルタ１３１Ａに対し復元情報の更新指示を出す（Ｓ１１０４）。入力フィルタ１３１Ａは、この指示を受けて、復元情報更新部２４０によりデータ管理１４３に保管された入力フィルタ１３１Ａの復元情報に含まれる進捗情報を更新する（Ｓ１１０５）。
【０１１５】
次にアクティビティ１３４Ａは、アクティビティ１３４Ａの配下のフィルタである加工フィルタ１３２Ａに対し復元情報の更新指示を出す（Ｓ１１０６）。加工フィルタ１３２Ａは、この指示を受けて、復元情報更新部２４０によりデータ管理１４３に保管された加工フィルタ１３２Ａの復元情報に含まれる進捗情報を更新する（Ｓ１１０７）。
【０１１６】
本実施形態の画像処理装置１００Ａでは、以上のようにしてジョブの進捗情報を更新しても良い。図１１で説明した方法では、一つのフィルタでジョブの進捗に変化があった場合に、同時に全フィルタのジョブの進捗情報を更新することができる。
【０１１７】
次に本実施形態の画像処理装置１００Ａの各フィルタにおける復元の要否判定について説明する。
【０１１８】
本実施形態の画像処理装置１００Ａに実装されたフィルタには、電源断が発生した場合にジョブの復元を必要とするフィルタとそうでないフィルタとが存在する。例えば画像処理装置１００Ａでは、入力フィルタ１３１ＡとしてＦＡＸ受信フィルタが選択されている場合や、出力フィルタ１３３ＡとしてＦＡＸ送信フィルタが選択されている場合には、電源断の後のジョブの復元が必要とされる。また入力フィルタ１３１Ａとして読取フィルタが選択されている場合や、出力フィルタ１３３Ａとして印刷フィルタが選択されている場合には、電源断の後のジョブの復元は不要とされている。
【０１１９】
本実施形態の画像処理装置１００Ａでは、再起動の際に各フィルタにおいてジョブの復元の要否を判定することができる。
【０１２０】
本実施形態の画像処理装置１００Ａでは、プラグイン管理１２１によりフィルタが画像処理装置１００Ａにインストールされたとき、フィルタ自身がジョブの復元を必要とするか否か示す要否情報をアプリケーションロジック層１２０Ａに実装された復元要否ライブラリ１３５へ登録する。そして画像処理装置１００Ａにおいて、復元要否ライブラリ１３５に登録された要否情報を参照して各フィルタにおけるジョブの復元の要否判定を行う。
【０１２１】
まず始めに、図１２を参照して要否情報の登録について説明する。図１２は、第二の実施形態における要否情報の登録を説明するシーケンス図である。尚図１２では、出力フィルタ１３３Ａがインストールされた場合について説明する。
【０１２２】
画像処理装置１００Ａにおいて、出力フィルタ１３３Ａのインストール指示がなされると、プラグイン管理１２１は、出力フィルタ１３３Ａのインストールを行う（Ｓ１２０１）。出力フィルタ１３３Ａは、インストールされると出力フィルタ１３３Ａが起動するための前処理を行う（Ｓ１２０２）。
【０１２３】
次にプラグイン管理１２１は、出力フィルタ１３３Ａを起動させる（Ｓ１２０３）。出力フィルタ１３３Ａは、起動されると他のフィルタ等のアプリケーションと連携をとるための後処理を行う（Ｓ１２０４）。そして出力フィルタ１３３Ａは、復元要否ライブラリ１３５へ、出力フィルタ１３３Ａがジョブの復元を必要とするフィルタであるか否かを示す要否情報を登録する（Ｓ１２０５）。
【０１２４】
以上に説明したように、本実施形態の画像処理装置１００Ａでは、各フィルタ毎の要否情報が登録された復元要否ライブラリ１３５を用いて各フィルタの復元の要否判定を行っても良い。図１３は、復元要否ライブラリ１３５を用いた各フィルタの要否判定を説明する図である。図１３では、入力フィルタ１３１Ａの一つである読取フィルタ１３１ａと、出力フィルタ１３３Ａの一つであるＦＡＸ送信フィルタ１３３ｂの要否判定を行う場合を示している。
【０１２５】
図１３の例では、アクティビティ１３４Ａが復元要否ライブラリ１３５を参照することで各フィルタの要否判定を行う。例えば読取フィルタ１３１ａの場合、アクティビティ１３４Ａは、復元要否ライブラリ１３５を参照して復元が不要であると判定する。またＦＡＸ送信フィルタ１３３ｂの場合、アクティビティ１３４Ａは、復元要否ライブラリ１３５を参照して復元が必要であると判定する。
【０１２６】
本実施形態の画像処理装置１００Ａでは、このようにしてジョブの復元の要否を判定できる。尚本実施形態では、インストールされたフィルタがアンインストールされる場合には、復元要否ライブラリ１３５からアンインストール対象となるフィルタの要否情報を削除しても良い。そうすれば、復元要否ライブラリ１３５において必要な要否情報のみが保管されることになる。
【０１２７】
また本実施形態の画像処理装置１００Ａでは、各フィルタが、復元要否判定部２５０によりジョブの復元の要否判定を行っても良い。以下に図１４を参照して各フィルタが復元の要否判定を行う場合について説明する。図１４は、第二の実施形態の画像処理装置１００Ａにおけるジョブの復元の要否判定を説明するシーケンス図である。図１４では、入力フィルタ１３１Ａの一つである読取フィルタ１３１ａと、出力フィルタ１３３Ａの一つであるＦＡＸ送信フィルタ１３３ｂにおいて要否判定を行う場合を示している。
【０１２８】
画像処理装置１００Ａにおいて、アクティビティ１３４Ａから読取フィルタ１３１ａに対してジョブの生成指示がなされると（Ｓ１４０１）、読取フィルタ１３１ａはジョブを生成し、その旨をアクティビティ１３４Ａへ通知する（Ｓ１４０２）。次にアクティビティ１３４Ａは、ＦＡＸ送信フィルタ１３３ｂに対してジョブの生成指示を出す（Ｓ１４０３）。ＦＡＸ送信フィルタ１３３ｂは、この指示を受けてジョブを生成し、その旨をアクティビティ１３４Ａへ通知する（Ｓ１４０４）。
【０１２９】
次にアクティビティ１３４Ａは、各フィルタにおけるジョブの復元の要否判定指示を出す。まずアクティビティ１３４Ａは、読取フィルタ１３１ａに対し、復元の要否判定指示を出す（Ｓ１４０５）。読取フィルタ１３１ａは、要否判定指示を受けると復元要否判部２５０により読取フィルタ１３１ａがジョブの復元を必要とするか否かを判定する。本実施形態では、読取フィルタ１３１ａはジョブの復元が不要なフィルタであるから、読取フィルタ１３１ａは復元が不要であることをアクティビティ１３４Ａへ通知する（Ｓ１４０６）。
【０１３０】
次にアクティビティ１３４Ａは、ＦＡＸ送信フィルタ１３３ｂに対し、復元の要否判定指示を出す（Ｓ１４０７）。ＦＡＸ送信フィルタ１３３ｂは、要否判定指示を受けると復元要否判定部２５０によりＦＡＸ送信フィルタ１３３ｂがジョブの復元を必要とするか否かを判定する。本実施形態ではＦＡＸ送信フィルタ１３３ｂはジョブの復元が必要なフィルタであるから、ＦＡＸ送信フィルタ１３３ｂは復元が必要であることをアクティビティ１３４Ａへ通知する（Ｓ１４０８）。
【０１３１】
アクティビティ１３４Ａは、ジョブの復元が必要なフィルタが存在すると、フィルタの復元情報の登録を開始する。復元情報の登録については、上で説明した通りである。
【０１３２】
このように各フィルタが復元の要否を判定する復元要否判定部２５０を有する構成とすれば、復元要否ライブラリ１３５が不要となり、復元要否ライブラリ１３５の改ざんの防止などの管理を行う必要性を回避できる。
【０１３３】
次に本実施形態の画像処理装置１００Ａにおける復元情報の登録のタイミングについて説明する。
【０１３４】
本実施形態の画像処理装置１００Ａにおいて、例えばある機能を実現するジョブの実行が開始された直後に電源断が発生した場合、再起動後にその続きからジョブを実行するのは困難な場合がある。そこで本実施形態の画像処理装置１００Ａでは、ジョブの実行がある程度進んでから復元情報を登録することができる。
【０１３５】
再起動後に電源断の続きから実行することが困難なジョブとしては、例えば読取フィルタ１３１ａによる画像の読み取りジョブなどがある。例えば読取フィルタ１３１ａで原稿の読み取りジョブの実行中に電源断が発生した場合に、再起動後に読み取り中であった原稿の途中から読み取りを再開することは困難である。このような場合には、通常はジョブが一度キャンセルされる。このように電源断が発生した場合にはキャンセルされるジョブの復元情報は、ジョブの復元において無意味である。
【０１３６】
そこで本実施形態では、ジョブの実行がある程度進んでから復元情報の登録を行う。図１５は、第二の画像処理装置１００Ａにおける復元情報の登録のタイミングを説明するシーケンス図である。図１５では、入力フィルタ１３１Ａとして読取フィルタ１３１ａが選択され、出力フィルタ１３３ＡとしてＦＡＸ送信フィルタ１３３ｂが選択された場合を示す。
【０１３７】
画像処理装置１００Ａが再起動されて、アクティビティ１３４Ａがジョブの復元が必要なことを検知すると（Ｓ１５０１）、アクティビティ１３４Ａは、各フィルタに復元情報の登録を行うタイミングを問い合わせる。
【０１３８】
まずアクティビティ１３４Ａは、読取フィルタ１３１ａへ問い合わせを行う（Ｓ１５０２）。読取フィルタ１３１ａは、問い合わせを受けて、登録判定部２６０によりジョブの進捗に基づき復元情報の登録が可能か否かを判定する。
【０１３９】
ここで読取フィルタ１３１ａが原稿の読み取り中である場合、読取フィルタ１３１ａはアクティビティ１３４Ａへ復元情報の登録が不可であることを通知する（Ｓ１５０３）。次にアクティビティ１３４Ａは、ＦＡＸ送信フィルタ１３３ｂへ問い合わせを行う（Ｓ１５０４）。ＦＡＸ送信フィルタ１３３ｂは、登録判定部２６０により復元情報の登録が可能か否か判定し、復元情報の登録が可能であることをアクティビティ１３４Ａへ通知する（Ｓ１５０５）。
【０１４０】
本実施形態では、アクティビティ１３４Ａは、アクティビティ１３４Ａの配下にある全てのフィルタから復元情報の登録可能である通知を受けるまで、復元情報の登録指示を行わない。
【０１４１】
読取フィルタ１３１ａにおいて原稿の読み取り処理が完了すると（Ｓ１５０６）、入力フィルタ１３１Ａはアクティビティ１３４Ａへ完了通知し、復元情報の登録が可能となったことを通知する（Ｓ１５０７）。アクティビティ１３４Ａは、この通知を受けると、配下の全てのフィルタにおいて復元情報の登録が可能となったものとして、復元情報の登録指示を行う。復元情報の登録については上で説明した通りである。
【０１４２】
次に本実施形態の画像処理装置１００Ａにおいて、ジョブの復元時に復元情報が破損していた場合について説明する。本実施形態の画像処理装置１００Ａでは、再起動後のジョブの復元において復元情報が破損していた場合、ジョブをキャンセルして復元情報が破損していたことを示すレポートを出力する。
【０１４３】
以下に図１６を参照して本実施形態における各フィルタの復元情報の破損時の対応について説明する。図１６は、第二の実施形態の画像処理装置１００Ａにおいて復元情報が破損していた場合の動作を説明するシーケンス図である。尚図１６では、入力フィルタ１３１Ａと加工フィルタ１３２Ａにおいてジョブの復元が行われる場合を示している。
【０１４４】
図１６のＳ１６０１からＳ１６１１までの処理は、図９のＳ９０１からＳ９１１までの処理と同様であるから説明を省略する。
【０１４５】
Ｓ１６１１においてデータ管理１４３に登録されている加工フィルタ１３２Ａの復元情報が破損している場合、復元情報は正しく呼び出されないため、データ管理１４３は復元情報が存在しないことを加工フィルタ１３２Ａへ通知する（Ｓ１６１２）。加工フィルタ１３２Ａは、復元情報を取得できないため、復元可否判定部２７０によりジョブの復元は不可能と判定し、ジョブの復元失敗をアクティビティ１３４Ａへ通知する（Ｓ１６１３）。
【０１４６】
アクティビティ１３４Ａは、復元失敗の通知を受けると、アクティビティ１３４Ａの配下の全てのフィルタに復元失敗を通知する。まずアクティビティ１３４Ａは、入力フィルタ１３１Ａに対して、加工フィルタ１３２Ａでの復元失敗を通知する（Ｓ１６１４）。次にアクティビティ１３４Ａは、加工フィルタ１３２Ａに対して、加工フィルタ１３２Ａでの復元失敗を通知する（Ｓ１６１５）。
【０１４７】
復元を失敗した加工フィルタ１３２Ａは、この通知を受けると、復元失敗を示すレポート情報ファイルを作成する（Ｓ１６１６）。レポート情報ファイルの作成についての詳細は後述する。
【０１４８】
そして加工フィルタ１３２Ａは、レポートアクティビティ１３４Ｂに対してレポート情報ファイルの出力要求を行う（Ｓ１６１７）。尚レポートアクティビティ１３４Ｂは、画像処理装置１００Ａのアプリケーションロジック層１３０Ａに実装されており、画像処理装置１００Ａからのレポート出力機能の制御を行うものである。
【０１４９】
レポートアクティビティ１３４Ｂは、加工フィルタ１３２Ａにおいて復元情報の破損によりジョブの復元を失敗したことを報告するレポートを出力する。レポートの出力形態の詳細は後述する。
【０１５０】
復元失敗のレポートが出力されると、加工フィルタ１３２Ａは、データ管理１４３に登録された加工フィルタ１３２Ａの破損した復元情報を削除する（Ｓ１６１８）。また入力フィルタ１３１Ａも同様に、データ管理１４３に登録された入力フィルタ１３１Ａの復元情報を削除する（Ｓ１６１９）。
【０１５１】
尚図１６では、加工フィルタ１３２Ａがレポートアクティビティ１３４Ｂに対してレポートの出力要求を行うものとしたが、レポートの出力要求は成されなくても良い。レポートの出力要求を行うか否かについては、ジョブの復元に失敗したフィルタに振る舞いによって決定されても良い。
【０１５２】
次に、復元を失敗した場合のレポート情報ファイルの作成及びレポートの出力形態について説明する。本実施形態の画像処理装置１００Ａでは、レポートを印刷して出力しても良いし、メッセージとして操作装置１８に表示させても良い。また電子メールなどにより画像処理装置１００Ａと接続された端末装置へ送信しても良い。
【０１５３】
図１７は、第二の実施形態の画像処理装置１００Ａにおけるレポート情報ファイルの作成を説明するシーケンス図である。尚図１７で説明するレポート情報ファイルの作成は、図１６のＳ１６１６で行われる処理の詳細を示している。
【０１５４】
画像処理装置１００Ａにおいて、アクティビティ１３４Ａが加工フィルタ１３２Ａに対して復元失敗を通知すると（Ｓ１７０１）、加工フィルタ１３２Ａは設定情報リポジトリサービス１４４に設定されたレポート情報ファイルの出力形態の種類を参照する（Ｓ１７０２）。設定情報リポジトリサービス１４４は、この参照を受けてデータ管理１４３を参照し（Ｓ１７０３）、加工フィルタ１３２Ａの設定情報において設定されたレポート情報ファイルの出力形態の情報を取得する（Ｓ１７０４）。図１７の例では、レポート情報ファイルは電子メールで送信されるものとした。
【０１５５】
尚ここでデータ管理１４３においてレポート情報ファイルの出力形態が選択可能に設定されていた場合、例えば図１８（Ａ）に示す選択画面１８Ａが画像処理装置１００Ａの操作装置１８に表示されても良い。図１８は、操作装置１８に表示されたレポート情報ファイルの出力に関する設定画面の例を示す図である。
【０１５６】
図１７に戻って、設定情報リポジトリサービス１４４は、取得した設定情報を加工フィルタ１３２Ａへ通知する（Ｓ１７０５）。加工フィルタ１３２Ａは、レポート情報ファイルの出力形態が電子メールであることから、設定情報リポジトリサービス１４４に対して電子メールの送信先を問い合わせる（Ｓ１７０６）。設定情報リポジトリサービス１４４は、送信先の情報を加工フィルタ１３２Ａへ通知する（Ｓ１７０７）。
【０１５７】
尚ここで加工フィルタ１３２Ａに通知される送信先の情報は、例えば加工フィルタ１３２Ａの設定情報として、予め設定情報リポジトリサービス１４４に登録されていたものであっても良い。または図１８（Ｂ）に示す設定画面１８Ｂにより、設定情報リポジトリサービス１４４の登録されている複数の送信先情報から選択されたものであっても良い。
【０１５８】
図１７に戻って、加工フィルタ１３２Ａは、通知された送信先情報に基づきレポート情報ファイルを作成する（Ｓ１７０８）。加工フィルタ１３２Ａは、レポート情報ファイルを作成すると、レポートアクティビティ１３４Ｂへレポート情報ファイルの出力要求を行う（Ｓ１７０９）。そして加工フィルタ１３２Ａは、データ管理１４３に登録されている加工フィルタ１３２Ａの破損した復元情報を削除する（Ｓ１７１０）。
【０１５９】
本実施形態の画像処理装置１００Ａでは、以上のようにして復元に失敗した場合のレポート情報ファイルを作成する。
【０１６０】
次に本実施形態の画像処理装置１００Ａにおけるアクティビティ１３４Ａの復元情報が破損した場合について説明する。
【０１６１】
本実施形態の画像処理装置１００Ａにおけるジョブの復元では、アクティビティ１３４Ａの復元情報が始めに取得されて、アクティビティ１３４Ａの復元情報に基づき各フィルタへ復元情報の取得指示が行われる。したがって、アクティビティ１３４Ａの復元情報が破損している場合、フィルタへの復元情報の取得指示は行われない。
【０１６２】
本実施形態では、このことを利用してアクティビティ１３４Ａの復元情報の破損を検出する。
【０１６３】
図１９は、第二の実施形態の画像処理装置１００Ａにおけるアクティビティ１３４Ａの復元情報の破損の検出について説明する図である。
【０１６４】
本実施形態の画像処理装置１００Ａにおいて、各フィルタの有する復元可否判定部２７０は、復元情報の取得指示を受けたとき、取得対象となった復元情報にチェックをつける。そして画像処理装置１００Ａにおいて、復元対象となった全てのジョブの復元が完了した後、全てのフィルタに復元が完了したことを通知する。この通知を受けたフィルタにおいて、復元可否判定部２７０は、それぞれの復元情報におけるチェックの有無を確認する。
【０１６５】
チェックがついていない復元情報は、関連付けられたアクティビティの復元情報が破損しているために、取得対象とならなかった復元情報である。よってチェックのない復元情報を生成したフィルタの復元可否判定部２７０は、復元情報が取得されないためにジョブの復元は不可能と判定し、データ管理１４３から復元情報を削除する。そしてこのフィルタの上流に接続されたアクティビティ１３４Ａへ復元情報が破損していることを通知する。アクティビティ１３４Ａは、この通知を受けてアクティビティ１３４Ａの復元情報をデータ管理１４３から削除する。本実施形態では、このようにしてアクティビティの復元情報の破損を検出することができる。
【０１６６】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０１６７】
【図１】パイプ＆フィルタの概念を説明する図である。
【図２】パイプ＆フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。
【図３】本発明の第一の実施形態の画像処理装置１００のソフトウェア構成を示す構成図である。
【図４】第一の実施形態の画像処理装置１００における印刷処理を説明する図である。
【図５】第二の実施形態の画像処理装置１００Ａのソフトウェア構成を示す構成図である。
【図６】第二の実施形態の画像処理装置１００Ａの有するフィルタの機能構成を説明する図である。
【図７】第二の実施形態の画像処理装置１００Ａの有するアクティビティの機能構成を説明する図である。
【図８】第二の実施形態に画像処理装置１００Ａにおける復元情報の登録を説明するシーケンス図である。
【図９】第二の実施形態の画像処理装置におけるジョブの復元を説明するシーケンス図である。
【図１０】第二の実施形態の画像処理装置１００Ａにおける復元情報の更新を説明する第一のシーケンス図である。
【図１１】第二の実施形態の画像処理装置１００Ａにおける復元情報の更新を説明する第二のシーケンス図である。
【図１２】第二の実施形態における要否情報の登録を説明するシーケンス図である。
【図１３】復元要否ライブラリ１３５を用いた各フィルタの要否判定を説明する図である。
【図１４】第二の実施形態の画像処理装置１００Ａにおけるジョブの復元の要否判定を説明するシーケンス図である。
【図１５】第二の画像処理装置１００Ａにおける復元情報の登録のタイミングを説明するシーケンス図である。
【図１６】第二の実施形態の画像処理装置１００Ａにおいて復元情報が破損していた場合の動作を説明するシーケンス図である。
【図１７】第二の実施形態の画像処理装置１００Ａにおけるレポート情報ファイルの作成を説明するシーケンス図である。
【図１８】操作装置１８に表示されたレポート情報ファイルの出力に関する設定画面の例を示す図である。
【図１９】第二の実施形態の画像処理装置１００Ａにおけるアクティビティ１３４Ａの復元情報の破損の検出について説明する図である。
【符号の説明】
【０１６８】
１００、１００Ａ  画像処理装置
１１０  ユーザインターフェイス層
１２０  コントロール層
１２０Ａ  オペレーション層
１２１  プラグイン管理
１３０、１３０Ａ  アプリケーションロジック層
１３１、１３１Ａ  入力フィルタ１３１Ａ
１３１ａ  読取フィルタ
１３２、１３２Ａ  加工フィルタ
１３３、１３３Ａ  出力フィルタ
１３３ａ  印刷フィルタ
１３３ｂ  ＦＡＸ送信フィルタ
１３４、１３４Ａ  アクティビティ
１３５  復元要否ライブラリ
１４０  デバイスサービス層
１４０Ａ  サービス層
１４１  画像パイプ
１４２  リクエスト管理
１４３  データ管理
１４４  設定情報リポジトリサービス
１５０、１５０Ａ  デバイス層
【図１】
0005036492.tif 000002
【図２】
0005036492.tif 000003
【図３】
0005036492.tif 000004
【図４】
0005036492.tif 000005
【図５】
0005036492.tif 000006
【図６】
0005036492.tif 000007
【図７】
0005036492.tif 000008
【図８】
0005036492.tif 000009
【図９】
0005036492.tif 000010
【図１０】
0005036492.tif 000011
【図１１】
0005036492.tif 000012
【図１２】
0005036492.tif 000013
【図１３】
0005036492.tif 000014
【図１４】
0005036492.tif 000015
【図１５】
0005036492.tif 000016
【図１６】
0005036492.tif 000017
【図１７】
0005036492.tif 000018
【図１８】
0005036492.tif 000019
【図１９】
0005036492.tif 000020