(57)【要約】【課題】関連技術の制限及び不利な点に起因する問題のうちの１つ又は複数を実質的に取り除くグラフィカルデスクトップ共有システムの装置及びグラフィカルデスクトップ共有システムに関連する方法を対象とする。【解決手段】サーバ側のＵＳＢ制御装置２６は、ＵＳＢ  ＣＤ−ＲＯＭ等をエミュレートし、クライアント側のＵＳＢ制御装置２８はＵＳＢ  ＣＤ−ＲＯＭをエミュレートする。サーバは、ビデオデータをサーバ側のエミュレートされたＣＤ−ＲＯＭに連続的に書き込み、クライアントは、クライアント側のエミュレートされたＣＤ−ＲＯＭから該データを連続的に読み取ると共に、該データを自身のモニタに与える。キーボードデータ及びマウスデータは、クライアント側のエミュレートされたＣＤ−ＲＯＭ及びサーバ側のエミュレートされたキーボード装置及びマウス装置を介して反対方向に転送される。【選択図】図２
2010079874.tif 000002
【特許請求の範囲】
【請求項１】
クライアントによるサーバの遠隔制御を容易にするための装置であって、
前記サーバに接続されるようになっている第１の通信制御装置であって、所定の通信プロトコルに従う第１の大容量記憶装置及び１つ又は複数のユーザ入力装置をエミュレートする、第１の通信制御装置と、
前記クライアントに接続されるようになっている第２の通信制御装置であって、所定の通信プロトコルに従う第２の大容量記憶装置をエミュレートする、第２の通信制御装置と、
前記第１の通信制御装置及び前記第２の通信制御装置に結合されると共に該第１の通信制御装置及び該第２の通信制御装置を制御する制御回路であって、該第１の通信制御装置と該第２の通信制御装置との間でデータを転送する、制御回路と、
前記制御回路に結合されるメモリであって、サーバ側アプリケーションプログラムとクライアント側アプリケーションプログラムとを格納する、メモリと、を備え、
前記制御回路は、前記サーバ側アプリケーションプログラムを前記第１の通信制御装置に、前記クライアント側アプリケーションプログラムを前記第２の通信制御装置に、それぞれ転送する、装置。
【請求項２】
前記サーバ側アプリケーションプログラムは、前記サーバに、該サーバのデスクトップイメージを表すビデオデータを、前記エミュレートされた第１の大容量記憶装置に送信させると共に、前記エミュレートされたユーザ入力装置からユーザ入力装置データを受信させるように構成され、前記クライアント側アプリケーションプログラムは、前記クライアントに、前記ユーザ入力装置データを前記エミュレートされた第２の大容量記憶装置に送信させると共に、該エミュレートされた第２の大容量記憶装置からビデオデータを受信させるように構成される、請求項１に記載の装置。
【請求項３】
前記所定の通信プロトコルはユニバーサルシリアルバス（ＵＳＢ）プロトコルであり、前記第１の通信制御装置及び前記第２の通信制御装置はＵＳＢ制御装置であり、前記第１のエミュレートされた大容量記憶装置及び前記第２のエミュレートされた大容量記憶装置はＣＤ−ＲＯＭ装置であり、前記メモリは第１の自動実行ファイル及び第２の自動実行ファイルをさらに格納し、
前記制御回路は、前記第１の自動実行ファイルを前記第１の通信制御装置に転送し、前記第２の自動実行ファイルを前記第２の通信制御装置に転送し、
前記第１の通信制御装置は前記第１のエミュレートされたＣＤ−ＲＯＭ装置上の前記第１の自動実行ファイル及び前記サーバ側アプリケーションプログラムを提示し、且つ
前記第２の通信制御装置は前記第２のエミュレートされたＣＤ−ＲＯＭ装置上の前記第２の自動実行ファイル及び前記クライアント側アプリケーションプログラムを提示する、請求項１に記載の装置。
【請求項４】
前記サーバ側アプリケーションプログラムは、前記サーバに、ビデオデータを前記エミュレートされた第１の大容量記憶装置に転送するためのプロセスであって、
データ送信コマンドを含む第１のコマンドパケットを前記第１の大容量記憶装置に送信すること、
前記ビデオデータを前記第１の大容量記憶装置に送信すること、及び
前記第１の大容量記憶装置から第１のステータスパケットを受信すること、
を含むプロセスを実行させるように構成され、
前記クライアント側アプリケーションプログラムは、前記クライアントに、前記エミュレートされた第２の大容量記憶装置から前記ビデオデータを受信するためのプロセスであって、
データ読取りコマンドを含む第２のコマンドパケットを前記第２の大容量記憶装置に送信すること、
前記第２の大容量記憶装置から前記ビデオデータを受信すること、及び
前記第２の大容量記憶装置から第２のステータスパケットを受信すること、
を含むプロセスを実行させるように構成される、請求項１に記載の装置。
【請求項５】
前記クライアント側アプリケーションプログラムは、前記クライアントに、前記ユーザ入力装置データを前記エミュレートされた第２の大容量記憶装置に送信するためのプロセスであって、前記第２のコマンドパケット内の前記ユーザ入力装置データを前記第２の大容量記憶装置に送信することを含む、プロセスを実行させるようにさらに構成され、
前記制御回路は前記第２のコマンドパケットを処理して前記ユーザ入力装置データを抽出すると共に、該抽出されたデータを前記第１の通信制御装置に転送し、
前記第１の通信制御装置は、前記ユーザ入力装置データを、前記エミュレートされたユーザ入力装置を介して出力する、請求項４に記載の装置。
【請求項６】
前記第１の通信制御装置及び前記第２の通信制御装置、前記制御回路、並びに前記メモリを収容する本体と、
前記本体に統合して形成される第１のケーブル及び第２のケーブルであって、該第１のケーブルは前記第１の通信制御装置に接続され、該第２のケーブルは前記第２の通信制御装置に接続され、該第１のケーブル及び該第２のケーブルは前記所定の通信プロトコルに従うコネクタを有する、第１のケーブル及び第２のケーブルと、
をさらに備える、請求項１に記載の装置。
【請求項７】
前記第１の通信制御装置及び前記第２の通信制御装置、前記制御回路、並びに前記メモリを収容する本体と、
前記所定の通信プロトコルに従う第１のコネクタ及び第２のコネクタであって、該第１のコネクタ及び該第２のコネクタは本体内に配置され、該第１のコネクタは前記第１の通信制御装置に結合され、該第２のコネクタは前記第２の通信制御装置に結合される、第１のコネクタ及び第２のコネクタと、
をさらに備える、請求項１に記載の装置。
【請求項８】
クライアントによってサーバを遠隔制御する方法であって、
（ａ）第１の通信制御装置と、
第２の通信制御装置と、
前記第１の通信制御装置に結合される第１のコネクタと、
前記第２の通信制御装置に結合される第２のコネクタと、
前記第１の通信制御装置及び前記第２の通信制御装置に結合されると共に該第１の通信制御装置及び該第２の通信制御装置を制御する制御回路と、
前記制御回路に結合されるメモリであって、サーバ側アプリケーションプログラム及びクライアント側アプリケーションプログラムを格納する、メモリと、
を備える、接続装置を提供するステップと、
（ｂ）前記第１のコネクタが前記サーバに接続されると、前記第１の通信制御装置が、所定の通信プロトコルに従う第１の大容量記憶装置及び１つ又は複数のユーザ入力装置をエミュレートするステップと、
（ｃ）前記第２のコネクタが前記クライアントに接続されると、前記第２の通信制御装置が、前記所定の通信プロトコルに従う第２の大容量記憶装置をエミュレートするステップと、
（ｄ）前記制御回路が、前記サーバ側アプリケーションプログラムを前記第１の通信制御装置に、前記クライアント側アプリケーションプログラムを前記第２の通信制御装置に、それぞれ転送するステップと、
（ｅ）前記第１の通信制御装置が、前記サーバから、前記エミュレートされた第１の大容量記憶装置を介して、デスクトップイメージを表すビデオデータを受信するステップと、
（ｆ）前記制御回路が前記ビデオデータを前記第２の通信制御装置に転送するステップと、
（ｇ）前記第２の通信制御装置が、前記ビデオデータを前記エミュレートされた第２の大容量記憶装置を介して前記クライアントに出力するステップと、
（ｈ）前記第２の通信制御装置が、前記クライアントから、前記エミュレートされた第２の大容量記憶装置を介してユーザ入力装置データを受信するステップと、
（ｉ）前記制御回路が、前記ユーザ入力装置データを前記第１の通信制御装置に転送するステップと、
（ｊ）前記第１の通信制御装置が、前記ユーザ入力装置データを、前記エミュレートされたユーザ入力装置を介して前記サーバに出力するステップと、
を含む、方法。
【請求項９】
前記所定の通信プロトコルはユニバーサルシリアルバス（ＵＳＢ）プロトコルであり、前記第１の通信制御装置及び前記第２の通信制御装置はＵＳＢ制御装置であり、前記第１のエミュレートされた大容量記憶装置及び前記第２のエミュレートされた大容量記憶装置はＣＤ−ＲＯＭ装置であり、前記接続装置の前記メモリは第１の自動実行ファイル及び第２の自動実行ファイルをさらに格納し、
（ｋ）前記制御回路が、前記第１の自動実行ファイルを前記第１の通信制御装置に、前記第２の自動実行ファイルを前記第２の通信制御装置に、それぞれ転送するステップと、
（ｌ）前記第１の通信制御装置が、前記第１の自動実行ファイル及び前記サーバ側アプリケーションプログラムを、前記第１のエミュレートされたＣＤ−ＲＯＭ装置上に提示するステップと、
（ｍ）前記第２の通信制御装置が、前記第２の自動実行ファイル及び前記クライアント側アプリケーションプログラムを、前記第２のエミュレートされたＣＤ−ＲＯＭ装置上に提示するステップと、
をさらに含み、ステップ（ｋ）〜（ｍ）はステップ（ｅ）〜（ｊ）の前に実行される、請求項８に記載の方法。
【請求項１０】
ステップ（ｅ）は、
（ｅ１）前記サーバから送信データコマンドを含む第１のコマンドパケットを受信するステップと、
（ｅ２）前記サーバから前記ビデオデータを受信するステップと、
（ｅ３）第１のステータスパケットを前記サーバに送信するステップと、
を含み、ステップ（ｇ）は、
（ｇ１）前記クライアントからデータ読取りコマンドを含む第２のコマンドパケットを受信するステップと、
（ｇ２）前記ビデオデータを前記クライアントに送信するステップと、
（ｇ３）第２のステータスパケットを前記クライアントに送信するステップと、
を含む、請求項８に記載の方法。
【請求項１１】
ステップ（ｈ）は、前記クライアントから、前記ユーザ入力装置データを含むコマンドパケットを受信するステップを含み、
ステップ（ｉ）は、前記制御回路が、前記コマンドパケットを処理するステップであって、前記ユーザ入力装置データを抽出する処理をするステップ、及び、該抽出されたデータを前記第１の通信制御装置に転送するステップを含む、請求項８に記載の方法。
【請求項１２】
（ｎ）ステップ（ｅ）〜（ｊ）の前に、前記第２の通信制御装置が前記クライアントからデータ転送を開始するための開始コマンドを受信するステップ、及びそれに応答して、前記第１の通信制御装置がデータ転送を開始するための別の開始コマンドを前記サーバに送信するステップ、をさらに含む、請求項８に記載の方法。
【請求項１３】
第１のコンピュータと第２のコンピュータとの間でビデオデータ及びユーザ入力装置データを通信する方法であって、
（ａ）前記第１のコンピュータが、データ送信コマンドを含む第１のコマンドパケットを第１のエミュレートされた大容量記憶装置に送信するステップと、
（ｂ）前記第１のコンピュータが前記ビデオデータを前記第１のエミュレートされた大容量記憶装置に送信するステップと、
（ｃ）前記ビデオデータを、前記第１のエミュレートされた大容量記憶装置から第２のエミュレートされた大容量記憶装置に転送するステップと、
（ｄ）前記第２のコンピュータがデータ読取りコマンド及び前記ユーザ入力装置データを含む第２のコマンドパケットを前記第２のエミュレートされた大容量記憶装置に送信するステップと、
（ｅ）前記第２のコンピュータが、前記第２のエミュレートされた大容量記憶装置から前記ビデオデータを受信するステップと、
（ｆ）前記第２のコマンドパケットから前記ユーザ入力装置データを抽出すると共に、前記ユーザ入力装置データを前記第１のエミュレートされた大容量記憶装置に転送するステップと、
（ｇ）前記第１のエミュレートされた大容量記憶装置からの前記ユーザ入力装置データを、前記第１のコンピュータに出力するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのコンピュータが別のコンピュータを遠隔制御することを可能にするシステムに関し、特に、ＵＳＢ（ユニバーサルシリアルバス）インタフェースを使用する、そのようなグラフィカルデスクトップ共有システムに関する。
【０００２】
本出願は、２００８年９月２５日付けで出願された、米国特許出願第１２／２３７，５４９号の利益を主張するものであり、その主題は参照により本明細書に援用される。
【背景技術】
【０００３】
仮想ネットワークコンピューティング（ＶＮＣ）は、１つのコンピュータ（クライアント）が別のコンピュータ（サーバ）を遠隔制御することを可能にする、グラフィカルデスクトップ共有システムである。サーバコンピュータ及びクライアントコンピュータはネットワークによって接続される。キーボード及びマウスのデータはクライアントからサーバに送信される。そして、サーバデスクトップイメージを表すビデオ信号がクライアントに送信されると共にクライアントのモニタに表示される。このようなシステムを使用して、たとえばＩＴ・技術サポート人員が他のユーザのコンピュータを遠隔制御することができる。
【０００４】
特許文献１には、「ユニバーサルシリアルバス（ＵＳＢ）ファイル転送ケーブルの適用方法。ＵＳＢファイル転送ケーブルが、マスストレージクラス標準規格をサポートする、ＷＩＮＤＯＷＳ（登録商標），ＭＡＣ（登録商標），Ｌｉｎｕｘ（登録商標）等のようなオペレーティングシステムを搭載している２台のコンピュータ間で接続され、該ＵＳＢファイル転送ケーブルもマスストレージクラスをサポートする場合、いずれのコンピュータも、ＵＳＢファイル転送ケーブルで提供されるシステム情報にアクセスすることができる。アプリケーションプログラムがＵＳＢファイル転送ケーブル内に格納され、且つＵＳＢ転送ケーブルが、フロッピー（登録商標）ディスクドライブ、ハードディスクドライブ、又はＣＤ−ＲＯＭドライブ等のような自動実行記憶装置としてシミュレートされるため、本発明のＵＳＢファイル転送ケーブルは、ドライバ及びプログラムをインストールする必要なく自動的にファイル転送を実行することができる。ファイル転送は、２台のコンピュータ間で、いずれのコンピュータにもドライバ及びプログラムをインストールする必要なく自動的に実行することができるため、使用者に対して、ＵＳＢファイル転送ケーブルの適用方法は、プラグアンドプレイ機能を提供する。」（要約書）と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００４／０２３０７０８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、関連技術の制限及び不利な点に起因する問題のうちの１つ又は複数を実質的に取り除くグラフィカルデスクトップ共有システムの装置及びグラフィカルデスクトップ共有システムに関連する方法を対象とする。
【０００７】
本発明のさらなる特徴及び利点は以下の詳細な説明において説明されると共に、該詳細な説明から部分的に明らかになるか、又は本発明を実施することによって知ることができるであろう。本発明の目的及び他の利点は、記載される明細書、特許請求の範囲、並びに添付の図面において特に指摘される構造によって実現及び達成される。
【課題を解決するための手段】
【０００８】
具現化されると共に広範に説明されているように、本発明は、クライアントによるサーバの遠隔制御を容易にするための装置であって、サーバに接続されるようになっている第１の通信制御装置であって、所定の通信プロトコルに従う第１の大容量記憶装置及び１つ又は複数のユーザ入力装置をエミュレートする、第１の通信制御装置と、クライアントに接続されるようになっている第２の通信制御装置であって、所定の通信プロトコルに従う第２の大容量記憶装置をエミュレートする、第２の通信制御装置と、第１の通信制御装置及び第２の通信制御装置に結合されると共に該第１の通信制御装置及び該第２の通信制御装置を制御する制御回路であって、該第１の通信制御装置と該第２の通信制御装置との間でデータを転送する、制御回路と、制御回路に結合されるメモリであって、サーバ側アプリケーションプログラムとクライアント側アプリケーションプログラムとを格納するメモリと、備え、制御回路は、サーバ側アプリケーションプログラムを第１の通信制御装置に、クライアント側アプリケーションプログラムを第２の通信制御装置に、それぞれ転送し、サーバ側アプリケーションプログラムは、サーバに、該サーバのデスクトップイメージを表すビデオデータを、エミュレートされた第１の大容量記憶装置に送信させると共に、エミュレートされたユーザ入力装置からユーザ入力装置データを受信させるように構成され、クライアント側アプリケーションプログラムは、クライアントに、ユーザ入力装置データをエミュレートされた第２の大容量記憶装置に送信させると共に、エミュレートされた第２の大容量記憶装置からビデオデータを受信させるように構成される、装置を提供する。
【０００９】
別の態様では、本発明は、クライアントによってサーバを遠隔制御する方法であって、（ａ）第１の通信制御装置と、第２の通信制御装置と、第１の通信制御装置に結合される第１のコネクタと、第２の通信制御装置に結合される第２のコネクタと、第１の通信制御装置及び第２の通信制御装置に結合されると共に該第１の通信制御装置及び該第２の通信制御装置を制御する制御回路と、制御回路に結合されるメモリであって、サーバ側アプリケーションプログラム及びクライアント側アプリケーションプログラムを格納する、メモリと、を備える、接続装置を提供するステップと、（ｂ）第１のコネクタがサーバに接続されると、第１の通信制御装置が、所定の通信プロトコルに従う第１の大容量記憶装置及び１つ又は複数のユーザ入力装置をエミュレートするステップと、（ｃ）第２のコネクタがクライアントに接続されると、第２の通信制御装置が、所定の通信プロトコルに従う第２の大容量記憶装置をエミュレートするステップと、（ｄ）制御回路は、サーバ側アプリケーションプログラムを第１の通信制御装置に、クライアント側アプリケーションプログラムを第２の通信制御装置に、それぞれ転送するステップと、（ｅ）第１の通信制御装置が、サーバから、エミュレートされた第１の大容量記憶装置を介して、デスクトップイメージを表すビデオデータを受信するステップと、（ｆ）制御回路がビデオデータを第２の通信制御装置に転送するステップと、（ｇ）第２の通信制御装置が、ビデオデータをエミュレートされた第２の大容量記憶装置を介してクライアントに出力するステップと、（ｈ）第２の通信制御装置が、クライアントから、エミュレートされた第２の大容量記憶装置を介してユーザ入力装置データを受信するステップと、（ｉ）制御回路が、ユーザ入力装置データを第１の通信制御装置に転送するステップと、（ｊ）第１の通信制御装置が、ユーザ入力装置データを、エミュレートされたユーザ入力装置を介してサーバに出力するステップと、を含む、方法を提供する。
【００１０】
別の態様では、本発明は、クライアントによってサーバを遠隔制御する方法であって、（ａ）所定の通信プロトコルに従う第１の大容量記憶装置及び１つ又は複数のユーザ入力装置をエミュレートする第１の通信制御装置と、所定の通信プロトコルに従う第２の大容量記憶装置をエミュレートする第２の通信制御装置と、第１の通信制御装置に結合される第１のコネクタと、第２の通信制御装置に結合される第２のコネクタと、第１の通信制御装置及び第２の通信制御装置に結合されると共に該第１の通信制御装置及び該第２の通信制御装置を制御する制御回路と、第１の通信制御装置と第２の通信制御装置との間でデータを転送する制御回路と、サーバ側アプリケーションプログラムとクライアント側アプリケーションプログラムとを格納する、制御回路に結合されるメモリと、を備え、制御回路は、サーバ側アプリケーションプログラムを第１の通信制御装置に、クライアント側アプリケーションプログラムを第２の通信制御装置に、それぞれ転送し、サーバ側アプリケーションプログラムは、サーバに、該サーバのデスクトップイメージを表すビデオデータを、エミュレートされた第１の大容量記憶装置に送信させると共に、エミュレートされたユーザ入力装置からユーザ入力装置データを受信させるように構成され、クライアント側アプリケーションプログラムは、クライアントに、ユーザ入力装置データをエミュレートされた第２の大容量記憶装置に送信させると共に、エミュレートされた第２の大容量記憶装置からビデオデータを受信させるように構成される、接続装置を提供するステップと、（ｂ）第１のコネクタをサーバに接続するステップと、（ｃ）第２のコネクタをクライアントに接続するステップと、（ｄ）クライアントから接続装置に開始コマンドを発行するステップと、を含む、方法を提供する。
【００１１】
上記の全体的な説明及び以下の詳細な説明は共に例示的且つ説明的であり、特許請求される本発明のさらなる説明を提供するように意図されることを理解されたい。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるグラフィカルデスクトップ共有システムの構成を示す。
【図２】本発明の一実施形態による遠隔デスクトップ制御のための接続装置の構造を示す。
【図３】ホストコンピュータと大容量記憶装置との間でのバルクデータ転送を示す。
【図４】本発明の一実施形態による、接続装置を使用してデスクトップ共有及びサーバの遠隔制御を行う、サーバ側で実行されるプロセスを示す。
【図５】本発明の一実施形態による、接続装置を使用してデスクトップ共有及びサーバの遠隔制御を行う、クライアント側で実行されるプロセスを示す。
【発明を実施するための形態】
【００１３】
要求されるように、本明細書において本発明の詳細な例示的な実施形態が開示される。しかしながら、本発明による技術、システム及び動作構造は、多岐にわたる形態及びモードで具現化することができ、それらのうちの幾つかは、開示される実施形態の形態及びモードと著しく異なる場合がある。したがって、本明細書において開示される特定の構造的詳細及び機能的詳細は代表的なものに過ぎないが、その意味において、それらは開示の目的で最良の実施形態を与えると共に、本明細書において本発明の範囲を規定する特許請求の範囲の基礎を提供するものと見なされる。以下において本発明の好ましい実施形態（及び幾つかの代替的な実施形態）の詳細な説明を提示する。
【００１４】
本発明の実施形態によれば、グラフィカルデスクトップ共有及び遠隔制御のシステムにおいて、サーバ（制御されていると共に、自身のデスクトップイメージを共有しているコンピュータ）及びクライアント（サーバのデスクトップイメージを閲覧していると共にサーバを制御するためのキーボード信号及びマウス信号を送信しているコンピュータ）は、ＵＳＢコネクタを有する接続装置（ケーブル）によって両端となるよう接続されている。接続装置は、サーバとクライアントとの間のデスクトップ共有及び遠隔制御を容易にする。図１は、システムの全体構成を示す。サーバコンピュータ（サーバ）１２及びクライアントコンピュータ（クライアント）１４は２本のＵＳＢケーブル１８ａ及び１８ｂによって、それぞれ接続装置（装置）１６に接続される。接続装置１６は典型的には小さなフォームファクタを有する。ＵＳＢケーブル１８ａ及び１８ｂは、装置１６の本体と統合して形成してもよく、又は装置１６の本体の個々のコネクタに差し込まれる物理的に別個のケーブルとしてもよく、又はそれらの組み合わせであってもよい。
【００１５】
図２において、接続装置１６の構造が示される。装置１６は、メモリ２２と、マイクロ制御装置ユニットＭＣＵ２４のような制御回路と、第１の通信制御装置としてのサーバ用ＵＳＢ制御装置２６と、第２の通信制御装置としてのクライアント用ＵＳＢ制御装置２８とを備える。ＵＳＢケーブル１８ａはサーバ用ＵＳＢ制御装置２６に接続され、ＵＳＢケーブル１８ｂはクライアント用ＵＳＢ制御装置２８に接続される。メモリ２２は、以下でより詳細に説明されるように、ＭＣＵ２４並びにサーバ用ＵＳＢ制御装置２６及びクライアント用ＵＳＢ制御装置２８のためのファームウェアと、サーバ１２及びクライアント１４によってそれぞれ実行される／（好ましくは自動的に実行される）遠隔制御プログラムとを格納する。ＭＣＵ２４はサーバ用ＵＳＢ制御装置２６及びクライアント用ＵＳＢ制御装置２８を制御する。また、ＭＣＵ２４は、以下でより詳細に説明されるように、サーバ用ＵＳＢ制御装置２６とクライアント用ＵＳＢ制御装置２８との間でデータを転送すると共に、クライアント１４からのキーボードデータ及びマウスデータを処理する。サーバ用ＵＳＢ制御装置２６及びクライアント用ＵＳＢ制御装置２８は、ＵＳＢプロトコルを使用してサーバ１２及びクライアント１４と通信する。
【００１６】
クライアント用ＵＳＢ制御装置２８は、クライアント１４のためのＵＳＢ  ＣＤ−ＲＯＭ装置をエミュレートする。換言すれば、クライアント１４にとって、装置１６は、ＵＳＢプロトコルを使用してクライアント１４と通信しているＣＤ−ＲＯＭのように見える。たとえば、装置１６が差し込まれると、クライアント１４の「マイコンピュータ」ウィンドウに追加のＣＤ−ＲＯＭ装置が示され、「デバイスマネージャ」ウィンドウに追加のＵＳＢ大容量記憶装置が示される。同様に、サーバ用ＵＳＢ制御装置２６は、サーバ１２のためのＵＳＢ  ＣＤ−ＲＯＭ／キーボード／マウス複合装置をエミュレートする。換言すれば、サーバ１２にとって、装置１６は、ＵＳＢプロトコルを使用してサーバ１２と通信しているＣＤ−ＲＯＭ／キーボード／マウス複合装置のように見える。たとえば、装置１６が差し込まれると、サーバ１２の「マイコンピュータ」ウィンドウに追加のＣＤ−ＲＯＭ装置が示され、「デバイスマネージャ」ウィンドウに追加のＵＳＢ大容量記憶装置、追加のキーボード、及び追加のマウスが示される。この例において、サーバ用ＵＳＢ制御装置２６は、キーボード装置及びマウス装置の両方をエミュレートするが、代替的に、キーボード装置のみ、又はマウス装置のみをエミュレートしてもよく、それらはユーザ入力装置として個々に又はまとめて参照されてもよい。
【００１７】
一例としてＣＤ−ＲＯＭが記載されているが、サーバ用ＵＳＢ制御装置２６及びクライアント用ＵＳＢ制御装置２８は、ＵＳＢマスストレージクラス標準規格に従う、ＤＶＤ−ＲＯＭ、フラッシュドライブ、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ等のような他の大容量記憶装置もエミュレートすることができる。ＣＤ−ＲＯＭは、便利な自動実行機能を提供するため、エミュレートされた装置として好まれる。
【００１８】
エミュレートされた装置（ＵＳＢ  ＣＤ−ＲＯＭ，ＵＳＢ  ＣＤ−ＲＯＭ／キーボード／マウス）は標準的な装置であるため、ＷＩＮＤＯＷＳ（登録商標），ＭＡＣ（登録商標），Ｌｉｎｕｘ（登録商標）等のような一般的なオペレーティングシステムを実行するコンピュータは、いかなる特殊なドライバもインストールする必要なく、既存のドライバを使用して接続装置１６と通信することができる。ＵＳＢ  ＣＤ−ＲＯＭ装置又はＵＳＢ  ＣＤ−ＲＯＭ／キーボード／マウス複合装置をエミュレートする方法は、該技術分野において既知であり、より詳細な説明はここでは省略する。
【００１９】
サーバ１２のためのエミュレートされたＣＤ−ＲＯＭ装置は、サーバ１２によって実行されるサーバ側遠隔制御プログラムを含む。エミュレートされたＣＤ−ＲＯＭは、好ましくは自動実行機能を有し、該機能は、エミュレートされたＣＤ−ＲＯＭに自動実行ファイルを提供することによって実施することができる。したがって、エミュレートされたＣＤ−ＲＯＭ上のサーバ側遠隔制御プログラムは、装置１６がサーバ１２に差し込まれると自動的にサーバ１２によって実行され、ユーザは別個のプログラムインストールステップを実行する必要がない。サーバ側遠隔制御プログラムは、サーバ１２に、該サーバ１２によって生成されたビデオ（デスクトップイメージ）及び音声データを、該ビデオデータ及び音声データをエミュレートされたＣＤ−ＲＯＭ装置に書き込むことによって接続装置１６に連続的に転送すること、並びに、エミュレートされたキーボード装置及びマウス装置からキーボードデータ及びマウスデータを連続的に読み取ることを命令する。サーバ１２は、キーボードデータ及びマウスデータを使用して自身の機能を制御する。
【００２０】
同様に、クライアント１４のためのエミュレートされたＣＤ−ＲＯＭ装置は、クライアント１４によって実行されるクライアント側遠隔制御プログラムを含み、該クライアント側遠隔制御プログラムをクライアント１４に自動的に実行させる自動実行ファイルも含む。クライアント側遠隔制御プログラムは、クライアント１４に、ビデオデータ及び音声データを、エミュレートされたＣＤ−ＲＯＭ装置から該ビデオデータ及び音声データを読み取ることによって、接続装置１６から連続的に受信することを命令する。クライアント１４は、そのビデオデータ及び音声データを自身のモニタ及びスピーカに与える。好ましい実施形態では、サーバ１２のデスクトップはウィンドウ（本明細書では遠隔制御ウィンドウと称される）として、クライアント１４のデスクトップ上に表示される。クライアント１４は、サーバ１２から、サーバ１２のデスクトップの解像度に関する情報を受信し、その情報に基づいてウィンドウ及び該ウィンドウの内容を描画する。遠隔制御ウィンドウはドラッグ（移動）及びリサイズすることができる。好ましい一実施形態では、クライアント側遠隔制御プログラムが遠隔制御ウィンドウを作成するが、ウィンドウを表示及び管理する実際の機能（ドラッグ、リサイズ等）は、クライアントコンピュータ１４のオペレーティングシステムによって実行される。代替的に、これらの機能は、異なるプログラミング方法によりアプリケーションソフトウェアによって実行することができる。クライアント側遠隔制御プログラムは、クライアント１４に、サーバ１２に向けられたキーボードイベント及びマウスイベントを取得することも命令する。たとえば、クライアント１４は、カーソルが遠隔制御ウィンドウ内に位置しているか否か、及び／又はウィンドウがクライアント１４のデスクトップのトップウィンドウであるか否かに基づいて、キーボードイベント又はマウスイベントがサーバコンピュータ１２を制御するように意図されているか否かを判断することができる。これは、クライアント１４のオペレーティングシステムの機能でもある。キーボードイベント又はマウスイベントがサーバ１２に向けられている場合、クライアント１４は、後述する様式で、キーボードデータ及びマウスデータを接続装置１６に連続的に転送する。ビデオデータ及び音声データがサーバ１２から接続装置１６を介してクライアント１４に連続的に転送され、キーボードデータ及びマウスデータが反対方向に連続的に転送されることによって、グラフィカルデスクトップ共有及びサーバ１２の遠隔制御が達成される。
【００２１】
サーバ側遠隔制御プログラム及びクライアント側遠隔制御プログラム並びに自動実行ファイルは、メモリ２２に格納されると共に、ＭＣＵ２４によってサーバ用ＵＳＢ制御装２６置及びクライアント用ＵＳＢ制御装置２８にそれぞれ転送される。
【００２２】
図２において、サーバ１２と接続装置１６との間のデータ転送、及びクライアント１４と接続装置１６との間のデータ転送がより詳細に示される。ホストコンピュータ（サーバ１２又はクライアント１４のいずれか）とエミュレートされたＣＤ−ＲＯＭ装置との間のバルクのみの転送は、３つの段階を有する。まず、ホストコンピュータは、コマンドブロックラッパ（ＣＢＷ）と呼ばれるＯＵＴパケットをＣＤ−ＲＯＭに送信する。ＣＢＷは、ＳＣＳＩコマンド、たとえばサーバ１２のＣＢＷ内のSend_dataコマンド又はクライアント１４のＣＢＷ内のRead_dataコマンドを含む。次に、バルクデータ（存在する場合）は、サーバ１２の場合はＯＵＴデータとして、クライアント１４の場合はＩＮデータとして転送される。データ転送段階の後、ホストコンピュータはＩＮパケットを送信し、ＵＳＢ制御装置から、データ転送が成功したか否かを示すコマンド状態ラッパ（ＣＳＷ）パケットを受信する。接続装置１６内で、ＭＣＵ２４は、サーバ用ＵＳＢ制御装置２６からクライアント用ＵＳＢ制御装置２８にバルクデータを転送する。
【００２３】
本発明によるデスクトップ共有及び遠隔制御のシステムにおいて、サーバ１２からクライアント１４へのビデオデータ及び音声データは、バルクデータとして、エミュレートされたＣＤ−ＲＯＭ装置を介して上述のように転送される。他方で、クライアント１４からサーバ１２へのキーボード（ＫＢ）データ及びマウス（ＭＳ）データは、バルクデータとしては転送されない。そうではなく、図２に示すように、キーボードデータ及びマウスデータは、クライアント１４によってクライアント用ＵＳＢ制御装置２８に送信されるＣＢＷ内にパッケージされる。ＭＣＵ２４は、クライアント用ＵＳＢ制御装置２８によって受信されたＣＢＷを処理してキーボードデータ及びマウスデータを抽出し、そのデータをサーバ用ＵＳＢ制御装置２６に転送する。サーバ用ＵＳＢ制御装置２６は、そのキーボードデータ及びマウスデータを、エミュレートされたＵＳＢキーボード装置及びマウス装置
のそれぞれのエンドポイントを介してサーバ１２に出力する。
【００２４】
クライアント１４からサーバ１２に送信する必要がある、ユーザインタフェース構成情報、ハードウェア情報等のような他の情報は、キーボードホットキーを使用して送信することができる。たとえば、機能キーを使用して音声をオン及びオフにすることができる。クライアント側ユーザが機能キーを押下すると、ホットキー信号が他のキーボードデータと同じように送信される。サーバ１２上の、サーバ側遠隔制御プログラムは、ホットキーデータを受信すると、それに応答する。
【００２５】
キーボードデータ及びマウスデータを、ＳＣＳＩコマンドと共に、上述の様式でＣＢＷ内で転送することによって、バルクデータ転送効率が上がる。サーバ１２及びクライアント１４のオペレーティングシステムは、典型的には、ＵＳＢ大容量記憶装置にデータを転送すると共にＵＳＢ大容量記憶装置からデータを転送するための所定の帯域幅を有し、一時にデータの読み取りのみ又は書き込みのみを行うことができる（すなわちデータは一時に一方向に流れることができる）。（サーバ１２からクライアント１４への）ビデオデータ及び音声データと、（クライアント１４からサーバ１２への）キーボードデータ及びマウスデータとが、両方バルクデータとして転送される場合、一方の方向への比較的大容量のビデオデータ及び音声データの転送が、他方の方向への比較的小容量のキーボードデータ及びマウスデータの転送によって中断される。このことは、バルクのみのデータ転送において、各段階（ＣＢＷ、データ、ＣＳＷ）が、２つの開始フレーム（ＳＯＦ）（ＵＳＢ１．１の場合約２ｍｓ、ＵＳＢ２．０の場合約２５０μｓ）だけ前の段階から隔てられるため、非効率となる（図３を参照のこと）。したがって、少量のデータ（たとえばキーボードデータ及びマウスデータ）のみを送信する必要がある場合であっても、少なくとも６ｍｓの時間が必要とされる。ＳＯＦと同じ時間内でデータバルクの数キロバイトを転送することができる（おおよそＵＳＢ１．１の場合２ｍｓで３キロバイト、ＵＳＢ２．０の場合２５０μｓで１５キロバイト）という事実を考慮すると、データ転送を中断することによって引き起こされるオーバヘッドは重大である。結果として、ビデオデータ及び音声データの転送効率は、キーボードデータ及びマウスデータの転送によって大きく影響を受ける。図３において、破線のボックス内のイベントは、クライアント１４からエミュレートされたＣＤ−ＲＯＭ装置への、キーボードデータ及びマウスデータの転送を表す。本発明の好ましい実施形態では、これらのイベントは発生せず、バルクデータはほとんど常に一方向（サーバ１２からクライアント１４）に転送される。結果として、サーバ１２からクライアント１４にビデオデータ及び音声データを転送するために、エミュレートされたＣＤ−ＲＯＭ装置の最大帯域幅が利用可能となる。
【００２６】
代替的な一実施形態では、キーボードデータ及びマウスデータは、バルクデータとして、ビデオデータ及び音声データと同様の様式であるが反対の方向に転送される。そのような代替的な一実施形態は、上述した利点を享受しない。
【００２７】
図４及び図５は、接続装置１６を使用するデスクトップ共有及び遠隔制御のためのプロセスを示すフロー図である。図４のプロセスはサーバ側で実行され、図５のプロセスはクライアント側で実行される。図４に示すように、接続装置１６がサーバ１２に接続されると、サーバ１２（ＵＳＢホスト）はそのようなイベントを検知し（ステップＳ４１）、装置１６と協働して、標準ＵＳＢ大容量記憶装置、キーボード装置、及びマウス装置のためのＵＳＢ装置エミュレーションを実行する（ステップＳ４２）。サーバ用ＵＳＢ制御装置２６は、エミュレートされた大容量記憶装置上に、自動実行ファイル及びサーバ側遠隔制御プログラムを提示し、サーバ１２はサーバ側遠隔制御プログラムを自動的に実行する（ステップＳ４３）。代替的に、自動実行ファイルがエミュレートされた大容量記憶装置内に格納されていない場合、ユーザの操作によって、サーバ側遠隔制御プログラムは実行される。サーバ側遠隔制御プログラムの制御下で、サーバ１２は、データ転送を開始するために、クライアント１４からの（エミュレートされたキーボード装置又はマウス装置からのキーボードコマンド又はマウスコマンドの形態の）信号を待つ（ステップＳ４４）。そのような信号が受信された場合（ステップＳ４５における「はい」）、デスクトップ共有及び遠隔制御の通信が確立されている。サーバ１２は、ビデオデータ及び音声データを接続装置１６に転送すること、並びに接続装置１６からキーボードデータ及びマウスデータを受信することを含む、サーバデータ転送機能の実行を開始する（ステップＳ４６）。サーバ１２は、受信したキーボードデータ及びマウスデータに基づいて、自身の他の機能も実行する。サーバ１２は、タイムアウトする（たとえば接続装置１６のプラグが抜かれる）か、又は、クライアント１４若しくはサーバ１２上のユーザ入力装置から終了信号を受信するまで（ステップＳ４７における「はい」）、これらの機能を実行し続ける（ステップＳ４７において「いいえ」である場合はステップＳ４６に戻る）。
【００２８】
図５に示すように、接続装置１６がクライアント１４（ＵＳＢホスト）に差し込まれるとき（ステップＳ５１）、クライアント１４は装置１６と協働して、標準ＵＳＢ大容量記憶装置のためのＵＳＢ装置エミュレーションを実行する（ステップＳ５２）。クライアント用ＵＳＢ制御装置２８は、エミュレートされた大容量記憶装置上に、自動実行ファイル及びクライアント側遠隔制御プログラムを提示し、クライアント１４はクライアント側遠隔制御プログラムを自動的に実行する（ステップＳ５３）。代替的に、自動実行ファイルがエミュレートされた大容量記憶装置内に格納されていない場合、ユーザの操作によって、クライアント側遠隔制御プログラムが実行される。クライアント側遠隔制御プログラムの制御下で、クライアント１４は、スクリーン上に「開始」ボタンのようなメッセージをユーザに提示し、データ転送を開始するためのユーザ入力を待つ（ステップＳ５４）。ユーザ入力が受信された場合（ステップＳ５５における「はい」）、クライアント１４は開始信号を（たとえば接続装置１６を介してキーボードコマンド又はマウスコマンドを送信することによって）サーバ１２に送信する（ステップＳ５６）。クライアント１４は、上述したようにキーボードデータ及びマウスデータを接続装置１６に転送すること、及び装置１６からビデオデータ及び音声データを受信することを含む、クライアントデータ転送機能の実行も開始する（ステップＳ５７）。また、クライアント１４は受信したビデオ信号及び音声信号を、自身のモニタ及びスピーカに与える。クライアント１４は、タイムアウトするか、又は、ユーザから終了信号を受信するまで（ステップＳ５８における「はい」）、これらの機能を実行し続ける（ステップＳ５８において「いいえ」である場合はステップＳ５７に戻る）。
【００２９】
上記の説明においてＵＳＢは、サーバ、接続装置、及びクライアント間のインタフェース及び通信プロトコルとして使用されているが、本発明は、将来出現し得る標準インタフェース及び通信プロトコルを含む、Ｆｉｒｅｗｉｒｅ（登録商標）等のような他の標準インタフェース及び通信プロトコルを使用して実施してもよい。好ましくは、そのプロトコルはその時代に使用される多数のコンピュータに広くサポートされるべきである。
【００３０】
本発明の実施形態は、グラフィカルデスクトップ共有システムであって、サーバコンピュータ及びクライアントコンピュータにプレインストールされる特別なドライバプログラム及びアプリケーションソフトウェアを必要とせず、ビデオデータ及び音声データのための、キーボードデータ及びマウスデータの伝送によって影響を受けない高伝送帯域幅を有する、グラフィカルデスクトップ共有システムを提供する。
【００３１】
当業者には、本発明の精神又は範囲から逸脱することなく、本発明のグラフィカルデスクトップ共有及び遠隔制御のシステム、方法、並びに装置に、様々な変更及び変形を加えることができることが明らかであろう。したがって、本発明が添付の特許請求の範囲及びそれらの均等物の範囲内に入る変更及び変形を包含することが意図されている。
【符号の説明】
【００３２】
１２  サーバコンピュータ（サーバ）、１４  クライアントコンピュータ（クライアント）、１６  接続装置（装置）、１８ａ  ＵＳＢケーブル、１８ｂ  ＵＳＢケーブル、２２  メモリ、２４  ＭＣＵ、２６  サーバ用ＵＳＢ制御装置、２８  クライアント用ＵＳＢ制御装置。
【図１】
2010079874.tif 000003
【図２】
2010079874.tif 000004
【図３】
2010079874.tif 000005
【図４】
2010079874.tif 000006
【図５】
2010079874.tif 000007