(57)【要約】      （修正有）【課題】２つの同期しないドライバが同一のハードウェア及びソフトウェアリソースにアクセスするため、スキャンシステムが徐々に不安定になっていく可能性がある。【解決手段】ＷＩＡサービスを介してＷＩＡドライバと通信することによりＴＷＡＩＮアプリケーションの代わりに動作するために拡張モジュールが生成される。データ構造は、ＷＩＡサービスのカスタムプロパティ機構を介して拡張モジュールからＷＩＡドライバに送信される。スキャナに対する命令データを含むバイナリデータファイルの場所は、データ構造に含まれる場所に従ってＷＩＡドライバにより特定される。命令データはスキャナに送信され、スキャナは命令データを処理し且つＷＩＡドライバに結果を返す。ＷＩＡドライバは、新しいバイナリデータファイルに結果を書き込む。データ構造は更新され且つ拡張モジュールに送信され、新しいバイナリデータファイルの場所が特定される。【選択図】図５
2011055479.tif 000002
【特許請求の範囲】
【請求項１】
スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間で通信する方法であって、
ＷＩＡサービスを介して前記ＷＩＡドライバと通信するために前記ＴＷＡＩＮアプリケーションの代わりに動作する拡張モジュールを生成するステップと、
前記ＷＩＡサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記ＷＩＡドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するステップと、
前記データ構造に含まれる前記場所に従って前記ＷＩＡドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得するステップと、
前記スキャナが前記命令データを処理し且つその結果を前記ＷＩＡドライバに送信し、前記ＷＩＡドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記ＷＩＡドライバから前記スキャナに前記命令データを送信するステップと、
前記ＷＩＡサービスの前記カスタムプロパティ機構を介して前記ＷＩＡドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信するステップと、
前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得するステップと、
前記ＴＷＡＩＮアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理するステップとを有することを特徴とする方法。
【請求項２】
前記拡張モジュールはＷＩＡユーザインタフェース拡張モジュールであり、前記処理は前記ＴＷＡＩＮアプリケーションの代わりに前記取得した情報を表示することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記命令データは前記スキャナの機能に対する要求に対応し、前記スキャナは機能情報を前記ＷＩＡドライバに送信し返し、前記ＷＩＡユーザインタフェース拡張モジュールは前記ＴＷＡＩＮアプリケーションの代わりにユーザインタフェースを表示することを特徴とする請求項２に記載の方法。
【請求項４】
前記拡張モジュールは他社のＴＷＡＩＮデータソースであり、前記表示された情報の処理は前記ＴＷＡＩＮアプリケーションに前記取得したデータを送信することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記命令データは前記スキャナからの画像データに対する要求に対応し、前記スキャナは前記ＷＩＡドライバに画像データを送信し返し、前記画像データは前記他社のＴＷＡＩＮデータソースにより取得され且つ前記ＴＷＡＩＮアプリケーションに転送されることを特徴とする請求項４に記載の方法。
【請求項６】
画像全体の画像データは、前記画像データが前記ＴＷＡＩＮアプリケーションに転送される前に前記他社のＴＷＡＩＮデータソースにより取得されることを特徴とする請求項５に記載の方法。
【請求項７】
前記画像全体の前記画像データが前記新しいバイナリデータファイルに格納されると、前記ＷＩＡドライバは前記ＴＷＡＩＮアプリケーションに通知を送信することを特徴とする請求項６に記載の方法。
【請求項８】
前記バイナリデータファイル及び前記新しいバイナリデータファイルの場所は、オペレーティングシステムのインストール領域において特定されることを特徴とする請求項１に記載の方法。
【請求項９】
前記データ構造は、前記ＷＩＡドライバに対するコマンドを更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ＷＩＡドライバは、前記ＷＩＡサービスによりロードされるミニドライバであることを特徴とする請求項１に記載の方法。
【請求項１１】
コンピュータ実行可能処理ステップを格納するように構成されるコンピュータ可読メモリと、
前記メモリに格納される前記コンピュータ実行可能処理ステップを実行するように構成されるプロセッサとを有し、
前記メモリに格納される前記処理ステップは、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信をプロセッサに提供させ、
ＷＩＡサービスを介して前記ＷＩＡドライバと通信するために前記ＴＷＡＩＮアプリケーションの代わりに動作する拡張モジュールを生成し、
前記ＷＩＡサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記ＷＩＡドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信し、
前記データ構造に含まれる前記場所に従って前記ＷＩＡドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得し、
前記スキャナが前記命令データを処理し且つその結果を前記ＷＩＡドライバに送信し、前記ＷＩＡドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記ＷＩＡドライバから前記スキャナに前記命令データを送信し、
前記ＷＩＡサービスの前記カスタムプロパティ機構を介して前記ＷＩＡドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信し、
前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得し、
前記ＴＷＡＩＮアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理する、ステップを含むことを特徴とする通信装置。
【請求項１２】
前記拡張モジュールはＷＩＡユーザインタフェース拡張モジュールであり、前記処理は前記ＴＷＡＩＮアプリケーションの代わりに前記取得した情報を表示することを含むことを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記命令データは前記スキャナの機能に対する要求に対応し、前記スキャナは機能情報を前記ＷＩＡドライバに送信し返し、前記ＷＩＡユーザインタフェース拡張モジュールは前記ＴＷＡＩＮアプリケーションの代わりにユーザインタフェースを表示することを特徴とする請求項１２に記載の通信装置。
【請求項１４】
前記拡張モジュールは他社のＴＷＡＩＮデータソースであり、前記処理は前記ＴＷＡＩＮアプリケーションに前記取得したデータを送信することを含むことを特徴とする請求項１１に記載の通信装置。
【請求項１５】
前記命令データは前記スキャナからの画像データに対する要求に対応し、前記スキャナは前記ＷＩＡドライバに画像データを送信し返し、前記画像データは前記他社のＴＷＡＩＮデータソースにより取得され且つ前記ＴＷＡＩＮアプリケーションに転送されることを特徴とする請求項１４に記載の通信装置。
【請求項１６】
画像全体の画像データは、前記画像データが前記ＴＷＡＩＮアプリケーションに転送される前に前記他社のＴＷＡＩＮデータソースにより取得されることを特徴とする請求項１５に記載の通信装置。
【請求項１７】
前記画像全体の前記画像データが前記新しいバイナリデータファイルに格納されると、前記ＷＩＡドライバは前記ＴＷＡＩＮアプリケーションに通知を送信することを特徴とする請求項１６に記載の通信装置。
【請求項１８】
前記バイナリデータファイル及び前記新しいバイナリデータファイルの場所は、オペレーティングシステムのインストール領域において特定されることを特徴とする請求項１１に記載の通信装置。
【請求項１９】
前記データ構造は、前記ＷＩＡドライバに対するコマンドを更に含むことを特徴とする請求項１１に記載の通信装置。
【請求項２０】
前記ＷＩＡドライバは、前記ＷＩＡサービスによりロードされるミニドライバであることを特徴とする請求項１１に記載の通信装置。
【請求項２１】
スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信を提供する通信モジュールであって、
ＷＩＡサービスを介して前記ＷＩＡドライバと通信するために前記ＴＷＡＩＮアプリケーションの代わりに動作するように構成され、前記ＷＩＡサービスのカスタムプロパティ機構を介して前記ＷＩＡドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するように構成される拡張モジュールであり、受信した場所に従って新しいバイナリデータファイルの場所を特定し且つ前記ＴＷＡＩＮアプリケーションの代わりに取得した情報を処理する拡張モジュールと、
前記データ構造に含まれる前記場所に従って前記バイナリデータファイルの場所を特定し、前記命令データを取得し、且つ前記命令データを処理し且つ前記ＷＩＡドライバに結果を送信する前記スキャナに前記命令データを送信するように構成される前記ＷＩＡドライバであり、新しいバイナリデータファイルに前記結果を書き込み、前記新しいバイナリデータファイルの前記場所により前記データ構造を更新し、前記ＷＩＡサービスの前記カスタムプロパティ機構を介して前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信する前記ＷＩＡドライバとを有することを特徴とする通信モジュール。
【請求項２２】
スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間で通信する方法をコンピュータに実行させるためのコンピュータ実行可能処理ステップを格納するコンピュータ読み出し可能な記憶媒体であって、前記方法は、
ＷＩＡサービスを介して前記ＷＩＡドライバと通信するために前記ＴＷＡＩＮアプリケーションの代わりに動作する拡張モジュールを生成するステップと、
前記ＷＩＡサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記ＷＩＡドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するステップと、
前記データ構造に含まれる前記場所に従って前記ＷＩＡドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得するステップと、
前記スキャナが前記命令データを処理し且つその結果を前記ＷＩＡドライバに送信し、前記ＷＩＡドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記ＷＩＡドライバから前記スキャナに前記命令データを送信するステップと、
前記ＷＩＡサービスの前記カスタムプロパティ機構を介して前記ＷＩＡドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信するステップと、
前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得するステップと、
前記ＴＷＡＩＮアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理するステップとを有することを特徴とするコンピュータ読み出し可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナの通信モデルに関し、特に、スキャナアプリケーションとスキャナハードウェアとの間の通信を提供するスキャナドライバに対するＷＩＡ及びＴＷＡＩＮプロトコルに関する。
【背景技術】
【０００２】
スキャナ及びスキャナドライバの分野において、ＴＷＡＩＮプロトコルは事実上の標準になったため、スキャンアプリケーションがＴＷＡＩＮプロトコルのみをサポートすることは一般的である。ＴＷＡＩＮプロトコルは、標準ソフトウェアプロトコルであり、アプリケーションとスキャナハードウェアとの間の通信を統制するアプリケーションプログラムインタフェース（ＡＰＩ）である。しかし、スキャナメーカーがＴＷＡＩＮよりはるかに非一般的なMicrosoft（登録商標）のプロトコル、即ちMicrosoft（登録商標）のWindows（登録商標） Image Acquisition（ＷＩＡ）プロトコルをサポートするドライバをハードウェアと共に提供しない限り、スキャナメーカーはハードウェアにMicrosoft（登録商標）のロゴを入れれない。
【０００３】
その結果、通常、スキャナメーカーは、２つの別個のドライバ、即ち殆どの顧客のアプリケーションのためのＴＷＡＩＮドライバ及びハードウェアがMicrosoft（登録商標）のロゴを表示できるようにするためのＷＩＡドライバを提供する。このように、スキャナメーカーはハードウェア上にMicrosoft（登録商標）のロゴを提示することができるが、その一方で依然としてＴＷＡＩＮアプリケーションをサポートする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２つの別個の十分に発達したドライバを使用することの１つの問題は、２つの別個の同期しないドライバが同一のハードウェア及びソフトウェアリソースに別個にアクセスするため、スキャンシステムが徐々に不安定になっていく可能性があることである。更に、２つのドライバが実質的に同一のジョブを実行していても、一般に双方のドライバに対する開発が必要である。Microsoft（登録商標）がＷＩＡドライバをＴＷＡＩＮアプリケーションに対するＴＷＡＩＮドライバとするＴＷＡＩＮラッパーを提供するが、ＴＷＡＩＮラッパーは原始的すぎるため効果的でも効率的でもない。
【課題を解決するための手段】
【０００５】
上述の状況は、ＷＩＡサービスのＷＩＡカスタムプロパティ機構を介してＴＷＡＩＮアプリケーションの代わりにＷＩＡドライバにデータ構造を渡すことにより対処される。ここで、データ構造は、スキャナに対する命令データ及びスキャナからの結果データを含むバイナリデータファイルの場所を示す。
【０００６】
従って、本明細書で説明する一実施形態において、通信はスキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間で提供される。ＷＩＡサービスを介してＷＩＡドライバと通信するために、ＴＷＡＩＮアプリケーションの代わりに動作する拡張モジュールが生成される。データ構造は、ＷＩＡサービスのカスタムプロパティ機構を介して拡張モジュールからＷＩＡドライバに送信され、データ構造はスキャナに対する命令データを含むバイナリデータファイルの場所を含む。バイナリデータファイルの場所は、データ構造に含まれる場所に従ってＷＩＡドライバにより特定され、命令データが取得される。命令データは、ＷＩＡドライバからスキャナに送信され、スキャナは、命令データを処理し且つ結果をＷＩＡドライバに送信する。ＷＩＡドライバは、命令データに従って新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所でデータ構造を更新する。新しいバイナリデータファイルの場所を含むデータ構造は、ＷＩＡサービスのカスタムプロパティ機構を介してＷＩＡドライバから拡張モジュールに送信される。新しいバイナリデータファイルの場所は、データ構造に含まれる場所に従って拡張モジュールにより特定され、情報が取得される。取得された情報は、ＴＷＡＩＮアプリケーションの代わりに拡張モジュールにより処理される。
【０００７】
データ構造がＷＩＡサービスのＷＩＡカスタムプロパティ機構を介してＴＷＡＩＮアプリケーションの代わりにＷＩＡドライバに渡されるこの構成により、一般に単一の組合せドライバを有するスキャナハードウェアへの最大限のアクセス権をＴＷＡＩＮアプリケーションに提供できる。従って、複数のドライバが同一のリソースにアクセスすることにより起こる不安定さは低減され、単一のドライバに対してのみ開発が必要になる。
【０００８】
この簡単な概要は、本発明の本質を容易に理解できるように提供された。以下の詳細な説明及び添付の図面を参照することにより、更に完全に理解される。
【図面の簡単な説明】
【０００９】
【図１】本発明の態様が実現される環境の一実施形態を示す図である。
【図２】図１に示すホストコンピュータの内部アーキテクチャを詳細に示すブロック図である。
【図３】図１に示すスキャナの内部アーキテクチャを示すブロック図である。
【図４】スキャナと通信するためのモジュールの例を示す概略図である。
【図５】スキャナと通信する処理の一例を示すフローチャートである。
【図６】通信モジュール及びスキャナを示し、拡張モジュールとＷＩＡドライバとスキャナとの間の通信を示す概略図である。
【発明を実施するための形態】
【００１０】
図１は、本発明の態様が実現される環境の一例を示す。一般にコンピュータ１００は、Microsoft（登録商標）のWindows（登録商標）又はApple（登録商標）のMac OS（登録商標）又はLINUX等のオペレーティングシステムを有するプログラマブル汎用パーソナルコンピュータを含む。これは、特定の機能を実行し且つそれらの機能を実行する時に実質的には専用コンピュータになるように以下に説明するようにプログラムされる。図１に示すように、コンピュータ１００は、表示画面１０１の最上部にスキャナオプションに対するユーザインタフェース１０２を表示し、画面の最下部に画像１０３を表示する。スキャナ２００は、コンピュータ１００に接続され、印刷された画像、印刷されたテキスト、手書きされたもの又は対象物を光学走査し且つそれをデジタル画像に変換するために使用される。
【００１１】
ホストコンピュータ１００は、固定ディスク４５等のコンピュータ可読記憶媒体を更に含む。固定ディスク４５は、以下に更に完全に説明するように、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信方法をコンピュータに実行させるためのコンピュータ実行可能処理ステップ又はコンピュータ実行可能プログラム等のコンピュータ可読情報を格納するように構成される。
【００１２】
図１はコンピュータを示すが、本開示の態様を実現するための演算機器は種々の実施形態において実現可能である。例えば画像処理環境において、演算機器はデジタルカメラ又はデジタルビデオレコーダに含まれてもよい。医用画像処理環境において、演算機器はＣＴスキャナ又はＸ線撮影装置であってもよい。アプリケーション及び環境に従って、他の実施形態が可能である。
【００１３】
図１において、スキャナ２００はデスクトップ（又はフラットベッド）スキャナとして示される。スキャナにおいて、原稿は走査のためにガラスウィンドウの上に載置される。しかし、スキャナ２００は他の撮像装置として実現可能である。例えばスキャナ２００は、ハンドヘルドスキャナとして具体化されてもよい。この場合、装置は手に持って移動できる。スキャナ２００は、大判原稿のための機械的駆動スキャナとして具体化されてもよい。この場合、フラットベッド設計は実用的でない。
【００１４】
図２は、図１に示すコンピュータ１００の内部アーキテクチャを詳細に示すブロック図である。図２に示すように、ホストコンピュータ１００は、コンピュータバス１１５とインタフェースする中央処理装置（ＣＰＵ）１１０を含む。また、固定ディスク４５（例えば、ハードディスク又は他の不揮発性記憶媒体）、ネットワークインタフェース１１１、主ランタイムトランジェントメモリとして使用するランダムアクセスメモリ（ＲＡＭ）１１６、読み出し専用メモリ（ＲＯＭ）１１７、表示画面１０１に対するディスプレイインタフェース１１８、キーボードインタフェース１１２、マウスインタフェース１１３及びスキャナインタフェース１１４がコンピュータバス１１５とインタフェースする。スキャナインタフェース１１４は、汎用バス、小型計算機システムインタフェース（ＳＣＳＩ）、ＵＳＢ接続、ＦｉｒｅＷｉｒｅ接続又は別の接続等の接続を介してスキャナ２００とインタフェースし、有線又は無線ネットワークを介してデータを送信するように構成されてもよい。
【００１５】
ＲＡＭ１１６は、オペレーティングシステム、アプリケーションプログラム、通信モジュール及びデバイスドライバ等のソフトウェアプログラム中の命令の実行中にＲＡＭ１１６に格納された情報をＣＰＵ１１０に提供するためにコンピュータバス１１５とインタフェースする。更に詳細には、ＣＰＵ１１０は、最初に固定ディスク４５又は別の記憶装置からＲＡＭ１１６の領域にコンピュータ実行可能処理ステップをロードする。ＣＰＵ１１０は、ロードされたコンピュータ実行可能処理ステップを実行するためにＲＡＭ１１６から格納された処理ステップを実行できる。コンピュータ実行可能ソフトウェアプログラムが機能又は較正情報、カラー画像、あるいは他の情報等のデータにアクセスし且つ／又は変更できる程度まで、そのデータがそのようなソフトウェアプログラムの実行中にＣＰＵ１１０によりアクセス可能であるように、そのデータはＲＡＭ１１６に格納される。
【００１６】
図２に示すように、固定ディスク４５は、オペレーティングシステム１２０、並びにワードプロセシングプログラム又はグラフィック画像管理プログラム等のアプリケーションプログラム１２１に対するコンピュータ実行可能処理ステップを含む。固定ディスク４５は、入力デバイスドライバ１２２、出力デバイスドライバ１２３及び他のデバイスドライバ１２４等のデバイスへのソフトウェアインタフェースのためのデバイスドライバに対するコンピュータ実行可能処理ステップを更に含む。項目ツリー１２６は、スキャナ２００の較正及び／又は機能情報を含み、これはスキャナ２００の代わりにユーザインタフェースを生成するために使用される。走査済画像ファイルを含む画像ファイル１２７及び他のファイル１２８は、出力デバイスに出力するため及びアプリケーションプログラムにより操作するために入手可能である。
【００１７】
通信モジュール１２５は、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信を提供するためのコンピュータ実行可能処理ステップを含む。図６に示すように、一般に通信モジュール１２５は、拡張モジュール（ＷＩＡユーザインタフェース拡張モジュール又は他社のＴＷＡＩＮデータソース等）及びＷＩＡドライバを含む。
【００１８】
更に詳細には、通信モジュール１２５は、ＷＩＡサービスを介してＷＩＡドライバと通信するためにＴＷＡＩＮアプリケーションの代わりに動作するように構成され且つＷＩＡサービスのカスタムプロパティ機構を介してＷＩＡドライバにデータ構造を送信するように構成される拡張モジュールを含む。データ構造は、スキャナに対する命令データを含むバイナリデータファイルの場所を含む。次に、拡張モジュールは、受信した場所に従って新しいバイナリデータファイルの場所を特定し、ＴＷＡＩＮアプリケーションの代わりに取得した情報を処理する。一般に通信モジュール１２５は、データ構造に含まれる場所に従ってバイナリデータファイルの場所を特定し、命令データを取得し且つスキャナに命令データを送信するように構成されるＷＩＡドライバを更に含む。尚、スキャナは、命令データを処理し且つ結果をＷＩＡドライバに送信し返す。ＷＩＡドライバは、新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所でデータ構造を更新する。ＷＩＡドライバは、新しいバイナリデータファイルの場所を含むデータ構造をＷＩＡサービスのカスタムプロパティ機構を介して拡張モジュールに送信する。これらの処理については、以下に更に詳細に説明する。
【００１９】
通信モジュール１２５に対するコンピュータ実行可能処理ステップ１２５は、オペレーティングシステム１２０の一部として、プリンタドライバ等の出力デバイスドライバの一部として又はスタンドアロンアプリケーションプログラムとして構成されてもよい。それらの処理ステップは、オペレーティングシステム、デバイスドライバ又はアプリケーションプログラムに対するダイナミックリンクライブラリ（ＤＬＬ）又はプラグインとして構成されてもよい。例えば実施形態に係る通信モジュール１２５は、スキャナ等の入力デバイス又はプリンタ等の出力デバイスのファームウェアで具体化されてもよく、あるいは汎用コンピュータ用のスタンドアロン通信アプリケーションで提供されてもよい。本明細書で説明する一実施形態において、通信モジュール１２５は、ホストコンピュータ１００のオペレーティングシステムに直接組み込まれてもよい。本発明はそれらの実施形態に限定されず、開示される通信モジュールは他の環境で使用されてもよいことが理解される。
【００２０】
図３は、スキャナ２００のアーキテクチャを示すブロック図である。簡潔にするために、本明細書においては、スキャナ２００の基本的な構成要素のみを示し、スキャナ２００の構成要素の詳細な説明は行わない。
【００２１】
図３において、スキャナ２００は、画像を取り込む読み取りセンサ２０１及びセンサ２０１からの画像信号を処理する画像処理回路２０２を含む。メモリ２０３は、スキャナを制御するためにＣＰＵ２０４により実行されるプログラムを格納する。インタフェース２０５は、コンピュータ１００等の接続装置からコマンドを受信し、ＣＰＵ２０４にコマンドを送信する。インタフェース２０５は、コンピュータ１００等の接続装置に結果として得られるデータを更に出力する。インタフェース２０５は、例えばパラレルポート、汎用バス、小型計算機システムインタフェース（ＳＣＳＩ）、ＵＳＢ接続、ＦｉｒｅＷｉｒｅ接続又は別の接続を含むことができ、有線又は無線ネットワークを介してデータを送信するように構成されてもよい。
【００２２】
上述したように、殆どのコンピュータは、スキャナと通信するために別個の十分に発達したＴＷＡＩＮ及びＷＩＡドライバを含む。それらのドライバは、システムを不安定にし且つリソースを浪費する。
【００２３】
従って、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信を提供する処理について、図４〜図６を参照して説明する。
【００２４】
図４は、通信処理において使用されてもよい種々のモジュールの例を示す。各モジュールは、コンピュータ実行可能ソフトウェアコード又はＣＰＵ１１０等のプロセッサにより実行可能な処理ステップであり、固定ディスク４５等のコンピュータ可読記憶媒体に格納される。図４に示すモジュールより多くのモジュール又は少ないモジュールが使用されてもよく、他のアーキテクチャが可能である。一部のモジュールはMicrosoft（例えば、ＷＩＡ）モジュールであり、一部のモジュールは第三者モジュールであり、一部のモジュールはソフトウェアメーカの独自のモジュールである。
【００２５】
ＴＷＡＩＮＡｐｐ４０１は、コンピュータ１００上で実行するＴＷＡＩＮアプリケーションに対応する。例えばＴＷＡＩＮＡｐｐ４０１は、Adobe（登録商標）のAcrobat等のＴＷＡＩＮインタフェースを介して取得される画像の挿入を許可するオーサリングアプリケーションであってもよい。
【００２６】
ＴＷＡＩＮ ＤＳＭ４０２は、ＴＷＡＩＮデータソースマネージャである。ＴＷＡＩＮ ＤＳＭ４０２の主な役割は、種々の装置に対してＴＷＡＩＮコマンドを変換するＴＷＡＩＮデータソースとＴＷＡＩＮＡｐｐ４０１との間の接続を確立及び管理することである。一般に、アプリケーションがＴＷＡＩＮデータソースと通信する必要がある場合、アプリケーションは正確にアドレス指定されたメッセージによりＴＷＡＩＮ ＤＳＭ４０２を呼び出す。一般にＴＷＡＩＮ ＤＳＭ４０２は、アプリケーション及び／又はユーザが所望のソースを選択することを可能にし、選択したソースをロード及びアンロードし、特定のアプリケーションからの全ての呼び出しが適切なソースに正確にルーティングされることを確認する。
【００２７】
しかし、本実施形態によると、ＴＷＡＩＮ ＤＳＭ４０２は他社のＴＷＡＩＮデータソース４０３（以下においては、「他社のＴＷＡＩＮ ＤＳ４０３」）に結合される。他社のＴＷＡＩＮ ＤＳ４０３は、ＴＷＡＩＮＡｐｐ４０１の代わりにＷＩＡサービス４０６と通信する拡張モジュールのうちの１つである。以下に更に完全に説明するように、他社のＴＷＡＩＮ ＤＳ４０３は、ＷＩＡドライバ４０７にデータ構造を渡すことによりスキャナ２００に対する命令データをＷＩＡドライバ４０７に送信し、その後、要求の結果を格納する新しいバイナリデータファイルの場所を含むデータ構造を受信する。ＴＷＡＩＮＡｐｐ４０１の代わりに、他社のＴＷＡＩＮ ＤＳ４０３は取得した情報を処理する。その点に関して、他社のＴＷＡＩＮ ＤＳ４０３は、ＴＷＡＩＮＡｐｐ４０１及びＴＷＡＩＮ ＤＳＭ４０２の代わりに多くのコマンドを実行できる。例えば、現在のファイル名を返したり、走査済画像を画像ファイルに書き込んだりできる。
【００２８】
ＷＩＡユーザインタフェース拡張モジュール４０４（以下においては、「ＷＩＡ ＵＩ拡張モジュール４０４」）は、ＷＩＡサービス４０６のカスタムプロパティ機構を介してＷＩＡドライバ４０７と通信できる別の拡張モジュールである。ＷＩＡ ＵＩ拡張モジュール４０４は、ＷＩＡドライバ４０７にデータ構造を渡すことによりスキャナ２００に対する命令データをＷＩＡドライバ４０７に送信し、その後、要求の結果を格納する新しいバイナリデータファイルの場所を含むデータ構造を受信する。ＷＩＡ ＵＩ拡張モジュール４０４は、ＴＷＡＩＮＡｐｐ４０１の代わりに、データ構造に含まれる場所に従って新しいバイナリデータファイルの場所を特定し且つ結果を表示する。例えばＷＩＡ ＵＩ拡張モジュール４０４は、固定ディスク４５上の項目ツリー１２６に書き込むためにスキャナ２００から取得された機能及び／又は較正データを使用でき、スキャナ２００に対してロバスト性を有する拡張ユーザインタフェースを構成するために項目ツリー１２６からの情報を使用できる。
【００２９】
ＷＩＡＡｐｐ４０５は、例えば純粋にＷＩＡアプリケーションに対応するか、又はＷＩＡプロトコルを介して通信する他の非ＴＷＡＩＮアプリケーションに対応する。
【００３０】
ＷＩＡサービス４０６は、処理境界を越えて他社のＴＷＡＩＮ ＤＳ４０３及びＷＩＡ拡張モジュール４０４と通信する。ＷＩＡサービス４０６は、アプリケーションがスキャナと通信することを可能にするためにＷＩＡプロトコルを備えるローカルで実行するサービスである。尚、ＷＩＡサービス４０６は、ユーザが作成したパラメータをスキャナに渡せるようにするカスタムプロパティ機構を含む。以下に説明するように、カスタムプロパティ機構は、ＷＩＡドライバ４０７にデータ構造を渡すために使用され、データ構造は、カスタムプロパティ機構を使用してＷＩＡドライバ４０７から受信される。
【００３１】
ＷＩＡドライバ４０７は、ＴＷＡＩＮＡｐｐ４０１の代わりに命令をスキャナ２００に渡し且つスキャナ２００からの結果を返すために他社のＴＷＡＩＮ ＤＳ４０３又はＷＩＡ ＵＩ拡張モジュール４０４と通信する。特にＷＩＡドライバ４０７は、他社のＴＷＡＩＮ ＤＳ４０３又はＷＩＡ ＵＩ拡張モジュール４０４からデータ構造を受信し、データ構造に含まれる場所に従ってスキャナ２００に対する命令データを含むバイナリデータファイルの場所を特定し、スキャナ２００に命令データを送信し、スキャナ２００からの結果を新しいバイナリデータファイルに書き込み、新しいバイナリデータファイルの場所によりデータ構造を更新し、他社のＴＷＡＩＮ ＤＳ４０３又はＷＩＡ ＵＩ拡張モジュール４０４にデータ構造を送信し返す。一実施形態において、ＷＩＡドライバ４０７はＷＩＡサービス４０６によりロードされるＷＩＡミニドライバである。
【００３２】
図４において、ＷＩＡドライバサービスライブラリ４０８を更に示す。ＷＩＡドライバサービスライブラリ４０８は、ＷＩＡドライバ４０７にヘルパー機能を提供するシステムにより供給された構成要素である。
【００３３】
接続モジュール４０９は、接続層４１０を介してＷＩＡドライバ４０７とスキャナ２００との間の通信を提供する。接続層４１０は、例えばＴＣＰ／ＩＰ層、ＵＳＢ物理層又はＢｌｕｅｔｏｏｔｈ物理層を含むことができる。
【００３４】
図５は、スキャナと通信する処理の一例を示すフローチャートである。
【００３５】
簡単に説明すると、図５において、通信は、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間で提供される。ＷＩＡサービスを介してＷＩＡドライバと通信するために、ＴＷＡＩＮアプリケーションの代わりに動作する拡張モジュールが生成される。データ構造は、ＷＩＡサービスのカスタムプロパティ機構を介して拡張モジュールからＷＩＡドライバに送信され、データ構造は、スキャナに対する命令データを含むバイナリデータファイルの場所を含む。バイナリデータファイルの場所は、データ構造に含まれる場所に従ってＷＩＡドライバにより特定され、命令データが取得される。命令データは、ＷＩＡドライバからスキャナに送信され、スキャナは、命令データを処理し且つその結果をＷＩＡドライバに送信し返す。ＷＩＡドライバは、命令データに従って新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所によりデータ構造を更新する。新しいバイナリデータファイルの場所を含むデータ構造は、ＷＩＡサービスのカスタムプロパティ機構を介してＷＩＡドライバから拡張モジュールに送信される。新しいバイナリデータファイルの場所はデータ構造に含まれる場所に従って拡張モジュールにより特定され、情報が取得される。取得された情報は、ＴＷＡＩＮアプリケーションの代わりに拡張モジュールにより処理される。
【００３６】
更に詳細には、ステップ５０１において、コンピュータ１００はＴＷＡＩＮＡｐｐ４０１の代わりに動作するような拡張モジュールを生成する。拡張モジュールは、ＴＷＡＩＮＡｐｐ４０１の代わりに命令を送信し、ＴＷＡＩＮＡｐｐ４０１の代わりにスキャナ２００からの結果を処理する。
【００３７】
この点に関して、ＴＷＡＩＮＡｐｐ４０１の代わりに動作する特定の種類の拡張モジュールは、ＴＷＡＩＮＡｐｐ４０１からの要求に依存する。特にＴＷＡＩＮＡｐｐ４０１からの要求又はコマンドがユーザインタフェースを表示することである場合、ＷＩＡ ＵＩ拡張モジュール４０４は、スキャナ２００から機能を要求するためにＴＷＡＩＮＡｐｐ４０１の代わりに通信してもよい。機能は、固定ディスク４５上の項目ツリー１２６に書き込まれ、その後、ＴＷＡＩＮＡｐｐ４０１の代わりに拡張ユーザインタフェースを表示するために使用されてもよい。一方、ＴＷＡＩＮＡｐｐ４０１がスキャナ２００から画像データを要求する場合、他社のＴＷＡＩＮ ＤＳ４０３がＴＷＡＩＮＡｐｐ４０１の代わりに通信し且つ結果として得られる画像データをＴＷＡＩＮＡｐｐ４０１に送信してもよい。
【００３８】
場合によっては、他社のＴＷＡＩＮ ＤＳ４０３及びＷＩＡ ＵＩ拡張モジュール４０４は全体の機能性を実行するために協働するが、他社のＴＷＡＩＮ ＤＳ４０３及びＷＩＡ ＵＩ拡張モジュール４０４のうちの一方のみがＷＩＡドライバとの実際の通信を実行してもよい（以下に説明するように）。例えば、他社のＴＷＡＩＮ ＤＳ４０３は、ユーザインタフェースに対する要求を最初に受信してもよいが、残りの処理を実行するためにＷＩＡ ＵＩ拡張モジュール４０４にその要求を単純に中継してもよい。
【００３９】
ステップ５０２において、データ構造はＷＩＡサービス４０６のカスタムプロパティ機構を介して拡張モジュールからＷＩＡドライバ４０７に送信される。一実施形態において、データ構造は、ＷＩＡドライバ４０７により制御されるダイアログボックスオブジェクトを介して受信されてもよい。
【００４０】
カスタムプロパティ機構は、ＷＩＡプロトコルでデータを送信する特定の方法である。呼び出し側は、通常のＷＩＡプロパティのようにカスタムプロパティを操作できる。従って、ＷＩＡカスタムプロパティ機構により、ユーザが生成したパラメータがＷＩＡドライバ４０７に渡される。更に、ＷＩＡサービス４０６は、カスタムプロパティの処理方法を理解しているため、変換は殆ど必要とされず且つ他の実装も要求されない。
【００４１】
拡張モジュールからＷＩＡドライバ４０７に送信されるデータ構造は、少なくとも３つの要素を含む。特にデータ構造は、少なくともコマンド名、予想されるデータの種類を示す要素及びバイナリデータファイルの場所を示す要素を含む。例えば、コマンドは「GetImageData」であってもよく、データタイプは.binであってもよく、場所は、例えば「c:\drivers\temp.bin」であるバイナリデータファイルの場所の名前を含む文字列であってもよい。
【００４２】
この点に関して、コマンド文字列は、その場所に与えられたファイルにアクセスし且つバイナリデータファイルに見つけられるデータにより特定の動作（スキャナ２００への送信等）を行うようにＷＩＡドライバ４０７に命令し、またスキャナ２００から受信された結果を使用して行うこと（１つ又は複数の新しいバイナリデータファイルに結果として得られるデータを書き込むこと等）をＷＩＡドライバ４０７に示す特定の種類のコマンド文字列である。
【００４３】
バイナリファイルは、バイナリ形式で符号化される任意の種類のデータを含んでもよいコンピュータファイルである。例えばバイナリデータファイルは、スキャナ２００に対する命令データ又はスキャナ２００からの結果のデータを格納してもよい。バイナリデータファイルの場所は、オペレーティングシステム１２０のインストール領域、あるいは過度のセキュリティ制限なしでＷＩＡドライバ４０７又は拡張モジュールにより容易にアクセスされるメモリの別の部分において特定されるべきである。各コマンドに対する命令データは、ＷＩＡドライバ４０７にデータ構造を送信する前に１つ又は複数のバイナリデータファイルに書き込まれてもよい。
【００４４】
ステップ５０３において、ＷＩＡドライバ４０７は、データ構造に含まれる場所に従ってバイナリデータファイルの場所を特定し、そのバイナリデータファイルに格納される命令データを取得する。バイナリデータファイル中の命令データの内容は、アプリケーション及び要求されたデータに依存する。従って、一例において、命令データは、較正データ又はスキャナ２００の機能に対する要求に対応可能である。別の例において、命令データは、スキャナ２００からの画像データに対する要求に対応可能である。
【００４５】
ステップ５０４において、ＷＩＡドライバ４０７はスキャナ２００に命令データを送信する。
【００４６】
ステップ５０５において、スキャナ２００は受信した命令データを処理し、結果をＷＩＡドライバ４０７に送信し返す。例えば命令データが較正データに対する要求に対応する場合、スキャナ２００はＷＩＡドライバ４０７に較正データを送信する。一方、命令データが画像データに対する要求に対応する場合、スキャナ２００はＷＩＡドライバ４０７に生画像データを送信する。
【００４７】
ステップ５０６において、ＷＩＡドライバ４０７はスキャナ２００から受信される結果を新しいバイナリデータファイルに書き込む。この点に関して、スキャナ２００からの結果を格納するために、複数の新しいバイナリデータファイルが使用されてもよい。例えば複数の画像がスキャナ２００により入力される場合、複数の新しいバイナリデータファイルに結果として得られる画像データを格納する必要がある。そのような場合、ＷＩＡドライバ４０７は、データ構造のファイル場所特定要素を介してそれら複数のデータファイルの全ての場所を指し示すポインタを返せる。ＷＩＡドライバ４０７は、拡張モジュールが結果の場所を特定できるように新しいバイナリデータファイルの場所によりデータ構造を更新する。
【００４８】
ステップ５０７において、ＷＩＡドライバ４０７は、カスタムプロパティ機構を介して拡張モジュールにデータ構造を送信し返す。この時点で、データ構造は、拡張モジュールがスキャナ２００からの結果の場所を特定できるように、新しいバイナリデータファイルの場所を含む。
【００４９】
ステップ５０８において、拡張モジュールは、データ構造に含まれる場所を使用して新しいバイナリデータファイルの場所を特定する。従って、拡張モジュールは、較正データ、画像データ又はスキャナ２００からの他の結果を取得できる。
【００５０】
ステップ５０９において、拡張モジュールは、ＴＷＡＩＮＡｐｐ４０１の代わりに新しいバイナリデータファイルから取得される情報を処理する。
【００５１】
拡張モジュールによる処理は、ＴＷＡＩＮＡｐｐ４０１の代わりに送信された命令データに依存する。例えば命令データがスキャナ２００の機能に対する要求に対応する場合、ＷＩＡ ＵＩ拡張モジュール４０４は、ＴＷＡＩＮＡｐｐ４０１の代わりに拡張ユーザインタフェースを表示するためにその情報を使用できる。この点に関して、ＷＩＡドライバ４０７がスキャナ２００の固有のＷＩＡプロトコルに従って機能を取得するため、ＷＩＡ ＵＩ拡張モジュール４０４はより高いロバスト性を有するユーザインタフェースを提供できる。更に、ＷＩＡ ＵＩ拡張モジュール４０４がＴＷＡＩＮＡｐｐ４０１の代わりにそのような情報を表示できるため、ＴＷＡＩＮＡｐｐ４０１の固有のユーザインタフェースは全く必要ない。
【００５２】
一実施形態において、較正及び／又は機能データは、ユーザがコンピュータ１００と対話する前にスキャナ２００から取得可能である。例えばＴＷＡＩＮＡｐｐ４０１は、スキャナ２００の開始時又は設置時に給紙装置又はスキャナフラットベッドの較正又は機能データのためにＷＩＡドライバ４０７をクエリできる。ユーザがＴＷＡＩＮＡｐｐ４０１にアクセスする時までに拡張ユーザインタフェースが生成され且つ容易に利用可能となるように、取得されたデータは固定ディスク４５上の項目ツリー１２６に書き込まれる。較正データは、ユーザが画像をインポートすることを要求する時に取得されてもよい。
【００５３】
逆に、ユーザは上述の通信処理を使用してパラメータを選択及び設定できてもよい。例えばＷＩＡ ＵＩ拡張モジュール４０４は、ユーザインタフェースからスキャナ機能のユーザ選択に対応する命令データを含むデータ構造を渡すことができ、ＷＩＡドライバ４０７により制御されるダイアログボックスは、スキャナ２００への送信用の命令又は選択をユーザから受信するために使用される。
【００５４】
別の例において、命令データがスキャナ２００からの画像データに対する要求に対応する場合、他社のＴＷＡＩＮ ＤＳ４０３は、拡張モジュールとして動作可能である。特に画像データは、他社のＴＷＡＩＮ ＤＳ４０３により取得され且つＴＷＡＩＮＡｐｐ４０１に転送される。更に、一般に画像データは、多くの画像取得方法より効率的に取得される。特にＷＩＡドライバ４０７は、画像全体の画像データが新しいバイナリデータファイルに格納されると、画像全体の画像データを取得し且つＴＷＡＩＮＡｐｐ４０１に通知を送信できる。従って、画像全体の画像データは、画像データがＴＷＡＩＮＡｐｐ４０１に転送される前に他社のＴＷＡＩＮ ＤＳ４０３により取得されてもよい。それに応じて、ＴＷＡＩＮＡｐｐ４０１が１つずつ画像データを取得する必要はなく、ユーザは単純に画像データを要求し、完全な画像は他社のＴＷＡＩＮ ＤＳ４０３から返される。当然、画像データは要望に応じてまとめて転送されてもよく又は分割して転送されてもよい。
【００５５】
図６は、他社のＴＷＡＩＮ ＤＳ４０３又はＷＩＡ ＵＩ拡張モジュール４０４（共に図示する）とＷＩＡドライバとスキャナとの間の通信を示す概略図である。他社のＴＷＡＩＮ ＤＳ４０３／ＷＩＡ ＵＩ拡張モジュール４０４及びＷＩＡドライバ４０７は、共に通信モジュール１２５を構成する。上述したように、通信モジュール１２５は、コンピュータ１００の固定ディスク４５に格納され、スキャナに対するＷＩＡドライバとＴＷＡＩＮアプリケーションとの間の通信を提供するコンピュータ実行可能処理ステップを含む。
【００５６】
図６に示すように、他社のＴＷＡＩＮ ＤＳ４０３／ＷＩＡ ＵＩ拡張モジュール４０４は、バイナリデータファイルの場所を含むデータ構造をカスタムプロパティ機構を介してＷＩＡドライバ４０７に渡し、この時点で新しいバイナリデータファイルの場所を含むデータ構造をＷＩＡドライバ４０７から受信する。ＷＩＡドライバ４０７は、命令データをスキャナ２００に渡し、スキャナ２００から結果を受信する。
【００５７】
上述の構成により、一般に単一の組合せドライバを有するスキャナハードウェアへの最大限のアクセス権をＴＷＡＩＮアプリケーションに提供できる。これにより、複数のドライバによりリソースにアクセスすることにより起こる不安定さは低減される。更に単一のドライバに対してのみ開発が必要になる。
【００５８】
本発明は、特定の典型的な実施形態に関する詳細な説明を提供した。添付の特許請求の範囲の範囲が上述の実施形態に限定されず、特許請求の範囲の範囲から逸脱せずに種々の変更及び変形が行われてもよいことが理解される。
【図１】
2011055479.tif 000003
【図２】
2011055479.tif 000004
【図３】
2011055479.tif 000005
【図４】
2011055479.tif 000006
【図５】
2011055479.tif 000007
【図６】
2011055479.tif 000008
【外国語明細書】
2011055479000001.pdf