JP2017142631A - デバイス制御装置、その制御方法、およびデバイス制御システム - Google Patents
デバイス制御装置、その制御方法、およびデバイス制御システム Download PDFInfo
- Publication number
- JP2017142631A JP2017142631A JP2016023179A JP2016023179A JP2017142631A JP 2017142631 A JP2017142631 A JP 2017142631A JP 2016023179 A JP2016023179 A JP 2016023179A JP 2016023179 A JP2016023179 A JP 2016023179A JP 2017142631 A JP2017142631 A JP 2017142631A
- Authority
- JP
- Japan
- Prior art keywords
- information
- control
- information processing
- virtual composite
- processing apparatus
- 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
- Accessory Devices And Overall Control Thereof (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】デバイス制御装置が備えている内部デバイス、デバイス制御装置にローカル接続された外部デバイス使ってネットワーク上の情報処理装置を遠隔操作できるデバイス制御装置、その制御方法、およびデバイス制御システムにおいて、情報処理装置、デバイス制御装置の接続状況から、仮想複合デバイスの構成、接続先を選定し、情報処理装置の状況に応じた適切な仮想複合デバイスを提供する。【解決手段】情報処理装置は仮想複合デバイスを生成するための情報(自装置情報、必要デバイス情報)をデバイス制御装置に通知し、デバイス制御装置は情報処理装置から通知された情報および接続された外部デバイス、内部デバイスのデバイス情報を接続装置情報で管理し、接続装置情報の内容から仮想複合デバイスの構成、接続先を選定して仮想複合デバイスの制御を行う。【選択図】図1
Description
本発明は、ネットワークを介して接続された情報処理装置から送られる各種要求を処理するためのデバイス制御装置、その制御方法、およびデバイス制御システムに関する。
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置であるクライアントPCが共有デバイスとして利用することが行われている。その実現方法がいくつか提案されている。
例えば、プリンタや複合機などのデバイス(デバイス制御装置)が具備する所定の機能である内部デバイスやデバイス制御装置に直結された外部デバイスと、ネットワーク上の異なるデバイス(内部デバイス、外部デバイス)を情報処理装置から制御する場合、これら内部デバイスや外部デバイスの数に基づいたセッション数に関わらず、情報処理装置とデバイス制御装置間の1以上のデバイス(内部デバイス、外部デバイス)を制御できるデバイス制御装置、その制御方法、およびデバイス制御システムを提案している(特許文献1参照)。
しかしながら、特許文献1に記載のデバイス制御システムにおいて、例えば、予め決められた任意の内部デバイスや外部デバイスを組み合わせた複合デバイス(仮想複合デバイス)の構成に含まれるデバイス制御装置がネットワーク上に存在しない場合、ネットワーク上に機能要求を満たす他のデバイス制御装置が存在したときには、存在するデバイス制御装置を使用して仮想複合デバイスを生成し、情報処理装置で使用させたいケースがある。
そこで、本発明は、出願人自らが先に提案した特許文献1のデバイス制御システムをさらに拡張・発展させ、デバイスが備えている内部デバイスである入力装置(キーボードやテンキー等)や表示装置、デバイスに直接接続された外部デバイスである入力装置や表示装置を使ってネットワーク上のクライアントPC(情報処理装置)を遠隔操作できるデバイス制御装置、その制御方法、およびデバイス制御システムにおいて、情報処理装置、デバイス制御装置の接続状況から、仮想複合デバイスの構成、接続先を選定し、情報処理装置の状況に応じた適切な仮想複合デバイスを提供することを目的とする。
上記の課題を解決するために、請求項1に記載のデバイス制御装置は、ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、前記内部デバイスおよび/または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理手段と、前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理手段と、前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御手段と、を備えることを特徴とする。
上記の課題を解決するために、請求項6に記載の仲介装置は、ネットワークを介して情報処理装置とデバイス制御装置に接続された仲介装置であって、前記デバイス制御装置の1つまたは複数の所定の機能を組み合わせた機能を前記仲介装置に接続された仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、前記情報処理装置および前記デバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理手段と、前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理手段と、前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記情報処理装置と前記デバイス制御装置との間のデータ通信を第2のデータ形式に変換して制御する仮想化制御手段と、を備えることを特徴とする。
本発明によれば、情報処理装置、デバイス制御装置の接続状況から、仮想複合デバイスの構成、接続先を選定し、選定した内容でデバイス制御装置が具備する所定の機能である仮想複合デバイス制御を行うことで、情報処理装置に状況に応じた適切な仮想複合デバイスを提供することが可能となる。
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
図1は、本発明の第1の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
図示のデバイス制御システムにおいては、情報処理装置100がローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)などのネットワークを介してデバイス制御装置200に接続されている。LANおよびWANは有線回線又は無線回線で構成される。そして、デバイス制御装置200には、例えば、通信インターフェース(例えば、USB又はHDMI(登録商標))によって外部デバイス300がローカル接続されている。以降の説明では、通信インターフェースをUSBとして説明する。
<情報処理装置100の構成>
情報処理装置100は、ユーザによって利用されるパーソナルコンピュータ(PC)等の装置である。ハードウェア構成として、CPU、入力部、表示部、メモリ、通信部(ともに不図示)、記憶部110を備え、これらハードウェアは内部バスで相互に接続されている。
情報処理装置100は、ユーザによって利用されるパーソナルコンピュータ(PC)等の装置である。ハードウェア構成として、CPU、入力部、表示部、メモリ、通信部(ともに不図示)、記憶部110を備え、これらハードウェアは内部バスで相互に接続されている。
CPUは情報処理装置100の全体の制御を司る。入力部は、例えば、キーボードおよびマウスを備えている。表示部として、例えば、液晶モニタが用いられる。メモリはRAMおよびROM等である。
通信部はLANおよびWANなどに接続するためのネットワークI/Fであって、デバイス制御装置200とデータ送受信を行う。これにより、情報処理装置100はデバイス制御装置200にローカル接続された外部デバイス300やデバイス制御装置200に備えられた内部デバイス400や外部デバイス300とデータ送受信することが可能となる。
記憶部110には、ソフトウェアであるオペレーティングシステム(以下「OS」と呼ぶ:不図示)、アプリケーション101、デバイスドライバ102、仮想化制御部103、通信制御部104およびデバイス情報通知部105が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
アプリケーション101は、デバイスドライバ102に対してデータ入出力要求を指示することにより、デバイス制御装置200に接続された外部デバイス300やデバイス制御装置200に備えられた内部デバイスを組み合わせた複合デバイス(以下「仮想複合デバイス」と呼ぶ)を制御するためのソフトウェアである。外部デバイス300および内部デバイス400の組み合わせは任意であり、デバイスの台数についてもこれに限定したものではない。
デバイスドライバ102は、外部デバイス300、内部デバイス400、および仮想複合デバイスを制御するための機能部である。OSまたはアプリケーション101からのデータ入出力要求を、外部デバイス300、内部デバイス400、および仮想複合デバイスに応じたデータ形式のデータ(以下「制御コマンド」と呼ぶ)に変換して、当該制コマンドを仮想化制御部103に送る。さらに、デバイスドライバ102は制御コマンドに対する応答をアプリケーション101に通知する。このデバイスドライバ102は一般に、製造したメーカーによって提供されるソフトウェアであって、情報処理装置100は各デバイスに対応したデバイスドライバ102によって外部デバイス300、内部デバイス400、および仮想複合デバイス500を制御することができる。
仮想化制御部103は、デバイスドライバ102から送られた制御コマンド(つまり、データ入出力要求)をUSBデータ形式に準拠したパケットデータ(以下「USBデータ」と呼ぶ)に変換する。また、仮想化制御部103は通信制御部104から送られてくるUSBデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ102に送る。
さらに、仮想化制御部103は、外部デバイス300、内部デバイス400、および仮想複合デバイス500に対するデータ送受信要求に対して、外部デバイス300、内部デバイス400、および仮想複合デバイスが情報処理装置100に直接的に接続(ローカル接続)されている際と同様の振る舞いをシミュレートする機能(以下「仮想化制御機能」と呼ぶ)を備えている。この仮想化制御機能により、情報処理装置100は外部デバイス300、内部デバイス400、および仮想複合デバイス500の接続状態が、外部デバイス300、内部デバイス400、および仮想複合デバイス500をローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
通信制御部104は、仮想化制御部103から送られるUSBデータとLANおよびWANを介してデバイス制御装置200と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置200と情報処理装置100の間でデータ送受信の制御を行う。
また、通信制御部104は仮想化制御部103を介してアプリケーション101またはデバイスドライバ102から送られるデータ送受信要求に応じて、デバイス制御装置200と情報処理装置100の間のセッションの開始および切断の制御を行う。デバイス制御装置200と情報処理装置100の間のセッションは、情報処理装置100が仮想化制御するデバイス数分(内部デバイス、外部デバイス、仮想複合デバイスの数分)、生成される。
デバイス情報通知部105は、情報処理装置100が必要とする仮想複合デバイス構成情報を管理し、仮想複合デバイス制御部211を有するデバイス制御装置200と通信可能な状態になると、情報処理装置100の情報(以下「自装置情報」と呼ぶ)および必要とするデバイス情報(以下「必要デバイス情報)と呼ぶ)をデバイス制御装置200に通知するよう通信制御部104に要求する。ここで、仮想複合デバイス構成情報とは、仮想複合デバイスがどのようなデバイスから構成されているかを示す情報である。仮想複合デバイス構成情報は、機能要求を満たすことが第1の条件である。第2の条件以降は任意で設定することも可能である。例えば、機能要求を満たす第1の条件はビデオクラス、ストレージクラス、印刷クラス等の機能を設定することである。第2の条件はカメラのfps(frame per second)、ストレージの容量、印刷のppm(Page Per Minute)等の性能を設定してもよい。
<デバイス制御装置200の構成>
デバイス制御装置200は、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成としてCPU、メモリ、通信部、および記憶部(ともに不図示)を備えるとともに、内部デバイス400を備えている。内部デバイス400の構成の詳細は後述する。
デバイス制御装置200は、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成としてCPU、メモリ、通信部、および記憶部(ともに不図示)を備えるとともに、内部デバイス400を備えている。内部デバイス400の構成の詳細は後述する。
CPUはデバイス制御装置200全体の制御を司る。入力装置208は、例えば、キーボード、テンキーおよびマウス等の入力機器若しくはこれらの機能をソフトウェアで実現したソフトウェアキーボード等である。表示装置210としては、例えば、液晶モニタが用いられる。メモリはRAMおよびROM等である。
通信部はLANおよびWANに接続するためのネットワークI/Fであって、情報処理装置100とデータ送受信を行う。
記憶部には、ソフトウェアであるOS(不図示)、通信制御部201、仮想化制御部202、仮想デバイス制御部203、仮想複合デバイス制御部211およびデバイス構成管理部213が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらのソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
通信制御部201は、情報処理装置100との間で行われる入出力データ等の送受信を制御する。
仮想化制御部202は、内部デバイス400、外部デバイス300、および仮想複合デバイス500があたかも情報処理装置に直接的に接続(ローカル接続)されているかのように情報処理装置100へ認識させて制御できるようにするため、情報処理装置100の仮想化制御部103からの制御要求に従って(連動して)内部デバイス400、外部デバイス300、仮想複合デバイス500の制御を行う。
仮想デバイス制御部203は、仮想デバイス識別情報204およびデータ形式変換処理部205を備えている。さらに、仮想デバイス制御部203は、デバイス制御装置200に備えられた内部デバイス400を仮想的なUSBデバイスに切り替えるユーザインターフェース等の切替機能を備えている。
仮想デバイス識別情報204は、情報処理装置100および後述する仮想複合デバイス制御部211に内部デバイス400を外部デバイス300と同様に認識させるために用いる。仮想デバイス識別情報204の詳細は後述する。
データ形式変換処理部205は、仮想複合デバイス制御部211から送られるUSBデータ形式に準拠したパケットデータと内部デバイス400で処理可能なデータ形式のデータとの変換処理を行って、内部デバイス400と接続された入力I/F207およびディスプレイI/F209と、仮想複合デバイス制御部211との間のデータの送受信を可能にしている。
仮想複合デバイス制御部211は、任意の複数のデバイス(内部デバイスや外部デバイス)を一つの仮想複合デバイスとして仮想化制御部202に認識および記憶させる制御を行う。また、仮想複合デバイス制御部211は、仮想複合デバイス識別情報212を記憶している。
さらに、仮想複合デバイス制御部211は、後述するデバイス構成管理部213から指定された複数のデバイス(内部デバイス、外部デバイス)を一つの仮想複合デバイスとして仮想化し、デバイス構成管理部213から指定された情報処理装置100と接続されるよう仮想化制御部202に認識させる制御を行う。
仮想複合デバイス識別情報212は、情報処理装置100に仮想複合デバイスを認識させるために用いる。仮想複合デバイス識別情報212の詳細は後述する。
デバイス構成管理部213は、外部デバイス300、内部デバイス400の接続情報を記憶し、各デバイスが備えている機能を管理する。情報処理装置100から必要デバイス情報の接続通知により、仮想複合デバイスを構成する機能や性能を選択し、仮想複合デバイス制御部211に仮想複合デバイスの作成を要求する。
さらに、デバイス構成管理部213は、仮想複合デバイスの生成、接続を判断するために接続された各装置の情報(以下「接続装置情報」と呼ぶ)を管理し、情報処理装置100のデバイス情報通知部105から通知される情報(自装置情報、必要デバイス情報)も接続装置情報として管理する。また、デバイス制御装置200が持つ外部デバイス300、内部デバイス400のデバイス情報についても接続装置情報として管理する。デバイス情報はネットワークで接続された他のデバイス制御装置が持つ外部デバイス、内部デバイスの情報も管理する。デバイス構成管理部213は、デバイス制御装置200に接続された情報処理装置100、外部デバイス300、内部デバイス400の接続状況に変化があるたびに接続装置情報を更新する。仮想複合デバイスと接続されてない情報処理装置100があれば、その情報処理装置100の必要デバイス情報に合う外部デバイス300、内部デバイス400を選定し、仮想複合デバイスの生成、接続を仮想複合デバイス制御部211に要求する。仮想複合デバイス制御部211で仮想複合デバイスの生成、接続が完了したら、接続対象となった情報処理装置100、外部デバイス300、内部デバイス400を対象に、各装置の接続状況を接続装置情報に反映する。ここで、仮想複合デバイスと接続されていないとは、情報処理装置100、外部デバイス300、内部デバイス400のデバイス制御装置200との接続状態の変化により、仮想複合デバイスを再び生成する必要がある場合をいう。ただし、必ずしも仮想複合デバイスだけでデバイス制御システムを構成する必要はなく、外部デバイス300、内部デバイス400と仮想複合デバイスが共存することも可能である。
なお、必要デバイスの選定は、デバイス構成管理部213が持つ対象デバイスを特定するための各種条件群(以下「デバイス選定基準」と呼ぶ)に従う。デバイス選定基準は、情報処理装置100の必要デバイス情報の機能要求を満たすことが第1の条件であり、第2の条件以降は任意で設定することを可能とする。第2の条件以降では、優先条件(第1の条件で複数デバイスが抽出された場合、優先度をつけて選定するための判断条件)、限定条件(第1の条件を満たすが、特定の情報処理装置100でしか使用させない場合、選定対象から除外するための限定(制限または禁止)条件)があり、第1の条件と組み合わせてデバイスの選定を行う。なお、提示した条件は第2の条件以降の一例であり、選定条件はデバイスを選定する上で必要な様々な条件を設定することを可能する。そして、機能要求を満たすことが第1の条件として例示したが、これに限定するものではない。
また、情報処理装置100が複数接続されていた場合、どの情報処理装置100を優先して処理するかは、デバイス構成管理部213が持つデバイス選定処理の優先順位に従う。デバイス選定処理の優先順位は、処理の優先順を決定する上で必要な様々な条件を設定することが可能である。デバイス選定処理の詳細については後述する。
<外部デバイス300の構成>
外部デバイス300は、個体識別情報301および通信I/F302を備えている。また、外部デバイス300は、HIDクラスの入力装置を備えた入力デバイスであり、デバイス制御装置200にUSBインターフェースによって外付けで接続されている。
外部デバイス300は、個体識別情報301および通信I/F302を備えている。また、外部デバイス300は、HIDクラスの入力装置を備えた入力デバイスであり、デバイス制御装置200にUSBインターフェースによって外付けで接続されている。
個体識別情報301は、外部デバイス300を識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーID(VID)、機種を識別するために機種毎に割り当てられた製品ID(PID)、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
通信I/F302は、USBインターフェースやHDMI(登録商標)であり、デバイス制御装置200と通信を行うための機能部である。なお、通信I/F302は、デバイス制御装置200と通信が実現可能であればUSBインターフェースやHDMI(登録商標)以外でもよい。
なお、図1に示すデバイス制御システムにおいては、情報処理装置100、デバイス制御装置200、および外部デバイス300がそれぞれ1つのみ示されているが、情報処理装置100、デバイス制御装置200、および外部デバイス300の台数は図示の例に限定されるものではない。
また、デバイス制御装置200に外部デバイス300を接続せず、デバイス制御システムを情報処理装置100およびデバイス制御装置200のみで構成するようにしてもよい。
<内部デバイス400の構成>
内部デバイス400(入出力デバイス)は、ユーザインターフェースとして用いられる入力装置208および表示装置210を備えている。入力装置208および表示装置210はそれぞれ入力I/F207およびディスプレイI/F209によって内部バス206に接続され、内部バス206でデバイス制御装置200の各ハードウェアに接続されている。また、内部デバイス400は、入力装置208として表示装置210に備えられたタッチパネルを用いるようにしてもよい。
内部デバイス400(入出力デバイス)は、ユーザインターフェースとして用いられる入力装置208および表示装置210を備えている。入力装置208および表示装置210はそれぞれ入力I/F207およびディスプレイI/F209によって内部バス206に接続され、内部バス206でデバイス制御装置200の各ハードウェアに接続されている。また、内部デバイス400は、入力装置208として表示装置210に備えられたタッチパネルを用いるようにしてもよい。
なお、デバイス制御装置200は、例えば、プリンタまたは複合機等のオフィス機器であるが、デバイス制御装置200はオフィス機器に限定されるものではなく、様々な組込み装置、携帯電話機またはモバイル端末機器であってもよい。
<仮想デバイス識別情報204について>
次に、仮想デバイス識別情報204について説明する。通常、内部デバイス400である入力装置208および表示装置210は、外部デバイス300の個体識別情報301に相当する情報を有していないので、情報処理装置100および仮想複合デバイス制御部211は内部デバイス400を認識することができない。
次に、仮想デバイス識別情報204について説明する。通常、内部デバイス400である入力装置208および表示装置210は、外部デバイス300の個体識別情報301に相当する情報を有していないので、情報処理装置100および仮想複合デバイス制御部211は内部デバイス400を認識することができない。
そこで、本実施形態では、個体識別情報に相当する仮想デバイス識別情報204を入力装置208と表示装置210を外部デバイス300と同様のUSBデバイスとして認識させる。ここでは、USBデバイスのデータ構造を定義する構成情報(以下「USBディスクリプタ」と呼ぶ)を疑似的に作成したものを仮想デバイス識別情報204とする。仮想デバイス識別情報204は、仮想デバイス制御部203に予め記憶されたものであるが、仮想デバイス制御部203によって生成するようにしてもよい。
図2は、図1に示す仮想デバイス識別情報204の一例を示す図であり、仮想デバイス識別情報204はUSBディスクリプタからなる。
図2に示す疑似的なUSBディスクリプタは、ベンダーID、プロダクトID、シリアル番号(不図示)、クラス、サブクラス、プロトコルおよびインターフェースから構成されている。
ベンダーIDは、各企業が製造したメーカー毎に割り当てられる識別情報であり、プロダクトIDは、ベンダーIDを持つ企業やメーカーが各製品や機種毎に重複しないよう割り振るコードである。本実施形態では、デバイス制御装置200に割り当てられているベンダーIDおよびプロダクトIDが用いられる。
また、クラス、サブクラス、プロトコルおよびインターフェースは、キーボード、マウスおよびディスプレイ等のデバイスの種類に応じてUSB規格で規定されている情報である。そして、ベンダーIDおよびプロダクトIDと、クラス、サブクラス、プロトコル、およびインターフェースとを関連付けた疑似的なUSBディスクリプタが作成されて、仮想デバイス制御部203が仮想デバイス識別情報204として保持(記憶)する。
本実施形態の入力装置208はキーボードおよびマウスに対応し、表示装置210はディスプレイに対応している。これらキーボード、マウスおよびディスプレイをUSBデバイスとして認識させるために、キーボード、マウス、およびディスプレイのそれぞれへ疑似的なUSBディスクリプタ(つまり、仮想デバイス識別情報204)を割り当てている。
<仮想複合デバイス識別情報212について>
続いて、仮想複合デバイス識別情報212について説明する。前述した仮想デバイス識別情報204と同様に仮想複合デバイスは、デバイスの個体識別情報に相当する情報を有していない。そのため、情報処理装置100は仮想複合デバイスを認識することができない。
続いて、仮想複合デバイス識別情報212について説明する。前述した仮想デバイス識別情報204と同様に仮想複合デバイスは、デバイスの個体識別情報に相当する情報を有していない。そのため、情報処理装置100は仮想複合デバイスを認識することができない。
本実施形態では、仮想複合デバイス制御部211が個体識別情報に相当する仮想複合デバイス識別情報212を仮想複合デバイスに割り当てて、表示装置210と外部デバイス300を一つの仮想複合デバイスとして情報処理装置100に認識させる。ここでは、仮想複合デバイスのUSBディスクリプタを疑似的に作成したものを仮想複合デバイス識別情報212とする。仮想複合デバイス識別情報212は、仮想複合デバイス制御部211に予め記憶されたものであるが、デバイス構成管理部213から指定された複数のデバイス(内部デバイス、外部デバイス)の情報に基づき、仮想複合デバイス制御部211によって生成するようにしてもよい。
図3は、図1に示す仮想複合デバイス識別情報212の一例を示す図であり、仮想複合デバイス識別情報212はUSBディスクリプタからなる。
図3に示す疑似的なUSBディスクリプタは、キーボードに対応する外部デバイス300とディスプレイに対応する内部デバイス400の表示装置210を組み合わせた仮想複合デバイスを生成した際の、仮想複合デバイス識別情報である。
仮想複合デバイス制御部211は、新たにベンダーID、プロダクトID、シリアル番号(不図示)、クラス、サブクラス、プロトコルおよびインターフェースを割り当て、仮想複合デバイス識別情報212として保持(記憶)する。
<仮想複合デバイス500のデバイス構成>
図4は、図1に示すデバイス制御システムにおいて複数のデバイスを一つの仮想複合デバイスとして仮想化した仮想複合デバイス500のデバイス構成を示す図である。
図4は、図1に示すデバイス制御システムにおいて複数のデバイスを一つの仮想複合デバイスとして仮想化した仮想複合デバイス500のデバイス構成を示す図である。
仮想複合デバイス制御部211は、外部デバイス300と内部デバイス400の表示装置210のデバイス構成情報に基づいて、仮想複合デバイス500のデバイス構成情報を構成し、複数のデバイスを一つの仮想複合デバイス500として構成する。図4に例示するように、外部デバイス300と表示装置210のエンドポイントが重複している場合、仮想複合デバイス500上では、エンドポイントが重複しないように別のエンドポイントに振り替え、その対応関係を記憶する。なお、図4の例示では、外部デバイス300のエンドポイント(0x81)と表示装置210のエンドポイント(0x81)が重複している。そのため、仮想複合デバイス500では表示装置210のエンドポイントを0x83に振り替え、例えば、内部デバイス400として表示装置210のエンドポイント(0x81)と仮想複合デバイスとしての表示装置210のエンドポイント(0x83)の対応関係を記憶している。
仮想複合デバイス制御部211は、仮想複合デバイス500のデバイス構成情報を構成すると、仮想化制御部202を介して、情報処理装置100へ仮想複合デバイス500を接続する。情報処理装置100において、予めOSに組み込まれている仮想複合デバイス500のドライバ(不図示)を用いて仮想複合デバイス500をマウントし、外部デバイス300と表示装置210をあたかも一つのデバイスのように認識することができる。
<デバイス制御システムの制御シーケンス>
図5は、図1に示すデバイス制御システムにおいて情報処理装置100が仮想複合デバイス500を仮想化制御する際の動作を説明するためのシーケンス図である。
図5は、図1に示すデバイス制御システムにおいて情報処理装置100が仮想複合デバイス500を仮想化制御する際の動作を説明するためのシーケンス図である。
まず、デバイス制御装置200からユーザ操作によって内部デバイス400の表示装置210の仮想化制御を開始させる(ステップS501)。
具体的には、ユーザは所定の操作によって表示装置210に操作画面を表示させ、内部デバイス400の入力装置208を操作(接続操作)して仮想デバイス制御部203への接続を開始させる。
ユーザの所定の操作によって、表示装置210から仮想デバイス制御部203に対して接続要求が送信される(ステップS502)。
仮想複合デバイス制御部211は、表示装置210の接続通知(表示装置210の仮想デバイス識別情報204)を受信する(ステップS503)。なお、この時点では仮想複合デバイスを構成する全てのデバイスが接続されていない。そのため、仮想化制御部202へデバイスの接続通知は行わない。
仮想複合デバイス制御部211は、ステップS503で受信した表示装置210の接続通知からデバイス情報を解析し、デバイス構成管理部213の接続装置情報で管理するデバイス情報を抽出する(ステップS504)。
仮想複合デバイス制御部211は、デバイス構成管理部213に表示装置210のデバイス情報を送信して接続を通知する(ステップS505)。
デバイス構成管理部213は、接続通知として受信した表示装置210のデバイス情報を接続装置情報に追加する(ステップS506)。
続いて、デバイス制御装置200に外部デバイス300をUSBインターフェース等の通信I/F302で接続することによって仮想化制御が開始される。
まず、ユーザは外部デバイス300をデバイス制御装置200に接続する(ステップS507)。これにより、外部デバイス300の接続要求(外部デバイス300の個体識別情報301)がデバイス制御装置200に送信されて、仮想複合デバイス制御部211に外部デバイス300が接続された旨が通知される(ステップS508)。
仮想複合デバイス制御部211は、受信した外部デバイス300の接続通知からデバイス情報を解析し、デバイス構成管理部213の接続装置情報で管理するデバイス情報を抽出する(ステップS509)。
仮想複合デバイス制御部211は、デバイス構成管理部213に外部デバイス300のデバイス情報を送信して接続を通知する(ステップS510)。
デバイス構成管理部213は、接続通知として受信した外部デバイス300のデバイス情報を接続装置情報に追加する(ステップS511)。
続いて、情報処理装置100とデバイス制御装置200を通信可能な状態にすることによって、情報処理装置100のデバイス情報通知部105は、デバイス制御装置200のデバイス構成管理部213に自装置情報および必要デバイス情報を送信して接続を通知する(ステップS512)。
デバイス構成管理部213は、接続通知として受信した情報処理装置100の自装置情報および必要デバイス情報を接続装置情報に追加する(ステップS513)。
デバイス構成管理部213は、接続装置情報の更新後に仮想複合デバイス500のデバイス選定を行う。デバイス選定は情報処理装置100の必要デバイス情報に適った外部デバイス300、内部デバイス400が接続装置情報に存在するかデバイス選定基準に従い探索する(ステップS514)。
本実施形態では、デバイス選定によって表示装置210および外部デバイス300が抽出されるものとして以降のシーケンスを説明する。
なお、図5ではデバイス選定(ステップS514)を一度のみ行う形で説明しているが、デバイス選定は接続装置情報が更新される度に行われてもよい。
デバイス構成管理部213は、デバイス選定の結果として、仮想複合デバイス500の構成要素となるデバイス情報および接続先となる情報処理装置100の自装置情報を仮想複合デバイス制御部211に送信して仮想複合デバイス500の生成、接続を要求する(ステップS515)。
仮想複合デバイス制御部211は、デバイス構成管理部213から受信したデバイス選定の結果に従い、表示装置210と外部デバイス300から受信したUSBデータを、仮想複合デバイスのインターフェースに対応するエンドポイントに格納する。これにより、仮想複合デバイス制御部211は、それぞれのデバイスから受信したUSBデータを、仮想複合デバイス500のUSBデータに変換して仮想複合デバイス識別情報212を生成する(ステップS516)。
仮想複合デバイス制御部211は、仮想化制御部202に仮想複合デバイス500の仮想複合デバイス識別情報212を送信して接続を通知する(ステップS517)。続いて、仮想化制御部202は、情報処理装置100に仮想複合デバイス500が接続された旨を通知する(ステップS518)。
情報処理装置100の仮想化制御部103は、デバイス制御装置200の仮想化制御部202から受信した仮想複合デバイス500に係る仮想複合デバイス識別情報212をデバイスドライバ102に通知する(ステップS519)。
アプリケーション101は、デバイスドライバ102から仮想複合デバイス500の接続の通知を受信する(ステップS520)。ここで、アプリケーション101は、仮想複合デバイス500の接続の通知を受けると、仮想化制御部103に仮想複合デバイス500の仮想化制御の開始を指示し、仮想化制御部103は、仮想複合デバイス500の仮想化制御を開始する。そして、情報処理装置100は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用して仮想複合デバイス500との接続を開始する。
情報処理装置100が仮想複合デバイス500の仮想化制御を開始すると、アプリケーション101は仮想複合デバイス500の表示画面のキャプチャを行い、画像データ(表示画面)を取得する(ステップS521)。
アプリケーション101は、取得した仮想複合デバイス500の画像データ(表示画面)をデバイスドライバ102に送信する(ステップS522)。
デバイスドライバ102は、アプリケーション101から受信した画像データ(表示画面)を仮想化制御部103に送信する(ステップS523)。
デバイスドライバ102は、アプリケーション101から受信した画像データ(表示画面)を仮想化制御部103に送信する(ステップS523)。
仮想化制御部103は、デバイス制御装置200の仮想化制御部202に画像データ(表示画面)を送信する(ステップS524)。仮想化制御部202は仮想複合デバイス制御部211に画像データ(表示画面)を送信する(ステップS525)。
仮想複合デバイス制御部211は、図4の構成に基づいて、仮想複合デバイス500のUSBデータのエンドポイントに基づいて受信データがどのデバイス(内部デバイス400または外部デバイス300)の制御情報であるか判断し、制御情報を送信するデバイスを決定する。エンドポイントが重複して振り替えている場合は、仮想複合デバイス制御部211に記憶した対応関係に基づいて判断を行う。
図5のシーケンスにおいては、画像データ(表示画面)として受信した仮想複合デバイス500のUSBデータを、仮想化制御部202によって仮想化された表示装置210のUSBデータへと変換し、変換した画像データ(表示画面)を仮想デバイス制御部203へと送信する(ステップS526)。
仮想デバイス制御部203は内部デバイス400の表示装置210に画像データ(表示画面)を送信する。このとき、仮想デバイス制御部203のデータ形式変換処理部205は、仮想複合デバイス制御部211から送られるUSBデータを表示装置210のデータ形式に変換して、ディスプレイI/F209を介して表示装置210に送信する(ステップS527)。
そして、表示装置210は、情報処理装置100から送られてくる画面データ(表示画面)に応じた画面を表示する。このとき、表示装置210は、情報処理装置100から送られてくる画面データ(表示画面)を表示し、情報処理装置100に対する入力待ち状態となる(ステップS528)。
なお、仮想化制御部202から送られるUSBデータをデータ変換せずにディスプレイI/F209に通すことができる場合は、データ変換せずにディスプレイI/F209を介して表示装置210に送る。また、前述のステップS223で、取得した画面データを全て送信するのではなく、前回送信した表示画像との差分のみを送信する場合には、ここで、既に受信済みの表示画面に差分の表示画面を合成して表示する。
ユーザは、外部デバイス300の入力装置を用いて情報処理装置100を遠隔操作するための操作情報を入力する(ステップS529)。
続いて、外部デバイス300は、外部デバイス300の通信I/F302を介して仮想複合デバイス制御部211に操作情報を送信する(ステップS530)。
仮想複合デバイス制御部211は、受信した操作情報(USBデータ)を仮想化制御部202に送信する(ステップS531)。このとき、仮想複合デバイス制御部211は、外部デバイス300から受信した操作情報(USBデータ)を仮想複合デバイス500のUSBデータに変換して仮想化制御部202に送信する。
仮想化制御部202は、受信した操作情報を情報処理装置100の仮想化制御部103に送信する(ステップS532)。情報処理装置100の仮想化制御部103は、受信した操作情報をデバイスドライバ102に送信する(ステップS533)。デバイスドライバ102は、仮想化制御部103から受信した操作情報をアプリケーション101に送信する(ステップS534)。
続いて、アプリケーション101は、デバイスドライバ102から受信した操作情報に応じた操作(処理)を実行する(ステップS535)。
このとき、情報処理装置100は、処理(機能)の実行結果を表示装置210に表示する。この表示装置210に表示された画像データは、上述したステップS521〜ステップS528と同様にデバイス制御装置200に送信され、デバイス制御装置200の表示装置210に情報処理装置100から送られてくる画像データ(表示画面)が表示される。
なお、ステップS520において仮想複合デバイスとアプリケーション101の接続が開始されると、その接続が切断(終了)されるまで、ステップS521〜ステップS528の処理(画面転送処理)とステップS529〜ステップS535の処理(遠隔操作処理)を非同期(並列)で繰り返す。このとき、仮想化制御部202および仮想デバイス制御部203および仮想複合デバイス制御部211は内部デバイス400と情報処理装置100との間でネットワークを介してデータ送受信を行う。
続いて、デバイス制御装置200に接続された外部デバイス300を切断する際の動作を説明する。
ユーザは、情報処理装置100による仮想複合デバイス500の仮想化制御を終了させる場合、仮想複合デバイス500を構成しているデバイス(外部デバイス300、内部デバイス400)のいずれかを切断する。表示装置210の接続を維持したまま、外部デバイス300を切断する(ステップS536)と、外部デバイス300は、仮想複合デバイス制御部211に切断要求する(ステップS537)。仮想複合デバイス制御部211は、仮想複合デバイス500を構成するデバイスの一つが切断されたことを受け、仮想化制御部202に仮想複合デバイス500の制御終了を通知する。(ステップS538)。
続いて、仮想化制御部202は、情報処理装置100の仮想化制御部103に仮想複合デバイス500の制御が終了された旨(制御終了通知)を通知する(ステップS539)。仮想化制御部103は、デバイス制御装置の仮想化制御部202から受信した制御終了通知をデバイスドライバ102に通知する(ステップS540)。
デバイスドライバ102は、仮想化制御部103から受信した制御終了通知をアプリケーション101に通知する(ステップS541)と共に、仮想複合デバイス500の制御を解除する。これによりアプリケーション101と仮想複合デバイスの通信(接続)が切断(解除)される。
仮想複合デバイス制御部211は、情報処理装置100と外部デバイス300との接続を切断したら、ステップ537で受信した外部デバイス300の切断通知からデバイス情報を解析し、デバイス構成管理部213の接続装置情報で管理するデバイス情報を抽出する(ステップS542)。
仮想複合デバイス制御部211は、デバイス構成管理部213に外部デバイス300のデバイス情報を送信して切断を通知する(ステップS543)。
デバイス構成管理部213は、切断通知として受信した外部デバイス300のデバイス情報から外部デバイス300に関連する接続装置情報を特定する。特定した接続装置情報の更新として、情報処理装置100の接続情報の更新(仮想複合デバイス500と未接続の状態に更新)、表示装置210の接続情報の更新(仮想複合デバイス500の構成要素になってない状態に更新)、外部デバイス300のデバイス情報を削除する(ステップS544)。
なお、接続装置情報を更新したことで仮想複合デバイス500のデバイス選定(ステップS514)を行い、情報処理装置100の必要デバイス情報からデバイス選定基準を満たすデバイスを抽出できれば再び仮想複合デバイスの生成、接続(ステップS515〜ステップS520)を行うが、本シーケンスではデバイス制御装置200および外部デバイス300がそれぞれ1台の場合を例示しているため記載を省略する。
<デバイス選定処理について>
図6は、図1に示すデバイス制御システムにおいてデバイス制御装置200における仮想複合デバイス500の生成時のデバイス選定処理を説明するためのフローチャートである。
図6は、図1に示すデバイス制御システムにおいてデバイス制御装置200における仮想複合デバイス500の生成時のデバイス選定処理を説明するためのフローチャートである。
図示の例では、情報処理装置100もしくは外部デバイス300、内部デバイス400との接続状況の変化(接続、切断)によってデバイス選定処理が開始される。
デバイス制御装置200のデバイス構成管理部213は、接続または切断された情報処理装置100、外部デバイス300、内部デバイス400の情報を取得し、接続された装置の情報を管理する接続装置情報に反映する(ステップS601)。
次に、デバイス構成管理部213は、接続装置情報から仮想複合デバイス500との接続できていない情報処理装置100を探索し、存在する場合は対象の情報処理装置100が必要とするデバイス情報(必要デバイス情報)を取得する。探索で複数の情報処理装置100が抽出された場合、任意の条件で定めたデバイス選定処理の優先順位に従って仮想複合デバイス500を構成して接続する対象となる情報処理装置100を特定する(ステップS602)。
デバイス構成管理部213は、デバイス選定基準の第1の条件を満たす(ステップS602で取得した必要デバイス情報の機能要求を満たす)利用可能な外部デバイス300、内部デバイス400が存在するか判断する(ステップS603)。
デバイス選定基準の第1の条件を満たす外部デバイス300、内部デバイス400が存在する場合(ステップS603でYes)、デバイス選定基準の第2の条件以降により外部デバイス300、内部デバイス400の中から優先順位の高い外部デバイス300、内部デバイス400を仮想複合デバイス500の構成要素として選定する(ステップS604)。
一方、デバイス選定基準の第1の条件を満たす外部デバイス300、内部デバイス400が存在しない場合(ステップS603でNo)、後述するステップS607に進む。なお、このとき情報処理装置100の必要デバイス情報を満たす外部デバイス300、内部デバイス400が存在しないことを情報処理装置100に通知してもよい。
その後、デバイス構成管理部213は、ステップS604で選定した外部デバイス300、内部デバイス400を対象として、仮想複合デバイス制御部211に仮想複合デバイスの生成を要求し、仮想複合デバイス制御部211は要求された外部デバイス300、内部デバイス400を仮想複合デバイスとしてまとめる(ステップS605)。
仮想複合デバイス制御部211は、ステップS605で生成した仮想複合デバイス500をステップS602で対象とした情報処理装置100と接続する。デバイス構成管理部213は、接続された情報処理装置100および仮想複合デバイス500の構成要素となった外部デバイス300、内部デバイス400の接続状況を接続装置情報に反映する(ステップS606)。
デバイス構成管理部213は、デバイス選定が未実施の情報処理装置100が存在するか判断する(ステップS607)。
デバイス選定が未実施の情報処理装置100が存在する場合(ステップS607でYes)、上述したステップS602に進む。デバイス選定が未実施の情報処理装置100が存在しない場合、デバイス選定処理を終了する。
上述のように、本発明の第1の実施形態では、情報処理装置100は仮想複合デバイス500を生成するための情報(自装置情報、必要デバイス情報)をデバイス制御装置200に通知し、デバイス制御装置200は情報処理装置100から通知された情報および接続された外部デバイス300、内部デバイス400のデバイス情報を接続装置情報で管理し、接続装置情報の内容から仮想複合デバイス500の構成、接続先を選定して仮想複合デバイスの制御を行なうことで、情報処理装置100が必要とする仮想複合デバイス500を情報処理装置100に提供できる。
そして、デバイス制御装置200は、接続状況に応じて仮想複合デバイス500の構成、接続先を動的に決定することで、仮想複合デバイス500の構成、情報処理装置100と仮想複合デバイス500の接続関係を予め決めておく必要がなく、情報処理装置100に状況に応じた適切な仮想複合デバイス500を提供することが可能となる。
[第2の実施形態]
続いて、本発明の第2の実施形態によるデバイス制御システムの一例について説明する。第1の実施形態では、デバイス制御装置200が仮想複合デバイス500を生成する機能を持つ形で説明した。第2の実施形態では、仮想複合デバイス500の生成を、デバイス制御を直接行わない仲介装置600で行うことが特徴である。
続いて、本発明の第2の実施形態によるデバイス制御システムの一例について説明する。第1の実施形態では、デバイス制御装置200が仮想複合デバイス500を生成する機能を持つ形で説明した。第2の実施形態では、仮想複合デバイス500の生成を、デバイス制御を直接行わない仲介装置600で行うことが特徴である。
図7は、本発明の第2実施形態によるデバイス制御システムの一例の構成を概略的に示すブロック図である。なお、図1に示すデバイス制御システムと同一の構成要素については同一の参照番号を付して説明を省略する。
図7に示すデバイス制御システムにおいては、情報処理装置100、デバイス制御装置200、仲介装置600はLANやWANを介して接続され、デバイス制御装置200にはUSBによって外部デバイス300が接続される。デバイス制御装置200は内部デバイス400として入力装置208および表示装置210を有しており、この内部デバイス400は入力I/F207およびディスプレイI/F209によって内部バス206に接続される。
情報処理装置100のデバイス情報通知部105は、仲介装置600に自装置情報、必要デバイス情報を通知する。
デバイス制御装置200Aの通信制御部201は、仲介装置600に自装置が持つ外部デバイス300、内部デバイス400の接続要求を通知し、仲介装置600の仮想複合デバイス制御部211は受信した接続通知からデバイス情報を解析し、デバイス構成管理部213の接続装置情報で管理するデバイス情報を抽出する。なお、通信制御部201は、情報処理装置100との間で行われる入出力データ等の送受信を制御するが、情報処理装置100との通信は全て仲介装置600を介して行う。
仲介装置600のデバイス構成管理部605は、情報処理装置100のデバイス情報通知部105、デバイス制御装置200の通信制御部201から通知された装置情報を接続装置情報で管理し、接続された情報処理装置100、外部デバイス300、内部デバイス400の接続状況に変化があるたびに接続装置情報を更新し、仮想複合デバイス500と接続されてない情報処理装置100があれば、その情報処理装置100の必要デバイス情報に合う外部デバイス300、内部デバイス400を選定し、仮想複合デバイス500の生成、接続を仮想複合デバイス制御部603に要求する。
なお、本実施形態では情報処理装置100は、情報処理装置100A,情報処理装置100Bの2台存在する。外部デバイス300と内部デバイス400は、デバイス制御装置200Aが持つ外部デバイス300A、内部デバイス400の入力装置208および内部デバイス400の表示装置210、デバイス制御装置200Bが持つ外部デバイス300Bの4台が存在する。デバイス構成管理部605は全てのデバイス情報を管理し、各情報処理装置100の必要デバイス情報から、デバイス選定基準に従い存在する外部デバイス300、内部デバイス400から条件に合うデバイスを選定する。
仲介装置600の仮想複合デバイス制御部603は、デバイス構成管理部605から指定された複数のネットワーク上のデバイスを仮想複合デバイス識別情報604に基づき一つの仮想複合デバイス500に仮想化し、デバイス構成管理部605から指定された情報処理装置100と接続するよう仮想化制御部602に認識させる制御を行う。なお、仮想複合デバイス識別情報604は、第1の実施形態で説明した仮想複合デバイス識別情報212と同様であるため説明を省略する。
また、仲介装置600の仮想複合デバイス制御部603は、情報処理装置100の通信制御部104からの仮想複合デバイス500への入出力データを、通信制御部601と仮想化制御部602を介して受信し、仮想複合デバイス500の構成要素となった外部デバイス300、内部デバイス400向けの入出力データに分解し、接続先のデバイス制御装置200(仮想複合デバイス500の構成要素の外部デバイス300、内部デバイス400を持つデバイス制御装置200)の通信制御部201に送信する。
また、仲介装置600の仮想複合デバイス制御部603は、デバイス制御装置200の通信制御部201からの情報処理装置100への入出力データを、通信制御部601を介して受信し、仮想複合デバイス500の構成内容に成形し、仮想化制御部602と通信制御部601を介して情報処理装置100の通信制御部104に送信する。
デバイス制御装置200の通信制御部201は、仲介装置600の通信制御部601から外部デバイス300、内部デバイス400への入出力データを受信し、仮想化制御部202、仮想デバイス制御部203で外部デバイス300、内部デバイス400が認識できるデータ形式に変換し、外部デバイス300、内部デバイス400に入出力データを送信する。
情報処理装置100の通信制御部104は、仲介装置600の通信制御部601から情報処理装置100への入出力データを受信し、仮想化制御部103とデバイスドライバ102でアプリケーション101が認識できるデータ形式に変換し、アプリケーション101にデバイスから応答結果として通知する。
上述のように、本発明の第2の実施形態では、情報処理装置100は仮想複合デバイスを生成するための情報(自装置情報、必要デバイス情報)を仲介装置600に通知し、デバイス制御装置200は接続された外部デバイス300、内部デバイス400のデバイス情報を仲介装置600に通知し、仲介装置600はネットワーク上で接続された各装置の情報を接続装置情報で管理し、接続装置情報の内容から仮想複合デバイスの構成、接続先を選定して、ネットワークで接続されたデバイス制御装置200の外部デバイス300、内部デバイス400を使用して仮想複合デバイスの制御を行ない、情報処理装置100が必要とする仮想複合デバイスを当該情報処理装置100に提供できる。
そして、仲介装置600のように仮想複合デバイスを生成し制御する機能を持つ装置を別にすることで、仲介装置600を介して、外部デバイス300、内部デバイス400を情報処理装置100に仮想化するデバイス制御システムを提供することが可能となる。
以上、本発明について上記各実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施の形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
100,100A,100B:情報処理装置
200,200A,200B:デバイス制御装置
300A,300B:外部デバイス
400:内部デバイス
500;仮想複合デバイス
600:仲介装置
101:アプリケーション
102:デバイスドライバ
104、201、601:通信制御部
103、202、602:仮想化制御部
105:デバイス情報通知部
203:仮想デバイス制御部
204:仮想デバイス識別情報
205:データ形式変換処理部
206:内部バス
207:入力I/F
208:入力装置
209:ディスプレイI/F
210:表示装置
211、603:仮想複合デバイス制御部
212、604:仮想複合デバイス識別情報
213、605:デバイス構成管理部
200,200A,200B:デバイス制御装置
300A,300B:外部デバイス
400:内部デバイス
500;仮想複合デバイス
600:仲介装置
101:アプリケーション
102:デバイスドライバ
104、201、601:通信制御部
103、202、602:仮想化制御部
105:デバイス情報通知部
203:仮想デバイス制御部
204:仮想デバイス識別情報
205:データ形式変換処理部
206:内部バス
207:入力I/F
208:入力装置
209:ディスプレイI/F
210:表示装置
211、603:仮想複合デバイス制御部
212、604:仮想複合デバイス識別情報
213、605:デバイス構成管理部
Claims (22)
- ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、
前記内部デバイスおよび/または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、
前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理手段と、
前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理手段と、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御手段と、
を備えることを特徴とするデバイス制御装置。 - 前記デバイス情報管理手段は、前記ネットワークに接続または切断された前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が保持する前記自装置および前記接続デバイスの情報を取得または判断することで前記接続装置情報を更新し、
前記デバイス構成管理手段は、前記接続装置情報から前記仮想複合デバイスの構成とその要素となる前記デバイスに応じて、前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が持つ複数の前記デバイスを前記仮想複合デバイスとして生成するよう前記仮想化制御手段に要求することを特徴とする請求項1に記載のデバイス制御装置。 - 前記デバイス制御装置において所定の接続操作が行われると、前記識別情報送信手段は、前記デバイス構成管理手段の選定内容に基づいて前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項1または請求項2に記載のデバイス制御装置。
- 前記デバイス制御装置において所定の終了操作が行われると、前記仮想化制御手段は、前記仮想複合デバイスの制御を終了することを特徴とする請求項1乃至請求項3の何れか1項に記載のデバイス制御装置。
- 前記デバイス制御装置にデバイスが接続された場合、
前記識別情報送信手段は、当該デバイスから送られてくる個体識別情報を前記デバイス構成管理手段の選定内容に応じて前記情報処理装置にさらに送信し、
前記仮想化制御手段は、前記情報処理装置が前記個体識別情報に応じて識別した前記デバイスを、当該情報処理装置からの制御要求に従ってさらに制御することを特徴とする請求項1乃至請求項4の何れか1項に記載のデバイス制御装置。 - ネットワークを介して情報処理装置とデバイス制御装置に接続された仲介装置であって、
前記デバイス制御装置の1つまたは複数の所定の機能を組み合わせた機能を前記仲介装置に接続された仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、
前記情報処理装置および前記デバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理手段と、
前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理手段と、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記情報処理装置と前記デバイス制御装置との間のデータ通信を第2のデータ形式に変換して制御する仮想化制御手段と、
を備えることを特徴とする仲介装置。 - 前記デバイス情報管理手段は、前記ネットワークに接続または切断された前記情報処理装置、前記デバイス制御装置自身および前記デバイス制御装置が保持する前記自装置および前記接続デバイスの情報を取得または判断することで前記接続装置情報を更新し、
前記デバイス構成管理手段は、前記接続装置情報から前記仮想複合デバイスの構成とその要素となる前記デバイスに応じて、前記情報処理装置、前記デバイス制御装置自身および前記デバイス制御装置が持つ複数の前記デバイスを前記仮想複合デバイスとして生成するよう前記仮想化制御手段に要求することを特徴とする請求項6に記載の仲介装置。 - 前記デバイス制御装置において所定の接続操作が行われると、前記識別情報送信手段は、前記デバイス構成管理手段の選定内容に基づいて前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項6または請求項7に記載の仲介装置。
- 前記デバイス制御装置において所定の終了操作が行われると、前記仮想化制御手段は、前記仮想複合デバイスの制御を終了することを特徴とする請求項6乃至請求項8の何れか1項に記載の仲介装置。
- 前記デバイス制御装置にデバイスが接続された場合、
前記識別情報送信手段は、当該デバイスから送られてくる個体識別情報を前記デバイス構成管理手段の選定内容に応じて前記情報処理装置にさらに送信し、
前記仮想化制御手段は、前記情報処理装置が前記個体識別情報に応じて識別した前記デバイスを、当該情報処理装置からの制御要求に従ってさらに制御することを特徴とする請求項6乃至請求項9の何れか1項に記載の仲介装置。 - 請求項1乃至請求項5の何れか1項に記載の第一のデバイス制御装置、および1つまたは複数の所定の機能を内部デバイスとして認識させる第二のデバイス制御装置と、情報処理装置がネットワークを介して接続されるデバイス制御システムであって、
前記情報処理装置は、前記デバイス制御装置に自装置情報および必要とするデバイスの情報を通知するためのデバイス情報通知手段をさらに備え、
前記デバイス情報通知手段は、前記デバイス制御装置と通信が可能となった場合、前記情報処理装置の前記自装置情報と前記必要とするデバイスの情報を前記デバイス制御装置に通知し、前記デバイス制御装置に対し必要とするデバイスの接続を要求することを特徴とするデバイス制御システム。 - 請求項6乃至請求項10の何れか1項に記載の仲介装置と、1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置と、情報処理装置がネットワークを介して接続されるデバイス制御システムであって、
前記情報処理装置は、前記仲介装置に自装置情報および必要とするデバイスの情報通知するためのデバイス情報通知手段をさらに備え、
前記デバイス情報通知手段は、前記仲介装置と通信が可能となった場合、前記情報処理装置の前記自装置情報と前記必要とするデバイスの情報を前記仲介装置に通知し、前記仲介装置に対し必要とするデバイスの接続を要求することを特徴とするデバイス制御システム。 - ネットワークを介して情報処理装置および他のデバイス制御装置に接続され、デバイス制御装置自身および他のデバイス制御装置の1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置の制御方法であって、
前記内部デバイスおよび/または前記デバイス制御装置自身または前記他のデバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶ステップと、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信ステップと、
前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理ステップと、
前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理ステップと、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置自身との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記自身のデバイス制御装置との間または前記デバイス制御装置自身と前記他のデバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御ステップと、
を備えることを特徴とするデバイス制御装置の制御方法。 - 前記デバイス情報管理ステップは、前記ネットワークに接続または切断された前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が保持する前記自装置および前記接続デバイスの情報を取得または判断することで前記接続装置情報を更新し、
前記デバイス構成管理ステップは、前記接続装置情報から前記仮想複合デバイスの構成とその要素となる前記デバイスに応じて、前記情報処理装置、前記デバイス制御装置自身および前記他のデバイス制御装置が持つ複数の前記デバイスを前記仮想複合デバイスとして生成するよう前記仮想化制御ステップに要求することを特徴とする請求項13に記載のデバイス制御装置の制御方法。 - 前記デバイス制御装置において所定の接続操作が行われると、前記識別情報送信ステップは、前記デバイス構成管理ステップの選定内容に基づいて前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項13または請求項14に記載のデバイス制御装置の制御方法。
- 前記デバイス制御装置において所定の終了操作が行われると、前記仮想化制御ステップは、前記仮想複合デバイスの制御を終了することを特徴とする請求項13乃至請求項15の何れか1項に記載のデバイス制御装置の制御方法。
- 前記デバイス制御装置にデバイスが接続された場合、
前記識別情報送信ステップは、当該デバイスから送られてくる個体識別情報を前記デバイス構成管理ステップの選定内容に応じて前記情報処理装置にさらに送信し、
前記仮想化制御ステップは、前記情報処理装置が前記個体識別情報に応じて識別した前記デバイスを、当該情報処理装置からの制御要求に従ってさらに制御することを特徴とする請求項13乃至請求項16の何れか1項に記載のデバイス制御装置の制御方法。 - ネットワークを介して情報処理装置とデバイス制御装置に接続された仲介装置の制御方法であって、
前記デバイス制御装置の1つまたは複数の所定の機能を組み合わせた機能を前記仲介装置に接続された仮想複合デバイスとして認識させるための仮想複合デバイス識別情報を記憶する識別情報記憶ステップと、
前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信ステップと、
前記情報処理装置および前記デバイス制御装置が保持する自装置および接続デバイスの情報を管理するための接続装置情報を更新し記憶するデバイス情報管理ステップと、
前記接続装置情報から前記仮想複合デバイスの構成とその要素となるデバイスを選定するデバイス構成管理ステップと、
前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記情報処理装置と前記デバイス制御装置との間のデータ通信を第2のデータ形式に変換して制御する仮想化制御ステップと、
を備えることを特徴とする仲介装置の制御方法。 - 前記デバイス情報管理ステップは、前記ネットワークに接続または切断された前記情報処理装置、前記デバイス制御装置自身および前記デバイス制御装置が保持する前記自装置および前記接続デバイスの情報を取得または判断することで前記接続装置情報を更新し、
前記デバイス構成管理ステップは、前記接続装置情報から前記仮想複合デバイスの構成とその要素となる前記デバイスに応じて、前記情報処理装置、前記デバイス制御装置自身および前記デバイス制御装置が持つ複数の前記デバイスを前記仮想複合デバイスとして生成するよう前記仮想化制御ステップに要求することを特徴とする請求項18に記載の仲介装置の制御方法。 - 前記デバイス制御装置において所定の接続操作が行われると、前記識別情報送信ステップは、前記デバイス構成管理ステップの選定内容に基づいて前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項18または請求項19に記載の仲介装置の制御方法。
- 前記デバイス制御装置において所定の終了操作が行われると、前記仮想化制御ステップは、前記仮想複合デバイスの制御を終了することを特徴とする請求項18乃至請求項20の何れか1項に記載の仲介装置の制御方法。
- 前記デバイス制御装置にデバイスが接続された場合、
前記識別情報送信ステップは、当該デバイスから送られてくる個体識別情報を前記デバイス構成管理ステップの選定内容に応じて前記情報処理装置にさらに送信し、
前記仮想化制御ステップは、前記情報処理装置が前記個体識別情報に応じて識別した前記デバイスを、当該情報処理装置からの制御要求に従ってさらに制御することを特徴とする請求項18乃至請求項21の何れか1項に記載の仲介装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016023179A JP2017142631A (ja) | 2016-02-09 | 2016-02-09 | デバイス制御装置、その制御方法、およびデバイス制御システム |
PCT/JP2016/067468 WO2016204100A1 (ja) | 2015-06-19 | 2016-06-07 | デバイス制御装置、その制御方法、およびデバイス制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016023179A JP2017142631A (ja) | 2016-02-09 | 2016-02-09 | デバイス制御装置、その制御方法、およびデバイス制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017142631A true JP2017142631A (ja) | 2017-08-17 |
Family
ID=59627431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016023179A Pending JP2017142631A (ja) | 2015-06-19 | 2016-02-09 | デバイス制御装置、その制御方法、およびデバイス制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017142631A (ja) |
-
2016
- 2016-02-09 JP JP2016023179A patent/JP2017142631A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5461621B2 (ja) | 遠隔デバイスドライバを利用した遠隔制御システム及び遠隔デバイスドライバを利用した遠隔制御方法 | |
JP5995525B2 (ja) | システム、画像形成装置、サーバー及びその制御方法 | |
EP2851800B1 (en) | Remote support apparatus, electronic apparatus, remote support method, and storage medium | |
US9596121B2 (en) | Server apparatus communicating with a client apparatus via the internet, system, and control method thereof | |
JP2015106798A (ja) | 通信装置、通信システム、通信装置の制御方法及びプログラム | |
JP6204786B2 (ja) | 印刷システム、画像形成装置とその制御方法、及びプログラム | |
JP5802049B2 (ja) | デバイス制御装置及び方法、クライアント装置、並びにデバイス制御システム | |
JP2013246447A (ja) | ネットワークデバイス、プログラム、システムおよび方法 | |
JP2016129075A (ja) | 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法 | |
JP2008158646A (ja) | データ処理装置、印刷装置、印刷処理方法、記憶媒体、プログラム | |
JP2017142631A (ja) | デバイス制御装置、その制御方法、およびデバイス制御システム | |
JP6216510B2 (ja) | 携帯端末、携帯端末の制御方法、およびデバイス制御システム | |
JP2016091434A (ja) | 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム | |
CN105847669B (zh) | 通信设备、通信系统及其控制方法 | |
JP6635157B2 (ja) | 画像形成装置とその処理方法、プログラム | |
US20150222782A1 (en) | Device control apparatus and control method thereof | |
WO2016204100A1 (ja) | デバイス制御装置、その制御方法、およびデバイス制御システム | |
JP2009193091A (ja) | 周辺機器利用システム | |
JP6298292B2 (ja) | デバイス制御装置およびその制御方法 | |
JP2017010192A (ja) | デバイス制御装置、その制御方法、およびデバイス制御システム | |
JP2018097757A (ja) | デバイス制御装置、デバイス制御方法およびデバイス制御システム | |
JP2018206019A (ja) | デバイス制御装置、デバイス制御方法、およびプログラム | |
JP6399164B2 (ja) | 画像形成システム、その制御方法及びプログラム | |
JP2017117400A (ja) | デバイス制御装置、その制御方法、およびデバイス制御システム | |
JP2018106424A (ja) | デバイス制御装置、デバイス制御方法およびプログラム |