(57)【特許請求の範囲】
【請求項１】
管理対象プログラムを更新するための更新プログラムを記憶する記憶手段と，
前記管理対象プログラムがインストールされているクライアント毎に更新勧告タイミングが分散するように前記更新勧告タイミングを設定する設定手段と，
前記更新勧告タイミングにおいて対応する前記クライアントに更新勧告情報を送信する更新勧告手段と，
前記更新勧告情報を受信するクライアントに前記更新プログラムを送信するプログラム送信手段と，を備え，
前記設定手段は，前記クライアントにインストールされている管理対象プログラムのバージョンと前記更新プログラムのバージョンとの差を前記クライアントから受信するクライアント情報に基づいて特定し，前記差に基づいて前記更新勧告タイミングを設定することを特徴とするプログラム更新管理サーバー。
【請求項２】
管理対象プログラムを更新するための更新プログラムを記憶する記憶手段と，
前記管理対象プログラムがインストールされているクライアント毎に更新タイミングが分散するように前記更新タイミングを設定する設定手段と，
前記クライアントに前記更新タイミングを含む更新勧告情報を送信する更新勧告手段と，
前記更新勧告情報を受信するクライアントに前記更新プログラムを送信するプログラム送信手段と，を備え，
前記設定手段は，前記クライアントにインストールされている管理対象プログラムのバージョンと前記更新プログラムのバージョンとの差を前記クライアントから受信するクライアント情報に基づいて特定し，前記差に基づいて前記更新タイミングを設定することを特徴とするプログラム更新管理サーバー。
【請求項３】
前記設定手段は，前記クライアントにインストールされている管理対象プログラムの使用頻度を前記クライアントから受信するステータス情報に基づいて特定し，前記使用頻度に応じて前記更新勧告タイミングを設定する，
請求項１に記載のプログラム更新管理サーバー。
【請求項４】
前記設定手段は，前記クライアントにインストールされている管理対象プログラムの使用頻度を前記クライアントから受信するステータス情報に基づいて特定し，前記使用頻度に応じて前記更新タイミングを設定する，
請求項２に記載のプログラム更新管理サーバー。
【請求項５】
前記プログラム送信手段は，前記クライアントから受信するプログラム要求に応じて前記更新プログラムを送信する，
請求項１から４のいずれか一項に記載のプログラム更新管理サーバー。
【請求項６】
管理対象プログラムを更新するための更新プログラムを記憶し，
前記管理対象プログラムがインストールされているクライアント毎に更新勧告タイミングが分散するように前記更新勧告タイミングを設定し，
前記更新勧告タイミングにおいて対応する前記クライアントに更新勧告情報を送信し，
前記更新勧告情報を受信するクライアントに前記更新プログラムを送信し，
前記更新勧告タイミングを設定する場合は，前記クライアントにインストールされている管理対象プログラムのバージョンと前記更新プログラムのバージョンとの差を前記クライアントから受信するクライアント情報に基づいて特定し，前記差に基づいて行うプログラム更新管理方法。
【請求項７】
管理対象プログラムを更新するための更新プログラムを記憶し，
前記管理対象プログラムがインストールされているクライアント毎に更新タイミングが分散するように前記更新タイミングを設定し，
前記クライアントに前記更新タイミングを含む更新勧告情報を送信し，
前記更新タイミングを設定する場合は，前記クライアントにインストールされている管理対象プログラムのバージョンと前記更新プログラムのバージョンとの差を前記クライアントから受信するクライアント情報に基づいて特定し，前記差に基づいて行い，
前記更新勧告情報を受信するクライアントに前記更新プログラムを送信するプログラム更新管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，プログラム更新管理サーバーおよびプログラム更新管理方法に関し，特に，電子機器で実行されるコンピュータープログラムを自動的に更新する技術に関する。
【背景技術】
【０００２】
従来，サーバーが提供する更新情報に対するポーリングによってコンピュータープログラム（以下，単にプログラムという。）の自動更新を実現する技術が知られている。例えば，ＰＣ（Personal Computer）にインストールされているプログラムの終了時や，予め設定された日時が到来した時に，ＰＣがネットワークを介してサーバーにアクセスし，ＰＣにインストールされているプログラムの最新のバージョンを特定可能な情報を取得する。ＰＣにインストールされているプログラムが最新でない場合には，ＰＣは最新のプログラムをサーバーから自動的にダウンロードする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２４３９１５号公報
【特許文献２】特開２００７−２１３３７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし，ポーリングの周期が長く設定されている場合には，更新するタイミングが遅れるという問題がある。一方，ポーリングの周期を短く設定すると，最新プログラムがダウンロード可能になった直後の短期間に多数のクライアントへのダウンロードが集中し，ネットワークトラフィックやサーバーの負荷が増大するという問題がある。
本発明は，この問題を解決するために創作されたもので，適切なタイミングで効率よくプログラムを自動的に更新することを目的とする。
【課題を解決するための手段】
【０００５】
（１）上記目的を達成するためのプログラム更新管理サーバーは，管理対象プログラムを更新するための更新プログラムを記憶する記憶手段と，前記管理対象プログラムがインストールされているクライアント毎に更新勧告タイミングが分散するように前記更新勧告タイミングを設定する設定手段と，前記更新勧告タイミングにおいて対応する前記クライアントに更新勧告情報を送信する更新勧告手段と，前記更新勧告情報を受信するクライアントに前記更新プログラムを送信するプログラム送信手段と，を備える。
【０００６】
本発明によると，プログラム更新管理サーバーが設定する更新勧告タイミングに応じて更新プログラムがクライアントに送信されるため，適切なタイミングで効率よくクライアントのプログラムを自動的に更新することが可能になる。
【０００７】
（２）上記目的を達成するためのプログラム更新管理サーバーにおいて，前記設定手段は，前記クライアントにインストールされている管理対象プログラムの使用頻度を前記クライアントから受信するステータス情報に基づいて特定し，前記使用頻度に応じて前記更新勧告タイミングを設定してもよい。
本発明によると，プログラムの使用頻度に応じて更新プログラムをクライアントに送信するタイミングを調整することができる。
【０００８】
（３）上記目的を達成するためのプログラム更新管理サーバーにおいて，前記設定手段は，前記クライアントにインストールされている管理対象プログラムのバージョンと前記更新プログラムのバージョンとの差を前記クライアントから受信するクライアント情報に基づいて特定し，前記差に基づいて前記更新勧告タイミングを設定してもよい。
本発明によると，クライアントにインストールされているプログラムのバージョンに応じて更新プログラムをクライアントに送信するタイミングを調整することができる。
【０００９】
（４）上記目的を達成するためのプログラム更新管理サーバーにおいて，前記プログラム送信手段は，前記クライアントから受信するプログラム要求に応じて前記更新プログラムを送信してもよい。
本発明によると，クライアントが，ビジー状態等，他の処理を実行することが望ましくない状態にあるタイミングを避けて更新プログラムを送信することができる。
【００１０】
なお，請求項に記載された各手段の機能は，構成自体で機能が特定されるハードウェア資源，プログラムにより機能が特定されるハードウェア資源，又はそれらの組み合わせにより実現される。また，これら各手段の機能は，各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。例えば，請求項に記載されたサーバーとは，１台のコンピューターで実現されているものに限られず，各手段をそれぞれ分担する複数のコンピューターの組み合わせによる群としてサーバーを実現しても良い。さらに，本発明は方法としても，上記した機能をサーバーおよびプリンターに実現させるコンピュータープログラムとしても，そのプログラムの記録媒体としても成立する。むろん，そのコンピュータープログラムの記録媒体は，磁気記録媒体であってもよいし光磁気記録媒体であってもよいし，今後開発されるいかなる記録媒体であってもよい。
【図面の簡単な説明】
【００１１】
【図１】図１Ａはプログラム更新管理サーバーとクライアントを示すブロック図，図１Ｂはクライアントデータベースを示すデータ構造図である。
【図２】セットアップシーケンスを示すシーケンス図である。
【図３】更新勧告タイミングの設定の流れを示すシーケンス図である。
【図４】更新勧告タイミングの設定の流れを示すシーケンス図である。
【図５】更新プログラムの送信の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下，本発明の実施の形態を添付図面を参照しながら説明する。尚，各図において対応する構成要素には同一の符号が付され，重複する説明は省略される。
１．構成
図１Ａは本発明の一実施例としてのプログラム更新管理サーバー１を示すブロック図である。プログラム更新管理サーバー１は複数のクライアント２，３，４のそれぞれにインストールされている特定のプログラム（管理対象プログラム）の更新を管理するサーバーコンピューターである。
【００１３】
プログラム更新管理サーバー１は，ハードディスク等の不揮発性記憶媒体を備える記憶部１１と，データ通信回線に接続された通信部１３と，図示しないＣＰＵ（Central Processing Unit），ＲＡＭ（Random Access Memory）および入出力インターフェースを備える制御部１２とを備えている。制御部１２は記憶部１１にインストールされているプログラム更新管理プログラムを実行することによって，記憶部１１の所定領域に更新プログラムやクライアント情報を記憶したり，クライアント情報に基づいて更新勧告タイミングを設定したり，インターネットを介して更新勧告情報や更新プログラムをクライアント２に送信する。記憶部１１の所定領域には，図１Ｂに示すクライアントデータベース２１１が記憶されている。クライアントデータベース２１１は，クライアント２とＸＭＰＰを介して通信するためのＸＭＰＰ  ＪＩＤとＸＭＰＰパスワード，クライアント２にインストールされている管理対象プログラムの識別情報，クライアント２の電源の状態を示す電源ステータス，クライアント２における最後の印刷日時，クライアント２の更新勧告タイミング等を各クライアント２に固有の識別情報であるクライアントＩＤに関連づけて登録するデータベースである。なお，更新勧告タイミングは日時を示すデータである。
【００１４】
各クライアント２，３，４は，ハードディスク，フラッシュメモリ等の不揮発性記憶媒体を備える記憶部２１と，データ通信回線に接続された通信部２３と，図示しないＣＰＵ，ＲＡＭおよび入出力インターフェースを備える制御部２２とを備えるＰＣ，プリンター，ファクシミリ，携帯電話端末等の電子機器である。制御部２２は，記憶部２１に記憶されている種々のプログラムを実行することによって，記憶部２１や通信部２３や図示しないその他のデバイスを制御する。また制御部２２は記憶部２１にインストールされているインストーラーを実行することによって，インストーラーに対応するプログラムを更新する。以下，クライアント２，３，４はインターネットに接続されたプリンターであって，管理対象プログラムとしての印刷制御プログラムと印刷制御プログラムを更新するためのインストーラーとが記憶部２１に記憶されているものとし，クライアント（プリンター）２の印刷制御プログラムを更新する処理について説明する。
【００１５】
２．セットアップシーケンス
プリンター２にインストールされている印刷制御プログラムはプリンター２がプログラム更新管理サーバー１に登録されることによって，プログラム更新管理サーバー１から更新プログラムが提供される管理対象プログラムとなる。図２はプログラム更新管理サーバー１にプリンター２を登録するためのセットアップシーケンスを示す図である。
【００１６】
はじめに，プリンター２は，プリンター２に対応する登録要求として，プリンター２の機種ＩＤとシリアル番号を，登録要求に対応するプログラム更新管理サーバー１のＵＲＬにＨＴＴＰを用いて送信する（Ｓ１００）。この登録要求は，プリンター２のセットアップ中に自動的に起動されてもよいし，プリンター２に備えられる図示しない操作パネルをユーザーが操作することによって起動されても良いし，プリンター２に接続されたＰＣをユーザーが操作することによって起動されても良い。
【００１７】
登録要求を受信したプログラム更新管理サーバー１は，登録要求に基づいてプリンター２をプログラム更新管理サーバー１に登録する（Ｓ１０２）。具体的には，登録要求に含まれているプリンター２の機種固有ＩＤおよびシリアル番号に対応するクライアントＩＤとＸＭＰＰ  ＪＩＤとＸＭＰＰログインパスワードとを，既に登録されている他のプリンターの登録情報を参照しながら他のプリンターと重複しないようにプリンター２に割り当てる。続いてプログラム更新管理サーバー１は，ＸＭＰＰ  ＪＩＤとＸＭＰＰログインパスワードをクライアントＩＤに対応付けてクライアントデータベース２１１に登録情報として登録する。クライアントＩＤをプリンター２の機種固有ＩＤおよびシリアル番号に基づいて割り当てることによって機種毎に異なる体系でシリアル番号がプリンターに割り振られている場合であっても，確実にプリンターの機体毎に異なるクライアントＩＤをプリンター２に割り当てることができる。ＸＭＰＰ  ＪＩＤは，プログラム更新管理サーバー１のＸＭＰＰドメイン名とクライアントＩＤとを組み合わせて割り当てればよい。
【００１８】
プリンター２を登録したプログラム更新管理サーバー１は，プリンター２の登録情報を，登録要求の送信元であるプリンター２にＨＴＴＰを用いて送信する（Ｓ１０４）。登録情報には，プリンター２に割り当てられたクライアントＩＤ，ＸＭＰＰ  ＪＩＤ，ＸＭＰＰログインパスワードが含まれている。
【００１９】
登録情報を受信したプリンター２は，プリンター２に割り当てられたクライアントＩＤ，ＸＭＰＰ  ＪＩＤ，ＸＭＰＰログインパスワードを記憶部２１に記憶する（Ｓ１０６）。
【００２０】
３．プログラム更新管理方法
管理対象プログラムの更新処理は，登録されたプリンター２の電源が投入されたときと，プログラム更新管理サーバー１に新しい更新プログラムが記憶されたときとに設定される更新勧告タイミングにおいて実行される。
図３はプリンター２の電源が投入されてから遮断されるまでの処理の流れを示すシーケンス図である。
【００２１】
電源が投入されると，プリンター２はＸＭＰＰ  ＪＩＤおよびＸＭＰＰログインパスワードをクライアント情報としてプログラム更新管理サーバー１に送信する（Ｓ２００）。なおこの処理は，セットアップ直後にも自動的に実行される。
【００２２】
ＸＭＰＰ  ＪＩＤおよびＸＭＰＰログインパスワードを受信したプログラム更新管理サーバー１は，プリンター２とのＸＭＰＰ接続を確立する（Ｓ２０２）。電源投入直後に送信されるＸＭＰＰ  ＪＩＤおよびＸＭＰＰログインパスワードに基づいてＸＭＰＰ接続が確立されるため，ＸＭＰＰ  ＪＩＤおよびＸＭＰＰログインパスワードはプリンター２の電源ステータスを特定する情報となる。
【００２３】
プログラム更新管理サーバー１とのＸＭＰＰ接続を確立したプリンター２は，ＨＴＴＰまたはＸＭＰＰを用いてクライアントＩＤと管理対象プログラムの識別情報をクライアント情報としてプログラム更新管理サーバー１に送信する（Ｓ２０４）。管理対象プログラムの識別情報は，印刷制御プログラムの種別，印刷制御プログラムのバージョン，プリンターのメニュータイプ，プリンターのサブメニュータイプ，プリンターの言語等を一意に特定可能な情報である。なお，ＸＭＰＰ  ＪＩＤ等に基づいてクライアントＩＤを一意に特定可能であれば，プリンター２からクライアントＩＤを送信する必要はないし，プリンターのメニュータイプ，プリンターのサブメニュータイプ，プリンターの言語等が更新勧告タイミングに影響を与える情報でなければ，これらについても送信する必要はない。
【００２４】
プログラム更新管理サーバー１は，クライアントＩＤと管理対象プログラムの識別情報を受信すると，クライアントＩＤに関連づけて管理対象プログラムの識別情報を記憶する（Ｓ２０６）。具体的には，プログラム更新管理サーバー１は，受信した識別情報をプリンター２のクライアントＩＤと関連づけてクライアントデータベース２１１に登録するとともに，電源ステータスをオンに更新する。
【００２５】
次にプログラム更新管理サーバー１は，受信した管理対象プログラムの識別情報に基づいてプリンター２について更新勧告タイミングを設定する（Ｓ２０７）。すなわち，クライアントの電源が投入される度に，電源が投入されたクライアントについて更新勧告タイミングが設定される。プログラム更新管理サーバー１は，プログラム更新管理サーバー１の記憶部１１に記憶されている最新の更新プログラムのバージョンとクライアントデータベース２１１に登録されている他のプリンターの更新勧告タイミングとを参照しながら，登録されている複数のプリンターの更新勧告タイミングが分散するように，プリンター２の更新勧告タイミングを設定する。具体的には，プリンター２の使用頻度が高いほど相対的に早くなり，管理対象である管理対象プログラムのバージョンが旧いほど相対的に早くなるように，プリンター２の更新勧告タイミングが設定される。すなわち，プリンター２の使用頻度が高く，管理対象プログラムのバージョンが旧ければ，設定可能なタイミングの中で早いタイミングを更新勧告タイミングとしてプリンター２について設定し、そうでなければ設定可能なタイミングの中で遅いタイミングを更新勧告タイミングとして設定すればよい。ここで設定可能なタイミングとは、プログラム更新管理サーバー１の負荷とネットワークトラフィックの集中を考慮して一定時間あたりで更新勧告を行うプリンター数の上限として定めた数よりも、一定時間あたりに更新勧告タイミングが設定されるプリンター数の方が少ないタイミングである。使用頻度は最後の印刷日時が遅いほど高いと判定すればよい。また印刷開始または印刷終了の間隔が短いほど使用頻度が高いと判定しても良いし，累積印刷枚数が多いほど使用頻度が高いと判定しても良い。設定された更新勧告タイミングはプリンター２のクライアントＩＤに関連づけてクライアントデータベース２１１に登録される。なお，管理対象プログラムのバージョンが最新であれば，すなわちプリンター２にインストールされている印刷制御プログラムのバージョンとプログラム更新管理サーバー１に記憶されている最新の更新プログラムのバージョンとが一致する場合には，未定を意味する値が更新勧告タイミングとして設定される。更新勧告タイミングの到来がきっかけとなって更新プログラムがプリンター２に送信されるため，更新勧告タイミングを分散させることによって更新プログラムの送信処理が分散し，プログラム更新管理サーバー１の負荷とネットワークトラフィックの集中とを緩和することができる。
【００２６】
プリンター２は，電源が投入されたオンの状態において，印刷開始，印刷終了，印刷設定変更等のイベントが発生すると，発生したイベントに応じたステータス情報をプリンター２のクライアントＩＤとともにプログラム更新管理サーバー１にＨＴＴＰまたはＸＭＰＰを用いて送信する（Ｓ２０８）。例えば印刷が開始されると印刷開始日時を示すステータス情報が送信され，印刷が終了すると印刷終了日時を示すステータス情報が通知され，印刷設定が変更されると変更後の印刷設定を示すステータス情報として通知される。
【００２７】
ステータス情報を受信したプログラム更新管理サーバー１は，ステータス情報をクライアントＩＤに関連づけてクライアントデータベース２１１に記憶する（Ｓ２１０）。このとき，印刷終了に応じたステータス情報を受信した場合，プログラム更新管理サーバー１は印刷終了日時を最後の印刷日時としてクライアントＩＤに関連づけてクライアントデータベース２１１に登録する。印刷終了に応じて印刷枚数や印刷設定を受信する場合には，これらをクライアントデータベース２１１に登録しても良い。プログラム更新管理サーバー１は，最後の印刷日時を記憶しておくことにより，プリンター２の使用頻度を判定することが可能となる。そして，プリンター２の使用頻度は，最後の印刷日時以外にも，印刷開始または印刷終了の間隔や，累積印刷枚数等，ステータス情報から特定可能なプリンター２の使用履歴に基づいた情報を指標とすることもできる。
【００２８】
プリンター２は，電源を遮断する操作を受け付けると，ＸＭＰＰ接続を終了するためのログアウト通知をプログラム更新管理サーバー１に送信する（Ｓ２１２）。
ログアウト通知を受信したプログラム更新管理サーバー１はプリンター２とのＸＭＰＰ接続を終了させる（Ｓ２１４）。このとき，プログラム更新管理サーバー１は，ＸＭＰＰ接続を終了させたプリンター２の電源ステータスをオフに変更してクライアントデータベース２１１を更新する。
【００２９】
図４はプログラム更新管理サーバー１に最新の更新プログラムが記憶されて更新勧告タイミングが設定される動作を示すシーケンス図である。
管理対象プログラムを更新するための更新プログラムは管理者による所定の操作に応じてプログラム更新管理サーバー１の記憶部１１に記憶される（Ｓ３００）。このとき，記憶部１１に記憶される更新プログラムの識別情報が更新プログラムとは別に記憶部１１に記憶される。なお，本実施例において，更新プログラムは，印刷制御プログラムの最新バージョンの圧縮データである。
【００３０】
最新の更新プログラムを記憶したプログラム更新管理サーバー１は，クライアントデータベース２１１を参照し，電源ステータスがオンになっている全てのプリンターについて更新勧告タイミングを設定する（Ｓ３０２）。具体的には，プログラム更新管理サーバー１は，電源ステータスがオンになっている全てのプリンターについてプログラム識別情報と最後の印刷日時とをクライアントデータベース２１１から取得し，更新勧告タイミングを分散させて設定する。具体的には，使用頻度が高いほど相対的に早くなるように，管理対象プログラムのバージョンが旧いほど相対的に早く，電源ステータスがオンになっている全てのプリンターの更新勧告タイミングが設定される。このとき、プログラム更新管理サーバー１の負荷とネットワークトラフィックの集中を考慮して一定時間あたりで更新勧告を行うプリンター数の上限として定めた数を超えないように、更新勧告タイミングが設定される。また，プログラム更新管理サーバー１は，プリンター２から受信するステータス情報に基づいてプリンター２の使用頻度以外の利用形態を特定し，特定した利用形態に応じて更新勧告タイミングを設定することができる。例えば，最新の更新プログラムがカラー印刷の機能変更をもたらす場合，印刷設定がカラーやモノクロよりもカラーでの印刷回数が多いプリンターの更新勧告タイミングを印刷設定がモノクロになっているプリンターやカラーよりもモノクロでの印刷回数が多いプリンターの更新勧告タイミングよりも早くに設定してもよい。また，プログラム更新管理サーバー１は，プリンター２や管理対象プログラムの出荷先（地域，国）に応じて更新勧告タイミングを設定しても良い。プリンター２や管理対象プログラムの出荷先は，管理対象プログラムの識別情報やプリンターの機種ＩＤやプリンターのシリアル番号等によって特定可能である。このように更新勧告タイミングは様々な要素を勘案して設定可能であるが，個々のプリンターの更新勧告タイミングを決定づける要素には，インストールされている管理対象プログラムの種類や印刷設定や電源の状態などの広い意味で個々のプリンターのステータスと，使用履歴とが含まれる。
【００３１】
図５は，プログラム更新管理サーバー１から更新プログラムを送信する流れを示すシーケンス図である。
プログラム更新管理サーバー１は，一定の時間間隔で，更新勧告タイミングが到来したか否かを判定する（Ｓ４００）。具体的には，プログラム更新管理サーバー１は，クライアントデータベース２１１に登録されている最も早い更新勧告タイミングと現在時刻とを一定の時間間隔で比較し，比較結果が一致すると，更新勧告タイミングが到来したと判定する。
【００３２】
更新勧告タイミングが到来すると，プログラム更新管理サーバー１は，更新勧告タイミングが到来したプリンターに対してＸＭＰＰを用いて更新勧告情報を送信する（Ｓ４０１）。更新勧告情報は，これを受信するプリンターが管理対象プログラムを更新する必要が生じたことを特定できる情報であればどのようなものでもよいが，本実施例では，プログラム更新管理サーバー１から更新プログラムをダウンロードするためのＵＲＬが更新勧告情報として送信されるものとする。ＸＭＰＰを用いて更新勧告情報を送信することにより，印刷制御プログラムの更新が必要なことを更新勧告タイミングの到来と同時にプリンター２に通知することができる。なお，更新勧告タイミングが到来したときに，プリンター２が印刷実行中であったりエラー処理中であったりするなどビジー状態である場合には，更新勧告情報を送信せずに更新勧告タイミングを再設定してもよい。プリンター２がビジー状態であるかどうかは，クライアントデータベース２１１に基づいて判定可能である。
【００３３】
プリンター２は，更新勧告情報を受信すると，管理対象プログラムである印刷制御プログラムの更新プログラムをＨＴＴＰを用いてプログラム更新管理サーバー１に要求する（Ｓ４０２）。具体的には，プリンター２は，更新勧告情報として受信したＵＲＬに対しＨＴＴＰを用いてデータ送信を要求する。なお，プリンター２は，更新勧告情報を受信した直後に更新プログラムを要求しても良いし，印刷等の実行中の処理が終了してから更新プログラムを要求しても良い。
【００３４】
プログラム更新管理サーバー１は，更新プログラムを要求されると，要求された更新プログラムをＨＴＴＰを用いて要求元のプリンター２に送信する（Ｓ４０４）。具体的には，印刷制御プログラムの最新バージョンの圧縮データがプリンター２に送信される。
【００３５】
プリンター２は，更新プログラムを受信すると，管理対象プログラムである印刷制御プログラムを更新する（Ｓ４０６）。具体的には例えば，プリンター２のインストーラーが印刷制御プログラムを終了させて記憶部２１から削除し，更新プログラムを展開して記憶部２１に記憶させる。さらにインストーラーは，更新された印刷制御プログラムを実行するための各種の設定を更新した後に，更新された印刷制御プログラムを起動する。なお，更新プログラムは，最新バージョンの印刷制御プログラムと更新前の印刷制御プログラムとの差分であってもよく，この場合，更新前の印刷制御プログラムは記憶部２１から削除されることなく，更新プログラムに基づいて変更される。そして、プリンター２は、更新後の印刷制御プログラムのバージョン情報又は更新完了をクライアントＩＤとともにプログラム更新管理サーバー１に通知する。プログラム更新管理サーバー１は，更新後の印刷制御プログラムのバージョン情報又は更新完了通知を受信すると、クライアントＩＤに関連づけて管理対象プログラムの識別情報を更新する。具体的には、プログラム更新管理サーバー１は、受信したプリンター２のクライアントＩＤと関連づけてクライアントデータベース２１１に登録されている印刷制御プログラムのバージョンを更新された最新のバージョンに更新する。
【００３６】
以上説明した実施例によると，クライアント情報に応じて設定される更新勧告タイミングに応じて更新プログラムがプリンターに送信されるため，適切なタイミングで効率よくプリンターの印刷制御プログラムを自動的に更新することが可能になる。
【００３７】
４．他の実施形態
尚，本発明の技術的範囲は，上述した実施例に限定されるものではなく，以下の１つ又は複数の変形例を組み合わせる等、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば，プログラム更新管理サーバー１は物理的に独立した複数のコンピューターによって構成されてもよいし，単一のコンピューターによって構成されても良い。
また，プログラム更新管理サーバー１に最新の更新プログラムが記憶されたときにのみ更新勧告タイミングを設定しても良い。この場合，クライアント情報を参照せずに，更新勧告タイミングを設定しても良い。クライアント情報を参照せずに更新勧告タイミングを設定する方法としては，例えば一定の時間間隔で更新勧告タイミングを設定すればよい。
また、Ｓ４０３でプリンターが更新プログラムを要求する際に、クライアントＩＤを通知するようにし、プログラム更新管理サーバー１は、クライアントＩＤに基づいて更新勧告タイミングから所定時間が経過するまでに更新プログラムの要求を受信しなかった場合に、エラーが発生していると判断して、更新勧告タイミングを再設定するようにしても良い。同様に、プログラム更新管理サーバー１は、クライアントＩＤに基づいて更新勧告タイミングから所定時間が経過するまでに、更新後の印刷制御プログラムのバージョン情報又は更新完了の通知を受信しなかった場合に、エラーが発生していると判断して、更新勧告タイミングを再設定するようにしても良い。
【００３８】
また，プリンター２とプログラム更新管理サーバー１との通信プロトコルについては，他の通信プロトコルを用いても良い。例えば，更新勧告情報は，ＳＩＰ（Session Initiation Protocol）やＳＩＭＰＬＥ（SIP for Instant Messaging and Presence Leveraging Extensions）といったＳＭＰＰ以外のプッシュ型通信プロトコル（サーバーからクライアントに対する処理を実行するためにクライアントからの要求を必要としないプロトコル）を用いて送信しても良いし，ＨＴＴＰ等のプル型通信プロトコル（サーバーからクライアントに対する処理が必ずクライアントからの要求に応えて実行されるプロトコル）を用いて送信しても良い。プル型通信プロトコルを用いて更新勧告情報を送信する場合には，ポーリングによりデータ通信量が増大するが，更新勧告タイミングの設定により更新プログラムの送信タイミングを分散させることができるため，プログラム更新管理サーバー１の負荷抑制やネットワークトラフィックを抑制する効果は十分期待できる。
【００３９】
また，上記実施例では，更新勧告情報を受信したプリンターからのプログラム要求を受信してから更新プログラムをプログラム更新管理サーバー１から送信する例を説明したが，更新勧告情報とともに更新プログラムをプリンターに送信しても良い。例えば更新勧告タイミングが到来したときにＸＭＰＰを用いてプログラム更新管理サーバー１からプリンター２に更新プログラムを送信しても良い。
また、上記実施例では、プログラム更新管理サーバー１が更新勧告タイミングにプリンターに更新勧告情報を送信し、プリンターが更新勧告情報を受信したら更新プログラムを要求していたが、プログラム更新管理サーバー１は更新勧告タイミングではなく更新タイミングを設定し、設定に応じて順番にプリンターに対し更新タイミングを含む更新勧告情報を送信し、プリンターは更新勧告情報を受信したら更新タイミングが来るまで待ち、更新タイミングが来たらプリンターが更新プログラムを要求するようにしても良い。もちろん、更新勧告タイミングと更新タイミングとの両方を設定し、プログラム更新管理サーバー１は更新勧告タイミングに更新タイミングを含む更新勧告情報を送信するようにしても良い。
【符号の説明】
【００４０】
１…プログラム更新管理サーバー，２，３，４…クライアント（プリンター），１１…記憶部，１２…制御部，１３…通信部，２１…記憶部，２２…制御部，２３…通信部，２１１…クライアントデータベース
【図１】
0005732889.tif 000002
【図２】
0005732889.tif 000003
【図３】
0005732889.tif 000004
【図４】
0005732889.tif 000005
【図５】
0005732889.tif 000006