情報処理装置、情報処理装置の制御方法、及びプログラム
【課題】ジョブの実行中にユーザが操作画面の遷移操作を行っても、前回実行していたジョブを継続して実行することが可能な仕組みを提供する。
【解決手段】MFPは、ジョブが実行された際に、Cookie情報管理部で管理されるジョブの実行状態に基づき、前回実行していたジョブがあるか否かを判断し、前回実行していたジョブがある場合は、ジョブの実行結果をジョブごとに管理するジョブステータス管理部にジョブの実行結果を問い合わせ(ステップS1401、1402)、問い合わせ結果に応じて、表示部に表示される操作画面及び実行されるジョブを変更する(ステップS1403〜1413)。
【解決手段】MFPは、ジョブが実行された際に、Cookie情報管理部で管理されるジョブの実行状態に基づき、前回実行していたジョブがあるか否かを判断し、前回実行していたジョブがある場合は、ジョブの実行結果をジョブごとに管理するジョブステータス管理部にジョブの実行結果を問い合わせ(ステップS1401、1402)、問い合わせ結果に応じて、表示部に表示される操作画面及び実行されるジョブを変更する(ステップS1403〜1413)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、サーバから提供される複数の操作画面を表示部に表示するブラウザを備える情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
PCなどの情報処理装置では、ネットワークを介してサーバから提供される操作画面をブラウザを介して表示部に表示するものがある。
【0003】
情報処理装置の表示部に操作画面を表示するには、まず、情報処理装置からサーバに対して操作画面を要求(リクエスト)する。そして、サーバのアプリケーションが情報処理装置からの要求に応答して、ブラウザを介して表示部に操作画面を表示させるためのHTMLデータを情報処理装置に送信する。情報処理装置のブラウザは、受信したHTMLデータを解析し、HTMLデータの記述に基づいた操作画面を表示部に表示する。
【0004】
また、情報処理装置の表示部に表示された操作画面を介してユーザが指示を入力すると、入力された指示がブラウザを介してサーバに通知される。そして、この通知を受けたサーバのアプリケーションは、入力された指示に従って処理を実行する。
【0005】
ところで、最近では、スキャナやプリンタを備えたMFP(Multi Function Peripheral)等にも、上述したブラウザを備えるものがある。そして、MFPは、上述した手順と同様に、サーバから提供される操作画面をブラウザを介して表示部に表示し、ユーザからの各種指示を受け付ける。
【0006】
一方、MFPの各機能を実行するための指示を入力する操作画面と、操作画面での操作に応じてMFPを制御する制御スクリプトとをサーバからMFPに提供する技術が提案されている(特許文献1)。
【0007】
この提案では、表示部に表示された操作画面を介して入力された指示に基づいて、ブラウザに読み込まれている制御スクリプトから処理の実行を指示し、制御スクリプトにより実行されるMFPの機能は、ジョブとしてMFP内に生成される。
【0008】
そして、生成されたジョブは、MFPのスキャナ装置の制御や印刷装置の制御とともに、ユーザに対して、次の入力の要求やエラー改善の要求と言った対話的な処理の要求を行う。この処理の要求を制御スクリプトが受け取りさらに次の処理を行う。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−003833号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、ブラウザは、「戻る」「進む」「アドレスフィールド」「お気に入り」等の表示部での画面遷移を実行する機能を持つのが一般的である。
【0011】
しかし、上記特許文献1では、MFPのジョブ実行途中に、ユーザが操作画面の「戻る」ボタン等を操作すると、表示部に表示中の操作画面が切り替わってしまい、操作画面に対応する制御スクリプトが中断されてしまう。このため、実行中のジョブの制御ができなくなってしまう。
【0012】
また、ユーザが操作画面の「戻る」ボタン等を操作すると、実行中のジョブがユーザの入力待ちや、エラー状態で停止した場合、MFP内に処理が継続できないジョブが滞留してしまう。
【0013】
そこで、本発明は、ブラウザでジョブを実行している途中でユーザが操作画面の遷移操作を行っても、実行中のジョブを継続して実行することが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御手段と、前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行手段と、前記ジョブ実行手段が実行するジョブの設定情報を格納する格納手段と、前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行手段は、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする。
【発明の効果】
【0015】
本発明によれば、ジョブの実行中にユーザが操作画面の遷移操作を行っても、実行中のジョブを継続することが可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明の情報処理装置の実施形態の一例であるMFPを備える印刷システムの構成例を説明するための図である。
【図2】MFPの構成例を説明するためのブロック図である。
【図3】サーバの構成例を説明するためのブロック図である。
【図4】(a)はMFPのソフトウェアの構成例を説明するためのブロック図、(b)はサーバのソフトウェアの構成例を説明するためのブロック図である。
【図5】MFPのブラウザ及びサービスプロバイダとサーバのWebアプリケーションとの間における一連の処理について説明するためのシーケンス図である。
【図6】MFPの機能の一連の処理で発生する操作表示部での画面遷移の一例を示す図である。
【図7】画面表示用のHTMLデータと制御スクリプトの一例を示す図である。
【図8】ブラウザが画面遷移を操作する画面とともに操作表示部に表示するスキャン画面の表示例を示す図である。
【図9】MFPのブラウザに格納されるCookie情報の一例を示す図である。
【図10】MFPのステータス判断部が管理するジョブステータス(ジョブ実行状態)のリストの一例を示す図である。
【図11】MFPで実行されるWebアプリケーションの処理について説明するためのフローチャート図である。
【図12】図11のステップS1103において、「Setting」状態であるジョブが残っている場合の復帰処理について説明するためのフローチャート図である。
【図13】図11のステップS1104において、「Reading」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【図14】図11のステップS1105において、「Sending」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【図15】図13のステップS1306において「実行中のジョブがあります。継続しますか?」と操作表示部に表示して、ユーザからの「継続」または「中止」の指示を待ち受ける画面の一例を示す図である。
【図16】図13のステップS1303において「前回実行中のジョブは失敗しました。」と操作表示部に表示して、ユーザに通知する画面の一例を示す図である。
【図17】図14のステップS1408において「前回実行中のジョブは成功しました。」と操作表示部に表示して、ユーザに通知する画面の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例を図面を参照して説明する。
【0018】
図1は、本発明の情報処理装置の実施形態の一例であるMFPを備える印刷システムの構成例を説明するための図である。
【0019】
図1に示すように、本実施形態のMFP100は、LAN等のネットワーク130を介してサーバ200との間で互いに通信可能に接続されている。MFP100では、ブラウザ440(図4参照)が動作し、ブラウザ440は、サーバ200で動作するWebアプリケーション410(図4参照)を実行する。
【0020】
図2は、MFP100の構成例を説明するためのブロック図である。図2において、制御部110は、CPU101、ROM102、RAM103、HDD104、操作表示部I/F106、プリンタI/F107、スキャナI/F108、及びネットワークI/F109を有する。
【0021】
CPU101は、ROM102に記憶された制御プログラムをRAM103に読み出して読取制御や送信制御などのMFP100全体の動作を制御する。ROM102は、ブートプログラムや固定パラメータ等を格納する。RAM103は、CPU101の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD104は、画像データや各種プログラム等を格納する。NVRAM105は、MFP100の各種設定値を保存する。
【0022】
操作表示部I/F106は、操作表示部120と接続するためのインタフェイスであり、操作表示部120には、タッチパネル機能を有する液晶等の表示部やキーボードなどが設けられて、各種情報の表示やユーザからの指示入力を受け付ける。プリンタI/F107は、プリンタ121と接続するためのインタフェイスであり、プリンタI/F107を介して画像データがプリンタ121に転送され、プリンタ121は、受信した画像データをシートに印刷する。
【0023】
スキャナI/F108は、スキャナ122と接続するためのインタフェイスであり、スキャナ122は、原稿の画像を読み取って画像データを生成し、スキャナI/F108を介して制御部110に出力する。ネットワークI/F109は、MFP100をLAN等のネットワーク130に接続するためのインタフェイスであり、ネットワークに接続された外部装置(例えば、サーバ200)に画像データや情報を送信したり、外部装置から各種情報を受信したりする。
【0024】
図3は、サーバ200の構成例を説明するためのブロック図である。図3において、制御部310は、CPU311、ROM312、RAM313、HDD314、及びネットワークI/F315を有する。
【0025】
CPU311は、ROM312に記憶された制御プログラムを読み出してサーバ200全体の動作を制御する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、画像データや各種プログラム、及び後述する各種情報テーブルを記憶する。
【0026】
ネットワークI/F315は、LAN等のネットワーク130に接続するためのインタフェイスであり、ネットワーク130に接続されたMFP100や他の装置との間で各種情報を送受信する。
【0027】
図4(a)は、MFP100のソフトウェアの構成例を説明するためのブロック図である。
【0028】
図4(a)に示すように、MFP100は、ブラウザ440、サービスプロバイダ450、及びジョブステータス管理部460を備える。
【0029】
ブラウザ440は、通信部441、解析部442、画面表示制御部443、スクリプト実行部444、画面操作制御部445、及びCookie情報管理部446を有する。
【0030】
通信部441は、HTTPプロトコルに従ってサーバ200の後述するWebアプリケーション410のプレゼンテーション部411と通信する。具体的には、通信部441は、Webアプリケーション410に対してブラウザ440で表示する複数の操作画面を要求するリクエストメッセージを送信する。また、通信部441は、Webアプリケーション410から提供されるレスポンスメッセージを受信する。
【0031】
更に、通信部441は、サービスプロバイダ450の通信部451に対して機能の実行を依頼するリクエストメッセージを送信する。また、通信部441は、サービスプロバイダ450から送信されるレスポンスメッセージを受信する。
【0032】
解析部442は、Webアプリケーション410から受信したレスポンスメッセージを解析する。レスポンスメッセージには、HTMLデータと制御スクリプトが含まれる。HTMLデータには、ブラウザ440が操作表示部120に表示すべき操作画面の内容を示す記述が含まれており、制御スクリプトには、MFP100の機能を制御するための記述が含まれている。
【0033】
画面表示制御部443は、解析部442でのHTMLデータの解析結果に基づいて、操作表示部120に操作画面を表示する。スクリプト実行部444は、解析部442での制御スクリプトの解析結果に基づいて処理を行う。制御スクリプトには、MFP100の機能を制御するためにサービスプロバイダ450へ指示を出すコードや、サービスプロバイダ450のレスポンスに応じて操作画面の画面変更等の処理を行うコードが含まれる。
【0034】
画面操作制御部445は、ブラウザ440が備えるユーザインタフェースの制御、例えば入力ボタンの有効化/無効化、表示/非表示等の処理を実行する。Cookie情報管理部446は、スクリプト実行部444で実行される制御スクリプトにてCookie情報の制御を指示された場合に処理を実行する。具体的には、Cookie情報管理部446は、スクリプト実行部444からCookie情報の読み出し、書き込み、クリア等の要求が指示された場合に、要求された指示に応じた処理を実行する。
【0035】
また、サービスプロバイダ450は、通信部451及びジョブ生成部452を有する。
【0036】
通信部451は、ブラウザ440の通信部441からジョブ生成を要求するリクエストメッセージを受信する。ジョブ生成部452は、通信部451が受信したリクエストメッセージを解析し、解析結果に基づき、要求された処理を実行するためのジョブを生成して実行する。
【0037】
また、ジョブステータス管理部460は、ステータス判断部461及びステータス通知部462を有する。
【0038】
ステータス判断部461は、ジョブ生成部452が実行するジョブのステータス(実行状態)を管理し、ステータスに応じた処理を実施する。ステータス通知部462は、ステータス判断部461で管理するジョブのステータスを監視し、ジョブのステータスが変化した際にブラウザ440の画面操作制御部445にジョブのステータスを通知する。
【0039】
なお、ジョブステータス管理部460は、ブラウザ440及びサービスプロバイダ450のいずれかに配置されていてもよい。ジョブステータス管理部460がサービスプロバイダ450に配置されている場合は、ステータス通知部462は、ステータス判断部461で管理するジョブの実行ステータスが変化すると、通信部451にジョブのステータスを通知する。そして、通信部451は、ステータス通知部462から通知されたジョブの実行ステータスをブラウザ440の通信部441に送信して、画面操作制御部445に通知する。
【0040】
図4(b)は、サーバ200のソフトウェアの構成例を説明するためのブロック図である。
【0041】
図4(b)に示すように、サーバ200は、Webアプリケーション410を備え、Webアプリケーション410は、プレゼンテーション部411、及びロジック部412を有する。
【0042】
プレゼンテーション部411は、MFP100のブラウザ440の通信部441と通信して、ブラウザ440から送信されるリクエストメッセージを受信し、受信したリクエストメッセージをロジック部412へ通知して、ロジック部412からの応答を待つ。ロジック部412からの応答を受け取ったプレゼンテーション部411は、応答内容に従ってブラウザ440が操作表示部120に表示すべき操作画面に対応するHTMLデータと制御スクリプトをレスポンスメッセージとしてブラウザ440に送信する。
【0043】
ロジック部412は、プレゼンテーション部411から通知されるリクエストメッセージに応じて各種処理を実行すると共に、ブラウザ440が操作表示部120に表示する画面情報のHTMLデータとMFP100にて実行する処理の制御スクリプトを生成する。
【0044】
ここでの制御スクリプトは、例えば、MFP100のプリンタ121による印刷処理の実行や、スキャナ122による読み取り処理の実行、あるいはネットワークI/F109を介した送信処理の実行を依頼するための制御スクリプトである。サーバ200からMFP100に対して処理の実行を依頼する場合、ロジック部412は、MFP100に対してレスポンスするHTMLデータと制御スクリプトとをプレゼンテーション部411に渡す。
【0045】
次に、図5を参照して、MFP100のブラウザ440及びサービスプロバイダ450とサーバ200のWebアプリケーション410との間における一連の処理について説明する。
【0046】
まず、MFP100のブラウザ440がユーザにより起動されると、ステップS501では、ブラウザ440は、HTTPのリクエストをWebアプリケーション410に対して行う。
【0047】
ステップS502では、Webアプリケーション410は、受け付けたリクエストに従い、ブラウザ440が操作表示部120に表示する複数の操作画面のHTMLデータとブラウザ440にて実行する制御スクリプトを生成し、ブラウザ440にレスポンスする。
【0048】
例えば、Webアプリケーション410は、受け付けたリクエストがメニュー画面である場合は、メニュー画面表示用のHTMLデータをブラウザ440にレスポンスする。また、Webアプリケーション410は、受け付けたリクエストがスキャン実行の操作画面である場合は、スキャン画面表示用のHTMLデータとスキャン実行用の制御スクリプトをブラウザ440にレスポンスする。
【0049】
ステップS503では、ブラウザ440は、Webアプリケーション410から受信したHTMLデータを解析して操作表示部120に操作画面を表示する。また、ブラウザ440は、Webアプリケーション410から受信した制御スクリプトを解析し、サービスプロバイダ450にMFP100の機能の実行を指示する。
【0050】
ステップS504では、サービスプロバイダ450は、ステップS503でのブラウザ440からの指示によりMFP100の機能を実行し、実行結果をブラウザ440にレスポンスする。
【0051】
ステップS505では、ブラウザ440は、ステップS504にてサービスプロバイダ450から受け取った機能の実行結果を制御スクリプトで処理し、その実行結果に応じた処理を実施する。
【0052】
本例では、ブラウザ440は、受け取った機能の実行結果に応じてWebアプリケーション410に対して再度HTTPデータの要求を行う。例えば、ブラウザ440は、受け取った機能の実行結果が処理終了の場合は、処理終了画面のHTTPデータの要求を行い、受け取った機能の実行結果が何らかのエラーの場合は、エラー処理画面のHTTPデータの要求を行う。
【0053】
ステップS506では、Webアプリケーション410は、ステップS505でブラウザ440から要求された内容に応じて、操作画面のHTMLデータと制御スクリプトを生成し、ブラウザ440にレスポンスする。以上の処理を繰り返すことにより、MFP100の機能の一連の処理を進めていくことになる。
【0054】
図6は、MFP100の機能の一連の処理で発生する操作表示部120での画面遷移の一例を示す図である。
【0055】
図6に示すように、本実施形態では、メニュー画面601、FTP送信設定画面602、スキャン画面603、送信中画面604、及び送信完了画面605の順に操作表示部120での画面が遷移する。それぞれの画面は、ブラウザ440により操作表示部120に表示され、ユーザ操作によって上述した順で遷移していく。なお、制御スクリプトによって画面遷移するようにしてもよい。
【0056】
メニュー画面601は、MFP100の機能のうち、どの機能を利用するかを選択する画面である。このメニュー画面601からユーザが所定の機能を選択すると、選択した機能に対応した画面に遷移する。
【0057】
FTP送信設定画面602は、メニュー画面601でユーザがFTP送信ボタン606を押下して、FTP送信機能を選択した場合に表示される画面であり、この画面602にてFTP送信のための設定を行い、FTP送信機能の実行を指示する。
【0058】
スキャン画面603は、FTP送信設定画面602でユーザが実行ボタン607を押下し、FTP送信機能が実行されている状態の画面であり、この画面603では、制御スクリプトがスキャンのジョブを制御して、原稿の連続読み込み等の制御を行う。
【0059】
送信中画面604は、スキャン画面603にてユーザが送信ボタン608を押下し、スキャンで読み込んだ原稿の画像データをFTPサーバへ送信している状態の画面である。
【0060】
送信完了画面605は、スキャンで読み込んだ原稿の画像データのFTPサーバへの送信が終了した場合の画面である。
【0061】
図7は、画面表示用のHTMLデータと制御スクリプトの一例を示す図である。図7の例では、FTP送信設定画面602に対応するHTMLデータ及び制御スクリプトのデータ701を示しており、このデータ701は、MFP100からの要求に応じてサーバ200で生成される。なお、本例ではJava(登録商標)Scriptを制御スクリプトの一例として説明する。
【0062】
図7に示すように、データ701は、ブロック702〜705に区分されている。以下、ブロック毎に説明する。
【0063】
[ブロック702]
ブロック702では、Webアプリケーション410にてFTP送信実行のためのパラメータの一部がセットされる。endpoint変数706には、FTP送信用のサービスプロバイダ450へリクエストを出すためのURL情報がセットされる。ftpserver変数707には、データを送信するFTPサーバのURLがセットされる。ftppath変数708には、データを保存するFTPサーバのパスがセットされる。
【0064】
[ブロック703]
ブロック703では、実際にFTP送信用のサービスプロバイダ450を呼び出すための処理が記述される。ここでは、SOAPを利用してサービスプロバイダ450を呼び出す場合を例示しており、invoke_ws_scantoftp関数709が定義されている。SoapParameter関数710は、SOAP形式のパラメータを生成するための関数で、本例では“String”型のデータとして、FTP送信するファイル名、ファイルの形式、カラー設定、解像度、送信先FTPサーバ、保存先パスを設定している。
【0065】
また、create_soap_message関数711では、endpointに対して実行を指示するSOAPメッセージの生成を行う。更に、send_soap_message関数712で、実際にサービスプロバイダ450に対してSOAPのリクエストを実行する。その際、job_id変数にFTP送信ジョブを一意に識別するジョブIDが返ってくる。
【0066】
[ブロック704]
ブロック704では、execute_scan関数713が定義されており、ユーザの入力したFTP送信するファイル名、ファイル形式、解像度をパラメータとし、invoke_ws_scantoftp関数709の呼び出す処理714を行う。そして、invoke_ws_scantoftp関数709の実行状態として得られるジョブID、ジョブステータス、ファイル名、ファイル形式、カラー設定、解像度をCookieに保存する処理715を行う。このように、処理715を行うことで、ジョブの呼び出し中に制御スクリプトが中断した場合であっても、Cookieに保存された設定情報を元に制御スクリプトを継続することが可能となる。また、invoke_ws_scantoftp関数709の実行状態として得られるジョブIDをパラメータとし、次画面のデータ取得のためのリクエスト処理の実行指示を行う処理716を行う。
【0067】
[ブロック705]
ブロック705では、ブラウザ440が操作表示部120に表示する画面の内容に加え、ユーザの入力フォーム717、次画面のHTTP要求を行うためのフォーム718が定義されている。入力フォーム717では、例えば、FTP送信するファイルの名称の入力と、ファイル形式の選択が可能であり、実行ボタンを押下するとexecute_scan関数713を呼び出す。
【0068】
また、ブロック704の処理716により実行指示がなされると、フォーム718が実行される。フォーム718では、processing.aspxに対しジョブIDをパラメータとしてPOST要求を実施する。
【0069】
図8は、ブラウザ440が画面遷移を操作する画面とともに操作表示部120に表示するスキャン画面603(図6)の表示例を示す図である。
【0070】
図8において、戻るボタン802は、現在表示している画面の直前に表示していた画面に遷移するためのボタンである。進むボタン803は、戻るボタン802で表示している画面を切り替えた場合、切り替え前の画面に再度戻すためのボタンである。アドレスフィールド804は、現在表示している画面のURLを表示する。また、アドレスフィールド804には、URLを直接入力することで、そのURLにHTTPデータの要求を行い、画面の表示を切り替えることも可能である。戻るボタン802、進むボタン803及びアドレスフィールド804は、画面603とは独立して操作可能である。つまり、ジョブの実行中に戻るボタン802、進むボタン803及びアドレスフィールド804のいずれかを操作すると現在実行中の制御スクリプトが中断して他の画面に切り替わってしまう。その結果、実行途中のジョブ制御ができなくなってしまう。
【0071】
図9は、MFP100のブラウザ440(Cookie情報管理部446)に格納されるCookie情報の一例を示す図である。Cookie情報を格納する処理は、図7に示す処理715にて行われる。
【0072】
Cookieitem901には、job_id、job_sts、name、format、color、resolutionが、それぞれジョブID、ジョブステータス、ファイル名、ファイル形式、カラー設定、解像度の情報として格納される。Cookieitem901の各情報はCookievalue902に格納され、Cookievalue902に格納された設定情報は、ジョブステータスに関連付けられており、ジョブステータスにより変化する。例えば、ジョブステータスがSettingである場合は、図6の画面602を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901には、Cookievalue902に値が格納されない。
【0073】
また、ジョブステータスがReadingである場合は、図6の画面603を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901には、Cookievalue902に画面602にて設定された値が格納される。ジョブステータスがSendingである場合は、図6の画面604を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901のCookievalue902には、ジョブステータスがReadingである場合と同様に、画面602で設定された値が格納される。
【0074】
図9に示すように、ブラウザ440は、制御スクリプトにしたがってジョブを呼び出す際に、ジョブの実行状態をCookie情報としてCookie情報管理部446に格納する。この結果、制御スクリプトが中断した場合にCookie情報を参照することにより、実行途中のジョブを継続することが可能となる。
【0075】
図10は、MFP100のステータス判断部461が管理するジョブの実行結果のリストの一例を示す図である。
【0076】
図10に示すように、ステータス判断部461は、job_idに対応するジョブの実行結果を管理する。ジョブ実行結果がSuccessであるjob_idのジョブは、ジョブが成功したことを示し、ジョブ実行結果がFailであるjob_idのジョブは、ジョブが失敗、即ち、ジョブが正常に完了にしなかったことを示す。また、ジョブ実行結果がRunningであるjob_idのジョブは、ジョブが実行中であることを示す。
【0077】
次に、図11を参照して、MFP100で実行されるWebアプリケーションの処理について説明する。図11での各処理は、MFP100のROM102やHDD104等に記憶された制御プログラムがRAM103にロードされて、CPU101により実行される。なお、図11での処理は、図6のメニュー画面601でFTP送信ボタン606が押下されると開始される。
【0078】
ステップS1101では、CPU101は、ブラウザ440のCookie情報から、Cookievalue902にCookieitem901のjob_idの情報があるか否かを確認する。そして、CPU101は、job_idの情報がない場合は、実行中のジョブはないと判断して、ステップS1106に進み、job_idの情報がある場合は、実行中のジョブが存在すると判断して、ステップS1102に進む。
【0079】
ステップS1106では、CPU101は、Java(登録商標)Scriptを最初から実行して、処理を終了する。
【0080】
一方、ステップS1102では、CPU101は、Cookievalue902からCookieitem901のjob_stsの情報を取得する。
【0081】
そして、CPU101は、取得したjob_stsが「Setting」の場合は、ステップS1103に進み、「Setting」状態からの復帰処理を行う。また、CPU101は、取得したjob_stsが「Reading」の場合は、ステップS1104に進み、「Reading」状態からの復帰処理を行う。更に、CPU101は、取得したjob_stsが「Sending」の場合は、ステップS1105に進み、「Sending」状態からの復帰処理を行う。
【0082】
図12は、図11のステップS1103において、「Setting」状態であるジョブが残っている場合の復帰処理(画面表示及びジョブの変更処理)について説明するためのフローチャート図である。
【0083】
まず、ステップS1201では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。継続しますか?」の選択画面を表示して、ステップS1202に進み、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0084】
ステップS1202では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1203に進み、「継続」を指示された場合は、ステップS1205に進む。
【0085】
ステップS1203では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1204に進む。
【0086】
ステップS1204では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0087】
一方、ステップS1205では、CPU101は、ブラウザ440により、MFP100に保存されているCookieitem901がname、format、color、resolutionの値をCookievalue902から読み出す。そして、CPU101は、読み出したそれぞれの値をファイル名、ファイル形式、カラー設定、解像度のデフォルト設定値として操作表示部120にFTP送信設定画面602を表示し、処理を終了する。
【0088】
図13は、図11のステップS1104において、「Reading」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【0089】
ステップS1301では、CPU101は、ブラウザ440によりCookievalue902からCookieitem901がjob_idの情報を取得する。そして、CPU101は、ブラウザ440によりサービスプロバイダ450を介してジョブステータス管理部460にそのジョブの実行結果を問い合わせ、ステップS1302に進む。
【0090】
ステップS1302では、CPU101は、ブラウザ440によりステップS1302で問い合わせたジョブの実行結果を解析し、ジョブの実行結果が「Fail」の場合は、すでにジョブが失敗してキャンセルされたと判断し、ステップS1303に進む。また、CPU101は、ジョブの実行結果が「Running」の場合は、ジョブが実行中であると判断し、ステップS1306に進む。
【0091】
ステップS1303では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは失敗しました。」と表示し、ステップS1304に進む。
【0092】
ステップS1304では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1305に進む。
【0093】
ステップS1305では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示する。その際、ブラウザ440は、MFP100に格納されていたname、format、color、resolutionのCookie情報をデフォルト設定として操作表示部120にFTP送信設定画面602を表示する。
【0094】
一方、ステップS1306では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。継続しますか?」の選択画面を表示して、ステップS1307に進み、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0095】
ステップS1307では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1308に進み、「継続」を指示された場合は、ステップS1310に進む。
【0096】
ステップS1308では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1309に進む。
【0097】
ステップS1309では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0098】
ステップS1310では、CPU101は、ブラウザ440により操作表示部120にスキャン画面603を表示し、スキャン実行処理からJava(登録商標)Scriptを継続して、処理を終了する。
【0099】
図14は、図11のステップS1105において、「Sending」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【0100】
ステップS1401では、CPU101は、ブラウザ440によりCookievalue902からCookieitem901がjob_idの情報を取得する。そして、CPU101は、ブラウザ440によりサービスプロバイダ450を介してジョブステータス管理部460にそのジョブの実行結果を問い合わせ、ステップS1402に進む。
【0101】
ステップS1402では、CPU101は、ブラウザ440によりステップS1401で問い合わせたジョブの実行結果を解析し、ジョブの実行結果が「Fail」の場合は、すでにジョブが失敗してキャンセルされたと判断し、ステップS1403に進む。また、CPU101は、ジョブの実行結果が「Running」の場合は、ジョブが実行中であると判断して、ステップS1406に進み、ジョブの実行結果が「Success」の場合は、ジョブが正常に完了したと判断して、ステップS1408に進む。
【0102】
ステップS1403では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは失敗しました。」と表示し、ステップS1404に進む。
【0103】
ステップS1404では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1405に進む。
【0104】
ステップS1405では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示し、処理を終了する。その際、CPU101は、Cookieitem901のname、format、color、resolutionの情報をデフォルト設定として操作表示部120にFTP送信設定画面602を表示する。
【0105】
一方、ステップS1406では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。」と表示し、ステップS1407に進む。
【0106】
ステップS1407では、CPU101は、ブラウザ440により操作表示部120に送信中画面604を表示し、送信中処理からJava(登録商標)Scriptを継続して、処理を終了する。
【0107】
また、ステップS1408では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは成功しました。継続して実行しますか?」と表示し、ステップS1409に進んで、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0108】
ステップS1409では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1410に進み、「継続」を指示された場合は、ステップS1412に進む。
【0109】
ステップS1410では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1411に進む。
【0110】
ステップS1411では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを終了して操作表示部120にメニュー画面601を表示し、処理を終了する。
【0111】
一方、ステップS1412では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1413に進む。
【0112】
ステップS1413では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0113】
図15は、図13のステップS1306において「実行中のジョブがあります。継続しますか?」と操作表示部120に選択画面を表示して、ユーザからの「継続」または「中止」の指示を待ち受ける画面の一例を示す図である。
【0114】
図15の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1501と、ジョブの詳細1502に表示する。そして、継続ボタン1503が押下されると、スキャン中画面603を表示して処理を継続し、中止ボタン1504が押下されると、ジョブの処理を中止し、FTP送信設定画面602を表示する。
【0115】
図16は、図13のステップS1303において「前回実行中のジョブは失敗しました。」と操作表示部120に表示して、ユーザに通知する画面の一例を示す図である。
【0116】
図16の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1601と、ジョブの詳細1602に表示する。そして、OKボタン1603が押下されると、Cookie情報をクリアし、FTP送信設定画面602から処理を開始する。
【0117】
図17は、図14のステップS1408において「前回実行中のジョブは成功しました。」と操作表示部120に表示して、ユーザに通知する画面の一例を示す図である。
【0118】
図17の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1701と、ジョブの詳細1702に表示する。そして、継続ボタン1703が押下されると、Cookie情報をクリアしてFTP送信設定画面602から処理を開始し、中止ボタン1704が押下されると、Java(登録商標)Scriptを終了し、メニュー画面601を表示する。
【0119】
以上説明したように、本実施形態では、ジョブ実行中にユーザがブラウザ440により操作表示部120に表示される操作画面を他の画面に遷移する操作を行っても、前回実行していたジョブを継続して実行することができる。また、前回実行中のジョブが正常に完了していない場合は、前回実行していたジョブの設定値をデフォルト設定(初期値)として操作画面に表示することができ、ユーザが再度設定を行う手間を省くことができる。
【0120】
なお、本発明は、上記実施形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【0121】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。ネットワーク又は各種記憶媒体を介して取得したソフトウェア(プログラム)をパーソナルコンピュータ(CPU,プロセッサ)にて実行することでも実現できる。
【符号の説明】
【0122】
100 MFP
200 サーバ
【技術分野】
【0001】
本発明は、例えば、サーバから提供される複数の操作画面を表示部に表示するブラウザを備える情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
PCなどの情報処理装置では、ネットワークを介してサーバから提供される操作画面をブラウザを介して表示部に表示するものがある。
【0003】
情報処理装置の表示部に操作画面を表示するには、まず、情報処理装置からサーバに対して操作画面を要求(リクエスト)する。そして、サーバのアプリケーションが情報処理装置からの要求に応答して、ブラウザを介して表示部に操作画面を表示させるためのHTMLデータを情報処理装置に送信する。情報処理装置のブラウザは、受信したHTMLデータを解析し、HTMLデータの記述に基づいた操作画面を表示部に表示する。
【0004】
また、情報処理装置の表示部に表示された操作画面を介してユーザが指示を入力すると、入力された指示がブラウザを介してサーバに通知される。そして、この通知を受けたサーバのアプリケーションは、入力された指示に従って処理を実行する。
【0005】
ところで、最近では、スキャナやプリンタを備えたMFP(Multi Function Peripheral)等にも、上述したブラウザを備えるものがある。そして、MFPは、上述した手順と同様に、サーバから提供される操作画面をブラウザを介して表示部に表示し、ユーザからの各種指示を受け付ける。
【0006】
一方、MFPの各機能を実行するための指示を入力する操作画面と、操作画面での操作に応じてMFPを制御する制御スクリプトとをサーバからMFPに提供する技術が提案されている(特許文献1)。
【0007】
この提案では、表示部に表示された操作画面を介して入力された指示に基づいて、ブラウザに読み込まれている制御スクリプトから処理の実行を指示し、制御スクリプトにより実行されるMFPの機能は、ジョブとしてMFP内に生成される。
【0008】
そして、生成されたジョブは、MFPのスキャナ装置の制御や印刷装置の制御とともに、ユーザに対して、次の入力の要求やエラー改善の要求と言った対話的な処理の要求を行う。この処理の要求を制御スクリプトが受け取りさらに次の処理を行う。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−003833号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、ブラウザは、「戻る」「進む」「アドレスフィールド」「お気に入り」等の表示部での画面遷移を実行する機能を持つのが一般的である。
【0011】
しかし、上記特許文献1では、MFPのジョブ実行途中に、ユーザが操作画面の「戻る」ボタン等を操作すると、表示部に表示中の操作画面が切り替わってしまい、操作画面に対応する制御スクリプトが中断されてしまう。このため、実行中のジョブの制御ができなくなってしまう。
【0012】
また、ユーザが操作画面の「戻る」ボタン等を操作すると、実行中のジョブがユーザの入力待ちや、エラー状態で停止した場合、MFP内に処理が継続できないジョブが滞留してしまう。
【0013】
そこで、本発明は、ブラウザでジョブを実行している途中でユーザが操作画面の遷移操作を行っても、実行中のジョブを継続して実行することが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御手段と、前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行手段と、前記ジョブ実行手段が実行するジョブの設定情報を格納する格納手段と、前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行手段は、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする。
【発明の効果】
【0015】
本発明によれば、ジョブの実行中にユーザが操作画面の遷移操作を行っても、実行中のジョブを継続することが可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明の情報処理装置の実施形態の一例であるMFPを備える印刷システムの構成例を説明するための図である。
【図2】MFPの構成例を説明するためのブロック図である。
【図3】サーバの構成例を説明するためのブロック図である。
【図4】(a)はMFPのソフトウェアの構成例を説明するためのブロック図、(b)はサーバのソフトウェアの構成例を説明するためのブロック図である。
【図5】MFPのブラウザ及びサービスプロバイダとサーバのWebアプリケーションとの間における一連の処理について説明するためのシーケンス図である。
【図6】MFPの機能の一連の処理で発生する操作表示部での画面遷移の一例を示す図である。
【図7】画面表示用のHTMLデータと制御スクリプトの一例を示す図である。
【図8】ブラウザが画面遷移を操作する画面とともに操作表示部に表示するスキャン画面の表示例を示す図である。
【図9】MFPのブラウザに格納されるCookie情報の一例を示す図である。
【図10】MFPのステータス判断部が管理するジョブステータス(ジョブ実行状態)のリストの一例を示す図である。
【図11】MFPで実行されるWebアプリケーションの処理について説明するためのフローチャート図である。
【図12】図11のステップS1103において、「Setting」状態であるジョブが残っている場合の復帰処理について説明するためのフローチャート図である。
【図13】図11のステップS1104において、「Reading」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【図14】図11のステップS1105において、「Sending」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【図15】図13のステップS1306において「実行中のジョブがあります。継続しますか?」と操作表示部に表示して、ユーザからの「継続」または「中止」の指示を待ち受ける画面の一例を示す図である。
【図16】図13のステップS1303において「前回実行中のジョブは失敗しました。」と操作表示部に表示して、ユーザに通知する画面の一例を示す図である。
【図17】図14のステップS1408において「前回実行中のジョブは成功しました。」と操作表示部に表示して、ユーザに通知する画面の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例を図面を参照して説明する。
【0018】
図1は、本発明の情報処理装置の実施形態の一例であるMFPを備える印刷システムの構成例を説明するための図である。
【0019】
図1に示すように、本実施形態のMFP100は、LAN等のネットワーク130を介してサーバ200との間で互いに通信可能に接続されている。MFP100では、ブラウザ440(図4参照)が動作し、ブラウザ440は、サーバ200で動作するWebアプリケーション410(図4参照)を実行する。
【0020】
図2は、MFP100の構成例を説明するためのブロック図である。図2において、制御部110は、CPU101、ROM102、RAM103、HDD104、操作表示部I/F106、プリンタI/F107、スキャナI/F108、及びネットワークI/F109を有する。
【0021】
CPU101は、ROM102に記憶された制御プログラムをRAM103に読み出して読取制御や送信制御などのMFP100全体の動作を制御する。ROM102は、ブートプログラムや固定パラメータ等を格納する。RAM103は、CPU101の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD104は、画像データや各種プログラム等を格納する。NVRAM105は、MFP100の各種設定値を保存する。
【0022】
操作表示部I/F106は、操作表示部120と接続するためのインタフェイスであり、操作表示部120には、タッチパネル機能を有する液晶等の表示部やキーボードなどが設けられて、各種情報の表示やユーザからの指示入力を受け付ける。プリンタI/F107は、プリンタ121と接続するためのインタフェイスであり、プリンタI/F107を介して画像データがプリンタ121に転送され、プリンタ121は、受信した画像データをシートに印刷する。
【0023】
スキャナI/F108は、スキャナ122と接続するためのインタフェイスであり、スキャナ122は、原稿の画像を読み取って画像データを生成し、スキャナI/F108を介して制御部110に出力する。ネットワークI/F109は、MFP100をLAN等のネットワーク130に接続するためのインタフェイスであり、ネットワークに接続された外部装置(例えば、サーバ200)に画像データや情報を送信したり、外部装置から各種情報を受信したりする。
【0024】
図3は、サーバ200の構成例を説明するためのブロック図である。図3において、制御部310は、CPU311、ROM312、RAM313、HDD314、及びネットワークI/F315を有する。
【0025】
CPU311は、ROM312に記憶された制御プログラムを読み出してサーバ200全体の動作を制御する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、画像データや各種プログラム、及び後述する各種情報テーブルを記憶する。
【0026】
ネットワークI/F315は、LAN等のネットワーク130に接続するためのインタフェイスであり、ネットワーク130に接続されたMFP100や他の装置との間で各種情報を送受信する。
【0027】
図4(a)は、MFP100のソフトウェアの構成例を説明するためのブロック図である。
【0028】
図4(a)に示すように、MFP100は、ブラウザ440、サービスプロバイダ450、及びジョブステータス管理部460を備える。
【0029】
ブラウザ440は、通信部441、解析部442、画面表示制御部443、スクリプト実行部444、画面操作制御部445、及びCookie情報管理部446を有する。
【0030】
通信部441は、HTTPプロトコルに従ってサーバ200の後述するWebアプリケーション410のプレゼンテーション部411と通信する。具体的には、通信部441は、Webアプリケーション410に対してブラウザ440で表示する複数の操作画面を要求するリクエストメッセージを送信する。また、通信部441は、Webアプリケーション410から提供されるレスポンスメッセージを受信する。
【0031】
更に、通信部441は、サービスプロバイダ450の通信部451に対して機能の実行を依頼するリクエストメッセージを送信する。また、通信部441は、サービスプロバイダ450から送信されるレスポンスメッセージを受信する。
【0032】
解析部442は、Webアプリケーション410から受信したレスポンスメッセージを解析する。レスポンスメッセージには、HTMLデータと制御スクリプトが含まれる。HTMLデータには、ブラウザ440が操作表示部120に表示すべき操作画面の内容を示す記述が含まれており、制御スクリプトには、MFP100の機能を制御するための記述が含まれている。
【0033】
画面表示制御部443は、解析部442でのHTMLデータの解析結果に基づいて、操作表示部120に操作画面を表示する。スクリプト実行部444は、解析部442での制御スクリプトの解析結果に基づいて処理を行う。制御スクリプトには、MFP100の機能を制御するためにサービスプロバイダ450へ指示を出すコードや、サービスプロバイダ450のレスポンスに応じて操作画面の画面変更等の処理を行うコードが含まれる。
【0034】
画面操作制御部445は、ブラウザ440が備えるユーザインタフェースの制御、例えば入力ボタンの有効化/無効化、表示/非表示等の処理を実行する。Cookie情報管理部446は、スクリプト実行部444で実行される制御スクリプトにてCookie情報の制御を指示された場合に処理を実行する。具体的には、Cookie情報管理部446は、スクリプト実行部444からCookie情報の読み出し、書き込み、クリア等の要求が指示された場合に、要求された指示に応じた処理を実行する。
【0035】
また、サービスプロバイダ450は、通信部451及びジョブ生成部452を有する。
【0036】
通信部451は、ブラウザ440の通信部441からジョブ生成を要求するリクエストメッセージを受信する。ジョブ生成部452は、通信部451が受信したリクエストメッセージを解析し、解析結果に基づき、要求された処理を実行するためのジョブを生成して実行する。
【0037】
また、ジョブステータス管理部460は、ステータス判断部461及びステータス通知部462を有する。
【0038】
ステータス判断部461は、ジョブ生成部452が実行するジョブのステータス(実行状態)を管理し、ステータスに応じた処理を実施する。ステータス通知部462は、ステータス判断部461で管理するジョブのステータスを監視し、ジョブのステータスが変化した際にブラウザ440の画面操作制御部445にジョブのステータスを通知する。
【0039】
なお、ジョブステータス管理部460は、ブラウザ440及びサービスプロバイダ450のいずれかに配置されていてもよい。ジョブステータス管理部460がサービスプロバイダ450に配置されている場合は、ステータス通知部462は、ステータス判断部461で管理するジョブの実行ステータスが変化すると、通信部451にジョブのステータスを通知する。そして、通信部451は、ステータス通知部462から通知されたジョブの実行ステータスをブラウザ440の通信部441に送信して、画面操作制御部445に通知する。
【0040】
図4(b)は、サーバ200のソフトウェアの構成例を説明するためのブロック図である。
【0041】
図4(b)に示すように、サーバ200は、Webアプリケーション410を備え、Webアプリケーション410は、プレゼンテーション部411、及びロジック部412を有する。
【0042】
プレゼンテーション部411は、MFP100のブラウザ440の通信部441と通信して、ブラウザ440から送信されるリクエストメッセージを受信し、受信したリクエストメッセージをロジック部412へ通知して、ロジック部412からの応答を待つ。ロジック部412からの応答を受け取ったプレゼンテーション部411は、応答内容に従ってブラウザ440が操作表示部120に表示すべき操作画面に対応するHTMLデータと制御スクリプトをレスポンスメッセージとしてブラウザ440に送信する。
【0043】
ロジック部412は、プレゼンテーション部411から通知されるリクエストメッセージに応じて各種処理を実行すると共に、ブラウザ440が操作表示部120に表示する画面情報のHTMLデータとMFP100にて実行する処理の制御スクリプトを生成する。
【0044】
ここでの制御スクリプトは、例えば、MFP100のプリンタ121による印刷処理の実行や、スキャナ122による読み取り処理の実行、あるいはネットワークI/F109を介した送信処理の実行を依頼するための制御スクリプトである。サーバ200からMFP100に対して処理の実行を依頼する場合、ロジック部412は、MFP100に対してレスポンスするHTMLデータと制御スクリプトとをプレゼンテーション部411に渡す。
【0045】
次に、図5を参照して、MFP100のブラウザ440及びサービスプロバイダ450とサーバ200のWebアプリケーション410との間における一連の処理について説明する。
【0046】
まず、MFP100のブラウザ440がユーザにより起動されると、ステップS501では、ブラウザ440は、HTTPのリクエストをWebアプリケーション410に対して行う。
【0047】
ステップS502では、Webアプリケーション410は、受け付けたリクエストに従い、ブラウザ440が操作表示部120に表示する複数の操作画面のHTMLデータとブラウザ440にて実行する制御スクリプトを生成し、ブラウザ440にレスポンスする。
【0048】
例えば、Webアプリケーション410は、受け付けたリクエストがメニュー画面である場合は、メニュー画面表示用のHTMLデータをブラウザ440にレスポンスする。また、Webアプリケーション410は、受け付けたリクエストがスキャン実行の操作画面である場合は、スキャン画面表示用のHTMLデータとスキャン実行用の制御スクリプトをブラウザ440にレスポンスする。
【0049】
ステップS503では、ブラウザ440は、Webアプリケーション410から受信したHTMLデータを解析して操作表示部120に操作画面を表示する。また、ブラウザ440は、Webアプリケーション410から受信した制御スクリプトを解析し、サービスプロバイダ450にMFP100の機能の実行を指示する。
【0050】
ステップS504では、サービスプロバイダ450は、ステップS503でのブラウザ440からの指示によりMFP100の機能を実行し、実行結果をブラウザ440にレスポンスする。
【0051】
ステップS505では、ブラウザ440は、ステップS504にてサービスプロバイダ450から受け取った機能の実行結果を制御スクリプトで処理し、その実行結果に応じた処理を実施する。
【0052】
本例では、ブラウザ440は、受け取った機能の実行結果に応じてWebアプリケーション410に対して再度HTTPデータの要求を行う。例えば、ブラウザ440は、受け取った機能の実行結果が処理終了の場合は、処理終了画面のHTTPデータの要求を行い、受け取った機能の実行結果が何らかのエラーの場合は、エラー処理画面のHTTPデータの要求を行う。
【0053】
ステップS506では、Webアプリケーション410は、ステップS505でブラウザ440から要求された内容に応じて、操作画面のHTMLデータと制御スクリプトを生成し、ブラウザ440にレスポンスする。以上の処理を繰り返すことにより、MFP100の機能の一連の処理を進めていくことになる。
【0054】
図6は、MFP100の機能の一連の処理で発生する操作表示部120での画面遷移の一例を示す図である。
【0055】
図6に示すように、本実施形態では、メニュー画面601、FTP送信設定画面602、スキャン画面603、送信中画面604、及び送信完了画面605の順に操作表示部120での画面が遷移する。それぞれの画面は、ブラウザ440により操作表示部120に表示され、ユーザ操作によって上述した順で遷移していく。なお、制御スクリプトによって画面遷移するようにしてもよい。
【0056】
メニュー画面601は、MFP100の機能のうち、どの機能を利用するかを選択する画面である。このメニュー画面601からユーザが所定の機能を選択すると、選択した機能に対応した画面に遷移する。
【0057】
FTP送信設定画面602は、メニュー画面601でユーザがFTP送信ボタン606を押下して、FTP送信機能を選択した場合に表示される画面であり、この画面602にてFTP送信のための設定を行い、FTP送信機能の実行を指示する。
【0058】
スキャン画面603は、FTP送信設定画面602でユーザが実行ボタン607を押下し、FTP送信機能が実行されている状態の画面であり、この画面603では、制御スクリプトがスキャンのジョブを制御して、原稿の連続読み込み等の制御を行う。
【0059】
送信中画面604は、スキャン画面603にてユーザが送信ボタン608を押下し、スキャンで読み込んだ原稿の画像データをFTPサーバへ送信している状態の画面である。
【0060】
送信完了画面605は、スキャンで読み込んだ原稿の画像データのFTPサーバへの送信が終了した場合の画面である。
【0061】
図7は、画面表示用のHTMLデータと制御スクリプトの一例を示す図である。図7の例では、FTP送信設定画面602に対応するHTMLデータ及び制御スクリプトのデータ701を示しており、このデータ701は、MFP100からの要求に応じてサーバ200で生成される。なお、本例ではJava(登録商標)Scriptを制御スクリプトの一例として説明する。
【0062】
図7に示すように、データ701は、ブロック702〜705に区分されている。以下、ブロック毎に説明する。
【0063】
[ブロック702]
ブロック702では、Webアプリケーション410にてFTP送信実行のためのパラメータの一部がセットされる。endpoint変数706には、FTP送信用のサービスプロバイダ450へリクエストを出すためのURL情報がセットされる。ftpserver変数707には、データを送信するFTPサーバのURLがセットされる。ftppath変数708には、データを保存するFTPサーバのパスがセットされる。
【0064】
[ブロック703]
ブロック703では、実際にFTP送信用のサービスプロバイダ450を呼び出すための処理が記述される。ここでは、SOAPを利用してサービスプロバイダ450を呼び出す場合を例示しており、invoke_ws_scantoftp関数709が定義されている。SoapParameter関数710は、SOAP形式のパラメータを生成するための関数で、本例では“String”型のデータとして、FTP送信するファイル名、ファイルの形式、カラー設定、解像度、送信先FTPサーバ、保存先パスを設定している。
【0065】
また、create_soap_message関数711では、endpointに対して実行を指示するSOAPメッセージの生成を行う。更に、send_soap_message関数712で、実際にサービスプロバイダ450に対してSOAPのリクエストを実行する。その際、job_id変数にFTP送信ジョブを一意に識別するジョブIDが返ってくる。
【0066】
[ブロック704]
ブロック704では、execute_scan関数713が定義されており、ユーザの入力したFTP送信するファイル名、ファイル形式、解像度をパラメータとし、invoke_ws_scantoftp関数709の呼び出す処理714を行う。そして、invoke_ws_scantoftp関数709の実行状態として得られるジョブID、ジョブステータス、ファイル名、ファイル形式、カラー設定、解像度をCookieに保存する処理715を行う。このように、処理715を行うことで、ジョブの呼び出し中に制御スクリプトが中断した場合であっても、Cookieに保存された設定情報を元に制御スクリプトを継続することが可能となる。また、invoke_ws_scantoftp関数709の実行状態として得られるジョブIDをパラメータとし、次画面のデータ取得のためのリクエスト処理の実行指示を行う処理716を行う。
【0067】
[ブロック705]
ブロック705では、ブラウザ440が操作表示部120に表示する画面の内容に加え、ユーザの入力フォーム717、次画面のHTTP要求を行うためのフォーム718が定義されている。入力フォーム717では、例えば、FTP送信するファイルの名称の入力と、ファイル形式の選択が可能であり、実行ボタンを押下するとexecute_scan関数713を呼び出す。
【0068】
また、ブロック704の処理716により実行指示がなされると、フォーム718が実行される。フォーム718では、processing.aspxに対しジョブIDをパラメータとしてPOST要求を実施する。
【0069】
図8は、ブラウザ440が画面遷移を操作する画面とともに操作表示部120に表示するスキャン画面603(図6)の表示例を示す図である。
【0070】
図8において、戻るボタン802は、現在表示している画面の直前に表示していた画面に遷移するためのボタンである。進むボタン803は、戻るボタン802で表示している画面を切り替えた場合、切り替え前の画面に再度戻すためのボタンである。アドレスフィールド804は、現在表示している画面のURLを表示する。また、アドレスフィールド804には、URLを直接入力することで、そのURLにHTTPデータの要求を行い、画面の表示を切り替えることも可能である。戻るボタン802、進むボタン803及びアドレスフィールド804は、画面603とは独立して操作可能である。つまり、ジョブの実行中に戻るボタン802、進むボタン803及びアドレスフィールド804のいずれかを操作すると現在実行中の制御スクリプトが中断して他の画面に切り替わってしまう。その結果、実行途中のジョブ制御ができなくなってしまう。
【0071】
図9は、MFP100のブラウザ440(Cookie情報管理部446)に格納されるCookie情報の一例を示す図である。Cookie情報を格納する処理は、図7に示す処理715にて行われる。
【0072】
Cookieitem901には、job_id、job_sts、name、format、color、resolutionが、それぞれジョブID、ジョブステータス、ファイル名、ファイル形式、カラー設定、解像度の情報として格納される。Cookieitem901の各情報はCookievalue902に格納され、Cookievalue902に格納された設定情報は、ジョブステータスに関連付けられており、ジョブステータスにより変化する。例えば、ジョブステータスがSettingである場合は、図6の画面602を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901には、Cookievalue902に値が格納されない。
【0073】
また、ジョブステータスがReadingである場合は、図6の画面603を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901には、Cookievalue902に画面602にて設定された値が格納される。ジョブステータスがSendingである場合は、図6の画面604を操作表示部120に表示している状態に対応している。この場合、その他のCookieitem901のCookievalue902には、ジョブステータスがReadingである場合と同様に、画面602で設定された値が格納される。
【0074】
図9に示すように、ブラウザ440は、制御スクリプトにしたがってジョブを呼び出す際に、ジョブの実行状態をCookie情報としてCookie情報管理部446に格納する。この結果、制御スクリプトが中断した場合にCookie情報を参照することにより、実行途中のジョブを継続することが可能となる。
【0075】
図10は、MFP100のステータス判断部461が管理するジョブの実行結果のリストの一例を示す図である。
【0076】
図10に示すように、ステータス判断部461は、job_idに対応するジョブの実行結果を管理する。ジョブ実行結果がSuccessであるjob_idのジョブは、ジョブが成功したことを示し、ジョブ実行結果がFailであるjob_idのジョブは、ジョブが失敗、即ち、ジョブが正常に完了にしなかったことを示す。また、ジョブ実行結果がRunningであるjob_idのジョブは、ジョブが実行中であることを示す。
【0077】
次に、図11を参照して、MFP100で実行されるWebアプリケーションの処理について説明する。図11での各処理は、MFP100のROM102やHDD104等に記憶された制御プログラムがRAM103にロードされて、CPU101により実行される。なお、図11での処理は、図6のメニュー画面601でFTP送信ボタン606が押下されると開始される。
【0078】
ステップS1101では、CPU101は、ブラウザ440のCookie情報から、Cookievalue902にCookieitem901のjob_idの情報があるか否かを確認する。そして、CPU101は、job_idの情報がない場合は、実行中のジョブはないと判断して、ステップS1106に進み、job_idの情報がある場合は、実行中のジョブが存在すると判断して、ステップS1102に進む。
【0079】
ステップS1106では、CPU101は、Java(登録商標)Scriptを最初から実行して、処理を終了する。
【0080】
一方、ステップS1102では、CPU101は、Cookievalue902からCookieitem901のjob_stsの情報を取得する。
【0081】
そして、CPU101は、取得したjob_stsが「Setting」の場合は、ステップS1103に進み、「Setting」状態からの復帰処理を行う。また、CPU101は、取得したjob_stsが「Reading」の場合は、ステップS1104に進み、「Reading」状態からの復帰処理を行う。更に、CPU101は、取得したjob_stsが「Sending」の場合は、ステップS1105に進み、「Sending」状態からの復帰処理を行う。
【0082】
図12は、図11のステップS1103において、「Setting」状態であるジョブが残っている場合の復帰処理(画面表示及びジョブの変更処理)について説明するためのフローチャート図である。
【0083】
まず、ステップS1201では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。継続しますか?」の選択画面を表示して、ステップS1202に進み、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0084】
ステップS1202では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1203に進み、「継続」を指示された場合は、ステップS1205に進む。
【0085】
ステップS1203では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1204に進む。
【0086】
ステップS1204では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0087】
一方、ステップS1205では、CPU101は、ブラウザ440により、MFP100に保存されているCookieitem901がname、format、color、resolutionの値をCookievalue902から読み出す。そして、CPU101は、読み出したそれぞれの値をファイル名、ファイル形式、カラー設定、解像度のデフォルト設定値として操作表示部120にFTP送信設定画面602を表示し、処理を終了する。
【0088】
図13は、図11のステップS1104において、「Reading」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【0089】
ステップS1301では、CPU101は、ブラウザ440によりCookievalue902からCookieitem901がjob_idの情報を取得する。そして、CPU101は、ブラウザ440によりサービスプロバイダ450を介してジョブステータス管理部460にそのジョブの実行結果を問い合わせ、ステップS1302に進む。
【0090】
ステップS1302では、CPU101は、ブラウザ440によりステップS1302で問い合わせたジョブの実行結果を解析し、ジョブの実行結果が「Fail」の場合は、すでにジョブが失敗してキャンセルされたと判断し、ステップS1303に進む。また、CPU101は、ジョブの実行結果が「Running」の場合は、ジョブが実行中であると判断し、ステップS1306に進む。
【0091】
ステップS1303では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは失敗しました。」と表示し、ステップS1304に進む。
【0092】
ステップS1304では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1305に進む。
【0093】
ステップS1305では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示する。その際、ブラウザ440は、MFP100に格納されていたname、format、color、resolutionのCookie情報をデフォルト設定として操作表示部120にFTP送信設定画面602を表示する。
【0094】
一方、ステップS1306では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。継続しますか?」の選択画面を表示して、ステップS1307に進み、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0095】
ステップS1307では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1308に進み、「継続」を指示された場合は、ステップS1310に進む。
【0096】
ステップS1308では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1309に進む。
【0097】
ステップS1309では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0098】
ステップS1310では、CPU101は、ブラウザ440により操作表示部120にスキャン画面603を表示し、スキャン実行処理からJava(登録商標)Scriptを継続して、処理を終了する。
【0099】
図14は、図11のステップS1105において、「Sending」状態であるジョブが残っている場合の復帰処理を説明するためのフローチャート図である。
【0100】
ステップS1401では、CPU101は、ブラウザ440によりCookievalue902からCookieitem901がjob_idの情報を取得する。そして、CPU101は、ブラウザ440によりサービスプロバイダ450を介してジョブステータス管理部460にそのジョブの実行結果を問い合わせ、ステップS1402に進む。
【0101】
ステップS1402では、CPU101は、ブラウザ440によりステップS1401で問い合わせたジョブの実行結果を解析し、ジョブの実行結果が「Fail」の場合は、すでにジョブが失敗してキャンセルされたと判断し、ステップS1403に進む。また、CPU101は、ジョブの実行結果が「Running」の場合は、ジョブが実行中であると判断して、ステップS1406に進み、ジョブの実行結果が「Success」の場合は、ジョブが正常に完了したと判断して、ステップS1408に進む。
【0102】
ステップS1403では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは失敗しました。」と表示し、ステップS1404に進む。
【0103】
ステップS1404では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1405に進む。
【0104】
ステップS1405では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示し、処理を終了する。その際、CPU101は、Cookieitem901のname、format、color、resolutionの情報をデフォルト設定として操作表示部120にFTP送信設定画面602を表示する。
【0105】
一方、ステップS1406では、CPU101は、ブラウザ440により操作表示部120に「実行中のジョブがあります。」と表示し、ステップS1407に進む。
【0106】
ステップS1407では、CPU101は、ブラウザ440により操作表示部120に送信中画面604を表示し、送信中処理からJava(登録商標)Scriptを継続して、処理を終了する。
【0107】
また、ステップS1408では、CPU101は、ブラウザ440により操作表示部120に「前回実行中のジョブは成功しました。継続して実行しますか?」と表示し、ステップS1409に進んで、ユーザからの「継続」または「中止」の指示を待ち受ける。
【0108】
ステップS1409では、CPU101は、ブラウザ440によりユーザの入力を解析し、「中止」を指示された場合は、ステップS1410に進み、「継続」を指示された場合は、ステップS1412に進む。
【0109】
ステップS1410では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1411に進む。
【0110】
ステップS1411では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを終了して操作表示部120にメニュー画面601を表示し、処理を終了する。
【0111】
一方、ステップS1412では、CPU101は、ブラウザ440によりCookie情報をクリアし、ステップS1413に進む。
【0112】
ステップS1413では、CPU101は、ブラウザ440によりJava(登録商標)Scriptを最初から実行し、操作表示部120にFTP送信設定画面602を表示して、処理を終了する。
【0113】
図15は、図13のステップS1306において「実行中のジョブがあります。継続しますか?」と操作表示部120に選択画面を表示して、ユーザからの「継続」または「中止」の指示を待ち受ける画面の一例を示す図である。
【0114】
図15の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1501と、ジョブの詳細1502に表示する。そして、継続ボタン1503が押下されると、スキャン中画面603を表示して処理を継続し、中止ボタン1504が押下されると、ジョブの処理を中止し、FTP送信設定画面602を表示する。
【0115】
図16は、図13のステップS1303において「前回実行中のジョブは失敗しました。」と操作表示部120に表示して、ユーザに通知する画面の一例を示す図である。
【0116】
図16の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1601と、ジョブの詳細1602に表示する。そして、OKボタン1603が押下されると、Cookie情報をクリアし、FTP送信設定画面602から処理を開始する。
【0117】
図17は、図14のステップS1408において「前回実行中のジョブは成功しました。」と操作表示部120に表示して、ユーザに通知する画面の一例を示す図である。
【0118】
図17の例では、MFP100に保存されているCookie情報から取得したjob_sts、name、format、color、resolutionの情報を、ジョブの状態1701と、ジョブの詳細1702に表示する。そして、継続ボタン1703が押下されると、Cookie情報をクリアしてFTP送信設定画面602から処理を開始し、中止ボタン1704が押下されると、Java(登録商標)Scriptを終了し、メニュー画面601を表示する。
【0119】
以上説明したように、本実施形態では、ジョブ実行中にユーザがブラウザ440により操作表示部120に表示される操作画面を他の画面に遷移する操作を行っても、前回実行していたジョブを継続して実行することができる。また、前回実行中のジョブが正常に完了していない場合は、前回実行していたジョブの設定値をデフォルト設定(初期値)として操作画面に表示することができ、ユーザが再度設定を行う手間を省くことができる。
【0120】
なお、本発明は、上記実施形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【0121】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。ネットワーク又は各種記憶媒体を介して取得したソフトウェア(プログラム)をパーソナルコンピュータ(CPU,プロセッサ)にて実行することでも実現できる。
【符号の説明】
【0122】
100 MFP
200 サーバ
【特許請求の範囲】
【請求項1】
外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御手段と、
前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行手段と、
前記ジョブ実行手段が実行するジョブの設定情報を格納する格納手段と、
前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行手段は、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする情報処理装置。
【請求項2】
前記表示制御手段は、前記実行中のジョブを継続するか否かをユーザ操作により選択させる画面を前記表示部に表示する、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示制御手段は、前記格納手段により格納されたジョブの設定情報を前記表示部に表示する、ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御ステップと、
前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行ステップと、
前記ジョブ実行手段が実行するジョブの設定情報を格納手段に格納する格納ステップと、
前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行ステップでは、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする情報処理装置の制御方法。
【請求項5】
請求項4に記載の制御方法を情報処理装置に実行させるための、コンピュータが読み取り可能なプログラム。
【請求項1】
外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御手段と、
前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行手段と、
前記ジョブ実行手段が実行するジョブの設定情報を格納する格納手段と、
前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行手段は、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする情報処理装置。
【請求項2】
前記表示制御手段は、前記実行中のジョブを継続するか否かをユーザ操作により選択させる画面を前記表示部に表示する、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示制御手段は、前記格納手段により格納されたジョブの設定情報を前記表示部に表示する、ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
外部装置から提供される複数の操作画面をユーザ操作により表示部に切り替えて表示する表示制御ステップと、
前記表示部に表示された操作画面でのユーザ操作に基づいて、ジョブを実行するジョブ実行ステップと、
前記ジョブ実行手段が実行するジョブの設定情報を格納手段に格納する格納ステップと、
前記ジョブ実行手段がジョブを実行している途中で、前記表示部に表示された操作画面がユーザ操作により切り替えられた場合、前記ジョブ実行ステップでは、前記格納手段に格納されたジョブの設定情報に基づいて前記実行中のジョブを継続することを特徴とする情報処理装置の制御方法。
【請求項5】
請求項4に記載の制御方法を情報処理装置に実行させるための、コンピュータが読み取り可能なプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2011−239337(P2011−239337A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2010−111208(P2010−111208)
【出願日】平成22年5月13日(2010.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願日】平成22年5月13日(2010.5.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]