JP2021157626A - 通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ - Google Patents
通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ Download PDFInfo
- Publication number
- JP2021157626A JP2021157626A JP2020058720A JP2020058720A JP2021157626A JP 2021157626 A JP2021157626 A JP 2021157626A JP 2020058720 A JP2020058720 A JP 2020058720A JP 2020058720 A JP2020058720 A JP 2020058720A JP 2021157626 A JP2021157626 A JP 2021157626A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- communication device
- server
- service
- identification information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】通信装置と仲介サーバとの間の通信負荷が高くなるのを抑制するための技術を提供すること。【解決手段】通信装置は、特定の場合に、第1の常時接続と第2の常時接続とのうちの第1の常時接続のみが確立されている単一確立状態を構築する。特定の場合は、第1の常時接続が確立されている状態において、第2の確立指示が受け付けられる場合と、第2の常時接続が確立されている状態において、第1の確立指示が受け付けられる場合と、のうちの少なくとも一方の場合を含む。通信装置は、単一確立状態が構築されている間に、第2のサービスに関連する第3の処理を通信装置に実行させるための第3の実行指示が第2のサービス提供サーバから仲介サーバに送信される場合に、仲介サーバから、第1の常時接続を利用して、第2のサービスに関連する第3の処理要求を受信し、第3の処理を実行する。【選択図】図6
Description
本明細書では、通信装置と仲介サーバとの間で常時接続が確立される技術を開示する。
特許文献1には、複数の画像形成装置と仲介装置とプリントサーバとを備えるシステムが開示されている。複数の画像形成装置と仲介装置とは、同じイントラネット内に存在する。仲介装置とインターネット上のプリントサーバとの間に常時接続が確立される。プリントサーバは、指定済みの画像処理装置のための印刷ジョブを生成すると、常時接続を利用して、印刷要求転送指示を仲介装置に送信する。この場合、仲介装置は、印刷要求を上記の指定済みの画像処理装置に送信する。これにより、画像処理装置は、プリントサーバから印刷ジョブを受信して印刷を実行することができる。
特許文献1には、画像形成装置が1個のプリントサーバのみからサービスの提供を受けることが開示されている。特許文献1では、画像形成装置が複数のサーバから複数のサービスの提供を受けることについて考慮されていない。
本明細書では、通信装置が複数のサービス提供サーバから複数のサービスの提供を受けることができる状況において、通信装置と仲介サーバとの間の通信負荷が高くなるのを抑制するための技術を提供する。
本明細書によって開示される通信装置は、第1のサービス提供サーバから第1のサービスの提供を受けるための第1の確立指示が受け付けられる場合に、インターネットを介した第1の常時接続を仲介サーバと確立する第1の確立部と、前記第1の常時接続が確立されている間に、前記第1のサービスに関連する第1の処理を前記通信装置に実行させるための第1の実行指示が前記第1のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の処理要求を受信する第1の処理要求受信部と、前記仲介サーバから前記第1の処理要求が受信される場合に、前記第1の処理を実行する第1の処理実行部と、前記第1のサービス提供サーバとは異なる前記第2のサービス提供サーバから第2のサービスの提供を受けるための第2の確立指示が受け付けられる場合に、前記インターネットを介した第2の常時接続を前記仲介サーバと確立する第2の確立部と、前記第2の常時接続が確立されている間に、前記第2のサービスに関連する第2の処理を前記通信装置に実行させるための第2の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第2の常時接続を利用して、前記第2のサービスに関連する第2の処理要求を受信する第2の処理要求受信部と、前記仲介サーバから前記第2の処理要求が受信される場合に、前記第2の処理を実行する第2の処理実行部と、特定の場合に、前記第1の常時接続と前記第2の常時接続とのうちの前記第1の常時接続のみが確立されている単一確立状態を構築する構築部であって、前記特定の場合は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が受け付けられる場合と、前記第2の常時接続が確立されている状態において、前記第1の確立指示が受け付けられる場合と、のうちの少なくとも一方の場合を含む、前記構築部と、前記単一確立状態が構築されている間に、前記第2のサービスに関連する第3の処理を前記通信装置に実行させるための第3の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第2のサービスに関連する第3の処理要求を受信する第3の処理要求受信部と、前記仲介サーバから前記第3の処理要求が受信される場合に、前記第3の処理を実行する第3の処理実行部と、を備えてもよい。
上記の構成によると、通信装置は、上記の特定の場合に、第1の常時接続と第2の常時接続とのうちの第1の常時接続のみが確立されている単一確立状態を構築する。そして、通信装置は、単一確立状態が構築されている間に、第3の実行指示が第2のサービス提供サーバから仲介サーバに送信される場合に、仲介サーバから、第1の常時接続を利用して、第2のサービスに関連する第3の処理要求を受信する。このために、上記の特定の場合に第1及び第2の常時接続の双方が確立されている状態が維持される構成と比べると、通信装置と仲介サーバとの間の通信負荷が高くなるのを抑制することができる。
本明細書によって開示される仲介サーバのためのコンピュータプログラムは、前記仲介サーバのコンピュータを、以下の各部、即ち、第1のサービス提供サーバから第1のサービスの提供を受けるための第1の確立指示が通信装置によって受け付けられる場合に、インターネットを介した第1の常時接続を前記通信装置と確立する第1の確立部と、前記第1の常時接続が確立されている間に、前記第1のサービス提供サーバから、前記第1のサービスに関連する第1の処理を前記通信装置に実行させるための第1の実行指示を受信する第1の実行指示受信部と、前記第1のサービス提供サーバから前記第1の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の処理要求を前記通信装置に送信する第1の処理要求送信部であって、前記第1の処理要求は、前記通信装置に前記第1の処理を実行させるための要求である、前記第1の処理要求送信部と、前記第1のサービス提供サーバとは異なる前記第2のサービス提供サーバから第2のサービスの提供を受けるための第2の確立指示が前記通信装置によって受け付けられる場合に、前記インターネットを介した第2の常時接続を前記通信装置と確立する第2の確立部と、前記第2の常時接続が確立されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第2の処理を前記通信装置に実行させるための第2の実行指示を受信する第2の実行指示受信部と、前記第2のサービス提供サーバから前記第2の実行指示が受信される場合に、前記第2の常時接続を利用して、前記第2のサービスに関連する第2の処理要求を前記通信装置に送信する第2の処理要求送信部であって、前記第2の処理要求は、前記通信装置に前記第2の処理を実行させるための要求である、前記第2の処理要求送信部と、単一確立状態が構築されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第3の処理を前記通信装置に実行させるための第3の実行指示を受信する第3の実行指示受信部であって、前記単一確立状態は、特定の場合に、前記通信装置によって構築され、前記特定の場合は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が前記通信装置によって受け付けられる場合と、前記第2の常時接続が確立されている状態において、前記第1の確立指示が前記通信装置によって受け付けられる場合と、のうちの少なくとも一方の場合を含む、前記第3の実行指示受信部と、前記第2のサービス提供サーバから前記第3の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第2のサービスに関連する第3の処理要求を前記通信装置に送信する第3の処理要求送信部であって、前記第3の処理要求は、前記通信装置に前記第3の処理を実行させるための要求である、前記第3の処理要求送信部と、として機能させてもよい。
上記の構成によると、上記の特定の場合に第1の常時接続と第2の常時接続とのうちの第1の常時接続のみが確立されている単一確立状態が構築される。そして、仲介サーバは、単一確立状態が構築されている間に、第2のサービス提供サーバから第3の実行指示を受信する場合に、第1の常時接続を利用して、第2のサービスに関連する第3の処理要求を通信装置に送信する。このために、上記の特定の場合に第1及び第2の常時接続の双方が確立されている状態が維持される構成と比べると、通信装置と仲介サーバとの間の通信負荷が高くなるのを抑制することができる。
上記の通信装置のためのコンピュータプログラム、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体、及び、上記の通信装置によって実行される方法も新規で有用である。上記の仲介サーバのためのコンピュータプログラムを記憶するコンピュータ可読記録媒体、上記の仲介サーバによって実行される方法、及び、上記の仲介サーバそのものも新規で有用である。また、上記の通信装置と上記の仲介サーバとを備えるシステムも新規で有用である。
(通信システム2の構成:図1)
図1に示されるように、通信システム2は、複数個のプリンタ10A,10B等と、PC80と、仲介サーバ100と、複数個のサービス提供サーバ200,300と、を備える。各デバイス10A等は、インターネット4に接続されており、インターネット4を介して相互に通信可能である。以下では、サービス提供サーバのことを「SP(Service Providingの略)サーバ」と記載する。PC80は、プリンタ10A等のユーザによって利用される端末装置である。
図1に示されるように、通信システム2は、複数個のプリンタ10A,10B等と、PC80と、仲介サーバ100と、複数個のサービス提供サーバ200,300と、を備える。各デバイス10A等は、インターネット4に接続されており、インターネット4を介して相互に通信可能である。以下では、サービス提供サーバのことを「SP(Service Providingの略)サーバ」と記載する。PC80は、プリンタ10A等のユーザによって利用される端末装置である。
本実施例では、プリンタ10Aが各SPサーバ200,300からサービスの提供を受けるために、プリンタ10Aと仲介サーバ100との間に常時接続であるXMPP(eXtensible Messaging and Presence Protocolの略)接続が確立される。XMPP接続は、インターネット4側に存在する仲介サーバ100が、プリンタ10Aから対象データの送信を要求する要求信号を受信することなく、プリンタ10Aが所属するLAN(Local Area Networkの略)のファイヤウォールを越えて対象データを送信するための接続である。具体的には、XMPP接続が確立されている状態では、接続を維持するための維持信号がプリンタ10Aから仲介サーバ100に定期的に送信される。従って、仲介サーバ100は、維持信号に対する応答として対象データを送信することによって、ファイヤウォールを越えて対象データを送信することができる。
ここで、仮に、プリンタ10AがSPサーバ200からサービスの提供を受けるために、プリンタ10Aと仲介サーバ100との間に第1のXMPP接続が確立され、かつ、プリンタ10AがSPサーバ300からサービスの提供を受けるために、プリンタ10Aと仲介サーバ100との間に第2のXMPP接続が確立される状況を想定する。第1及び第2のXMPP接続の双方が同時的に確立されている状態では、プリンタ10Aと仲介サーバ100との間において、第1のXMPP接続に対応する上記の維持信号の通信と、第2のXMPP接続に対応する上記の維持信号の通信と、の双方が定期的に実行される。このために、プリンタ10Aと仲介サーバ100との間の通信負荷が高い。本実施例では、プリンタ10Aと仲介サーバ100との間の通信負荷が高くなるのを抑制する技術を開示する。
(プリンタ10Aの構成:図2)
続いて、図2を参照して、各デバイス10A,100,200,300の構成を説明する。まず、プリンタ10Aの構成を説明する。プリンタ10B等の他のプリンタは、プリンタ10Aと同様の構成を備える。プリンタ10Aは、印刷機能を実行可能な周辺装置(即ちPC等の周辺装置)である。プリンタ10Aは、操作部12と表示部14と印刷実行部16とネットワークインターフェース18と制御部30とを備える。
続いて、図2を参照して、各デバイス10A,100,200,300の構成を説明する。まず、プリンタ10Aの構成を説明する。プリンタ10B等の他のプリンタは、プリンタ10Aと同様の構成を備える。プリンタ10Aは、印刷機能を実行可能な周辺装置(即ちPC等の周辺装置)である。プリンタ10Aは、操作部12と表示部14と印刷実行部16とネットワークインターフェース18と制御部30とを備える。
操作部12は、ユーザによって操作される複数のキーを備える。表示部14は、様々な情報を表示するためのディスプレイである。表示部14は、いわゆるタッチパネル(即ち操作部)として機能してもよい。印刷実行部16は、インクジェット方式又はレーザ方式の印刷機構を備える。印刷実行部16は、インク、トナー等の色材である消耗品を利用して、画像の印刷を実行する。ネットワークインターフェース18は、LANを介してインターネット4に接続される。
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム40に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、上記のプログラム40に加えて、サービステーブル50を記憶する。サービステーブル50では、サービス情報とデバイスIDとアクセストークンとが対応付けて記憶される。
サービス情報は、各SPサーバ200,300によって提供されるサービスの種類を示す情報である。具体的には、サービス情報は、SPサーバ200によって提供される消耗品発注サービスを示す情報(図2の「消耗品発注」参照)と、SPサーバ300によって提供されるメール印刷サービスを示す情報(図2の「メール印刷」参照)と、のどちらかを示す。
デバイスIDは、プリンタ10Aを識別する情報である。デバイスIDは、プリンタ10Aの出荷時からプリンタ10Aに予め記憶されている情報であってもよいし、プリンタ10Aが出荷された後にプリンタ10Aによって生成される情報であってもよい。本実施例では、サービス情報「消耗品発注」に対応するデバイスID「D1」と、サービス情報「メール印刷」に対応するデバイスID「D2」と、が存在する。デバイスID「D2」は、デバイスID「D1」とは異なる。デバイスID「D1」は、プリンタ10AがSPサーバ200から消耗品発注サービスの提供を受けるためのデバイスIDである。デバイスID「D2」は、プリンタ10BがSPサーバ300からメール印刷サービスの提供を受けるためのデバイスIDである。
アクセストークンは、仲介サーバ100とのXMPP接続を確立するための認証情報である。アクセストークンは、仲介サーバ100によって生成され、仲介サーバ100からプリンタ10Aに送信される。従って、プリンタ10Aが仲介サーバ100との通信を開始する前の状態では、サービステーブル50には、サービス情報とデバイスIDとが記憶されており、アクセストークンが記憶されていない。以下では、アクセストークンのことを簡単に「トークン」と記載することがある。
(仲介サーバ100の構成)
仲介サーバ100は、各プリンタ10A,10B等と各SPサーバ200,300との間の通信を仲介するサーバである。仲介サーバ100は、各プリンタ10A,10B等のベンダによってインターネット4に設置される。変形例では、仲介サーバ100は、当該ベンダとは異なる事業者によって設置されてもよい。
仲介サーバ100は、各プリンタ10A,10B等と各SPサーバ200,300との間の通信を仲介するサーバである。仲介サーバ100は、各プリンタ10A,10B等のベンダによってインターネット4に設置される。変形例では、仲介サーバ100は、当該ベンダとは異なる事業者によって設置されてもよい。
仲介サーバ100は、ネットワークインターフェース118と制御部130とを備える。ネットワークインターフェース118は、インターネット4に接続されている。制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム140に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134は、上記のプログラム140に加えて、デバイステーブル150を記憶する。デバイステーブル150では、デバイスIDと対応IDとユーザIDとサーバIDとトークンとが対応付けて記憶される。
上述したように、プリンタ10Aは、2個のデバイスID「D1」,「D2」を有する。対応ID(例えば最上欄の「D2」)は、当該対応IDに対応付けられているデバイスID(例えば最上欄の「D1」)を有するプリンタが存在する場合に、当該プリンタが有する他方のデバイスIDである。即ち、デバイスID(例えば最上欄の「D1」)と、当該デバイスIDに対応付けられている対応ID(例えば最上欄の「D2」)と、の組合せは、1個のプリンタ(例えば10A)が有する2個のデバイスIDである。
ユーザIDは、SPサーバ(例えば200)がプリンタのユーザを識別する情報である。ただし、ユーザIDは、ユーザによって認識される情報ではなく、サービスの提供を受けるプリンタのユーザを識別するために、SPサーバ及び仲介サーバ100によって利用される情報である。ユーザIDは、SPサーバによって生成され、SPサーバから仲介サーバ100に送信される。
サーバIDは、SPサーバ(例えば200)を識別する情報である。本実施例では、SPサーバ200のサーバID「SV1」と、SPサーバ300のサーバID「SV2」と、が存在する。
(SPサーバ200の構成)
SPサーバ200は、消耗品発注サービスを提供するサーバである。消耗品発注サービスは、各プリンタ10A等から仲介サーバ100を介して消耗品の残量を示す消耗品情報を受信し、消耗品の残量が閾値以下である場合に、新品の消耗品を発送するための処理を実行するサービスである。SPサーバ200は、各プリンタ10A,10B等のベンダによってインターネット4に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。
SPサーバ200は、消耗品発注サービスを提供するサーバである。消耗品発注サービスは、各プリンタ10A等から仲介サーバ100を介して消耗品の残量を示す消耗品情報を受信し、消耗品の残量が閾値以下である場合に、新品の消耗品を発送するための処理を実行するサービスである。SPサーバ200は、各プリンタ10A,10B等のベンダによってインターネット4に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。
SPサーバ200は、アカウントテーブル210を備える。アカウントテーブル210では、アカウント情報とユーザIDとデバイスIDとが対応付けて記憶される。アカウント情報は、ユーザ名及びパスワードを含む認証情報である。アカウントテーブル210内のアカウント情報は、ユーザによって生成される情報、即ち、ユーザによって認識される情報である。
(SPサーバ300の構成)
SPサーバ300は、メール印刷サービスを提供するサーバである。メール印刷サービスは、印刷対象の画像を表わす画像データが添付された電子メールを受信し、仲介サーバ100を介して当該画像の印刷をプリンタ(例えば10A)に実行させるサービスである。SPサーバ300は、各プリンタ10A,10B等のベンダによってインターネット4に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。
SPサーバ300は、メール印刷サービスを提供するサーバである。メール印刷サービスは、印刷対象の画像を表わす画像データが添付された電子メールを受信し、仲介サーバ100を介して当該画像の印刷をプリンタ(例えば10A)に実行させるサービスである。SPサーバ300は、各プリンタ10A,10B等のベンダによってインターネット4に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。
SPサーバ300は、アカウントテーブル310を備える。アカウントテーブル310では、アカウント情報とユーザIDとデバイスIDとメールアドレスとが対応付けて記憶される。アカウントテーブル310内のアカウント情報は、ユーザによって認識される情報ではなく、SPサーバ300によって生成される情報である。メールアドレスは、プリンタに印刷を実行させるための画像データが添付された電子メールの送信先の電子メールアドレスである。
(各デバイス10A等によって実行される処理:図3〜図9)
続いて、図3〜図9を参照して、各デバイス10A等よって実行される処理を説明する。以下では、理解の容易さの観点から、CPU(例えば32,132)によって実行される処理を説明する際に、CPUを主体として説明せずに、デバイス(例えばプリンタ10A,仲介サーバ100)を主体として説明する。
続いて、図3〜図9を参照して、各デバイス10A等よって実行される処理を説明する。以下では、理解の容易さの観点から、CPU(例えば32,132)によって実行される処理を説明する際に、CPUを主体として説明せずに、デバイス(例えばプリンタ10A,仲介サーバ100)を主体として説明する。
(消耗品発注サービスに加入するための処理:図3)
まず、図3を参照して、メール印刷サービスに加入する前に、消耗品発注サービスに加入するケースAの処理を説明する。図3の初期状態では、プリンタ10Aのサービステーブル50には、サービス情報とデバイスIDとが記憶されており、トークンが記憶されていない。また、SPサーバ200のアカウントテーブル210には、アカウント情報「AC1」が登録されている。アカウント情報「AC1」は、プリンタ10AのユーザがPC80等の端末装置を利用してSPサーバ200に予め登録した情報である。アカウントテーブル210には、アカウント情報「AC1」に対応付けてユーザID及びデバイスIDが記憶されていない。
まず、図3を参照して、メール印刷サービスに加入する前に、消耗品発注サービスに加入するケースAの処理を説明する。図3の初期状態では、プリンタ10Aのサービステーブル50には、サービス情報とデバイスIDとが記憶されており、トークンが記憶されていない。また、SPサーバ200のアカウントテーブル210には、アカウント情報「AC1」が登録されている。アカウント情報「AC1」は、プリンタ10AのユーザがPC80等の端末装置を利用してSPサーバ200に予め登録した情報である。アカウントテーブル210には、アカウント情報「AC1」に対応付けてユーザID及びデバイスIDが記憶されていない。
PC80は、T100において、ユーザから消耗品発注サービスに加入するための操作を受け付ける。当該操作は、SPサーバ200のURL(Uniform Resource Locatorの略)を入力する操作と、アカウント情報「AC1」を入力する操作と、を含む。この場合、PC80は、T102において、アカウント情報「AC1」を含むサービス加入要求をSPサーバ200に送信する。
SPサーバ200は、T102において、PC80からサービス加入要求を受信すると、サービス加入要求に含まれるアカウント情報「AC1」の認証を実行する。具体的には、SPサーバ200は、アカウント情報「AC1」がアカウントテーブル210に登録済みであるのか否かを判断する。本ケースでは、SPサーバ200は、登録済みである(即ち認証成功)と判断し、T110において、SPサーバ200のサーバID「SV1」を含むユーザID要求を仲介サーバ100に送信する。
仲介サーバ100は、T110において、SPサーバ200からユーザID要求を受信すると、T120において、ユーザID「U1」を生成し、T122において、ユーザID「U1」をSPサーバ200に送信する。
SPサーバ200は、T122において、仲介サーバ100からユーザID「U1」を受信すると、T130において、認証が成功したアカウント情報「AC1」に対応付けてユーザID「U1」をアカウントテーブル210に記憶する。次いで、SPサーバ200は、T140において、PIN(Personal Identification Numberの略)コード要求を仲介サーバ100に送信する。
仲介サーバ100は、T140において、SPサーバ200からPINコード要求を受信すると、T150において、PINコード「P1」を生成し、T152において、PINコード「P1」をSPサーバ200に送信する。次いで、仲介サーバ100は、T154において、T110で受信済みのユーザID要求に含まれるサーバID「SV1」と、T120で生成済みのユーザID「U1」と、T150で生成済みのPINコード「P1」と、を対応付けて、メモリ134内の一時記憶領域に記憶する。
SPサーバ200は、T152において、仲介サーバ100からPINコード「P1」を受信すると、T160において、PINコード「P1」を含む画面データをPC80に送信する。
PC80は、T160において、SPサーバ200から画面データを受信すると、T170において、画面データによって表わされる画面を表示する。当該画面は、PINコード「P1」を所望のプリンタに入力すべきことを示すメッセージを含む。これにより、ユーザは、消耗品発注サービスの提供を受けるためのPINコード「P1」を知ることができ、当該PINコード「P1」をプリンタ10Aに入力すればよいことを知ることができる。
(図3の続きの処理:図4)
図4に示されるように、プリンタ10Aは、T200において、ユーザから消耗品発注サービスに加入するための操作を受け付ける。当該操作は、消耗品発注サービスに対応するボタンを選択する操作と、PINコード「P1」を入力する操作と、を含む。この場合、プリンタ10Aは、まず、サービステーブル50に1個のトークンも記憶されていないと判断する。即ち、プリンタ10Aは、消耗品発注サービス及びメール印刷サービスのどちらにも未加入であると判断する。この場合、プリンタ10Aは、T202において、サービステーブル50に記憶されている2個のデバイスID「D1」,「D2」を含む登録要求を仲介サーバ100に送信する。
図4に示されるように、プリンタ10Aは、T200において、ユーザから消耗品発注サービスに加入するための操作を受け付ける。当該操作は、消耗品発注サービスに対応するボタンを選択する操作と、PINコード「P1」を入力する操作と、を含む。この場合、プリンタ10Aは、まず、サービステーブル50に1個のトークンも記憶されていないと判断する。即ち、プリンタ10Aは、消耗品発注サービス及びメール印刷サービスのどちらにも未加入であると判断する。この場合、プリンタ10Aは、T202において、サービステーブル50に記憶されている2個のデバイスID「D1」,「D2」を含む登録要求を仲介サーバ100に送信する。
仲介サーバ100は、T202において、プリンタ10Aから登録要求を受信すると、T210において、登録要求に含まれる2個のデバイスID「D1」,「D2」をメモリ134内の一時記憶領域に記憶する。
プリンタ10Aは、さらに、サービステーブル50から、T200で指示された消耗品発注サービスを示すサービス情報「消耗品発注」に対応付けられているデバイスID「D1」を特定する。そして、プリンタ10Aは、T220において、T200で入力済みのPINコード「P1」と、特定済みのデバイスID「D1」と、を含む認証要求を仲介サーバ100に送信する。
仲介サーバ100は、T220において、プリンタ10Aから認証要求を受信すると、認証要求に含まれるPINコード「P1」の認証を実行する。具体的には、仲介サーバ100は、PINコード「P1」を記憶済みであるのか否かを判断する。本ケースでは、図3のT154において、PINコード「P1」がメモリ134に記憶されているので、仲介サーバ100は、T230において、記憶済みである(即ち認証成功)と判断する。
仲介サーバ100は、認証成功と判断すると、T232において、トークン「T1」を生成する。トークン「T1」は、プリンタ10Aが消耗品発注サービスの提供を受けるために、プリンタ10Aと仲介サーバ100との間で確立されるべきXMPP接続を識別する接続ID「C1」を含む。そして、仲介サーバ100は、T234において、トークン「T1」をプリンタ10Aに送信する。ここで、仲介サーバ100は、T220で受信済みの認証要求に対する応答として、トークン「T1」をプリンタ10Aに送信する。このために、仲介サーバ100は、XMPP接続を利用しなくても、プリンタ10Aが所属するLANのファイヤウォールを越えて、トークン「T1」をプリンタ10Aに送信することができる。
次いで、仲介サーバ100は、T236において、新たな情報をデバイステーブル150に記憶する。具体的には、仲介サーバ100は、T220で受信済みの認証要求に含まれるデバイスID「D1」をデバイステーブル150内のデバイスIDとして記憶し、T210でデバイスID「D1」と共に記憶されたデバイスID「D2」をデバイステーブル150内の対応IDとして記憶する。このように、プリンタ10Aを識別する2個のデバイスID「D1」,「D2」がプリンタ10Aから仲介サーバ100に送信され、仲介サーバ100において、デバイスID「D1」とデバイスID「D2」とが対応付けて記憶される。このために、仲介サーバ100は、これらのデバイスIDが同じプリンタ10Aに割り当てられていることを認識することができる。従って、仲介サーバ100は、各SPサーバ200,300からデバイスID「D1」又は「D2」を含む指示を受信する場合に、当該指示に応じた要求をプリンタ10Aに適切に送信することができる。仲介サーバ100は、さらに、メモリ134内の一時記憶領域から、T230で認証が成功した「P1」に対応付けられているユーザID「U1」及びサーバID「SV1」(図3のT154参照)を特定する。そして、仲介サーバ100は、特定済みのユーザID「U1」及びサーバID「SV1」をデバイステーブル150に記憶する。仲介サーバ100は、さらに、T232で生成済みのトークン「T1」をデバイステーブル150に記憶する。
プリンタ10Aは、T234において、仲介サーバ100からトークン「T1」を受信すると、T240において、トークン「T1」を利用して、XMPP接続を仲介サーバ100と確立する。具体的には、プリンタ10Aは、トークン「T1」を含む要求信号を仲介サーバ100に送信する。
仲介サーバ100は、プリンタ10Aから要求信号を受信すると、要求信号に含まれるトークン「T1」を記憶済みである(T236参照)と判断し(即ち認証成功と判断し)、接続確立を許可することを示す応答信号をプリンタ10Aに送信する。
プリンタ10Aは、仲介サーバ100から応答信号を受信すると、接続を維持するための維持信号を仲介サーバ100に定期的に送信する。当該維持信号は、トークン「T1」内の接続ID「C1」を含む。これにより、プリンタ10Aと仲介サーバ100との間にXMPP接続が確立される。以下では、当該XMPP接続のことを「第1のXMPP接続」と記載する。また、図4以降では、第1のXMPP接続が利用される通信を示す矢印を太線で表現する。
プリンタ10Aは、T240において、第1のXMPP接続を確立すると、T242において、サービス情報「消耗品発注」及びデバイスID「D1」に対応付けて、T234で受信済みのトークン「T1」をサービステーブル50に記憶する。
一方、SPサーバ200は、図3のT160において、画面データをPC80に送信した後に、図3のT130で記憶済みのユーザID「U1」を含むデバイスID要求を仲介サーバ100に定期的に送信する(図4のT250参照)。
仲介サーバ100は、T240において、第1のXMPP接続を確立した後に、T250において、SPサーバ200からデバイスID要求を受信すると、デバイステーブル150から、デバイスID要求に含まれるユーザID「U1」に対応付けられているデバイスID「D1」を特定する。そして、仲介サーバ100は、T252において、特定済みのデバイスID「D1」をSPサーバ200に送信する。
SPサーバ200は、T252において、仲介サーバ100からデバイスID「D1」を受信すると、T260において、T250で送信済みのデバイスID要求に含まれるユーザID「U1」に対応付けてデバイスID「D1」をアカウントテーブル210に記憶する。
次いで、SPサーバ200は、T270において、T260で記憶済みのデバイスID「D1」を要求先IDとして含むSubscribe指示を仲介サーバ100に送信する。Subscribe指示は、プリンタ10Aが消耗品情報を送信すべきタイミング(例えば所定時刻等)を示すタイミング情報を含む。
仲介サーバ100は、T270において、SPサーバ200からSubscribe指示を受信すると、デバイステーブル150から、Subscribe指示に含まれるデバイスID「D1」に対応付けられているトークン「T1」を特定する。仲介サーバ100は、さらに、トークン「T1」に含まれる接続ID「C1」を特定することによって、接続ID「C1」によって識別される第1のXMPP接続を特定する。このように、仲介サーバ100においてデバイスID「D1」とトークン「T1」(即ち接続ID「C1」)とが対応付けて記憶されるので、仲介サーバ100は、第1のXMPP接続を特定することができる。このために、仲介サーバ100は、第1の常時接続を利用して、Subscribe指示に従った要求をプリンタ10Aに適切に送信することができる。換言すると、プリンタ10Aは、第1の常時接続を利用して、Subscribe指示に従った要求を適切に受信することができる。
次いで、仲介サーバ100は、T272において、特定済みの第1のXMPP接続を利用して、Subscribe要求をプリンタ10Aに送信する。即ち、仲介サーバ100は、接続ID「C1」を含む維持信号に対する応答として、Subscribe要求をプリンタ10Aに送信する。Subscribe要求は、上記のタイミング情報を含む。Subscribe要求は、さらに、特定済みの接続ID「C1」を送信先IDとして含むと共に、T270で受信済みのSubscribe指示に含まれるデバイスID「D1」を要求先IDとして含む。ここで、送信先IDは、要求の送信に利用されるXMPP接続を識別するIDであり、要求先IDは、当該要求を実行すべきデバイスを識別するIDである。このために、仲介サーバ100は、接続ID「C1」によって識別される第1のXMPP接続を利用して要求を送信して、デバイスID「D1」に対応する処理(即ち消耗品発注サービスに対応する処理)をプリンタ10Aに適切に実行させることができる。換言すると、プリンタ10Aは、第1のXMPP接続を利用して要求を受信して、消耗品発注サービスに対応する処理を適切に実行することができる。Subscribe要求は、プリンタ10Aと仲介サーバ100との間に確立され得る他のXMPP接続(即ち後述の第2のXMPP接続)を識別する接続IDと、プリンタ10Aを識別する他のデバイスID「D2」と、を含まない。
プリンタ10Aは、T272において、仲介サーバ100からSubscribe要求を受信すると、Subscribe要求に含まれるタイミング情報をメモリ34に記憶する。そして、プリンタ10Aは、T280において、当該タイミング情報に従って、デバイスID「D1」を送信元IDとして含む消耗品情報を仲介サーバ100に定期的に送信する。このように、消耗品情報がデバイスID「D1」を含むので、消耗品情報が、デバイスID「D1」によって識別されるプリンタ10Aの情報であることを通知することができる。消耗品情報は、第1のXPPP接続が利用されて送信されるのではなく、HTTP(Hyper Text Transfer Protocolの略)に従って送信される。
仲介サーバ100は、T280において、プリンタ10Aから消耗品情報を受信すると、T282において、消耗品情報をSPサーバ200に送信する。
SPサーバ200は、T282において、仲介サーバ100から消耗品情報を受信すると、図示省略の処理を実行する。具体的には、SPサーバ200は、消耗品情報によって示される消耗品の残量が閾値以下であるのか否かを判断する。SPサーバ200は、閾値以下であると判断する場合に、アカウントテーブル210から、消耗品情報に含まれるデバイスID「D1」に対応付けられているアカウント情報を特定する。図示省略しているが、SPサーバ200は、さらに、アカウント情報と発送先情報(例えば住所、氏名等)とを対応付けて記憶するテーブルを備える。SPサーバ200は、特定済みのアカウント情報に対応付けられている発送先情報を利用して、新品の消耗品を発送するための処理(例えば作業員に対する発送指示等)を実行する。これにより、消耗品を自動的に発注するための消耗品発注サービスが実現される。
(消耗品発注サービスへの加入後にメール印刷サービスに加入するための処理:図5)
続いて、図5を参照して、図3及び図4の処理によって消耗品発注サービスに加入した後に、メール印刷サービスに加入するための処理を説明する。図5の初期状態では、SPサーバ300のアカウントテーブル310には、プリンタ10Aのユーザに対応する情報がなにも登録されていない。
続いて、図5を参照して、図3及び図4の処理によって消耗品発注サービスに加入した後に、メール印刷サービスに加入するための処理を説明する。図5の初期状態では、SPサーバ300のアカウントテーブル310には、プリンタ10Aのユーザに対応する情報がなにも登録されていない。
プリンタ10Aは、T300において、ユーザからメール印刷サービスに加入するための操作を受け付ける。当該操作は、メール印刷サービスに加入するためのボタンを選択する操作を含む。この場合、プリンタ10Aは、T302において、サービス加入要求をSPサーバ300に送信する。サービス加入要求は、アカウント情報を含まない。
SPサーバ300は、T302において、プリンタ10Aからサービス加入要求を受信すると、T304において、アカウント情報「AC2」を生成し、アカウント情報「AC2」をアカウントテーブル310に記憶する。次いで、SPサーバ300は、T310において、SPサーバ300のサーバID「SV2」を含むユーザID要求を仲介サーバ100に送信する。
仲介サーバ100は、T310において、SPサーバ300からユーザID要求を受信すると、T320において、ユーザID「U1」とは異なるユーザID「U2」を生成し、T322において、ユーザID「U2」をSPサーバ300に送信する。
SPサーバ300は、T322において、仲介サーバ100からユーザID「21」を受信すると、T330において、T304で記憶済みのアカウント情報「AC1」に対応付けてユーザID「U2」をアカウントテーブル310に記憶する。次いで、SPサーバ300は、T340において、PINコード要求を仲介サーバ100に送信する。
仲介サーバ100は、T340において、SPサーバ300からPINコード要求を受信すると、T350において、PINコード「P2」を生成し、T352において、PINコード「P2」をSPサーバ300に送信する。次いで、仲介サーバ100は、T354において、T310で受信済みのユーザID要求に含まれるサーバID「SV2」と、T320で生成済みのユーザID「U2」と、T350で生成済みのPINコード「P2」と、を対応付けて、メモリ134内の一時記憶領域に記憶する。
SPサーバ300は、T352において、仲介サーバ100からPINコード「P2」を受信すると、T360において、T302で受信済みのサービス加入要求に対する応答として、PINコード「P2」をプリンタ10Aに送信する。
プリンタ10Aは、T360において、SPサーバ300からPINコード「P2」を受信すると、サービステーブル50にトークン「T1」が記憶されている(図4のT242参照)と判断する。即ち、プリンタ10Aは、消耗品発注サービスに加入済みであると判断する。この場合、プリンタ10Aは、2個のデバイスID「D1」,「D2」を含む登録要求(図4のT202参照)を仲介サーバ100に送信しない。2個のデバイスID「D1」,「D2」が仲介サーバ100に既に記憶されている(図4のT236参照)からである。
次いで、プリンタ10Aは、サービステーブル50から、T300で指示されたメール印刷サービスを示すサービス情報「メール印刷」に対応付けられているデバイスID「D2」を特定する。そして、プリンタ10Aは、T370において、T360で受信済みのPINコード「P2」と、特定済みのデバイスID「D2」と、を含む認証要求を仲介サーバ100に送信する。
仲介サーバ100は、T370において、プリンタ10Aから認証要求を受信すると、認証要求に含まれるPINコード「P2」の認証を実行する。当該認証の手法は、図4のT230と同様である。本ケースでは、仲介サーバ100は、T380において、認証成功と判断する。この場合、仲介サーバ100は、T382において、トークン「T2」を生成する。トークン「T2」は、プリンタ10Aがメール印刷サービスの提供を受けるために、プリンタ10Aと仲介サーバ100との間で確立されるべきXMPP接続を識別する接続ID「C2」を含む。接続ID「C2」は、接続ID「C1」とは異なる。このために、トークン「T2」は、トークン「T1」とは異なる。そして、仲介サーバ100は、T384において、T370で受信済みの認証要求に対する応答として、トークン「T2」をプリンタ10Aに送信する。
次いで、仲介サーバ100は、T386において、新たな情報をデバイステーブル150に記憶する。具体的には、仲介サーバ100は、T370で受信済みの認証要求に含まれるデバイス「D2」をデバイステーブル150内のデバイスIDとして記憶する。また、仲介サーバ100は、デバイステーブル150から、対応ID「D2」に対応付けられているデバイスID「D1」を特定し、特定済みのデバイス「D1」をデバイステーブル150内の対応IDとして記憶する。仲介サーバ100は、さらに、メモリ134内の一時記憶領域から、T380で認証が成功した「P2」に対応付けられているユーザID「U2」及びサーバID「SV2」(T354参照)を特定する。そして、仲介サーバ100は、特定済みのユーザID「U2」及びサーバID「SV2」を記憶する。仲介サーバ100は、さらに、T382で生成済みのトークン「T2」を記憶する。
(図5の続きの処理:図6)
プリンタ10Aは、図5のT384において、仲介サーバ100からトークン「T2」を受信すると、図6のT400において、トークン「T2」を利用して、XMPP接続を仲介サーバ100と確立する。当該XMPP接続を確立する手法は、図4のT240で第1のXMPP接続を確立する手法と同様である。これにより、プリンタ10Aは、接続を維持するための維持信号を仲介サーバ100に定期的に送信する。当該維持信号は、トークン「T2」内の接続ID「C2」を含む。以下では、T400で確立されるXMPP接続のことを「第2のXMPP接続」と記載する。また、図4以降では、第2のXMPP接続が利用される通信を示す矢印を破線で表現する。
プリンタ10Aは、図5のT384において、仲介サーバ100からトークン「T2」を受信すると、図6のT400において、トークン「T2」を利用して、XMPP接続を仲介サーバ100と確立する。当該XMPP接続を確立する手法は、図4のT240で第1のXMPP接続を確立する手法と同様である。これにより、プリンタ10Aは、接続を維持するための維持信号を仲介サーバ100に定期的に送信する。当該維持信号は、トークン「T2」内の接続ID「C2」を含む。以下では、T400で確立されるXMPP接続のことを「第2のXMPP接続」と記載する。また、図4以降では、第2のXMPP接続が利用される通信を示す矢印を破線で表現する。
プリンタ10Aは、T400において、第2のXMPP接続を確立すると、T402において、サービス情報「メール印刷」及びデバイスID「D2」に対応付けて、T402の受信済みのトークン「T2」をサービステーブル50に記憶する。
T410〜T420は、ユーザID「U2」及びデバイスID「D2」が利用される点を除くと、図4のT250〜T260と同様である。次いで、プリンタ10Aは、T430において、デバイスID「D2」を含むアドレス要求を仲介サーバ100に送信する。
仲介サーバ100は、T430において、プリンタ10Aからアドレス要求を受信すると、T432において、アドレス要求をSPサーバ300に送信する。
SPサーバ300は、T432において、仲介サーバ100からアドレス要求を受信すると、T434において、メールアドレス「MMM」を生成し、アドレス要求に含まれるデバイスID「D2」に対応付けてメールアドレス「MMM」をアカウントテーブル310に記憶する。次いで、SPサーバ300は、T440において、メールアドレス「MMM」を含むアドレス印刷指示を仲介サーバ100に送信する。アドレス印刷指示は、さらに、アドレス要求に含まれるデバイスID「D2」を要求先IDとして含む。
仲介サーバ100は、T440において、SPサーバ300からアドレス印刷指示を受信すると、デバイステーブル150から、アドレス印刷指示に含まれるデバイスID「D2」に対応付けられているトークン「T2」を特定する。仲介サーバ100は、さらに、トークン「T2」に含まれる接続ID「C2」を特定することによって、接続ID「C2」によって識別される第2のXMPP接続を特定する。
次いで、仲介サーバ100は、T442において、特定済みの第2のXMPP接続を利用して、アドレス印刷要求をプリンタ10Aに送信する。即ち、仲介サーバ100は、接続ID「C2」を含む維持信号に対する応答として、アドレス印刷要求をプリンタ10Aに送信する。アドレス印刷要求は、T440で受信済みのアドレス印刷指示に含まれるメールアドレス「MMM」を含む。アドレス印刷要求は、さらに、特定済みの接続ID「C2」を送信先IDとして含むと共に、T440で受信済みのアドレス印刷指示に含まれるデバイスID「D2」を要求先IDとして含む。アドレス印刷要求は、第1のXMPP接続を識別する接続ID「C1」と、プリンタ10Aを識別するデバイスID「D1」と、を含まない。
プリンタ10Aは、T442において、仲介サーバ100からアドレス印刷要求を受信すると、T450において、アドレス印刷要求に含まれるメールアドレス「MMM」を印刷する。これにより、ユーザは、メール印刷を実行するためのメールアドレス「MMM」を知ることができる。
次いで、プリンタ10Aは、T460において、第2のXMPP接続を切断する。具体的には、プリンタ10Aは、接続ID「C2」を含む上記の維持信号を仲介サーバ100に定期的に送信することを停止する。これにより、仲介サーバ100が当該維持信号に対する応答として要求をプリンタ10Aに送信することができない状態、即ち、第2のXMPP接続が切断された状態になる。このために、プリンタ10Aは、第1のXMPP接続のみが確立されている状態を構築することができる。特に、プリンタ10Aは、第2のXMPP接続を確立可能であることを確認済みであるので(図6のT400参照)、第1のXMPP接続を切断すべき事象が発生する場合に、第2のXMPP接続を適切に再確立することができる。
上述したように、ユーザは、T450において、メール印刷を実行するためのメールアドレス「MMM」を知ることができる。ユーザは、当該メールアドレス「MMM」を送信先アドレスとして含むと共に画像データが添付されている電子メールの送信を例えばPC80に指示することができる。これにより、SPサーバ300は、T470において、当該電子メールを受信する。
SPサーバ300は、T470において、電子メールを受信すると、電子メールに添付されている画像データを変換して、プリンタ10Aが解釈可能なデータ形式を有する印刷データを生成する。次いで、SPサーバ300は、アカウントテーブル310から、電子メールに含まれるメールアドレス「MMM」に対応付けられているデバイスID「D2」を特定する。そして、SPサーバ300は、T480において、特定済みのデバイスID「D2」を要求先IDとして含むと共に生成済みの印刷データの位置を示すURL「R1」を含むメール印刷指示を仲介サーバ100に送信する。
仲介サーバ100は、T480において、SPサーバ300からメール印刷指示を受信すると、デバイステーブル150から、メール印刷指示に含まれるデバイスID「D2」に対応付けられているトークン「T2」を特定し、トークン「T2」に含まれる接続ID「C2」を特定する。ここで、仲介サーバ100は、特定済みの接続ID「C2」によって識別される第2のXMPP接続が切断されていること、即ち、接続ID「C2」を含む上記の維持信号を受信しないこと、を認識する。この場合、仲介サーバ100は、デバイステーブル150から、デバイスID「D2」に対応付けられている対応IDであるデバイス「D1」を特定する。仲介サーバ100は、さらに、デバイステーブル150から、特定済みのデバイス「D1」に対応付けられているトークン「T1」を特定し、トークン「T1」に含まれる接続ID「C1」を特定する。これにより、仲介サーバ100は、接続ID「C1」によって識別される第1のXMPP接続を特定することができる。このように、仲介サーバ100においてデバイスID「D1」とデバイスID「D2」とが対応付けて記憶されるので、仲介サーバ100は、T480において、デバイスDI「D2」を含むメール印刷指示を受信する場合に、デバイスID「D2」に対応付けられているデバイスID「D1」に関連する第1のXMPP接続を特定することができる。より詳細には、仲介サーバ100は、デバイスDI「D2」に対応付けられている接続ID「C1」,「C2」によって識別される第1及び第2のXMPP接続のうちの現在確立されている第1のXMPP接続を特定することができる。このために、仲介サーバ100は、第1のXMPP接続を利用して、メール印刷指示に従った要求をプリンタ10Aに適切に送信することができる。換言すると、プリンタ10Aは、第1のXMPP接続を利用して、メール印刷指示に従った要求を適切に受信することができる。
次いで、仲介サーバ100は、T482おいて、特定済みの第1のXMPP接続を利用して、メール印刷要求をプリンタ10Aに送信する。即ち、仲介サーバ100は、接続ID「C1」を含む維持信号に対する応答として、メール印刷要求をプリンタ10Aに送信する。メール印刷要求は、T480で受信済みのメール印刷指示に含まれるURL「R1」を含む。メール印刷要求は、さらに、特定済みの接続ID「C1」を送信先IDとして含むと共に、T480で受信済みのメール印刷指示に含まれるデバイスID「D2」を要求先IDとして含む。このために、仲介サーバ100は、接続ID「C1」によって識別される第1のXMPP接続を利用して要求を送信して、デバイスID「D2」に対応する処理(即ちメール印刷サービスに対応する処理)をプリンタ10Aに適切に実行させることができる。換言すると、プリンタ10Aは、第1のXMPP接続を利用して要求を受信して、メール印刷サービスに対応する処理を適切に実行することができる。メール印刷要求は、第2のXMPP接続を識別する接続ID「C2」と、プリンタ10Aを識別するデバイスID「D1」と、を含まない。
プリンタ10Aは、T482において、仲介サーバ100からメール印刷要求を受信すると、T484において、デバイスID「D2」を送信元IDとして含むデータ要求をSPサーバ300に送信する。このように、データ要求がデバイスID「D2」を含むので、データ要求が、デバイスID「D2」によって識別されるプリンタ10Aに対応する印刷データを要求するものであることを通知することができる。データ要求は、さらに、メール印刷要求内のURL「R1」を送信先URLとして含む。従って、データ要求は、仲介サーバ100を介さずに、SPサーバ300に送信される。特に、データ要求は、第1のXPPP接続が利用されて送信されるのではなく、HTTPに従って送信される。
SPサーバ300は、T484において、プリンタ10Aからデータ要求を受信すると、T486において、データ要求に含まれるURL「R1」によって特定される印刷データをプリンタ10Aに送信する。
プリンタ10Aは、T486において、SPサーバ300から印刷データを受信すると、T490において、印刷データによって表わされる画像を印刷する。ユーザは、電子メールに添付された画像データによって表わされる画像と同じ画像が印刷された印刷物を取得することができる。これにより、電子メールを利用してプリンタ10Aに印刷を実行させるメール印刷サービスが実現される。
(各サービスを解約するための処理:図7)
続いて、図7を参照して、図6の処理が終了した後に、各サービスを解約するための処理を説明する。ケースA1は、消耗品発注サービスを解約するための処理であり、ケースA2は、メール印刷サービスを解約するための処理である。
続いて、図7を参照して、図6の処理が終了した後に、各サービスを解約するための処理を説明する。ケースA1は、消耗品発注サービスを解約するための処理であり、ケースA2は、メール印刷サービスを解約するための処理である。
(ケースA1)
PC80は、T500において、ユーザから消耗品発注サービスを解約するための操作を受け付ける。当該操作は、SPサーバ200のURLを入力する操作と、アカウント情報「AC1」を入力する操作と、を含む。この場合、PC80は、T502において、アカウント情報「AC1」を含むサービス解約要求をSPサーバ200に送信する。
PC80は、T500において、ユーザから消耗品発注サービスを解約するための操作を受け付ける。当該操作は、SPサーバ200のURLを入力する操作と、アカウント情報「AC1」を入力する操作と、を含む。この場合、PC80は、T502において、アカウント情報「AC1」を含むサービス解約要求をSPサーバ200に送信する。
SPサーバ200は、T502において、PC80からサービス解約要求を受信すると、アカウントテーブル210から、サービス解約要求に含まれるアカウント情報「AC1」に対応付けられているデバイスID「D1」を特定する。そして、SPサーバ200は、T510において、特定済みのデバイスID「D1」を要求先IDとして含むUnsubscribe指示を仲介サーバ100に送信する。
仲介サーバ100は、T510において、SPサーバ200からUnsubscribe指示を受信すると、デバイステーブル150を利用して、接続ID「C1」によって識別される第1のXMPP接続を特定する。ここで特定する手法は、図4のT270でSubscribe指示を受信することに応じて第1のXMPP接続を特定する手法と同様である。次いで、仲介サーバ100は、T512において、特定済みの第1のXMPP接続を利用して、Unsubscribe要求をプリンタ10Aに送信する。Unsubscribe要求は、接続ID「C1」を送信先IDとして含むと共に、デバイスID「D1」を要求先IDとして含む。
一方、SPサーバ200は、T510において、Unsubscribe指示を仲介サーバ100に送信すると、アカウントテーブル210から、Unsubscribe指示内のデバイスID「D1」と、それに対応付けられているユーザID「U1」と、を削除する。
プリンタ10Aは、T512において、仲介サーバ100からUnsubscribe要求を受信すると、T530において、第1のXMPP接続を切断する。具体的には、プリンタ10Aは、接続ID「C1」を含む上記の維持信号を仲介サーバ100に定期的に送信することを停止する。このように、プリンタ10Aは、仲介サーバ100からUnsubscribe要求を受信することに応じて、第1のXMPP接続を適切に切断することができる。
仲介サーバ100は、T530において、第1のXMPP接続が切断されると、T532において、デバイステーブル150から、T510で受信済みのUnsubscribe指示に含まれるデバイスID「D1」と、それに対応付けられている各情報(即ち、対応ID「D2」、ユーザID「U1」、サーバID「SV1」、及び、トークン「T1」)と、を削除する。
プリンタ10Aは、T530において、第1のXMPP接続が切断されると、T534において、サービステーブル50から、T512で受信済みのUnsubscribe要求に含まれるデバイスID「D1」に対応付けられているトークン「T1」を削除する。このために、プリンタ10Aのメモリ34が記憶すべきデータ量を圧縮することができる。次いで、プリンタ10Aは、T540において、サービステーブル50に記憶されている他のトークン「T2」(図6のT402参照)を利用して、第2のXMPP接続を確立する。このように、プリンタ10Aがトークン「T2」を記憶しておくので、プリンタ10Aは、トークン「T2」を利用して、第2のXMPP接続を適切に確立することができる。これにより、第2のXMPP接続のみが確立されている状態が構築される。このために、プリンタ10Aは、第2のXMPP接続を利用して、仲介サーバ100からメール印刷要求を受信することができる。
(ケースA2)
プリンタ10Aは、T550において、ユーザからメール印刷サービスを解約するための操作を受け付ける。当該操作は、メール印刷サービスを解約するためのボタンを選択する操作を含む。この場合、プリンタ10Aは、サービステーブル50から、サービス情報「メール印刷」に対応付けられているデバイスID「D2」を特定し、T552において、特定済みのデバイスID「D2」を含むサービス解約要求をSPサーバ300に送信する。
プリンタ10Aは、T550において、ユーザからメール印刷サービスを解約するための操作を受け付ける。当該操作は、メール印刷サービスを解約するためのボタンを選択する操作を含む。この場合、プリンタ10Aは、サービステーブル50から、サービス情報「メール印刷」に対応付けられているデバイスID「D2」を特定し、T552において、特定済みのデバイスID「D2」を含むサービス解約要求をSPサーバ300に送信する。
SPサーバ300は、T550において、プリンタ10Aからサービス解約要求を受信すると、T560において、サービス解約要求内のデバイスID「D2」を要求先IDとして含む解約指示を仲介サーバ100に送信する。
仲介サーバ100は、T560において、SPサーバ300から解約指示を受信すると、第2のXMPP接続が切断されていることを認識し、接続ID「C1」によって識別される第1のXMPP接続を特定する。ここで特定する手法は、図6のT480でメール印刷指示を受信することに応じて第1のXMPP接続を特定する手法と同様である。次いで、仲介サーバ100は、T562において、特定済みの第1のXMPP接続を利用して、解約要求をプリンタ10Aに送信する。解約要求は、接続ID「C1」を送信先IDとして含むと共に、デバイスID「D2」を要求先IDとして含む。
一方、SPサーバ200は、T560において、解約指示を仲介サーバ100に送信すると、アカウントテーブル210から、解約指示内のデバイスID「D2」と、それに対応付けられているユーザID「U2」と、を削除する。
仲介サーバ100は、T562において、解約要求を送信すると、T582において、デバイステーブル150から、T560で受信済みの解約指示に含まれるデバイスID「D2」と、それに対応付けられている各情報(即ち、対応ID「D1」、ユーザID「U2」、サーバID「SV2」、及び、トークン「T2」)と、を削除する。
プリンタ10Aは、T562において、仲介サーバ100から解約要求を受信すると、T584において、サービステーブル50から、解約要求に含まれるデバイスID「D2」に対応付けられているトークン「T2」を削除する。このために、プリンタ10Aのメモリ34が記憶すべきデータ量を圧縮することができる。ここでは、第2のXMPP接続が確立されていないので、第2のXMPP接続が切断されず、第1のXMPP接続のみが確立されている状態が維持される。このために、プリンタ10Aは、第1のXMPP接続を利用して、仲介サーバ100からSubscribe要求又はUnsubscribe要求を受信することができる。
(メール印刷サービスに加入するための処理:図8)
続いて、図8を参照して、消耗品発注サービスに加入する前に、メール印刷サービスに加入するケースBの処理を説明する。
続いて、図8を参照して、消耗品発注サービスに加入する前に、メール印刷サービスに加入するケースBの処理を説明する。
プリンタ10Aは、T600において、ユーザからメール印刷サービスに加入するための操作を受け付ける。この場合、図5のT300〜T360と同様の処理が実行される。プリンタ10Aは、SPサーバ300からPINコード「P2」を受信すると(図5のT360参照)、サービステーブル50に1個のトークンも記憶されていないと判断する。即ち、プリンタ10Aは、消耗品発注サービス及びメール印刷サービスのどちらにも未加入であると判断する。この場合、プリンタ10Aは、T602において、サービステーブル50に記憶されている2個のデバイスID「D1」,「D2」を含む登録要求を仲介サーバ100に送信する。
仲介サーバ100は、T602において、プリンタ10Aから登録要求を受信すると、T610において、登録要求に含まれる2個のデバイスID「D1」,「D2」をメモリ134内の一時記憶領域に記憶する。
その後、図5のT370〜T386と同様の処理が実行され、さらに、図6のT400〜T450と同様の処理が実行される。これにより、第2のXMPP接続が確立される。図8のケースBでは、第2のXMPP接続を切断する処理(図6のT460参照)が実行されない。このために、第2のXMPP接続が確立されている状態が維持される。
T630及びT640は、図6のT470及びT480と同様である。仲介サーバ100は、T640において、SPサーバ300からメール印刷指示を受信すると、デバイステーブル150から、メール印刷指示に含まれるデバイスID「D2」に対応付けられているトークン「T2」を特定する。仲介サーバ100は、さらに、トークン「T2」に含まれる接続ID「C2」を特定することによって、接続ID「C2」によって識別される第2のXMPP接続を特定する。このように、仲介サーバ100においてデバイスID「D2」とトークン「T2」(即ち接続ID「C2」)とが対応付けて記憶されるので、仲介サーバ100は、第2のXMPP接続を特定することができる。このために、仲介サーバ100は、第2の常時接続を利用して、メール印刷指示に従った要求をプリンタ10Aに適切に送信することができる。換言すると、プリンタ10Aは、第2の常時接続を利用して、メール印刷指示に従った要求を適切に受信することができる。
次いで、仲介サーバ100は、T642において、特定済みの第2のXMPP接続を利用して、メール印刷要求をプリンタ10Aに送信する。即ち、仲介サーバ100は、接続ID「C2」を含む維持信号に対する応答として、メール印刷要求をプリンタ10Aに送信する。メール印刷要求は、T640で受信済みのメール印刷指示に含まれるURL「R1」を含む。メール印刷要求は、さらに、特定済みの接続ID「C2」を送信先IDとして含むと共に、T640で受信済みのメール印刷指示に含まれるデバイスID「D2」を要求先IDとして含む。このために、仲介サーバ100は、接続ID「C2」によって識別される第2のXMPP接続を利用して要求を送信して、デバイスID「D2」に対応する処理(即ちメール印刷サービスに対応する処理)をプリンタ10Aに適切に実行させることができる。換言すると、プリンタ10Aは、第2のXMPP接続を利用して要求を受信して、メール印刷サービスに対応する処理を適切に実行することができる。メール印刷要求は、第1のXMPP接続を識別する接続ID「C1」と、プリンタ10Aを識別するデバイスID「D1」と、を含まない。T644〜T650は、図6のT484〜T490と同様である。
(メール印刷サービスへの加入後に消耗品発注サービスに加入するための処理:図9)
続いて、図9を参照して、図8の処理によってメール印刷サービスに加入した後に、消耗品発注サービスに加入するための処理を説明する。
続いて、図9を参照して、図8の処理によってメール印刷サービスに加入した後に、消耗品発注サービスに加入するための処理を説明する。
PC80は、T700において、ユーザから消耗品発注サービスに加入するための操作を受け付ける。この場合、図3のT102〜T170と同様の処理が実行され、さらに、図4のT200,T220〜T260と同様の処理が実行される。これにより、第1のXMPP接続と第2のXMPP接続との双方が確立されている状態が構築される。ここで、プリンタ10Aは、PINコード「P1」が入力されると(図4のT200参照)、サービステーブル50にトークン「T2」が記憶されていると判断する(図8で引用する図6のT402参照)。即ち、プリンタ10Aは、メール印刷サービスに加入済みであると判断する。この場合、プリンタ10Aは、2個のデバイスID「D1」,「D2」を含む登録要求を送信する処理(図4のT202参照)を実行しない。この結果、仲介サーバ100は、2個のデバイスID「D1」,「D2」を記憶する処理(図4のT210参照)を実行しない。
プリンタ10Aは、T710において、第2のXMPP接続を切断する。T710の処理は、図6のT460と同様である。このために、プリンタ10Aは、第1のXMPP接続のみが確立されている状態を構築することができる。T720〜T732の処理は、図4のT270〜T282と同様である。なお、図示省略しているが、この状態でも、図6のT470〜T490の処理(即ちメール印刷サービス)を実現することができる。図9の処理の後に各サービスを解約するための処理は、図7の処理と同様である。
(本実施例の効果)
本実施例によると、プリンタ10Aは、第1のXMPP接続が確立されている状態において、メール印刷サービスに加入するための操作を受け付ける場合(図5のT300)に、第1のXMPP接続のみが確立されている状態を構築する(図6のT460)。また、プリンタ10Aは、第2のXMPP接続が確立されている状態において、消耗品発注サービスに加入するための操作を受け付ける場合(図9で引用する図4のT200)に、第1のXMPP接続のみが確立されている状態を構築する(T710)。そして、プリンタ10Aは、第1のXMPP接続のみが確立されている間に、メール印刷指示がSPサーバ300から仲介サーバ100に送信される場合(図6のT480)に、仲介サーバ100から、第1のXMPP接続を利用して、メール印刷要求を受信する(T482)。このために、第1のXMPP接続と第2のXMPP接続との双方が確立されている状態が維持される構成と比べると、プリンタ10Aと仲介サーバ100との間の通信負荷が高くなるのを抑制することができる。
本実施例によると、プリンタ10Aは、第1のXMPP接続が確立されている状態において、メール印刷サービスに加入するための操作を受け付ける場合(図5のT300)に、第1のXMPP接続のみが確立されている状態を構築する(図6のT460)。また、プリンタ10Aは、第2のXMPP接続が確立されている状態において、消耗品発注サービスに加入するための操作を受け付ける場合(図9で引用する図4のT200)に、第1のXMPP接続のみが確立されている状態を構築する(T710)。そして、プリンタ10Aは、第1のXMPP接続のみが確立されている間に、メール印刷指示がSPサーバ300から仲介サーバ100に送信される場合(図6のT480)に、仲介サーバ100から、第1のXMPP接続を利用して、メール印刷要求を受信する(T482)。このために、第1のXMPP接続と第2のXMPP接続との双方が確立されている状態が維持される構成と比べると、プリンタ10Aと仲介サーバ100との間の通信負荷が高くなるのを抑制することができる。
(対応関係)
プリンタ10A、SPサーバ200、SPサーバ300が、それぞれ、「通信装置」、「第1のサービス提供サーバ」、「第2のサービス提供サーバ」の一例である。消耗品発注サービス、メール印刷サービスが、それぞれ、「第1のサービス」、「第2のサービス」の一例である。第1のXMPP接続、第2のXMPP接続が、それぞれ、「第1の常時接続」、「第2の常時接続」の一例である。図4のT200の操作、T270のSubscribe指示、T272のSubscribe要求、T280の処理が、それぞれ、「第1の確立指示」、「第1の実行指示」、「第1の処理要求」、「第1の処理」の一例である。図8のT600の操作、T640のメール印刷指示、T642のメール印刷要求、T644〜T650の処理が、それぞれ、「第2の確立指示」、「第2の実行指示」、「第2の処理要求」、「第2の処理」の一例である。第1のXMPP接続が確立されている状態において図5のT300の操作が受け付けられる場合、及び、第2のXMPP接続が確立されている状態において図9で引用する図4のT200の操作が受け付けられる場合が、「特定の場合」の一例である。図6のT480のメール印刷指示、T482のメール印刷要求、T484〜T490の処理が、それぞれ、「第3の実行指示」、「第3の処理要求」、「第3の処理」の一例である。
プリンタ10A、SPサーバ200、SPサーバ300が、それぞれ、「通信装置」、「第1のサービス提供サーバ」、「第2のサービス提供サーバ」の一例である。消耗品発注サービス、メール印刷サービスが、それぞれ、「第1のサービス」、「第2のサービス」の一例である。第1のXMPP接続、第2のXMPP接続が、それぞれ、「第1の常時接続」、「第2の常時接続」の一例である。図4のT200の操作、T270のSubscribe指示、T272のSubscribe要求、T280の処理が、それぞれ、「第1の確立指示」、「第1の実行指示」、「第1の処理要求」、「第1の処理」の一例である。図8のT600の操作、T640のメール印刷指示、T642のメール印刷要求、T644〜T650の処理が、それぞれ、「第2の確立指示」、「第2の実行指示」、「第2の処理要求」、「第2の処理」の一例である。第1のXMPP接続が確立されている状態において図5のT300の操作が受け付けられる場合、及び、第2のXMPP接続が確立されている状態において図9で引用する図4のT200の操作が受け付けられる場合が、「特定の場合」の一例である。図6のT480のメール印刷指示、T482のメール印刷要求、T484〜T490の処理が、それぞれ、「第3の実行指示」、「第3の処理要求」、「第3の処理」の一例である。
デバイスID「D1」、接続ID「C1」、デバイスID「D2」、接続ID「C2」が、それぞれ、「第1の装置識別情報(及び第1の識別情報)」、「第1の接続識別情報」、「第2の装置識別情報(及び第2の識別情報)」、「第2の接続識別情報」の一例である。図4のT280の消耗品情報、図8のT644のデータ要求、図6のT484のデータ要求が、それぞれ、「第1の情報」、「第2の情報」、「第3の情報」の一例である。アクセストークン「T2」が、「認証情報」の一例である。図7のT510のUnsubscribe指示、T512のUnsubscribe要求が、それぞれ、「第1の停止指示」、「第1の停止要求」の一例である。図7のT560の解約指示、T562の解約要求が、それぞれ、「第2の停止指示」、「第2の停止要求」の一例である。
「通信装置」の各部の対応関係は以下のとおりである。図4のT240の処理、T272の処理、T280の処理が、それぞれ、「第1の確立部」、「第1の処理要求受信部」、「第1の処理実行部」によって実行される処理の一例である。図8で引用する図6のT400の処理、図8のT642の処理、T644〜T650の処理が、それぞれ、「第2の確立部」、「第2の処理要求受信部」、「第2の処理実行部」によって実行される処理の一例である。図6のT400の処理、T460の処理、図9で引用する図4のT240、及び、図9のT710の処理が、「構築部」によって実行される処理の一例である。図6のT482の処理、T484〜T490の処理が、それぞれ、「第3の処理要求受信部」、「第3の処理実行部」によって実行される処理の一例である。図4のT202の処理、及び、図8のT602の処理が、「識別情報送信部」によって実行される処理の一例である。図8で引用する図5のT384の処理、図8で引用する図6のT402の処理、図7のT540の処理が、それぞれ、「認証情報受信部」、「記憶制御部」、「第3の確立部」によって実行される処理の一例である。図7のT512の処理、T530の処理が、それぞれ、「第1の停止要求受信部」、「切断部」によって実行される処理の一例である。図7のT562の処理、T584の処理が、それぞれ、「第2の停止要求受信部」、「削除部」によって実行される処理の一例である。
「仲介サーバ」の各部の対応関係は以下のとおりである。図4のT240の処理、T270の処理、T272の処理が、それぞれ、「第1の確立部」、「第1の実行指示受信部」、「第1の処理要求送信部」によって実行される処理の一例である。図8で引用する図6のT400の処理、T640の処理、T642の処理が、それぞれ、「第2の確立部」、「第2の実行指示受信部」、「第2の処理要求送信部」によって実行される処理の一例である。図6のT480の処理、T482の処理が、それぞれ、「第3の実行指示受信部」、「第3の処理要求送信部」によって実行される処理の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)「第1の常時接続」及び「第2の常時接続」は、XMPP接続に限られず、他のプロトコル(例えばHTTPs(HTTP Secureの略))に従った常時接続であってもよい。「常時接続」は、例えば、「通信装置から仲介サーバにデータを要求するための信号が送信されなくても、仲介サーバから通信装置にインターネットを介してデータを送信することが可能な接続」と言い換えてもよい。また、図4のT280の消耗品情報、及び、図6のT284のデータ要求は、HTTPに従って送信されなくてもよく、他のプロトコルに従って送信されてもよい。
(変形例2)「第1のサービス」は、消耗品発注サービスに限られず、メール印刷サービス、クラウド印刷サービス、ステータス管理サービス、メンテナンスサービス等の他のサービスであってもよい。同様に、「第2のサービス」は、メール印刷サービスに限られない。
(変形例3)プリンタ10Aは、第1のXMPP接続が確立されている状態において、図5のT300の操作を受け付ける場合に、第1のXMPP接続のみが確立されている状態を構築し、第2のXMPP接続が確立されている状態において、図9で引用する図4のT200の操作を受け付ける場合に、第1のXMPP接続と第2のXMPP接続の双方が確立されている状態を構築してもよい。本変形例では、「特定の場合」は、第1の常時接続が確立されている状態において、第2の確立指示が受け付けられる場合を含み、第2の常時接続が確立されている状態において、第1の確立指示が受け付けられる場合を含まない。また、別の変形例では、プリンタ10Aは、第1のXMPP接続が確立されている状態において、図5のT300の操作を受け付ける場合に、第1のXMPP接続と第2のXMPP接続の双方が確立されている状態を構築し、第2のXMPP接続が確立されている状態において、図9で引用する図4のT200の操作を受け付ける場合に、第1のXMPP接続のみが確立されている状態を構築してもよい。本変形例では、「特定の場合」は、第2の常時接続が確立されている状態において、第1の確立指示が受け付けられる場合を含み、第1の常時接続が確立されている状態において、第2の確立指示が受け付けられる場合を含まない。
(変形例4)プリンタ10Aは、1個のデバイスID「D1」のみを有していてもよい。即ち、プリンタ10Aは、デバイスID「D2」を有さなくてもよい。この場合、プリンタ10Aは、図4のT202の処理を実行せず、図4のT220及び図5のT370において、同じデバイスID「D1」を含む認証要求を仲介サーバ100に送信する。また、仲介サーバ100は、図4のT252及び図6のT412において、同じデバイスID「D1」を各SPサーバ200,300に送信する。仲介サーバ100は、さらに、図4のT252において、接続ID「C1」をSPサーバ200に通知し、図6のT412において、接続ID「C2」をSPサーバ300に通知する。そして、仲介サーバ100は、接続ID「C1」と接続ID「C2」とを対応付けて記憶しておく。仲介サーバ100は、第1のXMPP接続が確立されている状態において、SPサーバ200から通知済みの接続ID「C1」を含むSubscribe指示を受信する場合に、当該接続ID「C1」によって識別される第1のXMPP接続を利用して、Subcribe要求をプリンタ10Aに送信する。仲介サーバ100は、第2のXMPP接続が確立されている状態において、SPサーバ300から通知済みの接続ID「C2」を含むメール印刷指示を受信する場合に、当該接続ID「C2」によって識別される第2のXMPP接続を利用して、メール印刷要求をプリンタ10Aに送信する。仲介サーバ100は、第1のXMPP接続が確立されている状態において、SPサーバ300から通知済みの接続ID「C2」を含むメール印刷指示を受信する場合に、当該接続ID「C2」に対応付けられている接続ID「C1」によって識別される第1のXMPP接続を利用して、メール印刷要求をプリンタ10Aに送信する。プリンタ10Aは、Subscribe要求を受信する場合に、接続ID「C1」を含む消耗品情報を仲介サーバ100に送信し、メール印刷要求を受信する場合に、接続ID「C2」を含むデータ要求をSPサーバ300に送信する。本変形例では、接続ID「C1」、接続ID「C2」が、それぞれ、「第1の識別情報」、「第2の識別情報」の一例である。また、本変形例では、2個の装置識別情報が存在しなくてもよく、「識別情報送信部」を省略可能である。
(変形例5)アクセストークン(例えばT1)は、接続ID(例えばC1)を含んでいなくてもよい。プリンタ10Aは、第1のXMPP接続が確立される場合に、接続ID「C1」を生成して仲介サーバ100に通知し、第2のXMPP接続が確立される場合に、接続ID「C2」を生成して仲介サーバ100に通知してもよい。一般的に言うと、「第1の接続識別情報」と「第2の接続識別情報」とのそれぞれは、仲介サーバによって生成されなくてもよい。
(変形例6)プリンタ10Aは、第2のXMPP接続が確立されている状態において、図9で引用する図4のT200の操作が受け付けられる場合に、第2のXMPP接続を切断し、その後、第1のXMPP接続を確立してもよい。一般的に言うと、「構築部」は、第2の常時接続が確立されている状態において、第1の確立指示が受け付けられる特定の場合に、上記の実施例のように、第1の常時接続を確立した後に第2の常時接続を切断してもよいし、本変形例のように、第2の常時接続を切断した後に第1の常時接続を確立してもよい。
(変形例7)プリンタ10Aは、図6のT400及びT460の処理を実行しなくてもよい。一般的に言うと、「構築部」は、第1の常時接続が確立されている状態において、第2の確立指示が受け付けられる特定の場合に、第2の常時接続を確立しなくてもよい。
(変形例8)プリンタ10Aは、図7のT540の処理を実行しなくてもよい。即ち、プリンタ10Aは、例えば、第2のXMPP接続が確立されている状態において、図8で引用する図4のT200の操作が受け付けられる場合に、第1のXMPP接続を確立して第2のXMPP接続を切断し(T710)、その後、第1のXMPP接続が切断される場合に第2のXMPP接続を再確立しなくてもよい。本変形例では、「第3の確立部」を省略可能である。なお、本変形例では、プリンタ10Aは、第2のXMPP接続を切断する際に、トークン「T2」を削除してもよい。
(変形例9)プリンタ10Aは、消耗品発注サービスを解約するための操作を受け付ける場合に、仲介サーバ100からUnsubscribe要求を受信することなく、第1のXMPP接続を切断してもよい。プリンタ10Aは、メール印刷サービスを解約するための操作を受け付ける場合に、仲介サーバ100から解約要求を受信することなく、第2のXMPP接続を切断してもよい。本変形例では、「第1の停止要求受信部」及び「第2の停止要求受信部」を省略可能である。
(変形例10)上記の各実施例では、プリンタ10AのCPU32及び仲介サーバ100のCPU132がプログラム40,140(即ちソフトウェア)を実行することによって、図3〜図9の各処理が実現される。これに代えて、いずれかの処理は、論理回路等のハードウェアによって実現されてもよい。
2:通信システム、10A,10B:プリンタ、12:操作部、14:表示部、16:印刷実行部、18:ネットワークインターフェース、30:制御部、32:CPU、34:メモリ、40:プログラム、50:サービステーブル、80:PC、100:仲介サーバ、118:ネットワークインターフェース、130:制御部、132:CPU、134:メモリ、140:プログラム、150:デバイステーブル、200:サービス提供サーバ、210:アカウントテーブル、300:サービス提供サーバ、310:アカウントテーブル
Claims (15)
- 通信装置であって、
第1のサービス提供サーバから第1のサービスの提供を受けるための第1の確立指示が受け付けられる場合に、インターネットを介した第1の常時接続を仲介サーバと確立する第1の確立部と、
前記第1の常時接続が確立されている間に、前記第1のサービスに関連する第1の処理を前記通信装置に実行させるための第1の実行指示が前記第1のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の処理要求を受信する第1の処理要求受信部と、
前記仲介サーバから前記第1の処理要求が受信される場合に、前記第1の処理を実行する第1の処理実行部と、
前記第1のサービス提供サーバとは異なる前記第2のサービス提供サーバから第2のサービスの提供を受けるための第2の確立指示が受け付けられる場合に、前記インターネットを介した第2の常時接続を前記仲介サーバと確立する第2の確立部と、
前記第2の常時接続が確立されている間に、前記第2のサービスに関連する第2の処理を前記通信装置に実行させるための第2の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第2の常時接続を利用して、前記第2のサービスに関連する第2の処理要求を受信する第2の処理要求受信部と、
前記仲介サーバから前記第2の処理要求が受信される場合に、前記第2の処理を実行する第2の処理実行部と、
特定の場合に、前記第1の常時接続と前記第2の常時接続とのうちの前記第1の常時接続のみが確立されている単一確立状態を構築する構築部であって、前記特定の場合は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が受け付けられる場合と、前記第2の常時接続が確立されている状態において、前記第1の確立指示が受け付けられる場合と、のうちの少なくとも一方の場合を含む、前記構築部と、
前記単一確立状態が構築されている間に、前記第2のサービスに関連する第3の処理を前記通信装置に実行させるための第3の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第2のサービスに関連する第3の処理要求を受信する第3の処理要求受信部と、
前記仲介サーバから前記第3の処理要求が受信される場合に、前記第3の処理を実行する第3の処理実行部と、
を備える、通信装置。 - 前記仲介サーバでは、前記第1の常時接続に関連する第1の識別情報と、前記第2の常時接続に関連する第2の識別情報であって、前記第1の識別情報とは異なる前記第2の識別情報と、が対応付けて記憶され、
前記第3の処理要求受信部は、前記単一確立状態が構築されている間に、前記第2の識別情報を含む前記第3の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第3の実行指示に含まれる前記第2の識別情報に対応付けられている前記第1の識別情報に関連する前記第1の常時接続を利用して、前記第3の処理要求を受信する、請求項1に記載の通信装置。 - 前記通信装置は、さらに、
前記第1の常時接続と前記第2の常時接続とのどちらも確立されていない状態において、前記第1の確立指示と前記第2の確立指示とのどちらかが受け付けられる場合に、前記第1の識別情報と前記第2の識別情報とを前記仲介サーバに送信する識別情報送信部であって、前記仲介サーバでは、前記通信装置から前記第1の識別情報と前記第2の識別情報とが受信される場合に、前記第1の識別情報と前記第2の識別情報とが対応付けて記憶される、前記識別情報送信部を備える、請求項2に記載の通信装置。 - 前記第1の確立指示が受け付けられる場合に、前記仲介サーバでは、前記通信装置を識別する第1の装置識別情報と、前記第1の常時接続を識別する第1の接続識別情報と、が対応付けて記憶され、
前記第1の処理要求受信部は、前記第1の常時接続が確立されている間に、前記第1の装置識別情報を含む前記第1の実行指示が前記第1のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の実行指示に含まれる前記第1の装置識別情報に対応付けられている前記第1の接続識別情報によって識別される前記第1の常時接続を利用して、前記第1の処理要求を受信し、
前記第2の確立指示が受け付けられる場合に、前記仲介サーバでは、前記通信装置を識別する第2の装置識別情報であって、前記第1の装置識別情報とは異なる前記第2の装置識別情報と、前記第2の常時接続を識別する第2の接続識別情報であって、前記第1の接続識別情報とは異なる前記第2の接続識別情報と、が対応付けて記憶され、
前記第2の処理要求受信部は、前記第2の常時接続が確立されている間に、前記第2の装置識別情報を含む前記第2の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第2の実行指示に含まれる前記第2の装置識別情報に対応付けられている前記第2の接続識別情報によって識別される前記第2の常時接続を利用して、前記第2の処理要求を受信し、
前記特定の場合に、前記仲介サーバでは、前記第1の識別情報である前記第1の装置識別情報と、前記第1の接続識別情報と、前記第2の識別情報である前記第2の装置識別情報と、前記第2の接続識別情報と、が対応付けて記憶され、
前記第3の処理要求受信部は、前記単一確立状態が構築されている間に、前記第2の装置識別情報を含む前記第3の実行指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第3の実行指示に含まれる前記第2の装置識別情報に対応付けられている前記第1及び第2の接続識別情報によって識別される前記第1及び第2の常時接続のうちの現在確立されている前記第1の常時接続を利用して、前記第3の処理要求を受信する、請求項2又は3に記載の通信装置。 - 前記第1の処理要求は、前記第1の接続識別情報と前記第1の装置識別情報とを含み、
前記第2の処理要求は、前記第2の接続識別情報と前記第2の装置識別情報とを含み、
前記第3の処理要求は、前記第1の接続識別情報と前記第2の装置識別情報とを含む、請求項4に記載の通信装置。 - 前記第1の処理は、前記第1の装置識別情報を含む第1の情報を送信する処理を含み、
前記第2の処理は、前記第2の装置識別情報を含む第2の情報を送信する処理を含み、
前記第3の処理は、前記第2の装置識別情報を含む第3の情報を送信する処理を含む、請求項4又は5に記載の通信装置。 - 前記第1の常時接続と前記第2の常時接続とのそれぞれは、XMPP(eXtensible Messaging and Presence Protocolの略)に従った接続であり、
前記第1の情報と前記第2の情報と前記第3の情報とのそれぞれは、HTTP(Hyper Text Transfer Protocolの略)に従って送信される、請求項6に記載の通信装置。 - 前記第1の接続識別情報と前記第2の接続識別情報とのそれぞれは、前記仲介サーバによって生成される、請求項4から7のいずれか一項に
- 前記構築部は、前記第2の常時接続が確立されている状態において、前記第1の確立指示が受け付けられる前記特定の場合に、前記第1の常時接続を確立し、前記第2の常時接続を切断することによって、前記単一確立状態を構築する、請求項1から8のいずれか一項に記載の通信装置。
- 前記構築部は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が受け付けられる前記特定の場合に、前記第2の常時接続を確立し、前記第2の常時接続を切断することによって、前記単一確立状態を構築する、請求項1から9のいずれか一項に記載の通信装置。
- 前記通信装置は、さらに、
メモリと、
前記第2の確立指示が受け付けられる場合に、前記仲介サーバから、前記第2の常時接続を確立するための認証情報を受信する認証情報受信部と、
前記仲介サーバから前記認証情報が受信される場合に、前記認証情報を前記メモリに記憶させる記憶制御部と、
前記単一確立状態が構築された後に、前記第1の常時接続が切断される場合に、前記メモリ内の前記認証情報を利用して、前記第2の常時接続を前記仲介サーバと確立する第3の確立部と、を備える、請求項1から10のいずれか一項に記載の通信装置。 - 前記通信装置は、さらに、
前記単一確立状態が構築された後に、前記通信装置への前記第1のサービスの提供を停止するための第1の停止指示が前記第1のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の停止要求を受信する第1の停止要求受信部と、
前記仲介サーバから前記第1の停止要求が受信される場合に、前記第1の常時接続を切断する切断部と、を備える、請求項11に記載の通信装置。 - 前記通信装置は、さらに、
前記単一確立状態が構築された後に、前記通信装置への前記第2のサービスの提供を停止するための第2の停止指示が前記第2のサービス提供サーバから前記仲介サーバに送信される場合に、前記仲介サーバから、前記第1の常時接続を利用して、前記第2のサービスに関連する第2の停止要求を受信する第2の停止要求受信部と、
前記仲介サーバから前記第2の停止要求が受信される場合に、前記メモリから前記認証情報を削除する削除部と、を備える、請求項11又は12に記載の通信装置。 - 仲介サーバのためのコンピュータプログラムであって、
前記仲介サーバのコンピュータを、以下の各部、即ち、
第1のサービス提供サーバから第1のサービスの提供を受けるための第1の確立指示が通信装置によって受け付けられる場合に、インターネットを介した第1の常時接続を前記通信装置と確立する第1の確立部と、
前記第1の常時接続が確立されている間に、前記第1のサービス提供サーバから、前記第1のサービスに関連する第1の処理を前記通信装置に実行させるための第1の実行指示を受信する第1の実行指示受信部と、
前記第1のサービス提供サーバから前記第1の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の処理要求を前記通信装置に送信する第1の処理要求送信部であって、前記第1の処理要求は、前記通信装置に前記第1の処理を実行させるための要求である、前記第1の処理要求送信部と、
前記第1のサービス提供サーバとは異なる前記第2のサービス提供サーバから第2のサービスの提供を受けるための第2の確立指示が前記通信装置によって受け付けられる場合に、前記インターネットを介した第2の常時接続を前記通信装置と確立する第2の確立部と、
前記第2の常時接続が確立されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第2の処理を前記通信装置に実行させるための第2の実行指示を受信する第2の実行指示受信部と、
前記第2のサービス提供サーバから前記第2の実行指示が受信される場合に、前記第2の常時接続を利用して、前記第2のサービスに関連する第2の処理要求を前記通信装置に送信する第2の処理要求送信部であって、前記第2の処理要求は、前記通信装置に前記第2の処理を実行させるための要求である、前記第2の処理要求送信部と、
単一確立状態が構築されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第3の処理を前記通信装置に実行させるための第3の実行指示を受信する第3の実行指示受信部であって、前記単一確立状態は、特定の場合に、前記通信装置によって構築され、前記特定の場合は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が前記通信装置によって受け付けられる場合と、前記第2の常時接続が確立されている状態において、前記第1の確立指示が前記通信装置によって受け付けられる場合と、のうちの少なくとも一方の場合を含む、前記第3の実行指示受信部と、
前記第2のサービス提供サーバから前記第3の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第2のサービスに関連する第3の処理要求を前記通信装置に送信する第3の処理要求送信部であって、前記第3の処理要求は、前記通信装置に前記第3の処理を実行させるための要求である、前記第3の処理要求送信部と、
として機能させる、コンピュータプログラム。 - 仲介サーバであって、
第1のサービス提供サーバから第1のサービスの提供を受けるための第1の確立指示が通信装置によって受け付けられる場合に、インターネットを介した第1の常時接続を前記通信装置と確立する第1の確立部と、
前記第1の常時接続が確立されている間に、前記第1のサービス提供サーバから、前記第1のサービスに関連する第1の処理を前記通信装置に実行させるための第1の実行指示を受信する第1の実行指示受信部と、
前記第1のサービス提供サーバから前記第1の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第1のサービスに関連する第1の処理要求を前記通信装置に送信する第1の処理要求送信部であって、前記第1の処理要求は、前記通信装置に前記第1の処理を実行させるための要求である、前記第1の処理要求送信部と、
前記第1のサービス提供サーバとは異なる前記第2のサービス提供サーバから第2のサービスの提供を受けるための第2の確立指示が前記通信装置によって受け付けられる場合に、前記インターネットを介した第2の常時接続を前記通信装置と確立する第2の確立部と、
前記第2の常時接続が確立されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第2の処理を前記通信装置に実行させるための第2の実行指示を受信する第2の実行指示受信部と、
前記第2のサービス提供サーバから前記第2の実行指示が受信される場合に、前記第2の常時接続を利用して、前記第2のサービスに関連する第2の処理要求を前記通信装置に送信する第2の処理要求送信部であって、前記第2の処理要求は、前記通信装置に前記第2の処理を実行させるための要求である、前記第2の処理要求送信部と、
単一確立状態が構築されている間に、前記第2のサービス提供サーバから、前記第2のサービスに関連する第3の処理を前記通信装置に実行させるための第3の実行指示を受信する第3の実行指示受信部であって、前記単一確立状態は、特定の場合に、前記通信装置によって構築され、前記特定の場合は、前記第1の常時接続が確立されている状態において、前記第2の確立指示が前記通信装置によって受け付けられる場合と、前記第2の常時接続が確立されている状態において、前記第1の確立指示が前記通信装置によって受け付けられる場合と、のうちの少なくとも一方の場合を含む、前記第3の実行指示受信部と、
前記第2のサービス提供サーバから前記第3の実行指示が受信される場合に、前記第1の常時接続を利用して、前記第2のサービスに関連する第3の処理要求を前記通信装置に送信する第3の処理要求送信部であって、前記第3の処理要求は、前記通信装置に前記第3の処理を実行させるための要求である、前記第3の処理要求送信部と、
を備える、仲介サーバ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020058720A JP2021157626A (ja) | 2020-03-27 | 2020-03-27 | 通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020058720A JP2021157626A (ja) | 2020-03-27 | 2020-03-27 | 通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021157626A true JP2021157626A (ja) | 2021-10-07 |
Family
ID=77919741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020058720A Pending JP2021157626A (ja) | 2020-03-27 | 2020-03-27 | 通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021157626A (ja) |
-
2020
- 2020-03-27 JP JP2020058720A patent/JP2021157626A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6993562B2 (en) | Method and system to print via email | |
US6631407B1 (en) | Device management network system, management server, and computer readable medium | |
US6970923B1 (en) | Device management network system management server and computer readable medium | |
JP5522095B2 (ja) | プリンタ | |
US20050102362A1 (en) | Instant messaging messages and commands for status and control | |
CN1976384B (zh) | 认证代理装置和认证方法 | |
US20130314746A1 (en) | Information processing apparatus and method for controlling same | |
JP2019204275A (ja) | 画像処理装置、及び、画像処理装置のためのコンピュータプログラム | |
US20090080021A1 (en) | Image processing apparatus and printing request making method | |
JP3777835B2 (ja) | 画像形成装置 | |
JP7035803B2 (ja) | 画像処理装置、及び、画像処理装置のためのコンピュータプログラム | |
JP2007257481A (ja) | 印刷デバイス | |
JP2022102673A (ja) | 画像処理装置及び画像処理装置のためのコンピュータプログラム | |
US20030076522A1 (en) | Document printing system | |
JP2021157626A (ja) | 通信装置と仲介サーバのためのコンピュータプログラムと仲介サーバ | |
US20090128855A1 (en) | Method and apparatus printing e-mail | |
JP4231241B2 (ja) | ネットワークにおける通信 | |
JP2022131754A (ja) | サーバ及びサーバのためのコンピュータプログラム | |
US20030016393A1 (en) | Electronic service transaction and method | |
JP2022049518A (ja) | サーバ、及び、サーバのためのコンピュータプログラム | |
JP7494661B2 (ja) | 印刷装置及びサーバ | |
US11625211B2 (en) | Printer capable of receiving print job from server and non-transitory computer-readable recording medium storing computer-readable instructions for printer | |
JP7196599B2 (ja) | 機能実行装置及び機能実行装置のためのコンピュータプログラム | |
JP7447686B2 (ja) | 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム | |
JP2019145961A (ja) | 通信装置 |