JP2017158000A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents
情報処理装置、情報処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2017158000A JP2017158000A JP2016038735A JP2016038735A JP2017158000A JP 2017158000 A JP2017158000 A JP 2017158000A JP 2016038735 A JP2016038735 A JP 2016038735A JP 2016038735 A JP2016038735 A JP 2016038735A JP 2017158000 A JP2017158000 A JP 2017158000A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- definition file
- provider
- function
- workflow definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimiles In General (AREA)
Abstract
【課題】 実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフローを再構築する。
【解決手段】
情報処理装置において、実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断したジョブの中断状態とワークフロー再構築条件とを解析して、所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する。そして、当該決定に従い、構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する構成を特徴とする。
【選択図】 図19
【解決手段】
情報処理装置において、実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断したジョブの中断状態とワークフロー再構築条件とを解析して、所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する。そして、当該決定に従い、構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する構成を特徴とする。
【選択図】 図19
Description
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
近年、オフィスに設置される情報処理装置である画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能(以降、拡張機能)は、ソフトウェアプログラム(以降、拡張ソフト)によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のMEAP(登録商標)などがあげられる。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。
特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア(以降、アプリ)と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理(以降、ワークフロー)を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
また入力、変換、出力を独立した拡張ソフトで構成し、拡張ソフトの組み合わせで一連の処理を行い、拡張ソフトとパラメータの組み合わせで課金を行うものもある(特許文献2)。
また入力、変換、出力を独立した拡張ソフトで構成し、拡張ソフトの組み合わせで一連の処理を行い、拡張ソフトとパラメータの組み合わせで課金を行うものもある(特許文献2)。
従来技術では、ワークフローを実行するため、ワークフローの定義ファイルを用いて画像形成装置上の複数の機能を連結するよう構成されている。ここで、ワークフローを途中で中断する要因が発生した場合、改めてワークフローの定義ファイルを構築して、最初からワークフローを実行し直す必要があった。
また、その際、ワークフローに対してユーザによる操作指示を受け付ける工程が必要としない場合でも、具体的には、いずれかのプロバイダの工程を実行する際に、操作指示を受け付ける工程を含めないと正常なワークフロー定義ファイルを再構築できず、ワークフロー再開時に、ユーザによる操作負担を軽減できていなかった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフローを再構築できる仕組みを提供することである。
また、その際、ワークフローに対してユーザによる操作指示を受け付ける工程が必要としない場合でも、具体的には、いずれかのプロバイダの工程を実行する際に、操作指示を受け付ける工程を含めないと正常なワークフロー定義ファイルを再構築できず、ワークフロー再開時に、ユーザによる操作負担を軽減できていなかった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフローを再構築できる仕組みを提供することである。
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
情報処理装置であって、所定の機能プロバイダを組み合わせたワークフロー定義ファイルに従い所定のジョブを実行する実行手段と、前記実行手段が実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断する中断手段と、前記中断手段が中断したジョブの中断状態とワークフロー再構築条件とを解析して、前記所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、前記所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する決定手段と、前記決定手段による決定に従い、前記構築手段が構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する再構築手段と、を備えることを特徴とする。
情報処理装置であって、所定の機能プロバイダを組み合わせたワークフロー定義ファイルに従い所定のジョブを実行する実行手段と、前記実行手段が実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断する中断手段と、前記中断手段が中断したジョブの中断状態とワークフロー再構築条件とを解析して、前記所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、前記所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する決定手段と、前記決定手段による決定に従い、前記構築手段が構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する再構築手段と、を備えることを特徴とする。
本発明によれば、実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフローを再構築できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す情報処理システムの構成の一例を示す図である。本システムは、LAN110を介して接続される情報処理装置であるMFP101と、WAN120を介して接続されるサーバ102から構成される。LAN110上の装置とWAN120上の装置はお互いのネットワークを通して、相互に通信可能である。図1は典型的なネットワーク構成の例であり、各装置がLAN110またはWAN120のどちらにあっても構わない。
図1において、MFP101は、後述するシーケンスに示すようにスキャナ、プリンタを用いて所定のワークフローを実行可能な画像形成装置である。加えて、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。サーバ102は、MFP101と連携して各種処理を行うサーバである。例えば、MFP101から画像データを受信するファイルサーバであったり、MFP101から処理依頼を受けてOCR(光学文字認識)処理を実行するWebアプリケーションサーバであったりする。サーバは一台とは限らず、目的に応じて複数のサーバが存在してもよい。
図2は、図1に示したMFP101の構成を示すブロック図である。
図2において、CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
図2において、CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタI/F216は、プリンタ220と制御部210とを接続する。プリンタ220で印刷すべき画像データはプリンタI/F216を介して制御部210からプリンタ220に転送され、プリンタ220において記録媒体上に印刷される。
スキャナI/F217は、スキャナ221と制御部210とを接続する。スキャナ221は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部210に入力する。ネットワークI/F218は、制御部210(MFP101)をLAN110に接続する。ネットワークI/F218は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
図3は、図1に示したサーバ102の構成を示すブロック図である。
図3において、CPU311を含む制御部310は、サーバ102全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
図3において、CPU311を含む制御部310は、サーバ102全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種のプログラムやデータを記憶する。
表示部I/F315は、表示部318と制御部310とを接続する。キーボードI/F316は、キーボード319と制御部310とを接続する。CPU311は、キーボード319を介したユーザからの指示を認識し、認識した指示に応じて表示部318に表示する画面を遷移させる。
ネットワークI/F317は、制御部310(サーバ102)をWAN120に接続する。ネットワークI/F317は、LAN110上またはWAN120上の他の装置との間で各種情報を送受信する。
図4は、図1に示したMFP101におけるソフトウェア構成図である。
図4において、MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで、後述の処理が実行される。
図4において、MFP101のHDD214に記憶されているプログラム(ソフトウェア)を、CPU211がRAM213に読み出し、解析、実行することで、後述の処理が実行される。
拡張ソフト管理部410は、MFP101上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図4の例では、拡張ソフトとして411〜417の7つの拡張ソフトが機能プロバイダとしてMFP101にインストールされている。
ここで、各機能プロバイダは、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトを示すものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」「プレビュー」「送信」の3つの機能を1つのアプリで実現する。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
また、アプリは、MFP101が元々備えている機能(例えばコピー機能やファクス送信機能)を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。
一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
さらに、機能プロバイダは、機能プロバイダ管理部420が規定するルール(以降、機能プロバイダインタフェース)を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。
ここで、機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類(以降、機能タイプ)ごとに定められている。また、機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部430から呼び出される。
ここで、機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類(以降、機能タイプ)ごとに定められている。また、機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部430から呼び出される。
なお、1つの機能プロバイダは目的に応じて、複数種類のインタフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインタフェースを用意することができる。
また、複数種類の機能プロバイダをMFP101にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインタフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
拡張ソフト管理部410において、標準スキャンプロバイダ411と簡単スキャンプロバイダ412は、ともにスキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。
スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインタフェース(スキャンプロバイダインタフェース)を実現する。標準スキャンプロバイダ411は、一般的なユーザ向けのスキャン設定画面を持つ。
一方、簡単スキャンプロバイダ412は、MFP101の操作に不慣れな初心者向けのスキャン設定画面を持つ。
スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインタフェース(スキャンプロバイダインタフェース)を実現する。標準スキャンプロバイダ411は、一般的なユーザ向けのスキャン設定画面を持つ。
一方、簡単スキャンプロバイダ412は、MFP101の操作に不慣れな初心者向けのスキャン設定画面を持つ。
組込OCRプロバイダ413とWebOCRプロバイダ414は、ともにOCR機能を提供する機能プロバイダ(機能タイプ=OCR)である。機能タイプが「OCR」の機能プロバイダを総称してOCRプロバイダと呼ぶ。OCRプロバイダは、機能タイプが「OCR」の機能プロバイダのために定義された機能プロバイダインタフェース(OCRプロバイダインタフェース)を実現する。組込OCRプロバイダ413は、MFP101上で文字認識処理を行うことでOCR機能を提供する。
一方、WebOCRプロバイダ414は、外部のWebサーバ(例えばサーバ102)が提供する文字認識処理を、Webブラウザー450を介して呼び出すことでOCR機能を提供する。
一方、WebOCRプロバイダ414は、外部のWebサーバ(例えばサーバ102)が提供する文字認識処理を、Webブラウザー450を介して呼び出すことでOCR機能を提供する。
FTP送信プロバイダ415は、送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。FTP送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインタフェース(ファイル送信プロバイダインタフェース)を実現する。
プレビュープロバイダ416は、スキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)によって生成された画像を、操作部219に表示するプレビュー機能を提供する機能プロバイダ(機能タイプ=プレビュー)である。プレビュープロバイダは、機能タイプが「プレビュー」の機能プロバイダのために定義された機能プロバイダインタフェース(プレビュープロバイダインタフェース)を実現する。
認証プロバイダ417は、認証機能を提供する機能プロバイダ(機能タイプ=認証)である。認証プロバイダは、操作部219を介してユーザから認証情報を受け付け、認証処理を実施する。認証プロバイダは、機能タイプが「認証」の機能プロバイダのために定義された機能プロバイダインタフェース(認証プロバイダインタフェース)を実現する。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した411〜417の7つの機能プロバイダは一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した411〜417の7つの機能プロバイダは一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ検索部422、機能プロバイダ情報テーブル423、及び機能プロバイダI/F情報テーブル424を備える。
機能プロバイダ登録部421は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル423に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。各機能プロバイダはMFP101にインストールされ実行状態になった時に機能プロバイダ登録部421に対して自身の登録を行う。
機能プロバイダ検索部422は、後述するワークフロー処理部430から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル423の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部422は、検索結果として機能プロバイダを1つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能タイプ、機能プロバイダインタフェース、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
機能プロバイダI/F情報テーブル424は、機能プロバイダの機能タイプID、機能タイプの名称、機能プロバイダインタフェース、設定インタフェース、実行インタフェースに関する情報を保持する。さらに、機能プロバイダI/F情報テーブル424は、共通インタフェースなど、機能プロバイダインタフェースに関する情報を保持する。
ワークフロー処理部430は、後述するワークフロー定義ファイル440、441に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。また、ワークフロー処理部430は、ワークフローの中断に伴い、ワークフローの再開可否を判断し、再開用のワークフローを再構築する処理を行う。さらに、ワークフロー処理部430は、中断されたワークフローを再開するために、UIの使用が必要か否かを判断し、不要であると判断された場合、UIを使用しないでワークフローの再開処理を行うためのUIレスワークフローを再構築する。
再構築条件テーブル431は、再開用ワークフロー定義ファイルを作成するための条件を管理するテーブルである。なお、本実施形態では、ワークフローとは複数の機能プロバイダを組み合わせた一連の処理を示すものとする。
UIレス実行管理部433は、該UIレスワークフローの実行を開始するための処理を行う。本実施形態では、Webブラウザー450を介してUIレスのワークフロー実行を受け付けるためのURLを表示し、該URLにユーザからアクセスがあった場合にUIレスのワークフローを実行する。また、他の実施形態においてはWebブラウザーではなく、ユーザがMFP101にログインした際に、バックグラウンドで該UIレスワークフローを実行するか否かの入力を求め、ユーザの指示に応じてバックグランドでの処理を実施する。
ワークフロー定義ファイル440は、ワークフロー処理部430が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。
ワークフロー定義ファイル441は、ワークフロー定義ファイル440と定義内容が異なるものである。
再開用ワークフロー定義ファイル442は、中断されたワークフローを再開するために、再構築されたワークフロー定義ファイルである。
ワークフロー定義ファイル441は、ワークフロー定義ファイル440と定義内容が異なるものである。
再開用ワークフロー定義ファイル442は、中断されたワークフローを再開するために、再構築されたワークフロー定義ファイルである。
UIレスワークフロー定義ファイル443は、中断されたワークフローを再開するために再構築されたワークフロー定義ファイルであり、UIを介さないで再開処理を実施するためのフロー定義ファイルである。なお、図4ではワークフロー定義ファイルの例を複数定義しているが、数を限定するものではない。
図5は、図4に示した機能プロバイダ情報テーブル423及び機能プロバイダI/F情報テーブル424の一例を示す図である。
図5において、機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能プロバイダタイプ、機能プロバイダインタフェースに関する情報を保持する。機能プロバイダ情報テーブル423は、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
図5において、機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能プロバイダタイプ、機能プロバイダインタフェースに関する情報を保持する。機能プロバイダ情報テーブル423は、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
機能プロバイダI/F情報テーブル424は、機能プロバイダの機能タイプ、機能タイプの名称、機能プロバイダインタフェース、設定インタフェース、実行インタフェース、共通インタフェースなど、機能プロバイダインタフェースに関する情報を保持する。設定インタフェースは機能プロバイダの持つ設定画面を呼び出すための機能プロバイダインタフェースである。実行インタフェースは機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインタフェースである。共通インタフェースは、各機能プロバイダに共通して定義されているインタフェースである。本実施形態では、共通インタフェースとして、UIレスでActionが実行可能か否かを判断するためのisInteractionが定義されている。
図6は、本実施形態を示す情報処理装置で表示されるUI画面を示す図である。本例は、ワークフローを実行するための、MFP101の操作部219に表示されるUIの例である。
図6において、601はワークフロー定義ファイル440に定義されたワークフローを実行するためのボタンであり、602は再開用ワークフロー定義ファイル442に定義されたワークフローを実行するためのボタンである。603はワークフロー定義ファイル441に定義されたワークフローを実行するためのボタンである。ユーザによって各ボタンが押下されることにより、ワークフロー処理部430により各ワークフローが実行される。
図6において、601はワークフロー定義ファイル440に定義されたワークフローを実行するためのボタンであり、602は再開用ワークフロー定義ファイル442に定義されたワークフローを実行するためのボタンである。603はワークフロー定義ファイル441に定義されたワークフローを実行するためのボタンである。ユーザによって各ボタンが押下されることにより、ワークフロー処理部430により各ワークフローが実行される。
図7は、本実施形態を示す情報処理装置で解析されるワーフロー定義ファイルを説明する図である。本例は、図4に示したワークフロー定義ファイル440の内容を記述した例である。本実施形態ではワークフロー定義ファイルはXML形式のファイルとして表現されているが、XML形式に限定されるものではなく、他の形式のファイルであってもよい。
図7において、Workflowタグ701は、以下の記述がワークフローの定義であることを示している。FP702タグは、Workflowタグ701の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。FPタグ702のno属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「no="1"」は最初に実行する機能プロバイダであることを示している。FPタグ702のtype属性は、実行する機能プロバイダの機能タイプを定義しており、「type="SCAN"」はスキャンプロバイダであることを示している。Conditionタグ703は、FPタグ702の子要素で、スキャンプロバイダの検索条件を定義するためのものである。
Actionタグ704は、FPタグ702の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Actionタグのno属性とmethod属性は、FPタグで定義された機能プロバイダの中での実行順と呼び出すインタフェースを定義している。Actionタグ704は、スキャンプロバイダの実行において「showSettingUI」を1番目に呼び出す旨を定義している。
Actionタグ705は、FPタグ702の子要素であり、スキャンプロバイダの実行において「doScan」を2番目に呼び出す旨を定義している。呼び出す際の設定であるParameterタグや、「doScan」を実行した結果の出力を定義するOutputタグを含む。FP706タグは、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。子要素はFPタグ702と同様の構成である。
FP707タグは、no属性とid属性で、3番目に実行する機能プロバイダがFTP送信プロバイダであることを定義している。FPタグは機能プロバイダを、FPタグ702、706のようにtype属性を使って機能タイプで指定することもできるし、FPタグ707のようにid属性を使って一意に指定することもできる。
図8は、本実施形態を示す情報処理装置で解析されるワークフロー定義ファイルを示す図である。
図8において、Workflowタグ801は、以下の記述がワークフローの定義であることを示している。 FP802タグは、no属性とid属性で、1番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は同様であるため省略する。
図8において、Workflowタグ801は、以下の記述がワークフローの定義であることを示している。 FP802タグは、no属性とid属性で、1番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は同様であるため省略する。
図9は、本実施形態を示す機能プロバイダによるワークフローを示す図である。以下、図1に示したMFP101上のワークフローの実行の流れの一例を説明する。なお、ワークフロー定義ファイル440には図7で説明した内容が記述されているものとして、以下のステップの説明を行う。
図9においては、S901において、図6に示すUI画面を用いて、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S902において、ワークフロー処理部430が実行指示に対応するワークフロー定義ファイル440を読み込む。
図9においては、S901において、図6に示すUI画面を用いて、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S902において、ワークフロー処理部430が実行指示に対応するワークフロー定義ファイル440を読み込む。
S903において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、ワークフロー定義ファイル440に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル440には、「機能タイプがスキャンの機能プロバイダ」「機能タイプがOCRの機能プロバイダ」、そして「機能タイプが送信の機能プロバイダ」が記載されているため、その3つの検索条件を指定して指示する。
S904において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ411、WebOCRプロバイダ414そしてFTP送信プロバイダ415が抽出されるものとする。
S905において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S906において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順(Actionタグのno属性)に従って、標準スキャンプロバイダ411の設定インタフェースを呼び出す。
S905において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S906において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順(Actionタグのno属性)に従って、標準スキャンプロバイダ411の設定インタフェースを呼び出す。
S907において、ワークフロー処理部430から設定インタフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン設定画面を表示する。S908において、標準スキャンプロバイダ411は、スキャン設定の結果をワークフロー処理部430に通知する。
S909において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、FTP送信プロバイダ415の設定インタフェースを呼び出す。
S910において、ワークフロー処理部430から設定インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信設定画面を表示する。S911において、FTP送信プロバイダ415は、送信設定の結果をワークフロー処理部430に通知する。
S912において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、標準スキャンプロバイダ411の実行インタフェースを呼び出す。
S913において、ワークフロー処理部430から実行インタフェースの呼び出しを受けた標準スキャンプロバイダ411は、指示に従ってスキャン処理を実行する。S914において、標準スキャンプロバイダ411は、スキャン処理の結果をワークフロー処理部430に通知する。
S915において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、WebOCRプロバイダ414の実行インタフェースを呼び出す。
S916において、ワークフロー処理部430から実行インタフェースの呼び出しを受けたWebOCRプロバイダ414は、指示に従ってOCR処理を実行する。S917において、WebOCRプロバイダ414は、OCR処理の結果をワークフロー処理部430に通知する。
S918において、ワークフロー処理部430は、ワークフロー定義ファイル440に定義されている呼び出し順に従って、FTP送信プロバイダ415の実行インタフェースを呼び出す。
S919において、ワークフロー処理部430から実行インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信処理を実行する。S920において、FTP送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。以上のように、前述の実施例において説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。
図10は、本実施形態におけるMFP101上のワークフロー処理部430において管理される、ワークフローの再構築条件テーブル431の例を示す図である。
図10において、列1001は、ワークフロー定義ファイルにおけるタグを示す。列1002は、列1001のタグ定義に対する定義値を示す。機能タイプは、列1001のタグ定義及び列1002の定義値に対して、適用可能な機能プロバイダを示す。状態条件1003は、中断時の状態が定義され、この条件に満たさない場合に列1002の定義値の機能タイプが適用可能であることを示す。
図10において、列1001は、ワークフロー定義ファイルにおけるタグを示す。列1002は、列1001のタグ定義に対する定義値を示す。機能タイプは、列1001のタグ定義及び列1002の定義値に対して、適用可能な機能プロバイダを示す。状態条件1003は、中断時の状態が定義され、この条件に満たさない場合に列1002の定義値の機能タイプが適用可能であることを示す。
例えば、Inputタグにおいて、type=Documentが存在するケースでは、このタグが定義されたFPタグの処理を実行するためには、Documentの入力が必要であることを示す。このFPタグの実行以前よりワークフローを再開する場合、Documentを確認するためのPreviewの機能プロバイダを実行可能であることを示す。
また、Inputタグにおいて、type=Authが存在するケースでは、このタグが定義されたFPタグの処理を実行するために、Authの入力が必要であることを示す。Authの入力は、認証情報の入力であり、認証情報が中断時に記憶されていない場合は、認証情報を入力するためのFP処理であるAuthの機能プロバイダを再開時に実行する必要があることを示す。
図11は、本実施形態を示す情報処理装置で解析される再開用ワークフロー定義ファイル442の例を示す図である。本例は、中断されたワークフローを再開するために、再構築された再開用ワークフロー定義ファイル442の例である。
図11において、Workflowタグ1101は、Workflowタグ701同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1102は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1103は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。
図11において、Workflowタグ1101は、Workflowタグ701同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1102は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1103は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。
resumemethodタグ1104は、再開方法に関する情報が定義される。本タグでは、UIレスで実行可能かどうかを識別するためのtype属性と、UIレスで実行可能である場合に、開始手段であるurl属性が記述される。本例においては、type属性がUiであるため、本ワークフローに実行にはUI表示が必要であることが示されている。url属性については、UIレス実行でないため、値は定義されない。
RelatedWFタグ1105は、関連するワークフロー定義ファイルに関する情報が定義される。同じ中断処理を再開するために、UIレスによるワークフロー定義ファイルが生成される場合は、該当するUIレスワークフロー定義ファイルの識別子が記述される。FPタグ1106は、図7で示されるFPタグ702と同様である。
図12は、本実施形態を示す情報処理装置における再開用ワークフローの実行の流れを示す図である。本例は、図1に示したMFP101上の再開用ワークフローの実行の流れを示したシーケンス例である。
図12においては、S1201において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。具体的には、操作部219に表示されている、再開用ワークフロー定義ファイル442に定義されたワークフローを実行するためのボタン602がユーザから押下される。これによって、操作部I/F215を介してワークフロー処理部430に対してワークフローの実行指示が行われ、本フローが開始される。
図12においては、S1201において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。具体的には、操作部219に表示されている、再開用ワークフロー定義ファイル442に定義されたワークフローを実行するためのボタン602がユーザから押下される。これによって、操作部I/F215を介してワークフロー処理部430に対してワークフローの実行指示が行われ、本フローが開始される。
S1202において、ワークフロー処理部430が実行指示に対応する再開用ワークフロー定義ファイル442を読み込む。S1203において、ワークフロー処理部430が中断時に記憶されたデータを読み込む。本実施形態においては、再開用ワークフロー定義ファイル442に記載れている、OutputタグのDocument、及びStringそれぞれのデータの記憶先を示す情報srcから読み込む。
S1204において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、再開用ワークフロー定義ファイル442に記載されている機能プロバイダの検索を指示する。再開用ワークフロー定義ファイル442には、「機能タイプがプレビューの機能プロバイダ」「機能タイプが送信の機能プロバイダ」が記載されているためのその2つの検索条件を指定して指示する。
S1205において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。本例では、プレビュープロバイダ416、FTP送信プロバイダ415が抽出されるものとする。S1206において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S1207において、ワークフロー処理部430は、検索結果のプレビュープロバイダ416に対して、プレビュー指示を行う。
S1209において、ワークフロー処理部430は、再開用ワークフロー定義ファイル442に定義されている呼び出し順に従って、FTP送信プロバイダ415の設定インタフェースを呼び出す。
S1210において、ワークフロー処理部430から設定インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信設定画面を表示する。S1211において、FTP送信プロバイダ415は、送信設定の結果をワークフロー処理部430に通知する。
S1212において、ワークフロー処理部430は、再開用ワークフロー定義ファイル442に定義されている呼び出し順に従って、FTP送信プロバイダ415の実行インタフェースを呼び出す。S1213において、ワークフロー処理部430から実行インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信処理を実行する。S1214において、FTP送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
S1215において、ワークフロー処理部430は、再開用ワークフロー定義ファイル442のRelatedWFタグに記載されている識別子のワークフロー定義ファイルを削除する。本例においては、再開用ワークフロー定義ファイル442に関連したワークフロー定義ファイルは、図11に示した識別子123458の、UIレスワークフロー定義ファイル443であるため、UIレスワークフロー定義ファイル443が削除される。以上のように、前述した手順により、中断されたワークフローの再開を、複数の機能プロバイダを組み合わせて一連の処理として実行する。
図13は、本実施形態を示す情報処理装置で表示されるUI画面を示す図である。本例は、UIレスワークフロー定義ファイル443に定義されたワークフローの再開指示を受付けるための第一のUI例であり、UIレス実行管理部433によってWebブラウザー450に表示されるリモート画面の例である。
図13において、1301は、UIレスワークフロー定義ファイル443に定義されたワークフローを開始するためのURL情報である。UIレス実行管理部433は、Webブラウザー450を介して、ユーザからの本URLへの遷移指示を受け付けると、ワークフロー処理部430に対してUIレスワークフロー定義ファイル443に定義されたワークフローの実行指示を行う。
図14は、本実施形態を示す情報処理装置で解析されるUIレスワークフロー定義ファイルを示す図である。本例は、中断されたワークフローを再開するために、ワークフロー処理部430によって作成された、UIレスワークフロー定義ファイル443の例である。
図14において、Workflowタグ1401は、Workflowタグ701同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1402は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1403は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。resumemethodタグ1404には、再開方法に関する情報が定義される。
図14において、Workflowタグ1401は、Workflowタグ701同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1402は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1403は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。resumemethodタグ1404には、再開方法に関する情報が定義される。
UIレスで実行可能かどうかを識別するためのtype属性と、UIレスで実行可能である場合に、開始手段であるurl属性が記述される。本例においては、type属性がUilessであるため、UIレスで実行可能であり、かつ開始するためのURLが記述されている。本URLは、図13にて説明した1301のURL情報と一致しするものとする。
RelatedWFタグ1405は、関連するワークフロー定義ファイルに関する情報が定義される。同じ中断処理を再開するために、UIレスによるワークフロー定義ファイルが生成される場合は、該当するUIレスワークフロー定義ファイルの識別子が記述される。その他のタグに関しては、図11で説明した内容と同じである。
図15は、本実施形態を示す情報処理装置で実行されるワークフローの流れを示したシーケンス図である。なお、本例は、図1に示したMFP101上のUIレスワークフロー定義ファイル443に定義されたワークフローの実行の流れを示したシーケンス例である。
図15において、S1501において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。具体的には、UIレス実行管理部433が、ユーザからのUIレスワークフローの開始指示を受け、ワークフロー処理部430に対してUIレスワークフロー定義ファイル443に定義されたワークフローの実行の開始指示を行う。S1502において、ワークフロー処理部430が実行指示に対応するUIレスワークフロー定義ファイル443を読み込む。
図15において、S1501において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。具体的には、UIレス実行管理部433が、ユーザからのUIレスワークフローの開始指示を受け、ワークフロー処理部430に対してUIレスワークフロー定義ファイル443に定義されたワークフローの実行の開始指示を行う。S1502において、ワークフロー処理部430が実行指示に対応するUIレスワークフロー定義ファイル443を読み込む。
S1503において、ワークフロー処理部430が中断時に記憶されたデータを読み込む。本実施形態においては、UIレスワークフロー定義ファイル443に記載れている、OutputタグのDocument、及びStringそれぞれのデータの記憶先を示す情報srcから読み込む。
S1504において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、UIレスワークフロー定義ファイル443に記載されている機能プロバイダの検索を指示する。UIレスワークフロー定義ファイル443には、「機能タイプが送信の機能プロバイダ」が記載されているためのその検索条件を指定して指示する。
S1505において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。本例ではFTP送信プロバイダ415が抽出されるものとする。S1506において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。
S1507において、ワークフロー処理部430は、UIレスワークフロー定義ファイル443に定義されている呼び出し順に従って、FTP送信プロバイダ415の実行インタフェースを呼び出す。
S1508において、ワークフロー処理部430から実行インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信処理を実行する。S1509において、FTP送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
S1508において、ワークフロー処理部430から実行インタフェースの呼び出しを受けたFTP送信プロバイダ415は、指示に従って送信処理を実行する。S1509において、FTP送信プロバイダ415は、送信処理の結果をワークフロー処理部430に通知する。
S1510において、ワークフロー処理部430は、UIレスワークフロー定義ファイル443のRelatedWFタグに記載されている識別子のワークフロー定義ファイルを削除する。本例においては、UIレスワークフロー定義ファイル443に関連したワークフロー定義ファイルは、識別子123457の、再開用ワークフロー定義ファイル442であるため、再開用のワークフロー定義ファイル442が削除される。以上のように、前述の実施形態において説明した手順により、中断されたワークフローの再開を、複数の機能プロバイダを組み合わせて一連の処理として実行する。
〔第2のワークフロー処理〕
図16は、本実施形態を示す情報処理装置で表示されるUI画面を示す図である。本例は、UIレスワークフロー定義ファイル443に定義されたワークフローを開始するための第二の例であり、UIレス実行管理部433によって操作部219に表示されるUIの例である。本UIは、MFP101にユーザがログインした後に、操作部219に表示されるものとする。尚、ユーザがログインする方法に関しては、本発明の特徴とするものではないため、具体的な説明は行わない。
図16は、本実施形態を示す情報処理装置で表示されるUI画面を示す図である。本例は、UIレスワークフロー定義ファイル443に定義されたワークフローを開始するための第二の例であり、UIレス実行管理部433によって操作部219に表示されるUIの例である。本UIは、MFP101にユーザがログインした後に、操作部219に表示されるものとする。尚、ユーザがログインする方法に関しては、本発明の特徴とするものではないため、具体的な説明は行わない。
図16において、1601は、OKボタンであり、本OKボタンが押下されることによってUIレスワークフロー定義ファイル443に定義されたワークフローの再開指示を操作部219の操作画面で受け付けることによりワークフロー処理部430に指示される。ワークフロー処理部430に開始指示が行われた後の処理は、図15に示したシーケンスの流れと同じである。
図17は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、ワークフロー処理部430におけるワークフローの中断処理の一連の流れである。本例は、ワークフロー定義ファイル440に従ったワークフローをワークフロー処理部430が実行し、FTP送信プロバイダによる処理実行に中断が発生した場合を例として説明する。なお、各ステップは、CPU211が記憶された制御プログラム(図4に示すソフトウエアを含む)を実行することで実現される。
S1701は、ワークフローの中断要因を検知するステップであり、ワークフローの中断要因を検知する。中断条件としては、ユーザがMFP101から明示的にログアウトを行うことによるログアウトによる中断、MFP101のスリープ、サーバへの通信エラー、またはFPが提供する中止ボタンなど様々であり、中断方法は限定しない。本実施形態では、FTPサーバへの通信エラーが発生したと仮定し、エラー発生後に操作部219を介してユーザによってログアウトボタンが押下され、中断指示が行われたものとする。
S1702は、中断可否判断ステップである。ワークフローの工程において、全体の処理がキャンセルできない状態である場合は、中断不可と判断する。例えば、ワークフローにおける処理工程が最終工程でありキャンセルできない場合が該当する。最終工程が送信工程であり、最終頁のデータ送信が実施中である場合などが該当する。S1702で、中断が不可と判断された場合は、S1709のフローキャンセル処理ステップに遷移し、フローのキャンセルを実施する。本実施形態では、ドキュメント、OCRの結果をそれぞれ各FPの実行結果として記憶できるため、中断可と判断する。
S1703は、状態記憶ステップであり、中断時において出力されている情報を記憶する。具体的には、各FPのOutputをHDD214に中断情報として記憶する。本実施形態においては、現在実行中のFPがSEND_FTPであり、直前の処理はOCRである。そのため、OCRが完了した時点でのOutputであるDocumentのfoo、及びStringのbarを中断状態として記憶する。
S1704は、再開フロー構築ステップである。本ステップでは、ワークフロー処理部430が実行中のワークフロー定義ファイル440と、S1703の状態記憶ステップにおいて記憶した状態とを分析し、再開用のフローを構築する。
本実施形態においては、本ステップを実行した結果、図11に示した再開用ワークフロー定義ファイル442が生成される。本ステップにおいては、S1703の中断状態記憶ステップにて記憶された情報の保存先を、再開用ワークフロー定義ファイルに記述する。本ステップにおいて、再構築に失敗した場合は、再開用ワークフロー定義ファイル442は生成されない。
本実施形態においては、本ステップを実行した結果、図11に示した再開用ワークフロー定義ファイル442が生成される。本ステップにおいては、S1703の中断状態記憶ステップにて記憶された情報の保存先を、再開用ワークフロー定義ファイルに記述する。本ステップにおいて、再構築に失敗した場合は、再開用ワークフロー定義ファイル442は生成されない。
S1705は、ワークフロー処理部430による再開フロー構築結果判断ステップである。S1704の再開フロー構築ステップにおいて、再開フローの構築が失敗した場合、つまり再開用ワークフロー定義ファイル442の有無を判断する。ここで、再開用ワークフロー定義ファイル442が生成されていないとワークフロー処理部430が判断した場合は、S1709のフローキャンセル処理ステップへ遷移する。一方、再開用ワークフロー定義ファイル442が生成されているとワークフロー処理部430が判断した場合、つまり再開用ワークフロー定義ファイル442が存在するため、S1706のUIレスフロー構築ステップへ遷移する。
S1706は、ワークフロー処理部430によるUIレスフロー構築ステップである。ワークフロー処理部430は、中断されたワークフローがUIレスで実行か否かを判断する。ここで、UIレスで実行可であるとワークフロー処理部430が決定した場合には、UIレスフローの構築を行う。
一方、UIレスで実行不可とワークフロー処理部430が判断した場合は、UIレスフローの構築を行わない。UIレスフローの構築を行った後、S1707のフロー定義ファイル有効化ステップへ遷移する。尚、UIレスフロー構築の判断、及び詳細フローについては図19にて説明を行う。
一方、UIレスで実行不可とワークフロー処理部430が判断した場合は、UIレスフローの構築を行わない。UIレスフローの構築を行った後、S1707のフロー定義ファイル有効化ステップへ遷移する。尚、UIレスフロー構築の判断、及び詳細フローについては図19にて説明を行う。
S1707は、ワークフロー処理部430によるフロー定義ファイル有効化ステップである。ワークフロー処理部430は、再開用ワークフロー定義ファイル442を実行可能な状態にする。さらに、S1706にて、UIレスワークフロー443が構築されている場合、ワークフロー処理部430は、UIレスワークフロー定義ファイル443を実行可能な状態にする。
また、S1704及びS1706にて構築されたワークフロー定義がそれぞれ同じ中断状態を再開するためのフローである。このため、ワークフロー処理部430は、それぞれ構築された再開用ワークフロー定義ファイル442及びUIレスワークフロー定義ファイル443を編集する。そして、resumemethodタグ1104及びRelatedWFタグ1405に関係ワークフローの識別子を追記する。
S1708は、ワークフロー処理部430による中断完了処理で、現在実行中のフローをキャンセルし一連の処理を終了する。S1709は、ワークフロー処理部430によるフローキャンセル処理ステップであり、現在実行中のフローをキャンセルし、一連の処理を完了する。
また、S1704及びS1706にて構築されたワークフロー定義がそれぞれ同じ中断状態を再開するためのフローである。このため、ワークフロー処理部430は、それぞれ構築された再開用ワークフロー定義ファイル442及びUIレスワークフロー定義ファイル443を編集する。そして、resumemethodタグ1104及びRelatedWFタグ1405に関係ワークフローの識別子を追記する。
S1708は、ワークフロー処理部430による中断完了処理で、現在実行中のフローをキャンセルし一連の処理を終了する。S1709は、ワークフロー処理部430によるフローキャンセル処理ステップであり、現在実行中のフローをキャンセルし、一連の処理を完了する。
本実施形態では、ワークフローの中断及び再開用ワークフロー定義ファイルの作成、及びUIレスワークフローの作成を、ワークフローの中断時に実施する例を説明した。しかしながら、S1704からの再構築処理は、ワークフローの中断時ではなく、再開時または別の機会に実施する構成でもかまわない。
図18は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFP101のワークフロー処理部430における、再開用ワークフロー定義ファイルを作成する一連の流れである。また、本フローは、図17のS1704の再開フロー構築ステップの詳細フローを示す。なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S1801は、ワークフロー処理部430によるワークフロー定義ファイル複製ステップである。本例では、中断対象となるワークフローが、ワークフロー定義ファイル440に定義されたワークフローであるため、ワークフロー処理部430がワークフロー定義ファイル440を複製する。
S1802は、ワークフロー処理部430によるワークフロー定義ファイルの属性変更ステップである。ワークフロー処理部430は、Workflowタグ1101のid属性及びname属性に関する値を変更する。さらに、ワークフロー処理部430は、既に実行済みであるスキャン及びOCRプロバイダの処理を削除し、未実施もしくは未完了の処理を残す。さらに、ワークフロー処理部430は、resumemethodタグ1104のtype属性にUIの値を追記する。S1803は、ワークフロー処理部430によるワークフロー再構築条件テーブル参照ステップである。
S1804は、ワークフロー処理部430による中断状況確認ステップである。具体的には、ワークフロー処理部430は、S1703の中断状況記憶ステップにて記憶された中断状況を参照する。さらに、ワークフロー処理部430は、再開用ワークフロー定義ファイルに中断状況であるRESUMEタグ、該中断状況記憶ステップにて記憶されたデータと、その参照先を追記する。
S1805及びS1807は、ワークフロー処理部430による再構築条件判断ステップであり、本ステップでは、ワークフロー処理部430が再構築条件テーブルに定義された条件を判断する。本条件判断は、再構築条件テーブルに定義された条件に応じてそれぞれ判断ステップが設けられる。本実施形態では、再構築条件テーブルには2つの条件が定義されているため、2つの判断ステップが設けられている。
S1805は、ワークフロー処理部430は、未実施の処理において、InputにDocumentが存在するか否かを判断する。Documentが含まれるとワークフロー処理部430が判断した場合は、S1806に遷移し、含まれないとワークフロー処理部430が判断した場合はS1807に遷移する。
本実施形態では、スキャンプロバイダにおけるスキャンが完了しており、Documentが中断状況として存在するため、S1806に遷移する。
S1805は、ワークフロー処理部430は、未実施の処理において、InputにDocumentが存在するか否かを判断する。Documentが含まれるとワークフロー処理部430が判断した場合は、S1806に遷移し、含まれないとワークフロー処理部430が判断した場合はS1807に遷移する。
本実施形態では、スキャンプロバイダにおけるスキャンが完了しており、Documentが中断状況として存在するため、S1806に遷移する。
S1806は、ワークフロー処理部430によるプレビュープロバイダ処理追加ステップである。具体的には、プレビュープロバイダ実行のために、ワークフロー処理部430が再開用ワークフローに1106のプレビュープロバイダの処理を追加する。
S1807は、ワークフロー処理部430が未実施の処理において、InputにAuthが存在するか否かを判断する。ここで、InputにAuthが含まれるとワークフロー処理部430が判断した場合はS1808の状態確認ステップに遷移する。
S1808は、ワークフロー処理部430による中断状況確認ステップである。具体的には、ワークフロー処理部430は、認証情報が中断状況として記憶されているか否かを判断する。ここで、記憶されているとワークフロー処理部430が判断した場合は、該Inputタグに対する入力が存在するため、認証プロバイダの処理は追加せず、S1810に遷移する。
一歩魚、記憶されていないとワークフロー処理部430が判断した場合は、認証プロバイダによる処理が必要であると判断し、S1809に遷移する。
S1808は、ワークフロー処理部430による中断状況確認ステップである。具体的には、ワークフロー処理部430は、認証情報が中断状況として記憶されているか否かを判断する。ここで、記憶されているとワークフロー処理部430が判断した場合は、該Inputタグに対する入力が存在するため、認証プロバイダの処理は追加せず、S1810に遷移する。
一歩魚、記憶されていないとワークフロー処理部430が判断した場合は、認証プロバイダによる処理が必要であると判断し、S1809に遷移する。
S1809は、ワークフロー処理部430が認証プロバイダの処理を再開用ワークフロー定義ファイルに追加するステップであり、再開用ワークフローに認証プロバイダの処理を追加する。本実施形態では、InputにAuthを含む処理が存在しないため、再開用ワークフロー定義ファイルには認証プロバイダによる処理は追加されない。
S1810は、ワークフロー処理部430によるワークフローのValidateステップである。本ステップでは、ワークフロー処理部430が再構築された再開用ワークフロー定義ファイル442の、Output/Inputそれぞれの情報を比較し、矛盾が生じないことを検証する。
ここで、ワークフロー処理部430は、それぞれのOutput/Inputが存在し、フローが実行できる状態であれば検証成功と判断し、再構築を終了する。フローが実行できない状態の場合いは検証失敗であると判断し、構築した再開用ワークフロー定義ファイル442を破棄し、S1811に遷移する。
ここで、ワークフロー処理部430は、それぞれのOutput/Inputが存在し、フローが実行できる状態であれば検証成功と判断し、再構築を終了する。フローが実行できない状態の場合いは検証失敗であると判断し、構築した再開用ワークフロー定義ファイル442を破棄し、S1811に遷移する。
S1811は、ワークフロー処理部430によるエラー表示ステップであり、操作部219にエラーが発生した旨を表示して、本フローを終了する。
なお、エラーが発生した場合は、本フローを終了した後、S1705の再開フロー構築結果判断ステップにより再開フロー構築が失敗したと判断され、ワークフローをキャンセルするためS1709のフローキャンセル処理ステップに遷移する。
なお、エラーが発生した場合は、本フローを終了した後、S1705の再開フロー構築結果判断ステップにより再開フロー構築が失敗したと判断され、ワークフローをキャンセルするためS1709のフローキャンセル処理ステップに遷移する。
図19は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、MFPのワークフロー処理部430における、UIレスワークフロー定義ファイルを作成する一連の流れである。また、本フローは、図17のS1705のUIレスフロー構築ステップの詳細フローを示す。なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S1901は、ワークフロー処理部430によるワークフロー定義ファイル複製ステップである。本例では、中断対象となるワークフローが、ワークフロー定義ファイル440に定義されたワークフローであるため、ワークフロー処理部430は、ワークフロー定義ファイル440を複製する。
S1902は、ワークフロー処理部430によるワークフロー定義ファイルの属性変更ステップである。ワークフロー処理部430は、Workflowタグ1401のid属性及びname属性に関する値を変更する。さらに、ワークフロー処理部430は、既に実行済みであるスキャン及びOCRプロバイダの処理を削除し、未実施もしくは未完了の処理を残す。さらに、ワークフロー処理部430は、UIレスワークフローを実行するための情報である、resumemethodタグ1404のtypeにUilessを追記し、実行開始するためのURL情報を追記する。
S1902は、ワークフロー処理部430によるワークフロー定義ファイルの属性変更ステップである。ワークフロー処理部430は、Workflowタグ1401のid属性及びname属性に関する値を変更する。さらに、ワークフロー処理部430は、既に実行済みであるスキャン及びOCRプロバイダの処理を削除し、未実施もしくは未完了の処理を残す。さらに、ワークフロー処理部430は、UIレスワークフローを実行するための情報である、resumemethodタグ1404のtypeにUilessを追記し、実行開始するためのURL情報を追記する。
S1903は、ワークフロー処理部430による中断状況確認ステップである。具体的には、ワークフロー処理部430は、S1703の中断状況記憶ステップにて記憶された中断状況を参照する。さらに、ワークフロー処理部430は、再開用ワークフロー定義ファイルに中断状況であるRESUMEタグ、該中断状況記憶ステップにて記憶されたデータと、その参照先を追記する。S1904は、ワークフロー処理部430によるFP及びAction特定ステップであり、S1902にて残された未完了のActionを特定する。
S1905は、ワークフロー処理部430によるUIレス実行可否の問い合わせステップであり、各機能プロバイダに実装されているUIレス実行可否を判断するためのI/Fを呼び出す。
本実施形態では、該I/FはisInteractionという関数がUIレス実行可否を問い合わせるためのI/Fであり、機能プロバイダI/F情報テーブル424に登録されている。さらに、S1904にて特定されたFPはSEND_FTPであり、ActionがdoSendである。
よって、本ステップでは、ワークフロー処理部430は、FTP送信プロバイダの持つisInteractionのI/Fに対して、UIレスでdoSendが実行できるか否かを問い合わせる。該I/Fに対して、Action及び中断情報を提供することにより、それぞれの機能プロバイダはActionを実施するための情報が揃っているか否かを判断することが可能となる。ここで、揃っていると判断した場合は、ワークフロー処理部430は、UIレスで実行可と判断し、TRUEを問い合わせの結果として呼び出し元に返す。
一方、揃っていないとワークフロー処理部430が判断した場合は、UIレスでの実行は不可と判断し、FALSEを問い合わせの結果として呼び出し元に返す。本ステップでは、該I/Fを呼び出し、機能プロバイダからの結果を受信する。
本実施形態では、該I/FはisInteractionという関数がUIレス実行可否を問い合わせるためのI/Fであり、機能プロバイダI/F情報テーブル424に登録されている。さらに、S1904にて特定されたFPはSEND_FTPであり、ActionがdoSendである。
よって、本ステップでは、ワークフロー処理部430は、FTP送信プロバイダの持つisInteractionのI/Fに対して、UIレスでdoSendが実行できるか否かを問い合わせる。該I/Fに対して、Action及び中断情報を提供することにより、それぞれの機能プロバイダはActionを実施するための情報が揃っているか否かを判断することが可能となる。ここで、揃っていると判断した場合は、ワークフロー処理部430は、UIレスで実行可と判断し、TRUEを問い合わせの結果として呼び出し元に返す。
一方、揃っていないとワークフロー処理部430が判断した場合は、UIレスでの実行は不可と判断し、FALSEを問い合わせの結果として呼び出し元に返す。本ステップでは、該I/Fを呼び出し、機能プロバイダからの結果を受信する。
S1906は、ワークフロー処理部430によるUIレス実行可否の判断ステップである。具体的には、ワークフロー処理部430は、S1905で各機能プロバイダから受信した結果がTRUEである場合はUIレス実行可と判断し、S1907に遷移する。
一方、FALSEであるとワークフロー処理部430
が判断した場合は、再開用のフローがUIレスでの実行ができないと判断し、S1910のUIレスワークフロー定義の破棄ステップに遷移する。
一方、FALSEであるとワークフロー処理部430
が判断した場合は、再開用のフローがUIレスでの実行ができないと判断し、S1910のUIレスワークフロー定義の破棄ステップに遷移する。
S1907は、ワークフロー処理部430による次のActionが定義されているか否かを判断するステップである。さらに、ワークフロー処理部430は未完了、かつUIレス実行可否の判断が実施されていないActionが存在するか否かを判断する。ここで、存在しているとワークフロー処理部430が判断した場合はS1904に遷移し、未判断のActionに対してUIレスの実行可否判断を実施する。
一方、S1907で、Actionが存在しないとワークフロー処理部430が判断した場合は、ワークフロー処理部430は、本フローがUIレス実行可と判断し、S1908に遷移する。
一方、S1907で、Actionが存在しないとワークフロー処理部430が判断した場合は、ワークフロー処理部430は、本フローがUIレス実行可と判断し、S1908に遷移する。
S1908は、ワークフロー処理部430によつワークフローのValidateステップである。具体的には、ワークフロー処理部430が再構築された再開用ワークフロー定義ファイル442の、Output/Inputそれぞれの情報を比較し、矛盾が生じないことを検証する。ここで、それぞれのOutput/Inputが存在し、フローが実行できる状態であれば、ワークフロー処理部430は、検証成功と判断し、S1909のUIレス実行管理部への通知ステップに遷移する。
一方、フローが実行できない状態の場合いは検証失敗であるとワークフロー処理部430が判断し、ワークフロー処理部430は、S1910のUIレスワークフロー定義の破棄ステップに遷移する。
一方、フローが実行できない状態の場合いは検証失敗であるとワークフロー処理部430が判断し、ワークフロー処理部430は、S1910のUIレスワークフロー定義の破棄ステップに遷移する。
S1909は、ワークフロー処理部430によるUIレス実行管理部433への通知ステップである。具体的には、ワークフロー処理部430は、S1908にて実行可能と判断されたUIレスワークフロー定義情報を、UIレス実行管理部433へ通知する。UIレス実行管理部433は、本通知による情報を受けた後、S1706においてUIレスワークフロー定義ファイルを有効化する。
具体的には、図13に示したようにWebブラウザー450からの実行を可能にするためのリンク情報を生成し、Webページ上で遷移可能にする、または図16に示すUIを次ログイン時に表示するための処理を行う。
UIレスワークフローの実行開始手段については、UIレス実行管理部433の実装に応じて様々な手段を設けることが可能であり、図13及び図16に示す方法以外の方法が設けられても良いものとする。本ステップでUIレス実行管理部433に対して情報が通知された後、本フローを終了する。
S1910は、ワークフロー処理部430によるUIレスワークフロー定義を破棄するステップである。具体的には、ワークフロー処理部430がS1902にて属性が変更されたUIレスワークフロー定義情報を破棄し、本フローを終了する。
具体的には、図13に示したようにWebブラウザー450からの実行を可能にするためのリンク情報を生成し、Webページ上で遷移可能にする、または図16に示すUIを次ログイン時に表示するための処理を行う。
UIレスワークフローの実行開始手段については、UIレス実行管理部433の実装に応じて様々な手段を設けることが可能であり、図13及び図16に示す方法以外の方法が設けられても良いものとする。本ステップでUIレス実行管理部433に対して情報が通知された後、本フローを終了する。
S1910は、ワークフロー処理部430によるUIレスワークフロー定義を破棄するステップである。具体的には、ワークフロー処理部430がS1902にて属性が変更されたUIレスワークフロー定義情報を破棄し、本フローを終了する。
本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明したが、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
本実施形態によれば、実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフロー再構築することができる。
これにより、中断したワークフローを再開する際におけるユーザによる操作負担を軽減し、中断したワークフローを効率よく再開して完了できる。
本実施形態によれば、実行する複数の拡張ソフトを組み合わせてワークフローが中断した際に、UIを利用するワークフローと、UIを利用しないワークフロー再構築することができる。
これにより、中断したワークフローを再開する際におけるユーザによる操作負担を軽減し、中断したワークフローを効率よく再開して完了できる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えばASIC)によっても実現可能である。
101 MFP
102 サーバ
102 サーバ
Claims (9)
- 情報処理装置であって、
所定の機能プロバイダを組み合わせたワークフロー定義ファイルに従い所定のジョブを実行する実行手段と、
前記実行手段が実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断する中断手段と、
前記中断手段が中断したジョブの中断状態とワークフロー再構築条件とを解析して、前記所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、前記所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する決定手段と、
前記決定手段による決定に従い、前記構築手段が構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する再構築手段と、
を備えることを特徴とする情報処理装置。 - 前記再構築手段は、前記構築手段が構築したワークフロー定義ファイルで処理された特定の機能プロバイダによる工程を削除または特定の工程を追加して第1または第2のワークフロー定義ファイルを再構築することを特徴とする請求項1に記載の情報処理装置。
- 前記再構築手段が構築した第1または第2のワークフロー定義ファイルに従う所定のジョブの再開指示を受け付ける受付手段を備えることを特徴とする請求項1に記載の情報処理装置。
- 前記受付手段は、前記再構築手段が構築した第1または第2のワークフロー定義ファイルに従う所定のジョブの再開指示を、リモート画面を介して受け付けることを特徴とする請求項3に記載の情報処理装置。
- 前記受付手段は、前記再構築手段が構築した第1または第2のワークフロー定義ファイルに従う所定のジョブの再開指示を、前記情報処理装置と通信する他の情報処理装置に表示するリモート画面を介して受け付けることを特徴とする請求項3に記載の情報処理装置。
- 前記受付手段は、前記再構築手段が構築した第1または第2のワークフロー定義ファイルに従う所定のジョブの再開指示を、ユーザがログインする操作画面を介して受け付けることを特徴とする請求項3に記載の情報処理装置。
- 所定の機能プロバイダは、前記UI工程を実行しないインタフェースと、前記UI工程を実行するインタフェースとを備えることを特徴とする請求項1に記載の情報処理装置。
- 情報処理装置の制御方法であって、
所定の機能プロバイダを組み合わせたワークフロー定義ファイルに従い所定のジョブを実行する実行工程と、
前記実行工程で実行したジョブの中断要因を検知することに応じて、実行中のジョブを中断する中断工程と、
前記中断工程で中断したジョブの中断状態とワークフロー再構築条件とを解析して、前記所定の機能プロバイダに対応づけられたUI工程を実行する第1のワークフロー定義ファイルを構築するか、前記所定の機能プロバイダに対応づけられたUI工程を実行しない第2のワークフロー定義ファイルを構築するかを決定する決定工程と、
前記決定工程による決定に従い、前記構築手段が構築したワークフロー定義ファイルから中断したワークフローを再開する第1または第2のワークフロー定義ファイルを再構築する再構築工程と、
を備えることを特徴とする情報処理装置の制御方法。 - 請求項8に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016038735A JP2017158000A (ja) | 2016-03-01 | 2016-03-01 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016038735A JP2017158000A (ja) | 2016-03-01 | 2016-03-01 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017158000A true JP2017158000A (ja) | 2017-09-07 |
Family
ID=59810568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016038735A Pending JP2017158000A (ja) | 2016-03-01 | 2016-03-01 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017158000A (ja) |
-
2016
- 2016-03-01 JP JP2016038735A patent/JP2017158000A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5899749B2 (ja) | 制御システム、制御装置、及び制御プログラム | |
EP2950230B1 (en) | Information processing system, method of processing information, information processing apparatus, and program | |
JP5424614B2 (ja) | 情報処理システム、情報処理装置、Webサーバ、制御方法、及びプログラム | |
JP5197287B2 (ja) | 管理装置、画像形成装置、サービス処理方法及びプログラム | |
JP5990006B2 (ja) | 画像形成装置及びその制御方法とプログラム | |
JP2004288026A (ja) | サービス処理システム、サービス処理システムの処理結果確認方法、及びサービス処理プログラム | |
JP2015176235A (ja) | 自動設置システム及び方法、情報処理装置、画像形成装置、プログラム | |
US20110023024A1 (en) | Information processing apparatus, workflow system, workflow management method, and storage medium of program for workflow management method | |
US20110083137A1 (en) | Application cooperation method, system, computer-readable medium, and information processing apparatus | |
JP2021028130A (ja) | 印刷装置、印刷システム | |
JP6762727B2 (ja) | 情報処理装置、情報処理装置のデータ処理方法、及びプログラム | |
JP2011041214A (ja) | 文書管理システム及びその制御方法、情報処理装置 | |
JP2004288025A (ja) | サービス処理装置、サービス処理システム、サービス処理システムの元データ保管方法、及びサービス処理プログラム | |
JP6031298B2 (ja) | 画像形成装置、画像形成装置の制御方法及びプログラム | |
JP6192433B2 (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP2004288066A (ja) | サービス検索装置、サービス検索方法及びプログラム、並びに文書処理システム | |
JP2017158000A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2006302145A (ja) | 文書登録システム、画像形成装置、情報処理装置 | |
JP6226743B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
US20090064201A1 (en) | Image Forming Apparatus, Application Management Method, and Computer-Readable Recording Medium Having Application Management Program | |
JP2004288055A (ja) | サービス処理システム、サービス処理方法及びサービス処理プログラム | |
JP2006140946A (ja) | 情報処理装置、サービス連携方法およびサービス連携プログラム | |
JP2017050812A (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
JP2018185685A (ja) | 情報処理装置およびその制御方法およびプログラム | |
JP2017182572A (ja) | データ処理装置、情報処理装置、データ処理装置のデータ処理方法、情報処理装置のデータ処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20180306 |