(57)【特許請求の範囲】
【請求項１】
印刷データを管理するサーバと、前記印刷データに基づき印刷するプリンタとに接続可能な情報処理装置であって、
前記サーバから前記印刷データを受信する受信手段と、
前記受信手段により受信された前記印刷データを前記プリンタに第１のデータサイズずつ転送する転送制御手段と、
前記サーバと前記情報処理装置との間の接続断を検出する検出手段と、
前記検出手段により前記接続断が検出されると、前記サーバと前記情報処理装置との間の再接続を行う再接続手段とを備え、
前記転送制御手段は、前記検出手段により前記接続断が検出されると、前記受信手段により受信された前記印刷データを前記プリンタに、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続手段は、前記検出手段により前記接続断が検出されると、前記接続断の検出までに前記受信手段で受信済みの印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とする情報処理装置。
【請求項２】
前記受信手段により受信済みの前記印刷データのサイズが閾値より小さいか否かを判定する判定手段をさらに備え、
前記判定手段により、前記受信手段により受信済みの前記印刷データのサイズが前記閾値より小さいと判定された場合に、前記転送制御手段は、前記印刷データを前記プリンタに、前記第２のデータサイズずつ転送することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記印刷データはフィニッシングが設定されていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
印刷データを管理するサーバと、前記印刷データに基づき印刷するプリンタとに接続可能な情報処理装置において実行される印刷データ処理方法であって、
前記情報処理装置の受信手段が、前記サーバから前記印刷データを受信する受信工程と、
前記情報処理装置の転送制御手段が、前記受信工程において受信された前記印刷データを前記プリンタに第１のデータサイズずつ転送する転送制御工程と、
前記情報処理装置の検出手段が、前記サーバと前記情報処理装置との間の接続断を検出する検出工程と、
前記検出工程において前記接続断が検出されると、前記サーバと前記情報処理装置との間の再接続を行う再接続工程とを有し、
前記転送制御工程は、前記検出工程において前記接続断が検出されると、前記受信工程において受信された前記印刷データを前記プリンタに、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続工程は、前記検出工程において前記接続断が検出されると、前記接続断の検出までに前記受信手段で受信済みの印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とする印刷データ処理方法。
【請求項５】
印刷データを管理するサーバと、前記印刷データに基づき印刷するプリンタとに接続可能な情報処理装置の、
前記サーバから前記印刷データを受信する受信手段、
前記受信手段により受信された前記印刷データを前記プリンタに第１のデータサイズずつ転送する転送制御手段、
前記サーバと前記情報処理装置との間の接続断を検出する検出手段、
前記検出手段により前記接続断が検出されると、前記サーバと前記情報処理装置との間の再接続を行う再接続手段、としてコンピュータを機能させるプログラムであって、
前記転送制御手段は、前記検出手段により前記接続断が検出されると、前記受信手段により受信された前記印刷データを前記プリンタに、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続手段は、前記検出手段により前記接続断が検出されると、前記接続断の検出までに前記受信手段で受信済みの印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とするプログラム。
【請求項６】
印刷データを管理するサーバに接続可能な印刷装置であって、
前記サーバから前記印刷データを受信する受信手段と、
前記受信手段により受信された前記印刷データを印刷処理部に第１のデータサイズずつ転送する転送制御手段と、
前記サーバと前記印刷装置との間の接続断を検出する検出手段と、
前記検出手段により前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行う再接続手段とを備え、
前記転送制御手段は、前記検出手段により前記接続断が検出されると、前記印刷データを前記印刷処理部に、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続手段は、前記検出手段により前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行い、前記接続断の検出までに前記受信手段で受信されている前記印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とする印刷装置。
【請求項７】
前記受信手段により受信済みの前記印刷データのサイズが閾値より小さいか否かを判定する判定手段をさらに備え、
前記判定手段により、前記受信手段により受信済みの前記印刷データのサイズが前記閾値より小さいと判定された場合に、前記転送制御手段は、前記印刷データを前記印刷処理部に、前記第２のデータサイズずつ転送することを特徴とする請求項６に記載の印刷装置。
【請求項８】
印刷データを管理するサーバに接続可能な印刷装置において実行される印刷データ処理方法であって、
前記印刷装置の受信手段が、前記サーバから前記印刷データを受信する受信工程と、
前記印刷装置の転送制御手段が、前記受信工程において受信された前記印刷データを印刷処理部に第１のデータサイズずつ転送する転送制御工程と、
前記印刷装置の検出手段が、前記サーバと前記印刷装置との間の接続断を検出する検出工程と、
前記印刷装置の再接続手段が、前記検出工程において前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行う再接続工程とを有し、
前記転送制御工程は、前記検出工程において前記接続断が検出されると、前記印刷データを前記印刷処理部に、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続工程は、前記検出工程において前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行い、前記接続断の検出までに前記受信工程で受信されている前記印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とする印刷データ処理方法。
【請求項９】
前記受信工程において受信済みの前記印刷データのサイズが閾値より小さいか否かを判定する判定工程をさらに有し、
前記判定工程において、前記受信手段により受信済みの前記印刷データのサイズが前記閾値より小さいと判定された場合に、前記転送制御工程は、前記印刷データを前記印刷処理部に、前記第２のデータサイズずつ転送することを特徴とする請求項８に記載の印刷データ処理方法。
【請求項１０】
印刷データを管理するサーバに接続可能な印刷装置の、
前記サーバから前記印刷データを受信する受信手段、
前記受信手段により受信された前記印刷データを印刷処理部に第１のデータサイズずつ転送する転送制御手段、
前記サーバと前記印刷装置との間の接続断を検出する検出手段、
前記検出手段により前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行う再接続手段、としてコンピュータを機能させるプログラムであって、
前記転送制御手段は、前記検出手段により前記接続断が検出されると、前記印刷データを前記印刷処理部に、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、
前記再接続手段は、前記検出手段により前記接続断を検出されると、前記サーバと前記印刷装置との間の再接続を行い、前記接続断の検出までに前記受信手段で受信されている前記印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とするプログラム。
【請求項１１】
前記受信手段により受信済みの前記印刷データのサイズが閾値より小さいか否かを判定する判定手段、としてさらにコンピュータを機能させるプログラムであって、
前記判定手段により、前記受信手段により受信済みの前記印刷データのサイズが前記閾値より小さいと判定された場合に、前記転送制御手段は、前記印刷データを前記印刷処理部に、前記第２のデータサイズずつ転送することを特徴とする請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバより印刷データを取得して印刷処理する情報処理装置、印刷装置、印刷データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネット上にプリントサーバをプリントサービス機能として公開するクラウドサービスが実現されてきている。そのようなクラウドサービスにおいては、大規模なデータセンタ上にプリントサーバを配置することで、顧客ごとのハードウェアの管理が不要となり、サーバの負荷に応じてリソースを追加することが容易に行うことができる。クラウドサービスを利用するためには、プリントサーバからプリンタがインターネットを介して印刷データを取得し、プリンタに転送することで印刷を行うプルプリント機能を行う環境が必要となる。一般的に、印刷システムではファーストプリントを早めることや、ユーザに待たせることなく印刷を開始することが求められている。その点において、プルプリントシステムでは、印刷データを取得するとプリンタに転送する処理を行うことで、ファーストプリントを早くすることができる。
【０００３】
しかしながら、インターネットは回線が細く、印刷データのプリンタへの転送中にネットワークの切断が多く発生する。印刷データの転送中にネットワークが切断した場合には、プリンタでは印刷データの印刷が開始されており、途中まで排紙されている。特許文献１では、プリンタで印刷完了したページ番号をプリンタで保持し、ネットワーク切断後の再接続時に、印刷完了したページ番号をクライアントに通知する方法が記載されている。その結果、クライアントは印刷完了ページを知ることができ、まだ排紙完了していないページから印刷を行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２７２８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のように、印刷エラー時に排紙ページを通知して排紙完了していない残りページを再印刷するようにしても、印刷エラーした印刷ジョブと途中ページからの再印刷ジョブが異なる印刷ジョブとして扱われてしまう。従って、再印刷までの間に他の印刷ジョブが割り込まれてしまい、所望の印刷処理全体の時間が増えてしまう原因となる。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。そこで、上記の点に鑑み、本発明は、ネットワークの回線の接続断を検出した場合に、印刷エラーとなることを防ぐ情報処理装置、印刷装置、印刷データ処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、印刷データを管理するサーバと、前記印刷データに基づき印刷するプリンタとに接続可能な情報処理装置であって、前記サーバから前記印刷データを受信する受信手段と、前記受信手段により受信された前記印刷データを前記プリンタに第１のデータサイズずつ転送する転送制御手段と、前記サーバと前記情報処理装置との間の接続断を検出する検出手段と、前記検出手段により前記接続断が検出されると、前記サーバと前記情報処理装置との間の再接続を行う再接続手段とを備え、前記転送制御手段は、前記検出手段により前記接続断が検出されると、前記受信手段により受信された前記印刷データを前記プリンタに、前記第１のデータサイズより小さい第２のデータサイズずつ転送し、前記再接続手段は、前記検出手段により前記接続断が検出されると、前記接続断の検出までに前記受信手段で受信済みの印刷データに後続する印刷データを送信するよう、前記サーバに要求することを特徴とする。
【発明の効果】
【０００８】
本発明によると、ネットワークの回線の接続断を検出した場合に、印刷エラーとなることを防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施例における印刷システムの全体構成を示す図である。
【図２】クライアント端末、プリントサーバ、プリンタのハードウェア構成を示す図である。
【図３】印刷システムのシステム構成を示す図である。
【図４】プリントサーバのソフトウェア構成を示す図である。
【図５】クライアント端末のＷｅｂブラウザで表示されるＷｅｂ画面の一例を示す図である。
【図６】プルプリントアプリケーションのソフトウェア構成を示す図である。
【図７】印刷キュー情報と転送バッファ情報の一例を示す図である。
【図８】プリンタが印刷データを取得して処理する手順を示す図である。
【図９】コントローラへの転送処理の制御の手順を示す図である。
【図１０】プリントサーバへの接続が異常終了であると判定した場合に実行される処理の手順を示す図である。
【図１１】第２の実施例における印刷システムの全体構成を示す図である。
【図１２】プルプリントサーバのハードウェア構成を示す図である。
【図１３】印刷システムのシステム構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
＜実施例１＞
＜システム全体構成＞
図１は、本発明に係る実施例における印刷システムの全体構成を示す図である。図１に示すように、クライアント端末１０１、１０２、１０３、プリントサーバ１０４、プリンタ１０５、１０６、１０７、１０８は、ネットワーク１０９、１１０、１１１を介して接続されている。図１に示すように、クライアント端末、プリンタは、複数台接続されていることを仮定している。ネットワーク１０９〜１１１は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかであって良い。また、これらの組み合わせにより実現されても良い。ネットワーク１０９〜１１１は、データの送受信が可能であれば良い。そして、クライアント端末１０１〜１０３からプリントサーバ１０４、プリンタ１０５〜１０８への通信機能と、プリンタ１０５〜１０８からプリントサーバ１０４への通信機能とは異なっていても良い。クライアント端末１０１〜１０３は、例えば、デスクトップＰＣ、ノートＰＣ、モバイルＰＣ、ＰＤＡ（パーソナル・データ・アシスタント）であるが、プログラムの実行環境が内蔵された携帯電話であっても良い。クライアント端末１０１〜１０３には、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、ＷｏｒｌｄＷｉＤｅＷｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。プリントサーバ１０４は、印刷する文書を識別する情報と出力先プリンタへの印刷リクエストとを、クライアント端末１０１〜１０３のＷｅｂブラウザから受ける。そして、印刷指示を行う印刷コマンドを含めたレスポンス画面をクライアント端末１０１〜１０３のＷｅｂブラウザに返す。クライアント端末１０１〜１０３のＷｅｂブラウザは、指定のプリンタに対して、受け取った印刷コマンドを発行する。プリンタ１０５〜１０８は、クライアント端末１０１〜１０３のＷｅｂブラウザから印刷コマンドを受けると、プリントサーバ１０４から印刷する文書データを取得して印刷を行う。
【００１２】
＜ハードウェア構成＞
図２は、クライアント端末１０１〜１０３、プリントサーバ１０４、プリンタ１０５〜１０８に共通のハードウェア構成を示す図である。図２において、ＣＰＵ２０２は、装置全体の制御を行い、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３に、プログラムの実行に必要な情報、ファイル等を一時的に格納するように制御する。ＲＯＭ２０４は、内部に基本Ｉ／Ｏプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンタ情報等の各種データを記憶する。ＲＡＭ２０３は、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ＨＤＤ２０５は、大容量メモリとして機能するハードディスクであり、Ｗｅｂブラウザ等のアプリケーションプログラム、プリントサーバプログラム、ＯＳ、関連プログラム等を格納している。
【００１３】
ディスプレイ２０６は、キーボード２０７から入力したコマンドや、プリンタのステータス等を表示する。インタフェース（Ｉ／Ｆ）２０８は、プリンタ、ＵＳＢ機器、周辺機器を接続するためのインタフェースである。キーボード２０７は、ユーザが指示を入力する場合等に用いられる。本印刷システムのプリントサーバ内におけるデータは、システムバス２０１を介して通信される。ＮＩＣ２０９は、ネットワークインタフェースカードであり、Ｉ／Ｆ２０８、ネットワーク１０９〜１１１を介して外部装置とのデータのやり取りを行う。なお、上記の構成は一例であり、図２に示す構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤＤで変更されても良い。
【００１４】
また、コントローラ２２２は、プリンタ１０５〜１０８のコントローラであり、プリンタを制御する。ＣＰＵ２１０は、装置全体の制御を行い、システムバス２１８に接続される各種デバイスとのアクセスを統括的に制御する。その制御は、ＲＯＭ２１２に記憶された制御プログラム等、又は、ディスクコントローラ（ＤＫＣ）２１６を介して接続された外部メモリ２２３に記憶された制御プログラムやリソースデータ（資源情報）等に基づいて行われる。ＲＡＭ２１１は、ＣＰＵ２１０の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＨＤＤ２１３は、大容量メモリとして機能し、プルプリントアプリケーションプログラム及び関係するプログラム等を格納している。操作パネル２２１には、プルプリントの操作を行うユーザインタフェースやプルプリント切り替えボタンが配置されている。また、プリンタ１０５〜１０８の動作モード等の設定やプリンタ１０５〜１０８の動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルやＬＥＤ２１４等の表示部も配置されている。ＮＩＣ２１９は、ネットワークインタフェースカードであり、外部装置とのデータのやり取りを行う。なお、図２で示すプリントエンジン２２０は既知の印刷技術を利用するものであり、例えば、電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等に対応する。ラスタコントローラ２１５は、ＰＤＬ言語、ＰＤＦ言語である印刷データを画像データに変換するコントローラである。機器Ｉ／Ｆ２１７は、ＵＳＢ等で接続可能な外部機器と接続するためのインタフェースである。
【００１５】
＜印刷システム構成＞
図３は、ソフトウェアに着目した、印刷システムのシステム構成を示す図である。プリントサーバ１０４には、印刷ジョブを管理する印刷ジョブ管理サービス３０６がある。印刷ジョブ管理サービス３０６は、他のサービス、または他のプログラムから投入される文書データ等を印刷データとしてストレージ３０７に管理する。印刷データのデータフォーマットは、ＰＤＬまたはＰＤＦ等の形式とされる。また、ストレージ３０７として例えば、プリントサーバ１０４に内蔵されるＨＤＤ、または、外部接続されるＨＤＤ、または、ネットワークストレージ等の記憶装置が用いられても良い。
【００１６】
Ｗｅｂアプリケーション３０２は、クライアント端末１０１〜１０３で動作するＷｅｂブラウザ３０１で表示可能なＷｅｂページを作成し、Ｗｅｂブラウザ３０１からのリクエストに応答して、その作成されたＷｅｂページを返信する。Ｗｅｂサービス３０３は、プルプリントアプリケーション３０４からの印刷ジョブ取得リクエストに対して印刷データを返し、また、印刷ジョブのステータスを受け取る。プリンタ１０５〜１０８のプルプリントアプリケーション３０４は、Ｗｅｂブラウザ３０１からの印刷リクエストを受け付ける。
【００１７】
また、印刷ジョブ管理サービス３０６、プリンタ管理サービス３０５、Ｗｅｂアプリケーション３０２、Ｗｅｂサービス３０３はそれぞれ独立したプログラムであり、それぞれ別々の情報処理装置に配置することが可能である。その場合に、それらのプログラムはそれぞれネットワークに繋がった情報処理装置に配置し、各プログラム間で通信を行う。また、各プログラムを１つの情報処理装置に配置するようにしても良い。
【００１８】
認証サービス３０８は、プリントサーバ１０４にアクセスするためのユーザ名、パスワード、認証トークンなどの認証情報を保持している。認証サービス３０８は、不図示の認証サーバに実装されているアプリケーションである。Ｗｅｂアプリケーション３０２、Ｗｅｂサービス３０３は、Ｗｅｂブラウザ３０１又はプルプリントアプリケーション３０４からリクエストを受信すると、認証サービス３０８へ認証リクエストを行う。認証は、Ｗｅｂブラウザ３０１に表示されたログインＷｅｂページからのログインリクエストに含まれるユーザ名及びパスワードと、認証サービス３０８で保持するユーザ名及びパスワードとの照合で行われる。認証が成功すると、認証サービス３０８から認証されたユーザに関連付けられた認証トークンが発行される。この認証トークンは、必要に応じて、プリントサーバ１０４、クライアント端末１０１〜１０３、プリンタ１０５〜１０８に発行される。
【００１９】
＜プリントサーバ＞
図４は、プリントサーバ１０４のソフトウェア構成を示す図である。なお、プリントサーバ１０４の各ソフトウェアモジュールは、図２で示したプリントサーバ１０４のＨＤＤ２０５に記憶されており、前述したようにＣＰＵ２０２によってＲＡＭ２０３にロードされて実行される。プリントサーバ１０４の印刷ジョブ管理サービス３０６の印刷データ管理部４０１は、印刷データの管理を行う。Ｗｅｂサービス３０３から印刷データの取得要求を受け取ると、ストレージ３０７から指定の印刷データを取得し、Ｗｅｂサービス３０３に渡す。印刷ジョブ情報管理部４０２は、ストレージ３０７で管理している印刷データの印刷ジョブ情報を管理する。ここで、ジョブ情報としては、例えば、クライアントジョブＩＤや、デバイスジョブＩＤ、ドキュメント名、ジョブ種類、印刷ステータス、受付日時、最終印刷日時、ユーザ名、ページ数、ページサイズ、印刷データのリンク先等の情報である。クライアントジョブＩＤは、クライアントが発行する印刷ジョブを一意に識別するためのＩＤである。デバイスジョブＩＤは、プルプリントアプリケーション３０４で発行されるデバイス内のジョブＩＤである。ジョブ種別は、ＰＤＬやＰＤＦ等といったデータフォーマットを示す。また、印刷ステータスは、待機中、転送中、印刷中、正常終了、エラー終了等のステータスを示す。ドキュメント名は、後述する図５に示すドキュメント一覧画面５００のドキュメント名５０２である。
【００２０】
プリンタ管理サービス３０５のプリンタ情報管理部４０３は、プリントサーバ１０４で管理する複数のプリンタ１０５〜１０８のプリンタ情報を管理する。プリンタ情報は、例えば、プリンタ名、ＭＡＣアドレス、ＵＲＩ等である。プリンタ名は、Ｗｅｂブラウザ３０１の後述する図５に示すプリンタ一覧画面５１０のプリンタ名５１２で表示される情報である。ＭＡＣアドレスは、各プリンタをユニークに識別するための情報である。ＵＲＩは、プルプリントアプリケーション３０４が印刷リクエストを受け付けるエンドポイントとなる情報である。
【００２１】
Ｗｅｂアプリケーション３０２のセッション管理部４０４は、認証サービス３０８で認証が成立したＷｅｂブラウザ３０１からのリクエストをセッションとして管理する。ページ生成部４０５は、Ｗｅｂブラウザ３０１からのリクエストに対して、後述する図５に示すようなＷｅｂ画面を作成し、Ｗｅｂブラウザ３０１に返信する。リクエスト受付部４０６は、Ｗｅｂブラウザ３０１からイベント登録リクエストや印刷リクエスト等を受ける。
【００２２】
Ｗｅｂサービス３０３のリクエスト受付部４０９は、プルプリントアプリケーション３０４から印刷データ取得リクエストや、印刷ジョブのステータスを受ける。印刷ジョブ取得部４０７は、リクエスト受付部４０９が印刷データ取得リクエストを受けると前述の印刷ジョブ管理サービス３０６に印刷データ取得要求を出す。印刷ステータス受信部４０８は、リクエスト受付部４０９が印刷ジョブのステータスを受けると、そのステータスを印刷ジョブ管理サービス３０６に通知する。印刷ジョブ管理サービス３０６は、通知された印刷ジョブを特定してステータスを更新する。
【００２３】
＜Ｗｅｂ画面＞
図５は、プリントサーバ１０４のＷｅｂアプリケーション３０２が作成し、クライアント端末１０１〜１０３のＷｅｂブラウザ３０１で表示されるＷｅｂ画面の一例を示す図である。Ｗｅｂブラウザ３０１からプリントサーバ１０４にジョブ一覧リクエストを送ると、プリントサーバ１０４は、ドキュメント一覧画面５００を作成し、Ｗｅｂブラウザ３０１に返信する。ドキュメント一覧画面５００は、ジョブ選択チェックボックス５０１、ドキュメント名５０２、ステータス５０３、印刷ボタン５０４を含む。ジョブ選択チェックボックス５０１は、印刷するジョブ（ここでは、ドキュメントとして示されている）を選択するためのチェックボックスである。Ｗｅｂブラウザ３０１は、印刷ボタン５０４の押下を検出すると、ジョブ選択チェックボックス５０１により選択されているドキュメント一覧をプリントサーバ１０４に送信する。ドキュメント一覧を受け付けたプリントサーバ１０４は、プリンタ一覧画面５１０を作成し、Ｗｅｂブラウザ３０１に返信する。プリンタ一覧画面５１０は、プリンタ選択ラジオボタン５１１、プリンタ名５１２、印刷ボタン５１３を含む。Ｗｅｂブラウザ３０１は、印刷ボタン５１３の押下を検出すると、ラジオボタン５１１により選択されているプリンタ情報をプリントサーバ１０４に送信する。プリンタ情報を受け付けたプリントサーバ１０４は、印刷設定画面５２０を作成し、Ｗｅｂブラウザ３０１に返信する。印刷設定画面５２０は、印刷属性５２１の設定画面である。
【００２４】
Ｗｅｂブラウザ３０１は、印刷ボタン５２２の押下を検出すると、ユーザ指定の印刷属性５２１をプリントサーバ１０４に送る。プリントサーバ１０４は、印刷データに対して、指定された印刷属性情報を付加する。プリントサーバ１０４は、Ｗｅｂブラウザ３０１にプリンタ選択ラジオボタン５１１で指定されたプリンタに対するイベント登録リクエストや印刷リクエストを送るためのスクリプト５３１で記述した画面５３０を送信する。ここで、画面５３０は、イベント登録リクエストや印刷リクエストの画面のｈｔｍｌ構成の一例を示す。Ｗｅｂブラウザ３０１が、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔのクロスドメイン通信機能又はそれと同等の機能を備えたＷｅｂブラウザである場合、スクリプト５３１が実行されて、プルプリントアプリケーション３０４にイベント登録リクエスト、印刷リクエストが行われる。
【００２５】
＜プルプリントアプリケーション＞
図６は、プルプリントアプリケーション３０４のソフトウェア構成を示す図である。なお、プルプリントアプリケーション３０４の各ソフトウェアモジュールは、プリンタ１０５〜１０８のＨＤＤ２１３に記憶されており、前述したようにＣＰＵ２１０によってＲＡＭ２１１にロードされ実行される。
【００２６】
プルプリントアプリケーション３０４のＷｅｂサービス受付部６１０は、Ｗｅｂブラウザ３０１からのイベント登録リクエストや印刷リクエスト等を受ける。Ｗｅｂサービス受付部６１０は、イベント登録リクエストを受信すると、印刷制御部６１６にイベント登録情報を通知する。イベント登録情報には、イベント送信先のＵＲＩ、クライアントを識別するクライアントＩＤなどが含まれる。また、Ｗｅｂサービス受付部６１０は、印刷リクエストを受信すると、印刷ジョブ取得部６１２に印刷リクエスト情報を通知する。印刷リクエスト情報には、印刷データ取得先のＵＲＩ７０１、認証トークン７０２、クライアントＩＤ７０３、クライアントジョブＩＤ７０４などが含まれる。
【００２７】
Ｗｅｂサービス送信部６１１は、印刷ジョブ取得部６１２からの印刷データ取得要求を受けると、Ｗｅｂサービス３０３から印刷データの取得を行い、印刷データを印刷ジョブ取得部６１２に渡す。また、Ｗｅｂサービス送信部６１１は、印刷制御部６１６からステータス通知要求を受け、印刷ジョブのステータスをＷｅｂサービス３０３に通知する。印刷ジョブ取得部６１２は、印刷データの取得を印刷キュー情報７００で管理する。
【００２８】
印刷キュー情報７００は、ＵＲＩ７０１、認証トークン７０２、クライアントＩＤ７０３、クライアントジョブＩＤ７０４、デバイスジョブＩＤ７０５などの印刷ジョブについてのキュー情報である。ＵＲＩ７０１は、印刷データの保存先を示す。本実施例では、例えば、Ｗｅｂサービス３０３のＵＲＩが登録される。認証トークン７０２は、認証サービス３０８で発行された認証トークンである。認証トークン７０２は、取得された印刷ジョブに付加され、Ｗｅｂサービス３０３からのリクエストにより、認証サービス３０８で整合性が確認される。
【００２９】
クライアントＩＤ７０３は、クライアントを識別するためのＩＤである。本実施例において、例えば、クライアントＩＤとしてＷｅｂサービスのＵＲＩが登録される。クライアントジョブＩＤ７０４は、クライアントが発行するジョブを識別するためのＩＤである。本実施例において、例えば、クライアントジョブＩＤにプリントサーバ１０４で発行したＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）が登録される。デバイスジョブＩＤ７０５は、デバイスで発行されるジョブを識別するためのＩＤである。本実施例において、例えば、印刷リクエストを受け付けた順に、プルプリントアプリケーション３０４が１から始まる整数をインクリメントしていった値が登録される。印刷ジョブ取得部６１２は、Ｗｅｂサービス受付部６１０より通知された印刷リクエスト情報を印刷キュー情報７００の最後尾に登録する。ここで、印刷リクエストにより渡される情報は、ＵＲＩ７０１、認証トークン７０２、クライアントＩＤ７０３、クライアントジョブＩＤ７０４である。また、印刷ジョブ取得部６１２は、印刷キュー情報７００の先頭の印刷ジョブ情報から、Ｗｅｂサービス送信部６１１を介して印刷データの取得を行う。本実施例においては、ＵＲＩ７０１に登録されたＷｅｂサービス３０３から印刷データの取得が行われる。取得した印刷データは、印刷ジョブ送信部６１５に送られる。印刷データを取得する際の処理フローについては後述する。プルプリントコントローラ６１３は、プルプリントアプリケーション３０４全体の動作管理を行い、各部への動作指示等は、このプルプリントコントローラ６１３を介して行われる。
【００３０】
印刷ジョブ送信部６１５は、印刷ジョブ取得部６１２より送られる印刷データを受け付けて、転送バッファに保持する。そして、印刷ジョブ送信部６１５は、転送バッファに保存された印刷データをコントローラ２２２に送信して印刷処理を行う。転送バッファに印刷データが保存される際には、印刷データを受信しながら、コントローラ２２２への転送が行われる。従って、転送バッファに保存されるのは印刷データの一部である。印刷ジョブ送信部６１５は、転送バッファ情報７１０を保持し、印刷データの転送は、転送バッファ情報７１０により制御される。
【００３１】
転送バッファ情報７１０は、バッファサイズ７１１、受信完了サイズ７１２、遅延転送バッファサイズ７１３、最大転送サイズ７１４、遅延転送サイズ７１５を含む。バッファサイズ７１１は、印刷ジョブ送信部６１５で保持する転送バッファのサイズである。受信完了サイズ７１２は、転送バッファに保存された既に受信済みの累積データサイズである。遅延転送バッファサイズ７１３は、コントローラ２２２への遅延転送を開始するためのバッファサイズの閾値である。最大転送サイズ７１４は、コントローラ２２２への転送サイズ（第１のデータサイズの一例）である。遅延転送サイズ７１５は、遅延転送時における最大転送サイズより小さい転送サイズ（第２のデータサイズの一例）である。遅延転送とは、コントローラ２２２へ印刷データを転送する際に、最大転送サイズ７１４から、より小さいサイズに変更し、結果として、コントローラ２２２への転送時間を長くしてタイムアウトを防ぐために行われる転送制御である。転送バッファ情報７１０による印刷データ転送処理制御フローは後述する。
【００３２】
印刷制御部６１６は、Ｗｅｂサービス受付部６１０より通知されたイベント登録情報を保持する。イベント登録情報には、イベント送信先のＵＲＩ、クライアントを識別するクライアントＩＤなどが保持される。印刷制御部６１６は、印刷ジョブ送信部６１５からコントローラ２２２に転送した印刷ジョブのステータスをコントローラ２２２から受信して、Ｗｅｂサービス送信部６１１を介してイベント送信先ＵＲＩに通知する。本実施例において、イベント送信先ＵＲＩは、例えば、Ｗｅｂサービス３０３である。印刷ジョブのステータス通知にはクライアントジョブＩＤやデバイスジョブＩＤが含まれるので、プリントサーバ１０４は印刷ジョブを特定することができる。
【００３３】
＜プルプリントフロー＞
図８は、プルプリントアプリケーション３０４が印刷データをプリントサーバ１０４から取得して処理する印刷データ処理の手順を示すフローチャートである。図８に示す処理は、図２に示すプリンタのＨＤＤ２１３に記憶されたプログラムがプリンタのＣＰＵ２１０によりプリンタのＲＡＭ２１１にロードされて実行される。以下、プリンタの一例として、プリンタ１０５を説明する。
【００３４】
まず、Ｓ８０１において、プルプリントアプリケーション３０４は、プリントサーバ１０４に対して印刷データの取得リクエストを行う。その際には、印刷データの取得リクエストは、印刷キュー情報７００の先頭から順次行う。Ｓ８０２において、プルプリントアプリケーション３０４は、プリンタ１０５の印刷ジョブ送信部６１５に保持されている転送バッファ情報７１０の受信完了サイズ７１２を「０」にして、Ｓ８０３において、転送バッファ情報７１０を初期化する。Ｓ８０４において、プルプリントアプリケーション３０４は、プリンタ１０５のコントローラ２２２への印刷データの転送処理を開始する。Ｓ８０４の処理については、図９において後述する。Ｓ８０４において開始されたコントローラ２２２への印刷データの転送処理は、以下のＳ８０５以降の処理においても引き続き行われる。
【００３５】
次に、Ｓ８０５において、プルプリントアプリケーション３０４は、プリントサーバ１０４への接続が正常終了しているか、異常終了しているか（接続断）、若しくは、接続が継続しているかを判定する。ここで、プリントサーバ１０４への接続が異常終了であると判定された場合の処理については、図１０において後述する。本実施例において、プリントサーバ１０４への接続が正常終了であるか異常終了であるかの判定は、例えば、ＴＣＰ／ＩＰの通信プロトコルの終了処理が正常に行われたか否かで行われる。Ｓ８０５においてプリントサーバ１０４への接続が正常終了であると判定された場合に、プルプリントアプリケーション３０４は、全ての印刷データを受信完了したと判断して本処理を終了する。また、Ｓ８０５においてプリントサーバ１０４への接続が継続していると判定された場合に、プルプリントアプリケーション３０４は、Ｓ８０６に進む。
【００３６】
Ｓ８０６において、プルプリントアプリケーション３０４は、転送バッファ情報７１０のバッファサイズ７１１と受信完了サイズ７１２とから、転送バッファに空きがあるか否かを判定する。Ｓ８０６の判定処理は、例えば、バッファサイズ７１１と受信完了サイズ７１２とを比較することにより判定を行う。ここでは、印刷データを受信すると、バッファサイズ７１１より受信完了サイズ７１２の方が大きくなる場合には、空きがないと判定し、Ｓ８０５に処理を戻す。一方、印刷データを受信しても、バッファサイズ７１１より受信完了サイズ７１２の方が小さい場合には、空きがあると判定し、Ｓ８０７に進む。
【００３７】
Ｓ８０７において、プリンタ１０５は、プリントサーバ１０４から印刷データを受信する。そして、Ｓ８０８において、プルプリントアプリケーション３０４は、Ｓ８０７において受信した印刷データのサイズを受信完了サイズ７１２に加算する。Ｓ８０９において、プルプリントアプリケーション３０４は、Ｓ８０７において受信した印刷データを転送バッファに追加する。その後、プルプリントアプリケーション３０４は、Ｓ８０５に処理を戻す。
【００３８】
以上のように、本実施例におけるプリンタ１０５は、図８に示すように、プリントサーバ１０４から印刷データを受信しながら同時に、既に転送バッファに保存されている印刷データをプリンタ１０５のコントローラ２２２に転送する。
【００３９】
図９は、図８のＳ８０４の処理の手順を示すフローチャートである。図９に示す処理は、図２に示すプリンタのＨＤＤ２１３に記憶されたプログラムがプリンタのＣＰＵ２１０によりプリンタのＲＡＭ２１１にロードされて実行される。
【００４０】
まず、Ｓ９０１において、プルプリントアプリケーション３０４は、プリントサーバ１０４への接続されているか否かを判定する。ここで、プリントサーバ１０４へ接続されていないと判定された場合には、本処理を終了する。一方、プリントサーバ１０４へ接続されていると判定された場合には、Ｓ９０２に進む。Ｓ９０２において、プルプリントアプリケーション３０４は、転送バッファに転送すべきデータが保存されているか否かを判定する。Ｓ９０２の処理は、例えば、転送バッファ情報７１０の受信完了サイズ７１２が０より大きいか否かで判定しても良い。ここで、転送バッファに転送すべきデータが保存されていないと判定された場合には、Ｓ９０１に処理を戻す。一方、転送バッファに転送すべきデータが保存されていると判定された場合には、Ｓ９０３に進む。
【００４１】
Ｓ９０３において、プルプリントアプリケーション３０４は、Ｓ８０１におけるプリントサーバ１０４への接続が継続しているか否かを判定する。ここで、プリントサーバ１０４への接続が継続していると判定された場合には、Ｓ９０４に進む。一方、プリントサーバ１０４への接続が継続していないと判定された場合には、Ｓ９０６に進む。
【００４２】
Ｓ９０４において、プルプリントアプリケーション３０４は、転送バッファに保存されいる転送すべき印刷データが基準となる閾値より小さいか否かを判定する。本実施例においては、例えば、受信完了サイズ７１２が遅延転送バッファサイズ７１３より小さいか否かを判定する。ここで、転送すべき印刷データが基準となる閾値より小さいと判定された場合には、Ｓ９０５に進み、コントローラ２２２への転送サイズを最大転送サイズ７１４と決定する。一方、転送すべき印刷データが基準となる閾値より小さくないと判定された場合には、Ｓ９０７に進み、コントローラ２２２への転送サイズを遅延転送サイズ７１５と決定する。
【００４３】
再び、Ｓ９０３を参照する。Ｓ９０３においてプリントサーバ１０４への接続が継続していないと判定された場合には、Ｓ９０６において、プルプリントアプリケーション３０４は、プリントサーバ１０４への接続が正常終了であるか又は異常終了であるかを判定する。Ｓ９０６の判定は、例えば、ＴＣＰ／ＩＰの通信プロトコルの終了処理が正常に行われたか否かにより行われても良い。Ｓ９０６において、プリントサーバ１０４への接続が正常終了であると判定された場合には、Ｓ９０５において説明した処理を行う。一方、プリントサーバ１０４への接続が異常終了であると判定された場合には、Ｓ９０７において説明した処理を行う。
【００４４】
Ｓ９０５又はＳ９０７において転送バッファからコントローラ２２２への転送サイズが決定されると、Ｓ９０８において、プルプリントアプリケーション３０４は、Ｓ９０５又はＳ９０７で決定された転送サイズ分の印刷データを転送バッファから取得する。Ｓ９０９において、プルプリントアプリケーション３０４は、取得した転送サイズ分の印刷データをコントローラ２２２に転送する（Ｓ９０９）。Ｓ９０９における転送処理が終わると、プルプリントアプリケーション３０４は、処理をＳ９０２に戻す。
【００４５】
以上のように、本実施例においては、コントローラ２２２への転送処理中に（Ｓ８０４）、プリンタ１０５からプリントサーバ１０４への接続が終了した場合に、その旨を検出する（Ｓ９０３）。さらに、それが印刷データの受信完了による正常終了か、回線断等による異常終了かを判定する（Ｓ９０６）。つまり、本実施例においては、コントローラへの転送処理中に、プリントサーバ１０４への接続が異常終了した場合には、後述する接続リトライ処理が開始されるまでの間、コントローラ２２２への転送データサイズを小さくする。その結果、コントローラ２２２への転送処理がタイムアウトとなることを防ぐことができる。また、本実施例においては、プリンタ１０５からプリントサーバ１０４に接続が継続されている場合でも、Ｓ９０４で転送バッファに保存済みの印刷データの量が閾値より少ないと判定されると、コントローラ２２２への転送データサイズを小さくしている。従って、プリントサーバ１０４からの印刷データの受信の速度が回線不調等で遅くなり転送すべきデータが少なくなった場合でも、コントローラ２２２への転送処理がタイムアウトとなることを防ぐことができる。
【００４６】
図１０は、図８のＳ８０５において、プルプリントアプリケーション３０４がプリントサーバ１０４への接続が異常終了であると判定した場合に実行される処理の手順を示すフローチャートである。図１０に示す処理は、図２に示すプリンタのＨＤＤ２１３に記憶されたプログラムがプリンタのＣＰＵ２１０によりプリンタのＲＡＭ２１１にロードされて実行される。
【００４７】
まず、Ｓ１００１において、プルプリントアプリケーション３０４がプリントサーバ１０４への接続の異常終了を検出する。本実施例においては、例えば、ＴＣＰ／ＩＰの通信プロトコルの終了処理が正常に行われずに接続が終了した場合に異常終了として検出する。プリントサーバ１０４への接続が異常終了したと検出すると、Ｓ１００２〜Ｓ１００６において、プルプリントアプリケーション３０４は、プリントサーバ１０４への接続リトライを行う。ここで、リトライ回数やリトライ間隔は、初期値としてプルプリントアプリケーション３０４が保持している。また、ネットワーク環境に応じて、リトライ回数やリトライ間隔が変更可能であっても良い。
【００４８】
本実施例においては、リトライ処理を行う際に、まず、Ｓ１００３において、プルプリントアプリケーション３０４が印刷キュー情報７００を参照し、プルプリント実行中のジョブの後続に印刷ジョブが登録されているか否かを判定する。ここで、後続に印刷ジョブが登録されていると判定された場合には、Ｓ１００４に進む。Ｓ１００４において、プルプリントアプリケーション３０４は、印刷中の印刷ジョブ情報をコントローラ２２２から取得して参照する。また、プルプリントアプリケーション３０４は、印刷ジョブ情報をプリントサーバ１０４から取得するようにしても良い。Ｓ１００４において、プルプリントアプリケーション３０４は、印刷中の印刷ジョブにステイプルや製本等のフィニッシングが設定されているか否かを判定する。ここで、フィニッシングが設定されていると判定された場合には、プルプリントアプリケーション３０４は、Ｓ１００５に進み、プリントサーバ１０４に印刷データの取得リクエストを行うことでリトライする。Ｓ１００５においては、受信完了サイズ７１２も合わせてプリントサーバ１０４に通知される。受信完了サイズ７１２を受け取ったプリントサーバ１０４は、印刷データのうち受信完了サイズ７１２に続く印刷データをレスポンスとしてプリンタ１０５に返信する。一方、Ｓ１００４において、フィニッシングが設定されていないと判定された場合には、リトライせずにＳ１００７に進む。
【００４９】
再び、Ｓ１００３を参照する。Ｓ１００３において、後続に印刷ジョブが登録されていないと判定された場合には、Ｓ１００５において説明した処理が行われる。つまり、印刷中の印刷ジョブにフィニッシングが設定されている場合には、印刷を途中で中断せずに、接続リトライする。フィニッシングが設定されている印刷ジョブが印刷エラーとなってしまうと、始めのページから再印刷を行う必要があるためである。
【００５０】
本実施例においては、後続に印刷ジョブがあり、印刷中の印刷ジョブにフィニッシングが設定されている場合には接続リトライする（かつ、Ｓ９０７の処理において転送サイズが小さくされている）。その結果、印刷エラーとなって始めのページからの再印刷を防ぐことができる。また、印刷中の印刷ジョブにフィニッシングが設定されていない場合には、接続リトライせずに、その印刷ジョブをエラーとして終了する（後述のＳ１０１４）。また、後続に印刷ジョブがあり、印刷中の印刷ジョブにフィニッシングが設定されていない場合にも接続リトライせずに、その印刷ジョブをエラーとして終了する（後述のＳ１０１４）。
【００５１】
次に、Ｓ１００７において、プルプリントアプリケーション３０４は、プリントサーバ１０４への再接続ができたか否かを判定する。ここで、プリントサーバ１０４へ接続できなかったと判定された場合には、Ｓ１０１３において、プルプリントアプリケーション３０４は、印刷エラーした印刷ジョブが印刷されていた排紙トレイ情報をプリントサーバ１０４に通知する。ここで、用いる排紙トレイ情報は、コントローラ２２２より取得される。本実施例においては、印刷エラーとなった排紙トレイの情報を受け付けたプリントサーバ１０４は、印刷待ちの排紙トレイ情報を、印刷エラーとなった排紙トレイと異なる排紙トレイに変更することができる。つまり、印刷エラーとなった印刷ジョブと後続の印刷ジョブとの排紙先を分けることができる。その結果、印刷エラーとなり途中まで排紙された印刷ジョブと、後続の印刷ジョブとによる出力物が混ざってしまうのを防ぐことができる。Ｓ１０１４において、プルプリントアプリケーション３０４は、印刷中の印刷データのデータ転送を終了して、その印刷ジョブをエラー終了としてプリントサーバ１０４にステータス通知する。
【００５２】
Ｓ１００７において、プリントサーバ１０４へ再接続できたと判定された場合には、プルプリントアプリケーション３０４は、Ｓ１００８、Ｓ１００９、Ｓ１０１０、Ｓ１０１１、Ｓ１０１２の処理により印刷データを受信する。Ｓ１００８〜Ｓ１０１２の各処理は、図８のＳ８０５〜Ｓ８０９の各処理における説明と同じである。
【００５３】
本実施例においては、プリントサーバ１０４への接続が異常終了だった場合に、コントローラ２２２への転送サイズを遅延転送サイズ７１５（できるだけ小さい値とされている）にして転送速度を落とすことで、コントローラ２２２への接続を維持できる。また、コントローラ２２２への接続を維持した状態で、プリントサーバ１０４への接続のリトライを行い、再接続できた場合には、続きの印刷データからコントローラ２２２に転送することができる。コントローラ２２２は、プリントサーバ１０４への接続の異常終了やリトライとは関係なく、連続した印刷データを転送されて受信することができるので、印刷ジョブはタイムアウトによるエラーとならずに印刷を続けることができる。プリントサーバ１０４とプルプリントアプリケーション３０４は、異なるネットワーク１０９〜１１１に接続される場合がある。その場合、プリントサーバ１０４からの印刷データ取得速度が遅く、コントローラ２２２への印刷データ転送速度が速くなり、転送バッファの印刷データがなくなることで印刷エラーとなってしまう。本発明により転送バッファのサイズが少なくなった場合にコントローラ２２２への転送サイズを遅延転送サイズ７１５にして転送速度を落とすことで、転送バッファを維持し印刷エラーになることを防ぐことができる。
【００５４】
＜実施例２＞
次に、実施例２として、実施例１におけるプルプリントアプリケーション３０４がサーバとしてプリンタ１０５〜１０８とは別に構成された場合を説明する。
【００５５】
＜システム全体構成＞
図１１は、本実施例における印刷システムの全体構成を示す図である。プルプリントサーバ１１０１〜１１０３は、単一、もしくは複数のプリンタ１０５〜１０８へのプルプリントを行うためのサーバである。プルプリントサーバ１１０１〜１１０３がプルプリントを行うプリンタ１０５〜１０８は、それぞれのプルプリントサーバ１１０１〜１１０３がアクセス可能なネットワークセグメントとして接続されている。例えば、ネットワーク１１０とネットワーク１１１は別のセグメントであり、プルプリントサーバ１１０１は、プリンタ１０６へ接続することはできないので、プルプリントを行うことができない。一方、プリンタ１０５はプルプリントサーバ１１０１と同一のネットワークであって接続できるので、プルプリントが可能である。以下、プルプリントサーバ１１０１〜１１０３を区別する必要がなければ、プルプリントサーバ１１００と総称して説明する。
【００５６】
＜ハードウェア構成＞
図１２は、本印刷システムのプルプリントサーバ１１００のハードウェア構成を示す図である。システムバス１２０１〜インタフェース１２０８については、図２のシステムバス２０１〜インタフェース２０８の説明と同じである。
【００５７】
＜印刷システム構成＞
図１３は、本実施例における印刷システムのシステム構成を示す図である。プルプリントサーバ１１０１〜１１０３上で動作するプルプリントアプリケーション１１０４は、実施例１におけるプルプリントアプリケーション３０４に対応する。プルプリントサーバ１１０１〜１１０３は、Ｗｅｂブラウザ３０１からの印刷リクエストを受け付け、プリントサーバ１０４から印刷データを取得して、プリンタ１０５〜１０８に転送することでプルプリント印刷を実行する。
【００５８】
＜プルプリントアプリケーション１１０４＞
プルプリントアプリケーション１１０４のソフトウェア構成は、図６に示すプルプリントアプリケーション３０４と同じである。プルプリントアプリケーション１１０４の各ソフトウェアモジュールは、図１２に示すＨＤＤ１２０５に記憶されており、ＣＰＵ１２０２によりＲＡＭ１２０３にロードされ実行される。
【００５９】
実施例１のプルプリントアプリケーション３０４と、本実施例におけるプルプリントアプリケーション１１０４との異なる点について説明する。まず、プルプリントアプリケーション１１０４は、複数のプリンタへのプルプリントが実行可能である。プリンタ毎にイベント登録リクエストコマンドや印刷リクエストを受け付けるためのエンドポイントとしてのＵＲＩを設け、プリンタ毎に印刷キュー情報７００などの情報を管理し、転送処理を行うことで複数のプリンタへのプルプリントを実現する。プリントサーバ１０４は、プリンタ毎に異なるエンドポイントＵＲＩをプリンタ情報として保持することで、接続先がプリンタ１０５〜１０８なのかプルプリントサーバ１１００なのかを意識する必要がない。プルプリントサーバ１１００は、ネットワークを介してプリンタ１０５〜１０８に接続される。従って、プリンタ１０５〜１０８の各コントローラ２２２への印刷データの転送は、ネットワーク１０９〜１１１を介して行われる。
【００６０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005639441.tif 000002
【図２】
0005639441.tif 000003
【図３】
0005639441.tif 000004
【図４】
0005639441.tif 000005
【図５】
0005639441.tif 000006
【図６】
0005639441.tif 000007
【図７】
0005639441.tif 000008
【図８】
0005639441.tif 000009
【図９】
0005639441.tif 000010
【図１０】
0005639441.tif 000011
【図１１】
0005639441.tif 000012
【図１２】
0005639441.tif 000013
【図１３】
0005639441.tif 000014