(57)【要約】【課題】ＡＰＩを用いて外部プログラムとの連携を図るＳＤＫシステムにおいて、情報の不整合を早期に検知すること。【解決手段】本発明の一態様は、フロー情報記憶部３１６に処理の情報を記憶させてワークフローを生成するＳＤＫシステムであって、ワークフローに組み込む処理を指定する情報である処理指定情報を取得する操作情報取得部１０１と、処理指定情報において指定されている処理の情報をフロー情報記憶部３１６に記憶させることを予告する事前イベントを出力し、指定されている処理をワークフローに組み込むことの可否を示す可否情報を事前イベントに応じて取得し、指定されている処理の情報を、取得された可否情報に応じてフロー情報記憶部３１６に記憶させ、取得された可否情報に応じて実行された動作の結果を示す事後イベントを出力するフロー構築部１０２とを有する。【選択図】図６
2010128948.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置であって、
前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得する処理指定情報取得部と、
前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力する予告出力部と、
前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得する可否情報取得部と、
前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させる処理情報出力部と、
前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する結果出力部と、を有するワークフロー情報生成装置。
【請求項２】
前記出力された予告情報を取得し、前記指定された処理を前記ワークフローに組み込むことの可否を判断して前記可否情報を出力する可否判断部を更に有することを特徴とする請求項１に記載のワークフロー情報生成装置。
【請求項３】
前記処理は、アプリケーション・プログラムによって実現される処理であり、
前記可否判断部は、前記アプリケーション・プログラムの使用条件に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする請求項２に記載のワークフロー情報生成装置。
【請求項４】
前記可否判断部は、前記出力された結果情報を取得し、前記アプリケーション・プログラムの使用条件に関する情報を更新することを特徴とする請求項３に記載のワークフロー情報生成装置。
【請求項５】
前記処理は、他の機器によって実現される処理であり、
前記可否判断部は、前記他の機器の使用条件に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする請求項２乃至４いずれかに記載のワークフロー情報生成装置。
【請求項６】
前記可否判断部は、前記出力された結果情報を取得し、前記機器の使用条件に関する情報を更新することを特徴とする請求項５に記載のワークフロー情報生成装置。
【請求項７】
前記処理は、指定された送信先に情報を送信する処理であり、
前記可否判断部は、前記送信先への情報の送信可否を示す情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする請求項２乃至６いずれかに記載のワークフロー情報生成装置。
【請求項８】
前記可否判断部は、前記指定された処理を前記ワークフローに組み込む際の課金に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする請求項２乃至５いずれかに記載のワークフロー情報生成装置。
【請求項９】
前記可否判断部は、前記出力された結果情報を取得し、前記課金に関する情報を更新することを特徴とする請求項８に記載のワークフロー情報生成装置。
【請求項１０】
前記取得された可否情報が、前記指定されている処理を前記ワークフローに組み込むことが不可能であると示している場合、前記指定されている処理を前記ワークフローに組み込むことが不可能であることをユーザに通知するための通知情報を生成する通知情報生成部を更に含むことを特徴とする請求項１乃至９いずれかに記載のワークフロー情報生成装置。
【請求項１１】
前記通知情報は、前記指定されている処理を前記ワークフローに組み込むことが不可能であると判断された理由を含むことを特徴とする請求項１０に記載のワークフロー情報生成装置。
【請求項１２】
前記取得された可否情報が、前記指定されている処理を前記ワークフローに組み込むことが不可能であると示している場合、前記結果出力部は、前記指定されている処理を前記ワークフローに組み込むことが拒否されたことを前記結果情報として出力することを特徴とする請求項１乃至１１いずれかに記載のワークフロー情報生成装置。
【請求項１３】
前記指定されている処理の情報を前記フロー情報記憶部に記憶させる処理を前記処理情報出力部が完了した場合、前記結果出力部は、前記指定されている処理を前記ワークフローに組み込むことが完了したことを前記結果情報として出力することを特徴とする請求項１乃至１２いずれかに記載のワークフロー情報生成装置。
【請求項１４】
複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成方法であって、
処理指定情報取得部が、前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得し、
予告出力部が、前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力し、
可否情報取得部が、前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得し、
処理情報出力部が、前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させ、
結果出力部が、前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する、ワークフロー情報生成方法。
【請求項１５】
複数の処理が組み合わせられて構成されるワークフローを実行する画像処理装置であって、
前記ワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置であって、
実行すべきワークフローを指定する情報及び前記ワークフローの実行を指示する情報を含む指示情報を取得する実行命令取得部と、
前記ワークフローが含む処理を実行することを予告する予告情報を出力する予告出力部と、
前記ワークフローが含む処理の実行可否を示す可否情報を前記出力された予告情報に応じて取得する可否情報取得部と、
前記ワークフローが含む処理を、前記取得された可否情報に応じて実行させる処理実行部と、
前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する結果出力部と、を有する画像処理装置。
【請求項１６】
情報処理装置を、複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置として動作させる制御プログラムであって、
前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得するステップと、
前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力するステップと、
前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得するステップと、
前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させるステップと、
前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力するステップと、を前記情報処理装置に実行させる制御プログラム。
【請求項１７】
請求項１６に記載の制御プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフロー情報生成装置、ワークフロー情報生成方法、画像処理装置、制御プログラム及び記録媒体に関し、特に、情報の整合性の維持に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）として構成されることが多い。また、このように電子化された文書を文書管理サーバに蓄積し若しくは指定された配信先に配信して利用する文書管理システムが知られている（例えば、特許文献１参照）。
【０００３】
このような文書管理システムにおいては、スキャナ機能と情報処理機能とを組み合わせてワークフローを構成し、文書蓄積の効率化を図ることが行われている。ワークフローを利用した文書管理システムにおいては、そのシステムを利用する企業等のユーザによって利用方法やメールシステム、ネットワーク構成等の社内インフラが異なるため、想定されるすべてのケースを網羅したシステムを事前に開発することは難しい。
【０００４】
そのため、ワークフローのシステムをＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）とし、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を公開することが行われている。これにより、各ユーザは、夫々の環境に適したワークフローのプログラムを自由に構築することが可能となる。
【０００５】
ＡＰＩにより、ワークフローにおいて実行される処理の一部を外部のプログラムに実行させることが可能となる。また、ＡＰＩにより、システム側で発生する各種のイベントを外部のプログラムに通知する場合もある。この場合、外部プログラムは、ワークフローにおいて実行される処理の一部を実行するのではなく、システムの状態やシステムになされた操作に応じて、自らに必要な処理を実行する。
【０００６】
例えば、上述した文書管理システムにおいて、電子化された文書の蓄積若しくは配信処理の結果を通知するＡＰＩを用いることにより、その通知を受けた外部プログラムは、文書の蓄積若しくは配信件数に応じて課金を行うことができる。
【特許文献１】特開２００８−９７５８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したＳＤＫにおいて、ＡＰＩにより、システム側で発生する各種のイベントを外部のプログラムに通知する処理は、システム側で処理を実行した後に通知される、いわゆる「事後イベント」である。事後イベントが通知されることにより、外部プログラムはシステムの状態等を把握することが可能である。しかしながら、外部プログラムは、通知された事後イベントに応じてシステムの動作に介入することはできない。
【０００８】
例えば、複数の外部プログラムによる処理を含むワークフローにおいて、一の外部プログラムによる処理が実行されて課金がされた後、他の外部プログラムがエラーとなりワークフローが完了できなかった場合を考える。この場合、ワークフローが完了できず、ユーザの目的が遂げられなかったにも関わらず、処理が実行された外部プログラムについては、課金された状態となる。
【０００９】
また、ユーザがワークフローを構築する場合において、外部プログラム（以降、プラグインとする）による処理をワークフローの一処理として追加したことにより、ＡＰＩによってプラグイン追加のイベントが通知された場合を考える。この場合、ライセンス数の条件等によりプラグイン側でワークフローへの追加が拒否されることがあり得る。すると、構築されたワークフローをユーザが実行した場合に、プラグインが処理を実行できずにエラーとなり、ワークフローを構築し直す必要がある。
【００１０】
このように、ＡＰＩによって通知されるイベントが「事後イベント」のみである場合、システムに含まれる情報に不整合が生じた場合であっても、その情報の不整合を直ちに検知することができない。尚、このような課題は、文書管理システムにおけるワークフローシステムに限らず、ＡＰＩを用いて外部プログラムとの連携を図るＳＤＫシステムにおいて同様に課題となり得る。
【００１１】
本発明は、上記実情を考慮してなされたものであり、ＡＰＩを用いて外部プログラムとの連携を図るＳＤＫシステムにおいて、情報の不整合を早期に検知することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、請求項１に記載の発明は、複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置であって、前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得する処理指定情報取得部と、前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力する予告出力部と、前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得する可否情報取得部と、前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させる処理情報出力部と、前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する結果出力部とを有する。
【００１３】
また、請求項２に記載の発明は、請求項１に記載のワークフロー情報生成装置において、前記出力された予告情報を取得し、前記指定された処理を前記ワークフローに組み込むことの可否を判断して前記可否情報を出力する可否判断部を更に有することを特徴とする。
【００１４】
また、請求項３に記載の発明は、請求項２に記載のワークフロー情報生成装置において、前記処理は、アプリケーション・プログラムによって実現される処理であり、前記可否判断部は、前記アプリケーション・プログラムの使用条件に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする。
【００１５】
また、請求項４に記載の発明は、請求項３に記載のワークフロー情報生成装置において、前記可否判断部は、前記出力された結果情報を取得し、前記アプリケーション・プログラムの使用条件に関する情報を更新することを特徴とする。
【００１６】
また、請求項５に記載の発明は、請求項２乃至４いずれかに記載のワークフロー情報生成装置において、前記処理は、他の機器によって実現される処理であり、前記可否判断部は、前記他の機器の使用条件に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする。
【００１７】
また、請求項６に記載の発明は、請求項５に記載のワークフロー情報生成装置において、前記可否判断部は、前記出力された結果情報を取得し、前記機器の使用条件に関する情報を更新することを特徴とする。
【００１８】
また、請求項７に記載の発明は、請求項２乃至６いずれかに記載のワークフロー情報生成装置において、前記処理は、指定された送信先に情報を送信する処理であり、前記可否判断部は、前記送信先への情報の送信可否を示す情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする。
【００１９】
また、請求項８に記載の発明は、請求項２乃至５いずれかに記載のワークフロー情報生成装置において、前記可否判断部は、前記指定された処理を前記ワークフローに組み込む際の課金に関する情報に基づいて前記処理を前記ワークフローに組み込むことの可否を判断することを特徴とする。
【００２０】
また、請求項９に記載の発明は、請求項８に記載のワークフロー情報生成装置において、前記可否判断部は、前記出力された結果情報を取得し、前記課金に関する情報を更新することを特徴とする。
【００２１】
また、請求項１０に記載の発明は、請求項１乃至９いずれかに記載のワークフロー情報生成装置において、前記取得された可否情報が、前記指定されている処理を前記ワークフローに組み込むことが不可能であると示している場合、前記指定されている処理を前記ワークフローに組み込むことが不可能であることをユーザに通知するための通知情報を生成する通知情報生成部を更に含むことを特徴とする。
【００２２】
また、請求項１１に記載の発明は、請求項１０に記載のワークフロー情報生成装置において、前記通知情報は、前記指定されている処理を前記ワークフローに組み込むことが不可能であると判断された理由を含むことを特徴とする。
【００２３】
また、請求項１２に記載の発明は、請求項１乃至１１いずれかに記載のワークフロー情報生成装置において、前記取得された可否情報が、前記指定されている処理を前記ワークフローに組み込むことが不可能であると示している場合、前記結果出力部は、前記指定されている処理を前記ワークフローに組み込むことが拒否されたことを前記結果情報として出力することを特徴とする。
【００２４】
また、請求項１３に記載の発明は、請求項１乃至１２いずれかに記載のワークフロー情報生成装置において、前記指定されている処理の情報を前記フロー情報記憶部に記憶させる処理を前記処理情報出力部が完了した場合、前記結果出力部は、前記指定されている処理を前記ワークフローに組み込むことが完了したことを前記結果情報として出力することを特徴とする。
【００２５】
また、請求項１４に記載の発明は、複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成方法であって、処理指定情報取得部が、前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得し、予告出力部が、前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力し、可否情報取得部が、前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得し、処理情報出力部が、前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させ、結果出力部が、前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する。
【００２６】
また、請求項１５に記載の発明は、複数の処理が組み合わせられて構成されるワークフローを実行する画像処理装置であって、前記ワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置であって、実行すべきワークフローを指定する情報及び前記ワークフローの実行を指示する情報を含む指示情報を取得する実行命令取得部と、前記ワークフローが含む処理を実行することを予告する予告情報を出力する予告出力部と、前記ワークフローが含む処理の実行可否を示す可否情報を前記出力された予告情報に応じて取得する可否情報取得部と、前記ワークフローが含む処理を、前記取得された可否情報に応じて実行させる処理実行部と、前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力する結果出力部とを有する。
【００２７】
また、請求項１６に記載の発明は、情報処理装置を、複数の処理が組み合わせられて構成されるワークフローの情報を記憶しているフロー情報記憶部に前記処理の情報を記憶させて前記ワークフローを生成するワークフロー情報生成装置として動作させる制御プログラムであって、前記ワークフローに組み込む処理を指定する情報である処理指定情報を取得するステップと、前記取得された処理指定情報において指定されている処理の情報を前記フロー情報記憶部に記憶させることを予告する予告情報を出力するステップと、前記指定されている処理を前記ワークフローに組み込むことの可否を示す可否情報を前記出力された予告情報に応じて取得するステップと、前記指定されている処理の情報を、前記取得された可否情報に応じて前記フロー情報記憶部に記憶させるステップと、前記取得された可否情報に応じて実行された動作の結果を示す結果情報を出力するステップと、を前記情報処理装置に実行させる。
【００２８】
また、請求項１７に記載の発明は、記録媒体であって、請求項１６に記載の制御プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする。
【発明の効果】
【００２９】
本発明の一態様によれば、ＡＰＩを用いて外部プログラムとの連携を図るＳＤＫシステムにおいて、情報の不整合を早期に検知することができる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。図１は、本実施の形態に係る文書管理システムの運用形態の例を示す図である。図１に示すように、本実施形態に係る文書管理システムは、管理者用端末１、クライアント用端末２、画像処理装置３、アプリケーションサーバ４及びファイル管理サーバ５を含む。管理者用端末１は、本実施形態に係る文書管理システムを管理する管理者が操作する端末であり、システムを管理する管理ツールがインストールされている。クライアント端末１の機能が本実施形態の要旨の１つとなる。
【００３１】
クライアント装置２は、ユーザが操作する情報処理端末である。画像処理装置３は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機である。また、本実施形態に係る画像処理装置３の制御システムは、ＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）によって構成され、ユーザによって構築されたワークフローに従って文書の蓄積若しくは配信処理を実行する。
【００３２】
更に、画像処理装置３は、ＳＤＫとして公開されているＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を実装した外部プログラム（以降、プラグインとする）を含む。このプラグインは、画像処理装置３の制御システムに準じて動作する。プラグインの種類としては、ワークフローに組み込まれて画像処理等を実行する処理プラグインや、システムの状態に応じてイベントを取得するイベントプラグイン等がある。プラグインの詳細については後述する。
【００３３】
アプリケーションサーバ４は、上述した処理プラグインと同様に、ワークフローに組み込まれて実行される画像処理の機能を提供する。ファイル管理サーバ５は、文書情報が蓄積されるデータサーバである。ファイル管理サーバ５が記憶している文書情報とは、例えば拡張子“ｊｐｇ”や“ｐｄｆ”等の画像情報、拡張子“ｔｘｔ”や“ｄｏｃ”等の文字情報によって構成される情報である。管理者用端末１、クライアント用端末２、画像処理装置３、アプリケーションサーバ４及びファイル管理サーバ５は、ネットワークを介して接続されている。
【００３４】
次に、本実施形態に係る管理者用端末１、クライアント用端末２、画像処理装置３、アプリケーションサーバ４及びファイル管理サーバ５等の、情報処理端末のハードウェア構成について説明する。図２は、本実施形態に係る情報処理端末のハードウェア構成を示すブロック図である。尚、クライアント用端末２、画像処理装置３、アプリケーションサーバ４及び文書管理サーバ５も、図２に示すハードウェア構成と同様の構成を有する。また、画像処理装置３は、図２に示すハードウェア構成に加えて、スキャナ、プリンタ等を実現するためのエンジンを備える。
【００３５】
図２に示すように、本実施形態に係る管理者用端末１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成を有する。即ち、本実施形態に係る管理者用端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０及びＩ／Ｆ５０がバス８０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０及び操作部７０が接続されている。
【００３６】
ＣＰＵ１０は演算手段であり、管理者用端末１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。
【００３７】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザが管理者用端末１の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボードやマウス等、ユーザが管理者用端末１に情報を入力するためのユーザインタフェースである。尚、図１において説明したように、本実施形態に係るアプリケーションサーバ４及びファイル管理サーバ５は、サーバとして運用される。従って、ＬＣＤ６０及び操作部７０等のユーザインタフェースは省略可能である。
【００３８】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る管理者用端末１等の情報処理端末の機能を実現する機能ブロックが構成される。
【００３９】
次に、本実施形態に係る画像処理装置３の機能構成について、図３を参照して説明する。図３は、本実施形態に係る画像処理装置３の機能構成を示すブロック図である。図３に示すように、本実施形態に係る画像処理装置３は、コントローラ３００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）３０１、スキャナユニット３０２、排紙トレイ３０３、ディスプレイパネル３０４、給紙テーブル３０５、プリントエンジン３０６、排紙トレイ３０７及びネットワークＩ／Ｆ３０８を有する。また、コントローラ３００は、主制御部３１１、エンジン制御部３１２、入出力制御部３１３、画像処理部３１４、操作表示制御部３１５及びフロー情報記憶部３１６を有する。図３に示すように、本実施形態に係る画像処理装置３は、スキャナユニット３０２、プリントエンジン３０６を有する複合機として構成されている。尚、図３においては、電気的接続を実線の矢印で示しており、用紙若しくは文書束の流れを破線の矢印で示している。
【００４０】
ディスプレイパネル３０４は、画像処理装置３の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像処理装置３を直接操作し若しくは画像処理装置３に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ３０８は、画像処理装置３がネットワークＡを介して他の機器と通信するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースが用いられる。
【００４１】
コントローラ３００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０や不揮発性メモリ並びにＨＤＤ４０や光学ディスク等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭ２０等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ１０の制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ３００が構成される。コントローラ３００は、画像処理装置３全体を制御する制御部として機能する。また、上述したように、本実施形態に係るコントローラ３００のソフトウェア制御部は、ＳＤＫ及び外部プログラムによって構成される。
【００４２】
主制御部３１１は、コントローラ３００に含まれる各部を制御する役割を担い、コントローラ３００の各部に命令を与える。図４を参照して、主制御部３１１についてさらに詳細に説明する。図４に示すように、主制御部３１１は、フロー制御部３１１ａ及びイベントプラグイン３１１ｂを含む。フロー制御部３１１ａは、エンジン制御部３１２、入出力制御部３１３及び画像処理装置３１４等を制御し、ディスプレイパネル３０４及び操作表示制御部３１５を介してユーザにより指示されたワークフローの実行を制御する。即ち、フロー制御部３１１ａが、画像処理装置３におけるＳＤＫシステムの本体として機能する。
【００４３】
イベントプラグイン３１１ｂは、フロー制御部３１１ａをはじめとした主制御部３１１の動作に応じたイベントを取得し、取得したイベントに応じた処理を実行する。このイベントは、フロー制御部３１１ａが、ユーザによるワークフローの実行の指示に応じて、ワークフローを実行する前に出力する。即ち、上記イベントとは、ワークフローに含まれる処理の実行予告の通知である。イベントプラグイン３１１ｂは、ＳＤＫシステムにおけるＡＰＩを含む外部プログラムとして構成される。イベントプラグイン３１１ｂによる処理が、本実施形態の要旨の１つとなる。
【００４４】
エンジン制御部３１２は、プリントエンジン３０６やスキャナユニット３０２等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部３１３は、ネットワークＩ／Ｆ３０８を介して入力される信号や命令を主制御部３１１に入力する。また、主制御部３１１は、入出力制御部３１３を制御し、ネットワークＩ／Ｆ３０８及びネットワークを介してファイル管理サーバ４やジョブ管理サーバ１にアクセスする。また、入出力制御部３１３は、ワークフローにおいてユーザの指示に応じて実行される文書情報の蓄積若しくは配信を実行する機能（以降、文書処理機能とする）を有する。
【００４５】
画像処理部３１４は、主制御部３１１の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン３０６が画像形成動作において形成すべき画像を描画するための情報である。また、画像処理部３１４は、スキャナユニット３０２から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像処理装置３に格納され若しくはネットワークＩ／Ｆ３０８を介してファイル管理サーバ４に送信される情報である。
【００４６】
更に画像処理部３１４は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）や、情報の埋め込み等、ワークフローにおいてユーザの指示に応じて実行される画像処理の機能（以降、画像処理機能とする）を有する。入出力制御部３１３に含まれる文書処理機能や、画像処理部３１４に含まれる画像処理機能は処理プラグインによって実現される機能であり、ＳＤＫシステムにおけるＡＰＩを含む外部プログラムであるアプリケーション・プログラムによって提供される。
【００４７】
操作表示制御部３１５は、ディスプレイパネル３０４に情報表示を行い若しくはディスプレイパネル３０４を介して入力された情報を主制御部３１１に通知する。
【００４８】
フロー情報記憶部３１６は、画像処理装置３がユーザの操作に応じて実行するワークフローについての情報を記憶している記憶部である。図５を参照して、フロー制御部３１６に記憶されている情報の例を示す。図５に示すように、フロー情報記憶部３１６は、ワークフローを識別するためのＩＤ、ワークフローの名称及びワークフローに含まれる処理の内容の情報を記憶している。
【００４９】
例えば、ＩＤ“００１”のワークフローであれば、名称は“ｐｒｏｊｅｃｔＡ”であり、“処理ａ”、“処理ｂ”、“処理ｃ”・・・といった処理が含まれる。フロー制御部３１１ａは、ユーザからワークフローの実行を指示されると、フロー情報記憶部３１６から実行すべき処理の内容を取得し、夫々の処理に対応する処理プラグインに処理を実行させる。
【００５０】
図５に示す“処理ａ”、“処理ｂ”、“処理ｃ”・・・等の各処理は、画像処理装置３の画像処理部３１４や、入出力制御部３１３若しくはアプリケーションサーバ４によって実行される処理である。
【００５１】
画像処理装置３がプリンタとして動作する場合は、まず、入出力制御部３１３がネットワークＩ／Ｆ３０８を介して印刷ジョブを受信する。入出力制御部３１３は、受信した印刷ジョブを主制御部３１１に転送する。主制御部３１１は、印刷ジョブを受信すると、画像処理部３１４を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成する。
【００５２】
画像処理部３１４によって描画情報が生成されると、エンジン制御部３１２は、生成された描画情報に基づき、給紙テーブル３０５から搬送される用紙に対して画像形成を実行する。プリントエンジン３０６の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン３０６によって画像形成が施された文書は排紙トレイ３０７に排紙される。
【００５３】
画像処理装置３がスキャナとして動作する場合は、ユーザによるディスプレイパネル３０４の操作若しくはネットワークＩ／Ｆ３０８を介して外部のクライアント用端末３等から入力されるスキャン実行指示に応じて、操作表示制御部３１５若しくは入出力制御部３１３が主制御部３１１にスキャン実行信号を転送する。主制御部３１１は、受信したスキャン実行信号に基づき、エンジン制御部３１２を制御する。
【００５４】
エンジン制御部３１２は、ＡＤＦ３０１を駆動し、ＡＤＦ３０１にセットされた撮像対象原稿をスキャナユニット３０２に搬送する。また、エンジン制御部３１２は、スキャナユニット３０２を駆動し、ＡＤＦ３０１から搬送される原稿を撮像する。また、ＡＤＦ３０１に原稿がセットされておらず、スキャナユニット３０２に直接原稿がセットされた場合、スキャナユニット３０２は、エンジン制御部３１２の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット３０２が撮像部として動作する。
【００５５】
撮像動作においては、スキャナユニット３０２に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいて生成された撮像情報が生成される。エンジン制御部３１２は、スキャナユニット３０２が生成した撮像情報を画像処理部３１４に転送する。画像処理部３１４は、主制御部３１１の制御に従い、エンジン制御部３１２から受信した撮像情報に基づき画像情報を生成する。画像処理部３１４が生成した画像情報はＨＤＤ４０等の画像処理装置３に装着された記憶媒体に保存される。
【００５６】
画像処理部３１４によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくは入出力制御部３１３及びネットワークＩ／Ｆ３０８を介してファイル管理サーバ４等の外部の装置に送信される。また、画像処理装置３が複写機として動作する場合は、エンジン制御部３１２がスキャナユニット３０２から受信した撮像情報若しくは画像処理部３１４が生成した画像情報に基づき、画像処理部３１４が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部３１２がプリントエンジン３０６を駆動する。
【００５７】
次に、本実施形態に係る管理者用端末１の機能ブロックについて、図６を参照して説明する。図６は、本実施形態に係る管理者用端末１の機能ブロックを示すブロック図である。図６に示すように、本実施形態に係る管理者用端末１は、フロー構築制御部１００、情報入力部１１０、ネットワークＩ／Ｆ１２０及び表示部１３０を有する。
【００５８】
情報入力部１１０は、ユーザが管理者用端末１を操作して情報を入力するための構成であり、図２に示すＩ／Ｆ５０及び操作部７０によって実現される。ネットワークＩ／Ｆ１２０は、管理者用端末１がネットワークを介して情報を取得し、若しくはネットワークを介して情報を送信するためのインタフェースであり、図２に示すＩ／Ｆ５０によって実現される。具体的には、例えばＥｔｈｅｒｎｅｔ（登録商標）接続のインタフェースや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続のインタフェースによって実現される。表示部１３０は、管理者用端末１の動作状態や、検索結果等が表示される構成であり、図２に示すＩ／Ｆ５０及びＬＣＤ６０によって実現される。
【００５９】
フロー構築制御部１００は、本実施形態に係る管理者用端末１において、画像処理装置３において実行されるワークフローを設計し、構築する機能を担う構成であり、操作情報取得部１０１、フロー構築部１０２及びイベントプラグイン１０３を含む。即ち、フロー構築制御部１００を含むことにより、管理者用端末１がワークフロー情報生成装置として機能する。フロー制御部１００は、図２に示すＲＡＭ２０にロードされたプログラムがＣＰＵ１０の制御に従って動作することにより構成される。
【００６０】
操作情報取得部１０１は、情報入力部１１０を介して、ユーザによる操作の情報を取得する。本実施形態において、操作情報取得部１０１は、ワークフローの設計、構築に関する操作の情報を取得する。フロー構築部１０２は、操作情報取得部１０１が取得した操作情報、即ち、ユーザによる操作に応じて、フローを構築する。
【００６１】
フロー構築部１０２は、ユーザの操作に応じて、図５に示すように、複数の処理プラグインや機器による処理を積み重ねてフロー情報記憶部３１６に情報を記憶させることにより、ワークフローを構築する。本実施形態において、フロー構築部１０２は、ネットワークＩ／Ｆ１２０を介してフロー構築の情報を出力し、画像処理装置３のフロー情報記憶部３１６に情報を記憶させる。即ち、操作情報取得部１０１及びフロー構築部１０２が、管理者用端末１におけるＳＤＫシステムの本体として機能する。
【００６２】
また、フロー構築部１０２は、ユーザの操作に応じてフロー構築、即ち、フロー情報記憶部３１６に情報を記憶させる前に、ユーザの操作に応じたイベントを出力する。即ち、上記イベントとは、ワークフローを構築する処理の実行予告の通知である。更に、フロー構築部１０２は、フロー構築に関する表示情報を生成し、表示部１３０を介してフロー構築のＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供する。
【００６３】
イベントプラグイン１０３は、画像処理装置３のイベントプラグイン３１１ｂと同様に、フロー構築部１０２が出力するイベントを取得し、取得したイベントに応じた処理を実行する。具体的に、イベントプラグイン１０３は、ワークフローへの処理プラグインの組み込みが指示された場合に、その指示に応じたイベントを取得し、組み込みが指示されたプラグインの組み込みの可否を判断する。
【００６４】
イベントプラグイン１０３は、プラグインの組み込み可否の判断内容に応じて、複数種のプラグインを含む。図７を参照して、イベントプラグイン１０３に含まれる夫々のプラグインについて説明する。図７に示すように、イベントプラグイン１０３は、ライセンス管理プラグイン１０３ａ、機器管理プラグイン１０３ｂ、配信先管理プラグイン１０３ｃ及び課金情報管理プラグイン１０３ｄを含む。
【００６５】
ライセンス管理プラグイン１０３ａは、図８に示すような情報を保持しており、ライセンスの面からワークフローへの処理プラグインの登録可否を判断する。より具体的には、ライセンス管理プラグイン１０３ａは、夫々の処理プラグインを実現するためのアプリケーション・プログラムのライセンスに関する情報を保持している。図８に示すように、ライセンス管理プラグイン１０３ａは、処理プラグインを識別するＩＤ、プラグイン名、登録が許されている数を示すライセンス数及び既に登録されている数を示す登録数の情報を含む。
【００６６】
例えば、図８に示す“ｐｌｕｇ−ｉｎ  ａ”の登録が指示された場合、“ｐｌｕｇ−ｉｎ  ａ”の登録数がライセンス数に達していれば、ライセンス管理プラグイン１０３ａは、登録が不可能である旨をフロー構築部１０２に通知する。これにより、ライセンス数の上限に達しており追加登録することができない処理プラグインがワークフローに組み込まれ、結果としてエラーを含むワークフローが構築されてしまうことを防ぐことができる。
【００６７】
機器管理プラグイン１０３ｂは、図９に示すような情報を保持しており、機器管理の面からワークフローへの処理プラグインの登録可否を判断する。より具体的には、機器管理プラグイン１０３ｂは、ワークフローに含まれる処理を実行するアプリケーションサーバ４や、プリンタ、ファクシミリ、スキャナ等の機器のライセンスに関する情報を保持している。図９に示すように、機器管理プラグイン１０３ｂは、機器を識別するＩＤ、機器名、ワークフローへの登録が許されている数を示す登録許可数及び既に登録されている数を示す登録数の情報を含む。
【００６８】
例えば、図９に示す“ｐｒｉｎｔｅｒ  Ａ”の登録が指示された場合、“ｐｒｉｎｔｅｒ  Ａ”の登録数が登録許可数に達してれば、機器管理プラグイン１０３ｂは、登録が不可能である旨をフロー構築部１０２に通知する。この他、機器管理プラグイン１０３ｂは、対象の機器についての管理者用端末を操作している管理者の権原や、他の機器若しくは処理プラグインとの相性などを判断して登録の可否を判断しても良い。これにより、登録許可数の上限に達している場合や、他の機器との相性等により追加登録することができない機器による処理がワークフローに組み込まれ、結果としてエラーを含むワークフローが構築されてしまうことを防ぐことができる。
【００６９】
配信先管理プラグイン１０３ｃは、図１０に示すような情報を保持しており、配信先の面からワークフローへの処理プラグインの登録可否を判断する。図１０に示すように、配信先管理プラグイン１０３ｃは、配信先を識別するＩＤ、配信先のアドレス、その配信先への配信の可否の情報を含む。ここで、配信先のアドレスとは、メールアドレスやパス若しくはＩＰアドレス等である。
【００７０】
例えば、ワークフローの構築において、ユーザにより“ｘｘｘ＠ｘｘｘ．ｃｏｍ”への配信が指示された場合、図１０に示すように、該当する配信先の配信は“可”なので、配信先管理プラグイン１０３ｃは、登録が可能である旨をフロー構築部１０２に通知する。これにより、不適切な配信先が指定された処理がワークフローに組み込まれ、結果としてエラーを含むワークフローが構築されてしまうことを防ぐことができる。
【００７１】
課金情報管理プラグイン１０３ｄは、図１１及び図１２に示すような情報を保持しており、課金情報の面からワークフローへの処理プラグインの登録可否を判断する。図１１に示すように、課金情報管理プラグイン１０３ｄは、処理プラグインを識別するＩＤ、プラグイン名及びその処理プラグインの登録に際して課金される金額の情報を含む。また、図１２に示すように、下記情報管理プラグイン１０３ｄは、予め支払われている金額、即ちプリペイド金額、設定金額及び累積課金額の情報を記憶している。
【００７２】
例えば、図１１に示す“ｐｌｕｇ−ｉｎ  ａ”の登録が指示された場合、プリペイド金額が“ｐｌｕｇ−ｉｎ  ａ”の課金額に満たない場合、課金情報管理プラグイン１０３ｄは、指示された処理プラグインの登録が不可能である旨をフロー構築部１０２に通知する。また、同様に“ｐｌｕｇ−ｉｎ  ａ”の登録が指示された場合、“ｐｌｕｇ−ｉｎ  ａ”の課金額を累積課金額に加算した結果、累積課金額が設定金額を上回る場合、課金情報管理プラグイン１０３ｄは、指示された処理プラグインの登録が不可能である旨をフロー構築部１０２に通知する。これにより、課金を理由として追加登録することができない機器による処理がワークフローに組み込まれ、結果としてエラーを含むワークフローが構築されてしまうことを防ぐことができる。
【００７３】
次に、本実施形態に係る文書管理システムにおけるワークフロー構築の動作について、図を参照して説明する。図１３は、本実施形態に係る文書管理システムにおけるジョブログ情報の閲覧動作を示すシーケンス図である。また、図１４は、本実施形態に係る文書管理システムにおいて、ワークフローを構築する際のＧＵＩ（以降、フロー構築画面とする）を示す図である。
【００７４】
図１４に示すように、本実施形態に係るフロー構築画面は、アイコン配置部１４ａ及びアイコン一覧部１４ｂを有する。アイコン配置部１４ａは、図１２に示すように、ワークフローに含まれる処理プラグインや処理を実行する機器のアイコンを表示する表示部である。アイコン配置部１４ａの表示は画像処理装置３のフロー情報記憶部３１６に記憶されている情報とリンクしており、ユーザによって構築されたワークフローの情報は、リアルタイムでフロー情報記憶部３１６に記憶される。
【００７５】
ユーザはマウス等のポインタを操作し、アイコン一覧部１４ｂに表示された処理プラグイン若しくは処理機器のアイコンをアイコン配置部１４ａにドラッグ＆ドロップする。このような操作により、操作情報取得部１０１が操作情報を取得し、フロー構築部１０２に対して、ワークフローへの処理プラグインの追加が指示される（Ｓ１３０１）。即ち、Ｓ１３０１においては、操作情報取得部１０１が、処理を指定する情報である処理指定情報を取得する処理指定情報取得部として機能する。操作情報取得部１０１は、取得した処理指定情報をフロー構築部１０２に入力する。
【００７６】
処理プラグインの追加が指示されると、フロー構築部１０２は、処理プラグイン追加のイベントを生成する。フロー構築部１０２は、処理プラグイン追加のイベントを生成すると、処理プラグインをワークフローに登録する前の事前通知として、そのイベントをイベントプラグイン１０３に通知する（Ｓ１３０２）。ＳＳ１３０２における通知には、ワークフローへの追加が指示された処理プラグインを示す情報が含まれる。Ｓ１３０２の通知は、具体的には、ワークフローに組み込むべき処理をフロー情報記憶部３１６に記憶させることを予告する予告情報である。即ち、Ｓ１３０２においては、フロー構築部１０２が予告出力部として機能する。
【００７７】
イベントプラグイン１０３は、図８〜図１２において説明したように指定された処理プラグインの追加の可否を判断する（Ｓ１３０３）。即ち、イベントプラグイン１０３が可否判断部として機能する。イベントプラグイン１０３は、Ｓ１３０３における可否の判断結果をフロー構築部１０２に入力する。即ち、Ｓ１３０３においては、フロー構築部１０２が可否情報取得部として機能する。
【００７８】
Ｓ１３０３の処理の結果、イベントプラグイン１０３が処理プラグインの登録を拒否した場合（Ｓ１３０３／ＹＥＳ）、フロー構築部１０２は、図１５に示すように、処理プラグインの追加が拒否された旨を表示する表示情報を生成して表示部１３０に表示させる（Ｓ１３０４）。即ち、Ｓ１３０４においては、フロー構築部１０２が、指定された処理プラグインの追加が不可能であることをユーザに通知する通知情報を生成する通知情報生成部として機能する。これにより、ユーザは、ワークフローを設計している際に、直ちにフローのエラーを認識することができる。
【００７９】
尚、処理プラグインの追加が不可能であることをユーザに通知する場合、図１５に示すように、不可能である理由を同時に通知することにより、ユーザはエラーの対策を円滑に行うことが可能となり、ユーザの利便性を向上することが可能となる。
【００８０】
そして、フロー構築部１０２は、Ｓ１３０１において発生した処理プラグインの追加処理に係る事後通知として、処理プラグインの追加が拒否されたことをイベントプラグイン１０３に通知し（Ｓ１３０５）、処理を終了する。即ち、Ｓ１３０５においては、フロー構築部１０２が、１３０３の可否の結果に応じて実行された動作の結果を示す結果情報を出力する結果出力部として機能する。
【００８１】
他方、Ｓ１３０３の処理の結果、処理プラグインの登録が拒否されなかった場合（Ｓ１３０３／ＮＯ）、フロー構築部１０２は、Ｓ１３０１において指示された処理プラグインの登録を実行する（Ｓ１３０６）。
【００８２】
Ｓ１３０６の処理は、フロー情報記憶部３１６に情報を登録させる処理である。即ち、Ｓ１３０６において、フロー構築部１０２は、構築中のワークフローのＩＤ及びワークフローに追加すべき処理プラグインの情報（以降、フロー構築情報とする）を、ネットワークＩ／Ｆ１２０を介して画像処理装置３に出力する。即ち、Ｓ１３０６においては、フロー構築部１０２が、処理プラグインの情報である処理情報を出力する処理情報出力部として機能する。画像処理装置３においては、入出力制御部３１３がネットワークＩ／Ｆ３０８を介してフロー構築情報を受信し、主制御部３１１に入力する。
【００８３】
主制御部３１１は、フロー構築情報を取得すると、ＩＤで指定されているワークフローに指定されている処理を追加するように、フロー情報記憶部３１６の情報を更新する。Ｓ１３０６の処理が正常に完了した場合（Ｓ１３０７／ＹＥＳ）、フロー構築部１０２は、Ｓ１３０１において発生した処理プラグインの追加処理に係る事後通知として、処理プラグインの追加が完了したことをイベントプラグイン１０３に通知し（Ｓ１３０８）、処理を終了する。即ち、Ｓ１３０８においても、フロー構築部１０２が、結果出力部として機能する。
【００８４】
Ｓ１３０８において通知を受けたイベントプラグイン１０３は、図８、図９及び図１２に示す情報を夫々更新する。例えば、ライセンス管理プラグイン１０３ａ及び機器管理プラグイン１０３ｂは、追加された処理プラグインの“登録数”をインクリメントする。また、課金情報管理プラグイン１０３ｄは、追加された処理プラグインの“課金額”を“累積課金額”に加算する。
【００８５】
Ｓ１３０６の処理が正常に完了しなかった場合（Ｓ１３０７／ＮＯ）、フロー構築部１０２は、Ｓ１３０１において発生した処理プラグインの追加処理に係る事後通知として、処理プラグインの追加が失敗したことをイベントプラグイン１０３に通知し（Ｓ１３０９）、処理を終了する。即ち、Ｓ１３０９においても、フロー構築部１０２が結果出力部として機能する。
【００８６】
このように、本実施形態に係る文書管理システムのワークフロー構築動作においては、実際に処理プラグインを追加登録する処理を実行する前に、その追加登録処理を実行することをイベントプラグイン１０３に通知する。そして、イベントプラグイン１０３が、その処理プラグインの追加登録を拒否しなかった場合に、フロー構築部１０２が実際の登録処理を実行する。他方、イベントプラグイン１０３が、その処理プラグインの追加登録を拒否した場合、フロー構築部１０２は、ユーザに対して登録の拒否を通知する。
【００８７】
このような構成により、ユーザはワークフローの構築時において、一の処理プラグインの追加を指示した際、その処理プラグインの追加可否を直ちに、即ちリアルタイムに認識することができる。
【００８８】
仮に、ワークフロー構築時に処理プラグインの追加可否をリアルタイムに認識できない場合、エラーを含むワークフローが構築される可能性がある。エラーを含むワークフローが構築された場合、実際にユーザがそのワークフローを実行しようとした際に初めてエラーが判明し、再度ワークフローを構築しなおす必要があるため、ユーザの利便性が損なわれ、管理者による管理負担が増大する。
【００８９】
上述したように、本実施形態に係る文書管理システムにおいて、ユーザは、ワークフロー構築時に処理プラグインの追加可否をリアルタイムに認識することができる。従って、本実施形態に係る文書管理システムにおいては、上記課題を解決し、ユーザの利便性を向上し、管理者の管理負担を低減することができる。
【００９０】
また、本実施形態に係る文書管理システムにおいて、フロー構築部１０２は、処理プラグインの追加処理の結果が確定した後で、Ｓ１３０５、Ｓ１３０８、Ｓ１３０９のように事後通知を行う。その結果、イベントプラグイン１０３は、Ｓ１３０８のように、処理プラグインの追加処理が確定した通知を受けた場合にのみ、登録数のインクリメントや課金の処理を行う。これにより、処理プラグインの追加処理が完了しなかった場合にも登録数のインクリメントや課金等の処理が行われてしまうことを防ぎ、情報の整合性を保つことができる。
【００９１】
次に、図１６を参照して、画像処理装置３においてワークフローを実行する際の動作について説明する。ユーザは、画像処理装置３のディスプレイパネル３０４を操作することにより、ワークフローの実行を指示する。ユーザの指示によりワークフローが開始されると（Ｓ１６０１）、フロー制御部３１１ａは、フロー情報記憶部３１６から指定されたワークフローに含まれる処理の情報を取得し、それらの処理を実行する前の事前通知として、そのワークフローに含まれる全ての処理をイベントプラグイン３１１ｂに通知する（Ｓ１６０２）。
【００９２】
イベントプラグイン３１１ｂは、フロー制御部３１１ａから通知された全ての処理を実行可能か否か確認する（Ｓ１６０３）。Ｓ１６０３の処理については、後に詳述する。Ｓ１６０３の判断の結果、１つでも実行不可能な処理がある場合（Ｓ１６０３／ＹＥＳ）、イベントプラグイン３１１ｂは、ワークフローの実行が不可能である旨をフロー制御部３１１ａに通知する。実行不可能の通知を受けたフロー制御部３１１ａは、ユーザによって指示されたワークフローの実行をキャンセルする（Ｓ１６０４）。また、主制御部３１１は、操作表示制御部３１５を制御し、フローの実行が不可能である旨のエラー表示をディスプレイパネル３０４に表示させる（Ｓ１６０５）。
【００９３】
ワークフローの実行をキャンセルし、ユーザへのエラー通知が完了すると、フロー制御部３１１ａは、ワークフローの実行に係る事後通知として、ワークフローの実行がキャンセルされたことをイベントプラグイン３１１ａに通知し（Ｓ１６０６）、処理を終了する。
【００９４】
他方、Ｓ１６０３の判断の結果、全ての処理が実行可能である場合（Ｓ１６０３／ＮＯ）、イベントプラグイン３１１ｂは、ワークフローの実行が可能である旨をフロー制御部３１１ａに通知する。実行可能の通知を受けたフロー制御部３１１ａは、指定されたワークフローに含まれる処理を指定された順番通りに実行する（Ｓ１６０７）。
【００９５】
Ｓ１６０７の処理の結果、全ての処理が正常に完了した場合（Ｓ１６０８／ＹＥＳ）、フロー制御部３１１ａは、ワークフローの実行に係る事後通知として、ワークフローの処理が正常に完了したことをイベントプラグイン３１１ｂに通知する（Ｓ１６０８）。この場合、イベントプラグイン３１１ｂは、ワークフローの処理完了に伴う処理を行う。この処理については後述する。
【００９６】
他方、Ｓ１６０７の処理の結果、全ての処理が正常に完了しなかった場合（Ｓ１６０８／ＮＯ）、フロー制御部３１１ａは、ワークフローの実行に係る事後通知として、ワークフローの実行が失敗したことをイベントプラグイン３１１ａに通知し（Ｓ１６０６）、処理を終了する。
【００９７】
次に、イベントプラグイン３１１ｂ及びＳ１６０３の処理について、詳細に説明する。図１７に示すように、イベントプラグイン３１１ｂは、機器管理プラグイン３１１ｃ、配信先管理プラグイン３１１ｄ及び課金管理プラグイン３１１ｅを含む。
【００９８】
機器管理プラグイン３１１ｃは、Ｓ１６０２において通知された処理の中に、アプリケーションサーバ４が実行すべき処理がある場合、Ｓ１６０３において、アプリケーションサーバ４の状態を確認する。アプリケーションサーバ４がダウンしている場合や、処理負荷が高く他の処理を迅速に処理することが不可能である場合、機器管理プラグイン３１１は、ワークフローの処理が不可能であると判断する。
【００９９】
例えば、アプリケーションサーバ４が実行する処理が、ワークフローの最後に組み込まれている場合、他の処理を全て完了した上で初めてアプリケーションサーバ４が処理を実行する。ここで、アプリケーションサーバ４が処理不可能な状態である場合、ワークフローの処理を完了することが出来ず、エラーとなる。この場合、ユーザがフローの実行が不可能であることを認識するのは、ワークフローの処理が最後まで実行されたタイミングであり、時間的な無駄が多い。
【０１００】
これに対して、上述したように、事前通知を行うことにより、ワークフローの処理が実行可能であるか否かを予め判断することができる。従って、実行不可能な処理がワークフローに含まれている場合、ユーザがより早いタイミングでワークフローの完了が不可能であることを認識することができ、時間的な無駄を解消することができる。
【０１０１】
配信先管理プラグイン３１１ｄは、Ｓ１６０３において、実行が指示されたワークフローにおける文書の配信先若しくは蓄積先を確認する。配信先管理プラグイン３１１ｄは、図１０に示すような情報と同様の情報を保持しており、文書の配信先に応じて配信が可能か否か確認する。指定されている配信先が配信不可に設定されている場合、配信先管理プラグイン３１１ｄは、ワークフローの処理が不可能であると判断する。これによっても、機器管理プラグインｃにおいて説明した効果と同様の効果を得ることができる。
【０１０２】
課金管理プラグイン３１１ｅは、Ｓ１６０３において、実行が指示されたワークフローに含まれる処理の課金情報を確認する。課金管理プラグイン３１１ｅは、図１１、図１２に示すような情報と同様の情報を保持しており、実行が指示された処理プラグインの課金情報とプリペイド金額若しくは累積金額と設定金額の大小に基づいて処理プラグインによる処理の実行が可能か否か判断する。これによっても、機器管理プラグインｃにおいて説明した効果と同様の効果を得ることができる。
【０１０３】
尚、上記実施形態においては、イベントプラグイン１０３及びイベントプラグイン３１１ｂの例として、図７、図１７に示すような例が説明されている。この他、プラグインはシステムの管理者が自由に作成して動作させることができるため、上述したイベントプラグインとは異なる機能を有するものを用いても良い。
【０１０４】
どのような機能であっても、イベントプラグイン１０３及びイベントプラグイン３１１ｂは、フロー構築部１０２若しくはフロー制御部３１１ａがその動作に応じて出力する事前イベントを受け、その事前イベントに係る動作の実行可否を判断する判断部として機能する。
【０１０５】
例えば、上記実施形態において、イベントプラグイン１０３及びイベントプラグイン３１１ｂは、事前イベントに係る動作の実行可否を内部で判断する例が説明されている。この他、アプリケーションサーバ４やファイル管理サーバ５等、外部の機器にアクセスして動作の実行可否を判断しても良い。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施形態に係る文書管理システムの運用形態を示す図である。
【図２】本発明の実施形態に係る情報処理端末のハードウェア構成を模式的に示すブロック図である。
【図３】本発明の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図４】本発明の実施形態に係る画像処理装置の主制御部の構成を示す図である。
【図５】本発明の実施形態に係るフロー情報記憶部に記憶されている情報の例を示す図である。
【図６】本発明の実施形態に係る管理者用端末の機能構成を示すブロック図である。
【図７】本発明の実施形態に係る管理者用端末のイベントプラグインの例を示す図である。
【図８】本発明の実施形態に係るライセンス管理プラグインが保持している情報の例を示す図である。
【図９】本発明の実施形態に係る機器管理プラグインが保持している情報の例を示す図である。
【図１０】本発明の実施形態に係る配信先管理プラグインが保持している情報の例を示す図である。
【図１１】本発明の実施形態に係る課金情報管理プラグインが保持している情報の例を示す図である。
【図１２】本発明の実施形態に係る課金情報管理プラグインが保持している情報の例を示す図である。
【図１３】本発明の実施形態に係るフロー構築動作における処理プラグインの追加時の動作の例を示すフローチャートである。
【図１４】本発明の実施形態に係るフロー構築画面の例を示す図である。
【図１５】本発明の実施形態に係るフロー構築画面の例を示す図である。
【図１６】本発明の実施形態に係る画像処理装置におけるワークフロー実行時の動作の例を示すフローチャートである。
【図１７】本発明の実施形態に係る画像処理装置のイベントプラグインの例を示す図である。
【符号の説明】
【０１０７】
１    管理者用端末
２    クライアント装置
３    画像処理装置
４    アプリケーションサーバ
５    ファイル管理サーバ
１０    ＣＰＵ
２０    ＲＡＭ
３０    ＲＯＭ
４０    ＨＤＤ
５０    Ｉ／Ｆ
６０    ＬＣＤ
７０    操作部
８０    バス
１００    フロー構築制御部
１０１    操作情報取得部
１０２    フロー構築部
１０３    イベントプラグイン
１０３ａ    ライセンス管理プラグイン
１０３ｂ    機器管理プラグイン
１０３ｃ    配信先管理プラグイン
１０３ｄ    課金情報管理プラグイン
１１０    情報入力部
１２０    ネットワークＩ／Ｆ
１３０    表示部
１４０    プラグインＤＢ
３００    コントローラ
３０１    ＡＤＦ
３０２    スキャナユニット
３０３    排紙トレイ
３０４    ディスプレイパネル
３０５    給紙テーブル
３０６    プリントエンジン
３０７    排紙トレイ
３０８    ネットワークＩ／Ｆ
３１１    主制御部
３１１ａ    フロー制御部
３１１ｂ    イベントプラグイン
３１１ｃ    機器管理プラグイン
３１１ｄ    配信先管理プラグイン
３１１ｅ    課金管理プラグイン
３１２    エンジン制御部
３１３    入出力制御部
３１４    画像処理部
３１５    操作表示制御部
３１６    フロー情報記憶部
【図１】
2010128948.tif 000003
【図２】
2010128948.tif 000004
【図３】
2010128948.tif 000005
【図４】
2010128948.tif 000006
【図５】
2010128948.tif 000007
【図６】
2010128948.tif 000008
【図７】
2010128948.tif 000009
【図８】
2010128948.tif 000010
【図９】
2010128948.tif 000011
【図１０】
2010128948.tif 000012
【図１１】
2010128948.tif 000013
【図１２】
2010128948.tif 000014
【図１３】
2010128948.tif 000015
【図１４】
2010128948.tif 000016
【図１５】
2010128948.tif 000017
【図１６】
2010128948.tif 000018
【図１７】
2010128948.tif 000019