(57)【要約】【課題】  ファーストプリントを実現する印刷処理システムにおいて、プリンターが印刷データを取得する際にエラーが発生した場合でも継続して印刷処理を実行することを目的とする。【解決手段】  第一のストレージサーバーから前記印刷データファイルを取得する処理においてエラーが発生したことにより、前記画像処理装置によって取得された印刷データファイルを特定できる情報を前記プリントサーバーに通知する通知手段と、画像処理装置が未取得である印刷データファイルを第二のストレージサーバーに格納する格納手段と、未取得の印刷データファイルの取得先情報を含むインデックスファイルを作成する作成手段と、インデックスファイルに基づいて、前記格納手段によって格納された印刷データファイルを前記第二のストレージサーバーから取得し、印刷処理を実行する実行手段と、を有する。【選択図】  図１０
2019147315.tif 000002
【特許請求の範囲】
【請求項１】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーと、
少なくとも２つのストレージサーバーと、
前記印刷データファイルを取得して印刷処理を実行する画像処理装置と、
を含む印刷処理システムであって、
前記画像処理装置は、
第一のストレージサーバーから前記印刷データファイルを取得する処理においてエラーが発生したことにより、前記画像処理装置によって取得された印刷データファイルを特定できる情報を前記プリントサーバーに通知する通知手段と、
前記プリントサーバーは、
前記通知手段によって通知された情報に基づいて、前記画像処理装置が未取得である印刷データファイルの取得先情報を含むインデックスファイルを作成する作成手段と、
前記未取得である印刷データファイルを第二のストレージサーバーに格納する格納手段と、
前記画像処理装置は、
前記作成手段によって作成したインデックスファイルに基づいて、前記格納手段によって格納された印刷データファイルを前記第二のストレージサーバーから取得し、印刷処理を実行する実行手段と、
を有する印刷処理システム。
【請求項２】
前記通知手段によって通知される情報は、
前記画像処理装置によって取得された印刷データファイルのファイル数を含むことを特徴とする請求項１に記載の印刷処理システム。
【請求項３】
前記取得先情報は、
前記格納手段によって格納された印刷データファイルのファイルパスと、前記第二のストレージサーバーのエンドポイントとを含むＵＲＬであることを特徴とする請求項１または２に記載の印刷処理システム。
【請求項４】
前記実行手段は、
前記画像処理装置が前記第一のストレージサーバーから前記印刷データファイルを取得するための第一の通信ストリームと、
前記画像処理装置が有する、前記印刷処理を実行するコントローラに対して前記印刷データファイルを送信する第二の通信ストリームと、とで実現された連続した通信セッションを用いて、前記印刷データファイルを前記コントローラに送信し、前記印刷処理を実行することを特徴とする請求項１乃至３のいずれか一項に記載の印刷処理システム。
【請求項５】
前記印刷処理システムは、
前記第一のストレージサーバーから前記印刷データファイルを取得する処理においてエラーが発生した場合、
前記第一の通信ストリームと前記第二の通信ストリームとで実現された連続した通信セッションを切断し、前記第二の通信ストリームに対して、前記画像処理装置が前記第二のストレージサーバーから前記印刷データファイルを取得するための第三の通信ストリームをつなぎかえることで新たな通信セッションを実現し、
前記新たな通信セッションを用いて、前記未取得である印刷データファイルを前記コントローラに送信し、前記印刷処理を実行することを特徴とする請求項４に記載の印刷処理システム。
【請求項６】
前記印刷処理システムは、
前記第一のストレージサーバーの稼働状況を確認する確認手段を更に有し、
前記確認手段によって前記第一のストレージサーバーの稼働状況が確認された結果、前記第一のストレージサーバーと前記画像処理装置とで通信が可能であると判断された場合は、
前記第一の通信ストリームと前記第二のストリームとで実現される通信セッションを用いて、前記印刷処理を実行する請求項４または５に記載の印刷処理システム。
【請求項７】
前記確認手段によって前記第一のストレージサーバーの稼働状況が確認された結果、
前記第一のストレージサーバーと前記画像処理装置とで通信が可能であると判断されなかった場合は、
前記第二の通信ストリームと前記第三の通信ストリームとで実現される通信セッションを用いて、前記印刷処理を実行する請求項６の記載の印刷処理システム。
【請求項８】
前記プリントサーバーは、
前記印刷データファイルに変換された文書データのデータサイズが、予め設定されたデータサイズの閾値を上回るかを判定する判定手段を更に有し、
前記判定手段により前記データサイズが前記閾値を上回ることが判定された場合、
前記格納手段は、
前記印刷データファイルを前記ストレージサーバーに格納する請求項１乃至７のいずれか一項に記載の印刷処理システム。
【請求項９】
前記予め設定されたデータサイズの閾値は、
前記ストレージサーバーに格納される一つ目の印刷データファイルを生成する文書データの閾値を、
二つ目以降の印刷データファイルを生成する文書データの閾値未満となるように設定されることを特徴とする請求項８に記載の印刷処理システム。
【請求項１０】
前記連続した通信セッションは、
通信セッションが接続されてからが開始されてから終了することなく前記印刷データファイルの受送信を、前記通信セッションが雪像されてから行う通信接続であることを特徴とする請求項４または５に記載の印刷処理システム。
【請求項１１】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーと、
少なくとも２つのストレージサーバーと、
前記印刷データファイルを取得して印刷処理を実行する画像処理装置と、
を含む印刷処理システムの制御方法であって、
前記画像処理装置は、
第一のストレージサーバーから前記印刷データファイルを取得する処理においてエラーが発生したことにより、前記画像処理装置によって取得された印刷データファイルを特定できる情報を前記プリントサーバーに通知する通知ステップと、
前記プリントサーバーは、
前記通知ステップによって通知された情報に基づいて、前記画像処理装置が未取得である印刷データファイルの取得先情報を含むインデックスファイルを作成する作成ステップと、
前記未取得である印刷データファイルを第二のストレージサーバーに格納する格納ステップと、
前記画像処理装置は、
前記作成ステップによって作成したインデックスファイルに基づいて、前記格納ステップによって格納された印刷データファイルを前記第二のストレージサーバーから取得し、印刷処理を実行する実行ステップと、
を有する印刷処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードした印刷データをプリンターで印刷する印刷処理システム、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドシステム上の仮想サーバーを用いて、クラウドサービスを提供するビジネスが展開されている。サービス内容としては例えば、データをファイル形式に保存するストレージサービスや、データベース機能を提供するデータベースサービスがある。
【０００３】
また、印刷システムを実現する際にも、クラウドシステム上の仮想サーバーを用いてプリントサービスやデータ変換サービスを提供する形態がある。その場合、顧客ごとにハードウェアのプリントサーバーを管理する必要がないというメリットがある。また、仮想サーバーの負荷に応じてコンピューティング・リソースを追加することが容易に行えるメリットがある。
【０００４】
このクラウドサービスの普及に伴い、プリンターがクラウドシステムからインターネットを介して印刷データを取得し、印刷を行うプルプリント環境が普及しつつある。プルプリント環境では、多くのコンピューティング・リソースを用いて文書データのデータ処理をクラウドシステムで分散処理するため、多くのクライアントからの要求を同時に処理することができる。クラウドシステムで印刷データを管理するためには、多種多様のプリンターが解釈可能なデータフォーマットに変換するデータ変換機能がクラウドシステム側で必要となる。データ変換機能は、クライアント端末のデータ変換ドライバーでデータ変換を行う従来の機能を、クラウドシステム上で実現したものである。特許文献１では、異なる複数のサーバーで文書の種類ごとのデータ変換処理を行うジョブレンダリングシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５０９９６５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
入稿された文書データのファーストプリントを早くするために、クラウドシステムは全ての印刷データの完成を待たずに、完成したページの印刷データをプリンターへ順次送信し印刷させる形態が考えられる。具体的には、分割生成された１つの印刷データをプリンターが随時ダウンロードして印刷を実行する。
【０００７】
その際、印刷データの取得先サーバーのトラブル、または通信網の問題により取得先サーバーと通信できなくなる場合がある。その結果、プリンターは印刷データを取得できなくなり、印刷処理が中断される可能性がある。
【０００８】
本発明は、ファーストプリントを実現する印刷処理システムにおいて、プリンターが印刷データを取得する際にエラーが発生した場合でも継続して印刷処理を実行することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために本発明は、文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーと、前記印刷データファイルを格納する、２つのストレージサーバーと、前記印刷データファイルを取得して印刷処理を実行する画像処理装置と、を含む印刷処理システムであって、前記画像処理装置は、第一のストレージサーバーから前記印刷データファイルを取得する処理においてエラーが発生したことにより、前記画像処理装置によって取得された印刷データファイルを特定できる情報を前記プリントサーバーに通知する通知手段と、前記プリントサーバーは、前記通知手段によって通知された情報に基づいて、前記画像処理装置が未取得である印刷データファイルの取得先情報を含むインデックスファイルを作成する作成手段と、前記未取得である印刷データファイルを第二のストレージサーバーに格納する格納手段と、前記画像処理装置は、前記作成手段によって作成したインデックスファイルに基づいて、前記格納手段によって格納された印刷データファイルを前記第二のストレージサーバーから取得し、印刷処理を実行する実行手段と、を有する。
【発明の効果】
【００１０】
本発明によれば、ファーストプリントを実現する印刷処理システムにおいて、プリンターが印刷データを取得する際にエラーが発生した場合でも継続して印刷処理を実行することができる。
【図面の簡単な説明】
【００１１】
【図１】印刷処理システムの構成を示すブロック図
【図２】各種装置のハードウェア構成図
【図３】印刷処理システムを構成する各種装置の動作を示す図
【図４】プリントサーバー１０１とプリンターＡ１０４〜プリンターＢ１０５のソフトウェア構成図
【図５】ＷｅｂブラウザのＷｅｂ画面の一例を示す図
【図６】プリントサーバー、プルプリントアプリケーションで管理するデータを示す図
【図７】インデックスファイルの例
【図８】プルプリントアプリケーションの通信方式を示す概念図
【図９】印刷の開始処理を示すシーケンス図
【図１０】Ｗｅｂブラウザ、プリントサーバー、プルプリントアプリケーションにおける印刷処理を示すシーケンス図
【図１１】プリントサーバーのデータ変換フロー
【図１２】通信先のストレージサーバーを選択するためのフロー
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
［実施例１］
＜ネットワーク構成＞
図１は、本発明の実施形態に係る印刷処理システムのネットワーク構成を示す図である。図１において、プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０はローカルネットワーク１０７を介して複数台接続されていることを想定している。図１ではプリンターが３台、クライアント端末が２台である場合を示しているが、それぞれの台数はこれに限定されない。尚、代替ストレージサーバー１１１については、ストレージサーバー１０２と同様の機能を有するため、代替ストレージサーバー１１１については詳細な説明を省略する。
【００１４】
プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０は、ローカルネットワーク１０７を介してインターネットワーク１０８にアクセスし、プリントサーバー１０１、ストレージサーバー１０２、代替ストレージサーバー１１１、認証サーバー１０３にアクセスする。プリンターＡ１０４、プリンターＢ１０５、クライアント端末Ａ１０９、クライアント端末Ｂ１１０は有線または無線ＬＡＮを介してネットワークに接続されている。本実施例では、プリンターＡ１０４とクライアント端末Ａ１０９は、無線ＬＡＮターミナル１０６を介してネットワークに接続することを想定している。一方、プリンターＢ１０５とクライアント端末Ｂ１１０は、有線でネットワークに接続されているものとする。
【００１５】
無線ＬＡＮターミナル１０６は、一般的なネットワーク・ルーター機能を有した無線ＬＡＮの親機であり、家庭内や事務所などの中で無線ＬＡＮを提供している。ネットワーク１０７〜１０８はインターネット等のＬＡＮ、ＷＡＮなど、データの送受信が可能で通信ネットワークであればどのような形態でもよい。また、クライアント端末Ａ１０９とクライアント端末Ｂ１１０から各種サーバー１０１〜１０３への通信手段、プリンターＡ１０４とプリンターＢ１０５から各種サーバー１０１〜１０３への通信手段は異なっていてもよい。また、プリンターＡ１０４とプリンターＢ１０５は少なくとも印刷機能を有する画像処理装置であり、例えばＭＦＰ等が挙げられる。
【００１６】
クライアント端末Ａ１０９とクライアント端末Ｂ１１０は例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）、プログラムの実行環境が内蔵された携帯電話等が挙げられる。クライアント端末Ａ１０９とクライアント端末Ｂ１１０では、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  ＷｉＤｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。以降の説明では、プリンターＡ１０４とクライアント端末Ａ１０９を例に説明するが、特に断りがない限り、プリンターＢ１０５とクライアント端末Ｂ１１０の場合、またはそれ以外のプリンターとクライアント端末との組み合わせでも同様である。
【００１７】
プリントサーバー１０１は、印刷する文書を識別する識別情報とプリンターＡ１０４を識別する識別情報を、印刷リクエストと共にクライアント端末Ａ１０９のＷｅｂブラウザから受信する。そして、印刷指示を行う印刷コマンドを含めたレスポンスをクライアント端末Ａ１０９のＷｅｂブラウザに送信する。クライアント端末Ａ１０９のＷｅｂブラウザは、プリンターＡ１０４に対し印刷コマンドを発行する。プリンターＡ１０４は、クライアント端末Ａ１０９のＷｅｂブラウザから印刷コマンドを受信すると、印刷データの取得先情報であるストレージサーバーのＵＲＬを記載したインデックスファイル（後述）を取得する。プリンターＡ１０４は、インデックスファイルのＵＲＬにアクセスし、ストレージサーバーから印刷データを取得し印刷を行う。
【００１８】
認証サーバー１０３は、プリントサーバー１０１にアクセスするためのユーザー名、パスワード、認証トークン、認可トークンなどの認証情報を保持する。
【００１９】
＜プリントサーバーのハードウェア構成＞
図２（ａ）は、プリントサーバー１０１、ストレージサーバー１０２、代替ストレージサーバー１１１、認証サーバー１０３のハードウェア構成の一例を示す図である。特に断らない限り、本発明の機能が実行可能であるならば単体の機器であっても、複数の機器からなるシステムであっても、本発明が適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行可能であるならば、ＬＡＮ、ＷＡＮ等のネットワークを介して接続が為され、処理が行われるシステムであっても本発明を適用できることは言うまでもない。本実施例ではシステムバス２１９により各構成要素が接続されているものとして説明する。
【００２０】
ＣＰＵ２２０は印刷処理システムの制御装置であり、記憶装置２２４に格納されているプリントサーバーのアプリケーションプログラム、オペレーティングシステム等を実行する。また、ＣＰＵ２２０はＲＡＭ２２２に、プログラム実行に必要な情報、ファイル等を一時的に格納する制御を行う。また、ＣＰＵ２２０はプリントサーバープログラムにおける印刷データへの変換処理等を実行する。
【００２１】
ＲＯＭ２２１は記憶手段であり、内部には基本Ｉ／Ｏプログラム等のプログラム、印刷データへのデータ変換の際に使用するフォントデータ、印刷処理、データ変換処理に必要な各種データを記憶する。ＲＡＭ２２２は一時記憶手段であり、ＣＰＵ２２０の主メモリやワークエリア等として機能する。記憶装置２２４は外部記憶手段の一つで、大容量メモリとして機能し、アプリケーションプログラム、ＯＳ等を格納している。ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２２３は、ネットワークインターフェースカード（ＮＩＣ）であり、ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２２３を介して外部装置とのデータのやり取りを行う。後述のＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２３４も同様である。
【００２２】
＜プリンターのハードウェア構成＞
図２（ｂ）は、プリンターＡ１０４、プリンターＢ１０５のハードウェア構成図である。ハードウェアの各構成要素は、システムバス２３０に接続されている。ここでもプリンターＡ１０４を例に説明するが、プリンターＢ１０５の場合でも同様である。
【００２３】
ＣＰＵ２３１は装置全体の制御を行い、システムバス２３０に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２３２に記憶された制御プログラム、あるいはディスクコントローラ（ＤＫＣ２３５）等を介して接続された外部メモリ２３６に記憶された制御プログラムやリソースデータ（資源情報）等に基づく。
【００２４】
ＲＡＭ２３３はＣＰＵ２３１の主メモリ、ワークエリア等として機能し、図示しない通信ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。通信ポートとはＴＣＰコネクションの終端のことであり、コネクションのホスト上のＯＳで通信ポートを番号で管理されている。
【００２５】
記憶装置２４０は大容量メモリとして機能する外部記憶手段である。操作パネル２３９（操作部）は画面を表示、または、画面を介したユーザーの操作指示を受け付ける。また、プリンターＡ１０４の動作モード等の設定やプリンターＡ１０４の動作状況の表示、印刷するコンテンツデータを指定する等の操作を行うためのボタンおよび液晶パネル等の表示部も配置される。
【００２６】
プリントエンジン２３８は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方（熱転写）方式等が挙げられる。
【００２７】
ラスタコントローラ２３７は、ＰＤＬ形式の印刷データを画像データに変換するコントローラである。機器Ｉ／Ｆ２４１は、ＵＳＢ等で接続可能な外部機器との接続Ｉ／Ｆである。
【００２８】
＜印刷処理システムのシステム構成＞
図３の印刷処理システムの構成図を用いて、各種装置の動作について説明する。これらの動作は、各種装置のメモリに保存されたプログラムをＣＰＵが実行することにより実現される。
【００２９】
プリントサーバー１０１は文書データの取得先情報であるＵＲＬを作成し、作成したＵＲＬを他サーバーに送信する。作成されたＵＲＬは、ストレージサーバー１０２への文書データのアップロード先を示す。プリントサーバー１０１はＷｅｂブラウザ３０２からの印刷リクエストを受信したことに伴い、作成したＵＲＬに対して印刷対象の文書データをアップロードする。プリントサーバー１０１は、アップロードの完了の旨を受信すると、アップロードされた文書データの文書情報６２０をデータベース３０１に格納する。
【００３０】
また、プリントサーバー１０１は、印刷リクエストとともに受信した文書ＩＤ６２１で特定される文書データをストレージサーバー１０２から取得し、印刷データに変換する。印刷データを作成するとプリントサーバー１０１は、ストレージサーバー１０２上のダウンロードＵＲＬを作成する。プリントサーバー１０１は、インデックスファイルにそのダウンロードＵＲＬを記載し、印刷データをダウンロードＵＲＬにアップロードする。そして、インデックスファイルをストレージサーバー１０２にアップロードする。
【００３１】
プリントサーバー１０１は、Ｗｅｂブラウザ３０２からのリクエストに含まれる認証トークンを認証サーバー１０３に送信し、認証サーバー１０３が認証トークンを検証する。リクエストに認証トークンが存在しない場合、プリントサーバー１０１はリクエストを認証サーバー１０３にリダイレクトさせる。そして認証サーバー１０３は、Ｗｅｂブラウザ３０２にログイン画面５００を送信する。ログイン画面５００の一例を図５（ａ）に示す。
【００３２】
認証サーバー１０３は、ログイン画面５００を介して入力されたユーザー名とパスワードを、認証サーバー１０３が保持するユーザー名とパスワードと照合して検証する。検証が成功すると、認証サーバー１０３はユーザー情報に紐づく認証トークンを発行し、Ｗｅｂブラウザ３０２に送信する。
【００３３】
Ｗｅｂブラウザ３０２は、認証トークンを含めたリクエストをプリントサーバー１０１に送信し、プリントサーバー１０１からのレスポンスに基づいてＷｅｂ画面を表示する。Ｗｅｂ画面の一例を図５（ｂ）〜（ｅ）に示す。Ｗｅｂ画面の詳細は後述する。
【００３４】
認証サーバー１０３はプリンターのプルプリントアプリケーション３０３に対して、プリントサーバー１０１にアクセスするための認可トークンを発行する。認証サーバー１０３は、プルプリントアプリケーション３０３からプリントサーバー１０１へのリクエストに含まれる認可トークンを検証する。
【００３５】
認可トークンが検証されると、プルプリントアプリケーション３０３はインデックスファイルを取得する。プルプリントアプリケーション３０３はそのインデックスファイルに従い、ストレージサーバー１０２から印刷データを取得し、その印刷データを印刷装置制御部３０４に送信する。印刷装置制御部３０４は印刷データを用いて印刷を実行する。以上が印刷処理システムのシステム構成図とその動作である。
【００３６】
＜プリントサーバーのソフトウェア構成＞
図４（ａ）は、本発明の実施形態に係るプリントサーバー１０１のソフトウェア構成図である。なお、プリントサーバー１０１の各種機能は図２（ａ）で示した記憶装置２２４に記憶されており、ＣＰＵ２２０によってＲＡＭ２２２にロードされ実行される。図４（ａ）を用いて、プリントサーバー１０１が外部からのリクエストを受信した際の、プリントサーバー１０１の機能について説明する。
【００３７】
プリントサーバー１０１は、リクエストを受信するＷｅｂサーバー４０１と、文書や印刷ジョブ、プリンター情報を管理し、印刷処理の制御を行う制御サーバー４０２、文書データを印刷データに変換する変換サーバー４０３を有する。各種サーバー（４０１、４０２、４０３）はそれぞれ独立したプログラムであり、別の印刷処理システムに配置することも可能である。これらのプログラムはそれぞれネットワークに繋がった印刷処理システムに配置し、それぞれのプログラム間で通信を行う。今回は、これらのプログラムを同じ印刷処理システム（１０１）に配置されているものとして説明する。また、それぞれのプログラムを独立したサーバーで構成されてもよく、各プログラムの機能を有する物理サーバーの台数や構成は問わない。
【００３８】
Ｗｅｂサーバー４０１は、文書データの入稿または印刷リクエスト、印刷データ取得リクエストを受信する機能であるリクエスト受付部４０４と、認証サーバー問い合わせ部４０５を有する。認証サーバー問い合わせ部４０５は、リクエスト受付部４０４がリクエストを受信した際に、リクエストに含まれるトークンの検証リクエストを認証サーバー１０３に送信する機能である。
【００３９】
制御サーバー４０２は、印刷ジョブ管理部４０６とプリンター管理部４０７を有する。印刷ジョブ管理部４０６は、受信した文書データの入稿リクエストに基づいて後述の文書情報６２０を作成し、データベース３０１に保存する機能である。また、印刷ジョブ管理部４０６は、受信した印刷リクエストに基づいてジョブ情報６００を作成し、データベース３０１に保存する機能でもある。
【００４０】
プリンター管理部４０７は、プリンターＡ１０４に関する情報（後述のプリンター情報６１０）を管理し、印刷ジョブ管理部４０６に対してプリンター情報６１０を提供する機能である。
【００４１】
変換サーバー４０３は、印刷データ管理部４０８とデータ変換部４０９を有する。印刷データ管理部４０８は、制御サーバー４０２からの印刷データ変換リクエストに基づいて、ストレージサーバー１０２から文書データをダウンロードする機能である。データ変換部４０９は、印刷データ管理部４０８がダウンロードした文書データを印刷データに変換する機能である。さらに印刷データ管理部４０８は、データ変換部４０９で作成された印刷データファイルを、生成完了した印刷データファイル数分の印刷データファイルＵＲＬをストレージサーバー１０２に作成する。そして、印刷データ管理部４０８は、そのＵＲＬを記載したインデックスファイルを作成する。以上が、プリントサーバー１０１が有する機能の説明である。
【００４２】
＜プリンターのソフトウェア構成＞
図４（ｂ）を用いて、プリンターＡ１０４とプリンターＢ１０５のソフトウェア構成図を説明する。プリンターＡ１０４とプリンターＢ１０５のソフトウェア構成は同じなので、ここではプリンターＡ１０４を例に説明する。
【００４３】
プリンターＡ１０４の各種機能は記憶装置２４０に記憶されており、ＣＰＵ２３１によってＲＡＭ２３３にロードされ実行される。プリンターＡ１０４のソフトウェア構成とともに、リクエストを受信した際のプリンターＡ１０４の各機能の動作を説明する。
【００４４】
プルプリントアプリケーション３０３は、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）４１０で動作するアプリケーションソフトである。プルプリントコントローラ４１４は、プルプリントアプリケーション３０３全体の動作管理を行う。各部への動作指示等はプルプリントコントローラ４１４を介して実行される。
【００４５】
リクエスト受信部４１１は、Ｗｅｂブラウザ３０２から印刷リクエストを受信する機能であり、受信した印刷リクエストに基づいて印刷リクエスト情報を印刷データ取得部４１２に送信する。印刷リクエスト情報にはジョブＩＤ６０１とプリンターＩＤ６０５が含まれる。印刷データ取得部４１２は、印刷リクエスト情報に基づいて印刷データを取得したり、認証サーバー１０３から取得した認可トークンを印刷キュー情報６３０として管理する機能である。
【００４６】
認証問い合わせ部４１３は、認証サーバー１０３が認めるクライアント証明書を管理する機能である。その証明書を用いて認証問い合わせ部４１３は、認可サーバー問い合わせ部４０５から認可トークンを取得する。
【００４７】
印刷制御部４１５は印刷中、仮想マシン４１０を介して印刷装置制御部３０４に印刷ジョブの状態を問い合わせる機能である。印刷ジョブ送信部４１６は、印刷データ取得部４１２から取得した印刷データを後述の送信バッファストリームに保持し、その印刷データを印刷装置制御部３０４に送信する機能である。印刷装置制御部３０４は、印刷データを用いて印刷を実行するコントローラである。
【００４８】
ネットワークインタフェース部４１７は、印刷装置制御部３０４と印刷ジョブ送信部４１６との間の印刷データの受送信を仲介する機能である。以上が、プリンターの機能と、リクエスト受信時の各種機能の動作である。
【００４９】
＜各種情報について＞
図６を用いて各種サーバーで管理される情報について説明する。ジョブ情報６００は印刷ジョブ管理部４０６で作成され、データベース３０１で管理される。ジョブ情報６００には具体的に、印刷ジョブを識別するジョブＩＤ６０１と、文書情報６２０の文書ＩＤ６２１に対応した文書ＩＤ６０２と、認証トークンに紐づくユーザー名６０３と、印刷の受付日時６０４とプリンター情報６１０のプリンターＩＤ６１２に対応したプリンターＩＤ６０５と、インデックスファイルＵＲＬ６０６を含む。
【００５０】
プリンター情報６１０はプリンター管理部４０７で管理される。プリンター情報６１０には具体的に、プリンター名６１１、プリンターを識別するプリンターＩＤ６１２、Ｗｅｂブラウザ３０２がプリンターＡ１０４に印刷リクエストを送信するためのプリンターＵＲＬ６１３、構成情報６１４、印刷データを扱える圧縮方式を示す圧縮方法６１５を含む。構成情報６１４は、印刷設定画面５２０において印刷設定５２１の項目として表示される、両面機能やカラー機能等のプリンターＡ１０４の機能を指す。
【００５１】
文書情報６２０はデータベース３０１で管理される。文書情報６２０には、文書データを識別する文書ＩＤ６２１、文書名６２２、認証トークンに紐づくユーザー名６２３、ストレージサーバー１０２に文書をアップロードするための文書ＵＲＬ６２４、ステータス６２５を含む。文書ＵＲＬ６２４には文書ＩＤ６２１が含まれる。また、ステータス６２５は「受信中」「待機中」「印刷待ち」「印刷中」「正常終了」「エラー終了」「不明終了」等の各ステータスを示す情報である。
【００５２】
印刷キュー情報６３０は印刷ジョブ取得部４１２で管理される。印刷キュー情報６３０には、ジョブＩＤ６３１、インデックスファイルＵＲＬ６３２、認可トークン６３３、プリンターＩＤ６３４を含む。
【００５３】
＜ストレージサーバーへの文書データの格納処理＞
ストレージサーバー１０２に文書データを格納する処理について説明する。プリントサーバー１０１のＷｅｂサーバー４０１は、プリンターＡ１０４やプリンターＢ１０５または、Ｗｅｂブラウザ３０２から文書データの入稿リクエストを受信する。Ｗｅｂサーバー４０１のリクエスト受付部４０４が入稿リクエストを受信すると、認証サーバー問い合わせ部４０５が認証サーバー１０３に対し認証トークンの検証リクエストを送信する。入稿リクエストに含まれた認証トークンの正当性が確認されると、リクエスト受付部４０４は制御サーバー４０２に対して入稿リクエストを送信する。
【００５４】
制御サーバー４０２の印刷ジョブ管理部４０６が入稿リクエストを受信すると、文書情報６２０を作成しデータベース３０１に保存する。文書情報６２０に含まれる文書ＵＲＬ６２４には文書ＩＤ６２１が含まれる。印刷ジョブ管理部４０６は、文書情報６２０のステータス６２５を「受信中」に変更し、文書ＵＲＬ６２４をＷｅｂサーバー４０１に送信する。そしてＷｅｂサーバー４０１が入稿リクエストの送信元に対し文書ＵＲＬ６２４を送信する。
【００５５】
入稿リクエストの送信元は、文書ＵＲＬ６２４で特定されるストレージサーバー１０２の入稿先に対して文書データをアップロードする。文書データがアップロードされると、プリントサーバー１０１にアップロード完了通知が送信される。プリントサーバー１０１のＷｅｂサーバー４０１が完了通知を受信すると、制御サーバー４０２は文書情報６２０のステータス６２５を「待機中」に変更する。以上が、ストレージサーバー１０２に文書データを格納する処理である。
【００５６】
＜Ｗｅｂブラウザ３０２を介した印刷リクエストの送信処理＞
図５を用いて、プリントサーバー１０１のＷｅｂサーバー４０１によって作成され、クライアント端末Ａ１０９のＷｅｂブラウザ３０２に表示されるＷｅｂ画面と、そのＷｅｂ画面を介して実行される印刷リクエストの送信処理について説明する。
【００５７】
Ｗｅｂブラウザ３０２からプリントサーバー１０１に文書一覧リクエストが送信されると、プリントサーバー１０１は文章情報６２０を用いて文書一覧画面５１０を作成し、Ｗｅｂブラウザ３０２に送信する。文書一覧画面５１０の一例を図５（ｂ）に示す。文書一覧画面５１０は文書選択チェックボックス５１１、文書名５１２、ステータス５１３、印刷ボタン５１４を含む。ステータス５１３は文書情報６２０のステータス６２５に対応する。文書選択チェックボックス５１１は印刷する文書を選択するチェックボックスであり、複数の文書を選択できる形態でも良く、印刷対象の文書を選択する形態については問わない。Ｗｅｂブラウザ３０２が印刷ボタン５１４の押下を検知すると、文書選択チェックボックス５１１が選択された文書の文書情報がプリントサーバー１０１に送信される。
【００５８】
文書情報を受信したプリントサーバー１０１はプリンター情報６１０を用いて印刷設定画面５２０を作成し、Ｗｅｂブラウザ３０２に送信する。印刷設定画面５２０の一例を図５（ｃ）に示す。印刷設定画面５２０は印刷設定５２１の設定画面であり、プリンター名５２４は印刷を行うプリンターの名称である。
【００５９】
Ｗｅｂブラウザ３０２は、変更ボタン５２２の押下を検知するとプリントサーバー１０１に対してリクエストを送信する。リクエストを受信したプリントサーバー１０１は、プリンター情報６１０を用いてプリンター一覧画面５３０を作成し、Ｗｅｂブラウザ３０２に送信する。プリンター一覧画面５３０の一例を図５（ｄ）に示す。プリンター一覧画面５３０は、プリンター選択ラジオボタン５３１、プリンター名５３２、変更ボタン５３３を含む。Ｗｅｂブラウザ３０２が変更ボタン５３３の押下を検知すると、プリンター選択ラジオボタン５３１で選択されたプリンター情報をプリントサーバー１０１へ送信する。
【００６０】
プリントサーバー１０１は、印刷設定画面５２０のプリンター名５２４をプリンター選択ラジオボタン５３１が選択されていたプリンター名に更新し、更新された印刷設定画面５２０をＷｅｂブラウザ３０２に送信する。つまり、印刷設定画面５２０とプリンター一覧画面５３０によって、ユーザーが所望するプリンターに変更、選択することができる。
【００６１】
印刷設定画面５２０においてＷｅｂブラウザ３０２が印刷ボタン５２３の押下を検知すると、印刷設定５２１と、プリンター名５２４と、文書選択チェックボックス５１１で選択されていた文書の文書情報とがプリントサーバー１０１に送信される。印刷設定画面５２０には、文書一覧画面５１０で選択された文書情報を隠しパラメータとして画面に保持しているものとする。
【００６２】
以上がＷｅｂブラウザ３０２を介してプリントサーバー１０１に印刷リクエストを送信する処理である。
【００６３】
＜プリンターとストレージサーバー間の通信方式の仕組み＞
図８を用いて、プリンターとストレージサーバー間の通信方式の仕組みについて説明する。図８は、プルプリントアプリケーション３０３の印刷データ取得部４１２がストレージサーバー１０２から印刷データファイルを取得しながら、印刷ジョブ送信部４１６が印刷装置制御部３０４に１つの通信セッションで印刷データファイルを送信する概念図である。通信セッションは、ホスト間でやり取りされるＴＣＰコネクションを束ねたものを称し、通信が開始されてから終了するまでの通信接続をいう。
【００６４】
本実施例では、データの送信先や送信順序が保証されている通信方式であるストリーム型通信でストレージサーバー１０２とプルプリントアプリケーション３０３、印刷装置制御部３０４の通信を実現する。ストリーム（または通信ストリーム）は、通信セッションでやり取りされるデータの移動をオブジェクト化したものであり、データの流れを指す。図８を用いて具体的に説明する。
【００６５】
プルプリントアプリケーション３０３はプリントサーバー１０１から受信した印刷データを印刷装置制御部３０４に送信する。印刷データを送信するためには、プルプリントアプリケーション３０３と印刷装置制御部３０４との間で、通信ポートを介して通信セッションを確立する必要がある。確立した通信セッションで印刷データを受送信すれば、もともと一つの印刷データを１つの印刷ジョブとして処理することができる。しかし、通信セッションが切断されると、同じ印刷データであっても別の印刷ジョブとして処理されてしまう。そこで本実施例では図８に示す通信方法を用いる。
【００６６】
まず、プリントサーバー１０１は印刷データ変換が実行され次第、生成された印刷データを印刷データファイルとしてストレージサーバー１０２にアップロードする。ストレージサーバー１０２にアップロードされた印刷データファイルを、図中では「印刷データファイル（１）」、「印刷データファイル（２）」で示す。
【００６７】
プルプリントアプリケーション３０３は印刷装置制御部３０４に対し、１つの通信セッションで印刷データファイル（１）、（２）を送信する。その際、プルプリントコントローラ４１４と印刷装置制御部３０４は予めプリンター通信ストリーム８０２を実現するための通信セッションを確立し、印刷データファイル取得通信ストリーム８０１とで一つの通信ストリームを維持する。
【００６８】
通信ストリームの維持とは、ホストであるプルプリントコントローラ４１４とストレージサーバーとの間で確立された通信セッション（ＴＣＰコネクション）と、プルプリントコントローラ４１４と印刷装置制御部３０４の間で確立された通信セッションとが、連続した通信ストリームを実現している状態を指す。前者の通信セッションを第一の通信セッションと称し、後者を第二の通信セッションと称する。ＴＣＰコネクションの確立は、ホスト上の通信ポート間でコネクション確立の許可依頼と許可受領のやりとりすることで実現する。第一の通信セッションと第二の通信セッションとの間も同様に、ＴＣＰコネクションが確立されている。
【００６９】
印刷データファイル取得通信ストリーム８０１は、プリンターＡ１０４の印刷データ取得部４１２と、ストレージサーバー１０２の間の通信である。具体的にはインターネットを介した通信であり、通信プロトコルはＨＴＴＰＳ（Ｈｙｐｅｒ  Ｔｅｓｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ）である。
【００７０】
一方のプリンター通信ストリーム８０２は、印刷ジョブ送信部４１６と印刷装置制御部３０４のネットワークインタフェース部４１７の間の通信である。具体的には、プリンターＡ１０４から異なる通信ポートのプリンターＡ１０４へのローカルネットワーク通信であり、通信プロトコルはＲＡＷプロトコルである。
【００７１】
印刷ジョブ送信部４１６は印刷データ取得部４１２から受信した印刷データファイルを、ネットワークインタフェース部４１７を介して印刷装置制御部３０４に送信する。その際、印刷ジョブ送信部４１６は、送信バッファストリームに印刷データの一部を保存することで、ストレージサーバー１０２から印刷データファイルを受信しながら印刷装置制御部３０４にデータの一部を送信する。ここでデータの一部とは、印刷データファイルよりもさらに分割したパケット単位のデータであり、送信バッファストリームに一時的に保存される。このように、プルプリントアプリケーション３０３が印刷装置制御部３０４に印刷データを送信することで、時間のかかるプリントエンジン２３８の事前処理の開始を早めることが可能となり、プリンターＡ１０４のファーストプリントを早く実行させることができる。印刷ジョブ送信部４１６は、ファーストプリントを早くするためにストレージサーバー１０２で保持されている印刷データファイルを受信しながら、印刷装置制御部３０４に対して１つの通信セッションで印刷データを送信する。
【００７２】
プルプリントアプリケーション３０３からストレージサーバー１０２への通信エラー等が発生し、アクセスができなくなった場合の通信方式について図８を用いて説明する。その際、後述の処理により、ストレージサーバー１０２にアップロードされている印刷データファイルのうち、印刷データファイル（２）が代替ストレージサーバー１１１にアップロードされているものとする。印刷データファイル（２）は通信エラーにより、プリンターが取得できなかった印刷データファイルであるものとする。
【００７３】
エラーが発生するとプリンター１０４は、プリントサーバー１０１からインデックスファイルを取得し、代替ストレージサーバー１１１に対し通信セッションを確立する。確立した通信セッションに対し印刷データ取得部４１２は、インデックスファイルに記載の印刷データファイルを取得するための印刷データファイル取得通信ストリーム８０３を実現する。プルプリントコントローラ４１４は、ストレージサーバー１０２に対する通信ストリームは確立したまま、通信ストリームを印刷データファイル取得通信ストリーム８０３に置き換え、既存のプリンター通信ストリーム８０２につなぎ変えて１つの通信ストリームとして維持する。通信ストリームのつなぎ変えとは具体的に、代替ストレージサーバー１１１とプルプリントアプリケーション３０３とで通信セッション（第三の通信セッション）を確立し、ストレージサーバー１０２とプルプリントアプリケーション３０３との通信セッションを切断することである。セッションの切断は、双方のホストの間でＴＣＰコネクションの終了申請と終了受領のやりとりを行うことで実現する。印刷データファイル取得通信ストリーム８０１とプリンター通信ストリーム８０２との間のつなぎ変えの場合も同様である。
【００７４】
以上がストレージサーバーとプリンター間の通信方式の仕組みである。図８の処理によりファーストプリントを早くし、且つ印刷データファイルの取得でエラーが発生した場合でも、プリンターＡ１０４に対して１つの印刷ジョブとして印刷処理を実行できる。
【００７５】
＜印刷開始フロー＞
図９を用いて、本発明の実施形態に係る印刷開始処理を説明する。
【００７６】
Ｗｅｂブラウザ３０２は印刷リクエストをプリントサーバー１０１に送信する（Ｓ９０１）。印刷リクエストには文書ＩＤ６２１とプリンターＩＤ６１２が含まれる。Ｓ９０１の印刷リクエストは、印刷ボタン５２３（図５（ｃ））の押下をきっかけにプリントサーバー１０１に送信される。
【００７７】
プリントサーバー１０１の制御サーバー４０２が印刷リクエストを受信すると、制御サーバー４０２の印刷ジョブ管理部４０６は印刷リクエストに基づいて、ジョブ情報６００を作成し、データベース３０１に保存する。
【００７８】
印刷リクエストに含まれる文書ＩＤ６２１は、文書一覧画面５１０の文書名５１２に対応した文書情報６２０の文書名６２２に紐づく。印刷リクエストに含まれるプリンターＩＤ６１２は印刷設定画面５２０のプリンター名５２４に対応し、プリンター情報６１０のプリンター名６１１に紐づく。
【００７９】
印刷ジョブ管理部４０６は、プリンター管理部４０７からプリンターＩＤ６１２に対応したプリンター情報６１０を取得し、構成情報６１４、圧縮方式６１５と文書ＵＲＬ６２４と、ジョブＩＤ６０１を変換サーバー４０３に送信して、印刷データへの変換を指示する。そして、変換サーバー４０３において印刷データへの印刷データ変換処理が開始される（Ｓ９０１．５）。
【００８０】
プリントサーバー１０１は印刷スクリプト画面５４０（図５（ｅ））をＷｅｂブラウザ３０２に送信する（Ｓ９０２）。印刷スクリプト画面５４０は、プリンターＵＲＬ６１３とジョブＩＤ６０１とプリンターＩＤ６０５を印刷リクエストコマンドとして含むスクリプトのことである。この印刷スクリプト画面５４０は、Ｗｅｂブラウザの開発ツールモード等で閲覧可能な画面である。
【００８１】
プルプリントアプリケーション３０３のリクエスト受信部４１１は、Ｗｅｂブラウザ３０２から印刷リクエストを受信すると、印刷データ取得部４１２に印刷リクエスト情報を通知する。印刷リクエスト情報にはジョブＩＤ６０１とプリンターＩＤ６０５が含まれる（Ｓ９０３）。プルプリントアプリケーション３０３は、印刷リクエスト情報に含まれるジョブＩＤ６０１とプリンターＩＤ６０５を、印刷キュー情報６３０のジョブＩＤ６３１とプリンターＩＤ６３４として保持する（Ｓ９０４）。
【００８２】
その際、印刷データ取得部４１２は、認証サーバー問い合わせ部１０３に認可トークンの発行依頼を送信する。認証サーバー問い合わせ部１０３は、認証サーバー１０３に対し認可トークンの発行依頼を送信する。その際、認証サーバー問い合わせ部４１３は、認証サーバー１０３が認める証明書を認証サーバー１０３に送信する。認証サーバー１０３では、証明書を検証し正当性が確認できた場合に認可トークンを発行し、認証サーバー問い合わせ部４１３に認可トークンを送る。認証サーバー問い合わせ部１０３は、認可トークンを印刷データ取得部４１２に送り、印刷データ取得部４１２はこの認可トークンを印刷キュー情報６３０の認可トークン６３３として保持する。
【００８３】
プルプリントアプリケーション３０３はＷｅｂブラウザ３０２に対して、印刷リクエストが成功した旨をレスポンスし（Ｓ９０５）、Ｗｅｂブラウザ３０２はプリントサーバー１０１にその旨を通知する（Ｓ９０６）。ここでの成功とは具体的に、印刷リクエストを受信したプルプリントアプリケーション３０３で印刷準備処理が完了したことを意味し、その旨をプルプリントアプリケーション３０３がＷｅｂブラウザ３０２に通知する。
【００８４】
プリントサーバー１０１のＷｅｂサーバー４０１を介して印刷ジョブ管理部４０６が印刷リクエスト完了通知を受信すると、文書情報６２０のステータス６２５を「待機中」から「印刷待ち」に変更する（Ｓ９０７）。
【００８５】
Ｗｅｂブラウザ３０２はプリントサーバー１０１に文書一覧リクエストを送信する（Ｓ９０８）。プリントサーバー１０１は文書情報６２０に基づいて文書一覧画面５１０を作成し、Ｗｅｂブラウザ３０２に送信する（Ｓ９０９）。作成された文書一覧画面５１０におけるステータス５１３（図５（ｂ））は「印刷待ち」となる。以上が印刷処理をプリンター１０４で開始する際のフローである。
【００８６】
＜印刷データへの変換処理とインデックスファイルの作成処理＞
印刷データへのデータ変換処理とインデックスファイルの作成処理について説明する。これらの処理はプリントサーバー１０１が主体となって実行される。
【００８７】
変換サーバー４０３の印刷データ管理部４０８は、制御サーバー４０２から印刷データ変換リクエストを受信すると、ストレージサーバー１０２の文書ＵＲＬ６２４から文書データをダウンロードする。そして、データ変換部４０９は、構成情報６１４を加味しながら、文書データを印刷データに変換する。データ変換部４０９は、文書データサイズに応じて複数の印刷データをファイル形式で作成する。印刷データファイルをアップロードする処理については、図１１で後述する。なお、ファイル形式の印刷データを印刷データファイルと称するが、印刷データと称した場合ファイル形式を含む全ての形式の印刷データを指すものとする。
【００８８】
ある程度の数の印刷データファイルをデータ変換部４０９が作成すると、印刷データ管理部４０８は、生成された印刷データファイルの印刷データファイルＵＲＬを作成する。印刷データファイルＵＲＬで特定される格納先に印刷データファイルがアップロードされる。その際、印刷データ管理部４０８は、圧縮方式６１５に従って印刷データファイルのフォーマットを変換し、ストレージサーバー１０２にアップロードする。
【００８９】
印刷データ管理部４０８は印刷データファイルＵＲＬが記載されたインデックスファイルを作成する。作成されたインデックスファイルは、インデックスファイルＵＲＬ６０６で特定されるストレージサーバー１０２上の格納先にアップロードされる。
【００９０】
印刷データ管理部４０８は、インデックスファイルＵＲＬ６０６を制御サーバー４０２に送信する。制御サーバー４０２はデータベース３０１のジョブ情報６００にインデックスファイルＵＲＬ６０６を登録する。データ変換部４０９は印刷ジョブに含まれる印刷データファイルが作成され次第、印刷データファイルＵＲＬとそのＵＲＬを記載したインデックスファイルを作成する。以上が、印刷データへの変換処理とインデックスファイルの作成処理である。
【００９１】
＜印刷処理フロー＞
図１０を用いて、本発明の実施例に係るプリントサーバー１０１、プルプリントアプリケーション３０３、印刷装置制御部３０４における印刷処理について説明する。
【００９２】
Ｓ９０１で印刷リクエストを受信したプリントサーバー１０１は、文書データを印刷データに変換する処理を開始する（Ｓ９１１）。
【００９３】
プリントサーバー１０１は、データ変換処理で生成された印刷データファイルを随時ストレージサーバー１０２にアップロードする（Ｓ９１２）。今回は印刷データファイル（１）がアップロードされたものとする。
【００９４】
プリントサーバー１０１はインデックスファイルを作成し、ストレージサーバー１０２にアップロードする（Ｓ９１３）。今回は、Ｓ９１２で印刷データファイル（１）がアップロードされたため、それに対応するインデックスファイル７０１が生成される。図１０では、印刷データファイル（１）に対応するインデックスファイル（１）（図７の７０１）がアップロードされる。
【００９５】
印刷リクエストを受信したプルプリントアプリケーション３０３の印刷データ取得部４１２はプリントサーバー１０１に対し、インデックスファイル（１）の取得先情報であるインデックスファイルＵＲＬの取得要求を送信する（Ｓ９１４）。その際、ジョブＩＤ６３１、プリンターＩＤ６３４、認可トークン６３３も送信される。プリントサーバー１０１は、文書情報６２０のステータス６２５を「印刷中」に変更する（Ｓ９１５）。
【００９６】
プリントサーバー１０１は受信したジョブＩＤ６３１とプリンターＩＤ６３４を用いて、ジョブ情報６００からインデックスファイルＵＲＬ６０６を特定し、インデックスファイルＵＲＬ６０６をプルプリントアプリケーション３０３に送信する（Ｓ９１６）。
【００９７】
プルプリントアプリケーション３０３の印刷データ取得部４１２はインデックスファイルＵＲＬ６０６を、印刷キュー情報６３０としてインデックスファイルＵＲＬ６３２に保持する。
【００９８】
このとき、データ変換処理（Ｓ９１１）がまだ開始されておらず、インデックスファイルＵＲＬ６０６がまだ作成されていない場合は、Ｓ９１６においてビジーレスポンスがプルプリントアプリケーション３０３に送信される。ビジーレスポンスを受信したプルプリントアプリケーション３０３はインターバル後、再度インデックスファイルＵＲＬ取得要求を送信する。プルプリントアプリケーション３０３がインデックスファイルＵＲＬ６０６を取得するまで、定期的にインデックスファイルＵＲＬ取得要求が送信される。
【００９９】
プルプリントアプリケーション３０３はストレージサーバー１０２に対してインデックスファイルを取得するための通信セッションを確立し、印刷データファイル取得通信ストリーム８０１を作成する（Ｓ９１９）。
【０１００】
通信セッションが確立された後、プルプリントアプリケーション３０３の印刷データ取得部４１２はインデックスファイルＵＲＬ６３２にアクセスし、ストレージサーバー１０２からインデックスファイル（１）をダウンロードする（Ｓ９２０）。尚、Ｓ９１１のデータ変換処理と、Ｓ９２１の印刷データファイルの取得処理は非同期で行われる。また今回は、データ変換処理が印刷データファイルの取得処理よりも先に実行される形態を示したが、プリントサーバー１０１に送信される印刷リクエストが多い場合は、印刷リクエストに基づいて印刷データ変換処理に時間がかかるため、印刷データ取得処理がデータ変換処理よりも先に実行されることもある。
【０１０１】
Ｓ９１２〜Ｓ９１３の処理で、印刷データファイル（１）とインデックスファイル（１）がアップロードされた後、プリントサーバー１０１は新たな印刷データファイル（２）を作成し、ストレージサーバー１０２にアップロードする（Ｓ９１７）。そして、更新されたインデックスファイル７０１（図７の７０２）がストレージサーバー１０２にアップロードされる（Ｓ９１８）。
【０１０２】
一方、Ｓ９２０でインデックスファイル（１）（図７の７０１）をダウンロードしたプルプリントアプリケーション３０３は、ストレージサーバー１０２からの印刷データファイル（１）のダウンロードを開始する（Ｓ９２１）。その際、印刷データ取得部４１２は、Ｓ９２０で取得したインデックスファイル７０１に記載の印刷データファイルＵＲＬを用いて印刷データファイルを取得する。
【０１０３】
ここで図７を用いてインデックスファイルについて説明する。インデックスファイルのｅｎｄフラグ７０３がｆａｌｓｅの場合は、プリントサーバー１０１におけるデータ変換処理が途中であり、インデックスファイルに印刷データファイルＵＲＬが更に追加されることを示す。Ｓ９２０で取得されたインデックスファイル７０１にはまだ、印刷データファイル（２）のＵＲＬが記載されていないため、ｅｎｄフラグ７０３はｆａｌｓｅである。
【０１０４】
ｅｎｄフラグ７０３がｆａｌｓｅである場合、印刷データ取得部４１２はインデックスファイル７０１を用いて印刷データファイル（１）を取得した後、Ｓ９２０の処理を繰り返す（図１０では不図示）ことで、インデックスファイルをストレージサーバー１０２から再度取得する。
【０１０５】
ｅｎｄフラグ７０３がｔｒｕｅである場合は、データ変換処理が完了したことを示し、印刷ジョブ送信部４１６はプリンター通信ストリーム８０２をクローズする。つまり、Ｓ９１８でアップロードされたインデックスファイル７０２をプルプリントアプリケーション３０３が取得し（不図示）、取得したインデックスファイル７０２のｅｎｄフラグ７０３がｔｒｕｅであることから、プリンター通信ストリーム８０２がクローズする。
【０１０６】
図１０の説明に戻る。プルプリントアプリケーション３０３は印刷装置制御部３０４への通信セッションを確立し、プリンター通信ストリーム８０２を作成する（Ｓ９２２）。
【０１０７】
プルプリントアプリケーション３０３は、印刷データファイル取得通信ストリーム８０１とプリンター通信ストリーム８０２をつなげて１つの通信ストリームとし、取得した印刷データファイル（１）を印刷装置制御部３０４に送信する（Ｓ９２３）。Ｓ９２３における印刷装置制御部３０４への送信とは、プリンター通信ストリーム８０２に印刷データをＷｒｉｔｅすることで実現する。
【０１０８】
印刷データファイル（１）を受信した印刷装置制御部３０４は印刷処理を実行する（Ｓ９２６）。
【０１０９】
Ｓ９２１において印刷データファイル（１）はダウンロードできた一方、印刷データファイル（２）がダウンロードできなかった場合の処理をＳ９２４以降で説明する。
【０１１０】
プルプリントアプリケーション３０３からストレージサーバー１０２への通信が通信不可状態となり印刷データファイルのダウンロードがエラーとなった場合（Ｓ９２４）、プルプリントアプリケーション３０３はプリントサーバー１０１に通信エラーの旨を通知する（Ｓ９２５）。通信エラーは、印刷データのダウンロードのタイミングに限定されず、インデックスファイル７０２の取得のタイミングで発生する形態でもよい。
【０１１１】
通信エラーをプリントサーバー１０１に通知する際には、取得済みファイル数が通知される。例えば、９０ファイル目の印刷データファイルのダウンロードでエラーが発生した場合、ダウンロードに成功している印刷データファイルのファイル数（８９ファイル）が通知される。本実施例では、プリンター側で取得済みの印刷データファイルの数を通知する形態としたがそれに限定されない。例えば、通信エラーにより取得できなかった印刷データファイルのファイル数（９０ファイル目）を通知する形態でもよく、プリントサーバー１０１で通信エラーが発生したファイル数を特定できる情報であれば、どのような形態でもよい。
【０１１２】
エラー通知を受信したプリントサーバー１０１の印刷データ管理部４０８は、プリンター１０４のロケーションからストレージサーバー１０２の代替先である代替ストレージサーバー１１１を決定する。そして、印刷データ管理部４０８は、受信した取得済みファイルとファイル数に基づいて未取得の印刷データファイルとそのファイル数と特定し、代替ストレージサーバー１１１に未取得ファイルをアップロードする。
【０１１３】
ここで代替ストレージサーバー１１１の決定方法を、図１２を用いて説明する。本処理は、プリントサーバー１０１が主体となって実行される処理であり、Ｓ９２５のエラー通知の受信をきっかけに開始されるものとする。
【０１１４】
プリントサーバー１０１はストレージサーバー１０２の稼働状況を確認する（Ｓ１１０１）。プリントサーバー１０１は、ストレージサーバー１０２がプリンターＡ１０４と通信可能であるかを判定する（Ｓ１１０２）。通信可能であると判定された場合は、引き続きストレージサーバー１０２を使用する（Ｓ１１０３）。ストレージサーバー１０２が通信可能でないと判定された場合は印刷データファイル（２）のみならず、Ｓ９１７以降で生成された印刷データファイルに対しても、ストレージサーバー１０２の稼働状況や通信状況が改善されるまで、代替ストレージサーバー１１１が使用される（Ｓ１１０４）。
【０１１５】
プリントサーバー１０１は、ストレージサーバーの稼働状況が改善されたかを定期的に判定する（Ｓ１１０５）。Ｓ１１０５の判定を行うタイミングは予め設定された時間で行われても良く、形態は特に問わない。
【０１１６】
改善されていないと判定された場合には、改善されたと判定されるまでＳ１１０４とＳ１１０５の処理を繰り返す。一方、Ｓ１１０５でストレージサーバーが改善されたと判定された場合には、次の印刷ジョブ、または代替ストレージサーバー１１１にまだアップロードされていない印刷データファイルから、元のストレージサーバー１０２を使用する（Ｓ１１０３）。
【０１１７】
図１０の説明に戻る。未取得ファイル（印刷データファイル（２））をアップロードしたプリントサーバー１０１は、代替ストレージサーバー１１１から未取得ファイルを取得するためのインデックスファイル（２）を作成する（Ｓ９２７）。その際のインデックスファイルの一例を７０４（図７）に示す。印刷データファイル（２）が未取得ファイルであるため、インデックスファイル７０４には印刷データファイル（２）の印刷データファイルＵＲＬが記載されている。未取得の印刷データファイル（２）はストレージサーバー１０２から代替ストレージサーバー１１１に移動したため、インデックスファイル７０４の印刷データファイル（２）のＵＲＬは、インデックスファイル７０２の印刷データファイル（２）のＵＲＬとは異なる。作成される印刷データファイル（２）のＵＲＬは、代替ストレージサーバー１１１における印刷データファイルのファイルパスと、代替ストレージサーバー１１１のエンドポイントを結合することで作成される。
【０１１８】
印刷データファイルのＵＲＬは、プリントサーバー１０１がストレージサーバー１０２（または１１１）に対しＵＲＬの発行依頼を送信することで、ストレージサーバーで発行される。発行されたＵＲＬをプリントサーバー１０１が取得し、管理する。ＵＲＬを発行する際のアルゴリズム等はストレージサーバーで予め設定されている。本実施例では説明の都合上、プリントサーバー１０１によるＵＲＬ発行依頼や、ストレージサーバーからのＵＲＬの取得処理については簡略化して、「プリントサーバー１０１がＵＲＬを発行する」と記載している。
【０１１９】
プリントサーバー１０１の印刷データ管理部４０８は、代替ストレージサーバー１１１に印刷データファイル（２）とインデックスファイル（２）をアップロードする（Ｓ９２８〜Ｓ９２９）。
【０１２０】
プリントサーバー１０１の印刷データ管理部４０８からプルプリントアプリケーション３０３に対して、インデックスファイル（２）のインデックスＵＲＬ７０４が通知される（Ｓ９３０）。Ｓ９３０の処理は、Ｓ９２５におけるプルプリントアプリケーションのエラー通知に対するレスポンスに相当する。
【０１２１】
プルプリントアプリケーション３０３は代替ストレージサーバー１１１に対し、インデックスファイル７０４を取得するための通信セッションを確立し、印刷データファイル取得通信ストリーム８０３を作成する（Ｓ９３１）。
【０１２２】
プルプリントアプリケーション３０３は代替ストレージサーバー１１１からインデックスファイル（２）をダウンロードする（Ｓ９３２）。プルプリントアプリケーション３０３はインデックスファイル（２）に基づいて、代替ストレージサーバー１１１から印刷データファイル（２）をダウンロードする（Ｓ９３３）。
【０１２３】
プルプリントアプリケーション３０３は、取得した印刷データファイル（２）をプリンター通信ストリーム８０２にＷｒｉｔｅする（Ｓ９３４）。
【０１２４】
インデックスファイル（２）で特定される印刷データファイルが印刷装置制御部３０４に送信された後、プルプリントアプリケーション３０３は、プリンター通信ストリーム８０２をクローズする（Ｓ９３６）。印刷装置制御部３０４は印刷完了通知をプルプリントアプリケーション３０３に送信する（Ｓ９３７）。プルプリントアプリケーション３０３は、ストレージサーバー１０２への通信セッションもクローズする（Ｓ９３５）。尚、Ｓ９３５とＳ９３６の処理は、Ｓ９３４の処理をきっかけに実行される。
【０１２５】
Ｓ９３７で完了通知を受信したプルプリントアプリケーション３０３は、プリントサーバー１０１に対して印刷完了通知を送信する（Ｓ９３８）。プリントサーバー１０１は、文書情報６２０のステータス６２５を「正常終了」に変更する。Ｓ９３７の完了通知がエラーである場合は、プリントサーバー１０１はステータス６２５を「エラー終了」に変更する（Ｓ９３９）。以上が、プリントサーバー１０１、プルプリントアプリケーション３０３、印刷装置制御部３０４における印刷処理である。
【０１２６】
＜印刷データファイルのアップロード処理＞
図１１を用いて、変換サーバー４０３における印刷データファイルのアップロード処理における判断フローについて説明する。変換サーバー４０３はストレージサーバー１０２から文書データを取得する（Ｓ１００１）。変換サーバー４０３はデータ変換処理を実行する（Ｓ１００２）。データ変換処理を実行した結果、データ変換処理の対象となる文書データサイズが２５６ＫＢを上回ったか、または、データ変換処理の対象となる文書データが存在しないかを判定する（Ｓ１００３）。文書データサイズが２５６ＫＢを上回らず、データ変換対象となる文書データが存在すると判定された場合は、Ｓ１００２の処理に戻る。Ｓ１００３の処理における判定条件はこの限りではない。文書データサイズの閾値は任意の値でよく、データサイズでなく文書データのページ数を閾値にしてもよい。
【０１２７】
Ｓ１００３で文書データサイズが２５６ＫＢを上回った、または変換対象となる文書データが存在しないと判定された場合は、印刷データファイルＵＲＬを作成し、インデックスファイルに記載する（Ｓ１００４）。そして印刷データファイルをストレージサーバー１０２にアップロードする。これにより、文書データを構成する印刷データファイルのうち、一つ目の印刷データファイルがストレージサーバー１０２にアップロードされたことになる。
【０１２８】
データ変換処理の対象となる文書データがあると判断された場合（Ｓ１００５）、引き続きデータ変換処理を実行する（Ｓ１００６）。そして、文書データサイズが１ＭＢを上回ったか、または、文書データが存在しないかを判断する（Ｓ１００７）。文書データサイズが１ＭＢを上回ったか、または文書データが存在しないと判断された場合は、印刷データファイルのＵＲＬを作成し、インデックスファイルにそのＵＲＬを追記する（Ｓ１００８）。作成されたインデックスファイルと印刷データファイルはストレージサーバー１０２にアップロードされる。
【０１２９】
Ｓ１００７において文書データサイズが１ＭＢ以下である、または文書データが存在すると判定された場合は、Ｓ１００６の処理に戻る。Ｓ１００８においてストレージサーバー１０２へのアップロードが実行された後、印刷データ変換処理の対象となる文書データがないと判定された場合（Ｓ１００９）は、データ変換処理を終了する。Ｓ１００９において文書データが存在すると判定された場合は、Ｓ１００６の処理に戻る。
【０１３０】
以上のＳ１００５〜Ｓ１００９の処理により、２つ目以降の印刷データファイルがストレージサーバー１０２にアップロードされる。尚、Ｓ１００７における判定条件はこの限りではない。
【０１３１】
図１１では、１つ目の印刷データファイルをアップロードする際の閾値が、２つ目以降の印刷データファイルをアップロードする際の閾値よりも小さく設定される形態を示した。その理由は、１つ目の印刷データファイルをアップロードする際の閾値を低めに設定する事で、入稿された文書データのファーストプリントを早く実行するためである。また、今回は２つ目以降の印刷データファイルの閾値を「１ＭＢ」で統一しているが、作成されるタイミングが遅い印刷データファイルになるほど、Ｓ１００７における文書データサイズの閾値の挙げていく形態も可能である。
【０１３２】
以上が、変換サーバー４０３の印刷データ変換フローである。これによりプリントサーバー１０１は、変換されたデータを直ちにプリンターＡ１０４に送信することが可能となり、ファーストプリントを早くすることが可能となる。
【０１３３】
本実施例により、ファーストプリントを早くし、且つ完成した印刷ページファイルを用いて印刷処理を実行するとともに、プルプリントアプリケーション３０３が印刷装置制御部３０４に対し通信セッションを切断することなく印刷データを送信することができる。
【０１３４】
さらに、ファーストプリントを実現する印刷処理システムにおいて、プリンターが印刷データを取得する際にエラーが発生した場合でも継続して印刷処理を実行することができる。また、エラーにより接続先のストレージサーバーを変更しても、１つの印刷ジョブとして印刷処理を実行できる。
【０１３５】
［その他の実施例］
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３６】
１０１  プリントサーバー
１０２  ストレージサーバー
１１１  代替ストレージサーバー
３０３  プルプリントアプリケーション
３０４  印刷装置制御部
４０１  Ｗｅｂサーバー
４０２  制御サーバー
４０３  変換サーバー
【図１】
2019147315.tif 000003
【図２】
2019147315.tif 000004
【図３】
2019147315.tif 000005
【図４】
2019147315.tif 000006
【図５】
2019147315.tif 000007
【図６】
2019147315.tif 000008
【図７】
2019147315.tif 000009
【図８】
2019147315.tif 000010
【図９】
2019147315.tif 000011
【図１０】
2019147315.tif 000012
【図１１】
2019147315.tif 000013
【図１２】
2019147315.tif 000014