(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024034188
(43)【公開日】2024-03-13
(54)【発明の名称】デバイスサーバ、ネットワークシステム、デバイスサーバの制御方法、および、プログラム
(51)【国際特許分類】
G06F 13/38 20060101AFI20240306BHJP
【FI】
G06F13/38 320A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022138269
(22)【出願日】2022-08-31
(71)【出願人】
【識別番号】500112146
【氏名又は名称】サイレックス・テクノロジー株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】林 栄植
(57)【要約】
【課題】安定した通信を実現する。
【解決手段】デバイスサーバ10は、USBデバイス30に接続する第一通信インタフェース11と、ホスト装置20に接続する第二通信インタフェース12と、USBデバイス30の複数の動作モードを示すモード情報を取得する取得部13aと、複数の動作モードのそれぞれについて当該動作モードでUSBデバイス30が動作するときにUSBデバイス30との通信に使用される第一通信帯域、および、ホスト装置20との通信に使用可能な第二通信帯域を算出する算出部13bと、算出された複数の第一通信帯域がそれぞれ第二通信帯域を超えるか否かを判定する判定部13cと、複数の動作モードのうち当該動作モードについて算出された第一通信帯域が第二通信帯域を超えると判定された動作モードを削除することでモード情報を更新する更新部13dと、更新されたモード情報をホスト装置20へ出力する出力部13eと、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
USB(Universal Serial Bus)デバイスに接続し、前記USBデバイスと音声および映像の少なくとも一方のデータ通信を行う第一通信インタフェースと、
ホスト装置に接続する第二通信インタフェースと、
前記USBデバイスの複数の動作モードを示すモード情報を取得する取得部と、
前記取得部により取得された前記モード情報に基づいて、前記複数の動作モードのそれぞれについて、当該動作モードで前記USBデバイスが動作するときに前記USBデバイスと前記第一通信インタフェースとの間の通信に使用される第一通信帯域を算出し、かつ、前記ホスト装置と前記第二通信インタフェースとの間の通信に使用可能な第二通信帯域を算出する算出部と、
前記算出部により算出された複数の前記第一通信帯域がそれぞれ前記第二通信帯域を超えるか否かを判定する判定部と、
前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、前記モード情報を更新する更新部と、
前記更新部により更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力する出力部と、
を備える、
デバイスサーバ。
【請求項2】
前記判定部は、前記USBデバイスが更新された前記モード情報に基づいて前記ホスト装置により選択された動作モードで動作しているときに、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えるか否かを判定し、
前記更新部は、前記判定部により前記第一通信帯域が前記第二通信帯域を超えると判定された場合、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、
前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、
前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力する、
請求項1に記載のデバイスサーバ。
【請求項3】
前記算出部は、前記ホスト装置が前記第二通信帯域のうち所定の通信帯域を確保する指示を受け付けた場合、前記第二通信帯域から前記所定の通信帯域を差し引いた差分通信帯域を算出し、
前記判定部は、前記算出部により算出された複数の前記第一通信帯域がそれぞれ前記差分通信帯域を超えるか否かを判定し、
前記更新部は、前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えると前記判定部により判定された動作モードを削除することで、前記モード情報を更新する、
請求項1に記載のデバイスサーバ。
【請求項4】
前記判定部は、前記USBデバイスが更新された前記モード情報に基づいて前記ホスト装置により選択された動作モードで動作しているときに、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えるか否かを判定し、
前記更新部は、前記判定部により前記第一通信帯域が前記差分通信帯域を超えると判定された場合、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、
前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、
前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力する、
請求項3に記載のデバイスサーバ。
【請求項5】
前記USBデバイスは、映像および音声の少なくとも一方のデータを前記第一通信インタフェースへ送信する、
請求項1~4のいずれか1項に記載のデバイスサーバ。
【請求項6】
請求項1に記載のデバイスサーバを備え、
前記ホスト装置は、前記USBデバイスにデータの送信を要求する信号を送信し、
前記デバイスサーバにおいて、
前記判定部は、前記信号が前記ホスト装置から所定時間内に送信される回数が閾値以上である場合、前記第一通信帯域が前記第二通信帯域を超えていると判定し、
前記更新部は、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、
前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、
前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力する、
ネットワークシステム。
【請求項7】
USBデバイスへ接続し、前記USBデバイスと音声および映像の少なくとも一方のデータ通信を行う第一通信ステップと、
ホスト装置に接続する第二通信ステップと、
前記USBデバイスの複数の動作モードを示すモード情報を取得する取得ステップと、
前記取得ステップで取得された前記モード情報に基づいて、前記複数の動作モードのそれぞれについて、当該動作モードで前記USBデバイスが動作するときに前記USBデバイスとの通信に使用される第一通信帯域を算出し、かつ、前記ホスト装置との通信に使用可能な第二通信帯域を算出する算出ステップと、
前記算出ステップで算出された複数の前記第一通信帯域が前記第二通信帯域を超えるか否かを判定する判定ステップと、
前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定ステップで判定された動作モードを削除することで、前記モード情報を更新する更新ステップと、
前記更新ステップで更新された前記モード情報を前記ホスト装置へ出力する出力ステップと、
を含む、
デバイスサーバの制御方法。
【請求項8】
請求項7に記載のデバイスサーバの制御方法をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デバイスサーバ、ネットワークシステム、デバイスサーバの制御方法、および、プログラムに関する。
【背景技術】
【0002】
例えば、特許文献1には、複数のデバイスクラスに対応している周辺機器(デバイス装置)が複数のデバイスクラスについてホスト機能を有するコンピュータ(ホスト装置)と接続可能と判断されたデバイスクラスの一覧を表示部に表示し、ユーザにより選択されたデバイスクラスでデータ通信を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、例えば、ホスト装置からネットワークを介してデバイスサーバにローカル接続されたデバイス装置を使用する場合、ネットワーク帯域を多く使用してしまうことがある。
【0005】
本発明は、上記問題を解決するためになされたものであり、ホスト装置がデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現することができるデバイスサーバなどを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の一態様に係るデバイスサーバは、USB(Universal Serial Bus)デバイスに接続し、前記USBデバイスと音声および映像の少なくとも一方のデータ通信を行う第一通信インタフェースと、ホスト装置に接続する第二通信インタフェースと、前記USBデバイスの複数の動作モードを示すモード情報を取得する取得部と、前記取得部により取得された前記モード情報に基づいて、前記複数の動作モードのそれぞれについて、当該動作モードで前記USBデバイスが動作するときに前記USBデバイスと前記第一通信インタフェースとの間の通信に使用される第一通信帯域を算出し、かつ、前記ホスト装置と前記第二通信インタフェースとの間の通信に使用可能な第二通信帯域を算出する算出部と、前記算出部により算出された複数の前記第一通信帯域がそれぞれ前記第二通信帯域を超えるか否かを判定する判定部と、前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、前記モード情報を更新する更新部と、前記更新部により更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力する出力部と、を備えるデバイスサーバである。
【0007】
これによれば、デバイスサーバは、USBデバイスのモード情報を取得して、複数の動作モードのそれぞれでUSBデバイスを動作させたときにUSBデバイスとの通信に使用される複数の第一通信帯域のうち、ホスト装置との通信に使用可能な第二通信帯域を超える動作モードを削除した更新後のモード情報をホスト装置に出力することができる。ホスト装置は、更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、デバイスサーバは、USBデバイスを適切な動作モードで動作させることに寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現することができる。
【0008】
また、前記判定部は、前記USBデバイスが更新された前記モード情報に基づいて前記ホスト装置により選択された動作モードで動作しているときに、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えるか否かを判定し、前記更新部は、前記判定部により前記第一通信帯域が前記第二通信帯域を超えると判定された場合、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力してもよい。
【0009】
これによれば、デバイスサーバは、USBデバイスが動作しているときにUSBデバイスとの通信に使用される第一通信帯域が第二通信帯域を超える場合、更新後のモード情報を再更新するため、通信状態の変動に応じて適切にモード情報を更新することができる。また、デバイスサーバは、更新後のモード情報を再更新すると、USBデバイスとの通信接続を一旦切断して、USBデバイスと再接続した後に、再更新後のモード情報をホスト装置に出力するため、ホスト装置は、通信状態をリセットした後に、動作モードを選択することができる。より具体的には、ホスト装置は、通信状態をリセットした後に、再更新されたモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、安定した通信を実現することができる。
【0010】
また、前記算出部は、前記ホスト装置が前記第二通信帯域のうち所定の通信帯域を確保する指示を受け付けた場合、前記第二通信帯域から前記所定の通信帯域を差し引いた差分通信帯域を算出し、前記判定部は、前記算出部により算出された複数の前記第一通信帯域がそれぞれ前記差分通信帯域を超えるか否かを判定し、前記更新部は、前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えると前記判定部により判定された動作モードを削除することで、前記モード情報を更新してもよい。
【0011】
これによれば、デバイスサーバは、第二通信帯域において、別の通信のため所定の通信帯域を確保する指示が受け付けられた場合に、モード情報が示す複数の動作モードのそれぞれでUSBデバイスを動作させたときにUSBデバイスとの通信に使用される複数の第一通信帯域のうち、第二通信帯域から所定の通信帯域を差し引いた差分通信帯域を超える動作モードを削除した更新後のモード情報をホスト装置に出力することができる。ホスト装置は、更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、所定の通信帯域を確保しつつ、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、デバイスサーバは、USBデバイスを適切な動作モードで動作させることに寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用する場合に、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0012】
また、前記判定部は、前記USBデバイスが更新された前記モード情報に基づいて前記ホスト装置により選択された動作モードで動作しているときに、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えるか否かを判定し、前記更新部は、前記判定部により前記第一通信帯域が前記差分通信帯域を超えると判定された場合、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記差分通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力してもよい。
【0013】
これによれば、デバイスサーバは、USBデバイスが動作しているときにUSBデバイスとの通信に使用される第一通信帯域が差分通信帯域を超える場合、更新後のモード情報を再更新するため、通信状態の変動に応じて適切にモード情報を更新することができる。また、デバイスサーバは、更新後のモード情報を再更新すると、USBデバイスとの通信接続を一旦切断して、USBデバイスと再接続した後に、再更新後のモード情報をホスト装置に出力するため、ホスト装置は、通信状態をリセットした後に、動作モードを選択することができる。より具体的には、ホスト装置は、通信状態をリセットした後に、再更新されたモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、所定の通信帯域を確保しつつ、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0014】
また、前記USBデバイスは、映像および音声の少なくとも一方のデータを前記第一通信インタフェースへ送信してもよい。
【0015】
これによれば、デバイスサーバは、USBデバイスから送信された映像および音声の少なくとも一方のデータを、第二通信インタフェースを介して、ホスト装置に送信することができる。これにより、デバイスサーバは、ホスト装置とUSBデバイスとの間の映像および音声の少なくとも一方のデータ通信を中継することができる。
【0016】
また、本発明の一態様に係るネットワークシステムは、本発明の一態様に係るデバイスサーバを備え、前記ホスト装置は、前記USBデバイスにデータの送信を要求する信号を送信し、前記デバイスサーバにおいて、前記判定部は、前記信号が前記ホスト装置から所定時間内に送信される回数が閾値以上である場合、前記第一通信帯域が前記第二通信帯域を超えていると判定し、前記更新部は、更新された前記モード情報が示す複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定部により判定された動作モードを削除することで、更新された前記モード情報を再更新し、前記第一通信インタフェースは、更新された前記モード情報が再更新されると、前記USBデバイスとの接続を切断し、前記出力部は、前記第一通信インタフェースが前記USBデバイスに再び接続すると、前記更新部により再更新された前記モード情報を、前記第二通信インタフェースを介して前記ホスト装置へ出力してもよい。
【0017】
これによれば、ネットワークシステムは、USBデバイスにデータの送信を要求する信号が前記ホスト装置から所定時間内に送信される回数が閾値以上である場合、第一通信帯域が第二通信帯域を超えたと判定するため、通信状態の変動を監視することができる。また、ネットワークシステムでは、デバイスサーバは、更新後のモード情報が示す複数の動作モードのそれぞれでUSBデバイスを動作させたときにデバイスサーバとUSBデバイスとの間の通信に使用される複数の第一通信帯域のうち、デバイスサーバとホスト装置との間の通信に使用可能な第二通信帯域を超える動作モードを削除した再更新後のモード情報をホスト装置に出力することができる。ホスト装置は、再更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、ネットワークシステムは、ホスト装置からデバイスサーバ経由でUSBデバイスを使用しているときに、安定した通信を実現することができる。なお、上記の更新されたモード情報は、デバイスサーバがUSBデバイスに接続を開始したときに取得されたモード情報であってもよい。この場合、上記の再更新後のモード情報は、更新後のモード情報である。
【0018】
また、本発明の一態様に係るデバイスサーバの制御方法は、USBデバイスへ接続し、前記USBデバイスと音声および映像の少なくとも一方のデータ通信を行う第一通信ステップと、ホスト装置に接続する第二通信ステップと、前記USBデバイスの複数の動作モードを示すモード情報を取得する取得ステップと、前記取得ステップで取得された前記モード情報に基づいて、前記複数の動作モードのそれぞれについて、当該動作モードで前記USBデバイスが動作するときに前記USBデバイスとの通信に使用される第一通信帯域を算出し、かつ、前記ホスト装置との通信に使用可能な第二通信帯域を算出する算出ステップと、前記算出ステップで算出された複数の前記第一通信帯域が前記第二通信帯域を超えるか否かを判定する判定ステップと、前記複数の動作モードのうち、当該動作モードについて算出された前記第一通信帯域が前記第二通信帯域を超えると前記判定ステップで判定された動作モードを削除することで、前記モード情報を更新する更新ステップと、前記更新ステップで更新された前記モード情報を前記ホスト装置へ出力する出力ステップと、を含むデバイスサーバの制御方法である。
【0019】
これによれば、上記デバイスサーバと同様の効果を奏する。
【0020】
また、本発明の一態様に係るプログラムは、上記の提供方法をコンピュータに実行させるプログラムである。
【0021】
上記デバイスサーバと同様の効果を奏する。
【0022】
なお、本発明は、装置として実現できるだけでなく、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD-ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【0023】
本発明により、デバイスサーバは、ホスト装置からデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現することができる。
【図面の簡単な説明】
【0024】
【
図1】
図1は、実施の形態に係るネットワークシステムおよびデバイスサーバの構成を示す模式図である。
【
図2】
図2は、実施の形態に係るデバイスサーバが実行する処理の一例を示すフロー図である。
【
図3】
図3は、
図2のステップS06およびS07の詳細なフローを示すフロー図である。
【
図4】
図4は、USBデバイスにより予め記憶された、自機が動作可能な複数の動作モードを示すモード情報の一例を示す図である。
【
図5】
図5は、実施の形態に係るデバイスサーバが実行する処理の他の例を示すフロー図である。
【
図6】
図6は、
図5のステップS23およびS24の詳細なフローを示すフロー図である。
【
図7】
図7は、実施の形態に係るネットワークシステムが実行する処理の一例を示すシーケンス図である。
【
図8】
図8は、実施の形態に係るネットワークシステムが実行する処理の他の例を示すシーケンス図である。
【発明を実施するための形態】
【0025】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0026】
以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、より好ましい形態を構成する任意の構成要素として説明される。なお、同一の構成要素には同一の符号を付し、説明を省略する場合がある。
【0027】
(実施の形態)
本実施の形態において、ホスト装置からデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現することができるネットワークシステムおよびデバイスサーバなどについて説明する。
【0028】
まず、本実施の形態に係るネットワークシステムについて
図1を参照しながら説明する。
図1は、本実施の形態に係るネットワークシステムおよびデバイスサーバの構成を示す模式図である。
【0029】
図1に示されるように、ネットワークシステム1は、例えば、デバイスサーバ10と、ホスト装置20とを備える。デバイスサーバ10は、ホスト装置20と、USBデバイス30とに接続する装置であり、ホスト装置20からネットワークを介してUSBデバイス30を利用可能とするUSBデバイスサーバである。USBデバイス30は、デバイスサーバ10経由で、ホスト装置20と映像および音声の少なくとも一方のデータ通信を行う機器であり、例えば、USB Video Class(以下、UVC)型のWEBカメラ、または、USB Audio Class(UAC)型のWEBオーディオ機器(例えば、マイクまたはスピーカ)などである。ホスト装置20は、デバイスサーバ10を介してUSBデバイス30と接続するための各種設定を行うためにユーザが操作する装置である。ホスト装置20は、例えば、パーソナルコンピュータ、スマートフォン、または、タブレット端末などの情報端末によって実現される。ホスト装置20は、例えば、汎用の情報端末に所定のアプリケーションプログラムがインストールされることで実現される。ここで、所定のアプリケーションプログラムとは、デバイスサーバ10にネットワークを介して接続しUSBデバイス30を利用可能とするためのアプリケーションであり、より具体的にはホスト装置20とUSBデバイスの接続および切断などを管理する管理ツールである。
【0030】
なお、
図1の例では、デバイスサーバ10とホスト装置20とは、ルータなどの中継器を介さずに、直接、通信接続されているが、ルータなどの中継器(不図示)を介して接続されてもよい。例えば、デバイスサーバ10とホスト装置20とが、中継器を介する場合、Wi-Fi(登録商標)などの無線通信で無線アクセスポイント装置を経由して接続されてもよいし、Ethernet(登録商標)などの有線通信でL2スイッチまたはL3スイッチ等を経由して接続されてもよい。また、例えば、デバイスサーバ10とホスト装置20とが中継器を介して接続される場合、ホスト装置20と中継器との間の通信と、中継器とデバイスサーバ10との間の通信とが同じ通信方式であってもよいし、異なる通信方式であってもよい。
【0031】
なお、
図1の例では、ホスト装置20およびUSBデバイス30は、それぞれ、デバイスサーバ10と1つずつ接続されるが、この例に限定されず、複数接続されてもよい。すなわち、複数のホスト装置20および複数のUSBデバイス30は、それぞれ、デバイスサーバ10に接続されていてもよい。なお、デバイスサーバ10とUSBデバイス30との間の通信方式は、USB通信である。
【0032】
続いて、
図1を再び参照しながら、デバイスサーバ10の各構成について説明する。デバイスサーバ10は、例えば、第一通信インタフェース11(図中の第一通信IF)と、第二通信インタフェース12(図中の第二通信IF)と、制御部13と、記憶部14とを備える。
【0033】
第一通信インタフェース11は、USBデバイス30に接続し、USBデバイス30と音声および映像の少なくとも一方のデータ通信を行う通信回路(または、通信モジュール)である。第一通信インタフェース11は、例えば、USB通信または局所通信ネットワークを介してUSBデバイス30と通信を行う。第一通信インタフェース11が行う通信は、無線通信であってもよいし、有線通信であってもよい。
【0034】
第二通信インタフェース12は、ホスト装置20に接続する通信回路(または、通信モジュール)である。第二通信インタフェース12は、例えば、広域通信ネットワークまたは局所通信ネットワークを介してホスト装置20と通信を行ってもよいし、広域通信ネットワークおよび局所通信ネットワークの両方を介してホスト装置20と通信を行ってもよい。後者の場合、第二通信インタフェース12は、中継器(不図示)を介してホスト装置20と接続される。なお、第二通信インタフェース12が行う通信方式は、特に限定されない。
【0035】
制御部13は、デバイスサーバ10に関する各種情報処理を行う。制御部13は、例えば、マイクロコンピュータによって実現されるが、プロセッサまたは専用回路によって実現されてもよい。制御部13の機能は、制御部13を構成するマイクロコンピュータまたはプロセッサなどのハードウェアが記憶部14に記憶されたコンピュータプログラム(ソフトウェア)を実行することによって実現される。
【0036】
制御部13は、機能的な構成要素として、取得部13aと、算出部13bと、判定部13cと、更新部13dと、出力部13eとを備える。取得部13a、算出部13b、判定部13c、更新部13d、および、出力部13eが行う具体的な処理については、後述する。
【0037】
記憶部14は、制御部13が実行するコンピュータプログラムなどが記憶される記憶装置である。また、記憶部14は、第一通信インタフェース11、第二通信インタフェース12、および制御部13で行われる情報処理により記憶する必要が生じた情報を一時的に記憶できる。記憶部14は、例えば、HDD(Hard Disk Drive)によって実現されるが、半導体メモリによって実現されてもよい。
【0038】
続いて、本実施の形態に係るデバイスサーバ10が実行する処理の一例について
図2、
図3、および
図4を参照しながら説明する。
図2は、本実施の形態に係るデバイスサーバ10が実行する処理の一例を示すフロー図である。
図3は、
図2のステップS06およびS07の詳細なフローを示すフロー図である。
図4は、USBデバイス30が予め記憶された、自機が動作可能な複数の動作モードを示すモード情報の一例を示す図である。
【0039】
図2に示されるように、ステップS01において、第二通信インタフェース12は、ホスト装置20に接続する。図示していないが、例えば、デバイスサーバ10は、ユーザが操作するホスト装置20の所定のアプリケーションからホスト装置20との接続命令を受信すると、ホスト装置20に応答信号を送信し、第二通信インタフェース12を介してホスト装置20に接続する。
【0040】
ステップS02において、第一通信インタフェース11は、USBデバイス30に接続する。図示していないが、デバイスサーバ10は、ホスト装置20の所定のアプリケーションからUSBデバイスとの接続命令を受信すると、USBデバイス30に接続を要求する信号(以下、接続要求ともいう)を送信する。そして、デバイスサーバ10は、USBデバイス30から接続要求に対する応答信号を受信すると、第一通信インタフェース11を介してUSBデバイス30に接続する。
【0041】
ステップS03において、取得部13aは、USBデバイス30の複数の動作モードを示すモード情報をUSBデバイス30から取得する。言い換えると、モード情報は、より詳細には、USBデバイス30により予め記憶された、自機が動作可能な複数の動作モードを示す情報である。例えば、USBデバイス30がWEBカメラである場合、モード情報は、解像度と、フレームレートと、ビットレートとの組み合わせを複数含む。さらに、モード情報は、フォーマット情報、および、色情報などを含んでもよい。また、例えば、当該WEBカメラがマイクまたはスピーカを搭載している場合、モード情報は、マイクまたはスピーカの複数の動作モードを示す情報を含む。なお、取得部13aは、任意のタイミングでUSBデバイス30からモード情報を取得してもよい。例えば、モード情報の取得は、初期設定およびユーザの指示により行われてもよい。また、例えば、取得部13aは、USBデバイス30の電源投入後、デバイスサーバ10がUSBデバイス30に接続を開始したタイミングでUSBデバイス30からモード情報を取得してもよいし、接続後も一定期間(一定時間)経過ごとにモード情報を取得してもよい。
【0042】
ここで、
図4を参照しながら、USBデバイス30の複数の動作モードを示すモード情報について、詳細に説明する。
【0043】
図4に示されるように、複数の動作モードAからEには、それぞれ異なる解像度およびビットレートなどの情報が含まれている。例えば、動作モードAは、解像度が640×480ピクセルおよびビットレートが最小3.72MB/sから最大18.432MB/sまでが含まれ、動作モードBは、解像度が160×120ピクセルおよびビットレートが最小192KB/sから最大1.152MB/sまでが含まれることが示されている。ホスト装置20は、デバイスサーバ10経由で得た当該モード情報(例えば動作モードAからEを含む)に基づいて、USBデバイス30に実行させる動作モードを1つ(例えば動作モードB)選択し、選択された動作モード(例えば動作モードB)を実行する指示を、デバイスサーバ10を介して、USBデバイス30に送信する。これにより、ホスト装置20は、選択された動作モードに応じた通信帯域(例えば動作モードBで通信可能な通信帯域)を確保しつつ、デバイスサーバ10経由でUSBデバイス30の動作を制御する(つまり、USBデバイス30を使用する)ことができる。
【0044】
再び
図2を参照する。
図2のステップS04において、算出部13bは、取得部13aにより取得されたモード情報に基づいて、複数の動作モードのそれぞれについて、当該動作モードでUSBデバイス30が動作するときにUSBデバイス30と第一通信インタフェース11との間の通信に使用される第一通信帯域を算出する。例えば、算出部13bは、取得部13aにより取得されたUSBデバイス30の複数の動作モードを示すモード情報をもとに、それぞれの動作モード(例えば、解像度が640×480ピクセルでフレームレートが30fpsなど)でUSBデバイス30と第一通信インタフェース11との間で通信が行われた場合に使用される第一通信帯域をそれぞれの動作モードについて算出する。
【0045】
ステップS05において、算出部13bは、ホスト装置20と第二通信インタフェース12との間の通信に使用可能な第二通信帯域を算出する。第二通信帯域の算出は、第一通信帯域の算出と異なり、実測定により行う。例えば、算出部13bは、予め定められた通信レートで第二通信インタフェース12に通信パケットを送信し、ホスト装置20が受信できる通信パケットを実測定することで、使用可能な第二通信帯域を算出する。
【0046】
ステップS06において、判定部13cは、算出部13bにより算出された複数の第一通信帯域がそれぞれ第二通信帯域を超えるか否かを判定する。この判定によれば、例えば、算出部13bにより算出された第一通信帯域が第二通信帯域を超えると判定された場合、該当する動作モードを利用するために必要とされる第一通信帯域が、第二通信インタフェースにおける通信で確保できないことを意味する。
【0047】
ステップS07において、更新部13dは、複数の動作モードのうち、当該動作モードについて算出された第一通信帯域が第二通信帯域を超えると判定部13cにより判定された動作モードを削除することで、第二通信帯域で適切にUSBデバイス30を制御できるモード情報に更新する。
【0048】
ここで、
図3を参照しながら、ステップS06およびS07についてより具体的に説明する。
【0049】
図3に示されるように、ステップS11において、判定部13cは、複数の動作モードについて、動作モード毎のループ処理を開始する。
【0050】
ステップS12において、判定部13cは、当該動作モードでUSBデバイス30が動作するときの第一通信帯域が第二通信帯域よりも大きいか否かを判定する。第一通信帯域が第二通信帯域よりも大きいと判定部13cにより判定された場合(ステップS12でYes)、更新部13dは、ステップS03で取得部13aにより取得されたモード情報から当該動作モードを削除する(ステップS13)。一方、第一通信帯域が第二通信帯域よりも大きくないと判定部13cにより判定された場合(ステップS12でNo)、更新部13dは、ステップS03で取得部13aにより取得されたモード情報から当該動作モードを削除しない(ステップS14)。
【0051】
図3に示されていないが、ステップS13またはS14の後、判定部13cは、全ての複数の動作モードについてループ処理が終了したか否かを判定し、ループ処理が終了したと判定した場合、動作モード毎のループ処理を終了する(ステップS15)。
【0052】
再び
図2を参照する。
図2のステップS08において、出力部13eは、更新部13dにより更新されたモード情報を、第二通信インタフェース12を介してホスト装置20へ出力する。これにより、ホスト装置20は、デバイスサーバ10を介してUSBデバイス30との通信を安定して行うことが可能となる。
【0053】
なお、
図2において、ステップS03~S05の処理は、必ずしもこの順に行われなくてもよい。例えば、ステップS02の後に、ステップS05、S03、S04の順に行われてもよいし、ステップS03、S05、S04の順に行われてもよい。また、ステップS03~S05の処理は並行して同時に行われてもよい。
【0054】
なお、図示していないが、ホスト装置20は、デバイスサーバ10から出力されたモード情報に基づいて、USBデバイス30に実行させる動作モードを選択し、選択された動作モードを実行する指示を、デバイスサーバ10を介して、USBデバイス30に送信する。これにより、ホスト装置20は、デバイスサーバ10経由でUSBデバイス30の動作を制御することができる。
【0055】
なお、USBデバイス30がホスト装置20による指示に従って動作しているときに、デバイスサーバ10が通信状態に応じてモード情報を再更新し、再更新されたモード情報に基づいてUSBデバイス30の動作を制御する処理の流れについては、ネットワークシステム1が実行する処理の他の例で後述する。
【0056】
続いて、本実施の形態に係るデバイスサーバ10が実行する処理の他の例について
図5および
図6を参照しながら説明する。
図5は、本実施の形態に係るデバイスサーバ10が実行する処理の他の例を示すフロー図である。
図6は、
図5のステップS23およびS24の詳細なフローを示すフロー図である。
【0057】
なお、
図5に示されるステップS01~S05は、それぞれ、
図2のステップS01~S05と同じ処理であるため、ここでの説明を省略する。
【0058】
上記の処理の一例では、ホスト装置20がデバイスサーバ10を介してUSBデバイスと接続して、デバイスサーバ10により更新されたモード情報を取得するまでの流れを説明した。処理の他の例では、デバイスサーバ10が、ホスト装置20とデバイスサーバ10(より具体的には、第二通信インタフェース12)との間の通信に使用可能な第二通信帯域のうち、他の通信のために所定の通信帯域を確保する指示をホスト装置20から受信した場合の処理例について説明する。なお、第二通信帯域のうち所定の通信帯域を確保する指示は、第二通信帯域のうちUSBデバイス30との通信以外に優先して使用したい他の通信(例えば、第二通信帯域を他のホスト装置20のために確保するなど)がある場合などに適用される。
【0059】
図5に示されていないが、ホスト装置20が第二通信帯域のうち所定の通信帯域を確保する指示を受け付けると、当該指示をデバイスサーバ10に送信する。
【0060】
ステップS21において、第二通信インタフェース12は、所定の通信帯域を確保する指示をホスト装置20から受信する。このとき、第二通信インタフェース12は、当該指示を算出部13bに通知する(不図示)。
【0061】
ステップS22において、算出部13bは、第二通信帯域から所定の通信帯域を差し引いた残りである差分通信帯域を算出する。
【0062】
ステップS23において、判定部13cは、ステップS04で算出部13bにより算出された複数の第一通信帯域がそれぞれ差分通信帯域を超えるか否かを判定する。
【0063】
ステップS24において、更新部13dは、複数の動作モードのうち、当該動作モードについて算出された第一通信帯域が差分通信帯域を超えると判定部13cにより判定された動作モードを削除することで、モード情報を更新する。
【0064】
ここで、
図6を参照しながら、ステップS23およびS24についてより具体的に説明する。
【0065】
図6に示されるように、ステップS31において、判定部13cは、複数の動作モードについて、動作モード毎のループ処理を開始する。
【0066】
ステップS32において、判定部13cは、当該動作モードでUSBデバイス30が動作するときの第一通信帯域が差分通信帯域よりも大きいか否かを判定する。第一通信帯域が差分通信帯域よりも大きいと判定部13cにより判定された場合(ステップS32でYes)、更新部13dは、ステップS03で取得部13aにより取得されたモード情報から当該動作モードを削除する(ステップS33)。一方、第一通信帯域が差分通信帯域よりも大きくないと判定部13cにより判定された場合(ステップS32でNo)、更新部13dは、ステップS03で取得部13aにより取得されたモード情報から当該動作モードを削除しない(ステップS34)。
【0067】
図6に示されていないが、ステップS33またはS34の後、判定部13cは、全ての複数の動作モードについてループ処理が終了したか否かを判定し、ループ処理が終了したと判定した場合、動作モード毎のループ処理を終了する(ステップS35)。
【0068】
再び
図5を参照する。
図5のステップS25において、出力部13eは、更新部13dにより更新されたモード情報を、第二通信インタフェース12を介してホスト装置20へ出力する。これにより、ホスト装置20は、第二通信帯域のうち、ユーザに指定された所定の通信帯域を確保しながら、デバイスサーバ10を介してUSBデバイス30との通信を安定して行うことが可能となる。
【0069】
なお、図示していないが、ホスト装置20は、デバイスサーバ10から出力されたモード情報に基づいて、USBデバイス30に実行させる動作モードを選択し、選択された動作モードを実行する指示を、デバイスサーバ10を介して、USBデバイス30に送信する。これにより、ホスト装置20は、所定の通信帯域を確保しつつ、デバイスサーバ10経由でUSBデバイス30の動作を制御する(つまり、USBデバイス30を使用する)ことができる。
【0070】
なお、USBデバイス30がホスト装置20による指示に従って動作しているときに、デバイスサーバ10が通信状態に応じてモード情報を再更新し、再更新されたモード情報に基づいてUSBデバイス30の動作を制御する処理の流れについては、ネットワークシステム1が実行する処理の他の例に記載の「第二通信帯域」を「差分通信帯域」と読み替えるものとする。
【0071】
続いて、本実施の形態に係るネットワークシステム1が実行する処理の一例について
図7を参照しながら説明する。
図7は、本実施の形態に係るネットワークシステム1が実行する処理の一例を示すシーケンス図である。ここでは、ホスト装置20がデバイスサーバ10を介してUSBデバイス30と接続を開始し、USBデバイス30の動作を制御する処理例を説明する。
【0072】
図7に示されているとおり、ホスト装置20はユーザにより入力されたデバイスサーバ10への接続命令を受け付けると、デバイスサーバ10との接続を開始する。より具体的には、ホスト装置20は、接続命令をデバイスサーバ10に送信し、デバイスサーバ10から応答信号を受信すると、デバイスサーバ10との接続を開始する。
【0073】
ホスト装置20がユーザにより入力されたUSBデバイス30への接続命令を受け付けると(ステップS41)、デバイスサーバ10に接続命令を送信する(ステップS42)。
【0074】
デバイスサーバ10は、ホスト装置20からUSBデバイス30への接続命令を受信すると、USBデバイス30へ接続要求を送信する(ステップS43)。
【0075】
USBデバイス30は、デバイスサーバ10から接続要求を受信すると、応答信号を送信する(ステップS44)。このとき、USBデバイス30は、応答信号と共にモード情報を送信する。
【0076】
デバイスサーバ10の取得部13aは、USBデバイス30から応答信号と共にモード情報を取得し(ステップS45)、取得したモード情報を記憶部14に格納する(
図7で不図示)。このとき、デバイスサーバ10は、第二通信インタフェース12を介して、ホスト装置20に応答信号を送信する(ステップS46)。
【0077】
ホスト装置20は、デバイスサーバ10から応答信号を受信すると、仮想USB接続を開始する(ステップS47)。より具体的には、ホスト装置20は、デバイスサーバ10が備えるUSBデバイスドライバによってUSBデバイス30を、デバイスサーバ10を介して駆動できるように認識する処理を行う。当該処理により、ホスト装置20は、デバイスサーバ10に接続されたUSBデバイス30を、あたかもホスト装置20に直接接続されたかのように利用可能となる。
【0078】
デバイスサーバ10の算出部13bは、ホスト装置20とデバイスサーバ10(より具体的には、第二通信インタフェース12)との間の通信における第二通信帯域を実測定により算出する(ステップS48)。
【0079】
デバイスサーバ10の算出部13bは、記憶部14に格納されたモード情報を読み出す(
図7にて不図示)。そして、算出部13bは、モード情報に基づいて、複数の動作モードのそれぞれについて、当該動作モードでUSBデバイス30が動作するときにUSBデバイス30とデバイスサーバ10(より具体的には、第一通信インタフェース11)との間の通信に使用される第一通信帯域を算出する(ステップS49)。
【0080】
デバイスサーバ10の判定部13cは、算出部13bにより算出された複数の第一通信帯域がそれぞれ第二通信帯域を超えるか否かを判定する(ステップS50)。
【0081】
デバイスサーバ10の更新部13dは、複数の動作モードのうち、当該動作モードについて算出された第一通信帯域が第二通信帯域を超えると判定部13cにより判定された動作モードを削除することで、ステップS45で取得部13aにより取得されたモード情報を更新する(ステップS51)。そして、更新部13dは、更新されたモード情報を記憶部14に格納する(
図7で不図示)。
【0082】
ホスト装置20は、仮想USB接続が開始されると(ステップS47)、デバイスサーバ10にモード情報を要求する信号(以下、モード情報の要求という)を送信する(ステップS52)。
【0083】
デバイスサーバ10の出力部13eは、モード情報の要求を受信すると、更新されたモード情報を記憶部14から読み出し(
図7で不図示)、更新されたモード情報を、第二通信インタフェース12を介して、ホスト装置20に出力する(ステップS53)。
【0084】
ホスト装置20は、更新されたモード情報を取得すると(ステップS54)、更新されたモード情報が示す複数の動作モードからUSBデバイス30に実行させる動作モードを決定する(ステップS55)。
【0085】
ホスト装置20は、決定された動作モードをUSBデバイス30に実行させる命令(以下、実行命令という)をデバイスサーバ10に送信する(ステップS56)。
【0086】
デバイスサーバ10は、ホスト装置20から実行命令を受信すると(
図7で不図示)、実行命令をUSBデバイス30に送信する(ステップS57)。
【0087】
USBデバイス30は、実行命令を受信すると(
図7で不図示)、ステップS55でホスト装置20により決定された動作モードで動作を開始する(ステップS58)。
【0088】
図7に示される一連の処理により、ネットワークシステム1は、ホスト装置20からデバイスサーバ10経由でUSBデバイス30を使用する前に、ホスト装置20とデバイスサーバ10との間の通信に使用可能な第二通信帯域において、USBデバイス30の制御に使用可能な通信帯域を確保できるようにモード情報を更新することができる。これにより、ネットワークシステム1は、ホスト装置20からデバイスサーバ10経由でUSBデバイス30を使用する場合に、USBデバイスを適切な動作モードで動作させることに寄与するため、安定した通信を実現することができる。
【0089】
なお、
図5で説明したように、ホスト装置20により予め所定の通信帯域を別通信のために確保する指示が受け付けられた場合、上記の第二通信帯域は、第二通信帯域から所定の通信帯域を差し引いた差分通信帯域であるとして、
図7に示される一連の処理を行う。これにより、ネットワークシステム1は、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0090】
続いて、本実施の形態に係るネットワークシステム1が実行する処理の他の例について
図8を参照しながら説明する。
図8は、本実施の形態に係るネットワークシステム1が実行する処理の他の例を示すシーケンス図である。ここでは、
図7に示したシーケンスにより、ホスト装置20がデバイスサーバ10を介してUSBデバイス30と接続を開始した後に第二通信帯域を算出した結果、第一通信帯域が第二通信帯域を超えると判定された場合の処理例を説明する。
【0091】
図7のステップS58において、USBデバイス30がホスト装置20により決定された動作モードで動作を開始すると、USBデバイス30は映像および音声の少なくとも一方のデータを送信し、ホスト装置20は、デバイスサーバ10を介して、USBデバイス30から送信されたこれらのデータを取得する(
図7および
図8で不図示)。
【0092】
ホスト装置20は、取得した上記データを用いて映像および音声の少なくとも一方を適切に再生するために、所定のデータ量(例えば、数100ミリ秒~数秒間の再生に必要なデータ量)を記憶装置(バッファともいう)に保持していることが想定される。ホスト装置20は、保持しているデータ量が不足すると(
図8で不図示)、不足した分のデータの送信を要求する信号(以下、データ要求という)をUSBデバイス30に送信する(
図8のステップS60)。
【0093】
デバイスサーバ10は、ホスト装置20から送信されたデータ要求を受信すると(
図8で不図示)、データ要求をUSBデバイス30に送信する(ステップS61)。
【0094】
USBデバイス30は、デバイスサーバ10から送信されたデータ要求を受信すると(
図8で不図示)、デバイスサーバ10にデータを送信し(ステップS62)、デバイスサーバ10は、USBデバイス30から取得したデータをホスト装置20に送信する(ステップS63)。なお、ステップS60~S63は、繰り返し実行される。
【0095】
デバイスサーバ10の判定部13cは、USBデバイス30とデバイスサーバ10との間の通信(ここでは、USBデバイス30からデバイスサーバ10へのデータの送信)に使用される第一通信帯域が、デバイスサーバ10とホスト装置20との間の通信に使用可能な第二通信帯域を超えるか否かを判定する。上記判定は、ステップS60~S63を1回の通信として、所定の通信回数毎に実施されてもよい。例えば、判定部13cは、USBデバイス30にデータの送信を要求する信号がホスト装置20から所定時間内に送信される回数が閾値以上である場合、第一通信帯域が第二通信帯域を超えていると判定する。つまり、判定部13cは、ホスト装置20からデータの送信を要求する信号の送信回数が閾値以上であることにより、デバイスサーバ10とホスト装置20との間の通信帯域(いわゆる、第二通信帯域)に変化が生じたことによって、当該信号が所定時間内に送信される回数が増加したと認識する。これにより、判定部13cは、第一通信帯域が第二通信帯域を超えていると判定し、更新部13dにその旨を通知する。上記閾値は、例えば、ホスト装置20とデバイスサーバ10との間の通信帯域が十分である場合においてUSBデバイス30にデータの送信を要求する信号がホスト装置20から所定時間内に送信される回数の1.1倍~1.5倍などと定められてもよい。
【0096】
デバイスサーバ10の更新部13dは、判定部13cにより第一通信帯域が第二通信帯域を超えると判定された場合(ステップS64)、
図7のステップS51で更新されたモード情報を再更新する(ステップS65)。なお、第一通信帯域が第二通信帯域を超えないと、デバイスサーバ10の判定部13cが判定した場合には、ステップS64以降の処理は行われない。
【0097】
デバイスサーバ10の判定部13cが、第一通信帯域が第二通信帯域を超えると判定するのは、例えば、以下の場合である。
【0098】
例えば、判定部13cは、ホスト装置20から受信するデータ要求に応じて、データを送信できているか否かを判定することで、第一通信帯域が第二通信帯域を超えると判定する。
【0099】
ホスト装置20が送信するデータ要求には、例えば、指定時間と指定データ量とが含まれる。データ要求に含まれている指定時間と指定データ量とは、当該データ要求が、当該指定時間内に当該指定データ量のデータの送信を要求することを意味している。この場合、デバイスサーバ10は、データ要求を受けた場合に、指定時間内に指定データ量のデータを送信しようとするが、ホスト装置20とデバイスサーバ10との間の通信帯域が不足している場合には、上記指定時間内に上記指定データ量のデータを送信することができない。そこで、判定部13cは、データ要求に含まれる指定時間内に指定データ量のデータを、ホスト装置20に送信できていないと判定した場合に、第一通信帯域が第二通信帯域を超えたと判定する。
【0100】
また、例えば、判定部13cは、ホスト装置20から受信するデータ要求の受信間隔の変化を用いて、第一通信帯域が第二通信帯域を超えたか否かを判定する。
【0101】
この場合、ホスト装置20とデバイスサーバ10との間の通信帯域が十分である場合には、データ要求の送信間隔が等間隔になる(通常間隔ともいう)ことが想定されるが、上記通信帯域が不足している場合には、データ要求の送信間隔が通常間隔より短くなる。そこで、判定部13cは、ホスト装置20から受信するデータ要求の受信間隔が通常間隔より短いと判定した場合に、第一通信帯域が第二通信帯域を超えたと判定する。
【0102】
この場合、デバイスサーバ10の更新部13dは、
図7のステップS51で更新部13dにより更新されたモード情報が示す複数の動作モードのうち、当該動作モードについて算出された第一通信帯域が現時点での第二通信帯域を超えると判定部13cにより判定された動作モードを削除することで、更新されたモード情報を再更新する(ステップS65)。このとき、更新部13dは、再更新されたモード情報を記憶部14に格納する(
図8で不図示)。
【0103】
その後、デバイスサーバ10は、USBデバイス30に切断命令を送信する(ステップS66)。
【0104】
USBデバイス30は、デバイスサーバ10から送信された切断命令を受信すると(
図8で不図示)、デバイスサーバ10に応答信号を送信する(ステップS67)。
【0105】
デバイスサーバ10の第一通信インタフェース11は、USBデバイス30から応答信号を受信すると(
図8で不図示)、USBデバイス30との接続を切断する(ステップS68)。
【0106】
デバイスサーバ10の第二通信インタフェース12は、USBデバイス30との接続を切断したことを通知する切断通知をホスト装置20に送信する(ステップS69)。
【0107】
ホスト装置20は、デバイスサーバ10から送信された切断通知を受信すると、USBデバイス30との接続の切断を認識し、USBデバイス30との接続を切断する(ステップS70)。
【0108】
デバイスサーバ10の第一通信インタフェース11は、USBデバイス30との接続を要求する信号(接続要求)を送信する(ステップS71)。
【0109】
USBデバイス30は、デバイスサーバ10から送信された接続要求を受信すると、応答信号を送信する(ステップS72)。
【0110】
デバイスサーバ10は、USBデバイス30から送信された応答信号を受信すると、USBデバイス30との接続を再開し(ステップS73)、USBデバイス30との接続が再開したことを通知する接続通知をホスト装置20に送信する(ステップS74)。
【0111】
ホスト装置20は、デバイスサーバ10から送信された接続通知を受信すると、デバイスサーバ10に応答信号を送信し(ステップS75)、仮想USB接続を開始する(ステップS76)。
【0112】
ホスト装置20は、モード情報を要求する信号(いわゆる、モード情報の要求)を送信する(ステップS77)。
【0113】
デバイスサーバ10の出力部13eは、ホスト装置20からモード情報の要求を受信すると、ステップS65で再更新されたモード情報を記憶部14から読み出し(
図8で不図示)、ステップS65で再更新されたモード情報を、第二通信インタフェース12を介して、ホスト装置20に出力する(ステップS78)。
【0114】
ホスト装置20は、デバイスサーバ10から出力された再更新されたモード情報を取得すると(ステップS79)、再更新されたモード情報が示す複数の動作モードからUSBデバイス30に実行させる動作モードを決定する(ステップS80)。
【0115】
ホスト装置20は、決定された動作モードをUSBデバイス30に実行させる命令(いわゆる、実行命令)をデバイスサーバ10に送信する(ステップS81)。
【0116】
デバイスサーバ10は、ホスト装置20から実行命令を受信すると(
図8で不図示)、実行命令をUSBデバイス30に送信する(ステップS82)。
【0117】
USBデバイス30は、実行命令を受信すると(
図8で不図示)、ステップS80でホスト装置20により決定された動作モードで動作を開始する(ステップS83)。
【0118】
図8に示される一連の処理により、ネットワークシステム1は、ホスト装置20からデバイスサーバ10経由でUSBデバイス30を使用している(言い換えると、USBデバイス30の動作を制御している)ときに、ホスト装置20とデバイスサーバ10との間の通信で使用可能な第二通信帯域において使用可能な帯域に見合った動作モードでUSBデバイス30からデータを送信させることができる。これにより、ネットワークシステム1は、ホスト装置20からデバイスサーバ10経由でUSBデバイス30を使用しているときに、USBデバイス30の正常な動作モードを維持することができるため、安定した通信を実現することができる。
【0119】
なお、ホスト装置20により予め所定の通信帯域を確保する指示が受け付けられた場合、上記の第二通信帯域は、第二通信帯域から所定の通信帯域を差し引いた残りである差分通信帯域であるとして、
図8に示される一連の処理を行う。これにより、ネットワークシステム1は、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0120】
以上のように、本実施の形態のデバイスサーバは、USBデバイスのモード情報を取得して、複数の動作モードのそれぞれでUSBデバイスを動作させたときにUSBデバイスとの通信に使用される複数の第一通信帯域のうち、ホスト装置との通信に使用可能な第二通信帯域を超える動作モードを削除した更新後のモード情報をホスト装置に出力することができる。ホスト装置は、更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、デバイスサーバは、USBデバイスを適切な動作モードで動作させることに寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現することができる。
【0121】
また、デバイスサーバは、USBデバイスが動作しているときにUSBデバイスとの通信に使用される第一通信帯域が第二通信帯域を超える場合、更新後のモード情報を再更新するため、通信状態の変動に応じて適切にモード情報を更新することができる。また、デバイスサーバは、更新後のモード情報を再更新すると、USBデバイスとの通信接続を一旦切断して、USBデバイスと再接続した後に、再更新後のモード情報をホスト装置に出力するため、ホスト装置は、通信状態をリセットした後に、動作モードを選択することができる。より具体的には、ホスト装置は、通信状態をリセットした後に、再更新されたモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、安定した通信を実現することができる。
【0122】
また、デバイスサーバは、第二通信帯域において所定の通信帯域を確保する指示が受け付けられた場合に、モード情報が示す複数の動作モードのそれぞれでUSBデバイスを動作させたときにUSBデバイスとの通信に使用される複数の第一通信帯域のうち、第二通信帯域から所定の通信帯域を差し引いた差分通信帯域を超える動作モードを削除した更新後のモード情報をホスト装置に出力することができる。ホスト装置は、更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、所定の通信帯域を確保しつつ、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、デバイスサーバは、USBデバイスを適切な動作モードで動作させることに寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用する場合に、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0123】
また、デバイスサーバは、USBデバイスが動作しているときにUSBデバイスとの通信に使用される第一通信帯域が差分通信帯域を超える場合、更新後のモード情報を再更新するため、通信状態の変動に応じて適切にモード情報を更新することができる。また、デバイスサーバは、更新後のモード情報を再更新すると、USBデバイスとの通信接続を一旦切断して、USBデバイスと再接続した後に、再更新後のモード情報をホスト装置に出力するため、ホスト装置は、通信状態をリセットした後に、動作モードを選択することができる。より具体的には、ホスト装置は、通信状態をリセットした後に、再更新されたモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、第二通信帯域において、所定の通信帯域を確保しつつ、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、デバイスサーバは、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、所定の通信帯域を確保しつつ、安定した通信を実現することができる。
【0124】
また、デバイスサーバは、USBデバイスから送信された映像および音声の少なくとも一方のデータを、第二通信インタフェースを介して、ホスト装置に送信することができる。これにより、デバイスサーバは、ホスト装置とUSBデバイスとの間の映像および音声の少なくとも一方のデータ通信を中継することができる。
【0125】
また、ネットワークシステムは、USBデバイスにデータの送信を要求する信号がホスト装置から所定時間内に送信される回数が閾値以上である場合、第一通信帯域が第二通信帯域を超えたと判定するため、通信状態の変動を監視することができる。また、ネットワークシステムでは、デバイスサーバは、更新後のモード情報が示す複数の動作モードのそれぞれでUSBデバイスを動作させたときにデバイスサーバとUSBデバイスとの間の通信に使用される複数の第一通信帯域のうち、デバイスサーバとホスト装置との間の通信に使用可能な第二通信帯域を超える動作モードを削除した再更新後のモード情報をホスト装置に出力することができる。ホスト装置は、再更新後のモード情報が示す複数の動作モードの中からUSBデバイスに実行させる動作モードを選択することができるため、ホスト装置がデバイスサーバ経由でUSBデバイスを使用しているときに、第二通信帯域において、USBデバイスの動作の制御に使用される通信帯域を確保することができる。これにより、ネットワークシステムは、USBデバイスの正常な動作の維持に寄与する。このように、ネットワークシステムは、ホスト装置からデバイスサーバ経由でUSBデバイスを使用しているときに、安定した通信を実現することができる。なお、上記の更新されたモード情報は、デバイスサーバがUSBデバイスに接続を開始したときに取得されたモード情報であってもよい。この場合、上記の再更新後のモード情報は、更新後のモード情報である。
【0126】
なお、本発明は、装置として実現できるだけでなく、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD-ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、インターネット等の通信ネットワークを介して配信してもよい。
【0127】
以上、本発明のデバイスサーバ、ネットワークシステム、デバイスサーバの制御方法およびプログラムについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【0128】
本発明は、ホスト装置からデバイスサーバ経由でUSBデバイスを使用する場合に、安定した通信を実現するデバイスサーバ等に利用可能である。
【符号の説明】
【0129】
1 ネットワークシステム
10 デバイスサーバ
11 第一通信インタフェース
12 第二通信インタフェース
13 制御部
13a 取得部
13b 算出部
13c 判定部
13d 更新部
13e 出力部
14 記憶部
20 ホスト装置
30 USBデバイス