JP2021051677A - 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム - Google Patents

通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム Download PDF

Info

Publication number
JP2021051677A
JP2021051677A JP2019175619A JP2019175619A JP2021051677A JP 2021051677 A JP2021051677 A JP 2021051677A JP 2019175619 A JP2019175619 A JP 2019175619A JP 2019175619 A JP2019175619 A JP 2019175619A JP 2021051677 A JP2021051677 A JP 2021051677A
Authority
JP
Japan
Prior art keywords
server
information
communication device
related information
data
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.)
Granted
Application number
JP2019175619A
Other languages
English (en)
Other versions
JP7363286B2 (ja
Inventor
齋藤 健
Takeshi Saito
齋藤  健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2019175619A priority Critical patent/JP7363286B2/ja
Publication of JP2021051677A publication Critical patent/JP2021051677A/ja
Application granted granted Critical
Publication of JP7363286B2 publication Critical patent/JP7363286B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】通信装置とサーバとの間で無駄な通信が実行されることを抑制するための技術を提供する。【解決手段】第1のサーバは、第2のサーバから第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、第1の指示情報を通信装置に送信することを試行し、通信装置と第1のサーバとの間にセッションが確立されていないことに起因して、通信装置への第1の指示情報の送信が失敗する場合に、失敗情報を第2のサーバに送信し、失敗情報が第2のサーバに送信される場合に、第2のサーバから、第2の関連情報を取得するための取得情報を受信し、第2のサーバから取得情報が受信された後に、通信装置と第1のサーバとの間にセッションが確立される場合に、取得情報を利用して第2の関連情報を取得し、セッションを利用して、第2の指示情報を通信装置に送信する。【選択図】図6

Description

本明細書では、端末装置と通信装置との間の通信を仲介するサーバに関する技術を開示する。
特許文献1には、サーバからプリンタに印刷データを送信し、プリンタに印刷を実行させる技術が開示されている。サーバとプリンタとの間には、XMPP(eXtensible Messaging and Presence Protocolの略)接続が確立されている。サーバは、端末から印刷依頼としての電子メールを受信すると、印刷データを生成し、XMPP接続を利用して、印刷待ち情報をプリンタに送信する。印刷待ち情報を受信したプリンタは、印刷データをサーバに要求して、サーバから印刷データを受信する。これにより、プリンタは、印刷データに基づいた印刷を実行する。
ここで、例えば、プリンタの電源が遮断されると、XMPP接続は切断される。XMPP接続が切断されている状態では印刷待ち情報の送信が失敗し、サーバは、エラー情報を端末に送信する。その後、プリンタの電源が再び投入されると、プリンタは、サーバとのXMPP接続を再び確立するとともに、印刷データをサーバに要求する。これにより、プリンタは、電源が遮断されている間にサーバで生成された印刷データを受信して印刷を実行することができる。
特開2015−111424号公報
上記の技術では、プリンタは、電源が遮断されている間にサーバで印刷データが生成されていない状況でも、電源が再び投入される場合に、印刷データをサーバに要求し得る。即ち、プリンタとサーバとの間で無駄な通信が実行され得る。
本明細書では、通信装置とサーバとの間で無駄な通信が実行されることを抑制するための技術を提供する。
本明細書によって開示される通信システムは、通信装置と、第1のサーバと、第2のサーバと、を備え、前記第2のサーバは、端末装置から第1のデータが受信される場合に、前記第1のデータに関連する第1の関連情報を前記第1のサーバに送信する第1の関連情報送信部を備え、前記第1のサーバは、前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を前記通信装置に送信することを試行する試行部と、前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、失敗情報を前記第2のサーバに送信する失敗情報送信部と、を備え、
前記第2のサーバは、さらに、前記第1のサーバから前記失敗情報が受信される場合に、前記第1のデータに関係する第2の関連情報を取得するための取得情報を前記第1のサーバに送信する取得情報送信部を備え、前記第1のサーバは、さらに、前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得する取得部と、前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信する指示情報送信部を備え、前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信する装置側送信部を備え、前記第2のサーバは、さらに、前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信するデータ送信部を備える。
上記の構成によれば、通信装置と第1のサーバとの間にセッションが確立されていないことに起因して、通信装置への第1の指示情報の送信が失敗した後に、通信装置と第1のサーバとの間にセッションが確立される場合に、通信装置から第1のサーバに要求が送信されなくても、第1のサーバから通信装置に第2の指示情報が送信される。これにより、通信装置は、第2の指示情報に対応する第2の関連情報を第2のサーバに送信して、第2のサーバから第1のデータを用いて得られる第2のデータを受信することができる。このように、第1の指示情報の送信の失敗後にセッションが確立される場合に、通信装置から第1のサーバに要求が送信されないので、通信装置と第1のサーバとの間で無駄な通信が実行されることを抑制することができる。
また、本明細書によって開示される第1のサーバは、第2のサーバが端末装置から第1のデータを受信する場合に、前記第2のサーバから、前記第1のデータに関連する第1の関連情報を受信する第1の関連情報受信部と、前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する試行部と、前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、失敗情報を前記第2のサーバに送信する失敗情報送信部と、前記失敗情報が前記第2のサーバに送信される場合に、前記第2のサーバから、前記第1のデータに関係する第2の関連情報を取得するための取得情報を受信する取得情報受信部と、前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得する取得部と、前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信する指示情報送信部であって、前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信し、前記第2のサーバは、前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、前記指示情報送信部と、を備える。
上記の構成によれば、第1のサーバは、通信装置と第1のサーバとの間にセッションが確立されていないことに起因して、通信装置への第1の指示情報の送信が失敗した後に、通信装置と第1のサーバとの間にセッションが確立される場合に、通信装置から第1のサーバに要求が送信されなくても、第2の指示情報を通信装置に送信する。第1の指示情報の送信の失敗後にセッションが確立される場合に、通信装置から第1のサーバに要求が送信されないので、通信装置と第1のサーバとの間で無駄な通信が実行されることを抑制することができる。
本明細書によって開示される第2のサーバは、端末装置から第1のデータが受信される場合に、前記第1のデータに関連する第1の関連情報を第1のサーバに送信する第1の関連情報送信部であって、前記第1のサーバは、前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する、前記第1の関連情報送信部と、前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、前記第1のサーバから失敗情報を受信する失敗情報受信部と、前記第1のサーバから前記失敗情報が受信される場合に、前記第1のデータに関係する第2の関連情報を取得するための取得情報を前記第1のサーバに送信する取得情報送信部であって、前記第1のサーバは、前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得し、前記第1のサーバは、前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信し、前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信する、前記取得情報送信部と、前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、データ送信部と、を備える。
上記の構成によれば、第2のサーバは、通信装置と第1のサーバとの間にセッションが確立されていないことに起因して、通信装置への第1の指示情報の送信が失敗する場合に、取得情報を第1のサーバに送信する。これにより、第1のサーバは、通信装置への第1の指示情報の送信が失敗した後に、通信装置と第1のサーバとの間にセッションが確立される場合に、取得情報を利用して、第2の関連情報を取得し、第2の関連情報に対応する第2の指示情報を通信装置に送信することができる。即ち、通信装置から第1のサーバに要求が送信されなくても、第1のサーバから通信装置に第2の指示情報が送信される。第1の指示情報の送信の失敗後にセッションが確立される場合に、通信装置から第1のサーバに要求が送信されないので、通信装置と第1のサーバとの間で無駄な通信が実行されることを抑制することができる。
上記の第1のサーバ及び第2のサーバを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
通信システムの構成を示す。 通信システム内の各装置の構成を示すブロック図を示す。 セットアップ処理のシーケンス図を示す。 図3の続きを示す。 メール印刷を実行するための処理のシーケンス図を示す。 XMPPセッションが確立されていない具体的なケースを示す。 第2実施例に係るアプリ印刷を実行するための処理のシーケンス図を示す。
(第1実施例)
(通信システム2の構成:図1)
図1に示されるように、通信システム2は、XMPP(Extensible Messaging and Presence Protocolの略)サーバ10、APPサーバ100、多機能機200、端末装置300と、を備える。なお、以下では、多機能機のことを「MFP(Multi-Function Peripheralの略)」と呼ぶ。
XMPPサーバ10、APPサーバ100、及び、端末装置300は、インターネット8に接続されている。XMPPサーバ10は、インターネット8を介して、各装置100、300と通信可能である。また、MFP200は、LAN(Local Area Network)4に接続されている。LAN4は、インターネット8に接続されている。MFP200は、LAN4及びインターネット8を介して、各装置10、100、300と通信可能である。なお、LAN4は、有線LANでもいいし、無線LANでもいい。
(XMPPサーバ10の構成:図2)
XMPPサーバ10は、MFP(例えばMFP200)とのXMPPセッションを確立するためのサーバである。XMPPサーバ10は、MFP200等のベンダによってインターネット8上に設置される。
XMPPセッションは、XMPPに従ったセッションである。XMPPサーバ10は、XMPPセッションを利用すれば、MFPから要求を受信しなくても、当該MFPが所属するLANのファイヤウォール(例えばルータによって形成されるファイヤウォール)を越えて、当該MFPに要求を送信することができる。即ち、XMPPセッションは、サーバプッシュ型の通信を実行可能なセッションである。XMPPセッションは、MFPの電源がOFFされるまで確立され続ける。なお、XMPPサーバ10からMFPに要求を送信する仕組み(即ち、サーバプッシュ型の通信を実行するための仕組み)は、XMPPセッションではなく、他の手法であってもよい。例えば、MFPとXMPPサーバ10との間にHTTPS(Hypertext Transfer Protocol Secureの略)に従ったセッションが確立されてもよい。
XMPPサーバ10は、ネットワークインターフェイス16と、制御部30と、を備える。各部16、30は、バス線(符号省略)に接続されている。なお、以下では、インターフェースのことを「I/F」と記載する。ネットワークI/F16は、インターネット8を介した通信を実行するためのI/Fであり、インターネット8(図1参照)に接続されている。制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に記憶されているプログラム40に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、上記のプログラム40の他に、管理テーブル42を記憶する。
管理テーブル42は、MFPに関する情報を管理するためのテーブルである。管理テーブル42は、複数個のMFPのそれぞれについて、当該MFPを管理するための管理ID(Identifierの略)と、当該MFPから取得した識別情報であるUIDと、当該MFPのモデル情報と、当該MFPのアクセストークンと、を関連付けて記憶する。モデル情報は、対応するMFPのモデルに関する情報(例えば、モデル名、性能)を示す。アクセストークンは、対応するMFPとのXMPPセッションを確立するための認証情報である。ここで、XMPPサーバ10は、APPサーバ100から後述するCall Back URL(Uniform Resource Locatorの略)を受信する場合に、管理IDと関連付けて、受信済みのCall Back URLを管理テーブル42に記憶する。
(APPサーバ100の構成)
APPサーバ100は、メール印刷のための通信をMFP(例えばMFP200)と実行するためのサーバである。メール印刷は、電子メールに含まれる画像データに対応する画像の印刷をMFPに実行させる機能である。APPサーバ100は、MFP200等のベンダによってインターネット8上に設置される。
APPサーバ100は、ネットワークI/F116と、制御部130と、を備える。各部116、130は、バス線(符号省略)に接続されている。ネットワークI/F116は、インターネット8(図1参照)に接続されている。制御部130は、CPU132と、メモリ134と、を備える。CPU132は、メモリ134に記憶されているプログラム140に従って、様々な処理を実行する。メモリ134は、上記のプログラム140の他に、デバイステーブル142と、ジョブテーブル144と、を記憶する。
デバイステーブル142は、MFPに関する情報を登録するテーブルである。デバイステーブル142は、複数個のMFPのそれぞれについて、当該MFPから取得したUIDと、XMPPサーバ10において当該UIDに関連付けて記憶されている管理IDと、メール印刷で利用されるメールアドレスと、イベント情報と、を関連付けて記憶する。イベント情報は、APPサーバ100内で発生したイベントに関する情報である。イベント情報には、様々なイベントに関する情報が記述され得る。例えば、APPサーバ100が後述Call Back URLをXMPPサーバ10に送信するイベントが発生した場合、イベント情報には、当該Call Back URLが記述される。
ジョブテーブル144は、複数個の印刷ジョブを管理するテーブルである。ジョブテーブル144は、複数個の印刷ジョブのそれぞれについて、UIDと、管理IDと、当該印刷ジョブを識別するジョブIDと、当該印刷ジョブの印刷対象に対応する画像データのファイル名と、当該印刷ジョブに対応する印刷URLと、当該印刷ジョブの有効期限を示す有効期限情報と、当該印刷ジョブに対応する状態情報と、を関連付けて記憶する。印刷URLについては後述する。状態情報は、対応する印刷ジョブの状態を示す。例えば、対応する印刷ジョブの印刷URLのMFPへの送信が成功して、MFPで印刷が実行されている場合に、状態情報は、「印刷開始」を示す。また、例えば、対応する印刷ジョブの印刷URLのMFPへの送信が失敗した場合に、状態情報は、「失敗」を示す。
メール印刷では、APPサーバ100とXMPPサーバ10が連携して動作する。詳しくは後述するが、XMPPセッションを利用することによって、MFPから要求を受信することなく、電子メールに含まれている画像データに対応する画像の印刷をMFPに実行させることできる。また、ベンダは、APPサーバ100以外の他のAPPサーバをインターネット8上に設置する。他のAPPサーバは、メール印刷以外のインターネット8を利用した他の機能(例えば、インターネット8を介して設定値をMFPに送信する機能)のための通信をMFPと実行するためのサーバである。当該他の機能でも、他のAPPサーバとXMPPサーバ10が連携して動作する。即ち、1個のXMPPサーバ10と複数個のAPPサーバが連動して動作する。1個のXMPPサーバ10とMFPとの間にXMPPセッションが確立されることにより、インターネット8を利用した複数個の機能をMFPに実行させることができる。
(MFP200の構成)
MFP200は、印刷機能、スキャン機能、及び、ファクシミリ機能を含む多機能を実行可能な周辺装置(即ちLAN4に接続されている端末装置の周辺装置)である。MFP200は、表示部214と、LANI/F216と、印刷実行部218と、PSTN(Public Switched Telephone Networkの略)I/F220と、制御部230と、を含む。各部214〜230は、バス線(符号省略)に接続されている。表示部214は、様々な情報を表示するためのディスプレイである。表示部214は、いわゆるタッチパネルであり、操作部としても機能する。LANI/F216は、LAN4(図1参照)に接続されている。印刷実行部218は、インクジェット方式、レーザ方式等の印刷機構を備える。PSTNI/F220は、ファクシミリ通信を実行するためのI/Fである。
制御部230は、CPU232と、メモリ234と、を備える。CPU232は、メモリ234に記憶されているプログラム240に従って、様々な処理を実行する。メモリ234は、さらに、MFP200のUID「u01」と、MFP200のモデル情報MIと、を記憶する。UIDは、MFP200を利用するユーザを識別する情報(例えばアカウント名)である。なお、変形例では、UIDは、MFP200を識別する情報(例えばシリアル番号)でもよい。
(セットアップ処理:図3、図4)
図3、図4を参照して、メール印刷の通信に利用される情報をAPPサーバ100に登録して、XMPPセッションを確立するセットアップ処理を説明する。なお、以下では、各デバイスの各CPU(例えばXMPPサーバ10のCPU32等)が実行する処理について、理解の容易さの観点から、各CPUを主体として記載せずに、各デバイス(例えばXMPPサーバ10等)を主体として記載する。また、以下では、MFP200と各サーバ10、100との間では、LAN4とインターネット8を介して、通信が実行される。また、XMPPサーバ10とAPPサーバ100との間では、インターネット8を介して、通信が実行される。以下では、特に言及しない限り、「LAN4を介して」及び「インターネット8を介して」という説明を省略する。
T5では、MFP200は、ユーザからメール印刷設定を「無効」から「有効」に変更するための操作を受け付ける。メール印刷設定は、メール印刷の実行を許容するのか否かの設定を示す。「無効」は、メール印刷の実行を禁止することを示し、「有効」は、メール印刷の実行を許容することを示す。メール印刷設定は、デフォルトでは、「無効」を示す。
MFP200は、T5において、メール印刷設定が「無効」から「有効」に変更されると、T10において、メール印刷の通信に利用される情報の登録を要求する登録要求をAPPサーバ100に送信する。登録要求は、UID「u01」を含む。
APPサーバ100は、T10において、MFP200から登録要求を受信すると、T12において、メールアドレスMAを生成する。メールアドレスMAは、ローカル部「mfp1」とAPPサーバ100のドメイン名「app.com」を含む。
T14では、APPサーバ100は、管理IDをXMPPサーバ10に要求する管理ID要求をXMPPサーバ10に送信する。
XMPPサーバ10は、T14において、APPサーバ100から管理ID要求を受信する場合に、T16において、管理ID「a01」を生成し、管理ID「a01」を管理テーブル42に記憶する。
T18では、XMPPサーバ10は、管理ID「a01」をAPPサーバ100に送信する。
APPサーバ100は、T18において、XMPPサーバ10から管理ID「a01」を受信すると、T20において、T10の登録要求内のUID「u01」と、T18で受信した管理ID「a01」と、T12で生成されたメールアドレスMAと、空のイベント情報と、を関連付けてデバイステーブル142に記憶する。これにより、メール印刷の通信に利用される情報がAPPサーバ100に登録される。
続けて、T30では、APPサーバ100は、PIN(Personal Identification Numberの略)コードを要求するPINコード要求をXMPPサーバ10に送信する。
XMPPサーバ10は、T30において、APPサーバ100からPINコード要求を受信すると、T32において、PINコードCを生成する。XMPPサーバ10は、管理ID「a01」とPINコードCとを関連付けてメモリ34に記憶する。
T34では、XMPPサーバ10は、PINコードCをAPPサーバ100に送信する。これにより、APPサーバ100は、T36において、XMPPサーバ10から受信したPINコードCをMFP200に送信する。
MFP200は、T36において、APPサーバ100からPINコードCを受信すると、T50において、XMPPセッションを確立することを要求する確立要求をXMPPサーバ10に送信する。確立要求は、UID「u01」と、モデル情報MIと、PINコードCと、を含む。
XMPPサーバ10は、T50において、MFP200から確立要求を受信すると、T52において、確立要求内のPINコードの認証を実行する。本ケースでは、確立要求内のPINコードCがXMPPサーバ10のメモリ34内のPINコードCと一致するので、PINコードの認証が成功する。そして、XMPPサーバ10は、T54以降の処理を実行する。仮に、PINコードの認証が失敗する場合、XMPPサーバ10は、T54以降の処理を実行しない。
T54では、XMPPサーバ10は、アクセストークンATを生成する。XMPPサーバ10は、メモリ34から、PINコードCに関連付けて記憶されている管理ID「a01」を特定する。そして、XMPPサーバ10は、特定済みの管理ID「a01」と、確立要求内のUID「u01」と、確立要求内のモデル情報MIと、生成済みのアクセストークンATと、を関連付けて管理テーブル42に記憶する。なお、現時点では、Call Back URLは、管理ID「a01」に関連付けて管理テーブル42に記憶されない。
T58では、XMPPサーバ10は、アクセストークンATをMFP200に送信する。これにより、MFP200は、T70において、アクセストークンATを利用して、XMPPサーバ10とのXMPPセッションを確立する。
また、MFP200は、XMPPセッションの確立が完了すると、T80において、メールアドレスを要求するメールアドレス要求をAPPサーバ100に送信する。メールアドレス要求は、UID「u01」を含む。
APPサーバ100は、T80において、MFP200からメールアドレス要求を受信すると、T82において、メールアドレス要求内のUID「u01」に関連付けて記憶されているメールアドレスMAをMFP200に送信する。
MFP200は、T82において、APPサーバ100からメールアドレスMAを受信すると、T84において、メールアドレスMAを表示部214に表示させる。これにより、ユーザは、メールアドレスMAを知ることができる。
続けて、図4に示すように、MFP200は、メールアドレスMAを印刷する。具体的には、MFP200は、T100において、メールアドレスMAの印刷のための印刷URLを要求する印刷URL要求をAPPサーバ100に送信する。印刷URL要求は、UID「u01」を含む。
APPサーバ100は、T100において、MFP200から印刷URL要求を受信すると、デバイステーブル142から印刷URL要求内のUID「u01」に関連付けて記憶されている情報(即ち管理ID「a01」とメールアドレスMA)を特定する。そして、APPサーバ100は、T102において、モデル情報を要求するモデル情報要求をXMPPサーバ10に送信する。モデル情報要求は、特定済みの管理ID「a01」を含む。
XMPPサーバ10は、T102において、APPサーバ100からモデル情報要求を受信すると、T104において、モデル情報要求内の管理ID「a01」に関連付けて記憶されているモデル情報MIをAPPサーバ100に送信する。
APPサーバ100は、T104において、XMPPサーバ10からモデル情報MIを受信すると、T106において、メールアドレスMAをコード化することによってQRコード(登録商標)QCを生成する。
T108では、APPサーバ100は、メールアドレスMAと生成済みのQRコードQCを含む画像に対応する画像データを生成する。そして、APPサーバ100は、モデル情報MIを利用して、当該画像データを変換してMFP200が解釈可能なデータ形式を有する印刷データPD1を生成する。ここで、APPサーバ100は、APPサーバ100に予め記憶されている印刷設定に従って、印刷データPD1を生成する。
T112では、APPサーバ100は、印刷URL「http://app.com/pd1」をXMPPサーバ10に送信する。印刷URL「http://app.com/pd1」は、印刷データPD1が記憶されているAPPサーバ100内の位置を示す。印刷URL「http://app.com/pd1」内の文字列「pd1」は、印刷データPD1のファイル名である。
XMPPサーバ10は、T112において、APPサーバ100から印刷URL「http://app.com/pd1」を受信すると、T114において、MFP200とのXMPPセッションを利用して、印刷URL「http://app.com/pd1」をMFP200に送信する。
MFP200は、T114において、XMPPサーバ10から印刷URL「http://app.com/pd1」を受信すると、印刷データを要求するデータ要求をAPPサーバ100に送信する。データ要求は、印刷URL「http://app.com/pd1」を含むHTTPコマンドである。
APPサーバ100は、T130において、MFP200からデータ要求を受信すると、T132において、データ要求内の印刷URL「http://app.com/pd1」によって示される位置に記憶されている印刷データPD1をMFP200に送信する。
MFP200は、T132において、APPサーバ100から印刷データPD1を受信すると、T134において、印刷データPD1に従って、メールアドレスMAとQRコードQCとを含む画像の印刷を実行する。これにより、ユーザは、メールアドレスMAを知ることができる。また、ユーザは、端末装置(例えば300)を操作して、当該端末装置のカメラでQRコードQCを撮影することによって、メールアドレスMAを当該端末装置に入力することができる。
(メール印刷を実行するための処理:図5)
図5を参照して、メール印刷を実行するための処理を説明する。T200では、端末装置300は、メールアドレスMAを送信先アドレスとして含む電子メールEMをAPPサーバ100に送信する。電子メールEMには、印刷対象の画像に対応する画像データが含まれている。
APPサーバ100は、T200において、端末装置300から電子メールEMを受信すると、デバイステーブル142から電子メールEMに含まれるメールアドレスMAに関連付けて記憶されている管理ID「a01」を特定する。T202、T204は、図4のT102、T104と同様である。
T208では、APPサーバ100は、モデル情報MIを利用して、電子メールEMに含まれている画像データを変換してMFP200が解釈可能なデータ形式を有する印刷データPD2を生成する。ここで、APPサーバ100は、ユーザによってAPPサーバ100に入力された印刷設定(例えば、用紙サイズ)に従って、印刷データPD2を生成する。なお、変形例では、APPサーバ100は、電子メールEMの本文に記述されている印刷設定に従って、印刷データPD2を生成してもよい。
T210では、APPサーバ100は、印刷データPD2に従って実行される印刷ジョブに関する情報をジョブテーブル144に記憶する。具体的には、APPサーバ100は、UID「u01」に関連付けて、管理ID「a01」と、新しいジョブID「j01」と、電子メールEMに含まれている画像データのファイル名「id1」と、印刷URL「http://app.com/pd2」と、有効期限情報PI1と、空の状態情報と、をジョブテーブル144に記憶する。ここで、印刷URL「http://app.com/pd2」は、印刷データPD2が記憶されているAPPサーバ100内の位置を示し、文字列「pd2」は、印刷データPD2のファイル名である。
T212では、APPサーバ100は、管理ID「a01」と、印刷URL「http://app.com/pd2」と、有効期限情報と、をXMPPサーバ10に送信する。これにより、XMPPサーバ10は、管理ID「a01」と、印刷URL「http://app.com/pd2」と、有効期限情報と、を関連付けてメモリ34に記憶する。
XMPPサーバ10は、T212において、APPサーバ100から印刷URL「http://app.com/pd2」等を受信すると、XMPPセッションを利用して、印刷URL「http://app.com/pd2」をMFP200に送信することを試行する。まず、XMPPサーバ10は、T220において、MFP200とのXMPPセッションが現在確立されているのか否かを判断する。例えば、XMPPサーバ10は、MFP200とのXMPPセッションが現在確立されている場合に、MFP200を識別する管理ID「a01」と関連付けて、XMPPセッションが現在確立されていることを示す確立情報をメモリ34に記憶する。XMPPサーバ10は、確立情報がT212で受信した管理ID「a01」に関連付けて記憶されている場合に、MFP200とのXMPPセッションが現在確立されていると判断する(T220でYES)。この場合、XMPPサーバ10は、T222において、XMPPセッションを利用して、印刷URL「http://app.com/pd2」をMFP200に送信する。即ち、MFP200への印刷URL「http://app.com/pd2」の送信が成功する。
MFP200は、T222において、XMPPサーバ10から印刷URL「http://app.com/pd2」を受信すると、T224において、印刷URL「http://app.com/pd2」を受信したことを示す応答をXMPPサーバ10に送信する。
XMPPサーバ10は、T224において、MFP200から応答を受信すると、T226において、変更指示をAPPサーバ100に送信する。当該変更指示は、印刷URL「http://app.com/pd2」に対応する状態情報を「印刷開始」に変更する指示である。これにより、APPサーバ100は、T228において、変更指示に従って、ジョブテーブル144内の印刷URL「http://app.com/pd2」に対応する状態情報を「印刷開始」に変更する。
また、MFP200は、T222において、XMPPサーバ10から印刷URL「http://app.com/pd2」を受信すると、T230において、印刷URL「http://app.com/pd2」を含むデータ要求をAPPサーバ100に送信する。上記したように、データ要求は、HTTPコマンドである。印刷URLを利用することで、汎用的なHTTPコマンドを利用して、APPサーバ100から印刷データを受信することができる。
APPサーバ100は、T230において、MFP200からデータ要求を受信すると、印刷URL「http://app.com/pd2」によって示されるAPPサーバ100内の位置から印刷データPD2を取得する。
T232では、APPサーバ100は、印刷データPD2をMFP200に送信する。これにより、MFP200は、T234において、印刷データPD2に対応する画像の印刷を実行する。
一方、XMPPサーバ10は、確立情報がT212で受信した管理ID「a01」に関連付けて記憶されてない場合に、MFP200とのXMPPセッションが現在確立されていないと判断する(T220でNO)。この場合、MFP200への印刷URL「http://app.com/pd2」の送信が失敗する。XMPPサーバ10は、T222の処理をスキップして、後述する図6のT250以降の処理を実行する。なお、MFP200への印刷URL「http://app.com/pd2」の送信が失敗する場合に、XMPPサーバ10は、メモリ34から印刷URL「http://app.com/pd2」を削除する。印刷URLがXMPPサーバ10から外部へ漏洩することを抑制することができる。
(XMPPセッションが確立されていない具体的なケース:図6)
図6を参照して、MFP200とのXMPPセッションが現在確立されていない具体的なケースについて説明する。本ケースでは、MFP200の電源がOFFされていることに起因して、MFP200とのXMPPセッションが切断されている。
XMPPサーバ10は、T250において、MFP200への印刷URL「http://app.com/pd2」の送信が失敗したことを示す失敗情報をAPPサーバ100に送信する。
APPサーバ100は、T250において、XMPPサーバ10から失敗情報を受信すると、T252において、デバイステーブル142及びジョブテーブル144においてに印刷URL「http://app.com/pd2」に関連付けられているイベント情報にCall Back URL「http://app.com/iventprinteronline」を書き込む。Call Back URL内の文字列「iventprinteronline」は、APPサーバ100がXMPPサーバ10からCall Back URLを受信した場合に、APPサーバ100が実行すべき処理を示す。文字列「iventprinteronline」によって示される処理は、XMPPサーバ10からの通知に応じて、APPサーバ100が印刷URLをXMPPサーバ10に再送する処理である。
T253では、APPサーバ100は、ジョブテーブル144において印刷URL「http://app.com/pd2」に関連付けられている状態情報を「失敗」に変更する。
T254では、APPサーバ100は、イベント通知をXMPPサーバ10に送信する。イベント通知は、管理ID「a01」と、Call Back URLと、を含む。これにより、XMPPサーバ10は、管理テーブル42において管理ID「a01」に関連付けてCall Back URLを記憶する。
続いて、MFP200は、T256において、ユーザから電源をONするための操作を受け付ける。これにより、MFP200は、T260において、アクセストークンATを利用して、XMPPサーバ10とのXMPPセッションを確立する。
XMPPサーバ10は、T260において、MFP200とのXMPPセッションを確立すると、T262において、管理テーブル42においてXMPPセッションを確立したMFP200を識別する管理ID「a01」に関連付けてCall Back URLが記憶されているのか否かを判断する。XMPPサーバ10は、管理テーブル42において管理ID「a01」に関連付けてCall Back URLが記憶されていると判断する場合(T262でYES)に、T264以降の処理を実行する。一方、XMPPサーバ10は、管理テーブル42において管理ID「a01」に関連付けてCall Back URLが記憶されていないと判断すると(T262でNO)、T264以降の処理をスキップし、図6の処理を終了する。
T264では、XMPPサーバ10は、メモリ34から管理ID「a01」に関連付けて記憶されている有効期限情報を特定する。そして、XMPPサーバ10は、現在日時が特定済みの有効期限情報によって示される有効期限内であるのか否かを判断する。XMPPサーバ10は、現在日時が有効期限内であると判断する場合(T262でYES)に、T264以降の処理を実行する。一方、XMPPサーバ10は、現在日時が有効期限を過ぎていると判断する場合(T262でYES)に、T264以降の処理をスキップして、図6の処理を終了する。このような構成によれば、電子メールEMに含まれている画像の印刷を実行するための印刷ジョブについて有効期限を定めることができ、当該有効期限が過ぎる場合に、電子メールEMに含まれている画像の印刷を抑制することができる。
T266では、XMPPサーバ10は、メモリ34から管理ID「a01」に関連付けて記憶されているCall Back URLを特定する。そして、XMPPサーバ10は、XMPPセッションが確立されたことを通知する確立通知をAPPサーバ100に送信する。確立通知は、管理ID「a01」と、Call Back URLと、を含むHTTPコマンドである。
APPサーバ100は、T266において、XMPPサーバ10から確立通知を受信すると、T268において、確立通知内のCall Back URL文字列「iventprinteronline」に従って、T268、T270の処理を実行する。
T268では、APPサーバ100は、デバイステーブル142において、確立通知内の管理ID「a01」に関連付けられているイベント情報にCall Back URLが記述されていることを確認する。続いて、APPサーバ100は、ジョブテーブル144から、管理ID「a01」と状態情報「失敗」との双方に関連付けられている印刷URL「http://app.com/pd2」を特定する。そして、APPサーバ100は、T270において、管理ID「a01」と、特定済みの印刷URL「http://app.com/pd2」と、をXMPPサーバ10に送信する。
T274〜T284は、図5のT222〜T234と同様である。即ち、MFP200は、XMPPサーバ10とのXMPPセッションが再び確立される場合に、XMPPサーバ10に要求を送信することなく、XMPPサーバ10から印刷URL「http://app.com/pd2」を受信することができる。この結果、MFP200は、印刷データPD2に対応する画像の印刷を実行することができる。
ここで、図5のT208で印刷データPD2を生成してから図6のT260でXMPPセッションが確立されるまでの間に、APPサーバ100に記憶されている印刷設定がユーザによって変更される状況が想定される。この状況では、APPサーバ100は、変更後の印刷設定に従った印刷データPD3を新たに生成する。そして、APPサーバ100は、ジョブテーブル144において印刷URL「http://app.com/pd2」を印刷データPD3が記憶されている位置を示す印刷URL「http://app.com/pd3」に更新する。このようなケースでは、APPサーバ100は、T266において、XMPPサーバ10から確立通知を受信すると、印刷URL「http://app.com/pd3」をXMPPサーバ10に送信する。この結果、印刷URL「http://app.com/pd3」がMFP200に送信されて、MFP200は、APPサーバ100から印刷データPD3を受信することができる。そして、MFP200は、変更後の印刷設定に従った画像の印刷を実行することができる。
(本実施例の効果)
本実施例の構成によれば、MFP200とXMPPサーバ10との間にXMPPセッションが切断されていることに起因して、MFP200への印刷URL「http://app.com/pd2」の送信が失敗する場合に、APPサーバ100は、イベント通知をXMPPサーバ10に送信する(図6のT254)。これにより、XMPPサーバ10は、XMPPセッションが再び確立される場合に、イベント通知内の各情報を利用して、印刷URL「http://app.com/pd2」を取得する(T266〜T270)。そして、XMPPサーバ10は、XMPPセッションを利用して、印刷URL「http://app.com/pd2」をMFP200に送信する(T274)。即ち、XMPPサーバ10は、XMPPセッションが再び確立される場合に、MFP200からXMPPサーバ10に要求が送信されなくても、XMPPサーバ10からMFP200に印刷URL「http://app.com/pd2」が送信することができる。このように、印刷URLの送信の失敗後にXMPPセッションが確立される場合に、MFP200からXMPPサーバ10に要求が送信されないので、MFP200とXMPPサーバ10との間で無駄な通信が実行されることを抑制することができる。
また、例えば、T266〜T270の処理を実行しない、即ち、APPサーバ100が印刷URL「http://app.com/pd2」をXMPPサーバ10に再送しない比較例が想定される。この比較例では、例えば、XMPPサーバ10は、MFP200とのXMPPセッションが再び確立される場合に、Call Back URL内の文字列「iventprinteronline」に従って、XMPPサーバ10内のメモリ34から印刷URL「http://app.com/pd2」を取得する処理を実行し、XMPPセッションを利用して、取得済みの印刷URL「http://app.com/pd2」をMFP200に送信する。即ち、比較例では、XMPPサーバ10は、印刷URL「http://app.com/pd2」をメモリ34に記憶し続ける。これに対して、本実施例では、XMPPサーバ10は、Call Back URLを利用して、APPサーバ100から印刷URLを受信することができるので、印刷URL「http://app.com/pd2」をメモリ34に記憶し続ける必要がない。印刷URLがXMPPサーバ10から外部に漏洩することを抑制することができる。また、印刷設定の変更により印刷データが変更される場合でも、XMPPサーバ10は、Call Back URLを利用して、APPサーバ100から更新後の印刷データが記憶されている位置を示す最新の印刷URLを受信することができる。なお、変形例では、比較例の構成を採用してもよい。
(対応関係)
XMPPサーバ10、APPサーバ100、MFP200、端末装置300が、それぞれ、「第1のサーバ」、「第2のサーバ」、「通信装置」、「端末装置」の一例である。XMPPセッションが、「セッション」の一例である。印刷URL「http://app.com/pd2」が、「第1の関連情報、第1の指示情報、第2の関連情報、第2の指示情報、第1のURL、及び、第2のURL」の一例である。Call Back URL及び管理ID「a01」が、「取得情報」の一例である。図5のT200の電子メールEMに含まれる画像データが、「第1のデータ」の一例である。印刷データPD2が、「第2のデータ」の一例である。図6のT266の確立通知が、「特定の通知」の一例である。
管理ID「a01」が、「特定情報」の一例である。Call Back URLが、「特定のURL」の一例である。メールアドレスMAが、「特定のメールアドレス」の一例である。図6のT254でイベント通知が受信されてから有効期限の終期が経過するまでの期間が、「所定期間」の一例である。図3のT82のメールアドレスMA及び図4のT132の印刷データPD1が、「出力情報」の一例である。
図5のT212、T220、図6のT250、T254、T270、T274、T280、T282が、それぞれ、「第1の関連情報送信部(及び第1の関連情報受信部)」、「試行部」、「失敗情報送信部(及び失敗情報受信部)」、「取得情報送信部(及び取得情報受信部)」、「取得部」、「指示情報送信部」、「装置側送信部」、「データ送信部」の一例である。
(第2実施例)
第1実施例では、メール印刷が実行される。これに代えて、第2実施例では、アプリ印刷が実行される。アプリ印刷では、APPサーバ100は、画像データを含む電子メールに代えて、画像データを含むHTTPコマンドを受信する。これにより、APPサーバ100とXMPPサーバ10が連携して動作して、HTTPコマンドに含まれる画像データに対応する画像の印刷をMFP200に実行させることができる。
(APPサーバ100の構成:図2)
本実施例のAPPサーバ100は、デバイステーブル142内の情報が異なる点を除いて、第1実施例のAPPサーバ100と同様である。具体的には、デバイステーブル142は、UIDと、管理IDと、端末装置の識別情報である端末IDと、イベント情報と、を関連付けて記憶する。
(セットアップ処理:図3)
図3を参照して、本実施例のセットアップ処理を説明する。本実施例の登録処理は、T10、T20、T36、T50の内容が異なり、T12、T80〜T84の処理、及び、図4の処理が実行されない点を除いて、第1実施例のセットアップ処理と同様である。
T10では、APPサーバ100は、端末装置300から、UID「u01」と端末ID「t01」とを含む登録要求を受信する。これにより、T20では、APPサーバ100は、UID「u01」と、管理ID「a01」と、端末ID「t01」と、空のイベント情報と、を関連付けてデバイステーブル142に記憶する。さらに、T36では、APPサーバ100は、XMPPサーバ10から受信したPINコードCを端末装置300に送信する。これにより、端末装置300は、PINコードCを表示する。
T50では、MFP200は、ユーザからPINコードCの入力を受け付ける。そして、MFP200は、入力済みのPINコードCを含む確立要求をXMPPサーバ10に送信する。
(アプリ印刷を実行するための処理:図7)
図7を参照して、メール印刷を実行するための処理を説明する。端末装置300は、T302において、ユーザの操作に応じて、画像の印刷を実行するための印刷アプリを起動する。端末装置300は、印刷アプリに従って、印刷対象の画像と印刷設定を選択するための選択画面を表示する。
T304では、端末装置300は、選択画面において画像と印刷設定の選択を受け付ける。T400では、端末装置300は、選択済みの画像に対応する画像データと、選択済みの印刷設定と、端末ID「t01」と、を含むHTTPコマンドをAPPサーバ100に送信する。
APPサーバ100は、T400において、HTTPコマンドを受信すると、デバイステーブル142からHTTPコマンドに含まれる端末ID「t01」に関連付けて記憶されている管理ID「a01」を特定する。T402〜T434は、図5のT202〜T234と同様である。
(本実施例の効果)
図7に示すように、本実施例でも、XMPPサーバ10は、T420において、MFP200とのXMPPセッションが現在確立されているのか否かを判断する。そして、XMPPサーバ10は、MFP200とのXMPPセッションが現在確立されていないと判断する場合(T420でNO)に、第1実施例の図6と同様の処理を実行する。即ち、本実施例でも、第1実施例と同様に、印刷URLの送信の失敗後にXMPPセッションが確立される場合に、MFP200からXMPPサーバ10に要求が送信されないので、MFP200とXMPPサーバ10との間で無駄な通信が実行されることを抑制することができる。
(対応関係)
図7のT400のHTTPコマンドに含まれる画像データが、「第1のデータ」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)「通信装置」は、MFP200に限らず、例えば、プリンタ、スキャナ、ファクシミリ装置、PC、サーバ等であってもよい。
(変形例2)上記の各実施例では、XMPPサーバ10は、XMPPセッションを利用して、印刷URLをMFP200に送信する(図5のT222、図6のT274)。これに代えて、XMPPサーバ10は、印刷URLを暗号化した情報をMFP200に送信してもよい。本変形例では、印刷URLを暗号化した情報が、「第1の指示情報(及び第2の指示情報)」の一例である。
(変形例3)「第2の関連情報」は、印刷URL「http://app.com/pd2」に限らず、変更後の印刷設定に従った印刷データPD3に対応する印刷URL「http://app.com/pd3」であってもよい。本変形例では、「第2の関連情報」は「第1の関連情報」と異なっていてもよい。なお、本明細書に記載の印刷URL及びCall Back URLは、「http://」を含むが、そのうちの少なくとも一方は、例えば、「https://」を含んでもよい。
(変形例4)上記の各実施例では、APPサーバ100は、画像データを変換して印刷データを生成し、当該印刷データをMFP200に送信する。これに代えて、APPサーバ100は、画像データそのものをMFP200に送信してもよい。本変形例では、「第2のデータ」は「第1のデータ」と同じであってもよい。
(変形例5)上記の各実施例では、APPサーバ100は、印刷データPD2が記憶されている位置を示す印刷URLをXMPPサーバ10に送信する(図5のT212)。これに代えて、APPサーバ100は、電子メールEM内の画像データが記憶されている位置を示すデータURLをXMPPサーバ10に送信してもよい。そして、APPサーバ100は、MFP200からデータURLを受信する場合に、データURLによって示される位置に記憶されている画像データを変換して印刷データを生成してもよい。本変形例では、データURLが、「第1の関連情報(及び第2の関連情報)」の一例である。
(変形例6)上記の各実施例では、XMPPサーバ10は、APPサーバ100から受信したCall Back URLを含む確立通知をAPPサーバ100に送信する(図6のT266)。これに代えて、XMPPサーバ10は、Call Back URLを利用して、APPサーバ100が実行すべき処理を示す指示通知を生成し、指示通知をAPPサーバ100に送信してもよい。本変形例では、指示通知が、「特定の通知」の一例である。
(変形例7)変形例として、上記の比較例の構成、即ち、XMPPサーバ10が、Call Back URL内の文字列「iventprinteronline」に従って、XMPPサーバ10のメモリ34から、記憶済みの印刷URL「http://app.com/pd2」を取得する構成を採用してもよい。本変形例では、「特定の通知」を省略可能である。
(変形例8)上記の各実施例では、XMPPサーバ10は、APPサーバ100から管理ID「a01」を受信し、XMPPセッションの再確立後に、管理ID「a01」を含む確立通知をAPPサーバ100に送信する(図6のT266)。これに代えて、XMPPサーバ10は、APPサーバ100に記憶されている印刷URLを識別するURL識別情報を受信し、XMPPセッションの再確立後に、URL識別情報をAPPサーバ100に送信してもよい。本変形例では、URL識別情報が、「取得情報」の一例であり、「特定情報」を省略可能である。
(変形例9)上記の各実施例では、APPサーバ100は、管理ID「a01」とCall Back URLとを含むイベント通知をXMPPサーバ10に送信する(図6のT254)。これに代えて、APPサーバ100は、管理ID「a01」のみを含むイベント通知をXMPPサーバ10に送信してもよい。本変形例では、「特定のURL」を省略可能である。
(変形例10)上記の各実施例では、APPサーバ100は、MFP200から登録要求が受信される場合に、メールアドレスMAをAPPサーバ100に登録する(図3のT20)。これに代えて、メールアドレスMAは、APPサーバ100に予め登録されていてもよい。本変形例では、「登録要求」を省略可能である。
(変形例11)図3のT80〜T84、図4の処理は、実行されなくてもよい。本変形例では、「出力情報」を省略可能である。
(変形例12)「第1の関連情報(及び第2の関連情報)」は、印刷URLに限らず、例えば、APPサーバ100に記憶されている印刷データ(又は画像データ)を識別するためのデータ識別情報であってもよい。本変形例では、「第1のURL(及び第2のURL)」を省略可能である。
(変形例13)図6のT264の処理は、実行されなくてもよい。本変形例では、「所定期間」を省略可能である。
(変形例14)「第1のデータ」は、画像データに限らず、例えば、MFP200の設定値であってもよい。
(変形例15)「第2のデータ」は、印刷データに限らず、例えば、画像データを含むファクシミリ情報であってもよい。この場合、MFP200は、APPサーバ100からファクシミリ情報を受信する場合に、ファクシミリ情報に含まれる画像データを変換してファクシミリデータを生成し、PSTNI/F220を介して、所定の宛先にファクシミリデータを送信してもよい。
(変形例16)上記の各実施例では、図3〜図7の各処理がソフトウェア(例えばプログラム40、140、240)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、8:インターネット、10:XMPPサーバ、16:ネットワークI/F、30:制御部、32:CPU、34:メモリ、40:プログラム、42:管理テーブル、100:APPサーバ、116:ネットワークI/F、130:制御部、132:CPU、134:メモリ、140:プログラム、142:デバイステーブル、144:ジョブテーブル、200:MFP、214:表示部、218:印刷実行部、220:PSTNI/F、230:制御部、232:CPU、234:メモリ、240:プログラム、300:端末装置、AT:アクセストークン、C:PINコード、EM:電子メール、MA:メールアドレス、MI:モデル情報、PD1、PD2、PD3:印刷データ、PI1:有効期限情報、QC:QRコード

Claims (21)

  1. 通信システムであって、
    通信装置と、
    第1のサーバと、
    第2のサーバと、を備え、
    前記第2のサーバは、
    端末装置から第1のデータが受信される場合に、前記第1のデータに関連する第1の関連情報を前記第1のサーバに送信する第1の関連情報送信部を備え、
    前記第1のサーバは、
    前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を前記通信装置に送信することを試行する試行部と、
    前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、失敗情報を前記第2のサーバに送信する失敗情報送信部と、を備え、
    前記第2のサーバは、さらに、
    前記第1のサーバから前記失敗情報が受信される場合に、前記第1のデータに関係する第2の関連情報を取得するための取得情報を前記第1のサーバに送信する取得情報送信部を備え、
    前記第1のサーバは、さらに、
    前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得する取得部と、
    前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信する指示情報送信部を備え、
    前記通信装置は、
    前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信する装置側送信部を備え、
    前記第2のサーバは、さらに、
    前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信するデータ送信部を備える、
    通信システム。
  2. 第1のサーバであって、
    第2のサーバが端末装置から第1のデータを受信する場合に、前記第2のサーバから、前記第1のデータに関連する第1の関連情報を受信する第1の関連情報受信部と、
    前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する試行部と、
    前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、失敗情報を前記第2のサーバに送信する失敗情報送信部と、
    前記失敗情報が前記第2のサーバに送信される場合に、前記第2のサーバから、前記第1のデータに関係する第2の関連情報を取得するための取得情報を受信する取得情報受信部と、
    前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得する取得部と、
    前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信する指示情報送信部であって、
    前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信し、
    前記第2のサーバは、前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、前記指示情報送信部と、
    を備える、第1のサーバ。
  3. 前記取得部は、
    前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用した特定の通知を前記第2のサーバに送信し、
    前記特定の通知を受信した前記第2のサーバから前記第2の関連情報を受信することによって、前記第2の関連情報を取得する、請求項2に記載の第1のサーバ。
  4. 前記取得情報は、前記第2のサーバが受信した前記第1のデータを特定するための特定情報を含み、
    前記特定の通知は、前記特定情報を含む、請求項3に記載の第1のサーバ。
  5. 前記取得情報は、前記第2のサーバが実行すべき処理を示す特定のURL(Uniform Resource Locatorの略)を含み、
    前記特定の通知は、前記特定のURLを含み、
    前記第2のサーバは、前記第1のサーバから前記特定のURLを含む前記特定の通知を受信する場合に、前記特定のURLに従って、前記第2の関連情報を前記第1のサーバに送信する、請求項3又は4のいずれか一項に記載の第1のサーバ。
  6. 前記第1のデータは、前記第2のサーバのドメイン名を含む特定のメールアドレスを送信先アドレスとして含む電子メールに含まれる、請求項2から5のいずれか一項に記載の第1のサーバ。
  7. 前記第2のサーバは、前記通信装置から登録要求を受信する場合に、前記特定のメールアドレスを前記第2のサーバに登録し、
    前記第1のサーバは、さらに、
    前記特定のメールアドレスが前記第2のサーバに登録された後に、前記通信装置との前記セッションを確立する確立部を備える、請求項6に記載の第1のサーバ。
  8. 前記特定のメールアドレスは、前記特定のメールアドレスが前記第2のサーバに登録された後に、前記通信装置によって出力される、請求項7に記載の第1のサーバ。
  9. 前記第1のデータは、前記端末装置を送信元とするHypertext Transfer Protocolに従ったコマンドに含まれる、請求項2から5のいずれか一項に記載の第1のサーバ。
  10. 前記第1の関連情報は、前記第2のサーバ内のデータの位置を示す第1のURL(Uniform Resource Locatorの略)を含み、
    前記第2の関連情報は、前記第2のサーバ内のデータの位置を示す第2のURLを含む、請求項2から9のいずれか一項に記載の第1のサーバ。
  11. 前記取得部は、前記第2のサーバから前記取得情報が受信されてから所定期間が経過する前に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記第2の関連情報を取得し、
    前記第2のサーバから前記取得情報が受信されてから前記所定期間が経過した後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記第2の関連情報は取得されない、請求項2から10のいずれか一項に記載の第1のサーバ。
  12. 前記通信装置は、印刷機能を実行可能な装置であり、
    前記第2のデータは、前記第2のデータに対応する画像の印刷を前記通信装置に実行させるためのデータである、請求項2から11のいずれか一項に記載の第1のサーバ。
  13. 前記セッションは、EXtensible Messaging and Presence Protocolに従う、請求項2から12のいずれか一項に記載のサーバ。
  14. 第2のサーバであって、
    端末装置から第1のデータが受信される場合に、前記第1のデータに関連する第1の関連情報を第1のサーバに送信する第1の関連情報送信部であって、
    前記第1のサーバは、前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する、前記第1の関連情報送信部と、
    前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、前記第1のサーバから失敗情報を受信する失敗情報受信部と、
    前記第1のサーバから前記失敗情報が受信される場合に、前記第1のデータに関係する第2の関連情報を取得するための取得情報を前記第1のサーバに送信する取得情報送信部であって、
    前記第1のサーバは、前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得し、
    前記第1のサーバは、前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信し、
    前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信する、前記取得情報送信部と、
    前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、データ送信部と、
    を備える、第2のサーバ。
  15. 前記第2のサーバは、さらに、
    前記取得情報が前記第1のサーバに送信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記第1のサーバから、前記取得情報を利用した特定の通知を受信する通知受信部と、
    前記第1のサーバから前記特定の通知が受信される場合に、前記特定の通知に従って、前記第2の関連情報を前記第2のサーバに送信する第2の関連情報送信部と、
    を備え、
    前記第1のサーバは、前記第2のサーバから前記第2の関連情報を受信することによって、前記第2の関連情報を取得する、請求項14に記載の第2のサーバ。
  16. 前記取得情報は、前記第2のサーバが受信した前記第1のデータを特定するための特定情報を含み、
    前記特定の通知は、前記特定情報を含む、請求項15に記載の第2のサーバ。
  17. 前記取得情報は、前記第2のサーバが実行すべき処理を示す特定のURL(Uniform Resource Locatorの略)を含み、
    前記特定の通知は、前記特定のURLを含み、
    前記第2の関連情報送信部は、前記第1のサーバから前記特定のURLを含む前記特定の通知を受信する場合に、前記特定のURLに従って、前記第2の関連情報を前記第1のサーバに送信する、請求項15又は16のいずれか一項に記載の第1のサーバ。
  18. 前記第1のデータは、前記第2のサーバのドメイン名を含む特定のメールアドレスを送信先アドレスとして含む電子メールに含まれる、請求項14から17のいずれか一項に記載の第2のサーバ。
  19. 前記第2のサーバは、さらに、
    メモリと、
    前記通信装置から登録要求を受信する場合に、前記特定のメールアドレスを前記メモリに登録する登録部と、
    前記特定のメールアドレスが前記メモリに登録された後に、前記特定のメールアドレスを出力するための出力情報を前記通信装置に送信する出力情報送信部と、を備える、請求項18に記載の第2のサーバ。
  20. 第1のサーバのためのコンピュータプログラムであって、
    前記コンピュータプログラムは、前記第1のサーバのコンピュータを、以下の各部、即ち、
    第2のサーバが端末装置から第1のデータを受信する場合に、前記第2のサーバから、前記第1のデータに関連する第1の関連情報を受信する第1の関連情報受信部と、
    前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する試行部と、
    前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、失敗情報を前記第2のサーバに送信する失敗情報送信部と、
    前記失敗情報が前記第2のサーバに送信される場合に、前記第2のサーバから、前記第1のデータに関係する第2の関連情報を取得するための取得情報を受信する取得情報受信部と、
    前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得する取得部と、
    前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信する指示情報送信部であって、
    前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信し、
    前記第2のサーバは、前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、前記指示情報送信部と、
    として機能させる、コンピュータプログラム。
  21. 第2のサーバのためのコンピュータプログラムであって、
    前記コンピュータプログラムは、前記第2のサーバのコンピュータを、以下の各部、即ち、
    端末装置から第1のデータが受信される場合に、前記第1のデータに関連する第1の関連情報を第1のサーバに送信する第1の関連情報送信部であって、
    前記第1のサーバは、前記第2のサーバから前記第1の関連情報が受信される場合に、サーバプッシュ型の通信を実行するためのセッションを利用して、前記第1の関連情報に対応する第1の指示情報を通信装置に送信することを試行する、前記第1の関連情報送信部と、
    前記通信装置と前記第1のサーバとの間に前記セッションが確立されていないことに起因して、前記通信装置への前記第1の指示情報の送信が失敗する場合に、前記第1のサーバから失敗情報を受信する失敗情報受信部と、
    前記第1のサーバから前記失敗情報が受信される場合に、前記第1のデータに関係する第2の関連情報を取得するための取得情報を前記第1のサーバに送信する取得情報送信部であって、
    前記第1のサーバは、前記第2のサーバから前記取得情報が受信された後に、前記通信装置と前記第1のサーバとの間に前記セッションが確立される場合に、前記取得情報を利用して、前記第2の関連情報を取得し、
    前記第1のサーバは、前記第2の関連情報が取得される場合に、前記セッションを利用して、前記第2の関連情報に対応する第2の指示情報を前記通信装置に送信し、
    前記通信装置は、前記第1のサーバから前記第2の指示情報が受信される場合に、前記第2の指示情報に対応する前記第2の関連情報を前記第2のサーバに送信する、前記取得情報送信部と、
    前記通信装置から前記第2の関連情報が受信される場合に、前記第2の関連情報に関連する前記第1のデータを用いて得られる第2のデータを前記通信装置に送信する、データ送信部と、
    として機能させる、コンピュータプログラム。
JP2019175619A 2019-09-26 2019-09-26 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム Active JP7363286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019175619A JP7363286B2 (ja) 2019-09-26 2019-09-26 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019175619A JP7363286B2 (ja) 2019-09-26 2019-09-26 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2021051677A true JP2021051677A (ja) 2021-04-01
JP7363286B2 JP7363286B2 (ja) 2023-10-18

Family

ID=75158016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019175619A Active JP7363286B2 (ja) 2019-09-26 2019-09-26 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP7363286B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130010333A1 (en) * 2010-04-07 2013-01-10 Pankaj Anand Device messaging
JP2016015561A (ja) * 2014-07-01 2016-01-28 コニカミノルタ株式会社 画像処理システム、中継サーバー及びプログラム
JP2019036062A (ja) * 2017-08-10 2019-03-07 ブラザー工業株式会社 通信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130010333A1 (en) * 2010-04-07 2013-01-10 Pankaj Anand Device messaging
JP2016015561A (ja) * 2014-07-01 2016-01-28 コニカミノルタ株式会社 画像処理システム、中継サーバー及びプログラム
JP2019036062A (ja) * 2017-08-10 2019-03-07 ブラザー工業株式会社 通信装置

Also Published As

Publication number Publication date
JP7363286B2 (ja) 2023-10-18

Similar Documents

Publication Publication Date Title
US8850551B2 (en) Information processing system control method, intermediate service device, authentication method, and storage medium
US7755792B2 (en) Image processing apparatus, image apparatus system, and image processing method
JP5565346B2 (ja) プリンタ
US9086826B2 (en) Information processing apparatus, method for controlling the same, and storage medium
US7865933B2 (en) Authentication agent apparatus, authentication method, and program product therefor
US7849471B2 (en) Server apparatus, method for controlling the server apparatus, related control program, and storage medium storing the program
US20070183448A1 (en) Data processing apparatus and data processing system
US8493604B2 (en) Information processing apparatus and control method thereof
JP2017059922A (ja) 情報処理システム、画像生成装置、プログラムおよび情報処理方法
US9128645B2 (en) System including image forming apparatus and information processing apparatus, method performed under the system, image forming apparatus and information processing apparatus directed to the system, and non-transitory storage medium encoded with program directed to the apparatuses
JP6137076B2 (ja) 端末装置、端末装置の制御方法、および端末装置の制御プログラム
US20130046970A1 (en) Peripheral apparatus, information processing apparatus, communication control method, and storage medium
US8274680B2 (en) Service supplied by multifunction peripheral (MFP)
JP2007042098A (ja) コンテンツ表示方法、コンテンツ伝送方法、画像処理装置、遠隔演算装置
US8311910B2 (en) Image processing apparatus, method, and storage medium
JP2016144157A (ja) 操作画面提供システム、中継装置、操作画面提供装置及びプログラム
US20110010718A1 (en) Electronic device, information processing method, and computer program product having computer-readable information processing program
JP5274203B2 (ja) データ処理装置、方法、プログラム、並びに、データ処理システム
JP6828637B2 (ja) 画像処理装置
JP7363286B2 (ja) 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム
US11461062B2 (en) Printing device and server to receive an e-mail including an attached print data and determine whether sender e-mail address is stored in a table in which a user ID and e-mail address are registered in association with each other
JP4531729B2 (ja) 課金データ保持システムおよび課金データ保持方法
JP5858092B2 (ja) プリンタ
JP5928156B2 (ja) 電子メール処理システムおよび電子メール処理方法
JP7447686B2 (ja) 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230918

R150 Certificate of patent or registration of utility model

Ref document number: 7363286

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150