(57)【要約】【課題】デバイスから供給される消耗品の消費量の情報に基づいて、そのデバイスにおける累積の消耗品消費総数を得ることのできる技術を提供する。【解決手段】情報収集装置は、ネットワークを介して接続される複数のデバイスからの消耗品情報を受信するネットワークインタフェース部と、デバイスの消耗品情報を格納するデータベースにアクセスするデータベースアクセス部と、ネットワークインタフェース部とデータベースアクセス部とを制御する制御部とを備える。データベースアクセス部は、デバイスＩＤフィールドの値と、前回数量フィールドの値と、総数フィールドの値とをデータベースから取得する。制御部は、デバイスから受信した消耗品消費数から前回数量フィールドの値を引いた差分が負の値である場合に、前回数量フィールドに消耗品消費数を格納するとともに、総数フィールドの値を更新せずにそのまま維持する。【選択図】図２
2009289019.tif 000002
【特許請求の範囲】
【請求項１】
情報収集装置であって、
ネットワークを介して接続される複数のデバイスからの消耗品情報を受信するネットワークインタフェース部と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするデータベースアクセス部と、
前記ネットワークインタフェース部と前記データベースアクセス部とを制御する制御部と、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記データベースアクセス部は、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドの値と、
前回受信した消耗品消費数を格納するための前回数量フィールドの値と、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドの値と、
を前記データベースから取得し、
前記制御部は、前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する、情報収集装置。
【請求項２】
請求項１記載の情報収集装置であって、
前記制御部は、前記差分が正の値である場合には、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値に前記差分を加算する、情報収集装置。
【請求項３】
請求項１または２記載の情報収集装置であって、
前記制御部は、前記デバイスから受信した消耗品情報が当該デバイスについての初回の情報である場合は、前記総数フィールドへ所定の初期値を格納するように前記データベースアクセス部を制御する、情報収集装置。
【請求項４】
情報収集システムであって、
情報収集装置と、
データベースサーバと、
を備え、
前記情報収集装置は、
ネットワークを介して接続される複数のデバイスからの消耗品情報を受信するネットワークインタフェース部と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするデータベースアクセス部と、
前記ネットワークインタフェース部と前記データベースアクセス部とを制御する制御部と、
を備え、
前記データベースサーバのテーブルは、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドと、
前回受信した消耗品消費数を格納するための前回数量フィールドと、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドと、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記データベースアクセス部は、
前記デバイスＩＤフィールドの値と、
前記前回数量フィールドの値と、
前記総数フィールドの値と、
を前記データベースから取得し、
前記制御部は、前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する、情報収集システム。
【請求項５】
情報収集方法であって、
（ａ）ネットワークを介して接続されるデバイスからの消耗品情報を受信する工程と、
（ｂ）前記デバイスの消耗品情報を格納するデータベースにアクセスする工程と、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記工程（ｂ）は、
（ｂ１）前記デバイスＩＤを格納するためのデバイスＩＤフィールドにアクセスする工程と、
（ｂ２）前回受信した消耗品消費数を格納するための前回数量フィールドにアクセスする工程と、
（ｂ３）前記デバイスが消費した消耗品の総数を格納するための総数フィールドにアクセスする工程と、
（ｂ４）前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する工程と、
を含む、情報収集方法。
【請求項６】
コンピュータプログラムであって、
ネットワークを介して接続されるデバイスからの消耗品情報を受信する受信機能と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするアクセス機能と、
をコンピュータに実現させるコンピュータプログラムであり、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記アクセス機能は、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドにアクセスする機能と、
前回受信した消耗品消費数を格納するための前回数量フィールドにアクセスする機能と、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドにアクセスする機能と、
前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する機能と、
を含む、コンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスの消耗品情報を収集する技術に関する。
【背景技術】
【０００２】
消耗品情報を収集する技術としては、コピー機内にＥＥＰＲＯＭを含むＲＯＭ基板を設置し、ＥＥＰＲＯＭ内にコピー用紙の枚数のカウント情報を記憶させるものが知られている（例えば、特許文献１）。
【０００３】
【特許文献１】特開２０００−２５９０５０号公報
【０００４】
しかし、この技術では、ＲＯＭ基板を交換すればカウント情報は失われてしまう。したがって、その後にコピー機のＲＯＭ基板からカウント情報を収集しても、そのコピー機の累積のコピー枚数を得ることができないという問題があった。
【０００５】
なおこのような問題は、コピー機に限らず、一般に、デバイスの消耗品情報を収集しようとする場合に共通する問題であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、デバイスから供給される消耗品の消費量の情報に基づいて、そのデバイスにおける累積の消耗品消費総数を得ることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００８】
[適用例１]
情報収集装置であって、
ネットワークを介して接続される複数のデバイスからの消耗品情報を受信するネットワークインタフェース部と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするデータベースアクセス部と、
前記ネットワークインタフェース部と前記データベースアクセス部とを制御する制御部と、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記データベースアクセス部は、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドの値と、
前回受信した消耗品消費数を格納するための前回数量フィールドの値と、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドの値と、
を前記データベースから取得し、
前記制御部は、前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する、情報収集装置。
このように、消耗品消費数から前回数量フィールドの値を引いた差分が負の値である場合、前回数量フィールドに消耗品消費数を格納することによって、そのデバイスにおける累積の消耗品消費総数を正しく維持することができる。
【０００９】
[適用例２]
適用例１記載の情報収集装置であって、
前記制御部は、前記差分が正の値である場合には、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値に前記差分を加算する、情報収集装置。
こうすれば、そのデバイスにおける累積の消耗品消費総数を得ることができる。
【００１０】
[適用例３]
適用例１または２記載の情報収集装置であって、
前記制御部は、前記デバイスから受信した消耗品情報が当該デバイスについての初回の情報である場合は、前記総数フィールドへ所定の初期値を格納するように前記データベースアクセス部を制御する、情報収集装置。
こうすれば、初期値を変更することによって柔軟な運用が可能となる。
【００１１】
[適用例４]
情報収集システムであって、
情報収集装置と、
データベースサーバと、
を備え、
前記情報収集装置は、
ネットワークを介して接続される複数のデバイスからの消耗品情報を受信するネットワークインタフェース部と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするデータベースアクセス部と、
前記ネットワークインタフェース部と前記データベースアクセス部とを制御する制御部と、
を備え、
前記データベースサーバのテーブルは、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドと、
前回受信した消耗品消費数を格納するための前回数量フィールドと、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドと、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記データベースアクセス部は、
前記デバイスＩＤフィールドの値と、
前記前回数量フィールドの値と、
前記総数フィールドの値と、
を前記データベースから取得し、
前記制御部は、前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する、情報収集システム。
【００１２】
[適用例５]
情報収集方法であって、
（ａ）ネットワークを介して接続されるデバイスからの消耗品情報を受信する工程と、
（ｂ）前記デバイスの消耗品情報を格納するデータベースにアクセスする工程と、
を備え、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記工程（ｂ）は、
（ｂ１）前記デバイスＩＤを格納するためのデバイスＩＤフィールドにアクセスする工程と、
（ｂ２）前回受信した消耗品消費数を格納するための前回数量フィールドにアクセスする工程と、
（ｂ３）前記デバイスが消費した消耗品の総数を格納するための総数フィールドにアクセスする工程と、
（ｂ４）前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する工程と、
を含む、情報収集方法。
【００１３】
[適用例６]
コンピュータプログラムであって、
ネットワークを介して接続されるデバイスからの消耗品情報を受信する受信機能と、
前記デバイスの消耗品情報を格納するデータベースにアクセスするアクセス機能と、
をコンピュータに実現させるコンピュータプログラムであり、
前記消耗品情報は、
前記デバイスに割り当てられるデバイスＩＤと、
前記デバイスが消費した消耗品の数量である消耗品消費数と、
を含み、
前記アクセス機能は、
前記デバイスＩＤを格納するためのデバイスＩＤフィールドにアクセスする機能と、
前回受信した消耗品消費数を格納するための前回数量フィールドにアクセスする機能と、
前記デバイスが消費した消耗品の総数を格納するための総数フィールドにアクセスする機能と、
前記デバイスから受信した消耗品消費数から前記前回数量フィールドの値を引いた差分が負の値である場合に、前記前回数量フィールドに前記消耗品消費数を格納するとともに、前記総数フィールドの値を更新せずにそのまま維持する機能と、
を含む、コンピュータプログラム。
【００１４】
[適用例７]
適用例６に記載のコンピュータプログラムを記録する記録媒体。
【００１５】
なお、本発明は、種々の態様で実現することが可能である。例えば、情報収集方法および装置、情報収集システム、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ｂ．比較例：
Ｃ．変形例：
【００１７】
Ａ．実施例：
図１は、本発明の一実施例としての情報収集システムの概略構成を示す説明図である。この情報収集システム１０は、アプリケーションサーバ１００と、データベースサーバ２００と、ファイアウォール３００と、ＷＥＢサーバ４００とを備えている。アプリケーションサーバ１００とデータベースサーバ２００とは、ファイアウォール３００の内側（内部ネットワーク）に配置され、そのセキュリティが確保されている。一方、ＷＥＢサーバ４００は、ファイアウォール３００の外側（外部ネットワーク）に配置されている。なお、このＷＥＢサーバ４００は、内部ネットワークと外部ネットワークの間に隔離されたネットワーク領域（ＤＭＺ）を設けた上で、ＤＭＺに配置する構成とすることもできる。ＷＥＢサーバ４００のセキュリティを考慮すると、ＷＥＢサーバ４００はＤＭＺに配置する構成することが好ましい。
【００１８】
情報収集システム１０はインターネットＩＮＥＴを介して接続されたクライアントとして、クライアントコンピュータ５００と、ネットワークプリンタ７００とを備えている。クライアントコンピュータ５００は、直接ネットワークに接続する機能のないプリンタ６００の代理として、情報収集システム１０のクライアントとして機能するコンピュータである。ネットワークプリンタ７００は、直接ネットワークに接続することができ、情報収集システム１０のクライアントとして機能することが可能なプリンタである。情報収集システム１０にはこれらのクライアントが複数接続されるが、図１においては、図示の便宜上１台ずつの記載としている。
【００１９】
図２は、情報収集システムの機能を示すブロック図である。プリンタ６００は、プリンタエンジン６２０と、プリンタコントローラ６４０と、メモリ６６０とを備えている。プリンタエンジン６２０は、実際に印刷を行う機構部分である。プリンタコントローラ６４０は、図示しないＣＰＵを備えるコンピュータであり、クライアントコンピュータ５００から印刷ジョブデータを受け取って、その印刷ジョブに従ってプリンタエンジン６２０を制御し、印刷を実行させる。また、プリンタコントローラ６４０は、メモリ６６０に格納されるデバイスＩＤと、消耗品消費数ＵＤＮとをクライアントコンピュータ５００へ送信する。メモリ６６０は、図示しないＲＯＭやＲＡＭを備える記憶領域であり、デバイスＩＤと、消耗品消費数ＵＤＮとを記憶している。デバイスＩＤは、個々のプリンタ６００を識別するための識別記号である。消耗品消費数ＵＤＮは、プリンタ６００で消費された消耗品の個数である。消耗品消費数としては、例えば、インクカートリッジの消費個数を利用することができる。なお、消耗品消費数ＵＤＮは、電気的に内容を書き換えるＥＥＰＲＯＭなどの不揮発性メモリを用いて記憶することが好ましい。この消耗品消費数ＵＤＮを格納する不揮発性メモリは、通常は、ＲＯＭ基板上に実装されている。
【００２０】
クライアントコンピュータ５００は、ネットワークインタフェース５２０と、ＲＰエージェント部５４０と、プリンタインタフェース５６０とを備えている。ネットワークインタフェース５２０は、クライアントコンピュータ５００がネットワークに接続する際のインタフェースである。ＲＰエージェント部５４０は、クライアントコンピュータ５００に常駐するソフトウェアで、プリンタ６００のメモリ６６０に記憶されるデバイスＩＤおよび消耗品消費数ＵＤＮを、ＷＥＢサーバ４００へ送信する役割を果たす。この送信は、クライアントコンピュータ５００がネットワークに接続された任意のタイミングで行うことができる。プリンタインタフェース５６０は、クライアントコンピュータ５００とプリンタ６００とを接続するインタフェースである。クライアントコンピュータ５００は、このプリンタインタフェース５６０を介して、プリンタ６００のデバイスＩＤおよび消耗品消費数ＵＤＮを取得する。
【００２１】
ＷＥＢサーバ４００は、外部ネットワークに位置し、クライアントからの情報を受信し、アプリケーションサーバ１００に送信する窓口となるサーバである。ファイアウォール３００は、アプリケーションサーバ１００およびデータベースサーバ２００を外部ネットワークから隔離し、外部ネットワークに存在する脅威やウィルスからこれらのサーバを守る役割を果たす。
【００２２】
アプリケーションサーバ１００は、ネットワークインタフェース１２０と、制御部１４０と、ＤＢアクセス部１６０と、制御情報１８０とを備えている。ネットワークインタフェース１２０は、アプリケーションサーバ１００がネットワークに接続する際のインタフェースである。制御部１４０は、ネットワークインタフェース１２０を介して受信する情報をもとに、ＤＢアクセス部１６０を制御する。ＤＢアクセス部１６０は、データベースサーバ２００にアクセスして、情報の読み出しおよび書き込みを行う。制御部１４０およびＤＢアクセス部１６０はアプリケーションサーバ１００の図示しないＣＰＵ上に配置される。制御情報１８０は、制御部１４０が制御を行う際に必要な情報であり、アプリケーションサーバ１００の図示しないＲＯＭやＲＡＭなどのメモリ上に配置される。
【００２３】
データベースサーバ２００は、ネットワークインタフェース２２０と、データベース２４０とを備えている。ネットワークインタフェース２２０は、データベースサーバ２００がネットワークに接続する際のインタフェースである。データベース２４０は、データベースサーバ２００上に構築されるデータを格納するための記憶領域であり、例えば、リレーショナルデータベースマネージメントシステム（ＲＤＢＭＳ）を用いて実現することができる。データベース２４０のテーブルには、デバイスＩＤフィールド２４２と、前回数量フィールド２４４と、総数フィールド２４６とを備えている。デバイスＩＤフィールド２４２は、プリンタ６００のメモリ中に記憶されるデバイスＩＤを格納するフィールドである。前回数量フィールド２４４は、プリンタ６００から前回通知された消耗品消費数ＰＮを格納するフィールドである。総数フィールド２４６は、プリンタ６００が使用した消耗品の総数（累積消費数）ＴＮを格納するフィールドである。なお、前記のネットワークに接続されている各デバイスやサーバ間の通信は、例えば、ＴＣＰ／ＩＰを用いて実現することができる。
【００２４】
図３は、アプリケーションサーバ１００の制御部１４０の処理手順を示すフローチャートである。このフローチャートにおける制御主体は制御部１４０である。以下の処理では、次の変数を使用する。
（１）クライアントからの消耗品情報
・ＵＤＮ：消耗品消費数
（２）データベースのフィールド値
・ＰＮ：前回数量フィールド値
・ＴＮ：総数フィールド値
（３）アプリケーションサーバの内部変数
・ＬＴ：前回数量フィールド値ＰＮを保持する変数
・ＵＰＤＡＴＥ：総数フィールド値ＴＮを保持する変数
・δ：差分値（ＵＤＮ−ＬＴ）＝（ＵＤＮ−ＰＮ）を保持する変数
【００２５】
ステップＳ１では、ネットワークインタフェース１２０を介して、クライアントコンピュータ５００から送信される消耗品情報を受信する。クライアントコンピュータ５００から送信される消耗品情報には、デバイスＩＤと、消耗品消費数ＵＤＮとが含まれている。なお、図３では詳細な記載を省略しているが、この受信処理の際には、クライアントの認証処理およびデータ改ざんチェックを行うことが好ましい。ステップＳ２において制御部１４０は、ＤＢアクセス部１６０に対して、前回数量フィールド２４４の値ＰＮおよび総数フィールド２４６の値ＴＮを取得するよう制御する。その後、制御部１４０は、変数ＬＴに前回数量フィールド２４４の値ＰＮを格納する。同様に、変数ＵＰＤＡＴＥに総数フィールド２４６の値ＴＮを格納する。ステップＳ３では、変数ＬＴの値がｎｕｌｌ（初期の無効値）であるか否かを判断する。変数ＬＴの値がｎｕｌｌの場合は、ステップＳ７において、変数ＵＰＤＡＴＥに０を格納し、ステップＳ８へ進む。変数ＬＴの値がｎｕｌｌでない場合は、ステップＳ４において、変数δに消耗品消費数ＵＤＮの値から変数ＬＴの値を引いた差分（ＵＤＮ−ＬＴ）を格納する。本実施例においては、この変数δの値が、前回データを受信したときから今回までの消耗品消費数ＵＤＮの増分を表している。なお、ステップＳ３の判断は、変数ＵＰＤＡＴＥの値がｎｕｌｌであるか否かによって行うこともできる。ステップＳ５では、変数δの値が負であるか否かを判断する。変数δが０または正の値である場合は、ステップＳ６において、変数ＵＰＤＡＴＥの値に変数δの値を加算し、ステップＳ８へ進む。変数δが負の値である場合は、ステップＳ８へ進む。ステップＳ８では、変数ＬＴの値として消耗品消費数ＵＤＮの値を格納する。ステップＳ９では、変数ＬＴの値を前回数量フィールド２４４へ書き込むようにＤＢアクセス部１６０を制御する。同様に、変数ＵＰＤＡＴＥの値を総数フィールド２４６へ書き込むようにＤＢアクセス部１６０を制御する。なお、総数フィールド２４６への書き込みは、変数ＵＰＤＡＴＥの値が更新された場合にのみ行ってもよい。
【００２６】
上述した手順によれば、変数δが正の場合には、ステップＳ６、Ｓ８の処理によって総数フィールド値ＴＮに変数δが加算され、一方、変数δが負の場合には、変数ＵＰＤＡＴＥが変更されないので、総数フィールド値ＴＮの値もそのままに維持される。変数δは、ステップＳ２、Ｓ４の処理から理解できるように、今回受信した消耗品消費数ＵＤＮから前回数量フィールド値ＰＮを引いた値である。したがって、変数δが正であれば、総数フィールド値ＴＮの値にδを加算することによって、累積の消耗品消費数を得ることができる。一方、変数δが負の場合には、消耗品消費数ＵＤＮに何らかの異常（例えばプリンタ６００のＲＯＭ基板の交換）があるものと推定される。そこで、変数δが負の場合には、総数フィールド値ＴＮの値をそのまま維持することによって、累積の消耗品消費数適切な値に保つことが可能である。
【００２７】
図４は、情報収集システム１０の処理の流れを示す説明図である。図５は、図４の各時点におけるデータの内容を示す説明図である。以下、図４および図５を用いて情報収集システム１０の処理の流れを説明する。なお、ファイアウォール３００およびＷＥＢサーバ４００は、クライアントコンピュータ５００に対する窓口にすぎないため、図４では記載を省略している。
【００２８】
ここで、デバイスＩＤが「１２３４」であるクライアントから、未だ情報を１度も受信していない状態を初期状態と呼ぶ。この初期状態の時刻ｔ０において、データベースサーバ２００のデバイスＩＤフィールド２４２の値が「１２３４」であるレコードの前回数量フィールド２４４の値ＰＮおよび総数フィールド２４６の値ＴＮはｎｕｌｌ値である。図５の時刻ｔ０は、このときの各パラメータの値を示している。
【００２９】
時刻ｔ１において、クライアントコンピュータ５００は、自身に接続しているプリンタ６００のデバイスＩＤ「１２３４」、および、消耗品消費数ＵＤＮ＝３をアプリケーションサーバ１００に送信する（図４・ステップＳ１０）。ステップＳ１１において、アプリケーションサーバ１００は、データベースサーバ２００から、デバイスＩＤフィールド２４２が「１２３４」であるレコードを抽出し、その前回数量フィールド２４４の値ＰＮと総数フィールド２４６の値ＴＮとを取得する。初期状態であるため、これらの値はｎｕｌｌである。ステップＳ１２において、アプリケーションサーバ１００は、変数ＬＴに前回数量フィールド２４４の値ＰＮを格納する。同様に、変数ＵＰＤＡＴＥに総数フィールド２４６の値ＴＮを格納する。図５の時刻ｔ２は、このときの各パラメータの値を示している。ステップＳ１３において、アプリケーションサーバ１００は、変数ＬＴがｎｕｌｌであることから、デバイスＩＤが「１２３４」のクライアントは初回登録であると判断する。このため、アプリケーションサーバ１００は、変数ＵＰＤＡＴＥに所定の初期値である０を格納する。また、変数ＬＴに消耗品消費数ＵＤＮ＝３を格納する。なお、変数ＵＰＤＡＴＥの初期値は０としているが、他の値とすることもできる。例えば、特定の期間に初回アクセスを行ったクライアントに対しては、初期値を５とする等、初期値を変更することで柔軟な運用をすることが可能である。ステップＳ１４において、アプリケーションサーバ１００は、変数ＬＴの値をデータベースサーバ２００の前回数量フィールド２４４へ書き込み、変数ＵＰＤＡＴＥの値をデータベースサーバ２００の総数フィールド２４６へ書き込む。図５の時刻ｔ３は、このときの各パラメータの値を示している。
【００３０】
次の時刻ｔ４において、クライアントコンピュータ５００は、自身に接続しているプリンタ６００のデバイスＩＤ「１２３４」、および、消耗品消費数ＵＤＮ＝４をアプリケーションサーバ１００に送信する（図４・ステップＳ２０）。ステップＳ２１において、アプリケーションサーバ１００は、データベースサーバ２００からデバイスＩＤフィールド２４２が「１２３４」であるレコードを抽出し、その前回数量フィールド２４４の値ＰＮと総数フィールド２４６の値ＴＮとを取得する。このとき、前回数量フィールド２４４の値ＰＮ＝３、総数フィールド２４６の値ＴＮ＝０である。ステップＳ２２において、アプリケーションサーバ１００は、変数ＬＴに前回数量フィールド２４４の値ＰＮを格納する。同様に、変数ＵＰＤＡＴＥに総数フィールド２４６の値ＴＮを格納する。ステップＳ２３において、アプリケーションサーバ１００は、変数ＬＴがｎｕｌｌでないことから、デバイスＩＤが「１２３４」のクライアントは初回登録でないと判断する。このため、アプリケーションサーバ１００は、変数δに、消耗品消費数ＵＤＮの値から変数ＬＴの値を引いた値（ＵＤＮ−ＬＴ＝１）を格納する。図５の時刻ｔ５は、このときの各パラメータの値を示している。アプリケーションサーバ１００は、変数δの値が０よりも大きいため、変数ＵＰＤＡＴＥの値に変数δの値を加算する。また、変数ＬＴに消耗品消費数ＵＤＮ＝４を格納する。ステップＳ２４において、アプリケーションサーバ１００は、変数ＬＴの値をデータベースサーバ２００の前回数量フィールド２４４へ書き込み、変数ＵＰＤＡＴＥの値をデータベースサーバ２００の総数フィールド２４６へ書き込む。図５の時刻ｔ６は、このときの各パラメータの値を示している。
【００３１】
次の時刻ｔ７において、クライアントコンピュータ５００に接続しているプリンタ６００の消耗品消費数データが消失し、消耗品消費数ＵＤＮ＝０となったものと仮定している。この消耗品消費数ＵＤＮのデータ消失の要因は、例えば消耗品消費数ＵＤＮが記憶されているＥＥＰＲＯＭの故障に伴う基板交換などがある。消耗品消費数データの消失後、クライアントコンピュータ５００は、プリンタ６００のデバイスＩＤ「１２３４」、および、消耗品消費数ＵＤＮ＝０をアプリケーションサーバ１００に送信する（図４・ステップＳ３０）。ステップＳ３１において、アプリケーションサーバ１００は、データベースサーバ２００からデバイスＩＤフィールド２４２が「１２３４」であるレコードを抽出し、その前回数量フィールド２４４の値ＰＮと総数フィールド２４６の値ＴＮとを取得する。このとき、前回数量フィールド２４４の値ＰＮ＝４、総数フィールド２４６の値ＴＮ＝１である。ステップＳ３２において、アプリケーションサーバ１００は、変数ＬＴに前回数量フィールド２４４の値ＰＮを格納する。同様に、変数ＵＰＤＡＴＥに総数フィールド２４６の値ＴＮを格納する。ステップＳ３３において、アプリケーションサーバ１００は、変数ＬＴがｎｕｌｌでないことから、デバイスＩＤが「１２３４」のクライアントは初回登録でないと判断する。このため、アプリケーションサーバ１００は、変数δに、消耗品消費数ＵＤＮの値から変数ＬＴの値を引いた値（ＵＤＮ−ＬＴ＝−４）を格納する。図５の時刻ｔ８は、このときの各パラメータの値を示している。アプリケーションサーバ１００は、変数δの値が負の値であるため、変数ＬＴに消耗品消費数ＵＤＮ＝０を格納する。ステップＳ３４において、アプリケーションサーバ１００は、変数ＬＴの値を、データベースサーバ２００の前回数量フィールド２４４へ書き込む。図５の時刻ｔ９は、このときの各パラメータの値を示している。
【００３２】
このように、上記実施例では、今回の送信情報（消耗品消費数ＵＤＮ）と、前回の送信情報（前回数量フィールド２４４の値ＰＮ）との差分δが負の値である場合、総数フィールド２４６を更新せずに、前回数量フィールド２４４の値を消耗品消費数ＵＤＮの値としている。この結果、プリンタ６００に関する累積の消耗品消費総数を正しく維持することができる。
【００３３】
Ｂ．比較例：
次に、実施例の効果を比較例と比べつつ説明する。比較例のうち、上記実施例と同様の構成を有する部分については説明を省略する。
【００３４】
図６は、比較例におけるアプリケーションサーバ１００の制御部１４０の処理手順を示すフローチャートである。以下の処理では、次の変数を使用する。
（１）クライアントからの消耗品情報
・ＵＤＮ：消耗品消費数
（２）データベースのフィールド値
・ＦＮ：初回数量フィールド値（第１回目の消耗品消費数ＵＤＮを格納する）
・ＴＮ：総数フィールド値
（３）アプリケーションサーバの内部変数
・ＦＴ：初回数量フィールド値ＦＮを保持する変数
・ＣＮ：今回の消耗品消費数ＵＤＮを保持する変数
・ＴＯＴ：累積の消耗品消費数を示す変数 
【００３５】
ステップＳ１０１では、ネットワークインタフェース１２０を介して、クライアントコンピュータ５００から送信される消耗品情報を受信する。この処理は、図３のステップＳ１と同じである。ステップＳ１０２において制御部１４０は、初回数量フィールドの値ＦＮを取得し、これを変数ＦＴに格納する。ステップＳ１０３では、変数ＦＴの値がｎｕｌｌであるか否かを判断する。変数ＦＴの値がｎｕｌｌの場合（初期状態）は、ステップＳ１０５において、変数ＦＴに消耗品消費数ＵＤＮの値を格納し、変数ＣＮに消耗品消費数ＵＤＮの値を格納して、ステップＳ１０６へ進む。変数ＦＴの値がｎｕｌｌでない場合は、ステップＳ１０４において、変数ＣＮに消耗品消費数ＵＤＮの値を格納して、ステップＳ１０６へ進む。ステップＳ１０６において、変数ＴＯＴに変数ＣＮの値から変数ＦＴの値を引いた差分（ＣＮ−ＦＴ）を格納する。比較例においては、この変数ＴＯＴの値が、プリンタ６００が消費した消耗品の総数を表している。ステップＳ１０７では、変数ＴＯＴの値を総数フィールド２４６へ書き込む。このとき、初回登録時に限り、変数ＦＴの値を初回数量フィールドへ書き込む。ここで、初回数量フィールドとは、プリンタ６００のメモリ中に記憶される消耗品消費数ＵＤＮであって初回登録時の値を格納するためのフィールドである。
【００３６】
上述した比較例の処理手順によれば、クライアントから受信した消耗品消費数ＵＤＮから初回数量フィールド値ＦＮを減算した値ＴＯＴ（ＵＤＮ−ＦＴ）が負の場合にも、その負の値がデータベースの総数フィールド値ＴＮとして書き込まれる。したがって、総数フィールド値ＴＮに誤った消耗品消費総数が登録される可能性がある。
【００３７】
図７は、比較例における情報収集システム１０の処理の流れを示す説明図である。図８は、図７の各時点におけるデータの内容を示す説明図である。以下、図７および図８を用いて、前記実施例と比較例とを比較する。
【００３８】
図７では、時刻ｔ１、ｔ４、ｔ７の各時点において、図４と同じ内容の消耗品情報がクライアントコンピュータ５００から送信されている。そして、アプリケーションサーバ１００による処理が終了し、データベースサーバ２００のフィールドが更新された時刻ｔ３、ｔ６、ｔ９の各時点における、データベースサーバ２００の各フィールド値に着目する。すると、時刻ｔ６までは総数フィールド値ＴＮが適切な値（ＴＮ＝１）に維持されているが、時刻ｔ９の時点では、総数フィールド値ＴＮに適切ではない値（ＴＮ＝−３）が登録されていることがわかる。図８においても同様である。これは、時刻ｔ７の前に、クライアントコンピュータ５００に接続しているプリンタ６００の消耗品消費数データが消失したことによって、消耗品消費数ＵＤＮ＝０を受信したことによる。一方、図４では、消耗品消費数ＵＤＮ＝０を受信した後の時刻ｔ９の時点においても、総数フィールド値ＴＮには適切な値（ＴＮ＝１）が維持されていることがわかる。
【００３９】
このように、比較例においては、消耗品消費数データの消失後に処理を継続した場合、総数フィールド２４６に正常でない負の値が格納され、正確な総数を維持することができない。一方、上記実施例においては、消耗品消費数データが消失した場合は、総数フィールド２４６を更新せずに、前回数量フィールド２４４の値を今回受信した消耗品消費数ＵＤＮの値としている。この結果、総数フィールド２４６の値を正しく維持することができる。
【００４０】
Ｃ．変形例： 
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００４１】
Ｃ１．変形例１：
上記実施例では、プリンタに記憶される消耗品消費数ＵＤＮは１種類であるとしたが、複数種類の消耗品消費数ＵＤＮを記憶しておくこととしてもよい。例えば、ブラックインクとカラーインクとを区別して、それらの消耗品消費数ＵＤＮを別個に記憶するようにしてもよい。この場合、データベースサーバの前回数量フィールドおよび総数フィールドについても、消耗品消費数ＵＤＮの個数に対応して、複数設けることが好ましい。
【００４２】
Ｃ２．変形例２：
上記実施例では、インクカートリッジ消費個数の情報を収集する技術について説明したが、本発明は、インクカートリッジ以外の消耗品消費数の情報を収集する技術に適用可能である。例えば、トナーカートリッジや、印画紙、フィルムなど種々の消耗品に関しても、上記実施例と同様にしてその消費総数を得ることができる。また、本発明は、プリンタ以外のデバイスにも適用することができる。例えば、ＣＤ−ＲＷドライブ（ＤＶＤ−ＲＷドライブ）のＣＤ−Ｒ（ＤＶＤ−Ｒ）消費総数を得ることも可能である。
【００４３】
Ｃ３．変形例３：
上記実施例では、アプリケーションサーバ、データベースサーバ、ＷＥＢサーバをそれぞれ１台ずつ備える構成としたが、これらのサーバは複数台設けることもできる。例えば、クライアントの台数が多く、多くのアクセスが見込まれる場合は、ＷＥＢサーバを複数台設けた上で負荷分散装置を設けることが好ましい。
【００４４】
Ｃ４．変形例４：
上記実施例では、アプリケーションサーバと、データベースサーバと、ＷＥＢサーバとは別々のサーバ装置を用いるものとしたが、これらは１台のサーバ装置で実現することもできる。
【００４５】
Ｃ５．変形例５：
上記実施例では、クライアントと情報収集システムとの間はインターネットで接続されているものとしたが、イントラネットで接続される構成とすることもできる。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施例としての情報収集システムの概略構成を示す説明図である。
【図２】情報収集システムの機能を示すブロック図である。
【図３】アプリケーションサーバ１００の制御部１４０の処理手順を示すフローチャートである。
【図４】情報収集システム１０の処理の流れを示す説明図である。
【図５】図４の各時点におけるデータの内容を示す説明図である。
【図６】比較例におけるアプリケーションサーバ１００の制御部１４０の処理手順を示すフローチャートである。
【図７】比較例における情報収集システム１０の処理の流れを示す説明図である。
【図８】図７の各時点におけるデータの内容を示す説明図である。
【符号の説明】
【００４７】
１０…情報収集システム
１００…アプリケーションサーバ
１２０…ネットワークインタフェース
１４０…制御部
１８０…制御情報
２００…データベースサーバ
２２０…ネットワークインタフェース
２４０…データベース
２４４…前回数量フィールド
２４６…総数フィールド
３００…ファイアウォール
５００…クライアントコンピュータ
５２０…ネットワークインタフェース
５６０…プリンタインタフェース
６００…プリンタ
６２０…プリンタエンジン
６４０…プリンタコントローラ
６６０…メモリ
７００…ネットワークプリンタ
【図１】
2009289019.tif 000003
【図２】
2009289019.tif 000004
【図３】
2009289019.tif 000005
【図４】
2009289019.tif 000006
【図５】
2009289019.tif 000007
【図６】
2009289019.tif 000008
【図７】
2009289019.tif 000009
【図８】
2009289019.tif 000010