(57)【要約】      （修正有）【課題】情報処理装置とデバイス制御装置との間におけるデバイス制御処理（処理シーケンス）の相違を解消し、外部デバイスの意図しない動作を防止できるデバイス制御装置、その制御方法、およびプログラムを提供する。【解決手段】デバイス制御装置は、ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続され、情報処理装置にデバイスがローカル接続されたかのように仮想化制御させ、デバイスに対する電源供給の開始または停止に応じて、仮想化制御を開始または停止し、デバイスの電源供給状態を含むデバイス管理情報を更新して、管理し、デバイス管理情報を情報処理装置に送信する。【選択図】図１
2019032672.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置であって、
前記デバイスに対する電源供給の開始および停止を制御する電源供給制御手段と、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させ、前記電源供給制御手段による前記デバイスに対する電源供給の開始または停止に応じて、前記仮想化制御を開始または停止する仮想化制御手段と、
前記電源供給制御手段を監視して、前記デバイスの電源供給状態を含むデバイス管理情報を更新し、管理するデバイス状態管理手段と、
前記デバイス状態管理手段で管理している前記デバイス管理情報を外部に送信する情報送信手段と、を備え、
前記デバイス状態管理手段は、前記電源供給制御手段によって前記デバイスに対する電源供給が開始または停止された場合、
前記デバイス管理情報を前記情報処理装置に送信させる
ことを特徴とするデバイス制御装置。
【請求項２】
前記デバイス制御装置の省電状態を制御する省電制御手段を更に備え、
前記デバイス状態管理手段は、
前記省電制御手段による前記デバイス制御装置の省電状態に変化があった場合、
前記デバイス制御装置の省電状態を含む前記デバイス管理情報を前記情報処理装置に送信させる
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
自装置の代替となる代替デバイス制御装置を選定する代替選定手段を更に備え、
前記デバイス状態管理手段は、
前記省電制御手段によって前記デバイス制御装置が省電状態に移行した場合、
前記情報送信手段に対して、前記代替選定手段によって選定された前記代替デバイス制御装置への前記デバイス管理情報の送信を指示し、
前記省電制御手段によって前記デバイス制御装置が省電状態から復帰した場合、
前記情報送信手段に対して、前記代替デバイス制御装置への代替解除命令の送信を指示する
ことを特徴とする請求項２に記載のデバイス制御装置。
【請求項４】
ネットワークを介して１以上の情報処理装置および１以上のデバイス制御装置に接続されているデバイス制御装置であって、
他のデバイス制御装置からデバイス管理情報を取得し、記憶するデバイス状態管理手段と、
前記情報処理装置からデバイスの検索要求を受信する検索要求受信手段と、
前記検索要求受信手段によって受信した前記情報処理装置からの前記検索要求に応じて、前記デバイス状態管理手段に記憶する前記デバイス管理情報を検索し、検索結果を応答する応答手段と、
他のデバイス制御装置から代替解除命令を受信する代替解除命令受信手段と、を備え、
前記代替解除命令受信手段が前記代替解除命令を受信した場合、
前記応答手段は、前記デバイス状態管理手段に記憶している前記デバイス管理情報に対する検索結果を前記情報処理装置に応答しない
ことを特徴とするデバイス制御装置。
【請求項５】
ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置の制御方法であって、
前記デバイスに対する電源供給の開始または停止を制御する電源供給制御ステップと、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させ、前記電源供給制御ステップによる前記デバイスに対する電源供給の開始または電源供給の停止に応じて、前記仮想化制御を開始または停止する仮想化制御ステップと、
前記電源供給制御ステップを監視して、前記デバイスの電源供給状態を含むデバイス管理情報を更新し、管理するデバイス状態管理ステップと、
前記電源供給制御ステップにおいて前記デバイスに対する電源供給が開始または停止された場合、
前記デバイス状態管理ステップにおいて記憶した前記デバイス管理情報を外部に送信する情報送信ステップと、
を備えることを特徴とするデバイス制御装置の制御方法。
【請求項６】
ネットワークを介して１以上の情報処理装置および１以上のデバイス制御装置に接続されているデバイス制御装置の制御方法であって、
他のデバイス制御装置からデバイス管理情報を取得し、記憶するデバイス状態管理ステップと、
前記情報処理装置からデバイスの検索要求を受信する検索要求受信ステップと、
前記検索要求受信ステップによって受信した前記情報処理装置からの前記検索要求に応じて、前記デバイス管理情報を検索し、検索結果を応答する応答ステップと、
他のデバイス制御装置から代替解除命令を受信する代替解除命令受信ステップと、を備え、
前記代替解除命令受信ステップにおいて前記代替解除命令を受信した場合、
前記応答ステップにおいて、前記デバイス管理情報に対する検索結果を前記情報処理装置に応答しない
ことを特徴とするデバイス制御装置の制御方法。
【請求項７】
請求項１乃至請求項３の何れか１項に記載のデバイス制御装置の各手段をコンピュータに機能させるためのプログラム。
【請求項８】
請求項４項に記載のデバイス制御装置の各手段をコンピュータに機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された情報処理装置から送られる各種要求を処理するためのデバイス制御装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置であるホストコンピュータから共有デバイスとして利用することが行われている。その実現方法がいくつか提案されている。
【０００３】
例えば、クライアントＰＣが、デバイスサーバにローカル接続されたデバイスをローカル接続されたように認識し、デバイスの制御（以下、「仮想化制御」）を行うものがある（特許文献１参照）。
【０００４】
また、サーバコンピュータ（デバイスサーバ）における周辺機器（デバイス）の電源制御を行うものが提案されている。
【０００５】
例えば、サーバコンピュータ（デバイスサーバ）にローカル接続された周辺機器（デバイス）と、サーバコンピュータにネットワークを介して接続されたホストコンピュータ（クライアントＰＣ）から構成されるシステムにおいて、サーバコンピュータは周辺機器の抜き差しに応じて、周辺機器への電源供給や電源供給停止（以下、電源制御）を行うものがある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０５５８３１号公報
【特許文献２】特開２００７−３１０７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１のデバイス制御システムにおいて、デバイスサーバに接続されたデバイスに対して電源制御（電源供給や電源供給停止）を行いたいというニーズがある。
【０００８】
しかし、特許文献１のデバイス制御システムに特許文献２のような既存の技術（電源制御の技術）を適用し、クライアントＰＣによってデバイスを仮想化制御している場合にデバイスサーバがデバイスの電源制御を行うことができたとしても以下の課題がある。
【０００９】
クライアントＰＣは、デバイスの仮想化制御を行っている際に、デバイスサーバによる外部デバイスへの電源供給停止を行い、仮想的な接続を終了した場合、デバイスの抜去を認識できない。
【００１０】
そのため、クライアントＰＣが認識しているデバイスの接続（抜去）状態と実際のデバイスの接続（抜去）状態とで不整合が発生する。なお、デバイスの状態の不整合とは、例えば、デバイスサーバにデバイスは接続されてない状態にも関わらず、クライアントＰＣは、デバイスサーバにデバイスが接続されている状態と認識することである。外部デバイス（周辺機器）が抜去されていない状態（不整合が生じた状態）で再びホストコンピュータから周辺機器に対して仮想的な接続を行ったとしても、ホストコンピュータは新規にローカル接続された外部デバイスとして認識し、初期状態からの処理を行ってしまう。
【００１１】
従って、サーバコンピュータに接続された周辺機器はホストコンピュータにより初期状態からの制御が行われることで、デバイスの状態の不整合に起因し、ホストコンピュータとサーバコンピュータとの間でデバイス制御処理（処理シーケンス）の相違が発生するため、外部デバイスが意図しない動作を行うという課題がある。
【００１２】
上記の課題に鑑みて、本発明は、情報処理装置とデバイス制御装置との間におけるデバイス制御処理（処理シーケンス）の相違を解消し、外部デバイスの意図しない動作を防止できるデバイス制御装置、その制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置であって、前記デバイスに対する電源供給の開始および停止を制御する電源供給制御手段と、前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させ、前記電源供給制御手段による前記デバイスに対する電源供給の開始または停止に応じて、前記仮想化制御を開始または停止する仮想化制御手段と、前記電源供給制御手段を監視して、前記デバイスの電源供給状態を含むデバイス管理情報を更新し、管理するデバイス状態管理手段と、前記デバイス状態管理手段で管理している前記デバイス管理情報を外部に送信する情報送信手段と、を備え、前記デバイス状態管理手段は、前記電源供給制御手段によって前記デバイスに対する電源供給が開始または停止された場合、前記デバイス管理情報を前記情報処理装置に送信させることを特徴とする。
【００１４】
上記の課題を解決するために、請求項４に記載のデバイス制御装置は、ネットワークを介して１以上の情報処理装置および１以上のデバイス制御装置に接続されているデバイス制御装置であって、他のデバイス制御装置からデバイス管理情報を取得し、記憶するデバイス状態管理手段と、前記情報処理装置からデバイスの検索要求を受信する検索要求受信手段と、前記検索要求受信手段によって受信した前記情報処理装置からの前記検索要求に応じて、前記デバイス状態管理手段に記憶する前記デバイス管理情報を検索し、検索結果を応答する応答手段と、他のデバイス制御装置から代替解除命令を受信する代替解除命令受信手段と、を備え、前記代替解除命令受信手段が代替解除命令を受信した場合、前記応答手段は、前記デバイス状態管理手段に記憶している前記デバイス管理情報に対する検索結果を前記情報処理装置に応答しないことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、情報処理装置とデバイス制御装置との間におけるデバイス制御処理（処理シーケンス）の相違を解消し、外部デバイスの意図しない動作を防止できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態におけるデバイス制御システムの一例を示すブロック図である。
【図２】図１に示すデバイス制御装置２００が有するデバイス状態管理情報２０６の一例を示す図である。
【図３】図１に示すデバイス制御システムにおけるデバイス制御装置２００が外部デバイス３００に対する電源制御および仮想化制御の開始・終了を行う際の動作を説明するシーケンス図である。
【図４】本発明の第２の実施形態におけるデバイス制御システムの一例を示すブロック図である。
【図５】図４に示すデバイス制御装置２００が有するデバイス状態管理情報２０６の一例を示す図である。
【図６】図４に示すデバイス制御システムにおけるデバイス制御装置２００の省電制御状態を含む外部デバイス３００の制御を説明するシーケンスである。
【図７】本発明の第３の実施形態におけるデバイス制御システムの一例を示すブロック図である。
【図８】図７に示すデバイス制御装置２００が有するデバイス状態管理情報２０６の一例を示す図である。
【図９】デバイス状態通知部２２１によって管理している代替検索結果管理情報の一例を示す図である。
【図１０】図７に示すデバイス制御装置２００における代替デバイス制御装置２９０の選定の一例を示すフローチャートである。
【図１１】図７に示すデバイス制御システムにおけるデバイス制御装置２００の省電制御に応じ、代替デバイス制御装置にデバイス管理情報を移譲することを説明するシーケンスである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１８】
[第１の実施形態]
図１は、本発明の第１の実施形態によるデバイス制御システムの一例の構成を概略的に示すブロック図である。
【００１９】
なお、第１の実施形態では、後述するデバイス制御装置２００に接続された外部デバイス３００を情報処理装置１００が仮想化制御している際に、デバイス制御装置２００が外部デバイス３００の状態を保持し、情報処理装置１００から外部デバイス３００の検索要求に対して外部デバイス３００のデバイス状態を通知する例について説明する。
【００２０】
図示のデバイス制御システムにおいては、情報処理装置１００がローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などのネットワークを介してデバイス制御装置２００に接続されている。ネットワークは有線回線または無線回線で構成される。そして、デバイス制御装置２００には、通信インターフェース（例えば、ＵＳＢまたＩＥＥＥ１３９４、および、ＨＤＭＩ（登録商標））によって外部デバイス３００がローカル接続されている。以降の説明では、通信インターフェースをＵＳＢとして説明する。
【００２１】
なお、図１に示すデバイス制御システムにおいては、情報処理装置１００、デバイス制御装置２００、および外部デバイス３００がそれぞれ１つのみ示されているが、情報処理装置１００、デバイス制御装置２００、および外部デバイス３００の台数は図示の例に限定されるものではない。また、デバイス制御装置２００は、例えば、プリンタ又は複合機等のオフィス機器であるが、デバイス制御装置２００はオフィス機器に限定されるものではなく、様々な組込み装置、携帯電話機、又はモバイル端末機器であってもよい。  
【００２２】
また、図１に示すデバイス制御システムでは、デバイス制御装置２００と外部デバイス３００をそれぞれ別体の装置で構成しているが、デバイス制御装置２００を外部デバイス３００のケーシング内に収まるように一体構造としてもよい。
【００２３】
＜情報処理装置１００の構成＞
情報処理装置１００は、パーソナルコンピュータ（ＰＣ）等の装置である。ハードウェア構成として、ＣＰＵ１５１、入力部１５２、表示部１５３、メモリ１５４、通信部１５５、および、記憶部１６０を備え、これらハードウェアは内部バスで相互に接続されている。
【００２４】
ＣＰＵ１５１は情報処理装置１００全体の制御を司る。入力部１５２は、例えば、キーボード及びマウスを備えている。表示部１５３として、例えば、液晶モニタが用いられる。メモリ１５４はＲＡＭ及びＲＯＭ等である。通信部１５５はネットワークに接続するためのインターフェースであって、デバイス制御装置２００とデータ送受信を行う。
【００２５】
記憶部１６０には、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１０１、デバイスドライバ１０２、仮想化制御部１０３および通信制御部１０４が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ１５４に読み出されて、ＣＰＵ１５１の制御に従い動作する。
【００２６】
アプリケーション１０１は、デバイスドライバ１０２に対してデータ入出力要求を指示することにより、デバイス制御装置２００およびデバイス制御装置２００に接続された外部デバイス３００を制御するためのソフトウェアである。
【００２７】
デバイスドライバ１０２は、外部デバイス３００を制御するための機能部である。ＯＳまたはアプリケーション１０１からのデータ入出力要求を、外部デバイス３００に応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドを仮想化制御部１０３に送る。さらに、デバイスドライバ１０２は、制御コマンドに対する応答をアプリケーション１０１に通知する。このデバイスドライバ１０２は一般に、外部デバイス３００を製造したメーカーによって提供されるソフトウェアであって、情報処理装置１００は各デバイスに対応したデバイスドライバ１０２によって外部デバイス３００を制御することができる。
【００２８】
仮想化制御部１０３は、デバイスドライバ１０２から送られた制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換し、通信制御部１０４に送る。また、仮想化制御部１０３は通信制御部１０４から送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１０２に送る。
【００２９】
さらに、仮想化制御部１０３は、外部デバイス３００に対するデータ送受信要求に対して、外部デバイス３００が情報処理装置１００に直接的に接続（「ローカル接続」）されている際と同様に振る舞いをシミュレートする機能（以下「仮想化制御機能」と呼ぶ）を備えている。この仮想化制御機能により、情報処理装置１００は外部デバイス３００の接続状態が、外部デバイス３００を物理的に接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
【００３０】
なお、仮想接続状態において、情報処理装置１００に仮想化制御されている外部デバイス３００を「仮想デバイス」と呼ぶ。また、外部デバイスが仮想接続状態から仮想的な接続を終了した状態を「仮想化制御の終了（仮想切断）」と呼ぶ。
【００３１】
通信制御部１０４は、仮想化制御部１０３から送られるＵＳＢデータとネットワーク（ＬＡＮおよびＷＡＮ）を介してデバイス制御装置２００と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００と情報処理装置１００の間でデータ送受信の制御を行う。また、通信制御部１０４は仮想化制御部１０３を介してアプリケーション１０１またはデバイスドライバ１０２から送られるデータ送受信要求の受信に応じて、デバイス制御装置２００とのセッション（接続）を開始し、データの送受信が完了すると、セッションを終了（切断）する。なお、情報処理装置１００とデバイス制御装置２００との間のセッションは、情報処理装置１００が仮想化制御する外部デバイス３００の数だけ生成される。
【００３２】
＜デバイス制御装置２００の構成＞
デバイス制御装置２００は、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成として、ＣＰＵ２５１、入力部２５２、表示部２５３、メモリ２５４、通信部２５５、および、記憶部２６０を備えている。
【００３３】
ＣＰＵ２５１はデバイス制御装置２００全体の制御を司る。入力部２５２は、例えば、操作ボタン、テンキーを備えている。表示部２５３として、例えば、液晶モニタが用いられる。メモリ２５４はＲＡＭおよびＲＯＭ等である。
【００３４】
通信部２５５はネットワークに接続するためのインターフェースであって、情報処理装置１００とデータ送受信を行う。
【００３５】
記憶部２６０には、ソフトウェアであるＯＳ（不図示）、通信制御部２０１、仮想化制御部２０２、デバイス制御部２０３、および電源供給制御部２０４、およびデバイス状態管理部２０５が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ２５４に読み出されて、ＣＰＵ２５１の制御に従い動作する。
【００３６】
通信制御部２０１は、ＯＳの制御に従ってネットワーク経由で接続されている情報処理装置１００との間のセッション（接続）の開始および終了を制御する。また、情報処理装置１００との間で行われる入出力データ等の送受信を制御する。
【００３７】
また、通信制御部２０１は、仮想化制御部２０２から送られるＵＳＢデータとＬＡＮおよびＷＡＮなどのネットワークを介して情報処理装置１００と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００と情報処理装置１００の間でデータ送受信の制御を行う。
【００３８】
仮想化制御部２０２は、外部デバイス３００があたかも情報処理装置１００に直接的に接続（ローカル接続）されているかのように情報処理装置１００へ認識させて制御できるようにするため、情報処理装置１００からのデータ送受信の制御要求に従って（連動して）デバイス制御部２０３の制御を行う。なお、情報処理装置１００によって外部デバイス３００の仮想化制御を開始しているときは「仮想化制御開始」とし、外部デバイス３００の仮想化制御を終了しているときは「仮想化制御終了」とする。
【００３９】
デバイス制御部２０３は、仮想化制御部２０２の制御に従い、自装置に接続された外部デバイス３００を制御する。また、外部デバイス３００の接続（プラグイン）、抜去（プラグアウト）の検知や監視を行う。
【００４０】
電源供給制御部２０４は、デバイス制御部２０３と連携して、デバイス制御装置２００に接続された外部デバイス３００のバス接続状態の監視、および、バス電源の供給（電源オン）、停止（電源オフ）を制御する。
【００４１】
デバイス状態管理部２０５は、デバイス制御装置２００に接続された外部デバイス３００に関する情報（後述するデバイス状態管理情報２０６）を認識・管理する。また、デバイス状態管理部２０５は、電源供給制御部２０４を監視し、電源供給制御部２０４におけるバス電源の供給または停止に応じて、後述するデバイス状態管理情報２０６を情報処理装置１００に送信させる。
【００４２】
＜外部デバイス３００の構成＞
外部デバイス３００は、個体識別情報３０１および通信Ｉ／Ｆ３０２を備えており、デバイス制御装置２００にＵＳＢインターフェースによって接続されている。図１では、外部デバイス３００を１台として例示しているが、これに限定したものではなく、複数台あってもよい。
【００４３】
個体識別情報３０１は、外部デバイス３００を識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
【００４４】
通信Ｉ／Ｆ３０２は、デバイス制御装置２００と通信を行うための機能部である。
【００４５】
＜デバイス状態管理情報２０６について＞
次に、情報処理装置１００が有するデバイス状態管理情報２０６について説明する。デバイス状態管理情報２０６は、デバイス制御装置２００に接続された外部デバイス３００のバス電源供給の状態を含む外部デバイス３００の情報である。
【００４６】
デバイス制御装置２００が、デバイス制御装置２００自身に接続された外部デバイス３００のバス電源の供給を停止した場合、情報処理装置１００は外部デバイス３００の状態を確認することはできない。そのため、本実施形態では、デバイス制御装置２００が、外部デバイス３００のバス電源供給の状態を含む外部デバイス３００に関する情報をデバイス状態管理情報２０６に保持(記憶)・管理する。そして、情報処理装置１００に外部デバイス３００に関する情報を通知する。
【００４７】
図２は、図１に示すデバイス状態管理情報２０６の一例を示す図である。デバイス状態管理情報２０６は、デバイス名、デバイス制御装置２００の接続ポート番号、デバイスの電源状態から構成される。
【００４８】
デバイス名は、デバイス制御装置２００に接続された外部デバイス３００の名称を示し、主にＵＳＢディスクリプタ情報から取得されるデバイス名称である。なお、ＵＳＢディスクリプタ情報から取得するだけでなく、外部デバイス３００を識別できるような情報であればよい。
【００４９】
デバイス制御装置の接続ポート番号は、デバイス制御装置２００に接続された外部デバイス３００の物理的な接続位置をバスの接続階層に従い識別する情報である。
【００５０】
電源状態は、デバイス制御装置２００に接続された外部デバイス３００に対して、デバイス制御装置２００がバスの電源を供給しているか停止しているかを示す情報である。図２の例示では、デバイスＡとデバイスＣは「給電」されており、デバイスＢは給電を「停止」されている。
【００５１】
＜第１の実施形態における電源制御シーケンス＞
図３は、図１に示すデバイス制御システムにおけるデバイス制御装置２００が外部デバイス３００に対する電源制御および仮想化制御の開始・終了を行う際の動作を説明するシーケンス図である。なお、情報処理装置１００は仮想化制御機能によりデバイス制御装置２００に接続されている外部デバイス３００に対して仮想化制御を開始している状態から説明を始める。
【００５２】
まず、ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、仮想化制御を終了させる外部デバイス３００を選択する（ステップＳ１０１）。例えば、情報処理装置１００の表示部１５３に操作画面を表示させ、ユーザ操作によって、仮想化制御の終了を要求する外部デバイス３００を選択する。
【００５３】
アプリケーション１０１は、デバイスドライバ１０２に対して外部デバイス３００への電源供給停止を含む仮想化終了要求を送信する（ステップＳ１０２）。
【００５４】
デバイスドライバ１０２は、仮想化制御部１０３に対して、ステップＳ１０２でアプリケーション１０１から送信された外部デバイス３００への電源供給停止を含む仮想化終了要求に基づいて制御コマンド（電源供給停止を含む仮想化終了命令）を生成し、送信する（ステップＳ１０３）
【００５５】
仮想化制御部１０３は、通信制御部１０４を介してデバイス制御装置２００の仮想化制御部２０２に対して電源供給停止を含む仮想化終了命令を送信する（ステップＳ１０４）。
【００５６】
仮想化制御部２０２は、ステップＳ１０４で情報処理装置１００から送信された電源供給停止を含む仮想化終了命令を受信し、デバイス制御部２０３に対して外部デバイス３００に対する電源供給停止命令を送信する（ステップＳ１０５）。
【００５７】
デバイス制御部２０３は、電源供給制御部２０４に対して外部デバイス３００の接続ポート番号を指定して電源供給停止命令を送信する（ステップＳ１０６）。
【００５８】
電源供給制御部２０４は、電源供給停止命令によって指定された接続ポート番号に対してバスの電源供給を停止する（ステップＳ１０７）。これにより、外部デバイス３００は、デバイス制御装置２００から抜去された時（物理的に接続されていない状態を「デバイス接続切断状態」と呼ぶ）と同一の状態となる。
【００５９】
電源供給制御部２０４は、ステップＳ１０７により外部デバイス３００のデバイス接続切断状態と同一の状態を検知した場合、デバイス制御部２０３に外部デバイス３００の接続切断状態および電源供給停止を通知する（ステップＳ１１１）。
【００６０】
デバイス制御部２０３は、電源供給制御部２０４から外部デバイス３００のデバイス接続切断状態および電源供給停止の通知を受信すると、仮想化制御部２０２およびデバイス状態管理部２０５に対して外部デバイス３００のデバイス接続切断状態および電源供給停止を通知する（ステップＳ１１２、ステップＳ１１３）。
【００６１】
なお、ステップＳ１１３で通知する情報は、デバイス名、接続ポート番号、およびデバイスの電源状態である。デバイス名および接続ポート番号については、外部デバイス３００から取得した情報を利用する。
【００６２】
デバイス状態管理部２０５は、ステップＳ１１３の通知情報に基づいて、デバイス状態管理情報２０６における該当の外部デバイス３００に関する情報を更新する（ステップＳ１１４）。
【００６３】
仮想化制御部２０２は、外部デバイス３００のデバイス接続切断状態および電源供給停止の通知に応じて、外部デバイス３００の仮想化制御を終了する（ステップＳ１１５）。その後、仮想化制御部２０２は、デバイス制御装置２００の通信制御部２０１を介して情報処理装置１００の仮想化制御部１０３に対して外部デバイス３００への電源供給停止を含む仮想化終了通知を送信する（ステップＳ１１６）。
【００６４】
仮想化制御部１０３は、ステップＳ１１６で送信された外部デバイス３００への電源供給停止を含む仮想化終了通知を受信し、デバイスドライバ１０２に対して外部デバイス３００の仮想化終了通知を行う（ステップＳ１１７）。
【００６５】
デバイスドライバ１０２は、アプリケーション１０１に対して外部デバイス３００の仮想化終了通知を行う（ステップＳ１１８）。このとき、情報処理装置１００は、情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識している外部デバイス３００（仮想デバイス３００）の仮想化制御の終了を検知する。
【００６６】
続いて、仮想化制御を終了した外部デバイス３００を再度、仮想化制御を行う場合について説明する。
【００６７】
ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、電源状態を確認したい外部デバイス３００を選択する（ステップＳ１２１）。
【００６８】
アプリケーション１０１は、デバイスドライバ１０２に対して外部デバイス３００の電源状態確認要求を送信する（ステップＳ１２２）。
【００６９】
デバイスドライバ１０２は、仮想化制御部１０３に対して外部デバイス３００の電源状態確認命令（制御コマンド）を送信する（ステップＳ１２３）。
【００７０】
仮想化制御部１０３は、通信制御部１０４を介してデバイス制御装置２００の仮想化制御部２０２に対して外部デバイス３００の電源状態確認命令（制御コマンド）を送信する（ステップＳ１２４）。
【００７１】
仮想化制御部２０２は、デバイス状態管理部２０５に対して外部デバイス３００の電源状態確認命令（制御コマンド）を送信する（ステップＳ１２５）。
【００７２】
デバイス状態管理部２０５は、外部デバイス３００の電源状態確認命令に応じて、デバイス状態管理情報２０６から外部デバイス３００の電源状態を抽出し、仮想化制御部２０２に対して応答（送信）する（ステップＳ１３１）。
【００７３】
仮想化制御部２０２は、デバイス状態管理部２０５から受信した外部デバイス３００の電源状態を通信制御部２０１を介して情報処理装置１００の仮想化制御部１０３に対して送信する（ステップＳ１３２）。
【００７４】
仮想化制御部１０３は、デバイス制御装置２００から受信した外部デバイス３００の電源状態をデバイスドライバ１０２に対して送信する（ステップＳ１３３）。
【００７５】
デバイスドライバ１０２は、デバイス制御装置２００から受信した外部デバイス３００の電源状態をアプリケーション１０１に送信する（ステップＳ１３４）。
【００７６】
続いて、ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、仮想化制御を行う外部デバイス３００を選択し（ステップＳ１４１）、デバイスドライバ１０２に対して電源供給開始を含む仮想化開始要求を送信する（ステップＳ１４２）。
【００７７】
デバイスドライバ１０２は、ステップＳ１０２でアプリケーション１０１から送信された電源供給開始を含む仮想化開始要求に基づいて、電源供給開始を含む仮想化開始命令を生成し、仮想化制御部１０３に送信する（ステップＳ１４３）
【００７８】
仮想化制御部１０３は、通信制御部１０４を介してデバイス制御装置２００の仮想化制御部２０２に対して電源供給開始を含む仮想化開始命令を送信する（ステップＳ１４４）。
【００７９】
仮想化制御部２０２は、ステップＳ１４４で情報処理装置１００から送信された電源供給開始を含む仮想化開始命令を受信し、デバイス制御部２０３に対して外部デバイス３００の電源供給開始命令を行う（ステップＳ１４５）。
【００８０】
デバイス制御部２０３は、電源供給開始を含む仮想化開始命令により通知されたバスの接続ポート番号を指定して電源供給開始命令を電源供給制御部２０４に送信する（ステップＳ１４６）。
【００８１】
電源供給制御部２０４は、指定された接続ポート番号に対してバスの電源供給を開始し（ステップＳ１４７）、外部デバイス３００に電源を供給する（ステップＳ１４８）。これにより、外部デバイス３００は、ＵＳＢインターフェースを介してデバイス制御装置２００に物理的に接続(挿入)された時と同一の状態となる。
【００８２】
電源供給制御部２０４は、外部デバイス３００への電源供給後に外部デバイス３００の接続を検知した場合、外部デバイス３００への電源供給開始および外部デバイス３００の物理的な接続（以下、デバイス接続通知）をデバイス制御部２０３に通知する（ステップＳ１５１）。
【００８３】
デバイス制御部２０３は、外部デバイス３００への電源供給開始および外部デバイス３００のデバイス接続通知を仮想化制御部２０２およびデバイス状態管理部２０５に通知する（ステップＳ１５２、ステップＳ１５３）。
【００８４】
なお、ステップＳ１５３で通知する情報は、デバイス名、接続ポート番号、およびデバイスの電源状態である。また、デバイス名、接続ポート番号については、外部デバイス３００から取得した情報を利用する。
【００８５】
デバイス状態管理部２０５は、ステップＳ１５３の通知に基づき、デバイス状態管理情報２０６における該当の外部デバイス３００に関する情報を更新する（ステップＳ１５４）。
【００８６】
仮想化制御部２０２は、外部デバイス３００のデバイス接続通知に応じて、外部デバイス３００の仮想化制御を開始する（ステップＳ１５５）。その後、仮想化制御部２０２は、通信制御部２０１を介して情報処理装置１００の仮想化制御部１０３に対して電源供給開始を含む仮想化開始通知を送信する（ステップＳ１５６）。
【００８７】
仮想化制御部１０３は、デバイスドライバ１０２に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ１５７）。
【００８８】
デバイスドライバ１０２は、アプリケーション１０１に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ１５８）。このとき、情報処理装置１００は、外部デバイス３００が情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識できる。
【００８９】
次に、情報処理装置１００がデバイス制御装置２００を介して外部デバイス３００を制御する場合について説明する。
【００９０】
ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、制御対象とする外部デバイス３００を選択し（ステップＳ１６１）、外部デバイス３００に対する制御要求をデバイスドライバ１０２に対して送信する（ステップＳ１６２）。
【００９１】
デバイスドライバ１０２は、ステップＳ１６２でアプリケーション１０１から送信された制御要求に基づいて、外部デバイス３００の制御命令を生成し、仮想化制御部１０３に送信する（ステップＳ１６３）。
【００９２】
仮想化制御部１０３は、デバイスドライバ１０２から送信された制御命令を受信し、デバイス制御装置２００の仮想化制御部２０２に送信する（ステップＳ１６４）。
【００９３】
仮想化制御部２０２は、仮想化制御部１０３から送信された制御命令を受信し、デバイス制御部２０３に送信する（ステップＳ１６５）。
【００９４】
デバイス制御部２０３は、仮想化制御部２０２から送信された制御命令を受信し、外部デバイス３００に送信する（ステップＳ１６６）。
【００９５】
外部デバイス３００は、デバイス制御部２０３から送信された制御命令を受信し、その制御命令に応じた制御を実行し（ステップＳ１６７）、デバイス制御部２０３に制御結果を応答する（ステップＳ１７１）。
【００９６】
デバイス制御部２０３は、外部デバイス３００の制御結果を受信し、仮想化制御部２０２に送信する（ステップＳ１７２）。
【００９７】
仮想化制御部２０２は、外部デバイス３００の制御結果を受信し、情報処理装置１００の仮想化制御部１０３に送信する（ステップＳ１７３）。
【００９８】
仮想化制御部１０３は、外部デバイス３００の制御結果を受信し、デバイスドライバ１０２に送信する（ステップＳ１７４）。
【００９９】
デバイスドライバ１０２は、外部デバイス３００の制御結果を受信し、アプリケーション１０１に送信する（ステップＳ１７５）。
【０１００】
上述のように、本発明の第１の実施形態によれば、情報処理装置１００は、外部デバイス３００の仮想化制御の終了時にデバイス制御装置２００から受信した外部デバイス３００に関する情報をデバイス制御装置２００のデバイス状態管理情報２０６から取得し、仮想化制御の再開時にデバイス制御装置２００から取得した外部デバイス３００に関する情報を参照することで、外部デバイス３００を初期状態から制御可能になる。
【０１０１】
従って、情報処理装置１００とデバイス制御装置２００との間におけるデバイス制御処理（処理シーケンス）の相違を解消し、外部デバイス３００が意図しない動作を行うことを防止できる。
【０１０２】
[第２の実施形態]
続いて、本発明の第２の実施形態によるデバイス制御システムの一例について説明する。
【０１０３】
本発明の第２の実施形態では、デバイス制御装置２００に省電制御部２１１を有することにより、デバイス制御装置２００自身が省電力モード（以下、省電モード）になった場合、デバイス制御装置２００自身の省電状態および外部デバイス３００の電源供給状態をデバイス制御装置２００のデバイス状態管理情報２０６で保持する点について説明する。
【０１０４】
なお、デバイス制御装置２００が省電モードに移行すると、情報処理装置１００は、デバイス制御装置２００の省電力状態（以下、省電状態）、および、外部デバイス３００の状態を確認することはできない。そのため、デバイス制御装置２００は、省電モードに移行する前にデバイス制御装置２００自身の状態および外部デバイス３００のバス電源供給の状態を含む外部デバイス３００に関する情報を情報処理装置１００に送信する。
【０１０５】
＜第２の実施形態のシステム構成＞
図４は、本発明の第２の実施形態によるデバイス制御システムの一例の構成を概略的に示すブロック図である。図４のデバイス制御システムは、情報処理装置１００、デバイス制御装置２００、外部デバイス３００から構成されており、図１で示したデバイス制御システムと以下の構成が異なっている。その他の接続構成や構成要素は、図１と同じであるため、図１に示す構成要素と同一の構成要素については同一の参照番号を付して説明を省略し、異なる点についてのみ説明する。
【０１０６】
図４のデバイス制御装置２００は、更に省電制御部２１１を備える。
【０１０７】
省電制御部２１１は、デバイス制御装置２００自身の省電状態への移行および省電状態からの復帰を制御する。例えば、外部デバイス３００へのバス電源の供給を停止する第１の省電モードおよび外部デバイス３００へのバス電源の供給を行う第２の省電モードを備える。また、省電モードが変化した場合に、外部デバイス３００へのバス電源供給状態も含めたデバイス制御装置２００の状態を情報処理装置１００に通知する。
【０１０８】
なお、デバイス状態管理部２０５は、電源供給制御部２０４に加えて、省電制御部２１１を監視し、省電制御部２１１における省電モードの変化に応じて、後述するデバイス状態管理情報２０６を情報処理装置１００に送信させる。
【０１０９】
＜第２の実施形態におけるデバイス状態管理情報２０６について＞
図５は図４に示すデバイス状態管理情報２０６の一例を示す図である。本実施形態のデバイス状態管理情報２０６は、第１の実施形態で説明した図２のデバイス状態管理情報２０６に対して、デバイス制御装置２００の省電状態（省電モード）を追加したものである。図５の例示では、デバイス制御装置２００がバス電源の供給を停止した状態にする第２の省電モードを示すスリープ状態であり、デバイスＡ、デバイスＢ、および、デバイスＣは電源供給を停止した状態を示している。
【０１１０】
＜第２の実施形態における仮想化接続の電源制御シーケンス＞
図６は図４に示すデバイス制御システムにおけるデバイス制御装置２００の省電制御状態を含む外部デバイス３００の制御を説明するシーケンスである。なお、情報処理装置１００は仮想化制御機能よりデバイス制御装置２００に接続されている外部デバイス３００に対して仮想化制御を開始している状態から説明を始める。
【０１１１】
まず、デバイス制御装置２００は、省電制御部２１１により省電の移行を開始する（ステップＳ２０１）。なお、これ以降は、デバイス制御装置２００が外部デバイス３００への電源供給のために、バスの電源供給を停止しない簡易的な省電（第２の省電モード）状態の場合について説明する。
【０１１２】
省電制御部２１１は、仮想化制御部２０２に対して、簡易省電移行通知を行う（ステップＳ２０２）。
【０１１３】
仮想化制御部２０２は、デバイス状態管理部２０５に対して、デバイス制御装置２００に関する状態の更新命令を行う（ステップＳ２０３）。
【０１１４】
デバイス状態管理部２０５は、ステップＳ２０３で受信したデバイス制御装置２００に関する状態の更新命令に基づいて、デバイス状態管理情報２０６における該当の外部デバイス３００およびデバイス制御装置２００に関する情報を更新する（ステップＳ２０４）。
【０１１５】
デバイス状態管理部２０５は、仮想化制御部２０２に対して、現在のデバイス制御装置２００の省電状態および外部デバイス３００への電源供給状態を含む情報の通知を行う（ステップＳ２０５）。
【０１１６】
仮想化制御部２０２は、デバイス制御装置２００の通信制御部２０１を介して、デバイス制御装置２００に関する省電状態および外部デバイス３００への電源供給状態を含む情報の通知を情報処理装置１００に行う（ステップＳ２０６）。
【０１１７】
仮想化制御部１０３は、デバイスドライバ１０２に対して、ステップＳ２０６で受信した情報を通知する（ステップＳ２０７）。
【０１１８】
デバイスドライバ１０２は、アプリケーション１０１に対して、ステップＳ２０７で受信した情報を通知する（ステップＳ２０８）。
【０１１９】
次に、デバイス制御装置２００は、簡易的な省電（第２の省電モード）移行に伴い、仮想化制御部２０２を含む自身のソフトウェアを終了させるため、仮想化制御部２０２および通信制御部２０１を介して、情報処理装置１００とのデータ送受信のために接続していたセッションの終了要求（切断要求）を送信する（ステップＳ２１１）。
【０１２０】
仮想化制御部１０３は、デバイスドライバ１０２に対して外部デバイス３００（仮想デバイス３００）のセッション終了要求を通知する（ステップＳ２１２）。
【０１２１】
デバイスドライバ１０２は、アプリケーション１０１に対して外部デバイス３００のセッション終了要求を通知する（ステップＳ２１３）。
【０１２２】
アプリケーション１０１は、デバイスドライバ１０２に対して外部デバイス３００のセッション終了要求を送信する（ステップＳ２２１）。
【０１２３】
デバイスドライバ１０２は、仮想化制御部１０３に対して外部デバイス３００のセッション終了命令を送信する（ステップＳ２２２）。
【０１２４】
仮想化制御部１０３は、デバイス制御装置２００の仮想化制御部２０２に対して外部デバイス３００のセッション終了命令を送信する（ステップＳ２２３）。その後、情報処理装置１００とデバイス制御装置２００間のセッションを終了する。なお、情報処理装置１００は、デバイス制御装置２００に接続された外部デバイス３００の仮想化制御を継続している状態である。
【０１２５】
次に、デバイス制御装置２００における簡易省電解除について説明する。
【０１２６】
情報処理装置１００は、入力部１５２を介したユーザ操作によって外部デバイス３００の接続処理（デバイス制御装置２００とのセッション接続処理）を行う（ステップＳ２３１）。このとき、例えば、情報処理装置１００の表示部１５３に操作画面を表示させ、外部デバイス３００を選択させる。
【０１２７】
アプリケーション１０１は、デバイスドライバ１０２に対してセッション開始要求を送信する（ステップＳ２３２）。
【０１２８】
デバイスドライバ１０２は、ステップＳ２３２でアプリケーション１０１から送信されたセッション開始要求に基づいて、セッション開始命令を生成し、仮想化制御部１０３に送信する（ステップＳ２３３）。
【０１２９】
仮想化制御部１０３は、情報処理装置１００の通信制御部１０４を介してデバイス制御装置２００の仮想化制御部２０２に対してセッション開始命令を送信する（ステップＳ２３４）。その後、情報処理装置１００とデバイス制御装置２００間のセッションの接続を開始する。
【０１３０】
仮想化制御部２０２は、情報処理装置１００とデバイス制御装置２００間のセッション開始に伴い、セッション開始通知を省電制御部２１１に通知する（ステップＳ２３５）。
【０１３１】
省電制御部２１１は、情報処理装置１００とデバイス制御装置２００間のセッションの開始に伴い簡易省電状態を解除し、通常状態に復帰する（ステップＳ２３６）。
【０１３２】
省電制御部２１１は、デバイス状態管理部２０５に対して、簡易省電状態を解除し、通常状態に復帰した旨を通知する（ステップＳ２３７）。
【０１３３】
デバイス状態管理部２０５は、ステップＳ２３７で受信した情報（簡易省電状態を解除し、通常状態に復帰した旨）に基づいて、デバイス状態管理情報２０６における該当の外部デバイス３００およびデバイス制御装置２００に関する情報を更新する（ステップＳ２３８）。
【０１３４】
デバイス状態管理部２０５は、仮想化制御部２０２に対して、現在のデバイス制御装置２００の省電状態および外部デバイス３００への電源供給状態を含む情報（ステップＳ２３８で更新した情報）の通知を行う（ステップＳ２４１）。
【０１３５】
仮想化制御部２０２は、デバイス制御装置２００の通信制御部２０１を介して、デバイス制御装置２００に関する省電状態、外部デバイス３００への電源供給状態を含む情報の通知およびセッション開始の通知を情報処理装置１００に行う（ステップＳ２４２）。
【０１３６】
仮想化制御部１０３は、デバイスドライバ１０２に対して、ステップＳ２４２で受信した情報（デバイス制御装置２００に関する省電状態、外部デバイス３００への電源供給状態を含む情報およびセッション開始）を通知する（ステップＳ２４３）。
【０１３７】
デバイスドライバ１０２は、アプリケーション１０１に対して、ステップＳ２４３で受信した情報（デバイス制御装置２００に関する省電状態、外部デバイス３００への電源供給状態を含む情報およびセッション開始）を通知する（ステップＳ２４４）。情報処理装置１００とデバイス制御装置２００は、セッションを接続する。その後、情報処理装置１００は、デバイス制御装置２００を介して外部デバイス３００とデータ送受信を行う。
【０１３８】
これ以降は、外部デバイス３００のリセットを行うための処理について説明する。なお、外部デバイス３００のリセットとは、外部デバイス３００への電源供給を停止し、再度、外部デバイス３００への電源供給を行い、外部デバイス３００を初期状態に戻すことである。
【０１３９】
デバイス制御装置２００は、デバイス制御装置２００に接続された外部デバイス３００の電源供給状態が給電中である場合、外部デバイス３００の物理的なリセットができない。
【０１４０】
そのため、デバイス制御装置２００に接続されていて、電源供給を停止しようとする外部デバイス３００に対して、情報処理装置１００から電源供給停止を含む仮想化制御終了の処理および電源供給開始を含む仮想化制御開始の処理を行い、外部デバイス３００のリセットを行う。なお、ステップＳ２５１〜ステップＳ２６８の処理（情報処理装置１００からデバイス制御装置２００の電源供給停止を含む仮想化制御終了の処理）は、上述した第１の実施形態のステップＳ１０１〜ステップＳ１１８の処理と同様のため、説明を省略する。
【０１４１】
続いて、ステップＳ２７１〜ステップＳ２８８の処理（情報処理装置１００からデバイス制御装置２００の電源供給開始を含む仮想化制御開始の処理）は、上述した第１の実施形態のステップＳ１４１〜ステップＳ１５８の処理と同様のため、説明を省略する。
【０１４２】
さらに、ステップＳ２９１〜ステップＳ３０６の処理（情報処理装置１００がデバイス制御装置２００を介して外部デバイス３００を制御する場合の処理）は、上述した第１の実施形態のステップＳ１６１〜ステップＳ１７５の処理と同様のため、説明を省略する。
【０１４３】
上述のように、本発明の第２の実施形態によれば、デバイス制御装置２００に省電制御機能を有し、外部デバイス３００およびデバイス制御装置２００に関するデバイス状態管理情報２０６を管理し、外部デバイス３００に対してバス電源供給した状態で省電モードに移行した場合でも、デバイス制御装置２００に接続されていて、電源供給を停止しようとする外部デバイス３００に対して、電源供給停止を含む仮想化終了命令、および電源供給開始を含む仮想化開始命令により、外部デバイス３００の物理的なリセットを行うことが可能となる。
【０１４４】
これにより、情報処理装置１００の仮想化制御の開始のタイミングでデバイス制御装置２００に接続された外部デバイス３００を初期状態から制御することが可能となる。
【０１４５】
[第３の実施形態]
続いて、本発明の第３の実施形態によるデバイス制御システムの一例について説明する。
【０１４６】
本発明の第３の実施形態では、第２の実施形態で説明した図４に示すデバイス制御装置２００に移譲部２２０を更に有することにより、デバイス制御装置２００自身が省電モードになった場合、デバイス制御装置２００自身が管理するデバイス状態管理情報２０６を代理応答する他のデバイス制御装置２００（以下、「代替デバイス制御装置２９０」と呼ぶ）に移譲する。このデバイス状態管理情報２０６の移譲により、デバイス制御装置２００が省電モードであっても、情報処理装置１００からの外部デバイス３００の検索に対して、代替デバイス制御装置２９０によって代理応答できる点について説明する。
【０１４７】
＜第３の実施形態のシステム構成＞
図７は、本発明の第３の実施形態によるデバイス制御システムの一例の構成を概略的に示すブロック図である。図７のデバイス制御システムは、情報処理装置１００、デバイス制御装置２００、外部デバイス３００から構成されており、図４で示したデバイス制御システムと以下の構成が異なっている。その他の接続構成や構成要素は、図４と同じであるため、図４に示す構成要素と同一の構成要素については同一の参照番号を付して説明を省略し、異なる点について説明する。なお、代替デバイス制御装置２９０もデバイス制御装置２００と同様の構成を有しているものとして説明する。
【０１４８】
図７のデバイス制御装置２００は、更に移譲部２２０を備える。
【０１４９】
移譲部２２０は、デバイス状態通知部２２１と代替選定部２２２を備え、デバイス制御装置２００が省電状態のときに、デバイス制御装置２００自身のデバイス状態管理情報２０６を他のデバイス制御装置２００に移譲する。
【０１５０】
デバイス状態通知部２２１は、移譲部２２０の制御に従い、通信制御部２０１を介して他のデバイス制御装置２００に対して代替検索、移譲開始、移譲解除を制御する。
【０１５１】
代替検索とは、デバイス制御装置２００が省電モードの状態に移行する前に、代替デバイス制御装置２９０の候補となる他のデバイス制御装置２００を検索することである。
【０１５２】
移譲開始とは、省電モードの状態に移行するデバイス制御装置２００が、代替検索によって検索・選定した代替デバイス制御装置２９０に対して、デバイス制御装置２００自身が管理するデバイス状態管理情報２０６を移譲することである。なお、代替デバイス制御装置２９０は、デバイス制御装置２００からデバイス状態管理情報２０６を移譲された場合、移譲されたデバイス状態管理情報を移譲部２２０のデバイス状態通知部２２１で管理し、代替応答機能により、情報処理装置１００からの外部デバイス３００の検索要求に対して、代理応答する。一方、デバイス状態管理情報２０６を移譲したデバイス制御装置２００は、情報処理装置１００からの外部デバイス３００の検索に対して、応答できない。
【０１５３】
移譲解除とは、代替デバイス制御装置２９０の代替応答機能を解除し、移譲先の代替デバイス制御装置２９０が管理する移譲元のデバイス状態管理情報２０６を移譲元のデバイス制御装置２００に返送することである。なお、移譲解除において、移譲先の代替デバイス制御装置２９０が管理する移譲元のデバイス状態管理情報２０６を返送せず、破棄（削除）してもよいし、無効化してもよい（移譲元のデバイス状態管理情報２０６を記憶・管理はするが、検索させない）。また、代替デバイス制御装置２９０の代替応答機能を解除した後は、情報処理装置１００からの外部デバイス３００の検索要求に基づく、デバイス状態通知部２２１で管理している他のデバイス制御装置２００から移譲されたデバイス状態管理情報の検索や代理応答を行わない。
【０１５４】
代替選定部２２２は、デバイス状態通知部２２１と連携して、代替検索の結果をもとに代替となる他のデバイス制御装置２００（代替デバイス制御装置２９０）の選定を行う。
なお、代替選定の方法として、以下の４つの代替選定モードを備える。
（１）：デバイス制御装置２００（デバイス制御装置Ａ）の代替検索に応じて、他のデバイス制御装置２００（例えば、他のデバイス制御装置としてデバイス制御装置Ｂ〜デバイス制御装置Ｆがある場合）の中で一番早く応答を返したデバイス制御装置２００を代替デバイス制御装置２９０として選定する（以下、「応答順優先モード」と呼ぶ）。
（２）：他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープ機能を搭載しないデバイス制御装置２００、またはスリープ機能がＯＦＦのデバイス制御装置２００を代替デバイス制御装置２９０として選定する（以下、「スリープオフ優先モード」と呼ぶ）。
（３）：他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープ機能は搭載しているが、通信部２５５がスリープ移行しない（通信部２５５のスリープ機能ＯＦＦの）デバイス制御装置２００を代替デバイス制御装置２９０として選定する（以下、「通信部スリープオフ優先モード」と呼ぶ）。
（４）：スリープまでの時間が最も長いデバイス制御装置２００を代替デバイス制御装置として選定する（以下、「スリープ時間選択優先モード」と呼ぶ）。
【０１５５】
なお、上記４つのモードをユーザが選択して設定してもよい。
【０１５６】
図８は図７に示すデバイス状態管理情報２０６の一例を示す図である。本実施形態のデバイス状態管理情報２０６は、第２の実施形態で説明した図６のデバイス状態管理情報２０６に対して、デバイス制御装置自身のデバイス制御装置名、ＩＰアドレスを追加したものである。図８で示す情報は、後述する代替デバイス制御装置２９０（代替となるデバイス制御装置２００）への移譲データ（移譲元となるデバイス制御装置２００のデバイス状態管理情報２０６）として送信する。
【０１５７】
図９は、デバイス状態通知部２２１によって管理している代替検索結果管理情報（代替デバイス制御装置２９０の選定に必要な情報）の一例を示す図である。代替検索結果管理情報は、デバイス制御装置名、応答順、デバイス制御装置２００のスリープ機能搭載の有無、デバイス制御装置２００の通信部２５５におけるスリープ機能の状態、スリープまでの時間から構成される。
【０１５８】
デバイス制御装置名は、デバイス制御装置２００の名称を示す。なお、デバイス制御装置２００をを識別できるような情報であればよい。
【０１５９】
応答順は、デバイス制御装置２００（例：デバイス制御装置Ａ）が他のデバイス制御装置２００（例：デバイス制御装置Ｂ〜デバイス制御装置Ｆ）に対して代替検索を行った際に、代替検索に対する応答を返した順番を示す情報である。なお、優先順位を示す情報でもよいし、応答を返した時間であってもよい。
【０１６０】
スリープ機能は、デバイス制御装置２００のスリープ機能に関する情報である。図９の例示では、デバイス制御装置Ｂ〜デバイス制御装置Ｄは、スリープ機能が「ＯＮ」であることを示す。デバイス制御装置Ｅは、スリープ機能が「ＯＦＦ」であることを示す。デバイス制御装置Ｆは、スリープ機能が搭載されていないことを示す。
【０１６１】
通信部スリープ機能は、デバイス制御装置２００における通信部１５５のスリープ機能に関する情報である。図９の例示では、デバイス制御装置Ｂとデバイス制御装置Ｄは、通信部スリープ機能が「ＯＮ」であることを示す。デバイス制御装置Ｃは、通信部スリープ機能が「ＯＦＦ」であることを示す。デバイス制御装置Ｅとデバイス制御装置Ｆは、通信部スリープ機能が搭載されていないことを示す。
【０１６２】
スリープまでの時間は、デバイス制御装置２００におけるスリープまでの時間に関する情報である。図９の例示では、デバイス制御装置Ｂは３５分、デバイス制御装置Ｄは１５分をそれぞれ示す。また、デバイス制御装置Ｃ、デバイス制御装置Ｅ、および、デバイス制御装置Ｆは、スリープまでの時間が設定されていないことを示す。
【０１６３】
＜第３の実施形態における代替選定処理のフローチャート＞
図１０は、デバイス制御装置２００における代替デバイス制御装置２９０の選定の一例を示すフローチャートである。
【０１６４】
なお、デバイス制御装置Ａ２００Ａが省電状態に移行する場合、他のデバイス制御装置２００（デバイス制御装置Ｂ２００Ｂ〜デバイス制御装置Ｆ２００Ｆ）の中から代替デバイス制御装置２９０を選定する処理について説明する。なお、デバイス制御装置Ａ２００Ａが他のデバイス制御装置２００に対して、代替検索を行い、デバイス状態通知部２２１Ａが、代替検索の応答結果（図９に示す代替検索結果管理情報）を代替選定部２２２Ａに通知している状態から説明を始める。
【０１６５】
デバイス制御装置２００Ａの代替選定部２２２Ａは、デバイス状態通知部２２１Ａから他のデバイス制御装置２００の代替検索応答結果（代替デバイス制御装置２９０の候補）を受信する（ステップＳ３０１）。
【０１６６】
代替選定部２２２Ａは、ステップＳ３０１で受信した代替検索応答結果から代替デバイス制御装置２９０として選択できるデバイス制御装置２００が存在するか判断する（ステップＳ３０２）。
【０１６７】
ステップＳ３０２において、代替選定部２２２Ａは、ステップＳ３０１で受信した代替検索応答結果から代替デバイス制御装置２９０として選択できるデバイス制御装置２００が存在しない場合（ステップＳ３０２でＮｏ）、本制御フローを終了する。
【０１６８】
ステップＳ３０２において、代替選定部２２２Ａは、ステップＳ３０１で受信した代替検索応答結果から代替デバイス制御装置２９０として選択できるデバイス制御装置２００が存在すると判断した場合（ステップＳ３０２でＹｅｓ）、代替選定モードを選択する（ステップＳ３０３）。なお、ステップＳ３０３において、複数の代替選定モードを選択してもよい。例えば、応答順優先モード、スリープオフ優先モード、通信部スリープオフ優先モード、スリープ時間選択優先モードの順に選択することもでき、選択されたモードに応じて、代替選定モードに合致するデバイス制御装置２００を選定する。
【０１６９】
代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に代替検索応答結果に基づく応答順優先モードであるか判断する（ステップＳ３０４）。
【０１７０】
代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に応答順優先モードであると判断した場合（ステップＳ３０４でＹｅｓ）、代替検索結果管理情報を参照し、デバイス制御装置２００の中で一番早く応答を返したデバイス制御装置２００を代替デバイス制御装置２９０として選定する（ステップＳ３０５）。その後、ステップＳ３４０に進む。
【０１７１】
一方、ステップＳ３０４において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に検索応答結果の応答順優先モードでないと判断した場合（ステップＳ３０４でＮｏ）、ステップＳ３１０に進む。
【０１７２】
次に、ステップＳ３１０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープオフ優先モードであるか判断する（ステップＳ３１０）。
【０１７３】
代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープオフ優先モードであると判断した場合（ステップＳ３１０でＹｅｓ）、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープ機能を搭載しないデバイス制御装置２００、またはスリープ機能がＯＦＦのデバイス制御装置２００が存在するか判断する（ステップＳ３１１）。
【０１７４】
代替選定部２２２Ａは、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープ機能を搭載しないデバイス制御装置２００、またはスリープ機能がＯＦＦのデバイス制御装置２００が存在すると判断した場合（ステップＳ３１１でＹｅｓ）、該当するデバイス制御装置２００の中から代替デバイス制御装置２９０として選定する（ステップＳ３１２）。その後、ステップＳ３４０に進む。なお、スリープオフ優先モードの条件に合致するデバイス制御装置２００が複数ある場合は、その他の条件を含めて、所望のデバイス制御装置２００を１台を代替デバイス制御装置２９０に選定してもよいし、複数のデバイス制御装置２００を代替デバイス制御装置２９０に選定してもよい。
【０１７５】
一方、ステップＳ３１１において、代替選定部２２２Ａは、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープ機能を搭載しないデバイス制御装置２００、またはスリープ機能がＯＦＦのデバイス制御装置２００が存在しないと判断した場合（ステップＳ３１１でＮｏ）、ステップＳ３０３に戻る。
【０１７６】
また、ステップＳ３１０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープオフ優先モードでないと判断した場合（ステップＳ３１０でＮｏ）、ステップＳ３２０に進む。
【０１７７】
次に、ステップＳ３２０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に通信部スリープオフ優先モードであるか判断する（ステップＳ３２０）。
【０１７８】
代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に通信部スリープオフ優先モードであると判断した場合（ステップＳ３２０でＹｅｓ）、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中で通信部２５５におけるスリープＯＦＦ（スリープ移行しない）のデバイス制御装置２００があるか判断する（ステップＳ３２１）
【０１７９】
代替選定部２２２Ａは、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中で通信部２５５におけるスリープＯＦＦ（スリープ移行しない）のデバイス制御装置２００があると判断した場合（ステップＳ３２１でＹｅｓ）、該当するデバイス制御装置２００の中から代替デバイス制御装置２９０として選定する（ステップＳ３２２）。その後、ステップＳ３４０に進む。なお、通信部スリープオフ優先モードの条件に合致するデバイス制御装置２００が複数ある場合は、その他の条件を含めて、所望のデバイス制御装置２００を１台を代替デバイス制御装置２９０に選定してもよいし、複数のデバイス制御装置２００を代替デバイス制御装置２９０に選定してもよい。
【０１８０】
一方、ステップＳ３２１において、代替選定部２２２Ａは、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中で通信部２５５におけるスリープＯＦＦ（スリープ移行しない）のデバイス制御装置２００が存在しないと判断した場合（ステップＳ３２１でＮｏ）、ステップＳ３０３に戻る。
【０１８１】
また、ステップＳ３２０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際に通信部スリープオフ優先モードでないと判断した場合（ステップＳ３２０でＮｏ）、ステップＳ３３０に進む。
【０１８２】
次に、ステップＳ３３０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープ時間選択優先モードであるか判断する（ステップＳ３３０）。
【０１８３】
ステップＳ３３０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープ時間選択優先モードであると判断した場合（ステップＳ３３０でＹｅｓ）、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープまでの時間について設定されているデバイス制御装置２００があるか判断する（ステップＳ３２１）
【０１８４】
代替選定部２２２Ａは、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープまでの時間について設定されているデバイス制御装置２００があると判断した場合（ステップＳ３３１でＹｅｓ）、代替検索結果管理情報を参照し、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープまでの時間が最も長いデバイス制御装置２００を代替デバイス制御装置として選定する。その後、ステップＳ３４０に進む。なお、スリープオフ優先モードの条件に合致するデバイス制御装置２００が複数ある場合（スリープまでの時間が最も長いデバイス制御装置２００が複数ある場合）は、その他の条件を含めて、所望のデバイス制御装置２００を１台を代替デバイス制御装置２９０に選定してもよいし、複数のデバイス制御装置２００を代替デバイス制御装置２９０に選定してもよい。
【０１８５】
一方、ステップＳ３３１において、代替選定部２２２Ａは、他のデバイス制御装置２００（デバイス制御装置Ｂ〜デバイス制御装置Ｆ）の中でスリープまでの時間について設定されているデバイス制御装置２００が存在しない判断した場合（ステップＳ３３１でＮｏ）、ステップＳ３０３に戻る。
【０１８６】
また、ステップＳ３３０において、代替選定部２２２Ａは、代替デバイス制御装置２９０の選定を行う際にスリープ時間選択優先モードでないと判断した場合（ステップＳ３３０でＮｏ）、ステップＳ３０３に戻る。
【０１８７】
代替選定部２２２Ａは、ステップＳ３０５、ステップＳ３１２、ステップＳ３２２、ステップＳ３３２によって選定された代替デバイス制御装置２９０に対して、代替デバイス制御装置２９０として選定されたことを示す代替採用通知を送信する（ステップＳ３４０）。なお、代替選定部２２２Ａは上述の処理によって選定されたデバイス制御装置２００に代替採用通知を送付した後、代替採用通知を送付したデバイス制御装置２００に代替採用を拒否された場合は、ステップＳ３０３に戻り、代替選定処理を再度行う。
【０１８８】
デバイス状態通知部２２１Ａは、代替選定部２２２Ａによって代替採用通知を送信した代替デバイス制御装置２９０に対して、移譲データ（デバイス制御装置２００Ａのデバイス状態管理情報２０６）を送信する（ステップＳ３４１）。その後、本制御フローを終了する。
【０１８９】
なお、代替選定部２２２Ａは、ステップＳ３４０において、代替採用通知を送信後、ステップ３４１において、移譲データ（デバイス制御装置２００Ａのデバイス状態管理情報２０６）を送信すると説明したが、ステップＳ３０５、ステップＳ３１２、ステップＳ３２２、ステップＳ３３２のいずれかで選定したデバイス制御装置２００に対して、代替採用通知を送信せずに移譲データを送信してもよい。
【０１９０】
また、上述した図９に示すフローチャートにおける代替デバイス制御装置２９０の選定方法は、「応答順優先モード」、「スリープオフ優先モード」、「通信部スリープオフ優先モード」、「スリープ時間選択優先モード」の順で判断を行う場合について説明したが、判断を行う順番はこれに限定されず、任意の順番でもよい。また、４つのモードを順番に判断する例示を説明したが、１つ以上のモードを任意に選択して、その選択したモードを任意の順番で判断するようにしてもよい。
【０１９１】
さらに、デバイス制御装置Ａ２００Ａが省電状態に移行する場合、代替デバイス制御装置２９０を選定すると説明したが、ユーザが情報処理装置１００の入力部１５２と表示部１５３、または、デバイス制御装置２００の入力部２５２と表示部２５３を介して、予め代替デバイス制御装置２９０を選定しておいてもよい。
【０１９２】
上述したステップＳ３０１〜ステップＳ３４１の処理により、デバイス制御装置Ａ２００Ａは、省電状態に移行する場合、代替選定部２２２Ａによって他のデバイス制御装置２００（デバイス制御装置Ｂ２００Ｂ〜デバイス制御装置Ｆ２００Ｆ）の中から代替デバイス制御装置２９０を選定し、移譲データ（デバイス制御装置２００Ａのデバイス状態管理情報２０６）を送信する。その後、代替デバイス制御装置２９０は、デバイス制御装置２００Ａから受信した移譲データ（デバイス制御装置２００Ａのデバイス状態管理情報２０６）に基づいて、情報処理装置１００からの外部デバイス３００の検索要求に対する応答（デバイス制御装置Ａ２００Ａの代理応答）が可能になる。
【０１９３】
＜第３の実施形態における仮想化接続の電源制御および代理応答シーケンス＞
図１１は図７に示すデバイス制御システムにおけるデバイス制御装置Ａ２００Ａからデバイス制御装置Ｂ２００Ｂに移譲データを送信し、デバイス制御装置Ｂ２００Ｂが代替デバイス制御装置２９０として情報処理装置１００からの検索要求に応答する一例を説明するシーケンス図である。なお、図１１では、情報処理装置１００、デバイス制御装置Ａ２００Ａ、デバイス制御装置Ｂ２００Ｂ、デバイス制御装置Ｃ２００Ｃの３台のデバイス制御装置、デバイス制御装置Ａ２００Ａに外部デバイスＡ３００Ａ、デバイス制御装置Ｂ２００Ｂに外部デバイスＢ３００Ｂ（不図示）、デバイス制御装置Ｃ２００Ｃに外部デバイスＣ３００Ｃ（不図示）がそれぞれ接続され、代替選定の方法として、応答順優先モードが選択され、デバイス制御装置Ａ２００Ａが一番早く応答を返したデバイス制御装置Ｂ２００Ｂを代替デバイス制御装置２９０として選択する場合について説明する。また、情報処理装置１００は、外部デバイスＡ３００Ａ、外部デバイスＢ３００Ｂ、および、外部デバイスＣ３００Ｃを仮想化制御しているものとして説明する。
【０１９４】
ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、外部デバイス３００（仮想デバイス３００）を選択し（ステップＳ４０１）、外部デバイス３００の検索要求をデバイスドライバ１０２に対して送信する（ステップＳ４０２）。
【０１９５】
デバイスドライバ１０２は、ステップＳ４０２でアプリケーション１０１から送信された外部デバイス３００の検索要求に基づいて、外部デバイス３００の検索命令を生成し、仮想化制御部１０３に送信する（ステップＳ４０３）。
【０１９６】
仮想化制御部１０３は、通信制御部１０４を介して各デバイス制御装置２００（デバイス制御装置Ａ２００Ａ〜デバイス制御装置Ｃ２００Ｃ）に対して外部デバイス３００の検索命令を送信する（ステップＳ４０４、ステップＳ４０５、ステップＳ４０６）。
【０１９７】
各デバイス制御装置２００の仮想化制御部２０２は、外部デバイス３００の検索命令をデバイス状態管理部２０５に対して送信する（ステップＳ４０７、ステップＳ４０８、ステップＳ４０９）。
【０１９８】
各デバイス制御装置２００のデバイス状態管理部２０５は、外部デバイス３００（仮想デバイス３００）に関する応答情報を仮想化制御部２０２に送信する（ステップＳ４１１）。
【０１９９】
各デバイス制御装置２００の仮想化制御部２０２は、情報処理装置１００に対して、デバイス状態管理部２０５から受信した外部デバイス３００に関する応答情報を送信する（ステップＳ４１２）。
【０２００】
仮想化制御部１０３は、デバイス制御装置２００から受信した外部デバイス３００に関する情報をデバイスドライバ１０２に対して送信する（ステップＳ４１３）。
【０２０１】
デバイスドライバ１０２は、仮想化制御部１０３から受信した外部デバイス３００に関する情報をアプリケーション１０１に送信する（ステップＳ４１４）。なお、デバイス制御装置Ｂ２００Ｂおよびデバイス制御装置Ｃ２００Ｃは、デバイス制御装置Ａ２００Ａが行うステップＳ４１１〜ステップＳ４１４の処理を同様に行うため、図示および説明を省略する。
【０２０２】
デバイス制御装置Ａ２００Ａは、省電制御部２１１Ａにより省電モードの移行を開始する（ステップＳ４２１）。なお、これ以降は、デバイス制御装置２００が外部デバイスＡ３００Ａへの電源供給のために、バスの電源供給を停止しない簡易的な省電（第２の省電モード）状態の場合について説明する。
【０２０３】
省電制御部２１１Ａは、仮想化制御部２０２Ａに対して、簡易省電移行通知を行う（ステップＳ４２２）。
【０２０４】
仮想化制御部２０２Ａは、デバイス状態管理部２０５Ａに対して、デバイス制御装置Ａ２００Ａに関する状態の更新命令を行う（ステップＳ４２３）。
【０２０５】
デバイス状態管理部２０５Ａは、ステップＳ４２３で受信したデバイス制御装置Ａ２００Ａに関する状態の更新命令に基づいて、デバイス状態管理情報２０６Ａにおける該当の外部デバイス３００およびデバイス制御装置Ａ２００Ａに関する情報を更新し（ステップＳ４２４）、仮想化制御部２０２Ａに通知する（ステップＳ４２５）。
【０２０６】
仮想化制御部２０２Ａは、デバイス制御装置Ａ２００Ａの通信制御部２０１Ａを介して、デバイス制御装置Ａ２００Ａに関する省電状態および外部デバイスＡ３００Ａへの電源供給状態を含む情報の通知を情報処理装置１００に行う（ステップＳ４２６）。
【０２０７】
仮想化制御部１０３Ａは、デバイスドライバ１０２Ａに対して、ステップＳ４２６で受信した情報を通知する（ステップＳ４２７）。
【０２０８】
デバイスドライバ１０２Ａは、アプリケーション１０１Ａに対して、ステップＳ４２７で受信した情報を通知する（ステップＳ４２８）。
【０２０９】
次に、デバイス制御装置Ａ２００Ａは、他のデバイス制御装置２００から代替デバイス制御装置の選定することについて説明する。デバイス制御装置Ａ２００Ａのデバイス状態通知部２２１Ａは、他のデバイス制御装置２００（デバイス制御装置Ｂ２００Ｂおよびデバイス制御装置Ｃ２００Ｃ）に対して代替検索要求を送信する（ステップＳ４３１、ステップＳ４３２）。
【０２１０】
デバイス制御装置Ｂ２００Ｂおよびデバイス制御装置Ｃ２００Ｃは、デバイス制御装置Ａ２００Ａからの代替検索要求を受けて、代替検索応答をデバイス制御装置Ａ２００Ａに送信する（ステップＳ４３３、ステップＳ４３４）。なお、デバイス制御装置Ａ２００Ａは、代替検索応答をデバイス制御装置Ｂ２００Ｂ、デバイス制御装置Ｃ２００Ｃの順で受信したものとして説明する。
【０２１１】
デバイス状態通知部２２１Ａは、デバイス制御装置Ｂ２００Ｂおよびデバイス制御装置Ｃ２００Ｃから受信した代替検索応答結果を代替選定部２２２Ａに送信する（ステップＳ４３５）。
【０２１２】
代替選定部２２２Ａは、デバイス制御装置Ｂ２００Ｂおよびデバイス制御装置Ｃ２００Ｃから受信した代替検索応答結果に応じて、代替選定処理としてデバイス制御装置Ｂ２００Ｂを代替デバイス制御装置２９０として選定し（ステップＳ４３６）、代替採用通知をデバイス制御装置Ｂ２００Ｂに送信する（ステップＳ４３７）。
【０２１３】
デバイス状態通知部２２１Ａは、デバイス制御装置Ｂ２００Ｂ（代替デバイス制御装置２９０）に送信する移譲データ（デバイス制御装置Ａ２００Ａおよび外部デバイス３００に関する情報）の取得要求をデバイス状態管理部２０５Ａに送信する（ステップＳ４４１）。
【０２１４】
デバイス状態管理部２０５Ａは、デバイス状態通知部２２１Ａからの移譲データの取得要求に応じて、移譲データをデバイス状態通知部２２１Ａに送信する（ステップＳ４４２）。
【０２１５】
デバイス状態通知部２２１Ａは、ステップＳ４４２でデバイス状態管理部２０５Ａから取得した移譲データをデバイス制御装置Ｂ２００Ｂ（代替デバイス制御装置２９０）に送信する（ステップＳ４４３）。
【０２１６】
デバイス制御装置Ｂ２００Ｂの移譲部２２０Ｂは、ステップＳ４４３でデバイス制御装置Ａ２００Ａから送信された移譲データを受信し、移譲データを記憶する（ステップＳ４４４）。なお、デバイス制御装置Ｂ２００Ｂは、デバイス制御装置Ａ２００Ａから受信した移譲データをデバイス状態管理部２０５Ｂで記憶してもよい。
【０２１７】
移譲部２２０Ｂは、デバイス制御装置Ａ２００Ａに移譲完了通知を送信する（ステップＳ４４５）。
【０２１８】
次に、情報処理装置１００は、再度、外部デバイス３００の検索要求を送信することについて説明する。
【０２１９】
ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、外部デバイス３００を選択し（ステップＳ４５１）、外部デバイス３００の検索要求をデバイスドライバ１０２に対して送信する（ステップＳ４５２）。
【０２２０】
デバイスドライバ１０２は、ステップＳ４５２でアプリケーション１０１から送信された外部デバイス３００の検索要求に基づいて、外部デバイス３００の検索命令を生成し、仮想化制御部１０３に送信する（ステップＳ４５３）。
【０２２１】
仮想化制御部１０３は、通信制御部１０４を介して各デバイス制御装置２００に対して外部デバイス３００の検索命令を送信する（ステップＳ４５４、ステップＳ４５５、ステップＳ４５６）。
【０２２２】
各デバイス制御装置２００の仮想化制御部２０２は、外部デバイス３００の検索命令をデバイス状態管理部２０５に対して送信する（ステップＳ４５７、ステップＳ４５８、ステップＳ４５９）。
【０２２３】
デバイス制御装置Ｂ２００Ｂの移譲部２２０Ｂは、デバイス制御装置Ａ２００Ａおよび外部デバイスＡ３００Ａに関する情報（代替応答情報）を仮想化制御部２０２Ｂおよび通信制御部２０１Ｂを介して情報処理装置１００に代理応答する（ステップＳ４６１、ステップＳ４６２）。
【０２２４】
仮想化制御部１０３は、デバイス制御装置Ｂ２００Ｂから受信したデバイス制御装置Ａ２００Ａおよび外部デバイスＡ３００Ａに関する情報をデバイスドライバ１０２に送信する（ステップＳ４６３）。
【０２２５】
デバイスドライバ１０２は、仮想化制御部１０３から受信したデバイス制御装置Ａ２００Ａおよび外部デバイスＡ３００Ａに関する情報をアプリケーション１０１に送信する（ステップＳ４６４）。
【０２２６】
デバイス制御装置Ｂ２００Ｂのデバイス状態管理部２０５Ｂは、デバイス制御装置Ｂ２００Ｂおよび外部デバイスＢ３００Ｂに関する情報（デバイス情報）を仮想化制御部２０２Ｂおよび通信制御部２０１Ｂを介して情報処理装置１００に応答する（ステップＳ４７１、ステップＳ４７２）。
【０２２７】
仮想化制御部１０３は、デバイス制御装置Ｂ２００Ｂから受信したデバイス制御装置Ｂ２００Ｂおよび外部デバイスＢ３００Ｂに関する情報をデバイスドライバ１０２に送信する（ステップＳ４７３）。
【０２２８】
デバイスドライバ１０２は、仮想化制御部１０３から受信したデバイス制御装置Ｂ２００Ｂおよび外部デバイスＢ３００Ｂに関する情報をアプリケーション１０１に送信する（ステップＳ４７４）。
【０２２９】
なお、デバイス制御装置Ｂ２００Ｂは、デバイス制御装置Ａ２００Ａおよび外部デバイスＡ３００Ａに関する情報（ステップＳ４６１〜ステップＳ４６４の処理）とデバイス制御装置Ｂ２００Ｂおよび外部デバイスＢ３００Ｂに関する情報（ステップＳ４７１〜ステップＳ４７４の処理）を併せて、情報処理装置１００に送信するようにしてもよい。また、図示は省略しているが、デバイス制御装置Ｃ２００Ｃは、デバイス制御装置Ｂ２００Ｂと同様に（ステップＳ４７１〜ステップＳ４７４の処理と同様に）デバイス制御装置Ｃ２００Ｃおよび外部デバイスＣ３００Ｃに関する情報を情報処理装置１００に送信する。
【０２３０】
次に、情報処理装置１００は、デバイス制御装置Ａ２００Ａのスリープ解除を行うことについて説明する。
【０２３１】
ユーザによる入力部１５２を介した操作により、アプリケーション１０１は、簡易的な省電（第２の省電モード）状態から復帰させたいデバイス制御装置Ａ２００Ａを選択し（ステップＳ４８１）、デバイス制御装置Ａ２００Ａのスリープ復帰要求をデバイスドライバ１０２に対して送信する（ステップＳ４８２）。なお、ステップＳ４８１において、アプリケーション１０１は、デバイス制御装置Ａ２００Ａに接続された外部デバイスＡ３００Ａを選択して、ステップＳ４８２において、Ｓ４８１で選択された外部デバイスＡ３００Ａが接続されているデバイス制御装置Ａ２００Ａに対するスリープ復帰要求をデバイスドライバ１０２に対して送信するようにしてもよい。
【０２３２】
デバイスドライバ１０２は、ステップＳ４８２でアプリケーション１０１から送信されたデバイス制御装置Ａ２００Ａのスリープ復帰要求に基づいて、デバイス制御装置Ａ２００Ａの簡易省電状態解除（スリープ復帰）命令を生成し、仮想化制御部１０３に送信する（ステップＳ４８３）。
【０２３３】
仮想化制御部１０３は、通信制御部１０４を介してデバイス制御装置Ａ２００Ａに対して簡易省電状態解除（スリープ復帰）命令を送信する（ステップＳ４８４）。
【０２３４】
仮想化制御部２０２Ａは、省電制御部２１１Ａに対して簡易省電状態解除（スリープ復帰）命令を送信する（ステップＳ４８５）。
【０２３５】
省電制御部２１１Ａは、スリープ復帰命令の受信に応じて、デバイス制御装置Ａ２００Ａの簡易省電状態を解除し、通常状態に復帰する（ステップＳ４８６）。
【０２３６】
省電制御部２１１Ａは、簡易省電状態の解除を仮想化制御部２０２Ａに通知する（ステップＳ４８７）。
【０２３７】
仮想化制御部２０２Ａは、簡易省電状態の解除を通知に応じて、デバイス制御装置Ａ２００Ａ自身の状態（簡易省電状態の解除）更新命令をデバイス状態管理部２０５Ａに通知する（ステップＳ４８８）。
【０２３８】
デバイス状態管理部２０５Ａは、デバイス制御装置Ａ２００Ａ自身の状態（簡易省電状態の解除）更新命令に応じて、デバイス制御装置Ａ２００Ａ自身に関する情報を更新する（ステップＳ４８９）。
【０２３９】
デバイス状態管理部２０５Ａは、仮想化制御部２０２Ａおよび通信制御部２０１Ａを介して、デバイス制御装置Ａ２００Ａ自身の情報を情報処理装置１００に送信する（ステップＳ４９１、ステップＳ４９２）。
【０２４０】
仮想化制御部１０３は、デバイス制御装置Ａ２００Ａから受信したデバイス制御装置Ａ２００Ａに関する情報をデバイスドライバ１０２に対して送信する（ステップＳ４９３）。
【０２４１】
デバイスドライバ１０２は、仮想化制御部１０３から受信したデバイス制御装置Ａ２００Ａに関する情報をアプリケーション１０１に送信する（ステップＳ４９４）。
【０２４２】
デバイス制御装置Ａ２００Ａのデバイス状態通知部２２１Ａは、代替デバイス制御装置２９０として機能していたデバイス制御装置Ｂ２００Ｂに対して、移譲解除通知を送信する（ステップＳ５０１）。
【０２４３】
デバイス制御装置Ｂ２００Ｂの移譲部２２０Ｂは、デバイス制御装置Ａ２００Ａに移譲データを返送する（ステップＳ５０２）。
【０２４４】
デバイス制御装置Ａ２００Ａのデバイス状態通知部２２１Ａは、移譲終了通知をデバイス状態管理部２０５に通知する（ステップＳ５０３）。
【０２４５】
デバイス状態管理部２０５は、移譲終了通知の受信に応じて、デバイス状態管理情報２０６Ａにおける該当の外部デバイスＡ３００Ａおよびデバイス制御装置Ａ２００Ａに関する情報を更新する（ステップＳ５０４）。ステップＳ５０４の処理以降、デバイス制御装置Ａ２００Ａは、情報処理装置１００からの外部デバイス３００（仮想デバイス３００）の検索命令に対して、外部デバイスＡ３００Ａおよびデバイス制御装置Ａ２００Ａに関する情報を応答することができる。
【０２４６】
上述のように、本発明の第３の実施形態によれば、デバイス制御装置２００Ａに省電制御機能を有し、外部デバイス３００に対してバス電源供給した状態で省電モードに移行した場合でも、デバイス制御装置Ａ２００Ａのデバイス状態通知部２２１Ａによる代替デバイス制御装置の検索を行い、検索応答結果を基に代替デバイス制御装置２９０を選定して、デバイス制御装置２００Ａのデバイス状態管理情報２０６を代替デバイス制御装置２９０（他のデバイス制御装置）に移譲することができる。
【０２４７】
従って、デバイス制御装置Ａ２００Ａが省電モードに移行した場合、情報処理装置１００は、外部デバイス３００（仮想デバイス３００）の検索要求を送信しても、代替デバイス制御装置２９０によって、デバイス制御装置Ａ２００Ａの外部デバイス３００の電源制御の状態を含むデバイス状態を検索・取得することが可能となる。
【０２４８】
以上、本発明について上記各実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０２４９】
デバイス制御装置２００は、外部デバイス３００との接続ポートを内蔵する形態で説明したが、デバイス制御装置２００に別体のデバイス分岐装置（例：ＵＳＢハブ、不図示）を接続し、このデバイス分岐装置を介してデバイス制御装置２００と外部デバイス３００とを接続しても良い。
【０２５０】
例えば、上記の実施の形態の機能を制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０２５１】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施の形態の機能を実現するソフトウェア（プログラム）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０２５２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０２５３】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【０２５４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０２５５】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０２５６】
１００：情報処理装置
１０１：アプリケーション
１０２：デバイスドライバ
１０３：仮想化制御部
１０４：通信制御部
１６０：記憶部
２００：デバイス制御装置
２０１：通信制御部
２０２：仮想化制御部
２０３：デバイス制御部
２０４：電源供給制御部
２０５：デバイス状態管理部
２０６：デバイス状態管理情報
２１１：省電制御部
２２０：移譲部
２２１：デバイス状態通知部
２２２：代替選定部
３００：外部デバイス
３０１：個体識別情報
３０２：通信Ｉ／Ｆ
【図１】
2019032672.tif 000003
【図２】
2019032672.tif 000004
【図３】
2019032672.tif 000005
【図４】
2019032672.tif 000006
【図５】
2019032672.tif 000007
【図６】
2019032672.tif 000008
【図７】
2019032672.tif 000009
【図８】
2019032672.tif 000010
【図９】
2019032672.tif 000011
【図１０】
2019032672.tif 000012
【図１１】
2019032672.tif 000013