(57)【要約】【課題】実行途中でエラーが発生したジョブフローにおいて、実行済みの処理を無駄にせず、かつ、処理対象となっていたデータを保存するに際し、保存するデータの安全性を向上させる。【解決手段】複数の工程を含むジョブフローを実行している最中にエラーが発生すると、複合機１００１は、実行済みの工程で処理された画像データに電子署名を付加し、電子署名を付加した画像データをボックスに保存する。このとき、複合機１００１は、ジョブフローの有効期限と等しい有効期限の電子証明書を作成して電子署名に含める。その後、エラーが発生したジョブフローの実行を再開させる前に、複合機１００１は、画像データに付加されている電子署名を検証し、その結果をユーザに通知する。この通知に対するユーザの操作に応じて、エラーが発生したジョブフローの実行を再開させるか否かを判断する。【選択図】図１
2008078759.tif 000002
【特許請求の範囲】
【請求項１】
複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行手段と、
前記実行手段によってジョブフローが実行されている最中にエラーが発生したことを検出する検出手段と、
前記検出手段によってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持手段とを有することを特徴とするデータ処理装置。
【請求項２】
前記検出手段によってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、少なくとも最初の工程の実行が正常に終了しているか否かを判断する判断手段を有し、
前記保持手段は、前記判断手段によって、前記ジョブフローに含まれる複数の工程のうち、少なくとも最初の工程の実行が正常に終了していると判断された場合に、前記既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記正当性保証情報は、前記ジョブフローの有効期間を示す情報と、前記既に処理されたデータの変更の有無を確認可能にするための情報とを含むことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記保持手段は、前記検出手段によって、第１ユーザが実行可能なジョブフローの実行中にエラーが発生したことが検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理し、前記検出手段によって、第２ユーザが実行可能なジョブフローにエラーが発生したことが検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理しないことを特徴とする請求項１〜３の何れか１項に記載のデータ処理装置。
【請求項５】
前記検出手段によってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに対して設定されている実行権限に基づいて、そのジョブフローが複数のユーザによって実行可能なジョブフローであるか否かを判定する判定手段とを有し、
前記保持手段は、前記判定手段によって、エラーが検出されたジョブフローが複数のユーザによって実行可能なジョブフローであると判定された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理することを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記保持手段は、外部装置からアクセス可能な記憶領域に設定されているジョブフローにエラーが発生したことが前記検出手段によって検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理し、
前記実行手段は、前記記憶領域に対するデータの入力に従って、そのデータに対して前記ジョブフローに含まれる複数の工程の処理内容に基づく処理を実行することを特徴とする請求項１〜５の何れか１項に記載のデータ処理装置。
【請求項７】
前記実行手段が、前記検出手段によってエラーが検出されたジョブフローを再開する場合、そのジョブフローにおいて処理対象となっていたデータに対応付けられた前記正当性保証情報を検証する検証手段と、
前記検証手段によって、前記データが変更されていると検証された場合、前記データが変更されていることを表示する表示制御手段を更に有することを特徴とする請求項１〜６の何れか１項に記載のデータ処理装置。
【請求項８】
前記検証手段は、前記正当性保証情報に基づいて、前記検出手段によってエラーが検出されたジョブフローを再開する時期が、ジョブフローの有効期間を過ぎている場合、および、前記データが変更された場合の少なくとも１つに該当するかを検証し、
前記表示制御手段は、前記検証手段の検証によって、前記検出手段によってエラーが検出されたジョブフローを再開する時期が、ジョブフローの有効期間を過ぎている場合、および、前記データが変更された場合の少なくとも１つに該当すると検証された場合、再開を指示したユーザに警告画面を表示することを特徴とする請求項７に記載のデータ処理装置。
【請求項９】
前記実行手段は、前記エラーが検出されたジョブフローに定義された処理内容のうち、そのエラーが発生した工程から処理を再開することを特徴とする請求項１〜８の何れか１項に記載のデータ処理装置。
【請求項１０】
複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行ステップと、
前記実行ステップによってジョブフローが実行されている最中にエラーが発生したことを検出する検出ステップと、
前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持ステップとを有することを特徴とするデータ処理方法。
【請求項１１】
前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、少なくとも最初の工程の実行が正常に終了しているか否かを判断する判断ステップを有し、
前記保持ステップは、前記判断ステップによって、前記ジョブフローに含まれる複数の工程のうち、少なくとも最初の工程の実行が正常に終了していると判断された場合に、前記既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理することを特徴とする請求項１０に記載のデータ処理方法。
【請求項１２】
前記正当性保証情報は、前記ジョブフローの有効期間を示す情報と、前記既に処理されたデータの変更の有無を確認可能にするための情報とを含むことを特徴とする請求項１０又は１１に記載のデータ処理方法。
【請求項１３】
前記保持ステップは、前記検出ステップによって、第１ユーザが実行可能なジョブフローの実行中にエラーが発生したことが検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理し、前記検出ステップによって、第２ユーザが実行可能なジョブフローにエラーが発生したことが検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理しないことを特徴とする請求項１０〜１２の何れか１項に記載のデータ処理方法。
【請求項１４】
前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに対して設定されている実行権限に基づいて、そのジョブフローが複数のユーザによって実行可能なジョブフローであるか否かを判定する判定ステップとを有し、
前記保持ステップは、前記判定ステップによって、エラーが検出されたジョブフローが複数のユーザによって実行可能なジョブフローであると判定された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理することを特徴とする請求項１３に記載のデータ処理方法。
【請求項１５】
前記保持ステップは、外部装置からアクセス可能な記憶領域に設定されているジョブフローにエラーが発生したことが前記検出ステップによって検出された場合に、そのジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理し、
前記実行ステップは、前記記憶領域に対するデータの入力に従って、そのデータに対して前記ジョブフローに含まれる複数の工程の処理内容に基づく処理を実行することを特徴とする請求項１０〜１４の何れか１項に記載のデータ処理方法。
【請求項１６】
前記実行ステップが、前記検出ステップによってエラーが検出されたジョブフローを再開する場合、そのジョブフローにおいて処理対象となっていたデータに対応付けられた前記正当性保証情報を検証する検証ステップと、
前記検証ステップによって、前記データが変更されていると検証された場合、前記データが変更されていることを表示する表示制御ステップを更に有することを特徴とする請求項１０〜１５の何れか１項に記載のデータ処理方法。
【請求項１７】
前記検証ステップは、前記正当性保証情報に基づいて、前記検出ステップによってエラーが検出されたジョブフローを再開する時期が、ジョブフローの有効期間を過ぎている場合、および、前記データが変更された場合の少なくとも１つに該当するかを検証し、
前記表示制御ステップは、前記検証ステップの検証によって前記検出ステップによってエラーが検出されたジョブフローを再開する時期が、ジョブフローの有効期間を過ぎている場合、および、前記データが変更された場合の少なくとも１つに該当すると検証された場合、再開を指示したユーザに警告画面を表示することを特徴とする請求項１６に記載のデータ処理方法。
【請求項１８】
前記実行ステップは、前記エラーが検出されたジョブフローに定義された処理内容のうち、そのエラーが発生した工程から処理を再開することを特徴とする請求項１０〜１７の何れか１項に記載のデータ処理方法。
【請求項１９】
複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行ステップと、
前記実行ステップによってジョブフローが実行されている最中にエラーが発生したことを検出する検出ステップと、
前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、コンピュータプログラムに関し、特に、実行中にエラーが発生したジョブフローのデータを保存するために用いて好適なものである。
【背景技術】
【０００２】
近年、プリンタ、複写機、及びファクシミリ等の画像形成装置の機能が複雑化してきている。更に、プリンタ、複写機、及びファクシミリ等の機能が１つの装置に統合されたマルチファンクション機（ＭＦＰ）が、画像形成装置として実用化されている。また、画像形成装置は、装置内で画像を編集したり、サービス等を提供する外部装置と連携して処理を行ったりする等、より高度な機能を備えるに至っている。更に、オフィスにおけるユーザの業務の簡略化を目的として、複数の処理（工程）を１つのジョブフローとして実行できるＭＦＰも増えてきている。
【０００３】
特許文献１に記載の印刷装置では、受信した印刷データが印刷条件に一致しない場合、印刷データを削除することが記載されている。
また、特許文献２に記載の情報処理装置は、指定されたプリンタがすぐに印刷できる状態でない場合、印刷データをプリンタの記憶エリアであるボックスに一時的に保存する。そして、印刷可能となった場合、プリンタは、ユーザによって指定された印刷データを印刷することが記載されている。
【０００４】
【特許文献１】特開２００４−１８１７３９号公報
【特許文献２】特開２００５−３４６１８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した特許文献１に記載の技術では、処理対象となっていたデータを削除してしまうため、新たに印刷条件に一致するデータを投入しなければならない。そのため、例えば複数の処理工程によって構成されるワークフローを用いてデータを処理する技術に特許文献１に記載の技術を適用すると、処理対象データが工程の処理条件に一致しないというエラーが発生した場合、当該処理データが消去されることになる。そして、エラー復旧後、ワークフローに基づく処理を再開する際、処理対象データが削除されているため、データの入力という工程から始めなければならない。その結果、例えば当該処理条件に一致しないと判定されるまでの工程において行った処理が無駄となってしまう。
【０００６】
また、特許文献２に記載の技術では、印刷装置の記憶エリアに印刷データを一時的に保存することが記載されている。そのため、前述したようにワークフローの技術において、途中の処理工程でエラーが発生した場合、途中の処理工程にて対象としていたデータが印刷装置の記憶エリアであるボックスに一時的に保持されることになる。
【０００７】
特に近年、装置内に大量のデータを保存できる画像形成装置が増えている。ここで、保存したデータに外部装置がアクセス可能である場合、悪意がなくても装置内のデータが変更されてしまうことも考えられる。
その結果、例えば、当該ボックスに印刷データを保存したが、データの変更に気付かずにワークフローを再開させてしまうと、変更されたデータに基づいてワークフローの処理が再開されるため、所望とする出力結果を得ることができなくなるおそれがある。
【０００８】
そこで、エラーが発生したデータを外部装置からアクセスできないエリアに保存する方法が考えられる。しかしながら、このような方法では、例えば、エラーの発生した工程とは異なる工程の作業者が当該データを修正したいと思っても、外部装置からアクセスできない。そのため、所望とする正当な修正が行えなくなってしまう。
【０００９】
本発明は、このような問題点に鑑みてなされたものであり、実行途中でエラーが発生したジョブフローにおいて、実行済みの処理を無駄にせず、かつ、処理対象となっていたデータを保存するに際し、保存するデータの安全性を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のデータ処理装置は、複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行手段と、前記実行手段によってジョブフローが実行されている最中にエラーが発生したことを検出する検出手段と、前記検出手段によってエラーが発生したことが検出されると、そのエラーが発生したジョブに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持手段とを有することを特徴とする。
【００１１】
本発明のデータ処理方法は、複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行ステップと、前記実行ステップによってジョブフローが実行されている最中にエラーが発生したことを検出する検出ステップと、前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持ステップとを有することを特徴とする。
【００１２】
本発明のコンピュータプログラムは、複数の工程を含み、処理対象となるデータを処理するための処理内容が定義されたジョブフローの実行指示に従って、前記データに対して前記処理内容に基づく処理を実行する実行ステップと、前記実行ステップによってジョブフローが実行されている最中にエラーが発生したことを検出する検出ステップと、前記検出ステップによってエラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報をそのデータに対応付けて管理して、記憶媒体に保持する保持ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、実行途中でエラーが発生したジョブフローのデータを保存するに際し、実行済みの処理を無駄にせず、かつ、保存するデータの安全性を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、データ処理装置として画像形成装置を備えたネットワークシステムの構成の一例を示す図である。尚、本実施形態では、画像形成装置が、データ送受信機能を有する複合機である場合を例に挙げて説明する。
【００１５】
図１において、複合機１００１は、複合機１００１と同等の機能を持つ複合機１００２、ファクシミリ装置１００３、データベース／メールサーバ１００４、及びクライアントコンピュータ１００５と共に、ＬＡＮ１００６に接続されている。ＬＡＮ１００６は、例えばイーサネット（登録商標）である。
【００１６】
複合機１００１は、ファクシミリ装置１００７と公衆回線１００８を介して相互に接続されている。複合機１００１は、コピー（文書複写）機能、ファクシミリ機能、スキャナ機能、プリンタ機能、及び文書管理機能を有する。更に複合機１００１は、原稿画像を読み取り、読み取った原稿画像のデータをＬＡＮ１００６に接続された各装置１００２〜１００５に送信するデータ送信機能を有する。
【００１７】
また複合機１００１は、ＰＤＬ（Page Description Language）で作成されたデータを処理する機能を有する。従って複合機１００１は、ＬＡＮ１００６に接続されているコンピュータ（例えばクライアントコンピュータ１００５）から、ＰＤＬで作成された画像データを含む印刷ジョブ受信し、受信した印刷ジョブに含まれる画像データに基づいて画像を紙面に印刷する。
【００１８】
更に複合機１００１は、読み取った画像データや、ＬＡＮ１００６に接続されたコンピュータから送信された画像データであってＰＤＬで作成された画像データ等を、ハードディスク２００４内のユーザによって指定されたボックス領域に保存する。そして複合機１００１は、ボックス領域に保存された画像データを印刷する。なお、ボックス領域とは、ハードディスク内の記憶領域の一部を指し、画像データ等を格納するための記憶領域である。
【００１９】
また複合機１００１は、複合機１００２で読み取られた画像データを、ＬＡＮ１００６を介して受信し、受信した画像データをハードディスク２００４に保存したり、印刷出力したりする。
この他複合機１００１は、クライアントコンピュータ１００５及びＬＡＮ１００６を介して、データベース／メールサーバ１００４に保存されている画像データを受信し、受信した画像データを、ハードディスク２００４に保存したり、印刷出力したりする。
【００２０】
ファクシミリ装置１００３は、複合機１００１で読み取られた画像データを、ＬＡＮ１００６を介して受信し、受信した画像データを外部に送信する。
データベース／メールサーバ１００４は、複合機１００１で読み取られた画像データを、ＬＡＮ１００６を介して受信し、受信した画像データをデータベースとして格納する。更にデータベース／メールサーバ１００４は、受信した画像データを電子メールとして送信する。
【００２１】
前述したようにクライアントコンピュータ１００５は、データベース／メールサーバ１００４とＬＡＮ１００６を介して相互に接続される。従ってクライアントコンピュータ１００５は、データベース／メールサーバ１００４から所望のデータを取得して表示装置に表示する。更にクライアントコンピュータ１００５は、複合機１００１で読み取られた画像データを、ＬＡＮ１００６を介して受信し、受信した画像データを加工したり編集したりする。尚、クライアントコンピュータ１０５０は、例えばパーソナルコンピュータである。
ファクシミリ装置１００７は、複合機１００１で読み取られた画像データを、公衆回線１００８を介して受信し、受信した画像データを印刷出力する。
【００２２】
図２は、図１に示した複合機１００１のハードウェアの構成の一例を示すブロック図である。
図２において、メインユニット２０００は、文書データ（画像データ）、画像情報、及びデバイス情報等の入出力を行う為のコントローラである。メインユニット２０００は、画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０８０と相互に接続される。メインユニット２０００は、スキャナ部２０６０及びプリンタ部２０７０を制御する。これにより、スキャンやプリント等の機能が実現される。
【００２３】
メインユニット２０００は、ＬＡＮ１００６を介して他の複合機１００２やクライアントコンピュータ１００５等の外部機器と相互に接続され、その外部装置との間で行われるデータの送受信を行う。メインユニット２０００は、公衆回線（ＰＳＴＮ）１００８にも接続され、この公衆回線１００８を利用してファクシミリ機能を実現する。
メインユニット２０００は、以上のような機能をユーザに提供するためのインタフェースとして操作部２０５０と相互に接続される。
【００２４】
ＣＰＵ２００１は、メインユニット２０００全体を制御するコントローラである。ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリである。ＲＡＭ２００２は、画像データを一時的に記憶するための画像メモリとしても使用される。ＲＯＭ２００３はブートＲＯＭである。ＲＯＭ２００３には、システムのブートプログラム等が格納されている。
【００２５】
ＨＤＤ（Hard Disk Drive）２００４には、システムソフトウェア、画像データ、その画像データの属性データ、及びその他のユーザデータ等が格納されている。尚、ジョブフローを実行している最中にエラーが発生するとメインユニット２００が行う処理は、ＨＤＤ２００４に格納されているシステムソフトウェアによって実現される。また、この処理において電子署名が付加されたデータはＨＤＤ２００４に格納される。ジョブフローを実行している最中にエラーが発生した際にメインユニット２００が行う処理については後述する。なお、ジョブフローとは、複数の工程を含み、処理対象となるデータを処理するための処理内容が定義された情報である。
【００２６】
操作部Ｉ／Ｆ２００６は、操作部２０５０とのインタフェース部である。操作部Ｉ／Ｆ２００６は、表示される画像データを操作部２０５０に出力する。また、操作部Ｉ／Ｆ２００６は、操作部２０５０を操作してユーザが入力した情報を、ＣＰＵ２００１に伝える。また、図７や図１１に示すような情報通知のための２次元コードは、操作部２０５０の表示部に表示される。尚、操作部２０５０による情報通知の具体的な説明については後述する。
【００２７】
ネットワークＩ／Ｆ２００７は、ＬＡＮ１００６に接続され、ＬＡＮ１００６に接続された他の複合機１００２やクライアントコンピュータ１００５等の外部機器との間で、情報の入出力を行う。本実施形態のメインユニット２０００は、ネットワーク通信プロトコルとしてTCP/IPをサポートするものとし、TCP/IP通信プロトコルに従って外部機器と通信するものとする。
【００２８】
モデム（Modem）２００８は、公衆回線１００８に接続される。モデム２００８は、複合機１００１が有するファクシミリ機能に従って、公衆回線１００８に接続されたファクシミリ装置１００８等の外部機器との間で、画像情報の入出力を行う。
署名作成保存部２００９は、現在の時刻と、ネットワークアドレス等の機器固有情報とを用いて、電子署名に用いる電子証明書と、その電子証明書に対応する秘密鍵を作成して保存する。
以上のデバイスは、システムバス２０１０に接続される。
【００２９】
イメージバス（Image Bus）Ｉ／Ｆ２００５は、システムバス２０１０と、画像データを高速で転送する画像バス２０３０とを相互に接続するためのものである。このイメージバスＩ／Ｆ２００５は、データ構造を変換するバスブリッジである。本実施形態では、画像バス２０３０は、ＰＣＩバス又はIEEE1394を備えて構成される。画像バス２０３０には以下のデバイスが接続される。
【００３０】
ラスターイメージプロセッサ（ＲＩＰ）２０３１は、ＬＡＮ１００６に接続されたクライアントコンピュータ１００５等の外部機器から入力された印刷ジョブに含まれるＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ２０３２は、画像入出力デバイスであるスキャナ部２０６０やプリンタ部２０７０と、メインユニットコントローラ２０００とを相互に接続し、画像データの同期系／非同期系の変換を行う。
【００３１】
スキャナ画像処理部２０３３は、スキャナ部２０６０から入力された画像データに対して、補正、加工、及び編集等の処理を行う。また、スキャナ部２０６０から入力された画像データが、カラー原稿及び白黒原稿の何れであるかを画像の彩度信号に基づいて判断し、判断した結果を保持する。
【００３２】
プリンタ画像処理部２０３４は、プリンタ部２０７０に出力する画像データに対して、補正、加工、及び編集等の処理を行う。
画像回転部２０３５は、スキャナ画像処理部２０３３と連携して、スキャナ部２０６０から入力された画像データに対して画像回転処理を行い、画像回転処理を行った画像データをメモリに格納する。また、画像回転部２０３５は、スキャナ画像処理部２０３３と連携して、メモリに格納されている画像データに対して画像回転処理を行い、画像回転処理を行った画像データをメモリに再度格納する。
この他、画像回転部２０３５は、プリンタ画像処理部２０３４と連携して、メモリに格納されている画像データに対して画像回転処理を行い、画像回転処理を行った画像データを、デバイスＩ／Ｆ２０３２を介してプリンタ部２０７０に出力する。
【００３３】
解像度変換部２０３７は、メモリに格納されている画像データに対して、解像度変換処理を行い、解像度変換処理を行った画像データをメモリに再度格納する。
色空間変換部２０３８は、マトリクス演算等を行うことにより、例えばメモリに格納されているＹＵＶ画像データをＬａｂ画像データに変換してメモリに格納する。
階調変換部２０３９は、メモリに格納されている画像データであって、例えば８ｂｉｔ、２５６階調の画像データを、誤差拡散処理等を用いて、例えば１ｂｉｔ、２階調の画像データに変換してメモリに格納する。
【００３４】
画像圧縮部２０３６は、例えば、多値画像データに対してはＪＰＥＧで圧縮伸張処理を行い、２値画像データに対してはＪＢＩＧ、ＭＭＲ、ＭＲ、又はＭＨで圧縮伸張処理を行う。
画像回転部２０３５、解像度変換部２０３７、色空間変換部２０３８、階調変換部２０３９、及び画像圧縮部２０３６は、それぞれ連結して動作することが可能である。例えば、メモリに格納されている画像データに対して画像回転処理と解像度変換処理とを行う場合、画像回転部２０３５と解像度変換部２０３７は、メモリを介さずにこれらの処理を行うことができる。
【００３５】
図３は、複合機１００１の外観構成の一例を示す図である。前述したように、画像形成装置は、コピー（文書複写）機能、ファクシミリ機能、スキャナ機能、プリンタ機能、及び文書管理機能を備えた複合機１００１としてユーザに提供されている。
【００３６】
画像入力デバイスであるスキャナ部２０６０は、用紙に光を照射し、光を照射した用紙に対してＣＣＤラインセンサを走査することによって、用紙上の画像をラスタイメージデータとして電気信号に変換する。用紙は原稿フィーダ３００２のトレイにセットされる。ユーザが操作部２０５０を操作して読み取り起動指示を行うことにより、ＣＰＵ２００１がスキャナ部２０６０に指示を与える。そうすると、原稿フィーダ３００２は、セットされた用紙を１枚ずつフィードする。そうすると、スキャナ部２０６０は、前述したようにして用紙上の画像の読み取り動作を行う。
【００３７】
画像出力デバイスであるプリンタ部２０７０は、ＣＰＵ２００１からの指示によってプリントを開始する。プリントを開始すると、プリンタ部２０７０は、ラスタイメージデータに基づいて、用紙上に画像を形成する。プリンタ部２０７０が用紙上に画像を形成する方式としては、例えば感光体ドラムや感光体ベルトを用いた電子写真方式や、微小ノズルアレイからインクを吐き出して用紙上に画像を直接印字するインクジェット方式等がある。本実施形態では、どちらの方式を採用してもよいし、その他の方式を採用してもよい。
【００３８】
プリンタ部２０７０には、異なる用紙サイズ又は異なる用紙向きをユーザが選択できるように、複数の給紙段３００４が設けられている。ユーザは、複数の給紙段３００４に用紙カセットをセットしてプリンタ部２０７０を使用する。
排紙トレイ３００５は、印字し終わった用紙を受け取るものである。尚、本実施形態の複合機１００１は、ＣＰＵ２００１からの指示によってソートやステープル等の機能を実行することも可能である。
【００３９】
図４は、画像形成装置として設けられる複合機１００１が有するシステムソフトウェアの構成（機能構成）の一例を示す図である。図４に示す機能を有するシステムソフトウェアは、例えば、図２に示したＨＤＤ２００４に格納されている。
ＵＩ制御マネージャ４００１は、操作部（表示部）２０５０を制御する。ＵＩ制御マネージャ４００１は、ユーザからの指示を下層のモジュールに伝えたり、下層からの情報を操作部（表示部）２０５０に表示したりするための制御を行う。
【００４０】
ネットワーク制御マネージャ４００２は、ネットワーク（ＬＡＮ１００６等）からの指示や情報を受け取ったり、メインユニット２０００からの指示や情報をネットワークに送信したりする制御を行う。
コピーアプリケーション部４００３、ＦＡＸアプリケーション部４００４、及びネットワークアプリケーション部４００５は、ＵＩ制御マネージャ４００１やネットワーク制御マネージャ４００２からの指示を受ける。そして、コピーアプリケーション部４００３、ＦＡＸアプリケーション部４００４、及びネットワークアプリケーション部４００５は、ジョブフローを実行させるためのジョブファイルを作成し、共通Ｉ／Ｆ部４００７を介してジョブマネージャ４００８に送信する。
【００４１】
ジョブアプリケーション部４００６は、ＵＩ制御マネージャ４００１からの指示に基づいて、予め保存されたジョブファイルを実行させるための指令を、共通Ｉ／Ｆ部４００７を介してジョブマネージャ４００８に送信する。
共通Ｉ／Ｆ部４００７は、コピーアプリケーション部４００３、ＦＡＸアプリケーション部４００４、ネットワークアプリケーション部４００５、及びジョブアプリケーション部４００６から受け取った情報をジョブマネージャ４００８に送信する。
【００４２】
ジョブマネージャ４００８は、共通Ｉ／Ｆ部４００７から受け取った情報を整理し、整理した情報に応じて、機器に密着した下層の制御マネージャ４００９〜４０１４を制御する。
ジョブマネージャ４００８は、共通Ｉ／Ｆ部４００７から受け取ったジョブフローに含まれる工程の処理情報が、ローカルコピーの実行を示すものであれば、スキャンマネージャ４０１０及びプリントマネージャ４００９を制御する。具体的にジョブマネージャ４００８は、スキャンマネージャ４０１０及びプリントマネージャ４００９に対して、起動、同期、及び終了等の各処理を実行させる。
【００４３】
また、ジョブマネージャ４００８は、共通Ｉ／Ｆ部４００７から受け取ったジョブフローに含まれる工程の処理情報が、ＦＡＸ送信の実行を示すとする。この場合、ジョブマネージャ４００８は、スキャンマネージャ４０１０、ファイルマネージャ４０１４、及びＦＡＸマネージャ４０１１を制御する。具体的にジョブマネージャ４００８は、スキャンマネージャ４０１０、ファイルマネージャ４０１４、及びＦＡＸマネージャ４０１１に対して起動、同期、及び終了等の各処理を実行させる。
【００４４】
更に、ジョブマネージャ４００８は、共通Ｉ／Ｆ部４００７から受け取ったジョブフローに含まれる工程の処理情報が、ＰＤＬで作成された画像データのプリントを示すとする。この場合、ジョブマネージャ４００８は、ＰＤＬマネージャ４０１２、ファイルマネージャ４０１４、及びプリントマネージャ４００９を制御する。具体的にジョブマネージャ４００８は、ＰＤＬマネージャ４０１２、ファイルマネージャ４０１４、及びプリントマネージャ４００９に対して起動、同期、及び終了等の各処理を実行させる。尚、ＰＤＬの具体例としては、ＬＩＰＳやPostscript等が挙げられる。
【００４５】
また、ジョブアプリケーション４００６から、複数の処理（工程）が組み合わせられたジョブフローの情報を、共通Ｉ／Ｆ部４００７を介して受け取ると、ジョブマネージャ４００８は、そのジョブフローに含まれる複数の処理工程を実行する。つまり、ジョブマネージャ４００８は、ジョブフローの実行指示に従って、処理対象データに対して処理内容に基づく処理を実行する。更に、ジョブを実行している最中にエラーが発生したときの処理の制御もジョブマネージャ４００８によって行われる。
ジョブマネージャ４００８は、ジョブを実行している最中にエラーが発生した場合、ジョブフローに含まれる複数の工程のうち、いずれの工程まで処理が完了していて、いずれの工程から処理を再開すべきかを管理している。なお、この情報は、後述する図６のジョブ６００１のステータスおよび終了ステップに書き込まれる。
【００４６】
署名マネージャ４０１３は、電子証明書の作成、電子署名の付加、電子署名の検証といった処理を実行する。
ファイルマネージャ４０１４は、ジョブフローに使用される画像データやジョブファイルをＨＤＤ２００４に保存したり、取り出したりする。また、ＨＤＤ２００４に保存されたデータのネットワーク（ＬＡＮ１００６等）への公開等もファイルマネージャ４０１４によって制御される。また、ファイルマネージャ４０１４は、画像データを編集することも可能である。編集の一例としては、複数の画像データの結合、ページの削除等が挙げられる。
【００４７】
図５は、操作部２０５０の外観構成の一例を示す図である。
図５において、ＬＣＤ表示部５００２に設けられたＬＣＤ（Liquid Crystal Display）上には、タッチパネルシート５００３が貼られている。ＬＣＤ表示部５００２は、システムの操作画面及びソフトキーを表示すると共に、表示してあるソフトキーが押されると、その位置情報をＣＰＵ２００１に伝える。
【００４８】
スタートキー５００４は、例えば、用紙上の画像の読み取り動作を開始するときにユーザによって操作される。スタートキー５００４の中央部には、緑と赤との２色ＬＥＤ５００５が設けられている。この２色ＬＥＤ５００５の色によってスタートキー５００４が使える状態にあるかどうかが示される。ストップキー５００６は、稼働中の動作を止めるときにユーザによって操作される。リセットキー５００７は、操作部２００５からの設定を初期化するときにユーザによって操作される。テンキー５００８は、ＦＡＸ番号やコピー枚数等を入力するときにユーザによって操作される。
【００４９】
図６は、ＨＤＤ２００４に保存されるジョブフローのオブジェクト構成の一例を概念的に示した図である。
本実施形態の複合機１００１は、図６に示すオブジェクトの構造のジョブファイルであって、ＸＭＬ（Extensible Markup Language）形式で保存されたジョブファイルに応じた処理を実行する。尚、ジョブファイルは、ジョブフローの実行時にＨＤＤ２００４に複製される。また、ジョブフローの各ステータスがフォーマット中に保存されることによって、ジョブフローが管理される。
図６に示すオブジェクトの内容は、例えば、クライアントコンピュータ１００５で設定される。ただし、図６に示すオブジェクトの内容を、その他の装置（例えば複合機１００１）で設定するようにしてもよい。
【００５０】
図６において、ジョブオブジェクト６００１は、識別情報であるＩＤと、ジョブフローの名前と、ジョブフローの有効期限と、ジョブフローの実行状態を管理するステータスと、終了したステップを記憶するための終了ステップ等を、パラメータとして備える。
アクセス権オブジェクト６００２は、ジョブフローへのアクセス権を管理する。アクセス権オブジェクト６００２は、パラメータとして権限種別を備える。具体的にアクセス権オブジェクト６００２は、「実行権」及び「編集権」の種別を権限種別として記憶する。このアクセス権オブジェクト６００２で設定された権限を持つユーザやグループを、ユーザオブジェクト６００３、６００５や、グループオブジェクト６００４に与えることになる。
【００５１】
処理オブジェクト６００６は、実際に行う処理を管理するオブジェクトである。処理オブジェクト６００６は、工程の順番を示したステップ番号と、処理の内容種別を示す処理内容とをパラメータとして備える。詳細なパラメータを管理するオブジェクト６００７〜６０１１の何れかが、処理内容に応じて処理オブジェクト６００６にリンクされる。
例えばジョブフロー６００１の処理内容が、「保存→編集→印刷」であれば、処理６００６は、ファイル処理６００８、編集処理６００９、印刷処理６０１０とリンク付けられる。そして、処理６００６の処理内容に、処理内容と処理順序が格納される。このように、ジョブフローには、複数の処理工程に対応する各オブジェクトが設定されている。
【００５２】
スキャン処理オブジェクト６００７は、スキャン処理の詳細な設定をパラメータとして備える。また、用紙上の画像のスキャンが行われると、スキャンされた画像のデータを管理するためのデータオブジェクト６０１２が、スキャン処理オブジェクト６００７にリンクされる。
ファイル処理オブジェクト６００８は、ＨＤＤ２００４に保存されたファイルをデータとして使用する場合に、処理オブジェクト６００６にリンクされる。このファイル処理オブジェクト６００８は、データオブジェクト６０１３とリンクされる。
【００５３】
編集処理オブジェクト６００９は、スキャン処理やファイル処理で得られたファイルに対して編集処理を行うための管理オブジェクトである。編集処理の中には、例えば、マージ処理及びページ削除処理等の処理が含まれる。
印刷処理オブジェクト６０１０は、２ｉｎ１や両面等、印刷における詳細なパラメータを管理する。送信処理オブジェクト６０１１は、ＦＡＸ送信処理、ＳＭＴＰ送信処理、ＳＭＢ送信処理、及びＦＴＰ送信処理等、送信に関する詳細なパラメータを管理する。また送信処理における宛先情報は、宛先情報オブジェクト６０１４として管理される。
【００５４】
図７は、ジョブフローの一覧を表示する表示画面の構成の一例を示す図である。この表示画面７０００は、操作部２０５０のＬＣＤ表示部５００２に表示される。
図７に示すように、ジョブフローの一覧の表示領域７００４には、ジョブフローの一覧がソフトボタンとして表示される。各ソフトボタン上にはジョブフローの名前が表示される。ユーザは、所望のジョブフローの名前が表示されたボタンを押すことによって、ジョブフローを実行することができる。なお、各ジョブフローには、各ジョブフローにおいて処理すべき処理工程が登録されている。
【００５５】
ログインしたユーザがマイボタン７００１を押すと、ログインしたユーザにしかアクセス権がないジョブフローの一覧が表示領域７００４にソフトボタンの形式で表示される。また、ログインしたユーザが共有ボタン７００２を押すと、ログインしたユーザ以外の他のユーザにもアクセス権があるジョブフローの一覧が表示領域７００４にソフトボタンの形式で表示される。また、ユーザがエラーボタン７００３を押すと、エラーとなったジョブフローの一覧が表示領域７００４にソフトボタンの形式で表示され、表示されたソフトボタンをユーザが押すことによって、エラーとなったジョブフローの実行が再開される。
【００５６】
スクロールボタン７００５は、表示領域７００４に表示しきれていないジョブフローを表示領域７００４に表示させる場合にユーザによって操作される。登録／編集ボタン７００６は、新規にジョブフローを登録する場合や、既にあるジョブフローを編集する場合にユーザによって操作される。
【００５７】
次に、図８のフローチャートを参照しながら、ジョブフローを実行する際の複合機１００１における処理手順の一例を説明する。図８に示す処理は、図７に示した表示画面７０００の表示領域７００４に表示されたソフトボタンの中から、ユーザが所望するソフトボタンが押されると、ジョブマネージャ４００８が実行を開始するものである。また、図８に示す処理は、図６に示した構造を持つジョブファイルを元に実行される。なお、本願のフローチャートにおける各ステップは図２に示したＣＰＵ２００１によって実行される。
【００５８】
まず、ステップＳ８００１において、ジョブマネージャ４００８は、内部カウンタの値Ｎを０に設定する。内部カウンタは、ジョブフローの処理がどの工程まで進んでいるかをカウントするために用いられるものであり、例えばＲＡＭ２００２に保持される。
次に、ステップＳ８００２において、ジョブマネージャ４００８は、ジョブファイルに基づいて、第（Ｎ＋１）工程のジョブフローの実行を依頼する。具体的にジョブマネージャ４００８は、実行するジョブフローの工程の内容に応じて、図４にて上述した何れかの処理マネージャに、ジョブフローの処理対象となっている工程の実行を依頼する。
【００５９】
次に、ステップＳ８００３において、ジョブマネージャ４００８は、ステップＳ８００２で実行を依頼したジョブフローの工程の実行中に、エラーが発生したか否かを判断する。具体的には、依頼先の処理マネージャは、処理実行部の処理状況情報をジョブマネージャ４００８に伝える。ジョブフローの工程の実行中にエラーが発生した場合には、依頼先の処理マネージャ４００９〜４０１２からジョブマネージャ４００８にエラー情報を含んだ処理状況情報が返される。ジョブマネージャ４００８は、その処理状況情報に基づいて、エラーが発生したか否かを判断する。
【００６０】
ここで、具体例を挙げて説明する。例えば、ジョブフローの処理内容が、「スキャン工程→保存工程→編集工程→印刷工程」とする。スキャン工程は、スキャン走査された原稿に基づく画像データを生成する。保存工程は、予め指示された記憶エリア１にスキャンにより生成された画像データを保存する工程と仮定する。編集工程は、既に記憶エリア２に保存されている画像データと、記憶エリア１に保存されたスキャン画像データとを結合する工程とする。ここで、結合対象となった記憶エリア１に保存されたスキャン処理画像データの解像度と、記憶エリア２に保持されていた画像データの解像度とが異なる等、正常に結合できない場合、ファイルマネージャ４０１４は、結合処理を実行することができずエラーとなる。この場合、結合対象となった２つの画像データは、そのまま記憶エリアに残ることになる。ここで、記憶エリア１および記憶エリア２が、いずれのユーザからもアクセス可能である場合、ジョブフロー処理を指示したユーザとは異なるユーザによって、勝手に画像データの内容を変更されてしまうおそれがある。その場合、本願が想定する課題が発生してしまう。
【００６１】
また、結合対象となった２つの画像データを削除すると、前述した「スキャン工程→保存工程→編集工程→印刷工程」を完遂させるためには、既に実行されたスキャン工程、保存工程を再度実行しなければならない。その結果、エラーが発生するまでに実行したスキャン工程と保存工程が無駄となるおそれがある。
【００６２】
ステップＳ８００３の判断の結果、ジョブマネージャ４００８が、ジョブフローの工程の実行中にエラーが発生していないと判断した場合には、ステップＳ８００４に進む。そして、ジョブマネージャ４００８は、内部カウンタの値Ｎに１を加算する。
次に、ステップＳ８００５において、ジョブマネージャ４００８は、ジョブフローの全ての工程を実行したか否かを判断する。この判断の結果、ジョブフローの全ての工程が終了していれば、処理を終了する。一方、ジョブフローの全ての工程が終了していなければ、ステップＳ８００２に戻り、次の工程の処理を実行する。
【００６３】
ステップＳ８００３において、ジョブフローの工程の実行中にエラーが発生したと判断された場合には、ステップＳ８００６に進む。そして、ジョブマネージャ４００８は、内部カウンタの値Ｎが０（ゼロ）より大きいか否かを判断する。このステップＳ８００６の判断は、正当性保証情報として電子署名を付加する画像データ（文書データ）があるかどうかを判断するためのものである。即ちステップＳ８００６では、少なくとも最初の工程（第１工程）が正常に終了しているかどうかを判断している。ステップＳ８００６の判断の結果、内部カウンタの値Ｎが０より大きくなければ（１番目の工程でなければ）、ジョブマネージャ４００８は、電子署名を付加する文書データがないと判断し、署名処理を行わずに処理を終了する。
【００６４】
一方、内部カウンタの値Ｎが０より大きければ、ステップＳ８００７に進む。そして、ジョブマネージャ４００８は、電子署名作成処理を署名マネージャ４０１３に依頼する。これにより電子署名作成処理が実行される。この電子署名作成処理は、ジョブオブジェクト６００１に示されているジョブフローの有効期限と等しい有効期限をもった電子証明書を作成する処理である。また、ステップＳ８００７の詳細な説明は図１４にて後述する。この電子署名作成処理では、電子証明書に対応する秘密鍵も作成される。作成された電子証明書と秘密鍵は、どちらも署名作成保存部２００９に保存される。
【００６５】
次に、ステップＳ８００８において、ジョブマネージャ４００８は、電子署名付加処理を署名マネージャ４０１３に依頼する。これにより電子署名付加処理が実行される。この電子署名付加処理で使用される秘密鍵は、ステップＳ８００７で作成されたものである。尚、電子署名付加処理の詳細については図９で詳しく述べる。
【００６６】
最後に、ステップＳ８００９において、ジョブマネージャ４００８は、電子署名が付加された画像データをＨＤＤ２００４のボックス領域に保存して処理を終了する。このとき、ジョブファイルのステータスが更新され、更新前のジョブファイルが更新後のジョブファイルに書き換えられる。つまり、ジョブマネージャ４００８は、エラーが発生したことが検出されると、そのエラーが発生したジョブフローに含まれる複数の工程のうち、既に実行された工程で処理されたデータに、データの正当性を保証する正当性保証情報を対応付けて管理する。
【００６７】
その後、図７に示した表示画面に表示されたエラーボタン７００３がユーザによって押されると、ステータスが更新されたジョブファイルに関するソフトボタンが表示領域７００４に表示される。尚、画像データが保存されるボックス領域は、外部装置からアクセス可能な領域である。即ち、ボックス領域に保存された画像データは、ＬＡＮ１００６に接続された外部機器に公開される。
【００６８】
次に図１４のフローチャートを参照しながら、ステップＳ８００７の電子署名作成処理の一例について説明する。図１４に示す処理は、ジョブマネージャ４００８からの依頼によって署名マネージャ４０１３が実行する。
ステップＳ１４０１において、署名マネージャ４０１３は、現在エラーが発生したジョブフローが個人専用のジョブフローであるか否かを判定する。この判定は、図７に示したマイボタンの指示によって表示されたボタンが指示されたか否かを判定することにより実現される。
【００６９】
ステップＳ１４０１において、個人専用のジョブフローであると判定された場合、署名マネージャ４０１３は、エラーが発生するまでの工程において処理されたデータが、アクセス可能な記憶エリアに保存されたか否かを判定する（ステップＳ１４０２）。
ステップＳ１４０２においてアクセス可能な記憶エリアに処理対象データが保存されたと判定された場合、署名マネージャ４０１３は、エラーにより保存されたデータの正当性を保証するための電子署名を作成する（ステップＳ１４０３）。なお、ステップＳ１４０３の詳細な処理は、後述する図９のステップＳ８１０１からステップＳ８１０３によって説明する。
【００７０】
ここで、正当性保証情報とは、署名マネージャ４０１３によって、図１４および図９のステップＳ８１０１〜Ｓ８１０３の処理に基づき生成された電子署名を指す。
つまり、署名マネージャ４０１３は、第１ユーザが実行可能なジョブフローの実行中にエラーが発生した場合、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理する。一方、署名マネージャ４０１３は、第２ユーザが実行可能なジョブフローにエラーが発生した場合、既に実行された工程で処理されたデータに対して、そのデータの正当性を保証するための正当性保証情報を対応付けて管理しない。このように、署名マネージャ４０１３は、ジョブフローの属性に基づいて、電子署名の作成処理の有無を切り替えることができる。
【００７１】
なお、図１４では、個人専用ジョブフローが実行されている場合に、処理対象データを保護することについて説明したが、その逆であっても構わない。つまり、共有ジョブフローの方が、個人専用ジョブフローよりも共有で使用される分与える影響が大きくなることも考えられる。その場合は、共有ジョブフローによる処理対象データを保護しても構わない。
【００７２】
次に、図９のフローチャートを参照しながら、ステップＳ８００８の署名付与処理の一例を詳細に説明する。図９に示す処理は、ジョブマネージャ４００８からの依頼によって署名マネージャ４０１３が実行する。
まず、ステップＳ８１０１において、署名マネージャ４０１３は、電子署名を付加する対象の画像データのハッシュ値を計算する。尚、ハッシュ値を計算する際に使用するハッシュ関数は、例えばＭＤ５やＳＨＡ−１等を用いることができる。また、ハッシュ値の計算は、公知の技術を用いることにより実現できる。
【００７３】
次に、ステップＳ８１０２において、署名マネージャ４０１３は、ステップＳ８００７で作成された電子証明書に対応する秘密鍵を用いて、ステップＳ８１０１で計算したハッシュ値を暗号化する。
次に、ステップＳ８１０３において、署名マネージャ４０１３は、暗号化後のハッシュ値と、処理対象の画像データに対して作成された電子証明書とを含む電子署名を生成する。尚、電子署名の形式としては、例えばＰＫＣＳ＃７やアドビシステムズ社のＰＤＦ署名等がある。
【００７４】
次に、ステップＳ８１０４において、署名マネージャ４０１３は、ステップＳ８１０３で生成された電子署名と、画像データとを関連付けるための処理を行う。関連付けを行うために、例えば画像データと電子署名とを１つのファイルとして結合してもよいし、直接的な結合を行わずに電子署名を画像データの属性の１つとする設定を行った後に、画像データと電子署名をＨＤＤ２００４に保存してもよい。つまり、電子署名と画像データを対応付けて保存してもよい。
【００７５】
次に、図１０のフローチャートを参照しながら、エラー終了したジョブフローの実行を再開する際の複合機１００１における処理手順の一例を説明する。図１０に示す処理は、表示画面７０００に表示されたエラーボタン７００１が押された後に表示領域７００４に表示されたソフトボタンの中から、所望するソフトボタンをユーザが押すと、ジョブマネージャ４００８が実行を開始するものである。また、図１０に示す処理は、図６に示した構造を持つジョブファイルを元に実行される。
【００７６】
まず、ステップＳ９００１において、ジョブマネージャ４００８は、画像データに付加された電子署名の検証を署名マネージャ４０１８に依頼する。これにより、電子署名の検証が実行される。尚、このステップＳ９００１の処理については、図１２で詳細に説明する。
次に、ステップＳ９００２において、ジョブマネージャ４００８は、ステップＳ９００１で署名マネージャ４０１８に依頼した電子署名の検証結果を判定する。つまり、ジョブマネージャ４００８は、エラーが検出されたジョブフローを再開する場合、ジョブフローにおいて処理対象となっていたデータに対応付けられた正当性保証情報を検証する。この判定の結果、電子署名が有効である場合は、ステップＳ９００５に進む。そして、ジョブマネージャ４００８は、ジョブフローの残りの工程の実行を、その工程の内容を実行することが可能な処理マネージャ４００９〜４０１２に依頼する。これにより、エラーが発生した工程から処理を再開するため、ジョブフローの残りの工程が実行される。ジョブフローの残りの工程が実行されると処理を終了する。
【００７７】
一方、電子署名が有効でない場合は、ステップＳ９００３に進む。そして、ジョブマネージャ４００８は、電子署名が有効でないことをユーザに通知する。この通知は、確認メッセージを操作部２０５０のＬＣＤ５００２に表示することによって行われる。図１１は、エラーボタンが指示された場合に表示画面７０００に表示された確認メッセージのダイアログボックス１１００の一例を示す図である。このダイアログボックス１１００では、処理中にエラーとなったジョブフローを実行するためのボタンが表示されている。図１１の例では、３つのジョブフローがエラーになって処理途中であることが示されている。そして、エラーとなったジョブフローを再開すべくジョブフローの実行を指示したところ、ジョブフロー中の画像データが変更されていること、及びジョブフローの有効期限が切れていることの少なくとも何れか一方の状態であることをユーザに通知している。つまり、電子署名（正当性保証情報）は、ジョブフローの有効期間を示す情報と、既に処理されたデータの変更の有無を確認可能にするための情報とを含む。
【００７８】
次に、ステップＳ９００４において、ジョブマネージャ４００８は、ステップＳ９００３で表示したダイアログボックス１１００に対するユーザの指示に基づいて、ジョブフローの残りの工程の処理を続けるか否かを判断する。この判断の結果、ジョブフローの残りの工程の処理を続ける場合には、ステップＳ９００５に進み、前述したようにジョブフローの残りの工程を実行して処理を終了する。一方、ジョブフローの残りの工程の処理を続けない場合には、そのまま処理を終了する。
【００７９】
次に、図１２のフローチャートを参照しながら、ステップＳ９００１の電子署名検証処理の一例を詳細に説明する。図１２に示す処理は、ジョブマネージャ４００８からの依頼によって署名マネージャ４０１８が実行する。
まず、ステップＳ９１０１において、改竄・編集検知処理が行われる。このステップＳ９１０１における具体的な処理内容は以下のようになっている。まず、署名マネージャ４０１８は、電子署名に含まれている電子証明書内の公開鍵を用いて、電子署名に含まれているハッシュ値を復号化する。更に、署名マネージャ４０１８は、署名対象（ジョブフロー再開時の処理対象）の画像データからハッシュ値を計算する。そして、署名マネージャ４０１８は、電子証明書内の公開鍵を用いて復号化したハッシュ値と、署名対象（ジョブフロー再開時の処理対象）の画像データから計算したハッシュ値とを比較する。この比較の結果、２つのハッシュ値が異なる値である場合、署名マネージャ４０１８は、画像データが変更されたと判断し、電子署名が無効であると判断する。一方、２つのハッシュ値が等しい値である場合、署名マネージャ４０１８は、画像データが変更されていないと判断し、電子署名が有効であると判断する。
【００８０】
次に、ステップＳ９１０２において、電子署名に使用された電子証明書の確認処理が行われる。本実施形態における電子証明書の確認は、有効期間の確認とする。つまり、署名マネージャ４０１８は、電子署名に含まれている電子証明書に記載されている有効期間が切れているか否かを判断する。この判断の結果、電子証明書に記載されている有効期間が切れている場合、署名マネージャ４０１８は、ジョブフローの有効期限が切れていないと判断し、電子署名が無効であると判断する。一方、電子証明書に記載されている有効期間が切れていない場合、署名マネージャ４０１８は、ジョブフローの有効期限が切れていないと判断し、電子署名が有効であると判断する。
【００８１】
また、電子署名が有効であるか否かの確認をより厳密に行うために、失効した電子証明書の一覧であるＣＲＬ（Certificate Revocation List）を、確認対象となっている電子証明書の発行元に確認するようにしてもよい。
以上、図８、９、１０、１２に記載した処理の一例を図１５の概念図を用いて説明する。図１５では、「スキャン→編集→印刷→ＦＡＸ」の工程からなるジョブフロー１５００の印刷工程においてエラーが発生した場面を想定している。
【００８２】
ジョブフロー１５００では、スキャンした画像データに編集処理が施され、編集結果であるデータの印刷中にエラーが発生した。ここで、画像データのセキュリティを保つために削除すると、既に実行したスキャン工程と編集工程の処理が無駄となる。一方、編集結果のデータを外部装置がアクセス可能な記憶領域に保存すると第三者等によって変更され、フロー再開後に所望としない出力結果となるおそれがある。
そこで、本願では、図８にて上述したようにエラーの発生した工程までに行われた処理済みデータ１５０１をメモリ１５０３に保存する際、当該データの正当性を保証するための電子署名１５０２を対応付けて管理する。その結果、データ１５０１が変更されても、ジョブフローの再開時に、電子署名１５０２と再開時の処理対象データが比較され変更等が認められた場合、警告画面が表示される。そのため、ワークフローの再開を指示したユーザがデータの変更に気づくことが可能となる。
【００８３】
以上のように本実施形態では、複数の工程を含むジョブフローを実行している最中にエラーが発生すると、ジョブマネージャ４００８は、実行済みの工程で正常に処理された画像データに電子署名を対応付けてボックス領域に保存する。このとき、ジョブマネージャ４００８は、ジョブフローの有効期限と等しい有効期限の電子証明書を作成し、作成した電子証明書を電子署名に含ませる。その後、エラーが発生したジョブフローの実行を再開させる前に、ジョブマネージャ４００８は、画像データに付加されている電子署名を検証する。その結果、画像データが変更されたり、ジョブフローの有効期限が切れていたりした場合には、その旨をユーザに通知する。この通知に対するユーザの操作に応じて、エラーが発生したジョブフローの実行を再開させるか否かを判断する。
【００８４】
このように、実行済みの工程で処理された画像データに電子署名を付加することによって、残りの工程を再開させる際に、実行済みの工程で処理された画像データが有効（正当）なものであるかを判断することができる。そして、実行済みの工程で処理された画像データが有効（正当）なものでない場合にはユーザに警告する。従って、実行済みの工程で処理された画像データが有効（正当）なものでないことにユーザが気付かないまま、ジョブフローの残りの工程が実行されてしまうことを防止できる。従って、従来よりもジョブフローを安全に実行することが可能になる。更に、エラーが発生したジョブフローの画像データの編集（変更）を禁止しないので、ユーザの使い勝手が低減してしまうことを防止できる。
また、エラーが発生した時点で、いずれのユーザもアクセスすることのできない記憶エリアに画像データを退避させることで本願の課題を解決することも考えられる。しかし、エラー発生時に処理対象であった画像データをいずれのユーザもアクセスできない記憶エリアに格納してしまうと、正当に画像データの内容を変更したいユーザが変更することができなくなってしまう。その結果、ユーザにとって所望としない画像データが出力されてしまう。
よって、エラーが発生した場合、アクセス可能な記憶エリアに画像データを退避させることで正当な変更を許可しつつ、図８、９、１０、１２に記載した処理を行うことで、保存したデータの安全性を確保することができる。
【００８５】
また、外部装置でも前述した検証を行うことができる。従って、複合機１００１が、エラーが発生したジョブフローの画像データを外部装置（例えば複合機１００２）に出力した場合、その外部装置でも、複合機１０１と同様に、ジョブフローを安全に実行することが可能になる。更に、ジョブフローが変更されているか否かを確認するための特別の装置を設けなくても、電子署名の付与と検証を行うことができる。
【００８６】
また、ジョブフローの有効期限が切れた場合にもユーザに警告するようにしたので、有効期限が切れたジョブフローを実行するか否かの判断をユーザが行うことができる。従って、ユーザの利便性をより向上させることができる。
【００８７】
尚、本実施形態では、ステップＳ８００６において、少なくとも最初の工程（第１工程）が終了したことのみを確認しているが、処理対象のジョブフローの種類を判断基準として加えて、電子署名を付加するデータがあるかどうかを判断しても良い。
【００８８】
例えば、マイボタン７００１が押された後に表示されたソフトボタンに対応するジョブフローか否かを判断したり、共有ボタン７００２が押された後に表示されたソフトボタンに対応するジョブフローか否かを判断したりする。そして、ジョブマネージャは、処理対象のジョブフローの種類を判断することができる。即ち、ログインしたユーザにしかアクセス権がないジョブフローなのか否かを判断したり、ログインしたユーザ以外の他のユーザにもアクセス権があるジョブフローなのか否かを判断したりすることによって、処理対象のジョブフローの種類を判断することができる。
【００８９】
この場合、例えば、エラーが発生したジョブフローが、ログインしたユーザにしかアクセス権がないジョブフローである場合に電子署名を作成する。または、ログインしたユーザ以外の他のユーザにもアクセス権があるジョブフローである場合に電子署名を作成することができる。ただし、ログインしたユーザにしかアクセス権がないジョブフローは、そのジョブフローが第三者によって変更される可能性が低い。従って、エラーが発生したジョブフローがログインしたユーザにしかアクセス権がないジョブフローである場合には、電子署名を作成しないようにしてもよい。
【００９０】
更に、エラーの発生したジョブフローが、どのエリアに格納されているのかを判断基準として加えて、電子署名を付加するデータがあるかどうかを判断しても良い。例えば、エラーの発生したジョブフローが、アクセス権の設定されていないエリアに格納されている場合には、電子署名を作成し、アクセス権の設定されているエリアに格納されている場合には、電子署名を作成しないようにしてもよい。ここで、アクセス権の設定されていないエリアとは、例えば共有ボックス（複数の端末が共有して使える記憶領域）であり、アクセス権の設定されているエリアとは、例えばパーソナルボックス（特定の端末だけが使える記憶領域）である。この他、エラーの発生したジョブフローが、外部装置からアクセスできないエリア（例えば、プリンタの画像メモリ）に格納されている場合には電子署名を作成せず、そうでない場合には電子署名を作成することも可能である。
【００９１】
また、エラーの発生したジョブフローに、特定の処理（例えば承認処理）が含まれているか否かを判断基準として加えて、電子署名を付加するデータがあるかどうかを判断しても良い。この場合、エラーの発生したジョブフローに、特定の処理（例えば承認処理）が含まれていれば、電子署名を作成し、そうでなければ電子署名を作成しないようにすることができる。
尚、以上のようなステップＳ８００６に加える判断基準の全てを組み合わせて電子署名を作成するか否かを判断するようにしてもよいし、一部（例えば１つ）を判断基準として加えて電子署名を作成するか否かを判断するようにしてもよい。
【００９２】
また、本実施形態では、ジョブフローの有効期限が切れている場合にも確認メッセージのダイアログボックス１１００を表示して、ユーザに通知するようにしたが、必ずしもこのようにする必要はない。例えば、ジョブフローの有効期限を判断せずに、ジョブフロー中の画像データが変更されているか否かを判断し、その判断した結果に応じて確認メッセージのダイアログボックスを表示してもよい。また、ジョブフローの有効期限が切れている場合には、ユーザの意思に関わらずジョブフローを再開させないようにしてもよい。
【００９３】
更に、本実施形態では、図１０のステップＳ９００４において、ジョブフローの残りの工程の処理を続けるか否かを判断し、ジョブフローの残りの工程の処理を続ける場合には、ステップＳ９００５において、ジョブフローの残りの工程を実行するようにした。しかしながら、必ずしもこのようにしなくてもよい。例えば、ステップＳ９００４において、ジョブフローを所定の工程（例えば最初の工程）から実行するか否かを判断し、ジョブフローを所定の工程から実行する場合には、ステップＳ９００５において、ジョブフローを所定の工程から実行してもよい。
【００９４】
尚、データベース／メールサーバ１００４、及びクライアントコンピュータ１００５は、例えば、図１３に示すようにして構成される。図１３は、データベース／メールサーバ１００４、及びクライアントコンピュータ１００５の構成の一例を示すブロック図である。
図１３において、ＣＰＵ１０１０と、ＲＯＭ１０２０と、ＲＡＭ１０３０と、キーボード（ＫＢ）１０４０のキーボードコントローラ（ＫＢＣ）１０５０とが、システムバス１１３０に接続されている。また、表示部としてのＣＲＴディスプレイ（ＣＲＴ）１０６０のＣＲＴコントローラ（ＣＲＴＣ）１０７０が、システムバス１１３０に接続されている。そして、ハードディスク（ＨＤ）１０８０及びフレキシブルディスク（ＦＤ）１０９０のディスクコントローラ（ＤＫＣ）１１００も、システムバス１１３０に接続されている。さらに、ＬＡＮ１００６との接続のためのネットワークインターフェースコントローラ（ＮＩＣ）１１２０も、システムバス１１３０に接続されている。
【００９５】
ＣＰＵ１０１０は、ＲＯＭ１０２０或いはＨＤ１０８０に記憶されたソフトウェア、或いはＦＤ１０９０より供給されるソフトウェアを実行することで、システムバス１１３０に接続された各構成部を総括的に制御する。
すなわち、ＣＰＵ１０１０は、所定の処理シーケンスに従った処理プログラムを、ＲＯＭ１０２０、或いはＨＤ１０８０、或いはＦＤ１０９０から読み出して実行することで、後述する動作を実現するための制御を行う。
【００９６】
ＲＡＭ１０３０は、ＣＰＵ１０１０の主メモリ或いはワークエリア等として機能する。
ＫＢＣ１０５０は、ＫＢ１０４０や図示していないポインティングデバイス等からの指示入力を制御する。
【００９７】
ＣＲＴＣ１０７０は、ＣＲＴ１０６０の表示を制御する。
ＤＫＣ１１００は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び本実施形態における所定の処理プログラム等を記憶するＨＤ１０８０及びＦＤ１０９０とのアクセスを制御する。
ＮＩＣ１１２０は、ＬＡＮ１００６１１１０上の装置或いはシステムと双方向にデータをやりとりする。
【００９８】
ここまでは、図７のボタンを指示することによってジョブが実行される場合について説明した。
ここからは、ホットフォルダのように処理すべき内容が予め設定された記憶エリアに対して処理対象データを入稿する場面について想定する場合を例に挙げて説明する。このような記憶エリアを用いてジョブフローを実行する場合、当該記憶エリアに入稿された処理対象データは、記憶エリアに入力されると当該記憶エリアに設定されているジョブフローに従って処理される。また、この記憶エリアは、処理中のエラーに備えて処理が完了するまで処理対象データを記憶し、いずれのユーザもアクセス可能とする。
【００９９】
例えば、記憶エリア１には、「編集工程→印刷工程→ＦＡＸ工程」というジョブフローが登録されているとする。ジョブマネージャ４００８は、この記憶エリア１に対してデータの入力が実行されたかを監視しておき、処理対象となるデータが入力されると当該記憶エリアに設定されているジョブフローを実行する。なお、各工程の処理内容についても予め設定されている。
【０１００】
このように処理対象データが記憶エリアに入力されることに従って、ジョブマネージャ４００８がジョブフローを実行する場合、ジョブフローの実行中においてエラーが発生すると当該記憶エリアに入力されたデータは、当該記憶エリアに残ってしまう。
この場合、ジョブフロー処理を指示したユーザとは異なるユーザも当該記憶エリアにアクセス可能であり、データの内容を変更されてしまうおそれがある。
このような場合であっても、図８、９、１０、１２の処理を用いることによって対応することが可能となる。
【０１０１】
例えば、上記記憶エリア１に設定されているワークフローとして記載した「編集工程→印刷工程→ＦＡＸ工程」において、編集工程で複数のデータを結合して、結合されたデータを印刷およびＦＡＸする。もし、印刷工程でエラーが発生した場合、ジョブマネージャは、結合されたデータのハッシュ値を用いて電子署名を生成し、図８、９、１０、１２を用いた処理を行う。
以上より、ホットフォルダのような機能を備える記憶エリアに対するデータの入力に従って、ジョブフローを実行してデータを処理するような環境において、ジョブフローの処理中にエラーが発生すると、記憶エリアに処理対象データが残ってしまう。その結果、本願が想定する課題が発生しやすくなる。
しかしながら、図８から１０、図１２の処理を用いることで、たとえ記憶エリアに残った処理対象データに意図しない変更処理が施されても、ジョブフロー処理を指示したユーザは、意図しない変更に気付くことが可能となる。
【０１０２】
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【０１０３】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１０４】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【０１０５】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるＣＰＵが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【０１０６】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態を示し、ネットワークシステムの構成の一例を示す図である。
【図２】本発明の実施形態を示し、複合機のハードウェアの構成の一例を示すブロック図である。
【図３】本発明の実施形態を示し、複合機の外観構成の一例を示す図である。
【図４】本発明の実施形態を示し、複合機が有するシステムソフトウェアの構成（機能構成）の一例を示す図である。
【図５】本発明の実施形態を示し、操作部の外観構成の一例を示す図である。
【図６】本発明の実施形態を示し、ＨＤＤに保存されるジョブフローのオブジェクト構成の一例を概念的に示した図である。
【図７】本発明の実施形態を示し、ジョブフローの一覧を表示する表示画面の構成の一例を示す図である。
【図８】本発明の実施形態を示し、ジョブフローを実行する際の複合機１００１における処理手順の一例を説明するフローチャートである。
【図９】本発明の実施形態を示し、署名付与処理の一例を詳細に説明するフローチャートである。
【図１０】本発明の実施形態を示し、エラー終了したジョブフローの実行を再開する際の複合機１００１における処理手順の一例を説明するフローチャートである。
【図１１】本発明の実施形態を示し、表示画面に表示された確認メッセージのダイアログボックスの一例を示す図である。
【図１２】本発明の実施形態を示し、電子署名検証処理の一例を詳細に説明するフローチャートである。
【図１３】本発明の実施形態を示し、データベース／メールサーバ、及びクライアントコンピュータの構成の一例を示すブロック図である。
【図１４】本発明の実施形態を示し、電子署名作成処理の一例を詳細に説明するフローチャートである。
【図１５】本発明の実施形態を示し、本発明の概念図の一例を説明する図である。
【符号の説明】
【０１０８】
１００１、１００２  複合機
１００３、１００７  ファクシミリ装置
１００４  データベース／メールサーバ
１００５  クライアントコンピュータ
１００６  ＬＡＮ
１００８  公衆回線
１１００  ダイアログボックス
【図１】
2008078759.tif 000003
【図２】
2008078759.tif 000004
【図３】
2008078759.tif 000005
【図４】
2008078759.tif 000006
【図５】
2008078759.tif 000007
【図６】
2008078759.tif 000008
【図７】
2008078759.tif 000009
【図８】
2008078759.tif 000010
【図９】
2008078759.tif 000011
【図１０】
2008078759.tif 000012
【図１１】
2008078759.tif 000013
【図１２】
2008078759.tif 000014
【図１３】
2008078759.tif 000015
【図１４】
2008078759.tif 000016
【図１５】
2008078759.tif 000017