A.実施例
A−1:システム1000の構成
図1は、システム1000の構成を示すブロック図である。システム1000は、本実施例の通信装置としての端末装置100と、周辺装置としてのプリンタ200A、200Bと、管理装置としての管理サーバ300と、DHCPサーバ400と、ネットワークプリンタ500と、を備える。端末装置100と、管理サーバ300と、DHCPサーバ400と、ネットワークプリンタ500とは、ローカルエリアネットワークNTに接続されている。これらの装置100、300、400、500は、ローカルエリアネットワークNTを介して、互いに通信可能である。プリンタ200A、200Bは、USBケーブルを介して端末装置100と接続可能である。
端末装置100は、端末装置100のコントローラとしてのCPU110と、DRAMなどの揮発性記憶装置120と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置130と、画像を表示する液晶ディスプレイなどの表示部140と、ユーザによる操作を取得するためのキーボードやマウスなどの操作部150と、USBインタフェース(IF)170と、ネットワークインタフェース(IF)180と、を備えている。
USBIF170は、シリアルバス規格の一つであるUSB(Universal Serial Bus)規格に従ったデータ通信を行うためのインタフェースである。端末装置100は、プリンタ200A、200BとUSBケーブルを介して接続された状態で、読取実行部170を介して、プリンタ200A、200Bと通信可能である。
ネットワークIF180は、ローカルエリアネットワークNTに接続されている。ネットワークIF180は、OSI参照モデルのネットワーク層のプロトコルとしてIP(Internet Protocol)を用いる通信規格に従ってデータ通信を行うためのインタフェースである。具体的には、ネットワークIF180は、イーサネット(登録商標)に準拠した有線のインタフェースや、Wi−Fi規格(IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格又はそれに準ずる規格(例えば、802.11a,11b,11g,11n等)に従った規格)に準拠した無線のインタフェースである。
CPU110は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。揮発性記憶装置120は、管理サーバ300に送信すべきプリンタ200A、200Bの状態情報(後述)を格納する送信情報領域SAとして利用される。不揮発性記憶装置130には、コンピュータプログラムPGと、IPアドレスDAと、プリンタ識別情報PIDと、が格納されている。
IPアドレスDAは、端末装置100に割り当てられたIPアドレスであり、ローカルエリアネットワークNTを介した通信にて用いられるように設定されたローカルIPアドレスである。さらに、このIPアドレスDAは、動的に変更されない固定IPアドレスである。初期のIPアドレスDAは、例えば、ユーザによって手入力で設定される。
プリンタ識別情報PIDは、USBIF170に接続されているローカルプリンタ、本実施例では、プリンタ200A、200Bのうちのいずれかを識別するための識別情報であり、具体的には、プリンタ200A、200Bのシリアル番号である。
コンピュータプログラムPGは、例えば、プリンタ200A、200Bのベンダによって運営されるサーバ(図示省略)からダウンロードされる形態で提供されるアプリケーションプログラムである。これに代えて、コンピュータプログラムPGは、CD−ROMなどに記録された形態で提供されても良く、端末装置100の製造時に不揮発性記憶装置130に予め格納されて提供されても良い。
CPU110は、コンピュータプログラムPGを実行することによって、後述する装置情報送信処理と、装置情報受信処理と、を実行する。これによって、端末装置100は、USBIF170に接続されたプリンタ(例えば、プリンタ200A、200B)の状態情報(後述)を含む装置情報を、該プリンタから受信し、該装置情報を管理サーバ300に送信する。
プリンタ200Aは、上述したように、USBケーブルを介して端末装置100と接続されるローカルプリンタである。プリンタ200Aは、印刷実行部240Aと、情報データベース(DB)250Aと、を備えている。
印刷実行部240Aは、例えば、端末装置100から受信される印刷ジョブに従って、印刷処理を実行する。印刷処理は、所定の方式(例えば、レーザ方式や、インクジェット方式)に従って、印刷材(例えば、トナーやインク)を用いて、用紙(印刷媒体の一例)上に画像を印刷する処理である。
情報DB250Aは、プリンタ200Aに関する装置情報が格納されたデータベースである。プリンタ200Aに関する装置情報は、上述したシリアル番号やモデル名を示す情報や、プリンタ200Aの状態(ステータス)を示す状態情報を含む。状態情報は、複数個の項目を含む。複数個の項目は、例えば、印刷実行部240Aにおける消耗品の残量を示す情報と、消耗品の交換回数を示す情報と、印刷枚数を示す情報と、印刷実行部240Aにおけるエラーに関する情報と、を含む。消耗品の残量は、例えば、トナーやインクなどの印刷材の残量、印刷実行部240Aの用紙トレイの用紙の残量(残りの枚数)を含む。消耗品の交換回数は、例えば、トナーカートリッジやインクカートリッジなどの印刷材の容器の交換回数を含む。印刷枚数は、例えば、印刷実行部240Aの累積印刷枚数や、用紙のサイズごとの印刷枚数を含む。エラーに関する情報は、例えば、エラーの有無(正常か否か)を示す情報や、発生しているエラーの種類を示す情報を含む。
プリンタ200Bは、プリンタ200Aと同様のローカルプリンタである。プリンタ200Bは、プリンタ200Aと同様の印刷実行部240Bおよび情報DB250Bを備える。
ネットワークプリンタ500は、ローカルエリアネットワークNTに接続され、ローカルエリアネットワークNTに接続される装置(例えば、管理サーバ300や端末装置100)と通信可能である。ネットワークプリンタ500は、ローカルエリアネットワークNTを介して印刷ジョブを受信して印刷を実行する。ネットワークプリンタ500は、プリンタ200Aと同様の印刷実行部540および情報DB550を備える。
管理サーバ300は、図示しないCPUとメモリとを備える計算機である。管理サーバ300は、ローカルエリアネットワークNTを介して、システム1000内のプリンタ、すなわち、プリンタ200A、200B、ネットワークプリンタ500の状態情報を含む装置情報を収集する。装置情報の収集には、本実施例では、SNMP(Simple Network Management Protocol)が用いられる。管理サーバ300は、収集された装置情報を、例えば、システム1000を管理する事業者のサーバ(図示省略)に対して、インターネットを介して送信する。事業者は、たとえば、管理サーバ300から送信された装置情報に基づいて、システム1000内のプリンタの印刷枚数や、印刷材などの消耗品の残量を把握し、例えば、印刷枚数に応じた課金や印刷材の供給を行う。
DHCPサーバ400は、DHCP(Dynamic Host Configuration Protocol)に従って動作するアドレス割当装置である。DHCPサーバ400は、ローカルエリアネットワークNT内に接続された装置(例えば、端末装置100や、図示しないユーザの端末装置)からのアドレスの要求に応じて、該要求の送信元の装置にIPアドレスを動的に割り当てる。なお、詳細は後述するが、DHCPサーバ400は、システム1000において、ローカルエリアネットワークNTに接続されていなくても良い。
A−2:システム1000の動作
端末装置100のCPU110は、装置情報受信処理と装置情報送信処理とを、電源が投入されている間に、常時、並行して実行している。これにより、端末装置100は、USBIF170に接続されたプリンタ(例えば、プリンタ200A、200B)の状態情報を含む装置情報を、該プリンタから受信し、該装置情報を管理サーバ300に送信する。
A−2−1:装置情報受信処理
図2は、装置情報受信処理のフローチャートである。ここでは、USBIF170にプリンタ200Aが接続されているとして説明する。S105では、CPU110は、USBIF170に接続されたプリンタの装置情報の受信時間が到来したか否かを判断する。本実施例では、CPU110は、定期的、例えば、数時間に1回の頻度で、USBIF170に接続されたプリンタから該プリンタの装置情報を受信する。
受信時間が到来していない場合には(S105:NO)、CPU110は、受信時間が到来するまで待機する。受信時間が到来した場合には(S105:YES)、S110にて、CPU110は、USBIF170を介して、プリンタ200Aに装置情報の要求を送信する。ここで送信される装置情報の供給は、本実施例では、プリンタのシリアル番号の要求と、モデル名の要求と、状態情報としての累積印刷枚数の要求と、状態情報としての印刷材の残量の要求と、を含む。装置情報の要求には、例えば、PJL(Printer Job Language)を用いて記述されたコマンドが用いられる。USBIF170に接続されているプリンタ200Aは、装置情報の要求に応じて、該要求にて指定された装置情報を情報DB250Aから取得して、端末装置100に送信する。
S115では、CPU110は、装置情報の要求に対する応答として、プリンタから装置情報を受信する。ここで受信される装置情報は、本実施例では、上述したように、プリンタのシリアル番号と、モデル名と、状態情報としての累積印刷枚数および印刷材の残量と、を含む。
S120では、CPU110は、受信済みの装置情報を送信情報領域SAに格納する。送信情報領域SAに格納済みの装置情報は、後述するように、管理サーバ300からのSNMP要求に応じて、管理サーバ300に送信される。
S125では、CPU110は、USBIF170に接続されたプリンタが、端末装置100が認識しているプリンタから変更されたか否かを判断する。具体的には、CPU110は、不揮発性記憶装置130にプリンタ識別情報PIDとして記録済みのプリンタのシリアル番号と、S115にて受信済みのプリンタのシリアル番号と、を比較する。プリンタ識別情報PIDとして記録済みのプリンタのシリアル番号と、S115にて受信済みのプリンタのシリアル番号とが、異なる場合には、USBIF170に接続されたプリンタは変更されたと判断される。プリンタ識別情報PIDとして記録済みのプリンタのシリアル番号と、S115にて受信済みのプリンタのシリアル番号とが、同一である場合には、USBIF170に接続されたプリンタは変更されていないと判断される。例えば、前回の受信時間から今回の受信時間との間に、USBIF170に接続されたプリンタ200Aが取り外され、プリンタ200Aに代えてプリンタ200Bが新たにUSBIF170に接続された場合には、本ステップにおいて、USBIF170に接続されたプリンタは変更されたと判断される。
USBIF170に接続されたプリンタが変更された場合には(S125:YES)、S130にて、CPU110は、不揮発性記憶装置130のプリンタ識別情報PIDを更新する。具体的には、S115にて受信済みのプリンタのシリアル番号が、新たなプリンタ識別情報PIDとして、不揮発性記憶装置130に格納される。
S132では、CPU110は、DHCPサーバ400から新たなIPアドレスの取得を試行する。具体的には、CPU110は、DHCPに従って、新たなIPアドレスの要求をローカルエリアネットワークNT内にブロードキャストする。この結果、DHCPサーバ400がローカルエリアネットワークNT内で動作していれば、CPU110は、DHCPサーバ400にIPアドレスの要求を送信できる。この場合、DHCPサーバ400は、当該IPアドレスの要求に対する応答として、新たなIPアドレスを端末装置100に送信する。この結果、端末装置100は、DHCPサーバ400を利用して、新たなIPアドレスを容易に取得することができる。
S135では、CPU110は、S130において新たなIPアドレスの取得に成功したか否かを判断する。CPU110は、DHCPサーバ400から新たなIPアドレスを受信した場合には、新たなIPアドレスの取得に成功したと判断する。また、CPU110は、新たなIPアドレスの要求の送信後、所定の期間が経過しても、新たなIPアドレスを受信しない場合には、CPU110は、新たなIPアドレスの取得に失敗したと判断する。IPアドレスの取得に失敗する場合としては、システム1000において、ローカルエリアネットワークNTにDHCPサーバ400が接続されていない場合がある。
新たなIPアドレスの取得に成功した場合には(S135:YES)、S140にて、CPU110は、取得済みの新たなIPアドレスを、ネットワークIF180を介した通信にて用いるべきIPアドレスDA(図1)として設定する。
新たなIPアドレスの取得に失敗した場合には(S135:NO)、S145にて、CPU110は、新たなIPアドレスの候補となる候補アドレスを決定する。CPU110は、現在のIPアドレスDAとネットワーク設定に含まれるサブネットマスクとに基づいて特定される使用可能なIPアドレスの範囲を特定し、該範囲に含まれる1個のIPアドレスを候補アドレスとして決定する。
S150では、CPU110は、PINGを用いて、候補アドレスがローカルエリアネットワークNT内において未使用であるか否かを確認する。具体的には、CPU110は、宛先IPアドレスとして候補アドレスを指定して、ICMP(Internet Control Message Protocol)のPING要求を、ローカルエリアネットワークNT内に送信する。CPU110は、所定の応答期間内に、PING要求に対する応答を受信する場合には、候補アドレスが使用中であると判断し、PING要求に対する応答を受信しない場合には、候補アドレスが未使用であると判断する。
S155では、CPU110は、S150での確認の結果、候補アドレスは未使用であるか否かを判断する。候補アドレスが未使用である場合には(S155:YES)、S160にて、CPU110は、候補アドレスを、ネットワークIF180を介した通信にて用いるべき新たなIPアドレスDA(図1)として設定する。候補アドレスが使用中である場合には(S155:NO)、CPU110は、S145に戻って、別の候補アドレスを決定する。
S140またはS160にて新たなIPアドレスDAが設定された場合には、CPU110は、S105に戻って、次の受信時間まで待機する。
USBIF170に接続されたプリンタが変更されてない場合には(S125:NO)、CPU110は、上述したS130〜S160の処理をスキップして、S105に戻る。すなわち、この場合には、CPU110は、新たなIPアドレスDAを設定することなく、次の受信時間まで待機する。
A−2−2:管理サーバ300の動作
ここで、装置情報送信処理の説明の前に、管理サーバ300の動作について説明する。管理サーバ300は、管理サーバ300は、SNMP(Simple Network Management Protocol)マネージャとしての機能を備えている。管理サーバ300は、ローカルエリアネットワークNT内のプリンタの装置情報を収集するために、定期的、例えば、1日あたり1〜数回の頻度で、SNMP要求の送信を行っている。具体的には、管理サーバ300は、装置情報の収集時間が到来すると、ローカルエリアネットワークNT内のプリンタを探索するためのSNMP要求を、ローカルエリアネットワークNT内にブロードキャストする。ローカルエリアネットワークNT内のネットワークプリンタ500は、該SNMP要求に対して、自身のIPアドレスを含む応答を返信する。同様に、USBIF170に接続されるプリンタの装置情報を中継する(コンピュータプログラムPGを格納する)端末装置100は、該SNMP要求に対して、自身のIPアドレスを含む応答を返信する。管理サーバ300は、IPアドレスによってプリンタを識別する。したがって、管理サーバ300は、端末装置100を1個のプリンタとして認識する。なお、コンピュータプログラムPGを格納しない端末装置(図示省略)は、管理サーバ300から送信されるSNMP要求に対して返信しない。
管理サーバ300は、探索されたネットワークプリンタ500と、端末装置100と、のそれぞれに対して、取得したIPアドレスを用いて、装置情報の送信を要求するSNMP要求を送信する。本実施例では、SNMP要求は、装置情報に含まれる複数個の項目を収集するために、複数回に亘って送信される。本実施例では、シリアル番号と、モデル名と、累積印刷枚数と、印刷材の残量と、の4個の項目をそれぞれ要求する4回のSNMP要求が送信される。これらの項目のそれぞれは、例えば、ネットワークプリンタ500や端末装置100においてMIB(Management information base)情報として管理されている。すなわち、これらの項目は、例えば、MIB情報を構成する複数個のオブジェクトの1つである。このために、各項目を要求するSNMP要求には、要求する項目(オブジェクト)を示すオブジェクトIDを含む。1セットの装置情報の収集のために、複数個のSNMP要求が、ネットワークプリンタ500と端末装置100とのそれぞれに送信される。
管理サーバ300は、複数個のSNMP要求に対する応答として、ネットワークプリンタ500および端末装置100から装置情報を受信する。管理サーバ300は、受信した装置情報を、プリンタ管理テーブルPMTに記録する。プリンタ管理テーブルPMTについては後述する。
A−2−3:装置情報送信処理
次に、端末装置100のCPU110が実行する装置情報送信処理について説明する。端末装置100は、SNMPエージェントとして機能し、管理サーバ300からのSNMP要求に対して応答することによって装置情報送信処理を実行する。図3は、装置情報送信処理のフローチャートである。
S210では、CPU110は、上述した管理サーバ300から送信されるSNMP要求を受信したか否かを判断する。SNMP要求が受信されていない場合には(S210:NO)、CPU110は、SNMP要求を受信するまで待機する。SNMP要求が受信された場合には(S210:YES)、S220にて、CPU110は、受信済みのSNMP要求によって要求された情報が、記憶されているか否かを判断する。例えば、受信済みのSNMP要求が、上述したプリンタを探索するためのSNMP要求である場合には、要求された情報は、自身のIPアドレスDAである。また、受信済みのSNMP要求が、装置情報の各項目の要求である場合には、要求された情報が送信情報領域SAに記憶されているか否かが判断される。
SNMP要求によって要求された情報が記憶されている場合には(S220:YES)、S230にて、CPU110は、SNMP要求に対する応答として、要求された情報を、管理サーバ300に送信する。SNMP要求によって要求された情報が記憶されていない場合には(S220:NO)、S240にて、CPU110は、SNMP要求に対する応答として、要求された情報がないことを示す情報を、管理サーバ300に送信する。SNMP要求に対する応答の送信(S230、S240)では、端末装置100に割り当てられているIPアドレスDAが、送信元IPアドレスとして用いられる。SNMP要求に対する応答が管理サーバ300に送信されると、CPU110は、S210に戻って、次のSNMP要求が受信されるまで待機する。
A−3:DHCPサーバ400がある場合の動作
以上説明したシステム1000の動作の具体例をさらに説明する。図4は、システム1000の動作を示す第1のシーケンス図である。図5は、システム1000の動作を示す第2のシーケンス図である。図6は、管理サーバ300に格納されるプリンタ管理テーブルPMTの一例を示す図である。
この例では、初期状態は、プリンタ200Aが端末装置100のUSBIF170に接続され、プリンタ200Bが端末装置100のUSBIF170に接続されていない状態である。換言すれば、初期状態は、USBIF170を介して端末装置100がプリンタ200Aと通信可能であり、USBIF170を介して端末装置100がプリンタ200Bと通信可能でない通信状態である。この通信状態を第1の通信状態とも呼ぶ。また、この例では、DHCPサーバ400がローカルエリアネットワークNTに接続され、正常に動作しているものとする。
先ず、図4のS10では、端末装置100のCPU110は、コンピュータプログラムPGを起動する。この結果、端末装置100において、上述した図2の装置情報受信処理と図3の装置情報送信処理とが、常時、並行して実行される状態になる。
図4のS12では、1回目の装置情報の受信時間が到来したために、端末装置100は、USBIF170から装置情報の要求を送信する。この時点では、USBIF170にはプリンタ200Aが接続されているので、端末装置100からプリンタ200Aに装置情報の要求が送信される(図2のS110)。S14では、装置情報の要求に対する応答として、プリンタ200Aから端末装置100に装置情報、具体的には、プリンタ200Aのシリアル番号と、モデル名と、累積印刷枚数と、印刷材の残量とが送信される(図2のS115)。S16では、端末装置100の送信情報領域SAに、S14にてプリンタ200Aから送信された装置情報が格納される(図2のS120)。なお、この時点では、プリンタ200Aが接続された初期状態(第1の通信状態)が維持されているので(図2のS125にてNO)、図2のS130〜S160の処理は実行されない。
図4のS17では、1回目の装置情報の収集時間が到来したために、管理サーバ300から端末装置100にプリンタの探索のためのSNMP要求が送信される(図3のS210)。S18では、該SNMP要求に対する応答として、端末装置100から管理サーバ300に、端末装置100のIPアドレスIP_Aが送信される(図3のS230)。このIPアドレスIP_Aは、この時点で、使用すべきIPアドレスDAとして記憶されているIPアドレスである。管理サーバ300は、このIPアドレスIP_Aを用いて、プリンタ200Aを管理できる。
図4のS20では、管理サーバ300から端末装置100に装置情報の要求としてのSNMP要求が送信される(図3のS210)。該SNMP要求に対する応答として、端末装置100から管理サーバ300に、プリンタ200Aの装置情報が送信される(図3のS230)。この時、端末装置100は、送信元IPアドレスとして、IPアドレスIP_Aを用いる。ここで、S20とS22に示すSNMP要求とその応答は、複数個の項目を含む装置情報を取得するために複数回繰り返されるが、図4では、図の煩雑を避けるために1回分だけ図示されている。S22で送信される装置情報は、S16にて送信情報領域SAに格納された装置情報である。したがって、S22で送信される装置情報は、プリンタ200Aの装置情報である。
S24では、管理サーバ300は、プリンタ管理テーブルPMTを更新する。これによって、プリンタ管理テーブルPMTに、端末装置100から送信された装置情報が、IPアドレスIP_Aと対応付けて記録される。なお、このタイミングで、ネットワークプリンタ500と管理サーバ300との間でも図4のS17〜S22と同等の通信が行われて、管理サーバ300は、ネットワークプリンタ500からも装置情報を受信する。そして、管理サーバ300は、プリンタ管理テーブルPMTに、ネットワークプリンタ500からの装置情報を、ネットワークプリンタ500のIPアドレスIP_Cと対応付けて記録する。
図6(A)には、S24が終了した時点のプリンタ管理テーブルPMTが図示されている。このプリンタ管理テーブルPMTの上段のエントリEN1には、ネットワークプリンタ500の装置情報が、ネットワークプリンタ500に割り当てられたIPアドレスIP_Cと対応付けて記録されている。そして、下段のエントリEN2には、端末装置100に接続されているプリンタ200Aの装置情報が、端末装置100に割り当てられたIPアドレスIP_Aと対応付けて記録されている。
図4のS26では、2回目の装置情報の受信時間が到来したために、端末装置100からプリンタ200Aに、S12と同様の装置情報の要求が送信される(図2のS110)。S28では、S14と同様に、プリンタ200Aから端末装置100に装置情報が送信される(図2のS115)。S30では、端末装置100の送信情報領域SAが更新される。すなわち、S16にて送信情報領域SAに格納された装置情報が削除されて、新たにS28にてプリンタ200Aから送信された新たな装置情報が送信情報領域SAに格納される(図2のS120)。この時点では、プリンタ200Aが接続された初期状態(第1の通信状態)が維持されているので(図2のS125にてNO)、図2のS130〜S160の処理は実行されない。なお、図4のS30に続いて図5のS32が行われる。
図5のS32では、ユーザによって、プリンタ200Aが、端末装置100のUSBIF170から取り外される。S34では、ユーザによって、プリンタ200Aに代えて、プリンタ200Bが、端末装置100のUSBIF170に接続される。すなわち、S34が終了した時点では、USBIF170を介して端末装置100がプリンタ200Bと通信可能であり、USBIF170を介して端末装置100がプリンタ200Aと通信可能でない通信状態である。この通信状態を第2の通信状態とも呼ぶ。このように、S32、S34を経て、通信状態は、上述した第1の通信状態から第2の通信状態へと遷移している。
図5のS36では、3回目の装置情報の受信時間が到来したために、図4のS12と同様に、端末装置100は、USBIF170から装置情報の要求を送信する。ただし、この時点では、USBIF170にはプリンタ200Bが接続されているので、端末装置100からプリンタ200Bに装置情報の要求が送信される(図2のS110)。S38では、装置情報の要求に対する応答として、プリンタ200Bから端末装置100に装置情報が送信される(図2のS115)。S39では、端末装置100の送信情報領域SAに、S38にてプリンタ200Bから送信された装置情報が格納される(図2のS120)。
なお、2回目の装置情報の受信(図4のS28)から3回目の装置情報の受信(図5のS38)までの間に、プリンタ200Aが接続された初期状態(第1の通信状態)からプリンタ200Bが接続された第2の通信状態へと遷移している。すなわち、USBIF170に接続されるプリンタが変更されている。そのため、端末装置100は、図5のS40にて、USBIF170に接続されるプリンタの変更を認識する(図2のS125にてYES)。このために、端末装置100は、図2のS130以降の処理を実行する。具体的には、この例では、DHCPサーバ400が正しく動作しているので、S41にて、端末装置100は、DHCPサーバ400から新たなIPアドレスIP_Cを取得する(図2のS132、S135にてYES)。そして、S42では、使用すべきIPアドレスDAが、IPアドレスIP_AからIPアドレスIP_Bに変更される(図2のS140)。
図5のS44では、2回目の装置情報の収集時間が到来したために、管理サーバ300から端末装置100にプリンタの探索のためのSNMP要求が送信される(図3のS210)。S45では、該SNMP要求に対する応答として、端末装置100から管理サーバ300に、端末装置100のIPアドレスIP_Bが送信される(図3のS230)。このIPアドレスIP_Bは、この時点で、使用すべきIPアドレスDAとして記憶されているIPアドレス、すなわち、図5のS42にて新たに設定されたIPアドレスである。
図5のS46では、管理サーバ300から端末装置100に装置情報の要求としてのSNMP要求が送信される(図3のS210)。S48では、該SNMP要求に対する応答として、端末装置100から管理サーバ300に、プリンタ200Bの装置情報が送信される(図3のS230)。この時、端末装置100は、送信元IPアドレスとして、IPアドレスIP_Bを用いる。ここで、S46とS48に示すSNMP要求とその応答は、複数回繰り返されるが、図5では、図の煩雑を避けるために1回分だけ図示されている。この時点で送信される装置情報は、S39にて送信情報領域SAに格納された装置情報である。したがって、S48で送信される装置情報は、図4のS22で送信される装置情報とは異なり、プリンタ200Bの装置情報である。
S50では、管理サーバ300は、プリンタ管理テーブルPMTを更新する。これによって、プリンタ管理テーブルPMTに、端末装置100から送信された装置情報が、IPアドレスIP_Bと対応付けて記録される。なお、このタイミングで、ネットワークプリンタ500と端末装置100との間でも図5のS44〜S48と同等の通信が行われて、端末装置100は、ネットワークプリンタ500からも装置情報を受信する。そして、端末装置100は、プリンタ管理テーブルPMTにおいて、ネットワークプリンタ500からの装置情報を、ネットワークプリンタ500のIPアドレスIP_Cと対応付けて記録する。
ここで、管理サーバ300は、1回目の装置情報の収集時間(S17〜S24)では、端末装置100は、IPアドレスIP_Aを有する第1のプリンタである、と認識する。これに対して、管理サーバ300は、2回目の装置情報の収集時間(S44〜S50)では、端末装置100は、IPアドレスIP_Bを有し、第1のプリンタとは異なる第2のプリンタである、と認識する。したがって、管理サーバ300は、1回目の装置情報の収集時間(S17〜S24)では、管理サーバ300は、IPアドレスIP_Cを有するネットワークプリンタ500と、IPアドレスIP_Aを有する第1のプリンタと、が探索されたと認識する。そして、管理サーバ300は、2回目の装置情報の収集時間(S44〜S50)では、IPアドレスIP_Cを有するネットワークプリンタ500が再度探索され、IPアドレスIP_Bを有する第2のプリンタが新たに探索され、1回目に探索されたIPアドレスIP_Aを有する第1のプリンタは探索されなかった、と認識する。
図6(B)には、S50が終了して時点のプリンタ管理テーブルPMTが図示されている。図6(B)の管理テーブルPMTでは、上段のエントリEN1において、ネットワークプリンタ500の累積印刷枚数が更新されている。さらに、中断のエントリEN2において、IPアドレスIP_Aを有する第1のプリンタのステータスが、「正常」から「接続断」に更新されている。これは、2回目の装置情報の収集時間(S44〜S50)では、IPアドレスIP_Aを有する第1のプリンタは探索されなかったことに基づく。そして、下段のエントリEN3には、IPアドレスIP_Bを有する第2のプリンタの装置情報が記録されている。すなわち、エントリEN3には、端末装置100に接続されているプリンタ200Bの装置情報が、端末装置100に割り当てられたIPアドレスIP_Bと対応付けて記録されている。
このように、管理サーバ300は、端末装置100と通信しているだけであるにも拘わらずに、端末装置100のUSBIF170に接続されるプリンタ200Aの装置情報と、プリンタ200Bの装置情報と、を区別して管理できる。すなわち、プリンタ200Aの装置情報は、IPアドレスIP_Aを有する第1のプリンタの装置情報として管理され、プリンタ200Bの装置情報は、IPアドレスIP_Bを有する第2のプリンタの装置情報として管理される。
このように本実施例によれば、端末装置100は、USBIF170を介して、プリンタ200Aの状態情報(具体的には累積印刷枚数と印刷材の残量)を受信し(図4のS14)、ネットワークIF180を介して、プリンタ200Aの状態情報を、端末装置100に割り当て済みのIPアドレスIP_Aを用いて管理サーバ300に送信する(図4のS22)。そして、図5のS40では、端末装置100は、USBIF170に接続されるプリンタが、プリンタ200Aからプリンタ200Bに変更されたことを認識する。換言すれば、端末装置100は、USBIF170を介して端末装置100がプリンタ200Aと通信可能であり、プリンタ200Bと通信可能でない第1の通信状態から、USBIF170を介して端末装置100がプリンタ200Bと通信可能であり、プリンタ200Aと通信可能でない第2の通信状態への遷移を検出する。この場合に、端末装置100は、IPアドレスIP_Aとは異なるIPアドレスIP_Bを取得する(図5のS41)。端末装置100は、第2の通信状態において、USBIF170を介して、プリンタ200Bの状態情報を受信し(図5のS38)、ネットワークIF180を介して、プリンタ200Bの状態情報を、IPアドレスIP_Bを用いて管理サーバ300に送信する(S48)。この結果、管理サーバ300は、IPアドレスに基づいて、プリンタ200Aの状態情報と、プリンタ200Bの状態情報と、を区別できる(図6(B))。したがって、端末装置100が、USBIF170を介した通信状態によっては、プリンタ200Aとプリンタ200Bと通信し得る場合に、管理サーバ300は、プリンタ200Aの状態情報とプリンタ200Bの状態情報とを適切に管理できる。例えば、仮に、USBIF170に接続されるプリンタが、プリンタ200Aからプリンタ200Bに切り替えられたにも拘わらずに、これらの2個のプリンタの状態情報が区別されない場合には、例えば、管理サーバ300での管理テーブル上では、1個のプリンタの累積印刷枚数が減少する矛盾や、1個のプリンタのトナー残量が増加する矛盾が発生し得る。この場合には、印刷枚数に基づく課金サービスやトナーの供給サービスの提供に支障が発生し得る。本実施例では、そのような不具合の発生を抑制することができる。
また、本実施例によれば、USBIF170に接続されるプリンタが、プリンタ200Aからプリンタ200Bに切り替えられた場合であっても、管理サーバ300側に特別な仕組みを設けることなく、IPアドレスに基づいて、プリンタ200Aの状態情報とプリンタ200Bの状態情報とを適切に区別して管理できる。例えば、本実施例とは異なる手法としては、USBIF170に接続されるプリンタが、プリンタ200Aからプリンタ200Bに切り替えられたことを端末装置100が認識した場合に、端末装置100が当該切り替えを管理サーバ300に通知する仕組みが考えられる。この場合には、管理サーバ300には、当該切り替えの通知を解釈して、当該切り替えの通知を受信した場合には、当該切り替えの通知前に端末装置100から送信された状態情報を、通知後に端末装置100から送信された状態情報と区別して管理する仕組みが必要となる。
これに対して、本実施例によれば、管理サーバ300は、収集した状態情報の送信元IPアドレスに基づいて、送信元の装置を認識するという、一般的な方法だけで、プリンタ200Aの状態情報とプリンタ200Bの状態情報とを適切に区別して管理できる。従って、例えば、SNMPのような装置管理のための標準的なプロトコルを用いた一般的な方法で、プリンタ200Aの状態情報とプリンタ200Bの状態情報とを適切に区別して管理できる。例えば、端末装置100のコンピュータプログラムPGを提供する事業者(例えば、プリンタ200A、200Bのベンダ)と、管理サーバ300の管理プログラムを提供する事業者(例えば、プリンタの課金サービスやトナーの供給サービスの提供者)と、が異なる場合を想定する。このような状況では、上述した切り替えの通知のような端末装置100と管理サーバ300とが連携する特別な仕組みを実装することは困難である場合が多い。本実施例では、このような状況でもプリンタ200Aの状態情報とプリンタ200Bの状態情報とを適切に区別して管理できる。
本実施例では、プリンタ200A、200Bと端末装置100との通信に用いられるインタフェースは、第1の通信規格に従う通信を行うインタフェースであり、管理サーバ300と端末装置100との通信に用いられるインタフェースは、第1の通信規格とは異なる第2の通信規格に従う通信を行うインタフェースである。したがって、第2の通信規格に従って通信可能な管理サーバ300は、第2の通信規格とは異なる第1の通信規格に従って通信可能なプリンタ200A、200Bの状態情報を、端末装置100を介して適切に管理できる。
より具体的には、第1の通信規格は、USBであり、第2の通信規格は、IP(Internet Protocol)を用いる通信規格(例えば、イーサネット(登録商標)やWi−fi規格)である。したがって、IPを用いて通信可能な管理サーバ300は、USBを用いて通信可能なプリンタ200A、200Bの状態情報を、適切に管理できる。
さらに、本実施例では、端末装置100は、図4のS28にて装置情報の一部としてプリンタ200Aのシリアル番号が受信され、その後の図5のS38にて、プリンタ200Aのシリアル番号とは異なるプリンタ200Bのシリアル番号が受信された場合に、通信状態の遷移、すなわち、USBIF170に接続されるプリンタの変更を検出する(図2のS125参照)。したがって、USBIF170を介して受信される識別情報であるシリアル番号に基づいて、通信状態の遷移を適切に検出できる。
上述したように、これらのシリアル番号は、USBIF170を介して端末装置100が通信可能なプリンタに対して定期的に送信される識別情報の要求に対する応答として、受信される(図2のS105、S110、S115)。この結果、端末装置100は、定期的にシリアル番号を受信できるので、通信状態の遷移を適切に検出できる。また、状態情報を取得するタイミングでシリアル番号を取得するので、プリンタ200Aの状態情報とプリンタ200Bの状態情報とを区別して適切に管理できるようなタイミングで、通信状態の遷移を検出できる。
さらに、上記実施例では、端末装置100は、USBIF170に接続されたプリンタと定期的に通信を行って、該プリンタの状態情報を定期的に受信する(図2のS105、S115)。定期的に受信されるプリンタの状態情報は、メモリ(具体的には、揮発性記憶装置120の送信情報領域SA)に格納される(図2のS120)。端末装置100は、管理サーバ300から状態情報の要求としてのSNMP要求を受信した場合に(図3のS210にてYES)、メモリに格納される状態情報を管理サーバ300に送信する(図3のS220にてYES、S230)。この結果、管理サーバ300は、状態情報の要求を端末装置100に送信することで、所望のタイミングで端末装置100のUSBIF170に接続されたプリンタの状態情報を取得できる。
さらに、本実施例では、端末装置100によってプリンタ200A、200Bから受信され、端末装置100によって管理サーバ300に送信される状態情報は、消耗品の残量を示す情報と、印刷枚数を示す情報と、を含む。この結果、管理サーバ300は、これらの情報を適切に管理できる。したがって、例えば、上述した印刷枚数に基づく課金サービスや消耗品の供給サービスの提供に支障が発生することを抑制できる。
A−4:DHCPサーバ400がない場合の動作
システム1000の動作の具体例をさらに説明する。図7は、システム1000の動作を示す第3のシーケンス図である。この例は、システム1000内に、DHCPサーバ400がない場合、もしくは、DHCPサーバ400が正常に動作していないとする。
この場合には、上述した動作のうち、図4のS10〜図5のS40までの動作は、図4、図5のDHCPサーバ400がローカルエリアネットワークNTに接続され、正常に動作している場合と同じである。図7には、図4のS10〜図5のS40までの動作のうち、図5のS39、S40のみが図示されている。
図7のS40にて、USBIF170に接続されるプリンタの変更が認識されると、端末装置100は、DHCPサーバ400からの新たなIPアドレスの取得を試行する(図2のS132)が、この例では、DHCPサーバ400がない、もしくは、DHCPサーバ400が正常に動作していない。このために、図7のS41Bでは、端末装置100は、
DHCPサーバ400からのIPアドレスの取得に失敗する(図2のS135:NO)。このため、S42Bでは、端末装置100は、PINGを用いてローカルエリアネットワークNT内で未使用のIPアドレスを特定する(図2のS145〜S155)。そして、S43Bでは、CPU110は、使用すべきIPアドレスDAを、IPアドレスIP_Aから、未使用であると特定されたIPアドレスIP_Bに変更する(図2のS160)。図7のS44〜S50の処理は、図5のS44〜S50の処理と同じである。
以上説明したように、本実施例によれば、ローカルエリアネットワークNT内にDHCPサーバ400が存在しない場合や正常に動作していない場合であっても、新たなIPアドレスIP_Bを適切に取得できる。
B.変形例
(1)上記実施例の端末装置100では、プリンタ200A、200Bと通信する第1種のインタフェースは、USBIF170であり、管理サーバ300と通信する第2種のインタフェースは、ネットワークIF180である。このように、第1種のインタフェースの通信が従う通信規格と、第2種のインタフェースの通信が従う通信規格とは、異なっている。これに代えて、例えば、第1種のインタフェースの通信が従う通信規格と、第2種のインタフェースの通信が従う通信規格とは、同じイーサネット(登録商標)であっても良い。
この場合には、例えば、端末装置100は、第1種のインタフェースとして第1のネットワークIFを備え、第2種のインタフェースとして第2のネットワークIFを備える。そして、第1のネットワークIFは、ローカルエリアネットワークに接続され、該ローカルエリアネットワークを介して第1のネットワークプリンタと接続される。さらに、第2のネットワークIFは、インターネットに接続され、該インターネットを介して管理サーバ300と接続される。端末装置100には、第2のネットワークIFを介して通信を行うためのグローバルIPアドレスGIP_Aが設定される。端末装置100は、ローカルエリアネットワークに第1のネットワークプリンタが接続されている第1の通信状態では、第1のネットワークプリンタの状態情報を、グローバルIPアドレスGIP_Aを用いて、管理サーバ300に送信する。端末装置100は、ローカルエリアネットワークに第2のネットワークプリンタが接続されている第2の通信状態への遷移を検出すると、新たなグローバルIPアドレスGIP_Bを取得する。端末装置100は、第2のネットワークプリンタの状態情報を、グローバルIPアドレスGIP_Bを用いて、管理サーバ300に送信する。この場合いは、管理サーバ300は、グローバルIPアドレスに基づいて、第1のネットワークプリンタの状態情報と、第2のネットワークプリンタの状態情報と、を適切に管理できる。
(2)上述の変形例(1)において、第1のネットワークIFは、Wi−fi規格に従う無線インタフェースであり、第2のネットワークIFは、イーサネット(登録商標)規格に従う有線インタフェースであっても良い。逆に、第1のネットワークIFは、イーサネット(登録商標)規格に従う有線インタフェースであり、第2のネットワークIFは、Wi−fi規格に従う無線インタフェースであっても良い。また、例えば、第1のネットワークIFは、Wi−fi規格に従う無線インタフェースであり、第2のネットワークIFは、Wi−fi Directの規格に従う無線インタフェースであってもよい。
(3)上記実施例では、プリンタ200Aが接続された通信状態では、IPアドレスIP_Aを用いてプリンタ200Aの状態情報を管理サーバ300に送信し、プリンタ200Bが接続された通信状態では、IPアドレスIP_Aとは異なるIPアドレスIP_Bを用いてプリンタ200Bの状態情報を管理サーバ300に送信している。これに代えて、プリンタ200Aが接続された通信状態では、MACアドレスMA_Aを用いてプリンタ200Aの状態情報を管理サーバ300に送信し、プリンタ200Bが接続された通信状態では、MACアドレスMA_Aとは異なるMACアドレスMA_Bを用いてプリンタ200Bの状態情報を管理サーバ300に送信しても良い。この場合には、管理サーバ300は、MACアドレスMA_A、MA_Bに基づいて、プリンタ200A、200Bの状態情報を適切に管理できる。
(4)上記実施例では、第1の通信状態は、プリンタ200AがUSBIF170に接続され、プリンタ200BがUSBIF170に接続されていない状態であり、第2の通信状態は、プリンタ200BがUSBIF170に接続され、プリンタ200AがUSBIF170に接続されていない状態である。これに代えて、第1の通信状態は、プリンタ200AがUSBIF170に接続され、プリンタ200BがUSBIF170に接続されていない状態であり、第2の通信状態は、プリンタ200Aとプリンタ100Bとの両方がUSBIF170に接続された状態であっても良い。この場合は、USBIF170は、複数個のポートを備えており、複数個のデバイスを同時に接続できる。この場合には、端末装置100は、第1の通信状態において、プリンタ200Aの状態情報を、IPアドレスIP_Aを用いて管理サーバ300に送信する。端末装置100は、プリンタ200Aに加えて、プリンタ100Bが新たにUSBIF170に接続されたことが検出された場合に、IPアドレスIP_Bを取得する。そして、端末装置100は、第2の通信状態において、プリンタ200Aの状態情報は、IPアドレスIP_Aを用いて管理サーバ300に送信し、プリンタ200Bの状態情報は、IPアドレスIP_Bを用いて管理サーバ300に送信しても良い。
(5)上記実施例では、端末装置100からの要求に応じて、プリンタ200Aやプリンタ200Bから状態情報が端末装置100に送信される。これに代えて、プリンタ200Aやプリンタ200Bが定期的に、かつ、自発的に、状態情報を端末装置100に送信しても良い。
(6)上記実施例では、管理サーバ300からの要求に応じて、プリンタ200Aやプリンタ200Bの状態情報が、端末装置100から管理サーバ300に送信される。これに代えて、端末装置100が定期的に、かつ、自発的に、状態情報を管理サーバ300に送信しても良い。
(7)上記実施例では、プリンタ200A、200Bから端末装置100へ送信され、端末装置100から管理サーバ300へ送信される状態情報は、累積印刷枚数と、消耗品の残量と、を含んでいる。これらに代えて、または、これらと共に、該状態情報は、消耗品の交換回数と、印刷実行部のエラーに関する情報と、の全部または一部を含んでも良い。また、該状態情報は、累積印刷枚数だけでも良く、消耗品の残量だけでも良い。
(8)上記実施例では、端末装置100は、プリンタ200A、200Bの識別情報としてのシリアル番号を用いて、第1の通信状態から第2の通信状態への遷移を検出している。これに代えて、例えば、ユーザの入力に基づいて、第1の通信状態から第2の通信状態への遷移を検出しても良い。この場合には、例えば、USBIF170に接続されるプリンタを変更した場合には、ユーザは、その旨を操作部150を介して入力すれば良い。
(9)上記各実施例のシステム1000は、プリンタ200A、200Cに代えて、他の複数個の周辺装置、例えば、第1のスキャナと第2のスキャナや、第1のファイルサーバと第2のファイルサーバを備えても良い。この場合には、管理サーバ300は、例えば、第1のスキャナと第2のスキャナの状態情報(例えば、スキャン回数、エラー情報)や、第1のファイルサーバと第2のファイルサーバの状態情報(例えば、空き容量、エラー情報)を管理しても良い。
(10)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
(11)本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。