(57)【要約】【課題】複数の機器を同じバージョンのソフトウェアに更新してユーザーに使用させたい場合があるが、更新の途中で処理を中断してしまうと、バージョンの異なる複数の機器が存在することになる。【解決手段】ネットワークに接続されたデバイスのソフトウェアを更新する装置であって、ソフトウェア強制配布か否かを判断する手段と、ソフトウェア配布時刻が配布可能時間帯か否かを判断する手段と、配布可能時間帯でなければソフトウェア更新を再スケジューリングする手段と、配布対象デバイスにソフトウェアを配布する手段と、現在時刻が適用可能時間帯に含まれているか否かを判断する手段と、適用終了予定時間を計算する手段と、更新可能時間内にソフトウェア適用を行えるかどうかを判断する手段と、ソフトウェアの適用を行う手段と、を有することを特徴とするソフトウェア更新装置。【選択図】  図１
2014013473.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク（１０５）に接続されたデバイス（１０４）のソフトウェアを更新する装置（１０１）であって、ソフトウェア強制配布か否かを判断する手段（Ｓ１０１）と、ソフトウェア配布時刻が配布可能時間帯か否かを判断する手段（Ｓ１０２）と、タスクを中断する手段（Ｓ１０３）と、一度に配布する対象数を取得する手段（Ｓ１０４）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１０５）と、配布対象デバイスにソフトウェアを配布する手段（Ｓ１０６）と、配布終了か否かを判断する手段（Ｓ１０７）と、現在時刻を取得する手段（Ｓ１０８）と、更新可能時間帯を取得する手段（Ｓ１０９）と、現在時刻が適用可能時間帯に含まれているか否かを判断する手段（Ｓ１１０）と、適用終了予定時間を計算する手段（Ｓ１１１）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１１２）と、更新可能時間内にソフトウェア適用を行えるかどうかを判断する手段（Ｓ１１３）と、ソフトウェアの適用を行う手段（Ｓ１１４）と、ソフトウェア適用終了かを判断する手段（Ｓ１１５）と、を有することを特徴とするソフトウェア更新装置。
【請求項２】
ネットワーク（１０５）に接続されたデバイス（１０４）のソフトウェアを更新する方法（１０１）であって、ソフトウェア強制配布か否かを判断する手段（Ｓ１０１）と、ソフトウェア配布時刻が配布可能時間帯か否かを判断する手段（Ｓ１０２）と、タスクを中断する手段（Ｓ１０３）と、一度に配布する対象数を取得する手段（Ｓ１０４）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１０５）と、配布対象デバイスにソフトウェアを配布する手段（Ｓ１０６）と、配布終了か否かを判断する手段（Ｓ１０７）と、現在時刻を取得する手段（Ｓ１０８）と、更新可能時間帯を取得する手段（Ｓ１０９）と、現在時刻が適用可能時間帯に含まれているか否かを判断する手段（Ｓ１１０）と、適用終了予定時間を計算する手段（Ｓ１１１）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１１２）と、更新可能時間内にソフトウェア適用を行えるかどうかを判断する手段（Ｓ１１３）と、ソフトウェアの適用を行う手段（Ｓ１１４）と、ソフトウェア適用終了かを判断する手段（Ｓ１１５）と、を有することを特徴とするソフトウェア更新方法。
【請求項３】
ネットワーク（１０５）に接続されたデバイス（１０４）のソフトウェアを更新するプログラム（１０１）であって、ソフトウェア強制配布か否かを判断するステップ（Ｓ１０１）と、ソフトウェア配布時刻が配布可能時間帯か否かを判断する手段（Ｓ１０２）と、タスクを中断するステップ（Ｓ１０３）と、一度に配布する対象数を取得するステップ（Ｓ１０４）と、ソフトウェア更新を再スケジューリングするステップ（Ｓ１０５）と、配布対象デバイスにソフトウェアを配布するステップ（Ｓ１０６）と、配布終了か否かを判断するステップ（Ｓ１０７）と、現在時刻を取得するステップ（Ｓ１０８）と、更新可能時間帯を取得するステップ（Ｓ１０９）と、現在時刻が適用可能時間帯に含まれているか否かを判断するステップ（Ｓ１１０）と、適用終了予定時間を計算するステップ（Ｓ１１１）と、ソフトウェア更新を再スケジューリングするステップ（Ｓ１１２）と、更新可能時間内にソフトウェア適用を行えるかどうかを判断するステップ（Ｓ１１３）と、ソフトウェアの適用を行うステップ（Ｓ１１４）と、ソフトウェア適用終了かを判断するステップ（Ｓ１１５）と、を有することを特徴とするソフトウェア更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された複数の装置へのソフトウェア更新方法に関し、特に、所定の時間帯にソフトウェア更新のスケジューリングを行う方法に関する。
【背景技術】
【０００２】
従来、ネットワークに接続された複数の装置に対するソフトウェア更新は、ユーザーの使用を妨げないように夜間などにスケジューリングを行って更新を実行していた。
【０００３】
しかし、複数の機器へのソフトウェア更新に時間がかかり、所定の時間帯に処理が終了しない場合がある。その場合には、更新を中断し、更新再開は別の時間にスケジューリングして行うというものがある。（特許文献１参照）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３６３６０１２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の機器を同じバージョンのソフトウェアに更新してユーザーに使用させたい場合があるが、更新の途中で処理を中断してしまうと、バージョンの異なる複数の機器が存在することになる。
【課題を解決するための手段】
【０００６】
ネットワーク（１０５）に接続されたデバイス（１０４）のソフトウェアを更新する装置（１０１）であって、ソフトウェア強制配布か否かを判断する手段（Ｓ１０１）と、ソフトウェア配布時刻が配布可能時間帯か否かを判断する手段（Ｓ１０２）と、タスクを中断する手段（Ｓ１０３）と、一度に配布する対象数を取得する手段（Ｓ１０４）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１０５）と、配布対象デバイスにソフトウェアを配布する手段（Ｓ１０６）と、配布終了か否かを判断する手段（Ｓ１０７）と、現在時刻を取得する手段（Ｓ１０８）と、更新可能時間帯を取得する手段（Ｓ１０９）と、現在時刻が適用可能時間帯に含まれているか否かを判断する手段（Ｓ１１０）と、適用終了予定時間を計算する手段（Ｓ１１１）と、ソフトウェア更新を再スケジューリングする手段（Ｓ１１２）と、更新可能時間内にソフトウェア適用を行えるかどうかを判断する手段（Ｓ１１３）と、ソフトウェアの適用を行う手段（Ｓ１１４）と、ソフトウェア適用終了かを判断する手段（Ｓ１１５）と、を有することを特徴とするソフトウェア更新装置。
【発明の効果】
【０００７】
本発明によれば、配布と適用にわけてソフトウェアの更新を行い、ソフトウェアの適用時に更新完了の予測を立て、所定の時間帯に処理が終了するか否かを判断することにより複数の機器でソフトウェアを同じバージョンに保つことができる。なお、ここでいうソフトウェアの配布とは、デバイスが動作するためのソフトウェアを配布することをいう。また、適用とはデバイスに配布されたソフトウェアをデバイス上で既に動作しているソフトウェアから置き換えてデバイスを動作可能な状態にすることをいう。
【図面の簡単な説明】
【０００８】
【図１】システムの構成図
【図２】デバイス管理装置１０１の内部構成を示す図
【図３】デバイス管理装置１０１の記憶装置２０３に格納されている内容を示す図
【図４】ソフトウェア配布・適用プログラム３０１が使用するデータの構造を示す図
【図５】詳細を示すタスク詳細情報３０３のテーブルデータ構造
【図６】デバイスのハードウェア的な内部構造を示す図
【図７】デバイスのソフトウェア的な内部構造を示す図
【図８】ソフトウェアデータベースサーバー１０２に格納されているデータ構造
【図９】ソフトウェアを配布・適用するデバイス１０４のソフトウェア更新状態の一覧
【図１０】ソフトウェア配布・適用プログラム３０１の機能毎のブロックを表す図
【図１１】ソフトウェア配布・適用の処理のフローチャート
【図１２】ソフトウェア配布・適用のデバイス側の処理に関するフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１０】
図１は、本発明に係るシステムの構成図である。デバイス管理装置１０１はネットワーク１０５を介して印刷装置などのデバイス１０４へのソフトウェアの配布・適用の操作を行う。なお、デバイスが１つ以上あることを想定しているので、図１ではデバイス１０４を１０４ａ、１０４ｂ、１０４ｃと３つのデバイスがある例として記載した。デバイス管理装置１０１からソフトウェア配布の指示を受けたデバイス１０４は、ソフトウェアデータベースサーバー１０２からソフトウェアを取得する。クライアント１０３は、ネットワーク１０５を介してデバイス管理装置のユーザーインターフェースを操作する。
【００１１】
図２は、図１のデバイス管理装置１０１の内部構成を示す図である。本発明を実施するためのソフトウェア配布・適用プログラムは、ハードディスクなどの記憶装置２０３からメモリ２０２にロードされ、ＣＰＵ２０１によって実行される。デバイス管理装置１０１は、ネットワークインターフェース２０６を介してネットワーク１０５上に接続された印刷装置などのデバイス１０４と通信を行う。デバイス管理装置１０１は、ディスプレイなどの表示装置２０５にプログラムのユーザーインターフェースを表示し、キーボードなどの入力装置２０４からユーザーからの入力を受け付ける。図１のクライアント装置１０３からネットワーク１０５経由でデバイス管理装置１０１の画面操作を行う場合もある。
【００１２】
図３は、デバイス管理装置１０１の記憶装置２０３に格納されている内容を示す図である。記憶装置２０３には、本発明を実施するためのソフトウェア配布・適用プログラム３０１と、前記プログラムが使用する更新タスク情報３０２、更新タスク詳細情報３０３が格納されている。また、各配布対象デバイスの更新状態の一覧３０４が格納されている。また、プログラムが読み込んで使用する初期設定値３０５も格納されている。
【００１３】
図４は、本発明を実施するためのソフトウェア配布・適用プログラム３０１が使用するデータであるタスク情報３０２のテーブルデータ構造を示す図である。タスクとは後述のタスクスケジューラーが実行開始時刻になると実行する複数の配布先に対してソフトウェアを配布するプログラムの処理単位である。タスク情報３０２には、タスク名４０１、タスクの実行開始時間４０２、更新するソフトウェア名４０３、更新するソフトウェアのバージョン４０４、ＵＲＬなどの更新するソフトウェアの取得先４０５、後述の図５における更新先のリスト名４０６、強制配布か否かを示す強制配布フラグ４０７によって構成される。タスク状態４０８は状態を示す値が格納されており、実行が開始される前においてタスク状態４０８は未実行を示す値となっている。ソフトウェア配布・適用を行っている間、デバイスは印刷などの機能を使用することができない場合があるため、ユーザーが使用する時間帯を避けて更新可能時間帯にソフトウェア配布・適用を行う必要がある。また、ソフトウェアの適用だけは行える場合もあるため、後述のように適用のみはユーザー使用時間帯でも行えるようにすることもできる。
【００１４】
図５は、図４の更新先のリスト名４０６に関連付いているタスク詳細情報３０３のテーブルデータ構造を示す図である。タスク詳細情報３０３は更新先のリスト名４０６毎にソフトウェアの配布先を示すIPアドレスなどの一覧情報が記載されている。例えば、タスクが３つあった場合には５０１ａ、５０１ｂ，５０１ｃと、複数の配布先を示す一覧情報が３つ存在することになる。
【００１５】
図６は、デバイス１０４のハードウェア的な内部構造を示す図である。デバイス管理装置からのソフトウェア配布の指示があるとＣＰＵ６０１は、ソフトウェア配布の機能をメモリ６０３にロードする。ＣＰＵ６０１はネットワーク制御部６０６とネットワーク１０５を経由して、ソフトウェアデータベースサーバー１０２から配布するソフトウェアを取得する。ＣＰＵ６０１は記憶装置６０３に取得したソフトウェアを一時保存する。ＣＰＵ６０１はデバイス管理装置からのソフトウェア適用の指示があると、ソフトウェア適用の機能を記憶装置６０３からメモリ６０２にロードする。そして、記憶装置６０３にある取得したソフトウェアとデバイス１０４上で現在動作しているソフトウェアを置き換える。表示装置６０５はユーザーインターフェースを表示し、入力装置６０４はユーザーからの入力を受け付ける。
【００１６】
図７は、デバイス１０４のソフトウェア的な内部構造を示す図である。デバイス１０４は、デバイス管理装置１０１から配布の指示があると、ソフトウェア配布（取得）機能７０１によって、図１のソフトウェアデータベースサーバー１０２から該当するソフトウェアの取得を行う。デバイス１０４は取得したソフトウェアを更新ソフトウェア一時保存７０３として一時保存する。デバイス１０４はデバイス管理装置１０１から更新ソフトウェアの適用の指示があると、ソフトウェア適用機能７０２によって更新ソフトウェア一時保存７０３を取り出し、実際に動作する現在のソフトウェア７０４として適用する。
【００１７】
図８は、図１のソフトウェアデータベースサーバー１０２に格納されているデータ構造を示す図である。図１のソフトウェアデータベースサーバー１０２に格納されているデータは、ソフトウェアのモジュール名８０１、ソフトウェアのバージョン８０２、ソフトウェアの容量８０３、格納番地８０４が記載されている。デバイス１０４に対してデバイス管理装置１０１がソフトウェアの取得を指示すると、デバイス１０４は、ソフトウェアデータベースサーバー１０２に対して、更新タスク情報３０２の更新するソフトウェア名４０３、更新するソフトウェアのバージョン４０４と一致するソフトウェアを取得する。また、ソフトウェアの容量８０３は、ソフトウェアを適用するために要する時間計算などに使用される。
【００１８】
図９は、デバイス管理装置１０１がソフトウェアを配布・適用するデバイス１０４のソフトウェア更新状態の一覧である。ソフトウェア更新状態の一覧は、デバイス管理装置１０１の記憶装置２０３に格納されている（図３の３０４）。
【００１９】
更新状態には「未配布」、「配布中」、「配布済み」、「適用中」、「適用済み」の各状態がある。更新状態の初期状態は「未配布」である。デバイス１０４はソフトウェアの配布が開始されるとデバイス管理装置１０１に配布が開始されたことを通知し、デバイス管理装置１０１はソフトウェア更新状態の一覧の状態を「配布中」に書き換える。デバイス１０４はソフトウェアの配布が終了すると、デバイス管理装置１０１に配布終了を通知する。デバイス管理装置１０１は配布終了を受信してソフトウェア更新状態の一覧の状態を「配布済」に書き換える。デバイス１０４はソフトウェアの適用が開始されるとデバイス管理装置１０１に適用が開始されたことを通知し、デバイス管理装置１０１はソフトウェア適用状態の一覧の状態を「適用中」に書き換える。デバイス１０４はソフトウェアの適用が終了すると、デバイス管理装置１０１に適用終了を通知する。デバイス管理装置１０１は適用終了を受信してソフトウェア適用状態の一覧の状態を「適用済」に書き換える。
【００２０】
図１０は、図３のソフトウェア配布・適用プログラム３０１の機能毎のブロックを表す図である。タスク作成ユーザーインターフェース１００１は、タスク作成に必要な情報についてユーザーからの入力を受け付ける画面を表示する機能を提供する。タスク作成ユーザーインターフェース１００１で入力された情報は、図３の更新タスク情報３０３、タスク詳細情報３０４として格納される。タスクスケジューラー１００２は、図４の実行開始時間４０２を定期的に確認し、タスク状態４０８が未実行で、実行開始時間を過ぎていたら、ソフトウェア配布と適用を行うタスクを実行する。
【００２１】
図１１はソフトウェア配布・適用の処理のフローチャートを示す図である。フローチャート図１１を用いてソフトウェア配布・適用の処理の詳細を説明する。なお、各ステップを実行する主体が明記されていない場合、実行の主体はプログラムを実行するデバイス管理装置１０１のＣＰＵ２０２である。
【００２２】
まず、タスクスケジューラー１００２によってソフトウェア配布と適用を行うタスクが実行されると、図４のタスク状態４０８を実行中に変更し、図４の強制配布か否かの値をチェックする（ステップＳ１０１）。ステップ１０１において強制配布でないと判断された場合にはデバイス管理装置１０１が持つ現在時間と、図３の初期設定値３０５内に格納されている更新可能時間帯を取得し、現在時間が更新可能時間帯に含まれるか否かの判断を行う（ステップＳ１０２）。なお、更新可能時間帯は予め初期設定機能（図１０の１００６）を通じてユーザーから入力を受け付けることが可能である。初期設定値は記憶装置２０３に格納される（図３の３０５）。現在時間が更新可能時間帯に含まれない場合には、タスク実行を中断する（ステップＳ１０３）。ステップＳ１０３で中断されたタスクは、次回の更新可能時間帯内に実行が開始されるように図４のタスク情報テーブル３０２の実行開始時間４０２を変更し、タスク状態を未実行に変更する（ステップＳ１０５）。ステップＳ１０２において、現在時間が更新可能時間帯に含まれる場合には、一度に配布する対象デバイス数を記憶装置２０３から取得する（ステップS１０４）。また、図４の強制配布か否かの値をチェックにおいて、強制配布と判断された場合には、一度に配布する対象デバイスの数を記憶装置２０３から取得する（ステップS１０４）。なお、一度に配布する対象デバイス数は予め初期設定機能（図１０の１００６）を通じてユーザーから入力を受け付けることが可能である。配布制御１００３は、図４の更新リスト名４０６から更新リスト名を取得する。さらに更新リスト名に基づいて図５の更新リスト名毎の更新先の一覧を取得する。配布制御１００３は、図4のソフトウェア名４０３、バージョン４０４、取得先４０５を取得し、対象デバイス１０４に対して、前記情報を含む配布指示を行う（ステップＳ１０６）。その際、更新状態管理機能１００４は、図９のソフトウェア更新状態の一覧の対象デバイスについて「配布中」に相当する値を書き込む。なお、図９のソフトウェア更新状態の一覧において対象デバイスの更新状態９０２が「未配布」のデバイス以外には配布しないものとする。デバイス管理装置１０１から配布指示を受けたデバイス１０４はソフトウェアデータベースサーバー１０２からソフトウェアを取得し、取得が終了するとデバイス管理装置１０１に配布終了通知を行う。デバイス１０４の処理の詳細ついては図１２の説明で行う。
【００２３】
デバイス管理装置１０１は配布終了通知を対象デバイスから受信する（ステップＳ２０３）。その際、デバイス管理装置１０１は図９のソフトウェア更新状態の一覧の対象デバイスについて配布済みに相当する値を書き込む。デバイス管理装置１０１は、図９のソフトウェア更新状態の一覧を確認し、すべての対象デバイスについて配布済みになっているかを確認する（ステップＳ１０７）。ステップＳ１０７において、すべての対象デバイスについて配布済みになってない場合には、ステップＳ１０１に移行する。ステップＳ１０７において、すべての対象デバイスについて配布済みになっている場合には、現在時刻を取得する（ステップＳ１０８）。図３の初期設定値に含まれる更新可能時間帯を取得し（ステップＳ１０９）、前記で取得した現在時刻がその時間帯に含まれているか否かを判断する（ステップＳ１１０）。ステップＳ１１０の判断で現在時刻が更新可能時間帯に含まれていない場合には、図４のタスク状態４０８を未実行にし、実行開始時間４０２を次回の更新可能時間帯に含まれるように変更してタスクを終了する（Ｓ１１２）。ステップＳ１１０の判断で現在時刻が更新可能時間帯に含まれている場合には、ステップＳ１１１に移行する。ステップＳ１１１では、ソフトウェアデータベースサーバー１０２からソフトウェアを取得した際のファイルサイズ情報と、単位サイズあたりにかかる更新時間、現在時刻によって、更新終了予定時間を計算する（ステップＳ１１１）。単位サイズあたりにかかる更新時間はデバイスの能力に依存するのでデバイス１０４から取得するか、デバイス管理装置１０１に予め保存されているものとする。ステップＳ１１１で計算した更新終了予定時間が更新可能時間帯よりも大きいか否かを判断する（ステップＳ１１３）。更新終了予定時間が更新可能時間帯よりも大きい場合には、ステップＳ１１２に移行する。更新終了予定時間が更新可能時間帯よりも小さい場合には、ソフトウェアの適用開始をデバイス１０４に指示する（ステップＳ１１４）。なお、ソフトウェアの適用開始する際には、図９の対象デバイスについての更新状態９０２を「適用中」に変更する。デバイス１０１で適用が終了すると適用終了通知がデバイス管理装置１０１に送信され、デバイス管理装置が受信する。その際、デバイス管理装置１０１は、図９の更新状態を「適用済み」に変更する。図９の更新状態がすべての対象デバイスについて「適用済み」であるかを確認する（ステップＳ１１５）。ステップＳ１１５ですべて「適用済み」でない場合には、デバイス１０４からの適用終了通知を待つ。また、ステップＳ１１５ですべて「適用済み」の場合には、図４のタスク状態４０８を終了に変更して、タスクを終了する。
【００２４】
図１２はデバイス管理装置１０１から配布指示Ｓ１０６を受けて、ソフトウェアを取得するデバイス１０４の処理を示す図である。フローチャート図１２を用いてソフトウェア取得のデバイス１０４の処理を説明する。ソフトウェア更新対象デバイス１０４はデバイス管理装置１０１から配布指示を受けると（Ｓ２０１）、取得先４０５に対してソフトウェアの取得要求を行う（Ｓ２０２）。取得先４０５は図１のソフトウェアデータベースサーバー１０２である。ソフトウェアデータベースサーバー１０２は前記配布指示に含まれるソフトウェア名４０３、バージョン４０４と図８のモジュール名８０１、バージョン８０２と照合する。ソフトウェアデータベースサーバー１０２は前記の照合で一致した情報に対応する格納番地８０４を元に更新対象のソフトウェアをソフトウェアデータベースサーバー１０２が持つソフトウェアデータベースから引き出し、対象デバイス１０４にソフトウェアを送信する。その際、ファイル容量も送信される。対象デバイス１０４は前記ソフトウェアを受信する（Ｓ２０３）。対象デバイス１０４はデバイス管理装置１０１に配布終了通知を送信する（Ｓ２０４）。
【００２５】
以上のようにソフトウェアの配布・適用を行うことにより、所定の時間帯に処理が終了するように複数の機器でソフトウェアを同じバージョンに更新することができる。
【符号の説明】
【００２６】
１０１・・・デバイス管理装置
１０２・・・ソフトウェアデータベースサーバー
１０３・・・デバイス管理装置の入力操作をするためのクライアント
１０４・・・ソフトウェア配布対象デバイス
１０５・・・ネットワーク
２０３・・・デバイス管理装置内部にある記憶装置
【図１】
2014013473.tif 000003
【図２】
2014013473.tif 000004
【図３】
2014013473.tif 000005
【図４】
2014013473.tif 000006
【図５】
2014013473.tif 000007
【図６】
2014013473.tif 000008
【図７】
2014013473.tif 000009
【図８】
2014013473.tif 000010
【図９】
2014013473.tif 000011
【図１０】
2014013473.tif 000012
【図１１】
2014013473.tif 000013
【図１２】
2014013473.tif 000014