(57)【要約】      （修正有）【課題】クラウドプリントサービスにおいて、印刷データの描画同一性確認のための印刷データ生成方法を提供する。【解決手段】プリントサービス１０３が、プリンター１０２からの印刷に関わるリクエストに応じて処理を実行し、生成した印刷データをストレージサービス１０４に配備して、その印刷データをプリンターに取得させることで印刷を実現している。ストレージサービス１０４はファイル管理を行うサービスであり、プリントサービス１０３からのファイルアップロード／ダウンロード及び、プリンターからの署名付きＵＲＬアクセスによるファイルダウンロードを受け付ける。【選択図】図１
2019133211.tif 000002
【特許請求の範囲】
【請求項１】
プリントサービス（１０３）は、
クライアントからの印刷要求に従い印刷データを生成する（Ｓ６．１．０、Ｓ６．１．１）手段と、
印刷データについてハッシュ計算を行い（３３５）記憶する（Ｓ６．２．１）手段と、
ハッシュ値計算時に、予め決められた印刷データ内の描画に関係のない要素を除く手段（Ｓ６．１．２）と、
ハッシュ値計算時に、予め決められた印刷データ生成時に決まる要素を除く手段（Ｓ６．１．２）と、
を有する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドプリントサービスにおいて、印刷データの描画同一性確認のための印刷データ生成方法に関する。
【背景技術】
【０００２】
近年、サーバーをインターネットに公開しクライアントにサービスを提供するクラウドサービスの形態が注目を集めている。プリントサーバーにおいてもインターネット上のプリントサービスとして機能が提供され始めている。クラウドサービスは、多くのコンピューティングリソースを用いてデータ変換やデータ処理を実行し、クライアントからの要求を分散並列処理することが主な特徴である。
【０００３】
また、クラウドサービスでは、複数組織、複数ユーザーの情報を扱う性質から、セキュリティや個人情報保護の観点より、組織・ユーザー毎の情報を分離して管理するとともに、その内容はサービス提供者であっても閲覧してはならない。これは、クラウドプリントサービスが生成した印刷データも同様である。クラウドプリントサービスにおいては、生成した印刷データが正しく描画されているかどうかが重要となる。特にエンタープライズ向けのサービスとしては、描画差異の発生が大きな問題となる場合がある。
【０００４】
こうした条件の中で、サービス提供者は描画差異が発生した場合の対策が求められるため、同一条件のもと生成された印刷データが同一の描画となることを、描画データ内容を閲覧することなく確認しなければいけないという課題があった。
【０００５】
これらの課題を解決する方法として、印刷の不備を複数の印刷データを比較し、正しい印字結果を選択することで適正な印刷結果を得るデータ処理方法がある。（例えば、特許文献１参照）この方法によると、複数の環境にて生成した印刷データを画像として比較することで、環境差異や生成タイミングによる印刷データの描画差異がある場合でも正しい印刷データを選択して使用することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2008-262285号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術では、ひとつの印刷処理のなかで生成した印刷データを画像として比較するため、比較画像の生成も必要となる。しかし、印刷データには一般的に、描画に関わる要素の他に、印刷を実行したユーザーの情報や各種ID等の印刷実行時情報と、タイムスタンプ等の生成時に決まる値がメタデータとして含まれる。そのため、印刷データファイルをそのまま比較する方法では、同一の描画結果が期待される条件で再度印刷を実行した場合でも、描画の同一性を確認することができないという課題があった。
【課題を解決するための手段】
【０００８】
本課題を解決するために、プリントサービス（１０３）は、
クライアントからの印刷要求に従い印刷データを生成する（Ｓ６．１．０、Ｓ６．１．１）手段と、
印刷データについてハッシュ計算を行い（３３５）記憶する（Ｓ６．２．１）手段と、
ハッシュ値計算時に、予め決められた印刷データ内の描画に関係のない要素を除く手段（Ｓ６．１．２）と、
ハッシュ値計算時に、予め決められた印刷データ生成時に決まる要素を除く手段（Ｓ６．１．２）と、
を有する。
【発明の効果】
【０００９】
本発明では、印刷データ生成時に印刷データのハッシュ値を計算して記録する。さらに、ハッシュ値の計算時に描画に影響を与えない要素を計算対象から除く処理を行ことで、描画の同一性のみをハッシュ値の比較で確認することができ、同一の描画結果が期待される条件で再度印刷を行った際に、印刷実行タイミングや実行環境に差異がある場合でも、描画の同一性の確認ができる。
【００１０】
これによりクラウドプリントサービスにおいて、生成した印刷データに予期しない不備が見つかった際、サービス提供者は同一条件で印刷を実行し、そのハッシュ値を比較することで、ユーザーの情報を閲覧することなしに、不備の再現性や原因特定のための分析を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】ネットワーク構成を示す図である。
【図２】各サービス、プリンターのハードウェア構成を示す図である。
【図３】各サービス、プリンターのソフトウェア構成を示す図である。
【図４】インデックスファイルの構成を示す図である。
【図５】印刷データ生成シーケンスを示す図である。
【図６】印刷データ生成時のハッシュ値計算シーケンスを示す図である。
【図７】印刷データの構造と、ハッシュ計算対象外属性の除去を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
＜システム構成＞
図１は、本発明の実施形態に係るプリントシステムの全体構成を示す図である。図１において、プリンター１０２は、有線または無線ＬＡＮを介してローカルネットワーク１０１に接続され、ローカルネットワーク１０１を介してインターネットワーク１００にアクセスし、プリントサービス１０３、ストレージサービス１０４にアクセスすることができる。プリンター１０２は、プリントサービス１０３、ストレージサービス１０４にアクセスして印刷を実現するための、プルプリントアプリ等のプログラムを実行する環境が内蔵されている。
【００１４】
プリントサービス１０３は、文書情報や印刷情報の管理と印刷データの生成を行うサーバーから成る。
【００１５】
本実施例では、プリントサービス１０３が、プリンター１０２からの印刷に関わるリクエストに応じて処理を実行し、生成した印刷データをストレージサービス１０４に配備して、その印刷データをプリンターに取得させることで印刷を実現している。ストレージサービス１０４はファイル管理を行うサービスであり、プリントサービス１０３からのファイルアップロード／ダウンロード及び、プリンターからの署名付きＵＲＬアクセスによるファイルダウンロードを受け付ける。
【００１６】
＜ハードウェア構成＞
図２は、本発明の実施形態に係るプリントシステムのプリントサービス１０３、ストレージサービス１０４、プリンター１０２のハードウェア構成図である。図２において、２０２は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。２０４は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンター情報等の各種データを記憶する。
【００１７】
２０３は一時記憶手段としてのＲＡＭであり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤＤ）である。プリントサービスプログラム、ストレージサービスプログラム、ＯＳ、各種ドライバ、関連プログラム等を格納している。２０６は表示手段であるディスプレイであり、キーボード２０７から入力したコマンドや、アプリケーションの出力画面、プリンターのステータス等を表示したりするものである。２０８は外部装置Ｉ／Ｆであり、印刷デバイス、ＵＳＢ機器、周辺機器を接続するためのＩ／Ｆである。
【００１８】
２０７は指示入力手段であるキーボードである。２０１はシステムバスであり、プリントサーバー、ストレージサーバー内におけるデータの流れを司るものである。２０９はネットワークインタフェースカード（ＮＩＣ）であり、該インターフェース２０９、ネットワーク１００，１０１を介して外部装置とのデータのやり取りを行う。なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤＤなどで変更することも可能である。
【００１９】
また、２１０はプリンター１０２のコントローラであり、プリンターの制御系を司る機器である。２１１は装置全体の制御を行うＣＰＵであり、システムバス２１９に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２１３に記憶された制御プログラム等あるいはディスクコントローラ(ＤＫＣ２１７)を介して接続された外部メモリ２２３に記憶された制御プログラムやリソースデータ等に基づく。２１２は、ＣＰＵ２１０の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００２０】
２１４は大容量メモリとして機能するハードディスク（ＨＤＤ）であり、プリント制御プログラム及び関係プログラム等を格納している。２２２は操作パネルで、プリント操作を行うユーザインタフェースやボタンが配置される。また、プリンター１０２の動作モード等の設定や、プリンター１０２の動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルやＬＥＤ等の表示部２１５も配置される。２２０は、ネットワークインタフェースカード（ＮＩＣ）であり、該インターフェースを介して外部装置とのデータのやり取りを行う。
【００２１】
なお、本図で示したプリントエンジン２２１は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。２１６のラスタコントローラは、ＰＤＬ言語・ＰＤＦ言語である印刷データを画像データに変換するコントローラである。２１８の機器Ｉ/Ｆは、ＵＳＢ等で接続可能な外部機器との接続Ｉ/Ｆである。
【００２２】
次に、図３において、本実施例を実施するために必要な図１に図示されるプリンター１０２、プリントサービス１０３、ストレージサービス１０４のソフトウェア構成と、それぞれが扱う管理情報について説明する。
【００２３】
＜プリンター１０２のソフトウェア構成＞
プリンター１０２には、プルプリントアプリ３２１があり、図２で示した記憶装置２１４に記憶されており、ＣＰＵ２１１によってＲＡＭ２１２にロードされ実行される。
【００２４】
プルプリントアプリ３２１は、操作パネル２２２にてユーザーから受け付けた操作に従い、プリントサービス１０３から印刷に係る情報を取得し、表示部２１５に表示する。さらに、プルプリントアプリ３２１は、印刷に係るリクエストをプリントサービス１０３に送信し、プリントサービス１０３から取得した情報を元に、ストレージサーバー１０４からの印刷データの取得、プリントエンジン２２１への印刷データの転送を行い、印刷を実行する。
【００２５】
＜プリントサービス１０３のソフトウェア構成と管理情報＞
プリントサービス１０３は、Ｗｅｂサーバー３３１、印刷情報管理部３３２、印刷データ生成部３３３、ストレージ３３４、ハッシュ生成器３３５から構成され、各ソフトウェアモジュールは図２で示したＨＤＤ２０５に記憶されており、前述したようにＣＰＵ２０２によってＲＡＭ２０３にロードされ実行される。
【００２６】
Ｗｅｂサーバー３３１は、プリントサービス１０３の各種インターフェースを提供し、プリンター１０２からの印刷リクエスト、印刷ジョブ情報取得リクエストを受付け、応答を返す。また、プリントサービス１０３のストレージ３３４には、印刷データ情報が格納されている。
【００２７】
表．文書情報には、印刷情報管理部３３２で管理されストレージ３３４に保持する文書情報の例を示す。
【００２８】
【表１】
2019133211.tif 000003
【００２９】
文書情報は、印刷情報管理部３３２で管理される、印刷データのもととなる文書についてのデータテーブルである。文書ＩＤは、プリントサービス１０３で管理する文書情報を一意に識別可能なＩＤである。文書データＵＲＬは、ストレージサービス１０４上に保持されている文書ファイルにアクセスするためのＵＲＬで、プリントサービス１０３は、このＵＲＬにアクセスすることで、文書情報に対応する文書データを取得することができる。
【００３０】
表．印刷ジョブ情報には、印刷情報管理部３３２で管理され、ストレージ３３４に保持する印刷ジョブ情報の例を示す。
【００３１】
【表２】
2019133211.tif 000004
【００３２】
印刷ジョブ情報は、印刷情報管理部３３２で管理される印刷処理についてのデータテーブルである。印刷ジョブＩＤは、プリンター１０２からの印刷リクエストをＷｅｂサーバー３３１にて受け付けた際に、印刷情報管理部３３２が発行する印刷処理を一意に識別可能なＩＤである。
【００３３】
文書ＩＤは、プリンター１０２からの印刷リクエストを受けつけた際に受け取る、印刷対象となる文書情報を特定するＩＤである。印刷属性は、印刷リクエストに含まれ、印刷データ生成時に印刷データ生成部３３３が参照する印刷設定情報である。印刷属性には、用紙サイズ、ページレイアウト、両面、カラーモード等があり、印刷データ生成部３３３は印刷属性に指定された内容に従い、印刷データを生成する。インデックスファイルＵＲＬは、印刷データ生成部３３３が印刷データ生成処理を開始した際に生成する後述のインデックスファイルにアクセスするためのＵＲＬである。
【００３４】
印刷データ生成部３３３は、文書ＩＤをもとに文書情報を特定し、文書データＵＲＬにアクセスすることで印刷対象の文書データを取得し、印刷リクエストとともにプリンター１０２から受け取った印刷属性に従い印刷データを生成する。この際、印刷データ生成部３３３は、印刷データを分割生成するとともに、その部分印刷データをストレージサービスにアップロードし、その都度インデックスファイルを生成、更新するという処理を行う。また、プリントサービス１０３は、Ｗｅｂサーバー３３１でプリンター１０２から印刷ジョブＩＤをキーとした印刷ジョブ情報取得リクエストを受け付けると、印刷情報管理部３３２が該当の印刷ジョブ情報を抽出して返す。
【００３５】
表．ハッシュ計算除外属性情報には、印刷データ生成部３３３が保持している、ハッシュ値計算所倍属性情報の例を示す。
【００３６】
【表３】
2019133211.tif 000005
【００３７】
ハッシュ値計算除外属性情報は、印刷データ生成部３３３に保持されている、印刷データのハッシュ値計算時に除外する印刷データ内の属性のリストである。ハッシュ値計算除外属性情報には、例えば、ジョブ名、ジョブＩＤ、実行ユーザー名、生成実行日時、パネルメッセージ等の描画に影響を与えない属性が予め登録されている。印刷データ生成部３３３は逐次生成した印刷データのうち、ハッシュ値計算除外属性情報のリストに含まれる属性ＩＤが一致する属性を取り除いたデータをハッシュ生成器３３５にわたし、ハッシュ値計算を依頼する。これにより、印刷データの描画に関わる要素のみについてのハッシュ値を計算できる。
【００３８】
また、ハッシュ生成器３３５においては、ハッシュの計算にはＭＤ５、ＳＨＡ１、ＳＨＡ２５６、ＣＲＣなどのアルゴリズムが利用でき、さらに、入力データの逐次入力が可能で、入力されたデータについて逐次計算を行い、ハッシュ値の更新を行う。
【００３９】
＜ストレージサービス１０４のソフトウェア構成と管理情報＞
ストレージサービス１０４はＷｅｂサーバー３４１、ファイル情報管理部３４２、ストレージ３４３から構成され、各ソフトウェアモジュールは図２で示した記憶装置２０５に記憶されており、前述したようにＣＰＵ２０２によってＲＡＭ２０３にロードされ実行される。
【００４０】
Ｗｅｂサーバー３４１はストレージサービス１０４の各種インターフェースを提供する。ファイル情報管理部３４２は、ファイル情報を管理し、Ｗｅｂサーバー３４１で受け付けたリクエストに応じてファイルの入出力を行う。ストレージ３４３はファイル情報やストレージサービス１０４が受信したファイルが格納されている。
【００４１】
表.ファイル情報に、ファイル情報管理部３４２で管理されるファイル情報の例を示す。
【００４２】
【表４】
2019133211.tif 000006
【００４３】
ファイル情報は、ファイル情報管理部３４２で管理されるストレージサービス１０４に保存するファイルの情報である。データＵＲＬはストレージサービス１０４に保存されている各ファイルの取得先を示すＵＲＬである。ファイルパスはストレージ上のファイルパスでありファイルの格納場所を示す。データＵＲＬに対するリクエストをＷｅｂサーバー３４１で受け付け、ファイル情報管理部３４２が該当するファイル情報を更新し、ストレージ３４３のファイル操作を行う。
【００４４】
たとえば、クライアントは、データＵＲＬに対してＨＴＴＰ  ＧＥＴメソッドをリクエストすると対応するファイルがダウンロードできる。また、データＵＲＬに対してＨＴＴＰ  ＰＵＴメソッドにファイル添付してリクエストするとファイルをアップロードし保存できる。さらに、データＵＲＬに対してＨＴＴＰ  ＤＥＬＥＴＥメソッドをリクエストすると対応するファイルを削除できる。
【００４５】
また、ストレージサービス１０４には署名付きＵＲＬを発行する機能があり、ファイルをアップロードしたクライアントが、データＵＲＬに署名を含めた一時的なＵＲＬを発行することができ、そのＵＲＬを教えることで、第三者に対してファイルへのアクセスを許可することができる。本実施の形態においては、インデックスファイル、印刷データファイルを管理するプリントサービス１０３が、ストレージサービス１０４の各データについての署名付きＵＲＬを発行する。
【００４６】
プリンター１０２のプルプリントアプリ３２１は、この署名付きＵＲＬを使用してストレージサービス１０４にアクセスすることで、各データをダウンロードすることができる。また、セキュリティの観点から、プリントサービス１０３は、署名付きＵＲＬの発行時に有効期限を指定しており、その期限が切れると署名付きＵＲＬでのアクセスはできなくなる。以降特別な断りがない限り、各データ取得のためのＵＲＬは、プリントサービス１０３がストレージサービス１０４で発行した、有効期限のある署名付きＵＲＬを指すものとする。
【００４７】
＜インデックスファイル＞
次に、プリントサービス１０３の印刷データ生成時に生成し、逐次更新を行うインデックスファイルについて説明する。
【００４８】
図４において、４００〜４３０は、プリントサービス１０３が、印刷データ生成処理を実行する際に生成、更新を行うインデックスファイルの例を時系列順に示したものである。プリントサービス１０３はまず、処理が開始された時点で、ストレージサービス１０４上にインデックスファイルを生成する。本実施例では、インデックスファイルはＪＳＯＮファイル形式を採用し、”dataList”をキーとする処理結果の印刷データＵＲＬのリストと、”end”をキーとする処理完了フラグから成る。
【００４９】
ここで本実施例では、印刷データ生成結果をＰＤＬファイルとし、ファイル出力単位はプリントサービス１０３で予め決められた固定のデータサイズで区切られるものとする。ただし、ファイル出力単位は固定のデータサイズによる分割とする必要はなく、ファイル生成毎に変動させてもよい。また、データサイズではなく、ページ数単位での出力など、印刷データ生成部３３３で制御可能であればこれに限らない。
【００５０】
プリントサービス１０３は、印刷データ生成処理開始時に、初期状態のインデックスファイル４００を生成する。この時、未だ1ファイルもファイルが生成されていないため、インデックスファイルの”dataList”には何もリストされておらず、処理結果を示す”end”の値はfalseである。この後、プリントサービス１０３は、順次印刷データ生成処理を実行し、結果のファイルをストレージサービス１０４にアップロードし、そのデータＵＲＬをインデックスファイル”dataList”に追加していく。１ファイル目がアップロードされると４１０、２ファイル目がアップロードされると４２０となり、インデックスファイルの”dataList”にアップロードしたデータＵＲＬが追加される。
【００５１】
また、プリントサービス１０３は、全印刷データの生成が完了すると、最後のファイルとなる処理結果のファイルをアップロードし、インデックスファイルを４３０の状態に更新する。４３０では、”dataList”に最後のファイルに対応するデータＵＲＬが追加されているとともに、処理完了フラグ”end”を、trueにする。
【００５２】
このインデックスファイルをストレージサービス１０４から取得して参照することで、プリンター１０２は、プリントサービス１０３の印刷データ生成処理の進捗を知ることができ、印刷データ生成が完了している印刷データファイルからダウンロードして印刷することができる。
【００５３】
これにより、プリンター１０２のプルプリントアプリ３２１からプリントサービス１０３へ印刷リクエストを発行してから、１ページ目の印刷データのダウンロードと印刷が開始されるまでの時間が短縮される。特に大量ページの文書で、全印刷データの生成に長時間を要する場合に、ユーザーの待ち時間を大幅に短縮できる。
【００５４】
ここからは、本実施の形態における各処理  のフローについて説明する。
【００５５】
＜印刷データ生成シーケンス＞
図５は、本実施の形態における、プリンター１０２が、プリントサービス１０３に印刷リクエストを発行してから、プリントサービス１０２が文書データから印刷データを生成し、プリンター１０２が印刷データのダウンロードを行うまでのフローを示した図である。
【００５６】
図５において、プリンター１０２のプルプリントアプリ３２１は、予めプリントサービス１０３にアクセスし、印刷情報管理部３３２で管理されている文書情報を取得し、表示部２１５にリストとして表示している。また、プルプリントアプリ３２１は、操作パネル２２２で、ユーザーからの印刷対象の文書の選択と、印刷属性の指示を受ける。
【００５７】
Ｓ５．１．０で、プリンター１０２のプルプリントアプリ３２１は、操作パネル２２２からユーザーの操作を受付け、印刷対象の文書情報の文書ＩＤと、印刷属性を含む印刷リクエストをプリントサービス１０３に送信する。プリントサービス１０３は、Ｗｅｂサーバー３３１で印刷リクエストを受信すると、Ｓ５．１．１において、印刷情報管理部３３２で、印刷ジョブＩＤを発行して印刷ジョブ情報を生成する。また、プリントサービス１０３は、Ｓ５．１．０の応答として、Ｓ５．１．１で発行した印刷ジョブＩＤをプリンター１０２へ返す。
【００５８】
プリントサービス１０３は、印刷ジョブ情報を生成すると、Ｓ５．２．０において、印刷データ生成部３３３で、前述のインデックスファイル（４００）を生成し、ストレージサービス１０４にアップロードする。印刷情報管理部３３２において、ストレージサービス１０４に保存したインデックスファイル（４００）にアクセスするためのＵＲＬを印刷ジョブ情報に登録する。
【００５９】
さらに、印刷情報管理部３３２において、印刷ジョブ情報の文書ＩＤをキーに文書情報から印刷対象の文書データＵＲＬを取得し、印刷データ生成部３３３にて印刷データ生成を開始する。印刷データ生成部３３３は、Ｓ５．２．１で、文書データＵＲＬにアクセスして文書データを取得し、Ｓ５．２．２において、印刷ジョブ情報に含まれる印刷属性に基づいて印刷データの生成を開始する。印刷データ生成部３３３は生成した印刷データが予め決められたサイズに達すると、Ｓ５．２．３において、生成したデータをファイルとしてストレージサービス１０４にアップロードする。
【００６０】
そして、Ｓ５．２．４で印刷データ生成部３３３は、Ｓ５．２．３でアップロードしたファイルにアクセス可能なＵＲＬをインデックスファイルに書き込む（４１０）。印刷データ生成部３３３は、印刷データ生成処置（Ｓ５．２．２）を続けており、印刷データの生成が進む毎に印刷データファイルのアップロード（Ｓ５．２．５）し、インデックスファイルにＵＲＬを追加（４２０）する（Ｓ５．２．６）。印刷データ生成部３３３は、Ｓ５．２．７で最後の印刷データファイルをストレージサービス１０４にアップロードし、Ｓ５．２．８で、そのＵＲＬをインデックスファイルに追加するとともに、印刷データ生成完了を表すフラグを更新する（４３０）。
【００６１】
印刷データ生成が完了すると、Ｓ５．２．９で、印刷情報管理部３３２は、印刷ジョブ情報の文書ＩＤと印刷属性の値からリクエストハッシュ値を計算し、印刷ジョブ情報に登録する。本実施例においては、印刷リクエストに含まれる文書ＩＤと印刷属性から生成されるハッシュ値を比較することで、生成する印刷データの同一性を確かめる。
【００６２】
ただし、リクエスト内容から、生成する印刷データの同一性を確かめることができればハッシュ値として保持する必要はなく、単純にリクエスト情報を比較する、もしくは比較時にハッシュ値を計算してもよい。また、比較に使用する情報は、生成する印刷データに影響を与える要素を含んでいればよく、文書ＩＤ、印刷属性に限られるものではない。
【００６３】
ここで、プリンター１０２のプルプリントアプリ３２１は、Ｓ５．１．２で、印刷ジョブＩＤを受信した後、Ｓ５．３．０において、プリントサービス１０３に印刷ジョブＩＤをキーに該当の印刷ジョブ情報を取得する。プルプリントアプリ３２１はＳ５．３．０で取得した印刷ジョブ情報にインデックスファイルＵＲＬが含まれていた場合、Ｓ５．３．１でそのＵＲＬにアクセスしてインデックスファイルを取得する。
【００６４】
Ｓ５．３．０で印刷ジョブ情報を取得した際、プリントサービス１０３でインデックスファイル生成のアップロード（Ｓ５．２．０）が済んでいない場合、印刷ジョブ情報にインデックスファイルＵＲＬが含まれない。その場合プルプリントアプリ３２１は、印刷ジョブ情報にインデックスファイルＵＲＬが含まれるまで、間をあけて印刷ジョブ情報の再取得を繰り返す。
【００６５】
Ｓ５．３．１で、インデックスファイルを取得すると、プルプリントアプリ３２１は、インデックスファイルを参照し、データリストに生成済みでかつ未取得の印刷データＵＲＬが存在した場合（４１０）、Ｓ５．３．２でそのデータＵＲＬから印刷データを取得する。データリストに未取得の印刷データＵＲＬが無い場合には、プルプリントアプリ３２１は、間をおいてインデックスファイルを再取得（Ｓ５．３．１）し、データリストを確認する。プルプリントアプリ３２１は、これらの処理を順次実行（Ｓ５．３．１〜Ｓ５．３．４）し、インデックスファイルのデータリストに未取得のデータＵＲＬが無く、かつ、処理完了を示す値を確認できた（４３０）場合に印刷データの取得が完了したと判断する。
【００６６】
また、プルプリントアプリ３２１は、印刷データの取得処理と並行して、プリントエンジン２２１に印刷データを送っており、取得できた印刷データから順に印刷が実行される。
【００６７】
＜ハッシュ値計算シーケンス＞
図６は、前述図５で示したＳ５．２．１〜Ｓ５．２．７のシーケンスのなかで、プリントサービス１０２の印刷データ生成部３３３が、印刷データのハッシュ値を計算し、記録を行う処理を示したシーケンスである。
【００６８】
印刷データ生成部３３３は、Ｓ６．０．１において、印刷情報管理部３３２から印刷データ生成の指示を受けると、文書情報と印刷ジョブ情報をもとに、Ｓ６．０．２で、ストレージサービス１０４から文書データファイルを取得する。印刷データ生成部３３３は印刷データの生成を開始するにあたり、Ｓ６．０．４でハッシュ生成器３３５にハッシュ生成初期化を依頼する。印刷データ生成部３３３は、Ｓ６．１．０で印刷データを生成すると、Ｓ６．１．１でストレージ３３４上に印刷データファイルとして出力する。ここで、印刷データ生成部３３３は、Ｓ６．１．２において、Ｓ６．１．０で生成した印刷データからハッシュ対象外データの除去を行い、除去後のデータをＳ６．１．３でハッシュ生成器３３５に入力し、ハッシュ値の更新を行う。
【００６９】
ここで、図７において、印刷データの構造と、ハッシュ計算所倍データの除去について説明する。７００は印刷データの構造を示す、印刷データは、ヘッダ７１０と、複数の属性情報から成る。ヘッダ７１０は印刷データ全体のメタデータを含み、データ種別などが含まれる。属性情報は、描画データの要素であり、属性ＩＤ７２１、属性データサイズ７２２、属性データ７２３から成る。印刷データ生成部３３３は、Ｓ６．１．０で、生成した印刷データを先頭から順に参照し、属性ＩＤを見つけると、その値が前述のハッシュ値計算除外属性情報に含まれるか確認する。
【００７０】
ハッシュ値計算除外属性情報に含まれない場合、その属性データは除外しないハッシュ計算対象データ７２０として次のデータに進む。ハッシュ値計算除外属性情報に含まれる場合、その属性データはハッシュ計算除外データ７３０とし、該当の属性データサイズ７３２、属性データ７３３を除去して次にすすむ。印刷データ生成部３３３は、Ｓ６．１．０で生成した印刷データの最後までこの除去処理を行うことで、予め決められたハッシュ値計算除外属性情報に保持されている情報について除去したデータを入力として、ハッシュ生成器３３５にてハッシュ値の更新を行う。
【００７１】
次に印刷データ生成部３３３は、Ｓ６．１．４で、ストレージサービス１０４への印刷データのアップロードと、Ｓ６．１．５で、インデックスファイルの更新を行う。印刷データ生成部３３３は、Ｓ６．１．０〜Ｓ６．１．５をすべての印刷データ生成が完了するまで繰り返す。すべての印刷データ生成が完了すると、印刷データ生成部３３３は、Ｓ６．２．０で、ハッシュ生成器３３５にハッシュ値の確定を指示し、ハッシュ値の結果を受け取る。最簿にＳ６．２．１で、印刷データ生成部３３３は、Ｓ６．２，０で取得したハッシュ値をログに出力する。
【００７２】
本実施例の方法によれば、予めハッシュ計算除外属性情報に登録された、印刷データの描画に影響しない、動的に変化する要素を除外した状態でハッシュ値を計算、記録を行う。これにより、同一の描画が期待される条件での印刷について、印刷タイミングや、実行ユーザーなどの描画に影響しない要素に関係なく同じ値が得られ、印刷データの予期しない不備の検知や、サービス提供者の問題調査を容易にする。また、ハッシュ値で記録することで、サービス提供者は、サービス利用者の個人情報である印刷データの描画内容を参照することなく印刷データの不備を検証することができる。
【符号の説明】
【００７３】
１０２  プリンター
１０３  プリントサービス
１０４  ストレージサービス
【図１】
2019133211.tif 000007
【図２】
2019133211.tif 000008
【図３】
2019133211.tif 000009
【図４】
2019133211.tif 000010
【図５】
2019133211.tif 000011
【図６】
2019133211.tif 000012
【図７】
2019133211.tif 000013