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