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