(57)【要約】【課題】デバイス制御装置で投影している情報処理装置の画面やマウスのカーソル座標などの画面指示に関する情報と、仮想化制御しているネットワーク上の情報処理装置の画面指示情報から、次に仮想化制御する情報処理装置またはデバイス制御装置を判定し、仮想化制御の切り替えを行うデバイス制御装置、情報処理装置、デバイス制御方法、情報処理方法およびプログラムを提供する。【解決手段】デバイス制御装置で投影している情報処理装置の画像情報、画面指示情報および配置情報と各情報処理装置の仮想化制御の可否や接続優先度から、仮想化制御の切り替えの要否と、切り替え先の情報処理装置を判定し、カーソルの移動に連動した仮想化制御の切り替えを行う。【選択図】図１
2019121047.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデバイスがローカル接続された複数の情報処理装置に接続されたデバイス制御装置であって、
第１の情報処理装置にローカル接続された第１のデバイスを自装置にローカル接続されているかのように第１の仮想化制御を行う第１の仮想化制御手段と、
前記第１のデバイスを前記第１の情報処理装置とは異なる第２の情報処理装置にローカル接続されているかのように第２の仮想化制御を行う第２の仮想化制御手段と、
外部から切替情報を受信する切替情報受信手段と、
前記切替情報に基づき前記第１の仮想化制御手段または前記第２の仮想化制御手段の何れかを有効化する切替制御手段と、
を備えることを特徴とするデバイス制御装置。
【請求項２】
前記切替制御手段は、前記切替情報受信手段で受信した前記切替情報に含まれる前記第２の情報処理装置に関する情報に基づき、前記第２の仮想化制御手段に対して、前記第２の仮想化制御を行う前記第２の情報処理装置を切り替えを指示する
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
前記切替情報は座標情報であって、
前記情報処理装置から送信される画像情報を受信する画面情報受信手段と、
配置情報に基づき前記画像情報を所定の配置に合成して表示する表示手段と、をさらに備え、
前記切替制御手段は、
前記座標情報および前記配置情報から前記第１の仮想化制御手段または前記第２の仮想化制御手段の何れかを有効化すること
を特徴とする請求項１または請求項２に記載のデバイス制御装置。
【請求項４】
前記切替制御手段は、前記切替情報受信手段で受信した前記座標情報が示す位置が、前記配置情報により分けられた第１の領域から第２の領域に変化した場合であって、当該第２の領域に所定時間以上とどまった場合に、前記第１の仮想化制御手段または前記第２の仮想化制御手段の何れを有効化するかを切り替えることを特徴とする請求項３に記載のデバイス制御装置。
【請求項５】
ネットワークを介してデバイスがローカル接続された複数の情報処理装置に接続されたデバイス制御装置のデバイス制御方法であって、
第１の情報処理装置にローカル接続された第１のデバイスを前記デバイス制御装置にローカル接続されているかのように第１の仮想化制御を行う第１の仮想化制御ステップと、
前記第１のデバイスを前記第１の情報処理装置とは異なる第２の情報処理装置にローカル接続されているかのように第２の仮想化制御を行う第２の仮想化制御ステップと、
外部から切替情報を受信する切替情報受信ステップと、
前記切替情報に基づき前記第１の仮想化制御ステップまたは前記第２の仮想化制御ステップの何れかを実行させる切替制御ステップと、
を備えることを特徴とするデバイス制御方法。
【請求項６】
ネットワークを介してデバイス制御装置と接続され、デバイスがローカル接続された情報処理装置であって、
前記情報処理装置にローカル接続された前記デバイスを前記デバイス制御装置にローカル接続されているかのように第１の仮想化制御を行う第１の仮想化制御手段と、
前記デバイス制御装置を介して自装置と異なる第２の情報処理装置にローカル接続された前記デバイスを自身にローカル接続されているかのように第２の仮想化制御を行う第２の仮想化制御手段と、
を備えることを特徴とする情報処理装置。
【請求項７】
ネットワークを介してデバイス制御装置と接続され、デバイスがローカル接続された情報処理装置の制御方法であって、
前記情報処理装置にローカル接続された前記デバイスを前記デバイス制御装置にローカル接続されているかのように第１の仮想化制御を行う第１の仮想化制御ステップと、
前記デバイス制御装置を介して自装置と異なる第２の情報処理装置にローカル接続された前記デバイスを自身にローカル接続されているかのように第２の仮想化制御を行う第２の仮想化制御ステップと、
を備えることを特徴とする情報処理方法。
【請求項８】
請求項１乃至請求項４の何れか１項に記載のデバイス制御装置の各手段をコンピュータに機能させるためのプログラム。
【請求項９】
請求項６に記載の情報処理装置の各手段をコンピュータに機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス制御装置、情報処理装置、デバイス制御方法、情報処理方法およびプログラムに関し、特に、ネットワークを介してデバイスを制御する機能を備えたデバイス制御装置、情報処理装置、デバイス制御方法、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワークを介して情報処理装置（ＰＣ）とプロジェクタを接続する画面転送システムが注目されており、複数台の情報処理装置の画面を同時に投影することが可能である(特許文献１参照)。
【０００３】
この様な画像転送システムにおいては、情報処理装置の画面とマウスカーソルを重畳させた画面をプロジェクタに転送し投影した際に、マウスカーソルの移動速度が速く、プロジェクタが投影遅延する問題がある。その回避策として、情報処理装置の画面とマウスのカーソル座標を個別にプロジェクタに転送し、プロジェクタ内でカーソル座標上へ合成させ、投影する方法が使用されている。
【０００４】
また、本出願人は、情報処理装置（ＰＣ）が、デバイスサーバにローカル接続されたデバイスを情報処理装置にローカル接続されたものと認識して、デバイスの制御（以下「仮想化制御」と呼ぶ）を行うデバイス制御システムを提案している（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１２７９１５号公報
【特許文献２】国際公開第２０１１／０５５８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の画像転送システムに特許文献２記載の仮想化制御技術を適用し、デバイス制御装置（プロジェクタ）に接続されたデバイス（例えば、マウスなどのポインティングデバイス）を情報処理装置から仮想化制御を行うことにより、情報処理装置がデバイス制御装置と離れているような場合でもデバイスを制御することが可能となる。
【０００７】
ここで、複数台の情報処理装置の画面をプロジェクタに投影し、かつ、デバイスを複数台の情報処理装置のいずれか1台から仮想化制御しようとすると、ユーザ操作により仮想化制御中の情報処理装置との仮想化制御を終了（切断）し、次に仮想化制御する情報処理装置を選択して仮想化制御の切り替えを行わなければならないという課題がある。
【０００８】
そこで、本発明は、デバイス制御装置（プロジェクタ）で投影している情報処理装置の画面やマウスのカーソル座標などの画面指示に関する情報と、仮想化制御しているネットワーク上の情報処理装置の画面指示情報から、次に仮想化制御する情報処理装置またはデバイス制御装置を判定し、ユーザ操作なしに仮想化制御の切り替えを行うデバイス制御装置、情報処理装置装置、デバイス制御方法、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、・・・を備えることを特徴とする。
【００１０】
上記の課題を解決するために、請求項６に記載の情報処理装置は、・・・を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、デバイス制御装置で投影している情報処理装置の情報と、仮想化制御しているネットワーク上の情報処理装置のカーソル座標情報と各情報処理装置の仮想化制御の可否や接続優先度から、仮想化制御の切り替えの要否と、切り替え先の情報処理装置を判定し、カーソルの移動に連動した仮想化制御の切り替えを行うことにより、ユーザは明示的な仮想化制御の切り替え操作を行う必要がなくなり、投影している複数の情報処理装置から、対象となる情報処理装置を選択し仮想化制御を切り替えることで、一つの情報処理装置と見なした操作が可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明のデバイス制御システムの一例の構成を概略的に示すブロック図である。
【図２】図１に示すデバイス制御システムにおいて、第１の仮想化制御および第２の仮想化制御を説明するための図である。
【図３】図１に示す情報処理装置がデバイスを仮想化制御する際のフローチャートである。
【図４】図１に示すデバイス制御装置がデバイスと仮想化制御を行う情報処理装置を切り替える処理を説明するフローチャートである。
【図５】図４に示すデバイス制御装置のフローチャートにおいて、仮想化制御判定で行われる処理を説明するためのフローチャートである。
【図６】図５に示すデバイス制御装置のフローチャートにおいて、仮想化接続先の切替判定で行われる処理を説明するためのフローチャートである。
【図７】図１に示すデバイス制御装置で６台の情報処理装置を投影する場合の画面と情報処理装置の画面表示領域の座標対比の一例である。
【図８】仮想化接続先判定情報の一例である。
【図９】図１に示すデバイス制御システムにおいて、情報処理装置１００画面をデバイス制御装置２００で投影する場面で第１の仮想化制御と第２の仮想化制御について説明するためのシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、詳細に説明する。
【００１４】
図１は、本発明の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【００１５】
図示のデバイス制御システムにおいて、情報処理装置１００Ａがローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などのネットワークを介してデバイス制御装置２００に接続されている。ネットワークは有線回線または無線回線などで構成される。そして、情報処理装置１００Ａには、例えば、通信インターフェース（例えば、ＵＳＢやＨＤＭＩ（登録商標））によってデバイス３００Ａがローカル接続されている。デバイス３００Ａが備える通信インターフェースは、ＵＳＢまたはＨＤＭＩ（登録商標）に限定されるものではない。
【００１６】
また、ＬＡＮに接続されている情報処理装置は複数台あり、構成は情報処理装置１００Ａと同様である。情報処理装置１００の台数は図示の例に限定されない。以降、複数台の情報処理装置を総称する場合は情報処理装置１００と記載し、１台の情報処理装置を示す場合は、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｃと記載する。その中の構成要素についても同様に記載する。
【００１７】
また、図示していないが、デバイス３００も複数台あり、各情報処理装置１００に各々接続されている。以降、複数台の情報処理装置を総称する場合はデバイス３００と記載し、１台のデバイスを示す場合は、デバイス３００Ａ、デバイス３００Ｂ、デバイス３００Ｃと記載する。なお、デバイス３００Ｂは情報処理装置１００Ｂにローカル接続され、デバイス３００Ｃが情報処理装置１００Ｃにローカル接続されているものとする。
【００１８】
＜情報処理装置１００Ａの構成＞
情報処理装置１００Ａは、パーソナルコンピュータ（ＰＣ）等の装置である。ハードウェア構成として、ＣＰＵ１５１Ａ、入力部１５２Ａ、表示部１５３Ａ、メモリ１５４Ａ、通信部１５５Ａ、および記憶部１１０Ａを備え、これらハードウェアは内部バスで相互に接続されている。
【００１９】
ＣＰＵ１５１Ａは情報処理装置１００Ａ全体の制御を司る。入力部１５２Ａは、例えば、キーボードおよびマウスを備えている。表示部１５３Ａとして、例えば、液晶モニタが用いられる。メモリ１５４ＡはＲＡＭおよびＲＯＭ等である。
【００２０】
通信部１５５ＡはＬＡＮに接続するためのインターフェースであって、デバイス制御装置２００とデータ送受信を行う。
【００２１】
記憶部１１０Ａには、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１０１Ａ、デバイス制御部１０２Ａ、デバイスドライバ１０３Ａ、画面転送部１０４Ａ、仮想化デバイス制御部１０５Ａ、仮想化制御部１０６Ａ、画面指示情報転送部１０７Ａ、および通信制御部１０８Ａが記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ１５４Ａに読み出されて、ＣＰＵ１５１Ａの制御に従い動作する。
【００２２】
アプリケーション１０１Ａは、デバイスドライバ１０３Ａに対してデータ入出力要求を指示することにより、デバイス制御装置２００を制御するためのソフトウェアである。
【００２３】
デバイス制御部１０２Ａは、デバイス３００Ａがローカル接続され、デバイスを認識すると情報処理装置１００Ａで使用するための制御を行う。
【００２４】
デバイスドライバ１０３Ａは、デバイス３００を制御するための機能部である。ＯＳまたはアプリケーション１０１Ａからのデータ入出力要求を、デバイス３００に応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドを仮想化制御部１０６Ａに送る。さらに、デバイスドライバ１０３Ａは、制御コマンドに対する応答をアプリケーション１０１Ａに通知する。このデバイスドライバ１０３Ａは一般に、製造したメーカーによって提供されるソフトウェアであって、情報処理装置１００Ａは各デバイスに対応したデバイスドライバ１０３Ａによってデバイス３００を制御することができる。
【００２５】
画面転送部１０４Ａは、通信制御部１０８Ａを通して、情報処理装置１００Ａの画面情報および配置情報をデバイス制御装置２００に転送する。画面情報とは、一例として情報処理装置１００Ａでキャプチャした画面である。なお、画面情報はキャプチャした画面に限定したものではない。配置情報とは、複数の情報処理装置１００の画面をデバイス制御装置２００で表示するときの画面中での並びのことである。なお、配置情報についてデバイス制御装置２００との間で予め決められているような場合は、配置情報を送信せず、画面転送部１０４Ａは、画面情報を予め決められた座標上へ送信するようにしてもよい。
【００２６】
仮想化デバイス制御部１０５Ａは、情報処理装置１００Ａが後述する第１の仮想化制御または第２の仮想化制御の「仮想化クライアント」（仮想化制御される側の装置）となる場合に、情報処理装置１００Ａに接続されたデバイス３００Ａがあたかもデバイス制御装置２００にローカル接続されているかのようにデバイス制御装置２００、情報処理装置１００Ｂまたは情報処理装置１００Ｃへ認識させて制御できるようにするため、デバイス制御装置２００からの制御要求に従って（連動して）デバイス３００Ａの制御を行う。第１の仮想化制御および第２の仮想化制御については、図２にて後述する。
【００２７】
仮想化制御部１０６Ａは、情報処理装置１００Ａが第２の仮想化制御の仮想化サーバ（仮想化制御する側の装置）となる場合に、情報処理装置１００Ａまたはデバイス制御装置２００からの仮想化開始要求に応じ、デバイスドライバ１０３Ａとの接続を行う。仮想化制御部１０６Ａは、デバイスドライバ１０３Ａから送られた制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換する。また、仮想化制御部１０６Ａは通信制御部１０８Ａから送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１０３Ａに送る。
【００２８】
さらに、仮想化制御部１０６Ａは、デバイス制御装置２００または、他の情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）に接続されているデバイス３００（デバイス３００Ｂ、デバイス３００Ｃ）に対するデータ送受信要求に対して、デバイス制御装置２００または、他の情報処理装置１００に接続されているデバイス３００が直接的に接続（ローカル接続）されている際と同様の振る舞いをシミュレートする機能（以下「仮想化制御機能」と呼ぶ）を備えている。この仮想化制御機能により、情報処理装置１００Ａはデバイス３００を情報処理装置１００Ａ自身に物理的に接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
【００２９】
また、仮想化制御部１０６Ａは、デバイス制御装置２００への仮想化制御の開始（接続）、仮想化制御の終了（切断）を行う。
【００３０】
画面指示情報転送部１０７Ａは、通信制御部１０８Ａを介して、情報処理装置１００Ａの画面指示情報をデバイス制御装置２００に転送する。画面指示情報とは、情報処理装置１００で使用されるデバイス３００Ａを制御する際のカーソルの座標（Ｘ座標、Ｙ座標）である。画面指示情報にはカーソル画像を含んでもよい。
【００３１】
通信制御部１０８Ａは、仮想化デバイス制御部１０５Ａおよび仮想化制御部１０６Ａから送られるＵＳＢデータとネットワークを介してデバイス制御装置２００と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００と他の情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）の間でデータ送受信の制御を行う。また、通信制御部１０８Ａは仮想化制御部１０６Ａを介してアプリケーション１０１Ａまたはデバイスドライバ１０３Ａから送られるデータ送受信要求の受信に応じて、デバイス制御装置２００とのセッションを開始（接続）し、データの送受信が完了すると、セッションを終了（切断）する。
【００３２】
また、通信制御部１０８Ａは、画面転送部１０４Ａからの情報と画面指示情報転送部１０７Ａからの情報をデバイス制御装置２００の通信制御部２０１に転送する。
【００３３】
情報処理装置１００Ｂおよび情報処理装置１００Ｃは、情報処理装置１００Ａと同様の構成要素を備えるため、その説明を省略する。
【００３４】
＜デバイス制御装置２００の構成＞
デバイス制御装置２００は、例えば、プロジェクタやディスプレイなどの周辺機器であって、ハードウェア構成として、ＣＰＵ２５１、入力部２５２、表示部２５３、メモリ２５４、通信部２５５、映像出力部２５６、および記憶部２２０を備えている。
【００３５】
ＣＰＵ２５１はデバイス制御装置２００全体の制御を司る。入力部２５２は、例えば、操作ボタン、テンキーを備えている。表示部２５３として、例えば、液晶モニタが用いられる。メモリ２５４はＲＡＭおよびＲＯＭ等である。
【００３６】
通信部２５５はＬＡＮに接続するためのインターフェースであって、情報処理装置１００とデータ送受信を行う。
【００３７】
映像出力部２５６は、後述する画像合成部２０９で合成した画面を投影する。
【００３８】
記憶部２２０には、ソフトウェアであるＯＳ（不図示）、通信制御部２０１、デバイス接続先切替制御部２０２、仮想化デバイス制御部２０３、仮想化制御部２０４、デバイスドライバ２０５、映像処理部２０６、およびアプリケーション２１０が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ２５４に読み出されて、ＣＰＵ２５１の制御に従い動作する。
【００３９】
通信制御部２０１は、ＯＳの制御に従ってネットワーク経由で接続されている情報処理装置１００との間のセッション（接続）の開始および終了を制御するソフトウェアである。
【００４０】
さらに、通信制御部２０１は、情報処理装置１００から転送された情報処理装置１００の画面情報、画面指示情報および配置情報を受信し、画面指示情報受信部２０７へ画面指示情報を送信し、画面受信部２０８へ画面を送信する。画面および画面指示情報はデバイス接続先切替制御部２０２にも転送される。
【００４１】
デバイス接続先切替制御部２０２は、情報処理装置１００の画面を受信し、映像処理部２０６が管理する配置情報から仮想化接続先判定情報を作成する。配置情報とは、複数の情報処理装置１００の画面をデバイス制御装置２００で表示するときの画面中での並びのことである。配置情報は、通信制御部２０１を経由して情報処理装置１００にも通知される。
【００４２】
さらに、デバイス接続先切替制御部２０２は、作成した仮想化接続先判定情報と、画面指示情報受信部２０７で受信した情報処理装置１００の画面指示情報から仮想化制御の接続先の切り替えの要否を判断し、仮想化制御の切り替えが必要と判断した場合に、次に仮想化サーバまたは仮想化クライアントとなる情報処理装置１００を判定し、仮想化デバイス制御部２０３または仮想化制御部２０４へ仮想化制御の切り替えを要求する。このデバイス接続先切替制御部２０２の判定により、第１の仮想化制御または第２の仮想化制御を行うアクティブな装置を決定し、決定した仮想化制御を有効化する。デバイス接続先切替制御部２０２は、この仮想化制御の切り替えにより、第２の仮想化制御を行う場合、情報処理装置１００の間の制御を仲介する。仮想化制御の切り替えの判断を行うタイミングについては後述の図６および図７で説明する。
【００４３】
仮想化デバイス制御部２０３は、第２の仮想化制御を行う際、デバイス接続先切替制御部２０２による制御の仲介に応じて、通信制御部２０１を介して、仮想化制御部１０６とのデータ入出力要求を行う。
【００４４】
仮想化制御部２０４は、第１の仮想化制御の際にデバイス制御装置２００が仮想化サーバとなるための仮想化制御機能を備えている。この仮想化制御機能により、デバイス制御装置２００はデバイス３００をデバイス制御装置２００自身にローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
【００４５】
また、仮想化制御部２０４は、ＬＡＮに接続された情報処理装置１００への仮想化制御の開始（接続）、仮想化制御の終了（切断）を行う。仮想化制御の要求は、デバイス接続先切替制御部２０２が行い、仮想化制御中の情報処理装置１００との仮想化制御を終了（切断）し、次に仮想化制御する他の情報処理装置１００に仮想化制御の開始（接続）を行う。
【００４６】
デバイスドライバ２０５は、ＯＳまたはアプリケーション２１０からのデータ入出力要求を、デバイス３００に応じたデータ形式に変換して、当該制御コマンドを仮想化制御部２０４に送る。さらに、デバイスドライバ２０５は、制御コマンドに対する応答をアプリケーション２１０に通知する。
【００４７】
映像処理部２０６は、画面指示情報受信部２０７、画面受信部２０８、および画像合成部２０９を備えており、情報処理装置１００から受信した配置情報を管理している。
【００４８】
画面指示情報受信部２０７は、１台もしくは複数台の情報処理装置１００から画面指示情報を受信する。また、画面指示情報受信部２０７は、情報処理装置１００から受信した画面指示情報を投影画面上の画面指示情報へ変換し、変換した画面指示情報を画像合成部２０９へ送信する。画面指示情報は、情報処理装置１００上での座標情報であり、画像合成部２０９で合成する際には投影画面上の座標に変換しておく必要がある。ただし、変換が不要な場合は、情報処理装置１００から受信した画面指示情報をそのまま使用してもよい。変換が不要な場合とは、情報処理装置１００上での座標と投影画面上での座標が一致する場合などである。
【００４９】
画面受信部２０８は、１台もしくは複数台の情報処理装置１００の画面（画面情報）を受信する。
【００５０】
画像合成部２０９は、受信した複数の画面指示情報および複数の画面情報を１つの画面に合成する。画面指示情報受信部２０７で受信した画面指示情報と画面受信部２０８で受信した画面情報から、映像出力部２５６で投影する画面を配置情報に基づき合成する。合成した画面は複数の情報処理装置１００の画面を並べて投影する画面であり、また、仮想化制御している画面指示情報を重畳した画面となる。
【００５１】
アプリケーション２１０は、デバイスドライバ２０５に対してデータ入出力要求を指示することによって、デバイス３００を制御するためのソフトウェアプログラムである。
【００５２】
＜デバイス３００Ａの構成＞
デバイス３００Ａは、情報処理装置１００ＡにＵＳＢインターフェースによって外付けでローカル接続されている。デバイス３００の例として、マウスやジョイスティックなどがあり、情報処理装置１００の操作を行う他、デバイス制御装置２００によって仮想化制御されたデバイス３００Ａを操作することで、デバイス制御装置２００の操作が可能となる。
【００５３】
デバイス３００Ｂおよびデバイス３００Ｃは、デバイス３００Ａと同様の構成要素を備えるため、その説明を省略する。
【００５４】
＜第１の仮想化制御および第２の仮想化制御について＞
図２は、第１の仮想化制御および第２の仮想化制御を説明するための図である。図２では、情報処理装置１００Ａが仮想化クライアントである場合の例示を行うが、情報処理装置１００Ｂおよび情報処理装置１００Ｃが仮想化クライアントである場合も同様である。なお、図１に示す構成要素と同一の構成要素については同一の参照番号を付して、説明を省略する。
【００５５】
図２（ａ）は、図１に示すデバイス制御システムにおいて第１の仮想化制御を説明するための図である。この場合、デバイス制御装置２００は仮想化サーバ、情報処理装置１００Ａは仮想化クライアントとして制御を行う。また、図中の矢印は制御経路を示し、破線枠の構成要素は、第１の仮想化制御の構成時に機能を使用しない構成要素を示している。
【００５６】
図２（ａ）で示した構成では、情報処理装置１００Ａのデバイス制御部１０２Ａ、仮想化デバイス制御部１０５Ａおよび通信制御部１０８Ａと、デバイス制御装置２００の通信制御部２０１、デバイス接続先切替制御部２０２、仮想化制御部２０４を経由して連携させることにより、デバイス制御装置２００のデバイスドライバ２０５を使って情報処理装置１００Ａに接続されたデバイス３００Ａを仮想化制御する。
【００５７】
図２（ｂ）は、図１に示すデバイス制御システムにおいて第２の仮想化制御を説明するための図である。この場合、情報処理装置１００Ｂは仮想化サーバ、情報処理装置１００Ａは仮想化クライアントとして制御を行う。また、デバイス制御装置２００は、第２の仮想化制御の際、情報処理装置１００Ａと情報処理装置１００Ｂの間の制御を仲介する。また、図中の矢印は制御経路を示し、破線枠の構成要素は、第２の仮想化制御の構成時に機能を使用しない構成要素を示している。
【００５８】
図２（ｂ）で示した構成では、情報処理装置１００Ａのデバイス制御部１０２Ａ、仮想化デバイス制御部１０５Ａおよび通信制御部１０８Ａと、デバイス制御装置２００の通信制御部２０１、デバイス接続先切替制御部２０２および仮想化デバイス制御部２０３を経由し、更に情報処理装置１００Ｂの通信制御部１０８Ｂ、仮想化制御部１０６Ｂと連携させることにより、情報処理装置１００Ｂのデバイスドライバ１０３Ｂを使って情報処理装置１００Ａに接続されたデバイス３００Ａを仮想化制御する。
【００５９】
また、情報処理装置１００は仮想化サーバと仮想化クライアントの２つの機能を持ち、仮想化サーバまたは仮想化クライアントのいずれかとして動作する。必要に応じて仮想化サーバと仮想化クライアントとして動作を切り替える。
【００６０】
＜情報処理装置１００のフローチャートについて＞
図３は、図１に示す情報処理装置１００の画面をデバイス制御装置２００で投影し、情報処理装置１００がデバイス３００を仮想化制御する際のフローチャートである。
【００６１】
デバイス制御装置２００で投影を行う情報処理装置１００の画面情報、画面指示情報、および配置情報をデバイス制御装置２００へ送信する（ステップＳ３０１）。なお、画面指示情報と配置情報を送信するのはマスタとなる情報処理装置１００Ａである。
【００６２】
情報処理装置１００は、デバイス制御装置２００からデバイス３００との仮想化開始要求があるか否かを判定する（ステップＳ３０２）。
【００６３】
仮想化制御部１０６が仮想化開始要求を送信または受信した場合（ステップＳ３０２でＹｅｓ）、デバイス３００との第１の仮想化制御または第２の仮想化制御を開始する（ステップＳ３０３）。一方、仮想化開始要求の送受信がない場合（ステップＳ３０２でＮｏ）、仮想化終了要求があるか否かを判定する（ステップＳ３０４）。
【００６４】
仮想化終了要求がある場合（ステップＳ３０４でＹｅｓ）、デバイス３００との仮想化制御を終了（切断）する（ステップＳ３０５）。
【００６５】
仮想化制御の開始（接続）、仮想化制御の終了（切断）に関わらず、デバイス制御装置２００での投影は継続するため、ステップＳ３０１に戻り情報処理装置１００の画面情報、画面指示情報、および配置情報を送信する。
【００６６】
＜デバイス制御装置２００のフローチャート（全体）について＞
図４は、図１に示すデバイス制御装置２００がデバイス３００と仮想化制御を行う情報処理装置１００を切り替える処理を説明するフローチャートである。
【００６７】
デバイス制御装置２００は、情報処理装置１００から画面情報、画面指示情報および配置情報を受信する（ステップＳ４０１）。
【００６８】
次に、デバイス接続先切替制御部２０２は、画面配置に変更があるかを判断する（ステップＳ４０２）。ここで、画面配置に変更がある場合とは、情報処理装置１００が新たに追加もしくは削除されてデバイス制御装置２００が画面を投影する情報処理装置１００の台数が変動した場合や、情報処理装置１００の画面配置を入れ替えた場合などである。ステップＳ４０２でＹｅｓの場合はステップＳ４０４へ進み、ステップＳ４０２でＮｏの場合はステップＳ４０３へ進む。
【００６９】
投影画面上の情報処理装置１００の画面配置に変更がない場合（ステップＳ４０２でＮｏ）、それぞれの情報処理装置１００の接続優先度の設定に変更があるかを判断する（ステップＳ４０３）。ステップＳ４０３でＹｅｓの場合はステップＳ４０４へ進み、ステップＳ４０３でＮｏの場合はステップＳ５００へ進む。
【００７０】
投影画面上の情報処理装置１００の画面配置に変更がある場合（ステップＳ４０２でＹｅｓ（初回の投影の場合を含む））、または情報処理装置１００の接続優先度に変更がある場合（ステップＳ４０３でＹｅｓ）、仮想化接続先判定情報を投影する画面の配置情報および接続優先度に基づき作成・更新する（ステップＳ４０４）。仮想化接続先判定情報は、デバイス制御装置２００が情報処理装置１００の画面を投影する際、各情報処理装置１００から受信した画面が投影画面中のどの座標に投影しているか、あるいは、複数の仮想化制御要求があった場合にどの仮想化制御要求を成立させるか等、接続優先度に関する情報であり、仮想化制御の切り替え判断に使用される。仮想化接続先判定情報については図８にて後述する。
【００７１】
情報処理装置１００から受信した画面指示情報と、作成・更新した仮想化接続先判定情報から仮想化制御判定処理（ステップＳ５００）を行う。仮想化制御判定処理（ステップＳ５００）についての詳細は図５にて後述する。
【００７２】
情報処理装置１００から受信した画面情報、画面指示情報および配置情報から投影画面を画像合成部２０９で合成し（ステップＳ４０５）、合成した画面を映像出力部２５６が投影する（ステップＳ４０６）。
【００７３】
図４のフローは投影終了まで繰り返される（ステップＳ４０７）。
【００７４】
＜仮想化制御判定処理＞
図５は、図１に示すデバイス制御装置２００が行うステップＳ５００の仮想化制御判定の処理を説明するためのフローチャートである。
【００７５】
デバイス制御装置２００は、情報処理装置１００またはデバイス制御装置２００から仮想化開始要求があるかを判断する（ステップＳ５０１）。情報処理装置１００またはデバイス制御装置２００からの仮想化開始要求がない場合（ステップＳ５０１でＮｏ）、仮想化制御判定を終了する。
【００７６】
情報処理装置１００またはデバイス制御装置２００から仮想化開始要求があった場合（ステップＳ５０１でＹｅｓ）、デバイス接続先切替制御部２０２は、既に開始済みの仮想化制御が存在するかを判断する（ステップＳ５０２）。
【００７７】
既に開始済みの仮想化制御が存在する場合（ステップＳ５０２でＹｅｓ）、新規の仮想化開始要求に対して、仮想化制御の切替判定処理を行う（ステップＳ６００）。仮想化制御の切替判定に関する処理については図６の説明で後述する。
【００７８】
既に開始済みの仮想化制御が存在しない場合（ステップＳ５０２でＮｏ）、図４のステップＳ４０４で作成した仮想化接続先判定情報に含まれる許可情報から、仮想化開始要求を出した情報処理装置１００が仮想化制御の対象として許可されているかを判断する（ステップＳ５０３）。仮想化制御が許可されていないと判断された場合（ステップＳ５０３でＮｏ）、仮想化制御判定処理を終了する。なお、許可情報については図８の説明にて後述する。
【００７９】
仮想化開始要求を出した情報処理装置１００（仮想化クライアント）とデバイス制御装置２００（仮想化サーバ）は、第１の仮想化制御としてデバイス３００の仮想化制御を開始する（ステップＳ５０４）。
【００８０】
第１の仮想化制御の開始後、もしくは仮想化制御の切替判定処理の終了後、仮想化制御判定を終了する。
【００８１】
＜仮想化制御先の切替判定に関する処理＞
図６は、図５に示す仮想化制御判定のフローチャートにおけるステップＳ６００の仮想化制御先の切替判定に関する処理を説明するためのフローチャートである。ここでは、情報処理装置１００Ａがデバイス制御装置２００または、その他の情報処理装置１００と連動しデバイス３００Ａを仮想化制御（第１の仮想化制御または第２の仮想化制御）しているものとして説明を開始する。
【００８２】
デバイス接続先切替制御部２０２は、仮想化開始要求を出している情報処理装置１００と既に仮想化制御している情報処理装置１００が同一であるかを判断する（ステップＳ６０１）。例えば、現在、仮想化クライアントとして仮想化制御を行っている情報処理装置１００（情報処理装置１００Ａ）とは異なる他の情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）からの仮想化開始要求の場合（ステップＳ６０１でＹｅｓ）、ステップＳ６０２に進む。既に仮想化クライアントとして仮想化制御を行っている情報処理装置１００（情報処理装置１００Ａ）からのデータ入出力要求の場合（ステップＳ６０１のＮｏ）、ステップＳ６０７に進む。
【００８３】
ステップＳ６０１でＹｅｓの場合、デバイス接続先切替制御部２０２は、仮想化接続先判定情報に含まれる許可情報から、仮想化開始要求を出した情報処理装置１００が仮想化制御の対象として許可されているかを判断する（ステップＳ６０２）。仮想化制御が許可されていないと判断された場合は、仮想化制御先の切替判定に関する処理を終了する（ステップＳ６０２でＮｏ）。
【００８４】
仮想化制御が許可されている場合（ステップＳ６０２でＹｅｓ）、デバイス接続先切替制御部２０２は、仮想化接続先判定情報に含まれる接続優先度情報を参照し、仮想化開始要求を出した情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）の接続優先度と既存の仮想化制御を行っている情報処理装置１００（情報処理装置１００Ａ）の接続優先度を比較し、仮想化制御の切り替えを行うか判断する（ステップＳ６０３）。仮想化開始要求を出した情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）の接続優先度が、既存の仮想化制御を行っている情報処理装置１００（情報処理装置１００Ａ）の接続優先度よりも低いと判断した場合（ステップＳ６０３でＮｏ）、デバイス接続先切替制御部２０２は、仮想化制御の切替判定に関する処理を終了する。
【００８５】
接続優先度が高いと判断した場合（ステップＳ６０３でＹｅｓ）、デバイス接続先切替制御部２０２は、現在の仮想化制御が第２の仮想化制御であるかを判断する（ステップＳ６０４）。現在の仮想化制御が第２の仮想化制御である場合（ステップＳ６０４でＹｅｓ）、第２の仮想化制御の終了（切断）を行う（ステップＳ６０５）。このとき、デバイス接続先切替制御部２０２は、仮想化デバイス制御部２０３を介し、仮想化サーバである情報処理装置１００（情報処理装置１００Ｂまたは情報処理装置１００Ｃ）に仮想化終了要求を送信する。
【００８６】
その後、デバイス接続先切替制御部２０２は、仮想化制御部２０４へ仮想化開始要求を送信し、仮想化開始要求を出した仮想化クライアントとなる情報処理装置１００（情報処理装置１００Ｂ、情報処理装置１００Ｃ）との第１の仮想化制御を開始し（ステップＳ６０６）、仮想化制御の切替判定に関する処理を終了する。
【００８７】
一方、ステップＳ６０１でＮｏの場合、デバイス接続先切替制御部２０２は、仮想化接続先判定情報に含まれる座標範囲情報と受信した画面指示情報から、デバイス３００Ａの画面指示情報が現在の仮想化制御されている情報処理装置１００（仮想化クライアント）の画面の投影範囲外にあるか判断する（ステップＳ６０７）。デバイス３００Ａの画面指示情報が情報処理装置１００の画面の投影範囲内にある場合（ステップＳ６０７でＮｏ）、仮想化制御の切り替えは不要となるため、仮想化制御先の切替判定に関する処理を終了する。
【００８８】
デバイス３００Ａの画面指示情報が情報処理装置１００の投影範囲外にある場合（ステップＳ６０７でＹｅｓ）、デバイス接続先切替制御部２０２は、仮想化接続先判定情報に含まれる情報に含まれる許可情報から、次の仮想化制御の対象となる情報処理装置１００（仮想化サーバ）が仮想化制御の対象として許可されているかを判断する（ステップＳ６０８）。デバイス接続先切替制御部２０２が仮想化制御が許可されていないと判断した場合（ステップＳ６０８でＮｏ）、仮想化制御先の切替判定に関する処理を終了する。
【００８９】
仮想化制御が許可されていると判断した場合（ステップＳ６０８でＹｅｓ）、デバイス接続先切替制御部２０２は、情報処理装置１００Ａが仮想化クライアントとして第２の仮想化制御を行っているか判断する（ステップＳ６０９）。
【００９０】
情報処理装置１００Ａが仮想化クライアントとして第２の仮想化制御を行っている場合（ステップＳ６０９でＹｅｓ）、デバイス接続先切替制御部２０２は、受信した画面指示情報が、仮想化サーバである情報処理装置１００の座標範囲外にあるかを判断する（ステップＳ６１０）。
【００９１】
受信した画面指示情報が仮想化サーバである情報処理装置１００の座標範囲外ではないと判断された場合（ステップＳ６１０でＮｏ）、仮想化制御の切り替えが必要ないため、仮想化制御先の切替判定に関する処理を終了する。
【００９２】
仮想化制御の切り替えが必要と判断された場合（ステップＳ６１０でＹｅｓ）、デバイス接続先切替制御部２０２は、仮想化サーバである情報処理装置１００との第２の仮想化制御を終了（切断）し、次に仮想化サーバとして第２の仮想化制御を行う情報処理装置１００へ仮想化制御の切り替えを行う（ステップＳ６１１）。このとき、デバイス接続先切替制御部２０２は、仮想化デバイス制御部２０３を介し、第２の仮想化制御を終了する情報処理装置１００へ仮想化終了要求を送信し、第２の仮想化制御を開始する情報処理装置１００へ仮想化開始要求を送信する。その後、仮想化制御先の切替判定に関する処理を終了する。
【００９３】
一方、第１の仮想化制御から第２の仮想化制御への切り替えが必要と判断された場合（ステップＳ６０９でＮｏ）、デバイス接続先切替制御部２０２は、第１の仮想化制御を行っているデバイス制御装置２００（仮想化サーバ）から、次に第２の仮想化制御を開始する仮想化サーバとなる情報処理装置１００（情報処理装置１００Ｂまたは情報処理装置１００Ｃ）へ仮想化制御を切り替える（ステップＳ６１２）。このとき、デバイス接続先切替制御部２０２は、仮想化デバイス制御部２０３を介し、仮想化サーバとなる情報処理装置１００へ仮想化開始要求を送信する。
【００９４】
仮想化制御の切り替え後、もしくは仮想化制御の切り替えが不要と判断された場合に仮想化制御先の切替判定に関する処理を終了する。情報処理装置１００Ｂまたは情報処理装置１００Ｃの仮想化制御の場合も、デバイス接続先切替制御部２０２が同様の処理を行う。
【００９５】
＜投影画面の制御について＞
図７は、６台の情報処理装置１００の画面をデバイス制御装置２００で投影する画面の一例を説明するための図である。
【００９６】
この例では、６台の情報処理装置１００の画面が、デバイス制御装置２００の投影画面上で縦２列×横３列に合成されている。なお、情報処理装置１００の台数は６台に限定されない。また、縦横の配置はデバイス制御装置２００の投影画面の縦横比に応じて適切に決めればよい。
【００９７】
１台目の情報処理装置１００Ａを左上に配置し、座標（０、０）〜座標（Ｘ１、Ｘ２）の範囲で投影される。情報処理装置１００またはデバイス制御装置２００がデバイス３００Ａを仮想化制御している場合、この座標の範囲内で画面指示情報が重畳して表示される。
【００９８】
２台目の情報処理装置１００Ｂは情報処理装置１００Ａの右隣に配置し、座標（Ｘ１、０）〜（Ｘ２、Ｙ１）の範囲で投影される。情報処理装置１００またはデバイス制御装置２００がデバイス３００Ｂを仮想化制御している場合、この座標の範囲内で画面指示情報が重畳して表示される。
【００９９】
３台目の情報処理装置１００Ｃは、情報処理装置１００Ｂの右隣に配置する。４台目の情報処理装置１００Ｄは、情報処理装置１００Ａの下に配置し、５台目の情報処理装置１００Ｅは、情報処理装置１００Ｄの右隣に配置する。そして、６台目の情報処理装置１００Ｆは、情報処理装置の右隣である投影画面上の右下に配置される。３台目〜６台目の情報処理装置１００も情報処理装置１００Ａや情報処理装置１００Ｂと同様に、投影する座標の範囲が決められ、デバイス３００の仮想化制御を行っている場合、画面指示情報が重畳されて投影される。
【０１００】
図のような配置上でデバイス制御装置２００が画面情報、画面指示情報および配置情報に基づき、投影する画面を合成し、投影する。
【０１０１】
各情報処理装置１００がデバイス制御装置２００のどの座標範囲に該当するかを、配置情報として図８にて後述する仮想化接続先切替判定情報に反映される。
【０１０２】
各情報処理装置１００の画面は、デバイス制御装置２００で投影する際に１枚の画面に合成されるが、デバイス制御装置２００上で情報処理装置１００の１画面分に割り当てられた分割領域（デバイス制御装置分割領域）とローカルな情報処理装置１００の画面（情報処理装置表示領域）は図示のような相対的な位置関係を仮想化接続先切替判定情報に持つ。
【０１０３】
＜仮想化接続先判定情報ついて＞
図８は、図７と同様に６台の情報処理装置１００で仮想化制御の切り替えを判定する仮想化接続先判定情報の一例である。
【０１０４】
この例では、仮想化接続先判定情報として、６台のデバイス制御装置２００上で割り当てられた座標範囲情報（Ｘ座標範囲／Ｙ座標範囲）および情報処理装置１００上での情報処理装置座標範囲情報（情報処理装置Ｘ座標範囲／情報処理装置Ｙ座標範囲）の配置情報と、各情報処理装置と各範囲を紐付けるＩＰアドレス、仮想化制御を行う際の優先度である接続優先度情報、仮想化制御の可否として許可情報などの情報を持つ。
【０１０５】
例えば、情報処理装置１００Ａは、Ｘ座標範囲が０〜Ｘ１、Ｙ座標範囲が０〜Ｙ１の範囲内でデバイス制御装置２００上に情報処理装置１００Ａの画面を投影することができる。情報処理装置１００Ａは、情報処理装置１００Ａ上のＸ座標範囲Ｘ０‘〜Ｘ１’、Ｙ座標範囲Ｙ０‘〜Ｙ１’や画面の解像度、縦横比などに応じて、Ｘ座標範囲およびＹ座標範囲に入るように調整・変換を行う。また、ＩＰアドレスが１９２．１６８．１．１であり、接続優先度が１、仮想化制御を許可していることを示している。なお、各情報処理装置を一意に識別する情報はＩＰアドレスに限定したものではなく、情報処理装置１００を一意に識別できればよく、仮想化制御の切替判定を行う情報は、接続優先度情報と許可情報に限定したものではない。
【０１０６】
デバイス制御装置２００は、仮想化接続先判定情報と情報処理装置１００から受信した画面指示情報との対応関係に基づき、第１の仮想化制御または第２の仮想化制御の対象となる情報処理装置１００の切り替えを行う。ここで、仮想化制御の切り替えは、画面指示情報の示す座標が必ずしも各情報処理装置１００の境界値と一致した時でなくてもよく、デバイス制御装置分割領域と情報処理装置表示領域との間の調整・変換と合わせて、境界値の前後など、切り替える値を変えてもよい。
【０１０７】
また、情報処理装置１００Ｂが仮想化サーバとしてデバイス制御装置２００の仲介により情報処理装置１００Ａ（仮想化クライアント）にローカル接続されたデバイス３００Ａの第２の仮想化制御を行う場合、デバイス制御装置２００が投影する合成画面上の指示情報が、情報処理装置１００Ｂのローカルな画面においてどの座標を指示しているかを、仮想化接続先判定情報が持つ座標範囲情報と情報処理装置座標範囲情報からバイリニア補完などに代表される線形補完演算などを利用して算出することで、デバイス制御装置２００の投影画面上でのシームレスな操作を行う。
【０１０８】
＜デバイス３００Ａの仮想化制御のシーケンス＞
図９は、図１に示すデバイス制御システムにおいて、情報処理装置１００Ａ、情報処理装置１００Ｂ、および情報処理装置１００Ｃの画面をデバイス制御装置２００で投影する場面で第１の仮想化制御と第２の仮想化制御について説明するためのシーケンス図である。
【０１０９】
ここでは、例えば、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００ＣをＰＣ、デバイス制御装置２００をプロジェクタ、デバイス３００ＡをＵＳＢマウスとして説明する。なお、情報処理装置１００Ａが、デバイス制御装置２００で複数の情報処理装置１００の画面を投影する際のマスタの情報処理装置であるとする。ここで、マスタとは、複数の情報処理装置１００がデバイス制御装置２００と連携して動作する際に、情報処理装置１００側の代表となり、デバイス制御装置２００に配置情報を送信する装置である。
【０１１０】
図示の例では、デバイス３００Ａを情報処理装置１００Ａにローカル接続しており、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｃおよびデバイス制御装置２００が相互にＬＡＮで接続されている状態から説明を開始する。
【０１１１】
＜仮想化接続先判定情報の作成＞
情報処理装置１００Ａ、情報処理装置１００Ｂおよび情報処理装置１００Ｃの画面転送部１０４Ａ、画面転送部１０４Ｂ、画面転送部１０４Ｃからデバイス制御装置２００の通信制御部２０１に、画面情報の転送を開始する。加えて、マスタである情報処理装置１００Ａは、ステップＳ９０１でデバイス制御装置２００へ配置情報を送信する（ステップＳ９０１、ステップＳ９０３およびステップＳ９０５）。なお、情報処理装置１００とデバイス制御装置２００の間で予め配置が決まっているような場合は送信しなくてもよい。
【０１１２】
デバイス制御装置２００の通信制御部２０１は画像情報、配置情報を受信する（ステップＳ９０２）。また、通信制御部２０１は、画面情報を受信する（ステップＳ９０４およびステップＳ９０６）。表示映像情報には、デバイス制御装置２００で表示する画面情報、画面指示情報および画面配置情報が含まれている。
【０１１３】
通信制御部２０１は、デバイス接続先切替制御部２０２に配置情報を送信する（ステップＳ９０７）。デバイス接続先切替制御部２０２は、仮想化接続先判定情報を作成する（ステップＳ９０８）。仮想化接続先判定情報は各情報処理装置１００がデバイス制御装置２００での投影時にどのように配置されるかを記憶する。また、仮想化接続先判定情報の各情報処理装置１００と配置情報の紐付けには、各情報処理装置１００のＩＰアドレスなど情報処理装置１００を一意に識別する情報を使用する。仮想化制御されている各情報処理装置１００の画面がデバイス制御装置２００の投影画面上にどの様な座標で配置されているか相対的な位置関係を記憶し、デバイス制御装置２００の投影画面上の画面指示情報を仮想化制御されている情報処理装置１００でのローカルな座標へ変換する情報処理装置座標情報も仮想化接続先判定情報に保持する。
【０１１４】
＜第１の仮想化制御処理＞
ここから、デバイス３００Ａとデバイス制御装置２００との間の第１の仮想化制御について説明する。
【０１１５】
デバイス３００Ａが情報処理装置１００Ａに接続されると、デバイス制御部１０２Ａはデバイス３００Ａを認識する。仮想化制御部２０４は、情報処理装置１００Ａへ仮想化開始要求を送信する（ステップＳ９０９）。ここで、最初に仮想化制御部２０４が仮想化開始要求を送信する情報処理装置１００は、マスタである情報処理装置１００Ａである。なお、これに限定したものではなく、配置情報の中央となる情報処理装置１００や、配置情報の左上となる情報処理装置１００などと設定してもよい。
【０１１６】
情報処理装置１００Ａが備える仮想化制御部１０６Ａは、デバイス制御装置２００から仮想化開始要求を受信すると、デバイス制御装置２００が備える仮想化制御部２０４と連動し、デバイス３００Ａとの間で第１の仮想化制御を開始し、セッションを開始する（ステップＳ９１０）。なお、このときデバイス制御装置２００が仮想化サーバ、情報処理装置１００Ａが仮想化クライアントである。
【０１１７】
デバイス制御装置２００がデバイス３００Ａとの間で第１の仮想化制御を行うと、デバイス３００Ａの操作により、デバイス制御装置２００の制御が可能となる。
【０１１８】
デバイス３００Ａは、デバイス３００Ａの操作（ステップＳ９１１）に応じて画面指示情報をデバイス制御部１０２Ａへ送信する（ステップＳ９１２）。デバイス制御部１０２Ａは、画面指示情報を仮想化デバイス制御部１０５Ａへ送信する（ステップＳ９１３）。
【０１１９】
仮想化デバイス制御部１０５Ａは、デバイス制御装置２００で投影する画面指示情報に変換し、通信制御部１０８Ａへ画面指示情報を送信する（ステップＳ９１４）。通信制御部１０８Ａは、デバイス制御装置２００の通信制御部２０１へ画面指示情報を送信する（ステップＳ９１５）。通信制御部２０１は、デバイス接続先切替制御部２０２へ画面指示情報を送信する（ステップＳ９１６）。
【０１２０】
デバイス接続先切替制御部２０２は、受信した画面指示情報の座標が投影画面中のどの情報処理装置１００の領域内にあるかを仮想化接続先判定情報に基づいて判定する（ステップＳ９１７）。
【０１２１】
仮想化接続先判定情報は、各情報処理装置１００の配置情報（座標範囲情報、情報処理装置座標範囲情報）、ＩＰアドレス、接続優先度情報、許可情報などを所持している。デバイス接続先切替制御部２０２は、仮想化接続先判定情報と画面指示情報の対応関係に基づき、画面指示情報の示す座標が、複数の情報処理装置１００間の境界値を超える場合に、デバイス３００を仮想化制御する情報処理装置１００を切り替える。境界値とは、各情報処理装置１００のＸ座標範囲、Ｙ座標範囲の境界を示す値である。なお、仮想化制御の切り替えは、必ずしも各情報処理装置１００の境界値を超える場合でなくてもよい。画面指示情報が境界値の前後で所定の座標まで来た場合に切り替えるようにしてもよいし、画面指示情報が境界値を越えて、移動先の情報処理装置１００の領域内に一定時間以上連続して止まった場合に切り替えるようにしてもよい。
【０１２２】
仮想化制御先の切替判定の際、情報処理装置１００Ａの制御範囲外であれば、デバイス接続先切替制御部２０２は、切り替えが必要と判断し、図６のステップＳ６１２で説明した第１の仮想化制御から第２の仮想化制御への切り替えを行う。
【０１２３】
仮想化制御先の切替判定の際、情報処理装置１００Ａの制御範囲内であれば、デバイス接続先切替制御部２０２は、切り替えが不要と判断し、画面指示情報を仮想化制御部２０４へ送信し、デバイス制御装置２００の制御を行う（ステップＳ９１８）。
【０１２４】
＜第２の仮想化制御処理＞
ここから、デバイス３００Ａと情報処理装置１００Ｂとの間の第２の仮想化制御について説明する。
【０１２５】
情報処理装置１００Ｂの仮想化制御部１０６Ｂは、デバイス３００Ａを仮想化制御するために仮想化開始要求をデバイス制御装置２００へ送信する（ステップＳ９１９）。
【０１２６】
仮想化制御部２０４が仮想化開始要求を受信すると、デバイス接続先切替制御部２０２は、デバイス制御装置２００が情報処理装置１００Ａの仮想化デバイス制御部１０５Ａ情報処理装置１００Ｂの仮想化制御部１０６Ｂとの間を仲介する。仮想化制御部２０４は、仮想化制御部１０６Ａと連動し、デバイス３００Ａと情報処理装置１００Ｂとの間で第２のが仮想化制御を開始し、セッションを開始する（ステップＳ９２０）。なお、このとき、情報処理装置１００Ｂが仮想化サーバとなり、情報処理装置１００Ａが仮想化クライアントとなる。
【０１２７】
情報処理装置１００Ｂがデバイス３００Ａとの間で第２の仮想化制御を行うと、デバイス３００Ａの操作により、情報処理装置１００Ｂの制御が可能となる。
【０１２８】
デバイス３００Ａは、デバイス３００Ａの操作（ステップＳ９２１）に応じて画面指示情報をデバイス制御部１０２Ａへ送信する（ステップＳ９２２）。デバイス制御部１０２Ａは、画面指示情報を仮想化デバイス制御部１０５Ａへ送信する（ステップＳ９２３）。
【０１２９】
仮想化デバイス制御部１０５Ａは、デバイス制御装置２００で投影する画面指示情報に変換し、通信制御部１０８Ａへ画面指示情報を送信する（ステップＳ９２４）。通信制御部１０８Ａは、デバイス制御装置２００の通信制御部２０１へ画面指示情報を送信する（ステップＳ９２５）。通信制御部２０１は、デバイス接続先切替制御部２０２へ画面指示情報を送信する（ステップＳ９２６）。
【０１３０】
デバイス接続先切替制御部２０２は、受信した画面指示情報の座標が投影画面中のどの情報処理装置１００の領域内にあるかを仮想化接続先判定情報に基づいて判定する（ステップＳ９２７）。
【０１３１】
仮想化接続先判定情報は、各情報処理装置１００の配置情報（座標範囲情報、情報処理装置座標範囲情報）、ＩＰアドレス、接続優先度情報、許可情報などを所持している。デバイス接続先切替制御部２０２は、仮想化接続先判定情報と画面指示情報の対応関係に基づき、画面指示情報の示す座標が、複数の情報処理装置１００間の境界値を超える場合に、デバイス３００を仮想化制御する情報処理装置１００を切り替える。
【０１３２】
仮想化制御先の切替判定の際、情報処理装置１００Ｂの制御範囲外であれば、デバイス接続先切替制御部２０２は、切り替えが必要と判断し、図６のステップＳ６１１で説明したようにデバイス３００Ａを仮想化制御（第２の仮想化制御）する情報処理装置１００を情報処理装置１００Ｂから別の情報処理装置１００へ切り替える。
【０１３３】
仮想化制御先の切替判定の際、情報処理装置１００Ｂの制御範囲内であれば、デバイス接続先切替制御部２０２は、切り替えが不要と判断し、画面指示情報を仮想化デバイス制御部２０３へ送信する（ステップＳ９２８）。
【０１３４】
仮想化デバイス制御部２０３は、仮想化接続先判定情報を用いて、情報処理装置１００Ｂのローカルな座標に対応した画面指示情報に変換し、情報処理装置１００Ｂの通信制御部１０８Ｂへ画面指示情報を送信する（ステップＳ９２９）。通信制御部１０８Ｂは、仮想化制御部１０６Ｂへ画面指示情報を送信し、情報処理装置１００Ｂの制御を行う（ステップＳ９３０）。
【０１３５】
以上、説明したとおり、上記の実施形態によって、デバイス制御装置で表示している情報処理装置１００の配置情報と、仮想化制御しているネットワーク上の情報処理装置のカーソル座標情報から、次に仮想化制御する情報処理装置１００またはデバイス制御装置２００を判定し、仮想化制御の切り替えが可能となる。
【０１３６】
デバイス制御装置２００で投影している情報処理装置１００の画面指示情報と、仮想化制御しているネットワーク上の情報処理装置１００のカーソルの座標情報から、仮想化制御の切り替えの要否と、切り替え先の情報処理装置１００を判定し、仮想化制御の切り替えを行うことにより、ユーザは明示的な仮想化制御の切り替え操作を行う必要がなくなり、投影している複数の情報処理装置１００を一つの情報処理装置と見なしたような操作が可能となる。
【０１３７】
また、ユーザが切り替え操作を明示的に行う必要がなくなり、情報処理装置１００の操作の応答性を早くすることが可能となる。さらに、ユーザは誤操作をすることがなくなり、意図しない情報処理装置１００への仮想化制御を回避することが可能となる。
【０１３８】
なお、デバイス３００を操作することによるカーソルの移動から、第１の仮想化制御と第２の仮想化制御を切り替えると説明したが、情報処理装置１００の配置の境界付近を交互に移動するような場合や、複数の情報処理装置をまたいだ移動の場合に無駄な切り替えが発生する場合がある。このような場合には、仮想化接続先情報を参照し、所定時間以上、所定の情報処理装置１００の範囲内にカーソルがある場合に、仮想化制御を切り替えることも可能である。
【０１３９】
また、複数台の情報処理装置１００の画面を投影する場合、情報処理装置１００が備える画面転送部１０４が画面転送を行わず非表示とした場合、デバイス制御装置２００では配置情報に基づき非表示とした情報処理装置１００の画面を表示しない。そうした場合、非表示であっても仮想化制御が可能であるため誤操作する可能性がある。このとき、非表示とした情報処理装置１００をデバイス制御装置２００が検知すると、デバイス接続先切替制御部２０２は、非表示として情報処理装置１００が仮想化制御をできないようにし、誤操作を防ぐことも可能である。非表示にする情報処理装置１００がデバイス３００の仮想化制御を行っていた場合には、仮想化制御を終了（切断）する。
【０１４０】
投影している途中で配置情報が変更された際、変更された配置情報に基づき、画面指示情報受信部２０７がデバイス制御装置２００に対応した画面指示情報に変換することで、デバイス接続先切替制御部２０２が仮想化制御を行う情報処理装置１００を切り替えることなく、情報処理装置１００とデバイス３００の仮想化制御を継続することも可能である。あるいは、配置情報の変更に合わせて、デバイス接続先切替制御部２０２は仮想化制御を行う情報処理装置１００を切り替えてもよい。配置情報が変更された場合は、仮想化制御を終了し、デバイス制御装置２００のポインタとして画面指示情報を使用することもできる。
【０１４１】
仮想化制御している情報処理装置１００が仮想化制御中に別の情報処理装置に置き換えられたような場合、画面情報を送信している別の情報処理装置１００に仮想化制御を行う情報処理装置を切り替えることも可能である。
【０１４２】
天吊りや背面投影などデバイス制御装置２００の設置状態によっては、デバイス制御装置２００にデバイス３００を接続できない場合に、情報処理装置１００に接続されたデバイス３００を接続することで操作を行うことができ、利便性を向上させることもできる。
【０１４３】
なお、デバイス制御装置２００は、プロジェクタやプリンタ等のオフィス機器に限定されるものではなく、様々な組込み装置、携帯電話機、またはモバイル端末機器であってもよい。
【０１４４】
図１に示すデバイス制御システムでは、情報処理装置１００とデバイス３００をそれぞれ別体の装置で構成しているが、情報処理装置１００をデバイス３００のケーシング内に収まるように一体構造としても良い。
【０１４５】
以上、本発明について上記各実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。仮想化制御を切り替えるための所定の情報に応じて、仮想化制御の切り替えを行うようなものは本発明に含まれる。
【０１４６】
例えば、上記の実施の形態の機能を制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１４７】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施の形態の機能を実現するソフトウェア（プログラム）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１４８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０１４９】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【０１５０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０１５１】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０１５２】
１００：情報処理装置
１１０：記憶部
１０１：アプリケーション
１０２：デバイス制御部
１０３：デバイスドライバ
１０４：画面転送部
１０５：仮想化デバイス制御部
１０６：仮想化制御部
１０７：画像指示情報転送部
１０８：通信制御部
１５１：ＣＰＵ
１５２：入力部
１５３：表示部
１５４：メモリ
１５５：通信部
２００：デバイス制御装置
２２０：記憶部
２０１：通信制御部
２０２：デバイス接続先切替制御部
２０３：仮想化デバイス制御部
２０４：仮想化制御部
２０５：デバイスドライバ
２０６：映像処理部
２０７：画像指示表示受信部
２０８：画像受信部
２０９：画像合成部
２１０：アプリケーション
２５１：ＣＰＵ
２５２：入力部
２５３：表示部
２５４：メモリ
２５５：通信部
２５６：映像出力部
３００：デバイス
【図１】
2019121047.tif 000003
【図２】
2019121047.tif 000004
【図３】
2019121047.tif 000005
【図４】
2019121047.tif 000006
【図５】
2019121047.tif 000007
【図６】
2019121047.tif 000008
【図７】
2019121047.tif 000009
【図８】
2019121047.tif 000010
【図９】
2019121047.tif 000011