本発明では、パイプ&フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを情報処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに本発明では、例えばジョブの実行中などに情報処理装置において予期しない電源断が発生した場合に、ジョブの復元情報を保管し、情報処理装置の再起動時にジョブを復元することができる。
以下の本実施形態では、この情報処理装置を例えばプリンタ、コピー、スキャナ、又はFAX等の複数の機能を有する画像処理装置により実現する。
以下に、本発明の実施形態の説明に先立ち、画像処理装置に適用されたパイプ&フィルタの概念について説明する。図1は、パイプ&フィルタの概念を説明する図である。図1に示す「P」はパイプを示し、「F」はフィルタを示す。
フィルタとは、入力された画像データに対して所定の処理を施して、その処理結果を出力するプログラムである。そしてパイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に連結されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ連結されたフィルタへ画像データを伝達する。このように、パイプ&フィルタの概念によれば、パイプを介在させてフィルタにおける処理を連続したものとすることができる。
本発明では、フィルタにおいて施される所定の処理を、入力された画像データに対し、所定の変換を施す処理と考える。すなわち、本発明の画像処理装置では、画像処理装置で実現される各機能をドキュメント(入力画像データ)に対する「変換処理」の連続として捉える。画像処理装置の各機能は、ドキュメントすなわち画像データの入力、加工及び出力によって構成されるものと考える。そこで、以下の実施形態の説明では「入力処理」、「加工処理」及び「出力処理」のそれぞれを「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成した。
本発明では、画像データの入力処理を制御するフィルタを入力フィルタ、画像データの加工処理を制御するフィルタを加工フィルタ、画像データの出力処理を制御するフィルタを出力フィルタとした。これらの各フィルタはそれぞれ独立したプログラムであって、フィルタ間の依存関係は存在しない。よって、各フィルタは、画像処理装置において独立してフィルタ単位で追加(インストール)、削除(アンインストール)することが可能である。
図2は、パイプ&フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。画像処理装置100は、それぞれバスBで相互に接続されているスキャン装置11、プロッタ装置12、ドライブ装置13、補助記憶装置14、メモリ装置15、演算処理装置16、インターフェース装置17、操作装置18で構成される。
スキャン装置11はスキャナエンジンなどで構成され、原稿を読み取って画像データとするために用いられる。プロッタ装置12はプロッタエンジンなどで構成され、画像データを印刷するために用いられる。インターフェース装置17は、モデム、LANカードなどで構成されており、ネットワークに接続する為に用いられる。
本発明の画像処理プログラムは、画像処理装置100を制御する各種プログラムの少なくとも一部である。画像処理プログラムは例えば記録媒体19の配布やネットワークからのダウンロードなどによって提供される。画像処理プログラムを記録した記録媒体19は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、画像処理プログラムを記録した記録媒体19がドライブ装置13にセットされると、画像処理プログラムは記録媒体19からドライブ装置13を介して補助記憶装置14にインストールされる。ネットワークからダウンロードされた画像処理プログラムは、インターフェース装置17を介して補助記憶装置14にインストールされる。
画像処理装置100は、インストールされた画像処理プログラムを格納すると共に、必要なファイル、画像データ等を格納する。メモリ装置15は、コンピュータの起動時に補助記憶装置14から画像処理プログラムを読み出して格納する。そして、演算処理装置16はメモリ装置15に格納された画像処理プログラムに従って、後述するような各種処理を実現している。
(第一の実施形態)
図3は、本発明の第一の実施形態の画像処理装置100のソフトウェア構成を示す構成図である。画像処理装置100は、例えばプリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する複合機である。
画像処理装置100の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層110、コントロール層120、アプリケーションロジック層130、デバイスサービス層140及びデバイス層150により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
画像処理装置100において、ユーザインターフェイス層110によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層110は、コントロール層120を呼び出しこの実行指示に基づきアプリケーションロジック層130を制御する。アプリケーションロジック層130では、コントロール層120からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層140、デバイス層150が画像処理装置100のハードウェア資源を制御する。画像処理装置100では、このような動作によりユーザインターフェイス層110が受け付けた機能に対応した出力結果を得る。
以下に各層について説明する。
ユーザインターフェイス層110には、例えばローカルUI(user interface)部111が実装されており、画像処理装置100の各種機能を実現するための実行指示を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、FAX機能などである。ローカルUI部111は、例えば画像処理装置100の操作装置18に設けられていても良い。この操作装置18は、例えば表示領域を備えるオペレーションパネルなどにより実現されても良い。ユーザインターフェイス層110において、ローカルUI部111で受け付けられた実行指示は、コントロール層120へ伝達される。
コントロール層120では、画像処理装置100の各機能を実現する処理を制御するための機能が実装されている。具体的には、要求された機能に応じてアプリケーションロジック層130における各フィルタの実行を制御する。尚、以下の本実施形態において述べる画像処理装置100の機能とは、画像処理装置100がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスの定義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
アプリケーションロジック層130には、画像処理装置100において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層130では、コントロール層120の制御により、複数のフィルタを組み合わせて一つの機能が実現される。本実施形態におけるアプリケーションロジック層130には、入力フィルタ131、加工フィルタ132、出力フィルタ133及びアクティビティ134とが実装されている。アプリケーションロジック層130に実装された各フィルタは、各フィルタ毎に決められた定義に基づき動作するものであり、この定義に基づき制御される。これら各フィルタの詳細は後述する。アクティビティ134は、ユーザインターフェイス層110において要求された機能に応じて各フィルタを接続し、各フィルタの実行をとりまとめるコンポーネントである。
デバイスサービス層140には、アプリケーションロジック層130に実装された各フィルタが共通して利用する下位の機能が実装されている。本実施形態のデバイスサービス層140には画像パイプ141が実装されている。画像パイプ141は上で述べたパイプの機能を実現するものであり、アプリケーションロジック層130に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達する。ここで画像パイプ141は、例えば入力フィルタ131と加工フィルタ132とを接続しても良いし、加工フィルタ132と出力フィルタ133とを接続しても良い。
デバイス層150には、ハードウェアを制御するプログラムであるドライバが実装されている。本実施形態のデバイス層150には、例えばスキャナ部151、プロッタ部152等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
以下に、アプリケーションロジック層130に実装された各フィルタについてさらに説明する。
本実施形態の入力フィルタ131は、画像処理装置100の外部より入力された画像データに対する入力処理を制御する。入力フィルタ131には、例えば読取フィルタ、メール受信フィルタ、FAX受信フィルタ、PC文書受信フィルタ等が含まれる(図示せず)。読取フィルタは、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタは、画像処理装置100において電子メールを受信し、受信した電子メールに含まれる画像データを出力する。FAX受信フィルタはFAX受信を制御し、受信された画像データを出力する。PC文書受信フィルタは、図示しないクライアントPCなどから印刷画像データを受信し、この印刷画像データを出力する。レポートフィルタは、画像処理装置100の設定情報や履歴情報などを例えば表形式などに整え、この整えられた画像データを出力する。
本実施形態の加工フィルタ132は、加工フィルタ132の入力側のフィルタより入力された画像データに所定の加工処理を施し、加工フィルタ132の出力側にあるフィルタへ処理結果を出力する。ここで言う加工処理とは、例えば入力された画像データの集約、拡大、縮小、回転処理等である。
本実施形態の出力フィルタ133は、入力された画像データに対する出力処理を制御し、画像処理装置100の外部へ出力する。出力フィルタ133には、印刷フィルタ、プレビューフィルタ、メール送信フィルタ、FAX送信フィルタ、PC文書送信フィルタ、文書登録フィルタ等が含まれる。
印刷フィルタは、入力された画像データをプロッタ部152に出力(印刷)させる。プレビューフィルタは、入力された画像データを画像処理装置100の操作装置18などにプレビュー表示させる。またメール送信フィルタは、画像データを電子メールに添付して送信する。またFAX送信フィルタは、入力された画像データをFAX送信する。PC文書送信フィルタは、入力された画像データを図示しないクライアントPCなどに送信する。文書登録フィルタは、入力された画像データを補助記憶装置14等に出力して蓄積する。
本実施形態のアクティビティ134には、ユーザインターフェイス層110においてローカルUI部111から入力された指示がコントロール層120を介して伝達される。アクティビティ134は、この指示にしたがって、入力フィルタ131、加工フィルタ132、出力フィルタ133におけるジョブの実行を制御する。
アプリケーションロジック層130では、上記各フィルタを組み合わせることにより、画像処理装置100の各機能を実現している。係る構成によれば、画像処理装置100では、フィルタとパイプの組み合わせにより各種の機能を実現することができる。具体的には、例えばコピー機能を実現したい場合には、入力フィルタ131に含まれる読取フィルタ、加工フィルタ132、出力フィルタ133に含まれる印刷フィルタを組み合わせれば良い。
以下に、本実施形態の画像処理装置100における印刷処理について説明する。図4は、第一の実施形態の画像処理装置100における印刷処理を説明する図である。
本実施形態の画像処理装置100においてコントロール層120は、アクティビティ134に対し、各フィルタでの処理の実行を制御させるジョブを生成させる(S31)。本実施形態の画像処理装置100では、例えば画像処理装置100の電源が投入されたときに、このアクティビティ134に対するジョブを生成しても良い。
ローカルUI部111により印刷処理の実行要求がなされると、ローカルUI部111は、この要求をコントロール層120へ伝達する(S32)。尚図4に示す例では、印刷処理の一つであるコピー処理が選択されたものとして説明する。この場合、ローカルUI部111では、紙原稿の読取及び印刷を指示する操作がなされる。
アクティビティ134は、紙原稿の読取及び印刷指示を受けると、読取フィルタ131a、加工フィルタ132、印刷フィルタ133aとを画像パイプにより接続する。尚このとき、実際には読取フィルタ131aに含まれる読取フィルタが加工フィルタ132に接続される。次にコントロール層120は、読取フィルタ131aにより実行されるジョブ(S33)、加工フィルタ132により実行されるジョブ(S34)、印刷フィルタ133aにより実行されるジョブを生成する(S35)。
コントロール層120により各フィルタにおいて実行されるジョブが生成されると、アクティビティ134は、各フィルタに対しジョブの実行を指示する。すると、読取フィルタ131aにより、入力部であるスキャナ部151から紙原稿を読取る処理が実行され、紙原稿が画像データとして読み込まれる。この画像データが読取フィルタ131aから出力されて、画像パイプ141を介して加工フィルタ132へ伝達される。
加工フィルタ132では、この画像データに予め設定された所定の加工処理を施し、加工された画像データとして出力する。加工された画像データは、次に出力フィルタ133の一つである印刷フィルタ133aへ伝達される。印刷フィルタ133aでは、この加工された画像データを出力部であるプロッタ部152から出力させて、コピー処理を実現する。
このように本実施形態では、入力フィルタ131、加工フィルタ132、出力フィルタ133は、それぞれが独立して制御されており、各フィルタ間に依存関係が存在しない。このため本実施形態では、機能のカスタマイズ又は拡張などを行う場合には、該当するフィルタ毎にカスタマイズ等を行えば良い。よって本実施形態によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
(第二の実施形態)
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態は、第一の実施形態をさらに改良したものである。よって以下の本実施形態の説明において、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
本実施形態の画像処理装置は、第一の実施形態の画像処理装置100の有する各機能に加え、画像処理装置において予期しない電源断が発生した場合に、ジョブの復元を行うことができる。
例えば画像処理装置において、処理の実行中に電源断が発生すると、各フィルタにおいてジョブの実行が中断される場合がある。本実施形態の画像処理装置のように、複数のアプリケーション(フィルタ)において実行されるジョブの組み合わせで一機能が実現される装置において、予期しない電源断が発生した場合の対処法として、例えば再起動後に実行が中断されたジョブを生成したフィルタを特定し、特定されたフィルタおいてジョブの復元を行う方法がある。
しかしながら上記の方法では、復元されたジョブ同士の関連について考慮されていないため、要求されたジョブを要求された通りに復元することが困難である。
また本発明の画像処理装置に適用されるパイプ&フィルタの概念では、アクティビティは任意のフィルタを組み合わせて機能を実現する。よってアクティビティは、未知のフィルタであっても取り扱い可能であることが望ましい。一方、フィルタを復元するための復元情報にはフィルタに対する設定情報もスキーマとして含まれている。このためアクティビティは、復元情報の登録/読み出しを実施する場合、フィルタの設定情報を知っている必要がある。つまり、もしアクティビティが全フィルタの復元情報を登録/読み出しを行なう場合、アクティビティは全てのフィルタについて知っていなければならない。それパイプ&フィルタの概念とは反する為、アクティビティに全復元情報を登録/読み出しさせる事は難しい。
また、別の問題点として、新規アクティビティの作成が煩雑になるという点が挙げられる。
これは例えば、複数のアプリケーション(フィルタ)を組み合わせてサービスを提供する新たなアプリケーション(アクティビティ)を作成する際に、新たに作成する側のアプリケーション(アクティビティ)でジョブの全復元情報を保持しておくことでジョブの復元することができる。しかしながらこの場合アクティビティに、新たにジョブの全復元情報の定義、全復元情報に対する操作(複数のフィルタに対する復元情報の設定)を実装しておかなければならず、開発工程に日数が係り作成が非常に煩雑になる。
そこで本実施形態では、上記事情を鑑みてこれを解決するものであり、実行されるジョブ同士の関連付けを行い、ジョブ同士の関連を示す情報を関連情報として保管する。そして本実施形態の画像処理装置では、画像処理装置が再起動した際に、関連情報に基づきジョブとジョブの組み合わせを復元することで、要求されたジョブを要求された通りに復元するものである。
図5は、第二の実施形態の画像処理装置100Aのソフトウェア構成を示す構成図である。
本実施形態の画像処理装置100Aは、オペレーション層120A、アプリケーションロジック層130A、サービス層140A、デバイス層150Aを有する。
オペレーション層120Aには、各層に共通した機能の制御等を行う。オペレーション層120Aは、プラグイン管理121が実装されている。プラグイン管理121は、画像処理装置100Aにおけるフィルタの追加や削除などの管理を行う。
アプリケーションロジック層130Aは、入力フィルタ131A、加工フィルタ132A、出力フィルタ133A、アクティビティ134A、復元要否ライブラリ135が実装されている。入力フィルタ131A、加工フィルタ132A、出力フィルタ133A、アクティビティ134A、復元要否ライブラリ135の詳細は後述する。
サービス層140Aには、アプリケーションロジック層130Aに実装された各フィルタが共通して利用する下位の機能が実装されている。サービス層140Aには、画像パイプ141、リクエスト管理142、データ管理143、設定情報リポジトリサービス144が実装されている。リクエスト管理142は、画像処理装置100Aにおいて要求されるジョブの制御を行う。データ管理143は、アプリケーションロジック層130Aに実装された各フィルタの設定情報や、各フィルタで生成された復元情報等が蓄積されて保管される。設定情報リポジトリサービス144は、各フィルタの設定情報や、各フィルタで生成された復元情報等が一時的に保持される。
次に図6を参照して、本実施形態のアプリケーションロジック層130Aに実装された各フィルタに共通する機能構成について説明する。図6は、第二の実施形態の画像処理装置100Aの有するフィルタの機能構成を説明する図である。
図6に示す機能構成は、本実施形態の入力フィルタ131A、加工フィルタ132A、出力フィルタ133Aが共通して有する機能である。
本実施形態の各フィルタは、復元情報生成部210、データ登録部220、識別情報通知部230、復元情報更新部240、復元要否判定部250、登録判定部260、復元可否判定部270を有する。
復元情報生成部210は、各フィルタにおいて実行されていたジョブの復元情報を生成する。尚本実施形態の復元情報とは、各フィルタにおけるジョブの実行履歴に基づき生成される。具体的には復元情報は、例えばジョブの識別情報、ジョブの設定情報、ジョブの進捗情報を含む情報である。
データ登録部220は、復元情報生成部210で生成された復元情報をデータ管理143へ登録して保管させる。
識別情報通知部230は、復元情報生成部210で生成された復元情報のうち、ジョブの識別情報をアクティビティ134Aへ通知する。尚ジョブの識別情報とは、各フィルタにおいて実行されるジョブを特定する情報である。
復元情報更新部240は、データ管理143に保管された復元情報を更新する。復元要否判定部250は、各フィルタが、ジョブの復元が必要か否かを判定する。登録判定部260は、復元情報生成部210により生成された復元情報をデータ管理143へ保管させるか否かを判定する。復元可否判定部270は、フィルタにおいてジョブの復元が可能か否かを判定する。
次に、図7を参照して本実施形態のアクティビティ134Aの機能構成について説明する。図7は、第二の実施形態の画像処理装置100Aの有するアクティビティの機能構成を説明する図である。
本実施形態のアクティビティ134Aは、関連情報取得部310、復元情報生成部320、関連付け部330、復元情報更新部340を有する。関連情報取得部310は、データ管理143に登録された後述する関連情報を取得する。復元情報生成部320は、アクティビティ134Aにおける処理の実行履歴から、アクティビティ134Aの復元情報を生成する。尚アクティビティ134Aの復元情報とは、例えばアクティビティ134Aにおいて実行されるジョブの識別情報、アクティビティ134Aに設定されている設定情報、アクティビティ134Aにおける処理の実行履歴から生成される進捗情報等を含む情報である。
関連付け部330は、各フィルタの識別情報通知部230より通知された識別情報に基づき、各フィルタにおけるジョブの関連付けを行う。具体的には例えば、各フィルタにおいて復元情報が生成されたとき、生成された復元情報に含まれるジョブの識別情報を紐付けして関連付けを行っても良い。復元情報更新部340は、復元情報を更新する。
本実施形態の画像処理装置100Aでは、図6、図7で説明した各フィルタ及びアクティビティ134Aの機能により、画像処理装置100Aに電源断が発生した場合にも各フィルタにおけるジョブを復元することができる。
次に本実施形態の画像処理装置100Aにおける復元情報の登録について説明する。図8は、第二の実施形態に画像処理装置100Aにおける復元情報の登録を説明するシーケンス図である。尚図8では、入力フィルタ131Aと加工フィルタ132Aにおいて生成された復元情報が保管される場合を説明している。
本実施形態の画像処理装置100Aにおいて、復元情報の登録が開始されると、アクティビティ134Aは、入力フィルタ131Aに復元情報の登録を指示する(S81)。入力フィルタ131Aは、復元情報の登録指示を受けて、入力フィルタ131Aの有する復元情報生成部210により復元情報を生成し、データ登録部220により復元情報をデータ管理143へ登録する(S82)。また入力フィルタ131Aは、識別情報通知部230により、復元情報に含まれるジョブの識別情報をアクティビティ134Aへ通知する(S83)。
次にアクティビティ134Aは、加工フィルタ132Aに復元情報の登録を指示する(S84)。加工フィルタ132Aは、復元情報の登録指示を受けて、加工フィルタ132Aの有する復元情報生成部210により復元情報を生成し、データ登録部220により復元情報をデータ管理143へ登録する(S85)。また加工フィルタ132Aは、識別情報通知部230により、復元情報に含まれるジョブの識別情報をアクティビティ134Aへ通知する(S86)。
次にアクティビティ134Aは、復元情報生成部320により、アクティビティ134Aの復元情報を生成する。またアクティビティ134Aは、関連付け部330により、入力フィルタ131Aから通知された識別情報と、加工フィルタ132Aから通知された識別情報の関連付けを行い、これらの識別情報が紐付けされた関連情報を生成する。そしてアクティビティ134Aは、アクティビティ134Aの復元情報に生成された関連情報を含めてデータ管理143へ登録する(S87)。
本実施形態では、以上のようにして各フィルタの復元情報と、アクティビティ134Aの復元情報と、各フィルタの復元情報を関連付ける関連情報がデータ管理143へ登録される。尚本実施形態において復元情報を登録するタイミングについては後述する。
次に図9を参照して本実施形態の画像処理装置100Aにおけるジョブの復元について説明する。
図9は、第二の実施形態の画像処理装置におけるジョブの復元を説明するシーケンス図である。図9では、入力フィルタ131Aにおけるジョブと加工フィルタ132Aにおけるジョブが復元される場合について説明する。
画像処理装置100Aにおけるジョブの復元は、画像処理装置100Aで発生した電源断から画像処理装置100Aが再起動された後に行われる。画像処理装置100Aにおいて、リクエスト管理142が再起動処理の終了通知を受け取ると、リクエスト管理142はアクティビティ134Aへジョブの復元開始指示を出す(S901)。
アクティビティ134Aは、復元開始指示を受けてデータ管理143を参照し(S902)、アクティビティ134Aの復元情報を取得する(S903)。次にアクティビティ134Aは、関連情報取得部310により、復元情報に含まれる関連情報を取得する(S904)。アクティビティ134Aは、取得した関連情報から復元されるジョブを実行するフィルタを特定する(S905)。
ジョブを復元するフィルタを特定すると、アクティビティ134Aは特定されたフィルタへジョブの復元情報の取得指示を出す。図9では、ジョブの復元を行うフィルタとして、入力フィルタ131Aと加工フィルタ132Aとが特定されている。よってアクティビティ134Aは、始めに入力フィルタ131Aへジョブの復元指示を出す(S906)。
入力フィルタ131Aは、復元情報の取得指示を受けるとデータ管理143を参照し(S907)、入力フィルタ131Aの復元情報を取得する(S908)。そして入力フィルタ131Aは、取得した復元情報をアクティビティ134Aへ渡す(S909)。次にアクティビティ134Aは、加工フィルタ132Aに復元情報の取得指示を出す(S910)。復元情報の取得指示を受ける加工フィルタ132Aは、データ管理143を参照し(S911)、加工フィルタ132Aの復元情報を取得する(S912)。そして入力フィルタ131Aは、取得した復元情報をアクティビティ134Aへ渡す(S913)。
アクティビティ134Aは、アクティビティ134Aの復元情報、入力フィルタ131Aの復元情報、加工フィルタ132Aの復元情報を取得すると、復元情報の構築処理を行う(S914)。復元情報の構築処理により復元情報の集合体が生成されると(S915)、アクティビティ134Aはジョブの復元をリクエスト管理142へ要求する(S916)。
尚本実施形態の画像処理装置100Aでは、アクティビティ134Aの復元情報クラスの属性として、フィルタ復元情報クラスのオブジェクトを格納するためのリストが定義されている。本実施形態の復元情報の構築処理では、このリストに対し、S913で取得した復元情報クラスのオブジェクトをセットする。また本実施形態における復元情報の集合体とは、構築処理においてフィルタの復元情報オブジェクトがセットされたアクティビティ134Aの復元情報オブジェクトを示す。
リクエスト管理142は、この要求を受けて、アクティビティ134Aの復元情報に含まれる関連情報から各フィルタで実行されるジョブの構造(ジョブツリー)を組み立てる(S917)。
次にリクエスト管理142は、このジョブツリーに基づき、アクティビティ134A、入力フィルタ131A、加工フィルタ132Aにおいて実行されるジョブの生成指示を出す。始めにリクエスト管理142は、アクティビティ134Aに対してジョブの生成指示を出す(S918)。アクティビティ134Aは、ジョブを生成し、ジョブを生成したことをリクエスト管理142へ通知する(S919)。
次にリクエスト管理142は、入力フィルタ131Aに対してジョブの生成指示を出す(S920)。入力フィルタ131Aは、ジョブを生成し、ジョブを生成したことをリクエスト管理142へ通知する(S921)。次にリクエスト管理142は、加工フィルタ132Aに対してジョブの生成指示を出す(S922)。加工フィルタ132Aは、ジョブを生成し、ジョブを生成したことをリクエスト管理142へ通知する(S923)。
ジョブが生成されると、リクエスト管理142は、アクティビティ134A、入力フィルタ131A、加工フィルタ132Aにおける設定情報を復元させる(S924)。
まずリクエスト管理142は、アクティビティ134Aの復元情報に含まれるアクティビティ134Aの設定情報に基づき、アクティビティ134Aのジョブを復元する(S925)。尚アクティビティ134Aに設定された設定情報とは、例えば各フィルタの接続に関する設定などである。
次にリクエスト管理142は、入力フィルタ131Aの復元情報に含まれる入力フィルタ131Aの設定情報に基づきジョブを復元する(S926)。尚入力フィルタ131Aに設定された設定情報とは、例えば入力フィルタ131Aが読取フィルタ131aであった場合には、原稿画像の読取りに関する設定などを示す。具体的には、読取りの際の解像度などである。
次にリクエスト管理142は、加工フィルタ132Aの復元情報に含まれる加工フィルタ132Aの設定情報に基づきジョブを復元する(S927)。尚加工フィルタ132Aに設定された設定情報とは、例えば加工フィルタ132Aが編集フィルタ132aであった場合には、画像データの集約、変倍などに関する設定などを示す。
本実施形態の画像処理装置100Aでは、以上のようにしてアクティビティ134A及び各フィルタにおけるジョブが復元される。ジョブが復元されると、リクエスト管理142からアクティビティ134Aへジョブの実行指示がなされ、アクティビティ134Aにおいてジョブが実行される。
アクティビティ134Aにおいてジョブが実行されると、アクティビティ134Aから各フィルタにジョブの実行指示がなされる。アクティビティ134Aから各フィルタへジョブの実行指示がなされた後の処理は、第一の実施形態で説明した通りである。
次に、本実施形態の画像処理装置100Aにおける復元情報の更新について説明する。本実施形態の画像処理装置100Aでは、データ管理143に登録した復元情報を更新することで、電源断が発生したときの続きからジョブの実行を再開することができる。
図10は、第二の実施形態の画像処理装置100Aにおける復元情報の更新を説明する第一のシーケンス図である。図10では、加工フィルタ132Aにおいて、ジョブの復元情報が更新される場合について説明する。尚ジョブの復元情報が更新される場合とは、例えばジョブの進捗に変化があった場合である。
画像処理装置100Aの加工フィルタ132Aにおいて、ジョブの進捗に変化があると(S1001)、加工フィルタ132Aはデータ管理143に保管された加工フィルタ132Aの復元情報をロックする(S1002)。データ管理143は、加工フィルタ132Aへ復元情報がロックされたことを通知する(S1003)。
次に加工フィルタ132Aは、復元情報更新部240により、データ管理143に保管された復元情報に含まれるジョブの進捗情報を更新する(S1004)。データ管理143は、ジョブの進捗情報が更新されたことを加工フィルタ132Aへ通知する(S1005)。加工フィルタ132Aは、データ管理143において加工フィルタ132Aの復元情報のロックを解除する(S1006)。データ管理143は、復元情報のロックが解除されたことを加工フィルタ132Aへ通知する(S1007)。
本実施形態の画像処理装置100Aでは、以上のようにして復元情報に含まれるジョブの進捗情報を更新する。図10で説明した方法によれば、各フィルタ毎に独立してジョブの進捗情報を更新するため、短い処理時間でジョブの進捗情報を更新できる。
尚復元情報は、別の方法で更新されても良い。図11を参照して、別の方法による復元情報の更新について説明する。図11は、第二の実施形態の画像処理装置100Aにおける復元情報の更新を説明する第二のシーケンス図である。
図11に示す例では、あるフィルタにおいてジョブの進捗に変化があった場合には、このフィルタの復元情報と、このフィルタと関連する全てのフィルタの復元情報を更新する。図11では、入力フィルタ131Aにおいてジョブの進捗に変化あった場合を示している。
入力フィルタ131Aにおいてジョブの進捗に変化があると(S1101)、入力フィルタ131Aは進捗の変化があったことをアクティビティ134Aへ通知する(S1102)。アクティビティ134Aは、この通知を受けて、アクティビティ134Aの復元情報とアクティビティ134Aの配下にある全てのフィルタの復元情報を更新する。
まずアクティビティ134Aは、復元情報更新部340により、データ管理143に保管されたアクティビティ134Aの復元情報に含まれる進捗情報を更新する(S1103)。次にアクティビティ134Aは、アクティビティ134Aの配下のフィルタである入力フィルタ131Aに対し復元情報の更新指示を出す(S1104)。入力フィルタ131Aは、この指示を受けて、復元情報更新部240によりデータ管理143に保管された入力フィルタ131Aの復元情報に含まれる進捗情報を更新する(S1105)。
次にアクティビティ134Aは、アクティビティ134Aの配下のフィルタである加工フィルタ132Aに対し復元情報の更新指示を出す(S1106)。加工フィルタ132Aは、この指示を受けて、復元情報更新部240によりデータ管理143に保管された加工フィルタ132Aの復元情報に含まれる進捗情報を更新する(S1107)。
本実施形態の画像処理装置100Aでは、以上のようにしてジョブの進捗情報を更新しても良い。図11で説明した方法では、一つのフィルタでジョブの進捗に変化があった場合に、同時に全フィルタのジョブの進捗情報を更新することができる。
次に本実施形態の画像処理装置100Aの各フィルタにおける復元の要否判定について説明する。
本実施形態の画像処理装置100Aに実装されたフィルタには、電源断が発生した場合にジョブの復元を必要とするフィルタとそうでないフィルタとが存在する。例えば画像処理装置100Aでは、入力フィルタ131AとしてFAX受信フィルタが選択されている場合や、出力フィルタ133AとしてFAX送信フィルタが選択されている場合には、電源断の後のジョブの復元が必要とされる。また入力フィルタ131Aとして読取フィルタが選択されている場合や、出力フィルタ133Aとして印刷フィルタが選択されている場合には、電源断の後のジョブの復元は不要とされている。
本実施形態の画像処理装置100Aでは、再起動の際に各フィルタにおいてジョブの復元の要否を判定することができる。
本実施形態の画像処理装置100Aでは、プラグイン管理121によりフィルタが画像処理装置100Aにインストールされたとき、フィルタ自身がジョブの復元を必要とするか否か示す要否情報をアプリケーションロジック層120Aに実装された復元要否ライブラリ135へ登録する。そして画像処理装置100Aにおいて、復元要否ライブラリ135に登録された要否情報を参照して各フィルタにおけるジョブの復元の要否判定を行う。
まず始めに、図12を参照して要否情報の登録について説明する。図12は、第二の実施形態における要否情報の登録を説明するシーケンス図である。尚図12では、出力フィルタ133Aがインストールされた場合について説明する。
画像処理装置100Aにおいて、出力フィルタ133Aのインストール指示がなされると、プラグイン管理121は、出力フィルタ133Aのインストールを行う(S1201)。出力フィルタ133Aは、インストールされると出力フィルタ133Aが起動するための前処理を行う(S1202)。
次にプラグイン管理121は、出力フィルタ133Aを起動させる(S1203)。出力フィルタ133Aは、起動されると他のフィルタ等のアプリケーションと連携をとるための後処理を行う(S1204)。そして出力フィルタ133Aは、復元要否ライブラリ135へ、出力フィルタ133Aがジョブの復元を必要とするフィルタであるか否かを示す要否情報を登録する(S1205)。
以上に説明したように、本実施形態の画像処理装置100Aでは、各フィルタ毎の要否情報が登録された復元要否ライブラリ135を用いて各フィルタの復元の要否判定を行っても良い。図13は、復元要否ライブラリ135を用いた各フィルタの要否判定を説明する図である。図13では、入力フィルタ131Aの一つである読取フィルタ131aと、出力フィルタ133Aの一つであるFAX送信フィルタ133bの要否判定を行う場合を示している。
図13の例では、アクティビティ134Aが復元要否ライブラリ135を参照することで各フィルタの要否判定を行う。例えば読取フィルタ131aの場合、アクティビティ134Aは、復元要否ライブラリ135を参照して復元が不要であると判定する。またFAX送信フィルタ133bの場合、アクティビティ134Aは、復元要否ライブラリ135を参照して復元が必要であると判定する。
本実施形態の画像処理装置100Aでは、このようにしてジョブの復元の要否を判定できる。尚本実施形態では、インストールされたフィルタがアンインストールされる場合には、復元要否ライブラリ135からアンインストール対象となるフィルタの要否情報を削除しても良い。そうすれば、復元要否ライブラリ135において必要な要否情報のみが保管されることになる。
また本実施形態の画像処理装置100Aでは、各フィルタが、復元要否判定部250によりジョブの復元の要否判定を行っても良い。以下に図14を参照して各フィルタが復元の要否判定を行う場合について説明する。図14は、第二の実施形態の画像処理装置100Aにおけるジョブの復元の要否判定を説明するシーケンス図である。図14では、入力フィルタ131Aの一つである読取フィルタ131aと、出力フィルタ133Aの一つであるFAX送信フィルタ133bにおいて要否判定を行う場合を示している。
画像処理装置100Aにおいて、アクティビティ134Aから読取フィルタ131aに対してジョブの生成指示がなされると(S1401)、読取フィルタ131aはジョブを生成し、その旨をアクティビティ134Aへ通知する(S1402)。次にアクティビティ134Aは、FAX送信フィルタ133bに対してジョブの生成指示を出す(S1403)。FAX送信フィルタ133bは、この指示を受けてジョブを生成し、その旨をアクティビティ134Aへ通知する(S1404)。
次にアクティビティ134Aは、各フィルタにおけるジョブの復元の要否判定指示を出す。まずアクティビティ134Aは、読取フィルタ131aに対し、復元の要否判定指示を出す(S1405)。読取フィルタ131aは、要否判定指示を受けると復元要否判部250により読取フィルタ131aがジョブの復元を必要とするか否かを判定する。本実施形態では、読取フィルタ131aはジョブの復元が不要なフィルタであるから、読取フィルタ131aは復元が不要であることをアクティビティ134Aへ通知する(S1406)。
次にアクティビティ134Aは、FAX送信フィルタ133bに対し、復元の要否判定指示を出す(S1407)。FAX送信フィルタ133bは、要否判定指示を受けると復元要否判定部250によりFAX送信フィルタ133bがジョブの復元を必要とするか否かを判定する。本実施形態ではFAX送信フィルタ133bはジョブの復元が必要なフィルタであるから、FAX送信フィルタ133bは復元が必要であることをアクティビティ134Aへ通知する(S1408)。
アクティビティ134Aは、ジョブの復元が必要なフィルタが存在すると、フィルタの復元情報の登録を開始する。復元情報の登録については、上で説明した通りである。
このように各フィルタが復元の要否を判定する復元要否判定部250を有する構成とすれば、復元要否ライブラリ135が不要となり、復元要否ライブラリ135の改ざんの防止などの管理を行う必要性を回避できる。
次に本実施形態の画像処理装置100Aにおける復元情報の登録のタイミングについて説明する。
本実施形態の画像処理装置100Aにおいて、例えばある機能を実現するジョブの実行が開始された直後に電源断が発生した場合、再起動後にその続きからジョブを実行するのは困難な場合がある。そこで本実施形態の画像処理装置100Aでは、ジョブの実行がある程度進んでから復元情報を登録することができる。
再起動後に電源断の続きから実行することが困難なジョブとしては、例えば読取フィルタ131aによる画像の読み取りジョブなどがある。例えば読取フィルタ131aで原稿の読み取りジョブの実行中に電源断が発生した場合に、再起動後に読み取り中であった原稿の途中から読み取りを再開することは困難である。このような場合には、通常はジョブが一度キャンセルされる。このように電源断が発生した場合にはキャンセルされるジョブの復元情報は、ジョブの復元において無意味である。
そこで本実施形態では、ジョブの実行がある程度進んでから復元情報の登録を行う。図15は、第二の画像処理装置100Aにおける復元情報の登録のタイミングを説明するシーケンス図である。図15では、入力フィルタ131Aとして読取フィルタ131aが選択され、出力フィルタ133AとしてFAX送信フィルタ133bが選択された場合を示す。
画像処理装置100Aが再起動されて、アクティビティ134Aがジョブの復元が必要なことを検知すると(S1501)、アクティビティ134Aは、各フィルタに復元情報の登録を行うタイミングを問い合わせる。
まずアクティビティ134Aは、読取フィルタ131aへ問い合わせを行う(S1502)。読取フィルタ131aは、問い合わせを受けて、登録判定部260によりジョブの進捗に基づき復元情報の登録が可能か否かを判定する。
ここで読取フィルタ131aが原稿の読み取り中である場合、読取フィルタ131aはアクティビティ134Aへ復元情報の登録が不可であることを通知する(S1503)。次にアクティビティ134Aは、FAX送信フィルタ133bへ問い合わせを行う(S1504)。FAX送信フィルタ133bは、登録判定部260により復元情報の登録が可能か否か判定し、復元情報の登録が可能であることをアクティビティ134Aへ通知する(S1505)。
本実施形態では、アクティビティ134Aは、アクティビティ134Aの配下にある全てのフィルタから復元情報の登録可能である通知を受けるまで、復元情報の登録指示を行わない。
読取フィルタ131aにおいて原稿の読み取り処理が完了すると(S1506)、入力フィルタ131Aはアクティビティ134Aへ完了通知し、復元情報の登録が可能となったことを通知する(S1507)。アクティビティ134Aは、この通知を受けると、配下の全てのフィルタにおいて復元情報の登録が可能となったものとして、復元情報の登録指示を行う。復元情報の登録については上で説明した通りである。
次に本実施形態の画像処理装置100Aにおいて、ジョブの復元時に復元情報が破損していた場合について説明する。本実施形態の画像処理装置100Aでは、再起動後のジョブの復元において復元情報が破損していた場合、ジョブをキャンセルして復元情報が破損していたことを示すレポートを出力する。
以下に図16を参照して本実施形態における各フィルタの復元情報の破損時の対応について説明する。図16は、第二の実施形態の画像処理装置100Aにおいて復元情報が破損していた場合の動作を説明するシーケンス図である。尚図16では、入力フィルタ131Aと加工フィルタ132Aにおいてジョブの復元が行われる場合を示している。
図16のS1601からS1611までの処理は、図9のS901からS911までの処理と同様であるから説明を省略する。
S1611においてデータ管理143に登録されている加工フィルタ132Aの復元情報が破損している場合、復元情報は正しく呼び出されないため、データ管理143は復元情報が存在しないことを加工フィルタ132Aへ通知する(S1612)。加工フィルタ132Aは、復元情報を取得できないため、復元可否判定部270によりジョブの復元は不可能と判定し、ジョブの復元失敗をアクティビティ134Aへ通知する(S1613)。
アクティビティ134Aは、復元失敗の通知を受けると、アクティビティ134Aの配下の全てのフィルタに復元失敗を通知する。まずアクティビティ134Aは、入力フィルタ131Aに対して、加工フィルタ132Aでの復元失敗を通知する(S1614)。次にアクティビティ134Aは、加工フィルタ132Aに対して、加工フィルタ132Aでの復元失敗を通知する(S1615)。
復元を失敗した加工フィルタ132Aは、この通知を受けると、復元失敗を示すレポート情報ファイルを作成する(S1616)。レポート情報ファイルの作成についての詳細は後述する。
そして加工フィルタ132Aは、レポートアクティビティ134Bに対してレポート情報ファイルの出力要求を行う(S1617)。尚レポートアクティビティ134Bは、画像処理装置100Aのアプリケーションロジック層130Aに実装されており、画像処理装置100Aからのレポート出力機能の制御を行うものである。
レポートアクティビティ134Bは、加工フィルタ132Aにおいて復元情報の破損によりジョブの復元を失敗したことを報告するレポートを出力する。レポートの出力形態の詳細は後述する。
復元失敗のレポートが出力されると、加工フィルタ132Aは、データ管理143に登録された加工フィルタ132Aの破損した復元情報を削除する(S1618)。また入力フィルタ131Aも同様に、データ管理143に登録された入力フィルタ131Aの復元情報を削除する(S1619)。
尚図16では、加工フィルタ132Aがレポートアクティビティ134Bに対してレポートの出力要求を行うものとしたが、レポートの出力要求は成されなくても良い。レポートの出力要求を行うか否かについては、ジョブの復元に失敗したフィルタに振る舞いによって決定されても良い。
次に、復元を失敗した場合のレポート情報ファイルの作成及びレポートの出力形態について説明する。本実施形態の画像処理装置100Aでは、レポートを印刷して出力しても良いし、メッセージとして操作装置18に表示させても良い。また電子メールなどにより画像処理装置100Aと接続された端末装置へ送信しても良い。
図17は、第二の実施形態の画像処理装置100Aにおけるレポート情報ファイルの作成を説明するシーケンス図である。尚図17で説明するレポート情報ファイルの作成は、図16のS1616で行われる処理の詳細を示している。
画像処理装置100Aにおいて、アクティビティ134Aが加工フィルタ132Aに対して復元失敗を通知すると(S1701)、加工フィルタ132Aは設定情報リポジトリサービス144に設定されたレポート情報ファイルの出力形態の種類を参照する(S1702)。設定情報リポジトリサービス144は、この参照を受けてデータ管理143を参照し(S1703)、加工フィルタ132Aの設定情報において設定されたレポート情報ファイルの出力形態の情報を取得する(S1704)。図17の例では、レポート情報ファイルは電子メールで送信されるものとした。
尚ここでデータ管理143においてレポート情報ファイルの出力形態が選択可能に設定されていた場合、例えば図18(A)に示す選択画面18Aが画像処理装置100Aの操作装置18に表示されても良い。図18は、操作装置18に表示されたレポート情報ファイルの出力に関する設定画面の例を示す図である。
図17に戻って、設定情報リポジトリサービス144は、取得した設定情報を加工フィルタ132Aへ通知する(S1705)。加工フィルタ132Aは、レポート情報ファイルの出力形態が電子メールであることから、設定情報リポジトリサービス144に対して電子メールの送信先を問い合わせる(S1706)。設定情報リポジトリサービス144は、送信先の情報を加工フィルタ132Aへ通知する(S1707)。
尚ここで加工フィルタ132Aに通知される送信先の情報は、例えば加工フィルタ132Aの設定情報として、予め設定情報リポジトリサービス144に登録されていたものであっても良い。または図18(B)に示す設定画面18Bにより、設定情報リポジトリサービス144の登録されている複数の送信先情報から選択されたものであっても良い。
図17に戻って、加工フィルタ132Aは、通知された送信先情報に基づきレポート情報ファイルを作成する(S1708)。加工フィルタ132Aは、レポート情報ファイルを作成すると、レポートアクティビティ134Bへレポート情報ファイルの出力要求を行う(S1709)。そして加工フィルタ132Aは、データ管理143に登録されている加工フィルタ132Aの破損した復元情報を削除する(S1710)。
本実施形態の画像処理装置100Aでは、以上のようにして復元に失敗した場合のレポート情報ファイルを作成する。
次に本実施形態の画像処理装置100Aにおけるアクティビティ134Aの復元情報が破損した場合について説明する。
本実施形態の画像処理装置100Aにおけるジョブの復元では、アクティビティ134Aの復元情報が始めに取得されて、アクティビティ134Aの復元情報に基づき各フィルタへ復元情報の取得指示が行われる。したがって、アクティビティ134Aの復元情報が破損している場合、フィルタへの復元情報の取得指示は行われない。
本実施形態では、このことを利用してアクティビティ134Aの復元情報の破損を検出する。
図19は、第二の実施形態の画像処理装置100Aにおけるアクティビティ134Aの復元情報の破損の検出について説明する図である。
本実施形態の画像処理装置100Aにおいて、各フィルタの有する復元可否判定部270は、復元情報の取得指示を受けたとき、取得対象となった復元情報にチェックをつける。そして画像処理装置100Aにおいて、復元対象となった全てのジョブの復元が完了した後、全てのフィルタに復元が完了したことを通知する。この通知を受けたフィルタにおいて、復元可否判定部270は、それぞれの復元情報におけるチェックの有無を確認する。
チェックがついていない復元情報は、関連付けられたアクティビティの復元情報が破損しているために、取得対象とならなかった復元情報である。よってチェックのない復元情報を生成したフィルタの復元可否判定部270は、復元情報が取得されないためにジョブの復元は不可能と判定し、データ管理143から復元情報を削除する。そしてこのフィルタの上流に接続されたアクティビティ134Aへ復元情報が破損していることを通知する。アクティビティ134Aは、この通知を受けてアクティビティ134Aの復元情報をデータ管理143から削除する。本実施形態では、このようにしてアクティビティの復元情報の破損を検出することができる。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。