(57)【要約】      （修正有）【課題】複数接続された周辺デバイスを効率よくサスペンド状態に遷移させ、特定の条件を満たす場合は、接続を維持しているクライアント装置とのセッション開放し、他のクライアント装置から当該周辺デバイスを利用できるようにする。【解決手段】デバイスサーバは、周辺デバイス４、５と直接または間接的に接続され、ネットワーク１０経由でクライアント装置２、３と周辺デバイスとの間を中継するデバイスサーバであって、周辺デバイスがクライアント装置との間で通信を行っているか否かの情報を受信するクライアント制御部と、周辺デバイスがいずれのクライアント装置とも通信を行っていない場合、当該周辺デバイスに対してサスペンド状態に遷移する様通知し、任意のポートにおいて、接続されたすべての周辺デバイスがクライアント装置との間で通信を行っていない場合に、当該ポートへのバスパワー給電を停止するデバイス制御部とを備える。【選択図】図１
2018036810.tif 000002
【特許請求の範囲】
【請求項１】
周辺デバイスと直接または間接的に接続され、ネットワーク経由でクライアント装置と周辺デバイスとの間を中継するデバイスサーバであって、
周辺デバイスが前記クライアント装置との間で通信を行っているか否かの情報を受信するクライアント制御部と、
給電管理部であって、
（１）前記周辺デバイスがいずれのクライアント装置とも通信を行っていない場合、当該周辺デバイスに対してサスペンド状態に遷移する様通知し、
（２）任意のポートにおいて、接続されたすべての周辺デバイスがクライアント装置との間で通信を行っていない場合に、当該ポートへのバスパワー給電を停止する様判断する、
給電管理部
とを備えるデバイスサーバ。
【請求項２】
周辺デバイスと直接または間接的に接続され、ネットワーク経由でクライアント装置と周辺デバイスとの間を中継するデバイスサーバであって、
周辺デバイスが前記クライアント装置との間で通信を行っているか否かの情報を受信するクライアント制御部と、
給電管理部であって、
（１）前記周辺デバイスがいずれのクライアント装置とも通信を行っていない場合、当該周辺デバイスに対してサスペンド状態に遷移する様通知し、
（２）任意のポートにおいて、接続されたすべての周辺デバイスがクライアント装置との間で通信を行っておらず、かつ前記ポートに接続されたいずれの周辺デバイスも第１の所定条件を満たす場合に、当該ポートへのバスパワー給電を停止する様判断する、
給電管理部とを備え、
前記第１の所定条件は、サスペンド状態ではバスパワー給電の停止を許容する周辺デバイスである
デバイスサーバ。
【請求項３】
前記デバイスサーバは、
任意の周辺デバイスとの間で通信を行っていたクライアント装置から、当該クライアント装置が省電力モードに遷移する旨の通知を受信するクライアント制御部
をさらに備え、
前記デバイス制御部は、
前記クライアント制御部が前記クライアント装置から省電力モードに遷移する旨の通知を受信し、かつ第２の所定条件を満たすと前記給電管理部が判断した場合に、前記クライアント装置と、前記クライアント装置と通信を行っていた前記周辺デバイスとの間のセッションを解放する
請求項１ないし２のいずれかに記載のデバイスサーバ。
【請求項４】
前記第２の所定条件は、前記クライアントと通信を行っていた前記周辺デバイスは、前記クライアント装置が省電力モードに遷移した場合、当該クライアント装置との間のセッションの解放を許容する周辺デバイスである、
請求項３に記載のデバイスサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置がネットワーク経由で周辺デバイスを使用する周辺デバイス制御システムにおけるデバイスサーバに関する。
【背景技術】
【０００２】
近年、ネットワークの普及により、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）やスキャナといったコンピュータ周辺機器（以下、周辺デバイスとも呼ぶ）をネットワークに接続し、複数のクライアント装置（例えば、パーソナルコンピュータ、タブレットなど）からネットワーク越しにこれらのコンピュータ周辺機器を利用したいという要望に応え、デバイスサーバと呼ばれる装置が普及している（非特許文献１）。
【０００３】
当該デバイスサーバを利用し、クライアント装置からネットワーク上の周辺機器を利用する場合、クライアント装置上で動作しているデバイスサーバを制御するソフトウェア（以後、仮想接続ツールとも呼ぶ）を用いて、デバイスサーバに接続されている周辺機器を選択し接続することができる。この結果、クライアント装置のユーザは、選択した周辺機器をあたかもクライアント装置に直接接続されたかのように利用できるのである。
【０００４】
一方、ＵＳＢ（Universal Serial Bus）規格ではサスペンドという状態が定義されており、クライアント装置とＵＳＢケーブルで接続されたＵＳＢデバイスの消費電力を低減することが可能となっている。これは、少なくとも３ミリ秒間、信号バス上に何の信号も検出しないと、ＵＳＢデバイスは実行中のソフトウェアや動作中のデバイスを一時的に停止する等のサスペンド状態に入らなければならないという仕様である。
【０００５】
ここで、上記デバイスサーバシステムのようなネットワークを経由してＵＳＢ機器とクライアント装置とを接続しているシステムでは、サスペンドの仕様を実現できない。つまり、サスペンドへの移行条件になっている直接的な電気的接続がクライアント装置とＵＳＢデバイス間にないため、当該システムでは、サスペンドの実現が困難であった。すなわちデバイスサーバにローカル接続されたＵＳＢデバイスは、当該デバイスサーバからＵＳＢバスパワーで給電（ＵＳＢケーブルを通じて給電）を受けている場合、常時、電力を消費し続けるということとなる。
【０００６】
デバイスサーバシステムにおけるＵＳＢデバイスの消費電力削減のために、ＵＳＢデバイスが待機状態の場合はＵＳＢデバイスへのバスパワー供給をＯＦＦにし、クライアント装置からのコマンド要求に応じてＵＳＢバスパワーをＯＮにし給電するデバイスサーバが開示されている（特許文献１参照）。また、他の取り組みとしては、クライアント装置が電源断（シャットダウン）することを契機にＵＳＢデバイスをサスペンド状態に移行するなどにより（特許文献２参照）、ＵＳＢデバイスによる電力の消費を抑制することが行われている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−３１０７９６号公報
【特許文献２】特開２０１２−０１４３４３号公報
【０００８】
【非特許文献１】サイレックス・テクノロジー株式会社、ＳＸ−ＤＳ−３０００ＷＡＮ＜http://www.silex.jp/products/catalog/sxds3000wan.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、デバイスサーバを用いたシステムでは、ネットワーク上に存在するクライアント装置がデバイスサーバに接続しているすべてのデバイスを利用していないにもかかわらず、これらの利用していないデバイスはサスペンド（省電力状態）に移行されず、電力を消費し続けている。また、クライアント装置がデバイスサーバに接続されたＵＳＢデバイスを占有したままサスペンドで放置された場合、他のクライアント装置から当該ＵＳＢデバイスを利用することができないという問題も別途存在するが、解決策の開示は、特許文献１および特許文献２にない。
【００１０】
本発明は、上述の問題を鑑みてなされたものであり、デバイスサーバに複数接続されたＵＳＢデバイスを効率よくサスペンドし、電力の消費を抑制する。また、クライアント装置がデバイスサーバに接続されたＵＳＢデバイスと接続（セッション）を維持したまま、デバイスがサスペンドされた場合でも、他のクライアント装置から当該ＵＳＢデバイスを利用することができるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様に係るデバイスサーバは、周辺デバイスと直接または間接的に接続され、ネットワーク経由でクライアント装置と周辺デバイスとの間を中継するデバイスサーバであって、周辺デバイスがクライアント装置との間で通信を行っているか否かの情報を受信するクライアント制御部と、給電管理部であって、（１）周辺デバイスがいずれのクライアント装置とも通信を行っていない場合、当該周辺デバイスに対してサスペンド状態に遷移する様通知し、（２）任意のポートにおいて、接続されたすべての周辺デバイスがクライアント装置との間で通信を行っていない場合に、当該ポートへのバスパワー給電を停止する様判断する給電管理部とを備える。
【００１２】
これによれば、デバイスサーバは、クライアント装置が、周辺デバイスと通信を行っていない場合は、その周辺デバイスをサスペンドに遷移させ、さらに任意のポートに接続されたすべての周辺デバイスがクライアント装置との間で通信を行っていない場合は、バスパワー給電を停止することにより、不要な電力消費を抑制する。
【００１３】
なお、周辺デバイスがデバイスサーバに直接または間接的に接続されるとは、周辺デバイスがデバイスサーバのポートに直接接続されるか、またはＵＳＢハブ等を介して間接的に接続される場合の両方を含む意味である。
【００１４】
上記課題を解決するために、本発明の一態様に係るデバイスサーバは、周辺デバイスと直接または間接的に接続され、ネットワーク経由でクライアント装置と周辺デバイスとの間を中継するデバイスサーバであって、周辺デバイスがクライアント装置との間で通信を行っているか否かの情報を受信するクライアント制御部と、給電管理部であって、（１）周辺デバイスがいずれのクライアント装置とも通信を行っていない場合、当該周辺デバイスに対してサスペンド状態に遷移する様通知し、（２）任意のポートにおいて、接続されたすべての周辺デバイスがクライアント装置との間で通信を行っておらず、かつポートに接続されたいずれの周辺デバイスも第１の所定条件を満たす場合に、当該ポートへのバスパワー給電を停止する様判断する給電管理部とを備えるデバイスサーバである。ここで、第１の所定条件は、サスペンド状態ではバスパワー給電の停止を許容する周辺デバイスである。
【００１５】
これによれば、デバイスサーバは、クライアント装置が、周辺デバイスと通信を行っていない場合は、その周辺デバイスをサスペンド状態に遷移させ、さらに任意のポートに接続されたすべての周辺デバイスがクライアント装置との間で通信を行っておらず、かつポートに接続されたいずれの周辺デバイスも、クライアント装置との間で通信を行っていない場合にバスパワー給電の停止を許容する周辺デバイスである場合は、バスパワー給電を停止することにより、不要な電力消費を抑制する。
【００１６】
また、本発明の一態様に係るデバイスサーバは、任意の周辺デバイスとの間で通信を行っていたクライアント装置から、当該クライアント装置が省電力モードに遷移する旨の通知を受信するクライアント制御部をさらに備え、デバイス制御部は、クライアント制御部がクライアント装置から省電力モードに遷移する旨の通知を受信し、かつ第２の所定条件を満たすと給電管理部が判断した場合に、クライアント装置と、クライアント装置と通信を行っていた周辺デバイスとの間のセッションを解放する。
【００１７】
これによれば、デバイスサーバは、任意の周辺デバイスとの間で通信を行っていたクライアント装置から、当該クライアント装置が省電力モードに遷移する旨の通知を受信し、かつ所定条件を満たす場合に、クライアント装置と、クライアント装置と通信を行っていた周辺デバイスとの間のセッションを解放することができる。このように、周辺デバイスがサスペンド状態に遷移し、クライアント装置が周辺デバイスと通信をしていないにもかかわらず、セッションが維持されることで他のクライアント装置から当該周辺デバイスを利用できないという状況を回避できる。さらに、従来のようにセッションを維持し続ける場合は、省電力モードから復帰したクライアント装置とすぐに通信を開始できる。
【００１８】
さらに、第２の所定条件は、クライアントと通信を行っていた周辺デバイスは、クライアント装置が省電力モードに遷移した場合、当該クライアント装置との間のセッションの解放を許容する周辺デバイスである。
【発明の効果】
【００１９】
本発明は、デバイス制御システムにおいて、デバイスサーバに接続するデバイスの電力消費を抑制しつつ、クライアント装置と接続（セッション）を維持したままサスペンドしているデバイスを他のクライアント装置から利用できるようにする。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施の形態にかかるデバイス制御システム全体図である。
【図２】図２は、本発明の実施の形態にかかるデバイスサーバのハードウェア構成である。
【図３】図３は、本発明の実施の形態にかかるデバイスサーバの機能ブロック図である。
【図４】図４は、本発明の実施の形態にかかるクライアント装置の機能ブロックの一例である。
【図５】図５は、本発明の実施の形態にかかるデバイスサーバが自装置に接続しているデバイスの使用状況を確認してからポートごとの電力供給を停止するまでのフロー図である。
【図６】図６は、本発明の実施の形態にかかるクライアント装置からの通知を受け、デバイスサーバが自装置に接続しているデバイスとのセッションを解放するまでのフロー図である。
【発明を実施するための形態】
【００２１】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００２２】
以下の実施の形態で示される数値、構成要素、構成要素の配置位置などは、一例であり、発明の範囲内において種々の変形や変更が可能である。
【００２３】
（実施の形態）
図１は、本発明の実施の形態にかかるデバイス制御システムの全体図である。
【００２４】
図１に示すとおり、本発明の実施の形態にかかるデバイス制御システム１００は、デバイスサーバ１、クライアント装置２、クライアント装置３、ＵＳＢハブ４、ＵＳＢデバイス５、ＬＡＮ（Local Area Network）１０などで構成される。なお、クライアント装置３は、クライアント装置２と同じ機能を有しており、以後詳細な説明はクライアント装置２に対してのみ行う。
【００２５】
デバイス制御システム１００では、デバイスサーバ１、クライアント装置２、クライアント装置３がＬＡＮ１０によりネットワーク接続している。
【００２６】
デバイス制御システム１００では、クライアント装置２やクライアント装置３に備わるアプリケーションからの指示によりＬＡＮ１０を介してデバイスサーバ１に接続しているデバイスとの間で通信を行うことができる。ＬＡＮ１０は、本発明の実施の形態では、有線ＬＡＮを前提に説明するが、無線ＬＡＮであってもよい。
【００２７】
デバイスサーバ１は、ＵＳＢインタフェースを備える。デバイスサーバ１は、ＵＳＢインタフェースを1つ備えてもよいし、２以上の複数備えていてもよい。また、デバイスサーバ１は、ネットワークインタフェースを備えており、そのネットワークインタフェースは有線通信インタフェースと無線通信インタフェースの両方を備えていてもよいし、どちらか一方のインタフェースを備えることにしてもよい。有線通信インタフェースは、例えばＩＥＥＥ８０２．３規格に準拠した通信を行うインタフェースである。無線通信インタフェースは、例えばＩＥＥＥ８０２．１１規格に準拠した通信を行うインタフェースである。
【００２８】
図１において、デバイスサーバ１は２つのポートを備え、１つ目のポートにはＵＳＢハブ４がローカル接続され、そのＵＳＢハブ４のポートには、小型スキャナやポータブルハードディスクなどがＵＳＢケーブルで接続している。２つ目のポートには、ＵＳＢデバイス５（例えば、モバイルプリンタなど）が直接ローカル接続されている。なお、ＵＳＢハブ４のポートにＵＳＢケーブルで接続された周辺デバイスは、ＵＳＢ規格のバスパワーで駆動するデバイスである。
【００２９】
デバイスサーバ１は、クライアント装置２のアプリケーションからの指示をもとに、ＬＡＮ１０を介して、デバイスサーバ１に接続された周辺デバイス（例えば、ＵＳＢハブ４を経由して間接的に接続されたデバイス、および直接接続されたＵＳＢデバイス５など）を選択し接続や切断（セッション確立やセッションを解放）することができる。また、この結果、クライアント装置のユーザは、ネットワーク越しに選択し接続した周辺デバイスをあたかもクライアント装置に直接、接続されたかのように利用できる。
【００３０】
クライアント装置２は、例えば、ＰＣ（Personal Computer）、タブレット端末、携帯通信端末などである。クライアント装置２は、少なくともネットワーク越しに選択した周辺デバイスをあたかもクライアント装置に直接、接続されたかのように利用できることを実現するアプリケーション（以後、接続管理ツールと呼ぶ）を備えている。クライアント装置２は、デバイスサーバ１と通信するためにネットワークインタフェースを備えており、そのネットワークインタフェースは有線通信インタフェースと無線通信インタフェースの両方を備えていてもよいし、どちらか一方のインタフェースを備えることにしてもよい。
【００３１】
ＵＳＢハブ４は、ＵＳＢ規格に準拠し、クライアント装置とＵＳＢデバイスとの間を中継する装置である。ＵＳＢハブ４は、ＵＳＢデバイスをローカル接続するための少なくとも１つ以上のポートを備え、それぞれのポートには、ＵＳＢデバイスをローカル接続することができる。ＵＳＢハブ４は、ＵＳＢハブ４が接続している装置（例えば、デバイスサーバ１など）の１つのポートを利用して、複数のＵＳＢデバイスを利用するための装置であり、図１のデバイス制御システム１００において、クライアント装置２は、デバイスサーバ１を経由し、デバイスサーバに備わったポート数以上のデバイスを利用できる。また、本実施形態のＵＳＢハブ４は、デバイスサーバ１のポートよりバスパワー給電を受け、接続されたデバイスにバスパワー給電する。
【００３２】
本実施形態のＵＳＢデバイス５は、ＵＳＢ規格に準拠しＵＳＢバスパワーにより電源供給を受けて駆動できるＵＳＢデバイスである。例えば、モバイルプリンタ、可搬型スキャナ、ポータブルハードディスク、ＵＳＢメモリー、マウス、キーボード、カードリーダなどである。
【００３３】
図２は、本発明の実施の形態に係るデバイスサーバ１、クライアント装置２のハードウェア構成図である。なお、クライアント装置３は、クライアント装置２と同じハードウェア構成を有しており、以後詳細な説明は省略する。
【００３４】
図２に示すとおり、これらの装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２、記憶装置２３、ＵＳＢ−Ｉ/Ｆ２４、ＷＮＩＣ（Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２５、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２６および各構成部品間を接続している内部バス２７などを備えている。なお、デバイスサーバ１、クライアント装置２はＷＮＩＣ２５を必ずしも備える必要はない。
【００３５】
ＣＰＵ２０は、ＲＯＭ２１に格納された制御プログラムを実行するプロセッサである。
【００３６】
ＲＯＭ２１は、制御プログラム等を保持する読み出し専用記憶領域である。
【００３７】
ＲＡＭ２２は、ＣＰＵ２０が制御プログラムを実行するときに使用するワークエリアとして用いられる記憶領域である。
【００３８】
記憶装置２３は、制御プログラム、制御情報、装置情報、または情報一時記憶する記憶領域である。
【００３９】
ＵＳＢ‐Ｉ/Ｆ２４は、ＵＳＢ規格に準拠するコネクタ（以下、ポートとも呼ぶ）を有し、そのコネクタに接続されたＵＳＢデバイスとの通信制御を行う。
【００４０】
ＷＮＩＣ２５は、無線通信を行う無線通信インタフェースである。例えば、ＩＥＥＥ８０２．１１ａ、ｂ、ｇ、ｎ、ａｃ規格等に適合する無線ＬＡＮの通信インタフェースである。
【００４１】
ＮＩＣ２６は、有線通信を行う有線通信インタフェースである。例えば、ＩＥＥＥ８０２．３規格等に適合する有線ＬＡＮの通信インタフェースである。
【００４２】
内部バス２７は、ＣＰＵ２０，ＲＯＭ２１、ＲＡＭ２２、記憶装置２３、ＵＳＢ‐Ｉ/Ｆ２４、ＷＮＩＣ２５、ＮＩＣ２６を電気的に接続し、信号のやりとりを行うバスである。
【００４３】
図３は、本発明の実施の形態にかかるデバイスサーバ１の機能ブロック図である。
【００４４】
図３に示すデバイスサーバ１は、クライアント制御部３１、デバイス制御部３２、通信制御部３３、給電管理部３４などを備えている。
【００４５】
クライアント制御部３１は、デバイス制御部３２からの通信ステータスをもとに、自装置のポートに接続しているすべてのデバイスについて、クライアント装置２と通信している（通信中）か否かを判断し、その結果を給電管理部３４に通知する。ここで、通信ステータスとは、たとえば、「通信をしている（通信中）」、「通信をしていない（非通信）」などの情報である。例えば、通信ステータスが「通信をしている（通信中）」とは、クライアント装置２が、デバイスサーバ１を介してデバイスとの間で、データの送受信を行っている、あるいは通信制御のためのコマンドなどを送受信している状況である。
【００４６】
また、クライアント制御部３１は、上記通信ステータスの給電管理部３４への通知は、所定の時期に行う。ここで、通信ステータスを給電管理部３４に通知する所定の時期とは、例えば、デバイスサーバ１の電源投入後、一定の時間間隔であってもよいし、クライアント装置２に備わる常駐モジュール４２からの指示やユーザがアプリケーション４１から行う指示をデバイス制御部３２が受けたときでもよい。
【００４７】
さらに、クライアント制御部３１は、クライアント装置２からの省電力モード通知を受信したか否かを判断する。また、クライアント制御部３１は、ＬＡＮ１０を通じてクライアント装置２の通信制御モジュール４６との間でネットワークパケットの送受信を行う。
【００４８】
デバイス制御部３２は、自装置のポートに接続しているデバイスの通信ステータスをクライアント制御部３１に通知する。
【００４９】
また、デバイス制御部３２は、給電管理部３４からのサスペンド通知（後述）を受けて、デバイスをサスペンドするように制御する。
【００５０】
さらに、デバイス制御部３２は、給電管理部３４からの電力供給を停止する旨の通知を受けて、自装置に備えるポートへの電力供給（バスパワーによる）を停止する。
【００５１】
また、デバイス制御部３２は、後述するように給電管理部３４からの通知を受けて、クライアント装置２とセッションを確立している周辺デバイスに対し、セッションを解放するように制御する。
【００５２】
通信制御部３３は、後述するクライアント装置２のトンネリングドライバ４５と同等の機能を備え、クライアント制御部３１が受信したネットワークパケットを、デバイスサーバ１を介して接続している周辺デバイスに送信できるデータ形式に変換し、デバイス制御部３２に渡す。その一方で、デバイス制御部３２が受信した周辺デバイスのデータをクライアント装置２に送信できるデータ形式に変換し、クライアント制御部３１に渡す。
【００５３】
給電管理部３４は、クライアント制御部３１の通知をもとにクライアント装置２と通信していないデバイスがある場合、デバイス制御部３２にデバイスをサスペンドに遷移させる旨の通知（以後、サスペンド通知と呼ぶ）を行う。
【００５４】
また、給電管理部３４は、自装置に備えるポートに対して、バスパワー供給を停止する条件を満たしているか否かを判断する。この条件を満たしている場合は、デバイス制御部３２にそのポートに対する電力供給を停止する旨の通知を行う。この条件は、ポートまたはデバイス毎に設定可能である。ポート毎の設定とは、あるポートに接続されたすべてのデバイスがサスペンド状態に遷移した場合、当該ポートへのバスパワー給電を停止する。一方デバイス毎の設定とは、あるポートに接続されたすべてのデバイスがサスペンド状態に遷移し、かつすべてのデバイスが「サスペンド状態にあるときバスパワー供給停止を許容する」（第１の所定条件）の場合に、当該ポートへのバスパワー給電を停止する。（逆に少なくとも１つのデバイスがバスパワー供給停止を受け入れない設定であれば、すべてのデバイスがサスペンド状態であってもバスパワー供給を継続する。）
【００５５】
省電力の観点からは、サスペンド状態に遷移したデバイスへのバスパワーの供給を停止することは望ましい。しかし、バスパワーの供給再開やクライアント装置とその接続(セッション)の復帰に伴い、立上げに時間を要するデバイスである場合や初期化処理が必要になる等といったデメリットも存在する。したがって、本発明では、サスペンド状態に移行させた後、強制的にバスパワー供給の停止を行うのではなく、デバイスまたはポート毎に供給停止を許容するか否かの自由度を持たせる。このようにすることで、ユーザの利便性と省電力とのバランスを好適に得られる。
【００５６】
さらに、給電管理部３４は、個々のデバイスについて、クライアント装置２からの省電力モード通知とセッション解放条件（第２の所定条件ともいう）をもとにクライアント装置２とのセッションを解放してもよいか否かを判断する。解放を許容する場合は、デバイスに対し、セッションを解放する旨の通知をデバイス制御部３２に行う。この条件は、デバイス毎に設定される。多数のクライアントから使用されるようなデバイス（例えばプリンタ）では、使用を終わった時、一旦セッションを解放しどのクライアントからでも使用できる状態にするのがよいが、他方、元のクライアントから再び利用する際には、プラグンドプレイが再度作動してドライバをインストールすることが必要であり、再利用まで時間を要するというデメリットもある。したがって、デバイス毎にセッション解放条件を設定し、ユーザの利便性を一段と高めている。
【００５７】
図４は、本発明の実施の形態にかかるクライアント装置２の機能ブロック図である。
【００５８】
図４に示すクライアント装置２は、ＲＯＭ２１や記憶装置２３に格納され、実行時にＲＡＭ２２に展開されるアプリケーション４１、常駐モジュール４２、デバイスドライバ４３、ＵＳＢクラスドライバ４４、トンネリングドライバ４５、通信制御モジュール４６などをソフトウェア部品として備えている。この他、ソフトウェア部品として、ＯＳ（Operating System）などがあり、制御に必要な各種データと共にＲＯＭ２１や記憶装置２３に格納されている。これらソフトウェア部品及び各種データは、ＣＰＵ２０の制御に従い、ＲＡＭ２２などのメモリー上に読み出されて各種制御が実行される。
【００５９】
アプリケーション４１は、クライアント装置２にインストールされるソフトウェアであり、ＬＡＮ１０を介してデバイスサーバ１に接続しているデバイス５やＵＳＢハブ４（以後、周辺デバイスとも呼ぶ）と通信するときに接続（セッションを確立）、切断（セッションを解放）を行うものである。具体的には、アプリケーション４１は、クライアント装置２からＬＡＮ１０を介してデバイスサーバ１に接続している周辺デバイスを利用するにあたり、周辺デバイスの接続・切断を制御する仮想接続ツールである。このツールを用いて、クライアント装置２のユーザは、選択した周辺デバイスをあたかもクライアント装置２に直接接続されたかのように利用できるのである。
【００６０】
アプリケーション４１は、クライアント装置２を使用するユーザによって行われる周辺デバイスとの接続または切断の指示を常駐モジュール４２に通知する。
【００６１】
常駐モジュール４２は、ＯＳが起動している間、常に待機及び動作しているソフトウェア部品であり、ＬＡＮ１０を介してデバイスサーバ１とデータ送受信を行う。また、デバイスサーバ１に接続されている周辺デバイスを認識して識別するためのＵＳＢデバイス情報を受信する。受信したＵＳＢデバイス情報に基づいて、周辺デバイスとのデータ送受信に必要となるデバイスドライバ４３、ＵＳＢクラスドライバ４４を生成し、周辺デバイスを制御できる状態にする。
【００６２】
常駐モジュール４２は、常時、クラインアント装置とデバイスサーバとの間の通信状況（例えば、通信中、未通信など）を監視している。また、ＯＳからクライアント装置の電力利用状況を取得する。例えば、スリープ状態、休止状態、電力管理ツールなどで電力を極力消費しないモード（以後、省電力モードと呼ぶ）などである。
【００６３】
さらに、常駐モジュール４２は、クラインアント装置が省電力モードに遷移した場合は、省電力モードに遷移した旨の通知（以後、省電力モード通知と呼ぶ）をＬＡＮ１０経由でデバイスサーバ１のクライアント制御部３１に送信する。
【００６４】
デバイスドライバ４３は、ＯＳやアプリケーション４１、常駐モジュール４２など上位プログラムからのデータ入出力要求を、データ入出力対象の周辺デバイスに応じたデータ形式に変換し、また、周辺デバイスからの応答を上位プログラムに渡す。
【００６５】
ＵＳＢクラスドライバ４４は、デバイスドライバ４３によって、周辺デバイスに応じたデータ形式に変換されたデータ入出力要求を、ＵＳＢのデータ形式に準拠したパケットデータに変換してトンネリングドライバ４５に渡し、またトンネリングドライバ４５から送られてくるＵＳＢのデータ形式に準拠したパケットデータを、データ形式変換してデバイスドライバ４３に渡す。
【００６６】
トンネリングドライバ４５は、ＵＳＢクラスドライバ４４から渡されたＵＳＢパケットデータをデバイスサーバ１とＬＡＮ１０経由で通信できるようにネットワークパケットにカプセル化する。その一方で、デバイスサーバ１からネットワークパケットを受信すると、このネットワークパケットからＵＳＢパケットデータを取り出し（デカプセルして）、ＵＳＢクラスドライバ４４、デバイスドライバ４３に渡す。
【００６７】
通信制御モジュール４６は、上位プログラムのトンネリングドライバ４５からネットワークパケットを受けて、ＬＡＮ１０を介してデバイスサーバ１のクライアント制御部３１に送信する。その一方で、デバイスサーバ１からＬＡＮ１０を介してネットワークパケットを受信すると、そのネットワークパケットをトンネリングドライバ４５に渡す。
【００６８】
図５は、本発明の実施の形態にかかるデバイスサーバが自装置に接続しているデバイスの使用状況を確認してからポートごとの電力供給を停止するまでのフローについて、以下に順をおって説明する。
【００６９】
ステップＳ５００にて、デバイス制御部３２は、自装置のポートの１つに接続しているデバイスの通信ステータスをクライアント制御部３１に通知する。クライアント制御部３１は、通信ステータスをもとに、そのデバイスがクライアント装置２と通信している（通信中）か否かを判断し、結果を給電管理部３４に通知する。デバイスとクライアント装置２が通信をしている場合は、ステップＳ５０２に遷移する（ステップＳ５００のＹｅｓ）。通信していない場合は、デバイスをサスペンドするためステップＳ５０１に遷移する（ステップＳ５００のＮｏ）。
【００７０】
ステップＳ５０１にて、給電管理部３４は、クライアント制御部３１の通知（ステップＳ５００のＮｏ）をもとに、そのデバイスがサスペンド状態に遷移されるようにデバイス制御部３２へ通知する。デバイス制御部３２は、給電管理部３４からのサスペンド通知を受けると、ＵＳＢ規格に準じ、デバイスをサスペンド状態に遷移させる処理を行う。
【００７１】
ステップＳ５０２にて、デバイス制御部３２は、自装置のポートの１つに接続しているすべてのデバイスの通信ステータスをクライアント制御部３１に通知したか否かを判断する。通知した場合は、ステップＳ５０３に遷移する（ステップＳ５０２のＹｅｓ）。通知していない場合は、ステップＳ５０６に遷移する（ステップＳ５０２のＮｏ）。
【００７２】
ステップＳ５０３にて、給電管理部３４は、バスパワー供給を停止する条件を満たしているか否かを判断する。満たしている場合は、デバイス制御部３２に対象ポートに直接・間接に接続されたデバイスに対する電力供給を停止する旨の通知を行う（ステップＳ５０３のＹｅｓ）。満たしていない場合は、ステップＳ５０５に遷移（ステップＳ５０３のＮｏ）する。バスパワー供給を停止する条件とは、前述のとおり、ポートごとの制御では、（ａ）対象ポートに直接・間接に接続しているすべてのデバイスがサスペンド状態に遷移している、またはデバイスごとの制御では、（ｂ）対象ポートに直接・間接に接続しているすべてのデバイスがサスペンド状態に遷移しており、かつすべてのデバイスが第１の所定条件すなわち「サスペンド状態ではバスパワー供給を停止してよい」との設定である、ことを意味する。つまり、第１の設定条件は、予め工場出荷時に設定されていてもよいし、クライアント装置に備わるアプリケーションから設定可能であってもよい。
【００７３】
ステップＳ５０４にて、給電管理部３４からの通知（ステップＳ５０３のＹｅｓ）を受けて、デバイス制御部３２は、ポートへのバスパワー供給を停止する。
【００７４】
ステップＳ５０５にて、自装置に備わるすべてのポートについて、クライアント制御部３１は、デバイス制御部３２からの通信ステータスをもとにステップ５０１からステップＳ５０４までの一連の処理を実行したか否かを判断する。すべてのポートについて、一連の処理が行われた場合は、処理を終了する（ステップＳ５０５のＹｅｓ）。一連の処理が行われていない場合は、ステップＳ５０７に遷移する（ステップＳ５０５のＮｏ）。
【００７５】
ステップ５０６にて、クライアント制御部３１は、デバイス制御部３２からの通信ステータスをもとに、１つの対象ポートに接続しているデバイス（ＵＳＢハブを介して間接的に接続しているデバイスを含む）に対し順次、ステップＳ５００からＳ５０２の一連の処理を繰り返すために、処理が完了していないデバイスに対して一連の処理を開始する。
【００７６】
ステップ５０７にて、クライアント制御部３１は、デバイス制御部３２からの通信ステータスをもとに、すべてのポートに対し順次、ステップＳ５００からＳ５０５の一連の処理を繰り返すために、処理が完了していないポートに対して一連の処理を開始する。
【００７７】
ここで、デバイスサーバ１が備える複数のポートに対する一連の処理を行う時期は、例えば、デバイスサーバ１の電源投入後、所定の時間間隔で実行される。また、クライアント装置２に備わる常駐モジュールからの指示やユーザが行うアプリケーションからの指示をもとに実行されてもよい。特にデバイスサーバ１は、所定の時間間隔で一連の処理を行うことで、クライアント装置２からの指示やユーザが行うアプリケーションへの指示を受けなくても、自律的に一連の処理を行えるのでユーザの手間と不要な電力供給を抑制できる。
【００７８】
つぎに図６は、本発明の実施の形態にかかるクライアント装置からの通知を受け、デバイスサーバが自装置に接続しているデバイスとのセッションを解放するまでのフローについて、クライアント装置の動作とデバイスサーバの動作を処理の流れに沿って、以下に説明する。なお、図６の処理開始時点では、クライアント装置２と自装置に接続しているデバイス５とは、クライアント装置２に備わるアプリケーション４１によって互いに通信可能な状態（セッションを確立している）であり、常駐モジュール４２により、常時、互いの通信状況（例えば、通信中、未通信など）を監視している。
【００７９】
ステップＳ６０１にて、クライアント装置２に備わる常駐モジュール４２が、クライアント装置２が省電力モードに遷移した旨の情報をシステム（図示しない、例えば、ＯＳなど）から取得したか否か判断する。省電力モードに遷移した場合は、ステップＳ６０２に遷移する（ステップＳ６０１のＹｅｓ）。省電力モードに遷移していない場合は、ステップＳ６０１に留まり、システムからの省電力モードに遷移した旨の情報の取得を待つ（ステップＳ６０１のＮｏ）。
【００８０】
ステップＳ６０２にて、クライアント装置２に備わる常駐モジュール４２は、「自装置（クライアント装置２）が省電力モードに遷移した旨」の情報をＬＡＮ１０経由でデバイスサーバ１に通知する。省電力モード通知は、トンネリングドライバ４５でデバイスサーバ１と通信可能な形式に変換され、通信制御モジュール４６からＬＡＮ１０を通じてデバイスサーバ１に通知される。
【００８１】
ステップＳ６０３にて、デバイスサーバ１に備わるクライアント制御部３１は、クライアント装置２からの省電力モード通知を受信したか否かを判断する。受信した場合は、その旨を給電管理部３４に通知し、ステップＳ６０４に遷移する（ステップＳ６０３のＹｅｓ）。受信していない場合は、ステップＳ６０３を繰り返し、省電力モード通知の受信を待つ（ステップＳ６０３のＮｏ）。
【００８２】
ステップＳ６０４にて、給電管理部３４は、クライアント装置２からの省電力モード通知とセッション解放条件をもとにクライアント装置２とのセッションを解放してもよいか否かを判断する。セッション解放を許容する場合は、デバイス制御部３２に、クライアント２に関わるデバイスに対しセッションを解放する旨の通知を行い、ステップＳ６０５に遷移する（ステップＳ６０４のＹｅｓ）。セッション解放を許容しない場合は、ステップＳ６０６に遷移（ステップＳ６０４のＮｏ）する。ここで、セッション解放条件とは、クライアント装置２からの省電力モード通知をデバイスサーバ１のクライアント制御部３１が受信すると、クライアント装置２とデバイス５との間のセッションを解放する条件である。セッション解放条件は、予めデバイスサーバ１において、デバイスごとに設定されていてもよいし、クライアント装置２に備わるアプリケーション４１で設定できるようにしてもよい。
【００８３】
ステップＳ６０５にて、給電管理部３４は、ステップＳ６０４の判断（ステップＳ６０４のＹｅｓ）をもとにデバイス制御部３２にクライアント装置２とデバイス５との間のセッションを解放する旨を通知し、デバイス制御部３２は、デバイス５がクライアント装置２とのセッションを解放し、さらにサスペンドに遷移するように制御する。このようにすれば、新たにデバイス５を利用したい他のクライアント装置（例えば、クライアント装置３）は、クライアント装置２とデバイス５との間でセッションが解放されているので、クライアント装置３のアプリケーション４１からサスペンドしているデバイス５に接続要求をすることで、すぐにセッションを確立することができる。
【００８４】
ステップＳ６０６にて、給電管理部３４は、ステップＳ６０４の判断（ステップＳ６０４のＮｏ）をもとにデバイス５をサスペンドさせる旨を通知し、デバイス制御部３２は、デバイス５がサスペンド状態に遷移するように制御する。つまり、デバイス５は、クライアント装置２との間のセッションは維持しつつ、サスペンド状態に遷移する。このようにすれば、他のクライアントが当該デバイス５を利用することはできない一方、クライアント２とデバイス５との間のセッションは維持されているため、サスペンドから復帰後にすぐにクライアント装置２との通信を再開できる。
【００８５】
（まとめ）
上述したように、クライアント装置と自装置に備わるポートに接続しているデバイスとの間をネットワークを介して中継しているデバイス制御システムにおいて、本発明の実施の形態であるデバイスサーバは、クライアント装置がデバイスと通信をしていない場合は、そのデバイスをサスペンドに遷移させ、さらにバスパワー（デバイスサーバからデバイスに給電）を停止してもよい設定であれば、バスパワーをも停止することで、不要な電力消費を抑制する。また、クライアント装置が省電力モードに移行した旨の通知をクライアント装置からネットワークを通じて受信すると、クライアント装置とデバイスとの間のセッションの解放、またはセッションの維持を判断する。このようにすれば、デバイスが１つの省電力モードに遷移し、デバイスと通信をしていないにもかかわらず、セッションが維持されて他のクライアント装置から当該デバイスを利用できないという状況を回避つつも、従来のようにセッションを維持し続ける判断がくだれば、省電力モードから復帰したクライアント装置とすぐに通信を開始できる。
【産業上の利用可能性】
【００８６】
ＵＳＢデバイスのサスペンド状態による不必要な電力消費を抑制しつつ、システムでの円滑なデバイス利用を行う際に有用である。
【符号の説明】
【００８７】
１００  デバイス制御システム
１  デバイスサーバ
２、３  クライアント装置
４  ＵＳＢハブ
５  デバイス（プリンタ）
１０  ＬＡＮ
２０  ＣＰＵ
２１  ＲＯＭ
２２  ＲＡＭ
２３  記憶装置
２４  ＵＳＢ−Ｉ／Ｆ
２５  ＷＮＩＣ
２６  ＮＩＣ
２７  内部バス
３１  クライアント制御部
３２  デバイス制御部
３３  通信制御部
３４  給電管理部
４１  アプリケーション
４２  常駐モジュール
４３  デバイスドライバ
４４  ＵＳＢクラスドライバ
４５  トンネリングドライバ
４６  通信制御モジュール
【図１】
2018036810.tif 000003
【図２】
2018036810.tif 000004
【図３】
2018036810.tif 000005
【図４】
2018036810.tif 000006
【図５】
2018036810.tif 000007
【図６】
2018036810.tif 000008