(57)【要約】【課題】  ＵＲＬに署名情報が付与されている印刷データファイルを再利用することで、ストレージサーバーのリソースを効率的に利用することを目的とする。【解決手段】  文書データの印刷処理を実行するための第一の印刷リクエストで指定される第一の条件と、前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であって第一の署名情報を含む取得先とを管理する管理手段と、新たに受信した第二の印刷リクエストで指定される第二の条件と、前記第一の条件とが同じであるかを判定する判定手段と、を有し、判定手段によって同じであると判定された場合、管理手段は、第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって再発行された第二の署名情報を含む取得先を管理することを特徴とする。【選択図】  図７
2019160057.tif 000002
【特許請求の範囲】
【請求項１】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーであって、
前記文書データの印刷処理を実行するための第一の印刷リクエストで指定される第一の条件と、前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であって第一の署名情報を含む取得先とを管理する管理手段と、
新たに受信した第二の印刷リクエストで指定される第二の条件と、前記第一の条件とが同じであるかを判定する判定手段と、
を有し、
前記判定手段によって同じであると判定された場合、
前記管理手段は、
前記第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって再発行された第二の署名情報を含む取得先を管理することを特徴とするプリントサーバー。
【請求項２】
前記判定手段により、前記第二の条件と前記第一の条件とが同じでないと判定された場合、
前記第二の印刷リクエストに基づいて新たな印刷データファイルを作成し、
前記管理手段は、
前記新たな印刷データファイルの取得先と、前記第二の条件とを管理することを特徴とする請求項１に記載のプリントサーバー。
【請求項３】
前記第一の条件は、
前記文書データを一意に識別する文書識別情報と、前記印刷データの印刷設定情報である印刷属性とを含み、
前記管理手段は、
前記文書識別情報と前記印刷属性とを用いて算出された第一のハッシュ値を管理し、
前記判定手段は、
前記第一のハッシュ値と、前記第二の印刷リクエストに含まれる文書識別情報と印刷設定情報とに基づいて算出された第二のハッシュ値とが同じであるかを判定することを特徴とする請求項１または２に記載のプリントサーバー。
【請求項４】
前記取得先は、
前記プリントサーバーからのリクエストに応じて、前記印刷データファイルを保存するストレージサーバーが発行したＵＲＬであって、前記ＵＲＬは前記ストレージサーバーで発行された署名情報を含み、
前記プリントサーバーは、
前記ＵＲＬを前記ストレージサーバーから取得する取得手段を更に有する請求項１乃至３のいずれか一項に記載のプリントサーバー。
【請求項５】
前記プリントサーバーは、
前記判定手段によって前記第一の条件と前記第二の条件とが同じであるかを判定した後に、
前記第一の署名情報が有効であるかを確認する第一の確認手段を更に有し、
前記第一の確認手段によって有効であると判定された場合、
前記管理手段は、
前記第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって前記第一の署名情報を含む取得先と、前記第二の条件とを関連付けて管理することを特徴とする請求項１乃至４のいずれか一項に記載のプリントサーバー。
【請求項６】
前記第一の確認手段によって前記第一の署名情報が有効でないと判定された場合、
前記管理手段は、
再発行された前記第二の署名情報を含む取得先と、前記第二の条件とを関連付けて管理することを特徴とする請求項５に記載のプリントサーバー。
【請求項７】
前記第一の条件に基づいて算出された第一のハッシュ値が前記プリントサーバーに登録された時刻であって、
前記第一の確認手段は、
現在時刻に対して前記時刻が所定の期間内であるかを確認することを特徴とする請求項５または６に記載のプリントサーバー。
【請求項８】
前記プリントサーバーは、
前記判定手段によって前記第一の条件と前記第二の条件とが同じであるかを判定した後に、
前記第一の印刷リクエストに基づいて作成された印刷データファイルがストレージサーバーに保存されているかを確認する第二の確認手段を更に有し、
前記第二の確認手段によって保存されていると確認された場合、
前記第二の確認手段により保存されていると確認された印刷データファイルを保存し直すことを特徴とする請求項１乃至７のいずれか一項に記載のプリントサーバー。
【請求項９】
前記印刷データファイルを取得するための取得先はインデックスファイルに記載されており、
前記管理手段は、
前記インデックスファイルを取得するための取得先であるＵＲＬを管理することを特徴とする請求項１乃至８のいずれか一項に記載のプリントサーバー。
【請求項１０】
前記インデックスファイルは、
前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であり前記第一の署名情報を含む取得先が記載された第一のインデックスファイルであって、
前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であり前記第二の署名情報を含む取得先が記載された第二のインデックスファイルであることを特徴とする請求項９に記載のプリントサーバー。
【請求項１１】
前記プリントサーバーは、
前記第二の署名情報を含む取得先が記載されたインデックスファイルの格納先を、前記第二の印刷リクエストの送信元に送信する送信手段を更に有する請求項１乃至１０のいずれか一項に記載のプリントサーバー。
【請求項１２】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーの制御方法であって、
前記文書データの印刷処理を実行するための第一の印刷リクエストで指定される第一の条件と、前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であって第一の署名情報を含む取得先とを管理する管理ステップと、
新たに受信した第二の印刷リクエストで指定される第二の条件と、前記第一の条件とが同じであるかを判定する判定ステップと、
を有し、
前記判定ステップによって同じであると判定された場合、
前記管理ステップは、
前記第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって再発行された第二の署名情報を含む取得先を管理することを特徴とするプリントサーバーの制御方法。
【請求項１３】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーとして機能させるためのプログラムであって、
前記文書データの印刷処理を実行するための第一の印刷リクエストで指定される第一の条件と、前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であって第一の署名情報を含む取得先とを管理する管理手段と、
新たに受信した第二の印刷リクエストで指定される第二の条件と、前記第一の条件とが同じであるかを判定する判定手段と、
を有し、
前記判定手段によって同じであると判定された場合、
前記管理手段は、
前記第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって再発行された第二の署名情報を含む取得先を管理することを特徴とするプリントサーバーとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードした印刷データをプリンターで印刷させるプリントサーバーと、その制御方法とプログラムに関する。
【背景技術】
【０００２】
近年、クラウドシステム上の仮想サーバーを用いて、クラウドサービスを提供するビジネスが展開されている。サービス内容としては例えば、データをファイル形式に保存するストレージサービスや、データベース機能を提供するデータベースサービスがある。
【０００３】
また、印刷システムを実現する際にも、クラウドシステム上の仮想サーバーを用いてプリントサービスやデータ変換サービスを提供する形態がある。その場合、顧客ごとにハードウェアのプリントサーバーを管理する必要がないというメリットがある。また、仮想サーバーの負荷に応じてコンピューティング・リソースを追加することが容易に行えるメリットがある。
【０００４】
このクラウドサービスの普及に伴い、プリンターがクラウドシステムからインターネットを介して印刷データを取得し、印刷を行うプルプリント環境が普及しつつある。プルプリント環境では、多くのコンピューティング・リソースを用いて文書データのデータ処理をクラウドシステムで分散処理するため、多くのクライアントからの要求を同時に処理することができる。クラウドシステムで印刷データを管理するためには、多種多様のプリンターが解釈可能なデータフォーマットに変換するデータ変換機能がクラウドシステム側で必要となる。データ変換機能は、クライアント端末のデータ変換ドライバでデータ変換を行う従来の機能を、クラウドシステム上で実現したものである。
【０００５】
さらに、データ変換処理で生成された印刷データを分割して、印刷データファイルを生成してストレージサーバーに配置する形態がある。夫々の印刷データファイルのＵＲＬを記載したインデックスファイルに基づいて、プリンターが印刷データを取得する。特開２０１７−３３１４３に開示されている画像形成装置のように、受信した印刷データファイルを用いてプリンターが印刷処理を実行することで、印刷開始（ファーストプリント）を早くすることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−３３１４３
【発明の概要】
【発明が解決しようとする課題】
【０００７】
クラウドシステムがデータ変換処理を実行する事で、クラウドシステムでは多くのコンピューティング・リソースが使用される。限られたリソースを効率的に使用する方法として、一度生成された印刷データを再利用する方法が考えられる。
【０００８】
また、印刷データが悪用されないよう、インデックスファイルに記載された印刷データファイルのＵＲＬには、有効期限が設定された署名情報が付与されている。つまり、印刷データを再利用しようとしても、印刷データファイルのＵＲＬの有効期限が切れた場合、印刷データを取得できない。
【０００９】
本願発明は、ＵＲＬに署名情報が付与されている印刷データファイルを再利用することで、ストレージサーバーのリソースを効率的に利用することを目的とする。
【課題を解決するための手段】
【００１０】
文書データを複数の印刷データファイルで構成される印刷データに変換するプリントサーバーであって、前記文書データの印刷処理を実行するための第一の印刷リクエストで指定される第一の条件と、前記第一の印刷リクエストに基づいて作成された印刷データファイルを取得するための取得先であって第一の署名情報を含む取得先とを管理する管理手段と、新たに受信した第二の印刷リクエストで指定される第二の条件と、前記第一の条件とが同じであるかを判定する判定手段と、を有し、前記判定手段によって同じであると判定された場合、前記管理手段は、前記第一の印刷リクエストに基づいて作成された印刷データファイルの取得先であって再発行された第二の署名情報を含む取得先を管理することを特徴とする。
【発明の効果】
【００１１】
本発明により、ＵＲＬに署名情報が付与されている印刷データファイルを再利用することで、ストレージサーバーのリソースを効率的に利用することができる。
【図面の簡単な説明】
【００１２】
【図１】プリントシステムの全体構成を示す図
【図２】プリントサーバー、ストレージサーバー、プリンターのハードウェア構成図
【図３】プリントサーバー、ストレージサーバー、プリンターのソフトウェア構成図
【図４】インデックスファイルの一例を示す図
【図５】印刷データ生成シーケンスを示す図
【図６】印刷データ再利用シーケンスを示す図
【図７】印刷データ再利用フローを示す図
【図８】実施例２に係る、印刷データ再利用フローを示す図
【図９】実施例３に係る、ストレージサーバーのライフサイクルフローを示す図
【図１０】実施例４に係る、印刷データ再生成依頼のフローを示す図
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１４】
［実施例１］
＜システム構成＞
図１は、本発明の実施形態に係るプリントシステムの全体構成を示す図である。図１において、プリンター１０２は、有線または無線ＬＡＮを介してローカルネットワーク１０１に接続され、ローカルネットワーク１０１を介してインターネットワーク１００にアクセスし、プリントサーバー１０３、ストレージサーバー１０４にアクセスすることができる。プリンター１０２は、プリントサーバー１０３、ストレージサーバー１０４にアクセスして印刷を実現するための、プルプリントアプリ等のプログラムを実行する環境が内蔵されている。
【００１５】
プリントサーバー１０３は、文書情報や印刷情報の管理と印刷データの生成を行う。本実施例では、プリントサーバー１０３が、プリンター１０２からの印刷リクエストに基づいて生成した印刷データをストレージサーバー１０４に配備し、その印刷データをプリンター１０２に取得させることで印刷を実現している。
【００１６】
ストレージサーバー１０４はファイル管理を行い、プリントサーバー１０３からのファイルアップロード／ダウンロード及び、プリンター１０２からの署名付きＵＲＬアクセスによるファイルダウンロードを受け付ける。
【００１７】
＜ハードウェア構成＞
図２は、本発明の実施形態に係るプリントサーバー１０３、ストレージサーバー１０４、プリンター１０２のハードウェア構成図である。まずはプリントサーバー１０３とストレージサーバー１０４のハードウェア構成について説明する。説明の都合上、プリントサーバー１０３を例に説明する。
【００１８】
ＣＰＵ２０２はプリントサーバー１０３の制御を行い、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ２０４は記憶手段であり、基本Ｉ／Ｏプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンター情報等の各種データを記憶する。
【００１９】
ＲＡＭ２０３は一時記憶手段であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ＨＤＤ２０５は外部記憶手段の一つであり、大容量メモリとして機能する。プリントサーバープログラム、ストレージサーバープログラム、ＯＳ、各種ドライバ、関連プログラム等を格納している。ディスプレイ２０６は、キーボード２０７から入力したコマンドや、アプリケーションの出力画面、プリンター１０２のステータス等を表示したりする。
【００２０】
インターフェース２０８は外部装置Ｉ／Ｓであり、プリンター１０２、ＵＳＢ機器、周辺機器を接続するためのＩ／Ｓである。システムバス２０１はプリントサーバー１０３におけるデータの流れを司るものである。ネットワークインタフェースカード（ＮＩＣ）２０９は、ネットワーク１０９〜１１１を介して外部装置とのデータのやり取りを行う。なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０４、ＲＡＭ２０３、ＨＤＤ２０５などで変更することも可能である。
【００２１】
続いて、プリンター１０２のハードウェア構成について説明する。ただし、上記でも説明したＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、ＮＩＣについては、基本的な機能は同じであるため、詳細な説明は省略する。
【００２２】
コントローラ２１０は、プリンター１０２の制御系を司る機器である。ＣＰＵ２１１はシステムバス２１９に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２１３に記憶された制御プログラム、あるいはディスクコントローラ（ＤＫＣ２１７）を介して接続された外部メモリ２２３に記憶された制御プログラムやリソースデータ等に基づく。ＲＡＭ２１２は、ＣＰＵ２１０の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＨＤＤ２１４は、プリント制御プログラム及び関係プログラム等を格納している。操作パネル２２２は、プリント操作を行うユーザインタフェースやボタンが配置される。また、プリンター１０２の動作モード等の設定や、プリンター１０２の動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルやＬＥＤ等の表示部２１５も配置される。プリントエンジン２２１は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方（熱転写）方式等が挙げられる。ラスタコントローラ２１６は、ＰＤＬ言語・ＰＤＳ言語である印刷データを画像データに変換するコントローラである。機器Ｉ／Ｓ２１８は、ＵＳＢ等で接続可能な外部機器との接続Ｉ／Ｓである。
【００２３】
＜ソフトウェア構成と、各種デバイスが有する管理情報＞
次に図３において、プリンター１０２、プリントサーバー１０３、ストレージサーバー１０４のソフトウェア構成と、それぞれが扱う管理情報について説明する。
【００２４】
プリンター１０２はプルプリントアプリ３２１を有し、ＨＤＤ２１４に記憶されており、ＣＰＵ２１１によってＲＡＭ２１２にロードされ実行される。
【００２５】
プルプリントアプリ３２１は、操作パネル２２２におけるユーザーの入力操作に従い、プリントサーバー１０３から印刷に係る情報を取得し、表示部２１５に表示する。ここで挙げた印刷に係る情報には、後述の各処理のステータス情報等が含まれる。例えば、印刷リクエストの送信処理〜インデックスファイルへのアクセス処理は、ステータス「印刷待ち」が表示される。印刷データのダウンロードが開始されるとステータス「印刷中」が表示される。印刷処理が終了すると、ステータス「印刷済み」が表示される。このように、プルプリントアプリ３２１は後述の処理の進捗を表示することができる。
【００２６】
さらに、プルプリントアプリ３２１は、印刷に係るリクエストをプリントサーバー１０３に送信し、プリントサーバー１０３から取得した情報を元に、ストレージサーバー１０４から印刷データを取得、取得した印刷データをプリントエンジン２２１に転送し、印刷を実行する。
【００２７】
プリントサーバー１０３は、Ｗｅｂサーバー３３１、印刷情報管理部３３２、印刷データ生成部３３３、ストレージ３３４を有し、各種機能はＨＤＤ２０５に記憶されており、ＣＰＵ２０２によってＲＡＭ２０３にロードされ実行される。
【００２８】
Ｗｅｂサーバー３３１は、プリントサーバー１０３の各種インターフェースを提供し、プリンター１０２からの印刷リクエスト、印刷ジョブ情報取得リクエスト（後述のＳ５．３．０）を受信し、リクエストの送信元であるプリンター１０２に応答する。また、ストレージ３３４は印刷データ情報を格納する。
【００２９】
プリントサーバー１０３の印刷情報管理部３３２が管理し、ストレージ３３４が保持する文書情報の一例を表１に示す。
【００３０】
【表１】
2019160057.tif 000003
【００３１】
「文書ＩＤ」は文書情報を一意に識別可能な文書識別情報（ＩＤ）である。「文書データＵＲＬ」は、ストレージサーバー１０４が保持する文書データにアクセスするためのＵＲＬである。プリントサーバー１０３の印刷データ生成部３３３（後述）は文書データＵＲＬにアクセスすることで、文書データを取得することができる。
【００３２】
プリントサーバー１０３の印刷情報管理部３３２で管理され、ストレージ３３４が保持する印刷ジョブ情報の一例を表２に示す。
【００３３】
【表２】
2019160057.tif 000004
【００３４】
「印刷ジョブＩＤ」は印刷処理を一意に識別可能なＩＤであり、プリンター１０２からの印刷リクエストをＷｅｂサーバー３３１が受信した際に印刷情報管理部３３２が発行する。「文書ＩＤ」は、プリンター１０２からの印刷リクエストとともに受信する、文書情報を特定するＩＤである。「インデックスファイルＵＲＬ」はインデックスファイルにアクセスするためのＵＲＬであり、印刷データ生成部３３３が印刷データ生成処理を開始した際に生成する。
【００３５】
「リクエストハッシュ値」は、印刷リクエストで指定される印刷条件に基づいて生成されたハッシュ値である。本実施例では、印刷リクエストで印刷条件として指定される文書ＩＤと印刷属性から生成されたハッシュ値であるものとする。印刷情報管理部３３２は、新たに受信した印刷リクエストから算出したリクエストハッシュ値と、表２で管理されているリクエストハッシュ値を比較することで、印刷リクエストが同一であるかを確認する。そのため、リクエストハッシュ値は、印刷データの生成に影響する要素から算出され、本実施例では文書ＩＤと印刷属性から計算されるものとする。ハッシュ計算にはＭＤ５、ＳＨＡ１、ＳＨＡ２５６、ＣＲＣなどのアルゴリズムが利用される。
【００３６】
印刷属性は、印刷リクエストに含まれ、印刷データ生成時に印刷データ生成部３３３が参照する印刷設定情報である。印刷属性としては例えば、用紙サイズ、ページレイアウト、両面、カラーモード等が挙げられる。つまり印刷設定をする際に設定される設定情報が印刷属性であり、印刷データを作成する際に影響を与える属性情報である。印刷データ生成部３３３はその印刷属性に従い、印刷データを生成する。
【００３７】
印刷データ生成部３３３は印刷リクエストに含まれる文書ＩＤを用いて文書情報を特定し、文書データＵＲＬにアクセスすることで印刷対象の文書データを取得する。そして、同じく印刷リクエストに含まれる印刷属性を用いて印刷データを生成する。その際、印刷データ生成部３３３は印刷データを分割生成するとともに、分割した印刷データをストレージサーバーにアップロードする。印刷データを分割したことで生成されるデータを、以下印刷データファイルと称する。
【００３８】
Ｗｅｂサーバー３３１はプリンター１０２から、印刷ジョブＩＤとともに印刷ジョブ情報取得リクエストを受信すると、印刷情報管理部３３２は印刷ジョブＩＤで特定される印刷ジョブ情報をプリンター１０２に送信する。
【００３９】
ストレージサーバー１０４はＷｅｂサーバー３４１、ファイル情報管理部３４２、ストレージ３４３を有し、ＨＤＤ２０５に記憶された各種機能は、ＣＰＵ２０２によってＲＡＭ２０３にロードされ実行される。
【００４０】
Ｗｅｂサーバー３４１はストレージサーバー１０４の各種インターフェースを提供する機能である。ファイル情報管理部３４２はファイル情報を管理し、Ｗｅｂサーバー３４１が受信したリクエストに応じてファイルの入出力を行う機能である。ストレージ３４３はファイル情報やストレージサーバー１０４が受信したファイルを格納する機能である。ファイル情報の一例を表３に示す。ストレージサーバー１０４に格納されるファイルとは、文書データや、その文書データから作成された印刷データファイル、その印刷データファイルの取得先であるインデックスファイル等を含む。表３では一例として、文書データのファイルパスを「／ｄｏｃｓ／ｄｏｃ−Ａ／ｄａｔａ．ｐｄｆ」「〜ｄｏｃｓ／ｄｏｃ−Ｂ／ｄａｔａ．ｐｄｆ」、印刷データファイルのファイルパスを「／Ｊｏｂｓ／ｊｏｂ−００１／ｄａｔａ−１．ｐｄｌ」「〜Ｊｏｂｓ／ｊｏｂ−００１／ｄａｔａ−２．ｐｄｌ」、インデックスファイルのファイルパスを「／Ｊｏｂｓ／ｊｏｂ−００１／ｉｎｄｅｘ．ｊｓｏｎ」と記載している。
【００４１】
【表３】
2019160057.tif 000005
【００４２】
「データＵＲＬ」はストレージサーバー１０４に保存される各ファイルの取得先を示すＵＲＬである。「ファイルパス」はストレージ３４３上のファイルの格納場所を示すファイルパスである。データＵＲＬに対するリクエストをＷｅｂサーバー３４１が受信し、ファイル情報管理部３４２が該当するファイル情報を更新し、ストレージ３４３のファイル操作を行う。例えばクライアントは、データＵＲＬに対してＨＴＴＰ  ＧＥＴメソッドをリクエストすると該当するファイルがダウンロードされる。また、データＵＲＬに対してＨＴＴＰ  ＰＵＴメソッドにファイル添付してリクエストするとファイルをアップロードし保存される。さらに、データＵＲＬに対してＨＴＴＰ  ＤＥＬＥＴＥメソッドをリクエストすると対応するファイルを削除できる。
【００４３】
また、ストレージサーバー１０４には署名付きのデータＵＲＬ（以下、署名付きＵＲＬ）を発行する機能を有し、そのＵＲＬを教えることで、第三者に対してファイルへのアクセスを許可することができる。ＵＲＬに付与される署名情報（後述）には有効期限が設定されており、ストレージサーバー１０４で管理される。
【００４４】
プリンター１０２のプルプリントアプリ３２１は、この署名付きＵＲＬを用いてストレージサーバー１０４にアクセスし、各種データをダウンロードすることができる。また、セキュリティの観点から、プリントサーバー１０３は、署名付きＵＲＬの発行時に有効期限を指定しており、その期限が切れると署名付きＵＲＬでのアクセスはできなくなる。以降特別な断りがない限り、各種データを取得するためのＵＲＬは、ストレージサーバー１０４で発行された有効期限のある署名付きＵＲＬであるものとする。
【００４５】
＜インデックスファイル＞
図４を用いて、プリントサーバー１０３が印刷データファイルを生成した際に、生成・更新されるインデックスファイルについて説明する。
【００４６】
４００〜４３０はインデックスファイルの一例である。まず、印刷データ処理が開始されると、プリントサーバー１０３はストレージサーバー１０４にインデックスファイル（４００）を生成する。本実施例では、インデックスファイルはＪＳＯＮファイル形式を採用し、“ｄａｔａＬｉｓｔ”をキーとする処理結果の印刷データファイルＵＲＬのリストと、“ｅｎｄ”をキーとする処理完了フラグから構成される。
【００４７】
また、本実施例では印刷データファイルをＰＤＬファイルとし、印刷データファイルのファイル出力単位はプリントサーバー１０３で予め決められた固定のデータサイズで区切られるものとする。ただし、ファイル出力単位は固定のデータサイズによる分割とする必要はなく、ファイル生成毎に変動させてもよい。また、データサイズではなくページ数単位での出力や、出力単位を変化させる形態等など、印刷データ生成部３３３で制御可能であればどのような形態でもよい。以降の実施例では、３つの印刷データファイル（Ｐｄｌ０１−１、Ｐｄｌ０１−２、Ｐｄｌ０１−３）が生成されたものとして説明する。
【００４８】
印刷データファイルの生成に伴って、インデックスファイルが生成・更新される工程を４００〜４３０を用いて説明する。プリントサーバー１０３は印刷データ生成処理が開始すると、インデックスファイル４００を生成する。その際、未だ印刷データファイルは生成されていないため、インデックスファイル４００の“ｄａｔａＬｉｓｔ”には何もリストされていない。また、処理結果を示す“ｅｎｄ”の値は“ｆａｌｓｅ”である。
【００４９】
その後プリントサーバー１０３は印刷データ生成処理を実行し、生成された印刷データファイルをストレージサーバー１０４にアップロードし、印刷データファイルのデータＵＲＬがインデックスファイル（４１０〜４３０）の“ｄａｔａＬｉｓｔ”に追加される。１つ目の印刷データファイルがアップロードされた際のインデックスファイルの一例を４１０、２つ目の印刷データファイルがアップロードされた際のインデックスファイルの一例を４２０に示す。インデックスファイルの“ｄａｔａＬｉｓｔ”には、ストレージサーバー１０４にアップロードされたデータＵＲＬが追加される。また、追加されたデータＵＲＬには、署名情報が付与されている。例えば、一つ目の印刷データファイルのデータＵＲＬの末尾には署名情報として、「ｓｉｇｎ＝ｖｕＥｅ９ｘｑＣ」が追記されている。ＵＲＬに付与される署名情報は、ランダムなトークン等であればよく、ストレージサーバー１０４で予め定められているアルゴリズムに基づいて記載される。
【００５０】
プリントサーバー１０３は、印刷データ（全印刷データファイル）の生成処理が完了すると、最後の印刷データファイルである３つ目の印刷データファイルがアップロードされた時点で、インデックスファイルの状態を更新する。状態が更新されたインデックスファイルの一例を４３０に示す。インデックスファイル４３０の“ｄａｔａＬｉｓｔ”には、３つ目の印刷データファイルのデータＵＲＬが追加されており、処理完了フラグ“ｅｎｄ”の値は“ｆａｌｓｅ”から“ｔｒｕｅ”に変更されている。
【００５１】
インデックスファイル４００〜４３０をプリンター１０２が取得し参照することで、プリンター１０２は印刷データ生成処理の進捗を知ることができる。そして、生成された印刷データファイルをダウンロードして印刷することができる。以上が、インデックスファイルが生成・更新される処理の説明である。
【００５２】
生成された印刷データファイルをプリンター１０２が取得して印刷を実行することにより、プリンター１０２がプリントサーバー１０３に印刷リクエストを送信してから、１ページ目の文書が印刷されるまでの時間（ファーストプリント）を早めることができる。
【００５３】
＜印刷データ生成シーケンス＞
図５を用いて、プリンター１０２がプリントサーバー１０３に印刷リクエストを送信し、プリントサーバー１０３で生成された印刷データをプリンター１０２がダウンロードするまでの処理を説明する。
【００５４】
プルプリントアプリ３２１はプリントサーバー１０３の印刷情報管理部３３２で管理される文書情報を取得し、操作パネル２２２にリストとして表示する。プルプリントアプリ３２１は操作パネル２２２を介して、ユーザー操作による文書ＩＤと印刷属性の選択指示を受け付ける。図５のフローは、ユーザー操作による選択指示に基づいて、印刷リクエストがプリントサーバー１０３に送信されたことをきっかけに開始されるものとする。また、印刷リクエストに含まれる文書ＩＤや印刷属性は、プリントサーバー１０３がプルプリントアプリ３２１に対して送信した文書一覧画面（不図示）や印刷設定画面（不図示）を介して、ユーザーによって選択されたものとする。
【００５５】
プルプリントアプリ３２１は、ユーザー操作で選択された文書ＩＤと印刷属性を含む印刷リクエストをプリントサーバー１０３に送信する（Ｓ５．１．０）。プリントサーバー１０３のＷｅｂサーバー３３１は印刷リクエストを受信すると、印刷情報管理部３３２が印刷ジョブＩＤを発行し印刷ジョブ情報を生成する（Ｓ５．１．１）。プリントサーバー１０３はＳ５．１．０の応答として、発行された印刷ジョブＩＤをプリンター１０２に送信する（Ｓ５．１．２）。
【００５６】
印刷ジョブ情報が生成されると、プリントサーバー１０３の印刷データ生成部３３３はインデックスファイル４００を生成し、ストレージサーバー１０４にアップロードする（Ｓ５．２．０）。印刷情報管理部３３２はインデックスファイル４００にアクセスするためのＵＲＬをストレージサーバー１０４から取得し、印刷ジョブ情報（表２）に登録する。
【００５７】
印刷情報管理部３３２は、印刷ジョブ情報の文書ＩＤをキーに文書情報から印刷対象の文書データＵＲＬを取得し、印刷データ生成部３３３は文書データＵＲＬにアクセスして文書データを取得する（Ｓ５．２．１）。今回、取得された文書データは「ｐｄｆ０１」であるものとする。
【００５８】
印刷データ生成部３３３は印刷ジョブ情報に含まれる印刷属性に基づいて印刷データ生成処理を開始する（Ｓ５．２．２）。生成された印刷データが予め決められたサイズに達すると、印刷データ生成部３３３は生成された印刷データをファイル（印刷データファイル）としてストレージサーバー１０４にアップロードする（Ｓ５．２．３）。印刷データ生成処理で最初に作成された印刷データファイルは「Ｐｄｌ０１−１」であるものとする。
【００５９】
印刷データ生成部３３３は、Ｓ５．２．３でアップロードされた印刷データファイルを取得するためのデータＵＲＬを、インデックスファイル（ｉｎｄｅｘ０１）に書き込む（Ｓ５．２．４）その際のインデックスファイルの一例は４１０で示した通りである。
【００６０】
印刷データ生成部３３３は、印刷データ生成処理（Ｓ５．２．２）を続行し、生成された印刷データファイル（Ｐｄｌ０１−２）をアップロード（Ｓ５．２．５）し、インデックスファイルにＵＲＬを追加する（Ｓ５．２．６）。その際のインデックスファイルの一例は４２０で示した通りである。
【００６１】
印刷データ生成部３３３は、最後の印刷データファイル（Ｐｄｌ０１−３）をストレージサーバー１０４にアップロードし（Ｓ５．２．７）、そのデータＵＲＬをインデックスファイルに追記するとともに、印刷データ生成完了を表すフラグを更新する（Ｓ５．２．８）。その際のインデックスファイルの一例は４３０で示した通りである。
【００６２】
印刷データ生成処理が完了すると、印刷情報管理部３３２は印刷ジョブ情報（表２）の文書ＩＤと印刷属性の値からリクエストハッシュ値を計算し、印刷ジョブ情報に登録する（Ｓ５．２．９）。
【００６３】
プリンター１０２のプルプリントアプリ３２１は、Ｓ５．１．２で印刷ジョブＩＤを受信した後、プリントサーバー１０３に印刷ジョブＩＤをキーに該当の印刷ジョブ情報を取得する（Ｓ５．３．０）。プルプリントアプリ３２１はＳ５．３．０で取得した印刷ジョブ情報にインデックスファイルＵＲＬが含まれていた場合、そのインデックスファイルＵＲＬにアクセスしてインデックスファイルを取得する（Ｓ５．３．１）。
【００６４】
プリントサーバー１０３でインデックスファイル生成のアップロード（Ｓ５．２．０）が済んでいない場合は、印刷ジョブ情報にインデックスファイルＵＲＬは含まれない。その場合プルプリントアプリ３２１は、インデックスファイルＵＲＬを含む印刷ジョブ情報を取得するまで、印刷ジョブ情報の取得処理（Ｓ５．３．０）を繰り返す。
【００６５】
プルプリントアプリ３２１はＳ５．３．１で取得したインデックスファイル４１０を参照し、データリストに未取得の印刷データファイルのデータＵＲＬが存在した場合、そのデータＵＲＬにアクセスして未取得の印刷データファイルを取得する（Ｓ５．３．２）。データリストに未取得の印刷データファイルのデータＵＲＬが無く、かつ処理完了フラグ“ｅｎｄ”の値が“ｆａｌｓｅ”である場合、プルプリントアプリ３２１は、所定の時間経過後にインデックスファイルを再取得（Ｓ５．３．１）し、データリストを確認する。取得したデータリストに未取得の印刷データファイルが確認されるまで、または処理完了フラグ“ｅｎｄ”の値が“ｔｒｕｅ”になるまで、Ｓ５．３．１の処理は繰り返される。
【００６６】
プルプリントアプリ３２１は、インデックスファイルを取得し、印刷データファイルを取得する処理（Ｓ５．３．１〜Ｓ５．３．４）を実行する。そして、データリストに未取得の印刷データファイルのデータＵＲＬが無く、かつ、処理完了を示す値“ｔｒｕｅ”を確認した場合（４３０）に印刷データ生成処理が完了したと判断し、印刷データファイルの取得処理を終了する。プルプリントアプリ３２１が印刷データファイルにアクセスした際（Ｓ５．３．２〜Ｓ５．３．４）には、アクセスの際に送信される署名情報が検証される。検証する際のアルゴリズムや鍵の管理等は、ストレージサーバー１０４で予め設定されている。
【００６７】
一方、プルプリントアプリ３２１は印刷データファイルの取得処理と並行して、プリントエンジン２２１に印刷データファイルを送信することで印刷を実行する。以上が印刷リクエストを送信してから印刷処理を実行するまでのフローである。
【００６８】
＜印刷データの再利用処理（シーケンス）＞
図６を用いて生成済みの印刷データファイルを再利用する処理を説明する。尚、図６のフローは、図５のフローが既に実行され、図５のときと同じ印刷リクエストがプリントサーバー１０３に送信された（Ｓ６．１．０）ことで実行される。上記で説明済みの処理については同じ符番を振り、説明を省略する。
【００６９】
プリントサーバー１０３のＷｅｂサーバー３３１はプルプリントアプリ３２１から、印刷リクエストを受信する（Ｓ６．１．０）。その際に指定される印刷属性や文書ＩＤは、Ｓ５．１．０のときと同じである。プリントサーバー１０３の印刷情報管理部３３２は、印刷ジョブＩＤを発行して印刷ジョブ情報を生成し、プリンター１０２に送信する（Ｓ６．１．１〜Ｓ６．１．２）。
【００７０】
印刷情報管理部３３２は、印刷リクエストに含まれる文書ＩＤと印刷属性からリクエストハッシュ値を計算し、リクエストハッシュ値をキーに印刷ジョブ情報（表２）を参照する（Ｓ６．２．０）。参照した結果、算出したリクエストハッシュ値と同じリクエストハッシュ値を有する印刷ジョブ情報が特定された場合、印刷情報管理部３３２は印刷データの再利用が可能であると判断する。特定されなかった場合は、再利用できる印刷データが存在しないと判断され、上記のＳ５．２．０以降の処理を実行する。
【００７１】
印刷データ生成部３３３は、リクエストハッシュ値が同じである印刷ジョブ情報のインデックスファイルＵＲＬにアクセスし、生成済みの印刷データファイルを示すインデックスファイルを参照する（Ｓ６．２．１）。印刷データ生成部３３３は、Ｓ６．２．１で参照したインデックスファイルの“ｄａｔａＬｉｓｔ”に含まれるデータＵＲＬで特定される印刷データファイルに対し署名付きＵＲＬを再発行するよう、ストレージサーバー１０４に依頼する。その際、ストレージサーバー１０４は予め定められたアルゴリズムに基づいて、署名付きＵＲＬを発行する。印刷データ生成部３３３は、再発行された署名付きＵＲＬを含むインデックスファイル（ｉｎｄｅｘ０２）を生成し、ストレージサーバー１０４にアップロードする（Ｓ６．２．２）。印刷情報管理部３３２は、生成されたインデックスファイル（ｉｎｄｅｘ０２）のインデックスファイルＵＲＬを印刷ジョブ情報に登録する。
【００７２】
その際に登録される印刷ジョブ情報を表２（ｊｏｂ−００２）に示す。例えば、Ｓ５．１．０とＳ６．１．０の印刷リクエストに含まれる文書情報が、文書ＩＤ「ｄｏｃ−Ａ」と印刷属性「“ｓｉｚｅ”＝“Ａ４”，“ｃｏｌｏｒ”＝“ＢＷ”，…」であるものとする。それぞれの印刷リクエストに対して発行された印刷ジョブＩＤは「ｊｏｂ−００１」と「ｊｏｂ−００２」である。Ｓ６．１．０の印刷リクエストに対しＳ５．１．０で生成された印刷データファイルは再利用できるが、インデックスファイルは再発行される。そのため、同じ印刷属性、リクエストハッシュ値に対して、異なるインデックスファイル（ｈｔｔｐｓ：／／ｓｔｏｒａｇｅ．ｃｏｍ／Ｊｏｂｓ／ｊｏｂ−００２／ｉｎｄｅｘ．ｊｓｏｎ）が印刷ジョブ情報「ｊｏｂ−００２」に登録されている。以上が印刷データを再利用する際の処理である。
【００７３】
図６の処理によりプリントサーバー１０３は印刷データ生成処理を省略することができ、ストレージサーバーで使用するリソースを削減することができる。また、インデックスファイルと、印刷データファイルにアクセスするための署名付きＵＲＬを再発行することで、セキュリティを担保し、且つプリンター１０２は印刷データファイルをダウンロードできる。
【００７４】
＜印刷データ再利用処理（フローチャート）＞
図７を用いて、プリントサーバー１０３が、プリンター１０２から受信した印刷リクエストから、印刷データを再利用するか否かを判断し、プリンター１０２が印刷データをダウンロード可能な状態とする（印刷ジョブ情報が登録される）までの処理を説明する。尚、図７のフローはプリントサーバー１０３が主体となって実行される。
【００７５】
プリントサーバー１０３は印刷リクエストを受信すると、印刷情報管理部３３２が印刷ジョブＩＤを発行して印刷ジョブ情報を生成し、印刷リクエストの応答として印刷ジョブＩＤをプリンター１０２に送信する（Ｆ７０１）。印刷情報管理部３３２は、印刷リクエストに含まれる文書ＩＤと印刷属性からリクエストハッシュ値を計算する（Ｆ７０２）。印刷情報管理部３３２は、算出したリクエストハッシュ値と一致する印刷ジョブ情報が存在するかを判定する（Ｆ７０３）。
【００７６】
Ｆ７０３で一致する印刷ジョブ情報が存在すると判定された場合、図６で説明した処理が実行される。つまり、プリントサーバー１０３の印刷データ生成部３３３は印刷ジョブ情報のインデックスファイルを参照し、各印刷データファイルの署名付きＵＲＬの再発行をストレージサーバー１０４に依頼する（Ｆ７０４）。具体的には、印刷データ生成部３３３がインデックスファイを参照し、各印刷データファイルのファイルパスを取得する。そして、ストレージサーバー１０４に対して署名付きＵＲＬの再発行依頼として、取得したファイルパスと、クライアント（今回はプリンター１０２）がファイル（今回であればインデックスファイル）をダウンロードするための権限情報とを送信する。ストレージサーバー１０４は、権限情報を検証した後、取得したファイルパスと権限情報に基づいて署名付きＵＲＬを再発行する。
【００７７】
印刷データ生成部３３３は、Ｆ７０４で再発行された署名付きＵＲＬを“ｄａｔａＬｉｓｔ”に含めた新規のインデックスファイルを生成して、ストレージサーバー１０４にアップロードする（Ｆ７０５）。今回であれば、印刷データファイルＰｄｌ０１−１〜Ｐｄｌ０１−３のデータＵＲＬが記載されたインデックスファイルがアップロードされる。ただし、署名付きＵＲＬは再発行されているので、インデックスファイル４３０とは異なるインデックスファイル（ｉｎｄｅｘ０２）である。再発行された署名付きＵＲＬが記載されたインデックスファイル（ｉｎｄｅｘ０２）の一例を図４の４４０に示す。新たな印刷ジョブ（ｊｏｂ−００２）に対して署名付きＵＲＬが発行されるため、図４のインデックスファイル（ｉｎｄｅｘ０１）と比較すると、ＵＲＬの「ｊｏｂ−〜」部分と署名情報が異なっている。
【００７８】
印刷ジョブ情報にインデックスファイルＵＲＬを登録して処理を終了する（Ｆ７０６）。
【００７９】
Ｆ７０３で一致する印刷ジョブ情報が存在しないと判定された場合、図５で説明した処理が実行される。具体的には、印刷データ生成部３３３が、新規にインデックスファイル４００を生成してストレージサーバー１０４にアップロードし（Ｆ７１０）、印刷ジョブ情報にインデックスファイルＵＲＬを登録する（Ｆ７１１）。印刷データ生成部３３３は、印刷データ生成処理を開始し、予め決められたサイズの印刷データファイルが生成されると、ストレージサーバー１０４に保存する（Ｆ７１２）。さらに、印刷データ生成部３３３は、Ｆ７１２で保存した印刷データファイルの取得先である署名付きＵＲＬの発行を依頼し、発行されたＵＲＬをインデックスファイル（４１０〜４２０）の“ｄａｔａＬｉｓｔ”に追加する（Ｆ７１３）。またこの時、印刷データの生成が全て完了していた場合はインデックスファイルの処理完了フラグを“ｔｒｕｅ”に変更する。印刷データ生成部３３３は全ての印刷データ生成処理が完了したかを判定する（Ｆ７１４）。Ｆ７１４で完了したことが確認されるまで、Ｆ７１２とＦ７１３の処理は繰り返される。
【００８０】
Ｆ７１４において印刷データ生成処理の完了が確認されると、印刷情報管理部３３２は、印刷リクエストに含まれていた文書ＩＤと印刷属性からリクエストハッシュ値を計算し、印刷ジョブ情報に登録する（Ｆ７１５）。文書ＩＤと印刷属性を用いたハッシュ値を用いることで、一回の処理により複数の要素の比較を行うことができる。
【００８１】
以上が印刷リクエストを受信したプリントサーバー１０３における印刷ジョブ情報の登録処理である。登録された印刷ジョブ情報に基づいて、プリンター１０２がインデックスファイルと印刷データファイルとを取得する事で、印刷処理を実行できる。
【００８２】
以上の処理により、印刷データを格納するストレージサーバーのリソースを効率的に利用でき、さらに署名付きＵＲＬを再発行する事で、印刷データを悪用されないようにするためのセキュリティを担保することができる。
【００８３】
［実施例２］
実施例２では、印刷データファイルを取得するためのインデックスファイルを再発行することなく、印刷データを再利用する処理を説明する。本実施例で説明していない部分については、実施例１と同様である。
【００８４】
印刷情報管理部３３２で管理され、ストレージ３３４に保持される印刷ジョブ情報（２）の一例を表４に示す。
【００８５】
【表４】
2019160057.tif 000006
【００８６】
印刷ジョブ情報（２）には、実施例１に示した印刷ジョブ情報に加えて「印刷データ生成時刻」が含まれる。印刷データ生成時刻とは、印刷データ生成処理が完了した後に印刷情報管理部３３２にリクエストハッシュ値が登録される時刻のことである。
【００８７】
＜実施例２の印刷データ再利用フロー＞
図８を用いて、本実施例における印刷データ再利用フローを説明する。ただし、図７で説明済みのステップについては同じ符番を振り、説明を省略する。
【００８８】
印刷情報管理部３３２が、リクエストハッシュ値が一致する印刷ジョブ情報の存在確認した後（Ｆ７０３）、印刷ジョブ情報（２）の印刷データ生成時刻と現在時刻を比較し、印刷データ生成時刻が現在時刻に対し所定の期間内であるかを判定する（Ｆ８０４）。判定した結果、所定の期間内であると判定された場合、印刷情報管理部３３２は署名付きＵＲＬを再発行することなく、リクエストハッシュ値が一致した印刷ジョブ情報のインデックスファイルＵＲＬを、印刷リクエスト（Ｓ６．１．０）の印刷ジョブ情報のインデックスファイルＵＲＬとして登録し処理を終了する（Ｆ８０５）。
【００８９】
以上が、実施例２における印刷ジョブ情報の登録処理である。登録された印刷ジョブ情報に基づいて、プリンター１０２がインデックスファイルと印刷データファイルとを取得する事で、印刷処理を実行できる。
【００９０】
Ｆ８０５が実施された際の印刷ジョブ情報の一例を表４に示す。印刷ジョブｊｏｂ−００１と同じ文書ＩＤ、印刷属性である印刷ジョブｊｏｂ−００２に対し、印刷ジョブｊｏｂ−００１と同じインデックスファイルＵＲＬ「ｈｔｔｐｓ：／／ｓｔｏｒａｇｅ．ｃｏｍ／Ｊｏｂｓ／ｊｏｂ−００１／ｉｎｄｅｘ．ｊｓｏｎ」が設定されている。
【００９１】
これによりプルプリントアプリ３２１は、図５のフローで既に発行されているインデックスファイルを利用して、同じく図５のフローで既に発行されている印刷データファイルを取得する事ができる。また、印刷データファイルの生成時刻を管理する事で、インデックスファイルを再利用できるのみならず、有効なインデックスファイルが長期間ストレージサーバー１０４で管理されることも防ぐことができる。
【００９２】
また、本実施例では、リクエストハッシュ値が登録された時刻を基準に、インデックスファイルを再利用するかどうかを判定しているが、インデックスファイルの再利用となる時刻の基準はそれには限定されない。インデックスファイルに記載されたＵＲＬの署名情報が有効であるかを確認できさえすれば、どのような判定方法でも良い。
【００９３】
［実施例３］
ストレージサーバー１０４における印刷データファイルの管理コストを削減するために、印刷データファイルに対して保存期限が設けられている場合がある。つまり、実施例１や実施例２のようにインデックスファイルを再発行、または再利用しようとしても、印刷データファイル自体がストレージサーバー１０４に存在しない場合がある。本実施例では、印刷データファイルに保存期限が設定されている場合の処理について説明する。尚、実施例３で説明していない部分については実施例１、または実施例２と同様である。
【００９４】
ファイル情報管理部３４２で管理されるファイル情報（２）の一例を表５に示す。
【００９５】
【表５】
2019160057.tif 000007
【００９６】
ファイル情報（２）には、実施例１に示したファイル情報に加えて「保存期限」が含まれる。保存期限は、データＵＲＬを取得先とするファイルの保存期限である。特に、ファイルパス「／Ｊｏｂｓ／ｊｏｂ−００１／ｄａｔａ−１．ｐｄｌ」「／Ｊｏｂｓ／ｊｏｂ−００１／ｄａｔａ−２．ｐｄｌ」の「保存期限」は、印刷データファイルの保存期限を示す。
【００９７】
印刷データファイルが更新される際にファイル情報管理部３４２は、ストレージサーバー１０４で決められた保存期間を、印刷データファイルの最終更新時刻に加算して記録する。またファイル情報管理部３４２は、保存期限が現在時刻より古くなったファイル情報をファイル情報（２）から削除する。
【００９８】
＜ストレージライフサイクルチェックシーケンス＞
図９を用いて、ストレージサーバー１０４のライフサイクルフローについて説明する。尚、上記で説明済みのフローについては同じ符番を振り、説明を省略する。
【００９９】
Ｆ７０３において、印刷リクエスト（Ｓ６．１．０）に含まれる文書ＩＤと印刷属性から算出したリクエストハッシュ値と一致するリクエストハッシュ値を、印刷ジョブ情報で確認された後、印刷データ生成部３３３は該当の印刷ジョブ情報のインデックスファイルを参照する（Ｆ９０４）。その際に参照するインデックスファイルは、再発行前のインデックスファイル（ｉｎｄｅｘ０１）でも再発行後のインデックスファイル（ｉｎｄｅｘ０２）でもよく、印刷データファイルの存在が確認できればよい。本実施例では、Ｆ９０４で参照されるインデックスファイルは、再発行前のインデックスファイル（ｉｎｄｅｘ０１）であるものとする。
【０１００】
印刷データ生成部３３３はインデックスファイルを参照した際、“ｄａｔａＬｉｓｔ”に含まれる印刷データファイルＵＲＬにアクセスして印刷データファイルの存在を確認する（Ｆ９０５）。存在が確認されなかった場合はＦ７１０以降の処理に進み、インデックスファイルを生成する。つまり、図５のＳ５．２．１〜Ｓ５．２．９の処理が実行される。Ｆ９０４においてインデックスファイルＵＲＬにアクセスしたにも関わらず、Ｆ９０５でストレージサーバー１０４に該当の印刷データファイルの存在が確認できない場合とは、印刷データファイルの保存期限によりストレージサーバー１０４から削除された場合等が想定される。
【０１０１】
Ｆ９０５の処理において、該当の印刷データファイルが存在することが確認された場合、印刷データ生成部３３３はその印刷データファイルを更新し、印刷データファイルの保存期限を延長する（Ｆ９０６）。印刷データファイルの更新処理とは具体的に、印刷データ生成部３３３がＦ９０４で参照したインデックスファイルに基づいて、印刷データファイルを取得し、取得した印刷データファイルを再度ストレージサーバー１０４にアップロードする。ストレージサーバー１０４は、同じファイル名に対して同じ保存領域を確保しているため、Ｆ９０６の処理により印刷データファイルをアップロードし直しても、ファイルパスやそれに付与された署名情報は変更されない。
【０１０２】
印刷データファイルの更新処理の結果、更新された印刷データファイルの署名付きＵＲＬをストレージサーバー１０４から取得した（Ｆ９０７）後、更新された署名付きＵＲＬが記載されたインデックスファイルをストレージサーバー１０４にアップロードする（Ｆ７０５）。以上が、本実施例における印刷データファイルの更新処理である。
【０１０３】
本実施例により、ストレージサーバー１０４に格納されている印刷データファイルに保存期限が設定されている場合に、印刷データファイルを更新して署名付きＵＲＬを発行することで、プリンター１０２が印刷データファイルを取得するまでに印刷データファイルが削除されることを防ぐことが出来る。
【０１０４】
また、ストレージサーバー１０４が定期的に印刷データファイルを更新する形態でなく、印刷リクエストに該当する印刷データファイルを更新する形態とすることで、ストレージサーバー１０４の動作負荷を抑えることができる。
【０１０５】
［実施例４］
実施例３では、印刷リクエストに該当する印刷データファイルを更新、または作成することで、プリンター１０２が印刷データファイルを取得する際にエラーを発生させないようにした。本実施例では、プリンター１０２が印刷データファイルをプリントサーバー１０３から取得できなかった場合に、プリントサーバー１０３に印刷データの再生成を依頼する処理について説明する。尚、本実施例の処理は上記の実施例１〜３と組み合わせて実施することは可能である。また、上記の実施例１〜３とは異なる部分のみ記載する。
【０１０６】
＜プリンター１０２からの印刷データ再生成依頼＞
図１０を用いて、印刷データ再生成依頼の処理について説明する。本処理は、図５のＳ５．３．２〜Ｓ５．３．４、または図６のＳ６．３．２〜Ｓ６．３．４において、プリンター１０２のプルプリントアプリ３２１が印刷データファイルを取得する際に、ストレージサーバー１０４からエラーが返り、印刷データファイルを取得できなかったことをきっかけに開始される。印刷データファイルを取得できない理由としては、印刷データファイルに設定された保存期限によりストレージサーバー１０４から削除されている場合等が考えられる。
【０１０７】
ストレージサーバー１０４からエラーを受信したプルプリントアプリ３２１は、プリントサーバー１０３から取得した印刷ジョブＩＤを含む印刷データ再生成リクエストを、プリントサーバー１０３に送信する（Ｆ１０００）。
【０１０８】
プリントサーバー１０３のＷｅｂサーバー３３１は印刷データ再生成リクエストを受信すると、受信した印刷ジョブＩＤに基づいて該当の文書ＩＤを特定する（Ｆ１００１）。印刷データ生成部３３３は、文書情報（表１）と文書ＩＤから文書データの取得先であるＵＲＬ（文書データＵＲＬ）を特定する（Ｆ１００２）。印刷データ生成部３３３は文書データＵＲＬにアクセスすることで文書データを取得し、Ｆ７１２以降の処理により印刷データファイルを生成する。以上が、プリンター１０２が印刷データの再生成リクエストを送信した際の処理である。
【０１０９】
本実施例において例えば、ある特定の印刷データファイル（Ｐｄｌ１０１−２）をプリンター１０２が取得できなかった場合、プリントサーバー１０３に対して印刷データ再生成リクエストを送信する事で、全ての印刷データファイル（Ｐｄｌ１０１−１〜Ｐｄｌ１０１−３）が再作成されることになる。
【０１１０】
本実施例の処理により、ストレージサーバーから印刷データファイルが削除されたことで、プリンター１０２から印刷データファイルを取得できなくても、印刷データファイルを再生成させることで印刷処理を続行する事ができる。取得が成功した印刷データの印刷を継続しながら、取得が失敗した印刷データの再生成と再取得が可能となる。
【０１１１】
［その他の実施例］
上記の実施例においては、印刷リクエストに含まれる文書ＩＤと印刷属性から生成されるハッシュ値を比較する形態を示した。ただし、印刷リクエスト内容から、生成される印刷データの同一性を確かめることができればハッシュ値として保持する必要はなく、単純にリクエスト情報を比較する、もしくは比較時にハッシュ値を計算してもよい。また、比較する際に使用する情報は、生成する印刷データに影響を与える要素を含んでいればよく、文書ＩＤや印刷属性に限られるものではない。
【０１１２】
上記の実施例においては、一つの印刷ジョブＩＤに対して一つのインデックスファイルを管理するために、既存のインデックスファイル（ｉｎｄｅｘ０１）とは異なる、新たなインデックスファイル（ｉｎｄｅｘ０２）を再発行する形態（図６）を示した。しかし、新たなインデックスファイルを作成することなく、Ｆ７０４において新たに発行された署名付きＵＲＬをｉｎｄｅｘ０１に上書きする形態等も考えられる。
【０１１３】
上記の実施例においては、プリンター１０２上に表示されたＵＩを介して印刷リクエストがプリントサーバー１０３に送信される形態で説明した。しかし、その形態に限定されず、ＰＣ等のＷｅｂブラウザーによって文書一覧画面や印刷設定画面が表示され、ユーザーが選択する形態でもよい。その際、プリンター１０２で印刷リクエストの送信・印刷処理の実行を行う形態とは異なり、印刷を実行するプリンターを選択する画面等がＷｅｂブラウザー上に表示される必要がある。
【０１１４】
また、本発明の目的は以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１１５】
１０２  プリンター
１０３  プリントサーバー
１０４  ストレージサーバー
３２１  プルプリントアプリ
３３３  印刷データ生成部
３４２  ファイル情報管理部
【図１】
2019160057.tif 000008
【図２】
2019160057.tif 000009
【図３】
2019160057.tif 000010
【図４】
2019160057.tif 000011
【図５】
2019160057.tif 000012
【図６】
2019160057.tif 000013
【図７】
2019160057.tif 000014
【図８】
2019160057.tif 000015
【図９】
2019160057.tif 000016
【図１０】
2019160057.tif 000017