JP2017050812A - 情報処理装置、情報処理装置の制御方法及びプログラム - Google Patents
情報処理装置、情報処理装置の制御方法及びプログラム Download PDFInfo
- Publication number
- JP2017050812A JP2017050812A JP2015174722A JP2015174722A JP2017050812A JP 2017050812 A JP2017050812 A JP 2017050812A JP 2015174722 A JP2015174722 A JP 2015174722A JP 2015174722 A JP2015174722 A JP 2015174722A JP 2017050812 A JP2017050812 A JP 2017050812A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- information
- function
- provider
- processing apparatus
- 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
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】 複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成する。
【解決手段】
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置において、ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する。そして、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再開時に実行すべき新たな処理を適応させた再構築ワークフロー定義情報を作成することを特徴とする。
【選択図】 図12
【解決手段】
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置において、ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する。そして、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再開時に実行すべき新たな処理を適応させた再構築ワークフロー定義情報を作成することを特徴とする。
【選択図】 図12
Description
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関するものである。
近年、オフィスに設置される情報処理装置、例えば画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能(以降、拡張機能)は、ソフトウェアプログラム(以降、拡張ソフト)によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のMEAP(登録商標)などがあげられる。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。
また、ユーザが選択した拡張ソフトを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。
特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア(以降、アプリ)と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理(以降、ワークフロー)を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
また入力、変換、出力を独立した拡張ソフトで構成し、拡張ソフトの組み合わせで一連の処理を行い、拡張ソフトとパラメータの組み合わせで課金を行うものもある(特許文献2)。
また入力、変換、出力を独立した拡張ソフトで構成し、拡張ソフトの組み合わせで一連の処理を行い、拡張ソフトとパラメータの組み合わせで課金を行うものもある(特許文献2)。
従来技術では、ワークフローを実行するため、ワークフローの定義ファイルを用いて画像形成装置上の複数の機能を連結するよう構成されている。このため、ワークフローを途中で中断する必要がある場合、改めてワークフローの定義ファイルに従って、最初からワークフローを実行し直す必要があり、ユーザへの負担となっていた。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成できる仕組みを提供することである。
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置であって、前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する記憶手段と、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成手段と、を備えることを特徴とする。
複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置であって、前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する記憶手段と、記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成手段と、を備えることを特徴とする。
本発明によれば、複数の拡張機能を組み合わせたワークフローが中断された場合でも、実行されていない処理から正常に再開するために必要なワークフローを作成できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第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には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられ、拡張機能に対応づけられた各種のユーザI/Fを提供する。
図2において、CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられ、拡張機能に対応づけられた各種のユーザI/Fを提供する。
プリンタ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上の他の装置との間で各種情報を送受信する通信I/Fとして機能する。
図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では、拡張ソフトとしての7つの拡張ソフトが機能プロバイダ411〜417としてMFP101にインストールされている。
機能プロバイダ411〜417は、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダ411〜417は入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトを示すものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてプレビュー表示の後、送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」、「プレビュー」、「送信」の3つの機能を1つのアプリで実現する。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の3つの機能プロバイダが必要になる。さらに、それら3つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部430が必要になる。
また、アプリは、MFP101が元々備えている機能(例えばコピー機能やファクス送信機能)を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部420に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部420経由でワークフロー処理部430の指示によって呼び出される。
さらに、機能プロバイダは、機能プロバイダ管理部420が規定するルール(以降、機能プロバイダインタフェース)を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類(以降、機能タイプ)ごとに定められている。機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部430から呼び出される。
なお、1つの機能プロバイダは目的に応じて、複数種類のインタフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインタフェースを用意することができる。
また、複数種類の機能プロバイダをMFP101にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインタフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
標準スキャンプロバイダ411と簡単スキャンプロバイダ412は、ともにスキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)である。機能タイプが「スキャン」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「スキャン」の機能プロバイダのために定義された機能プロバイダインタフェース(スキャンプロバイダインタフェース)を実現する。標準スキャンプロバイダ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機能を提供する。
FTP送信プロバイダ415は、FTP送信機能を提供する機能プロバイダ(機能タイプ=ファイル送信)である。FTP送信プロバイダは、機能タイプが「ファイル送信」の機能プロバイダのために定義された機能プロバイダインタフェース(ファイル送信プロバイダインタフェース)を実現する。
プレビュープロバイダ416は、スキャン機能を提供する機能プロバイダ(機能タイプ=スキャン)によって生成された画像を、操作部219に表示するプレビュー機能を提供する機能プロバイダ(機能タイプ=プレビュー)である。
認証プロバイダ417は、認証機能を提供する機能プロバイダ(機能タイプ=認証)である。認証プロバイダは、操作部219を介してユーザから認証情報を受け付け、認証処理を実施する。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した7つの機能プロバイダ411〜417は一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
認証プロバイダ417は、認証機能を提供する機能プロバイダ(機能タイプ=認証)である。認証プロバイダは、操作部219を介してユーザから認証情報を受け付け、認証処理を実施する。
各機能プロバイダは、MFP101に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した7つの機能プロバイダ411〜417は一例であり、MFP101には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
機能プロバイダ管理部420は、MFP101にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部420は、機能プロバイダ登録部421、機能プロバイダ検索部422、機能プロバイダ情報テーブル423を持つ。
機能プロバイダ登録部421は、各機能プロバイダ411〜417からの依頼を受けて、機能プロバイダ情報テーブル423に、各機能プロバイダ411〜417の機能タイプや設定可能な値などの情報を登録する。各機能プロバイダ411〜417はMFP101にインストールされ実行状態になった時に機能プロバイダ登録部421に対して自身の登録を行う。
機能プロバイダ検索部422は、後述するワークフロー処理部430から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル423の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部422は、検索結果として機能プロバイダを1つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
ワークフロー処理部430は、後述するワークフロー定義ファイル440、441に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。また、ワークフローの中断に伴い、ワークフローの再開可否を判断し、再開用のワークフローを再構築する処理を行う。ここで、ワークフロー定義ファイル440とは、複数の拡張機能を組み合わせたワークフロー定義情報に対応する。
再構築条件テーブル431は、再開用ワークフロー定義ファイルを作成するための条件を管理するテーブルである。なお、本実施形態では、ワークフローとは複数の機能プロバイダを組み合わせた一連の処理を示すものとする。
ワークフロー定義ファイル440は、ワークフロー処理部430が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。
ワークフロー定義ファイル441は、ワークフロー定義ファイル440と定義内容が異なるものである。再開用ワークフロー定義ファイル442は、中断されたワークフローを再開するために、再構築ワークフロー定義情報である。なお、図4ではワークフロー定義ファイルの例を2つ定義しているが、数を限定するものではない。
ワークフロー定義ファイル441は、ワークフロー定義ファイル440と定義内容が異なるものである。再開用ワークフロー定義ファイル442は、中断されたワークフローを再開するために、再構築ワークフロー定義情報である。なお、図4ではワークフロー定義ファイルの例を2つ定義しているが、数を限定するものではない。
図5は、図4に示した機能プロバイダ情報テーブル423の一例を示す図である。機能プロバイダ情報テーブル423は、機能プロバイダを一意に特定する機能プロバイダID、機能プロバイダの名称、機能プロバイダタイプ、機能プロバイダインタフェース、機能プロバイダに設定可能な値など、機能プロバイダに関する情報を保持する。
図6は、本実施形態を示すワークフロー定義ファイルの具体的な記述例を示す図である。本実施形態ではワークフロー定義ファイルはXML形式のファイルとして表現されているが、XML形式に限定されるものではなく、他の形式のファイルであってもよい。
Workflowタグ601は、以下の記述がワークフローの定義であることを示している。FPタグ602は、Workflowタグ601の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。FPタグ602のno属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「no="1"」は最初に実行する機能プロバイダであることを示している。FPタグ602のtype属性は、実行する機能プロバイダの機能タイプを定義しており、「type="SCAN"」はスキャンプロバイダであることを示している。Conditionタグ603は、FPタグ602の子要素で、スキャンプロバイダの検索条件を定義するためのものである。
Actionタグ604は、FPタグ602の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Actionタグのno属性とmethod属性は、FPタグで定義された機能プロバイダの中での実行順と呼び出すインタフェースを定義している。Actionタグ604は、スキャンプロバイダの実行において「showSettingUI」を1番目に呼び出す旨を定義している。
Actionタグ605は、FPタグ602の子要素であり、スキャンプロバイダの実行において「doScan」を2番目に呼び出す旨を定義している。呼び出す際の設定であるParameterタグや、「doScan」を実行した結果の出力を定義するOutputタグを含む。
FPタグ606は、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。子要素はFPタグ602と同様の構成である。
FPタグ606は、no属性とtype属性で、2番目に実行する機能プロバイダがOCRプロバイダであることを定義している。子要素はFPタグ602と同様の構成である。
FPタグ607は、no属性とid属性で、3番目に実行する機能プロバイダがFTP送信プロバイダであることを定義している。FPタグは機能プロバイダを、FPタグ602、606のようにtype属性を使って機能タイプで指定することもできるし、FPタグ607のようにid属性を使って一意に指定することもできる。
図7は、本実施形態におけるワークフロー定義ファイルの具体的な記述例を示す図である。
図7において、Workflowタグ701は、以下の記述がワークフローの定義であることを示している。FPタグ702は、no属性とid属性で、1番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は同様であるため省略する。
図7において、Workflowタグ701は、以下の記述がワークフローの定義であることを示している。FPタグ702は、no属性とid属性で、1番目に実行する機能プロバイダが簡易スキャンプロバイダであることを定義している。以降のその他タグの説明は同様であるため省略する。
図8は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図1に示したMFP101上のワークフローの実行手順である。なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S801において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S802において、実行指示に対応するワークフロー定義ファイル440を読み込む。
S801において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S802において、実行指示に対応するワークフロー定義ファイル440を読み込む。
S803において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、ワークフロー定義ファイル440に記載されている機能プロバイダの検索を指示する。ワークフロー定義ファイル440には、「機能タイプがスキャンの機能プロバイダ」、「機能タイプがOCRの機能プロバイダ」そして「機能プロバイダIDがSEND_FTPの機能プロバイダ」が記載されているためのその3つの検索条件を指定して指示する。
S804において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。検索条件に一致するスキャンプロバイダが複数存在した場合は、最も優先順位の高いスキャンプロバイダを検索結果とする。本例では、標準スキャンプロバイダ411、WebOCRプロバイダ414そしてFTP送信プロバイダ415が抽出されるものとする。
S805において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S806において、ワークフロー処理部430は、検索結果の標準スキャンプロバイダ411に対して、スキャン指示を行う。S807において、ワークフロー処理部430からスキャン指示を受け取った標準スキャンプロバイダ411は、指示に従ってスキャンを実行する。
S808において、ワークフロー処理部430は、検索結果のWebOCRプロバイダ414に対して、OCR指示を行う。S809において、ワークフロー処理部430からOCR指示を受け取ったWebOCRプロバイダ414は、指示に従ってOCRを実行する。なお、S810,S811の処理については後述する。
S805において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S806において、ワークフロー処理部430は、検索結果の標準スキャンプロバイダ411に対して、スキャン指示を行う。S807において、ワークフロー処理部430からスキャン指示を受け取った標準スキャンプロバイダ411は、指示に従ってスキャンを実行する。
S808において、ワークフロー処理部430は、検索結果のWebOCRプロバイダ414に対して、OCR指示を行う。S809において、ワークフロー処理部430からOCR指示を受け取ったWebOCRプロバイダ414は、指示に従ってOCRを実行する。なお、S810,S811の処理については後述する。
図9は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図8に示したS809におけるWebOCRプロバイダ414のOCR処理の詳細手順である。なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S901では、WebOCRプロバイダ414はWebブラウザー450を起動する。S902では、Webブラウザー450にOCRを行うサーバ102上のWebアプリケーションを呼び出すためのURLを指定する。その結果、サーバ102からはWebブラウザーに表示するためのHTMLデータやスクリプトそして画像データから構成されるコンテンツを受け取る。このコンテンツはOCR処理中をユーザに示すためのコンテンツである。
S903では、Webブラウザー450はS902で受け取ったコンテンツをレンダリングし、スクリプトを実行して、コンテンツの表示を行う。
S901では、WebOCRプロバイダ414はWebブラウザー450を起動する。S902では、Webブラウザー450にOCRを行うサーバ102上のWebアプリケーションを呼び出すためのURLを指定する。その結果、サーバ102からはWebブラウザーに表示するためのHTMLデータやスクリプトそして画像データから構成されるコンテンツを受け取る。このコンテンツはOCR処理中をユーザに示すためのコンテンツである。
S903では、Webブラウザー450はS902で受け取ったコンテンツをレンダリングし、スクリプトを実行して、コンテンツの表示を行う。
S904では、Webブラウザー450を介して、ワークフロー処理部430から受け取るスキャン機能プロバイダ411が出力した画像を、サーバ102に送信する。サーバ102では受け取った画像に対してOCR処理を行い。OCR結果をWebブラウザー450に応答する。S905では、Webブラウザー450が取得したOCR結果をWebOCRプロバイダ414が取得し、ワークフロー処理部430に渡す。以上がWebOCRプロバイダ414のOCR処理である。
ここで、図8の処理の説明に戻り、S810において、ワークフロー処理部430は、検索結果のFTP送信プロバイダ415に対して、スキャン画像とOCR結果のFTP送信指示を行う。S811において、ワークフロー処理部430からFTP送信指示を受け取ったFTP送信プロバイダ415は、指示に従ってFTP送信を実行する。以上のように説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。
ここで、図8の処理の説明に戻り、S810において、ワークフロー処理部430は、検索結果のFTP送信プロバイダ415に対して、スキャン画像とOCR結果のFTP送信指示を行う。S811において、ワークフロー処理部430からFTP送信指示を受け取ったFTP送信プロバイダ415は、指示に従ってFTP送信を実行する。以上のように説明した手順により、複数の機能プロバイダを組み合わせて一連の処理として実行する。
図10は、図1に示したMFP101上のワークフロー処理部430において管理される、ワークフローの再構築条件テーブル431を示す図である。
図10において、列1001は、ワークフロー定義ファイルにおけるタグを示す。列1002は、列1001のタグ定義に対する定義値を示す。列1003は機能タイプで、タグ定義1001及び定義値1002に対して、適用可能な機能プロバイダを示す。状態条件1004は、中断時の状態が定義され、この条件に満たさない場合に列1003の機能タイプが適用可能であることを示す。
図10において、列1001は、ワークフロー定義ファイルにおけるタグを示す。列1002は、列1001のタグ定義に対する定義値を示す。列1003は機能タイプで、タグ定義1001及び定義値1002に対して、適用可能な機能プロバイダを示す。状態条件1004は、中断時の状態が定義され、この条件に満たさない場合に列1003の機能タイプが適用可能であることを示す。
例えば、Inputタグにおいて、type=Documentが存在するケースでは、このタグが定義されたFPタグの処理を実行するためには、Documentの入力が必要であることを示す。このFPタグの実行以前よりワークフローを再開する場合、Documentを確認するためのPreviewの機能プロバイダを実行可能であることを示す。
また、Inputタグにおいて、type=Authが存在するケースでは、このタグが定義されたFPタグの処理を実行するために、Authの入力が必要であることを示す。Authの入力は、認証情報の入力であり、認証情報が中断時に記憶されていない場合は、認証情報を入力するためのFP処理であるAuthの機能プロバイダを再開時に実行する必要があることを示す。
図11は、本実施形態において中断されたワークフローを再開するために、再構築された再開用ワークフロー定義ファイル442を示す図である。
図11において、Workflowタグ1101は、Workflowタグ601同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1002は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1102は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。FPタグ1104は、図6で示されるFPタグ602と同様である。
図11において、Workflowタグ1101は、Workflowタグ601同様、以下の記述がワークフローの定義であることを示している。RESUMEタグ1002は、再開にあたり必要なデータ、つまり中断時に記憶された情報と、その記憶先を示している。Outputタグ1102は、ワークフローの中断以前に既に処理され、出力された情報のtypeと、識別子であるid、さらにその記憶先であるsrc属性とその値を示している。FPタグ1104は、図6で示されるFPタグ602と同様である。
図12は、本実施形態におけるMFP101上の再開用ワークフローの実行の流れを示したシーケンス例を示す図である。
図12において、S1201において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S1202において、実行指示に対応する再開用ワークフロー定義ファイル442を読み込む。
図12において、S1201において、ユーザからのワークフロー実行指示を、ワークフロー処理部430が受け取る。S1202において、実行指示に対応する再開用ワークフロー定義ファイル442を読み込む。
S1203において、中断時に記憶された中断データを読み込む。本実施形態においては、再開用ワークフロー定義ファイル442に記載れている、OutputタグのDocument、及びStringそれぞれのデータの記憶先を示す情報srcから読み込む。
S1204において、ワークフロー処理部430は、機能プロバイダ管理部420に対して、再開用ワークフロー定義ファイル442に記載されている機能プロバイダの検索を指示する。再開用ワークフロー定義ファイル442には、「機能タイプがプレビューの機能プロバイダ」、「機能プロバイダIDがSEND_FTPの機能プロバイダ」が記載されているためのその2つの検索条件を指定して指示する。
S1205において、機能プロバイダ管理部420は、機能プロバイダ情報テーブル423をもとに検索条件に一致する機能プロバイダを抽出する。本例では、プレビュープロバイダ416、FTP送信プロバイダ415が抽出されるものとする。S1206において、機能プロバイダ管理部420は、機能プロバイダの検索結果をワークフロー処理部430に通知する。S1207において、ワークフロー処理部430は、検索結果のプレビュープロバイダ416に対して、プレビュー指示を行う。
S1208において、ワークフロー処理部430からプレビュー指示を受け取ったプレビュープロバイダ416は、指示に従ってプレビューを実行する。S1209において、ワークフロー処理部430は、検索結果のFTP送信プロバイダ415に対して、FTP送信指示を行う。S1210において、ワークフロー処理部430からFTP送信指示を受け取ったFTP送信プロバイダ415は、指示に従ってFTP送信を実行する。以上説明した手順により、中断されたワークフローの再開を、複数の機能プロバイダを組み合わせて一連の処理として実行する。
S1208において、ワークフロー処理部430からプレビュー指示を受け取ったプレビュープロバイダ416は、指示に従ってプレビューを実行する。S1209において、ワークフロー処理部430は、検索結果のFTP送信プロバイダ415に対して、FTP送信指示を行う。S1210において、ワークフロー処理部430からFTP送信指示を受け取ったFTP送信プロバイダ415は、指示に従ってFTP送信を実行する。以上説明した手順により、中断されたワークフローの再開を、複数の機能プロバイダを組み合わせて一連の処理として実行する。
図13は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図4に示したワークフロー処理部430におけるワークフローの中断処理の一連に対応する。本例は、ワークフロー定義ファイル440に従ったワークフローをワークフロー処理部430が実行し、FTP送信プロバイダによる処理実行に中断が発生した場合を例として説明する。
なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S1301はワークフローの中断検知ステップであり、ワークフローの中断を検知する。中断条件としては、ユーザがMFP101から明示的にログアウトを行うことによるログアウトによる中断、MFP101のスリープ、サーバへの通信エラー、または図6に示したFPが提供する中止ボタンなど様々であり、中断方法は限定しない。本実施形態では、FTPサーバへの通信エラーが発生したと仮定し、エラー発生後に操作部219を介してユーザによる中断ボタンがFPのUIから指示されたものとする。
S1302は、中断可否判断ステップである。ワークフローの工程において、全体の処理がキャンセルできない状態である場合は、中断不可と判断する。例えば、ワークフローにおける処理工程が最終工程でありキャンセルできない場合が該当する。最終工程が印刷工程であり、最終頁の印刷が実施中である場合などが該当する。
また、ワークフローにおいて、既に処理された各処理の状態を保持できない場合も中断不可と判断される。状態が保持されない場合、ワークフローの再開は未開始状態と同じ状態になるため、中断不可と判断される。中断が不可と判断された場合は、S1307のフローキャンセル処理ステップに遷移し、フローのキャンセルを実施する。本実施形態では、ドキュメント、OCRの結果をサーバ102に送信しておらず、それらデータを状態として記憶できるため、中断可と判断する。
また、ワークフローにおいて、既に処理された各処理の状態を保持できない場合も中断不可と判断される。状態が保持されない場合、ワークフローの再開は未開始状態と同じ状態になるため、中断不可と判断される。中断が不可と判断された場合は、S1307のフローキャンセル処理ステップに遷移し、フローのキャンセルを実施する。本実施形態では、ドキュメント、OCRの結果をサーバ102に送信しておらず、それらデータを状態として記憶できるため、中断可と判断する。
S1303は、状態記憶ステップであり、中断時において出力されている情報を記憶する。具体的には、図6に示した各FPのOutputをHDD214に記憶する。本実施形態においては、現在実行中のFPがSEND_FTPであり、直前の処理はOCRである。そのため、OCRが完了した時点でのOutputであるDocumentのfoo、及びStringのbarを中断状態として記憶する。
S1304は、フロー定義ファイル再構築ステップである。本ステップでは、実行中のワークフロー定義ファイル440と、S1303の状態記憶ステップにおいて記憶した状態とを分析し、再開用のフローを構築する。本実施形態においては、本ステップを実行した結果、再開用ワークフロー定義ファイル442が生成される。ワークフローの再構築が失敗した場合、つまりエラーが発生した場合は、S1307に遷移する。S1305は、フロー定義ファイル有効化ステップである。ワークフロー処理部430は、再開用ワークフロー定義ファイル442を実行可能な状態にする。S1306は、中断完了処理で、現在実行中のフローをキャンセルし一連の処理を終了する。S1307は、フローキャンセル処理であり、現在実行中のフローをキャンセルし、一連の処理を完了する。
本実施形態では、ワークフローの中断及び再開用ワークフロー定義ファイル442の作成を、ワークフローの中断時に実施する例を記載しているが、S1304からの再構築処理は、ワークフローの中断時ではなく、再開時または別の機会に実施する構成でもかまわない。
図14は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、本発明を実施したMFP101のワークフロー処理部430における、再開用ワークフロー定義ファイル442を作成する一連処理である。本フローは、図13のおけるS1304のフロー定義ファイル再構築ステップの詳細手順に対応する。なお、各ステップは、CPU211が記憶された制御プログラムを実行することで実現される。
S1401は、ワークフロー定義ファイル複製ステップである。本例では、中断対象となるワークフローが、ワークフロー定義ファイル440に定義されたワークフローであるため、ワークフロー定義ファイル440を複製する。
S1402は、ワークフロー定義ファイルの属性変更ステップである。Workflowタグ1101のid属性及びname属性に関する値を変更する。さらに、既に実行済みであるスキャン及びOCRプロバイダの処理を削除し、未実施もしくは未完了の処理を残す。S1403は、再構築条件テーブル参照ステップである。
S1404は、中断状況確認ステップである。S1303にて記憶された中断状況を参照する。さらに、再開用ワークフロー定義ファイル442に中断状況であるRESUMEタグと、その状況を追記する。
S1405及びS1408は、再構築条件判断ステップであり、本ステップでは再構築条件テーブル431に定義された条件を判断する。本条件判断は、再構築条件テーブル431に定義された条件に応じてそれぞれ判断ステップが設けられる。
本実施形態では、再構築条件テーブル431には2つの条件が定義されているため、2つの判断ステップが設けられている。S1405は、未実施の処理において、InputにDocumentが存在するか否かを判断し、Documentが含まれるか否かを確認する。Documentが含まれると判断した場合は、S1406に遷移し、含まれていないと判断した場合はS1407に遷移する。本実施形態では、スキャンプロバイダにおけるスキャンが完了しており、Documentの状態情報として中断状況が存在するため、S1406に遷移する。
本実施形態では、再構築条件テーブル431には2つの条件が定義されているため、2つの判断ステップが設けられている。S1405は、未実施の処理において、InputにDocumentが存在するか否かを判断し、Documentが含まれるか否かを確認する。Documentが含まれると判断した場合は、S1406に遷移し、含まれていないと判断した場合はS1407に遷移する。本実施形態では、スキャンプロバイダにおけるスキャンが完了しており、Documentの状態情報として中断状況が存在するため、S1406に遷移する。
S1406は、プレビュープロバイダ処理追加ステップである。具体的には、プレビュープロバイダ実行のために、再開用ワークフローにFPタグ1104のプレビュープロバイダによるプレビュー処理を追加する。
S1407は、未実施の処理において、InputにAuthが存在するか否かを判断する。InputにAuthが含まれていると判断した場合はS1408の状態確認ステップに遷移する。S1408は、中断状況確認ステップであり、認証情報が中断状況として記憶されているか否かを判断する。記憶されていると判断した場合は、該Inputタグに対する入力が存在するため、ログインするユーザ情報を認証するための認証プロバイダの処理は追加せず、S1410に遷移する。
一方、記憶されていないと判断した場合は、認証プロバイダ417による処理が必要であると判断し、S1409に遷移する。
一方、記憶されていないと判断した場合は、認証プロバイダ417による処理が必要であると判断し、S1409に遷移する。
S1409は、認証プロバイダ417の処理を再開用ワークフロー定義ファイルに追加するステップであり、再開用ワークフローに認証プロバイダの処理を追加する。本実施形態では、InputにAuthを含む処理が存在しないため、再開用ワークフロー定義ファイル442には認証プロバイダ417による処理は追加されない。
S1410は、ワークフローのValidateステップである。本ステップでは再構築された再開用ワークフロー定義ファイル442の、Output/Inputそれぞれの情報を比較し、矛盾が生じないことを検証する。それぞれのOutput/Inputが存在し、フローが実行できる状態であれば再構築を終了し、フローが実行できなければS1411に遷移する。S1411では、エラー表示ステップであり、操作部219にエラーが発生した旨を表示してワークフローをキャンセルするためS1307に遷移して終了する。
本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明した。しかし、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えばASIC)によっても実現可能である。
101 MFP
Claims (9)
- 複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置であって、
前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶する記憶手段と、
記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成手段と、
を備えることを特徴とする情報処理装置。 - 前記作成手段は、前記ワークフロー定義情報から既に実行された処理を削除し、かつ、再開時に実行すべき新たな処理を追加した再構築ワークフロー定義情報を作成することを特徴とする請求項1に記載の情報処理装置。
- 前記新たな処理は、再開するワークフローで処理すべきドキュメントを確認するプレビュー処理であることを特徴とする請求項2に記載の情報処理装置。
- 前記新たな処理は、再開するワークフローでユーザからログインを受け付けたユーザ情報を認証する処理であることを特徴とする請求項2に記載の情報処理装置。
- 前記再構築条件は、タグ定義、定義値、機能タイプ、状態条件により特定されることを特徴とする請求項1に記載の情報処理装置。
- 前記拡張機能は、特定の機能プロバイダを組み合わせにより特定されることを特徴とする請求項1に記載の情報処理装置。
- 前記情報処理装置は、スキャナ、プリンタ、通信I/F、ユーザI/Fを備えることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
- 複数の拡張機能を組み合わせたワークフロー定義情報を利用して一連の処理を実行させる情報処理装置の制御方法であって、
前記ワークフロー定義情報に従う処理が中断した場合、中断したワークフローの状態情報を記憶手段に記憶する記憶工程と、
記憶された状態情報と、中断したワークフローを再構築するための再構築条件とから、再構築ワークフロー定義情報を作成する作成工程と、
を備えることを特徴とする情報処理装置の制御方法。 - 請求項8に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015174722A JP2017050812A (ja) | 2015-09-04 | 2015-09-04 | 情報処理装置、情報処理装置の制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015174722A JP2017050812A (ja) | 2015-09-04 | 2015-09-04 | 情報処理装置、情報処理装置の制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017050812A true JP2017050812A (ja) | 2017-03-09 |
Family
ID=58279692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015174722A Pending JP2017050812A (ja) | 2015-09-04 | 2015-09-04 | 情報処理装置、情報処理装置の制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017050812A (ja) |
-
2015
- 2015-09-04 JP JP2015174722A patent/JP2017050812A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6499423B2 (ja) | 情報処理システム、情報処理装置、及びその制御方法とプログラム | |
JP2016057697A (ja) | 情報処理システム、情報処理装置、及びその制御方法とプログラム | |
US10419626B2 (en) | Method and apparatus to input workflow steps and parameters | |
JP2007042065A (ja) | アプリケーション管理システム、アプリケーション管理方法およびプログラム | |
JP5990006B2 (ja) | 画像形成装置及びその制御方法とプログラム | |
US10122882B2 (en) | Information processing apparatus, control method for information processing apparatus, and program storage medium, relating to displaying setting screens associated with extension software | |
JP6031298B2 (ja) | 画像形成装置、画像形成装置の制御方法及びプログラム | |
US10701225B2 (en) | User interface definition for information processing apparatus, control method, and storage medium | |
JP2014229026A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US10425549B2 (en) | Information processing apparatus, method of controlling information processing apparatus, and program | |
JP2017050812A (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
JP6372181B2 (ja) | 出力システム、出力制御システム、プログラム及び出力方法 | |
KR101405920B1 (ko) | 잡 컨트롤 장치 및 복합장치 그리고 그들의 동작 방법 | |
JP6740632B2 (ja) | 情報処理システム、画面表示情報生成方法、電子機器及びブラウザプログラム | |
JP2018116361A (ja) | 情報処理装置、管理装置、情報処理装置の制御方法、及びプログラム、情報処理システム | |
JP2017182572A (ja) | データ処理装置、情報処理装置、データ処理装置のデータ処理方法、情報処理装置のデータ処理方法、及びプログラム | |
JP2020120227A (ja) | 設定システム、制御方法、およびプログラム | |
US20230036834A1 (en) | Information processing system, apparatus, and storage medium having combinational and non-combinational applications | |
JP2017158000A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP5140350B2 (ja) | 情報処理装置 | |
JP2016018508A (ja) | 画像形成装置及びその制御方法 | |
JP2017146754A (ja) | 情報処理装置、情報処理方法、情報処理システムおよびプログラム | |
JP2019129473A (ja) | 画像処理装置、設置指示情報管理システムの制御方法、及びプログラム | |
JP2021090102A (ja) | 画像処理装置、情報処理方法及びプログラム | |
JP2020038547A (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 |