次に、本発明を実施するための第1の最良の形態について図面を参照して説明する。
図1は、本発明の第1の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ1と、複数の装置2と、ネットワーク901とから構成されている。なお、版数管理サーバ1と装置2とは、ネットワーク901に接続されている。
版数管理サーバ1は、サーバ装置、ワークステーション、パソコン等の情報処理装置(コンピュータ)である。この版数管理サーバ1は、制御部11と、プログラム格納部12と、インタフェース部13と、プログラム版数管理テーブル14とから構成されている。
制御部11は、図示していないCPU(Central Processing Unit)によりプログラム制御で動作する。すなわち、制御部11は、版数管理サーバ1のCPUが図示していない記憶部(例えば、磁気ディスク、メモリ等)に格納されている各種プログラムを実行した場合の機能ブロックを示している。制御部11は、装置2にダウンロードするプログラムの版数の管理を行う版数管理部111を含む。
プログラム格納部12は、図示していない不揮発性の記録媒体装置(例えば、磁気ディスク)内に割り当てられており、このプログラム格納部12には、装置2で使用するプログラムの最新版数が格納されている。
インタフェース部13は、制御部11の制御の下で、ネットワーク901を介して装置2とのデータのやり取りをイーサーネット(登録商標)仕様により行う。この場合、制御部11は、インタフェース部13を介して、TCP/IP通信機能を用いて接続先とデータの送受信を行う。
プログラム版数管理テーブル14は、図示していない不揮発性の記録媒体装置(例えば、磁気ディスク)内に割り当てられており、プログラム版数管理テーブル14には、装置2にダウンロードするプログラム識別名毎に最新の版数が登録されている。更に、プログラム版数管理テーブル14は、プログラムの版数アップされる毎に制御部11により改版される。
装置2は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置(コンピュータ)である。この装置2は、制御部21と、プログラム格納部22と、インタフェース部23と、ログ一時エリア24と、CPU25と、タイマ部261と、タイマ部262と、時計部27とから構成される。更に、装置2は、プログラム管理テーブル281と、統計情報テーブル282と、CPU使用率管理テーブル283と、ログデータベース284とから構成される。
制御部21は、CPU25がプログラム格納部22に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部21は、CPU25が更新プログラムを含む各種プログラムを実行した場合の機能ブロックを示している。この制御部21は、版数管理部211と、CPU使用率算出部212とを含んでいる。
版数管理部211は、装置2で運用されているプログラム版数を、プログラム管理テーブル281を検索することにより認識すると共に、プログラム版数の更新有無のチェックの依頼を版数管理サーバ1に対して周期的に行う。更に、版数管理部211は、プログラムの更新が必要とされた場合に、統計情報テーブル282を検索することによりCPU使用率の低い時間帯を検出し、その低い時間帯に更新すべきプログラムを版数管理サーバ1からダウンロードする。
CPU使用率算出部212は、時間帯ごとにCPU25の使用率の平均を算出し、ログ情報として、ログデータベース284に保存する。更に、CPU使用率算出部212は、定期的(例では、24時間)に、ログデータベース284のログ情報から一定期間(例では、1ヶ月)における各時間帯のCPU使用率の平均を算出し、統計情報テーブル282を更新する。
プログラム格納部22は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられており、このプログラム格納部22には、版数管理サーバ1からダウンロードしたプログラムが格納されている。なお、装置2がモバイル端末、携帯端末等の携帯型の端末であれば、プログラム格納部22は、不揮発性のメモリ(例えば、フラッシュメモリ)であることが望ましい。なお、更新プログラムは、図示していない媒体装置(例えば、CD−R/W、DVD−R/W,DVD+R/W等の媒体の読み出しのできる装置)からプログラム格納部22にインストールしても良い。
インタフェース部23は、制御部21の制御の下で、ネットワーク901を介して版数管理サーバ1等の他装置とのデータのやり取りをイーサーネット(登録商標)仕様により行う。
ログ一時エリア24は、図示していないメモリ(例えばRAM)内に割り当てられている。このログ一時エリア24には、制御部21が一定間隔毎(例えば、1秒ごと)に算出したCPU使用率とその算出時の時間とがログとして順に書き込まれる。この場合、ログ一時エリア24には、1時間帯分(例えば、1時間帯分は2時間)のログが保存され、ログ一時エリア24は、1時間帯分(例えば、2時間)毎に制御部21の制御の下で更新される。
プログラム管理テーブル281は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。このプログラム管理テーブル281には、図4に示すように、接続先欄と、プログラム識別名欄と、プログラム識別名に対応する版数欄と、プログラム識別名に対応する更新要欄とから構成される。接続先欄には、版数管理サーバの接続先(IPアドレス)が格納されており、この接続先欄の内容は、版数管理部211が版数管理サーバ1にアクセスするときに利用される。プログラム識別名欄には、版数管理サーバ1から装置2内にダウンロードされたプログラムの識別を示す内容が格納されている。版数欄には、プログラム識別名の最新の版数を示す内容が格納される。更新要欄には、更新の必要性があるかどうかを示す内容が格納され、この更新要欄の内容は、該当するプログラムのダウンロードを行うかどうかの判断に利用される。更に、プログラム管理テーブル281は、装置2内にダウンロードされるプログラムが版数アップされる毎に制御部21により版数欄の内容が更新される。
統計情報テーブル282は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。図2に統計情報の一例として、統計情報テーブル282の構成を示す。統計情報テーブル282には、時間帯(例では、2時間)毎に、その時間帯における一定期間(例では、1ヶ月)の平日のCPU使用率の平均値とその時間帯における一定期間の休日・祭日のCPU使用率の平均値とが統計情報として保持されている。
CPU使用率管理テーブル283は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。CPU使用率管理テーブル283には、図3に示すように、CPU使用率の低い時間帯かどうかを判定するための基準となるCPU使用率閾値が設定されている。
ログデータベース284は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。ログデータベース284には、1時間帯(例では、1時間帯の幅は2時間)ごとに、時刻順(発生順)にCPU使用率が記録される。
CPU25は、CPU(Central Processing Unit)である。
タイマ部261には、あらかじめ決められた時間α毎(例えば、1秒毎)に制御部21に割り込めるように、初期値aが設定されている。すなわち、タイマ部261は、装置2の内部クロックが発生する毎にカウントダウンされ、やがて「0」値になると、制御部21(CPU25)に割り込む。更に、タイマ部261が制御部21に割り込んだ後、初期値aが再設定され、上記の動作が繰り返される。
タイマ部262には、あらかじめ決められた時間β毎(例えば、24時間毎)に制御部21に割り込めるように、規定値bが設定されている。すなわち、タイマ部262は、内部クロックが発生する毎にカウントダウンされ、やがて「0」値になると、制御部21(CPU25)に割り込む。更に、タイマ部261が制御部21に割り込んだ後、初期値bが再設定され、上記の動作が繰り返される。
時計部27は、現在の時刻(年、月、日、時、分、秒)を刻んでおり、制御部21により読み出される。また、時計部27には、平日・祭日・休日のわかる暦も保存しており、制御部21が、時計部27からの読み出し時に、現在の時刻情報として、現在の時刻(年、月、日、時、分、秒)と共に、平日、祭日、または休日のいずれかを示すデータも読み出す。
なお、上記の説明では、一定期間の値、1時間帯の値、CPU使用率閾値等は、予めデフォルト値に設定されているという前提で説明したが、図示していないキーボード等の入力部からデフォルト値を変更できるようにすることが望ましい。
図5および図6は、制御部21が更新プログラムを実行した場合の動作を示すフローチャートである。
次に、本発明の第1の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
装置2が版数管理サーバ1に対して版数更新のチェックを行う場合の動作について、先ず図5のフローチャートに沿って説明する。
装置2の制御部21は、プログラム格納部22に格納されているプログラムを実行し、ネットワーク901に接続されている機器と通信を行っている。今、タイマ部261は1秒ごとに制御部21に割り込むように設定され、タイマ部262は24時間ごとに制御部21に割り込むように設定されている。このとき、タイマ部262から制御部21にタイマ割り込みが発生したとする。
すると、割り込まれた制御部21は、版数管理部211に制御を渡す。制御を渡された版数管理部211は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部23を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部211は、版数管理サーバ1に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部23を介して行う。(図5のステップS101)。
インタフェース部13を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ1の制御部11は、版数管理部111に制御を渡す。制御を渡された版数管理部111は、依頼元の装置2と通信を行うことで装置2から版数管理サーバ1で管理しているプログラム識別名の版数を取得する。更に、版数管理部111は、プログラム版数管理テーブル14に登録されているプログラム識別名の版数と装置2から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部111は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置2に対してインタフェース部13を介して通知する。(ステップS102)。
インタフェース部23を介して更新の必要性があるとの通知を版数管理サーバ1から受け取った装置2の版数管理部211は、プログラム管理テーブル281内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。(ステップS103)。
更に、版数管理部211は、現在の時刻情報を時計部27から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル282(図2を参照)内で現在時刻に該当する時間帯を検索し、その該当する時間帯のCPU使用率を抽出する。この場合、統計情報テーブル282内を検索しCPU使用率を抽出する版数管理部211は、現在が平日であれば、平日欄のCPU使用率を抽出し、現在が休日または祭日であれば、休日・祭日欄のCPU使用率を抽出する。更に、版数管理部211は、抽出した現在の時間帯におけるCPU使用率がCPU使用率管理テーブル283内のCPU使用率閾値未満であれば低いと判定し、CPU使用率閾値以上であれば高いと判定する。すなわち、版数管理部211は、平日・休日・祭日を考慮した現在の時間がCPU使用率の低い時間帯であるかの確認を、統計情報テーブル282を検索しながら確認する。(ステップS104,S105)。
なお、ステップS104,S105において、CPU使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、平日・休日・祭日を考慮した現在の時間帯におけるCPU使用率が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS104,S105の別の処理)。
ステップS105において、低い時間帯であれば、版数管理部211は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部23を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部211は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部23を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置2にダウンロードする。すなわち、装置2の版数管理部211は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部211は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS106)。
更に、版数管理部211は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(24時間)を終了する。(ステップS107)。
なお、装置2の立ち上げ時(電源投入時、リセット時等)にも、制御部21は、上記で説明した図5のタイマ割込処理の動作を行う。
一方、タイマ部261からの割り込み(1秒間隔で発生)が制御部21に発生したとする。すると、制御部21は、制御をCPU使用率算出部212に渡す。制御を渡されたCPU使用率算出部212は、CPU使用率を算出する。この場合の算出方法の一例として以下に説明する。すなわち、制御部21に含まれるドライバ(制御プログラム)を実行するCPU25が過去1秒間に処理要求のあったタスクごとに処理終了に要した時間を測定している。このタイマ部261からの割り込みによりCPU使用率算出部212がドライバの測定した全タスクの合計の処理時間の1秒に占める割合(単位:%)を算出する。この算出した割合が瞬間的なCPU使用率となる。(図6のステップS201)。
CPU使用率算出部212は、CPU使用率算出時に現在の時刻(この場合の時刻とは、例えば、時、分、秒)を時計部27から読み出す。更に、CPU使用率算出部212は、その読み出した現在の時刻と算出したCPU使用率をリアルタイムのCPU使用率ログ情報としてログ一時エリア24に時刻順(算出順)に格納する。(ステップS202)。
CPU使用率算出部212は、時間幅をカウントするために、カウンタを+1加算する。なお、カウンタは、図示していないレジスタを使用し、初期設定時には「0」値が設定され、カウントされるごとに+1ずつ増える。このカウンタの内容を「n」(n=0,1,2,3,・・・)としている。(ステップS203)。
CPU使用率算出部212は、定数nが所定の時間幅の値(例では、時間幅が2時間)になったかどうかを確認する。(ステップS204)。
ステップS204において、時間幅が2時間になっていなければ、CPU使用率算出部212は、版数管理部211に制御を渡す。制御を渡された版数管理部211は、プログラム管理テーブル281の更新要欄にマークがあるかの確認を行う。(ステップS210,S211)。
ステップS211において、マークがなければ、版数管理部211は、タイマ割込処理(1秒)を終了する。
ステップS211において、マークがあれば、版数管理部211は、現在の時刻情報を時計部27から読み出す。更に、版数管理部211は、読み出した現在の時刻情報を基に、統計情報テーブル282内で現在時刻に該当する時間帯を検索し、該当する時間帯のCPU使用率を抽出する。この場合、統計情報テーブル282内を検索しCPU使用率を抽出する版数管理部211は、現在が平日であれば、平日のCPU使用率を抽出し、現在が休日または祭日であれば、休日・祭日のCPU使用率を抽出する。更に、版数管理部211は、抽出したCPU使用率がCPU使用率管理テーブル283内のCPU使用率閾値未満であるかどうかをチェックする。すなわち、版数管理部211は、平日・休日・祭日を考慮した現在の時間がCPU使用率の低い時間帯であるかどうかを、統計情報テーブル282(図2を参照)を検索しながら確認する。(ステップS212,S213)。
なお、ステップS212,S213において、CPU使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、平日・休日・祭日を考慮した現在の時間帯におけるCPU使用率が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS212,S213の別の処理)。
ステップS213において、低い時間帯でなければ、版数管理部211は、タイマ割込処理(1秒)を終了する。
ステップS213において、低い時間帯であれば、版数管理部211は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部23を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部211は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部23を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置2にダウンロードする。すなわち、装置2の版数管理部211は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部211は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS214)。
更に、版数管理部211は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(1秒)を終了する。(ステップS215)。
ステップS204において、時間幅が2時間になっていれば、CPU使用率算出部212は、ログ一時エリア24に格納されているCPU使用率を全て読み出し、その使用率の平均を算出する。更に、CPU使用率算出部212は、計算した平均のCPU使用率をログデータベース284に現在の時刻情報(この場合、年、月、日、時、分、秒、および平日/休日・祭日の識別情報)と共に、時間帯のCPU使用率として時刻順(算出順)に記録する。この場合、ログデータベース284には、1時間帯(2時間)ごとにCPU使用率が格納されることになる。(ステップS205,S206)。
CPU使用率算出部212は、その日の最終時間帯(22:00〜24:00)であるかを時計部27から読み出した現在の時刻(日にちの変わり目の時刻)から確認する。(ステップS207)。
ステップS207において、最終時間帯であれば、CPU使用率算出部212は、一定期間(例えば、1ヶ月間)の平日の時間帯ごとにその時間帯のCPU使用率を算出するためにログデータベース284からこの期間の平日に該当する全てのCPU率を読み出す。CPU使用率算出部212は、平日の時間帯ごとに読み出したCPU使用率の平均を計算し、統計情報テーブル282を更新する。更に、CPU使用率算出部212は、一定期間(例えば、1ヶ月間)の休日・祭日の時間帯ごとにその時間帯のCPU使用率を算出するためにログデータベース284からこの期間の休日・祭日に該当する全てのCPU使用率を読み出す。CPU使用率算出部212は、休日・祭日の時間帯ごとに読み出したCPU使用率の平均を計算し、CPU使用率の統計情報として統計情報テーブル282(図2を参照)を更新する。(ステップS208)。
CPU使用率算出部212は、定数nを「0」値に設定し、ログ一時エリア24をクリアし、タイマ割込処理(1秒)を終了する。(ステップS209)。
なお、ステップS207において、最終時間帯でなければ、CPU使用利算出部212は、ステップS209に進む。
以上説明したように、第1の実施の形態では、装置2が統計を取ったCPU使用率統計情報(統計情報テーブル282)からCPU使用率の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第1の実施の形態は、装置2の処理能力低下を防ぐことができる。
また、第1の実施の形態では、装置2が平日および休日・祭日のそれぞれの統計を取ったCPU使用率統計情報(統計情報テーブル282)から現在の時刻を基に平日または休日・祭日の時間帯のCPU使用率を抽出する。更に、装置2が抽出したCPU使用率がCPU使用率の低い時間帯の値であれば、人を介さずに自動的にそのCPU使用率の低い時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第1の実施の形態は、平日と休日・祭日によって作業内容が変わるユーザに対しても、装置2の処理能力低下を防ぐことができる。
次に、本発明を実施するための第2の最良の形態について図面を参照して説明する。
第2の実施の形態のシステムの構成は、第1の実施の形態と同じ図1のブロック図に示す。第1の実施の形態では、装置2がCPU使用率を平日と休日・祭日との2つに分けて時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ1からプログラムをダウンロードするようにしていた。しかし、第2の実施の形態では、装置2がCPU使用率を平日と休日・祭日とに分けないで1つにして時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ1からプログラムをダウンロードする。そのため、第2の実施の形態では、統計情報テーブル282の構成と、版数管理部211の低い時間帯の判断処理と、CPU使用率算出部212の時間帯のCPU使用率の算出処理が、第1の実施の形態と相違する。以下に第1の実施の形態と第2の実施の形態との相違点だけを抽出して説明する。
第2の実施の形態における統計情報テーブル282の構成の一例は、図7に示す。この統計情報テーブル282には、終日の時間帯(例では、2時間)ごとにその時間帯における一定期間(例では、1ヶ月)のCPU使用率の平均値が統計情報として保持されている。
版数管理部211の低い時間帯の判断処理は、第1の実施の形態で説明した図5のステップS104,S105と図6のステップS212,S213とに該当する。
CPU使用率算出部212の時間帯のCPU使用率の算出処理は、第1の実施の形態で説明した図6のステップS205,S206,S208に該当する。
次に、本発明の第2の実施の形態において、実施するための最良の動作について説明する。
第2の実施の形態においても第1の実施の形態と同じように図5と図6のフローチャートを参照しながら説明する。
図5において、版数管理部211は、ステップS103の処理の後、現在の時刻情報を時計部27から読み出す。更に、版数管理部211は、読み出した現在の時刻情報を基に、統計情報テーブル282(図7を参照)内で現在時刻に該当する時間帯を検索し、該当する時間帯のCPU使用率を抽出する。更に、版数管理部211は、抽出したCPU使用率が、CPU使用率管理テーブル283内のCPU使用率閾値未満であれば低いと判定し、CPU使用率閾値以上であれば高いと判定する。すなわち、版数管理部211は、現在の時間がCPU使用率の低い時間帯であるかの確認を、統計情報テーブル282を検索しながら確認する。(ステップS104,S105)。
なお、ステップS104,S105において、CPU使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、現在の時間帯におけるCPU使用率が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS104,S105の別の処理)。
図6のステップS204において、時間幅が2時間になっていれば、CPU使用率算出部212は、ログ一時エリア24に格納されているCPU使用率を全て読み出し、その使用率の平均を算出する。更に、CPU使用率算出部212は、計算した平均のCPU使用率をログデータベース284に現在の時刻(この場合、年、月、日、時、分、秒)と共に、時間帯のCPU使用率として時刻順(算出順)に記録する。この場合、ログデータベース284には、1時間帯(2時間)ごとにCPU使用率が格納されることになる。(ステップS205,S206)。
ステップS207において、最終時間帯であれば、CPU使用率算出部212は、一定期間(例えば、1ヶ月間)の時間帯ごとにその時間帯のCPU使用率をログデータベース284から全て読み出す。更に、CPU使用率算出部212は、時間帯ごとに読み出したCPU使用率の平均を計算し、CPU使用率の統計情報として統計情報テーブル282(図7を参照)を更新する。(ステップS208)。
ステップS211において、マークがあれば、版数管理部211は、現在の時刻情報を時計部27から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル282内で現在時刻に該当する時間帯を検索し、該当するCPU使用率を抽出する。更に、版数管理部211は、抽出したCPU使用率がCPU使用率管理テーブル283内のCPU使用率閾値未満であるかどうかをチェックする。すなわち、版数管理部211は、現在の時間がCPU使用率の低い時間帯であるかどうかを、統計情報テーブル282(図7を参照)を検索しながら確認する。(ステップS212,S213)。
上記のステップS212,S213において、CPU使用率の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、現在の時間帯におけるCPU使用率が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS212,S213の別の処理)。
なお、第2の実施の形態で説明した図5のステップS104,S105と図6のステップS205,S206,S208,S212,S213の処理を除き、第2の実施の形態における装置2の制御部21の動作は、第1の実施の形態と同じなので説明を省略する。
以上説明したように、第2の実施の形態は、装置2が統計を取ったCPU使用率統計情報(統計情報テーブル282)からCPU使用率の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第2の実施の形態は、装置2の処理能力低下を防ぐことができる。
上記第1および第2の実施の形態において、図5のステップS104〜S107の処理を省略しても良い。なぜならば、その後のタイマ部261によるタイマ割り込み(例では、1秒間隔)により、版数管理部211が、図6のステップS212〜S215の処理で図5のステップS104〜S107の処理と同じ動作を行うからである。
次に、本発明を実施するための第3の最良の形態について図面を参照して説明する。
図8は、本発明の第3の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ1と、複数の装置3と、ネットワーク901とから構成されている。なお、版数管理サーバ1と装置3とは、ネットワーク901に接続されている。
第1の実施の形態と比較すると、第3の実施の形態は、装置2が装置3になっている点で第1の実施の形態と相違する。
装置3は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置(コンピュータ)である。この装置3は、制御部31と、プログラム格納部22と、インタフェース部33と、ログ一時エリア34と、CPU25と、タイマ部261と、タイマ部262と、時計部27とから構成される。更に、装置3は、プログラム管理テーブル281と、統計情報テーブル382と、トラヒック量管理テーブル383と、ログデータベース384とから構成される。なお、図8において、第1の実施の形態と同じ機能を持つブロックである場合には、第1の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第1の実施の形態と同じもの(第1の実施の形態と同じ付与番号の付いたブロック)は、説明を省略している。
制御部31は、CPU25がプログラム格納部22に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部31は、CPU21が各種プログラムを実行した場合の機能ブロックを示している。この制御部31は、版数管理部311と、トラヒック量算出部312とを含んでいる。
版数管理部311は、装置3で運用されているプログラム版数を、プログラム管理テーブル281を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ1に対して周期的にチェックの依頼を行う。更に、版数管理部311は、プログラムの更新が必要とされた場合に、統計情報テーブル382を検索することによりトラヒック量の低い時間帯を検出し、その低い時間帯に更新すべきプログラムを版数管理サーバ1からダウンロードする。
トラヒック量算出部312は、時間帯(例では、2時間)ごとにトラヒック量を算出し、ログ情報としてログデータベース384に保存する。更に、トラヒック量算出部312は、定期的(例では、24時間)に、ログデータベース384のログ情報から一定期間(例では、1ヶ月)における各時間帯のトラヒック量の平均を算出し、統計情報テーブル382を更新する。なお、この場合のトラヒック量とは、インタフェース部33がネットワーク901とのデータのやり取りで送信した送信バイト数と受信した受信バイト数とを加算した値を1秒あたりに換算した値のことである。従って、トラヒック量の単位は、バイト数/秒(B/s)となる。
インタフェース部33は、制御部31の制御の下で、ネットワーク901を介して版数管理サーバ1等の他装置とのデータのやり取りをイーサーネット(登録商標)仕様により行う。インタフェース部33は、1パケットを受信するごとに受信する1パケット内のバイト数をログ一時エリア34内の受信カウンタ342に加算する。インタフェース部33は、1パケットを送信するごとに送信する1パケット内のバイト数をログ一時エリア34内の送信カウンタ341に加算する。
ログ一時エリア34は、図示していないメモリ(例えばRAM)内に割り当てられている。このログ一時エリア34には、送信カウンタ341と、受信カウンタ342とが割り当てられている。送信カウンタ341には、送信したバイト数が格納されている。この送信カウンタ341の使用法としては、一定間隔の間(例えば、2時間の間)、インタフェース部33が1パケットを送信するごとに送信する1パケット内のバイト数を送信カウンタ341に加算する。受信カウンタ342には、送信したバイト数が格納されている。この受信カウンタ342の使用法としては、一定間隔の間(例えば、2時間の間)、インタフェース部33が1パケットを受信するごとに受信する1パケット内のバイト数を加算する。すなわち、送信カウンタ341および受信カウンタ343は、1時間帯(例えば、1時間帯の時間幅は2時間)の間、カウントし続け、1時間帯(例えば、2時間)毎に制御部31の制御の下で、クリア(「0」値にセット)される。
統計情報テーブル382は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。図9に統計情報の一例として、統計情報テーブル382の構成を示す。統計情報テーブル382には、時間帯(例では、2時間)毎に、その時間帯における一定期間(例では、1ヶ月)の平日のトラヒック量の平均値とその時間帯における一定期間の休日・祭日のトラヒック量の平均値とが統計情報として保持されている。
トラヒック量管理テーブル383は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。トラヒック量管理テーブル383には、図10に示すように、トラヒック量の低い時間帯かどうかを判定するための基準となるトラヒック量閾値が予め設定されている。
ログデータベース384は、図示していない不揮発性の記憶部(例えば、フラッシュメモリ、磁気ディスク等)内に割り当てられている。ログデータベース384には、1時間帯(例では、1時間帯の幅は2時間)ごとに、時刻順(発生順)にトラヒック量が記録される。
図11および図12は、制御部31が更新プログラムを実行した場合の動作を示すフローチャートである。
次に、本発明の第3の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
装置3が版数管理サーバ1に対して版数更新のチェックを行う場合の動作について、図11のフローチャートに沿って説明する。
装置3の制御部31は、プログラム格納部22に格納されているプログラムを実行し、ネットワーク901に接続されている機器と通信を行っている。この場合、インタフェース部33は、制御部31の指示の下でデータを送信先に送信する場合、ネットワーク901に1パケット送信するごとに送信するパケット内のデータのバイト数をカウントする。インタフェース部33は、1パケット送信するごとにそのカウントしたバイト数をログ一時エリア34内の送信カウンタ341に加算する。また、インタフェース部33は、ネットワーク901からパケットを受信する場合、ネットワーク901から1パケット受信するごとに受信するパケット内のデータのバイト数をカウントする。インタフェース部33は、1パケット受信するごとにそのカウントしたバイト数をログ一時エリア34内の受信カウンタ342に加算する。
今、タイマ部261は1秒ごとに制御部31に割り込むように設定され、タイマ部262は24時間ごとに制御部31に割り込むように設定されている。このとき、タイマ部262から制御部31にタイマ割り込みが発生したとする。
すると、割り込まれた制御部31は、版数管理部311に制御を渡す。制御を渡された版数管理部311は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部33を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部311は、版数管理サーバ1に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部33を介して行う。(図5のステップS301)。
インタフェース部13を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ1の制御部11は、版数管理部111に制御を渡す。制御を渡された版数管理部111は、依頼元の装置3と通信を行うことで装置3から版数管理サーバ1で管理しているプログラム識別名の版数を取得する。更に、版数管理部111は、プログラム版数管理テーブル14に登録されているプログラム識別名の版数と装置3から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部111は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置3に対してインタフェース部13を介して通知する。(ステップS302)。
インタフェース部33を介して更新の必要性があるとの通知を版数管理サーバ1から受け取った装置3の版数管理部311は、プログラム管理テーブル281内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。(ステップS303)。
更に、版数管理部311は、現在の時刻情報を時計部27から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル382(図9を参照)内で現在時刻に該当する時間帯を検索し、その該当する時間帯のトラヒック量を抽出する。この場合、統計情報テーブル382内を検索しトラヒック量を抽出する版数管理部311は、現在が平日であれば、平日欄のトラヒック量を抽出し、現在が休日または祭日であれば、休日・祭日欄のトラヒック量を抽出する。更に、版数管理部311は、抽出した現在の時間帯におけるトラヒック量がトラヒック量管理テーブル383内のトラヒック量閾値未満であれば低いと判定し、トラヒック量閾値以上であれば高いと判定する。すなわち、版数管理部311は、平日・休日・祭日を考慮した現在の時間がトラヒック量の低い時間帯であるかの確認を、統計情報テーブル382を検索しながら確認する。(ステップS304,S305)。
なお、ステップS304,S305において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、平日・休日・祭日を考慮した現在の時間帯におけるトラヒック量が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS304,S305の別の処理)。
ステップS305において、低い時間帯であれば、版数管理部311は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部33を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部311は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部33を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置3にダウンロードする。すなわち、装置3の版数管理部311は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部311は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS306)。
更に、版数管理部311は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(24時間)を終了する。(ステップS307)。
なお、装置3の立ち上げ時(電源投入時、リセット時等)にも、制御部31は、上記で説明した図11のタイマ割込処理の動作を行う。
一方、タイマ部261からの割り込み(1秒間隔で発生)が制御部31に発生したとする。すると、制御部31は、制御をトラヒック量算出部312に渡す。制御を渡されたトラヒック量算出部312は、時間幅をカウントするために、カウンタを+1加算する。なお、カウンタは、図示していないレジスタを使用し、初期設定時には「0」値が設定され、カウントされるごとに+1ずつ増える。このカウンタの内容を「n」(n=0,1,2,3,・・・)としている。(図12のステップS403)。
トラヒック量算出部312は、定数nが所定の時間幅の値(例では、時間幅が2時間)になったかどうかを確認する。(ステップS404)。
ステップS404において、時間幅が2時間になっていなければ、トラヒック量算出部312は、版数管理部311に制御を渡す。制御を渡された版数管理部311は、プログラム管理テーブル281の更新要欄にマークがあるかの確認を行う。(ステップS410,S411)。
ステップS411において、マークがなければ、版数管理部311は、タイマ割込処理(1秒)を終了する。
ステップS411において、マークがあれば、版数管理部311は、現在の時刻情報を時計部27から読み出し、読み出した現在の時刻情報を基に、統計情報テーブル382内で現在時刻に該当する時間帯を検索し、該当する時間帯のトラヒック量を抽出する。この場合、統計情報テーブル382内を検索しトラヒック量を抽出する版数管理部311は、現在が平日であれば、平日のトラヒック量を抽出し、現在が休日または祭日であれば、休日・祭日のトラヒック量を抽出する。更に、版数管理部311は、抽出したトラヒック量がトラヒック量管理テーブル383内のトラヒック量閾値未満であるかどうかをチェックする。すなわち、版数管理部311は、平日・休日・祭日を考慮した現在の時間がトラヒック量の低い時間帯であるかどうかを、統計情報テーブル382(図9を参照)を検索しながら確認する。(ステップS412,S413)。
なお、ステップS412,S413において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部311は、平日・休日・祭日を考慮した現在の時間帯におけるトラヒック量が統計情報テーブル382内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS412,S413の別の処理)。
ステップS413において、低い時間帯でなければ、版数管理部311は、タイマ割込処理(1秒)を終了する。
ステップS413において、低い時間帯であれば、版数管理部311は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部33を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部311は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部33を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置3にダウンロードする。すなわち、装置3の版数管理部311は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部311は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS414)。
更に、版数管理部311は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(1秒)を終了する。(ステップS415)。
ステップS404において、時間幅が2時間になっていれば、トラヒック量算出部312は、ログ一時エリア34の送信カウンタ341に格納されている送信バイト数と受信カウンタ342に格納されている受信バイト数を読み出す。更に、トラヒック量算出部312は、送信バイト数と受信バイト数とを加算し、その加算したバイト数を時間帯の時間幅(7200秒)で割ることで、この時間帯におけるトラヒック量として1秒あたりのバイト数を算出する。更に、トラヒック量算出部312は、計算したトラヒック量をログデータベース384に現在の時刻情報(この場合、年、月、日、時、分、秒、および平日/休日・祭日の識別情報)と共に、時間帯のトラヒック量として時刻順(算出順)に記録する。この場合、ログデータベース384には、1時間帯(2時間)ごとにトラヒック量が格納されることになる。(ステップS405,S406)。
トラヒック量算出部312は、その日の最終時間帯(22:00〜24:00)であるかを時計部27から読み出した現在の時刻(日にちの変わり目の時刻)から確認する。(ステップS407)。
ステップS407において、最終時間帯であれば、トラヒック量算出部312は、一定期間(例えば、1ヶ月間)の平日の時間帯ごとにその時間帯のトラヒック量を算出するためにログデータベース384からこの期間の平日に該当する全てのトラヒック量を読み出す。トラヒック量算出部312は、平日の時間帯ごとに読み出したトラヒック量の平均を計算し、統計情報テーブル382を更新する。更に、トラヒック量算出部312は、一定期間(例えば、1ヶ月間)の休日・祭日の時間帯ごとにその時間帯のトラヒック量を算出するためにログデータベース384からこの期間の休日・祭日に該当する全てのトラヒック量を読み出す。トラヒック量算出部312は、休日・祭日の時間帯ごとに読み出したトラヒック量の平均を計算し、トラヒック量の統計情報として統計情報テーブル382(図9を参照)を更新する。(ステップS408)。
トラヒック量算出部312は、定数nを「0」値に設定し、ログ一時エリア34の送信カウンタ341および受信カウンタ342をクリアし、タイマ割込処理(1秒)を終了する。(ステップS409)。
なお、ステップS407において、最終時間帯でなければ、トラヒック量算出部312は、ステップS409に進む。
以上説明したように、第3の実施の形態では、装置3が統計を取ったトラヒック量統計情報(統計情報テーブル382)からトラヒック量の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第3の実施の形態は、装置3の処理能力低下を防ぐことができる。
また、第3の実施の形態では、装置3が平日および休日・祭日のそれぞれの統計を取ったトラヒック量統計情報(統計情報テーブル382)から現在の時刻を基に平日または休日・祭日に対応した時間帯のトラヒック量を抽出する。更に、装置3がその抽出したトラヒック量がトラヒック量の低い時間帯の値であれば、人を介さずに自動的にトラヒック量の低い時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第3の実施の形態は、平日と休日・祭日によって作業内容が変わるユーザに対しても、装置3の処理能力低下を防ぐことができる。
次に、本発明を実施するための第4の最良の形態について図面を参照して説明する。
第4の実施の形態のシステムの構成は、第3の実施の形態と同じ図8のブロック図に示す。第3の実施の形態では、装置3がトラヒック量を平日と休日・祭日との2つに分けて時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ1からプログラムをダウンロードするようにしていた。しかし、第4の実施の形態では、装置3がトラヒック量を平日と休日・祭日とに分けないで1つにして時間帯ごとの統計情報を算出し、その算出した統計情報を用いて低い時間帯を抽出し、その低い時間帯に版数管理サーバ1からプログラムをダウンロードする。そのため、第4の実施の形態では、統計情報テーブル382の構成と、版数管理部311の低い時間帯の判断処理と、トラヒック量算出部312の時間帯のCPU使用率の算出処理が、第3の実施の形態と相違する。以下に第3の実施の形態と第4の実施の形態との相違点だけを抽出して説明する。
第4の実施の形態における統計情報テーブル382の構成の一例は、図13に示す。この統計情報テーブル382には、終日の時間帯(例では、2時間)ごとにその時間帯における一定期間(例では、1ヶ月)のトラヒック量が統計情報として保持されている。
版数管理部311の低い時間帯の判断処理は、第3の実施の形態で説明した図11のステップS304,S305と図12のステップS412,S413とに該当する。
トラヒック量算出部312の時間帯のトラヒック量の算出処理は、第3の実施の形態で説明した図12のステップS405,S406,S408に該当する。
次に、本発明の第4の実施の形態において、実施するための最良の動作について説明する。
第4の実施の形態においても第3の実施の形態と同じように図11と図12のフローチャートを参照しながら説明する。
図11において、版数管理部311は、ステップS303の処理の後、現在の時刻情報を時計部27から読み出す。更に、版数管理部311は、読み出した現在の時刻情報を基に、統計情報テーブル382(図13を参照)内で現在時刻に該当する時間帯を検索し、該当する時間帯のトラヒック量を抽出する。更に、版数管理部311は、抽出したトラヒック量がトラヒック量管理テーブル383内のトラヒック量閾値未満であれば低いと判定し、トラヒック量閾値以上であれば高いと判定する。すなわち、版数管理部311は、現在の時間がトラヒック量の低い時間帯であるかの確認を、統計情報テーブル382を検索しながら確認する。(ステップS304,S305)。
なお、ステップS304,S305において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部311は、現在の時間帯におけるトラヒック量が統計情報テーブル382内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS304,S305の別の処理)。
図12のステップS404において、時間幅が2時間になっていれば、トラヒック量算出部312は、ログ一時エリア34の送信カウンタ341に格納されている送信バイト数と受信カウンタ342に格納されている受信バイトとを読み出す。更に、トラヒック量算出部312は、読み出した送信バイト数と受信バイト数とを加算し、その加算したバイト数をログデータベース384に現在の時刻(この場合、年、月、日、時、分、秒)と共に、時間帯のトラヒック量として時刻順(算出順)に記録する。この場合、ログデータベース384には、1時間帯(2時間)ごとにトラヒック量が格納されることになる。(ステップS405,S406)。
ステップS407において、最終時間帯であれば、トラヒック量算出部312は、一定期間(例えば、1ヶ月間)の時間帯ごとにその時間帯のトラヒック量をログデータベース384から全て読み出す。更に、トラヒック量算出部312は、時間帯ごとに読み出したトラヒック量の平均を計算し、トラヒック量の統計情報として統計情報テーブル382(図13を参照)を更新する。(ステップS408)。
ステップS411において、マークがあれば、版数管理部311は、現在の時刻情報を時計部27から読み出す。更に、版数管理部311は、読み出した現在の時刻情報を基に、統計情報テーブル382内で現在時刻に該当する時間帯のトラヒック量がトラヒック量管理テーブル383内のトラヒック量閾値未満であるかどうかをチェックする。すなわち、版数管理部311は、現在の時間帯がトラヒック量の低い時間帯であるかどうかを、統計情報テーブル382(図13を参照)を検索しながら確認する。(ステップS412,S413)。
上記のステップS412,S413において、トラヒック量の低いという判定を以下のようにしても良い。すなわち、版数管理部211は、現在の時間帯におけるトラヒック量が統計情報テーブル282内で一番低い値であれば低いと判定し、一番低い値でなければ高いと判定する。(ステップS412,S413の別の処理)。
なお、上記の第4の実施の形態における図11のステップS304,S305と図12のステップS405,S406,S408,S412,S413の処理を除き、第4の実施の形態における装置3の制御部31の動作は、第3の実施の形態と同じなので説明を省略する。
また、上記の第3および第4の実施の形態では、トラヒック量を1秒あたりの送受信するバイト数として説明したが、トラヒック量を時間帯あたりの送受信するバイト数としても良い。
以上説明したように、第4の実施の形態では、装置3が統計を取ったトラヒック量統計情報(統計情報テーブル382)からトラヒック量の低い時間帯を抽出し、人を介さずに自動的にその時間帯に更新すべきプログラムをダウンロードするようにしている。そのため、第4の実施の形態は、装置3の処理能力低下を防ぐことができる。
上記第3および第4の実施の形態において、図11のステップS304〜S307の処理を省略しても良い。なぜならば、その後のタイマ部261によるタイマ割り込み(例では、1秒間隔)により、版数管理部311が、図12のステップS412〜S415の処理で図11のステップS304〜S307の処理と同じ動作を行うからである。
次に、本発明を実施するための第5の最良の形態について図面を参照して説明する。
図14は、本発明の第5の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ1と、複数の装置4と、ネットワーク901とから構成されている。なお、版数管理サーバ1と装置4とは、ネットワーク901に接続されている。
第1の実施の形態と比較すると、第5の実施の形態は、装置1が装置4になっている点で第1の実施の形態と相違する。
装置4は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置(コンピュータ)である。この装置4は、制御部41と、プログラム格納部22と、インタフェース部23と、ログ一時エリア44と、CPU25と、タイマ部261と、タイマ部262と、時計部27とから構成される。更に、装置4は、プログラム管理テーブル281と、CPU使用率管理テーブル283とから構成される。なお、図14において、第1の実施の形態と同じ機能を持つブロックである場合には、第1の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第1の実施の形態と同じもの(第1の実施の形態と同じ付与番号の付いたブロック)は、説明を省略している。
制御部41は、CPU25がプログラム格納部22に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部41は、CPU25が各種プログラムを実行した場合の機能ブロックを示している。この制御部41は、版数管理部411と、CPU使用率算出部412とを含んでいる。
版数管理部411は、装置4で運用されているプログラム版数を、プログラム管理テーブル281を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ1に対して周期的にチェックの依頼を行う。更に、版数管理部411は、プログラムの更新が必要とされた場合に、CPU使用率算出部412が算出したCPU使用率を基にCPU使用率が閾値未満であれば更新すべきプログラムを版数管理サーバ1からダウンロードする。
CPU使用率算出部412は、タイマ部261からのタイマ割込によりCPU使用率を算出し、その算出したCPU使用率をログ一時エリア44にログ情報として格納すると共に、版数管理部411に通知する。
ログ一時エリア44は、図示していないメモリ(例えば、RAM)内に割り当てられている。このログ一時エリア44には、CPU使用率が予め決められた時間間隔(例では1秒間隔)によりCPU使用率のログ情報として保存されていく。ログ一時エリア44には、発生順に保存されていく容量が一杯になった場合には、ラウンドロビン方式により頭からCPU使用率がオーバーライトされる。
図15および図16は、制御部41が更新プログラムを実行した場合の動作を示すフローチャートである。
次に、本発明の第5の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
装置4が版数管理サーバ1に対して版数更新のチェックを行う場合の動作について、図15のフローチャートに沿って説明する。
装置4の制御部41は、プログラム格納部22に格納されているプログラムを実行し、ネットワーク901に接続されている機器と通信を行っている。今、タイマ部261は1秒ごとに制御部41に割り込むように設定され、タイマ部262は24時間ごとに制御部41に割り込むように設定されている。このとき、タイマ部262から制御部41にタイマ割り込みが発生したとする。
すると、割り込まれた制御部41は、版数管理部411に制御を渡す。制御を渡された版数管理部411は、版数管理サーバ1に対してプログラム版数の更新有無のチェックの依頼を、インタフェース部23を介して行う。(図15のステップS501)。
インタフェース部13を介してプログラム版数の更新有無のチェックの依頼を受けた版数管理サーバ1の制御部11は、版数管理部111に制御を渡す。制御を渡された版数管理部111は、依頼元の装置4と通信を行うことで装置4から版数管理サーバ1で管理しているプログラム識別名の版数を取得する。更に、版数管理部111は、プログラム版数管理テーブル14に登録されているプログラム識別名の版数と装置4から取得したプログラム識別名の版数とを比較する。比較した結果、版数管理部111は、一致していないプログラム識別名があれば、更新の必要性と更新すべき全てのプログラム識別名を依頼元の装置4に対してインタフェース部13を介して通知する。(ステップS502)。
インタフェース部23を介して更新の必要性があるとの通知を版数管理サーバ1から受け取った装置4の版数管理部411は、プログラム管理テーブル281内で通知のあったプログラム識別名に対応する更新要欄にマークを付ける。マークを付けた後、版数管理部411は、タイマ部262によるタイマ割込の処理を終了する。(ステップS503)。
なお、装置4の立ち上げ時(電源投入時、リセット時等)にも、制御部41は、上記で説明した図15のタイマ割込処理の動作を行う。
一方、タイマ部261からの割り込み(1秒間隔で発生)が制御部41に発生したとする。すると、制御部41は、CPU使用率算出部412に制御を渡す。制御を渡されたCPU使用率算出部412は、CPU使用率を算出する。この場合の算出方法の一例として以下に説明する。すなわち、制御部41に含まれるドライバ(制御プログラム)を実行するCPU25が過去1秒間に処理要求のあったタスクごとに処理終了に要した時間を測定している。この環境の下で、CPU使用率算出部412は、ドライバの測定した全タスクの合計の処理時間の1秒に占める割合を算出する。この算出した割合が瞬間的な現在のCPU使用率となる。(図16のステップS601)。
CPU使用率算出部412は、算出したCPU使用率をCPU使用率のリアルタイム値のログ情報としてログ一時エリア44に算出順に格納する。この場合、CPU使用率算出部412は、時計部27から現在の時刻を読み出して、算出したCPU使用率と一緒に格納する。(ステップS602)。
CPU使用率算出部412は、算出したCPU使用率をログ一時エリア44に格納した後、算出したCPU使用率を版数管理部411に通知すると共に制御を版数管理部411に渡す。制御を渡された版数管理部411は、プログラム管理テーブル281内の更新要欄にマークがあるかの確認を行う。(ステップS603,S604)。
ステップS604において、更新要欄にマークがあると、版数管理部411は、算出されたCPU使用率がCPU使用率管理テーブル283内のCPU使用率閾値未満であるかどうかをチェックする。(ステップS605,S606)。
ステップS606において、算出されたCPU使用率がCPU使用率閾値未満でなければ、版数管理部411は、タイマ割込処理(1秒)を終了する。
ステップS606において、算出されたCPU使用率がCPU使用率閾値未満であれば、版数管理部411は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部23を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部411は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部23を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置4にダウンロードする。すなわち、装置4の版数管理部411は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部411は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS607)。
更に、版数管理部411は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(1秒)を終了する。(ステップS608)。
図17は、第5の実施形態において、プログラムの更新の必要性を検出(図中の時刻0分)してからログ一時エリア44のログ情報をグラフ化にしたもので、T1分後にCPU使用率閾値未満になったことを示している。すなわち、直近のT1分後に更新されるべきプログラムが装置4内にダウンロードされることになる。
以上説明したように、第5の実施の形態おいては、装置4が、プログラムの更新の必要性を確認すると、一定周期ごとに現時点のCPU使用率がCPU使用率閾値未満であるかを確認し、閾値未満であれば、更新すべきプログラムをダウンロードする。そのため、第5の実施の形態は、人を介さずに自動的にCPU使用率の低い時間帯に更新すべきプログラムを版数管理サーバ1からダウンロードすることになり、装置4の処理能力低下を防ぐことができる。
また、第5の実施の形態は、装置4がプログラムの更新の必要性を確認すると、直近のCPU使用率の低い時間帯を検出することで更新すべきプログラムをダウンロードして更新するようにしている。そのため、第5の実施の形態は、第1または第3の実施の形態と比較すると、ユーザがプログラムの更新をすぐに行いたい場合に優れている。
次に、本発明を実施するための第6の最良の形態について図面を参照して説明する。
図18は、本発明の第6の実施の形態であるシステムの構成を示すブロック図である。このシステムは、版数管理サーバ1と、複数の装置5と、ネットワーク901とから構成されている。なお、版数管理サーバ1と装置5とは、ネットワーク901に接続されている。
第5の実施の形態と比較すると、第6の実施の形態は、装置4が装置5になっている点で第5の実施の形態と相違する。
装置5は、パソコン、携帯電話、モバイル端末等のユーザが使用する情報処理装置(コンピュータ)である。この装置5は、制御部51と、プログラム格納部22と、インタフェース部53と、ログ一時エリア54と、CPU25と、タイマ部261と、タイマ部262と、時計部27とから構成される。更に、装置5は、プログラム管理テーブル281と、トラヒック量管理テーブル383とから構成される。なお、図18において、第5の実施の形態と同じ機能を持つブロックである場合には、第5の実施の形態と同じ付与番号を付与している。従って、以下の説明において、第5の実施の形態と同じもの(第1の実施の形態と同じ付与番号の付いたブロック)は、説明を省略している。
制御部51は、CPU25がプログラム格納部22に格納されている各種プログラムを実行することによりプログラム制御で動作する。すなわち、制御部51は、CPU21が各種プログラムを実行した場合の機能ブロックを示している。この制御部51は、版数管理部511と、トラヒック量算出部512とを含んでいる。
版数管理部511は、装置5で運用されているプログラム版数を、プログラム管理テーブル281を検索することにより認識すると共に、プログラム版数の更新有無を版数管理サーバ1に対して周期的にチェックの依頼を行う。更に、版数管理部511は、プログラムの更新が必要とされた場合に、トラヒック量算出部512が算出したトラヒック量を基にトラヒック量が閾値未満であれば更新すべきプログラムを版数管理サーバ1からダウンロードする。
トラヒック量算出部512は、タイマ部261からのタイマ割込(例では、1秒)によりトラヒック量を算出し、その算出したトラヒック量をログ一時エリア54のログエリア543に格納すると共に、版数管理部511に通知する。なお、この場合のトラヒック量とは、インタフェース部53が1秒あたりのネットワーク901とのデータのやり取りで送受信したバイト数を示す。従って、トラヒック量の単位は、バイト数/秒(B/s)となる。
インタフェース部53は、制御部51の制御の下で、ネットワーク901を介して版数管理サーバ1等の他装置とのデータのやり取りをイーサーネット(登録商標)仕様により行う。インタフェース部53は、1パケットを受信するごとに受信する1パケット内のバイト数をログ一時エリア54内の受信カウンタ542に加算する。インタフェース部53は、1パケットを送信するごとに送信する1パケット内のバイト数をログ一時エリア54内の送信カウンタ541に加算する。
ログ一時エリア54は、図示していないメモリ(例えばRAM)内に割り当てられている。このログ一時エリア54には、送信カウンタ541と、受信カウンタ542とログエリア543とが割り当てられている。
送信カウンタ541には、一定間隔の間(例では、1秒の間)、インタフェース部53が1パケットを送信するごとに送信する1パケット内のバイト数を送信カウンタ541に加算し、その加算した値が設定されている。受信カウンタ542には、一定間隔の間(例では、1秒の間)、インタフェース部53が1パケットを受信するごとに受信する1パケット内のバイト数を加算し、その加算した値が設定されている。すなわち、送信カウンタ541および受信カウンタ542は、パケットを送受信するごとにインタフェース部53の制御の下でバイト数をカウントし続け、一定間隔(例では、1秒間隔)ごとに制御部51の制御の下でクリア(「0」値にセット)されることになる。
ログエリア543には、一定の間隔(例では、1秒)ごとに制御部51の制御の下で、トラヒック量と時刻情報とがトラヒック量のログ情報として時刻順(算出順)に格納されていく。ログエリア543には、発生順に保存されていく容量が一杯になった場合には、ラウンドロビン方式により頭からトラヒック量がオーバーライトされる。
次に、本発明の第6の実施の形態において、実施するための最良の形態の動作について図面を参照して説明する。
装置5が版数管理サーバ1に対して版数更新のチェックを行う場合の動作については、装置5が図11のフローチャートに沿った動作を行う。この場合、第5の実施の形態で説明した装置4(版数管理部411,インタフェース部23を含む)の処理を、装置5(版数管理部511,インタフェース部53を含む)の処理に置き換えることで、装置5の動作が装置4の動作と同じになるので説明を省略する。
今、装置5の制御部51は、プログラム格納部22に格納されているプログラムを実行し、ネットワーク901に接続されている機器と通信を行っている。この場合、インタフェース部53は、制御部51の指示の下でデータを送信先に送信する場合、ネットワーク901に1パケット送信するごとに送信するパケット内のデータのバイト数をカウントする。インタフェース部53は、1パケット送信するごとにそのカウントしたバイト数をログ一時エリア54内の送信カウンタ541に加算する。また、インタフェース部53は、ネットワーク901からパケットを受信する場合、ネットワーク901から1パケット受信するごとに受信するパケット内のデータのバイト数をカウントする。インタフェース部53は、1パケット受信するごとにそのカウントしたバイト数をログ一時エリア54内の受信カウンタ542に加算する。このような環境の下でタイマ部261からの割り込み(1秒間隔で発生)が制御部51に発生したとする。
すると、制御部51は、トラヒック量算出部512に制御を渡す。制御を渡されたトラヒック量算出部512は、トラヒック量を算出する。この場合の算出方法の一例として以下に説明する。すなわち、トラヒック量算出部512は、ログ一時エリア54の送信カウンタ541に格納されている送信バイト数と受信カウンタ542に格納されている受信バイト数とを読み出し、それぞれ読み出した送信バイト数と受信バイト数とを加算する。更に、トラヒック量算出部512は、その加算したバイト数から1秒あたりのバイト数を算出し、その算出した1秒あたりのバイト数をトラヒック量として算出する。(図19のステップS701)
トラヒック量算出部512は、算出したトラヒック量をトラヒック量のリアルタイム値としてログ一時エリア54のログエリア543に算出順に格納する。この場合、トラヒック量算出部512は、時計部27から現在の時刻を読み出して、算出したトラヒック量と一緒に格納すると共に、送信カウンタ541と受信カウンタ542とをクリアする。(ステップS702)。
トラヒック量算出部512は、算出したトラヒック量をログ一時エリア54に格納した後、算出したトラヒック量を版数管理部511に通知すると共に制御を版数管理部511に渡す。制御を渡された版数管理部511は、プログラム管理テーブル281内の更新要欄にマークがあるかの確認を行う。(ステップS703,S704)。
ステップS704において、更新要欄にマークがあると、版数管理部511は、算出されたトラヒック量がトラヒック量管理テーブル383内のトラヒック量閾値未満であるかどうかをチェックする。(ステップS705,S706)。
ステップS706において、算出したトラヒック量がトラヒック量閾値未満でなければ、版数管理部511は、タイマ割込処理(1秒)を終了する。
ステップS706において、算出したトラヒック量がトラヒック量閾値未満であれば、版数管理部511は、プログラム管理テーブル281内の接続先欄から接続先を読み出し、インタフェース部53を介して接続先の版数管理サーバ1に論理接続する。更に、論理接続(通信パス確立)後、版数管理部511は、プログラム管理テーブル281内の更新要欄にマークが付いているプログラム(複数可)のダウンロードの要求を、インタフェース部53を介して行う。すると、インタフェース部13を介してダウンロードの要求を受けた版数管理サーバ1の版数管理部111は、該当するプログラムをプログラム格納部12から読み出し、要求のあった装置5にダウンロードする。すなわち、装置5の版数管理部511は、版数管理サーバ1から更新すべきプログラムをダウンロードすることになる。更に、版数管理部511は、プログラム格納部22内で該当するプログラムをダウンロードしたプログラムに置き換えることでプログラムの更新を行う。(ステップS707)。
更に、版数管理部511は、プログラム管理テーブル281内で更新したプログラム識別子に対応する更新要欄をクリアすると共に、更新した版数を版数欄に登録し、タイマ割込処理(1秒)を終了する。(ステップS708)。
以上説明したように、第6の実施の形態においては、装置5が、プログラムの更新の必要性を確認すると、一定周期ごとに現時点のトラヒック量がトラヒック量閾値未満であるかを確認し、閾値未満であれば、更新すべきプログラムをダウンロードする。そのため、第6の実施の形態は、人を介さずに自動的にトラヒック量の低い時間帯に更新すべきプログラムを版数管理サーバ1からダウンロードすることになり、装置5の処理能力低下を防ぐことができる。
また、第6の実施の形態は、装置5がプログラムの更新の必要性を確認すると、直近のトラヒック量の低い時間帯を検出することで更新すべきプログラムをダウンロードして更新するようにしている。そのため、第6の実施の形態は、第2または第4の実施の形態と比較すると、ユーザがプログラムの更新をすぐに行いたい場合に優れている。