(57)【特許請求の範囲】
【請求項１】
ローカルコンピュータに接続されたＵＳＢデバイスからデータを取得し、前記取得したデータを通信ネットワークを介してリモートコンピュータに送信するローカル制御手段と、
前記ローカル制御手段から送信されるデータを取得し、前記取得したデータを前記リモートコンピュータ上で動作するアプリケーションに渡すリモート制御手段とを備え、
前記ローカル制御手段は、
前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御手段と、
前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御手段と、を備え、
前記リモート制御手段は、
前記転送制御手段から送信されるデータを受信してリモートコンピュータ関連メモリに記憶する受信手段と、
前記リモートコンピュータで動作するアプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信し、前記リモートコンピュータ関連メモリに未読出の前記データがない場合、前記アプリケーションにダミーデータを送信する読出制御手段と、を備えることを特徴とするデータ転送システム。
【請求項２】
前記リモートコンピュータがシンクライアント端末であり、前記ローカルコンピュータがシンクライアントサーバであることを特徴とする請求項１記載のデータ転送システム。
【請求項３】
ローカルコンピュータに接続されたＵＳＢデバイスのデータを通信ネットワークを介して取得し、前記取得したデータをリモートコンピュータ上で動作するアプリケーションに渡すリモート制御ユニットであって、
前記ローカルコンピュータは、
前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御手段と、
前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御手段と、を備えるものであり、
前記リモート制御ユニットは、
前記ローカルコンピュータから送信される前記データを受信してリモートコンピュータ関連メモリに記憶する受信手段と、
前記リモートコンピュータで動作するアプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信し、前記リモートコンピュータ関連メモリに未読出の前記データがない場合、前記アプリケーションにダミーデータを送信する読出制御手段と、を備えることを特徴とするリモート制御ユニット。
【請求項４】
ローカルコンピュータにおいて、前記ローカルコンピュータに接続されたＵＳＢデバイスからデータを取得し、前記取得したデータを通信ネットワークを介してリモートコンピュータに送信するローカル制御工程と、
前記リモートコンピュータにおいて、ローカルコンピュータから送信されるデータを取得し、前記取得したデータを前記リモートコンピュータ上で動作するアプリケーションに渡すリモート制御工程とを備え、
前記ローカル制御工程は、
前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御工程と、
前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御工程と、を備え、
前記リモート制御工程は、
前記ローカルコンピュータから送信されるデータを受信してリモートコンピュータ関連メモリに記憶する受信工程と、
前記アプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信し、前記リモートコンピュータ関連メモリに未読出の前記データがない場合、前記アプリケーションにダミーデータを送信する読出工程とを備えることを特徴とするデータ転送方法。
【請求項５】
請求項４記載のデータ転送方法におけるローカル制御工程をローカルコンピュータで実行させるためのプログラム。
【請求項６】
ローカルコンピュータに接続されたＵＳＢデバイスのデータを通信ネットワークを介して取得し、前記取得したデータをリモートコンピュータ上で動作するアプリケーションに渡すリモート制御ユニットにデータ処理を実現させるプログラムであって、
前記ローカルコンピュータは、
前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御手段と、
前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御手段と、を備えるものであり、
前記リモート制御ユニットに、
前記ローカルコンピュータから送信される前記データを受信してリモートコンピュータ関連メモリに記憶する受信手段と、
前記リモートコンピュータで動作するアプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信し、前記リモートコンピュータ関連メモリに未読出の前記データがない場合、前記アプリケーションにダミーデータを送信する読出制御手段と、を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システムおよびデータ転送方法に関する。
【背景技術】
【０００２】
近年、ネットワークの発達により、シンクライアントに代表されるように、手元のローカルコンピュータから遠方にあるリモートコンピュータへネットワーク経由でログインしてリモートコンピュータ上で作業する枠組みが普及しつつある。
【０００３】
このような枠組みでは、ローカルコンピュータにＵＳＢデバイスを接続し、リモートコンピュータ上でそのＵＳＢデバイスを認識して使用する状況が想定される。例えば、ＵＳＢ接続により動画像をコンピュータ（PC)上に取り込むことのできるＵＳＢカメラを使用する場合、ＵＳＢカメラを遠くにあるリモートコンピュータに直接接続するのは煩雑であるため、手元のローカルコンピュータに接続してリモートコンピュータ上で使用したいと考えるユーザも多い。
【０００４】
このようなローカルコンピュータに接続したＵＳＢデバイスをリモートコンピュータ上で認識して使用する技術として、ＵＳＢリダイレクトと呼ばれ技術が知られている（特許文献１参照）。また、ローカルコンピュータではなく専用のデバイスサーバにＵＳＢデバイスを接続して、かかる接続されたＵＳＢデバイスを別のコンピュータから使用可能にするＵＳＢデバイスサーバと呼ばれる技術も存在している（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１０１１５号公報
【特許文献２】特開２００８−２８７４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述したＵＳＢリダイレクト技術では、ＵＳＢデバイスとの間でデータ通信が行われる都度、ＵＳＢプロトコル形式のデータとネットワークプロトコル形式のデータを相互変換する必要があるため、通信遅延やオーバーヘッドによって通信性能が低下するという問題があった。ＵＳＢデバイスには短時間に頻繁にデータをやりとりするものが多く、特にリアルタイムにデータ通信するＵＳＢカメラの場合、上記問題は顕著となる。
【０００７】
また上述したＵＳＢデバイスサーバは、ストレージやプリンタといった特定のＵＳＢデバイスにしか対応しておらず、ＯＳに依存した構成となっているため、リアルタイムにデータ通信するＵＳＢカメラ等のＵＳＢデバイスについては適用が困難であった。
【０００８】
したがって、本発明は、上記問題点を解決し、専用のデバイスサーバを利用する必要がなく、通信遅延やオーバーヘッドによる通信性能の低下を軽減できる、新しいデータ転送システムおよびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のデータ転送システムは、ローカルコンピュータに接続されたＵＳＢデバイスからデータを取得し、前記取得したデータを通信ネットワークを介してリモートコンピュータに送信するローカル制御手段と、前記ローカル制御手段から送信されるデータを取得し、前記取得したデータを前記リモートコンピュータ上で動作するアプリケーションに渡すリモート制御手段とを備え、前記ローカル制御手段は、前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御手段と、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御手段と、を備え、前記リモート制御手段は、前記転送制御手段から送信されるデータを受信してリモートコンピュータ関連メモリに記憶する受信手段と、前記リモートコンピュータで動作するアプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信する読出制御手段と、を備える。
【００１０】
本発明のローカル制御ユニットは、ローカルコンピュータに接続されたＵＳＢデバイスからデータを取得し、前記取得したデータを通信ネットワークを介してリモートコンピュータに送信するローカル制御ユニットであって、前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御手段と、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御手段と、を備える。
【００１１】
本発明のリモート制御ユニットは、ローカルコンピュータに接続されたＵＳＢデバイスのデータを通信ネットワークを介して取得し、前記取得したデータをリモートコンピュータ上で動作するアプリケーションに渡すリモート制御ユニットであって、前記ローカルコンピュータから送信される前記データを受信してリモートコンピュータ関連メモリに記憶する受信手段と、前記リモートコンピュータで動作するアプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信する読出制御手段と、を備える。
【００１２】
本発明のデータ転送方法は、ローカルコンピュータにおいて、前記ローカルコンピュータに接続されたＵＳＢデバイスからデータを取得し、前記取得したデータを通信ネットワークを介してリモートコンピュータに送信するローカル制御工程と、前記リモートコンピュータにおいて、ローカルコンピュータから送信されるデータを取得し、前記取得したデータを前記リモートコンピュータ上で動作するアプリケーションに渡すリモート制御工程とを備え、前記ローカル制御工程は、前記ＵＳＢデバイスから送信されるデータを受信してローカルコンピュータ関連メモリに記憶し、前記受信に応じて前記ＵＳＢデバイスに受信成功を通知するデバイス制御工程と、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データの量が閾値以上であるか否かを判断し、閾値以上である場合、前記ローカルコンピュータ関連メモリに記憶される未転送の前記データを読み出し、通信ネットワークに対応する形式に変換して前記リモートコンピュータに転送する転送制御工程と、を備え、前記リモート制御工程は、前記ローカルコンピュータから送信されるデータを受信してリモートコンピュータ関連メモリに記憶する受信工程と、前記アプリケーションからの要求に応じて前記リモートコンピュータ関連メモリに記憶される未読出の前記データを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信する読出工程と、を備える。
【００１３】
本発明のデータ転送方法のローカル制御工程、リモート制御工程は、それぞれローカルコンピュータ、リモートコンピュータが備えるＣＰＵにより実施することができるが、そのためのプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じて各コンピュータにインストールまたはロードすることができる。
【００１４】
なお、本明細書において、手段とは、ハードウェアにより実現されるユニット、ソフトウェアにより実現されるユニット、両方を用いて実現されるユニットを含む。また１つのユニットが２つ以上のハードウェアを用いて実現されてもよく、２つ以上のユニットが１つのハードウェアにより実現されても良い。
【発明の効果】
【００１５】
以上のように構成された本発明によれば、専用のデバイスサーバを利用する必要はなく、通信遅延やオーバーヘッドによる通信性能の低下を軽減することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態のデータ転送システム１００の概略構成を示す図である。
【図２】データ転送処理を説明するための図である。
【図３】データ転送処理を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の好適な実施形態に係るデータ転送システムについて詳細に説明する。
【００１８】
図１は、本発明の実施形態のデータ転送システムの概略構成を示す図である。図１に示すように、データ転送システム１００は、リモートコンピュータ１と、ローカルコンピュータ２と、ＵＳＢデバイス４０とを備えている。リモートコンピュータ１とローカルコンピュータ２とはインターネット等の通信ネットワーク５００を介して接続されており、ローカルコンピュータ２とＵＳＢデバイス４０とはＵＳＢにより接続されている。
【００１９】
リモートコンピュータ１は、アプリケーション１１、ＵＳＢドライバ１２、仮想ＵＳＢデバイス１３、データ転送リモート制御手段１４、リモート一時記憶手段１５などの機能手段を備えている。リモートコンピュータ１は、例えば、マイクロプロセッサからなるＣＰＵ（中央演算処理装置）、ＣＰＵにバス結合されたメモリ（ＲＯＭ、ＲＡＭ）、ＨＤＤ、および各種インタフェースなどのハードウェアを備える専用または汎用のコンピュータを用いて構成することができ、上記の各機能手段は、主にＣＰＵがメモリ、ＨＤＤなどに格納されるプログラムを実行して各ハードウェアを制御することにより実現される。
【００２０】
アプリケーション１１は、リモートコンピュータ１上で動作し、ＵＳＢデバイス４０から転送されるデータを利用するアプリケーションであり、例えば動画像ビューアなどである。
【００２１】
ＵＳＢドライバ１２は、アプリケーション１１に対してＵＳＢデバイスへアクセスするための種々の機能を提供する手段であり、従来のＵＳＢドライバと同様である。
【００２２】
仮想ＵＳＢデバイス１３は、ＵＳＢデバイス４０の入出力をＵＳＢプロトコルに従ってシミュレートする手段であり、リモートコンピュータ１上で動作するアプリケーションの一つとしてＵＳＢプロトコルに基づき実現される。データ転送リモート制御手段１４は、本発明の枠組みに従って、ローカルコンピュータ２から送信されるデータを取得し、前記取得したデータを仮想ＵＳＢデバイス１３に渡すユニットであり、ローカルコンピュータ２から送信されるデータを受信してリモート一時記憶手段１５に記憶する受信手段１４１、リモートコンピュータ１で動作するアプリケーションからの要求に応じてリモート一時記憶手段１５に記憶される未読出のデータを読み出し、前記アプリケーションが処理できる形式で前記アプリケーションに送信する読出制御手段１４２などを備える。
【００２３】
リモート一時記憶手段１５は、ＵＳＢデバイス４０のデータを一時的に記憶する手段であり、リモートコンピュータ１が備えるメモリやＨＤＤ、又はリモートコンピュータ１がアクセス可能な外部の記憶装置など、リモートコンピュータ１に関連する記憶手段を用いて実現される。
【００２４】
ローカルコンピュータ２は、ＵＳＢドライバ２１、データ転送ローカル制御手段２２、ローカル一時記憶手段２３などの機能手段を備えている。ローカルコンピュータ２は、例えば、マイクロプロセッサからなるＣＰＵ（中央演算処理装置）、ＣＰＵにバス結合されたメモリ（ＲＯＭ、ＲＡＭ）、ＨＤＤ、および各種インタフェースなどのハードウェアを備える専用または汎用のコンピュータを用いて構成することができ、上記の各機能手段は、主にＣＰＵがメモリ、ＨＤＤなどに格納されるプログラムを実行して各ハードウェアを制御することにより実現される。
【００２５】
ＵＳＢドライバ２１は、ローカルコンピュータ２上で動作するアプリケーション（データ転送ローカル制御手段２２を含む）に対してＵＳＢデバイスへアクセスするための種々の機能を提供する手段であり、従来のＵＳＢドライバと同様である。
【００２６】
データ転送ローカル制御手段２２は、本発明の枠組みに従って、ＵＳＢデバイス４０からデータを取得し、前記取得したデータを通信ネットワーク５００を介してリモートコンピュータ１に送信するユニットであり、ＵＳＢデバイス４０から送信されるデータを受信してローカル一時記憶手段２３に記憶し、前記受信に応じてＵＳＢデバイス４０に受信成功を通知するデバイス制御手段２２１、ローカル一時記憶手段２３に記憶される未転送のデータの量が閾値以上であるか否かを判断し、閾値以上である場合、ローカル一時記憶手段２３に記憶される未転送のデータを読み出し、通信ネットワーク５００に対応する形式に変換してリモートコンピュータ１に転送する転送制御手段２２２などを備える。
【００２７】
ローカル一時記憶手段２３は、ＵＳＢデバイス４０のデータを一時的に記憶する手段であり、ローカルコンピュータ２が備えるメモリやＨＤＤ、又はローカルコンピュータ２がアクセス可能な外部の記憶装置など、ローカルコンピュータ２に関連する記憶手段を用いて実現される。
【００２８】
以下、図２及び図３を参照して、本発明の枠組みを利用してリモートコンピュータ１にＵＳＢデバイス４０のデータを転送する場合の動作について説明する。なお本明細書において、フローチャート等に示す各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００２９】
まず、データ転送の前処理について説明する。
【００３０】
ＵＳＢデバイス４０がローカルコンピュータ２のＵＳＢポートに接続されると、ＵＳＢドライバ２１がその接続を検出する。接続されたことを検出する方法としては、例えば、ＵＳＢケーブル中の信号線（Ｄ＋、Ｄ−）のいずれかが所定電圧（３．３Ｖ）になることを検出すればよい。
【００３１】
ＵＳＢドライバ２１は、接続を検出した場合、ＵＳＢ規格に従って、ＵＳＢデバイス４０との間でデータ転送を行うために必要な動作を実行する。これにより、ＵＳＢドライバ２１を介してＵＳＢデバイス４０との間でデータ転送を行うことができる状態に移行する。
【００３２】
データ転送ローカル制御手段２２は、ＵＳＢドライバ２１による接続検出を監視しており、ＵＳＢドライバ２１によって接続が検出されると、通信ネットワーク５００の通信プロトコルに従って、データ転送リモート制御手段１４との間でデータ転送を行うために必要な動作を実行する。これにより、データ転送ローカル制御手段２２及びデータ転送リモート制御手段１４は互いに通信ネットワーク５００を介してデータ通信を行うことができる状態に移行する。
【００３３】
次に、第１のデータ転送処理について説明する（図２参照）。
【００３４】
アプリケーション１１がＵＳＢドライバ１２を介して仮想ＵＳＢデバイス１３にＵＳＢデバイス４０のデータ取得指示を出すと、アプリケーション１１と仮想ＵＳＢデバイス１３との間でＵＳＢプロトコルに従ってデータ転送ができる状態に移行した後、仮想ＵＳＢデバイス１３は、データ転送リモート制御手段１４にデータ読出要求を送る。これにより、第１のデータ転送処理が開始される。
【００３５】
かかる読出要求を受け付けたデータ転送リモート制御手段１４は、通信ネットワーク５００を介してデータ転送ローカル制御手段２２にデータ転送の開始を指示する（Ｓ１０１）。
【００３６】
かかる指示を受け付けたデータ転送ローカル制御手段２２は、ＵＳＢドライバ２１を介してＵＳＢデバイス４０にデータ転送を指示し、該指示に応じてＵＳＢデバイス４０から転送されるデータを受信する（Ｓ１０２）。
【００３７】
次に、データ転送ローカル制御手段２２は、前記受信したデータをローカル一時記憶手段２３に記憶し（Ｓ１０３）、前記受信に対する応答としてＵＳＢデバイス４０に受信成功を通知する（Ｓ１０４）。
【００３８】
次に、データ転送ローカル制御手段２２は、ローカル一時記憶手段２３に記憶した前記データに関して、データ転送リモート制御手段１４に未だ転送していないデータ（未転送データ）の量（データサイズ）を求め、該データ量が閾値以上であるか否かを判断する（Ｓ１０５）。なお、閾値は、ローカル一時記憶手段２３の記憶容量や通信ネットワーク５００の回線速度などに応じて定めることができる。
【００３９】
閾値より小さい場合、データ転送ローカル制御手段２２は、データ転送の終了指示が来るまでＳ１０２に再帰する。
【００４０】
一方、閾値以上である場合、データ転送ローカル制御手段２２は、ローカル一時記憶手段２３から未転送データを読み出し、通信ネットワーク５００の通信プロトコルに従って通信ネットワーク５００用のデータに変換してデータ転送リモート制御手段１４に送信し（Ｓ１０６）、その後、データ転送の終了指示が来るまでＳ１０２に再帰する。
【００４１】
データ転送リモート制御手段１４は、通信ネットワーク５００を介してデータ転送ローカル制御手段２２から送信されるデータを受信すると（Ｓ１０７）、前記受信したデータをリモート一時記憶手段１５に記憶し（Ｓ１０８）、その後、データ転送の終了指示が来るまでＳ１０７に再帰する。
【００４２】
次に、第２のデータ転送処理について説明する（図３参照）。第２の転送処理は、Ｓ１０１が実行された後に実行され、Ｓ１０２以降の処理とは並列に実行できる。
【００４３】
データ転送リモート制御手段１４は、ＵＳＢプロトコルに基づいて定まる転送タイミングにおいて、リモート一時記憶手段１５に記憶したＵＳＢデバイス４０のデータに関して、未だ読み出していないデータ（未読出データ）があるか否かを判断する（Ｓ２０１）。
【００４４】
未読出データがある場合、データ転送リモート制御手段１４は、該未読出データについて所定データ量を受信順に読み出し、ＵＳＢプロトコルに従ってＵＳＢデバイス用のデータに変換して仮想ＵＳＢデバイス１３に送信し（Ｓ２０２）、その後、データ転送の終了指示が来るまでＳ２０１に再帰する。
【００４５】
一方、未読出データがない場合、データ転送リモート制御手段１４は、未読出データがないことを示すＵＳＢデバイス用データ（ダミーデータ）を仮想ＵＳＢデバイス１３に送信し（Ｓ２０３）、その後、データ転送の終了指示が来るまでＳ２０１に再帰する。
【００４６】
データ転送リモート制御手段１４から送信されるデータを受信した仮想ＵＳＢデバイス１３は、該受信したデータをＵＳＢドライバ１２を介してアプリケーション１１に渡す。これにより、アプリケーション１１はＵＳＢデバイス４０のデータを取得し、利用することができる。
【００４７】
以上説明したように、本実施形態では、データ転送ローカル制御手段２２がＵＳＢデバイス４０から受信したデータをデータ転送リモート制御手段１４に送信する場合に、ＵＳＢデバイス４０から受信する都度、通信ネットワーク５００用のデータに変換してデータ転送リモート制御手段１４に送信するのではなく、ＵＳＢデバイス４０から受信したデータをローカル一時記憶手段２３に一旦、記憶し、閾値以上のデータ量が蓄積された場合に、通信ネットワーク５００用のデータに変換してデータ転送リモート制御手段１４に送信する構成としている。そのため、受信する都度、変換する場合に比較して、ＵＳＢ用データから通信ネットワーク５００用のデータへの変換回数を減らすことができるので、ＵＳＢデバイス４０のデータをリモートコンピュータ１にデータ転送する場合において、変換に起因する通信遅延やオーバーヘッドによる通信性能の低下を軽減することができる。
【００４８】
また、データ転送リモート制御手段１４が、リモート一時記憶手段１５に未転送データが記憶されていない場合、データ転送ローカル制御手段２２（ＵＳＢデバイス４０）からのデータ転送を待たずに、ダミーデータを送信する構成としているため、アプリケーション１１（仮想ＵＳＢデバイス１３）は、ＵＳＢデバイス４０のデータを受信するための接続状態を維持して、効率的にデータ通信を行うことができる。
（変形例）
本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【００４９】
例えば、ローカルコンピュータ２にＵＳＢデバイス４０を直接接続するのではなく、ＵＳＢハブなどを経由して接続する構成としてもよい。またローカルコンピュータ２にＵＳＢデバイス４０を複数接続することもできる。
【００５０】
また例えば、データ転送リモート制御手段１４がデータ転送ローカル制御手段２２から受信したデータをリモート一時記憶手段１５に記憶する際に、ＵＳＢプロトコルに従ってＵＳＢデバイス用のデータに変換してから記憶するように構成してもよい。この場合、データ転送リモート制御手段１４は、リモート一時記憶手段１５から読み出した未転送データを仮想ＵＳＢデバイス１３にそのまま送信することができる。かかる構成によれば、リモートコンピュータ１において、通信ネットワーク５００用のデータからＵＳＢ用データへの変換回数を減らすことができるので、変換に起因する通信遅延やオーバーヘッドによる通信性能の低下を軽減することができる。
【００５１】
また例えば、データ転送リモート制御手段１４が仮想ＵＳＢデバイス１３を介さずにアプリケーション１１にデータを送信するように構成してもよい。この場合、データ転送リモート制御手段１４は、リモート一時記憶手段１５への記憶時又はアプリケーション１１への送信時に、必要に応じて通信ネットワーク５００用のデータからアプリケーション１１が処理可能な形式のデータへ変換する。
【００５２】
なお、上記実施形態では、ローカルコンピュータ２からＵＳＢデバイス４０のデータをリモートコンピュータ１に転送するケースについて説明したが、本発明は、リモートコンピュータ１から所定のデータをローカルコンピュータ２に転送し、ＵＳＢデバイス４０に書き込むケースについても適用することができる。この場合、データ転送リモート制御手段１４は、データ転送ローカル制御手段２２と同様の機能（仮想ＵＳＢデバイス１３等から送信されるデータを受信してリモート一時記憶手段１５に記憶し、前記受信に応じて仮想ＵＳＢデバイス１３等に受信成功を通知し、リモート一時記憶手段１５に記憶される未転送のデータの量が閾値以上であるか否かを判断し、閾値以上である場合、リモート一時記憶手段１５に記憶される未転送のデータを読み出し、通信ネットワーク５００に対応する形式に変換してローカルコンピュータ２に転送する）を備え、一方、データ転送ローカル制御手段２２は、データ転送リモート制御手段１４と同様の機能（リモートコンピュータ１から送信されるデータを受信してローカル一時記憶手段２３に記憶し、所定のタイミングでローカル一時記憶手段２３に記憶される未読出のデータを読み出し、ＵＳＢデバイス４０用のデータ形式でＵＳＢドライバ２１を介してＵＳＢデバイス４０に送信する。未読出のデータがない場合は、ダミーデータを送信する）を備える。
【符号の説明】
【００５３】
１  リモートコンピュータ
２  ローカルコンピュータ
１１  アプリケーション
１２  ＵＳＢドライバ
１３  仮想ＵＳＢデバイス
１４  データ転送リモート制御手段
１５  リモート一時記憶手段
２１  ＵＳＢドライバ
２２  データ転送ローカル制御手段
２３  ローカル一時記憶手段
【図１】
0005392553.tif 000002
【図２】
0005392553.tif 000003
【図３】
0005392553.tif 000004