(57)【特許請求の範囲】
【請求項１】
Ｗｅｂサーバにより提供される操作画面を表示するＷｅｂブラウザを備えた情報処理装置であって、
前記Ｗｅｂブラウザに表示された操作画面を介したユーザ操作に基づいて、前記Ｗｅｂサーバにリクエストを送信する送信手段と、
前記送信手段が送信したリクエストに基づいて前記Ｗｅｂサーバから処理の実行を要求された場合に、当該要求された処理を実行する処理手段と、
前記送信手段が送信したリクエストに対する前記Ｗｅｂサーバからのレスポンスであって、前記処理手段により実行された処理の結果を示すレスポンスを受信する受信手段と、
前記処理手段が前記Ｗｅｂサーバからの要求に基づく処理を実行しているときは、前記送信手段がリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じたリクエストの無効化をすることなく、前記処理手段が前記Ｗｅｂサーバからの要求に基づく処理を実行していないときは、前記送信手段がリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じてリクエストを無効化する制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記Ｗｅｂブラウザと前記Ｗｅｂサーバの間で確立されている複数のセッションのうち、前記所定のタイムアウト時間が経過したセッションにおけるリクエストを無効化することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記Ｗｅｂブラウザと前記Ｗｅｂサーバの間のセッションを識別するためのセッションＩＤと、当該セッションＩＤに対応する処理の実行状況とを対応付けて管理する管理手段と、
前記Ｗｅｂサーバにより発行される前記セッションＩＤを前記管理手段に登録する登録手段と、
を更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記送信手段がリクエストを送信してからの経過時間を計時する計時手段を更に備え、
前記制御手段は、前記送信手段がリクエストを送信した後、前記処理手段が前記Ｗｅｂサーバからの要求に基づく処理を実行しているときに、前記計時手段により計時されている経過時間をリセットすることを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記処理手段が実行した処理の結果を前記Ｗｅｂサーバに通知する通知手段を更に備え、
前記制御手段は、前記通知手段が前記通知を行えない場合に、前記送信手段が送信したリクエストを無効化することを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記処理手段は、原稿上の画像を読み取って画像データを生成する読取手段、または画像データに基づいて印刷を行う印刷手段を少なくとも含むことを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
Ｗｅｂサーバにより提供される操作画面を表示するＷｅｂブラウザを備えた情報処理装置の制御方法であって、
前記情報処理装置が、
前記Ｗｅｂブラウザに表示された操作画面を介したユーザ操作に基づいて、前記Ｗｅｂサーバにリクエストを送信する送信工程と、
前記送信工程で送信したリクエストに基づいて前記Ｗｅｂサーバから処理の実行を要求された場合に、当該要求された処理を実行する処理工程と、
前記送信工程で送信されたリクエストに対する前記Ｗｅｂサーバからのレスポンスであって、前記処理工程で実行された処理の結果を示すレスポンスを受信する受信工程と、
前記処理工程で前記Ｗｅｂサーバからの要求に基づく処理を実行しているときは、前記送信工程でリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じたリクエストの無効化をすることなく、前記処理工程で前記Ｗｅｂサーバからの要求に基づく処理を実行していないときは、前記送信工程でリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じてリクエストを無効化する制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバに接続され、当該Ｗｅｂサーバにより提供される操作画面を表示するＷｅｂブラウザを備えた情報処理装置、情報処理装置の制御方法、プログラムに関する。
【背景技術】
【０００２】
ＰＣなどの情報処理装置がネットワーク上のＷｅｂサーバに接続され、Ｗｅｂサーバにより提供される操作画面を、情報処理装置が備えるＷｅｂブラウザ上に表示することが知られている。
【０００３】
この場合、まず情報処理装置のＷｅｂブラウザが、Ｗｅｂサーバに対して操作画面を要求（リクエスト）する。そして、Ｗｅｂサーバ上のＷｅｂアプリケーションが情報処理装置からの要求に応えて、Ｗｅｂブラウザに操作画面を表示させるためのＨＴＭＬファイルを情報処理装置に応答（レスポンス）する。情報処理装置のＷｅｂブラウザは、受信したＨＴＭＬファイルを解析し、ＨＴＭＬファイルの記述に基づいた操作画面を表示する。
【０００４】
更に、Ｗｅｂブラウザに表示された操作画面を介してユーザが指示を入力すると、入力された指示をＷｅｂブラウザがＷｅｂサーバに対して通知する。そして、この通知を受けたＷｅｂサーバ上のＷｅｂアプリケーションは、入力された指示に従って処理を実行する。
【０００５】
ところで、最近ではスキャナやプリンタを備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の中にも、上述したようなＷｅｂブラウザを備えているものがある。そして、ＭＦＰは、上述した手順を用いてＷｅｂサーバにより提供される操作画面をＭＦＰのＷｅｂブラウザに表示し、ユーザからの各種指示を受け付ける。
【０００６】
また更には、特許文献１のような技術も考えられている。特許文献１の記載によれば、ＭＦＰが備える各機能を利用するための指示を入力する操作画面を、Ｗｅｂサーバが提供する。即ち、ＭＦＰのユーザは、Ｗｅｂブラウザ上に表示された操作画面を介して、ＭＦＰに対する指示を入力する。そして、入力された指示はＭＦＰのＷｅｂブラウザによってＷｅｂサーバに通知される。
【０００７】
この通知を受けたＷｅｂサーバは、ユーザから入力された指示の内容に従って、ＭＦＰに対して各種処理の実行を依頼する。そして、この依頼を受けたＭＦＰは、依頼された処理を実行する。これにより、ＭＦＰを操作するための全てのメニューデータをＭＦＰ内で保持しておく必要がなくなり、またメニューデータの変更もＷｅｂサーバ上で容易に行うことができるようになる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１２７５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
一般的に、Ｗｅｂブラウザに表示された操作画面を介して入力された指示に基づいてＷｅｂサーバ上のＷｅｂアプリケーションが処理を実行する場合、Ｗｅｂアプリケーションによる処理が終了したことに応じて、新たな操作画面がＷｅｂブラウザに表示される。つまり、Ｗｅｂサーバは、Ｗｅｂアプリケーションによる処理が終了した時に、処理の終了を通知するための操作画面、或いは次の操作をユーザに行わせるための操作画面のＨＴＭＬデータを生成する。そして、生成したＨＴＭＬデータを、Ｗｅｂブラウザからのリクエストに対するレスポンスとしてＷｅｂブラウザに送信する。
【００１０】
一方、ＰＣやＭＦＰなどの情報処理装置に搭載されるＷｅｂブラウザには、Ｗｅｂサーバに対してリクエストを送信した後、Ｗｅｂサーバからのレスポンスを受け取るまでの制限時間（タイムアウト時間）が設定されているものがある。そして、このタイムアウト時間内にＷｅｂサーバからのレスポンスがない場合、Ｗｅｂブラウザはタイムアウト処理を行う。タイムアウト処理とは、送信したリクエストを無効化する処理である。送信したリクエストが無効化されることにより、例えば、送信したリクエストに対するレスポンスを待つことを止め、新たなリクエストの送信が可能な状態となる。またこのとき、セッション自体を破棄する処理を行って、Ｗｅｂブラウザのリソースを開放する場合もある。
【００１１】
しかしながら、上述した特許文献１のように、ＭＦＰのＷｅｂブラウザに表示された操作画面を介したユーザ操作に基づいてリクエストをＷｅｂサーバに送信し、このリクエストに基づいてＷｅｂサーバがＭＦＰに処理を要求する場合、以下の問題が考えられる。
【００１２】
即ち、特許文献１のような構成では、ＭＦＰが実行した処理の結果は一旦Ｗｅｂサーバに通知され、この通知を受けたＭＦＰが、Ｗｅｂブラウザから最初に受けたリクエストに対するレスポンスとして処理結果を通知するためのＨＴＭＬデータを送信する。このとき、Ｗｅｂサーバからの要求に基づいて実行するＭＦＰの処理に時間がかかった場合、ＷｅｂサーバがＷｅｂブラウザからのリクエストを受けてから、Ｗｅｂブラウザにレスポンスを返すまでに長い時間が必要となる。従って、Ｗｅｂブラウザにより上述したタイムアウト処理が行われてしまうと、Ｗｅｂサーバから返されてくるレスポンスがＷｅｂブラウザによって正常に受け取られなくなるため、ＭＦＰで実行した処理の結果をユーザに通知することができなくなってしまう。
【００１３】
本発明は、上記の問題点に鑑みなされたものであり、Ｗｅｂサーバからの要求に基づく処理を実行している間は、Ｗｅｂブラウザが送信したリクエストを無効化しないようにする仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために本発明の情報処理装置は、Ｗｅｂサーバにより提供される操作画面を表示するＷｅｂブラウザを備えた情報処理装置であって、前記Ｗｅｂブラウザに表示された操作画面を介したユーザ操作に基づいて、前記Ｗｅｂサーバにリクエストを送信する送信手段と、前記送信手段が送信したリクエストに基づいて前記Ｗｅｂサーバから処理の実行を要求された場合に、当該要求された処理を実行する処理手段と、前記送信手段が送信したリクエストに対する前記Ｗｅｂサーバからのレスポンスであって、前記処理手段により実行された処理の結果を示すレスポンスを受信する受信手段と、前記処理手段が前記Ｗｅｂサーバからの要求に基づく処理を実行しているときは、前記送信手段がリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じたリクエストの無効化をすることなく、前記処理手段が前記Ｗｅｂサーバからの要求に基づく処理を実行していないときは、前記送信手段がリクエストを送信した後、前記レスポンスが受信されずに所定のタイムアウト時間が経過したことに応じてリクエストを無効化する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、Ｗｅｂサーバからの要求に基づく処理を実行している間は、Ｗｅｂブラウザが送信したリクエストを無効化しないようにする仕組みを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態における情報処理システムの全体図である。
【図２】本発明の実施形態におけるＭＦＰ１０１の構成を示すブロック図である。
【図３】本発明の実施形態におけるＷｅｂサーバ１０２の構成を示すブロック図である。
【図４】本発明の実施形態における情報処理システムのソフトウェア構成を示す図である。
【図５】本発明の実施形態におけるセッション・サービス管理部４４０を示す図である。
【図６】Ｗｅｂブラウザ４３０、Ｗｅｂサーバ１０２、及びサービスプロバイダ４５０が一連の処理を実行する動作を説明するシーケンス図である。
【図７】本発明の実施形態におけるＷｅｂブラウザ４３０の動作を説明するフローチャートである。
【図８】本発明の実施形態におけるサービスプロバイダ４５０の動作を説明するフローチャートである。
【図９】本発明の実施形態におけるＷｅｂブラウザ４３０の動作を説明するフローチャートである。
【図１０】本発明の実施形態におけるサービスプロバイダ４５０の動作を説明するフローチャートである。
【図１１】本発明の実施形態におけるＷｅｂブラウザ４３０の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１８】
図１は、本実施形態における情報処理システムの全体図である。ＬＡＮ１１０には、ＭＦＰ１０１およびＷｅｂサーバ１０２が互いに通信可能に接続されている。
【００１９】
図２は、ＭＦＰ１０１の構成を示すブロック図である。ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御を行う。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。
【００２０】
ＨＤＤ２１４は、画像データや各種プログラム、或いは各種情報テーブルを記憶する。操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。また、ＭＦＰ１０１には後述するＷｅｂブラウザ機能が備えられており、ＭＦＰ１０１のＷｅｂブラウザはＷｅｂサーバ１０２から受信したＨＴＭＬファイルを解析し、受信したＨＴＭＬファイルの記述に基づく操作画面を操作部２１９の液晶表示部に表示する。
【００２１】
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０から転送され、プリンタ２２０において記録媒体上に印刷される。
【００２２】
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。
【００２３】
ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上の外部装置（例えば、Ｗｅｂサーバ１０２）に画像データや情報を送信したり、ＬＡＮ１１０上の外部装置から各種情報を受信したりする。
【００２４】
図３は、Ｗｅｂサーバ１０２の構成を示すブロック図である。ＣＰＵ３１１を含む制御部３１０は、Ｗｅｂサーバ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、画像データや各種プログラム、或いは後述する各種情報テーブルを記憶する。
【００２５】
ネットワークＩ／Ｆ３１５は、制御部３１０（Ｗｅｂサーバ１０２）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ３１５は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
【００２６】
図４は、情報処理システム全体のソフトウェア構成を説明するための図である。図４に示す各機能部は、ＭＦＰ１０１／Ｗｅｂサーバ１０２のそれぞれが有しているＣＰＵ２１１／ＣＰＵ３１１が制御プログラムを実行することにより実現される。
【００２７】
ＭＦＰ１０１は、Ｗｅｂブラウザ４３０、セッション・サービス管理部４４０、サービスプロバイダ４５０、およびログ記録部４６０を有している。Ｗｅｂブラウザ４３０、セッション・サービス管理部４４０、サービスプロバイダ４５０、およびログ記録部４６０のそれぞれは、ＭＦＰ１０１が有しているＣＰＵ２１１が制御プログラムを実行することにより実現される。
【００２８】
Ｗｅｂブラウザ４３０は、通信部４３１、解析部４３２、セッション管理部４３３、および画面表示部４３４を有する。通信部４３１は、ＨＴＴＰプロトコルに従って、Ｗｅｂアプリケーション４１０のプレゼンテーション部４１１と通信する。より具体的には、通信部４３１は、Ｗｅｂブラウザ４３０で表示した操作画面を介して入力される情報をＷｅｂアプリケーション４１０に対するリクエストとして送信する。また、通信部４３１は、Ｗｅｂアプリケーション４１０から送信されるレスポンス（処理結果）を受信する。
【００２９】
解析部４３２は、Ｗｅｂアプリケーション４１０から受信したレスポンスを解析する。レスポンスの中には、Ｗｅｂアプリケーション４１０が発行するセッションＩＤなどの管理データやＨＴＭＬデータが含まれる。ＨＴＭＬデータには、Ｗｅｂブラウザ４３０に表示すべき操作画面の内容を示す記述が含まれている。
【００３０】
セッション管理部４３３は、解析部４３２の解析により得られたセッションＩＤが新規に発行されたセッションＩＤであるか否かを判断し、新規に発行されたセッションＩＤであれば後述のセッション・サービス管理部４４０へ登録する。
【００３１】
画面表示部４３３は、解析部４３２によるＨＴＭＬデータの解析結果に基づいて、操作部２１９に操作画面を表示する。
【００３２】
セッション・サービス管理部４４０は、Ｗｅｂブラウザ４３０とＷｅｂサーバ１０２の間で確立されるセッションを一意に識別するためのセッションＩＤを管理する。セッションＩＤはＷｅｂサーバ１０２によって発行される。また、セッション・サービス管理部４４０は、各セッションにおいてＷｅｂブラウザ４３０がＷｅｂサーバ１０２に送信した情報に基づいて、Ｗｅｂサーバ１０２からサービスプロバイダ４５０へ依頼された処理の実行状況を管理する。なお、サービスプロバイダ４５０へ依頼された処理の実行状況をサービス状況と呼ぶこととする。
【００３３】
サービスプロバイダ４５０は、通信部４５１、ジョブ生成部４５２およびサービス管理部４５３を有する。通信部４５１は、後述のＷｅｂアプリケーション４１０内のロジック部４１２から処理依頼を受け付ける。なお、この処理依頼には、Ｗｅｂブラウザ４３０とＷｅｂアプリケーション４１０との間のセッションを示すセッションＩＤが含まれる。
【００３４】
ジョブ生成部４５２は、通信部４５１が受け付けた処理依頼を受け取り、依頼された処理を実行するためのジョブを生成して実行する。更に、ジョブ生成部４５２はジョブの実行結果をログ記録部４６０に記録する。
【００３５】
サービス管理部４５３は、ジョブ生成部４５２によるジョブの実行状況に応じて、セッション・サービス管理部４４０で管理されるサービス状況を更新する。より具体的には、ジョブの実行を開始すると、セッション・サービス管理部４４０で管理される、処理依頼に含まれるセッションＩＤに対応するサービス状況の値を「実行中」にする。ジョブの実行が終了すると、処理依頼に含まれるセッションＩＤに対応するサービス状況の値を「終了」にする。ログ記録部４６０は、前述のようにジョブを実行した結果やＭＦＰ１０１上で動作するアプリケーションの実行ログなどが記録される。
【００３６】
Ｗｅｂサーバ１０２は、Ｗｅｂアプリケーション４１０、ログ記録部４２０を有する。Ｗｅｂアプリケーション４１０およびログ記録部４２０のそれぞれはＷｅｂサーバ１０２が有しているＣＰＵ３１１が制御プログラムを実行することにより実現される。
【００３７】
Ｗｅｂアプリケーション４１０はＷｅｂブラウザ４３０からリクエストとして送信される情報を受信し、受信した情報に基づいて処理を実行する。処理結果は、Ｗｅｂアプリケーション４１０からＷｅｂブラウザ４３０に対してレスポンスとして送信される。
【００３８】
Ｗｅｂアプリケーション４１０はプレゼンテーション部４１１およびロジック部４１２を有する。プレゼンテーション部４１１は、通信部４３１と通信し、ＭＦＰ１０１から送信されるリクエストを受信する。次に、プレゼンテーション部４１１は、受信したリクエストをロジック部４１２へ通知し、ロジック部４１２からの応答を待つ。ロジック部４１２からの応答を受け取ったプレゼンテーション部４１１は、応答内容にしたがってＭＦＰ１０１のＷｅｂブラウザ４３０で表示すべき操作画面に対応するＨＴＭＬデータをレスポンスとして送信する。ＭＦＰ１０１のＷｅｂブラウザ４３０に表示された操作画面を介して入力された情報はリクエストとして通信部４３１から送信される。
【００３９】
ロジック部４１２は、プレゼンテーション部４１１から通知されるリクエストに応じて各種処理を実行するとともに、ＭＦＰ１０１に対して処理の実行を依頼する。具体的には、ＭＦＰ１０１のプリンタ２２０による印刷処理の実行や、スキャナ２２１による読み取り処理の実行、あるいはネットワークＩ／Ｆ２１８を介した送信処理の実行を依頼する。
【００４０】
ＭＦＰ１０１に対して処理の実行を依頼する場合、ロジック部４１２はＭＦＰ１０１が有するサービスプロバイダ４５０内の通信部４５１と通信する。そして、ロジック部４１２はＭＦＰ１０１により実行された処理結果をＭＦＰ１０１から受信し、ログ記録部４２０に記録する。ログ記録部４２０には、Ｗｅｂサーバ１０２で実行される各種処理の結果をＷｅｂアプリケーション４１０が記録する。
【００４１】
図５は、セッション・サービス管理部４４０を説明するための図である。セッション・サービス管理部４４０はカラム「セッションＩＤ」５０１とカラム「サービス状況」５０２とを構成要素とするデータベースを有する。セッション・サービス管理部４４０は、カラム「セッションＩＤ」５０１とカラム「サービス状況」５０２によってＷｅｂブラウザ４３０とＷｅｂアプリケーション４１０との間のセッションと、ＭＦＰ１０１で実行される処理の実行状況とを関連付けて管理する。つまり、セッション・サービス管理部４４０には、複数のセッションと、各セッションに対応する処理の実行状況とが対応付けて管理される。
【００４２】
カラム「セッションＩＤ」５０１には、Ｗｅｂブラウザ４３０とＷｅｂアプリケーション４１０との間のセッションを識別するセッションＩＤが格納される。セッションＩＤは、Ｗｅｂブラウザ４３０とＷｅｂアプリケーション４１０とが通信を開始する時に、Ｗｅｂアプリケーション４１０により発行される。Ｗｅｂブラウザ４３０のセッション管理部４３３は、Ｗｅｂアプリケーション４１０からのレスポンスに含まれる新規発行されたセッションＩＤをカラム「セッションＩＤ」５０１に登録する。
【００４３】
カラム「サービス状況」５０２は、Ｗｅｂアプリケーション４１０のロジック部４１２から依頼される処理のサービスプロバイダ４５０による実行状況を示す。ロジック部４１２から依頼される処理の実行を開始する時に、後述のサービス管理部４５３がカラム「サービス状況」５０２に“実行中”と登録する。
【００４４】
このとき、サービス管理部４５３は、ロジック部４１２から依頼の中に含まれるセッションＩＤが登録されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２に登録する。処理が終了すると、後述のサービス管理部４５３はカラム「サービス状況」５０２の値を“終了”に更新する。
【００４５】
図６は、Ｗｅｂブラウザ４３０からのリクエストに基づいてＷｅｂサーバ１０２がサービスプロバイダ４５０に処理の実行を依頼し、サービスプロバイダ４５０が処理を実行する動作を説明するシーケンス図である。
【００４６】
最初に、ＭＦＰ１０１のＷｅｂブラウザ４３０からＷｅｂサーバ１０２のＷｅｂアプリケーション４１０に対してリクエスト６００が送信される。Ｗｅｂブラウザ４３０からリクエスト６００を受信したＷｅｂアプリケーション４１０は以降のＷｅｂブラウザ４３０との一連のデータ送受信を一意に識別するために、セッションＩＤを発行する。なお、このセッションＩＤは、後述するＷｅｂブラウザ４３０とＷｅｂサーバ１０２とやり取り（６００、６０１、６０２、６０３、６０４、及び６０７）で共通に使用される。
【００４７】
次に、Ｗｅｂアプリケーション４１０はリクエストに対する処理結果をＨＴＭＬデータとともにレスポンス６０１としてＷｅｂブラウザ４３０に送信する。このとき、Ｗｅｂアプリケーション４１０が発行したセッションＩＤは、Ｗｅｂブラウザ４３０に送信されたレスポンス６０１に含まれる。
【００４８】
Ｗｅｂブラウザ４３０は、受信したレスポンス６０１に含まれるセッションＩＤを取得し、セッション・サービス管理部４４０のカラム「セッションＩＤ」５０１に取得したセッションＩＤを登録する。更に、Ｗｅｂブラウザ４３０は、受信したレスポンス６０１に含まれるＨＴＭＬデータを解析部４３２において解析し、画面表示部４３４によって解析結果を表示する。
【００４９】
次に、Ｗｅｂブラウザ４３０は画面表示部４３４に表示される操作画面上でのユーザ操作に応じて、次のリクエスト６０２をＷｅｂアプリケーション４１０に対して送信する。Ｗｅｂアプリケーション４１０は受信したリクエスト６０２に対する処理を実行し、処理結果をＨＴＭＬデータとともにレスポンス６０３としてＷｅｂブラウザ４３０に送信する。このようなリクエストとレスポンスによるやり取りをＷｅｂブラウザ４３０とＷｅｂアプリケーション４１０は繰り返す。
【００５０】
ここで、図６は、Ｗｅｂブラウザ４３０からＷｅｂアプリケーション４１０に対して送信されるリクエスト６０４の中に「原稿をスキャンしてファイル送信する」という処理の実行指示および処理の実行に必要なパラメータ値が含まれている場合を説明する。なお、ＭＦＰ１０１内のサービスプロバイダ４５０が実行する処理は、「原稿をスキャンしてファイル送信する」に限らず、印刷など他の処理であっても良い。
【００５１】
Ｗｅｂブラウザ４３０は画面表示部４３４に表示される操作画面上でのユーザ操作により、次のリクエスト６０４をＷｅｂアプリケーション４１０に対して送信する。なお、処理の実行指示および処理の実行に必要なパラメータ値などの情報は、操作画面を介したユーザ操作によりユーザが入力したものである。但し、処理の実行に必要なパラメータ値は必ずしもユーザが入力したものでなくても良い。例えば、Ｗｅｂアプリケーション４１０自体がデフォルト設定値として予め保持しているパラメータ値を使用してもかまわない。
【００５２】
リクエスト６０４を受信したＷｅｂアプリケーション４１０は、リクエスト６０４に含まれる処理の実行指示および処理の実行に必要なパラメータ値を取得する。次に、Ｗｅｂアプリケーション４１０は、取得した処理の実行指示および処理の実行に必要なパラメータ値に基づいて、ＭＦＰ１０１のサービスプロバイダ４５０に対してリクエスト６０５を送信する。このとき、リクエスト６０５にはＷｅｂアプリケーション１０２が発行したセッションＩＤ（Ｗｅｂブラウザ４３０とＷｅｂアプリケーション４１０の間の通信に使用されたセッションを識別するＩＤ）が含まれる。このリクエスト６０５により、Ｗｅｂアプリケーション４１０はサービスプロバイダ４５０に対して「原稿スキャンしてファイル送信する」という処理の実行を依頼する。
【００５３】
リクエスト６０５を受けたサービスプロバイダ４５０は、依頼された内容に従って「原稿をスキャンしてファイル送信する」の処理を開始する。このとき、サービスプロバイダ４５０はリクエスト６０５に含まれるセッションＩＤを取得する。そして、セッション・サービス管理部４４０のカラム「セッションＩＤ」５０１を参照し、取得したセッションＩＤが格納されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２の値を“実行中”に更新する。
【００５４】
一方、Ｗｅｂブラウザ４３０は、リクエスト６０４を送信したあとＷｅｂアプリケーション４１０からのレスポンスが返されてくるまでの経過時間をタイマーにより計時する。そして、レスポンスがないままタイムアウト時間が経過した場合、サービス・セッション管理部４４０に登録したセッションＩＤに対応するサービス状況を確認する。確認の結果、サービス状況が“実行中”であれば、Ｗｅｂブラウザ４３０はタイムアウト処理を行わず、計時した時間をリセットする。このとき、計時した時間をリセットせずに、単にタイムアウト処理を行わないようにするだけでも構わない。あるいは、サービス状況が“実行中”となっている間はタイマーによる計時を行わず、サービス状況が“終了”となったことに応じて計時を開始するような構成としても良い。
【００５５】
Ｗｅｂブラウザ４３０からサービス状況の問い合わせを受けたサービス・セッション管理部４４０は、問い合わせされたセッションＩＤが登録されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２に格納されている値を応答する。
【００５６】
サービスプロバイダ４５０は、リクエスト６０５で要求された処理が終了すると、リクエスト６０５から取得したセッションＩＤが登録されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２の値を“終了”に更新する。そして、サービスプロバイダ４５０は、処理結果をレスポンス６０６に含め、Ｗｅｂサーバ１０２へ返信する。
【００５７】
レスポンス６０６を受信したＷｅｂアプリケーション４１０は、レスポンス６０６の中に含まれる処理結果を、リクエスト６０４で要求された処理に対する結果としてレスポンス６０７に含めＷｅｂブラウザ４３０へ返信する。
【００５８】
レスポンス６０７を受信したＷｅｂブラウザ４３０は、レスポンス６０７に含まれるＨＴＭＬデータを解析し、画面表示部４３４にて結果画面を表示する。
【００５９】
図７は、ＭＦＰ１０１のＷｅｂブラウザ４３０が、Ｗｅｂアプリケーション４１０により発行されたセッションＩＤをセッション・サービス管理部４４０に登録する一連の処理を説明するフローチャートである。図７のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。
【００６０】
ステップＳ７０１において、Ｗｅｂブラウザ４３０の通信部４３１が、画面表示部４３４により表示された操作画面を介してユーザが入力した値などを含めたリクエストを生成し、Ｗｅｂアプリケーション４１０に対して送信する。
【００６１】
ステップＳ７０２において、Ｗｅｂブラウザ４３０の通信部４３１がＷｅｂアプリケーション４１０のプレゼンテーション部４１１から送信されたレスポンスを受信する。受信したレスポンスはＷｅｂブラウザ４３０の解析部４３２が解析し、解析結果をＷｅｂブラウザ４３０の画面表示部４３４が画面上に表示する。
【００６２】
ステップＳ７０３では、Ｗｅｂブラウザ４３０のセッション管理部４３３が、解析部４３２による解析で得られたセッションＩＤが、前回受信したセッションＩＤから変更されているか否かを確認する。セッションＩＤが前回受信したセッションＩＤから変更されている場合、セッション管理部４３３はセッションＩＤが新規発行されていると判断し、ステップＳ７０４へ進む。セッションＩＤが前回受信したセッションＩＤと同じ場合、セッション管理部４３３はセッションＩＤが新規発行されていないと判断し、ステップＳ７０５へ進む。
【００６３】
ステップＳ７０４では、Ｗｅｂブラウザ４３０のセッション管理部４３３がステップＳ７０３で新規発行されていると判断したセッションＩＤをセッション・サービス管理部４４０のカラム「セッションＩＤ」５０１に登録する。このとき、セッションＩＤを登録したカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２の値は“‐‐”とする。
【００６４】
ステップＳ７０５では、Ｗｅｂブラウザ４３０が処理を終了するか否かを判断し、終了しない場合はステップＳ７０１に戻る。Ｗｅｂブラウザ４３０が処理を終了すると判断した場合、処理を終了する。
【００６５】
図８は、サービスプロバイダ４５０が、Ｗｅｂサーバ１０２から依頼された処理を実行する一連の処理を説明するフローチャートである。図８のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。
【００６６】
ステップＳ８０１において、サービスプロバイダ４５０の通信部４５１がＷｅｂアプリケーション４１０のロジック部４１２からリクエスト（処理依頼）を受信する。リクエストを受信した通信部４５１は、リクエストをサービス管理部４５３とジョブ生成部４５２へ送信する。リクエストを受信したサービス管理部４５３はリクエストに含まれるセッションＩＤを取得する。
【００６７】
ステップＳ８０２において、リクエストを受信したジョブ生成部４５２が、リクエストにより依頼された処理をＭＦＰ１０１が実行可能な状態であることを確認する。
【００６８】
続くステップＳ８０３において、ジョブ生成部４５２はリクエストにより依頼された処理を実行するためのジョブを生成し、実行開始する。この際、ジョブ生成部４５２はジョブを実行開始した旨をサービス管理部４５３に通知する。
【００６９】
ステップＳ８０４において、ジョブを実行開始した旨の通知を受信したサービス管理部４５３は、取得したセッションＩＤが登録されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２を“実行中”に更新する。
【００７０】
ステップＳ８０５では、サービスプロバイダ４５０による処理が終了したかどうかを判定し、終了したと判定した場合はステップＳ８０６に進む。
【００７１】
ステップＳ８０６において、サービス管理部４５３はジョブ終了後、ステップＳ８０４で更新した、セッション・サービス管理部４４０の「サービス状況」５０１の値を“終了”に更新する。
【００７２】
そして、ステップＳ８０７において、通信部４５１はジョブの実行結果をステップＳ８０１で受信したリクエストに対するレスポンスに含め、Ｗｅｂアプリケーション４１０のロジック部４１２へ返信する。
【００７３】
図９は、Ｗｅｂブラウザ４３０がＷｅｂサーバ１０２にリクエストを送信してから所定のタイムアウト時間が経過してもレスポンスがない場合に、Ｗｅｂサーバ１０２から依頼された処理の実行状況を確認する一連の処理を説明するフローチャートである。図９のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。
【００７４】
ステップＳ９０１において、Ｗｅｂブラウザ４３０のセッション管理部４３３は送信したリクエストに対するレスポンスがなく所定のタイムアウト時間が経過したか否かを判断する。タイムアウト時間が経過している場合、ステップＳ９０２へ進む。タイムアウト時間が経過していない場合、処理を終了する。
【００７５】
ステップＳ９０２において、セッション管理部４３３はタイムアウトが発生したセッションのセッションＩＤが登録されているカラム「セッションＩＤ」５０１に対応するカラム「サービス状況」５０２を確認する。
【００７６】
ステップＳ９０３において、セッション管理部４３３はステップＳ９０２で確認したカラム「サービス状況」５０２が“実行中”であればステップＳ９０４へ進む。ステップＳ９０２で確認したカラム「サービス状況」５０２が“‐‐”もしくは“終了”であればステップＳ９０５へ進む。
【００７７】
ステップＳ９０４では、セッション管理部４３３は、Ｗｅｂサーバ１０２にリクエストを送信してから計時を開始した時間をリセットする。これにより、Ｗｅｂブラウザ４３０はレスポンスがないままタイムアウト時間が経過した場合でも、Ｗｅｂサーバ１０２から要求されたＭＦＰ１０１側での処理が実行中であれば、Ｗｅｂブラウザ４３０のタイムアウト処理を行わないようにしている。
【００７８】
一方、ステップＳ９０５では、セッション管理部４３３がタイムアウト処理を実行する。具体的には、Ｗｅｂブラウザ４３０とＷｅｂサーバ１０２との間で確立したセッションを破棄することにより、これ以降、Ｗｅｂブラウザ４３０は破棄したセッションと同じセッションＩＤを持つレスポンスを受信しても、無効のレスポンスとして無視（破棄）する。画面表示部４３４は、タイムアウトエラーが発生した旨のメッセージを表示する。このように、タイムアウト処理とは、送信したリクエストを無効化する処理である。なお、送信したリクエストを無効化する処理として、セッション自体を破棄するのではなく、送信したリクエストに対するレスポンスを待つことを止め、新たなリクエストの送信が可能な状態とするだけでも良い。
【００７９】
以上の通り、本実施形態では、ＷｅｂブラウザがＷｅｂサーバに対してリクエストを送信した後、Ｗｅｂサーバからのレスポンスがないまま所定のタイムアウト時間が経過した場合に、Ｗｅｂサーバからの要求に基づく処理を実行中であるか否かを判定する。そして、Ｗｅｂサーバからの要求に基づく処理を実行中でなければ、送信したリクエストを無効化し、Ｗｅｂサーバからの要求に基づく処理を実行中であれば、送信したリクエストを無効化しないようにしている。これにより、ＷｅｂサーバがＭＦＰの操作画面を提供するような構成であっても、より確実にユーザに処理結果を通知することができる。
【００８０】
（第２の実施形態）
次に本発明の第２の実施形態について説明する。第２の実施形態では、第１の実施形態で説明した構成に加えて、さらにサービスプロバイダ４５０がＷｅｂサーバにレスポンス（処理結果）を返せない場合に、Ｗｅｂブラウザ４３０にタイムアウト処理を実行させる構成を追加している。なお、上述した第１の実施形態と同様の構成については同じ符号を付し、詳細な説明は省略する。
【００８１】
図１０は、サービスプロバイダ４５０が、Ｗｅｂサーバ１０２から依頼された処理を実行する一連の処理を説明するフローチャートである。図１０のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。
【００８２】
図１０に示すフローチャートには、図８に示すフローチャートに対して、ステップＳ１００１及びステップＳ１００２の処理が追加されている。
【００８３】
ステップＳ１００１において、サービスプロバイダ４５０の通信部４５１は、Ｗｅｂアプリケーション４１０のロジック部４１２へのレスポンス送信が成功したかどうかを確認する。そして、レスポンス送信が成功していれば処理を終了し、レスポンス送信が失敗していれば、ステップＳ１００２へ進む。ステップＳ１００２では、Ｗｅｂブラウザ４３０のセッション管理部４３３に対して、タイムアウト処理を指示する。
【００８４】
図１１は、Ｗｅｂブラウザ４３０がＷｅｂサーバ１０２にリクエストを送信してから所定のタイムアウト時間が経過してもレスポンスがない場合に、Ｗｅｂサーバ１０２から依頼された処理の実行状況を確認する一連の処理を説明するフローチャートである。図１１のフローチャートに示す各動作（ステップ）は、ＭＦＰ１０１のＣＰＵ２１１がＨＤＤ２１４に記憶された制御プログラムを実行することにより実現される。
【００８５】
図１１に示すフローチャートには、図９に示すフローチャートに対して、ステップＳ１１０１の処理が追加されている。
【００８６】
ステップＳ１１０１において、Ｗｅｂブラウザ４３０のセッション管理部４３３はサービスプロバイザ４５からタイムアウト指示を受けたかどうかを判断する。そして、タイムアウト指示を受けたと判断した場合、ステップＳ９０５へ進む。受信していない場合、ステップＳ９０１へ進む。
【００８７】
ステップＳ９０５では、セッション管理部４３３がタイムアウト処理を実行する。具体的には、Ｗｅｂブラウザ４３０とＷｅｂサーバ１０２との間で確立したセッションを破棄することにより、これ以降、Ｗｅｂブラウザ４３０は破棄したセッションと同じセッションＩＤを持つレスポンスを受信しても、無効のレスポンスとして無視（破棄）する。画面表示部４３４は、タイムアウトエラーが発生した旨のメッセージを表示する。このように、タイムアウト処理とは、送信したリクエストを無効化する処理である。なお、送信したリクエストを無効化する処理として、セッション自体を破棄するのではなく、送信したリクエストに対するレスポンスを待つことを止め、新たなリクエストの送信が可能な状態とするだけでも良い。
【００８８】
以上の通り、本実施形態では、例えばＷｅｂサーバからの処理要求を受けた後にネットワーク障害が発生し、サービスプロバイダがＷｅｂサーバに対してレスポンスを返せなくなった場合に、ＷｅｂブラウザとＷｅｂサーバの間のセッションが破棄される。これにより、第１の実施形態で説明した効果に加えて、ＷｅｂブラウザとＷｅｂサーバの間のセッションが不要に保持され続けてしまうことを防止することができる。
【００８９】
（他の実施形態）
なお、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００９０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005489555.tif 000002
【図２】
0005489555.tif 000003
【図３】
0005489555.tif 000004
【図４】
0005489555.tif 000005
【図５】
0005489555.tif 000006
【図６】
0005489555.tif 000007
【図７】
0005489555.tif 000008
【図８】
0005489555.tif 000009
【図９】
0005489555.tif 000010
【図１０】
0005489555.tif 000011
【図１１】
0005489555.tif 000012