(57)【要約】【課題】  要求元のドライバに依存することなく、適応的に画像読取を行うことができる。【解決手段】  所定の通信プロトコルに従って、情報処理装置から受信するコマンドに基づいて、画像読取に使用する画像読取シーケンスとして、所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、あるいは所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのどちらを使用するかを判定する。判定された画像読取シーケンスに従って、画像読取を実行する。【選択図】  図８
2015115900.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置からの要求に応じて画像の読取を実行する画像読取装置であって、
所定の通信プロトコルに従って、前記情報処理装置と通信する通信手段と、
前記通信手段で受信するコマンドに基づいて、画像読取に使用する画像読取シーケンスとして、前記所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、あるいは前記所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのどちらかを使用するかを判定する判定手段と、
前記判定手段によって判定された画像読取シーケンスに従って、画像読取を実行する実行手段と
を備えることを特徴とする画像読取装置。
【請求項２】
前記判定手段は、前記所定の通信プロトコルに準拠する第１のコマンドと、前記所定の通信プロトコルに準拠しない第２のコマンドとを前記通信手段が受信する順番に基づいて、前記第１の画像読取シーケンスあるいは前記第２の画像読取シーケンスを判定する
ことを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記判定手段は、前記通信手段が受信する前記所定の通信プロトコルに準拠する第１のコマンドに含まれる識別子に基づいて、前記第１の画像読取シーケンスあるいは前記第２の画像読取シーケンスを判定する
ことを特徴とする請求項１に記載の画像読取装置。
【請求項４】
前記判定手段は、前記通信手段が受信する前記所定の通信プロトコルに準拠する第１のコマンドに前記所定の通信プロトコルに準拠しない第２のコマンドが組み込まれているか否かに基づいて、前記第１の画像読取シーケンスあるいは前記第２の画像読取シーケンスを判定する
ことを特徴とする請求項１に記載の画像読取装置。
【請求項５】
前記通信手段は、前記所定の通信プロトコルに準拠する第１のコマンドに、前記所定の通信プロトコルに準拠しない第２のコマンドを内包した形式のコマンドを、前記情報処理装置との間で送受信する
ことを特徴とする請求項１乃至４のいずれか１項に記載の画像読取装置。
【請求項６】
前記所定の通信プロトコルは、ＷＳＤ（Web Service on Device）のプロトコルである
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像読取装置。
【請求項７】
前記通信手段は、前記ＷＳＤのプロトコルに準拠したコマンドの内、
スキャナ要素取得要求コマンド（GetScannerElements Request）と
スキャナ要素取得応答コマンド（GetScannerElements Response）と
の中に、前記ＷＳＤのプロトコルに準拠しない第２のコマンドを内包した形式のコマンドを、前記情報処理装置との間で送受信する
ことを特徴とする請求項６に記載の画像読取装置。
【請求項８】
前記通信手段は、前記ＷＳＤのプロトコルに準拠したコマンドの内、
画像取得要求コマンド（RetrieveImage Request）と、
画像取得応答コマンド（RetrieveImage Response）と
の中に、前記ＷＳＤのプロトコルに準拠しない第２のコマンドを内包した形式のコマンドを、前記情報処理装置との間で送受信する
ことを特徴とする請求項６または７に記載の画像読取装置。
【請求項９】
前記通信手段は、前記ＷＳＤのプロトコルに準拠したコマンドに、前記所定の通信プロトコルに準拠しない第２のコマンドを内包した形式のコマンドのすべてに対応する応答を、１つのメッセージを用いて行う
ことを特徴とする請求項６乃至８のいずれか１項に記載の画像読取装置。
【請求項１０】
情報処理装置からの要求に応じて画像の読取を実行する画像読取装置の制御方法であって、
所定の通信プロトコルに従って、前記情報処理装置から受信するコマンドに基づいて、画像読取に使用する画像読取シーケンスとして、前記所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、あるいは前記所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのどちらを使用するかを判定する判定工程と、
前記判定工程によって判定された画像読取シーケンスに従って、画像読取を実行する実行工程と
を備えることを特徴とする画像読取装置の制御方法。
【請求項１１】
情報処理装置からの要求に応じて画像の読取を実行する画像読取装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを、
所定の通信プロトコルに従って、前記情報処理装置から受信するコマンドに基づいて、画像読取に使用する画像読取シーケンスとして、前記所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、あるいは前記所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのどちらを使用するかを判定する判定手段と、
前記判定手段によって判定された画像読取シーケンスに従って、画像読取を実行する実行手段と
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置からの要求に応じて画像の読取を実行する画像読取技術に関するものである。
【背景技術】
【０００２】
近年、ネットワークの基盤が整備されるに従い、ネットワーク対応型のプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置（周辺装置）が急速に普及しつつある。例えば、ネットワーク上に接続されるスキャナ（画像読取装置）は、原稿を読み取って生成した画像データをＰＣ等の情報処理装置へ送信する機能を有している。このようなネットワーク上のスキャン機能を実現するために、画像読取装置はいくつかのネットワークプロトコルをサポートし、情報処理装置との間で通信を行っている。
【０００３】
ここで、ＯＳ（Operating System）としてマイクロソフト（登録商標）社のＷｉｎｄｏｗｓ（登録商標）Ｖｉｓｔａが情報処理装置にインストールされている場合を考える。Ｗｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ（またはそれ以降のＯＳ）では、ＷＳＤ（Web Services on Devices）という技術がサポートされるようになっている。ＷＳＤはデバイスを用いた様々なサービスの要求に答えるために定義された標準仕様である。基本的にＷＥＢサービスのアーキテクチャを使用し、標準化されたネットワーク上の標準通信プロトコル群、印刷サービス、及びスキャンサービスを提供している。
【０００４】
また、ＷＳＤを使用したＯＳ標準のスキャナドライバ（ＷＩＡ：マイクロソフトがＷｉｎｄｏｗｓ（登録商標）Ｍｅ以降に採用しているＯＳ標準の画像入力ＡＰＩ）がＯＳにプレインストールされている。そして、画像読取装置がＷＳＤの標準スキャンサービスをサポートすることにより、ＯＳ標準のＷＩＡドライバを使用したネットワークスキャンが可能となっている。ＷＳＤの標準スキャンサービスには、そのスキャンサービスを利用するための各種コマンドや各種イベントがＷＳＤに準拠した形式に基づく言語によって定義されている。さらに、画像読取装置がＷＳＤの標準スキャンサービスに対応することが、ＷＨＱＬ（Windows Hardware Quality Labs）のロゴ要件にもなっている。
【０００５】
ＷＳＤとそれ以外のネットワークプロトコルをサポートする先行技術としては、複数のプロトコルでデバイスを検出し表示を１つにまとめる方法がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１８７５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、Ｗｉｎｄｏｗｓ（登録商標）のスキャナドライバは、ＯＳ標準のＷＩＡドライバとＴＷＡＩＮ（ＴＷＡＩＮワーキンググループが定める画像処理ソフトウェアとスキャナ間のインタフェース）を使用した周辺機器メーカー製のＴＷＡＩＮドライバが存在する。ＷＩＡドライバは、スキャン設定や画像補正等の機能が少ないため、画像読取装置の能力に応じたより詳細な設定でスキャンを行うには、ＴＷＡＩＮドライバが必要となることがある。
【０００８】
しかし、ＷＳＤを使用したネットワークスキャンにおいては、ＷＳＤの標準スキャンサービスに対応した画像読取装置と情報処理装置にインストールされたＷＩＡドライバの組み合わせのみが現状サポートされている。ＷＳＤを使ってＴＷＡＩＮドライバからネットワークスキャンする方法は確立していないため、周辺機器メーカーは独自のネットワークプロトコルを使用して、画像読取装置と情報処理装置間で通信しなければならないという問題がある。
【０００９】
また、ＷＳＤと周辺機器メーカー独自のネットワークプロトコルの２つを実装することは、画像読取装置内のメモリ容量多く使う必要がある。Ｗｉｎｄｏｗｓ（登録商標）  Ｖｉｓｔａ以降、ＷＳＤの標準スキャンサービスに対応することがＷＨＱＬの必須要件となっていることから、周辺機器メーカー独自のネットワークプロトコルから、ＷＳＤに一本化する方向が考えられる。ＷＳＤを使ってＯＳ標準のＷＩＡドライバ、周辺機器メーカー製のＴＷＡＩＮドライバの両方からスキャンできるようになった場合、画像読取装置と情報処理装置間で通信する画像読取コマンドはそれぞれのドライバで異なるため、画像読取装置はＷＩＡドライバとＴＷＡＩＮドライバのどちらのドライバから画像読取コマンドが発行されているか区別する必要がある。
【００１０】
本発明は上記の課題を解決するためになされたものであり、要求元のドライバに依存することなく、適応的に画像読取を行うことができる画像読取技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明による画像読取装置は以下の構成を備える。即ち、
情報処理装置からの要求に応じて画像の読取を実行する画像読取装置であって、
所定の通信プロトコルに従って、前記情報処理装置と通信する通信手段と、
前記通信手段で受信するコマンドに基づいて、画像読取に使用する画像読取シーケンスとして、前記所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、あるいは前記所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのどちらかを使用するかを判定する判定手段と、
前記判定手段によって判定された画像読取シーケンスに従って、画像読取を実行する実行手段と
を備える。
【発明の効果】
【００１２】
本発明によれば、要求元のドライバに依存することなく、適応的に画像読取を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】代表的な実施形態であるＭＦＰの概略構成を示すブロック図である。
【図２】代表的な実施形態であるＰＣの概略構成を示すブロック図である。
【図３】ＭＦＰとＰＣとを含むネットワークシステムの概略構成を示す図である。
【図４】従来のネットワークスキャン時におけるＰＣ内のモジュールの概念図である。
【図５】ネットワークスキャン時におけるＰＣ内のモジュールの概念図である。
【図６】実施形態１のＭＦＰとＰＣがネットワークを介して通信し、ＯＳ標準のＷＩＡドライバからスキャンを行う際のシーケンスチャートである。
【図７】実施形態１のＭＦＰとＰＣがネットワークを介して通信し、ＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバからスキャンを行う際のシーケンスチャートである。
【図８】実施形態１のＭＦＰがＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバを判定する処理を示すフローチャートである。
【図９】実施形態２のＭＦＰとＰＣがネットワークを介して通信し、ＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバからスキャンを行う際のシーケンスチャートである。
【図１０】実施形態２のＭＦＰがＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバを判定する処理を示すフローチャートである。
【図１１】実施形態３のＭＦＰとＰＣがネットワークを介して通信し、ＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバからスキャンを行う際のシーケンスチャートである。
【図１２】実施形態３のＭＦＰがＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバを判定する処理を示すフローチャートである。
【図１３】実施形態４のＭＦＰとＰＣがネットワークを介して通信し、周辺機器メーカー製のＴＷＡＩＮドライバからスキャンを行う際のシーケンスチャートである。
【図１４】実施形態５のＭＦＰとＰＣがネットワークを介して通信し、周辺機器メーカー製のＴＷＡＩＮドライバからスキャンを行う際のシーケンスチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１５】
＜実施形態１＞
実施形態１として、ネットワーク上の通信プロトコルの１つであるＷＳＤ（Web Services on Devices）を用いたネットワークスキャン（ネットワーク経由のスキャン）を行う情報処理方法について説明する。
【００１６】
図１は画像読取装置の実施形態の一例であるＭＦＰ（Multi Function Peripheral）の概略構成を示すブロック図である。ＭＦＰ１００は、プリンタ機能、スキャナ機能及びストレージ機能を備えており、ネットワークを経由してそれぞれの機能サービスを提供することができる。
【００１７】
ＭＦＰ１００において、プリンタ機能はプリンタ部１０１で、スキャナ機能はスキャナ部１０２で、ストレージ機能はメモリカード装着部１０３及びメモリカード１０４で実現する。また、プリンタ機能とスキャナ機能を組み合わせてコピー機能を実現することもできる。
【００１８】
プリンタ部１０１は、外部から受信した印刷データやメモリカード１０４に格納されている画像データ等のデータを、インクジェット方式や電子写真方式等の印刷方式によって印刷用紙に印刷する。スキャナ部１０２は、原稿台にセットされた原稿を光学式に読み取って電子データに変換し、さらに指定されたファイル形式に変換してネットワーク経由で外部装置に送信する。コピーサービスは、原稿台に置かれた原稿をスキャナ部１０２で読み取って生成した画像データをプリンタ部１０１へ転送してプリンタ部１０１が印刷用紙にその原稿データを印刷する。また、メモリカード１０４に格納されているファイルを、ネットワークを経由して接続された外部装置が読み出し、編集し、外部装置からメモリカード１０４内にファイルを格納することが可能である。
【００１９】
さらに、ＭＦＰ１００は、ＭＦＰ１００の各種構成要素を制御するための中央演算装置（ＣＰＵ）１０５、ＣＰＵ１０５が読み出すプログラム等のデータを格納するＲＯＭ等のプログラムメモリ１０６を備える。また、ＭＦＰ１００は、各サービス実行時に画像データ等のデータを一時格納したり、バッファリングしたりするためのＲＡＭ等のワークメモリ１０７、ＬＣＤ等の表示部１０８、各スイッチからなる操作部１０９を備える。
【００２０】
また、ＭＦＰ１００は、ＭＦＰ１００をネットワークに接続して各種通信を行うためのネットワーク通信部１１０と、ネットワーク通信部１１０をネットワーク媒体に接続するためのネットワーク接続部１１１を備える。ネットワーク通信部１１０は、有線ネットワークと無線ネットワークの内、少なくともいずれかに対応する。有線ネットワーク対応の場合、ネットワーク接続部１１１は有線ネットワークのケーブルをＭＦＰ１００に接続するためのコネクタとなる。また、無線ネットワーク対応の場合、ネットワーク接続部１１１はアンテナとなる。
【００２１】
また、さらに、ＭＦＰ１００は、ネットワーク通信部１１０が受信したパケットの送信元情報を格納するために、不揮発性メモリであるフラッシュメモリ１１２を備える。また、さらに、ＭＦＰ１００は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを介して情報処理装置（ＰＣ）と通信するためのＵＳＢ通信部１１４を備え、情報処理装置とはＵＳＢコネクタ等のコネクタによるＵＳＢ接続部１１５により接続する。
【００２２】
これらのＭＦＰ１００の各種構成要素は、信号線１１３により相互に接続される。
【００２３】
図２は情報処理装置の実施形態の一例であるＰＣの概略構成を示すブロック図である。情報処理装置は、例えば、汎用的なＰＣに所定のソフトウェアをインストールすることによって実現可能である。
【００２４】
図２において、２０１は、ＰＣ２００の各種構成要素を制御するためのＣＰＵである。２０２は、ＣＰＵ２０１が読み出すアプリケーションプログラムやＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）等をインストールし、また、各種ファイル等のデータを格納するディスク装置である。２０３は、ＣＤ−ＲＯＭ等の外部記憶媒体の内容を読み出すための外部ディスク読取装置である。２０４は、ＣＰＵ２０１が必要に応じてデータの一時的格納、バッファリング等の処理を行うためのメモリである。
【００２５】
ＰＣ２００からＭＦＰ１００を利用するためのソフトウェアのセットアッププログラムを実行することにより、各種プログラムがＰＣ２００にインストールされる。各種プログラムには、スキャン機能を利用するためのスキャナドライバ、プリンタ機能を利用するためのプリンタドライバが含まれる。また、さらにＭＦＰ１００の状態（イベントの有無等）を問い合わせるためのポーリングアプリケーション、ＭＦＰ１００の状態（ステータス）を管理する管理ソフトウェア（ステータスモニター）等の各種アプリケーションが含まれる。また、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）としてＴＷＡＩＮに対応した画像処理アプリケーション、ＡＰＩとしてＷＩＡに対応した画像処理アプリケーションが含まれる。
【００２６】
２０５は、ＬＣＤ等からなる表示部である。２０６は、キーボードやマウス等による操作部である。２０７は、ＰＣ２００をネットワークに接続して各種通信を行うためのネットワーク通信部である。２０８は、ネットワーク通信部２０７をネットワーク媒体に接続するためのネットワーク接続部である。
【００２７】
ＭＦＰ１００と同様に、ネットワーク通信部２０７とネットワーク接続部２０８は、有線ネットワークと無線ネットワークの内、少なくともいずれかに対応する。具体的な形態は、ＭＦＰ１００に内蔵のネットワーク通信部１１０及びネットワーク接続部１１１と同様に、対応するネットワークに応じて必要な機能及び形態をとる。２０９は、ＰＣ２００の各種構成要素を相互に接続するための信号線である。２１０は、各種周辺装置とＵＳＢインタフェースを介して通信するためのＵＳＢ通信部である。２１１は、ＵＳＢコネクタ等のＵＳＢ接続部である。
【００２８】
図３は図１のＭＦＰ１００と図２のＰＣ２００とを含むネットワークシステムの概略構成を示すブロック図である。
【００２９】
図３では、ネットワーク３００に、画像読取装置であるＭＦＰ１００、情報処理装置であるＰＣ２００が接続されている。このネットワーク３００は、例えば、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）である。
【００３０】
図３および以降の説明では、有線ネットワークケーブルであるネットワーク３００から構成されるネットワークについて扱うが、これに限定されず、ネットワークの態様は、無線ネットワークであっても、有線ネットワークと無線ネットワークが混在するネットワークであっても同様である。また、画像読取装置は必ずしもＭＦＰ１００である必要はなく、単機能のイメージスキャナやデジタルカメラでもよい。
【００３１】
尚、図３では、１台のＰＣ２００、１台のＭＦＰ１００のみを図示しているが、複数のＰＣ２００および複数のＭＦＰ１００が同一ネットワーク３００上に接続可能である。
【００３２】
図４は従来のネットワークスキャン時のＰＣ２００内のモジュールの概念図である。
【００３３】
ＰＣ２００内のＴＷＡＩＮ対応アプリケーション４０１は、ＴＷＡＩＮドライバ４０２を起動し、スキャナ制御ドライバ４０３を経由して、ＭＦＰ１００にアクセスする。
【００３４】
ここで、ネットワーク上で通信を行うために、周辺機器メーカー独自（ベンダー独自）のネットワークプロトコル４０４を使用して、ＷＩＮＳＯＣＫ（Ｗｉｎｄｏｗｓ（登録商標）  Ｓｏｃｋｅｔｓ  ＡＰＩ）４０５を通じてＭＦＰ１００とコマンドの送受信を行い、画像データを取得する。
【００３５】
次に、ＷＩＡ対応アプリケーション４０６からのスキャンを実行する場合、ＯＳのＳＴＩ／ＷＩＡ  Ｓｅｒｖｉｃｅ４０７を経由して、ＯＳ標準のＭｉｃｒｏｓｏｆｔ製ＷＳＤ  Ｓｃａｎ  Ｄｒｉｖｅｒ（ＷＳＤＳｃＤｒｖ．ｄｌｌ）４０８を起動する。このＷＳＤ  Ｓｃａｎ  Ｄｒｉｖｅｒ４０８が、ＷＳＤサービス（ＷＳＤ  ＡＰＩ）４０９を使用して、ＷＩＮＳＯＣＫ（Ｗｉｎｄｏｗｓ（登録商標）  Ｓｏｃｋｅｔｓ  ＡＰＩ）４０５を通じてＭＦＰ１００と通信を行い、画像データを取得する。
【００３６】
図５は図４に対して実施形態１のＰＣ２００内のモジュールの概念図である。
【００３７】
ＰＣ２００内のＴＷＡＩＮ対応アプリケーション４０１は、ＴＷＡＩＮドライバ４０２を起動し、スキャナ制御ドライバ４０３を経由して、ＭＦＰ１００にアクセスする。
【００３８】
ここで、ＷＳＤ  Ｓｃａｎ  Ｄｒｉｖｅｒ４０８と同様に、スキャナ制御ドライバ４０３がＷＳＤサービス（ＷＳＤ  ＡＰＩ）４０９を使用して、ＷＩＮＳＯＣＫ（Ｗｉｎｄｏｗｓ（登録商標）  Ｓｏｃｋｅｔｓ  ＡＰＩ）４０５を通じてＭＦＰ１００とコマンドの送受信を行い、画像データを取得する。これにより、周辺機器メーカー独自のネットワークプロトコル４０４（図４）を使用せずに、ＴＷＡＩＮドライバ４０２からネットワークスキャンを実現することができる。
【００３９】
ＰＣ２００とＭＦＰ１００は、これらのコマンドを利用して、ネットワークスキャンにかかる処理を実現することができる。
【００４０】
図６はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、ＯＳ標準のＷＩＡドライバからネットワークスキャン（ＷＳＤスキャン）を行う際のシーケンスチャートである。
【００４１】
ＰＣ２００には、ＷＳＤのスキャンサービスに対応したＷｉｎｄｏｗｓ（登録商標）  ＶｉｓｔａやＷｉｎｄｏｗｓ（登録商標）  ７等のＯＳがインストールされている環境とする。ＭＦＰ１００をＷＳＤのスキャンサービスに対応した画像読取装置としてＯＳに認識させるためには、ＰＣ２００上に表示されているネットワーク上のＭＦＰ１００を選択して、インストールを実施すればよい。この手順により、ＯＳ標準のＷＳＤスキャナドライバがインストールされる。
【００４２】
ＰＣ２００は、ＯＳ標準のＷＩＡドライバからスキャンする場合、スキャン開始時にスキャン設定（スキャンパラメータ）を含むＷＳＤのスキャン要求コマンド（CreateScanJob Request）をＭＦＰ１００に送信する（Ｓ６０１）。
【００４３】
ＭＦＰ１００は、スキャン要求コマンドを含むスキャンパラメータに従って、スキャン可能であれば、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ返信する（Ｓ６０２）。
【００４４】
これを受けて、ＰＣ２００は、ＷＩＡドライバによってＷＳＤの画像取得要求コマンド（RetrieveImage Request）をＭＦＰ１００へ送信する（Ｓ６０３）。
【００４５】
ＭＦＰ１００は、画像取得要求コマンドを受信すると、画像取得応答コマンド（RetrieveImage Response）をＰＣ２００へ返信する（Ｓ６０４）。続けて、ＭＦＰ１００は、指定されたスキャン設定に従ってスキャナ部１０２による画像の読み取り（スキャン）を実行し、これによって得たスキャンデータ（例えば、ＪＰＥＧ画像）をＭＴＯＭ（Message Transmission Optimization Mechanism）でＰＣ２００へ送信する（Ｓ６０５）。
【００４６】
図７はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、本実施形態であるＯＳ標準のＷＩＡドライバ、周辺機器メーカー製のＴＷＡＩＮドライバのそれぞれからＷＳＤを使用したネットワークスキャンを行う際のシーケンスチャートである。尚、図７において、図６と同一のシーケンスについては、同一の参照番号を付加している。
【００４７】
ＰＣ２００は、ＴＷＡＩＮドライバからスキャンする場合、スキャン開始時にスキャン設定（スキャンパラメータ）を含むスキャン要求コマンド（CreateScanJob Request）をＭＦＰ１００に送信する（Ｓ７０１）。
【００４８】
ＭＦＰ１００は、スキャン可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ返信する（Ｓ７０２）。
【００４９】
次に、ＰＣ２００は、ＴＷＡＩＮドライバによってベンダー（周辺機器メーカー）独自のコマンド（ベンダーコマンド）を送信するため、ＷＳＤの標準コマンドであるスキャナ要素取得要求コマンド（GetScannerElements Request）をベンダーコマンドを内包した形式でＭＦＰ１００へ送信する（Ｓ７０３）。
【００５０】
ここで、ＭＦＰ１００は、ＰＣ２００のＷＩＡドライバからのスキャン時は、画像取得要求コマンド（RetrieveImage Request）をＰＣ２００から受信する（Ｓ６０３）。この場合、ＭＦＰ１００は、画像取得応答コマンド（RetrieveImage Response）をＰＣ２００へ返信する（Ｓ６０４）。
【００５１】
これに対し、ＰＣ２００からスキャナ要素取得要求コマンド（GetScannerElements Request）を受信する場合は、ＭＦＰ１００は、ＰＣ２００のＴＷＡＩＮドライバからのスキャンであると判定する。その場合、ＭＦＰ１００は、スキャナ要素取得要求コマンド（GetScannerElements Request）内のベンダーコマンドを解釈する。そして、ＭＦＰ１００は、ＷＳＤのスキャナ要素取得応答コマンド（GetScannerElements Response）をベンダーコマンドのレスポンス情報を内包するように組み込んでＰＣ２００へ返信する（Ｓ７０４）。その後、ベンダー独自のコマンドシーケンスに応じて、Ｓ７０３、Ｓ７０４を繰り返し、コマンドの送受信や画像データの送受信をＷＳＤのコマンドを使用して行う。
【００５２】
図８はＭＦＰ１００が図７のＯＳ標準のＷＩＡドライバからのＷＳＤスキャンとＴＷＡＩＮドライバからのＷＳＤスキャンを判定して切り替える処理を示すフローチャートである。このフローチャートは、ＣＰＵ１０５がプログラムをワークメモリ１０７にロードし、それを実行することによって行われる。
【００５３】
Ｓ１００１にて、ＭＦＰ１００は、スキャン要求コマンド（CreateScanJob Request）をＰＣ２００から受信する。Ｓ１００２にて、ＭＦＰ１００は、スキャンが可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ送信する。Ｓ１００３にて、ＭＦＰ１００は、次のコマンドとして画像取得要求コマンド（RetrieveImage Request）をＰＣ２００から受信した否かを判定する。図６のように、ＯＳ標準のＷＩＡドライバからのスキャン時には、スキャン要求コマンドの次に画像取得要求コマンドが送信されるシーケンスとなる。
【００５４】
画像取得要求コマンドを受信した場合（Ｓ１００３でＹＥＳ）、Ｓ１００４にて、ＭＦＰ１００は、ＯＳ標準のＷＩＡドライバからのスキャンであると判定する。そして、Ｓ１００５にて、ＭＦＰ１００は、図６のＯＳ標準のＷＩＡドライバからのスキャンシーケンスにて画像を読み取る。
【００５５】
一方、画像取得要求コマンド（RetrieveImage Request）を受信しなかった場合（Ｓ１００３でＮＯ）、Ｓ１００６にて、ＭＦＰ１００は、受信したコマンド内にベンダーコマンドが含まれているか否かを判定する。ベンダーコマンドが含まれている場合（Ｓ１００６でＹＥＳ）、Ｓ１００７にて、ＭＦＰ１００は、周辺機器メーカー製（ベンダー固有）のＴＷＡＩＮドライバからのスキャンであると判定する。そして、Ｓ１００８にて、ＭＦＰ１００は、図７の周辺機器メーカー製（ベンダー独自）のＴＷＡＩＮドライバからのスキャンシーケンスにて画像を読み取る。
【００５６】
一方、ベンダーコマンドが含まれていない場合（Ｓ１００６でＮＯ）、Ｓ１００３に戻る。
【００５７】
以上説明したように、実施形態１によれば、スキャンシーケンスの違いやスキャン要求コマンド（CreateScanJob Request）の次のコマンドにベンダーコマンドが含まれているか否かを判定する。これにより、ＯＳ標準のＷＩＡドライバからのスキャンと周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを判定することができる。
【００５８】
これにより、ＷＳＤを使用してＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバのどちらのドライバからでもネットワークスキャンを実施することができる。
【００５９】
また、ＷＩＡドライバとＴＷＡＩＮドライバのどちらのドライバから画像読取コマンドが送信されているかを区別する構成を備えることにより、画像読取装置はどちらのドライバからスキャン要求されているかを判定し、それぞれのドライバに応じた画像読取コマンドの送受信、画像データ転送方法でネットワークスキャンを行うことができる。
【００６０】
つまり、ネットワークプロトコルとしてＷＳＤのみをサポートした場合でも、ＯＳ標準のＷＩＡドライバと周辺機器メーカー製のＴＷＡＩＮドライバの両方からネットワークスキャンが可能となる。そして、ＷＳＤを使用したＴＷＡＩＮドライバからのスキャンに対応することにより、ＯＳ標準のＷＩＡドライバにはない多くのスキャン設定、画像補正機能をサポートすることができ、画像読取装置の性能をフルに引き出すことができる。また、通信プロトコルをＷＳＤの１つのみとすることで、画像読取装置のコストアップを防ぐことができる。
【００６１】
＜実施形態２＞
実施形態２で用いるＭＦＰ１００とＰＣ２００、構成概略、ＰＣ２００内のモジュールの概念図、スキャンのシーケンスチャートは図１〜図７で説明したものと同様の構成を用いることができるので、それらについての説明は省略する。
【００６２】
実施形態２では、ＭＦＰ１００がＯＳ標準のＷＩＡドライバからのスキャンと周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを判定する方法として、スキャン要求コマンドにカスタムフラグが付加されている場合についての方法を説明する。
【００６３】
図９はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、本実施形態であるＯＳ標準のＷＩＡドライバ、周辺機器メーカー製のＴＷＡＩＮドライバのそれぞれからＷＳＤを使用したネットワークスキャンを行う際のシーケンスチャートである。尚、図９において、図６と同一のシーケンスについては、同一の参照番号を付加している。
【００６４】
ＰＣ２００は、ＴＷＡＩＮドライバからスキャンする場合、スキャン開始時にスキャン設定（スキャンパラメータ）とともにＴＷＡＩＮドライバからのスキャンであることを明示的に設定するためのカスタムフラグ（ＸＭＬ形式のコマンドにベンダー独自のネームスペースで定義したタグを追加し、ベンダー固有の情報（識別子）を付加する）を含むスキャン要求コマンド（CreateScanJob Request）をＭＦＰ１００に送信する（Ｓ８０１）。
【００６５】
ＭＦＰ１００は、スキャン可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ返信する（Ｓ８０２）。また、ＭＦＰ１００は、Ｓ８０１にてカスタムフラグがあるか否かを検出し、カスタムフラグがある場合は、ＴＷＡＩＮドライバからのスキャンであることを判定し、カスタムフラグがない場合はＷＩＡドライバからのスキャンであると判定する。
【００６６】
ここで、ＭＦＰ１００は、ＰＣ２００のＷＩＡドライバからのスキャン時は、画像取得要求コマンド（RetrieveImage Request）をＰＣ２００から受信する（Ｓ６０３）。この場合、ＭＦＰ１００は、画像取得応答コマンド（RetrieveImage Response）をＰＣ２００へ返信する（Ｓ６０４）。
【００６７】
これに対し、ＰＣ２００のＴＷＡＩＮドライバからのスキャン時は、ベンダー独自のコマンド（ベンダーコマンド）を送信するため、ＰＣ２００は、ＷＳＤの標準コマンドであるスキャナ要素取得要求コマンド（GetScannerElements Request）をベンダーコマンドを内包した形式でＭＦＰ１００へ送信する（Ｓ８０３）。
【００６８】
ＭＦＰ１００は、ＰＣ２００のＴＷＡＩＮドライバからのスキャン時は、ベンダーコマンドが組み込まれていると判定し、スキャナ要素取得要求コマンド（GetScannerElements Request）内のベンダーコマンドを解釈する。そして、ＭＦＰ１００は、ＷＳＤのスキャナ要素取得応答コマンド（GetScannerElements Response）をベンダーコマンドのレスポンス情報を内包するように組み込んでＰＣ２００へ返信する（Ｓ８０４）。その後、ベンダー独自のコマンドシーケンスに応じて、Ｓ８０３、Ｓ８０４を繰り返し、コマンドの送受信や画像データの送受信をＷＳＤのコマンドを使用して行う。
【００６９】
図１０はＭＦＰ１００が図９のＯＳ標準のＷＩＡドライバからのＷＳＤスキャンとＴＷＡＩＮドライバからのＷＳＤスキャンを判定して切り替える処理を示すフローチャートである。このフローチャートは、ＣＰＵ１０５がプログラムをワークメモリ１０７にロードし、それを実行することによって行われる。
【００７０】
Ｓ１１０１にて、ＭＦＰ１００は、スキャン要求コマンド（CreateScanJob Request）をＰＣ２００から受信する。Ｓ１１０２にて、ＭＦＰ１００は、スキャン要求コマンドの中にカスタムフラグが追加されているか否かを判定する。カスタムフラグが追加されていない場合（Ｓ１１０２でＮＯ）、Ｓ１１０３にて、ＭＦＰ１００は、ＯＳ標準のＷＩＡドライバからのスキャンであると判定する。Ｓ１１０４にて、ＭＦＰ１００は、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ送信する。そして、Ｓ１１０５にて、ＭＦＰ１００は、図６のＯＳ標準のＷＩＡドライバからのスキャンシーケンスにて画像を読み取る。
【００７１】
一方、カスタムフラグが追加されている場合（Ｓ１１０２でＹＥＳ）、Ｓ１１０６にて、ＭＦＰ１００は、周辺機器メーカー製（ベンダー固有）のＴＷＡＩＮドライバからのスキャンであると判定する。Ｓ１１０７にて、ＭＦＰ１００は、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ送信する。そして、Ｓ１１０８にて、ＭＦＰ１００は、図９の周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンシーケンスにて画像を読み取る。
【００７２】
以上説明したように、実施形態２によれば、ＭＦＰ１００は、スキャンシーケンスの最初のコマンドであるスキャン要求コマンド（CreateScanJob Request）にカスタムフラグが含まれているかを判定する。これにより、ＯＳ標準のＷＩＡドライバからのスキャンと周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを判定することができる。また、スキャン開始の最初のコマンドであるスキャン要求コマンド（CreateScanJob Request）にカスタムフラグを含めることで、スキャンシーケンスを解析することなく、ＷＩＡ・ＴＷＡＩＮスキャンを素早く切り替えることができる。
【００７３】
＜実施形態３＞
実施形態３で用いるＭＦＰ１００とＰＣ２００、構成概略、ＰＣ２００内のモジュールの概念図、スキャンのシーケンスチャートは図１〜図７で説明したものと同様の構成を用いることができるので、それらについての説明は省略する。
【００７４】
実施形態３では、ＭＦＰ１００がＯＳ標準のＷＩＡドライバからのスキャンと周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを判定する方法として、スキャン要求コマンドにベンダーコマンドを組み込む場合についての方法を説明する。
【００７５】
図１１はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、本実施形態であるＯＳ標準のＷＩＡドライバ、周辺機器メーカー製のＴＷＡＩＮドライバのそれぞれからＷＳＤを使用したネットワークスキャンを行う際のシーケンスチャートである。尚、図１１において、図６と同一のシーケンスについては、同一の参照番号を付加している。
【００７６】
ＰＣ２００は、ＴＷＡＩＮドライバからスキャンする場合、スキャン開始時に発行するスキャン要求コマンド（CreateScanJob Request）をベンダーコマンド（周辺機器メーカー独自のコマンド）を内包した形式でＭＦＰ１００に送信する（Ｓ９０１）。
【００７７】
ＭＦＰ１００は、ベンダーコマンドが組み込まれていれば、ＴＷＡＩＮドライバからのスキャンであると判定し、スキャン可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）をベンダーコマンドのレスポンス情報を内包するように組み込んでＰＣ２００へ返信する（Ｓ９０２）。
【００７８】
その後、ＰＣ２００は、ベンダー独自のコマンドシーケンスに応じて、ＷＳＤの標準コマンドであるスキャナ要素取得要求コマンド（GetScannerElements Request）をベンダーコマンドを内包するように組み込んだ形式でＭＦＰ１００へ送信する（Ｓ９０３）。
【００７９】
ＭＦＰ１００は、スキャナ要素取得要求コマンド（GetScannerElements Request）内のベンダーコマンドを解釈し、ＷＳＤのスキャナ要素取得応答コマンド（GetScannerElements Response）をベンダーコマンドのレスポンス情報を内包するように組み込んでＰＣ２００へ返信する（Ｓ９０４）。その後、ベンダー独自のコマンドシーケンスに応じて、Ｓ９０３、Ｓ９０４を繰り返し、コマンドの送受信や画像データの送受信をＷＳＤのコマンドを使用して行う。
【００８０】
図１２はＭＦＰ１００が図１１のＯＳ標準のＷＩＡドライバからのＷＳＤスキャンとＴＷＡＩＮドライバからのＷＳＤスキャンを判定して切り替える処理を示すフローチャートである。このフローチャートは、ＣＰＵ１０５がプログラムをワークメモリ１０７にロードし、それを実行することによって行われる。
【００８１】
Ｓ１２０１にて、ＭＦＰ１００は、スキャン要求コマンド（CreateScanJob Request）をＰＣ２００から受信する。Ｓ１２０２にて、ＭＦＰ１００は、スキャン要求コマンドの中にベンダー独自のコマンド（ベンダーコマンド）が組み込まれているか否かを判定する。ベンダーコマンドが組み込まれていない場合（Ｓ１２０２でＮＯ）、ＭＦＰ１００は、ＯＳ標準のＷＩＡドライバからのスキャンであると判定する（Ｓ１２０３）。Ｓ１２０４にて、ＭＦＰ１００は、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ返信する。そして、Ｓ１２０５にて、ＭＦＰ１００は、図６のＯＳ標準のＷＩＡドライバからのスキャンシーケンスにて画像を読み取る。
【００８２】
一方、ベンダーコマンドが組み込まれている場合（Ｓ１２０２でＹＥＳ）、Ｓ１２０６にて、ＭＦＰ１００は、周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンであると判定する。Ｓ１２０７にて、ＭＦＰ１００は、ベンダーコマンドの応答を組み込んだスキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ送信する。そして、Ｓ１２０８にて、ＭＦＰ１００は、図１１の周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンシーケンスにて画像を読み取る。
【００８３】
以上説明したように、実施形態３によれば、ＭＦＰ１００は、スキャンシーケンスの最初のコマンドであるスキャン要求コマンド（CreateScanJob Request）にベンダー独自のコマンド（ベンダーコマンド）が含まれているかを判定する。これにより、ＯＳ標準のＷＩＡドライバからのスキャンと周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを判定することができる。スキャン開始の最初のコマンドであるスキャン要求コマンド（CreateScanJob Request）にベンダーコマンドを含めることで、スキャンシーケンスを解析することなく、ＷＩＡ・ＴＷＡＩＮスキャンを素早く切り替えることができる。
【００８４】
＜実施形態４＞
実施形態４で用いるＭＦＰ１００とＰＣ２００、構成概略、ＰＣ２００内のモジュールの概念図、スキャンのシーケンスチャートは図１〜図６で説明したものと同様の構成を用いることができるので、それらについての説明は省略する。
【００８５】
実施形態４では、ＭＦＰ１００がＯＳ標準ではない周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを行うスキャンシーケンスについて、コマンドの内容に応じてＷＳＤの標準コマンドを使い分ける方法を説明する。
【００８６】
図１３はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、本実施形態であるＯＳ標準ではない周辺機器メーカー製のＴＷＡＩＮドライバからＷＳＤを使用したネットワークスキャンを行う際のシーケンスチャートである。
【００８７】
ＰＣ２００は、ＴＷＡＩＮドライバからスキャンする場合、スキャン開始時にスキャン設定（スキャンパラメータ）とともにＴＷＡＩＮドライバからのスキャンであることを明示的に設定するためのカスタムフラグ（ＸＭＬ形式のコマンドにベンダー独自のネームスペースで定義したタグを追加し、ベンダー固有の情報を付加する）を含むスキャン要求コマンド（CreateScanJob Request）をＭＦＰ１００に送信する（Ｓ１３０１）。
【００８８】
ＭＦＰ１００は、スキャン可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）をＰＣ２００へ返信する（Ｓ１３０２）。また、ＭＦＰ１００は、Ｓ１３０１にてカスタムフラグがあるか否かを検出し、カスタムフラグがある場合は、ＴＷＡＩＮドライバからのスキャンであることを判定する。
【００８９】
次に、ＰＣ２００は、ＴＷＡＩＮドライバでベンダー独自のコマンド（ベンダーコマンド）を送信するため、ＷＳＤの標準コマンドであるスキャナ要素取得要求コマンド（GetScannerElements Request）をベンダーコマンドを内包した形式でＭＦＰ１００へ送信する（Ｓ１３０３）。
【００９０】
ＭＦＰ１００は、スキャナ要素取得要求コマンドにベンダーコマンドが組み込まれていると、ＴＷＡＩＮドライバからのスキャンであると判定し、そのベンダーコマンドを解釈する。そして、ＭＦＰ１００は、ＷＳＤのスキャナ要素取得応答コマンド（GetScannerElements Response）をベンダーコマンドのレスポンス情報を内包するように組み込んでＰＣ２００へ返信する（Ｓ１３０４）。
【００９１】
ここで、ベンダー独自のコマンドシーケンスの内、画像データを含まない設定系のコマンドシーケンスについては、Ｓ１３０３、Ｓ１３０４を繰り返すことで行う。画像データのようにデータサイズが大きくなるコマンドをスキャナ要素取得要求コマンド・スキャナ要素取得応答コマンドで送受信すると、パフォーマンスが低下する懸念があるためである。
【００９２】
また、画像データの取得については、ＰＣ２００は、ＷＳＤの画像取得要求コマンド（RetrieveImage Request）をＭＦＰ１００へ送信する（Ｓ１３０５）。
【００９３】
ＭＦＰ１００は、画像取得応答コマンド（RetrieveImage Response）をＰＣ２００へ返信する（Ｓ１３０６）。続けて、ＭＦＰ１００は、スキャンデータ（例えば、ＪＰＥＧ画像）をＭＴＯＭ（Message Transmission Optimization Mechanism）でＰＣ２００へ送信する（Ｓ１３０７）。
【００９４】
ここで、スキャンデータは、ＪＰＥＧ形式に限定する必要はなく、ＢＭＰ形式やＲＡＷ形式等様々なファイルフォーマットに対応した画像データであってもよい。そして、ベンダー独自のコマンドシーケンスに応じて、Ｓ１３０５〜Ｓ１３０７を繰り返すことで画像データの転送を行う。図１３で説明したスキャンシーケンスは、実施形態１、実施形態２、実施形態３のＴＷＡＩＮドライバからのスキャンシーケンスに置き換えて適用することも可能である。
【００９５】
以上説明したように、実施形態４によれば、ベンダー独自のコマンドシーケンスを実行する場合には、そのコマンドの種類に応じて、コマンドの処理体系を異ならせる（切り替える）ことで、パフォーマンスの低下を防止することができる。
【００９６】
＜実施形態５＞
実施形態５で用いるＭＦＰ１００とＰＣ２００、構成概略、ＰＣ２００内のモジュールの概念図、スキャンのシーケンスチャートは図１〜図６で説明したものと同様の構成を用いることができるので、それらについての説明は省略する。
【００９７】
実施形態４では、ＭＦＰ１００がＯＳ標準ではない周辺機器メーカー製のＴＷＡＩＮドライバからのスキャンを行うスキャンシーケンスについて、コマンドの内容に応じてＷＳＤの標準コマンドを使い分ける方法を説明する。
【００９８】
図１４はＭＦＰ１００とＰＣ２００がネットワーク３００を介して通信し、本実施形態であるＯＳ標準ではない周辺機器メーカー製のＴＷＡＩＮドライバからＷＳＤを使用したネットワークスキャンを行う際のシーケンスチャートである。
【００９９】
ＰＣ２００は、ＴＷＡＩＮドライバからスキャンする場合、スキャン開始時にスキャン設定（スキャンパラメータ）とともにＴＷＡＩＮドライバからのスキャンであることを明示的に設定するためのカスタムフラグ（ＸＭＬ形式のコマンドにベンダー独自のネームスペースで定義したタグを追加し、ベンダー固有の情報を付加する）を含んだスキャン要求コマンド（CreateScanJob Request）をＭＦＰ１００に送信する（Ｓ１４０１）。
【０１００】
ＭＦＰ１００は、スキャン可能な状態であれば、スキャン応答コマンド（CreateScanJob Response）を返信する（Ｓ１４０２）。また、ＭＦＰ１００は、Ｓ１４０１にてカスタムフラグがあるかを検出し、カスタムフラグがある場合は、ＴＷＡＩＮドライバからのスキャンであることを判定する。
【０１０１】
次に、ＰＣ２００は、ＴＷＡＩＮドライバで周辺機器メーカー独自のコマンド（ベンダーコマンド）を送信するため、ＷＳＤの標準コマンドであるスキャナ要素取得要求コマンド（GetScannerElements Request）にベンダーコマンドを内包した形式で送信する（Ｓ１４０３）。
【０１０２】
ＭＦＰ１００は、スキャナ要素取得要求コマンドにベンダーコマンドが組み込まれていると、ＴＷＡＩＮドライバからのスキャンであると判定し、そのベンダーコマンドを解釈して、それに対する応答を用意する。但し、ここでは、ＭＦＰ１００は、ＷＳＤのスキャナ要素取得応答コマンド（GetScannerElements Response）にはベンダーコマンドのレスポンス情報を組み込まずに返信する（Ｓ１４０４）。
【０１０３】
そして、ＰＣ２００は、ＷＳＤの画像取得要求コマンド（RetrieveImage Request）をＭＦＰ１００へ送信する。
【０１０４】
ＭＦＰ１００は、これを受けて、画像取得応答コマンド（RetrieveImage Response）をＰＣ２００へ送信する（Ｓ１４０６）。ここで、ＭＦＰ１００は、Ｓ１４０３にて解釈したベンダーコマンドのレスポンス情報をＭＴＯＭ（Message Transmission Optimization Mechanism）に組み込んで送信する（Ｓ１４０７）。これは、すべてのベンダーコマンドの応答を、Ｓ１４０７で共通に１つのメッセージで返信することにより、スキャンシーケンスを統一することができ、ＭＦＰ１００とＰＣ２００の開発負荷を抑えることができるからである。また、画像取得要求コマンド・画像取得応答コマンドを使用することで画像データのようにデータサイズが大きくなった場合でも、パフォーマンスが低下する懸念がなくなる。
【０１０５】
そして、周辺機器メーカー独自のコマンドシーケンスに応じて、設定系のコマンドから画像データ転送までのすべてのコマンド送受信をＳ１４０３〜Ｓ１４０７の繰り返しで実現する。
【０１０６】
ここで、図１４で説明したスキャンシーケンスは、実施形態１、実施形態２、実施形態３のＴＷＡＩＮドライバからのスキャンシーケンスに置き換えて適用することも可能である。
【０１０７】
＜実施形態６＞
上記実施形態において、スキャンデータは、ＪＰＥＧ形式に限定する必要はなく、ＢＭＰ形式やＲＡＷ形式等様々なファイルフォーマットに対応した画像データであってもよい。
【０１０８】
上記実施形態で説明したように、ＷＳＤサービスを実現する所定の通信プロトコルは、その通信プロトコルに準拠するコマンド群として、スキャン要求コマンド（CreateScanJob Request）、スキャン応答コマンド（CreateScanJob Response）、画像取得要求コマンド（RetrieveImage Request）、画像取得応答コマンド（RetrieveImage Response）等の第１のコマンドを有する。
【０１０９】
ここで、第１のコマンドでは、必要に応じて、ベンダー（周辺機器メーカー）独自のコマンド（第２のコマンド）、つまり、所定の通信プロトコルに準拠していないコマンドを内包させることができる。ここで、第２のコマンドとは、実施形態１及び３におけるベンダーコマンド、実施形態２におけるＴＷＡＩＮドライバからのスキャンであることを明示的に設定するためのカスタムフラグ等がある。
【０１１０】
そして、上記実施形態では、この第１のコマンドと第２のコマンドの受信内容（受信する順番、包含の有無）に応じて、使用すべき画像読取シーケンス（スキャンシーケンス）として、所定の通信プロトコルに準拠するコマンドに基づく第１の画像読取シーケンス、所定の通信プロトコルに準拠していないコマンドに基づく第２の画像読取シーケンスのいずれかを選択する。また、ＡＰＩはＴＷＡＩＮ、ＷＩＡ以外のものとしてもよい。
【０１１１】
尚、以上の実施形態の処理は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。このとき、１つのコンピュータで処理させてもよいし、複数のコンピュータを連携させながら処理させてもよい。また、この処理の一部または全部をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェアで実現させてもよい。
【図１】
2015115900.tif 000003
【図２】
2015115900.tif 000004
【図３】
2015115900.tif 000005
【図４】
2015115900.tif 000006
【図５】
2015115900.tif 000007
【図６】
2015115900.tif 000008
【図７】
2015115900.tif 000009
【図８】
2015115900.tif 000010
【図９】
2015115900.tif 000011
【図１０】
2015115900.tif 000012
【図１１】
2015115900.tif 000013
【図１２】
2015115900.tif 000014
【図１３】
2015115900.tif 000015
【図１４】
2015115900.tif 000016