JP2017010192A - デバイス制御装置、その制御方法、およびデバイス制御システム - Google Patents

デバイス制御装置、その制御方法、およびデバイス制御システム Download PDF

Info

Publication number
JP2017010192A
JP2017010192A JP2015123561A JP2015123561A JP2017010192A JP 2017010192 A JP2017010192 A JP 2017010192A JP 2015123561 A JP2015123561 A JP 2015123561A JP 2015123561 A JP2015123561 A JP 2015123561A JP 2017010192 A JP2017010192 A JP 2017010192A
Authority
JP
Japan
Prior art keywords
control
virtual composite
identification information
virtual
internal
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
Application number
JP2015123561A
Other languages
English (en)
Inventor
峻介 須田
Shunsuke Suda
峻介 須田
命 根岸
Inochi Negishi
命 根岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Imaging Systems Inc
Original Assignee
Canon Imaging Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Imaging Systems Inc filed Critical Canon Imaging Systems Inc
Priority to JP2015123561A priority Critical patent/JP2017010192A/ja
Priority to PCT/JP2016/067468 priority patent/WO2016204100A1/ja
Publication of JP2017010192A publication Critical patent/JP2017010192A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】内部デバイスや外部デバイスを使ってネットワーク上の情報処理装置を遠隔操作できるデバイス制御装置、その制御方法およびデバイス制御システムにおいて、情報処理装置とデバイス制御装置の間をデバイス数に基づいたセッション数に関わらず制御する方法を提供する。
【解決手段】内部デバイスまたは外部デバイスが具備する1つまたは複数の所定の機能を組み合わせてデバイス制御装置に接続された1つの仮想複合デバイスとして識別させるための仮想複合デバイス識別情報を記憶し情報処理装置に送信する。情報処理装置が仮想複合デバイス識別情報に基づいて識別した仮想複合デバイスを、情報処理装置からの制御要求に従って制御する際、内部デバイスまたは外部デバイスと仮想複合デバイスとの間のデータ通信は第1のデータ形式に変換し、仮想複合デバイスとデバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する。
【選択図】図1

Description

本発明は、ネットワークを介して接続された情報処理装置から送られる各種要求を処理するためのデバイス制御装置、その制御方法、およびデバイス制御システムに関する。
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置であるクライアントPCが共有デバイスとして利用することが行われている。その実現方法がいくつか提案されている。
例えば、プリンタや複合機などのデバイス(デバイス制御装置)に具備されている操作パネルを、ネットワーク上の情報処理装置の入出力機能として仮想化制御し、デバイス制御装置からネットワーク上の情報処理装置を遠隔操作することで印刷やスキャンを実行させるデバイス制御システムがある(例えば、特許文献1参照)。特許文献1のデバイス制御システムにおいて情報処理装置から複数のデバイスを制御する場合、例えば、3つのデバイスを仮想化制御していると、デバイス毎にセッションを要するため、セッションはデバイス数の3つ必要であった。そのため、セッションを切断する場合にも、デバイス毎にセッションを管理する必要があった。
特開2014−102817号公報
本発明は、出願人自らが先に提案した特許文献1のクライアント装置およびデバイス制御システムをさらに拡張・発展させ、デバイス制御装置が具備する所定の機能である内部デバイスやデバイス制御装置に直結された外部デバイスを情報処理装置から制御する場合、これら内部デバイスや外部デバイスの数に基づいたセッション数に関わらず、情報処理装置とデバイス制御装置間の1以上のデバイス(内部デバイス、外部デバイス)を制御できるデバイス制御装置、その制御方法、およびデバイス制御システムを提供することを目的とする。
さらに本発明は、情報処理装置から内部デバイスや外部デバイスを制御する場合に、複数のデバイスを1つのデバイスとして認識させてセッションを利用することにより、そのセッションを利用するデバイス制御装置毎にセッションの接続または切断の制御を可能とし、セッション管理の利便性を向上させることを目的とする。
上記の課題を解決するために、請求項1に記載のデバイス制御装置は、ネットワークを介して情報処理装置に接続され、1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、前記内部デバイスおよび/または前記デバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして識別させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御手段と、を備えることを特徴とする。
本発明によれば、デバイス制御装置が具備する内部デバイスやデバイス制御装置に直接された外部デバイスを、ネットワークを介して情報処理装置から制御する際に、当該デバイス制御装置の内部デバイスや外部デバイスの数に関わらず、デバイス制御装置と情報処理装置の間のデータ通信におけるセッション数を削減することが可能となる。
さらに、複数のデバイス(内部デバイスや外部デバイス)を1つのデバイスとして情報処理装置に認識させることで、情報処理装置とデバイス制御装置の間のセッションの接続または切断を一元管理でき、利便性を向上させることが可能となる。
本発明の第1の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。 図1に示す仮想デバイス識別情報の一例を示す図である。 図1に示す仮想複合デバイス識別情報の一例を示す図である。 図1に示すデバイス制御システムにおける仮想複合デバイスのデバイス構成を示す図である。 図1に示すデバイス制御システムにおいて情報処理装置がデバイス制御装置に備えられた内部デバイスとデバイス制御装置に接続された外部デバイスを仮想化制御する際の動作を説明するためのシーケンス図である。 図1に示すデバイス制御システムにおいてデバイス制御装置に接続された外部デバイスのセッションの切断・再接続に連動して情報処理装置に接続された仮想複合デバイスのセッションを切断・再接続する際の動作を説明するためのシーケンス図である。
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
図1は、本発明の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
図示のデバイス制御システムにおいては、情報処理装置100がローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)を介してデバイス制御装置200に接続されている。LANおよびWANは有線回線または無線回線で構成される。そして、デバイス制御装置200には、例えば、通信インターフェース(例えば、USBまたはHDMI(登録商標))によって外部デバイス300がローカル接続されている。以降の説明では、通信インターフェースをUSBとして説明する。
<情報処理装置100の構成>
情報処理装置100は、ユーザによって利用されるパーソナルコンピュータ(PC)等の装置である。ハードウェア構成として、CPU、入力部、表示部、メモリ、通信部(ともに不図示)、記憶部110を備え、これらハードウェアは内部バスで相互に接続されている。
CPUは情報処理装置100の全体の制御を司る。入力部は、例えば、キーボードおよびマウスを備えている。表示部として、例えば、液晶モニタが用いられる。メモリはRAMおよびROM等である。
通信部はLANおよびWANなどに接続するためのインターフェースであって、デバイス制御装置200とデータ送受信を行う。これにより、情報処理装置100はデバイス制御装置200にローカル接続された外部デバイス300やデバイス制御装置200に備えられた内部デバイス400や外部デバイス300とデータ送受信することが可能となる。
記憶部110には、ソフトウェアであるオペレーティングシステム(以下「OS」と呼ぶ:不図示)、アプリケーション101、デバイスドライバ102、仮想化制御部103および通信制御部104が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
アプリケーション101は、デバイスドライバ102に対してデータ入出力要求を指示することにより、デバイス制御装置200に接続された外部デバイス300やデバイス制御装置200に備えられた内部デバイス400を組み合わせた複合デバイス(以下「仮想複合デバイス」と呼ぶ)を制御するためのソフトウェアである。
デバイスドライバ102は、外部デバイス300、内部デバイス400、および仮想複合デバイス500を制御するための機能部である。OSまたはアプリケーション101からのデータ入出力要求を、外部デバイス300、内部デバイス400、および仮想複合デバイス500に応じたデータ形式のデータ(以下「制御コマンド」と呼ぶ)に変換して、当該制御コマンドを仮想化制御部103に送る。さらに、デバイスドライバ102は制御コマンドに対する応答をアプリケーション101に通知する。このデバイスドライバ102は一般に、製造したメーカーによって提供されるソフトウェアであって、情報処理装置100は各デバイスに対応したデバイスドライバ102によって外部デバイス300、内部デバイス400、および仮想複合デバイス500を制御することができる。
仮想化制御部103は、デバイスドライバ102から送られた制御コマンド(つまり、データ入出力要求)をUSBデータ形式に準拠したパケットデータ(以下「USBデータ」と呼ぶ)に変換する。また、仮想化制御部103は通信制御部104から送られてくるUSBデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ102に送る。
さらに、仮想化制御部103は、外部デバイス300、内部デバイス400、および仮想複合デバイス500に対するデータ送受信要求に対して、外部デバイス300、内部デバイス400、および仮想複合デバイス500が情報処理装置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が仮想化制御するデバイス数分(内部デバイス、外部デバイス、仮想複合デバイスの数分)、生成される。
<デバイス制御装置200の構成>
デバイス制御装置200は、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成として、CPU、メモリ、通信部、および記憶部(ともに不図示)を備えるとともに、内部デバイス400を備えている。内部デバイス400の構成の詳細は後述する。
CPUはデバイス制御装置200全体の制御を司る。入力装置208は、例えば、キーボード、テンキーおよびマウス等の入力機器若しくはこれらの機能をソフトウェアで実現したソフトウェアキーボード等である。表示装置210としては、例えば、液晶モニタが用いられる。メモリはRAMおよびROM等である。
通信部はLANおよびWANに接続するためのインターフェースであって、情報処理装置100とデータ送受信を行う。
記憶部には、ソフトウェアであるOS(不図示)、通信制御部201、仮想化制御部202、仮想デバイス制御部203および仮想複合デバイス制御部211が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、CPUの制御に従い動作する。
通信制御部201は、情報処理装置100との間で行われる入出力データ等の送受信を制御する。
仮想化制御部202は、内部デバイス400、外部デバイス300、および仮想複合デバイス500があたかも情報処理装置100に直接的に接続(ローカル接続)されているかのように情報処理装置100へ認識させて制御できるようにするため、情報処理装置100の仮想化制御部103からの制御要求に従って(連動して)仮想複合デバイス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を記憶している。
仮想複合デバイス識別情報212は、情報処理装置100に仮想複合デバイス500を認識させるために用いる。仮想複合デバイス識別情報212の詳細は後述する。
<外部デバイス300の構成>
外部デバイス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に備えられたタッチパネルを用いるようにしてもよい。
なお、デバイス制御装置200は、例えば、プリンタまたは複合機等のオフィス機器であるが、デバイス制御装置200はオフィス機器に限定されるものではなく、様々な組込み装置、携帯電話機またはモバイル端末機器であってもよい。
<仮想デバイス識別情報204について>
次に、仮想デバイス識別情報204について説明する。通常、内部デバイス400である表示装置210は、外部デバイス300の個体識別情報に相当する情報を有していないので、情報処理装置100および仮想複合デバイス制御部211は内部デバイス400を認識することができない。
そこで、本実施形態では、個体識別情報に相当する仮想デバイス識別情報204を入力装置208と表示装置210の各々に割り当てて、情報処理装置100および仮想複合デバイス制御部211に表示装置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と同様に仮想複合デバイス500は、デバイスの個体識別情報に相当する情報を有していない。そのため、情報処理装置100は仮想複合デバイス500を認識することができない。
本実施形態では、仮想複合デバイス制御部211が個体識別情報に相当する仮想複合デバイス識別情報212を仮想複合デバイス500に割り当てて、表示装置210と外部デバイス300を一つの仮想複合デバイス500として情報処理装置100に認識させる。ここでは、仮想複合デバイス500のUSBディスクリプタを疑似的に作成したものを仮想複合デバイス識別情報212とする。仮想複合デバイス識別情報212は、仮想複合デバイス制御部211に予め記憶されたものであるが、仮想複合デバイス制御部211によって生成するようにしてもよい。
図3は、図1に示す仮想複合デバイス識別情報212の一例を示す図であり、仮想複合デバイス識別情報212はUSBディスクリプタからなる。
図3に示す疑似的なUSBディスクリプタは、キーボードに対応する外部デバイス300とディスプレイに対応する内部デバイス400の表示装置210を組み合わせた仮想複合デバイス500を生成した際の、仮想複合デバイス識別情報である。
仮想複合デバイス制御部211は、新たにベンダーID、プロダクトID、シリアル番号(不図示)、クラス、サブクラス、プロトコルおよびインターフェースを割り当て、仮想複合デバイス識別情報212として保持(記憶)する。
<仮想複合デバイス500のデバイス構成>
図4は、図1に示すデバイス制御システムにおいて複数のデバイスを一つの仮想複合デバイスとして仮想化した仮想複合デバイス500のデバイス構成を示す図である。
仮想複合デバイス制御部211は、外部デバイス300と内部デバイス400の表示装置210のデバイス構成情報に基づいて、仮想複合デバイス500のデバイス構成情報を構成し、複数のデバイスを1つの仮想複合デバイス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をあたかも一つのデバイスのように認識することができる。
<仮想複合デバイス500の制御シーケンス>
図5は、図1に示すデバイス制御システムにおいて情報処理装置100が仮想複合デバイス500を仮想化制御する際の動作を説明するためのシーケンス図である。ここでは、内部デバイス400の表示装置210と外部デバイス300を一つの仮想複合デバイス500とする場合について説明する。
まず、デバイス制御装置200からユーザ操作によって内部デバイス400の表示装置210の仮想化制御を開始させる(ステップS101)。具体的には、ユーザは所定の操作によって表示装置210に操作画面を表示させ、内部デバイス400の入力装置208を操作し、仮想複合デバイス500を構成する内部デバイス400の表示装置210と外部デバイス300を選択して仮想デバイス制御部203への接続を開始させる。ここで、選択可能な外部デバイス300は、情報処理装置100が記憶しているデバイスドライバ102に基づくものである。なお、仮想複合デバイス500を構成するために内部デバイス400および外部デバイス300を選択するとして説明したが、内部デバイス400または外部デバイス300のデバイス名を選択するのでなく内部デバイス400または外部デバイス300が具備する所定の機能を選択することも可能である。
ユーザの所定の操作によって、表示装置210から仮想デバイス制御部203に対して接続要求がUSBデータとして送信される(ステップS102)。
仮想複合デバイス制御部211は、表示装置210に係る仮想デバイス識別情報204をUSBデータとして受信する(ステップS103)。なお、この時点ではステップS101で選択した仮想複合デバイス500を構成する全てのUSBデバイスが接続されていない。そのため、仮想化制御部202へデバイスの接続通知は行わない。ただし、表示装置210を単体で仮想複合デバイス500として構成した場合は、デバイスの接続通知を行い仮想化制御が開始される。
加えて、仮想複合デバイス500を構成するデバイスとして選択されなかった内部デバイス400または外部デバイス300が、仮想複合デバイス500と共存することも可能である。ここで共存とは、仮想複合デバイス500とそれ以外のデバイスを別のセッションで管理することであり、情報処理装置100には仮想複合デバイス500とそれ以外のデバイスとして区別し認識される。このような場合に仮想デバイス制御部203は、仮想化制御部202へ共存するデバイスの接続通知を行い、デバイス制御装置200と情報処理装置100の間で仮想化制御が行われる。
続いて、デバイス制御装置200にUSBケーブルを介して外部デバイス300をローカル接続することによって仮想化制御が開始されることを説明する。
ユーザは外部デバイス300をデバイス制御装置200に接続する(ステップS104)。これにより、外部デバイス300の個体識別情報301が通信I/F302を介してデバイス制御装置200にUSBデータとして送信されて、仮想複合デバイス制御部211に外部デバイス300が接続された旨が通知される(ステップS105)。
仮想複合デバイス制御部211は、表示装置210と外部デバイス300から受信したUSBデータを、図4の構成に基づいて仮想複合デバイス500のインターフェースに対応するエンドポイントに格納する。これにより、仮想複合デバイス制御部211は、それぞれのデバイスから受信したUSBデータを、表示装置210のUSBデータと外部デバイス300のUSBデータを合わせて一つの仮想複合デバイス500のUSBデータ形式に変換して仮想複合デバイス識別情報212を生成する(ステップS106)。なお、仮想複合デバイス500を構成する全てのデバイスが揃うことで仮想化制御が開始されると例示したが、これに限定するものではない。表示装置210が選択された際は、通常の内部デバイス400としての仮想化制御を行うために、情報処理装置100への接続通知を行い、外部デバイス300が接続された際に、表示装置210と外部デバイス300を1つの仮想複合デバイス500として接続通知を行うことも可能である。
仮想複合デバイス制御部211は、仮想化制御部202に仮想複合デバイス500の仮想複合デバイス識別情報212を送信して接続を通知する(ステップS107)。続いて、仮想化制御部202は、USBデータ形式からネットワークパケットのデータへ変換し、通信制御部201を介して情報処理装置100に仮想複合デバイス500が接続された旨をネットワークパケットのデータとして通知する(ステップS108)。
情報処理装置100の仮想化制御部103は、デバイス制御装置200の仮想化制御部202から受信した仮想複合デバイス500に係る仮想複合デバイス識別情報212をデバイスドライバ102に通知する(ステップS109)。このとき、通信制御部104がデバイス制御装置200から受信したネットワークパケットのデータ形式を仮想複合デバイス500のUSBデータ形式に変換している。
デバイスドライバ102は、アプリケーション101に仮想複合デバイス500の接続の通知を送信する(ステップS110)。ここでアプリケーション101は、仮想複合デバイス500の接続の通知を受けると、仮想化制御部103に仮想複合デバイス500の仮想化制御の開始を指示し、仮想化制御部103は、仮想複合デバイス500の仮想化制御を開始する。そして、情報処理装置100は、仮想化制御に必要なソフトウェア部品を生成・起動し、これらのソフトウェア部品を使用して仮想複合デバイス500との接続を開始する。
仮想複合デバイス500とアプリケーション101の接続が開始されると、アプリケーション101は仮想複合デバイス500における表示装置の表示画面のキャプチャを行い、表示画面を取得する(ステップS111)。
アプリケーション101は、取得した仮想複合デバイス500の表示画面をデバイスドライバ102に送信する(ステップS112)。デバイスドライバ102は、アプリケーション101から受取った表示画面を仮想化制御部103に送信する(ステップS113)。
仮想化制御部103は、デバイス制御装置200の仮想化制御部202に表示画面をネットワークパケットのデータに変換して送信する(ステップS114)。仮想化制御部202は仮想複合デバイス制御部211に表示画面を仮想複合デバイス500のUSBデータとして送信する(ステップS115)。
仮想複合デバイス制御部211は、図4の構成に基づいて、仮想複合デバイス500のUSBデータのエンドポイントに基づいて受信したデータがどのデバイス(内部デバイス400または外部デバイス300)の制御情報であるか判断し、制御情報を送信するデバイスを決定する。エンドポイントが重複して振り替えている場合は、仮想複合デバイス制御部211に記憶した対応関係に基づいて判断を行う。
図5のシーケンスにおいては、表示画面情報として受信した仮想複合デバイス500のUSBデータを、仮想複合デバイス制御部211によって仮想化された表示装置210のUSBデータ形式へと変換し、変換した表示画面情報を仮想デバイス制御部203へと送信する(ステップS116)。
仮想デバイス制御部203は内部デバイス400の表示装置210に表示画面を送信する。このとき、仮想デバイス制御部203のデータ形式変換処理部205は、仮想複合デバイス制御部211から送られるUSBデータを表示装置210のデータ形式に変換して、ディスプレイI/F209を介して表示装置210に送信する(ステップS117)。
そして、表示装置210は、情報処理装置100から送られてくる画面データに応じた画面を表示する。このとき、表示装置210は、情報処理装置100から送られてくる画面データ(受信した表示画面)を表示し、情報処理装置100に対する入力待ち状態となる(ステップS118)。
なお、仮想化制御部202から送られるUSBデータをデータ変換せずにディスプレイI/F209に通すことができる場合は、データ変換せずにディスプレイI/F209を介して表示装置210に送る。また、前述のステップS115で、取得した画面データを全て送信するのではなく、前回送信した表示画像との差分のみを送信する場合には、ここで、既に受信済みの表示画面に差分の表示画面を合成して表示する。
ユーザは、外部デバイス300の入力装置を用いて情報処理装置100を遠隔操作するための操作情報を入力する(ステップS119)。
続いて、外部デバイス300は、外部デバイス300の通信I/F302を介して仮想複合デバイス制御部211に操作情報をUSBデータとして送信する(ステップS120)。
仮想複合デバイス制御部211は、受信した操作情報(USBデータ)を仮想化制御部202に送信する(ステップS121)。このとき、仮想複合デバイス制御部211は、外部デバイス300から受信した操作情報(USBデータ)を仮想複合デバイス500のデータ形式に変換して仮想化制御部202に送信する。
仮想化制御部202は、USBデータ形式からネットワークパケットのデータへ変換し、通信制御部201を介して情報処理装置100の仮想化制御部103に受信した操作情報をネットワークパケットのデータとして送信する(ステップS122)。情報処理装置100の仮想化制御部103は、受信した操作情報をデバイスドライバ102に送信する(ステップS123)。デバイスドライバ102は、仮想化制御部103から受け取った操作情報をアプリケーション101に送信する(ステップS124)。
続いて、アプリケーション101は、デバイスドライバ102から受信した操作情報に応じた操作(処理)を実行する(ステップS125)。
このとき、情報処理装置100は、処理(機能)の実行結果を表示装置210に表示する。この表示装置210に表示された画像データは、上述したステップS113〜ステップS120と同様にデバイス制御装置200に送信され、デバイス制御装置200の表示装置210に情報処理装置100から送られてくる画像データ(表示画面)が表示される。
なお、ステップS110において仮想複合デバイス500とアプリケーション101の接続が開始されると、その接続が切断(終了)されるまで、ステップS111〜ステップS118の処理(画面転送処理)とステップS119〜ステップS125の処理(遠隔操作処理)を非同期(並列)で繰り返す。このとき、仮想化制御部202、仮想デバイス制御部203および仮想複合デバイス制御部211は内部デバイス400と情報処理装置100との間でネットワークを介してデータ送受信を行う。
また、ステップS101において内部デバイス400の表示装置210で仮想複合デバイス500を構成するデバイスを選択するとして説明したが、外部デバイス300から仮想複合デバイス500を構成するデバイスを選択することも可能である。加えて、仮想複合デバイス500を構成するデバイスを選択することなく、予めOSに組み込まれている仮想複合デバイス500を構成可能なデバイスのうち接続されたすべての内部デバイス400および外部デバイス300を一つの仮想複合デバイス500としてもよい。
図6は、図1に示すデバイス制御システムにおいて、図5に示す仮想複合デバイス500の接続処理の後に、情報処理装置100が仮想複合デバイス500との接続を切断して再接続する際の動作を説明するためのシーケンス図である。
ユーザは、情報処理装置100による仮想複合デバイス500の仮想化制御を終了させる場合、仮想複合デバイス500を構成しているデバイスのいずれかを切断する。ここでは、外部デバイス300を切断する場合を例として説明する。
仮想複合デバイス制御部211に対する表示装置210の接続を維持し、外部デバイス300を切断する(ステップS201)。外部デバイス300は、仮想複合デバイス制御部211にUSBデータ(第1のデータ形式)として切断要求する(ステップS202)。仮想複合デバイス制御部211は、仮想複合デバイス500を構成するデバイスの一つが切断されたことを受け、仮想化制御部202に仮想複合デバイス500のUSBデータとして制御終了を通知する(ステップS203)。
続いて、仮想化制御部202は、情報処理装置100の仮想化制御部103に仮想複合デバイス500の制御が終了された旨(制御終了通知)をネットワークパケットのデータとして通知する(ステップS204)。仮想化制御部103は、デバイス制御装置の仮想化制御部202から受信した制御終了通知をデバイスドライバ102に通知する(ステップS205)。
デバイスドライバ102は、仮想化制御部103から受信した制御終了通知をアプリケーション101に通知する(ステップS206)と共に、仮想複合デバイス500の制御を解除する。これによりアプリケーション101と仮想複合デバイス500の通信(接続)が切断(解除)される。なお、仮想化制御部202は、仮想複合デバイス500として接続が切断後、切断していないデバイス(ここでは、表示装置210)を仮想複合デバイス500として情報処理装置100に認識させるのではなく、表示装置210を内部デバイス400として認識させることも可能である。
続いて、仮想複合デバイス制御部211に対する表示装置210の接続は維持したまま、外部デバイス300を再度接続する(ステップS207)と、これにより、仮想複合デバイス制御部211に外部デバイス300が接続された旨がUSBデータとして通知される(ステップS208)。
仮想複合デバイス制御部211は、仮想複合デバイス500を構成するデバイスがすべて接続されたことを受け、再度、仮想複合デバイス500を生成する(ステップS209)。仮想複合デバイス制御部211は、仮想化制御部202に仮想複合デバイス500の制御開始を仮想複合デバイス500のUSBデータとして通知する(ステップS210)。
続いて、仮想化制御部202は、情報処理装置100の仮想化制御部103に仮想複合デバイス500の制御が開始された旨(制御開始通知)をネットワークパケットのデータとして通知する(ステップS211)。仮想化制御部103は、デバイス制御装置の仮想化制御部202から受信した制御開始通知をデバイスドライバ102に通知する(ステップS212)。
デバイスドライバ102は、仮想化制御部103から受信した制御開始通知をアプリケーション101に通知する(ステップS213)と共に、仮想複合デバイス500の制御を開始する。これによりアプリケーション101と仮想複合デバイス500の通信(接続)が接続(開始)される。
ここまで図6において、仮想複合デバイス500の内部デバイス400または外部デバイス300からの切断指示について例示したが、情報処理装置100から切断指示することも可能である(不図示)。その切断指示に応じて、デバイス制御装置200が仮想複合デバイス500の制御を終了する。
本実施形態では、仮想化している複数のデバイスを1つの仮想複合デバイス500として情報処理装置100に認識させるため、デバイス毎のセッション管理ではなく、仮想複合デバイス単位でセッションを管理することが可能となる。クラウド環境などへの適用を考えると、情報処理装置100側からデバイス毎のセッション管理ではなく、仮想複合デバイスとして接続または切断のセッション管理が可能となるため利便性が向上する。
上述のように、本発明の実施形態では、情報処理装置100はデバイス制御装置200に備えられた内部デバイス400と外部デバイス300を組み合わせた仮想複合デバイス500を仮想化制御し、デバイスドライバ102を用いて仮想複合デバイス500が直接的に接続(ローカル接続)された場合と同様にその振る舞いをシミュレートすることができる。そのため、デバイス制御装置200に備えられた内部デバイス400や外部デバイス300を仮想複合デバイス500として再構成して情報処理装置100に仮想化接続することで情報処理装置100から仮想複合デバイス500を制御(利用)することができる。
そして、複数のデバイスを一つの仮想複合デバイス500として用いることにより、情報処理装置100にデバイスを仮想化接続する際、仮想化接続するデバイス毎に必要となるセッションを、デバイス制御装置に対して一つになるように使用することが出来る。このことにより、データ通信におけるセッション数を削減することが可能となる。また、仮想複合デバイス500として情報処理装置100に認識させることで、情報処理装置とデバイス制御装置の間のセッションを一元管理することが可能となる。
なお、内部デバイス400(表示装置210)と外部デバイス300(入力装置)を組み合せて仮想複合デバイス500を生成する例示を説明したが、複数の内部デバイスを組み合せて仮想複合デバイス500を生成してもよいし、また、複数の外部デバイスを組み合せて仮想複合デバイス500を生成してもよい。さらに、デバイス制御装置200内に仮想複合デバイスを複数生成してもよい。
以上、本発明について上記の各実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施形態の機能の制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラムコード)を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムコードを読み出して実行する処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
100:情報処理装置
200:デバイス制御装置
300:外部デバイス
400:内部デバイス
101:アプリケーション
102:デバイスドライバ
104,201:通信制御部
103,202:仮想化制御部
203:仮想デバイス制御部
204:仮想デバイス識別情報
205:データ形式変換処理部
206:内部バス
207:入力I/F
208:入力装置
209:ディスプレイI/F
210:表示装置
211:仮想複合デバイス制御部
212:仮想複合デバイス識別情報

Claims (17)

  1. ネットワークを介して情報処理装置に接続され、1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置であって、
    前記内部デバイスおよび/または前記デバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして識別させるための仮想複合デバイス識別情報を記憶する識別情報記憶手段と、
    前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信手段と、
    前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御手段と、
    を備えることを特徴とするデバイス制御装置。
  2. 前記識別情報記憶手段は、前記デバイス制御装置が具備する1つまたは複数の所定の機能を内部デバイスとして識別させるための仮想デバイス識別情報をさらに記憶し、
    所定の操作に応じて選択された1以上の前記内部デバイスおよび/または前記外部デバイスに基づいて構成された前記仮想複合デバイス以外の前記内部デバイスおよび/または前記外部デバイスの仮想デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項1に記載のデバイス制御装置。
  3. 前記仮想化制御手段は、前記制御要求に対する情報を送受信する場合、前記仮想デバイス識別情報および前記仮想複合デバイス識別情報の対応関係に基づき、どの前記内部デバイスまたは前記外部デバイスと前記情報を送受信するか判断し、当該判断結果に従い前記情報を送受信することを特徴とする請求項2に記載のデバイス制御装置。
  4. 前記識別情報送信手段は、前記内部デバイスおよび/または前記外部デバイスのうちデバイス制御装置が認識した1以上の前記内部デバイスおよび/または前記外部デバイスに基づいて構成される前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項1乃至3の何れか1項に記載のデバイス制御装置。
  5. 前記内部デバイスまたは前記外部デバイスにおいて前記所定の操作が行われると、前記識別情報送信手段は、前記所定の操作に基づいて構成される前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項1乃至3の何れか1項に記載のデバイス制御装置。
  6. 前記内部デバイスまたは前記外部デバイスにおいて所定の終了操作が行われると、前記仮想化制御手段は、前記仮想複合デバイスの制御を終了することを特徴とする請求項1乃至5の何れか1項に記載のデバイス制御装置。
  7. 前記識別情報送信手段は、前記仮想複合デバイスの制御を終了すると、前記仮想複合デバイスを構成する前記内部デバイスおよび/または前記外部デバイスのうち前記所定の終了操作によって仮想化制御終了の対象とならなかったデバイスの仮想デバイス識別情報または前記仮想化制御終了の対象とならなかったデバイスで構成される仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項6に記載のデバイス制御装置。
  8. 前記情報処理装置において所定の終了操作が行われると、当該終了操作に基づいた指示を受けた前記仮想化制御手段は前記情報処理装置からの指示を検知し、前記仮想複合デバイスの制御を終了することを特徴とする請求項1乃至5の何れか1項に記載のデバイス制御装置。
  9. 前記情報処理装置と、請求項1乃至8の何れか1項に記載のデバイス制御装置と、を備えることを特徴とするデバイス制御システム。
  10. ネットワークを介して情報処理装置に接続され、1つまたは複数の所定の機能を内部デバイスとして認識させるデバイス制御装置の制御方法であって、
    前記内部デバイスおよび/または前記デバイス制御装置に接続された外部デバイスから構成される仮想複合デバイスとして識別させるための仮想複合デバイス識別情報を記憶する識別情報記憶ステップと、
    前記仮想複合デバイス識別情報を前記情報処理装置に送信する識別情報送信ステップと、
    前記情報処理装置が前記仮想複合デバイス識別情報に基づいて識別した前記仮想複合デバイスを、当該情報処理装置からの制御要求に従って制御する際、前記内部デバイスまたは前記外部デバイスと前記仮想複合デバイスとの間のデータ通信および前記仮想複合デバイスと前記デバイス制御装置との間のデータ通信は第1のデータ形式に変換し、前記情報処理装置と前記デバイス制御装置との間のデータ通信は第2のデータ形式に変換して制御する仮想化制御ステップと、
    を備えることを特徴とするデバイス制御装置の制御方法。
  11. 前記識別情報記憶ステップは、前記デバイス制御装置が具備する1つまたは複数の所定の機能を内部デバイスとして識別させるための仮想デバイス識別情報をさらに記憶し、
    所定の操作に応じて選択された1以上の前記内部デバイスおよび/または前記外部デバイスに基づいて構成された前記仮想複合デバイス以外の前記内部デバイスおよび/または前記外部デバイスの仮想デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項10に記載のデバイス制御装置の制御方法。
  12. 前記仮想化制御ステップは、前記制御要求に対する情報を送受信する場合、前記仮想デバイス識別情報および前記仮想複合デバイス識別情報の対応関係に基づき、どの前記内部デバイスまたは前記外部デバイスと前記情報を送受信するか判断し、当該判断結果に従い前記情報を送受信することを特徴とする請求項11に記載のデバイス制御装置の制御方法。
  13. 前記識別情報送信ステップは、前記内部デバイスおよび/または前記外部デバイスのうちデバイス制御装置が認識した1以上の前記内部デバイスおよび/または前記外部デバイスに基づいて構成される前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項10乃至12の何れか1項に記載のデバイス制御装置の制御方法。
  14. 前記内部デバイスまたは前記外部デバイスにおいて前記所定の操作が行われると、前記識別情報送信ステップは、前記所定の操作に基づいて構成される前記仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項10乃至12の何れか1項に記載のデバイス制御装置の制御方法。
  15. 前記内部デバイスまたは前記外部デバイスにおいて所定の終了操作が行われると、前記仮想化制御ステップは、前記仮想複合デバイスの制御を終了することを特徴とする請求項10乃至14の何れか1項に記載のデバイス制御装置の制御方法。
  16. 前記識別情報送信ステップは、前記仮想複合デバイスの制御を終了すると、前記仮想複合デバイスを構成する前記内部デバイスおよび/または前記外部デバイスのうち前記所定の終了操作によって仮想化制御終了の対象とならなかったデバイスの仮想デバイス識別情報または前記仮想化制御終了の対象とならなかったデバイスで構成される仮想複合デバイス識別情報を前記情報処理装置に送信することを特徴とする請求項15に記載のデバイス制御装置の制御方法。
  17. 前記情報処理装置において所定の終了操作が行われると、当該終了操作に基づいた指示を受けた前記仮想化制御ステップは前記情報処理装置からの指示を検知し、前記仮想複合デバイスの制御を終了することを特徴とする請求項10乃至14の何れか1項に記載のデバイス制御装置の制御方法。
JP2015123561A 2015-06-19 2015-06-19 デバイス制御装置、その制御方法、およびデバイス制御システム Pending JP2017010192A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015123561A JP2017010192A (ja) 2015-06-19 2015-06-19 デバイス制御装置、その制御方法、およびデバイス制御システム
PCT/JP2016/067468 WO2016204100A1 (ja) 2015-06-19 2016-06-07 デバイス制御装置、その制御方法、およびデバイス制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015123561A JP2017010192A (ja) 2015-06-19 2015-06-19 デバイス制御装置、その制御方法、およびデバイス制御システム

Publications (1)

Publication Number Publication Date
JP2017010192A true JP2017010192A (ja) 2017-01-12

Family

ID=57762441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015123561A Pending JP2017010192A (ja) 2015-06-19 2015-06-19 デバイス制御装置、その制御方法、およびデバイス制御システム

Country Status (1)

Country Link
JP (1) JP2017010192A (ja)

Similar Documents

Publication Publication Date Title
JP5461621B2 (ja) 遠隔デバイスドライバを利用した遠隔制御システム及び遠隔デバイスドライバを利用した遠隔制御方法
JP5307276B2 (ja) Usb装置の遠隔制御方法及びこれを実行するシステム
JP2010218347A (ja) シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
CA2865725A1 (en) Information processing system, information processing method, mobile phone, server, and control method and control program thereof
US10261937B2 (en) Method and system for communication of device information
JP2012113565A (ja) ネットワーク装置、ネットワークシステム、およびネットワーク装置の制御方法
JP7018110B1 (ja) モバイル機器ドック
JP6216510B2 (ja) 携帯端末、携帯端末の制御方法、およびデバイス制御システム
KR20110018694A (ko) 호스트 장치 및 슬레이브 장치 제어 방법
JP4649584B2 (ja) 周辺機器ドライバインストールシステム
JP6086183B2 (ja) 情報処理システム、情報処理方法、サーバ、その制御方法および制御プログラム
JP5890648B2 (ja) 情報処理装置、その制御方法、およびデバイス制御システム
US10372632B2 (en) Information processing system, information processing method and information processing device
JP2017010192A (ja) デバイス制御装置、その制御方法、およびデバイス制御システム
JP2016091434A (ja) 情報処理装置、デバイス制御装置、その制御方法、およびデバイス制御システム
US10659306B2 (en) Information processing device and method for setting the environment of the device
JP6212367B2 (ja) 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法
JP5707366B2 (ja) Usb端末の制御方法及びこれを実行する装置
JP6482272B2 (ja) デバイス制御装置、クライアント、デバイス制御方法、及びデバイス制御システム
WO2018041193A1 (zh) 一种usb设备重定向方法和装置和计算机存储介质
JP6281369B2 (ja) 通信システム及び通信プログラム
WO2016204100A1 (ja) デバイス制御装置、その制御方法、およびデバイス制御システム
JP2018097757A (ja) デバイス制御装置、デバイス制御方法およびデバイス制御システム
KR102509982B1 (ko) Usb 인식 장치 및 방법, 그리고 이를 위한 리더의 동작 방법
JP2017142631A (ja) デバイス制御装置、その制御方法、およびデバイス制御システム