説明

情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法

【課題】情報処理装置がネットワークを介してデバイスを制御するデバイス制御システムにおいて、ネットワークにおけるトラフィックの増大を抑え、しかも送信側と受信側の装置でプラットフォームの相違があってもデータ伝送を行うことができるようにする。
【解決手段】情報処理装置11は、上位層のソフトウェアプログラムからデバイスに対する転送要求を受けると、転送要求に含まれるパラメータのうちデバイス制御装置を介してデバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、要求パラメータを除いて転送要求に含まれるパラメータを第1のパラメータとして記憶する。情報処理装置は要求パラメータに対応する応答パラメータを受信すると、記憶した第1のパラメータを付加して転送応答を生成し、上位層のソフトウェアに転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介してプリンタなどのデバイスを制御するための情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法に関する。
【背景技術】
【0002】
従来、LAN(ローカルエリアネットワーク)などのネットワークを介して、情報処理装置がデバイスを制御するデバイス制御システムが知られている。このデバイス制御システムにおいて、ネットワーク上のクライアントPCがプリンタ、ストレージ、又はスキャナなどのデバイスを利用する際には、デバイス制御装置の1つであるデバイスサーバを介して上記のデバイスを共有デバイスとしてアクセスする。
【0003】
一方、クライアントPCがネットワークを介してデバイスを利用する際、クライアントPCにおいてデータをカプセル化(パケット化)してネットワークを介してデバイスサーバに送信するようにしたものがある(例えば、特許文献1参照)。ここでは、デバイスサーバはパケットを受信すると、パケットから上記のデータを取り出してデバイスに送信している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7185136号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、クライアントPCがデータをパケット化してデバイスサーバに送信する際には、例えば、デバイス制御用のデータ(以下制御データという)をクライアントPCとデバイスサーバとの間で送受信する必要がある。
【0006】
一方、クライアントPCは、制御データの送受信を行っていない場合においても、デバイスの状態を管理するためのデータ(以下管理データという)を、デバイスサーバを介しデバイスとの間で送受信する必要がある。つまり、クライアントPCとデバイスサーバとの間では常に管理データの送受信が行われていることがある。
【0007】
従って、管理データおよび制御データをパケット化して送受信すると、データ送受信時以外もネットワークでトラフィックが発生するため、インターネットなど不特定多数が接続するネットワークの場合、このようなトラフィックの影響を無視することができない。
【0008】
加えて、送信側と受信側の装置において、オペレーティングシステム(OS)などのプラットフォームが異なると、データ伝送に必要なパラメータやデータフォーマットが異なる結果、単にデータをパケット化して送受信するだけではデータ伝送を行うことができない場合がある。
【0009】
従って、本発明の目的は、情報処理装置がネットワークを介してデバイスを制御するデバイス制御システムにおいて、ネットワークにおけるトラフィックの増大を抑え、しかも送信側と受信側の装置でプラットフォームの相違があってもデータ伝送を行うことのできる情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法を提供することにある。
【課題を解決するための手段】
【0010】
上記の目的を達成するため、本発明による情報処理装置は、デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置であって、上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第1のパラメータとして記憶する要求パラメータ作成手段と、前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第1のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアに転送する転送応答生成手段と、を有することを特徴とする。
【0011】
本発明によるデバイス制御装置は、ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置であって、前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、当該デバイス転送要求パケットに含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第2のパラメータを生成し、当該生成した第2のパラメータと前記要求パラメータから該当デバイスを制御するための第2の転送要求を生成し、該当するデバイスに送信する転送要求生成手段と、前記デバイスから前記第2の転送要求の応答である第2の転送応答を受信し、当該第2の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成手段と、を有することを特徴とする。
【0012】
本発明によるデバイス制御システムは、上記の情報処理装置と、上記のデバイス制御装置とを有することを特徴とする。
【0013】
本発明による情報処理装置の制御方法は、デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置の制御方法であって、上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第1のパラメータとして記憶する要求パラメータ作成ステップと、前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第1のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアに転送する転送応答生成ステップと、を有することを特徴とする。
【0014】
本発明によるデバイス制御装置の制御方法は、ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置の制御方法であって、前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、当該デバイス転送要求パケットに含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第2のパラメータを生成し、当該生成した第2のパラメータと前記要求パラメータから該当デバイスを制御するための第2の転送要求を生成し、該当するデバイスに送信する転送要求生成ステップと、前記デバイスから前記第2の転送要求の応答である第2の転送応答を受信し、当該第2の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成ステップと、を有することを特徴とする。
【発明の効果】
【0015】
本発明によれば、情報処理装置とデバイス制御装置との間では、デバイスを制御するために必要なパラメータのみが送受信されるので、ネットワークにおけるトラフィックの増大が抑えられ、また、送信側と受信側の装置のプラットフォームの相違があってもデータ伝送を行うことができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態によるデバイス制御システムの一例を示すブロック図である。
【図2】図1に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【図3】図1に示す情報処理装置とデバイスサーバの間で送受信されるパケットデータの構成の一例を示す図である。
【図4】図2に示すデバイス制御システムにおいて転送される要求パラメータ及び応答パラメータについて説明するための図である。
【図5】図1に示すネットワーク13がインターネットである場合のデバイス制御システムの一例を示す図である。
【図6】図5に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【図7】図5に示す情報処理装置とデバイスサーバの間で送受信されるパケットデータの構成の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態によるデバイス制御システムの一例について図面を参照して説明する。
【0018】
<1.第1の実施形態のデバイス制御システム>
図1は本発明の第1の実施の形態によるデバイス制御システムの一例を示すブロック図である。
【0019】
図1において、本発明の第1の実施の形態に係るデバイス制御システムは、情報処理装置11と、デバイス14がローカル接続されるデバイスサーバ12とを備える。情報処理装置11は、デバイスサーバ12とネットワーク13を介して相互に接続されている。なお、ネットワークとして、有線又は無線のいずれを用いるようにしてもよい。
【0020】
図示の例では、デバイスサーバ12には、USB(Universal Serial Bus)インタフェースを備える入出力機器であるデバイス14がUSBインタフェースに準拠した接続ケーブル15(ローカルインタフェース)でローカル接続されている。ここでは、USBインタフェースで接続される例について説明するが、例えば、HDMIやThunderboltなどの他のインタフェースに準拠するインタフェースを用いるようにしてもよい。
【0021】
図示のデバイス14は、例えば、キーボード、マウス、又はカードリーダのような入力機器およびディスプレイなどの表示機器(出力機器)、そして、プリンタなどの単機能周辺機器である。また、デバイス14はプリント機能の他に、スキャン機能、コピー機能、およびストレージ機能などを備えた多機能周辺機器であってもよく、他の入出力機器であってもよい。なお、デバイスサーバ12とデバイス14とは一体化するようにしてもよい。
【0022】
図1に示す例では、情報処理装置11およびデバイスサーバ12がそれぞれ1つ示されているが、複数の情報処理装置および複数のデバイスサーバがネットワーク13を介して接続されている構成であってもよい。また、デバイスサーバ12には複数のデバイスが接続されるようにしてもよい。
【0023】
<2.情報処理装置11の構成>
情報処理装置11は、本発明の情報処理装置の一例であり、例えば、PC(パーソナルコンピュータ)などの装置であって、内部バスで互いに接続されたCPU、入力部、表示部、メモリ、通信部、外部記憶部(何れも不図示)で構成され、ネットワーク13を介してデバイスサーバ12と通信することができる。
【0024】
外部記憶部は、不図示のオペレーティングシステム(以下、OS)、アプリケーション11a、デバイスドライバ11b、デバイス制御部11c、仮想化制御部11d、通信制御部11e等のソフトウェア部品に加えて、各種データが記憶される。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
【0025】
情報処理装置11において、アプリケーション11aはデバイスドライバ11bによってデバイス制御部11c(つまり、情報処理装置自体)に接続されたデバイス(不図示)を制御する。さらに、アプリケーション11aおよびデバイスドライバ11bは、仮想化制御部11dおよび通信制御部11eによって、ネットワーク13を介してデバイスサーバ12に備えられたデバイス制御部12cを遠隔的に制御することで、デバイスサーバ12に接続されているデバイス14を制御する。なお、図1においては、情報処理装置11がデバイス制御部11cを備えているが、このデバイス制御部11cを備えず、デバイスサーバ12に備えられたデバイス制御部12cを制御する構成であってもよい。
【0026】
<3.情報処理装置11のソフトウェア部品の構成>
アプリケーション11aは、仮想化制御部11dに対してデバイス14との接続および切断の指示を行う。また、アプリケーション11aはユーザ操作に応じた要求をデバイスドライバ11bに対して行い、当該要求に対する結果をデバイスドライバ11bから受信する。さらに、アプリケーション11aは仮想化制御部11dに対して、デバイスサーバ12に関するサーバ情報の取得およびデバイスに関するデバイス情報の取得を要求して、当該要求に対する結果を仮想化制御部11dから得る。
【0027】
デバイスドライバ11bは、アプリケーション11aからの要求に応じて後述する第1の転送要求(以下、転送要求1)を生成して、仮想化制御部11dに渡す。
【0028】
なお、デバイス制御部11cに直接接続されたデバイス(不図示)の制御を行う場合には、転送要求1はデバイス制御部11cに渡される。そして、デバイスドライバ11bは、デバイス制御部11c又は仮想化制御部11dから、転送要求1に対する第1の転送応答(以下、転送応答1)を受信して、当該転送応答1をアプリケーション11aに渡す。
【0029】
仮想化制御部11dは、通信制御部11eを介してデバイスサーバ12に接続されたデバイス14を制御するため、あたかもデバイスサーバ12に備えられたデバイス制御部が情報処理装置11に存在するかのように当該デバイス制御部を介してデバイス14を制御する(以下、仮想化制御という)。通信制御部11eは、ネットワーク13と接続してデバイスサーバ12との間の通信を制御する。
【0030】
<4.デバイスサーバ12の構成>
デバイスサーバ12は、本発明のデバイス制御装置の一例であり、内部バスで互いに接続されたCPU、メモリ、通信部、USBインタフェース、及び外部記憶部(何れも不図示)で構成されており、ネットワーク13を介して情報処理装置11と通信すると共に、ローカル接続されているデバイス14と接続ケーブルを介してデータ送受信することができる。
【0031】
外部記憶部は、OS(不図示)、通信制御部12a、仮想化制御部12b、デバイス制御部12c等のソフトウェア部品に加え各種データが記憶される。これらのソフトウェア部品、及び記憶された各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
【0032】
通信制御部12aは、ネットワーク13と接続して情報処理装置11との間の通信を制御する。仮想化制御部12bは、通信制御部12aを介して情報処理装置11の仮想化制御部11dと通信し、デバイス制御部12cを制御する。デバイス制御部12cは、デバイスサーバ12に接続されたデバイス14を制御する。
【0033】
このような構成のデバイス制御システムにおいて、情報処理装置11は、仮想化制御部11dによって、デバイスサーバ12の仮想化制御部12bを介しデバイス制御部12cを遠隔で制御することにより、情報処理装置11にデバイス14がローカル接続されたときと同様に制御することができる。
【0034】
<5.デバイス制御システムのデータ送受信制御のシーケンス>
図2は、図1に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【0035】
<5−1.デバイスサーバ12、デバイス14の識別処理>
まず、情報処理装置11によるデバイスサーバ12、デバイス14の識別処理について説明する。
【0036】
図1および図2を参照して、前述のように、情報処理装置11は、アプリケーション11aによってデバイスサーバ12に関するサーバ情報(サーバ識別情報、サーバ設定情報など)の取得を要求すると、仮想化制御部11dはサーバ情報要求を通信制御部11eに渡す。若しくは、仮想化制御部11dが内蔵メモリに既にサーバ情報を記憶している場合には、当該サーバ情報をアプリケーション11aに返送する。
【0037】
また、アプリケーション11aからデバイス14を識別するために必要なデバイス情報(デバイス識別情報、デバイス構成、種別など)の取得を要求すると、仮想化制御部11dは通信制御部11eにデバイス情報要求を渡す。若しくは、仮想化制御部11dが内蔵メモリに既にデバイス情報を記憶している場合には、デバイス情報をアプリケーション11aに返送する。通信制御部11eは、仮想化制御部11dからサーバ情報要求(図3(a))又はデバイス情報要求(図3(c))を受けると、当該サーバ情報要求又はデバイス情報要求をデバイスサーバ12にネットワーク13を介して送信する。
【0038】
図3(a)は、サーバ情報要求のパケットデータの構成例であり、署名、サイズ(データサイズ)、およびコマンドID(サーバ情報要求であることを示すID)を有しており、情報処理装置11からデバイスサーバ12に送信されるパケットデータである。また、図3(c)は、デバイス情報要求のパケットデータの構成例であり、署名、サイズ(データサイズ)、およびコマンドID(デバイス情報要求であることを示すID)を有しており、情報処理装置11からデバイスサーバ12に送信されるパケットデータである。
【0039】
デバイスサーバ12は、情報処理装置11からサーバ情報要求(図3(a))を、通信制御部12aを介して受けると、仮想化制御部12bは、当該デバイスサーバ12を識別するためのサーバ識別情報およびサーバの設定状態を示すサーバ設定情報を含むサーバ情報応答(図3(b))を生成し、通信制御部12aを介して情報処理装置11に送信する。
【0040】
また、デバイスサーバ12で電源がオンされた場合又はデバイスサーバ12の設定が変更された場合も仮想化制御部12bはサーバ情報応答を、通信制御部12aを介して情報処理装置11に送信する。
【0041】
図3(b)は、サーバ情報応答のパケットデータの構成例であり、署名、サイズ、コマンドID(サーバ情報応答であることを示すID)、サーバ識別情報(IPアドレス又はMACアドレスなど)、およびサーバ設定情報(暗号化設定およびポート番号など)を有しており、デバイスサーバ12から情報処理装置11に送信されるパケットデータである。
【0042】
情報処理装置11は、通信制御部11eを介してサーバ情報応答を受けると、当該サーバ情報応答を仮想化制御部11dに渡す。仮想化制御部11dは当該サーバ情報応答に含まれるサーバ情報を内蔵メモリに記憶する。
【0043】
また、デバイスサーバ12の仮想化制御部12bは、情報処理装置11からデバイス情報要求(図3(c))を、通信制御部12aを介して受けると、デバイス制御部12cによってデバイス14と接続して、デバイス14からデバイス情報(VID/PID/デバイスディスクリプタなど)を取得する。そして、仮想化制御部12bは当該デバイス情報を含むデバイス情報応答(図3(d))を生成し、通信制御部12aを介して情報処理装置11に送信する。
【0044】
なお、上記のデバイス情報応答の送信は、デバイスサーバ12にデバイス14が接続された際およびデバイス14が取り外された際にも行われる。
【0045】
図3(d)は、デバイス情報応答のパケットデータの構成例であり、署名、サイズ、コマンドID(デバイス情報応答であることを示すID)、デバイス識別情報(VID/PIDなど)、デバイス構成情報(デバイス構成:デバイスディスクリプタなど)、および種別(デバイスの接続/切断など状態変化を識別するための情報)を有しており、デバイスサーバ12から情報処理装置11に送信されるパケットデータである。
【0046】
情報処理装置11の仮想化制御部11dは、通信制御部11eからデバイス情報応答を受けると、当該デバイス情報応答に含まれるデバイス情報を内蔵メモリに記憶する。そして、仮想化制御部11dは、通信制御部11eからデバイス情報応答を受信すると、情報処理装置11に当該デバイスが接続されたとして通信制御部11eによって接続処理(Plug&Play)を実行する。
【0047】
ここでは、通信制御部11eは、仮想化制御部11dから通信を指示されると、仮想化制御部11dから受領したサーバ情報に基づいて、デバイスサーバ12と情報処理装置11とをネットワーク13を介して接続する。
【0048】
このようにして、情報処理装置11は、デバイスサーバ12及びデバイス14を識別し、デバイスサーバ12を介してデバイス14とデータ転送が可能な状態となる。
【0049】
<5−2.データ送受信制御>
続いて、情報処理装置11とデバイス14がデバイスサーバ12を介してデータ転送を実行するシーケンスについて説明する。情報処理装置11では、デバイスドライバ11bがアプリケーション11aからの要求に応じて、デバイス14に係るパラメータを要求する第1の転送要求(以下、転送要求1)を生成して、仮想化制御部11dに渡す。仮想化制御部11dは転送要求1からデバイスサーバ12のデバイス制御部12cに渡すパラメータのみを要求パラメータとして取り出し、この要求パラメータとともにデバイスを特定するためのデバイス識別情報を含んだデバイス転送要求(図3(e))を生成し、通信制御部11eは当該デバイス転送要求をデバイスサーバ12に送信する。
【0050】
図3(e)は、デバイス転送要求のパケットデータの構成例であり、署名、サイズ(データサイズ)、コマンドID(デバイス転送要求であることを示すID)、デバイスサーバ12に接続されているデバイスを一意に特定するためのデバイス識別情報、および要求パラメータを有しており、情報処理装置11からデバイスサーバ12に送信されるパケットデータである。
【0051】
デバイスサーバ12は、通信制御部12aを介して情報処理装置11からデバイス転送要求(図3(e))を受けると、仮想化制御部12bによって当該デバイス転送要求に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイス14を特定する。そして、仮想化制御部12bはデバイス転送要求に含まれる要求パラメータを、デバイスサーバ12のデバイス制御部12cに渡すデータ形式に変換して第2の転送要求(以下、転送要求2)を生成し、デバイス制御部12cに渡す。デバイス制御部12cは、この転送要求2に基づいてデバイス通信パケット(要求)を生成して、当該デバイス通信パケット(要求)をデバイス14に送信する。
【0052】
そして、デバイスサーバ12は、デバイス14からデバイス通信パケット(応答)を、デバイス制御部12cを介して受信すると、このデバイス通信パケット(応答)に応じた応答情報(以下、転送応答2)を仮想化制御部12bに送る。仮想化制御部12bは、転送応答2から要求パラメータに応じたパラメータのみを応答パラメータとして取り出し、この応答パラメータを含むデバイス転送応答(図3(f))を生成して、通信制御部12aを介して情報処理装置11に送信する。
【0053】
図3(f)は、デバイスサーバ12から情報処理装置11に送信されるデバイス転送応答のパケットデータの構成例であり、署名、サイズ、コマンドID(デバイス転送応答であることを示すID)、デバイス識別情報、および応答パラメータを有している。デバイス識別情報は、デバイスサーバ12に接続されているデバイスを一意に特定するため付加される。
【0054】
情報処理装置11は、デバイスサーバ12からデバイス転送応答(図3(f))を受けると、通信制御部11eは仮想化制御部11dに当該デバイス転送応答を渡す。そして、仮想化制御部11dはデバイス転送応答に含まれている応答パラメータを所定のデータ形式に変換した第1の転送応答(以下、転送応答1)をデバイスドライバ11bに送り、デバイスドライバ11bは、転送応答1をアプリケーション11aに渡す。
【0055】
このようにして、情報処理装置11とデバイス14は、デバイスサーバ12を介してデータ転送を実行する。そして、情報処理装置11の仮想化制御部11dから通信終了を指示されると、通信制御部11eはデバイスサーバ12との接続を断とする。
【0056】
<6.要求パラメータ、応答パラメータについて>
ここで、上述の要求パラメータ及び応答パラメータについて詳細に説明する。
【0057】
図4は、図2に示すデバイス制御システムにおいて転送される要求パラメータ及び応答パラメータについて説明するための図(一例)である。
【0058】
まず、要求パラメータについて説明する。図2で説明したように、情報処理装置11のデバイスドライバ11bは、アプリケーション11aから要求に応じて転送要求1を生成する。この転送要求1には、例えば、ハンドル(制御対象を識別するための番号など)、サイズ(データサイズ)、バッファ(バッファアドレス)、転送種別(転送方式)、インタフェース(インタフェースの種別)、およびタイムアウト(応答待ち時間)がパラメータとして含まれる。
【0059】
情報処理装置11の仮想化制御部11dは転送要求1を受けると、デバイスサーバ12のデバイス制御部12cに渡すパラメータ(以下、要求パラメータ)のみを取り出す。この要求パラメータは、コマンドIDに応じて予め定まっている。そして、要求パラメータ以外のパラメータは内蔵メモリに格納しておく。ここでは、ハンドル、バッファ、およびタイムアウト(これらは所定のパラメータである)を内蔵メモリに格納して、サイズ、転送種別、およびインタフェースを要求パラメータとして取り出し、この要求パラメータとデバイスを特定するためのデバイス識別情報を含むデバイス転送要求を生成してデバイスサーバ12に送信する。
【0060】
デバイスサーバ12において、デバイス転送要求を受けると、仮想化制御部12bは、当該デバイス転送要求に含まれているデバイス識別情報からデバイス14を特定するとともに、デバイス制御部12cに渡すデータ形式に変換するために必要なパラメータ(デバイス14に係る管理情報、バッファ、タイムアウト、およびワークエリア)を生成する。なお、デバイス識別情報は内蔵メモリに記憶しておく。そして、仮想化制御部12bは、この生成したパラメータとデバイス転送要求に含まれている要求パラメータ(サイズ、転送種別、インタフェース)から転送要求2を生成し、この転送要求2をデバイス制御部12cに送る。デバイス制御部12cは、この転送要求2に応じたデバイス通信パケット(要求)を生成し、これを特定したデバイス14に送る。
【0061】
次に、応答パラメータについて説明する。デバイス14からのデバイス通信パケット(応答)を、デバイス制御部12cを介して受信すると、デバイス制御部12cはこれに応じた転送応答2を仮想化制御部12bに送る。転送応答2には、デバイス14に係る管理情報、サイズ、バッファ(データ)、転送種別、インタフェース、タイムアウト、およびワークエリアなどのパラメータが含まれている。仮想化制御部12bでは要求パラメータおよび転送要求2を参照して、転送応答2から要求パラメータに応じたパラメータのみを応答パラメータとして取り出す。ここでは、転送応答2からサイズ、転送種別、インタフェース、およびバッファ(データ)を応答パラメータとして取り出す。なお、バッファ(データ)にはデバイス14からのデータ(処理結果、応答など)が格納されている。そして、仮想化制御部12bはこの応答パラメータと内蔵メモリに記憶しておいたデバイス識別情報を含んだデバイス転送応答を生成し、通信制御部12aによって情報処理装置11に送信する。
【0062】
情報処理装置11において、仮想化制御部11dは通信制御部11eを介してデバイス転送応答を受けると、当該デバイス転送の応答パラメータ(サイズ、転送種別、インタフェース、およびバッファ(データ))に内蔵メモリに記憶されたハンドルおよびタイムアウトを付加して、所定のデータ形式に変換した転送応答1を生成し、デバイスドライバ11bに送り、デバイスドライバ11bは、転送応答1をアプリケーション11aに渡す。
【0063】
このようにして、情報処理装置11に備えられた仮想化制御部11dでは、デバイスドライバ11bからの転送要求1に応じて、デバイスサーバ12から取得すべきパラメータのみを要求パラメータとしてデバイスサーバ12に送る。一方、デバイスサーバ12に備えられた仮想化制御部12bでは要求パラメータに応じて転送要求2を生成して、デバイス14に係るパラメータを取得する。そして、仮想化制御部12bは要求パラメータに応じた応答パラメータのみを情報処理装置11に送信する。
【0064】
従って、情報処理装置11とデバイスサーバ12との間では、デバイス14を制御するために必要なパラメータのみが送受信されるため、ネットワーク13におけるトラフィックの増加を抑えることができる。加えて、転送要求および転送応答のデータフォーマットは、それぞれ情報処理装置11およびデバイスサーバ12に依存しているが、情報処理装置11およびデバイスサーバ12との通信においては、デバイスを制御するために必要なパラメータのみを取り出して送受信するので、プラットフォームの依存性を低減することができる。
【0065】
<8.第2の実施の形態によるデバイス制御システム>
図5は、本発明の第2の実施の形態に係るデバイス制御システムの一例でありであり、図1に示すネットワーク13がインターネットなど外部のネットワークを介して接続する場合のデバイス制御システムの一例を示す図である。
【0066】
図5において、図1に示す構成要素と同一の構成要素については同一の参照番号を付して、説明を省略する。
【0067】
インターネット51を介して情報処理装置11とデバイスサーバ12とを接続する際には、デバイスサーバ12に対して、情報処理装置11を一意に識別するための情報(グローバルIP/URLなど)および接続に必要な情報(暗号化/ポート番号/プロキシ情報など)を予め設定しておく。
【0068】
また、情報処理装置11がデバイス14を制御する際には、情報処理装置11からデバイスサーバ12に接続を行うが、図示のように、デバイスサーバ12とインターネット51との間にプロキシサーバ52が介在する場合には、プロキシサーバ52によって情報処理装置11からデバイスサーバ12へのアクセスが遮断される場合があり、デバイスサーバ12やデバイス14の情報(サーバ情報、デバイス情報)を取得できず、情報処理装置11は仮想化制御を行うことができなくなるため、本実施例では、まず、デバイスサーバ12から情報処理装置11に対してサーバ情報、デバイス情報を送り、情報処理装置11がこのサーバ情報、デバイス情報によってデバイスサーバ12、デバイス14を識別してから通信可能となるように構成される。
【0069】
<9.図5のデバイス制御システムにおけるデータ送受信制御のシーケンス>
図6は、図5に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【0070】
図6において、例えば、デバイスサーバ12において、電源がオンされると、仮想化制御部12bは、通信制御部12aによってプロキシサーバ52を経由してインターネット51を介して情報処理装置11と接続する(サーバ情報およびデバイス情報用のセッションで接続する)。続いて、仮想化制御部12bはサーバ情報応答を生成し、通信制御部12aでインターネットプロトコルに応じたデータ形式に変換した当該サーバ情報応答(図7(a))を情報処理装置11に対して送信する。
【0071】
図7(a)は、サーバ情報応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ(データサイズ)、コマンドID(サーバ情報要求であることを示すID)、デバイスサーバ識別情報、およびデバイスサーバ設定情報を有しており、デバイスサーバ12から情報処理装置11に送信されるパケットデータである。
【0072】
情報処理装置11は、このサーバ情報応答(図7(a))によってデバイスサーバ12を識別し、この応答としてサーバ情報応答の空レスポンスを仮想化制御部11dによって生成し、通信制御部11eを介してデバイスサーバ12に送信する。
【0073】
デバイスサーバ12は、サーバ情報応答の空レスポンスを受信すると、仮想化制御部12bがデバイス制御部12cによってデバイス情報を得て、デバイス情報応答を生成し、通信制御部12aでインターネットプロトコルに応じたデータ形式に変換した当該デバイス情報応答(図7(b))を情報処理装置11に送信する。
【0074】
図7(b)は、デバイス情報応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ(データサイズ)、およびコマンドID(デバイス情報要求であることを示すID)、デバイス識別情報、デバイス構成情報、および種別を有しており、デバイスサーバ12から情報処理装置11に送信されるパケットデータである。
【0075】
情報処理装置11は、このデバイス情報応答(図7(b))によってデバイス14を識別し、この応答としてデバイス情報応答の空レスポンスを仮想化制御部11dによって生成し、通信制御部11eを介してデバイスサーバ12に送信する。
【0076】
このように、デバイスサーバ12が情報処理装置11にサーバ情報応答、デバイス情報応答を送信してサーバ情報、デバイス情報を情報処理装置11に通知することで、情報処理装置11は、デバイス14を仮想化制御することができる。
【0077】
デバイスサーバ12からサーバ情報、デバイス情報を情報処理装置11に通知する機会としては、次のような機会がある。デバイスサーバ12の電源がオンされた場合、デバイスサーバ12の設定が変更された場合、デバイスサーバ12にデバイス14が接続された場合などである。なお、デバイスサーバ12は、情報処理装置11からのサーバ情報応答の空レスポンス、デバイス情報応答の空レスポンスを受信するまで、サーバ情報応答、デバイス情報応答の送信リトライ処理を実行する。
【0078】
デバイスサーバ12では、情報処理装置11からデバイス情報応答の空レスポンスを受信すると、データ送受信制御を開始する。まず、仮想化制御部12bが通信制御部12aを介して情報処理装置11に対してデバイス転送要求用セッションとデバイス転送応答用セッション(2つのセッション)を要求し、情報処理装置11と接続する。そして、接続が完了すると、仮想化制御部12bは、通信制御部12aを介してデバイス転送要求のための空リクエストを情報処理装置11に送る。情報処理装置11は、通信制御部11eを介してこの空リクエストを受信することで、データ送受信制御を開始する。
【0079】
以後、データ送受信を行っている間は、図2で説明したシーケンスと同様であり、情報処理装置11のデバイスドライバ11bがアプリケーション11aからの要求に応じて、デバイス14に係るパラメータを要求する転送要求1を生成して、仮想化制御部11dに渡す。仮想化制御部11dは転送要求1に応じてデバイス転送要求を生成し、通信制御部11eでインターネットプロトコルに応じたデータ形式に変換した当該デバイス転送要求(図7(c))をデバイスサーバ12に送信する。
【0080】
図7(c)は、デバイス転送要求のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ(データサイズ)、コマンドID(デバイス転送要求であることを示すID)、デバイス識別情報、および転送パラメータ(要求)を有しており、情報処理装置11からデバイスサーバ12に送信されるパケットデータである。
【0081】
デバイスサーバ12は、デバイス転送要求(図7(c))を受けると、仮想化制御部12bは当該デバイス転送要求(インターネットプロトコルヘッダ除く)に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイスを特定する。そして、デバイス転送要求に含まれる要求パラメータに応じて、転送要求2を生成し、特定したデバイスを指定して転送要求2をデバイス制御部12cに渡す。デバイス制御部12cは、転送要求2に基づいてデバイス通信パケット(送信)を生成して、当該デバイス通信パケット(送信)をデバイス14に送信する。
【0082】
そして、デバイスサーバ12は、デバイス14からデバイス通信パケット(応答)を、デバイス制御部12cを介して受信すると、このデバイス通信パケット(応答)に応じた応答情報(以下、転送応答2)を仮想化制御部12bに送る。仮想化制御部12bは、転送応答2から要求パラメータに応じたパラメータのみを応答パラメータとして取り出し、デバイス転送応答を生成して、通信制御部12aでインターネットプロトコルに応じたデータ形式に変換した当該デバイス転送応答(図7(d))を情報処理装置11に送信する。
【0083】
図7(d)は、デバイス転送応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ、コマンドID(デバイス転送応答であることを示すID)、デバイス識別情報、および転送パラメータ(応答)を有しており、デバイスサーバ12から情報処理装置11に送信されるデータパケットである。
【0084】
情報処理装置11は、デバイスサーバ12からデバイス転送応答(図7(d))を受けると、通信制御部11eは仮想化制御部11dに当該デバイス転送応答(インターネットプロトコルヘッダ除く)を渡す。そして、仮想化制御部11dはデバイス転送応答を第1の転送応答(転送応答1)としてデバイスドライバ11bに送る。そして、仮想化制御部11dによってデバイス転送応答のための空レスポンスを生成し、通信制御部11eを介してデバイスサーバ12に送信する。この「デバイス転送応答のための空レスポンス」は、データ送受信開始時にデバイスサーバ12から受信した「デバイス転送要求のための空リクエスト」の応答として生成される。
【0085】
デバイスサーバ12は、この空レスポンスを受けると、次のデバイス転送要求のための空リクエストを情報処理装置11に送り、インターネット51を介したデータ送受信が順次実行される。
【0086】
情報処理装置11またはデバイスサーバ12の何れかの装置から終了信号を送ることにより、データ送受信を終了させる。
【0087】
なお、本発明のデバイス制御システムでは、アプリケーション層のプロトコル、例えば、HTTP(HyperText Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、FTP(File Transfer Protocol)などのプロトコルを用いて通信することが可能であり、インターネット上にあるネットワーク機器に特殊な設定することなく通信を行える。
【0088】
また、リクエスト(要求)に対してレスポンス(応答)が受信されると、次のリクエスト(要求)を送るというプロトコル(例えば、HTTPなど)で通信する場合、レスポンス(応答)がないと次のリクエスト(要求)を実行できないため、レスポンス(応答)が遅いとデータ転送が滞ってしまうことがある。そのため、本実施例のように2つのセッションを使ってデバイス転送要求はデバイス転送要求用セッションで行い、デバイス転送応答はデバイス転送応答用セッションで行うようにして、要求送信と応答受信の処理を分けることで、データ転送の遅滞を低減するとともに、データ転送処理の高速化を図ることができる。
【0089】
以上のように、本発明の実施の形態によれば、インターネットなど外部のネットワークを介して接続する場合であっても、実施例1と同様、ネットワークにおけるトラフィックの増大を抑え、しかも情報処理装置11とデバイスサーバ12にプラットフォームの相違があってもデータ伝送することができる。
【0090】
上述の説明から明らかなように、図1、図5に示す例では、仮想化制御部11dおよび通信制御部11eが要求パラメータ作成手段および転送応答生成手段として機能する。さらに、通信制御部12a、仮想化制御部12b、およびデバイス制御部12cが転送要求生成手段および応答パラメータ作成手段として機能する。そして、仮想化制御部11dおよび通信制御部11eは識別情報取得手段として機能する。
【0091】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【0092】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置およびデバイス制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、この制御プログラムを情報処理装置およびデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【0093】
この際、情報処理装置の制御方法および制御プログラムの各々は、少なくとも要求パラメータ作成ステップおよび転送応答生成ステップを有することになる。また、デバイス制御装置の制御方法および制御プログラムの各々は、少なくとも転送要求生成ステップおよび応答パラメータ作成ステップを有することになる。
【0094】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0095】
11 情報処理装置
12 デバイスサーバ(デバイス制御装置)
13 ネットワーク
14 デバイス
11a アプリケーション
11b デバイスドライバ
11c,12c デバイス制御部
11d,12b 仮想化制御部
11e,12a 通信制御部

【特許請求の範囲】
【請求項1】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置であって、
上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第1のパラメータとして記憶する要求パラメータ作成手段と、
前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第1のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアに転送する転送応答生成手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記デバイス制御装置に関する装置識別情報および前記デバイスに係るデバイス識別情報を前記デバイス制御装置から取得する識別情報取得手段を有することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記デバイス転送要求には、少なくとも前記要求パラメータおよび前記デバイス識別情報が含まれていることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置であって、
前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、当該デバイス転送要求パケットに含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第2のパラメータを生成し、当該生成した第2のパラメータと前記要求パラメータから該当デバイスを制御するための第2の転送要求を生成し、該当するデバイスに送信する転送要求生成手段と、
前記デバイスから前記第2の転送要求の応答である第2の転送応答を受信し、当該第2の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成手段と、
を有することを特徴とするデバイス制御装置。
【請求項5】
前記デバイス転送応答には、少なくとも前記応答パラメータおよび前記デバイス識別情報が含まれていることを特徴とする請求項4に記載のデバイス制御装置。
【請求項6】
前記デバイス制御装置は、前記情報処理装置との間で前記デバイス転送要求を転送するための第1のセッションと、前記情報処理装置との間で前記デバイス転送応答を転送するための第2のセッションを接続してデータ送受信すること
を特徴とする請求項4に記載のデバイス制御装置。
【請求項7】
請求項1乃至3のいずれかに記載の情報処理装置と、請求項4乃至6のいずれかに記載のデバイス制御装置とを有することを特徴とするデバイス制御システム。
【請求項8】
前記デバイス制御装置は、前記情報処理装置へデバイス転送要求用の空リクエストを送信することにより、データ送受信を開始することを特徴とする請求項7に記載のデバイス制御システム。
【請求項9】
前記情報処理装置は、前記デバイス制御装置に対してデバイス転送応答用の空レスポンスを送信することにより、デバイス転送要求のための空リクエストを要求し、
を特徴とする請求項8に記載のデバイス制御システム。
【請求項10】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置の制御方法であって、
上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第1のパラメータとして記憶する要求パラメータ作成ステップと、
前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第1のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアに転送する転送応答生成ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項11】
ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置の制御方法であって、
前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、当該デバイス転送要求パケットに含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第2のパラメータを生成し、当該生成した第2のパラメータと前記要求パラメータから該当デバイスを制御するための第2の転送要求を生成し、該当するデバイスに送信する転送要求生成ステップと、
前記デバイスから前記第2の転送要求の応答である第2の転送応答を受信し、当該第2の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成ステップと、
を有することを特徴とするデバイス制御装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate