(57)【要約】      （修正有）【課題】ＵＳＢから入力されたデータをＷｅｂサーバに転送し、そのデータで指示された処理を実行することによりＩＰＰ  ｏｖｅｒ  ＵＳＢを実現する仕組みを提供する。【解決手段】ＵＳＢを介して情報処理装置と接続する画像形成装置とその制御方法であって、Ｗｅｂサーバと、Ｗｅｂサーバの上で動作するＷｅｂアプリケーションと、インターネットプロトコルで通信を行う通信手段とを有し、情報処理装置からＵＳＢを介してデータを送受信する送受信手段で受信したデータを、通信手段を介してＷｅｂサーバに転送する。【選択図】図８
2017034482.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢを介して情報処理装置と接続する画像形成装置であって、
前記情報処理装置からＵＳＢを介してデータを送受信する送受信手段と、
Ｗｅｂサーバと、
前記Ｗｅｂサーバの上で動作するＷｅｂアプリケーションと、
インターネットプロトコルで通信を行う通信手段と、
前記送受信手段で受信したデータを前記通信手段を介して前記Ｗｅｂサーバに転送する転送手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記転送手段は、前記データを、ループバックを使用して前記通信手段を介して前記Ｗｅｂサーバに転送することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記転送手段は、前記受信したデータを解析し、当該データの宛先となるＷｅｂアプリケーションを特定し、当該特定したＷｅｂアプリケーションが使用する前記通信手段のポート番号に対して前記データを転送することを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記転送手段が前記Ｗｅｂアプリケーションからの応答を前記Ｗｅｂサーバ、前記通信手段を介して受け取ると、前記送受信手段は前記応答を前記情報処理装置に送信することを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記転送手段は、前記送受信手段が予め定められたエンドポイントで前記データを受信することに応じて、当該データを前記Ｗｅｂサーバに転送することを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
ネットワークと接続するインターフェース手段を更に有し、
前記通信手段が前記インターフェース手段を介してジョブを受信すると、前記Ｗｅｂサーバは、当該ジョブに対応するＷｅｂアプリケーションにより前記ジョブを処理させることを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
前記Ｗｅｂアプリケーションに対応する前記ポート番号を及びＵＲＬを登録する登録手段を更に有し、前記転送手段は、前記登録手段に登録した前記通信手段の前記ポート番号に対して前記データを転送し、前記Ｗｅｂサーバは、前記ＵＲＬに基づいて前記Ｗｅｂアプリケーションを実行するように制御することを特徴とする請求項３に記載の画像形成装置。
【請求項８】
前記Ｗｅｂアプリケーションは複数存在し、
前記Ｗｅｂサーバは、前記通信手段を介して転送された前記データのヘッダに基づいて、複数のＷｅｂアプリケーションの中から前記データを処理するＷｅｂアプリケーションを特定することを特徴とする請求項１乃至７のいずれか１項に記載の画像形成装置。
【請求項９】
前記Ｗｅｂサーバは更に、前記Ｗｅｂアプリケーションからレスポンスを受け取ると前記通信手段に送信し、前記通信手段は当該レスポンスを前記転送手段に送信し、前記転送手段は前記送受信手段により前記レスポンスを前記情報処理装置に送信させることを特徴とする請求項１乃至８のいずれか１項に記載の画像形成装置。
【請求項１０】
前記データはＨＴＴＰデータであることを特徴とする請求項１乃至９のいずれか１項に記載の画像形成装置。
【請求項１１】
Ｗｅｂサーバと、前記Ｗｅｂサーバの上で動作するＷｅｂアプリケーションと、インターネットプロトコルで通信を行う通信手段とを有し、ＵＳＢを介して情報処理装置と接続する画像形成装置を制御する制御方法であって、
送受信手段が、前記情報処理装置からＵＳＢを介してデータを送受信する送受信工程と、
転送手段が、前記送受信工程で受信したデータを前記通信手段を介して前記Ｗｅｂサーバに転送する転送工程と、を有し、
前記Ｗｅｂサーバが、前記データを処理するＷｅｂアプリケーションを特定することを特徴とする画像形成装置の制御方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像形成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来から、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を備えた画像形成装置が広く利用されている。ＵＳＢ規格では、エンドポイントと呼ばれる論理チャンネルを複数持つことが可能である。例えば印刷やスキャンといった画像形成装置が提供する機能ごとに異なるエンドポイントを割り当て、ホストコンピュータからＵＳＢを介して各機能を利用することができる。特許文献１には、ＵＳＢを介してプリンタ、スキャナ、ファクシミリ通信等の複数の機能の同時動作を簡単に実現する技術が記載されている。
【０００３】
また、画像形成装置にはＷｅｂサーバ機能やＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）機能を有するものがある。そのような装置では、ネットワークを介してＷｅｂブラウザにより画像形成装置の設定を行ったり、ＩＰＰを使用して印刷やスキャンを行うことができる。更に、元々、ネットワークでの利用が想定されたＩＰＰを、ホストコンピュータとＵＳＢを介して接続された画像形成装置との間で利用可能にする、ＩＰＰ  ｏｖｅｒ  ＵＳＢという規格が定義されている。尚、ＩＰＰ  ｏｖｅｒ  ＵＳＢは、ＵＳＢを介してＨＴＴＰヘッダを含むＨＴＴＰデータを送受信するものであり、ＨＴＴＰ上で動作する機能であればＩＰＰだけでなく、例えばスキャンやＷｅｂページのデータのやり取りにも適用できる仕様になっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１９８７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＷｅｂサーバやＩＰＰを実装済の画像形成装置にＩＰＰ  ｏｖｅｒ  ＵＳＢを追加する場合、ＵＳＢから入力されたＨＴＴＰデータを解釈する処理部を追加する必要があった。なぜなら、通常、ＷｅｂサーバはＴＣＰ／ＩＰからの入力しか受け付けられず、元々備えていたＷｅｂサーバは、ＵＳＢから入力されたデータの解釈のために使用できないためである。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の特徴は、ＵＳＢから入力されたデータをＷｅｂサーバに転送し、そのデータで指示された処理を実行することによりＩＰＰ  ｏｖｅｒ  ＵＳＢを実現する仕組みを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像形成装置は以下のような構成を備える。即ち、
ＵＳＢを介して情報処理装置と接続する画像形成装置であって、
前記情報処理装置からＵＳＢを介してデータを送受信する送受信手段と、
Ｗｅｂサーバと、
前記Ｗｅｂサーバの上で動作するＷｅｂアプリケーションと、
インターネットプロトコルで通信を行う通信手段と、
前記送受信手段で受信したデータを前記通信手段を介して前記Ｗｅｂサーバに転送する転送手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＵＳＢから入力されたデータをＷｅｂサーバに転送し、そのデータで指示された処理を実行することによりＩＰＰ  ｏｖｅｒ  ＵＳＢを実現できる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係るシステム構成の一例を示す図。
【図２】実施形態１に係る画像形成装置のハードウェア構成を示すブロック図。
【図３】実施形態１に係る画像形成装置のソフトウェア構成を説明するブロック図。
【図４】実施形態１に係る画像形成装置がＵＳＢを介して印刷ジョブを受信して印刷を実行するまでの処理を説明するフローチャート。
【図５】実施形態１に係る画像形成装置とホストコンピュータとがＵＳＢ接続された際にやり取りされるコンフィグレーション情報の一例を示す図。
【図６】実施形態１に係る画像形成装置がネットワークを介してホストコンピュータから印刷ジョブを受信して印刷する処理を説明するフローチャート。
【図７】実施形態１に係る画像形成装置がＵＳＢを介してホストコンピュータから印刷ジョブを受信して印刷する処理を説明するフローチャート。
【図８】実施形態１に係る画像形成装置がホストコンピュータからＵＳＢを介してＩＰＰ印刷を実行するときの処理を説明するフローチャート。
【図９】実施形態１に係る画像形成装置のＴＣＰ／ＩＰ処理部が保持するＴＣＰ／ＩＰ接続管理テーブルの一例を示す図。
【図１０】実施形態１に係る画像形成装置のＵＳＢデータ転送部が管理する接続テーブルの一例を示す図。
【図１１】実施形態１に係る画像形成装置のＵＳＢデータ転送部が、ＵＳＢ制御部から受け取ったデータをＴＣＰ／ＩＰ処理部に送信する処理を説明するフローチャート。
【図１２】実施形態１に係る画像形成装置のＵＳＢデータ転送部が、ＴＣＰ／ＩＰ処理部から受信したデータをＵＳＢ制御部に送信する処理を説明するフローチャート。
【図１３】実施形態１に係る画像形成装置のＷｅｂアプリケーションがＷｅｂサーバ部に登録した情報の一例を示す図。
【図１４】実施形態１に係る画像形成装置のＵＳＢデータ転送部がＵＳＢ制御部から受信するデータの一例を示す図。
【図１５】本発明の実施形態２に係る画像形成装置において、各ＷｅｂアプリケーションがＷｅｂサーバ部に登録する情報の一例を示す図。
【図１６】実施形態２に係る画像形成装置のＵＳＢデータ転送部が管理する接続テーブルの一例を示す図。
【図１７】実施形態２に係る画像形成装置のＵＳＢデータ転送部が、ＵＳＢ制御部から受け取ったデータをＴＣＰ／ＩＰ処理部に送信する処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
［実施形態１］
図１は、本発明の実施形態１に係るシステム構成の一例を示す図である。
【００１４】
画像形成装置１００は、ＵＳＢＩ／ＦとネットワークＩ／Ｆを備えている。画像形成装置１００は、ホストコンピュータ１０１とＵＳＢケーブル１０４を介して接続されており、ホストコンピュータ１０１から印刷、スキャン等の指示を受信すると、その指示された処理を行う。また画像形成装置１００は、ネットワーク１０３を介してホストコンピュータ１０２と接続され、ホストコンピュータ１０２から印刷、スキャン等の指示を受信すると、その指示に応じた処理を実行する。尚、以下の説明では、ホストコンピュータ１０１，１０２は同じ構成を有しているため、特に区別する必要がない場合はホストコンピュータ１０１として説明する。
【００１５】
図２は、実施形態１に係る画像形成装置１００のハードウェア構成を示すブロック図である。尚、この実施形態１では、画像形成装置１００を、コピー機能、スキャン機能、印刷機能、ボックス機能、ファクシミリ送受信機能などを有する多機能処理装置（複合機）の例で説明する。
【００１６】
ＣＰＵ２０２を含む制御部２０１は、画像形成装置１００全体の動作を制御する。ＣＰＵ２０２は、ＲＯＭ２０４に記憶されたブートプログラムを実行してＨＤＤ２０５からプログラムを読み出してＲＡＭ２０３に展開し、そのプログラムを実行することにより印刷や通信などの各種制御を行う。ＲＡＭ２０３は、ＣＰＵ２０２の主メモリ、ワークエリア等の一時領域として用いられる。ＨＤＤ２０５は、データや各種プログラム、或いは各種情報テーブルを記憶する。
【００１７】
プリンタＩ／Ｆ２０６は、プリンタ２０７（プリンタエンジン）と制御部２０１とを接続する。プリンタ２０７は、プリンタＩ／Ｆ２０６を介して入力された印刷データに基づいて、不図示の給紙カセットから給紙されたシートに印刷を行う。スキャナＩ／Ｆ２０８は、スキャナ２０９と制御部２０１とを接続する。スキャナ２０９は、原稿の画像を読み取って画像データを生成する。スキャナ２０９が生成した画像データは、プリンタ２０７に出力されて印刷されたり、ＨＤＤ２０５に記憶されたり、無線ＬＡＮインターフェース（Ｉ／Ｆ）２１２や有線ＬＡＮＩ／Ｆ２１３を介して外部装置に送信される。操作パネルＩ／Ｆ２１０は、操作パネル２１１と制御部２０１とを接続する。操作パネル２１１にはタッチパネル機能を有する表示部やキーボード、各種ファンクションキー等が備えられている。ユーザは操作パネル２１１に表示された画面を確認したり、またタッチパネルを用いて様々な指示を画像形成装置１００に入力することができる。無線ＬＡＮＩ／Ｆ２１２は、携帯端末やＰＣ等の外部の情報処理装置と無線通信を実行する。有線ＬＡＮＩ／Ｆ２１３は、不図示のＬＡＮケーブルが接続され、ネットワーク１０３を介して外部の情報処理装置と通信を実行することができる。ＵＳＢＩ／Ｆ２１４は、ＵＳＢケーブル１０４を介して情報処理装置（図１のホストコンピュータ１０１）と接続し、ＵＳＢ通信を行う。
【００１８】
これらの無線／有線／ＵＳＢ通信によって、画像形成装置１００はホストコンピュータから印刷データを受信し、受信した印刷データに基づいてプリンタ２０７により印刷する。またスキャナ２０９が生成した画像データを、ホストコンピュータに送信することもできる。
【００１９】
尚、実施形態１に係る画像形成装置１００は、１つのＣＰＵ２０２が１つのメモリ（ＲＡＭ２０３）を用いて後述するフローチャートに示す各処理を実行するものとするが、他の態様であってもかまわない。例えば、複数のＣＰＵや複数のメモリを協働させて後述するフローチャートに示す各処理を実行するようにすることもできる。
【００２０】
図３は、実施形態１に係る画像形成装置１００のソフトウェア構成を説明するブロック図である。図３に示す各機能部は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００２１】
印刷処理部３０１は、ＵＳＢ制御部３０７やＩＰＰ処理部３０２から受信した印刷データを解釈し、プリンタ２０７を制御して印刷処理を行う。ＩＰＰ処理部３０２、スキャン処理部３０３、Ｗｅｂページ処理部３０４は、Ｗｅｂサーバ部３０５上で動作するＷｅｂアプリケーションで、ここではＷｅｂアプリケーションが複数存在している。ＩＰＰ処理部３０２は、Ｗｅｂサーバ部３０５から受信するＩＰＰリクエストデータを解釈し、ＩＰＰオペレーションに従って処理を行い、ＩＰＰのレスポンスを生成してＷｅｂサーバ部３０５に送信する。スキャン処理部３０３は、Ｗｅｂサーバ部３０５から受信するスキャンコマンドを解釈し、スキャナ２０９で得られた画像データをＷｅｂサーバ部３０５に送信する。Ｗｅｂページ処理部３０４は、Ｗｅｂサーバ部３０５から受信するＷｅｂページの取得要求に従って、ＨＴＭＬ形式のＷｅｂページを生成してＷｅｂサーバ部３０５に送信する。これらＷｅｂアプリケーションは、図１３を参照して後述するように、自身のＵＲＬやポート番号をＷｅｂサーバ部３０５に登録している。尚、実施形態１では、全てのＷｅｂアプリケーション（ＩＰＰ処理部３０２、スキャン処理部３０３、Ｗｅｂページ処理部３０４）がポート番号として「８０」を登録しているものとする。
【００２２】
Ｗｅｂサーバ部３０５は、ＨＴＴＰプロトコルを処理し、クライアントからのリクエストに対してレスポンスを返す役割を持つ。Ｗｅｂサーバ部３０５は、Ｗｅｂアプリケーションから登録されたポート番号をＴＣＰ／ＩＰ処理部３０６に通知する。ＴＣＰ／ＩＰ処理部３０６は、インターネットプロトコルで通信を行い、Ｗｅｂサーバ部３０５から通知されたポート番号に外部からデータが到着すると、そのデータを受信できる。またＷｅｂサーバ部３０５は、ＴＣＰ／ＩＰ処理部３０６からデータを受信した時は、その登録された情報に基づいて適切なＷｅｂアプリケーションを特定し、その特定したＷｅｂアプリケーションにデータを送信する。
【００２３】
ＵＳＢ制御部３０７は、ホストコンピュータ１０１とＵＳＢ通信を行い、ホストコンピュータ１０１から受信したデータを印刷処理部３０１やＵＳＢデータ転送部３０８に送信する。また印刷処理部３０１やＵＳＢデータ転送部３０８からデータを受信すると、ＵＳＢを介してホストコンピュータ１０１にデータを送信する。ＵＳＢデータ転送部３０８は、ＵＳＢ制御部３０７からデータを受信するとループバックでＴＣＰ／ＩＰ処理部３０６にそのデータを送信し、ＴＣＰ／ＩＰ処理部３０６からデータを受信すると、そのデータをＵＳＢ制御部３０７に送信する。
【００２４】
このような構成により、ＵＳＢから入力されたＨＴＴＰデータは、ＵＳＢデータ転送部３０８によりＴＣＰ／ＩＰ処理部３０６に送られ、更にＴＣＰ／ＩＰ処理部３０６からＷｅｂサーバ部３０５に送られて、対応するＷｅｂアプリケーションに渡される。こうして、そのＨＴＴＰデータに基づく処理がＷｅｂアプリケーションで実行されると、その結果がＷｅｂサーバ部３０５、ＴＣＰ／ＩＰ処理部３０６を介してＵＳＢデータ転送部３０８に送られ、ＵＳＢを介してホストコンピュータに送信される。
【００２５】
図４は、実施形態１に係る画像形成装置１００がＵＳＢを介して印刷ジョブを受信して印刷を実行するまでの処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００２６】
この処理は画像形成装置１００の電源が投入されることにより開始され、先ずＳ４０１でＣＰＵ２０２は、ＵＳＢケーブル１０４を介してホストコンピュータ１０１と接続されたことを検知するとＵＳＢ初期化処理を開始する。次にＳ４０２に進みＣＰＵ２０２は、ＵＳＢ制御部３０７として機能し、ホストコンピュータ１０１と、後述するＵＳＢのコンフィグレーションを実行する。そして、このコンフィグレーションが終了するとＳ４０３に進みＣＰＵ２０２は、ホストコンピュータ１０１から印刷要求を受信するのを待ち、印刷要求を受信するとＳ４０４に進み、その受信した印刷要求に従って印刷処理を行う。
【００２７】
これは一般的なＵＳＢ接続されたホストコンピュータと画像形成装置との間の処理の一例である。
【００２８】
図５は、実施形態１に係る画像形成装置１００とホストコンピュータ１０１とがＵＳＢ接続された際にやり取りされるコンフィグレーション情報の一例を示す図である。
【００２９】
画像形成装置１００のＵＳＢ制御部３０７は、ホストコンピュータ１０１からコンフィグレーション情報の取得要求を受信すると、例えば図５のような情報を応答する。図５では、画像形成装置１００が７個のエンドポイントを持っていることを示している。エンドポイント０は、デバイスの制御情報をやり取りするための特別な双方向エンドポイントである。エンドポイント０以外は片方向エンドポイントであり、送信用と受信用がセットで使用される。エンドポイント１〜４は、ＩＰＰ  ｏｖｅｒ  ＵＳＢ用のエンドポイントで、２個の同時接続が可能なようになっている。エンドポイント１が一つ目のＩＰＰ  ｏｖｅｒ  ＵＳＢの受信用、エンドポイント２が一つ目のＩＰＰ  ｏｖｅｒ  ＵＳＢの送信用エンドポイントである。またエンドポイント３は二つ目のＩＰＰ  ｏｖｅｒ  ＵＳＢの受信用、エンドポイント４は二つ目のＩＰＰ  ｏｖｅｒ  ＵＳＢの送信用エンドポイントである。またエンドポイント５はＰＤＬ印刷の受信用エンドポイント、エンドポイント６はＰＤＬ印刷の送信用エンドポイントである。ホストコンピュータ１０１は、これらの情報を受信すると、画像形成装置１００が持つエンドポイント情報を記憶し、どのエンドポイントを使用してデータを送受信すればよいかを判断する。例えば、ホストコンピュータ１０１がＩＰＰ  ｏｖｅｒ  ＵＳＢを使用して印刷データを送信したい場合は、画像形成装置１００のエンドポイント１又はエンドポイント３にデータを送信する。
【００３０】
本実施形態１の特徴は、ホストコンピュータ１０１からＵＳＢを介してＩＰＰ印刷を行うフロー（第三のフロー）を設けた点である。この特徴的なフローと、従来から知られている、ネットワークを介したＩＰＰ印刷を行うフロー（第一のフロー）とＵＳＢを介したＰＤＬデータの印刷を行うフロー（第二のフロー）をそれぞれ説明する。
【００３１】
図６は、実施形態１に係る画像形成装置１００がネットワーク１０３を介してホストコンピュータ１０２から印刷ジョブを受信して印刷する処理（第一のフロー）を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００３２】
この処理は、ホストコンピュータ１０２がネットワークを介して画像形成装置１００のポート番号「８０」のポートに接続要求を送信することにより開始される。まずＳ６０１でＣＰＵ２０２がＴＣＰ／ＩＰ処理部３０６として機能し、ＴＣＰ／ＩＰ接続管理テーブル９００（図９）に接続情報を追加し、ホストコンピュータ１０２との接続を確立する。その後、ホストコンピュータ１０２がＩＰＰの印刷リクエスト及びジョブデータを画像形成装置１００に送信するとＳ６０２でＣＰＵ２０２はＴＣＰ／ＩＰ処理部３０６として機能してそれを受信する。そしてポート番号「８０」のポートに関連付けられているＷｅｂサーバ部３０５に、その受信データを送信する。次にＳ６０３に進みＣＰＵ２０２はＷｅｂサーバ部３０５として機能し、その印刷リクエストに含まれるＨＴＴＰヘッダから特定した宛先であるＩＰＰ処理部３０２に、その印刷リクエスト及びジョブデータを送信する。次にＳ６０４に進みＣＰＵ２０２はＩＰＰ処理部３０２として機能し、その印刷リクエストを解析し、その解析結果に含まれるジョブ設定情報とジョブデータを印刷処理部３０１に送信する。そしてＳ６０５に進みＣＰＵ２０２は印刷処理部３０１として機能し、受信したジョブデータを、ジョブ設定情報に基づいて実行し、プリンタ２０７を制御して印刷を行う。
【００３３】
次にＳ６０６に進みＣＰＵ２０２はＩＰＰ処理部３０２として機能し、ＩＰＰレスポンスデータを生成してＷｅｂサーバ部３０５に送信する。次にＳ６０７に進みＣＰＵ２０２はＷｅｂサーバ部３０５として機能し、ＩＰＰレスポンスデータにＨＴＴＰヘッダを付加してＴＣＰ／ＩＰ処理部３０６に送信する。そしてＳ６０８でＣＰＵ２０２はＴＣＰ／ＩＰ処理部３０６として機能し、ＴＣＰ／ＩＰ接続管理テーブル９００を参照し、接続相手であるホストコンピュータ１０２にＩＰＰレスポンスデータを送信する。
【００３４】
尚、スキャンやＷｅｂページの表示処理の場合も、基本的に上記印刷処理と同様にして実行できる。即ち、ホストコンピュータ１０２は、ポート番号「８０」のポートを指定してＴＣＰ／ＩＰ処理部３０６に接続した後、スキャンであればスキャンリクエスト、Ｗｅｂページ表示であればＷｅｂページリクエストを送信する。これによりＷｅｂサーバ部３０５は、そのリクエストに含まれるＨＴＴＰヘッダから宛先を特定し、そのリクエストをスキャン処理部３０３或いはＷｅｂページ処理部３０４に送信する。スキャンの場合は、スキャン処理部３０３は、そのリクエストに基づいてスキャナ２０９を制御してスキャン処理を実行し、スキャンデータを含むレスポンスデータを生成してＷｅｂサーバ部３０５に送信する。一方、Ｗｅｂページ表示処理の場合は、Ｗｅｂページ処理部３０４は、そのリクエストに基づいてＷｅｂページを生成し、レスポンスデータとしてＷｅｂサーバ部３０５に送信する。Ｗｅｂサーバ部３０５は、そのレスポンスデータにＨＴＴＰヘッダを付加してＴＣＰ／ＩＰ処理部３０６に送信する。ＴＣＰ／ＩＰ処理部３０６は、確立済みの接続を介して、レスポンスデータをホストコンピュータ１０２に送信する。
【００３５】
図７は、実施形態１に係る画像形成装置１００がＵＳＢを介してホストコンピュータ１０１から印刷ジョブを受信して印刷する処理（第二のフロー）を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００３６】
この処理は、ホストコンピュータ１０１がＵＳＢを介して画像形成装置１００のＵＳＢ制御部３０７のＰＤＬ印刷受信用エンドポイント（図５の例ではエンドポイント５）にジョブデータを送信することにより開始される。まずＳ７０１でＣＰＵ２０２はＵＳＢ制御部３０７として機能し、ジョブデータを受信する。次にＳ７０２に進みＣＰＵ２０２はＵＳＢ制御部３０７として機能し、その受信したジョブデータを印刷処理部３０１に送信する。次にＳ７０３でＣＰＵ２０２は印刷処理部３０１として機能し、その受信したジョブデータを解析し、そのジョブデータに基づいてプリンタ２０７を制御して印刷を行う。
【００３７】
尚、実施形態１におけるＰＤＬ印刷は片方向通信であり、ＵＳＢ制御部３０７は、ジョブデータのパケットを受信するたびにホストコンピュータ１０１にＡＣＫ応答を送信するだけであり、上述のＩＰＰ印刷のようなレスポンスデータを返すことはない。
【００３８】
図８は、実施形態１に係る画像形成装置１００がホストコンピュータ１０１からＵＳＢを介してＩＰＰ印刷を実行するときの処理（第三のフロー）を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００３９】
この処理は、ホストコンピュータ１０１がＵＳＢを介して画像形成装置１００のＵＳＢ制御部３０７のＩＰＰ印刷受信用エンドポイント（エンドポイント５）にＩＰＰの印刷リクエスト及びジョブデータを送信することにより開始される。まずＳ８０１でＣＰＵ２０２はＵＳＢ制御部３０７として機能し、ＩＰＰの印刷リクエスト及びジョブデータを受信する。次にＳ８０２に進みＣＰＵ２０２はＵＳＢ制御部３０７として機能し、受信した印刷リクエスト及びジョブデータをＵＳＢデータ転送部３０８に送信する。
【００４０】
図１４は、実施形態１に係る画像形成装置１００のＵＳＢデータ転送部３０８がＵＳＢ制御部３０７から受信するデータの一例を示す図である。
【００４１】
このデータは、ＨＴＴＰヘッダ１４０１とＨＴＴＰボディ１４０２とを含んでいる。ＨＴＴＰヘッダ１４０１の先頭１行目はリクエストラインであり、ＨＴＴＰメソッド情報やＵＲＬ情報が格納されている。ＨＴＴＰボディ１４０２には、例えばＩＰＰの場合、ＩＰＰで定義される印刷やジョブ情報取得等のオペレーションごとに、各種データが含まれている。
【００４２】
図１４の例では、１行目のリクエストラインにＩＰＰのＵＲＬ（図１３参照）を示す「／ｉｐｐ／ｐｒｉｎｔ」が記述されており、ＩＰＰの印刷リクエストであることが分かる。
【００４３】
次にＳ８０３に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ループバックを使用してＴＣＰ／ＩＰ処理部３０６とポート番号「８０」のポートとの接続を確立し、受信した印刷リクエスト及びジョブデータをＴＣＰ／ＩＰ処理部３０６に送信する。次にＳ８０４に進みＣＰＵ２０２はＴＣＰ／ＩＰ処理部３０６として機能し、印刷リクエスト及びジョブデータを受信すると、ポート番号「８０」のポートに関連付けられているＷｅｂサーバ部３０５に送信する。次にＳ８０５に進みＣＰＵ２０２はＷｅｂサーバ部３０５として機能し、印刷リクエストに含まれるＨＴＴＰヘッダから特定した宛先であるＩＰＰ処理部３０２に、その印刷リクエスト及びジョブデータを送信する。そしてＳ８０６でＣＰＵ２０２はＩＰＰ処理部３０２として機能し、その印刷リクエストを解析し、その解析結果に含まれるジョブ設定情報とジョブデータを印刷処理部３０１に送信する。そしてＳ８０７でＣＰＵ２０２は印刷処理部３０１として機能し、その受信したジョブデータを、ジョブ設定情報に基づき実行して印刷する。
【００４４】
次にＳ８０８に進みＣＰＵ２０２はＩＰＰ処理部３０２として機能し、ＩＰＰレスポンスデータを生成してＷｅｂサーバ部３０５に送信する。そしてＳ８０９でＣＰＵ２０２はＷｅｂサーバ部３０５として機能し、ＩＰＰレスポンスデータにＨＴＴＰヘッダを付加してＴＣＰ／ＩＰ処理部３０６に送信する。次にＳ８１０に進みＣＰＵ２０２はＴＣＰ／ＩＰ処理部３０６として機能し、ＴＣＰ／ＩＰ接続管理テーブル９００を参照し、接続相手であるＵＳＢデータ転送部３０８にＩＰＰレスポンスデータを送信する。そしてＳ８１１に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、受信したＩＰＰレスポンスデータをＵＳＢ制御部３０７に送信する。そして最後にＳ８１２でＣＰＵ２０２はＵＳＢ制御部３０７として機能し、ＵＳＢを介してホストコンピュータ１０１にＩＰＰレスポンスデータを送信して、この処理を終了する。
【００４５】
以上説明したように実施形態１によれば、ＵＳＢを介して受信した印刷リクエストをＷｅｂサーバ部３０５に転送して処理させることができる。それにより、新たにＨＴＴＰデータを解釈する手段を追加することなく、ＩＰＰ  ｏｖｅｒ  ＵＳＢの機能を容易に実装することができる。
【００４６】
図９は、実施形態１に係る画像形成装置１００のＴＣＰ／ＩＰ処理部３０６が保持するＴＣＰ／ＩＰ接続管理テーブル９００の一例を示す図である。
【００４７】
ＴＣＰ／ＩＰ接続識別子９０１は、接続が確立されるたびにＴＣＰ／ＩＰ処理部３０６が割り振る識別子であり、Ｗｅｂサーバ部３０５等はこの識別子を指定してＴＣＰ／ＩＰ処理部３０６とデータの送受信を行う。ローカルＩＰ９０２は、画像形成装置１００のＩＰアドレスである。ネットワーク１０３を介した接続では、ネットワーク上で一意のアドレスが使用される。一方、実施形態１のＵＳＢデータ転送部３０８とＴＣＰ／ＩＰ処理部３０６とのループバックの接続では、ＴＣＰ／ＩＰ接続識別子９０１は「２」で、ＩＰアドレス「１２７．０．０．１」が使用される。ローカルポート９０３は、画像形成装置１００が印刷等のデータを受信するポート番号であり、実施形態１では「８０」である。リモートＩＰ９０４は、接続を確立した相手のＩＰアドレスであり、ネットワーク１０３を介した接続の場合、ホストコンピュータ１０２のＩＰアドレス「１９２．１６８．０．２」であり、ループバック接続の場合は「１２７．０．０．１」である。リモートポート９０５は、接続を確立した相手のポート番号であり、通常は接続を確立する度に、通信相手のＯＳが割り振る。
【００４８】
ＴＣＰ／ＩＰ処理部３０６は、このＴＣＰ／ＩＰ接続管理テーブル９００を参照することで、Ｗｅｂサーバ部３０５から受信したＩＰＰレスポンスデータをどの宛先に送信するかを決定する。例えば、Ｗｅｂサーバ部３０５からＴＣＰ／ＩＰ接続識別子９０１が「１」のＩＰＰレスポンスを受信した場合、その接続のリモートＩＰが「１９２．１６８．０．２」である。これによりネットワーク１０３上のホストコンピュータ１０２にＩＰＰレスポンスデータを送信する。またＷｅｂサーバ部３０５からＴＣＰ／ＩＰ接続識別子９０１が「２」のＩＰＰレスポンスを受信した場合、その接続のリモートＩＰが「１２７．０．０．１」である。この場合は、ループバックを使用してＵＳＢデータ転送部３０８にＩＰＰレスポンスデータを送信する
次に図８のフローチャートを更に詳しく説明する。
【００４９】
図１０は、実施形態１に係る画像形成装置１００のＵＳＢデータ転送部３０８が管理する接続テーブル１０００の一例を示す図である。
【００５０】
この接続テーブル１０００の接続識別子１００１には、ＵＳＢデータ転送部３０８が、ＴＣＰ／ＩＰ処理部３０６と接続を確立した際の接続識別子情報（図１０では「１００」）が保持される。
【００５１】
図１１は、実施形態１に係る画像形成装置１００のＵＳＢデータ転送部３０８が、ＵＳＢ制御部３０７から受け取ったデータをＴＣＰ／ＩＰ処理部３０６に送信する処理を説明するフローチャートであり、図８のＳ８０３の処理をより詳細に説明するものである。尚、このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００５２】
この処理は、ホストコンピュータ１０１がエンドポイント１又は３を指定してデータをＵＳＢ制御部３０７に送信することにより開始される。
【００５３】
まずＳ１１０１でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＵＳＢ制御部３０７から、受信したデータを受け取る。次にＳ１１０２に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＴＣＰ／ＩＰ処理部３０６との間で確立した接続の接続識別子１００１が接続テーブル１０００に存在しているかを判定する。ここで存在していないと判定したときはＳ１１０３に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＴＣＰ／ＩＰ処理部３０６とポート番号「８０」を指定してループバックで接続を確立する。次にＳ１１０４に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、確立した接続の接続識別子を接続テーブル１０００に保存してＳ１１０５に進む。
【００５４】
一方、Ｓ１１０２で接続識別子１００１が接続テーブル１０００に存在していると判定したとき、或いはＳ１１０４を実行するとＳ１１０５に進む。Ｓ１１０５でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、接続識別子を指定し、受信したデータをＴＣＰ／ＩＰ処理部３０６に送信して、この処理を終了する。
【００５５】
図１２は、実施形態１に係る画像形成装置１００のＵＳＢデータ転送部３０８が、ＴＣＰ／ＩＰ処理部３０６から受信したデータをＵＳＢ制御部３０７に送信する処理を説明するフローチャートであり、図８のＳ８１１の処理を、より詳細に説明するものである。尚、このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００５６】
Ｓ１２０１でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＴＣＰ／ＩＰ処理部３０６からデータが接続識別子１００１で識別される接続に受信したことを検知する。ここで受信されるデータは、レスポンスデータである場合と接続切断データである場合とがある。次にＳ１２０２に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、受信したデータがレスポンスデータかどうかを判定する。そうであればＳ１２０３に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、その受信したデータをＵＳＢ制御部３０７に送信して、この処理を終了する。一方、Ｓ１２０２でレスポンスデータでないときは、そのデータは接続切断データであるためＳ１２０４に進み、ＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、接続識別子１００１を接続テーブル１０００から削除して、この処理を終了する。
【００５７】
図１３は、実施形態１に係る画像形成装置１００のＷｅｂアプリケーションがＷｅｂサーバ部３０５に登録した情報の一例を示す図である。
【００５８】
登録情報１３００は、Ｗｅｂアプリケーション情報１３０１、ポート番号１３０２、ＵＲＬ１３０３を含んでいる。ここでは図３のＩＰＰ処理部３０２、スキャン処理部３０３、Ｗｅｂページ処理部３０４に対応してＷｅｂアプリケーション（ＩＰＰ，Ｓｃａｎ，Ｗｅｂページ）が登録されている。ここでは前述したように、全てのＷｅｂアプリケーションがポート番号として「８０」を登録している。
【００５９】
以上説明したように実施形態１によれば、ＵＳＢデータ転送部３０８が、ＵＳＢ制御部３０７から受信したＨＴＴＰデータをループバックで、ＴＣＰ／ＩＰ処理部３０６の予め定められたポートに送信する。そしてＴＣＰ／ＩＰ処理部３０６からＷｅｂサーバ部３０５に送られて、対応するＷｅｂアプリケーションに渡されて処理される。またＷｅｂサーバ部３０５、ＴＣＰ／ＩＰ処理部３０６を介したＷｅｂアプリケーションからの応答は、ＵＳＢ制御部に送信する。その結果、新たにＨＴＴＰデータを解釈するための処理部を追加することなく、ＵＳＢ上で、ＩＰＰ  ｏｖｅｒ  ＵＳＢに準拠した印刷、スキャン、Ｗｅｂページデータ等を実行することができる。
【００６０】
［実施形態２］
上述の実施形態１では、全てのＷｅｂアプリケーションが同じポート番号８０を使用する構成であった。しかし、Ｗｅｂアプリケーションごとに異なるポート番号を使用するようにしても良い。ＩＰＰ  ｏｖｅｒ  ＵＳＢではポート番号の概念がないため、このような構成では、ＵＳＢデータ転送部３０８が、ＵＳＢ制御部３０７から受信したデータをどのポート番号に送信すればよいかわからないという課題がある。そこで実施形態２では、ＵＳＢデータ転送部３０８は、ＵＳＢ制御部３０７からデータを受信する度に、そのデータの先頭部分を解析し、適切なポート番号にデータを送信するものとする。尚、実施形態２に係るシステム構成及び画像形成装置１００の構成等は、前述の実施形態１と同様であるため、その説明を省略し、差分のみを説明する。
【００６１】
図１５は、本発明の実施形態２に係る画像形成装置１００において、各ＷｅｂアプリケーションがＷｅｂサーバ部３０５に登録する情報の一例を示す図である。
【００６２】
実施形態２では、ＩＰＰ処理部３０２はポート番号「６３１」、スキャン処理部３０３はポート番号「８０」、Ｗｅｂページ処理部３０４はポート番号「８０００」というように、互いに異なるポートを使用するものとする。
【００６３】
図１６は、実施形態２に係る画像形成装置１００のＵＳＢデータ転送部３０８が管理する接続テーブルの一例を示す図である。
【００６４】
接続テーブル１６００において、１６０１は、ＵＳＢデータ転送部３０８がＴＣＰ／ＩＰ処理部３０６に送信するデータの種別（ＩＰＰ／スキャン／Ｗｅｂページ）を示す。１６０２は、ＴＣＰ／ＩＰ処理部３０６と確立した接続の接続識別子である。実施形態２では、ＵＳＢデータ転送部３０８がＨＴＴＰリクエストラインを検知する度に接続を確立するため、接続識別子は複数持つことになる。
【００６５】
図１７は、実施形態２に係る画像形成装置１００のＵＳＢデータ転送部３０８が、ＵＳＢ制御部３０７から受け取ったデータをＴＣＰ／ＩＰ処理部３０６に送信する処理を説明するフローチャートであり、図８のＳ８０３の処理をより詳細に説明するものである。尚、このフローチャートで示す処理は、ＣＰＵ２０２が、ＨＤＤ２０５からＲＡＭ２０３に展開したプログラムを実行することによって実現される。
【００６６】
この処理は、ホストコンピュータ１０１がエンドポイント１又は３を指定してデータをＵＳＢ制御部３０７に送信することにより開始される。まずＳ１７０１でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＵＳＢ制御部３０７が受信したデータを受け取る。次にＳ１７０２に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、その受信したデータの先頭がＨＴＴＰリクエストラインであるかどうかを判定する。ＨＴＴＰリクエストラインは「メソッド」＋「空白」＋「ＵＲＬ」＋「空白」＋「ＨＴＴＰ／バージョン」という文字列であるため、データがこのパターンにマッチするかどうかで判定できる。例えば図１４の例では、メソッドが「ＰＯＳＴ」、ＵＲＬは図１３のＩＰＰのＵＲＬ（／ｉｐｐ／ｐｒｉｎｔ）、ＨＴＴＰ／バージョンは「ＨＴＴＰ／１．１」である。
ここで、このパターンにマッチすると判定すると、受信したデータは新規ＨＴＴＰリクエストであるためＳ１７０３に進む。一方、そうでないときは、受信したデータは以前のデータと同じ種別であるためＳ１７１０に進む。
【００６７】
Ｓ１７０３でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＵＲＬがＩＰＰのＵＲＬ（図１５の／ｉｐｐ／ｐｒｉｎｔ）であるかどうかを判定する。そうであればＳ１７０４に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、図１６の接続テーブルのデータ種別１６０１を「ＩＰＰ」に設定してＳ１７０８に進む。一方、Ｓ１７０３で「ＩＰＰ」でないと判定したときはＳ１７０５に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、スキャンのＵＲＬ（図１５の／ｓｃａｎ）であるかどうかを判定する。そうであればＳ１７０６に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、図１６の接続テーブルのデータ種別１６０１を「スキャン」に設定してＳ１７０８に進む。またＳ１７０５でスキャンでないと判定した場合はＳ１７０７に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、図１６の接続テーブルのデータ種別１６０１を「Ｗｅｂページ」に設定してＳ１７０８に進む。
【００６８】
Ｓ１７０８でＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、ＴＣＰ／ＩＰ処理部３０６と接続を確立する。その際、図１５の情報を参照し、データ種別が「ＩＰＰ」の場合はポート番号「６３１」、「スキャン」の場合はポート番号「８０」、「Ｗｅｂページ」の場合はポート番号「８０００」を指定する。次にＳ１７０９に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、確立した接続の接続識別子を接続テーブル１６００に保存する。そしてＳ１７１０に進みＣＰＵ２０２はＵＳＢデータ転送部３０８として機能し、接続識別子を指定し、受信したデータをＴＣＰ／ＩＰ処理部３０６に送信して、この処理を終了する。
【００６９】
以上説明したように実施形態３によれば、ＵＳＢデータ転送部３０８は、ＵＳＢ制御部３０７からデータを受信する度にデータの先頭部分を解析し、適切なポート番号にデータを送信する。その結果、Ｗｅｂアプリケーションごとに異なるポート番号を使用する場合であっても、ＵＳＢ上で、ＩＰＰ  ｏｖｅｒ  ＵＳＢに準拠した印刷、スキャン、Ｗｅｂページデータ等を実行することができる。
【００７０】
［他の実施形態］
上述した実施形態では、ＵＳＢデータ転送部３０８はループバックを使用してＴＣＰ／ＩＰ処理部３０６と接続していた。しかしループバックを使用せず、Ｗｅｂサーバ部３０５が、直接、ＵＳＢデータ転送部３０８とデータを送受信できる構成にしても良い。
【００７１】
また実施形態２では、ＵＳＢデータ転送部３０８は、ＨＴＴＰリクエストラインを解析していた。その後さらに、ＵＳＢデータ転送部３０８からのデータであることを示すＨＴＴＰヘッダを挿入してＴＣＰ／ＩＰ処理部３０６に送信するようにしてもよい。これにより、Ｗｅｂサーバ部３０５や各Ｗｅｂアプリケーションが、データをＵＳＢを介して受信したのか、ネットワークを介して受信したのかを判断できるようになり、処理を切り替えるようなことも可能になる。
【００７２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７３】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００７４】
１００…画像形成装置（ＭＦＰ），１０１，１０２…ホストコンピュータ、１０３…ネットワーク、３０２…ＩＰＰ処理部、３０３…スキャン処理部、３０４…Ｗｅｂページ処理部、３０５…Ｗｅｂサーバ部、３０６…ＴＣＰ／ＩＰ処理部、３０７…ＵＳＢ制御部、３０８…データ転送部
【図１】
2017034482.tif 000003
【図２】
2017034482.tif 000004
【図３】
2017034482.tif 000005
【図４】
2017034482.tif 000006
【図５】
2017034482.tif 000007
【図６】
2017034482.tif 000008
【図７】
2017034482.tif 000009
【図８】
2017034482.tif 000010
【図９】
2017034482.tif 000011
【図１０】
2017034482.tif 000012
【図１１】
2017034482.tif 000013
【図１２】
2017034482.tif 000014
【図１３】
2017034482.tif 000015
【図１４】
2017034482.tif 000016
【図１５】
2017034482.tif 000017
【図１６】
2017034482.tif 000018
【図１７】
2017034482.tif 000019