(57)【特許請求の範囲】
【請求項１】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行する方法であって、
カーネルＵＳＢドライバーを介してＩＰＰ−ＵＳＢプロキシ上でＵＳＢデータを受信するステップと、
ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシからＨＴＴＰサーバーへ送信するステップと、
前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、当該ＨＴＴＰ＋ＩＰＰリクエストに対応するＩＰＰリクエストを直接、当該ＩＰＰリクエストを処理するＩＰＰサービスモジュールへ送信するステップと、
前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行するステップと、
前記ＩＰＰリスポンスがＨＴＴＰリスポンスにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを、前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、
前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込むステップと、
前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢプロトコルを用いてＵＳＢインターフェイス上で、クライアント装置へ送信するステップと、
を備える。
【請求項２】
前記ＵＳＢデータをまず前記ＵＳＢドライバーが受信してから続いて標準ファイルＩ／Ｏアプリケーションプログラミングインターフェイス（ＡＰＩ）を用いてｒｅａｄ（）機能コールを介して受信するステップと、
前記ＵＳＢデータをｓｅｎｄ（）ソケットＡＰＩ機能コールを用いて前記ＩＰＰ−ＵＳＢプロキシから前記ＨＴＴＰサーバーへ送信するステップと、
を備える、請求項１に記載の方法。
【請求項３】
前記ＨＴＴＰ＋ＩＰＰリクエストを前記ＨＴＴＰサーバー上のソケットｒｅｃｖ（）ＡＰＩ機能コールを介して前記ＨＴＴＰサーバー上で受信する、請求項２に記載の方法。
【請求項４】
前記ＨＴＴＰ＋ＩＰＰリスポンスを前記ＨＴＴＰサーバーから前記ＨＴＴＰサーバーにより発行されたソケットｓｅｎｄ（）ＡＰＩ機能コールを介して前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、
前記ＨＴＴＰ＋ＩＰＰリスポンスをソケットｒｅｃｖ（）機能を介して前記ＩＰＰ―ＵＳＢプロキシ上で受信するステップと、
前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを標準ファイルＩ／Ｏｗｒｉｔｅ（）機能コールを用いて前記カーネルＵＳＢドライバーを介して前記ＵＳＢインターフェイスに書き込むステップと、
を備える、請求項１に記載の方法。
【請求項５】
前記ＵＳＢデータを、ＨＴＴＰ＋ＩＰＰリクエストとして前記ＵＳＢデータを送信するように構成される前記クライアント装置から受信するステップを備える、請求項１に記載の方法。
【請求項６】
前記クライアント装置はＩＰＰ−ＵＳＢクライアントを含むオペレーティングシステム（ＯＳ）を実行するパーソナルコンピューターである、請求項５に記載の方法。
【請求項７】
前記ＩＰＰ−ＵＳＢプロキシを多機能周辺機器（ＭＦＰ）であるホスト装置にホストするステップと、
前記ＨＴＴＰ＋ＩＰＰリクエストに続く印刷データを処理するステップと、
を備える、請求項６に記載の方法。
【請求項８】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行する方法を実行するコンピューター読取可能なコードを含むコンピュータープログラムであって、当該方法は、
カーネルＵＳＢドライバーを介してＩＰＰ−ＵＳＢプロキシ上でＵＳＢデータを受信するステップと、
ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシからＨＴＴＰサーバーへ送信するステップと、
前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、当該ＨＴＴＰ＋ＩＰＰリクエストに対応するＩＰＰリクエストを直接、当該ＩＰＰリクエストを処理するＩＰＰサービスモジュールへ送信するステップと、
前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行するステップと、
前記ＩＰＰリスポンスがＨＴＴＰリスポンスにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを、前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、
前記ＩＰＰ−ＵＳＢプロキシにより受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込むステップと、
前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢプロトコルを用いてＵＳＢインターフェイス上で、クライアント装置へ送信するステップと、
を備える。
【請求項９】
前記ＵＳＢデータをまず前記ＵＳＢドライバーが受信してから続いて標準ファイルＩ／ＯＡＰＩｒｅａｄ（）機能コールを用いるステップと、
前記ＵＳＢデータをｓｅｎｄ（）ソケットＡＰＩ機能コールを用いて前記ＩＰＰ−ＵＳＢプロキシから前記ＨＴＴＰサーバーへ、ＨＴＴＰ＋ＩＰＰリクエストの形式で送信するステップと、
を備える、請求項８に記載のコンピュータープログラム。
【請求項１０】
前記ＨＴＴＰ＋ＩＰＰリクエストを前記ＨＴＴＰサーバー上のソケットｒｅｃｖ（）ＡＰＩ機能コールを介して前記ＨＴＴＰサーバー上で受信する、請求項９に記載のコンピュータープログラム。
【請求項１１】
前記ＨＴＴＰ＋ＩＰＰリスポンスを前記ＨＴＴＰサーバーから前記ＨＴＴＰサーバーによるソケットＡＰＩｓｅｎｄ（）機能を介して前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、
前記ＨＴＴＰ＋ＩＰＰリスポンスをソケットＡＰＩｒｅｃｖ（）機能コールを介して前記ＩＰＰ―ＵＳＢプロキシ上で受信するステップと、
前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを標準ファイルＩ／ＯＡＰＩｗｒｉｔｅ（）機能コールを用いて前記カーネルＵＳＢドライバーを介して前記ＵＳＢインターフェイスに書き込むステップと、
を備える、請求項８に記載のコンピュータープログラム。
【請求項１２】
前記ＵＳＢデータを、ＨＴＴＰ＋ＩＰＰリクエストとして前記ＵＳＢデータを送信するように構成される前記クライアント装置から受信するステップを備える、請求項８に記載のコンピュータープログラム。
【請求項１３】
前記クライアント装置はＩＰＰ−ＵＳＢクライアントを含むオペレーティングシステム（ＯＳ）を実行するパーソナルコンピューターである、請求項１２に記載のコンピュータープログラム。
【請求項１４】
前記ＩＰＰ−ＵＳＢプロキシを多機能周辺機器（ＭＦＰ）であるホスト装置にホストするステップと、
前記ＨＴＴＰ＋ＩＰＰリクエストに続く印刷データを処理するステップと、
を備える、請求項１３に記載のコンピュータープログラム。
【請求項１５】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行するシステムであって、当該システムは、
ＵＳＢ接続と、
ＵＳＢデータを送信するクライアント装置と、
前記ＵＳＢ接続を介して前記クライアント装置と接続されたホスト装置と、
を備え、
前記ホスト装置はカーネルＵＳＢドライバー、ＩＰＰ−ＵＳＢプロキシ、ＨＴＴＰサーバー及びＩＰＰサービスモジュールを有し、
前記ホスト装置は以下を実行する、
前記カーネルＵＳＢドライバーを介して前記ＩＰＰ−ＵＳＢプロキシ上で前記ＵＳＢデータを受信し、
ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシから前記ＨＴＴＰサーバーへ送信し、
前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、前記ＩＰＰリクエストを直接、前記ＩＰＰリクエストを処理する前記ＩＰＰサービスモジュールへ送信し、
前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行し、
前記ＩＰＰリスポンスがＨＴＴＰリクエストにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを、前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信し、
前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込み、
前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢ接続により前記クライアント装置へ送信する。
【請求項１６】
前記ホスト装置は、
前記ＩＰＰ−ＵＳＢプロキシにより発行され、ｒｅａｄ（）ファイルＩ／ＯＡＰＩ機能コールを介して受信した前記ＵＳＢデータを受信し、
前記ＵＳＢデータをｓｅｎｄ（）ソケットＡＰＩ機能コールを用いて前記ＩＰＰ−ＵＳＢプロキシから前記ＨＴＴＰサーバーへ送信する、
請求項１５に記載のシステム。
【請求項１７】
前記ＨＴＴＰ＋ＩＰＰリクエストを前記ＨＴＴＰサーバー上のソケットｒｅｃｖ（）ＡＰＩ機能コールを介して前記ＨＴＴＰサーバー上で受信し、
前記ＨＴＴＰサーバーからの前記ＩＰＰリクエストを、直接前記ＩＰＰサービスモジュールへパスし、
前記ＩＰＰサービスモジュールによる前記ＩＰＰリクエストを処理し、前記ＩＰＰリスポンスを直接前記ＨＴＴＰサーバーへパスし、
前記ＨＴＴＰ＋ＩＰＰリスポンスをソケットＡＰＩｒｅｃｖ（）機能コールを介して前記ＩＰＰ−ＵＳＢプロキシ上で受信し、
前記ＩＰＰ−ＵＳＢプロキシにより受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを標準ファイルＩ／Ｏｗｒｉｔｅ（）機能コールを用いて前記カーネルＵＳＢドライバーを介して前記ＵＳＢインターフェイスに書き込む、
請求項１６に記載のシステム。
【請求項１８】
前記ホスト装置は、前記ＵＳＢデータを、ＨＴＴＰ＋ＩＰＰリクエストとして前記ＵＳＢデータを送信するように構成される前記クライアント装置から受信する、請求項１５に記載のシステム。
【請求項１９】
前記クライアント装置はＩＰＰ−ＵＳＢクライアントを含むオペレーティングシステム（ＯＳ）を実行するパーソナルコンピューターである、請求項１８に記載のシステム。
【請求項２０】
前記ＩＰＰ−ＵＳＢプロキシを、多機能周辺機器（ＭＦＰ）であるホスト装置にホストし、
前記ＩＰＰ−ＵＳＢクライアントを含む前記ホスト装置上の前記ＨＴＴＰ＋ＩＰＰリクエストを処理する、
請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークトラフィックのようにデータの的確で完全な送受信を保証しＴＣＰ／ＩＰの使用が不要となるような、ユニバーサルシリアルバス（ＵＳＢ）での使用の際にＴＣＰ／ＩＰ（又はインターネットプロトコル群）の使用及びＴＣＰ／ＩＰと関連するオーバーヘッド処理を回避するための方法及びシステムに関する。
【背景技術】
【０００２】
あるパーソナルコンピューターと他のパーソナルコンピューター及び／又はその他のネットワークデバイスとは電子メッセージを用いてネットワーク上（又はネットワーク接続上）で通信が可能となったことによって、ネットワークにより情報を送受信し、情報にアクセスする能力が向上した。パーソナルコンピューターやネットワークデバイスの間で電子メッセージを送信する際には電子メッセージはプロトコールスタックを介し、電子メッセージ内のデータに対して各種処理が実行される（例えば、パケッティング、ルーティング、フロー制御等）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＴＣＰ／ＩＰはインターネットの他、個人や企業のネットワークパケットにおいてネットワークトラフィックをカプセル化するのに用いられるユニバーサルプロトコルである。広く用いられるその他のプロトコルとして、例えば、ウェブ上のクライアント／サーバー間の通信に用いられるＨＴＴＰ、ファイル送受信に用いられるＦＴＰ等が挙げられるが、これらを含むほとんどのインターネットプロトコルはＴＣＰ／ＩＰを必要とする。その理由の一つとしてＩＰは下位プロトコルであるが、ＩＰはルーティング可能であり、Ａ点からＢ点までのオーバーヘッドトラバースルーターが最低限のものだからである。ここで、「点」とは「ホスト」として理解され、例えば、コンピューター、モバイルデバイス等のＩＰアドレスを有するあらゆるデバイスを含む。ＩＰは、データグラムプロトコルであり、カプセル化したパケットの送信が確実ではないため、実際には常にＴＣＰとともに用いられる。
【０００４】
ＴＣＰは複雑なアルゴリズムを有し、Ａ点からＢ点までのデータの送信とデータの完全性を保証するので、上述のネットワークにおいて活用される。ＩＰのみでは確実ではなく、データ（パケット）が失われるおそれがある。ＴＣＰの設計により、どんなに多くのパケットが失われ、データの完全性が不足するような著しく信頼性の低い媒体であってもデータの送信が確実となる。しかし、ＴＣＰやその関連するアルゴリズムによって得られる利点はコストが高く、相当量の処理能力を必要とする。
【課題を解決するための手段】
【０００５】
本発明の実施形態によれば、ＴＣＰ／ＩＰバイパスを含む方法とシステムが開示され、これにより、当該通信が実行されるメディアにおいてデータの完全性及び的確な送信が保証されればＴＣＰの使用が不要となる手助けとなり、ＴＣＰ／ＩＰ及びこれに関係するオーバーヘッドが不要となる。本明細書において、具体的な信頼できるメディアとしてユニバーサルシリアルバス（ＵＳＢ）が適用されており、送受信されたデータの的確で完全な送受信を保証する。
【０００６】
上記の事情に鑑みて、ユニバーサルシリアルバス（ＵＳＢ）上のＴＣＰ／ＩＰバイパスを容易にする、多機能周辺装置（ＭＦＰ）等のコンピューター装置やホスト装置等と関連付けられたソフトウェアモジュール又はソフトウェアアプリケーションを有することが好ましい。これにより、例えばクライアントデバイス上で必要となるソフトウェアアプリケーション及び／又はプリンタードライバーのインストールを削減及び／又は不要とすることによりＭＦＰの印刷性能を向上させうる。
【０００７】
本発明の実施形態によれば、前記ソフトウェアモジュール又はプロキシは既存／稼働中のコンポーネントに導入することができ、これらはオペレーティングシステム（ＯＳ）又はカーネルＵＳＢドライバーを有するＴＣＰ／ＩＰネットワークインターフェイス、ＨＴＴＰサーバー及びＩＰＰサーバーで動作しうる。また、ソフトウェアアプリケーション又はプロキシはブリッジとしての役割を果たし、本明細書に開示されるホスト装置のループバック（内蔵）インターフェイス及び標準ソケットＡＰＩを用いることによってユニバーサルシリアルバス（ＵＳＢ）上のＴＣＰ／ＩＰバイパスを実現することができる。
【０００８】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行する方法が開示され、当該方法は、カーネルＵＳＢドライバーを介してＩＰＰ−ＵＳＢプロキシ上でＵＳＢデータを受信するステップと、ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシからＨＴＴＰサーバーへと送信するステップと、前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、当該ＨＴＴＰ＋ＩＰＰリクエストに対応するＩＰＰリクエストを直接、当該ＩＰＰリクエストを処理するＩＰＰサービスモジュールへ送信するステップと、前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行するステップと、前記ＩＰＰリスポンスがＨＴＴＰリスポンスにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを、前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込むステップと、前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢプロトコルを用いてＵＳＢインターフェイス上で、クライアント装置へ送信するステップと、を備える。
【０００９】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行する方法を実行するコンピューター読取可能なコードを含むコンピュータープログラムが開示され、当該方法は、カーネルＵＳＢドライバーを介してＩＰＰ−ＵＳＢプロキシ上でＵＳＢデータを受信するステップと、ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシからＨＴＴＰサーバーへと送信するステップと、前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、当該ＨＴＴＰ＋ＩＰＰリクエストに対応するＩＰＰリクエストを直接、当該ＩＰＰリクエストを処理するＩＰＰサービスモジュールへ送信するステップと、前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行するステップと、ＨＴＴＰリスポンスにカプセル化された前記ＩＰＰリスポンスを前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、前記ＩＰＰリスポンスがＨＴＴＰリスポンスにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを前記ＩＰＰ−ＵＳＢプロキシにより受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込むステップと、前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢプロトコルを用いてＵＳＢインターフェイス上で、クライアント装置へ送信するステップと、を備える。
【００１０】
ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行するシステムが開示され、当該システムは、ＵＳＢ接続と、ＵＳＢデータを送信するクライアント装置と、前記ＵＳＢ接続を介して前記クライアント装置と接続されたホスト装置と、を備え、前記ホスト装置はカーネルＵＳＢドライバー、ＩＰＰ−ＵＳＢプロキシ、ＨＴＴＰサーバー及びＩＰＰサービスモジュールを有し、前記ホスト装置は以下を実行する、前記カーネルＵＳＢドライバーを介して前記ＩＰＰ−ＵＳＢプロキシ上で前記ＵＳＢデータを受信し、ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストであるＨＴＴＰ＋ＩＰＰリクエストとして、前記ＵＳＢデータを、ＴＣＰ／ＩＰをバイパスして、前記ＩＰＰ−ＵＳＢプロキシから前記ＨＴＴＰサーバーへと送信し、前記ＨＴＴＰサーバー上で前記ＨＴＴＰ＋ＩＰＰリクエストを受信し、前記ＩＰＰリクエストを直接、前記ＩＰＰリクエストを処理する前記ＩＰＰサービスモジュールへ送信し、前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行し、前記ＩＰＰリスポンスがＨＴＴＰリクエストにカプセル化されたＨＴＴＰ＋ＩＰＰリスポンスを、前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信し、前記ＨＴＴＰサーバーから受信された前記ＨＴＴＰ＋ＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込み、前記ＨＴＴＰ＋ＩＰＰリスポンスに対応するデータをＵＳＢ接続により前記クライアント装置へ送信する。
【００１１】
上述の概要の説明と後述の詳細な説明は例示的で説明のためのものであり、特許請求の範囲に記載される本発明を詳細に説明するものである
【００１２】
本発明をより理解するために、図面が添付され、本明細書に組み込まれ、その一部を構成する。図面は本発明の実施形態を示すものであり、詳細な説明と合わせて、本発明の原理を説明するものである。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の実施形態におけるＴＣＰ／ＩＰバイパスを有するシステムを示す。
【図２】図２は本発明の実施形態においてＴＣＰ／ＩＰバイパスを適用した場合のフローチャートを示す。
【発明を実施するための形態】
【００１４】
以下に、添付の図面を参照して、本発明の具体的な実施形態について、詳細に説明する。可能な限り、各図面及び詳細な説明において同様の又は類似の要素には同様の参照符号が付加される。
【００１５】
本開示はユニバーサルシリアルバス（ＵＳＢ）上でのＴＣＰ／ＩＰバイパスの例示的な適用の実施についてのシステム及び方法に関する。例えば、以下に開示される方法は本発明の実施形態における、「ＵＳＢ上のＩＰＰ」又は「ＩＰＰ−ＵＳＢ」（インタネットプリンティングプロトコル―ユニバーサルシリアルバス）と称されるものを適用しうる。
【００１６】
ＩＰＰクライアントとＩＰＰサーバーとの間のＩＰＰ−ＵＳＢ通信方法は２０１２年１２月５日付の「ＵＳＢプリントインターフェイスクラスＩＰＰプロトコルスペシフィケーション」において定義される。当該スペシフィケーションはＴＣＰ／ＩＰカプセル化を必要としない、ＵＳＢ上でのＨＴＴＰ＋ＩＰＰリクエストとリスポンスの送信についての方法を定義する。
【００１７】
本発明の実施形態において、ＨＴＴＰ＋ＩＰＰデータ（リクエスト／リスポンス）をＵＳＢから直接読み書きするアプリケーション又はプロキシを用いて、既存のＨＴＴＰ及びＩＰＰサーバーにＨＴＴＰ＋ＩＰＰデータを送信するために標準ソケットＡＰＩやインターフェイスを用いる内部ＴＣＰ／ＩＰループバックインターフェイスを用いて、ＩＰＰ−ＵＳＢの実装及びサポートをするシステム及び方法が開示される。また、本明細書に開示されるシステム及び方法によれば、リクエストが（標準ソケットＡＰＩ及び階層を用いて）標準ネットワークインターフェイスを介して送信されたかのように受信され処理されるため、ＨＴＴＰ及びＩＰＰサーバーへの影響を最小限に抑えられる。また、リスポンスは逆方向においても同様に処理することができる。
【００１８】
ＩＰＰ−ＵＳＢはＵＳＢ接続上でＩＰＰ及びＨＴＴＰを用いてプリンターと通信するために用いられるプロトコルである。通常ＩＰＰを用いて通信を行うプリンターはネットワーク上で通信し、パケットのカプセル化は以下のようになされる。
【００１９】
【表１】
0006386497.tif 000002
カプセル化は上から下へなされる。つまり、ＩＰＰはＨＴＴＰでカプセル化され、ＨＴＴＰはＴＣＰでカプセル化され、ＴＣＰはＩＰでカプセル化される。
【００２０】
ＩＰＰ−ＵＳＢにおいてはＴＣＰ及びＩＰの階層は省略されてカプセル化が簡略化される。
【００２１】
【表２】
0006386497.tif 000003
【００２２】
このような簡略化が可能な理由はイーサネット（登録商標）やＷｉ−Ｆｉ等の接続形式と異なり、ＵＳＢは直接的な点と点との接続であり、確実に整合的で的確なデータとパケットの送信を実行することができるからである。ＨＴＴＰとＩＰＰの両方が通常、イーサネット（登録商標）やＷｉ−Ｆｉ等の従来からのネットワークメディアで送信できることから、ＴＣＰ／ＩＰによって確実な送信（データの整合性）、ネットワークを横断することができる（例えば、ＴＣＰ／ＩＰはルータブルである）ことを理由に、ＴＣＰ／ＩＰを必須とすることができる。ＴＣＰ／ＩＰによってクライアント／サーバー間の通信のためのＡＰＩ、「ソケット層ＡＰＩ」を活用することができる。
【００２３】
図１は本発明の実施形態におけるＴＣＰ／ＩＰバイパスを有するシステム１００を図示する。図１に示すように、システム１００は少なくとも一以上のクライアント装置１１０、ホスト装置１２０、及び少なくとも一以上のクライアント装置１１０とホスト装置１２０とを接続するＵＳＢ接続１８０を備える。例えば、ＵＳＢ接続１８０として暗号化されていない又は認証のないワイヤーやＵＳＢケーブルを用いることができる。
【００２４】
本発明の実施形態において、少なくとも一以上のクライアント装置１１０は例えば、マックＯＳ、ウィンドウズ（登録商標）、リナックス（登録商標）又はその他のＩＰＰ−ＵＳＢクライアントを有するＯＳが実行されるＰＣ等のＩＰＰクライアント１１２が好ましい。クライアント装置１１０はプロセッサー又は中央処理装置（ＣＰＵ）、及びソフトウェアプログラムやデータ（印刷ファイル等）を記憶する一以上のメモリーを有する。プロセッサー又はＣＰＵはコンピュータープログラムの命令を実行して、少なくとも一以上のクライアント装置１１０の少なくとも一部の機能を実行及び／又は制御する。
【００２５】
上述のように、クライアント装置１１０はオペレーティングシステム（ＯＳ）を有し、ＯＳはコンピューターハードウェアを管理し、様々なソフトウェアプログラムが効率的に実行されるように共通するサービスを提供する。ソフトウェアプログラムとして例えば、アプリケーションソフトウェアやプリンタードライバーソフトウェアが挙げられる。例えば、プリンタードライバーソフトウェアは複合機やプリンターを制御し、例えばプリンタードライバーソフトウェアがインストールされているクライアント装置１１０に接続されるホスト装置１２０等が挙げられる。実施形態によっては、プリンタードライバーソフトウェアにより画像及び／又は文書データに基づいて印刷ジョブ及び／又は文書を作成することができる。また、プリンタードライバーソフトウェアによってクライアント装置１１０からホスト装置１２０としての例えば複合機やプリンター等への印刷ジョブの送信を制御しうる。
【００２６】
本発明の実施形態において、ホスト装置１２０はプリンター、多機能周辺装置（ＭＦＰ）、画像形成装置又はその他の既存の装置で実施することができ、一以上のクライアント装置１１０によって生成された印刷データに基づいて、紙等の印刷媒体（又は記録媒体）に画像を印刷するものである。本発明の実施形態によれば、ホスト装置１２０は少なくともコピー機能、画像読取機能、及びプリンター機能を有する多機能周辺装置（ＭＦＰ）であり、一以上の第二ホスト（クライアント装置）１１０から送信された印刷ジョブ（印刷命令）、ホスト装置（又は画像形成装置）１２０に設けられるスキャナー等の画像読取部によって読み取られた画像データ等に基づいて紙に画像を形成する。
【００２７】
ホスト装置１２０として多機能周辺装置（ＭＦＰ）を用いることができる。ホスト装置１２０は、図１において「サーバーＯＳとＮＩＣＦＵＭ」と示されるようにＭＦＰソフトウェア機能の実施を表す、ＮＩＣＦＵＭを有するＭＦＰを表すことができる。図１に示されるように、ホスト装置１２０はカーネルＵＳＢドライバー１３０、ＩＰＰ−ＵＳＢプロキシ又はモジュール１４０、ＨＴＴＰサーバー１５０及びＩＰＰサービスモジュール１６０を有する。本発明の実施形態によれば、ＩＰＰ−ＵＳＢプロキシ又はモジュール１４０によってＨＴＴＰサーバー１５０及びＩＰＰサービスモジュール１６０に対してＩＰＰ−ＵＳＢサポートを透明化するために必要な機能を実行することができ、これらのコンポーネントに対してほとんど又はまったく修正を実行する必要がない。
【００２８】
ホスト装置１２０がＭＦＰである場合、ホスト装置１２０はプリンター制御部（又はファームウェア）、好ましくはハードディスクドライブ（ＨＤＤ）形式の記憶部、画像処理部（又はデータ送信部）、プリントエンジン、及び入出力部（Ｉ／Ｏ）を有することができる。ホスト装置１２０の制御部は中央処理装置（ＣＰＵ）、ランダムアクセスメモリ（ＲＡＭ）、及び読出し専用メモリ（ＲＯＭ）を有することができる。中央処理装置は一連の記憶された命令（例えばコンピュータープログラム）を実行するように構成することができる。制御部はオペレーティングシステム（ＯＳ）を有することができ、ホスト装置１２０内のソフトウェアプログラムとハードウェアコンポーネントとの間を仲介する機能を有する。オペレーティングシステム（ＯＳ）はコンピューターハードウェアを管理し、様々なアプリケーションソフトウェアが効率的に実行されるように共通するサービスを提供する。本発明の実施形態によれば、制御部はクライアント装置１１０から受信したデータ及びジョブ情報を処理し、印刷画像を生成する。
【００２９】
画像処理部は、制御部の制御に基づいて画像処理を実行し、処理された印刷画像データをプリントエンジンに送信する。画像処理部は複数の印刷ジョブ又はサブジョブを平行にまたは独立に処理することができることが好ましい。例えば、画像処理部は複数のコアを有するＣＰＵを備え、後述する複数のラスタ画像処理（ＲＩＰ）モジュールを実現する。制御部の一部を構成するのに用いられるＣＰＵは、画像処理部として共通に用いることができる。プリントエンジンは画像処理部から送信された画像データに基づいて記録用紙に画像を形成する。Ｉ／Ｏ部は少なくとも一以上のクライアント装置１１０との間でデータの送受信を実行する。制御部はデータを処理し、複合機やプリンターのその他のコンポーネントを制御するためにプログラムされて、本明細書に記載される様々な方法を実行する。ハードディスクドライブ（ＨＤＤ）又は記憶装置はデジタルデータ及び／又はソフトウェアプログラムを記憶し、これらは制御部によってリコールされる。本発明の実施形態によれば、デジタルデータはリソースを含み、これにはグラフィック／画像、ロゴ、書式オーバーレイ、フォント等が含まれる。
【００３０】
本発明の実施形態において、ホスト装置１２０の例として用いられる多機能周辺装置（ＭＦＰ）又は画像形成装置には以下が含まれるが、これらに限定されない、例えばレーザービームプリンター（ＬＢＰ）、コピー機能を含む多機能レーザービームプリンター、インクジェットプリンター（ＩＪＰ）、サーマルプリンター（例えば昇華型プリンター）、及び銀塩プリンターが挙げられる。例えば、ＭＦＰや画像形成装置としてカラープリンター又は白黒（Ｂ／Ｗ）プリンターを用いうる。
【００３１】
本発明の実施形態において、一以上のクライアント装置１１０はコンピューターシステムによって実現され、ホスト装置１２０で使用可能な印刷データを生成し、生成された印刷データをホスト装置１２０へ送信する。ホスト装置１２０と一以上のクライアント装置１１０とで構成される画像形成システムにより、通信ポートをインストールし、印刷データを生成し、印刷データに基づいて印刷媒体に画像を形成する印刷動作を実行する。
【００３２】
本発明の実施形態において、一以上のクライアント装置１１０として複数のパーソナルコンピューターを用いることができ、これらはホスト装置１２０として用いられる複合機（ＭＦＰ）や画像形成装置へ印刷ジョブを送信する機能を有することができる。プリンタードライバープログラム（以下単にプリンタードライバーと称することがある）は少なくとも一以上のクライアント装置１１０にインストールされ、少なくとも一以上のクライアント装置１１０はプリンタードライバーの機能を用いて画像形成時に適用される印刷条件のデータや画像データ等を含む印刷ジョブを生成し、生成された印刷ジョブをホスト装置１２０としての複合機に送信する。
【００３３】
ＴＣＰ／ＩＰを用いずにリナックス（登録商標）等のマルチタスクオペレーティングシステムを実行する埋め込み環境におけるＩＰＰ−ＵＳＢの適用に関するシステム及び方法が開示される。例えば、本発明の実施形態において、少なくとも一以上のクライアント装置１１０とホスト装置１２０とがＵＳＢ接続１８０を介して直接接続することができる。
【００３４】
本発明の実施形態においては、ユニバーサルシリアルバス（ＵＳＢ）上のＴＣＰ／ＩＰバイパスの適用について開示されるシステム及び方法は、ＩＰＰ−ＵＳＢプロキシ１４０を含み、これらにはモジュール又はプロキシを用いることができ、これによりカーネルＵＳＢドライバー１３０とＨＴＴＰサーバー１５０との間で送受信されるＩＰＰ−ＵＳＢデータを透明化して相互に通信することができる。ＨＴＴＰサーバー１５０はＩＰＰリクエストをＩＰＰサービス１６０に直接ルートする。同様に逆方向において、ＨＴＴＰサーバー１５０がＩＰＰリスポンスを扱い、ＩＰＰリスポンスはＩＰＰ−ＵＳＢプロキシ１４０へ送信され、このリスポンスはカーネルＵＳＢドライバーを用いてＵＳＢ上で送信される。本明細書においてオペレーティングシステムとカーネルとは同義語として扱われる。
【００３５】
本発明の実施形態においては、ＩＰＰ−ＵＳＢプロキシ１４０は、ＩＰＰ−ＵＳＢ基準に適合するように構成することができ、例えば、認証ＵＳＢデバイスを利用し、ＵＳＢ共通クラス仕様１．０に適合し、ＵＳＢ印刷インターフェイスクラス仕様１．１に適合し、ＵＳＢインターフェイスオプションの一つとしてプロトコル４を提供し、装置インフォクラス固有の記述語を提供する２印刷クラスインターフェイスを適用し、単独のＩＰＰサービスを実施する。また、ＩＰＰ−ＵＳＢプロキシ１４０は、各々のプリントクラスインターフェイスがプロトコル４を代替として提供することができるように構成することができ、これにより単独プリンターＩＰＰサービスに接続することが必要となり、またＨＴＴＰ５０５エラーコードによってＨＴＴＰ１．０リクエストを否定することができる。
【００３６】
図２は本発明の実施形態におけるＴＣＰ／ＩＰバイパスの実施例を示すフローチャートである。図２に示すように、ＩＰＰ−ＵＳＢプロキシ１４０はタスクを実施することができる二つのメインコンポーネントを有するように構成され、例えば、ＵＳＢタスクモジュール１４２、ソケットタスクモジュール１４４等が挙げられる。本発明の実施形態によればＵＳＢタスクモジュール１４２は、好ましくはＵＳＢインターフェイスにつき一つ設けられ、例えばＨＴＴＰ＋ＩＰＰリクエスト等のＵＳＢデータをＵＳＢインターフェイスから直接受信する。
【００３７】
本発明の実施形態において、ＵＳＢタスクモジュール１４２はＨＴＴＰ＋ＩＰＰリクエストをＨＴＴＰサーバー１５０へ送信する。ＵＳＢタスクモジュール１４２は初期化されると、ＵＳＢタスクモジュール１４２はＵＳＢインターフェイスを例えば標準ファイルＩ／Ｏ機能２０２、２０４によって開放する。例えば、標準ファイルＩ／Ｏ機能はｏｐｅｎ（）２０２及びｒｅａｄ（）２０４でありうる。本発明の実施形態において、例えば、ＵＳＢタスクモジュール１４２はまずＵＳＢインターフェイスを開放し、ｒｅａｄ（）機能コール２０４を実行し、これはＩＰＰ−ＵＳＢクライアント１１０がＵＳＢインターフェイス１３０にデータ２０６を書くまでブロックする。データ２０６が例えばＨＴＴＰ＋ＩＰＰリクエストとして受信されると、データ２０６はＨＴＴＰサーバー１５０へＩＰＰ−ＵＳＢプロキシ１４０を介して渡され、ソケットＡＰＩｓｅｎｄ（）機能コール２０８がＩＰＰリクエストとして用いられる。ＩＰＰリクエストは次にＨＴＴＰサーバー１５０によって受信される。ＩＰＰ−ＵＳＢプロキシ１４０からＨＴＴＰサーバーへの送信はすべてローカル（ループバック）インターフェイス２２０を介して実行される。
【００３８】
本発明の実施形態において、ソケットタスクモジュール１４４は、ＩＰＰ−ＵＳＢプロキシ１４０のコンポーネントであり、好ましくは各ＵＳＢインターフェイスにつき一つ設けられ、ソケットＡＰＩｒｅｃｖ（）機能コール２１４を用いてＨＴＴＰ＋ＩＰＰリスポンスを受信する。これはブロッキングコールであり、実際にソケット上でデータ２０６が受信されるまでタスクを中断する。リスポンスを受信すると、ソケットタスクモジュール１４４はファイルＩ／Ｏｗｒｉｔｅ（）機能コール２１６をカーネルＵＳＢドライバー１３０に対して発行し、これによりＵＳＢプロトコル方法を用いてＵＳＢインターフェイスの配線にデータを乗せられる。
【００３９】
本発明の実施形態において、ＨＴＴＰサーバー１５０はＩＰＰリクエスト２１０を直接ＩＰＰサーバー１６０に進めることができる。本発明の実施形態において、この機能は既存のものであり、例えば、標準ネットワークインターフェイス上で受信されるＩＰＰリクエストに適用しうる。本発明の実施形態において、リクエスト（ＨＴＴＰ＋ＩＰＰリクエスト）２１０はローカル／ループバックインターフェイス２２０を介して届くため、リクエスト２１０はＨＴＴＰサーバー１５０に対して透明であることができる。例えば、ＨＴＴＰ＋ＩＰＰリクエスト２１０及びリスポンス２１２は、標準ネットワークインターフェイス上で送受信されたものと同様に扱うことができる。
【００４０】
本発明の実施形態において、ホスト装置１２０は、例えば標準ｒｅａｄ（）ファイルＩ／ＯＡＰＩを用いてカーネルＵＳＢドライバー１３０を介してＵＳＢデータ（リクエスト）を受信するように構成することができる。例えば、図２に示すようにＩＰＰ−ＵＳＢプロキシ１４０は標準ｓｅｎｄ（）ソケットＡＰＩ機能２１２を用いてＨＴＴＰサーバーへリクエストを送信する。ＨＴＴＰサーバー１５０は、標準ｒｅｃｖ（）ソケットＡＰＩ機能２１８を用いてデータを受信し、ＩＰＰリクエスト２１４を直接、リクエスト２１４を処理するＩＰＰサービス１６０へ送信する。ＩＰＰサービス１６０はリクエスト２１４を処理し、ＩＰＰリスポンス２１６を発行し、これは直接ＨＴＴＰサーバー１５０へ送信される。ＨＴＴＰサーバー１５０は標準ソケットｓｅｎｄ（）機能２０８を用いてリスポンスを送信し、これは標準ネットワークインターフェイスの場合と同様である。ＩＰＰ−ＵＳＢプロキシ１４０はソケットｒｅｃｖ（）機能２１４を介してリスポンスを待つことができる。ＩＰＰ−ＵＳＢプロキシ１４０によって受信されるリスポンスは標準ファイルＩ／Ｏｗｒｉｔｅ（）機能コール２１６を用いてＵＳＢドライバーを介してＵＳＢインターフェイスに書き込まれる。カーネルＵＳＢ装置ドライバー１３０はリスポンスデータを受信し、リスポンスデータを直接ＵＳＢインターフェイス上で送信する。本発明の実施形態においては、クライアント装置１１０とホスト装置１２０との間でデータの送受信が完了すると、ローカル（ループバック）インターフェイス２２０の各ＡＰＩやカーネルＵＳＢドライバー１３０とＩＰＰ−ＵＳＢプロキシ１４０との間の接続を閉じることができる（ｃｌｏｓｅ（））２３０、２３２。図２に示すように、ソケットＡＰＩは固有のソケットＩＤを取得する、ｓｏｃｋｅｔ（）２３４と、ＨＴＴＰサーバーと接続を構築するｃｏｎｎｅｃｔ（）２３６とを有することができる。
【００４１】
本発明の実施形態においては、例えば、媒体としてＵＳＢ接続１８０が挙げられ、例えば、ＵＳＢ接続１８０を介してクライアント装置１１０とホスト装置１２０とが接続される。本発明の実施形態においては、クライアント装置１１０としてＵＳＢホスト装置が挙げられ、ＵＳＢ上で直接ＨＴＴＰ＋ＩＰＰデータを送信することができるＩＰＰクライアントを有する、例えばマックＯＳ、ウィンドウズ（登録商標）又はリナックス（登録商標）等のオペレーティングシステムを実行するＰＣ（パーソナルコンピューター）が挙げられる。
【００４２】
本発明の実施形態においては、本明細書で開示されるシステム及び方法はある点から別の点へのデータの送信が確実に実行されるという仕様を満たすその他の媒体に適用することができる。例えば、本発明の実施形態において、データが送信時に一切失われず、完全なデータが媒体上で送信されることを保証するように媒体は構成される。例えば、本発明の実施形態において、データは送信されたのとまったく同じ状態で受信され、データが「順番に」（順次）送信されることが保証されることが必要である、例えば、すべてのオクテットが送信された順番に受信されることが挙げられる。
【００４３】
本発明の実施形態において、ユニバーサルシリアルバス（ＵＳＢ）上でＴＣＰ／ＩＰバイパスを実行する方法を実行するコンピューター読取可能なコードを含むコンピュータープログラムであって、当該方法は、カーネルＵＳＢドライバーを介してＩＰＰ−ＵＳＢプロキシ上でＵＳＢデータを受信するステップと、ＨＴＴＰリクエストにカプセル化されたＩＰＰリクエストとして前記ＵＳＢデータを前記ＩＰＰ−ＵＳＢプロキシからＨＴＴＰサーバーへと送信するステップと、前記ＨＴＴＰサーバー上で前記ＨＴＴＰ及びＩＰＰリクエストを受信し、前記ＩＰＰリクエストを直接、前記ＩＰＰリクエストを処理するＩＰＰサービスモジュールへ送信するステップと、前記ＩＰＰサービスモジュール上で前記ＩＰＰリクエストを処理し、前記ＨＴＴＰサーバーへ直接送信されるＩＰＰリスポンスを発行するステップと、ＨＴＴＰリスポンスにカプセル化された前記ＩＰＰリスポンスを前記ＨＴＴＰサーバーから前記ＩＰＰ−ＵＳＢプロキシへ送信するステップと、前記ＩＰＰ−ＵＳＢプロキシにより受信された前記ＨＴＴＰ及びＩＰＰリスポンスを前記カーネルＵＳＢドライバーへ書き込むステップと、前記ＩＰＰリスポンスをＵＳＢプロトコルを用いてＵＳＢインターフェイス上で、クライアント装置へ送信するステップと、を備える。
【００４４】
コンピュータープログラムを含むコンピューター読取可能媒体として、磁気記録媒体、磁気光学記録媒体、又はその他の将来開発されうる記録媒体を含み、すべてが同様に本発明を適用することができると考えられる。一次的又は二次的複製を含むこれらの媒体の複製等は言うまでもなく上記媒体の均等物とみなされる。さらに、本発明の実施形態がソフトウェアとハードウェアとの組み合わせであったとしても、本発明の理念から逸脱しない。本発明は、ソフトウェア部分が記録媒体にあらかじめ書き込まれ、実行の際に適宜読み出されるような構成として適用することができる。
【００４５】
本発明の範囲又は理念から逸脱することなく、本発明の構成に適宜修正又は変形を行うことができることは当業者にとっては明白であろう。よって、添付されたクレーム及びその均等物の範囲に含まれる限り、本発明の範囲には本発明の修正や変形物が含まれることを意図する。
【図１】
0006386497.tif 000004
【図２】
0006386497.tif 000005