(57)【要約】【課題】ユーザがデバイスを操作した際に、情報処理装置とデバイス制御装置との間のレイテンシの影響によるデバイスの操作に対する応答遅延からユーザの誤操作を低減させ、ユーザビリティを向上させることを目的とする。【解決手段】デバイス制御装置は、ネットワークを介して情報処理装置に接続され、デバイスをローカル接続されている。仮想化制御部は情報処理装置にデバイスがあたかもローカル接続されているかのように仮想化制御させ、前記デバイスに対する所定の操作を検出して、報知部に報知手段に報知を行わせるための報知制御通知を通知する。報知部は仮想化制御部からの通知に応じて、報知を行う。【選択図】図４
2018195209.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して情報処理装置に接続されると共に、デバイスが内蔵されている、または、デバイスがローカル接続されているデバイス制御装置であって、
前記情報処理装置に前記デバイスがあたかもローカル接続されているかのように仮想化制御させ、前記デバイスに対する所定の操作を検出し、報知手段に報知を行わせるための通知を送信する仮想化制御手段と、
前記仮想化制御手段から前記通知を受信した場合、報知を行う報知手段と、
を備えることを特徴とするデバイス制御装置。
【請求項２】
前記仮想化制御手段は、前記デバイスに対する所定の操作を検出してから所定時間経過後に前記報知手段に対して前記通知を送信することを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
前記仮想化制御手段によって前記デバイスの操作を検出した後、前記情報処理装置に対して前記デバイスの操作に応じたデータの送信を行い、前記情報処理装置からデバイスの操作に応じた応答を受信するデータ送受信手段をさらに備え、
前記仮想化制御手段は、前記データ送受信手段によって前記デバイスの操作に応じた前記情報処理装置からの応答を待たずに前記報知手段に前記通知を送信すること特徴とする請求項１に記載のデバイス制御装置。
【請求項４】
前記情報処理装置と前記デバイス制御装置との間の通信遅延を計測する通信遅延計測手段をさらに備え、
前記仮想化制御手段は、前記通信遅延計測手段によって計測された通信遅延の計測値に応じて、前記報知手段に前記通知を送信するか否かを制御する
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項５】
前記仮想化制御手段は、前記デバイスに対する所定の操作を所定時間内に複数回検出した場合、前記デバイスに対する初回の操作と前記デバイスに対する２回目以降の操作に応じて、前記報知手段に対する前記通知の制御を異ならせる
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項６】
前記デバイス制御装置は、複数の報知手段を備え、
前記仮想化制御手段は、前記複数の報知手段に対して個別に前記通知を送信する否か、または、前記複数の報知手段に対して一括で前記通知を送信するか否かを設定する
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載のデバイス制御装置。
【請求項７】
ネットワークを介して情報処理装置に接続されると共にデバイスが内蔵されている、または、ローカル接続されているデバイス制御装置のデバイス制御方法であって、
前記情報処理装置に前記デバイスがあたかも直接接続されているかのように仮想化制御させる仮想化制御ステップと、
前記デバイスに対する所定の操作を検出し、報知手段に報知を行わせるための通知を送信する通知ステップと、
前記通知ステップによって送信された前記通知を受信した場合、
報知を行う報知ステップと、
を備えることを特徴とするデバイス制御装置のデバイス制御方法。
【請求項８】
請求項１乃至請求項６の何れか１項に記載のデバイス制御装置の各手段をコンピュータに機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された情報処理装置に対して各種要求を行うためのデバイス制御装置、デバイス制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどのデバイスを、ネットワーク上の情報処理装置が共有デバイスとして遠隔利用する技術が提案されている。
【０００３】
例えば、第１のコンピュータと移動端末（デバイス）がＵＳＢインターフェースを介して接続され、第１のコンピュータ（デバイス制御装置）と第２のコンピュータ（情報処理装置）がネットワークを介して接続されたシステムにおいて、第２のコンピュータは移動端末に応じた機能ドライバ（デバイスドライバ）を用いて、移動端末を制御できるものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１６１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のシステムにおいて、ユーザはデバイスを操作（例えば、タッチパネルのタップなど）した際に、情報処理装置とデバイス制御装置との間（特にインターネット接続環境のとき）の通信遅延（以下「レイテンシ」と呼ぶ）の影響により、当該操作に対する応答の遅延が発生し、当該操作が行われたどうかをユーザは認識できない。そのため、ユーザは操作をしていない（操作を受け付けられてない）と認識してデバイスを連続して操作してしまい、その連続した操作によって、情報処理装置を誤操作する恐れがある。
【０００６】
そこで、本発明は、ユーザがデバイスを操作した際に、情報処理装置とデバイス制御装置との間のレイテンシの影響によるデバイスの操作に対する応答遅延からユーザの誤操作を低減させ、ユーザビリティを向上させるデバイス制御装置、デバイス制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、ネットワークを介して情報処理装置に接続されると共に、デバイスが内蔵されている、または、デバイスがローカル接続されているデバイス制御装置であって、前記情報処理装置に前記デバイスがあたかもローカル接続されているかのように仮想化制御させ、前記デバイスに対する所定の操作を検出し、報知手段に報知を行わせるための通知を送信する仮想化制御手段と、前記仮想化制御手段から前記通知を受信した場合、報知を行う報知手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザがデバイスを操作した際に、情報処理装置とデバイス制御装置との間のレイテンシの影響によるデバイスの操作に対する応答の遅延からユーザの誤操作を低減させ、ユーザビリティを向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【図２】デバイス制御装置が管理するデバイス管理情報の一例を説明する図である。
【図３】図１に示す情報処理装置におけるデバイスの仮想化制御に係る処理を説明するためのフローチャートである。
【図４】図１に示すデバイス制御装置における仮想化制御に関する処理および報知処理を説明するためのフローチャートである。
【図５】本発明の第２の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１１】
[第１の実施形態]
図１は、本発明の実施形態によるデバイス制御システムの一例を概略的に示すブロック図である。
【００１２】
＜システム構成＞
図示のデバイス制御システムにおいては、情報処理装置１００、デバイス制御装置２００、デバイス３００から構成されている。
【００１３】
情報処理装置１００とデバイス制御装置２００との間は、インターネット回線やモバイル回線などの無線回線、又は有線回線などの通信回線を介して接続されている。
【００１４】
デバイス３００は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースに準拠した接続ケーブルでデバイス制御装置２００に接続（ローカル接続）されている。ただし、ＵＳＢに限定されるものではなく、ＨＤＭＩ（登録商標）やＩＥＥＥ１３９４など別のインターフェースに準拠したものであってもよい。以降の説明ではデバイス３００の通信インターフェースをＵＳＢとして説明する。
【００１５】
なお、図１に示すデバイス制御システムにおいては情報処理装置１００、デバイス制御装置２００、デバイス３００がそれぞれ１つのみ示されているが、情報処理装置１００、デバイス制御装置２００、デバイス３００の台数は図示の例に限定されるものではない。
【００１６】
＜情報処理装置１００の構成＞
情報処理装置１００は、例えば、ユーザによって利用されるパーソナルコンピュータ（ＰＣ）などの装置であって、ハードウェア構成として、ＣＰＵ１５１、入力部１５２、表示部１５３、メモリ１５４、および通信部１５５、記憶部１１０を備えており、これらハードウェアは内部バスで相互に接続されている。
【００１７】
ＣＰＵ１５１は、情報処理装置１００全体の制御を司る。入力部１５２は、例えば、キーボードおよびマウスを備えている。表示部１５３として、例えば、液晶モニタが用いられる。メモリ１５４はＲＡＭおよびＲＯＭなどである。
【００１８】
通信部１５５は、通信回線に接続するためのインターフェースであって、デバイス制御装置２００とデータ送受信を行う。
【００１９】
記憶部１１０には、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１０１、デバイスドライバ１０２、仮想化制御部１０３、通信制御部１０４が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ１５４に読み出されて、ＣＰＵ１５１の制御に従い動作する。
【００２０】
アプリケーション１０１は、デバイスドライバ１０２に対してデータ入出力要求を指示することによって、デバイス制御装置２００を介してデバイス３００を制御するソフトウェアプログラムである。
【００２１】
デバイスドライバ１０２は、ＯＳまたはアプリケーション１０１からのデータ入出力要求を、デバイス制御装置２００を介してデバイス３００に応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドを仮想化制御部１０３に送る。さらに、デバイスドライバ１０２は制御コマンドに対する応答をアプリケーション１０１に送信する。デバイスドライバ１０２は、一般に製造会社によって提供されるソフトウェア部品であって、情報処理装置１００は各デバイスに対応したデバイスドライバ１０２によってデバイス制御装置２００を介してデバイス３００を制御することができる。
【００２２】
仮想化制御部１０３は、デバイスドライバ１０２から送られた制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換する。また、仮想化制御部１０３は通信制御部１０４から送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１０２に送る。
【００２３】
さらに、仮想化制御部１０３は、デバイス３００に対するデータ送受信要求に対して、デバイス３００が情報処理装置１００に直接的に接続（ローカル接続）されている際と同様の振る舞いをシミュレートする機能（以下「仮想化制御機能」と呼ぶ）を備えている。この仮想化制御機能によって、情報処理装置１００はデバイス３００をローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。
【００２４】
通信制御部１０４は、仮想化制御部１０３から送られるＵＳＢデータとデバイス制御装置２００と通信する際のネットワークパケットとの変換処理を行って、デバイス制御装置２００との間でデータ送受信の制御を行うソフトウェアである。また、通信制御部１０４は仮想化制御部１０３を介してアプリケーション１０１またはデバイスドライバ１０２から送られるデータ送受信要求に応じて、デバイス制御装置２００との間のセッションの開始および切断の制御を行う。
【００２５】
＜デバイス制御装置２００の構成＞
デバイス制御装置２００は、例えば、プリンタまたは複合機などの周辺機器であって、ハードウェア構成として、ＣＰＵ２５１、入力部２５２、表示部２５３、メモリ２５４、通信部２５５、報知部２５６、および記憶部２１０等を備える。
【００２６】
ＣＰＵ２５１はデバイス制御装置２００全体の制御を司る。入力部２５２は、例えば、タッチパネルやボタン等を備えている。表示部２５３として、例えば、液晶パネルが用いられる。メモリ２５４はＲＡＭおよびＲＯＭ等である。
【００２７】
通信部２５５はＬＡＮに接続するためのインターフェースであって、情報処理装置１００とデータ送受信を行う。
【００２８】
報知部２５６は、デバイス制御装置２００が有するスピーカー、ＬＥＤ等である。例えば、スピーカーやブザーは、音によりユーザに音声情報を提供する。ＬＥＤは、明滅によりユーザに視覚情報を提供する。なお、視覚情報と音声情報を両方提供しても良い。なお、報知部２５６による報知だけでなく、表示部２５３によってユーザに視覚情報を提供してもよい。
【００２９】
記憶部２１０には、ソフトウェアであるＯＳ（不図示）、通信制御部２０１、仮想化制御部２０２、デバイス制御部２０３が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ２５４に読み出されて、ＣＰＵ２５１の制御に従い動作する。
【００３０】
通信制御部２０１は、情報処理装置１００との間で行われる入出力データ等の送受信を制御する。
【００３１】
仮想化制御部２０２は、デバイス制御装置２００に接続されたデバイス３００があたかも情報処理装置１００にローカル接続されているかのように情報処理装置１００へ認識させて制御できるようにするため、情報処理装置１００の仮想化制御部１０３からの制御要求に従って（連動して）デバイス３００の制御を行う。
【００３２】
また、仮想化制御部２０２は、デバイス３００の操作状況を監視し、デバイスが操作されたことを検出した場合、報知部２５６に報知を行わせるための通知（以下、報知制御通知）を送信する。なお、仮想化制御部２０２は、後述するデバイス管理情報を参照して、１つの報知部２５６に報知制御通知を送信してもよいし、複数の報知部２５６に報知制御通知を送信してもよい。
【００３３】
デバイス制御部２０３は、デバイス３００の制御を行い、デバイス３００とデバイス制御装置２００との間のデータ送受信の制御を行う。
【００３４】
また、デバイス制御部２０３は、デバイス制御装置２００に接続されたデバイス３００に関する情報（後述するデバイス管理情報２０４）を認識・管理する。
【００３５】
＜デバイス３００の構成＞
デバイス３００は、個体識別情報３０１および通信Ｉ／Ｆ３０２を備えており、デバイス制御装置２００にＵＳＢインターフェース等の通信Ｉ／Ｆ３０２によって接続されている。なお、本実施形態において、デバイス３００は、例えば、タッチパネル、マウス、キーボード、およびテンキー等の入力装置等（ＨＩＤクラス）として説明する。
【００３６】
前述のように、デバイス３００はデバイス制御装置２００にＵＳＢインターフェースによって外付けで接続されている。なお、デバイス３００が備える通信インターフェースは、ＵＳＢやＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４に限定されるものではない。
【００３７】
個体識別情報３０１は、デバイス３００を識別するための情報であって、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。デバイス３００がデバイス制御装置２００に接続された場合、デバイス制御装置２００はデバイス３００から個体識別情報を取得する。
【００３８】
＜デバイス管理情報２０４について＞
次に、デバイス制御装置２００が有するデバイス管理情報２０４について説明する。デバイス管理情報２０４は、デバイス制御装置２００に接続されたデバイス３００の情報（個体識別情報）および報知部２５６の制御に関する情報（以下「報知関連情報」と呼ぶ）を含む情報である。
【００３９】
図２は、図１に示すデバイス管理情報２０４の一例を示す図である。デバイス管理情報２０４は、デバイス名、ベンダーＩＤ、製品ＩＤ、クラス、インターフェース、報知設定、対応報知部から構成される。図２の例示では、デバイス３００Ａ、デバイス３００Ｂ、デバイス３００Ｃの３台のデバイスに関する情報を管理している。
【００４０】
デバイス名は、デバイス制御装置２００に接続されたデバイス３００の名称を示し、主にＵＳＢディスクリプタ情報から取得されるデバイス名称である。なお、デバイス名はＵＳＢディスクリプタ情報から取得するだけでなく、デバイス３００を識別できるような情報であればよい。
【００４１】
ベンダーＩＤ、製品ＩＤは、前述のとおりである。
【００４２】
クラスは、デバイスの種類を表す情報である。
【００４３】
インターフェースは、デバイス３００の転送タイプを示す情報である。例えば、ＵＳＢにおける転送のタイプとして「インタラプト転送」、「バルク転送」、「アイソクロナス転送」、「コントロール転送」がある。
【００４４】
報知設定は、各デバイス３００の操作に応じて、報知部２５６で報知を行うか否かを示す情報である。図２の例示では、デバイスＡとデバイスＣは報知を行う「ＯＮ」に設定され、デバイスＢは報知を行わない「ＯＦＦ」に設定されている。
【００４５】
対応報知部は、デバイス３００の操作を検知した場合に、当該デバイス３００に対応づけられた報知部２５６を示す情報である。図２の例示では、デバイスＡは報知部１（例：スピーカー）に設定され、デバイスＢは、報知部２（ＬＥＤ）に設定され、デバイスＣは報知部１（例：スピーカー）と報知部２（ＬＥＤ）に設定されている。
【００４６】
なお、ユーザは情報処理装置１００、デバイス制御装置２００、デバイス３００のいずれか１つから各デバイスの報知設定や対応報知部の設定・変更（更新）を行うことができる。また、デバイス制御装置２００に複数のデバイス３００が接続されている場合、報知設定や対応報知部の設定をデバイス３００毎に行っても良いし、複数のデバイス３００をまとめて（一括して）行ってもよい。
【００４７】
＜情報処理装置１００におけるデバイス３００の仮想化制御＞
図３は、図１に示す情報処理装置１００におけるデバイス３００の仮想化制御に係る処理を説明するためのフローチャートである。
【００４８】
情報処理装置１００内のＯＳ起動中に常に待機および動作しているソフトウェア（以後常駐モジュールと呼ぶ：不図示）は、デバイス制御装置２００を介して通信回線に接続されたデバイス３００を知るために、通信制御部１０４を介して、デバイス制御装置２００に対して検索パケットをブロードキャストする。具体的には、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などのプロトコルを用いて、デバイス制御装置２００の検索（問い合わせ）を行なう。
【００４９】
情報処理装置１００は、デバイス制御装置２００からデバイス３００の個体識別情報を受信したか判断する（ステップＳ３０１）。
【００５０】
情報処理装置１００は、デバイス制御装置２００から応答がなく、個体識別情報を受信しない場合は（ステップＳ３０１でＮｏ）、仮想化制御に関す処理は行わずに、本制御フローを終了する。
【００５１】
情報処理装置１００は、デバイス制御装置２００から個体識別情報３０１の受信を待ち（ステップＳ３０１）、デバイス制御装置２００から受信がない場合には（ステップＳ３０１でＮｏ）、仮想化制御に関する処理は行わず、本制御フローを終了する。
【００５２】
一方、情報処理装置１００は、デバイス制御装置２００から個体識別情報３０１を受信すると（ステップＳ３０１でＹｅｓ）、メモリなどに個体識別情報３０１の登録を行う（ステップＳ３０２）。
【００５３】
情報処理装置１００は、取得した個体識別情報３０１のうち、デバイスディスクリプタに記述されたベンダーＩＤ（ＶＩＤ）と製品ＩＤ（ＰＩＤ）、ストリングディスクリプタに記述されたシリアル番号とデバイス名称によってデバイス３００の個体を識別する。また、インターフェースディスクリプタに記述されたインターフェース番号を識別する。このようにして識別されたデバイス３００の個体に関する情報に基づいて、仮想化制御部１０３の生成（ステップＳ３０３）、デバイスドライバの生成（ステップＳ３０４）を動的に行う。
【００５４】
その後、情報処理装置１００は、アプリケーション１０１を起動し、アプリケーション１０１からドライバソフトウェア部品を制御するためのインターフェース（アプリケーション／ドライバインターフェース）を起動する（ステップＳ３０５）。このようにして、情報処理装置１００はデバイス３００の仮想化制御を実行する。
【００５５】
情報処理装置１００は、デバイス３００の仮想化制御を実行後、デバイス制御装置２００に接続要求を送信して、デバイス制御装置２００とセッションを接続し、データ送受信を行う（ステップＳ３０６）。
【００５６】
＜仮想化制御時のデバイス制御装置２００の処理について＞
図４は、図１に示すデバイス制御装置２００における仮想化制御に関する処理および報知処理を説明するためのフローチャートである。
【００５７】
初めにデバイス制御装置２００が、デバイス制御装置２００自身に接続されたデバイス３００を情報処理装置１００に仮想化制御させる処理について説明する。
デバイス制御部２０３は、デバイス３００の接続検知の有無（接続検知・接続未検知）を判断する（ステップＳ４０１）。デバイス３００の接続を検知しなかった場合（ステップＳ４０１でＮｏ）、ステップＳ４０１に戻り、デバイス３００の接続検知の有無に関する処理を継続する。
【００５８】
デバイス制御部２０３は、デバイス３００が接続されたことを検知した場合（ステップＳ４０１でＹｅｓ）、デバイス３００から個体識別情報を取得し、個体識別情報をデバイス管理情報に記憶する。その後、デバイス制御部２０３は、個体識別情報３０１を参照し、予め設定した所定の条件（例：デバイス３００のクラス情報を参照して、ＨＩＤクラスならば、報知部１を設定する）に応じて、または、入力部２５２を介して入力された報知関連情報（報知設定および報知デバイス）を設定する（ステップＳ４０２）。
【００５９】
なお、デバイス制御装置２００がデバイスから個体識別情報を取得する毎にユーザによって情報処理装置１００、デバイス制御装置２００、および、デバイス３００から報知関連情報を設定・更新してもよい。また、個体識別情報３０１に含まれるクラスに関する情報、インターフェースに関する情報、ベンダーＩＤ、製品ＩＤなどを参照し、ユーザによって予め設定された条件（例：デバイス３００のクラス情報を参照して、ＨＩＤクラスならば、報知部１を設定する）に基づいて、報知関連情報を設定・更新するようにしてもよい。
【００６０】
デバイス制御装置２００は、デバイス３００の個体識別情報３０１を情報処理装置１００に送信し、情報処理装置１００にデバイス３００の仮想化制御を開始させる。その後、デバイス制御装置２００は、情報処理装置１００からの接続要求の受信に応じて、情報処理装置１００とセッションを接続して、データ送受信を開始する（ステップＳ４０３）。ここまでは、デバイス制御装置２００においてデバイス３００を情報処理装置１００に仮想化制御させる処理について説明した。
【００６１】
次に、デバイス制御装置２００がデバイス３００の操作を検出した後に報知部２５６に報知を行わせるための通知を行う処理について説明する。
仮想化制御部２０２は、情報処理装置１００からデバイス３００を制御するためのデータ（以下、デバイス制御データ）を受信したかを判定する（ステップＳ４０４）。仮想化制御部２０２は、情報処理装置１００からデバイス制御データを受信しない場合（ステップＳ４０４でＮｏ）、情報処理装置１００からデバイス制御データを受信するまで待機する。
【００６２】
デバイス制御装置２００において、情報処理装置１００からデバイス制御データを受信した場合（ステップＳ４０４でＹｅｓ）、仮想化制御部２０２は、デバイス制御部２０３を介してデバイス３００へデバイス制御データを転送する（ステップＳ４０５）。
【００６３】
仮想化制御部２０２は、デバイス制御部２０３を介してデバイス３００からデバイス制御データに対する応答を受信したかを判定する（ステップＳ４０６）。
仮想化制御部２０２は、デバイス３００から応答を受信しない場合（ステップＳ４０６でＮｏ）、デバイス３００から応答を受信するまで待機する。
【００６４】
仮想化制御部２０２は、デバイス制御部２０３を介してデバイス３００から応答を受信したと判断した場合（ステップＳ４０６でＹｅｓ）、デバイス３００で操作が行われたと認識して、デバイス管理情報２０４を参照し、応答を受信したデバイス３００の報知設定を確認し、報知を行うデバイス３００であるかを判定する（ステップＳ４０７）。
【００６５】
仮想化制御部２０２は、応答を受信したデバイス３００が報知を行う設定のデバイス（報知設定がＯＮである）と判断した場合（ステップＳ４０７でＹｅｓ）、デバイス管理情報２０４を参照し、報知部２５６に報知制御通知を送信する。このとき、仮想化制御部２０２は、デバイス３００の操作に応じた情報処理装置１００へのデータ送信またはこのデータ送信に対する応答を待たずに、報知部２５６に報知制御通知を送信する。その後、報知部２５６は、仮想化制御部２０２からの報知制御通知の受信に応じて、報知を行う（ステップＳ４０８）。
【００６６】
一方、仮想化制御部２０２は、応答を受信したデバイス３００が報知を行わない設定のデバイス（報知設定がＯＦＦである）と判断した場合（ステップＳ４０７でＮｏ）、ステップＳ４０９に進む。
【００６７】
デバイス制御装置２００は、デバイス３００から受信した応答に基づいて、情報処理装置１００へデータを送信する（ステップＳ４０９）。その後、本制御フローを終了する。
【００６８】
上述した各ステップは、以下のように適用することも可能である。
【００６９】
ステップＳ４０２において、デバイス制御装置２００は、情報処理装置１００とデバイス制御装置２００との間で予めレイテンシを計測して記憶し、情報処理装置１００とデバイス制御装置２００のレイテンシに応じて、デバイス管理情報２０４における報知設定のＯＮ／ＯＦＦを切り替える。例えば、レイテンシが所定の範囲内（例：２０ｍ秒未満）であれば、デバイス３００の報知設定をＯＦＦにし、レイテンシが所定の範囲を超える（例：２０ｍ秒以上）であれば、デバイス３００の報知設定をＯＮにする。
【００７０】
ステップＳ４０６において、デバイス制御装置２００はデバイス３００における所定の操作が行われた場合に、ステップＳ４０８において、報知部２５６の報知を行う。例えば、デバイス３００がタッチパネルの場合、シングルタップは、報知部２５６の報知を行わず、ダブルタップは、報知部２５６の報知を行う。
【００７１】
ステップＳ４０６において、仮想化制御部２０２は、デバイス３００に対して連続した所定回数の操作（例：タップ）が所定時間内に行われたことを検出した場合（例えば、ユーザがデバイスの操作に対して応答がないと判断し、連続して操作した場合）、ステップＳ４０８において、初回の操作に対して、報知制御通知を報知部２５６に送信し、２回目以降の操作に対して、報知制御通知を報知部２５６に送信しないようにする。または、２回目以降の操作に対して、情報処理装置１００にデータを送信しないようにする。
【００７２】
ステップＳ４０７において、デバイス制御装置２００は、情報処理装置１００とデバイス制御装置２００との間のレイテンシが所定の範囲内（例：ユーザが設定した許容範囲内）の場合、所定のデバイス３００から応答を受信しても報知部２５６の報知を行わないようにする。これは、ユーザがデバイス３００を操作してから、レイテンシが所定の範囲以内であれば、ユーザが許容できる範囲内と判断し、報知を行わないことで、デバイス３００の操作に応じて、むやみに報知することを防止するためである。
【００７３】
ステップＳ４０８において、仮想化制御部２０２はデバイス３００の操作を検出してから所定時間経過後に報知部２５６に報知制御通知を送信し、報知部２５６による報知を行わせるように制御する。これは、ユーザがデバイス３００を操作した後に（直後に）報知部２５６による報知を行っても、ユーザはデバイス３００の操作に集中していて、報知部２５６による報知にユーザが気づかない（見逃しや聞き逃しの）可能性があり、ユーザによる報知の見逃しや聞き逃しを防止するためである。
【００７４】
上述のように、本発明の第１の実施形態では、デバイス制御装置２００が備える仮想化制御部２０２は、情報処理装置１００に仮想化制御されたデバイス３００の所定の操作を検出した場合、報知部２５６に報知制御通知を送信して報知させることにより、情報処理装置１００とデバイス制御装置２００との間におけるレイテンシの影響による応答遅延から誤操作を防止し、ユーザビリティを向上させることができる。
【００７５】
[第２の実施形態]
次に本発明の第２の実施形態について説明する。第１の実施形態では、デバイス制御装置２００にデバイス３００が外部接続（ＵＳＢ接続）されている場合に、デバイス３００の操作に応じて、報知部２５６の報知を行う例示を説明した。第２の実施形態ではデバイス制御装置２００内のタッチパネルの入力機能および表示機能を内部デバイスとして情報処理装置１００に仮想化制御させ、この内部デバイスの操作に応じて、報知部２５６の報知を行う場合について説明する。
【００７６】
図５は、本発明の第２の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。なお、第１の実施形態と同様の構成については同じ参照番号を付し説明を省略する。
【００７７】
デバイス制御装置２００は、第１の実施形態の構成に加え、仮想デバイス制御部２１３、仮想デバイス管理情報２１４、およびデータ形式変換処理部２１５、入力Ｉ／Ｆ２１６、ディスプレイＩ／Ｆ２１７および内部デバイス２１８を備えている。
【００７８】
内部デバイス２１８は、入力機能および表示機能を備えた入出力装置（例：タッチパネル）であって、内部バスを介してそれぞれ入力Ｉ／Ｆ２１６およびディスプレイＩ／Ｆ２１７に接続される。入力機能はタッチパネルからの入力を処理し、表示機能はタッチパネルへの表示を処理し、情報処理装置１００の操作の際に用いられる。
【００７９】
仮想デバイス制御部２１３は、第１の実施形態で説明したデバイス３００と同様に内部デバイス２１８を識別するために後述する仮想デバイス識別情報（不図示）を生成し、内部デバイス２１８に割り当てる。この仮想デバイス制御部の機能により、内部デバイス２１８は、情報処理装置１００に直接的に接続（ローカル接続）されているように認識させて、制御することができる。
【００８０】
仮想デバイス識別情報は、情報処理装置１００に内部デバイス２１８をデバイス３００と同様に認識させるために用いられる。通常、内部デバイス２１８は、デバイス３００の個体識別情報に相当する情報を有していないので、情報処理装置１００は内部デバイス２１８を認識することができない。
【００８１】
そこで、本実施形態では、第１の実施形態で説明した個体識別情報に相当する仮想デバイス識別情報を入力機能及び表示機能の各々に割り当てて、情報処理装置１００に内部デバイス２１８の入力機能及び表示機能をデバイス３００と同様のＵＳＢデバイスとして認識させる。ここでは、ＵＳＢデバイスのデータ構造を定義する構成情報（以下「ＵＳＢディスクリプタ」と呼ぶ）を疑似的に作成したものを仮想デバイス識別情報とする。なお、仮想デバイス識別情報は、仮想デバイス制御部２１３に予め記憶されたものであるが、仮想デバイス制御部２１３によって生成するようにしてもよい。
【００８２】
仮想デバイス管理情報２１４は、上述した仮想デバイス識別情報および報知関連情報から構成される。なお、仮想デバイス管理情報２１４は、第１の実施形態で説明した図２のデバイス管理情報２０４と同等の情報を有するので、説明および図示を省略する。
【００８３】
情報処理装置１００は、デバイス制御装置２００を介して内部デバイス２１８を仮想化制御し、ユーザがデバイス制御装置２００の内部デバイス２１８（タッチパネル）を操作することで、第１の実施形態と同様に内部デバイス２１８の操作による報知部２５６の報知を行うことができる。また、内部デバイス２１８が表示機能を備えていれば、内部デバイス自身も報知部２５６の一部として機能させることができる。例えば、内部デバイス２１８がタッチパネルならば、タッチパネルの入力操作に応じて、タッチパネルに入力操作があった旨を報知（表示）させることが可能になる。
【００８４】
上述のように、本発明の第２の実施形態では、ユーザによってデバイス制御装置２００の内部デバイス２１８が操作された場合でも、レイテンシの影響による応答遅延から誤操作を防止し、ユーザビリティを向上させることができる。
【００８５】
以上、本発明について実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００８６】
上述した第１の実施形態および第２の実施形態では、報知部２５６によって報知を行うと説明したが、表示部２５３によって報知（デバイス３００または内部デバイス２１８が操作されたことの表示）を行ってもよい。また、報知部２５６と表示部２５３を一緒に報知させるように制御してもよい。例えば、報知部２５６（例：スピーカー）がスピーカーの役割を担って音声を出して音声情報による報知を行い、表示部２５３（例：表示パネル）が表示を行って視覚情報による報知を行うようにしてもよい。
【００８７】
仮想化制御部２０２は、情報処理装置１００からの応答データの受信前後で報知部２５６に対する報知を異ならせるように報知制御通知を送信し、報知部２５６による報知の種類を異ならせるように制御してもよい。例えば、デバイス制御装置２００が情報処理装置１００からの応答データの受信前は、報知部２５６（例：ブザー）による聴覚情報を提供して報知を行い、情報処理装置１００からの応答データの受信後は、報知部２５６（例：ＬＥＤ）や表示部２５３（例：表示パネル）により情報処理装置からの応答受信を完了した旨を視覚情報によって提供して報知を行ってもよい。
【００８８】
報知部２５６は連続して報知を行う場合、同じ報知内容を継続してもよいし、異なる報知内容を報知してもよい。例えば、報知部２５６（例：スピーカー）がブザーの場合、同一のブザー音を継続して発してもよいし、１回毎に異なるブザー音を発するようにしてもよい。
【００８９】
例えば、上記の実施形態の機能の制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【００９０】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラムコード）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。
【００９１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【００９２】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【００９３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【００９４】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【００９５】
１００：情報処理装置
１０１：アプリケーション
１０２：デバイスドライバ
１０３：仮想化制御部
１０４：通信制御部
１１０：記憶部
１５１：ＣＰＵ
１５２：入力部
１５３：表示部
１５４：メモリ
１５５：通信部
２００：デバイス制御装置
２０１：通信制御部
２０２：仮想化制御部
２０３：デバイス制御部
２０４：デバイス管理情報
２１０：記憶部
２１３：仮想デバイス制御部
２１６：入力Ｉ／Ｆ
２１７：ディスプレイＩ／Ｆ
２１８：内部デバイス
２５１：ＣＰＵ
２５２：入力部
２５３：表示部
２５４：メモリ
２５５：通信部
２５６：報知部
３００：デバイス
３０１：個体識別情報
３０２：通信Ｉ／Ｆ
【図１】
2018195209.tif 000003
【図２】
2018195209.tif 000004
【図３】
2018195209.tif 000005
【図４】
2018195209.tif 000006
【図５】
2018195209.tif 000007