(57)【要約】【課題】ＵＳＢを用いて各種の通信を実行することが可能な画像処理装置等を提供する。【解決手段】ＭＦＰは、ＰＣがＵＳＢプロトコルに従って送信したＵＳＢデータパケットを受信し、ＵＳＢデータパケットに含まれるコンテンツデータを１の受信用ＵＳＢエンドポイントに対応するバッファに記憶させるＵＳＢインタフェース部を備える。ＭＦＰは、ＨＴＴＰコマンドに基づいて各種の処理を実行するＷｅｂサーバを備える。ＭＦＰは、ＨＴＴＰコマンドではないコマンドに基づいて画像処理を実行する印刷エンジンを備える。ＭＦＰは、１の受信用エンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含むデータをＷｅｂサーバに処理させ、１の受信用エンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含まないデータを、印刷エンジンに処理させる。【選択図】図２
2014106581.tif 000002
【特許請求の範囲】
【請求項１】
画像データ処理装置がＵＳＢプロトコルに従って送信したＵＳＢデータパケットを受信し、受信したＵＳＢデータパケットに含まれるコンテンツデータを１の受信用ＵＳＢエンドポイントに対応するバッファに記憶させるＵＳＢ  Ｉ／Ｆを備える画像処理装置であって、
ＨＴＴＰコマンドに基づいて各種の処理を実行する第１処理手段と、
ＨＴＴＰコマンドではないコマンドに基づいて画像処理を実行する第２処理手段と、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含むコンテンツデータを前記第１処理手段に処理させ、前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含まないコンテンツデータを前記第２処理手段に処理させるコンテンツデータ振り分け処理を実行するコンテンツ処理制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像処理装置には、前記受信用ＵＳＢエンドポイントが複数備えられており、
前記１の受信用ＵＳＢエンドポイントは、複数の前記受信用ＵＳＢエンドポイントのうち、前記画像データ処理装置が指定した受信用ＵＳＢエンドポイントであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
画像データ処理装置がＴＣＰプロトコルに従って送信したＴＣＰデータパケットを受信可能なＴＣＰ  Ｉ／Ｆを備え、
前記第１処理手段は、前記ＴＣＰ  Ｉ／Ｆが受信したＴＣＰデータパケットに含まれるＨＴＴＰコマンドに基づいて各種の処理を実行することが可能であり、かつ、コンテンツ処理制御手段によるコンテンツデータ振り分け処理に拠って、前記ＵＳＢ  Ｉ／Ｆが受信したＵＳＢデータパケットに含まれるＨＴＴＰコマンドに基づいて各種の処理を実行することが可能である、
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記コンテンツ処理制御手段は、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータを解析し、
解析したコンテンツデータがＨＴＴＰコマンドを含むデータである場合には前記コンテンツデータを前記第１処理手段に処理させ、
解析したコンテンツデータがＨＴＴＰコマンドを含むデータでない場合には前記コンテンツデータを前記第２処理手段に処理させる、
ことを特徴とする請求項１〜３の何れか１項に記載の画像処理装置。
【請求項５】
前記第２処理手段は、
第１形式の画像形成データに基づいて画像形成する処理を実行する第１画像形成手段と、
第２形式の画像形成データに基づいて画像形成する処理を実行する第２画像形成手段と、
前記第１形式の画像形成データを前記第１画像形成手段に処理させ、前記第２形式の画像形成データを前記第２画像形成手段に処理させる画像形成データ振り分け処理を実行する画像形成データ処理制御手段と、を備え、
前記コンテンツ処理制御手段は、前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含まないコンテンツデータを、前記画像形成データ処理制御手段に処理させる、
ことを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
前記コンテンツ処理制御手段は、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータがＨＴＴＰコマンドを含むデータであるか否かを判断し、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータがＨＴＴＰコマンドを含むデータであると判断した場合には前記コンテンツデータを前記第１処理手段に処理させ、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータがＨＴＴＰコマンドを含むデータでないと判断した場合には前記コンテンツデータを前記画像形成データ処理制御手段に処理させる、
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記コンテンツ処理制御手段は、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータのヘッダ部分を解析し、
解析したコンテンツデータがＨＴＴＰコマンドを含むデータであるか否かを判断し、
解析したコンテンツデータがＨＴＴＰコマンドを含むデータであると判断した場合には前記コンテンツデータを前記第１処理手段に処理させ、
解析したコンテンツデータがＨＴＴＰコマンドを含むデータでないと判断した場合には前記コンテンツデータを前記画像形成データ処理制御手段に処理させ、
前記画像形成データ処理制御手段は、
前記コンテンツデータを解析し、
解析したコンテンツデータが前記第１形式の画像形成データである場合には前記第１画像形成手段に処理させ、
解析したコンテンツデータが前記第２形式の画像形成データである場合には前記第２画像形成手段に処理させることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記コンテンツ処理制御手段は、前記１の受信用ＵＳＢエンドポイントを介して、複数の前記コンテンツデータをシリアルに通信しており、
前記コンテンツ処理制御手段は、前記１の受信用ＵＳＢエンドポイントを介して直近に通信したコンテンツデータの通信時刻と、前記直近に通信したコンテンツデータの１つ前に通信したコンテンツデータの通信時刻との間の通信間隔時間が、予め定められた所定時間よりも大きい場合には、前記直近に通信したコンテンツデータの先頭から所定バイト数の部分を前記ヘッダ部として取り扱うことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記コンテンツ処理制御手段は、前記コンテンツデータの前記ヘッダ部を解析して通信先を設定した場合には、前記ヘッダ部を解析したコンテンツデータに引き続いて通信される複数のコンテンツデータのうち、１つ前のコンテンツデータとの間の前記通信間隔時間が前記所定時間よりも小さいコンテンツデータの通信先を、前記ヘッダ部を解析したコンテンツデータの通信先と同一に設定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
画像形成データ処理制御手段は、前記ＨＴＴＰコマンドを含まないデータを解析して前記ＨＴＴＰコマンドを含まないデータの通信の終了を検出し、
前記コンテンツ処理制御手段は、前記画像形成データ処理制御手段が前記ＨＴＴＰコマンドを含まないデータの通信の終了を検出した時点以降において最初に通信したコンテンツデータの先頭から所定バイト数の部分を、前記ヘッダ部として取り扱うことを特徴とする請求項８または９に記載の画像処理装置。
【請求項１１】
画像データ処理装置がＵＳＢプロトコルに従って送信したＵＳＢデータパケットを受信し、受信したＵＳＢデータパケットに含まれるコンテンツデータを１の受信用ＵＳＢエンドポイントに対応するバッファに記憶させるＵＳＢ  Ｉ／Ｆを備える画像処理装置のコンピュータが読み取り可能な通信プログラムであって、
前記画像処理装置の前記コンピュータを、
ＨＴＴＰコマンドに基づいて各種の処理を実行する第１処理手段と、
ＨＴＴＰコマンドではないコマンドに基づいて画像処理を実行する第２処理手段と、
前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含むコンテンツデータを前記第１処理手段に処理させ、前記１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含まないコンテンツデータを前記第２処理手段に処理させるコンテンツデータ振り分け処理を実行するコンテンツ処理制御手段と、
して機能させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、各種のデータを通信することができる画像処理装置および通信プログラムに関する。
【背景技術】
【０００２】
従来、画像処理装置にＷｅｂサーバ機能を備え、端末装置で実行されるＷｅｂブラウザに画像処理装置の設定画面などを表示する技術が開示されている。また、画像処理装置と端末装置とをインターネットで接続し、インターネットを介して画像処理装置に画像を処理させるＩＰＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｉｎｔｉｎｇ Ｐｒｏｔｏｃｏｌの略）と呼ばれる規格が知られている。そして、画像処理装置と端末装置とがＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓの略）によって接続されている環境において上述したＩＰＰによる通信を行うための、ＩＰＰ ｏｖｅｒ ＵＳＢという規格のドラフトが知られている。
【０００３】
ＵＳＢは、エンドポイントと呼ばれる論理チャンネルを、複数備えることができる。エンドポイントを複数備えることにより、物理的にシリアル通信であるＵＳＢを用いて、複数の通信経路を形成することができる。また、特許文献１には、ＰＣなどの端末装置とＵＳＢ接続する画像処理装置が開示されている。特許文献１の画像処理装置は、制御用および印刷データ受信用のエンドポイントと、印刷状況送受信用エンドポイントを備えている。これにより、ＰＣから画像処理装置への印刷データの送信と、画像処理装置からＰＣへの情報送信とを、ＵＳＢを介して行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１６７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エンドポイントは、ＵＳＢ通信を制御するＡＳＩＣ等のハードウェアに実装されることがある。この場合、上述したＩＰＰ ｏｖｅｒ ＵＳＢ規格による通信を実行するためにエンドポイントの数を増加させると、ハードウェアの実装面積が増大してしまう事態や、ハードウェアの価格が上昇してしまう事態が発生してしまう場合がある。
【課題を解決するための手段】
【０００６】
本明細書によって開示される画像処理装置は、画像データ処理装置がＵＳＢプロトコルに従って送信したＵＳＢデータパケットを受信し、受信したＵＳＢデータパケットに含まれるコンテンツデータを１の受信用ＵＳＢエンドポイントに対応するバッファに記憶させるＵＳＢ  Ｉ／Ｆを備える画像処理装置であって、ＨＴＴＰコマンドに基づいて各種の処理を実行する第１処理手段と、ＨＴＴＰコマンドではないコマンドに基づいて画像処理を実行する第２処理手段と、１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含むコンテンツデータを第１処理手段に処理させ、１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたＨＴＴＰコマンドを含まないコンテンツデータを第２処理手段に処理させるコンテンツデータ振り分け処理を実行するコンテンツ処理制御手段と、を備えることを特徴とする。
【０００７】
上記通信装置によると、１の受信用ＵＳＢエンドポイントを介して通信されるコンテンツデータの通信先を、コンテンツ処理制御手段によって、第１処理手段または第２処理手段に振り分けることができる。これにより、ＨＴＴＰコマンドを含むデータを用いる第１処理手段と、ＨＴＴＰコマンドを含まないデータを用いる第２処理手段との間で、１の受信用ＵＳＢエンドポイントを共用することが可能となる。よって、第１処理手段および第２処理手段の各々に専用の受信用ＵＳＢエンドポイントを備える場合に比して、必要な受信用ＵＳＢエンドポイント数を削減することができるため、受信用ＵＳＢエンドポイントが実装されるハードウェアの面積が増大してしまう事態やハードウェアのコストが上昇してしまう事態を防止することが可能となる。
【０００８】
上記通信装置では、画像処理装置に複数の受信用ＵＳＢエンドポイントが備えられている場合においても、第１処理手段と第２処理手段との間で、１の受信用ＵＳＢエンドポイントを共用することが可能となる。
【０００９】
上記通信装置では、１の受信用ＵＳＢエンドポイントを介して受信したコンテンツデータに基づいて各種の処理を実行するとともに、ＴＣＰ  Ｉ／Ｆを介して受信したＴＣＰデータパケットに基づいて各種の処理を実行することができる。これにより、受信用ＵＳＢを用いたＨＴＴＰコマンドの通信と、ＴＣＰ通信回線を用いたＨＴＴＰコマンドの通信とを、同時に行うことが可能となる。
【００１０】
上記通信装置では、１の受信用ＵＳＢエンドポイントに記憶されたコンテンツデータを解析することによって、コンテンツデータ振り分け処理を確実に実行することが可能となる。
【００１１】
上記通信装置では、画像形成データ処理制御手段によって、画像形成データの形式を判別することができる。そして、画像形成データの形式に対応する画像形成手段へ、画像形成データを送信することができる。これにより、画像形成データの複数種類の形式に対応することが可能となる。
【００１２】
上記通信装置では、コンテンツ処理制御手段は、１の受信用ＵＳＢエンドポイントに対応するバッファに記憶されたコンテンツデータがＨＴＴＰコマンドを含むデータであるか否かを判断することで、コンテンツデータ振り分け処理を実行することができる。これにより、コンテンツデータ振り分け処理の負荷を低減させることが可能となる。
【００１３】
上記通信装置では、コンテンツ処理制御手段は、コンテンツデータのヘッダ部分を解析することで、コンテンツデータ振り分け処理を実行することができる。これにより、コンテンツデータ振り分け処理の負荷を低減させることが可能となる。
【００１４】
ＵＳＢでは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌの略）のように、コネクションを確立するために最初に送信されるパケット（例：ＳＹＮパケット）が存在しない。よって、ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合には、コンテンツデータのヘッダ部分を識別することが困難である。上記通信装置では、所定時間よりも大きい通信間隔時間の経過後にコンテンツデータを受信した場合には、コンテンツデータの先頭から所定バイト数の部分をヘッダ部であると認識することができる。これにより、ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合において、コンテンツデータのヘッダ部分を識別することが可能となる。
【００１５】
ＵＳＢでは、ＴＣＰのように、コネクションを切断するためのパケット（例：ＦＩＮパケット）が存在しない。よって、ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合には、あるタスクのための一群のコンテンツデータと、他のタスクのための一群のコンテンツデータとの境界を、コネクションの切断によって識別することが困難である。上記通信装置では、所定時間よりも大きい通信間隔時間で区切られた一連のコンテンツデータを、１つのタスクのための一群のコンテンツデータであると認識することができる。これにより、一群のコンテンツデータと一群のコンテンツデータとの間の境界を認識することが可能となるため、一群のコンテンツデータを同一の通信先へ通信させることができる。
【００１６】
ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合には、通信パケットのヘッダ部分を識別することが困難である。上記通信装置では、画像形成データ処理制御手段によってＨＴＴＰコマンドを含まないデータの通信の終了を検出した場合には、終了を検出した時点以降において最初に通信したコンテンツデータの先頭から所定バイト数の部分をヘッダ部であると認識することができる。これにより、ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合において、コンテンツデータのヘッダ部分を識別することが可能となる。
【００１７】
なお、上記の技術を実現するための通信プログラムも、新規で有用である。
【図面の簡単な説明】
【００１８】
【図１】通信システム１の電気的構成を示す図である。
【図２】ＰＣおよびＭＦＰのブロック図である。
【図３】ＭＦＰで行われる通信処理のフローチャートである。
【図４】ＭＦＰで行われる通信処理のフローチャートである。
【図５】設定画面の一例を示すである。
【図６】ＨＴＴＰ要求メッセージの一例を示す図である。
【図７】ＨＴＴＰ応答メッセージの一例を示す図である。
【発明を実施するための形態】
【００１９】
＜通信システムの構成＞  
図１に、本願に係る第１実施形態として例示される通信システム１の電気的構成を示す。通信システム１は、パーソナルコンピュータ（ＰＣと記す）９、多機能周辺装置（以下「ＭＦＰ」と称す）５１、外部機器９１を備えている。ＭＦＰ５１は、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える。外部機器９１の一例としては、ＰＣや携帯電話などが挙げられる。
【００２０】
ＰＣ９の構成について説明する。ＰＣ９は、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２、表示部１３、操作部１４、記憶部１５、ＵＳＢホストインタフェース部（図１ではＵＳＢホストＩＦ部と記す）１６、及び、ＬＡＮインタフェース部（図１ではＬＡＮ＿ＩＦ部と記す）１７、を備えている。
【００２１】
ＣＰＵ１０は、ＲＯＭ１１や記憶部１５に記憶されているプログラムを実行することによってＰＣ９の各部を制御する。ＲＯＭ１１には、ＣＰＵ１０によって実行されるプログラムやデータなどが記憶されている。ＲＡＭ１２は、ＣＰＵ１０が各種の処理を実行するための主記憶装置として用いられる。表示部１３は、液晶ディスプレイなどの表示装置、表示装置を駆動するディスプレイ駆動回路などを備えている。操作部１４は、キーボードやマウス、それらが接続されるインタフェースなどを備えている。記憶部１５は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部１５には、オペレーティングシステム（ＯＳと記す）２１、中間ｈｔｔｐｄ（ｈｔｔｐ ｄａｅｍｏｎの略）２２、Ｗｅｂブラウザ２３、印刷アプリケーション２４、ＰＳドライバ２５、ＰＣＬドライバ２６、ＴＣＰ／ＩＰスタック２９、スキャナドライバ３０、スキャンアプリケーション３１、などの各種プログラムが記憶されている。これらのプログラムの内容については、後述する。
【００２２】
ＵＳＢホストインタフェース部１６は、ＵＳＢ１８を介してＭＦＰ５１と通信を行うためのインタフェースである。ＵＳＢホストインタフェース部１６は、ＵＳＢホストコントローラ（不図示）、ＵＳＢケーブルが接続されるジャック（不図示）、エンドポイントＥＰ１０〜ＥＰ１３（図２を参照）、などを備えている。エンドポイントＥＰ１０〜ＥＰ１３は、ＦＩＦＯ（First-In First-Outの略）バッファである。エンドポイントＥＰ１０は、コントロール転送に用いるための、双方向通信が可能なエンドポイントである。エンドポイントＥＰ１１〜ＥＰ１３は、各種のデータを通信するためのエンドポイントである。エンドポイントＥＰ１１〜ＥＰ１３は、後述するエンドポイントＥＰ１〜ＥＰ３と同様に、受信用エンドポイントと送信用エンドポイントとを一組で備えているが、説明および図示を省略する。ＵＳＢホストインタフェース部１６は、ＡＳＩＣ等のハードウェアで構成されていてもよい。ＬＡＮインタフェース部１７は、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋの略）やインターネットなどの通信ネットワークを介して、ＰＣ、携帯電話、携帯通信端末などの不図示の通信端末と通信するためのインタフェースである。
【００２３】
ＭＦＰ５１の構成について説明する。ＭＦＰ５１は、プリンタ１９、スキャナ２０、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、記憶部３５、ボタン入力部３８、パネル３９、モデム４０、電話回線接続部４１、ＵＳＢインタフェース部（図１ではＵＳＢ＿ＩＦ部と記す）４２、ＬＡＮインタフェース部（図１ではＬＡＮ＿ＩＦ部と記す）４３、を主に備えている。これらの構成要素は、入出力ポート４４を介して互いに通信可能とされている。ＲＯＭ３３は、各種のプログラムを記憶する。ＲＡＭ３４は、揮発性のメモリである。ＣＰＵ３２は、ＲＯＭ３３や記憶部３５に記憶されている各種のプログラムを実行する。
【００２４】
記憶部３５は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部３５には、ＯＳ６１、Ｗｅｂサーバ６２、コンテンツ処理制御部６３、画像形成データ処理制御部６４、ＴＣＰ／ＩＰスタック６５、ＬＡＮドライバ６９、印刷エンジン７０、ＰＳパーサ７１、ＰＣＬパーサ７２、スキャナコマンド処理部７３、などのプログラムが記憶されている。これらのプログラムの内容については、後述する。
【００２５】
ＵＳＢインタフェース部４２は、ＵＳＢ１８を介してＰＣ９と通信を行うためのインタフェースである。ＵＳＢインタフェース部４２は、ＵＳＢプロトコルに従ってＰＣ９が送信したＵＳＢデータパケットを受信することが可能とされている。ＵＳＢインタフェース部４２は、ＡＳＩＣなどのハードウェアで構成されていてもよい。ＬＡＮインタフェース部４３は、ＬＡＮ通信９２を介して外部機器９１と通信を行う部位である。ボタン入力部３８は、ＭＦＰ５１の各機能を実行するためのキーである。ボタン入力部３８は、タッチパネルとして、パネル３９と一体に構成されていてもよい。パネル３９は、各種の画像を表示する。プリンタ１９は、印刷用紙に印刷を実行する部位である。スキャナ２０は、紙の原稿をスキャンして、画像データを生成する部位である。モデム４０は、ファクシミリ機能によって送信する原稿データを、電話回線網１００に伝送可能な信号に変調して電話回線接続部４１を介して送信したり、電話回線網１００から電話回線接続部４１を介して入力された信号を受信し、原稿データへ復調するものである。
【００２６】
＜ＰＣおよびＭＦＰのブロック図＞
図２を参照して、ＰＣ９およびＭＦＰ５１のブロック図について説明する。ＰＣ９は、中間ｈｔｔｐｄ２２、Ｗｅｂブラウザ２３、印刷アプリケーション２４、ＰＳドライバ２５、ＰＣＬドライバ２６、ＴＣＰ／ＩＰスタック２９、スキャナドライバ３０、スキャンアプリケーション３１、ＵＳＢホストインタフェース部１６、ＬＡＮインタフェース部１７、などを備えている。
【００２７】
Ｗｅｂブラウザ２３およびＬＡＮインタフェース部１７の各々は、ＴＣＰ／ＩＰスタック２９および中間ｈｔｔｐｄ２２を介して、ＵＳＢホストインタフェース部１６と通信する。印刷アプリケーション２４は、ＰＣＬドライバ２６を介してＵＳＢホストインタフェース部１６と通信するとともに、ＰＳドライバ２５を介してＵＳＢホストインタフェース部１６と通信する。スキャンアプリケーション３１は、スキャナドライバ３０を介してＵＳＢホストインタフェース部１６と通信する。
【００２８】
Ｗｅｂブラウザ２３は、ユーザがＭＦＰ５１の各種設定を行うためのユーザインタフェースとして用いられるプログラムである。Ｗｅｂブラウザ２３としては、一般に利用されているブラウザを用いることができる。中間ｈｔｔｐｄ２２は、ＭＦＰ５１が備えるＷｅｂサーバ６２と、Ｗｅｂブラウザ２３との仲介を行うためのプログラムである。中間ｈｔｔｐｄ２２は、ユーザからの要求に応じてコンテンツを送信するなどの動作を行う。ＴＣＰ／ＩＰスタック２９は、ＴＣＰ／ＩＰ通信のプロトコルに関するプログラムをまとめて１つのプログラム群にしたものである。
【００２９】
印刷アプリケーション２４は、印刷データを通信するためのプログラムである。印刷アプリケーション２４の一例としては、印刷データを一時的に保存するスプーラが挙げられる。印刷アプリケーション２４は、ＯＳ２１の一部として提供されてもよい。ＰＳドライバ２５は、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語に対応した、ＭＦＰ５１を制御するためのプログラムである。ＰＳドライバ２５からは、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語で記述された印刷データが出力される。ＰＣＬドライバ２６は、ＰＣＬ（Ｐｒｉｎｔｅｒ Ｃｏｎｔｒｏｌ Ｌａｎｇｕａｇｅの略）言語に対応した、ＭＦＰ５１を制御するためのプログラムである。ＰＣＬドライバ２６からは、ＰＣＬ言語で記述された印刷データが出力される。
【００３０】
スキャンアプリケーション３１は、画像データを通信するためのプログラムである。スキャナドライバ３０は、ＭＦＰ５１を制御するためのプログラムである。ＵＳＢホストインタフェース部１６は、ＵＳＢ１８を介した通信を実行するためのプログラムである。
【００３１】
図２を参照して、ＭＦＰ５１のブロック図について説明する。ＭＦＰ５１は、ＵＳＢインタフェース部４２、コンテンツ処理制御部６３、ＴＣＰ／ＩＰスタック６５、Ｗｅｂサーバ６２、ＬＡＮインタフェース部４３、画像形成データ処理制御部６４、ＰＳパーサ７１、ＰＣＬパーサ７２、スキャナコマンド処理部７３、印刷エンジン７０、などを備えている。ＵＳＢインタフェース部４２は、エンドポイントＥＰ１〜ＥＰ３を備えている。
【００３２】
コンテンツ処理制御部６３は、Ｗｅｂサーバ６２または画像形成データ処理制御部６４のいずれか一方を選択して通信することが可能とされている。画像形成データ処理制御部６４は、ＰＳパーサ７１またはＰＣＬパーサ７２のいずれか一方を選択して通信することが可能とされている。
【００３３】
ＵＳＢインタフェース部４２は、ＵＳＢ１８を介した通信を実行するための部位である。ＵＳＢインタフェース部４２は、ハードウェアとして構成されていてもよいし、ソフトウェアとして構成されていてもよい。ＵＳＢインタフェース部４２は、エンドポイントＥＰ０〜ＥＰ３の各々を備えている。エンドポイントは、ＦＩＦＯバッファである。エンドポイントＥＰ０は、コントロール転送に用いるための、双方向通信が可能なエンドポイントである。エンドポイントＥＰ１〜ＥＰ３は、各種のデータを通信するためのエンドポイントである。エンドポイントＥＰ１は、受信用エンドポイントＥＰ１ａと送信用エンドポイントＥＰ１ｂとを一組で備えている。これによりエンドポイントＥＰ１は、双方向通信が可能とされている。なお、エンドポイントＥＰ２およびＥＰ３の構成も、エンドポイントＥＰ１と同様であるため、説明を省略する。ＵＳＢインタフェース部４２にエンドポイントＥＰ１〜ＥＰ３を備えることにより、ＵＳＢ１８を３つのパラレルな通信経路として取り扱うことが可能となる。
【００３４】
コンテンツ処理制御部６３は、Ｗｅｂサーバ６２および画像形成データ処理制御部６４の何れか一方を選択して、データ振り分け処理を実行するためのプログラムである。コンテンツ処理制御部６３で実行されるデータ振り分け処理では、ＨＴＴＰコマンドを含まないデータは、エンドポイントＥＰ１と印刷エンジン７０との間で通信される。また、ＨＴＴＰコマンドを含むデータは、エンドポイントＥＰ１とＷｅｂサーバ６２との間で通信される。
【００３５】
ＬＡＮインタフェース部４３は、ＬＡＮ通信９２を実行するためのプログラムである。ＴＣＰ／ＩＰスタック６５は、ＴＣＰ／ＩＰ通信のプロトコルに関するプログラムをまとめて１つのプログラム群にしたものである。
【００３６】
Ｗｅｂサーバ６２は、ＷＷＷによる情報送信機能を持ったプログラムである。Ｗｅｂサーバ６２は、ｈｔｔｐｄとも呼ばれる。Ｗｅｂサーバ６２は、ＨＴＭＬ文書や画像などの情報を蓄積しておき、Ｗｅｂブラウザ２３や外部機器９１などの要求に応じて、これらの情報を送信する役割を果たす。すなわち、Ｗｅｂサーバ６２は、ＵＳＢインタフェース部４２がＵＳＢ１８を介して受信したＵＳＢデータパケットに含まれるＨＴＴＰコマンドに基づいて、各種の処理を実行することが可能である。またＷｅｂサーバ６２は、ＬＡＮドライバ６９がＬＡＮ通信９２を介して受信したＴＣＰデータパケットに含まれるＨＴＴＰコマンドに基づいて、各種の処理を実行することも可能である。
【００３７】
画像形成データ処理制御部６４は、ＰＳパーサ７１またはＰＣＬパーサ７２の何れか一方を選択して、コンテンツ処理制御部６３との通信を確立するためのプログラムである。ＰＣＬパーサ７２は、ＰＣＬ言語で記述されたデータを構文解析して、印刷エンジン７０で印刷処理が行えるように変換するプログラムである。ＰＳパーサ７１は、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語で記述されたデータを構文解析して、印刷エンジン７０で印刷処理が行えるように変換するプログラムである。印刷エンジン７０は、プリンタ１９を制御して印刷を実行するためのプログラムである。印刷エンジン７０では、ＨＴＴＰコマンドを含まないデータ（例：印刷データ）に基づいて処理が行われる。スキャナコマンド処理部７３は、スキャナ２０を制御して画像データを取得させるためのプログラムである。スキャナコマンド処理部７３では、ＨＴＴＰコマンドを含まないデータ（例：スキャンデータ）に基づいて処理が行われる。画像形成データ処理制御部６４は、後述する、データ振り分け処理およびデータ通信の終了検出処理を実行する。
【００３８】
＜ＰＣとＭＦＰとの通信＞
ＰＣ９は、ＵＳＢ１８を介して、ＭＦＰ５１との間で少なくとも以下の通信を行う。（１）ＭＦＰ５１を設定するための設定用通信。（２）ＭＦＰ５１に印刷データを送信するための印刷用通信。（３）ＭＦＰから画像データを受信するためのスキャン用通信。設定用通信では、ＨＴＴＰコマンドを含んだデータが、ＵＳＢデータパケットに格納されて送受信される。一方、印刷用通信およびスキャン用通信では、ＨＴＴＰコマンドを含まないデータが、ＵＳＢデータパケットに格納されて送受信される。なお、本実施形態では、設定用通信のデータおよび印刷用通信のデータをＭＦＰ５１が受信する際に、１の受信用エンドポイントＥＰ１ａを使用する場合を説明する。また、設定用通信のデータおよび印刷用通信のデータをＭＦＰ５１が送信する際に、１の送信用エンドポイントＥＰ１ｂを使用する場合を説明する。また、スキャン用通信のデータをＭＦＰ５１が受信する際には受信用エンドポイントＥＰ２ａが使用され、スキャン用通信のデータをＭＦＰ５１が送信する際には送信用エンドポイントＥＰ２ｂが使用される場合を説明する。
【００３９】
設定用通信の一例を説明する。例として、図５に示す設定画面１４１をＰＣ９の表示部１３に表示させる、という１つのタスクを実行する場合における、設定用通信を説明する。設定画面１４１では、ＭＦＰ５１の各種の設定を行うことができる。具体的には、プリンタ言語１４１ａ、第１のトレイにセットされている用紙サイズ１４１ｂ、第２のトレイにセットされている用紙サイズ１４１ｃ、を設定することができる。また、設定画面１４１には、画像１４２、画像１４３、画像１４４が表示される。ここでは画像１４２〜１４４を表示するための画像データを、それぞれＧＩＦ１、ＧＩＦ２、ＧＩＦ３と称呼するものとする。
【００４０】
ＵＳＢケーブルによってＵＳＢホストインタフェース部１６とＵＳＢインタフェース部４２とが接続されることに応じて、ＵＳＢコンフィグレーションが行われる。ＵＳＢコンフィグレーションは、ＵＳＢ１８を用いた通信の各種設定を行う処理である。ＵＳＢコンフィグレーションでは、コンフィグレーションのデータが、ＵＳＢデバイスであるＭＦＰ５１側からＵＳＢホストであるＰＣ９側へ、エンドポイントＥＰ０およびＥＰ１０を介して送信される。本実施形態の説明例では、コンフィグレーションのデータが、（ａ）Ｗｅｂブラウザ２３および印刷アプリケーション２４から送信されるデータの受信には、受信用エンドポイントＥＰ１ａを用いること、（ｂ）Ｗｅｂブラウザ２３および印刷アプリケーション２４へのデータ送信には、送信用エンドポイントＥＰ１ｂを用いること、（ｃ）スキャンアプリケーション３１から送信されるデータの受信には、受信用エンドポイントＥＰ２ａを用いること、（ｄ）スキャンアプリケーション３１へのデータ送信には、送信用エンドポイントＥＰ２ｂを用いること、を示している場合を説明する。ＰＣ９は、Ｗｅｂブラウザ２３および印刷アプリケーション２４とＭＦＰ５１とのデータの送受信にはエンドポイントＥＰ１１を使用し、スキャンアプリケーション３１とＭＦＰ５１とのデータの送受信にはエンドポイントＥＰ１２を使用することを示す識別情報を、ＭＦＰ５１へ返信する。これにより、ＵＳＢコンフィグレーションが完了する。よって図２に示すように、印刷アプリケーション２４およびＷｅｂブラウザ２３は、エンドポイントＥＰ１１およびＥＰ１を用いて通信する設定が行われる。また、スキャンアプリケーション３１は、エンドポイントＥＰ１２およびＥＰ２を用いて通信する設定が行われる。
【００４１】
Ｗｅｂブラウザ２３によりｌｏｃａｌｈｏｓｔの特定ポート８０（例：ｈｔｔｐ：／／１２７．０．０．１：８０）がアクセスされると、Ｗｅｂブラウザ２３は、そのメインページのファイルを取得するためのＧＥＴコマンドを発行する。ＧＥＴコマンドは、ＨＴＴＰコマンドの１種である。発行されたＧＥＴコマンドは、ＴＣＰ／ＩＰスタック２９を介して中間ｈｔｔｐｄ２２へ送信される。中間ｈｔｔｐｄ２２は、ＧＥＴコマンドを、ＵＳＢプロトコルに基づいてＵＳＢホストインタフェース部１６へ送信する。ＵＳＢホストインタフェース部１６は、前述したＵＳＢコンフィグレーションに基づいて、Ｗｅｂブラウザ２３とのデータの送受信に、エンドポイントＥＰ１１およびＥＰ１を用いると判断する。よってＵＳＢホストインタフェース部１６は、エンドポイントＥＰ１を指定して、ＧＥＴコマンドを送信する。
【００４２】
送信されたＧＥＴコマンドは、受信用エンドポイントＥＰ１ａで受信され、コンテンツ処理制御部６３を介してＷｅｂサーバ６２に送信される。Ｗｅｂサーバ６２は、ＧＥＴコマンドの応答として、設定画面１４１を表示するためのＨＴＭＬ／ＸＭＬ形式のメインページのデータを生成し、ＵＳＢインタフェース部４２の送信用エンドポイントＥＰ１ｂへ送信する。ＵＳＢインタフェース部４２は、前述したＵＳＢコンフィグレーションに基づいて、Ｗｅｂブラウザ２３とのデータの送受信に、エンドポイントＥＰ１１およびＥＰ１を用いると判断する。よってＵＳＢインタフェース部４２は、エンドポイントＥＰ１１を指定して、メインページのデータを送信する。
【００４３】
送信されたメインページのデータは、エンドポイントＥＰ１１で受信され、Ｗｅｂブラウザ２３へ送信される。Ｗｅｂブラウザ２３は、メインページのデータを解析し、設定画面１４１を表示部１３に表示させる。またＷｅｂブラウザ２３は、メインページを表示するために不足している画像データ（例：ＧＩＦ１、ＧＩＦ２、ＧＩＦ３）が存在すると判断し、Ｗｅｂサーバ６２に対して、不足している画像データの送信を要求する。具体的には、ＧＩＦ１〜ＧＩＦ３に対するＧＥＴコマンドがＷｅｂブラウザ２３からＷｅｂサーバ６２へ送信され、ＧＩＦ１〜ＧＩＦ３に対応する画像データがＷｅｂサーバ６２からＷｅｂブラウザ２３へ返信される。なお、ＧＥＴコマンドの送信処理および画像データの返信処理の内容は、前述した処理内容と同様であるため、ここでは説明を省略する。そして、Ｗｅｂブラウザ２３は、画像１４２〜１４４を設定画面１４１に表示する。これにより、設定画面１４１を開くという１つのタスクが完了する。このように、設定画面１４１を開くという１つのタスクを実行する際には、メインページのデータおよびＧＩＦ１〜ＧＩＦ３に対応する画像データの、「一群のデータ」を通信する必要がある。
【００４４】
ユーザが設定画面１４１を用いて設定パラメータを入力すると、Ｗｅｂブラウザ２３は、入力された設定パラメータをＷｅｂブラウザ２３へ反映させるためのＰＵＴコマンドを発行する。ＰＵＴコマンドは、ＨＴＴＰコマンドの１種である。発行されたＰＵＴコマンドは、ＴＣＰ／ＩＰスタック２９、中間ｈｔｔｐｄ２２、エンドポイントＥＰ１１およびＥＰ１、コンテンツ処理制御部６３を経由して、Ｗｅｂブラウザ２３へ送信される。Ｗｅｂサーバ６２は、ＰＵＴコマンドに基づいて、不図示の設定部へ、設定パラメータを記憶させる。
【００４５】
＜通信処理の詳細＞
図３および図４を参照して、ＭＦＰ５１で行われる通信処理について説明する。ＭＦＰ５１で実行される各種のプログラムは常駐プログラムとして実行されるものであり、本処理はＭＦＰ５１に電源が投入されると開始される。また以降の説明において、例えばコンテンツ処理制御部６３というときは、コンテンツ処理制御部６３を実行するＣＰＵ３２のことをいう場合がある。
【００４６】
Ｓ９において、コンテンツ処理制御部６３がアイドル状態とされる。具体的には、コンテンツ処理制御部６３の通信先が、Ｗｅｂサーバ６２および画像形成データ処理制御部６４の何れでもない状態にされる。Ｓ１１においてＵＳＢインタフェース部４２は、ＵＳＢ１８を介してＰＣ９からデータを受信したか否かを判断する。データを受信していない場合（Ｓ１１：ＮＯ）にはＳ１１へ戻り、データを受信した場合（Ｓ１１：ＹＥＳ）にはＳ１５へ進む。
【００４７】
Ｓ１５においてＵＳＢインタフェース部４２は、受信したデータをエンドポイントＥＰ１に記憶させる。エンドポイントＥＰ１はＦＩＦＯバッファであるため、受信したデータが受信した順番でエンドポイントＥＰ１に記憶される。Ｓ１９においてＵＳＢインタフェース部４２は、エンドポイントＥＰ１に、ヘッダ部分の１行分のデータが記憶されたか、または、予め定められた所定バイト数以上のデータが記憶されたかを判断する。ヘッダ部分の１行分のデータが記憶されたか否かの判断は、例えば、改行コードに該当するデータがエンドポイントＥＰ１に記憶されたか否かによって行われても良い。また、所定バイト数は、後述するリクエスト行を記述するために必要なバイト数よりも大きいバイト数にすることが好ましい。所定バイト数は、ＭＦＰ５１の製造者等によって予め定められるとしてもよい。ヘッダ部分の１行分のデータ、または、所定バイト数以上のデータが、エンドポイントＥＰ１に記憶されていない場合（Ｓ１９：ＮＯ）にはＳ１１へ戻り、記憶された場合（Ｓ１９：ＹＥＳ）にはＳ２３へ進む。
【００４８】
Ｓ２３においてコンテンツ処理制御部６３は、エンドポイントＥＰ１に記憶されたデータを解析する。Ｓ２７においてコンテンツ処理制御部６３は、エンドポイントＥＰ１に記憶されたデータが、ＨＴＴＰコマンドを含むデータであるか否かを判断する。当該判断は、ＨＴＴＰ要求メッセージを受信したか否かを判断することによって行うことができる。図６に、ＨＴＴＰ要求メッセージの一例を示す。図６に示すように、ＨＴＴＰ要求メッセージは、リクエスト行１１１、ヘッダ１１２、メッセージボディ１１３を備えている。リクエスト行１１１は、Ｗｅｂサーバ６２に実行して欲しい処理を伝えるための行である。リクエスト行１１１には、「メソッド」「ＵＲＬ」「ＨＴＴＰのバージョン」の３つの情報が含まれている。ヘッダ１１２は、メッセージボディの前に送られてくる情報であり、各種の状態を示す情報である。メッセージボディ１１３は、ＨＴＭＬで記述されたデータや画像データなどが含まれている部分である。
【００４９】
リクエスト行１１１では、ＨＴＴＰのバージョンを示すための情報として、「ＨＴＴＰ」の文字列が含まれている（図６、領域Ｒ１１参照）。よってＳ２７では、エンドポイントＥＰ１に記憶されているデータ中に「ＨＴＴＰ」の文字列が存在するか否かを判断することによって、エンドポイントＥＰ１に記憶されたデータがＨＴＴＰ要求メッセージであるか否かを判断することができる。
【００５０】
Ｓ２７において、エンドポイントＥＰ１に記憶されたデータがＨＴＴＰコマンドを含むデータであると判断された場合（Ｓ２７：ＹＥＳ）には、ＰＣ９から受信したデータをＷｅｂサーバ６２に処理させる場合であると判断される。よってＳ５９へ進む。
【００５１】
Ｓ５９においてコンテンツ処理制御部６３は、データの通信先をＷｅｂサーバ６２に設定する。具体的には、コンテンツ処理制御部６３の通信先を、Ｗｅｂサーバ６２に設定する。これにより、エンドポイントＥＰ１から、コンテンツ処理制御部６３を経由して、Ｗｅｂサーバ６２へ至る通信経路が確立される。Ｓ６１においてコンテンツ処理制御部６３は、不図示のタイムアウトカウンタをリセットする。Ｓ６３においてコンテンツ処理制御部６３は、不図示のタイマをリセットする。
【００５２】
Ｓ６５においてコンテンツ処理制御部６３は、ＵＳＢ１８を介したデータ入力が行われたか否かを判断する。ＵＳＢ１８を介したデータ入力が行われた場合（Ｓ６５：ＹＥＳ）には、Ｓ６９へ進む。Ｓ６９においてコンテンツ処理制御部６３は、ＵＳＢ１８を介して受信したデータを、コンテンツ処理制御部６３を介して、Ｗｅｂサーバ６２へ転送する。そしてＳ６１へ戻る。
【００５３】
一方、ＵＳＢ１８を介したデータ入力が行われていない場合（Ｓ６５：ＮＯ）には、Ｓ７３へ進む。Ｓ７３においてコンテンツ処理制御部６３は、ＨＴＴＰ応答メッセージを、Ｗｅｂサーバ６２から受信したか否かを判断する。図７に、ＨＴＴＰ応答メッセージの一例を示す。図７に示すように、ＨＴＴＰ応答のメッセージは、レスポンス行１２１、ヘッダ１２２、メッセージボディ１２３を備えている。レスポンス行１２１は、ＨＴＴＰ要求に対する応答の状態を示す行である。ヘッダ１２２は、各種の状態を示す情報である。メッセージボディ１２３は、ＨＴＭＬで記述されたデータなどが含まれている部分である。
【００５４】
ＨＴＴＰ応答メッセージを受信した場合（Ｓ７３：ＹＥＳ）には、Ｓ７７へ進む。Ｓ７７においてコンテンツ処理制御部６３は、Ｗｅｂサーバ６２から受信したデータを、コンテンツ処理制御部６３、エンドポイントＥＰ１、およびＵＳＢ１８を介して、ＰＣ９へ転送する。そしてＳ６１へ戻る。
【００５５】
一方、ＨＴＴＰ応答をＷｅｂサーバ６２から受信していない場合（Ｓ７３：ＮＯ）には、Ｓ７９へ進む。Ｓ７９においてコンテンツ処理制御部６３は、予め定められた待機時間が経過したか否かを、不図示のタイマに基づいて判断する。待機時間は、ＭＦＰ５１の製造者等によって、予め定められるとしてもよい。待機時間が経過していない場合（Ｓ７９：ＮＯ）にはＳ６５へ戻り、待機時間が経過した場合（Ｓ７９：ＹＥＳ）にはＳ８１へ進む。Ｓ８１においてコンテンツ処理制御部６３は、不図示のタイムアウトカウンタを、１カウントアップする。
【００５６】
Ｓ８５においてコンテンツ処理制御部６３は、不図示のタイムアウトカウンタのカウント数が所定数以上であるか否かを判断する。所定数は、ＭＦＰ５１の製造者等によって予め定められるとしてもよい。カウント数が所定数以上ではない場合（Ｓ８５：ＮＯ）にはＳ６３へ戻る。一方、カウント数が所定数以上である場合（Ｓ８５：ＹＥＳ）には、データの通信間隔時間が、予め定められた所定時間よりも大きい場合であると判断される。この場合、１つのタスクを実行するための一群のデータ通信が完了したと判断することができる。よってＳ９へ戻り、コンテンツ処理制御部６３がアイドル状態に戻される。
【００５７】
一方、Ｓ２７において、エンドポイントＥＰ１に記憶されたデータがＨＴＴＰコマンドを含むデータではないと判断された場合（Ｓ２７：ＮＯ）には、コンテンツデータをＷｅｂサーバ６２に処理させる場合であると判断される。よってＳ２９へ進む。Ｓ２９においてコンテンツ処理制御部６３は、データの通信先を画像形成データ処理制御部６４に設定する。具体的には、コンテンツ処理制御部６３の通信先を、画像形成データ処理制御部６４に設定する。これにより、エンドポイントＥＰ１から、コンテンツ処理制御部６３を経由して、画像形成データ処理制御部６４へ至る通信経路が確立される。
【００５８】
Ｓ３１においてコンテンツ処理制御部６３は、ＵＳＢ１８を介して受信したデータを、コンテンツ処理制御部６３を経由して、画像形成データ処理制御部６４へ転送する。画像形成データ処理制御部６４は、ＰＳパーサ７１およびＰＣＬパーサ７２の何れか一方へデータを振り分ける、データ振り分け処理を実行する。データ振り分け処理は、転送されたデータの内容を解析して、使用されている言語の種類を判断することによって行っても良い。言語の種類の判断は、転送されたデータのヘッダ部分を解析することで行っても良い。また、ヘッダ部分を解析しても言語の種類が判断できない場合には、ヘッダ部分以降のボディ部分を解析することで言語の種類を判断してもよい。転送されたデータがＰｏｓｔＳｃｒｉｐｔ（登録商標）言語で記述されていると判断された場合には、当該データがＰＳパーサ７１へ送信される。また、転送されたデータがＰＣＬ言語で記述されていると判断された場合には、当該データがＰＣＬパーサ７２へ送信される。
【００５９】
また画像形成データ処理制御部６４は、データ通信の終了検出処理を実行する。データ通信の終了検出処理は、画像形成データ処理制御部６４に入力されるデータを解析することで、１のタスクを実行するための一群のデータ（例：１の印刷処理を実行するための複数のデータ）の通信の終了を検出する処理である。画像形成データ処理制御部６４は、一群のデータの通信の終了を検出すると、終了信号ＳＳ１をコンテンツ処理制御部６３へ送信する。
【００６０】
Ｓ３５においてコンテンツ処理制御部６３は、ＵＳＢ１８を介したデータ入力が行われたか否かを判断する。ＵＳＢ１８を介したデータ入力が行われた場合（Ｓ３５：ＹＥＳ）には、Ｓ３９へ進む。Ｓ３９においてコンテンツ処理制御部６３は、ＵＳＢ１８、エンドポイントＥＰ１を介して受信したデータを、画像形成データ処理制御部６４へ転送する。そしてＳ３５へ戻る。
【００６１】
一方、ＵＳＢを介したデータ入力が行われていない場合（Ｓ３５：ＮＯ）には、Ｓ４３へ進む。Ｓ４３においてコンテンツ処理制御部６３は、画像形成データ処理制御部６４からデータを受信したか否かを判断する。データを受信した場合（Ｓ４３：ＹＥＳ）には、Ｓ４７へ進む。Ｓ４７においてコンテンツ処理制御部６３は、画像形成データ処理制御部６４から受信したデータを、エンドポイントＥＰ１、およびＵＳＢ１８を介して、ＰＣ９へ転送する。そしてＳ３５へ戻る。
【００６２】
一方、画像形成データ処理制御部６４からデータを受信していない場合（Ｓ４３：ＮＯ）には、Ｓ５１へ進む。Ｓ５１においてコンテンツ処理制御部６３は、画像形成データ処理制御部６４から終了信号ＳＳ１を受信したか否かを判断する。終了信号ＳＳ１を受信していない場合（Ｓ５１：ＮＯ）には、Ｓ３５へ戻る。一方、終了信号ＳＳ１を受信した場合（Ｓ５１：ＹＥＳ）にはＳ９へ戻り、コンテンツ処理制御部６３がアイドル状態に戻される。
【００６３】
＜効果＞
本実施例に係る通信システム１の効果を説明する。上記の通信システム１によると、１のエンドポイントＥＰ１を介して受信されるデータを、コンテンツ処理制御部６３によって解析することができる。そして、受信したデータがＨＴＴＰコマンドを含むデータである場合（Ｓ２７：ＹＥＳ）には、受信したデータをＷｅｂサーバ６２に転送することができる（Ｓ６９）。また、受信したデータがＨＴＴＰコマンドを含むデータではない場合（Ｓ２７：ＮＯ）には、受信したデータを印刷エンジン７０に転送することができる（Ｓ３９）。これにより、ＨＴＴＰコマンドを含むデータを用いるＷｅｂサーバ６２と、ＨＴＴＰコマンドを含まないデータを用いる印刷エンジン７０との間で、１のエンドポイントＥＰ１を共用することが可能となる。よって、Ｗｅｂサーバ６２と印刷エンジン７０との各々に専用のエンドポイントを備える場合に比して、必要なエンドポイント数を削減することができる。これにより、エンドポイントが実装されるハードウェアであるＵＳＢインタフェース部４２の面積が増大してしまう事態や、ＵＳＢインタフェース部４２のコストが上昇してしまう事態を防止することが可能となる。
【００６４】
Ｗｅｂサーバ６２では、ＵＳＢ１８およびエンドポイントＥＰ１を介して受信したデータに基づいて各種の処理を実行するとともに、ＬＡＮ通信９２およびＬＡＮインタフェース部４３を介して受信したＴＣＰデータパケットに基づいて各種の処理を実行することができる。これにより、ＵＳＢ１８を用いたＨＴＴＰコマンドを含むデータの通信と、ＴＣＰ通信回線であるＬＡＮ通信９２を用いたＨＴＴＰコマンドを含むデータの通信とを、同時に行うことが可能となる。
【００６５】
画像形成データ処理制御部６４によって、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語で記述されたデータと、ＰＣＬ言語で記述されたデータとを判別することができる。そして、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語で記述されたデータをＰＳパーサ７１に振り分けるとともに、ＰＣＬ言語で記述されたデータをＰＣＬパーサ７２に振り分けることができる。これにより、記述言語に対応するパーサへ、データを送信することができるため、複数種類の記述言語に対応することが可能となる。
【００６６】
コンテンツ処理制御部６３は、１のエンドポイントＥＰ１に記憶されたデータのヘッダ部分を解析することで、受信したデータがＨＴＴＰコマンドを含むデータであるか否かを判断することができる（Ｓ２３）。これにより、データの解析量を抑制することができるため、ＵＳＢ１８を介して受信したデータをＷｅｂサーバ６２または画像形成データ処理制御部６４へ振り分ける際の処理の負荷を低減させることが可能となる。
【００６７】
ＵＳＢ規格による通信では、ＴＣＰのように、コネクションを確立するために最初に送信されるパケット（例：ＳＹＮパケット）が存在しない。よって、ＵＳＢ１８を用いてＨＴＴＰコマンドを含むデータの通信を行う場合には、データのヘッダ部分を識別することが困難である。上記の通信システム１のコンテンツ処理制御部６３では、複数のデータを連続して受信する場合（例：図５に示す設定画面１４１を開く場合に、メインページのデータおよびＧＩＦ１〜ＧＩＦ３に対応する画像データを受信する場合）に、所定時間よりも大きい通信間隔時間の経過を検出することで、１つのタスクを実行するための一群のデータ通信が完了したと判断することができる（Ｓ８５：ＹＥＳ）。そして、所定時間よりも大きい通信間隔時間の経過後にデータをＵＳＢ１８から受信した場合には（Ｓ１１：ＹＥＳ）、別のタスクを実行するための一群のデータの受信が開始されたと判断することができるため、受信したデータの先頭から所定バイト数の部分をヘッダ部であると認識することができる（Ｓ１９：ＹＥＳ）。また、上記の通信システム１のコンテンツ処理制御部６３では、画像形成データ処理制御手段によってＨＴＴＰコマンドを含まないデータの通信の終了を検出した場合には（Ｓ５１：ＹＥＳ）、印刷エンジン７０での印刷処理などの１のタスクが完了したと判断することができる。そして、ＨＴＴＰコマンドを含まないデータの通信の終了を検出した時点以降においてデータの通信が開始された場合には、別のタスクを実行するための一群のデータの受信が開始されたと判断することができるため、最初に通信したデータの先頭から所定バイト数の部分をヘッダ部であると認識することができる（Ｓ１９：ＹＥＳ）。これにより、ＵＳＢを用いてＨＴＴＰコマンドを含むデータの通信を行う場合において、受信データのヘッダ部分を識別することが可能となる。よって、ヘッダ部を解析することで、受信したデータがＨＴＴＰコマンドを含むデータであるか否かを判断することが可能となる（Ｓ２７）。
【００６８】
ＵＳＢでは、ＴＣＰのように、コネクションを切断するためのパケット（例：ＦＩＮパケット）が存在しない。よって、ＵＳＢ１８を用いてＨＴＴＰコマンドを含むデータの通信を行う場合には、あるタスクのための一群のデータ（例：設定画面１４１を表示するための複数のデータ）と、他のタスクのための一群のデータ（例：他の画面を表示するための複数のデータ）と、の境界を、コネクションの切断によって識別することが困難である。上記の通信システム１のコンテンツ処理制御部６３では、複数のデータを連続して受信する場合に、所定時間よりも大きい通信間隔時間の経過が検出された場合（Ｓ８５：ＹＥＳ）には、通信間隔時間が、一群のデータと一群のデータとの境界であると識別することができる。そして、一群のデータのうちの先頭のデータがＨＴＴＰコマンドを含むデータである場合には（Ｓ２７：ＹＥＳ）、一群のデータの全てがＨＴＴＰコマンドを含むデータであると判断することができるため、先頭のデータの後に引き続いて通信されるデータの転送先を、Ｗｅｂサーバ６２に設定することができる（Ｓ５９）。そして、一群のデータと一群のデータとの境界が識別されると（Ｓ８５：ＹＥＳ）、データの転送先がＷｅｂサーバ６２でも画像形成データ処理制御部６４でもない状態（すなわち、アイドル状態）にすることができる（Ｓ９）。これにより、一群のデータと一群のデータとの間の境界を認識し、一群のデータごとに、Ｗｅｂサーバ６２または画像形成データ処理制御部６４の一方へ転送することが可能となる。
【００６９】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。以下に変形例を説明する。
【００７０】
＜変形例＞
受信用エンドポイントＥＰ１ａ〜ＥＰ３ａが、ＰＣ９から受信したデータを記憶するバッファとして機能する形態を説明したが、この形態に限られない。受信用エンドポイントＥＰ１ａ〜ＥＰ３ａの各々に接続されるバッファを備えてもよい。そして、受信用エンドポイントＥＰ１ａ〜ＥＰ３ａは、ＰＣ９から受信したデータを、これらのバッファに記憶させる形態であってもよい。
【００７１】
エンドポイントＥＰ１１およびＥＰ１を用いて通信するアプリケーションは、印刷アプリケーション２４およびＷｅｂブラウザ２３に限られず、各種のアプリケーションであってもよい。例えば、Ｗｅｂブラウザ２３に代えて、スキャナドライバ３０およびスキャンアプリケーション３１が、ＴＣＰ／ＩＰスタック２９に接続されるとしてもよい。
【００７２】
本実施形態では、Ｓ８５において、データの通信間隔時間が予め定められた所定時間よりも大きいか否かによって、１つのタスクを実行するための一群のデータ通信が完了したか否かを判断する形態を説明した。しかし、この形態に限られない。例えば、Ｗｅｂサーバ６２において、入力されるデータを解析することで、１のタスクを実行するための一群のデータの通信の終了を検出するとしてもよい。そして、Ｗｅｂサーバ６２が一群のデータの通信の終了を検出すると、終了信号ＳＳ２をコンテンツ処理制御部６３へ送信するとしてもよい（図２参照）。これにより、所定時間の経過を待たずに一群のデータ通信の完了を検出することが可能となる。
【００７３】
終了信号ＳＳ１を画像形成データ処理制御部６４で生成する場合を説明したが、この形態に限られない。例えば、印刷エンジン７０やスキャナコマンド処理部７３でデータを解析することで、一群のデータの通信の終了を検出し、終了信号を生成してもよい。
【００７４】
本実施形態では、ＰｏｓｔＳｃｒｉｐｔ（登録商標）言語およびＰＣＬ言語で記述された印刷データを取り扱う場合を説明したが、他の種類のＰＤＬ言語を用いることも可能である。また、画像形成データ処理制御部６４が判別するＰＤＬ言語の種類は２種類に限られず、３種類以上であってもよい。
【００７５】
本明細書に記載の技術の適用範囲は、ＭＦＰ５１を設定するための通信、および、ＭＦＰ５１に印刷データを送信するための通信を、インタフェース１の同一のエンドポイントを用いて実行する場合に限られない。例えば、ＭＦＰ５１を設定するための通信、および、ＭＦＰ５１で各種の処理を実行するための通信を、同一のエンドポイントを用いて実行する場合にも適用可能である。例えば、１つ目のＷｅｂブラウザ２３をＰＣ９で実行して、ＭＦＰ５１での印刷設定を行うとともに、２つ目のＷｅｂブラウザ２３をＰＣ９で実行して、インターネットを用いたＦＡＸ送信やインターネットを用いたメール送受信を行う場合においても、本明細書に記載の技術を適用することができる。
【００７６】
Ｗｅｂサーバ６２が備えられる通信装置の一例として、ＭＦＰ５１を説明したが、この形態に限られない。通信装置は、ＵＳＢ接続できる装置であれば何れの種類の装置であってもよく、例えばＰＣや携帯電話であってもよい。
【００７７】
なお、画像データ処理装置はＰＣ９の一例である。ＵＳＢインタフェース部４２はＵＳＢ  Ｉ／Ｆの一例である。ＭＦＰ５１は画像処理装置の一例である。Ｗｅｂサーバ６２は第１処理手段の一例である。ＧｅｔコマンドおよびＰＵＴコマンドは、ＨＴＴＰコマンドの一例である。印刷エンジン７０は第２処理手段の一例である。受信用エンドポイントＥＰ１ａは、１の受信用ＵＳＢエンドポイントに対応するバッファの一例である。ＬＡＮインタフェース部４３はＴＣＰ  Ｉ／Ｆの一例である。ＰＳ言語で記述された印刷データは第１形式の画像形成データの一例である。ＰＳパーサ７１は第１画像形成手段の一例である。ＰＣＬ言語で記述された印刷データは第２形式の画像形成データの一例である。ＰＣＬパーサ７２は第２画像形成手段の一例である。
【符号の説明】
【００７８】
９：ＰＣ、１８：ＵＳＢ、２３：Ｗｅｂブラウザ、２４：印刷アプリケーション、５１：ＭＦＰ、６２：Ｗｅｂサーバ、６３：コンテンツ処理制御部、６４：画像形成データ処理制御部、ＥＰ０〜ＥＰ３およびＥＰ１０〜ＥＰ１３：エンドポイント
【図１】
2014106581.tif 000003
【図２】
2014106581.tif 000004
【図３】
2014106581.tif 000005
【図４】
2014106581.tif 000006
【図５】
2014106581.tif 000007
【図６】
2014106581.tif 000008
【図７】
2014106581.tif 000009