(57)【要約】【課題】  所定のデータをネットワーク機器に効率的に分散して配信するデータ配信システム、及びデータ配信システムを構成するネットワーク機器を提供する。【解決手段】  サーバＳＶは、データと、データを保持するプリンタのリストを記憶しており、プリンタにデータ又はリストを配信する。リストを配信されたプリンタは、リストに示されているプリンタの中から適当なプリンタを選択し、選択したプリンタからデータを取得する。サーバＳＶは、データを取得したプリンタを、リストに追加する。【選択図】        図１
2005122412.tif 000002
【特許請求の範囲】
【請求項１】
ダウンロードすべき所定のデータを保持するデータ保持機器と、ネットワークを介して通信可能なネットワーク機器であって、
少なくとも１以上の前記データ保持機器のアドレスを示すリストを、前記いずれかのデータ保持機器から取得するリスト取得部と、
前記リスト取得部が取得したリストのアドレスの１つを所定の規則に基づいて選択する選択部と、
前記選択部が選択した前記アドレスに対応する前記データ保持機器から、前記データをダウンロードするデータ取得部と
を備えたネットワーク機器。
【請求項２】
請求項１記載のネットワーク機器であって、
前記ダウンロードに失敗した場合、前記リストで示されるアドレスに基づいて、前記データ取得部が前記ダウンロードに失敗したデータ保持機器とは異なる前記データ保持機器から、前記データを再度取得する再データ取得部
を備えたネットワーク機器。
【請求項３】
請求項１記載のネットワーク機器であって、
前記選択部は、前記ネットワーク機器から前記データ保持機器までの前記ネットワーク上での距離に基づいて、前記データ保持機器のアドレスを選択するネットワーク機器。
【請求項４】
請求項１記載のネットワーク機器であって、
前記リスト取得部が取得した前記リストへ、前記ネットワーク機器自らのアドレスを追加する追加部と、
前記追加部がアドレスを追加したリストを、前記いずれかのデータ保持機器へ送信するリスト送信部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記リスト及び前記データの少なくとも一方を返信する返信部と
を備えたネットワーク機器。
【請求項５】
請求項１記載のネットワーク機器であって、
前記データ取得部のデータの取得に呼応して、前記いずれかのデータ保持機器へ、自らのアドレスを前記リストへ追加することを要求するリスト追加要求部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記リスト及び前記データの少なくとも一方を返信する送信部と
を備えたネットワーク機器。
【請求項６】
請求項１ないし請求項５のいずれか記載のネットワーク機器であって、
前記データはプログラムであって、
前記ネットワーク機器は、ＲＡＭを備えた印刷装置であり、前記プログラムをダウンロードして書き込み可能なＲＯＭに保存することなく、前記ＲＡＭを用いて実行する
ネットワーク機器。
【請求項７】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する保持部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信する送信部と、
いずれかの前記ネットワーク機器から前記リストを取得する取得部と、
前記リストへ、前記データの送信先の機器のアドレスを追加するアドレス追加部と、
前記アドレス追加部がアドレスを追加したリストを、該リストの取得先の前記ネットワーク機器へ返信する返信部と
を備えたネットワーク機器。
【請求項８】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する記憶部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信するデータ送信部と、
前記データの送信先の機器のアドレスを前記リストへ追加することを、いずれかの前記ネットワーク機器へ要求する要求部と
を備えたネットワーク機器。
【請求項９】
ダウンロードすべき所定のデータを保持するデータ保持機器と、ネットワークを介して通信可能なネットワーク機器によるデータ取得方法であって、
少なくとも１以上の前記データ保持機器のアドレスを示すリストを、前記いずれかのデータ保持機器から取得するリスト取得工程と、
前記リスト取得工程で取得したリストのアドレスの１つを所定の規則に基づいて選択する選択工程と、
前記選択工程で選択した前記アドレスに対応する前記データ保持機器から、前記データをダウンロードするデータ取得工程と
を備えたデータ取得方法。
【請求項１０】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器によるデータ送信方法であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する保持工程と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信する送信工程と、
いずれかの前記ネットワーク機器から前記リストを取得する取得工程と、
前記リストへ、前記データの送信先の機器のアドレスを追加するアドレス追加工程と、
前記アドレス追加工程でアドレスを追加したリストを、該リストの取得先の前記ネットワーク機器へ返信する返信工程と
を備えたデータ送信方法。
【請求項１１】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器によるデータ送信方法であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する記憶工程と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信するデータ送信工程と、
前記データの送信先の機器のアドレスを前記リストへ追加することを、いずれかの前記ネットワーク機器へ要求する要求工程と
を備えたデータ送信方法。
【請求項１２】
ダウンロードすべき所定のデータを保持するデータ保持機器と、ネットワークを介して通信可能なネットワーク機器により実行されるコンピュータプログラムであって、
少なくとも１以上の前記データ保持機器のアドレスを示すリストを、前記いずれかのデータ保持機器から取得するリスト取得機能と、
前記リスト取得機能が取得したリストのアドレスの１つを所定の規則に基づいて選択する選択機能と、
前記選択機能が選択した前記アドレスに対応する前記データ保持機器から、前記データをダウンロードするデータ取得機能と
を備えたコンピュータプログラム。
【請求項１３】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器により実行されるコンピュータプログラムであって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する保持機能と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信する送信機能と、
いずれかの前記ネットワーク機器から前記リストを取得する取得機能と、
前記リストへ、前記データの送信先の機器のアドレスを追加するアドレス追加機能と、
前記アドレス追加機能がアドレスを追加したリストを、該リストの取得先の前記ネットワーク機器へ返信する返信機能と
を備えたコンピュータプログラム。
【請求項１４】
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器により実行されるコンピュータプログラムであって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する記憶機能と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信するデータ送信機能と、
前記データの送信先の機器のアドレスを前記リストへ追加することを、いずれかの前記ネットワーク機器へ要求する要求機能と
を備えたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のデータをネットワーク機器に配信する技術に関する。
【背景技術】
【０００２】
従来から、ネットワークプリンタなどのネットワーク機器は、ファームウェアのアップデートプログラムその他のプログラムをインストールされることで、カスタマイズされたり、多機能化されたり、アップデートされたりしている。これらのプログラムは、ネットワーク機器のメーカなどが提供する所定のサーバからダウンロードするのが一般的である。このようなシステムでは、アクセスの集中などに起因するサーバの負荷を軽減するために、様々な対策がとられている。
【０００３】
例えば、サーバの他にミラーサーバを設けて、サーバとミラーサーバによりプログラムを配信するという対策がとられている。また、特許文献１では、複数のサーバにより、広域分散したネットワーク上で均一なコンテンツを配信する方法が提案されている。複数のサーバを備えることで、サーバの負荷を分散する。
【０００４】
【特許文献１】特開２００２−３１８７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ミラーサーバを備えたり、複数のサーバによりデータを配信したりするように、サーバの数を増やしても、ネットワーク機器やクライアントからのアクセスが所定のサーバに集中すれば、そのサーバに対する負荷は大きくなり、根本的な解決にはならない。
【０００６】
本発明は、上記した問題点を解決するためになされたものであり、所定のデータをネットワーク機器に効率的に分散して配信するデータ配信システム、及びデータ配信システムを構成するネットワーク機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一部を解決する第１のネットワーク機器は、
ダウンロードすべき所定のデータを保持するデータ保持機器と、ネットワークを介して通信可能なネットワーク機器であって、
少なくとも１以上の前記データ保持機器のアドレスを示すリストを、前記いずれかのデータ保持機器から取得するリスト取得部と、
前記リスト取得部が取得したリストのアドレスの１つを所定の規則に基づいて選択する選択部と、
前記選択部が選択した前記アドレスに対応する前記データ保持機器から、前記データをダウンロードするデータ取得部と
を備えることを特徴とする。
【０００８】
本発明のネットワーク機器は、リストにアドレスが登録されている任意のデータ保持機器からデータを取得する。複数のネットワーク機器が存在しても、それぞれが、リストからデータ保持機器を所定の規則に基づいて選択し、選択したデータ保持機器からデータを取得する。よって、複数のネットワーク機器からのアクセスが１つのデータ保持機器に集中する可能性は低く、効率的にデータを配信することが可能となる。
【０００９】
ネットワーク機器やデータ保持機器は、それぞれ、印刷装置などの各種デバイスであっても良いし、コンピュータであっても良い。データ保持機器は、サーバであっても良い。
【００１０】
上記した第１のネットワーク機器は、
前記ダウンロードに失敗した場合、前記リストで示されるアドレスに基づいて、前記データ取得部が前記ダウンロードに失敗したデータ保持機器とは異なる前記データ保持機器から、前記データを再度取得する再データ取得部
を備えるものとしても良い。
【００１１】
再データ取得部により、データの取得に失敗した場合であっても、再度データを取得することができる。再度データを取得する際には、すでにネットワーク機器でリストを保持しているので、再度データ保持機器からリストを取得する必要はない。データ取得の失敗は、データを要求した先のデータ保持機器の電源が入っていない等のデータ保持機器の状態が原因であったり、ネットワークの不良が原因であったりする場合が考えられる。
【００１２】
上記した第１のネットワーク機器において、
前記選択部は、前記ネットワーク機器から前記データ保持機器までの前記ネットワーク上での距離に基づいて、前記データ保持機器のアドレスを選択するものとしても良い。
【００１３】
選択部が、ネットワーク機器からのネットワーク上での距離が短いデータ保持機器のアドレスを選択すれば、ネットワークの負荷を軽減することが可能となる。選択部では、距離が最短のデータ保持機器のアドレスを選択しても良いし、距離が所定基準より短い機器のアドレスを選択しても良い。ネットワーク上での距離は、ネットワーク機器からデータ保持機器までの経路上のルータの数（ホップ数）で判断する。
【００１４】
上記した第１のネットワーク機器は、
前記リスト取得部が取得した前記リストへ、前記ネットワーク機器自らのアドレスを追加する追加部と、
前記追加部がアドレスを追加したリストを、前記いずれかのデータ保持機器へ送信するリスト送信部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記リスト及び前記データの少なくとも一方を返信する返信部と
を備えるものとしても良い。
【００１５】
または、上記した第１のネットワーク機器は、
前記データ取得部のデータの取得に呼応して、前記いずれかのデータ保持機器へ、自らのアドレスを前記リストへ追加することを要求するリスト追加要求部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記リスト及び前記データの少なくとも一方を返信する送信部と
を備えるものとしても良い。
【００１６】
上記した２通りのネットワーク機器のいずれかによれば、データを取得したネットワーク機器自身もデータまたはリストを配信する機器となることが可能であり、データまたはリストを配信する機器が増え、更に効率的にデータを配信することが可能となる。
【００１７】
上記した第１のネットワーク機器において、
前記データはプログラムであって、
前記ネットワーク機器は、ＲＡＭを備えた印刷装置であり、前記プログラムをダウンロードして書き込み可能なＲＯＭに保存することなく、前記ＲＡＭを用いて実行するものとしても良い。
【００１８】
これによれば、プログラムがＲＡＭに保存されるので、電源が消されるとプログラムが消えてしまう。そこで、本発明のように効率的にプログラムを配信されることが特に有用となる。プログラムは、印刷装置をカスタマイズするためのカスタマイズプログラムであっても良い。
【００１９】
上記課題の少なくとも一部を解決する第２のネットワーク機器は、
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する保持部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信する送信部と、
いずれかの前記ネットワーク機器から前記リストを取得する取得部と、
前記リストへ、前記データの送信先の機器のアドレスを追加するアドレス追加部と、
前記アドレス追加部がアドレスを追加したリストを、該リストの取得先の前記ネットワーク機器へ返信する返信部と
を備えるものとしても良い。
【００２０】
本発明のネットワーク機器は、所定の機器にデータを配信することが可能である。更に、アドレス追加部により、データを配信された機器も、データを配信可能な機器としてリストへ追加するので、データを配信する機器を増やして、データ配信の効率を更に向上させることが可能である。
【００２１】
上記課題の少なくとも一部を解決する第３のネットワーク機器は、
ネットワークに接続された所定の機器とネットワークを介して通信可能なネットワーク機器であって、
ダウンロード対象となる所定のデータと、該データを保持する少なくとも１以上の前記機器のアドレスを示すリストを保持する記憶部と、
前記ネットワークに接続された所定の機器からの要求に呼応して、前記データを送信するデータ送信部と、
前記データの送信先の機器のアドレスを前記リストへ追加することを、いずれかの前記ネットワーク機器へ要求する要求部と
を備えるものとしても良い。
【００２２】
本発明のネットワーク機器は、所定の機器にデータを配信することが可能である。更に、要求部により、データを配信された機器も、データを配信可能な機器としてリストへ追加するので、データを配信する機器を増やして、データ配信の効率を更に向上させることが可能である。
【００２３】
本発明は、上述のネットワーク機器としての構成の他、データ取得方法や、データ送信方法の発明として構成することもできる。また、これらを実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。なお、それぞれの態様において、先に示した種々の付加的要素を適用することが可能である。
【００２４】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、ネットワーク機器の動作を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【００２５】
上述した選択部，データ取得部などの機能をプログラムで実現する場合、そのプログラムをリストと同時にセットアッププログラムとして配信するものとしても良い。ネットワーク機器は、セットアッププログラムも取得するリスト取得部のみ備え、セットアッププログラムにより、選択部、データ取得部の機能を実現しても良い。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、以下の項目に分けて説明する。
Ａ．実施例：
Ａ１．全体構成：
Ａ２．サーバＳＶの機能ブロック：
Ａ３．リスト及びネットワークトポロジ：
Ａ４．インクジェットプリンタＩＪの機能ブロック：
Ａ５．処理：
Ａ６．効果：
Ｂ．変形例：
【００２７】
Ａ．実施例：
Ａ１．全体構成：
図１は、実施例としてのネットワーク機器であるインクジェットプリンタＩＪ１．３，ＩＪ１．４，ＩＪ２，２，・・・等（以下、総称してインクジェットプリンタＩＪと呼ぶ）およびサーバＳＶ１．２（以下、単にサーバＳＶと呼ぶ）で構成されるデータ配信システムの概要を示す説明図である。図１では、インクジェットプリンタＩＪやサーバＳＶ以外のパーソナルコンピュータ等の図示は省略した。
【００２８】
データ配信システムは、インクジェットプリンタＩＪに、インクジェットプリンタＩＪをカスタマイズするためのプログラム（以下、カスタマイズプログラムと呼ぶ）やセットアッププログラムを配信するためのシステムである。セットアッププログラムは、カスタマイズプログラムよりサイズの小さいプログラムであり、カスタマイズプログラムを有するプリンタ等のアドレスのリストを含んでいる。インクジェットプリンタＩＪは、セットアッププログラムを起動させることにより、リストで示されているアドレスのうちの１つから、カスタマイズプログラムをダウンロードすることができる。
【００２９】
インクジェットプリンタＩＪには、フラッシュメモリと、カスタマイズプログラムを保存するのに十分な容量のＲＡＭが備えられている。フラッシュメモリは、カスタマイズプログラムを保存するには容量が足りないが、セットアッププログラムを保存するには十分な容量である。
【００３０】
サーバＳＶとインクジェットプリンタＩＪは、ネットワークで接続されている。図１のネットワークでは、複数のＬＡＮがルータ４５ａ〜４５ｄ（以下、総称してルータ４５と呼ぶ）を介して接続されている。ＬＡＮは、サーバＳＶが存在するＬＡＮをＬＡＮ１としてＬＡＮ９まで存在し、それぞれルータ４５のポートｐ１．１，ポートｐ２．１などに接続されている。ポートｐ１．１，ポートｐ２．１などを以下総称してポートｐと呼ぶ。各ＬＡＮにはインクジェットプリンタＩＪが接続されている。
【００３１】
Ａ２．サーバＳＶの機能ブロック：
図２は、サーバＳＶの機能ブロックを示す説明図である。サーバＳＶは、コンピュータに、以下の機能を実現するソフトウェアをインストールすることにより構成する。なお、以下の機能を実現するハードウェアを用いても良いし、サーバＳＶとして専用の機器を用意しても良い。
【００３２】
送受信部１１は、他機器とのデータの送受信を管理する。データ記憶部１４は、カスタマイズプログラムを記憶している。マップ記憶部１５は、ネットワーク構成を示すネットワークトポロジを作成し、記憶している。ネットワークトポロジについて詳しくは後述する。リスト更新部１２は、インクジェットプリンタＩＪからのアドレス追加要求に応じて、リストにアドレスを追加したり、定期的にリストを更新したりする。リストの更新について詳しくは後述する。ソート部１３は、リストのアドレスを所定の基準に従い並べ替える。制御部１０は、各機能の動作を制御する。リスト記憶部１６は、セットアッププログラム１９を記憶している。
【００３３】
セットアッププログラム１９の機能ブロックは、リスト記憶部１６内の枠中に示されている。リスト保持部１９４は、リストを記憶している。選択部１９３は、リスト中の任意のアドレスを選択する。カスタマイズプログラム取得部１９１は、選択部１９３が選択したアドレスからカスタマイズプログラムを取得し、インクジェットプリンタＩＪの所定のアドレスにカスタマイズプログラムを記憶させる。アドレス追加部１９５は、カスタマイズプログラムを取得したら、自身のアドレスをリストに追加することを要求する。カスタマイズプログラム送信部１９２は、インクジェットプリンタＩＪからカスタマイズプログラムの送信要求をされた場合に、カスタマイズプログラムを送信する。セットアッププログラム制御部１９７は、セットアッププログラムの各機能の動作を制御する。
【００３４】
Ａ３．リスト及びネットワークトポロジ：
図３は、リスト保持部１９４が記憶しているリストを示す説明図である。リストには、カスタマイズプログラムの所在がＵＲＬ形式で示される。図３の例の所在は、上から順に、インクジェットプリンタＩＪ１．４，インクジェットプリンタＩＪ１．３，インクジェットプリンタＩＪ３．２，そして、サーバＳＶの所在を意味している。
【００３５】
図４は、ネットワーク構成を表わすネットワークトポロジを示す説明図である。ネットワークトポロジは、ソート部１３が、リストのアドレスを並べ替える際に用いるデータであり、マップ記憶部１５が以下のようにして作成する。以下、図１を適宜参照しながら説明する。
【００３６】
図４のようなネットワークトポロジを作成するには、ＩＰプロトコルやＩＣＭＰプロトコルにおける、経路を調べるためのコマンドであるｔｒａｃｅｒｏｕｔｅ（ｔｒａｃｅｒｔ）を利用する。引数として任意の機器のＩＰアドレスを指定してｔｒａｃｅｒｏｕｔｅコマンドを実行すると、コマンドを実行した機器から、引数として指定された機器に至るまでの経路上に存在するルータ４５のＩＰアドレスの一覧が得られる。一覧には、最後の行に、引数として指定された機器のＩＰアドレスも表示される。
【００３７】
例えば、サーバＳＶからインクジェットプリンタＩＪ２．２までの経路を調べるために、サーバＳＶにおいて、引数としてインクジェットプリンタＩＪ２．２を指定して、ｔｒａｃｅｒｏｕｔｅコマンドを実行すると、結果として
ルータ４５ａのＩＰアドレス（ポートｐ１．１のＩＰアドレス）・・・（１）
インクジェットプリンタＩＪ２．２のＩＰアドレス・・・（２）
というＩＰアドレスの一覧が得られる。一覧から、サーバＳＶからインクジェットプリンタＩＪ２．２までの経路上には、ルータ４５が一台存在し、そのＩＰアドレスは「ルータ４５ａのＩＰアドレス」であることが分かる。ところで、ルータ４５は、ＬＡＮが接続するポートｐ毎にＩＰアドレスを有している。サーバＳＶからインクジェットプリンタＩＪ２．２に至るまでの経路において、コマンドを実行した機器側、つまりサーバＳＶ側にあるルータ４５ａのポートｐはポートｐ１．１であるから、一覧に表示された「ルータ４５ａのＩＰアドレス」は、ポートｐ１．１のＩＰアドレスである。
【００３８】
同様に、サーバＳＶにおいて、引数としてインクジェットプリンタＩＪ３．２を指定して、ｔｒａｃｅｒｏｕｔｅコマンドを実行すると、
ポートｐ１．１のＩＰアドレス・・・（３）
インクジェットプリンタＩＪ３．２のＩＰアドレス・・・（４）
という結果が得られる。（１）と（３）が同じであるから、インクジェットプリンタＩＪ２．２とインクジェットプリンタＩＪ３．２が属するＬＡＮは、同じルータ４５ａに接続していることがわかる。また、ＬＡＮ１からインクジェットプリンタＩＪ２．２やインクジェットプリンタＩＪ３．２が属するＬＡＮまでのホップ数は１である。
【００３９】
逆に、インクジェットプリンタＩＪ２．２において、引数としてサーバＳＶを指定してｔｒａｃｅｒｏｕｔｅコマンドを実行すると、
ポートｐ２．１のＩＰアドレス・・・（５）
サーバＳＶのＩＰアドレス・・・（６）
という結果が得られる。また、インクジェットプリンタＩＪ３．２において、引数としてサーバＳＶを指定してｔｒａｃｅｒｏｕｔｅコマンドを実行すると、
ポートｐ３．１のＩＰアドレス・・・（７）
サーバＳＶのＩＰアドレス・・・（８）
という結果が得られる。一覧の１行目のＩＰアドレスが異なるので、インクジェットプリンタＩＪ２．２が属するＬＡＮと、インクジェットプリンタＩＪ３．２が属するＬＡＮがルータ４５ａに接続するポートｐは異なる、つまり、インクジェットプリンタＩＪ２．２とインクジェットプリンタＩＪ３．２は異なるＬＡＮに属していることが分かる。そこで、インクジェットプリンタＩＪ２．２が属するＬＡＮをＬＡＮ２、インクジェットプリンタＩＪ３．２が属するＬＡＮをＬＡＮ３とする。ＬＡＮ２側のルータ４５ａのポートｐのＩＰアドレスは（５）で、ＬＡＮ３側のルータ４５ａのポートのＩＰアドレスは（７）である。それらのことを模式化して示すと図４のようになる。
【００４０】
ポートｐ２．１のＩＰアドレスと、インクジェットプリンタＩＪ２．２など、ＬＡＮ２に属するインクジェットプリンタＩＪのＩＰアドレスから、ＬＡＮ２のネットワークアドレスを類推できる。図４のＬＡＮ２の欄には、実際にＬＡＮ２に属するインクジェットプリンタＩＪ（インクジェットプリンタＩＪ２．２など）のＩＰアドレスを記憶しておいても良いし、ＬＡＮ２のネットワークアドレスを記憶しておいても良い。ＬＡＮ３においても同様である。また、図４のｐ１．１，ｐ２．１などのポートｐの欄には、ポートｐのＩＰアドレスを記憶する。
【００４１】
同様にして、サーバＳＶからインクジェットプリンタＩＪまで、インクジェットプリンタＩＪからサーバＳＶまでの経路を調べることにより、サーバＳＶにおいてネットワークトポロジを作成可能である。なお、インクジェットプリンタＩＪからサーバＳＶまでの経路は、サーバＳＶのマップ記憶部からの要求に応じてインクジェットプリンタＩＪが調べ、サーバＳＶへ送信する。
【００４２】
Ａ４．インクジェットプリンタＩＪの機能ブロック：
図５はインクジェットプリンタＩＪの機能ブロックを示す説明図である。インクジェットプリンタＩＪには、内部にＣＰＵ、メモリを有する制御ユニットが備えられており、図示する各機能ブロックは、この制御ユニットが実施するソフトウェアのモジュールとして構成されている。各機能ブロックをハードウェア的に構築しても構わない。
【００４３】
図では、インクジェットプリンタＩＪが元来有している機能と、先に説明したデータ配信システムを実現するための追加機能とを分けて示した。元来有している機能としては、次の各機能ブロックが挙げられる。ＴＣＰ／ＩＰ制御部２１は、ＴＣＰ／ＩＰを解釈して、ネットワークを介して外部との通信を行う。ＬＰＲｄ通信部２３は、印刷用のプロトコルであるＬＰＲを解釈する。プリントエンジン２４は、プリンタの各ハードウェアを制御して、印刷ジョブを実行する。パネル制御部２５は、ディスプレイを制御して、プリンタの動作状況の表示、ユーザによる設定内容の受け付けを行う。
【００４４】
印刷ジョブは、図中に破線で示す経路で、インクジェットプリンタＩＪに受け渡され、実行される。ユーザが印刷命令を出すと、クライアントＣＬに備えられたアプリケーション４０は、ＬＰＲ４１およびＴＣＰ／ＩＰ４２を通じて、印刷用のプロトコルＬＰＲに従って生成された印刷ジョブをインクジェットプリンタＩＪに送信する。インクジェットプリンタＩＪでは、ＴＣＰ／ＩＰ制御部２１およびＬＰＲｄ通信部２３がこの印刷ジョブを受け取り、プロトコルを解釈した上で、印刷用のデータをプリントエンジン２４に受け渡す。
【００４５】
このようなインクジェットプリンタＩＪの拡張スロットに、追加機能を実現するためのプログラムを記録したネットワークボード３０を差し込むことにより、データ配信システム用の各追加機能は実現される。以下に示す追加機能用の各機能ブロックは、データ配信システムを制御するための制御部３０４の制御下で動作する。
【００４６】
送受信部３０２は、サーバＳＶや他のインクジェットプリンタＩＪとのデータの送受信を管理する。セットアッププログラム取得部３０５は、インクジェットプリンタＩＪの電源が入れられたら、サーバＳＶにセットアッププログラム１９を要求する。セットアッププログラム記憶部３０６は、セットアッププログラム１９を記憶するＲＯＭである。カスタマイズプログラム記憶部２６は、セットアッププログラム１９のカスタマイズプログラム取得部３０５が取得したカスタマイズプログラムを記憶するＲＡＭである。
【００４７】
Ａ５．処理：
図６は、データ配信処理を示すフローチャートである。図６のデータ配信処理は、インクジェットプリンタＩＪの電源が入れられると実行される。右側は、サーバＳＶのフローチャートであり、中央は電源が入れられたインクジェットプリンタＩＪ（以下、要求インクジェットプリンタＩＪとよぶ）のフローチャートである。左側は、セットアッププログラム１９とカスタマイズプログラムをすでに保持しており、リストにアドレスが登録されているインクジェットプリンタＩＪ（以下、応答インクジェットプリンタＩＪとよぶ）のフローチャートである。
【００４８】
要求インクジェットプリンタＩＪは、電源を入れられると、サーバＳＶにセットアッププログラム１９を要求する（ステップＳ１０）。サーバＳＶは、要求インクジェットプリンタＩＪのＩＰアドレスと共に、セットアッププログラム１９の要求を受信する（ステップＳ１２）。要求を受信したサーバＳＶは、リスト保持部１７が保持するリストを、要求インクジェットプリンタＩＪのＩＰアドレスに従いソートする（ステップＳ１４）。ソートは、リストのアドレスが、要求インクジェットプリンタＩＪからネットワークにおける距離が近い順になるよう図４のネットワークトポロジを用いて行なう。ネットワークにおける距離が近いとは、ここでは、要求インクジェットプリンタＩＪから応答インクジェットプリンタＩＪまでのホップ数が少ないことをいう。
【００４９】
以下、ソートについて詳細に説明する。例えば、要求インクジェットプリンタＩＪが、インクジェットプリンタＩＪ１．３である場合について説明する。ソート部１３は、まず、インクジェットプリンタＩＪ１．３のＩＰアドレスと、ネットワークトポロジから、インクジェットプリンタＩＪ１がＬＡＮ１に属していると判断する。ネットワークトポロジから、ＬＡＮ１からは、ＬＡＮ１がホップ数０、ＬＡＮ２〜ＬＡＮ４がホップ数１、ＬＡＮ５〜ＬＡＮ９がホップ数２であることがわかる。そこで、リストのアドレスを、ホップ数の小さいＬＡＮに属するアドレス順になるよう並べ替える。
【００５０】
並べ替えた後に、サーバＳＶのＩＰアドレスはリストの最後にする。要求インクジェットプリンタＩＪは、リストの１番上のアドレスから順に選択して、カスタマイズプログラムを要求するので、リストの最後にすることで、サーバＳＶへのアクセスを減らすことができる。
【００５１】
なお、ソートの際、ホップ数が小さいＬＡＮ（例えばホップ数が０と１のＬＡＮ）のみを調べ、ホップ数が小さいＬＡＮのアドレスが先になるようリストを並べ替えたら、その他のアドレスは適当な順番にしておいても良い。ホップ数が大きいＬＡＮ（例えばホップ数が２以上のＬＡＮ）にまで、カスタマイズプログラムを要求するような状況は稀であるからである。
【００５２】
別の例として、要求インクジェットプリンタが、図１のインクジェットプリンタＩＪ８．２である場合、ネットワークトポロジから、ＬＡＮ８からは、ＬＡＮ８がホップ数０、ＬＡＮ３とＬＡＮ９がホップ数１、ＬＡＮ１とＬＡＮ２とＬＡＮ４とＬＡＮ７がホップ数２、ＬＡＮ５とＬＡＮ６がホップ数３であることがわかる。そこで、リストのアドレスを、ホップ数の小さいＬＡＮに属するアドレス順になるよう並べ替える。
【００５３】
そして、ソートしたリストを含むセットアッププログラム１９を、要求したインクジェットプリンタＩＪに送信する（ステップＳ１６）。
【００５４】
インクジェットプリンタＩＪは、セットアッププログラム１９を受信すると（ステップＳ１８）、セットアッププログラム１９をセットアッププログラム記憶部３０６に記憶する。そして、セットアッププログラム１９の選択部１９３により、リストの１番上のアドレスを選択し（ステップＳ２０）、カスタマイズプログラム取得部１９１により、選択したアドレスが割り当てられている応答インクジェットプリンタＩＪに、カスタマイズプログラムを要求する（ステップＳ２２）。
【００５５】
応答インクジェットプリンタＩＪは、要求を、要求インクジェットプリンタＩＪのアドレスとともに受信すると（ステップＳ２３）、受信したアドレスにカスタマイズプログラムを送信する（ステップＳ２４）。送信は、セットアッププログラム１９のカスタマイズプログラム送信部１９２の機能により実現される。
【００５６】
要求インクジェットプリンタＩＪは、セットアッププログラム１９のカスタマイズプログラム取得部１９１により、カスタマイズプログラムを受信し（ステップＳ２５）、カスタマイズプログラム記憶部２６に記憶する。データ要求から所定時間内にカスタマイズプログラムを受信できなかった場合など、カスタマイズプログラムの受信に失敗した場合は（ステップＳ２６）、リストの上から２番目のアドレス（先に選択したアドレスの次のアドレス）を選択して（ステップＳ２０）、以下の処理を繰り返す。
【００５７】
カスタマイズプログラムの受信に成功したら（ステップＳ２６）、要求インクジェットプリンタＩＪは、リストに自身のアドレスを追加して、リストをサーバＳＶへ送信することで、サーバＳＶが保持するリストに自身のアドレスを登録するよう要求する（ステップＳ２８）。追加要求は、セットアッププログラム１９のアドレス追加部１９５により実現する。
【００５８】
サーバＳＶは、アドレスの追加要求を要求インクジェットプリンタＩＪのアドレスとともに受信し（ステップＳ３６）、受信したアドレスをリスト保持部１９４が保持するリストに追加する（ステップＳ３８）。追加する機能は、リスト更新部１２が実現する。
【００５９】
インクジェットプリンタＩＪは、カスタマイズプログラムをＲＡＭに記憶するので、電源が消されたら、カスタマイズプログラムを消去してしまうが、一般に夜中になればインクジェットプリンタＩＪの電源は消されることが多い。そこで、カスタマイズプログラムを保持するものとしてリストに登録したとしても、翌日になれば、カスタマイズプログラムが消去されている可能性が高い。よって、サーバＳＶのリスト更新部１６は、夜の１２時にリスト中のインクジェットプリンタＩＪのアドレスを消去する。ただし、カスタマイズプログラムがＲＯＭに記憶されるなど、消去されることがない場合は、アドレスを消去する必要はない。
【００６０】
Ａ６．効果：
本実施例によれば、カスタマイズプログラムをサーバＳＶのみからではなく、インクジェットプリンタＩＪからインクジェットプリンタＩＪに配信することができる。よって、効率的にカスタマイズプログラムを配信することが可能である。もちろん、サーバＳＶのデータ記憶部１４に記憶されているカスタマイズプログラムをインクジェットプリンタＩＪに配信しても良い。
【００６１】
実施例では、サーバＳＶのアドレスをリストの最後にしたが、最後にする必然性はない。また、要求インクジェットプリンタＩＪは、サーバＳＶが保持するリストに自身のアドレスを登録するよう要求するだけで、リストにアドレスを登録可能であるものとしても良い。その場合、サーバＳＶへリストを送信する必要はない。
【００６２】
Ｂ．変形例：
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において、更に様々な形態で実施しうることは勿論である。
【００６３】
例えば、リストのソートは、要求インクジェットプリンタＩＪがセットアッププログラム１９を受信した後、要求インクジェットプリンタＩＪにおいて行なっても良い。その場合、セットアッププログラム１９の選択部１９３の機能により、ソートを実行する。これによれば、サーバＳＶでリストをソートする必要が無いので、サーバＳＶの処理の負荷を小さくすることができる。
【００６４】
また、要求インクジェットプリンタＩＪが、カスタマイズプログラムの受信に成功したら、カスタマイズプログラムを送信した応答インクジェットプリンタＩＪが、サーバＳＶに要求インクジェットプリンタＩＪのアドレスを追加するよう要求しても良い。更に、要求インクジェットプリンタＩＪのアドレスのリストへの追加は、応答インクジェットプリンタＩＪが、サーバＳＶからリストを取得し、リストへアドレスを追加して、サーバＳＶへリストを送信することで実現しても良い。いずれの場合にも、セットアッププログラム１９のアドレス追加部１９５が、この機能を実現する。
【００６５】
要求インクジェットプリンタＩＪは、所定のインクジェットプリンタＩＪにセットアッププログラム１９を要求するよう設定されていても良い。つまり、図６の右側のフローチャートは、所定のインクジェットプリンタＩＪの処理であっても良い。そのようにすれば、サーバＳＶの処理負担が更に小さくなる。
【００６６】
また、実施例では、プリンタはインクジェットプリンタＩＪであるものとして説明したが、レーザプリンタであっても良い。レーザプリンタとしては、ＲＯＭの容量が大きく、カスタマイズプログラムもＲＯＭに保存できるものであっても良い。前述したサーバＳＶの代替機能を果たす所定のインクジェットプリンタＩＪは、このようなレーザプリンタであっても良い。レーザプリンタのＲＯＭからは、セットアッププログラム１９やカスタマイズプログラムが消去されることがないので、システムの信頼性が向上する。
【００６７】
サーバＳＶは、アドレスの追加要求を待たず、セットアッププログラム１９を送信したら、セットアッププログラム１９の送信先のプリンタのアドレスをリストに追加しても良い。その場合、インクジェットプリンタＩＪは、アドレスの追加要求をしたりリストを送信したりする必要もない。サーバＳＶにおいて、リストにアドレスを追加する処理は、セットアッププログラム１９のアドレス追加部１９５が行なっても良い。
【００６８】
リストはサーバＳＶ以外のインクジェットプリンタＩＪも保持している。よって、アドレスの追加要求などは、任意のインクジェットプリンタＩＪに対して行なっても良い。リストにアドレスを追加する処理は、セットアッププログラム１９のアドレス追加部１９５が行なっても良い。
【００６９】
また、サーバＳＶのアドレスと、所定のＬＡＮ内にあるインクジェットプリンタＩＪのアドレスだけをリストにのせ、そのＬＡＮの中のインクジェットプリンタＩＪには、そのリストを配信するようにしても良い。この場合、ネットワークトポロジの作成を省略することができ、所定のＬＡＮの中の１台のインクジェットプリンタＩＪにカスタマイズプログラムをダウンロードすれば、そのＬＡＮの中でカスタマイズプログラムの配信が行なわれる。
【００７０】
インクジェットプリンタＩＪが、電源を入れた際に、リストを含むセットアッププログラム１９をセットアッププログラム記憶部３６に既に記憶している場合は、セットアッププログラム１９を要求し、受信する処理は省略しても良い。
【図面の簡単な説明】
【００７１】
【図１】実施例としてのデータ配信システムの概要を示す説明図である。
【図２】サーバＳＶの機能ブロックを示す説明図である。
【図３】リストを示す説明図である。
【図４】ネットワーク構成を表わすネットワークトポロジを示す説明図である。
【図５】インクジェットプリンタＩＪの機能ブロックを示す説明図である。
【図６】データ配信処理を示すフローチャートである。
【符号の説明】
【００７２】
１０...制御部
１１...送受信部
１２...リスト更新部
１３...ソート部
１４...データ記憶部
１５...マップ記憶部
１６...リスト記憶部
１９...セットアッププログラム
２１...ＴＣＰ／ＩＰ制御部
２３...ＬＰＲｄ通信部
２４...プリントエンジン
２５...パネル制御部
２６...カスタマイズプログラム記憶部
３０...ネットワークボード
４０...アプリケーション
４１...ＬＰＲ
４２...ＴＣＰ／ＩＰ
１９１...カスタマイズプログラム取得部
１９２...カスタマイズプログラム送信部
１９３...選択部
１９４...リスト保持部
１９５...アドレス追加部
１９７...セットアッププログラム制御部
３０２...送受信部
３０４...制御部
３０５...セットアッププログラム取得部
３０６...セットアッププログラム記憶部
４５，４５ａ〜４５ｄ...ルータ
ＣＬ...クライアント
ＩＪ，ＩＪ１．１〜ＩＪ９．２...インクジェットプリンタ
ＳＶ...サーバ
ｐ，ｐ１．１〜ｐ９．１...ポート
【図１】
2005122412.tif 000003
【図２】
2005122412.tif 000004
【図３】
2005122412.tif 000005
【図４】
2005122412.tif 000006
【図５】
2005122412.tif 000007
【図６】
2005122412.tif 000008