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