(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】プリンタ及びプリンタのためのコンピュータプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20241112BHJP
B41J 29/38 20060101ALI20241112BHJP
【FI】
G06F3/12 359
G06F3/12 387
G06F3/12 388
G06F3/12 303
B41J29/38
(21)【出願番号】P 2020217548
(22)【出願日】2020-12-25
【審査請求日】2023-12-05
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】山本 亮
【審査官】木村 雅也
(56)【参考文献】
【文献】特開2018-034375(JP,A)
【文献】特開2009-199186(JP,A)
【文献】特開2020-152074(JP,A)
【文献】特開2020-067893(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
B41J 29/38
(57)【特許請求の範囲】
【請求項1】
プリンタであって、
前記プリンタがサーバから受信される複数個の印刷ジョブを同時的に記憶可能である第1の状況では、前記サーバにおける前記プリンタへの通知状態を第1の状態に設定する第1の設定部であって、前記第1の状態は、前記サーバがジョブ通知とステータス変更通知とを前記プリンタに送信する状態であり、前記ジョブ通知は、前記サーバを介して印刷ジョブを前記プリンタに送信するためのジョブ送信要求を受け付けたことを示す通知であり、前記ステータス変更通知は、印刷ジョブのステータスが変更されたことを示す通知である、前記第1の設定部と、
前記プリンタが前記複数個の印刷ジョブを同時的に記憶不可能である第2の状況では、前記サーバにおける前記プリンタへの通知状態を第2の状態に設定する第2の設定部であって、前記第2の状態は、前記サーバが、前記ジョブ通知を前記プリンタに送信するとともに、前記ステータス変更通知を前記プリンタに送信しない状態である、前記第2の設定部と、
を備える、プリンタ。
【請求項2】
前記プリンタは、さらに、
前記プリンタに関連するプリンタ情報をサーバに登録するプリンタ情報登録部を備え、
前記第1の設定部は、前記第1の状況において、前記プリンタ情報が前記サーバに登録される場合に、第1の通知指示と第2の通知指示とを前記サーバに送信することによって、前記サーバにおける前記プリンタへの通知状態を前記第1の状態に設定し、
前記第1の通知指示は、前記プリンタへの前記ジョブ通知の送信を前記サーバに実行させるための指示であり、
前記第2の通知指示は、前記プリンタへの前記ステータス変更通知の送信を前記サーバに実行させるための指示であり、
前記第2の設定部は、前記第2の状況において、前記プリンタ情報が前記サーバに登録される場合に、前記第2の通知指示を前記サーバに送信することなく、前記第1の通知指示を前記サーバに送信することによって、前記サーバにおける前記プリンタへの通知状態を前記第2の状態に設定する、請求項1に記載のプリンタ。
【請求項3】
前記第1の設定部は、前記サーバにおける前記プリンタへの通知状態が前記第2の状態であり、かつ、前記第2の状況から前記第1の状況に変化する場合に、第2の通知指示を前記サーバに送信することによって、前記サーバにおける前記プリンタへの通知状態を前記第1の状態に設定し、
前記第2の通知指示は、前記プリンタへの前記ステータス変更通知の送信を前記サーバに実行させるための指示である、請求項1又は2に記載のプリンタ。
【請求項4】
前記第2の設定部は、前記サーバにおける前記プリンタへの通知状態が前記第1の状態であり、かつ、前記第1の状況から前記第2の状況に変化する場合に、通知停止指示を前記サーバに送信することによって、前記サーバにおける前記プリンタへの通知状態を前記第2の状態に設定し、
前記通知停止指示は、前記プリンタへの前記ステータス変更通知の送信を前記サーバに停止させるための指示である、請求項1から3のいずれか一項に記載のプリンタ。
【請求項5】
前記第1の状況は、前記複数個の印刷ジョブを同時的に記憶可能な外部メモリが前記プリンタに装着されている状況であり、
前記第2の状況は、前記外部メモリが前記プリンタに装着されていない状況である、請求項1から4のいずれか一項に記載のプリンタ。
【請求項6】
前記プリンタは、さらに、
前記第1の状況において、前記サーバから、前記プリンタに記憶されている1個以上の印刷ジョブのうちの第1の印刷ジョブがキャンセルされたことを示す前記ステータス変更通知が受信される場合に、前記第1の印刷ジョブに従った印刷を実行することなく、前記プリンタから前記第1の印刷ジョブを消去する消去部を備える、請求項1から
5のいずれか一項に記載のプリンタ。
【請求項7】
前記プリンタは、さらに、
前記第2の状況において、前記サーバから前記ジョブ通知が受信される場合に、前記ジョブ通知に対応する第2の印刷ジョブのステータスを示すステータス情報の送信を前記サーバに要求して、前記サーバから前記ステータス情報を受信するステータス情報受信部を備え、
前記第2の印刷ジョブがキャンセルされたことを示す前記ステータス情報が受信される場合に、前記第2の印刷ジョブは受信されない、請求項1から6のいずれか一項に記載のプリンタ。
【請求項8】
プリンタのためのコンピュータプログラムであって、
前記プリンタのコンピュータを、以下の各部、即ち、
前記プリンタがサーバから受信される複数個の印刷ジョブを同時的に記憶可能である第1の状況では、前記サーバにおける前記プリンタへの通知状態を第1の状態に設定する第1の設定部であって、前記第1の状態は、前記サーバがジョブ通知とステータス変更通知とを前記プリンタに送信する状態であり、前記ジョブ通知は、前記サーバを介して印刷ジョブを前記プリンタに送信するためのジョブ送信要求を受け付けたことを示す通知であり、前記ステータス変更通知は、印刷ジョブのステータスが変更されたことを示す通知である、前記第1の設定部と、
前記プリンタが前記複数個の印刷ジョブを同時的に記憶不可能である第2の状況では、前記サーバにおける前記プリンタへの通知状態を第2の状態に設定する第2の設定部であって、前記第2の状態は、前記サーバが、前記ジョブ通知を前記プリンタに送信するとともに、前記ステータス変更通知を前記プリンタに送信しない状態である、前記第2の設定部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書が開示する技術は、サーバから印刷ジョブを受信するプリンタに関する。
【背景技術】
【0002】
特許文献1には、プリンタとサーバとを備えるクラウドプリントシステムが開示されている。プリンタは、印刷ジョブがサーバに追加される場合に、サーバから印刷ジョブを受信して印刷を実行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、印刷ジョブをプリンタに送信可能なサーバの処理負荷を軽減させるための技術を開示する。
【課題を解決するための手段】
【0005】
本明細書によって開示されるプリンタは、前記プリンタがサーバから受信される複数個の印刷ジョブを同時的に記憶可能である第1の状況では、前記サーバにおける前記プリンタへの通知状態を第1の状態に設定する第1の設定部であって、前記第1の状態は、前記サーバがジョブ通知とステータス変更通知とを前記プリンタに送信する状態であり、前記ジョブ通知は、前記サーバを介して印刷ジョブを前記プリンタに送信するためのジョブ送信要求を受け付けたことを示す通知であり、前記ステータス変更通知は、印刷ジョブのステータスが変更されたことを示す通知である、前記第1の設定部と、前記プリンタが前記複数個の印刷ジョブを同時的に記憶不可能である第2の状況では、前記サーバにおける前記プリンタへの通知状態を第2の状態に設定する第2の設定部であって、前記第2の状態は、前記サーバが、前記ジョブ通知を前記プリンタに送信するとともに、前記ステータス変更通知を前記プリンタに送信しない状態である、前記第2の設定部と、を備えてもよい。
【0006】
上記の構成によると、プリンタは、第1の状況では、サーバがジョブ通知とステータス変更通知とをプリンタに送信するように、サーバにおけるプリンタへの通知状態を第1の状態に設定する。一方、プリンタは、第2の状況では、サーバがジョブ通知をプリンタに送信するがステータス変更通知を送信しないように、サーバにおけるプリンタへの通知状態を第2の状態に設定する。サーバにおける通知状態が第2の状態に設定されると、サーバがステータス変更通知を送信せずに済むので、サーバの処理負荷を低減させることができる。
【0007】
上記のプリンタのためのコンピュータプログラム、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体、及び、上記のプリンタによって実行される方法も新規で有用である。また、上記のプリンタとサーバとを備えるシステムも新規で有用である。
【図面の簡単な説明】
【0008】
【発明を実施するための形態】
【0009】
(通信システムの構成;
図1)
図1に示されるように、通信システム2は、プリンタ10と端末50と印刷仲介サーバ100とを備える。各デバイス10,50,100は、インターネット6に接続されており、インターネット6を介して相互に通信可能である。
【0010】
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺装置(例えば、端末50の周辺装置)である。変形例では、プリンタ10は、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ10には、プリンタ10を識別するためのプリンタID「P1」が割り当てられている。プリンタ10は、操作部12と、表示部14と、通信インターフェース16と、印刷エンジン18と、USB(Universal Serial Busの略)インターフェース20と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。
【0011】
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。表示部14は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。通信I/F16は、インターネット6に接続されている。印刷エンジン18は、インクジェット方式、レーザ方式等の印刷機構を備える。USBI/F20は、外部メモリであるUSBメモリが接続されるI/Fである。
【0012】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0013】
(端末50の構成)
端末50は、例えば、携帯電話、スマートフォン、PDA、ノートPC、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末50は、デスクトップPC等の据置型の端末装置であってもよい。端末50は、図示省略の操作部、表示部、通信I/F、制御部等を備える。
【0014】
(印刷仲介サーバ100の構成)
以下では、印刷仲介サーバ100のことを「サーバ100」と短縮して記載する。サーバ100は、クラウド印刷サービスを提供するサーバである。サーバ100は、プリンタ10のベンダとは異なる事業者(例えばクラウド印刷サービスを提供する事業者)によってインターネット6上に設置されるサーバである。変形例では、サーバ100は、プリンタ10のベンダによって設置されてもよい。サーバ100は、例えば端末50から画像データを受信する場合に、ジョブを生成し、当該ジョブをプリンタ10に送信する。ジョブは、画像データをプリンタ10が解釈可能なデータ形式に変換することによって生成される印刷データを含む。
【0015】
サーバ100は、通信I/F116と制御部130とを備える。各部116及び130は、バス線(符号省略)に接続されている。通信I/F116は、インターネット6に接続されている。
【0016】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム136に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134は、さらに、プリンタテーブル138を記憶する。
【0017】
プリンタテーブル138は、プリンタIDと、アクセストークンと、accepting-jobsと、Subscriptionsと、を対応付けて記憶するテーブルである。アクセストークンは、プリンタ10とサーバ100との間でIPP(Internet Printing Protocolの略)に従ったリクエストが通信される際に、プリンタ10を認証するためにサーバ100によって利用される情報である。また、アクセストークンは、プリンタ10とサーバ100との間に常時接続を確立するために利用される。本実施例では、プリンタ10は、HTTP(Hyper Text Transfer Protocolの略)に従った持続的接続を利用して、常時接続のような挙動を実現する。変形例では、常時接続は、XMPP(eXtensible Messaging and Presence Protocolの略)に従った接続であってもよい。accepting-jobsは、IPPに従ったプリンタ属性を示す情報であり、具体的には、サーバ100が印刷要求を受け付けるのか否かを示す情報である。accepting-jobsは、印刷要求を受け付けることを示すyesと、印刷要求を受け付けないことを示すnoと、のいずれか一方を示す。ここで、「印刷要求を受け付ける」とは、サーバ100が印刷要求を受信することに応じてジョブを生成することを意味する。「印刷要求を受け付けない」とは、サーバ100が印刷要求を受信してもジョブを生成しないことを意味する。Subscriptionsは、サーバ100が監視して通知すべきイベントを示す情報である。
【0018】
(各デバイス10,50,100によって実行されるケースAの処理:
図2)
図2を参照して、ケースAの処理を説明する。ケースAは、USBメモリがプリンタ10に装着されているケースである。この場合、プリンタ10は、サーバ100から受信される複数個のジョブに含まれる複数個の印刷データをUSBメモリ内に記憶させることが可能である。即ち、USBメモリがプリンタ10に装着されている状態では、プリンタ10は、複数個のジョブを同時的に記憶可能である。なお、USBメモリがプリンタ10に装着されていない状態では、プリンタ10は、サーバ100から受信される1個のジョブのみをメモリ34内に記憶させることが可能である。即ち、USBメモリがプリンタ10に装着されていない状態では、プリンタ10は、複数個のジョブを同時的に記憶不可能である。ただし、USBメモリがプリンタ10に装着されていない状態では、プリンタ10は、複数個のジョブに含まれる複数個の印刷データ以外の情報(例えば、複数個のジョブID、複数個の印刷条件等)を同時的にメモリ34内に記憶可能であってもよい。
【0019】
以下では、理解の容易化のために、各デバイスのCPU(例えばCPU32等)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えばプリンタ10)を主体として記載する。また、各デバイス10,100によって実行される全ての通信は、通信I/F16,116を介して実行される。このため、以下では、「通信I/F16(又は116)を介して」という記載を省略する。
【0020】
端末50は、ユーザからの操作を受け付けることに応じて、プリンタ10内のウェブサーバにアクセスする。端末50は、さらに、T100において、ユーザから、クラウド印刷サービスを受けるためのプリンタ情報をサーバ100に登録するための登録操作を受け付ける。この場合、端末50は、T110において、登録指示をプリンタ10に送信する。
【0021】
プリンタ10は、T110において、端末50から登録指示を受信すると、T112において、プリンタID「P1」を含む登録要求をサーバ100に送信する。
【0022】
サーバ100は、T112において、プリンタ10から登録要求を受信すると、T114において、PINコード「C」を生成する。なお、変形例では、PINコードに代えて、パスワードが利用されてもよい。そして、サーバ100は、登録要求に含まれるプリンタID「P1」と生成済みのPINコード「C」とを対応付けてメモリ134に記憶する。次いで、サーバ100は、T120において、PINコード「C」とログイン用URL(Uniform Resource Locatorの略)とをプリンタ10に送信する。ログイン用URLは、サーバ100内の後述の認証画面データの位置を示す情報である。
【0023】
プリンタ10は、T120において、サーバ100からPINコード「C」とURLとを受信すると、T122において、それらを端末50に送信する。
【0024】
端末50は、T122において、プリンタ10からPINコード「C」とURLとを受信すると、T130において、それらを表示する。次いで、端末50は、T132において、ユーザからURLを選択する操作を受け付けると、T140において、URLを含む認証要求をサーバ100に送信する。
【0025】
サーバ100は、T140において、端末50から認証要求を受信すると、T142において、認証要求に含まれるURLによって特定される認証画面データを端末50に送信する。認証画面データは、PINコードを入力するための認証画面を表わすデータである。
【0026】
端末50は、T142において、サーバ100から認証画面データを受信すると、T144において、認証画面を表示する。次いで、端末50は、T146において、ユーザから、T130で表示されたPINコード「C」の入力を受け付ける。この場合、端末50は、T150において、入力済みのPINコード「C」をサーバ100に送信する。
【0027】
サーバ100は、T150において、端末50からPINコード「C」を受信すると、T152において、受信済みのPINコード「C」の認証を実行する。具体的には、サーバ100は、受信済みのPINコード「C」を記憶済みであるのか否かを判断する。サーバ100は、受信済みのPINコード「C」を記憶済みであると判断する場合、即ち、認証が成功する場合に、T154において、ユニークな文字列であるアクセストークンAT1を生成する。そして、サーバ100は、T156において、T114で記憶されたプリンタID「P1」に対応付けて、生成済みのアクセストークンAT1をプリンタテーブル138に記憶する。その後、サーバ100は、T160において、生成済みのアクセストークンAT1を含む認証通知をプリンタ10に送信する。
【0028】
プリンタ10は、T160において、サーバ100から認証通知を受信すると、T162において、認証通知に含まれるアクセストークンAT1をメモリ34に記憶する。
【0029】
プリンタ10は、T170において、記憶済みのアクセストークンAT1を利用して、常時接続をサーバ100と確立する。サーバ100は、常時接続を利用すれば、プリンタ10から要求を受信しなくても、プリンタ10が所属するLANのファイヤウォールを越えて、プリンタ10に信号を送信することができる。即ち、常時接続は、サーバプッシュ型の通信を実行可能な接続である。
【0030】
プリンタ10は、T180~T184において、プリンタID「P1」を含む各種コマンドをサーバ100に送信する。T180のコマンドは、accepting-jobsとして「yes」をサーバ100に登録するためのコマンドである。これにより、印刷要求の受け付けをサーバ100に実行させることができる。T182,T184の各コマンドは、Create-Printer-Subscriptions(以下では「CPS」と記載する)である。CPSは、Subscriptionsとして新たなイベントをサーバ100に登録するためのコマンドである。
【0031】
T182のCPSは、job-fetchableをサーバ100に登録するためのコマンドである。job-fetchableは、印刷要求の受け付けのイベントである。即ち、T182のCPSは、印刷要求の受け付けの監視及び印刷要求が受け付けられた旨のプリンタ10への通知(即ち後述のジョブ通知の送信)をサーバ100に実行させるための指示である。
【0032】
T184のCPSは、job-state-changedをサーバ100に登録するためのコマンドである。job-state-changedは、ジョブのステータス変化のイベントである。即ち、T184のCPSは、ジョブのステータス変化の監視及びジョブのステータス変化があった旨のプリンタ10への通知(即ち後述のステータス変更通知の送信)をサーバ100に実行させるための指示である。
【0033】
サーバ100は、T180~184において、プリンタ10から各種コマンドを受信すると、T186において、これらの情報をプリンタテーブル138に記憶する。具体的には、サーバ100は、T180のコマンドに含まれるプリンタID「P1」に対応付けて、accepting-jobsとしてyesを記憶する。サーバ100は、さらに、T182,T184の各CPSに含まれるプリンタID「P1」に対応付けて、Subscriptionsとしてjob-fetchable及びjob-state-changedを記憶する。これにより、サーバ100におけるプリンタ10への通知状態が、ジョブ通知をプリンタ10に送信するとともに、ステータス変更通知をプリンタ10に送信する状態に設定される。
【0034】
(
図2の続き:
図3)
端末50は、ユーザから、印刷を実行すべきプリンタ(本ケースではプリンタ10)の指定と、印刷対象の画像の指定と、を含む指示を受け付けることに応じて、T200において、印刷要求をサーバ100に送信する。当該印刷要求は、ユーザによって指定されたプリンタ10を識別するプリンタID「P1」と、印刷対象の画像を表わす画像データD1と、を含む。
【0035】
サーバ100は、T200において、端末50から印刷要求を受信すると、まず、プリンタテーブル138から、当該要求に含まれるプリンタID「P1」を特定する。そして、プリンタ10は、プリンタテーブル138において、プリンタID「P1」に対応付けられているaccepting-jobsがyesを示すのかnoを示すのかを判断する。本ケースでは、accepting-jobsがyesを示すので(
図2のT180,T186参照)、サーバ100は、印刷要求を受け付ける。即ち、サーバ100は、T202において、ジョブID「Job1」によって識別されるジョブJ1を生成する。具体的には、サーバ100は、まず、端末50から受信済みの画像データD1を変換して、プリンタ10が解釈可能なデータ形式を有する印刷データを生成する。そして、サーバ100は、プリンタID「P1」とジョブID「Job1」と印刷データとを対応付けてメモリ134に記憶する。
【0036】
次いで、サーバ100は、プリンタテーブル138において、プリンタID「P1」に対応付けられているSubscriptionsとしてjob-fetchableが記憶されているのか否かを判断する。本ケースでは、job-fetchableが記憶されているので(
図2のT182,T186参照)、サーバ100は、印刷要求の受け付けイベントが発生したことをプリンタ10に通知する。即ち、サーバ100は、T204において、常時接続(
図2のT170参照)を利用して、ジョブJ1が生成されたことを示すジョブ通知をプリンタ10に送信する。当該ジョブ通知は、T202で生成されたジョブJ1のジョブID「Job1」を含む。変形例では、当該ジョブ通知は、ジョブID「Job1」を含まなくてもよい。
【0037】
プリンタ10は、T204において、サーバ100からジョブ通知を受信すると、T210において、プリンタID「P1」を含むジョブリスト要求をサーバ100に送信する。ジョブリスト要求は、プリンタ10に対応する各ジョブのステータスを示すステータス情報の送信を要求するコマンドである。
【0038】
サーバ100は、T210において、プリンタ10からジョブリスト要求を受信すると、ジョブリスト要求に含まれるプリンタID「P1」に対応付けて記憶されている各ジョブIDによって識別される各ジョブのステータスを特定する。現時点では、プリンタID「P1」に対応付けてジョブID「Job1」が記憶されており(T202参照)、ジョブID「Job1」によって識別されるジョブJ1のステータスが印刷待ちを示すpendingである。従って、サーバ100は、T212において、ジョブID「job1」とpendingとが対応付けられているジョブリストをプリンタ10に送信する。
【0039】
プリンタ10は、T212において、サーバ100からジョブリストを受信すると、ジョブID「job1」に対応するステータスがpendingであると判断し、T220において、「job1」を含むジョブ要求をサーバ100に送信する。
【0040】
サーバ100は、T220において、プリンタ10からジョブ要求を受信すると、ジョブ要求に含まれるジョブID「Job1」に対応付けて記憶されている印刷データを特定する。そして、サーバ100は、T222において、当該印刷データを含むジョブJ1をプリンタ10に送信する。
【0041】
プリンタ10は、T222において、サーバ100からジョブJ1を受信すると、T230において、ジョブJ1をUSBメモリに記憶する。そして、プリンタ10は、T232において、ジョブJ1に従った印刷を開始する。具体的には、プリンタ10は、ジョブJ1に含まれる印刷データを印刷エンジン18に供給する。これにより、当該印刷データによって表わされる画像の印刷が印刷エンジン18によって実行される。このように、プリンタ10は、クラウド印刷サービスを利用して画像の印刷を実行することができる。
【0042】
本ケースでは、ジョブJ1に従った印刷がプリンタ10によって実行されている状況において、端末50は、さらに、T240において、印刷要求をサーバ100に送信する。当該印刷要求は、プリンタID「P1」と画像データD2とを含む。
【0043】
サーバ100は、T240において、端末50から印刷要求を受信すると、T202及びT204と同様に、T242において、ジョブID「Job2」によって識別されるジョブJ2を生成し、T244において、ジョブID「Job2」を含むジョブ通知をプリンタ10に送信する。
【0044】
プリンタ10は、T244において、サーバ100からジョブ通知を受信すると、T210と同様に、T250において、ジョブリスト要求をサーバ100に送信する。
【0045】
サーバ100は、T250において、プリンタ10からジョブリスト要求を受信すると、ジョブID「Job1」によって識別されるジョブJ1のステータスが印刷中を示すprocessingであり、ジョブID「Job2」によって識別されるジョブJ2のステータスが印刷待ちを示すpendingであると判断する。従って、サーバ100は、T252において、ジョブID「job1」とprocessingとが対応付けられていると共に、ジョブID「job2」とpendingとが対応付けられているジョブリストをプリンタ10に送信する。
【0046】
プリンタ10は、T252において、サーバ100からジョブリストを受信すると、ジョブID「job2」に対応するステータスがpendingであると判断し、T260において、「job2」を含むジョブ要求をサーバ100に送信する。その後のT262及びT270は、ジョブJ1に代えてジョブJ2が利用される点を除くと、T222及びT230と同様である。
【0047】
現時点では、プリンタ10においてジョブJ1に従った印刷がまだ完了しておらず、ジョブJ2に従った印刷が開始されていない。この状況において、端末50は、T280において、ユーザから、ジョブJ2に従った印刷のキャンセルを指示するキャンセル操作を受け付ける。この場合、端末50は、T282において、プリンタID「P1」とジョブID「job2」とを含むキャンセル要求をサーバ100に送信する。
【0048】
サーバ100は、T282において、端末50からキャンセル要求を受け付けると、プリンタテーブル138において、キャンセル要求に含まれるプリンタID「P1」に対応付けられているSubscriptionsとしてjob-state-changedが記憶されているのか否かを判断する。本ケースでは、job-state-changedが記憶されているので(
図2のT184,T186参照)、サーバ100は、ジョブのステータス変更イベントが発生したことをプリンタ10に通知する。即ち、サーバ100は、T284において、常時接続(
図2のT170参照)を利用して、ジョブJ2に従った印刷がキャンセルされたことを示すステータス変更通知をプリンタ10に送信する。当該ステータス変更通知は、キャンセルを示す文字列と、キャンセル要求に含まれるジョブID「Job2」と、を含む。
【0049】
プリンタ10は、T284において、サーバ100からステータス変更通知を受信すると、T290において、ステータス変更通知に含まれるジョブID「Job2」によって識別されるジョブJ2をUSBメモリから消去する。このため、プリンタ10は、ジョブJ1に従った印刷が完了した後に、ジョブJ2に従った印刷を実行しない。
【0050】
(各デバイス10,50,100によって実行されるケースBの処理:
図4)
続いて、
図4を参照して、ケースBの処理を説明する。ケースBは、USBメモリがプリンタ10に装着されていないケースである。即ち、プリンタ10は、複数個のジョブを同時的に記憶不可能であり、1個のジョブのみをメモリ34内に記憶可能である。
【0051】
端末50は、T300において、
図2のT100と同様に、登録操作を受け付ける。この場合、
図2のT110~T170と同様の処理が実行される。プリンタ10は、T310及びT312において、
図2のT180及びT182と同様に、各コマンドをサーバ100に送信する。ただし、プリンタ10は、job-state-changedをSubscriptionsとして登録するためのCPSをサーバ100に送信しない。
【0052】
サーバ100は、T314において、accepting-jobsとしてYESを記憶するとともに、Subscriptionsとしてjob-fetchableを記憶する。サーバ100は、Subscriptionsとしてjob-state-changedを記憶しない。これにより、サーバ100におけるプリンタ10への通知状態が、ジョブ通知をプリンタ10に送信するとともに、ステータス変更通知をプリンタ10に送信しない状態に設定される。
【0053】
(
図4の続き:
図5)
図5のT400~T422は、
図3のT200~T222と同様である。プリンタ10は、T430において、ジョブJ1をUSBメモリではなくメモリ34に記憶し、T432において、ジョブJ1に従った印刷を開始する。
【0054】
T440~T444は、
図3のT240~T244と同様である。プリンタ10は、T444でジョブ通知を受信する際に、ジョブJ1に従った印刷をまだ完了していない。そして、プリンタ10は、1個のジョブJ1のみをメモリ34内に記憶可能であり、T444で受信されたジョブ通知に対応するジョブJ2をまだ記憶することができない。このため、プリンタ10は、サーバ100からジョブJ2を受信するための処理を開始しない。即ち、プリンタ10は、ジョブJ1に従った印刷が完了するまで、ジョブリスト要求をサーバ100に送信しない。
【0055】
T450及びT452は、
図3のT280及びT282と同様である。サーバ100は、プリンタテーブル138において、キャンセル要求に含まれるプリンタID「P1」に対応付けられているSubscriptionsとしてjob-state-changedが記憶されていないと判断する。このため、サーバ100は、ジョブJ2に従った印刷がキャンセルされたことを示すステータス変更通知をプリンタ10に送信しない。
【0056】
その後、ジョブJ1に従った印刷が完了する。この場合、プリンタ10は、T460において、T444でジョブ通知が受信されたことに応じて、プリンタID「P1」を含むジョブリスト要求をサーバ100に送信する。
【0057】
サーバ100は、T460において、プリンタ10からジョブリスト要求を受信すると、ジョブID「Job1」によって識別されるジョブJ1のステータスが印刷完了を示すcompletedであり、ジョブID「Job2」によって識別されるジョブJ2のステータスが印刷キャンセルを示すcanceledであると判断する。従って、サーバ100は、T462において、ジョブID「job1」とcompletedとが対応付けられているとともに、ジョブID「job2」とcanceledとが対応付けられているジョブリストをプリンタ10に送信する。
【0058】
プリンタ10は、T462において、サーバ100からジョブリストを受信すると、ジョブJ2に従った印刷がキャンセルされたと判断する。この場合、プリンタ10は、サーバ100からジョブJ2を受信するためのジョブ要求をサーバ100に送信しない。従って、プリンタ10は、ジョブJ2に従った印刷を実行しない。
【0059】
(
図3及び
図5の続き:
図6)
図3のケースAの後に、T500において、プリンタ10からUSBメモリが取り外される。即ち、プリンタ10は、複数個のジョブを同時的に記憶可能な状況から、複数個のジョブを同時的に記憶不可能な状況に変化する。この場合、プリンタ10は、T502において、プリンタID「P1」を含むCancel-Subscriptions(以下では「CS」と記載する)をサーバ100に送信する。CSは、Subscriptionsとして登録されているイベントをサーバ100から消去するためのコマンドである。特に、T502のCSは、job-state-changedを消去するためのコマンドである。
【0060】
サーバ100は、T502において、プリンタ10からCSを受信すると、T504において、プリンタテーブル138を更新する。具体的には、サーバ100は、CSに含まれるプリンタID「P1」に対応付けられているSubscriptionsからjob-state-changedを消去する。これにより、サーバ100におけるプリンタ10への通知状態が、ジョブ通知をプリンタ10に送信するとともに、ステータス変更通知をプリンタ10に送信しない状態に設定される。
【0061】
変形例では、プリンタ10は、T502のCSを送信することに代えて、プリンタID「P1」に対応付けられている全てのSubscriptionsを消去するためのCSをサーバ100に送信し、その後、job-fetchableを登録するためのCPSをサーバ100に送信してもよい。本変形例でも、T502のCSが送信された後のサーバ100におけるプリンタ10への通知状態と同じ通知状態を実現することができる。
【0062】
図5のケースBの後に、T510において、USBメモリがプリンタ10に装着される。即ち、プリンタ10は、複数個のジョブを同時的に記憶不可能な状況から、複数個のジョブを同時的に記憶可能な状況に変化する。この場合、プリンタ10は、T512において、プリンタID「P1」を含むCPSをサーバ100に送信する。当該CPSは、Subscriptionsとしてjob-state-changedを新たに登録するためのコマンドである。
【0063】
変形例では、プリンタ10は、T512のCPSを送信することに代えて、プリンタID「P1」に対応付けられている全てのSubscriptionsを消去するためのCSをサーバ100に送信し、その後、job-fetchable及びjob-state-changedを登録するためのCPSをサーバ100に送信してもよい。本変形例でも、T512のCPSが送信された後のサーバ100におけるプリンタ10への通知状態と同じ通知状態を実現することができる。
【0064】
サーバ100は、T512において、プリンタ10からCPSを受信すると、T514において、プリンタテーブル138を更新する。具体的には、サーバ100は、CPSに含まれるプリンタID「P1」に対応付けられているSubscriptionsとしてjob-state-changedを新たに記憶する。これにより、サーバ100におけるプリンタ10への通知状態が、ジョブ通知をプリンタ10に送信するとともに、ステータス変更通知をプリンタ10に送信する状態に設定される。
【0065】
(実施例の効果)
上記の構成によると、プリンタ10は、USBメモリが装着されている状況、即ち、複数個のジョブを同時的に記憶可能である状況では、サーバ100がジョブ通知とステータス変更通知とをプリンタ10に送信するように、サーバ100におけるプリンタ10への通知状態を設定する(
図2のケースA及び
図6のT512)。一方、プリンタ10は、USBメモリが装着されていない状況、即ち、複数個のジョブを同時的に記憶不可能な状況では、サーバ100がジョブ通知をプリンタ10に送信するがステータス変更通知を送信しないように、サーバ100におけるプリンタ10への通知状態を設定する(
図4のケースB及び
図6のT502)。この状態に設定されると、サーバ100がステータス変更通知を送信せずに済むので、サーバ100の処理負荷を低減させることができる。
【0066】
特に、プリンタ10は、複数個のジョブを同時的に記憶可能である状況では、サーバ100が端末50からキャンセル要求を受信する前に、ジョブJ2のステータスを示すジョブリストを受信済みである(
図3のT252)。従って、プリンタ10は、サーバ100からステータス変更通知を受信しなければ、ジョブJ2がキャンセルされたことを知ることができない。このために、プリンタ10は、ステータス変更通知の送信をサーバ100に実行させる(
図2のT184、
図6のT512)。これにより、プリンタ10は、サーバ100からステータス変更通知を受信することによって(
図3のT284)、ジョブJ2に従った印刷がキャンセルされたことを適切に認識することができる。一方、プリンタ10は、複数個のジョブを同時的に記憶不可能である状況では、ジョブJ2に従った印刷を実行する直前、即ち、サーバ100が端末50からキャンセル要求を受信した後に、ジョブJ2のステータスを示すジョブリストを受信することができる(
図5のT462)。従って、プリンタ10は、サーバ100からステータス変更通知を受信しなくても、ジョブリストに基づいて、ジョブJ2に従った印刷がキャンセルされたことを適切に認識することができる。このために、プリンタ10は、ステータス変更通知の送信をサーバ100に実行させず、サーバ100の処理負荷を低減させることができる。
【0067】
(対応関係)
プリンタテーブル138において、Subscriptionsとしてjob-fetchable及びjob-state-changedが記憶されている状態が、「第1の状態」の一例である。Subscriptionsとしてjob-fetchableが記憶されているとともにjob-state-changedが記憶されていない状態が、「第2の状態」の一例である。印刷要求が、「ジョブ送信要求」の一例である。プリンタID「P1」が、「プリンタ情報」の一例である。
図2のT182及び
図4のT312のCPSが、「第1の通知指示」の一例である。
図2のT184及び
図6のT512のCPSが、「第2の通知指示」の一例である。
図6のT502のSCが、「通知停止指示」の一例である。USBメモリが、「外部メモリ」の一例である。
図3のジョブJ2、
図5のジョブJ2が、それぞれ、「第1の印刷ジョブ」、「第2の印刷ジョブ」の一例である。
図5のT462のジョブリストが、「ステータス情報」の一例である。
【0068】
図2のT182、T184、及び、
図5のT512の処理が、「第1の設定部」によって実行される処理の一例である。
図4のT312及び
図5のT502の処理が、「第2の設定部」によって実行される処理の一例である。
図2のT112の処理が、「プリンタ情報登録部」によって実行される処理の一例である。
図3のT290の処理が、「消去部」によって実行される処理の一例である。
図5のT462の処理が、「ステータス情報受信部」によって実行される処理の一例である。
【0069】
以上、本明細書が開示する技術の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0070】
(変形例1)
上記の実施例では、ユーザは、端末50を利用してプリンタ10内のウェブサーバにアクセスし、登録指示をプリンタ10に与える(
図2のT110等)。これに代えて、ユーザは、プリンタ10の操作部12を操作することによって、登録指示をプリンタ10に与えてもよい。
【0071】
(変形例2)
上記の実施例では、プリンタ10は、常時接続をサーバ100と確立する(
図2のT170)。変形例では、プリンタ10は、常時接続をサーバ100と確立せずに、ポーリング信号をサーバ100に繰り返し送信してもよい。この場合、サーバ100は、ポーリング信号に対する応答としてジョブ通知をプリンタ10に送信することができる。本変形例でも、プリンタ10は、サーバ100からジョブ通知を受信することができる。
【0072】
(変形例3)
上記の実施例では、サーバ100は、端末50からキャンセル要求を受信する場合に、ジョブがキャンセルされたことを示すステータス変更通知をプリンタ10に送信する(
図3のT284等)。これに代えて、サーバ100は、端末50からジョブに従った印刷の保留を要求するための保留要求を受信する場合に、ジョブが保留されたことを示すステータス変更通知をプリンタ10に送信してもよい。一般的に言うと、「ステータス変更通知」は、印刷ジョブのステータスが変更されたことを示す通知であればよい。
【0073】
(変形例4)
「外部メモリ」は、USBメモリに限られず、プリンタに着脱可能に装着されるハードディスクであってもよいし、プリンタと有線又は無線を介して通信可能なデータベースであってもよい。
【0074】
(変形例5)
プリンタ10は、外部メモリを装着するためのインターフェースを備えなくてもよい。プリンタ10は、メモリ34の空き容量が比較的に多い状況では、複数個のジョブを同時的にメモリ34内に記憶することができる。プリンタ10は、メモリ34の空き容量が比較的に少ない状況では、1個のジョブのみをメモリ34内に記憶することができる。本変形例では、メモリ34の空き容量が比較的に多い状況(例えば閾値以上である状況)、メモリ34の空き容量が比較的に少ない状況(例えば閾値未満である状況)が、それぞれ、「第1の状況」、「第2の状況」の一例である。
【0075】
(変形例6)
プリンタ10は、
図3のT284において、サーバ100からステータス変更通知を受信する場合に、USBメモリからジョブJ2を消去しなくてもよい。この場合、プリンタ10は、USBメモリ内の空き容量が閾値未満になった場合に、USBメモリから印刷済みのジョブ及びキャンセル済みのジョブを消去してもよい。本変形例では、「消去部」を省略可能である。
【0076】
(変形例7)
プリンタ10は、ジョブリスト要求をサーバ100に送信して、サーバ100からジョブリストを受信しなくてもよい。本変形例では、「ステータス情報受信部」を省略可能である。
【0077】
(変形例8)上記の各実施例では、
図2~
図6の処理がソフトウェア(例えばプログラム36,136)によって実行されるが、これらの各処理の少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0078】
本明細書または図面に説明した技術要素は、単独で、あるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0079】
2:通信システム、6:インターネット、10:プリンタ、12:操作部、14:表示部、16:通信インターフェース、18:印刷エンジン、20:USBインターフェース、30:制御部、32:CPU、34:メモリ、36:プログラム、50:端末、100:印刷仲介サーバ、138:プリンタテーブル