(57)【要約】  【課題】  端末にＵＳＢを利用して接続されたデバイスを、デバイスの重要度に応じて、ネットワークを介して快適に遠隔操作する技術を提供することを目的とする。  【解決手段】  サーバ１１０と、端末１３０と、が接続されたネットワークに、複数の通信路を設け、サーバ１１０が、端末１３０に接続されたＵＳＢデバイス１６０を制御するための情報を、ＵＳＢデバイス１６０の属性に対応して選択された通信路を介して送受信する。【選択図】図１
2010251854.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢデバイスが接続された端末と、当該端末とネットワークを介して通信を行うサーバと、を備え、前記サーバが、前記端末に接続された前記ＵＳＢデバイスの制御を行う通信システムであって、
前記サーバの制御部及び前記端末の制御部は、前記ＵＳＢデバイスの属性に応じて、前記端末と前記サーバとの間に複数の通信路を設け、
前記サーバの制御部及び前記端末の制御部は、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスの属性に対応する通信路を選択して、送受信すること、
を特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記ＵＳＢデバイスの属性は、前記ＵＳＢデバイスの転送特性であり、
前記サーバの制御部及び前記端末の制御部は、前記端末と前記サーバとの間に、コントロール転送に対応する通信路と、インタラプト転送に対応する通信路と、アイソクロナス転送を行う通信路と、バルク転送を行う通信路と、を設けること、
を特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、
前記複数の通信路には、優先順位を定めることができるようにされており、
前記サーバの制御部及び前記端末の制御部は、前記優先順位の高い通信路で送受信する情報を優先して送受信する際には、前記優先順位の低い通信路の通信レートを低下させること、
を特徴とする通信システム。
【請求項４】
請求項２又は３に記載の通信システムであって、
前記ＵＳＢデバイスには、前記通信路毎に、前記通信路内における優先度を定めることができるようにされており、
前記サーバの制御部及び前記端末の制御部は、前記通信路毎に、前記通信路内における優先度に対応する帯域を前記ＵＳＢデバイスに割り当てて、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスに割り当てられた帯域で送受信すること、
を特徴とする通信システム。
【請求項５】
請求項２から４の何れか一項に記載の通信システムであって、
前記コントロール転送に対応する通信路は、ＴＣＰに従った通信路であり、前記インタラプト転送に対応する通信路は、ＵＤＰに従った通信路であり、前記アイソクロナス転送を行う通信路は、ＵＤＰに従った通信路であり、前記バルク転送を行う通信路は、ＴＣＰに従った通信路であること、
を特徴とする通信システム。
【請求項６】
ネットワークを介して通信を行うサーバにより、接続されたＵＳＢデバイスの制御を行わせる端末であって、
制御部が、
前記ＵＳＢデバイスの属性に応じて、前記サーバとの間に複数の通信路を設ける処理と、
前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスの属性に対応する通信路を選択して、送受信する処理と、
を行うこと、
を特徴とする端末。
【請求項７】
請求項６に記載の端末であって、
前記ＵＳＢデバイスの属性は、前記ＵＳＢデバイスの転送特性であり、
前記制御部は、前記サーバとの間に、コントロール転送に対応する通信路と、インタラプト転送に対応する通信路と、アイソクロナス転送を行う通信路と、バルク転送を行う通信路と、を設けること、
を特徴とする端末。
【請求項８】
請求項７に記載の端末であって、
前記複数の通信路には、優先順位を定めることができるようにされており、
前記制御部は、前記優先順位の高い通信路で送受信する情報を優先して送受信する際には、前記優先順位の低い通信路の通信レートを低下させること、
を特徴とする端末。
【請求項９】
請求項７又は８に記載の端末であって、
前記ＵＳＢデバイスには、前記通信路毎に、前記通信路内における優先度を定めることができるようにされており、
前記制御部は、前記通信路毎に、前記通信路内における優先度に対応する帯域を前記ＵＳＢデバイスに割り当てて、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスに割り当てられた帯域で送受信すること、
を特徴とする端末。
【請求項１０】
請求項７から９の何れか一項に記載の端末であって、
前記コントロール転送に対応する通信路は、ＴＣＰに従った通信路であり、前記インタラプト転送に対応する通信路は、ＵＤＰに従った通信路であり、前記アイソクロナス転送を行う通信路は、ＵＤＰに従った通信路であり、前記バルク転送を行う通信路は、ＴＣＰに従った通信路であること、
を特徴とする端末。
【請求項１１】
コンピュータを、ネットワークを介して通信を行うサーバにより、接続されたＵＳＢデバイスの制御を行わせる端末として機能させるプログラムであって、
前記コンピュータを、
前記ＵＳＢデバイスの属性に応じて、前記サーバとの間に複数の通信路を設ける処理と、
前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスの属性に対応する通信路を選択して、送受信する処理と、
を行う制御手段として機能させること、
を特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記ＵＳＢデバイスの属性は、前記ＵＳＢデバイスの転送特性であり、
前記制御手段に、前記サーバとの間に、コントロール転送に対応する通信路と、インタラプト転送に対応する通信路と、アイソクロナス転送を行う通信路と、バルク転送を行う通信路と、を設けさせること、
を特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記複数の通信路には、優先順位を定めることができるようにされており、
前記制御手段に、前記優先順位の高い通信路で送受信する情報を優先して送受信する際には、前記優先順位の低い通信路の通信レートを低下させること、
を特徴とするプログラム。
【請求項１４】
請求項１２又は１３に記載のプログラムであって、
前記ＵＳＢデバイスには、前記通信路毎に、前記通信路内における優先度を定めることができるようにされており、
前記制御手段に、前記通信路毎に、前記通信路内における優先度に対応する帯域を前記ＵＳＢデバイスに割り当てて、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスに割り当てられた帯域で送受信させること、
を特徴とするプログラム。
【請求項１５】
請求項１２から１４の何れか一項に記載のプログラムであって、
前記コントロール転送に対応する通信路は、ＴＣＰに従った通信路であり、前記インタラプト転送に対応する通信路は、ＵＤＰに従った通信路であり、前記アイソクロナス転送を行う通信路は、ＵＤＰに従った通信路であり、前記バルク転送を行う通信路は、ＴＣＰに従った通信路であること、
を特徴とするプログラム。
【請求項１６】
ＵＳＢデバイスが接続された端末と、当該端末とネットワークを介して通信を行うサーバと、を備え、前記サーバが、前記端末に接続された前記ＵＳＢデバイスの制御を行う通信システムで行われる通信方法であって、
前記サーバの制御部及び前記端末の制御部が、前記ＵＳＢデバイスの属性に応じて、前記端末と前記サーバとの間に複数の通信路を設ける処理を行う過程と、
前記サーバの制御部及び前記端末の制御部が、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスの属性に対応する通信路を選択して、送受信する処理を行う過程と、を有すること、
を特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ＵＳＢを介して端末に接続されたデバイスを、ネットワークを介してサーバで制御する技術に関する。
【背景技術】
【０００２】
電子計算機等の端末に様々な周辺機器（以下、デバイスという）を接続して情報処理が行われている。そして、デバイスを端末に接続する方法としては、ＵＳＢ（Universal Serial Bus）を利用する方法等がある。
【０００３】
また、ネットワーク技術の向上により、ネットワークを用いて、ＵＳＢを介して端末に接続されたデバイスを離れた場所にあるリモート計算機から接続する技術がある。例えば、非特許文献１では、ＵＳＢを介して端末に接続されたデバイスを、ネットワーク上にあるリモート計算機で利用する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“USB/IP ： A Transparent Device Sharing Technology over IP Network”、 Hirofuchi Takahiro、 社団法人情報処理学会 情報処理学会論文誌 Vol.46、 No.SIG_12 (ACS_11) (20050815) pp. 349−361
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に記載の技術は、ＵＳＢを介して端末に接続されたデバイスを、ネットワークにあるリモート計算機で利用することができるようにしているが、ネットワークの混雑状況によりデバイスへの接続状況が左右され、例えば、複数のデバイスの中で利用者が重要と考えているデバイスが使用できない場合や、このようなデバイスでの処理が遅延する場合がある。
【０００６】
そこで、本発明は、端末にＵＳＢを利用して接続されたデバイスを、デバイスの重要度に応じて、ネットワークを介して快適に遠隔操作する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明は、端末とサーバとの間に複数の通信路を設けておき、ＵＳＢデバイスを制御する情報を、当該ＵＳＢデバイスの属性に対応して選択された通信路を用いて通信する。
【０００８】
例えば、本発明は、ＵＳＢデバイスが接続された端末と、当該端末とネットワークを介して通信を行うサーバと、を備え、前記サーバが、前記端末に接続された前記ＵＳＢデバイスの制御を行う通信システムであって、前記サーバの制御部及び前記端末の制御部は、前記ＵＳＢデバイスの属性に応じて、前記端末と前記サーバとの間に複数の通信路を設け、前記サーバの制御部及び前記端末の制御部は、前記ＵＳＢデバイスの制御に用いる情報を、前記ＵＳＢデバイスの属性に対応する通信路を選択して、送受信すること、を特徴とする。
【発明の効果】
【０００９】
以上のように、本発明によれば、本発明は、端末にＵＳＢを利用して接続されたデバイスを、デバイスの重要度に応じて、ネットワークを介して快適に遠隔操作する技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】通信システムの概略図。
【図２】サーバの概略図。
【図３】コンピュータの概略図。
【図４】端末の概略図。
【図５】リモート通信部及びローカル通信部を介してＵＳＢデバイスを利用する際の情報の流れを示す概略図。
【図６】Ｃｏｎｔ通信路リモート制御部と、Ｃｏｎｔ通信路ローカル制御部と、の間で情報の送受信を行う際の流れを示す概略図。
【図７】Ｉｎｔ通信路リモート制御部と、Ｉｎｔ通信路ローカル制御部と、の間で情報の送受信を行う際の流れを示す概略図。
【図８】Ｉｓｏ通信路リモート制御部と、Ｉｓｏ通信路ローカル制御部と、の間で情報の送受信を行う際の流れを示す概略図。
【図９】Ｂｕｌｋ通信路リモート制御部と、Ｂｕｌｋ通信路ローカル制御部と、の間で情報の送受信を行う際の流れを示す概略図。
【図１０】ＰＤＵの概略図。
【図１１】通信システムにおいて、サーバが端末に接続されているＵＳＢデバイスを利用する際の全体的な処理を示すフローチャート。
【図１２】通信路間の優先順位及びＵＳＢデバイスの優先度の調整処理を示すシーケンス図。
【図１３】通信管理画面の概略図。
【図１４】サーバ用の通信管理情報テーブルの概略図。
【図１５】端末用の通信管理情報テーブルの概略図。
【図１６】端末に接続されたＵＳＢデバイスを使って、サーバのアプリ処理部がアプリケーションによる処理を実行する際の情報の流れを示すシーケンス図。
【図１７】Ｉｎｔ通信路ローカル制御部のデータパケット送信部での処理を示すフローチャート。
【図１８】Ｉｓｏ通信路ローカル制御部のデータパケット送信部での処理を示すフローチャート。
【図１９】端末用の通信管理情報テーブルにおいて、優先順位Ａが選択されている際のローカル通信部での処理を示すシーケンス図。
【図２０】端末用の通信管理情報テーブルにおいて、優先順位Ｂが選択されている際のローカル通信部での処理を示すシーケンス図。
【図２１】通信システムの稼働中に、新しいＵＳＢデバイスが端末に接続された場合の処理を示すシーケンス図。
【図２２】通信システムの稼働中に、端末に接続されているＵＳＢデバイスが取り外された場合の処理を示すシーケンス図。
【図２３】通信システムの稼働中に、ネットワークが切断された場合の処理を示すシーケンス図。
【発明を実施するための形態】
【００１１】
図１は、本発明の一実施形態である通信システム１００の概略図である。図示するように、通信システム１００は、サーバ１１０と、端末１３０と、端末１３０に接続されたＵＳＢデバイス１６０と、を備え、サーバ１１０及び端末１３０は、ネットワーク１７０を介して相互に情報の送受信を行うことができるようにされており、サーバ１１０は、ネットワーク１７０を介して、端末１３０に接続されたＵＳＢデバイス１６０を利用することができるようにされている。
【００１２】
図２は、サーバ１１０の概略図である。図示するように、サーバ１１０は、記憶部１１１と、制御部１１５と、通信部１２７と、を備える。
【００１３】
記憶部１１１は、ＵＳＢデバイス情報記憶領域１１２と、通信管理情報記憶領域１１３と、を備える。
【００１４】
ＵＳＢデバイス情報記憶領域１１２には、ＵＳＢデバイス１６０から送られてくるデバイスの属性を特定するＵＳＢデバイス情報が記憶される。例えば、本実施形態においては、エニュメレーションによって得られたＵＳＢデバイス１６０の属性を特定する情報が、ＵＳＢデバイス１６０毎に記憶される。
【００１５】
通信管理情報記憶領域１１３には、サーバ１１０と端末１３０との間で確立される通信路の優先度と、各々の通信路において各々のＵＳＢデバイス１６０に割り当てる帯域と、を特定する通信管理情報が記憶される。なお、通信管理情報の詳細については、図１４を用いて詳細に説明する。
【００１６】
制御部１１５は、全体制御部１１６と、アプリ処理部１１７と、通信管理部１１８と、クラスドライバ処理部１１９と、リモート通信部１２０と、ＴＣＰ／ＩＰスタック処理部１２６と、を備える。
【００１７】
全体制御部１１６は、サーバ１１０での処理の全体を制御する。
【００１８】
アプリ処理部１１７は、サーバ１１０で動作するアプリケーションを制御する。
【００１９】
通信管理部１１８は、サーバ１１０で行う通信処理を制御する。
【００２０】
例えば、本実施形態においては、後述するように、図１３に示すような通信管理画面を端末１３０に送信し、端末１３０との間の通信路の優先順位と、ＵＳＢデバイス１６０の優先度と、の入力を受け付け、入力を受け付けた優先度に応じて、サーバ１１０用の通信管理情報と、端末１３０用の通信管理情報と、を生成し、サーバ１１０用の通信管理情報は通信管理情報記憶領域１１３に記憶し、端末１３０用の通信管理情報は端末１３０に送信する処理を行う。
【００２１】
さらに、通信管理部１１８は、通信管理情報記憶領域１１３に記憶されている通信管理情報に従って、ＵＳＢデバイス１６０との間の通信の通信管理を行う。
【００２２】
クラスドライバ処理部１１９は、アプリ処理部１１７で制御されているアプリケーションとＵＳＢデバイス１６０との間の情報の送受信を制御する。
【００２３】
リモート通信部１２０は、ＵＳＢデバイス１６０の属性に応じて、端末１３０との間で確立された四つの通信路から、使用する通信路を選択し、当該通信路を使用するＵＳＢデバイス１６０間の優先度に応じた帯域で、通信を行う処理を制御する。
【００２４】
ＴＣＰ／ＩＰスタック処理部１２６は、トランスポートプロトコル（ＴＣＰやＵＤＰ）及びソケットプログラム（プログラムとトランスポートプロトコル）等、通信部１２７を介して情報をネットワーク１７０に送受信する処理を制御する。
【００２５】
通信部１２７は、ネットワーク１７０を介した情報の送受信を行う。
【００２６】
以上に記載したサーバ１１０は、例えば、図３（コンピュータ９００の概略図）に示すような、ＣＰＵ（Central Processing Unit）９０１と、メモリ９０２と、ＨＤＤ（Hard Disk Drive）等の外部記憶装置９０３と、ＣＤ（Compact Disk）やＤＶＤ（Digital Versatile Disk）等の可搬性を有する記憶媒体９０４に対して情報を読み書きする読書装置９０５と、キーボードやマウスなどの入力装置９０６と、ディスプレイなどの出力装置９０７と、通信ネットワークに接続するためのＮＩＣ（Network Interface Card）等の通信装置９０８と、を備えた一般的なコンピュータ９００で実現できる。
【００２７】
例えば、記憶部１１１は、ＣＰＵ９０１がメモリ９０２又は外部記憶装置９０３を利用することにより実現可能であり、制御部１１５は、外部記憶装置９０３に記憶されている所定のプログラムをメモリ９０２にロードしてＣＰＵ９０１で実行することで実現可能であり、通信部１２７は、ＣＰＵ９０１が通信装置９０８を利用することで実現可能である。
【００２８】
この所定のプログラムは、読書装置９０５を介して記憶媒体９０４から、あるいは、通信装置９０８を介してネットワークから、外部記憶装置９０３にダウンロードされ、それから、メモリ９０２上にロードされてＣＰＵ９０１により実行されるようにしてもよい。また、読書装置９０５を介して記憶媒体９０４から、あるいは、通信装置９０８を介してネットワークから、メモリ９０２上に直接ロードされ、ＣＰＵ９０１により実行されるようにしてもよい。
【００２９】
図４は、端末１３０の概略図である。図示するように、端末１３０は、記憶部１３１と、制御部１３６と、通信部１５１と、Ｉ／Ｆ部１５２と、を備える。
【００３０】
記憶部１３１は、ＵＳＢデバイス情報記憶領域１３２と、通信管理情報記憶領域１３３と、サーバ接続情報記憶領域１３４と、を備える。
【００３１】
ＵＳＢデバイス情報記憶領域１３２には、ＵＳＢデバイス１６０から送られてくるデバイスの属性を特定するＵＳＢデバイス情報が記憶される。例えば、本実施形態においては、エニュメレーションによって得られたＵＳＢデバイス１６０の属性を特定する情報が、ＵＳＢデバイス１６０毎に記憶される。
【００３２】
通信管理情報記憶領域１３３には、サーバ１１０と端末１３０との間で確立される通信路の優先度と、各々の通信路において各々のＵＳＢデバイス１６０に割り当てる帯域と、を特定する通信管理情報が記憶される。なお、通信管理情報の詳細については、図１５を用いて詳細に説明する。
【００３３】
サーバ接続情報記憶領域１３４には、サーバ１１０との間で四つの通信路を確立するための接続情報が格納される。例えば、サーバ１１０のＩＰアドレス、サーバ１１０のリモート通信部１２０が通信に利用するポート番号、等が記憶される。
【００３４】
制御部１３６は、全体制御部１３７と、端末管理アプリ処理部１３８と、切替制御部１３９と、通信管理部１４０と、クラスドライバ処理部１４１と、ＵＳＢシステム制御部１４２と、ローカル通信部１４３と、ＴＣＰ／ＩＰスタック処理部１４９と、を備える。
【００３５】
全体制御部１３７は、端末１３０での処理の全体を制御する。
【００３６】
端末管理アプリ処理部１３８は、端末１３０で動作するアプリケーションを制御する。
【００３７】
切替制御部１３９は、ＵＳＢデバイス１６０を、サーバ１１０で利用するか、端末１３０で利用するか、を切り替える処理を行う。例えば、本実施形態においては、ＵＳＢデバイス１６０を用いた処理で使用する情報を、ＵＳＢシステム制御部１４２とクラスドライバ処理部１４１との間で送受信するか、ＵＳＢシステム制御部１４２とローカル通信部１４３との間で送受信するか、を切り替える。
【００３８】
通信管理部１４０は、端末１３０で行う通信処理を制御する。
【００３９】
例えば、本実施形態においては、サーバ１１０より送信されてくる通信管理情報を通信管理情報記憶領域１３３に記憶し、通信管理情報記憶領域１１３に記憶されている通信管理情報に従って、サーバ１１０との間の通信の通信管理を行う。
【００４０】
クラスドライバ処理部１４１は、端末管理アプリ処理部１３８で制御されるアプリケーションと、ＵＳＢデバイス１６０と、の間の情報の送受信を制御する。
【００４１】
ＵＳＢシステム制御部１４２は、後述するＩ／Ｆ部１５２に接続されているＵＳＢデバイス１６０を制御する。
【００４２】
ローカル通信部１４３は、ＵＳＢデバイス１６０の属性に応じて、サーバ１１０との間で確立された四つの通信路から、使用する通信路を選択し、当該通信路を使用するＵＳＢデバイス１６０間の優先度に応じた帯域で、通信を行う処理を制御する。
【００４３】
ＴＣＰ／ＩＰスタック処理部１４９は、トランスポートプロトコル（ＴＣＰやＵＤＰ）及びソケットプログラム（プログラムとトランスポートプロトコル）等に従って、通信部１５１を介して情報をネットワーク１７０に送受信する処理を制御する。
【００４４】
以上に記載した端末１３０は、例えば、図３に示すような一般的なコンピュータ９００で実現できる。
【００４５】
例えば、記憶部１３１は、ＣＰＵ９０１がメモリ９０２又は外部記憶装置９０３を利用することにより実現可能であり、制御部１３６は、外部記憶装置９０３に記憶されている所定のプログラムをメモリ９０２にロードしてＣＰＵ９０１で実行することで実現可能であり、通信部１５１は、ＣＰＵ９０１が通信装置９０８を利用することで実現可能であり、Ｉ／Ｆ部１５２は、ＣＰＵ９０１がＵＳＢインタフェース９０９を利用することで実現可能である。
【００４６】
この所定のプログラムは、読書装置９０５を介して記憶媒体９０４から、あるいは、通信装置９０８を介してネットワークから、外部記憶装置９０３にダウンロードされ、それから、メモリ９０２上にロードされてＣＰＵ９０１により実行されるようにしてもよい。また、読書装置９０５を介して記憶媒体９０４から、あるいは、通信装置９０８を介してネットワークから、メモリ９０２上に直接ロードされ、ＣＰＵ９０１により実行されるようにしてもよい。
【００４７】
図１に戻り、ＵＳＢデバイス１６０は、例えば、監視カメラ１６１、通帳繰越記帳機１６２、静脈認証デバイス１６３、モニタ１６４、マウス１６５及びキーボード１６６等が含まれるがこのような態様に限定されるものではない。
【００４８】
図５は、リモート通信部１２０及びローカル通信部１４３を介してＵＳＢデバイス１６０を利用する際の情報の流れを示す概略図である。
【００４９】
リモート通信部１２０及びローカル通信部１４３は、ＴＣＰ／ＩＰスタック処理部１２６及びＴＣＰ／ＩＰスタック処理部１４９を用いて、クラスドライバ処理部１１９と、ＵＳＢシステム制御部１４２と、の間の情報の送受信を中継する機能を備える。
【００５０】
まず、クラスドライバ処理部１１９及びＵＳＢシステム制御部１４２は、ＵＳＢドライバインタフェースにより決められたＵＲＢ（USB Request Block）という構造体を用いて情報を送受信する。
【００５１】
ＵＲＢは、クラスドライバ処理部１１９がＵＳＢデバイス１６０とやり取りする情報を格納し、ＵＳＢシステム制御部１４２は、ＵＲＢ内の情報の転送を実行する。
【００５２】
ＵＲＢには、クラスドライバ処理部１１９と情報のやり取りを行うＵＳＢデバイス１６０のＩＤ及びＵＳＢデバイス１６０のエンドポイントに関する情報が含まれる。ＵＳＢデバイス１６０のＩＤとは、各々のＵＳＢデバイス１６０を区別するためにＵＳＢシステム制御部１４２がそれぞれのＵＳＢデバイス１６０に割り当てる番号である。また、エンドポイントは、ＵＳＢデバイス１６０との間でやりとりを行う情報のためバッファのことである。
【００５３】
エンドポイントは、エンドポイントとクラスドライバ処理部１１９の間で送受信する方法により、次の４つのタイプに分別される。
【００５４】
（１）コントロール転送（Control transfer）：デバイスセットアップ、設定パラメータの転送に用いられる。各々のデバイスに一つのコントロール転送用のエンドポイントが存在する。
【００５５】
（２）インタラプト転送（Interrupt transfer）：緊急度の高い小容量データの定周期な転送に用いられる。マウスやキーボードなどのＨｉＤに使われる。
【００５６】
（３）アイソクロナス転送（Isochronous transfer）：一定時間内のデータ量が保証された転送で、音声などのリアルタイムな転送に使われる。データが転送中に損失しても再送を行わない特徴がある。
【００５７】
（４）バルク転送（Bulk transfer）：大容量データの一括高信頼転送で、記憶装置、スキャナなどの大容量高速データの転送に用いられる。
【００５８】
そして、リモート通信部１２０は、リモートＵＲＢ振分部１２１と、Ｃｏｎｔ通信路リモート制御部１２２と、Ｉｎｔ通信路リモート制御部１２３と、Ｉｓｏ通信路リモート制御部１２４と、Ｂｕｌｋ通信路リモート制御部１２５と、を備える。
【００５９】
リモートＵＲＢ振分部１２１は、クラスドライバ処理部１１９から受け取ったＵＲＢに含まれるエンドポイントを特定する情報に従って、コントロール転送のＵＲＢはＣｏｎｔ通信路リモート制御部１２２に、インタラプト転送のＵＲＢはＩｎｔ通信路リモート制御部１２３に、アイソクロナス転送のＵＲＢはＩｓｏ通信路リモート制御部１２４に、バルク転送のＵＲＢはＢｕｌｋ通信路リモート制御部１２５に、出力する。
【００６０】
また、リモートＵＲＢ振分部１２１は、Ｃｏｎｔ通信路リモート制御部１２２、Ｉｎｔ通信路リモート制御部１２３、Ｉｓｏ通信路リモート制御部１２４及びＢｕｌｋ通信路リモート制御部１２５から受け取ったＵＲＢをクラスドライバ処理部１１９に出力する。
【００６１】
Ｃｏｎｔ通信路リモート制御部１２２は、後述するローカル通信部１４３のＣｏｎｔ通信路ローカル制御部１４５との間でＣｏｎｔ通信路１７１を用いて、情報の送受信を行う。
【００６２】
Ｉｎｔ通信路リモート制御部１２３は、後述するローカル通信部１４３のＩｎｔ通信路ローカル制御部１４６との間でＩｎｔ通信路１７２を用いて、情報の送受信を行う。
【００６３】
Ｉｓｏ通信路リモート制御部１２４は、後述するローカル通信部１４３のＩｓｏ通信路ローカル制御部１４７との間でＩｓｏ通信路１７３を用いて、情報の送受信を行う。
【００６４】
Ｂｕｌｋ通信路リモート制御部１２５は、後述するローカル通信部１４３のＢｕｌｋ通信路ローカル制御部１４８との間でＢｕｌｋ通信路１７４を用いて、情報の送受信を行う。
【００６５】
なお、Ｃｏｎｔ通信路リモート制御部１２２、Ｉｎｔ通信路リモート制御部１２３、Ｉｓｏ通信路リモート制御部１２４及びＢｕｌｋ通信路リモート制御部１２５の詳細は、図６〜９を用いて説明する。
【００６６】
ローカル通信部１４３は、ローカルＵＲＢ振分部１４４と、Ｃｏｎｔ通信路ローカル制御部１４５と、Ｉｎｔ通信路ローカル制御部１４６と、Ｉｓｏ通信路ローカル制御部１４７と、Ｂｕｌｋ通信路ローカル制御部１４８と、を備える。
【００６７】
ローカルＵＲＢ振分部１４４は、ＵＳＢシステム制御部１４２から受け取ったＵＲＢに含まれるエンドポイントを特定する情報に従って、コントロール転送のＵＲＢはＣｏｎｔ通信路ローカル制御部１４５に、インタラプト転送のＵＲＢはＩｎｔ通信路ローカル制御部１４６に、アイソクロナス転送のＵＲＢはＩｓｏ通信路ローカル制御部１４７に、バルク転送のＵＲＢはＢｕｌｋ通信路ローカル制御部１４８に、出力する。
【００６８】
また、ローカルＵＲＢ振分部１４４は、Ｃｏｎｔ通信路ローカル制御部１４５、Ｉｎｔ通信路ローカル制御部１４６、Ｉｓｏ通信路ローカル制御部１４７及びＢｕｌｋ通信路ローカル制御部１４８から受け取ったＵＲＢをＵＳＢシステム制御部１４２に出力する。
【００６９】
Ｃｏｎｔ通信路ローカル制御部１４５は、リモート通信部１２０のＣｏｎｔ通信路リモート制御部１２２との間でＣｏｎｔ通信路１７１を用いて、情報の送受信を行う。
【００７０】
Ｉｎｔ通信路ローカル制御部１４６は、リモート通信部１２０のＩｎｔ通信路リモート制御部１２３との間でＩｎｔ通信路１７２を用いて、情報の送受信を行う。
【００７１】
Ｉｓｏ通信路ローカル制御部１４７は、リモート通信部１２０のＩｓｏ通信路リモート制御部１２４との間でＩｓｏ通信路１７３を用いて、情報の送受信を行う。
【００７２】
Ｂｕｌｋ通信路ローカル制御部１４８は、リモート通信部１２０のＢｕｌｋ通信路リモート制御部１２５との間でＢｕｌｋ通信路１７４を用いて、情報の送受信を行う。
【００７３】
なお、Ｃｏｎｔ通信路ローカル制御部１４５、Ｉｎｔ通信路ローカル制御部１４６、Ｉｓｏ通信路ローカル制御部１４７及びＢｕｌｋ通信路ローカル制御部１４８の詳細は、図６〜９を用いて説明する。
【００７４】
図６は、Ｃｏｎｔ通信路リモート制御部１２２と、Ｃｏｎｔ通信路ローカル制御部１４５と、の間で情報の送受信を行う際の流れを示す概略図である。
【００７５】
Ｃｏｎｔ通信路リモート制御部１２２は、ＵＲＢ受信部１２２ａと、送信バッファ１２２ｂと、データパケット送信部１２２ｃと、データパケット受信部１２２ｄと、受信バッファ１２２ｅと、ＵＲＢ送信部１２２ｆと、通信管理情報中継部１２２ｇと、を備える。
【００７６】
ＵＲＢ受信部１２２ａは、リモートＵＲＢ振分部１２１よりＣｏｎｔ通信路１７１を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を分割して図１０（ＰＤＵ１９０の概略図）に示すようなＰＤＵ（Program Data Unit）１９０を生成し、送信バッファ１２２ｂに出力する。
【００７７】
ここで、ＰＤＵは、ＵＲＢをＩＰのネットワーク１７０に送信する際に、ＵＲＢをキャップセルするための構造体である。
【００７８】
図１０に示すようにＰＤＵは、データ格納領域１９０ａと、データサイズ格納領域１９０ｂと、ＰＤＵシーケンス格納領域１９０ｃと、ＵＲＢシーケンス格納領域１９０ｄと、を有する。
【００７９】
データ格納領域１９０ａには、送信するＵＲＢ又は送信するＵＲＢを分割したデータが格納される。
【００８０】
データサイズ格納領域１９０ｂには、データ格納領域１９０ａに格納した情報のデータサイズが格納される。なお、ＰＤＵ全体サイズは、１４６０バイト以外の値でもよい。
【００８１】
ＰＤＵシーケンス格納領域１９０ｃには、データ格納領域１９０ａに格納された分割されたデータが、送信するＵＲＢの中の何番目のデータであるか（何番目のＰＤＵであるか）を特定する情報が格納される。
【００８２】
ＵＲＢシーケンス格納領域１９０ｄには、ＰＤＵが転送するＵＲＢを識別するための識別情報を特定する情報が格納される。
【００８３】
なお、ＰＤＵ全体のサイズはＬＡＮ（ローカルエリアネットワーク）で送信する場合でもフラグメンテーションが起こらないように１４６０バイトとする。ただし、ＵＲＢの容量が少なく、ＰＤＵのサイズが１４６０バイトに達しない場合はＵＲＢの容量に合わせてＰＤＵを作成すればよい。
【００８４】
送信バッファ１２２ｂは、ＵＲＢ受信部１２２ａで生成されたＰＤＵを一時的に格納する。
【００８５】
データパケット送信部１２２ｃは、送信バッファ１２２ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｃｏｎｔ通信路１７１を介して送信する。
【００８６】
データパケット受信部１２２ｄは、Ｃｏｎｔ通信路１７１を介して送信されたＰＤＵを受信し、受信バッファ１２２ｅに格納する処理を行う。
【００８７】
受信バッファ１２２ｅは、データパケット受信部１２２ｄから受け取ったＰＤＵを一時的に格納する。
【００８８】
ＵＲＢ送信部１２２ｆは、受信バッファ１２２ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、リモートＵＲＢ振分部１２１に出力する。
【００８９】
通信管理情報中継部１２２ｇは、通信管理部１１８が生成した端末用の通信管理情報を、Ｃｏｎｔ通信路１７１を介して送信する。
【００９０】
Ｃｏｎｔ通信路ローカル制御部１４５は、ＵＲＢ受信部１４５ａと、送信バッファ１４５ｂと、データパケット送信部１４５ｃと、データパケット受信部１４５ｄと、受信バッファ１４５ｅと、ＵＲＢ送信部１４５ｆと、通信管理情報中継部１４５ｇと、を備える。
【００９１】
ＵＲＢ受信部１４５ａは、ローカルＵＲＢ振分部１４４よりＣｏｎｔ通信路１７１を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を分割して図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１４５ｂに出力する。
【００９２】
送信バッファ１４５ｂは、ＵＲＢ受信部１４５ａで生成されたＰＤＵを一時的に格納する。
【００９３】
データパケット送信部１４５ｃは、送信バッファ１４５ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｃｏｎｔ通信路１７１を介して送信する。
【００９４】
データパケット受信部１４５ｄは、Ｃｏｎｔ通信路１７１を介して送信されたＰＤＵを受信し、受信バッファ１４５ｅに格納する処理を行う。
【００９５】
データパケット受信部１４５ｄは、Ｃｏｎｔ通信路１７１を介して受信した情報が端末用の通信管理情報である場合には、通信管理情報中継部１４５ｇに出力する。
【００９６】
受信バッファ１４５ｅは、データパケット受信部１４５ｄから受け取ったＰＤＵを一時的に格納する。
【００９７】
ＵＲＢ送信部１４５ｆは、受信バッファ１４５ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、ローカルＵＲＢ振分部１４４に出力する。
【００９８】
通信管理情報中継部１４５ｇは、リモート通信部１２０から送られてきた端末用の通信管理情報や通信管理情報の変更通知を受信し、通信管理部１４０に出力する。
【００９９】
なお、Ｃｏｎｔ通信路１７１は、サーバ１１０と、端末１３０と、の間に張る一つのＴＣＰ（Transmission Control Protocol）セッションである。
【０１００】
図７は、Ｉｎｔ通信路リモート制御部１２３と、Ｉｎｔ通信路ローカル制御部１４６と、の間で情報の送受信を行う際の流れを示す概略図である。
【０１０１】
Ｉｎｔ通信路リモート制御部１２３は、ＵＲＢ受信部１２３ａと、送信バッファ１２３ｂと、データパケット送信部１２３ｃと、データパケット受信部１２３ｄと、受信バッファ１２３ｅと、ＵＲＢ送信部１２３ｆと、通信路間協調部１２３ｇと、再送部１２３ｈと、を備える。
【０１０２】
ＵＲＢ受信部１２３ａは、リモートＵＲＢ振分部１２１よりＩｎｔ通信路１７２を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を（必要な場合には分割して）図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１２３ｂに出力する。
【０１０３】
なお、ＵＲＢ受信部１２３ａは、リモートＵＲＢ振分部１２１より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１２３ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１０４】
送信バッファ１２３ｂは、ＵＲＢ受信部１２３ａで生成されたＰＤＵを一時的に格納する。
【０１０５】
また、送信バッファ１２３ｂは、データパケット送信部１２３ｃが読み出したＰＤＵパケットを、再送部１２３ｈからの削除指示があるまで格納し続ける。
【０１０６】
データパケット送信部１２３ｃは、送信バッファ１２３ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｉｎｔ通信路１７２を介して送信する。
【０１０７】
ここで、データパケット送信部１２３ｃは、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１０８】
また、データパケット送信部１２３ｃは、通信路間協調部１２３ｇの指示により、Ｉｎｔ通信路１７２に送信するデータの送信レートを調節する。
【０１０９】
さらに、データパケット送信部１２３ｃは、再送部１２３ｈからの再送指示に応じて、再送指示の対象となるＰＤＵを送信バッファ１２３ｂから読み出し、Ｉｎｔ通信路１７２を介して送信する。
【０１１０】
データパケット受信部１２３ｄは、Ｉｎｔ通信路１７２を介して送信されたＰＤＵを受信し、受信バッファ１２３ｅに格納する処理を行う。
【０１１１】
また、データパケット受信部１２３ｄは、Ｉｎｔ通信路１７２を介して受信した再送要求又は受領通知を再送部１２３ｈに出力する。
【０１１２】
受信バッファ１２３ｅは、データパケット受信部１２３ｄから受け取ったＰＤＵを一時的に格納する。
【０１１３】
ＵＲＢ送信部１２３ｆは、受信バッファ１２３ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、リモートＵＲＢ振分部１２１に出力する。
【０１１４】
通信路間協調部１２３ｇは、Ｉｓｏ通信路リモート制御部１２４及びＢｕｌｋ通信路リモート制御部１２５と協調して、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１２３ｃから出力する情報の送信レートを定める。
【０１１５】
再送部１２３ｈは、受信バッファ１２３ｅに格納されたＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照し、ＰＤＵシーケンスに欠落がある場合には、当該ＰＤＵシーケンスを特定した再送要求を、Ｉｎｔ通信路１７２を介して送信する。
【０１１６】
また、再送部１２３ｈは、受信バッファ１２３ｅに格納されたＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているＰＤＵシーケンス及びＵＲＢシーケンスを特定した受領通知を、Ｉｎｔ通信路１７２を介して送信する。
【０１１７】
さらに、再送部１２３ｈは、Ｉｎｔローカル制御部１４６の再送部１４６ｈから送信されてきた受領通知に含まれているＰＤＵシーケンス及びＵＲＢシーケンスに対応するＰＤＵを送信バッファ１２３ｂから削除する。
【０１１８】
Ｉｎｔ通信路ローカル制御部１４６は、ＵＲＢ受信部１４６ａと、送信バッファ１４６ｂと、データパケット送信部１４６ｃと、データパケット受信部１４６ｄと、受信バッファ１４６ｅと、ＵＲＢ送信部１４６ｆと、通信路間協調部１４６ｇと、再送部１４６ｈと、を備える。
【０１１９】
ＵＲＢ受信部１４６ａは、ローカルＵＲＢ振分部１４４よりＩｎｔ通信路１７２を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を分割して図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１４６ｂに出力する。
【０１２０】
なお、ＵＲＢ受信部１４６ａは、ローカルＵＲＢ振分部１４４より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１４６ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１２１】
送信バッファ１４６ｂは、ＵＲＢ受信部１４６ａで生成されたＰＤＵを一時的に格納する。
【０１２２】
なお、送信バッファ１４６ｂは、データパケット送信部１４６ｃが読み出したＰＤＵパケットを、再送部１４６ｈからの削除指示があるまで格納し続ける。
【０１２３】
データパケット送信部１４６ｃは、送信バッファ１４６ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｉｎｔ通信路１７２を介して送信する。
【０１２４】
ここで、データパケット送信部１４６ｃは、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１２５】
また、データパケット送信部１４６ｃは、通信路間協調部１４６ｇの指示により、Ｉｎｔ通信路１７２に送信するデータの送信レートを調節する。
【０１２６】
さらに、データパケット送信部１４６ｃは、再送部１４６ｈからの再送指示に応じて、再送指示の対象となるＰＤＵを送信バッファ１４６ｂから読み出し、Ｉｎｔ通信路１７２を介して送信する。
【０１２７】
データパケット受信部１４６ｄは、Ｉｎｔ通信路１７２を介して送信されたＰＤＵを受信し、受信バッファ１４６ｅに格納する処理を行う。
【０１２８】
また、データパケット受信部１４６ｄは、Ｉｎｔ通信路１７２を介して受信した再送要求又は受領通知を再送部１４６ｈに出力する。
【０１２９】
受信バッファ１４６ｅは、データパケット受信部１４６ｄから受け取ったＰＤＵを一時的に格納する。
【０１３０】
ＵＲＢ送信部１４６ｆは、受信バッファ１４６ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、ローカルＵＲＢ振分部１４４に出力する。
【０１３１】
通信路間協調部１４６ｇは、Ｉｓｏ通信路ローカル制御部１４７及びＢｕｌｋ通信路ローカル制御部１４８と協調して、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１４６ｃから出力する情報の送信レートを定める。
【０１３２】
再送部１４６ｈは、受信バッファ１４６ｅに格納されたＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照し、ＰＤＵシーケンスに欠落がある場合には、当該ＰＤＵシーケンスを特定した再送要求を、Ｉｎｔ通信路１７２を介して送信する。
【０１３３】
また、再送部１４６ｈは、受信バッファ１４６ｅに格納されたＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているＰＤＵシーケンス及びＵＲＢシーケンスを特定した受領通知を、Ｉｎｔ通信路１７２を介して送信する。
【０１３４】
さらに、再送部１４６ｈは、Ｉｎｔリモート制御部１２３の再送部１２３ｈから送信されてきた受領通知に含まれているＰＤＵシーケンス及びＵＲＢシーケンスに対応するＰＤＵを送信バッファ１４６ｂから削除する。
【０１３５】
なお、Ｉｎｔ通信路１７２は、サーバ１１０の一つのＵＤＰ（User Datagram Protocol）ポートと、端末１３０の一つのＵＤＰポートと、の間でＵＤＰパケットを送受信する通信路である。
【０１３６】
図８は、Ｉｓｏ通信路リモート制御部１２４と、Ｉｓｏ通信路ローカル制御部１４７と、の間で情報の送受信を行う際の流れを示す概略図である。
【０１３７】
Ｉｓｏ通信路リモート制御部１２４は、ＵＲＢ受信部１２４ａと、送信バッファ１２４ｂと、データパケット送信部１２４ｃと、データパケット受信部１２４ｄと、受信バッファ１２４ｅと、ＵＲＢ送信部１２４ｆと、通信路間協調部１２４ｇと、レート通信部１２４ｈと、を備える。
【０１３８】
ＵＲＢ受信部１２４ａは、リモートＵＲＢ振分部１２１よりＩｓｏ通信路１７３を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を（場合によっては分割して）図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１２４ｂに出力する。
【０１３９】
なお、ＵＲＢ受信部１２４ａは、リモートＵＲＢ振分部１２１より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１２４ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１４０】
送信バッファ１２４ｂは、ＵＲＢ受信部１２４ａで生成されたＰＤＵを一時的に格納する。
【０１４１】
データパケット送信部１２４ｃは、送信バッファ１２４ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｉｓｏ通信路１７３を介して送信する。
【０１４２】
ここで、データパケット送信部１２４ｃは、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１４３】
また、データパケット送信部１２４ｃは、通信路間協調部１２４ｇの指示により、Ｉｓｏ通信路１７３に送信するデータの送信レートを調節する。
【０１４４】
データパケット受信部１２４ｄは、Ｉｓｏ通信路１７３を介して送信されたＰＤＵを受信し、受信バッファ１２４ｅに格納する処理を行う。
【０１４５】
また、データパケット受信部１２４ｄは、Ｉｓｏ通信路１７３を介して受信した送信レートを特定するレート情報をレート通信部１２４ｈに出力する。
【０１４６】
受信バッファ１２４ｅは、データパケット受信部１２４ｄから受け取ったＰＤＵを一時的に格納する。
【０１４７】
ＵＲＢ送信部１２４ｆは、受信バッファ１２４ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、リモートＵＲＢ振分部１２１に出力する。
【０１４８】
通信路間協調部１２４ｇは、Ｉｎｔ通信路リモート制御部１２３及びＢｕｌｋ通信路リモート制御部１２５と協調して、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１２４ｃから出力する情報の送信レートを定める。
【０１４９】
レート通信部１２４ｈは、Ｉｓｏ通信路ローカル制御部１４７のレート通信部１４７ｈとの間で、送信レート及び受信レートを特定するレート情報を送受信する。
【０１５０】
Ｉｓｏ通信路ローカル制御部１４７は、ＵＲＢ受信部１４７ａと、送信バッファ１４７ｂと、データパケット送信部１４７ｃと、データパケット受信部１４７ｄと、受信バッファ１４７ｅと、ＵＲＢ送信部１４７ｆと、通信路間協調部１４７ｇと、レート通信部１４７ｈと、を備える。
【０１５１】
ＵＲＢ受信部１４７ａは、ローカルＵＲＢ振分部１４４よりＩｓｏ通信路１７３を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を（場合によって分割して）図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１４７ｂに出力する。
【０１５２】
なお、ＵＲＢ受信部１４７ａは、ローカルＵＲＢ振分部１４４より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１４７ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１５３】
送信バッファ１４７ｂは、ＵＲＢ受信部１４７ａで生成されたＰＤＵを一時的に格納する。
【０１５４】
データパケット送信部１４７ｃは、送信バッファ１４７ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｉｓｏ通信路１７３を介して送信する。
【０１５５】
ここで、データパケット送信部１４７ｃは、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１５６】
また、データパケット送信部１４７ｃは、通信路間協調部１４７ｇの指示により、Ｉｓｏ通信路１７３に送信するデータの送信レートを調節する。
【０１５７】
データパケット受信部１４７ｄは、Ｉｓｏ通信路１７３を介して送信されたＰＤＵを受信し、受信バッファ１４７ｅに格納する処理を行う。
【０１５８】
また、データパケット受信部１４７ｄは、Ｉｓｏ通信路１７３を介して受信した送信レートを特定するレート情報をレート通信部１４７ｈに出力する。
【０１５９】
受信バッファ１４７ｅは、データパケット受信部１４７ｄから受け取ったＰＤＵを一時的に格納する。
【０１６０】
ＵＲＢ送信部１４７ｆは、受信バッファ１４７ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、ローカルＵＲＢ振分部１４４に出力する。
【０１６１】
通信路間協調部１４７ｇは、Ｉｎｔ通信路ローカル制御部１４６及びＢｕｌｋ通信路ローカル制御部１４８と協調して、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１４７ｃから出力する情報の送信レートを定める。
【０１６２】
レート通信部１４７ｈは、Ｉｓｏ通信路リモート制御部１２４のレート通信部１２４ｈとの間で、送信レート及び受信レートを特定するレート情報を送受信する。
【０１６３】
なお、Ｉｓｏ通信路１７３は、サーバ１１０の一つのＵＤＰポート（Ｉｎｔ通信路で使用されるものとは異なるＵＤＰポート）と、端末１３０の一つのＵＤＰポート（Ｉｎｔ通信路で使用されるものとは異なるＵＤＰポート）と、の間でＵＤＰパケットを送受信する通信路である。
【０１６４】
図９は、Ｂｕｌｋ通信路リモート制御部１２５と、Ｂｕｌｋ通信路ローカル制御部１４８と、の間で情報の送受信を行う際の流れを示す概略図である。
【０１６５】
Ｂｕｌｋ通信路リモート制御部１２５は、ＵＲＢ受信部１２５ａと、送信バッファ１２５ｂと、データパケット送信部１２５ｃと、データパケット受信部１２５ｄと、受信バッファ１２５ｅと、ＵＲＢ送信部１２５ｆと、通信路間協調部１２５ｇと、を備える。
【０１６６】
ＵＲＢ受信部１２５ａは、リモートＵＲＢ振分部１２１よりＢｕｌｋ通信路１７４を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を（場合により分割して）図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１２５ｂに出力する。
【０１６７】
なお、ＵＲＢ受信部１２５ａは、リモートＵＲＢ振分部１２１より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１２５ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１６８】
送信バッファ１２５ｂは、ＵＲＢ受信部１２５ａで生成されたＰＤＵを一時的に格納する。
【０１６９】
データパケット送信部１２５ｃは、送信バッファ１２５ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｂｕｌｋ通信路１７４を介して送信する。
【０１７０】
ここで、データパケット送信部１２５ｃは、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１７１】
また、データパケット送信部１２５ｃは、通信路間協調部１２５ｇの指示により、Ｂｕｌｋ通信路１７４に送信するデータの送信レートを調節する。
【０１７２】
データパケット受信部１２５ｄは、Ｂｕｌｋ通信路１７４を介して送信されたＰＤＵを受信し、受信バッファ１２５ｅに格納する処理を行う。
【０１７３】
受信バッファ１２５ｅは、データパケット受信部１２５ｄから受け取ったＰＤＵを一時的に格納する。
【０１７４】
ＵＲＢ送信部１２５ｆは、受信バッファ１２５ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、リモートＵＲＢ振分部１２１に出力する。
【０１７５】
通信路間協調部１２５ｇは、Ｉｎｔ通信路リモート制御部１２３及びＩｓｏ通信路リモート制御部１２４と協調して、通信管理情報記憶領域１１３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１２５ｃから出力する情報の送信レートを定める。
【０１７６】
Ｂｕｌｋ通信路ローカル制御部１４８は、ＵＲＢ受信部１４８ａと、送信バッファ１４８ｂと、データパケット送信部１４８ｃと、データパケット受信部１４８ｄと、受信バッファ１４８ｅと、ＵＲＢ送信部１４８ｆと、通信路間協調部１４８ｇと、を備える。
【０１７７】
ＵＲＢ受信部１４８ａは、ローカルＵＲＢ振分部１４４よりＢｕｌｋ通信路１７４を介して送信するＵＲＢを受信し、ＵＲＢに含まれる情報を（場合によって分割して）図１０に示すようなＰＤＵ１９０を生成し、送信バッファ１４８ｂに出力する。
【０１７８】
なお、ＵＲＢ受信部１４８ａは、ローカルＵＲＢ振分部１４４より受信したＵＲＢから、情報を送信するＵＳＢデバイス１６０を特定し、特定したＵＳＢデバイス１６０に対応する送信バッファ１４８ｂの記憶領域に当該ＵＲＢから生成されたＰＤＵを格納する。
【０１７９】
送信バッファ１４８ｂは、ＵＲＢ受信部１４８ａで生成されたＰＤＵを一時的に格納する。
【０１８０】
データパケット送信部１４８ｃは、送信バッファ１４８ｂに格納されているＰＤＵを予め定められた順番で読み出し、Ｂｕｌｋ通信路１７４を介して送信する。
【０１８１】
ここで、データパケット送信部１４８ｃは、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定されるＵＳＢデバイス１６０の優先度に応じた比率で、当該ＵＳＢデバイス１６０毎に分けられた記憶領域からＰＤＵを読み出す。
【０１８２】
また、データパケット送信部１４８ｃは、通信路間協調部１４８ｇの指示により、Ｂｕｌｋ通信路１７４に送信するデータの送信レートを調節する。
【０１８３】
データパケット受信部１４８ｄは、Ｂｕｌｋ通信路１７４を介して送信されたＰＤＵを受信し、受信バッファ１４８ｅに格納する処理を行う。
【０１８４】
受信バッファ１４８ｅは、データパケット受信部１４８ｄから受け取ったＰＤＵを一時的に格納する。
【０１８５】
ＵＲＢ送信部１４８ｆは、受信バッファ１４８ｅに格納されているＰＤＵのＰＤＵシーケンス格納領域１９０ｃ及びＵＲＢシーケンス格納領域１９０ｄに格納されているデータを参照することで、ＵＲＢを結合し、ローカルＵＲＢ振分部１４４に出力する。
【０１８６】
通信路間協調部１４８ｇは、Ｉｎｔ通信路ローカル制御部１４６及びＩｓｏ通信路ローカル制御部１４７と協調して、通信管理情報記憶領域１３３に記憶されている通信管理情報で特定される通信路間の優先順位に応じて、データパケット送信部１４８ｃから出力する情報の送信レートを定める。
【０１８７】
なお、Ｂｕｌｋ通信路１７４は、サーバ１１０と、端末１３０と、の間に張る一つのＴＣＰセッション（Ｃｏｎｔ通信路１７１とは異なるセッション）である。
【０１８８】
図１１は、通信システム１００において、サーバ１１０が端末１３０に接続されているＵＳＢデバイス１６０を利用する際の全体的な処理を示すフローチャートである。
【０１８９】
まず、サーバ１１０の全体制御部１１６は、サーバ１１０のオペレータよりサーバ１１０の電源の投入を受け付ける（Ｓ１０）。
【０１９０】
次に、サーバ１１０の全体制御部１１６は、サーバ１１０を起動して（Ｓ１１）、Ｃｏｎｔ通信路１７１のためのＴＣＰ通信ポート、Ｂｕｌｋ通信路１７４のためのＴＣＰ通信ポート、Ｉｎｔ通信路１７２のためのＵＤＰ通信ポート及びＩｓｏ通信路１７３のためのＵＤＰ通信ポートでそれぞれデータを待ち受ける（Ｓ１２）。そして、通信管理部１１８での処理を開始する。
【０１９１】
一方、端末１３０の全体制御部１３７は、端末１３０のオペレータより端末１３０の電源の投入を受け付ける（Ｓ１３）。なお、端末１３０のオペレータは、サーバ１１０がステップＳ１２の接続待ちとなったことを確認してから、電源を入力するものとする。
【０１９２】
次に、端末１３０の全体制御部１３７は、端末１３０を起動して（Ｓ１４）、ＵＳＢケーブルで接続されているＵＳＢデバイス１６０のエニュメレーションを行う（Ｓ１５）。エニュメレーションはＵＳＢシステム制御部１４２が行う処理であり、接続されたＵＳＢデバイス１６０を識別し、デバイスＩＤ（アドレス）を指定し、ＵＳＢデバイス情報（ディスクリプタ情報）をＵＳＢデバイス１６０から受信する。そして、ＵＳＢシステム制御部１４２が、エニュメレーションの結果を切替制御部１３９経由でクラスドライバ処理部１４１へ送信することで（切替制御部１３９の初期設定ではＵＳＢシステム制御部１４２とクラスドライバ処理部１４１とをつなげることとなっているため）、クラスドライバ処理部１４１がＵＳＢデバイス１６０を制御できるようになる。
【０１９３】
そして、端末１３０のオペレータは、ＵＳＢデバイス１６０を操作して、端末管理アプリ処理部１３８に対してログオンを行う（Ｓ１６）。
【０１９４】
端末管理アプリ処理部１３８は、オペレータのログオンが成功すると切替制御部１３９にＵＳＢシステム制御部１４２とローカル通信部１４３とを接続するように命令する（Ｓ１７）。
【０１９５】
次に、端末１３０のローカル通信部１４３が、サーバ接続情報記憶領域１３４に記憶されているサーバ接続情報を利用して、四つの通信路を設置する（Ｓ１８）。例えば、ローカル通信部１４３は、Ｃｏｎｔ通信路１７１が利用するＴＣＰセッション及びＢｕｌｋ通信路１７４が利用する各々のＴＣＰセッションを、サーバ１１０との間に確立し、また、Ｉｎｔ通信路１７２及びＩｓｏ通信路１７３において、ＵＤＰを利用してデータの送受信を行うため、Ｉｎｔ通信路ローカル制御部１４６及びＩｓｏ通信路ローカル制御部１４７が、ＵＤＰパケットを送受信するための各々のソケットを作成する。
【０１９６】
次に、端末１３０のＵＳＢシステム制御部１４２は、ローカル通信部１４３及びリモート通信部１２０を経由して、サーバ１１０のクラスドライバ処理部１１９にＵＳＢデバイス１６０の設定情報を送信する（Ｓ１９）。
【０１９７】
次に、サーバ１１０のクラスドライバ処理部１１９は、ＵＳＢデバイス１６０を制御するためのリソース確保や、ＵＳＢデバイス１６０を動作可能な状態に設定する（Ｓ２０）。ステップＳ２０の処理が完了することにより、端末１３０にＵＳＢケーブルで接続されたＵＳＢデバイス１６０がサーバ１１０で制御することができるようになる。
【０１９８】
次に、サーバ１１０及び端末１３０では、端末１３０のオペレータより、通信路間の優先順位及びＵＳＢデバイス１６０の優先度の設定を行う（Ｓ２１）。ステップＳ２１での処理については、図１２を用いて詳細に説明する。
【０１９９】
次に、端末１３０のオペレータが、ＵＳＢデバイス１６０を使って、サーバ１１０のアプリ処理部１１７が提供するアプリケーションを利用して処理を実行する（Ｓ２２）。ステップＳ２２での処理については、図１６を用いて詳細に説明する。
【０２００】
そして、端末１３０のオペレータが、リモートＵＳＢ切断指示の入力を行うと、端末１３０の通信管理部１４０が、サーバ１１０のリモート通信部１２０に対して、端末１３０からの接続を切断するように要求する（Ｓ２３）。
【０２０１】
次に、サーバ１１０のリモート通信部１２０が４つの通信路（１７１、１７２、１７３、１７４）におけるデータの送信を停止し、Ｃｏｎｔ通信路１７１とＢｕｌｋ通信路１７４が利用する二つのＴＣＰセッションを切断する（Ｓ２４）。
【０２０２】
そして、端末１３０の切替制御部１３９が、Ｃｏｎｔ通信路１７１とＢｕｌｋ通信路１７４のＴＣＰセッションの切断を検知し、ＵＳＢデバイス１６０の制御をクラスドライバ処理部１４１に切り替える（Ｓ２５）。
【０２０３】
次に、端末１３０の全体制御部１３７は、端末１３０のオペレータより電源断の入力を受け付け（Ｓ２６）、端末１３０を停止する（Ｓ２７）。
【０２０４】
一方、サーバ１１０では、ステップＳ２４でＣｏｎｔ通信路１７１とＢｕｌｋ通信路１７４が利用する二つのＴＣＰセッションを切断した後に、再び端末１３０から接続を待つ状態にもどる（Ｓ２８）。
【０２０５】
そして、サーバ１１０の全体制御部１１６は、サーバ１１０のオペレータより、サーバ１１０の電源断の入力を受け付ける（Ｓ２９）。サーバ１１０のオペレータは、サーバ１１０が接続待ち状態にあることを確認してから、電源断の入力を行う。
【０２０６】
次に、サーバ１１０のリモート通信部１２０は、接続待ちのためのソケットが利用する資源を解放し（Ｓ３０）、サーバ１１０を停止する（Ｓ３１）。
【０２０７】
図１２は、通信路間の優先順位及びＵＳＢデバイス１６０の優先度の調整処理を示すシーケンス図である。
【０２０８】
まず、サーバ１１０の通信管理部１１８は、クラスドライバ処理部１１９が管理しているＵＳＢデバイス１６０のリストを取得する（Ｓ４０）。
【０２０９】
次に、通信管理部１１８は、図１３（通信管理画面１９１の概略図）に示すような通信管理画面１９１を生成し、ＵＳＢデバイス１６０のモニタ１６４に出力する（Ｓ４１）。
【０２１０】
図１３に示すように、通信管理画面１９１は、リモートＵＳＢ切断指示入力領域１９１ａと、端末からサーバ方向への優先情報入力領域１９１ｂと、サーバから端末方向への優先情報入力領域１９１ｈと、を有する。
【０２１１】
リモートＵＳＢ切断指示入力領域１９１ａを指定した実行指示が入力されると、サーバ１１０及び端末１３０の間に確立された四つの通信路が切断される。
【０２１２】
端末からサーバ方向への優先情報入力領域１９１ｂは、転送タイプ間優先順位の選択入力領域１９１ｃと、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄと、を有する。
【０２１３】
転送タイプ間優先順位の選択入力領域１９１ｃでは、端末１３０からサーバ１１０に対して送信する情報の転送タイプ間の優先順位として、優先順位Ａ又は優先順位Ｂの選択の入力を受け付ける。
【０２１４】
ここで、優先順位Ａが選択されると、データ転送の際の優先順位が、インタラプト転送のエンドポイントを持つＵＳＢデバイス、アイソクロナス転送エンドポイントを持つＵＳＢデバイス、バルク転送エンドポイントを持つＵＳＢデバイスの順となる。
【０２１５】
一方、優先順位Ｂが選択されると、インタラプト転送のエンドポイントを持つＵＳＢデバイスは優先されているが、アイソクロナス転送のエンドポイントを持つＵＳＢデバイスとバルク転送のエンドポイントを持つＵＳＢデバイスとは同じ優先順位となる。
【０２１６】
ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄでは、各転送タイプに含まれる各々のＵＳＢデバイスに割り当てる帯域の割合を特定する情報の入力を受け付ける。
【０２１７】
例えば、本実施形態においては、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄに、Ｉｎｔ入力領域１９１ｅと、Ｉｓｏ入力領域１９１ｆと、Ｂｕｌ入力領域１９１ｇと、が設けられている。
【０２１８】
Ｉｎｔ入力領域１９１ｅには、インタラプト転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２１９】
Ｉｓｏ入力領域１９１ｆには、アイソクロナス転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２２０】
Ｂｕｌ入力領域１９１ｇには、バルク転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２２１】
サーバから端末方向への優先情報入力領域１９１ｈは、転送タイプ間優先順位の選択入力領域１９１ｉと、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊと、を有する。
【０２２２】
転送タイプ間優先順位の選択入力領域１９１ｉでは、サーバ１１０から端末１３０に対して送信する情報の転送タイプ間の優先順位として、優先順位Ａ又は優先順位Ｂの選択の入力を受け付ける。
【０２２３】
ここで、優先順位Ａが選択されると、データ転送際の優先順位が、インタラプト転送のエンドポイントを持つＵＳＢデバイス、アイソクロナス転送エンドポイントを持つＵＳＢデバイス、バルク転送エンドポイントを持つＵＳＢデバイスの順となる。
【０２２４】
一方、優先順位Ｂが選択されると、インタラプト転送のエンドポイントを持つＵＳＢデバイスは優先されているが、アイソクロナス転送のエンドポイントを持つＵＳＢデバイスとバルク転送のエンドポイントを持つＵＳＢデバイスとは同じ優先順位となる。
【０２２５】
ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊでは、各転送タイプに含まれる各々のＵＳＢデバイスに割り当てる帯域の割合を特定する情報の入力を受け付ける。
【０２２６】
例えば、本実施形態においては、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊに、Ｉｎｔ入力領域１９１ｋと、Ｉｓｏ入力領域１９１ｌと、Ｂｕｌ入力領域１９１ｍと、が設けられている。
【０２２７】
Ｉｎｔ入力領域１９１ｋには、インタラプト転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２２８】
Ｉｓｏ入力領域１９１ｌには、アイソクロナス転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２２９】
Ｂｕｌ入力領域１９１ｍには、バルク転送のエンドポイントを持つＵＳＢデバイス１６０を特定する情報（ここでは、デバイス名）が表示されており、このＵＳＢデバイス１６０を特定する情報に隣接した位置に設けられているパーセント入力領域に各々のデバイスに割り当てる帯域のパーセント（割合）の入力を受け付ける。
【０２３０】
図１２に戻り、端末１３０の通信管理部１４０は、ＵＳＢデバイス１６０のマウス１６５及びキーボード１６６の少なくとも何れか一方を介して、端末１３０のオペレータより、通信管理画面１９１において、優先情報の入力を受け付ける（Ｓ４２）。
【０２３１】
なお、ステップＳ４２においては、通信管理部１１８は、端末からサーバ方向への優先情報入力領域１９１ｂ、および、サーバから端末方向への優先情報入力領域１９１ｈ、で入力を受け付ける項目の初期値を次のように設定しておく。なお、利用者が優先情報の入力を行わない場合は初期値が適用される。
【０２３２】
（１）転送タイプ間優先順位の選択入力領域１９１ｃ及び転送タイプ間優先順位の選択入力領域１９１ｉでは、初期値として優先順位Ａが選択される。
【０２３３】
（２）Ｉｎｔ入力領域１９１ｅ、Ｉｓｏ入力領域１９１ｆ、Ｂｕｌ入力領域１９１ｇ、Ｉｎｔ入力領域１９１ｋ、Ｉｓｏ入力領域１９１ｌ、および、Ｂｕｌ入力領域１９１ｍには、各々の入力領域に含まれるＵＳＢデバイス１６０の数がｎとすると、各々のＵＳＢデバイス１６０に対して１／ｎの割合が初期値として入力される。つまり、同じ転送グループ内のＵＳＢデバイス１６０の帯域の割合を均一とする。
【０２３４】
そして、通信管理画面１９１を介して入力された優先度を特定する情報は、サーバ１１０の通信管理部１１８が取得する（Ｓ４３）。
【０２３５】
次に、サーバ１１０の通信管理部１１８は、通信管理画面１９１のサーバから端末方向への優先情報入力領域１９１ｈに入力された情報からサーバ１１０用の通信管理情報を生成し、通信管理情報記憶領域１１３に記憶する（Ｓ４４）。
【０２３６】
例えば、通信管理部１１８は、図１４（サーバ１１０用の通信管理情報テーブル１１３ａの概略図）に示すような通信管理情報テーブル１１３ａを生成する。
【０２３７】
図示するように、サーバ１１０用の通信管理情報テーブル１１３ａは、グループ優先順位特定領域１１３ｂと、Ｉｎｔグループ内優先度特定領域１１３ｃと、Ｉｓｏグループ内優先度特定領域１１３ｄと、Ｂｕｌｋグループ内優先度特定領域１１３ｅと、を有する。
【０２３８】
グループ優先順位特定領域１１３ｂには、端末方向への優先度入力領域１９１ｈの転送タイプ間優先順位の選択入力領域１９１ｉで選択された転送タイプ間の優先順位を特定する情報が格納される。
【０２３９】
Ｉｎｔグループ内優先度特定領域１１３ｃには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊのＩｎｔ入力領域１９１ｋに入力された情報が格納される。
【０２４０】
Ｉｓｏグループ内優先度特定領域１１３ｄには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊのＩｓｏ入力領域１９１ｌに入力された情報が格納される。
【０２４１】
Ｂｕｌｋグループ内優先度特定領域１１３ｅには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｊのＢｕｌ入力領域１９１ｍに入力された情報が格納される。
【０２４２】
図１２に戻り、サーバ１１０の通信管理部１１８は、通信管理画面１９１の端末からサーバへの優先度入力領域１９１ｂに入力された情報から端末１３０用の通信管理情報を生成し、リモート通信部１２０に出力する（Ｓ４５）。
【０２４３】
例えば、通信管理部１１８は、図１５（端末１３０用の通信管理情報テーブル１３３ａの概略図）に示すような通信管理情報テーブル１３３ａを生成する。
【０２４４】
図示するように、端末１３０用の通信管理情報テーブル１３３ａは、グループ優先順位特定領域１３３ｂと、Ｉｎｔグループ内優先度特定領域１３３ｃと、Ｉｓｏグループ内優先度特定領域１３３ｄと、Ｂｕｌｋグループ内優先度特定領域１３３ｅと、を有する。
【０２４５】
グループ優先順位特定領域１３３ｂには、サーバ方向への優先度入力領域１９１ｂの転送タイプ間優先順位の選択入力領域１９１ｃで選択された転送タイプ間の優先順位を特定する情報が格納される。
【０２４６】
Ｉｎｔグループ内優先度特定領域１３３ｃには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄのＩｎｔ入力領域１９１ｅに入力された情報が格納される。
【０２４７】
Ｉｓｏグループ内優先度特定領域１３３ｄには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄのＩｓｏ入力領域１９１ｆに入力された情報が格納される。
【０２４８】
Ｂｕｌｋグループ内優先度特定領域１３３ｅには、ＵＳＢデバイスごとの利用帯域の割合の設定入力領域１９１ｄのＢｕｌ入力領域１９１ｇに入力された情報が格納される。
【０２４９】
図１２に戻り、次に、リモート通信部１２０は、通信管理部１１８が生成した端末１３０用の通信管理情報を、Ｃｏｎｔ通信路１７１を介して端末１３０に送信する（Ｓ４６）。
【０２５０】
このような端末１３０用の通信管理情報を受信した端末１３０のローカル通信部１４３は、受信した通信管理情報を通信管理部１４０に出力し、通信管理部１４０が通信管理情報記憶領域１３３に記憶する（Ｓ４７）。
【０２５１】
図１６は、端末１３０に接続されたＵＳＢデバイス１６０を使って、サーバ１１０のアプリ処理部１１７がアプリケーションによる処理を実行する際の情報の流れを示すシーケンス図である。
【０２５２】
まず、端末１３０のオペレータが、端末１３０に接続されているＵＳＢデバイス１６０を利用してサーバ１１０のアプリ処理部１１７が制御しているアプリケーションを操作すると（例えば、オペレータがキーボード１６６に入力するなど）、ＵＳＢデバイス１６０はＵＳＢデータを生成し、ＵＳＢケーブル経由で端末１３０のＵＳＢシステム制御部１４２に送信する（Ｓ５０）。
【０２５３】
次に、ＵＳＢシステム制御部１４２が、受信したＵＳＢデータをＵＲＢ構造体に作り直し、切替制御部１３９経由でローカル通信部１４３へ出力する（Ｓ５１）。
【０２５４】
次に、ローカル通信部１４３のローカルＵＲＢ振分部１４４が、ＵＳＢシステム制御部１４２から受信したＵＲＢを各通信路の制御部に振り分ける（Ｓ５２）。
【０２５５】
例えば、ローカルＵＲＢ振分部１４４は、コントロール転送のＵＲＢをＣｏｎｔ通信路ローカル制御部１４５へ、インタラプト転送のＵＲＢをＩｎｔ通信路ローカル制御部１４６へ、アイソクロナス転送のＵＲＢをＩｓｏ通信路ローカル制御部１４７へ、バルク転送のＵＲＢをＢｕｌｋ通信路ローカル制御部１４８へ振り分ける。
【０２５６】
そして、ローカル通信部１４３は、各通信路１７１〜１７４を用いて、情報をサーバ１１０に送信する（Ｓ５３）。なお、各通信路１７１〜１７４での通信は並列（独立）に行われる。
【０２５７】
例えば、図６に示すようなＣｏｎｔ通信路１７１では、ＵＲＢ受信部１４５ａが、ローカルＵＲＢ振分部１４４から受信したＵＲＢ（コントロール転送のＵＲＢ）をＰＤＵに分割し、送信バッファ１４５ｂに格納する。
【０２５８】
そして、データパケット送信部１４５ｃが送信バッファの中のＰＤＵを取り出し、Ｃｏｎｔ通信路１７１に送信する。Ｃｏｎｔ通信路１７１は、ＴＣＰセッションを利用してデータ送受信するため、データパケット送信部１４５ｃが送信したデータがすべてデータパケット受信部１２２ｄへ到着することが保証される。
【０２５９】
データパケット受信部１２２ｄはＣｏｎｔ通信路１７１からＰＤＵを受信し、受信バッファ１２２ｅに格納する。
【０２６０】
そして、ＵＲＢ送信部１２２ｆが、受信バッファ１２２ｅからＰＤＵを取り出し、ＵＲＢを構築し、リモートＵＲＢ振分部１２１へ送信する。
【０２６１】
また、図７に示すようなＩｎｔ通信路１７２では、Ｉｎｔ通信路ローカル制御部１４６のＵＲＢ受信部１４６ａが、ローカルＵＲＢ振分部１４４から受信したＵＲＢ（インタラプト転送のＵＲＢ）をＰＤＵに分割し、送信バッファ１４６ｂに格納する。
【０２６２】
そして、データパケット送信部１４６ｃが、通信管理情報記憶領域１３３に記憶されている通信管理情報テーブル１３３ａのＩｎｔグループ内優先度特定領域１３３ｃに格納されている各ＵＳＢデバイス１６０の帯域割合に応じて、送信バッファ１４６ｂの中のＰＤＵを取り出し、Ｉｎｔ通信路１７２に送信する。
【０２６３】
また、データパケット受信部１２３ｄは、Ｉｎｔ通信路１７２からＰＤＵを受信し、受信バッファ１２３ｅに格納する。
【０２６４】
そして、ＵＲＢ送信部１２３ｆが、受信バッファ１２３ｅからＰＤＵを取り出し、ＵＲＢを構築し、リモートＵＲＢ振分部１２１へ送信する。
【０２６５】
なお、再送部１２３ｈは、受信バッファ１２３ｅに格納されているＰＤＵのＰＤＵシーケンス及びＵＲＢシーケンスを確認し、受信したＰＤＵのＰＤＵシーケンス及びＵＲＢシーケンスを特定した受信確認を、Ｉｎｔ通信路１７２を介して、Ｉｎｔ通信路ローカル制御部１４６に送信する。
【０２６６】
一方、再送部１２３ｈは、受信バッファ１２３ｅに格納されているＰＤＵのＰＤＵシーケンス及びＵＲＢシーケンスを確認し、特定のＵＲＢシーケンスにおけるＰＤＵシーケンスに抜けがある場合には、抜けているＰＤＵシーケンス及びＵＲＢシーケンスを特定した再送要求を、Ｉｎｔ通信路１７２を介して、Ｉｎｔ通信路ローカル制御部１４６に送信する。
【０２６７】
また、図８に示すようなＩｓｏ通信路１７３では、Ｉｓｏ通信路ローカル制御部１４７のＵＲＢ受信部１４７ａが、ローカルＵＲＢ振分部１４４から受信したＵＲＢ（アイソクロナス転送のＵＲＢ）をＰＤＵに分割し、送信バッファ１４７ｂに格納する。
【０２６８】
そして、データパケット送信部１４７ｃが、通信管理情報記憶領域１３３に記憶されている通信管理情報テーブル１３３ａのＩｓｏグループ内優先度特定領域１３３ｄに格納されている各ＵＳＢデバイス１６０の帯域割合に応じて、送信バッファ１４７ｂの中のＰＤＵを取り出し、Ｉｓｏ通信路１７３に送信する。
【０２６９】
なお、レート通信部１４７ｈは、データパケット送信部１４７ｃが、予め定められた個数（例えば、１０個）のパケットを送信するごとに、この個数のパケットの平均転送レートを計算し、レート情報としてＩｓｏ通信路１７３を介してＩｓｏ通信路リモート制御部１２４に送信する。
【０２７０】
データパケット受信部１２４ｄは、Ｉｓｏ通信路１７３からＰＤＵを受信し、受信バッファ１２４ｅに格納する。
【０２７１】
また、データパケット受信部１２４ｄは、Ｉｓｏ通信路１７３から受信したレート情報を、レート通信部１２４ｈに出力する。
【０２７２】
そして、ＵＲＢ送信部１２４ｆが、受信バッファ１２４ｅからＰＤＵを取り出し、ＵＲＢを構築し、リモートＵＲＢ振分部１２１へ送信する。
【０２７３】
なお、Ｉｓｏ通信路１７３は、ＵＤＰを利用してデータを送受信するため、送信中のデータの損失が発生する可能性がある。つまり、データパケット送信部１４７ｃが送信したＰＤＵがデータパケット受信部１２４ｄに到着しないことがあるが、Ｉｓｏ通信路１７３では再送を行わない。
【０２７４】
また、図９に示すようなＢｕｌｋ通信路１７４では、Ｂｕｌｋ通信路ローカル制御部１４８のＵＲＢ受信部１４８ａが、ローカルＵＲＢ振分部１４４から受信したＵＲＢ（バルク転送のＵＲＢ）をＰＤＵに分割し、送信バッファ１４８ｂに格納する。
【０２７５】
そして、データパケット送信部１４８ｃが、通信管理情報記憶領域１３３に記憶されている通信管理情報テーブル１３３ａのＢｕｌｋグループ内優先度特定領域１３３ｅに格納されている各ＵＳＢデバイス１６０の帯域割合に応じて、送信バッファ１４８ｂの中のＰＤＵを取り出し、Ｂｕｌｋ通信路１７４に送信する。
【０２７６】
また、データパケット受信部１２５ｄは、Ｂｕｌｋ通信路１７４からＰＤＵを受信し、受信バッファ１２５ｅに格納する。
【０２７７】
そして、ＵＲＢ送信部１２５ｆが、受信バッファ１２５ｅからＰＤＵを取り出し、ＵＲＢを構築し、リモートＵＲＢ振分部１２１へ送信する。
【０２７８】
図１６に戻り、リモート通信部１２０の各通信路におけるＵＲＢ送信部１２２ｆ、１２３ｆ、１２４ｆ、１２５ｆが、各通信路から受信したＰＤＵを結合してＵＲＢを生成し（Ｓ５４）、クラスドライバ処理部１１９に送信する（Ｓ５５）。そして、クラスドライバ処理部１１９は、受信したＵＲＢをアプリ処理部１１７に出力して、アプリ処理部１１７での処理を実行する。
【０２７９】
一方、アプリ処理部１１７での処理に応じて、クラスドライバ処理部１１９が、ＵＳＢデバイス１６０へデータを送信する場合、まず、クラスドライバ処理部１１９が、ＵＲＢをリモート通信部１２０に送信する（Ｓ５６）。
【０２８０】
リモート通信部１２０のリモートＵＲＢ振分部１２１は、受信したＵＲＢを各通信路の制御部へ振り分ける（Ｓ５７）。
【０２８１】
例えば、コントロール転送のＵＲＢをＣｏｎｔ通信路リモート制御部１２２へ、インタラプト転送のＵＲＢをＩｎｔ通信路リモート制御部１２３へ、アイソクロナス転送のＵＲＢをＩｓｏ通信路リモート制御部１２４へ、バルク転送のＵＲＢをＢｕｌｋ通信路リモート制御部１２５へ振り分ける。
【０２８２】
そして、リモート通信部１２０は、各通信路１７１〜１７４を用いて、情報を端末１３０に送信する（Ｓ５８）。なお、各通信路１７１〜１７４での通信は並列（独立）に行われる。
【０２８３】
ローカル通信部１４３の各通信路におけるＵＲＢ送信部１４５ｆ、１４６ｆ、１４７ｆ、１４８ｆが、各通信路から受信したＰＤＵを結合してＵＲＢを生成し（Ｓ５９）、ＵＳＢシステム制御部１４２に送信する（Ｓ６０）。そして、ＵＳＢシステム制御部１４２は、受信したＵＲＢからＵＳＢデータを生成し、対象となるＵＳＢデバイス１６０に出力する（Ｓ６１）。
【０２８４】
図１７は、Ｉｎｔ通信路ローカル制御部１４６のデータパケット送信部１４６ｃでの処理を示すフローチャートである。
【０２８５】
まず、データパケット送信部１４６ｃは、送信バッファ１４６ｂに未送信のＰＤＵがあるか否かを確認する（Ｓ７０）。そして、未送信ＰＤＵがない場合は（ステップＳ７０でＮｏ）、ステップＳ７０を繰り返す。一方、未送信ＰＤＵがある場合は（ステップＳ７０でＹｅｓ）、ステップＳ７１に進む。
【０２８６】
ステップＳ７１では、データパケット送信部１４６ｃは、通信路間協調部１４６ｇから送信レートの値を取得する。
【０２８７】
次に、データパケット送信部１４６ｃが、送信タイミングになるまで待機し（Ｓ７２）、送信タイミングになった場合には（Ｓ７２でＹｅｓ）、ステップＳ７３に進む。
【０２８８】
なお、ステップＳ７２では、データパケット送信部１４６ｃは、下記の（１）式に示すＬ秒間待機する。
【０２８９】
【数１】
2010251854.tif 000003
【０２９０】
ここで、Ｒは直前に送信したＰＤＵのサイズ、Ｓは通信路間協調部１４６ｇが設定した送信レート、Ｔは直前のＰＤＵを送信してから経過した時間である。
【０２９１】
また、処理の開始以降送信したＰＤＵがない場合は、Ｌ＝０とする。つまり、データパケット送信部１４６ｃは送信レートがＲ又はそれ以下になるようにＰＤＵの送信間隔を伸ばすことになる。
【０２９２】
ステップＳ７３では、データパケット送信部１４６ｃは、送信バッファ１４６ｂの中の未送信のＰＤＵを一つ選ぶ。ここで、ＰＤＵの選び方は次のようになる。
【０２９３】
送信対象となるＰＤＵの送信元であるＵＳＢデバイス１６０（ここでは、デバイスＤという）の未送信ＰＤＵが選択される確率はｄ／Ｑとなる。ここで、ｄはデバイスＤのＩｎｔグループ内の優先度（通信管理情報テーブル１３３ａのＩｎｔグループ内優先度特定領域１３３ｃに格納された値）であり、Ｑは送信バッファ１４６ｂの中に未送信のＰＤＵがあるすべてのデバイスのＩｎｔグループ内優先度の和である。
【０２９４】
次に、データパケット送信部１４６ｃは、ステップＳ７３で選択されたＰＤＵをＩｎｔ通信路１７２に送信する（Ｓ７４）。
【０２９５】
次に、データパケット送信部１４６ｃは、ステップＳ７４で送信したＰＤＵの送信したタイミング及びサイズを記憶し（Ｓ７５）、ステップＳ７０に戻る。
【０２９６】
なお、図１７のフローチャートは、Ｉｎｔ通信路ローカル制御部１４６のデータパケット送信部１４６ｃでの処理で説明したが、Ｉｎｔ通信路リモート制御部１２３のデータパケット送信部１２３ｃ、Ｂｕｌｋ通信路ローカル制御部１４８のデータパケット送信部１４８ｃ及びＢｕｌｋ通信路リモート制御部１２５のデータパケット送信部１２５ｃでも同様の処理が行われる。
【０２９７】
図１８は、Ｉｓｏ通信路ローカル制御部１４７のデータパケット送信部１４７ｃでの処理を示すフローチャートである。
【０２９８】
まず、データパケット送信部１４７ｃは、送信バッファ１４７ｂに未送信のＰＤＵがあるか否かを確認する（Ｓ８０）。そして、未送信ＰＤＵがない場合は（ステップＳ８０でＮｏ）、ステップＳ８０を繰り返す。一方、未送信ＰＤＵがある場合は（ステップＳ８０でＹｅｓ）、ステップＳ８１に進む。
【０２９９】
ステップＳ８１では、データパケット送信部１４７ｃは、通信路間協調部１４７ｇから送信レートの値を取得する。
【０３００】
次に、データパケット送信部１４７ｃは、送信バッファ１４７ｂの中の未送信のＰＤＵを一つ選ぶ（Ｓ８２）。ここで、ＰＤＵの選び方は図１７のステップＳ７３と同様である。
【０３０１】
次に、データパケット送信部１４７ｃが、送信タイミングであるか否かを確認し（Ｓ８３）、送信タイミングである場合には（ステップＳ８３でＹｅｓ）ステップＳ８４に進み、送信タイミングではない場合には（ステップＳ８３でＮｏ）ステップＳ８６に進む。
【０３０２】
ここで、データパケット送信部１４７ｃは、下記の（２）式を計算し、算出した値Ｌが「０」以下の場合には送信タイミングであると判断し（ステップＳ８３でＹｅｓ）、算出した値Ｌが「０」よりも大きい場合には送信タイミングではないと判断する（ステップＳ８３でＮｏ）。
【０３０３】
【数２】
2010251854.tif 000004
【０３０４】
ここで、Ｒは直前に送信したＰＤＵのサイズ、Ｓは通信路間協調部１４７ｇが設定した送信レート、Ｔは直前のＰＤＵを送信してから経過した時間である。また、開始以降送信したＰＤＵがない場合は、Ｌ＝０とする。
【０３０５】
ステップＳ８４では、データパケット送信部１４７ｃは、ステップＳ８２で選択されたＰＤＵをＩｓｏ通信路１７３に送信する。
【０３０６】
次に、データパケット送信部１４７ｃは、ステップＳ８４で送信したＰＤＵの送信したタイミング及びサイズを記憶し（Ｓ８５）、ステップＳ８０に戻る。
【０３０７】
一方、ステップＳ８６では、データパケット送信部１４７ｃは、ステップＳ８２で選択されたＰＤＵを廃棄して、ステップＳ８０に戻る。
【０３０８】
なお、図１８は、Ｉｓｏ通信路ローカル制御部１４７のデータパケット送信部１４７ｃでの処理として説明したが、Ｉｓｏ通信路リモート制御部１２４のデータパケット送信部１２４ｃでも同様の処理となる。
【０３０９】
図１９は、端末１３０用の通信管理情報テーブル１３３ａにおいて、優先順位Ａが選択されている際のローカル通信部１４３での処理を示すシーケンス図である。
【０３１０】
まず、優先度が最も高いＩｎｔ通信路ローカル制御部１４６においてパケット損失が検知されると（Ｓ９０）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が最も低いＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇに帯域要求を行う（Ｓ９１）。例えば、Ｉｎｔ通信路ローカル制御部１４６は、再送部１４６ｈが再送要求を受信すると、パケット損失が発生したものとする。
【０３１１】
このような帯域要求を受信したＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データパケット送信部１４８ｃに送信レートを下げるように指示し、データパケット送信部１４８ｃは、データの送信レートを半分に設定する（Ｓ９２）。
【０３１２】
そして、Ｂｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データの送信レートを下げたことをＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ９３）。
【０３１３】
なお、データの送信レートを下げたデータパケット送信部１４８ｃは、送信レートを徐々に上げる（Ｓ９４）。
【０３１４】
例えば、データパケット送信部１４８ｃは、一つのＰＤＵを送信するたびに、送信レート上限値を、ＵＢ／Ｋ（Mbps）だけ増加させる。ここで、ＵＢはステップＳ９２で半減された直後の送信レートの上限値であり、Ｋは予め定められた整数である。つまり、Ｋ個のＰＤＵを送信する間に、Ｂｕｌｋ通信路の上限値がステップＳ９２を実施する直前の値に戻ることになる。
【０３１５】
次に、Ｉｎｔ通信路ローカル制御部１４６において、再びパケット損失を検知すると（Ｓ９５）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が最も低いＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇに帯域要求を行う（Ｓ９６）。
【０３１６】
このような帯域要求を受信したＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データパケット送信部１４８ｃに送信レートを下げるように指示し、データパケット送信部１４８ｃは、データの送信レートを半分に設定する（Ｓ９７）。
【０３１７】
そして、Ｂｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データの送信レートを下げたことをＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ９８）。
【０３１８】
なお、データの送信レートを下げたデータパケット送信部１４８ｃは、上述のステップＳ９４と同様にして、送信レートを徐々に上げる（Ｓ９８）。
【０３１９】
例えば、データパケット送信部１４８ｃは、一つのＰＤＵを送信するたびに、送信レート上限値を、（ＵＢ／Ｋ）＋（ＵＢ’／Ｋ）（Mbps）だけ増加させる。ここで、ＵＢ’はステップＳ９８で半減された直後の送信レートの上限値であり、Ｋは予め定められた整数である。即ち、ＰＤＵを送信する毎に、送信レートの上限値に、低下させた送信レートを整数Ｋで除算した値だけ加算するようにする（以下でも同様）。
【０３２０】
次に、Ｉｎｔ通信路ローカル制御部１４６において、再びパケット損失を検知すると（Ｓ１００）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が最も低いＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇに帯域要求を行う（Ｓ１０１）。
【０３２１】
このような帯域要求を受信したＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データパケット送信部１４８ｃでの送信レートが下げてしまうと、予め定められた閾値以下となってしまう場合には、送信レートを下げることができないと判断し（Ｓ１０２）、Ｂｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データの送信レートを下げることができないとＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ１０３）。
【０３２２】
なお、データパケット送信部１４８ｃは、上述のステップＳ９４と同様にして、送信レートを徐々に上げる（Ｓ１０４）。
【０３２３】
そして、ステップＳ１０３において、送信レートを下げることができないとの通知を受けたＩｎｔ通信路ローカル制御部１４６では、優先度が次に低いＩｓｏローカル制御部１４７の通信路間協調部１４７ｇに帯域要求を行う（Ｓ１０５）。
【０３２４】
このような帯域要求を受信したＩｓｏローカル制御部１４７の通信路間協調部１４７ｇは、データパケット送信部１４７ｃでの送信レートが下げてしまうと、予め定められた閾値以下となってしまう場合には、送信レートを下げることができないと判断し（Ｓ１０６）、Ｉｓｏローカル制御部１４７の通信路間協調部１４７ｇは、データの送信レートを下げることができないとＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ１０７）。
【０３２５】
一方、ステップＳ１０６において、Ｉｓｏローカル制御部１４７の通信路間協調部１４７ｇは、データパケット送信部１４７ｃでの送信レートが下げても予め定められた閾値以下とならない場合には、ステップＳ９２及びステップＳ９３と同様の処理を行う。
【０３２６】
なお、データパケット送信部１４７ｃは、上述のステップＳ９４と同様にして、送信レートを徐々に上げる（Ｓ１０８）。
【０３２７】
そして、ステップＳ１０７において、送信レートを下げることができないとの通知を受けたＩｎｔ通信路ローカル制御部１４６では、通信路間協調部１４６ｇが、データパケット送信部１４６ｃに対して、に送信レートを下げるように指示し、データパケット送信部１４６ｃは、データの送信レートを半分に設定する（Ｓ１０９）。
【０３２８】
そして、データの送信レートを下げたデータパケット送信部１４６ｃは、上述のステップＳ９４と同様にして、送信レートを徐々に上げる（Ｓ１１０）。
【０３２９】
なお、図１９のステップＳ９２、Ｓ９７、Ｓ１０８では、送信レートを半減させているが、このような態様に限定されるものではなく、例えば、特定の割合や、特定の値で送信レートを低下させてもよい。
【０３３０】
また、図１９では、Ｉｎｔ通信路ローカル制御部１４６、Ｉｓｏ通信路ローカル制御部１４７及びＢｕｌｋ通信路ローカル制御部１４８での処理を説明したが、Ｉｎｔ通信路リモート制御部１２３、Ｉｓｏ通信路リモート制御部１２４及びＢｕｌｋ通信路リモート制御部１２５での処理も同様である。
【０３３１】
さらに、端末１３０用の通信管理情報テーブル１３３ａにおいて、優先順位Ａが選択されている際に、Ｉｓｏ通信路ローカル制御部１４７又はＩｓｏ通信路リモート制御部１２４でパケット損失を検知した場合（例えば、相手方から通知された送信レートと自己で計測した受信レートとの差が所定の閾値を超えた場合）、図１９での処理と同様に、Ｂｕｌｋ通信路ローカル制御部１４８又はＢｕｌｋ通信路リモート制御部１２５に対して帯域要求を行うことが可能である。
【０３３２】
図２０は、端末１３０用の通信管理情報テーブル１３３ａにおいて、優先順位Ｂが選択されている際のローカル通信部１４３での処理を示すシーケンス図である。
【０３３３】
まず、優先度が最も高いＩｎｔ通信路ローカル制御部１４６においてパケット損失を検知すると（Ｓ１１１）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が低いＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇに帯域要求を行う（Ｓ１１２）。
【０３３４】
このような帯域要求を受信したＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データパケット送信部１４８ｃに送信レートを下げるように指示し、データパケット送信部１４８ｃは、データの送信レートを半分に設定する（Ｓ１１３）。
【０３３５】
そして、Ｂｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データの送信レートを下げたことをＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ１１４）。
【０３３６】
なお、データの送信レートを下げたデータパケット送信部１４８ｃは、送信レートを徐々に上げる（Ｓ１１５）。ここでは、図１９のステップＳ９４と同様の処理を行う。
【０３３７】
次に、Ｉｎｔ通信路ローカル制御部１４６において、再びパケット損失を検知すると（Ｓ１１６）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が低いＩｓｏローカル制御部１４７の通信路間協調部１４７ｇに帯域要求を行う（Ｓ１１７）。
【０３３８】
このような帯域要求を受信したＩｎｔローカル制御部１４７の通信路間協調部１４７ｇは、データパケット送信部１４７ｃに送信レートを下げるように指示し、データパケット送信部１４７ｃは、データの送信レートを半分に設定する（Ｓ１１８）。
【０３３９】
そして、Ｉｓｏローカル制御部１４７の通信路間協調部１４７ｇは、データの送信レートを下げたことをＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ１１９）。
【０３４０】
なお、データの送信レートを下げたデータパケット送信部１４７ｃは、上述のステップＳ１１４と同様にして、送信レートを徐々に上げる（Ｓ１２０）。
【０３４１】
次に、Ｉｎｔ通信路ローカル制御部１４６において、再びパケット損失を検知すると（Ｓ１２１）、Ｉｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇは、優先度が低いＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇに帯域要求を行う（Ｓ１２２）。
【０３４２】
このような帯域要求を受信したＢｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データパケット送信部１４８ｃに送信レートを下げるように指示し、データパケット送信部１４８ｃは、データの送信レートを半分に設定する（Ｓ１２３）。
【０３４３】
そして、Ｂｕｌｋローカル制御部１４８の通信路間協調部１４８ｇは、データの送信レートを下げたことをＩｎｔ通信路ローカル制御部１４６の通信路間協調部１４６ｇに通知する（Ｓ１２４）。
【０３４４】
なお、データの送信レートを下げたデータパケット送信部１４８ｃは、送信レートを徐々に上げる（Ｓ１２５）。ここでは、ステップＳ１１５と同様の処理を行う。
【０３４５】
なお、図２０では、Ｉｎｔ通信路ローカル制御部１４６、Ｉｓｏ通信路ローカル制御部１４７及びＢｕｌｋ通信路ローカル制御部１４８での処理を説明したが、Ｉｎｔ通信路リモート制御部１２３、Ｉｓｏ通信路リモート制御部１２４及びＢｕｌｋ通信路リモート制御部１２５での処理も同様である。
【０３４６】
また、図２０のステップＳ１１３、Ｓ１１８、Ｓ１２３では、送信レートを半減させているが、このような態様に限定されるものではなく、例えば、特定の割合や、特定の値で送信レートを低下させてもよい。
【０３４７】
図２１は、通信システム１００の稼働中（図１１のステップＳ２２を実行中）に、新しいＵＳＢデバイス１６０が端末１３０に接続された場合の処理を示すシーケンス図である。
【０３４８】
まず、新しいＵＳＢデバイス１６０が端末１３０に接続されると（Ｓ１３０）、端末１３０のＵＳＢシステム制御部１４２において、新しいＵＳＢデバイス１６０が端末１３０に接続されたことを検知して、ＵＳＢシステム制御部１４２が、新しいＵＳＢデバイス１６０のエニュメレーションを行う（Ｓ１３１）。
【０３４９】
そして、ＵＳＢシステム制御部１４２は、ローカル通信部１４３及びリモート通信部１２０経由で新しいＵＳＢデバイス１６０の設定情報（ＵＳＢデバイス情報）を、サーバ１１０のクラスドライバ処理部１１９に送信する（Ｓ１３２）。
【０３５０】
このような設定情報を受信したクラスドライバ処理部１１９は、ＵＳＢデバイス１６０の設定を行い、新しく接続されたＵＳＢデバイス１６０を使えるようにする（Ｓ１３３）。
【０３５１】
次に、クラスドライバ処理部１１９は、通信管理部１１８に新しいＵＳＢデバイス１６０が接続されたことを通知する（Ｓ１３４）。
【０３５２】
次に、通信管理部１１８は、通信管理情報記憶領域１１３に記憶されているサーバ１１０用の通信管理情報テーブル１１３ａに、ステップＳ１３２で送信されてきた設定情報に基づいて、新たに接続されたＵＳＢデバイス１６０が属する転送タイプに応じて、Ｉｎｔグループ内優先度特定領域１１３ｃ、Ｉｓｏグループ内優先度特定領域１１３ｄ又はＢｕｌｋグループ内優先度特定領域１１３ｅの何れかに、新たに接続されたＵＳＢデバイス１６０を識別するための識別情報を格納し、予め定められた方法で当該ＵＳＢデバイス１６０に帯域を割り当てる。
【０３５３】
なお、新しいＵＳＢデバイス１６０への帯域の割り当てについては、次のように設定する。
【０３５４】
新しいＵＳＢデバイス１６０（ここでは、デバイスＲという）が、デバイスＲが属する転送タイプ（ここでは、グループＧという）に追加された場合、デバイスＲのグループＧにおける帯域の割合（ｇ）は、下記の（３）式により求められる。
【０３５５】
【数３】
2010251854.tif 000005
【０３５６】
ここで、ｐは、グループＧの既存のデバイス数である。また、グループＧの既存のＵＳＢデバイス１６０（ここでは、デバイスＨとする）の帯域の割合（ｈ）は、次の（４）により求められる。
【０３５７】
【数４】
2010251854.tif 000006
【０３５８】
ここで、ｈ’は、デバイスＲがグループＧに追加される前の、デバイスＨの帯域の割合である。
【０３５９】
次に、通信管理部１１８は、新たに接続されたＵＳＢデバイス１６０の設定情報を含む変更通知をリモート通信部１２０に出力する（Ｓ１３６）。
【０３６０】
そして、リモート通信部１２０は、変更通知を、Ｃｏｎｔ通信路１７１を介して端末１３０に送信する（Ｓ１３７）。
【０３６１】
このような変更通知を受信した端末１３０のローカル通信部１４３は、受信した通信管理情報を通信管理部１４０に出力し、通信管理部１４０が通信管理情報記憶領域１３３に記憶されている通信管理情報テーブル１３３ａを更新する（Ｓ１３８）。なお、この更新方法については、ステップＳ１３５での処理と同様である。
【０３６２】
図２２は、通信システム１００の稼働中（図１１のステップＳ２２を実行中）に、端末１３０に接続されているＵＳＢデバイス１６０が取り外された場合の処理を示すシーケンス図である。
【０３６３】
まず、ＵＳＢデバイス１６０が端末１３０から取り外されると（Ｓ１４０）、端末１３０のＵＳＢシステム制御部１４２において、ＵＳＢデバイス１６０が端末１３０から取り外されたことを検知する（Ｓ１４１）。
【０３６４】
そして、ＵＳＢシステム制御部１４２は、ローカル通信部１４３及びリモート通信部１２０経由でＵＳＢデバイス１６０が取り外されたことを、サーバ１１０のクラスドライバ処理部１１９に通知する（Ｓ１４２）。通知を受けたクラスドライバ処理部１１９は、取り外されたＵＳＢデバイス１６０を利用するためのリソースを開放し（Ｓ１４３）、通信管理部１１８に対してデバイスリストの変更を通知する（Ｓ１４４）。
【０３６５】
次に、通信管理部１１８は、通信管理情報記憶領域１１３に記憶されているサーバ１１０用の通信管理情報テーブル１１３ａのＩｎｔグループ内優先度特定領域１１３ｃ、Ｉｓｏグループ内優先度特定領域１１３ｄ又はＢｕｌｋグループ内優先度特定領域１１３ｅから、ステップＳ１４２で通知されたＵＳＢデバイス１６０を削除して、削除したＵＳＢデバイス１６０の帯域を、他のＵＳＢデバイス１６０に割り当てる（Ｓ１４５）。
【０３６６】
なお、他のＵＳＢデバイス１６０への割当（ｓ）は、（５）式で求められる。
【０３６７】
【数５】
2010251854.tif 000007
【０３６８】
ここで、ｓ’は、他のＵＳＢデバイス１６０の割当前の帯域の割合であり、ｆは、ＵＳＢデバイス１６０を削除する前のＵＳＢデバイス１６０の数である。
【０３６９】
但し、ｆ＝１の場合には、（５）式による計算を行わない。
【０３７０】
次に、通信管理部１１８は、取り外されたＵＳＢデバイス１６０の設定情報を含む変更通知をリモート通信部１２０に出力する（Ｓ１４６）。
【０３７１】
そして、リモート通信部１２０は、変更通知を、Ｃｏｎｔ通信路１７１を介して端末１３０に送信する（Ｓ１４７）。
【０３７２】
このような変更通知を受信した端末１３０のローカル通信部１４３は、受信した通信管理情報を通信管理部１４０に出力し、通信管理部１４０が通信管理情報記憶領域１３３に記憶されている通信管理情報テーブル１３３ａを更新する（Ｓ１４８）。なお、この更新方法については、ステップＳ１４５での処理と同様である。
【０３７３】
図２３は、通信システム１００の稼働中（図１１のステップＳ２２を実行中）に、ネットワーク１７０が切断された場合の処理を示すシーケンス図である。
【０３７４】
まず、リモート通信部１２０とローカル通信部１４３との間のネットワーク１７０が切断されると、サーバ１１０のリモート通信部１２０及び端末１３０のローカル通信部１４３が、Ｃｏｎｔ通信路１７１のＴＣＰセッションが切断されたことを検知する（Ｓ１５０）。
【０３７５】
Ｃｏｎｔ通信路１７１のＴＣＰセッションが切断されたことを検知したローカル通信部１４３は、切替制御部１３９にＵＳＢデバイス１６０の制御を端末１３０のクラスドライバ処理部１４１に切り替えるように指示する（Ｓ１５１）。
【０３７６】
クラスドライバ処理部１４１は、切替制御部１３９経由で、ＵＳＢシステム制御部１４２からのＵＳＢデバイス１６０の情報を受信して（Ｓ１５２）、ＵＳｂデバイス１６０を制御し（Ｓ１５３）、端末管理アプリ処理部１３８に処理を行うように通知する（Ｓ１５４）。
【０３７７】
そして、端末管理アプリ処理部１３８が、ログオン画面をモニタ１６４に表示することでサーバ１１０への接続が切断されることを利用者へ通知する（Ｓ１５５）。
【０３７８】
一方、Ｃｏｎｔ通信路１７１のＴＣＰセッションが切断されたことを検知したリモート通信部１２１は、ＵＳＢデバイス１６０が利用不可になったことをクラスドライバ処理部１１９に通知する（Ｓ１５６）。
【０３７９】
そして、リモート通信部１２１は、Ｃｏｎｔ通信路１７１のためのＴＣＰ通信ポート、Ｂｕｌｋ通信路１７４のためのＴＣＰ通信ポート、Ｉｎｔ通信路１７２のためのＵＤＰ通信ポート及びＩｓｏ通信路１７３のためのＵＤＰ通信ポートでそれぞれデータを待ち受ける（Ｓ１５７）。
【０３８０】
そして、クラスドライバ処理部１１９は、すべてのＵＳＢデバイス１６０を制御するためのリソースを解放し（Ｓ１５８）、ＵＳＢデバイス１６０を制御できなくなったこと通信管理部１１８に通知する（Ｓ１５９）。
【０３８１】
そして、通知を受けた通信管理部１１８は、次の接続が来るまで待機する（Ｓ１６０）。
【０３８２】
以上のように、本実施形態においては、サーバ１１０及び端末１３０間のネットワーク１７０の帯域が不十分な場合、各通信路１７２、１７３、１７４の制御部が協調して送信レートを制御するため、Ｂｕｌｋ通信路１７４及びＩｓｏ通信路１７３の転送が、Ｉｎｔ通信路１７２を妨げることがなく、Ｉｎｔ通信路１７２上の転送が円滑に行われる。
【０３８３】
また、端末１３０のオペレータが、通信管理画面１９１で優先して利用したいＵＳＢデバイス１６０を他のＵＳＢデバイス１６０より多く帯域を割り当てることが可能である。
【０３８４】
さらに、本実施形態によれば、サーバ１１０及び端末１３０間のネットワーク１７０の帯域が不十分な場合でも、優先的にデータが転送されるインタラプト転送を利用しているＨｉＤデバイス（例えばマウス、キーボードなど）を他のＵＳＢデバイス１６０に優先して利用することができる。
【０３８５】
また、本実施形態によれば、端末１３０のオペレータが優先して利用したいＵＳＢデバイス１６０のデータが高い確率で選択されて転送されるため、これらのＵＳＢデバイス１６０の動作が他のＵＳＢデバイス１６０により妨げられることがない。
【符号の説明】
【０３８６】
１００  通信システム
１１０  サーバ
１１１  記憶部
１１２  ＵＳＢデバイス情報記憶領域
１１３  通信管理情報記憶領域
１１５  制御部
１１６  全体制御部
１１７  アプリ処理部
１１８  通信管理部
１１９  クラスドライバ処理部
１２０  リモート通信部
１２６  ＴＣＰ／ＩＰスタック処理部
１２７  通信部
１３０  端末
１３１  記憶部
１３２  ＵＳＢデバイス情報記憶領域
１３３  通信管理情報記憶領域
１３４  サーバ接続情報記憶領域
１３６  制御部
１３７  全体制御部
１３８  端末管理アプリ処理部
１３９  切替制御部
１４０  通信管理部
１４１  クラスドライバ処理部
１４２  ＵＳＢシステム制御部
１４３  ローカル通信部
１４９  ＴＣＰ／ＩＰスタック処理部
１５１  通信部
１５２  Ｉ／Ｆ部
１６０  ＵＳＢデバイス
【図１】
2010251854.tif 000008
【図２】
2010251854.tif 000009
【図３】
2010251854.tif 000010
【図４】
2010251854.tif 000011
【図５】
2010251854.tif 000012
【図６】
2010251854.tif 000013
【図７】
2010251854.tif 000014
【図８】
2010251854.tif 000015
【図９】
2010251854.tif 000016
【図１０】
2010251854.tif 000017
【図１１】
2010251854.tif 000018
【図１２】
2010251854.tif 000019
【図１３】
2010251854.tif 000020
【図１４】
2010251854.tif 000021
【図１５】
2010251854.tif 000022
【図１６】
2010251854.tif 000023
【図１７】
2010251854.tif 000024
【図１８】
2010251854.tif 000025
【図１９】
2010251854.tif 000026
【図２０】
2010251854.tif 000027
【図２１】
2010251854.tif 000028
【図２２】
2010251854.tif 000029
【図２３】
2010251854.tif 000030