(57)【要約】【課題】  第１のテーブル内の内容と第２のテーブル内の内容とを整合させるための技術を提供する。【解決手段】  プリンタは、サーバから、印刷データとデータ識別情報とを受信する第１の受信部と、印刷データを用いて得られる対象データとデータ識別情報とを対応付けて第２のテーブル内に記憶させる第１の記憶制御部と、外部装置から、所定の信号を受信する第２の受信部と、外部装置から所定の信号が受信される場合に、関係情報要求をサーバに送信する送信部と、関係情報要求をサーバに送信することに応じて、サーバから内容関係情報を受信する第３の受信部と、サーバから内容関係情報が受信される場合に、内容関係情報を利用して、第１のテーブル内の内容と第２のテーブル内の内容とを整合させる整合処理を実行する整合処理実行部と、を備える。【選択図】図６
2020152074.tif 000002
【特許請求の範囲】
【請求項１】
プリンタであって、
通信インターフェースと、
サーバから、前記通信インターフェースを介して、印刷対象画像に対応する印刷データと、前記印刷データを識別するデータ識別情報と、を受信する第１の受信部であって、
前記サーバは、端末装置から、前記印刷対象画像の印刷を前記プリンタに実行させるための印刷要求が受信される場合に、前記印刷データに関係するデータ関係情報と前記データ識別情報とを対応付けて第１のテーブル内に記憶し、前記印刷データと前記データ識別情報とを前記プリンタに送信する、前記第１の受信部と、
前記サーバから前記印刷データと前記データ識別情報とが受信される場合に、前記印刷データを用いて得られる対象データと前記データ識別情報とを対応付けて第２のテーブル内に記憶させる第１の記憶制御部と、
外部装置から、前記通信インターフェースを介して、所定の信号を受信する第２の受信部と、
前記外部装置から前記所定の信号が受信される場合に、前記通信インターフェースを介して、関係情報要求を前記サーバに送信する送信部であって、前記関係情報要求は、前記第１のテーブル内の内容に関係する内容関係情報を送信することを前記サーバに要求するための信号である、前記送信部と、
前記関係情報要求を前記サーバに送信することに応じて、前記サーバから、前記通信インターフェースを介して、前記内容関係情報を受信する第３の受信部と、
前記サーバから前記内容関係情報が受信される場合に、前記内容関係情報を利用して、前記第１のテーブル内の内容と前記第２のテーブル内の内容とを整合させる整合処理を実行する整合処理実行部と、
を備える、プリンタ。
【請求項２】
第１のデータ識別情報と第１のデータ関係情報とが前記第１のテーブルに対応付けて記憶された後に、前記第１のデータ識別情報と前記第１のデータ関係情報とが前記第１のテーブルから消去されたことに起因して、前記内容関係情報が、前記第１のテーブルが前記第１のデータ識別情報を記憶していないことを示し、かつ、前記第２のテーブルが、前記第１のデータ識別情報と、第１の印刷データを用いて得られる第１の対象データと、を対応付けて記憶している場合に、前記整合処理は、前記第２のテーブルから前記第１のデータ識別情報と前記第１の対象データとを消去する消去処理を含む、請求項１に記載のプリンタ。
【請求項３】
前記プリンタは、さらに、
印刷実行部と、
前記第２のテーブル内の前記対象データに対応する前記印刷対象画像の印刷を実行するための指示が与えられる場合に、前記対象データを利用して、前記印刷対象画像の印刷を前記印刷実行部に実行させる印刷制御部と、
前記印刷対象画像の印刷が完了する場合に、前記第２のテーブルから前記データ識別情報と前記対象データとを消去する消去部と、
前記印刷対象画像の印刷が完了する場合に、前記データ識別情報を含む印刷完了情報をメモリに記憶させる第２の記憶制御部と、を備える、請求項１又は２に記載のプリンタ。
【請求項４】
前記内容関係情報が、前記第１のテーブルが第２のデータ識別情報を記憶していることを示し、かつ、前記第２のテーブルが、前記第２のデータ識別情報と、第２の印刷データを用いて得られる第２の対象データと、を記憶しておらず、かつ、前記メモリが前記第２のデータ識別情報を含む前記印刷完了情報を記憶している場合に、前記整合処理は、前記通信インターフェースを介して、前記第２のデータ識別情報を含む消去要求を前記サーバに送信する消去要求送信処理を含み、
前記消去要求は、前記第１のテーブルから、前記第２のデータ識別情報に対応付けられている第２のデータ関係情報を消去することを前記サーバに要求するための信号である、請求項３に記載のプリンタ。
【請求項５】
前記消去要求は、前記第２のテーブル内の前記第２の対象データに対応する第２の印刷対象画像の印刷が完了したことを示す情報を含む、請求項４に記載のプリンタ。
【請求項６】
前記内容関係情報が、前記第１のテーブルが第３のデータ識別情報を記憶していることを示し、かつ、前記第２のテーブルが、前記第３のデータ識別情報と、第３の印刷データを用いて得られる第３の対象データと、を記憶しておらず、かつ、前記メモリが前記第３のデータ識別情報を含む前記印刷完了情報を記憶していない場合に、前記整合処理は、送信処理と、受信処理と、記憶処理と、を含み、
前記送信処理は、前記通信インターフェースを介して、前記第３のデータ識別情報を含むデータ要求を前記サーバに送信する処理を含み、
前記データ要求は、前記第３のデータ識別情報に対応付けて前記第１のテーブルに記憶されている第３のデータ関係情報によって識別される前記第３の印刷データを送信することを前記サーバに要求するための信号であり、
前記受信処理は、前記データ要求を前記サーバに送信することに応じて、前記サーバから、前記通信インターフェースを介して、前記第３の印刷データを受信する処理を含み、
前記記憶処理は、前記第３のデータ識別情報と、前記第３の印刷データを用いて得られる前記第３の対象データと、を対応付けて、前記第２のテーブルに記憶させる処理を含む、請求項３〜５のいずれか一項に記載のプリンタ。
【請求項７】
前記外部装置は、前記サーバであり、
前記所定の信号は、前記サーバが前記印刷データと前記データ識別情報とを対応付けて前記第１のテーブル内に記憶する場合に、前記サーバから前記プリンタに送信される通知である、請求項１〜６のいずれか一項に記載のプリンタ。
【請求項８】
前記外部装置は、端末装置であり、
前記所定の信号は、印刷対象画像に対応する印刷データを含む、請求項１〜６のいずれか一項に記載のプリンタ。
【請求項９】
プリンタのためのコンピュータプログラムであって、
前記プリンタのコンピュータを、以下の各部、即ち、
サーバから、前記プリンタの通信インターフェースを介して、印刷対象画像に対応する印刷データと、前記印刷データを識別するデータ識別情報と、を受信する第１の受信部であって、
前記サーバは、端末装置から、前記印刷対象画像の印刷を前記プリンタに実行させるための印刷要求が受信される場合に、前記印刷データに関係するデータ関係情報と前記データ識別情報とを対応付けて第１のテーブル内に記憶し、前記印刷データと前記データ識別情報とを前記プリンタに送信する、前記第１の受信部と、
前記サーバから前記印刷データと前記データ識別情報とが受信される場合に、前記印刷データを用いて得られる対象データと前記データ識別情報とを対応付けて第２のテーブル内に記憶させる第１の記憶制御部と、
外部装置から、前記通信インターフェースを介して、所定の信号を受信する第２の受信部と、
前記外部装置から前記所定の信号が受信される場合に、前記通信インターフェースを介して、関係情報要求を前記サーバに送信する送信部であって、前記関係情報要求は、前記第１のテーブル内の内容に関係する内容関係情報を送信することを前記サーバに要求するための信号である、前記送信部と、
前記関係情報要求を前記サーバに送信することに応じて、前記サーバから、前記通信インターフェースを介して、前記内容関係情報を受信する第３の受信部と、
前記サーバから前記内容関係情報が受信される場合に、前記内容関係情報を利用して、前記第１のテーブル内の内容と前記第２のテーブル内の内容とを整合させる整合処理を実行する整合処理実行部と、
として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、サーバから印刷データを受信するプリンタに関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、プリンタとＰＣと仲介サーバとを備える印刷システムが開示されている。仲介サーバは、ＰＣから画像データを含む印刷実行要求が受信されると、ジョブＩＤを生成し、生成済みのジョブＩＤを記憶する。そして、仲介サーバは、画像データを記憶したことを示す記憶通知をプリンタに送信する。プリンタは、記憶通知を受信すると、ジョブＩＤ及び画像データの送信を要求するチケット要求を仲介サーバに送信し、仲介サーバから、ジョブＩＤ及び画像データを受信する。そして、プリンタは、ジョブＩＤ及び画像データを記憶する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１８２１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の印刷システムにおいて、仲介サーバに記憶されているジョブＩＤとプリンタに記憶されているジョブＩＤとが整合しない状況が発生し得る。本明細書は、サーバによって情報が記憶される第１のテーブル内の内容と、プリンタによって情報が記憶される第２のテーブル内の内容と、を整合させるための技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書によって開示されるプリンタは、通信インターフェースと、サーバから、前記通信インターフェースを介して、印刷対象画像に対応する印刷データと、前記印刷データを識別するデータ識別情報と、を受信する第１の受信部であって、前記サーバは、端末装置から、前記印刷対象画像の印刷を前記プリンタに実行させるための印刷要求が受信される場合に、前記印刷データに関係するデータ関係情報と前記データ識別情報とを対応付けて第１のテーブル内に記憶し、前記印刷データと前記データ識別情報とを前記プリンタに送信する、前記第１の受信部と、前記サーバから前記印刷データと前記データ識別情報とが受信される場合に、前記印刷データを用いて得られる対象データと前記データ識別情報とを対応付けて第２のテーブル内に記憶させる第１の記憶制御部と、外部装置から、前記通信インターフェースを介して、所定の信号を受信する第２の受信部と、前記外部装置から前記所定の信号が受信される場合に、前記通信インターフェースを介して、関係情報要求を前記サーバに送信する送信部であって、前記関係情報要求は、前記第１のテーブル内の内容に関係する内容関係情報を送信することを前記サーバに要求するための信号である、前記送信部と、前記関係情報要求を前記サーバに送信することに応じて、前記サーバから、前記通信インターフェースを介して、前記内容関係情報を受信する第３の受信部と、前記サーバから前記内容関係情報が受信される場合に、前記内容関係情報を利用して、前記第１のテーブル内の内容と前記第２のテーブル内の内容とを整合させる整合処理を実行する整合処理実行部と、を備える。
【０００６】
上記の構成によると、プリンタは、外部機器から所定の信号が受信される場合に、関係情報要求をサーバに送信し、サーバから、第１のテーブル内の内容に関係する内容関係情報を受信する。そして、プリンタは、内容関係情報を利用して、第１のテーブル内の内容と第２のテーブル内の内容とを整合させる整合処理を実行する。従って、第１のテーブル内の内容と第２のテーブル内の内容とを整合させることができる。
【０００７】
上記のプリンタを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記のプリンタとサーバとを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【０００８】
【図１】通信システムの構成を示す。
【図２】各テーブルを示す。
【図３】登録プロセスのシーケンス図を示す。
【図４】ｓｈａｒｅユーザ登録プロセスのシーケンス図を示す。
【図５】サブミットプロセスのシーケンス図を示す。
【図６】蓄積処理のフローチャートを示す。
【図７】整合処理のフローチャートを示す。
【図８】ジョブ更新処理のフローチャートを示す。
【図９】プリンタがサーバからジョブ通知を受信するケースＡのシーケンス図を示す。
【図１０】蓄積テーブル内の印刷データを利用した印刷が実行されるケースＢのシーケンス図を示す。
【図１１】プリンタからサーバへの印刷完了通知の送信が失敗するケースＣのシーケンス図を示す。
【図１２】ＰＣからサーバに消去要求が送信されるケースＤのシーケンス図を示す。
【図１３】サーバからプリンタへのジョブ通知の送信が失敗するケースＥのシーケンス図を示す。
【図１４】第２実施例に係るジョブ更新処理のフローチャートを示す。
【発明を実施するための形態】
【０００９】
（第１実施例）
（通信システム２の構成；図１）
図１に示すように、通信システム２は、プリンタ１０と、複数個のＰＣ９０−１、９０−２と、画像処理サーバ（以下では、単に「サーバ」と記載する）１００と、を備える。プリンタ１０及び各ＰＣ９０−１等は、ＬＡＮ６を介して、インターネット４に接続されている。サーバ１００は、インターネット４に接続されている。従って、プリンタ１０及び各ＰＣ９０−１等は、インターネット４を介して、サーバ１００と通信可能である。以下では、複数個のＰＣ９０−１、９０−２を総称して、「ＰＣ９０」と記載することがある。
【００１０】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺装置（即ちＰＣ９０等の周辺装置）である。なお、プリンタ１０は、印刷機能に加えて、スキャン機能、ＦＡＸ機能等を実行可能な多機能機であってもよい。プリンタ１０は、操作部１２と、表示部１４と、ネットワークインターフェース（以下ではインターフェースを「Ｉ／Ｆ」と記載する）１６と、印刷実行部２０と、制御部３０と、を備える。プリンタ１０には、プリンタ名「ｐｒ１」が割当てられている。
【００１１】
操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ネットワークＩ／Ｆ１６は、ＬＡＮ６に接続されている。ネットワークＩ／Ｆ１６は、無線Ｉ／Ｆであってもよいし、有線Ｉ／Ｆであってもよい。印刷実行部２０は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１２】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。ＣＰＵ３２は、メモリ３４に記憶されているプログラム３６に従って、様々な処理を実行する。メモリ３４は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ３４は、さらに、ユーザテーブル３８（図２参照）、蓄積テーブル４０（図２参照）、及び、履歴テーブル４２（図２参照）を記憶する。
【００１３】
（ＰＣ９０−１等の構成）
各ＰＣ９０−１、９０−２は、プリンタ１０に印刷を実行させるためのプリンタドライバを備えていない。また、各ＰＣ９０−１等は、例えば、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）等のブラウザプログラム（図示省略）を備えている。各ＰＣ９０−１等は、本実施例では、据置型の端末装置（例えばデスクトップＰＣ等）であるが、変形例では、携帯電話（例えばスマートフォン）、ＰＤＡ、ノートＰＣ、タブレットＰＣ等の可搬型の端末装置であってもよい。
【００１４】
（画像処理サーバ１００の構成）
サーバ１００は、インターネット上に設置されるサーバであり、例えば、Ｇｏｏｇｌｅ（登録商標）によって提供されるＧＣＰ（Google Cloud Printの略）サーバである。なお、変形例では、サーバ１００は、例えば、プリンタ１０のベンダによって提供されるサーバであってもよい。サーバ１００は、プリンタ１０とＰＣ９０との間で印刷の仲介を実行するためのサーバである。即ち、サーバ１００は、ＰＣ９０からサブミットされる画像ファイルを変換して、プリンタ１０が解釈可能なデータ形式を有する印刷データを生成し、当該印刷データをプリンタ１０に送信する。従って、ＰＣ９０は、画像ファイルを印刷データに変換するためのプリンタドライバを備えていなくても、サーバ１００に画像ファイルをサブミットすれば、プリンタ１０に印刷を実行させることができる。プリンタ１０の各ユーザは、当該ユーザのアカウント情報（例えばGoogle Account）をサーバ１００に予め登録しておく。
【００１５】
サーバ１００は、ネットワークＩ／Ｆ１１６と、制御部１３０と、を備える。ネットワークＩ／Ｆ１１６は、インターネット４に接続されている。制御部１３０は、ＣＰＵ１３２と、メモリ１３４と、を備える。ＣＰＵ１３２は、メモリ１３４に記憶されているプログラム１３６に従って、様々な処理を実行する。メモリ１３４は、さらに、アカウントテーブル１３８（図２参照）、及び、ジョブテーブル１４０（図２参照）を記憶する。
【００１６】
（各テーブル３８、４０、４２、１３８、１４０の内容；図２）
続いて、図２を参照して、プリンタ１０内の各テーブル３８、４０、４２、及び、サーバ１００内の各テーブル１３８、１４０の内容を説明する。
【００１７】
プリンタ１０内の各テーブル３８、４０、４２は、プリンタ１０の出荷時には空の状態である。ユーザテーブル３８では、ユーザＩＤと、パスワードと、アカウント情報と、が対応付けられている。ユーザＩＤ及びパスワードは、ユーザがプリンタ１０にログインするために利用される情報である。アカウント情報は、ユーザがサーバ１００にログインするために利用される情報である。ユーザテーブル３８内の各情報は、プリンタ１０の管理者によって登録される。
【００１８】
蓄積テーブル４０では、アカウント情報と、ジョブＩＤと、印刷条件情報と、印刷データと、が対応付けられている。ジョブＩＤは、印刷データを識別するための情報であり、サーバ１００によって生成される。印刷条件情報は、印刷を実行するための条件（例えば用紙サイズ、色数等）を示す情報である。蓄積テーブル４０の各情報は、後述の図７の整合処理において記憶される。
【００１９】
履歴テーブル４２では、ジョブＩＤと、印刷ステータスと、が記憶される。印刷ステータスは、当該印刷ステータスに対応付けられているジョブＩＤに対応する印刷データを利用した印刷が実行済みであることを示す「印刷済」と、当該印刷データを利用した印刷がキャンセルされたことを示す「キャンセル」と、のどちらかの情報を示す。
【００２０】
続いて、サーバ１００内の各テーブル１３８、１４０について説明する。アカウントテーブル１３８では、アカウント情報と、プリンタ情報と、トークンと、権限情報と、が対応付けられている。プリンタ情報は、プリンタ名と、デバイスＩＤと、を含む。デバイスＩＤは、サーバ１００がプリンタ１０を識別するための情報である。トークンは、プリンタ１０がサーバ１００との通信を実行するために利用される認証情報（具体的にはアクセストークン）である。権限情報は、「Ｏｗｎｅｒ」及び「Ｓｈａｒｅ」のどちらかを示す情報である。「Ｏｗｎｅｒ」は、当該権限情報に対応付けられているプリンタ情報に、新たなユーザ（即ちｓｈａｒｅユーザ）を対応付ける権限を有することを示す。「Ｓｈａｒｅ」は、当該権限情報に対応付けられているプリンタ情報に、新たなユーザを対応付ける権限を有さないことを示す。アカウントテーブル１３８内の各情報は、後述の図３及び図４の登録プロセスにおいて記憶される。
【００２１】
ジョブテーブル１４０では、ジョブＩＤと、デバイスＩＤと、アカウント情報と、チケットＵＲＬと、データＵＲＬと、ジョブステータスと、が対応付けられている。チケットＵＲＬは、当該チケットＵＲＬに対応付けられているジョブＩＤに対応する印刷条件情報が記憶されているサーバ１００内の位置を示すＵＲＬである。データＵＲＬは、当該データＵＲＬに対応付けられているジョブＩＤに対応する印刷データが記憶されているサーバ１００内の位置を示すＵＲＬである。ジョブステータスは、当該ジョブステータスに対応付けられている印刷データを利用した印刷が実行されるのを待機している「印刷待」と、当該印刷データを利用した印刷が実行済みであることを示す「印刷済」と、当該印刷データを利用した印刷がキャンセルされたことを示す「キャンセル」と、のうちのいずれかの情報を示す。なお、以下では、ジョブＩＤ、デバイスＩＤ、アカウント情報、チケットＵＲＬ、データＵＲＬ、及び、ジョブステータスを総称して、ジョブ情報と記載することがある。ジョブテーブル１４０内の各情報は、後述の図５のサブミットプロセスにおいて記憶される。
【００２２】
（登録プロセス：図３）
続いて、図３を参照して、登録プロセスについて説明する。登録プロセスは、権限情報「Ｏｗｎｅｒ」に対応するアカウント情報とプリンタ１０に関する情報とをサーバ１００に対応付けて登録するプロセスである。図３では、プリンタ１０がサーバ１００に登録される。図３の初期状態において、サーバ１００には、ＰＣ９０−１のユーザ（以下では、「第１のユーザ」と記載する）を識別するアカウント情報ＡＩ１が登録済みである。なお、以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばプリンタ１０のＣＰＵ３２）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばプリンタ１０）を主体として記載することがある。また、プリンタ１０、サーバ１００によって実行される全ての通信は、それぞれ、ネットワークＩ／Ｆ１６、１１６を介して実行される。従って、以下では、「ネットワークＩ／Ｆ１６（又は１１６）を介して」という記載を省略する。また、ＰＣ９０−１によって実行される以下の各処理は、ブラウザプログラムに従って実行される。従って、以下では、「ブラウザプログラムに従って」という記載を省略する。
【００２３】
ＰＣ９０−１は、アカウント情報ＡＩ１の入力とサーバ１００へのログインの指示とを第１のユーザから受け付けると、Ｔ１０において、アカウント情報ＡＩ１を含むログイン要求をサーバ１００に送信する。
【００２４】
サーバ１００は、Ｔ１０において、ＰＣ９０−１からログイン要求を受信すると、当該ログイン要求に含まれるアカウント情報ＡＩ１が登録済みであると判断し、Ｔ１２において、検索選択画面データをＰＣ９０−１に送信する。
【００２５】
ＰＣ９０−１は、Ｔ１２において、サーバ１００から検索選択画面データを受信すると、Ｔ１４において、検索選択画面を表示する。当該画面は、ＰＣ９０−１の周囲に存在するプリンタを検索して登録することを確認するためのメッセージと、検索ボタンと、を含む。ＰＣ９０−１は、Ｔ１６において、検索選択画面内の検索ボタンの選択を第１のユーザから受け付けると、Ｔ１８において、検索信号をブロードキャストによってＬＡＮ６に送信する。検索信号は、所定期間に亘って繰り返し送信される。
【００２６】
プリンタ１０は、Ｔ１８において、ＰＣ９０−１から検索信号を受信すると、Ｔ２０において、プリンタ名「ｐｒ１」を含む応答信号をＰＣ９０−１に送信する。
【００２７】
ＰＣ９０−１は、Ｔ２０において、プリンタ１０から応答信号を受信すると、Ｔ２２において、応答信号に含まれるプリンタ名「ｐｒ１」を含む検索結果を表示する。ＰＣ９０−１は、Ｔ２４において、検索結果に含まれるプリンタ名「ｐｒ１」の選択を第１のユーザから受け付けると、Ｔ２６において、サーバ１００に現在ログインしているログイン済みアカウント情報ＡＩ１を含む登録指示をプリンタ１０に送信する。登録指示は、サーバ１００への登録をプリンタ１０に指示するコマンドである。
【００２８】
プリンタ１０は、Ｔ２６において、ＰＣ９０−１から登録指示を受信すると、Ｔ２８において、登録指示に含まれるアカウント情報ＡＩ１と、プリンタ１０自身のプリンタ名「ｐｒ１」と、を含む登録要求をサーバ１００に送信する。登録要求は、プリンタ１０の登録をサーバ１００に要求するコマンドである。
【００２９】
サーバ１００は、Ｔ２８において、プリンタ１０から登録要求を受信すると、Ｔ３０において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１を生成する。サーバ１００は、過去に生成されたデバイスＩＤ及びトークンに重複しないように、ユニークなデバイスＩＤ「ｄｖ１」及びトークンｔｋ１を生成する。そして、Ｔ３２において、サーバ１００は、アカウント情報ＡＩ１と、プリンタ名「ｐｒ１」と、デバイスＩＤ「ｄｖ１」と、トークンｔｋ１と、権限情報「Ｏｗｎｅｒ」と、を対応付けてメモリ１３４のアカウントテーブル１３８に記憶する（図２の符号１３８Ａ参照）。ここで、サーバ１００は、プリンタ名「ｐｒ１」とデバイスＩＤ「ｄｖ１」とをプリンタ情報ＰＩ１として記憶する。次いで、サーバ１００は、Ｔ３４において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１をプリンタ１０に送信する。
【００３０】
プリンタ１０は、Ｔ３４において、サーバ１００からデバイスＩＤ「ｄｖ１」及びトークンｔｋ１を受信すると、Ｔ３６において、トークンｔｋ１を含む接続要求をサーバ１００に送信する。接続要求は、いわゆる常時接続であるＸＭＰＰ（eXtensible Messaging and Presence Protocolの略）接続の確立をサーバ１００に要求するコマンドである。
【００３１】
サーバ１００は、Ｔ３６において、プリンタ１０から接続要求を受信すると、当該接続要求に含まれるトークンｔｋ１がアカウントテーブル１３８に記憶済みであると判断し（即ちトークンｔｋ１を利用した認証が成功し）、プリンタ１０とのＸＭＰＰ接続を確立する。このようにＸＭＰＰ接続が確立されると、サーバ１００は、プリンタ１０から信号を受信しなくても、ＸＭＰＰ接続を利用して、ＬＡＮ６のファイヤウォールを越えて信号（例えば後述の図５のＴ２３２のジョブ通知）をプリンタ１０に送信することができる。
【００３２】
プリンタ１０は、Ｔ４０において、デバイスＩＤ「ｄｖ１」及びトークンｔｋ１をメモリ３４に記憶させる。そして、プリンタ１０は、Ｔ４２において、登録完了通知をＰＣ９０−１に送信する。登録完了通知は、サーバ１００へのプリンタ１０の登録が完了したことを示す情報である。これにより、第１のユーザは、サーバ１００へのプリンタ１０の登録が完了したことを知ることができる。Ｔ４２が終了すると、登録プロセスが終了する。なお、以降の処理では、プリンタ１０からサーバ１００に送信される全ての信号にはトークンｔｋ１が含まれ、サーバ１００においてトークンｔｋ１を利用した認証が実行される。以降の処理では、これらの説明及び図示を省略する。
【００３３】
（ｓｈａｒｅユーザ登録プロセス；図４）
続いて、図４を参照して、ｓｈａｒｅユーザ登録プロセスについて説明する。ｓｈａｒｅユーザ登録プロセスは、権限情報「Ｓｈａｒｅ」に対応するアカウント情報とプリンタ１０の情報とをサーバ１００に対応付けて登録するプロセスである。図４の初期状態は、図３の後の状態である。また、サーバ１００には、ＰＣ９０−２のユーザ（以下では、「第２のユーザ」と記載する）を識別するアカウント情報ＡＩ２が登録済みである。
【００３４】
Ｔ１１０は、図３のＴ１０と同様である。ＰＣ９０−１は、Ｔ１１２において、管理画面要求をサーバ１００に送信し、Ｔ１１４において、サーバ１００から管理画面データを受信する。この場合、図示省略しているが、ＰＣ９０−１は、管理画面データに対応する管理画面を表示する。管理画面は、プリンタ選択ボタンを含む。ＰＣ９０−１は、管理画面に含まれるプリンタ選択ボタンの選択を第１のユーザから受け付けると、Ｔ１１６において、プリンタ選択画面要求をサーバ１００に送信し、Ｔ１１８において、サーバ１００からプリンタ選択画面データを受信し、Ｔ１２０において、プリンタ選択画面を表示する。当該画面は、プリンタ選択欄と、ｓｈａｒｅボタンと、ｃａｎｃｅｌボタンと、を含む。プリンタ選択欄には、サーバ１００のアカウントテーブル１３８において、アカウント情報ＡＩ１及び権限情報「Ｏｗｎｅｒ」に対応付けられているプリンタ名の一覧が表示される。
【００３５】
ＰＣ９０−１は、Ｔ１２２において、プリンタ名「ｐｒ１」の選択とｓｈａｒｅボタンの選択とを第１のユーザから受け付けると、Ｔ１２４において、プリンタ名「ｐｒ１」を含むｓｈａｒｅユーザ入力画面要求をサーバ１００に送信する。そして、ＰＣ９０−１は、Ｔ１２６において、サーバ１００からｓｈａｒｅユーザ入力画面データを受信し、Ｔ１２８において、ｓｈａｒｅユーザ入力画面を表示する。当該画面は、アカウント情報入力欄と、ＯＫボタンと、ｃａｎｃｅｌボタンと、を含む。アカウント情報入力欄には、ｓｈａｒｅユーザとして登録されるユーザのアカウント情報が入力される。
【００３６】
ＰＣ９０−１は、Ｔ１３０において、アカウント情報入力欄へのアカウント情報ＡＩ２の入力とＯＫボタンの選択とを第１のユーザから受け付けると、Ｔ１３２において、アカウント情報ＡＩ２を含むｓｈａｒｅユーザ登録要求をサーバ１００に送信する。
【００３７】
サーバ１００は、Ｔ１３２において、ＰＣ９０−１からｓｈａｒｅユーザ登録要求を受信すると、アカウント情報ＡＩ２に対応するユーザをｓｈａｒｅユーザとして追加することが要求されていると判断し、アカウント情報ＡＩ２を利用したログインが実行されることを監視する。
【００３８】
その後、ＰＣ９０−２は、アカウント情報ＡＩ２の入力とサーバ１００へのログインの指示とを第２のユーザから受け付けると、Ｔ１４０において、アカウント情報ＡＩ２を含むログイン要求をサーバ１００に送信する。
【００３９】
サーバ１００は、Ｔ１４０において、ＰＣ９０−２からログイン要求を受信すると、当該ログイン要求がアカウント情報ＡＩ２を含むと判断し、ｓｈａｒｅユーザ登録画面データをＰＣ９０−２に送信する。
【００４０】
ＰＣ９０−２は、Ｔ１４２において、サーバ１００からｓｈａｒｅユーザ登録画面データを受信すると、Ｔ１４４において、ｓｈａｒｅユーザ登録画面を表示する。当該画面は、プリンタ名「ｐｒ１」へのｓｈａｒｅユーザ登録が要求されていることを示すメッセージと、ＯＫボタンと、ｃａｎｃｅｌボタンと、を含む。ＰＣ９０−２は、Ｔ１４６において、第２のユーザによるＯＫボタンの選択を受け付けると、Ｔ１４８において、ｓｈａｒｅユーザ登録要求をサーバ１００に送信する。
【００４１】
サーバ１００は、Ｔ１４８において、ＰＣ９０−２からｓｈａｒｅユーザ登録要求を受信すると、Ｔ１５０において、アカウント情報ＡＩ２と、プリンタ１０に対応するプリンタ情報ＰＩ１（即ちプリンタ名「ｐｒ１」、デバイスＩＤ「ｄｖ１」）と、トークンｔｋ１と、権限情報「Ｓｈａｒｅ」と、を対応付けて、アカウントテーブル１３８に記憶させる（図２の符号１３８Ｂ参照）。
【００４２】
（サブミットプロセス；図５）
続いて、図５を参照して、第１のユーザが画像ファイルＦ１１をサーバ１００にサブミットするサブミットプロセスについて説明する。図５は、図４の後の状態であり、サーバ１００のアカウントテーブル１３８には、アカウント情報ＡＩ１に対応する各情報１３８Ａと、アカウント情報ＡＩ２に対応する各情報１３８Ｂと、が記憶されている。また、プリンタ１０のユーザテーブル３８には、ユーザＩＤ「Ｕ１」に対応する各情報と、ユーザＩＤ「Ｕ２」に対応する各情報と、が記憶されている。
【００４３】
Ｔ２１０は、図３のＴ１０と同様である。ＰＣ９０−１は、Ｔ２１２において、プリンタ選択画面要求をサーバ１００に送信し、Ｔ２１４において、サーバ１００からプリンタ選択画面データを受信し、Ｔ２１６において、プリンタ選択画面を表示する。当該画面には、サーバ１００のアカウントテーブル１３８において、アカウント情報ＡＩ１に対応付けられているプリンタ名「ｐｒ１」が表示される。ＰＣ９０−１は、Ｔ２１８において、プリンタ１０のプリンタ名「ｐｒ１」の選択を第１のユーザから受け付けると、Ｔ２２０において、プリンタ名「ｐｒ１」を含む設定画面要求をサーバ１００に送信し、Ｔ２２２において、サーバ１００から設定画面データを受信し、Ｔ２２４において、設定画面を表示する。当該画面は、画像ファイルを選択するファイル選択欄と、用紙サイズを選択するサイズ選択欄と、印刷色数を選択する色数選択欄と、ＯＫボタンと、ｃａｎｃｅｌボタンと、を含む。
【００４４】
ＰＣ９０−１は、Ｔ２２６において、印刷条件の入力（即ち画像ファイルＦ１１、用紙サイズ「Ａ４」、及び、印刷色数「モノクロ」の選択）及びＯＫボタンの選択を第１のユーザから受け付けると、Ｔ２２８において、画像ファイルＦ１１と印刷条件情報Ｃ１１（即ち用紙サイズ「Ａ４」、印刷色数「モノクロ」）とを含む印刷要求をサーバ１００に送信する。印刷要求は、画像ファイルＦ１１に対応する画像の印刷をプリンタ１０に実行させることを要求するためのコマンドである。
【００４５】
サーバ１００は、Ｔ２２８において、ＰＣ９０−１から印刷要求を受信すると、当該要求内の画像ファイルＦ１１を、ＰＷＧ（Printer Working Groupの略）ラスタ形式に従った印刷データＰＤ１１に変換する。なお、サーバ１００は、印刷要求内の画像ファイルＦ１１をＰＤＦ（Portable Document Formatの略）形式に変換してもよい。一般的に言うと、サーバ１００は、印刷要求内の画像ファイルＦ１１をプリンタ１０が解釈可能な形式のデータに変換すればよい。次いで、サーバ１００は、印刷データＰＤ１１を識別するジョブＩＤ「ｊｏｂ１１」を生成し、変換済みの印刷データＰＤ１１及び印刷要求内の印刷条件情報Ｃ１１をメモリ１３４に記憶させる。そして、サーバ１００は、アカウントテーブル１３８内のプリンタ名「ｐｒ１」に対応付けられているデバイスＩＤ「ｄｖ１」を特定し、Ｔ２３０において、生成済みのジョブＩＤ「ｊｏｂ１１」と、特定済みのデバイスＩＤ「ｄｖ１」と、ログイン済みのユーザのアカウント情報ＡＩ１と、印刷条件情報Ｃ１１が記憶されている位置を示すチケットＵＲＬ「ｔＵＲＬ１１」と、印刷データＰＤ１１が記憶されている位置を示すデータＵＲＬ「ｉＵＲＬ１１」と、ジョブステータス「印刷待」と、をジョブ情報Ｊ１１（図２参照）としてジョブテーブル１４０に記憶させる。そして、サーバ１００は、Ｔ２３２において、ＸＭＰＰ接続（図３のＴ３８参照）を利用して、ジョブ通知をプリンタ１０に送信する。ジョブ通知は、ジョブ情報Ｊ１１が記憶されたことをプリンタ１０に通知するための情報である。
【００４６】
（蓄積処理；図６）
続いて、図６を参照して、プリンタ１０のＣＰＵ３２によって実行される蓄積処理について説明する。ＣＰＵ３２は、図３の登録プロセスによってサーバ１００へのプリンタ１０の情報の登録が完了する場合に、図６の処理を開始する。
【００４７】
Ｓ１０において、ＣＰＵ３２は、サーバ１００からジョブ通知を受信することを監視する。ＣＰＵ３２は、ジョブ通知が受信される場合に、Ｓ１０でＹＥＳと判断して、Ｓ２０に進む。
【００４８】
Ｓ２０において、ＣＰＵ３２は、メモリ３４内のデバイスＩＤ「ｄｖ１」を含むジョブリスト要求をサーバ１００に送信する。ジョブリスト要求は、サーバ１００のジョブテーブル１４０において、当該要求内のデバイスＩＤ「ｄｖ１」、及び、ジョブステータス「印刷待」に対応付けられているジョブＩＤを含むジョブリストの送信を要求するための信号である。Ｓ２２において、ＣＰＵ３２は、サーバ１００からジョブリストを受信する。
【００４９】
Ｓ３０において、ＣＰＵ３２は、メモリ３４内の蓄積テーブル４０及びＳ２２で受信されたジョブリストを用いて、整合処理（図７）を実行する。整合処理は、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させる処理である。ＣＰＵ３２は、Ｓ３０の処理が終了すると、Ｓ１０に戻る。
【００５０】
（整合処理；図７）
続いて、図６のＳ３０で実行される整合処理について説明する。整合処理は、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させる処理である。ここで、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しているとは、蓄積テーブル４０内のジョブＩＤと、サーバ１００のジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」、及び、ジョブステータス「印刷待」に対応付けられているジョブＩＤと、が一致していること、又は、蓄積テーブル４０内にジョブＩＤが記憶されておらず、かつ、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」、及び、ジョブステータス「印刷待」に対応付けられているジョブＩＤが記憶されていないことを意味する。
【００５１】
Ｓ５０において、ＣＰＵ３２は、蓄積テーブル４０内のジョブＩＤと、図６のＳ２２で受信されたジョブリスト内のジョブＩＤが一致するのか否かを判断する。ＣＰＵ３２は、蓄積テーブル４０内のジョブＩＤと受信済みのジョブリスト内のジョブＩＤが一致する場合（Ｓ５０でＹＥＳ）に、図７の処理を終了する。なお、蓄積テーブル４０内のジョブＩＤと受信済みのジョブリスト内のジョブＩＤとが一致する場合とは、蓄積テーブル４０内の全てのジョブＩＤと受信済みのジョブリスト内の全てのジョブＩＤが一致する場合、又は、蓄積テーブル４０及び受信済みのジョブリストにジョブＩＤが記憶されていない場合である。一方、ＣＰＵ３２は、蓄積テーブル４０内のジョブＩＤと受信済みのジョブリスト内のジョブＩＤとが一致しない場合（Ｓ５０でＮＯ）に、Ｓ６０に進む。なお、蓄積テーブル４０内のジョブＩＤと受信済みのジョブリスト内のジョブＩＤとが一致しない場合とは、蓄積テーブル４０に含まれるが、受信済みのジョブリストに含まれないジョブＩＤ（以下では「ＰＯ（Printer onlyの略）ジョブＩＤ」と呼ぶ）が存在する場合、又は、受信済みのジョブリストに含まれるが、蓄積テーブル４０に含まれないジョブＩＤ（以下では「ＳＯ（Server onlyの略）ジョブＩＤ」と呼ぶ）が存在する場合である。
【００５２】
Ｓ６０において、ＣＰＵ３２は、１個以上のＰＯジョブＩＤが存在するのか否かを判断する。ＣＰＵ３２は、１個以上のＰＯジョブＩＤが存在する場合に、Ｓ６０でＹＥＳと判断して、Ｓ６２に進み、１個のＰＯジョブＩＤも存在しない場合に、Ｓ６２でＮＯと判断して、Ｓ７０に進む。
【００５３】
Ｓ６２において、ＣＰＵ３２は、蓄積テーブル４０内の１個以上のＰＯジョブＩＤと、当該１個以上のＰＯジョブＩＤに対応する各情報（即ち、アカウント情報、印刷条件情報、印刷データ）と、を消去する。
【００５４】
Ｓ７０において、ＣＰＵ３２は、１個以上のＳＯジョブＩＤが存在するのか否かを判断する。ＣＰＵ３２は、１個以上のＳＯジョブＩＤが存在する場合に、Ｓ７０でＹＥＳと判断して、Ｓ８０に進み、１個のＳＯジョブＩＤも存在しない場合に、Ｓ７０でＮＯと判断して、処理を終了する。
【００５５】
Ｓ８０において、ＣＰＵ３２は、ＳＯジョブＩＤを特定する。ＣＰＵ３２は、複数のＳＯジョブＩＤが特定される場合、特定済みの複数のＳＯジョブＩＤのうちの１個のＳＯジョブＩＤを対象ＳＯジョブＩＤとして特定する。なお、ＣＰＵ３２は、１個のＳＯジョブＩＤが特定される場合、当該ＳＯジョブＩＤを対象ＳＯジョブＩＤとして特定する。そして、ＣＰＵ３２は、対象ＳＯジョブＩＤに一致するジョブＩＤが履歴テーブル４２に記憶されているのか否かを判断する。ＣＰＵ３２は、対象ＳＯジョブＩＤに一致するジョブＩＤが履歴テーブル４２に記憶されていると判断する場合（Ｓ８０でＹＥＳ）に、Ｓ８２に進む。一方、ＣＰＵ３２は、対象ＳＯジョブＩＤに一致するジョブＩＤが履歴テーブル４２に記憶されていないと判断する場合（Ｓ８０でＮＯ）に、Ｓ９０に進む。
【００５６】
Ｓ８２において、ＣＰＵ３２は、履歴テーブル４２内の対象ＳＯジョブＩＤに対応するジョブステータスが「印刷済」であるのか否かを判断する。ＣＰＵ３２は、履歴テーブル４２内の対象ＳＯジョブＩＤに対応する印刷ステータスが「印刷済」である場合（Ｓ８２でＹＥＳ）に、Ｓ８４に進む。一方、ＣＰＵ３２は、履歴テーブル４２内の対象ＳＯジョブＩＤに対応する印刷ステータスが「キャンセル」である場合（Ｓ８２でＮＯ）に、Ｓ８６に進む。
【００５７】
Ｓ８４において、ＣＰＵ３２は、対象ＳＯジョブＩＤを含む印刷完了通知をサーバ１００に送信する。印刷完了通知は、当該通知内のジョブＩＤに対応する印刷データを利用した印刷が完了したことを示す通知である。サーバ１００は、印刷完了通知が受信される場合に、当該通知内のジョブＩＤに対応するジョブステータスを「印刷待」から「印刷済」に変更する。また、サーバ１００は、ジョブテーブル１４０において、受信済みのジョブＩＤに対応する各情報（チケットＵＲＬ、印刷条件情報、データＵＲＬ、印刷データ）を消去する。
【００５８】
また、Ｓ８６において、ＣＰＵ３２は、対象ＳＯジョブＩＤを含むキャンセル通知をサーバ１００に送信する。キャンセル通知は、当該通知内のジョブＩＤに対応する印刷データを利用した印刷がキャンセルされたことを示す通知である。サーバ１００は、キャンセル通知が受信される場合に、当該通知内のジョブＩＤに対応するジョブステータスを「印刷待」から「キャンセル」に変更する。また、サーバ１００は、ジョブテーブル１４０において、受信済みのジョブＩＤに対応する各情報（チケットＵＲＬ、印刷条件情報、データＵＲＬ、印刷データ）を消去する。
【００５９】
ＣＰＵ３２は、Ｓ８０でＮＯと判断される場合に、Ｓ９０において、対象ＳＯジョブＩＤを含むジョブ要求をサーバ１００に送信する。Ｓ９２において、ＣＰＵ３２は、サーバ１００から、対象ＳＯジョブＩＤに対応付けられているアカウント情報、チケットＵＲＬ、及び、データＵＲＬを受信する。
【００６０】
Ｓ９４において、ＣＰＵ３２は、Ｓ９２で受信されたチケットＵＲＬをサーバ１００に送信し、サーバ１００から当該チケットＵＲＬに対応する印刷条件情報を受信する。次いで、Ｓ９６において、ＣＰＵ３２は、Ｓ９２で受信されたデータＵＲＬをサーバ１００に送信し、サーバ１００から当該データＵＲＬに対応する印刷データを受信する。
【００６１】
Ｓ９８において、ＣＰＵ３２は、対象ＳＯジョブＩＤと、Ｓ９２で受信されたアカウント情報と、Ｓ９４で受信された印刷条件情報と、Ｓ９６で受信された印刷データと、を対応付けて蓄積テーブル４０に記憶させる。
【００６２】
Ｓ１００において、ＣＰＵ３２は、特定済みの全てのＳＯジョブＩＤに対してＳ８０〜Ｓ９８の処理が実行されたのか否かを判断する。ＣＰＵ３２は、特定済みの全てのＳＯジョブＩＤに対して処理が実行されていないと判断する場合（Ｓ１００でＮＯ）には、Ｓ８０に戻り、処理が未だに実行されていないＳＯジョブＩＤを対象ＳＯジョブＩＤとして特定する。一方、ＣＰＵ３２は、特定済みの全てのＳＯジョブＩＤに対して処理が実行されたと判断する場合（Ｓ１００でＹＥＳ）には、図７の処理を終了する。
【００６３】
（ジョブ更新処理；図８）
続いて、図８を参照して、プリンタ１０のＣＰＵ３２によって実行されるジョブ更新処理について説明する。ＣＰＵ３２は、図３の登録プロセスによってサーバ１００へのプリンタ１０の情報の登録が完了する場合に、図８の処理を開始する。ＣＰＵ３２は、図６の蓄積処理と並行して、図８の処理を実行する。
【００６４】
Ｓ１２０において、ＣＰＵ３２は、ログイン操作が実行されることを監視する。ログイン操作は、ユーザテーブル３８に登録されているユーザ名及びパスワード（例えば図２のＵ１及びＰ１）を入力する操作である。ＣＰＵ３２は、ログイン操作が実行される場合に、Ｓ１２０でＹＥＳと判断して、Ｓ１２２に進む。
【００６５】
Ｓ１２２において、ＣＰＵ３２は、ジョブ表示操作が実行されることを監視する。ジョブ表示操作は、蓄積テーブル４０に記憶されているジョブＩＤを表示させるための操作である。ＣＰＵ３２は、ジョブ表示操作が実行される場合に、Ｓ１２２でＹＥＳと判断し、Ｓ１３０に進む。
【００６６】
Ｓ１３０において、ＣＰＵ３２は、ジョブ選択画面を表示部１４に表示させる。ジョブ選択画面は、印刷対象のジョブＩＤを選択させるための画面である。図１０に示すように、当該画面は、蓄積テーブル４０に記憶されているジョブＩＤのうち、ログイン済みのユーザのアカウント情報に対応付けられているジョブＩＤの一覧と、ｐｒｉｎｔボタンと、ｄｅｌｅｔｅボタンと、ｃａｎｃｅｌボタンと、を含む。
【００６７】
Ｓ１４０において、ＣＰＵ３２は、印刷操作が実行されたのか否かを判断する。印刷操作は、ジョブ選択画面内のジョブＩＤの選択を選択した後に、ｐｒｉｎｔボタンを選択する操作である。ＣＰＵ３２は、印刷操作が実行される場合に、Ｓ１４０でＹＥＳと判断して、Ｓ１４２に進む。一方、ＣＰＵ３２は、印刷操作以外の操作（消去操作又はキャンセル操作）が実行される場合に、Ｓ１４０でＮＯと判断し、Ｓ１６０に進む。
【００６８】
Ｓ１４２において、ＣＰＵ３２は、蓄積テーブル４０内のＳ１４０で選択されたジョブＩＤに対応づけられている印刷データを特定し、特定済みの印刷データを変換して、変換済み印刷データを生成する。具体的には、ＣＰＵ３２は、特定済みの印刷データがＰＷＧラスタ形式に従った印刷データである場合に、当該印刷データに対して、色変換処理と、ハーフトーン処理と、を実行する。色変換処理は、多階調のＲＧＢビットマップデータを多階調のＣＭＹＫビットマップデータに変換する処理である。ハーフトーン処理は、多階調のＣＭＹＫビットマップデータを比較的に少ない階調のＣＭＹＫビットマップデータに変換する処理である。また、ＣＰＵ３２は、特定済みの印刷データがＰＤＦ形式に従った印刷データである場合に、当該印刷データに対して、当該印刷データをラスタライズするラスタライズ処理と、色変換処理と、ハーフトーン処理と、を実行する。ラスタライズ処理は、ベクタ形式のデータをビットマップ形式のデータに変換する処理である。
【００６９】
Ｓ１４４において、ＣＰＵ３２は、変換済み印刷データに従った印刷を印刷実行部２０に実行させる。次いで、ＣＰＵ３２は、Ｓ１４６において、蓄積テーブル４０内の選択済みのジョブＩＤ、及び、選択済みのジョブＩＤに対応付けられている各情報（アカウント情報、印刷条件情報、及び、印刷データ）を消去する。Ｓ１４８は、図７のＳ８４と同様である。
【００７０】
Ｓ１５０において、ＣＰＵ３２は、履歴テーブル４２を更新する。具体的には、ＣＰＵ３２は、Ｓ１４０でＹＥＳを経た後のＳ１５０において、Ｓ１４０で選択されたジョブＩＤと、印刷ステータス「印刷済」と、を対応付けて履歴テーブル４２に記憶させる。Ｓ１５０が終了すると、ＣＰＵ３２は、Ｓ１２０に戻る。
【００７１】
また、ＣＰＵ３２は、Ｓ１４０でＮＯと判断される場合に、Ｓ１６０において、消去操作が実行されたのか否かを判断する。消去操作は、ジョブ選択画面内のジョブＩＤを選択した後に、ｄｅｌｅｔｅボタンを選択する操作である。ＣＰＵ３２は、消去操作が実行される場合に、Ｓ１６０でＹＥＳと判断して、Ｓ１６２に進む。一方、ＣＰＵ３２は、キャンセル操作が実行される場合に、Ｓ１６０でＮＯと判断し、Ｓ１２０に戻る。キャンセル操作は、ジョブ選択画面内のｃａｎｃｅｌボタンを選択する操作である。Ｓ１６２は、Ｓ１６０で選択されたジョブＩＤが利用される点を除いて、Ｓ１４６と同様である。Ｓ１６４は、Ｓ８６と同様である。ＣＰＵ３２は、Ｓ１６４が終了すると、Ｓ１５０に進む。Ｓ１６０でＹＥＳを経た後のＳ１５０において、ＣＰＵ３２は、Ｓ１６０で選択されたジョブＩＤと、印刷ステータス「キャンセル」と、を対応付けて履歴テーブル４２に記憶させる。
【００７２】
（具体的なケース）
続いて、図９〜図１３を参照して、図６〜図８の処理によって実現される具体的なケースＡ〜ケースＥについて説明する。
【００７３】
（ケースＡ；図９）
ケースＡでは、ジョブＩＤ「ｊｏｂ１１」に対応する各情報が蓄積テーブル４０に記憶される。ケースＡの初期状態は、図５の初期状態と同様である。なお、以下では、ジョブテーブル１４０に記憶されている情報を図示する際に、ジョブステータス「印刷待」に対応付けられているジョブＩＤ及びデバイスＩＤのみを表示する。
【００７４】
まず、プリンタ１０、ＰＣ９０−１、及び、サーバ１００の間で、図５のＴ２１０〜Ｔ２３０と同様の処理が実行される。この場合、プリンタ１０は、Ｔ３３２において、サーバ１００から、ジョブＩＤ「ｊｏｂ１１」を含むジョブ通知を受信する（図６のＳ１０でＹＥＳ）。次いで、プリンタ１０は、Ｔ３３４において、デバイスＩＤ「ｄｖ１」を含むジョブリスト要求をサーバ１００に送信する（Ｓ２０）。
【００７５】
サーバ１００は、Ｔ３３４において、プリンタ１０からジョブリスト要求を受信すると、当該要求内のデバイスＩＤ「ｄｖ１」を特定し、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」を特定する。そして、サーバ１００は、Ｔ３３６において、ジョブＩＤ「ｊｏｂ１１」を含むジョブリストをプリンタ１０に送信する。
【００７６】
プリンタ１０は、Ｔ３３６において、サーバ１００からジョブリストを受信すると（Ｓ２２）、蓄積テーブル４０に記憶されているジョブＩＤ（即ち、空の情報）と、ジョブリスト内のジョブＩＤ「ｊｏｂ１１」と、が一致しないと判断し（図７のＳ５０でＮＯ）、１個のＰＯジョブＩＤも存在しないと判断する（Ｓ６０でＮＯ）。そして、プリンタ１０は、１個のＳＯジョブＩＤ（即ちジョブＩＤ「ｊｏｂ１１」）が存在すると判断し（Ｓ７０でＹＥＳ）、ジョブＩＤ「ｊｏｂ１１」をＳＯジョブＩＤとして特定し、ジョブＩＤ「ｊｏｂ１１」を対象ＳＯジョブＩＤとして特定し、特定済みのジョブＩＤ「ｊｏｂ１１」と一致するジョブＩＤが履歴テーブル４２に記憶されていないと判断し（Ｓ８０でＮＯ）、Ｔ３３８において、ジョブＩＤ「ｊｏｂ１１」を含むジョブ要求をサーバ１００に送信する（Ｓ９０）。
【００７７】
サーバ１００は、Ｔ３３８において、プリンタ１０からジョブ要求を受信すると、当該要求内のジョブＩＤ「ｊｏｂ１１」を特定し、ジョブテーブル１４０内のｊｏｂＩＤ「ｊｏｂ１１」に対応付けられているアカウント情報ＡＩ１、チケットＵＲＬ「ｔＵＲＬ１１」、データＵＲＬ「ｉＵＲＬ１１」、及び、ジョブステータス「印刷待」を特定する。そして、サーバ１００は、Ｔ３４０において、特定済みのアカウント情報ＡＩ１と、特定済みのチケットＵＲＬ「ｔＵＲＬ１１」と、特定済みのデータＵＲＬ「ｉＵＲＬ１１」と、をプリンタ１０に送信する。
【００７８】
プリンタ１０は、Ｔ３４０において、サーバ１００から各情報を受信すると（Ｓ９２）、Ｔ３４２において、チケットＵＲＬ「ｔＵＲＬ１１」を含む印刷条件情報要求をサーバ１００に送信する（Ｓ９４）。
【００７９】
サーバ１００は、Ｔ３４２において、プリンタ１０から印刷条件情報要求を受信すると、当該要求内のチケットＵＲＬ「ｔＵＲＬ１１」によって示される位置に記憶されている印刷条件情報Ｃ１１（用紙サイズ「Ａ４」、印刷色数「モノクロ」）を特定し、Ｔ３４４において、特定済みの印刷条件情報Ｃ１１をプリンタ１０に送信する。
【００８０】
プリンタ１０は、Ｔ３４４において、サーバ１００から印刷条件情報Ｃ１１を受信すると（Ｓ９４）、Ｔ３４６において、Ｔ３４０で受信されたデータＵＲＬ「ｔＵＲＬ１１」を含む印刷データ要求をサーバ１００に送信する（Ｓ９６）。
【００８１】
サーバ１００は、Ｔ３４６において、プリンタ１０から印刷データ要求を受信すると、当該要求内のデータＵＲＬ「ｔＵＲＬ１１」によって示される位置に記憶されている印刷データＰＤ１１を特定し、Ｔ３４８において、特定済みの印刷データＰＤ１１をプリンタ１０に送信する。
【００８２】
プリンタ１０は、Ｔ３４８において、サーバ１００から印刷データＰＤ１１を受信すると（Ｓ９６）、Ｔ３５０において、Ｔ３４０で受信されたアカウント情報ＡＩ１と、Ｔ３３２で受信されたジョブＩＤ「ｊｏｂ１１」と、Ｔ３４４で受信された印刷条件情報Ｃ１１と、Ｔ３４８で受信された印刷データＰＤ１１と、を対応付けて蓄積テーブル４０に記憶させる（図２の符号４０Ａ参照）（Ｓ９８）。そして、プリンタ１０は、特定済みの全てのＳＯジョブＩＤ（ジョブＩＤ「ｊｏｂ１１」）に対して図７のＳ８０〜Ｓ９８の処理を実行したと判断する（Ｓ１００でＹＥＳ）。この時点において、蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１１」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」と、が一致する。即ち、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合している。
【００８３】
（ケースＢ；図１０）
ケースＢでは、プリンタ１０の蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１１」に対応する印刷データＰＤ１１を利用した印刷が実行される。ケースＢの初期状態は、ケースＡの後の状態である。このため、プリンタ１０の蓄積テーブル４０には、ジョブＩＤ「ｊｏｂ１１」に対応する各情報が記憶されており（図９のＴ３５０参照）、サーバ１００のジョブテーブル１４０には、ジョブＩＤ「ｊｏｂ１１」に対応する各情報が記憶されている（図５のＴ２３０参照）。
【００８４】
まず、プリンタ１０、ＰＣ９０−２、及び、サーバ１００の間で、図５のＴ２１０〜Ｔ２３０、図９のＴ３３２〜Ｔ３５０と同様の処理が実行される。ただし、本ケースでは、第２のユーザは、図５のＴ２２６において、画像ファイルＦ１２、用紙サイズ「Ａ４」、印刷色数「カラー」を選択する。この場合、サーバ１００は、Ｔ２２８において、ＰＣ９０−２から画像ファイルＦ１２と印刷条件情報Ｃ１２（用紙サイズ「Ａ４」、印刷色数「カラー」）とを含む印刷要求を受信する。そして、サーバ１００は、画像ファイルＦ１２をＰＷＧラスタ形式に従った印刷データＰＤ１２に変換し、メモリ１３４内の位置「ｉＵＲＬ１２」に印刷データＰＤ１２を記憶させ、メモリ１３４内の位置「ｔＵＲＬ１２」に印刷条件情報Ｃ１２を記憶させる。また、サーバ１００は、ジョブＩＤ「ｊｏｂ１２」を生成し、Ｔ２３０において、生成済みのジョブＩＤ「ｊｏｂ１２」と、デバイスＩＤ「ｄｖ１」と、アカウント情報ＡＩ２と、印刷条件情報Ｃ１２が記憶されている位置を示すチケットＵＲＬ「ｔＵＲＬ１２」と、印刷データＰＤ１２が記憶されている位置を示すデータＵＲＬ「ｉＵＲＬ１２」と、ジョブステータス「印刷待」と、をジョブ情報Ｊ１２（図２参照）としてジョブテーブル１４０に記憶させる。その後、プリンタ１０及びサーバ１００の間で、ジョブＩＤ「ｊｏｂ１２」に対応する情報を利用して、図９のＴ３３２〜Ｔ３４４と同様の処理が実行される。そして、プリンタ１０は、Ｔ３５０において、アカウント情報ＡＩ２と、ジョブＩＤ「ｊｏｂ１２」と、印刷条件情報Ｃ１２と、印刷データＰＤ１２と、を対応付けて蓄積テーブル４０に記憶させる（図２の符号４０Ｂ参照）。
【００８５】
プリンタ１０は、Ｔ４１０において、ユーザＩＤ「Ｕ１」及びパスワード「Ｐ１」の入力を第１のユーザから受け付け（図８のＳ１２０でＹＥＳ）、Ｔ４１２において、ジョブ表示操作を第１のユーザから受け付けると（Ｓ１２２でＹＥＳ）、ログイン済のユーザに対応付けられているアカウント情報ＡＩ１を特定する。そして、プリンタ１０は、蓄積テーブル４０内のアカウント情報ＡＩ１に対応付けられているジョブＩＤ「ｊｏｂ１１」を特定し、Ｔ４１４において、特定済みのジョブＩＤ「ｊｏｂ１１」を含むジョブ選択画面を表示する（Ｓ１３０）。プリンタ１０は、Ｔ４２０において、ジョブＩＤ「ｊｏｂ１１」の選択、及び、ｐｒｉｎｔボタンの選択を第１のユーザから受け付けると（Ｓ１４０でＹＥＳ）、蓄積テーブル４０内の選択済みのジョブＩＤ「ｊｏｂ１１」に対応づけられている印刷データＰＤ１１を特定し、Ｔ４２２において、特定済みの印刷データＰＤ１１をデータ変換する（Ｓ１４２）。そして、プリンタ１０は、Ｔ４２４において、変換済み印刷データを利用した印刷を実行し（Ｓ１４４）、Ｔ４２６において、蓄積テーブル４０内のアカウント情報ＡＩ１、ジョブＩＤ「ｊｏｂ１１」、印刷条件情報Ｃ１１、及び、印刷データＰＤ１１を消去し（Ｓ１４６）、Ｔ４２８において、ジョブＩＤ「ｊｏｂ１１」を含む印刷完了通知をサーバ１００に送信する（Ｓ１４８）。次いで、プリンタ１０は、Ｔ４３０において、ジョブＩＤ「ｊｏｂ１１」と、印刷ステータス「印刷済」と、を対応付けて履歴テーブル４２に記憶させる（Ｓ１５０）。
【００８６】
サーバ１００は、Ｔ４２８において、プリンタ１０から印刷完了通知を受信すると、当該通知内のジョブＩＤ「ｊｏｂ１１」を特定し、ジョブＩＤ「ｊｏｂ１１」に対応するジョブ情報Ｊ１１を更新する。具体的には、サーバ１００は、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１１」に対応付けられているチケットＵＲＬ「ｉＵＲＬ１１」及びデータＵＲＬ「ｔＵＲＬ１１」を消去する。また、サーバ１００は、チケットＵＲＬ「ｉＵＲＬ１１」によって示される位置に記憶されている印刷条件情報Ｃ１１及びデータＵＲＬ「ｉＵＲＬ１１」によって示される位置に記憶されている印刷データＰＤ１１を消去する。また、サーバ１００は、ジョブＩＤ「ｊｏｂ１１」に対応するジョブステータスを「印刷待」から「印刷済」に変更する。この時点において、蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１２」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１２」と、が一致する。即ち、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合している。
【００８７】
（ケースＣ）
ケースＣでは、プリンタ１０からサーバ１００への印刷完了通知の送信が失敗する。ケースＢの初期状態は、図１０のケースＢにおいて図５のＴ２１０〜Ｔ２３０、図９のＴ３３０〜Ｔ３５０と同様の処理が実行された後の状態である。このため、プリンタ１０の蓄積テーブル４０には、ジョブＩＤ「ｊｏｂ１１」に対応する各情報４０Ａと、ジョブＩＤ「ｊｏｂ１２」に対応する各情報４０Ｂと、が記憶されている。また、サーバ１００のジョブテーブル１４０には、ジョブＩＤ「ｊｏｂ１１」に対応するジョブ情報Ｊ１１と、ジョブＩＤ「ｊｏｂ１２」に対応するジョブ情報Ｊ１２と、が記憶されている。即ち、ケースＢの初期状態において、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とは整合している。
【００８８】
まず、プリンタ１０及びサーバ１００の間で、図１０のＴ４１０〜Ｔ４２６と同様の処理が実行される。この場合、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」を含む印刷完了通知をサーバ１００に送信する。本ケースでは、プリンタ１０とサーバ１００との間の通信状態が悪いために、プリンタ１０からサーバ１００への印刷完了通知の送信が失敗する。この場合、サーバ１００は、ジョブＩＤ「ｊｏｂ１１」を含む印刷完了通知が受信されないために、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１１」に対応するジョブ情報Ｊ１１を更新しない。即ち、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１１」に対応するジョブステータスが「印刷待」で維持される。また、チケットＵＲＬ「ｔＵＲＬ１２」、データＵＲＬ「ｉＵＲＬ１２」、印刷条件情報Ｃ１２、及び、印刷データＰＤ１２も消去されない。なお、プリンタ１０は、Ｔ５３０において、ジョブＩＤ「ｊｏｂ１１」と、印刷ステータス「印刷済」と、を対応付けて履歴テーブル４２に記憶させる（Ｓ１５０）。従って、この時点において、蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１２」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１２」と、が一致しない。即ち、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しない。
【００８９】
次いで、プリンタ１０とサーバ１００との間の通信状態が改善された後に、ＰＣ９０−１及びサーバ１００の間で、図５のＴ２１０〜Ｔ２３０と同様の処理が実行される。ただし、本ケースでは、第１のユーザは、図５のＴ２２６において、画像ファイルＦ１３、用紙サイズ「Ａ３」、印刷色数「カラー」を選択する。この場合、サーバ１００は、Ｔ２２８において、ＰＣ９０−１から、画像ファイルＦ１３と印刷条件情報Ｃ１３（用紙サイズ「Ａ３」、印刷色数「カラー」）とを含む印刷要求を受信し、画像ファイルＦ１３をＰＷＧラスタ形式に従った印刷データＰＤ１３に変換し、メモリ１３４内の位置「ｉＵＲＬ１３」に印刷データＰＤ１３を記憶させ、メモリ１３４内の位置「ｔＵＲＬ１３」に印刷条件情報Ｃ１３を記憶させる。また、サーバ１００は、ジョブＩＤ「ｊｏｂ１３」を生成し、Ｔ２３０において、生成済みのジョブＩＤ「ｊｏｂ１３」と、デバイスＩＤ「ｄｖ１」と、チケットＵＲＬ「ｔＵＲＬ１３」と、データＵＲＬ「ｉＵＲＬ１３」と、ジョブステータス「印刷待」と、をジョブ情報Ｊ１３（図２参照）としてジョブテーブル１４０に記憶させる。そして、サーバ１００は、Ｔ５３２において、ジョブＩＤ「ｊｏｂ１３」を含むジョブ通知をプリンタ１０に送信する。Ｔ５３４は、図９のＴ３３４と同様である。
【００９０】
サーバ１００は、Ｔ５３４において、プリンタ１０からジョブリスト要求を受信すると、当該要求内のデバイスＩＤ「ｄｖ１」を特定し、ジョブテーブル１４０内において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１２」、「ｊｏｂ１３」を特定する。そして、サーバ１００は、Ｔ５３６において、ジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１２」、「ｊｏｂ１３」を含むジョブリストをプリンタ１０に送信する。
【００９１】
プリンタ１０は、Ｔ５３６においてサーバ１００からジョブリストを受信すると（図６のＳ２０）、蓄積テーブル４０に含まれるジョブＩＤ「ｊｏｂ１２」と、ジョブリストに含まれるジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１２」、「ｊｏｂ１３」と、が一致しないと判断し（図７のＳ５０でＮＯ）、１個のＰＯジョブＩＤも存在しないと判断する（Ｓ６０でＮＯ）。そして、プリンタ１０は、２個のＳＯジョブＩＤ（ジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１３」）が存在すると判断し（Ｓ７０でＹＥＳ）、２個のＳＯジョブＩＤを特定し、２個のＳＯジョブＩＤのうちのジョブＩＤ「ｊｏｂ１１」を対象ＳＯジョブＩＤとして特定する。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」と一致するジョブＩＤが履歴テーブル４２に記憶されていると判断し（Ｓ８０でＹＥＳ）、履歴テーブル４２内のジョブＩＤ「ｊｏｂ１１」に対応付けられている印刷ステータスが「印刷済」であると判断する（Ｓ８２でＹＥＳ）。そして、プリンタ１０は、Ｔ５３８において、ジョブＩＤ「ｊｏｂ１１」を含む印刷完了通知をサーバ１００に送信する。
【００９２】
サーバ１００は、Ｔ５３８において、プリンタ１０から印刷完了通知を受信すると、Ｔ５４０において、ジョブ情報Ｊ１１を更新する。Ｔ５４０は、図１０のＴ４３２と同様である。即ち、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１１」に対応するジョブステータスが「印刷済」に変更されるとともに、チケットＵＲＬ「ｔＵＲＬ１１」、データＵＲＬ「ｉＵＲＬ１１」、印刷条件情報Ｃ１１、及び、印刷データＰＤ１１が消去される。
【００９３】
次いで、プリンタ１０は、２個のＳＯジョブＩＤに対して、図７のＳ８０〜Ｓ９８の処理が実行されていないと判断し（Ｓ１００でＮＯ）、ジョブＩＤ「ｊｏｂ１３」を対象ＳＯジョブＩＤとして特定する。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１３」と一致するジョブＩＤが履歴テーブル４２に記憶されていないと判断し（Ｓ８０でＮＯ）、Ｔ５５０において、ジョブＩＤ「ｊｏｂ１３」を含むジョブ要求をサーバ１００に送信する。Ｔ５５２〜Ｔ５６０は、ジョブＩＤ「ｊｏｂ１３」に関連する情報が通信される点を除いて、図９のＴ３４０〜Ｔ３４８と同様である。プリンタ１０は、Ｔ５６２において、アカウント情報ＡＩ１と、ジョブＩＤ「ｊｏｂ１３」と、印刷条件情報Ｃ１３と、印刷データＰＤ１３と、を対応付けて蓄積テーブル４０に記憶させる（図２の符号４０Ｃ参照）（Ｓ９８）。そして、プリンタ１０は、２個のＳＯジョブＩＤに対して、図７のＳ８０〜Ｓ９８の処理が実行されたと判断する（Ｓ１００でＹＥＳ）。
【００９４】
（ケースＣの効果）
ケースＣに示すように、プリンタ１０からサーバ１００への印刷完了通知の送信が失敗し得る。この場合、蓄積テーブル４０から印刷が実行された印刷データＰＤ１１に対応する各情報が消去される（図１０のＴ４２６参照）が、サーバ１００のジョブテーブル１４０内の印刷データＰＤ１１に対応する各情報は更新されない。即ち、プリンタ１０からサーバ１００への印刷完了通知の送信が失敗すると、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しなくなる。本ケースでは、プリンタ１０は、サーバ１００からジョブ通知を受信すると（Ｔ５３２）、ジョブリスト要求をサーバ１００に送信し（Ｔ５３４）、サーバ１００からジョブリストを受信する（Ｔ５３６）。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」を対象ＳＯジョブＩＤとして特定し、履歴テーブル４２内のジョブＩＤ「ｊｏｂ１１」に対応付けられている印刷ステータスが「印刷済」であることを特定し、ジョブＩＤ「ｊｏｂ１１」を含む印刷完了通知をサーバ１００に送信する（Ｔ５３８）。サーバ１００は、プリンタ１０から印刷完了通知を受信すると、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１１」に対応するジョブステータスを「印刷済」に変更するとともに、印刷データＰＤ１１を消去する（Ｔ５４０）。また、プリンタ１０は、ジョブＩＤ「ｊｏｂ１３」を含むジョブ要求をサーバ１００に送信し（Ｔ５５０）、サーバ１００から、アカウント情報ＡＩ１、印刷条件情報Ｃ１３、及び、印刷データＰＤ１３を受信する（Ｔ５５２〜５６０）。そして、プリンタ１０は、サーバ１００から受信された各情報を蓄積テーブル４０に記憶させる（Ｔ５６２）。これにより、プリンタ１０の蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、が一致する。従って、プリンタ１０からサーバ１００への印刷完了通知の送信が失敗した後に、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させることができる。
【００９５】
（ケースＤ；図１２）
ケースＤでは、第２のユーザによって、ジョブテーブル１４０内のジョブ情報Ｊ１２を消去するための操作が実行される。ケースＤの初期状態は、ケースＣの初期状態と同様である。
【００９６】
Ｔ６１０は、アカウント情報ＡＩ２が通信される点を除いて、図３のＴ１０と同様である。ＰＣ９０−２は、Ｔ６１２において、ジョブ一覧画面要求をサーバ１００に送信する。
【００９７】
サーバ１００は、Ｔ６１２において、ジョブ一覧画面要求をプリンタ１０から受信すると、ログイン済みのアカウント情報ＡＩ２を特定し、ジョブテーブル１４０内のアカウント情報ＡＩ２に対応付けられているジョブＩＤ「ｊｏｂ１２」を特定し、Ｔ６１４において、ジョブＩＤ「ｊｏｂ１２」を含むジョブ一覧画面データをＰＣ９０−２に送信する。
【００９８】
ＰＣ９０−２は、Ｔ６１４において、サーバ１００からジョブ一覧画面データを受信すると、Ｔ６１６において、ジョブ一覧画面を表示する。当該画面は、ジョブ一覧画面データに含まれるジョブＩＤと、ｄｅｌｅｔｅボタンと、ｃａｎｃｅｌボタンと、を含む。ＰＣ９０−２は、Ｔ６１８において、ジョブＩＤ「ｊｏｂ１２」の選択、及び、ｄｅｌｅｔｅボタンの選択を、第２のユーザから受け付けると、Ｔ６２０において、ジョブＩＤ「ｊｏｂ１２」を含む消去要求をサーバ１００に送信する。
【００９９】
サーバ１００は、Ｔ６２０において、ＰＣ９０−２から消去要求を受信すると、当該要求内のジョブＩＤ「ｊｏｂ１２」を特定し、Ｔ６３０において、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１２」に対応するジョブ情報Ｊ１２を消去する。なお、サーバ１００は、蓄積テーブル４０内のジョブＩＤ「ｊｏｂ１２」に対応付けられている各情報をプリンタ１０に消去させるための信号をプリンタ１０に送信しない。
【０１００】
次いで、ＰＣ９０−１及びサーバ１００の間で、図５のＴ２１０〜Ｔ２３０と同様の処理が実行される。ただし、図１１のケースＣと同様に、第１のユーザは、図５のＴ２２６において、画像ファイルＦ１３、用紙サイズ「Ａ３」、印刷色数「カラー」を選択する。Ｔ６４２、Ｔ６４４は、それぞれ、図１１のＴ５３２、Ｔ５３４と同様である。
【０１０１】
サーバ１００は、Ｔ６４４において、プリンタ１０からジョブリスト要求を受信すると、当該要求内のデバイスＩＤ「ｄｖ１」を特定し、ジョブテーブル１４０内において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」を特定する。そして、サーバ１００は、Ｔ６４６において、ジョブＩＤ「ｊｏｂ１１」を含むジョブリストをプリンタ１０に送信する。
【０１０２】
プリンタ１０は、Ｔ６４６において、サーバ１００からジョブリストを受信すると（Ｓ２２）、蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１２」と、ジョブリスト内のジョブＩＤ「ｊｏｂ１１」と、が一致しないと判断し（図７のＳ５０でＮＯ）、ＰＯジョブＩＤ（ジョブＩＤ「ｊｏｂ１２」）が存在すると判断する（Ｓ６０でＹＥＳ）。そして、プリンタ１０は、Ｔ６４８において、蓄積テーブル４０内のアカウント情報ＡＩ１、ジョブＩＤ「ｊｏｂ１２」、印刷条件情報Ｃ１２、及び、印刷データＰＤ１２を消去する（Ｓ６２）。また、プリンタ１０は、１個のＳＯジョブＩＤも存在しないと判断する（Ｓ７０でＮＯ）。その後、プリンタ１０及びサーバ１００の間で、図１１のＴ５５０〜Ｔ５６２と同様の処理が実行される。
【０１０３】
（ケースＤの効果）
ケースＤに示すように、サーバ１００は、ＰＣ９０−２から、ジョブＩＤ「ｊｏｂ１２」を含む消去要求が受信されると（Ｔ６２０）、ジョブテーブル１４０内のジョブＩＤ「ｊｏｂ１２」に対応するジョブ情報Ｊ１２を消去する（Ｔ６３０）。しかしながら、サーバ１００は、ジョブ情報Ｊ１２が消去されたことを示す信号をプリンタ１０に送信しない。このため、プリンタ１０は、蓄積テーブル４０内のジョブＩＤ「ｊｏｂ１２」に対応する各情報を消去しない。即ち、サーバ１００が消去要求を受信することによって、サーバ１００のジョブテーブル１４０内のジョブ情報が消去されると、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しなくなる。本ケースでは、プリンタ１０は、サーバ１００からジョブ通知を受信すると（Ｔ６４２）、ジョブリスト要求をサーバ１００に送信し（Ｔ６４４）、サーバ１００からジョブリストを受信する（Ｔ６４６）。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１２」をＰＯジョブＩＤとして特定し、履歴テーブル４２内のジョブＩＤ「ｊｏｂ１２」、及び、ジョブＩＤ「ｊｏｂ１２」に対応する各情報を消去する（Ｔ６４８）。また、プリンタ１０は、ジョブＩＤ「ｊｏｂ１３」を含むジョブ要求をサーバ１００に送信し、サーバ１００から、アカウント情報ＡＩ１、印刷条件情報Ｃ１３、及び、印刷データＰＤ１３を受信する（Ｔ５５２〜５６０）。そして、プリンタ１０は、サーバ１００から受信された各情報を蓄積テーブル４０に記憶させる（Ｔ５６２）。これにより、プリンタ１０の蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、が一致する。従って、サーバ１００が消去要求を受信することによって、サーバ１００のジョブテーブル１４０内のジョブ情報が消去された後に、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させることができる。
【０１０４】
また、第２のユーザは、印刷データＰＤ１２を利用した印刷をキャンセルしたい場合に、ＰＣ９０−２を操作して、ＰＣ９０−２に消去要求をサーバ１００に送信させる。このため、印刷データＰＤ１２を印刷させるための操作を第２のユーザから受け付ける可能性は低い。本ケースでは、プリンタ１０は、サーバ１００からジョブ通知を受信すると（Ｔ６４２）、蓄積テーブル４０内の印刷データＰＤ１２を消去する（Ｔ６４８）。従って、メモリ３４の空き容量を増やすことができる。
【０１０５】
（ケースＥ；図１３）
ケースＥでは、サーバ１００からプリンタ１０へのジョブ通知の送信が失敗する。ケースＥの初期状態は、ケースＡの初期状態と同様である。即ち、プリンタ１０の蓄積テーブル４０及びサーバ１００のジョブテーブル１４０は空の状態である。
【０１０６】
まず、ＰＣ９０−１、及び、サーバ１００の間で、図５のＴ２１０〜Ｔ２３０と同様の処理が実行される。この場合、サーバ１００は、ジョブＩＤ「ｊｏｂ１１」を含むジョブ通知をプリンタ１０に送信する。本ケースでは、プリンタ１０とサーバ１００との間の通信状態が悪いために、サーバ１００からプリンタ１０へのジョブ通知の送信が失敗する。この場合、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」を含むジョブ通知が受信されないために、ジョブＩＤ「ｊｏｂ１１」に対応する各情報を蓄積テーブル４０に記憶させない。
【０１０７】
次いで、プリンタ１０とサーバ１００との間の通信状態が改善された後に、ＰＣ９０−１、及び、サーバ１００の間で、図５のＴ２１０〜Ｔ２３０と同様の処理が実行される。ただし、図１１のケースＣと同様に、第１のユーザは、図５のＴ２２６において、画像ファイルＦ１３、用紙サイズ「Ａ３」、印刷色数「カラー」を選択する。この場合、サーバ１００は、Ｔ７３２において、ジョブＩＤ「ｊｏｂ１３」を含むジョブ通知をプリンタ１０に送信する。Ｔ７３４は、図５のＴ３３４と同様である。
【０１０８】
サーバ１００は、Ｔ７３４において、プリンタ１０からジョブリスト要求を受信すると、当該要求内のデバイスＩＤ「ｄｖ１」を特定し、ジョブテーブル１４０内において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１３」を特定する。そして、サーバ１００は、Ｔ７３６において、ジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１３」を含むジョブリストをプリンタ１０に送信する。
【０１０９】
プリンタ１０は、Ｔ７３６において、サーバ１００からジョブリストを受信すると（図６のＳ２２）、蓄積テーブル４０に記憶されているジョブＩＤ（即ち、空の情報）と、ジョブリスト内のジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１３」と、が一致しないと判断し（図７のＳ８０でＮＯ）、１個のＰＯジョブＩＤも存在しないと判断する（Ｓ９０でＮＯ）。そして、プリンタ１０は、２個のＳＯジョブＩＤ（ジョブＩＤ「ｊｏｂ１１」、「ｊｏｂ１３」）が存在すると判断し（Ｓ１００でＹＥＳ）、２個のＳＯジョブＩＤを特定し、２個のＳＯジョブＩＤのうちのジョブＩＤ「ｊｏｂ１１」を対象ＳＯジョブＩＤとして特定する。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」と一致するジョブＩＤが履歴テーブル４２に記憶されていないと判断し（Ｓ１１０でＮＯ）、Ｔ７３８において、ジョブＩＤ「ｊｏｂ１１」を含むジョブ要求をサーバ１００に送信する（Ｓ１２０）。その後、プリンタ１０及びサーバ１００の間で、図９のＴ３４０〜Ｔ３５０と同様の処理が実行される。これにより、蓄積テーブル４０に、ジョブＩＤ「ｊｏｂ１１」に対応する各情報が記憶される。
【０１１０】
次いで、プリンタ１０は、２個のＳＯジョブＩＤに対して、図７のＳ８０〜Ｓ９８の処理が実行されていないと判断し（Ｓ１００でＮＯ）、ジョブＩＤ「ｊｏｂ１３」を対象ＳＯジョブＩＤとして特定する。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１３」と一致するジョブＩＤが履歴テーブル４２に記憶されていないと判断し（Ｓ１１０でＮＯ）、Ｔ７４８において、ジョブＩＤ「ｊｏｂ１３」を含むジョブ要求をサーバ１００に送信する（Ｓ１２０）。その後、プリンタ１０及びサーバ１００の間で、図１１のＴ５５２〜Ｔ５６２と同様の処理が実行される。これにより、蓄積テーブル４０に、ジョブＩＤ「ｊｏｂ１３」に対応する各情報が記憶される。そして、プリンタ１０は、２個のＳＯジョブＩＤに対して、図７のＳ８０〜Ｓ９８の処理が実行されたと判断する（Ｓ１００でＹＥＳ）。
【０１１１】
（ケースＥの効果）
ケースＥに示すように、サーバ１００からプリンタ１０へのジョブ通知の送信が失敗し得る。この場合、プリンタ１０の蓄積テーブル４０にはジョブ通知内のジョブＩＤに対応する各情報が記憶されない。即ち、サーバ１００からプリンタ１０へのジョブ通知の送信が失敗すると、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しなくなる。本ケースでは、プリンタ１０は、サーバ１００からジョブ通知を受信すると（Ｔ７３２）、ジョブリスト要求をサーバ１００に送信し（Ｔ７３４）、サーバ１００からジョブリストを受信する（Ｔ７３６）。そして、プリンタ１０は、ジョブＩＤ「ｊｏｂ１１」を対象ＳＯジョブＩＤとして特定し、ジョブＩＤ「ｊｏｂ１１」が履歴テーブル４２に記憶されていないと判断し、ジョブＩＤ「ｊｏｂ１１」を含むジョブ要求をサーバ１００に送信し（Ｔ７３８）、サーバ１００から、ジョブＩＤ「ｊｏｂ１１」に対応するアカウント情報ＡＩ１、印刷条件情報Ｃ１１、及び、印刷データＰＤ１１を受信する（図９のＴ３４０〜Ｔ３４８）。そして、プリンタ１０は、サーバ１００から受信された各情報を蓄積テーブル４０に記憶させる。また、プリンタ１０は、ジョブＩＤ「ｊｏｂ１３」を含むジョブ要求をサーバ１００に送信し、サーバ１００から、アカウント情報ＡＩ１、印刷条件情報Ｃ１３、及び、印刷データＰＤ１３を受信する（Ｔ５５２〜５６０）。そして、プリンタ１０は、サーバ１００から受信された各情報を蓄積テーブル４０に記憶させる（Ｔ５６２）。これにより、プリンタ１０の蓄積テーブル４０に記憶されているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、ジョブテーブル１４０において、デバイスＩＤ「ｄｖ１」及びジョブステータス「印刷待」に対応付けられているジョブＩＤ「ｊｏｂ１２」、「ｊｏｂ１３」と、が一致する。従って、サーバ１００からプリンタ１０へのジョブ通知の送信が失敗した後に、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させることができる。
【０１１２】
（本実施例の効果）
上述のように、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合しない状況が発生し得る（図１１のケースＣ、図１２のケースＤ、図１３のケースＥ）。そこで、本実施例では、プリンタ１０は、サーバ１００からジョブ通知を受信する場合（図６のＳ１２でＹＥＳ）に、ジョブリスト要求をサーバ１００に送信し（Ｓ２０）、サーバ１００から、ジョブリスト要求を受信する（Ｓ２２）。そして、プリンタ１０は、サーバ１００から受信されたジョブリストを利用して、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させる整合処理（図７）を実行する。従って、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とが整合していない状況が発生しても、その後に、蓄積テーブル４０内の内容とジョブテーブル１４０内の内容とを整合させることができる。
【０１１３】
（対応関係）
ネットワークＩ／Ｆ１６が、「通信インターフェース」の一例である。画像処理サーバ１００が、「サーバ」及び「外部装置」の一例である。サーバ１００のジョブテーブル１４０、プリンタ１０の蓄積テーブル４０が、それぞれ、「第１のテーブル」、「第２のテーブル」の一例である。画像ファイルが、「印刷対象画像」の一例である。ジョブＩＤが、「データ識別情報」の一例である。データＵＲＬが、「データ関係情報」の一例である。印刷データが、「対象データ」の一例である。ジョブ通知が、「所定の信号」の一例である。ジョブリスト要求が、「関係情報要求」の一例である。ジョブリストが、「内容関係情報」の一例である。
【０１１４】
図１２のケースＤのジョブＩＤ「ｊｏｂ１２」、データＵＲＬ「ｔＵＲＬ１２」が、それぞれ、「第１のデータ識別情報」、「第１のデータ関係情報」の一例である。図１２のケースＤの印刷データＰＤ１２が、「第１の印刷データ」及び「第１の対象データ」の一例である。
【０１１５】
履歴テーブル４２内の印刷ステータス「印刷済」が、「印刷完了情報」の一例である。図１１のケースＣのジョブＩＤ「ｊｏｂ１１」が、「第２のデータ識別情報」の一例である。図１１のケースＣの印刷データＰＤ１１が、「第２の印刷データ」及び「第２の対象データ」の一例である。印刷完了通知が、「消去要求」の一例である。図１３のケースＥのジョブＩＤ「ｊｏｂ１１」が、「第３のデータ識別情報」の一例である。図１３のケースＥの印刷データＰＤ１１が、「第３の印刷データ」及び「第３の対象データ」の一例である。図１３のケースＥのＴ７３８のジョブ要求が、「データ要求」の一例である。
【０１１６】
図９のＴ３４０、Ｔ３４８が、「第１の受信部」によって実行される処理の一例である。図９のＴ３５０が、「第１の記憶制御部」によって実行される処理の一例である。図６のＳ１０、Ｓ２０、Ｓ２２、Ｓ３０（図７）が、それぞれ、「第２の受信部」、「送信部」、「第３の受信部」、「整合処理実行部」によって実行される処理の一例である。
【０１１７】
（第２実施例）
続いて、第２実施例について説明する。本実施例では、ＰＣ９０−１、９０−２は、プリンタドライバを有する。即ち、ＰＣ９０は、画像ファイルを変換して、プリンタ１０が解釈可能なデータ形式を有する印刷データを生成することができる。また、本実施例では、プリンタ１０のＣＰＵ３２は、図６の蓄積処理に代えて、図１４の蓄積処理を実行する。また、本実施例では、プリンタ１０は、サーバ１００からジョブ通知を受信すると、図７のＳ９０〜Ｓ９８と同様の処理を実行する。具体的には、プリンタ１０は、図７のＳ９０において、ジョブ通知内に含まれるジョブＩＤを含むジョブ要求をサーバ１００に送信する。
【０１１８】
図１４を参照して、本実施例の蓄積処理について説明する。Ｓ２１０において、ＣＰＵ３２は、ＰＣ９０から、蓄積印刷ジョブを受信することを監視する。蓄積印刷ジョブは、印刷データ及びＰＣ９０を利用するユーザのユーザＩＤを含む。なお、蓄積印刷ジョブは、ＩＰＰ（Internet Printing Protocolの略）、ＬＰＲ（Line Printer daemon protocolの略）プロトコル等を利用して送信される。ＣＰＵ３２は、蓄積印刷ジョブが受信される場合に、Ｓ２１０でＹＥＳと判断して、Ｓ２２０に進む。Ｓ２２０〜Ｓ２３０は、図６のＳ２０〜Ｓ３０と同様である。
【０１１９】
Ｓ２４０において、ＣＰＵ３２は、Ｓ２１０で受信された蓄積印刷ジョブ内の印刷データと、ユーザＩＤと、を対応付けて、メモリ３４に記憶させる。ＣＰＵ３２は、Ｓ２４０が終了すると、Ｓ２１０に戻る。このような構成によっても、第１実施例と同様の効果を奏することができる。本実施例では、蓄積印刷ジョブ内の印刷データが、「所定の信号」の一例である。
【０１２０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１２１】
（変形例１）サーバ１００のジョブテーブル１４０において、データＵＲＬに代えて、印刷データが記憶されてもよい。本変形例では、印刷データが、「データ関係情報」の一例である。
【０１２２】
（変形例２）プリンタ１０は、図９のＴ３４８おいて、サーバ１００から印刷データＰＤ１１が受信されると、印刷データＰＤ１１をデータ変換し、Ｔ３５０において、アカウント情報ＡＩ１と、ジョブＩＤ「ｊｏｂ１１」と、印刷条件情報Ｃ１１と、変換済みの印刷データと、を対応付けて蓄積テーブル４０に記憶させてもよい。本変形例では、変換済みの印刷データが、「対象データ」の一例である。また、別の変形例では、プリンタ１０は、サーバ１００から印刷データＰＤ１１が受信されると、印刷データＰＤ１１を暗号化して、暗号化データを生成し、Ｔ３５０において、アカウント情報ＡＩ１と、ジョブＩＤ「ｊｏｂ１１」と、印刷条件情報Ｃ１１と、生成済みの暗号化データと、を対応付けて蓄積テーブル４０に記憶させてもよい。本変形例では、暗号化データが、「対象データ」の一例である。
【０１２３】
（変形例３）蓄積テーブル４０が、ＵＳＢメモリなどの外部メモリに記憶されてもよい。本変形例では、ＵＳＢメモリなどの外部メモリが、「メモリ」の一例である。
【０１２４】
（変形例４）ＰＯジョブＩＤ（即ち、プリンタ１０の蓄積テーブル４０に含まれるが、サーバ１００から受信されるジョブリストに含まれないジョブＩＤ）が発生する状況が想定されない環境では、図７のＳ６０及びＳ６２を省略してもよい。本変形例では、「整合処理」は、「消去処理」を含まなくてもよい。
【０１２５】
（変形例５）ＳＯジョブＩＤ（即ち、サーバ１００から受信されるジョブリストに含まれるが、プリンタ１０の蓄積テーブル４０に含まれないジョブＩＤ）が発生する状況が想定されない環境では、図７のＳ７０〜Ｓ１００を省略してもよい。本変形例では、「整合処理」は、「消去要求送信処理」、「送信処理」、「受信処理」、及び、「記憶処理」を含まなくてもよい。また、「第２の記憶制御部」を省略可能である。
【０１２６】
（変形例６）上記の各実施例では、図３〜図１４の各処理がソフトウェア（即ちプログラム３６）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【０１２７】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１２８】
２：通信システム、４：インターネット、６：ＬＡＮ、１０：プリンタ、１２：操作部、１４：表示部、１６：ネットワークインターフェース、２０：印刷実行部、３０：制御部、３２：ＣＰＵ、３４：メモリ、３６：プログラム、３８：ユーザテーブル、４０：蓄積テーブル、４２：履歴テーブル、９０−１、９０−２：ＰＣ、１００：画像処理サーバ、１１６：ネットワークインターフェース、１３０：制御部、１３２：ＣＰＵ、１３４：メモリ、１３６：プログラム、１３８：アカウントテーブル、１４０：ジョブテーブル
【図１】
2020152074.tif 000003
【図２】
2020152074.tif 000004
【図３】
2020152074.tif 000005
【図４】
2020152074.tif 000006
【図５】
2020152074.tif 000007
【図６】
2020152074.tif 000008
【図７】
2020152074.tif 000009
【図８】
2020152074.tif 000010
【図９】
2020152074.tif 000011
【図１０】
2020152074.tif 000012
【図１１】
2020152074.tif 000013
【図１２】
2020152074.tif 000014
【図１３】
2020152074.tif 000015
【図１４】
2020152074.tif 000016