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