JP6631325B2 - サーバのためのコンピュータプログラム、及び、サーバ - Google Patents

サーバのためのコンピュータプログラム、及び、サーバ Download PDF

Info

Publication number
JP6631325B2
JP6631325B2 JP2016041504A JP2016041504A JP6631325B2 JP 6631325 B2 JP6631325 B2 JP 6631325B2 JP 2016041504 A JP2016041504 A JP 2016041504A JP 2016041504 A JP2016041504 A JP 2016041504A JP 6631325 B2 JP6631325 B2 JP 6631325B2
Authority
JP
Japan
Prior art keywords
information
terminal device
server
communication device
address
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
JP2016041504A
Other languages
English (en)
Other versions
JP2017157104A (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 JP2016041504A priority Critical patent/JP6631325B2/ja
Priority to US15/444,585 priority patent/US10462232B2/en
Publication of JP2017157104A publication Critical patent/JP2017157104A/ja
Application granted granted Critical
Publication of JP6631325B2 publication Critical patent/JP6631325B2/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/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Description

本明細書では、通信装置に関係する対象サービスを実行可能なサーバを実現するためのコンピュータプログラムに関する技術を開示する。
特許文献1には、インターネット上の遠隔管理サーバと、空調機と、空調機をLAN(Local Area Networkの略)に接続するためのアダプタと、を備える通信システムが開示されている。遠隔管理サーバは、アダプタから、アダプタのMACアドレスと、アダプタのグローバルIPアドレスと、を受信する場合に、当該MACアドレスと当該グローバルIPアドレスとを仮登録データベースに登録する。その後、遠隔管理サーバは、端末装置から、端末装置のグローバルIPアドレスを受信し、アダプタのグローバルIPアドレスと端末装置のグローバルIPアドレスとを利用して、アダプタ及び端末装置が同じLANに所属しているか否かを判断する。遠隔管理サーバは、同じLANに所属していると判断する場合に、アダプタのMACアドレスを基本情報データベースに登録する。これにより、遠隔管理サーバは、空調機を管理することができる。
特開2010−34853号公報
遠隔管理サーバが空調機を管理するためには、通常、遠隔管理サーバとアダプタとの間にインターネットを介した接続を確立する必要があり、遠隔管理サーバは、当該接続を確立するための情報をアダプタに送信する必要がある。ここで、遠隔管理サーバとアダプタとの間に存在するルータは、通常、ファイヤウォール機能を有している。この場合、インターネット上の遠隔管理サーバは、通常、LAN内のアダプタから何らかの要求を受信して当該要求に応答する形式で上記の情報を送信しない限り、ルータのファイヤウォールを越えて上記の情報をアダプタに送信することができない。
本明細書では、サーバが通信装置から要求を受信しなくても、サーバと通信装置との間にインターネットを介した接続を確立するための接続情報を通信装置に送信するための技術を提供する。
本明細書によって開示されるサーバのためのコンピュータプログラムは、前記サーバのコンピュータに、以下の各処理、即ち、通信装置と前記サーバとの間のインターネットを介した通信を中継するための第1の中継装置から第1の登録要求を受信する第1の受信処理であって、前記第1の登録要求は、前記通信装置に割り当てられる第1のIPアドレスと、前記通信装置を識別するための第1の識別情報と、を含む、前記第1の受信処理と、前記第1の登録要求が受信される場合に、前記第1のIPアドレスと、前記第1の識別情報と、を含む対象情報をメモリに登録する第1の登録処理と、前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第2の中継装置から第2の登録要求を受信する第2の受信処理であって、前記第2の登録要求は、前記端末装置に割り当てられる第2のIPアドレスと、第2の識別情報と、を含む、前記第2の受信処理と、前記対象情報に含まれる前記第1の識別情報と前記第2の登録要求に含まれる前記第2の識別情報とが一致するのか否かを判断する第1の判断処理と、前記対象情報に含まれる前記第1のIPアドレスと前記第2の登録要求に含まれる前記第2のIPアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第2の判断処理と、前記第1の識別情報と前記第2の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第2の登録処理であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第2の登録処理と、前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のIPアドレスと、を含む送信要求を前記端末装置に送信する第1の送信処理であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のIPアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第1の送信処理と、前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立処理と、前記接続を利用して、前記対象情報に含まれる前記第1の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス処理と、を実行させる。
上記の構成によれば、コンピュータプログラムは、以下のサーバを実現することができる。即ち、サーバは、第1の識別情報と第2の識別情報とが一致すると判断し、かつ、第1のIPアドレスと第2のIPアドレスとを利用して、通信装置と端末装置とが同じローカルエリアネットワークに所属していると判断する場合に、接続情報と、通信装置に割り当てられる特定のIPアドレスと、を含む送信要求を端末装置に送信する。この結果、端末装置は、特定のIPアドレスを送信先として接続情報を通信装置に送信する。従って、サーバは、通信装置から要求を受信しなくても、接続情報を通信装置に送信することができる。
上記のコンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。また、上記のコンピュータプログラムによって実現されるサーバそのもの、及び、サーバの制御方法も、新規で有用である。
通信システムの構成、及び、各種テーブルの構成を示す。 サービス処理のフローチャートを示す。 本登録処理のフローチャートを示す。 端末装置に表示される各画面を示す。 登録コード処理のフローチャートを示す。 装置情報がサーバに登録されるケースAを表わすシーケンスを示す。 図6の続きのシーケンスを示す。 登録コードを利用して装置情報がサーバに登録されるケースBを表わすシーケンスを示す。
(第1実施例)
(通信システム2の構成:図1(A))
図1(A)を参照して、通信システム2の構成を説明する。通信システム2は、サーバ10と、プリンタ100,200と、端末装置400と、を備える。各装置100,200,400は、LAN(Local Area Networkの略)4を介して、相互に通信可能である。LAN4は、ルータ500を介して、インターネット6に接続されている。LAN4は、有線LAN及び無線LANのどちらでもよい。端末装置400は、モバイルネットワーク8に接続可能であり、モバイルネットワーク8を構成する基地局600を介して、インターネット6に接続可能である。モバイルネットワーク8は、セルラー方式(例えば、3G(3rd Generation)方式、4G(4th Generation)方式等)に従った無線ネットワークである。また、サーバ10は、インターネット6を介して、各装置100,200,400と通信可能である。
(プリンタ100,200の構成)
プリンタ100は、カラー印刷機能を備える周辺機器(即ち、端末装置400の周辺機器)である。プリンタ100には、モデル名MN1と、シリアル番号SN1と、登録コードRC1と、プライベートIP(Internet Protocolの略)アドレスPA1と、が割り当てられている。プリンタ100のベンダは、同じモデル(即ちモデル名MN1)を有する複数個のプリンタを製造する際に、連番で付与される数字を含む複数個の文字列を複数個のシリアル番号として決定する。ここで、シリアル番号は、さらに、アルファベット及び/又は記号(例えばハイフン等)を含んでいてもよい。ベンダは、さらに、ランダムに付与される複数個の文字列を複数個の登録コードとして決定する。ただし、ベンダは、複数個の登録コードが互いに重複しないように、複数個の登録コードを決定する。従って、各シリアル番号及び各登録コードは、ユニークな文字列である。登録コードは、シリアル番号等を含む様々な情報をサーバ10に登録するために利用される。
ベンダは、上記の複数個のプリンタのうちのプリンタ100に、シリアル番号SN1及び登録コードRC1を割り当てる。そして、上記の各情報SN1,MN1,RC1は、プリンタ100の製造時に、プリンタ100に記憶される。即ち、上記の各情報SN1,MN1,RC1は、プリンタ100が出荷される段階から、プリンタ100に予め記憶されている。換言すると、記の各情報SN1,MN1,RC1は、プリンタ100のユーザによってプリンタ100に入力されなくても、プリンタ100に予め記憶されている。
また、シリアル番号SN1及び登録コードRC1が記載されているシートが、プリンタ100と共に出荷される。例えば、当該シートは、プリンタ100の表面に貼り付けられているシールであってもよいし、プリンタ100の説明書であってもよい。これにより、プリンタ100のユーザは、当該シートを見ることによってシリアル番号SN1及び登録コードRC1を知ることができる。なお、変形例では、プリンタ100は、所定の操作を受け付ける場合に、情報SN1,RC1が記載されているシートを印刷してもよい。また、別の変形例では、LAN4に接続されている端末装置(例えば、端末装置400)は、ユーザの操作に応じて、情報SN1,RC1をプリンタ100に要求してプリンタ100から情報SN1,RC1を受信し、受信済みのこれら情報を表示してもよい。特に、本変形例では、プリンタ100は、ウェブサーバとして機能してもよく、端末装置は、ブラウザプログラムを利用して、プリンタ100内のウェブサーバにアクセスして、プリンタ100から情報SN1,RC1を受信してもよい。いずれの変形例でも、ユーザは、シリアル番号SN1及び登録コードRC1を知ることができる。
プライベートIPアドレスPA1は、IPv4(Internet Protocol version 4の略)に従ったIPアドレスであり、LAN4内においてプリンタ100を識別するためのIPアドレスである。当該アドレスPA1は、例えば、LAN4の管理者から割り当てられてもよいし、DHCP(Dynamic Host Configuration Protocolの略)サーバ等のIPアドレス割り当てサーバから割り当てられてもよい。
プリンタ200は、プリンタ100とは異なるモデルのプリンタであり、プリンタ200にも、モデル名MN2とシリアル番号SN2と登録コードRC2とIPv4に従ったプライベートIPアドレスPA2とが、割り当てられている。
(ルータ500の構成)
ルータ500は、LAN4内の各装置100等とインターネット6(例えばサーバ10)との間の通信を中継する。ルータ500には、ルータ500が利用可能なIPv4に従ったグローバルIPアドレスの範囲G1(即ち「129.123.123.0」〜「129.123.123.255」)が割り当てられている。ルータ500のサブネットマスクが「255.255.0.0」であるので、LAN4のグローバルネットワークアドレスは「129.123」である。変形例では、ルータ500のサブネットマスクは「255.255.0.0」とは異なる値であってもよい。
例えば、ルータ500は、上記の範囲G1に含まれる1個のグローバルIPアドレスをプリンタ100に割り当てて、当該グローバルIPアドレスとプリンタ100のプライベートIPアドレスPA1とを関連付ける。具体的には、ルータ500は、プリンタ100から、サーバ10に送信されるべき要求を受信する場合に、上記の範囲G1内の1個のグローバルIPアドレスである対象グローバルIPアドレスと、当該要求内のヘッダに含まれるプライベートIPアドレスPA1と、を関連付けて記憶する。これにより、対象グローバルIPアドレスが、プリンタ100に割り当てられる。ルータ500は、さらに、上記のヘッダに含まれるプライベートIPアドレスを対象グローバルIPアドレスに変換し、その後、上記の要求をサーバ10に送信する。また、ルータ500は、サーバ10から、上記の要求内のヘッダに含まれる対象グローバルIPアドレスが送信先として指定されている応答を受信すると、対象グローバルIPアドレスに関連付けられているプライベートIPアドレスPA1を送信先として応答を送信することによって、当該応答をプリンタ100に送信する。この技術は、例えば、NAT(Network Address Translationの略)、NAPT(Network Address and Port Translationの略)等の技術により実現される。
(端末装置400の構成)
端末装置400は、タブレットPC,スマートフォン等の可搬型の端末である。端末装置400がLAN4に接続されている場合には、端末装置400には、LAN4内において端末装置400を識別するためのプライベートIPアドレスPA4が割り当てられる。
(基地局600の構成)
基地局600は、端末装置400とインターネット6(例えばサーバ10)との間の通信を中継する。基地局600には、基地局600が利用可能なIPv4に従ったグローバルIPアドレスの範囲G2(即ち「129.255.255.0」〜「129.255.255.255」)が割り当てられている。基地局600のサブネットマスクが「255.255.0.0」であるので、モバイルネットワーク8のグローバルネットワークアドレスは「129.255」であり、その値は、LAN4のグローバルネットワークアドレス「129.123」とは異なる。
(サーバ10の構成)
サーバ10は、各プリンタ100,200に関係する対象サービス(例えば、後述のインク発送及びメール送信)を各プリンタ100等のユーザに提供するためのサーバである。サーバ10は、各プリンタ100等のベンダによってインターネット6上に設置される。なお、変形例では、サーバ10は、当該ベンダとは異なる事業者によってインターネット6上に設置されてもよい。
サーバ10は、ネットワークインターフェイス12と、制御部20と、を備える。各部12,20は、バス線(符号省略)に接続されている。なお、以下では、インターフェースのことを「I/F」と記載する。制御部20は、CPU22と、メモリ24と、を備える。CPU22は、メモリ24に格納されているプログラム26に従って、様々な処理を実行する。メモリ24は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ24は、上記のプログラム26の他に、ユーザ情報テーブル28と、登録テーブル30と、を格納する。なお、変形例では、ユーザ情報テーブル28と登録テーブル30とは、サーバ10と通信可能に接続されている外部メモリに格納されてもよい。
(ユーザ情報テーブル28の構成:図1(B))
図1(B)を参照して、ユーザ情報テーブル28の構成を説明する。ユーザ情報テーブル28には、1個以上のユーザ情報が登録される。各ユーザ情報は、ユーザを識別するためのユーザ名(例えば「UN1」)と、パスワード(例えば「P1」)と、アドレス情報(例えば「A1」)と、を含む。アドレス情報は、ユーザのメールアドレス及び所在地住所を含む。各ユーザ情報には、当該ユーザ情報を識別するためのユニークなユーザ番号が関連付けられる。
(登録テーブル30の構成:図1(C))
図1(C)を参照して、登録テーブル30の構成を説明する。登録テーブル30には、1個以上の装置情報が登録される。各装置情報は、シリアル番号(例えば「SN1」)と、モデル名(例えば「MN1」)と、登録コード(例えば「RC1」)と、グローバルIPアドレス(例えば「GA1」)と、プライベートIPアドレス(例えば「PA1」)と、を含む。各装置情報には、ステータス情報、ユーザ番号、アクセストークン、及び、履歴情報が関連付けられる。なお、変形例では、装置情報は、モデル名を含まなくてもよい。
ステータス情報は、関連する装置情報の登録状態を示し、仮登録状態又は本登録状態を示す。仮登録状態では、ユーザ番号、アクセストークン、及び、履歴情報が、装置情報(例えば「SN3」を含む装置情報参照)に関連付けられない。仮登録状態では、サーバ10は、装置情報に含まれるシリアル番号によって識別されるプリンタに関係する対象サービスを実行しない。一方、本登録状態では、ユーザ番号、アクセストークン、及び、履歴情報が、装置情報(例えば「SN1」を含む装置情報参照)に関連付けられる。このように、ユーザ番号が装置情報に関連付けられている状態(即ち本登録状態)では、当該ユーザ番号(例えば「U1」)を介して、当該装置情報(例えば「SN1」を含む装置情報)と、当該ユーザ番号によって識別されるユーザ情報(例えば「UN1」を含むユーザ情報)と、が関連付けられる。本登録状態では、サーバ10は、装置情報に含まれるシリアル番号によって識別されるプリンタに関係する対象サービスを実行する。
アクセストークンは、サーバ10とプリンタとの間にインターネット6を介した様々な接続を確立するための情報である。当該接続は、例えば、XMPP(Extensible Messaging and Presence Protocolの略)接続、HTTPS(Hypertext Transfer Protocol Secureの略)接続等を含む。なお、XMPP接続は、いわゆる常時接続であり、プリンタ100の電源が切断されるまで確立され続ける接続である。サーバ10は、XMPP接続を利用すれば、プリンタから要求を受信しなくても、当該プリンタが所属するLANのファイヤウォール(例えばルータ500によって形成されるファイヤウォール)を越えて、当該プリンタに要求を送信することができる。なお、サーバ10からプリンタに要求を送信する仕組みは、XMPP接続ではなく、他の手法であってもよい。
履歴情報は、プリンタの残量情報の履歴を示す情報である。残量情報は、プリンタの複数色(例えばCMYK)のインクのそれぞれの残量を示す情報である。
(サービス処理:図2)
図2を参照して、サーバ10のCPU22がプログラム26に従って実行するサービス処理を説明する。サービス処理は、サーバ10の電源がONされることをトリガとして開始される。サービス処理では、S10,S20,S40,S60の各監視ステップが順次実行される。なお、以下では、サーバ10と端末装置又はプリンタとの間では、中継装置(例えば、ルータ500、基地局600)及びインターネット6を介して、通信が実行される。ただし、以下では、特に言及しない限り、「中継装置を介して」及び「インターネット6を介して」という説明を省略する。
S10では、CPU22は、端末装置(例えば端末装置400)からユーザ情報を受信することを監視する。CPU22は、新たなユーザを登録するための要求と共にユーザ情報を受信する場合(S10でYES)に、S12に進む。
S12では、CPU22は、新たなユーザ番号を生成し、当該ユーザ番号と受信済みのユーザ情報とを関連付けてユーザ情報テーブル28に登録する。S12が終了すると、S10に戻る。
S20では、CPU22は、プリンタ(例えばプリンタ200)から仮登録要求を受信することを監視する。仮登録要求は、プリンタの装置情報を含み、当該装置情報を登録テーブル30に登録するための要求である。CPU22は、仮登録要求を受信する場合(S20でYES)に、S22に進む。
なお、プリンタは、LAN4及びルータ500を介してインターネット6に接続されていること、及び、プリンタに電力が供給されること、の双方が満たされた際に、仮登録要求をサーバ10に送信する。即ち、プリンタは、例えばLANケーブルがプリンタに接続されている状態でプリンタの電源がONされる際に、仮登録要求をサーバ10に送信する。また、プリンタは、プリンタの電源がONされている状態で例えばLANケーブルがプリンタに接続される際に、仮登録要求をサーバ10に送信する。ユーザは、仮登録要求を送信するための特別な操作をプリンタに実行する必要が無いので、ユーザの作業負荷が軽減される。なお、変形例では、プリンタは、ユーザによって実行される所定の操作を受け付ける場合に、仮登録要求をサーバ10に送信してもよい。なお、変形例では、プリンタは、プリンタの電源がONされている状態で、プリンタに対する無線LANの設定が完了した際(即ちプリンタが無線LANに接続した際)に、仮登録要求をサーバ10に送信してもよい。
プリンタは、プリンタのシリアル番号とモデル名と登録コードとを仮登録要求内のボディに記述し、さらに、プリンタのプライベートIPアドレスを仮登録要求内のボディ及びヘッダのそれぞれに記述し、当該仮登録要求をルータ500に送信する。この場合、ルータ500では、仮登録要求内のヘッダに含まれるプライベートIPアドレスがグローバルIPアドレスに変換され、当該仮登録要求がサーバ10に送信される。これにより、サーバ10において、当該仮登録要求が受信される(S20でYES)。
S22では、CPU22は、受信済みの仮登録要求に含まれる装置情報を登録テーブル30に登録する。具体的には、CPU22は、仮登録要求内のヘッダからグローバルIPアドレスを特定し、さらに、仮登録要求内のボディからシリアル番号とモデル名と登録コードとプライベートIPアドレスとを特定し、それらの情報を登録テーブル30に登録する。なお、CPU22は、受信済みの仮登録要求に含まれる装置情報に一致する装置情報が登録テーブル30に既に登録されている場合には、受信済みの装置情報を登録テーブル30に登録しない。
S24では、CPU22は、S22で登録された装置情報に仮登録状態を示すステータス情報を関連付ける。S26では、CPU22は、装置情報の仮登録が完了したことを示す通知を、S20の仮登録要求の送信元のプリンタに送信する。これにより、CPU22は、仮登録が完了したことを示す画面をプリンタに表示させることができる。S26が終了すると、S10に戻る。
S40では、CPU22は、端末装置(例えば端末装置400)からログイン要求を受信することを監視する。ログイン要求は、サーバ10にログインするための要求である。CPU22は、ログイン要求を受信する場合(S40でYES)に、S50に進む。S50では、本登録処理(図3参照)が実行される。S50の本登録処理が終了すると、S10に戻る。
S60では、CPU22は、プリンタ(例えばプリンタ200)から残量情報を受信することを監視する。CPU22は、残量情報を受信する場合(S60でYES)に、S62に進む。S62では、CPU22は、残量情報と共に受信されるプリンタのシリアル番号を含む装置情報に関連付けられている履歴情報に、当該残量情報を加えることによって、履歴情報を更新する。
次いで、S64では、CPU22は、更新済みの履歴情報のうちの最新の残量情報に含まれる複数色のインクの残量のうちの少なくとも一つの残量が閾値(例えば20%)以下であるのか否かを判断する。CPU22は、複数色のインクの残量の全てが閾値より大きいと判断する場合(S64でNO)には、S66をスキップしてS10に戻る。なお、S64では、他の判断が実行されてもよい。例えば、CPU22は、インク残量の変化量が閾値以上であると判断する場合に、S64でYESと判断してもよい。
一方、CPU22は、複数色のインクの残量のうちの少なくとも一つの残量が閾値以下であると判断する場合(S64でYES)には、S66において、閾値以下の残量を有する色のインクをユーザに発送するための処理を実行する。具体的には、CPU22は、まず、登録テーブル30から、S60で受信されたシリアル番号を含む装置情報に関連付けられているユーザ番号を特定し、次いで、ユーザ情報テーブル28から、当該ユーザ番号に関連付けられているユーザ情報に含まれるアドレス情報を特定する。CPU22は、さらに、登録テーブル30から、S60で受信されたシリアル番号に関連付けられているモデル名を特定し、特定済みのモデル名を有するプリンタで利用されるインクカートリッジの種類を特定する。そして、CPU22は、特定済みのアドレス情報に含まれる所在地住所宛に特定済みのインクカートリッジを発送するための処理を実行する。CPU22は、さらに、上記の特定済みのアドレス情報に含まれるメールアドレス宛に発送済みを示すメールを送信する。S66が終了すると、S10に戻る。
(本登録処理:図3)
図3を参照して、図2のS50で実行される本登録処理を説明する。S70では、CPU22は、ログイン画面データを端末装置(例えば端末装置400)に送信する。これにより、端末装置では、ログイン画面データによって表わされるログイン画面SC1(図4参照)が表示される。ログイン画面SC1は、ユーザ名及びパスワードを入力するための入力欄を含む。端末装置は、ユーザ名及びパスワードが入力欄に入力された後に、OKボタンを選択(例えばクリック)する操作を受け付ける場合に、ユーザ名及びパスワードをサーバ10に送信する。
S72では、CPU22は、端末装置からユーザ名及びパスワードを受信することを監視する。CPU22は、ユーザ名及びパスワードを受信する場合(S72でYES)には、S74において、受信済みのユーザ名及びパスワードの認証を実行する。CPU22は、受信済みのユーザ名及びパスワードの組合せがユーザ情報テーブル28に登録されている場合に、認証が成功したと判断し(S74でYES)、S80に進む。
一方、CPU22は、上記の組合せがユーザ情報テーブル28に登録されていない場合に、認証が失敗したと判断し(S74でNO)、S76において、ログインエラー画面データを端末装置に送信する。これにより、端末装置では、ログインエラー画面データによって表わされる画面(即ちログインの失敗を示す画面)が表示され、次いで、ログイン画面SC1が再び表示される。S76が終了すると、S72に戻る。
S80では、CPU22は、登録画面データを端末装置に送信する。これにより、端末装置では、登録画面データによって表わされる登録画面SC2(図4参照)が表示される。登録画面SC2は、シリアル番号を入力するための入力欄を含む。
端末装置は、上記の入力欄にシリアル番号が入力された後に、OKボタンを選択する操作を受け付ける場合に、当該シリアル番号(以下では「対象シリアル番号」と呼ぶ)を本登録要求内のボディに記述し、さらに、端末装置のプライベートIPアドレスを本登録要求内のヘッダに記述し、当該本登録要求をサーバ10に送信する。ここで、端末装置がLAN4に接続されている場合には、ルータ500では、本登録要求内のヘッダに含まれるプライベートIPアドレスがグローバルIPアドレスに変換され、当該本登録要求がサーバ10に送信される。また、端末装置がLAN4に接続されていない場合には、基地局600では、本登録要求内のヘッダに含まれるプライベートIPアドレスがグローバルIPアドレスに変換され、当該本登録要求がサーバ10に送信される。
S82では、CPU22は、端末装置から本登録要求を受信することを監視する。CPU22は、本登録要求を受信する場合(S82でYES)に、S84において、本登録要求内のボディに含まれる対象シリアル番号に一致するシリアル番号が登録テーブル30に登録されているのか否かを判断する。CPU22は、登録されていると判断する場合(S84でYES)にはS86に進み、登録されていないと判断する場合(S84でNO)にはS90に進む。なお、変形例では、本登録要求内のボディにシリアル番号及びモデル名の組が含まれており、CPU22は、当該組に一致するシリアル番号及びモデル名の組が登録テーブル30に登録されているのか否かを判断してもよい。
S86では、CPU22は、対象シリアル番号に一致するシリアル番号を含む装置情報(以下では「対象装置情報」と呼ぶ)に含まれるグローバルIPアドレスと、本登録要求内のヘッダに含まれるグローバルIPアドレスと、を利用して、対象シリアル番号によって識別されるプリンタと本登録要求の送信元の端末装置とが同じLANに所属しているのか否かを判断する。
具体的には、CPU22は、まず、第1の判断処理を実行する。第1の判断処理では、CPU22は、本登録要求に含まれるグローバルIPアドレスが対象装置情報に含まれるグローバルIPアドレスに一致するのか否かを判断する。CPU22は、上記の2つのグローバルIPアドレスが一致する場合には、同じLANに所属していると判断して(S86でYES)、S100に進む。例えば、ルータ500に割り当てられているグローバルIPアドレスの範囲G1が狭い場合には、1つのグローバルIPアドレスが同じLANに所属しているプリンタ及び端末装置の双方に割り当てられ得る。このような状況では、CPU22は、第1の判断処理において同じLANに所属していると判断して(S86でYES)、S100に進む。
また、CPU22は、第1の判断処理において上記の2つのグローバルIPアドレスが一致しないと判断する場合に、第2の判断処理を実行する。第2の判断処理では、CPU22は、WHOISプロトコルに従って、上記の2つのグローバルIPアドレスのうちの一方のグローバルIPアドレスを含む要求をWHOISサーバに送信して、WHOISサーバから当該一方のグローバルIPアドレスのネットワークアドレスを受信する。WHOISサーバは、要求に含まれるグローバルIPアドレスに関係する情報(例えば、グローバルIPアドレスの所有者の情報、ネットワークアドレス等)を送信するサーバである。CPU22は、同様に、他方のグローバルIPアドレスのネットワークアドレスも受信する。そして、CPU22は、受信済みの2つのネットワークアドレスが一致する場合に、同じLANに所属していると判断し(S86でYES)、S100に進む。一方、CPU22は、受信済みの2つのネットワークアドレスが一致しない場合に、同じLANに所属していないと判断し(S86でNO)、S90に進む。なお、変形例では、CPU22は、複数のWHOISサーバと通信可能なポータルサーバに上記の要求を送信してネットワークアドレスを受信してもよい。また、別の変形例では、CPU22は、S86の判断を先に実行し、そこでYESの場合に、S84の判断を実行してもよい。
S100では、CPU22は、アクセストークンを生成する。なお、変形例では、アクセストークンは、S84でYESと判断される前に予め生成されて、対象装置情報に関連付けて登録テーブル30に登録されてもよい。
S102では、CPU22は、リダイレクト要求を端末装置に送信する。リダイレクト要求は、対象装置情報に含まれるプライベートIPアドレス(以下では「対象プライベートIPアドレス」と呼ぶ)と、生成済みのアクセストークンと、を含む。リダイレクト要求は、対象プライベートIPアドレスを送信先としてアクセストークンを送信する処理を端末装置に実行させるための要求である。
ここで、端末装置がサーバ10からリダイレクト要求を受信する場合に、端末装置及びプリンタが実行する処理について説明する。端末装置は、リダイレクト要求を受信する場合に、リダイレクト要求に含まれる対象プライベートIPアドレスを送信先として、リダイレクト要求に含まれるアクセストークンを送信する。当該送信先であるプリンタは、端末装置からアクセストークンを受信する場合に、サーバ10の所定のURL(Uniform Resource Locatorの略)を含む受信通知を端末装置に送信する。プリンタには、当該所定のURLが予め記憶されている。受信通知は、アクセストークンの受信が完了したことを示す通知である。端末装置は、プリンタから受信通知を受信する場合に、受信通知に含まれる上記の所定のURLを送信先として、完了通知をサーバ10に送信する。完了通知は、プリンタでのアクセストークンの受信が完了したことを示す通知である。
図3に戻り説明を続ける。S104では、CPU22は、リダイレクト要求を送信することに応じて、端末装置から完了通知を受信することを監視する。CPU22は、端末装置から完了通知を受信する場合(S104でYES)に、S110において、対象装置情報に関連付けられている登録テーブル30内のステータス情報を仮登録状態から本登録状態に変更する。さらに、CPU22は、ユーザ情報テーブル28から、S74で認証が成功したユーザ情報に関連付けられているユーザ番号を特定する。そして、CPU22は、対象装置情報に関連付けて特定済みのユーザ番号を登録テーブル30に登録する。これにより、ユーザ情報が対象装置情報に関連付けられる。また、CPU22は、対象装置情報に関連付けて、S100で生成されたアクセストークンを登録テーブル30に登録する。なお、変形例では、CPU22は、S110を先に実行し、その後に、S102を実行してもよい。
なお、CPU22は、S104において、端末装置から完了通知を受信することなく所定時間が経過する場合に、図3の本登録処理を終了する。例えば、S102でリダイレクト要求が送信される際に、プリンタの電源がOFFされている場合には、プリンタは、端末装置からアクセストークンを受信できず、その結果、CPU22は、端末装置から完了通知を受信しない。このような状況では、プリンタの電源をONする操作と、サーバ10へのログインのための操作と、をユーザに実行させなければならない。登録画面SC2は、これらの操作をユーザに促すためのメッセージM1を含む。
S112では、CPU22は、完了画面データを端末装置に送信する。これにより、端末装置では、完了画面データによって表わされる完了画面SC4(図4参照)が表示される。完了画面SC4は、プリンタがアクセストークンを受信したこと、及び、プリンタの本登録が完了したことを示すメッセージを含む。
S114では、CPU22は、プリンタとのXMPP接続を確立する。具体的には、CPU22は、プリンタからアクセストークンを含む接続要求を受信する場合に、当該アクセストークンが登録テーブル30に登録されているのか否かを判断する。そして、CPU22は、当該アクセストークンが登録されていると判断する場合には、当該接続要求に対する接続応答をプリンタに送信する。この結果、サーバ10とプリンタとの間にXMPP接続が確立され、サーバ10からプリンタへの要求の送信が可能になる。なお、CPU22は、当該アクセストークンが登録されていないと判断する場合には、当該接続要求に対するエラー応答をプリンタに送信する。この場合、XMPP接続が確立されない。
S116では、CPU22は、S114で確立されたXMPP接続を利用して、残量情報要求をプリンタに送信する。残量情報要求は、残量情報を定期的に送信することをプリンタに要求するためのコマンドである。この結果、サーバ10は、プリンタから残量情報を受信することができる(図2のS60でYES)。S116が終了すると、本登録処理が終了する。
なお、CPU22は、S116で残量情報要求をプリンタに送信した後に、残量情報要求をプリンタに再び送信し得る。残量情報要求は、時間間隔(例えば1日)を示す間隔情報、インクの色(例えば全色又は特定の色)を示す色情報等を含む。プリンタは、間隔情報によって示される時間間隔(例えば1日毎)で、色情報によって示される色のインクの残量を示す残量情報を定期的に送信する。ここで、間隔情報及び色情報は、サーバ10の管理者により変更され得る。CPU22は、S116で残量情報要求を送信した後に、各情報が変更される場合に、S114で確立されたXMPP接続を利用して、変更済みの各情報を含む残量情報要求をプリンタに再び送信する。即ち、サーバ10は、プリンタから要求を受信しなくても、XMPP接続を利用して、残量情報要求をプリンタに再び送信することができる。
また、CPU22は、S84又はS86でNOと判断される場合には、S90において、エラー画面データを端末装置に送信する。これにより、端末装置では、エラー画面データによって表わされるエラー画面SC3(図4参照)が表示される。エラー画面SC3は、対象シリアル番号が登録テーブル30に登録されていないことに起因して、S84でNOと判断され得る2個の原因に対応する2個の指示IS1,IS2を含む。一方の原因は、サーバ10がプリンタから対象シリアル番号を含む仮登録要求を受信していないこと(即ち図2のS20〜S26が実行されていないこと)である。そして、当該一方の原因に対応する指示IS1は、プリンタの電源をONした後にボタンB1を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンB1を選択する操作を受け付ける場合に、確認指示をサーバ10に送信する。確認指示は、S84の判断をサーバ10に再び実行させるための指示である。また、他方の原因は、対象シリアル番号が正しいシリアル番号でないことである。そして、当該他方の原因に対応する指示IS2は、シリアル番号の再入力をユーザに促すためのメッセージを含む。端末装置は、ボタンB2を選択する操作を受け付ける場合に、登録画面SC2を再び表示する。これにより、ユーザは、登録画面SC2にシリアル番号を再入力することができる。この結果、シリアル番号を含む本登録要求が端末装置からサーバに再び送信される。
エラー画面SC3は、さらに、端末装置及びプリンタが同じLANに所属していないことに起因して、S86でNOと判断され得る原因に対応する指示IS3を含む。指示IS3は、プリンタが所属しているLANに端末装置を接続した後にボタンB3を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンB3を選択する操作を受け付ける場合に、登録画面SC2を再び表示する。これにより、ユーザは、登録画面SC2にシリアル番号を再入力することができる。この結果、端末装置がプリンタと同じLANに所属した後に、シリアル番号を含む本登録要求が端末装置からサーバに再び送信される。
エラー画面SC3は、さらに、端末装置及びプリンタが同じLANに所属していない場合に、端末装置を当該LANに接続しなくても、登録コードを利用して対象装置情報を本登録するための指示IS4を含む。指示IS4は、ユーザが登録コードを利用することを望む場合に、ボタンB4を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンB4を選択する操作を受け付ける場合に、実行要求をサーバ10に送信する。実行要求は、図5の登録コード処理をサーバ10に実行させるための要求である。
次いで、S92では、CPU22は、ボタンB1の選択に応じて端末装置から確認指示を受信すること、及び、ボタンB2,B3の選択後に表示される登録画面SC2でのOKボタンの選択に応じて端末装置から本登録要求を受信することを監視する。CPU22は、確認指示又は本登録要求を受信する場合(S92でYES)に、S84に戻る。
CPU22は、確認指示又は本登録要求を受信せずに、実行要求を受信する場合(S94でYES)に、S96において、登録コード処理(図5参照)を実行する。S96の登録コード処理が終了すると、本登録処理が終了する。
(登録コード処理:図5)
図5を参照して、図3のS96で実行される登録コード処理を説明する。S120では、CPU22は、入力画面データを端末装置に送信する。これにより、端末装置では、入力画面データによって表わされる入力画面SC5が表示される。入力画面SC5は、登録コードを入力するための入力欄を含む。端末装置は、登録コードが入力欄に入力された後に、OKボタンを選択する操作を受け付ける場合に、登録コードをサーバ10に送信する。
S122では、CPU22は、端末装置から登録コードを受信することを監視する。CPU22は、登録コードを受信する場合(S122でYES)に、S124において、受信済みの登録コード(以下では「対象登録コード」と呼ぶ)に一致する登録コードが登録テーブル30に登録されているのか否かを判断する。CPU22は、登録されていないと判断する場合(S124でNO)にはS130に進む。
S130では、CPU22は、エラー画面データを端末装置に送信し、S122に戻る。これにより、端末装置では、エラー画面データによって表わされるエラー画面SC6が表示される。エラー画面SC6は、登録コードの再入力をユーザに促すためのメッセージを含む。端末装置は、ボタンB5を選択する操作を受け付ける場合に、入力画面SC5を再び表示する。これにより、ユーザは、入力画面SC5に登録コードを再入力することができる。この結果、登録コードが端末装置からサーバに再び送信される。即ち、CPU22は、登録されていないと判断する場合、後述するS140以降の処理を実行せずに、エラー画面データを端末装置に送信する。
一方、CPU22は、登録されていると判断する場合(S124でYES)には、S140において、確認画面データを端末装置に送信する。これにより、端末装置では、確認画面データによって表わされる確認画面SC7が表示される確認画面SC7は、プリンタ(例えばプリンタ200)の操作パネルに登録確認操作を実行することをユーザに促す指示IS7を含む。登録確認操作は、サーバ10への送信指示の送信をプリンタに実行させるための操作である。送信指示は、アクセストークンの送信をサーバ10に実行させるための指示である。
S142では、CPU22は、プリンタから送信指示を受信することを監視する。CPU22は、プリンタのシリアル番号を含む送信指示を受信する場合(S142でYES)に、S144において、アクセストークンを生成し、当該アクセストークンをプリンタに送信する。
S146では、CPU22は、登録テーブル30において、送信指示に含まれるシリアル番号を含む装置情報(即ち、対象装置情報)に関連付けられているステータス情報を仮登録状態から本登録状態に変更する。さらに、CPU22は、図3のS110と同様に、対象装置情報に関連付けて、ユーザ番号と、S144で生成されたアクセストークンと、を登録テーブル30に登録する。
S148、S150は、それぞれ、図3のS114、S116と同じである。S150が終了すると、登録コード処理が終了する。
(具体的なケースA:図6、図7)
図6及び図7を参照して、図2及び図3の処理によって実現される具体的なケースAを説明する。本ケースの初期状態では、プリンタ200は、LAN4に接続された状態であり、かつ、出荷されてから一度も電源がONされていない状態である。
T100では、ユーザは、プリンタ200の電源をオンする。この場合、T102では、プリンタ200は、シリアル番号SN2とモデル名MN2と登録コードRC2とプライベートIPアドレスPA2とがボディに記述されていると共に、プライベートIPアドレスPA2がヘッダに記述されている仮登録要求をルータ500に送信する。
ルータ500は、プリンタ200からT102の仮登録要求を受信すると、グローバルIPアドレスGA2と、仮登録要求内のヘッダに含まれるプライベートIPアドレスPA2と、を関連付けて記憶する。ルータ500は、さらに、ヘッダに含まれるプライベートIPアドレスPA2をグローバルIPアドレスGA2に変換する。そして、T104では、ルータ500は、仮登録要求をサーバ10に送信する。
サーバ10は、ルータ500からT104の仮登録要求を受信すると(図2のS20でYES)、T106において、仮登録要求に含まれる各情報SN2,MN2,RC2,GA2,PA2を含む装置情報DI2を登録テーブル30に登録する(S22)。この際に、装置情報DI2には、仮登録状態を示すステータス情報が関連付けられる(S24)。T108では、サーバ10は、仮登録が完了したことを示す通知をプリンタ200に送信する(S26)。
上記のT108の通知は、仮登録要求に応答する形式で、サーバ10からプリンタ200に送信される。即ち、通知は、仮登録要求に含まれるグローバルIPアドレスGA2を送信先として含む。ルータ500では、グローバルIPアドレスGA2とプリンタ200のプライベートIPアドレスPA2とが関連付けられている。このために、ルータ500は、通知に含まれるグローバルIPアドレスGA2からプライベートIPアドレスPA2を特定することができ、そのアドレスPA2を送信先として、プリンタ100に通知を送信する。このように、サーバ10は、LAN4内のデバイス(例えば、プリンタ200、端末装置400)から受信される要求に応答する形式で情報を送信すれば、LAN4のファイヤウォールを越えて、当該情報を当該デバイスに送信することができる。
本ケースでは、端末装置400は、LAN4に接続されている。図示省略しているが、サーバ10は、ユーザがユーザ情報UI2の登録を望む場合に、端末装置400からユーザによって端末装置400に入力されるユーザ情報UI2を受信する(図2のS10でYES)。ユーザ情報UI2は、ユーザ名UN2と、パスワードP2と、アドレス情報A2と、を含む。サーバ10は、受信済みのユーザ情報UI2をユーザ情報テーブル28に登録する(S12)。ユーザ情報UI2を登録する処理は、T114の前に実行される。
ユーザ情報UI2がサーバ10に登録された後に、ユーザがプリンタ200の本登録を望む場合に、T114では、端末装置400は、ユーザの操作に応じて、ログイン要求をサーバ10に送信する。
T116では、サーバ10は、端末装置400からT114のログイン要求を受信すると(S40でYES)、ログイン要求に応答する形式で、ログイン画面データを端末装置400に送信する(図3のS70)。
端末装置400は、T118において、ログイン画面SC1を表示し、T120において、ユーザ名UN2及びパスワードP2を入力する操作を受け付ける。この場合、T122では、端末装置400は、各情報UN2,P2をサーバ10に送信する。
サーバ10は、端末装置400からT122の各情報UN2,P2を受信すると(図3のS72でYES)、T124において、認証が成功したと判断し(S74でYES)、T126において、各情報UN2,P2に応答する形式で、登録画面データを端末装置400に送信する(S80)。
端末装置400は、T128において、登録画面SC2を表示し、T130において、シリアル番号SN2を入力する操作を受け付ける。この場合、T132では、端末装置400は、シリアル番号SN2がボディに記述されていると共に、プライベートIPアドレスPA4がヘッダに記述されている本登録要求をルータ500に送信する。
ルータ500は、端末装置400からT132の本登録要求を受信すると、上記のグローバルIPアドレスGA2と異なるグローバルIPアドレスGA4と、本登録要求内のヘッダに含まれるプライベートIPアドレスPA4と、を関連付けて記憶する。ルータ500は、さらに、ヘッダに含まれるプライベートIPアドレスPA4をグローバルIPアドレスGA4に変換する。そして、T133では、ルータ500は、本登録要求をサーバ10に送信する。
サーバ10は、T106で装置情報DI2が登録テーブル30に登録された後に、ルータ500からT133の本登録要求を受信すると(S82でYES)、T134において、本登録要求内のボディに含まれるシリアル番号SN2に一致するシリアル番号が登録テーブル30に登録されていると判断する(S84でYES)。
サーバ10は、T136において、2つのグローバルIPアドレスGA2、GA4が一致しないので、グローバルIPアドレスGA2、GA4のそれぞれを含む2つの要求をWHOISサーバに送信し、WHOISサーバから2つのグローバルIPアドレスGA2、GA4のそれぞれに対応する2つのネットワークアドレスを受信する。そして、サーバ10は、受信済みの2つのネットワークアドレスが一致すると判断する(S86でYES)。
サーバ10は、T138において、アクセストークンAT2を生成し(S100)、T150において、本登録要求に応答する形式で、装置情報DI2に含まれるプライベートIPアドレスPA2とアクセストークンAT2を含むリダイレクト要求を端末装置400に送信する(S102)。
リダイレクト要求が端末装置400に受信される場合には、端末装置400及びプリンタ200は、図7のT152からT156の処理を実行する。T152では、端末装置400は、T150のリダイレクト要求を受信すると、リダイレクト要求に含まれるプライベートIPアドレスPA2を送信先として、アクセストークンAT2をプリンタ200に送信する。T154では、プリンタ200は、T152のアクセストークンAT2を受信すると、所定のURLを含む受信通知を端末装置400に送信する。T156では、端末装置400は、T154の受信通知を受信すると、所定のURLを送信先として、サーバ10に完了通知を送信する。
サーバ10は、T156の完了通知を受信すると、装置情報DI2に関連付けられているステータス情報を仮登録状態から本登録状態に変更し(S110)、さらに、ユーザ情報UI2及びアクセストークンAT2を装置情報DI2に関連付ける(S110)。そして、T158では、サーバ10は、完了通知に応答する形式で、完了画面データを端末装置400に送信する(S112)。
T160では、端末装置400は、完了画面SC4を表示する。これにより、ユーザは、プリンタ200の本登録が完了したことを知ることができる。
一方、T170では、アクセストークンAT2が利用されて、サーバ10とプリンタ200との間にXMPP接続が確立される(S114)。なお、図7では、XMPP接続に関係する通信が、太線矢印で示されている。そして、T180では、サーバ10は、確立済みのXMPP接続を利用して、残量情報要求をプリンタ200に送信する(S116)。サーバ10は、XMPP接続を利用するので、プリンタ200からの何らかの要求に応答する形式でなくても、LAN4のファイヤウォールを越えて、残量情報要求をプリンタ200に送信することができる。
プリンタ200は、残量情報要求を受信した後に残量情報をサーバ10に送信すべき際に、アクセストークンAT2を利用して、サーバ10とのHTTPS接続を確立する。そして、プリンタ200は、T182において、確立済みのHTTPS接続を利用して、残量情報をサーバ10に送信する。プリンタ200は、残量情報要求を一度受信したことに応じて、定期的(例えば1日毎)に残量情報をサーバ10に送信する。
サーバ10は、プリンタ200からT182の残量情報を受信すると(図2のS60でYES)、T184において、当該残量情報を装置情報DI2に関連付けられている履歴情報HI2に加えることによって、履歴情報HI2を更新する(S62)。そして、T186では、サーバ10は、最新の残量情報の黒インクの残量が閾値である20%以下であると判断する(S64でYES)。この場合、T188では、サーバ10は、装置情報DI2に関連付けられているユーザ情報UI2に含まれるアドレス情報A2の所在地住所宛に、黒インクのインクカートリッジを発送するための処理を実行する(S66)。また、T190では、サーバ10は、アドレス情報A2のメールアドレス宛に、発送完了を示すメールを送信する(S66)。
(ケースAの効果)
上記したように、サーバ10は、プリンタ200から仮登録要求を受信する場合(図6のT104)に、装置情報DI2を登録テーブル30に仮登録する(T106)。そして、サーバ10は、端末装置400から本登録要求を受信する場合(T133)に、本登録要求に含まれるシリアル番号SN2と登録テーブル30内のシリアル番号SN2とが一致すると判断し(T134)、さらに、本登録要求に含まれるグローバルIPアドレスGA4のネットワークアドレスと装置情報DI2に含まれるグローバルIPアドレスGA2のネットワークアドレスとが一致すると判断する(T136)。この場合、サーバ10は、プライベートIPアドレスPA2とアクセストークンAT2とを含むリダイレクト要求を端末装置400に送信する(T150)。この結果、端末装置400は、プライベートIPアドレスPA2を送信先としてアクセストークンAT2をプリンタ200に送信する(図7のT152)。端末装置400及びプリンタ200が同じLAN4に所属しているので、アクセストークンAT2がプリンタ200に適切に送信される。
例えば、アクセストークンAT2を含むリダイレクト要求が端末装置400に送信される構成に代えて、サーバ10がアクセストークンAT2をプリンタ200に直接的に送信する構成を採用する比較例が考えられる。この場合、サーバ10は、プリンタ200から受信される何らかの要求に応答する形式でアクセストークンAT2を送信しなければ、LAN4のファイヤウォールを越えて、アクセストークンAT2をプリンタ200に送信することができない。このために、例えば、ユーザが何らかの操作をプリンタ200に実行することに応じて、プリンタ200が上記の要求をサーバ10に送信する構成を採用したり、プリンタ200が上記の要求を定期的に送信する構成を採用したりする必要がある。前者の構成では、ユーザに作業を強いることになるし、後者の構成では、プリンタ200の処理負荷が高くなる。これに対し、本実施例によると、サーバ10は、端末装置400から受信される本登録要求に応答する形式でリダイレクト要求を送信するので、プリンタ200から何らかの要求を受信しなくても、端末装置400を介してアクセストークンAT2をプリンタ200に送信することができる。このために、比較例の構成と比べると、ユーザに作業を強いることなく、プリンタ200の処理負荷を高めることなく、サーバ10は、アクセストークンAT2をプリンタ200に適切に送信することができる。
また、サーバ10は、アクセストークンAT2をプリンタ200に送信し(T150)、装置情報DI2に関連付けてアクセストークンAT2を登録するので、アクセストークンAT2を利用して、プリンタ200とのXMPP接続を確立することができる(T170)。このために、サーバ10は、XMPP接続を利用して、残量情報要求をプリンタ200に送信することができ、この結果、プリンタ200から残量情報を適切に受信することができる。
また、例えば、プリンタ200と端末装置400とが同じLAN4に所属しているか否かが判断されることなく、装置情報DI2がサーバ10に本登録される比較例が考えられる。即ち、比較例では、T136の処理が実行されずに、T138以降の処理が実行される。この場合、LAN4とは異なる他のLANに所属している端末装置から本登録要求が受信される場合に、装置情報DI2がサーバ10に本登録され得る。LAN4に所属していない端末装置は、プリンタの正規ユーザとは異なる第三者によって操作されている可能性がある。本実施例では、本登録要求がLAN4に所属していない端末装置から本登録要求が受信される場合に、装置情報DI2がサーバ10に本登録されない。このため、上記の第三者によって装置情報DI2が本登録されることを防止することができる。
(具体的なケースB)
図8を参照して、図2,図3,図5の処理によって実現される具体的なケースBを説明する。本ケースのプリンタ200の初期状態は、図6のケースAと同じである。本ケースでは、端末装置400は、LAN4に接続されておらず、モバイルネットワーク8に接続されている。プリンタ200とサーバ10との間では、図6のT100からT108と同様の処理が実行される。その後、端末装置400とサーバ10との間では、LAN4及びルータ500を介さずに、モバイルネットワーク8及び基地局600を介して、図6のT114からT130と同様の処理が実行される。
T232では、端末装置400は、シリアル番号SN2がボディに記述されていると共に、モバイルネットワーク8において端末装置400を識別するためのプライベートIPアドレスPA5がヘッダに記述されている本登録要求を基地局600に送信する。
基地局600は、端末装置400からT232の本登録要求を受信すると、グローバルIPアドレスGA5と、本登録要求内のヘッダに含まれるプライベートIPアドレスPA5と、を関連付けて記憶する。基地局600は、さらに、ヘッダに含まれるプライベートIPアドレスPA5をグローバルIPアドレスGA5に変換する。そして、T233では、基地局600は、本登録要求をサーバ10に送信する。
サーバ10は、基地局600からT233の本登録要求を受信すると(S82でYES)、T234において、本登録要求内のボディに含まれるシリアル番号SN2に一致するシリアル番号が登録テーブル30に登録されていると判断し(S84でYES)、T236において、本登録要求内のヘッダに含まれるグローバルIPアドレスGA5のネットワークアドレスと、シリアル番号SN2を含む装置情報DI2に含まれるグローバルIPアドレスGA2のネットワークアドレスと、が一致しないと判断する(S86でNO)。この場合、T248では、サーバ10は、本登録要求に応答する形式で、エラー画面データを端末装置400に送信する(S90)。
T250では、端末装置400は、エラー画面SC3を表示する。この場合、ユーザは、エラー画面SC3内の指示IS4(図4参照)を見て、登録コードによる登録を行うことを選択する、即ち、T252では、ユーザは、エラー画面SC3内のボタンB4をクリックする。この結果、T254では、端末装置400は、実行要求をサーバ10に送信する。
サーバ10は、T254の実行要求を受信すると(S94でYES)に、T256において、入力画面データを端末装置400に送信する(図5のS120)。
端末装置400は、T258において、入力画面SC5を表示し、T260において、登録コードRC2を入力する操作を受け付ける。この場合、T262では、端末装置400は、登録コードRC2をサーバ10に送信する。
サーバ10は、端末装置400からT262の登録コードRC2を受信すると(S122でYES)、T264において、受信済みの登録コードRC2に一致する登録コードが登録テーブル30に登録されていると判断する(S124でYES)。この場合、T266では、サーバ10は、確認画面データを端末装置400に送信する。
T268では、端末装置400は、確認画面SC7を表示する。これにより、ユーザは、登録確認操作をプリンタ200に実行すべきことを知ることができる。
T280では、プリンタ200は、ユーザから登録確認操作を受け付ける。この場合、T282では、プリンタ200は、シリアル番号SN2を含む送信指示をサーバ10に送信する。
サーバ10は、プリンタ200からT282の送信指示を受信すると(S142でYES)、T284において、アクセストークンAT2を生成し、T286において、送信指示に応答する形式で、アクセストークンAT2をプリンタ200に送信する(S144)。このために、サーバ10は、XMPP接続を利用しなくても、LAN4のファイヤウォールを越えて、アクセストークンAT2をプリンタ200に送信することができる。この結果、T288では、サーバ10とプリンタ200との間にXMPP接続が確立される(S148)。
また、サーバ10は、アクセストークンAT2をプリンタ200に送信する場合に、装置情報DI2に関連付けられているステータス情報を仮登録状態から本登録状態に変更し(S146)、さらに、ユーザ情報UI2及びアクセストークンAT2を装置情報DI2に関連付ける(S146)。そして、図7のT180以降と同様の各処理が実行される。
(ケースBの効果)
ケースBに示されるように、サーバ10は、端末装置400とプリンタ200とが同じLAN4に所属していない場合に、アクセストークンAT2が登録されず、アクセストークンAT2を含むリダイレクト要求が端末装置400に送信されない。端末装置400とプリンタ200とが同じLAN4に所属していないので、リダイレクト要求が端末装置400に送信されても、端末装置400は、アクセストークンAT2をプリンタ200に送信することができないからである。そして、サーバ10は、エラー画面データを端末装置400に送信する(T248)。これにより、端末装置400は、登録コード処理を実行させるための指示IS4を含むエラー画面SC3を表示する(T250)。ユーザは、ボタンB4を選択することによって、登録コード処理をサーバ10に実行させることができる。即ち、ユーザは、プリンタ200が所属しているLAN4に端末装置400を接続しなくても、登録コードRC2を利用して、装置情報DI2をサーバ10に本登録することができる。このため、ユーザの利便性を向上させることができる。
なお、プリンタ200と端末装置400とが同じLAN4に所属していない場合に、登録コードRC2を利用せずに装置情報DI2をサーバ10に本登録するための比較例として以下の手法が考えられる。即ち、T260では、登録コードRC2の代わりにシリアル番号SN2が入力され、T262では、シリアル番号SN2が端末装置400からサーバ10に送信される。この場合、サーバ10は、シリアル番号SN2が登録テーブル30に登録されているのか否かを判断し、登録されていると判断する場合に、装置情報DI2を本登録する。ただし、上記したように、シリアル番号SN2は連番で付される番号を含むので、プリンタの正規ユーザとは異なる第三者によって推定されやすい。このため、第三者によって装置情報DI2がサーバ10に本登録され得る。これに対し、登録コードRC2は、ランダムに設定される文字列であるので、第三者によって推定されにくい。このために、本実施例のように登録コードRC2を利用すれば、第三者によって装置情報DI2が本登録されることを防止することができる。
(対応関係)
プリンタ100が、「通信装置」の一例である。図6のケースAにおいて、ルータ500が、「第1の中継装置」及び「第2の中継装置」の一例である。図8のケースBにおいて、ルータ500、基地局600が、それぞれ、「第1の中継装置」、「第2の中継装置」の一例である。装置情報DI2が、「対象情報」の一例である。図6のT102の仮登録要求、グローバルIPアドレスGA2、シリアル番号SN2が、それぞれ、「第1の登録要求」、「第1のIPアドレス」、「第1の識別情報」の一例である。T132の本登録要求、グローバルIPアドレスGA4、シリアル番号SN2が、それぞれ、「第2の登録要求」、「第2のIPアドレス」、「第2の識別情報」の一例である。アクセストークンAT2が、「接続情報」の一例である。XMPP接続及びHTTPS接続の少なくとも一方が、「接続」の一例である。図6のT150のリダイレクト要求、プライベートIPアドレスPA2、所定のURLが、ぞれぞれ、「送信要求」、「特定のIPアドレス」、「位置情報」の一例である。T188のインク発送及び190のメール送信が、「対象サービス」の一例である。T180の残量情報要求、残量情報が、それぞれ、「情報要求」、「装置関係情報」の一例である。図6のT104の仮登録要求に含まれる登録コードRC2が、「第1のコード」の一例である。指示IS4を含むエラー画面SC3が、「第1の指示画面」の一例である。図8のT262の登録コードRC2が、「第2のコード」の一例である。確認画面SC7、T280の登録確認操作が、それぞれ、「第2の指示画面」、「所定操作」の一例である。
(第2実施例)
本実施例では、プリンタに割り当てられる登録コードは、当該プリンタのシリアル番号から生成される。具体的には、ベンダは、プリンタを製造する際に、共通鍵暗号化方式で利用される所定の鍵に従って、当該プリンタのシリアル番号を暗号化することによって、登録コードを生成する。共通鍵暗号化方式は、暗号化及び復号化が同一の鍵によって実行される方式であり、例えばAES(Advanced Encryption Standardの略)である。なお、変形例では、登録コードは、公開鍵暗号化方式で利用される所定の鍵に従って、シリアル番号を暗号化することにより生成されてもよい。公開鍵暗号化方式は、暗号化及び復号化が異なる鍵によって実行される方式である。
(サービス処理:図2)
本実施例では、図2のS20でYESと判断される場合の処理が第1実施例とは異なる。CPU22は、S20でYESと判断する場合に、S30に進む。
S30では、CPU22は、所定の鍵を利用して、仮登録要求に含まれる登録コードを復号化することによって、特定の番号を生成する。そして、S32では、CPU22は、特定の番号と仮登録要求に含まれるシリアル番号とが一致するのか否かを判断する。CPU22は、特定の番号とシリアル番号とが一致すると判断する場合(S32でYES)にはS22に進み、特定の番号とシリアル番号とが一致しないと判断する場合(S32でNO)には、S22からS26をスキップしてS10に戻る。
上記したように、シリアル番号は、第三者によって推定されやすい。このために、第三者が、サーバ10に不正にアクセスして、実在のプリンタの推定されたシリアル番号と不正な登録コードとをサーバ10に仮登録し得る。これに対し、本実施例では、仮登録要求に含まれる登録コードから復号化される特定の番号と、仮登録要求に含まれるシリアル番号と、が一致しない場合に、装置情報が登録テーブル30に仮登録されない(図2のS32でNO)。これにより、第三者によって装置情報がサーバ10に不正に仮登録されることを防止することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)一般に、4バイトの情報量を有するIPv4のグローバルIPアドレスは、クラスAからクラスEの5つの範囲に分類されており、5つの範囲のそれぞれには、情報量の異なるネットワークアドレスが定義されている。例えば、クラスBに分類されるグローバルIPアドレスの範囲は、「128.0.0.0」〜「191.255.255.255」であり、クラスBのネットワークアドレスは、先頭の2バイトとして定義されている。CPU22は、図3のS86において、当該クラスを利用して、端末装置及びプリンタが同じLANに所属しているのか否かを判断してもよい。具体的には、CPU22は、まず、対象装置情報に含まれるグローバルIPアドレス(例えば「129.123.123.0」)のクラス(例えばクラスB)を特定する。そして、特定済みのクラスを利用して、当該グローバルIPアドレスのネットワークアドレス(例えば「129.123」)を特定する。同様に、CPU22は、本登録要求に含まれるグローバルIPアドレスのクラス及びネットワークアドレスを特定する。そして、CPU22は、特定済みの2つのネットワークアドレスが一致する場合に、同じLANに所属していると判断し、当該2つのネットワークアドレスが一致しない場合に、同じLANに所属していないと判断する。なお、CPU22は、実施例におけるS86の判断と、本変形例における判断とを組み合わせて、同じLANに所属しているか否かと判断してもよい。さらに、最初に実行する判断は、こられ判断のうちのいずれの判断であってもよい。
(変形例2)プリンタ100,200及び端末装置400には、それぞれ、IPv6(Internet Protocol version 6の略)に従ったグローバルIPアドレスが割り当てられていてもよい。この場合、図2のS20の仮登録要求は、プリンタのプライベートIPアドレスを含まず、CPU22は、S22において、プリンタのプライベートIPアドレスを含まない装置情報を登録テーブル30に登録する。そして、CPU22は、図3のS102において、登録テーブル30に登録されているプリンタのグローバルIPアドレスを含むリダイレクト要求を端末装置に送信する。本変形例では、プリンタのグローバルIPアドレスが、「特定のIPアドレス」の一例である。
(変形例3)装置情報は、ステータス情報に関連付けて登録テーブル30に登録されなくてもよい。例えば、メモリ24は、仮登録領域と本登録領域とを備えていてもよい。そして、CPU22は、装置情報を仮登録領域に記憶させることによって、装置情報を仮登録し、装置情報を本登録領域に記憶させることによって、装置情報を本登録してもよい。
(変形例4)図3のS60で受信される情報は、残量情報に限らない。例えば、CPU22は、プリンタの印刷回数を示す回数情報を受信してもよい。この場合、CPU22は、当該回数情報をメールで送信してもよい。本変形例では、回数情報、回数情報のメール送信が、それぞれ、「装置関係情報」、「対象サービス」の一例である。
(変形例5)ユーザ情報テーブル28が設けられなくてもよい。例えば、サーバ10は、印刷対象のファイル内のテキストを所定の言語に翻訳するサービスを実行するサーバであってもよい。この場合、CPU22は、装置情報を本登録した後に、端末装置からシリアル番号と印刷対象のファイルとを含む翻訳要求を受信し、当該ファイル内のテキストを翻訳する。次いで、CPU22は、翻訳要求に含まれるシリアル番号から装置情報を特定し、特定済みの装置情報に含まれるモデル名が示すプリンタの印刷能力を特定する。そして、CPU22は、特定済みの印刷能力に基づいて、翻訳済みのファイルを印刷データに変換し、印刷データをプリンタに送信する。本変形例では、翻訳済みのファイルを生成して送信することが、「対象サービス」の一例である。なお、別の変形例では、上記の翻訳に代えて、印刷対象のファイルに対して所定の画像処理(例えば、ホワイトバランスの補正処理、カラー画像からモノクロ画像への変換処理等)が実行されてもよい。
(変形例6)CPU22は、図3のS102の処理を実行した後に、S104及びS112の処理を実行せず、S110、S114、及び、S116の処理を実行してもよい。本変形例では、「第2の送信処理」を省略可能である。
(変形例7)CPU22は、図3のS94及びS96の処理を実行しなくてもよい。本変形例では、「第3の送信処理」、「第4の受信処理」、「第3の判断処理」、「第3の登録処理」、「第4の送信処理」、及び、「第5の送信処理」を省略可能である。
(変形例8)図3のS102では、CPU22は、アクセストークンを送信する代わりに、HTTP(Hyper Text Transfer Protocolの略) Cookieで利用される識別子を含むリダイレクト要求を端末装置に送信してもよい。この場合、CPU22は、S114,S116の処理を実行せずに、図3の本登録処理を終了する。そして、図2のS60では、CPU22は、プリンタから上記の識別子を受信することに応じて、プリンタとのHTTP接続を確立し、当該接続を利用して、残量情報を受信してもよい。また、別の変形例では、S102では、CPU22は、特定のURLを含むリダイレクト要求を端末装置に送信し、S114,S116の処理を実行せずに、図3の本登録処理を終了する。そして、S60では、CPU22は、プリンタから上記のURLを送信先として接続要求を受信することに応じて、プリンタとのHTTP接続を確立し、当該接続を利用して、残量情報を受信してもよい。本変形例では、識別子又は特定のURLが、「接続情報」の一例である。
(変形例9)第2実施例の図2のS30に代えて、CPU22は、所定の鍵を利用して、仮登録要求に含まれるシリアル番号を暗号化することによって、特定のコードを生成してもよい。この場合、S32では、CPU22は、生成済みの特定のコードと仮登録要求に含まれる登録コードとが一致するのか否かを判断してもよい。
(変形例10)「通信装置」は、プリンタに限らず、スキャナ、多機能機、FAX機等であってもよい。例えば、「通信装置」がスキャナである場合には、サーバ10が、スキャナからスキャン回数を示す回数情報を受信し、当該回数情報をメールで送信することが、「対象サービス」の一例である。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、4:LAN、6:インターネット、8:モバイルネットワーク、10:サーバ、12:ネットワークI/F、20:制御部、22:CPU、24:メモリ、26:プログラム、28:ユーザ情報テーブル、30:登録テーブル、100,200:プリンタ、400:端末装置、500:ルータ、600:基地局、グローバルIPアドレス:GA2,GA4、プライベートIPアドレス:PA2、アクセストークン:AT2

Claims (11)

  1. サーバのためのコンピュータプログラムであって、
    前記サーバのコンピュータに、以下の各処理、即ち、
    通信装置と前記サーバとの間のインターネットを介した通信を中継するための第1の中継装置から第1の登録要求を受信する第1の受信処理であって、前記第1の登録要求は、前記通信装置に割り当てられる第1のIPアドレスと、前記通信装置を識別するための第1の識別情報と、を含む、前記第1の受信処理と、
    前記第1の登録要求が受信される場合に、前記第1のIPアドレスと、前記第1の識別情報と、を含む対象情報をメモリに登録する第1の登録処理と、
    前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第2の中継装置から第2の登録要求を受信する第2の受信処理であって、前記第2の登録要求は、前記端末装置に割り当てられる第2のIPアドレスと、第2の識別情報と、を含む、前記第2の受信処理と、
    前記対象情報に含まれる前記第1の識別情報と前記第2の登録要求に含まれる前記第2の識別情報とが一致するのか否かを判断する第1の判断処理と、
    前記対象情報に含まれる前記第1のIPアドレスと前記第2の登録要求に含まれる前記第2のIPアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第2の判断処理と、
    前記第1の識別情報と前記第2の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第2の登録処理であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第2の登録処理と、
    前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のIPアドレスと、を含む送信要求を前記端末装置に送信する第1の送信処理であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のIPアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第1の送信処理と、
    前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立処理と、
    前記接続を利用して、前記対象情報に含まれる前記第1の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス処理と、
    を実行させるコンピュータプログラム。
  2. 前記第1の受信処理では、前記通信装置から前記第1の識別情報が前記第1の中継装置によって受信される場合に、前記第1の中継装置から前記第1の登録要求が受信される、請求項1に記載のコンピュータプログラム。
  3. 前記第1の受信処理では、前記通信装置が前記インターネットに接続されていること、及び、前記通信装置に電力が供給されていること、の双方が満たされた際に、前記第1の登録要求が受信される、請求項1又は2に記載のコンピュータプログラム。
  4. 前記コンピュータプログラムは、前記コンピュータに、さらに、
    前記端末装置から、前記インターネットを介して、ユーザに関係するユーザ情報を受信する第3の受信処理と、
    前記受信済みのユーザ情報を前記メモリに登録する第3の登録処理と、
    を実行させ、
    前記第1の登録処理では、前記ユーザ情報が前記対象情報に関連付けられない状態で、前記対象情報が前記メモリに登録され、
    前記第2の登録処理では、前記ユーザ情報が前記対象情報及び前記接続情報に関連付けられる状態で、前記接続情報が前記メモリに登録され、
    前記サービス処理では、前記ユーザ情報を利用した前記対象サービスが実行される、請求項1から3のいずれか一項に記載のコンピュータプログラム。
  5. 前記端末装置が前記特定のIPアドレスを送信先として前記接続情報を送信することに応じて、前記通信装置が前記サーバから前記端末装置を介して前記接続情報を受信する場合に、前記サーバの位置を示す位置情報を含む受信通知が前記通信装置から前記端末装置に送信され、
    前記コンピュータプログラムは、前記コンピュータに、さらに、
    前記端末装置から完了通知が受信される場合に、前記通信装置が前記接続情報を受信したことを示す完了画面を表わす完了画面データを前記端末装置に送信する第2の送信処理であって、前記完了通知は、前記端末装置が前記受信通知を受信する場合に、前記受信通知に含まれる前記位置情報を利用して前記端末装置から前記サーバに送信される、前記第2の送信処理を実行させる、請求項1から4のいずれか一項に記載のコンピュータプログラム。
  6. 前記第1の登録要求は、さらに、前記通信装置のユーザによって前記通信装置に入力されることなく前記通信装置に予め記憶されている第1のコードを含み、
    前記コンピュータプログラムは、前記コンピュータに、さらに、
    前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していないと判断される場合に、コードを前記端末装置に入力することをユーザに促すための第1の指示画面を表わす第1の指示画面データを前記端末装置に送信する第3の送信処理と、
    前記第1の指示画面データの送信に応じて、前記ユーザによって第2のコードが前記端末装置に入力される場合に、前記端末装置から、前記インターネットを介して、前記第2のコードを受信する第4の受信処理と、
    前記第2のコードが受信される場合に、前記第2のコードが前記第1のコードに一致するのか否かを判断する第3の判断処理と、
    前記第2のコードが前記第1のコードに一致すると判断される場合に、前記接続情報を前記対象情報に関連付けて前記メモリに登録する第3の登録処理であって、前記第2のコードが前記第1のコードに一致しないと判断される場合に、前記接続情報が前記メモリに登録されない、前記第3の登録処理と、
    前記第2のコードが前記第1のコードに一致すると判断される場合に、所定操作を前記通信装置に実行することを前記ユーザに促すための第2の指示画面を表わす第2の指示画面データを前記端末装置に送信する第4の送信処理であって、前記第2のコードが前記第1のコードに一致しないと判断される場合に、前記第2の指示画面データが前記端末装置に送信されず、前記所定操作は、前記サーバへの接続要求の送信を前記通信装置に実行させるための操作である、前記第4の送信処理と、
    前記通信装置から前記接続要求が受信される場合に、前記接続情報を前記通信装置に送信する第5の送信処理と、
    を実行させる、請求項1から5のいずれか一項に記載のコンピュータプログラム。
  7. 前記第1の識別情報は、前記通信装置を含む複数個の装置のそれぞれに対して連番で付与される数字を含み、
    前記第1のコードは、前記複数個の装置のそれぞれに対してランダムに付与される文字列を含む、請求項6に記載のコンピュータプログラム。
  8. 前記コンピュータプログラムは、前記コンピュータに、さらに、
    前記第1の登録要求が受信される場合に、前記第1の識別情報と前記第1のコードとを利用して、前記第1のコードが前記第1の識別情報から生成されたコードであるのか否かを判断する第4の判断処理を実行させ、
    前記第1のコードが前記第1の識別情報から生成されたコードであると判断される場合に、前記第1の登録処理が実行され、前記第1のコードが前記第1の識別情報から生成されたコードでないと判断される場合に、前記第1の登録処理が実行されない、請求項6又は7に記載のコンピュータプログラム。
  9. 前記サービス処理は、前記通信装置に関係する装置関係情報を要求するための情報要求を前記通信装置に送信すること、及び、前記情報要求の送信に応じて、前記通信装置から前記装置関係情報を受信することを含む、請求項1から8のいずれか一項に記載のコンピュータプログラム。
  10. 前記第1のIPアドレスは、前記通信装置に割り当てられるIPv4のグローバルIPアドレスであり、
    前記第1の登録要求は、さらに、前記通信装置に割り当てられるIPv4のプライベートIPアドレスである前記特定のIPアドレスを含み、
    前記対象情報は、さらに、前記特定のIPアドレスを含み、
    前記第2のIPアドレスは、前記端末装置に割り当てられるIPv4のグローバルIPアドレスである、請求項1から9のいずれか一項に記載のコンピュータプログラム。
  11. サーバであって、
    通信装置と前記サーバとの間のインターネットを介した通信を中継するための第1の中継装置から第1の登録要求を受信する第1の受信部であって、前記第1の登録要求は、前記通信装置に割り当てられる第1のIPアドレスと、前記通信装置を識別するための第1の識別情報と、を含む、前記第1の受信部と、
    前記第1の登録要求が受信される場合に、前記第1のIPアドレスと、前記第1の識別情報と、を含む対象情報をメモリに登録する第1の登録部と、
    前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第2の中継装置から第2の登録要求を受信する第2の受信部であって、前記第2の登録要求は、前記端末装置に割り当てられる第2のIPアドレスと、第2の識別情報と、を含む、前記第2の受信部と、
    前記対象情報に含まれる前記第1の識別情報と前記第2の登録要求に含まれる前記第2の識別情報とが一致するのか否かを判断する第1の判断部と、
    前記対象情報に含まれる前記第1のIPアドレスと前記第2の登録要求に含まれる前記第2のIPアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第2の判断部と、
    前記第1の識別情報と前記第2の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第2の登録部であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第2の登録部と、
    前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のIPアドレスと、を含む送信要求を前記端末装置に送信する第1の送信部であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のIPアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第1の送信部と、
    前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立部と、
    前記接続を利用して、前記対象情報に含まれる前記第1の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス実行部と、
    を備えるサーバ。
JP2016041504A 2016-03-03 2016-03-03 サーバのためのコンピュータプログラム、及び、サーバ Active JP6631325B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016041504A JP6631325B2 (ja) 2016-03-03 2016-03-03 サーバのためのコンピュータプログラム、及び、サーバ
US15/444,585 US10462232B2 (en) 2016-03-03 2017-02-28 Non-transitory computer-readable medium for server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016041504A JP6631325B2 (ja) 2016-03-03 2016-03-03 サーバのためのコンピュータプログラム、及び、サーバ

Publications (2)

Publication Number Publication Date
JP2017157104A JP2017157104A (ja) 2017-09-07
JP6631325B2 true JP6631325B2 (ja) 2020-01-15

Family

ID=59724406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016041504A Active JP6631325B2 (ja) 2016-03-03 2016-03-03 サーバのためのコンピュータプログラム、及び、サーバ

Country Status (2)

Country Link
US (1) US10462232B2 (ja)
JP (1) JP6631325B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017220858A (ja) * 2016-06-09 2017-12-14 富士ゼロックス株式会社 処理システム、情報処理装置、処理装置およびプログラム
JP6790622B2 (ja) * 2016-09-08 2020-11-25 富士ゼロックス株式会社 情報処理装置及びプログラム
JP6658628B2 (ja) * 2017-03-13 2020-03-04 京セラドキュメントソリューションズ株式会社 画像形成システム
EP3729892A4 (en) * 2017-12-18 2021-07-28 Lenovo (Beijing) Limited VIEWING A NETWORK FOR A REMOTE UNIT
JP7017085B2 (ja) * 2018-01-31 2022-02-08 ブラザー工業株式会社 サーバシステム
JP7180075B2 (ja) 2018-02-09 2022-11-30 ブラザー工業株式会社 通信システム、通信装置、及び、端末装置のためのコンピュータプログラム
JP6965786B2 (ja) 2018-02-19 2021-11-10 ブラザー工業株式会社 通信装置
JP2020053899A (ja) * 2018-09-27 2020-04-02 株式会社ノーリツ 給湯システム、サーバおよびプログラム
CN111371881A (zh) * 2020-02-28 2020-07-03 北京字节跳动网络技术有限公司 服务调用方法及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4428250B2 (ja) * 2005-02-17 2010-03-10 セイコーエプソン株式会社 ネットワークに接続された印刷装置の印刷進行状況監視制御
JP4488096B2 (ja) 2008-07-29 2010-06-23 ダイキン工業株式会社 遠隔管理装置および遠隔管理システム
JP5609544B2 (ja) * 2010-10-29 2014-10-22 セイコーエプソン株式会社 画像入力システム、コンテンツサーバー、仲介サーバー、および、画像入力方法
US8683567B2 (en) * 2011-03-31 2014-03-25 Belkin International, Inc. Method of distributing information regarding one or more electrical devices and system for the same
US8681350B2 (en) * 2012-02-29 2014-03-25 Canon Kabushiki Kaisha Systems and methods for enterprise sharing of a printing device
JP6011043B2 (ja) * 2012-06-11 2016-10-19 セイコーエプソン株式会社 電子メール処理システムおよび電子メール処理方法
JP6107261B2 (ja) * 2013-03-15 2017-04-05 ブラザー工業株式会社 中継装置、画像処理装置および通信システム
JP5867448B2 (ja) * 2013-04-26 2016-02-24 コニカミノルタ株式会社 ネットワークシステム、アクセス支援サーバ、処理装置、通信代行装置、およびコンピュータプログラム

Also Published As

Publication number Publication date
US20170257441A1 (en) 2017-09-07
JP2017157104A (ja) 2017-09-07
US10462232B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
JP6631325B2 (ja) サーバのためのコンピュータプログラム、及び、サーバ
KR100563907B1 (ko) 원격제어 시스템 및 방법
US20180018138A1 (en) Communication system and relay device
US20130250358A1 (en) Arrangement for connecting to network in network system
US20030221011A1 (en) Access control apparatus
JP5880401B2 (ja) 通信装置及びプログラム
CN107135196B (zh) 一种服务器及其执行的方法
US10103948B1 (en) Computing devices for sending and receiving configuration information
US11157608B2 (en) Information processing system allowing a target device to process an operation request using a common API
CN113747435A (zh) 计算机可读介质和通信设备
US9423990B2 (en) Non-transitory computer readable recording medium storing an account management program, image forming apparatus and image forming system
CN104836835B (zh) 用于检索配置相关数据的网络系统
JP2008269530A (ja) 画像形成装置における認証システム
JP6825459B2 (ja) 通信装置
JP2005197936A (ja) 通信システム、登録装置及び通信装置
JP6888368B2 (ja) 通信装置
CN117579402B (zh) 平台二次认证登录系统及方法
JP7226013B2 (ja) サーバ及びサーバのためのコンピュータプログラム
JP7124387B2 (ja) 通信装置と通信装置のためのコンピュータプログラム
CN115086383B (zh) 系统、服务器装置以及终端装置
JP6859806B2 (ja) 通信システム、コンピュータプログラム及び端末装置
JP6465198B2 (ja) 登録サーバのプログラム、情報機器、情報機器のプログラム、及びネットワークシステム
JP6775929B2 (ja) 事務機器、交換機およびデータ連携システム
CN113746796A (zh) 计算机可读介质和通信设备
GB2531540A (en) Security check of local-area DHCP server devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191023

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150