説明

ユーザセッションからクライアントシステムへのトウェイン関数呼出しをリモーティングするためのシステムおよび方法

ユーザセッションの範囲内におけるトウェイン関数呼出しをクライアントシステムにリモーティングするメカニズムが開示される。サーバ上のトウェインアプリケーションによって行なわれたトウェイン関数呼出しをフックすることにより、トウェイン関数呼出しは、仮想接続を介してクライアントシステムにリモーティングされ得る。サーバベースのトウェインアプリケーションに対応するプロキシアプリケーションは、クライアントシステム上で作成される。プロキシアプリケーションは、サーバと通信し、トウェインフレームワークの残りに対して適切な関数呼出しを行なう。仮想接続を介して送信されたメッセージは、送信前にフィルタリングされ、それにより必要とされる通信トラフィックの量を制限する。仮想チャネル上の帯域幅を効率的に使用するために、マルチプレクサおよびデマルチプレクサが利用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の説明的な実施形態は、概ね画像データ処理に関し、より具体的には、サーバ上でホストされるユーザセッションから、トウェイン(Twain)準拠の画像収集デバイスと通信するクライアントシステムへの、アプリケーションのリモーティングに関する。
【背景技術】
【0002】
トウェインは、イメージングアプリケーションのための標準的なフレームワークである。アプリケーションは、トウェイン準拠のドキュメントスキャナ、デジタルカメラ、および画像データベースを制御するために、周知のAPIを呼び出す。トウェインデバイスとともに使用されるベンダー供給のハードウェアドライバは、インターフェースおよび能力の周知のセットに準拠する。トウェインアーキテクチャについての標準的なフレームワークは、ワシントン州RedmondのMicrosoft CorporationからのWORDなどのトウェインアプリケーション、または写真編集アプリケーションを含む。アークテクチャは、ベンダー供給のハードウェアドライバを制御するアプリケーションによって呼び出されるAPIを供給する構成要素であるデータソースマネジャー(DSM)をも含む。ワシントン州RedmondのMicrosoft CorporationからのWINDOWS(登録商標)オペレーティングシステムについて、データマネジャーは、WINDOWS(登録商標)とともに出荷されるDLL twain_32.dllにおいて見いだされる。構成要素は一般的であり、基礎を成す画像ハードウェアの知識を有しない。標準的なトウェインアーキテクチャにさらに含まれるものは、特定のデバイスのためのベンダー供給のドライバであるデータソース(DS)である。データソースは、USB、FIREWIRE、Parallel、SCSI、IR、BLUETOOTH、IEEE 1394プロトコル、Wi−Fiプロトコル、または他のワイヤレスプロトコルなどのいくかのプロトコルのうちの一つを使用して、画像収集デバイスにデータを送信する(talk to)ことを担う。イメージングデバイスは、スキャナ、デジタルカメラ、またはソフトウェアアプリケーションであり得る。
【0003】
図1(従来技術)は、従来のトウェインアーキテクチャを示す。従来のトウェインアーキテクチャは、接続されたモニター4とともに、ユーザ6によって利用されるコンピュータ2を含む。コンピュータ2は、写真編集アプリケーションなどのトウェインアプリケーション8を含む。トウェインアプリケーション8は、データソースマネジャー10に対して関数呼出しを行なう。データソースマネジャー10は、アプリケーションがベンダーデータソース12にアクセスし得るためのAPI、およびコンピュータ2と通信する画像収集デバイスの製造およびモデリングするためのベンダー供給のハードウェアドライバを提供する。示されるトウェインアーキテクチャは、コンピュータへのUSB14インターフェースを含む。トウェイン準拠のスキャナ16は、USBインターフェース14を介してコンピュータシステムにつなげられる。
【0004】
残念ながら、トウェインアプリケーションによって利用されるトウェイン準拠のデバイスを制御するための従来の技術は、分散型のマルチユーザ、マルチセッション環境においては、特に首尾よく作用するというわけではない。たとえば、遠隔クライアントシステムについて複数のユーザセッションをホストするサーバは、各トウェイン準拠のデバイスについて固有のベンダー特有のハードウェアドライバとともにロードされなければならない。単一のユーザについての単一のデバイスを制御するためには問題ではない一方で、複数のデバイスはサーバが複数のドライバを含むことを必要とする。さらに、ユーザセッションをサポートするサーバについて、仮想チャネルはセッションごとに一つのアプリケーションをサポートする。このことは、複数のトウェイン準拠のデバイスが同一のセッションの範囲内でサポートされることを妨げ、同時にセッションにおいて二つ以上のトウェインアプリケーションを使用することを妨げる。
【発明の開示】
【課題を解決するための手段】
【0005】
(発明の概要)
本発明の説明的な実施形態は、ユーザセッションの範囲内におけるトウェイン関数呼出しをクライアントシステムに対してリモーティングするメカニズムを提供する。サーバ上のトウェインアプリケーションによって行なわれたトウェイン関数呼出しをフックすることによって、トウェイン関数呼出しは、クライアントシステムへの仮想接続を介してリモーティングされ得る。サーバベースのトウェインアプリケーションに対応するプロキシアプリケーションは、クライアントシステム上で作成される。プロキシアプリケーションは、サーバと通信し、トウェインフレームワークの残りに対して適切な関数呼出しを行なう。プロキシアプリケーションの使用は、複数のアプリケーションおよびデバイスが同時にサポートされることを可能にする。仮想接続を介して送信されたメッセージは、送信前にフィルタリングされ、それにより必要とされる通信トラフィックの量を制限する。マルチプレクサおよびデマルチプレクサは、仮想チャネル上の帯域幅を効率的に使用するために利用される。本発明はさらに、仮想チャネルを介した送信の前に画像データを圧縮する。
【0006】
一実施形態において、クライアントに関連する画像収集装置を制御するための方法は、プレゼンテーションレベルプロトコルを使用してサーバと通信するクライアントを提供するステップを含む。クライアントは、サーバ上で実行するアプリケーションに関連するプロキシアプリケーションを実行している。方法は、プレゼンテーションレベルプロトコルを使用してネットワークを介してサーバから、クライアントに関連する画像収集デバイスに向けられたコマンドを、プロキシアプリケーションにおいて受信するステップをさらに含む。方法は、受信されたコマンドを画像収集デバイスに対して発行するステップをさらに含む。方法は、発行されたコマンドへの応答を画像収集デバイスから受信するステップと、受信された応答を次にプレゼンテーションレベルプロトコルを使用してネットワークを介してサーバに送信するステップとをさらに含む。
【0007】
別の実施形態において、トウェインクライアント環境においてクライアントに関連する画像収集デバイスを遠隔に制御するための方法は、ネットワークを介してクライアントから画像収集イベントを受信するステップを含む。方法は、受信されたイベントをイベントに関連するアプリケーションプログラムに提供するステップをさらに含む。方法は、送信されたイベントに対する応答をアプリケーションプログラムから受信するステップと、受信された応答を次にネットワークを介してクライアントに送信するステップとをさらに含む。
【0008】
一実施形態において、クライアントと通信する画像収集デバイスを制御するための方法は、クライアントと通信する画像収集デバイスに向けられたコマンドをサーバから受信するステップを含む。方法はまた、クライアントと通信する画像収集デバイスに対して、受信されたコマンドに基づいてTWAIN API呼出しを発行するステップと、発行されたコマンドに対する応答を画像収集デバイスから受信するステップとを含む。方法はまた、受信された応答をサーバに送信する。
【発明を実施するための最良の形態】
【0009】
本発明のこれらのおよび他の局面は、以下の詳細な説明および添付の図面から容易に明らかになり、それらは説明することを意図したものであり本発明を限定することを意図したものではない。
【0010】
本発明の説明的な実施形態は、クライアントシステムと通信する複数のトウェイン準拠デバイス、および/またはユーザセッションにおいて実行する複数のトウェインアプリケーションを、ユーザセッションがサポートすることを可能にする。ユーザセッションにおいて実行するトウェインアプリケーションからトウェイン関数呼出しをフックすることにより、関数呼出しは、プレゼンテーションレベルプロトコルを使用して、処理のためにクライアントシステム上のプロキシアプリケーションにリダイレクトされ得る。プロキシアプリケーションは、クライアントシステム上で作成され、サーバ上のユーザセッションにおいて実行する各アプリケーションに対応する。クライアントシステム40上のメッセージは、必須の通信のみをサーバに送信するようにフィルタリングされる。
【0011】
図2Aは、本発明の一実施形態を実行するために適切な環境を示す。サーバ20は、ネットワーク30を介してクライアントシステム40に接続される。サーバ20は、一つ以上のユーザセッション22および24をホストする。ユーザセッションは、トウェイン準拠アプリケーション26および28の実行中のインスタンスを含み得る。トウェインアプリケーション26および28からのトウェイン関数呼出しは、プレゼンテーションレベルプロトコルを介して、クライアントシステム40上の対応するトウェインプロキシプロセス42および44に送信される。スキャナA50およびスキャナB60は、クライアントシステム40と通信し、サーバ20上のユーザセッション24において実行するアプリケーション26および28から発信されかつクライアントシステムにおいて処理されるコマンドによって制御される。サーバ20とクライアントシステム40との間の通信のメカニクス(mechanics)は、以下の図2Bにおいてより詳細に探求される。
【0012】
図2Bは、図2Aの環境をより詳細に示す。サーバ20はユーザセッション24をホストする。ユーザセッション24は、それぞれリダイレクタモジュール70および72と連絡を取るトウェインアプリケーション26および28を含む。リダイレクタモジュール70および72は、エントリポイントをトウェイン_32.dllの中に(エントリポイントをDSMの中に)フックするサーバ側フックDLLである。リダイレクタモジュール70および72は、トウェインアプリケーション26および28からのすべてのトウェイン呼出しをインタセプトし、その呼出しをクライアントシステム40に転送する。リダイレクタモジュール70および72はまた、JPEG圧縮を使用して圧縮されることをリクエストされた画像を復元する(uncompress)。リダイレクタモジュール70および72は、セッションマネジャー74によってホストされるトウェインマルチプレクサ76と連絡を取る。ICAアーキテクチャにおいて、セッションマネジャー74はWFShell Processである。
【0013】
トウェインマルチプレクサ76は、セッションマネジャー74において稼動するサーバ側仮想チャネルモジュールであり、クライアントとサーバとの間のトウェイン通信を管理するために使用される。トウェインマルチプレクサ76は、セッション24において実行するトウェインアプリケーションに関連するリダイレクタモジュール70および72からペイロードを受信する。トウェインマルチプレクサ76は、仮想チャネル32についてのサイズ制限に従って、ペイロードをより小さなパケットのシーケンスに分割する。次にパケットは、クライアントシステムへの移行のために仮想チャネルに書き込まれる。トウェインマルチプレクサ76は、リクエストをクライアントシステム40に伝え、クライアントから受信された応答を返す。トウェインマルチプレクサ76は、リクエストと応答とが一致するかどうかを知らず、応答を待たない。したがって、トウェインマルチプレクサ76は、なんらかの応答を受信する前に、異なるトウェインアプリケーション26および28からのいくつかのリクエストを受信および転送し得る。トウェインマルチプレクサ76はまた、入ってくるパケットをペイロードに組み立て、次にペイロードは適切なリダイレクタモジュール70および72にルーティングされる。
【0014】
仮想チャネル32は、ネットワーク30を介して、パケットをクライアントシステム40に移送する。パケットは、厳密に順序付けられたシーケンスにおいて仮想チャネル32に送信される。トウェインデマルチプレクサ(デマックス(demux))80は、仮想チャネル32を介して、クライアントシステム上のパケットを受信する。トウェインデマルチプレクサ80は、クライアントシステム上でアーキテクチャ41をサポートするプレゼンテーションレベルプロトコルにプラグインするクライアント側仮想チャネルドライバである(たとえばデマックスはICAクライアントにプラグインする)。トウェインデマルチプレクサ80は、トウェインリクエストを、厳密に順序付けられたパケットのシーケンスとして受信する。トウェインデマルチプレクサ80は、入ってくるパケットをペイロードに組み立てる。入ってくるパケットの受信中にエラーチェックが実行され得る。ペイロードが完全に受信されると、トウェインデマルチプレクサ80は、ペイロードをプロキシアプリケーション43および45に転送する。正しいプロキシアプリケーション43および45は、ペイロードにおけるフィールドを検査することによって識別される。クライアントシステム上のトウェインデマックス80は、登録(register)されたプロキシアプリケーション43および45のリスティングを保持する。プロキシアプリケーション43および45が新しいプロキシアプリケーションであり、それゆえに登録されていない場合、トウェインデマックス80はプロキシアプリケーションを作成する。
【0015】
プロキシアプリケーション43および45は、クライアントシステム40上のコンテナプロセス51および53によってホストされ、サーバ上のトウェインアプリケーション26および28に対応する。プロキシアプリケーション43および45は、トウェインデマルチプレクサを用いた登録の後、トウェインデマルチプレクサ80から受信されトウェインアプリケーション26および28によって発信されたコマンドを処理する。プロキシアプリケーション43および45は、クライアントシステム40と通信中のスキャナ50および60についてベンダー特有の(vendor−specific)ドライバ94および96を制御するために、DSM90および92に対してAPI呼出しを行なう。プロキシアプリケーション43および45は、コンテナプロセスとして実行するので、対応するセキュリティの発行なしに、動的なリンクされたライブラリを実行するコンテクストを提供する。プロキシアプリケーションはまた、データソース94および96によって生成されたメッセージを受信する。
【0016】
データソースUI94および96が使用可能にされると(たとえばスキャンするダイアログボックス)、プロキシアプリケーション43および45は、受信されるすべてのメッセージを処理することによって、もともとのトウェインアプリケーションをシミュレートする。たとえば、WINDOWS(登録商標)環境において、プロキシアプリケーションは、画像収集デバイス上でボタンが押されたことを示すメッセージなどの、受信されたすべてのWINDOWS(登録商標)メッセージについて、MSG_PROCESSEVENTコマンドを呼び出し得る。メッセージがトウェインによって所有されない場合、そのメッセージが対象とするアプリケーションがメッセージを正常に処理する。しかし、メッセージがトウェイン通知である場合、通知ペイロードは、サーバ20上のリダイレクタモジュール70および72に転送されて次にトウェインアプリケーション26および28上に転送される場所から、トウェインデマックス80へと送信される。次にトウェインアプリケーション26および28は、通知に応答して新しいコマンドを発行し得る。この場合、トウェインコマンドはクライアントシステムに送信される。
【0017】
トウェイン通知であり得るメッセージのみが仮想チャネルを介して転送されるので、クライアント側におけるメッセージの初期スクリーニングは、ネットワークトラフィックを減少させる。ネットワークトラフィックは、送信前におけるビットマップのJPGへの圧縮によっても減少され得る。クライアントシステム40と通信する画像収集デバイスによって収集された画像データは、サーバ20への送信前に所定のルールに基づいて圧縮され得る。たとえば、ピクセル位置あたり2ビット以上を有する画像データは送信前に圧縮され得る一方で、ピクセル位置あたり1ビットの比率を有する画像データは圧縮なしに送信され得る。同様に、画像データは、サーバに送信されるサイズが最も小さいアルゴリズムの出力を用いた二つ以上の圧縮アルゴリズムを用いて圧縮され得る。圧縮はプロキシアプリケーション43および45において行なわれ、解凍(decompression)はトウェインリダイレクタモジュール70および72において行なわれる。
【0018】
当業者は、ユーザがクライアントシステムを介してアクセスするサーバ上にセッションを作成するために使用されるサーバ20およびクライアントシステム40における構成要素が、展開されるアーキテクチャに依存して変化することを認識する。例示的なプレゼンテーションレベルサポーティングアーキテクチャは、フロリダ州Fort LauderdaleのCitrix Systems Inc.からのIndependent Computing Architecture(ICA)、ワシントン州RedmondのMicrosoft CorporationからのRemote Desktop Protocol(RDP)、およびX−Open ConsortiumからのX−Window Protocolを含む。たとえばICAアーキテクチャにおいて、クライアント側のプレゼンテーションレベルサポーティングアーキテクチャ41はICAクライアントであり、サーバ20はサーバがホストするユーザセッションを作成および保持するためにメタフレームプレゼンテーションサーバ(METAFRAME PRESENTATION SERVER)を展開する。RDPアーキテクチャ、X−Openアーキテクチャ、または他のプレゼンテーションレベルプロトコルサポーティングアーキテクチャからの同様の構成要素もまた、本発明の範囲の範囲内において展開され得る。
【0019】
多くの実施形態において、クライアントシステム40およびサーバ20は、カリフォルニア州Palo AltoのHewlett−Packard Corporation、およびテキサス州Round RockのDell Corporationによって製造される種類の、パーソナルコンピュータまたはコンピュータサーバとして提供される。図3Aおよび3Bは、クライアントシステム20およびサーバ40として有用な代表的なコンピュータ200のブロック図を示す。図3Aおよび3Bに示されるように、各コンピュータ200は、中央処理ユニット202および主メモリユニット204を含む。各コンピュータ200は、一つ以上の入力/出力デバイス230a〜230n(一般的に参照番号230を使用して参照される)、および中央処理ユニット202と通信するキャッシュメモリ240などの他のオプション的要素をも含み得る。
【0020】
中央処理ユニット202は、主メモリユニット204から取り出された命令に対して応答および処理をする任意の論理回路網である。多くの実施形態において、中央処理ユニットは次のようなマイクロプロセッサによって提供される。すなわち、カリフォルニア州Mountain ViewのIntel Corporationによって製造される、8088、80286、80386、80486、Pentium(登録商標)、Pentium(登録商標)Pro、Pentium(登録商標)II、Celeron、またはXeonプロセッサ。イリノイ州SchaumburgのMotorola Corporationによって製造される、68000、68010、68020、68030、68040、PowerPC601、PowerPC604、PowerPC604e、MPC603e、MPC603ei、MPC603ev、MPC603r、MPC603p、MPC740、MPC745、MPC750、MPC755、MPC7400、MPC7410、MPC7441、MPC7445、MPC7447、MPC7450、MPC7451、MPC7455、またはMPC7457プロセッサ。カリフォルニア州Santa ClaraのTransmeta Corporationによって製造される、Crusoe TM5800、Crusoe TM5600、Crusoe TM5500、Crusoe TM5400、Efficeon TM8600、Efficeon TM8300、またはEfficeon TM8620プロセッサ。ニューヨーク州White PlainsのInternational Business Machinesによって製造される、RS/6000プロセッサ、RS64、RS 64 II、P2SC、POWER3、RS64 III、POWER3−II、RS 64 IV、POWER4、POWER4+、POWER5、またはPOWER6プロセッサ。またはカリフォルニア州SunnyvaleのAdvanced Micro Devicesによって製造される、AMD Opteron、AMD Athalon 64 FX、AMD Athalon、またはAMD Duronプロセッサ。
【0021】
主メモリユニット204は、データを格納する能力があり、任意の記憶位置がマイクロプロセッサ202によって直接的にアクセスされることが可能な、次のような一つ以上のメモリチップであり得る。すなわち、スタティックランダムアクセスメモリ(SRAM)、Burst SRAMまたはSynchBurst SRAM(BSRAM)、ダイナミックランダムアクセスメモリ(DRAM)、Fast Page Mode DRAM(FPM DRAM)、Enhanced DRAM(EDRAM)、Extended Data Output RAM (EDO RAM)、Extended Data Output DRAM(EDO DRAM)、Burst Extended Data Output DRAM(BEDO DRAM)、Enhanced DRAM(EDRAM)、同期式DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、Double Data Rate SDRAM(DDR SDRAM)、Enhanced SDRAM(ESDRAM)、SyncLink DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、または強誘電体RAM(FRAM)。
【0022】
図3Aに示される実施形態において、プロセッサ202はシステムバス220(より詳細に以下に記述される)を介して主メモリ204と通信する。図3Bは、プロセッサがメモリポートを介して主メモリ204と直接的に通信するコンピュータ200の実施形態を示す。たとえば、図3Bにおいて、主メモリ204はDRDRAMであり得る。
【0023】
図3Aおよび3Bは、主プロセッサ202が、「バックサイド」バスと呼ばれることもある二次バスを介してキャッシュメモリ240と直接的に通信する実施形態を示す。他の実施形態において、主プロセッサ202はシステムバス220を使用してキャッシュメモリ240と通信する。キャッシュメモリ240は、一般的に主メモリ204よりも速い応答時間を有し、一般的にSRAM、BSRAM、またはEDRAMによって提供される。
【0024】
図3Aに示される実施形態において、プロセッサ202はローカルシステムバスを介して種々のI/Oデバイス230と通信する。VESA VLバス、ISAバス、EISAバス、MicroChannelArchitecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuバスを含む種々のバスが、中央処理ユニット202をI/Oデバイス230に接続するために使用され得る。I/Oデバイスがビデオディスプレイである実施形態について、プロセッサ202はディスプレイと通信するためにAdvanced Graphics Port(AGP)を使用し得る。図3Bは、主プロセッサ202がHyperTransport、Rapid I/O、またはInfiniBandを介して、I/Oデバイス230bと直接的に通信するコンピュータ200の実施形態を示す。図3Bはまた、ローカルバスおよび直接通信が混合された実施形態を示す。すなわち、プロセッサ202は、I/Oデバイス230bと直接的に通信しながら、ローカル相互接続バスを使用してI/Oデバイス230aと通信する。
【0025】
コンピュータシステム200において、多岐にわたるI/Oデバイス230が存在し得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、およびドローイングタブレット(drawing tablet)を含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型(dye−sublimation)プリンタを含む。I/Oデバイスは、コンピュータシステム200のために、次のような大容量記憶装置をも提供し得る。すなわち、ハードディスクドライブ、3.5インチ、5.25インチディスクまたはZIPディスクを受け入れるためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、種々のフォーマットのテープドライブ、およびカリフォルニア州Los AlamitosのTwintech Industry, Inc.によって製造されるUSBフラッシュドライブの一連のデバイスなどのUSB記憶デバイス。
【0026】
さらなる実施形態においては、I/Oデバイス230は、システムバス220と次のような外部通信バスとの間のブリッジであり得る。すなわち、USBバス、Apple Desktopバス、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire800バス、Ethernet(登録商標)バス、AppleTalk(登録商標)バス、Gigabit Ethernet(登録商標)バス、Asynchronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached小型コンピュータシステムインターフェースバス。
【0027】
図3Aおよび3Bに示される種類の汎用デスクトップコンピュータは、システム資源に対するタスクおよびアクセスのスケジューリングを制御するオペレーティングシステムの制御下で一般的に稼動する。代表的なオペレーティングシステムは、数ある中で次のものを含む。すなわち、ワシントン州RedmondのMicrosoft Corp.によって製造されるMICROSOFT WINDOWS(登録商標)、カリフォルニア州CupertinoのApple Computerによって製造されるMacOS、ニューヨーク州ArmonkのInternational Business Machinesによって製造されるOS/2、およびユタ州Salt Lake CityのCaldera Corp.によって配信される無料で利用可能なオペレーティングシステムであるLinux。
【0028】
クライアントシステム24と通信するデバイスがモバイルデバイスである実施形態について、クライアントデバイスは次のようなJAVA(登録商標)使用可能な携帯電話であり得る。すなわち、イリノイ州SchaumburgのMotorola Corp.によって製造される、i50sx、i55sr、i58sr、i85s、i88s、i90c、i95cl、またはim11000。日本の京都の京セラ株式会社によって製造される6035または7135。または韓国のソウルのSamsung Electronics Co.,Ltd.によって製造されるi300またはi330。クライアントシステムと通信するデバイス24がモバイルである別の実施形態において、デバイスは、カリフォルニア州MilpitasのpalmOne,Inc.によって製造されるTungsten W、VII、VIIx、i705などのPalmオペレーティングシステムの制御下で稼動する携帯情報端末(PDA)であり得る。さらなる実施形態においては、クライアントシステム4と通信するデバイス24は、PocketPCオペレーティングシステムの制御下において稼動する、次のような携帯情報端末(PDA)であり得る。すなわち、カリフォルニア州Palo AltoのHewlett−Packard Corporationによって製造される、iPAQ 4155、iPAQ 5555、iPAQ 1945、iPAQ 2215、およびiPAQ 4255。カリフォルニア州WalnutのViewSonicによって製造されるViewSonic V36。またはニューヨーク州New YorkのToshiba America,Inc.によって製造されるToshiba PocketPC e405。さらに別の実施形態において、クライアントシステム24と通信するデバイスは、カリフォルニア州MilpitasのpalmOne,Inc.によって製造されるTreo 180、Treo 270、またはTreo 600などの組合わせ型PDA/電話デバイスである。さらに別の実施形態において、クライアントシステム24と通信するデバイスは、Motorola Corp.によって製造されるMPx200などのPocketPCオペレーティングシステムの制御下で稼動する携帯電話である。
【0029】
図4Aは、画像収集デバイスに向けられたコマンドを処理するための本発明の一実施形態におけるクライアントシステムによって辿られるステップのシーケンスのフローチャートである。シーケンスは、プレゼンテーションレベルプロトコルを使用して送信され画像収集デバイスに向けられたコマンドをクライアントシステム40が受信するときに始まる(ステップ400)。コマンドは、トウェインプロキシアプリケーションによってクライアントシステム上で受信され、画像収集デバイスに転送される(ステップ402)。コマンドは、受信されたコマンドに基づいて、結果としてトウェインAPI呼出しになり得る。コマンドは、受信されたコマンドに基づいて、デバイスドライバ呼出しをも必要とし得る。あるいは、コマンドは画像収集デバイス/プロセスに対して直接的に発行され得る。同様に、受信されたコマンドは、ユーザに示されているダイアログボックスの表示を抑制するための指示、および/または抑制されたダイアログボックスの代わりの第2のダイアログボックスの表示などの、画像収集デバイスに対する別のコマンドの発行を必要とし得る。その後、コマンドに対する応答は、画像収集デバイスから受信され(ステップ404)、トウェインアプリケーションをホストするサーバに送信される(ステップ406)。画像収集デバイスから受信された応答は、画像を表すデータであり得る。
【0030】
本発明の説明的な実施形態は、クライアントシステムのためのセキュリティをも提供する。ユーザセッションにおいてトウェインアプリケーションから画像収集デバイスに送信されたコマンドは、実行前に肯定的なユーザ応答を受信することを必要とされ得る。たとえば、UIを表示していないクライアントシステムにつながれた画像収集デバイスに対してコマンドが送信されているという状況は、コマンドが画像収集デバイスに対して送信されていることをクライアントシステムにおいて示すためのポップアップダイアログを必要とすることによって対処されることができる。クライアントシステムにおけるユーザからの肯定的な応答の後にのみ実際のコマンドが送信されるようなリダイレクタモジュールの構成は、セッションにおいて実行するアプリケーションによる画像収集デバイスの「隠された(stealth)」操作を防止する。
【0031】
ステップの上述のシーケンスは単一のサーバからの単一のコマンドの受信に焦点を当てているが、当業者は、本発明の範囲の範囲内においてステップの代替的シーケンスが生じ得ることを認識する。たとえば、第2のコマンドはまた、クライアントに関連する画像収集デバイスに向けられたプレゼンテーションレベルプロトコルを使用して、第2のサーバから受信され得る。あるいは、サーバはクライアントに関連する第2の画像収集デバイスに向けられた第2のコマンドを発行し得る。同様に、クライアントシステムに関連する第2の画像収集デバイスは、プレゼンテーションレベルプロトコルを使用して第2のサーバからコマンドを受信し得る。
【0032】
図4Bは、画像収集イベントを処理するための本発明の一実施形態におけるサーバシステムによって辿られるステップのシーケンスのフローチャートである。シーケンスは、サーバがネットワークを介してクライアントシステムから画像収集イベントを受信するときに始まる(ステップ420)。たとえば、スキャナ上でボタンが押されることは、イベントを生成する。画像収集デバイスイベントは、サーバ20上の関連するトウェインアプリケーションプログラム26および28に提供される(ステップ422)。アプリケーションプログラムは、送信されたイベントに対して応答を生成し(ステップ424)、受信された応答をネットワークを介してクライアントシステムに送信する。
【0033】
本明細書において論じられる本発明の実施形態の多くは、クライアントシステム上に常駐するトウェインフレームワークの残りを用いたユーザセッションの範囲内で実行するトウェインアプリケーションに関して論じられてきたが、他の実装も可能であることも留意されるべきである。たとえば、トウェインアプリケーションは、サーバ上で実行し得るが、クライアントシステム上で稼動するトウェインフレームワーク(DSMおよびDS)の残りを用いたユーザセッションにおいては実行され得ない。二者間の通信は、プレゼンテーションレベルプロトコルを使用することなく実行され得る。同様に、本明細書に含まれる記載は、サーバ上のユーザセッションにおけるトウェインアプリケーションをホストしながらクライアントシステムに対してトウェインフレームワークのDSMおよびDS部分をリモーティングすることを論じてきたが、本発明の範囲の範囲内で他の実装が可能である。たとえば、DSがクライアントシステムに対してリモーティングされた一方で、DSMはサーバ上にも位置し得る。そのような場合、DSMからDSへの呼出しは、サーバにおいてインタセプトされ得、クライアントシステムに送信され得る。
【0034】
すでに示されたクライアントサーバアーキテクチャに加えて、本発明の説明的な実施形態は、「パススルー」アーキテクチャを可能にし、そこでは、クライアントシステムと通信する画像収集デバイスは、ネットワークを介してサーバ上のプロキシクライアントにアクセスするクライアントまたはシンクライアントである。たとえば、図5Aは、サーバ510上で実行するプロキシクライアント520にアクセスするトウェインイメージングデバイスをホストするWinCE使用可能なPDA500を示す。プロキシクライアント510は、サーバ550と制御仮想チャネル530および通信仮想540を確立するICAクライアントであり得る。サーバ550は、セッションの範囲内において実行するアプリケーション570のインスタンスを用いたセッション560を含む。WinCE PDA500は、上記に概要を述べたメカニズムと整合性のある第2のサーバ550の中にマップされ得る。
【0035】
同様に、図5Bは、プロキシクライアントおよびユーザセッションの両方が同一のサーバによってサポートされる代替的なアーキテクチャを示す。図5Bにおいて、画像収集デバイス605はクライアントデバイス600と通信する。クライアントデバイス600はサーバ610と通信する。サーバ610は、プロキシクライアント620およびユーザセッション630の両方を含む。ユーザセッション630は、実行中のアプリケーション640のインスタンスを含む。画像収集デバイス605は、プロキシクライアント620を介してサーバ610上のユーザセッション630の中にマップされ得る。当業者は、本発明の範囲の範囲内において追加の実装および代替的なアーキテクチャも可能であることを認識する。
【0036】
本発明は、一つ以上の製品の上または中において具体化される一つ以上のコンピュータ可読プログラムとして提供され得る。製品は、フロッピー(登録商標)ディスク、ハードディスク、コンパクトディスク、デジタル汎用ディスク、フラッシュメモリカード、PROM、RAM、ROM、または磁気テープであり得る。一般的に、コンピュータ可読プログラムは任意のプログラミング言語において実装され得る。使用されることのできる言語のいくつかの例は、C、C++、C#、またはJAVA(登録商標)を含む。ソフトウェアプログラムは、オブジェクトコードとして一つ以上の製品の上または中において格納され得る。
【0037】
本発明は特定の好ましい実施形態に関して示され記述された一方で、添付の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、形態および詳細において種々の変更がなされ得ることが当業者によって理解されるべきである。
【図面の簡単な説明】
【0038】
【図1】図1(従来技術)は、従来のトウェインアークテクチャのブロック図を示す。
【図2A】図2Aは、本発明の説明的な実施形態を実行するために適切な環境を示す。
【図2B】図2Bは、図2Aの環境をより詳細に示す。
【図3A】図3Aは、本発明と関連して有用なコンピュータの実施形態を示すブロック図である。
【図3B】図3Bは、本発明と関連して有用なコンピュータの実施形態を示すブロック図である。
【図4A】図4Aは、画像収集デバイスに向けられたコマンドを処理するための本発明の実施形態におけるクライアントシステムによって辿られるステップのシーケンスのフローチャートである。
【図4B】図4Bは、画像収集イベントを処理するための本発明の実施形態におけるサーバシステムによって辿られるステップのシーケンスのフローチャートである。
【図5A】図5Aは、パススルー環境にけるプロキシクライアントの使用を示す本発明の実施形態のブロック図である。
【図5B】図5Bは、パススルー環境にけるプロキシクライアントの使用を示す本発明の別の実施形態のブロック図であり、プロキシクライアントはユーザセッションをホストするサーバ上に位置させられる。

【特許請求の範囲】
【請求項1】
クライアントに関連する画像収集デバイスを制御するための方法であって、該方法は、
(a)プレゼンテーションレベルプロトコルを使用してサーバと通信するクライアントを提供するステップであって、該クライアントは、サーバ上で実行するアプリケーションに関連するプロキシアプリケーションを実行する、ステップと、
(b)該クライアントに関連する画像収集デバイスに向けられたコマンドを、ネットワークを介してサーバから、該プロキシアプリケーションにおいて受信するステップと、
(c)該受信されたコマンドを該関連する画像収集デバイスに対して発行するステップと、
(d)該発行されたイベントに対する応答を該画像収集デバイスから受信するステップと、
(e)該受信された応答をネットワークを介して該サーバに送信するステップと
を包含する、方法。
【請求項2】
前記ステップ(b)が、ICA、RDPおよびX−WINDOWSから成るグループから選択される一つのプロトコルを使用して、ネットワークを介してサーバから、クライアントに関連する画像収集デバイスに向けられたコマンドを受信することを包含する、請求項1に記載の方法。
【請求項3】
前記ステップ(c)が、前記受信されたコマンドに基づいて前記画像収集デバイスにTWAIN API呼出しを発行することを包含する、請求項1に記載の方法。
【請求項4】
前記ステップ(c)が、前記受信されたコマンドに基づいて前記画像収集デバイスにデバイスドライバ呼出しを発行することを包含する、請求項1に記載の方法。
【請求項5】
前記ステップ(c)が、前記受信されたコマンドに基づいて前記画像収集デバイスにコマンドを直接的に発行することを包含する、請求項1に記載の方法。
【請求項6】
前記ステップ(c)が、前記受信されたコマンドに基づいて前記関連する画像収集デバイスにコマンドを発行することを包含し、発行されたコマンドが、ユーザに対するダイアログボックスの表示を抑制するための指示を含む、請求項1に記載の方法。
【請求項7】
前記抑制されたダイアログボックスの代わりにユーザに対して第2のダイアログボックスを表示するステップをさらに包含する、請求項6に記載の方法。
【請求項8】
前記クライアントに関連する前記画像収集デバイスに向けられた第2のコマンドを、前記ネットワークを介して第2のサーバから受信するステップをさらに包含する、請求項1に記載の方法。
【請求項9】
前記クライアントに関連する第2の画像収集デバイスに向けられた第2のコマンドを、前記ネットワークを介して前記サーバから受信するステップをさらに包含する、請求項1に記載の方法。
【請求項10】
前記クライアントに関連する第2の画像収集デバイスに向けられた第2のコマンドを、前記ネットワークを介して第2のサーバから受信するステップをさらに包含する、請求項1に記載の方法。
【請求項11】
前記ステップ(d)が、画像を表すデータを前記画像収集デバイスから受信することを包含する、請求項1に記載の方法。
【請求項12】
前記ステップ(e)が、
(e−1)圧縮された画像データを前記サーバに送信すること
をさらに包含する、請求項11に記載の方法。
【請求項13】
前記ステップ(e)が、
(e−1)前記圧縮された画像データを前記サーバに送信する前に前記画像データが各ピクセル位置について二つ以上のビットを含むことを決定すること
をさらに包含する、請求項12に記載の方法。
【請求項14】
ステップ(e−2)が、
(e−2−1)第1の圧縮された画像データを形成するために第1の圧縮アルゴリズムを使用して前記画像データを圧縮することと、
(e−2−2)第2の圧縮された画像データを形成するために第2の圧縮アルゴリズムを使用して前記画像データを圧縮することと、
(e−2−3)該第1の圧縮された画像データおよび該第2の圧縮された画像データのうちのより小さいほうを送信のために選択することと
を包含する、請求項13に記載の方法。
【請求項15】
前記サーバへの送信中に圧縮された画像データを圧縮するステップをさらに包含する、請求項12に記載の方法。
【請求項16】
前記ステップ(d)の前に、
前記クライアントのユーザから入力を受信するステップと、
該受信された入力を前記サーバに送信するかどうかを決定するステップと
をさらに包含する、請求項1に記載の方法。
【請求項17】
クライアントに関連する画像収集装置を制御するための方法であって、該方法は、
画像収集イベントをネットワークを介してクライアントから受信するステップと、
該受信されたイベントを該イベントに関連するアプリケーションプログラムに提供するステップと、
送信されたイベントに対する応答を該アプリケーションプログラムから受信するステップと、
該受信された応答を該アプリケーションプログラムに関連するプロキシアプリケーションにネットワークを介して送信するステップであって、該プロキシアプリケーションは、該クライアント上で実行する、ステップと
を包含する、方法。
【請求項18】
ステップ(b)が、
(b−1)前記受信されたイベントから、該受信されたイベントに関連するアプリケーションプログラムを決定することと、
(b−2)該受信されたイベントを該決定されたアプリケーションプログラムに提供することと
を包含する、請求項17に記載の方法。
【請求項19】
ステップ(c)が、インタセプトされたTWAIN API呼出しをネットワークを介して受信することを包含する、請求項17に記載の方法。
【請求項20】
前記クライアントに関連する装置によって収集された画像を表すデータをネットワークを介して該クライアントから受信するステップをさらに包含する、請求項17に記載の方法。
【請求項21】
前記受信された画像収集データを解凍するステップをさらに包含する、請求項20に記載の方法。
【請求項22】
前記ネットワークを介して第2のクライアントから画像収集イベントを受信することをさらに包含する、請求項17に記載の方法。
【請求項23】
前記第2のクライアントから受信された前記画像収集イベントを前記イベントに関連するアプリケーションプログラムの第2のインスタンスに提供するステップをさらに包含する、請求項22に記載の方法。
【請求項24】
クライアントに関連する画像収集デバイスを制御するためのコンピュータ可読プログラム手段を具体化した製品であって、該クライアントはプレゼンテーションレベルプロトコルを使用してサーバと通信し、該クライアントはサーバ上で実行するトウェインアプリケーションに関連するプロキシアプリケーションをさらに実行し、該製品は、
該クライアントに関連する画像収集デバイスに向けられたコマンドをネットワークを介してサーバから受信するためのコンピュータ可読プログラム手段と、
該関連する画像収集デバイス上で実行する該プロキシアプリケーションに対して該受信されたコマンドを発行するためのコンピュータ可読プログラム手段と、
該発行されたイベントに対する応答を該画像収集デバイスから受信するためのコンピュータ可読プログラム手段と、
該受信された応答をネットワークを介して該サーバに送信するためのコンピュータ可読プログラム手段と
を含む、製品。
【請求項25】
画像収集デバイスに向けられたコマンドを受信するための前記コンピュータ可読プログラム手段が、ICA、RDPおよびX−WINDOWSから成るグループから選択されるプロトコルを使用して、クライアントに関連する画像収集デバイスに向けられたコマンドをネットワークを介してサーバから受信するためのコンピュータ可読プログラム手段をさらに含む、請求項24に記載の製品。
【請求項26】
前記関連する画像収集デバイスに対して前記受信されたコマンドを発行するための前記コンピュータ可読プログラム手段が、該受信されたコマンドに基づいて該画像収集デバイスに対してTWAIN API呼出しを発行するためのコンピュータ可読プログラム手段をさらに含む、請求項24に記載の製品。
【請求項27】
クライアントと通信する画像収集デバイスを制御するための方法であって、該方法は、
該クライアントと通信する該画像収集デバイスに向けられたコマンドをサーバから受信するステップと、
該受信されたコマンドに基づいて、該クライアントと通信する該画像収集デバイスに対してTWAIN API呼出しを発行するステップと、
該発行されたコマンドに対する応答を該画像収集デバイスから受信するステップと、
該受信された応答を該サーバに送信するステップと
を包含する、方法。
【請求項28】
ステップ(b)が、前記受信されたコマンドに基づいて前記画像収集デバイスに対してデバイスドライバ呼出しを発行することを包含する、請求項27に記載の方法。
【請求項29】
ステップ(b)が、前記受信されたコマンドに基づいて前記画像収集デバイスに対してコマンドを直接的に発行することを包含する、請求項27に記載の方法。
【請求項30】
ステップ(b)が、前記受信されたコマンドに基づいて前記画像収集デバイスに対してコマンドを発行することを包含し、該発行されたコマンドがユーザに対するダイアログボックスの表示を抑制する指示を包含する、請求項27に記載の方法。
【請求項31】
前記抑制されたダイアログボックスの代わりにユーザに対して第2のダイアログボックスを表示するステップをさらに包含する、請求項30に記載の方法。
【請求項32】
前記クライアントに関連する前記画像収集デバイスに向けられた第2のコマンドをネットワークを介して第2のサーバから受信するステップをさらに包含する、請求項27に記載の方法。
【請求項33】
前記クライアントに関連する第2の画像収集デバイスに向けられた第2のコマンドを前記サーバから受信するステップをさらに包含する、請求項27に記載の方法。
【請求項34】
前記クライアントに関連する第2の画像収集デバイスに向けられた第2のコマンドをネットワークを介して第2のサーバから受信するステップをさらに包含する、請求項27に記載の方法。
【請求項35】
ステップ(c)が、前記画像収集デバイスから画像を表すデータを受信することを包含する、請求項27に記載の方法。
【請求項36】
ステップ(d)が、
(d−1)前記画像データが各ピクセル位置について一つのビットを含むことを決定することと、
(d−2)該画像データをネットワークを介して前記サーバに送信することと
を包含する、請求項35に記載の方法。
【請求項37】
ステップ(d)が、
(d−1)前記画像データが各ピクセル位置について二つ以上のビットを含むことを決定することと、
(d−2)該画像データを圧縮することと、
(d−3)該圧縮された画像データをネットワークを介して前記サーバに送信することと
を包含する、請求項35に記載の方法。
【請求項38】
ステップ(d−2)が、
(d−2−1)第1の圧縮された画像データを形成するために第1の圧縮アルゴリズムを使用して前記画像データを圧縮することと、
(d−2−2)第2の圧縮された画像データを形成するために第2の圧縮アルゴリズムを使用して前記画像データを圧縮することと、
(d−2−3)該第1の圧縮された画像データおよび該第2の圧縮された画像データのうちのより小さいほうを送信のために選択することと
を包含する、請求項37に記載の方法。
【請求項39】
前記サーバへの送信中に圧縮された画像データを圧縮するステップをさらに包含する、請求項37に記載の方法。
【請求項40】
ステップ(c)の前に、
前記クライアントのユーザから入力を受信するステップと、
該受信された入力を前記サーバに送信するかどうかを決定するステップと
をさらに包含する、請求項27に記載の方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5A】
image rotate

【図5B】
image rotate


【公表番号】特表2008−515278(P2008−515278A)
【公表日】平成20年5月8日(2008.5.8)
【国際特許分類】
【出願番号】特願2007−533455(P2007−533455)
【出願日】平成17年6月8日(2005.6.8)
【国際出願番号】PCT/US2005/020345
【国際公開番号】WO2006/036230
【国際公開日】平成18年4月6日(2006.4.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.FRAM
3.Linux
【出願人】(502239313)サイトリックス システムズ, インコーポレイテッド (36)
【Fターム(参考)】