(57)【要約】【課題】所定のプロトコル（例えばＩＰＰ）でデータ通信するための既存ソフトウェアの改変を抑えつつ、そのプロトコルに対応した通信回線とは異なる種類の通信回線（例えばＵＳＢ）でそのプロトコルのデータを送受信するための具体的手段を提供する。【解決手段】クライアントＰＣ３において、クライアント側プリンタプロキシ３７は、ローカルホストのＩＰアドレスを持ち、ローカルホストとして振る舞う。アプリケーション３８から第２プリンタ１２宛に印刷データの送信要求がなされると、ＰＰＣ６１がＩＰＰ規格に従って印刷データを処理し、ＴＣＰ／ＩＰ経由でクライアント側プリンタプロキシ３７に渡す。クライアント側プリンタプロキシ３７は、ＰＰＣ６１から渡された印刷データをＵＳＢ経由で第２プリンタ１２へ送信させる。【選択図】図２
2014103504.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と第１の通信回線を介して通信可能に接続され、前記第１の通信回線を介してデータの送受信を行う送受信部、及びアプリケーションプログラムの実行によって前記画像処理装置との間で生じる送受信データを前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えた情報処理装置で実行される通信中継プログラムであって、
前記プロトコルに従った送信データを前記情報処理装置内で帰還させるための所定の自装置アドレスを登録する登録手段、
前記送受信データ処理部により処理された送信データの送信先アドレスが前記自装置アドレスである場合にその送信データを前記送受信部に送信させるデータ送信制御手段
として機能させるための通信中継プログラム。
【請求項２】
請求項１に記載の通信中継プログラムであって、
前記画像処理装置から前記第１の通信回線を介して前記プロトコルに従ったデータが前記送受信部で受信された場合にその受信データを前記送受信データ処理部に処理させるデータ受信制御手段を備える
ことを特徴とする通信中継プログラム。
【請求項３】
請求項１又は請求項２に記載の通信中継プログラムであって、
前記情報処理装置は、前記第１の通信回線を接続するための接続部を少なくとも１つ備えており、
前記登録手段は、前記自装置アドレスの登録を、前記接続部を示すポート番号と対応付けて行い、
前記データ送信制御手段は、前記送受信データ処理部により処理された送信データの送信先として前記ポート番号が対応付けられた前記自装置アドレスである場合に、その送信データを、その対応付けられたポート番号に対応した前記接続部から前記第１の通信回線を介して前記画像処理装置へ送信させる
ことを特徴とする通信中継プログラム。
【請求項４】
請求項３に記載の通信中継プログラムであって、
前記情報処理装置は、前記第１の通信回線と接続するための接続部を複数備えており、
前記登録手段は、前記複数の接続部毎に個別に、前記ポート番号と対応付けて前記自装置アドレスを登録する
ことを特徴とする通信中継プログラム。
【請求項５】
請求項３又は請求項４に記載の通信中継プログラムであって、
前記送受信データ処理部から前記接続部に接続されている前記画像処理装置の検索要求を受けた場合に、前記データ送信制御手段に対し、前記接続部に接続されている前記画像処理装置へその画像処理装置を示す装置情報を要求させる装置情報要求手段と、
前記装置情報要求手段に基づく前記装置情報の要求に対して前記画像処理装置から前記接続部を介して前記装置情報が受信された場合に、その受信された装置情報にその受信された接続部に対応した前記ポート番号を対応付けたものを前記検索要求に対する応答として前記送受信データ処理部に処理させる装置情報受信制御手段と、
を備えることを特徴とする通信中継プログラム。
【請求項６】
請求項５に記載の通信中継プログラムであって、
前記情報処理装置は、前記第１の通信回線と接続するための接続部を複数備えており、
前記装置情報要求手段は、前記データ送信制御手段に対し、前記各接続部に接続されている前記画像処理装置の各々へ前記装置情報を要求させ、
前記装置情報受信制御手段は、前記接続部毎に個別に、受信された装置情報とその接続部に対応した前記ポート番号を対応付けたものを前記応答としてそれぞれ前記送受信データ処理部に処理させる
ことを特徴とする通信中継プログラム。
【請求項７】
請求項１〜請求項６の何れか１項に記載の通信中継プログラムであって、
前記第１の通信回線はＵＳＢ（Universal Serial Bus）であることを特徴とする通信中継プログラム。
【請求項８】
情報処理装置と第１の通信回線を介して通信可能に接続され、前記第１の通信回線を介してデータの送受信を行う送受信部、及び前記情報処理装置との間で送受信されるデータを前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えた画像処理装置で実行される通信中継プログラムであって、
前記プロトコルに従った送信データを前記画像処理装置内で帰還させるための所定の自装置アドレスを登録する自装置アドレス登録手段、
前記送受信データ処理部により処理された送信データの送信先アドレスが前記自装置アドレスである場合に、その送信データを前記送受信部に送信させるデータ送信制御手段
として機能させるための通信中継プログラム。
【請求項９】
請求項８に記載の通信中継プログラムであって、
前記情報処理装置から前記第１の通信回線を介して前記プロトコルに従ったデータが前記送受信部で受信された場合にその受信データを前記送受信データ処理部に処理させるデータ受信制御手段を備える
ことを特徴とする通信中継プログラム。
【請求項１０】
画像処理装置と第１の通信回線を介して通信可能に接続される情報処理装置で用いられる通信中継方法であって、
アプリケーションプログラムの実行によって前記画像処理装置との間で生じる送受信データについて、前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従ったプロトコル対応処理を行い、
前記プロトコルに従った送信データを前記情報処理装置内で帰還させるための所定の自装置アドレスを登録し、
前記プロトコル対応処理により処理された送信データの送信先アドレスが前記自装置アドレスである場合は、その送信データを前記第１の通信回線を介して送信させる
ことを特徴とする通信中継方法。
【請求項１１】
情報処理装置と第１の通信回線を介して通信可能に接続される画像処理装置で実行される通信中継方法であって、
前記情報処理装置との間で送受信されるデータについて、前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従ったプロトコル対応処理を行い、
前記プロトコルに従った送信データを前記画像処理装置内で帰還させるための所定の自装置アドレスを登録し、
前記プロトコル対応処理により処理された送信データの送信先アドレスが前記自装置アドレスである場合は、その送信データを前記第１の通信回線を介して送信させ、
前記情報処理装置から前記第１の通信回線を介して前記プロトコルに従ったデータが受信された場合は、その受信データを前記プロトコル対応処理にて処理させる
ことを特徴とする通信中継方法。
【請求項１２】
画像処理装置と第１の通信回線を介して通信可能に接続され、前記第１の通信回線を介してデータの送受信を行う送受信部、及びアプリケーションプログラムの実行によって前記画像処理装置との間で生じる送受信データを前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えた情報処理装置であって、
前記プロトコルに従った送信データを前記情報処理装置内で帰還させるための所定の自装置アドレスを登録する登録手段と、
前記送受信データ処理部により処理された送信データの送信先アドレスが前記自装置アドレスである場合に、その送信データを前記送受信部に送信させるデータ送信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項１３】
情報処理装置と第１の通信回線を介して通信可能に接続され、前記第１の通信回線を介してデータの送受信を行う送受信部、及び前記情報処理装置との間で送受信されるデータを前記第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えた画像処理装置であって、
前記プロトコルに従った送信データを前記画像処理装置内で帰還させるための所定の自装置アドレスを登録する登録手段と、
前記送受信データ処理部により処理された送信データの送信先アドレスが前記自装置アドレスである場合に、その送信データを前記送受信部に送信させるデータ送信制御手段と、
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信を中継する技術に関する。
【背景技術】
【０００２】
従来、画像処理装置にＷｅｂサーバ機能を備え、情報処理装置等のクライアント端末で実行されるＷｅｂブラウザに画像処理装置の設定画面などを表示する技術が開示されている（例えば、特許文献１参照。）。
【０００３】
また、画像処理装置とクライアント端末との間でインターネットなどのＴＣＰ／ＩＰネットワークを通じて印刷データや制御情報等の各種データの送受を行うＩＰＰ（Internet Printing Protocol；インターネットプリンティングプロトコル）と呼ばれる規格が知られている（例えば、特許文献２参照。）。
【０００４】
更に近年、画像処理装置とクライアント端末とがＵＳＢ（Universal Serial Bus）によって接続されている環境においてＵＳＢを介して上述したＩＰＰによる通信を行うための、ＩＰＰ  ｏｖｅｒ  ＵＳＢという規格のドラフトが策定されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２５７９４５号公報
【特許文献２】特開２０１０−１７６５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、現在策定されているＩＰＰ  ｏｖｅｒ  ＵＳＢ規格のドラフトでは、ＩＰＰの手順で処理された送信データをどのような仕組みを介してＵＳＢ経由で送信するのかについての具体的な規定はなされていない。ＵＳＢ経由で受信したＩＰＰの受信データについても、その受信データをどのような仕組みでＩＰＰ処理部に渡すかについての具体的な規定はなされていない。
【０００７】
本発明は上記課題に鑑みなされたものであり、所定のプロトコル（例えばＩＰＰ）でデータを送受信するための既存のソフトウェアに対する改変を抑えつつ、そのプロトコルに対応した通信回線とは異なる種類の特定の通信回線（例えばＵＳＢ）を介してそのプロトコルのデータを送受信するための具体的手段を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するためになされた本発明の通信中継プログラムは、画像処理装置と第１の通信回線を介して通信可能に接続された情報処理装置で実行されるプログラムである。情報処理装置は、第１の通信回線を介してデータの送受信を行う送受信部、及びアプリケーションプログラムの実行によって画像処理装置との間で生じる送受信データを第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えている。
【０００９】
当該通信中継プログラムは、情報処理装置を、登録手段及びデータ送信制御手段として機能させるためのプログラムである。登録手段は、前記プロトコルに従った送信データを前記情報処理装置内で帰還させるための所定の自装置アドレスを登録する。データ送信制御手段は、送受信データ処理部により処理された送信データの送信先アドレスが前記自装置アドレスである場合にその送信データを前記送受信部に送信させる。
【００１０】
このような構成の通信中継プログラムによれば、情報処理装置内に自装置アドレスを登録し、アプリケーションから自装置アドレス宛にデータが送信されるとその送信データは上記プロトコルに従って処理された上でデータ送信制御手段によって第１の通信回線から送信される。
【００１１】
そのため、所定のプロトコルでデータを送受信するための既存のソフトウェア（例えば送受信データ処理部を実現するソフトウェア）に対する改変を抑えつつ、そのプロトコルに対応した通信回線とは異なる種類の特定の通信回線を介してそのプロトコルのデータを送信することが可能となる。
【００１２】
本発明の通信中継プログラムは、更に、データ受信制御手段を備えたものにしてもよい。データ受信制御手段は、画像処理装置から第１の通信回線を介して前記プロトコルに従ったデータが送受信部で受信された場合にその受信データを送受信データ処理部に処理させる。このようなデータ受信制御手段を備えることで、上記プロトコルに対応した通信回線とは異なる種類の特定の通信回線を介してそのプロトコルのデータを受信することも可能となる。
【００１３】
情報処理装置が第１の通信回線を接続するための接続部を少なくとも１つ備えている構成においては、本発明の通信中継プログラムは、次のように構成してもよい。即ち、登録手段は、自装置アドレスの登録を、接続部を示すポート番号と対応付けて行う。データ送信制御手段は、送受信データ処理部により処理された送信データの送信先として上記ポート番号が対応付けられた自装置アドレスである場合に、その送信データを、その対応付けられたポート番号に対応した接続部から第１の通信回線を介して画像処理装置へ送信させる。
【００１４】
このような構成の通信中継プログラムによれば、自装置アドレスとポート番号が対応付けられることによって、上記プロトコルのデータの、第１の通信回線を介した送信の信頼性を向上させることができる。
【００１５】
情報処理装置が、第１の通信回線と接続するための接続部を複数備えている場合は、登録手段は、複数の接続部毎に個別に、ポート番号と対応付けて自装置アドレスを登録するようにするとよい。
【００１６】
このように、接続部を複数備えている場合には接続部毎に個別にポート番号を設定することで、例えばユーザがアプリケーションから画像処理装置へのデータ送信を指示する場合に、送信すべき所望の画像処理装置を容易且つ的確に選択・指定することができる。
【００１７】
本発明の通信中継プログラムは、更に、装置情報要求手段と装置情報受信制御手段とを備えたものであるとよい。即ち、装置情報要求手段は、送受信データ処理部から接続部に接続されている画像処理装置の検索要求を受けた場合に、データ送信制御手段に対し、接続部に接続されている画像処理装置へその画像処理装置を示す装置情報を要求させる。装置情報受信制御手段は、上記装置情報要求手段に基づく装置情報の要求に対して画像処理装置から接続部を介して装置情報が受信された場合に、その受信された装置情報にその受信された接続部に対応したポート番号を対応付けたものを検索要求に対する応答として送受信データ処理部に処理させる。
【００１８】
つまり、第１の通信回線を介して接続部に接続されている画像処理装置について、その装置情報を検索・取得して、その接続部に対応したポート番号と取得した装置情報を対応付けるのである。このように装置情報を対応付けることで、上記プロトコルのデータの、第１の通信回線を介した送信の信頼性をより向上させることができる。
【００１９】
上記のように装置情報を検索・取得してポート番号と対応付ける構成においても、情報処理装置が接続部を複数備えている場合は、更に次のように構成するとよい。即ち、装置情報要求手段は、データ送信制御手段に対し、各接続部に接続されている画像処理装置の各々へ装置情報を要求させる。装置情報受信制御手段は、接続部毎に個別に、受信された装置情報とその接続部に対応したポート番号を対応付けたものを応答としてそれぞれ送受信データ処理部に処理させる。
【００２０】
このように、接続部を複数備えている場合には接続部毎に個別にポート番号と装置情報を対応付けて設定することで、例えばユーザがアプリケーションから画像処理装置へのデータ送信を指示する場合に、送信すべき所望の画像処理装置をより容易且つ的確に選択・指定することができる。
【００２１】
上記課題を解決するためになされた本発明の他の通信中継プログラムは、情報処理装置と第１の通信回線を介して通信可能に接続された画像処理装置で実行されるプログラムである。画像処理装置は、第１の通信回線を介してデータの送受信を行う送受信部、及び情報処理装置との間で送受信されるデータを第１の通信回線とは異なる第２の通信回線での送受信に対応した所定のプロトコルに従って処理する送受信データ処理部を備えている。
【００２２】
当該通信中継プログラムは、画像処理装置を、登録手段及びデータ送信制御手段として機能させるためのプログラムである。登録手段は、前記プロトコルに従った送信データを画像処理装置内で帰還させるための所定の自装置アドレスを登録する。データ送信制御手段は、送受信データ処理部により処理された送信データの送信先アドレスが自装置アドレスである場合に、その送信データを送受信部に送信させる。
【００２３】
このような構成の通信中継プログラムによれば、画像処理装置内に自装置アドレスを登録し、自装置アドレス宛にデータが送信されるとその送信データは上記プロトコルに従って処理された上でデータ送信制御手段によって第１の通信回線から情報処理装置へ送信される。また情報処理装置から第１の通信回線を介して上記プロトコルに従ったデータが受信されると、その受信データはデータ受信制御手段によって送受信データ処理部に渡されて処理される。
【００２４】
そのため、所定のプロトコルでデータを送受信するための既存のソフトウェア（例えば送受信データ処理部を実現するソフトウェア）に対する改変を抑えつつ、そのプロトコルに対応した通信回線とは異なる種類の特定の通信回線を介してそのプロトコルのデータを送信することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】実施形態の画像情報処理システムの概略構成を表すブロック図。
【図２】画像情報処理システムのソフトウェア構成を表す機能ブロック図。
【図３】クライアントＰＣのクライアント側プリンタプロキシが管理する管理データを表す説明図。
【図４】画像情報処理システムの動作例を表すシーケンス図。
【図５】クライアントＰＣで実行されるクライアント側プリンタプロキシ処理を表すフローチャート。
【図６】プリンタで実行されるプリンタ側クライアントプロキシ処理を表すフローチャート。
【発明を実施するための形態】
【００２６】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
（１）画像情報処理システムのハードウェア構成
本実施形態の画像情報処理システム１は、図１に示すように、クライアントＰＣ３と、３つのプリンタ１１，１２，１３とがそれぞれＵＳＢケーブル５，６，７を介して相互に通信可能に接続されてなるものである。
【００２７】
情報処理装置としてのクライアントＰＣ３は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、表示部２５、操作部２６、ＵＳＢインタフェース（Ｉ／Ｆ）２８、及びネットワークインタフェース（Ｉ／Ｆ）２９などの各種ハードウェアを備えた周知の構成となっている。
【００２８】
ＣＰＵ２１は、ＲＯＭ２２や記憶部２４に記憶されているプログラムを実行することによってクライアントＰＣ３の各部を制御する。ＲＯＭ２２には、ＣＰＵ２１によって実行される各種プログラムやデータ等が記憶されている。ＲＡＭ２３は、ＣＰＵ２１が各種処理を実行するための主記憶装置として用いられる。操作部２６は、ユーザにより操作されるマウスやキーボード等（図示略）により構成される。表示部２５は、液晶ディスプレイなどの表示デバイスにより構成される。
【００２９】
記憶部２４は、例えばハードディスクなどの記憶デバイスにより構成される。記憶部２４には、各種ソフトウェアがインストールされている。各種ソフトウェアの中には、ＯＳ（オペレーティングシステム）３６、クライアント側プリンタプロキシ３７，及びアプリケーション３８が含まれている。アプリケーション３８は、例えば文書作成ソフトや表計算ソフトなどのいわゆる応用ソフトウェアであり、ユーザは、このアプリケーション３８を用いて作成した文書等を各プリンタ１１，１２，１３の何れかで印刷させることができる。クライアント側プリンタプロキシ３７は、本実施形態の画像情報処理システム１の中で最も特徴的なソフトウェアの１つであり、クライアントＰＣ３をローカルホストとして設定し（即ちクライアントＰＣ３内にローカルホストを設定し）、アプリケーション３８やＯＳ３６からみてあたかもプリンタであるように振る舞わせるものである。
【００３０】
ＵＳＢＩ／Ｆ２８は、ＵＳＢホストコントローラを備えるほか、ＵＳＢケーブルを接続するための３つのＵＳＢ接続ジャック３１，３２，３３を備えている。このうち１つのＵＳＢ接続ジャック３１には、ＵＳＢケーブル５が接続され、このＵＳＢケーブル５を介して第１プリンタ１１が接続されている。他の１つのＵＳＢ接続ジャック３２には、ＵＳＢケーブル６が接続され、このＵＳＢケーブル６を介して第２プリンタ１２が接続されている。さらにもう１つのＵＳＢ接続ジャック３３には、ＵＳＢケーブル７が接続され、このＵＳＢケーブル７を介して第３プリンタ１３が接続されている。つまり、クライアントＰＣ３は、３つのプリンタ１１，１２，１３とそれぞれＵＳＢケーブルを介してＵＳＢ規格に従ったデータ通信を行うことができるよう構成されている。なお、ＵＳＢは本発明の第１の通信回線の一例に相当するものである。
【００３１】
ネットワークＩ／Ｆ２９は、クライアントＰＣ３をＵＳＢとは異なる規格のネットワークに接続するためのインタフェースであり、本実施形態ではＬＡＮ（Local Area Network）に接続するためのインタフェースとして構成されている。このＬＡＮは、本発明の第２の通信回線の一例に相当する。なお、ネットワークＩ／Ｆ２９は、有線ＬＡＮに対応したものであってもよいし、無線ＬＡＮに対応したものであってもよい。
【００３２】
画像処理装置としての各プリンタ１１，１２，１３は、ハードウェア構成及びソフトウェア構成ともに基本的には同じ構成である。そのため、図１では代表として第２プリンタ１２のみその内部構成を図示し、第１プリンタ１１及び第３プリンタ１３は内部構成の図示を省略している。図２のソフトウェア構成についても同様である。そのため、以下の説明では、プリンタについては第２プリンタ１２について詳しく説明し、他の各プリンタ１１，１３の詳細説明は省略する。
【００３３】
第２プリンタ１２は、印刷用紙などの記録シートに電子写真方式やインクジェット方式などによって画像を印刷する装置である。第２プリンタ１２は、ＵＳＢケーブル６を介してクライアントＰＣ３と接続されている。そのため、クライアントＰＣ３のアプリケーション３８で作成した文書等の印刷データをＵＳＢケーブル６で第２プリンタ１２へ送信することで、その印刷データが示す画像を印刷することができる。
【００３４】
第２プリンタ１２は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、不揮発性メモリ４４、表示部４５、操作部４６、印刷エンジン４７、ＵＳＢＩ／Ｆ４８、及びネットワークＩ／Ｆなどの各種ハードウェアを備えている。
【００３５】
ＣＰＵ４１は、ＲＯＭ４２や不揮発性メモリ４４に記憶されているプログラムを実行することによって第２プリンタ１２の各部を制御する。ＲＯＭ４２には、ＣＰＵ４１によって実行される各種プログラムやデータ等が記憶されている。ＲＡＭ４３は、ＣＰＵ４１が各種処理を実行するための主記憶装置として用いられる。操作部４６は、ユーザにより操作されるキースイッチやタッチパネル等（図示略）により構成される。表示部２５は、液晶ディスプレイなどの表示デバイスにより構成される。印刷エンジン４７は、記録シートに画像を印刷するための各種機構（例えばインクジェット方式の場合はインクジェットノズル、キャリッジ、モータ、シート搬送機構など）からなるものである。
【００３６】
ＵＳＢＩ／Ｆ４８は、基本的にはクライアントＰＣ３のＵＳＢＩ／Ｆ２８と同じ機能を有するものであり、クライアントＰＣ３とＵＳＢケーブル６を介してＵＳＢ規格に従ってデータ通信を行うためのものである。ただし、第２プリンタ１２のＵＳＢＩ／Ｆ２８は、１つのＵＳＢ接続ジャック５１を備えている。ネットワークＩ／Ｆ４９も、基本的にはクライアントＰＣ３のネットワークＩ／Ｆ２９と同じ機能・構成を有するものである。即ち、第２プリンタ１２は、ＬＡＮを介して送信されてきた印刷データについてもその画像を印刷することができる、いわゆるネットワーク印刷機能も備えている。
【００３７】
このように構成された画像情報処理システム１において、クライアントＰＣ３は、各プリンタ１１，１２，１３との間でそれぞれＵＳＢを介して各種のデータ通信を行う。そのデータ通信には、クライアントＰＣ３が各プリンタ１１，１２，１３の何れかに印刷データを送信して画像を印刷させるための通信のほか、クライアントＰＣ３から各プリンタ１１，１２，１３の各種設定を行うための通信や、クライアントＰＣ３が各プリンタ１１，１２，１３からそれぞれの設定状態や動作状態等を取得するための通信などがある。
【００３８】
これらのデータ通信は、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格に従って行われる。ＩＰＰやＩＰＰ  ｏｖｅｒ  ＵＳＢについては既に簡単に説明した通りであり、またいずれも情報処理装置とプリンタとの通信を実現するための周知の規格であるため、これら規格の詳細説明は省略する。
【００３９】
（２）画像情報処理システムのソフトウェア構成
次に、画像情報処理システム１のソフトウェア構成について、図２を用いて説明する。まず、クライアントＰＣ３のソフトウェア構成について説明する。クライアントＰＣ３は、ソフトウェアとして、図１にも示したように、ＯＳ３６、クライアント側プリンタプロキシ３７、及びアプリケーション３８を備えている。ＯＳ３６は、より詳しくは、プリンタポートクライアント（以下「ＰＰＣ」という）６１と、ＴＣＰ／ＩＰソフト６２と、ＵＳＢドライバ６３と、ネットワークドライバ６４とを備えている。これら各ソフトウェアをＯＳＩ参照モデルの階層に対応させると、おおよそ次のようになる。即ち、ネットワークドライバ６４はデータリンク層に対応し、ＴＣＰ／ＩＰソフト６２のうちＩＰ機能はネットワーク層に対応してＴＣＰ機能及びＵＤＰ機能はトランスポート層に対応し、ＵＳＢドライバ６３は全体としてデータリンク層からトランスポート層の各層に対応し、ＰＰＣ６１はセッション層に対応する。また、クライアント側プリンタプロキシ３７はセッション層に対応し、アプリケーション３８は応用層に対応する。なお、ＵＳＢドライバ６３は、本発明の情報処理装置が備える送受信部の一例に相当するものである。
【００４０】
ＰＰＣ６１は、ＩＰＰを司る主要なソフトである。即ち、通信相手のプリンタとの間で、ＩＰＰ規格に従って印刷させるための手順の取り決め等を担うものであり、例えば、アプリケーション３８からの印刷データやその他のデータ等をどういう手順でプリンタへ送り届けるか、プリンタ側からのデータをどういう手順で受信処理してアプリケーション３８に渡すかなどの、プリンタとの間のデータ通信の手順を決めて、アプリケーション３８とプリンタ側との間でデータの受け渡しを行う。より具体的には、例えばアプリケーション３８から印刷データを受けた場合、その印刷データを、ＰＰＣに従った所定のフレーム（以下「ＰＰＣフレーム」という）に納めて、下位プロトコル（本例ではＴＣＰ／ＩＰソフト６２）に渡す。逆に、プリンタ側から送信されたＰＰＣフレームがＴＣＰ／ＩＰソフト６２を経て入力されると、そのＰＰＣフレームからデータを取り出してアプリケーション３８に渡す。なお、ＰＰＣ６１は、本発明の情報処理装置が備える送受信データ処理部の一例に相当するものであり、ＩＰＰ及びＴＣＰ／ＩＰは本発明のプロトコルの一例に相当するものである。
【００４１】
ＴＣＰ／ＩＰソフト６２は、ＩＰ、ＴＣＰ、ＵＤＰの各プロトコルに関連した処理を受け持つ周知のソフトウェア（プロトコルスタック）である。ＵＳＢドライバ６３は、ＵＳＢによるデータ通信を実現するための周知のドライバソフトであり、ネットワークドライバ６４は、ＬＡＮを介したデータ通信を実現するための周知のドライバソフトである。
【００４２】
クライアント側プリンタプロキシ３７は、クライアントＰＣ３においてローカルホストとして振る舞うソフトウェアであり、ＯＳ３６からみればあたかもプリンタ（サーバ）であるかのように振る舞う。即ち、ＴＣＰ／ＩＰソフト６２から渡されたローカルホスト宛（ＩＰアドレス「１２７．０．０．１」宛）のデータはＵＳＢドライバ６３へ渡し、ＵＳＢドライバ６３から渡されたデータはＴＣＰ／ＩＰソフト６２へ渡す。なお、クライアント側プリンタプロキシ３７は、本発明の情報処理装置で実行される通信中継プログラムの一例に相当するものである。
【００４３】
本発明者は、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格に従ったデータ通信を実現させるにあたり、既存のコンポーネント（ＯＳ等）にはできる限り手を加えずに済む方法として、ローカルホストという概念に着目した。つまり、ＴＣＰ／ＩＰソフト６２とＵＳＢドライバ６３との間にローカルホストを利用したプロキシを設け、そのプロキシにデータを中継させることで、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格のデータ通信を実現できるという考えに至った。
【００４４】
ＴＣＰ／ＩＰプロトコルにおいては、ローカルホストのＩＰアドレスは、「１２７．０．０．１」であることが既定されている。このＩＰアドレス「１２７．０．０．１」は、アプリケーション３８からのネットワーク向けの送信データをクライアントＰＣ内で帰還させるためのアドレスであり、一般にループバックアドレスとも呼ばれているものである。
【００４５】
クライアント側プリンタプロキシ３７は、ＴＣＰ／ＩＰソフト６２に対し、ローカルホストのＩＰアドレス「１２７．０．０．１」を登録する。そのため、アプリケーション３８からローカルホスト宛に（ＩＰアドレス「１２７．０．０．１」宛に）印刷データの送信要求がなされた場合、ＴＣＰ／ＩＰソフト６２は、その印刷データをネットワーク側に送出するのではなく、ローカルホストとしてのクライアント側プリンタプロキシ３７に渡す。クライアント側プリンタプロキシ３７は、ＴＣＰ／ＩＰソフト６２から印刷データを受けると、それをＵＳＢドライバ６３へ渡すことによってその印刷データをＵＳＢにて送信させる。
【００４６】
また、クライアント側プリンタプロキシ３７は、各ＵＳＢ接続ジャック３１，３２，３３に接続された各プリンタ１１，１２，１３とローカルホストのポート番号の対応の管理も行う。
【００４７】
即ち、クライアント側プリンタプロキシ３７は、ＩＰアドレスを「１２７．０．０．１」に設定するのに加え、ＵＳＢ接続ジャック毎にポート番号を設定してエンドポイントを設定する。具体的には、図３に示すように、ＵＳＢ番号１（ＵＳＢ接続ジャック３１に対応）に対してはポート番号５０００１が設定され、ＵＳＢ番号２（ＵＳＢ接続ジャック３２に対応）に対してはポート番号５０００２が設定され、ＵＳＢ番号３（ＵＳＢ接続ジャック３３に対応）に対してはポート番号５０００３が設定される。
【００４８】
ＵＳＢ番号とポート番号を対応付ける方法としては、例えば、クライアント側プリンタプロキシ３７が、ＵＳＢドライバ６３と情報のやりとりを行うことによってＵＳＢドライバ６３が管理するＵＳＢポートの数（即ちＵＳＢ接続ジャックの数）を調べ、ＵＳＢポート毎に（即ちＵＳＢ接続ジャック毎に）ポート番号を設定する、という方法が考えられる。本実施形態では、主にこの方法によって対応付けがなされるものとして説明する。即ち、本実施形態では、クライアント側プリンタプロキシ３７が、後述するようにＵＳＢポート毎にソケットを生成する。ソケットとは、アプリケーションがＴＣＰ／ＩＰの機能を利用する際に用いる標準的なＡＰＩ（Application Programming Interface ）としてよく知られているものであるため、その詳細説明は省略する。
【００４９】
なお、ＵＳＢ番号とポート番号を対応付ける方法は他にも種々考えられる。例えば、ユーザが自ら、クライアントＰＣ３において上記対応付けのための所定のＵＩ（ユーザインタフェース）画面を介して、ＵＳＢポートとポート番号を一対一で対応付けて入力する方法も考えられる。
【００５０】
ＵＳＢ番号とポート番号が対応付けられることにより、ユーザは、例えば所定のＵＩ画面を介して任意のＵＳＢポートのポート番号を調べる（表示させる）ことができる。そして、ＵＳＢ番号とポート番号の対応付けがなされたら、ユーザは、任意のＵＳＢプリンタ（ＵＳＢ接続されたプリンタ）を当該クライアントＰＣ３から使用可能なプリンタとして登録することができる。具体的には、例えばプリンタを追加するための画面を表示させ、新規プリンタとしてＴＣＰ／ＩＰポートを指定してプリンタのＩＰアドレス（ここではローカルホストを示す「１２７．０．０．１」）とポート番号（例えば５０００１）を入力すればよい。なお、各ＵＳＢ接続ジャック３１，３２，３３（換言すれば各ＵＳＢポート）は、いずれも、本発明の接続部の一例に相当するものである。
【００５１】
そして、ユーザがアプリケーション３８で作成した文書等をＵＳＢプリンタで印刷させる際は、所望のＵＳＢプリンタを指定するための所定の入力操作等を行うことで、その指定したＵＳＢプリンタに印刷させることができる。具体的には、例えば「ＩＰＰ：／／１２７．０．０．１：５０００１／ｉｐｐ」といったコマンドを入力してＵＳＢプリンタを指定する方法が考えられる。このようなコマンドによって印刷先のＵＳＢプリンタとしてローカルホストのポート５０００１が指定されると、印刷データは、ＴＣＰ／ＩＰソフト６２を介してクライアント側プリンタプロキシ３７における対応するソケットに入力される。クライアント側プリンタプロキシ３７は、ソケットに対応付けられているポート番号５０００１に基づき、ＵＳＢドライバ６３に対し、そのポート番号５０００１に対応したＵＳＢポートから印刷データを送信させる。
【００５２】
なお、本実施形態ではクライアントＰＣ３のＵＳＢ接続ジャックが複数であるため、上記のように任意のポート番号を設定する構成としたが、ＵＳＢ接続ジャックが１つの場合は、ＩＰＰのデフォルトポート番号として知られているポート番号６３１を用いればよい。
【００５３】
ところで、ＵＳＢポート毎にポート番号が対応付けられることで、ユーザは、任意のＵＳＢプリンタを指定して印刷データを送信することができるが、ポート番号だけでは、ユーザが所望のプリンタを容易に特定することは困難である。しかも、上記例のように所望のプリンタを指定するためにユーザ自らコマンドを入力すること自体も煩わしい。
【００５４】
そこでクライアント側プリンタプロキシ３７は、複数のＵＳＢプリンタを効率的に管理してユーザが選択しやすくするための仕組みも備えている。具体的には、ＰＰＣ６１からの、プリンタ検索データ（マルチキャスト要求。以下「デバイスサーチ要求」ともいう。）を受けて、ＵＳＢポート毎にプリンタ名の要求を行う。そして、プリンタからプリンタ名の応答があると、そのプリンタ名を、ポート番号（及びローカルホストＩＰアドレス）と対応付けてＰＰＣ６１に返す。プリンタ名は、本発明の装置情報の一例に相当するものである。
【００５５】
クライアント側プリンタプロキシ３７は、既述の通り、ＵＳＢ番号毎にポート番号を対応付けて管理しているが、これに加えて更に、ＵＳＢ番号毎に上記検索したプリンタ名も対応付けて管理している。即ち、クライアント側プリンタプロキシ３７は、図３に示すように、ＵＳＢポート毎に、プリンタ名とポート番号が対応付けられた管理データを保持している。
【００５６】
ＩＰＰにはもともと、ネットワーク向けにマルチキャストを行ってネットワーク接続されているプリンタを検索する機能が備えられており、ＰＰＣ６１がその役割を担っている。そのため、そのマルチキャストをローカルホスト宛に実行させれば、ローカルホスト経由で（即ちクライアント側プリンタプロキシ３７経由で）ＵＳＢ接続されたプリンタを検索することができる。
【００５７】
このように、ＵＳＢ毎にプリンタ名とポート番号が対応付けられることで、ユーザは、何れかのＵＳＢプリンタで印刷させたい場合にその所望のＵＳＢプリンタをプリンタ名をもとに容易に指定することができるようになる。
【００５８】
なお、デバイスサーチ要求は、例えば、ユーザが所定のＵＩ画面でローカルホストを対象として（延いてはＵＳＢ接続プリンタを対象として）任意のタイミングで行えるようにしてもよい。或いは、ユーザからの要求とは関係なくクライアント側プリンタプロキシ３７が定期的にＵＳＢ接続プリンタの検索を行って最新情報をＰＰＣ６１に返すようにしてもよい。
【００５９】
次に、第２プリンタ１２のソフトウェア構成について説明する。第２プリンタ１２は、ソフトウェアとして、プリンタ側クライアントプロキシ７０と、プリンタポートサーバ（以下「ＰＰＳ」という）７１と、ＴＣＰ／ＩＰソフト７２と、ＵＳＢドライバ７３と、ネットワークドライバ７４とを備えている。これら各ソフトウェアをＯＳＩ参照モデルの階層に対応させると、プリンタ側クライアントプロキシ７０及びＰＰＳ７１はセッション層に対応する。ネットワークドライバ７４、ＴＣＰ／ＩＰソフト７２、及びＵＳＢドライバ７３の階層は、いずれもクライアントＰＣ３と同様である。なお、ＵＳＢドライバ７３は、本発明の画像処理装置が備える送受信部の一例に相当するものである。
【００６０】
ＰＰＳ７１は、第２プリンタ１２においてＩＰＰを司る主要なソフトである。即ち、通信相手のクライアントＰＣ３との間で送受信される各種印刷関連データの処理手順の取り決めを担う。ＰＰＳ７１の基本的な機能は、クライアントＰＣ３のＰＰＣ６１と同じであり、ＩＰＰ規格に則って、印刷エンジン４７とＴＣＰ／ＩＰソフト７２との間でデータを中継する。なお、ＰＰＳ７１は、本発明の画像処理装置が備える送受信データ処理部の一例に相当するものである。
【００６１】
ＴＣＰ／ＩＰソフト７２はクライアントＰＣ３のＴＣＰ／ＩＰソフト６２と基本的に同じであり、ネットワークドライバ７４もクライアントＰＣ３のネットワークドライバ６４と基本的に同じであるため、これらについての説明は省略する。また、ＵＳＢドライバ７３も、ＵＳＢ規格でのデータ通信を担うという基本的機能についてはクライアントＰＣ３のＵＳＢドライバ６３と同じである。ただし、第２プリンタ１２のＵＳＢ接続ジャックは１つであるため、ＵＳＢドライバ６３は、その１つのＵＳＢ接続ジャック５１に接続された機器（本例ではクライアントＰＣ３）とのＵＳＢ通信を制御する。
【００６２】
プリンタ側クライアントプロキシ７０は、第２プリンタ１２においてローカルホストとして振る舞うソフトウェアであり、ＰＰＳ７１やＴＣＰ／ＩＰソフト７２からみればあたかもクライアントであるかのように振る舞う。即ち、ＴＣＰ／ＩＰソフト７２から渡されたローカルホスト宛（ＩＰアドレス「１２７．０．０．１」宛）のデータはＵＳＢドライバ７３へ渡し、ＵＳＢドライバ７３から渡されたデータはＴＣＰ／ＩＰソフト７２へ渡す。
【００６３】
つまり、プリンタ側クライアントプロキシ７０は、クライアントＰＣ３のクライアント側プリンタプロキシ３７と同様、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格のデータ通信を実現するために設けたものである。なお、プリンタ側クライアントプロキシ７０は、本発明の画像処理装置で実行される通信中継プログラムの一例に相当するものである。
【００６４】
（３）画像情報処理システム１の動作例（シーケンス）
次に、画像情報処理システム１の基本的な動作例について、図４を用いて説明する。クライアントＰＣ３において、例えばユーザがアプリケーション３８における所定のＵＩ操作によってＵＳＢ接続プリンタのデバイスサーチ要求を行うと、ＰＰＣ６１は、ローカルホスト宛に（即ちクライアント側プリンタプロキシ３７宛に）ＵＳＢ接続プリンタについてのデバイスサーチ要求を行う。すると、ＴＣＰ／ＩＰソフト６２はそのデバイスサーチ要求をクライアント側プリンタプロキシ３７に渡す。
【００６５】
クライアント側プリンタプロキシ３７は、ＰＰＣ６１からのデバイスサーチ要求を受けると、各ＵＳＢポートについて個別に、プリンタ名の要求（問い合わせ）を行う。具体的には、まずＵＳＢ接続ジャック３１に接続された第１プリンタ１１に対してプリンタ名を問い合わせる。すると、第１プリンタ１１のプリンタ側クライアントプロキシ７０が、第１プリンタ１１のプリンタ名（例：「ＮＰＲ−１２３４」）を応答する。クライアント側プリンタプロキシ３７は、第１プリンタ１１からプリンタ名の応答があると、その応答されたプリンタ名を管理データの１つとして登録し（図３参照）、かつ、その応答されたプリンタ名を、ポート番号（５０００１）及びＩＰアドレス（「１２７．０．０．１」）と対応付けて、ＴＣＰ／ＩＰソフト６２を介してＰＰＣ６１に返す。
【００６６】
クライアント側プリンタプロキシ３７は、他の２つのＵＳＢ接続ジャック３２，３３に接続されている２つのプリンタ１２，１３に対しても、同じようにして順次プリンタ名を問い合わせ、応答があったらそれを管理データとして登録し、かつポート番号及びＩＰアドレスと対応付けてＰＰＣ６１に返す。
【００６７】
ＰＰＣ３１は、クライアント側プリンタプロキシ３７から各ＵＳＢ接続プリンタ名が帰ってきたら、それらをまとめてサーチ結果としてアプリケーション３８に返す。アプリケーション３８は、サーチ結果を表示させることで、ユーザに対し、ＵＳＢ接続されたプリンタの最新情報を提示する。
【００６８】
このようにしてＵＳＢ接続プリンタの最新情報が得られると、ユーザは、印刷させたい所望のＵＳＢ接続プリンタを容易に選択することができる。そして、ユーザが例えば、アプリケーション３８で作成した文書等の印刷要求を、第２プリンタ１２を指定（即ちプリンタ選択画面でプリンタ名「ＰＲ−３４５６」（ポート番号５０００２）を指定）して行うと、ＰＰＣ６１からＴＣＰ／ＩＰソフト６２を介してクライアント側プリンタプロキシ３７宛に、アプリケーション３８からの印刷要求が届く。より詳しくは、クライアント側プリンタプロキシ３７がＵＳＢポート毎に生成したソケットのうち第２プリンタ１２に対応したソケットから印刷要求が入力される。クライアント側プリンタプロキシ３７は、第２プリンタ１２宛の印刷要求を受けると、ＵＳＢドライバ６３に対し、その印刷要求を第２プリンタ１２へ送信させる。
【００６９】
第２プリンタ１２は、クライアントＰＣ３からＵＳＢ経由で印刷要求を受信すると、プリンタ側クライアントプロキシ７０がその印刷要求をＰＰＳ７１に送出する。その際、送出元として、ＩＰアドレスは「１２７．０．０．１」、ポート番号はＩＰＰデフォルトの６３１が指定される。ＰＰＳ７１は、印刷要求を受けると、印刷データを印刷エンジン４７に出力して印刷を実行させる。そして、印刷が完了すると、ＰＰＳ７１は、印刷要求の送出元のローカルホスト宛に受信応答を送出する。この受信応答は、ＴＣＰ／ＩＰソフト７２を経てプリンタ側クライアントプロキシ７０に渡される。プリンタ側クライアントプロキシ７０は、その受信応答をＵＳＢドライバ７３に送信させる。
【００７０】
クライアントＰＣ３は、第２プリンタ１２からＵＳＢ経由で受信応答を受信すると、クライアント側プリンタプロキシ３７がその受信応答をＰＰＣ６１に送出する。ＰＰＣ６１は、受信応答に基づいて、第２プリンタ１２で印刷が完了したことを所定のＵＩ画面で表示させることができる。
【００７１】
（４）クライアントＰＣ３のクライアント側プリンタプロキシ３７による処理
次に、クライアントＰＣ３のクライアント側プリンタプロキシ３７の具体的処理内容を、図５を用いて説明する。クライアントＰＣ３のＣＰＵ２１は、起動後、所定のタイミングで図５のクライアント側プリンタプロキシ処理を開始する。
【００７２】
ＣＰＵ２１は、図５のクライアント側プリンタプロキシ処理を開始すると、まずＳ１１０〜Ｓ１３０の処理で、ＴＣＰソケットの準備を行う。即ち、Ｓ１１０で、ｓｏｃｋｅｔ（）コマンドによりＴＣＰソケットを生成する。Ｓ１２０で、ｂｉｎｄ（）コマンドにより、ＴＣＰ／ＩＰソフトにＩＰアドレスである「１２７．０．０．１」を登録し、何れか１つのＵＳＢポート（ＵＳＢ接続ジャック）に対してポート番号を指定する。Ｓ１３０では、ＵＳＢの全ポートについてソケットの生成が完了したか否か判断し、完了していなければＳ１１０に戻る。このようにしてＵＳＢの各ポートに対して順次ソケットを生成していき、完了する。次に、Ｓ１４０で、ｓｏｃｋｅｔ（）コマンドによりＵＤＰソケットを生成する。Ｓ１５０で、ｂｉｎｄ（）コマンドにより、プリンタ検索用のマルチキャストアドレス「２２４．０．０．２５１」を登録し、ポート番号「５３５３」を指定する。これにより、プリンタ検索（デバイスサーチ）要求が指示されると、当該ＵＤＰソケットもデバイスサーチのマルチキャスト対象となる。
【００７３】
Ｓ１１０からＳ１５０の処理が完了すると、Ｓ１６０で、ｌｉｓｔｅｎ（）コマンドによりソケット接続準備を行う。そして、Ｓ１７０で、イベント待ち状態に入る。
何らかのイベントが発生すると、Ｓ１８０で、そのイベントはＴＣＰソケットからのものであるか否か、即ちＴＣＰソケットからデータが入ってきたか否かを判断する。ＴＣＰソケットからデータがあった場合は、Ｓ１９０で、そのＴＣＰソケットからのデータが印刷関連データ（印刷データを含む印刷要求など）であるか否かを判断する。印刷関連データでなければＳ３００で所定のエラー処理を行ってＳ１７０に戻る。印刷関連データである場合は、Ｓ２００で、ｕｓｂ＿ｓｅｎｄ（）コマンドにより、その印刷関連データを指定ポート（データ入力のあったＴＣＰソケットに対応付けられたポート番号）のＵＳＢ接続プリンタへ出力させて、Ｓ１７０に戻る。
【００７４】
Ｓ１８０で、ＴＣＰソケットからはデータはないと判断した場合は、Ｓ２１０で、イベントはＵＳＢドライバ６３からのものであるか否かを判断する。ＵＳＢドライバ６３からデータがあった場合は、Ｓ２２０で、そのＵＳＢドライバからのデータが印刷関連データ（例えば既述の受信応答など）であるか否かを判断する。印刷関連データでなければＳ３００で所定のエラー処理を行ってＳ１７０に戻る。印刷関連データである場合は、Ｓ２３０で、ｓｅｎｄ（）コマンドにより、その印刷関連データをＴＣＰ／ＩＰ経由でＰＰＣ６１へ転送して、Ｓ１７０に戻る。
【００７５】
Ｓ２１０で、ＵＳＢドライバ６３からはデータはないと判断した場合は、Ｓ２４０で、イベントはＵＤＰソケットからのものであるか否か、即ちＵＤＰソケットからデータが入ってきたか否かを判断する。ＵＤＰソケットからデータがあった場合は、Ｓ２５０で、そのＵＤＰソケットからのデータが検索データ（デバイスサーチ要求）であるか否かを判断する。検索データでなければＳ３００で所定のエラー処理を行ってＳ１７０に戻る。検索データである場合は、Ｓ２６０で、何れかのＵＳＢポートに対してＵＳＢ接続プリンタのプリンタ名を問い合わせる。Ｓ２７０で、問い合わせ結果、即ちその問い合わせに対して問い合わせ先のＵＳＢ接続プリンタから応答されたプリンタ名を、ＴＣＰ／ＩＰ経由でＰＰＣ６１へ返す。Ｓ２８０で、ＵＳＢの全ポートについてプリンタ名の問い合わせが完了したか否か判断し、完了していなければＳ２６０に戻る。このようにしてＵＳＢ接続されている各プリンタのプリンタ名を順次取得し、全てのＵＳＢ接続プリンタについてプリンタ名取得が完了すると、Ｓ１７０に戻る。
【００７６】
Ｓ２４０で、ＵＤＰソケットからはデータはないと判断した場合は、Ｓ２９０で、発生したイベントに対応した処理を実行して、Ｓ１７０に戻る。
（５）第２プリンタ１２のプリンタ側クライアントプロキシ７０による処理
次に、第２プリンタ１２のプリンタ側クライアントプロキシ７０の具体的処理内容を、図６を用いて説明する。第２プリンタ１２のＣＰＵ４１は、起動後、所定のタイミングで図６のプリンタ側クライアントプロキシ処理を開始する。
【００７７】
ＣＰＵ４１は、図６のプリンタ側クライアントプロキシ処理を開始すると、まずＳ４１０で、ｓｏｃｋｅｔ（）コマンドによりＴＣＰソケットを生成する。Ｓ４２０で、ｂｉｎｄ（）コマンドにより、ＴＣＰ／ＩＰソフト７２にローカルホストのＩＰアドレスである「１２７．０．０．１」を登録し、ＵＳＢポート（ＵＳＢ接続ジャック）に対してポート番号６３１を指定する。そして、Ｓ４３０で、イベント待ち状態に入る。
【００７８】
何らかのイベントが発生すると、Ｓ４４０で、そのイベントはＴＣＰソケットからのものであるか否か、即ちＴＣＰソケットからデータが入ってきたか否かを判断する。ＴＣＰソケットからデータがあった場合は、Ｓ４５０で、そのＴＣＰソケットからのデータが印刷関連データであるか否かを判断する。印刷関連データでなければＳ５３０で所定のエラー処理を行ってＳ４３０に戻る。印刷関連データである場合は、Ｓ４６０で、ｕｓｂ＿ｓｅｎｄ（）コマンドにより、その印刷関連データをＵＳＢ経由でクライアントＰＣ３へ転送させて、Ｓ４３０に戻る。
【００７９】
Ｓ４４０で、ＴＣＰソケットからはデータはないと判断した場合は、Ｓ４７０で、イベントはＵＳＢドライバ７３からのものであるか否かを判断する。ＵＳＢドライバ７３からデータがあった場合は、Ｓ４８０で、そのＵＳＢドライバ７３からのデータが印刷関連データであるか否かを判断する。印刷関連データである場合は、Ｓ４９０で、ｓｅｎｄ（）コマンドにより、その印刷関連データをＴＣＰ／ＩＰ経由でＰＰＳ７１へ転送して、Ｓ４３０に戻る。
【００８０】
Ｓ４８０で、ＵＳＢドライバ７３からのデータが印刷関連データではないと判断した場合は、Ｓ５００で、ＵＳＢドライバ７３からのデータが検索データ（デバイスサーチ要求）であるか否か判断する。検索データでなければＳ５３０で所定のエラー処理を行ってＳ４３０に戻る。検索データである場合は、Ｓ５１０で、当該第２プリンタ１２のプリンタ名をＵＳＢ経由でクライアントＰＣ３へ返し、Ｓ４３０に戻る。
【００８１】
Ｓ４７０で、ＵＳＢからはデータはないと判断した場合は、Ｓ５２０で、発生したイベントに対応した処理を実行して、Ｓ４３０に戻る。
（６）実施形態の効果等
以上説明したように、本実施形態の画像情報処理システム１では、クライアントＰＣ３において、ＴＣＰ／ＩＰとＵＳＢの変換（中継）用にクライアント側プリンタプロキシ３７を設けることで、クライアントＰＣ３をローカルホストとして振る舞わせる。即ち、クライアント側プリンタプロキシ３７は、ローカルホストアドレス「１２７．０．０．１」を持ち、ネットワークプリンタとして振る舞う。一方、各プリンタ１１，１２，１３にもそれぞれ、ＴＣＰ／ＩＰとＵＳＢの変換（中継）用にプリンタ側クライアントプロキシ７０を設けることで、各プリンタ１１，１２，１３をそれぞれローカルホストとして振る舞わせる。即ち、各プリンタ１１，１２，１３は、ローカルホストアドレス「１２７．０．０．１」を持ち、ネットワーククライアントとして振る舞う。
【００８２】
そして、クライアントＰＣ３においてデバイスサーチ要求がなされると、そのデバイスサーチ要求は、ローカルホストとしてのクライアント側プリンタプロキシ３７にも入力される。デバイスサーチ要求を受けたクライアント側プリンタプロキシ３７は、ＵＳＢ接続プリンタの各々に対して順次プリンタ名を問い合わせ、その問い合わせ結果をポート番号及びＩＰアドレスと対応付けてＰＰＣ６１に返す。なお、ＩＰアドレスは共通の「１２７．０．０．１」であるが、プリンタ名及びポート番号はＵＳＢ接続プリンタ毎に異なる。
【００８３】
このような構成により、クライアントＰＣ３においてアプリケーション３８からいずれかのＵＳＢ接続プリンタ宛に印刷データが送信されると、その印刷データはＰＰＣ６１でＩＰＰに従って処理された上でクライアント側プリンタプロキシ３７に渡される。クライアント側プリンタプロキシ３７は、その渡された印刷データを、対応するポート番号のＵＳＢ接続プリンタへ送信させる。即ち、ＩＰＰ規格の印刷データをＵＳＢ経由でプリンタへ送信させる。
【００８４】
そのため、本実施形態の画像情報処理システム１によれば、ＩＰＰでデータを送受信するための既存のソフトウェア（例えばＰＰＣ６１）に対する改変を抑えつつ、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格に従ってＵＳＢ経由でＩＰＰ規格のデータを送受信することができる。
【００８５】
現在策定されているＩＰＰ  ｏｖｅｒ  ＵＳＢ規格のドラフトでは、ＩＰＰとＵＳＢを結ぶ具体的な仕組みが規定されているわけではなく、ましてや、複数のプリンタをＵＳＢ接続して個別に使い分けるための具体的方法等については触れられていない。このような現状に対し、本実施形態のように、クライアント側とプリンタ側の双方にＴＣＰ／ＩＰとＵＳＢを中継するプロキシを設けることで、ＩＰＰ  ｏｖｅｒ  ＵＳＢ規格によるデータ通信を具体的かつ容易に実現できる。
【００８６】
しかも、本実施形態では、ＵＳＢ接続プリンタ毎に個別に、プリンタ名とポート番号が対応付けられて管理されるため、ユーザは、所望のＵＳＢ接続プリンタを容易かつ確実に指定することができる。
【００８７】
（７）変形例
本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
【００８８】
例えば、上記実施形態では、送信データを情報処理装置内で帰還させるための自装置アドレスの一例として、ＴＣＰ／ＩＰプロトコルにおける自装置アドレス（ループバックアドレス）として一般的であるローカルホストアドレス「１２７．０．０．１」を例示したが、このアドレスはあくまでも一例である。自装置アドレスを具体的にどのように設定するかについては、対応するプロトコル等に応じて適宜決めることができる。例えば、ＯＳが他のアドレスを自装置アドレスとしてサポートしている場合は、そのアドレスを自装置アドレスとして用いてもよい。また例えば、ＢＳＤソケット等がサポートしているＡＦ＿ＵＮＩＸ（登録商標）等のアドレスファミリを用いてもよい。
【００８９】
また、上記実施形態では、本発明の画像処理装置の一例としてプリンタを例示したが、プリンタ単体として構成されたものに限定されるものでないことはいうまでもなく、プリンタ機能（印刷機能）以外の他の機能を兼ね備えた装置であってもよい。
【００９０】
また、本発明は、上述したクライアントＰＣ３と各プリンタ１１，１２，１３との間のデータ通信への適用に限定されるものではない。即ち、情報処理装置（クライアント）とサーバとの間で所定のプロトコルで所定の通信回線を介してデータ送受信できるよう構成されていると共に、そのプロトコルでの送受信を異なる種類の通信回線でも送受信できるよう構成された各種の情報処理システムに対して本発明を適用できる。
【符号の説明】
【００９１】
１…画像情報処理システム、３…クライアントＰＣ、５，６，７…ＵＳＢケーブル、１１…第１プリンタ、１２…第２プリンタ、１３…第３プリンタ、２１，４１…ＣＰＵ、２２，４２…ＲＯＭ、２３，４３…ＲＡＭ、２４…記憶部、２５，４５…表示部、２６，４６…操作部、２８，４８…ＵＳＢインタフェース、２９，４９…ネットワークインタフェース、３１，３２，３３，５１…ＵＳＢ接続ジャック、３６…ＯＳ、３７…クライアント側プリンタプロキシ、３８…アプリケーション、４４…不揮発性メモリ、４７…印刷エンジン、５２…プリンタ制御ソフトモジュール、６１…ＰＰＣ、６２，７２…ＴＣＰ／ＩＰソフト、６３，７３…ＵＳＢドライバ、６４，７４…ネットワークドライバ、７０…プリンタ側クライアントプロキシ、７１…ＰＰＳ
【図１】
2014103504.tif 000003
【図２】
2014103504.tif 000004
【図３】
2014103504.tif 000005
【図４】
2014103504.tif 000006
【図５】
2014103504.tif 000007
【図６】
2014103504.tif 000008