JP2016091434A - 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム - Google Patents
情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム Download PDFInfo
- Publication number
- JP2016091434A JP2016091434A JP2014227599A JP2014227599A JP2016091434A JP 2016091434 A JP2016091434 A JP 2016091434A JP 2014227599 A JP2014227599 A JP 2014227599A JP 2014227599 A JP2014227599 A JP 2014227599A JP 2016091434 A JP2016091434 A JP 2016091434A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- processing apparatus
- control
- information
- cooperation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Telephone Function (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】情報処理装置に具備されている内部デバイスがデバイス制御装置の機能として複数仮想化制御されている場合に、それらの内部デバイス間で連携が可能なデバイス制御装置、その制御方法、およびデバイス制御システムを提供する。【解決手段】情報処理装置が具備する内部デバイスをネットワーク上のデバイス制御装置で仮想化制御し、その内部デバイスを操作することで別の情報処理装置が具備する内部デバイスを選択し、選択した内部デバイスをデバイス制御装置で仮想化制御し、デバイス制御装置が内部デバイスの制御を仲介することで複数の内部デバイス間で連携する。【選択図】図1
Description
本発明は、ネットワークを介して接続された携帯端末から送られる各種要求を処理するためのデバイス制御装置、その制御方法、およびデバイス制御システムに関する。
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置であるクライアントPCが共有デバイスとして利用することが行われている。その実現方法がいくつか提案されている。
例えば、本出願人は、携帯電話、PDA、あるいはスマートフォンなどの情報処理装置に具備されている操作パネル(内部デバイス)を、プリンタや複合機などのデバイス制御装置の入出力機能として仮想化制御し、情報処理装置からデバイス制御装置を遠隔操作することで印刷やスキャンを実行させるデバイス制御システムを提案している(例えば、特許文献1参照)。
本発明は、特許文献1のデバイス制御システムを更に発展させ、複数の情報処理装置に具備されている内部デバイスがデバイス制御装置の機能としてそれぞれ仮想化制御されている場合に、それらの内部デバイス間で連携が可能な情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システムを提供することを目的とする。
上記の目的を達成するため、本発明による情報処理装置は、ネットワークを介してデバイス制御装置に接続された情報処理装置であって、前記情報処理装置が具備する所定の機能を有した内部デバイスをデバイス制御装置に直接接続されたデバイスとして識別させるための仮想デバイス識別情報を記憶する識別情報記憶手段と、前記仮想デバイス識別情報を前記デバイス制御装置に送信する識別情報送信手段と、前記デバイス制御装置が前記仮想デバイス識別情報に応じて識別した前記内部デバイスを、当該デバイス制御装置からの制御要求に従って制御する際、前記内部デバイスとの間のデータ通信は第1のデータ形式に変換し、前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想デバイス制御手段と、ネットワーク上の他の情報処理装置が具備する所定の機能を有した内部デバイスを認識する連携デバイス認識手段と、前記デバイス制御装置を介して、ネットワーク上の他の情報処理装置が具備する所定の機能を前記内部デバイスとして当該デバイス制御装置への接続・切断の指示を送信する連携通信手段と、前記デバイス制御装置を介して前記連携デバイス認識手段が認識した前記内部デバイスを制御する連携操作手段と、を有することを特徴とする。
上記の目的を達成するため、本発明によるデバイス制御装置は、ネットワークを介して複数の情報処理装置が接続されているデバイス制御装置であって、前記情報処理装置の内部デバイスをデバイス識別情報にもとづいて識別し、識別したデバイスの種類に応じて当該デバイスにデバイスドライバを割り当てるデバイス識別手段と、前記情報処理装置に接続されたデバイスが自身に接続されているかのようにネットワーク上での通信を介してシミュレートする仮想化制御手段と、前記情報処理装置に送信するためにネットワーク上の複数の情報処理装置が具備する機能の情報を管理する連携情報管理手段と、前記情報処理装置にネットワーク上の他の情報処理装置が具備する機能の情報を送信する連携情報送信手段と、前記情報処理装置から受信した指示に従いネットワーク上の他の情報処理装置の内部デバイスを接続・切断する連携制御手段と、を有することを特徴とする
本発明によれば、複数の情報処理装置に具備されている内部デバイスがデバイス制御装置の機能としてそれぞれ仮想化制御されている場合に、デバイス制御装置が仮想化された内部デバイスの制御を仲介することで複数の内部デバイス間で連携することが可能となる。
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態によるデバイス制御システムの一例を示すブロック図である。
図1は、本発明の第1の実施形態によるデバイス制御システムの一例を示すブロック図である。
<システム構成>
図示のデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400が有線回線又は無線回線のローカルエリアネットワーク(LAN)を介して接続されている。または、デバイス制御装置100と情報処理装置200、情報処理装置400が、3G回線やWi−Fi(登録商標)などの無線通信路を介して接続されている。
図示のデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400が有線回線又は無線回線のローカルエリアネットワーク(LAN)を介して接続されている。または、デバイス制御装置100と情報処理装置200、情報処理装置400が、3G回線やWi−Fi(登録商標)などの無線通信路を介して接続されている。
デバイス制御装置100は、パーソナルコンピュータ(PC)などの装置である。情報処理装置200と情報処理装置400は、例えば、携帯電話、PDA、あるいはスマートフォンなどの装置である。
なお、図1に示すデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400がそれぞれ1台ずつ図示されているが、デバイス制御装置100と情報処理装置200、情報処理装置400の台数は図示の例に限定されるものではない。
<デバイス制御装置100の構成>
デバイス制御装置100は、例えば、ユーザーによって利用されるパーソナルコンピュータ(PC)などの装置であって、ハードウェア構成として、CPU、メモリ、および通信部(ともに不図示)、記憶部を備えている。
デバイス制御装置100は、例えば、ユーザーによって利用されるパーソナルコンピュータ(PC)などの装置であって、ハードウェア構成として、CPU、メモリ、および通信部(ともに不図示)、記憶部を備えている。
CPUはデバイス制御装置100全体の制御を司る。メモリはRAMおよびROMなどである。
通信部はLANおよび無線通信路に接続するためのインターフェースであって、情報処理装置200および情報処理装置400とデータ送受信を行う。
記憶部には、ソフトウェアであるオペレーティングシステム(以下、「OS」と呼ぶ:不図示)、アプリケーション101、デバイスドライバ102、仮想化制御部103、通信制御部104、および連携制御部105が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
アプリケーション101は、デバイスドライバ102に対してデータ入出力要求を指示することによって、情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500を制御するとともに、デバイスドライバ102から受け取った通知又はデータを連携制御部105に渡し、連携制御部105から受け取った要求又はデータをデバイスドライバ102に渡すためのソフトウェアプログラムである。
デバイスドライバ102は、OS又はアプリケーション101からのデータ入出力要求を、情報処理装置200の内部デバイス300や情報処理装置400の内部デバイス500に応じたデータ形式のデータ(以下、「制御コマンド」と呼ぶ)に変換して、当該制御コマンドを仮想化制御部103に送る。さらに、デバイスドライバ102は制御コマンドに対する応答をアプリケーション101に通知する。デバイスドライバ102は、一般に製造会社によって提供されるソフトウェア部品であって、デバイス制御装置100は各デバイスに対応したデバイスドライバ102によって情報処理装置200の内部デバイス300や情報処理装置400の内部デバイス500を制御することができる。例えば、デバイスドライバ102は、タッチパネルドライバ102Aとカメラドライバ102Bである。情報処理装置200のタッチパネル210はタッチパネルドライバ102Aによって、情報処理装置400のカメラ409はカメラドライバ102Bによって制御することができる。
仮想化制御部103は、デバイスドライバ102から送られた制御コマンド(つまり、データ入出力要求)をUSBデータ形式に準拠したパケットデータ(以下、「USBデータ」と呼ぶ)に変換する。また、仮想化制御部103は通信制御部104から送られてくるUSBデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ102に送る。
さらに、仮想化制御部103は情報処理装置200の内部デバイス300又は情報処理装置400の内部デバイス500に対するデータ送受信要求に対して、情報処理装置200の内部デバイス300と情報処理装置400の内部デバイス500がデバイス制御装置100に直接的に接続(ローカル接続)されている際と同様の振る舞いをシミュレートする機能(以下、「仮想化制御」と呼ぶ)を備えている。この仮想化制御によって、デバイス制御装置100は情報処理装置200の内部デバイス300(例えば、タッチパネル210の表示機能、入力機能)及び情報処理装置400の内部デバイス500(例えば、カメラ409の撮影機能、操作機能)をローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
通信制御部104は、仮想化制御部103から送られるUSBデータと情報処理装置200又は情報処理装置400と通信する際のネットワークパケットとの変換処理を行って、情報処理装置200又は情報処理装置400との間でデータ送受信の制御を行う。また、通信制御部104は仮想化制御部103を介してアプリケーション101又はデバイスドライバ102から送られるデータ送受信要求に応じて、情報処理装置200又は情報処理装置400のとの間のセッションの開始および切断の制御を行う。
連携制御部105は、連携情報106及び連携情報管理部107を備えている。
連携制御部105は、アプリケーション101から渡された通知またはデータを基に情報処理装置200又は情報処理装置400に渡すデータを連携情報106の中から判断し、情報処理装置200の連携通信部203又は情報処理装置400の連携通信部403に連携情報106の一部又は全部を送信する。連携情報106の選定は、送信先の情報処理装置200又は情報処理装置400がデバイス制御装置100で仮想化制御している内部デバイスの有する機能を基に判断する。
さらに、連携制御部105は通信制御部104を介し、アプリケーション101から渡された通知またはデータを基に、情報処理装置200の連携通信部203又は情報処理装置400の連携通信部403に通信制御部201又は通信制御部401を介してセッションの開始及び切断の通知を送る。
また、連携制御部105は、カメラ409とタッチパネル210が連携しタッチパネル210からの操作によりカメラ409を遠隔操作するためにアプリケーション101を介して受け取ったタッチパネルドライバ102A又はカメラドライバ102BからのUSBデータを、受け取ったデバイスドライバとは別のデバイスドライバを宛先に指定して、宛先のデバイスドライバが扱えるUSBデータの形式に変換してアプリケーション101に返す。
連携情報106は、情報処理装置200が情報処理装置400の内部デバイス500を選択するため又は情報処理装置400が情報処理装置200の内部デバイス300を選択するために用いられる。
図2は、図1に示す連携情報106の一例を示す図である。
図2に示す連携情報106は、情報処理装置識別名、内部デバイス名、クラスから構成されている。
情報処理装置識別名は、情報処理装置を一意に識別できる情報である。装置名、IPアドレス、MACアドレスなどネットワーク上で情報処理装置を一意に識別できる情報を用いる。
内部デバイス名は、情報処理装置の具備する内部デバイスを一意に識別できる情報である。例えば、内部デバイスの機能毎に割り当てられた機能名やシリアル番号などである。
クラスは、どのUSBドライバで内部デバイスを制御できるかを一意に示す情報である。キーボード、マウス、デジタイザーおよびディスプレイなどデバイスの種類に応じてUSB規格で規定されているクラス情報を用いる。
連携情報管理部107は、連携情報106の登録と更新を行う。連携情報管理部107は、アプリケーション101から連携制御部105が受け取った内部デバイスの接続情報を基に連携情報106を登録又は更新する。さらに、連携情報管理部107は、ブロードキャスト送信でネットワーク上の情報処理装置に具備する内部デバイスと仮想デバイス識別情報(後述)を問い合わせ、取得した内部デバイスの情報とその内部デバイスに対応する仮想デバイス識別情報を基に連携情報106の登録又は更新を行う。
<情報処理装置200の構成>
情報処理装置200は、例えば、携帯電話、PDA、あるいはスマートフォンなどの装置であって、ハードウェア構成として、CPU、メモリ、通信部、記憶部(ともに不図示)、およびタッチパネル210を備えている。タッチパネル210は入力機能と表示機能を兼ね備えており、内部バス207を介してそれぞれ入力I/F208およびディスプレイI/F209に接続されている。本実施形態において、タッチパネル210は、情報処理装置200の内部デバイス300として位置づけられる。なお、タッチパネル210ではなく、入力装置と表示装置(いずれも不図示)を夫々備える構成でもよい。
情報処理装置200は、例えば、携帯電話、PDA、あるいはスマートフォンなどの装置であって、ハードウェア構成として、CPU、メモリ、通信部、記憶部(ともに不図示)、およびタッチパネル210を備えている。タッチパネル210は入力機能と表示機能を兼ね備えており、内部バス207を介してそれぞれ入力I/F208およびディスプレイI/F209に接続されている。本実施形態において、タッチパネル210は、情報処理装置200の内部デバイス300として位置づけられる。なお、タッチパネル210ではなく、入力装置と表示装置(いずれも不図示)を夫々備える構成でもよい。
記憶部には、ソフトウェアであるOS(不図示)、通信制御部201、仮想化通信部202、連携通信部203、仮想デバイス制御部204が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
通信制御部201は、デバイス制御装置100との間で行われる入出力データなどの送受信を制御する。
仮想化通信部202は、情報処理装置200に備えられた内部デバイス300があたかもデバイス制御装置100にローカル接続されているかのように認識させて制御できるようにするため、デバイス制御装置100の仮想化制御部103からの制御要求に従って(連動して)内部デバイス300の制御を行う。
連携通信部203は、デバイス制御装置100の連携制御部105から渡された連携情報106をディスプレイI/F209に渡すことでタッチパネル210に表示する。さらに、連携通信部203は、ユーザーによる連携情報106の選択結果などを受け取り、その選択結果をデバイス制御装置100の連携制御部105へ渡す。また、連携通信部203はデバイス制御装置100の連携制御部105から要求を受けてデバイス制御装置100への内部デバイス300の接続・切断処理を行う。
仮想デバイス制御部204は、仮想デバイス識別情報205およびデータ形式変換処理部206を備えている。さらに、仮想デバイス制御部204は、情報処理装置200に備えられた内部デバイス300を仮想的なUSBデバイスに切り替えるユーザインターフェースなどの切替部(不図示)を備えている。
仮想デバイス識別情報205は、デバイス制御装置100に内部デバイス300を認識させるために用いられる。内部デバイス300のタッチパネル210は、個体識別情報に相当する情報を有していないので、デバイス制御装置100は内部デバイス300を認識することができない。
そこで、個体識別情報に相当する仮想デバイス識別情報205を内部デバイス300の各々に割り当てて、デバイス制御装置100にタッチパネル210をUSBデバイスとして認識させる。ここでは、USBデバイスのデータ構造を定義する構成情報(以下、「USBディスクリプタ」と呼ぶ)を疑似的に作成したものを仮想デバイス識別情報205とする。
図3は、図1に示す仮想デバイス識別情報205および仮想デバイス識別情報405の一例を示す図である。
タッチパネル210は、入力機能および表示機能を夫々備え、入力機能はキーボード、マウスおよびデジタイザーに対応し、表示機能はディスプレイに対応している。これらキーボード、マウス、デジタイザーおよびディスプレイをUSBデバイスとして認識させるために疑似的なUSBディスクリプタ(つまり、仮想デバイス識別情報205)を割り当てている。
図3に示す疑似的なUSBディスクリプタは、ベンダーID、プロダクトID、クラス、サブクラス、プロトコル、およびインターフェースから構成されている。
ベンダーIDは、各企業や製造会社毎に割り当てられる識別情報であり、プロダクトIDは、ベンダーIDを持つ企業や会社が各製品や機種毎に重複しないよう割り振るコードである。本実施形態では、デバイス制御装置100に割り当てられているベンダーIDおよびプロダクトIDが用いられる。
また、クラス、サブクラス、プロトコル、およびインターフェースは、キーボード、マウス、デジタイザー、カメラおよびディスプレイなどデバイスの種類に応じてUSB規格で規定されている情報である。そして、ベンダーIDおよびプロダクトIDと、クラス、サブクラス、プロトコル、およびインターフェースとを関連付けた疑似的なUSBディスクリプタを作成して、仮想デバイス制御部204が仮想デバイス識別情報205として保持(記憶)する。
いま、タッチパネル210に対してユーザー操作などによって内部デバイス300への接続を開始させるための接続操作が行われると、仮想デバイス制御部204は仮想デバイス識別情報205を仮想化通信部202に送る。一方、終了操作が行われると、仮想化通信部202は内部デバイス300の仮想化制御を終了する。
データ形式変換処理部206は、仮想化通信部202から送られるUSBデータ形式に準拠したパケットデータ(USBデータ)と内部デバイス300で処理可能なデータ形式のデータとの変換処理を行って、内部デバイス300と接続された入力I/F208およびディスプレイI/F209とデバイス制御装置100との間のデータの送受信を可能にしている。
<入力機能/表示機能の仮想化制御とデータ形式変換について>
本実施形態において、仮想デバイス制御部204は、タッチパネル210の入力機能に係る仮想デバイス識別情報205として、HIDクラスを識別したUSBディスクリプタを仮想化通信部202に送る。また、データ形式変換処理部206は、タッチパネルの入力機能から入力された入力データをHIDクラスのUSBデータに変換し、入力I/F208を介して仮想化通信部202に送る。
本実施形態において、仮想デバイス制御部204は、タッチパネル210の入力機能に係る仮想デバイス識別情報205として、HIDクラスを識別したUSBディスクリプタを仮想化通信部202に送る。また、データ形式変換処理部206は、タッチパネルの入力機能から入力された入力データをHIDクラスのUSBデータに変換し、入力I/F208を介して仮想化通信部202に送る。
さらに、仮想デバイス制御部204は、タッチパネルの表示機能に係る仮想デバイス識別情報205として、ベンダークラス(ベンダー固有)を識別したUSBディスクリプタを仮想化通信部202に送る。また、データ形式変換処理部206は、仮想化通信部202から送られるUSBデータをタッチパネルの表示機能のデータ形式(第1のデータ形式)に変換して、ディスプレイI/F209を介してタッチパネル210に送る。なお、仮想化通信部202から送られるUSBデータをデータ変換せずに通すことができる場合は、データ変換せずにディスプレイI/F209を介してタッチパネル210に送る。
<内部デバイス300の構成>
前述のように、内部デバイス300は、入力機能および表示機能を備えた入出力装置(タッチパネル)であって、内部バス207を介してそれぞれ入力I/F208およびディスプレイI/F209に接続される。入力機能はタッチパネル210からの入力を処理し、表示機能はタッチパネル210への表示を処理し、情報処理装置200の操作の際に用いられる。
前述のように、内部デバイス300は、入力機能および表示機能を備えた入出力装置(タッチパネル)であって、内部バス207を介してそれぞれ入力I/F208およびディスプレイI/F209に接続される。入力機能はタッチパネル210からの入力を処理し、表示機能はタッチパネル210への表示を処理し、情報処理装置200の操作の際に用いられる。
内部バス207は、情報処理装置200の各ブロックを相互に接続して各種のデータの送受信を行うとともに、電力を供給する。なお、本実施形態では、内部デバイス300をタッチパネル210として説明するが、これに限定されず、情報処理装置200内の記憶装置やカメラ(ともに不図示)であってもよい。
<情報処理装置400の構成>
情報処理装置400は、例えば、携帯電話、PDA、あるいはスマートフォンなどの装置であって、ハードウェア構成として、CPU、メモリ、通信部、記憶部(ともに不図示)、およびカメラ409を備えている。カメラ409は撮影機能、画像出力機能及びカメラ操作機能を兼ね備えており、内部バス407を介してカメラI/F408に接続されている。本実施形態において、カメラ409は、情報処理装置400の内部デバイス500として位置づけられる。
情報処理装置400は、例えば、携帯電話、PDA、あるいはスマートフォンなどの装置であって、ハードウェア構成として、CPU、メモリ、通信部、記憶部(ともに不図示)、およびカメラ409を備えている。カメラ409は撮影機能、画像出力機能及びカメラ操作機能を兼ね備えており、内部バス407を介してカメラI/F408に接続されている。本実施形態において、カメラ409は、情報処理装置400の内部デバイス500として位置づけられる。
情報処理装置400は内部デバイス500をカメラ409としている以外は情報処理装置200と同一の構成であるため説明を省略する。
カメラ409は、画像出力機能とカメラ操作機能を夫々備え、画像出力機能とカメラ操作機能はビデオクラスに対応している。図3に例示したようにカメラ409をUSBデバイスとして認識させるために疑似的なUSBディスクリプタ(つまり、仮想デバイス識別情報405)を割り当てている。
いま、ユーザー操作などによって内部デバイス500への接続を開始させるための接続操作が行われると、仮想デバイス制御部404は仮想デバイス識別情報405を仮想化通信部402に送る。一方、終了操作が行われると、仮想化通信部402は内部デバイス500の仮想化制御を終了する。
<画像出力機能/カメラ操作機能の仮想化制御とデータ形式変換について>
本実施形態において、仮想デバイス制御部404は、カメラの画像出力機能/カメラ操作機能に係る仮想デバイス識別情報405として、ビデオクラスを識別したUSBディスクリプタを仮想化通信部402に送る。また、データ形式変換処理部406は、カメラの画像出力機能から出力される画像データをビデオクラスのUSBデータに変換し、カメラI/F408を介して仮想化通信部202に送る。また、データ形式変換処理部406は、仮想化通信部402から送られるUSBデータをカメラ操作機能のデータ形式(第1のデータ形式)に変換して、カメラI/F408を介してカメラ409に送る。なお、仮想化通信部202から送られるUSBデータをデータ変換せずに通すことができる場合は、データ変換せずにカメラI/F408を介してカメラ409に送る。
本実施形態において、仮想デバイス制御部404は、カメラの画像出力機能/カメラ操作機能に係る仮想デバイス識別情報405として、ビデオクラスを識別したUSBディスクリプタを仮想化通信部402に送る。また、データ形式変換処理部406は、カメラの画像出力機能から出力される画像データをビデオクラスのUSBデータに変換し、カメラI/F408を介して仮想化通信部202に送る。また、データ形式変換処理部406は、仮想化通信部402から送られるUSBデータをカメラ操作機能のデータ形式(第1のデータ形式)に変換して、カメラI/F408を介してカメラ409に送る。なお、仮想化通信部202から送られるUSBデータをデータ変換せずに通すことができる場合は、データ変換せずにカメラI/F408を介してカメラ409に送る。
<内部デバイス500の構成>
前述のように、内部デバイス500は、画像出力機能とカメラ操作機能を備えた入出力装置(カメラ)であって、内部バス407を介してカメラI/F408に接続される。画像出力機能はカメラ409が出力する画像を処理し、カメラ操作機能はカメラ409へのシャッター制御、フォーカス制御などの操作を処理する。なお、本実施形態では、内部デバイス500をカメラ409として説明するが、これに限定されず、情報処理装置400内の記憶装置やタッチパネル(ともに不図示)であってもよい。
前述のように、内部デバイス500は、画像出力機能とカメラ操作機能を備えた入出力装置(カメラ)であって、内部バス407を介してカメラI/F408に接続される。画像出力機能はカメラ409が出力する画像を処理し、カメラ操作機能はカメラ409へのシャッター制御、フォーカス制御などの操作を処理する。なお、本実施形態では、内部デバイス500をカメラ409として説明するが、これに限定されず、情報処理装置400内の記憶装置やタッチパネル(ともに不図示)であってもよい。
<デバイス制御システムのシーケンス(接続、連携開始)>
図4は、図1に示すデバイス制御システムにおいて、デバイス制御装置100が内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)の仮想化制御を開始する際の動作を説明するためのシーケンス図である。
図4は、図1に示すデバイス制御システムにおいて、デバイス制御装置100が内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)の仮想化制御を開始する際の動作を説明するためのシーケンス図である。
情報処理装置200からユーザー操作によって内部デバイス300(タッチパネル210)の仮想化制御を開始させる。
まず、ユーザーは所定の操作によってタッチパネル210に操作画面を表示させ、操作画面を操作(接続操作)して内部デバイス300(タッチパネル210)との接続を開始させる(ステップS101)。
タッチパネル210から仮想デバイス制御部204に対して接続要求が送信される(ステップS102)。
仮想デバイス制御部204は、タッチパネル210に係る仮想デバイス識別情報205を仮想化通信部202に送信して接続を通知する(仮想デバイス識別情報送信:ステップS103)。例えば、図3で説明したキーボード、マウス、デジタイザー、ディスプレイの4つのUSBディスクリプタを仮想デバイス識別情報205として送る。
続いて、仮想化通信部202は、タッチパネル210が接続された旨をデバイス制御装置100の仮想化制御部103に通知する(ステップS104)。
デバイス制御装置100の仮想化制御部103は、情報処理装置200の仮想化通信部202から受信したタッチパネル210(内部デバイス300)に係る仮想デバイス識別情報205をデバイスドライバ102(タッチパネルドライバ102A)に通知する(ステップS105)。
アプリケーション101は、デバイスドライバ102(タッチパネルドライバ102A)からタッチパネル210(内部デバイス300)の接続の通知を受信する(ステップS106)。ここで、アプリケーション101は、タッチパネル210(内部デバイス300)の接続の通知を受けると、仮想化制御部103にタッチパネル210(内部デバイス300)の仮想化制御の開始を指示し、仮想化制御部103は、情報処理装置200のタッチパネル210(内部デバイス300)の仮想化制御を開始する。そして、デバイス制御装置100は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用してタッチパネル210(内部デバイス300)との接続を開始する。
さらに、アプリケーション101は、タッチパネル210(内部デバイス300)との接続を開始すると連携制御部105にその旨を通知する(ステップS107)。
連携制御部105は、タッチパネル210(内部デバイス300)との接続開始通知を受け取ると、受け取った通知を基に情報処理装置200に送信する連携情報を連携情報106の中から選定する(ステップS108)。例えば、情報処理装置200のタッチパネル210は入力機能及び表示機能を有するので、情報処理装置200から取得した連携情報でなくかつ入力受付機能又は画像出力機能を持つクラスの連携情報を連携情報106の中から選定する。なお、連携情報106から送信する連携情報が選定できなかった場合は、選定できなかった旨を情報処理装置200へ通知し処理を終了する。
そして、連携制御部105は、通信制御部104及び通信制御部201を介して選定した連携情報106を情報処理装置200の連携通信部203に渡す(ステップS109)。
連携通信部203は、受け取った連携情報106を処理して(ステップS110)、タッチパネル210に表示する(ステップS111)。
次にユーザーはタッチパネル210を操作して、タッチパネル210に表示された連携情報106の中から連携を行う内部デバイス500(情報処理装置400のカメラ409)を選ぶ(ステップS121)。連携通信部203はユーザーの連携情報106の選択結果を取得して(ステップS122)、それをデバイス制御装置100の連携制御部105へ通信制御部201及び通信制御部104を介して送る(ステップS123)。
連携制御部105は、情報処理装置200の連携通信部203から受け取った連携情報106の選択結果を解析して、連携情報106の選択結果を情報処理装置400の連携通信部403に渡す(ステップS124)。
連携通信部403は、デバイス制御装置100の連携制御部105から受け取った連携情報106の選択結果を解析して、カメラ409に接続要求を送る(ステップS125)。カメラ409は連携通信部403から接続要求を受け取ると、仮想デバイス制御部404に対して接続要求を送信する(ステップS126)。
仮想デバイス制御部404は、カメラ409に係る仮想デバイス識別情報405を仮想化通信部402に送信して接続を通知する(ステップS127)。例えば、図3で説明したカメラのUSBディスクリプタを仮想デバイス識別情報405として送る。
続いて、仮想化通信部402は、カメラ409が接続された旨をデバイス制御装置100の仮想化制御部103に通知する(ステップS128)。
デバイス制御装置100の仮想化制御部103は、情報処理装置400の仮想化通信部402から受信したカメラ409(内部デバイス500)に係る仮想デバイス識別情報405をデバイスドライバ102(カメラドライバ102B)に通知する(ステップS129)。
アプリケーション101は、デバイスドライバ102(カメラドライバ102B)からカメラ409(内部デバイス500)の接続の通知を受信する(ステップS130)。
ここで、アプリケーション101は、カメラ409(内部デバイス500)の接続の通知を受けると、仮想化制御部103にカメラ409(内部デバイス500)の仮想化制御の開始を指示し、仮想化制御部103は、情報処理装置400のカメラ409(内部デバイス500)の仮想化制御を開始する。そして、デバイス制御装置100は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用してカメラ409(内部デバイス500)との接続を開始する(ステップS131)。
ここで、アプリケーション101は、カメラ409(内部デバイス500)の接続の通知を受けると、仮想化制御部103にカメラ409(内部デバイス500)の仮想化制御の開始を指示し、仮想化制御部103は、情報処理装置400のカメラ409(内部デバイス500)の仮想化制御を開始する。そして、デバイス制御装置100は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用してカメラ409(内部デバイス500)との接続を開始する(ステップS131)。
<デバイス制御システムのシーケンス(連携制御)>
図5は、図1に示すデバイス制御システムにおいてデバイス制御装置100で仮想化制御されている内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)が、デバイス制御装置100を介して連携する際の動作を説明するためのシーケンス図である。
図5は、図1に示すデバイス制御システムにおいてデバイス制御装置100で仮想化制御されている内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)が、デバイス制御装置100を介して連携する際の動作を説明するためのシーケンス図である。
ユーザーは、情報処理装置200のタッチパネル210を用いて情報処理装置400のカメラ409を遠隔操作するための操作情報を入力し、撮影画像の取得を要求する(ステップS201)。以降、操作情報を撮影画像の取得要求として説明するが、これに限定したものではなく、フォーカス制御、シャッター制御、撮影画像の拡縮などでもよい。
続いて、タッチパネル210は、入力I/F208を介して仮想デバイス制御部204に操作情報を送信する(ステップS202)。
仮想デバイス制御部204は、受信した操作情報(入力データ)を仮想化通信部202に送信する(ステップS203)。このとき、仮想デバイス制御部204は、入力I/F208を介して受信した操作情報(入力データ)をUSBデータ(第2のデータ形式)に変換して仮想化通信部202に送信する。
仮想化通信部202は、受信した操作情報をデバイス制御装置100の仮想化制御部103に送信する(ステップS204)。デバイス制御装置100の仮想化制御部103は、受信した操作情報をタッチパネルドライバ102Aに送信する(ステップS205)。タッチパネルドライバ102Aは、仮想化制御部103から受け取った操作情報をアプリケーション101に送信する(ステップS206)。アプリケーション101は、タッチパネルドライバ102Aから受け取った操作情報を連携制御部105に送信する(ステップS207)。
連携制御部105は、タッチパネルドライバ102Aからアプリケーション101が受け取った操作情報を渡されると、カメラドライバ102Bが扱えるデータ形式に操作情報を変換する(ステップS208)。タッチパネルドライバ102Aから受け取った操作情報がカメラドライバ102Bで扱えるデータ形式の場合は変換しない。連携制御部105は、変換した操作情報をカメラドライバ102Bに渡すようにという指示とともにアプリケーション101に返す(ステップS209)。
アプリケーション101は、カメラドライバ102Bが扱えるデータ形式に変換された操作情報を連携制御部105の指示に従いカメラドライバ102Bに送信する(ステップS210)。
カメラドライバ102Bは、アプリケーション101から受取った操作情報を仮想化制御部103に送信する(ステップS211)。
仮想化制御部103は、情報処理装置400の仮想化通信部402に操作情報を送信する(ステップS212)。仮想化通信部402は仮想デバイス制御部404に操作情報を送信する(ステップS213)。
仮想デバイス制御部404はカメラ409に操作情報を送信する(ステップS214)。このとき、仮想デバイス制御部404のデータ形式変換処理部406は、仮想化通信部402から送られるUSBデータをカメラ409のデータ形式(第1のデータ形式)に変換して、カメラI/F408を介してカメラ409に送信する。
そして、カメラ409は、情報処理装置200からデバイス制御装置100を介して送られてくる操作情報(情報処理装置200のタッチパネル210の操作)に応じた操作(撮影画像の取得)を実行する(ステップS215)。このとき、カメラ409は、デバイス制御装置100に対する入力待ち状態となる。なお、仮想化通信部402から送られるUSBデータをデータ変換せずにカメラI/F408に通すことができる場合は、データ変換せずにカメラI/F408を介してカメラ409に送る。
情報処理装置400のカメラ409は、カメラI/F408を介して仮想デバイス制御部404へ撮影画像を送信する(ステップS216)
仮想デバイス制御部404は、受信したカメラ409の撮影画像を仮想化通信部402に送信する(ステップS217)。このとき、仮想デバイス制御部404のデータ形式変換処理部406は、カメラ409から取得した撮影画像をカメラのUSBデータ形式(第2のデータ形式)に変換する。なお、カメラ409から取得した撮影画像が変換する必要のない形式であった場合は、仮想デバイス制御部404はカメラ409から取得した撮影画像をそのまま仮想化通信部402に送信する。また、前述のステップS217で、取得した撮影画像を全て送信するのではなく、前回送信した撮影画像との差分のみを送信する場合には、仮想デバイス制御部404は、既に送信済みの撮影画像に差分のみを仮想化通信部402へ送信する。
仮想化通信部402は、仮想デバイス制御部404から受け取ったカメラ409の撮影画像をデバイス制御装置100の仮想化制御部103に送信する(ステップS218)。仮想化制御部103は、情報処理装置400の仮想化通信部402から受け取ったカメラ409の撮影画像をカメラドライバ102Bに渡す(ステップS219)。
カメラドライバ102Bは、仮想化制御部103から受け取ったカメラ409の撮影画像をアプリケーション101に渡す(ステップS220)。アプリケーション101は、カメラドライバ102Bから受け取ったカメラ409の撮影画像を連携制御部105に渡す(ステップS221)。
連携制御部105は、アプリケーション101がカメラドライバ102Bから受け取った撮影画像を渡されると、タッチパネルドライバ102Aが扱えるデータ形式に撮影画像を変換する(ステップS222)。カメラドライバ102Bから受け取った撮影画像がタッチパネルドライバ102Aで扱えるデータ形式の場合は変換しない。連携制御部105は、変換した撮影画像をタッチパネルドライバ102Aに渡す指示とともにアプリケーション101に返す(ステップS223)。
アプリケーション101は、変換したカメラ409の撮影画像を連携制御部105の指示に従い表示画面としてタッチパネルドライバ102Aに送信する(ステップS224)。
タッチパネルドライバ102Aは、アプリケーション101から受取った表示画面を仮想化制御部103に送信する(ステップS225)。
仮想化制御部103は、情報処理装置200の仮想化通信部202に表示画面を送信する(ステップS226)。仮想化通信部202は仮想デバイス制御部204に表示画面を送信する(ステップS227)。
仮想デバイス制御部204はタッチパネル210に表示画面を送信する(ステップS228)。このとき、仮想デバイス制御部204のデータ形式変換処理部206は、仮想化通信部202から送られるUSBデータをタッチパネル210のデータ形式(第1のデータ形式)に変換して、ディスプレイI/F209を介してタッチパネル210に送信する。
そして、タッチパネル210は、情報処理装置400からデバイス制御装置100を介して送られてくる画面データ(情報処理装置400のカメラ409の撮影画像)に応じた画面を表示する(ステップS229)。このとき、タッチパネル210は、デバイス制御装置100から送られてくる画面データ(受信した表示画面)を表示し、デバイス制御装置100に対する表示画面の入力待ち状態となる。なお、仮想化通信部202から送られるUSBデータをデータ変換せずにディスプレイI/F209に通すことができる場合は、データ変換せずにディスプレイI/F209を介してタッチパネル210に送る。また、前述のステップS213で、取得した画面データを全て送信するのではなく、前回送信した表示画像との差分のみを送信する場合には、ここで、既に受信済みの表示画面に差分の表示画面を合成して表示する。
なお、ステップS131において情報処理装置200のタッチパネル210(内部デバイス300)と情報処理装置400のカメラ409との間のデバイス制御装置100を介した連携が開始されると、後述する図6のステップS315においてその連携が切断(終了)されるまで、ステップS201〜ステップS215の処理(カメラ遠隔操作処理)とステップS216〜ステップS229の処理(撮影画像転送処理)を非同期(並列)で繰り返す。このとき、情報処理装置200の仮想化通信部202と仮想デバイス制御部204、情報処理装置400の仮想化通信部402と仮想デバイス制御部404は、内部デバイス300と内部デバイス500との間でデバイス制御装置100を介してデータ送受信を行う。
<デバイス制御システムのシーケンス(切断)>
図6は、図1に示すデバイス制御システムにおいてデバイス制御装置100で仮想化制御されている内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)が、デバイス制御装置100を介して行っている連携を切断(終了)する際の動作を説明するためのシーケンス図である。
図6は、図1に示すデバイス制御システムにおいてデバイス制御装置100で仮想化制御されている内部デバイス300(タッチパネル210)及び内部デバイス500(カメラ409)が、デバイス制御装置100を介して行っている連携を切断(終了)する際の動作を説明するためのシーケンス図である。
ユーザーは、デバイス制御装置100を介した情報処理装置200の内部デバイス300と情報処理装置400の内部デバイス500の連携を終了させる場合、情報処理装置200のタッチパネル210を操作して切断操作を行う(ステップS301)。これによって、タッチパネル210は、仮想デバイス制御部204に制御終了を要求する(ステップS302)。仮想デバイス制御部204は、仮想化通信部202に制御終了を通知する(ステップS303)。
続いて、仮想化通信部202は、デバイス制御装置100の仮想化制御部103に内部デバイス300の制御が終了された旨(制御終了通知)を通知する(ステップS304)。仮想化制御部103は、情報処理装置200の仮想化通信部202から受信した制御終了通知をデバイスドライバ102に通知する(ステップS305)。
デバイスドライバ102は、仮想化制御部103から受信した制御終了通知をアプリケーション101に通知する(ステップS306)と共に、タッチパネル210(内部デバイス300)の制御を解除する。これによりアプリケーション101とタッチパネル210(内部デバイス300)の通信(接続)が切断(解除)される。
さらに、アプリケーション101はタッチパネル210の切断通知を連携制御部105に送る(ステップS307)。
連携制御部105は、タッチパネル210の切断通知を受け取るとカメラ409の切断要求を情報処理装置400の連携通信部403に送信する(ステップS308)。
情報処理装置400の連携通信部403は、デバイス制御装置100の連携制御部105からカメラ409の切断要求を受け取るとカメラ409に切断要求を送信する(ステップS309)。これによって、カメラ409は、仮想デバイス制御部404に制御終了を要求する(ステップS310)。仮想デバイス制御部404は、仮想化通信部402に制御終了を通知する(ステップS311)。
続いて、仮想化通信部402は、デバイス制御装置100の仮想化制御部103に内部デバイス500の制御が終了された旨(制御終了通知)を通知する(ステップS312)。仮想化制御部103は、情報処理装置400の仮想化通信部402から受信した制御終了通知をデバイスドライバ102に通知する(ステップS313)。
デバイスドライバ102は、仮想化制御部103から受信した制御終了通知をアプリケーション101に通知する(ステップS314)と共に、カメラ409(内部デバイス500)の制御を解除する。これによりアプリケーション101とカメラ409(内部デバイス500)の通信(接続)が切断(解除)される。
さらに、アプリケーション101はカメラ409の切断通知を連携制御部105に送る(ステップS315)。
この結果、デバイス制御装置100による情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500の仮想化制御が終了し、情報処理装置200の内部デバイス300と情報処理装置400の内部デバイス500によるデバイス制御装置100を介した連携が終了する。
なお、本実施形態では、情報処理装置200から情報処理装置400の内部デバイス500を選択・連携しているが、情報処理装置400から情報処理装置200の内部デバイス300を選択・連携してもよい。そして、情報処理装置200の内部デバイス300のデバイス制御装置100における仮想化制御終了を契機に連携を終了しているが、情報処理装置400の内部デバイス500の仮想化制御終了を契機に連携を終了してもよい。
また、本実施形態では、情報処理装置200の内部デバイス300と情報処理装置400の内部デバイス500による連携終了時に、内部デバイス300と内部デバイス500との両方のデバイス制御装置100における仮想化制御を終了しているが、内部デバイス300又は内部デバイス500のいずれか一方のデバイス制御装置100における仮想化制御の終了によって連携を終了してもよい。
上述のように、本発明の第1の実施形態では、デバイス制御装置100を介することで、情報処理装置200の内部デバイス300(例えば、タッチパネル210)を操作して、情報処理装置400の内部デバイス500(例えば、カメラ409)のデバイス制御装置100における仮想化制御により、情報処理装置200の内部デバイス300と情報処理装置400の内部デバイス500の連携を行うことができる。
[第2の実施形態]
続いて、本発明の第2の実施形態によるデバイス制御システムの一例について説明する。第2の実施形態では、単数の情報処理装置と複数の情報処理装置との間のデバイス制御装置を介した連携について説明する。
続いて、本発明の第2の実施形態によるデバイス制御システムの一例について説明する。第2の実施形態では、単数の情報処理装置と複数の情報処理装置との間のデバイス制御装置を介した連携について説明する。
<システム構成>
図7は、本発明の第2の実施形態によるデバイス制御システムの一例を示すブロック図である。第2の実施形態は、第1の実施形態で示したシステム構成に情報処理装置700を追加したものである。なお、図1に示すデバイス制御システムと同一の構成要素については同一の参照番号を付して説明を省略する。
図7は、本発明の第2の実施形態によるデバイス制御システムの一例を示すブロック図である。第2の実施形態は、第1の実施形態で示したシステム構成に情報処理装置700を追加したものである。なお、図1に示すデバイス制御システムと同一の構成要素については同一の参照番号を付して説明を省略する。
図示のデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700が有線回線又は無線回線のローカルエリアネットワーク(LAN)を介して接続されている。または、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700が、3G回線やWi−Fi(登録商標)などの無線通信路を介して接続されている。
なお、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700がそれぞれ1つのみ示されているが、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700の台数は図示の例に限定されるものではない。
<情報処理装置700の構成>
情報処理装置700の構成要素は、情報処理装置400の構成要素と同等である。本実施形態において、カメラ709は、情報処理装置700の内部デバイス800として位置づけられる。
情報処理装置700の構成要素は、情報処理装置400の構成要素と同等である。本実施形態において、カメラ709は、情報処理装置700の内部デバイス800として位置づけられる。
<デバイス制御システムのシーケンス>
図8は、図7に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800が連携する際の処理を説明するためのシーケンス図である。図8では、第1の実施形態の図4〜図6で説明済みの各情報処理装置内部における各制御部間のステップを省略している。
図8は、図7に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800が連携する際の処理を説明するためのシーケンス図である。図8では、第1の実施形態の図4〜図6で説明済みの各情報処理装置内部における各制御部間のステップを省略している。
まず、情報処理装置200からユーザー操作によって、デバイス制御装置100による内部デバイス300(タッチパネル210)の仮想化制御を開始させる(ステップS401)。
デバイス制御装置100の連携制御部105は、情報処理装置200へ送信する連携情報106の選定を行う(ステップS402)。デバイス制御装置100の連携制御部105は選定した連携情報106を情報処理装置200へ送信する(ステップS403)。次にユーザーはタッチパネル210を操作して、タッチパネル210に表示された連携情報106の中から連携を行うカメラ409及びカメラ709を選択する(ステップS404)。情報処理装置200の連携通信部203は、デバイス制御装置100の連携制御部105へ通信制御部201及び通信制御部104を介して連携情報106の選択結果を送信する(ステップS405)。連携制御部105は、受け取った連携情報106の選択結果を解析して、カメラ409に接続要求を送る(ステップS406)。カメラ409は接続を行い、接続された旨をデバイス制御装置100に通知する(ステップS407)。これによりデバイス制御装置100は、情報処理装置400のカメラ409の仮想化制御を開始する。さらに、デバイス制御装置100の連携制御部105は、ステップS406〜ステップS407で情報処理装置400のカメラ409の接続を行うのと同様に、情報処理装置700のカメラ709の仮想化制御を開始する(ステップS408〜ステップS409)。
ステップS401〜ステップS409により、デバイス制御装置100を介した、情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800の連携が開始される。
図9は、情報処理装置200のタッチパネル210に表示される操作画面310の一例を示す図である。デバイス制御装置100を介した、情報処理装置200の内部デバイス300、情報処理装置400の内部デバイス500及び情報処理装置700の内部デバイス800の連携が開始されタッチパネル210を介して撮影画像の取得を要求すると、操作画面310のカメラ409の撮影画像表示領域311には情報処理装置400のカメラ409の撮影画像が、操作画面310のカメラ709の撮影画像表示領域312には情報処理装置700のカメラ709の撮影画像が夫々表示される。また、ユーザーは、操作画面310のカメラ409の撮影画像表示領域311をタップ・スワイプすることで情報処理装置400のカメラ409を操作でき、また、操作画面310のカメラ709の撮影画像表示領域312をタップ・スワイプすることで情報処理装置700のカメラ709を操作できる。
図8のシーケンス図の説明に戻り、ユーザーは、情報処理装置200のタッチパネル210を用いて情報処理装置400のカメラ409又は情報処理装置700のカメラ709を遠隔操作するための操作情報(撮影画像の取得要求)をデバイス制御装置100の連携制御部105へ送信する(ステップS410)。本実施形態では撮影画像の取得を例として説明するが、これに限定されるものではなく、フォーカス制御、シャッター制御、撮影画像の拡縮などでもよい。
デバイス制御装置100の連携制御部105は、情報処理装置200から受け取った操作情報を解析して、その操作が情報処理装置400のカメラ409又は情報処理装置700のカメラ709のいずれを対象に行われたものであるのかを判断する(ステップS411)。操作対象の判断方法には、例えばタッチパネル210から取得したタッチ操作の座標がカメラ409の撮影画像表示領域311内にあったら情報処理装置400のカメラ409に対する操作であり、カメラ709の撮影画像表示領域312内にあったら情報処理装置700のカメラ709に対する操作であると判断する方法がある。
連携制御部105は、情報処理装置200から受け取った操作情報が情報処理装置400のカメラ409に対する操作であると判断した場合、カメラドライバ102Bの扱えるデータ形式に操作情報を変換し情報処理装置400のカメラ409に送信する(ステップS412)。
情報処理装置400のカメラ409は、情報処理装置200からデバイス制御装置100を介して送られてくる操作情報(情報処理装置200のタッチパネル210の操作)に応じた操作(撮影画像の取得)を実行する(ステップS413)。このとき、カメラ409は、デバイス制御装置100に対する入力待ち状態となる。
また、連携制御部105は、情報処理装置200から受け取った操作情報が情報処理装置700のカメラ709に対する操作であると判断した場合、カメラドライバ102Bの扱えるデータ形式に操作情報を変換し情報処理装置700のカメラ709に送信する(S414)。
情報処理装置700のカメラ709は、情報処理装置200からデバイス制御装置100を介して送られてくる操作情報(情報処理装置200のタッチパネル210の操作)に応じた操作(撮影画像の取得)を実行する(ステップS415)。このとき、カメラ709は、デバイス制御装置100に対する入力待ち状態となる。
情報処理装置400のカメラ409は、デバイス制御装置100の連携制御部105に撮影画像を送信する(ステップS416)。同じく、情報処理装置700のカメラ709も、デバイス制御装置100の連携制御部105に撮影画像を送信する(ステップS417)。
また、ステップS412〜ステップS417の間のシーケンスは、ステップS412→ステップS414→ステップS413→ステップS415→ステップS416→ステップS417の順であっても構わない。
デバイス制御装置100の連携制御部105は、情報処理装置400のカメラ409及び情報処理装置700のカメラ709から撮影画像を受け取ると、カメラ409とカメラ709の撮影画像に基づき図9に示した操作画面310をタッチパネルドライバ102Aが扱えるデータ形式で生成する(ステップS418)。そして、連携制御部105は、第1の実施形態で説明したステップS223〜ステップS228の処理と同様に、生成した操作画面310を画像データとして情報処理装置200のタッチパネル210に送信する(ステップS419)。
タッチパネル210は、デバイス制御装置100から送られてくる画面データ(操作画面310)を表示し、デバイス制御装置100に対する入力待ち状態となる(ステップS420)。なお、デバイス制御装置100が画面データを全て送信するのではなく、前回送信した表示画像との差分のみを送信する場合には、ここで、既に受信済みの表示画面に差分の表示画面を合成して表示する。
ユーザーは、デバイス制御装置100を介した情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800の連携を終了させる場合、情報処理装置200のタッチパネル210を操作してタッチパネル210の切断(仮想化制御を終了)する(ステップS421)。
デバイス制御装置100の連携制御部105は、タッチパネル210の切断通知を受け取ると、情報処理装置400のカメラ409を切断(仮想化制御を終了)する(ステップS422)。さらに、デバイス制御装置100の連携制御部105は、タッチパネル210の切断通知を受け取ると、情報処理装置700のカメラ709も切断(仮想化制御を終了)する(ステップS423)。
ステップS421〜ステップS423により、デバイス制御装置100を介した情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800の連携が終了する。
なお、ステップS401〜ステップS409により、デバイス制御装置100を介した、情報処理装置200の内部デバイス300及び情報処理装置400の内部デバイス500、情報処理装置700の内部デバイス800の連携が開始されると、ステップS423においてその連携が切断(終了)されるまで、ステップS410〜ステップS415の処理(カメラ遠隔操作処理)とステップS416〜ステップS420の処理(撮影画像転送処理)を非同期(並列)で繰り返す。このとき、情報処理装置200、情報処理装置400及び情報処理装置700は、内部デバイス300、内部デバイス500及び内部デバイス800の間でデバイス制御装置100を介してデータ送受信を行う。
上述のように、本発明の第2の実施形態ではデバイス制御装置100を介した情報処理装置200の内部デバイス300(例えば、タッチパネル210)及び情報処理装置400の内部デバイス500(例えば、カメラ409)、情報処理装置700の内部デバイス800(例えば、カメラ709)の連携を行う。これにより、情報処理装置200のタッチパネル210に情報処理装置400のカメラ409と情報処理装置700のカメラ709の撮影画像を表示し、情報処理装置200のタッチパネル210を操作することで情報処理装置400のカメラ409と情報処理装置700のカメラ709を遠隔操作するというデバイス制御装置100を介した連携が可能となる。
加えて、デバイス制御装置100を介することで、情報処理装置200の内部デバイス300は、連携の先が複数(情報処理装置400の内部デバイス500と情報処理装置700の内部デバイス800)であっても、第1の実施形態と同一の仕組みで内部デバイス間の連携を行うことが出来る。
[第3の実施形態]
続いて、本発明の第3の実施形態によるデバイス制御システムの一例について説明する。
続いて、本発明の第3の実施形態によるデバイス制御システムの一例について説明する。
第1の実施形態では、単数の情報処理装置と単数の情報処理装置との間のデバイス制御装置を介した連携を説明した。第2の実施形態では、単数の情報処理装置と複数の情報処理装置との間のデバイス制御装置を介した連携を説明した。第3の実施形態では、単数の情報処理装置と複数の情報処理装置との間のデバイス制御装置を介した連携の開始の際に、複数の情報処理装置から単数の情報処理装置が操作されることにより、操作された情報処理装置の意図せぬ動作を防ぐ排他処理について説明する。
<システム構成>
図10は、本発明の第3の実施形態によるデバイス制御システムの一例を示すブロック図である。第3の実施形態は、システム構成は第2の実施形態と同等であり、デバイス制御装置100に排他制御部108を、情報処理装置700に内部デバイス800を追加したものである。なお、図1に示すデバイス制御システムと同一の構成要素については同一の参照番号を付して説明を省略する。
図10は、本発明の第3の実施形態によるデバイス制御システムの一例を示すブロック図である。第3の実施形態は、システム構成は第2の実施形態と同等であり、デバイス制御装置100に排他制御部108を、情報処理装置700に内部デバイス800を追加したものである。なお、図1に示すデバイス制御システムと同一の構成要素については同一の参照番号を付して説明を省略する。
図示のデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700が有線回線又は無線回線のローカルエリアネットワーク(LAN)を介して接続されている。または、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700が、3G回線やWi−Fi(登録商標)などの無線通信路を介して接続されている。
情報処理装置200及び、情報処理装置400の構成要素は第1の実施形態で説明したものと同一であるため説明を省略する。
なお、図10に示すデバイス制御システムにおいては、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700がそれぞれ1つのみ示されているが、デバイス制御装置100と情報処理装置200、情報処理装置400、情報処理装置700の台数は図示の例に限定されるものではない。
<デバイス制御装置100の構成>
本実施形態におけるデバイス制御装置100は、第1の実施形態で説明済みのデバイス制御装置100の構成に対して排他制御部108と仮想化制御デバイス情報109を追加している。それ以外は第1の実施形態で説明済みのデバイス制御装置100と同等である。
本実施形態におけるデバイス制御装置100は、第1の実施形態で説明済みのデバイス制御装置100の構成に対して排他制御部108と仮想化制御デバイス情報109を追加している。それ以外は第1の実施形態で説明済みのデバイス制御装置100と同等である。
排他制御部108は、仮想化制御デバイス情報109を備えている。
排他制御部108は、連携制御部105から仮想化制御開始通知または、連携開始通知を受け取ると、受け取った仮想化制御開始通知または、連携開始通知をもとに仮想化制御デバイス情報109を更新する。仮想化制御開始通知はデバイス制御装置100と情報処理装置200、情報処理装置400又は情報処理装置700が仮想化制御を開始した旨を通知するものであり、連携開始通知はデバイス制御装置100を介して情報処理装置間で連携を開始した旨を通知するものである。
さらに、排他制御部108は、連携制御部105から排他状況問合せを受けると、仮想化制御デバイス情報109をもとに、デバイス制御装置100で仮想化制御している内部デバイス間での連携開始を排他すべきかを判断し、判断した結果を連携制御部105に送信する。
仮想化制御デバイス情報109は、排他制御部108が、デバイス制御装置100で仮想化制御している内部デバイス間での連携開始を排他すべきかを判断するために用いられる。
図11は、図10に示す仮想化制御デバイス情報109の一例を示す図である。
図11に示す仮想化制御デバイス情報109は、内部デバイス名、情報処理装置識別名、クラス、連携相手情報から構成されている。
内部デバイス名は、情報処理装置の具備する内部デバイスを一意に識別できる名称である。
情報処理装置識別名は、情報処理装置を一意に識別できる情報である。装置名、IPアドレス、MACアドレスなどネットワーク上で情報処理装置を一意に識別できる情報を用いる。
クラスは、どのUSBドライバで内部デバイスを制御できるかを一意に示す情報である。キーボード、マウス、デジタイザーおよびディスプレイなどデバイスの種類に応じてUSB規格で規定されているクラス情報を用いる。
連携相手情報は、内部デバイスがデバイス制御装置100を介して他の情報処理装置の備える内部デバイスと連携している場合、連携している相手の内部デバイス名である。図11に示す仮想化制御デバイス情報109では、連携相手情報は1〜3までとしているが、連携相手情報の数は図示の例に限定されるものではない。
<情報処理装置700の構成>
情報処理装置700の構成要素は、情報処理装置400の構成要素と同等である。本実施形態において、カメラ709とタッチパネル710はそれぞれ、情報処理装置700の内部デバイス800、内部デバイス900として位置づけられる。
情報処理装置700の構成要素は、情報処理装置400の構成要素と同等である。本実施形態において、カメラ709とタッチパネル710はそれぞれ、情報処理装置700の内部デバイス800、内部デバイス900として位置づけられる。
<デバイス制御システムのシーケンス(連携開始の排他)>
図12は、図10に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300、情報処理装置400の内部デバイス500及び情報処理装置700の内部デバイス900が連携開始しようとした際の排他処理を説明するシーケンス図である。排他処理は、内部デバイス500が内部デバイス300と内部デバイス900の両方から操作する場合に、情報処理装置200を操作するユーザーや情報処理装置700を操作するユーザーにとって意図せぬ内部デバイス500の動作を防ぐために必要である。
図12は、図10に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300、情報処理装置400の内部デバイス500及び情報処理装置700の内部デバイス900が連携開始しようとした際の排他処理を説明するシーケンス図である。排他処理は、内部デバイス500が内部デバイス300と内部デバイス900の両方から操作する場合に、情報処理装置200を操作するユーザーや情報処理装置700を操作するユーザーにとって意図せぬ内部デバイス500の動作を防ぐために必要である。
前記の連携開始を排他する処理は、内部デバイス500が内部デバイス300と内部デバイス900の両方から操作されることで、情報処理装置200を操作するユーザーや情報処理装置700を操作するユーザーにとって意図せぬ内部デバイス500の動作を防ぐために行われる。図12では、第1の実施形態の図4〜図6で説明済みの各情報処理装置内部における各制御部間のステップを省略している。
まず、情報処理装置200からユーザー操作によって、内部デバイス300(タッチパネル210)をHID(Digitizer)クラスとして、デバイス制御装置100に仮想化制御を開始させる(ステップS501)。
デバイス制御装置100の連携制御部105は、情報処理装置200のタッチパネル210をHID(Digitizer)クラスとして仮想化制御開始した旨を排他制御部108に通知する(ステップS502)。連携制御部105からの通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS503)。
さらに、連携制御部105は、情報処理装置200に送信する連携情報106を選定し、情報処理装置200に選定した連携情報106を送信する(ステップS504〜ステップS505)。
次に、情報処理装置700からユーザー操作によって、内部デバイス900(タッチパネル710)をHID(Digitizer)クラスとして、デバイス制御装置100に仮想化制御を開始させる(ステップS506)。
デバイス制御装置100の連携制御部105は、情報処理装置700のタッチパネル710をHID(Digitizer)クラスとして仮想化制御開始した旨を排他制御部108に通知する(ステップS507)。連携制御部105からの通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS508)。
さらに、連携制御部105は、情報処理装置700に送信する連携情報106を選定し、情報処理装置700に選定した連携情報106を送信する(ステップS509〜ステップS510)。
デバイス制御装置100から連携情報106を受け取った情報処理装置200は、ユーザーの操作によって受け取った連携情報106の中から1つの内部デバイス名と前記内部デバイス名にひもづいたクラスを選択し、ユーザーが選択した連携情報106をデバイス制御装置100の連携制御部105に送付する(ステップS511)。
情報処理装置200からユーザーが選択した連携情報106を受け取ったデバイス制御装置100の連携制御部105は、受け取った連携情報106を解析する。連携制御部105は、受け取った連携情報106を解析した結果、情報処理装置400のカメラ409をデバイス制御装置100でVideoクラスとして仮想化制御開始することと、情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携を開始することが情報処理装置200の要求であると判断する。連携制御部105は、受け取った連携情報106から導き出した情報処理装置200の要求に問題がないかの排他状況問い合わせを、排他制御部108に対して行う(ステップS512)。
排他制御部108は、仮想化制御デバイス情報109をもとに、カメラ409がデバイス制御装置100においていずれのクラスとしても仮想化制御は行われていないため、カメラ409のVideoクラスとしてのデバイス制御装置100における仮想化制御開始を許可と判断する。次に、排他制御部108は、タッチパネル210もカメラ409もいずれの内部デバイスともデバイス制御装置100を介した連携を行っていないため、デバイス制御装置100を介した情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携開始を許可と判断する(ステップS513)。
排他制御部108は、仮想化制御デバイス情報109をもとに判断した結果を連携制御部105に返す(ステップS514)。
排他制御部108から判断結果を受け取った連携制御部105は、カメラ409をVideoクラスとしてデバイス制御装置100での仮想化制御を開始する(ステップS515〜ステップS516)。
ステップS501〜ステップS505及びステップS511〜ステップS516の処理によって、デバイス制御装置100を介した情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携が開始される。
連携制御部105は、デバイス制御装置100を介した情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携開始に成功した旨を、情報処理装置200に通知する(ステップS517)。
さらに、連携制御部105は、カメラ409をVideoクラスとして仮想化制御開始した旨を、排他制御部108に通知する(ステップS518)。
通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS519)。
次に、連携制御部105は、情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携開始を、排他制御部108に通知する(ステップS520)。
通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS521)。
情報処理装置200のタッチパネル210(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携が開始されている時、情報処理装置700は、デバイス制御装置100から受け取った連携情報106の中から1つの内部デバイス名と前記内部デバイス名にひもづいたクラスをユーザーの操作によって選択する。情報処理装置700は、ユーザーが選択した連携情報106をデバイス制御装置100の連携制御部105に送付する(ステップS522)。
連携制御部105は、受け取った連携情報106を解析する。連携制御部105は、受け取った連携情報106を解析した結果、情報処理装置400のカメラ409をデバイス制御装置100でVideoクラスとして仮想化制御開始することと、情報処理装置700のタッチパネル710(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携を開始することが情報処理装置700の要求であると判断する。連携制御部105は、受け取った連携情報106から導き出した情報処理装置700の要求に問題がないかの排他状況問い合わせを、排他制御部108に対して行う(ステップS523)。
排他制御部108は、仮想化制御デバイス情報109をもとに、カメラ409がデバイス制御装置100においてすでにVideoクラスとして仮想化制御が行われているため、カメラ409のVideoクラスとしてのデバイス制御装置100における仮想化制御開始を不要と判断する。次に、排他制御部108は、仮想化制御デバイス情報109をもとに、カメラ409(Videoクラス)はタッチパネル210(HID(Digitizer)クラス)とすでにデバイス制御装置100を介した連携を行っているため、デバイス制御装置100を介した情報処理装置700のタッチパネル710(HID(Digitizer)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携開始を不許可と判断する。前記のように排他制御部108が連携開始を不許可と判断する理由は、タッチパネル710(HID(Digitizer)クラス)とカメラ409(Videoクラス)が連携した場合、カメラ409(Videoクラス)がタッチパネル210(HID(Digitizer)クラス)とタッチパネル710(HID(Digitizer)クラス)の両方から操作されることとなり、情報処理装置200を操作するユーザーや情報処理装置700を操作するユーザーにとって意図せぬ動作をカメラ409(Videoクラス)する可能性があるためである(ステップS524)。
排他制御部108は、仮想化制御デバイス情報109をもとに判断した結果を連携制御部105に返す(ステップS525)。
排他制御部108から判断結果を受け取った連携制御部105は、連携開始に失敗した旨を、情報処理装置700に通知する(ステップS526)。
<デバイス制御システムのシーケンス(連携の共存)>
図13は、図10に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300、情報処理装置400の内部デバイス500及び情報処理装置700の内部デバイス900が連携開始しようとした際の連携を許可する場合のシーケンス図である。
図13は、図10に示すデバイス制御システムにおいてデバイス制御装置100を介して、情報処理装置200の内部デバイス300、情報処理装置400の内部デバイス500及び情報処理装置700の内部デバイス900が連携開始しようとした際の連携を許可する場合のシーケンス図である。
前記の連携開始を許可するのは、内部デバイス500が内部デバイス300と内部デバイス900の両方と連携しても、内部デバイス300及び内部デバイス900は内部デバイス500から情報を取得するのみで内部デバイス500に対する操作を行うことはないので、情報処理装置200を操作するユーザーや情報処理装置700を操作するユーザーにとって意図せぬ動作を内部デバイス500する可能性がないためである。図13では、第1の実施形態の図4〜図6で説明済みの各情報処理装置内部における各制御部間のステップを省略している。
まず、情報処理装置200からユーザー操作によって、内部デバイス300(タッチパネル210)をVendor(Display)クラスとして、デバイス制御装置100に仮想化制御を開始させる(ステップS601)。
デバイス制御装置100の連携制御部105は、情報処理装置200のタッチパネル210をVendor(Display)クラスとして仮想化制御開始した旨を排他制御部108に通知する(ステップS602)。連携制御部105からの通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS603)。
さらに、連携制御部105は、情報処理装置200に送信する連携情報106を選定し、情報処理装置200に選定した連携情報106を送信する(ステップS604〜ステップS605)。
次に、情報処理装置700からユーザー操作によって、内部デバイス900(タッチパネル710)をVendor(Display)クラスとして、デバイス制御装置100に仮想化制御を開始させる(ステップS606)。
デバイス制御装置100の連携制御部105は、情報処理装置700のタッチパネル710をVendor(Display)クラスとして仮想化制御開始した旨を排他制御部108に通知する(ステップS607)。連携制御部105からの通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS608)。
さらに、連携制御部105は、情報処理装置700に送信する連携情報106を選定し、情報処理装置700に選定した連携情報106を送信する(ステップS609〜ステップS610)。
デバイス制御装置100から連携情報106を受け取った情報処理装置200は、ユーザーの操作によって受け取った連携情報106の中から1つの内部デバイス名と前記内部デバイス名にひもづいたクラスを選択し、ユーザーが選択した連携情報106をデバイス制御装置100の連携制御部105に送付する(ステップS611)。
情報処理装置200からユーザーが選択した連携情報106を受け取ったデバイス制御装置100の連携制御部105は、受け取った連携情報106を解析する。連携制御部105は、受け取った連携情報106を解析した結果、情報処理装置400のカメラ409をデバイス制御装置100でVideoクラスとして仮想化制御を開始することと、情報処理装置200のタッチパネル210(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携を開始することが情報処理装置200の要求であると判断する。連携制御部105は、受け取った連携情報106から導き出した情報処理装置200の要求に問題がないかの排他状況問い合わせを、排他制御部108に対して行う(ステップS612)。
連携制御部105から排他状況問い合わせを受けた排他制御部108は、仮想化制御デバイス情報109をもとに、情報処理装置400のカメラ409はデバイス制御装置100においていずれのクラスとしても仮想化制御は行われていないため、カメラ409のVideoクラスとしてのデバイス制御装置100における仮想化制御開始を許可と判断する。次に、排他制御部108は、タッチパネル210もカメラ409もいずれの内部デバイスともデバイス制御装置100を介した連携を行っていないため、デバイス制御装置100を介した情報処理装置200のタッチパネル210(Vendor(Display)クラス))と情報処理装置400のカメラ409(Videoクラス)の連携開始を許可と判断する(ステップS613)。
排他制御部108は、仮想化制御デバイス情報109をもとに判断した結果を連携制御部105に返す(ステップS614)。
排他制御部108から判断結果を受け取った連携制御部105は、カメラ409をVideoクラスとしてデバイス制御装置100での仮想化制御を開始する(ステップS615〜ステップS616)。
ステップS601〜ステップS605及びステップS611〜ステップS616の処理によって、デバイス制御装置100を介した情報処理装置200のタッチパネル210(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携が開始される。
連携制御部105は、デバイス制御装置100を介した情報処理装置200のタッチパネル210(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携開始に成功した旨を、情報処理装置200に通知する(ステップS617)。
さらに、連携制御部105は、カメラ409をVideoクラスとして仮想化制御開始した旨を、排他制御部108に通知する(ステップS618)。
通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS619)。次に、連携制御部105は、情報処理装置200のタッチパネル210(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携開始を、排他制御部108に通知する(ステップS620)。
通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS621)。
情報処理装置200のタッチパネル210(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携が開始されている時、情報処理装置700は、デバイス制御装置100から受け取った連携情報106の中から1つの内部デバイス名と前記内部デバイス名にひもづいたクラスをユーザーの操作によって選択する。情報処理装置700は、ユーザーが選択した連携情報106をデバイス制御装置100の連携制御部105に送付する(ステップS622)。
情報処理装置700からユーザーが選択した連携情報106を受け取ったデバイス制御装置100の連携制御部105は、受け取った連携情報106を解析する。連携制御部105は、受け取った連携情報106を解析した結果、情報処理装置400のカメラ409をデバイス制御装置100でVideoクラスとして仮想化制御を開始することと、情報処理装置700のタッチパネル710(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携を開始することが情報処理装置700の要求であると判断する。連携制御部105は、受け取った連携情報106から導き出した情報処理装置700の要求に問題がないかの排他状況問い合わせを、排他制御部108に対して行う(ステップS623)。
連携制御部105から排他状況問い合わせを受けた排他制御部108は、仮想化制御デバイス情報109をもとに連携開始の可否(排他制御の要否)を判断する(ステップS624)。まず、情報処理装置400のカメラ409をVideoクラスとして仮想化制御する要否の判断を行う。ここでは、カメラ409はデバイス制御装置100においてすでにVideoクラスとして仮想化制御が行われているため、仮想化制御の開始は不要と判断する。次に、情報処理装置700のタッチパネル710(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)のデバイス制御装置100を介した連携開始の可否を判断する。ここでは、カメラ409(Videoクラス)はタッチパネル210(Vendor(Display)クラス)とすでにデバイス制御装置100を介した連携を行っているが、タッチパネル210及びタッチパネル710のVendor(Display)クラスはカメラ409(Videoクラス)から撮影画像を取得するのみで、カメラ409に対する操作を行うことはないので排他制御が必要ない。したがって、カメラ409(Videoクラス)はタッチパネル210(Vendor(Display)クラス)とタッチパネル710(Vendor(Display)クラス)の両方と連携しても問題がないので、連携開始を許可してよいと判断する。
排他制御部108は、仮想化制御デバイス情報109をもとに判断した結果を連携制御部105に返す(ステップS625)。
排他制御部108から判断結果を受け取った連携制御部105は、デバイス制御装置100を介した情報処理装置700のタッチパネル710(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携を開始し、連携開始に成功した旨を、情報処理装置700に通知する(ステップS626)。
さらに、連携制御部105は、デバイス制御装置100を介した情報処理装置700のタッチパネル710(Vendor(Display)クラス)と情報処理装置400のカメラ409(Videoクラス)の連携開始を、排他制御部108に通知する(ステップS627)。
通知を受け取った排他制御部108は、受け取った通知をもとに仮想化制御デバイス情報109を更新する(ステップS628)。
上述のように、本発明の第3の実施形態では、デバイス制御装置100を介して、情報処理装置200の内部デバイス300(例えば、タッチパネル210)及び情報処理装置400の内部デバイス500(例えば、カメラ409)、情報処理装置700の内部デバイス900(例えば、タッチパネル710)が連携開始しようとした際に、情報処理装置200の内部デバイス300と情報処理装置700の内部デバイス900をデバイス制御装置100において仮想化制御しているクラスをもとに、内部デバイス500が内部デバイス300と内部デバイス900の両方からと連携しても問題ないかの排他判断処理を行っている。排他判断処理により、内部デバイス500が内部デバイス300と内部デバイス900の両方から操作されることによるユーザーにとって意図せぬ内部デバイス500の動作を防ぐことができる。
以上、本発明について実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、情報処理装置200のタッチパネル210を操作して、第1の実施形態と第2の実施形態で説明した内部デバイス間の連携の開始/終了を切り替えたが、デバイス制御装置100や情報処理装置400、情報処理装置700を操作して内部デバイス間の連携の開始/終了を切り替えるようにしてもよい。
情報処理装置を操作し他の情報処理装置の具備する内部デバイスのデバイス制御装置における仮想化制御を開始させる際に、他の情報処理装置の具備する内部デバイスとデバイス制御装置の間の接続を新たに開始したが、すでにデバイス制御装置に接続されている他の情報処理装置の具備する内部デバイスとの間で連携を開始してもよい。また、すでにデバイス制御装置に接続されている他の情報処理装置の具備する内部デバイスのデバイスドライバを変えることによって内部デバイス間の連携を開始してもよい。そして、すでにデバイス制御装置で仮想化制御している内部デバイスを持つ他の情報処理装置に既に接続されているのとは別の内部デバイスをデバイス制御装置に接続させることによって内部デバイス間の連携を開始してもよい。
デバイス制御装置100に仮想化制御されるデバイスは、情報処理装置200の内部デバイス300(例:タッチパネル210)、情報処理装置400の内部デバイス500(例:カメラ409)、情報処理装置700の内部デバイス800(例:カメラ709)として説明したが、情報処理装置200や情報処理装置400、情報処理装置700に内蔵されたフラッシュメモリ(例:SDメモリカード)などの記憶装置や内蔵されたスピーカーなどであってもよい。
情報処理装置200又は情報処理装置400、情報処理装置700に通信I/F(不図示)を介して外部デバイス(不図示)が接続された場合、デバイス制御装置100は、情報処理装置200又は情報処理装置400、情報処理装置700の外部デバイスを仮想化制御し、外部デバイスとの間におけるデータ送受信を行うことができる。なお、外部デバイスは、例えば、キーボード、マウス、デジタイザーおよびテンキーなどの入力装置、液晶ディスプレイなどの表示装置、USBメモリなどの記憶装置などであって、外部デバイスは情報処理装置200又は情報処理装置400、情報処理装置700にUSBインターフェースなどの通信I/Fよって接続される。
上記の実施形態の機能を制御方法として、この制御方法をデバイス制御装置100に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置100が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。
100:デバイス制御装置
200,400,600,700:情報処理装置
300,500,800,900:内部デバイス
101:アプリケーション
102:デバイスドライバ
102A:タッチパネルドライバ
102B:カメラドライバ
103:仮想化制御部
104,201,401:通信制御部
105:連携制御部
106:連携情報
107:連携情報管理部
108:排他制御部
109:仮想化制御デバイス情報
202,402:仮想化通信部
203,403:連携通信部
204,404:仮想デバイス制御部
205,405:仮想デバイス識別情報
206,406:データ形式変換処理部
207,407:内部バス
208:入力I/F
209:ディスプレイI/F
408:カメラI/F
210,710:タッチパネル
409,709:カメラ
200,400,600,700:情報処理装置
300,500,800,900:内部デバイス
101:アプリケーション
102:デバイスドライバ
102A:タッチパネルドライバ
102B:カメラドライバ
103:仮想化制御部
104,201,401:通信制御部
105:連携制御部
106:連携情報
107:連携情報管理部
108:排他制御部
109:仮想化制御デバイス情報
202,402:仮想化通信部
203,403:連携通信部
204,404:仮想デバイス制御部
205,405:仮想デバイス識別情報
206,406:データ形式変換処理部
207,407:内部バス
208:入力I/F
209:ディスプレイI/F
408:カメラI/F
210,710:タッチパネル
409,709:カメラ
Claims (22)
- ネットワークを介してデバイス制御装置に接続された情報処理装置であって、
前記情報処理装置が具備する所定の機能を有した内部デバイスをデバイス制御装置に直接接続されたデバイスとして識別させるための仮想デバイス識別情報を記憶する識別情報記憶手段と、
前記仮想デバイス識別情報を前記デバイス制御装置に送信する識別情報送信手段と、
前記デバイス制御装置が前記仮想デバイス識別情報に応じて識別した前記内部デバイスを、当該デバイス制御装置からの制御要求に従って制御する際、前記内部デバイスとの間のデータ通信は第1のデータ形式に変換し、前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想デバイス制御手段と、
ネットワーク上の他の情報処理装置が具備する所定の機能を有した内部デバイスを認識する連携デバイス認識手段と、
前記デバイス制御装置を介して、ネットワーク上の他の情報処理装置が具備する所定の機能を前記内部デバイスとして当該デバイス制御装置への接続・切断の指示を送信する連携通信手段と、
前記デバイス制御装置を介して前記連携デバイス認識手段が認識した前記内部デバイスを制御する連携操作手段と、
を有することを特徴とする情報処理装置。 - 前記デバイス制御装置から受信したネットワーク上の他の情報処理装置が具備する機能の情報を所定の操作で選択できるように表示する連携情報表示手段をさらに有することを特徴とする請求項1に記載の情報処理装置。
- 前記情報処理装置において所定の選択操作が行われると、前記連携情報表示手段は、当該選択操作によって選択されたネットワーク上の他の情報処理装置が具備する所定の機能の情報を前記デバイス制御装置に送信することを特徴とする請求項2に記載の情報処理装置。
- 前記情報処理装置において所定の接続操作が行われると、前記識別情報送信手段は、前記接続操作に応じて前記仮想デバイス識別情報を前記デバイス制御装置に送信することを特徴とする請求項1乃至請求項3に記載の情報処理装置。
- 前記情報処理装置において所定の終了操作が行われると、前記仮想デバイス制御手段は、前記情報処理装置の内部デバイスの制御を終了することを特徴とする請求項1乃至請求項4の何れか1項に記載の情報処理装置。
- 前記情報処理装置において所定の選択操作・終了操作が行われると、前記連携通信手段は、前記デバイス制御装置を介して、ネットワーク上の他の情報処理装置が具備する所定の機能を前記内部デバイスとして当該デバイス制御装置への接続・切断の指示を送信することを特徴とする請求項1乃至請求項5の何れか1項に記載の情報処理装置。
- 前記情報処理装置にデバイスが接続された場合、
前記識別情報送信手段は、さらに、当該デバイスから送られてくる個体識別情報を前記デバイス制御装置に送信し、
前記仮想デバイス制御手段は、さらに、前記デバイス制御装置が前記個体識別情報に応じて識別した前記デバイスを、当該デバイス制御装置からの制御要求に従って制御することを特徴とする請求項1乃至請求項6の何れか1項に記載の情報処理装置。 - ネットワークを介して複数の情報処理装置が接続されているデバイス制御装置であって、
前記情報処理装置の内部デバイスをデバイス識別情報にもとづいて識別し、識別したデバイスの種類に応じて当該デバイスにデバイスドライバを割り当てるデバイス識別手段と、
前記情報処理装置に接続されたデバイスが自身に接続されているかのようにネットワーク上での通信を介してシミュレートする仮想化制御手段と、
前記情報処理装置に送信するためにネットワーク上の複数の情報処理装置が具備する機能の情報を管理する連携情報管理手段と、
前記情報処理装置にネットワーク上の他の情報処理装置が具備する機能の情報を送信する連携情報送信手段と、
前記情報処理装置から受信した指示に従いネットワーク上の他の情報処理装置の内部デバイスを接続・切断する連携制御手段と、
を有することを特徴とするデバイス制御装置。 - 前記第一の情報処理装置の前記内部デバイスが接続されると、前記連携情報送信手段は、当該内部デバイスと連携可能なネットワーク上の第二の情報処理装置が具備する機能の情報を当該第一の情報処理装置に送信することを特徴とする請求項8に記載のデバイス制御装置。
- 前記情報処理装置のデバイス制御装置における仮想化制御状況および情報処理装置との連携状況を記憶する連携状況記憶手段と、
前記仮想化制御状況と前記連携状況をもとに制御操作の競合の有無に応じて当該デバイス制御装置を介して前記情報処理装置との連携開始の可否を判断し前記連携制御手段に通知する排他制御手段とを、さらに備え、
前記連携制御手段は、前記受信した指示と前記排他制御手段による連携開始の可否に従い内部デバイスを接続・切断することを特徴とする請求項8に記載のデバイス制御装置。 - 請求項8乃至請求項10の何れか1項に記載のデバイス制御装置と、請求項1乃至請求項7の何れか1項に記載の情報処理装置から構成されることを特徴とするデバイス制御システム。
- ネットワークを介してデバイス制御装置に接続された情報処理装置の制御方法であって、
識別情報記憶手段が、前記情報処理装置が具備する所定の機能を有した内部デバイスをデバイス制御装置に直接接続されたデバイスとして識別させるための仮想デバイス識別情報を記憶する識別情報記憶ステップと、
識別情報送信手段が、前記仮想デバイス識別情報を前記デバイス制御装置に送信する識別情報送信ステップと、
仮想デバイス制御手段が、前記デバイス制御装置が前記仮想デバイス識別情報に応じて識別した前記内部デバイスを、当該デバイス制御装置からの制御要求に従って制御する際、前記内部デバイスとの間のデータ通信は第1のデータ形式に変換し、前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想デバイス制御ステップと、
連携デバイス認識手段が、ネットワーク上の他の情報処理装置が具備する所定の機能を有した内部デバイスを認識する連携デバイス認識ステップと、
連携通信手段が前記デバイス制御装置を介して、ネットワーク上の他の情報処理装置が具備する所定の機能を前記内部デバイスとして当該デバイス制御装置への接続・切断の指示を送信する連携通信ステップと、
連携操作手段が、前記デバイス制御装置を介して前記連携デバイス認識手段が認識した前記内部デバイスを制御する連携操作ステップと、
を有することを特徴とする情報処理装置の制御方法。 - 前記デバイス制御装置から受信したネットワーク上の他の情報処理装置が具備する機能の情報を所定の操作で選択できるように表示する連携情報表示ステップをさらに有することを特徴とする請求項12に記載の情報処理装置の制御方法。
- 前記情報処理装置において所定の選択操作が行われると、前記連携情報表示ステップは、当該選択操作によって選択されたネットワーク上の他の情報処理装置が具備する所定の機能の情報を前記デバイス制御装置に送信することを特徴とする請求項13に記載の情報処理装置の制御方法。
- 前記情報処理装置の制御方法において所定の接続操作が行われると、前記識別情報送信ステップは、前記接続操作に応じて前記仮想デバイス識別情報を前記デバイス制御装置に送信することを特徴とする請求項12乃至請求項14に記載の情報処理装置の制御方法。
- 前記情報処理装置の制御方法において所定の終了操作が行われると、前記仮想デバイス制御ステップは、前記情報処理装置の内部デバイスの制御を終了することを特徴とする請求項12乃至請求項15の何れか1項に記載の情報処理装置の制御方法。
- 前記情報処理装置において所定の選択操作・終了操作が行われると、前記連携通信ステップは、前記デバイス制御装置を介して、ネットワーク上の他の情報処理装置が具備する所定の機能を前記内部デバイスとして当該デバイス制御装置への接続・切断の指示を送信することを特徴とする請求項12乃至請求項16の何れか1項に記載の情報処理装置の制御方法。
- 前記情報処理装置にデバイスが接続された場合、
前記識別情報送信ステップは、さらに、当該デバイスから送られてくる個体識別情報を前記デバイス制御装置に送信し、
前記仮想デバイス制御ステップは、さらに、前記デバイス制御装置が前記個体識別情報に応じて識別した前記デバイスを、当該デバイス制御装置からの制御要求に従って制御することを特徴とする請求項12乃至請求項17の何れか1項に記載の情報処理装置の制御方法。 - ネットワークを介して複数の情報処理装置が接続されているデバイス制御装置の制御方法であって、
デバイス識別手段が、自身に接続された前記情報処理装置の内部デバイスをデバイス識別情報にもとついて識別し、識別したデバイスの種類に応じて当該デバイスにデバイスドライバを割り当てるデバイス識別ステップと、
仮想化制御手段が、前記情報処理装置に接続されたデバイスが自身に接続されているかのようにネットワーク上での通信をシミュレートする仮想化制御ステップと、
連携情報管理手段が、前記情報処理装置に送信するためにネットワーク上の複数の情報処理装置が具備する機能の情報を管理する連携情報管理ステップが備えられており、
連携情報送信手段が、前記情報処理装置にネットワーク上の他の情報処理装置が具備する機能の情報を送信する連携情報送信ステップと、
連携制御手段が、前記情報処理装置から受信した指示に従いネットワーク上の他の情報処理装置の内部デバイスを接続・切断する連携制御ステップと、
を有することを特徴とするデバイス制御装置の制御方法。 - 前記第一の情報処理装置の前記内部デバイスが接続されると、前記連携情報送信ステップは、当該内部デバイスと連携可能なネットワーク上の第二の情報処理装置が具備する機能の情報を当該第一の情報処理装置に送信することを特徴とする請求項19に記載のデバイス制御装置の制御方法。
- 連携状況記憶手段が、前記情報処理装置のデバイス制御装置における仮想化制御状況および情報処理装置との連携状況を記憶する連携状況記憶ステップと、
排他制御手段が、前記仮想化制御状況と前記連携状況をもとに制御操作の競合の有無に応じて当該デバイス制御装置を介して前記情報処理装置との連携開始の可否を判断し前記連携制御手段に通知する排他制御ステップとを、さらに備え、
前記連携制御ステップは、前記受信した指示と前記排他制御ステップによる連携開始の可否に従い内部デバイスを接続・切断することを特徴とする請求項19に記載のデバイス制御装置の制御方法。 - 請求項19乃至請求項21の何れか1項に記載のデバイス制御装置の制御方法と、請求項12乃至請求項18の何れか1項に記載の情報処理装置の制御方法から構成されることを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014227599A JP2016091434A (ja) | 2014-11-08 | 2014-11-08 | 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014227599A JP2016091434A (ja) | 2014-11-08 | 2014-11-08 | 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016091434A true JP2016091434A (ja) | 2016-05-23 |
Family
ID=56019390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014227599A Pending JP2016091434A (ja) | 2014-11-08 | 2014-11-08 | 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016091434A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113383515A (zh) * | 2019-01-07 | 2021-09-10 | 思杰系统有限公司 | 实时通信的设备增强 |
EP4312093A1 (en) | 2022-07-29 | 2024-01-31 | Yokogawa Electric Corporation | Information management apparatus, calculation apparatus, information management program, calculation program, information processing system, and information processing method |
EP4332774A1 (en) | 2022-09-05 | 2024-03-06 | Yokogawa Electric Corporation | Information management apparatus, information management method, and information management program |
-
2014
- 2014-11-08 JP JP2014227599A patent/JP2016091434A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113383515A (zh) * | 2019-01-07 | 2021-09-10 | 思杰系统有限公司 | 实时通信的设备增强 |
JP2022517943A (ja) * | 2019-01-07 | 2022-03-11 | サイトリックス システムズ,インコーポレイテッド | リアルタイム通信のデバイス拡張 |
US11803606B2 (en) | 2019-01-07 | 2023-10-31 | Citrix Systems, Inc. | Device augmentation of real time communications |
EP4312093A1 (en) | 2022-07-29 | 2024-01-31 | Yokogawa Electric Corporation | Information management apparatus, calculation apparatus, information management program, calculation program, information processing system, and information processing method |
EP4332774A1 (en) | 2022-09-05 | 2024-03-06 | Yokogawa Electric Corporation | Information management apparatus, information management method, and information management program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7230124B2 (ja) | プログラム、通信装置、制御方法 | |
EP3131277B1 (en) | Controlling an image forming apparatus plug-in using a portable device and obtaining of latest user plug-in settings from an external device | |
EP2846524A2 (en) | Wireless communication apparatus, wireless communication method, program, and storage medium | |
JP5920424B2 (ja) | 情報処理装置及びプログラム | |
EP2461522A1 (en) | Appliance control device, registration method of appliance control device, and program | |
JP6873660B2 (ja) | 情報処理装置、通信装置、プログラム及び制御方法 | |
JP2016019044A (ja) | 情報処理装置およびシステム | |
JP2016091434A (ja) | 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム | |
CN110221793B (zh) | 搜索图像形成设备的方法、移动终端和计算机可读介质 | |
JP2016177097A (ja) | 通信装置、通信装置の制御方法、及び表示システム | |
KR20180059207A (ko) | 모바일 단말을 이용한 화상 형성 장치의 무선 연결 설정 방법 및 이를 수행하기 위한 화상 형성 장치 | |
JP6970578B2 (ja) | 通信装置およびその制御方法、プログラム | |
JP6216510B2 (ja) | 携帯端末、携帯端末の制御方法、およびデバイス制御システム | |
JP2017041789A (ja) | 情報処理装置、プログラムおよび情報処理システム | |
JP6477239B2 (ja) | 情報処理装置、接続制御方法およびプログラム | |
JP2011242481A (ja) | 表示装置、及びその制御方法 | |
JP6298292B2 (ja) | デバイス制御装置およびその制御方法 | |
JP2014142920A (ja) | 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法 | |
US10630783B2 (en) | Terminal management apparatus, terminal management system, and non-transitory computer readable medium | |
JP7383432B2 (ja) | 通信装置、通信装置の制御方法、及びプログラム | |
EP3829226A1 (en) | Communication apparatus, control method thereof, and program | |
JP7292861B2 (ja) | 情報処理装置、制御方法及びプログラム | |
EP3751387A1 (en) | Information processing apparatus, control method, and program | |
JP2015231158A (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
WO2016204100A1 (ja) | デバイス制御装置、その制御方法、およびデバイス制御システム |