(57)【要約】【課題】  複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成する。【解決手段】    複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置において、ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する。そして、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再開時に実行すべき新たな処理を適応させた再構築ワークフロー定義情報を作成することを特徴とする。【選択図】  図１２
2017050812.tif 000002
【特許請求の範囲】
【請求項１】
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置であって、
前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する記憶手段と、
記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記作成手段は、前記ワークフロー定義情報から既に実行された処理を削除し、かつ、再開時に実行すべき新たな処理を追加した再構築ワークフロー定義情報を作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記新たな処理は、再開するワークフローで処理すべきドキュメントを確認するプレビュー処理であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記新たな処理は、再開するワークフローでユーザからログインを受け付けたユーザ情報を認証する処理であることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記再構築条件は、タグ定義、定義値、機能タイプ、状態条件により特定されることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記拡張機能は、特定の機能プロバイダを組み合わせにより特定されることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、スキャナ、プリンタ、通信Ｉ／Ｆ、ユーザＩ／Ｆを備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置の制御方法であって、
前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶手段に記憶する記憶工程と、
記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
請求項８に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
近年、オフィスに設置される情報処理装置、例えば画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能（以降、拡張機能）は、ソフトウェアプログラム（以降、拡張ソフト）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のＭＥＡＰ（登録商標）などがあげられる。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている（例えば、特許文献１）。
【０００３】
特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア（以降、アプリ）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理（以降、ワークフロー）を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
また入力、変換、出力を独立した拡張ソフトで構成し、拡張ソフトの組み合わせで一連の処理を行い、拡張ソフトとパラメータの組み合わせで課金を行うものもある（特許文献2）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】"号公報
【特許文献２】特開２０１４１３４８７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、ワークフローを実行するため、ワークフローの定義ファイルを用いて画像形成装置上の複数の機能を連結するよう構成されている。このため、ワークフローを途中で中断する必要がある場合、改めてワークフローの定義ファイルに従って、最初からワークフローを実行し直す必要があり、ユーザへの負担となっていた。
【０００６】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成できる仕組みを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置であって、前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する記憶手段と、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成できる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムのシステム構成の一例を示す図である。
【図２】ＭＦＰの構成を示すブロック図である。
【図３】サーバの構成を示すブロック図である
【図４】ＭＦＰにおけるソフトウェア構成図である。
【図５】機能プロバイダ情報テーブルの一例を示す図である。
【図６】ワークフロー定義ファイルの具体的な記述例を示す図である。
【図７】ワークフロー定義ファイルの具体的な記述例を示す図である。
【図８】情報処理装置の制御方法を説明するフローチャートである。
【図９】情報処理装置の制御方法を説明するフローチャートである。
【図１０】ワークフローの再構築条件テーブルを示す図である。
【図１１】ワークフロー定義ファイルを示す図である。
【図１２】再開用ワークフローの実行シーケンス例を示す図である。
【図１３】情報処理装置の制御方法を説明するフローチャートである。
【図１４】情報処理装置の制御方法を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１１】
図１は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、ＬＡＮ１１０を介して接続されるＭＦＰ１０１と、ＷＡＮ１２０を介して接続されるサーバ１０２から構成される。ＬＡＮ１１０上の装置とＷＡＮ１２０上の装置はお互いのネットワークを通して、相互に通信可能である。図１は典型的なネットワーク構成の例であり、各装置がＬＡＮ１１０またはＷＡＮ１２０のどちらにあっても構わない。
【００１２】
図１において、ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。サーバ１０２は、ＭＦＰ１０１と連携して各種処理を行うサーバである。例えば、ＭＦＰ１０１から画像データを受信するファイルサーバであったり、ＭＦＰ１０１から処理依頼を受けてＯＣＲ（光学文字認識）処理を実行するＷｅｂアプリケーションサーバであったりする。サーバは一台とは限らず、目的に応じて複数のサーバが存在してもよい。
【００１３】
図２は、図１に示したＭＦＰ１０１の構成を示すブロック図である。
図２において、ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられ、拡張機能に対応づけられた各種のユーザＩ／Ｆを提供する。
【００１４】
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。
【００１５】
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する通信Ｉ／Ｆとして機能する。
【００１６】
図３は、図１に示したサーバ１０２の構成を示すブロック図である。
図３において、ＣＰＵ３１１を含む制御部３１０は、サーバ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
【００１７】
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
【００１８】
ネットワークＩ／Ｆ３１７は、制御部３１０（サーバ１０２）をＷＡＮ１２０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００１９】
図４は、図１に示したＭＦＰ１０１におけるソフトウェア構成図である。
図４において、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラム（ソフトウェア）を、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、後述の処理が実行される。
【００２０】
拡張ソフト管理部４１０は、ＭＦＰ１０１上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図４では、拡張ソフトとしての７つの拡張ソフトが機能プロバイダ４１１〜４１７としてＭＦＰ１０１にインストールされている。
【００２１】
機能プロバイダ４１１〜４１７は、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダ４１１〜４１７は入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトを示すものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
【００２２】
例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」、「プレビュー」、「送信」の３つの機能を１つのアプリで実現する。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の３つの機能プロバイダが必要になる。さらに、それら３つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部４３０が必要になる。
【００２３】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部４２０に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２０経由でワークフロー処理部４３０の指示によって呼び出される。
【００２４】
さらに、機能プロバイダは、機能プロバイダ管理部４２０が規定するルール（以降、機能プロバイダインタフェース）を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類（以降、機能タイプ）ごとに定められている。機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部４３０から呼び出される。
【００２５】
なお、１つの機能プロバイダは目的に応じて、複数種類のインタフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインタフェースを用意することができる。
【００２６】
また、複数種類の機能プロバイダをＭＦＰ１０１にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインタフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
【００２７】
標準スキャンプロバイダ４１１と簡単スキャンプロバイダ４１２は、ともにスキャン機能を提供する機能プロバイダ（機能タイプ＝スキャン）である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインタフェース（スキャンプロバイダインタフェース）を実現する。標準スキャンプロバイダ４１１は、一般的なユーザ向けのスキャン設定画面を持つ。一方、簡単スキャンプロバイダ４１２は、ＭＦＰ１０１の操作に不慣れな初心者向けのスキャン設定画面を持つ。
【００２８】
組込ＯＣＲプロバイダ４１３とＷｅｂＯＣＲプロバイダ４１４は、ともにＯＣＲ機能を提供する機能プロバイダ（機能タイプ＝ＯＣＲ）である。機能タイプが「ＯＣＲ」の機能プロバイダを総称してＯＣＲプロバイダと呼ぶ。ＯＣＲプロバイダは、機能タイプが「ＯＣＲ」の機能プロバイダのために定義された機能プロバイダインタフェース（ＯＣＲプロバイダインタフェース）を実現する。組込ＯＣＲプロバイダ４１３は、ＭＦＰ１０１上で文字認識処理を行うことでＯＣＲ機能を提供する。一方、ＷｅｂＯＣＲプロバイダ４１４は、外部のＷｅｂサーバ（例えばサーバ１０２）が提供する文字認識処理を、Ｗｅｂブラウザー４５０を介して呼び出すことでＯＣＲ機能を提供する。
【００２９】
ＦＴＰ送信プロバイダ４１５は、ＦＴＰ送信機能を提供する機能プロバイダ（機能タイプ＝ファイル送信）である。ＦＴＰ送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインタフェース（ファイル送信プロバイダインタフェース）を実現する。
【００３０】
プレビュープロバイダ４１６は、スキャン機能を提供する機能プロバイダ（機能タイプ＝スキャン）によって生成された画像を、操作部２１９に表示するプレビュー機能を提供する機能プロバイダ（機能タイプ＝プレビュー）である。
認証プロバイダ４１７は、認証機能を提供する機能プロバイダ（機能タイプ＝認証）である。認証プロバイダは、操作部２１９を介してユーザから認証情報を受け付け、認証処理を実施する。
各機能プロバイダは、ＭＦＰ１０１に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した７つの機能プロバイダ４１１〜４１７は一例であり、ＭＦＰ１０１には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
【００３１】
機能プロバイダ管理部４２０は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２０は、機能プロバイダ登録部４２１、機能プロバイダ検索部４２２、機能プロバイダ情報テーブル４２３を持つ。
【００３２】
機能プロバイダ登録部４２１は、各機能プロバイダ４１１〜４１７からの依頼を受けて、機能プロバイダ情報テーブル４２３に、各機能プロバイダ４１１〜４１７の機能タイプや設定可能な値などの情報を登録する。各機能プロバイダ４１１〜４１７はＭＦＰ１０１にインストールされ実行状態になった時に機能プロバイダ登録部４２１に対して自身の登録を行う。
【００３３】
機能プロバイダ検索部４２２は、後述するワークフロー処理部４３０から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル４２３の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部４２２は、検索結果として機能プロバイダを１つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
【００３４】
ワークフロー処理部４３０は、後述するワークフロー定義ファイル４４０、４４１に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。また、ワークフローの中断に伴い、ワークフローの再開可否を判断し、再開用のワークフローを再構築する処理を行う。ここで、ワークフロー定義ファイル４４０とは、複数の拡張機能を組み合わせたワークフロー定義情報に対応する。
【００３５】
再構築条件テーブル４３１は、再開用ワークフロー定義ファイルを作成するための条件を管理するテーブルである。なお、本実施形態では、ワークフローとは複数の機能プロバイダを組み合わせた一連の処理を示すものとする。
【００３６】
ワークフロー定義ファイル４４０は、ワークフロー処理部４３０が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。
ワークフロー定義ファイル４４１は、ワークフロー定義ファイル４４０と定義内容が異なるものである。再開用ワークフロー定義ファイル４４２は、中断されたワークフローを再開するために、再構築ワークフロー定義情報である。なお、図４ではワークフロー定義ファイルの例を２つ定義しているが、数を限定するものではない。
【００３７】
図５は、図４に示した機能プロバイダ情報テーブル４２３の一例を示す図である。機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能プロバイダタイプ、機能プロバイダインタフェース、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
【００３８】
図６は、本実施形態を示すワークフロー定義ファイルの具体的な記述例を示す図である。本実施形態ではワークフロー定義ファイルはＸＭＬ形式のファイルとして表現されているが、ＸＭＬ形式に限定されるものではなく、他の形式のファイルであってもよい。
【００３９】
Ｗｏｒｋｆｌｏｗタグ６０１は、以下の記述がワークフローの定義であることを示している。ＦＰタグ６０２は、Ｗｏｒｋｆｌｏｗタグ６０１の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。ＦＰタグ６０２のｎｏ属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「ｎｏ＝"１"」は最初に実行する機能プロバイダであることを示している。ＦＰタグ６０２のｔｙｐｅ属性は、実行する機能プロバイダの機能タイプを定義しており、「ｔｙｐｅ＝"ＳＣＡＮ"」はスキャンプロバイダであることを示している。Ｃｏｎｄｉｔｉｏｎタグ６０３は、ＦＰタグ６０２の子要素で、スキャンプロバイダの検索条件を定義するためのものである。
【００４０】
Ａｃｔｉｏｎタグ６０４は、ＦＰタグ６０２の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグのｎｏ属性とｍｅｔｈｏｄ属性は、ＦＰタグで定義された機能プロバイダの中での実行順と呼び出すインタフェースを定義している。Ａｃｔｉｏｎタグ６０４は、スキャンプロバイダの実行において「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を１番目に呼び出す旨を定義している。
【００４１】
Ａｃｔｉｏｎタグ６０５は、ＦＰタグ６０２の子要素であり、スキャンプロバイダの実行において「ｄｏＳｃａｎ」を２番目に呼び出す旨を定義している。呼び出す際の設定であるＰａｒａｍｅｔｅｒタグや、「ｄｏＳｃａｎ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを含む。
ＦＰタグ６０６は、ｎｏ属性とｔｙｐｅ属性で、２番目に実行する機能プロバイダがＯＣＲプロバイダであることを定義している。子要素はＦＰタグ６０２と同様の構成である。
【００４２】
ＦＰタグ６０７は、ｎｏ属性とｉｄ属性で、３番目に実行する機能プロバイダがＦＴＰ送信プロバイダであることを定義している。ＦＰタグは機能プロバイダを、ＦＰタグ６０２、６０６のようにｔｙｐｅ属性を使って機能タイプで指定することもできるし、ＦＰタグ６０７のようにｉｄ属性を使って一意に指定することもできる。
【００４３】
図７は、本実施形態におけるワークフロー定義ファイルの具体的な記述例を示す図である。
図７において、Ｗｏｒｋｆｌｏｗタグ７０１は、以下の記述がワークフローの定義であることを示している。ＦＰタグ７０２は、ｎｏ属性とｉｄ属性で、１番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は同様であるため省略する。
【００４４】
図８は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図１に示したＭＦＰ１０１上のワークフローの実行手順である。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
Ｓ８０１において、ユーザからのワークフロー実行指示を、ワークフロー処理部４３０が受け取る。Ｓ８０２において、実行指示に対応するワークフロー定義ファイル４４０を読み込む。
【００４５】
Ｓ８０３において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、ワークフロー定義ファイル４４０に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル４４０には、「機能タイプがスキャンの機能プロバイダ」、「機能タイプがＯＣＲの機能プロバイダ」そして「機能プロバイダＩＤがＳＥＮＤ＿ＦＴＰの機能プロバイダ」が記載されているためのその３つの検索条件を指定して指示する。
【００４６】
Ｓ８０４において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３をもとに検索条件に一致する機能プロバイダを抽出する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ４１１、ＷｅｂＯＣＲプロバイダ４１４そしてＦＴＰ送信プロバイダ４１５が抽出されるものとする。
Ｓ８０５において、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。Ｓ８０６において、ワークフロー処理部４３０は、検索結果の標準スキャンプロバイダ４１１に対して、スキャン指示を行う。Ｓ８０７において、ワークフロー処理部４３０からスキャン指示を受け取った標準スキャンプロバイダ４１１は、指示に従ってスキャンを実行する。
Ｓ８０８において、ワークフロー処理部４３０は、検索結果のＷｅｂＯＣＲプロバイダ４１４に対して、ＯＣＲ指示を行う。Ｓ８０９において、ワークフロー処理部４３０からＯＣＲ指示を受け取ったＷｅｂＯＣＲプロバイダ４１４は、指示に従ってＯＣＲを実行する。なお、Ｓ８１０，Ｓ８１１の処理については後述する。
【００４７】
図９は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図８に示したＳ８０９におけるＷｅｂＯＣＲプロバイダ４１４のＯＣＲ処理の詳細手順である。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
Ｓ９０１では、ＷｅｂＯＣＲプロバイダ４１４はＷｅｂブラウザー４５０を起動する。Ｓ９０２では、Ｗｅｂブラウザー４５０にＯＣＲを行うサーバ１０２上のＷｅｂアプリケーションを呼び出すためのＵＲＬを指定する。その結果、サーバ１０２からはＷｅｂブラウザーに表示するためのＨＴＭＬデータやスクリプトそして画像データから構成されるコンテンツを受け取る。このコンテンツはＯＣＲ処理中をユーザに示すためのコンテンツである。
Ｓ９０３では、Ｗｅｂブラウザー４５０はＳ９０２で受け取ったコンテンツをレンダリングし、スクリプトを実行して、コンテンツの表示を行う。
【００４８】
Ｓ９０４では、Ｗｅｂブラウザー４５０を介して、ワークフロー処理部４３０から受け取るスキャン機能プロバイダ４１１が出力した画像を、サーバ１０２に送信する。サーバ１０２では受け取った画像に対してＯＣＲ処理を行い。ＯＣＲ結果をＷｅｂブラウザー４５０に応答する。Ｓ９０５では、Ｗｅｂブラウザー４５０が取得したＯＣＲ結果をＷｅｂＯＣＲプロバイダ４１４が取得し、ワークフロー処理部４３０に渡す。以上がＷｅｂＯＣＲプロバイダ４１４のＯＣＲ処理である。
ここで、図８の処理の説明に戻り、Ｓ８１０において、ワークフロー処理部４３０は、検索結果のＦＴＰ送信プロバイダ４１５に対して、スキャン画像とＯＣＲ結果のＦＴＰ送信指示を行う。Ｓ８１１において、ワークフロー処理部４３０からＦＴＰ送信指示を受け取ったＦＴＰ送信プロバイダ４１５は、指示に従ってＦＴＰ送信を実行する。以上のように説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。
【００４９】
図１０は、図１に示したＭＦＰ１０１上のワークフロー処理部４３０において管理される、ワークフローの再構築条件テーブル４３１を示す図である。
図１０において、列１００１は、ワークフロー定義ファイルにおけるタグを示す。列１００２は、列１００１のタグ定義に対する定義値を示す。列１００３は機能タイプで、タグ定義１００１及び定義値１００２に対して、適用可能な機能プロバイダを示す。状態条件１００４は、中断時の状態が定義され、この条件に満たさない場合に列１００３の機能タイプが適用可能であることを示す。
【００５０】
例えば、Ｉｎｐｕｔタグにおいて、ｔｙｐｅ＝Ｄｏｃｕｍｅｎｔが存在するケースでは、このタグが定義されたＦＰタグの処理を実行するためには、Ｄｏｃｕｍｅｎｔの入力が必要であることを示す。このＦＰタグの実行以前よりワークフローを再開する場合、Ｄｏｃｕｍｅｎｔを確認するためのＰｒｅｖｉｅｗの機能プロバイダを実行可能であることを示す。
【００５１】
また、Ｉｎｐｕｔタグにおいて、ｔｙｐe＝Ａｕｔｈが存在するケースでは、このタグが定義されたＦＰタグの処理を実行するために、Ａｕｔｈの入力が必要であることを示す。Ａｕｔｈの入力は、認証情報の入力であり、認証情報が中断時に記憶されていない場合は、認証情報を入力するためのＦＰ処理であるＡｕｔｈの機能プロバイダを再開時に実行する必要があることを示す。
【００５２】
図１１は、本実施形態において中断されたワークフローを再開するために、再構築された再開用ワークフロー定義ファイル４４２を示す図である。
図１１において、Ｗｏｒｋｆｌｏｗタグ１１０１は、Ｗｏｒｋｆｌｏｗタグ６０１同様、以下の記述がワークフローの定義であることを示している。ＲＥＳＵＭＥタグ１００２は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Ｏｕｔｐｕｔタグ１１０２は、ワークフローの中断以前に既に処理され、出力された情報のｔｙｐｅと、識別子であるｉｄ、さらにその記憶先であるｓｒｃ属性とその値を示している。ＦＰタグ１１０４は、図６で示されるＦＰタグ６０２と同様である。
【００５３】
図１２は、本実施形態におけるＭＦＰ１０１上の再開用ワークフローの実行の流れを示したシーケンス例を示す図である。
図１２において、Ｓ１２０１において、ユーザからのワークフロー実行指示を、ワークフロー処理部４３０が受け取る。Ｓ１２０２において、実行指示に対応する再開用ワークフロー定義ファイル４４２を読み込む。
【００５４】
Ｓ１２０３において、中断時に記憶された中断データを読み込む。本実施形態においては、再開用ワークフロー定義ファイル４４２に記載れている、ＯｕｔｐｕｔタグのＤｏｃｕｍｅｎｔ、及びＳｔｒｉｎｇそれぞれのデータの記憶先を示す情報ｓｒｃから読み込む。
【００５５】
Ｓ１２０４において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、再開用ワークフロー定義ファイル４４２に記載されている機能プロバイダの検索を指示する。再開用ワークフロー定義ファイル４４２には、「機能タイプがプレビューの機能プロバイダ」、「機能プロバイダＩＤがＳＥＮＤ＿ＦＴＰの機能プロバイダ」が記載されているためのその２つの検索条件を指定して指示する。
【００５６】
Ｓ１２０５において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３をもとに検索条件に一致する機能プロバイダを抽出する。本例では、プレビュープロバイダ４１６、ＦＴＰ送信プロバイダ４１５が抽出されるものとする。Ｓ１２０６において、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。Ｓ１２０７において、ワークフロー処理部４３０は、検索結果のプレビュープロバイダ４１６に対して、プレビュー指示を行う。
Ｓ１２０８において、ワークフロー処理部４３０からプレビュー指示を受け取ったプレビュープロバイダ４１６は、指示に従ってプレビューを実行する。Ｓ１２０９において、ワークフロー処理部４３０は、検索結果のＦＴＰ送信プロバイダ４１５に対して、ＦＴＰ送信指示を行う。Ｓ１２１０において、ワークフロー処理部４３０からＦＴＰ送信指示を受け取ったＦＴＰ送信プロバイダ４１５は、指示に従ってＦＴＰ送信を実行する。以上説明した手順により、中断されたワークフローの再開を、複数の機能プロバイダを組み合わせて一連の処理として実行する。
【００５７】
図１３は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図４に示したワークフロー処理部４３０におけるワークフローの中断処理の一連に対応する。本例は、ワークフロー定義ファイル４４０に従ったワークフローをワークフロー処理部４３０が実行し、ＦＴＰ送信プロバイダによる処理実行に中断が発生した場合を例として説明する。
なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
【００５８】
Ｓ１３０１はワークフローの中断検知ステップであり、ワークフローの中断を検知する。中断条件としては、ユーザがＭＦＰ１０１から明示的にログアウトを行うことによるログアウトによる中断、ＭＦＰ１０１のスリープ、サーバへの通信エラー、または図６に示したＦＰが提供する中止ボタンなど様々であり、中断方法は限定しない。本実施形態では、ＦＴＰサーバへの通信エラーが発生したと仮定し、エラー発生後に操作部２１９を介してユーザによる中断ボタンがＦＰのＵＩから指示されたものとする。
【００５９】
Ｓ１３０２は、中断可否判断ステップである。ワークフローの工程において、全体の処理がキャンセルできない状態である場合は、中断不可と判断する。例えば、ワークフローにおける処理工程が最終工程でありキャンセルできない場合が該当する。最終工程が印刷工程であり、最終頁の印刷が実施中である場合などが該当する。
また、ワークフローにおいて、既に処理された各処理の状態を保持できない場合も中断不可と判断される。状態が保持されない場合、ワークフローの再開は未開始状態と同じ状態になるため、中断不可と判断される。中断が不可と判断された場合は、Ｓ１３０７のフローキャンセル処理ステップに遷移し、フローのキャンセルを実施する。本実施形態では、ドキュメント、ＯＣＲの結果をサーバ１０２に送信しておらず、それらデータを状態として記憶できるため、中断可と判断する。
【００６０】
Ｓ１３０３は、状態記憶ステップであり、中断時において出力されている情報を記憶する。具体的には、図６に示した各ＦＰのＯｕｔｐｕｔをＨＤＤ２１４に記憶する。本実施形態においては、現在実行中のＦＰがＳＥＮＤ＿ＦＴＰであり、直前の処理はＯＣＲである。そのため、ＯＣＲが完了した時点でのＯｕｔｐｕｔであるＤｏｃｕｍｅｎｔのｆｏｏ、及びＳｔｒｉｎｇのｂａｒを中断状態として記憶する。
【００６１】
Ｓ１３０４は、フロー定義ファイル再構築ステップである。本ステップでは、実行中のワークフロー定義ファイル４４０と、Ｓ１３０３の状態記憶ステップにおいて記憶した状態とを分析し、再開用のフローを構築する。本実施形態においては、本ステップを実行した結果、再開用ワークフロー定義ファイル４４２が生成される。ワークフローの再構築が失敗した場合、つまりエラーが発生した場合は、Ｓ１３０７に遷移する。Ｓ１３０５は、フロー定義ファイル有効化ステップである。ワークフロー処理部４３０は、再開用ワークフロー定義ファイル４４２を実行可能な状態にする。Ｓ１３０６は、中断完了処理で、現在実行中のフローをキャンセルし一連の処理を終了する。Ｓ１３０７は、フローキャンセル処理であり、現在実行中のフローをキャンセルし、一連の処理を完了する。
【００６２】
本実施形態では、ワークフローの中断及び再開用ワークフロー定義ファイル４４２の作成を、ワークフローの中断時に実施する例を記載しているが、Ｓ１３０４からの再構築処理は、ワークフローの中断時ではなく、再開時または別の機会に実施する構成でもかまわない。
【００６３】
図１４は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、本発明を実施したＭＦＰ１０１のワークフロー処理部４３０における、再開用ワークフロー定義ファイル４４２を作成する一連処理である。本フローは、図１３のおけるＳ１３０４のフロー定義ファイル再構築ステップの詳細手順に対応する。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
【００６４】
Ｓ１４０１は、ワークフロー定義ファイル複製ステップである。本例では、中断対象となるワークフローが、ワークフロー定義ファイル４４０に定義されたワークフローであるため、ワークフロー定義ファイル４４０を複製する。
【００６５】
Ｓ１４０２は、ワークフロー定義ファイルの属性変更ステップである。Ｗｏｒｋｆｌｏｗタグ１１０１のｉｄ属性及びｎａｍｅ属性に関する値を変更する。さらに、既に実行済みであるスキャン及びＯＣＲプロバイダの処理を削除し、未実施もしくは未完了の処理を残す。Ｓ１４０３は、再構築条件テーブル参照ステップである。
【００６６】
Ｓ１４０４は、中断状況確認ステップである。Ｓ１３０３にて記憶された中断状況を参照する。さらに、再開用ワークフロー定義ファイル４４２に中断状況であるＲＥＳＵＭＥタグと、その状況を追記する。
【００６７】
Ｓ１４０５及びＳ１４０８は、再構築条件判断ステップであり、本ステップでは再構築条件テーブル４３１に定義された条件を判断する。本条件判断は、再構築条件テーブル４３１に定義された条件に応じてそれぞれ判断ステップが設けられる。
本実施形態では、再構築条件テーブル４３１には２つの条件が定義されているため、２つの判断ステップが設けられている。Ｓ１４０５は、未実施の処理において、ＩｎｐｕｔにＤｏｃｕｍｅｎｔが存在するか否かを判断し、Ｄｏｃｕｍｅｎｔが含まれるか否かを確認する。Ｄｏｃｕｍｅｎｔが含まれると判断した場合は、Ｓ１４０６に遷移し、含まれていないと判断した場合はＳ１４０７に遷移する。本実施形態では、スキャンプロバイダにおけるスキャンが完了しており、Ｄｏｃｕｍｅｎｔの状態情報として中断状況が存在するため、Ｓ１４０６に遷移する。
【００６８】
Ｓ１４０６は、プレビュープロバイダ処理追加ステップである。具体的には、プレビュープロバイダ実行のために、再開用ワークフローにＦＰタグ１１０４のプレビュープロバイダによるプレビュー処理を追加する。
【００６９】
Ｓ１４０７は、未実施の処理において、ＩｎｐｕｔにＡｕｔｈが存在するか否かを判断する。ＩｎｐｕｔにＡｕｔｈが含まれていると判断した場合はＳ１４０８の状態確認ステップに遷移する。Ｓ１４０８は、中断状況確認ステップであり、認証情報が中断状況として記憶されているか否かを判断する。記憶されていると判断した場合は、該Ｉｎｐｕｔタグに対する入力が存在するため、ログインするユーザ情報を認証するための認証プロバイダの処理は追加せず、Ｓ１４１０に遷移する。
一方、記憶されていないと判断した場合は、認証プロバイダ４１７による処理が必要であると判断し、Ｓ１４０９に遷移する。
【００７０】
Ｓ１４０９は、認証プロバイダ４１７の処理を再開用ワークフロー定義ファイルに追加するステップであり、再開用ワークフローに認証プロバイダの処理を追加する。本実施形態では、ＩｎｐｕｔにＡｕｔｈを含む処理が存在しないため、再開用ワークフロー定義ファイル４４２には認証プロバイダ４１７による処理は追加されない。
【００７１】
Ｓ１４１０は、ワークフローのＶａｌｉｄａｔｅステップである。本ステップでは再構築された再開用ワークフロー定義ファイル４４２の、Ｏｕｔｐｕｔ／Ｉｎｐｕｔそれぞれの情報を比較し、矛盾が生じないことを検証する。それぞれのＯｕｔｐｕｔ／Ｉｎｐｕｔが存在し、フローが実行できる状態であれば再構築を終了し、フローが実行できなければＳ１４１１に遷移する。Ｓ１４１１では、エラー表示ステップであり、操作部２１９にエラーが発生した旨を表示してワークフローをキャンセルするためＳ１３０７に遷移して終了する。
【００７２】
本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明した。しかし、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
【００７３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７４】
１０１  ＭＦＰ
【図１】
2017050812.tif 000003
【図２】
2017050812.tif 000004
【図３】
2017050812.tif 000005
【図４】
2017050812.tif 000006
【図５】
2017050812.tif 000007
【図６】
2017050812.tif 000008
【図７】
2017050812.tif 000009
【図８】
2017050812.tif 000010
【図９】
2017050812.tif 000011
【図１０】
2017050812.tif 000012
【図１１】
2017050812.tif 000013
【図１２】
2017050812.tif 000014
【図１３】
2017050812.tif 000015
【図１４】
2017050812.tif 000016