(57)【要約】      （修正有）【課題】ネットワーク上のサーバー装置が提供する画像入力サービスを利用する際、情報処理装置に存在するドライバ機能を有効活用する。【解決手段】サーバー装置１０３は、情報処理装置１０１により選択された画像入力装置１０２を使用するためのドライバが情報処理装置１０１に存在するか否かを検索するための検索スクリプトを情報処理装置１０１に提供し、提供された検索スクリプトにより、情報処理装置１０１にドライバが存在すると判別された場合に、ドライバを制御するためのドライバ制御プログラムを情報処理装置１０１に提供する。【選択図】図４
2012252466.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信可能なサーバー装置であって、
画像入力装置のリストを作成し、前記情報処理装置に提供するリスト提供手段と、
前記リスト提供手段が提供したリストから前記情報処理装置において選択された画像入力装置を使用するためのドライバが前記情報処理装置に存在するか否かを検索するための検索スクリプトを前記情報処理装置に提供する検索スクリプト提供手段と、
前記検索スクリプト提供手段が提供した検索スクリプトにより、前記情報処理装置に前記ドライバが存在すると判別された場合に、前記ドライバを制御するためのドライバ制御プログラムを前記情報処理装置に提供するプログラム提供手段と、
前記ドライバ制御プログラムにより制御されたドライバによって前記画像入力装置により入力された画像データを、前記情報処理装置を経由して取得し、取得した画像データを保存する保存手段と
を備えることを特徴とするサーバー装置。
【請求項２】
前記検索スクリプトにより前記ドライバが存在しないか、前記ドライバを使用しないと判別されたとき、前記情報処理装置により選択された画像入力装置を制御するための制御スクリプト情報を前記情報処理装置に提供することを特徴とする請求項１記載のサーバー装置。
【請求項３】
サーバー装置及び画像入力装置と通信可能な情報処理装置であって、
画像入力装置のリストを前記サーバー装置から取得して、動作させる画像入力装置をユーザーに選択させるための選択画面を表示する選択画面表示手段と、
前記選択画面表示手段が表示した選択画面を介してユーザーによって選択された画像入力装置を示す選択結果を前記サーバー装置に送信する選択結果送信手段と、
前記選択結果送信手段が送信した選択結果が示す画像入力装置を使用するためのドライバが前記情報処理装置に存在するか否かを検索するための検索スクリプトを前記サーバー装置から取得する第１取得手段と、
前記第１取得手段が取得した検索スクリプトによって前記情報処理装置に前記ドライバが存在すると判別された場合に、前記ドライバを制御するためのドライバ制御プログラムを前記サーバー装置から取得する第２取得手段と、
前記第２取得手段が取得したドライバ制御プログラムにより起動されたドライバにより、前記画像入力装置の動作内容を設定するための設定画面を表示する表示手段と、
前記表示手段が表示した設定画面により、ユーザーによって設定された動作内容を示すジョブコマンドを前記画像入力装置に送信することによって、前記画像入力装置を制御する制御手段と
を備えたことを特徴とする情報処理装置。
【請求項４】
前記第１取得手段により取得された検索スクリプトによって前記情報処理装置に前記ドライバが存在すると判別されなかった場合に、使用可能なドライバを検索し、検索されたドライバを前記情報処理装置にインストールすることを特徴とする請求項３記載の情報処理装置。
【請求項５】
情報処理装置と通信可能なサーバー装置の制御方法であって、
画像入力装置のリストを作成し、前記情報処理装置に提供するリスト提供ステップと、
前記リスト提供ステップで提供したリストから前記情報処理装置において選択された画像入力装置を使用するためのドライバが前記情報処理装置に存在するか否かを検索するための検索スクリプトを前記情報処理装置に提供する検索スクリプト提供ステップと、
前記検索スクリプト提供ステップで提供した検索スクリプトにより、前記情報処理装置に前記ドライバが存在すると判別された場合に、前記ドライバを制御するためのドライバ制御プログラムを前記情報処理装置に提供するプログラム提供ステップと、
前記ドライバ制御プログラムにより制御されたドライバによって前記画像入力装置により入力された画像データを、前記情報処理装置を経由して取得し、取得した画像データを保存する保存ステップと
を備えることを特徴とする制御方法。
【請求項６】
サーバー装置及び画像入力装置と通信可能な情報処理装置の制御方法であって、
画像入力装置のリストを前記サーバー装置から取得して、動作させる画像入力装置をユーザーに選択させるための選択画面を表示する選択画面表示ステップと、
前記選択画面表示ステップで表示した選択画面を介してユーザーによって選択された画像入力装置を示す選択結果を前記サーバー装置に送信する選択結果送信ステップと、
前記選択結果送信ステップで送信した選択結果が示す画像入力装置を使用するためのドライバが前記情報処理装置に存在するか否かを検索するための検索スクリプトを前記サーバー装置から取得する第１取得ステップと、
前記第１取得ステップで取得した検索スクリプトによって前記情報処理装置に前記ドライバが存在すると判別された場合に、前記ドライバを制御するためのドライバ制御プログラムを前記サーバー装置から取得する第２取得ステップと、
前記第２取得ステップで取得したドライバ制御プログラムにより起動されたドライバにより、前記画像入力装置の動作内容を設定するための設定画面を表示する表示ステップと、
前記表示ステップで表示した設定画面により、ユーザーによって設定された動作内容を示すジョブコマンドを前記画像入力装置に送信することによって、前記画像入力装置を制御する制御ステップと
を備えたことを特徴とする制御方法。
【請求項７】
請求項５記載のサーバー装置の制御方法をコンピュータに実行させるための制御プログラム。
【請求項８】
請求項６記載の情報処理装置の制御方法をコンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用して画像を入力させるためのサーバー装置、情報処理装置、それらの制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
情報処理装置から画像入力装置等の周辺機器を利用するには、一般的にその周辺機器に対応した特定のデバイスドライバー（画像入力装置であればスキャナードライバー）を、情報処理装置上で動作する処理システム（以下、「ＯＳ」という）に組み込む必要がある。
【０００３】
画像入力装置を利用する場合、スキャナードライバーをアプリケーションから起動させ、スキャンに必要な設定を行い、画像入力装置を駆動し、取得した画像データをアプリケーションに転送する事で、アプリケーションが自由に画像データを扱う事が可能になる。
【０００４】
従って、利用する画像入力装置と情報処理装置上で動作するＯＳの両方に対応したスキャナードライバーが準備されている。
【０００５】
一方、スキャナードライバーでの操作ではなく、画像入力装置に直接接続されているＰＣがホストするウェブページにアクセスする事で、スキャナードライバーでの操作と同等の機能を実現する発案がなされている（例えば、特許文献１参照）。
【０００６】
この場合、ウェブページにアクセスする情報処理装置側にはデバイスドライバーの構造を必要としない。
【０００７】
また、近年、クラウドコンピューティングと呼ばれる、インターネット上のサーバー装置でのウェブサービスアプリケーションによる画像処理により、幅広い画像利用用途が実現可能となっている。
【０００８】
上記インターネット上サーバー装置へ画像転送を行う方法としては、以下の技術が利用されている。その技術はウェブブラウザアプリケーション上で開いたウェブページに組み込まれた画像アップロード等のメニューにより、使用している情報処理装置から画像ファイルを所望のサーバー装置へ転送する技術である。また、ファイル転送を行う専用のアプリケーションによる画像ファイルの転送等も広く利用されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１４８６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記先行技術文献に示されたウェブブラウザーを使用する画像入力システムでは、ローカルネットワーク内に画像入力装置に接続されたサーバー装置が必要である。また、そのサーバー装置では画像入力装置を制御可能な仕組み・設定が準備されていなければならない。
【００１１】
そのため、環境の準備作業が複雑になってしまうことに加え、サーバー装置がローカルネットワーク外のインターネット上にある場合は利用することができないという課題がある。
【００１２】
上記の課題を解決するためには、次のような画像入力システムが考えられる。まず、情報処理装置内のウェブブラウザーでインターネット上のサーバー装置にある画像入力サービスを起動する。
【００１３】
そして、情報処理装置は、サーバー装置からスクリプトをダウンロードして、これを実行する。さらに情報処理装置は、検索プロトコルをローカルネットワークに転送することで、検索された画像入力装置の情報をサーバー装置に転送する。
【００１４】
その上で、情報処理装置が、サーバー装置から送信されるスキャンコマンド信号を画像入力装置に転送することで、画像入力装置がスキャンや送信処理を行い、送信される画像情報をサーバー装置に転送する。
【００１５】
これにより、情報処理装置において、予めサーバー装置などでの複雑な設定を必要とせずに、インターネット上の豊富な保存機能を利用できる画像入力システムを構築することができる。
【００１６】
しかしながら、サーバー装置により提供される画像入力サービスには、情報処理装置内のウェブブラウザーからアクセス可能である。情報処理装置が、デスクトップＰＣに代表されるようなローカルに十分な保存領域を持ち、画像入力装置に対応したスキャナードライバーが使用可能な環境である可能性もある。このとき、情報処理装置は、スキャナードライバーが持つ豊富な機能を利用することや、パフォーマンスの優位性を活用することができない。
【００１７】
本発明の目的は、ネットワーク上のサーバー装置が提供する画像入力サービスを利用する際、情報処理装置に存在するドライバ機能を有効活用する仕組みを提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、請求項１のサーバー装置は、情報処理装置と通信可能なサーバー装置であって、画像入力装置のリストを作成し、前記情報処理装置に提供するリスト提供手段と、前記リスト提供手段が提供したリストから前記情報処理装置において選択された画像入力装置を使用するためのドライバが前記情報処理装置に存在するか否かを検索するための検索スクリプトを前記情報処理装置に提供する検索スクリプト提供手段と、前記検索スクリプト提供手段が提供した検索スクリプトにより、前記情報処理装置に前記ドライバが存在すると判別された場合に、前記ドライバを制御するためのドライバ制御プログラムを前記情報処理装置に提供するプログラム提供手段と、前記ドライバ制御プログラムにより制御されたドライバによって前記画像入力装置により入力された画像データを、前記情報処理装置を経由して取得し、取得した画像データを保存する保存手段とを備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ネットワーク上のサーバー装置が提供する画像入力サービスを利用する際、情報処理装置に存在するドライバ機能を有効活用する仕組みを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態に係る画像処理システムの概略構成を示す図である。
【図２】図１における情報処理装置、及び画像入力装置の構成を示すブロック図である。
【図３】図１におけるサーバー装置の構成を示すブロック図である。
【図４】図１におけるサーバー装置、情報処理装置、及び画像入力装置により実行されるスキャン処理の手順を示すシーケンス図である。
【図５】検索中画面の一例を示す図である。
【図６】検索済装置リスト画面の一例を示す図である。
【図７】スキャン設定画面の一例を示す図である。
【図８】スキャン中画面の一例を示す図である。
【図９】スキャン作業完了画面の一例を示す図である。
【図１０】図１における情報処理装置により実行されるスキャン処理の手順を示すフローチャートである。
【図１１】図１における情報処理装置により実行されるインストール処理の手順を示すフローチャートである。
【図１２】図１における情報処理装置により実行されるドライバスキャン処理の手順を示すフローチャートである。
【図１３】図１におけるサーバー装置により実行されるスキャン処理の手順を示すフローチャートである。
【図１４】図１における画像入力装置により実行されるスキャン処理の手順を示すフローチャートである。
【図１５】サーバー装置の検索スクリプト及びスキャンスクリプトが情報処理装置上のウェブブラウザーで動作したときのスクリプトによる、データ送受信の内容と処理の一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００２２】
図１は、本発明の実施の形態に係る画像処理システムの概略構成を示す図である。
【００２３】
図１において、画像処理システムは、情報処理装置１０１ａ，１０１ｂ、画像入力装置１０２ａ、１０２ｂ、ゲートウェイ装置１０５、及びサーバー装置１０３を含む。以下の説明において、情報処理装置１０１ａ，１０１ｂのいずれにも該当する内容を説明する場合には、情報処理装置１０１と記す。同様に、画像入力装置１０２ａ，１０２ｂのいずれにも該当する内容を説明する場合には、画像入力装置１０２と記す。また、図１では、情報処理装置１０１及び画像入力装置１０２がそれぞれ２台ずつ示されているが、これらは例示であり、２台に限定されない。
【００２４】
上記情報処理装置１０１及び画像入力装置１０２は、Ethernet（登録商標）で構成されるローカルネットワーク１０４を介して接続されているので互いに通信可能となっている。また、サーバー装置１０３は、情報処理装置１０１ａと、携帯網通信等やインターネット等のネットワーク１０６によって、又はゲートウェイ装置１０５を介して接続されている。従って、サーバー装置１０３、情報処理装置１０１、及び画像入力装置１０２は、互いに通信可能となっている。また、サーバー装置１０３は、情報処理装置１０１から画像データを受信する。
【００２５】
画像入力装置１０２は、情報処理装置１０１に画像データを送信するとともに、スキャンを行なう。
【００２６】
図２は、図１における情報処理装置１０１、及び画像入力装置１０２の構成を示すブロック図である。
【００２７】
図２において、情報処理装置１０１のＣＰＵ１１１は、ＲＡＭ１１２に記憶されているプログラムに従って、システムバス１２２に接続される各デバイスを総括的に制御している。ＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリア等としても機能している。
【００２８】
ＲＯＭ１１３は、各種プログラム及びデータを格納している。操作部Ｉ／Ｆ１１７は、操作部１２１や不図示のポインティングデバイス（タッチパネル等）からのキー入力を制御する。
【００２９】
表示部Ｉ／Ｆ１１６は、表示部１２０における表示内容を制御している。外部メモリＩ／Ｆ１１８は、例えばフラッシュメモリー、ＳＳＤ（Solid State Disk）等の外部メモリ１３０とのアクセスを制御する。
【００３０】
外部メモリ１３０は、情報処理装置が保存または、読み取り可能な記憶媒体として機能する。具体的に、外部メモリ１３０には、ＯＳ１３１をはじめ各種アプリケーション１３２、ドライバソフトウェア１３３（以下、「ドライバ」という）、ウェブブラウザー１３４が記憶されている。
【００３１】
第１の通信Ｉ／Ｆ１１４は、携帯網等の通信のための制御部であり、アンテナ１１５を通じて無線基地局とのネットワーク接続を行う。第２の通信Ｉ／Ｆ１１９は、Ｗｉ−Ｆｉのワイヤレスネットワークや優先ネットワークの制御部であり、不図示のＷｉ−Ｆｉ用のアンテナやネットワーク端子を通じてローカルネットワークへの接続を可能にする。
【００３２】
なお、ウェブブラウザー１３４上で動作するスクリプトファイルは、ユーザーが新たに使用する情報処理装置１０１上の外部メモリ１３０には初めから保存されていない。本実施の形態において、各スキャンシステム環境の構築手段を司るスクリプトが保存されていない場合は、サーバー装置１０３からの遠隔操作により、情報処理装置１０１内で、ＯＳ１３１上で実行されるウェブブラウザー１３４が、ＲＡＭ１１２を用いて起動する。
【００３３】
このウェブブラウザー１３４でのスクリプト実行処理については、図３で詳細な例を説明する。また、画像入力装置１０２等の周辺装置を制御するドライバ１３３は、制御する装置の情報とともにＯＳ１３１にドライバ１３３として登録されている。
【００３４】
次に画像入力装置１０２の構成について説明する。ＣＰＵ２０２は、画像入力装置１０２の全体の動作を制御する。ＲＡＭ２０３は、ＣＰＵ２０２の主メモリ、ワークエリア等として機能するとともに、入力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ２０３は、ＮＶＲＡＭ（Non-Volatile RAM：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３５】
ＲＯＭ２０４は、各種フォント、ＣＰＵ２０２により実行される制御プログラム等、及び各種データを記憶している。ネットワークＩ／Ｆ２０５は、情報処理装置１０１との間でデータの送受信を行なう。
【００３６】
プリンターＩ／Ｆ２０８は、プリンターエンジンである印刷部２０９とのインターフェースを制御している。スキャナーＩ／Ｆ２１０は、スキャナーエンジンであるスキャン部２１１とのインターフェースを制御している。
【００３７】
外部メモリ２２０は、ハードウェア情報２２１が記憶されている。この外部メモリ２２０は、外部メモリＩ／Ｆ２１２によりアクセスが制御されており、フラッシュメモリー、ＳＳＤ等を含んでいる。なお、外部メモリ２２０が接続されていない場合には、ＲＯＭ２０４に、情報処理装置１０１で利用される情報等を記憶することになる。
【００３８】
操作部Ｉ／Ｆ２０６は、画像入力装置１０２のスキャン処理を設定する操作部２０７とのインターフェースを制御している。操作部２０７には、ユーザーによる操作を受け付ける操作パネルが設けられている。その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている。また、不図示のＮＶＲＡＭを有し、操作パネルからのスキャン設定情報を記憶するようにしてもよい。上述した各部は、システムバス２０１により接続されている。
【００３９】
上述した構成において、ＣＰＵ２０２は、ＲＯＭ２０４に記憶された制御プログラム等に基づき、スキャン部Ｉ／Ｆ２１０を介してスキャン部２１１から画像データを取得する。また、ＣＰＵ２０２は、ネットワークＩ／Ｆ２０５を介して情報処理装置１０１との通信処理が可能となっている。そして、ＣＰＵ２０２は、情報処理装置１０１に画像データを送信するとともに、画像入力装置１０２内の情報等を情報処理装置１０１に通知可能に構成されている。本実施の形態において、ネットワークＩ／Ｆ２０５は対応するウェブサービスプロトコルを実装している。
【００４０】
図３は、図１におけるサーバー装置１０３の構成を示すブロック図である。
【００４１】
図３において、ＣＰＵ３０１は、ＲＡＭ３０２に記憶されているプログラムに従って、システムバス３００に接続される各デバイスを総括的に制御している。このＲＡＭ３０２は、ＣＰＵ３０１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３０３は、各種プログラム及びデータを格納している。キーボードＩ／Ｆ３０５は、キーボード３０９や不図示のポインティングデバイスマウスからのキー入力を制御する。
【００４２】
表示部Ｉ／Ｆ３０４は、表示部３０８における表示内容を制御している。外部メモリＩ／Ｆ３０６は、例えばハードディスクＨＤ、ＳＳＤ等の外部メモリ３２０とのアクセスを制御する。
【００４３】
外部メモリ３２０には、ＯＳ３２１、ウェブサービスライブラリ３２２、各種のスキャン処理関連プログラム３２３、更に、不図示のユーザーファイル、編集ファイル等が記憶されている。
【００４４】
このうち、スキャン処理関連プログラム３２３は、検索プログラム３２４、検索スクリプト３２５、画像入力装置管理プログラム３２６、スキャンジョブ生成プログラム３２７、スキャンスクリプト３２８を含んでいる。さらに、スキャン処理関連プログラム３２３は、画像受信プログラム３２９、ドライバ検索スクリプト３３０、ドライバ制御プラグイン３３１、ドライバ制御プログラム３３２を含んでいる。
【００４５】
ネットワークＩ／Ｆ３０７は、インターネット又は携帯通信網を介して情報処理装置１０１に接続され、その先に接続されている画像入力装置１０２との間で間接的に通信制御処理を行なう。
【００４６】
図４は、図１におけるサーバー装置１０３、情報処理装置１０１、及び画像入力装置１０２により実行されるスキャン処理の手順を示すシーケンス図である。
【００４７】
図４において、情報処理装置１０１のウェブブラウザー１３４はローカルネットワーク１０４を介して画像入力装置１０２及びサーバー装置１０３にアクセス可能となっている。
【００４８】
ユーザーは情報処理装置１０１の操作部１２１を使用し、ウェブブラウザー１３４を起動する（ステップＳ２００）。次にウェブブラウザー１３４は、サーバー装置１０３のＵＲＬにアクセスし（ステップＳ２０１）、スキャン処理のサービスを利用のためにログインする。
【００４９】
ログインに成功すると、サーバー装置１０３から、スキャンシステム用の検索スクリプトがウェブブラウザー１３４にダウンロードされる（ステップＳ２０２）。ダウンロードされた検索スクリプトは、ウェブブラウザー１３４上で実行され、検索中画面を表示する（ステップＳ２０３）。図５は、検索中画面の一例を示す図である。図５の詳細については後述する。
【００５０】
検索スクリプトを実行すると（ステップＳ２０４）、情報処理装置１０１は、サーバー装置１０３に検索要求を行う（ステップＳ２０５）。なお、図には示されていないが、情報処理装置１０１は、検索スクリプトが実行されている間は、定期的にサーバー装置１０３にＨＴＭＬファイルの更新メッセージを送信する。更新メッセージを送信することで、情報処理装置１０１は、サーバー装置１０３の状態が変化した場合に、ＨＴＭＬファイルファイル更新による対応が施される。
【００５１】
サーバー装置１０３で検索要求が受信されると、検索プロトコルが生成される（ステップＳ２０６）。検索メッセージがサーバー装置１０３の検索プログラム３２４から情報処理装置１０１に送信される（ステップＳ２０７）。これにより、検索スクリプトはパケットデータのＩＰヘッダー変換処理等を行ってブロードキャストで検索メッセージをローカルネットワーク１０４に送信する（ステップＳ２０８）。検索スクリプトが行うパケットデータの変換処理の例については後述する。
【００５２】
ブロードキャストの検索プロトコルを受信した画像入力装置１０２（図ではデバイス）は起動する（ステップＳ２０９）。画像入力装置１０２は、自らが検索プロトコルに対応する装置であるか判別する。肯定判別したとき、レスポンスをブロードキャスト送信元の情報処理装置１０１へ送信する（ステップＳ２１０）。こうしてローカルネットワーク１０４上で検索プロトコルに対応する画像入力装置１０２はレスポンスを情報処理装置１０１に送信することになる。
【００５３】
レスポンスを受信した情報処理装置１０１上のウェブブラウザー１３４で動作している検索スクリプトは、受信したレスポンスをレスポンスメッセージとして変換し、サーバー装置１０３に逐次転送する（ステップＳ２１１）。検索スクリプトが行うレスポンスをレスポンスメッセージとして変換する変換処理の例については後述する。
【００５４】
この検索処理では、さらに、ブロードキャスト送信で見つかった画像入力装置１０２に対し次のような画像入力装置の情報を取得する。例えば、画像入力装置１０２の名称、サポートする解像度や用紙サイズ等の入力能力情報等である。
【００５５】
この検索処理で述べているブロードキャスト送信は、特にこの方法に限定するわけではない。例えばＳＳＤＰ（Simple Service Discovery Protocol）やＷＳＤ（Web Services On Devices）Discoveryで使用されているようなマルチキャスト送信も含まれる。
【００５６】
次に、画像入力装置管理プログラム３２６は、情報処理装置１０１からサーバー装置１０３に送信されたレスポンスメッセージを解析し、検索結果から得られた検索済みの画像入力装置１０２のリストを作成する（ステップＳ２２０）。
【００５７】
画像入力装置管理プログラム３２６は、その結果をＨＴＭＬファイルに変換し、ＨＴＭＬ更新することにより（ステップＳ２２１）、ウェブブラウザー１３４で画像入力装置のリストを表示する（ステップＳ２２２）。図６は、検索済装置リスト画面の一例を示す図である。図６の詳細については後述する。
【００５８】
ユーザーは、使用する画像入力装置１０２をリストの中から選択し（ステップＳ２２３）、ウェブブラウザー１３４は、その結果を装置選択メッセージとしてサーバー装置（１０３）へ送信する（ステップＳ２２４）。
【００５９】
ドライバ制御プログラム３３２は、ドライバを使用するかどうかを確認する（ステップＳ２３０）。確認方法としては、例えば次のようなものがある。
【００６０】
ステップＳ２２３でユーザーが装置リストの中から使用する画像入力装置を選択する際に、その画像入力装置を制御可能なドライバがあればそれを使用するかをユーザーに選択させ、Ｓ２２４の選択結果メッセージに情報を乗せることで確認する。
【００６１】
あるいはCookieに情報として保持しておいてもよい。さらには次のような確認方法もある。サーバー装置１０３でユーザー情報を保持しておき、ステップＳ２０１でログインしたユーザーに紐付いた情報としてドライバを使用するかどうかを判断するための情報を持っておく。
【００６２】
いずれかの確認方法により、ステップＳ２３０でドライバを使用することが確認された場合は、ステップＳ２３１に進む。
【００６３】
一方、ドライバを使用しないことが確認された場合は、詳細は図示しないが、次のような処理を行う。サーバー装置１０３のスキャンジョブ生成プログラム３２７から送信されるスキャンスクリプト３２８・スキャンジョブにより情報処理装置１０１内のウェブブラウザー１３４が画像入力装置１０２を制御する。
【００６４】
そして、画像入力装置１０２から送信される画像データをサーバー装置１０３に転送する。画像データの転送は、ステップＳ２１１で検索スクリプトが行った動作と同様に、画像データ内容をそのままに、パケットデータのＩＰヘッダー変換処理等の転送手段を用いることで行う。
【００６５】
ウェブブラウザー１３４は、ドライバ検索スクリプト３３０をダウンロードし（ステップＳ２３１）、これによりドライバ検索スクリプト３３０が実行される（ステップＳ２３２）。
【００６６】
このドライバ検索スクリプト３３０は、例えば次のような処理を行うプログラムになっている。ドライバ制御用インターフェース、例えばWindows（登録商標）のＯＳ１３１で用意されているWindows(登録商標) Imaging Acquisition（以下、「ＷＩＡ」という）インターフェース等を用いる。これにより、ＯＳ１３１に登録されているドライバ１３３の情報を検索する。
【００６７】
検索でドライバ１３３が見つかると、そのドライバ１３３がステップＳ２２４で選択されている画像入力装置１０２で使用可能かどうかを画像入力装置１０２の名称や画像入力装置１０２の機種毎に一意に定義されたＩＤ等の装置情報を比較することにより判断する。
【００６８】
その結果、選択された画像入力装置１０２で使用可能なドライバ１３３が存在するか否かを、メッセージとして返信する（ステップＳ２３３）。ステップＳ２３３で使用可能なドライバ１３３が存在していた場合、ステップＳ２４０に進む。そして、ドライバ制御プラグイン３３１をウェブブラウザー１３４がダウンロードする（ステップＳ２４０）。
【００６９】
ステップＳ２３３でドライバ１３３が存在していなかった場合は、詳細は図示しないが次のような処理を行う。サーバー装置１０３から送信されるスキャンスクリプト・スキャンジョブにより情報処理装置１０１内のウェブブラウザー１３４が画像入力装置１０２を制御する。情報処理装置１０１は、画像入力装置１０２から送信される画像データをサーバー装置１０３に転送する。
【００７０】
ダウンロードされたドライバ制御プラグイン３３１が実行される（ステップＳ２４１）。このステップＳ２４０，２４１は、ActiveXコントロールやJava（登録商標）script、Java（登録商標）アプレットや各種プラグイン等、情報処理装置１０１で実行できる方法であれば何を用いて実行してもよい。
【００７１】
実行されたドライバ制御プラグイン３３１により、ドライバ１３３が起動される（ステップＳ２４２）。ドライバ１３３の起動や制御は、ステップＳ２３２と同じくＷＩＡインターフェースのようなドライバ制御用インターフェースを介して行う。
【００７２】
起動されたドライバ１３３は、スキャン用の設定画面を表示する（ステップＳ２４３）。図７は、スキャン設定画面の一例を示す図である。図７の詳細については後述する。
【００７３】
ユーザーは、スキャン設定画面で選択した画像入力装置１０２に原稿をセットし（ステップＳ２４４）、スキャン用の設定を入力する（ステップＳ２４５）。
【００７４】
スキャン実行が指示されたら、ドライバ１３３はステップＳ２４５の設定情報によりスキャンジョブを生成し（ステップＳ２４６）、画像入力装置１０２にスキャンジョブコマンドを送信する（ステップＳ２４７）。
【００７５】
画像入力装置１０２は、スキャンジョブコマンドに従いスキャン動作を実行して画像生成し（ステップＳ２４８）、生成した画像データをドライバ１３３に送信する（ステップＳ２４９）。スキャンしてから画像データが保存されるまで、スキャン中画面が表示される。図８は、スキャン中画面の一例を示す図である。図８の詳細については後述する。
【００７６】
ドライバ１３３は、受け取った画像データをステップＳ２４２と同じくドライバ制御用インターフェースを介してドライバ制御プラグイン３３１に転送する（ステップＳ２５０）。
【００７７】
ドライバ制御プラグイン３３１は、受け取った画像データをサーバー装置１０３に送信する（ステップＳ２５１）。そして、サーバー装置１０３は画像データを受信し、その画像データに適切な画像変換処理を行い、最終的な画像データを保存する（ステップＳ２５２）。
【００７８】
ドライバ制御プラグイン３３１からサーバー装置１０３に画像データを送信する手段は特に限定せず、ＳＭＢやＷｅｂＤＡＶ等の画像データを送受信可能なプロトコルを使用してもよい。また、検索スクリプト３２５が行った作業と同様の処理で、画像データ内容をそのままに、パケットデータのＩＰヘッダー変換処理等の転送手段を用いてもよい。
【００７９】
一方、ステップＳ２４２でドライバが起動されて以降、ドライバ制御プラグイン３３１はサーバー装置１０３がタイムアウト終了しないようにセッション維持の通知を行う。定期的にサーバー装置１０３にＨＴＭＬファイルの更新メッセージを送信することで、サーバー装置１０３でセッションの維持を行う。
【００８０】
サーバー装置１０３の状態が変化した場合は、ＨＴＭＬファイル更新により対応が施される。これにより、ステップＳ２５２で画像保存処理が終了すると、ドライバ１３３が送信したステータス確認（ステップＳ２５５）により、ＨＴＭＬファイルが更新されたことが、レスポンスとして送信される。
【００８１】
これにより、ウェブブラウザー１３４がスキャン終了通知の画面を表示する（ステップＳ２５７）。図９は、スキャン作業完了画面の一例を示す図である。図９の詳細については後述する。
【００８２】
ユーザーが作業終了した原稿を画像入力装置１０２に取りに行くことで（ステップＳ２５８）、本処理は終了する。
【００８３】
以上のスキャン処理シーケンスにより、原稿のスキャンを施した画像データがサーバー装置１０３に格納される。
【００８４】
上述した説明で用いられた図５〜図９の画面表示例について説明する。
【００８５】
図５に示される検索中画面例６００は、上記ステップＳ３０３にて検索スクリプトが実行されている状況で、サーバー装置１０３から更新を受けたＨＴＭＬファイルを表示した画面である。中止ボタン６０１がユーザーにより押下されると、検索スクリプトが中止メッセージをサーバー装置１０３に送信し、検索処理が中止される。
【００８６】
図６に示される検索済装置リスト表示画面例７００は、上記ステップＳ３０５にてサーバー装置１０３の画像入力装置管理プログラム３２６が画像入力装置選択画面ＨＴＭＬファイルを作成し、そのＨＴＭＬファイルをウェブブラウザー１３４が表示した画面である。
【００８７】
画像入力装置リスト表示部７０１において、ユーザーが選択ボタン７０２を押下すると検索スクリプトが選択結果メッセージをサーバー装置１０３に送信する。サーバー装置１０３は、ドライバ１３３を使用するか否か確認したり、選択された画像入力装置１０２に対応したスキャンスクリプト３２８を準備したりする。
【００８８】
ユーザーが再検索ボタン７０３を押下した場合は、検索要求がメッセージとして再度サーバー装置１０３に送信され、上記ステップＳ２０６からステップＳ２２２までが再実行される。これにより、画像入力装置リスト表示部７０１の内容が更新されることとなる。
【００８９】
図７に示されるスキャン設定画面表示例８００は、ユーザーが、スキャン処理の方法を選択することを可能とするための画面である。
【００９０】
スキャン設定画面表示例８００は、後述する図１０のステップＳ３０８でドライバ制御プラグイン３３１により表示されるか、図１２のステップＳ５１２でドライバにより表示される。
【００９１】
スキャン設定画面表示例８００には、スキャンに関する設定を行うための画像タイプドロップダウンコンボボックス８０２、解像度ドロップダウンコンボボックス８０３、及び画像サイズドロップダウンコンボボックス８０４が表示される。また、スキャン設定画面表示例８００には、詳細ボタン８０５及びスキャンボタン８０６も表示される。
【００９２】
画像タイプドロップダウンコンボボックス８０２は、スキャン時のカラーモードを指定するものであり、白黒やカラー、グレースケール等の指定を行うためのものである。解像度ドロップダウンコンボボックス８０３は、スキャン時の解像度を指定するためのものである。指定方法としては、リストで表示されるものから所望の解像度を選択する方法や、ユーザーが値を直接入力する方法がある。
【００９３】
画像サイズドロップダウンコンボボックス８０４は、スキャン時の画像サイズを指定する。ここにはＡ４、Ｌｅｇａｌ等の定型サイズや、サイズを検知センサーで自動判別する自動指定等が可能である。スキャンボタン８０６は、ユーザーがスキャン実行を指示するためのボタンである。そして、後述する図１０のステップＳ３０８でドライバ制御プラグイン３３１により本画面が表示されている場合は、スキャンボタン８０６押下によりドライバ１３３が起動される。
【００９４】
ユーザーがスキャンボタン８０６を押下すると、スキャンスクリプト３２８はその時に設定された各ボタン８０１〜８０４の設定を設定メッセージとしてサーバー装置１０３に送信する。
【００９５】
詳細ボタン８０５は、さらに詳細な設定をする際にユーザーが押下するボタンである。これにより、例えば高度な画像処理等の設定を行える。これ以外にも、図示しないが、スキャンした画像データの保存先を指定するためのウェブサービス選択ドロップダウンコンボボックスがあってもよい。この場合の指定方法は、保存先を識別できるＵＲＬを直接入力する方法や、Ｗｅｂから画像データ保存機能を持つサービスを検索する方法、または履歴から所望の保存先を選択する方法等がある。
【００９６】
図８に示されるスキャン中画面表示例９００について説明する。図４のステップＳ２４８で画像入力装置１０２がスキャン動作を開始した時から、スキャンされた画像データがサーバー装置１０３に保存されるまで、ドライバ１３３が表示する。
【００９７】
中止ボタン９０１は、実行されているスキャン処理を中止するためのボタンである。これが押下されると、ドライバ１３３が中止メッセージをステップＳ２４７と同様に画像入力装置１０２に送信する。
【００９８】
スキャン処理進行インジケーター９０２は、ステップＳ２４８でスキャン処理、ステップＳ２４９で画像データ送信処理を行う際の処理の進捗を示し、ユーザーにスキャン処理と画像データ送信処理の状況をユーザーに通知する。
【００９９】
図９に示されるスキャン作業完了画面表示例１０００について説明する。ステップＳ２５２の画像保存処理で画像データの受信が終了した時に、画像受信プログラム３２９が、画像データから、情報処理装置１０１で表示できる縮小画像を含んだＨＴＭＬファイルを作成する。そして、情報処理装置１０１内のウェブブラウザー１３４へ送信することで、スキャン作業完了画面表示例１０００が表示され、ユーザーに作業完了を伝える。
【０１００】
スキャン作業完了画面表示例１０００には、最終スキャン画像の内容をユーザーに伝えるために縮小画像表示領域１００３が表示される。ユーザーが閉じるボタン１００１を押下すると、スキャン作業完了画面表示例１０００は閉じられ、ウェブブラウザー１３４上にダウンロードされ実行されているスキャンスクリプト３２８等のプログラムが終了する。また、ユーザーが続けて、続けてスキャンボタン１００２を押下すると、ステップＳ２４２に戻り、図で示したスキャン設定画面表示例８００が表示される。
【０１０１】
図１０は、図１における情報処理装置１０１により実行されるスキャン処理の手順を示すフローチャートである。
【０１０２】
図１０において、ＯＳ１３１でウェブブラウザー１３４を起動し、サーバー装置１０３のＵＲＬにアクセスする（ステップＳ３００）。サーバー装置１０３のウェブサービスライブラリ３２２によりホストされているウェブページにログインを行い、ログインが成功したか否か判別する（ステップＳ３０１）。
【０１０３】
ログインが成功しなかったとき（ステップＳ３０１でＮＯ）、「画像入力装置の用意が出来ません。」とエラー表示をウェブブラウザー１３４で表示を行い（ステップＳ３２０）、本処理を終了する。
【０１０４】
ログインが成功したとき（ステップＳ３０１でＹＥＳ）、ウェブブラウザー１３４はサーバー装置１０３から検索スクリプト３２５をインターネット経由でダウンロードし、実行する（ステップＳ３０２）。
【０１０５】
検索スクリプト３２５が実行されると、サーバー装置１０３に検索要求のメッセージを送信し、そのレスポンスとして検索ネットワークメッセージを検索スクリプトは受信する。そして、検索スクリプト３２５はネットワークパケットのＩＰヘッダーを変換し、ローカルネットワークへブロードキャストで送信する。検索スクリプト３２５は、ブロードキャストによって画像入力装置１０２ａ、１０２ｂ等がレスポンスとして返してくるレスポンスを、そのネットワークパケットのＩＰヘッダーを変換し、レスポンスメッセージとしてサーバー装置１０３へ転送する。
【０１０６】
このような検索スクリプト処理が実行している間に、ウェブブラウザー１３４は、図５に示した検索中画面を表示する（ステップＳ３０３）。このステップＳ３０３は、サーバー装置１０３により検索された画像入力装置１０２のリストを表示して動作させる画像入力装置１０２をユーザーに選択させるための選択画面を表示する選択画面表示手段に対応する。
【０１０７】
次いで、タイムアウトして終了条件が成就したか否かを判別する（ステップＳ３０４）。ここでのタイムアウトとは、一定期間行うポーリング処理のタイムアウトと示している。また、ここでの終了条件とは、サーバー装置１０３によりＨＴＭＬファイルが更新されることを示している。
【０１０８】
タイムアウトして終了条件が成就していないとき（ステップＳ３０４でＮＯ）、ステップＳ３０２に戻る。このとき、ユーザーによりキャンセルされたときは、上記ステップＳ３２０に進む。
【０１０９】
タイムアウトして終了条件が成就したとき（ステップＳ３０４でＹＥＳ）、サーバー装置１０３からＨＴＭＬファイルの更新が行われ、図６に示した検索済装置リスト表示画面を画像入力装置の選択画面として表示する（ステップＳ３０５）。
【０１１０】
ユーザーにより、使用する画像入力装置を、検索済装置リストから選択されると（ステップＳ３０６）、選択結果メッセージがサーバー装置１０３に通知される。このステップＳ３０６は、ユーザーによって選択された画像入力装置１０２を示す選択結果を送信する選択結果送信手段に対応する。
【０１１１】
この検索処理では、さらに、ブロードキャスト送信で見つかった画像入力装置１０２に対し次のような画像入力装置の情報を取得する。例えば、画像入力装置１０２の名称、サポートする解像度や用紙サイズ等の入力能力情報等である。
【０１１２】
次いで、サーバー装置１０３からドライバ検索スクリプトがダウンロードされ、情報処理装置１０１内のウェブブラウザー１３４で実行される（ステップＳ３０７）。なお、ここでダウンロードされるスクリプトの中身は図４のステップＳ２３０の結果により異なる。ステップＳ２３０でドライバを使用することが確認された場合は、ステップＳ３０７でドライバ検索スクリプト３３０がサーバー装置１０３からダウンロードされる。このステップＳ３０７は、選択結果が示す画像入力装置１０２を使用するためのドライバが情報処理装置１０１に存在するか否かを検索するための検索スクリプトをサーバー装置１０３から取得する第１取得手段に対応する。
【０１１３】
ドライバ１３３を使用しないことが確認された場合は、詳細は図示しないが、情報処理装置１０１内のウェブブラウザー１３４が画像入力装置１０２を制御する。それにより、画像入力装置１０２から送信される画像データをサーバー装置１０３に転送するためのスキャンスクリプト３２８がダウンロードされる。本実施の形態では前者の場合について述べる。
【０１１４】
上記ステップＳ３０７では、ダウンロードされたドライバ検索スクリプトが実行される。このドライバ検索スクリプト３３０は、例えば次のような処理を行うプログラムになっている。ＯＳ１３１がWindows（登録商標）であった場合は、用意されているドライバ制御用インターフェースがＷＩＡインターフェース等を介し、ＯＳ１３１に登録されているドライバ１３３の情報を検索する。
【０１１５】
そして検索で見つかったドライバ１３３の情報をそのままサーバー装置１０３に転送する。次いで、ステップＳ３０７の結果からサーバー装置１０３がダウンロードするプログラムを判断し、情報処理装置１０１内のウェブブラウザー１３４に送信される。サーバー装置１０３の判断処理については、図１３で詳しく説明する。
【０１１６】
ここでは、選択されている画像入力装置１０２でドライバが使用可能であると判断され、ドライバ制御プラグイン３３１がサーバー装置からダウンロードされ、実行される（ステップＳ３０８）。実行方法は、ActiveXコントロールやJava（登録商標）script、Java（登録商標）アプレットや各種プラグイン等、情報処理装置１０１で実行できる方法であれば何でもよい。このステップＳ３０８は、検索スクリプトによって情報処理装置１０１にドライバが存在すると判別された場合に、ドライバを制御するためのドライバ制御プログラムをサーバー装置１０３から取得する第２取得手段に対応する。
【０１１７】
ドライバ制御プラグイン３３１が実行されると、ステップＳ３０７と同じくＷＩＡインターフェースのようなドライバ制御用インターフェースを介して、ドライバ１３３が起動される（ステップＳ３０９）。あるいは、ドライバ１３３を起動する前に、図７に示したスキャン設定用画面を表示し、その画面でユーザーからスキャン実行が指示されたらドライバ１３３を起動する方法でもよい。従って、ステップＳ３０９は、ドライバ制御プログラムにより起動されたドライバにより、画像入力装置１０２の動作内容を設定するための設定画面を表示する表示手段に対応する。また、ドライバが起動により画像入力装置１０２を制御するので、ステップＳ３０９は、ユーザーによって設定された動作内容を示すジョブコマンドを画像入力装置１０２に送信することによって、画像入力装置１０２を制御する制御手段に対応する。
【０１１８】
ドライバが起動されると、サーバー装置１０３がタイムアウト終了しないようにセッション維持の通知を行う（ステップＳ３１０）。定期的にサーバー装置１０３にＨＴＭＬファイルの更新メッセージを送信することで、サーバー装置１０３でセッションの維持を行う。
【０１１９】
次いで、ドライバ１３３から画像受信要求が来たか否かを判別する（ステップＳ３１１）。ステップＳ３１１の判別の結果、画像受信要求が来ていないとき（ステップＳ３１１でＮＯ）、Ｓ３１０に戻る。一方、キャンセルやエラー等の通知が来た場合は、ドライバ制御プラグイン３３１でウェブブラウザー１３４に「スキャン処理に失敗しました。」とエラーを示す画面を表示し（ステップＳ３２１）、本処理を終了する。
【０１２０】
ドライバ１３３から画像受信要求が来たとき（ステップＳ３１１でＹＥＳ）、ステップＳ３０９と同様にＷＩＡインターフェース等のドライバ制御用インターフェースを介して画像データを受信し、サーバー装置１０３に送信する（ステップＳ３１２）。送信手段は特に限定しない。例えば、ＳＭＢやＷｅｂＤＡＶ等の画像データを送受信可能なプロトコルや、検索スクリプト３２５が行った作業と同様の処理で、画像データ内容をそのままに、パケットデータのＩＰヘッダー変換処理等の転送手段を用いてもよい。
【０１２１】
次いで、サーバー装置１０３にＨＴＭＬファイルの更新メッセージを送信する。そして、サーバー装置１０３の画像保存処理（ステップＳ２５２）が終了、または、一定期間に対する画像データ受信がタイムアウトしたかどうかをサーバー装置１０３が判断し結果をＨＴＭＬファイル更新が更新される（ステップＳ３１３）。これをウェブブラウザー１３４が受信する。こうしてＨＴＭＬ更新という終了条件が成就したか否かを判別する（ステップＳ３１４）。終了条件が成就しないとき（ステップＳ３１４でＮＯ）、ステップＳ３１３に戻り、その他キャンセル等の条件が発生したときは、上記ステップＳ３２１に進む。
【０１２２】
ステップＳ３１４の判別の結果、終了条件が成就したとき（ステップＳ３１４でＹＥＳ）、最終画像のウェブページである図９に示したスキャン作業完了画面をウェブブラウザー１３４に表示する。これにより、ユーザーにスキャンされた画像データがサーバー装置１０３に保存されたことを示し、本実施の形態での情報処理装置１０１内のウェブブラウザー１３４のスキャン・送信処理は終了する。
【０１２３】
図１１は、図１における情報処理装置１０１により実行されるインストール処理の手順を示すフローチャートである。
【０１２４】
図１１において、ユーザーによりドライバ１３３がインストールされると（ステップＳ５００）、ドライバ１３３に必要なファイルがＯＳ１３１に配置され、ＯＳ１３１にドライバプログラムとしてドライバ情報が登録され（ステップＳ５０１）、本処理を終了する。
【０１２５】
図１２は、図１における情報処理装置１０１により実行されるドライバスキャン処理の手順を示すフローチャートである。
【０１２６】
図１２において、インストール処理によりインストールされたドライバ１３３は、制御元となるプログラムから起動されたか否かを判別する（ステップＳ５１０）。ドライバ１３３の起動等、制御元となるプログラムとドライバ１３３の通信は、ドライバ制御用インターフェース、例えばＷＩＡインターフェース等を介して行われる。
【０１２７】
また、制御元プログラムは、ドライバ制御用インターフェースを使用するプログラムであれば何でも可能である。例えば各種画像入力アプリケーションや、Java（登録商標）script、Java（登録商標）アプレット、各種プラグイン等でも、ドライバ制御用インターフェースを使用するプログラムであれば可能である。本実施の形態ではドライバ制御プラグイン３３１としている。
【０１２８】
ドライバ１３３がプログラムから起動されたとき（ステップＳ５１０でＹＥＳ）、ドライバ制御プラグイン３３１からスキャンジョブ作成のためのスキャンパラメータを取得し（ステップＳ５１１）し、図７に示したスキャン設定用画面を表示する。
【０１２９】
このスキャン設定用画面は、ドライバ１３３が表示せずにドライバ制御プラグイン３３１が表示する方法でもよい。次に、ユーザーによりスキャン設定が行われ、スキャンボタン８０６が押下される（ステップＳ５１３）。これにより、スキャンジョブが生成され、これが画像入力装置１０２に送信される（ステップＳ５１４）。
【０１３０】
次いで、画像入力装置１０２から画像データを受信すると（ステップＳ５１５）、プログラムへパラメータ通知され、さらに画像データが送信され（ステップＳ５１６）、本処理を終了する。
【０１３１】
図１３は、図１におけるサーバー装置１０３により実行されるスキャン処理の手順を示すフローチャートである。
【０１３２】
図１３において、情報処理装置１０１からリクエストメッセージを受信し、ユーザーがログインすると（ステップＳ４００でＹＥＳ）、検索スクリプト３２５を送信する（ステップＳ４０１）。
【０１３３】
次いで、情報処理装置１０１から検索要求メッセージによる検索要求が一定期間内にあったか否か判別する（ステップＳ４０２）。検索要求が一定期間内になかったとき（ステップＳ４０２でＮＯ）、検索プログラム３２４は、「画像入力装置の用意が出来ません。」とスキャン処理環境が作成できないという内容のメッセージ含んだＨＴＭＬファイルを更新し（ステップＳ４２０）、ウェブブラウザー１３４に表示させ、本処理を終了する。これは、検索スクリプトが定期的にサーバー装置１０３にＨＴＭＬファイルの更新メッセージを送信することを利用し、検索プログラム３２４がＨＴＭＬファイル更新メッセージのレスポンスとして検索プログラム３２４により行われる。
【０１３４】
一方、検索要求が一定期間内にあったとき（ステップＳ４０２でＹＥＳ）、検索プログラム３２４が検索メッセージを情報処理装置１０１に送信し、一定期間レスポンスを受信して解析する（ステップＳ４０３）。
【０１３５】
次いで、一定期間内に検索結果を受信したか否か判別する（ステップＳ４０４）。ステップＳ４０４の判別の結果、検索結果を受信しなかったとき（ステップＳ４０４でＮＯ）、上記ステップＳ４２０に進む。
【０１３６】
一方、ステップＳ４０４の判別の結果、検索結果を受信したとき（ステップＳ４０４でＹＥＳ）、画像入力装置管理プログラム３２６が、検索済装置リスト表示画面を示すＨＴＭＬファイルを作成する。そしてウェブブラウザー１３４に表示させ、一定期間ユーザーからのレスポンスを受信する（ステップＳ４０５）。このステップＳ４０５は、検索された画像入力装置１０２のリストを情報処理装置１０１に提供するリスト提供手段に対応する。
【０１３７】
次いで、一定期間内に装置選択結果メッセージを受信したか否か判別する（ステップＳ４０６）。ステップＳ４０６の判別の結果、装置選択結果メッセージを受信しなかったとき（ステップＳ４０６でＮＯ）、上記ステップＳ４２０に進む。
【０１３８】
一方、装置選択結果メッセージを受信したとき（ステップＳ４０６でＹＥＳ）、ドライバを使用するか否かを判別する（ステップＳ４０７）。判断手段としては、例えば次のようなものがある。ステップＳ２２３で画像入力装置のリストの中から使用する画像入力装置を選択する際に、その画像入力装置を制御可能なドライバがあればそれを使用するかをユーザーに選択させ、ステップＳ４０６の選択結果メッセージに情報を乗せることで判断する。あるいはCookieに情報として保持しておいてもよい。さらには次のような手段もある。サーバー装置１０３でユーザー情報を保持しておき、ステップＳ４００でログインしたユーザーに紐付いた情報としてドライバを使用するかどうかを判断するための情報を持っておくという手段である。
【０１３９】
ステップＳ４０７の判別の結果、ドライバを使用しないとき（ステップＳ４０７でＮＯ）、情報処理装置１０１へスキャンスクリプト３２８・スキャンジョブ送信、画像受信・保存を行い（ステップＳ４２１）、本処理を終了する。このステップＳ４２１では、詳細は図示しないが、次のような処理を行う。サーバー装置１０３のスキャンジョブ生成プログラム３２７から送信されるスキャンスクリプト３２８・スキャンジョブにより情報処理装置１０１内のウェブブラウザー１３４が画像入力装置１０２を制御する。そして、画像入力装置１０２から送信される画像データをサーバー装置１０３に転送する。画像データの転送は、ステップＳ４０１で検索スクリプトが行った動作と同様に、画像データ内容をそのままに、パケットデータのＩＰヘッダー変換処理等の転送手段を用いることで行う。このように、検索スクリプトによりドライバが存在しないか、ドライバを使用しないと判別されたとき、情報処理装置１０１により選択された画像入力装置１０２を制御するための制御スクリプト情報が情報処理装置１０１に提供される。
【０１４０】
ステップＳ４０７の判別の結果、ドライバを使用するとき（ステップＳ４０７でＹＥＳ）、ドライバ制御プログラム３３２が、ドライバ検索スクリプト３３０を情報処理装置１０１内のウェブブラウザー１３４へ送信する（ステップＳ４０８）。このステップＳ４０８は、画像入力装置を使用するためのドライバが情報処理装置１０１に存在するか否かを検索するための検索スクリプトを情報処理装置１０１に提供する検索スクリプト提供手段に対応する。
【０１４１】
そしてドライバ検索スクリプト３３０の実行結果を情報処理装置から受信する（ステップＳ４０９）。
【０１４２】
次いで、ステップＳ４０６で受信している選択された画像入力装置１０２で使用可能な該当ドライバがあるか否かを判別する（ステップＳ４１０）。判断方法は例えば次のようになる。ステップＳ４０９で受信したドライバ１３３の情報と、ステップＳ４０６で受信している画像入力装置１０２の名称や、画像入力装置１０２の機種毎に一意に定義されたＩＤ情報等を比較することにより、使用可能なドライバ１３３があるか否か判断する。なお、上記ドライバ１３３の情報とは、そのドライバの制御対象の画像入力装置の名称や、制御対象の画像入力装置の機種毎に一意に定義されたＩＤ情報等である。
【０１４３】
ステップＳ４１０の判別の結果、該当ドライバがなかったとき（ステップＳ４１０でＮＯ）、上記ステップＳ４２１へ進む。一方、該当ドライバがあったとき（ステップＳ４１０でＹＥＳ）、ドライバ制御プラグイン３３１を情報処理装置１０１内のウェブブラウザー１３４に送信する（ステップＳ４１１）。これは、ActiveXコントロールやJava（登録商標）script、Java（登録商標）アプレットや各種プラグイン等、情報処理装置１０１で実行できる方法であれば何でもよい。このステップＳ４１１は、検索スクリプトにより、情報処理装置１０１にドライバが存在すると判別された場合に、ドライバを制御するためのドライバ制御プログラムを情報処理装置１０１に提供するプログラム提供手段に対応する。
【０１４４】
次いで、情報処理装置１０１からのＨＴＭＬファイルの更新メッセージによりセッション維持要求があったか否かを判別する（ステップＳ４１２）。ステップＳ４１２の判別の結果、タイムアウトによりセッション維持要求がなかったとき（ステップＳ４１２でＮＯ）、ドライバ制御プログラム３３２が「スキャン実行エラー」とＨＴＭＬファイルを作成することで更新する。そして、ウェブブラウザー１３４に表示させ（ステップＳ４２２）、本処理を終了する。このスキャン実行エラーは、スキャン実行処理環境が作成できないという内容である。
【０１４５】
セッション維持要求があったとき（ステップＳ４１２でＹＥＳ）、情報処理装置１０１からスキャン画像の受信要求を受けたか否か判別する（ステップＳ４１３）。ステップＳ４１３の判別の結果、受信要求を受けなかったとき（ステップＳ４１３でＮＯ）、上記ステップＳ４１２に戻る。受信要求を受けたとき（ステップＳ４１３でＹＥＳ）、情報処理装置１０１から画像データを受信し、保存する（ステップＳ４１４）。受信手段は特に限定せず、ＳＭＢやＷｅｂＤＡＶ等の画像データを送受信可能なプロトコルや、検索スクリプト３２５が行った作業と同様の処理で、画像データ内容をそのままに、パケットデータのＩＰヘッダー変換処理等の転送手段を用いて受信してもよい。このステップＳ４１４は、ドライバ制御プログラムにより制御されたドライバによって画像入力装置１０２により入力された画像データを、情報処理装置１０１を経由して取得し、取得した画像データを保存する保存手段に対応する。
【０１４６】
次いで、情報処理装置１０１で表示できる縮小画像を含んだＨＴＭＬファイルを作成し、図９で示したスキャン作業完了画面を情報処理装置１０１に表示させ（ステップＳ４１５）、本処理を終了する。
【０１４７】
図１３の処理によれば、情報処理装置１０１にドライバが存在すると判別された場合に、ドライバを制御するためのドライバ制御プログラムを情報処理装置１０１に提供する。その結果、ネットワーク上のサーバー装置が提供する画像入力サービスを利用する際、情報処理装置に存在するドライバ機能を有効活用することが可能となる。
【０１４８】
図１４は、図１における画像入力装置１０２により実行されるスキャン処理の手順を示すフローチャートである。
【０１４９】
図１４において、画像入力装置１０２は、ネットワークＩ／Ｆ２０５に外部からローカルネットワーク１０４を介してアクセスが到着するかについて待機している。この状態でネットワークアクセスが到着すると（ステップＳ６００でＹＥＳ）、検索コマンドによる検索の問い合わせが来たか否かを判別する（ステップＳ６０１）。
【０１５０】
ステップＳ６０１の判別の結果、検索の問い合わせが来たと判別されたとき（ステップＳ６０１でＹＥＳ）、外部メモリ２２０に保存してあるハードウェア情報２２１を参照する。そして情報処理装置１０１にレスポンスを送信し（ステップＳ６０２）、ステップＳ６００に戻る。このハードウェア情報には、例えば画像入力装置１０２の名称や、サポートしている解像度や用紙サイズ等の入力能力情報等が含まれる。
【０１５１】
一方、ステップＳ６０１の判別の結果、検索の問い合わせが来たと判別されなかったとき（ステップＳ６０１でＮＯ）、情報処理装置１０１からスキャンジョブが来たか否かを判別する（ステップＳ６０３）。ステップＳ６０３の判別の結果、スキャンジョブが来ていないと判別したとき（ステップＳ６０３でＮＯ）、ステップＳ６００に戻る。
【０１５２】
一方、ステップＳ６０３の判別の結果、スキャンジョブが来たと判別したとき（ステップＳ６０３でＹＥＳ）、アクセス元から送信されたスキャンジョブに従い、ステップＳ２４８のスキャン動作を行う（ステップＳ６０４）。
【０１５３】
次いで、スキャン動作により生成された画像データをアクセス元へ送信する（ステップＳ６０５）。
【０１５４】
アクセス元からの終了コマンドにより、画像データのデータ転送が終了したか否かを判別する（ステップＳ６０６）。ステップＳ６０６の判別の結果、データ転送が終了しなかったとき（ステップＳ６０６でＮＯ）、エラー処理を行い（ステップＳ６０７）、本処理を終了する。ステップＳ６０６では、データ転送が終了したことを示す終了コマンドを一定期間受信しなかった場合はタイムアウトとして、データ転送が終了しなかったと判別される。ステップＳ６０６の判別の結果、データ転送が終了したとき、本処理を終了する。
【０１５５】
図１５は、サーバー装置１０３の検索スクリプト３２５及びスキャンスクリプト３２８が情報処理装置１０１上のウェブブラウザー１３４で動作したときのスクリプトによる、データ送受信の内容と処理の一例を示す図である。
【０１５６】
図１５において、まずネットワークのアドレスについて説明する。サーバー装置１０３のネットワークＩ／Ｆ３０７でインターネットに接続しているアドレスをＳとしている。情報処理装置１０１の第１の通信Ｉ／Ｆ１１４で接続されているインターネット経由でサーバー装置に接続するネットワーク１０６のネットワークアドレスをＴＩとしている。第２の通信Ｉ／Ｆ１１９がローカルネットワーク１０４に接続する場合のネットワークアドレスをＴＬとしている。画像入力装置１０２が、ネットワークＩ／Ｆ２０５でローカルネットワーク１０４に接続する場合のネットワークアドレスをＤとしている。
【０１５７】
次に、スキャン処理において、各スクリプトが送受信するデータの代表例を説明する。データ１１０１は、図４のＳ２０７において、サーバー装置１０３から検索メッセージとして、情報処理装置１０１のウェブブラウザー１３４上で動作している検索スクリプトに送信されるデータの一例である。
【０１５８】
サーバー装置１０３は、データ１１０１のデータ構造を、検索コマンド等をペイロードとして含んだパケットデータのヘッダーにローカルネットワーク１０４で送信するための情報を含む構造となるように作成する。このデータ全体をサーバー装置１０３から情報処理装置１０１に送信するために、ヘッダーをネットワークアドレスＳからネットワークアドレスＴＩに送信するようにしたデータが作成される。
【０１５９】
データ１１０１を含むパケットデータを受信した検索スクリプトは、内包されているパケットデータだけを取り出し、そのデータをデータ１１０２として、ローカルネットワーク１０４に転送する。同図に示されるように、この場合のパケットデータの宛先はＢＣとなっている。このＢＣは、ブロードキャスト送信を示すものする。以上の検索スクリプトのパケットデータの取り出し処理により、図４のステップＳ２０６の検索プロトコルブロードキャストが実現される。
【０１６０】
データ１１０３は画像入力装置１０２が検索コマンドに対するレスポンスを返す場合のパケットデータの一例である。データ１１０３は、画像入力装置１０２のネットワークアドレスＤから情報処理装置１０１のローカルネットワーク１０４上のネットワークアドレスＴＬへ送信するためのヘッダーを持つ。そして、ペイロードにはハードウェア情報２２１を含んだレスポンス情報等を含んでいる。
【０１６１】
データ１１０３のパケットデータを受信した検索スクリプトは、そのデータ１１０３を内包したパケットデータを生成する。そのデータをデータ１１０４として、ネットワークアドレスＴＩからサーバー装置１０３のネットワークアドレスＳに転送する。ネットワークアドレスＴＩは、サーバー装置１０３に接続するインターネット経由のネットワーク１０６でのアドレスである。
【０１６２】
このパケットデータ構造で、サーバー装置１０３に送信することにより、サーバー装置１０３は、情報処理装置１０１のローカルネットワーク１０４上でのネットワークアドレスＴＬを取得することができる。同様に、サーバー装置１０３は、検索コマンドにレスポンスを返した画像入力装置１０２のネットワークアドレスＤを取得することができる。
【０１６３】
データ１１０５は、図４のステップＳ２３０においてドライバ１３３を使用しないと判断された場合に処理されるスキャンスクリプトとスキャンジョブメッセージの一例である。データ１１０５は、データ１１０１と同様のパケットデータ構造を持つ。具体的には、スキャンコマンド等をペイロードとして含んだパケットデータのヘッダーにローカルネットワーク１０４で送信するための情報を含む構造となるように作成する。このデータ全体をサーバー装置１０３から情報処理装置１０１に送信するために、ヘッダーをネットワークアドレスＳからネットワークアドレスＴＩに送信するようにしたデータが作成される。
【０１６４】
データ１１０５のパケットデータを受信したスキャンスクリプトは、内包されているパケットデータだけを取り出し、そのデータをデータ１１０６として、ローカルネットワーク１０４に転送する。
【０１６５】
サーバー装置１０３は、データ１１０４によって、ローカルネットワーク１０４上でのネットワークアドレスＴＬと検索コマンドにレスポンスを返した画像入力装置１０２のネットワークアドレスＤを取得している。これによってデータ１１０５を生成するため、スキャンスクリプトは機械的に内包されているパケットデータ部を取り出すだけで、容易にローカルネットワーク１０４に送信可能なデータを生成できる。
【０１６６】
データ１１０７は画像入力装置１０２がスキャン動作を行い、画像データを生成して送信する場合のパケットデータの一例である。データ１１０７は、画像入力装置１０２の根とワークアドレスＤから情報処理装置１０１のローカルネットワーク１０４上のネットワークアドレスＴＬへ送信するヘッダーを持つ。そして、ペイロードには画像データ情報等を含んでいる。
【０１６７】
データ１１０７のパケットデータを受信したスキャンスクリプトは、そのデータ１１０７を内包したパケットデータを生成する。そのデータをデータ１１０８として、ネットワークアドレスＴＩからサーバー装置１０３に転送する。
【０１６８】
なお、画像データは、スキャンコマンドの指定により、全体を分割した形でデータ１１０７として生成される。また、スキャンスクリプトは複数回送られてくるデータ１１０７と同等のパケットを順次処理する。データ１１０８に示されるデータ構造としてサーバー装置１０３に送信することで、スキャンスクリプトが使用するＲＡＭ１１２が少ない場合でも対応することが可能となる。
【０１６９】
ここでは詳細を説明しないが、ネットワークポートの制御が必要である場合は、パケットデータの宛先部にネットワークアドレスとともにネットワークポートの切り替えを併記する。そして、各スクリプトがその変換も含めたパケットデータ生成を行う事で対応することが可能となる。
【０１７０】
また、本実施の形態における検索スクリプト及びスキャンスクリプトはその他の機能を実行することができる。スキャンスクリプトは、図７に示したスキャン設定画面表示例８００を表示し、ユーザーが設定した情報をメッセージとしてサーバー装置１０３へ送信する。
【０１７１】
検索スクリプト、及びスキャンスクリプトは、定期的にサーバー装置１０３の状況を確認するため、表示内容の更新が必要か否かを定期的にサーバー装置１０３に対して確認する。サーバー装置１０３は、サーバー装置１０３でのエラー処理等の通知をメッセージとして情報処理装置１０１に送信し、検索スクリプト、スキャンスクリプトはそのメッセージに対応することが可能となっている。
【０１７２】
＜その他の実施形態＞
上述した実施の形態においては、情報処理装置を介したサーバー装置と画像入力装置の間の通信は、情報処理装置により実行できる方法であれば何でもよい。具体的には、ActiveXコントロールやjava（登録商標） script、java（登録商標）アプレットや各種プラグイン等がその方法として挙げられる。しかしながら、サーバー装置が複数の実行手段の選択肢を持ち、最も利用する装置の機能を必要としないというという点において、情報処理装置で実行する準備を優先順位に従って行うことができると効率的である。
【０１７３】
更に、双方向通信を簡易にかつ効率良く行うために、Websocketshttp://dev．W３．Org/html５/WebSockets等の双方向通信技術を用いることも有効である。WebSockets等の技術を導入した場合、上述したスクリプトが定期的にＨＴＭＬファイルの更新メッセージをサーバー装置１０３に送付するような対応は必要ない。またサーバー装置１０３からのメッセージを情報処理装置１０１の要求無しに更新することが可能となる。
【０１７４】
また、通知を送信するためのプロトコルとしてWS-Eventingや、ＧＥＮＡ（GENAGeneral Event Notification Architecture）等を利用することでも実現可能である。
【０１７５】
また、情報処理装置１０１で動作する検索スクリプトが、その検索スクリプトに適切にハードウェア情報を伝える手段が別にあり、同様の結果が得られるプロトコルであればいずれのプロトコルでも運用可能である。従って、本発明は上記実施の形態によって限定されるものではない。
【０１７６】
また、上述した実施の形態にはおいては、画像入力装置でスキャンする手段として、スキャンジョブを生成して、画像入力装置に送信する方式を採用している。しかし、スキャンジョブチケット等の汎用情報を画像入力装置に送信することが可能であれば、その方法を採用しても運用可能である。
【０１７７】
また、上述した実施の形態にはおいては、画像入力装置でスキャンする方式として、スキャンジョブを生成して、画像入力装置に送信する方式を採用している。しかし、受け付けることが可能な画像入力装置の場合、スキャンジョブチケット等の汎用情報を画像入力装置に送信する方法を採用しても運用可能である。
【０１７８】
また、上述した実施の形態のステップＳ２３１〜Ｓ２３３において、選択された画像入力装置で使用可能なドライバが見つからなかった場合は、以下のようにする。それは、使用可能なドライバのインストール（ステップＳ５００〜Ｓ５０１）を行い、ドライバを使用可能な環境を構築する実施の形態である。
【０１７９】
この場合、情報処理装置１０１、あるいはサーバー装置等の接続可能な外部装置から、選択された画像入力装置１０２で使用可能なドライバのインストールパッケージを検索し、見つかった場合はダウンロードしインストールを行う。
【０１８０】
サーバー装置１０３等の外部装置からダウンロードする場合は、前提として、サーバー装置１０３や情報処理装置１０１側に、リモートでドライバのインストールパッケージをダウンロードしてインストールを実行するための仕組みが必要になる。また、使用可能なドライバのインストールパッケージの検索は、選択された画像入力装置の情報（画像入力装置の名称や、機種毎に一意に定義されるＩＤ情報等）から使用可能なものを判断する。
【０１８１】
これにより、予めドライバがインストールされていない場合においても、ドライバを自動インストールして使用できる環境を構築することが可能になる。
【０１８２】
（他の実施の形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１８３】
１０１  情報処理装置
１０２  画像入力装置
１０３  サーバー装置
１１１，２０２，３０１  ＣＰＵ
１１２，２０３，３０２  ＲＡＭ
１１３，２０４，３０３  ＲＯＭ
１１６，３０４  表示部Ｉ／Ｆ
１１７  操作部Ｉ／Ｆ
１２０，３０８  表示部
１２１  操作部
１３０，２２０，３２０  外部メモリ
１３１，３２１  ＯＳ
１３２  アプリケーション
１３３  ドライバ
１３４  ウェブブラウザー
２０８  プリンターＩ／Ｆ
２０９  印刷部
２１０  スキャナーＩ／Ｆ
２１１  スキャン部
２２１  ハードウェア情報
３２２  ウェブサービスライブラリ
３２３  スキャン処理関連プログラム
３２４  検索プログラム
３２５  検索スクリプト
３２６  画像入力装置管理プログラム
３２７  スキャンジョブ生成プログラム
３２８  スキャンスクリプト
３２９  画像受信プログラム
３３０  ドライバ検索スクリプト
３３１  ドライバ制御プラグイン
３３２  ドライバ制御プログラム
６００  検索中画面例
７００  検索済装置リスト表示画面例
８００  スキャン設定画面表示例
９００  スキャン中画面表示例
１０００  スキャン作業完了画面表示例
【図１】
2012252466.tif 000003
【図２】
2012252466.tif 000004
【図３】
2012252466.tif 000005
【図４】
2012252466.tif 000006
【図５】
2012252466.tif 000007
【図６】
2012252466.tif 000008
【図７】
2012252466.tif 000009
【図８】
2012252466.tif 000010
【図９】
2012252466.tif 000011
【図１０】
2012252466.tif 000012
【図１１】
2012252466.tif 000013
【図１２】
2012252466.tif 000014
【図１３】
2012252466.tif 000015
【図１４】
2012252466.tif 000016
【図１５】
2012252466.tif 000017