A.第1実施例:
図1は、一実施例としての画像処理システムを示す説明図である。この画像処理システムは、サーバ100と、複合機200と、コンピュータ300と、メールサーバ400と、スマートフォン500と、を含んでいる。これらの装置100、200、300、400、500は、ネットワークNTに接続されており、ネットワークNTを介して互いに通信可能である。
サーバ100は、コンピュータを含む装置である。本実施例では、サーバ100は、プロセッサ110と、記憶装置115と、インタフェース190と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を含んでいる。
プロセッサ110は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置120は、例えば、DRAMであり、不揮発性記憶装置130は、例えば、ハードディスクドライブである。不揮発性記憶装置130は、プログラム132と、アカウント情報テーブル134と、画像データテーブル135と、一時コードテーブル136と、画像データ137と、を格納している。プロセッサ110は、プログラム132を実行することによって、ネットワークNTに接続された端末(例えば、コンピュータ300)から、印刷用の画像データを取得し、取得した画像データを複合機200に供給して、複合機200に画像を印刷させる処理を実行する。プロセッサ110は、これらの処理を実行する際に、アカウント情報テーブル134に基づく認証を行う。認証に成功した場合に、プロセッサ110は、サーバ100への画像データのアップロードを許容し、そして、複合機200への画像データの供給を許容する(詳細は後述)。プロセッサ110は、プログラム132の実行に利用される種々の中間データを、記憶装置115(例えば、揮発性記憶装置120、不揮発性記憶装置130のいずれか)に、一時的に格納する。
インタフェース190は、他の装置と通信するためのインタフェースである(例えば、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、インタフェース190は、有線または無線のネットワークインタフェースであり、ネットワークNTに接続されている。
複合機200は、プリンタの例であり、制御装置202と、スキャナ部280と、印刷部290と、カードリーダ295と、を有している。制御装置202は、プロセッサ210と、揮発性記憶装置220と、不揮発性記憶装置230と、画像を表示する表示部240と、ユーザによる操作を受け入れる操作部250と、通信インタフェース270と、を有している。これらの要素は、バスを介して互いに接続されている。
プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム232を格納している。プロセッサ210は、プログラム232を実行することによって、サーバ100から画像データを取得し、取得した画像データに従って印刷部290に画像を印刷させる処理を実行する(詳細は、後述)。プロセッサ210は、プログラム232の実行に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。本実施例では、プログラム232は、例えば、複合機200の製造者によって、ファームウェアとして、不揮発性記憶装置230に予め格納されている。ただし、プログラム232の少なくとも一部が、外部の装置(例えば、サーバ)から取得されて不揮発性記憶装置230に格納されるように、複合機200が構成されていてもよい。
表示部240は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部250は、ユーザによる操作を受け取る装置であり、例えば、表示部240上に重ねて配置されたタッチパネルである。ユーザは、操作部250を操作することによって、種々の指示を複合機200に入力可能である。
インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。本実施例では、インタフェース270は、有線または無線のネットワークインタフェースであり、ネットワークNTに接続されている。
スキャナ部280は、CCDやCMOSなどの光電変換素子を用いて光学的に文書等の対象物を読み取ることによって、読み取った画像(「スキャン画像」と呼ぶ)を表すスキャンデータを生成する。
印刷部290は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に画像を印刷する装置である。本実施例では、印刷部290は、シアンC、マゼンタM、イエロY、ブラックKの4種類のインクを用いてカラー画像を印刷可能なインクジェット方式の印刷装置である。
カードリーダ295は、ICカード等のカードに記録されたデータを、接触、または、非接触で読み取る装置である。本実施例では、カードリーダ295は、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)などの比較的近距離での無線通信によって、カードからデータを取得する装置である。
コンピュータ300は、サーバ100に印刷用の画像データを送信するために利用される装置であり、例えば、デスクトップコンピュータやタブレットコンピュータである。コンピュータ300は、プロセッサと、揮発性記憶装置と、不揮発性記憶装置と、ネットワークNTに接続するためのインタフェースと、を有している(図示省略)。
メールサーバ400は、電子メールの転送と配信とを行う装置である。メールサーバ400は、例えば、SMTP(Simple Mail Transfer Protocol)に従って電子メールを転送し、そして、POP(Post Office Protocol)に従って電子メールを配信する。電子メールの配信先(すなわち、宛先)は、メールアドレスとも呼ばれる。
スマートフォン500は、電話機能を有する携帯用コンピュータの一種である。本実施例では、スマートフォン500上では、電子メールを扱うメールアプリケーションが動作し、このメールアプリケーションは、メールサーバ400から特定のメールアドレス宛の電子メールを受信するように、設定されている。
以下、スマートフォン500の所有者が、コンピュータ300と複合機200とを操作することとして、説明を行う。
図2は、サーバ100に印刷用の画像データをアップロードする処理を示すシーケンス図である。図2の例は、コンピュータ300が、ユーザの指示に応じて、サーバ100に画像データを送信する場合を示している。
S100では、コンピュータ300は、ユーザの指示に応じて、認証のためのアカウント情報を、サーバ100に送信する。例えば、サーバ100のプロセッサ110は、アカウント情報を入力するためのログイン画面を提供するウェブサーバとして、動作する。ユーザは、コンピュータ300上で動作するウェブブラウザを操作し、サーバ100のログイン画面にアカウント情報を入力する。アカウント情報は、サーバ100の利用を認められたユーザを識別する情報である。本実施例では、アカウント情報として、認証IDが入力される。また、認証のために、パスワードも入力される。コンピュータ300は、入力された認証IDとパスワードとを、サーバ100へ送信する。
S110では、サーバ100のプロセッサ110は、アカウント情報テーブル134を参照して、S100で受信したアカウント情報の認証を行う。図3(A)は、アカウント情報テーブル134の例を示す概略図である。本実施例では、アカウント情報テーブル134は、アカウントIDと、メールアドレスと、パスワードと、認証IDと、PINコードと、の対応関係を表している。アカウントIDは、サーバ100による処理で用いられる識別番号であり、認証ID毎に異なっている。メールアドレスは、後述する一時コードの宛先である。パスワードは、認証用のパスワードである。PINコードは、複合機200に画像データを送信する際に用いられるコードである。アカウント情報テーブル134の情報は、アカウント情報を管理する管理者によって、予め決定されている。
図2のS110では、プロセッサ110は、コンピュータ300からの認証IDが、アカウント情報テーブル134に登録済であり、かつ、コンピュータ300からのパスワードが、アカウント情報テーブル134によって認証IDに対応付けられたパスワードと一致する場合に、認証が成功したと判断する。図示を省略するが、認証に失敗した場合(認証IDが未登録、または、パスワードが誤っている場合)、プロセッサ110は、認証失敗をコンピュータ300に通知して、処理を終了する。以下、認証に成功したこととして、説明を行う。S120では、プロセッサ110は、認証成功をコンピュータ300に通知する。
S125では、コンピュータ300は、印刷用の画像データを準備する。例えば、ユーザは、コンピュータ300上で動作する文書作成プログラム、画像作成プログラム、画像閲覧プログラムなどのアプリケーションプログラムに対して、印刷するための文書や写真などの画像を選択する指示と、選択した画像を印刷するための画像データを作成する指示と、を入力する。コンピュータ300は、指示に応じて、印刷用の画像データを生成する。生成される画像データは、複合機200の制御装置202によって解釈可能なデータ形式で表されたデータである。画像データは、例えば、印刷画素毎、かつ、インクの種類毎に、ドットの状態を表す画像データである。ドットの状態は、例えば、ドットの有無を含む。また、ドットの状態は、ドットの有無と、ドットのサイズと、を含んでもよい。このようなドットの状態を表す画像データは、印刷データとも呼ばれる。印刷データは、ユーザによって選択された画像を表す入力画像データから、生成され得る。例えば、入力画像データによって表される複数の画素のそれぞれの色値(例えば、RGBの色値)は、印刷に利用可能な色材の種類に対応する色成分(ここでは、CMYK)で表された色値に変換される。そして、変換済の色値を用いるハーフトーン処理によって、印刷データが生成される。
S130では、コンピュータ300は、印刷用の画像データを含む印刷要求を、サーバ100に送信する。S135では、サーバ100のプロセッサ110は、コンピュータ300からの画像データを取得する。このような画像データのアップロードは、アカウント情報の認証に成功した場合に、許可される。従って、コンピュータ300からの印刷要求は、アカウント情報に対応付けられている、と言える。
S140では、プロセッサ110は、取得した画像データを、記憶装置115(例えば、不揮発性記憶装置130)に格納する。S145では、プロセッサ110は、取得した画像データに関する情報を生成し、生成した情報を画像データテーブル135に追加する。
図3(B)は、画像データテーブル135の例を示す概略図である。本実施例では、画像データテーブル135は、印刷IDと、アカウントIDと、画像データを示すパスと、ステータスと、生成日時と、の対応関係を表している。印刷IDは、サーバ100による処理で用いられる識別番号である。プロセッサ110は、画像データがアップロードされるたびに、画像データテーブル135に含まれるいずれの印刷IDとも異なる番号を、アップロードされた画像データに割り付ける。印刷IDは、画像データを用いる印刷のための処理(印刷ジョブとも呼ぶ)毎に異なっている。アカウントIDは、画像データのアップロードのために認証された認証IDに対応付けられたアカウントID(図3(A))である。パスは、記憶装置115(ここでは、不揮発性記憶装置130)における画像データの格納位置を示している。ステータスは、印刷処理の状況を示している。「Queued」は、画像データがアップロードされ、かつ、複合機200への画像データの送信が開始されていないことを示している。「Printed」は、複合機200への画像データの送信が完了したことを示している。「PIN Failed」は、後述するように、複合機200に入力されたコードが誤っていることを示している。S145では、プロセッサ110は、新たに追加する情報のステータスを「Queued」に設定する。生成日時は、画像データがアップロードされた日時である。
S150では、プロセッサ110は、画像データのアップロードが完了したことを、コンピュータ300に通知する。以上により、図2の処理が終了する。
図4、図5は、サーバ100に格納された画像データを用いて画像を印刷する処理の例を示すシーケンス図である。図5は、図4の続きを示している。ユーザは、複合機200の操作部250を操作して、印刷処理の開始指示を入力する。これにより、図4、図5の処理が開始する。
S200では、ユーザは、複合機200に、アカウント情報(ここでは、認証ID)を入力する。本実施例では、ユーザは、認証IDとパスワードとが記録されたICカードを持っており、このICカードを複合機200のカードリーダ295に近づけることによって、認証IDとパスワードとを複合機200に入力する。なお、パスワードは、ICカードに記録されずに、操作部250の操作によって入力されてもよい。また、ユーザは、ICカードを用いずに、操作部250を操作することによって、認証IDとパスワードとを入力してもよい。
S210では、複合機200のプロセッサ210は、入力された認証IDとパスワードを表すデータを、サーバ100に送信する。サーバ100のプロセッサ110は、複合機200からの認証IDとパスワードを表すデータを、取得する。S220では、プロセッサ110は、アカウント情報テーブル134(図3(A))を参照して、S210で取得した認証IDの認証を行う。この認証の処理は、図2のS110と同じである。S230では、プロセッサ110は、認証に成功したか否かを判断する。以下、複合機200に入力され、そして、認証に成功した認証IDを、対象認証IDとも呼ぶ。
認証に成功しない場合(S230:No)、S260で、プロセッサ110は、認証結果(ここでは、失敗)を表すデータを、複合機200に送信する。認証に成功した場合(S230:Yes)、S240で、プロセッサ110は、テーブル134、135(図3(A)、図3(B))を参照して、対象認証IDに対応付けられた画像データ(ここでは、対象認証IDに対応付けられたアカウントIDに対応付けられた画像データ)を検索する。S250では、プロセッサ110は、認証結果(ここでは、成功)を表すデータと、対象認証IDに対応付けられた画像データの一覧を表すデータとを、複合機200に送信する。画像データの一覧は、画像データに対応付けられた情報(本実施例では、印刷IDと生成日時)のリストを表している。
S270では、複合機200のプロセッサ210は、サーバからのデータを参照して、認証に成功したか否かを判断する。認証に成功していない場合(S270:No)、プロセッサ210は、S200へ移行して、アカウント情報を取得し直す。
認証に成功した場合(S270:Yes)、S280で、プロセッサ210は、サーバ100から取得したリストを用いて、表示部240に、画像データの一覧を表示する。S290では、ユーザは、操作部250を操作して、表示された一覧のうちの印刷したい画像データを選択する指示を、入力する。本実施例では、選択された画像データは、印刷IDによって特定される。以下、選択された画像データを表す印刷DIを「選択印刷ID」とも呼ぶ。
S300(図5)では、ユーザは、複合機200の操作部250を操作して、印刷に利用されるコードを入力する。通常は、図3(A)で説明したPINコードが入力される。ただし、後述するように、PINコードの代わりに、一時コードが入力される場合もある。以下、入力されたコードを「入力コード」とも呼ぶ。
S310では、複合機200のプロセッサ210は、選択印刷IDを表すデータと、入力コードを表すデータとを、サーバ100へ送信する。S315では、サーバ100のプロセッサ110は、複合機200からの、選択印刷IDを表すデータと入力コードを表すデータとを、受信(すなわち、取得)する。S320では、プロセッサ110は、入力コードがPINコードであるか否かを判断する。本実施例では、PINコードは、数字のみで表され、一時コードは、アルファベットと数字とで表される。入力コードが数字のみで表されている場合、プロセッサ110は、入力コードがPINコードであると判断する。入力コードがアルファベットと数字とを含む場合、プロセッサ110は、入力コードが一時コードであると判断する。先ず、入力コードがPINコードである場合について説明する。一時コードが入力される場合については、後で説明する。
入力コードがPINコードである場合(S320:Yes)、S330で、プロセッサ110は、アカウント情報テーブル134(図3(A))を参照して、入力コードが、対象認証IDに対応付けられたPINコード(すなわち、選択印刷IDに対応付けられた認証IDに対応付けられたPINコード。以下、対象PINコードと呼ぶ)と一致するか否かを判断する。
入力コードが対象PINコードと異なる場合(S330:No)、S370で、プロセッサ110は、エラー情報を記憶装置に格納する。本実施例では、プロセッサ110は、不揮発性記憶装置130に格納されている画像データテーブル135(図3(B))の選択印刷IDと同じ印刷IDに対応付けられたステータスを、「Pin Failed」に変更する。「Pin Failed」は、入力コードが対象PINコードと一致しないことを示すエラー情報である。そして、S380で、プロセッサ110は、入力コードが不適切であったことを複合機200に通知する。
入力コードが対象PINコードと一致する場合(S330:Yes)、S350で、プロセッサ110は、テーブル134、135(図3(A)、図3(B))を参照して、選択印刷IDの印刷IDに対応付けられた画像データ(以下、対象画像データと呼ぶ)のパスを検索する。そして、プロセッサ110は、検索されたパスで特定される対象画像データを、記憶装置115(ここでは、不揮発性記憶装置130)から取得する。S360では、プロセッサ110は、入力コードが適切であることを示すデータと、対象画像データとを、複合機200に送信する。また、データの送信が完了したことに応じて、プロセッサ110は、選択印刷IDの印刷IDに対応付けられたステータス(テーブル135、136(図3(B)、図3(C))を、「Printed」に変更する。
なお、対象画像データは、選択印刷IDに対応付けられており、選択印刷IDは、図4のS240で説明したように、対象認証IDに対応付けられたアカウントIDに対応付けられている。そして、図3(A)で説明したように、アカウントIDには、PINコードが対応付けられている。以上により、対象画像データは、PINコードに対応付けられている、と言える。
S390では、複合機200のプロセッサ210は、サーバ100からのデータを参照して、入力コードが適切であったか否かを判断する。入力コードが適切であった場合(S390:Yes)、S400で、プロセッサ210は、サーバ100から受信した対象画像データを用いて印刷部290(図1)を制御することによって、印刷部290に画像を印刷させる。そして、プロセッサ210は、図4、図5の処理を終了する。
入力コードが不適切であった場合(S390:No)、S410で、プロセッサ210は、ユーザがコードの再入力を希望しているか否かを判断する。例えば、プロセッサ210は、表示部240に、コードを再入力するか否かをユーザに問い合わせる画面を表示する。ユーザは操作部250を操作することによって、コードを再入力するか否かを決定する。コードの再入力がされない場合(S410:No)、プロセッサ210は、画像を印刷せずに、図4、図5の処理を終了する。コードの再入力がされる場合(S410:Yes)、プロセッサ210は、S300へ移行する。
以上のように、入力されたPINコードが適切である場合(S320:Yes、S330:Yes)、サーバ100のプロセッサ110は、対象画像データを複合機200へ送信し(S360)、複合機200のプロセッサ210は、受信した対象画像データを用いて印刷部290に画像を印刷させる。入力されたPINコードが不適切である場合(S320:Yes、S330:No)、サーバ100のプロセッサ110は、対象画像データを複合機200へ送信せず、複合機200のプロセッサ210は、画像を印刷しない。
図6は、一時コードを送信する処理の例を示すフローチャートである。サーバ100(図1)のプロセッサ110は、図4、図5の処理とは独立に、図4、図5の処理とは並行して、図6の処理を繰り返し実行する。
S500では、プロセッサ110は、画像データテーブル135(図3(B))からエラー情報(本実施例では、「Pin Failed」のステータス)を検索する。S510では、プロセッサ110は、予め決められた送信条件を満たすエラー情報が検索されるか否かを判断する。送信条件は、PINコードの代わりに利用できる一時コードを送信するための条件である。本実施例では、送信条件は、エラー情報が画像データテーブル135から検索されること(すなわち、エラー情報が記憶装置115(ここでは、不揮発性記憶装置130)に格納されていること)である。このように、本実施例では、画像データテーブル135から検索されるエラー情報は、いずれも、送信条件を満たしている。以下、送信条件を満たすエラー情報を、対象エラー情報とも呼ぶ。
対象エラー情報が検索されない場合(S510:No)、S550で、プロセッサ110は、予め決められた待ち時間の経過を待つ。待ち時間は、例えば、数分に設定されてよく、数時間に設定されてもよい。待ち時間が経過したことに応じて、プロセッサ110は、S500へ移行する。このように、プロセッサ110は、定期的に、図6の処理を実行する。
対象エラー情報が検索される場合(S510:Yes)、S520で、プロセッサ110は、対象エラー情報に対応付けられた印刷ID毎に、一時コードを決定する。本実施例では、一時コードは、1以上のアルファベットと1以上の数字との組み合わせである。プロセッサ110は、乱数を用いて、一時コードを決定する。このように、一時コードは、対象エラー情報毎に(ここでは、印刷ID毎に、すなわち、画像データ毎に)異なっている。S525では、プロセッサ110は、生成した一時コードに関する情報を生成し、生成した情報を一時コードテーブル136に追加する。
図3(C)は、一時コードテーブル136の例を示す概略図である。本実施例では、一時コードテーブル136は、コードIDと、印刷IDと、一時コードと、ステータスと、の対応関係を表している。コードIDは、サーバ100による処理で用いられる識別番号である。プロセッサ110は、一時コードを生成するたびに、一時コードテーブル136に含まれるいずれのコードIDとも異なる番号を、生成した一時コードに割り付ける。印刷IDは、一時コードが割り付けられる対象エラー情報に対応付けられた印刷IDである。一時コードは、S520(図6)で決定された一時コードである。ステータスは、画像データテーブル135(図3(B))のステータスと同じである。なお、本実施例では、S525では、プロセッサ110は、選択印刷ID(すなわち、一時コードが生成された印刷ID)に対応付けられたステータス(テーブル135、136(図3(B)、図3(C))のステータス)を、「Pin Failed」から「Queued」に変更する。これにより、1つの印刷IDに複数の一時コードが決定されることが、抑制される。ただし、ステータスが「Pin Failed」に維持されてもよい。
図6のS530では、対象エラー情報に対応付けられたメールアドレスを取得する。本実施例では、プロセッサ110は、画像データテーブル135(図3(B))を参照して、対象エラー情報に対応付けられたアカウントIDを特定し、アカウント情報テーブル134(図3(A))を参照して、アカウントID(すなわち、認証ID)に対応付けられたメールアドレスを特定する。以下、特定されたメールアドレスを、対象メールアドレスとも呼ぶ。なお、図3(A)で説明したように、メールアドレスは、入力されるべきPINコードに対応付けられている、と言える。
S540では、プロセッサ110は、対象メールアドレスによって特定される外部装置であって複合機200とは異なる外部装置に向けて、一時コードを表すデータを送信する。本実施例では、プロセッサ110は、一時コードを表す対象メールアドレス宛の電子メールを送信する。通常は、電子メールは、送り手から、1以上のメールサーバを介して、受け手に届けられる。電子メールの送り手は、電子メールを表すメールデータを、予め決められた送信用のメールサーバに、送信する。送信用のメールサーバは、受信したメールデータを、宛先のメールアドレスの電子メールの配信を行うメールサーバ(対象メールサーバとも呼ぶ)に、転送する。対象メールサーバは、メールアドレスのドメイン部分によって特定されるサーバである。対象メールサーバは、受信したメールデータを、対象メールアドレス宛の電子メールを受信するように設定された端末(すなわち、対象メールアドレスによって特定される外部装置)に、配信する。なお、送信用のメールサーバは、対象メールサーバと同じであり得る。
本実施例では、メールサーバ400(図1)が、対象メールアドレスに対応付けられた対象メールサーバであることとする。また、スマートフォン500で動作するメールアプリケーションが、対象メールアドレスの電子メールを受信するように、設定されていることとする。さらに、サーバ100のプロセッサ110は、メールサーバ400を、送信用のメールサーバとして利用することとする。この場合、プロセッサ110は、メールサーバ400に、対象メールアドレス宛の電子メールを表すメールデータを送信する。このメールデータは、一時コードを表している。メールサーバ400は、受信したメールデータを、対象メールアドレス宛の電子メールを受信するように設定されたスマートフォン500に、配信する。例えば、スマートフォン500のメールアプリケーションは、定期的に、メールサーバ400から、対象メールアドレス宛のメールデータを、取得する。ユーザは、スマートフォン500を操作することによって、電子メールを閲覧できる。これにより、ユーザは、一時コードを、知ることができる。
プロセッサ110によって送信されたメールデータは、1以上のメールサーバを介して、対象メールアドレスによって特定される外部装置(ここでは、スマートフォン500)に到達する。このように、プロセッサ110は、外部装置がスマートフォン500であることを特定できないものの、最終的にメールデータが対象メールアドレスに対応付けられた外部装置に届くように、メールデータを送信する。この場合、プロセッサ110は、外部装置にデータを送信している、と言える。
図6のS550では、プロセッサ110は、待ち時間の経過を待つ。そして、待ち時間の経過に応じて、プロセッサ110は、S500へ移行する。このように、図6の処理は、定期的に行われる。
以上のように、ユーザが誤ったPINコードを入力した場合に、サーバ100によって一時コードが発行される。後述するように、この一時コードは、PINコードの代わりに、利用できる。例えば、ユーザは、正しいPINコードを忘れた場合に、一時コードを利用できる。以下、一時コードが利用される場合の処理について、説明する。
ユーザは、複合機200の操作部250を操作して、印刷処理の開始指示を入力する。これにより、図4、図5の処理が開始する。図4の各処理は、上記の通り、進行する。S290では、一時コードに対応付けられた画像データ(すなわち、印刷ID)が選択されたこととする。図5のS300では、ユーザは、PINコードの代わりに、一時コードを入力する。S310、S315では、入力コードとして、PINコードの代わりに、一時コードが、用いられる。
S320では、プロセッサ110は、入力コードが一時コードであると判断する(S320:No)。S340では、プロセッサ110は、一時コードテーブル136(図3(C))を参照して、入力コードが、選択印刷IDに対応付けられた一時コード(対象一時コードと呼ぶ)と一致するか否かを判断する。
入力コードが対象一時コードと異なる場合(S340:No)、プロセッサ110は、S370、S380を実行する。なお、S370が実行されずに、S380が実行されてもよい。S380以降の処理は、PINコードが入力された場合のS380以降の処理と、同じである。この場合、対象画像データは、複合機200へ送信されず、複合機200は、画像を印刷しない。
入力コードが対象一時コードと一致する場合(S340:Yes)、プロセッサ110は、S350に移行する。S350以降の処理は、PINコードが入力された場合のS350以降の処理と、同じである。サーバ100のプロセッサ110は、S350では、選択印刷IDに対応付けられた対象画像データを取得し、S360では、対象画像データを、複合機200に送信する。上述したように、対象画像データは、適切なPINコードに対応付けられている。S400では、複合機200のプロセッサ110は、対象画像データを用いて画像を印刷する。
以上のように、本実施例では、複合機200に適切なPINコードが入力されると特定される場合(図5:S330:Yes)、S360で、サーバ100のプロセッサ110は、PINコードに対応付けられた対象画像データを、印刷のために、複合機200に送信する。従って、正規のユーザは、適切に、画像の印刷を進行できる。
また、複合機200に適切なPINコードが入力されると特定されない場合(図5:S330:No)、S370で、プロセッサ110は、記憶装置115(ここでは、不揮発性記憶装置130)に格納された画像データテーブル135(図3(B))に、エラー情報を追加する。そして、画像データテーブル135から予め決められた送信条件を満たすエラー情報が検索される場合(図6:S510:Yes)、サーバ100のプロセッサ110は、S530で、適切なPINコードに対応付けられる対象メールアドレスを取得し、S540で、対象メールアドレスに対応付けられる外部装置(ここでは、スマートフォン500)に向けて、PINコードとは異なる一時コードを送信する。この一時コードが複合機200に入力されると特定される場合(図5:S340:Yes)、S360で、サーバ100のプロセッサ110は、適切なPINコードに対応付けられた対象画像データを、印刷のために、複合機200に送信する。
このように、適切なPINコードが複合機200に入力されない場合であっても、一時コードが複合機200に入力されることによって、対象画像データが複合機200に送信されるので、利便性を向上できる。例えば、正規のユーザは、PINコードを忘れた場合には、一時コードを用いて画像の印刷を進行できる。また、一時コードは、適切なPINコードに対応付けられたメールアドレスに対応付けられる外部装置に送信されるので、正規のユーザとは異なるユーザが一時コードを利用することが、抑制される。このように、セキュリティの低下を抑制できる。
また、サーバ100のプロセッサ110は、複合機200から入力コードを受信し(図5:S315)、入力コードが適切なPINコードに一致する場合に、複合機200に適切なPINコードが入力されると判断し(S330:Yes)、対象画像データを複合機200に送信する(S360)。また、入力コードが適切なPINコードに一致しない場合に(S330:No)、S370で、プロセッサ110は、エラー情報を、記憶装置115(ここでは、不揮発性記憶装置130)に、格納する(より具体的には、画像データテーブル135(図3(B)に、エラー情報が追加される)。そして、図6のS510で説明したように、一時コードを送信するための送信条件は、記憶装置115(ここでは、不揮発性記憶装置130)にエラー情報が格納されていることを含んでいる。従って、入力コードが適切なPINコードに一致しない場合に、プロセッサ110は、適切に、一時コードを送信できる。
また、図5のS300、S310で説明したように、複合機200のプロセッサ210は、外部装置に送信された一時コードが複合機200に入力されることに応じて、入力された入力コードを、サーバ100に送信する。すなわち、サーバ100のプロセッサ110は、複合機200に一時コードが入力されることに応じて、複合機200から、複合機200に入力された入力コードを受信する(S315)。そして、プロセッサ110は、受信した入力コードが対象一時コードと一致する場合に(S340:Yes)、対象画像データを複合機200に送信する(S350、S360)。従って、利便性を向上できる。例えば、正規のユーザは、PINコードを忘れた場合には、一時コードを用いて画像の印刷を進行できる。
また、図6のS550で説明したように、サーバ100のプロセッサ110は、送信条件が満たされるか否か(ここでは、送信条件を満たすエラー情報が記憶装置115(ここでは、不揮発性記憶装置130)に格納されているか否か)を、定期的に確認する。従って、プロセッサ110は、エラー情報に応じて、適切に、一時コードを送信できる。
また、図2のS130、S135で説明したように、サーバ100のプロセッサ110は、印刷要求に応じて、画像データを取得する。印刷要求は、アカウント情報(具体的には、認証ID)に対応付けられている。そして、図3(A)で説明したように、適切なPINコードは、画像データの取得のための印刷要求に対応付けられる認証IDに、予め、対応付けられている。このように、画像データのアップロードに用いられた認証IDに対応付けられたPINコードが、適切なPINコードとして用いられるので、PINコードを用いて適切に対象画像データを処理できる。例えば、適切なPINコードを知らないユーザが対象画像データを用いる印刷を進行することを、抑制できる。
また、サーバ100のプロセッサ110は、複合機200に入力された認証IDを複合機200から取得し(図4:S210)、取得した認証ID(ここでは、対象認証ID)に対応付けられた画像データのリストを複合機200に送信する(図4:S250)。そして、プロセッサ110は、リストの中から選択される対象画像データを特定する選択印刷IDを複合機200から取得し(図5:S315)、選択印刷IDによって特定される対象画像データを、複合機200に送信する(図5:S360)。このように、画像印刷のために複合機200に入力された対象認証IDに対応付けられる画像データのリストから、印刷のために複合機200に送信される対象画像データが選択される。対象認証IDに対応付けられていない画像データは複合機200には送信されない。以上により、セキュリティの低下を抑制できる。
また、図5のS320、S330、S350に示すように、サーバ100のプロセッサ110は、一時コードが送信された後であっても、複合機200に適切なPINコードが入力されると特定される場合(すなわち、入力コードが適切なPINコードと一致する場合(S320:Yes、S330:Yes))、対象画像データを複合機200に送信する。このように、一時コードが発行された場合には、ユーザは、PINコードと一時コードとのうちの任意のコードを利用できるので、利便性を向上できる。
また、図6のS520で説明したように、サーバ100のプロセッサ110は、画像データ毎に異なる一時コードを決定する。このように、1つの一時コードが複数の画像データに共通に利用されることが抑制されるので、セキュリティの低下を抑制できる。
B.変形例:
(1)画像データをサーバから取得するためにプリンタに入力される第1認証情報は、上記のPINコードに代えて、種々の情報であってよい。例えば、第1認証情報を構成する文字の種類は、任意の種類(例えば、数字、アルファベット、記号から任意に選択された1種以上)を含んでよい。また、第1認証情報は、対象画像データ毎に決定されてもよい。例えば、サーバ100のプロセッサ110は、図2の処理において、画像データを取得したことに応じて第1認証情報を決定し、決定した第1認証情報を画像データの送信元に通知してもよい。第1認証情報は、例えば、乱数を用いて決定されてよい。このように、第1認証情報は、画像データ毎に異なっていてもよい。プロセッサ110は、決定した第1認証情報を、画像データと対応付けて、記憶装置115(例えば、不揮発性記憶装置130の画像データテーブル135(図3(B))に格納することが好ましい。
(2)第1認証情報の代わりに利用される第2認証情報は、上記の一時コードに代えて、種々の情報であってよい。例えば、第2認証情報を構成する文字の種類は、任意の種類(例えば、数字、アルファベット、記号から任意に選択された1種以上)を含んでよい。また、第2認証情報は、アカウント情報毎に決定されてもよい。この場合、共通のアカウント情報に対応付けられた複数の画像データには、共通の第2認証情報が用いられる。
(3)第2認証情報をプリンタに送信するための条件は、プリンタに第1認証情報が入力されると特定されないことを含む種々の条件であってよい。例えば、サーバ100のプロセッサ110は、図5のS370に続いて、図6のS520〜S540の処理を実行してもよい。
また、送信条件は、1つの画像データに対応付けられたエラー情報の総数がN以上(Nは2以上の整数)であることを、含んでもよい。ユーザは、誤った第1認証情報(例えば、PINコード)を記憶している場合がある。そのようなユーザは、プリンタに、複数回、覚えている第1認証情報(すなわち、誤った第1認証情報)を入力し得る。サーバ100のプロセッサ110は、図5のS370で、印刷ID毎に(すなわち、画像データ毎に)、エラー情報の総数を記憶装置115(例えば、不揮発性記憶装置130の画像データテーブル135)に格納する。そして、図6のS510では、エラー情報の総数がN以上である場合に、送信条件が満たされると判断され、S540で、第2認証情報が外部装置に送信される。これにより、ユーザは、誤った第1認証情報を、複数回、入力する場合に、第2認証情報を利用して、画像の印刷を進行できる。
また、送信条件は、サーバ100に画像データがアップロードされた後、サーバ100がその画像データを用いる印刷の要求(すなわち、画像データの送信の要求)をプリンタから受信することなく、所定時間(例えば、数時間、数日など)が経過すること、であってもよい。ユーザは、第1認証情報を忘れる場合がある。画像データがサーバ100にアップロードされた後、第1認証情報を忘れたユーザがプリンタを操作しない場合がある。このような場合に、サーバ100のプロセッサ110は、所定時間が経過したことに応じて、第2認証情報を決定し、決定した第2認証情報を、画像データのアップロードに用いられたアカウント情報(例えば、認証ID)に対応付けられるアドレス情報によって特定される外部装置に、送信する。この結果、ユーザは、第2認証情報を用いて、画像の印刷を進行できる。
(4)第2認証情報の送信に用いられるアドレス情報は、メールアドレスに代えて、プリンタとは異なる外部装置を特定する種々のアドレス情報であってよい。例えば、アドレス情報は、電話番号であってもよい。サーバ100のプロセッサ110は、電話番号宛てに、一時コードを表すSMS(short message service)のメッセージを送信してもよい。いずれの場合も、第1認証情報に対応付けられるアドレス情報は、アドレス情報に対応付けられる外部装置が第1認証情報を利用可能な正規のユーザによって利用される装置であるように、予め決定されていることが好ましい。
また、サーバ100のプロセッサ110は、アドレス情報によって特定される外部装置に、直接的、または、他の装置を介して間接的に、第2認証情報を送信してよい。いずれの場合も、プロセッサ110が仮に外部装置を特定できない場合であっても、プロセッサ110が、最終的に第2認証情報が外部装置に届くように、第2認証情報を表すデータを送信する場合には、プロセッサ110は外部装置に第2認証情報を送信している、と言える。また、サーバ100に代えて、メールサーバのように、サーバ100と外部装置との間で第2認証情報を表すデータを仲介する他の装置が、アドレス情報によって特定される外部装置を特定してもよい。メールサーバは、POP等のメール受信用の認証に成功した装置に、メールデータを送信する。従って、メールサーバは、メール受信用の認証に成功した装置を、メールアドレスによって特定される外部装置であると特定している、といえる。
(5)印刷のための処理は、図2、図4、図5、図6で説明した処理に代えて、他の種々の処理であってよい。例えば、図5のS370では、エラー情報は、不揮発性記憶装置130に代えて、揮発性記憶装置120に格納されてもよい。図4のS260では、認証された認証IDに拘わらず、サーバ100の記憶装置115(例えば、揮発性記憶装置120、または、不揮発性記憶装置130)に格納された全ての画像データのリストが、複合機200に送信されてもよい。
また、第2認証情報(例えば、一時コード)が発行された後は、第1認証情報が無効にされてもよい。この場合、サーバ100のプロセッサ110は、プリンタに入力された入力認証情報が第1認証情報に一致する場合であっても、画像データをプリンタに送信せずに、入力認証情報が第2認証情報に一致する場合に、画像データをプリンタに送信してよい。
なお、入力認証情報(例えば、入力コード)が、第1認証情報と第2認証情報とのいずれであるのかを判断する方法としては、入力認証情報に含まれる文字の種類を用いる方法に代えて、他の任意の方法を採用可能である。例えば、プリンタ(例えば、複合機200のプロセッサ210)は、ユーザに、第1認証情報と第2認証情報とのいずれを入力するのかを、選択させ、そして、選択された認証情報の種類を、サーバ100に通知してもよい。サーバ100のプロセッサ110は、プリンタからの通知に応じて、入力認証情報の種類を特定できる。
また、アカウント情報を用いる認証は、画像データの格納とプリンタへの画像データの送信とを行うサーバ100とは異なる別の認証サーバによって、行われてもよい。この場合、サーバ100のプロセッサ110は、認証サーバによる認証の結果に応じて、処理を進行してよい。また、サーバ100のプロセッサ110は、第1認証情報に対応付けられるアドレス情報を、サーバ100とは異なる別の装置(例えば、認証サーバ)から、取得してもよい。また、パスワードを用いずに、アカウント情報(例えば、認証ID)が適切であるか否か(例えば、入力された認証IDが、アカウント情報テーブル134に格納されているか否か)に応じて、認証結果が決定されてもよい。また、ユーザを識別するアカウント情報(例えば、認証ID)としては、メールアドレスや電話番号などのユーザを識別する種々の情報を採用してよい。また、アカウント情報を用いる認証が、省略されてもよい。
また、サーバ100にアップロードされる画像データは、印刷データに代えて、他の任意のデータ形式の画像データであってよい。例えば、JPEG形式などのビットマップ形式を採用してもよく、EMF(Enhanced Meta File)形式のようにページ記述言語で記述されたデータ形式を採用してもよく、特定のアプリケーションのための専用のデータ形式を採用してもよい。一般的には、プリンタが利用可能なデータ形式を採用することが好ましい。この構成によれば、サーバ100のプロセッサ110は、アップロードされた画像データを、そのまま、プリンタに送信できる。なお、サーバ100のプロセッサ110は、アップロードされた画像データを用いて、プリンタに送信すべき画像データを生成してもよい。例えば、サーバ100のプロセッサ110は、アップロードされた画像データを用いて、画像処理を実行して、印刷データを生成してもよい。
(6)プリンタの構成は、図1の複合機200の構成に代えて、画像を印刷可能な種々の構成であってよい。例えば、スキャナ部280とカードリーダ295との少なくとも一方が省略されてもよい。
(7)プリンタに画像データを送信するサーバの構成は、図1のサーバ100の構成に代えて、他の種々の構成であってよい。例えば、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、印刷のための処理の機能を一部ずつ分担して、全体として、サーバの機能を提供してもよい(これらの装置を備えるシステムがサーバに対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図6のS520の一時コードを決定する機能を、専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。