(57)【特許請求の範囲】
【請求項１】
Ｗｅｂサーバに接続可能な情報処理装置であって、
前記Ｗｅｂサーバから提供される画面情報に基づく操作画面を表示し、当該操作画面を介して入力された入力情報を前記Ｗｅｂサーバに送信し、かつ、前記Ｗｅｂサーバへ送信した当該入力情報に対応するジョブの実行要求であって、当該ジョブの実行中に当該ジョブの実行を制御するためのサービスの定義情報を含む、前記実行要求を、前記Ｗｅｂサーバから受信する表示制御手段と、
前記表示制御手段を介して、前記Ｗｅｂサーバからの前記実行要求を受信すると、当該受信した実行要求に従ったジョブを実行する実行手段と、
実行中のジョブを制御するための複数のサービスを提供可能なサービス提供手段と、を備え、
前記実行手段は、前記受信した実行要求に従ったジョブの実行を開始する際に、前記受信した実行要求に含まれる前記定義情報に定義されたサービスを前記サービス提供手段に登録することによって、前記サービス提供手段に、前記複数のサービスのうちで、当該登録したサービスをユーザが利用可能な状態にさせ、
前記受信した実行要求に従ったジョブの実行が前記実行手段によって開始されると、前記サービス提供手段は、前記複数のサービスのうちで、当該ジョブの実行中に当該ジョブの実行を制御するための前記登録されたサービスをユーザに提供する、
ことを特徴とする情報処理装置。
【請求項２】
前記サービス提供手段は、サービスを利用不可にすべきことが前記Ｗｅｂサーバから指示されるまで、または、前記実行手段による前記実行要求に従ったジョブが終了してから所定の時間が経過するまで、前記登録されたサービスを提供することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行要求は、さらに、前記実行手段による前記実行要求に従ったジョブの実行中に表示すべき操作画面の画面情報を含み、
前記表示制御手段は、前記サービス提供手段によって提供される前記登録されたサービスを利用して、前記Ｗｅｂサーバから受信した前記画面情報に基づく表示を制御する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記実行要求は、前記実行手段によるジョブの実行状況を示す情報を前記実行手段から取得するサービスの定義情報を含み、
前記表示制御手段は、前記サービス提供手段によって提供される前記登録されたサービスを介して、前記実行要求に従ったジョブの実行状況を示す情報を前記実行手段から取得するとともに、取得した情報に応じて前記画面情報に基づく表示を更新する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記実行要求は、前記実行手段によるジョブの実行中に前記表示制御手段によって表示された操作画面を介して入力された情報に基づいて、前記実行手段によるジョブの実行を制御するサービスの定義情報を含み、
前記表示制御手段は、さらに、前記サービス提供手段によって提供される前記登録されたサービスを介して、表示中の操作画面を介して入力された情報に応じて当該ジョブの実行を制御すべきことを前記実行手段に指示する
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記表示制御手段は、更に、前記実行手段による前記実行要求に従ったジョブの実行中に、前記画面情報を前記Ｗｅｂサーバに要求し、
前記Ｗｅｂサーバは、前記表示制御手段による要求を受信すると、前記サービス提供手段によって提供される前記登録されたサービスを利用して、前記表示制御手段によって表示すべき画面情報を生成し、かつ、生成した画面情報を前記表示制御手段に送信し、
前記表示制御手段は、前記Ｗｅｂサーバから受信した画面情報に基づく操作画面を表示する
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項７】
前記実行要求は、サービスを特定するためのＵＲＬを前記サービスの定義情報として含む、スクリプトからなり、
前記サービス提供手段は、前記実行手段によって登録されるサービスとして、ＵＲＬによって特定されるＷｅｂサービスを提供し、
前記表示制御手段は、前記サービス提供手段によって提供されるＷｅｂサービスを、前記実行要求に相当するスクリプトに含まれるＵＲＬによって特定することで、当該Ｗｅｂサービスを利用する、Ｗｅｂブラウザである
ことを特徴とする請求項３乃至５の何れか１項に記載の情報処理装置。
【請求項８】
前記実行要求に従ったジョブは、原稿上の画像を読み取って画像データを生成するスキャンジョブであることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
表示制御手段、実行手段及びサービス提供手段を備え、Ｗｅｂサーバに接続可能な情報処理装置の制御方法であって、
前記表示制御手段が、前記Ｗｅｂサーバから提供される画面情報に基づく操作画面を表示し、当該操作画面を介して入力された入力情報を前記Ｗｅｂサーバに送信する工程と、
前記表示制御手段が、前記Ｗｅｂサーバへ送信した前記入力情報に対応するジョブの実行要求であって、当該ジョブの実行中に当該ジョブの実行を制御するためのサービスの定義情報を含む、前記実行要求を、前記Ｗｅｂサーバから受信する工程と、
前記実行手段が、前記表示制御手段を介して、前記Ｗｅｂサーバからの前記実行要求を受信すると、当該受信した実行要求に従ったジョブを実行する工程であって、前記受信した実行要求に従ったジョブの実行を開始する際に、前記受信した実行要求に含まれる前記定義情報に定義されたサービスを、実行中のジョブを制御するための複数のサービスを提供可能な前記サービス提供手段に登録することによって、前記サービス提供手段に、前記複数のサービスのうちで、当該登録したサービスをユーザが利用可能な状態にさせる、前記実行する工程と、
前記受信した実行要求に従ったジョブの実行が前記実行手段によって開始されると、前記サービス提供手段が、前記複数のサービスのうちで、当該ジョブの実行中に当該ジョブの実行を制御するための前記登録されたサービスをユーザに提供する工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバに接続可能であり、Ｗｅｂサーバにより提供される画面情報に基づく操作画面を表示する情報処理装置、情報処理装置の制御方法、プログラムに関する。
【背景技術】
【０００２】
一般に、ＰＣなどの情報処理装置がネットワーク上のＷｅｂサーバに接続され、Ｗｅｂサーバにより提供される操作画面を、情報処理装置が備えるＷｅｂブラウザ上に表示することが知られている。この場合、まず情報処理装置のＷｅｂブラウザが、Ｗｅｂサーバに対して操作画面の画面情報を要求する。Ｗｅｂサーバ上のＷｅｂアプリケーションは、情報処理装置からのリクエストに応じて、Ｗｅｂブラウザに操作画面を表示させるための画面情報に相当するＨＴＭＬファイルを情報処理装置に送ることで、当該要求に応答する。情報処理装置のＷｅｂブラウザは、受信したＨＴＭＬファイルを解析し、ＨＴＭＬファイルの記述に基づいた操作画面を、ディスプレイ等の表示部に表示する。
【０００３】
情報処理装置において、Ｗｅｂブラウザによって表示された操作画面を介してユーザが指示を入力すると、入力された指示をＷｅｂブラウザがＷｅｂサーバに対して通知する。この通知を受けたＷｅｂサーバ上のＷｅｂアプリケーションは、通知された指示に従って処理を実行する。
【０００４】
ところで、最近ではスキャナやプリンタを備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の中にも、前述したようなＷｅｂブラウザを備えているものがある。このようなＭＦＰは、前述の手順を用いてＷｅｂサーバにより提供される画面情報に基づく操作画面をＷｅｂブラウザによって表示部に表示し、表示した操作画面を介したユーザからの各種指示を受付ける。
【０００５】
例えば、特許文献１によれば、Ｗｅｂサーバは、ＭＦＰが備える各機能を利用するための指示を入力するための操作画面の画面情報を、当該ＭＦＰに提供する。ＭＦＰのユーザは、表示された操作画面を用いてＭＦＰに対する指示を入力する。入力された指示は、ＭＦＰのＷｅｂブラウザによってＷｅｂサーバにリクエストとして通知される。この通知を受けたＷｅｂサーバは、入力された指示に基づいて、ＭＦＰに対する各種処理を記載したスクリプトを生成する。生成したスクリプトは、前述のＷｅｂブラウザからのリクエストに対する応答として、ＷｅｂサーバからＭＦＰに通知される。ＭＦＰは、Ｗｅｂブラウザからスクリプト処理部に、Ｗｅｂサーバから通知されたスクリプトを渡すことでスクリプトを実行させ、ＭＦＰが備えるデバイスの機能を利用する。
【０００６】
また、特許文献２によれば、特許文献１とは異なり、ＭＦＰのＷｅｂブラウザが画面表示スクリプトを実行する。そして、ＭＦＰは、そのスクリプト内でＭＦＰの機能を処理するＷｅｂサービスを呼び出すことで、ＭＦＰが備えるデバイスの機能を利用する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１２７５０３号公報
【特許文献２】特開２００８−００３８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のＭＦＰでは、スクリプト実行中に、当該実行に関連する指示の入力のための操作画面をスクリプト処理部のソフトウェアが表示する。このため、ＭＦＰは、スクリプトの実行中には、ＷｅｂサーバのＷｅｂアプリケーションから提供される画面を表示することができない。また、操作画面のカスタマイズも困難である。
【０００９】
一方、特許文献２に記載のＭＦＰでは、ＷｅｂサーバのＷｅｂアプリケーションにＭＦＰのユーザインタフェース（ＵＩ）を制御させるためには、ＭＦＰは、スクリプトの実行中であるか否かにかかわらず、当該ＭＦＰの機能をＷｅｂサーバに制御させるためのＷｅｂサービスを、Ｗｅｂサーバに常に利用可能にしておく必要がある。そのため、スクリプト実行中以外でもメモリ等のＭＦＰのリソースが必要となる。
【００１０】
本発明は、係る課題を鑑みてなされたものであり、ＭＦＰにおいてＷｅｂサーバからの要求に従って当該ＭＦＰの機能を実行する際に、その実行を制御するためのサービスを、必要に応じて利用可能とする技術を提供する。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明は、例えば情報処理装置として実現できる。情報処理装置は、Ｗｅｂサーバに接続可能な情報処理装置であって、前記Ｗｅｂサーバから提供される画面情報に基づく操作画面を表示し、当該操作画面を介して入力された入力情報を前記Ｗｅｂサーバに送信し、かつ、前記Ｗｅｂサーバへ送信した当該入力情報に対応するジョブの実行要求であって、当該ジョブの実行中に当該ジョブの実行を制御するためのサービスの定義情報を含む、前記実行要求を、前記Ｗｅｂサーバから受信する表示制御手段と、前記表示制御手段を介して、前記Ｗｅｂサーバからの前記実行要求を受信すると、当該受信した実行要求に従ったジョブを実行する実行手段と、実行中のジョブを制御するための複数のサービスを提供可能なサービス提供手段と、を備え、前記実行手段は、前記受信した実行要求に従ったジョブの実行を開始する際に、前記受信した実行要求に含まれる前記定義情報に定義されたサービスを前記サービス提供手段に登録することによって、前記サービス提供手段に、前記複数のサービスのうちで、当該登録したサービスをユーザが利用可能な状態にさせ、前記受信した実行要求に従ったジョブの実行が前記実行手段によって開始されると、前記サービス提供手段は、前記複数のサービスのうちで、当該ジョブの実行中に当該ジョブの実行を制御するための前記登録されたサービスをユーザに提供する、ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＭＦＰにおいてＷｅｂサーバからの要求に従って当該ＭＦＰの機能を実行する際に、その実行を制御するためのサービスを、必要に応じて利用可能とする技術を提供できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１に係る情報処理システムの全体構成を示す図。
【図２】実施形態１に係るＭＦＰのハードウェア構成を示すブロック図。
【図３】実施形態１に係るＷｅｂサーバのハードウェア構成を示すブロック図。
【図４】実施形態１に係るＭＦＰのソフトウェア構成を示すブロック図。
【図５】実施形態１に係るＷｅｂサーバのソフトウェア構成を示すブロック図。
【図６】実施形態１に係る通信処理のシーケンスを示す図。
【図７】実施形態１に係るＷｅｂブラウザによるユーザインタフェースの例を示す図。
【図８】実施形態１に係るスクリプトファイルの例を示す図。
【図９】実施形態１に係るＨＴＭＬデータの例を示す図。
【図１０】実施形態１に係る、ＭＦＰにおけるスクリプトの実行手順を示すフローチャート。
【図１１】実施形態１に係る、Ｗｅｂブラウザによるスキャン実行中、待機中、終了のユーザインタフェースの例を示す図。
【図１２】実施形態２に係る通信処理のシーケンスを示す図。
【図１３】実施形態２に係るＨＴＭＬデータの例を示す図。
【発明を実施するための形態】
【００１４】
＜実施形態１＞
実施形態１では、本発明の情報処理装置の一例であるＭＦＰが、Ｗｅｂサーバからの指示に応じて、画像形成処理を行う例を説明する。
【００１５】
（情報処理システム全体の構成）
図１は、実施形態１における情報処理システムの全体構成を示す図である。図１に示すように、ＭＦＰ１１０およびＷｅｂサーバ１２０は、イーサネット（登録商標）などからなるＬＡＮ１００に接続されている。ＭＦＰ１１０は、ＬＡＮ１００を介してＷｅｂサーバ１２０に接続可能である。ＭＦＰ１１０は、コピー機能とデータ送信機能とを有する。データ送信機能は、原稿画像を読み取り、読み取って得られた画像データ（文書データと呼ぶ場合もある）を、ＦＴＰプロトコルやＳＭＢプロトコル等を用いて、ＬＡＮ１００上の指定した装置に送信する機能である。更に、ＭＦＰ１１０は、画像データを添付ファイルとしてＥメールを作成し、Ｅメールサーバ（不図示）を利用してＥメールを送信する機能を有していてもよい。
【００１６】
サーバ１２０は、Ｗｅｂサーバである。Ｗｅｂサーバ上で動作するソフトウェアであるＷｅｂアプリケーションは、ＭＦＰ１１０からのリクエストに応じて、ＭＦＰ１１０の操作部（の液晶表示部）に操作画面を表示するための画面情報（ＨＴＭＬデータ）を生成し、それを当該リクエストに対する応答としてＭＦＰ１１０に送信する。
【００１７】
なお、本実施形態における情報処理システムにおける構成機器の数は、図１に示す構成機器の数に限定されるものではない。また、本実施形態では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１８】
（ＭＦＰのハードウェア構成）
ＭＦＰ１１０は、図２に示すように次の構成要素を備える。ＭＦＰ１１０は、画像入力デバイスであるスキャナ部１１２、画像出力デバイスであるプリンタ部１１３、ＭＦＰ１１０の制御を司るコントローラ２００、および操作部１１１を備える。
【００１９】
スキャナ部１１２は、原稿上の画像を読み取って画像データを生成するデバイスである。原稿が原稿フィーダにセットされ、コントローラ２００からスキャナ部１１２に原稿読み取り指示が与えられると、スキャナ部１１２は、原稿フィーダから原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は、原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置して、露光ユニットを移動させることで原稿の走査を行う方法であってもよい。
【００２０】
プリンタ部１１３は、コントローラ２００から受け取った画像データに基づいて、用紙上に画像を形成する画像形成デバイスである。なお、本実施形態において、プリンタ部１１３で用いられる画像形成方式は、感光体ドラムや感光体ベルトを用いた電子写真方式であってもよいし、インクジェット方式であってもよい。
【００２１】
コントローラ２００は、操作部１１１、スキャナ部１１２、プリンタ部１１３と電気的に接続されており、またネットワークインターフェース２０６を介してＬＡＮ１００にも接続されている。すなわち、コントローラ２００は、ＬＡＮ１００を経由して他の機器と接続されている。これにより、コントローラ２００は、ＬＡＮ１００を介して接続された他の機器（例えば、サーバ１２０）とＨＴＴＰプロトコルによる通信が可能となっている。
【００２２】
ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラムに基づいて、コントローラ２００に接続された各種デバイスへのアクセス及びデバイスからのアクセスを統括的に制御する。また、ＣＰＵ２０１は、コントローラ２００の内部で行われる各種処理についても統括的に制御する。この制御には、後述のフローチャート（図１０）を実現するためのプログラムの実行も含まれる。
【００２３】
ＲＯＭ２０２には、上述の制御プログラムの他に、装置のブートプログラムも格納されている。ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、画像データを一時記憶するためのメモリとしても機能する。ＲＡＭ２０３は、バックアップ等により記憶した内容を装置本体の電源オフ後も保持しておく領域と、電源オフ後には、記憶した内容が消去される揮発性の領域により構成されている。
【００２４】
ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能である。操作部Ｉ／Ｆ２０５は、システムバス２１１と操作部１１１とを接続するためのインターフェースである。操作部Ｉ／Ｆ２０５は、操作部１１１（の液晶表示部）に画面を表示するための画像データをシステムバス２１１から受け取り、それを操作部１１１に出力すると共に、操作部１１１から入力された情報をシステムバス２１１へと出力する。
【００２５】
ネットワークＩ／Ｆ２０６はＬＡＮ１００及びシステムバス２１１に接続されており、それらの間で情報の入出力を行う。スキャナＩ／Ｆ２０７は、スキャナ部１１２から受け取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナＩ／Ｆ２０７は、受け取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する機能を持つ。
【００２６】
画像処理部２０８は、画像データの方向変換、画像圧縮、伸張処理などをおこなう。また、画像処理部２０８は、ＨＤＤ２０４に保存されている複数の画像データを合成して一枚の画像に相当する画像データを生成することが可能である。プリンタＩ／Ｆ２０９は、画像処理部２０８から送られた画像データを受け取り、この画像データに付加された属性データを参照しながら当該画像データに画像処理を施す。画像処理後の画像データは、プリンタ部１１３に出力される。
【００２７】
なお、本実施形態では、ＭＦＰは、ユーザインタフェース（ＵＩ）表示を実行するネットワークＭＦＰであるが、これ以外の汎用スキャナや汎用プリンタなどを接続した汎用コンピュータ等の画像処理装置であってもよい。
【００２８】
（Ｗｅｂサーバのハードウェア構成）
図３は、図１に示したＷｅｂサーバ１２０のハードウェア構成を示すブロック図である。図３に示されるように、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ネットワークＩ／Ｆ３０５、ハードディスクドライブ（ＨＤＤ）３０６は、システムバス３０９を介して互いに通信可能に接続されている。また、ＣＲＴ等の表示装置３０７、キーボード等の入力装置３０４、及びマウス等のポインティングデバイス３０８も、システムバス３０９を介して互いに通信可能に接続されている。
【００２９】
ＲＯＭ３０３またはＨＤＤ３０６には、オペレーティングシステムやＷｅｂアプリケーションなどの制御プログラムが格納されている。ＣＰＵ３０１は、この制御プログラムを必要に応じてＲＯＭ３０３あるいはＨＤＤ３０６からＲＡＭ３０２上へ読み出して実行することで、コンピュータをＷｅｂサーバ１２０として機能させる。
【００３０】
また、ＣＰＵ３０１は、表示装置３０７を介して各種情報の表示を行うと共に、入力装置３０４やポインティングデバイス３０８からユーザ指示等を受付ける。さらに、ＣＰＵ３０１は、ネットワークＩ／Ｆ３０５を介してＬＡＮ１００上の他の装置（例えば、ＭＦＰ１１０）と通信する。
【００３１】
（ＭＦＰのソフトウェア構成）
図４は、本実施形態での通信処理にかかわるＭＦＰ１１０のソフトウェアモジュールの構成を示した図である。これらのソフトウェアモジュールは、ＭＦＰ１１０のＨＤＤ２０４に格納されている。ＣＰＵ２０１がこれらのソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に読み出して実行することで、これらのソフトウェアモジュールの機能がＭＦＰ１１０上で実現される。ＨＴＴＰ通信部４０１は、ネットワークＩ／Ｆ２０６を介して、ＨＴＴＰプロトコルにより通信を行うソフトウェアモジュールである。
【００３２】
Ｗｅｂブラウザ４０２は、表示制御手段として機能し、ＨＴＴＰ通信部４０１を介してＷｅｂサーバ１２０と通信を行うブラウザである。Ｗｅｂブラウザ４０２は、Ｗｅｂサーバ１２０に対して、ＨＴＭＬで記載された操作画面のＨＴＭＬデータ（画面情報）をリクエストする。また、Ｗｅｂブラウザ４０２は、ＨＴＴＰ通信部４０１を介してＷｅｂサーバ１２０から受信した操作画面のＨＴＭＬデータをレンダリングして、操作画面を操作部１１１に表示する。更に、操作部１１１に表示した操作画面を介して入力された情報を、Ｗｅｂサーバ１２０に通知する。
【００３３】
スクリプト実行部４０３は、Ｗｅｂサーバ１２０によって生成されたスクリプトを、Ｗｅｂブラウザ４０２を介してＷｅｂサーバ１２０から受信し、受信したスクリプトを解析する。これにより、スクリプト実行部４０３は、受信したスクリプトに含まれる１つ以上のジョブ情報を抽出する。さらに、スクリプト実行部４０３は、抽出した各ジョブ情報を、受信したスクリプトで指定されている順に実行するようにジョブ管理部４０４に通知する。また、スクリプト実行部４０３は、ＭＦＰ１１０におけるサービス（Ｗｅｂサービス）を提供するＷｅｂサービスサーバ４０６に、スクリプト実行部４０３に処理を実行させるための処理インタフェースを、Ｗｅｂサービスとして提供させる。スクリプト実行部４０３の処理インタフェース（Ｗｅｂサービス）としては、実行中のジョブの状況を含む、スクリプトの実行状況を示す情報を取得するためのインタフェースや、ジョブ管理部４０４で管理しているジョブを制御するためのインタフェースなどがある。スキャンジョブの場合、ジョブの制御には、スキャンの中止や、原稿を入れ替えてスキャンを再スタートする制御等が含まれる。
【００３４】
ジョブ管理部４０４は、スクリプト実行部４０３からの指示を受けてジョブ情報を管理し、管理しているジョブ情報に基づいてジョブの実行をジョブ実行部４０５に指示する。ジョブ実行部４０５は、ジョブ管理部４０４からの指示に応じて、ジョブ情報に基づく処理（ジョブ）を実行するモジュールである。たとえば実行すべきジョブがスキャンジョブであれば、ジョブ実行部４０５は、スキャナ部１１２を操作して紙原稿を読み取りＨＤＤ２０４に画像データを保存するジョブを実行する。また、実行すべきジョブが送信ジョブであれば、ジョブ実行部４０５は、ＮｅｔｗｏｒｋＩ／Ｆ２０６を操作してＨＤＤ２０４内の画像データを送信するジョブを実行する。本実施形態において、スクリプト実行部４０３、ジョブ管理部４０４、及びジョブ実行部４０５は、実行制御手段として機能する。
【００３５】
Ｗｅｂサービスサーバ４０６は、サービス提供手段として機能し、Ｗｅｂサービスを提供するサーバ機能を持つソフトウェアモジュールである。Ｗｅｂサービスサーバ４０６は、スクリプト実行部４０３からの呼び出しに応じて、スクリプト実行部４０３を制御するためのＷｅｂサービスを提供する。また、Ｗｅｂサービスサーバ４０６は、呼び出されたＷｅｂサービスに応じてスクリプト実行部４０３を呼び出すことができる。
【００３６】
（Ｗｅｂサーバのソフトウェア構成）
図５は、本実施形態でのＷｅｂサーバ１２０のソフトウェアモジュールの構成を示した図である。Ｗｅｂサーバ１２０は、Ｗｅｂアプリケーション５０１及びＨＴＴＰ通信部５０４を、ソフトウェアモジュールとして備える。Ｗｅｂアプリケーション５０１には、プレゼンテーション部５０２及びロジック部５０３が含まれる。これらのソフトウェアモジュールは、Ｗｅｂサーバ１２０のＨＤＤ３０６に格納されている。ＣＰＵ３０１がこれらのソフトウェアモジュールをＨＤＤ３０６からＲＡＭ３０２に読み出して実行することで、これらのソフトウェアモジュールの機能がＷｅｂサーバ１２０で実現される。
【００３７】
プレゼンテーション部５０２は、ＨＴＴＰ通信部５０４を介して、ＭＦＰ１１０からのリクエストに応じて、ＭＦＰ１１０のＷｅｂブラウザ４０２で表示すべき操作画面のＨＴＭＬデータを、ＭＦＰ１１０へ応答として送信する。また、プレゼンテーション部５０２は、ＭＦＰ１１０のＷｅｂブラウザ４０２に表示された操作画面を介してユーザが入力した入力情報を、ＨＴＴＰ通信部５０４を介してＭＦＰ１１０から受信する。
【００３８】
ロジック部５０３は、プレゼンテーション部５０２から渡された、ＭＦＰ１１０からの入力情報に対する処理を行う。たとえば、ロジック部５０３は、ユーザの入力情報に応じて、ＭＦＰ１１０において表示すべき画面を変更したり、ＭＦＰ１１０が備えるデバイスの機能をＭＦＰ１１０に実行させるためのジョブ定義情報（スクリプト）を生成したりする。ＨＴＴＰ通信部５０４は、ネットワークＩ／Ｆ３０５を操作してＨＴＴＰプロトコルにより通信を行うソフトウェアモジュールである。
【００３９】
（ジョブの実行フロー）
図６は、本実施形態における情報処理システムにおいて実行される一連の処理を示したシーケンス図である。ここでは、本情報処理システムにおいて実行される処理の一例として、同図に示すシーケンスに従って実行される「スキャン送信処理」について説明を行う。なお、本実施形態において「スキャン送信処理」は、ＭＦＰ１１０のスキャナ部１１２を用いて、インタラクティブに、原稿台に１枚ずつ置かれた紙をスキャンして読み取って画像データを生成し、生成した当該画像データをＬＡＮ１００上のＦＴＰサーバ（不図示）に送信する処理に相当する。
【００４０】
まず、ユーザが、ＭＦＰ１１０の操作部１１１に設けられた、送信機能を実行するためのハードウェアボタン（不図示）を押下すると、ＭＦＰ１１０は、Ｗｅｂブラウザ４０２を起動する。Ｗｅｂブラウザ４０２は、ＭＦＰ１１０における処理を実行するための設定画面を操作部１１１に表示するため、Ｗｅｂサーバ１２０上のＷｅｂアプリケーション５０１に設定画面のＨＴＭＬデータをリクエストする。本例では、ＭＦＰ１１０は、その起動時に設定画面のコンテンツの所在を示すＵＲＬに基づいて設定画面のＨＴＭＬデータをリクエストするように、予め設定されているものとする。
【００４１】
Ｓ６０１では、ＭＦＰ１１０のＷｅｂブラウザ４０２が、上述のＵＲＬによって特定される設定画面のコンテンツを保持するＷｅｂアプリケーション５０１に対して、ＨＴＴＰのＧＥＴコマンドによるリクエスト（設定画面要求）を行う。具体的には、Ｗｅｂブラウザ４０２が、ＨＴＴＰ通信部４０１に設定画面のＵＲＬを送信することによって、ＨＴＴＰ通信部４０１が、ＨＴＴＰプロトコルによりＷｅｂサーバ１２０のＨＴＴＰ通信部５０４と通信を行う。ＨＴＴＰ通信部５０４は、ＨＴＴＰ通信部４０１から受信したＵＲＬに応じて、適切なリクエストがあったことをＷｅｂアプリケーション５０１に通知する。これにより、Ｗｅｂブラウザ４０２からＷｅｂアプリケーション５０１へのリクエストが行われる。なお、以下では、ＭＦＰ１１０とＷｅｂサーバ１２０とが通信する際に必然的に実行される、ＨＴＴＰ通信部４０１およびＨＴＴＰ通信部５０４の動作については、説明の簡略化のために省略する。
【００４２】
Ｓ６０２では、Ｗｅｂアプリケーション５０１のプレゼンテーション部５０２が、Ｓ６０１のリクエストに応じて、設定画面のＨＴＭＬデータ（設定画面データ）を生成し、当該リクエストに対する応答として、生成したＨＴＭＬデータをＷｅｂブラウザ４０２に送信する。Ｗｅｂブラウザ４０２は、受信したＨＴＭＬデータを解析し、操作部１１１に設定画面（操作画面）を表示する。
【００４３】
図７は、Ｓ６０２の結果、Ｗｅｂブラウザ４０２が操作部１１１に表示する設定画面の一例である。設定画面（ＧＵＩパネル）７０１には、ファイル名を設定するためのテキストボックス７０２、画像フォーマットを選択するためのラジオボタン７０３がある。本例では、画像データに「ｔｅｓｔ．ｐｄｆ」というファイル名を付与し、画像データをＰＤＦフォーマットで生成することが、設定画面７０１に設定された状態となっている。また、ＧＵＩボタン７０４は、設定内容に基づく機能の実行を指示するためのボタンである。ユーザによりＧＵＩボタン７０４が押下されると、処理の実行（スキャンの開始）が指示されたことになる。
【００４４】
Ｓ６０３では、Ｗｅｂブラウザ４０２が、Ｗｅｂアプリケーション５０１に対して、処理の実行が指示されたことを通知する。ユーザによりＧＵＩボタン７０４が押下されると、Ｗｅｂブラウザ４０２は、テキストボックス７０２およびラジオボタン７０３に設定されたパラメータを、設定情報（設定値）としてＷｅｂアプリケーション５０１に通知する。この通信には、ＨＴＴＰプロトコルのＰＯＳＴコマンドが利用されるものとする。このようにして、Ｗｅｂブラウザ４０２は、Ｗｅｂアプリケーション５０１（Ｗｅｂサーバ１２０）から提供された画面情報に基づく操作画面を介して入力された入力情報を、Ｗｅｂアプリケーション５０１に送信する。
【００４５】
Ｓ６０４では、Ｗｅｂアプリケーション５０１のプレゼンテーション部５０２が、Ｓ６０３のリクエストに応じて、ＭＦＰ１１０において処理の実行中に表示すべき画面のＨＴＭＬデータ（実行画面データ）を含む、処理の実行要求を生成する。また、ロジック部５０３が、Ｓ６０３のＰＯＳＴコマンドに含まれる設定情報に基づいて、ＭＦＰ１１０に、当該設定情報に対応する処理を実行させるためのスクリプトを生成する。そして、Ｓ６０４で、Ｗｅｂアプリケーション５０１は、Ｓ６０３の通知に対する応答として、生成した実行画面データと当該スクリプトとを含む実行要求を、応答データとしてＷｅｂブラウザ４０２に送信する。Ｗｅｂブラウザ４０２は、当該応答データを受信して、受信した当該応答データから、スクリプト（図８）と実行画面のＨＴＭＬデータ（図９）とを抽出する。なお、以下で詳しく説明するように、スクリプトは、Ｗｅｂブラウザ４０２から送信された入力情報に関連するサービス（Ｗｅｂサービス）の定義情報に相当し、サービスを特定するためのＵＲＬを含む。また、Ｗｅｂブラウザ４０２は、スクリプトに含まれるＵＲＬによって特定することによって、Ｗｅｂサービスサーバ４０６によって提供されるＷｅｂサービスを利用する。
【００４６】
ここで、図８を参照して、Ｗｅｂブラウザ４０２がＷｅｂアプリケーション５０１からＳ６０４で受信するスクリプトについて説明する。図８に示すスクリプトは、ユーザの入力に基づきインタラクティブに実行するスキャンジョブと、送信ジョブとをＭＦＰ１１０において順番に実行するためのスクリプトの例を示すものである。また、当該スクリプトによって、スクリプト実行部４０３の状態を取得するためのインタフェースと、スキャンジョブの制御を行うためのインタフェースをとが、Ｗｅｂサービスサーバ４０６によって提供されるＷｅｂサービスに割り当てられる。なお、図８示すスクリプトは、ＸＭＬで表現されているが、ＭＦＰ１１０が処理できる形式であればフォーマットを問わない。
【００４７】
Ｂｉｎｄｉｎｇタグ８０１は、スクリプト実行部４０３のどの処理インタフェースを１つのＷｅｂサービスとして提供するかについて記載している。本例では、スクリプト実行部４０３のスクリプトの実行状況を示す情報を取得する処理（「ｈｔｔｐ：／／ｗｗｗ．ｋａｎｏｎ．ｃｏｍ／ｊｏｂＳｃｒｉｐｔ／Ｓｔａｔｕｓ／ｇｅｔＳｔａｔｕｓ」というＵＲＩで示される）を「ｇｅｔＳｔａｔｕｓ」という名前で定義している。そして「ｓｔａｔｕｓＢｉｎｄｉｎｇ」という名前でこの処理のまとまりを定義している。
【００４８】
Ｂｉｎｄｉｎｇタグ８０２は、タグ８０１と同様である。本例では、スキャンジョブのスキャン開始を行う処理（「ｈｔｔｐ：／／ｗｗｗ．ｋａｎｏｎ．ｃｏｍ／ｊｏｂＳｃｒｉｐｔ／Ｓｃａｎ／ｓｃａｎＳｔａｒｔ」というＵＲＩで示される）を、「ｓｃａｎＳｔａｒｔ」という名前で定義している。また、スキャンジョブのスキャン終了を行う処理（「ｈｔｔｐ：／／ｗｗｗ．ｋａｎｏｎ．ｃｏｍ／ｊｏｂＳｃｒｉｐｔ／Ｓｃａｎ／ｓｃａｎＥｎｄ」）を「ｓｃａｎＥｎｄ」という名前で定義している。そして、これら２つの処理のまとまりを、「ｓｃａｎＢｉｎｄｉｎｇ」という名前で定義している。
【００４９】
Ｓｅｒｖｉｃｅタグ８０３は、タグ８０１でまとめた処理を実際のＷｅｂサービスと関連付ける定義である。本例では、「ｓｔａｔｕｓＢｉｎｄｉｎｇ」として定義された処理を、「／ＪｏｂＳｃｒｉｐｔ／ＩＤ＿０１２３４５／ｓｔａｔｕｓ／」で示されるＵＲＬのＷｅｂサービスに割り当てることを定義している。
【００５０】
Ｓｅｒｖｉｃｅタグ８０４は、タグ８０２でまとめた処理を実際のＷｅｂサービスと関連付ける定義である。本例では、「ｓｃａｎＢｉｎｄｉｎｇ」として定義された処理を、「／ＪｏｂＳｃｒｉｐｔ／ＩＤ＿０１２３４５／ｓｃａｎ／」で示されるＵＲＬのＷｅｂサービスに割り当てることを定義している。
【００５１】
以上のように、本例では、ＭＦＰ１１０内のソフトウェアモジュールが有する処理インタフェースをＷｅｂサービスに関連付けるための定義を、スクリプトにより構成している。これらのＷｅｂサービスの定義情報は、スクリプト実行部４０３が提供する処理インタフェース（Ｗｅｂサービス）のうち、後述のＨＴＭＬデータに基づく画面を表示するために必要なものを公開させるための定義情報である。
【００５２】
本例では、タグ８０１とタグ８０２で指定しているＵＲＬは、スクリプト毎に異なるＵＲＬであり、かつ、後述する図９のＨＴＭＬデータと対応している。そのため、ＭＦＰ１１０において複数のスクリプトが同時に実行された場合でも、各スクリプトによって実行される処理を異なるＷｅｂサービスとして扱うことが可能となる。
【００５３】
Ｓｃａｎタグ８０５は、スクリプト処理で実行するスキャンジョブについての設定情報である。本例では、スキャン原稿サイズ（ＤｏｃｕｍｅｎｔＳｉｚｅ）をスキャナ部１１２によって自動判別（Ａｕｔｏ）すべきことを示している。また、カラーモード（ＣｏｌｏｒＭｏｄｅ）がグレイスケール（ＧＲＡＹ＿ＳＣＡＬＥ）であることを示している。
【００５４】
Ｓｅｎｄタグ８０６は、スクリプト処理で実行する送信ジョブについての設定情報である。本例では、ＦＴＰプロトコルでサーバ「ｆｔｐｓｅｒｖｅｒ．ｘｘｘ．ｃｏｍ」への送信すべきことを示している。また、送信されるファイルのフォーマット（ＦｉｌｅＦｏｒｍａｔ）はＰＤＦで、ファイル名（ＦｉｌｅＮａｍｅ）は「ｔｅｓｔ」であることを示している。
【００５５】
図６に戻り、Ｓ６０４では、Ｗｅｂアプリケーション５０１のロジック部５０３が、以上のようなスクリプトを生成して送信し、Ｗｅｂブラウザ４０２がこのスクリプトを受信する。
【００５６】
次に、図９を参照して、Ｗｅｂブラウザ４０２がＷｅｂアプリケーション５０１から受信するＨＴＭＬデータ（実行画面データ）について説明する。図９に示すＨＴＭＬデータには、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔが埋め込まれている。ＭＦＰ１１０では、ＨＴＭＬデータに埋め込まれたＪａｖａＳｃｒｉｐｔによって、Ｗｅｂサービスサーバ４０６が呼び出されることで、スクリプト実行部４０３によるスクリプトの実行状況に応じた表示の更新処理やユーザとの対話処理が実行される。本例では、図８に示すスクリプトに基づいて実行されるスキャンジョブについての対話処理を行い、送信ジョブが実行されるまでの、操作部１１１への画面表示に用いられるＨＴＭＬデータの一例を示している。
【００５７】
ブロック９１０、９２０、９３０、９４０は、スクリプトの実行状態に応じて操作部１１１における画面の表示を更新するためのＪａｖａＳｃｒｉｐｔである。
【００５８】
ブロック９１０では、所定の時間（例えば２秒）のタイマを設定し、タイムアウトした場合に、ｇｅｔＳｃｒｉｐｔＳｔａｔｕｓ関数を呼び出すことが規定されている。Ｗｅｂブラウザ４０２は、ＨＴＭＬデータに基づく画面を表示すると、ブロック９１０のＪａｖａＳｃｒｉｐｔを実行する。
【００５９】
ブロック９２０のｇｅｔＳｃｒｉｐｔＳｔａｔｕｓ関数は、ブロック９２１、９２２、９２３、９２４からなる。この関数は、バックグラウンドでＷｅｂサービスサーバ４０６のＷｅｂサービスとＨＴＴＰ通信を行い、当該通信を通じてスクリプトの実行状況を示す情報を取得するためのＪａｖａＳｃｒｉｐｔで記載されている。
【００６０】
まず、ブロック９２１では、バックグランド通信を行うためのオブジェクト（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ）を生成し、ブロック９２２、９２３による通信時に行う処理を登録することが規定されている。
【００６１】
ブロック９２２では、バックグラウンドでの通信が成功した場合に呼ばれる部分であり、当該通信で得られた応答が、スキャン待機中（ＳＣＡＮ＿ＳＵＳＰＥＮＤという文字列）であることを示す応答であるか否かを判定することが規定されている。ブロック９２２によれば、スキャン待機中である場合には、スキャン終了ボタン（ｂｕｔｔｏｎＳｃａｎＥｎｄのＩＤのボタン）とスキャン開始ボタン（ｂｕｔｔｏｎＳｃａｎＳｔａｒｔのＩＤのボタン）とが有効化される。一方で、スキャン待機中以外である場合には、それらのボタンの表示が無効化される。
【００６２】
ブロック９２３は、バックグラウンドでの通信が成功した場合に呼ばれる部分であり、当該通信で得られた応答が、送信実行中（ＳＥＮＤ＿ＳＴＡＲＴという文字列）もしくは送信終了（ＳＥＮＤ＿ＥＮＤという文字列）であることを示す応答であるか否かを判定することが規定されている。本例では、この２つの状態は、スクリプトに規定されたスキャンジョブが既に終了して、送信ジョブに処理が移っていることを意味している。
【００６３】
スキャンジョブが未だ実行中であると判定した場合は、再度２秒のタイマーを設定し、タイムアウトしたらブロック９２０のｇｅｔＳｃｒｉｐｔＳｔａｔｕｓ関数を呼び出す。送信ジョブが開始されていると判定した場合は、ブロック９５１（ｍｅｓｓａｇｅ＿ｓｃａｎで示される表示領域）を非表示にして、ブロック９５２（ｍｅｓｓａｇｅ＿ｓｅｎｄで示される領域）を表示する。
【００６４】
ブロック９２４では、ブロック９２１で生成したバックグランド通信を行うためのオブジェクトにＵＲＬを指定して通信を実行する。このＵＲＬは、図８で説明したように、Ｗｅｂサーバ１２０から渡されるスクリプトで定義されているＵＲＬである。
【００６５】
このように、ブロック９２０のＪａｖａＳｃｒｉｐｔでは、Ｗｅｂアプリケーション５０１からＨＴＭＬデータとともに受信したスクリプトによって利用可能とするＷｅｂサービスのＵＲＬを利用して、スクリプト実行部４０３の実行状況を示す情報を取得し、表示を更新することが規定されている。
【００６６】
ブロック９３０のｓｃａｎＥｎｄ関数は、バックグラウンドでＷｅｂサービスサーバ４０６とＨＴＴＰ通信を行い、スキャンの終了を指示するためのＪａｖａＳｃｒｉｐｔである。ブロック９２０と同様、Ｗｅｂサーバ１２０から受信されるスクリプトに定義されたスキャンジョブ制御を行うＷｅｂサービスについてのＵＲＬにアクセスする。これにより、Ｗｅｂサービスサーバ４０６を介して、スクリプト実行部４０３にスキャンの終了を指示する。
【００６７】
ブロック９４０のｓｃａｎＳｔａｒｔ関数は、バックグラウンドでＷｅｂサービスサーバ４０６とＨＴＴＰ通信を行い、スキャンの開始を指示するためのＪａｖａＳｃｒｉｐｔである。ブロック９３０と同様、Ｗｅｂサーバ１２０から受信されるスクリプトに定義しているスキャンジョブ制御を行うＷｅｂサービスのＵＲＬにアクセスする。これにより、Ｗｅｂサービスサーバ４０６を介して、スクリプト実行部４０３にスキャンの開始を指示する。
【００６８】
ブロック９５０は、ＨＴＭＬによる画面情報の記述部分である。ブロック９５１は、スキャン中であることを画面に表示するための記述である。ブロック９５２は、送信が開始されたことを画面に表示するための記述である。これらの記述に基づく画面表示については、前述のようにブロック９２３のＪａｖａＳｃｒｉｐｔによって画面への表示と非表示が制御される。
【００６９】
ブロック９５３は、スクリプトの実行状況を画面に表示するための記述である。またブロック９５４は、スキャンジョブを終了すべきことを指示するためのボタンの表示に関する記述である。当該ボタンが押下されると、ブロック９３０のＪａｖａＳｃｒｉｐｔが呼び出される。また、ブロック９２２のＪａｖａＳｃｒｉｐｔによりボタンの有効と無効が切り替わる。
【００７０】
ブロック９５５は、スキャンジョブのスキャンを開始すべきことを指示するためのボタンの表示に関する記述である。当該ボタンが押下されると、ブロック９４０のＪａｖａＳｃｒｉｐｔが呼び出される。また、ブロック９２２のＪａｖａＳｃｒｉｐｔによりボタンの有効と無効が切り替わる。以上のＨＴＭＬデータにより、図８のスクリプトに基づいて定義されるＷｅｂサービスを利用して画面が制御される。
【００７１】
図６に戻り、Ｓ６０５で、Ｗｅｂブラウザ４０２は、Ｓ６０４でＷｅｂサーバ１２０から受信した実行要求に含まれる、実行画面データ（画面情報）とスクリプト（Ｗｅｂサービスの定義情報）とのうち、当該スクリプトをスクリプト実行部４０３に送信する。これにより、Ｗｅｂブラウザ４０２は、当該スクリプトの実行指示をスクリプト実行部４０３に対して行う。スクリプト実行部４０３は、スクリプトを受信すると、図１０に示すように、受信したスクリプトを実行する。このようにして、スクリプト実行部４０３は、Ｗｅｂサーバ１２０（Ｗｅｂアプリケーション５０１）からの実行要求に従った処理を実行する。
【００７２】
図１０は、スクリプト実行部４０３が、Ｗｅｂアプリケーション５０１から受信されたスクリプトを実行する処理の手順を示すフローチャートである。Ｓ１００１では、スクリプト実行部４０３が、Ｓ６０５で受信したスクリプトを解析して、当該スクリプトに記載されているＵＲＬをＷｅｂサービスサーバ４０６に登録する。これにより、スクリプト実行部４０３は、スクリプトに記載されている定義情報によって定義されたＷｅｂサービスを、Ｗｅｂサービスサーバ４０６に登録する。これにより、Ｗｅｂサービスサーバ４０６は、提供可能な複数のＷｅｂサービスのうち、スクリプト実行部４０３から登録されるＷｅｂサービスを提供する。また、Ｗｅｂブラウザ４０２は、Ｗｅｂサービスサーバ４０６が提供可能なＷｅｂサービスのうち、スクリプト実行部４０３によって登録されたＷｅｂサービスを利用可能になる。
【００７３】
具体的な登録処理として、スクリプト実行部４０３は、登録されたＵＲＬに対してＷｅｂブラウザ４０２から要求があった場合に、Ｗｅｂサービスサーバ４０６がスクリプト実行部４０３を呼び出すように、Ｗｅｂサービスサーバ４０６を設定する。図８の例では、スクリプト実行部４０３は、Ｗｅｂサービスサーバ４０６を介して２つのＷｅｂサービスを利用可能にする。なお、Ｓ１００１はＳ６０６に対応する。
【００７４】
Ｓ１００２では、スクリプト実行部４０３が、スクリプトから１つ以上のジョブ情報を抽出（スクリプトをジョブに分割）し、抽出したジョブ情報をジョブ管理部４０４に登録する。図８の例では、スキャンジョブと送信ジョブとの２つのジョブの情報が、Ｗｅｂサービスとしてジョブ管理部４０４に登録される。Ｓ１００３では、ジョブ実行部４０５は、ジョブ管理部４０４を介したスクリプト実行部４０３からの要求に応じて、登録されたジョブを順番に実行させる。
【００７５】
Ｗｅｂサービスサーバ４０６は、登録されたＷｅｂサービスへの要求を（Ｗｅｂブラウザ４０２から）受付けると、スクリプト実行部４０３に、当該要求に応じた処理を実行するように指示する。Ｓ１００４で、スクリプト実行部４０３は、Ｗｅｂサービスサーバ４０６から当該指示を受けると、Ｓ１００５に遷移し、そうでなければＳ１００６に遷移する。Ｓ１００５では、スクリプト実行部４０３が、Ｗｅｂサービスサーバ４０６から指示された処理を実行することによって、Ｗｅｂサービスサーバ４０６で受付けた要求に応じた処理を実行する。
【００７６】
図８の例で、スクリプトの実行状況を示す情報を取得するためのＷｅｂサービスが呼ばれた（即ち、Ｗｅｂサービスの実行が要求された）場合には、スクリプトの実行状況をスクリプト実行部４０３が判断し、その判断結果を、Ｗｅｂサービスサーバ４０６を介して要求元のクライアント（即ち、Ｗｅｂブラウザ４０２）へ応答を送信する。また、スキャンジョブの実行を制御するためのＷｅｂサービスが呼ばれた場合には、スクリプト実行部４０３が、ジョブ管理部４０４を介して、ジョブ実行部４０５によるスキャンジョブの実行を制御する。
【００７７】
Ｓ１００６で、スクリプト実行部４０３は、ジョブの実行を終了したか否かについて、ジョブ管理部４０４によるジョブ実行部４０５の監視結果に基づいて判定する。ジョブが終了していれば、Ｓ１００７に遷移し、そうでなければＳ１００４に遷移する。Ｓ１００７では、スクリプト実行部４０３は、スクリプトに記載されたすべてのジョブが終了したかどうかを、ジョブ管理部４０４によるジョブ実行部４０５の監視結果に基づいて判定する。すべてのジョブが終了していない場合は、Ｓ１００３に遷移し、次のジョブを実行する。すべてのジョブが終了した場合はＳ１００８に遷移する。
【００７８】
Ｓ１００８では、Ｓ１００４と同様に、Ｗｅｂサービスサーバ４０６は、登録されたＷｅｂサービスへの要求を受付けると、スクリプト実行部４０３に、当該要求に応じた処理を実行するように指示する。Ｗｅｂサービスに対して要求があった場合、Ｓ１００９に遷移し、そうでなければＳ１０１０に遷移する。Ｓ１００９では、Ｓ１００５と同様に、スクリプト実行部４０３が、Ｗｅｂサービスサーバ４０６から指示された処理を実行することによって、Ｗｅｂサービスサーバ４０６で受付けた要求に応じた処理を実行する。
【００７９】
Ｓ１０１０では、スクリプト実行部４０３は、Ｗｅｂサービスを利用不可にしてよいかどうかを判定する。Ｗｅｂサービスを利用不可にしてよいと判定した場合はＳ１０１１に遷移し、そうでない場合にはＳ１００８に遷移する。本実施形態では、一例として、ジョブの実行が終了してから所定の時間が経過した場合に、スクリプト実行部４０３はＷｅｂサービスを利用不可にすると判定する。この時間は、あらかじめスクリプト実行部４０３に設定されていてもよいし、あるいは、Ｗｅｂサーバ１２０から受信されるスクリプト内に記載されていてもよい。即ち、Ｗｅｂサービスサーバ４０６は、サービスを利用不可にすべきことが当該スクリプトを用いてＷｅｂサーバ１２０から指示されるまで、または、スクリプト実行部４０３による処理（ジョブ）の実行が終了して所定の時間が経過するまで、Ｗｅｂサービスを提供する。
【００８０】
スクリプト実行部４０３は、Ｓ１０１０においてＷｅｂサービスを利用不可にすると判定した場合、Ｓ１０１１で、Ｗｅｂサービスサーバ４０６にＳ１００１で登録したＵＲＬを、Ｗｅｂサービスサーバ４０６に削除させることによって、当該ＵＲＬに対応するＷｅｂサービスを利用不可にする。
【００８１】
図６に戻り、図１０に記載の処理の流れにあわせて、Ｗｅｂブラウザ４０２によるＨＴＭＬデータ（図９）に基づく表示制御について説明する。前述のＳ６０５で、Ｗｅｂブラウザ４０２は、スクリプト実行部４０３にスクリプトを送信して当該スクリプトの実行指示を行うとともに、Ｗｅｂアプリケーション５０１から当該スクリプトとともに受信したＨＴＭＬデータ（実行画面データ）を解析し、当該ＨＴＭＬデータに基づく画面を操作部１１１に表示する。
【００８２】
図１１（ａ）は、Ｗｅｂブラウザ４０２が操作部１１１に表示する画面の例である。同図に示すように、Ｗｅｂブラウザ４０２は、表示領域１１０１内に、図９のブロック９５１に基づく情報１１０２と、図９のブロック９５３に基づく情報１１０３とを表示している。情報１１０３では、スクリプトの実行状況に関する初期表示として、スキャン処理の実行中であることを示す「ＳＣＡＮ＿ＳＣＡＮＮＩＮＧ」を表示している。
【００８３】
Ｓ６０６は、図１０のＳ１００１に対応しており、スクリプト実行部４０３が、Ｗｅｂサービスサーバ４０６に対して、Ｓ６０５で受信したスクリプトに基づくＷｅｂサービスを登録する。本例では、Ｗｅｂサービスサーバ４０６でスクリプトの実行状況を示す情報を取得するためのＷｅｂサービスとスキャンジョブの実行を制御するためのＷｅｂサービスとの２つのＷｅｂサービスが、Ｗｅｂサービスサーバ４０６に登録される。この登録処理は、スクリプトに記載された各Ｗｅｂサービスに対応するＵＲＬがＷｅｂサービスサーバ４０６に登録されることによって実現される。これにより、これらのＷｅｂサービスが、Ｗｅｂブラウザ４０２から、登録されたＵＲＬを特定することによって利用可能となる。
【００８４】
Ｓ６０７では、Ｗｅｂブラウザ４０２は、ＨＴＭＬデータ（図９）に含まれるブロック９２０のＪａｖａＳｃｒｉｐｔによって、Ｓ６０６で利用可能となったＷｅｂサービスのうち、スクリプトの実行状況を示す情報を取得するためのＷｅｂサービスを呼び出す。
【００８５】
Ｓ６０８は、図１０のＳ１００４に対応しており、Ｗｅｂサービスサーバ４０６が、Ｗｅｂブラウザ４０２から要求されたＷｅｂサービスに対応する処理をスクリプト実行部４０３に実行させるために、スクリプト実行部４０３を呼び出す。当該呼び出しに応じて、スクリプト実行部４０３は、Ｗｅｂサービスサーバ４０６を介してＷｅｂブラウザ４０２にスクリプトの実行状況を送信する。本例では、この時にはスキャンジョブが待機中の状態になっており、Ｗｅｂブラウザ４０２に「ＳＣＡＮ＿ＳＵＳＰＥＮＤ」という、スキャンジョブの状態を示す文字列が送られるものとする。Ｗｅｂブラウザ４０２は、ブロック９２２のＪａｖａＳｃｒｉｐｔに基づいて、表示を変更する。このように、Ｗｅｂブラウザ４０２は、Ｗｅｂサービスサーバ４０６を介して、ＪａｖａＳｃｒｉｐｔのタイマーに基づいてスクリプトの実行状況を示す情報を取得して、取得した情報に基づいて画面の表示を更新する。
【００８６】
図１１（ｂ）は、Ｓ６０８の結果、Ｗｅｂブラウザ４０２が操作部１１１に表示する画面の例である。同図に示すように、Ｗｅｂブラウザ４０２は、表示領域１２０１内に、図９のブロック９５１に基づく情報１２０２と、図９のブロック９５３に基づく情報１２０３とを表示している。また、Ｗｅｂブラウザ４０２は、ブロック９２２のＪａｖａＳｃｒｉｐｔの処理により、図９のブロック９５４、ブロック９５５に基づくＧＵＩボタン１２０４、１２０５を表示している。
【００８７】
Ｓ６０９で、ユーザによって図１１（ｂ）のＧＵＩボタン１２０５が押下されると、ＧＵＩボタン１２０５が押下された場合の処理としてスクリプトに記載された処理が実行される。具体的には、図９で説明したように、ユーザによりＧＵＩボタン１２０５が押下されると、Ｗｅｂブラウザ４０２は、ブロック９４０のＪａｖａＳｃｒｉｐｔを実行する。
【００８８】
Ｓ６１０で、Ｗｅｂブラウザ４０２は、ブロック９４０のＪａｖａＳｃｒｉｐｔの実行に応じて、Ｓ６０５で登録した、スキャンジョブの実行を制御するためのＷｅｂサービスを呼び出す。
【００８９】
Ｓ６１１で、Ｗｅｂサービスサーバ４０６は、Ｓ６１０のＷｅｂサービスの呼び出しに応じてスクリプト実行部４０３を呼び出す。スクリプト実行部４０３は、図１０のＳ１００４とＳ１００５で説明したように、ジョブ管理部４０４を介して、スキャンジョブについてのスキャンを開始するようにジョブ実行部４０５を制御する。このように、Ｓ６１０とＳ６１１で利用されるＷｅｂサービスは、スキャンジョブの実行中にＷｅｂブラウザ４０２によって表示中の操作画面を介して入力された情報に基づいて、スクリプト実行部４０３によるジョブの実行を制御するサービスに相当する。
【００９０】
Ｓ６１２とＳ６１３では、Ｓ６０７とＳ６０８と同様に、タイマーに基づいて呼び出されたブロック９２０のＪａｖａＳｃｒｉｐｔにより、スクリプトの実行状況を取得するためのＷｅｂサービスが呼び出されて、当該Ｗｅｂサービスに対応する処理がスクリプト実行部４０３によって実行される。
【００９１】
Ｓ６１４で、再びスキャン処理が待機状態になった状態で、図１１（ｂ）の表示を行っている間に、ユーザにより図１１（ｂ）のＧＵＩボタン１２０４が押下されると、ＧＵＩボタン１２０４が押下された場合の処理としてスクリプトに記載された処理が実行される。具体的には、図９で説明したように、ユーザによりＧＵＩボタン１２０５が押下されると、Ｗｅｂブラウザ４０２は、ブロック９３０のＪａｖａＳｃｒｉｐｔを実行する。
【００９２】
Ｓ６１５とＳ６１６では、Ｗｅｂブラウザ４０２とＷｅｂサービスサーバ４０６がＳ６１０とＳ６１１と同様に処理を実行する。これにより、スクリプト実行部４０３は、ジョブ管理部４０４を介して、スキャンジョブを終了するようにジョブ実行部４０５を制御する。このように、Ｓ６１５とＳ６１６で利用されるＷｅｂサービスは、スキャンジョブの実行中にＷｅｂブラウザ４０２によって表示中の操作画面を介して入力された情報に基づいて、スクリプト実行部４０３によるジョブの実行を制御するサービスに相当する。
【００９３】
Ｓ６１７とＳ６１８では、Ｓ６０７とＳ６０８と同様に、タイマーに基づいて呼び出されたブロック９２０のＪａｖａＳｃｒｉｐｔにより、スクリプトの実行状況を示す情報を取得するためのＷｅｂサービスサーバ４０６が呼び出される。このときには、スキャンジョブはすでに終了しており、送信ジョブが実行されている。このため、Ｗｅｂブラウザ４０２は、「ＳＥＮＤ＿ＳＴＡＲＴ」の文字列をＷｅｂサービスから受信する。そのため、Ｗｅｂブラウザ４０２は、ブロック９２３のＪａｖａＳｃｒｉｐｔにより、ブロック９５１に基づく情報を非表示として、ブロック９５２に基づく情報を表示する。
【００９４】
図１１（ｃ）は、Ｓ６１７とＳ６１８の結果、Ｗｅｂブラウザ４０２が表示する画面の例である。同図に示すように、表示領域１３０１内に、図９のブロック９５２を表示１３０２とリンク１３０３として表示し、図９のブロック９５３に基づく情報１３０４を表示する。本例では、以上により、ユーザはスキャンジョブに関する対話処理を終える。ここで、ユーザによってリンク１３０３が選択すると、Ｗｅｂブラウザ４０２は、操作部１１１の表示を初期画面に戻す。
【００９５】
最終的に、Ｓ６１９で、スクリプト実行部４０３は、図１０のＳ１０１０とＳ１０１１のように、Ｗｅｂサービスサーバ４０６におけるＷｅｂサービスを利用不可にする処理を実行する。上述のように、スクリプト（ジョブ）の実行が終了してから一定時間が経過した際に、当該処理を実行する。
【００９６】
以上説明したように、本実施形態では、Ｗｅｂブラウザ４０２が、Ｗｅｂアプリケーション５０１（Ｗｅｂサーバ１２０）からの指示により、ＭＦＰ１１０における画面の表示と機能の実行とを制御することができる。具体的には、Ｗｅｂブラウザ４０２は、Ｗｅｂサーバ１２０から提供される画面情報に基づく操作画面を表示して、それを介して入力された入力情報をＷｅｂサーバ１２０に送信する。また、Ｗｅｂブラウザ４０２は、当該入力情報に対応する処理の実行要求を、Ｗｅｂサーバ１２０から受信し、受信した実行要求に含まれるスクリプトをスクリプト実行部４０３に送信する。当該スクリプトには、スクリプト実行部４０３を制御するためのＷｅｂサービスの定義情報が含まれる。スクリプト実行部４０３は、当該スクリプトに含まれる定義情報によって定義されたＷｅｂサービスを、Ｗｅｂサービスサーバ４０６に登録する。Ｗｅｂサービスサーバ４０６は、スクリプト実行部４０３による処理の実行中に提供可能なＷｅｂサービスのうち、登録されたＷｅｂサービスを、Ｗｅｂブラウザ４０２に提供する。
【００９７】
このようにして、ＭＦＰ１１０において、Ｗｅｂサーバ１２０からの要求に従ってＭＦＰ１１０の機能を実行する際に、その実行を制御するためのサービスを、必要に応じて利用可能とすることができる。その結果、ＭＦＰ１１０において、提供可能なすべてのサービスを常に利用可能にする場合と比べて、メモリ等のＭＦＰ１１０のリソースが不必要に使用されることを回避できる。
【００９８】
また、Ｗｅｂサーバ１２０からの実行要求には、上述のスクリプトだけでなく、当該実行要求に従った処理をスクリプト実行部４０３によって実行している間に、Ｗｅｂブラウザ４０２によって表示すべき操作画面の画面情報も含まれている。Ｗｅｂブラウザ４０２は、Ｗｅｂサービスサーバ４０６によって提供されるサービスを利用して、Ｗｅｂサーバ１２０から受信した画面情報に基づく表示を制御する。本実施形態によれば、スクリプト実行部４０３による処理の実行中のＷｅｂブラウザ４０２による表示制御において、必要に応じて、Ｗｅｂサービスサーバ４０６によって提供されるサービスを利用可能になり、上述と同様、ＭＦＰ１１０のリソースが不必要に使用されることを回避できる。
【００９９】
また、Ｗｅｂサービスを特定するためのＵＲＬは、Ｗｅｂサーバ１２０からの指示によって変更可能である。従って、ＭＦＰ１１０が固定のＷｅｂサービスを有する場合と比べて、表示制御に必要な機能を必要なＷｅｂサービスとして構成できるため、ＭＦＰ１１０においてより柔軟な制御を行うことができる。
【０１００】
＜実施形態２＞
実施形態１では、ＭＦＰ１１０は、Ｗｅｂアプリケーション５０１から受信したＨＴＭＬデータとスクリプトとに基づく処理を実行していた。実施形態２では、Ｗｅｂアプリケーション５０１が、スクリプトの実行状況に応じて適切なＨＴＭＬデータをＭＦＰ１１０に送信することで、ＭＦＰ１１０の表示制御を行う場合について説明する。実施形態２では、説明の簡略化のために、実施形態１と共通する部分については説明を省略し、実施形態１と異なる部分を中心として説明する。具体的には、実施形態２は、ＭＦＰ１１０とＷｅｂサーバ１２０とでソフトウェアにより実行される処理の流れが異なる。
【０１０１】
（ジョブの実行フロー）
図１２は、実施形態２における情報処理システムにおいて実行される一連の処理のシーケンスを示す図である。同図では、図６と同様、スキャン送信処理がＭＦＰ１１０において実行される場合について説明する。Ｗｅｂブラウザ４０２の起動後、Ｓ１４０１からＳ１４０６までの処理は、実施形態１のＳ６０１からＳ６０６までと同等である。しかしながら、本実施形態では、Ｓ１４０４で、Ｗｅｂブラウザ４０２は、実施形態１におけるＨＴＭＬデータ（図９）とは異なるＨＴＭＬデータを、Ｗｅｂアプリケーション５０１から受信する。
【０１０２】
図１３は、Ｓ１４０４でＷｅｂアプリケーション５０１からＷｅｂブラウザ４０２に送信されるＨＴＭＬデータの例を示す。同図に示すように、実施形態１とは異なり、当該ＨＴＭＬデータには、Ｗｅｂブラウザ４０２がＷｅｂサービスを呼び出すためのＪａｖａＳｃｒｉｐｔは記載されない。その代わりに、本実施形態では、ブロック１５１０のＪａｖａＳｃｒｉｐｔに基づいて、一定時間の経過後に、Ｗｅｂブラウザ４０２からＷｅｂアプリケーション５０１に対してリクエストが行われる。Ｓ１４０４では、図１３に示すようなＨＴＭＬデータと、実施形態１で説明したスクリプトとを含む応答データが、Ｗｅｂアプリケーション５０１からＷｅｂブラウザ４０２に送信される。
【０１０３】
Ｓ１４０７で、Ｗｅｂブラウザ４０２は、ＨＴＭＬデータ（図１３）に基づいて、Ｗｅｂアプリケーション５０１に画面情報の要求（画面要求）を行う。Ｓ１４０８、Ｓ１４０９で、Ｗｅｂアプリケーション５０１は、Ｓ１４０７の画面要求に応じて、Ｗｅｂサービスサーバ４０６と通信して、スクリプトの実行状況を取得するためのＷｅｂサービスを呼び出す。このとき、Ｗｅｂアプリケーション５０１は、Ｓ１４０４で送信したスクリプトに含まれるＷｅｂサービスのＵＲＬを指定する。本例では、Ｓ１４０８の結果として、Ｗｅｂアプリケーション５０１は、スキャンジョブが待機状態であることを示す文字列を受信する。
【０１０４】
Ｓ１４１０で、Ｗｅｂアプリケーション５０１は、Ｓ１４０８の結果としてスキャンジョブが待機状態であることを示す情報を得ている。このため、Ｗｅｂアプリケーション５０１は、図１１（ｂ）と同様、ユーザとの対話処理を行うためのＨＴＭＬデータを、Ｗｅｂブラウザ４０２に送信する。実施形態１ではＧＵＩボタン１２０４又は１２０５が押下された際に、Ｗｅｂブラウザ４０２が、ＪａｖａＳｃｒｉｐｔによってＷｅｂサービスを呼び出していたのに対して、本例では、Ｗｅｂアプリケーション５０１がＷｅｂサービスサーバ４０６にそれを通知するものとする。
【０１０５】
Ｓ１４１１では、ユーザが図１１（ｂ）と同様の画面を介して、スキャンジョブの終了を指示する。Ｗｅｂアプリケーション５０１は、Ｓ１４１１で、Ｗｅｂブラウザ４０２からスキャン終了の通知を受信すると、Ｓ１４１２で、Ｗｅｂサービスサーバ４０６と通信して、スキャンジョブの制御用のＷｅｂサービスを呼び出す。ここで、Ｗｅｂアプリケーション５０１は、Ｓ１４０４で指定したＵＲＬに対してリクエストを行うことで、当該Ｗｅｂサービスを呼び出す。
【０１０６】
Ｓ１４１３では、Ｗｅｂサービスサーバ４０６は、Ｓ１４０９と同様に、スクリプト実行部４０３を呼び出す。その結果、スクリプト実行部４０３は、実施形態１と同様にスキャンジョブを制御する。その後、Ｓ１４１４で、Ｗｅｂアプリケーション５０１は、Ｓ１４１１のＷｅｂブラウザ４０２からのリクエストに対する応答として、図１１（ｃ）と同様の画面を表示するためのＨＴＭＬデータをＷｅｂブラウザ４０２に送信する。
【０１０７】
Ｓ１４１５では、スクリプト実行部４０３は、実施形態１と同様にして、Ｗｅｂサービスサーバ４０６のＷｅｂサービスを利用不可にする。
【０１０８】
以上のように、実施形態２では、Ｗｅｂアプリケーション５０１（Ｗｅｂサーバ１２０）からの処理の実行要求に従った処理をスクリプト実行部４０３が実行している間に、Ｗｅｂブラウザ４０２は、Ｗｅｂサーバ１２０に画面情報を要求する。Ｗｅｂサーバ１２０は、当該要求を受信すると、ＭＦＰ１１０のＷｅｂサービスサーバ４０６に登録され、提供されているＷｅｂサービスを利用して、Ｗｅｂブラウザ４０２によって表示すべき画面情報を生成し、それをＷｅｂブラウザ４０２に送信する。Ｗｅｂブラウザ４０２は、受信した画面情報に基づく操作画面を表示する。本実施形態によれば、このように、スクリプト実行部４０３による処理の実行中に、Ｗｅｂブラウザ４０２ではなくＷｅｂサーバ１２０主導でＭＦＰ１１０の表示制御を行う場合にも、Ｗｅｂサーバ１２０によって、Ｗｅｂサービスサーバ４０６に登録されたＷｅｂサービスを、必要に応じて利用して、当該表示制御を実行することが可能となる。
【０１０９】
＜その他の実施形態＞
前述の実施形態１と実施形態２では、スクリプト実行後、一定時間が経過したことに応じてＷｅｂサービスサーバ４０６のＷｅｂサービスを利用不可に設定しているが、本発明はこれに限定されない。たとえば、Ｗｅｂサービスを利用不可にするためのＷｅｂサービスをＷｅｂサービスサーバ４０６が提供してもよいし、何らかのプロトコルに基づいて、Ｗｅｂサービスを利用不可にする指示を受付けてもよい。また、それらの条件は、Ｗｅｂアプリケーション５０１から受信されるスクリプトに記載されていてもよい。このようにして、Ｗｅｂアプリケーション５０１からＭＦＰ１１０のＷｅｂサービスを利用不可にするための制御を柔軟に行うことができる。
【０１１０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005822537.tif 000002
【図２】
0005822537.tif 000003
【図３】
0005822537.tif 000004
【図４】
0005822537.tif 000005
【図５】
0005822537.tif 000006
【図６】
0005822537.tif 000007
【図７】
0005822537.tif 000008
【図８】
0005822537.tif 000009
【図９】
0005822537.tif 000010
【図１０】
0005822537.tif 000011
【図１１】
0005822537.tif 000012
【図１２】
0005822537.tif 000013
【図１３】
0005822537.tif 000014