JP6064703B2 - 中継サーバ - Google Patents

中継サーバ Download PDF

Info

Publication number
JP6064703B2
JP6064703B2 JP2013053801A JP2013053801A JP6064703B2 JP 6064703 B2 JP6064703 B2 JP 6064703B2 JP 2013053801 A JP2013053801 A JP 2013053801A JP 2013053801 A JP2013053801 A JP 2013053801A JP 6064703 B2 JP6064703 B2 JP 6064703B2
Authority
JP
Japan
Prior art keywords
command
printer
server
side server
terminal device
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.)
Active
Application number
JP2013053801A
Other languages
English (en)
Other versions
JP2014178987A (ja
Inventor
唯 神間
唯 神間
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 JP2013053801A priority Critical patent/JP6064703B2/ja
Priority to US14/207,742 priority patent/US9467501B2/en
Publication of JP2014178987A publication Critical patent/JP2014178987A/ja
Application granted granted Critical
Publication of JP6064703B2 publication Critical patent/JP6064703B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Description

本明細書では、端末装置及び通信装置のそれぞれと通信を実行する中継サーバを開示する。
特許文献1には、ホストコンピュータと、プリンタと、を備えるシステムが開示されている。プリンタは、ホストコンピュータからトラップ設定命令を受信すると、当該プリンタがトラップパケットを送信すべき条件を設定する。これにより、プリンタは、例えば、プリンタ自身のステータスが変化する場合にのみ、当該ステータスを示すトラップパケットをホストコンピュータに送信する。
特開平10−222318号公報
本明細書では、中継サーバが、端末装置からの要求に応じて通信装置に条件情報を送信すべき場合に、適切な処理を実行し得る技術を提供する。
本明細書によって開示される中継サーバは、要求コマンド受信部と、第1の応答部と、情報送信部と、問合せコマンド受信部と、第2の応答部と、を備える。要求コマンド受信部は、端末装置から要求コマンドを受信する。要求コマンドは、通信装置への条件情報の送信を中継サーバに要求するためのコマンドである。条件情報は、通信装置から端末装置へのデータの送信のための条件を示す。第1の応答部は、要求コマンドが受信される場合に、第1の応答コマンドを端末装置に送信する。情報送信部は、要求コマンドが受信される場合に、条件情報を通信装置に送信する。問合せコマンド受信部は、要求コマンドが受信された後に、端末装置から問合せコマンドを受信する。問合せコマンドは、通信装置への条件情報の送信が完了したのか否かを中継サーバに問い合わせるためのコマンドである。第2の応答部は、問合せコマンドが受信される場合に、通信装置への条件情報の送信が完了したのか否かを示す状況情報を含む第2の応答コマンドを端末装置に送信する。
上記の構成によると、中継サーバは、端末装置から要求コマンドを受信する場合に、第1の応答コマンドを端末装置に送信し、さらに、端末装置から問合せコマンドを受信する場合に、状況情報を含む第2の応答コマンドを端末装置に送信する。このように、中継サーバは、第1及び第2の応答コマンドのそれぞれを端末装置に適切に送信することができるので、端末装置を適切に動作させ得る。
上記の中継サーバを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記の中継サーバ、端末装置、及び、通信装置のうちの少なくとも2個のデバイスを備える通信システムも、新規で有用である。
通信システムの構成を示す。 各デバイスによって実行される各処理のシーケンス図を示す。 図2の続きのシーケンス図を示す。 図3の続きのシーケンス図を示す。 図4の続きのシーケンス図を示す。 図5の続きのシーケンス図を示す。
(通信システム2の構成)
図1に示されるように、通信システム2は、複数個のプリンタ10,40,45と、プリンタ側サーバ50と、DB(Data Baseの略)サーバ70と、端末側サーバ80と、端末装置100と、を備える。各プリンタ10,40,45は、LAN(LocalArea Networkの略)に接続されており、各サーバ50,70,80及び端末装置100は、インターネットに接続されている。
詳しくは後述するが、通信システム2では、端末装置100から、端末側サーバ80及びプリンタ側サーバ50を介して、各プリンタ10,40,45に、HTTP(Hyper Text Transfer Protocol)のSubcribeコマンドが送信される。そして、各プリンタ10,40,45は、Subcribeコマンドによって指示されるタイミングで、Subcribeコマンドによって指示される対象データを、端末装置100に送信する。Subcribeコマンドの通信及び対象データの通信を実現するために、各デバイス10等は、以下の構成を備える。なお、以下では、Subcribeコマンドのことを「SUBコマンド」と呼ぶ。
(プリンタ10,40,45の構成)
各プリンタ10,40,45は、印刷機能を実行可能な周辺機器(即ちPC(Personal Computerの略)等の周辺機器)である。プリンタ10,40,45は、それぞれ、プリンタIDとして、「PR10」、「PR40」、「PR45」を有する。プリンタIDは、プリンタ10等のベンダによって割り当てられるユニークなIDである。各プリンタ10,40,45が同様の構成を有するために、以下では、プリンタ10の構成を詳しく説明し、プリンタ40,45の構成の説明を省略する。
プリンタ10は、操作パネル12と、表示機構14と、印刷機構20と、LANインターフェース22と、制御部30と、を備える。各部12〜30は、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。
操作パネル12は、複数のキーを備える。ユーザは、操作パネル12を操作することによって、様々な指示をプリンタ10に与えることができる。表示機構14は、様々な情報を表示するためのディスプレイである。印刷機構20は、インクジェット方式、レーザ方式等の印刷機構である。LANI/F22は、LANに接続するためのI/Fである。なお、LANは、有線LANであってもよいし、無線LANであってもよい。
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に記憶されているプログラムに従って、様々な処理を実行する。
(各サーバ50,70,80の構成)
各サーバ50,70,80は、別体に構成されている。各サーバ50,70,80は、プリンタ10,40,45のベンダによってインターネット上に設置されるサーバである。端末側サーバ80は、端末装置100からSUBコマンド(より具体的には後述の要求コマンド)を受信する場合に、SUBコマンドをプリンタ側サーバ50に送信する。プリンタ側サーバ50は、端末側サーバ80からSUBコマンドを受信する場合に、SUBコマンドをプリンタ10等に送信する。
上述したように、端末側サーバ80は、端末装置100からプリンタ側サーバ50へのSUBコマンドの通信を中継し、プリンタ側サーバ50は、端末側サーバ80からプリンタ10等へのSUBコマンドの通信を中継する。従って、2個のサーバ50,80は、端末装置100からプリンタ10等へのSUBコマンドの通信を中継するサーバである、と言うことができる。
なお、プリンタ側サーバ50は、端末側サーバ80からプリンタ10等へのSUBコマンドの通信を中継するのみならず、プリンタ10等からの要求に応じて、様々なサービスをプリンタ10等に提供することができる。上記のサービスは、例えば、(1)プリンタ10等で利用(例えば、表示、印刷)されるべきデータをプリンタ10等に送信するためのサービス、(2)クラウドサーバからデータを受信して、当該データをプリンタ10等に転送するためのサービス、(3)プリンタ10等からデータを受信して、当該データをクラウドサーバに転送するためのサービス等を含む。
このように、プリンタ側サーバ50が様々な処理を実行しなければならないので、本実施例では、別体に構成されている2個のサーバ(即ち、プリンタ側サーバ50、端末側サーバ80)が設けられている。これにより、端末側サーバ80が存在しない構成と比べると、プリンタ側サーバ50の処理負荷を軽減させることができ、この結果、プリンタ側サーバ50は、上記の様々なサービスを含む各処理を適切に実行することができる。
プリンタ側サーバ50は、制御部60を備える。制御部60は、CPU62と、メモリ64と、を備える。CPU62は、メモリ64に記憶されているプログラムに従って、様々な処理を実行する。
端末側サーバ80は、制御部90を備える。制御部90は、CPU92と、メモリ94と、を備える。CPU92は、メモリ94に記憶されているプログラムに従って、様々な処理を実行する。
DBサーバ70は、端末側サーバ80によって利用されるデータベースを備える。DBサーバ70は、端末側サーバ80からの指示に従って、複数個の状況情報を記憶することができる。状況情報は、プリンタIDと、当該プリンタIDに対応するプリンタへのSUBコマンドの送信の状況を示すコードと、を含む。コードの一例として、「200OK」、「201Offline」、「202Accepted」、「5xxError」等を挙げることができる。
「200OK」は、SUBコマンドの送信が完了したことを示すコードである。「201Offline」は、プリンタ10等とプリンタ側サーバ50との間に後述のXMPP(eXtensible Messaging and Presence Protocolの略)接続が確立されていないことに起因して、SUBコマンドの送信が完了していないことを示すコードである。「202Accepted」は、SUBコマンドの送信に関する処理を実行中であることに起因して、SUBコマンドの送信が完了していないことを示すコードである。「5xxError」は、プリンタ側サーバ50にトラブルが発生したことに起因して、SUBコマンドの送信が完了していないことを示すコードである。
(端末装置100の構成)
端末装置100は、例えば、プリンタ10等のベンダによって製造される様々な製品(プリンタ、スキャナ、コピー機、FAX装置、多機能機等)を販売するための販売店に設置される。端末装置100は、公知のOSを備えるコンピュータ(例えばPC)であり、プリンタ10等のベンダによって提供されるアプリケーション(以下では「管理アプリケーション」と呼ぶ)を備える。管理アプリケーションは、端末側サーバ80と様々なコマンド等を通信するための処理を実行するためのプログラムである。
(各デバイス10等が実行する処理;図2〜図6)
続いて、図2〜図6を参照して、各デバイスが実行する処理の内容を説明する。なお、プリンタ10に関する処理は、プリンタ10のCPU32によって実行されるので、正確には、「CPU32が処理を実行する」と記載すべきである。しかしながら、以下では、理解のし易さを考慮して、「プリンタ10が処理を実行する」と記載する。同様に、「CPU62が処理を実行する」と記載する代わりに、「プリンタ側サーバ50が処理を実行する」と記載し、「CPU92が処理を実行する」と記載する代わりに、「端末側サーバ80が処理を実行する」と記載する。
(図2のシーケンス図)
端末装置100のユーザ(即ち販売店の従業員)は、複数個のプリンタ10,40,45に関する対象データを取得することを望む場合に、端末装置100の管理アプリケーションを起動して、SUBコマンドの送信を実行するための各情報を端末装置100に入力する。なお、対象データの一例として、(1)プリンタ10等で過去に印刷された印刷媒体のトータルの枚数(即ち印刷枚数)を示すデータ、(2)プリンタ10等で印刷に利用される消耗品(例えばインク、トナー)の残量を示すデータ、(3)プリンタ10等で実行された処理の履歴(即ちログ)を示すデータ等を挙げることができる。
具体的に言うと、ユーザは、複数個のプリンタ10,40,45に対応する複数個のプリンタID(即ち、「PR10」、「PR40」、「PR45」)と、対象データを識別するための識別情報であるデータIDと、対象データの値の変化の有無に関する判断処理を各プリンタ10,40,45に実行させるためのインターバルの時間を示す時間情報と、を端末装置100に入力する。
ユーザは、時間情報として、任意の時間を指定することができる。時間情報が示す時間が長い場合には、プリンタ10等が対象データの値の変化の有無に関する判断処理を実行するインターバルが長くなり、時間情報が示す時間が短い場合には、プリンタ10等が判断処理を実行するインターバルが短くなる。プリンタ10等は、判断処理において対象データの値の変化が有る(例えば印刷枚数の変化が有る)と判断する場合に、対象データの現在値(例えば現在の印刷枚数)を端末装置100に送信する。プリンタ10等は、判断処理において対象データの値の変化が無い(例えば印刷枚数の変化が無い)と判断する場合に、対象データの現在値を送信しない。従って、時間情報が示す時間が長い場合には、プリンタ10等から対象データが送信される頻度が低くなり、時間情報が示す時間が短い場合には、プリンタ10等から対象データが送信される頻度が高くなる。
なお、時間情報として「ゼロ」が指定される場合には、プリンタ10等が判断処理を常に実行することになる。即ち、プリンタ10等は、対象データの値が変化する毎に(例えば印刷枚数が変化する毎に)、対象データの現在値を端末装置100に送信する。
端末装置100は、ユーザによって上記の各情報(即ち、プリンタID、データID、時間情報)が入力されると、データID及び時間情報等を含むHTTPのSUBコマンド202を生成する。端末装置100は、さらに、SUBコマンド202と、複数個のプリンタIDと、を含む要求コマンド200を生成する。次いで、端末装置100は、要求コマンド200を端末側サーバ80に送信する。
端末側サーバ80は、端末装置100から要求コマンド200を受信すると、要求コマンド200から複数個のプリンタIDを抽出して、抽出済みの複数個のプリンタIDを含むREADコマンド210を生成する。次いで、端末側サーバ80は、READコマンド210をDBサーバ70に送信する。READコマンドは、READコマンドに含まれるプリンタIDに対応する状況情報の送信を、DBサーバ70に要求するためのコマンドである。
DBサーバ70は、端末側サーバ80からREADコマンド210を受信すると、READコマンド210に含まれる複数個のプリンタIDに対応する複数個の状況情報が記憶されているのか否かを判断する。現時点では、DBサーバ70は、状況情報が記憶されていないと判断して、状況情報が記憶されていないことを示す結果情報を端末側サーバ80に送信する。
端末側サーバ80は、DBサーバ70から結果情報を受信すると、状況情報が記憶されていないことを知ることができる。この場合、端末側サーバ80は、抽出済の複数個のプリンタIDを含むCREATEコマンド220を生成する。次いで、端末側サーバ80は、CREATEコマンド220をDBサーバ70に送信する。CREATEコマンドは、CREATEコマンドに含まれるプリンタIDに対応する状況情報の生成を、DBサーバ70に要求するためのコマンドである。
DBサーバ70は、端末側サーバ80からCREATEコマンド220を受信すると、CREATEコマンド220に含まれる複数個のプリンタIDに対応する複数個の状況情報を生成して、複数個の状況情報を記憶する。複数個の状況情報のそれぞれは、プリンタID(例えば「PR10」)と、コード「202Accepted」と、を含む。
端末側サーバ80は、CREATEコマンド220をDBサーバ70に送信すると、要求コマンド200に対する応答である応答コマンド230を生成する。応答コマンド230は、DBサーバ70内の複数個の状況情報に一致する複数個の状況情報(即ち、プリンタID、及び、コード「202Accepted」)を含む。次いで、端末側サーバ80は、応答コマンド230を端末装置100に送信する。
端末装置100は、端末側サーバ80から応答コマンド230を受信すると、応答コマンド230内の複数個の状況情報を確認する。これにより、端末装置100は、各プリンタ10,40,45について、SUBコマンドの送信に関する処理が実行中であることを知ることができる。
次いで、端末側サーバ80は、要求コマンド200に含まれる複数個のプリンタIDの中から1個のプリンタID「PR10」を選択する。そして、端末側サーバ80は、要求コマンド200に含まれるSUBコマンド202と、選択済みのプリンタID「PR10」と、をプリンタ側サーバ50に送信する。これにより、端末側サーバ80は、SUBコマンド202及びプリンタID「PR10」をプリンタ側サーバ50に供給することができる。
プリンタ側サーバ50は、端末側サーバ80からSUBコマンド202及びプリンタID「PR10」を受信することによって、それらの情報を取得する。この場合、プリンタ側サーバ50は、SUBコマンド202をメモリ64に記憶する。次いで、プリンタ側サーバ50は、受信済みのプリンタID「PR10」に対応するプリンタ10と、プリンタ側サーバ50と、の間に、XMPP接続が確立されているのか否かを判断する。より具体的に言うと、プリンタ側サーバ50のメモリ64(図1参照)は、複数個のプリンタIDのそれぞれについて、当該プリンタIDに対応するプリンタと、プリンタ側サーバ50と、の間に、XMPP接続が確立されているのか否かを示す接続情報を記憶している。そして、プリンタ側サーバ50は、受信済みのプリンタID「PR10」に対応する接続情報をメモリ64から読み出すことによって、プリンタ10とプリンタ側サーバ50との間にXMPP接続が確立されているのか否かを判断する。図2のケースでは、プリンタ側サーバ50は、XMPP接続が確立されていると判断する。
各プリンタ10,40,45が接続されているLANは、インターネット通信を仲介するためのNAT(Network Address Translationの略)ルータを備える。そして、NATルータは、プリンタ10とプリンタ側サーバ50との間にXMPP接続(即ちいわゆる常時接続)が確立されている状態では、インターネット側(即ちプリンタ側サーバ50)からLAN側(即ちプリンタ10)へのデータ(例えばSUBコマンド202)の送信を許容するが、XMPP接続が確立されていない状態には、当該データの送信を禁止する。
ここでは、プリンタ10とプリンタ側サーバ50との間にXMPP接続を確立するための手順について説明する。プリンタ10は、プリンタ10の電源がOFF状態からON状態に変化する場合に、BOSH(Bidirectional-streams Over Synchronous HTTPの略)の要求信号(即ちHTTPリクエスト)150をプリンタ側サーバ50に送信する。要求信号150は、XMPP接続で利用されるべきセッションIDの送信を、プリンタ側サーバ50に要求するための信号である。
なお、プリンタ10は、プリンタ10の電源がOFF状態からON状態に変化する場合のみならず、以下の状況でも、要求信号150をプリンタ側サーバ50に送信してもよい。例えば、プリンタ10は、プリンタ10の通信リンクの状態が、リンクダウン状態からリンクアップ状態に変化する場合に、要求信号150をプリンタ側サーバ50に送信してもよい。リンクダウン状態の一例として、例えば、ケーブルがLANI/F22に挿入されていない状態、LANI/F22の機能がユーザによってOFFにされた状態等を挙げることができる。リンクアップ状態の一例として、例えば、ケーブルがLANI/F22に挿入されている状態、LANI/F22の機能がユーザによってONにされた状態等を挙げることができる。また、例えば、プリンタ10は、プリンタ10の通信設定が、インターネット通信を禁止する設定から、インターネット通信を許容する設定に変化する場合に、要求信号150をプリンタ側サーバ50に送信してもよい。即ち、一般的に言うと、プリンタ10は、XMPP接続が確立されている状態で、要求信号150をプリンタ側サーバ50に送信すればよい。
プリンタ側サーバ50は、プリンタ10から要求信号150を受信する場合に、セッションIDを生成して、セッションIDを含む応答信号(即ちHTTPレスポンス)152をプリンタ10に送信する。
プリンタ10は、プリンタ側サーバ50から応答信号152を受信する場合に、BOSHの要求信号(即ちHTTPリクエスト)154をプリンタ側サーバ50に送信する。要求信号154は、応答信号152に含まれるセッションIDに一致するセッションIDを含む。要求信号154は、XMPP接続の確立を、プリンタ側サーバ50に要求するための信号である。
プリンタ側サーバ50は、プリンタ10からセッションIDを含む要求信号154を受信する場合に、OKを示す応答信号(即ちHTTPレスポンス)156をプリンタ10に送信する。これにより、プリンタ10及びプリンタ側サーバ50は、XMPP接続を確立するための認証信号、応答信号等の様々な信号158の通信を実行して、XMPP接続を確立する。
なお、プリンタ10とプリンタ側サーバ50との間にXMPP接続が確立される手順を説明したが、他のプリンタ40,45についても同様である。以下では、他のプリンタ40,45に関するXMPP接続については説明を省略する。
プリンタ10は、XMPP接続が確立される場合に、BOSHの要求信号(即ちHTTPリクエスト)160をプリンタ側サーバ50に送信する。要求信号160は、上記のセッションIDを含む。要求信号160は、プリンタ側サーバ50からプリンタ10にデータ(例えば後述のSUBコマンド202)を送信するための元になる信号である。
プリンタ側サーバ50は、プリンタ10から要求信号160を受信する際に、プリンタ10に送信されるべきSUBコマンドが存在すれば、要求信号160に対する応答信号(即ちHTTPレスポンス)として、当該SUBコマンドをプリンタ10に送信する。ただし、図2のケースのように、プリンタ側サーバ50は、プリンタ10から要求信号160を受信する際に、プリンタ10に送信されるべきSUBコマンドが存在しなければ、端末側サーバ80からSUBコマンド202を受信するまで、SUBコマンド202をプリンタ10に送信しない。
BOSHの要求信号160は、BOSHではない通常のHTTPの要求信号と比べて、長いタイムアウト時間を有する。従って、プリンタ側サーバ50は、プリンタ10から要求信号160を受信してから、SUBコマンド202を送信するまでの時間が長くても、タイムアウトと判断せずに、要求信号160に対する応答信号として、SUBコマンド202を適切に送信することができる。また、NATルータは、プリンタ10からプリンタ側サーバ50へのBOSHの要求信号160の転送を実行する場合には、要求信号160の転送を実行してから、プリンタ側サーバ50からSUBコマンド202(即ち応答信号)を受信するまでの時間が長くても、タイムアウトと判断せずに、SUBコマンド202をプリンタ10に適切に転送することができる(即ちSUBコマンド202の送信を許容する)。
また、プリンタ10は、要求信号160に対する応答信号(即ちSUBコマンド202)を受信する場合には、要求信号160をプリンタ側サーバ50に再び送信する。即ち、プリンタ10は、要求信号160に対する応答信号を受信する毎に、要求信号160をプリンタ側サーバ50に送信する。また、プリンタ10は、要求信号160をプリンタ側サーバ50に送信してから、プリンタ側サーバ50から応答信号を受信せずに、所定期間が経過すると、要求信号160をプリンタ側サーバ50に再び送信する。この構成によると、プリンタ側サーバ50は、常に、プリンタ10から要求信号160を受信した状態になる。このために、プリンタ側サーバ50は、任意のタイミングで、要求信号160に対する応答信号として、所望のデータ(例えばSUBコマンド)をプリンタ10に送信することができる。即ち、プリンタ10とプリンタ側サーバ50との間には常時接続が確立されているといえる。なお、上記の所定期間は、上記のBOSHの要求信号160に対応するタイムアウト時間と比べて、短い期間である。
上述したように、プリンタ側サーバ50は、プリンタ10とプリンタ側サーバ50との間にXMPP接続が確立されていると判断する場合に、要求信号160に対する応答信号として、SUBコマンド202をプリンタ10に送信する。なお、当該応答信号は、上記のセッションIDを含まない。ただし、当該応答信号(即ちSUBコマンド202)は、上記のセッションIDを含む要求信号160(即ちXMPP接続を利用して通信される要求信号160)に対する応答信号であるので、XMPP接続を利用して通信される信号である、と言える。
プリンタ10は、プリンタ側サーバ50からSUBコマンド202を受信すると、SUBコマンド202に含まれる時間情報によって示される時間が経過する毎に、SUBコマンド202に含まれるデータIDによって識別される対象データ(例えば、印刷枚数、消耗品の残量等)の値の変化に関する判断処理を実行する。そして、プリンタ10は、判断処理で対象データの値の変化が有ると判断する場合に、対象データの現在値を端末装置100に送信する。これにより、端末装置100のユーザ(即ち販売店の従業員)は、プリンタ10の対象データの現在値を知ることができ、当該現在値に応じたサービス(例えば、印刷媒体の補充サービス、消耗品の交換サービス等)をプリンタ10のユーザに提供することができる。
なお、プリンタ10は、プリンタ側サーバ50及び端末側サーバ80を介して、対象データを端末装置100に送信してもよいし、いずれのサーバも介さずに、対象データを端末装置100に送信してもよい。即ち、一般的に言うと、プリンタ10は、対象データが端末装置100で受信されるように、対象データを外部に送信すればよい。この点は、プリンタ40,45でも同様である。
図示省略しているが、プリンタ10は、プリンタ側サーバ50からSUBコマンド202を受信すると、SUBコマンド202を受信したことを示す特定の要求信号(即ちHTTPリクエスト)をプリンタ側サーバ50に送信する。なお、上記の特定の要求信号は、BOSHの要求信号ではなく、通常のHTTPの要求信号であり、上記のセッションIDを含まない。
プリンタ側サーバ50は、プリンタ10から、上記の特定の要求信号を受信すると、プリンタ10のプリンタID「PR10」と、コード「200OK」と、が対応付けられているステータス情報を、メモリ64に記憶させる。なお、本実施例では、プリンタ側サーバ50は、プリンタ側サーバ50の内部のメモリ64にステータス情報を記憶させるが、変形例では、プリンタ側サーバ50の外部のメモリ(即ちデータベース)にステータス情報を記憶させてもよい。次いで、プリンタ側サーバ50は、プリンタ10へのSUBコマンドの送信が成功したことを示す成功通知240を、端末側サーバ80に送信する。これにより、プリンタ側サーバ50は、成功通知240を端末側サーバ80に供給することができる。
端末側サーバ80は、プリンタ側サーバ50から成功通知240を受信することによって、成功通知240を取得する。この場合、端末側サーバ80は、プリンタID「PR10」と、コード「200OK」と、を含むUPDATEコマンド250を生成する。次いで、端末側サーバ80は、UPDATEコマンド250をDBサーバ70に送信する。UPDATEコマンドは、UPDATEコマンドに含まれるプリンタIDに対応する状況情報を、UPDATEコマンドに含まれるコードが示す内容に更新することを、DBサーバ70に要求するためのコマンドである。
DBサーバ70は、端末側サーバ80からUPDATEコマンド250を受信すると、UPDATEコマンド250に含まれるプリンタID「PR10」に対応する状況情報を、UPDATEコマンド250に含まれるコード(即ち「200OK」)に更新する。
(図3のシーケンス図)
図3に示されるように、プリンタ40が電源OFF状態であるので、プリンタ40とプリンタ側サーバ50との間にXMPP接続が確立されていない。このために、プリンタ側サーバ50のメモリ64は、プリンタ40のプリンタID「PR40」に対応付けて、XMPP接続が確立されていないことを示す接続情報を記憶している。
端末側サーバ80は、要求コマンド200に含まれる複数個のプリンタIDの中から1個のプリンタID「PR40」を選択する。そして、端末側サーバ80は、要求コマンド200に含まれるSUBコマンド202と、選択済みのプリンタID「PR40」と、をプリンタ側サーバ50に送信する。
プリンタ側サーバ50は、端末側サーバ80からSUBコマンド202及びプリンタID「PR40」を受信すると、プリンタID「PR40」に対応する接続情報をメモリ64から読み出して、プリンタ40とプリンタ側サーバ50との間にXMPP接続が確立されていないと判断する。この場合、プリンタ側サーバ50は、SUBコマンド202をプリンタ40に送信するための処理を実行しない。
次いで、プリンタ側サーバ50は、プリンタ40のプリンタID「PR40」と、コード「201Offline」と、が対応付けられているステータス情報を、メモリ64に記憶させる。次いで、プリンタ側サーバ50は、プリンタ40とプリンタ側サーバ50との間にXMPP接続が確立されていないことに起因して、SUBコマンドの送信を実行不可能であることを示すOffline通知260を、端末側サーバ80に送信する。
端末側サーバ80は、プリンタ側サーバ50からOffline通知260を受信すると、プリンタID「PR40」と、コード「201Offline」と、を含むUPDATEコマンド270を生成する。次いで、端末側サーバ80は、UPDATEコマンド270をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からUPDATEコマンド270を受信すると、UPDATEコマンド270に含まれるプリンタID「PR40」に対応する状況情報を、UPDATEコマンド270に含まれるコード(即ち「201Offline」)に更新する。
上述したように、本実施例では、端末側サーバ80は、まず、要求コマンド200に含まれる複数個のプリンタIDのうちの1個のプリンタID「PR10」及びSUBコマンド202をプリンタ側サーバ50に送信する(図2参照)。その後、端末側サーバ80は、プリンタ側サーバ50から成功通知240を受信する場合に、要求コマンド200に含まれる複数個のプリンタIDのうちの他の1個のプリンタID「PR40」及びSUBコマンド202をプリンタ側サーバ50に送信する。
これに代えて、端末側サーバ80が、要求コマンド200に含まれる複数個のプリンタIDの全てと、SUBコマンド202と、をプリンタ側サーバ50に同時的に送信する構成(以下では「第1の比較例の構成」と呼ぶ)を採用することが考えられる。しかしながら、第1の比較例の構成では、プリンタ側サーバ50は、メモリ64内のワークメモリに複数個のプリンタIDの全てを記憶させた状態で、複数個のプリンタ10,40,45のそれぞれにSUBコマンド202を送信するための処理を順次実行しなければならない。このために、プリンタ側サーバ50のリソース(即ちメモリ64)の負荷が大きい。プリンタ側サーバ50のリソースの負荷が大きくなると、プリンタ側サーバ50が、上記の様々なサービスを含む処理を適切に実行することができなくなる可能性がある。
これに対し、本実施例では、プリンタ側サーバ50は、1個のプリンタIDに対応する1個のプリンタにSUBコマンドを送信するための処理を実行すれば足りる。このために、メモリ64内のワークメモリに記憶されるべきデータ量が多くなるのを抑制することができ、プリンタ側サーバ50のリソースの負荷が小さくて済む。この結果、プリンタ側サーバ50は、上記の様々なサービスを含む処理を適切に実行することができる。
上述したように、端末装置100は、端末側サーバ80から応答コマンド230(図2参照)を受信するので、各プリンタ10,40,45について、SUBコマンドの送信に関する処理が実行中であることを知ることができる。ただし、端末装置100は、SUBコマンドの送信が完了したことをまだ確認していないので、当該確認のためのHTTPのコマンドであるGETSubscriptionコマンド280と、複数個のプリンタID(即ち、「PR10」、「PR40」、「PR45」)と、を端末側サーバ80に送信する。
以下では、GETSubscriptionコマンドのことを「GETSUBコマンド」と記載する。本実施例では、端末装置100は、所定時間毎に(即ち定期的に)、GETSUBコマンド280を送信する。ただし、変形例では、端末装置100は、ユーザ(即ち販売店の従業員)によって所定の指示が端末装置100に入力される場合に、GETSUBコマンド280を送信してもよい。
端末側サーバ80は、端末装置100からGETSUBコマンド280及び複数個のプリンタIDを受信すると、当該複数個のプリンタIDを含むステータスコマンド290を生成する。次いで、端末側サーバ80は、ステータスコマンド290をプリンタ側サーバ50に送信する。ステータスコマンドは、ステータスコマンドに含まれるプリンタIDに対応するステータス情報の送信を、プリンタ側サーバ50に要求するためのコマンドである。
プリンタ側サーバ50は、端末側サーバ80からステータスコマンド290を受信すると、ステータス情報300をメモリ64から読み出す。現時点では、メモリ64は、プリンタID「PR10」及びコード「200OK」を含む第1のステータス情報(図2参照)と、プリンタID「PR40」及びコード「201Offline」を含む第2のステータス情報(図3参照)と、を記憶している。従って、プリンタ側サーバ50は、第1及び第2のステータス情報を含むステータス情報300をメモリ64から読み出す。次いで、プリンタ側サーバ50は、ステータス情報300を端末側サーバ80に送信する。
端末側サーバ80は、プリンタ側サーバ50からステータス情報300を受信すると、複数個のプリンタIDを含むREADコマンド310を生成する。次いで、端末側サーバ80は、READコマンド310をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からREADコマンド310を受信すると、READコマンド310に含まれる複数個のプリンタIDに対応する複数個の状況情報を読み出す。ここで読み出される複数個の状況情報は、プリンタID「PR10」及びコード「200OK」を含む第1の状況情報と、プリンタID「PR40」及びコード「201Offline」を含む第2の状況情報と、プリンタID「PR45」及びコード「202Accepted」を含む第3の状況情報と、を含む。DBサーバ70は、複数個の状況情報を含む結果情報を端末側サーバ80に送信する。
端末側サーバ80は、DBサーバ70から結果情報を受信すると、結果情報に含まれる複数個の状況情報と、ステータス情報300と、を比較して、内容が一致するのか否かを判断する。現時点では、ステータス情報300に含まれる第1のステータス情報(「PR10」、「200OK」)と、結果情報に含まれる第1の状況情報(「PR10」、「200OK」)と、が一致している。また、ステータス情報300に含まれる第2のステータス情報(「PR40」、「201Offline」)と、結果情報に含まれる第2の状況情報(「PR40」、「201Offline」)と、が一致している。従って、端末側サーバ80は、内容が一致すると判断する。
なお、ステータス情報300は、プリンタID「PR45」に対応するステータス情報を含んでいないので、結果情報に含まれる第3の状況情報(「PR45」、「202Accepted」)と比較されるべき対象のステータス情報が存在しない。このような場合には、端末側サーバ80は、内容が一致すると判断する。端末側サーバ80は、内容が一致すると判断する場合には、DBサーバ70内の状況情報を更新しない。
次いで、端末側サーバ80は、GETSUBコマンド280に対する応答である応答コマンド320を生成する。応答コマンド320は、DBサーバ70内の複数個の状況情報に一致する複数個の状況情報を含む。次いで、端末側サーバ80は、応答コマンド320を端末装置100に送信する。
端末装置100は、端末側サーバ80から応答コマンド320を受信すると、応答コマンド320内の複数個の状況情報を確認する。これにより、端末装置100は、(1)プリンタ10へのSUBコマンドの送信が完了したこと、(2)XMPP接続が確立されていないことに起因して、プリンタ40へのSUBコマンドの送信が完了していないこと、及び、(3)SUBコマンドの送信に関する処理が実行中であることに起因して、プリンタ45へのSUBコマンドの送信が完了していないこと、を知ることができる。
(図4のシーケンス図)
図4に示されるように、プリンタ45とプリンタ側サーバ50との間にXMPP接続が確立されているが、プリンタ側サーバ50に何らかのトラブル(例えばサーバ50のフリーズ)が発生する状況を想定する。
端末側サーバ80は、要求コマンド200に含まれる複数個のプリンタIDの中から1個のプリンタID「PR45」を選択する。そして、端末側サーバ80は、要求コマンド200に含まれるSUBコマンド202と、選択済みのプリンタID「PR45」と、をプリンタ側サーバ50に送信する。
プリンタ側サーバ50でトラブルが発生しているので、プリンタ側サーバ50は、端末側サーバ80からSUBコマンド202を受信しても、SUBコマンド202をプリンタ45に送信するための処理を実行することができない。従って、プリンタ側サーバ50は、処理を実行不可能であることを示すエラー通知360を、端末側サーバ80に送信する。なお、プリンタ側サーバ50でトラブルが発生しているので、プリンタ側サーバ50は、ステータス情報をメモリ64に記憶させることもできない。
端末側サーバ80は、プリンタ側サーバ50からエラー通知360を受信すると、プリンタID「PR45」と、コード「5xxError」と、を含むUPDATEコマンド370を生成する。次いで、端末側サーバ80は、UPDATEコマンド370をDBサーバ70に送信する。
変形例では、プリンタ側サーバ50は、エラー通知360を送信しなくてもよい。この場合、端末側サーバ80は、プリンタ側サーバ50から通知を受信せずに、所定のタイムアウト時間を経過すると、プリンタ側サーバ50にトラブルが発生したと判断してもよい。端末側サーバ80は、プリンタ側サーバ50にトラブルが発生したと判断する場合に、プリンタID「PR45」と、コード「5xxError」と、を含むUPDATEコマンド370を、DBサーバ70に送信してもよい。
DBサーバ70は、端末側サーバ80からUPDATEコマンド370を受信すると、UPDATEコマンド370に含まれるプリンタID「PR45」に対応する状況情報を、UPDATEコマンド370に含まれるコード(即ち「5xxError」)に更新する。
一方において、端末装置100は、図3のGETSUBコマンド280を送信して、応答コマンド320を受信した段階では、プリンタ40,45へのSUBコマンドの送信が完了していないことを知ることができる。このために、端末装置100は、GETSUBコマンド280の送信から所定時間経過後に、GETSUBコマンド380と、複数個のプリンタID(即ち、「PR10」、「PR40」、「PR45」)と、を端末側サーバ80に再び送信する。
端末側サーバ80は、端末装置100からGETSUBコマンド380及び複数個のプリンタIDを受信すると、当該複数個のプリンタIDを含むステータスコマンド390を生成する。次いで、端末側サーバ80は、ステータスコマンド390をプリンタ側サーバ50に送信する。
プリンタ側サーバ50は、端末側サーバ80からステータスコマンド390を受信すると、ステータス情報400をメモリ64から読み出す。現時点では、ステータス情報400は、第1のステータス情報(「PR10」、「200OK」)と、第2のステータス情報(「PR40」、「201Offline」)と、を含む。次いで、プリンタ側サーバ50は、ステータス情報400を端末側サーバ80に送信する。
この後の各処理、即ち、READコマンド410の通信、結果情報の通信、及び、結果情報とステータス情報400との比較、については、図3の各処理と同様である。現時点でも、端末側サーバ80は、内容が一致すると判断する。そして、端末側サーバ80は、GETSUBコマンド380に対する応答である応答コマンド420を生成して、応答コマンド420を端末装置100に送信する。図3の応答コマンド320では、第3の状況情報が「PR45」及びコード「201Accepted」を含むが、図4の応答コマンド420では、第3の状況情報が「PR45」及びコード「5xxError」を含む。
端末装置100は、端末側サーバ80から応答コマンド420を受信すると、応答コマンド420内の複数個の状況情報を確認する。図3のケースとは異なり、端末装置100は、プリンタ側サーバ50でトラブルが発生していることに起因して、プリンタ45へのSUBコマンドの送信が完了していないこと、を知ることができる。
(図5のシーケンス図)
例えば、プリンタ10へのSUBコマンド202(図2参照)の送信が実行されたにも関わらず、端末装置100のユーザが、プリンタ10へのSUBコマンド202の送信が実行されていないと誤解している状況を想定する。この場合、ユーザは、プリンタ10へのSUBコマンドの送信を実行するための各情報を端末装置100に再び入力し得る。即ち、ユーザは、プリンタ10に対応するプリンタID「PR10」と、データID(例えばSUBコマンド202に含まれるデータIDとは異なるデータID)と、時間情報と、を端末装置100に入力し得る。
端末装置100は、ユーザによって上記の各情報(即ち、プリンタID、データID、時間情報)が入力されると、SUBコマンド502を生成する。端末装置100は、さらに、SUBコマンド502と、プリンタID「PR10」と、を含む要求コマンド500を生成する。次いで、端末装置100は、要求コマンド500を端末側サーバ80に送信する。
端末側サーバ80は、端末装置100から要求コマンド500を受信すると、要求コマンド500からプリンタID「PR10」を抽出して、プリンタID「RP10」を含むREADコマンド510を生成する。次いで、端末側サーバ80は、READコマンド510をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からREADコマンド510を受信すると、READコマンド510に含まれるプリンタID「PR10」に対応する第1の状況情報(即ち、プリンタID「PR10」、コード「200OK」)を読み出す。DBサーバ70は、第1の状況情報を含む結果情報を端末側サーバ80に送信する。
端末側サーバ80は、DBサーバ70から結果情報を受信すると、プリンタ10へのSUBコマンド202(図2参照)の送信が完了していることを知ることができる。この場合、端末側サーバ80は、要求コマンド500に含まれるSUBコマンド502をプリンタ側サーバ50に送信しない。この結果、SUBコマンド502がプリンタ10に送信されない。
なお、端末側サーバ80は、DBサーバ70から受信される結果情報が、コード「200OK」を含む場合のみならず、コード「201Offline」又はコード「202Accepted」を含む場合でも、SUBコマンド502をプリンタ側サーバ50に送信しない。
このように、本実施例では、仮に、ユーザが、プリンタ10へのSUBコマンド502の送信のための指示を端末装置100に誤って入力しても、SUBコマンド502がプリンタ10に送信されない。このために、プリンタ10は、SUBコマンド202(図2参照)に従って、対象データを端末装置100に適切に送信することができる。
変形例では、ユーザは、プリンタ10に対応するプリンタID「PR10」と、データIDと、時間情報と、に加えて、SUBコマンド502を強制的にプリンタ10に送信することを指示する情報を、端末装置100に入力してもよい。この場合、端末側サーバ50は、DBサーバ70に記憶されている第1の状況情報に含まれるコードがどのような値であっても、SUBコマンド502をプリンタ側サーバ50に送信してもよい。そして、端末側サーバ50は、プリンタID「PR10」と、コード「202Accepted」と、を含むUPDATEコマンドをDBサーバ70に送信して、DBサーバ70内の第1の状況情報に含まれるコードを、コード「202Accepted」に更新してもよい。
次いで、端末側サーバ80は、要求コマンド500に対する応答である応答コマンド520を生成する。応答コマンド520は、状況情報(即ち、プリンタID「PR10」、コード「200OK」)を含む。そして、端末側サーバ80は、応答コマンド520を端末装置100に送信する。
端末装置100は、端末側サーバ80から応答コマンド520を受信する。図2に示されるように、端末側サーバ80でSUBコマンド202が適切に処理される状況では、応答コマンド230内の状況情報は、コード「202Accepted」を含む。この場合、端末装置100は、SUBコマンド202に関する処理が適切に実行されることを知ることができる。これに対し、図5のケースでは、応答コマンド520内の状況情報は、コード「200OK」を含む。この場合、端末装置100は、プリンタ10へのSUBコマンド202の送信が完了していることに起因して、プリンタ10へのSUBコマンド502の送信が実行されないことを知ることができる。このような状況では、端末装置100は、例えば、プリンタ10へのSUBコマンド502の送信を実行不可能であることを示す画面を表示させてもよい。
なお、図示省略しているが、プリンタ10に過去に送信されたSUBコマンド202を無効化するためのコマンドとして、Unsubscribeと呼ばれるコマンド(以下では「UNSUBコマンド」と呼ぶ)が存在する。ユーザは、SUBコマンド202を無効化するためのUNSUBコマンドの送信のための指示を、端末装置100に入力することができる。この場合、端末装置100は、UNSUBコマンドを端末側サーバ80に送信する。
端末側サーバ80は、端末装置100からUNSUBコマンドを受信すると、DELETEコマンドをDBサーバ70に送信する。これにより、DBサーバ70内のプリンタID「PR10」に対応する第1の状況情報が消去される。また、端末側サーバ80は、UNSUBコマンドをプリンタ側サーバ50に送信する。
プリンタ側サーバ50は、端末側サーバ80からUNSUBコマンドを受信すると、メモリ64に記憶されているSUBコマンド202を消去する。そして、プリンタ側サーバ50は、UNSUBコマンドをプリンタ10に送信する。この結果、プリンタ10は、SUBコマンド202を無効化するので、SUBコマンド202に従って対象データを端末装置100に送信するための処理を実行しない。
SUBコマンド202が無効化された後であれば、プリンタ10への新たなSUBコマンドの送信が適切に実行される。即ち、ユーザが、プリンタ10への新たなSUBコマンドの送信のための指示を端末装置100に入力すれば、SUBコマンドが、端末側サーバ80及びプリンタ側サーバ50を介して、プリンタ10に送信される。これにより、プリンタ10は、新たなSUBコマンドに従って対象データを端末装置100に送信するための処理を実行する。
図4に示されるように、プリンタ側サーバ50でトラブルが発生していたが、その後、図5に示されるように、当該トラブルが解消する。プリンタ側サーバ50は、トラブルが発生していた間に、端末側サーバ80からSUBコマンド202及びプリンタID「PR45」を受信しているが、プリンタID「PR45」に対応するステータス情報を記憶していない。このために、プリンタ側サーバ50は、SUBコマンド202及びプリンタID「PR45」を過去に受信したことを知ることができず、この結果、トラブルが解消しても、SUBコマンド202をプリンタ45に送信しない。
その後、ユーザは、プリンタ45へのSUBコマンドの送信を実行するための各情報(即ち、プリンタID「PR45」、データID、時間情報)を端末装置100に入力する。端末装置100は、ユーザによって上記の各情報が入力されると、SUBコマンド602を生成する。端末装置100は、さらに、SUBコマンド602と、プリンタID「PR45」と、を含む要求コマンド600を生成する。次いで、端末装置100は、要求コマンド600を端末側サーバ80に送信する。
端末側サーバ80は、端末装置100から要求コマンド600を受信すると、要求コマンド600からプリンタID「PR45」を抽出して、プリンタID「RP45」を含むREADコマンド610を生成する。次いで、端末側サーバ80は、READコマンド610をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からREADコマンド610を受信すると、READコマンド610に含まれるプリンタID「PR45」に対応する第3の状況情報(即ち、プリンタID「PR45」、コード「5xxError」)を読み出す。DBサーバ70は、第3の状況情報を含む結果情報を端末側サーバ80に送信する。
端末側サーバ80は、DBサーバ70から結果情報を受信すると、プリンタ側サーバ50のトラブルに起因して、プリンタ45へのSUBコマンドの送信が完了していないことを知ることができる。この場合、端末側サーバ80は、プリンタID「PR45」と、コード「202Accepted」と、を含むUPDATEコマンド620を生成する。次いで、端末側サーバ80は、UPDATEコマンド620をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からUPDATEコマンド620を受信すると、UPDATEコマンド620に含まれるプリンタID「PR45」に対応する第3の状況情報を、UPDATEコマンド620に含まれるコード(即ち「202Accepted」)に更新する。
次いで、端末側サーバ80は、要求コマンド600に対する応答である応答コマンド630を生成する。応答コマンド630は、状況情報(即ち、プリンタID「PR45」、コード「202Accepted」)を含む。次いで、端末側サーバ80は、応答コマンド630を端末装置100に送信する。
端末装置100は、端末側サーバ80から応答コマンド630を受信すると、応答コマンド630内の状況情報を確認する。これにより、端末装置100は、プリンタ45へのSUBコマンドの送信に関する処理を実行中であることに起因して、プリンタ45へのSUBコマンドの送信が完了していないことを知ることができる。
次いで、端末側サーバ80は、要求コマンド600に含まれるSUBコマンド602及びプリンタID「PR45」をプリンタ側サーバ50に送信する。
プリンタ側サーバ50は、端末側サーバ80からSUBコマンド602及びプリンタID「PR45」を受信すると、プリンタ45とプリンタ側サーバ50との間にXMPP接続が確立されていると判断して、SUBコマンド602をプリンタ45に送信する。次いで、プリンタ側サーバ50は、プリンタID「PR45」と、コード「200OK」と、が対応付けられているステータス情報を、メモリ64に記憶させる。
次いで、プリンタ側サーバ50は、プリンタ45へのSUBコマンド602の送信が成功したことを示す成功通知640を、端末側サーバ80に送信する。その後の各処理、即ち、UPDATEコマンド650の通信、及び、第3の状況情報の更新については、図2のケースと同様である。
(図6のシーケンス図)
図6に示されるように、プリンタ40の電源がONされるので、プリンタ40とプリンタ側サーバ50との間にXMPP接続が確立される。プリンタ側サーバ50は、端末側サーバ80からSUBコマンド202及びプリンタID「PR40」を受信した際に、プリンタID「PR40」に対応するステータス情報(コード「201Offline」)を記憶している(図3参照)。このために、プリンタ側サーバ50は、SUBコマンド202及びプリンタID「PR40」を過去に受信したことを知ることができ、この結果、プリンタ40とプリンタ側サーバ50との間にXMPP接続が確立される場合に、メモリ64内のSUBコマンド202をプリンタ40に送信する。
次いで、プリンタ側サーバ50は、プリンタID「PR40」と、コード「200OK」と、が対応付けられているステータス情報を、メモリ64に記憶させる。ただし、プリンタ側サーバ50は、プリンタ40へのSUBコマンド202の送信が成功したことを示す成功通知を、端末側サーバ80に送信しない。例えば、図2のケースでは、プリンタ側サーバ50から端末側サーバ80に成功通知240が送信されるが、当該成功通知240は、SUBコマンド202及びプリンタID「PR10」に対する応答として送信される。これに対し、図6のケースでは、プリンタ側サーバ50は、SUBコマンド202及びプリンタID「PR40」をかなり前に受信しているので(図3参照)、それらの応答として成功通知を送信することができない。
プリンタ側サーバ50から端末側サーバ80に成功通知が送信されないので、端末側サーバ80は、プリンタ40へのSUBコマンド202の送信が完了したことを知ることができず、この結果、DBサーバ70内のプリンタID「PR40」に対応する第2の状況情報を更新しない。
端末装置100は、図4のGETSUBコマンド380を送信して、応答コマンド420を受信した段階では、プリンタ40,45へのSUBコマンドの送信が完了していないことを知ることができる。このために、端末装置100は、GETSUBコマンド680と、複数個のプリンタID(即ち、「PR10」、「PR40」、「PR45」)と、を端末側サーバ80に再び送信する。
端末側サーバ80は、端末装置100からGETSUBコマンド680及び複数個のプリンタIDを受信すると、当該複数個のプリンタIDを含むステータスコマンド690を生成する。次いで、端末側サーバ80は、ステータスコマンド690をプリンタ側サーバ50に送信する。
プリンタ側サーバ50は、端末側サーバ80からステータスコマンド690を受信すると、ステータス情報700をメモリ64から読み出す。現時点では、メモリ64は、プリンタID「PR10」及びコード「200OK」を含む第1のステータス情報(図2参照)と、プリンタID「PR40」及びコード「200OK」を含む第2のステータス情報(図6参照)と、プリンタID「PR45」及びコード「200OK」を含む第3のステータス情報(図5参照)と、を記憶している。従って、プリンタ側サーバ50は、第1、第2、及び、第3のステータス情報を含むステータス情報700をメモリ64から読み出す。次いで、プリンタ側サーバ50は、ステータス情報700を端末側サーバ80に送信する。
端末側サーバ80は、プリンタ側サーバ50からステータス情報700を受信すると、複数個のプリンタIDを含むREADコマンド710を生成する。次いで、端末側サーバ80は、READコマンド710をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からREADコマンド710を受信すると、READコマンド710に含まれる複数個のプリンタIDに対応する複数個の状況情報を読み出す。ここで読み出される複数個の状況情報は、プリンタID「PR10」及びコード「200OK」を含む第1の状況情報と、プリンタID「PR40」及びコード「201Offline」を含む第2の状況情報と、プリンタID「PR45」及びコード「200OK」を含む第3の状況情報と、を含む。DBサーバ70は、複数個の状況情報を含む結果情報を端末側サーバ80に送信する。
端末側サーバ80は、DBサーバ70から結果情報を受信すると、結果情報に含まれる複数個の状況情報と、ステータス情報700と、を比較する。現時点では、ステータス情報700に含まれる第1及び第3のステータス情報と、結果情報に含まれる第1及び第3の状況情報と、がそれぞれ一致している。しかしながら、ステータス情報700に含まれる第2のステータス情報(「PR40」、「200OK」)と、結果情報に含まれる第2の状況情報(「PR40」、「201Offline」)と、が一致していない。従って、端末側サーバ80は、内容が一致しないと判断する。
端末側サーバ80は、内容が一致しないと判断する場合に、DBサーバ70内の第2の状況情報が、ステータス情報700に含まれる第2のステータス情報が示す内容に更新されるように、UPDATEコマンド720を生成する。具体的に言うと、端末側サーバ80は、プリンタID「PR40」と、コード「200OK」と、を含むUPDATEコマンド720を生成する。次いで、端末側サーバ80は、UPDATEコマンド720をDBサーバ70に送信する。
DBサーバ70は、端末側サーバ80からUPDATEコマンド720を受信すると、UPDATEコマンド720に含まれるプリンタID「PR40」に対応する第2の状況情報を、UPDATEコマンド720に含まれるコード(即ち「200OK」)に更新する。これにより、プリンタ側サーバ50に記憶されているステータス情報700と、DBサーバ70に記憶されている状況情報と、を一致させることができる。
次いで、端末側サーバ80は、GETSUBコマンド680に対する応答である応答コマンド730を生成する。応答コマンド730は、DBサーバ70内の複数個の状況情報に一致する複数個の状況情報(即ち、ステータス情報700に一致する複数個の状況情報)を含む。次いで、端末側サーバ80は、応答コマンド730を端末装置100に送信する。
端末装置100は、端末側サーバ80から応答コマンド730を受信すると、プリンタ10,40,45の全てについて、SUBコマンドの送信が完了したことを知ることができる。このような状況では、端末装置100は、GETSUBコマンドを端末側サーバ80に再び送信しない。
(本実施例の効果)
上記の構成によると、端末側サーバ80は、端末装置100からSUBコマンド202を含む要求コマンド200を受信する場合に、応答コマンド230を端末装置100に送信し(図2参照)、さらに、端末装置100からGETSUBコマンド280,380,680を受信する場合に、状況情報を含む応答コマンド320,420,730を端末装置100に送信する(図3、図4、図6参照)。
例えば、端末側サーバ80が、要求コマンド200を受信した後に、プリンタ10,40,45の全てについてSUBコマンド202の送信が完了した場合に、要求コマンド200に対する応答コマンドを端末装置100に送信する構成(以下では「第2の比較例の構成」と呼ぶ)を採用することが考えられる。しかしながら、第2の比較例の構成を採用すると、端末装置100において、要求コマンド200の送信から応答コマンドの受信までの時間が長くなる。この場合、端末装置100は、応答コマンドを受信する前にタイムアウトと判断して、要求コマンド200の送信の事実を無効化し得る。このような無効化処理が実行されると、端末装置100は、プリンタ10等から対象データを受信しても、適切な処理(例えば表示処理等)を実行することができない。
これに対し、本実施例では、端末側サーバ80は、要求コマンド200に対する応答コマンド230を端末装置100に迅速に送信することができるので、端末装置100が要求コマンド200の送信の事実を無効化するという事象が発生するのを抑制することができる。
そして、端末側サーバ80は、応答コマンド230を端末装置100に送信した後に、GETSUBコマンド280等を受信する場合に、状況情報を含む応答コマンド320等を端末装置100に送信する。これにより、端末装置100は、プリンタ10等へのSUBコマンドの送信が完了したのか否かを知ることができる。例えば、端末装置100は、特定のプリンタへのSUBコマンドの送信が実行されない期間が所定期間を超える場合には、その旨を示すメッセージを表示させることができる。これにより、端末装置100のユーザ(即ち販売店の従業員)は、上記の特定のプリンタから対象データを受信することができないことを知ることができ、例えば、印刷用紙、消耗品等の補充サービスの提供の対象から、上記の特定のプリンタを除外することができる。
上述したように、本実施例では、端末側サーバ80は、要求コマンド200に対する応答コマンド230と、GETSUBコマンド280等に対する応答コマンド320等と、のそれぞれを、端末装置100に適切に送信することができるので、端末装置100を適切に動作させることができる。
(対応関係)
プリンタ側サーバ50及び端末側サーバ80の組合せが、「中継サーバ」の一例である。端末側サーバ80、プリンタ側サーバ50が、それぞれ、「第1のサーバ」、「第2のサーバ」の一例である。DBサーバ70が、「データベース」の一例である。複数個のプリンタ10,40,45、複数個のプリンタID(即ち、「PR10」、「PR40」、「PR45」)が、それぞれ、「複数個の通信装置」、「複数個の識別情報」の一例である。SUBコマンド202、GETSUBコマンド280が、それぞれ、「条件情報」、「問合せコマンド」の一例である。応答コマンド230、応答コマンド320が、それぞれ、「第1の応答コマンド」、「第2の応答コマンド」の一例である。成功通知240が、「通知」の一例である。XMPP接続が、「特定の接続」の一例である。要求信号150、応答信号152、要求信号154が、それぞれ、「第1の要求信号」、「応答信号」、「第2の要求信号」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)「条件情報」は、HTTPのSubscribeコマンドでなくてもよく、プリンタ10等から端末装置100へのデータの送信のための条件を示す他の情報(例えば、HTTP以外のプロトコルのコマンド)であってもよい。例えば、上記の他の情報は、プリンタ10等の消耗品の残量が10%未満になる場合に、その旨を示すデータを端末装置100に送信するための指示を示すコマンドであってもよい。また、「問合せコマンド」は、HTTPのGETSubscriptionコマンドでなくてもよく、プリンタ10等への条件情報の送信が完了したのか否かを端末側サーバ80に問い合わせるための他のコマンド(例えば、HTTP以外のプロトコルのコマンド)であってもよい。例えば、上記の他のコマンドは、SNMP(Simple Network Management Protocolの略)のGETコマンドであってもよい。
(変形例2)上記の実施例では、端末装置100から端末側サーバ80に送信される要求コマンド200は、SUBコマンド202と、プリンタIDと、を含む(図2参照)。これに代えて、例えば、端末側サーバ80のメモリ94又はDBサーバ70にSUBコマンド202が予め記憶されている場合には、要求コマンド200は、SUBコマンド202を含まなくてもよい。この場合、端末側サーバ80は、要求コマンド200を受信する場合に、メモリ94又はDBサーバ70からSUBコマンド202を取得して、SUBコマンド202をプリンタ側サーバ50に送信してもよい。一般的に言うと、要求コマンドは、条件情報を含んでいてもよいし、条件情報を含んでいなくてもよい。
(変形例3)別体に構成されているプリンタ側サーバ50及び端末側サーバ80が設けられていなくてもよい。即ち、プリンタ側サーバ50の処理と、端末側サーバ80の処理と、の両方を実行する1個の中継サーバのみが設けられていてもよい。
(変形例4)上記の実施例では、端末側サーバ80は、端末装置100からGETSUBコマンド280等を受信する場合に、プリンタ側サーバ50からステータス情報300等を取得して、ステータス情報300等とDBサーバ70内の状況情報とを比較する。これに代えて、プリンタ側サーバ50がステータス情報を記憶しなくてもよく、端末側サーバ80がプリンタ側サーバ50からステータス情報を取得しなくてもよい。この場合、DBサーバ70内の状況情報が更新されない事象が発生し得るが、各サーバ50,80の処理負荷を軽減させることができる。
(変形例5)DBサーバ70は、端末側サーバ80と別体に構成されていなくてもよく、端末側サーバ80の内部に設けられていてもよい。
(変形例6)「通信装置」は、プリンタ10等に限られず、スキャナ、コピー機、多機能機、携帯端末、PC、サーバ等であってもよい。「端末装置」は、プリンタ10等の販売店に設置されていなくてもよく、例えば、家庭内のPC等であってもよい。
(変形例7)上記の実施例では、各サーバ50,80のCPU62,92がメモリ64,94内のプログラム(即ちソフトウェア)を実行することによって、図2〜図6の各処理が実現される。これに代えて、図2〜図6の各処理のうちの少なくとも1つの処理は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、10,40,45:プリンタ、50:プリンタ側サーバ、70:DBサーバ、80:端末側サーバ、100:端末装置、200:要求コマンド、202:SUBコマンド、230:応答コマンド、280:GETSUBコマンド、320:応答コマンド

Claims (13)

  1. 中継サーバであって、
    端末装置から要求コマンドを受信する要求コマンド受信部であって、前記要求コマンドは、通信装置への条件情報の送信を前記中継サーバに要求するためのコマンドであり、前記条件情報は、前記通信装置から前記端末装置へのデータの送信のための条件を示す、前記要求コマンド受信部と、
    前記要求コマンドが受信される場合に、第1の応答コマンドを前記端末装置に送信する第1の応答部と、
    前記要求コマンドが受信される場合に、前記条件情報を前記通信装置に送信する情報送信部と、
    前記要求コマンドが受信された後に、前記端末装置から問合せコマンドを受信する問合せコマンド受信部であって、前記問合せコマンドは、前記通信装置への前記条件情報の送信が完了したのか否かを前記中継サーバに問い合わせるためのコマンドである、前記問合せコマンド受信部と、
    前記問合せコマンドが受信される場合に、前記通信装置への前記条件情報の送信が完了したのか否かを示す状況情報を含む第2の応答コマンドを前記端末装置に送信する第2の応答部と、
    を備える中継サーバ。
  2. 前記要求コマンド受信部は、前記端末装置から、前記条件情報を含む前記要求コマンドを受信する、請求項1に記載の中継サーバ。
  3. 前記情報送信部は、
    前記通信装置と前記中継サーバとの間にインターネットを介した特定の接続が確立されている状態で、前記端末装置から前記要求コマンドが受信される場合に、前記条件情報を前記通信装置に送信し、
    前記特定の接続が確立されていない状態で、前記端末装置から前記要求コマンドが受信される場合に、前記条件情報を前記通信装置に送信せず、前記特定の接続が確立されていない状態から前記特定の接続が確立されている状態に変化した後に、前記条件情報を前記通信装置に送信する、請求項1又は2に記載の中継サーバ。
  4. 前記中継サーバは、さらに、
    前記特定の接続が確立されていない状態で、前記通信装置から第1の要求信号を受信する第1の信号受信部と、
    前記第1の要求信号に対する応答信号を前記通信装置に送信する信号送信部であって、前記応答信号は、前記特定の接続で利用されるべきセッションIDを含む、前記信号送信部と、
    前記応答信号が前記通信装置に送信された後に、前記通信装置から前記セッションIDを含む第2の要求信号を受信する第2の信号受信部と、
    前記通信装置から前記第2の要求信号が受信される場合に、前記通信装置と前記中継サーバとの間に前記特定の接続を確立する確立部と、
    を備える、請求項3に記載の中継サーバ。
  5. 前記要求コマンドは、複数個の前記通信装置を識別するための複数個の識別情報を含み、
    前記情報送信部は、前記要求コマンドが受信される場合に、前記条件情報を前記複数個の通信装置のそれぞれに順次送信し、
    前記問合せコマンド受信部は、前記要求コマンドが受信された後に、前記端末装置から前記複数個の識別情報を含む前記問合せコマンドを受信し、
    前記第2の応答部は、前記問合せコマンドが受信される場合に、前記複数個の識別情報によって識別される前記複数個の通信装置に対応する複数個の前記状況情報を含む前記第2の応答コマンドを前記端末装置に送信する、請求項1から4のいずれか一項に記載の中継サーバ。
  6. 前記中継サーバは、第1のサーバと、前記第1のサーバとは別体である第2のサーバと、を備え、
    前記第1のサーバは、前記要求コマンド受信部と、前記第1の応答部と、前記問合せコマンド受信部と、前記第2の応答部と、を備え、
    前記第2のサーバは、前記情報送信部を備える、請求項5に記載の中継サーバ。
  7. 前記第1のサーバは、さらに、
    前記複数個の識別情報のうちの第1の識別情報と、前記条件情報と、を前記第2のサーバに供給して、前記第1の識別情報によって識別される第1の通信装置への前記条件情報の送信を、前記第2のサーバに実行させる供給部と、
    前記第2のサーバから、前記第1の通信装置への前記条件情報の送信が完了したことを示す通知を取得する第1の取得部と、を備え、
    前記供給部は、さらに、前記第2のサーバから前記通知が取得された後に、前記複数個の識別情報のうちの前記第1の識別情報とは異なる第2の識別情報と、前記条件情報と、を前記第2のサーバに供給して、前記第2の識別情報によって識別される第2の通信装置への前記条件情報の送信を、前記第2のサーバに実行させる、請求項6に記載の中継サーバ。
  8. 前記第1のサーバは、さらに、
    前記複数個の状況情報をデータベースに記憶させる記憶制御部を備え、
    前記第2の応答部は、前記データベース内の前記複数個の状況情報を含む前記第2の応答コマンドを前記端末装置に送信する、請求項6又は7に記載の中継サーバ。
  9. 前記第1のサーバは、さらに、
    前記第2のサーバから、前記複数個の通信装置に対応する複数個のステータス情報を取得する第2の取得部であって、前記複数個のステータス情報のそれぞれは、当該ステータス情報に対応する前記通信装置への前記条件情報の送信が完了したのか否かを示す、前記第2の取得部を備え、
    前記記憶制御部は、前記データベース内の前記複数個の状況情報と、前記複数個のステータス情報と、が異なる場合に、前記データベース内の前記複数個の状況情報を、前記複数個のステータス情報が示す内容に更新する、請求項8に記載の中継サーバ。
  10. 前記第2の取得部は、前記端末装置から前記問合せコマンドが受信される場合に、前記第2のサーバから前記複数個のステータス情報を取得する、請求項9に記載の中継サーバ。
  11. 前記データベースは、前記第1及び第2のサーバとは別体に構成されている、請求項8から10のいずれか一項に記載の中継サーバ。
  12. 前記中継サーバは、第1のサーバと、前記第1のサーバとは別体である第2のサーバと、を備え、
    前記第1のサーバは、前記要求コマンド受信部と、前記第1の応答部と、前記問合せコマンド受信部と、前記第2の応答部と、を備え、
    前記第2のサーバは、前記情報送信部を備える、請求項1から4のいずれか一項に記載の中継サーバ。
  13. 中継サーバのためのコンピュータプログラムであって、
    前記中継サーバに搭載される1個以上のプロセッサに、以下の各処理、即ち、
    端末装置から要求コマンドを受信する要求コマンド受信処理であって、前記要求コマンドは、通信装置への条件情報の送信を前記中継サーバに要求するためのコマンドであり、前記条件情報は、前記通信装置から前記端末装置へのデータの送信のための条件を示す、前記要求コマンド受信処理と、
    前記要求コマンドが受信される場合に、第1の応答コマンドを前記端末装置に送信する第1の応答処理と、
    前記要求コマンドが受信される場合に、前記条件情報を前記通信装置に送信する情報送信処理と、
    前記要求コマンドが受信された後に、前記端末装置から問合せコマンドを受信する問合せコマンド受信処理であって、前記問合せコマンドは、前記通信装置への前記条件情報の送信が完了したのか否かを前記中継サーバに問い合わせるためのコマンドである、前記問合せコマンド受信処理と、
    前記問合せコマンドが受信される場合に、前記通信装置への前記条件情報の送信が完了したのか否かを示す状況情報を含む第2の応答コマンドを前記端末装置に送信する第2の応答処理と、
    を実行させるコンピュータプログラム。
JP2013053801A 2013-03-15 2013-03-15 中継サーバ Active JP6064703B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013053801A JP6064703B2 (ja) 2013-03-15 2013-03-15 中継サーバ
US14/207,742 US9467501B2 (en) 2013-03-15 2014-03-13 Relay server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013053801A JP6064703B2 (ja) 2013-03-15 2013-03-15 中継サーバ

Publications (2)

Publication Number Publication Date
JP2014178987A JP2014178987A (ja) 2014-09-25
JP6064703B2 true JP6064703B2 (ja) 2017-01-25

Family

ID=51533558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013053801A Active JP6064703B2 (ja) 2013-03-15 2013-03-15 中継サーバ

Country Status (2)

Country Link
US (1) US9467501B2 (ja)
JP (1) JP6064703B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796552B (zh) * 2014-09-04 2020-05-05 精工爱普生株式会社 处理装置以及数据处理方法
US10452326B2 (en) * 2017-07-06 2019-10-22 Ricoh Company, Ltd. Information processing apparatus, information processing method, and non-transitory computer-readable storage medium

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309259A (ja) * 1993-04-20 1994-11-04 Hitachi Ltd クライアント/サーバシステムにおける通信方法
JP3483044B2 (ja) 1993-11-16 2004-01-06 セイコーエプソン株式会社 印刷装置、印刷システム、及びステータス変化検出方法
JPH10222318A (ja) 1997-02-03 1998-08-21 Canon Inc 出力装置、出力方法およびその記憶媒体
US6930985B1 (en) * 2000-10-26 2005-08-16 Extreme Networks, Inc. Method and apparatus for management of configuration in a network
JP2003085060A (ja) * 2001-09-10 2003-03-20 Nec Corp 分散処理システム、中継計算機、処理計算機、中継計算機プログラム、および処理計算機プログラム
JP2004334793A (ja) * 2003-05-12 2004-11-25 Canon Inc 周辺装置およびサーバ装置およびクライアントデバイスおよびネットワークデバイスシステムおよびデバイス検索方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム
JP3877737B2 (ja) * 2004-03-29 2007-02-07 三洋電機株式会社 通信中継装置
JP4667412B2 (ja) * 2007-03-13 2011-04-13 富士通株式会社 電子機器集中管理プログラム、電子機器集中管理装置および電子機器集中管理方法
JP5424765B2 (ja) * 2009-07-28 2014-02-26 キヤノン株式会社 監視装置及び情報処理方法
JP6011167B2 (ja) * 2012-09-03 2016-10-19 ブラザー工業株式会社 通信中継プログラム、及び、通信中継装置
JP6075010B2 (ja) * 2012-10-31 2017-02-08 ブラザー工業株式会社 通信中継プログラム、及び、画像処理装置
US9019537B2 (en) * 2013-01-22 2015-04-28 Canon Kabushiki Kaisha Systems and methods for providing status monitor capability to printing devices

Also Published As

Publication number Publication date
JP2014178987A (ja) 2014-09-25
US20140280724A1 (en) 2014-09-18
US9467501B2 (en) 2016-10-11

Similar Documents

Publication Publication Date Title
JP5703791B2 (ja) 印刷システムおよびプリンター
US8937730B2 (en) System, image forming apparatus, server, and control method thereof
JP6044597B2 (ja) 画像処理システム、中継サーバー及びプログラム
JP6065672B2 (ja) 通信装置
US9086833B2 (en) System that outputs status information representing a status of a device
US10291815B2 (en) Information processing apparatus capable of communicating with any of one or more servers according to a first protocol and a second protocol, information processing system including the information processing apparatus, and a method performed by the information processing apparatus
JP5571911B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP5994692B2 (ja) 中継サーバ及び通信装置
JP6064703B2 (ja) 中継サーバ
JP5839102B2 (ja) 印刷システムおよびプリンター
US9571677B2 (en) Image processing apparatus and non-transitory computer readable medium
JP6669204B2 (ja) 中継サーバ及び通信装置
JP5732867B2 (ja) 印刷制御サーバー,印刷制御方法および印刷制御プログラム
JP2016152461A (ja) クラウドシステム、ルータ、管理用サーバおよびプログラム
JP2016045697A (ja) 印刷制御装置、印刷システム、印刷制御装置の制御方法、及びプログラム
JP5900574B2 (ja) 印刷制御サーバー,印刷制御方法および印刷制御プログラム
JP2015114878A (ja) 通信装置、通信制御方法、プログラム及び記憶媒体
US11467787B2 (en) Communication system, first server, second server, non-transitory computer-readable recording medium storing computer-readable instructions for first server and non-transitory computer-readable recording medium storing computer-readable instructions for second server
JP2016197469A (ja) 中継サーバ及び通信装置
JP5732874B2 (ja) 印刷制御サーバー,印刷制御方法および印刷制御プログラム
JP6036966B2 (ja) 印刷システムおよびプリンター
JP6399164B2 (ja) 画像形成システム、その制御方法及びプログラム
JP6531430B2 (ja) 端末装置及び通信システム
JP6079845B2 (ja) システムおよび処理端末
JP2017062811A (ja) 印刷システムおよびプリンター

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161115

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: 20161122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R150 Certificate of patent or registration of utility model

Ref document number: 6064703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150