(57)【特許請求の範囲】
【請求項１】
複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、前記デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置のプログラムであって、
クライアント装置に、少なくとも、
前記デバイスと他クライアント装置とが接続中であって、かつ自クライアント装置において前記デバイスを利用するためのイベントが規定時間以上継続したと判断した場合、前記デバイスと他クライアント装置との接続を切断し、前記自クライアント装置と前記デバイスとを接続するよう前記デバイスサーバに要求するステップを実行させるプログラム。
【請求項２】
複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、前記デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置のプログラムであって、
クライアント装置に、少なくとも、
前記デバイスと他クライアント装置とが接続中であって、かつ自クライアント装置において前記デバイスを利用するための、入力装置から行われるイベントが規定時間以上継続したと判断し、かつ前記自クライアント装置がデバイスサーバを経由して前記デバイスを利用する場合であり、さらに前記デバイスとの接続および切断を自動で切り替える自動モードである場合、前記デバイスと前記他クライアント装置との接続を切断し、前記自クライアント装置と前記デバイスとを接続するよう前記デバイスサーバに要求するステップを実行させるプログラム。
【請求項３】
複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、前記デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるデバイス利用方法であって、
前記デバイスと接続していないクライアント装置が、前記デバイスを利用するためのイベントの継続時間が規定時間より長いか否かを判断するステップと、
前記デバイスと接続していないクライアント装置が前記イベントの継続時間が規定時間より長いと判断した場合、前記デバイスサーバが、前記デバイスと接続していないクライアント装置からの要求を受け、前記デバイスと接続中のクライアントとの接続を切断し、前記イベントが発生したクライアント装置と前記デバイスとを接続するステップと、
を含むデバイス利用方法。
【請求項４】
複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、前記デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置であって、
前記デバイスと他のクライアント装置とが接続中であるか否か、および自クライアント装置において、前記デバイスを利用するためのイベントの継続時間が規定時間より長いか否かを判断する判断部と、
前記判断部の通知を受け、前記デバイスとの接続を切断するよう前記他のクライアント装置に要求する制御部
とを備えるクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを通じてクライアント装置からデバイスサーバを経由して周辺機器を利用することに関する。
【背景技術】
【０００２】
近年、ネットワークの普及により、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）やスキャナといったコンピュータ周辺機器（以下、周辺機器と呼ぶ）をネットワークに接続し、複数のクライアント装置（例えば、ＰＣ、タブレットなど）からネットワーク越しにこれらのコンピュータ周辺機器を利用したいという要望に応え、デバイスサーバと呼ばれる装置が普及している（非特許文献１）。
【０００３】
当該デバイスサーバを利用し、クライアント装置からネットワーク上の周辺機器を利用する場合、クライアント装置上で動作しているデバイスサーバを制御するソフトウェア（以後、仮想接続ツールと呼ぶ）を用いて、デバイスサーバに接続されている周辺機器を選択し接続するということができる。この結果、クライアント装置のユーザーは、選択した周辺機器をあたかもクライアント装置に直接接続されたかのように利用できるのである。また、ＵＳＢの仕様上、この間、他のクライアント装置から当該周辺機器に接続することはできない。一方、デバイスを利用していたクライアント装置が当該周辺機器との接続状態を解除（切断）すると、デバイスは他のクライアント装置から接続可能な状態になる。デバイスサーバがこのような動作を行う理由は、あるクライアント装置が一旦周辺機器を利用し始めると、周辺機器が備える機能を、ユーザーが要望する時間の間、可能な限りそのクライアント装置から利用できるようにするためである。また、接続中に他のクライアント装置の要求により強制的に接続が切断されると、データの損失など思わぬトラブルの危険性も存在する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】サイレックス・テクノロジー株式会社  ホームページ＜http://www.silex.jp/products/deviceserver_prod.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、ネットワークの普及と、クライアント装置が多品種、低コスト化した現在においては、１人のユーザーが複数のクライアント装置を利用して、デバイスサーバを経由しネットワーク上に接続している周辺機器を利用したいという要望も多い。例えば、ユーザーが同じネットワーク上に存在する複数のクライアント装置を利用してデバイスサーバを経由しネットワーク上のＵＳＢデバイス（例えば、地デジチューナー、プリンタ、スキャナなど）を利用する場合などが考えられる。このような場合、はじめにデスクトップＰＣで地上デジタル放送を視聴していたが、ユーザーが移動し、別の場所で利用しているノートＰＣで視聴したいという場合でも、デバイスサーバ経由でネットワーク上の地デジチューナーを共有し利用することができる。
【０００６】
しかしながら、ユーザーは周辺機器を利用するクライアント装置を変更するにあたって、上述したように接続中のクライアント装置からの利用を優先させているため、デスクトップＰＣと地デジチューナーとの接続をユーザーがわざわざ仮想接続ツールを用いて切断し、新たに地デジチューナーを利用したいノートＰＣから接続操作を行う必要がある。このように、ユーザーは利用するクライアント装置を切り替えて周辺機器を利用する度に接続と切断の手間がかかり、また複数のクライアント装置と周辺機器の接続状況を意識しておく必要があり、利便性（例えば、接続、切断の操作が煩雑になるなど）が損なわれている。
【０００７】
本発明は、かかる要望に応えるためのものであり、デバイスサーバシステムにおいて、ユーザーが複数のクライアント装置の切り替えを行う際に、デバイスサーバに接続された周辺機器をユーザーの手間を介さず利用可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明にかかる第１の形態は、複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置のプログラムであって、クライアント装置に、デバイスと他クライアント装置とが接続中であって、かつ前記デバイスを利用するためのイベントが規定時間以上継続した場合、デバイスと他クライアント装置との接続を切断し、自クライアント装置とデバイスとを接続するようデバイスサーバに要求するステップを実行させるプログラムである。
【０００９】
本発明にかかる第１の別の形態は、複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置のプログラムであって、クライアント装置に、デバイスと他クライアント装置とが接続中であって、かつ前記デバイスを利用するための、入力装置から行われるイベントが規定時間以上継続し、かつ自クライアント装置がデバイスサーバを経由してデバイスを利用する場合であり、さらにデバイスとの接続および切断を自動で切り替える自動モードである場合、デバイスと他クライアント装置との接続を切断し、自クライアント装置とデバイスとを接続するようデバイスサーバに要求するステップを実行させるプログラムである。
【００１０】
本発明にかかる第２の形態は、複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるデバイス利用方法であって、接続していない他のクライアント装置において、デバイスを利用するためのイベントの継続時間が規定時間より長いか否かを判断するステップと、イベントの継続時間が規定時間より長いと判断した場合、デバイスと接続中のクライアントとの接続を切断し、イベントが発生したクライアント装置とデバイスとを接続するステップと、を含むデバイス利用方法である。
【００１１】
本発明にかかる第３の形態は、複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるクライアント装置であって、デバイスと他のクライアント装置とが接続中であるか否か、および自クライアント装置において、デバイスを利用するためのイベントの継続時間が規定時間より長いか否かを判断する判断部と、判断部の通知を受け、デバイスとの接続を切断するよう他のクライアント装置に要求する制御部とを備えるクライアント装置である。
【００１２】
本発明にかかる第４の形態は、複数のクライアント装置が、ネットワークを介してデバイスサーバと接続され、デバイスサーバにローカル接続されたデバイスと通信を行うデバイスサーバシステムにおけるデバイスサーバであって、デバイスとの接続および切断を自動で切り替える自動モードの場合、デバイスと接続中のクライアント装置とは異なるクライアント装置から接続切断の要求を受信したときは接続中のクライアント装置の許可なく切断するデバイスサーバである。
【発明の効果】
【００１３】
本発明は、複数のクライアント装置から、ネットワークを経由して、デバイスサーバに接続されている周辺機器をユーザーの手間を介さず、接続および切断を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】従来並びに本発明の実施の形態１および２にかかるデバイスサーバシステムの全体図である。
【図２】従来並びに本発明の実施の形態１および２にかかるデバイスサーバシステムにおける各装置のハードウェア構成である。
【図３】従来のデバイスサーバシステムにかかる機能ブロック図である。
【図４】従来の仮想接続ツールの機能ブロック図である。
【図５】本発明の実施の形態１にかかる仮想接続ツールの機能ブロック図である。
【図６】本発明の実施の形態１にかかる仮想接続ツールの動作フロー図である。
【図７】本発明の実施の形態１にかかるデバイスサーバシステムにおける仮想接続ツールの動作シーケンス図である。
【図８】本発明の実施の形態２にかかるデバイスサーバシステムにおける仮想接続ツールの動作シーケンス図である。
【図９】本発明の実施の形態にかかる仮想接続ツールが取得できる情報の一例である。
【発明を実施するための形態】
【００１５】
はじめに、図１、図２、図３、図４を用いて従来のデバイスサーバシステムについて説明する。
（従来のデバイスサーバシステム）
【００１６】
図１は、従来のデバイスサーバシステムの全体図である。
【００１７】
クライアントＰＣ１０１、クライアントＰＣ１０４、および、クライアント１１０が、ネットワーク１０５を通じてデバイスサーバ１０２を経由してＵＳＢデバイス１０３と接続している。なお、ネットワーク１０５は、図１では有線ネットワークとして図示しているが、デバイスサーバシステムは無線ネットワークでも利用できる。また、デバイスサーバ１０２に接続されたＵＳＢデバイスは図１では１つであるが、１つのデバイスサーバに複数のＵＳＢデバイスが接続され、各クライアント装置はそれぞれ別々のＵＳＢデバイスを利用してもよい。
【００１８】
図２は、従来のデバイスサーバシステムにおける各装置のハードウェア構成である。
【００１９】
図２に示すとおり、これらの装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、記憶装置２０３、ＷＮＩＣ（Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０４、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５、入力装置２０６および各構成部品間を接続している内部バス２０７などを備えている。
【００２０】
ＣＰＵ２００は、ＲＯＭ２０１に格納された制御プログラムを実行するプロセッサである。
【００２１】
ＲＯＭ２０１は、制御プログラム等を保持する読み出し専用記憶領域である。
【００２２】
ＲＡＭ２０２は、ＣＰＵ２００が制御プログラムを実行するときに使用するワークエリアとして用いられる記憶領域である。
【００２３】
記憶装置２０３は、制御プログラム、制御情報、装置情報、または認証情報などを記憶する記憶領域である。
【００２４】
ＷＮＩＣ２０４は、無線通信を行う無線通信インタフェースを備えている。例えば、ＩＥＥＥ８０２．１１ａ、ｂ、ｇ、ｎ、ａｃ規格等に適合する無線ＬＡＮの通信インタフェースである。
【００２５】
ＮＩＣ２０５は、有線通信を行う有線通信インタフェースを備えている。例えば、ＩＥＥＥ８０２．３規格等に適合する有線ＬＡＮの通信インタフェースである。
【００２６】
入力装置２０６は、クライアントＰＣ１０１、ＰＣ１０４、ＰＣ１１０に備えられ、ユーザーがＣＰＵ２００に指示するために使用するもの（例えば、キーボード、マウスなど）である。
【００２７】
内部バス２０７は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３、ＷＮＩＣ２０４、ＮＩＣ２０５、入力装置２０６を電気的に接続し、信号のやりとりを行うバスである。
【００２８】
以下、従来のデバイスサーバシステムにおける各装置の機能について、図３を用いて詳細に説明する。
【００２９】
図３は、デバイスサーバシステムにおけるクライアントＰＣ１０１とデバイスサーバ１０２の機能ブロックを示したものである。
【００３０】
はじめにクライアントＰＣ１０１について説明する。
【００３１】
仮想接続ツール３００は、ネットワーク上でデバイスサーバ１０２に接続されているＵＳＢデバイスについてデバイスの情報、ステータスなどを取得し、クライアントＰＣ１０１からＵＳＢデバイスを管理するためのものである。ユーザーは仮想接続ツール３００を用いて、クライアントＰＣ１０１が所望のＵＳＢデバイス１０３を選択し接続したり、あるいは接続中のＵＳＢデバイスを切断したりすることができる。この結果、クライアントＰＣ１０１が選択したＵＳＢデバイス１０３をあたかもクライアントＰＣ１０１に直接接続されたかのように利用できることを実現するソフトウェアである。仮想接続ツール３００は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３などにより実現される。
【００３２】
ここで、図４を用いて仮想接続ツールの機能について、より詳細に説明する。
【００３３】
図４は、従来のデバイスサーバシステムにおける仮想接続ツール３００の機能ブロック図である。
【００３４】
図４に示すとおり、仮想接続ツール３００は、監視部４０１および制御部４０２を備えている。以下、各機能について説明する。
【００３５】
監視部４０１は、デバイスサーバ１０２に接続されたＵＳＢデバイス１０３に一定期間ごとにポーリング（定められた順番に従って定期的にＵＳＢデバイスに問い合わせを行う）を行い、デバイスサーバ１０２を経由してＵＳＢデバイス１０３の使用状況を監視し、その都度機器に関する情報と使用状況の情報を取得する。つまり、監視部４０１は定期的にデバイスサーバに接続しているＵＳＢデバイスの機器情報を取得する。また、監視部４０１は、デバイスサーバ１０２を経由してＵＳＢデバイス１０３の使用状況に変化がある旨の通知を受けると、デバイスサーバを経由してＵＳＢデバイスに問い合わせを行う。監視部４０１は、当該問い合わせに対してＵＳＢデバイスから応答情報（例えば、ベンダーＩＤ、製品ＩＤ、機種名、デバイスの備えるクラス情報などの様にクライアント装置がＵＳＢデバイスを制御するために必要な情報が含まれる）を、デバイスサーバを経由して受けとり、その応答情報に含まれる種々の機器情報などを取得する。
【００３６】
制御部４０２は、クライアント装置１０１のユーザーによって選択されたＵＳＢデバイスの利用開始・終了のため、ネットワーク１０５を通じて、そのＵＳＢデバイスに接続されたデバイスサーバ１０２に対してＵＳＢデバイス１０３との接続や接続の切断を行なうべく要求する。
【００３７】
図３に戻って、アプリケーション３１０は、ユーザーがＵＳＢデバイス１０３に特定の作業を実行させたい場合にユーザーが直接指示するソフトウェアである。例えば、ＵＳＢデバイスがスキャナであれば、そのデバイスのスキャナ機能を実行するためにユーザーからの直接的な指示を受けるソフトウェアである（付属のスキャナツールなど）。アプリケーション３１０は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３などにより実現される。
【００３８】
デバイスドライバ３０１は、ＵＳＢデバイス１０３を制御するソフトウェアであり、通常ＵＳＢデバイスのベンダーから提供されるものである。ワープロソフトなどのアプリケーションはこのデバイスドライバ３０１を介してＵＳＢデバイス１０３を利用することができる。デバイスドライバ３０１は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３などにより実現される。
【００３９】
トンネリングドライバ３０２は、デバイスドライバ３０１の発行するＵＳＢデバイス１０３への入出力要求をネットワークパケット（以後、トンネリングパケットとも呼ぶ）にカプセル化し、ネットワークインタフェース３０３を通じてネットワーク上のデバイスサーバ１０２へ送信する。その一方、ＵＳＢデバイス１０３への入出力要求に対する応答が含まれるトンネリングパケットを受信すると、当該トンネリングパケットからこの応答を取り出し（デカプセル化）デバイスドライバ３０１に渡す。トンネリングドライバ３０２は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３などにより実現され、ネットワークインタフェース３０３は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３、ＷＮＩＣ２０４、ＮＩＣ２０５などにより実現される。
【００４０】
つぎにデバイスサーバ１０２について説明する。
【００４１】
ＵＳＢインタフェース３１１は、ＵＳＢデバイス１０３と接続するインタフェースである。ＵＳＢインタフェース３１１は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３、図示しないＵＳＢコネクタなどにより実現される。
【００４２】
ＵＳＢホストコントローラ３１２は、ＵＳＢのホスト側デバイスが備える装置であり、ＵＳＢデバイス１０３の入出力等を管理するものである。ＵＳＢホストコントローラ３１２は、ＣＰＵ２００、ＲＯＭ２０１、ＲＡＭ２０２、記憶装置２０３、図示しないＵＳＢホストコントローラＩＣなどにより実現される。
【００４３】
トンネリングドライバ３１３は、前述したトンネリングドライバ３０２と同じ機能を持ったドライバであり、実現するハードウェアも同じものである。
【００４４】
ネットワークインタフェース３１４も、前述したネットワークインタフェース３０３と同じ機能を持ったインタフェースであり、実現するハードウェアも同じものである。
【００４５】
デバイスサーバシステムにおいて、上述した機能構成、特にデバイスサーバ１０２のトンネリングドライバ３１３の機能により、クライアントＰＣ１０１のデバイスドライバ３０１は、ネットワーク越しにＵＳＢデバイス１０３を制御することができる。
【００４６】
上述したように従来のデバイスサーバシステムは、データのカプセル化、デカプセル化によって、クライアントＰＣとデバイスの間で行われる通信である。このため、クライアントＰＣは、理論上デバイスの備える全ての機能をネットワーク経由で利用することができる。しかし、このような通信は、ＮＡＳ(Network Attached Storage）のようにファイル単位での排他制御や同時アクセスが可能であるネットワーク経由で利用されることをもともと想定したプロトコルを用いないため、常に１台のクライアント装置からしか利用できない。
【００４７】
つまり、従来のデバイスサーバシステムにおいて、ユーザーは１台の周辺機器を複数のクライアント装置から利用する際、クライアント装置を切り替える度に仮想接続ツールによる接続と切断の手間がかかるのである。
【００４８】
以下、本発明の実施の形態について、図面を参照しながら具体的に説明する。
以下の実施の形態で示される数値、構成要素、構成要素の配置位置などは、一例であり、発明の範囲内において種々の変形や変更が可能である。
【００４９】
また、同一の構成要素には同一の符号を付し、説明を省略する場合がある。本発明の実施の形態にかかるデバイスサーバシステムの全体図および各装置のハードウェア構成は、それぞれ図１および図２に示したものと同一であり省略し、システムの構成要素（クライアント装置、デバイスサーバおよびＵＳＢデバイス）も同一の符号を用いる。
【００５０】
（実施の形態１）
【００５１】
図５は、本発明の実施の形態１にかかるクライアント装置における仮想接続ツール５００の機能ブロック図である。
【００５２】
図５に示すとおり、本発明における仮想接続ツール５００は、モード設定部５０１、監視部５０２、判断部５０３、制御部５０４、イベント監視部５０５などを備えている。
以下に各機能について、詳細に説明する。
【００５３】
モード設定部５０１は、ＵＳＢデバイスごとにユーザーにより設定された２つのモードのうちいずれかのモードの情報を、ネットワークを介してデバイスサーバ１０２に通知する。２つのモードとは、複数のクライアント装置から、デバイスサーバを経由しネットワーク上に接続しているＵＳＢデバイスを切り替えつつ利用する場合、（１）仮想接続ツールによって、接続と切断をユーザーが手動で切り替えるモード（従来のデバイスサーバシステムにおける動作であり、以後、通常モードと呼ぶ）と、（２）仮想接続ツールが自動でＵＳＢデバイスと接続中のクライアント装置の接続を切断し、ＵＳＢデバイスと新たに接続するクライアント装置と接続させるモード（本発明のデバイスサーバシステムにおける動作であり、以後、自動モードと呼ぶ）、の２つのモードである。
【００５４】
また、モード設定部５０１は、ユーザーが利用するＵＳＢデバイスについて自動モードでの動作開始の判断を行うため、イベント（例えば、クライアント装置で行う入力操作）が継続して発生している基準時間の情報（この基準時間を超えてイベントが継続発生すれば、自動モードの動作を開始する。以後、イベント経過時間設定情報と呼ぶ）を、ユーザーが設定することで、ネットワークを介してデバイスサーバ１０２に通知する。自動モードの動作開始条件については以下に詳述する。イベント経過時間設定情報は、ユーザーがＵＳＢデバイスごとに予め設定できてもよいし、工場出荷時に一律に設定されていてもよい。
【００５５】
監視部５０２は、ＵＳＢデバイスからの応答情報（クライアント装置からのポーリングおよびＵＳＢデバイスの使用状況に変化があった場合に行われる問い合わせに対するもの）を、デバイスサーバを経由して取得する。監視部５０２は、その取得した情報を判断部５０３およびイベント監視部５０５に通知する。
【００５６】
さらに、監視部５０２は、自クライアント装置にユーザーが指示したＵＳＢデバイス１０３に対する入力操作（例えば、キーボード入力、マウス入力など）を監視している。すなわち監視部５０２は、自クライアント装置に備わる入力装置２０６からユーザーが行う入力（イベント）の発生及び状況を随時、イベント監視部５０５に通知する。なお、本発明において、イベントとは、例えばＷＩＮＤＯＷＳ（登録商標）におけるキーボードイベント、マウスイベントなどを言う。
【００５７】
イベント監視部５０５は、監視部５０２からの通知を受け、ユーザーが自クライアント装置で入力装置２０６からユーザーが行うイベントが発生した場合、そのイベントが発生した時刻から時間のカウントを開始するとともに、イベント継続情報（イベントが継続している時間）と監視部５０２から取得するイベント経過時間設定情報を比較し、イベント継続情報の数値がイベント経過時間設定情報の数値を上回った場合、その旨を判断部５０３へ通知する。このように、イベントが規定時間内継続しているか否かを判断するのは、誤操作などで、意図せずＵＳＢデバイスに接続が行われるのを回避するためである。ここで、イベントが継続しているとは、例えばマウスのクリックがある時間間隔以内で断続的に複数回行なわれる様な一連のイベントを意味している。
【００５８】
判断部５０３は、監視部５０２からＵＳＢデバイスの機器情報と、ユーザーにより予め設定されたＵＳＢデバイスのモード情報とイベント経過時間設定情報の通知を受け、さらに、イベント監視部５０５からイベントが規定時間継続したか否かの情報を受ける。（情報を取得する。）
【００５９】
判断部５０３は、監視部５０２から通知を受けるＵＳＢデバイスの機器情報とそのＵＳＢデバイスのモード情報とを基に、当該ＵＳＢデバイスが自動モードに設定されている場合は、イベント監視部５０５から取得するイベントが規定時間以上継続したか否かの情報を基にＵＳＢデバイスとの接続を継続するか、切断するかを判断する。すなわち、当該ＵＳＢデバイスが自動モードに設定されており、かつイベントが規定時間以上継続している条件で、次の処理を行うよう制御部５０４に通知する。（１）自クライアントが接続を行おうとするＵＳＢデバイスとすでに他のクライアント装置が接続している場合は、他のクライアント装置とＵＳＢデバイスとの接続を切断したうえで自クライアント装置とＵＳＢデバイスとの接続を行うように制御部５０４に通知する。（２）一方、自クライアントが接続を行おうとするＵＳＢデバイスが他のクライアント装置と接続していない場合は、自クライアント装置とＵＳＢデバイスとの接続を行うように制御部５０４に通知する。
【００６０】
制御部５０４は、判断部５０３の通知を受け、自動モードの場合、他のクライアント装置とＵＳＢデバイスとの接続を切断するように他のクライアント装置に通知し、切断完了の通知を受信すると、自クライアント装置とＵＳＢデバイスとの接続を行うようにデバイスサーバ１０２に通知する。一方、自クライアントが接続を行おうとするＵＳＢデバイスが他のクライアント装置と接続していない場合は、自クライアント装置とＵＳＢデバイスとの接続を行うようにデバイスサーバ１０２に通知する。
【００６１】
図６は、本発明の実施の形態１にかかる仮想接続ツール５００の動作フロー図である。
【００６２】
図６を参照しながら、本発明の実施の形態１にかかる仮想接続ツール５００の動作フローについて順をおって説明する。なお、図６においては、クライアントＰＣ１０１がネットワーク１０５を通じて、ＵＳＢデバイス１０３と接続している状況で、新たなクライアントＰＣ１０４が自らの仮想接続ツール５００を用いてＵＳＢデバイス１０３の利用を開始する場合の動作フローである。
【００６３】
ステップＳ６０１では、イベント監視部５０５が、監視部５０２から自クライアント（クライアントＰＣ１０４）装置で発生したイベントのイベント継続情報と、モード設定部５０１から取得した、ユーザーが利用するＵＳＢデバイスごとに予め設定されたイベント経過時間設定情報との数値とを比較し、判断する。イベント継続情報の数値がイベント経過時間設定情報の数値より大きい場合は、ステップＳ６０２へ遷移する（ステップＳ６０１のＹｅｓ）。小さい場合は、イベントは発生しなかったものとして、ステップＳ６０１を繰り返す（ステップＳ６０１のＮｏ）。
【００６４】
ステップＳ６０２では、判断部５０３がネットワーク上で仮想接続ツールにより認識されているＵＳＢデバイスが通常モードあるいは自動モードのどちらの設定かを監視部５０２から受けたＵＳＢデバイスの機器情報およびモード情報を基にネットワーク上のいずれのＵＳＢデバイス（ＵＳＢデバイス１０３）に接続するかを判断する。少なくとも1台の当該ＵＳＢデバイスにユーザーによって自動モードの設定がされている場合は、ステップＳ６０３へ遷移する（ステップＳ６０２のＹｅｓ）。当該ＵＳＢデバイスにユーザーによって自動モードの設定がされていない（通常モードの設定のみ）場合は、フローを終了する（ステップＳ６０２のＮｏ）。
【００６５】
ステップＳ６０３では、判断部５０３が、ＵＳＢデバイス１０３が他のいずれかのクライアント装置とネットワーク１０５を通じて接続されているか否かについて、監視部５０２から通知されるＵＳＢデバイスの機器情報およびＵＳＢデバイスの使用状況などの情報を取得し、判断する。いずれかのクライアント装置がＵＳＢデバイス１０３と接続している場合はステップＳ６０４に遷移する（ステップＳ６０３のＹｅｓ）。いずれのクライアント装置も接続していない場合、ステップＳ６０５へ遷移し、ＵＳＢデバイス１０３と接続を行う（ステップＳ６０３のＮｏ）。
【００６６】
ステップＳ６０４では、判断部５０３の通知を受けて、制御部５０４はＵＳＢデバイス１０３と接続中のクライアントＰＣ１０１にＵＳＢデバイス１０３との切断要求を送信し、クライアントＰＣ１０１からの応答を待つ。（あるいは、制御部５０４は、接続中のクライアントＰＣ１０１にＵＳＢデバイス１０３との切断要求を行わずに、デバイスサーバ１０２にＵＳＢデバイス１０３と切断するように切断要求を直接送信し、その後、デバイスサーバ１０２が、クライアントＰＣ１０１へＵＳＢデバイス１０３との切断完了通知を行ってもよい。詳細は実施の形態２において説明する。）
【００６７】
ステップＳ６０５では、ステップＳ６０４に続いて、自クライアント装置（クライアントＰＣ１０４）がクライアントＰＣ１０１からの切断要求に対する応答を受信すれば、制御部５０４は自クライアントＰＣ１０４とＵＳＢデバイス１０３とを接続するよう処理を進める。（具体的には図７で説明するとおり、デバイスサーバ１０２に接続を要求する。）
【００６８】
つぎに、本発明の実施の形態１にかかるデバイスサーバシステムの動作について、図７を用いて説明する。
【００６９】
図７は、本発明の実施の形態１にかかるデバイスサーバシステムにおける動作シーケンス図である。
【００７０】
図７の状況は、前出の図６と同様、クライアントＰＣ１０１がネットワーク１０５を通じて、ＵＳＢデバイス１０３と接続している状況で、新たなクライアントＰＣ１０４が自らの仮想接続ツール５００を用いてＵＳＢデバイス１０３の利用を開始する場合の動作シーケンスであるが、まず前段（Ｃ７０５まで）でクライアントＰＣ１０１がＵＳＢデバイス１０３に接続するまでの動作シーケンスを説明し、その後、後段（Ｃ７０６以降）でクライアントＰＣ１０４がクライアントＰＣ１０１に替わってＵＳＢデバイス１０３に接続する動作シーケンスを説明する。
【００７１】
クライアントＰＣ１０１の仮想接続ツール５００がデバイスサーバ１０２に対し、ネットワーク上でデバイスサーバ１０２に接続され利用可能なＵＳＢデバイスについての情報を取得するために問い合わせ（検索）を行う（Ｃ７０１）。
【００７２】
これに対し、デバイスサーバ１０２は、デバイスサーバ１０２に接続され利用可能なＵＳＢデバイスの情報について、クライアントＰＣ１０１に通知する（Ｃ７０２）。（この場合は、もしＵＳＢデバイスがいずれかのクライアントＰＣと接続済みであれば、その情報も含めクライアントＰＣ１０１に通知する）
【００７３】
クライアントＰＣ１０１を利用しているユーザーの指示（ＵＳＢデバイス１０３に接続したい）により、クライアントＰＣ１０１の仮想接続ツール５００がデバイスサーバ１０２にＵＳＢデバイス１０３との接続を要求する（Ｃ７０３）。
【００７４】
デバイスサーバ１０２は、Ｃ７０３の要求を受けてＵＳＢデバイス１０３と接続を行い（Ｃ７０４）、クライアントＰＣ１０１にＵＳＢデバイス１０３と接続が完了した旨の通知を行う（Ｃ７０５）。
【００７５】
これ以降は、クライアントＰＣ１０１に替わってクライアントＰＣ１０４がＵＳＢデバイス１０３に接続する動作シーケンスを説明する。
【００７６】
クライアントＰＣ１０１とＵＳＢデバイス１０３がデバイスサーバ１０２を介して接続され、かつ、ＵＳＢデバイス１０３が、予めユーザーにおいて仮想接続ツール５００を用いて、自動モードで動作することを設定されている場合、クラインアントＰＣ１０４の仮想接続ツール５００が、自クライアントＰＣ１０４においてイベントが規定時間継続して発生していることを検知する（Ｃ７０６）と、そのイベントが対象とするＵＳＢデバイスについての情報を取得するために問い合わせ（検索）を行う（Ｃ７０７）。この時点でＵＳＢデバイス１０３がクライアントＰＣ１０４以外のクライアント装置と接続状態にあるかを検知するのである。前述したように、イベントとは、クラインアントＰＣ１０４を利用しているユーザーがＵＳＢデバイス１０３を利用しようと入力装置（例えば、マウス、キーボード）を規定時間継続して使用するなどの処理をいう。つまり、ユーザーがＵＳＢデバイス１０３を利用するため、アプリケーションの所定の手順に則って入力装置の操作をしていることである。また、Ｃ７０６で行うイベントを規定時間継続していることを検知するのは仮想接続ツール５００のイベント監視部５０５などである。
【００７７】
デバイスサーバ１０２は、Ｃ７０７の要求を受けて、現時点でＵＳＢデバイス１０３と接続しているクライアントＰＣ１０１のＩＰアドレスをクライアントＰＣ１０４に通知する（Ｃ７０８）。このように、クライアントＰＣ１０４にクライアントＰＣ１０１のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを通知することにより、現時点でＵＳＢデバイスと接続しているクライアント装置を特定し、当該クライアント装置に対しＵＳＢデバイスとの接続を切断してほしい旨の通知が可能となる。
【００７８】
クライアントＰＣ１０４の仮想接続ツール５００はＣ７０８の通知を受け、クライアントＰＣ１０１にＵＳＢデバイス１０３との接続を切断してほしい旨の要求を通知する（Ｃ７０９）。
【００７９】
クライアントＰＣ１０１の仮想接続ツール５００は、クライアントＰＣ１０４からＣ７０９の要求を受けて、デバイスサーバ１０２に対し、ＵＳＢデバイス１０３との接続を切断し、他のクライアント装置から利用できる（解放する）ように通知する（Ｃ７１０）。
【００８０】
デバイスサーバ１０２は、クライアントＰＣ１０１からのＣ７１０の要求を受けて、ＵＳＢデバイス１０３と接続を切断し、解放する（Ｃ７１１）。続いて、クライアントＰＣ１０１に対して、「ＵＳＢデバイス１０３との接続を切断し、解放を完了した」旨の通知を行う（Ｃ７１２）。
【００８１】
クライアントＰＣ１０１の仮想接続ツール５００は、クライアントＰＣ１０４から受けているＣ７０９の要求に対する応答を通知する（Ｃ７１３）。つまり、クライアントＰＣ１０４がＵＳＢデバイス１０３を利用可能になった旨の通知を行う。
【００８２】
クライアントＰＣ１０４の仮想接続ツール５００は、デバイスサーバ１０２にＵＳＢデバイス１０３との接続を要求する（Ｃ７１４）。
【００８３】
デバイスサーバ１０２は、Ｃ７１４の要求を受けてＵＳＢデバイス１０３と接続を行い（Ｃ７１５）、クライアントＰＣ１０４にＵＳＢデバイス１０３と接続が完了した旨の通知を行う（Ｃ７１６）。
【００８４】
上述した図７の一連のプロセスを経て、ネットワーク上で、あるクライアント装置（クライアントＰＣ１０１）とＵＳＢデバイスがデバイスサーバを介して接続されている場合に、他のクラインアント装置（クライアントＰＣ１０４）からＵＳＢデバイスを利用しようとしてイベントを規定時間継続していることを当該他のクライアント装置（クライアントＰＣ１０４）の仮想接続ツールが検知すると、その時点でＵＳＢデバイスと接続しているクライアント装置（クライアントＰＣ１０１）に切断要求を通知し、デバイスサーバを介してＵＳＢデバイスとの接続を切断させ、次に当該他のクラインアント装置（クライアントＰＣ１０４）がＵＳＢデバイスと接続できるようになる。
【００８５】
（実施の形態２）
上述した実施の形態１では、行われるクライアントＰＣ１０４に備わる仮想接続ツールが、ＵＳＢデバイス１０３と接続中のクライアントＰＣ１０１に備わる仮想接続ツールに接続を切断してほしい旨の通知を行い、クライアントＰＣ１０１からデバイスサーバ１０２にＵＳＢデバイス１０３との接続を切断し、解放する通知を要求することで、クライアントＰＣ１０４はＵＳＢデバイス１０３と接続ができるようになるが、実施の形態２では接続中のクライアントＰＣ１０１とＵＳＢデバイス１０３との接続をデバイスサーバ１０２が強制的に切断する実施例である。以下に説明する。
【００８６】
本発明の実施の形態２にかかるデバイスサーバシステムにおける仮想接続ツールの動作について、図８を用いて説明する。
【００８７】
図８は、本発明の実施の形態２にかかるデバイスサーバシステムにおける仮想接続ツールの動作シーケンス図である。
【００８８】
図８に示すとおり、デバイスサーバ１０２が、Ｃ７０７の要求を受けて、現時点でＵＳＢデバイス１０３と接続しているクライアントＰＣ１０１のＩＰアドレスをクライアントＰＣ１０４に通知するシーケンス（Ｃ７０８）までは実施の形態１と同様であるが、Ｃ８０９のシーケンス以降が実施の形態１と異なる。
【００８９】
クライアントＰＣ１０４の仮想接続ツール５００は、クライアントＰＣ１０１ではなくデバイスサーバ１０２に対してクライアントＰＣ１０１とＵＳＢデバイス１０３との接続を切断するように要求する（Ｃ８０９）。
【００９０】
デバイスサーバ１０２は、クライアントＰＣ１０４からのＣ８０９の要求を受けて、ＵＳＢデバイス１０３と接続を切断し、解放する（Ｃ８１０）。続いて、クライアントＰＣ１０１にＵＳＢデバイス１０３との接続を切断し、解放が完了した旨の通知を行う（Ｃ８１１）。
【００９１】
つぎに、クライアントＰＣ１０４の仮想接続ツール５００が、デバイスサーバ１０２にクライアントＰＣ１０４とＵＳＢデバイス１０３との接続を要求する（Ｃ８１２）。
【００９２】
デバイスサーバ１０２は、Ｃ８１２の要求を受けてＵＳＢデバイス１０３と接続を行い（Ｃ８１３）、クライアントＰＣ１０４にＵＳＢデバイス１０３と接続が完了した旨の通知を行う（Ｃ８１４）。
【００９３】
このように、実施の形態２では、仮想接続ツールを備えている他のクラインアント装置（クライアントＰＣ１０４）からＵＳＢデバイスを利用しようとして、イベントを規定時間継続していることを当該他のクラインアント装置（クライアントＰＣ１０４）の仮想接続ツールが検知すると、その時点でデバイスサーバ自身がＵＳＢデバイスと接続しているクライアント装置（クライアントＰＣ１０１）の許可なく、ＵＳＢデバイスとの接続を強制的に切断し、解放することで、デバイスサーバに対し接続中であったクライアント装置からの切断要求によるプロセスが省略でき、デバイスサーバシステムのレスポンス向上とクライアント装置の負荷の軽減を図ることができる。なお、この動作を実現するためには、従来のデバイスサーバの機能に加えて、「所定の条件を満たした場合、接続中のクライアント装置以外のクライアントからの切断要求に従ってクライアント装置とＵＳＢデバイスとの間の接続を切断する」という機能を付加する必要がある。所定の条件とはすでに説明したとおり、（１）ＵＳＢデバイスが自動モードであること、（２）切断要求をしたクライアント装置においてＵＳＢデバイスを対象としたイベント（当該クライアント装置に対する入力操作など）が規定時間継続していること、を意味している。デバイスサーバ側ではこうした条件を満たしているというフラグを持った切断要求に限り呼応することとなる。
【００９４】
本発明の実施の形態１および２にかかるデバイスサーバシステムにおいて仮想接続ツールが記憶装置２０３などで管理すべき情報について、図９を用いて説明する。
【００９５】
図９は、本発明の実施の形態１および２にかかるデバイスサーバシステムにおけるクライアント装置の仮想接続ツールがＵＳＢデバイスとの接続を行うにあたり、管理している情報の一例である。
【００９６】
また、これらの情報はデバイスサーバにおいてもその情報の全部または一部を保持したり、ユーザーによってそのデバイスサーバにある情報を設定したりすることができる。
【００９７】
デバイスサーバ名は、ネットワーク上に接続しているデバイスサーバの機器名である。
【００９８】
ＵＳＢデバイス名は、ネットワーク上に接続しているデバイスサーバにローカル接続しているＵＳＢデバイスの機器名である。
【００９９】
ＩＰアドレスは、ＵＳＢデバイスと接続しているクライアント装置のＩＰアドレスである。
【０１００】
モード情報は、クライアント装置に備わる仮想接続ツールあるいはデバイスサーバに備わるデバイスサーバ設定用ツールにユーザーが予め利用するＵＳＢデバイスごとに設定したモード（通常モード、自動モード）の情報である。
【０１０１】
イベント経過時間設定情報は、モード情報が自動モードに設定されているＵＳＢデバイスに接続する場合、イベント監視部５０５で行われるイベントの継続時間のカウントが、これを上回ると自動モードでデバイスサーバシステムが動作する条件になる数値が設定されている。
【０１０２】
（その他の実施形態）
これまでの実施形態の説明は、１人のユーザーが複数のクライアント装置を操作してネットワーク越しにＵＳＢデバイスを利用するとして説明したが、本発明は、複数のユーザーがそれぞれのクライアント装置から１つのＵＳＢデバイスを利用する場合にも適用可能である。そうした場合、新たにそのＵＳＢデバイスに接続したクライアント装置のユーザーは、自らの判断で、そのＵＳＢデバイスにかかるモードを通常モードに戻し、他のクライアント装置から自動的にＵＳＢデバイスへの接続が行えないようにすることも可能である。このようにすれば、ＵＳＢデバイスを従来のデバイスサーバシステムとして利用したいユーザーは、他のユーザーによって予め設定されたＵＳＢデバイスにかかるモードを変更（設定を自動モードから通常モードに変更）できるので、利用したいＵＳＢデバイスのモードに関わらず、他のユーザーによる突然のＵＳＢデバイスの接続を切断されることなく利用できることから利便性向上に効を奏す。
【産業上の利用可能性】
【０１０３】
本発明は、複数のクライアント装置から、ネットワークを経由して、デバイスサーバに接続されている周辺機器（ＵＳＢデバイス）をユーザーの手間を介さず、接続および切断を行いたい場面で有用である。
【符号の説明】
【０１０４】
１０１、１０４、１１０  クライアントＰＣ
１０２  デバイスサーバ
１０３  ＵＳＢデバイス
１０５  ネットワーク
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  記憶装置
２０４  ＷＮＩＣ
２０５  ＮＩＣ
２０６  入力装置
２０７  内部バス
３００  仮想接続ツール
３０１  デバイスドライバ
３０２、３１３  トンネリングドライバ
３０３、３１４  ネットワークインタフェース
３１０  アプリケーション
３１１  ＵＳＢインタフェース
３１２  ＵＳＢホストコントローラ
４０１  監視部
４０２  制御部
５００  仮想接続ツール
５０１  モード設定部
５０２  監視部
５０３  判断部
５０４  制御部
５０５  イベント監視部
【図１】
0006455759.tif 000002
【図２】
0006455759.tif 000003
【図３】
0006455759.tif 000004
【図４】
0006455759.tif 000005
【図５】
0006455759.tif 000006
【図６】
0006455759.tif 000007
【図７】
0006455759.tif 000008
【図８】
0006455759.tif 000009
【図９】
0006455759.tif 000010