(57)【特許請求の範囲】
【請求項１】
外部装置とネットワークを介して通信可能な印刷装置であって、
前記外部装置から送信された印刷要求を受信する印刷要求受信手段と、
前記受信された印刷要求に対応する印刷データを受信するためのポートとして、前記外部装置からの印刷要求を受信する毎に異なるポートを生成するポート生成手段と、
前記受信された印刷要求に対する応答として、前記生成されたポートの情報を含む応答データを前記外部装置に送信する応答手段と、
前記外部装置から前記応答データに応じて送信された印刷データを前記生成されたポートで受信する印刷データ受信手段と、
前記応答手段による応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されたか否かを判断する判断手段と、
前記判断手段による判断の結果、前記応答手段による応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されていないと判断された場合に、前記ポート生成手段が生成した複数のポートのうち、前記送信された応答データに含まれる情報が示すポートであって、前記所定時間内に印刷データの受信が開始されなかったポートをクローズする制御手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記応答データの送信とともに起動し、前記所定時間を計時するタイマーを有し、前記判断手段は、前記タイマーを用いて、前記判断を行うことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記タイマーは、前記受信された印刷要求の印刷データを受信するためのポートの１つとして生成される複数のポート毎にそれぞれ計時することを特徴とする請求項２記載の印刷装置。
【請求項４】
外部装置からネットワークを介して送信された印刷ジョブを印刷装置により印刷するための印刷処理方法であって、
前記外部装置から送信された印刷要求を受信する印刷要求受信工程と、
前記受信された印刷要求に対応する印刷データを受信するためのポートとして、前記外部装置からの印刷要求を受信する毎に異なるポートを生成するポート生成工程と、
前記受信された印刷要求に対する応答として、前記生成されたポートの情報を含む応答データを前記外部装置に送信する応答工程と、
前記外部装置から前記応答データに応じて送信された印刷データを前記生成されたポートで受信する印刷データ受信工程と、
前記応答工程における応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されたか否かを判断する判断工程と、
前記判断工程における判断の結果、前記応答工程における応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されていないと判断された場合に、前記ポート生成工程で生成された複数のポートのうち、前記送信された応答データに含まれる情報が示すポートであって、前記所定時間内に印刷データの受信が開始されなかったポートをクローズする制御工程と、
を有することを特徴とする印刷処理方法。
【請求項５】
外部装置からネットワークを介して送信された印刷ジョブを印刷する印刷装置上で実行されるプログラムであって、
前記外部装置から送信された印刷要求を受信する印刷要求受信モジュールと、
前記受信された印刷要求に対応する印刷データを受信するためのポートとして、前記外部装置からの印刷要求を受信する毎に異なるポートを生成するポート生成モジュールと、
前記受信された印刷要求に対する応答として、前記生成されたポートの情報を含む応答データを前記外部装置に送信する応答モジュールと、
前記外部装置から前記応答データに応じて送信された印刷データを前記生成されたポートで受信する印刷データ受信モジュールと、
前記応答モジュールによる応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されたか否かを判断する判断モジュールと、
前記判断モジュールによる判断の結果、前記応答モジュールによる応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されていないと判断された場合に、前記ポート生成モジュールが生成した複数のポートのうち、前記送信された応答データに含まれる情報が示すポートであって、前記所定時間内に印刷データの受信が開始されなかったポートをクローズする制御モジュールと、
を有することを特徴とするプログラム。
【請求項６】
請求項５記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部装置とネットワークを介して通信可能な印刷装置、印刷処理方法、プログラムおよび記憶媒体に関する。
【０００２】
【従来の技術】
近年、インターネットにおいて用いられているＷｅｂサービス技術が大きな注目を集めている。Ｗｅｂサービスは、ネットワーク上に分散する各種サービスを緩やかに結合する技術である。Ｗｅｂサービス技術を利用することにより、プログラムが人間の手を介さず動的に適切なサービスを選択することが可能になり、Ｗｅｂサービス技術は、目的とする処理を自動的に行う技術として各産業分野から期待されている。このＷｅｂサービスにおいてやり取りされるデータは、ＸＭＬ（eXtensible Markup Language）で記述されており、このＸＭＬで記述されたデータは、ＳＯＡＰ（Simple Object Access Protocol）を使用してネットワーク上で送受信される。このＳＯＡＰは、下位層にＨＴＴＰ（Hyper Text Transfer Protocol）やＳＭＴＰ（Simple Mail Transfer Protocol）を利用することが規定されているもので、Ｗｅｂブラウジングや電子メールと同様にインターネット上で容易に利用することが可能である。
【０００３】
このＷｅｂサービス技術をプリンティング技術に適用することによって、これまでになかった様々なメリットを得ることができる。例えば、プリンタにＷｅｂサービスを実装すれば、プリントサービスとしてＳＯＡＰを使用したプリントジョブ投入やデバイス管理が可能となる。また、ユーザは、このプリントサービスへのアクセスを柔軟にカスタマイズすることが可能になる。例えば、プリントサービスへの接続方法は、ＷＳＤＬ（Web Service Description Language）で記述されるため、このＷＳＤＬを解釈し、一定の規則により変換するプログラムを用意することによって、ユーザに対して必要な項目のみが抽出されたＵＩ（ユーザインターフェース）を提供することが可能である。また、ＷＳＤＬにはプリントジョブ投入の際に指定可能なジョブ情報も記述することが可能であり、例えば両面プリントが可能か否かを、ＷＳＤＬを参照することで予め知ることもできる。
【０００４】
このように、Ｗｅｂサービス技術をプリンタに適用すれば、様々なメリットが得られるので、Ｗｅｂサービス技術を適用したプリンタの開発が今後ますます進められることが想定される。
【０００５】
Ｗｅｂサービス技術を適用したプリンタにおける印刷は、例えば以下の手順により行われる。
【０００６】
まず、クライアントが印刷要求コマンドをＸＭＬで記述し、プリンタに送信する。プリンタは、印刷要求コマンドを受信すると、印刷データを受信するための（または、印刷データを送信する際の宛先として）ＵＲＬまたはポート番号をクライアントに応答する。その後、クライアントは指定されたＵＲＬまたはポート番号に印刷データを送信し、プリンタは印刷を行う（例えば、特許文献１）。
【０００７】
上記データ受信用ＵＲＬとしては、例えば「http://192.168.0.1/print/job1」という形式のものがあり、この場合は、ポート番号として、ｈｔｔｐスキームのデフォルトである８０を使用することを意味する。そのため、クライアントはまずプリンタのポート８０に対して接続し、ＨＴＴＰのＰＯＳＴメソッドを使用して印刷データを送信する。またプリンタは、次の印刷要求に対しては、ＵＲＬを例えば「http://192.168.0.1/print/job2」とするなどして、前ジョブのＵＲＬと変えて応答し、続けて受信するジョブをこのＵＲＬを確認することによって、複数ジョブが同時に投入された場合でも各ジョブを一意に識別することができる。
【０００８】
【特許文献１】
特開２００２−３３３９５８号公報
【０００９】
【発明が解決しようとする課題】
上述した手順において、印刷要求と印刷データは、別コネクションでプリンタに送信され、プリンタ側においては、印刷要求に対して、データ受信用のＵＲＬが応答される。そのため、ネットワーク障害やクライアントプログラムの障害などの原因により印刷データの送信が開始されないというような状況を考慮する必要がある。その場合、プリンタは、印刷要求に対する応答後、一定時間クライアントから印刷データの送信が開始されないと、タイムアウトとして印刷要求を無効とし、それ以降のクライアントからの印刷データの送信を拒否するように構成する必要がある。しかし、このような構成を実現するためには、ジョブ毎にデータ受信用ＵＲＬとタイムアウトまでの時間とを関連付けて保持することが必要であるので、管理およびそれに伴う処理が複雑になる。また、全てのジョブについて、その印刷データは、ポート番号８０のポートを用いて受信されるため、既にタイムアウトし、無効としたジョブにおいても、一度接続を確立し、受信したデータに対してそのＵＲＬを確認した上で、エラーを返すという冗長な処理を行う必要がある。これにより、さらにネットワーク上に不必要なトラフィックが発生することになる。
【００１０】
本発明の目的は、印刷要求毎の印刷データの受信に対する管理または印刷データの受信の制限を簡単な処理で行うことができる印刷装置、印刷処理方法、プログラムおよび記憶媒体を提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、上記目的を達成するため、外部装置とネットワークを介して通信可能な印刷装置であって、前記外部装置から送信された印刷要求を受信する印刷要求受信手段と、前記受信された印刷要求に対応する印刷データを受信するためのポートとして、前記外部装置からの印刷要求を受信する毎に異なるポートを生成するポート生成手段と、前記受信された印刷要求に対する応答として、前記生成されたポートの情報を含む応答データを前記外部装置に送信する応答手段と、前記外部装置から前記応答データに応じて送信された印刷データを前記生成されたポートで受信する印刷データ受信手段と、前記応答手段による応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されたか否かを判断する判断手段と、前記判断手段による判断の結果、前記応答手段による応答データの送信から所定時間内に、当該送信された応答データに含まれる情報が示すポートにおいて印刷データの受信が開始されていないと判断された場合に、前記ポート生成手段が生成した複数のポートのうち、前記送信された応答データに含まれる情報が示すポートであって、前記所定時間内に印刷データの受信が開始されなかったポートをクローズする制御手段と、を備えることを特徴とする。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１９】
図１は本発明の一実施の形態に係る印刷装置を含む印刷システムの構成を模式的に示す図である。
【００２０】
印刷システムにおいては、図１に示すように、印刷装置１０１と複数のホストコンピュータ１０２，１０３とが、ＬＡＮ（Local Area Network）などのネットワーク１０４を介して相互に通信可能に接続される。印刷装置１０１は、ホストコンピュータ１０２，１０３からプリントジョブを受信し、印刷を行う例えばレーザビームプリンタなどからなり、ステープルやソート機能を行うフィニッシャ、両面印刷機能を実現するための両面装置などの各種拡張装置を装着することが可能である。
【００２１】
次に、印刷装置１０１の構成について図２を参照しながら説明する。図２は図１の印刷装置１０１のハードウェア構成を示すブロック図である。ここでは、印刷装置１０１としてレーザビームプリンタを例にして説明する。
【００２２】
印刷装置１０１は、図２に示すように、ＲＯＭ１３のプログラム用ＲＯＭに記憶されている制御プログラムに基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御するＣＰＵ１２を備える。ここで、システムバス１５には、各種デバイスとして、ＲＯＭ１３、ＲＡＭ１９、印刷部インターフェース１６、ネットワークインターフェース部１８、ディスクコントローラ（ＤＫＣ）２０、不揮発性メモリ２４、操作パネル２０１が接続されている。
【００２３】
ＲＯＭ１３は、ＣＰＵ１２が実行可能な制御プログラム等を記憶するプログラム用ＲＯＭと、印刷部インターフェース１６を介してプリンタエンジン１７に出力される出力情報を生成する際に使用するフォントデータ（アウトラインフォントデータを含む）等を記憶するフォント用ＲＯＭと、ホストコンピュータ１０２，１０３上で利用される情報等を記憶するデータ用ＲＯＭとを含む。
【００２４】
ＲＡＭ１９は、主としてＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することが可能である。また、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域等に用いられる。
【００２５】
印刷部インターフェース１６は、プリンタエンジン１７と情報のやり取りをするためのインターフェースであり、ＣＰＵ１２は、印刷部インターフェース１６を介してプリンタエンジン１７に出力情報としての画像信号を出力する。ネットワークインターフェース部１８は、ネットワーク１０４と接続され、ＣＰＵ１２は、ネットワークインターフェース部１８を介してネットワーク１０４上のホストコンピュータ１０２，１０３と通信するための通信処理を行う。
【００２６】
ディスクコントローラ（ＤＫＣ）２０は、オプションとして接続される外部記憶装置１４に対するアクセスを制御する。外部記憶装置１４は、少なくとも１つ以上のハードディスク（ＨＤ），ＩＣカード等の外部メモリからなり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶し、またプリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。不揮発性メモリ２４は、操作パネル２０１からのプリンタモード設定情報をユーザ別、グループ別に記憶するためのものである。操作パネル２０１は、表示パネル、ハードキーおよびソフトウェアキーを有し、ユーザがこれらのキーを操作することによって、各種情報が入力される。また、操作パネル２０１の表示パネルには、設定された情報、装置状態情報などが表示される。
【００２７】
また、印刷装置１０１に、オプションとして、上述したフィニッシャ、両面装置などの各種拡張装置が装着されると、それらの動作はＣＰＵ１２により制御されることになる。
【００２８】
次に、印刷装置１０１におけるソフトウェアプログラム構成について図３を参照しながら説明する。図３は図１の印刷装置１０１におけるソフトウェアプログラム構成を示すブロック図である。
【００２９】
印刷装置１０１においては、ＣＰＵ１２がＲＯＭ１３のプログラム用ＲＯＭに記憶されている制御プログラムを実行することによって、プリンタ制御部３０１、画像印刷制御部３０２、ＸＭＬパーサ３０３、ＳＯＡＰ制御部３０４、ＨＴＴＰサーバ制御部３０５、ＴＣＰ／ＩＰプロトコル制御部３０６、およびネットワーク通信ドライバ３０７が構成される。
【００３０】
プリンタ制御部３０１は、印刷部インターフェース１６を制御するモジュールであり、プリンタエンジン１７に画像データ送信や排紙位置の制御などの操作を行う。画像印刷制御部３０２は、受信した印刷データを印刷可能なデータ形式に変換するとともに、印刷部数や両面印刷の制御など印刷に関する様々な制御を行う。ネットワーク通信ドライバ３０７は、ネットワークインターフェース部１８を制御し、ネットワーク１０４とのデータ送受信の制御を行う。
【００３１】
ＴＣＰ／ＩＰプロトコル制御部３０６は、ＴＣＰ／ＩＰを制御するモジュールを備え、ネットワーク通信ドライバ３０７を使用してＴＣＰ／ＩＰに従ったデータ送受信制御を行う。ＨＴＴＰサーバ制御部３０５は、ＨＴＴＰの全般を制御するモジュールであり、ホストコンピュータから受信したＨＴＴＰリクエストパケットを解析して適切な処理を行い、そのデータをＳＯＡＰ制御部３０４や画像印刷制御部３０２などの上位アプリケーションに渡すと共に、上位アプリケーションの指示によりＨＴＴＰレスポンスパケットをホストコンピュータに返送する制御を行う。ＳＯＡＰ制御部３０４はＳＯＡＰを制御するモジュールであり、ホストコンピュータから受信したＸＭＬ形式のデータを、ＸＭＬパーサ３０３を使用して解析し、それに基づいて画像印刷制御部３０２の適切なモジュールを呼び出し、またホストコンピュータに返すべきデータをＸＭＬ形式のデータに変換し、ＨＴＴＰサーバ制御部３０５を介してホストコンピュータに返信する制御を行う。ＸＭＬパーサ３０３は、ＸＭＬ形式のデータを入力とし、その解析結果を出力するモジュールである。
【００３２】
次に、ネットワーク１０４上のホストコンピュータ１０２，１０３が印刷装置１０１を用いて印刷を行う場合について図４〜図９を参照しながら説明する。図４は図１のネットワーク１０４上のホストコンピュータ１０２，１０３からＨＴＴＰ上のＳＯＡＰを用いて印刷装置１０１に送信されるCreateJobと称されるパケットデータの一例を示す図、図５は図４のCreateJobパケットに対する応答パケットデータの一例を示す図、図６は図１のホストコンピュータ１０２，１０３が印刷装置１０１を用いて印刷を行う場合における印刷装置１０１の動作手順を示すフローチャート、図７は図１のホストコンピュータ１０２，１０３からＨＴＴＰのＰＯＳＴメソッドにより送信される印刷データ転送パケットの一例を示す図、図８は図１の印刷装置１０１からホストコンピュータ１０２，１０３に送信されるＨＴＴＰレスポンスパケットの一例を示す図、図９は図１の印刷装置１０１からホストコンピュータ１０２，１０３に送信されるエラーレスポンスパケットの一例を示す図である。
【００３３】
ネットワーク１０４上のホストコンピュータ１０２，１０３が印刷装置１０１を用いて印刷を行う場合、ＨＴＴＰ上のＳＯＡＰを用いて、ホストコンピュータ１０２，１０３から、CreateJobと称されるパケットデータが印刷装置１０１に送信される。このCreateJobパケットは、印刷装置１０１に対してジョブ（印刷）の開始を指示するコマンドであり、ＸＭＬ形式で記述されている。CreateJobパケットには、図４に示すように、要求元のユーザ名（<requesting-user-name>タグ）、ジョブの処理に関する指示（<job-instruction>タグ）等の情報が記述されている。<job-instruction>タグには印刷部数を設定する<copies>タグ、両面印刷を設定する<sides>タグ、印刷の仕上げを設定する<finishing>タグなどが含まれ、印刷装置１０１は、これらのタグに設定された値に基づいてジョブの処理を行う。さらに、<job-instruction>タグにはオプションとして<notification-instruction>タグを含めることも可能である。この<notification-instruction>タグには、ジョブに関する通知情報が記述される。図４の例においては、通知情報として、通知先を設定する<notification-recipient>タグおよび通知条件を設定する<event>タグが記述されている。印刷装置１０１は、これらのタグに設定された値に基づいてイベント送信処理を行う。
【００３４】
印刷装置１０１は、ホストコンピュータ１０２，１０３からのCreateJobパケットを受信すると、それに対するCreateJob応答パケットをホストコンピュータ１０２，１０３へ返信する。このCreateJob応答パケットデータは、図５に示すように、上記CreateJobパケットデータと同様に、ＸＭＬ形式で記述され、ＨＴＴＰ上のＳＯＡＰを用いて送信される。CreateJob応答パケットには、CreateJobコマンド対する結果コード（<result-code>タグ）や生成されたジョブの識別子（<job-id>タグ）、印刷データの宛先として印刷用ポートのＵＲＩ（<data-sink-uri>タグ）等の情報が含まれている。ここで、図５に示す例においては、印刷用ポートとして「http://192.168.0.1:10000/bmlinks/print?job=1」というＵＲＬが示されている。上記ＵＲＬにおいて、符号５０１で示される「10000」がポート番号に、符号５０２で示される「job=1」が、印刷装置１０１がジョブに対して割り当てたジョブ識別子にそれぞれ該当する。
【００３５】
次に、ネットワーク１０４上のホストコンピュータ１０２，１０３が印刷装置１０１を用いて印刷を行う場合における印刷装置１０１の動作について図６を参照しながら具体的に説明する。この図６に示す動作は、ＣＰＵ１２がＲＯＭ１３の制御プログラムを実行することによって制御されるものである。
【００３６】
ネットワーク１０４上のホストコンピュータ（図１のホストコンピュータ１０２，１０３の１つ）から送信された例えば図４に示したようなCreateJobパケットを印刷装置１０１が受信すると、印刷装置１０１は、ステップＳ６０１において、CreateJobに記述されたＸＭＬデータを解析し、続くステップＳ６０２において、上記解析結果に基づいてデータにエラーがあるか否かを判定する。ここで、エラーがなければ、印刷装置１０１は、ステップＳ６０３において、印刷データ受信用の印刷ポートを生成する。ここでは、ポート番号として、８０を固定とするのではなく、現在空いているポート番号が使用される。図５に示すCreateJob応答パケットは、ポート番号として「10000」（符号５０１で示す）が使用された例であり、本実施の形態においては、以降、印刷要求を受信する毎に「10001」、「10002」、…とポート番号が変えられる。また、ジョブ識別子５０２も、同様に、印刷要求毎に１，２，…と変えられる。
【００３７】
次いで、印刷装置１０１は、ステップＳ６０４において、CreateJobパケットに対するレスポンスとしてのＸＭＬデータの生成を行う。このときに、印刷データ受信用に生成したポートのＵＲＬが<data-sink-uri>タグの値として設定される。例えば、図５に示すようなＵＲＬがＸＭＬデータに埋め込まれる。そして、印刷装置１０１は、ステップＳ６０５において、ＳＯＡＰを用いて、上記ステップＳ６０４で生成されたCreateJobレスポンスデータをホストコンピュータに送信する。
【００３８】
ホストコンピュータは、上記CreateJobレスポンスデータを受信すると、<data-sink-uri>タグで指定されたＵＲＬに対してＨＴＴＰのＰＯＳＴメソッドを用いて印刷データを送信する。このＨＴＴＰのＰＯＳＴメソッドによる印刷データ転送パケットは、例えば図７に示すような構成を有する。図７に示すように、上記ステップＳ６０４で生成されたCreateJobレスポンスの<data-sink-uri>タグの値のパス部分がそのままＰＯＳＴメソッドの宛先として指定されるため、印刷装置１０１は、ジョブを一意に識別することが可能である。
【００３９】
印刷装置１０１は、上記CreateJobレスポンスの送信後、ステップＳ６０６において、所定時間例えば３０秒のタイマーをスタートさせる。このタイマーは、上記ステップＳ６０３で生成されたポートに対応して設けられているものである。続いて、印刷装置１０１は、ステップＳ６０７において、３０秒のタイマーがタイムアウトする前に、指定された印刷ポート（図５の例ではポート番号「10000」のポート）にホストコンピュータからの印刷データの受信が開始されたか否かを判定する。ここで、タイマーのタイムアウト前に指定された印刷ポートに印刷データの受信が開始された場合は、全てのデータを受信し、適切な処理をしながらプリンタエンジン１７により印刷する。印刷データの受信が正常に終了すると、印刷装置１０１は、ステップＳ６０８において、例えば図８に示すようなＨＴＴＰレスポンスパケットをホストコンピュータに送信し、印刷ポートを削除（クローズ）して印刷動作を終了する。
【００４０】
一方、上記ステップＳ６０７において３０秒のタイマーがタイムアウトする前に指定された印刷ポートにホストコンピュータからの印刷データの受信が開始されていないと判定された場合、すなわち印刷データの受信開始前にタイマーがタイムアウトした場合、印刷装置１０１は、ステップＳ６０９において、上記ステップＳ６０３で生成された印刷ポートをクローズする。ここで、ホストコンピュータが印刷データを送信する際、ホストコンピュータからはＴＣＰレベルでのＳＹＮ（シーケンス番号の同期。接続要求を意味する）パケットが送信されるが、タイマーがタイムアウトした後すなわち印刷ポートがクローズされた後において送信されたＳＹＮパケットに対しては、印刷装置１０１からＲＳＴ（リセット）パケットがホストコンピュータに返され、ホストコンピュータと印刷装置１０１との接続を確立することができず、印刷データの送信は不可能となる。
【００４１】
なお、ステップＳ６０６では、所定時間例えば３０秒のタイマーをスタートさせることにしたが、ステップＳ６０６においては、ステップＳ６０３で生成されたポートに対応付けてタイムアウトの計測開始時刻を記憶し、ステップＳ６０７においては、前記計測開始時刻から所定時間が経過したかを判断するようにしてもよい。
【００４２】
また、上記ステップＳ６０２においてエラーがあると判定された場合、印刷装置１０１は、ステップＳ６１０において、例えば図９に示すようなエラーレスポンスデータを生成する。そして、印刷装置１０１は、ステップＳ６０５において、エラーレスポンスをホストコンピュータに送信する。ホストコンピュータは、上記エラーレスポンスを受信すると、印刷データを送信せずに、処理を終了する。
【００４３】
本実施の形態においては、印刷ポート番号が「10000」から「10001」、「10002」…と変えられる例を説明したが、必ずしもポート番号を「10000」から順次増加させる必要はない。また、印刷が終了した際には、印刷装置１０１がポートをクローズすることにより、一定時間経過後には同じ番号のポートを使用することが可能になる。
【００４４】
このように、本実施の形態では、印刷要求毎に印刷ポートを動的に変更し、ポート単位でタイムアウト時間を管理することにより、印刷要求毎の印刷データの受信に対する管理を簡単な処理で行うことができる。また、タイムアウトしたポートをクローズすることにより、それ以降の接続要求をすべて拒否することが可能になり、不要なネットワークトラフィックが発生することを未然に防止することができる。
【００４５】
なお、本発明の目的は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることはいうまでもない。
【００４６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることはいうまでもない。
【００４７】
【発明の効果】
以上説明したように、本発明によれば、外部装置からの印刷要求を受信する毎に異なるポートを生成し、あるポートにおいて所定時間内に印刷データの受信が開始されない場合には、生成した複数のポートのうち、この所定時間内に印刷データの受信が開始されなかったポートをクローズする。即ち、他の印刷要求に対応するポートは維持したままの状態で、所定時間内に印刷データの受信が開始されなかったポートがクローズされるため、クローズしたポートに対して所定時間経過後に印刷データが送信されてきたとしても、それを受信することなく拒否することができ、これにより、不必要な処理を削減することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る印刷装置を含む印刷システムの構成を模式的に示す図である。
【図２】図１の印刷装置１０１のハードウェア構成を示すブロック図である。
【図３】図１の印刷装置１０１におけるソフトウェアプログラム構成を示すブロック図である。
【図４】図１のネットワーク１０４上のホストコンピュータ１０２，１０３からＨＴＴＰ上のＳＯＡＰを用いて印刷装置１０１に送信されるCreateJobと称されるパケットデータの一例を示す図である。
【図５】図４のCreateJobパケットに対する応答パケットデータの一例を示す図である。
【図６】図１のホストコンピュータ１０２，１０３が印刷装置１０１を用いて印刷を行う場合における印刷装置１０１の動作手順を示すフローチャートである。
【図７】図１のホストコンピュータ１０２，１０３からＨＴＴＰのＰＯＳＴメソッドにより送信される印刷データ転送パケットの一例を示す図である。
【図８】図１の印刷装置１０１からホストコンピュータ１０２，１０３に送信されるＨＴＴＰレスポンスパケットの一例を示す図である。
【図９】図１の印刷装置１０１からホストコンピュータ１０２，１０３に送信されるエラーレスポンスパケットの一例を示す図である。
【符号の説明】
１２  ＣＰＵ
１３  ＲＯＭ
１６  印刷部インターフェース
１７  プリンタエンジン
１８  ネットワークインターフェース部
１０１  印刷装置
１０２，１０３  ホストコンピュータ
１０４  ネットワーク
３０１  プリンタ制御部
３０２  画像印刷制御部
３０３  ＸＭＬパーサ
３０４  ＳＯＡＰ制御部
３０５  ＨＴＴＰサーバ制御部
３０６  ＴＣＰ／ＩＰプロトコル制御部
３０７  ネットワーク通信ドライバ
【図１】
0004143469.tif 000002
【図２】
0004143469.tif 000003
【図３】
0004143469.tif 000004
【図４】
0004143469.tif 000005
【図５】
0004143469.tif 000006
【図６】
0004143469.tif 000007
【図７】
0004143469.tif 000008
【図８】
0004143469.tif 000009
【図９】
0004143469.tif 000010