IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝電機サービス株式会社の特許一覧

特開2024-25552ソフトウェア更新装置及びソフトウェア更新方法
<>
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図1
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図2
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図3
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図4
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図5
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図6
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図7
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図8
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図9
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図10
  • 特開-ソフトウェア更新装置及びソフトウェア更新方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024025552
(43)【公開日】2024-02-26
(54)【発明の名称】ソフトウェア更新装置及びソフトウェア更新方法
(51)【国際特許分類】
   G06F 8/65 20180101AFI20240216BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022129070
(22)【出願日】2022-08-12
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】皆川 祐人
(72)【発明者】
【氏名】天木 智
(72)【発明者】
【氏名】中谷 博司
(72)【発明者】
【氏名】和田 紘帆
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA31
5B376CA43
5B376CA55
5B376CA61
(57)【要約】
【課題】大幅な改修を必要としないスケジューリング更新機能を提供する。
【解決手段】
一実施形態によれば、ソフトウェア更新装置は、更新専用モジュールと、通信部と、記憶部と、更新管理部と、を備える。更新専用モジュールは、対象装置と同じソフトウェア実行環境を有し、対象装置において更新するソフトウェアを、ソフトウェア実行環境において任意の時刻で更新する。通信部は、対象装置と接続し、データを送受信する。記憶部は、更新専用モジュールにおいて更新したソフトウェアのデータを格納する。更新管理部は、対象装置におけるソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて通信部を介して対象装置に記憶部に格納された更新したソフトウェアのデータを送信する。
【選択図】図1
【特許請求の範囲】
【請求項1】
対象装置と同じソフトウェア実行環境を有し、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新する、更新専用モジュールと、
前記対象装置と接続し、データを送受信する、通信部と、
前記更新専用モジュールにおいて更新した前記ソフトウェアのデータを格納する、記憶部と、
前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記通信部を介して前記記憶部に格納された前記更新したソフトウェアのデータを前記対象装置に送信する、更新管理部と、
を備える、
ソフトウェア更新装置。
【請求項2】
前記更新専用モジュールは、サーバから前記ソフトウェアの更新の通知を受け取り、前記更新したソフトウェアのデータを展開し、前記記憶部に格納する、
請求項1に記載のソフトウェア更新装置。
【請求項3】
前記更新専用モジュールは、前記対象装置の動作環境が構築され、前記対象装置において起動するソフトウェアを前記対象装置の動作環境において起動可能である、シミュレータをさらに備え、
前記更新管理部は、前記シミュレータにおいて、前記記憶部に格納されている前記更新したソフトウェアが正常に動作することを判定し、前記対象装置に送信する、
請求項1に記載のソフトウェア更新装置。
【請求項4】
前記更新専用モジュールは、前記対象装置の動作環境が構築され、前記対象装置において起動するソフトウェアを前記対象装置の動作環境において起動可能であり、前記更新したソフトウェアが正常に動作した場合、前記記憶部に前記更新したソフトウェアのデータを格納する、シミュレータをさらに備え、
前記更新管理部は、前記記憶部に格納されている前記更新したソフトウェアのデータを送信する、
請求項1に記載のソフトウェア更新装置。
【請求項5】
前記対象装置に対する処理を中断した場合、
前記更新管理部は、前記更新専用モジュールに対して前記ソフトウェアの再度新しくダウンロードする、又はユーザ及び管理者への通知の動作を自動で実行する、
請求項3又は請求項4に記載のソフトウェア更新装置。
【請求項6】
対象装置と同じソフトウェア実行環境を有する更新専用モジュールが、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新し、
記憶部が、前記更新専用モジュールにおいて更新した前記ソフトウェアのデータを格納し、
更新管理部が、前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記対象装置に前記記憶部に格納された前記更新したソフトウェアのデータを送信する、
ソフトウェア更新方法。
【請求項7】
処理回路と、記憶部と、を備え、
前記処理回路は、
対象装置と同じソフトウェア実行環境において、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新し、
更新した前記ソフトウェアのデータを前記記憶部に格納し、
前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記対象装置に前記記憶部に格納された前記更新したソフトウェアのデータを送信する、
ソフトウェア更新装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ソフトウェア更新装置及びソフトウェア更新方法に関する。
【背景技術】
【0002】
コンピュータをはじめとする情報処理装置は、近年ソフトウェア更新によって機能を拡張したり、脆弱性の対策をしたりする機能の実装が求められている。工場の生産装置といった同じ構成の多くの情報処理装置を備える場合、設置される装置のソフトウェア更新、例えば、脆弱性修正ファイルの更新処理は、制御対象となる装置が生産に関する動作をしていない時間帯に実施されることが望ましい。このような時間帯においては、ソフトウェア更新を実行できる管理者が不在となることもあるため、ソフトウェア更新が指定した時刻又は装置がアイドル状態となることがわかっている時間等に自動で実施されることが望ましい。
【0003】
時刻を指定した上でソフトウェア更新を実行する場合、一般的に更新ソフトウェアのダウンロードは時間が掛かることが多いため、この更新ソフトウェアのダウンロードを予め行い、指定した時刻に更新ソフトウェアの適用を実行することが望ましい。このような更新処理を実行するには、更新ソフトウェア管理サーバは、更新ソフトウェアを更新時にダウンロードして対象装置のそれぞれに直接適用するのではなく、ダウンロードした更新ソフトウェアをストレージに保存しておく必要がある。
【0004】
このようなスケジューリング更新機能をもたない対象装置及び更新ソフトウェア管理サーバを備えるシステムにおいて、スケジューリング更新機能を新たに実装する場合、単なるストレージの追加だけでなく、対象装置のソフトウェア更新方法や更新ソフトウェア管理サーバ側の更新ソフトウェアの配布方法を含めた更新システム全体の改修が必要になる問題が生じる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2004-512612号
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示では、大幅な改修を必要としないソフトウェア更新を可能とするソフトウェア更新装置を提案する。
【課題を解決するための手段】
【0007】
一実施形態によれば、ソフトウェア更新装置は、更新専用モジュールと、通信部と、記憶部と、更新管理部と、を備える。更新専用モジュールは、対象装置と同じソフトウェア実行環境を有し、対象装置において更新するソフトウェアを、ソフトウェア実行環境において任意の時刻で更新する。通信部は、対象装置と接続し、データを送受信する。記憶部は、更新専用モジュールにおいて更新したソフトウェアのデータを格納する。更新管理部は、対象装置におけるソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて通信部を介して対象装置に記憶部に格納された更新したソフトウェアのデータを送信する。
【図面の簡単な説明】
【0008】
図1】一実施形態に係るソフトウェア更新装置の一例を模式的に示す図。
図2】一実施形態に係るソフトウェア更新装置が有する通信部の別の例を示す図。
図3】一実施形態に係るソフトウェア更新装置の処理の一例を示すフローチャート。
図4】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
図5】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
図6】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
図7】一実施形態に係るソフトウェア更新装置の一例を模式的に示す図。
図8】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
図9】一実施形態に係るソフトウェア更新装置の一例を模式的に示す図。
図10】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
図11】一実施形態に係るソフトウェア更新装置の処理の一部の一例を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0010】
本開示において、「以前」「より遅い」及びこれらに類する比較を示す用語が用いられることがあるが、これらの用語は、それぞれ矛盾しない範囲において、「より早い」「以降」等と適宜読み替えることができる。逆も同様であり、「より早い」「以降」の用語は、「以前」「より遅い」と読み替えてもよい。また、本開示において「時刻」と記載した場合には、厳密に当該時刻の瞬間を表すだけではなく、当該時刻以降の所定の短い時間を過ぎた時刻を表してもよい。
【0011】
(第1実施形態)
図1は、第1実施形態に係るソフトウェア更新装置の一例を模式的に示す図である。ソフトウェア更新装置1は、通信部10と、更新専用モジュール12と、記憶部14と、更新管理部16と、を備える。このソフトウェア更新装置1は、サーバ2と、対象装置3と、に接続し、サーバ2においてソフトウェアの更新が設定された場合に、このソフトウェアの更新を対象装置3に適用する。
【0012】
通信部10は、ソフトウェア更新装置1と、サーバ2及び対象装置3との間を接続し、データを送受信する。通信は、例えば、WAN(Wide Area Network)、LAN(Local Area Network)又はPAN(Personal Area Network)を用いてもよい。通信部10は、例えば、有線又は無線回線を用いたインターネット等の種々の通信手法を介して他の装置と通信を実現できるインタフェースであってもよい。なお、プロトコル又は通信方式が異なるとデータ構造が変わる可能性があることから、ソフトウェア更新装置1-サーバ2間と、ソフトウェア更新装置1-対象装置3間とで同じプロトコル又は通信方式であることが望ましい。
【0013】
更新専用モジュール12は、対象装置3と同じソフトウェア実行環境を有し、対象装置3においてサーバ2が保有する更新ソフトウェア20を、ソフトウェア実行環境において任意に設定したスケジューリング時刻で更新する。例えば、スケジューリング時刻は、対象装置3が生産等の動作を停止する夜間又は管理者が不在である時刻等に設定する。
【0014】
なお、更新専用モジュール12は、仮想環境として構築されてもよい。また、更新ソフトウェア20を保有する場所を示すリストとして、サーバ2を記載した参照元リスト120を保有してもよいし、設定時刻になると任意の処理を実行するタイマー機能122を保有してもよい。
【0015】
記憶部14は、更新専用モジュール12において更新ソフトウェア20のコピーデータ(以下アップデータ140と呼ぶ)を格納する。記憶部14は、例えば、各種RAM(Random Access Memory)を備えていてもよいし、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶媒体を備えていてもよい。また、記憶部14は、ソフトウェア更新装置1の外部に備えられるストレージ等であってもよい。
【0016】
更新管理部16は、記憶部14に格納されたアップデータ140を用いて、対象装置3におけるソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて通信部10を介して対象装置3にアップデータ140を送信する。
【0017】
サーバ2は、更新ソフトウェア20のデータを保有する。サーバ2は、例えば、1又は複数のプロセッサと、1又は複数の記憶領域と、を備えてもよい。
【0018】
対象装置3は、ソフトウェアを更新する対象の装置である。対象装置3は、スケジューリング更新機能を持つ必要はない。対象装置3は、1台であってもよいし、ソフトウェア実行環境が同じ場合、複数台あってもよい。また、アップデータ140を保有する場所を示すリストとして、記憶部14を記載した参照元リスト30を保有してもよいし、タイマー機能32を保有してもよい。タイマー機能32は、例えば、対象装置3内のプロセッサ等の処理回路又は専用の回路等により実装されてもよい。
【0019】
なお、ソフトウェア更新装置1の一部又は全部の動作は、ソフトウェアによる情報処理がCPU(Central Processing Unit)等のプロセッサといったハードウェア資源を用いて具体的に実現されてもよい。例えば、記憶部14が、この情報処理を実行するためのプログラム、実行ファイル等を格納し、プロセッサが記憶部14に格納されているプログラム等を参照することでソフトウェアによる情報処理を実行してもよい。
【0020】
すなわち、更新専用モジュール12及び更新管理部16の動作のうち一部又は全部は、プロセッサが実行してもよい。別の例として、更新専用モジュール12及び更新管理部16の動作のうち一部又は全部は、ASIC(Application Specified Integrated Circuit)等のデジタル回路又はアナログ回路により実装されてもよい。
【0021】
図2は、一実施形態に係るソフトウェア更新装置1が有する通信部10の別の例を示す。通信部10は、例えば、サーバ接続部100と、装置接続部102と、を備えてもよい。例えば、サーバ接続部100は、ソフトウェア更新装置1内の適切な要素と、サーバ2と、を接続し、ソフトウェア更新装置1とサーバ2間のデータを送受信する。また、装置接続部102は、ソフトウェア更新装置1内の適切な要素と、対象装置3と、を接続し、ソフトウェア更新装置1と対象装置3間のデータを送受信する。
【0022】
このように、通信部10を分割することで、ネットワークの混雑を回避でき、セキュリティの設定が容易になる。また、通信部10を介して対象装置3が直接的にサーバ2にアクセスしない構成とすることで、データが錯綜するのを回避することもできる。これらの分割は、物理的に実装してもよいし、IPアドレスの設定又はVLAN(Virtual Local Area Network)等で実装してもよい。
【0023】
図3は、一実施形態に係るソフトウェア更新装置1の処理の一例を示すフローチャートである。
【0024】
まず、更新専用モジュール12は、サーバ2に更新ソフトウェア20が有るかを問い合わせる(S100)。更新管理部16がこのS100の処理を実行してもよい。
【0025】
図4は、図3におけるステップS100の処理の一例を示すフローチャートである。
【0026】
まず、更新専用モジュール12は、タイマー機能122を用いて、現在時刻が設定時刻以降であるか判定する(S1000)。
【0027】
タイマー機能122が、現在時刻が設定時刻より早いと判定した場合(S1000:NO)、タイマー機能122は、設定時刻まで処理を待機する(S1002)。
【0028】
タイマー機能122が、現在時刻が設定時刻以降であると判定した場合、(S1000:YES)、更新専用モジュール12は、通信部10を介して、参照元リスト120に記載されたサーバ2に接続する(S1004)。
【0029】
更新専用モジュール12は、更新ソフトウェア20のデータが有るかを判定する(S1006)。更新専用モジュール12は、例えば、対象装置3のソフトウェアのバージョン又はタイムスタンプと、更新ソフトウェア20のバージョン又はタイムスタンプのそれぞれとの新旧を比較して更新が有るかを判定してもよい。更新専用モジュール12は、別の例として、サーバ2内の設定ファイルを参照してもよい。また、更新専用モジュール12は、サーバ2上の更新ソフトウェア20が適用済かを示す情報(例えば、フラグ)を参照等してもよい。
【0030】
更新専用モジュール12が、サーバ2に更新ソフトウェア20のデータが無いと判定した場合(S1006:NO)、更新専用モジュール12は、設定時刻になるまで処理を待機する(S1008)。
【0031】
更新専用モジュール12が、サーバ2に更新ソフトウェア20のデータが有ると判定した場合(S1006:YES)、更新専用モジュール12は、サーバ2への問い合わせを終了する。
【0032】
上記では、ソフトウェア更新装置1は、タイマー機能122により設定時刻になるタイミングでサーバ2に接続し、更新があるか確認したが、これに限定されるものではない。ソフトウェア更新装置1は、例えば、タイマー機能122により所定時間ごとにサーバ2に接続し、更新があるかを確認してもよい。
【0033】
図3に戻り、ソフトウェア更新装置1は、ステップS102のアップデータ更新処理を実行する。
【0034】
図5は、図3におけるステップS102の処理の一例を示すフローチャートである。
【0035】
まず、更新専用モジュール12は、更新ソフトウェア20のデータを記憶部14にダウンロードする(S1020)。なお、更新専用モジュール12は、記憶部14でなく、更新専用モジュール12内に形成されている記憶領域に更新ソフトウェア20のデータを格納してもよい。
【0036】
更新専用モジュール12は、ダウンロードした更新ソフトウェア20を更新専用モジュール内の環境で展開してインストールする(S1022)。
【0037】
更新専用モジュール12は、インストールした更新ソフトウェア20のコピーデータ(以下アップデータ140と呼ぶ)を記憶部14に格納する(S1024)。更新専用モジュール12は、例えば、アップデータ140全部をイメージファイルとして記憶部14に格納してもよい。更新専用モジュール12は、別の例として、対象装置3内のソフトウェアのデータとアップデータ140の差分をパッチファイルとして記憶部14に格納してもよい。
【0038】
図3に戻り、対象装置3は、タイマー機能32を用いて、現在時刻がスケジューリング時刻以降か判定する(S104)。例えば、スケジューリング時刻は、対象装置3が工場における生産等に関わる主要な処理を実行していない夜間又は管理者が不在である時刻等に設定することができる。また、対象装置3は、別の例として、自身の起動ログ等を参照することで、主要な処理を実行していない時間を統計的手法又は学習済みモデルを用いる手法等により推定することでこのスケジューリング時刻を設定してもよい。
【0039】
タイマー機能32が、現在時刻がスケジューリング時刻より早いと判定した場合(S104:NO)、タイマー機能32は、スケジューリング時刻になるまで処理を待機する(S106)。対象装置3が複数ある場合、スケジューリング時刻は、対象装置3ごとに設定されていてもよい。この場合、対象装置3は、それぞれに設定されたスケジューリング時刻にソフトウェアの更新を実行することができる。
【0040】
タイマー機能32が、現在時刻がスケジューリング時刻以降であると判定した場合(S104:YES)、対象装置3は、記憶部14から通信部10を介してアップデータ140を受信(ダウンロード)する(S108)。
【0041】
図6は、図3におけるステップS108の処理の一例を示すフローチャートである。
【0042】
対象装置3は、参照元リスト30に記載されたソフトウェア更新装置1の記憶部14に、通信部10を介して接続する(S1080)。
【0043】
対象装置3は、記憶部14に更新する必要があるアップデータ140が有るかを判定する(S1082)。
【0044】
対象装置3が、記憶部14にアップデータ140が無いと判定した場合(S1082:NO)、対象装置3は、ソフトウェア更新装置1の動作を中断する(S1084)。ソフトウェア更新装置1の動作を中断した場合、S100からの処理を繰り返してもよいし、ユーザ及び管理者への通知を自動で行ってもよい。
【0045】
対象装置3が、記憶部14にアップデータ140が有ると判定した場合(S1082:YES)、対象装置3は、記憶部14から通信部10を介してアップデータ140を受信(ダウンロード)する(S1086)。また、対象装置3は、スケジューリング時刻以降においてソフトウェア更新装置1の更新管理部16に更新の要否を確認した上で、更新が必要である場合にダウンロード要求し、ソフトウェア更新装置1が対象装置3にアップデータ140を送信してもよい。
【0046】
図3に戻り、更新管理部16は、記憶部14から対象装置3へのアップデータ140の送信が完了したかを判定する(S1088)。例えば、対象装置3は、アップデータ140の受信を完了したことを更新管理部16に通知してもよい。
【0047】
更新管理部16が、記憶部14から対象装置3にアップデータ140の送信が完了していないと判定した場合(S1088:NO)、更新管理部16は、設定時刻になるまで、又は所定時間、処理を待機する(S1090)。
【0048】
更新管理部16が、記憶部14から対象装置3にアップデータ140の送信が完了したと判定した場合(S1088:YES)、対象装置3は、アップデータの受信(ダウンロード)処理を終了する。
【0049】
図3に戻り、更新管理部16は、対象装置3においてソフトウェアの更新を要求する(S110)。
【0050】
更新管理部16は、対象装置3においてソフトウェアの更新が完了したかを判定する(S112)。例えば、更新管理部16は、対象装置3からソフトウェアの更新情報を受け取ってもよい。
【0051】
更新管理部16が、対象装置3においてソフトウェアの更新が完了していないと判定した場合(S112:NO)、更新管理部16は、更新が完了するまで処理を待機する(S114)。何らかのエラーが発生していることを検知した場合等には、更新管理部16は、ソフトウェアの更新の処理を中断し、ユーザに処理を中断した旨の出力をしてもよい。エラーが解決する見込みがあり、エラーが解決した場合には、更新管理部16は、対象装置3におけるソフトウェアの更新の処理を中断した箇所から再開(レジューム)し、又は、最初から開始し直してもよい。
【0052】
更新管理部16が、対象装置3においてソフトウェアの更新が完了したと判定した場合(S112:YES)、更新管理部16は、ソフトウェア更新装置1の動作を終了する。この後、ソフトウェア更新装置1は、例えば、所定時間ごとに、S100からの処理を繰り返してもよい。
【0053】
以上のように、本実施形態によれば、ソフトウェア更新装置1の記憶部14にアップデータ140を格納し、スケジューリング時刻にソフトウェア更新を実行することで、サーバ2側及び対象装置3側の改修をすることなくスケジューリング更新が可能となる。そのため、対象装置3が動作を停止する夜間又は管理者が不在である時刻等にソフトウェアの更新を実行することが可能となる。
【0054】
(第2実施形態)
前述した第1実施形態においては、ソフトウェア更新装置1及び対象装置3がそれぞれサーバ2及びソフトウェア更新装置1からデータが有るかを確認し、データがある場合にはデータをプルする形態について説明したが、データが有るかの確認及びデータダウンロードは、プッシュ型により通知又は送信されてもよい。第2実施形態では、第1実施形態との相違点を主に説明する。第1実施形態と同じ符号の処理は、特に断りがない限り同じ処理であるので説明を省略する。
【0055】
図7は、第2実施形態に係るソフトウェア更新装置の一例を模式的に示す図である。
【0056】
サーバ2は、更新専用モジュール12が記載した対象装置リスト22を保有してもよいし、タイマー機能24を保有してもよい。
【0057】
更新管理部16は、対象装置リスト160を保有してもよいし、タイマー機能162を保有してもよい。対象装置リスト160は、ソフトウェア更新装置1がソフトウェアの更新の対象とする1又は複数の対象装置3が記載されているリストである。
【0058】
第1実施形態と異なり、更新専用モジュール12は、参照元リスト120及びタイマー機能122を備えなくてもよい。また、対象装置3は、参照元リスト30を及びタイマー機能32を備えなくてもよい。処理の流れは、基本的には、図3と同様である。
【0059】
まず、更新専用モジュール12は、サーバ2からソフトウェアの更新通知を受け取る(S100)。
【0060】
図8は、図3におけるステップS100の処理の一例を示すフローチャートである。
【0061】
サーバ2のタイマー機能24は、現在時刻が設定時刻以降であるか判定する(S1000)。
【0062】
タイマー機能24が、現在時刻が任意の設定時刻より早いと判定すると(S1000:NO)、タイマー機能24は、設定時刻まで処理を待機する(S1002)。
【0063】
タイマー機能24が、現在時刻が任意の設定時刻以降であると判定すると(S1000:YES)、サーバ2は、通信部10を介して、更新専用モジュール12にソフトウェアの更新通知を送信し(S1010)、サーバ処理を終了する。
【0064】
なお、時刻の確認処理は、限定されない一例と示したものであり、必須の処理ではない。サーバ2は、例えば、対象装置3において使用しているソフトウェアの更新がある場合に、ソフトウェア更新装置1に更新があることを通知してもよい。すなわち、サーバ2は、時刻によらず、任意の時刻でソフトウェア更新装置1に更新がある旨の通知をしてもよい。
【0065】
図3に戻り、ソフトウェア更新装置1は、第1実施形態と同様にアップデータ更新処理(S102)を実行する。
【0066】
更新管理部16は、タイマー機能162を用いて、現在時刻がスケジューリング時刻以降であるか判定する(S104)。複数の対象装置3がある場合には、対象装置リスト160は、それぞれの対象装置3に対するソフトウェア更新の時刻が紐づけられて記載されているリストであってもよい。この場合、ソフトウェア更新装置1は、対象装置3ごとに適切な時刻を指定してデータのダウンロード及びソフトウェアの更新指示をすることができる。
【0067】
タイマー機能162が、現在時刻がスケジューリング時刻より早いと判定した場合(S104:NO)、タイマー機能は、スケジューリング時刻まで処理を待機する(S106)。
【0068】
タイマー機能162が、現在時刻がスケジューリング時刻以降であると判定した場合(S104:YES)、更新管理部16は、記憶部14から対象装置3に、アップデータ140を送信する(S108)。
【0069】
以降の処理については、前述の実施形態と同様である。
【0070】
以上のように、本実施形態では、サーバ側の改修をすることなくスケジューリング更新が可能となる。第1実施形態と異なり、対象装置3からの操作を必要とせず、サーバ2からの更新通知に応じてソフトウェアを最新の状態に更新することが可能である。
【0071】
なお、第1実施形態においては、ソフトウェア更新装置1及び対象装置3のいずれもが通知又はデータをプルし、第2実施形態においては、ソフトウェア更新装置1及び対象装置3のいずれもが通知又はデータをプッシュされる形態について説明したが、これらに限定されるものではない。例えば、ソフトウェア更新装置1がサーバ2から通知又はデータをプルし、対象装置3に通知又はデータをプッシュしてもよい。別の例として、ソフトウェア更新装置1がサーバ2から通知又はデータをプッシュされ、対象装置3に通知又はデータをプルされる形態であってもよい。これらの形態は、サーバ2及び対象装置3の実装により、適宜選択することが可能である。
【0072】
また、通知又はデータのプッシュ/プルは、別個に実装されているものである必要はない。例えば、ソフトウェア更新装置1は、プルで更新を確認する構成を有しながら、サーバ2からのプッシュ通知によりソフトウェアの更新があることを検知してもよい。このデータ検知は、対象装置3についても同様である。
【0073】
(第3実施形態)
前述の実施形態においては、ソフトウェア更新装置1は、更新ソフトウェアのインストールまでができたかを判定したが、さらに、更新されたソフトウェアが適切に動作するかを確認した上で対象装置3に更新ソフトウェアを配布することもできる。第3実施形態について、第1実施形態との相違点を主に説明する。
【0074】
図9は、第3実施形態に係るソフトウェア更新装置の一例を模式的に示す図である。第3実施形態に係るソフトウェア更新装置1は、第1実施形態の構成に加えて、更新専用モジュール12に、シミュレータ18を備える。
【0075】
シミュレータ18は、対象装置3の動作環境を保有する。更新専用モジュール12は、シミュレータ18を用いて、対象装置3において起動するソフトウェアを対象装置3の動作環境において起動可能である。ソフトウェア更新装置1は、このシミュレータ18を用いることで、アップデータ140を適用した場合の動作をシミュレートし、例えば、更新ソフトウェア20が対象装置3においてエラーが発生しない状態で正常に起動するかを確認することができる。
【0076】
なお、本開示においては、シミュレータ18と記載するが、このシミュレータ18は、シミュレータではなくエミュレータを含む概念であってもよい。また、本開示におけるシミュレータ18は、シミュレータとエミュレータの双方を備える概念であってもよく、対象となるソフトウェア又は対象となる更新ごとにシミュレータとエミュレータとの少なくとも一方を選択して使用する形態であってもよい。
【0077】
図10は、図3におけるステップS102の処理の一例を示すフローチャートである。
【0078】
更新専用モジュール12は、更新ソフトウェア20のデータを記憶部14にダウンロードする(S1020)。前述の実施形態と同様に、更新専用モジュール12は、記憶部14ではなく、更新専用モジュール12内に形成されている記憶領域に更新ソフトウェア20をダウンロードしてもよい。
【0079】
更新専用モジュール12は、ダウンロードした更新ソフトウェア20を更新専用モジュール内の環境で展開してインストールする(S1022)。
【0080】
更新専用モジュール12は、アップデータ140を記憶部14に格納する(S1024)。
【0081】
更新専用モジュール12は、シミュレータ18を起動する(S1026)。
【0082】
更新管理部16は、シミュレータ18において、アップデータ140が適用されたソフトウェアがシミュレーション環境において正常に動作するかを判定する(S1028)。
【0083】
更新管理部16が、シミュレータ18において、アップデータ140が正常に動作しないことを判定した場合(S1028:NO)、更新管理部16は、対象装置3に対する処理を中断する(S1030)。対象装置3に対する処理を中断した場合、更新管理部16は、更新モジュールに対して更新ソフトウェア20を再度新しくダウンロードしてもよいし、ユーザ及び管理者への通知の動作を自動で行ってもよい。また、更新管理部16は、S1024において記憶部14に格納されたアップデータ140を削除してもよい。
【0084】
更新管理部16が、シミュレータ18において、アップデータ140が正常に動作することを判定した場合(S1028:YES)、更新管理部16は、アップデータ更新処理を終了する。
【0085】
以降の処理については、前述の実施形態と同様である。
【0086】
以上のように、本実施形態では、サーバ側の改修をすることなく、スケジューリング更新が可能となる。さらに、シミュレータ18において動作テストを実行することにより、更新ソフトウェア20がシミュレーション環境において、正常に動作することを確認した上でスケジューリング更新が可能となる。
【0087】
(第4実施形態)
第4実施形態は、前述の第3実施形態の処理を入れ替えたものである。第4実施形態について、第3実施形態との相違点を主に説明する。
【0088】
第4実施形態に係るソフトウェア更新装置の構成は、第3実施形態に係るソフトウェア更新装置1の構成と同じである。
【0089】
図11は、図3におけるステップS102の処理の一例を示すフローチャートである。
【0090】
更新専用モジュール12は、更新ソフトウェア20のデータを記憶部14にダウンロードし(S1020)、更新専用モジュール内の環境で展開してインストールする(S1022)。
【0091】
ここで、更新専用モジュール12は、シミュレータ18を起動する(S1026)。
【0092】
更新専用モジュール12が、シミュレータ18において、アップデータ140が正常に動作することを判定した場合(S1028:YES)、更新専用モジュール12は、アップデータ140を記憶部14に格納し(S1032)、アップデータ更新処理を終了する。
【0093】
以降の処理については、前述の実施形態と同様である。
【0094】
以上のように、本実施形態では、サーバ側の改修をすることなくスケジューリング更新が可能となる。さらに、シミュレータ18において動作テストを実行することにより、更新ソフトウェア20がシミュレーション環境において、正常に動作することを確認した上で、スケジューリング更新が可能となる。第3実施形態とは異なり、記憶部14には常にシミュレータ18で正常に動作することを確認したアップデータ140が格納されている。
【0095】
なお、第3実施形態及び第4実施形態においては、第1実施形態と同様にソフトウェア更新装置1がサーバ2にアップデートを確認する形態として説明したが、第2実施形態と同様にソフトウェア更新装置1がサーバ2から更新通知を受け取る形態としてもよい。
【0096】
<付記>
本開示における実施形態は、以下のように表すことができる。
(1)
対象装置と同じソフトウェア実行環境を有し、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新する、更新専用モジュールと、
前記対象装置と接続し、データを送受信する、通信部と、
前記更新専用モジュールにおいて更新した前記ソフトウェアのデータを格納する、記憶部と、
前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記通信部を介して前記記憶部に格納された前記更新したソフトウェアのデータを前記対象装置に送信する、更新管理部と、
を備える、
ソフトウェア更新装置。
(2)
前記通信部は、前記更新専用モジュールへの前記ソフトウェアの受信と、前記対象装置への前記ソフトウェアの送信とを、同じ通信方式で実行してもよい。
(3)
前記更新専用モジュールは、仮想環境として構築されてもよい。
(4)
前記更新専用モジュールは、サーバに前記ソフトウェアの更新が有るかを問い合わせてもよく、前記ソフトウェアの更新があった場合、前記更新したソフトウェアのデータを展開し、前記記憶部に格納してもよい。
(5)
前記更新専用モジュールは、サーバから前記ソフトウェアの更新の通知を受け取ってもよく、前記更新したソフトウェアのデータを展開してもよく、展開した前記更新したソフトウェアのデータを前記記憶部に格納してもよい。
(6)
前記更新専用モジュールは、前記対象装置の動作環境が構築され、前記対象装置において起動するソフトウェアを前記対象装置の動作環境において起動可能である、シミュレータをさらに備えてもよく、前記更新管理部は、前記シミュレータにおいて、前記記憶部に格納されている前記更新したソフトウェアが正常に動作することを判定し、前記対象装置に送信してもよい。。
(7)
前記更新専用モジュールは、前記対象装置の動作環境が構築され、前記対象装置において起動するソフトウェアを前記対象装置の動作環境において起動可能であり、前記更新したソフトウェアが正常に動作した場合、前記記憶部に前記更新したソフトウェアのデータを格納する、シミュレータをさらに備えてもよく、前記更新管理部は、前記記憶部に格納されている前記更新したソフトウェアのデータを送信してもよい。
(8)
前記更新管理部は、前記シミュレータの判定に基づいて、前記対象装置に対する更新処理を開始又は前記対象装置に対する処理を中断できる形態であってもよい。
(9)
前記対象装置に対する処理を中断した場合、前記更新管理部は、前記更新専用モジュールに対して前記ソフトウェアの再度新しくダウンロードしてもよいし、又はユーザ及び管理者への通知の動作を自動で実行してもよい。
(10)
対象装置と同じソフトウェア実行環境を有する更新専用モジュールが、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新し、
記憶部が、前記更新専用モジュールにおいて更新した前記ソフトウェアのデータを格納し、
更新管理部が、前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記対象装置に前記記憶部に格納された前記更新したソフトウェアのデータを送信する、
ソフトウェア更新方法。
(11)
処理回路と、記憶部と、を備え、
前記処理回路は、
対象装置と同じソフトウェア実行環境において、前記対象装置において更新するソフトウェアを、前記ソフトウェア実行環境において任意の時刻で更新し、
更新した前記ソフトウェアのデータを前記記憶部に格納し、
前記対象装置における前記ソフトウェアの更新をスケジューリングし、スケジューリング時刻に基づいて前記対象装置に前記記憶部に格納された前記更新したソフトウェアのデータを送信する、
ソフトウェア更新装置。
【0097】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0098】
1:ソフトウェア更新装置、
10:通信部、
100:サーバ接続部、
102:装置接続部、
12:更新専用モジュール、
120:参照元リスト、
122:タイマー機能、
14:記憶部、
140:アップデータ、
16:更新管理部、
160:対象装置リスト、
162:タイマー機能、
18:シミュレータ、
2:サーバ、
20:更新ソフトウェア、
22:対象装置リスト、
24:タイマー機能、
3:対象装置、
30:参照元リスト、
32:タイマー機能。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11