(57)【特許請求の範囲】
【請求項１】
サーバのためのコンピュータプログラムであって、
前記サーバのコンピュータに、以下の各処理、即ち、
通信装置と前記サーバとの間のインターネットを介した通信を中継するための第１の中継装置から第１の登録要求を受信する第１の受信処理であって、前記第１の登録要求は、前記通信装置に割り当てられる第１のＩＰアドレスと、前記通信装置を識別するための第１の識別情報と、を含む、前記第１の受信処理と、
前記第１の登録要求が受信される場合に、前記第１のＩＰアドレスと、前記第１の識別情報と、を含む対象情報をメモリに登録する第１の登録処理と、
前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第２の中継装置から第２の登録要求を受信する第２の受信処理であって、前記第２の登録要求は、前記端末装置に割り当てられる第２のＩＰアドレスと、第２の識別情報と、を含む、前記第２の受信処理と、
前記対象情報に含まれる前記第１の識別情報と前記第２の登録要求に含まれる前記第２の識別情報とが一致するのか否かを判断する第１の判断処理と、
前記対象情報に含まれる前記第１のＩＰアドレスと前記第２の登録要求に含まれる前記第２のＩＰアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第２の判断処理と、
前記第１の識別情報と前記第２の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第２の登録処理であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第２の登録処理と、
前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のＩＰアドレスと、を含む送信要求を前記端末装置に送信する第１の送信処理であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のＩＰアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第１の送信処理と、
前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立処理と、
前記接続を利用して、前記対象情報に含まれる前記第１の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス処理と、
を実行させるコンピュータプログラム。
【請求項２】
前記第１の受信処理では、前記通信装置から前記第１の識別情報が前記第１の中継装置によって受信される場合に、前記第１の中継装置から前記第１の登録要求が受信される、請求項１に記載のコンピュータプログラム。
【請求項３】
前記第１の受信処理では、前記通信装置が前記インターネットに接続されていること、及び、前記通信装置に電力が供給されていること、の双方が満たされた際に、前記第１の登録要求が受信される、請求項１又は２に記載のコンピュータプログラム。
【請求項４】
前記コンピュータプログラムは、前記コンピュータに、さらに、
前記端末装置から、前記インターネットを介して、ユーザに関係するユーザ情報を受信する第３の受信処理と、
前記受信済みのユーザ情報を前記メモリに登録する第３の登録処理と、
を実行させ、
前記第１の登録処理では、前記ユーザ情報が前記対象情報に関連付けられない状態で、前記対象情報が前記メモリに登録され、
前記第２の登録処理では、前記ユーザ情報が前記対象情報及び前記接続情報に関連付けられる状態で、前記接続情報が前記メモリに登録され、
前記サービス処理では、前記ユーザ情報を利用した前記対象サービスが実行される、請求項１から３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
前記端末装置が前記特定のＩＰアドレスを送信先として前記接続情報を送信することに応じて、前記通信装置が前記サーバから前記端末装置を介して前記接続情報を受信する場合に、前記サーバの位置を示す位置情報を含む受信通知が前記通信装置から前記端末装置に送信され、
前記コンピュータプログラムは、前記コンピュータに、さらに、
前記端末装置から完了通知が受信される場合に、前記通信装置が前記接続情報を受信したことを示す完了画面を表わす完了画面データを前記端末装置に送信する第２の送信処理であって、前記完了通知は、前記端末装置が前記受信通知を受信する場合に、前記受信通知に含まれる前記位置情報を利用して前記端末装置から前記サーバに送信される、前記第２の送信処理を実行させる、請求項１から４のいずれか一項に記載のコンピュータプログラム。
【請求項６】
前記第１の登録要求は、さらに、前記通信装置のユーザによって前記通信装置に入力されることなく前記通信装置に予め記憶されている第１のコードを含み、
前記コンピュータプログラムは、前記コンピュータに、さらに、
前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していないと判断される場合に、コードを前記端末装置に入力することをユーザに促すための第１の指示画面を表わす第１の指示画面データを前記端末装置に送信する第３の送信処理と、
前記第１の指示画面データの送信に応じて、前記ユーザによって第２のコードが前記端末装置に入力される場合に、前記端末装置から、前記インターネットを介して、前記第２のコードを受信する第４の受信処理と、
前記第２のコードが受信される場合に、前記第２のコードが前記第１のコードに一致するのか否かを判断する第３の判断処理と、
前記第２のコードが前記第１のコードに一致すると判断される場合に、前記接続情報を前記対象情報に関連付けて前記メモリに登録する第３の登録処理であって、前記第２のコードが前記第１のコードに一致しないと判断される場合に、前記接続情報が前記メモリに登録されない、前記第３の登録処理と、
前記第２のコードが前記第１のコードに一致すると判断される場合に、所定操作を前記通信装置に実行することを前記ユーザに促すための第２の指示画面を表わす第２の指示画面データを前記端末装置に送信する第４の送信処理であって、前記第２のコードが前記第１のコードに一致しないと判断される場合に、前記第２の指示画面データが前記端末装置に送信されず、前記所定操作は、前記サーバへの接続要求の送信を前記通信装置に実行させるための操作である、前記第４の送信処理と、
前記通信装置から前記接続要求が受信される場合に、前記接続情報を前記通信装置に送信する第５の送信処理と、
を実行させる、請求項１から５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
前記第１の識別情報は、前記通信装置を含む複数個の装置のそれぞれに対して連番で付与される数字を含み、
前記第１のコードは、前記複数個の装置のそれぞれに対してランダムに付与される文字列を含む、請求項６に記載のコンピュータプログラム。
【請求項８】
前記コンピュータプログラムは、前記コンピュータに、さらに、
前記第１の登録要求が受信される場合に、前記第１の識別情報と前記第１のコードとを利用して、前記第１のコードが前記第１の識別情報から生成されたコードであるのか否かを判断する第４の判断処理を実行させ、
前記第１のコードが前記第１の識別情報から生成されたコードであると判断される場合に、前記第１の登録処理が実行され、前記第１のコードが前記第１の識別情報から生成されたコードでないと判断される場合に、前記第１の登録処理が実行されない、請求項６又は７に記載のコンピュータプログラム。
【請求項９】
前記サービス処理は、前記通信装置に関係する装置関係情報を要求するための情報要求を前記通信装置に送信すること、及び、前記情報要求の送信に応じて、前記通信装置から前記装置関係情報を受信することを含む、請求項１から８のいずれか一項に記載のコンピュータプログラム。
【請求項１０】
前記第１のＩＰアドレスは、前記通信装置に割り当てられるＩＰｖ４のグローバルＩＰアドレスであり、
前記第１の登録要求は、さらに、前記通信装置に割り当てられるＩＰｖ４のプライベートＩＰアドレスである前記特定のＩＰアドレスを含み、
前記対象情報は、さらに、前記特定のＩＰアドレスを含み、
前記第２のＩＰアドレスは、前記端末装置に割り当てられるＩＰｖ４のグローバルＩＰアドレスである、請求項１から９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
サーバであって、
通信装置と前記サーバとの間のインターネットを介した通信を中継するための第１の中継装置から第１の登録要求を受信する第１の受信部であって、前記第１の登録要求は、前記通信装置に割り当てられる第１のＩＰアドレスと、前記通信装置を識別するための第１の識別情報と、を含む、前記第１の受信部と、
前記第１の登録要求が受信される場合に、前記第１のＩＰアドレスと、前記第１の識別情報と、を含む対象情報をメモリに登録する第１の登録部と、
前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第２の中継装置から第２の登録要求を受信する第２の受信部であって、前記第２の登録要求は、前記端末装置に割り当てられる第２のＩＰアドレスと、第２の識別情報と、を含む、前記第２の受信部と、
前記対象情報に含まれる前記第１の識別情報と前記第２の登録要求に含まれる前記第２の識別情報とが一致するのか否かを判断する第１の判断部と、
前記対象情報に含まれる前記第１のＩＰアドレスと前記第２の登録要求に含まれる前記第２のＩＰアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第２の判断部と、
前記第１の識別情報と前記第２の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第２の登録部であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第２の登録部と、
前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のＩＰアドレスと、を含む送信要求を前記端末装置に送信する第１の送信部であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のＩＰアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第１の送信部と、
前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立部と、
前記接続を利用して、前記対象情報に含まれる前記第１の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス実行部と、
を備えるサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、通信装置に関係する対象サービスを実行可能なサーバを実現するためのコンピュータプログラムに関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、インターネット上の遠隔管理サーバと、空調機と、空調機をＬＡＮ（Local Area Networkの略）に接続するためのアダプタと、を備える通信システムが開示されている。遠隔管理サーバは、アダプタから、アダプタのＭＡＣアドレスと、アダプタのグローバルＩＰアドレスと、を受信する場合に、当該ＭＡＣアドレスと当該グローバルＩＰアドレスとを仮登録データベースに登録する。その後、遠隔管理サーバは、端末装置から、端末装置のグローバルＩＰアドレスを受信し、アダプタのグローバルＩＰアドレスと端末装置のグローバルＩＰアドレスとを利用して、アダプタ及び端末装置が同じＬＡＮに所属しているか否かを判断する。遠隔管理サーバは、同じＬＡＮに所属していると判断する場合に、アダプタのＭＡＣアドレスを基本情報データベースに登録する。これにより、遠隔管理サーバは、空調機を管理することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３４８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
遠隔管理サーバが空調機を管理するためには、通常、遠隔管理サーバとアダプタとの間にインターネットを介した接続を確立する必要があり、遠隔管理サーバは、当該接続を確立するための情報をアダプタに送信する必要がある。ここで、遠隔管理サーバとアダプタとの間に存在するルータは、通常、ファイヤウォール機能を有している。この場合、インターネット上の遠隔管理サーバは、通常、ＬＡＮ内のアダプタから何らかの要求を受信して当該要求に応答する形式で上記の情報を送信しない限り、ルータのファイヤウォールを越えて上記の情報をアダプタに送信することができない。
【０００５】
本明細書では、サーバが通信装置から要求を受信しなくても、サーバと通信装置との間にインターネットを介した接続を確立するための接続情報を通信装置に送信するための技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書によって開示されるサーバのためのコンピュータプログラムは、前記サーバのコンピュータに、以下の各処理、即ち、通信装置と前記サーバとの間のインターネットを介した通信を中継するための第１の中継装置から第１の登録要求を受信する第１の受信処理であって、前記第１の登録要求は、前記通信装置に割り当てられる第１のＩＰアドレスと、前記通信装置を識別するための第１の識別情報と、を含む、前記第１の受信処理と、前記第１の登録要求が受信される場合に、前記第１のＩＰアドレスと、前記第１の識別情報と、を含む対象情報をメモリに登録する第１の登録処理と、前記対象情報が前記メモリに登録された後に、前記通信装置とは異なる端末装置と前記サーバとの間の前記インターネットを介した通信を中継するための第２の中継装置から第２の登録要求を受信する第２の受信処理であって、前記第２の登録要求は、前記端末装置に割り当てられる第２のＩＰアドレスと、第２の識別情報と、を含む、前記第２の受信処理と、前記対象情報に含まれる前記第１の識別情報と前記第２の登録要求に含まれる前記第２の識別情報とが一致するのか否かを判断する第１の判断処理と、前記対象情報に含まれる前記第１のＩＰアドレスと前記第２の登録要求に含まれる前記第２のＩＰアドレスとを利用して、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属しているのか否かを判断する第２の判断処理と、前記第１の識別情報と前記第２の識別情報とが一致すると判断されることと、前記通信装置と前記端末装置とが同じローカルエリアネットワークに所属していると判断されることと、を含む所定条件が満たされる場合に、前記サーバと前記通信装置との間に前記インターネットを介した接続を確立するための接続情報を前記対象情報に関連付けて前記メモリに登録する第２の登録処理であって、前記所定条件が満たされない場合に、前記接続情報が前記メモリに登録されない、前記第２の登録処理と、前記所定条件が満たされる場合に、前記接続情報と、前記通信装置に割り当てられる特定のＩＰアドレスと、を含む送信要求を前記端末装置に送信する第１の送信処理であって、前記所定条件が満たされない場合に、前記送信要求が前記端末装置に送信されず、前記送信要求は、前記特定のＩＰアドレスを送信先として前記接続情報を前記通信装置に送信する処理を前記端末装置に実行させるための要求である、前記第１の送信処理と、前記接続情報を利用して、前記サーバと前記通信装置との間に前記インターネットを介した前記接続を確立する確立処理と、前記接続を利用して、前記対象情報に含まれる前記第１の識別情報によって識別される前記通信装置に関係する対象サービスを実行するサービス処理と、を実行させる。
【０００７】
上記の構成によれば、コンピュータプログラムは、以下のサーバを実現することができる。即ち、サーバは、第１の識別情報と第２の識別情報とが一致すると判断し、かつ、第１のＩＰアドレスと第２のＩＰアドレスとを利用して、通信装置と端末装置とが同じローカルエリアネットワークに所属していると判断する場合に、接続情報と、通信装置に割り当てられる特定のＩＰアドレスと、を含む送信要求を端末装置に送信する。この結果、端末装置は、特定のＩＰアドレスを送信先として接続情報を通信装置に送信する。従って、サーバは、通信装置から要求を受信しなくても、接続情報を通信装置に送信することができる。
【０００８】
上記のコンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。また、上記のコンピュータプログラムによって実現されるサーバそのもの、及び、サーバの制御方法も、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成、及び、各種テーブルの構成を示す。
【図２】サービス処理のフローチャートを示す。
【図３】本登録処理のフローチャートを示す。
【図４】端末装置に表示される各画面を示す。
【図５】登録コード処理のフローチャートを示す。
【図６】装置情報がサーバに登録されるケースＡを表わすシーケンスを示す。
【図７】図６の続きのシーケンスを示す。
【図８】登録コードを利用して装置情報がサーバに登録されるケースＢを表わすシーケンスを示す。
【発明を実施するための形態】
【００１０】
（第１実施例）
（通信システム２の構成：図１（Ａ））
図１（Ａ）を参照して、通信システム２の構成を説明する。通信システム２は、サーバ１０と、プリンタ１００，２００と、端末装置４００と、を備える。各装置１００，２００，４００は、ＬＡＮ（Local Area Networkの略）４を介して、相互に通信可能である。ＬＡＮ４は、ルータ５００を介して、インターネット６に接続されている。ＬＡＮ４は、有線ＬＡＮ及び無線ＬＡＮのどちらでもよい。端末装置４００は、モバイルネットワーク８に接続可能であり、モバイルネットワーク８を構成する基地局６００を介して、インターネット６に接続可能である。モバイルネットワーク８は、セルラー方式（例えば、３Ｇ（3rd Generation）方式、４Ｇ（4th Generation）方式等）に従った無線ネットワークである。また、サーバ１０は、インターネット６を介して、各装置１００，２００，４００と通信可能である。
【００１１】
（プリンタ１００，２００の構成）
プリンタ１００は、カラー印刷機能を備える周辺機器（即ち、端末装置４００の周辺機器）である。プリンタ１００には、モデル名ＭＮ１と、シリアル番号ＳＮ１と、登録コードＲＣ１と、プライベートＩＰ（Internet Protocolの略）アドレスＰＡ１と、が割り当てられている。プリンタ１００のベンダは、同じモデル（即ちモデル名ＭＮ１）を有する複数個のプリンタを製造する際に、連番で付与される数字を含む複数個の文字列を複数個のシリアル番号として決定する。ここで、シリアル番号は、さらに、アルファベット及び／又は記号（例えばハイフン等）を含んでいてもよい。ベンダは、さらに、ランダムに付与される複数個の文字列を複数個の登録コードとして決定する。ただし、ベンダは、複数個の登録コードが互いに重複しないように、複数個の登録コードを決定する。従って、各シリアル番号及び各登録コードは、ユニークな文字列である。登録コードは、シリアル番号等を含む様々な情報をサーバ１０に登録するために利用される。
【００１２】
ベンダは、上記の複数個のプリンタのうちのプリンタ１００に、シリアル番号ＳＮ１及び登録コードＲＣ１を割り当てる。そして、上記の各情報ＳＮ１，ＭＮ１，ＲＣ１は、プリンタ１００の製造時に、プリンタ１００に記憶される。即ち、上記の各情報ＳＮ１，ＭＮ１，ＲＣ１は、プリンタ１００が出荷される段階から、プリンタ１００に予め記憶されている。換言すると、記の各情報ＳＮ１，ＭＮ１，ＲＣ１は、プリンタ１００のユーザによってプリンタ１００に入力されなくても、プリンタ１００に予め記憶されている。
【００１３】
また、シリアル番号ＳＮ１及び登録コードＲＣ１が記載されているシートが、プリンタ１００と共に出荷される。例えば、当該シートは、プリンタ１００の表面に貼り付けられているシールであってもよいし、プリンタ１００の説明書であってもよい。これにより、プリンタ１００のユーザは、当該シートを見ることによってシリアル番号ＳＮ１及び登録コードＲＣ１を知ることができる。なお、変形例では、プリンタ１００は、所定の操作を受け付ける場合に、情報ＳＮ１，ＲＣ１が記載されているシートを印刷してもよい。また、別の変形例では、ＬＡＮ４に接続されている端末装置（例えば、端末装置４００）は、ユーザの操作に応じて、情報ＳＮ１，ＲＣ１をプリンタ１００に要求してプリンタ１００から情報ＳＮ１，ＲＣ１を受信し、受信済みのこれら情報を表示してもよい。特に、本変形例では、プリンタ１００は、ウェブサーバとして機能してもよく、端末装置は、ブラウザプログラムを利用して、プリンタ１００内のウェブサーバにアクセスして、プリンタ１００から情報ＳＮ１，ＲＣ１を受信してもよい。いずれの変形例でも、ユーザは、シリアル番号ＳＮ１及び登録コードＲＣ１を知ることができる。
【００１４】
プライベートＩＰアドレスＰＡ１は、ＩＰｖ４（Internet Protocol version 4の略）に従ったＩＰアドレスであり、ＬＡＮ４内においてプリンタ１００を識別するためのＩＰアドレスである。当該アドレスＰＡ１は、例えば、ＬＡＮ４の管理者から割り当てられてもよいし、ＤＨＣＰ（Dynamic Host Configuration Protocolの略）サーバ等のＩＰアドレス割り当てサーバから割り当てられてもよい。
【００１５】
プリンタ２００は、プリンタ１００とは異なるモデルのプリンタであり、プリンタ２００にも、モデル名ＭＮ２とシリアル番号ＳＮ２と登録コードＲＣ２とＩＰｖ４に従ったプライベートＩＰアドレスＰＡ２とが、割り当てられている。
【００１６】
（ルータ５００の構成）
ルータ５００は、ＬＡＮ４内の各装置１００等とインターネット６（例えばサーバ１０）との間の通信を中継する。ルータ５００には、ルータ５００が利用可能なＩＰｖ４に従ったグローバルＩＰアドレスの範囲Ｇ１（即ち「129.123.123.0」〜「129.123.123.255」）が割り当てられている。ルータ５００のサブネットマスクが「255.255.0.0」であるので、ＬＡＮ４のグローバルネットワークアドレスは「129.123」である。変形例では、ルータ５００のサブネットマスクは「255.255.0.0」とは異なる値であってもよい。
【００１７】
例えば、ルータ５００は、上記の範囲Ｇ１に含まれる１個のグローバルＩＰアドレスをプリンタ１００に割り当てて、当該グローバルＩＰアドレスとプリンタ１００のプライベートＩＰアドレスＰＡ１とを関連付ける。具体的には、ルータ５００は、プリンタ１００から、サーバ１０に送信されるべき要求を受信する場合に、上記の範囲Ｇ１内の１個のグローバルＩＰアドレスである対象グローバルＩＰアドレスと、当該要求内のヘッダに含まれるプライベートＩＰアドレスＰＡ１と、を関連付けて記憶する。これにより、対象グローバルＩＰアドレスが、プリンタ１００に割り当てられる。ルータ５００は、さらに、上記のヘッダに含まれるプライベートＩＰアドレスを対象グローバルＩＰアドレスに変換し、その後、上記の要求をサーバ１０に送信する。また、ルータ５００は、サーバ１０から、上記の要求内のヘッダに含まれる対象グローバルＩＰアドレスが送信先として指定されている応答を受信すると、対象グローバルＩＰアドレスに関連付けられているプライベートＩＰアドレスＰＡ１を送信先として応答を送信することによって、当該応答をプリンタ１００に送信する。この技術は、例えば、ＮＡＴ（Network Address Translationの略）、ＮＡＰＴ（Network Address and Port Translationの略）等の技術により実現される。
【００１８】
（端末装置４００の構成）
端末装置４００は、タブレットＰＣ，スマートフォン等の可搬型の端末である。端末装置４００がＬＡＮ４に接続されている場合には、端末装置４００には、ＬＡＮ４内において端末装置４００を識別するためのプライベートＩＰアドレスＰＡ４が割り当てられる。
【００１９】
（基地局６００の構成）
基地局６００は、端末装置４００とインターネット６（例えばサーバ１０）との間の通信を中継する。基地局６００には、基地局６００が利用可能なＩＰｖ４に従ったグローバルＩＰアドレスの範囲Ｇ２（即ち「129.255.255.0」〜「129.255.255.255」）が割り当てられている。基地局６００のサブネットマスクが「255.255.0.0」であるので、モバイルネットワーク８のグローバルネットワークアドレスは「129.255」であり、その値は、ＬＡＮ４のグローバルネットワークアドレス「129.123」とは異なる。
【００２０】
（サーバ１０の構成）
サーバ１０は、各プリンタ１００，２００に関係する対象サービス（例えば、後述のインク発送及びメール送信）を各プリンタ１００等のユーザに提供するためのサーバである。サーバ１０は、各プリンタ１００等のベンダによってインターネット６上に設置される。なお、変形例では、サーバ１０は、当該ベンダとは異なる事業者によってインターネット６上に設置されてもよい。
【００２１】
サーバ１０は、ネットワークインターフェイス１２と、制御部２０と、を備える。各部１２，２０は、バス線（符号省略）に接続されている。なお、以下では、インターフェースのことを「Ｉ／Ｆ」と記載する。制御部２０は、ＣＰＵ２２と、メモリ２４と、を備える。ＣＰＵ２２は、メモリ２４に格納されているプログラム２６に従って、様々な処理を実行する。メモリ２４は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ２４は、上記のプログラム２６の他に、ユーザ情報テーブル２８と、登録テーブル３０と、を格納する。なお、変形例では、ユーザ情報テーブル２８と登録テーブル３０とは、サーバ１０と通信可能に接続されている外部メモリに格納されてもよい。
【００２２】
（ユーザ情報テーブル２８の構成：図１（Ｂ））
図１（Ｂ）を参照して、ユーザ情報テーブル２８の構成を説明する。ユーザ情報テーブル２８には、１個以上のユーザ情報が登録される。各ユーザ情報は、ユーザを識別するためのユーザ名（例えば「ＵＮ１」）と、パスワード（例えば「Ｐ１」）と、アドレス情報（例えば「Ａ１」）と、を含む。アドレス情報は、ユーザのメールアドレス及び所在地住所を含む。各ユーザ情報には、当該ユーザ情報を識別するためのユニークなユーザ番号が関連付けられる。
【００２３】
（登録テーブル３０の構成：図１（Ｃ））
図１（Ｃ）を参照して、登録テーブル３０の構成を説明する。登録テーブル３０には、１個以上の装置情報が登録される。各装置情報は、シリアル番号（例えば「ＳＮ１」）と、モデル名（例えば「ＭＮ１」）と、登録コード（例えば「ＲＣ１」）と、グローバルＩＰアドレス（例えば「ＧＡ１」）と、プライベートＩＰアドレス（例えば「ＰＡ１」）と、を含む。各装置情報には、ステータス情報、ユーザ番号、アクセストークン、及び、履歴情報が関連付けられる。なお、変形例では、装置情報は、モデル名を含まなくてもよい。
【００２４】
ステータス情報は、関連する装置情報の登録状態を示し、仮登録状態又は本登録状態を示す。仮登録状態では、ユーザ番号、アクセストークン、及び、履歴情報が、装置情報（例えば「ＳＮ３」を含む装置情報参照）に関連付けられない。仮登録状態では、サーバ１０は、装置情報に含まれるシリアル番号によって識別されるプリンタに関係する対象サービスを実行しない。一方、本登録状態では、ユーザ番号、アクセストークン、及び、履歴情報が、装置情報（例えば「ＳＮ１」を含む装置情報参照）に関連付けられる。このように、ユーザ番号が装置情報に関連付けられている状態（即ち本登録状態）では、当該ユーザ番号（例えば「Ｕ１」）を介して、当該装置情報（例えば「ＳＮ１」を含む装置情報）と、当該ユーザ番号によって識別されるユーザ情報（例えば「ＵＮ１」を含むユーザ情報）と、が関連付けられる。本登録状態では、サーバ１０は、装置情報に含まれるシリアル番号によって識別されるプリンタに関係する対象サービスを実行する。
【００２５】
アクセストークンは、サーバ１０とプリンタとの間にインターネット６を介した様々な接続を確立するための情報である。当該接続は、例えば、ＸＭＰＰ（Extensible Messaging and Presence Protocolの略）接続、ＨＴＴＰＳ（Hypertext Transfer Protocol Secureの略）接続等を含む。なお、ＸＭＰＰ接続は、いわゆる常時接続であり、プリンタ１００の電源が切断されるまで確立され続ける接続である。サーバ１０は、ＸＭＰＰ接続を利用すれば、プリンタから要求を受信しなくても、当該プリンタが所属するＬＡＮのファイヤウォール（例えばルータ５００によって形成されるファイヤウォール）を越えて、当該プリンタに要求を送信することができる。なお、サーバ１０からプリンタに要求を送信する仕組みは、ＸＭＰＰ接続ではなく、他の手法であってもよい。
【００２６】
履歴情報は、プリンタの残量情報の履歴を示す情報である。残量情報は、プリンタの複数色（例えばＣＭＹＫ）のインクのそれぞれの残量を示す情報である。
【００２７】
（サービス処理：図２）
図２を参照して、サーバ１０のＣＰＵ２２がプログラム２６に従って実行するサービス処理を説明する。サービス処理は、サーバ１０の電源がＯＮされることをトリガとして開始される。サービス処理では、Ｓ１０，Ｓ２０，Ｓ４０，Ｓ６０の各監視ステップが順次実行される。なお、以下では、サーバ１０と端末装置又はプリンタとの間では、中継装置（例えば、ルータ５００、基地局６００）及びインターネット６を介して、通信が実行される。ただし、以下では、特に言及しない限り、「中継装置を介して」及び「インターネット６を介して」という説明を省略する。
【００２８】
Ｓ１０では、ＣＰＵ２２は、端末装置（例えば端末装置４００）からユーザ情報を受信することを監視する。ＣＰＵ２２は、新たなユーザを登録するための要求と共にユーザ情報を受信する場合（Ｓ１０でＹＥＳ）に、Ｓ１２に進む。
【００２９】
Ｓ１２では、ＣＰＵ２２は、新たなユーザ番号を生成し、当該ユーザ番号と受信済みのユーザ情報とを関連付けてユーザ情報テーブル２８に登録する。Ｓ１２が終了すると、Ｓ１０に戻る。
【００３０】
Ｓ２０では、ＣＰＵ２２は、プリンタ（例えばプリンタ２００）から仮登録要求を受信することを監視する。仮登録要求は、プリンタの装置情報を含み、当該装置情報を登録テーブル３０に登録するための要求である。ＣＰＵ２２は、仮登録要求を受信する場合（Ｓ２０でＹＥＳ）に、Ｓ２２に進む。
【００３１】
なお、プリンタは、ＬＡＮ４及びルータ５００を介してインターネット６に接続されていること、及び、プリンタに電力が供給されること、の双方が満たされた際に、仮登録要求をサーバ１０に送信する。即ち、プリンタは、例えばＬＡＮケーブルがプリンタに接続されている状態でプリンタの電源がＯＮされる際に、仮登録要求をサーバ１０に送信する。また、プリンタは、プリンタの電源がＯＮされている状態で例えばＬＡＮケーブルがプリンタに接続される際に、仮登録要求をサーバ１０に送信する。ユーザは、仮登録要求を送信するための特別な操作をプリンタに実行する必要が無いので、ユーザの作業負荷が軽減される。なお、変形例では、プリンタは、ユーザによって実行される所定の操作を受け付ける場合に、仮登録要求をサーバ１０に送信してもよい。なお、変形例では、プリンタは、プリンタの電源がＯＮされている状態で、プリンタに対する無線ＬＡＮの設定が完了した際（即ちプリンタが無線ＬＡＮに接続した際）に、仮登録要求をサーバ１０に送信してもよい。
【００３２】
プリンタは、プリンタのシリアル番号とモデル名と登録コードとを仮登録要求内のボディに記述し、さらに、プリンタのプライベートＩＰアドレスを仮登録要求内のボディ及びヘッダのそれぞれに記述し、当該仮登録要求をルータ５００に送信する。この場合、ルータ５００では、仮登録要求内のヘッダに含まれるプライベートＩＰアドレスがグローバルＩＰアドレスに変換され、当該仮登録要求がサーバ１０に送信される。これにより、サーバ１０において、当該仮登録要求が受信される（Ｓ２０でＹＥＳ）。
【００３３】
Ｓ２２では、ＣＰＵ２２は、受信済みの仮登録要求に含まれる装置情報を登録テーブル３０に登録する。具体的には、ＣＰＵ２２は、仮登録要求内のヘッダからグローバルＩＰアドレスを特定し、さらに、仮登録要求内のボディからシリアル番号とモデル名と登録コードとプライベートＩＰアドレスとを特定し、それらの情報を登録テーブル３０に登録する。なお、ＣＰＵ２２は、受信済みの仮登録要求に含まれる装置情報に一致する装置情報が登録テーブル３０に既に登録されている場合には、受信済みの装置情報を登録テーブル３０に登録しない。
【００３４】
Ｓ２４では、ＣＰＵ２２は、Ｓ２２で登録された装置情報に仮登録状態を示すステータス情報を関連付ける。Ｓ２６では、ＣＰＵ２２は、装置情報の仮登録が完了したことを示す通知を、Ｓ２０の仮登録要求の送信元のプリンタに送信する。これにより、ＣＰＵ２２は、仮登録が完了したことを示す画面をプリンタに表示させることができる。Ｓ２６が終了すると、Ｓ１０に戻る。
【００３５】
Ｓ４０では、ＣＰＵ２２は、端末装置（例えば端末装置４００）からログイン要求を受信することを監視する。ログイン要求は、サーバ１０にログインするための要求である。ＣＰＵ２２は、ログイン要求を受信する場合（Ｓ４０でＹＥＳ）に、Ｓ５０に進む。Ｓ５０では、本登録処理（図３参照）が実行される。Ｓ５０の本登録処理が終了すると、Ｓ１０に戻る。
【００３６】
Ｓ６０では、ＣＰＵ２２は、プリンタ（例えばプリンタ２００）から残量情報を受信することを監視する。ＣＰＵ２２は、残量情報を受信する場合（Ｓ６０でＹＥＳ）に、Ｓ６２に進む。Ｓ６２では、ＣＰＵ２２は、残量情報と共に受信されるプリンタのシリアル番号を含む装置情報に関連付けられている履歴情報に、当該残量情報を加えることによって、履歴情報を更新する。
【００３７】
次いで、Ｓ６４では、ＣＰＵ２２は、更新済みの履歴情報のうちの最新の残量情報に含まれる複数色のインクの残量のうちの少なくとも一つの残量が閾値（例えば２０％）以下であるのか否かを判断する。ＣＰＵ２２は、複数色のインクの残量の全てが閾値より大きいと判断する場合（Ｓ６４でＮＯ）には、Ｓ６６をスキップしてＳ１０に戻る。なお、Ｓ６４では、他の判断が実行されてもよい。例えば、ＣＰＵ２２は、インク残量の変化量が閾値以上であると判断する場合に、Ｓ６４でＹＥＳと判断してもよい。
【００３８】
一方、ＣＰＵ２２は、複数色のインクの残量のうちの少なくとも一つの残量が閾値以下であると判断する場合（Ｓ６４でＹＥＳ）には、Ｓ６６において、閾値以下の残量を有する色のインクをユーザに発送するための処理を実行する。具体的には、ＣＰＵ２２は、まず、登録テーブル３０から、Ｓ６０で受信されたシリアル番号を含む装置情報に関連付けられているユーザ番号を特定し、次いで、ユーザ情報テーブル２８から、当該ユーザ番号に関連付けられているユーザ情報に含まれるアドレス情報を特定する。ＣＰＵ２２は、さらに、登録テーブル３０から、Ｓ６０で受信されたシリアル番号に関連付けられているモデル名を特定し、特定済みのモデル名を有するプリンタで利用されるインクカートリッジの種類を特定する。そして、ＣＰＵ２２は、特定済みのアドレス情報に含まれる所在地住所宛に特定済みのインクカートリッジを発送するための処理を実行する。ＣＰＵ２２は、さらに、上記の特定済みのアドレス情報に含まれるメールアドレス宛に発送済みを示すメールを送信する。Ｓ６６が終了すると、Ｓ１０に戻る。
【００３９】
（本登録処理：図３）
図３を参照して、図２のＳ５０で実行される本登録処理を説明する。Ｓ７０では、ＣＰＵ２２は、ログイン画面データを端末装置（例えば端末装置４００）に送信する。これにより、端末装置では、ログイン画面データによって表わされるログイン画面ＳＣ１（図４参照）が表示される。ログイン画面ＳＣ１は、ユーザ名及びパスワードを入力するための入力欄を含む。端末装置は、ユーザ名及びパスワードが入力欄に入力された後に、ＯＫボタンを選択（例えばクリック）する操作を受け付ける場合に、ユーザ名及びパスワードをサーバ１０に送信する。
【００４０】
Ｓ７２では、ＣＰＵ２２は、端末装置からユーザ名及びパスワードを受信することを監視する。ＣＰＵ２２は、ユーザ名及びパスワードを受信する場合（Ｓ７２でＹＥＳ）には、Ｓ７４において、受信済みのユーザ名及びパスワードの認証を実行する。ＣＰＵ２２は、受信済みのユーザ名及びパスワードの組合せがユーザ情報テーブル２８に登録されている場合に、認証が成功したと判断し（Ｓ７４でＹＥＳ）、Ｓ８０に進む。
【００４１】
一方、ＣＰＵ２２は、上記の組合せがユーザ情報テーブル２８に登録されていない場合に、認証が失敗したと判断し（Ｓ７４でＮＯ）、Ｓ７６において、ログインエラー画面データを端末装置に送信する。これにより、端末装置では、ログインエラー画面データによって表わされる画面（即ちログインの失敗を示す画面）が表示され、次いで、ログイン画面ＳＣ１が再び表示される。Ｓ７６が終了すると、Ｓ７２に戻る。
【００４２】
Ｓ８０では、ＣＰＵ２２は、登録画面データを端末装置に送信する。これにより、端末装置では、登録画面データによって表わされる登録画面ＳＣ２（図４参照）が表示される。登録画面ＳＣ２は、シリアル番号を入力するための入力欄を含む。
【００４３】
端末装置は、上記の入力欄にシリアル番号が入力された後に、ＯＫボタンを選択する操作を受け付ける場合に、当該シリアル番号（以下では「対象シリアル番号」と呼ぶ）を本登録要求内のボディに記述し、さらに、端末装置のプライベートＩＰアドレスを本登録要求内のヘッダに記述し、当該本登録要求をサーバ１０に送信する。ここで、端末装置がＬＡＮ４に接続されている場合には、ルータ５００では、本登録要求内のヘッダに含まれるプライベートＩＰアドレスがグローバルＩＰアドレスに変換され、当該本登録要求がサーバ１０に送信される。また、端末装置がＬＡＮ４に接続されていない場合には、基地局６００では、本登録要求内のヘッダに含まれるプライベートＩＰアドレスがグローバルＩＰアドレスに変換され、当該本登録要求がサーバ１０に送信される。
【００４４】
Ｓ８２では、ＣＰＵ２２は、端末装置から本登録要求を受信することを監視する。ＣＰＵ２２は、本登録要求を受信する場合（Ｓ８２でＹＥＳ）に、Ｓ８４において、本登録要求内のボディに含まれる対象シリアル番号に一致するシリアル番号が登録テーブル３０に登録されているのか否かを判断する。ＣＰＵ２２は、登録されていると判断する場合（Ｓ８４でＹＥＳ）にはＳ８６に進み、登録されていないと判断する場合（Ｓ８４でＮＯ）にはＳ９０に進む。なお、変形例では、本登録要求内のボディにシリアル番号及びモデル名の組が含まれており、ＣＰＵ２２は、当該組に一致するシリアル番号及びモデル名の組が登録テーブル３０に登録されているのか否かを判断してもよい。
【００４５】
Ｓ８６では、ＣＰＵ２２は、対象シリアル番号に一致するシリアル番号を含む装置情報（以下では「対象装置情報」と呼ぶ）に含まれるグローバルＩＰアドレスと、本登録要求内のヘッダに含まれるグローバルＩＰアドレスと、を利用して、対象シリアル番号によって識別されるプリンタと本登録要求の送信元の端末装置とが同じＬＡＮに所属しているのか否かを判断する。
【００４６】
具体的には、ＣＰＵ２２は、まず、第１の判断処理を実行する。第１の判断処理では、ＣＰＵ２２は、本登録要求に含まれるグローバルＩＰアドレスが対象装置情報に含まれるグローバルＩＰアドレスに一致するのか否かを判断する。ＣＰＵ２２は、上記の２つのグローバルＩＰアドレスが一致する場合には、同じＬＡＮに所属していると判断して（Ｓ８６でＹＥＳ）、Ｓ１００に進む。例えば、ルータ５００に割り当てられているグローバルＩＰアドレスの範囲Ｇ１が狭い場合には、１つのグローバルＩＰアドレスが同じＬＡＮに所属しているプリンタ及び端末装置の双方に割り当てられ得る。このような状況では、ＣＰＵ２２は、第１の判断処理において同じＬＡＮに所属していると判断して（Ｓ８６でＹＥＳ）、Ｓ１００に進む。
【００４７】
また、ＣＰＵ２２は、第１の判断処理において上記の２つのグローバルＩＰアドレスが一致しないと判断する場合に、第２の判断処理を実行する。第２の判断処理では、ＣＰＵ２２は、ＷＨＯＩＳプロトコルに従って、上記の２つのグローバルＩＰアドレスのうちの一方のグローバルＩＰアドレスを含む要求をＷＨＯＩＳサーバに送信して、ＷＨＯＩＳサーバから当該一方のグローバルＩＰアドレスのネットワークアドレスを受信する。ＷＨＯＩＳサーバは、要求に含まれるグローバルＩＰアドレスに関係する情報（例えば、グローバルＩＰアドレスの所有者の情報、ネットワークアドレス等）を送信するサーバである。ＣＰＵ２２は、同様に、他方のグローバルＩＰアドレスのネットワークアドレスも受信する。そして、ＣＰＵ２２は、受信済みの２つのネットワークアドレスが一致する場合に、同じＬＡＮに所属していると判断し（Ｓ８６でＹＥＳ）、Ｓ１００に進む。一方、ＣＰＵ２２は、受信済みの２つのネットワークアドレスが一致しない場合に、同じＬＡＮに所属していないと判断し（Ｓ８６でＮＯ）、Ｓ９０に進む。なお、変形例では、ＣＰＵ２２は、複数のＷＨＯＩＳサーバと通信可能なポータルサーバに上記の要求を送信してネットワークアドレスを受信してもよい。また、別の変形例では、ＣＰＵ２２は、Ｓ８６の判断を先に実行し、そこでＹＥＳの場合に、Ｓ８４の判断を実行してもよい。
【００４８】
Ｓ１００では、ＣＰＵ２２は、アクセストークンを生成する。なお、変形例では、アクセストークンは、Ｓ８４でＹＥＳと判断される前に予め生成されて、対象装置情報に関連付けて登録テーブル３０に登録されてもよい。
【００４９】
Ｓ１０２では、ＣＰＵ２２は、リダイレクト要求を端末装置に送信する。リダイレクト要求は、対象装置情報に含まれるプライベートＩＰアドレス（以下では「対象プライベートＩＰアドレス」と呼ぶ）と、生成済みのアクセストークンと、を含む。リダイレクト要求は、対象プライベートＩＰアドレスを送信先としてアクセストークンを送信する処理を端末装置に実行させるための要求である。
【００５０】
ここで、端末装置がサーバ１０からリダイレクト要求を受信する場合に、端末装置及びプリンタが実行する処理について説明する。端末装置は、リダイレクト要求を受信する場合に、リダイレクト要求に含まれる対象プライベートＩＰアドレスを送信先として、リダイレクト要求に含まれるアクセストークンを送信する。当該送信先であるプリンタは、端末装置からアクセストークンを受信する場合に、サーバ１０の所定のＵＲＬ（Uniform Resource Locatorの略）を含む受信通知を端末装置に送信する。プリンタには、当該所定のＵＲＬが予め記憶されている。受信通知は、アクセストークンの受信が完了したことを示す通知である。端末装置は、プリンタから受信通知を受信する場合に、受信通知に含まれる上記の所定のＵＲＬを送信先として、完了通知をサーバ１０に送信する。完了通知は、プリンタでのアクセストークンの受信が完了したことを示す通知である。
【００５１】
図３に戻り説明を続ける。Ｓ１０４では、ＣＰＵ２２は、リダイレクト要求を送信することに応じて、端末装置から完了通知を受信することを監視する。ＣＰＵ２２は、端末装置から完了通知を受信する場合（Ｓ１０４でＹＥＳ）に、Ｓ１１０において、対象装置情報に関連付けられている登録テーブル３０内のステータス情報を仮登録状態から本登録状態に変更する。さらに、ＣＰＵ２２は、ユーザ情報テーブル２８から、Ｓ７４で認証が成功したユーザ情報に関連付けられているユーザ番号を特定する。そして、ＣＰＵ２２は、対象装置情報に関連付けて特定済みのユーザ番号を登録テーブル３０に登録する。これにより、ユーザ情報が対象装置情報に関連付けられる。また、ＣＰＵ２２は、対象装置情報に関連付けて、Ｓ１００で生成されたアクセストークンを登録テーブル３０に登録する。なお、変形例では、ＣＰＵ２２は、Ｓ１１０を先に実行し、その後に、Ｓ１０２を実行してもよい。
【００５２】
なお、ＣＰＵ２２は、Ｓ１０４において、端末装置から完了通知を受信することなく所定時間が経過する場合に、図３の本登録処理を終了する。例えば、Ｓ１０２でリダイレクト要求が送信される際に、プリンタの電源がＯＦＦされている場合には、プリンタは、端末装置からアクセストークンを受信できず、その結果、ＣＰＵ２２は、端末装置から完了通知を受信しない。このような状況では、プリンタの電源をＯＮする操作と、サーバ１０へのログインのための操作と、をユーザに実行させなければならない。登録画面ＳＣ２は、これらの操作をユーザに促すためのメッセージＭ１を含む。
【００５３】
Ｓ１１２では、ＣＰＵ２２は、完了画面データを端末装置に送信する。これにより、端末装置では、完了画面データによって表わされる完了画面ＳＣ４（図４参照）が表示される。完了画面ＳＣ４は、プリンタがアクセストークンを受信したこと、及び、プリンタの本登録が完了したことを示すメッセージを含む。
【００５４】
Ｓ１１４では、ＣＰＵ２２は、プリンタとのＸＭＰＰ接続を確立する。具体的には、ＣＰＵ２２は、プリンタからアクセストークンを含む接続要求を受信する場合に、当該アクセストークンが登録テーブル３０に登録されているのか否かを判断する。そして、ＣＰＵ２２は、当該アクセストークンが登録されていると判断する場合には、当該接続要求に対する接続応答をプリンタに送信する。この結果、サーバ１０とプリンタとの間にＸＭＰＰ接続が確立され、サーバ１０からプリンタへの要求の送信が可能になる。なお、ＣＰＵ２２は、当該アクセストークンが登録されていないと判断する場合には、当該接続要求に対するエラー応答をプリンタに送信する。この場合、ＸＭＰＰ接続が確立されない。
【００５５】
Ｓ１１６では、ＣＰＵ２２は、Ｓ１１４で確立されたＸＭＰＰ接続を利用して、残量情報要求をプリンタに送信する。残量情報要求は、残量情報を定期的に送信することをプリンタに要求するためのコマンドである。この結果、サーバ１０は、プリンタから残量情報を受信することができる（図２のＳ６０でＹＥＳ）。Ｓ１１６が終了すると、本登録処理が終了する。
【００５６】
なお、ＣＰＵ２２は、Ｓ１１６で残量情報要求をプリンタに送信した後に、残量情報要求をプリンタに再び送信し得る。残量情報要求は、時間間隔（例えば１日）を示す間隔情報、インクの色（例えば全色又は特定の色）を示す色情報等を含む。プリンタは、間隔情報によって示される時間間隔（例えば１日毎）で、色情報によって示される色のインクの残量を示す残量情報を定期的に送信する。ここで、間隔情報及び色情報は、サーバ１０の管理者により変更され得る。ＣＰＵ２２は、Ｓ１１６で残量情報要求を送信した後に、各情報が変更される場合に、Ｓ１１４で確立されたＸＭＰＰ接続を利用して、変更済みの各情報を含む残量情報要求をプリンタに再び送信する。即ち、サーバ１０は、プリンタから要求を受信しなくても、ＸＭＰＰ接続を利用して、残量情報要求をプリンタに再び送信することができる。
【００５７】
また、ＣＰＵ２２は、Ｓ８４又はＳ８６でＮＯと判断される場合には、Ｓ９０において、エラー画面データを端末装置に送信する。これにより、端末装置では、エラー画面データによって表わされるエラー画面ＳＣ３（図４参照）が表示される。エラー画面ＳＣ３は、対象シリアル番号が登録テーブル３０に登録されていないことに起因して、Ｓ８４でＮＯと判断され得る２個の原因に対応する２個の指示ＩＳ１，ＩＳ２を含む。一方の原因は、サーバ１０がプリンタから対象シリアル番号を含む仮登録要求を受信していないこと（即ち図２のＳ２０〜Ｓ２６が実行されていないこと）である。そして、当該一方の原因に対応する指示ＩＳ１は、プリンタの電源をＯＮした後にボタンＢ１を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンＢ１を選択する操作を受け付ける場合に、確認指示をサーバ１０に送信する。確認指示は、Ｓ８４の判断をサーバ１０に再び実行させるための指示である。また、他方の原因は、対象シリアル番号が正しいシリアル番号でないことである。そして、当該他方の原因に対応する指示ＩＳ２は、シリアル番号の再入力をユーザに促すためのメッセージを含む。端末装置は、ボタンＢ２を選択する操作を受け付ける場合に、登録画面ＳＣ２を再び表示する。これにより、ユーザは、登録画面ＳＣ２にシリアル番号を再入力することができる。この結果、シリアル番号を含む本登録要求が端末装置からサーバに再び送信される。
【００５８】
エラー画面ＳＣ３は、さらに、端末装置及びプリンタが同じＬＡＮに所属していないことに起因して、Ｓ８６でＮＯと判断され得る原因に対応する指示ＩＳ３を含む。指示ＩＳ３は、プリンタが所属しているＬＡＮに端末装置を接続した後にボタンＢ３を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンＢ３を選択する操作を受け付ける場合に、登録画面ＳＣ２を再び表示する。これにより、ユーザは、登録画面ＳＣ２にシリアル番号を再入力することができる。この結果、端末装置がプリンタと同じＬＡＮに所属した後に、シリアル番号を含む本登録要求が端末装置からサーバに再び送信される。
【００５９】
エラー画面ＳＣ３は、さらに、端末装置及びプリンタが同じＬＡＮに所属していない場合に、端末装置を当該ＬＡＮに接続しなくても、登録コードを利用して対象装置情報を本登録するための指示ＩＳ４を含む。指示ＩＳ４は、ユーザが登録コードを利用することを望む場合に、ボタンＢ４を選択することをユーザに促すためのメッセージを含む。端末装置は、ボタンＢ４を選択する操作を受け付ける場合に、実行要求をサーバ１０に送信する。実行要求は、図５の登録コード処理をサーバ１０に実行させるための要求である。
【００６０】
次いで、Ｓ９２では、ＣＰＵ２２は、ボタンＢ１の選択に応じて端末装置から確認指示を受信すること、及び、ボタンＢ２，Ｂ３の選択後に表示される登録画面ＳＣ２でのＯＫボタンの選択に応じて端末装置から本登録要求を受信することを監視する。ＣＰＵ２２は、確認指示又は本登録要求を受信する場合（Ｓ９２でＹＥＳ）に、Ｓ８４に戻る。
【００６１】
ＣＰＵ２２は、確認指示又は本登録要求を受信せずに、実行要求を受信する場合（Ｓ９４でＹＥＳ）に、Ｓ９６において、登録コード処理（図５参照）を実行する。Ｓ９６の登録コード処理が終了すると、本登録処理が終了する。
【００６２】
（登録コード処理：図５）
図５を参照して、図３のＳ９６で実行される登録コード処理を説明する。Ｓ１２０では、ＣＰＵ２２は、入力画面データを端末装置に送信する。これにより、端末装置では、入力画面データによって表わされる入力画面ＳＣ５が表示される。入力画面ＳＣ５は、登録コードを入力するための入力欄を含む。端末装置は、登録コードが入力欄に入力された後に、ＯＫボタンを選択する操作を受け付ける場合に、登録コードをサーバ１０に送信する。
【００６３】
Ｓ１２２では、ＣＰＵ２２は、端末装置から登録コードを受信することを監視する。ＣＰＵ２２は、登録コードを受信する場合（Ｓ１２２でＹＥＳ）に、Ｓ１２４において、受信済みの登録コード（以下では「対象登録コード」と呼ぶ）に一致する登録コードが登録テーブル３０に登録されているのか否かを判断する。ＣＰＵ２２は、登録されていないと判断する場合（Ｓ１２４でＮＯ）にはＳ１３０に進む。
【００６４】
Ｓ１３０では、ＣＰＵ２２は、エラー画面データを端末装置に送信し、Ｓ１２２に戻る。これにより、端末装置では、エラー画面データによって表わされるエラー画面ＳＣ６が表示される。エラー画面ＳＣ６は、登録コードの再入力をユーザに促すためのメッセージを含む。端末装置は、ボタンＢ５を選択する操作を受け付ける場合に、入力画面ＳＣ５を再び表示する。これにより、ユーザは、入力画面ＳＣ５に登録コードを再入力することができる。この結果、登録コードが端末装置からサーバに再び送信される。即ち、ＣＰＵ２２は、登録されていないと判断する場合、後述するＳ１４０以降の処理を実行せずに、エラー画面データを端末装置に送信する。
【００６５】
一方、ＣＰＵ２２は、登録されていると判断する場合（Ｓ１２４でＹＥＳ）には、Ｓ１４０において、確認画面データを端末装置に送信する。これにより、端末装置では、確認画面データによって表わされる確認画面ＳＣ７が表示される確認画面ＳＣ７は、プリンタ（例えばプリンタ２００）の操作パネルに登録確認操作を実行することをユーザに促す指示ＩＳ７を含む。登録確認操作は、サーバ１０への送信指示の送信をプリンタに実行させるための操作である。送信指示は、アクセストークンの送信をサーバ１０に実行させるための指示である。
【００６６】
Ｓ１４２では、ＣＰＵ２２は、プリンタから送信指示を受信することを監視する。ＣＰＵ２２は、プリンタのシリアル番号を含む送信指示を受信する場合（Ｓ１４２でＹＥＳ）に、Ｓ１４４において、アクセストークンを生成し、当該アクセストークンをプリンタに送信する。
【００６７】
Ｓ１４６では、ＣＰＵ２２は、登録テーブル３０において、送信指示に含まれるシリアル番号を含む装置情報（即ち、対象装置情報）に関連付けられているステータス情報を仮登録状態から本登録状態に変更する。さらに、ＣＰＵ２２は、図３のＳ１１０と同様に、対象装置情報に関連付けて、ユーザ番号と、Ｓ１４４で生成されたアクセストークンと、を登録テーブル３０に登録する。
【００６８】
Ｓ１４８、Ｓ１５０は、それぞれ、図３のＳ１１４、Ｓ１１６と同じである。Ｓ１５０が終了すると、登録コード処理が終了する。
【００６９】
（具体的なケースＡ：図６、図７）
図６及び図７を参照して、図２及び図３の処理によって実現される具体的なケースＡを説明する。本ケースの初期状態では、プリンタ２００は、ＬＡＮ４に接続された状態であり、かつ、出荷されてから一度も電源がＯＮされていない状態である。
【００７０】
Ｔ１００では、ユーザは、プリンタ２００の電源をオンする。この場合、Ｔ１０２では、プリンタ２００は、シリアル番号ＳＮ２とモデル名ＭＮ２と登録コードＲＣ２とプライベートＩＰアドレスＰＡ２とがボディに記述されていると共に、プライベートＩＰアドレスＰＡ２がヘッダに記述されている仮登録要求をルータ５００に送信する。
【００７１】
ルータ５００は、プリンタ２００からＴ１０２の仮登録要求を受信すると、グローバルＩＰアドレスＧＡ２と、仮登録要求内のヘッダに含まれるプライベートＩＰアドレスＰＡ２と、を関連付けて記憶する。ルータ５００は、さらに、ヘッダに含まれるプライベートＩＰアドレスＰＡ２をグローバルＩＰアドレスＧＡ２に変換する。そして、Ｔ１０４では、ルータ５００は、仮登録要求をサーバ１０に送信する。
【００７２】
サーバ１０は、ルータ５００からＴ１０４の仮登録要求を受信すると（図２のＳ２０でＹＥＳ）、Ｔ１０６において、仮登録要求に含まれる各情報ＳＮ２，ＭＮ２，ＲＣ２，ＧＡ２，ＰＡ２を含む装置情報ＤＩ２を登録テーブル３０に登録する（Ｓ２２）。この際に、装置情報ＤＩ２には、仮登録状態を示すステータス情報が関連付けられる（Ｓ２４）。Ｔ１０８では、サーバ１０は、仮登録が完了したことを示す通知をプリンタ２００に送信する（Ｓ２６）。
【００７３】
上記のＴ１０８の通知は、仮登録要求に応答する形式で、サーバ１０からプリンタ２００に送信される。即ち、通知は、仮登録要求に含まれるグローバルＩＰアドレスＧＡ２を送信先として含む。ルータ５００では、グローバルＩＰアドレスＧＡ２とプリンタ２００のプライベートＩＰアドレスＰＡ２とが関連付けられている。このために、ルータ５００は、通知に含まれるグローバルＩＰアドレスＧＡ２からプライベートＩＰアドレスＰＡ２を特定することができ、そのアドレスＰＡ２を送信先として、プリンタ１００に通知を送信する。このように、サーバ１０は、ＬＡＮ４内のデバイス（例えば、プリンタ２００、端末装置４００）から受信される要求に応答する形式で情報を送信すれば、ＬＡＮ４のファイヤウォールを越えて、当該情報を当該デバイスに送信することができる。
【００７４】
本ケースでは、端末装置４００は、ＬＡＮ４に接続されている。図示省略しているが、サーバ１０は、ユーザがユーザ情報ＵＩ２の登録を望む場合に、端末装置４００からユーザによって端末装置４００に入力されるユーザ情報ＵＩ２を受信する（図２のＳ１０でＹＥＳ）。ユーザ情報ＵＩ２は、ユーザ名ＵＮ２と、パスワードＰ２と、アドレス情報Ａ２と、を含む。サーバ１０は、受信済みのユーザ情報ＵＩ２をユーザ情報テーブル２８に登録する（Ｓ１２）。ユーザ情報ＵＩ２を登録する処理は、Ｔ１１４の前に実行される。
【００７５】
ユーザ情報ＵＩ２がサーバ１０に登録された後に、ユーザがプリンタ２００の本登録を望む場合に、Ｔ１１４では、端末装置４００は、ユーザの操作に応じて、ログイン要求をサーバ１０に送信する。
【００７６】
Ｔ１１６では、サーバ１０は、端末装置４００からＴ１１４のログイン要求を受信すると（Ｓ４０でＹＥＳ）、ログイン要求に応答する形式で、ログイン画面データを端末装置４００に送信する（図３のＳ７０）。
【００７７】
端末装置４００は、Ｔ１１８において、ログイン画面ＳＣ１を表示し、Ｔ１２０において、ユーザ名ＵＮ２及びパスワードＰ２を入力する操作を受け付ける。この場合、Ｔ１２２では、端末装置４００は、各情報ＵＮ２，Ｐ２をサーバ１０に送信する。
【００７８】
サーバ１０は、端末装置４００からＴ１２２の各情報ＵＮ２，Ｐ２を受信すると（図３のＳ７２でＹＥＳ）、Ｔ１２４において、認証が成功したと判断し（Ｓ７４でＹＥＳ）、Ｔ１２６において、各情報ＵＮ２，Ｐ２に応答する形式で、登録画面データを端末装置４００に送信する（Ｓ８０）。
【００７９】
端末装置４００は、Ｔ１２８において、登録画面ＳＣ２を表示し、Ｔ１３０において、シリアル番号ＳＮ２を入力する操作を受け付ける。この場合、Ｔ１３２では、端末装置４００は、シリアル番号ＳＮ２がボディに記述されていると共に、プライベートＩＰアドレスＰＡ４がヘッダに記述されている本登録要求をルータ５００に送信する。
【００８０】
ルータ５００は、端末装置４００からＴ１３２の本登録要求を受信すると、上記のグローバルＩＰアドレスＧＡ２と異なるグローバルＩＰアドレスＧＡ４と、本登録要求内のヘッダに含まれるプライベートＩＰアドレスＰＡ４と、を関連付けて記憶する。ルータ５００は、さらに、ヘッダに含まれるプライベートＩＰアドレスＰＡ４をグローバルＩＰアドレスＧＡ４に変換する。そして、Ｔ１３３では、ルータ５００は、本登録要求をサーバ１０に送信する。
【００８１】
サーバ１０は、Ｔ１０６で装置情報ＤＩ２が登録テーブル３０に登録された後に、ルータ５００からＴ１３３の本登録要求を受信すると（Ｓ８２でＹＥＳ）、Ｔ１３４において、本登録要求内のボディに含まれるシリアル番号ＳＮ２に一致するシリアル番号が登録テーブル３０に登録されていると判断する（Ｓ８４でＹＥＳ）。
【００８２】
サーバ１０は、Ｔ１３６において、２つのグローバルＩＰアドレスＧＡ２、ＧＡ４が一致しないので、グローバルＩＰアドレスＧＡ２、ＧＡ４のそれぞれを含む２つの要求をＷＨＯＩＳサーバに送信し、ＷＨＯＩＳサーバから２つのグローバルＩＰアドレスＧＡ２、ＧＡ４のそれぞれに対応する２つのネットワークアドレスを受信する。そして、サーバ１０は、受信済みの２つのネットワークアドレスが一致すると判断する（Ｓ８６でＹＥＳ）。
【００８３】
サーバ１０は、Ｔ１３８において、アクセストークンＡＴ２を生成し（Ｓ１００）、Ｔ１５０において、本登録要求に応答する形式で、装置情報ＤＩ２に含まれるプライベートＩＰアドレスＰＡ２とアクセストークンＡＴ２を含むリダイレクト要求を端末装置４００に送信する（Ｓ１０２）。
【００８４】
リダイレクト要求が端末装置４００に受信される場合には、端末装置４００及びプリンタ２００は、図７のＴ１５２からＴ１５６の処理を実行する。Ｔ１５２では、端末装置４００は、Ｔ１５０のリダイレクト要求を受信すると、リダイレクト要求に含まれるプライベートＩＰアドレスＰＡ２を送信先として、アクセストークンＡＴ２をプリンタ２００に送信する。Ｔ１５４では、プリンタ２００は、Ｔ１５２のアクセストークンＡＴ２を受信すると、所定のＵＲＬを含む受信通知を端末装置４００に送信する。Ｔ１５６では、端末装置４００は、Ｔ１５４の受信通知を受信すると、所定のＵＲＬを送信先として、サーバ１０に完了通知を送信する。
【００８５】
サーバ１０は、Ｔ１５６の完了通知を受信すると、装置情報ＤＩ２に関連付けられているステータス情報を仮登録状態から本登録状態に変更し（Ｓ１１０）、さらに、ユーザ情報ＵＩ２及びアクセストークンＡＴ２を装置情報ＤＩ２に関連付ける（Ｓ１１０）。そして、Ｔ１５８では、サーバ１０は、完了通知に応答する形式で、完了画面データを端末装置４００に送信する（Ｓ１１２）。
【００８６】
Ｔ１６０では、端末装置４００は、完了画面ＳＣ４を表示する。これにより、ユーザは、プリンタ２００の本登録が完了したことを知ることができる。
【００８７】
一方、Ｔ１７０では、アクセストークンＡＴ２が利用されて、サーバ１０とプリンタ２００との間にＸＭＰＰ接続が確立される（Ｓ１１４）。なお、図７では、ＸＭＰＰ接続に関係する通信が、太線矢印で示されている。そして、Ｔ１８０では、サーバ１０は、確立済みのＸＭＰＰ接続を利用して、残量情報要求をプリンタ２００に送信する（Ｓ１１６）。サーバ１０は、ＸＭＰＰ接続を利用するので、プリンタ２００からの何らかの要求に応答する形式でなくても、ＬＡＮ４のファイヤウォールを越えて、残量情報要求をプリンタ２００に送信することができる。
【００８８】
プリンタ２００は、残量情報要求を受信した後に残量情報をサーバ１０に送信すべき際に、アクセストークンＡＴ２を利用して、サーバ１０とのＨＴＴＰＳ接続を確立する。そして、プリンタ２００は、Ｔ１８２において、確立済みのＨＴＴＰＳ接続を利用して、残量情報をサーバ１０に送信する。プリンタ２００は、残量情報要求を一度受信したことに応じて、定期的（例えば１日毎）に残量情報をサーバ１０に送信する。
【００８９】
サーバ１０は、プリンタ２００からＴ１８２の残量情報を受信すると（図２のＳ６０でＹＥＳ）、Ｔ１８４において、当該残量情報を装置情報ＤＩ２に関連付けられている履歴情報ＨＩ２に加えることによって、履歴情報ＨＩ２を更新する（Ｓ６２）。そして、Ｔ１８６では、サーバ１０は、最新の残量情報の黒インクの残量が閾値である２０％以下であると判断する（Ｓ６４でＹＥＳ）。この場合、Ｔ１８８では、サーバ１０は、装置情報ＤＩ２に関連付けられているユーザ情報ＵＩ２に含まれるアドレス情報Ａ２の所在地住所宛に、黒インクのインクカートリッジを発送するための処理を実行する（Ｓ６６）。また、Ｔ１９０では、サーバ１０は、アドレス情報Ａ２のメールアドレス宛に、発送完了を示すメールを送信する（Ｓ６６）。
【００９０】
（ケースＡの効果）
上記したように、サーバ１０は、プリンタ２００から仮登録要求を受信する場合（図６のＴ１０４）に、装置情報ＤＩ２を登録テーブル３０に仮登録する（Ｔ１０６）。そして、サーバ１０は、端末装置４００から本登録要求を受信する場合（Ｔ１３３）に、本登録要求に含まれるシリアル番号ＳＮ２と登録テーブル３０内のシリアル番号ＳＮ２とが一致すると判断し（Ｔ１３４）、さらに、本登録要求に含まれるグローバルＩＰアドレスＧＡ４のネットワークアドレスと装置情報ＤＩ２に含まれるグローバルＩＰアドレスＧＡ２のネットワークアドレスとが一致すると判断する（Ｔ１３６）。この場合、サーバ１０は、プライベートＩＰアドレスＰＡ２とアクセストークンＡＴ２とを含むリダイレクト要求を端末装置４００に送信する（Ｔ１５０）。この結果、端末装置４００は、プライベートＩＰアドレスＰＡ２を送信先としてアクセストークンＡＴ２をプリンタ２００に送信する（図７のＴ１５２）。端末装置４００及びプリンタ２００が同じＬＡＮ４に所属しているので、アクセストークンＡＴ２がプリンタ２００に適切に送信される。
【００９１】
例えば、アクセストークンＡＴ２を含むリダイレクト要求が端末装置４００に送信される構成に代えて、サーバ１０がアクセストークンＡＴ２をプリンタ２００に直接的に送信する構成を採用する比較例が考えられる。この場合、サーバ１０は、プリンタ２００から受信される何らかの要求に応答する形式でアクセストークンＡＴ２を送信しなければ、ＬＡＮ４のファイヤウォールを越えて、アクセストークンＡＴ２をプリンタ２００に送信することができない。このために、例えば、ユーザが何らかの操作をプリンタ２００に実行することに応じて、プリンタ２００が上記の要求をサーバ１０に送信する構成を採用したり、プリンタ２００が上記の要求を定期的に送信する構成を採用したりする必要がある。前者の構成では、ユーザに作業を強いることになるし、後者の構成では、プリンタ２００の処理負荷が高くなる。これに対し、本実施例によると、サーバ１０は、端末装置４００から受信される本登録要求に応答する形式でリダイレクト要求を送信するので、プリンタ２００から何らかの要求を受信しなくても、端末装置４００を介してアクセストークンＡＴ２をプリンタ２００に送信することができる。このために、比較例の構成と比べると、ユーザに作業を強いることなく、プリンタ２００の処理負荷を高めることなく、サーバ１０は、アクセストークンＡＴ２をプリンタ２００に適切に送信することができる。
【００９２】
また、サーバ１０は、アクセストークンＡＴ２をプリンタ２００に送信し（Ｔ１５０）、装置情報ＤＩ２に関連付けてアクセストークンＡＴ２を登録するので、アクセストークンＡＴ２を利用して、プリンタ２００とのＸＭＰＰ接続を確立することができる（Ｔ１７０）。このために、サーバ１０は、ＸＭＰＰ接続を利用して、残量情報要求をプリンタ２００に送信することができ、この結果、プリンタ２００から残量情報を適切に受信することができる。
【００９３】
また、例えば、プリンタ２００と端末装置４００とが同じＬＡＮ４に所属しているか否かが判断されることなく、装置情報ＤＩ２がサーバ１０に本登録される比較例が考えられる。即ち、比較例では、Ｔ１３６の処理が実行されずに、Ｔ１３８以降の処理が実行される。この場合、ＬＡＮ４とは異なる他のＬＡＮに所属している端末装置から本登録要求が受信される場合に、装置情報ＤＩ２がサーバ１０に本登録され得る。ＬＡＮ４に所属していない端末装置は、プリンタの正規ユーザとは異なる第三者によって操作されている可能性がある。本実施例では、本登録要求がＬＡＮ４に所属していない端末装置から本登録要求が受信される場合に、装置情報ＤＩ２がサーバ１０に本登録されない。このため、上記の第三者によって装置情報ＤＩ２が本登録されることを防止することができる。
【００９４】
（具体的なケースＢ）
図８を参照して、図２，図３，図５の処理によって実現される具体的なケースＢを説明する。本ケースのプリンタ２００の初期状態は、図６のケースＡと同じである。本ケースでは、端末装置４００は、ＬＡＮ４に接続されておらず、モバイルネットワーク８に接続されている。プリンタ２００とサーバ１０との間では、図６のＴ１００からＴ１０８と同様の処理が実行される。その後、端末装置４００とサーバ１０との間では、ＬＡＮ４及びルータ５００を介さずに、モバイルネットワーク８及び基地局６００を介して、図６のＴ１１４からＴ１３０と同様の処理が実行される。
【００９５】
Ｔ２３２では、端末装置４００は、シリアル番号ＳＮ２がボディに記述されていると共に、モバイルネットワーク８において端末装置４００を識別するためのプライベートＩＰアドレスＰＡ５がヘッダに記述されている本登録要求を基地局６００に送信する。
【００９６】
基地局６００は、端末装置４００からＴ２３２の本登録要求を受信すると、グローバルＩＰアドレスＧＡ５と、本登録要求内のヘッダに含まれるプライベートＩＰアドレスＰＡ５と、を関連付けて記憶する。基地局６００は、さらに、ヘッダに含まれるプライベートＩＰアドレスＰＡ５をグローバルＩＰアドレスＧＡ５に変換する。そして、Ｔ２３３では、基地局６００は、本登録要求をサーバ１０に送信する。
【００９７】
サーバ１０は、基地局６００からＴ２３３の本登録要求を受信すると（Ｓ８２でＹＥＳ）、Ｔ２３４において、本登録要求内のボディに含まれるシリアル番号ＳＮ２に一致するシリアル番号が登録テーブル３０に登録されていると判断し（Ｓ８４でＹＥＳ）、Ｔ２３６において、本登録要求内のヘッダに含まれるグローバルＩＰアドレスＧＡ５のネットワークアドレスと、シリアル番号ＳＮ２を含む装置情報ＤＩ２に含まれるグローバルＩＰアドレスＧＡ２のネットワークアドレスと、が一致しないと判断する（Ｓ８６でＮＯ）。この場合、Ｔ２４８では、サーバ１０は、本登録要求に応答する形式で、エラー画面データを端末装置４００に送信する（Ｓ９０）。
【００９８】
Ｔ２５０では、端末装置４００は、エラー画面ＳＣ３を表示する。この場合、ユーザは、エラー画面ＳＣ３内の指示ＩＳ４（図４参照）を見て、登録コードによる登録を行うことを選択する、即ち、Ｔ２５２では、ユーザは、エラー画面ＳＣ３内のボタンＢ４をクリックする。この結果、Ｔ２５４では、端末装置４００は、実行要求をサーバ１０に送信する。
【００９９】
サーバ１０は、Ｔ２５４の実行要求を受信すると（Ｓ９４でＹＥＳ）に、Ｔ２５６において、入力画面データを端末装置４００に送信する（図５のＳ１２０）。
【０１００】
端末装置４００は、Ｔ２５８において、入力画面ＳＣ５を表示し、Ｔ２６０において、登録コードＲＣ２を入力する操作を受け付ける。この場合、Ｔ２６２では、端末装置４００は、登録コードＲＣ２をサーバ１０に送信する。
【０１０１】
サーバ１０は、端末装置４００からＴ２６２の登録コードＲＣ２を受信すると（Ｓ１２２でＹＥＳ）、Ｔ２６４において、受信済みの登録コードＲＣ２に一致する登録コードが登録テーブル３０に登録されていると判断する（Ｓ１２４でＹＥＳ）。この場合、Ｔ２６６では、サーバ１０は、確認画面データを端末装置４００に送信する。
【０１０２】
Ｔ２６８では、端末装置４００は、確認画面ＳＣ７を表示する。これにより、ユーザは、登録確認操作をプリンタ２００に実行すべきことを知ることができる。
【０１０３】
Ｔ２８０では、プリンタ２００は、ユーザから登録確認操作を受け付ける。この場合、Ｔ２８２では、プリンタ２００は、シリアル番号ＳＮ２を含む送信指示をサーバ１０に送信する。
【０１０４】
サーバ１０は、プリンタ２００からＴ２８２の送信指示を受信すると（Ｓ１４２でＹＥＳ）、Ｔ２８４において、アクセストークンＡＴ２を生成し、Ｔ２８６において、送信指示に応答する形式で、アクセストークンＡＴ２をプリンタ２００に送信する（Ｓ１４４）。このために、サーバ１０は、ＸＭＰＰ接続を利用しなくても、ＬＡＮ４のファイヤウォールを越えて、アクセストークンＡＴ２をプリンタ２００に送信することができる。この結果、Ｔ２８８では、サーバ１０とプリンタ２００との間にＸＭＰＰ接続が確立される（Ｓ１４８）。
【０１０５】
また、サーバ１０は、アクセストークンＡＴ２をプリンタ２００に送信する場合に、装置情報ＤＩ２に関連付けられているステータス情報を仮登録状態から本登録状態に変更し（Ｓ１４６）、さらに、ユーザ情報ＵＩ２及びアクセストークンＡＴ２を装置情報ＤＩ２に関連付ける（Ｓ１４６）。そして、図７のＴ１８０以降と同様の各処理が実行される。
【０１０６】
（ケースＢの効果）
ケースＢに示されるように、サーバ１０は、端末装置４００とプリンタ２００とが同じＬＡＮ４に所属していない場合に、アクセストークンＡＴ２が登録されず、アクセストークンＡＴ２を含むリダイレクト要求が端末装置４００に送信されない。端末装置４００とプリンタ２００とが同じＬＡＮ４に所属していないので、リダイレクト要求が端末装置４００に送信されても、端末装置４００は、アクセストークンＡＴ２をプリンタ２００に送信することができないからである。そして、サーバ１０は、エラー画面データを端末装置４００に送信する（Ｔ２４８）。これにより、端末装置４００は、登録コード処理を実行させるための指示ＩＳ４を含むエラー画面ＳＣ３を表示する（Ｔ２５０）。ユーザは、ボタンＢ４を選択することによって、登録コード処理をサーバ１０に実行させることができる。即ち、ユーザは、プリンタ２００が所属しているＬＡＮ４に端末装置４００を接続しなくても、登録コードＲＣ２を利用して、装置情報ＤＩ２をサーバ１０に本登録することができる。このため、ユーザの利便性を向上させることができる。
【０１０７】
なお、プリンタ２００と端末装置４００とが同じＬＡＮ４に所属していない場合に、登録コードＲＣ２を利用せずに装置情報ＤＩ２をサーバ１０に本登録するための比較例として以下の手法が考えられる。即ち、Ｔ２６０では、登録コードＲＣ２の代わりにシリアル番号ＳＮ２が入力され、Ｔ２６２では、シリアル番号ＳＮ２が端末装置４００からサーバ１０に送信される。この場合、サーバ１０は、シリアル番号ＳＮ２が登録テーブル３０に登録されているのか否かを判断し、登録されていると判断する場合に、装置情報ＤＩ２を本登録する。ただし、上記したように、シリアル番号ＳＮ２は連番で付される番号を含むので、プリンタの正規ユーザとは異なる第三者によって推定されやすい。このため、第三者によって装置情報ＤＩ２がサーバ１０に本登録され得る。これに対し、登録コードＲＣ２は、ランダムに設定される文字列であるので、第三者によって推定されにくい。このために、本実施例のように登録コードＲＣ２を利用すれば、第三者によって装置情報ＤＩ２が本登録されることを防止することができる。
【０１０８】
（対応関係）
プリンタ１００が、「通信装置」の一例である。図６のケースＡにおいて、ルータ５００が、「第１の中継装置」及び「第２の中継装置」の一例である。図８のケースＢにおいて、ルータ５００、基地局６００が、それぞれ、「第１の中継装置」、「第２の中継装置」の一例である。装置情報ＤＩ２が、「対象情報」の一例である。図６のＴ１０２の仮登録要求、グローバルＩＰアドレスＧＡ２、シリアル番号ＳＮ２が、それぞれ、「第１の登録要求」、「第１のＩＰアドレス」、「第１の識別情報」の一例である。Ｔ１３２の本登録要求、グローバルＩＰアドレスＧＡ４、シリアル番号ＳＮ２が、それぞれ、「第２の登録要求」、「第２のＩＰアドレス」、「第２の識別情報」の一例である。アクセストークンＡＴ２が、「接続情報」の一例である。ＸＭＰＰ接続及びＨＴＴＰＳ接続の少なくとも一方が、「接続」の一例である。図６のＴ１５０のリダイレクト要求、プライベートＩＰアドレスＰＡ２、所定のＵＲＬが、ぞれぞれ、「送信要求」、「特定のＩＰアドレス」、「位置情報」の一例である。Ｔ１８８のインク発送及び１９０のメール送信が、「対象サービス」の一例である。Ｔ１８０の残量情報要求、残量情報が、それぞれ、「情報要求」、「装置関係情報」の一例である。図６のＴ１０４の仮登録要求に含まれる登録コードＲＣ２が、「第１のコード」の一例である。指示ＩＳ４を含むエラー画面ＳＣ３が、「第１の指示画面」の一例である。図８のＴ２６２の登録コードＲＣ２が、「第２のコード」の一例である。確認画面ＳＣ７、Ｔ２８０の登録確認操作が、それぞれ、「第２の指示画面」、「所定操作」の一例である。
【０１０９】
（第２実施例）
本実施例では、プリンタに割り当てられる登録コードは、当該プリンタのシリアル番号から生成される。具体的には、ベンダは、プリンタを製造する際に、共通鍵暗号化方式で利用される所定の鍵に従って、当該プリンタのシリアル番号を暗号化することによって、登録コードを生成する。共通鍵暗号化方式は、暗号化及び復号化が同一の鍵によって実行される方式であり、例えばＡＥＳ（Advanced Encryption Standardの略）である。なお、変形例では、登録コードは、公開鍵暗号化方式で利用される所定の鍵に従って、シリアル番号を暗号化することにより生成されてもよい。公開鍵暗号化方式は、暗号化及び復号化が異なる鍵によって実行される方式である。
【０１１０】
（サービス処理：図２）
本実施例では、図２のＳ２０でＹＥＳと判断される場合の処理が第１実施例とは異なる。ＣＰＵ２２は、Ｓ２０でＹＥＳと判断する場合に、Ｓ３０に進む。
【０１１１】
Ｓ３０では、ＣＰＵ２２は、所定の鍵を利用して、仮登録要求に含まれる登録コードを復号化することによって、特定の番号を生成する。そして、Ｓ３２では、ＣＰＵ２２は、特定の番号と仮登録要求に含まれるシリアル番号とが一致するのか否かを判断する。ＣＰＵ２２は、特定の番号とシリアル番号とが一致すると判断する場合（Ｓ３２でＹＥＳ）にはＳ２２に進み、特定の番号とシリアル番号とが一致しないと判断する場合（Ｓ３２でＮＯ）には、Ｓ２２からＳ２６をスキップしてＳ１０に戻る。
【０１１２】
上記したように、シリアル番号は、第三者によって推定されやすい。このために、第三者が、サーバ１０に不正にアクセスして、実在のプリンタの推定されたシリアル番号と不正な登録コードとをサーバ１０に仮登録し得る。これに対し、本実施例では、仮登録要求に含まれる登録コードから復号化される特定の番号と、仮登録要求に含まれるシリアル番号と、が一致しない場合に、装置情報が登録テーブル３０に仮登録されない（図２のＳ３２でＮＯ）。これにより、第三者によって装置情報がサーバ１０に不正に仮登録されることを防止することができる。
【０１１３】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１１４】
（変形例１）一般に、４バイトの情報量を有するＩＰｖ４のグローバルＩＰアドレスは、クラスＡからクラスＥの５つの範囲に分類されており、５つの範囲のそれぞれには、情報量の異なるネットワークアドレスが定義されている。例えば、クラスＢに分類されるグローバルＩＰアドレスの範囲は、「128.0.0.0」〜「191.255.255.255」であり、クラスＢのネットワークアドレスは、先頭の２バイトとして定義されている。ＣＰＵ２２は、図３のＳ８６において、当該クラスを利用して、端末装置及びプリンタが同じＬＡＮに所属しているのか否かを判断してもよい。具体的には、ＣＰＵ２２は、まず、対象装置情報に含まれるグローバルＩＰアドレス（例えば「129.123.123.0」）のクラス（例えばクラスＢ）を特定する。そして、特定済みのクラスを利用して、当該グローバルＩＰアドレスのネットワークアドレス（例えば「129.123」）を特定する。同様に、ＣＰＵ２２は、本登録要求に含まれるグローバルＩＰアドレスのクラス及びネットワークアドレスを特定する。そして、ＣＰＵ２２は、特定済みの２つのネットワークアドレスが一致する場合に、同じＬＡＮに所属していると判断し、当該２つのネットワークアドレスが一致しない場合に、同じＬＡＮに所属していないと判断する。なお、ＣＰＵ２２は、実施例におけるＳ８６の判断と、本変形例における判断とを組み合わせて、同じＬＡＮに所属しているか否かと判断してもよい。さらに、最初に実行する判断は、こられ判断のうちのいずれの判断であってもよい。
【０１１５】
（変形例２）プリンタ１００，２００及び端末装置４００には、それぞれ、ＩＰｖ６（Internet Protocol version 6の略）に従ったグローバルＩＰアドレスが割り当てられていてもよい。この場合、図２のＳ２０の仮登録要求は、プリンタのプライベートＩＰアドレスを含まず、ＣＰＵ２２は、Ｓ２２において、プリンタのプライベートＩＰアドレスを含まない装置情報を登録テーブル３０に登録する。そして、ＣＰＵ２２は、図３のＳ１０２において、登録テーブル３０に登録されているプリンタのグローバルＩＰアドレスを含むリダイレクト要求を端末装置に送信する。本変形例では、プリンタのグローバルＩＰアドレスが、「特定のＩＰアドレス」の一例である。
【０１１６】
（変形例３）装置情報は、ステータス情報に関連付けて登録テーブル３０に登録されなくてもよい。例えば、メモリ２４は、仮登録領域と本登録領域とを備えていてもよい。そして、ＣＰＵ２２は、装置情報を仮登録領域に記憶させることによって、装置情報を仮登録し、装置情報を本登録領域に記憶させることによって、装置情報を本登録してもよい。
【０１１７】
（変形例４）図３のＳ６０で受信される情報は、残量情報に限らない。例えば、ＣＰＵ２２は、プリンタの印刷回数を示す回数情報を受信してもよい。この場合、ＣＰＵ２２は、当該回数情報をメールで送信してもよい。本変形例では、回数情報、回数情報のメール送信が、それぞれ、「装置関係情報」、「対象サービス」の一例である。
【０１１８】
（変形例５）ユーザ情報テーブル２８が設けられなくてもよい。例えば、サーバ１０は、印刷対象のファイル内のテキストを所定の言語に翻訳するサービスを実行するサーバであってもよい。この場合、ＣＰＵ２２は、装置情報を本登録した後に、端末装置からシリアル番号と印刷対象のファイルとを含む翻訳要求を受信し、当該ファイル内のテキストを翻訳する。次いで、ＣＰＵ２２は、翻訳要求に含まれるシリアル番号から装置情報を特定し、特定済みの装置情報に含まれるモデル名が示すプリンタの印刷能力を特定する。そして、ＣＰＵ２２は、特定済みの印刷能力に基づいて、翻訳済みのファイルを印刷データに変換し、印刷データをプリンタに送信する。本変形例では、翻訳済みのファイルを生成して送信することが、「対象サービス」の一例である。なお、別の変形例では、上記の翻訳に代えて、印刷対象のファイルに対して所定の画像処理（例えば、ホワイトバランスの補正処理、カラー画像からモノクロ画像への変換処理等）が実行されてもよい。
【０１１９】
（変形例６）ＣＰＵ２２は、図３のＳ１０２の処理を実行した後に、Ｓ１０４及びＳ１１２の処理を実行せず、Ｓ１１０、Ｓ１１４、及び、Ｓ１１６の処理を実行してもよい。本変形例では、「第２の送信処理」を省略可能である。
【０１２０】
（変形例７）ＣＰＵ２２は、図３のＳ９４及びＳ９６の処理を実行しなくてもよい。本変形例では、「第３の送信処理」、「第４の受信処理」、「第３の判断処理」、「第３の登録処理」、「第４の送信処理」、及び、「第５の送信処理」を省略可能である。
【０１２１】
（変形例８）図３のＳ１０２では、ＣＰＵ２２は、アクセストークンを送信する代わりに、ＨＴＴＰ（Hyper Text Transfer Protocolの略）  Ｃｏｏｋｉｅで利用される識別子を含むリダイレクト要求を端末装置に送信してもよい。この場合、ＣＰＵ２２は、Ｓ１１４，Ｓ１１６の処理を実行せずに、図３の本登録処理を終了する。そして、図２のＳ６０では、ＣＰＵ２２は、プリンタから上記の識別子を受信することに応じて、プリンタとのＨＴＴＰ接続を確立し、当該接続を利用して、残量情報を受信してもよい。また、別の変形例では、Ｓ１０２では、ＣＰＵ２２は、特定のＵＲＬを含むリダイレクト要求を端末装置に送信し、Ｓ１１４，Ｓ１１６の処理を実行せずに、図３の本登録処理を終了する。そして、Ｓ６０では、ＣＰＵ２２は、プリンタから上記のＵＲＬを送信先として接続要求を受信することに応じて、プリンタとのＨＴＴＰ接続を確立し、当該接続を利用して、残量情報を受信してもよい。本変形例では、識別子又は特定のＵＲＬが、「接続情報」の一例である。
【０１２２】
（変形例９）第２実施例の図２のＳ３０に代えて、ＣＰＵ２２は、所定の鍵を利用して、仮登録要求に含まれるシリアル番号を暗号化することによって、特定のコードを生成してもよい。この場合、Ｓ３２では、ＣＰＵ２２は、生成済みの特定のコードと仮登録要求に含まれる登録コードとが一致するのか否かを判断してもよい。
【０１２３】
（変形例１０）「通信装置」は、プリンタに限らず、スキャナ、多機能機、ＦＡＸ機等であってもよい。例えば、「通信装置」がスキャナである場合には、サーバ１０が、スキャナからスキャン回数を示す回数情報を受信し、当該回数情報をメールで送信することが、「対象サービス」の一例である。
【０１２４】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１２５】
２：通信システム、４：ＬＡＮ、６：インターネット、８：モバイルネットワーク、１０：サーバ、１２：ネットワークＩ／Ｆ、２０：制御部、２２：ＣＰＵ、２４：メモリ、２６：プログラム、２８：ユーザ情報テーブル、３０：登録テーブル、１００，２００：プリンタ、４００：端末装置、５００：ルータ、６００：基地局、グローバルＩＰアドレス：ＧＡ２，ＧＡ４、プライベートＩＰアドレス：ＰＡ２、アクセストークン：ＡＴ２
【図１】
0006631325.tif 000002
【図２】
0006631325.tif 000003
【図３】
0006631325.tif 000004
【図４】
0006631325.tif 000005
【図５】
0006631325.tif 000006
【図６】
0006631325.tif 000007
【図７】
0006631325.tif 000008
【図８】
0006631325.tif 000009