(57)【要約】【課題】装置の処理能力を低下せずに、最新版のプログラムを自動的に更新することにある。【解決手段】ＣＰＵ使用率２１２は、一定期間における終日の時間帯別ごとの自装置のＣＰＵ使用率を算出して終日の時間帯ごとのＣＰＵ使用率を含む統計情報テーブル２８２を作成し続けている。版数管理部２１２は、プログラムの更新の必要性を版数管理サーバ１から確認すると、現在の時刻を基に統計情報テーブル２８２からＣＰＵ使用率を抽出し、その抽出したＣＰＵ使用率がＣＰＵ使用率の低い時間帯であれば、更新すべき前記プログラムを版数管理サーバ１からダウンロードしプログラムの更新を行う。【選択図】      図１
2006092469.tif 000002
【特許請求の範囲】
【請求項１】
動作プログラムの改訂版をサーバから導入するプログラム更新方式において、
前記改訂版と前記動作プログラムの版数の異同をサーバに問い合わせる第１の確認手段と、
自装置の使用頻度を算出する算出手段と、
前記版数が異なっていた場合、前記使用頻度が前記所定条件を満たしている時間帯に前記改訂版を前記サーバからダウンロードし前記動作プログラムの更新を行う更新手段と、を備えていることを特徴とするプログラム更新方式。
【請求項２】
前記算出手段は、所定の時間帯ごとに算出した前記所定の時間帯ごとの前記使用頻度の統計情報を作成する作成手段と、
前記版数が異なっていた場合に前記作成した統計情報から現在の時刻に対応した時間帯の前記使用頻度を抽出する抽出手段と、を有することを特徴とする請求項１記載のプログラム更新方式。
【請求項３】
前記算出手段は、一定の周期ごとに算出した前記使用頻度が前記所定条件を満たしているかどうかの確認を行う第２の確認手段を有することを特徴とする請求項１記載のプログラム更新方式。
【請求項４】
前記作成手段は、１時間帯の間、一定の時間ごとに算出した前記使用頻度を算出順に格納する第１の格納手段と、
前記１時間帯の間に算出した前記使用頻度の平均を算出し、時間帯の使用頻度ログ情報として算出順に格納する第２の格納手段と、
前記使用頻度ログ情報として算出した前記使用頻度を前記所定の時間帯ごとに全て抽出しその抽出した全ての前記使用頻度の平均を前記所定の時間帯ごとに算出しその算出した前記所定の時間帯ごとの前記使用頻度の平均を前記統計情報として作成し格納する第３の格納手段と、を有することを特徴とする請求項２記載のプログラム更新方式。
【請求項５】
前記更新手段は、前記版数が異なっていた場合に前記使用頻度が前記所定条件を満たしていれば前記改訂版のダウンロード要求を前記サーバに対して行う手段と、
前記ダウンロード要求により前記サーバから前記改訂版をダウンロードすると前記動作プログラムの更新を行う手段と、を有することを特徴とする請求項１，２，３，または４記載のプログラム更新方式。
【請求項６】
装置とサーバとを備えたプログラム更新システムにおいて、
前記装置は、請求項５記載のプログラム更新方式を有し、
前記サーバは、前記装置からの前記動作プログラムの版数の問い合わせにより前記動作プログラムの版数の確認を行いその確認の結果を通知する通知手段と、
前記装置から前記ダウンロード要求を受けると要求のあった前記プログラムを前記装置に対してダウンロードするダウンロード手段と、を有することを特徴とするプログラム更新システム。
【請求項７】
前記所定の時間帯は、一定期間の終日の時間帯であることを特徴とする請求項２，４，または５記載のプログラム更新方式。
【請求項８】
前記所定の時間帯は、一定期間の平日の時間帯または／および休日・祭日の時間帯であることを特徴とする請求項２，４，または５記載のプログラム更新方式。
【請求項９】
前記使用頻度は、直近の時点の使用頻度に対応することを特徴とする請求項１記載のプログラム更新方式。
【請求項１０】
前記使用頻度は、現時点から所定の時間だけ遡った所定の幅の時間帯における使用頻度に対応することを特徴とする請求項１記載のプログラム更新方式。
【請求項１１】
前記使用頻度は、現時点から所定の時間ずつ遡った複数の所定の幅の時間帯における使用頻度の平均に対応することを特徴とする請求項１記載のプログラム更新方式。
【請求項１２】
前記所定の時間は、１日であることを特徴とする請求項１０または１１記載のプログラム更新方式。
【請求項１３】
前記所定の時間は、７日であることを特徴とする請求項１１記載のプログラム更新方式。
【請求項１４】
前記所定条件は、使用頻度が閾値未満であることを特徴とする請求項１から５，７から１３のいずれかに記載のプログラム更新方式。
【請求項１５】
前記所定条件は、前記算出した１日の時間帯の中で一番低い時間帯の使用頻度を示すことを特徴とする請求項１，２，または４，５，７から１３のいずれかに記載のプログラム更新方式。
【請求項１６】
前記使用頻度は、ＣＰＵ使用率であることを特徴とする請求項１から５，７から１５のいずれかに記載のプログラム更新方式。
【請求項１７】
前記使用頻度は、トラヒック量であることを特徴とする請求項１から５，７から１５のいずれかに記載のプログラム更新方式。
【請求項１８】
動作プログラムの改訂版をサーバから導入するプログラム更新方法であって、
前記改訂版と前記動作プログラムの版数の異同をサーバに問い合わせる確認ステップと、
自装置の使用頻度を算出する算出ステップと、
前記版数が異なっていた場合、前記使用頻度が前記所定条件を満たしている時間帯に前記改訂版を前記サーバからダウンロードし前記プログラムの更新を行う更新ステップと、を含むことを特徴とするプログラム更新方法。
【請求項１９】
前記算出ステップは、所定の時間帯ごとに算出した前記所定の時間帯ごとの前記使用頻度の統計情報を作成するステップと、
前記版数が異なっていた場合に前記作成した統計情報から現在の時刻に対応した時間帯の前記使用頻度を抽出するステップと、を含むことを特徴とする請求項１８記載のプログラム更新方法。
【請求項２０】
前記算出ステップは、一定の周期ごとに算出した前記使用頻度が前記使用条件を満たしているかどうかの確認を行うステップを含むことを特徴とする請求項１８記載のプログラム更新方法。
【請求項２１】
前記統計情報を作成するステップは、１時間帯の間、一定の時間ごとに算出した前記使用頻度を算出順に一時エリアに格納するステップと、
前記一時エリアに格納した前記使用頻度の平均を算出しその算出した前記使用頻度の平均を算出順にログデータベースに格納するステップと、
前記ログデータベースに格納した前記使用頻度を前記所定の時間帯ごとに全て抽出しその抽出した全ての前記使用頻度の平均を前記所定の時間帯ごとに算出しその算出した前記所定の時間帯ごとの前記使用頻度の平均を統計情報テーブルに時間帯別に格納するステップと、を含むことを特徴とする請求項１９記載のプログラム更新方法。
【請求項２２】
前記更新ステップは、前記版数が異なっていた場合に前記使用頻度が前記使用条件を満たしていれば前記改訂版のダウンロード要求を前記サーバに対して行うステップと、
前記ダウンロード要求により前記サーバから前記改訂版をダウンロードすると前記動作プログラムの更新を行うステップと、を含むことを特徴とする請求項１８，１９，２０，または２１記載のプログラム更新方法。
【請求項２３】
装置とサーバとを備えたプログラム更新方法であって、
前記装置が、請求項２２記載のプログラム更新方法を含み、
前記サーバが、前記装置からの前記動作プログラムの版数の問い合わせにより前記動作プログラムの版数の確認を行いその確認の結果を通知するステップと、
前記装置から前記ダウンロード要求を受けると要求のあった前記プログラムを前記装置に対してダウンロードするステップと、を含むことを特徴とするプログラム更新方法。
【請求項２４】
前記所定の時間帯は、一定期間の終日の時間帯であることを特徴とする請求項１９，２１，または２２記載のプログラム更新方法。
【請求項２５】
前記所定の時間帯は、一定期間の平日の時間帯または／および休日・祭日の時間帯であることを特徴とする請求項１９，２１，または２２記載のプログラム更新方法。
【請求項２６】
前記使用頻度は、直近の時点の使用頻度に対応することを特徴とする請求項１８記載のプログラム更新方法。
【請求項２７】
前記使用頻度は、現時点から所定の時間だけ遡った所定の幅の時間帯における使用頻度に対応することを特徴とする請求項１８記載のプログラム更新方法。
【請求項２８】
前記使用頻度は、現時点から所定の時間ずつ遡った複数の所定の幅の時間帯における使用頻度の平均に対応することを特徴とする請求項１８記載のプログラム更新方法。
【請求項２９】
前記所定の時間は、１日であることを特徴とする請求項２７または２８記載のプログラム更新方法。
【請求項３０】
前記所定の時間は、７日であることを特徴とする請求項２８記載のプログラム更新方法。
【請求項３１】
前記所定条件は、前記使用頻度が閾値未満であることを特徴とする請求項１８から３０のいずれかに記載のプログラム更新方法。
【請求項３２】
前記所定条件は、前記算出した１日の時間帯の中で一番低い時間帯の使用頻度を示すことを特徴とする請求項１８，１９，２１から３０のいずれかに記載のプログラム更新方法。
【請求項３３】
前記使用頻度は、ＣＰＵ使用率であることを特徴とする請求項１８から請求項３２のいずれかに記載のプログラム更新方法。
【請求項３４】
前記使用頻度は、トラヒック量であることを特徴とする請求項１８から請求項３２のいずれかに記載のプログラム更新方法。
【請求項３５】
サーバから動作プログラムの改訂版を導入してその動作プログラムの更新をコンピュータに実行させる更新プログラムであって、
請求項１８から２２のいずれかに記載のプログラム更新方法を含む処理をコンピュータに実行させる更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム更新方式、方法、およびシステム、並びに更新プログラムに関し、特に、自装置の使用頻度に対応するパラメータであるＣＰＵ使用率またはトラヒック量におけるプログラム更新方式、方法、およびシステム、並びに更新プログラムに関する。
【背景技術】
【０００２】
従来のプログラムダウンロード方式として、例えば、特開平４−３１５２０４号公報に開示されている。すなわち、制御装置は、加工プログラムが終了した場合に、あらかじめ機械の空き時間として設定された時間になればホスト局に接続し、最新の制御プログラムのバージョンをホスト局から受信し、装置内のバージョンと比較する。バージョンが一致しなければ、制御装置は、制御プログラムをダウンロードする。
【０００３】
【特許文献１】特開平４−３１５２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特開平４−３１５２０４号公報では、装置を２４時間使用している環境の下で、更新すべきプログラムをダウンロードする場合、いつ空き時間帯になるのかわからない環境の下で勘に頼って空き時間を設定しなければならないため、ダウンロード中にＣＰＵ使用率が増加する場合がある。その場合、ダウンロード処理が装置の処理能力低下を招く恐れがあるという問題点がある。
【０００５】
また、上記の特開平４−３１５２０４号公報では、空き時間帯となる時間が決まっていない作業場で制御装置を使用する場合、空き時間帯となる時間を決めた時点で設定し直さなければならないという問題点がある。
【０００６】
本発明の目的は、上記問題点を鑑み、装置の処理能力を低下させずに、最新版のプログラムを自動的に更新する機能を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のプログラム更新方式は、動作プログラムの改訂版をサーバから導入するプログラム更新方式において、前記改訂版と前記動作プログラムの版数の異同をサーバに問い合わせる第１の確認手段と、自装置の使用頻度を算出する算出手段と、前記版数が異なっていた場合、前記使用頻度が前記所定条件を満たしている時間帯に前記改訂版を前記サーバからダウンロードし前記動作プログラムの更新を行う更新手段と、を備えていることを特徴としている。
【０００８】
更に、上記のプログラム更新方式において、前記算出手段は、所定の時間帯ごとに算出した前記所定の時間帯ごとの前記使用頻度の統計情報を作成する作成手段と、前記版数が異なっていた場合に前記作成した統計情報から現在の時刻に対応した時間帯の前記使用頻度を抽出する抽出手段と、を有することを特徴としている。
【０００９】
更に、上記のプログラム更新方式において、前記算出手段は、一定の周期ごとに算出した前記使用頻度が前記所定条件を満たしているかどうかの確認を行う第２の確認手段を有することを特徴としている。
【００１０】
更に、上記のプログラム更新方式において、前記作成手段は、１時間帯の間、一定の時間ごとに算出した前記使用頻度を算出順に格納する第１の格納手段と、前記１時間帯の間に算出した前記使用頻度の平均を算出し、時間帯の使用頻度ログ情報として算出順に格納する第２の格納手段と、前記使用頻度ログ情報として算出した前記使用頻度を前記所定の時間帯ごとに全て抽出しその抽出した全ての前記使用頻度の平均を前記所定の時間帯ごとに算出しその算出した前記所定の時間帯ごとの前記使用頻度の平均を前記統計情報として作成し格納する第３の格納手段と、を有することを特徴としている。
【００１１】
更に、上記のプログラム更新方式において、前記更新手段は、前記版数が異なっていた場合に前記使用頻度が前記所定条件を満たしていれば前記改訂版のダウンロード要求を前記サーバに対して行う手段と、前記ダウンロード要求により前記サーバから前記改訂版をダウンロードすると前記動作プログラムの更新を行う手段と、を有することを特徴としている。
【００１２】
また、本発明のプログラム更新システムは、装置とサーバとを備えたプログラム更新システムにおいて、前記装置は、上記のプログラム更新方式を有し、前記サーバは、前記装置からの前記動作プログラムの版数の問い合わせにより前記動作プログラムの版数の確認を行いその確認の結果を通知する通知手段と、前記装置から前記ダウンロード要求を受けると要求のあった前記プログラムを前記装置に対してダウンロードするダウンロード手段と、を有することを特徴としている。
【００１３】
また、本発明の第１のプログラム更新方法は、動作プログラムの改訂版をサーバから導入するプログラム更新方法であって、前記改訂版と前記動作プログラムの版数の異同をサーバに問い合わせる確認ステップと、自装置の使用頻度を算出する算出ステップと、前記版数が異なっていた場合、前記使用頻度が前記所定条件を満たしている時間帯に前記改訂版を前記サーバからダウンロードし前記プログラムの更新を行う更新ステップと、を含むことを特徴としている。
【００１４】
更に、上記の第１のプログラム更新方法において、前記算出ステップは、所定の時間帯ごとに算出した前記所定の時間帯ごとの前記使用頻度の統計情報を作成するステップと、前記版数が異なっていた場合に前記作成した統計情報から現在の時刻に対応した時間帯の前記使用頻度を抽出するステップと、を含むことを特徴としている。
【００１５】
更に、上記の第１のプログラム更新方法において、前記算出ステップは、一定の周期ごとに算出した前記使用頻度が前記所定条件を満たしているかどうかの確認を行うステップを含むことを特徴としている。
【００１６】
更に、上記の第１のプログラム更新方法において、前記統計情報を作成するステップは、１時間帯の間、一定の時間ごとに算出した前記使用頻度を算出順に一時エリアに格納するステップと、前記一時エリアに格納した前記使用頻度の平均を算出しその算出した前記使用頻度の平均を算出順にログデータベースに格納するステップと、前記ログデータベースに格納した前記使用頻度を前記所定の時間帯ごとに全て抽出しその抽出した全ての前記使用頻度の平均を前記所定の時間帯ごとに算出しその算出した前記所定の時間帯ごとの前記使用頻度の平均を統計情報テーブルに時間帯別に格納するステップと、を含むことを特徴としている。
【００１７】
更に、上記の第１のプログラム更新方法において、前記更新ステップは、前記版数が異なっていた場合に前記使用頻度が前記所定条件を満たしていれば前記改訂版のダウンロード要求を前記サーバに対して行うステップと、前記ダウンロード要求により前記サーバから前記改訂版をダウンロードすると前記動作プログラムの更新を行うステップと、を含むことを特徴としている。
【００１８】
また、本発明の第２のプログラム更新方法は、装置とサーバとを備えたプログラム更新方法であって、前記装置が、上記の第１のプログラム更新方法を含み、前記サーバが、前記装置からの前記動作プログラムの版数の問い合わせにより前記動作プログラムの版数の確認を行いその確認の結果を通知するステップと、前記装置から前記ダウンロード要求を受けると要求のあった前記プログラムを前記装置に対してダウンロードするステップと、を含むことを特徴としている。
【００１９】
また、本発明の更新プログラムは、サーバから動作プログラムの改訂版を導入してその動作プログラムの更新をコンピュータに実行させる更新プログラムであって、上記第１のプログラム更新方法を含む処理をコンピュータに実行させる。
【発明の効果】
【００２０】
以上説明したように、本発明は、装置自身の使用頻度に対応するパラメータの低い時間帯を見計らってダウンロードを行うため、ダウンロードを行うことによる装置の処理能力低下を防ぐことができるという効果がある。
【００２１】
また、本発明は、人手を介さず、装置自身の使用頻度に対応するパラメータの低い時間帯を見計らってダウンロードを行うため、効率よくかつ確実にプログラムの更新が可能になるという効果がある。
【発明を実施するための最良の形態】
【００２２】
次に、本発明を実施するための第１の最良の形態について図面を参照して説明する。
【００２３】
図１は、本発明の第１の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ１と、複数の装置２と、ネットワーク９０１とから構成されている。なお、版数管理サーバ１と装置２とは、ネットワーク９０１に接続されている。
【００２４】
版数管理サーバ１は、サーバ装置、ワークステーション、パソコン等の情報処理装置（コンピュータ）である。この版数管理サーバ１は、制御部１１と、プログラム格納部１２と、インタフェース部１３と、プログラム版数管理テーブル１４とから構成されている。
【００２５】
制御部１１は、図示していないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によりプログラム制御で動作する。すなわち、制御部１１は、版数管理サーバ１のＣＰＵが図示していない記憶部（例えば、磁気ディスク、メモリ等）に格納されている各種プログラムを実行した場合の機能ブロックを示している。制御部１１は、装置２にダウンロードするプログラムの版数の管理を行う版数管理部１１１を含む。
【００２６】
プログラム格納部１２は、図示していない不揮発性の記録媒体装置（例えば、磁気ディスク）内に割り当てられており、このプログラム格納部１２には、装置２で使用するプログラムの最新版数が格納されている。
【００２７】
インタフェース部１３は、制御部１１の制御の下で、ネットワーク９０１を介して装置２とのデータのやり取りをイーサーネット（登録商標）仕様により行う。この場合、制御部１１は、インタフェース部１３を介して、ＴＣＰ／ＩＰ通信機能を用いて接続先とデータの送受信を行う。
【００２８】
プログラム版数管理テーブル１４は、図示していない不揮発性の記録媒体装置（例えば、磁気ディスク）内に割り当てられており、プログラム版数管理テーブル１４には、装置２にダウンロードするプログラム識別名毎に最新の版数が登録されている。更に、プログラム版数管理テーブル１４は、プログラムの版数アップされる毎に制御部１１により改版される。
【００２９】
装置２は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置（コンピュータ）である。この装置２は、制御部２１と、プログラム格納部２２と、インタフェース部２３と、ログ一時エリア２４と、ＣＰＵ２５と、タイマ部２６１と、タイマ部２６２と、時計部２７とから構成される。更に、装置２は、プログラム管理テーブル２８１と、統計情報テーブル２８２と、ＣＰＵ使用率管理テーブル２８３と、ログデータベース２８４とから構成される。
【００３０】
制御部２１は、ＣＰＵ２５がプログラム格納部２２に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部２１は、ＣＰＵ２５が更新プログラムを含む各種プログラムを実行した場合の機能ブロックを示している。この制御部２１は、版数管理部２１１と、ＣＰＵ使用率算出部２１２とを含んでいる。
【００３１】
版数管理部２１１は、装置２で運用されているプログラム版数を、プログラム管理テーブル２８１を検索することにより認識すると共に、プログラム版数の更新有無のチェックの依頼を版数管理サーバ１に対して周期的に行う。更に、版数管理部２１１は、プログラムの更新が必要とされた場合に、統計情報テーブル２８２を検索することによりＣＰＵ使用率の低い時間帯を検出し、その低い時間帯に更新すべきプログラムを版数管理サーバ１からダウンロードする。
【００３２】
ＣＰＵ使用率算出部２１２は、時間帯ごとにＣＰＵ２５の使用率の平均を算出し、ログ情報として、ログデータベース２８４に保存する。更に、ＣＰＵ使用率算出部２１２は、定期的（例では、２４時間）に、ログデータベース２８４のログ情報から一定期間（例では、１ヶ月）における各時間帯のＣＰＵ使用率の平均を算出し、統計情報テーブル２８２を更新する。
【００３３】
プログラム格納部２２は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられており、このプログラム格納部２２には、版数管理サーバ１からダウンロードしたプログラムが格納されている。なお、装置２がモバイル端末、携帯端末等の携帯型の端末であれば、プログラム格納部２２は、不揮発性のメモリ（例えば、フラッシュメモリ）であることが望ましい。なお、更新プログラムは、図示していない媒体装置（例えば、ＣＤ−Ｒ／Ｗ、ＤＶＤ−Ｒ／Ｗ，ＤＶＤ＋Ｒ／Ｗ等の媒体の読み出しのできる装置）からプログラム格納部２２にインストールしても良い。
【００３４】
インタフェース部２３は、制御部２１の制御の下で、ネットワーク９０１を介して版数管理サーバ１等の他装置とのデータのやり取りをイーサーネット（登録商標）仕様により行う。
【００３５】
ログ一時エリア２４は、図示していないメモリ（例えばＲＡＭ）内に割り当てられている。このログ一時エリア２４には、制御部２１が一定間隔毎（例えば、１秒ごと）に算出したＣＰＵ使用率とその算出時の時間とがログとして順に書き込まれる。この場合、ログ一時エリア２４には、１時間帯分（例えば、１時間帯分は２時間）のログが保存され、ログ一時エリア２４は、１時間帯分（例えば、２時間）毎に制御部２１の制御の下で更新される。
【００３６】
プログラム管理テーブル２８１は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。このプログラム管理テーブル２８１には、図４に示すように、接続先欄と、プログラム識別名欄と、プログラム識別名に対応する版数欄と、プログラム識別名に対応する更新要欄とから構成される。接続先欄には、版数管理サーバの接続先（ＩＰアドレス）が格納されており、この接続先欄の内容は、版数管理部２１１が版数管理サーバ１にアクセスするときに利用される。プログラム識別名欄には、版数管理サーバ１から装置２内にダウンロードされたプログラムの識別を示す内容が格納されている。版数欄には、プログラム識別名の最新の版数を示す内容が格納される。更新要欄には、更新の必要性があるかどうかを示す内容が格納され、この更新要欄の内容は、該当するプログラムのダウンロードを行うかどうかの判断に利用される。更に、プログラム管理テーブル２８１は、装置２内にダウンロードされるプログラムが版数アップされる毎に制御部２１により版数欄の内容が更新される。
【００３７】
統計情報テーブル２８２は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。図２に統計情報の一例として、統計情報テーブル２８２の構成を示す。統計情報テーブル２８２には、時間帯（例では、２時間）毎に、その時間帯における一定期間（例では、１ヶ月）の平日のＣＰＵ使用率の平均値とその時間帯における一定期間の休日・祭日のＣＰＵ使用率の平均値とが統計情報として保持されている。
【００３８】
ＣＰＵ使用率管理テーブル２８３は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。ＣＰＵ使用率管理テーブル２８３には、図３に示すように、ＣＰＵ使用率の低い時間帯かどうかを判定するための基準となるＣＰＵ使用率閾値が設定されている。
【００３９】
ログデータベース２８４は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。ログデータベース２８４には、１時間帯（例では、１時間帯の幅は２時間）ごとに、時刻順（発生順）にＣＰＵ使用率が記録される。
【００４０】
ＣＰＵ２５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００４１】
タイマ部２６１には、あらかじめ決められた時間α毎（例えば、１秒毎）に制御部２１に割り込めるように、初期値ａが設定されている。すなわち、タイマ部２６１は、装置２の内部クロックが発生する毎にカウントダウンされ、やがて「０」値になると、制御部２１（ＣＰＵ２５）に割り込む。更に、タイマ部２６１が制御部２１に割り込んだ後、初期値ａが再設定され、上記の動作が繰り返される。
【００４２】
タイマ部２６２には、あらかじめ決められた時間β毎（例えば、２４時間毎）に制御部２１に割り込めるように、規定値ｂが設定されている。すなわち、タイマ部２６２は、内部クロックが発生する毎にカウントダウンされ、やがて「０」値になると、制御部２１（ＣＰＵ２５）に割り込む。更に、タイマ部２６１が制御部２１に割り込んだ後、初期値ｂが再設定され、上記の動作が繰り返される。
【００４３】
時計部２７は、現在の時刻（年、月、日、時、分、秒）を刻んでおり、制御部２１により読み出される。また、時計部２７には、平日・祭日・休日のわかる暦も保存しており、制御部２１が、時計部２７からの読み出し時に、現在の時刻情報として、現在の時刻（年、月、日、時、分、秒）と共に、平日、祭日、または休日のいずれかを示すデータも読み出す。
【００４４】
なお、上記の説明では、一定期間の値、１時間帯の値、ＣＰＵ使用率閾値等は、予めデフォルト値に設定されているという前提で説明したが、図示していないキーボード等の入力部からデフォルト値を変更できるようにすることが望ましい。
【００４５】
図５および図６は、制御部２１が更新プログラムを実行した場合の動作を示すフローチャートである。
【００４６】
次に、本発明の第１の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
【００４７】
装置２が版数管理サーバ１に対して版数更新のチェックを行う場合の動作について、先ず図５のフローチャートに沿って説明する。
【００４８】
装置２の制御部２１は、プログラム格納部２２に格納されているプログラムを実行し、ネットワーク９０１に接続されている機器と通信を行っている。今、タイマ部２６１は１秒ごとに制御部２１に割り込むように設定され、タイマ部２６２は２４時間ごとに制御部２１に割り込むように設定されている。このとき、タイマ部２６２から制御部２１にタイマ割り込みが発生したとする。
【００４９】
すると、割り込まれた制御部２１は、版数管理部２１１に制御を渡す。制御を渡された版数管理部２１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部２３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部２１１は、版数管理サーバ１に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部２３を介して行う。（図５のステップＳ１０１）。
【００５０】
インタフェース部１３を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ１の制御部１１は、版数管理部１１１に制御を渡す。制御を渡された版数管理部１１１は、依頼元の装置２と通信を行うことで装置２から版数管理サーバ１で管理しているプログラム識別名の版数を取得する。更に、版数管理部１１１は、プログラム版数管理テーブル１４に登録されているプログラム識別名の版数と装置２から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部１１１は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置２に対してインタフェース部１３を介して通知する。（ステップＳ１０２）。
【００５１】
インタフェース部２３を介して更新の必要性があるとの通知を版数管理サーバ１から受け取った装置２の版数管理部２１１は、プログラム管理テーブル２８１内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。（ステップＳ１０３）。
【００５２】
更に、版数管理部２１１は、現在の時刻情報を時計部２７から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル２８２（図２を参照）内で現在時刻に該当する時間帯を検索し、その該当する時間帯のＣＰＵ使用率を抽出する。この場合、統計情報テーブル２８２内を検索しＣＰＵ使用率を抽出する版数管理部２１１は、現在が平日であれば、平日欄のＣＰＵ使用率を抽出し、現在が休日または祭日であれば、休日・祭日欄のＣＰＵ使用率を抽出する。更に、版数管理部２１１は、抽出した現在の時間帯におけるＣＰＵ使用率がＣＰＵ使用率管理テーブル２８３内のＣＰＵ使用率閾値未満であれば低いと判定し、ＣＰＵ使用率閾値以上であれば高いと判定する。すなわち、版数管理部２１１は、平日・休日・祭日を考慮した現在の時間がＣＰＵ使用率の低い時間帯であるかの確認を、統計情報テーブル２８２を検索しながら確認する。（ステップＳ１０４，Ｓ１０５）。
【００５３】
なお、ステップＳ１０４，Ｓ１０５において、ＣＰＵ使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、平日・休日・祭日を考慮した現在の時間帯におけるＣＰＵ使用率が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ１０４，Ｓ１０５の別の処理）。
【００５４】
ステップＳ１０５において、低い時間帯であれば、版数管理部２１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部２３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部２１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部２３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置２にダウンロードする。すなわち、装置２の版数管理部２１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部２１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ１０６）。
【００５５】
更に、版数管理部２１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（２４時間）を終了する。（ステップＳ１０７）。
【００５６】
なお、装置２の立ち上げ時（電源投入時、リセット時等）にも、制御部２１は、上記で説明した図５のタイマ割込処理の動作を行う。
【００５７】
一方、タイマ部２６１からの割り込み（１秒間隔で発生）が制御部２１に発生したとする。すると、制御部２１は、制御をＣＰＵ使用率算出部２１２に渡す。制御を渡されたＣＰＵ使用率算出部２１２は、ＣＰＵ使用率を算出する。この場合の算出方法の一例として以下に説明する。すなわち、制御部２１に含まれるドライバ（制御プログラム）を実行するＣＰＵ２５が過去１秒間に処理要求のあったタスクごとに処理終了に要した時間を測定している。このタイマ部２６１からの割り込みによりＣＰＵ使用率算出部２１２がドライバの測定した全タスクの合計の処理時間の１秒に占める割合（単位：％）を算出する。この算出した割合が瞬間的なＣＰＵ使用率となる。（図６のステップＳ２０１）。
【００５８】
ＣＰＵ使用率算出部２１２は、ＣＰＵ使用率算出時に現在の時刻（この場合の時刻とは、例えば、時、分、秒）を時計部２７から読み出す。更に、ＣＰＵ使用率算出部２１２は、その読み出した現在の時刻と算出したＣＰＵ使用率をリアルタイムのＣＰＵ使用率ログ情報としてログ一時エリア２４に時刻順（算出順）に格納する。（ステップＳ２０２）。
【００５９】
ＣＰＵ使用率算出部２１２は、時間幅をカウントするために、カウンタを＋１加算する。なお、カウンタは、図示していないレジスタを使用し、初期設定時には「０」値が設定され、カウントされるごとに＋１ずつ増える。このカウンタの内容を「ｎ」（ｎ＝０，１，２，３，・・・）としている。（ステップＳ２０３）。
【００６０】
ＣＰＵ使用率算出部２１２は、定数ｎが所定の時間幅の値（例では、時間幅が２時間）になったかどうかを確認する。（ステップＳ２０４）。
【００６１】
ステップＳ２０４において、時間幅が２時間になっていなければ、ＣＰＵ使用率算出部２１２は、版数管理部２１１に制御を渡す。制御を渡された版数管理部２１１は、プログラム管理テーブル２８１の更新要欄にマークがあるかの確認を行う。（ステップＳ２１０，Ｓ２１１）。
【００６２】
ステップＳ２１１において、マークがなければ、版数管理部２１１は、タイマ割込処理（１秒）を終了する。
【００６３】
ステップＳ２１１において、マークがあれば、版数管理部２１１は、現在の時刻情報を時計部２７から読み出す。更に、版数管理部２１１は、読み出した現在の時刻情報を基に、統計情報テーブル２８２内で現在時刻に該当する時間帯を検索し、該当する時間帯のＣＰＵ使用率を抽出する。この場合、統計情報テーブル２８２内を検索しＣＰＵ使用率を抽出する版数管理部２１１は、現在が平日であれば、平日のＣＰＵ使用率を抽出し、現在が休日または祭日であれば、休日・祭日のＣＰＵ使用率を抽出する。更に、版数管理部２１１は、抽出したＣＰＵ使用率がＣＰＵ使用率管理テーブル２８３内のＣＰＵ使用率閾値未満であるかどうかをチェックする。すなわち、版数管理部２１１は、平日・休日・祭日を考慮した現在の時間がＣＰＵ使用率の低い時間帯であるかどうかを、統計情報テーブル２８２（図２を参照）を検索しながら確認する。（ステップＳ２１２，Ｓ２１３）。
【００６４】
なお、ステップＳ２１２，Ｓ２１３において、ＣＰＵ使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、平日・休日・祭日を考慮した現在の時間帯におけるＣＰＵ使用率が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ２１２，Ｓ２１３の別の処理）。
【００６５】
ステップＳ２１３において、低い時間帯でなければ、版数管理部２１１は、タイマ割込処理（１秒）を終了する。
【００６６】
ステップＳ２１３において、低い時間帯であれば、版数管理部２１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部２３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部２１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部２３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置２にダウンロードする。すなわち、装置２の版数管理部２１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部２１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ２１４）。
【００６７】
更に、版数管理部２１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（１秒）を終了する。（ステップＳ２１５）。
【００６８】
ステップＳ２０４において、時間幅が２時間になっていれば、ＣＰＵ使用率算出部２１２は、ログ一時エリア２４に格納されているＣＰＵ使用率を全て読み出し、その使用率の平均を算出する。更に、ＣＰＵ使用率算出部２１２は、計算した平均のＣＰＵ使用率をログデータベース２８４に現在の時刻情報（この場合、年、月、日、時、分、秒、および平日／休日・祭日の識別情報）と共に、時間帯のＣＰＵ使用率として時刻順（算出順）に記録する。この場合、ログデータベース２８４には、１時間帯（２時間）ごとにＣＰＵ使用率が格納されることになる。（ステップＳ２０５，Ｓ２０６）。
【００６９】
ＣＰＵ使用率算出部２１２は、その日の最終時間帯（２２：００〜２４：００）であるかを時計部２７から読み出した現在の時刻（日にちの変わり目の時刻）から確認する。（ステップＳ２０７）。
【００７０】
ステップＳ２０７において、最終時間帯であれば、ＣＰＵ使用率算出部２１２は、一定期間（例えば、１ヶ月間）の平日の時間帯ごとにその時間帯のＣＰＵ使用率を算出するためにログデータベース２８４からこの期間の平日に該当する全てのＣＰＵ率を読み出す。ＣＰＵ使用率算出部２１２は、平日の時間帯ごとに読み出したＣＰＵ使用率の平均を計算し、統計情報テーブル２８２を更新する。更に、ＣＰＵ使用率算出部２１２は、一定期間（例えば、１ヶ月間）の休日・祭日の時間帯ごとにその時間帯のＣＰＵ使用率を算出するためにログデータベース２８４からこの期間の休日・祭日に該当する全てのＣＰＵ使用率を読み出す。ＣＰＵ使用率算出部２１２は、休日・祭日の時間帯ごとに読み出したＣＰＵ使用率の平均を計算し、ＣＰＵ使用率の統計情報として統計情報テーブル２８２（図２を参照）を更新する。（ステップＳ２０８）。
【００７１】
ＣＰＵ使用率算出部２１２は、定数ｎを「０」値に設定し、ログ一時エリア２４をクリアし、タイマ割込処理（１秒）を終了する。（ステップＳ２０９）。
【００７２】
なお、ステップＳ２０７において、最終時間帯でなければ、ＣＰＵ使用利算出部２１２は、ステップＳ２０９に進む。
【００７３】
以上説明したように、第１の実施の形態では、装置２が統計を取ったＣＰＵ使用率統計情報（統計情報テーブル２８２）からＣＰＵ使用率の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第１の実施の形態は、装置２の処理能力低下を防ぐことができる。
【００７４】
また、第１の実施の形態では、装置２が平日および休日・祭日のそれぞれの統計を取ったＣＰＵ使用率統計情報（統計情報テーブル２８２）から現在の時刻を基に平日または休日・祭日の時間帯のＣＰＵ使用率を抽出する。更に、装置２が抽出したＣＰＵ使用率がＣＰＵ使用率の低い時間帯の値であれば、人を介さずに自動的にそのＣＰＵ使用率の低い時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第１の実施の形態は、平日と休日・祭日によって作業内容が変わるユーザに対しても、装置２の処理能力低下を防ぐことができる。
【００７５】
次に、本発明を実施するための第２の最良の形態について図面を参照して説明する。
【００７６】
第２の実施の形態のシステムの構成は、第１の実施の形態と同じ図１のブロック図に示す。第１の実施の形態では、装置２がＣＰＵ使用率を平日と休日・祭日との２つに分けて時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ１からプログラムをダウンロードするようにしていた。しかし、第２の実施の形態では、装置２がＣＰＵ使用率を平日と休日・祭日とに分けないで１つにして時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ１からプログラムをダウンロードする。そのため、第２の実施の形態では、統計情報テーブル２８２の構成と、版数管理部２１１の低い時間帯の判断処理と、ＣＰＵ使用率算出部２１２の時間帯のＣＰＵ使用率の算出処理が、第１の実施の形態と相違する。以下に第１の実施の形態と第２の実施の形態との相違点だけを抽出して説明する。
【００７７】
第２の実施の形態における統計情報テーブル２８２の構成の一例は、図７に示す。この統計情報テーブル２８２には、終日の時間帯（例では、２時間）ごとにその時間帯における一定期間（例では、１ヶ月）のＣＰＵ使用率の平均値が統計情報として保持されている。
【００７８】
版数管理部２１１の低い時間帯の判断処理は、第１の実施の形態で説明した図５のステップＳ１０４，Ｓ１０５と図６のステップＳ２１２，Ｓ２１３とに該当する。
【００７９】
ＣＰＵ使用率算出部２１２の時間帯のＣＰＵ使用率の算出処理は、第１の実施の形態で説明した図６のステップＳ２０５，Ｓ２０６，Ｓ２０８に該当する。
【００８０】
次に、本発明の第２の実施の形態において、実施するための最良の動作について説明する。
【００８１】
第２の実施の形態においても第１の実施の形態と同じように図５と図６のフローチャートを参照しながら説明する。
【００８２】
図５において、版数管理部２１１は、ステップＳ１０３の処理の後、現在の時刻情報を時計部２７から読み出す。更に、版数管理部２１１は、読み出した現在の時刻情報を基に、統計情報テーブル２８２（図７を参照）内で現在時刻に該当する時間帯を検索し、該当する時間帯のＣＰＵ使用率を抽出する。更に、版数管理部２１１は、抽出したＣＰＵ使用率が、ＣＰＵ使用率管理テーブル２８３内のＣＰＵ使用率閾値未満であれば低いと判定し、ＣＰＵ使用率閾値以上であれば高いと判定する。すなわち、版数管理部２１１は、現在の時間がＣＰＵ使用率の低い時間帯であるかの確認を、統計情報テーブル２８２を検索しながら確認する。（ステップＳ１０４，Ｓ１０５）。
【００８３】
なお、ステップＳ１０４，Ｓ１０５において、ＣＰＵ使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、現在の時間帯におけるＣＰＵ使用率が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ１０４，Ｓ１０５の別の処理）。
【００８４】
図６のステップＳ２０４において、時間幅が２時間になっていれば、ＣＰＵ使用率算出部２１２は、ログ一時エリア２４に格納されているＣＰＵ使用率を全て読み出し、その使用率の平均を算出する。更に、ＣＰＵ使用率算出部２１２は、計算した平均のＣＰＵ使用率をログデータベース２８４に現在の時刻（この場合、年、月、日、時、分、秒）と共に、時間帯のＣＰＵ使用率として時刻順（算出順）に記録する。この場合、ログデータベース２８４には、１時間帯（２時間）ごとにＣＰＵ使用率が格納されることになる。（ステップＳ２０５，Ｓ２０６）。
【００８５】
ステップＳ２０７において、最終時間帯であれば、ＣＰＵ使用率算出部２１２は、一定期間（例えば、１ヶ月間）の時間帯ごとにその時間帯のＣＰＵ使用率をログデータベース２８４から全て読み出す。更に、ＣＰＵ使用率算出部２１２は、時間帯ごとに読み出したＣＰＵ使用率の平均を計算し、ＣＰＵ使用率の統計情報として統計情報テーブル２８２（図７を参照）を更新する。（ステップＳ２０８）。
【００８６】
ステップＳ２１１において、マークがあれば、版数管理部２１１は、現在の時刻情報を時計部２７から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル２８２内で現在時刻に該当する時間帯を検索し、該当するＣＰＵ使用率を抽出する。更に、版数管理部２１１は、抽出したＣＰＵ使用率がＣＰＵ使用率管理テーブル２８３内のＣＰＵ使用率閾値未満であるかどうかをチェックする。すなわち、版数管理部２１１は、現在の時間がＣＰＵ使用率の低い時間帯であるかどうかを、統計情報テーブル２８２（図７を参照）を検索しながら確認する。（ステップＳ２１２，Ｓ２１３）。
【００８７】
上記のステップＳ２１２，Ｓ２１３において、ＣＰＵ使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、現在の時間帯におけるＣＰＵ使用率が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ２１２，Ｓ２１３の別の処理）。
【００８８】
なお、第２の実施の形態で説明した図５のステップＳ１０４，Ｓ１０５と図６のステップＳ２０５，Ｓ２０６，Ｓ２０８，Ｓ２１２，Ｓ２１３の処理を除き、第２の実施の形態における装置２の制御部２１の動作は、第１の実施の形態と同じなので説明を省略する。
【００８９】
以上説明したように、第２の実施の形態は、装置２が統計を取ったＣＰＵ使用率統計情報（統計情報テーブル２８２）からＣＰＵ使用率の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第２の実施の形態は、装置２の処理能力低下を防ぐことができる。
【００９０】
上記第１および第２の実施の形態において、図５のステップＳ１０４〜Ｓ１０７の処理を省略しても良い。なぜならば、その後のタイマ部２６１によるタイマ割り込み（例では、１秒間隔）により、版数管理部２１１が、図６のステップＳ２１２〜Ｓ２１５の処理で図５のステップＳ１０４〜Ｓ１０７の処理と同じ動作を行うからである。
【００９１】
次に、本発明を実施するための第３の最良の形態について図面を参照して説明する。
【００９２】
図８は、本発明の第３の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ１と、複数の装置３と、ネットワーク９０１とから構成されている。なお、版数管理サーバ１と装置３とは、ネットワーク９０１に接続されている。
【００９３】
第１の実施の形態と比較すると、第３の実施の形態は、装置２が装置３になっている点で第１の実施の形態と相違する。
【００９４】
装置３は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置（コンピュータ）である。この装置３は、制御部３１と、プログラム格納部２２と、インタフェース部３３と、ログ一時エリア３４と、ＣＰＵ２５と、タイマ部２６１と、タイマ部２６２と、時計部２７とから構成される。更に、装置３は、プログラム管理テーブル２８１と、統計情報テーブル３８２と、トラヒック量管理テーブル３８３と、ログデータベース３８４とから構成される。なお、図８において、第１の実施の形態と同じ機能を持つブロックである場合には、第１の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第１の実施の形態と同じもの（第１の実施の形態と同じ付与番号の付いたブロック）は、説明を省略している。
【００９５】
制御部３１は、ＣＰＵ２５がプログラム格納部２２に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部３１は、ＣＰＵ２１が各種プログラムを実行した場合の機能ブロックを示している。この制御部３１は、版数管理部３１１と、トラヒック量算出部３１２とを含んでいる。
【００９６】
版数管理部３１１は、装置３で運用されているプログラム版数を、プログラム管理テーブル２８１を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ１に対して周期的にチェックの依頼を行う。更に、版数管理部３１１は、プログラムの更新が必要とされた場合に、統計情報テーブル３８２を検索することによりトラヒック量の低い時間帯を検出し、その低い時間帯に更新すべきプログラムを版数管理サーバ１からダウンロードする。
【００９７】
トラヒック量算出部３１２は、時間帯（例では、２時間）ごとにトラヒック量を算出し、ログ情報としてログデータベース３８４に保存する。更に、トラヒック量算出部３１２は、定期的（例では、２４時間）に、ログデータベース３８４のログ情報から一定期間（例では、１ヶ月）における各時間帯のトラヒック量の平均を算出し、統計情報テーブル３８２を更新する。なお、この場合のトラヒック量とは、インタフェース部３３がネットワーク９０１とのデータのやり取りで送信した送信バイト数と受信した受信バイト数とを加算した値を１秒あたりに換算した値のことである。従って、トラヒック量の単位は、バイト数／秒（Ｂ／ｓ）となる。
【００９８】
インタフェース部３３は、制御部３１の制御の下で、ネットワーク９０１を介して版数管理サーバ１等の他装置とのデータのやり取りをイーサーネット（登録商標）仕様により行う。インタフェース部３３は、１パケットを受信するごとに受信する１パケット内のバイト数をログ一時エリア３４内の受信カウンタ３４２に加算する。インタフェース部３３は、１パケットを送信するごとに送信する１パケット内のバイト数をログ一時エリア３４内の送信カウンタ３４１に加算する。
【００９９】
ログ一時エリア３４は、図示していないメモリ（例えばＲＡＭ）内に割り当てられている。このログ一時エリア３４には、送信カウンタ３４１と、受信カウンタ３４２とが割り当てられている。送信カウンタ３４１には、送信したバイト数が格納されている。この送信カウンタ３４１の使用法としては、一定間隔の間（例えば、２時間の間）、インタフェース部３３が１パケットを送信するごとに送信する１パケット内のバイト数を送信カウンタ３４１に加算する。受信カウンタ３４２には、送信したバイト数が格納されている。この受信カウンタ３４２の使用法としては、一定間隔の間（例えば、２時間の間）、インタフェース部３３が１パケットを受信するごとに受信する１パケット内のバイト数を加算する。すなわち、送信カウンタ３４１および受信カウンタ３４３は、１時間帯（例えば、１時間帯の時間幅は２時間）の間、カウントし続け、１時間帯（例えば、２時間）毎に制御部３１の制御の下で、クリア（「０」値にセット）される。
【０１００】
統計情報テーブル３８２は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。図９に統計情報の一例として、統計情報テーブル３８２の構成を示す。統計情報テーブル３８２には、時間帯（例では、２時間）毎に、その時間帯における一定期間（例では、１ヶ月）の平日のトラヒック量の平均値とその時間帯における一定期間の休日・祭日のトラヒック量の平均値とが統計情報として保持されている。
【０１０１】
トラヒック量管理テーブル３８３は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。トラヒック量管理テーブル３８３には、図１０に示すように、トラヒック量の低い時間帯かどうかを判定するための基準となるトラヒック量閾値が予め設定されている。
【０１０２】
ログデータベース３８４は、図示していない不揮発性の記憶部（例えば、フラッシュメモリ、磁気ディスク等）内に割り当てられている。ログデータベース３８４には、１時間帯（例では、１時間帯の幅は２時間）ごとに、時刻順（発生順）にトラヒック量が記録される。
【０１０３】
図１１および図１２は、制御部３１が更新プログラムを実行した場合の動作を示すフローチャートである。
【０１０４】
次に、本発明の第３の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
【０１０５】
装置３が版数管理サーバ１に対して版数更新のチェックを行う場合の動作について、図１１のフローチャートに沿って説明する。
【０１０６】
装置３の制御部３１は、プログラム格納部２２に格納されているプログラムを実行し、ネットワーク９０１に接続されている機器と通信を行っている。この場合、インタフェース部３３は、制御部３１の指示の下でデータを送信先に送信する場合、ネットワーク９０１に１パケット送信するごとに送信するパケット内のデータのバイト数をカウントする。インタフェース部３３は、１パケット送信するごとにそのカウントしたバイト数をログ一時エリア３４内の送信カウンタ３４１に加算する。また、インタフェース部３３は、ネットワーク９０１からパケットを受信する場合、ネットワーク９０１から１パケット受信するごとに受信するパケット内のデータのバイト数をカウントする。インタフェース部３３は、１パケット受信するごとにそのカウントしたバイト数をログ一時エリア３４内の受信カウンタ３４２に加算する。
【０１０７】
今、タイマ部２６１は１秒ごとに制御部３１に割り込むように設定され、タイマ部２６２は２４時間ごとに制御部３１に割り込むように設定されている。このとき、タイマ部２６２から制御部３１にタイマ割り込みが発生したとする。
【０１０８】
すると、割り込まれた制御部３１は、版数管理部３１１に制御を渡す。制御を渡された版数管理部３１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部３３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部３１１は、版数管理サーバ１に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部３３を介して行う。（図５のステップＳ３０１）。
【０１０９】
インタフェース部１３を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ１の制御部１１は、版数管理部１１１に制御を渡す。制御を渡された版数管理部１１１は、依頼元の装置３と通信を行うことで装置３から版数管理サーバ１で管理しているプログラム識別名の版数を取得する。更に、版数管理部１１１は、プログラム版数管理テーブル１４に登録されているプログラム識別名の版数と装置３から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部１１１は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置３に対してインタフェース部１３を介して通知する。（ステップＳ３０２）。
【０１１０】
インタフェース部３３を介して更新の必要性があるとの通知を版数管理サーバ１から受け取った装置３の版数管理部３１１は、プログラム管理テーブル２８１内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。（ステップＳ３０３）。
【０１１１】
更に、版数管理部３１１は、現在の時刻情報を時計部２７から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル３８２（図９を参照）内で現在時刻に該当する時間帯を検索し、その該当する時間帯のトラヒック量を抽出する。この場合、統計情報テーブル３８２内を検索しトラヒック量を抽出する版数管理部３１１は、現在が平日であれば、平日欄のトラヒック量を抽出し、現在が休日または祭日であれば、休日・祭日欄のトラヒック量を抽出する。更に、版数管理部３１１は、抽出した現在の時間帯におけるトラヒック量がトラヒック量管理テーブル３８３内のトラヒック量閾値未満であれば低いと判定し、トラヒック量閾値以上であれば高いと判定する。すなわち、版数管理部３１１は、平日・休日・祭日を考慮した現在の時間がトラヒック量の低い時間帯であるかの確認を、統計情報テーブル３８２を検索しながら確認する。（ステップＳ３０４，Ｓ３０５）。
【０１１２】
なお、ステップＳ３０４，Ｓ３０５において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、平日・休日・祭日を考慮した現在の時間帯におけるトラヒック量が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ３０４，Ｓ３０５の別の処理）。
【０１１３】
ステップＳ３０５において、低い時間帯であれば、版数管理部３１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部３３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部３１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部３３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置３にダウンロードする。すなわち、装置３の版数管理部３１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部３１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ３０６）。
【０１１４】
更に、版数管理部３１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（２４時間）を終了する。（ステップＳ３０７）。
【０１１５】
なお、装置３の立ち上げ時（電源投入時、リセット時等）にも、制御部３１は、上記で説明した図１１のタイマ割込処理の動作を行う。
【０１１６】
一方、タイマ部２６１からの割り込み（１秒間隔で発生）が制御部３１に発生したとする。すると、制御部３１は、制御をトラヒック量算出部３１２に渡す。制御を渡されたトラヒック量算出部３１２は、時間幅をカウントするために、カウンタを＋１加算する。なお、カウンタは、図示していないレジスタを使用し、初期設定時には「０」値が設定され、カウントされるごとに＋１ずつ増える。このカウンタの内容を「ｎ」（ｎ＝０，１，２，３，・・・）としている。（図１２のステップＳ４０３）。
【０１１７】
トラヒック量算出部３１２は、定数ｎが所定の時間幅の値（例では、時間幅が２時間）になったかどうかを確認する。（ステップＳ４０４）。
【０１１８】
ステップＳ４０４において、時間幅が２時間になっていなければ、トラヒック量算出部３１２は、版数管理部３１１に制御を渡す。制御を渡された版数管理部３１１は、プログラム管理テーブル２８１の更新要欄にマークがあるかの確認を行う。（ステップＳ４１０，Ｓ４１１）。
【０１１９】
ステップＳ４１１において、マークがなければ、版数管理部３１１は、タイマ割込処理（１秒）を終了する。
【０１２０】
ステップＳ４１１において、マークがあれば、版数管理部３１１は、現在の時刻情報を時計部２７から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル３８２内で現在時刻に該当する時間帯を検索し、該当する時間帯のトラヒック量を抽出する。この場合、統計情報テーブル３８２内を検索しトラヒック量を抽出する版数管理部３１１は、現在が平日であれば、平日のトラヒック量を抽出し、現在が休日または祭日であれば、休日・祭日のトラヒック量を抽出する。更に、版数管理部３１１は、抽出したトラヒック量がトラヒック量管理テーブル３８３内のトラヒック量閾値未満であるかどうかをチェックする。すなわち、版数管理部３１１は、平日・休日・祭日を考慮した現在の時間がトラヒック量の低い時間帯であるかどうかを、統計情報テーブル３８２（図９を参照）を検索しながら確認する。（ステップＳ４１２，Ｓ４１３）。
【０１２１】
なお、ステップＳ４１２，Ｓ４１３において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部３１１は、平日・休日・祭日を考慮した現在の時間帯におけるトラヒック量が統計情報テーブル３８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ４１２，Ｓ４１３の別の処理）。
【０１２２】
ステップＳ４１３において、低い時間帯でなければ、版数管理部３１１は、タイマ割込処理（１秒）を終了する。
【０１２３】
ステップＳ４１３において、低い時間帯であれば、版数管理部３１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部３３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部３１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部３３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置３にダウンロードする。すなわち、装置３の版数管理部３１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部３１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ４１４）。
【０１２４】
更に、版数管理部３１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（１秒）を終了する。（ステップＳ４１５）。
【０１２５】
ステップＳ４０４において、時間幅が２時間になっていれば、トラヒック量算出部３１２は、ログ一時エリア３４の送信カウンタ３４１に格納されている送信バイト数と受信カウンタ３４２に格納されている受信バイト数を読み出す。更に、トラヒック量算出部３１２は、送信バイト数と受信バイト数とを加算し、その加算したバイト数を時間帯の時間幅（７２００秒）で割ることで、この時間帯におけるトラヒック量として１秒あたりのバイト数を算出する。更に、トラヒック量算出部３１２は、計算したトラヒック量をログデータベース３８４に現在の時刻情報（この場合、年、月、日、時、分、秒、および平日／休日・祭日の識別情報）と共に、時間帯のトラヒック量として時刻順（算出順）に記録する。この場合、ログデータベース３８４には、１時間帯（２時間）ごとにトラヒック量が格納されることになる。（ステップＳ４０５，Ｓ４０６）。
【０１２６】
トラヒック量算出部３１２は、その日の最終時間帯（２２：００〜２４：００）であるかを時計部２７から読み出した現在の時刻（日にちの変わり目の時刻）から確認する。（ステップＳ４０７）。
【０１２７】
ステップＳ４０７において、最終時間帯であれば、トラヒック量算出部３１２は、一定期間（例えば、１ヶ月間）の平日の時間帯ごとにその時間帯のトラヒック量を算出するためにログデータベース３８４からこの期間の平日に該当する全てのトラヒック量を読み出す。トラヒック量算出部３１２は、平日の時間帯ごとに読み出したトラヒック量の平均を計算し、統計情報テーブル３８２を更新する。更に、トラヒック量算出部３１２は、一定期間（例えば、１ヶ月間）の休日・祭日の時間帯ごとにその時間帯のトラヒック量を算出するためにログデータベース３８４からこの期間の休日・祭日に該当する全てのトラヒック量を読み出す。トラヒック量算出部３１２は、休日・祭日の時間帯ごとに読み出したトラヒック量の平均を計算し、トラヒック量の統計情報として統計情報テーブル３８２（図９を参照）を更新する。（ステップＳ４０８）。
【０１２８】
トラヒック量算出部３１２は、定数ｎを「０」値に設定し、ログ一時エリア３４の送信カウンタ３４１および受信カウンタ３４２をクリアし、タイマ割込処理（１秒）を終了する。（ステップＳ４０９）。
【０１２９】
なお、ステップＳ４０７において、最終時間帯でなければ、トラヒック量算出部３１２は、ステップＳ４０９に進む。
【０１３０】
以上説明したように、第３の実施の形態では、装置３が統計を取ったトラヒック量統計情報（統計情報テーブル３８２）からトラヒック量の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第３の実施の形態は、装置３の処理能力低下を防ぐことができる。
【０１３１】
また、第３の実施の形態では、装置３が平日および休日・祭日のそれぞれの統計を取ったトラヒック量統計情報（統計情報テーブル３８２）から現在の時刻を基に平日または休日・祭日に対応した時間帯のトラヒック量を抽出する。更に、装置３がその抽出したトラヒック量がトラヒック量の低い時間帯の値であれば、人を介さずに自動的にトラヒック量の低い時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第３の実施の形態は、平日と休日・祭日によって作業内容が変わるユーザに対しても、装置３の処理能力低下を防ぐことができる。
【０１３２】
次に、本発明を実施するための第４の最良の形態について図面を参照して説明する。
【０１３３】
第４の実施の形態のシステムの構成は、第３の実施の形態と同じ図８のブロック図に示す。第３の実施の形態では、装置３がトラヒック量を平日と休日・祭日との２つに分けて時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ１からプログラムをダウンロードするようにしていた。しかし、第４の実施の形態では、装置３がトラヒック量を平日と休日・祭日とに分けないで１つにして時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ１からプログラムをダウンロードする。そのため、第４の実施の形態では、統計情報テーブル３８２の構成と、版数管理部３１１の低い時間帯の判断処理と、トラヒック量算出部３１２の時間帯のＣＰＵ使用率の算出処理が、第３の実施の形態と相違する。以下に第３の実施の形態と第４の実施の形態との相違点だけを抽出して説明する。
【０１３４】
第４の実施の形態における統計情報テーブル３８２の構成の一例は、図１３に示す。この統計情報テーブル３８２には、終日の時間帯（例では、２時間）ごとにその時間帯における一定期間（例では、１ヶ月）のトラヒック量が統計情報として保持されている。
【０１３５】
版数管理部３１１の低い時間帯の判断処理は、第３の実施の形態で説明した図１１のステップＳ３０４，Ｓ３０５と図１２のステップＳ４１２，Ｓ４１３とに該当する。
【０１３６】
トラヒック量算出部３１２の時間帯のトラヒック量の算出処理は、第３の実施の形態で説明した図１２のステップＳ４０５，Ｓ４０６，Ｓ４０８に該当する。
【０１３７】
次に、本発明の第４の実施の形態において、実施するための最良の動作について説明する。
【０１３８】
第４の実施の形態においても第３の実施の形態と同じように図１１と図１２のフローチャートを参照しながら説明する。
【０１３９】
図１１において、版数管理部３１１は、ステップＳ３０３の処理の後、現在の時刻情報を時計部２７から読み出す。更に、版数管理部３１１は、読み出した現在の時刻情報を基に、統計情報テーブル３８２（図１３を参照）内で現在時刻に該当する時間帯を検索し、該当する時間帯のトラヒック量を抽出する。更に、版数管理部３１１は、抽出したトラヒック量がトラヒック量管理テーブル３８３内のトラヒック量閾値未満であれば低いと判定し、トラヒック量閾値以上であれば高いと判定する。すなわち、版数管理部３１１は、現在の時間がトラヒック量の低い時間帯であるかの確認を、統計情報テーブル３８２を検索しながら確認する。（ステップＳ３０４，Ｓ３０５）。
【０１４０】
なお、ステップＳ３０４，Ｓ３０５において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部３１１は、現在の時間帯におけるトラヒック量が統計情報テーブル３８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ３０４，Ｓ３０５の別の処理）。
【０１４１】
図１２のステップＳ４０４において、時間幅が２時間になっていれば、トラヒック量算出部３１２は、ログ一時エリア３４の送信カウンタ３４１に格納されている送信バイト数と受信カウンタ３４２に格納されている受信バイトとを読み出す。更に、トラヒック量算出部３１２は、読み出した送信バイト数と受信バイト数とを加算し、その加算したバイト数をログデータベース３８４に現在の時刻（この場合、年、月、日、時、分、秒）と共に、時間帯のトラヒック量として時刻順（算出順）に記録する。この場合、ログデータベース３８４には、１時間帯（２時間）ごとにトラヒック量が格納されることになる。（ステップＳ４０５，Ｓ４０６）。
【０１４２】
ステップＳ４０７において、最終時間帯であれば、トラヒック量算出部３１２は、一定期間（例えば、１ヶ月間）の時間帯ごとにその時間帯のトラヒック量をログデータベース３８４から全て読み出す。更に、トラヒック量算出部３１２は、時間帯ごとに読み出したトラヒック量の平均を計算し、トラヒック量の統計情報として統計情報テーブル３８２（図１３を参照）を更新する。（ステップＳ４０８）。
【０１４３】
ステップＳ４１１において、マークがあれば、版数管理部３１１は、現在の時刻情報を時計部２７から読み出す。更に、版数管理部３１１は、読み出した現在の時刻情報を基に、統計情報テーブル３８２内で現在時刻に該当する時間帯のトラヒック量がトラヒック量管理テーブル３８３内のトラヒック量閾値未満であるかどうかをチェックする。すなわち、版数管理部３１１は、現在の時間帯がトラヒック量の低い時間帯であるかどうかを、統計情報テーブル３８２（図１３を参照）を検索しながら確認する。（ステップＳ４１２，Ｓ４１３）。
【０１４４】
上記のステップＳ４１２，Ｓ４１３において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部２１１は、現在の時間帯におけるトラヒック量が統計情報テーブル２８２内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。（ステップＳ４１２，Ｓ４１３の別の処理）。
【０１４５】
なお、上記の第４の実施の形態における図１１のステップＳ３０４，Ｓ３０５と図１２のステップＳ４０５，Ｓ４０６，Ｓ４０８，Ｓ４１２，Ｓ４１３の処理を除き、第４の実施の形態における装置３の制御部３１の動作は、第３の実施の形態と同じなので説明を省略する。
【０１４６】
また、上記の第３および第４の実施の形態では、トラヒック量を１秒あたりの送受信するバイト数として説明したが、トラヒック量を時間帯あたりの送受信するバイト数としても良い。
【０１４７】
以上説明したように、第４の実施の形態では、装置３が統計を取ったトラヒック量統計情報（統計情報テーブル３８２）からトラヒック量の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第４の実施の形態は、装置３の処理能力低下を防ぐことができる。
【０１４８】
上記第３および第４の実施の形態において、図１１のステップＳ３０４〜Ｓ３０７の処理を省略しても良い。なぜならば、その後のタイマ部２６１によるタイマ割り込み（例では、１秒間隔）により、版数管理部３１１が、図１２のステップＳ４１２〜Ｓ４１５の処理で図１１のステップＳ３０４〜Ｓ３０７の処理と同じ動作を行うからである。
【０１４９】
次に、本発明を実施するための第５の最良の形態について図面を参照して説明する。
【０１５０】
図１４は、本発明の第５の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ１と、複数の装置４と、ネットワーク９０１とから構成されている。なお、版数管理サーバ１と装置４とは、ネットワーク９０１に接続されている。
【０１５１】
第１の実施の形態と比較すると、第５の実施の形態は、装置１が装置４になっている点で第１の実施の形態と相違する。
【０１５２】
装置４は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置（コンピュータ）である。この装置４は、制御部４１と、プログラム格納部２２と、インタフェース部２３と、ログ一時エリア４４と、ＣＰＵ２５と、タイマ部２６１と、タイマ部２６２と、時計部２７とから構成される。更に、装置４は、プログラム管理テーブル２８１と、ＣＰＵ使用率管理テーブル２８３とから構成される。なお、図１４において、第１の実施の形態と同じ機能を持つブロックである場合には、第１の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第１の実施の形態と同じもの（第１の実施の形態と同じ付与番号の付いたブロック）は、説明を省略している。
【０１５３】
制御部４１は、ＣＰＵ２５がプログラム格納部２２に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部４１は、ＣＰＵ２５が各種プログラムを実行した場合の機能ブロックを示している。この制御部４１は、版数管理部４１１と、ＣＰＵ使用率算出部４１２とを含んでいる。
【０１５４】
版数管理部４１１は、装置４で運用されているプログラム版数を、プログラム管理テーブル２８１を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ１に対して周期的にチェックの依頼を行う。更に、版数管理部４１１は、プログラムの更新が必要とされた場合に、ＣＰＵ使用率算出部４１２が算出したＣＰＵ使用率を基にＣＰＵ使用率が閾値未満であれば更新すべきプログラムを版数管理サーバ１からダウンロードする。
【０１５５】
ＣＰＵ使用率算出部４１２は、タイマ部２６１からのタイマ割込によりＣＰＵ使用率を算出し、その算出したＣＰＵ使用率をログ一時エリア４４にログ情報として格納すると共に、版数管理部４１１に通知する。
【０１５６】
ログ一時エリア４４は、図示していないメモリ（例えば、ＲＡＭ）内に割り当てられている。このログ一時エリア４４には、ＣＰＵ使用率が予め決められた時間間隔（例では１秒間隔）によりＣＰＵ使用率のログ情報として保存されていく。ログ一時エリア４４には、発生順に保存されていく容量が一杯になった場合には、ラウンドロビン方式により頭からＣＰＵ使用率がオーバーライトされる。
【０１５７】
図１５および図１６は、制御部４１が更新プログラムを実行した場合の動作を示すフローチャートである。
【０１５８】
次に、本発明の第５の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
【０１５９】
装置４が版数管理サーバ１に対して版数更新のチェックを行う場合の動作について、図１５のフローチャートに沿って説明する。
【０１６０】
装置４の制御部４１は、プログラム格納部２２に格納されているプログラムを実行し、ネットワーク９０１に接続されている機器と通信を行っている。今、タイマ部２６１は１秒ごとに制御部４１に割り込むように設定され、タイマ部２６２は２４時間ごとに制御部４１に割り込むように設定されている。このとき、タイマ部２６２から制御部４１にタイマ割り込みが発生したとする。
【０１６１】
すると、割り込まれた制御部４１は、版数管理部４１１に制御を渡す。制御を渡された版数管理部４１１は、版数管理サーバ１に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部２３を介して行う。（図１５のステップＳ５０１）。
【０１６２】
インタフェース部１３を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ１の制御部１１は、版数管理部１１１に制御を渡す。制御を渡された版数管理部１１１は、依頼元の装置４と通信を行うことで装置４から版数管理サーバ１で管理しているプログラム識別名の版数を取得する。更に、版数管理部１１１は、プログラム版数管理テーブル１４に登録されているプログラム識別名の版数と装置４から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部１１１は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置４に対してインタフェース部１３を介して通知する。（ステップＳ５０２）。
【０１６３】
インタフェース部２３を介して更新の必要性があるとの通知を版数管理サーバ１から受け取った装置４の版数管理部４１１は、プログラム管理テーブル２８１内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。マークを付けた後、版数管理部４１１は、タイマ部２６２によるタイマ割込の処理を終了する。（ステップＳ５０３）。
【０１６４】
なお、装置４の立ち上げ時（電源投入時、リセット時等）にも、制御部４１は、上記で説明した図１５のタイマ割込処理の動作を行う。
【０１６５】
一方、タイマ部２６１からの割り込み（１秒間隔で発生）が制御部４１に発生したとする。すると、制御部４１は、ＣＰＵ使用率算出部４１２に制御を渡す。制御を渡されたＣＰＵ使用率算出部４１２は、ＣＰＵ使用率を算出する。この場合の算出方法の一例として以下に説明する。すなわち、制御部４１に含まれるドライバ（制御プログラム）を実行するＣＰＵ２５が過去１秒間に処理要求のあったタスクごとに処理終了に要した時間を測定している。この環境の下で、ＣＰＵ使用率算出部４１２は、ドライバの測定した全タスクの合計の処理時間の１秒に占める割合を算出する。この算出した割合が瞬間的な現在のＣＰＵ使用率となる。（図１６のステップＳ６０１）。
【０１６６】
ＣＰＵ使用率算出部４１２は、算出したＣＰＵ使用率をＣＰＵ使用率のリアルタイム値のログ情報としてログ一時エリア４４に算出順に格納する。この場合、ＣＰＵ使用率算出部４１２は、時計部２７から現在の時刻を読み出して、算出したＣＰＵ使用率と一緒に格納する。（ステップＳ６０２）。
【０１６７】
ＣＰＵ使用率算出部４１２は、算出したＣＰＵ使用率をログ一時エリア４４に格納した後、算出したＣＰＵ使用率を版数管理部４１１に通知すると共に制御を版数管理部４１１に渡す。制御を渡された版数管理部４１１は、プログラム管理テーブル２８１内の更新要欄にマークがあるかの確認を行う。（ステップＳ６０３，Ｓ６０４）。
【０１６８】
ステップＳ６０４において、更新要欄にマークがあると、版数管理部４１１は、算出されたＣＰＵ使用率がＣＰＵ使用率管理テーブル２８３内のＣＰＵ使用率閾値未満であるかどうかをチェックする。（ステップＳ６０５，Ｓ６０６）。
【０１６９】
ステップＳ６０６において、算出されたＣＰＵ使用率がＣＰＵ使用率閾値未満でなければ、版数管理部４１１は、タイマ割込処理（１秒）を終了する。
【０１７０】
ステップＳ６０６において、算出されたＣＰＵ使用率がＣＰＵ使用率閾値未満であれば、版数管理部４１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部２３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部４１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部２３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置４にダウンロードする。すなわち、装置４の版数管理部４１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部４１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ６０７）。
【０１７１】
更に、版数管理部４１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（１秒）を終了する。（ステップＳ６０８）。
【０１７２】
図１７は、第５の実施形態において、プログラムの更新の必要性を検出（図中の時刻０分）してからログ一時エリア４４のログ情報をグラフ化にしたもので、Ｔ１分後にＣＰＵ使用率閾値未満になったことを示している。すなわち、直近のＴ１分後に更新されるべきプログラムが装置４内にダウンロードされることになる。
【０１７３】
以上説明したように、第５の実施の形態おいては、装置４が、プログラムの更新の必要性を確認すると、一定周期ごとに現時点のＣＰＵ使用率がＣＰＵ使用率閾値未満であるかを確認し、閾値未満であれば、更新すべきプログラムをダウンロードする。そのため、第５の実施の形態は、人を介さずに自動的にＣＰＵ使用率の低い時間帯に更新すべきプログラムを版数管理サーバ１からダウンロードすることになり、装置４の処理能力低下を防ぐことができる。
【０１７４】
また、第５の実施の形態は、装置４がプログラムの更新の必要性を確認すると、直近のＣＰＵ使用率の低い時間帯を検出することで更新すべきプログラムをダウンロードして更新するようにしている。そのため、第５の実施の形態は、第１または第３の実施の形態と比較すると、ユーザがプログラムの更新をすぐに行いたい場合に優れている。
【０１７５】
次に、本発明を実施するための第６の最良の形態について図面を参照して説明する。
【０１７６】
図１８は、本発明の第６の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ１と、複数の装置５と、ネットワーク９０１とから構成されている。なお、版数管理サーバ１と装置５とは、ネットワーク９０１に接続されている。
【０１７７】
第５の実施の形態と比較すると、第６の実施の形態は、装置４が装置５になっている点で第５の実施の形態と相違する。
【０１７８】
装置５は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置（コンピュータ）である。この装置５は、制御部５１と、プログラム格納部２２と、インタフェース部５３と、ログ一時エリア５４と、ＣＰＵ２５と、タイマ部２６１と、タイマ部２６２と、時計部２７とから構成される。更に、装置５は、プログラム管理テーブル２８１と、トラヒック量管理テーブル３８３とから構成される。なお、図１８において、第５の実施の形態と同じ機能を持つブロックである場合には、第５の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第５の実施の形態と同じもの（第１の実施の形態と同じ付与番号の付いたブロック）は、説明を省略している。
【０１７９】
制御部５１は、ＣＰＵ２５がプログラム格納部２２に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部５１は、ＣＰＵ２１が各種プログラムを実行した場合の機能ブロックを示している。この制御部５１は、版数管理部５１１と、トラヒック量算出部５１２とを含んでいる。
【０１８０】
版数管理部５１１は、装置５で運用されているプログラム版数を、プログラム管理テーブル２８１を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ１に対して周期的にチェックの依頼を行う。更に、版数管理部５１１は、プログラムの更新が必要とされた場合に、トラヒック量算出部５１２が算出したトラヒック量を基にトラヒック量が閾値未満であれば更新すべきプログラムを版数管理サーバ１からダウンロードする。
【０１８１】
トラヒック量算出部５１２は、タイマ部２６１からのタイマ割込（例では、１秒）によりトラヒック量を算出し、その算出したトラヒック量をログ一時エリア５４のログエリア５４３に格納すると共に、版数管理部５１１に通知する。なお、この場合のトラヒック量とは、インタフェース部５３が１秒あたりのネットワーク９０１とのデータのやり取りで送受信したバイト数を示す。従って、トラヒック量の単位は、バイト数／秒（Ｂ／ｓ）となる。
【０１８２】
インタフェース部５３は、制御部５１の制御の下で、ネットワーク９０１を介して版数管理サーバ１等の他装置とのデータのやり取りをイーサーネット（登録商標）仕様により行う。インタフェース部５３は、１パケットを受信するごとに受信する１パケット内のバイト数をログ一時エリア５４内の受信カウンタ５４２に加算する。インタフェース部５３は、１パケットを送信するごとに送信する１パケット内のバイト数をログ一時エリア５４内の送信カウンタ５４１に加算する。
【０１８３】
ログ一時エリア５４は、図示していないメモリ（例えばＲＡＭ）内に割り当てられている。このログ一時エリア５４には、送信カウンタ５４１と、受信カウンタ５４２とログエリア５４３とが割り当てられている。
【０１８４】
送信カウンタ５４１には、一定間隔の間（例では、１秒の間）、インタフェース部５３が１パケットを送信するごとに送信する１パケット内のバイト数を送信カウンタ５４１に加算し、その加算した値が設定されている。受信カウンタ５４２には、一定間隔の間（例では、１秒の間）、インタフェース部５３が１パケットを受信するごとに受信する１パケット内のバイト数を加算し、その加算した値が設定されている。すなわち、送信カウンタ５４１および受信カウンタ５４２は、パケットを送受信するごとにインタフェース部５３の制御の下でバイト数をカウントし続け、一定間隔（例では、１秒間隔）ごとに制御部５１の制御の下でクリア（「０」値にセット）されることになる。
【０１８５】
ログエリア５４３には、一定の間隔（例では、１秒）ごとに制御部５１の制御の下で、トラヒック量と時刻情報とがトラヒック量のログ情報として時刻順（算出順）に格納されていく。ログエリア５４３には、発生順に保存されていく容量が一杯になった場合には、ラウンドロビン方式により頭からトラヒック量がオーバーライトされる。
【０１８６】
次に、本発明の第６の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
【０１８７】
装置５が版数管理サーバ１に対して版数更新のチェックを行う場合の動作については、装置５が図１１のフローチャートに沿った動作を行う。この場合、第５の実施の形態で説明した装置４（版数管理部４１１，インタフェース部２３を含む）の処理を、装置５（版数管理部５１１，インタフェース部５３を含む）の処理に置き換えることで、装置５の動作が装置４の動作と同じになるので説明を省略する。
【０１８８】
今、装置５の制御部５１は、プログラム格納部２２に格納されているプログラムを実行し、ネットワーク９０１に接続されている機器と通信を行っている。この場合、インタフェース部５３は、制御部５１の指示の下でデータを送信先に送信する場合、ネットワーク９０１に１パケット送信するごとに送信するパケット内のデータのバイト数をカウントする。インタフェース部５３は、１パケット送信するごとにそのカウントしたバイト数をログ一時エリア５４内の送信カウンタ５４１に加算する。また、インタフェース部５３は、ネットワーク９０１からパケットを受信する場合、ネットワーク９０１から１パケット受信するごとに受信するパケット内のデータのバイト数をカウントする。インタフェース部５３は、１パケット受信するごとにそのカウントしたバイト数をログ一時エリア５４内の受信カウンタ５４２に加算する。このような環境の下でタイマ部２６１からの割り込み（１秒間隔で発生）が制御部５１に発生したとする。
【０１８９】
すると、制御部５１は、トラヒック量算出部５１２に制御を渡す。制御を渡されたトラヒック量算出部５１２は、トラヒック量を算出する。この場合の算出方法の一例として以下に説明する。すなわち、トラヒック量算出部５１２は、ログ一時エリア５４の送信カウンタ５４１に格納されている送信バイト数と受信カウンタ５４２に格納されている受信バイト数とを読み出し、それぞれ読み出した送信バイト数と受信バイト数とを加算する。更に、トラヒック量算出部５１２は、その加算したバイト数から１秒あたりのバイト数を算出し、その算出した１秒あたりのバイト数をトラヒック量として算出する。（図１９のステップＳ７０１）
トラヒック量算出部５１２は、算出したトラヒック量をトラヒック量のリアルタイム値としてログ一時エリア５４のログエリア５４３に算出順に格納する。この場合、トラヒック量算出部５１２は、時計部２７から現在の時刻を読み出して、算出したトラヒック量と一緒に格納すると共に、送信カウンタ５４１と受信カウンタ５４２とをクリアする。（ステップＳ７０２）。
【０１９０】
トラヒック量算出部５１２は、算出したトラヒック量をログ一時エリア５４に格納した後、算出したトラヒック量を版数管理部５１１に通知すると共に制御を版数管理部５１１に渡す。制御を渡された版数管理部５１１は、プログラム管理テーブル２８１内の更新要欄にマークがあるかの確認を行う。（ステップＳ７０３，Ｓ７０４）。
【０１９１】
ステップＳ７０４において、更新要欄にマークがあると、版数管理部５１１は、算出されたトラヒック量がトラヒック量管理テーブル３８３内のトラヒック量閾値未満であるかどうかをチェックする。（ステップＳ７０５，Ｓ７０６）。
【０１９２】
ステップＳ７０６において、算出したトラヒック量がトラヒック量閾値未満でなければ、版数管理部５１１は、タイマ割込処理（１秒）を終了する。
【０１９３】
ステップＳ７０６において、算出したトラヒック量がトラヒック量閾値未満であれば、版数管理部５１１は、プログラム管理テーブル２８１内の接続先欄から接続先を読み出し、インタフェース部５３を介して接続先の版数管理サーバ１に論理接続する。更に、論理接続（通信パス確立）後、版数管理部５１１は、プログラム管理テーブル２８１内の更新要欄にマークが付いているプログラム（複数可）のダウンロードの要求を、インタフェース部５３を介して行う。すると、インタフェース部１３を介してダウンロードの要求を受けた版数管理サーバ１の版数管理部１１１は、該当するプログラムをプログラム格納部１２から読み出し、要求のあった装置５にダウンロードする。すなわち、装置５の版数管理部５１１は、版数管理サーバ１から更新すべきプログラムをダウンロードすることになる。更に、版数管理部５１１は、プログラム格納部２２内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。（ステップＳ７０７）。
【０１９４】
更に、版数管理部５１１は、プログラム管理テーブル２８１内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理（１秒）を終了する。（ステップＳ７０８）。
【０１９５】
以上説明したように、第６の実施の形態においては、装置５が、プログラムの更新の必要性を確認すると、一定周期ごとに現時点のトラヒック量がトラヒック量閾値未満であるかを確認し、閾値未満であれば、更新すべきプログラムをダウンロードする。そのため、第６の実施の形態は、人を介さずに自動的にトラヒック量の低い時間帯に更新すべきプログラムを版数管理サーバ１からダウンロードすることになり、装置５の処理能力低下を防ぐことができる。
【０１９６】
また、第６の実施の形態は、装置５がプログラムの更新の必要性を確認すると、直近のトラヒック量の低い時間帯を検出することで更新すべきプログラムをダウンロードして更新するようにしている。そのため、第６の実施の形態は、第２または第４の実施の形態と比較すると、ユーザがプログラムの更新をすぐに行いたい場合に優れている。
【図面の簡単な説明】
【０１９７】
【図１】本発明の第１または第２の実施の形態におけるシステムの構成を示すブロック図である。
【図２】図１の統計情報テーブルの構成の概略を示す構成図である。
【図３】図１または図１４のＣＰＵ使用率管理テーブルの構成の概略を示す構成図である。
【図４】図１、図８、または図１４のプログラム管理テーブルの構成の概略を示す構成図である。
【図５】第１または第２の実施の形態における図１のタイマ部２６２からのタイマ割込による装置の動作を示すフローチャートである。
【図６】第１または第２の実施の形態における図１のタイマ部２６１からのタイマ割込による装置の動作を示すフローチャートである。
【図７】図２と別の図１の統計情報テーブルの構成の概略を示す構成図である。
【図８】本発明の第３または第４の実施の形態におけるシステムの構成を示すブロック図である。
【図９】図８の統計情報テーブルの構成の概略を示す構成図である。
【図１０】図８のトラヒック量管理テーブルの構成の概略を示す構成図である。
【図１１】第３または第４の実施の形態における図８のタイマ部２６２からのタイマ割込による装置の動作を示すフローチャートである。
【図１２】第３または第４の実施の形態における図８のタイマ部２６１からのタイマ割込による装置の動作を示すフローチャートである。
【図１３】図９と別の図８の統計情報テーブルの構成の概略を示す構成図である。
【図１４】本発明の第５の実施の形態におけるシステムの構成を示すブロック図である。
【図１５】第５の実施の形態における図１４のタイマ部２６２からのタイマ割込による装置の動作を示すフローチャートである。
【図１６】第５の実施の形態における図１４のタイマ部２６１からのタイマ割込による装置の動作を示すフローチャートである。
【図１７】第５の実施の形態において、プログラムの更新の必要性を検知した後のＣＰＵ使用率の変動を示すグラフである。
【図１８】本発明の第６の実施の形態におけるシステムの構成を示すブロック図である。
【図１９】第６の実施の形態における図１８のタイマ部２６１からのタイマ割込による装置の動作を示すフローチャートである。
【符号の説明】
【０１９８】
１    版数管理サーバ
２，３，４    装置
１１，２１，３１，４１，５１    制御部
１２，２２    プログラム格納部
１３，２３，３３，５３    インタフェース部
１４    プログラム版数管理テーブル
２４，３４，４４，５４    ログ一時エリア
２５    ＣＰＵ
２７    時計部
１１１，２１１，３１１，４１１，５１１    版数管理部
２１２，４１２    ＣＰＵ使用率算出部
２６１，２６２    タイマ部
２８１    プログラム管理テーブル
２８２，３８２    統計情報テーブル
２８３    ＣＰＵ使用率管理テーブル
２８４，３８４    ログデータベース
３１２，５１２    トラヒック量算出部
３４１，５４１    送信カウンタ
３４２，５４２    受信カウンタ
３８３    トラヒック量管理テーブル
５４３    ログエリア
【図１】
2006092469.tif 000003
【図２】
2006092469.tif 000004
【図３】
2006092469.tif 000005
【図４】
2006092469.tif 000006
【図５】
2006092469.tif 000007
【図６】
2006092469.tif 000008
【図７】
2006092469.tif 000009
【図８】
2006092469.tif 000010
【図９】
2006092469.tif 000011
【図１０】
2006092469.tif 000012
【図１１】
2006092469.tif 000013
【図１２】
2006092469.tif 000014
【図１３】
2006092469.tif 000015
【図１４】
2006092469.tif 000016
【図１５】
2006092469.tif 000017
【図１６】
2006092469.tif 000018
【図１７】
2006092469.tif 000019
【図１８】
2006092469.tif 000020
【図１９】
2006092469.tif 000021