(第1実施例)
図1に示されるように、通信システム2は、プリンタ10と、携帯端末70と、印刷仲介サーバ100と、を備える。各デバイス10,70,100は、インターネットを介して、相互に通信可能である。
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺機器(即ちPC等の周辺機器)である。プリンタ10は、操作部12と、表示部14と、を備える。また、プリンタ10は、NFC(Near Field Communicationの略)インターフェース16を備える。また、プリンタ10は、無線LAN(Local Area Networkの略)インターフェース18を備える。また、プリンタ10は、印刷実行部20を備える。また、プリンタ10は、制御部30を備える。各部12〜30は、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に与えることができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部20は、インクジェット方式、レーザ方式等の印刷機構である。
NFCI/F16は、いわゆる近距離無線通信のためのNFC方式に従った無線通信(以下では「NFC通信」と呼ぶ)を実行するためのI/F(即ち、ICチップ、通信回路)である。NFC方式は、例えば、ISO/IEC21481又は18092の国際標準規格に基づく無線通信方式である。
無線LANI/F18は、Wi−Fi Allianceによって定められた通常Wi−Fi方式に従った無線通信(以下では「通常Wi−Fi通信」と呼ぶ)を実行するためのI/F(即ち、ICチップ、通信回路)である。通常Wi−Fi方式は、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば、802.11a,11b,11g,11n等)に基づく無線通信方式である。
ここでは、NFCI/F16と無線LANI/F18の相違点を説明しておく。無線LANI/F18を介した無線通信の通信速度(例えば、最大の通信速度が11〜600Mbps)は、NFCI/F16を介した無線通信の通信速度(例えば、最大の通信速度が100〜424Kbps)よりも速い。また、無線LANI/F18を介した無線通信における搬送波の周波数(例えば、2.4GHz帯、5.0GHz帯)は、NFCI/F16を介した無線通信における搬送波の周波数(例えば、13.56MHz帯)とは異なる。また、例えば、プリンタ10のNFCI/F16と他の機器(例えば携帯端末70)のNFCI/Fとの間の距離が約10cm以下である場合に、制御部30は、NFCI/F16を介して、当該他の機器とNFC通信を実行可能である。一方において、プリンタ10の無線LANI/F18と他の機器(例えば携帯端末70)の無線LANI/Fとの間の距離が、10cm以下である場合でも、10cm以上である場合(例えば最大で約100m)でも、制御部30は、無線LANI/F18を介して、当該他の機器と通常Wi−Fi通信を実行可能である。即ち、プリンタ10が無線LANI/F18を介して他の機器と無線通信を実行可能な最大の距離は、プリンタ10がNFCI/F16を介して他の機器と無線通信を実行可能な最大の距離よりも大きい。
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラムに従って、様々な処理を実行するプロセッサである。メモリ34は、RAM、ROM、ハードディスク等によって構成される。メモリ34は、上記のプログラムのみならず、プリンタ10が様々な処理を実行する過程で生成又は取得される様々なデータを格納する。
(携帯端末70の構成)
携帯端末70は、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末装置である。携帯端末70は、操作部72と、表示部74と、NFCI/F76と、無線LANI/F78と、制御部80と、を備える。各部72〜80は、バス線(符号省略)に接続されている。
操作部72は、複数のキーを備える。ユーザは、操作部72を操作することによって、様々な指示を携帯端末70に与えることができる。表示部74は、様々な情報を表示するためのディスプレイである。NFCI/F76、無線LANI/F78は、それぞれ、プリンタ10のNFCI/F16、無線LANI/F18と同様である。従って、NFCI/F76及び無線LANI/F78の相違点は、NFCI/F16及び無線LANI/F18の相違点と同様である。
制御部80は、CPU82と、メモリ84と、を備える。CPU82は、メモリ84に格納されているプログラムに従って、様々な処理を実行するプロセッサである。メモリ84は、RAM、ROM、ハードディスク等によって構成される。メモリ84は、上記のプログラムのみならず、携帯端末70が様々な処理を実行する過程で生成又は取得される様々なデータを格納する。
メモリ84は、さらに、印刷仲介サーバ100を利用して、プリンタ10に印刷を実行させるためのプリンタ用アプリケーション(以下では「プリンタアプリ」と呼ぶ)を記憶する。プリンタアプリは、プリンタ10のベンダによって提供されるアプリケーションである。プリンタアプリは、インターネット上のサーバから携帯端末70にインストールされてもよいし、プリンタ10と共に出荷されるメディアから携帯端末70にインストールされてもよい。
(印刷仲介サーバ100の構成)
印刷仲介サーバ100は、インターネット上に設置されるサーバであり、例えば、Google(登録商標)によって提供されるGCPサーバである。ただし、変形例では、印刷仲介サーバ100は、例えば、プリンタ10のベンダによって提供されるサーバであってもよいし、プリンタ10のベンダとは異なる事業者によって提供されるサーバであってもよい。
印刷仲介サーバ100は、外部機器(例えば携帯端末70)とプリンタ(例えばプリンタ10)との間で印刷の仲介を実行するためのサーバである。即ち、印刷仲介サーバ100は、外部機器からサブミットされる画像データを変換して、プリンタが解釈可能なデータ形式を有する印刷データを生成し、当該印刷データを当該プリンタに供給する。従って、外部機器は、画像データを印刷データに変換するためのプリンタドライバを備えていなくても、印刷仲介サーバ100に画像データをサブミットすれば、プリンタに印刷を実行させることができる。
(事前準備)
上述したように、例えば、携帯端末70は、印刷仲介サーバ100を介した印刷をプリンタ10に実行させることができる。以下では、図2〜図5を参照して、当該印刷のための様々な処理を説明する。なお、携帯端末70のユーザは、図2〜図5に開示されている携帯端末70の動作を実現するために、以下の事前準備を実行しておく必要がある。
即ち、ユーザは、例えば、携帯端末70を利用して、印刷仲介サーバ100にアカウント情報を登録しておく必要がある。アカウント情報は、例えば、ユーザID、パスワード等を含む。なお、ユーザは、携帯端末70を利用する代わりに、他の機器(例えばPC等)を利用して、印刷仲介サーバ100にアカウント情報を登録してもよい。ユーザのアカウント情報が印刷仲介サーバ100に登録されれば、ユーザは、携帯端末70を利用して、印刷仲介サーバ100を介した印刷をプリンタ10に実行させることができる。
(登録プロセス;図2)
続いて、図2を参照して、携帯端末70が必要な情報を印刷仲介サーバ100に登録するための登録プロセスについて説明する。本実施例では、OAuthを利用した登録プロセスが実行される。後述の第2実施例では、Client Loginを利用した登録プロセスが実行される(図7参照)。
登録プロセスでは、携帯端末70のユーザは、プリンタ10の近くに存在しなくてもよい。即ち、例えば、プリンタ10が家庭内に設置されており、ユーザが携帯端末70を持参して外出している状況において、ユーザは、携帯端末70を利用して、様々な情報を印刷仲介サーバ100に登録することができる。
携帯端末70のユーザは、まず、携帯端末70にインストールされているプリンタアプリを起動し、プリンタアプリに従って表示される画面上で「登録」を示すボタンを選択する。この場合、携帯端末70のCPU82は、プリンタアプリに従って、図2に示される各処理を実行する。
携帯端末70のCPU82は、まず、プリンタアプリに予め登録されている仮想印刷条件情報をメモリ84から読み出す。仮想印刷条件情報は、実在プリンタ(例えばプリンタ10)ではなく、仮想プリンタが利用可能な仮想的な印刷条件を示す情報であり、プリンタ10のベンダによって予め決められた情報である。なお、図1に示されるように、プリンタアプリには、仮想印刷条件情報が予め登録されている。従って、仮想印刷条件情報は、実在プリンタ(例えばプリンタ10)から取得されることなく、メモリ84に予め記憶されている。
仮想的な印刷条件は、例えば、プリンタが解釈可能なデータ形式、画像が印刷されるべき印刷用紙のサイズ(即ち用紙サイズ)、両面印刷の実行の有無、色数(例えばモノクロ印刷、カラー印刷等)等を含む。本実施例では、予め決められている仮想的な印刷条件は、用紙サイズとして「A4」及び「B5」を含み、両面印刷の実行の有無として「無」を含み、色数として「モノクロ印刷」及び「カラー印刷」を含む。仮想的な印刷条件は、さらに、印刷向き(例えば、ランドスケープ印刷、ポートレート印刷)等の他の条件を含んでいてもよい。
次いで、携帯端末70のCPU82は、携帯端末70のプロキシID(即ち携帯端末70を識別するためのID)をメモリ84から読み出す。そして、CPU82は、無線LANI/F78を介して(即ちインターネットを介して)、仮想印刷条件情報とプロキシIDとを含む登録要求200を、印刷仲介サーバ100に送信する。なお、印刷仲介サーバ100のURL(即ち登録要求200の送信先のURL)は、プリンタアプリに予め登録されている。以下でも、特に説明しない限り、要求の送信先のURLは、プリンタアプリに予め登録されているURLであってもよい。ただし、要求の送信先のURLは、当該要求の送信前に印刷仲介サーバ100から取得されたURLであってもよい。
印刷仲介サーバ100は、携帯端末70から登録要求200を受信すると、登録要求200に含まれるプロキシIDを利用して、登録対象のプリンタを識別するためのプリンタIDを生成する。携帯端末70が登録対象のプリンタとして実在プリンタ(例えばプリンタ10)を指定しているわけではないので(即ち、登録要求200が、実在プリンタの印刷条件情報、実在プリンタのプロキシID等を含んでいないので)、印刷仲介サーバ100によって生成されるプリンタIDは、仮想プリンタを識別するためのIDである。
印刷仲介サーバ100は、生成済みの仮想プリンタのプリンタIDと、登録要求200に含まれる仮想印刷条件情報と、を関連付けて記憶する。図2において、印刷仲介サーバ100に対応する破線の右側のボックスは、当該ボックス内の各情報が関連付けられている様子を示す。図3以降でも同様である。
次いで、印刷仲介サーバ100は、生成済みのプリンタIDと、後述のログイン画面データ212の所在を示すログイン用URLと、を含むレスポンス202を、携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からレスポンス202を受信すると、レスポンス202に含まれるプリンタIDをメモリ84に記憶させる。次いで、CPU82は、レスポンス202に含まれるログイン用URLを送信先として、無線LANI/F78を介して、アクセス要求210を印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からアクセス要求210を受信すると、ログイン画面データ212を携帯端末70に送信する。ログイン画面データ212は、アカウント情報(即ちユーザID、パスワード等)を入力するためのログイン画面を表わすデータである。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン画面データ212を受信すると、ログイン画面データ212によって表わされるログイン画面を表示部74に表示させる。ユーザは、操作部72を利用して、上記の事前準備において印刷仲介サーバ100に登録されたアカウント情報を、携帯端末70に入力する。この場合、CPU82は、無線LANI/F78を介して、入力済みのアカウント情報を含むログイン要求214を、印刷仲介サーバ100に送信する。
なお、上記の例では、アカウント情報がユーザによって携帯端末70に入力される様子を説明したが、変形例では、例えば、携帯端末70を利用して上記の事前準備が実行された場合には、携帯端末70のメモリ84は、アカウント情報を記憶していてもよい。この場合、携帯端末70のCPU82は、アカウント情報の入力をユーザに実行させずに、メモリ84からアカウント情報を読み出して、アカウント情報を含むログイン要求214を印刷仲介サーバ100に送信してもよい。なお、図3以降のプロセスにおいて、携帯端末70から印刷仲介サーバ100にログイン要求が送信される状況でも、本変形例が採用されてもよい。
印刷仲介サーバ100は、携帯端末70からログイン要求214を受信すると、ログイン要求214に含まれるアカウント情報の認証を実行する。具体的に言うと、印刷仲介サーバ100は、ログイン要求214に含まれるアカウント情報が、印刷仲介サーバ100に登録済みであるのか否かを判断する。印刷仲介サーバ100は、アカウント情報が登録済みでないと判断する場合、即ち、アカウント情報の認証が失敗する場合には、図示省略しているが、ログイン失敗通知を携帯端末70に送信する。この場合、後の処理が実行されることなく、登録プロセスが終了する。
一方において、印刷仲介サーバ100は、アカウント情報が登録済みであると判断する場合、即ち、アカウント情報の認証が成功する場合には、ユニークな文字列であるトークンを生成する。トークンは、後の処理(例えば図5の印刷プロセス)で利用される認証のための情報である。以下では、ここで生成されるトークンのことを「第1のAT(Authentication(もしくはAccess) Tokenの略)」と呼ぶ。
次いで、印刷仲介サーバ100は、認証が成功したアカウント情報と、仮想プリンタのプリンタIDと、仮想印刷条件情報と、生成済みの第1のATと、を関連付けて記憶する。そして、印刷仲介サーバ100は、生成済みの第1のATを含むログイン成功通知216を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン成功通知216を受信すると、ログイン成功通知216に含まれる第1のATをメモリ84に記憶させる。これにより、登録プロセスが終了する。
上述したように、登録プロセスでは、実在プリンタ(例えばプリンタ10)のプリンタID及び印刷条件情報を印刷仲介サーバ100に登録するのではなく、仮想プリンタのプリンタID及び仮想印刷条件情報を印刷仲介サーバ100に登録する手法を採用している。即ち、携帯端末70は、登録要求200を印刷仲介サーバ100に送信して、仮想プリンタのプリンタID及び仮想印刷条件情報を印刷仲介サーバ100に登録する。このために、ユーザは、プリンタID及び仮想印刷条件情報(さらには第1のAT)を印刷仲介サーバ100に登録するために、印刷仲介サーバ100との通信をプリンタ10に実行させずに済む。
(サブミットプロセス;図3)
続いて、図3を参照して、携帯端末70が印刷対象の画像を表わす画像データを印刷仲介サーバ100にサブミットするためのサブミットプロセスについて説明する。サブミットプロセスでも、登録プロセスと同様に、携帯端末70のユーザは、プリンタ10の近くに存在しなくてもよい。例えば、ユーザは、外出先で携帯端末70によって撮影された画像を表わす画像データを印刷仲介サーバ100にサブミットすることができる。
携帯端末70のユーザは、画像データを印刷仲介サーバ100にサブミットすることを望む場合に、プリンタアプリを起動し、プリンタアプリに従って表示される画面上で「サブミット」を示すボタンを選択する。さらに、ユーザは、携帯端末70のメモリ84に記憶されている画像データを指定する。なお、画像データは、印刷対象の画像を表わすデータであれば、どのような形式のデータであってもよく、例えば、JPEG(Joint Photographic Experts Groupの略)等のビットマップ形式のデータであってもよいし、ベクタ形式のデータであってもよいし、テキスト形式のデータであってもよいし、その他の形式のデータであってもよい。携帯端末70のCPU82は、上記の各操作が携帯端末70に実行されると、プリンタアプリに従って、図3に示される各処理を実行する。
携帯端末70のCPU82は、まず、無線LANI/F78を介して、アクセス要求220を印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からアクセス要求220を受信すると、ログイン画面データ222を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン画面データ222を受信すると、ログイン画面データ222によって表わされるログイン画面を表示部74に表示させる。ユーザは、操作部72を利用して、アカウント情報を携帯端末70に入力する。この場合、CPU82は、無線LANI/F78を介して、入力済みのアカウント情報を含むログイン要求224を印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からログイン要求224を受信すると、ログイン要求224に含まれるアカウント情報の認証を実行する。印刷仲介サーバ100は、アカウント情報の認証が成功する場合には、第1のATとは異なるトークンである第2のATを生成する。次いで、印刷仲介サーバ100は、認証が成功したアカウント情報と、生成済みの第2のATと、を関連付けて記憶する。この結果、印刷仲介サーバ100では、図2の登録プロセスで記憶された各情報(即ち、アカウント情報、プリンタID、仮想印刷条件情報、第1のAT)と、生成済みの第2のATと、が関連付けられる。そして、印刷仲介サーバ100は、生成済みの第2のATを含むログイン成功通知226を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン成功通知226を受信すると、印刷設定選択画面を表示部74に表示させる。具体的に言うと、CPU82は、プリンタアプリに予め登録されている仮想印刷条件情報をメモリ84から読み出して、仮想印刷条件情報によって示される仮想的な印刷条件の中から、画像の印刷のための印刷設定をユーザに選択させるための印刷設定選択画面を表示部74に表示させる。
上述したように、仮想的な印刷条件は、用紙サイズとして「A4」及び「B5」を含み、両面印刷の実行の有無として「無」を含み、色数として「モノクロ印刷」及び「カラー印刷」を含む。従って、印刷設定選択画面は、用紙サイズとして「A4」又は「B5」を選択可能であると共に、色数として「モノクロ印刷」又は「カラー印刷」のうちのどちらかを選択可能である態様を有する。
ユーザは、印刷設定選択画面を見ながら、操作部72を利用して、用紙サイズ(例えば「A4」)及び色数(例えば「カラー」)を選択することによって、印刷設定を選択する。両面印刷の有無(即ち「無」)は、選択肢がないので、自動的に印刷設定に組み込まれる。
詳しくは後述するが、印刷仲介サーバ100では、選択済みの印刷設定に従って印刷データが生成されて、当該印刷データがプリンタ10に供給される(図5参照)。上述したように、選択済みの印刷設定は、仮想的な印刷条件の中から選択されたものであり、プリンタ10が実際に利用可能な印刷条件の中から選択されたものではない。即ち、プリンタ10が選択済みの印刷設定に従った印刷を実行可能であるという保証がない。ただし、本実施例では、プリンタ10のベンダは、通常のプリンタ(例えば当該ベンダが販売している全てのプリンタ)が利用可能な印刷条件を仮想的な印刷条件として予め決定して、そのような仮想的な印刷条件を示す仮想印刷条件情報を含むプリンタアプリを提供する。従って、本実施例では、プリンタ10は、選択済みの印刷設定に従った印刷を適切に実行することができる。
携帯端末70のCPU82は、ユーザによって印刷設定が選択されると、無線LANI/F78を介して、受信済みの第2のATと、メモリ84内の仮想プリンタのプリンタIDと、ユーザによって指定された画像データ232と、ユーザによって指定された選択された印刷設定を示す印刷設定情報234と、を含むサブミット要求230を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からサブミット要求230を受信すると、サブミット要求230に含まれる第2のATの認証を実行する。印刷仲介サーバ100は、第2のATを記憶していると判断する場合(即ち、第2のATの認証が成功する場合)に、サブミット要求230に含まれる各情報を関連付けて記憶する。この結果、印刷仲介サーバ100では、第2のATの生成時に記憶された各情報(即ち、アカウント情報、プリンタID、仮想印刷条件情報、第1のAT、第2のAT)と、第1のジョブ情報240(即ち、画像データ232及び印刷設定情報234)と、が関連付けられる。そして、印刷仲介サーバ100は、サブミット成功通知236を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からサブミット成功通知236を受信する。これにより、1個のジョブ情報240をサブミットするためのサブミットプロセスが終了する。なお、ユーザは、さらに、他の画像データを印刷仲介サーバ100にサブミットすることを望む場合には、上記と同様の操作を実行する。これにより、携帯端末70のCPU82は、上記と同様の処理を実行することによって、さらに、第2のジョブ情報250を印刷仲介サーバ100にサブミットすることができる。この結果、印刷仲介サーバ100では、アカウント情報、プリンタID等に関連付けて、2個のジョブ情報(即ち、第1及び第2のジョブ情報240,250)が記憶される。
(削除プロセス;図4)
続いて、図4を参照して、携帯端末70が印刷仲介サーバ100からジョブ情報を削除するための削除プロセスについて説明する。削除プロセスでも、携帯端末70のユーザは、プリンタ10の近くに存在しなくてもよい。
印刷仲介サーバ100では、図3のサブミットプロセスが実行されると、アカウント情報と、プリンタIDと、仮想印刷条件情報と、第1のATと、第2のATと、第1のジョブ情報240と、第2のジョブ情報250と、が関連付けられる。ただし、第2のATは、サブミットプロセスの間だけ利用される一時的なトークンであるので、図4では、第2のATが関連付けられていない。
携帯端末70のユーザは、第2のジョブ情報250に従った印刷が実行されるのを中止することを望む場合に、プリンタアプリを起動し、プリンタアプリに従って表示される画面上で「削除」を示すボタンを選択する。この場合、携帯端末70のCPU82は、プリンタアプリに従って、図4に示される各処理を実行する。
携帯端末70のCPU82は、まず、無線LANI/F78を介して、アクセス要求260を印刷仲介サーバ100に送信する。その後のログイン画面データ262及びログイン要求264の通信は、図3のログイン画面データ222及びログイン要求224の通信と同様である。
印刷仲介サーバ100は、携帯端末70からログイン要求264を受信すると、ログイン要求264に含まれるアカウント情報の認証を実行する。印刷仲介サーバ100は、アカウント情報の認証が成功する場合には、第1のAT及び第2のATとは異なるトークンである第3のATを生成する。次いで、印刷仲介サーバ100は、認証が成功したアカウント情報と、生成済みの第3のATと、を関連付けて記憶する。この結果、印刷仲介サーバ100では、図3のサブミットプロセスで記憶された各情報(即ち、アカウント情報、プリンタID、仮想印刷条件情報、第1のAT、第1のジョブ情報240、第2のジョブ情報250)と、生成済みの第3のATと、が関連付けられる。そして、印刷仲介サーバ100は、生成済みの第3のATを含むログイン成功通知266を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン成功通知266を受信すると、無線LANI/F78を介して、受信済みの第3のATを含むジョブリスト要求270を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からジョブリスト要求270を受信すると、ジョブリスト要求270に含まれる第3のATの認証を実行する。印刷仲介サーバ100は、第3のATを記憶していると判断する場合(即ち、第3のATの認証が成功する場合)に、第3のATに関連付けられている第1及び第2のジョブ情報240,250を識別するための第1及び第2のジョブIDを含むジョブリスト272を生成する。ジョブIDは、例えば、当該ジョブIDに対応するジョブ情報に含まれる画像データのファイル名を含んでいてもよい。この場合、ユーザは、ジョブIDを見れば、当該ジョブIDがどの画像データに対応するものであるのかを知ることができる。そして、印刷仲介サーバ100は、ジョブリスト272を携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からジョブリスト272を受信すると、ジョブ選択画面を表示部74に表示させる。具体的に言うと、CPU82は、ジョブリスト272に含まれる第1及び第2のジョブIDの中から、削除対象のジョブ情報に対応するジョブIDをユーザに選択させるためのジョブ選択画面を表示部84に表示させる。ユーザは、ジョブ選択画面を見ながら、操作部72を利用して、1個以上のジョブIDを選択する。図4の例では、ユーザは、第2のジョブ情報250に対応する第2のジョブIDを選択する。
携帯端末70のCPU82は、ユーザによって第2のジョブIDが選択されると、無線LANI/F78を介して、受信済みの第3のATと、ユーザによって選択された第2のジョブIDと、を含む削除要求274を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70から削除要求274を受信すると、削除要求274に含まれる第3のATに関連付けられている第1及び第2のジョブ情報240,250の中から、削除要求274に含まれる第2のジョブIDに対応する第2のジョブ情報250を削除する。この結果、印刷仲介サーバ100は、アカウント情報、プリンタID、第1のAT、及び、第1のジョブ情報240が関連付けられている状態を維持しながら、第2のジョブ情報250を削除することができる。
(印刷プロセス;図5)
続いて、図5を参照して、携帯端末70が第1のジョブ情報240に従った印刷をプリンタ10に実行させるための印刷プロセスについて説明する。印刷プロセスでは、携帯端末70のユーザは、プリンタ10の近くに存在しなくてはならない。後述するように、携帯端末70及びプリンタ10がNFC通信を実行しなければならないからである。従って、ユーザは、例えば、外出先から帰宅した後に、携帯端末70を利用して、プリンタ10に印刷を実行させる。
印刷仲介サーバ100では、図4の削除プロセスが実行されると、アカウント情報と、プリンタIDと、仮想印刷条件情報と、第1のATと、第3のATと、第1のジョブ情報240と、が関連付けられる。ただし、第3のATは、削除プロセスの間だけ利用される一時的なトークンであるので、図5では、第3のATが関連付けられていない。
携帯端末70のユーザは、第1のジョブ情報240に従った印刷をプリンタ10に実行させることを望む場合に、プリンタアプリを起動し、プリンタアプリに従って表示される画面上で「印刷」を示すボタンを選択する。この場合、携帯端末70のCPU82は、プリンタアプリに従って、図5に示される各処理を実行する。
携帯端末70のCPU82は、まず、メモリ84から第1のAT及びプリンタID(即ち図2の登録プロセスでメモリ84に記憶された各情報)を読み出す。そして、CPU82は、プリンタアプリに予め登録されている暗号鍵を利用して、第1のAT及びプリンタIDを暗号化することによって、暗号化データを生成する。暗号化の手法は、特に限定されないが、例えば、AES(Advanced Encryption Standardの略)、DES(Data Encryption Standardの略)等である。
携帯端末70のユーザは、携帯端末70をプリンタ10に近づける。携帯端末70のNFCI/F76とプリンタ10のNFCI/F16との間の距離が所定の距離(例えば10cm)以下になると、携帯端末70のCPU82は、NFCI/F76を介して、印刷指示及び暗号化データをプリンタ10に送信する。ここでは、CPU82は、NFC通信を実行するので、送信先のIPアドレス、送信先のURL等を利用することなく、印刷指示及び暗号化データをプリンタ10に送信することができる。また、第1のAT及びプリンタIDが暗号化されているので、第1のAT及びプリンタIDが第三者によって不正に取得されるのを抑制することができる。
プリンタ10のCPU32は、NFCI/F16を介して、携帯端末70から印刷指示及び暗号化データを受信すると、メモリ34に予め記憶されている暗号鍵、即ち、携帯端末70で利用された暗号鍵に一致する暗号鍵を利用して、暗号化データを復号化する。これにより、CPU32は、第1のAT及びプリンタIDを取得することができる。
次いで、プリンタ10のCPU32は、メモリ34に予め記憶されている印刷仲介サーバ100のURLを送信先として、無線LANI/F18を介して(即ちインターネットを介して)、取得済みの第1のAT及びプリンタIDを含むジョブリスト要求280を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、プリンタ10からジョブリスト要求280を受信すると、ジョブリスト要求280に含まれる第1のAT及びプリンタIDの認証を実行する。そして、印刷仲介サーバ100は、第1のAT及びプリンタIDを記憶していると判断する場合(即ち、第1のAT及びプリンタIDの認証が成功する場合)に、それらの情報に関連付けられている第1のジョブ情報240を識別するための第1のジョブIDと、後述の印刷データ292の所在を示すURLと、を含むジョブリスト282を生成する。そして、印刷仲介サーバ100は、ジョブリスト282をプリンタ10に送信する。
プリンタ10のCPU32は、無線LANI/F18を介して、印刷仲介サーバ100からジョブリスト282を受信すると、ジョブリスト282に含まれるURLを送信先として、無線LANI/F18を介して、印刷データ要求290を送信する。なお、印刷データ要求290は、プリンタ10が解釈可能なデータ形式を示す情報を含む。当該データ形式は、例えば、PDF(Portable Document Formatの略)である。
印刷仲介サーバ100は、プリンタ10から印刷データ要求290を受信すると、変換処理を実行する。即ち、印刷仲介サーバ100は、第1のジョブ情報240に含まれる印刷設定情報234と、印刷データ要求290に含まれるデータ形式を示す情報と、に従って、第1のジョブ情報240に含まれる画像データ232を変換して、印刷データ292を生成する。例えば、印刷設定情報234が、データ形式として「XPS」を含み、用紙サイズとして「A4」を含み、両面印刷の有無として「無」を含み、色数として「カラー」を含む場合には、印刷仲介サーバ100は、A4の印刷用紙の片面のみにカラー画像の印刷を実行するための印刷データ292を生成する。また、印刷データ要求290がPDF形式を示す情報を含む場合には、印刷仲介サーバ100は、PDF形式の印刷データ292を生成する。
次いで、印刷仲介サーバ100は、ジョブリスト282に含まれるURLに対応する位置に、生成済みの印刷データ292を記憶させる。そして、印刷仲介サーバ100は、印刷データ要求290の送信先であるURLに対応する位置に記憶されている印刷データ292をプリンタ10に送信する。
プリンタ10のCPU32は、無線LANI/F18を介して、印刷仲介サーバ100から印刷データ292を受信する。これにより、CPU32は、印刷仲介サーバ100から印刷データ292を取得することができる。そして、CPU32は、取得済みの印刷データ292を印刷実行部20に供給する。この結果、印刷実行部20は、印刷データ292によって表わされる画像を印刷用紙に印刷する。これにより、携帯端末70のユーザは、印刷済みの印刷用紙を取得することができる。
なお、図5の例では、印刷仲介サーバ100に1個のジョブ情報240のみが記憶されているが、仮に、印刷仲介サーバ100に複数個のジョブ情報(例えば第1及び第2のジョブ情報240,250)が記憶されている場合には、ジョブリスト282は、複数個のジョブIDと複数個のURLとを含む。
プリンタ10は、ジョブリスト282に含まれる複数個のURLのそれぞれについて、当該URLを送信先として印刷データ要求を順次送信する。そして、印刷仲介サーバ100は、プリンタ10から印刷データ要求を受信する毎に、当該印刷データ要求に対応するジョブ情報に含まれる画像データを変換して、印刷データを生成する。これにより、プリンタ10は、複数個の印刷データのそれぞれを順次取得して、複数個の印刷データによって表わされる複数個の画像のそれぞれの印刷を順次実行することができる。
(比較例;図6)
本実施例の効果を説明する前に、図6を参照しながら、比較例のプロセスを説明する。
図6に示されるように、比較例のシステムでは、プリンタ110と、PC170と、印刷仲介サーバ100と、が存在する。プリンタ110及びPC170は、通常Wi−Fi通信を実行可能であるが、NFC通信を実行不可能である。従って、図6に示される全ての通信は、通常Wi−Fi通信である。
PC170のユーザは、まず、プリンタ110のウェブサーバ機能にアクセスするための操作をPC170に実行する。これにより、PC170は、プリンタ110のウェブサーバ機能にアクセスして、登録指示をプリンタ110に送信する。
プリンタ110は、PC170から登録指示を受信すると、プリンタ110が利用可能な印刷条件情報と、プリンタ110のプロキシIDと、を含む登録要求を、印刷仲介サーバ100に送信する。即ち、比較例では、仮想プリンタが利用可能な仮想印刷条件情報ではなく、実在プリンタ(即ちプリンタ110)が実際に利用可能な印刷条件情報を含む登録要求が、印刷仲介サーバ100に送信される。
印刷仲介サーバ100は、プリンタ110から登録要求を受信すると、登録要求に含まれるプリンタ110のプロキシIDを利用して、プリンタ110を識別するためのプリンタIDを生成し、生成済みのプリンタIDと、登録要求に含まれる印刷条件情報と、を関連付けて記憶する。そして、印刷仲介サーバ100は、生成済みのプリンタIDと、ログイン用URLと、を含むレスポンスを、プリンタ110に送信する。
プリンタ110は、印刷仲介サーバ100からレスポンスを受信すると、レスポンスに含まれるURLをPC170に送信する。また、プリンタ110は、レスポンスに含まれるプリンタIDを記憶し、さらに、図示省略しているが、印刷仲介サーバ100に対するポーリングを実行する。当該ポーリングは、印刷仲介サーバ100においてアカウント情報の認証が成功した際に、プリンタ110と印刷仲介サーバ100との間でXMPP(eXtensible Messaging and Presence Protocolの略)接続を確立するために実行される。
PC170は、プリンタ110からログイン用URLを受信すると、ログイン用URLを送信先として、アクセス要求を印刷仲介サーバ100に送信し、印刷仲介サーバ100からログイン画面データを受信し、ログイン画面を表示させる。そして、ユーザは、アカウント情報をPC170に入力する。この場合、PC170は、入力済みのアカウント情報を含むログイン要求を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、PC170からログイン要求を受信すると、アカウント情報の認証を実行し、アカウント情報の認証が成功する場合には、プリンタ110からのポーリングに応じて、印刷仲介サーバ100とプリンタ110との間にXMPP接続を確立する。これにより、印刷仲介サーバ100とプリンタ110との間にいわゆる常時接続が確立されるために、WAN側に存在する印刷仲介サーバ100からLAN側に存在するプリンタ110に後述のサブミット通知を送信することができる。
PC170を利用したサブミットプロセスは、図3の携帯端末70を利用したサブミットプロセスと同様である。これにより、印刷仲介サーバ100では、アカウント情報と、プリンタIDと、印刷条件情報と、ジョブ情報と、が関連付けられる。印刷仲介サーバ100は、サブミットプロセスが実行されると、XMPP接続を利用して、印刷指示を含むサブミット通知をプリンタ110に送信する。
プリンタ110は、印刷仲介サーバ100からサブミット通知を受信すると、印刷データ要求を印刷仲介サーバ100に送信して、印刷仲介サーバ100から印刷データを受信し、印刷処理を実行する。
(第1実施例の効果)
上述したように、図6の比較例では、実在プリンタ(即ちプリンタ110)の印刷条件情報が印刷仲介サーバ100に登録される。このような手法を採用すると、PC170のユーザは、プリンタ110の印刷条件情報を印刷仲介サーバ100に登録するために、プリンタ110のウェブサーバ機能にアクセスするための作業を実行して、印刷仲介サーバ100との通信をプリンタ110に実行させる必要がある。
これに対し、本実施例では、図2の登録プロセスに示されるように、実在プリンタの印刷条件情報を印刷仲介サーバ100に登録するのではなく、仮想プリンタの仮想印刷条件情報を印刷仲介サーバ100に登録する手法を採用している。このために、携帯端末70のユーザは、印刷条件情報(即ち仮想印刷条件情報)を印刷仲介サーバ100に登録するために、印刷仲介サーバ100との通信をプリンタ10に実行させずに済む。従って、ユーザは、プリンタ10のウェブサーバ機能にアクセスするための作業を実行せずに済み、仮想印刷条件情報を印刷仲介サーバ100に容易に登録することができる。
また、本実施例では、図3のサブミットプロセスに示されるように、携帯端末70は、画像データ232を含むサブミット要求230を印刷仲介サーバ100に送信することによって、印刷仲介サーバ100において、仮想印刷条件情報、第1のAT、及び、画像データ232を関連付けることができる。そして、図5の印刷プロセスに示されるように、携帯端末70は、NFC通信を利用して、第1のATをプリンタ10に送信する。この結果、プリンタ10は、第1のATを利用して、印刷データ292を印刷仲介サーバ100から取得することができ、印刷データ292によって表わされる画像の印刷を実行することができる。このように、本技術によると、携帯端末70は、実在プリンタ(即ちプリンタ10)に画像の印刷を適切に実行させることができる。
また、図6の比較例では、プリンタ110と印刷仲介サーバ100との間にXMPP接続(即ち常時接続)が確立されるので、プリンタ110及び印刷仲介サーバ100の通信負荷が比較的に高い。これに対し、本実施例では、プリンタ10と印刷仲介サーバ100との間にXMPP接続を確立せずに済むので、プリンタ10及び印刷仲介サーバ100の通信負荷を低くすることができる。
また、図6の比較例では、印刷仲介サーバ100への1個の画像データのサブミットが実行される毎に、印刷仲介サーバ100からプリンタ110にサブミット通知が送信されて、プリンタ110で印刷が実行される。このために、仮に、ユーザが、外出先でPC170を利用して、印刷仲介サーバ100への画像データのサブミットを実行すると、例えば家庭内に設置されているプリンタ110で印刷が実行される。この場合、ユーザがプリンタ110の近傍に存在しない状態で印刷が実行されるので、印刷済みの印刷用紙が他人によって見られる可能性がある。
これに対し、本実施例では、図3のサブミットプロセスに示されるように、仮に、ユーザが、外出先で携帯端末70を利用して、印刷仲介サーバ100への画像データのサブミットを実行しても、プリンタ10で印刷が実行されない。このために、ユーザは、印刷済みの印刷用紙が他人によって見られることを気にすることなく、外出先で携帯端末70を利用して、印刷仲介サーバ100への画像データのサブミットを実行することができる。
そして、図5の印刷プロセスに示されるように、ユーザが携帯端末70をプリンタ10に近づけることをトリガとして、プリンタ10で印刷が実行される。ユーザは、プリンタ10の近くに存在している状態でプリンタ10に印刷を実行させることができるので、印刷済みの印刷用紙が他人によって見られることなく、印刷済みの印刷用紙を取得することができる。
また、図6の比較例では、印刷仲介サーバ100への1個の画像データのサブミットが実行されると、その直後に、プリンタ110で印刷が実行される。このために、ユーザは、印刷仲介サーバ100からジョブ情報を削除することができない。これに対し、本実施例では、図4の削除プロセスに示されるように、ユーザは、印刷仲介サーバ100から第2のジョブ情報250を削除することができる。
また、図6の比較例では、プリンタ110は、プリンタIDを記憶しなければならないし、印刷仲介サーバ100とのXMPP接続を確立しなければならない。このために、プリンタ110のリソース(メモリ等)の負荷が高い。例えば、プリンタ110が、PC170のユーザを含む複数のユーザによって共用される状況を想定する。この場合、仮に、複数のユーザが、プリンタ110のプリンタID、印刷条件情報等を印刷仲介サーバ100に登録するための作業を実行すると、プリンタ110は、複数のユーザに対応する複数個のプリンタIDを記憶しなければならず、印刷仲介サーバ100との複数個のXMPP接続を確立しなければならない。この場合、プリンタ110のリソースの負荷が極めて高くなるので、1人のユーザに対応する1個のプリンタIDのみを記憶可能というように、プリンタ110に制約を設けることが考えられる。この場合、1人のユーザのみしか、印刷仲介サーバ100を介した印刷をプリンタ110に実行させることができない。
これに対し、本実施例では、プリンタ10は、プリンタIDを記憶せずに済み、さらに、印刷仲介サーバ100とのXMPP接続を確立せずに済む。そして、印刷仲介サーバ100を介した印刷をプリンタ10に実行させることが可能なユーザは、1人のユーザ(即ち携帯端末70のユーザ)に限られない。例えば、携帯端末70のユーザとは異なるユーザが、他の携帯端末を利用して、図2、図3、及び、図5の各プロセスを実行するための作業を実行すれば、プリンタ10に印刷を実行させることができる。このように、本実施例によると、複数のユーザのそれぞれが、当該ユーザの携帯端末を利用して、印刷仲介サーバ100を介した印刷をプリンタ10に実行させることができる。
(対応関係)
プリンタID、第1のATが、それぞれ、「プリンタ識別情報」、「認証トークン」の一例である。画像データ232が、「対象画像データ」及び「画像データ関係情報」の一例である。通常Wi−Fi方式、NFC方式が、それぞれ、「所定の通信方式」、「近距離通信方式」の一例である。NFCI/F16、無線LANI/F18が、それぞれ、「第1のインターフェース」、「第2のインターフェース」の一例である。
携帯端末70において、図2の登録要求200を送信する処理が、「第1の送信部」によって実行される処理の一例である。また、レスポンス202に含まれるプリンタIDを受信する処理、及び、ログイン成功通知216に含まれる第1のATを受信する処理が、「第1の受信部」によって実行される処理の一例である。図3のサブミット要求230を送信する処理、印刷設定選択画面を表示させる処理、図4の削除要求274を送信する処理、図5の暗号化データを送信する処理が、それぞれ、「第2の送信部」、「表示制御部」、「削除部」、「第3の送信部」によって実行される処理の一例である。
プリンタ10において、図5の暗号化データを受信する処理が、「受信部」によって実行される処理の一例である。ジョブリスト要求280の送信、ジョブリスト282の受信、印刷データ要求290の送信、及び、印刷データ292の受信が、「取得部」によって実行される処理の一例である。また、印刷データ292を印刷実行部20に供給する処理が、「印刷制御部」によって実行される処理の一例である。
(第2実施例;図7)
第1実施例では、OAuthの手法を利用した登録プロセスが実行されるが(図2参照)、本実施例では、Client Loginの手法を利用した登録プロセスが実行される。
図7に示されるように、携帯端末70のユーザは、携帯端末70にインストールされているプリンタアプリを起動し、プリンタアプリに従って表示される画面上で「登録」を示すボタンを選択する。この場合、携帯端末70のCPU82は、プリンタアプリに予め登録されているログイン画面を表示部74に表示させる。ユーザは、操作部72を利用して、アカウント情報を携帯端末70に入力する。この場合、CPU82は、無線LANI/F78を介して、入力済みのアカウント情報を含むログイン要求314を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70からログイン要求314を受信すると、ログイン要求314に含まれるアカウント情報の認証を実行し、アカウント情報の認証が成功する場合には、第1のATを生成する。次いで、印刷仲介サーバ100は、認証が成功したアカウント情報と、第1のATと、を関連付けて記憶する。印刷仲介サーバ100は、生成済みの第1のATを含むログイン成功通知316を、携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100からログイン成功通知316を受信すると、ログイン成功通知316に含まれる第1のATをメモリ84に記憶させる。次いで、CPU82は、無線LANI/F78を介して、仮想印刷条件情報及びプロキシIDを含む登録要求320を、印刷仲介サーバ100に送信する。
印刷仲介サーバ100は、携帯端末70から登録要求320を受信すると、登録要求320に含まれるプロキシIDを利用して、プリンタIDを生成する。そして、印刷仲介サーバ100は、生成済みのプリンタIDと、仮想印刷条件情報と、を記憶する。この結果、印刷仲介サーバ100では、生成済みのプリンタIDと、アカウント情報と、仮想印刷条件情報と、第1のATと、が関連付けられる。そして、印刷仲介サーバ100は、生成済みのプリンタIDを含む登録成功通知322を、携帯端末70に送信する。
携帯端末70のCPU82は、無線LANI/F78を介して、印刷仲介サーバ100から登録成功通知322を受信すると、登録成功通知322に含まれるプリンタIDをメモリ84に記憶させる。これにより、登録プロセスが終了する。サブミットプロセス、削除プロセス、及び、印刷プロセスは、第1実施例と同様である。
本実施例によっても、携帯端末70は、仮想印刷条件情報、プリンタID等を印刷仲介サーバ100に登録することができ、第1実施例と同様の効果を得ることができる。なお、携帯端末70において、図7の登録要求320を送信する処理が、「第1の送信部」によって実行される処理の一例である。また、ログイン成功通知316に含まれる第1のATを受信する処理、及び、登録成功通知322に含まれるプリンタIDを受信する処理が、「第1の受信部」によって実行される処理の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)上記の実施例では、図2の登録プロセスにおいて、携帯端末70は、仮想印刷条件情報を含む登録要求200を印刷仲介サーバ100に送信する。これに代えて、例えば、仮想印刷条件情報がインターネット上のデータサーバ(即ちプリンタ10のベンダによって提供されるサーバ)に記憶されている場合には、携帯端末70は、仮想印刷条件情報のURLを含む登録要求を、印刷仲介サーバ100に送信してもよい。この場合、印刷仲介サーバ100は、仮想印刷条件情報のURLを利用して、データサーバから仮想印刷条件情報を取得し、取得済み仮想印刷条件情報を記憶してもよい。また、印刷仲介サーバ100がプリンタ10のベンダによって提供されるサーバである場合には、印刷仲介サーバ100は、仮想印刷条件情報を予め記憶していてもよい。この場合、携帯端末70は、仮想印刷条件情報も仮想印刷条件情報のURLも含まない登録要求を、印刷仲介サーバ100に送信すればよい。
(変形例2)上記の実施例では、図5の印刷プロセスが実行される状況において、図2の登録プロセスで生成された第1のATが印刷仲介サーバ100に登録されている。ただし、図5の印刷プロセスが実行される際に、第1のATの有効期限が終了していることがあり得る。そこで、図2の登録プロセスにおいて、印刷仲介サーバ100は、第1のATのみならず、いわゆるリフレッシュトークンを生成して、アカウント情報等に関連付けてリフレッシュトークンを記憶してもよい。この場合、印刷仲介サーバ100は、第1のATの有効期限が終了する場合に、リフレッシュトークンを利用して、新たなトークンを生成し、第1のATに代えて、当該新たなトークンを記憶することができる。そして、携帯端末70は、印刷仲介サーバ100から、第1のATのみならず、いわゆるリフレッシュトークンを含むログイン成功通知216を受信する。図5の印刷プロセスにおいて、携帯端末70は、第1のATのみならず、リフレッシュトークンをプリンタ10に送信する。この場合、プリンタ10は、第1のATの有効期限が終了している場合に、リフレッシュトークンを利用して新たなトークンを生成し、当該新たなトークンを利用して、印刷仲介サーバ100から印刷データを取得することができる。本変形例では、リフレッシュトークンが、「認証情報」及び「認証トークン」の一例である。
(変形例3)上記の実施例では、図3のサブミットプロセスにおいて、携帯端末70は、画像データ232を含むサブミット要求230を印刷仲介サーバ100に送信する。これに代えて、携帯端末70は、例えば、画像データ232がインターネット上のデータサーバに保存されている場合には、画像データ232のURLを含むサブミット要求を印刷仲介サーバ100に送信してもよい。この場合、印刷仲介サーバ100は、画像データ232のURLを含む第1のジョブ情報240を記憶する。そして、図5の印刷プロセスにおいて、印刷仲介サーバ100は、プリンタ10から印刷データ要求290を受信すると、画像データ232のURLを利用して、データサーバから画像データ232を取得し、取得済みの画像データ232を変換して、印刷データ292を生成してもよい。本変形例では、画像データ232のURLが、「画像データ関係情報」の一例である。
(変形例4)上記の実施例では、「認証情報」は、プリンタIDと、トークン(即ち第1のAT)と、を含む。ただし、印刷仲介サーバ100が、トークンを利用せずに、プリンタIDのみを利用して認証を実行可能な構成であれば、「認証情報」は、トークンを含んでおらず、プリンタIDのみを含んでいてもよい。また、印刷仲介サーバ100が、プリンタIDを利用せずに、トークンのみを利用して認証を実行可能である構成であれば、「認証情報」は、プリンタIDを含んでおらず、トークンのみを含んでいてもよい。一般的に言うと、「認証情報」は、印刷仲介サーバにおいて認証に利用される情報であれば、どのような情報であってもよい。
(変形例5)「仮想プリンタ関係情報」は、仮想印刷条件情報に限られず、仮想プリンタの仮想的なプリンタ名を示す情報、仮想プリンタの仮想的なデフォルト設定を示す情報、仮想プリンタの仮想的なステータスを示す情報等であってもよい。即ち、「仮想プリンタ関係情報」は、印刷仲介サーバに登録されるべき情報であって、仮想プリンタに関係する情報であれば、どのような情報であってもよい。
(変形例6)上記の実施例では、仮想印刷条件情報がプリンタアプリに予め登録されている。即ち、携帯端末70のメモリ84は、プリンタアプリが携帯端末70にインストールされる際に、仮想印刷条件情報を記憶する。これに代えて、例えば、ユーザが仮想印刷条件情報を携帯端末70に入力する構成を採用してもよい。この場合、メモリ84は、ユーザによって入力される仮想印刷条件情報を記憶してもよい。
(変形例7)上記の実施例では、図3のサブミットプロセスにおいて、携帯端末70は、メモリ84内の仮想印刷条件情報を利用して、印刷設定選択画面を表示する。これに代えて、携帯端末70は、印刷仲介サーバ100から仮想印刷条件情報を取得して、取得済みの仮想印刷条件情報を利用して、印刷設定選択画面を表示してもよい。
(変形例8)上記の実施例では、図5の印刷プロセスにおいて、プリンタ10は、プリンタ10自身が解釈可能(即ち印刷可能)なデータ形式として「PDF」を示す情報を含む印刷データ要求290を印刷仲介サーバ100に送信する。これに代えて、プリンタ10は、プリンタ10自身が解釈可能なデータ形式として「PWG−Raster」や「XPS(XML Paper Specificationの略)」を示す情報を含む印刷データ要求290を印刷仲介サーバ100に送信する。一般的に言うと、実在プリンタは、実在プリンタ自身が解釈可能なデータ形式を示す情報を含む印刷データ要求を印刷仲介サーバに送信すればよい。
(変形例9)上記の実施例では、図5の印刷プロセスにおいて、印刷仲介サーバ100は、プリンタ10から、データ形式を示す情報を含む印刷データ要求290を受信するので、画像データ232に対する変換処理を実行して、当該データ形式を有する印刷データ292を生成することができる。これに代えて、図2の登録プロセスにおいて、携帯端末70は、仮想プリンタが解釈可能なデータ形式を示す情報を含む仮想印刷条件情報を含む登録要求200を、印刷仲介サーバ100に送信してもよい。また、さらに別の変形例では、図3のサブミットプロセスにおいて、携帯端末70は、仮想プリンタが解釈可能なデータ形式を示す情報を含む印刷設定情報234を含むサブミット要求230を、印刷仲介サーバ100に送信してもよい。この構成によると、プリンタ10は、印刷データ要求290を送信する際に、データ形式を示す情報を含めずに済む。
(変形例10)上記の実施例では、図5の印刷プロセスにおいて、携帯端末70は、プリンタID及び第1のATを暗号化することによって生成される暗号化データを、プリンタ10に送信する。これに代えて、携帯端末70は、暗号化することなく、プリンタID及び第1のATをプリンタ10に送信してもよい。一般的に言うと、「第3の送信部」は、認証情報を実在プリンタに送信すればよい。
(変形例11)プリンタ10及び携帯端末70は、NFC方式の無線通信を実行する代わりに、他の通信方式の近距離無線通信(例えば、トランスファージェット方式、赤外線方式等の無線通信)を実行して、暗号化データの通信を実行してもよい。本変形例では、上記の他の通信方式が、「近距離無線通信方式」の一例である。また、プリンタ10及び携帯端末70は、近距離無線通信を実行する代わりに、通常Wi−Fi方式の無線通信を実行して、暗号化データの通信を実行してもよい。また、プリンタ10及び携帯端末70は、無線通信を実行する代わりに、有線通信を実行して、暗号化データの通信を実行してもよい。即ち、「第1のインターフェース」は、近距離無線通信方式に従った無線通信を実行するためのインターフェースでなくてもよく、通常Wi−Fi方式又は有線方式に従った通信を実行するためのインターフェースであってもよい。
(変形例12)携帯端末70は、通常Wi−Fi方式の無線通信を実行して、印刷仲介サーバ100と様々な情報(例えば図2の登録要求200等)の通信を実行する代わりに、3G、4G等のセルラー方式の無線通信を実行して、印刷仲介サーバ100と通信を実行してもよい。また、携帯端末70は、有線でインターネットに接続されている場合には、有線通信を実行して、印刷仲介サーバ100と通信を実行してもよい。本変形例では、セルラー方式又は有線方式が、「所定の通信方式」の一例である。
(変形例13)プリンタ10は、有線でインターネットに接続されている場合には、有線通信を実行して、印刷仲介サーバ100と様々な情報(例えば図5のジョブリスト要求280等)の通信を実行してもよい。本変形例では、有線方式が、「所定の通信方式」の一例である。
(変形例14)印刷仲介サーバ100は、1個のサーバでなくてもよく、別体に構成されている複数個のサーバであってもよい。例えば、印刷仲介サーバ100は、図2の登録プロセスに示される各処理を実行する第1のサーバと、図3以降の各プロセスに示される各処理を実行する第2のサーバ(即ち第1のサーバとは別体に構成されている第2のサーバ)と、を備えていてもよい。
(変形例15)「端末装置」は、携帯端末70でなくてもよく、据え置き型のPCであってもよいし、他のデバイス(例えばテレビ等)であってもよい。
(変形例16)上記の実施例では、プリンタ10のCPU32及び携帯端末70のCPU82がメモリ34,84内のプログラム(例えばプリンタアプリ)を実行することによって、図2〜図5及び図7の各処理が実現される。これに代えて、図2〜図5及び図7の各処理のうちの少なくとも1つの処理は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。