(57)【要約】【課題】情報処理装置とデバイス制御装置との間の仮想化制御で用いる通信路を用いて、情報処理装置およびデバイス制御装置のアプリケーションを連携させてデバイスを制御する。【解決手段】情報処理装置１００は、デバイス３００がローカル接続されたデバイス制御装置２００にネットワーク５００を介して接続されており、仮想化制御部１００Ｄはデバイス制御装置との間に通信路１５０を確立し、デバイス制御装置に接続されたデバイスを仮想化制御する。アプリケーション１００Ａは所定の制御経路を選択し、仮想化制御されたデバイス又はデバイス制御装置を制御する。そして、仮想化制御ＡＰＩ１００Ｂはアプリケーション１００Ａに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェースを提供する。【選択図】図１
2014123265.tif 000002
【特許請求の範囲】
【請求項１】
デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、
前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、
前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、
前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、
前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、
前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、
前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、
を有することを特徴とするデバイス制御装置。
【請求項３】
前記第二の装置制御手段は、前記第二の制御手段からの第一の要求に応じて、前記情報処理装置によるデバイスの仮想化制御の開始又は停止を行うことを特徴とする請求項２に記載のデバイス制御装置。
【請求項４】
請求項１に記載の情報処理装置と請求項２又は３に記載のデバイス制御装置とを備えるデバイス制御システムであって、
前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第一の制御経路であり、
前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第一の制御経路を選択して、前記第二の制御手段とデータの送受信を行うとともに、
前記第二の制御手段の指示により、前記第一の制御経路を選択して、前記第一の制御手段とデータの送受信を行うことを特徴とするデバイス制御システム。
【請求項５】
請求項１に記載の情報処理装置と請求項２又は３に記載のデバイス制御装置とを備えるデバイス制御システムであって、
前記制御経路は、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第二の制御経路であり、
前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により、前記第二の制御経路を選択して、前記第一の仮想化制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
【請求項６】
請求項１に記載の情報処理装置と請求項２又は３に記載のデバイス制御装置とを備えるデバイス制御システムであって、
前記デバイス制御装置は、さらに前記デバイス制御装置内部を制御する装置制御手段を備え、
前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記装置制御手段とを経由する第三の制御経路であり、
前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第三の制御経路を選択して、前記装置制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
【請求項７】
前記デバイス制御装置は、さらに前記デバイスを制御するデバイス制御手段を備え、
前記装置制御手段は、前記デバイス制御手段以外の前記デバイス制御装置内部を制御することを特徴とする請求項６に記載のデバイス制御システム。
【請求項８】
デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置の制御方法であって、
前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御ステップと、
前記第一の仮想化制御ステップによって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御ステップと、
前記第一の仮想化制御ステップによって前記通信路が確立された場合、前記第一の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置の制御方法であって、
前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御ステップと、
前記第二の仮想化制御ステップによって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御ステップと、
前記第二の仮想化制御ステップによって前記通信路が確立された場合、前記第二の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御ステップと、
を有することを特徴とするデバイス制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを介して接続された情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムに関する。
【背景技術】
【０００２】
一般に、パーソナルコンピュータなどの情報処理装置（以下ＰＣと呼ぶ）をクライアントとして、ネットワークを介して当該クライアントがプリンタ、ストレージ、およびスキャナなどのデバイス（周辺機器）を利用するシステムが知られている。このようなシステムにおいて、クライアントがネットワーク上のデバイスをローカル接続されたデバイスとして仮想的に認識して、ネットワーク上のクライアントからデバイスをアクセスできるようにしたものがある。
【０００３】
例えば、本出願人は、ＬＡＮなどのネットワークに接続されたデバイスサーバ（デバイス制御装置）にローカル接続されたデバイスを、ネットワーク上のクライアントから制御するため、デバイスサーバのデバイス制御部（ホストコントローラ）をＰＣから制御できるようにしたデバイス制御システムを提案している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特願２０１１−２２３４５９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したデバイス制御システムにおいて、クライアントによって制御されるのはデバイスサーバのデバイス制御部（ホストコントローラ）であり、例えば、デバイスサーバにローカル接続されたデバイスをリセットする際には、デバイス制御部以外のハードウェアを制御する必要がある。また、クライアントにインストールされたアプリケーション（上位層のプログラム）からデバイスサーバに導入されているアプリケーションを連携させてデバイスを制御したいことがある。
【０００６】
このような場合、クライアントとデバイスサーバとの間に新たな通信路が必要となるので、まず、ネットワークリソースを確保しなければならない。さらに、使用するネットワークポートの重複を判定するなどの処理を行った上で、通信路を生成するので、接続に時間がかかってしまう。
【０００７】
そこで、本発明の目的は、クライアントとデバイスサーバとの間の仮想化制御で用いる通信路を用いて、クライアントおよびデバイスサーバのアプリケーションを連携させてデバイスを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
【０００８】
さらに、本発明の他の目的は、デバイスサーバのデバイス制御部以外のデバイスサーバ内部のソフトウェア、ハードウェア、およびファームウェアを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明による情報処理装置は、デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、を有することを特徴とする。
【００１０】
本発明によるデバイス制御装置は、ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、情報処理装置とデバイス制御装置との間の仮想化制御で用いる通信路を用いて、情報処理装置およびデバイス制御装置を連携させてデバイスを制御することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態によるデバイス制御システムの一例を概略的に示すブロック図である。
【図２】図１に示すデバイス制御システムにおいて制御経路を介してセッションの接続／切断、データ送信／受信、装置制御部への要求（リセット）、デバイスの接続／切断、および仮想化制御の開始／停止を説明するためのシーケンス図である。
【図３】本発明の第２の実施形態によるデバイス制御システムにおいてデバイス制御装置から仮想化制御を開始する際のシーケンスを説明するための図である。
【図４】本発明の第３の実施形態によるデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１４】
［第１の実施形態］
＜＜システム構成＞＞
図１は、本発明の第１の実施形態によるデバイス制御システムの一例を概略的に示すブロック図である。なお、図１ではデバイス制御システムの一例である印刷システムが示されている。
【００１５】
図示の印刷システムでは、情報処理装置１００およびデバイス制御装置２００がネットワーク５００を介して互いに接続されている。また、デバイス制御装置２００およびデバイス３００が接続ケーブル４００を介して互いに接続されている。
【００１６】
なお、図示の例では、情報処理装置１００は、例えば、パーソナルコンピュータ（ＰＣ）であり、デバイス制御装置２００は、例えば、複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である。
【００１７】
≪各装置の内部構成（ソフトウェア／ハードウェア構成）≫
＜情報処理装置１００の構成＞
情報処理装置１００は、一般的なパーソナルコンピュータが備えるハードウェア構成として、図示はしないが、ＣＰＵ、入力部、表示部、メモリ、および記憶部などを備え、これらは内部バスで相互に接続されている。
【００１８】
ＣＰＵは情報処理装置１００の各部を制御するための中央処理装置である。入力部は、例えば、キーボードおよびマウスなどの操作部である。表示部は、例えば、液晶モニタなどの表示装置である。メモリは、ＲＡＭおよびＲＯＭなどの記憶装置である。記憶部は、ハードディスクドライブなどの記憶装置である。
【００１９】
記憶部には、ソフトウェアとして、図示しないオペレーティングシステム（以下ＯＳと呼ぶ）、通信制御部１００Ｅ、仮想化制御部１００Ｄ、仮想化制御ＡＰＩ１００Ｂ、デバイスドライバ１００Ｃ、およびアプリケーション１００Ａが格納されている。そして、これら通信制御部１００Ｅ、仮想化制御部１００Ｄ、仮想化制御ＡＰＩ１００Ｂ、デバイスドライバ１００Ｃ、およびアプリケーション１００Ａはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００２０】
アプリケーション１００Ａは、デバイスドライバ１００Ｃを介してデバイス３００を制御するソフトウェアである。また、アプリケーション１００Ａは仮想化制御ＡＰＩ１００Ｂを介して仮想化制御および仮想化制御で用いる通信路による制御を行うためのソフトウェアである。
【００２１】
仮想化制御ＡＰＩ１００Ｂは、アプリケーション１００Ａに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を提供する。
【００２２】
インターフェースの具体例は、通信開始／停止および仮想化制御開始／停止、アプリケーション２００Ａとの間のデータ送信／受信、後述する装置制御部２００Ｆへの制御要求の指示を行うとともに、仮想化制御部１００Ｄによって検知される情報処理装置１００内部の動作状態の変化およびデバイス制御装置２００から送られる動作状態の変化を受信するためのインターフェース等である。
【００２３】
デバイスドライバ１００Ｃは、ＯＳやアプリケーション１００Ａなど上位層のソフトウェアの指示により、デバイス３００に対する制御コマンドを生成し、この制御コマンドに対する応答を待ち、応答を上位のソフトウェアへ通知するソフトウェアである。
【００２４】
仮想化制御部１００Ｄは、デバイス３００が情報処理装置１００にあたかも直接的に接続されているかのように制御するソフトウェアである。また、仮想化制御部１００Ｄは仮想化制御ＡＰＩ１００Ｂが提供するインターフェースによって指示された制御を行う。
【００２５】
通信制御部１００Ｅは、情報処理装置１００をＬＡＮ又はＷＡＮ（有線又は無線ネットワーク）に接続するためのインターフェースであり、これによって、情報処理装置１００はデバイス制御装置２００とのデータ送受信を行うことが可能となる。
【００２６】
＜デバイス制御装置２００の構成＞
デバイス制御装置２００は、図示はしないが、情報処理装置１００と同様にＣＰＵ、入力部、表示部、メモリ、および記憶部などを備え、これらが相互に内部バスで接続されている。
【００２７】
記憶部には、ソフトウェアであるＯＳ（図示せず）、通信制御部２００Ｅ、装置制御部２００Ｆ、仮想化制御部２００Ｄ、仮想化制御ＡＰＩ２００Ｂ、およびデバイス制御部２００Ｃ、アプリケーション２００Ａが格納されている。そして、これらＯＳ、通信制御部２００Ｅ、装置制御部２００Ｆ、仮想化制御部２００Ｄ、仮想化制御ＡＰＩ２００Ｂ、およびデバイス制御部２００Ｃ、アプリケーション２００Ａはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００２８】
アプリケーション２００Ａは、デバイス制御装置２００に所定の機能を実行させるためのソフトウェアである。またアプリケーション２００Ａは仮想化制御ＡＰＩ２００Ｂを介して情報処理装置１００のアプリケーション１００Ａと連携してデバイス３００を制御することができる。
【００２９】
仮想化制御ＡＰＩ２００Ｂは、アプリケーション２００Ａに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェースを提供する。そして、仮想化制御ＡＰＩ２００Ｂはアプリケーション２００Ａからの指示に基づいて仮想化制御部２００Ｄに制御要求を行い、仮想化制御部２００Ｄが検知する動作状態の変化をアプリケーション２００Ａに通知する。
【００３０】
インターフェースの具体例は、通信開始／停止および仮想化制御開始／停止、アプリケーション１００Ａとの間のデータ送信／受信、および装置制御部２００Ｆへの制御要求の指示を行うとともに、仮想化制御部２００Ｄによって検知されるデバイス制御装置２００内部の動作変化およびデバイス３００の動作変化を受信してアプリケーション２００Ａに通知するためのインターフェース等である。
【００３１】
デバイス制御部２００Ｃは、接続ケーブル４００を介して接続されているデバイス３００を制御する。
【００３２】
仮想化制御部２００Ｄは、デバイス３００が情報処理装置１００に直接的に接続されているかのように制御するためのソフトウェアである。また、仮想化制御部２００Ｄは仮想化制御ＡＰＩ２００Ｂが提供するインターフェースによって指示された制御を行う。
【００３３】
通信制御部２００Ｅは、デバイス制御装置２００をＬＡＮ又はＷＡＮなど（有線又は無線ネットワーク）に接続するためのインターフェースであり、これによって、デバイス制御装置２００は情報処理装置１００とデータ送受信を行うことが可能となる。
【００３４】
装置制御部２００Ｆは、デバイス制御装置２００のデバイス制御部２００Ｃ以外のデバイス制御装置２００内部のソフトウェア、ハードウェア、およびファームウェアを制御するための部品（デバイス制御装置の機種によって異なる）である。
【００３５】
＜デバイス３００の構成＞
デバイス３００は、ＵＳＢケーブルなどによってデバイス制御装置２００に接続される。デバイス３００は、例えば、ＩＣカードリーダ又はストレージなどの周辺装置であり、情報処理装置１００と同様に、ＣＰＵ、入力部、メモリ、通信制御部、および記憶部などを有しており、これらは相互に内部バスで接続されている。
【００３６】
なお、図１に示すデバイス制御システムでは、１つの情報処理装置１００およびデバイス制御装置２００が示されているが、ネットワーク５００上の情報処理装置１００およびデバイス制御装置２００の台数は図示の例に限定されるものではない。また、情報処理装置１００は、ＰＣに限定されるものではなく、例えば、携帯電話機又はモバイル端末機であってもよい。
【００３７】
また、図１に示す例では、デバイス制御装置２００およびデバイス３００はそれぞれ別の装置として構成されているが、デバイス３００をデバイス制御装置２００のケーシングに収まるようにして一体構造としてもよい。
【００３８】
さらに、デバイス制御装置２００およびデバイス３００が備える通信インターフェースは、ＵＳＢ又はＨＤＭＩに限定されるものではなく、Ｔｈｕｎｄｅｒｂｏｌｔなど他の通信インターフェースに準拠したものであってもよい。
【００３９】
≪制御経路の説明≫
図１に示すデバイス制御システムにおいては通信路１５０で情報処理装置１００およびデバイス制御装置２００が接続される。そして、図示の例では、通信路１５０には制御経路０〜３が規定される。
【００４０】
破線で示す通信路１５０は、情報処理装置１００がデバイス３００を仮想化制御する際にデバイス制御装置２００との間で確立される通信路である。二点鎖線で示す制御経路０は通信路１５０を介してデバイス３００を仮想化制御する際の経路である。
【００４１】
また、実線で示す制御経路１〜３は情報処理装置１００のアプリケーション１００Ａおよびデバイス制御装置２００のアプリケーション２００Ａが通信路１５０を用いて相手側を制御する際の経路である。制御経路１〜３のいずれを用いるかは、通信（セッション）の接続／切断、データ送信／受信、装置制御部への要求（リセット）、デバイスの接続／切断、および仮想化制御の開始／停止などの制御内容に応じて、アプリケーション１００Ａおよびアプリケーション２００Ａが指定し、それぞれ仮想化制御ＡＰＩ１００Ｂと仮想化制御ＡＰＩ２００Ｂに対して指示する。
【００４２】
≪システムおよび装置の動作フローとシーケンスの説明≫
図２は、図１に示すデバイス制御システムにおいて制御経路０〜３を介して通信（セッション）の接続／切断、データ送信／受信、装置制御部への要求（リセット）、デバイスの接続／切断、および仮想化制御の開始／停止を説明するためのシーケンス図である。
【００４３】
＜１＞デバイス制御装置によるデバイス接続状態の検知
まず、デバイス制御装置２００のアプリケーション２００Ａが仮想化制御部２００Ｄによって検知された動作状態の変化を受信するまでのシーケンスについて説明する。なお、ここでは、デバイス制御装置２００にデバイス３００が接続されたことを動作状態の変化として説明する。
【００４４】
いま、デバイス３００をデバイス制御装置２００に接続すると（ステップＳ００１）、デバイス制御部２００Ｃはデバイス３００の接続を検知して、その旨を仮想化制御部２００Ｄに通知する（ステップＳ００２）。続いて、仮想化制御部２００Ｄは、検知したデバイス接続を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ００３）。そして、仮想化制御ＡＰＩ２００Ｂはアプリケーション２００Ａにデバイス接続を通知する（ステップＳ００４）。
【００４５】
アプリケーション２００Ａは、デバイス接続の通知を受けると、例えば、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）を点灯（点滅）させるか又はＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示部にその旨を表示して、デバイス３００がデバイス制御装置２００に接続されたことを報知する（ステップＳ００５：表示更新）。
【００４６】
＜２＞情報処理装置１００によるデバイス接続状態の検知
次に、情報処理装置１００のアプリケーション１００Ａが、上述したデバイス制御装置２００の仮想化制御部２００Ｄで検知された動作状態の変化（デバイス３００の接続）を受信するまでのシーケンスについて説明する。
【００４７】
Ｓ０１１では、デバイス制御装置２００の仮想化制御部２００Ｄで検知したデバイス接続が通信制御部２００Ｅによって情報処理装置１００に通知される（ステップＳ０１１）。情報処理装置１００の通信制御部１００Ｅはデバイス接続の通知を受信すると、当該デバイス接続の通知を、仮想化制御部１００Ｄを介して仮想化制御ＡＰＩ１００Ｂに通知する（ステップＳ０１２）。そして、仮想化制御ＡＰＩ１００Ｂはアプリケーション１００Ａにデバイス接続を通知する（ステップＳ０１３）。
【００４８】
続いて、アプリケーション１００Ａはディスプレイなどの表示部によって、デバイス制御装置２００にデバイス３００が接続された旨を表示する（ステップＳ０１４）。
【００４９】
このようにして、情報処理装置１００のアプリケーション１００Ａは、仮想化制御ＡＰＩ１００Ｂを介して、デバイス制御装置２００におけるデバイス３００の接続という動作状態の変化を検知して、ディスプレイなどの表示部にデバイスが接続された旨を表示することが可能となる。
【００５０】
＜３＞情報処理装置によるデバイス仮想化制御開始
前述のように、ステップＳ０１３で接続通知を受けると、情報処理装置１００ではアプリケーション１００Ａがデバイス３００の仮想化制御開始のタイミングと判定して、仮想化制御ＡＰＩ１００Ｂに仮想化制御の開始を指示する（ステップＳ０２１）。そして、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００Ｄに仮想化制御の開始を指示する（ステップＳ０２２）。ここで、情報処理装置１００の通信制御部１００Ｅとデバイス制御装置２００の通信制御部２００Ｅとの間に通信路１５０が確立される。
【００５１】
これによって、仮想化制御部１００Ｄは、上述したステップＳ０１１で受信したデバイス接続の情報に応じて、情報処理装置１００にデバイス３００が直接的に接続されたかのように仮想化制御を行う。
【００５２】
このようにして、情報処理装置１００は、デバイス３００を仮想化制御するため、ネットワーク５００に接続されているデバイス制御装置２００との間で通信路１５０（図１に破線で示す）を確立して、当該通信路１５０を介して接続されたデバイス制御装置２００を介して、デバイス３００が直接的に接続されているかのように制御することができるようになる。
【００５３】
＜４＞情報処理装置による通信開始
続いて、デバイス３００の仮想化制御を開始した情報処理装置１００が指定したタイミングでデバイス３００との間でデータ通信を開始するまでのシーケンスについて説明する。なお、ここでは、ユーザからの指示によって暗号化通信によりデータ通信を開始する場合を例に挙げて説明する。
【００５４】
情報処理装置１００には、予め接続可能なデバイス３００に関する情報（例えば、ベンダーＩＤ又はプロダクトＩＤ）、設定可能なデータの暗号化方式（例えば、ＡＥＳ：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、通信プロトコル（例えば、ＳＳＬ：Ｓｅｃｕｒｅ  ＳｏｃｋｅｔＬａｙｅｒ）、およびデジタル証明書などに係る情報が格納されている。そして、ユーザはこれらの情報を入力装置（図示せず）によって選択することができ、デバイス、暗号化種別、および証明書が複数存在する場合には指定が可能となる。
【００５５】
ユーザが暗号化通信指示を行うと、情報処理装置１００のアプリケーション１００Ａは仮想化制御ＡＰＩ１００Ｂに対してＳＳＬ暗号化を指定して通信開始を指示する（ステップＳ０３１）。これによって、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００Ｄに対してＳＳＬセッションの接続を指示する（ステップＳ０３２）。
【００５６】
続いて、仮想化制御部１００Ｄは通信制御部１００Ｅによってデバイス制御装置２００の通信制御部２００Ｅとの間でＳＳＬセッションを確立する（ステップＳ０３３）。
【００５７】
これによって、情報処理装置１００とデバイス３００とがデバイス制御装置２００を介してデータ通信可能な状態となる。
【００５８】
＜５＞デバイスの仮想化制御（情報処理装置からデバイスへ）
次に、図１に示す情報処理装置１００によるデバイス３００の仮想化制御について説明する。ここでは、図１に示す制御経路０によって制御が行われる。
【００５９】
情報処理装置１００から制御要求をデバイス３００に送信する際、アプリケーション１００Ａからの制御要求は、デバイスドライバ１００Ｃ、仮想化制御部１００Ｄ、および通信制御部１００Ｅを経由してデバイス制御装置２００に送信される。
【００６０】
具体的には、アプリケーション１００Ａからデバイスドライバ１００Ｃへ転送要求を送信する（ステップＳ０４１）。デバイスドライバ１００Ｃはアプリケーション１００Ａから転送要求を受け取ってデバイス３００に係るパラメータを要求する第１の転送要求を生成して、仮想化制御部１００Ｄに渡す（ステップＳ０４２）。
【００６１】
仮想化制御部１００Ｄは、第１の転送要求からデバイス制御装置２００の仮想化制御部２００Ｄに渡すパラメータのみを要求パラメータとして取り出す。そして、仮想化制御部１００Ｄは当該要求パラメータとともにデバイス３００を特定するためのデバイス識別情報を含むデバイス転送要求を生成する。続いて、通信制御部１００Ｅは当該デバイス転送要求をデバイス制御装置２００に送信する（ステップＳ０４３）。
【００６２】
一方、デバイス制御装置２００は、通信制御部２００Ｅを介して情報処理装置１００からデバイス転送要求を受けると、仮想化制御部２００Ｄによって当該デバイス転送要求に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイス３００を特定する。そして、仮想化制御部２００Ｄはデバイス転送要求に含まれる要求パラメータを、デバイス３００のデバイス制御部に渡すデータ形式に変換して第２の転送要求を生成して、デバイス制御部２００Ｃに渡す（ステップＳ０４４）。
【００６３】
デバイス制御部２００Ｃは、この転送要求に基づいてデバイス通信要求を生成して、当該デバイス通信要求をデバイス３００に送信する（ステップＳ０４５）。
【００６４】
このようにして、デバイス制御装置２００は、受信したデバイス転送要求に応じて、通信制御部２００Ｅ、仮想化制御部２００Ｄ、およびデバイス制御部２００Ｃを介して、デバイス通信要求を接続ケーブル４００で接続されたデバイス３００に送信する。
【００６５】
＜６＞デバイスの仮想化制御（デバイスから情報処理装置へ）
デバイス３００は、デバイス制御装置２００からデバイス通信要求を受信すると、デバイス通信要求に応じたデバイス通信応答をデバイス制御装置２００に送る（ステップＳ０５１）。デバイス制御装置２００ではデバイス制御部２００Ｃを介して受信したデバイス通信応答に応じた第２の転送応答を仮想化制御部２００Ｄに送る（ステップＳ０５２）。
【００６６】
仮想化制御部２００Ｄは第２の転送応答から要求パラメータに応じたパラメータのみを応答パラメータとして取り出して、当該応答パラメータを含むデバイス転送応答を生成する。そして、仮想化制御部２００Ｄは通信制御部２００Ｅを介して、デバイス転送応答を情報処理装置１００に送信する（ステップＳ０５３）。
【００６７】
情報処理装置１００では、通信制御部１００Ｅがデバイス制御装置２００からデバイス転送応答を受けると、当該デバイス転送応答を仮想化制御部１００Ｄに渡す。そして、仮想化制御部１００Ｄはデバイス転送応答に含まれている応答パラメータを所定のデータ形式に変換した第１の転送応答をデバイスドライバ１００Ｃに送る（ステップＳ０５４）。続いて、デバイスドライバ１００Ｃは第１の転送応答をアプリケーション１００Ａに渡す（ステップＳ０５５）。
【００６８】
このようにして、デバイス３００からの応答は、図１に示す制御経路０によって、情報処理装置１００のアプリケーション１００Ａに送られる。ここで、アプリケーション１００Ａから仮想化制御ＡＰＩ１００Ｂに対して通信終了が指示されると、仮想化制御ＡＰＩ１００Ｂは通信制御部１００Ｅによってデバイス制御装置２００との接続を切断する。
【００６９】
＜７＞情報処理装置からデバイス制御装置へのカードＩＤ送信
次に、情報処理装置１００のアプリケーション１００Ａとデバイス制御装置２００のアプリケーション２００Ａとを連携させて相手装置にデータ／制御要求を送る際のシーケンスについて説明する。
【００７０】
ここでは、情報処理装置１００をＰＣ、デバイス制御装置２００をＭＦＰ、デバイス３００をＩＣカードリーダとする。また、情報処理装置１００によって仮想化制御されているデバイス３００との間でデータの送受信が可能な状態にあり、デバイス３００で取得したカードＩＤを情報処理装置１００で読み取り、デバイス制御装置２００で認証する場合を例に挙げて説明する。
【００７１】
この場合には、情報処理装置１００とデバイス３００との間におけるデータの送受信は、図１に示す制御経路０によって上述したステップＳ０４１〜Ｓ０５５と同様のデータ送受信処理が行われる。
【００７２】
具体的には、デバイス３００にＩＣカードがかざされると、デバイス３００はＩＣカードからカードＩＤを取得して、当該カードＩＤをデバイス制御装置２００に送る。デバイス制御装置２００はカードＩＤをＳＳＬ暗号化された通信経路によって情報処理装置１００に送る。
【００７３】
続いて、情報処理装置１００において、アプリケーション１００Ａは、取得したカードＩＤを読み取って（認識して）、次のステップＳ０６１〜Ｓ０７２でデバイス制御装置２００に送り、デバイス制御装置２００において認証を行う。
【００７４】
この場合、情報処理装置１００のアプリケーション１００Ａとデバイス制御装置２００のアプリケーション２００Ａとを連携させて処理を実行させるため、図１に示す制御経路１によってデータの送受信が行われる。
【００７５】
具体的には、情報処理装置１００において、アプリケーション１００Ａが仮想化制御ＡＰＩ１００Ｂに対して、デバイス制御装置２００のアプリケーション２００Ａにデータ送信（以下カードＩＤ送信という）を指示する（ステップＳ０６１）。
【００７６】
次に、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００ＤにカードＩＤの送信を要求する（ステップＳ０６２）。仮想化制御部１００Ｄは通信制御部１００Ｅを介してデバイス制御装置２００にカードＩＤ送信を行う（ステップＳ０６３）。
【００７７】
このようにして、情報処理装置１００では、アプリケーション１００Ａからの制御要求を、仮想化制御ＡＰＩ１００Ｂに送り、仮想化制御ＡＰＩ１００Ｂから仮想化制御部１００Ｄおよび通信制御部１００Ｅを介してデバイス制御装置２００に制御要求（ここでは、カードＩＤ送信）を送信する。
【００７８】
一方、デバイス制御装置２００では、通信制御部２００ＥがカードＩＤを受信して、当該カードＩＤを仮想化制御部２００Ｄに送る。そして、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄからデータ受信（以下カードＩＤ受信という）する（ステップＳ０７１）。仮想化制御ＡＰＩ２００Ｂはアプリケーション２００ＡにカードＩＤ受信を通知する（ステップＳ０７２）。
【００７９】
このようにして、デバイス制御装置２００では、制御経路１によって受信した制御要求を、通信制御部２００Ｅを介して仮想化制御部２００Ｄに送って、仮想化制御部２００Ｄは、仮想化制御ＡＰＩ２００Ｂを介して制御要求（つまりここではカードＩＤ受信）をアプリケーション２００Ａに送る。
【００８０】
このように、デバイス制御装置２００のアプリケーション２００Ａは、情報処理装置１００のアプリケーション１００Ａとデータ送受信を実行する際に、新たな通信路を用いることなく、既に仮想化制御で使用されている通信路１５０を用いてカードＩＤを送受信することが可能となる。
【００８１】
＜８＞デバイス制御装置から情報処理装置へのエラー通知
ここで、デバイス制御装置２００のアプリケーション２００Ａにおいて、上述したカードＩＤの認証処理でエラーを検出した場合について説明する。この場合は、図１に示す制御経路１によって、デバイス制御装置２００から情報処理装置１００に対してデータ（エラー検出）が送られる。
【００８２】
具体的には、デバイス制御装置２００において、アプリケーション２００Ａは、例えば、上述したようにカードＩＤを受信したが、デバイス制御装置２００に備えられた認証データベースに当該カードＩＤが存在しないなどの理由によってエラーが発生すると、当該エラーを検出して、自装置の表示部などに認証エラーである旨を報知する（ステップＳ０７３）。
【００８３】
また、デバイス制御装置２００では、アプリケーション２００Ａが認証エラーを通知すべく、仮想化制御ＡＰＩ２００Ｂにデータ送信（以下認証エラーの通知という）を指示する（ステップＳ０８１）。そして、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄに認証エラーの通知を要求する（ステップＳ０８２）。
【００８４】
続いて、仮想化制御部２００Ｄは通信制御部２００Ｅを介して情報処理装置１００に認証エラーの通知を行う（ステップＳ０９１）。
【００８５】
このようにして、デバイス制御装置２００では、図１に示す制御経路１によってアプリケーション２００Ａからのデータ／制御要求を、仮想化制御ＡＰＩ２００Ｂに送り、仮想化制御ＡＰＩ２００Ｂから仮想化制御部２００Ｄおよび通信制御部２００Ｅを介して情報処理装置１００に認証エラーの通知を行う。
【００８６】
一方、情報処理装置１００では、仮想化制御部１００Ｄが通信制御部１００Ｅを介して認証エラーの通知を受信して、当該認証エラーの通知を受信した旨を仮想化制御ＡＰＩ１００Ｂに通知する（ステップＳ０９２）。そして、仮想化制御ＡＰＩ１００Ｂはアプリケーション１００Ａに認証エラーの通知を受信した旨を通知する（ステップＳ０９３）。
【００８７】
このように、情報処理装置１００のアプリケーション１００Ａとデバイス制御装置２００のアプリケーション２００Ａとの間で新たな通信路を用いることなく、既に仮想化制御で使用している通信路１５０（ＳＳＬセッション）によって情報処理装置１００およびデバイス制御装置２００の各々においてオペレーションの結果などを受信することが可能となる。
【００８８】
＜９＞情報処理装置の通信停止
続いて、情報処理装置１００においてアプリケーション１００Ａによって指定されたタイミングで通信停止するシーケンスについて、上述のステップＳ０９３において認証エラーが通知された場合を例に挙げて説明する。
【００８９】
情報処理装置１００では、デバイス制御装置２００のアプリケーション２００Ａから送られた認証エラーの通知により認証エラーを検出して（ステップＳ０９４）、認証エラーの通知に応じて、アプリケーション１００Ａが仮想化制御ＡＰＩ１００Ｂに対して通信停止を指示する（ステップＳ１０１）。
【００９０】
このとき、情報処理装置１００では、アプリケーション１００Ａは、例えば、ディスプレイなどの表示部でエラーを表示するか又はブザーなどの音声部（図示せず）によってエラーを報知する。
【００９１】
続いて、仮想化制御ＡＰＩ１００Ｂが仮想化制御部１００Ｄに対して、通信路（ＳＳＬセッション）の切断を指示する（ステップＳ１０２）。そして、仮想化制御部１００Ｄは通信制御部１００Ｅによってデバイス制御装置２００の通信制御部２００Ｅとの通信路（ＳＳＬセッション）を切断する（ステップＳ１０３）。
【００９２】
＜１０＞情報処理装置によるデバイスのリセット
ここでは、上述したステップＳ０９４〜Ｓ１０２に続いて、情報処理装置１００では、アプリケーション１００Ａがユーザによって指定されたタイミングでデバイス制御装置２００の装置制御部２００Ｆを制御して、デバイス３００の再接続（リセット）を実施する場合を例に挙げて説明する。
【００９３】
この場合には、情報処理装置１００ではアプリケーション１００Ａがデバイス制御装置２００の仮想化制御部２００Ｄを介して装置制御部２００Ｆ（デバイス制御部２００Ｃ以外のデバイス制御装置２００内部のソフトウェア、ハードウェア、ファームウェアを制御するための部品）を制御する。この際、図１に示す制御経路３によって制御が行われる。
【００９４】
具体的には、前述のように、ステップＳ０９４において、情報処理装置１００ではアプリケーション１００Ａがエラー表示を行う。ユーザは当該エラー表示に応じてアプリケーション１００Ａ上のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いてリセットを指示する。
【００９５】
ユーザのリセット指示に応じて、アプリケーション１００Ａは仮想化制御ＡＰＩ１００Ｂにリセットを指示する（ステップＳ１１１）。続いて、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００Ｄにリセットを指示する（ステップＳ１１２）。
【００９６】
これによって、仮想化制御部１００Ｄは通信制御部１００Ｅを介して、デバイス制御装置２００（ＭＦＰ）に装置制御要求（リセット）を送信する（ステップＳ１１３）。デバイス制御装置２００（ＭＦＰ）では、仮想化制御部２００Ｄが通信制御部２００Ｅを介して装置制御要求（リセット）を受信する。
【００９７】
続いて、デバイス制御装置２００（ＭＦＰ）では、仮想化制御部２００Ｄが装置制御部２００Ｆに対してリセットを指示する（ステップＳ１１４）。
【００９８】
ここでは、装置制御部２００Ｆは、図１に示すデバイス制御部２００Ｃでは制御できないハードウェアバスに対する制御を行う。例えば、デバイス３００には、ハイサイドスイッチ（以下ＵＳＢハイサイドスイッチという）によってＵＳＢインターフェースを介して供給される電源の電流の大きさが制限されており、装置制御部２００Ｆは当該ＵＳＢハイサイドスイッチにリセットの指示を送る。これによって、装置制御部２００ＦはＵＳＢハイサイドスイッチをオフ／オン制御して、デバイス制御部２００Ｃ（ＵＳＢホストコントローラ）をリセットする。
【００９９】
つまり、装置制御部２００Ｆを制御することによって、デバイス３００とデバイス制御装置２００とを接続する接続ケーブル４００を物理的に挿抜するのと同様のことを行うことができる。
【０１００】
なお、上述のＵＳＢハイサイドスイッチばかりでなく、情報処理装置１００の仮想化制御ＡＰＩ１００Ｂからデバイス制御装置２００のデバイス制御部２００Ｃ以外のデバイス制御装置２００内部のソフトウェア、ハードウェア、およびファームウェアを制御するために、仮想化制御ＡＰＩを介して装置制御部２００Ｆに指示を行うことができる。
【０１０１】
つまり、自装置のアプリケーションからのデータ／制御要求を、仮想化制御ＡＰＩを介して相手側装置に送信して、相手側装置の仮想化制御部を介して相手側装置内のソフトウェア、ハードウェア、およびファームウェアを制御することができる。これによって、デバイス制御装置２００に備えられた様々な機能と連携してソリューションを行うことができる。
【０１０２】
＜１１＞情報処理装置によるデバイスのリカバリ検知
ここで、上述したステップＳ１１１〜Ｓ１１４の処理によるリセット制御が実施された後のリカバリ動作の例について説明する。
【０１０３】
上述のステップＳ１１１〜Ｓ１１４の処理によるリセット制御によって、デバイス３００との接続が一旦切断されると、デバイス制御装置２００において、デバイス制御部２００Ｃがデバイス３００との接続の切断を検知し（ステップＳ１２１）、その旨を仮想化制御部２００Ｄに通知する（ステップＳ１２２）。
【０１０４】
仮想化制御部２００Ｄはデバイス３００との接続の切断を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ１２３）。そして、仮想化制御ＡＰＩ２００Ｂはアプリケーション２００Ａにデバイス３００との接続の切断を通知する（ステップＳ１２４）。これによって、デバイス制御装置２００はＬＥＤ／ＬＣＤなどの表示部に、デバイス３００との接続が切断された旨を表示する（ステップＳ１２５）。
【０１０５】
また、デバイス制御装置２００では、仮想化制御部２００Ｄが検知したデバイスとの接続の切断を、通信制御部２００Ｅを介して情報処理装置１００に通知する（ステップＳ１３１）。情報処理装置１００では、通信制御部１００Ｅによって受信したデバイスとの接続の切断を、仮想化制御部１００Ｄを介して仮想化制御ＡＰＩ１００Ｂに通知する（ステップＳ１３２）。
【０１０６】
仮想化制御ＡＰＩ１００Ｂはアプリケーション１００Ａにデバイスとの接続の切断を通知する（ステップＳ１３３）。これによって、アプリケーション１００Ａは、ディスプレイなどの表示部にデバイスとの接続が切断された旨を表示する（ステップＳ１３４）。
【０１０７】
続いて、情報処理装置１００では、アプリケーション１００Ａがデバイスとの接続の切断を仮想化制御停止のタイミングと判断して、仮想化制御停止を仮想化制御ＡＰＩ１００Ｂに指示する（ステップＳ１４１）。そして、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００Ｄに仮想化制御停止を指示する（ステップＳ１４２）。これによって、仮想化制御部１００Ｄは、仮想化制御の停止を行うことにより、情報処理装置１００とデバイス３００との接続を切断する。
【０１０８】
デバイス制御装置２００において、上述のステップＳ１１４によるリセット制御でデバイス３００との接続が一旦切断され、再接続されると、デバイス制御部２００Ｃはデバイス３００の再接続を検知して（ステップＳ１５１）、仮想化制御部２００Ｄにその旨の通知を行う（ステップＳ１５２）。そして、仮想化制御部２００Ｄはデバイス３００の接続を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ１５３）。
【０１０９】
続いて、仮想化制御ＡＰＩ２００Ｂはアプリケーション２００Ａにデバイス３００の接続を通知する（ステップＳ１５４）。これによって、デバイス制御装置２００はＬＥＤ／ＬＣＤなどの表示部に、デバイス３００が接続されたことを表示する（ステップＳ１５５）。
【０１１０】
また、デバイス制御装置２００では、仮想化制御部２００Ｄによって検知されたデバイス接続を、通信制御部２００Ｅを介して情報処理装置１００に通知する（ステップＳ１６１）。情報処理装置１００では、通信制御部１００Ｅによって受信したデバイス接続を仮想化制御部１００Ｄを介して仮想化制御ＡＰＩ１００Ｂに通知する（ステップＳ１６２）。
【０１１１】
次に、仮想化制御ＡＰＩ１００Ｂはアプリケーション１００Ａにデバイス接続を通知する（ステップＳ１６３）。これによって、アプリケーション１００Ａは、ディスプレイなどの表示部にデバイス３００が接続されたことを表示する（ステップＳ１６４）。
【０１１２】
続いて、情報処理装置１００では、アプリケーション１００Ａがデバイス接続を仮想化制御開始のタイミングと判断して、仮想化制御開始を仮想化制御ＡＰＩ１００Ｂに指示する（ステップＳ１７１）。これによって、仮想化制御ＡＰＩ１００Ｂは仮想化制御部１００Ｄに仮想化制御開始を指示する（ステップＳ１７２）。仮想化制御部１００Ｄは、情報処理装置１００にデバイス３００が接続されたかのように仮想化制御を開始する。このようにして、アプリケーション１００Ａによるリセットの指示後にデバイス切断／再接続が行われて、アプリケーション１００Ａは仮想化制御の開始をもってリカバリの成功と判断する（ステップＳ１８１）。
【０１１３】
≪第１の実施形態における効果≫
上述のように、本発明の第１の実施形態では、アプリケーション１００Ａおよびアプリケーション２００Ａは新たに通信路を設けることなく、既に仮想化制御で用いられている通信路によってデータの送受信を行うことができる。特に、ネットワークを介して暗号化によって通信を行う必要がある場合に、通信路によって暗号化キー／証明書の交換など暗号化に必要な手続きを行うことができるので、通信を開始するまでの時間を低減することができる。
【０１１４】
また、第１の実施形態で説明したデバイス３００が通信で用いるネットワークポートとして、ＩＡＮＡ（Ｉｎｔｅｒｎｅｔ  Ａｓｓｉｇｎｅｄ  Ｎｕｍｂｅｒ  Ａｕｔｈｏｒｉｔｙ）に登録されているポート番号（Ｒｅｇｉｓｔｅｒｅｄ  Ｐｏｒｔ  Ｎｕｍｂｅｒｓ）が用いられる。このため、新たに通信路を確保する場合には、ユーザが自由に使えるポート番号（Ｐｒｉｖａｔｅ  Ｐｏｒｔ  Ｎｕｍｂｅｒｓ）を用いる。この際、当該ポート番号が既に用いられていることが有り得るので、ポート番号が重複しているか否かを確認する必要がある。前述のように、第１の実施形態では、既に仮想化制御で用いられている通信路によって通信を行うので、ポート番号が重複しているか否かの確認が不要となる。
【０１１５】
そして、仮想化制御で用いられている通信路によって、アプリケーション１００Ａはデバイス３００の切断／接続を判断して、仮想化制御ＡＰＩによって仮想化制御開始／停止を行うことができる。
【０１１６】
さらに、情報処理装置１００におけるユーザ入力などのアプリケーション１００Ａが検知可能なタイミングで、仮想化制御ＡＰＩ１００Ｂを介してデバイス３００、暗号化種別、および証明書を指定してデバイス制御装置２００との通信を開始又は停止することができる。
【０１１７】
加えて、情報処理装置１００におけるユーザ入力などのアプリケーション１００Ａが検知可能なタイミングで、仮想化制御ＡＰＩ１００Ｂを介してデバイス制御装置２００のデバイス制御部２００Ｃ以外のデバイス制御装置２００内部のソフトウェア、ハードウェア、およびファームウェアの制御（例えば、デバイスのリセット）を実行させることができる。
［第２の実施形態］
続いて、本発明の第２の実施形態によるデバイス制御システムの一例について説明する。なお、第２の実施形態によるデバイス制御システムの構成は、図１に示すデバイス制御システムと同様である。
【０１１８】
第２の実施形態においては、デバイス制御装置のアプリケーションが仮想化制御ＡＰＩを用いて情報処理装置と連携して仮想化制御および接続制御を行う点が第１の実施形態と異なる。なお、第１の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
【０１１９】
≪システムおよび装置の動作フローとシーケンスの説明≫
図３は、本発明の第２の実施形態によるデバイス制御システムにおいてデバイス制御装置２００から仮想化制御を開始する際のシーケンスを説明するための図である。
【０１２０】
ここでは、通信路１５０を用いて、デバイス制御装置２００のアプリケーション２００Ａから情報処理装置１００の仮想化制御部１００Ｄを制御する。この際には、図１に示す制御経路２によって制御が実行される。
【０１２１】
なお、図２で説明したステップＳ００１においてデバイス接続が行われ、ステップＳ００５においてデバイス接続を検出するまでのシーケンスは第１の実施形態と同様である。
【０１２２】
＜１２＞デバイス制御装置からの入力による仮想化制御開始
ここでは、デバイス制御装置２００においてアプリケーション２００Ａが情報処理装置１００の仮想化制御部１００Ｄと連携して、指定したタイミングで仮想化制御を開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置２００におけるユーザ入力で開始される。
【０１２３】
デバイス制御装置２００には、予め接続可能な情報処理装置１００に係る情報処理装置情報が格納されており、ユーザは入力装置を用いてデバイス３００と接続先である情報処理装置１００を選択することができる。デバイスおよび情報処理装置が複数存在する場合には、ユーザは任意のデバイスおよび情報処理装置を指定することができる。ここでいう情報処理識別情報とは、情報処理装置１００を識別するための情報である。例えば、情報処理装置１００のコンピュータ名、ＩＰアドレス、ＭＡＣアドレス、シリアルナンバー（製造番号）などであるが、これらに限定されない。さらに、これらの情報を組み合わせたものであってもよい。
【０１２４】
まず、デバイス制御装置２００において、アプリケーション２００Ａがユーザ入力（ここでは、デバイス３００を選択したデバイス情報および情報処理装置１００に係る情報処理装置情報）を受け付ける。そして、アプリケーション２００Ａは、仮想化制御開始を仮想化制御ＡＰＩ２００Ｂにユーザ入力を通知する（ステップＳ２０１）。
【０１２５】
続いて、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄに仮想化制御開始を指示する（ステップＳ２０２）。仮想化制御部２００Ｄは通信制御部２００Ｅを介して仮想化制御開始を情報処理装置１００に送信する（ステップＳ２１１）。そして、仮想化制御部１００Ｄは仮想化制御の接続を行うことにより、ステップＳ２１１で受信したデバイス３００の情報に基づいて情報処理装置１００とデバイス３００との接続を行う（ステップＳ２１２）。
【０１２６】
このようにして、デバイス制御装置２００から任意のデバイスおよび情報処理装置を指定して仮想化制御処理を行うことができる。
【０１２７】
＜１３＞デバイス制御装置からの入力による通信開始
ここでは、デバイス制御装置２００のアプリケーション２００Ａが指定したタイミングで通信開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置２００におけるユーザ入力で開始される。
【０１２８】
デバイス制御装置には、予め接続可能なデバイス３００のデバイス情報と設定可能な暗号化種別・証明書が格納されており、ユーザは入力装置を用いてデバイス３００、暗号化種別（ＳＳＬ／ＡＥＳなど）、および証明書を選択することができる。情報処理装置、デバイス、暗号化種別、および証明書が複数存在する場合には、ユーザは任意のデバイス、情報処理装置、暗号化種別、および証明書を指定することができる。
【０１２９】
まず、デバイス制御装置２００において、アプリケーション２００Ａがユーザ入力（ここでは、デバイス３００を選択したデバイス情報、暗号化種別、および証明書）を受け付ける。これによって、アプリケーション２００Ａは通信開始を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ２２１）。
【０１３０】
仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄに通信開始を指示する（ステップＳ２２２）。続いて、仮想化制御部２００Ｄは通信制御部２００Ｅを介して、アプリケーション２００Ａで指定したデバイス３００が仮想化制御されている情報処理装置１００に、指定した暗号化種別および指定した証明書で通信接続を行う（ステップＳ２３１）。
【０１３１】
このようにして、デバイス制御装置２００から任意のデバイス、情報処理装置、ネットワーク暗号化、および証明書を指定して通信接続を行うことができる。
【０１３２】
なお、仮想化制御接続および通信接続に係るユーザ入力は必ずしも分ける必要はない。また、ステップＳ１２１〜ステップＳ１２５は、第１の実施形態と同様である。
【０１３３】
＜１４＞デバイス制御装置からの入力による通信停止
ここでは、デバイス制御装置２００のアプリケーション２００Ａが指定したタイミングで通信停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置２００におけるユーザ入力で開始される。
【０１３４】
まず、デバイス制御装置２００において、アプリケーション２００Ａはユーザ入力（ここでは、デバイス３００を選択したデバイス情報）を受け付ける。これによって、アプリケーション２００Ａは通信停止を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ２５１）。
【０１３５】
続いて、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄに通信停止を指示する（ステップＳ２５２）。そして、仮想化制御部２００Ｄはデバイス３００が仮想化制御されている情報処理装置１００に通信停止の指示を送信する（ステップＳ２６１）。
【０１３６】
このようにして、デバイス制御装置２００から任意のデバイスおよび情報処理装置を指定して通信停止を行うことができる。
【０１３７】
＜１５＞デバイス制御装置からの入力による仮想化制御停止
ここでは、デバイス制御装置２００のアプリケーション２００Ａが情報処理装置１００の仮想化制御部１００Ｄと連携して、指定したタイミングで仮想化制御を停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置２００におけるユーザ入力で開始される。
【０１３８】
まず、デバイス制御装置２００において、アプリケーション２００Ａがユーザ入力（ここでは、デバイス３００を選択したデバイス情報）を受け付ける。これによって、アプリケーション２００Ａは仮想化制御停止を仮想化制御ＡＰＩ２００Ｂに通知する（ステップＳ２７１）。ここでいうデバイス情報とは、例えば、デバイス３００を識別するための情報であって、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。デバイス３００がデバイス制御装置２００に接続された際などに、デバイス制御部２００Ｃがデバイス３００から取得する情報である。
【０１３９】
続いて、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄに仮想化制御停止を指示する（ステップＳ２７２）。そして、仮想化制御部２００Ｄは、デバイス３００が仮想化制御されている情報処理装置１００に、デバイス３００の仮想化制御停止の指示を送信する（ステップＳ２８１）。これによって、情報処理装置１００では仮想化制御部１００Ｄがデバイス３００の仮想化制御を停止する（ステップＳ２８２）。
【０１４０】
このようにして、デバイス制御装置２００から任意のデバイスおよび情報処理装置を指定して仮想化制御停止処理を行うことができる。なお、仮想化制御停止および通信停止に係るユーザ入力は必ずしも分ける必要はない。
【０１４１】
≪第２の実施形態における効果≫
上述のように、本発明の第２の実施形態では、デバイス制御装置からユーザ入力によって任意のデバイスおよび任意の情報処理装置を選択して仮想化制御開始又は停止を行うことができる。
【０１４２】
また、デバイス制御装置からのユーザ入力によって指定されたデバイスのセッションについて、ネットワーク暗号化の有無（サポート可能暗号化種別／証明書など）を選択して通信接続又は切断処理を行うこともできる。
【０１４３】
［第３の実施形態］
次に、本発明の第３の実施形態によるデバイス制御システムの一例について説明する。なお、第３の実施形態によるデバイス制御システムの構成は、図１に示すデバイス制御システムと同様である。
【０１４４】
本発明の第３の実施形態では、デバイス制御装置のアプリケーションが仮想化制御ＡＰＩを用いてデバイス以外のハードウェア制御を行う点が第１の実施形態と異なる。なお、第１の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
【０１４５】
≪システムおよび装置の動作フローとシーケンスの説明≫
図４は、本発明の第３の実施形態によるデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
【０１４６】
ここでは、デバイス制御装置２００のアプリケーション２００Ａが装置制御部２００Ｆに動作指示を行うシーケンスについて説明する。このシーケンスは、デバイス制御装置２００におけるユーザ入力（デバイスのリセット指示）で開始される。
【０１４７】
なお、図２で説明したステップＳ００１においてデバイス接続が行われ、ステップＳ０７３においてエラー検出を行うまでのシーケンスは第１の実施形態と同様である。
【０１４８】
＜１６＞デバイス制御装置からの入力によるデバイスリセット
デバイス制御装置２００におけるエラー表示（ステップＳ０７３）の情報に応じて、ユーザはデバイス制御装置２００からデバイスリセットを指示する。これによって、アプリケーション２００Ａは仮想化制御ＡＰＩ２００Ｂにリセットを指示する（ステップＳ３０１）。
【０１４９】
続いて、仮想化制御ＡＰＩ２００Ｂは仮想化制御部２００Ｄにリセットを指示する（ステップＳ３０２）。これによって、第１の実施形態と同様にして、仮想化制御部２００Ｄは装置制御部２００Ｆに対してリセットを指示する（ステップＳ１１４）。
【０１５０】
＜１７＞デバイス制御装置の表示部によるリカバリの確認
ステップＳ１２１〜Ｓ１２５においては、第１の実施形態と同様にして、デバイス制御装置２００はデバイス３００との接続が切断されたことを検出して、その旨を表示部に表示する。また、ステップＳ１５１〜Ｓ１５５においては、第１の実施形態と同様して、デバイス制御装置２００はデバイス３００が再接続されたことを検出して、その旨を表示部に表示する。
【０１５１】
続いて、アプリケーション２００Ａはデバイス３００との接続が一旦デバイス制御装置２００から切断された後、再度デバイス制御装置２００に接続されたことによってリカバリの成功と判断する（ステップＳ３１１）。
【０１５２】
なお、第１の実施形態と同様に、仮想化制御も行ってリカバリを判定するようにしてもよい。
【０１５３】
≪第３の実施形態における効果≫
上述のように、本発明の第３の実施形態では、情報処理装置１００からだけでなく、デバイス制御装置２００からユーザ入力などで指定したタイミングでデバイス制御部以外の装置制御（例えば、デバイスのリセットなど）を行うことができる。つまり、自装置の仮想化制御ＡＰＩに対して自装置内の装置制御（ソフトウェア、ハードウェア、およびファームウェア）を制御させることができる。
［その他の実施の形態］
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
【０１５４】
例えば、仮想化制御ＡＰＩを制御経路毎に複数設け、アプリケーションがどの仮想化制御ＡＰＩ（すなわち、制御経路）を用いるかを選択するようにしてもよい。
【０１５５】
例えば、複数台の情報処理装置１００又は複数台のデバイス制御装置２００によってデバイス制御システムを構成するようにしてもよく、情報処理装置１００およびデバイス制御装置２００ともに複数台としてデバイス制御システムを構成するようにしてもよい。
【０１５６】
このような場合には、情報処理装置１００とデバイス制御装置２００との間における仮想化制御で用いる通信路を切り替えて、以下に例示するような処理を含めて様々な制御を行うことができる。
【０１５７】
（１）デバイス制御装置が、通信路Ａを介して情報処理装置Ａからのデータを受信して、デバイス制御装置の仮想化制御ＡＰＩが通信路の切り替えを行い、受信したデータを情報処理装置Ｂとの間の通信路Ｂを介して情報処理装置Ｂに送る。
【０１５８】
（２）情報処理装置が、通信路Ａを介してデバイス制御装置Ａからのデータを受信し、情報処理装置の仮想化制御ＡＰＩで通信路の切り替えを行い、受信したデータをデバイス制御装置Ｂとの間の通信路Ｂを介して情報処理装置Ｂに送る。
【０１５９】
（３）情報処理装置およびデバイス制御装置をそれぞれ複数台で備える場合には、上記の（１）および（２）を組み合わせて制御を行うことも可能である。
【０１６０】
上述のように、本発明の実施の形態では、情報処理装置およびデバイス制御装置に装置制御手段（仮想化制御ＡＰＩ）を設けて、仮想化制御部の上位層であるアプリケーション同士を既に仮想化制御で用いている通信路によって連携させることができる。さらに、情報処理装置に搭載されるアプリケーションからデバイス制御装置の装置制御部を制御することができる。
【０１６１】
なお、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置又はデバイス制御装置に実行させるようにすればよい。
【０１６２】
また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを情報処理装置又はデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。
【０１６３】
なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１６４】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵなど）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１６５】
１００  情報処理装置
１００Ａ，２００Ａ  アプリケーション
１００Ｂ，２００Ｂ  仮想化制御ＡＰＩ
１００Ｃ  デバイスドライバ
１００Ｄ，２００Ｄ  仮想化制御部
１００Ｅ，２００Ｅ  通信制御部
２００  デバイス制御装置
２００Ｃ  デバイス制御部
２００Ｆ  装置制御部
３００  デバイス
１５０  通信路
４００  接続ケーブル
５００  ネットワーク
【図１】
2014123265.tif 000003
【図２】
2014123265.tif 000004
【図３】
2014123265.tif 000005
【図４】
2014123265.tif 000006