(57)【要約】【課題】内部デバイスや外部デバイスを使ってネットワーク上の情報処理装置を遠隔操作できるデバイス制御装置、その制御方法およびデバイス制御システムにおいて、情報処理装置とデバイス制御装置の間をデバイス数に基づいたセッション数に関わらず制御する方法を提供する。【解決手段】情報処理装置１００はデバイス制御装置２００Ａに備えられた外部デバイス３００Ａ、ネットワーク上のデバイス制御装置２００Ａと異なるデバイス制御装置２００Ｂに備えられた内部デバイス４００Ｃおよび外部デバイス３００Ｂを組み合わせた仮想複合デバイス５００を仮想化制御し、デバイスドライバ１０２を用いて仮想複合デバイス５００が直接的に接続（ローカル接続）された場合と同様にその振る舞いをシミュレートする。【選択図】図１
2017117400.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の１つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、
前記内部デバイスおよび／または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第１のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第２のデータ形式に変換して制御する仮想化制御手段と、
を備えることを特徴とするデバイス制御装置。
【請求項２】
前記識別情報記憶手段は、前記デバイス制御装置自身または前記他のデバイス制御装置が具備する１つまたは複数の所定の機能を内部デバイスとして認識させるための仮想デバイス識別情報をさらに記憶し、
前記識別情報送信手段は、所定の操作に応じて選択された１以上の前記内部デバイスおよび／または前記外部デバイスに基づいて構成された前記仮想複合デバイス以外の前記内部デバイスおよび／または前記外部デバイスの仮想デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
前記所定の操作は、前記内部デバイスおよび／または外部デバイスの機能および／または性能を選択することを特徴とする請求項２に記載のデバイス制御装置。
【請求項４】
前記内部デバイスまたは前記外部デバイスにおいて所定の終了操作が行われると、前記仮想化制御手段は、前記仮想複合デバイスの制御を終了することを特徴とする請求項１乃至３の何れか１項に記載のデバイス制御装置。
【請求項５】
前記情報処理装置において所定の終了操作が行われると、当該終了操作に基づいた指示を受けた前記仮想化制御手段は前記情報処理装置からの指示を検知し、前記仮想複合デバイスの制御を終了することを特徴とする請求項１乃至請求項４の何れか１項に記載のデバイス制御装置。
【請求項６】
前記仮想複合デバイスを構成する前記内部デバイスおよび／または前記外部デバイスに前記他のデバイス制御装置の内部デバイスおよび外部デバイスのいずれか１以上が含まれている場合、仮想複合デバイスとして構成する旨を前記他のデバイス制御装置に通知するデバイス構成管理手段をさらに備えることを特徴とする請求項１乃至請求項５の何れか１項に記載のデバイス制御装置。
【請求項７】
前記デバイス構成管理手段は、前記他のデバイス制御装置が備える前記内部デバイスおよび／または前記外部デバイスを仮想複合デバイスとして構成したい旨を前記他のデバイス制御装置から受信することを特徴とする請求項６に記載のデバイス制御装置。
【請求項８】
ネットワークを介して情報処理装置および仮想複合デバイスを作成する他のデバイス制御装置に接続されたデバイス制御装置であって、
１つまたは複数の所定の機能を内部デバイスとして認識させるための第二の仮想デバイス識別情報を記憶する第二の識別情報記憶手段と、
前記第二の仮想デバイス識別情報を前記情報処理装置に送信する第二の識別情報送信手段と、
前記情報処理装置が前記仮想デバイス識別情報に基づいて識別した前記内部デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記デバイス制御装置と前記内部デバイスとの間のデータ通信は第１のデータ形式に変換し、前記デバイス制御装置と前記情報処理装置との間のデータ通信は第２のデータ形式に変換して制御する第二の仮想化制御手段と、を備え、
前記内部デバイスおよび／または前記デバイス制御装置自身に接続された外部デバイスが前記他のデバイス制御装置により仮想複合デバイスとして構成される場合、
前記第二の識別情報送信手段は前記情報処理装置に第二の仮想デバイス識別情報を送信せず、
一方、仮想複合デバイスとして構成せず前記内部デバイスまたは前記外部デバイスを仮想化制御する場合、
前記第二の識別情報送信手段は前記情報処理装置に第二の仮想デバイス識別情報を送信することを特徴とすることを特徴とするデバイス制御装置。
【請求項９】
情報処理装置、請求項１乃至請求項７の何れか１項に記載の第一のデバイス制御装置、および１つまたは複数の所定の機能を内部デバイスとして認識させる請求項８に記載の第二のデバイス制御装置がネットワークを介して接続されるデバイス制御システム。
【請求項１０】
ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の１つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置の制御方法であって、
前記内部デバイスおよび／または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶ステップと、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信ステップと、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第１のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第２のデータ形式に変換して制御する仮想化制御ステップと、
を備えることを特徴とするデバイス制御装置の制御方法。
【請求項１１】
前記識別情報記憶ステップは、前記デバイス制御装置自身または前記他のデバイス制御装置が具備する１つまたは複数の所定の機能を内部デバイスとして認識させるための仮想デバイス識別情報をさらに記憶し、
前記識別情報送信ステップは、所定の操作に応じて選択された１以上の前記内部デバイスおよび／または前記外部デバイスに基づいて構成された前記仮想複合デバイス以外の前記内部デバイスおよび／または前記外部デバイスの仮想デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項１０に記載のデバイス制御装置の制御方法。
【請求項１２】
前記所定の操作は、前記内部デバイスおよび／または外部デバイスの機能および／または性能を選択することを特徴とする請求項１１に記載のデバイス制御装置の制御方法。
【請求項１３】
前記内部デバイスまたは前記外部デバイスにおいて所定の終了操作が行われると、前記仮想化制御ステップは、前記仮想複合デバイスの制御を終了することを特徴とする請求項１０乃至請求項１２の何れか１項に記載のデバイス制御装置の制御方法。
【請求項１４】
前記情報処理装置において所定の終了操作が行われると、当該終了操作に基づいた指示を受けた前記仮想化制御ステップは前記情報処理装置からの指示を検知し、前記仮想複合デバイスの制御を終了することを特徴とする請求項１０乃至請求項１３の何れか１項に記載のデバイス制御装置の制御方法。
【請求項１５】
前記仮想複合デバイスを構成する前記内部デバイスおよび／または前記外部デバイスに前記他のデバイス制御装置の内部デバイスおよび外部デバイスのいずれか１以上が含まれている場合、仮想複合デバイスとして構成する旨を前記他のデバイス制御装置に通知するデバイス構成管理ステップをさらに備えることを特徴とする請求項１０乃至請求項１４の何れか１項に記載のデバイス制御装置の制御方法。
【請求項１６】
前記デバイス構成管理ステップは、前記他のデバイス制御装置が備える前記内部デバイスおよび／または前記外部デバイスを仮想複合デバイスとして構成したい旨を前記他のデバイス制御装置から受信することを特徴とする請求項１５に記載のデバイス制御装置の制御方法。
【請求項１７】
ネットワークを介して情報処理装置および仮想複合デバイスを作成する他のデバイス制御装置に接続されたデバイス制御装置の制御方法であって、
１つまたは複数の所定の機能を内部デバイスとして認識させるための第二の仮想デバイス識別情報を記憶する第二の識別情報記憶ステップと、
前記第二の仮想デバイス識別情報を前記情報処理装置に送信する第二の識別情報送信ステップと、
前記情報処理装置が前記仮想デバイス識別情報に基づいて識別した前記内部デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記デバイス制御装置と前記内部デバイスとの間のデータ通信は第１のデータ形式に変換し、前記デバイス制御装置と前記情報処理装置との間のデータ通信は第２のデータ形式に変換して制御する第二の仮想化制御ステップと、を備え、
前記内部デバイスおよび／または前記デバイス制御装置自身に接続された外部デバイスが前記他のデバイス制御装置により仮想複合デバイスとして構成される場合、
前記第二の識別情報送信ステップは前記情報処理装置に第二の仮想デバイス識別情報を送信せず、
一方、仮想複合デバイスとして構成せず前記内部デバイスまたは前記外部デバイスを仮想化制御する場合、
前記第二の識別情報送信ステップは前記情報処理装置に第二の仮想デバイス識別情報を送信することを特徴とすることを特徴とするデバイス制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された情報処理装置から送られる各種要求を処理するためのデバイス制御装置、その制御方法、およびデバイス制御システムに関する。
【背景技術】
【０００２】
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置であるクライアントＰＣが共有デバイスとして利用することが行われている。その実現方法がいくつか提案されている。
【０００３】
例えば、プリンタや複合機などのデバイス（デバイス制御装置）に具備されている操作パネルの入出力機能を、ネットワーク上の情報処理装置に仮想化制御し、デバイス制御装置からネットワーク上の情報処理装置を遠隔操作することで印刷やスキャンを実行させるデバイス制御システムがある（例えば、特許文献１参照）。特許文献１のデバイス制御システムにおいて情報処理装置から複数のデバイスを制御する場合、例えば、３つのデバイスを仮想化制御していると、デバイス毎にセッションを要するため、セッションはデバイス数の３つ必要であった。そのため、セッションを切断する場合にも、デバイス毎にセッションを管理する必要があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１０２８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、出願人自らが先に提案した特許文献１のデバイス制御システムをさらに拡張・発展させ、デバイス制御装置が具備する所定の機能である内部デバイスやデバイス制御装置に直結された外部デバイスと、ネットワーク上の異なるデバイス（内部デバイス、外部デバイス）を情報処理装置から制御する場合、これら内部デバイスや外部デバイスの数に基づいたセッション数に関わらず、情報処理装置とデバイス制御装置間の１以上のデバイス（内部デバイス、外部デバイス）を制御できるデバイス制御装置、その制御方法、およびデバイス制御システムを提供することを目的とする。
【０００６】
さらに本発明は、情報処理装置からネットワーク上の１以上のデバイス制御装置が具備する内部デバイスや外部デバイスを制御する場合に、複数のデバイスを組み合わせて１つのデバイスとして認識させてセッションを利用することにより、そのセッションを利用するデバイス制御装置毎の接続または切断の制御を可能とし、セッション管理の利便性を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の１つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、前記内部デバイスおよび／または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第１のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第２のデータ形式に変換して制御する仮想化制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、デバイス制御装置が具備する内部デバイスやデバイス制御装置に直接された外部デバイスおよび、ネットワーク上の異なるデバイス（内部デバイス、外部デバイス）を、ネットワークを介して情報処理装置から制御する際に、当該デバイス制御装置の内部デバイスや外部デバイスの数に関わらず、デバイス制御装置と情報処理装置の間のデータ通信におけるセッション数を削減することが可能となる。
【０００９】
さらに、複数のデバイス（内部デバイスや外部デバイス）を１つのデバイスとして情報処理装置に認識させることで、１以上のデバイス制御装置と情報処理装置の間のセッションの接続または切断を一元管理でき、利便性を向上させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【図２】図１に示す仮想デバイス識別情報の一例を示す図である。
【図３】図１に示す仮想複合デバイス識別情報の一例を示す図である。
【図４】図１に示すデバイス制御システムにおける仮想複合デバイスのデバイス構成を示す図である。
【図５】図１に示すデバイス制御システムにおいて情報処理装置１００が仮想複合デバイス５００を仮想化制御する際の動作を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１２】
図１は、本発明の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【００１３】
図示のデバイス制御システムにおいては、情報処理装置１００がローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などのネットワークを介してデバイス制御装置２００Ａとデバイス制御装置２００Ｂに接続されている。ＬＡＮおよびＷＡＮは有線回線または無線回線で構成される。そして、デバイス制御装置２００Ａとデバイス制御装置２００Ｂには、例えば、通信インターフェース（例えば、ＵＳＢまたはＨＤＭＩ（登録商標））によって外部デバイス３００Ａと外部デバイス３００Ｂがローカル接続されている。以降の説明では、通信インターフェースをＵＳＢとして説明する。
【００１４】
＜情報処理装置１００の構成＞
情報処理装置１００は、ユーザによって利用されるパーソナルコンピュータ（ＰＣ）等の装置である。ハードウェア構成として、ＣＰＵ、入力部、表示部、メモリ、通信部（ともに不図示）、記憶部１１０を備え、これらハードウェアは内部バスで相互に接続されている。
【００１５】
ＣＰＵは情報処理装置１００の全体の制御を司る。入力部は、例えば、キーボードおよびマウスを備えている。表示部として、例えば、液晶モニタが用いられる。メモリはＲＡＭおよびＲＯＭ等である。
【００１６】
通信部はＬＡＮおよびＷＡＮなどに接続するためのネットワークＩ／Ｆであって、デバイス制御装置２００Ａやデバイス制御装置２００Ｂとデータ送受信を行う。これにより、情報処理装置１００はデバイス制御装置２００Ａにローカル接続された外部デバイス３００Ａやデバイス制御装置２００Ａに備えられた内部デバイス４００Ａと内部デバイス４００Ｂとデータ送受信することが可能となる。また、デバイス制御装置２００Ｂにローカル接続された外部デバイス３００Ｂやデバイス制御装置２００Ｂに備えられた内部デバイス４００Ｃともデータ送受信することが可能となる。
【００１７】
記憶部１１０には、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１０１、デバイスドライバ１０２、仮想化制御部１０３、通信制御部１０４およびデバイス情報通知部１０５が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００１８】
アプリケーション１０１は、デバイスドライバ１０２に対してデータ入出力要求を指示することにより、デバイス制御装置２００に接続された外部デバイス３００やデバイス制御装置２００に備えられた内部デバイス４００を組み合わせた複合デバイス（以下「仮想複合デバイス」と呼ぶ）を制御するためのソフトウェアである。なお、内部デバイス４００Ａ、内部デバイス４００Ｂ、内部デバイス４００Ｃ、外部デバイス３００Ａおよび外部デバイス３００Ｂの組み合わせは任意であり、デバイスの台数についてもこれに限定したものではない。
【００１９】
デバイスドライバ１０２は、外部デバイス３００、内部デバイス４００および仮想複合デバイス５００を制御するための機能部である。ＯＳまたはアプリケーション１０１からのデータ入出力要求を、外部デバイス３００Ａ、外部デバイス３００Ｂ、内部デバイス４００Ａ、内部デバイス４００Ｂおよび内部デバイス４００Ｃのそれぞれに応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドを仮想化制御部１０３に送る。さらに、デバイスドライバ１０２は制御コマンドに対する応答をアプリケーション１０１に通知する。このデバイスドライバ１０２は一般に、製造したメーカーによって提供されるソフトウェアであって、情報処理装置１００は各デバイスに対応したデバイスドライバ１０２によって外部デバイス３００Ａ、外部デバイス３００Ｂ、内部デバイス４００Ａ、内部デバイス４００Ｂ、内部デバイス４００Ｃおよび仮想複合デバイス５００を制御することができる。
【００２０】
仮想化制御部１０３は、デバイスドライバ１０２から送られた制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換する。また、仮想化制御部１０３は通信制御部１０４から送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１０２に送る。
【００２１】
さらに、仮想化制御部１０３は、外部デバイス３００、内部デバイス４００および仮想複合デバイス５００を制御するための機能部である。これらデバイスに対するデータ送受信要求に対して、外部デバイス３００、内部デバイス４００、および仮想複合デバイス５００が情報処理装置１００に直接的に接続（ローカル接続）されている際と同様の振る舞いをシミュレートする機能（以下「仮想化制御機能」と呼ぶ）を備えている。本実施形態の例示では、外部デバイス３００Ａ、外部デバイス３００Ｂと内部デバイス４００Ｃは仮想複合デバイス５００として構成されている。仮想化制御部１０３は、これら複数のデバイスに対するデータ送受信要求に対して、仮想複合デバイス５００を情報処理装置１００に直接的に接続（ローカル接続）されている際と同様の振る舞いをシミュレートする仮想化制御機能を備えている。この仮想化制御機能により、情報処理装置１００は内部デバイス４００Ａ、内部デバイス４００Ｂ、外部デバイス３００Ｂと内部デバイス４００Ｃの仮想複合デバイス５００の接続状態が、ローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
【００２２】
通信制御部１０４は、仮想化制御部１０３から送られるＵＳＢデータとＬＡＮおよびＷＡＮを介してデバイス制御装置２００Ａと通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００Ａと情報処理装置１００の間でデータ送受信の制御を行う。
【００２３】
また、通信制御部１０４は、仮想化制御部１０３を介してアプリケーション１０１またはデバイスドライバ１０２から送られるデータ送受信要求に応じて、デバイス制御装置２００Ａと情報処理装置１００の間のセッションの開始および切断の制御を行う。デバイス制御装置２００Ａと情報処理装置１００の間のセッションは、情報処理装置１００が仮想化制御するデバイスの数分（内部デバイス、外部デバイス、仮想複合デバイスの数分）、生成される。
【００２４】
デバイス情報通知部１０５は、情報処理装置１００が必要とする仮想複合デバイス構成情報を管理し、仮想複合デバイス制御部２１１を有するデバイス制御装置２００Ａへ仮想複合デバイス構成情報を通知する。ここで、仮想複合デバイス構成情報とは、仮想複合デバイス５００がどのようなデバイスから構成されているかを示す情報である。仮想複合デバイス構成情報は、機能要求を満たすことが第１の条件である。第２の条件以降は任意で設定することも可能である。例えば、機能要求を満たす第１の条件はビデオクラス、ストレージクラス、印刷クラス等の機能を設定することである。第２の条件はカメラのｆｐｓ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）、ストレージの容量、印刷のｐｐｍ（Ｐａｇｅ  Ｐｅｒ  Ｍｉｎｕｔｅ）等の性能を設定してもよい。
【００２５】
＜デバイス制御装置２００Ａの構成＞
デバイス制御装置２００Ａは、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成として、ＣＰＵ、メモリ、通信部、および記憶部（ともに不図示）を備えるとともに、内部デバイス４００Ａと内部デバイス４００Ｂを備えている。内部デバイス４００Ａと内部デバイス４００Ｂの構成の詳細は後述する。なお、本実施形態においてデバイス制御装置２００Ａは、仮想複合デバイスを生成する役割を担っている。
【００２６】
ＣＰＵはデバイス制御装置２００Ａ全体の制御を司る。入力装置２０８は、例えば、キーボード、テンキーおよびマウス等の入力機器若しくはこれらの機能をソフトウェアで実現したソフトウェアキーボード等である。表示装置２１０としては、例えば、液晶モニタが用いられる。メモリはＲＡＭおよびＲＯＭ等である。
【００２７】
通信部はＬＡＮおよびＷＡＮに接続するためのネットワークＩ／Ｆであって、情報処理装置１００およびデバイス制御装置２００Ｂとデータ送受信を行う。
【００２８】
記憶部には、ソフトウェアであるＯＳ（不図示）、通信制御部２０１、仮想化制御部２０２、仮想デバイス制御部２０３、仮想複合デバイス制御部２１１およびデバイス構成管理部２１３が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００２９】
通信制御部２０１は、デバイス制御装置２００Ａと情報処理装置１００またはデバイス制御装置２００Ｂの間で行われる入出力データ等の送受信を制御する。
【００３０】
仮想化制御部２０２は、内部デバイス４００Ａおよび内部デバイス４００Ｂと外部デバイス３００Ａがあたかも情報処理装置１００に直接的に接続（ローカル接続）されているかのように情報処理装置１００へ認識させて制御できるようにするため、情報処理装置１００の仮想化制御部１０３からの制御要求に従って（連動して）制御を行う。
【００３１】
仮想デバイス制御部２０３は、仮想デバイス識別情報２０４およびデータ形式変換処理部２０５を備えている。さらに、仮想デバイス制御部２０３は、デバイス制御装置２００Ａに備えられた内部デバイス４００Ａ、内部デバイス４００Ｂを仮想的なＵＳＢデバイスに切り替えるユーザインターフェース等の切替機能を備えている。
【００３２】
仮想デバイス識別情報２０４は、情報処理装置１００および仮想デバイス制御部２０３に内部デバイス４００を外部デバイス３００と同様に認識させるために用いる。仮想デバイス識別情報２０４の詳細は後述する。
【００３３】
データ形式変換処理部２０５は、仮想複合デバイス制御部２１１から送られるＵＳＢデータ形式に準拠したパケットデータと内部デバイス４００Ａと内部デバイス４００Ｂで処理可能なデータ形式のデータとの変換処理を行って、内部デバイス４００Ａと内部デバイス４００Ｂが接続された入力Ｉ／Ｆ２０７およびディスプレイＩ／Ｆ２０９と、仮想デバイス制御部２０３との間のデータの送受信を可能にしている。
【００３４】
仮想複合デバイス制御部２１１は、任意の複数のデバイス（内部デバイスや外部デバイス）を一つの仮想複合デバイスとして仮想化制御部２０２に認識および記憶させる制御を行う。また、仮想複合デバイス制御部２１１は、仮想複合デバイス識別情報２１２を記憶している。本実施形態の例示では、外部デバイス３００Ａ、内部デバイス４００Ｃおよび外部デバイス３００Ｂを仮想複合デバイスとして構成するための仮想複合デバイス識別情報２１２を備えている。さらに、仮想複合デバイス制御部２１１は、仮想複合デバイスとして構成される外部デバイス３００Ａ、内部デバイス４００Ｃおよび外部デバイス３００Ｂがあたかも情報処理装置１００に直接的に接続（ローカル接続）されているかのように情報処理装置１００へ認識させて制御できるようにするため、情報処理装置１００の仮想化制御部１０３からの制御要求に従って（連動して）制御を行う。
【００３５】
仮想複合デバイス識別情報２１２は、情報処理装置１００に仮想複合デバイスとして認識させるために用いる。仮想複合デバイス識別情報２１２の詳細は後述する。
【００３６】
デバイス構成管理部２１３は、外部デバイス３００と内部デバイス４００の接続情報を記憶し、各デバイスが備えている機能を管理する。情報処理装置１００から必要なデバイス情報の接続通知により、仮想複合デバイスを構成する機能や性能を選択し、仮想複合デバイス制御部２１１に仮想複合デバイスの作成を要求する。また、デバイス制御装置２００Ｂとの間で仮想複合デバイスの構成についての情報を通信制御部２０１を介して送受信する機能部である。
【００３７】
＜デバイス制御装置２００Ｂの構成＞
デバイス制御装置２００Ｂは、例えば、ネットワークカメラ等の周辺機器であって、ハードウェア構成として、ＣＰＵ、メモリ、通信部、記憶部（ともに不図示）および内部デバイス４００Ｃを備えている。内部デバイス４００Ｃの構成の詳細は後述する。なお、本実施形態において、デバイス制御装置２００Ａの制御により仮想複合デバイスが生成された場合、情報処理装置１００はデバイス制御装置２００Ｂを意識することなくデバイス制御装置２００Ａとデータ送受信を行う。
【００３８】
ＣＰＵはデバイス制御装置２００Ｂ全体の制御を司る。映像入力装置２２１は、例えば、ネットワークカメラ等の画像入力機器である。メモリはＲＡＭおよびＲＯＭ等である。
【００３９】
通信部はＬＡＮおよびＷＡＮに接続するためのインターフェースであって、情報処理装置１００やデバイス制御装置２００Ａとデータ送受信を行う。
【００４０】
記憶部には、ソフトウェアであるＯＳ（不図示）、通信制御部２１４、仮想化制御部２１５、仮想デバイス制御部２１６が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００４１】
通信制御部２１４は、デバイス制御装置２００Ａとの間で行われる入出力データ等の送受信を制御する。
【００４２】
仮想化制御部２１５は、内部デバイス４００Ｃと外部デバイス３００Ｂがあたかも情報処理装置１００に直接的に接続（ローカル接続）されているかのように情報処理装置１００へ認識させて制御できるようにするため、デバイス制御装置２００Ａの仮想複合デバイス制御部２１１からの制御要求に従って（連動して）制御を行う。
【００４３】
仮想デバイス制御部２１６は、仮想デバイス識別情報２１７およびデータ形式変換処理部２１８を備えている。
【００４４】
仮想デバイス識別情報２１７は、情報処理装置１００および仮想デバイス制御部２１６に内部デバイス４００を外部デバイス３００と同様に認識させるために用いる。仮想デバイス識別情報２１７の詳細は後述する。
【００４５】
データ形式変換処理部２１８は、仮想デバイス制御部２１６から送られるＵＳＢデータ形式に準拠したパケットデータと内部デバイス４００Ｃで処理可能なデータ形式のデータとの変換処理を行って、内部デバイス４００Ｃと接続された画像入力Ｉ／Ｆ２２０と、仮想デバイス制御部２１６との間のデータの送受信を可能にしている。
【００４６】
＜外部デバイス３００Ａの構成＞
外部デバイス３００Ａは、個体識別情報３０１および通信Ｉ／Ｆ３０２を備えている。また、外部デバイス３００Ａは、ストレージクラスの記憶装置３０３を備えたデバイスであり、デバイス制御装置２００ＡにＵＳＢインターフェースによって外付けで接続されている。
【００４７】
個体識別情報３０１は、外部デバイス３００Ａを識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
【００４８】
通信Ｉ／Ｆ３０２は、ＵＳＢインターフェースやＨＤＭＩ（登録商標）であり、デバイス制御装置２００Ａと通信を行うための機能部である。なお、通信Ｉ／Ｆ３０２は、デバイス制御装置２００Ａと通信が実現可能であればＵＳＢインターフェースやＨＤＭＩ（登録商標）以外でもよい。
【００４９】
また、デバイス制御装置２００Ａに外部デバイス３００Ａを接続せず、デバイス制御システムを情報処理装置１００およびデバイス制御装置２００Ａのみで構成するようにしてもよい。
【００５０】
＜外部デバイス３００Ｂの構成＞
外部デバイス３００Ｂは、個体識別情報３０４および通信Ｉ／Ｆ３０５を備えている。また、外部デバイス３００Ｂは、ベンダークラスのセンサー装置３０６を備えたデバイスであり、デバイス制御装置２００ＢにＵＳＢインターフェースによって外付けで接続されている。
【００５１】
個体識別情報３０４は、外部デバイス３００Ｂを識別するための情報であり、個体識別情報３０１と同様であるため説明を省略する。
【００５２】
通信Ｉ／Ｆ３０５は、ＵＳＢインターフェースやＨＤＭＩ（登録商標）であり、通信Ｉ／Ｆ３０２と同様であるため説明を省略する。
【００５３】
なお、図１に示すデバイス制御システムにおいては、情報処理装置１００、デバイス制御装置２００Ａ、外部デバイス３００Ａ、デバイス制御装置２００Ｂおよび外部デバイス３００Ｂが示されているが、これらの台数は図示の例に限定されるものではない。
【００５４】
＜内部デバイス４００Ａと内部デバイス４００Ｂの構成＞
内部デバイス４００Ａと内部デバイス４００Ｂは、ユーザインターフェースとして用いられる入力装置２０８と表示装置２１０をそれぞれ備えている。入力装置２０８と表示装置２１０は、それぞれ入力Ｉ／Ｆ２０７およびディスプレイＩ／Ｆ２０９によって内部バス２０６に接続され、内部バス２０６でデバイス制御装置２００Ａの各ハードウェアに接続されている。また、内部デバイス４００Ａと内部デバイス４００Ｂは、入力装置２０８として表示装置２１０に備えられたタッチパネルを用いるようにしてもよい。
【００５５】
＜内部デバイス４００Ｃの構成＞
内部デバイス４００Ｃは、監視カメラとして用いられる映像入力装置２２１を備えている。映像入力装置２２１は画像入力Ｉ／Ｆ２２０によって内部バス２１９に接続され、内部バス２１９でデバイス制御装置２００Ｂのハードウェアに接続されている。
【００５６】
なお、デバイス制御装置２００Ａは、例えば、プリンタまたは複合機等のオフィス機器であり、デバイス制御装置２００Ｂは、例えば、ネットワークカメラ等の映像入力装置２２１であるが、これらに限定されるものではなく、様々な組込み装置、携帯電話機またはモバイル端末機器であってもよい。
【００５７】
＜仮想デバイス識別情報２０４、仮想デバイス識別情報２１７について＞
次に、仮想デバイス識別情報２０４および仮想デバイス識別情報２１７について説明する。通常、内部デバイス４００Ａ（入力装置２０８）、内部デバイス４００Ｂ（表示装置２１０）および内部デバイス４００Ｃ（映像入力装置２２１）は、外部デバイス３００Ａや外部デバイス３００Ｂの個体識別情報３０１や個体識別情報３０４に相当する情報を有していない。したがって、情報処理装置１００は内部デバイス４００Ａ、内部デバイス４００Ｂおよび内部デバイス４００Ｃを認識することができない。
【００５８】
そこで、本実施形態では、個体識別情報に相当する仮想デバイス識別情報２０４、仮想デバイス識別情報２１７を入力装置２０８と表示装置２１０および映像入力装置２２１の各々に割り当てて、情報処理装置１００にＵＳＢデバイスとして認識させる。ここでは、ＵＳＢデバイスのデータ構造を定義する構成情報（以下「ＵＳＢディスクリプタ」と呼ぶ）を疑似的に作成したものを仮想デバイス識別情報２０４、仮想デバイス識別情報２１７とする。仮想デバイス識別情報２０４、仮想デバイス識別情報２１７は、仮想デバイス制御部２０３、仮想デバイス制御部２１６に予め記憶されたものであるが、仮想デバイス制御部２０３、仮想デバイス制御部２１６によって生成するようにしてもよい。
【００５９】
図２は、図１に示す仮想デバイス識別情報２０４、仮想デバイス識別情報２１７の一例を示す図であり、仮想デバイス識別情報２０４、仮想デバイス識別情報２１７はＵＳＢディスクリプタからなる。
【００６０】
図２に示す疑似的なＵＳＢディスクリプタは、ベンダーＩＤ、プロダクトＩＤ、シリアル番号（不図示）、クラス、サブクラス、プロトコルおよびインターフェースから構成されている。
【００６１】
ベンダーＩＤは、各企業や製造したメーカー毎に割り当てられる識別情報であり、プロダクトＩＤは、ベンダーＩＤを持つ企業やメーカーが各製品や機種毎に重複しないよう割り振るコードである。本実施形態では、デバイス制御装置２００Ａ、デバイス制御装置２００Ｂに割り当てられているベンダーＩＤおよびプロダクトＩＤが用いられる。
【００６２】
また、クラス、サブクラス、プロトコルおよびインターフェースは、キーボード、マウス、ディスプレイ、カメラ、ストレージおよびセンサー等デバイスの種類に応じてＵＳＢ規格で規定されている情報である。そして、ベンダーＩＤおよびプロダクトＩＤと、クラス、サブクラス、プロトコル、およびインターフェースとを関連付けた疑似的なＵＳＢディスクリプタが作成されて、仮想デバイス制御部２０３、仮想デバイス制御部２１６が仮想デバイス識別情報２０４、仮想デバイス識別情報２１７として保持（記憶）する。
【００６３】
本実施形態の入力装置２０８はキーボードおよびマウス、表示装置２１０はディスプレイ、映像入力装置２２１はカメラ、記憶装置３０３はストレージ、センサー装置３０６はセンサーにそれぞれ対応している。これらキーボード、マウス、ディスプレイ、カメラ、ストレージおよびセンサーをＵＳＢデバイスとして認識させるために、キーボード、マウス、ディスプレイ、カメラ、ストレージおよびセンサーのそれぞれへ疑似的なＵＳＢディスクリプタ（つまり、仮想デバイス識別情報２０４、仮想デバイス識別情報２１７）を割り当てている。
【００６４】
＜仮想複合デバイス識別情報２１２について＞
次に、仮想複合デバイス識別情報２１２について説明する。内部デバイス４００Ｃ、外部デバイス３００Ａ、外部デバイス３００Ｂは、それぞれ単一の個体識別情報３０１、個体識別情報３０４または仮想デバイス識別情報２１７を有しているため、情報処理装置１００は１つの仮想複合デバイスとして認識することができない。
【００６５】
そこで、本実施形態では、仮想複合デバイス制御部２１１が個体識別情報に相当する仮想複合デバイス識別情報２１２を仮想複合デバイスに割り当てて、映像入力装置２２１、記憶装置３０３およびセンサー装置３０６を一つの仮想複合デバイス５００として情報処理装置１００に認識させる。ここでは、ＵＳＢデバイスのデータ構造を定義する構成情報（以下「ＵＳＢディスクリプタ」と呼ぶ）を疑似的に作成したものを仮想複合デバイス識別情報２１２とする。仮想複合デバイス識別情報２１２は、仮想複合デバイス制御部２１１に予め記憶されたものであるが、仮想複合デバイス制御部２１１によって生成するようにしてもよい。
【００６６】
図３は、図１に示す仮想複合デバイス識別情報２１２の一例を示す図であり、仮想複合デバイス識別情報２１２はＵＳＢディスクリプタからなる。
【００６７】
図３に示す疑似的なＵＳＢディスクリプタは、ストレージに対応する外部デバイス３００Ａの記憶装置３０３と監視カメラに対応する内部デバイス４００Ｃの映像入力装置２２１とセンサーに対応する外部デバイス３００Ｂのセンサー装置３０６を組み合わせた仮想複合デバイス５００の仮想複合デバイス識別情報２１２である。
【００６８】
仮想複合デバイス制御部２１１は、新たにベンダーＩＤ、プロダクトＩＤ、シリアル番号（不図示）、クラス、サブクラス、プロトコルおよびインターフェースを割り当て、仮想複合デバイス識別情報２１２として保持（記憶）する。
【００６９】
図４は、図１に示すデバイス制御システムにおいて複数のデバイスを一つの仮想複合デバイス識別情報２１２として作成したデバイス構成の一例を示す図である。
【００７０】
仮想複合デバイス制御部２１１は、外部デバイス３００Ａ、外部デバイス３００Ｂおよび内部デバイス４００Ｃのデバイス構成情報に基づいて、複数のデバイスを１つの仮想複合デバイス５００としてデバイス構成情報を作成する。図４に例示するように、仮想複合デバイス５００上では、インターフェースとエンドポイントが重複しないように別のインターフェースとエンドポイントに振り替えて、その対応関係を記憶する。
【００７１】
なお、図４の例示では、外部デバイス３００Ａのエンドポイント（０ｘ８１）、外部デバイス３００Ｂのエンドポイント（０ｘ８１）および内部デバイス４００Ｃのエンドポイント（０ｘ８１）が重複している。また、外部デバイス３００Ｂのエンドポイント（０ｘ８２）と内部デバイス４００Ｃのエンドポイント（０ｘ８２）も重複している。そのため、仮想複合デバイス５００では外部デバイス３００Ｂのエンドポイントを０ｘ８５、０ｘ８６、０ｘ８７に振り替え、内部デバイス４００Ｃのエンドポイントを０ｘ８８、０ｘ８９に振り替えている。例えば、外部デバイス３００Ｂのセンサー装置３０６としてのエンドポイント（０ｘ８１）と仮想複合デバイスとしてのセンサー装置３０６のエンドポイント（０ｘ８５）の対応関係を記憶している。
【００７２】
仮想複合デバイス制御部２１１は、仮想複合デバイス５００のデバイス構成情報を作成すると、ネットワークＩ／Ｆを介して、情報処理装置１００と接続する。情報処理装置１００において、予めＯＳに組み込まれている仮想複合デバイス５００のドライバ（不図示）を用いて仮想複合デバイス５００をマウントし、外部デバイス３００Ａの記憶装置３０３、外部デバイス３００Ｂのセンサー装置３０６および内部デバイス４００Ｃの映像入力装置２２１をあたかも一つのデバイスのように認識することができる。
【００７３】
＜仮想複合デバイス５００の制御シーケンス＞
図５は、図１に示すデバイス制御システムにおいて情報処理装置１００が仮想複合デバイス５００を仮想化制御する際の動作を説明するためのシーケンス図である。
【００７４】
ここでは、内部デバイス４００Ａの入力装置２０８、内部デバイス４００Ｂの表示装置２１０を仮想化制御した状態から入力装置２０８および表示装置２１０を操作する。そして、外部デバイス３００Ａの記憶装置３０３と内部デバイス４００Ｃの映像入力装置２２１と外部デバイス３００Ｂのセンサー装置３０６を一つの仮想複合デバイス５００として制御する場合について説明する。
【００７５】
具体的には、センサー装置３０６が人感センサー、映像入力装置２２１は監視カメラ、記憶装置３０３は外付けのハードディスクのようなものである。人感センサーが人を検知したことを契機として監視カメラによる撮影を開始し、その撮影した映像をハードディスクへ保存するような場面で適用でき、デバイス毎にセッションを制御するのではなく、一つの仮想複合デバイス５００として認識して制御することを例示する。
【００７６】
まず、デバイス制御装置２００Ａからユーザ操作によって内部デバイス４００Ａの入力装置２０８の仮想化制御を開始させる（ステップＳ２０１）。
【００７７】
ユーザの所定の操作によって、入力装置２０８から仮想デバイス制御部２０３に対して接続要求がＵＳＢデータとして送信される（ステップＳ２０２）。
【００７８】
仮想デバイス制御部２０３は、入力装置２０８の個体識別情報である仮想デバイス識別情報２０４を作成して、情報処理装置１００の仮想化制御部１０３へネットワークＩ／Ｆを介して接続通知を送信する（ステップＳ２０３）。
【００７９】
仮想化制御部１０３は、入力装置２０８の個体識別情報に基づいて、デバイスドライバ１０２を選択し、仮想化制御を開始する（ステップＳ２０４）。
【００８０】
アプリケーション１０１は、デバイスドライバ１０２から入力装置２０８と表示装置２１０の接続通知（ステップＳ２０５）によりデータ入出力経路を作成する（ステップＳ２０６）。
【００８１】
次に、デバイス制御装置２００Ａからユーザ操作によって内部デバイス４００Ｂの表示装置２１０の仮想化制御を開始させる（ステップＳ２０７）。
【００８２】
ユーザの所定の操作によって、表示装置２１０から仮想デバイス制御部２０３に対して接続要求がＵＳＢデータとして送信される（ステップＳ２０８）。
【００８３】
仮想デバイス制御部２０３は、表示装置２１０の個体識別情報である仮想デバイス識別情報２０４を作成して、情報処理装置１００の仮想化制御部１０３へネットワークＩ／Ｆを介して接続通知を送信する（ステップＳ２０９）。
【００８４】
仮想化制御部１０３は、表示装置２１０の個体識別情報に基づいて、デバイスドライバ１０２を選択し、仮想化制御を開始する（ステップＳ２１０）。
【００８５】
アプリケーション１０１は、デバイスドライバ１０２から表示装置２１０の接続通知（ステップＳ２１１）によりデータ入出力経路を作成する（ステップＳ２１２）。
【００８６】
また、アプリケーション１０１は、デバイス制御装置２００Ａの表示装置２１０に表示する画像データ（表示画面）を生成し（ステップＳ２１３）、デバイスドライバ１０２に画像データ（表示画面）を送信する（ステップＳ２１４）。
【００８７】
デバイスドライバ１０２は、仮想化制御部１０３へ画像データ（表示画面）を送信する（ステップＳ２１５）。仮想化制御部１０３は、デバイスドライバ１０２から受信した制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換して、ネットワークＩ／Ｆを介してデバイス制御装置２００Ａの仮想デバイス制御部２０３へ送信する（ステップＳ２１６）。
【００８８】
仮想デバイス制御部２０３は、表示装置２１０で処理可能なデータ形式のデータとの変換処理を行って、表示装置２１０と接続されたディスプレイＩ／Ｆ２０９を介してデータ送受信する（ステップＳ２１７）。表示装置２１０にアプリケーション１０１で生成された画像データ（表示画面）が受信画像として表示される（ステップＳ２１８）。
【００８９】
ユーザは入力装置２０８を介して操作情報を入力する（ステップＳ２１９）。
【００９０】
入力装置２０８は、入力された操作情報を入力装置２０８と接続された入力Ｉ／Ｆ２０９を介して仮想デバイス制御部２０３へデータを送信する（ステップＳ２２０）。仮想デバイス制御部２０３は、入力装置２０８で処理可能なデータ形式のデータとＵＳＢデータ形式に準拠したパケットデータの変換処理を行って仮想化制御部１０３へ、操作情報を送信する（ステップＳ２２１）。
【００９１】
仮想化制御部１０３は、デバイスドライバ１０２へ制御コマンド（つまり、データ入出力要求）の応答を行う（ステップＳ２２２）。デバイスドライバ１０２は、入力装置２０８の操作情報をアプリケーションに送信する（ステップＳ２２３）。
【００９２】
アプリケーション１０１は、デバイスドライバ１０２から受信した操作情報に基づき、操作を実行する（ステップＳ２２４）。
【００９３】
ユーザは、外部デバイス３００Ａの記憶装置３０３をデバイス制御装置２００Ａに接続する（ステップＳ２２５）。これにより、外部デバイス３００Ａの個体識別情報３０１が通信Ｉ／Ｆ３０２を介してデバイス制御装置２００ＡにＵＳＢデータとして送信されて、仮想化制御部２０２に外部デバイス３００Ａが接続された旨が通知される（ステップＳ２２６）。
【００９４】
仮想化制御部２０２は、デバイス制御装置２００Ａのデバイス構成管理部２１３へ外部デバイス３００Ａの接続通知（仮想デバイス識別情報２０４）を送信する（ステップＳ２２７）。
【００９５】
デバイス構成管理部２１３は、外部デバイス３００Ａの記憶装置３０３が備えているストレージ機能や性能を記憶し、更新する（ステップＳ２２８）。
【００９６】
ユーザは、デバイス制御装置２００Ｂからユーザ操作によって内部デバイス４００Ｃの映像入力装置２２１の仮想化制御を開始させる（ステップＳ２３０）。映像入力装置２２１から仮想デバイス制御部２１６に対して接続要求がＵＳＢデータとして送信される（ステップＳ２３１）。
【００９７】
仮想デバイス制御部２１６は、映像入力装置２２１の仮想デバイス識別情報を作成して、デバイス制御装置２００Ａのデバイス構成管理部２１３へ内部デバイス４００Ｃの接続通知（仮想デバイス識別情報２１７）を送信する（ステップＳ２３２）。
【００９８】
デバイス構成管理部２１３は、外部デバイス３００Ｂの映像入力装置２２１が備えている画像入力機能や性能を記憶し、更新する（ステップＳ２３３）。
【００９９】
ユーザは、外部デバイス３００Ｂをデバイス制御装置２００Ｂに接続する（ステップＳ２３４）。これにより、外部デバイス３００Ｂの個体識別情報３０４が通信Ｉ／Ｆ３０５を介してデバイス制御装置２００ＢにＵＳＢデータとして送信されて、仮想化制御部２１５に外部デバイス３００Ｂが接続された旨が通知される（ステップＳ２３５）。
【０１００】
仮想化制御部２１５は、デバイス制御装置２００Ａのデバイス構成管理部２１３へ外部デバイス３００Ｂの接続通知（仮想デバイス識別情報２１７）を送信する（ステップＳ２３６）。
【０１０１】
デバイス構成管理部２１３は、外部デバイス３００Ｂのセンサー装置３０６が備えているセンサー機能や性能を記憶し、更新する（ステップＳ２３７）。
【０１０２】
ここからは、仮想複合デバイス５００を生成するシーケンスについて説明する。
【０１０３】
ユーザの所定の操作によって、表示装置２１０に操作画面を表示させ、入力装置２０８を操作し、どの機能（ストレージ、カメラ、センサー）および／または性能を仮想複合デバイス５００として構成するか選択する（ステップＳ２４０）。なお、性能のみを選択した場合、性能に紐付く機能も合わせて選択される。また機能や性能だけでなくデバイス名を選択することもできる。
【０１０４】
このとき、内部デバイス４００Ｃおよび／または外部デバイス３００Ｂを仮想複合デバイス５００として構成する場合、デバイス制御装置２００Ａのデバイス構成管理部２１３はデバイス制御装置２００Ｂに対してその旨を通知してもよい。
【０１０５】
また、デバイス制御装置２００Ｂから仮想複合デバイス５００として構成するようデバイス制御装置２００Ａのデバイス構成管理部２１３に対して要求を送信することも可能である。
【０１０６】
そして、デバイス制御装置２００Ａからの通知、またはデバイス制御装置２００Ｂからの要求に対して各デバイス制御装置２００は仮想複合デバイス５００として構成することが可能であるかどうか応答を返すようにしてもよい。
【０１０７】
さらに、デバイス制御装置のデバイス（内部デバイス、外部デバイス）が複数ある場合、デバイス制御装置２００Ｂからの要求で、デバイス制御装置２００Ａは仮想複合デバイス５００を構成するデバイスを選択することも可能であり、デバイス制御装置２００Ｂは要求したものの仮想複合デバイス５００として構成できなかったデバイスはデバイス制御装置２００Ｂの仮想化制御部２１５が仮想化制御を行い情報処理装置１００とデータ送受信を行う。
【０１０８】
入力装置２０８は、操作情報を入力装置２０８と接続された入力Ｉ／Ｆ２０７を介して仮想デバイス制御部２０３へデータを送信する（ステップＳ２４１）。仮想デバイス制御部２０３は、入力装置２０８で処理可能なデータ形式のデータとＵＳＢデータ形式に準拠したパケットデータの変換処理を行って仮想化制御部１０３へ、操作情報を送信する（ステップＳ２４２）。
【０１０９】
仮想化制御部１０３は、デバイスドライバ１０２の制御コマンドに応答を行う（ステップＳ２４３）。デバイスドライバ１０２は、入力装置２０８の操作情報をアプリケーション１０１に送信する（ステップＳ２４４）。
【０１１０】
アプリケーション１０１は、デバイスドライバ１０２から受信した操作情報から仮想複合デバイス５００の選択操作を実行する（ステップＳ２４５）。このとき、アプリケーション１０１により仮想複合デバイス構成情報が生成される。なお、仮想複合デバイス５００を構成するデバイスとして選択されなかったデバイスは、別の仮想デバイスとして仮想複合デバイス５００と共存することも可能である。ここで共存とは、仮想複合デバイス５００とそれ以外のデバイスを別のセッションで管理することであり、情報処理装置１００には仮想複合デバイス５００とそれ以外のデバイスとして区別し認識される。
【０１１１】
このとき、内部デバイス４００Ｃおよび／または外部デバイス３００Ｂを仮想複合デバイス５００と共存させた場合、デバイス制御装置２００Ｂが共存させるデバイス（内部デバイス、外部デバイス）の仮想デバイス識別情報２１７を情報処理装置１００に送信する。これにより情報処理装置１００はデバイス制御装置２００Ｂを認識する。
【０１１２】
また、内部デバイス４００Ｃおよび／または外部デバイス３００Ｂを仮想複合デバイス５００として構成し、仮想複合デバイス５００として構成しないデバイス制御装置２００Ｂの残りのデバイスが情報処理装置１００とデータ送受信しない（内部デバイスとして仮想化制御しない）場合、デバイス制御装置２００Ａが情報処理装置１００に仮想複合デバイス識別情報２１２を送信する。そして、情報処理装置１００はデバイス制御装置２００Ｂを認識することなく、デバイス制御装置２００Ａとデータ送受信を行う。
【０１１３】
アプリケーション１０１は、上記で選択した仮想複合デバイス５００をデバイス情報通知部１０５へ接続要求する（ステップＳ２４６）。デバイス情報通知部１０５は、ネットワークＩ／Ｆを介してデバイス制御装置２００Ａのデバイス構成管理部２１３へ仮想複合デバイス５００の接続通知を行う（ステップＳ２４７）。
【０１１４】
デバイス構成管理部２１３は、デバイス情報に基づいて機能や性能を選択し、仮想複合デバイス制御部２１１に仮想複合デバイス構成情報を送信し仮想複合デバイス５００の作成を要求する（ステップＳ２４８）。
【０１１５】
仮想複合デバイス制御部２１１は、記憶装置３０３とセンサー装置３０６と映像入力装置２２１から受信したＵＳＢデータを、図４の構成に基づいて仮想複合デバイス５００のインターフェースに対応するエンドポイントに格納する。これにより、仮想複合デバイス制御部２１１は、それぞれのデバイスから受信したＵＳＢデータを合わせて一つの仮想複合デバイス５００のＵＳＢデータ形式に変換して仮想複合デバイスの個体識別情報である仮想複合デバイス識別情報２１２を生成することで仮想複合デバイス５００を作成する（ステップＳ２４９）。このとき、デバイス制御装置２００Ｂのデバイス（内部デバイス、外部デバイス）を仮想複合デバイス５００として構成して仮想複合デバイス５００を作成した場合、デバイス制御装置２００Ａのデバイス構成管理部２１３は、デバイス制御装置２００Ｂに仮想複合デバイス５００を作成した旨を通知してもよい。
【０１１６】
仮想複合デバイス制御部２１１は、仮想複合デバイス５００の個体識別情報である仮想複合デバイス識別情報２１２をネットワークＩ／Ｆを介して情報処理装置１００の仮想化制御部１０３へ接続通知を送信する（ステップＳ２５０）。
【０１１７】
仮想化制御部１０３は、デバイス制御装置２００Ａの仮想化制御部２０２から受信した仮想複合デバイス識別情報２１２をデバイスドライバ１０２に通知する（ステップＳ２５１）。
【０１１８】
デバイスドライバ１０２は、アプリケーション１０１に仮想複合デバイス５００の接続通知を送信する（ステップＳ２５２）。ここでアプリケーション１０１は、仮想複合デバイス５００の接続通知を受けると、仮想複合デバイス５００を認識し（ステップＳ２５３）、仮想化制御部１０３は、仮想複合デバイス５００の仮想化制御を開始する（ステップＳ２５４）。そして、情報処理装置１００は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用して仮想複合デバイス５００との接続を開始する。
【０１１９】
ステップＳ２０１〜ステップＳ２５４のシーケンスにより、情報処理装置１００は、各デバイスを個別に認識するのではなく１つの仮想複合デバイス５００として認識することが可能となる。以降のシーケンスでは、情報処理装置１００は外部デバイス３００Ａ、外部デバイス３００Ｂおよび内部デバイス４００Ｃを一つの仮想複合デバイス５００として認識する。
【０１２０】
ここからは、情報処理装置１００と仮想複合デバイス５００との間で行われるデータ送受信の制御に関するシーケンスについて説明する。
【０１２１】
外部デバイス３００Ｂは、センサー装置３０６のセンサー情報を入力する（ステップＳ２６０）。センサー装置３０６と接続された通信Ｉ／Ｆ３０５を介して仮想化制御部２１５へデータを送信する（ステップＳ２６１）。仮想化制御部２１５は、センサー装置３０６で処理可能なデータ形式のデータとＵＳＢデータ形式に準拠したパケットデータの変換処理を行って仮想複合デバイス制御部２１１へ、センサー情報を送信する（ステップＳ２６２）。
【０１２２】
仮想複合デバイス制御部２１１は、図４の構成に基づき、仮想複合デバイス５００のエンドポイントに基づいて受信したデータがセンサー装置３０６の制御情報であるか判断し、制御情報を送信するエンドポイントを決定する。エンドポイントが重複して振り替えている場合は、仮想複合デバイス制御部２１１に記憶した対応関係に基づいて判断を行う。
【０１２３】
続いて、仮想複合デバイス制御部２１１は、受信したセンサー情報（ＵＳＢデータ）をネットワークＩ／Ｆを介して情報処理装置１００の仮想化制御部１０３に送信する（ステップＳ２６３）。
【０１２４】
仮想化制御部１０３は、受信したセンサー情報をデバイスドライバ１０２に送信する（ステップＳ２６４）。デバイスドライバ１０２は、仮想化制御部１０３から受け取ったセンサー情報をアプリケーション１０１に送信する（ステップＳ２６５）。アプリケーション１０１は、センサー情報を解析し、仮想複合デバイス５００（映像入力装置２２１）から画像入力（撮影）を開始する（ステップＳ２６６）。
【０１２５】
内部デバイス４００Ｃは、映像入力装置２２１から画像情報を入力する（ステップＳ２７０）。映像入力装置２２１と接続された画像入力Ｉ／Ｆ２２０を介して仮想デバイス制御部２１６へデータを送信する（ステップＳ２７１）。仮想デバイス制御部２１６は、映像入力装置２２１で処理可能なデータ形式のデータとＵＳＢデータ形式に準拠したパケットデータの変換処理を行って仮想複合デバイス制御部２１１へ、画像情報を送信する（ステップＳ２７２）。
【０１２６】
仮想複合デバイス制御部２１１は、図４の構成に基づき、仮想複合デバイス５００のエンドポイントに基づいて受信したデータが映像入力装置２２１の制御情報であるか判断し、制御情報を送信するエンドポイントを決定する。エンドポイントが重複して振り替えている場合は、仮想複合デバイス制御部２１１に記憶した対応関係に基づいて判断を行う。
【０１２７】
続いて、仮想複合デバイス制御部２１１は、受信した画像情報（ＵＳＢデータ）をネットワークＩ／Ｆを介して情報処理装置１００の仮想化制御部１０３に送信する（ステップＳ２７３）。
【０１２８】
仮想化制御部１０３は、受信した画像情報をデバイスドライバ１０２に送信する（ステップＳ２７４）。デバイスドライバ１０２は、仮想化制御部１０３から受け取った画像情報をアプリケーション１０１に送信する（ステップＳ２７５）。アプリケーション１０１は、画像情報を解析し、仮想複合デバイス５００（記憶装置３０３）へ画像出力の指示を開始する（ステップＳ２７６）。
【０１２９】
アプリケーション１０１は、仮想複合デバイス５００（記憶装置３０３）へ画像情報の出力を開始する（ステップＳ２８０）。アプリケーション１０１は、デバイスドライバ１０２に画像情報を送信する（ステップＳ２８１）。デバイスドライバ１０２は、仮想化制御部１０３へ画像情報を送信する（ステップＳ２８２）。
【０１３０】
仮想化制御部１０３は、デバイスドライバ１０２の制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したＵＳＢデータに変換して、ネットワークＩ／Ｆを介してデバイス制御装置２００Ａの仮想複合デバイス制御部２１１へ送信する（ステップＳ２８３）。
【０１３１】
仮想複合デバイス制御部２１１は、図４の構成に基づき、仮想複合デバイス５００のエンドポイントに基づいて受信したデータが記憶装置３０３の制御情報であるか判断し、制御情報を送信するエンドポイントを決定する。エンドポイントが重複して振り替えている場合は、仮想複合デバイス制御部２１１に記憶した対応関係に基づいて判断を行う。
【０１３２】
続いて、仮想複合デバイス制御部２１１は、受信した画像情報（ＵＳＢデータ）を通信Ｉ／Ｆ３０２を介して記憶装置３０３に送信する（ステップＳ２８４）。記憶装置３０３は、仮想複合デバイス制御部２１１から受信した画像情報を記憶する（ステップＳ２８５）。
【０１３３】
ここからは、仮想複合デバイス５００を切断するシーケンスについて説明する。
【０１３４】
ユーザの所定の操作によって、表示装置２１０に操作画面を表示させ、入力装置２０８を操作して切断操作を行い、仮想デバイス制御部２０３に対して切断要求がＵＳＢデータとして送信される（ステップＳ２９０）。
【０１３５】
入力装置２０８は、操作情報を入力装置２０８と接続された入力Ｉ／Ｆ２０７を介して仮想デバイス制御部２０３へデータを送信する（ステップＳ２９１）。仮想デバイス制御部２０３は、入力装置２０８で処理可能なデータ形式のデータとＵＳＢデータ形式に準拠したパケットデータの変換処理を行って仮想化制御部１０３へ、操作情報を送信する（ステップＳ２９２）。
【０１３６】
仮想化制御部１０３は、デバイスドライバ１０２の制御コマンドに応答を行う（ステップＳ２９３）。デバイスドライバ１０２は、入力装置２０８の操作情報をアプリケーション１０１に送信する（ステップＳ２９４）。
【０１３７】
アプリケーション１０１は、デバイスドライバ１０２から受信した操作情報から切断操作を実行する（ステップＳ２９５）。
【０１３８】
アプリケーション１０１は、デバイス情報通知部１０５へ仮想複合デバイス５００の切断要求を送信する（ステップＳ２９６）。デバイス情報通知部１０５は、ネットワークＩ／Ｆを介してデバイス制御装置２００Ａのデバイス構成管理部２１３へ仮想複合デバイス５００の切断通知を行う（ステップＳ２９７）。
【０１３９】
デバイス構成管理部２１３は、複合デバイス情報に基づいて接続中の機能を選択し、仮想複合デバイス制御部２１１に仮想複合デバイス５００の消滅を要求する（ステップＳ２９８）。
【０１４０】
仮想複合デバイス制御部２１１は、仮想複合デバイス５００の個体識別情報である仮想複合デバイス識別情報２１２を消滅させる（ステップＳ２９９）。
【０１４１】
上述のように、本発明の実施形態では、情報処理装置１００は外部デバイス３００Ａ、内部デバイス４００Ｃおよび外部デバイス３００Ｂを組み合わせた仮想複合デバイス５００を仮想化制御し、デバイスドライバ１０２を用いて仮想複合デバイス５００が直接的に接続（ローカル接続）された場合と同様にその振る舞いをシミュレートすることができる。
【０１４２】
そして、複数のデバイスを一つの仮想複合デバイス５００として用いることにより、情報処理装置１００にデバイスを仮想化接続する際、仮想化接続するデバイス毎に必要となるセッションを、デバイスの数や構成に関わらず１つになるように使用することができる。これにより、データ通信におけるセッション数を削減することが可能となる。また、仮想複合デバイス５００として情報処理装置１００に認識させることで、情報処理装置１００とデバイス制御装置２００Ａの間のセッションを一元管理することが可能となる。
【０１４３】
なお、内部デバイス４００Ｃ（映像入力装置２２１）と外部デバイス３００Ａ（記憶装置３０３）、外部デバイス３００Ｂ（センサー装置３０６）を組み合せて仮想複合デバイス５００を生成する例示を説明したが、複数の内部デバイスを組み合せて仮想複合デバイス５００を生成してもよい。また、複数の外部デバイスを組み合せて仮想複合デバイス５００を生成してもよい。さらに、デバイス制御装置２００内に仮想複合デバイスを複数生成してもよい。また、センサー装置３０６が人感センサー、映像入力装置２２１は監視カメラ、記憶装置３０３は外付けのハードディスクとして例示したが、デバイスはこれに限定されるものではない。
【０１４４】
また、本実施形態では情報処理装置１００から仮想複合デバイス５００を構成する機能や性能を選択するとして例示したが、これに限定するものではなく情報処理装置１００以外の入力機能を備えたデバイスから選択してもよい。
【０１４５】
以上、本発明について上記の各実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１４６】
例えば、上記の実施形態の機能の制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１４７】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラムコード）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。
【０１４８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０１４９】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【０１５０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０１５１】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０１５２】
１００：情報処理装置
１０１：アプリケーション
１０２：デバイスドライバ
１０３：仮想化制御部
１０４：通信制御部
１０５：デバイス情報通知部
２００Ａ、２００Ｂ：デバイス制御装置Ａ、デバイス制御装置Ｂ
２０１、２１４：通信制御部
２０２、２１５：仮想化制御部
２０３、２１６：仮想デバイス制御部
２０４、２１７：仮想デバイス識別情報
２０５、２１８：データ形式変換処理部
２０６、２１９：内部バス
２０７：入力Ｉ／Ｆ
２０８：入力装置
２０９：ディスプレイＩ／Ｆ
２１０：表示装置
２１１：仮想複合デバイス制御部
２１２：仮想複合デバイス識別情報
２１３：デバイス構成管理部
２２０：画像入力Ｉ／Ｆ
２２１：映像入力装置
３００Ａ、３００Ｂ：外部デバイスＡ、外部デバイスＢ
３０１、３０４：個体識別情報
３０２、３０５：通信Ｉ／Ｆ
３０３：記憶装置
３０６：センサー装置
４００Ａ、４００Ｂ、４００Ｃ：内部デバイスＡ、内部デバイスＢ、内部デバイスＣ
【図１】
2017117400.tif 000003
【図２】
2017117400.tif 000004
【図３】
2017117400.tif 000005
【図４】
2017117400.tif 000006
【図５】
2017117400.tif 000007