(57)【特許請求の範囲】
【請求項１】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置であって、
上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第１のパラメータとして記憶する要求パラメータ作成手段と、
前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第１のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアプログラムに転送する転送応答生成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記デバイス制御装置に関する装置識別情報および前記デバイスに係るデバイス識別情報を前記デバイス制御装置から取得する識別情報取得手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記転送要求には、少なくとも前記要求パラメータおよび前記デバイス識別情報が含まれていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置であって、
前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、受信した転送要求に含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第２のパラメータを生成し、当該生成した第２のパラメータと前記要求パラメータから該当デバイスを制御するための第２の転送要求を生成し、該当するデバイスに送信する転送要求生成手段と、
前記デバイスから前記第２の転送要求の応答である第２の転送応答を受信し、当該第２の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成手段と、
を有することを特徴とするデバイス制御装置。
【請求項５】
前記第２の転送応答には、少なくとも前記応答パラメータおよびデバイス識別情報が含まれていることを特徴とする請求項４に記載のデバイス制御装置。
【請求項６】
前記デバイス制御装置は、前記情報処理装置との間で前記第２の転送要求を転送するための第１のセッションと、前記情報処理装置との間で前記第２の転送応答を転送するための第２のセッションを接続してデータ送受信すること
を特徴とする請求項４に記載のデバイス制御装置。
【請求項７】
請求項１乃至３のいずれかに記載の情報処理装置と、請求項４乃至６のいずれかに記載のデバイス制御装置とを有することを特徴とするデバイス制御システム。
【請求項８】
前記デバイス制御装置は、前記情報処理装置へデバイス転送要求用の空リクエストを送信することにより、データ送受信を開始することを特徴とする請求項７に記載のデバイス制御システム。
【請求項９】
前記情報処理装置は、前記デバイス制御装置に対してデバイス転送応答用の空レスポンスを送信することにより、デバイス転送要求のための空リクエストを要求することを特徴とする請求項８に記載のデバイス制御システム。
【請求項１０】
デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置の制御方法であって、
上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第１のパラメータとして記憶する要求パラメータ作成ステップと、
前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第１のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアプログラムに転送する転送応答生成ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置の制御方法であって、
前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、受信した転送要求に含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第２のパラメータを生成し、当該生成した第２のパラメータと前記要求パラメータから該当デバイスを制御するための第２の転送要求を生成し、該当するデバイスに送信する転送要求生成ステップと、
前記デバイスから前記第２の転送要求の応答である第２の転送応答を受信し、当該第２の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成ステップと、
を有することを特徴とするデバイス制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してプリンタなどのデバイスを制御するための情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法に関する。
【背景技術】
【０００２】
従来、ＬＡＮ（ローカルエリアネットワーク）などのネットワークを介して、情報処理装置がデバイスを制御するデバイス制御システムが知られている。このデバイス制御システムにおいて、ネットワーク上のクライアントＰＣがプリンタ、ストレージ、又はスキャナなどのデバイスを利用する際には、デバイス制御装置の１つであるデバイスサーバを介して上記のデバイスを共有デバイスとしてアクセスする。
【０００３】
一方、クライアントＰＣがネットワークを介してデバイスを利用する際、クライアントＰＣにおいてデータをカプセル化（パケット化）してネットワークを介してデバイスサーバに送信するようにしたものがある（例えば、特許文献１参照）。ここでは、デバイスサーバはパケットを受信すると、パケットから上記のデータを取り出してデバイスに送信している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７１８５１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、クライアントＰＣがデータをパケット化してデバイスサーバに送信する際には、例えば、デバイス制御用のデータ（以下制御データという）をクライアントＰＣとデバイスサーバとの間で送受信する必要がある。
【０００６】
一方、クライアントＰＣは、制御データの送受信を行っていない場合においても、デバイスの状態を管理するためのデータ（以下管理データという）を、デバイスサーバを介しデバイスとの間で送受信する必要がある。つまり、クライアントＰＣとデバイスサーバとの間では常に管理データの送受信が行われていることがある。
【０００７】
従って、管理データおよび制御データをパケット化して送受信すると、データ送受信時以外もネットワークでトラフィックが発生するため、インターネットなど不特定多数が接続するネットワークの場合、このようなトラフィックの影響を無視することができない。
【０００８】
加えて、送信側と受信側の装置において、オペレーティングシステム（ＯＳ）などのプラットフォームが異なると、データ伝送に必要なパラメータやデータフォーマットが異なる結果、単にデータをパケット化して送受信するだけではデータ伝送を行うことができない場合がある。
【０００９】
従って、本発明の目的は、情報処理装置がネットワークを介してデバイスを制御するデバイス制御システムにおいて、ネットワークにおけるトラフィックの増大を抑え、しかも送信側と受信側の装置でプラットフォームの相違があってもデータ伝送を行うことのできる情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明による情報処理装置は、デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置であって、上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第１のパラメータとして記憶する要求パラメータ作成手段と、前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第１のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアプログラムに転送する転送応答生成手段と、を有することを特徴とする。
【００１１】
本発明によるデバイス制御装置は、ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置であって、前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、受信した転送要求に含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第２のパラメータを生成し、当該生成した第２のパラメータと前記要求パラメータから該当デバイスを制御するための第２の転送要求を生成し、該当するデバイスに送信する転送要求生成手段と、前記デバイスから前記第２の転送要求の応答である第２の転送応答を受信し、当該第２の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成手段と、を有することを特徴とする。
【００１２】
本発明によるデバイス制御システムは、上記の情報処理装置と、上記のデバイス制御装置とを有することを特徴とする。
【００１３】
本発明による情報処理装置の制御方法は、デバイスがローカル接続されているデバイス制御装置に、ネットワークを介して接続されている情報処理装置の制御方法であって、上位層のソフトウェアプログラムから前記デバイスに対する転送要求を受けると、当該転送要求に含まれるパラメータのうち前記デバイス制御装置を介して該当デバイスを制御するために必要な所定のパラメータのみを要求パラメータとして取り出して当該デバイスに送信し、前記要求パラメータを除いて前記転送要求に含まれるパラメータを第１のパラメータとして記憶する要求パラメータ作成ステップと、前記要求パラメータに対応する応答パラメータを受信すると、前記記憶した第１のパラメータを付加して転送応答を生成し、前記上位層のソフトウェアプログラムに転送する転送応答生成ステップと、を有することを特徴とする。
【００１４】
本発明によるデバイス制御装置の制御方法は、ネットワークを介して情報処理装置に接続されるとともに、デバイスがローカル接続されているデバイス制御装置の制御方法であって、前記情報処理装置から前記デバイスの制御に必要な所定のパラメータのみを要求パラメータとして受信し、受信した転送要求に含まれる所定の要求パラメータとともに前記デバイスを制御するために必要な第２のパラメータを生成し、当該生成した第２のパラメータと前記要求パラメータから該当デバイスを制御するための第２の転送要求を生成し、該当するデバイスに送信する転送要求生成ステップと、前記デバイスから前記第２の転送要求の応答である第２の転送応答を受信し、当該第２の転送応答から前記要求パラメータに対する応答パラメータを取り出して、前記情報処理装置に送信する応答パラメータ作成ステップと、を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、情報処理装置とデバイス制御装置との間では、デバイスを制御するために必要なパラメータのみが送受信されるので、ネットワークにおけるトラフィックの増大が抑えられ、また、送信側と受信側の装置のプラットフォームの相違があってもデータ伝送を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態によるデバイス制御システムの一例を示すブロック図である。
【図２】図１に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【図３】図１に示す情報処理装置とデバイスサーバの間で送受信されるパケットデータの構成の一例を示す図である。
【図４】図２に示すデバイス制御システムにおいて転送される要求パラメータ及び応答パラメータについて説明するための図である。
【図５】図１に示すネットワーク１３がインターネットである場合のデバイス制御システムの一例を示す図である。
【図６】図５に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【図７】図５に示す情報処理装置とデバイスサーバの間で送受信されるパケットデータの構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１８】
＜１．第１の実施形態のデバイス制御システム＞
図１は本発明の第１の実施の形態によるデバイス制御システムの一例を示すブロック図である。
【００１９】
図１において、本発明の第１の実施の形態に係るデバイス制御システムは、情報処理装置１１と、デバイス１４がローカル接続されるデバイスサーバ１２とを備える。情報処理装置１１は、デバイスサーバ１２とネットワーク１３を介して相互に接続されている。なお、ネットワークとして、有線又は無線のいずれを用いるようにしてもよい。
【００２０】
図示の例では、デバイスサーバ１２には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを備える入出力機器であるデバイス１４がＵＳＢインタフェースに準拠した接続ケーブル１５（ローカルインタフェース）でローカル接続されている。ここでは、ＵＳＢインタフェースで接続される例について説明するが、例えば、ＨＤＭＩやＴｈｕｎｄｅｒｂｏｌｔなどの他のインタフェースに準拠するインタフェースを用いるようにしてもよい。
【００２１】
図示のデバイス１４は、例えば、キーボード、マウス、又はカードリーダのような入力機器およびディスプレイなどの表示機器（出力機器）、そして、プリンタなどの単機能周辺機器である。また、デバイス１４はプリント機能の他に、スキャン機能、コピー機能、およびストレージ機能などを備えた多機能周辺機器であってもよく、他の入出力機器であってもよい。なお、デバイスサーバ１２とデバイス１４とは一体化するようにしてもよい。
【００２２】
図１に示す例では、情報処理装置１１およびデバイスサーバ１２がそれぞれ１つ示されているが、複数の情報処理装置および複数のデバイスサーバがネットワーク１３を介して接続されている構成であってもよい。また、デバイスサーバ１２には複数のデバイスが接続されるようにしてもよい。
【００２３】
＜２．情報処理装置１１の構成＞
情報処理装置１１は、本発明の情報処理装置の一例であり、例えば、ＰＣ（パーソナルコンピュータ）などの装置であって、内部バスで互いに接続されたＣＰＵ、入力部、表示部、メモリ、通信部、外部記憶部（何れも不図示）で構成され、ネットワーク１３を介してデバイスサーバ１２と通信することができる。
【００２４】
外部記憶部は、不図示のオペレーティングシステム（以下、ＯＳ）、アプリケーション１１ａ、デバイスドライバ１１ｂ、デバイス制御部１１ｃ、仮想化制御部１１ｄ、通信制御部１１ｅ等のソフトウェア部品に加えて、各種データが記憶される。これらソフトウェア部品及び各種データは、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。
【００２５】
情報処理装置１１において、アプリケーション１１ａはデバイスドライバ１１ｂによってデバイス制御部１１ｃ（つまり、情報処理装置自体）に接続されたデバイス（不図示）を制御する。さらに、アプリケーション１１ａおよびデバイスドライバ１１ｂは、仮想化制御部１１ｄおよび通信制御部１１ｅによって、ネットワーク１３を介してデバイスサーバ１２に備えられたデバイス制御部１２ｃを遠隔的に制御することで、デバイスサーバ１２に接続されているデバイス１４を制御する。なお、図１においては、情報処理装置１１がデバイス制御部１１ｃを備えているが、このデバイス制御部１１ｃを備えず、デバイスサーバ１２に備えられたデバイス制御部１２ｃを制御する構成であってもよい。
【００２６】
＜３．情報処理装置１１のソフトウェア部品の構成＞
アプリケーション１１ａは、仮想化制御部１１ｄに対してデバイス１４との接続および切断の指示を行う。また、アプリケーション１１ａはユーザ操作に応じた要求をデバイスドライバ１１ｂに対して行い、当該要求に対する結果をデバイスドライバ１１ｂから受信する。さらに、アプリケーション１１ａは仮想化制御部１１ｄに対して、デバイスサーバ１２に関するサーバ情報の取得およびデバイスに関するデバイス情報の取得を要求して、当該要求に対する結果を仮想化制御部１１ｄから得る。
【００２７】
デバイスドライバ１１ｂは、アプリケーション１１ａからの要求に応じて後述する第１の転送要求（以下、転送要求１）を生成して、仮想化制御部１１ｄに渡す。
【００２８】
なお、デバイス制御部１１ｃに直接接続されたデバイス（不図示）の制御を行う場合には、転送要求１はデバイス制御部１１ｃに渡される。そして、デバイスドライバ１１ｂは、デバイス制御部１１ｃ又は仮想化制御部１１ｄから、転送要求１に対する第１の転送応答（以下、転送応答１）を受信して、当該転送応答１をアプリケーション１１ａに渡す。
【００２９】
仮想化制御部１１ｄは、通信制御部１１ｅを介してデバイスサーバ１２に接続されたデバイス１４を制御するため、あたかもデバイスサーバ１２に備えられたデバイス制御部が情報処理装置１１に存在するかのように当該デバイス制御部を介してデバイス１４を制御する（以下、仮想化制御という）。通信制御部１１ｅは、ネットワーク１３と接続してデバイスサーバ１２との間の通信を制御する。
【００３０】
＜４．デバイスサーバ１２の構成＞
デバイスサーバ１２は、本発明のデバイス制御装置の一例であり、内部バスで互いに接続されたＣＰＵ、メモリ、通信部、ＵＳＢインタフェース、及び外部記憶部（何れも不図示）で構成されており、ネットワーク１３を介して情報処理装置１１と通信すると共に、ローカル接続されているデバイス１４と接続ケーブルを介してデータ送受信することができる。
【００３１】
外部記憶部は、ＯＳ（不図示）、通信制御部１２ａ、仮想化制御部１２ｂ、デバイス制御部１２ｃ等のソフトウェア部品に加え各種データが記憶される。これらのソフトウェア部品、及び記憶された各種データは、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。
【００３２】
通信制御部１２ａは、ネットワーク１３と接続して情報処理装置１１との間の通信を制御する。仮想化制御部１２ｂは、通信制御部１２ａを介して情報処理装置１１の仮想化制御部１１ｄと通信し、デバイス制御部１２ｃを制御する。デバイス制御部１２ｃは、デバイスサーバ１２に接続されたデバイス１４を制御する。
【００３３】
このような構成のデバイス制御システムにおいて、情報処理装置１１は、仮想化制御部１１ｄによって、デバイスサーバ１２の仮想化制御部１２ｂを介しデバイス制御部１２ｃを遠隔で制御することにより、情報処理装置１１にデバイス１４がローカル接続されたときと同様に制御することができる。
【００３４】
＜５．デバイス制御システムのデータ送受信制御のシーケンス＞
図２は、図１に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【００３５】
＜５−１．デバイスサーバ１２、デバイス１４の識別処理＞
まず、情報処理装置１１によるデバイスサーバ１２、デバイス１４の識別処理について説明する。
【００３６】
図１および図２を参照して、前述のように、情報処理装置１１は、アプリケーション１１ａによってデバイスサーバ１２に関するサーバ情報（サーバ識別情報、サーバ設定情報など）の取得を要求すると、仮想化制御部１１ｄはサーバ情報要求を通信制御部１１ｅに渡す。若しくは、仮想化制御部１１ｄが内蔵メモリに既にサーバ情報を記憶している場合には、当該サーバ情報をアプリケーション１１ａに返送する。
【００３７】
また、アプリケーション１１ａからデバイス１４を識別するために必要なデバイス情報（デバイス識別情報、デバイス構成、種別など）の取得を要求すると、仮想化制御部１１ｄは通信制御部１１ｅにデバイス情報要求を渡す。若しくは、仮想化制御部１１ｄが内蔵メモリに既にデバイス情報を記憶している場合には、デバイス情報をアプリケーション１１ａに返送する。通信制御部１１ｅは、仮想化制御部１１ｄからサーバ情報要求（図３（ａ））又はデバイス情報要求（図３（ｃ））を受けると、当該サーバ情報要求又はデバイス情報要求をデバイスサーバ１２にネットワーク１３を介して送信する。
【００３８】
図３（ａ）は、サーバ情報要求のパケットデータの構成例であり、署名、サイズ（データサイズ）、およびコマンドＩＤ（サーバ情報要求であることを示すＩＤ）を有しており、情報処理装置１１からデバイスサーバ１２に送信されるパケットデータである。また、図３（ｃ）は、デバイス情報要求のパケットデータの構成例であり、署名、サイズ（データサイズ）、およびコマンドＩＤ（デバイス情報要求であることを示すＩＤ）を有しており、情報処理装置１１からデバイスサーバ１２に送信されるパケットデータである。
【００３９】
デバイスサーバ１２は、情報処理装置１１からサーバ情報要求（図３（ａ））を、通信制御部１２ａを介して受けると、仮想化制御部１２ｂは、当該デバイスサーバ１２を識別するためのサーバ識別情報およびサーバの設定状態を示すサーバ設定情報を含むサーバ情報応答（図３（ｂ））を生成し、通信制御部１２ａを介して情報処理装置１１に送信する。
【００４０】
また、デバイスサーバ１２で電源がオンされた場合又はデバイスサーバ１２の設定が変更された場合も仮想化制御部１２ｂはサーバ情報応答を、通信制御部１２ａを介して情報処理装置１１に送信する。
【００４１】
図３（ｂ）は、サーバ情報応答のパケットデータの構成例であり、署名、サイズ、コマンドＩＤ（サーバ情報応答であることを示すＩＤ）、サーバ識別情報（ＩＰアドレス又はＭＡＣアドレスなど）、およびサーバ設定情報（暗号化設定およびポート番号など）を有しており、デバイスサーバ１２から情報処理装置１１に送信されるパケットデータである。
【００４２】
情報処理装置１１は、通信制御部１１ｅを介してサーバ情報応答を受けると、当該サーバ情報応答を仮想化制御部１１ｄに渡す。仮想化制御部１１ｄは当該サーバ情報応答に含まれるサーバ情報を内蔵メモリに記憶する。
【００４３】
また、デバイスサーバ１２の仮想化制御部１２ｂは、情報処理装置１１からデバイス情報要求（図３（ｃ））を、通信制御部１２ａを介して受けると、デバイス制御部１２ｃによってデバイス１４と接続して、デバイス１４からデバイス情報（ＶＩＤ／ＰＩＤ／デバイスディスクリプタなど）を取得する。そして、仮想化制御部１２ｂは当該デバイス情報を含むデバイス情報応答（図３（ｄ））を生成し、通信制御部１２ａを介して情報処理装置１１に送信する。
【００４４】
なお、上記のデバイス情報応答の送信は、デバイスサーバ１２にデバイス１４が接続された際およびデバイス１４が取り外された際にも行われる。
【００４５】
図３（ｄ）は、デバイス情報応答のパケットデータの構成例であり、署名、サイズ、コマンドＩＤ（デバイス情報応答であることを示すＩＤ）、デバイス識別情報（ＶＩＤ／ＰＩＤなど）、デバイス構成情報（デバイス構成：デバイスディスクリプタなど）、および種別（デバイスの接続／切断など状態変化を識別するための情報）を有しており、デバイスサーバ１２から情報処理装置１１に送信されるパケットデータである。
【００４６】
情報処理装置１１の仮想化制御部１１ｄは、通信制御部１１ｅからデバイス情報応答を受けると、当該デバイス情報応答に含まれるデバイス情報を内蔵メモリに記憶する。そして、仮想化制御部１１ｄは、通信制御部１１ｅからデバイス情報応答を受信すると、情報処理装置１１に当該デバイスが接続されたとして通信制御部１１ｅによって接続処理（Ｐｌｕｇ＆Ｐｌａｙ）を実行する。
【００４７】
ここでは、通信制御部１１ｅは、仮想化制御部１１ｄから通信を指示されると、仮想化制御部１１ｄから受領したサーバ情報に基づいて、デバイスサーバ１２と情報処理装置１１とをネットワーク１３を介して接続する。
【００４８】
このようにして、情報処理装置１１は、デバイスサーバ１２及びデバイス１４を識別し、デバイスサーバ１２を介してデバイス１４とデータ転送が可能な状態となる。
【００４９】
＜５−２．データ送受信制御＞
続いて、情報処理装置１１とデバイス１４がデバイスサーバ１２を介してデータ転送を実行するシーケンスについて説明する。情報処理装置１１では、デバイスドライバ１１ｂがアプリケーション１１ａからの要求に応じて、デバイス１４に係るパラメータを要求する第１の転送要求（以下、転送要求１）を生成して、仮想化制御部１１ｄに渡す。仮想化制御部１１ｄは転送要求１からデバイスサーバ１２のデバイス制御部１２ｃに渡すパラメータのみを要求パラメータとして取り出し、この要求パラメータとともにデバイスを特定するためのデバイス識別情報を含んだデバイス転送要求（図３（ｅ））を生成し、通信制御部１１ｅは当該デバイス転送要求をデバイスサーバ１２に送信する。
【００５０】
図３（ｅ）は、デバイス転送要求のパケットデータの構成例であり、署名、サイズ（データサイズ）、コマンドＩＤ（デバイス転送要求であることを示すＩＤ）、デバイスサーバ１２に接続されているデバイスを一意に特定するためのデバイス識別情報、および要求パラメータを有しており、情報処理装置１１からデバイスサーバ１２に送信されるパケットデータである。
【００５１】
デバイスサーバ１２は、通信制御部１２ａを介して情報処理装置１１からデバイス転送要求（図３（ｅ））を受けると、仮想化制御部１２ｂによって当該デバイス転送要求に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイス１４を特定する。そして、仮想化制御部１２ｂはデバイス転送要求に含まれる要求パラメータを、デバイスサーバ１２のデバイス制御部１２ｃに渡すデータ形式に変換して第２の転送要求（以下、転送要求２）を生成し、デバイス制御部１２ｃに渡す。デバイス制御部１２ｃは、この転送要求２に基づいてデバイス通信パケット（要求）を生成して、当該デバイス通信パケット（要求）をデバイス１４に送信する。
【００５２】
そして、デバイスサーバ１２は、デバイス１４からデバイス通信パケット（応答）を、デバイス制御部１２ｃを介して受信すると、このデバイス通信パケット（応答）に応じた応答情報（以下、転送応答２）を仮想化制御部１２ｂに送る。仮想化制御部１２ｂは、転送応答２から要求パラメータに応じたパラメータのみを応答パラメータとして取り出し、この応答パラメータを含むデバイス転送応答（図３（ｆ））を生成して、通信制御部１２ａを介して情報処理装置１１に送信する。
【００５３】
図３（ｆ）は、デバイスサーバ１２から情報処理装置１１に送信されるデバイス転送応答のパケットデータの構成例であり、署名、サイズ、コマンドＩＤ（デバイス転送応答であることを示すＩＤ）、デバイス識別情報、および応答パラメータを有している。デバイス識別情報は、デバイスサーバ１２に接続されているデバイスを一意に特定するため付加される。
【００５４】
情報処理装置１１は、デバイスサーバ１２からデバイス転送応答（図３（ｆ））を受けると、通信制御部１１ｅは仮想化制御部１１ｄに当該デバイス転送応答を渡す。そして、仮想化制御部１１ｄはデバイス転送応答に含まれている応答パラメータを所定のデータ形式に変換した第１の転送応答（以下、転送応答１）をデバイスドライバ１１ｂに送り、デバイスドライバ１１ｂは、転送応答１をアプリケーション１１ａに渡す。
【００５５】
このようにして、情報処理装置１１とデバイス１４は、デバイスサーバ１２を介してデータ転送を実行する。そして、情報処理装置１１の仮想化制御部１１ｄから通信終了を指示されると、通信制御部１１ｅはデバイスサーバ１２との接続を断とする。
【００５６】
＜６．要求パラメータ、応答パラメータについて＞
ここで、上述の要求パラメータ及び応答パラメータについて詳細に説明する。
【００５７】
図４は、図２に示すデバイス制御システムにおいて転送される要求パラメータ及び応答パラメータについて説明するための図（一例）である。
【００５８】
まず、要求パラメータについて説明する。図２で説明したように、情報処理装置１１のデバイスドライバ１１ｂは、アプリケーション１１ａから要求に応じて転送要求１を生成する。この転送要求１には、例えば、ハンドル（制御対象を識別するための番号など）、サイズ（データサイズ）、バッファ（バッファアドレス）、転送種別（転送方式）、インタフェース（インタフェースの種別）、およびタイムアウト（応答待ち時間）がパラメータとして含まれる。
【００５９】
情報処理装置１１の仮想化制御部１１ｄは転送要求１を受けると、デバイスサーバ１２のデバイス制御部１２ｃに渡すパラメータ（以下、要求パラメータ）のみを取り出す。この要求パラメータは、コマンドＩＤに応じて予め定まっている。そして、要求パラメータ以外のパラメータは内蔵メモリに格納しておく。ここでは、ハンドル、バッファ、およびタイムアウト（これらは所定のパラメータである）を内蔵メモリに格納して、サイズ、転送種別、およびインタフェースを要求パラメータとして取り出し、この要求パラメータとデバイスを特定するためのデバイス識別情報を含むデバイス転送要求を生成してデバイスサーバ１２に送信する。
【００６０】
デバイスサーバ１２において、デバイス転送要求を受けると、仮想化制御部１２ｂは、当該デバイス転送要求に含まれているデバイス識別情報からデバイス１４を特定するとともに、デバイス制御部１２ｃに渡すデータ形式に変換するために必要なパラメータ（デバイス１４に係る管理情報、バッファ、タイムアウト、およびワークエリア）を生成する。なお、デバイス識別情報は内蔵メモリに記憶しておく。そして、仮想化制御部１２ｂは、この生成したパラメータとデバイス転送要求に含まれている要求パラメータ（サイズ、転送種別、インタフェース）から転送要求２を生成し、この転送要求２をデバイス制御部１２ｃに送る。デバイス制御部１２ｃは、この転送要求２に応じたデバイス通信パケット（要求）を生成し、これを特定したデバイス１４に送る。
【００６１】
次に、応答パラメータについて説明する。デバイス１４からのデバイス通信パケット（応答）を、デバイス制御部１２ｃを介して受信すると、デバイス制御部１２ｃはこれに応じた転送応答２を仮想化制御部１２ｂに送る。転送応答２には、デバイス１４に係る管理情報、サイズ、バッファ（データ）、転送種別、インタフェース、タイムアウト、およびワークエリアなどのパラメータが含まれている。仮想化制御部１２ｂでは要求パラメータおよび転送要求２を参照して、転送応答２から要求パラメータに応じたパラメータのみを応答パラメータとして取り出す。ここでは、転送応答２からサイズ、転送種別、インタフェース、およびバッファ（データ）を応答パラメータとして取り出す。なお、バッファ（データ）にはデバイス１４からのデータ（処理結果、応答など）が格納されている。そして、仮想化制御部１２ｂはこの応答パラメータと内蔵メモリに記憶しておいたデバイス識別情報を含んだデバイス転送応答を生成し、通信制御部１２ａによって情報処理装置１１に送信する。
【００６２】
情報処理装置１１において、仮想化制御部１１ｄは通信制御部１１ｅを介してデバイス転送応答を受けると、当該デバイス転送の応答パラメータ（サイズ、転送種別、インタフェース、およびバッファ（データ））に内蔵メモリに記憶されたハンドルおよびタイムアウトを付加して、所定のデータ形式に変換した転送応答１を生成し、デバイスドライバ１１ｂに送り、デバイスドライバ１１ｂは、転送応答１をアプリケーション１１ａに渡す。
【００６３】
このようにして、情報処理装置１１に備えられた仮想化制御部１１ｄでは、デバイスドライバ１１ｂからの転送要求１に応じて、デバイスサーバ１２から取得すべきパラメータのみを要求パラメータとしてデバイスサーバ１２に送る。一方、デバイスサーバ１２に備えられた仮想化制御部１２ｂでは要求パラメータに応じて転送要求２を生成して、デバイス１４に係るパラメータを取得する。そして、仮想化制御部１２ｂは要求パラメータに応じた応答パラメータのみを情報処理装置１１に送信する。
【００６４】
従って、情報処理装置１１とデバイスサーバ１２との間では、デバイス１４を制御するために必要なパラメータのみが送受信されるため、ネットワーク１３におけるトラフィックの増加を抑えることができる。加えて、転送要求および転送応答のデータフォーマットは、それぞれ情報処理装置１１およびデバイスサーバ１２に依存しているが、情報処理装置１１およびデバイスサーバ１２との通信においては、デバイスを制御するために必要なパラメータのみを取り出して送受信するので、プラットフォームの依存性を低減することができる。
【００６５】
＜８．第２の実施の形態によるデバイス制御システム＞
図５は、本発明の第２の実施の形態に係るデバイス制御システムの一例でありであり、図１に示すネットワーク１３がインターネットなど外部のネットワークを介して接続する場合のデバイス制御システムの一例を示す図である。
【００６６】
図５において、図１に示す構成要素と同一の構成要素については同一の参照番号を付して、説明を省略する。
【００６７】
インターネット５１を介して情報処理装置１１とデバイスサーバ１２とを接続する際には、デバイスサーバ１２に対して、情報処理装置１１を一意に識別するための情報（グローバルＩＰ／ＵＲＬなど）および接続に必要な情報（暗号化／ポート番号／プロキシ情報など）を予め設定しておく。
【００６８】
また、情報処理装置１１がデバイス１４を制御する際には、情報処理装置１１からデバイスサーバ１２に接続を行うが、図示のように、デバイスサーバ１２とインターネット５１との間にプロキシサーバ５２が介在する場合には、プロキシサーバ５２によって情報処理装置１１からデバイスサーバ１２へのアクセスが遮断される場合があり、デバイスサーバ１２やデバイス１４の情報（サーバ情報、デバイス情報）を取得できず、情報処理装置１１は仮想化制御を行うことができなくなるため、本実施例では、まず、デバイスサーバ１２から情報処理装置１１に対してサーバ情報、デバイス情報を送り、情報処理装置１１がこのサーバ情報、デバイス情報によってデバイスサーバ１２、デバイス１４を識別してから通信可能となるように構成される。
【００６９】
＜９．図５のデバイス制御システムにおけるデータ送受信制御のシーケンス＞
図６は、図５に示すデバイス制御システムにおけるデータ送受信制御を説明するためのシーケンス図である。
【００７０】
図６において、例えば、デバイスサーバ１２において、電源がオンされると、仮想化制御部１２ｂは、通信制御部１２ａによってプロキシサーバ５２を経由してインターネット５１を介して情報処理装置１１と接続する（サーバ情報およびデバイス情報用のセッションで接続する）。続いて、仮想化制御部１２ｂはサーバ情報応答を生成し、通信制御部１２ａでインターネットプロトコルに応じたデータ形式に変換した当該サーバ情報応答（図７（ａ））を情報処理装置１１に対して送信する。
【００７１】
図７（ａ）は、サーバ情報応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ（データサイズ）、コマンドＩＤ（サーバ情報要求であることを示すＩＤ）、デバイスサーバ識別情報、およびデバイスサーバ設定情報を有しており、デバイスサーバ１２から情報処理装置１１に送信されるパケットデータである。
【００７２】
情報処理装置１１は、このサーバ情報応答（図７（ａ））によってデバイスサーバ１２を識別し、この応答としてサーバ情報応答の空レスポンスを仮想化制御部１１ｄによって生成し、通信制御部１１ｅを介してデバイスサーバ１２に送信する。
【００７３】
デバイスサーバ１２は、サーバ情報応答の空レスポンスを受信すると、仮想化制御部１２ｂがデバイス制御部１２ｃによってデバイス情報を得て、デバイス情報応答を生成し、通信制御部１２ａでインターネットプロトコルに応じたデータ形式に変換した当該デバイス情報応答（図７（ｂ））を情報処理装置１１に送信する。
【００７４】
図７（ｂ）は、デバイス情報応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ（データサイズ）、およびコマンドＩＤ（デバイス情報要求であることを示すＩＤ）、デバイス識別情報、デバイス構成情報、および種別を有しており、デバイスサーバ１２から情報処理装置１１に送信されるパケットデータである。
【００７５】
情報処理装置１１は、このデバイス情報応答（図７（ｂ））によってデバイス１４を識別し、この応答としてデバイス情報応答の空レスポンスを仮想化制御部１１ｄによって生成し、通信制御部１１ｅを介してデバイスサーバ１２に送信する。
【００７６】
このように、デバイスサーバ１２が情報処理装置１１にサーバ情報応答、デバイス情報応答を送信してサーバ情報、デバイス情報を情報処理装置１１に通知することで、情報処理装置１１は、デバイス１４を仮想化制御することができる。
【００７７】
デバイスサーバ１２からサーバ情報、デバイス情報を情報処理装置１１に通知する機会としては、次のような機会がある。デバイスサーバ１２の電源がオンされた場合、デバイスサーバ１２の設定が変更された場合、デバイスサーバ１２にデバイス１４が接続された場合などである。なお、デバイスサーバ１２は、情報処理装置１１からのサーバ情報応答の空レスポンス、デバイス情報応答の空レスポンスを受信するまで、サーバ情報応答、デバイス情報応答の送信リトライ処理を実行する。
【００７８】
デバイスサーバ１２では、情報処理装置１１からデバイス情報応答の空レスポンスを受信すると、データ送受信制御を開始する。まず、仮想化制御部１２ｂが通信制御部１２ａを介して情報処理装置１１に対してデバイス転送要求用セッションとデバイス転送応答用セッション（２つのセッション）を要求し、情報処理装置１１と接続する。そして、接続が完了すると、仮想化制御部１２ｂは、通信制御部１２ａを介してデバイス転送要求のための空リクエストを情報処理装置１１に送る。情報処理装置１１は、通信制御部１１ｅを介してこの空リクエストを受信することで、データ送受信制御を開始する。
【００７９】
以後、データ送受信を行っている間は、図２で説明したシーケンスと同様であり、情報処理装置１１のデバイスドライバ１１ｂがアプリケーション１１ａからの要求に応じて、デバイス１４に係るパラメータを要求する転送要求１を生成して、仮想化制御部１１ｄに渡す。仮想化制御部１１ｄは転送要求１に応じてデバイス転送要求を生成し、通信制御部１１ｅでインターネットプロトコルに応じたデータ形式に変換した当該デバイス転送要求（図７（ｃ））をデバイスサーバ１２に送信する。
【００８０】
図７（ｃ）は、デバイス転送要求のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ（データサイズ）、コマンドＩＤ（デバイス転送要求であることを示すＩＤ）、デバイス識別情報、および転送パラメータ（要求）を有しており、情報処理装置１１からデバイスサーバ１２に送信されるパケットデータである。
【００８１】
デバイスサーバ１２は、デバイス転送要求（図７（ｃ））を受けると、仮想化制御部１２ｂは当該デバイス転送要求（インターネットプロトコルヘッダ除く）に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイスを特定する。そして、デバイス転送要求に含まれる要求パラメータに応じて、転送要求２を生成し、特定したデバイスを指定して転送要求２をデバイス制御部１２ｃに渡す。デバイス制御部１２ｃは、転送要求２に基づいてデバイス通信パケット（送信）を生成して、当該デバイス通信パケット（送信）をデバイス１４に送信する。
【００８２】
そして、デバイスサーバ１２は、デバイス１４からデバイス通信パケット（応答）を、デバイス制御部１２ｃを介して受信すると、このデバイス通信パケット（応答）に応じた応答情報（以下、転送応答２）を仮想化制御部１２ｂに送る。仮想化制御部１２ｂは、転送応答２から要求パラメータに応じたパラメータのみを応答パラメータとして取り出し、デバイス転送応答を生成して、通信制御部１２ａでインターネットプロトコルに応じたデータ形式に変換した当該デバイス転送応答（図７（ｄ））を情報処理装置１１に送信する。
【００８３】
図７（ｄ）は、デバイス転送応答のパケットデータの構成例であり、インターネットプロトコルヘッダ、署名、サイズ、コマンドＩＤ（デバイス転送応答であることを示すＩＤ）、デバイス識別情報、および転送パラメータ（応答）を有しており、デバイスサーバ１２から情報処理装置１１に送信されるデータパケットである。
【００８４】
情報処理装置１１は、デバイスサーバ１２からデバイス転送応答（図７（ｄ））を受けると、通信制御部１１ｅは仮想化制御部１１ｄに当該デバイス転送応答（インターネットプロトコルヘッダ除く）を渡す。そして、仮想化制御部１１ｄはデバイス転送応答を第１の転送応答（転送応答１）としてデバイスドライバ１１ｂに送る。そして、仮想化制御部１１ｄによってデバイス転送応答のための空レスポンスを生成し、通信制御部１１ｅを介してデバイスサーバ１２に送信する。この「デバイス転送応答のための空レスポンス」は、データ送受信開始時にデバイスサーバ１２から受信した「デバイス転送要求のための空リクエスト」の応答として生成される。
【００８５】
デバイスサーバ１２は、この空レスポンスを受けると、次のデバイス転送要求のための空リクエストを情報処理装置１１に送り、インターネット５１を介したデータ送受信が順次実行される。
【００８６】
情報処理装置１１またはデバイスサーバ１２の何れかの装置から終了信号を送ることにより、データ送受信を終了させる。
【００８７】
なお、本発明のデバイス制御システムでは、アプリケーション層のプロトコル、例えば、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）、ＳＭＴＰ（Ｓｉｍｐｌｅ Ｍａｉｌ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）、ＦＴＰ（Ｆｉｌｅ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）などのプロトコルを用いて通信することが可能であり、インターネット上にあるネットワーク機器に特殊な設定することなく通信を行える。
【００８８】
また、リクエスト（要求）に対してレスポンス（応答）が受信されると、次のリクエスト（要求）を送るというプロトコル（例えば、ＨＴＴＰなど）で通信する場合、レスポンス（応答）がないと次のリクエスト（要求）を実行できないため、レスポンス（応答）が遅いとデータ転送が滞ってしまうことがある。そのため、本実施例のように２つのセッションを使ってデバイス転送要求はデバイス転送要求用セッションで行い、デバイス転送応答はデバイス転送応答用セッションで行うようにして、要求送信と応答受信の処理を分けることで、データ転送の遅滞を低減するとともに、データ転送処理の高速化を図ることができる。
【００８９】
以上のように、本発明の実施の形態によれば、インターネットなど外部のネットワークを介して接続する場合であっても、実施例１と同様、ネットワークにおけるトラフィックの増大を抑え、しかも情報処理装置１１とデバイスサーバ１２にプラットフォームの相違があってもデータ伝送することができる。
【００９０】
上述の説明から明らかなように、図１、図５に示す例では、仮想化制御部１１ｄおよび通信制御部１１ｅが要求パラメータ作成手段および転送応答生成手段として機能する。さらに、通信制御部１２ａ、仮想化制御部１２ｂ、およびデバイス制御部１２ｃが転送要求生成手段および応答パラメータ作成手段として機能する。そして、仮想化制御部１１ｄおよび通信制御部１１ｅは識別情報取得手段として機能する。
【００９１】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００９２】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置およびデバイス制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、この制御プログラムを情報処理装置およびデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【００９３】
この際、情報処理装置の制御方法および制御プログラムの各々は、少なくとも要求パラメータ作成ステップおよび転送応答生成ステップを有することになる。また、デバイス制御装置の制御方法および制御プログラムの各々は、少なくとも転送要求生成ステップおよび応答パラメータ作成ステップを有することになる。
【００９４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９５】
１１  情報処理装置
１２  デバイスサーバ（デバイス制御装置）
１３  ネットワーク
１４  デバイス
１１ａ  アプリケーション
１１ｂ  デバイスドライバ
１１ｃ，１２ｃ  デバイス制御部
１１ｄ，１２ｂ  仮想化制御部
１１ｅ，１２ａ  通信制御部
【図１】
0005833880.tif 000002
【図２】
0005833880.tif 000003
【図３】
0005833880.tif 000004
【図４】
0005833880.tif 000005
【図５】
0005833880.tif 000006
【図６】
0005833880.tif 000007
【図７】
0005833880.tif 000008