(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024049962
(43)【公開日】2024-04-10
(54)【発明の名称】印刷システム、および、印刷方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20240403BHJP
B41J 29/42 20060101ALI20240403BHJP
【FI】
G06F3/12 367
G06F3/12 303
G06F3/12 338
B41J29/42 E
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022156501
(22)【出願日】2022-09-29
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】宮地 恵佑
【テーマコード(参考)】
2C061
【Fターム(参考)】
2C061AP01
2C061AQ05
2C061AQ06
2C061CQ04
2C061CQ22
2C061CQ24
2C061CQ34
(57)【要約】
【課題】プリンタと端末装置とサーバとを備える印刷システムを実現する。
【解決手段】プリンタは、端末装置がプリンタに印刷を実行させるための権限情報を取得し、権限情報を1以上のランプの点灯パターンを示すパターンデータに変換し、パターンデータを用いて1以上のランプを点灯させる。端末装置は、カメラを用いて1以上のランプを撮影して複数個の撮影画像データを取得し、複数個の撮影画像データを解析して、1以上のランプの点灯パターンを特定し、特定される点灯パターンを用いて、権限情報を取得し、取得される権限情報と印刷指示とをサーバに送信する。サーバは、権限情報と印刷指示とを端末装置から受信する場合に、権限情報と印刷指示とに基づいて、プリンタに印刷を実行させるための印刷処理を実行する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
印刷システムであって、
点灯状態によって動作状態を示すための1以上のランプと印刷実行部とを備えるプリンタと、
カメラを備える端末装置と、
サーバと、
を備え、
前記プリンタは、
前記端末装置が前記プリンタに印刷を実行させるための権限情報を取得し、
前記権限情報を1以上の前記ランプの点灯パターンを示すパターンデータに変換し、
前記パターンデータを用いて1以上の前記ランプを点灯させ、
前記端末装置は、
前記カメラを用いて1以上の前記ランプを撮影して複数個の撮影画像データを取得し、
前記複数個の撮影画像データを解析して、1以上の前記ランプの前記点灯パターンを特定し、
特定される前記点灯パターンを用いて、前記権限情報を取得し、
取得される前記権限情報と印刷指示とを前記サーバに送信し、
前記サーバは、
前記権限情報と前記印刷指示とを前記端末装置から受信する場合に、前記権限情報と前記印刷指示とに基づいて、前記プリンタに印刷を実行させるための印刷処理を実行する、印刷システム。
【請求項2】
請求項1に記載の印刷システムであって、
前記プリンタは、
前記権限情報を前記サーバから受信することによって取得し、
前記サーバから印刷ジョブを受信する場合に前記印刷ジョブに従って前記印刷実行部に印刷を実行させ、
前記サーバは、
前記権限情報を前記プリンタに送信し、
前記権限情報を前記端末装置から受信する場合に前記権限情報を検証し、
前記権限情報の検証結果が肯定的である場合に、前記端末装置から受信する前記印刷指示に基づく前記印刷ジョブを前記プリンタに送信する、印刷システム。
【請求項3】
請求項1に記載の印刷システムであって、
前記端末装置は、
前記プリンタの機種を特定し、
特定される機種に対応した機種データを取得し、
前記機種データを用いて、前記撮影画像データを取得する処理と、前記撮影画像データを解析する処理と、の少なくとも一方を実行する、印刷システム。
【請求項4】
請求項3に記載の印刷システムであって、
前記機種データは、前記撮影画像データによって示される撮影画像において、1以上の前記ランプの画像が配置されるべき位置を示すガイド画像を示すガイド画像データを含み、
前記端末装置は、1以上の前記ランプを撮影する際に、前記撮影画像と前記ガイド画像とを重畳して表示する、印刷システム。
【請求項5】
請求項3に記載の印刷システムであって、
前記機種データは、前記プリンタの基準部位と前記ランプとの位置関係を示す位置データを含み、
前記端末装置は、
前記撮影画像データを解析することによって前記撮影画像データによって示される撮影画像において前記プリンタの前記基準部位を検出し、
前記位置データを用いて、前記基準部位を基準として前記撮影画像内の前記ランプを特定する、印刷システム。
【請求項6】
請求項1に記載の印刷システムであって、
前記プリンタは、複数個の前記ランプを備え、
前記プリンタは、
前記権限情報を、複数個の前記ランプに対応する複数個の部分情報に分割し、
前記複数個の部分情報のそれぞれを、対応する前記ランプの点灯パターンを示すパターンデータに変換し、
前記パターンデータを用いて、複数個の前記ランプを点灯させ、
前記端末装置は、
前記複数個の撮影画像データを解析して、複数個の前記ランプの前記点灯パターンを特定し、
複数個の前記ランプの前記点灯パターンを用いて、前記複数個の部分情報を取得し、
前記複数個の部分情報を結合して前記権限情報を取得する、印刷システム。
【請求項7】
請求項6に記載の印刷システムであって、
前記プリンタは、
前記複数個の部分情報の結合順序を示すように、前記複数個の部分情報に対応する複数個のランプを順次に点灯させ、
前記端末装置は、
前記複数個の撮影画像データを解析して、複数個の前記ランプの点灯順序を特定し、
特定される複数個の前記ランプの点灯順序に従って、複数個の前記ランプに対応する前記複数個の部分情報を結合して前記権限情報を取得する、印刷システム。
【請求項8】
請求項1に記載の印刷システムであって、
前記ランプの前記点灯パターンは、モールス信号によって前記権限情報を示すパターンである、印刷システム。
【請求項9】
点灯状態によって動作状態を示すための1以上のランプと印刷実行部とを備えるプリンタと、カメラを備える端末装置と、サーバと、を用いる印刷方法であって、
前記プリンタは、
前記端末装置が前記プリンタに印刷を実行させるための権限情報を取得し、
前記権限情報を1以上の前記ランプの点灯パターンを示すパターンデータに変換し、
前記パターンデータを用いて1以上の前記ランプを点灯させ、
前記端末装置は、
前記カメラを用いて1以上の前記ランプを撮影して複数個の撮影画像データを取得し、
前記複数個の撮影画像データを解析して、1以上の前記ランプの前記点灯パターンを特定し、
特定される前記点灯パターンを用いて、前記権限情報を取得し、
取得される前記権限情報と印刷指示とを前記サーバに送信し、
前記サーバは、
前記権限情報と前記印刷指示とを前記端末装置から受信する場合に、前記権限情報と前記印刷指示とに基づいて、前記プリンタに印刷を実行させるための印刷処理を実行する、印刷方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、端末装置とプリンタとサーバとを用いる印刷システム、および、印刷方法に関する。
【背景技術】
【0002】
特許文献1には、プリンタと、携帯端末と、管理サーバと、を備える印刷システムが開示されている。このシステムでは、プリンタは、ワンタイムパスワードを生成して、該ワンタイムパスワードとプリンタIDをプリンタの表示部に表示する。携帯端末は、表示されたワンタイムパスワードとプリンタIDを撮影した画像データと印刷ジョブとを貼付したメールデータを管理サーバに送信する。管理サーバは、受信したメールデータに添付された画像データを用いて、プリンタIDとワンタイムパスワードとを取得する。管理サーバは、プリンタからのポーリングに対して、ワンタイムパスワードを返信する。プリンタは、管理サーバから受信したワンタイムパスワードが有効であると判断する場合に、管理サーバから印刷ジョブを受信して印刷を実行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、プリンタは、表示部にワンタイムパスワードやプリンタIDを表示するので、プリンタが液晶パネルなどのディスプレイを備えない場合には、この仕組みを用いることができない。
【0005】
本明細書は、プリンタと端末装置とサーバとを備える印刷システムにおける別の技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]印刷システムは、点灯状態によって動作状態を示すための1以上のランプと印刷実行部とを備えるプリンタと、カメラを備える端末装置と、サーバと、を備える。前記プリンタは、前記端末装置が前記プリンタに印刷を実行させるための権限情報を取得し、前記権限情報を1以上の前記ランプの点灯パターンを示すパターンデータに変換し、前記パターンデータを用いて1以上の前記ランプを点灯させる。前記端末装置は、前記カメラを用いて1以上の前記ランプを撮影して複数個の撮影画像データを取得し、前記複数個の撮影画像データを解析して、1以上の前記ランプの前記点灯パターンを特定し、特定される前記点灯パターンを用いて、前記権限情報を取得し、取得される前記権限情報と印刷指示とを前記サーバに送信する。前記サーバは、前記権限情報と前記印刷指示とを前記端末装置から受信する場合に、前記権限情報と前記印刷指示とに基づいて、前記プリンタに印刷を実行させるための印刷処理を実行する。
【0008】
上記構成によれば、プリンタは、取得した権限情報をランプの点灯パターンを示すパターンデータに変換し、該パターンデータを用いてランプを点灯させる。端末装置は、カメラを用いて取得される撮影画像データを解析してプリンタのランプの点灯パターンを特定し、該特定パターンを用いて権限情報を取得し、該権限情報と印刷指示とをサーバに送信する。サーバは、権限情報と印刷指示とに基づいて、プリンタに印刷を実行させるための印刷処理を実行する。この結果、ユーザは、端末装置を用いてサーバを介してプリンタに印刷を実行させる場合に、プリンタを撮影するだけで、プリンタに印刷を実行させることができる。また、例えば、プリンタが液晶パネルや、端末装置と安全に無線通信を行う仕組みを有していない場合であっても、端末装置は権限情報を取得することができる。
【0009】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、印刷方法、端末装置、プリンタ、サーバ、および、これらのシステム、方法、装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
【
図3】実施例のシステム1000の動作を示す第1のシーケンス図。
【
図4】実施例のシステム1000の動作を示す第2のシーケンス図。
【
図9】トークン取得処理において端末装置200に表示される画面の例を示す図。
【発明を実施するための形態】
【0011】
A.実施例
A-1.システム1000の構成
図1は、システム1000の構成を示すブロック図である。システム1000は、プリンタおよびスキャナとしての機能を有するプリンタ100と、端末装置200と、サーバ300と、を備える。システム1000は、不特定多数のユーザに対して、自身の端末装置(例えば、端末装置200)を用いてプリンタ100に印刷を行わせることができるサービス(以下、インスタント印刷サービスとも呼ぶ)を提供する。
【0012】
プリンタ100は、例えば、コンビニエンスストアなどの店舗に設置され、不特定多数のユーザが利用可能である。プリンタ100は、プリンタ100のコントローラとして、CPU110と、DRAMなどの揮発性記憶装置120と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置130と、を備えている。また、プリンタ100は、複数個の表示ランプ11~14(後述)を含む表示部140と、ユーザによる操作を取得するための操作ボタン31、32(後述)を含む操作部150と、印刷実行部170と、通信インタフェース(IF)180と、を備えている。本実施例のプリンタ100は、表示部140として、表示ランプ11~14のみを有しており、液晶などのディスプレイを備えていない。
【0013】
通信IF180は、インターネットITに接続するためのインタフェース、例えば、イーサネット(登録商標)に準拠した有線のインタフェースや、Wi-Fi規格に準拠した無線のインタフェースである。
【0014】
CPU110は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、プリンタ100を制御するためのコンピュータプログラムPG1と情報データベースIBとが格納されている。
【0015】
コンピュータプログラムPG1は、本実施例では、プリンタ100の製造時に不揮発性記憶装置130に予め格納されて提供される。これに代えて、コンピュータプログラムPG1は、例えば、インターネットITを介して接続されたサーバからダウンロードされる形態、あるいは、CD-ROMなどに記録された形態で提供され得る。CPU110は、コンピュータプログラムPG1を実行することによって、プリンタ100の制御を実行する。例えば、後述するように、CPU110は、サーバ300と通信を行って、サーバ300と協働して、インスタント印刷サービスを提供する。
【0016】
印刷実行部170は、CPU110の制御に従って、印刷を実行する。本実施例の印刷実行部170は、複数種類のインク(例えば、シアンとマゼンタとイエロとブラックとの4種類のインク)を色材として用いて、画像を記録媒体に印刷するインクジェット方式の印刷実行部である。これに代えて、印刷実行部170は、トナーを色材として用いて、画像を記録媒体に印刷する電子写真方式の印刷実行部であっても良い。
【0017】
図2は、プリンタ100の外観を示す図である。
図2(A)に示すように、プリンタ100は、略直方体の筐体10を備えている。筐体10の底部には、用紙を収納する用紙トレイ18が、前方の側面から引き出し状に開閉可能に装着されている。また、筐体10の後方の側面には、開閉可能なカバー19が装着されている。カバー19は、例えば、用紙詰まりを解消する際や、トナーなどを交換する際に、開閉される。筐体10の上面10Aには、印刷原稿が排出される開口16が形成されるとともに、開口16から排出された印刷原稿が収容される排出トレイとして機能する上面部材17が組み付けられている。
【0018】
図2(B)には、筐体10の上面10Aにおける角部50付近の特定領域ARの拡大図が示されている。特定領域ARには、複数個の表示ランプ11~14と、2個の操作ボタン31、32と、が配置されている。複数個の表示ランプ11~14は、
図2(B)の縦方向に略等間隔に配置されている。複数個の表示ランプ11~14は、例えば、LEDで構成され、表示状態(点灯、消灯、点滅、点灯の色など)によって、プリンタ100の動作状態を示すために用いられる。プリンタ100の動作状態は、正常状態(例えば、印刷ジョブの待ち受け状態、印刷中の状態、印刷モードの種類)や、エラー状態(例えば、トナー切れの状態、用紙切れの状態、通信エラーの状態)を、表示するために用いられる。
【0019】
複数個の表示ランプ11~14のそれぞれの近傍、具体的には、
図2(B)の右側には、対応する表示ランプに関する文字列21~24が刻印されている。例えば、表示ランプ11に対応する文字列21は、「Power」であり、表示ランプ11が主として電源に関する状態を表示するために用いられることを示している。
【0020】
特定領域ARには、機種情報40が刻印されている。機種情報40は、例えば、プリンタ100の機種を示す情報であり、本実施例では、プリンタ100の機種の名称を示すテキストである。機種情報40は、プリンタ100のシリアル番号などの他の情報であっても良い。
【0021】
なお、プリンタの種類(機種)によって、表示ランプの個数、各表示ランプの位置およびサイズは、異なっている。例えば、表示ランプの個数は、4個に限られず、5個である機種や、3個である機種が存在する。
【0022】
2個の操作ボタン31、32は、プリンタ100に対する様々な指示をユーザから取得するために用いられる。例えば、操作ボタン31、32は、押下の態様(押し順、長押し、同時押し、押す回数など)の組み合わせによって、多様な指示の入力に用いられる。
【0023】
端末装置200は、ユーザが所有する計算機であり、例えば、スマートフォンやタブレットコンピュータなどの携帯端末である。
【0024】
端末装置200は、コントローラとして、CPU210と、DRAMなどの揮発性記憶装置220と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置230と、を備えている。また、端末装置200は、画像を表示する液晶ディスプレイなどの表示部240と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部250と、カメラ260と、通信IF280と、を備えている。通信IF280は、例えば、Wi-Fi規格や移動体通信の規格(例えば、LTE規格)に準拠した無線の通信インタフェースである。カメラ260は、CCDやCMOSなどの撮影素子を含むイメージセンサを用いて、撮影対象物(被写体)を表す撮影画像データを生成するカメラである。
【0025】
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230には、アプリケーションプログラムAPが格納されている。
【0026】
アプリケーションプログラムAPは、インスタント印刷サービスの提供事業者(例えば、プリンタ100の製造や販売を行う事業者)によって提供される。アプリケーションプログラムAPは、例えば、インターネットITを介して接続された図示しないサーバからダウンロードされる形態で提供される。これに代えて、アプリケーションプログラムAPは、端末装置200に予めプリインストールされる形態で提供されても良い。端末装置200のCPU210は、アプリケーションプログラムAPを実行することによって、後述するインスタント印刷サービスに関連する処理を実行する。以下、アプリケーションプログラムAPを実行することによって、端末装置200のCPU210が実現する機能を「端末アプリケーション」とも呼ぶ。
【0027】
サーバ300は、例えば、インスタント印刷サービスを提供する事業者が運用する計算機、例えば、クラウドサーバである。これらのサーバは、協働して後述するインスタント印刷サービスに関する処理を実行する。
【0028】
サーバ300は、コントローラとしてのCPU310と、DRAMなどの揮発性記憶装置320と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置330と、通信インタフェース(IF)380と、を備えている。通信IF380は、例えば、イーサネット(登録商標)に準拠した有線のインタフェースである。
【0029】
CPU310は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置320は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置330には、コンピュータプログラムPGaと、情報データベースDBと、が格納されている。
【0030】
コンピュータプログラムPGaは、例えば、インスタント印刷サービスを運用する事業者によってアップロードされる形態で提供される。サーバ300のCPU310は、コンピュータプログラムPGaを実行することによって、インスタント印刷サービスに関する処理を実行する。サーバ300の情報データベースDBには、後述するデバイストークンや端末用トークンなどのインスタント印刷サービスに関する情報が記録される。
【0031】
サーバ300は、インターネットITを介して、プリンタ100、および、端末装置200とも通信可能である。
【0032】
なお、
図1では、1つのプリンタ100と、1つの端末装置200のみが図示されているが、サーバ300は、多数のユーザに対して、多数のプリンタを用いて印刷サービスを提供している。以下では、1つのプリンタ100と端末装置200とに対するインスタント印刷サービスについて各種の処理を説明する。
【0033】
A-2.システム1000の動作
図3、
図4は、実施例のシステム1000の動作を示すシーケンス図である。
図3、
図4に示す動作は、インスタント印刷サービスに関連する処理の動作である。インスタント印刷サービスに関連する処理は、ユーザがプリンタ100の操作ボタン31、32を操作して、インスタント印刷サービスの利用要求を入力すると、開始される。例えば、インスタント印刷サービスの利用要求は、2個の操作ボタン31、32が同時に長押しすることによって入力される。
【0034】
プリンタ100は、インスタント印刷サービスの利用要求を取得すると、S6にて、デバイストークン要求をサーバ300に送信する。デバイストークン要求には、選択されたサービスを示すサービス情報(本実施例では、インスタント印刷サービスを示す情報)が含められる。本実施例では、プリンタ100の電源が投入されている間は、プリンタ100とサーバ300との間にXMPP(Extensible Messaging and Presence Protocol)に従って常時接続のための通信セッションが確立されている。プリンタ100とサーバ300との間の通信は、該通信セッションを用いて行われる。
【0035】
サーバ300は、プリンタ100からデバイストークン要求を受信すると、S8にて、デバイストークンを生成する。デバイストークンは、例えば、所定数の文字から成る文字列を示すデータであり、プリンタ100がサーバ300にアクセスするための権限を示す権限情報である。デバイストークンは、例えば、ランダムに所定数の文字を選択することによって生成され、生成が行われる度に異なる。したがって、プリンタ100がユーザからインスタント印刷サービスの利用要求を取得する度に、毎回、異なるデバイストークンが生成される。
【0036】
S10では、サーバ300は、生成したデバイストークンを記録する。例えば、生成されたデバイストークンは、デバイストークンテーブルDTに、プリンタ100のデバイスIDとサービス情報と対応付けて記録される。デバイストークンテーブルDTは、情報データベースDB(
図1)に格納されている。プリンタ100のデバイスIDは、例えば、XMPPの通信セッションを確立する際に、プリンタ100から取得されている。サービス情報は、プリンタ100から受信したデバイストークン要求に含まれている。
図3の例では、デバイストークンテーブルDTには、生成されたデバイストークン「DTK_a」と、プリンタ100のデバイスID「PID_a」と、インスタント印刷サービスを示すサービス情報と、が記録されている。
【0037】
S12では、サーバ300は、生成したデバイストークンをプリンタ100に送信する。プリンタ100は、サーバ300からデバイストークンを受信すると、S14にて、インスタント印刷画面データ要求をサーバ300に送信する。インスタント印刷画面データ要求には、受信したデバイストークンが含められる。なお、デバイストークンは、インスタント印刷サービスの利用要求が入力される度に、毎回、サーバ300から新たに取得される。
【0038】
サーバ300は、インスタント印刷画面データ要求をプリンタ100から受信すると、S16にて、インスタント印刷画面データ要求に含まれるデバイストークンを検証する。具体的には、サーバ300は、デバイストークンテーブルDTを参照して、インスタント印刷画面データ要求に含まれるデバイストークンが、デバイストークンテーブルDTに記録されているか否かを判断する。サーバ300は、インスタント印刷画面データ要求に含まれるデバイストークンが、デバイストークンテーブルDTに記録されている場合には、該デバイストークンは正当なトークンであると判断する。サーバ300は、インスタント印刷画面データ要求に含まれるデバイストークンが、デバイストークンテーブルDTに記録されていない場合には、該デバイストークンは正当なトークンではないと判断する。
【0039】
S17では、サーバ300は、検証結果が肯定的であるか否かを判断する。検証結果が肯定的であるとは、S16における検証にて、デバイストークンは正当なトークンであると判断されることを意味し、検証結果が否定的であるとは、S16における検証にて、デバイストークンは正当なトークンでないと判断されることを意味する。サーバ300は、検証結果が肯定的である場合には、S18に処理を進める。
【0040】
S18では、サーバ300は、端末用トークンを生成する。端末用トークンは、例えば、所定数の文字から成る文字列を示すデータである。端末用トークンは、端末装置200がサーバ300にアクセスするため、および、サーバ300を介してプリンタ100に印刷を実行させるための権限情報である。端末用トークンは、例えば、ランダムに所定数の文字を選択することによって生成され、生成が行われる度に異なる。したがって、端末装置200からインスタント印刷画面データ要求が送信される度に、毎回、異なる端末用トークンが生成される。
【0041】
S20では、サーバ300は、生成した端末用トークンを記録する。例えば、生成された端末用トークンは、端末用トークンテーブルTT(
図3)に、プリンタ100のデバイスIDとサービス情報とステータス情報と対応付けて記録される。端末用トークンテーブルTTは、情報データベースDB(
図1)に格納されている。プリンタ100のデバイスIDとサービス情報は、デバイストークンテーブルDTに記録される情報と同じである。ステータス情報は、端末用トークンが未使用であるか使用済みであるかを示すフラグである。S20の時点では、端末用トークンは未使用であるので、未使用を示すステータス情報が記録される。
図3の例では、端末用トークンテーブルTTには、生成された端末用トークン「TTK_a」と、プリンタ100のデバイスID「PID_a」と、インスタント印刷サービスを示すサービス情報と、未使用を示すステータス情報と、が記録されている。
【0042】
S22では、サーバ300は、生成した端末用トークンをプリンタ100に送信する。する。プリンタ100は、サーバ300から端末用トークンを受信すると、S24にて、トークン表示処理を実行する。トークン表示処理は、端末用トークンを示す点灯パターンで表示ランプ11~14を点灯させることで、表示ランプ11~14を用いて端末用トークンを表示する処理である。トークン表示処理の詳細は、後述する。
【0043】
S24にて、プリンタ100がトークン表示処理を実行しているとき、端末装置200は、トークン取得処理を実行する。トークン取得処理は、カメラ260を用いて表示ランプ11~14を撮影して表示ランプ11~14の点灯パターンを特定し、該点灯パターンに基づいて端末用トークンを取得する処理である。トークン取得処理は、アプリケーションプログラムAPによって実現される端末アプリケーションによって実行される。トークン表示処理の詳細は、後述する。
【0044】
図3のS17にて、デバイストークンの検証結果が否定的である場合には、サーバ300は、中断処理を実行する。サーバ300は、プリンタ100に中断通知を送信し、端末用トークンの生成および送信(
図3のS18~S22)を実行することなく、処理を中断する。したがって、プリンタ100は、サーバ300から中断通知を受信すると、表示ランプ11~14の少なくとも一部を所定の態様で点灯させることで、エラーを表示して、処理を中断する。この場合には、ユーザは、インスタント印刷サービスを利用できない。例えば、ユーザは、利用要求をプリンタ100に入力することで、
図3の処理を、システム1000に再度実行させることで、インスタント印刷サービスを利用し得る。
【0045】
以下では、
図3のS24にてトークン表示処理が実行され、S26にてトークン取得処理が実行されることによって、端末装置200が端末用トークンを取得した場合に、その後に行われる処理について説明する。
【0046】
図4のS28では、端末装置200(端末アプリケーション)は、印刷指示画面データ要求をサーバ300に送信する。印刷指示画面データ要求には、取得した端末用トークンが含められる。例えば、印刷指示画面データ要求の宛先(サーバ300)を示すURLにクエリ文字列として端末用トークンが付加されたクエリ付URLが、印刷指示画面データ要求に宛先情報として含められる。
【0047】
サーバ300は、端末装置200から印刷指示画面データ要求を受信すると、S30にて、印刷指示画面データ要求に含まれる端末用トークンを検証する。具体的には、サーバ300は、端末用トークンテーブルTTを参照して、該端末用トークンが端末用トークンテーブルTT(
図3)に記録されているか否かを判断する。サーバ300は、該端末用トークンが端末用トークンテーブルTTに記録されている場合には、端末用トークンテーブルTTにおいて該端末用トークンに対応付けられたサービス情報とステータス情報とを取得する。サーバ300は、取得されたサービス情報がインスタント印刷サービスを示すか否かと、取得されたステータス情報が未使用を示すか否かと、を判断する。端末用トークンが端末用トークンテーブルTTに記録され、かつ、対応するサービス情報がインスタント印刷サービスを示し、かつ、ステータス情報が未使用を示す場合には、サーバ300は、該端末用トークンは正当なトークンであると判断する。端末用トークンが端末用トークンテーブルTTに記録されていない、または、対応するサービス情報がインスタント印刷サービスを示していない、または、ステータス情報が使用済みを示す場合には、サーバ300は、該端末用トークンは正当なトークンでないと判断する。
【0048】
S31では、サーバ300は、検証結果が肯定的であるか否かを判断する。検証結果が肯定的であるとは、S31における検証にて、端末用トークンは正当なトークンであると判断されることを意味し、検証結果が否定的であるとは、S31における検証にて、端末用トークンは正当なトークンでないと判断されることを意味する。サーバ300は、検証結果が肯定的である場合には、S32に処理を進める。
【0049】
S32では、サーバ300は、端末用トークンのステータスを使用済みに変更する。すなわち、端末用トークンテーブルTT(
図3)において、端末用トークンに対応付けられたステータス情報を、未使用を示す情報から使用済みを示す情報に更新する。これによって、端末用トークンは、これ以降、正当なトークンとは扱われない。このように、本実施例の端末用トークンは、1回に限って使用が許容される使い捨てのトークンである。なお、サーバ300は、ステータス情報を更新することに代えて、端末用トークンを端末用トークンテーブルTTから削除しても良い。
【0050】
S36では、サーバ300は、印刷指示画面データを端末装置200に対して送信する。この印刷指示画面データは、予め生成されてサーバ300の不揮発性記憶装置に格納されている。
【0051】
端末装置200は、サーバ300から印刷指示画面データを受信すると、S38にて、印刷指示画面データを用いて、表示部240に印刷指示画面Waを表示する。
図5は、印刷指示画面Waの例を示す図である。印刷指示画面Waは、画像データの選択と印刷指示の入力とを促すメッセージMSaと、画像選択ボタンBTaと、印刷指示ボタンBTbと、を含む。画像選択ボタンBTaが押下されると、端末装置200は、図示しない画像データ選択画面を表示部240に表示する。ユーザは、画像データ選択画面にて所定の操作を行って、端末装置200の不揮発性記憶装置230に格納された画像データの中から印刷すべき画像を示す画像データを選択する。ユーザは、画像データを選択した後に、印刷指示ボタンBTbを押下する。印刷指示ボタンBTbが押下されると、端末装置200は、ユーザによって選択された画像データを用いて印刷を実行する印刷指示を取得する。
【0052】
端末装置200は、ユーザから印刷指示を取得すると、S40にて、印刷指示をサーバ300に送信する。該印刷指示には、ユーザによって選択された画像データが含められる。サーバ300は、端末装置200から印刷指示を受信すると、S42にて、該印刷指示に含まれる画像データに対して、所定の画像変換処理を実行して、印刷ジョブを生成する。印刷ジョブは、プリンタ100が処理可能なフォーマットを有する印刷データや印刷コマンドを含む。
【0053】
S44では、サーバ300は、生成した印刷ジョブを、不揮発性記憶装置330に格納する。S46では、サーバ300は、プリンタ100に印刷指示を送信する。印刷指示には、印刷ジョブの格納場所(自身の不揮発性記憶装置330内の場所)を示す格納先URLが含められる。
【0054】
プリンタ100は、サーバ300から印刷指示を受信すると、S48にて、印刷ジョブ要求をサーバ300に送信する。印刷ジョブ要求には、サーバ300から受信した格納先URLが宛先として含められる。
【0055】
サーバ300は、プリンタ100から印刷ジョブ要求を受信すると、S50にて、印刷ジョブ要求に含まれる格納先URLによって示される格納場所に格納された印刷ジョブを、プリンタ100に送信する。
【0056】
プリンタ100は、サーバ300から印刷ジョブを受信すると、S52にて、該印刷ジョブに従って印刷実行部170を制御して、印刷実行部170に印刷を実行させる。これによって、ユーザが印刷指示画面Wa(
図5)を介して選択した画像がプリンタ100によって印刷される。
【0057】
図4のS31にて、端末用トークンの検証結果が否定的である場合には、サーバ300は、中断処理を実行する。サーバ300は、プリンタ100に中断通知を送信し、
図4のS32、S36を実行することなく、処理を中断する。プリンタ100は、サーバ300から中断通知を受信すると、表示ランプ11~14の少なくとも一部を所定の態様で点灯させることで、エラーを表示して、処理を中断する。この場合には、ユーザは、インスタント印刷サービスを利用できない。例えば、ユーザは、利用要求をプリンタ100に入力することで、
図3の処理を、システム1000に再度実行させることで、インスタント印刷サービスを利用し得る。
【0058】
B.トークン表示処理
図3のS24のトークン表示処理について説明する。上述のように、トークン表示処理は、端末用トークンを示す点灯パターンで表示ランプ11~14を点灯させることで、表示ランプ11~14を用いて端末用トークンを表示する処理である。
図6は、トークン表示処理のフローチャートである。
図7は、トークン表示処理の説明図である。
【0059】
S110では、プリンタ100(CPU110)は、使用する表示ランプを決定する。例えば、使用する表示ランプは、予め定められている。本実施例では、使用する表示ランプは、4個の表示ランプ11~14に決定される。
【0060】
S120では、プリンタ100は、
図3のS22にてサーバ300から受信した端末用トークンを、使用する表示ランプの個数Nに分割する。個数Nは1以上の整数であって良いが、本実施例では、複数個の表示ランプが使用される(Nは2以上の整数、本実施例ではN=4)。これによって、N個の表示ランプに対応するN個の文字列が生成される。
【0061】
図7(A)の端末用トークンTTKは、16個の文字「7YSS8J58ZAHLQAS5」から成る文字列である。以下では、この端末用トークンTTKを例として説明する。
図7(B)の例では、端末用トークンTTKは、4個の文字列PT1~PT4に分割される。
図7(B)の例では、4個の文字列PT1~PT4は、それぞれ、4個の文字から成る文字列「7YSS」、「8J58」、「ZAHL」、「QAS5」である。4個の文字列PT1~PT4は、それぞれ、4個の表示ランプ11~14と一対一で対応する。これによって、4個の文字列PT1~PT4を示す4個のモールス信号データが生成される。
【0062】
モールス信号データは、示すべき文字列をモールス信号で表現するように、表示ランプの点灯パターンLPを示すデータである。
図7(C)には、文字列PT1~PT4をモールス信号で表現するための点灯パターンLP1~LP4が示されている。例えば、第1表示ランプ11に対応する点灯パターンLP1は、第1文字列PT1「7YSS」を示す。同様に、第2~第4表示ランプ12~14に対応する点灯パターンLP2~LP4は、それぞれ、第2~第4文字列PT2~PT4(「8J58」、「ZAHL」、「QAS5」)を示す。
【0063】
点灯パターンLPは、示すべき1以上の文字を示す1以上の文字表示パターンTCを含む。
図7(C)では、文字表示パターンの符号TCの後の括弧内の文字は、該文字表示パターンが示す文字を示す。例えば、文字表示パターンTC(7)は、「7」を示す。
【0064】
文字表示パターンTCは、
図7(C)にて丸印で示す1以上の短点と、
図7(C)にて矩形で示す1以上の長点と、の一方あるいは両方を含む。1つの短点は、1秒間の点灯で表現される。1つの長点は、3秒間の点灯で表現される。文字表示パターンTCを構成する2以上の長点または短点の間は、例えば、0.2秒の消灯によって区切られる。一の文字表示パターンTCと、次の文字表示パターンTCと、の間は、例えば、3秒の消灯TIによって区切られる。また、1つの点灯パターンLPの最後には、7秒の消灯TEが設けられる。なお、上述した点灯および消灯の時間は、適宜に調整され得る。例えば、点灯パターンの表示に要する時間を短縮するために、点灯および消灯の時間は、上述した時間の0.2~0.7倍に調整されても良い。
【0065】
S140では、プリンタ100は、文字列PT1~PT4の結合順を示すように、N個の表示ランプ(
図7の例では、4個の表示ランプ11~14)を順次に点灯させる。例えば、
図7の例では、文字列PT1~PT4を結合して端末用トークンTTKを再構成する際には、文字列PT1~PT4は、第1文字列PT1、第2文字列PT2、第3文字列PT3、第4文字列PT4の順番で結合される必要がある。この場合には、プリンタ100は、文字列PT1~PT4に対応する表示ランプ11~14を、第1表示ランプ11、第2表示ランプ12、第3表示ランプ13、第4表示ランプ14の順番で、1秒ずつ点灯する。S140における4個の表示ランプ11~14の点灯パターンを結合順表示パターンとも呼ぶ。
【0066】
S150では、プリンタ100は、S140の結合順表示パターンでの点灯を所定回数(例えば、2~5回)繰り返したか否かを判断する。所定回数繰り返し表示していない場合には(S150:NO)、プリンタ100は、例えば、所定の間隔(例えば、2~5秒)をおいて、S140の結合順表示パターンでの点灯を再度実行する。所定回数繰り返し表示した場合には(S150:YES)、プリンタ100は、S160に処理を進める。
【0067】
S160では、プリンタ100は、N個の表示ランプ(
図7の例では、4個の表示ランプ11~14)を、S130にて生成されたモールス信号データに従って、点灯する。N個の表示ランプの点灯は、例えば、同時に開始される。N個の表示ランプのモールス信号データに従う点灯に要する時間は、表示ランプごとに異なるので、N個の表示ランプの点灯が終了するタイミングは、表示ランプごとに異なる。
【0068】
S170では、プリンタ100は、S160のモールス信号データに従う点灯を所定回数(例えば、2~5回)繰り返したか否かを判断する。所定回数繰り返し表示していない場合には(S170:NO)、プリンタ100は、S140に戻る。所定回数繰り返し表示した場合には(S170:YES)、プリンタ100は、トークン表示処理を終了する。
【0069】
このように、S160やS140の表示ランプ11~14の点灯が複数回に亘って繰り返されるのは、後述するトークン取得処理では、ユーザの操作によって表示ランプ11~14が撮影される必要があるので、1回の点灯では、撮影に失敗する可能性があるためである。
【0070】
C.トークン取得処理
図3のS26のトークン取得処理について説明する。上述のように、トークン取得処理は、カメラ260を用いて表示ランプ11~14を撮影して表示ランプ11~14の点灯パターンを特定し、該点灯パターンに基づいて端末用トークンを取得する処理である。
図8は、トークン取得処理のフローチャートである。
図9は、トークン取得処理において端末装置200の表示部240に表示される画面の例を示す図である。例えば、ユーザは、プリンタ100にインスタント印刷サービスの利用要求を入力した後に、端末装置200において、アプリケーションプログラムAPを起動する。アプリケーションプログラムAPが起動されると、端末装置200の端末アプリケーションによって、トークン取得処理が開始される。
【0071】
S210では、端末装置200(CPU210)は、撮影指示画面W1を表示部240に表示する。
図9(A)の撮影指示画面W1は、プリンタ100の表示ランプ11~14を、カメラ260を用いて撮影することをユーザに促すメッセージMS1と、カメラ起動ボタンBT1と、を含む。ユーザがカメラ起動ボタンBT1を押下すると、端末装置200は、S215に処理を進める。
【0072】
S215では、端末装置200は、カメラ260を起動し、撮影画面W2を表示部240に表示する。
図9(B)の撮影画面W2は、カメラ260によって撮影中の撮影画像PIを含む。ユーザは、カメラ260のレンズをプリンタ100の表示ランプ11~14に向けて撮影を行うので、撮影画面W2の撮影画像PIは、
図2(B)の特定領域ARを示す画像である。
図9(B)の例では、撮影画像PIは、表示ランプ11~14を示す画像と、操作ボタン31、32を示す画像と、機種情報40を示す画像と、を含んでいる。以下では、撮影画像PIにおける表示ランプ11~14を示す画像、操作ボタン31、32を示す画像、機種情報40を示す画像は、実物の表示ランプ11~14と操作ボタン31、32と機種情報40と区別するために、符号の前に「I」を付した符号を用いて、表示ランプI11~I14、操作ボタンI31、I32、機種情報I40とも表現される。
【0073】
S220では、端末装置200は、撮影画像PIを示す撮影画像データを解析して、機種情報I40を取得する。例えば、撮影画像データに対して、公知の文字認識処理(例えば、公知のOCR(Optical Character Reader)技術に基づく処理)を実行して、撮影画像PI内の文字を検出する。これによって、撮影画像PI内に含まれる機種情報I40を取得する。これに代えて、例えば、端末装置200は、機種の一覧を表示部240に表示し、ユーザにプリンタ100の機種を選択させることによって、機種情報を取得しても良い。
【0074】
S225では、端末装置200は、特定されたプリンタ100の機種に対応する機種データとして、ガイド画像データとランプ位置データとを取得する。例えば、ガイド画像データとランプ位置データとは、アプリケーションプログラムAPに組み込まれている。ガイド画像データは、後述するガイド画像を示す画像データである。ランプ位置データは、プリンタ100の基準部位と表示ランプ11~14との位置関係を示すデータである。
【0075】
例えば、本実施例のランプ位置データは、
図2(A)の操作ボタン31、32を基準として、表示ランプ11~14の位置を示す。例えば、ランプ位置データは、
図2(A)に示すように、表示ランプ11~14が、操作ボタン31の中心C1と操作ボタン32の中心C2とを結ぶ直線AX上に位置することを示すデータを含む。また、ランプ位置データは、操作ボタン31の中心C1から各表示ランプ11~14までの距離を、操作ボタン31の中心C1と操作ボタン32の中心C2との間の距離を基準距離(例えば、1)として示すデータを含む。なお、基準部位は、操作ボタン31、32に限らず、変形例では、基準部位は、筐体10の角部50を含む外縁であっても良いし、各表示ランプ11~14の近傍の文字列21~24であっても良い。
【0076】
S230では、端末装置200は、ガイド画像データを用いて、ガイド画像GIを表示部240に表示する。ガイド画像GIは、撮影画像PIにおいて、表示ランプI11~I14が配置されるべき位置を示す。
図9(C)の撮影画面W3には、撮影画像PIと重畳して、ガイド画像GIが表示されている。ガイド画像GIは、筐体10の角部50を含む外縁を示す線GOと、外縁に対する操作ボタン31、32の位置を示す略四角形の枠G31、G32と、外縁に対する表示ランプ11~14の位置を示す円G11~G14と、を含んでいる。撮影画面W3には、さらに、ガイド画像GIに合わせて、撮影画像PIの表示ランプI11~I14が円G11~G14内に位置するように、撮影位置を調整することを促すメッセージMS2が表示される。
【0077】
ユーザは、撮影画像PIの表示ランプI11~I14が円G11~G14内に位置するように、端末装置200のカメラ260の撮影位置を調整する。
図9(D)には、ユーザが撮影位置を調整した後の撮影画面W4が示されている。撮影画面W4では、表示ランプI11~I14が円G11~G14内に位置している。
【0078】
S240では、端末装置200は、解析すべき動画像データを取得する。動画像データは、フレームレートに応じた所定間隔で連続的に撮影された複数個の撮影画像データを含む。S240の動画像データの取得は一回で行われる必要はない。実際には、S245~S260の画像解析を行いつつ、並行してカメラ260による動画撮影が行われるので、S245~S260の画像解析と並行して、撮影された動画像データが取得される。
【0079】
S245では、端末装置200は、動画像データ(複数個の撮影画像データ)によって示される撮影画像PIにおいて、基準部位を検出する。基準部位は、S225にて取得されるランプ位置データに示される部位であって、表示ランプ11~14を特定するための基準として用いられる部位である。基準部位は、本実施例では、操作ボタンI31、I32である。操作ボタンI31、I32の検出は、パターンマッチングなどの公知の処理を用いて実行される。
【0080】
S250では、端末装置200は、撮影画像PIにおいて、特定された基準部位を基準として、表示ランプI11~I14を特定する。本実施例では、操作ボタンI31、I32を基準とした表示ランプI11~I14の位置が、S225にて取得済みのランプ位置データに示されている。端末装置200は、該ランプ位置データを参照して、表示ランプI11~I14を特定する。
【0081】
S255では、端末装置200は、表示ランプI11~I14の表示順序に基づいて、後に取得される文字列PT1~PT4の結合順序を特定する。
図6のトークン表示処理にて説明したように、表示ランプ11~14は、結合順表示パターンでの点灯と、モールス信号データに従う点灯と、を繰り返す。端末装置200は、カメラ260によって撮影される動画像データのうち、結合順表示パターンで点灯する表示ランプI11~I14を示す部分動画データを特定する。結合順表示パターンでの点灯と、モールス信号データに従う点灯とは、明確に異なるので、動画像データを解析することで、結合順表示パターンでの点灯と、モールス信号データに従う点灯とは、容易に区別できる。端末装置200は、該部分動画データを用いて、結合順表示パターン(N個の表示ランプ11~14の点灯順序)を特定することによって、文字列PT1~PT4の結合順序を特定する。
図7の例では、第1文字列PT1、第2文字列PT2、第3文字列PT3、第4文字列PT4の順番で結合する結合順序が特定される。
【0082】
S260では、端末装置200は、モールス信号データに従う表示ランプI11~I14の点灯パターンを特定する。端末装置200は、カメラ260によって撮影される動画像データのうち、モールス信号データに従う点灯パターンで点灯する表示ランプI11~I14を示す部分動画データを特定する。端末装置200は、該部分動画データを用いて、各表示ランプI11~I14の点灯パターンLP1~PT4(
図7(C))を特定する。
【0083】
S270では、端末装置200は、モールス信号データに従う表示ランプI11~I14の点灯パターンLP1~PT4を解析して、各表示ランプI11~I14が点灯パターンLP1~PT4によって示す文字列PT1~PT4を特定する。
【0084】
S280では、端末装置200は、N個の文字列(
図7の例では、4個の文字列PT1~PT4)を、S255にて特定済みの結合順序で結合して、端末用トークンを取得する。
図7の例では、
図7(A)の端末用トークンTTKが取得される。
【0085】
S290では、端末装置200は、
図4のS28の印刷指示画面データ要求の宛先を示す所定のURLに、S280にて取得された端末用トークンを付加することで、クエリ付URLを生成する。印刷指示画面データ要求の宛先を示す所定のURLは、アプリケーションプログラムAPに予め組み込まれている。
【0086】
以上説明した本実施のシステム1000では、プリンタ100は、デバイストークンを取得する(
図3のS12)。プリンタ100は、該デバイストークンを表示ランプ11~14の点灯パターンLP1~LP4を示すモール信号データに変換し(
図6のS130)、モールス信号データを用いて表示ランプ11~14を点灯させる(
図6のS160)。
【0087】
端末装置200は、カメラ260を用いて表示ランプ11~14を撮影して動画像データ(複数個の撮影画像データ)を取得する(
図8のS240)。端末装置200は、複数個の撮影画像データを解析して、表示ランプ11~14の点灯パターンLP1~LP4を特定し、点灯パターンLP1~LP4を用いて、端末用トークンを取得する(
図8のS270、S280)。端末装置200は、端末用トークンと印刷指示とをサーバ300に送信する(
図4のS28、S40)。
【0088】
サーバ300は、端末用トークンと印刷指示とを端末装置200から受信する場合に、端末用トークンと印刷指示とに基づいて、プリンタ100に印刷を実行させるための印刷処理を実行する(
図4のS42、S44、S46、S50)。
【0089】
本実施例では、ユーザは、端末装置200を用いてサーバ300を介してプリンタ100に印刷を実行させる場合に、プリンタ100を撮影するだけで、プリンタ100に印刷を実行させることができる。また、例えば、プリンタ100が液晶パネルなどのディスプレイや、端末装置200と安全に無線通信を行う仕組み(例えば、NFC(Near Field Communication)やBluetooth)を有していない場合であっても、端末装置200はデバイストークンを取得することができる。また、プリンタ100がNFCやBluetoothに対応していたとしても、端末装置200側が対応していない場合もある。特に、コンビニエンスストアなどに設置されるプリンタ100は、不特定多数のユーザの利用が想定される場合には、全てのユーザに対して対応可能な通信の仕組みを準備することが困難である場合もある。本実施例によれば、このような場合であってもカメラを備える端末装置を所有しているユーザであれば、インスタント印刷サービスを利用することができる。
【0090】
さらには、プリンタ100と端末装置200とをWi-Fi等の比較的広い範囲で通信可能な無線通信にて接続する方法も考えられる。この場合には、例えば、第三者の端末装置200も同一の無線通信に接続される可能性があるので、セキュリティの問題が発生し得る。本実施例では、この方法と比較して、セキュリティの観点から有利である。
【0091】
さらには、プリンタ100が端末用トークン、あるいは、端末用トークンをコード化した画像(バーコードなどの一次元コードやQRコード(登録商標)などの二次元コード)を印刷させ、端末装置200が印刷された端末用トークンやコード化した画像を読み取る方法も考えられる。本実施例では、このような方法と比較して、インクなどの色材や用紙が必要ないためコストの観点から有利である。また、端末用トークンが印刷される場合には、印刷された用紙が適切に破棄されない場合には、第三者が端末用トークンを取得する可能性があるので、本実施例では、セキュリティの観点からも有利である。
【0092】
また、本実施例では、プリンタ100は、デバイストークンをサーバ300から受信することによって取得し(
図3のS12)、サーバ300から印刷ジョブを受信する場合に印刷ジョブに従って印刷実行部170に印刷を実行させる(
図4のS50、S52)。サーバ300は、端末用トークンをプリンタ100に送信する(
図4のS28)。サーバ300は、端末用トークンを端末装置200から受信する場合に端末用トークンを検証し(
図4のS28、S30)、該検証結果が肯定的である場合に端末装置200から受信する印刷指示に基づく印刷ジョブをプリンタ100に送信する(
図4のS31、S50)。
この結果、端末装置200とサーバ300とを用いて行われる印刷のセキュリティを向上できる。また、プリンタ100は、デバイストークンなどの権限情報の生成や検証を行う必要がないので、プリンタ100の処理負担が軽減される。
【0093】
さらに、本実施例によれば、端末装置200は、プリンタ100の機種を特定し、特定される機種に対応した機種データ(本実施例ではガイド画像データやランプ位置データ)を取得する(
図8のS225)。端末装置200は、機種データを用いて、撮影画像データを取得する処理(
図8のS230、S240)と、撮影画像データを解析する処理(
図8のS245、S250)と、を実行する。この結果、端末装置200は、撮影画像PIにおいて表示ランプI11~I14を精度良く特定でき、引いては、表示ランプ11~14の点灯パターンLP1~LP4を精度良く特定することができる。
【0094】
さらに、本実施例によれば、機種データは、ガイド画像GIを示すガイド画像データを含む。端末装置200は、表示ランプ11~14を撮影する際に、撮影画像PIとガイド画像GIとを重畳して表示する(
図8のS230、
図9(C))。この結果、機種ごとに適切なガイド画像GIを表示できるので、端末装置200は、表示ランプI11~I14を適切な位置に含む撮影画像PIを示す撮影画像データを取得できる。したがって、撮影画像PIにおいて表示ランプI11~I14を精度良く特定できる。
【0095】
さらに、本実施例によれば、機種データは、プリンタ100の基準部位(例えば、操作ボタン31、32)と表示ランプ11~14との位置関係を示すランプ位置データを含む(
図8のS225)。端末装置200は、撮影画像データを解析することによって撮影画像PIにおいて該基準部位を検出し(
図8のS245)、ランプ位置データを用いて、基準部位を基準として撮影画像PI内の表示ランプI11~I14を特定する。この結果、端末装置200は、機種ごとに適切な位置データを用いて、撮影画像PIにおいて表示ランプI11~I14を精度良く特定できる。
【0096】
さらに、本実施例によれば、プリンタ100は、端末用トークンを、N個の表示ランプ11~14(本実施例ではN=4)に対応するN個の部分情報(本実施例では文字列PT1~PT4)に分割する(
図6のS120)。プリンタ100は、N個の部分情報のそれぞれを、N個の表示ランプ11~14のうちの対応する表示ランプの点灯パターンを示すモールス信号データに変換し(
図6のS130)、該モールス信号データを用いて、N個の表示ランプ11~14を点灯させる(
図6のS160)。端末装置200は、N個の表示ランプ11~14の点灯パターンLP1~LP4を特定し(
図8のS260)、該点灯パターンLP1~LP4を用いてN個の文字列PT1~PT4を取得し(
図8のS270)、N個の文字列PT1~PT4を結合して端末用トークンを取得する(
図8のS280)。この結果、例えば、1個の表示ランプだけを用いる場合よりも表示ランプの点灯時間を短縮できる。この結果、ユーザが端末装置200を用いてプリンタ100を撮影する時間を短縮できるので、ユーザの負担を軽減できる。さらには、ユーザ以外の第三者が表示ランプの点灯に基づいて端末用トークンを不正に取得する可能性を低減できる。
【0097】
さらに、プリンタ100は、N個の文字列PT1~PT4の結合順序を示す結合順表示パターンでN個の表示ランプ11~14を順次に点灯させる(
図8のS140)。端末装置200は、撮影画像データを解析して、N個の表示ランプ11~14の点灯順序を特定し(
図8のS255)、該点灯順序に従って、N個の表示ランプ11~14ランプに対応するN個の文字列PT1~PT4を結合して端末用トークンを取得する(
図8のS280)。この結果、端末装置200は、N個の表示ランプ11~14が用いられる場合であっても確実に端末トークンを取得できる。
【0098】
さらに、本実施例では、表示ランプ11~14の点灯パターンLP1~LP4は、モールス信号によって端末用トークンを示すパターンであるので、モールス信号を用いて、端末用トークンを構成する文字列を端末装置200に確実に伝達できる。
【0099】
以上の説明から解るように、本実施例の端末用トークンは、権限情報の例であり、モールス信号データは、パターンデータの例である。
【0100】
D.変形例
(1)上記実施例では、表示ランプ11~14の点灯パターンLP1~LP4は、モールス信号を用いて、端末用トークンを示す。表示ランプの点灯パターンは、モールス信号とは異なる方法を用いて、端末用トークンを示してもよい。例えば、端末用トークンを構成する文字列は、アスキーコードなどの文字コードに変換され、該文字コードを示す二値データが点灯パターンデータとして生成されても良い。この場合には、表示ランプの点灯パターンは、該文字コードを示す二値データに従って点灯と消滅を行うパターンである。
【0101】
また、所定の暗号化方法や圧縮方法を用いて、文字コードを示す二値データに対して暗号化処理および圧縮処理の一方あるいは両方が行われた後の二値データが、点灯パターンデータとして生成されても良い。
【0102】
(2)表示ランプ11~14の点灯パターンは、1色の点灯と消灯との2種類で構成されるパターンに限られない。例えば、表示ランプ11~14が、m色(mは、2以上の整数、例えば、赤、緑、青、白の4色)で点灯可能に構成されている場合には、点灯パターンは、m色の点灯と消灯との(m+1)種類で構成されるパターンであっても良い。
【0103】
(3)上記実施例では、端末用トークンの生成や検証は、サーバ300によって実行されている。これに代えて、端末用トークンの生成や検証は、プリンタ100によって実行されてもよい。例えば、プリンタ100は、端末用トークンを生成し、生成した端末用トークンを用いて、
図6のトークン表示処理を実行する。端末装置200は、
図8のトークン表示処理を実行して、プリンタ100によって表示ランプを用いて表示される端末用トークンを取得する。端末装置200は、取得した端末用トークンと印刷指示をサーバ300に送信する。サーバ300は、端末装置200から受信した端末用トークンをプリンタ100に送信する。プリンタ100は、サーバ300から受信した端末用トークンを検証する。例えば、サーバ300から受信した端末用トークンと、自身が生成した端末用トークンとが、一致するか否かが検証される。プリンタ100は、検証結果が肯定的である場合には、サーバ300に印刷ジョブを要求する。サーバ300は、プリンタ100からの要求に応じて、端末装置200から受信された印刷指示に基づく印刷ジョブを生成してプリンタ100に送信する。プリンタ100は、サーバ300から受信した印刷ジョブに従って、印刷実行部170に印刷を実行させる。
【0104】
(4)
図3、
図4の処理は、適宜に変更や省略が行われて良い。例えば、デバイストークンの生成(
図3のS6~S12)と検証(
図3のS17)は、省略されても良い。また、
図4のS44~S48が省略され、
図4のS42にて生成された印刷ジョブは、直ちに、プリンタ100に送信されても良い。
【0105】
(5)
図6のトークン表示処理や
図8のトークン取得処理は、適宜に省略や変更がなされても良い。例えば、端末用トークンの表示に用いられる表示ランプは、プリンタ100が備える4個の表示ランプ11~14のうちの一部だけであっても良く、2個の表示ランプ11、12が用いられても良いし、1個の表示ランプ11だけが用いられても良い。1個の表示ランプ11だけが用いられる場合には、
図6のS120、S140、S150は、省略されて良く、
図8のS255、S280も省略されて良い。
【0106】
(6)
図8のトークン取得処理において、ガイド画像データとランプ位置データとのうちの一方は、用いられなくても良い。例えば、ガイド画像データを用いない場合には、
図9(C)の撮影画面W3には、ガイド画像GIは表示されない。この場合であっても、端末装置200は、撮影画像PIを解析して、操作ボタンI31、I32を特定し、該操作ボタンI31、I32を基準として、ランプ位置データを参照して、表示ランプI11~I14を特定しても良い。また、ランプ位置データを用いない場合には、端末装置200は、例えば、
図9(D)の撮影画面W4のガイド画像GIの円G11~G14内を解析することによって、表示ランプI11~I14を特定しても良い。
【0107】
(7)さらには、
図8のトークン取得処理において、ガイド画像データとランプ位置データとの両方が用いられなくても良い。例えば、端末装置200は、撮影画像PIにおいて、輝度が急激に変動する領域を検出し、該領域内を解析することによって、点灯や消灯を繰り返す表示ランプI11~I14を特定しても良い。
【0108】
(8)上記実施例のシステム1000は、1つのサーバ300のみを備えているが、複数個(例えば、2~4個)のサーバが協働して、実施例のサーバ300が実行する処理を実行しても良い。例えば、
図3の処理のうち、S6~S12の処理は、プリンタ100と一のサーバとの間で実行され、S14~S22の処理は、プリンタ100と他のサーバとの間で実行されても良い。この場合には、他のサーバは、
図3のS16のデバイストークンの検証を行う際には、デバイストークンを生成した一のサーバに検証を依頼し、一のサーバから検証結果を取得しても良い。
【0109】
また、
図4の処理のうち、S42の画像変換処理およびS44の印刷ジョブの格納は、サーバ300とは異なる画像処理サーバによって実行されても良い。この場合には、例えば、サーバ300は、S40にて受信した印刷指示に含まれる画像データを画像処理サーバに送信する。画像処理サーバは、S42の画像変換処理およびS44の印刷ジョブの格納を実行して、格納先URLをサーバ300に送信する。その後のS48では、プリンタ100は、画像処理サーバに印刷ジョブ要求を送信し、S50では、画像処理サーバからプリンタ100に印刷ジョブが送信される。
【0110】
(9)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【0111】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0112】
100…プリンタ,1000…システム,11~14…表示ランプ,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…印刷実行部,200…端末装置,210…CPU,220…揮発性記憶装置,230…不揮発性記憶装置,240…表示部,250…操作部,260…カメラ,300…サーバ,31,32…操作ボタン,310…CPU,320…揮発性記憶装置,330…不揮発性記憶装置,AP…アプリケーションプログラム,IB,DB…情報データベース,DT…デバイストークンテーブル,LP…点灯パターン,PG1,PGa…コンピュータプログラム,PI…撮影画像,PT1~PT4…文字列,TT…端末用トークンテーブル,TTK…端末用トークン