(57)【特許請求の範囲】
【請求項１】
通信端末と１または複数のＵＳＢデバイスとの通信を中継するデバイスサーバであって、
通信端末と前記ＵＳＢデバイスとの間の通信内容を所定の量まで一時記憶するバッファ部を備え、
通信端末との間に（１）ＲＮＤＩＳ（Ｒｅｍｏｔｅ  Ｎｅｔｗｏｒｋ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）を用いて有線経路で通信する第一経路と、（２）無線経路を含む第二経路と、の２種類の経路を有し、いずれかの経路で通信端末と通信し、
２種類の通信経路の切替えの際、前記バッファ部に一時記憶された通信内容を宛先ノードに向けて送信する、
デバイスサーバ。
【請求項２】
前記宛先ノードは前記ＵＳＢデバイスである、請求項１記載のデバイスサーバ。
【請求項３】
さらに、前記ＵＳＢデバイスのデバイスドライバを格納する記憶部を備え、
前記ＵＳＢデバイスのデバイスドライバを持たない通信端末との間で、第一経路または第二経路が確立されたとき、前記デバイスドライバを当該通信端末に供給する、
請求項１または２に記載のデバイスサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデバイスを制御可能なデバイスサーバシステムにおける通信経路に関する。
【背景技術】
【０００２】
近年、ＰＣ（Personal Computer）やタブレット端末の軽量化・小型化に伴い、周辺機器とのインタフェースのポート数は必要最小限しか搭載していないことが多くなってきている。例えば、タブレット端末で、ＵＳＢインタフェースの搭載数が１ポートのみの場合、ユーザが異なるＵＳＢデバイス（スキャナやプリンタなど）を利用するたびに、ＵＳＢケーブルを差し替える必要があり、利便性が低下する。
【０００３】
そこで、上述のような利用形態では、タブレット端末などが搭載する１つのＵＳＢポート（上流ポート）とＵＳＢケーブルで接続し、自身に複数のＵＳＢポート（下流ポート）を備えた、上流ポートと下流ポートの間を中継する装置（ＵＳＢハブなど）を用いることが一般的になっている。この場合、ＵＳＢハブに備わるＵＳＢハブコントローラがデバイスを区別できるようにＩＤ番号を割り振り、そのＩＤ番号をもとに通信制御を行う。
【０００４】
また、ＵＳＢデバイスをネットワーク上で共有したり、その設置場所をネットワーク上で自由にレイアウトできるなど、ＵＳＢデバイスをネットワーク越しに利用できるデバイスサーバが普及しているが、特許文献１では上述のＵＳＢハブの機能を搭載したデバイスサーバが開示されている。
【０００５】
特許文献１に記載のデバイスサーバは、ＵＳＢデバイスモードとＵＳＢハブモードの２つのモードを備えており、ＵＳＢ上流側コネクタ（アップストリームポート）に機器が接続されると、自動的にＵＳＢデバイスモードからＵＳＢハブモードに切替わる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０４９６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のデバイスサーバは、ＵＳＢハブコントローラが備わることから、デバイスサーバにローカル接続しているＵＳＢデバイスのＩＤ番号が２つのモードを切り替える際に今まで割り振られていたものから変更になる可能性がある。このような場合は、ＯＳ（Operating System）がＵＳＢデバイスを「新たなデバイス」として認識し、再度ドライバの選定を行う。また、ＵＳＢデバイスを認識するためにプラグアンドプレイ処理も必要となり、ＵＳＢデバイスを継続して利用することができない。
【０００８】
例えば、ＵＳＢハブモードにおいて、ＰＣやタブレット端末からＵＳＢデバイス（例えば、ハードディスク）にファイルを書き込んでいる途中でＵＳＢハブモードからＵＳＢデバイスモードに切り替わると、ＵＳＢデバイスを認識するための処理が開始することになり、書き込みができなくなる事態が発生するのである。
【０００９】
本発明は、上述の問題を鑑みてなされたものであり、２つのモードで動作するデバイスサーバシステムにおいて、モードが切り替わっても割り振られたデバイスのＩＤ番号を変えることなく、スムーズにモードを切り替え、且つ、通信の継続を担保するデバイスサーバを提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の一態様に係るデバイスサーバは、通信端末と１または複数のＵＳＢデバイスとの通信を中継するデバイスサーバであって、通信端末とＵＳＢデバイスとの間の通信内容を所定の量まで一時記憶するバッファ部を備え、通信端末との間に（１）ＲＮＤＩＳを用いて有線経路で通信する第一経路と、（２）無線経路を含む第二経路と、の２種類の経路を有し、いずれかの経路で通信端末と通信し、２種類の通信経路の切替えの際、バッファ部に一時記憶された通信内容を宛先ノードに向けて送信する。
【００１１】
これによれば、通信端末とデバイスサーバを介してローカル接続しているＵＳＢデバイスとの間の通信において、デバイスサーバを利用する２つのモード（直結モードとデバイスサーバモード）での通信をスムーズに切り替え、さらに通信が途切れる時間を極力、抑えることができる。
【００１２】
また、宛先ノードはＵＳＢデバイスである。
【００１３】
さらに、ＵＳＢデバイスのデバイスドライバを格納する記憶部を備え、ＵＳＢデバイスのデバイスドライバを持たない通信端末との間で、第一経路または第二経路が確立されたとき、デバイスドライバを当該通信端末に供給する。
【００１４】
これによれば、デバイスサーバがＵＳＢデバイスのドライバプログラムを格納していると、デバイスのドライバをインターネットやデバイスの付属品を探す必要がなく、効率的に利用開始できる。
【発明の効果】
【００１５】
本発明は、ユーザの端末と有線ケーブルで直結し利用できる機能と、ネットワークを経由して利用できる機能の両方を備えるデバイスサーバが、自身にローカル接続しているＵＳＢデバイスと、２つの機能（２つの異なる経路を利用した通信）をスムーズに切り替えつつ、通信の継続性を維持できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態にかかるシステム全体図である。
【図２】図２は、本発明の実施の形態にかかるデバイスサーバのハードウェア構成である。
【図３】図３は、本発明の実施の形態にかかるデバイスサーバの機能ブロック図である。
【図４】図４は、本発明の実施の形態にかかるデバイスサーバの第一経路に障害が発生した状況を示したシステム全体図である。
【図５】図５は、本発明の実施の形態にかかるデバイスサーバの動作フロー図である。
【発明を実施するための形態】
【００１７】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００１８】
以下の実施の形態で示される数値、構成要素、構成要素の配置位置などは、一例であり、発明の範囲内において種々の変形や変更が可能である。
【００１９】
（実施の形態）
図１は本発明の実施の形態にかかるシステム全体図である。
【００２０】
図１に示すとおり、本発明のデバイスサーバシステム１００は、デバイスサーバ１、通信端末２、アクセスポイント３、ＵＳＢデバイス４（例えばプリンタ）およびＵＳＢデバイス５（例えば外付けハードディスク）などの装置から構成されている。
【００２１】
デバイスサーバ１は、ＵＳＢインタフェースを備えると共に、ネットワーク（ＬＡＮ）インタフェースとしては有線通信インタフェースと無線通信インタフェースの両方を備えている。また、デバイスサーバ１は、有線ケーブル１０によって通信端末２と接続され、無線ＬＡＮ１２によってアクセスポイント３と接続される。さらにデバイスサーバ１は、ＵＳＢデバイス４やＵＳＢデバイス５とそれぞれ有線ケーブル１３や有線ケーブル１４によってローカル接続されている。通信端末２のユーザは、通信端末２が備えるアプリケーション（図示しない、ＵＳＢ仮想接続ツールとも呼ぶ）を用いてデバイスサーバ１に指示することにより、デバイスサーバ１にローカル接続しているＵＳＢデバイス１４または１５をネットワーク越しに制御できる。
【００２２】
通信端末２は、有線インタフェースを備えるものであり、例えば、ノートＰＣやタブレットやスマートフォンなどである。通信端末２は、ＵＳＢ仮想接続ツールも備えている。また、通信端末２は、本発明で必須ではないがＵＳＢコネクタ、無線通信インタフェースなど等の各種インタフェースを備えていてもよい。
【００２３】
本発明における通信端末２は、有線ケーブル１０を通じてデバイスサーバ１と有線通信が可能であると共に、有線ＬＡＮ１１を経由してアクセスポイント３とも有線通信が可能である。なお、有線ケーブル１０を通じての有線通信は、ＲＮＤＩＳ（後で詳細に述べる）などを利用する通信である。有線ＬＡＮ１１を通じての有線通信は、例えばＩＥＥＥ８０２．３規格などに適合するものにより実現される。
【００２４】
アクセスポイント３は、有線インタフェースと無線インタフェースとを備える。
【００２５】
アクセスポイント３は、無線ＬＡＮ１２によりデバイスサーバ１との間で無線通信を行い、有線ＬＡＮ１１により通信端末２との間で有線通信を行う。なお、無線通信は、例えばＩＥＥＥ８０２．１１規格などに適合する無線ＬＡＮにより実現され、有線通信は、例えばＩＥＥＥ８０２．３規格などに適合するものにより実現される。
【００２６】
ＵＳＢデバイス４は、有線ケーブル１３（ＵＳＢケーブル）でデバイスサーバ１とローカル接続されている。例えば、プリンタやスキャナなどである。
【００２７】
ＵＳＢデバイス５は、有線ケーブル１４（ＵＳＢケーブル）でデバイスサーバ１とローカル接続されている。例えば、外付けハードディスクなどである。
【００２８】
通信経路Ｒ１は、通信端末２が有線ケーブル１０（ＵＳＢケーブル）を通じてデバイスサーバ１と有線通信を行う経路（以後、第一経路とも呼ぶ）である。
【００２９】
通信経路Ｒ２は、通信端末２から有線ＬＡＮ１１を通じてアクセスポイント３に達し、さらにこのアクセスポイント３を介し無線ＬＡＮ１２を通じてデバイスサーバ１との間で無線通信を行う経路（以後、第二経路とも呼ぶ）である。
【００３０】
図２は、本発明の実施の形態に係るデバイスサーバ１のハードウェア構成図である。
【００３１】
図２に示すとおり、これらの装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２、記憶装置２３、ＵＳＢ１_Ｉ／Ｆ２４、ＵＳＢ２_Ｉ／Ｆ２５、ＷＮＩＣ（Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２６、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２７および各構成部品間を接続している内部バス２８などを備えている。
【００３２】
ＣＰＵ２０は、ＲＯＭ２１に格納された制御プログラムを実行するプロセッサである。
【００３３】
ＲＯＭ２１は、制御プログラム等を保持する読み出し専用記憶領域である。
【００３４】
ＲＡＭ２２は、ＣＰＵ２０が制御プログラムを実行するときに使用するワークエリアとして用いられる記憶領域である。
【００３５】
記憶装置２３は、制御プログラム、制御情報、装置情報、または認証情報などを記憶する記憶領域である。
【００３６】
ＵＳＢ１_Ｉ／Ｆ２４は、ＵＳＢインタフェースを備えている。例えば、ＵＳＢ規格に準拠するコネクタを有し、そのコネクタに接続されたＵＳＢデバイスとの通信制御を行う。
【００３７】
ＵＳＢ２_Ｉ／Ｆ２５は、ＵＳＢインタフェースを備えている。例えば、ＵＳＢ規格に準拠するコネクタを有し、そのコネクタに接続されたＵＳＢデバイスとの通信制御を行う。
【００３８】
また、ＵＳＢ１_Ｉ／Ｆ２４およびＵＳＢ２_Ｉ／Ｆ２５は、それぞれ複数のＵＳＢコネクタを有してもよい。
【００３９】
ＷＮＩＣ２６は、無線通信を行う無線通信インタフェースを備えている。例えば、ＩＥＥＥ８０２．１１ａ、ｂ、ｇ、ｎ、ａｃ規格等に適合する無線ＬＡＮの通信インタフェースである。
【００４０】
ＮＩＣ２７は、有線通信を行う有線通信インタフェースを備えている。例えば、ＩＥＥＥ８０２．３規格等に適合する有線ＬＡＮの通信インタフェースである。
【００４１】
内部バス２８は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３、ＵＳＢ１_Ｉ／Ｆ２４、ＵＳＢ２_Ｉ／Ｆ２５、ＷＮＩＣ２６、ＮＩＣ２７を電気的に接続し、信号のやりとりを行うバスである。
【００４２】
図３は、本発明の実施の形態にかかるデバイスサーバ１の機能ブロック図である。
【００４３】
図３に示すデバイスサーバ１は、ＵＳＢ１インタフェース部３０、ＵＳＢ２インタフェース部３１、無線インタフェース部３２、第一仮想接続部３３、制御部３４、記憶部３５、判断部３６、バッファ部３７、第二仮想接続部３８などを備えている。
【００４４】
ＵＳＢ１インタフェース部３０は、有線ケーブル１０を通じて通信端末２との間で有線通信を行い、通信端末２からの所定の指示を制御部３４に伝えるなどする。所定の指示とは、通信端末２からデバイスサーバ１を介して、ＵＳＢデバイス４やＵＳＢデバイス５を直接に制御しているかのような指示である（以後、直結モードと呼ぶ。）。より詳しくは、通信端末２とＵＳＢデバイス４やＵＳＢデバイス５との通信は、通信端末２からＵＳＢデバイス４やＵＳＢデバイス５に対して指示した制御内容を制御部３４が受信し、制御部３４が第一仮想接続部３３に通知することで行われる。その指示は、例えば、ＲＮＤＩＳ（後で詳細に述べる）を利用し、通信端末２からデバイスサーバを介してＵＳＢデバイス４やＵＳＢデバイス５を制御できるものである。ＵＳＢ１インタフェース部３０は、ＵＳＢ１_Ｉ／Ｆ２４などにより実現される。
【００４５】
ＵＳＢ２インタフェース部３１は、少なくとも１以上のＵＳＢコネクタを有し、有線ケーブル（１３、１４）を通じて、ＵＳＢデバイス（４、５）との間で有線通信を行う。ＵＳＢ２インタフェース部３１は、ＵＳＢハブ装置のように複数のＵＳＢデバイスをローカル接続でき、通信端末２のユーザが使用したいＵＳＢデバイスを選択し、そのＵＳＢデバイスを制御部３４の指示に基づいて利用できるようにする。ＵＳＢ２インタフェース部３１は、ＵＳＢ２_Ｉ／Ｆ２５などにより実現される。
【００４６】
無線インタフェース部３２は、無線ＬＡＮ１２を通じてアクセスポイント３と無線通信を行い、さらにアクセスポイント３から有線ＬＡＮ１１３を介し通信端末２との間で通信を行う。無線インタフェース部３２によって、通信端末２のユーザは、ＵＳＢ仮想接続ツール上から指示して、有線ＬＡＮ１１およびアクセスポイント３を介しデバイスサーバ経由で、ＵＳＢデバイスに接続・利用することもできる（以後、デバイスサーバモードと呼ぶ。）。無線インタフェース部３２は、ＷＮＩＣ２６などにより実現される。
【００４７】
第一仮想接続部３３は、制御部３４の通知を基に、通信端末２からデバイスサーバを介してＵＳＢデバイス４やＵＳＢデバイス５を制御できる機能を実現する。具体的には、通信端末２のオペレーティングシステムが備えるネットワークドライバである、ＮＤＩＳ（Network Driver Interface Specification）を拡張したＲＮＤＩＳ（Remote NDIS）を利用して、通信端末２からデバイスサーバ１を介してＵＳＢデバイス４やＵＳＢデバイス５を制御する。ここで、ＲＮＤＩＳは、ＵＳＢなどの入出力バスを介してホストコンピューターのネットワークドライバとして動作する機能を備えており、仮想的にイーサネット（登録商標）越しにＵＳＢデバイスを制御することを可能とするものである。第一仮想接続部３３は、通信端末からのＲＮＤＩＳを用いた通信を受け、ＵＳＢデバイスへ通信を転送するためＵＳＢ２インタフェース部３１に送る。第一仮想接続部３３は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３などにより実現される。
【００４８】
制御部３４は、通信端末２からの指示を受けて、その指示を基にＵＳＢ２インタフェース部３１を通じてローカル接続しているＵＳＢデバイスを制御するため、第一仮想接続部３３、または第二仮想接続部３８に通信端末２からの指示を通知する。
【００４９】
また、制御部３４は、通信端末２が有線ケーブル１０を通じて通信しているとき、通信端末２とデバイスサーバ１との間の通信経路（第一経路）で障害が発生した旨の通知を判断部３６から受けると、第一仮想接続部３３に第一経路での通信を切断する旨の通知を行い、第二仮想接続部３８に第二経路での通信を開始する旨の通知を行う。制御部３４は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３などにより実現される。
【００５０】
記憶部３５は、通信端末２のユーザがＵＳＢ仮想接続ツールによってデバイスサーバ１に設定した各種パラメータを格納している。各種パラメータとは、例えば、「有線通信と無線通信の初期接続の優先度」や「バッファ部３７の容量設定」などである。
【００５１】
その他、デバイスサーバ１が通信のために一時的に格納するメモリーも備えている。記憶部３５は、記憶装置２３などにより実現される。
【００５２】
判断部３６は、通信端末２が有線ケーブル１０を通じてデバイスサーバ１と通信している場合であって、通信端末２とデバイスサーバ１との通信経路で障害が発生したときに、制御部３４にその旨を通知する。
【００５３】
判断部３６は、バッファ部３７に所定のデータ量が格納されたか否か、またはバッファ部３７に格納したデータが通信端末２とデバイスサーバ１にローカル接続しているＵＳＢデバイスとの間の通信でやりとりすべきデータの終端であるか否かを監視し判断する。所定のデータ量が格納されている場合、および格納されたデータがデータの終端である場合は、制御部３４に対して、バッファ部３７に格納されたデータを、ＵＳＢ１インタフェース部３０もしくはＵＳＢ２インタフェース部３１または無線インタフェース部３２に送信する旨の通知を行う。所定のデータ量が格納されていない場合は、通信端末２とＵＳＢデバイス４やＵＳＢデバイス５との間で通信されるデータをバッファ部３７に格納する旨を制御部３４に通知する。
【００５４】
また、判断部３６は、ＵＳＢ１インタフェース部３０を経由した通信端末２との通信（例えばＲＮＤＩＳを利用した通信）が開始されたか否かを判断し、制御部３４にその旨を通知する。判断部３６は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３などにより実現される。
【００５５】
バッファ部３７は、記憶部３５とは別個に確保されたメモリー領域で構成されており、通信端末２とＵＳＢデバイス４やＵＳＢデバイス５との間で行なわれる通信において所定のデータ量を格納する。所定のデータ量は、通信端末２のユーザがＵＳＢ仮想接続ツールによって記憶部３５に設定してもよいし、工場出荷時に予め設定されていてもよい。バッファ部３７は、記憶装置２３などにより実現される。
【００５６】
第二仮想接続部３８は、制御部３４からの通知を基に、通信端末２からアクセスポイント３および無線ＬＡＮ１２を通じ、デバイスサーバ１経由でＵＳＢデバイス４やＵＳＢデバイス５を制御できる機能を実現する。具体的には、通信端末２が備えるＵＳＢ仮想接続ツール上でユーザが、デバイスサーバ１にローカル接続しているＵＳＢデバイスを選択し、使用できるものである。第二仮想接続部３８を用いる通信経路Ｒ２は、通信経路Ｒ１と異なり、ＲＮＤＩＳを利用しない。
【００５７】
なお、第二仮想接続部３８は、通信端末２とデバイスサーバ１がＵＳＢ１インタフェース部３０を通して通信可能となった旨の通知を制御部３４から受けて、代替経路として、制御部３４の通知があればいつでも通信可能な通信経路を予め確保する。第二仮想接続部３８は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３などにより実現される。
【００５８】
つぎに、図４は、本発明の実施の形態にかかるデバイスサーバ１と通信端末２が有線ケーブル１０で接続され有線通信（通信経路Ｒ１）を行っている状況から、通信経路Ｒ２に切り替わって通信端末２との通信を継続する、システムの全体図である。
【００５９】
ここで、通信経路Ｒ１は、通信端末２と有線ケーブル１０でデバイスサーバと有線通信を行う経路（第一経路）である。通信経路Ｒ２は、通信端末２と有線ＬＡＮ１１でアクセスポイント３を介してデバイスサーバ１との間で無線通信を行う経路（第二経路）である。
【００６０】
図４に示す状況は、デバイスサーバ１と通信端末２との通信経路Ｒ１で障害が発生した場合を示しており、これを受けてデバイスサーバ１は、通信端末２との間で行っている通信経路を通信経路Ｒ１から通信経路Ｒ２に切り替えを行う。
【００６１】
図５は、本発明の実施の形態にかかるデバイスサーバ１が、通信端末２と第二経路で通信可能状態か否かの判断から第二経路で通信端末２と接続しＵＳＢデバイスと通信を行うまでの一連のフローを示している。ここで、初期状態として、ＵＳＢ２インタフェース部３１と、ＵＳＢデバイス４やＵＳＢデバイス５とは、有線ケーブル１３、１４により、既にそれぞれ通信可能である。
【００６２】
ステップＳ４０１にて、判断部３６は、通信端末２と無線インタフェース部３２との間で第二経路を用いた無線通信が可能な状態か否かを判断する。通信可能な場合は、ステップＳ４０２に遷移する（ステップＳ４０１のＹｅｓ）。通信可能でない場合は、処理を終了する（ステップＳ４０１のＮｏ）。具体的には、判断部３６は、無線インタフェース部３２を通じてアクセスポイント３と無線通信が可能であり、かつアクセスポイント３と有線ＬＡＮ１１を通じて通信端末２と有線通信ができるか否かを判断する。
【００６３】
ステップＳ４０２にて、判断部３６は、通信端末２に接続された有線ケーブル１０がＵＳＢ１インタフェース部３０に物理的に接続しているか否かを判断する。接続していると判断した場合は、ステップＳ４０３に遷移する（ステップＳ４０２のＹｅｓ）。接続していないと判断した場合は、ステップＳ４０９に遷移する（ステップＳ４０２のＹｅｓ）。
【００６４】
ステップＳ４０３にて、判断部３６は、第一経路を用いて通信端末２とＵＳＢ１インタフェース部３０との間で有線通信が可能な状態か否かを判断する。通信可能な場合は、ステップＳ４０４に遷移する（ステップＳ４０３のＹｅｓ）。通信可能でない場合は、ステップＳ４０９に遷移する（ステップＳ４０３のＮｏ）。具体的には、判断部３６は、通信端末２が、ＵＳＢ１インタフェース部３０に接続された有線ケーブル１０とＲＮＤＩＳとを利用して有線通信ができるか否かで判断する。
【００６５】
ステップＳ４０４にて、制御部３４は、判断部３６の通知を受けて、通信端末２とデバイスサーバ１にローカル接続しているＵＳＢデバイスとの間を第一経路で通信する。
【００６６】
ステップＳ４０５にて、制御部３４は、通信端末２とデバイスサーバ１にローカル接続しているＵＳＢデバイスとの間の通信でやりとりするデータをバッファ部３７に格納するように制御する。
【００６７】
ステップＳ４０６にて、判断部３６は、バッファ部３７に格納したデータが通信端末２とデバイスサーバ１にローカル接続しているＵＳＢデバイスとの間の通信でやりとりすべきデータの終端であるか否かを判断する。終端である場合は、ステップＳ４０８に遷移する（ステップＳ４０６のＹｅｓ）。このようにすれば、バッファ部３７のデータ量（ユーザが設定したデータ量、または予め設定されたデータ量）が所定量に達していなくても、バッファ部３７に格納されたデータは宛先ノード（ＵＳＢデバイス）に即時、送信される。終端でない場合は、ステップＳ４０７に遷移する（ステップＳ４０６のＮｏ）。
【００６８】
ステップＳ４０７にて、判断部３６は、バッファ部３７に格納したデータ量が記憶部３５に設定された所定のデータ量に達しているか否かを判断する。達している場合は、ステップＳ４０８に遷移する（ステップＳ４０７のＹｅｓ）。達していない場合は、ステップＳ４０５を繰り返す（ステップＳ４０７のＮｏ）。
【００６９】
ステップＳ４０８にて、判断部３６は、バッファ部３７に格納しているデータから通信に必要なデータ量を送信する旨の通知を制御部３４に行い、第一仮想接続部３３を通じて通信端末２とＵＳＢデバイスとの間で必要なデータ量を送信する。
【００７０】
ステップＳ４０９にて、判断部３６は、通信端末２と有線ケーブル１０を通じてデバイスサーバ１と通信しているときに、第一経路で障害が発生したか否かを判断する。ここでいう障害とは、意図せぬ障害以外に、ユーザが通信端末２からケーブルを抜き第一経路による通信を停止した場合も含む。障害が発生した場合は、ステップＳ４１０に遷移する（ステップＳ４０９のＹｅｓ）。障害が発生していない場合は、ステップＳ４０５に遷移する（ステップＳ４０９のＮｏ）。
【００７１】
ステップＳ４１０にて、判断部３６は、直前の通信までバッファ部３７に格納しているデータから通信に必要なデータ量を送信する旨の通知を制御部３４に行い、デバイスサーバ１とＵＳＢデバイスとの間の通信を行う。このようにすることで、通信端末２は、第一経路上に障害が発生しても、デバイスサーバ１から一定時間の通信がＵＳＢデバイスと行われることにより、第二経路に切り替えて通信を開始するまでの時間を担保できる。その結果、通信端末２とＵＳＢデバイスの間の通信が途切れることなく、スムーズな通信経路の切り替えが可能となる。
【００７２】
ステップＳ４１１にて、判断部３６は、第一経路で障害が発生したと判断（ステップＳ４０９のＹｅｓ）すると、制御部３４にその旨を通知する。判断部３６からその通知を受けた制御部３４は、第一仮想接続部３３に第一経路での通信を切断する旨の通知を行い、第二仮想接続部３８に第二経路を用いて通信を継続する旨の通知を行う。第二仮想接続部３８は、無線インタフェース部３２を通じて通信端末２と無線ＬＡＮ１２やアクセスポイント３を介し有線ＬＡＮ１２を通じて、通信を継続する。ここで、第二仮想接続部３８は、第二経路を用いて通信が可能な状態（ステップＳ４０１のＹｅｓ）であるので、制御部３４の通知に基づいて第二経路での通信を即時に開始できる。
【００７３】
（その他の実施形態）
その他の実施形態においては、デバイスサーバ１の記憶部３５に、自身に接続されているＵＳＢデバイス（１４、１５）のドライバを格納することが可能である。上述したように、本発明のデバイスサーバシステムでは、２つのモードが切り替わる際にドライバの再インストールは不要であるが、新たな通信端末（タブレット端末またはＰＣ）がデバイスサーバにアクセスしＵＳＢデバイスを利用するときには、デバイスのドライバが通信端末にインストールされていることが必須である。このとき、デバイスサーバがそのドライバプログラムを格納していると、デバイスのドライバをインターネットやデバイスの付属品を探す必要がなく、効率的に利用開始できる。デバイスサーバ１の制御部３４は、判断部３６による第一経路での通信が可能になった旨の通知を受けて、通信端末２に向けてＵＳＢデバイスに対応したドライバを記憶部３５から送信する。
【００７４】
また、図１および図３における第二経路Ｒ２では、通信端末２有線ＬＡＮ１１を経由してアクセスポイント３とやりとりしていたが、通信端末２が無線通信インタフェースを持っていれば、直接アクセスポイント３とやりとりしてもよい。例えば、通信端末２のユーザが自席でＵＳＢケーブルを使って（通信経路１で）デバイスサーバ１を経由しＵＳＢデバイスを使用していたとする。会議などで通信端末を持って自席を離れると経路１は切断されるが、通信端末に備えられた無線通信インタフェースにより、アクセスポイント３に直接アクセスし、そこからデバイスサーバ１と通信し（通信経路２）、ＵＳＢデバイスを引き続いて利用できる。この際、本発明のデバイスサーバシステムは、デバイスのドライバの再インストールは不要であり、デバイスを連続的に利用可能である。
【００７５】
（まとめ）
上述したとおり、本発明は、図１で説明した通信端末とデバイスサーバを介してローカル接続しているＵＳＢデバイスとの間の通信において、デバイスサーバを利用する２つのモード（直結モードとデバイスサーバモード）での通信をスムーズに切り替え、さらに通信が途切れる時間を極力、抑えることができる。
【００７６】
従来では、モードの切り替えにより、直前まで通信を行っていたＵＳＢデバイスであってもデバイスのＩＤ番号が変更されていた。このように従来では、ＵＳＢデバイスは新たなデバイスとしてデバイスの認識を行うために必要な既定の処理（プラグアンドプレイなど）に時間がかかり、モード切り替え時に通信が途絶えてしまっていた。本発明では、デバイスのＩＤ番号を変更する事無く、２つのモードを切り替えることができる。
【００７７】
より具体的には、ＲＮＤＩＳを利用して通信（第一経路）することで、通信端末２がデバイスサーバを介してＵＳＢデバイスを直接に制御することになり、ＵＳＢデバイスのＩＤ番号がモード切り替え時に変更されることはない。つまり、従来では、ＵＳＢハブ装置が備えるＵＳＢハブコントローラ（ハードウェアＩＣチップ）が、通信端末２とＵＳＢデバイスとの間に介在し、接続しているＵＳＢデバイスごとに割り振るため、通信端末のＯＳはＵＳＢデバイスを切り替えるたびに「新しいデバイス」としてデバイスの認識を行う必要があるが、ＲＮＤＩＳを利用すれば、通信端末２のユーザが使用したいデバイスサーバ１にローカル接続しているＵＳＢデバイスは、通信端末２から直接にＵＳＢデバイスを制御しているので、デバイスのＩＤ番号が変わることはないのである。
【００７８】
本発明は、上記記載のようにモードの切り替え時に接続中のＵＳＢデバイスのＩＤ番号が変更されないでは無く、バッファ部を設けることにより、ＵＳＢ規格の各種データ転送方式にも対応しながらもスムーズなモード切り替えによる通信を実現する。
【産業上の利用可能性】
【００７９】
本発明は、ユーザの端末と有線ケーブルで直結し利用できる機能と、ネットワークを経由して利用できる機能の両方を備えるデバイスサーバを利用して、自身にローカル接続しているＵＳＢデバイスと、２つの機能（２つの異なる経路を利用した通信）をスムーズに切り替えつつ、通信の継続性を維持したい場合に有用である。
【符号の説明】
【００８０】
１  デバイスサーバ
２  通信端末
３  アクセスポイント
４、５  ＵＳＢデバイス
１０、１３、１４  有線ケーブル
１１  有線ＬＡＮ
１２  無線ＬＡＮ
Ｒ１、Ｒ２  通信経路
１００  デバイスサーバシステム
２０  ＣＰＵ
２１  ＲＯＭ
２２  ＲＡＭ
２３  記憶装置
２４  ＵＳＢ１＿Ｉ／Ｆ
２５  ＵＳＢ２＿Ｉ／Ｆ
２６  ＷＮＩＣ
２７  ＮＩＣ
２８  内部バス
３０  ＵＳＢ１インタフェース部
３１  ＵＳＢ２インタフェース部
３２  無線インタフェース部
３３  第一仮想接続部
３４  制御部
３５  記憶部
３６  判断部
３７  バッファ部
３８  第二仮想接続部
【図１】
0006465314.tif 000002
【図２】
0006465314.tif 000003
【図３】
0006465314.tif 000004
【図４】
0006465314.tif 000005
【図５】
0006465314.tif 000006