(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】サーバ及びサーバのためのコンピュータプログラム
(51)【国際特許分類】
H04N 1/00 20060101AFI20241203BHJP
G06F 3/12 20060101ALI20241203BHJP
H04L 67/00 20220101ALI20241203BHJP
【FI】
H04N1/00 127A
G06F3/12 310
G06F3/12 336
H04L67/00
(21)【出願番号】P 2021030720
(22)【出願日】2021-02-26
【審査請求日】2024-01-26
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】宮地 恵佑
【審査官】橘 高志
(56)【参考文献】
【文献】特開2017-068722(JP,A)
【文献】特開2020-170287(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
H04L 67/00
G06F 3/12
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
サーバであって、
通信装置に関する第1種のサービスの提供の開始を指示する第1の指示が取得される場合に、前記通信装置との常時接続を確立する確立部であって、前記常時接続は、前記第1種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用され、前記通信装置との前記常時接続が確立されている状態において、前記通信装置に関する第2種のサービスの提供の開始を指示する第2の指示が取得される場合に、前記通信装置との新たな常時接続は確立されず、前記常時接続は、さらに、前記第2種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用される、前記確立部と、
外部装置から、第1の送信要求を受信する第1の送信要求受信部であって、前記第1の送信要求は、前記第1種のサービスに対応する設定画面を表示するための画面データの送信を要求するための信号である、前記第1の送信要求受信部と、
前記外部装置から前記第1の送信要求が受信される場合に、メモリ内のリストを利用して、前記通信装置に関する前記第2種のサービスが現在提供されているのか否かを判断する第1の判断部であって、前記リストは、前記通信装置に関する前記第1種のサービスの提供状態を示す第1の状態情報と、前記通信装置に関する前記第2種のサービスの提供状態を示す第2の状態情報と、を含む、前記第1の判断部と、
前記第2種のサービスが現在提供されていないと判断される場合に、第1の設定画面を表示するための第1の画面データを前記外部装置に送信する第1の画面データ送信部であって、前記第1の設定画面は、前記常時接続を切断するための切断ボタンを含む、前記第1の画面データ送信部と、
前記第2種のサービスが現在提供されていると判断される場合に、第2の設定画面を表示するための第2の画面データを前記外部装置に送信する第2の画面データ送信部であって、前記第2の設定画面は、前記切断ボタンを含まない、前記第2の画面データ送信部と、
前記外部装置において、前記第1の設定画面に含まれる前記切断ボタンが選択される場合に、前記常時接続を切断する第1の切断部と、
を備える、サーバ。
【請求項2】
前記第1の設定画面は、さらに、前記第1種のサービスの提供を停止するための第1の停止ボタンを含み、
前記第2の設定画面は、前記第1の停止ボタンを含み、
前記サーバは、さらに、
前記外部装置において、前記第1の設定画面又は前記第2の設定画面に含まれる前記第1の停止ボタンが選択される場合に、前記常時接続を切断することなく、前記通信装置に関する前記第1種のサービスの提供を停止するための第1の停止処理を実行する第1の停止処理実行部を備える、請求項1に記載のサーバ。
【請求項3】
前記外部装置は、前記通信装置とは異なる装置であり、
前記サーバは、さらに、
前記通信装置から、第2の送信要求を受信する第2の送信要求受信部であって、前記第2の送信要求は、前記第1種のサービスに対応する設定画面を表示するための画面データの送信を要求するための信号である、前記第2の送信要求受信部と、
前記通信装置から前記第2の送信要求が受信される場合に、前記第2種のサービスがユーザに現在提供されているのか否かに関わらず、第3の設定画面を表示するための第3の画面データを前記通信装置に送信する第3の画面データ送信部であって、前記第3の設定画面は、前記第1種のサービスの提供を停止するための第2の停止ボタンを含む、前記第3の画面データ送信部と、
前記通信装置において、前記第3の設定画面に含まれる前記第2の停止ボタンが選択される場合に、前記メモリ内の前記リストを利用して、前記通信装置に関する前記第2種のサービスが現在提供されているのか否かを判断する第2の判断部と、
前記第2の停止ボタンが選択されることに応じて、前記第2種のサービスが現在提供されていないと判断される場合に、前記常時接続を切断する第2の切断部と、
前記第2の停止ボタンが選択されることに応じて、前記第2種のサービスが現在提供されていると判断される場合に、前記常時接続を切断することなく、前記通信装置に関する前記第1種のサービスの提供を停止するための第2の停止処理を実行する第2の停止処理実行部と、
を備える、請求項1又は2に記載のサーバ。
【請求項4】
前記サーバは、第1のサーバと、前記第1のサーバとは異なる第2のサーバと、を備え、
前記第1のサーバは、前記第1の送信要求受信部と前記第1の判断部と前記第1の画面データ送信部と前記第2の画面データ送信部とを備え、
前記第2のサーバは、前記メモリと前記確立部と前記第1の切断部とを備える、請求項1から3のいずれか一項に記載のサーバ。
【請求項5】
前記第1のサーバは、さらに、
前記外部装置において、前記第1の設定画面に含まれる前記切断ボタンが選択される場合に、停止要求を前記第2のサーバに送信する停止要求送信部を備え、
前記第2のサーバは、さらに、
前記第1のサーバから前記停止要求が受信される場合に、前記メモリ内の前記リストに含まれる前記第1の状態情報を、前記第1種のサービスが提供されていることを示す情報から、前記第1種のサービスが提供されていないことを示す情報に変更する変更部を備える、請求項4に記載のサーバ。
【請求項6】
前記第1のサーバは、さらに、
前記外部装置において、前記第1の設定画面に含まれる前記切断ボタンが選択される場合に、切断要求を前記第2のサーバに送信する切断要求送信部を備え、
前記第2のサーバの前記第1の切断部は、前記第1のサーバから前記切断要求が受信される場合に、前記常時接続を切断するための切断指示を前記通信装置に送信することによって、前記常時接続を切断する、請求項4又は5に記載のサーバ。
【請求項7】
前記第1の設定画面は、さらに、前記第1種のサービスの提供を停止するための第1の停止ボタンを含み、
前記第2の設定画面は、前記第1の停止ボタンを含み、
前記第1のサーバは、さらに、
前記外部装置において、前記第1の設定画面又は前記第2の設定画面に含まれる前記第1の停止ボタンが選択される場合に、停止要求を前記第2のサーバに送信することなく、前記通信装置に関する前記第1種のサービスの提供を停止するための第1の停止処理を実行する第1の停止処理実行部を備える、請求項6に記載のサーバ。
【請求項8】
前記第1種のサービスは、前記サーバが提供を停止させることが可能なサービスであり、
前記第2種のサービスは、前記サーバが提供を停止させることが不可能なサービスである、請求項1から7のいずれか一項に記載のサーバ。
【請求項9】
前記通信装置は、プリンタであり、
前記第1種のサービスは、前記サーバが、画像データを受信する場合に、前記画像データを用いて得られる印刷データを前記プリンタに送信するサービスであり、
前記第2種のサービスは、前記プリンタによって利用される消耗品を発送するサービスである、請求項1から8のいずれか一項に記載のサーバ。
【請求項10】
サーバのためのコンピュータプログラムであって、
前記サーバのコンピュータを、以下の各部、即ち、
通信装置に関する第1種のサービスの提供の開始を指示する第1の指示が取得される場合に、前記通信装置との常時接続を確立する確立部であって、前記常時接続は、前記第1種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用され、前記通信装置との前記常時接続が確立されている状態において、前記通信装置に関する第2種のサービスの提供の開始を指示する第2の指示が取得される場合に、前記通信装置との新たな常時接続は確立されず、前記常時接続は、さらに、前記第2種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用される、前記確立部と、
外部装置から、第1の送信要求を受信する第1の送信要求受信部であって、前記第1の送信要求は、前記第1種のサービスに対応する設定画面を表示するための画面データの送信を要求する信号である、前記第1の送信要求受信部と、
前記外部装置から前記第1の送信要求が受信される場合に、メモリ内のリストを利用して、前記通信装置に関する前記第2種のサービスが現在提供されているのか否かを判断する第1の判断部であって、前記リストは、前記通信装置に関する前記第1種のサービスの提供状態を示す第1の状態情報と、前記通信装置に関する前記第2種のサービスの提供状態を示す第2の状態情報と、を含む、前記第1の判断部と、
前記第2種のサービスが現在提供されていないと判断される場合に、第1の設定画面を表示するための第1の画面データを前記外部装置に送信する第1の画面データ送信部であって、前記第1の設定画面は、前記常時接続を切断するための切断ボタンを含む、前記第1の画面データ送信部と、
前記第2種のサービスが現在提供されていると判断される場合に、第2の設定画面を表示するための第2の画面データを前記外部装置に送信する第2の画面データ送信部であって、前記第2の設定画面は、前記切断ボタンを含まない、前記第2の画面データ送信部と、
前記外部装置において、前記第1の設定画面に含まれる前記切断ボタンが選択される場合に、前記常時接続を切断する第1の切断部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書によって開示される技術は、サービスの提供に関するサーバプッシュ型の通信を実行するサーバに関する。
【背景技術】
【0002】
特許文献1には、複合機と、装置情報収集サーバと、複数のサービスを提供可能なサービス提供サーバと、が開示されている。複合機と装置情報収集サーバとは、XMPP(eXtensible Massaging and Presence Protocolの略)コネクションを確立する。装置情報収集サーバは、複合機からサービスの提供に必要な情報を収集すると共に、XMPPコネクションを利用して通知等を複合機に送信する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術では、複合機と装置情報収集サーバとの間において、複数のサービスを提供するための複数のXMPPコネクションが確立されるのか、複数のサービスを提供するための1つのXMPPコネクションのみが確立されるのか、について明記されていない。
【0005】
本明細書では、複数のサービスの提供に関する通信を通信装置と実行するための1つの常時接続のみが確立されるサーバにおいて、ユーザの意図に反して常時接続が切断されることによってサーバプッシュ型の通信が実行不可能になることを抑制する技術を提供する。
【0006】
本明細書によって開示されるサーバは、通信装置に関する第1種のサービスの提供の開始を指示する第1の指示が取得される場合に、前記通信装置との常時接続を確立する確立部であって、前記常時接続は、前記第1種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用され、前記通信装置との前記常時接続が確立されている状態において、前記通信装置に関する第2種のサービスの提供の開始を指示する第2の指示が取得される場合に、前記通信装置との新たな常時接続は確立されず、前記常時接続は、さらに、前記第2種のサービスの提供に関するサーバプッシュ型の通信を前記通信装置と実行するために利用される、前記確立部と、外部装置から、第1の送信要求を受信する第1の送信要求受信部であって、前記第1の送信要求は、前記第1種のサービスに対応する設定画面を表示するための画面データの送信を要求する信号である、前記第1の送信要求受信部と、前記外部装置から前記第1の送信要求が受信される場合に、メモリ内のリストを利用して、前記通信装置に関する前記第2種のサービスが現在提供されているのか否かを判断する第1の判断部であって、前記リストは、前記通信装置に関する前記第1種のサービスの提供状態を示す第1の状態情報と、前記通信装置に関する前記第2種のサービスの提供状態を示す第2の状態情報と、を含む、前記第1の判断部と、前記第2種のサービスが現在提供されていないと判断される場合に、第1の設定画面を表示するための第1の画面データを前記外部装置に送信する第1の画面データ送信部であって、前記第1の設定画面は、前記常時接続を切断するための切断ボタンを含む、前記第1の画面データ送信部と、前記第2種のサービスが現在提供されていると判断される場合に、第2の設定画面を表示するための第2の画面データを前記外部装置に送信する第2の画面データ送信部であって、前記第2の設定画面は、前記切断ボタンを含まない、前記第2の画面データ送信部と、前記外部装置において、前記第1の設定画面に含まれる前記切断ボタンが選択される場合に、前記常時接続を切断する第1の切断部と、を備えてもよい。
【0007】
上記の構成によると、サーバは、第2種のサービスがユーザに現在提供されていると判断する場合に、切断ボタンを含まない第2の設定画面を外部装置に表示させることができる。このために、サーバは、ユーザの意図に反して常時接続が切断されることに起因して、第2種のサービスに関するサーバプッシュ型の通信が実行不可能になることを抑制することができる。
【0008】
上記のサーバを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記のサーバと他の装置(例えば通信装置、外部装置等)とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0009】
【
図2】メール印刷サービスの提供を受けるための処理のシーケンス図を示す。
【
図4】消耗品サービスの提供を受けるための処理のシーケンス図を示す。
【
図6】設定画面データを端末に送信する処理のシーケンス図を示す。
【
図7】ボタンB3が選択される場合のシーケンス図を示す。
【
図8】ボタンB2又はボタンB4が選択される場合のシーケンス図を示す。
【
図9】設定画面データをプリンタに送信する処理のシーケンス図を示す。
【発明を実施するための形態】
【0010】
(通信システム2の構成;
図1)
図1に示されるように、通信システム2は、プリンタ10と、端末50と、APP(Applicationの略)サーバ60と、XMPP(eXtensible Massaging and Presence Protocolの略)サーバと、サービス提供サーバ(以下では「SPサーバ」と記載する)100と、を備える。プリンタ10及び端末50は、LAN(Local Area Networkの略)8に接続されている。プリンタ10及び端末50は、LAN8を介して相互に通信可能である。LAN8は、有線LAN及び無線LANのどちらであってもよい。LAN8は、インターネット6に接続されている。インターネット6には、APPサーバ60、XMPPサーバ80、及び、SPサーバ100に接続されている。各装置10,50,60,80,100は、インターネット6を介して相互に通信可能である。
【0011】
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺装置(例えば、端末50等の周辺装置)である。プリンタ10は、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ10は、通信インターフェース(以下ではインターフェースを「I/F」と記載する)12と、表示部14と、印刷実行部16と、制御部30と、を備える。
【0012】
通信I/F12は、LAN8に接続されている。通信I/F12は、無線I/Fであってもよいし、有線I/Fであってもよい。表示部14は、いわゆるタッチパネルであり、操作部としても機能する。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構である。
【0013】
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、プリンタ10を識別するIDであるデバイスID「d01」を記憶している。
【0014】
(APPサーバ60の構成)
APPサーバ60は、プリンタ10のベンダによってインターネット6上に設置される。APPサーバ60は、メール印刷サービスを提供するためのサーバである。メール印刷は、電子メールに含まれる画像データによって表わされる画像の印刷をプリンタに実行させる機能である。メール印刷サービスは、APPサーバ60が提供を開始したり停止したりすることが可能なサービスである。換言すると、メール印刷サービスは、APPサーバ60を利用することによって提供されるサービスである。
【0015】
APPサーバ60は、通信I/F62と、制御部70と、を備える。各部62,70は、バス線(符号省略)に接続されている。通信I/F62は、インターネット6に接続されている。制御部70は、CPU72と、メモリ74と、を備える。CPU72は、メモリ74に記憶されているプログラム76に従って、様々な処理を実行する。メモリ74は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ74は、上記のプログラム76の他に、モデルテーブル78を記憶する。
【0016】
モデルテーブル78は、メール印刷サービスに関する情報が登録されるテーブルである。モデルテーブル78は、アカウント情報と、メールアドレスと、サービスアカウントと、デバイスIDと、メール印刷サービスの状態情報と、を関連付けて記憶する。
【0017】
アカウント情報は、メール印刷サービスを利用するユーザのアカウント情報であり、例えば、ユーザID、パスワード等を含む。メールアドレスは、メール印刷サービスを実現するためにプリンタに割り当てられるメールアドレスである。メールアドレスは、APPサーバ60によって生成される。サービスアカウントは、プリンタを管理するための識別情報である。サービスアカウントは、XMPPサーバ80によって生成される。デバイスIDは、プリンタを識別する情報である。メール印刷サービスの状態情報は、プリンタのユーザにメール印刷サービスが提供されているのか否かを示す情報であり、サービスが提供されていることを意味するEnableと、サービスが提供されていないことを意味するDisableのどちらかを示す。
【0018】
(XMPPサーバ80の構成)
XMPPサーバ80は、プリンタ10のベンダによってインターネット6上に設置される。XMPPサーバ80は、様々なサービスの提供に関するサーバプッシュ型の通信をプリンタ10と実行するためのサーバである。
【0019】
XMPPサーバ80は、通信I/F82と、制御部90と、を備える。各部80,90は、バス線(符号省略)に接続されている。通信I/F82は、インターネット6に接続されている。制御部90は、CPU92と、メモリ94と、を備える。CPU92は、メモリ94に記憶されているプログラム96に従って、様々な処理を実行する。メモリ94は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ94は、上記のプログラム96の他に、サービステーブル98を記憶する。
【0020】
サービステーブル98は、プリンタに関する情報が登録されるテーブルである。サービステーブル98は、サービスアカウントと、デバイスIDと、アクセストークンと、メール印刷サービスの状態情報と、消耗品サービスの状態情報と、を関連付けて記憶する。アクセストークンは、プリンタとのXMPPセッションを確立するための認証情報である。消耗品サービスの状態情報は、プリンタのユーザに消耗品自動発送サービスが提供されているのか否かを示す情報であり、サービスが提供されていることを意味するEnableと、サービスが提供されていないことを意味するDisableのどちらかを示す。
【0021】
(SPサーバ100の構成)
SPサーバ100は、消耗品自動発送サービス(以下では「消耗品サービス」と記載する)を提供するためのサーバである。消耗品サービスは、SPサーバ100が提供するものであるので、APPサーバ60が提供を開始したり停止したりすることが不可能なサービスである。換言すると、消耗品サービスは、APPサーバ60を利用することなく提供されるサービスである。SPサーバ100は、プリンタ10のベンダとは異なる事業者によって設置される。変形例では、SPサーバ100は、プリンタ10のベンダによって設置されてもよい。
【0022】
SPサーバ100は、アカウントテーブル108を記憶する。アカウントテーブル108は、プリンタの消耗品サービスに関する情報が登録されるテーブルである。アカウントテーブル108は、アカウント情報と、サービスアカウントと、デバイスIDと、を関連付けて記憶する。アカウント情報は、消耗品サービスを利用するユーザに関する情報であり、例えば、ユーザID、パスワード、氏名、住所、クレジットカード情報等を含む。
【0023】
(メール印刷サービス処理;
図2及び
図3)
図2及び
図3を参照して、メール印刷サービスの提供を受けるための処理について説明する。以下では、各デバイスの各CPU(例えばプリンタ10のCPU32等)が実行する処理について、理解の容易化のために各CPUを主体として記載せずに、各デバイスそのもの(例えばプリンタ10等)を主体として記載する。また、各デバイスによって実行される通信は、各デバイスの通信I/F(例えばプリンタ10の通信I/F12等)を介して実行される。従って、以下では、通信I/Fを介した通信に関する処理を説明する際には、「通信I/Fを介して」という記載を省略する。
【0024】
図2の初期状態では、アカウント情報AC1がAPPサーバ60に既に登録されている。そのため、モデルテーブル78には、アカウント情報AC1が記憶されている。モデルテーブル78では、アカウント情報AC1に関連付けて、メールアドレス、サービスアカウント、及び、デバイスIDがまだ記憶されていないと共に、メール印刷サービスの状態情報としてDisableが記憶されている。
【0025】
端末50は、T10において、ユーザからプリンタ10のIPアドレスの入力を受け付けると、T12において、アクセス要求をプリンタ10に送信する。この結果、端末50は、T14において、プリンタ10からトップ画面データを受信し、T16において、トップ画面を表示する。トップ画面は、プリンタ10の様々な設定を変更するための画面である。トップ画面は、メール印刷サービスを示す設定項目を含む。
【0026】
ユーザは、T18において、メール印刷サービスを選択するとともに、アカウント情報AC1を端末50に入力する。この場合、端末50は、T20において、アカウント情報AC1を含む認証URL(Uniform Resource Locatorの略)要求をプリンタ10に送信する。これにより、認証URL要求が、プリンタ10からAPPサーバ60へ送信される。ここで、認証URL要求は、認証画面データの位置を示す認証URLの送信をAPPサーバ60に要求するコマンドである。
【0027】
APPサーバ60は、T20において、プリンタ10から認証URL要求を受信すると、認証URL要求に含まれるアカウント情報AC1が登録済みであると判断する(即ち認証成功と判断する)。これにより、アカウント情報AC1によるログイン状態が構築される。次いで、APPサーバ60は、T22において、認証URLを含むリダイレクト要求をプリンタ10に送信する。これにより、プリンタ10から端末50にリダイレクト要求が送信される。
【0028】
端末50は、T22において、プリンタ10からリダイレクト要求を受信すると、T24において、リダイレクト要求内の認証URLを含むアクセス要求をAPPサーバ60に送信する。
【0029】
APPサーバ60は、T24において、端末50からアクセス要求を受信すると、モデルテーブル78から、アカウント情報AC1に関連付けられているメール印刷サービス「Disable」を特定する。次いで、APPサーバ60は、T26において、特定済みの「Disable」を示す設定画面を表わす設定画面データを端末50に送信する。
【0030】
端末50は、T26において、APPサーバ60から設定画面データを受信すると、T30において、設定画面データによって表わされる設定画面を表示する。設定画面は、プリンタ10にメール印刷サービスが現在提供されていないことを示す文字列「Status:Disable」と、文字列「Enable」を示すボタンB1と、を含む。ボタンB1は、ユーザがメール印刷サービスの提供を受けることを開始するためのボタンである。端末50は、T32において、ユーザからボタンB1を選択する操作を受け付けると、T34において、登録要求をAPPサーバ60に送信する。
【0031】
APPサーバ60は、T34において、端末50から登録要求を受信すると、T36において、メールアドレスMA1を生成し、アカウント情報AC1に関連付けてメールアドレスMA1をモデルテーブル78に記憶する。次いで、APPサーバ60は、T38において、PINコード及びサービスアカウント要求をXMPPサーバ80に送信する。
【0032】
XMPPサーバ80は、T38において、APPサーバ60からPINコード及びサービスアカウント要求を受信すると、T40において、PINコード及びサービスアカウント「a01」を生成し、サービスアカウント「a01」をサービステーブル98に記憶する。この時点では、サービステーブル98において、サービスアカウント「a01」に関連付けて、デバイスID及びアクセストークンが記憶されていないとともに、メール印刷サービス「Disable」及び消耗品サービス「Disable」が記憶されている。次いで、XMPPサーバ80は、T42において、PINコード及びサービスアカウント「a01」をAPPサーバ60に送信する。
【0033】
APPサーバ60は、T42において、XMPPサーバ80からPINコード及びサービスアカウント「a01」を受信すると、T44において、PINコードを端末50に送信する。次いで、APPサーバ60は、T50において、アカウント情報AC1に関連付けてサービスアカウント「a01」をモデルテーブル78に記憶する。
【0034】
端末50は、T44において、APPサーバ60からPINコードを受信すると、T46において、PINコードを示す文字列を含む画面を表示する。これにより、ユーザは、PINコードを知ることができる。
【0035】
APPサーバ60は、T50でサービスアカウント「a01」を記憶した後に、T52において、サービスアカウント「a01」を含むデバイスID要求をXMPPサーバ80に定期的に送信する。この時点では、XMPPサーバ80において、サービスアカウント「a01」に関連付けてデバイスIDが記憶されていないので、APPサーバ60は、XMPPサーバ80からデバイスIDを受信しない。
【0036】
ユーザは、端末50のPINコードを含む画面を見た後に、プリンタ10を操作して、プリンタ10にPINコードを入力する。プリンタ10は、T60において、PINコードの入力をユーザから受け付けると、T62において、PINコードと、プリンタ10を識別するデバイスID「d01」と、をXMPPサーバ80に送信する。
【0037】
XMPPサーバ80は、T62において、プリンタ10からPINコードとデバイスID「d01」とを受信すると、受信済みのPINコードと
図2のT40で生成されたPINコードとが一致するので、T64において、認証が成功したと判断する。この場合、XMPPサーバ80は、T40でPINコードとともに生成されたサービスアカウント「a01」に関連付けて、デバイスID「d01」をサービステーブル98に記憶する。
【0038】
次いで、XMPPサーバ80は、T66において、アクセストークンATを生成し、サービスアカウント「a01」及びデバイスID「d01」に関連付けて、アクセストークンATをサービステーブル98に記憶する。そして、XMPPサーバ80は、T68において、アクセストークンATをプリンタ10に送信する。
【0039】
プリンタ10は、T68において、XMPPサーバ80からアクセストークンを受信すると、T70において、アクセストークンATを利用して、XMPPサーバ80とのXMPPセッションを確立する。XMPPセッションは、XMPPサーバ80が、プリンタ10が所属するLAN8のファイヤウォールを越えて、サーバプッシュ型の通信をプリンタ10と実行するための常時接続である。
【0040】
XMPPサーバ80は、T70のXMPPセッションの確立が終了すると、T72において、サービスアカウント「a01」、デバイスID「d01」、及び、アクセストークンATに関連付けて、メール印刷サービス「Enable」をサービステーブル98に記憶する。その後、XMPPサーバ80は、T80において、APPサーバ60からデバイスID要求を受信すると、デバイスID要求内のサービスアカウント「a01」に関連付けてデバイスID「d01」を記憶している(T64参照)と判断し、T82において、デバイスID「d01」をAPPサーバ60に送信する。
【0041】
APPサーバ60は、T82において、XMPPサーバ80からデバイスID「d01」を受信すると、T84において、アカウント情報AC1、メールアドレスMA1、及び、サービスアカウント「a01」に関連付けて、デバイスID「d01」及びメール印刷サービス「Enable」を記憶する。
【0042】
APPサーバ60は、T90において、プリンタ10からデバイスID「d01」を含むメールアドレス要求を受信すると、T92において、デバイスID「d01」に関連付けて記憶されているメールアドレスMA1(
図2のT36参照)をプリンタ10に送信する。
【0043】
プリンタ10は、T92において、APPサーバ60からメールアドレスMA1を受信すると、T94において、メールアドレスMA1を表示部14に表示させる。これにより、ユーザは、メールアドレスMA1を知ることができる。
【0044】
次いで、メール印刷を実行するための処理を説明する。T100では、端末50は、ユーザからの指示に従って、メールアドレスMA1を送信先アドレスとして含む電子メールをAPPサーバ60に送信する。電子メールには、印刷対象の画像を表わす画像データが添付されている。
【0045】
APPサーバ60は、T100において、端末50から電子メールを受信すると、まず、モデルテーブル78から、電子メールに含まれるメールアドレスMA1に関連付けられているメール印刷サービスの状態情報を特定する。APPサーバ60は、特定済みの状態情報が「Enable」を示す場合にはT102以降の処理を実行し、特定済みの状態情報が「Disable」を示す場合にはT102以降の処理を実行しない。APPサーバ60は、T102において、電子メールに含まれる画像データを変換して、プリンタ10が解釈可能なデータ形式を有する印刷データを生成する。次いで、APPサーバ60は、モデルテーブル78から、電子メールに含まれるメールアドレスMA1に関連付けて記憶されているサービスアカウント「a01」を特定する。そして、APPサーバ60は、T104において、特定済みのサービスアカウント「a01」と印刷URLとをXMPPサーバ80に送信する。ここで、印刷URLは、印刷データが記憶されているAPPサーバ60内の位置を示す。
【0046】
XMPPサーバ80は、T104において、APPサーバ60からサービスアカウント「a01」及び印刷URLを受信すると、T106において、サービスアカウント「a01」に対応するXMPPセッション(T70参照)を利用して、印刷URLをプリンタ10に送信する。
【0047】
プリンタ10は、T106において、XMPPサーバ80から印刷URLを受信すると、T108において、印刷URLを含むデータ要求をAPPサーバ60に送信する。
【0048】
APPサーバ60は、T108において、プリンタ10からデータ要求を受信すると、データ要求内の印刷URLによって示される印刷データを取得する。そして、APPサーバ60は、T110において、印刷データをプリンタ10に送信する。これにより、T112において、印刷データによって表わされる画像の印刷がプリンタ10によって実行される。
【0049】
(消耗品サービス処理;
図4及び
図5)
図4及び
図5を参照して、消耗品サービスの提供を受けるための処理について説明する。
図4の処理は、
図2及び
図3の処理が実行された後に開始される。従って、
図4の初期状態では、プリンタ10とXMPPサーバ80との間には、XMPPセッションが確立されている(
図3のT70参照)。また、XMPPサーバ80のサービステーブル98には、サービスアカウント「a01」に関連付けて、デバイスID「d01」とアクセストークンATとメール印刷サービス「Enable」と消耗品サービス「Disable」とが記憶されている。
【0050】
端末50は、T120において、ユーザからSPサーバ100のURLの入力を受け付けると、T122において、登録画面要求をSPサーバ100に送信する。
【0051】
SPサーバ100は、T122において、端末50から登録画面要求を受信すると、T124において、登録画面データを端末50に送信する。
【0052】
端末50は、T124において、SPサーバ100から登録画面データを受信すると、T126において、登録画面を表示する。ここで、登録画面は、消耗品サービスの提供を受けるためのアカウント情報を登録するための画面である。ユーザは、T130において、アカウント情報AC2を入力する。アカウント情報AC2は、例えば、ユーザID、パスワード、氏名、住所、クレジットカード情報等を含む。次いで、端末50は、T132において、アカウント情報AC2を含む登録要求をSPサーバ100に送信する。
【0053】
SPサーバ100は、T132において、端末50から登録要求を受信すると、T134において、登録要求に含まれるアカウント情報AC2をアカウントテーブル108に記憶する。この時点では、アカウントテーブル108において、アカウント情報AC2に関連付けて、サービスアカウント及びデバイスIDが記憶されていない。次いで、SPサーバ100は、T136において、サービスアカウント要求をXMPPサーバ80に送信する。
【0054】
XMPPサーバ80は、T136において、SPサーバ100からサービスアカウント要求を受信すると、T138において、サービスアカウント「a02」を生成する。次いで、XMPPサーバ80は、T140において、サービスアカウント「a02」をSPサーバ100に送信する。
【0055】
SPサーバ100は、T140において、XMPPサーバ80からサービスアカウント「a02」を受信すると、T142において、アカウント情報AC2に関連付けてサービスアカウント「a02」をアカウントテーブル108に記憶する。次いで、SPサーバ100は、T144において、PINコード入力画面データを端末50に送信する。これにより、端末50は、T146において、PINコード入力画面を表示する。ここで、PINコード入力画面は、ユーザからのPINコードの入力を受け付けるための画面である。
【0056】
ユーザは、端末50のPINコード入力画面を見た後に、T150において、PINコード表示操作をプリンタ10に実行する。この場合、プリンタ10は、T151において、確認画面を表示する。確認画面は、XMPPサーバ80へのPINコード発行要求の許可をユーザに確認するための画面である。プリンタ10は、T152において、確認画面内のYESボタンの選択を受け付けると、T154において、デバイスID「d01」を含むPINコード要求をXMPPサーバ80に送信する。
【0057】
XMPPサーバ80は、T154において、プリンタ10からPINコード要求を受信すると、T156において、PINコードを生成し、PINコード要求内のデバイスID「d01」とPINコードとを関連付けて記憶しておく。次いで、XMPPサーバ80は、T158において、PINコードをプリンタ10に送信する。
【0058】
プリンタ10は、T158において、XMPPサーバ80からPINコードを受信すると、T160において、PINコードを示す文字列を含む画面を表示部14に表示させる。これにより、ユーザは、PINコードを知ることができる。
【0059】
ユーザは、プリンタ10に表示されたPINコードを見た後に、T170において、端末50のPINコード入力画面(T146参照)にPINコードを入力する。この場合、端末50は、T172において、PINコードをSPサーバ100に送信する。
【0060】
SPサーバ100は、T172において、端末50からPINコードを受信すると、アカウント情報AC2に関連付けて記憶済みのサービスアカウント「a02」(T142参照)を特定し、T174において、PINコードとサービスアカウント「a02」とをXMPPサーバ80に送信する。
【0061】
XMPPサーバ80は、T174において、SPサーバ100からPINコードとサービスアカウント「a02」とを受信すると、受信済みのPINコードとT156で生成されたPINコードとが一致するので、T175において、認証が成功したと判断する。この場合、XMPPサーバ80は、T156でPINコードに関連付けて記憶されたデバイスID「d01」と、サービスアカウント「a02」と、をサービステーブル98に記憶しようとする。しかしながら、サービステーブル98には、サービスアカウント「a01」に関連付けてデバイスID「d01」が既に記憶されている。従って、XMPPサーバ80は、T176において、デバイスID「d01」に関連付けられているサービスアカウントを「a01」から「a02」に変更する。即ち、サービステーブル98では、サービスアカウント「a02」、デバイスID「d01」、アクセストークンAT、メール印刷サービス「Enable」、及び、消耗品サービス「Disable」が関連付けて記憶される。次いで、XMPPサーバ80は、T178において、サービスアカウント「a02」に関連付けられている消耗品サービス「Disable」を「Enable」に変更する。
【0062】
図5に示されるように、XMPPサーバ80は、T180において、サービスアカウントの変更通知をAPPサーバ60に送信する。当該通知は、変更前のサービスアカウント「a01」と、変更後のサービスアカウント「a02」と、を含む。
【0063】
APPサーバ60は、T180において、XMPPサーバ80から変更通知を受信すると、アカウント情報AC1に関連付けられているサービスアカウント「a01」に代えてサービスアカウント「a02」をモデルテーブル78に記憶する。これにより、APPサーバ60とXMPPサーバ80とSPサーバ100との間でサービスアカウント「a02」が共有される。
【0064】
SPサーバ100は、T190において、サービスアカウント「a02」を含むデバイスID要求をXMPPサーバ80に送信する。
【0065】
XMPPサーバ80は、T190において、SPサーバ100からデバイスID要求を受信すると、サービステーブル98から、デバイスID要求内のサービスアカウント「a02」に関連付けられているデバイスID「d01」を特定する。そして、XMPPサーバ80は、T192において、デバイスID「d01」をSPサーバ100に送信する。
【0066】
SPサーバ100は、T192において、XMPPサーバ80からデバイスID「d01」を受信すると、T194において、アカウント情報AC2及びサービスアカウント「a02」に関連付けて、デバイスID「d01」をアカウントテーブル108に記憶する。次いで、SPサーバ100は、T196において、登録完了通知を端末50に送信する。
【0067】
次いで、消耗品自動発送サービスを提供するための処理を説明する。XMPPサーバ80は、SPサーバ100からの指示(図示省略)に応じて、T200において、XMPPセッションを利用して、Subscribeをプリンタ10に送信する。Subscribeは、消耗品情報の送信タイミングを指示するコマンドである。
【0068】
XMPPサーバ80は、Subscribeを送信した後に、T202において、プリンタ10から、消耗品の残量を示す残量情報と、デバイスID「d01」と、を含む消耗品情報を受信する。この場合、XMPPサーバ80は、サービステーブル98から、消耗品情報内のデバイスID「d01」に関連付けられているサービスアカウント「a02」を特定する。次いで、XMPPサーバ80は、T204において、サービスアカウント「a02」を含む消耗品情報をSPサーバ100に送信する。
【0069】
SPサーバ100は、T204において、XMPPサーバ80から消耗品情報を受信すると、T206において、消耗品情報内の残量情報によって示される残量が所定の閾値未満であると判定し、アカウントテーブル108から、消耗品情報内のサービスアカウント「a02」に関連付けられているアカウント情報AC2を特定する。次いで、SPサーバ100は、特定済みのアカウント情報AC2を利用して、新たな消耗品をユーザに発送するための発送処理を実行する。
【0070】
(端末50を利用した設定画面の表示;
図6)
図6を参照して、端末50を利用してメール印刷サービスに関する設定を変更する場合の処理を説明する。
図6の初期状態は、少なくとも
図2及び
図3の処理が実行された後の状態である。即ち、APPサーバ60及びXMPPサーバ80では、デバイスID「d01」に関連付けてメール印刷サービス「Enable」が記憶されている(
図3のT72、T84参照)。
【0071】
図2のT10~T22と同様の処理が実行される。これにより、APPサーバ60において、アカウント情報AC1によるログイン状態が構築される。その後、APPサーバ60は、T210において、端末50から認証URLを含むアクセス要求を受信すると、モデルテーブル78から、ログイン済みのアカウント情報AC1に関連付けられているサービスアカウントを特定する。
図4及び
図5の処理が実行される前に
図6の処理が実行される場合には、APPサーバ60のモデルテーブル78では、アカウント情報AC1に関連付けてサービスアカウント「a01」が記憶されている(
図3のT84参照)。従って、この場合、APPサーバ60は、サービスアカウント「a01」を特定する。一方、
図4及び
図5の処理が実行された後に
図6の処理が実行される場合には、APPサーバ60のモデルテーブル78では、アカウント情報AC1に関連付けてサービスアカウント「a02」が記憶されている(
図5のT180参照)。従って、この場合、APPサーバ60は、サービスアカウント「a02」を特定する。APPサーバ60は、T220において、特定済みのサービスアカウント「a01」又は「a02」を含むサービス状況問合せをXMPPサーバ80に送信する。
【0072】
XMPPサーバ80は、T220において、APPサーバ60からサービス状況問合せを受信すると、サービステーブル98から、サービス状況問合せ内のサービスアカウントに関連付けられている各サービスの状態情報を特定する。具体的には、XMPPサーバ80は、印刷サービス「Enable」を特定する。
図4及び
図5の処理が実行された後に
図6の処理が実行される場合には、XMPPサーバ80は、消耗品サービス「Enable」を特定する。
図4及び
図5の処理が実行される前に
図6の処理が実行される場合には、XMPPサーバ80は、消耗品サービス「Disable」を特定する。次いで、XMPPサーバ80は、T222において、特定済みの各サービスの状態情報をAPPサーバ60に送信する。
【0073】
APPサーバ60は、T222において、XMPPサーバ80から各サービスの状態情報を受信すると、T224において、消耗品サービスが現在提供されているのか否かを判断する。APPサーバ60は、受信済みの消耗品サービスの状態情報が「Disable」を示す場合には、T244において、消耗品サービスが現在提供されていないと判断し(T224でNO)、T230に進む。一方、APPサーバ60は、受信済みの消耗品サービスの状態情報が「Enable」を示す場合には、T244において、消耗品サービスが現在提供されていると判断し(T224でYES)、T240に進む。
【0074】
APPサーバ60は、T230において、第1の設定画面を表わす設定画面データを端末50に送信する。その結果、端末50は、T232において、第1の設定画面を表示する。第1の設定画面は、メール印刷サービスが現在提供されていることを示す文字列「Status:Enable」と、文字列「Disable」を示すボタンB2と、文字列「Reset」を示すボタンB3と、を含む。ここで、ボタンB2は、XMPPセッションを切断することなくメール印刷サービスの停止を要求するためのボタンである。ボタンB3は、XMPPセッションを切断するためのボタンである。
【0075】
APPサーバ60は、T240において、第2の設定画面を表わす設定画面データを端末50に送信する。その結果、端末50は、T242において、第2の設定画面を表示する。第2の設定画面は、メール印刷サービスが現在提供されていることを示す文字列「Status:Enable」と、文字列「Disable」を示すボタンB4と、を含む。ボタンB4は、ボタンB2と同じボタンである。第2の設定画面は、ボタンB3を含まない。このように、APPサーバ60は、消耗品サービスが現在提供されていると判断する場合(T224でYES)に、XMPPセッションを切断するためのボタンB3を含まない第2の設定画面を端末50に表示させることができる。このために、APPサーバ60は、ユーザの意図に反してXMPPセッションが切断されることに起因して、消耗品サービスに関するサーバプッシュ型の通信(例えばSubscribeの送信)が実行不可能になることを抑制することができる。
【0076】
また、APPサーバ60は、消耗品サービスが現在提供されているのか否かに関わらず、XMPPセッションを切断することなくメール印刷サービスの停止を要求するための各ボタンB2,B4を含む各設定画面を端末50に表示させることができる。そのため、ユーザは、メール印刷サービスの停止をAPPサーバ60に要求することができる。
【0077】
(具体的なケース;
図7及び
図8)
続いて、
図7及び
図8を参照して、
図6の処理の後に実現される具体的なケースを説明する。先ず、
図7を参照して、
図6のT232で表示される第1の設定画面内のボタンB3が選択される場合の処理を説明する。次いで、
図8を参照して、T232で表示される第1の設定画面内のボタンB2が選択される場合、又は、T242で表示される第2の設定画面内のボタンB4が選択される場合の処理を説明する。
【0078】
(ボタンB3が選択される場合;
図7)
端末50は、T250において、ユーザから第1の設定画面内のボタンB3の選択を受け付けると、T252において、リセット要求をAPPサーバ60に送信する。本実施例では、アカウント情報AC1を利用してAPPサーバ60にログイン済みであるので(
図2のT20参照)、リセット要求は、アカウント情報AC1を含まない。ただし、変形例では、リセット要求は、アカウント情報AC1を含んでいてもよい。また、別の変形例では、リセット要求は、デバイスID「d01」を含んでいてもよい。この場合、デバイスID「d01」は、
図2のT20において、プリンタ10からAPPサーバ60に送信され、その後、APPサーバ60から端末50に送信される各信号は、デバイスID「d01」を含む。このため、端末50は、デバイスID「d01」を含むリセット要求を送信することができる。
【0079】
上述したように、第1の設定画面が端末50で表示されるということは、
図4及び
図5の処理が実行される前に
図6の処理が実行されたことを意味する。この場合、APPサーバ60のモデルテーブル78では、アカウント情報AC1に関連付けてサービスアカウント「a01」が記憶されている(
図3のT84参照)。APPサーバ60は、T252において、端末50からリセット要求を受信すると、モデルテーブル78から、ログイン済みのアカウント情報AC1に関連付けられているサービスアカウント「a01」を特定する。次いで、APPサーバ60は、T254において、サービスアカウント「a01」を含むdeleteservice信号をXMPPサーバ80に送信する。当該信号は、メール印刷サービスの状態情報を「Enable」から「Disable」に変更することを要求する信号である。変形例では、当該信号は、サービスアカウント「a01」に代えて、デバイスID「d01」を含んでもよい。即ち、当該信号は、対象サービスを識別するための情報を含んでいればよい。
【0080】
XMPPサーバ80は、T254において、deleteservice信号を受信すると、T256において、サービスアカウント「a01」に関連付けてサービステーブル98に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。このように、deleteservice信号が通信されることに応じて、XMPPサーバ80に記憶されるメール印刷サービスの状態情報を「Disable」に適切に変更することができる。
【0081】
APPサーバ60は、T260において、サービスアカウント「a01」(即ちアカウント情報AC1)に関連付けてモデルテーブル78に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。これにより、APPサーバ60は、XMPPセッションを切断することなく、メール印刷サービスの提供を停止することができる。
【0082】
T270~T280は、
図6のT220~T224と同様である。T270~T280は、各サービスの状態情報を再確認するために実行される。T280でNOの場合にはT282に進み、T280でYESの場合にはT300に進む。
【0083】
APPサーバ60は、T282において、サービスアカウント「a01」を含むdeletedevice信号をXMPPサーバ80に送信する。当該信号は、サービスアカウント「a01」に関連付けられるデバイスID「d01」によって特定されるプリンタ10とのXMPPセッションの切断を要求する信号である。
【0084】
XMPPサーバ80は、T282において、APPサーバ60からdeletedevice信号を受信すると、T284において、XMPPセッションを利用して、XMPPセッションの切断指示をプリンタ10に送信する。その結果、プリンタ10は、T286において、XMPPセッションを切断する。これにより、XMPPサーバ80とプリンタ10との間のXMPPセッションが切断される。プリンタ10に関する全てのサービスの提供が停止されたので、サーバプッシュ型の通信をプリンタ10と実行する必要がないからである。これにより、プリンタ10及びXMPPサーバ80の間の通信負荷が軽減されるとともに、プリンタ10及びXMPPサーバ80のそれぞれの処理負荷が軽減される。XMPPサーバ80は、XMPPセッションが切断される場合に、プリンタ10(即ち、デバイスID「d01」)に関連付けられている情報をサービステーブル98(
図3のT72参照)から削除してもよい。
【0085】
次いで、XMPPサーバ80は、T288において、切断完了通知をAPPサーバ60に送信する。
【0086】
APPサーバは、T288において、XMPPサーバ80から切断完了通知を受信すると、切断完了通知を端末50に送信する。その結果、端末50は、T290において、切断完了画面を表示する。切断完了画面は、XMPPサーバ80とのXMPPセッションが切断されたことを示すメッセージを含む。
【0087】
図示省略しているが、端末50は、T288の処理の後に、
図2のT26と同様に、APPサーバ60から設定画面データを受信すると、T30と同じ設定画面を表示する。ユーザが設定画面内の文字列「Enable」を示すボタンB1を選択する操作を実行すると、T32以降の処理が再び実行される。
【0088】
APPサーバ60は、T280において、消耗品サービスが現在提供されていると判断される場合(T280でYES)には、XMPPセッションを切断することなく、T300において、停止完了通知を端末50に送信する。その結果、端末50は、T302において、停止完了画面を表示する。停止完了画面は、メール印刷サービスの提供が停止されたことを示すメッセージを含む。
【0089】
図示省略しているが、端末50は、T302の処理の後に、
図2のT26と同様に、APPサーバ60から設定画面データを受信すると、T30と同じ設定画面を表示する。端末50は、ユーザから、設定画面内の文字列「Enable」を示すボタンを選択する操作を受け付けると、有効要求をAPPサーバ60に送信する。当該要求は、メール印刷サービスの状態情報を「Disable」から「Enable」に変更することを要求する信号である。APPサーバ60は、端末50から有効要求を受信すると、モデルテーブル78において、ログイン済みのアカウント情報AC1(
図2のT20参照)に関連付けられているメール印刷サービスの状態情報を「Disable」から「Enable」に変更する。そして、APPサーバ60は、モデルテーブル78から、ログイン済みのアカウント情報AC1に関連付けられているサービスアカウント「a01」を特定する。次いで、APPサーバ60は、特定済みのサービスアカウント「a01」を含む有効要求をXMPPサーバ80に送信する。XMPPサーバ80は、APPサーバ60から有効要求を受信すると、サービスアカウント「a01」に関連付けてサービステーブル98に記憶されているメール印刷サービスの状態情報を「Disable」から「Enable」に変更する。
【0090】
(ボタンB2又はボタンB4が選択される場合;
図8)
図8に示されるように、端末50は、T310において、ユーザから第1の設定画面内のボタンB2又は第2の設定画面内のボタンB4の選択を受け付けると、T312において、停止要求を送信する。本実施例では、アカウント情報AC1を利用してAPPサーバ60にログイン済みであるので(
図2のT20参照)、停止要求は、アカウント情報AC1を含まない。ただし、変形例では、停止要求は、アカウント情報AC1又はデバイスID「d01」を含んでいてもよい。
【0091】
APPサーバ60は、T312において、端末50から停止要求を受信すると、T314において、ログイン済みのアカウント情報AC1に関連付けてモデルテーブル78に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。これにより、APPサーバ60は、XMPPセッションを切断することなく、メール印刷サービスの提供を停止することができる。従って、ユーザは、仮にメール印刷サービス以外のサービスを受けている場合には、そのサービスの提供を継続して受けることができる。
【0092】
次いで、APPサーバ60は、T316において、停止完了通知を端末50に送信する。その結果、端末50は、T320において、停止完了画面を表示する。停止完了画面は、メール印刷サービスの提供が停止されたことを示すメッセージを含む。
【0093】
ここで、
図8の処理では、APPサーバ60は、deleteservice信号をXMPPサーバ80に送信しない。そのため、XMPPサーバ80のサービステーブル98では、メール印刷サービス「Enable」が維持される。このため、ユーザがメール印刷サービスの提供の再開を希望する場合に、メール印刷サービスの提供に係る処理を簡素化することができる。具体的には、ユーザが
図2のT32でボタンB1を選択することに応じてT34の登録要求がAPPサーバ60に送信されれば、APPサーバ60のモデルテーブル78において、アカウント情報AC1に関連付けられているメール印刷サービスの状態情報が「Disable」から「Enable」に変更される。この場合、
図2のT36~
図3の94の処理が実行されなくても、ユーザは、メール印刷サービスの提供を受けることができる。
【0094】
図示省略しているが、端末50は、T320の処理の後に、
図2のT26と同様に、APPサーバ60から設定画面データを受信すると、T30と同じ設定画面を表示する。端末50は、ユーザから、設定画面内の文字列「Enable」を示すボタンを選択する操作を受け付けると、有効要求をAPPサーバ60に送信する。APPサーバ60は、端末50から有効要求を受信すると、モデルテーブル78において、ログイン済みのアカウント情報AC1(
図2のT20参照)に関連付けられているメール印刷サービスの状態情報を「Disable」から「Enable」に変更する。
【0095】
(プリンタ10を利用した設定画面の表示;
図9及び
図10)
続いて、
図9を参照して、プリンタ10を利用してメール印刷サービスに関する設定を変更する場合の処理を説明する。
図9の初期状態は、少なくとも
図2及び
図3の処理が実行された後の状態である。
【0096】
プリンタ10は、T330において、ユーザからメニュー画面表示操作を受け付けると、T332において、メニュー画面を表示する。メニュー画面は、プリンタ10に印刷を実行させる印刷ボタンと、プリンタ10にスキャンを実行させるスキャンボタンと、メール印刷サービスに関する画面を表示させるメール印刷サービスボタンB5と、を含む。プリンタ10は、T334において、ユーザから、メール印刷サービスボタンB5の選択を受け付けると、T336において、設定画面データ要求をAPPサーバ60に送信する。
【0097】
APPサーバ60は、T336において、プリンタ10から設定画面データ要求を受信する。そして、APPサーバ60は、T338において、消耗品サービスが現在提供されているのか否かに関わらず、T338において、設定画面データをプリンタ10に送信する。
【0098】
プリンタ10は、T338において、APPサーバ60から設定画面データを受信すると、T339において、第3の設定画面を表示する。第3の設定画面は、文字列「reset」を示すボタンB6と、Enable/Disableボタンと、サービス説明ボタンと、を含む。ここで、ボタンB6は、XMPPセッションを切断するためのボタンである。Enable/Disableボタンは、メール印刷サービスの提供状態の変更を要求するためのボタンである。Enable/Disableボタンは、メール印刷サービスが現在有効状態である場合には、無効状態に変更することを要求し、現在無効状態である場合には、有効状態に変更することを要求するためのボタンである。サービス説明ボタンは、メール印刷サービスのサービス内容を説明する画面の表示を要求するためのボタンである。
【0099】
ここで、
図6において説明したように、端末50を利用してメール印刷サービスに関する設定を変更する際には、APPサーバ60は、消耗品サービスの提供状況に応じて、ボタンB3(即ちresetボタン)を含む第1の設定画面(
図6のT232参照)と、ボタンB3(即ちresetボタン)を含まない第2の設定画面(T242参照)と、のいずれかを端末50に表示させている。仮に、プリンタ10を利用してメール印刷サービスに関する設定を変更する際にも、消耗品サービスの提供状況に応じてresetボタンの表示の有無が変更される場合、ユーザは、プリンタ10において、resetボタンが表示されていない画面と、resetボタンが表示されている画面と、を見分ける必要がある。しかしながら、プリンタ10の表示部は、端末50と比べてディスプレイが小さく、視認性が比較的に低い。そのため、プリンタ10において、ユーザは、resetボタンが表示されていない画面と、resetボタンが表示されている画面と、を見分けることができない可能性がある。これを避けるために、プリンタ10を利用してメール印刷サービスに関する設定を変更する際には、消耗品サービスが現在提供されているのか否かに関わらず、ボタンB6(即ちresetボタン)を含む第3の設定画面をプリンタ10に表示させる(
図9のT339参照)。そのため、ユーザは、resetボタンの表示の有無を見分ける必要がない。従って、プリンタ10に表示される画面の視認性が比較的に向上する。
【0100】
プリンタ10は、T340において、第3の設定画面内のボタンB6の選択を受け付けると、T341において、画面データ要求をAPPサーバ60に送信する。
【0101】
APPサーバ60は、T341において、プリンタから画面データ要求を受信すると、T342において、確認画面データをプリンタ10に送信する。その結果、プリンタ10は、T344において、確認画面を表示する。確認画面は、メール印刷サービスの提供を受けることを停止するのか否かをユーザに確認するための画面である。プリンタ10は、T344において、確認画面内のボタンB7(即ちYESボタン)の選択を受け付けると、T348において、デバイスID「d01」を含む停止要求をAPPサーバ60に送信する。
【0102】
APPサーバ60は、T348において、プリンタ10から停止要求を受信すると、モデルテーブル78から、停止要求内のデバイスID「d01」に関連付けられているサービスアカウント「a01」又は「a02」を特定する。そして、APPサーバ60は、T350において、特定済みのサービスアカウントを含むサービス状況問合せをXMPPサーバ80に送信する。その後のT352及びT354は、
図6のT222及びT224と同様である。T354でNOの場合にはT360に進み、T354でYESの場合にはT380に進む。
【0103】
APPサーバ60は、T360において、サービスアカウント「a01」を含むdeletedevice信号と、サービスアカウント「a01」を含むdeleteservice信号と、をXMPPサーバ80に送信する。deletedevice信号は、メール印刷サービスの状態情報を「Enable」から「Disable」に変更することを要求する信号である。deletedevice信号は、サービスアカウント「a01」に関連付けられるデバイスID「d01」によって特定されるプリンタ10とのXMPPセッションの切断を要求する信号である。
【0104】
次いで、APPサーバ60は、T362において、サービスアカウント「a01」(即ちデバイスID「d01」)に関連付けてモデルテーブル78に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。これにより、APPサーバ60は、XMPPセッションを切断することなく、メール印刷サービスの提供を停止することができる。
【0105】
XMPPサーバ80は、T360において、APPサーバ60からdeleteservice信号及びdeletedevice信号を受信すると、deleteservice信号に従って、T364において、サービスアカウント「a01」に関連付けてサービステーブル98に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。そして、XMPPサーバ80は、deletedevice信号に従って、T366において、XMPPセッションを利用して、XMPPセッションの切断指示をプリンタ10に送信する。その結果、T368において、XMPPセッションが切断される。これにより、プリンタ10とXMPPサーバ80との間の通信負荷が軽減されるとともに、プリンタ10及びXMPPサーバ80のそれぞれの処理負荷が軽減される。
【0106】
APPサーバ60は、T370において、切断完了画面データをプリンタ10に送信する。その結果、プリンタ10は、T372において、切断完了画面を表示する。切断完了画面は、XMPPサーバ80とのXMPPセッションが切断されたことを示すメッセージを含む。
【0107】
APPサーバ60は、T354において、消耗品サービスが現在提供されていると判断する場合(T354でYES)には、T380において、サービスアカウント「a02」(即ちデバイスID「d01」)に関連付けてモデルテーブル78に記憶されているメール印刷サービスの状態情報を「Enable」から「Disable」に変更する。これにより、APPサーバ60は、XMPPセッションを切断することなく、メール印刷サービスの提供を停止することができる。従って、ユーザは、消耗品サービスの提供を継続して受けることができる。
【0108】
次いで、APPサーバ60は、T382において、停止完了画面データをプリンタ10に送信する。その結果、プリンタ10は、T384において、停止完了画面を表示する。停止完了画面は、メール印刷サービスの提供が停止され、消耗品サービスの提供が継続されていることを示すメッセージを含む。
【0109】
ここで、APPサーバ60は、T354でYESと判断する場合には、deleteservice信号をXMPPサーバ80に送信しない。そのため、XMPPサーバ80のサービステーブル98では、メール印刷サービス「Enable」が維持される。このため、ユーザがメール印刷サービスの提供の再開を所望する場合に、メール印刷サービスの提供に係る処理を簡素化することができる。
【0110】
変形例では、APPサーバ60は、T380の処理の後に、deleteservice信号をXMPPサーバ80に送信してもよい。この場合、XMPPサーバ80のサービステーブル98には、メール印刷サービス「Enable」に代えて「Disable」が記憶される。本変形例では、メール印刷サービスの状態情報がAPPサーバ60とXMPPサーバ80との間で共有される。
【0111】
(対応関係)
APPサーバ60及びXMPPサーバ80の組み合わせが、「サーバ」の一例である。APPサーバ60、XMPPサーバ80が、それぞれ、「第1のサーバ」、「第2のサーバ」の一例である。プリンタ10、端末50が、それぞれ、「通信装置」、「外部装置」の一例である。メール印刷サービス、消耗品自動発送サービスが、それぞれ、「第1種のサービス」、「第2種のサービス」の一例である。
図2のT34の登録要求、
図4のT132の登録要求が、それぞれ、「第1の指示」、「第2の指示」の一例である。XMPPセッションが、「常時接続」の一例である。
図3のT106、
図5のT200が、それぞれ、「第1種のサービスの提供に関するサーバプッシュ型の通信」、「第2種のサービスの提供に関するサーバプッシュ型の通信」の一例である。
図6のT210のアクセス要求、
図9のT336の設定画面データ要求が、それぞれ、「第1の送信要求」、「第2の送信要求」の一例である。メモリ94、サービステーブル98が、それぞれ、「メモリ」、「リスト」の一例である。メモリ94内のメール印刷サービスの状態情報、メモリ94内の消耗品自動発送サービスの状態情報が、それぞれ、「第1の状態情報」、「第2の状態情報」の一例である。
図6のT230の設定画面データ、T240の設定画面データ、
図9のT338の設定画面データが、それぞれ、「第1の画面データ」、「第2の画面データ」、「第3の画面データ」の一例である。ボタンB3が、「切断ボタン」の一例である。文字列「Disable」を示すボタン(即ち、ボタンB2及びボタンB4)、ボタンB5が、それぞれ、「第1の停止ボタン」、「第2の停止ボタン」の一例である。deleteservice信号、deletedevice信号が、それぞれ、「停止要求」、「切断要求」の一例である。Enable、Disableが、それぞれ、「第1種のサービスが提供されていることを示す情報」、「第1種のサービスが提供されていないことを示す情報」の一例である。
【0112】
図3のT70が、「確立部」によって実行される処理の一例である。
図6のT210、
図9のT336が、それぞれ、「第1の送信要求受信部」、「第2の送信要求受信部」によって実行される処理の一例である。
図6のT224、
図9のT354が、それぞれ、「第1の判断部」「第2の判断部」によって実行される処理の一例である。
図6のT230、T240、
図9のT338が、それぞれ、「第1の画面データ送信部」、「第2の画面データ送信部」、「第3の画面データ送信部」によって実行される処理の一例である。
図7のT284、
図10のT366が、それぞれ、「第1の切断部」、「第2の切断部」によって実行される処理の一例である。
図8のT314、
図10のT380が、それぞれ、「第1の停止処理実行部」、「第2の停止処理実行部」によって実行される処理の一例である。
図7のT254が、「停止要求送信部」によって実行される処理の一例である。
図7のT256が、「変更部」によって実行される処理の一例である。
図7のT282が、「切断要求送信部」によって実行される処理の一例である。
【0113】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0114】
(変形例1)APPサーバ60は、
図9のT336において、プリンタ10から設定画面データ要求を受信する場合に、消耗品サービスが現在提供されているのか否かを判断し、消耗品サービスが現在提供されていない場合には、
図6のT230の設定画面データをプリンタ10に送信し、消耗品サービスが現在提供されている場合には、T240の設定画面データをプリンタ10に送信してもよい。本変形例では、プリンタ10、上記の設定画面データ要求、前者の設定画面データ、後者の設定画面データが、それぞれ、「外部装置」、「第1の送信要求」、「第1の画面データ」、「第2の画面データ」の一例である。特に、本変形例では、「外部装置」と「通信装置」とが同一のデバイスである。
【0115】
(変形例2)APPサーバ60は、
図6のT230において、ボタンB2を含まない設定画面を表わす設定画面データを端末50に送信してもよい。また、APPサーバ60は、T240において、ボタンB4を含まない設定画面を表わす設定画面データを端末50に送信してもよい。一般的に言うと、「第1の設定画面」及び「第2の設定画面」のそれぞれは、「第1の停止ボタン」を含まなくてもよい。本変形例では、「第1の停止処理実行部」を省略可能である。
【0116】
(変形例3)プリンタ10は、
図9のT336の操作を受け付けないように構成されていてもよい。即ち、
図9の処理が実行されなくてもよい。本変形例では、「第2の送信要求受信部」、「第3の画面データ送信部」、「第2の判断部」、「第2の切断部」、及び、「第2の停止処理実行部」を省略可能である。
【0117】
(変形例4)APPサーバ60は、
図9のT336において、プリンタ10から設定画面データ要求を受信する場合に、消耗品サービスが現在提供されているのか否かを判断し、消耗品サービスが現在提供されていない場合には、「Reset」ボタンを含む設定画面データを送信し、消耗品サービスが現在提供されている場合には、「Reset」ボタンを含まない設定画面データをプリンタ10に送信してもよい。一般的に言うと、「サーバ」は、通信装置から第2の送信要求が受信される場合に、第2種のサービスがユーザに提供されているのか否かに応じて、通信装置に送信する画面データを変えてもよい。
【0118】
(変形例5)APPサーバ60及びXMPPサーバ80は、1個のサーバによって実現されてもよい。本変形例では、「第1のサーバ」の「停止要求送信部」、「切断要求送信部」、及び、「第1の停止処理実行部」を省略可能であり、「第2のサーバ」の「変更部」を省略可能である。別の変形例では、「サーバ」は、3個以上のサーバによって構成されてもよい。
【0119】
(変形例6)APPサーバ60は、
図8のT310において、ボタンB2又はボタンB4が選択される場合に、deleteservice信号をXMPPサーバ80に送信してもよい。本変形例では、XMPPサーバ80のサービステーブル98には、メール印刷サービス「Enable」に代えて「Disable」が記憶される。一般的に言うと、「第1のサーバ」の「第1の停止処理実行部」は、「停止要求」を第2のサーバに送信してもよい。
【0120】
(変形例7)「第1種のサービス」は、メール印刷サービスに限られず、他の種類のサービスであってもよい。例えば、当該他の種類のサービスは、プリンタの情報を収集して、プリンタの管理者に当該情報を提供する情報収集サービスであってもよい。例えば、当該他の種類のサービスは、電子メールを利用せずに端末から画像データを受信して、印刷データをプリンタに送信するリモート印刷サービスであってもよい。例えば、当該他の種類のサービスは、消耗品自動発送サービスであってもよい。また、一般的に言うと、「第1種のサービス」は、「第1のサーバ」を利用することによって提供されるサービスであってもよい。「第2種のサービス」は、消耗品自動発送サービスに限られず、他の種類のサービスであってもよい。例えば、当該他の種類のサービスは、プリンタ10における印刷媒体の使用枚数に応じた金額をユーザに課金する課金サービスであってもよい。例えば、当該他の種類のサービスは、メール印刷サービス、リモート印刷サービス、情報収集サービス等であってもよい。また、一般的に言うと、「第2種のサービス」は、「第1のサーバ」を利用することなく提供されるサービスであってもよい。
【0121】
(変形例8)
図6で引用する
図2のT18において、ユーザは、メール印刷サービスを選択するのみであってよい。即ち、ユーザは、アカウント情報AC1の入力を省略することができる。本変形例では、T20において、端末50は、認証URL要求をプリンタ10に送信し、プリンタ10は、デバイスID「d01」を含む認証URL要求をAPPサーバ60に送信する。この場合、APPサーバ60は、T22において、デバイスID「d01」を含むURLを端末50に送信し、
図6のT210において、端末50から当該URLを含むアクセス要求を受信する。そして、APPサーバ60は、T220において、デバイスID「d01」を含むサービス状況問合せをXMPPサーバ80に送信する。
【0122】
(変形例9)「通信装置」は、プリンタ10でなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0123】
(変形例10)上記の実施例では、
図2~
図10の各処理がソフトウェアによって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0124】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0125】
2:通信システム、6:インターネット、8:LAN、10:プリンタ、12:通信I/F、14:表示部、16:印刷実行部、30:制御部、32:CPU、34:メモリ、36:プログラム、50:端末、60:APPサーバ、62:通信I/F、70:制御部、72:CPU、74:メモリ、76:プログラム、78:モデルテーブル、80:APPサーバ、82:通信I/F、90:制御部、92:CPU、94:メモリ、96:プログラム、98:モデルテーブル、100:サービス提供サーバ、108:アカウントテーブル