JP2023088716A - 情報処理装置、情報処理システム及びプログラム - Google Patents

情報処理装置、情報処理システム及びプログラム Download PDF

Info

Publication number
JP2023088716A
JP2023088716A JP2021203627A JP2021203627A JP2023088716A JP 2023088716 A JP2023088716 A JP 2023088716A JP 2021203627 A JP2021203627 A JP 2021203627A JP 2021203627 A JP2021203627 A JP 2021203627A JP 2023088716 A JP2023088716 A JP 2023088716A
Authority
JP
Japan
Prior art keywords
software
information
low
end device
rollback
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021203627A
Other languages
English (en)
Inventor
真也 内匠
Shinya Takumi
由里恵 新家
Yurie Araya
竜一 小池
Ryuichi Koike
文彦 佐野
Fumihiko Sano
遵 金井
Jun Kanai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2021203627A priority Critical patent/JP2023088716A/ja
Priority to US17/823,879 priority patent/US20230185560A1/en
Publication of JP2023088716A publication Critical patent/JP2023088716A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】適切にロールバック処理を実行する。【解決手段】情報処理システムは、エッジサーバと、ローエンド機器と、を備える。前記ローエンド機器の処理回路は、自らの異常を検知するための異常情報を、前記エッジサーバに送信する。前記エッジサーバの記憶部は、バージョンごとの前記ソフトウェアに関する情報と、前記ローエンド機器で動作する前記ソフトウェアのバージョンを含むローエンド機器情報と、を格納する。前記エッジサーバの処理回路は、前記ローエンド機器から取得した前記異常情報に基づいて、前記ローエンド機器の異常を検知し、検知した前記異常に基づいて、前記記憶部に格納されている前記ローエンド機器の前記ソフトウェアのバージョン情報を取得し、前記記憶部から前記ローエンド機器で動作する前記バージョン情報におけるバージョンよりも古いバージョンのソフトウェアであるロールバックソフトウェア情報を取得し、前記ロールバックソフトウェア情報に基づいて、前記ローエンド機器に前記ソフトウェアのロールバックを要求する。【選択図】図1

Description

本発明の実施形態は、情報処理装置、情報処理システム及びプログラムに関する。
種々の情報処理システムの高度化に伴い、ソフトウェアが複雑化したり、オープンソースソフトウェア (OSS: Open Source Software) を利用したりすることが広まっている。これらに伴い、システムに脆弱性が入り込む危険性も高くなってきている。発見された脆弱性を直後に悪用する所謂ゼロデイ攻撃を受ける可能性があるため、脆弱性を修正するためのアップデートが早急に実行されることの望ましい。
一方で、アップデートを実行すると、ソフトウェアの挙動が変わることで、システムに異常が発生する危険性もある。ユニット、モジュールの単体テストレベルでは異常が発生しないことが確認できたとしても、ソフトウェアの組み合わせやハードウェア、環境等の際により、本番環境において異常が発生する危険性がある。このため、早急に脆弱性を修正したい要求があるものの、十分なテストを行ってからアップデートしたいという要求もある。早急なアップデートとテスト不十分による異常の発生可能性のジレンマを緩和又は解決する手法として、異常発生時にアップデート前のソフトウェアに戻すロールバック技術が上げられる。
しかしながら、スマートメータ等のような各種エッジデバイスであるローエンド機器では、機器のサイズ、消費電力、デバイスに依存する特殊なインタフェースの利用又はコストといった理由により、メモリやストレージのサイズに制約があることが多い。このため、ローエンド機器ではロールバックを実現のためにロールバック用ソフトウェアをローエンド機器に記録する十分なメモリやストレージを確保できないという課題がある。
特開2014-130585号公報
本開示では、適切にロールバック処理を実行又は管理する情報処理装置、情報処理システム及びプログラムについて提案する。
一実施形態によれば、情報処理システムは、エッジサーバと、ローエンド機器と、を備える。前記ローエンド機器の処理回路は、自らの異常を検知するための異常情報を、前記エッジサーバに送信する。前記エッジサーバの記憶部は、バージョンごとの前記ソフトウェアに関する情報と、前記ローエンド機器で動作する前記ソフトウェアのバージョンを含むローエンド機器情報と、を格納する。前記エッジサーバの処理回路は、前記ローエンド機器から取得した前記異常情報に基づいて、前記ローエンド機器の異常を検知し、検知した前記異常に基づいて、前記記憶部に格納されている前記ローエンド機器の前記ソフトウェアのバージョン情報を取得し、前記記憶部から前記ローエンド機器で動作する前記バージョン情報におけるバージョンよりも古いバージョンのソフトウェアであるロールバックソフトウェア情報を取得し、前記ロールバックソフトウェア情報に基づいて、前記ローエンド機器に前記ソフトウェアのロールバックを要求する。
一実施形態に係る情報処理システムを概略的に示す図。 一実施形態に係る情報処理システムを概略的に示す図。 一実施形態に係る情報処理システムの異常検知処理を示すフローチャート。 一実施形態に係る応答確認通信に対する応答の一例を示す図。 一実施形態に係るロールバック要求の処理の一例を示すフローチャート。 一実施形態に係るソフトウェア変更情報ヘッダの一例を示す図。 一実施形態に係るソフトウェア更新要求の処理の一例を示すフローチャート。 一実施形態に係る情報処理システムを概略的に示す図。 一実施形態に係る情報処理システムを概略的に示す図。 一実施形態に係る情報処理システムを概略的に示す図。 一実施形態に係る重複ロールバック判定部の処理の一例を示すフローチャート。 一実施形態に係るソフトウェア更新要求部の処理の一例を示すフローチャート。 一実施形態に係るソフトウェア検証部の処理の一例を示すフローチャート。 一実施形態に係るロールバック要求部の処理の一例を示すフローチャート。 一実施形態に係るロールバック判定部の処理の一例を示すフローチャート。
以下、図面を参照して実施形態について説明する。
(第 1 実施形態)
図1は、一実施形態に係る情報処理システムの概略を示す図である。情報処理システム 1 は、ローエンド機器 10 と、エッジサーバ 20 と、を備える。図示しないが、ローエンド機器 10 及びエッジサーバ 20 は、記憶回路又はストレージ等の記憶部と、記憶部に接続される処理回路と、を備える。
以下においては、処理回路の動作について主に説明するが、この回路は、ハードウェアとしてアナログ回路又はデジタル回路として実装されていてもよいし、ソフトウェアによる情報処理が処理回路というハードウェア資源を用いて具体的に実現できるように実装されていてもよい。ソフトウェアで動作する場合には、当該ソフトウェアの情報処理をするためのプログラム、実行ファイル等が、それぞれの記憶部に格納されていてもよい。
情報処理システム 1 は、エッジデバイスを含むローエンド機器 10 におけるファームウェア又はミドルウェアを含むソフトウェアの更新を、エッジサーバ 20 を用いて実現するシステムである。情報処理システム 1 は、図1においてはローエンド機器 10 及びエッジサーバ 20 がそれぞれ 1 台ずつ示されているが、これには限られず、複数のローエンド機器 10 及び/又は複数のエッジサーバ 20 を備えてもよい。
情報処理システム 1 において、ローエンド機器 10 及びエッジサーバ 20 は、相互に有線又は無線において通信可能な状態に接続される。接続は、 Ethernet (登録商標) 等のネットワークを用いてもよいし、 CAN (Controller Area Network) 、 Modbus (登録商標) 等のバスを用いてもよい。ローエンド機器 10 とエッジサーバ 20 間の接続は、ルータ若しくはハブ、又は、スイッチ等のネットワーク機器、スイッチングハブ等を介したものであってもよい。
ローエンド機器 10 及びエッジサーバ 20 は、例えば、 CPU 等の処理回路と、処理回路に接続されるメモリ、ストレージ等の記憶部と、を備える。以下に説明する各構成要素は、この処理回路又は記憶部の一部の動作であってもよい。
図2は、本実施形態に係る情報処理システム 1 として、ローエンド機器 10 とエッジサーバ 20 との構成の一例を示すブロック図である。ローエンド機器 10 は、ソフトウェア変更部 100 と、異常情報送信部 102 と、を備える。エッジサーバ 20 は、ソフトウェア更新要求部 200 と、ロールバック要求部 202 と、異常検知部 204 と、ソフトウェア情報保存部 206 と、機器情報保存部 208 と、を備える。
ソフトウェア変更部 100 は、エッジサーバ 20 からの要求に基づいて、ローエンド機器 10 のソフトウェアを変更する。ソフトウェアの変更は、新しいソフトウェアへの更新、古いソフトウェアへのロールバックの処理を含む。ソフトウェア変更部 100 は、エッジサーバ 20から変更するソフトウェアに関する情報を取得し、この情報に基づいてソフトウェアを更新する。ソフトウェアに関する情報は、ソフトウェアの種類に関する情報、ソフトウェアのバージョンに関する情報とともに、ソフトウェアの変更に必要となるプログラム、実行ファイル又はバッチファイルが含まれてもよい。
異常情報送信部 102 は、ローエンド機器 10 に異常が発生した場合に、エッジサーバ 20 側で異常を検知するための情報を、エッジサーバ 20 へと送信する。異常情報送信部 102 は、限定されない一例として、10 秒といった所定期間ごとにエッジサーバ 20 へと異常情報を送信してもよい。この所定期間は、情報処理システム 1 の構成により種々の値に変更することができる。また、この期間は所定の間隔でなくともよく、時間の経過により間隔が変化してもよい。例えば、ソフトウェアの更新又はソフトウェアのロールバックが発生した場合には、この直後からしばらくの間は、通知期間を短く設定し、その後に安定した状態が続いていれば、通知期間を長く変更するといった制御をしてもよい。
ソフトウェア更新要求部 200 は、ローエンド機器 10 において動作するソフトウェアについての更新情報を取得すると、この情報に基づいてローエンド機器 10 にソフトウェア更新要求を送信する。ソフトウェア更新要求部 200 は、この更新要求とともに、更新に必要となるアップデータ等を送信してもよい。ソフトウェア更新要求部 200 は、例えば、後述するように各種メモリ、ストレージから更新情報を取得してもよいし、ネットワークを介して他のデバイスから更新情報を取得してもよい。また、別の例として、ユーザが明示的にソフトウェア更新要求部 200 に更新情報を通知してもよいし、ソフトウェア更新要求部 200 がソフトウェア情報保存部 206 にアクセスすることで更新情報を取得してもよい。
ロールバック要求部 202 は、ローエンド機器 10 においてソフトウェアのロールバックが必要と判断される場合に、ソフトウェア変更部 100 にソフトウェアのロールバック要求を送信する。ロールバック要求部 202 は、ソフトウェア更新要求部 200 と同様に、ロールバック要求とともに、ロールバックに必要となるロールバックデータ等を送信してもよい。
異常検知部 204 は、異常情報送信部 102 から送信される異常情報に基づいて、ローエンド機器 10 における異常を検知する。異常検知部 204 は、異常情報に基づいて、ローエンド機器 10 における異常を検知した場合に、ロールバック要求部 202 に異常が発生したことを通知する。上記においては、異常情報送信部 102 が所定期間ごとに異常情報を通知するとしたが、これに限定されず、異常検知部 204 が異常情報送信部 102 に異常情報を通知する要求をし、異常情報送信部 102 が異常検知部 204 からの要求に対して異常情報を通知してもよい。
ソフトウェア情報保存部 206 は、記憶部の一部として備えられ、バージョンごとに、ソフトウェアに関する情報を格納する。ソフトウェア情報保存部 206 は、バージョンに対するイメージファイル等が直接的に格納されてもよいし、当該イメージファイル等にアクセスするための情報が格納されてもよい。また、イメージファイルそのものに代えて、各バージョン間の差分情報がソフトウェア情報保存部 206 に格納されてもよい。また、ソフトウェア情報保存部 206 には、特に、安定バージョンを示す情報が併せて格納されていてもよい。
機器情報保存部 208 は、ローエンド機器 10 で動作するソフトウェアのバージョンを含むローエンド機器情報を格納する。機器情報保存部 208 には、例えば、複数のローエンド機器 10 がエッジサーバ 20 に接続されている場合には、それぞれのローエンド機器 10 において動作しているソフトウェアと、当該ソフトウェアのバージョンとの情報が格納される。
エッジサーバ 20 が複数存在する場合には、ソフトウェア情報保存部 206 及び機器情報保存部 208 は、同期して管理されてもよい。別の例として、複数のエッジサーバ 20 に対して、共通にアクセスすることが可能なストレージ、ファイルサーバ等が備えられ、対応するエッジサーバ 20 がこのストレージ等に接続可能な状態であってもよい。すなわち、図2 (以下の説明に用いるブロック図においても同様) において、記憶部は、エッジサーバ 20 内に備えられているが、これに限定されず、記憶部がエッジサーバ 20 の外部にあってもよい。ローエンド機器 10 の記憶部についても同様である。
図3は、本実施形態に係る情報処理システム 1 の異常検知処理の限定されない一例を示すフローチャートである。このフローチャートは、例えば、エッジサーバ 20 の異常検知部 204 の動作に関する処理を示す。
まず、異常検知部 204 は、異常情報に関する通信を異常情報送信部 102 との間で実行する (S100) 。限定されない一例として、異常検知部 204 から応答確認通信を異常情報送信部 102 に送信し、異常情報送信部 102 は、この応答確認通信に対して異常情報を異常検知部 204 へと送信してもよい。限定されない別例として、異常情報送信部 102 が不変または可変の周期で異常検知部 204 に異常情報を送信してもよい。
異常検知部 204 は、例えば、異常情報送信部 102 へと ping を発信することで応答確認通信を行ってもよい。通信プロトコルに制限はなく、別の例として、応答確認通信は、 HTTP 、 HTTPS 、 Modbus/TCP 等の一般的に用いられているプロトコル、又は、独自のプロトコルを用いた通信を介して実行されてもよい。
図4は、応答確認通信に対する応答、すなわち、異常情報送信部 102 から送信される異常情報の一例を示す図である。この例では、異常情報の内容の一例として JSON (JavaScript Object Notation) を用いて記述しているが、形式及び記述方法は、これに限定されるものではなく、適切に必要な内容が記述できる形式であればよい。また、別の例として、ファイル化せずに応答確認通信に対する応答確認を異常検知部 204 に実装してもよい。また、 “protocol” 、 “header” 等の名称についても、これらに限定されるものではなく、項目名は、任意であってもよいし、項目名が定義されていなくてもよい。一例として、 ping で通信をするので “protocol” が “ping” と設定されている。
“header” 内の “source address” は、例えば、送信元の IP アドレスを示し、 “destination address” は、送信先の IP アドレスを示す。 “header” 内には、その他のヘッダ情報、例えば、 TCP/IP ヘッダ情報といったプロトコルに依存するヘッダ情報、又は、 MAC (Media Access Control) アドレス等のフレームヘッダの情報が含まれていてもよい。
“payload” 内の 0 : 0x1 は、ペイロードの 0 byte 目が 0x1 であることを示し、 1 : 0x0 - 0x2 は、ペイロードの 1 byte 目が 0x0 から 0x2 の範囲内であることを示し、 2 - 4 : 0x1 は、ペイロードの 2 から 4 byte 目が 0x1 であることを示す。
図3に戻り、異常検知部 204 は、異常情報を受信した場合 (S102: YES) 、受信した異常情報に基づいて、ローエンド機器 10 において異常が発生しているか否かを判断する (S104) 。異常検知部 204 は、異常情報のヘッダ又はペイロードの内容を確認し、異常情報が期待通りの内容であるかを確認することで、異常が発生しているか否かを判断する。
異常が発生していない場合 (S104: NO) 、異常検知部 204 は、待機状態となり、 S100 からの処理を継続して実行する。
異常検知部 204 は、異常情報を所定期間内に受信しない場合 (S102: NO) 、又は、受信した異常情報から異常が発生していると判断された場合 (S104: YES) 、異常を検知する (S106) 。異常が発生していることの判断は、限定されない例として以下の様に実行される。
図4の例では、 “timeout” が異常情報を受信する所定期間を示し、 10 秒間応答を待つ状態であることを示す。異常検知部 204 は、ローエンド機器 10 から 10 秒以内に応答である異常情報を受信しない場合、異常が発生していると判断する (S102: NO) 。
異常検知部 204 は、 “header” を参照し、異常情報のヘッダの内容が正しいかを確認する。異常検知部 204 は、例えば図4における異常情報において、送信元 IP アドレスが 192.168.0.1 と異なる場合、又は、送信先 IP アドレスが 192.168.0.2 と異なる場合に異常が発生していると判断する (S104: YES) 。また、異常検知部 204 は、ペイロードの内容が、前述の “payload” の内容と合致しない場合に、異常が発生していると判断する (S104: YES) 。
異常検知部 204 は、異常を検知する (S106) と、ロールバック要求部 202 に異常を通知する。異常の通知は、例えば、シグナルを使用してもよく、別の例として、パイプ、メッセージキュー、ソケット又はロールバック要求部 202 と共有するメモリの値を書き換える等のロールバック要求部 202 に異常内容を通知できる方法であればよい。
異常検知部 204 は、検知した異常をファイル又はデータベースに記録してもよい。異常の記録は、 HTTP 、 HTTPS 、 SMTP 、 SNMP 等の通信プロトコルを介して外部に異常を送信してもよい。別の例として、異常検知部 204 は、各種インタフェースを用いて異常を出力、例えば、異常をディスプレイのような外部表示装置に表示してもよい。
異常検知部 204 から通知があると、ロールバック要求部 202 は、ローエンド機器 10 のソフトウェアのロールバックを実行する。
図5は、ロールバック処理の一例を示すフローチャートである。
ロールバック要求部 202 は、異常検知部 204 から異常が発生した通知を受信することで処理を開始する (S200) 。
ロールバック要求部 202 は、機器情報保存部 208 から、異常が発生しているローエンド機器 10 に関する情報を取得し、また、ソフトウェア情報保存部 206 からソフトウェアおよびソフトウェ変更情報ヘッダを取得する (S202) 。
機器情報保存部 208 に格納されているローエンド機器に関する情報には、ローエンド機器 10 で動作しているソフトウェア及び当該ソフトウェアのバージョン情報が含まれる。このローエンド機器に関する情報は、さらに、例えば、 CPU 種別、メモリ容量、ストレージ容量及びメモリマップといったハードウェアに関する情報、及び、デバイス名、利用している OS (Operating System) 等の情報が含まれてもよい。
ソフトウェア情報保存部 206 においては、セマンティック・バージョニングで記載されたソフトウェアバージョンと関連付けてソフトウェア及びソフトウェア変更情報ヘッダが保存される。ソフトウェアバージョンは、バージョンが認識できれば、その形式は、特に限定されるものではない。ソフトウェア情報保存部 206 に保存されたソフトウェアは、圧縮、暗号化又は各種エンコードが施されていてもよい。また、保存されたソフトウェアは、署名が付与されていてもよいし、バージョンごとの差分をソフトウェアとして記録してもよい。
図6は、ソフトウェア変更情報ヘッダの限定されない一例を示す図である。ソフトウェア変更情報ヘッダは、例えば、 JSON を用いて記述されているが、この形式は限定されるものではない。また、ソフトウェア変更情報ヘッダは、図に示される “start” 、 "end” 以外の項目を有していてもよい。
“start” は、ソフトウェアを変更するローエンド機器 10 における当該ソフトウェアの開始メモリアドレスを示す。 “end” は、ソフトウェアを変更するローエンド機器 10 における当該ソフトウェアの終了メモリアドレスを示す。
“software format” の “binary” は、例えば、当該ソフトウェア変更情報に紐付けられるソフトウェアが、そのままのファイルの状態でローエンド機器 10 のメモリに配置することで、ローエンド機器 10 の処理回路において実行可能であることを示す。
ロールバック要求部 202 は、機器情報保存部 208 から読み出したローエンド機器 10 に関する情報から、ソフトウェアのバージョン情報を抽出する。ロールバック要求部 202 は、抽出したバージョンよりも 1 つ古い、又は、それ以前のバージョンと関連付けられたソフトウェアの情報であるロールバックソフトウェアに関する情報をソフトウェア情報保存部 206 から取得する。取得するソフトウェアは、例えば、安定バージョンであってもよい。
図5に戻り、ロールバック要求部 202 は、各種情報を取得した後、ローエンド機器 10 に対してロールバック要求を送信する (S204) 。 S202 で取得したソフトウェアと、ソフトウェア変更情報ヘッダをソフトウェア変更部 100 へと送信する。ロールバック要求部 202 は、複数のソフトウェア変更情報ヘッダと、対応する複数のソフトウェアを、ローエンド機器 10 へと送信してもよい。
ソフトウェア変更情報ヘッダを受信したソフトウェア変更部 100 は、受信したソフトウェア変更ヘッダに基づいて、ローエンド機器 10 のメモリの 0x1000 から 0x2000 にソフトウェアを配置 (マッピング) する。
ロールバック要求部 202 は、 AES 、 RSA といった暗号化が施されたソフトウェアをソフトウェア変更部 100 に送信してもよい。ソフトウェア変更部 100 が暗号化されたソフトウェアを復号できるように、暗号化に関する情報を、ソフトウェア変更情報ヘッダに加えてもよい。ソフトウェア変更部 100 は、ソフトウェア変更情報ヘッダに加えられている暗号化に関する情報に基づいて、ソフトウェアを復号する機能を有していてもよいし、ローエンド機器 10 に、別途復号器が備えられていてもよい。
ロールバック要求部 202 は、 base64 といったエンコードが施されたソフトウェアをソフトウェア変更部 100 に送信してもよい。ソフトウェア変更部 100 がエンコードされたソフトウェアをデコードできるように、デコードに関する情報をソフトウェア変更情報ヘッダに加えてもよい。ソフトウェア変更部 100 は、ソフトウェア変更情報ヘッダに加えられているデコードに関する情報に基づいて、ソフトウェアをデコードする機能を有してもよいし、ローエンド機器 10 に、別途デコーダが備えられていてもよい。
ロールバック要求部 202 は、 zip 、 7z 、 rar 、 tar 、 lha といった圧縮がされたソフトウェアをソフトウェア変更部 100 に送信してもよい。ソフトウェア変更部 100 が圧縮されたソフトウェアを解凍できるように、解凍に関する情報をソフトウェア変更情報ヘッダに加えてもよい。ソフトウェア変更部 100 は、ソフトウェア変更情報ヘッダに加えられている解凍に関する情報に基づいて、ソフトウェアを解凍する機能を有していてもよいし、ローエンド機器 10 に、別途解凍部が備えられていてもよい。
このように、ソフトウェア変更情報ヘッダは、ソフトウェアに関する種々のフォーマット情報を含んでもよい。また、ソフトウェア変更部 100 は、このソフトウェアのフォーマット情報に基づいて、更新ソフトウェア情報をローエンド機器 10 で実行可能なソフトウェアに変換できる構成としてもよい。
ロールバック要求部 202 は、 x.509 といった証明書を付与して認証が可能なソフトウェアをソフトウェア変更部 100 に送信してもよい。ソフトウェア変更部 100 が証明書に基づいたソフトウェアの認証できるか否かの検証ができるように、証明書に関する情報をソフトウェア変更情報ヘッダに加えてもよい。ソフトウェア変更部 100 は、ソフトウェア変更情報ヘッダに加えられている証明書に関する情報に基づいて、ソフトウェアを検証する機能を有してもよいし、ローエンド機器 10 に別途認証部が備えられていてもよい。
ロールバック要求部 202 は、署名が追加されたソフトウェア変更情報ヘッダをソフトウェア変更部 100 に送信してもよい。ソフトウェア変更部 100 は、ソフトウェア変更情報ヘッダに加えられている署名に基づいて、ソフトウェア変更情報ヘッダの署名検証をする機能を有してもよいし、ローエンド機器 10 に別途署名検証部が備えられていてもよい。
ソフトウェア変更部 100 は、正常にソフトウェア変更が完了した場合、ロールバック要求部 202 にソフトウェア変更完了応答を送信する。ソフトウェア変更部 100 は、ソフトウェア変更に失敗した場合、ロールバック要求部 202 にソフトウェア変更失敗応答を送信する。ソフトウェア変更失敗応答には失敗した要因を記録した情報が含まれていてもよい。なお、ソフトウェア変更部 100 は、ソフトウェア更新要求部 200 に対して上記の情報を送信してもよく、この場合、ソフトウェア更新要求部 200 がロールバック要求部 202 にこれらの情報を送信してもよい。
ロールバック要求部 202 は、ソフトウェア変更部 100 からのソフトウェア変更完了応答又はソフトウェア変更失敗応答を、ロールバック要求を行ってから所定時間待ち、応答があるか否かを判定する (S206) 。例えば、所定時間は、 10 秒であってもよいし、上記と同様にこれに限定されず、不変又は可変の時間としてもよい。
ロールバック要求部 202 は、ソフトウェア変更部 100 から応答を受信した場合 (S206: YES) 、ソフトウェア変更部 100 からの応答がソフトウェア変更完了応答か、ソフトウェア変更失敗応答かを判定する (S208) 。
ロールバック要求部 202 は、ソフトウェア変更部 100 からソフトウェア完了応答を受信した場合 (S208: NO) 、ソフトウェア変更部 100 において正常にソフトウェア変更が実行されたと判断する。ロールバック要求部 202 は、ローエンド機器情報の動作ソフトウェアバージョンを、ソフトウェア変更部 100 に送信したソフトウェアバージョンに変更し、機器情報保存部 208 の情報を更新する (S210) 。併せて、ロールバック要求部 202 は、ソフトウェアバージョン以外のローエンド機器情報を変更して、機器情報保存部 208 の情報を更新してもよい。
一方で、ソフトウェア変更部 100 からの応答が所定時間ない場合 (S206: NO) 又はソフトウェア変更失敗応答を受信した場合 (S208: YES) には、ロールバック要求部 202 は、ソフトウェアの変更が失敗したと判定する。ロールバック要求部 202 は、ソフトウェア変更部 100 によるソフトウェア変更の失敗を検知した場合、失敗をファイル又はデータベースに記録してもよい (S212) 。失敗の記録は、 HTTP 、 HTTPS 、 SMTP 、 SNMP 等の通信プロトコルを介して外部に送信されてもよく、受信側でディスプレイ等の外部表示装置又は外部出力装置に失敗に関する情報を表示又は出力してもよい。また、併せて、ソフトウェア変更が失敗した要因をログとして記録してもよい。
図7は、ソフトウェア更新要求部 200 の処理の限定されない一例を示すフローチャートである。
ソフトウェア更新要求部 200 は、ソフトウェアバージョン、更新ソフトウェア、ソフトウェア変更情報ヘッダを、例えば、 USB メモリ、 SD カードといった媒体を介して、又は、 JTAG 、 ネットワーク等を経由して取得する (S300) 。
ソフトウェア更新要求部 200 は、取得したソフトウェアと、ソフトウェア変更情報ヘッダとを、ソフトウェア変更部 100 に送信し、ローエンド機器 10 にソフトウェアロールバックの要求を送信する (S302) 。
S304 は、図5の S206 と、S306 は、 S208 と、S308 は、 S210 と、 S312 は、 S212 と同じ処理であるので、詳細については省略する。動作の主体は、ソフトウェア更新要求部 200 であることに留意されたい。
ソフトウェア更新要求部 200 は、 S300 で取得したソフトウェアバージョン、更新素ストウェア、ソフトウェア変更情報ヘッダを、ソフトウェア情報保存部 206 に格納し、更新する (S310) 。この処理により、将来的なロールバック先となるソフトウェア及びソフトウェアバージョン等の情報が更新される。
以上のように、本実施形態によれば、ローエンド機器 10 は、エッジサーバ 20 からの要求に基づいて、適切なソフトウェアのロールバックを実現することができる。
(変形例)
図8は、第 1 実施形態の変形例に係る情報処理システム 1 を概略的に示すブロック図である。ローエンド機器 10 は、第 1 実施形態の構成に、さらに、ハングアップ通知部 104 を備える。
ハングアップ通知部 104 は、ローエンド機器 10 から周期的なアクセスがない場合に、ローエンド機器 10 におけるソフトウェア (OS を含む) がハングアップしたと判断し、エッジサーバ 20 にローエンド機器 10 がハングアップしたことを通知する。
ハングアップ通知部 104 は、例えば、 Watchdog 等の異常検知をするための構成を用いて、異常を検知してもよい。また、ハングアップ通知部 104 は、異常通知に、ローエンド機器 10 のメモリから読み出した少なくとも一部のメモリデータ又はコアダンプ等の情報を付与して送信してもよい。
以上のように、本変形例によれば、さらに、ローエンド機器 10 がハングアップした場合に、速やかにロールバックをすることが可能となる。
(第 2 実施形態)
図9は、第 2 実施形態に係る情報処理システム 1 を概略的に示すブロック図である。前述の第 1 実施形態では、ローエンド機器 10 及びエッジサーバ 20 により情報処理システム 1 が構成されていたが、本実施形態ではさらに、情報処理システム 1 は、ソフトウェア管理コンソール 30 を備える。
ローエンド機器 10A は、エッジサーバ 20A と接続され、ローエンド機器 10B は、エッジサーバ 20B と接続され、ローエンド機器 10C は、エッジサーバ 20C と接続される。さらに多くのローエンド機器 10 とエッジサーバ 20 とが備えられてもよい。限定されない例として、ローエンド機器 10A とローエンド機器 10B が通信可能な態様で接続されてもよい。また、エッジサーバ 20A とエッジサーバ 20B が通信可能な態様で接続されてもよい。また、エッジサーバ 20B とローエンド機器 10C が接続されてもよい。このように、ローエンド機器 10 とエッジサーバ 20 は任意に相互に通信可能な態様で接続されてもよい。
ソフトウェア管理コンソール 30 は、例えば、 CPU 等の処理回路と、処理回路に接続されるメモリ、ストレージ等の記憶部と、を備える。以下に説明する各構成要素は、この処理回路又は記憶部の一部の動作であってもよい。ソフトウェア管理コンソール 30 は、任意の手段でエッジサーバ 20A 、 20B 、 20C と接続される。また、ソフトウェア管理コンソール 30 は、図9においては 1 つしか示されていないが、複数のソフトウェア管理コンソール 30 が備えられていてもよい。
図10は、ローエンド機器 10 、エッジサーバ 20 及びソフトウェア管理コンソール 30 の構成の限定されない一例を示すブロック図である。なお、本図においては、ローエンド機器 10 、 エッジサーバ 20 及びソフトウェア管理コンソール 30 のそれぞれについて 1 つずつしか示されていないが、上述したように、構成によっては、それぞれ複数が備えられていてもよい。
ソフトウェア管理コンソール 30 は、検証情報送信部 300 と、ソフトウェア配布部 302 と、ロールバック判定部 304 と、ロールバック登録部 306 と、検証情報保存部 308 と、配布ソフトウェア保存部 310 と、更新機器情報保存部 312 と、を備える。
検証情報送信部 300 は、ソフトウェア検証をするためのメタ情報をソフトウェア検証部 212 に送信する。
ソフトウェア配布部 302 は、ソフトウェアを重複ロールバック判定部 210 に配布する。
ロールバック判定部 304 は、複数のエッジサーバ 20 を含むエッジサーバ群に対するロールバックをソフトウェア配布部 302 を介して一斉に指示する。
ロールバック登録部 306 は、エッジサーバ群のロールバック通知部 214 から通知されたロールバックした複数のローエンド機器 10 を含むローエンド機器群の情報を登録する。
検証情報保存部 308 は、ソフトウェア検証をするためのメタ情報を保存する。
配布ソフトウェア保存部 310 は、配布ソフトウェアをバージョンごとに保存する。
更新機器情報保存部 312 は、ロールバックしたローエンド機器群の情報を保存する。
エッジサーバ 20 は、前述の実施形態の構成に加え、重複ロールバック判定部 210 と、ソフトウェア検証部 212 と、ロールバック通知部 214 と、を備える。
重複ロールバック判定部 210 は、ロールバック済みのローエンド機器 10 のソフトウェア更新をスキップする。
ソフトウェア検証部 212 は、更新ソフトウェアの正しさを確認する。
ロールバック通知部 214 は、ローエンド機器 10 のロールバックを、ロールバック登録部 306 に通知する。
ソフトウェア配布部 302 は、バージョンごとにソフトウェアが保存されている配布ソフトウェア保存部 310 から、例えば、ローエンド機器 10 に対応する最新バージョンのソフトウェアを取得する。ソフトウェア配布部 302 は、それぞれのエッジサーバ 20 の重複ロールバック判定部 210 にソフトウェアを配布する。重複ロールバック判定部 210 は、ソフトウェア配布部 302 から送信されたソフトウェアを受信する。
ソフトウェア配布部 302 は、ソフトウェア管理コンソール 30 がエッジサーバ 20 からの要求、 WEB ブラウザ等のソフトウェアを介した外部からの要求受けた場合、又は、配布ソフトウェア保存部 310 に最新バージョンのソフトウェアが保存された場合等をトリガとし、エッジサーバ 20 にソフトウェアの配布を開始してもよい。
ソフトウェア配布部 302 は、ソフトウェア管理コンソール 30 がエッジサーバ 20 からソフトウェア更新完了通知又はソフトウェア更新失敗通知を受信した場合に、当該通知をファイルに保存してもよく、その通知をディスプレイ等の外部装置に出力してもよいし、 HTTP 、 HTTPS 、 SMTP 等のプロトコルを介して外部に送信してもよい。
図11は、重複ロールバック判定部 210 の処理の限定されない一例を示すフローチャートである。
重複ロールバック判定部 210 は、ソフトウェア配布部 302 から最新バージョンのソフトウェアを受信する (S400) 。
重複ロールバック判定部 210 は、機器情報保存部 208 に保存されたローエンド機器情報からローエンド機器 10 で動作しているソフトウェアバージョン情報を取得し、取得したソフトウェアバージョン情報に基づいて、ソフトウェア情報保存部 206 に保存されたローエンド機器 10 で動作しているソフトウェアを取得する (S402) 。
重複ロールバック判定部 210 は、 S400 で取得したソフトウェアと、 S402 で取得したソフトウェアと、を比較し、同じソフトウェアであるか否かを判定する (S404) 。この比較は、ソフトウェアごとに sha2 、 sha3 等に基づいたハッシュ関数を使用して生成されたダイジェストを使用しても実行されてもよい。
ソフトウェアが異なる場合 (S404: NO) 、ソフトウェア更新要求部 200 は、重複ロールバック判定部 210 がソフトウェア配布部 302 から取得したソフトウェアを用いて、ソフトウェア変更部 100 にソフトウェア更新を要求する (S406) 。
ソフトウェアが同一である場合 (S404: YES) 、重複ロールバック判定部 210 は、ソフトウェアが同じで合ったことをファイルに保存してもよいし、ソフトウェア管理コンソール 30 (ソフトウェア配布部 302) 又はその他の外部に通知をしてもよい (S408) 。この場合、ソフトウェア更新要求部 200 は、ソフトウェアの更新をスキップする。
図12は、本実施形態に係るソフトウェア更新要求部 200 の処理の限定されない一例を示すフローチャートである。
ソフトウェア更新要求部 200 は、重複ロールバック判定部 210 が配布するソフトウェアを受信する (S500) 。
次に、ソフトウェア検証部 212 は、ソフトウェア更新要求部 200 からソフトウェアを取得し、ソフトウェアを検証する (S502) 。ソフトウェア検証部 212 は、重複ロールバック判定部 210 からソフトウェアを取得してもよい。
ソフトウェアの検証が成功すると (S502: YES) 、ソフトウェア更新要求部 200 は、ソフトウェア更新要求をソフトウェア変更部 100 に対して通知する (S504) 。この後の処理は、前述の実施形態と同様である。すなわち、 S506 は、図7の S304 と、 S508 は、 S306 と、 S510 は、 S308 と、 S512 は、 S310 と、それぞれ同様の処理である。
一方で、ソフトウェアの検証が失敗すると (S502: NO) 、ロールバック要求部 202 は、失敗をファイル又はデータベースに記録してもよい (S514) 。この S514 の処理は、例えば、図5の S212 の処理と同様である。
図13は、本実施形態に係るソフトウェア検証部 212 の処理の限定されない一例を示すフローチャートである。
ソフトウェア検証部 212 は、ソフトウェア更新要求部 200 からソフトウェアを取得する (S600) 。上述したように、ソフトウェア検証部 212 は、重複ロールバック判定部 210 から直接的にソフトウェアを取得してもよい。
ソフトウェア検証部 212 は、検証情報送信部 300 にソフトウェア検証情報であるメタ情報の送付を要求する (S602) 。ソフトウェア検証部 212 は、ソフトウェア名、ローエンド機器 10 のデバイス名、又は、ローエンド機器 10 の識別番号といった情報を、要求と併せて送信してもよい。この場合、検証情報送信部 300 は、以下の処理において、この要求に付与された情報にも基づいたソフトウェアを識別するための情報を検証情報保存部 308 から取得し、ソフトウェア検証部 212 へと送信してもよい。
ソフトウェア検証部 212 は、検証情報送信部 300 からソフトウェア検証情報の受信を待ち (S604) 、所定時間、限定されない例として、 10 秒の間に応答が無い場合に、ソフトウェア検証が失敗したと判断し (S604: NO) 、 S610 の処理を実行する。
応答があった場合 (S604: YES) 、検証情報送信部 300 は、ソフトウェア検証部 212 からの要求に基づいてソフトウェア検証情報の取得を試み、取得できたか否かをソフトウェア検証部 212 に送信してもよい。ソフトウェア検証部 212 は、検証情報送信部 300 からこの通知を受信して、正常に検証情報が習得できたか否かを判断する (S606) 。
ソフトウェア検証部 212 は、受信した通知がソフトウェア検証情報の取得が失敗した旨の通知であった場合に、ソフトウェア検証が失敗したと判断し (S606: YES) 、 S610 の処理を実行する。
失敗応答ではなかった場合 (S606: YES) 、ソフトウェア検証部 212 は、検証情報送信部 300 から受信した、例えば、 x.509 形式のソフトウェア検証情報に基づいて、ソフトウェアを検証する (S608) 。ソフトウェア検証情報は、 x.509 形式以外の形式であってもよく、適切にソフトウェアの正当性又は完全性を検証するための情報であれば、その形式は問わない。
ソフトウェア検証部 212 は、検証結果、又は、ソフトウェア検証情報の取得成功若しくは取得失敗をファイルに保存してもよい (S610) 。この検証結果等は、 HTTP 、 HTTPS 、 SMTP 等のプロトコルを介してソフトウェア管理コンソール 30 (検証情報送信部 300) 又はその他の外部に通知されてもよい。また、この検証結果等を、ディスプレイなどの外部装置に出力してもよい。 S610 の処理は、検証が成功した場合のみ、又は、検証が失敗した場合のみ実行されてもよい。
ソフトウェア検証部 212 は、ソフトウェア更新要求部 200 に検証結果を送信する (S612) 。
検証情報送信部 300 は、ソフトウェア検証部 212 の要求に従って、検証情報保存部 308 から最新ソフトウェアのソフトウェア検証情報を取得してもよい。検証情報送信部 300 は、この取得したソフトウェア検証情報を、ソフトウェア検証部 212 に送付してもよい。検証情報保存部 308 は、ソフトウェア名、ローエンド機器 10 のデバイス名又はローエンド機器 10 の識別番号等と関連付けて、ソフトウェア検証情報が格納されていてもよい。検証情報送信部 300 は、ソフトウェア名、ローエンド機器 10 のデバイス名又はローエンド機器 10 の識別番号等に基づいて、ソフトウェア検証部 212 の要求に従い、ソフトウェア検証情報を取得してもよい。
図14は、本実施形態におけるロールバック要求部 202 の処理の限定されない一例を示すフローチャートである。
S700 から S710 及び S714 の処理は、それぞれ、図5の S200 から S212 の処理と同様の処理を行う。
ロールバック要求部 202 が、ローエンド機器情報の動作ソフトウェアバージョンを、ソフトウェア変更部 100 に送信したソフトウェアバージョンに変更し、機器情報保存部 208 の情報を更新した (S710) 後に、以下の処理が実行される。
ロールバック要求部 202 は、ロールバックしたソフトウェアバージョンと、ロールバックしたローエンド機器 10 の識別番号とを、ロールバック通知部 214 に通知する (S712) 。ローエンド機器 10 の識別番号は、ローエンド機器 10 の名称でもよく、ローエンド機器 10 を識別できる内容であればその内容やフォーマットは、限定されるものではない。
ロールバック通知部 214 は、ソフトウェアバージョンとロールバックしたローエンド機器 10 の識別番号をロールバック登録部 306 に送信する。ロールバック通知部 214 は、異常検知部 204 がファイルに記録した異常内容、ローエンド機器 10 のタイプ又はローエンド機器 10 のサービス名等の情報をロールバック登録部 306 に併せて送付しても良い。
ロールバック登録部 306 は、ロールバック通知部 214 から送付されたソフトウェアバージョンと、ロールバックしたローエンド機器 10 の識別番号等のローエンド機器 10 に関する情報を、更新機器情報保存部 312 に保存する。さらに、ロールバック登録部 306 は、ロールバック判定部 304 にロールバックの発生を通知する。
図15は、本実施形態に係るロールバック判定部 304 の処理の限定されない一例を示すフローチャートである。
ロールバック判定部 304 は、ロールバック登録部 306 からの通知を起点として動作を開始する (S800) 。また、ロールバック判定部 304 は、ロールバック登録部 306 からの通知によらず、定期的に起動するようにしてもよい。任意に起動する場合には、ロールバック判定部 304 は、例えば、 WEB ブラウザ等のボタンを介して起動してもよい。
ロールバック判定部 304 は、更新機器情報保存部 312 からロールバック機器情報を取得する (S802) 。
ロールバック判定部 304 は、ロールバック機器情報に基づいて、ローエンド機器 10 に対するロールバック指示の必要性を判定する (S804) 。ロールバック判定部 304 は、例えば、ロールバックしたローエンド機器 10 の台数を所定値と比較することで判定を行ってもよい。例えば、図9に示す構成のようにローエンド機器 10 が3台存在する場合、 2 台を閾値としてもよい。すなわち、 3 台中 2 台のローエンド機器 10 がロールバック機器情報に記載されている場合に、ロールバック判定部 304 は、ロールバック指示が必要であると判断してもよい。
ローエンド機器 10 の台数は3台以上でも以下でもよい。しきい値として用いられる所定値は、 2 台以上でも以下でもよく、又は、パーセンテージとして表記されていてもよい。さらに、このしきい値は、条件等に応じて変化する動的なものであってもよい。
ロールバック指示の必要性の判定には、ロールバックした機器の台数以外の情報を用いてもよい。ロールバック判定部 304 は、例えば、ロールバック機器情報に記載された情報を利用したディープラーニング、決定木又はサポートベクターマシン等の機械学習アルゴリズムにより学習されたモデルを用いて、ロールバックの必要性を判定してもよい。
ロールバックが必要ではないと判断された場合 (S804: NO) 、処理を終了してもよい。
ロールバックが必要であると判断された場合 (S804: YES) 、ロールバック判定部 304 は、更新機器情報保存部 312 から、取得したロールバック機器情報を削除して更新する (S806) 。ロールバック判定部 304 は、ロールバック機器情報を削除せずにバージョン情報等を付与することにより、古いロールバック機器情報として更新機器情報保存部 312 に残した状態で情報を更新してもよく、別の例として、外部の記憶媒体にロールバック機器情報を保存しても良い。
ロールバック判定部 304 は、配布ソフトウェアを更新する (S808) 。ロールバック判定部 304 は、例えば、ロールバック機器情報から取得したソフトウェアバージョンに基づいて、配布ソフトウェア保存部 310 からソフトウェアを取得し、配布ソフトウェア保存部 310 に登録されているソフトウェアの最新バージョンを取得する。ロールバック判定部 304 は、例えば、配布ソフトウェア保存部 310 から取得した最新バージョンを、さらに大きな最新バージョンに更新し、配布ソフトウェア保存部 310 から取得したソフトウェアと、最新バージョンとを関連付けて配布ソフトウェア保存部 310 に保存する。
ロールバック判定部 304 は、配布ソフトウェア保存部 310 から取得したソフトウェアに対するソフトウェア検証情報を生成し、生成したソフトウェア検証情報を検証情報保存部 308 に保存する (S810) 。
ロールバック判定部 304 は、ソフトウェア配布部 302 にソフトウェアの更新を要求する (S812) 。ロールバック判定部 304 は、ロールバックが必要と判断したことをファイルに記録してもよい。また、ロールバック判定部 304 は、ロールバックが必要と判断したことを、 HTTP 、 HTTPS 、 SMTP 等のプロトコルを介して外部に送信してもよく、また、ディスプレイ等の外部装置に表示してもよい。さらに、外部装置又は送信結果を受け取った人間がソフトウェア配布部 302 に各種インタフェースを介して、ソフトウェアの更新を要求しても良い。
S806 の処理は、 S808 ~ S812 の処理の間、又は、後に、順序を入れ替えて実行されてもよい。また、 S810 の処理は、 S808 の処理の前に実行されてもよく、 S812 の処理の後に実行されてもよい。
以上のように、本実施形態によれば、ソフトウェア管理コンソール 30 を備えることで、複数のローエンド機器でロールバックが発生した場合に、以上が発生する前に、ローエンド機器にロールバックを適用することができる。また、最新のソフトウェアへの更新を要求する更新システムと連携したロールバックを実施することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1: 情報処理システム、
10: ローエンド機器、
100: ソフトウェア変更部、
102: 異常情報送信部、
104: ハングアップ通知部、
20: エッジサーバ、
200: ソフトウェア更新要求部、
202: ロールバック要求部、
204: 異常検知部、
206: ソフトウェア情報保存部、
208: 機器情報保存部、
210: 重複ロールバック判定部、
212: ソフトウェア検証部、
214: ロールバック通知部、
30: ソフトウェア管理コンソール、
300: 検証情報送信部、
302: ソフトウェア配布部、
304: ロールバック判定部、
306: ロールバック登録部、
308: 検証情報保存部、
310: 配布ソフトウェア保存部、
312: 更新機器情報保存部

Claims (18)

  1. 記憶部と、処理回路と、を有する 1 以上のエッジサーバと、
    記憶部と、処理回路と、を有し、前記エッジサーバの少なくとも 1 つと接続され、前記エッジサーバからの要求でソフトウェアを変更する、 1 以上のローエンド機器と、
    を備え、
    前記ローエンド機器の処理回路は、
    自らの異常を検知するための異常情報を、前記エッジサーバに送信し、
    前記エッジサーバの記憶部は、
    バージョンごとの前記ソフトウェアに関する情報と、
    前記ローエンド機器で動作する前記ソフトウェアのバージョンを含むローエンド機器情報と、
    を格納し、
    前記エッジサーバの処理回路は、
    前記ローエンド機器から取得した前記異常情報に基づいて、前記ローエンド機器の異常を検知し、
    検知した前記異常に基づいて、前記記憶部に格納されている前記ローエンド機器の前記ソフトウェアのバージョン情報を取得し、前記記憶部から前記ローエンド機器で動作する前記バージョン情報におけるバージョンよりも古いバージョンのソフトウェアであるロールバックソフトウェアに関する情報を取得し、
    前記ロールバックソフトウェアに関する情報に基づいて、前記ローエンド機器に前記ソフトウェアのロールバックを要求する、
    情報処理システム。
  2. 記憶部と、処理回路を有し、前記エッジサーバと接続される、ソフトウェア管理コンソール、
    をさらに備え、
    前記ローエンド機器のロールバックが要求された場合に、
    前記エッジサーバの処理回路は、ロールバックした前記ローエンド機器に関する情報を含むロールバック機器情報を、前記ソフトウェア管理コンソールに送信し、
    前記ソフトウェア管理コンソールの処理回路は、受信した前記ロールバック機器情報を前記ソフトウェア管理コンソールの記憶部に格納する、
    請求項1に記載の情報処理システム。
  3. 前記エッジサーバの処理回路は、
    前記ローエンド機器の前記ソフトウェアを更新ソフトウェアに更新する要求をした場合に、前記エッジサーバの記憶部に前記更新ソフトウェアのバージョン及び前記更新ソフトウェアのソフトウェア情報と、前記更新ソフトウェアに基づいた前記ローエンド機器情報を格納する、
    請求項2に記載の情報処理システム。
  4. 前記ソフトウェア管理コンソールの記憶部は、
    配布ソフトウェアをバージョンごとに格納し、
    前記ソフトウェア管理コンソールの処理回路は、
    前記エッジサーバに前記配布ソフトウェアを配布し、
    前記ソフトウェア管理コンソールの記憶部から取得した前記ロールバック機器情報に基づいて、前記ローエンド機器に対するロールバックの必要性を判定する、
    請求項3に記載の情報処理システム。
  5. 前記ソフトウェア管理コンソールの処理回路は、さらに、
    ロールバックの必要があると判定した前記ローエンド機器に対して、前記配布ソフトウェアを前記更新ソフトウェアとして前記ソフトウェア管理コンソールの記憶部に格納する、
    請求項4に記載の情報処理システム。
  6. 前記ソフトウェア管理コンソールの処理回路は、さらに、
    ロールバックした前記ローエンド機器の台数が所定値を超えた場合に、ロールバックの必要性を判定する、
    請求項5に記載の情報処理システム。
  7. 前記エッジサーバの処理回路は、
    前記ソフトウェア管理コンソールからの前記ローエンド機器に対するソフトウェア更新要求に対して、前記更新ソフトウェアに対するソフトウェア署名情報を含むソフトウェアを検証するための情報を有するソフトウェア検証情報に基づいて、前記更新ソフトウェアを検証し、
    前記ソフトウェア管理コンソールの記憶部は、
    前記ソフトウェア検証情報を格納し、
    前記ソフトウェア管理コンソールの処理回路は、
    前記ソフトウェア検証情報を前記エッジサーバに送信し、
    ロールバックの必要性があると判断した場合に、前記ロールバックソフトウェアのソフトウェア検証情報を、前記ソフトウェア管理コンソールの記憶部に格納する、
    請求項5又は請求項6に記載の情報処理システム。
  8. 前記エッジサーバの処理回路は、
    前記ソフトウェア管理コンソールからの前記ローエンド機器に対するソフトウェア更新要求に対して、すでにソフトウェア更新要求と同じソフトウェアが前記ローエンド機器において動作している場合に、ソフトウェアの更新をスキップする重複ロールバック判定をする、
    請求項7に記載の情報処理システム。
  9. 前記ソフトウェアに関する情報は、ソフトウェアを配置するメモリ情報を含み、
    前記ローエンド機器の処理回路は、
    前記メモリ情報に基づいて前記ソフトウェアをメモリにマッピングする、
    請求項1から請求項8のいずれかに記載の情報処理システム。
  10. 前記ソフトウェアに関する情報は、ソフトウェア署名情報を含み、
    前記ローエンド機器の処理回路は、
    前記ソフトウェア署名情報に基づいて前記ソフトウェアに関する情報を検証する、
    請求項1から請求項9のいずれかに記載の情報処理システム。
  11. 前記ソフトウェアに関する情報は、ソフトウェアフォーマット情報を含み、
    前記ローエンド機器の処理回路は、
    前記ソフトウェアフォーマット情報に基づいて、前記ソフトウェアに関する情報を前記ローエンド機器で実行可能なソフトウェアに変換する、
    請求項1から請求項10のいずれかに記載の情報処理システム。
  12. 前記ソフトウェアフォーマット情報は、暗号化、エンコード又は圧縮に関する情報である、
    請求項11に記載の情報処理システム。
  13. 前記ローエンド機器の処理回路は、
    異常状態になった場合に、異常発生を前記エッジサーバに通知する、
    請求項1から請求項12のいずれかに記載の情報処理システム。
  14. 前記ローエンド機器の処理回路は、
    異常発生の通知のタイミングで、前記ローエンド機器のメモリから読み出したメモリデータを送信する、
    請求項13に記載の情報処理システム。
  15. 前記異常情報は、 TCP/IP プロトコルのメッセージであり、
    前記エッジサーバの記憶部は、
    TCP/IP のヘッダ情報と、 TCP/IP のペイロード情報と、タイムアウト時間が記述された異常検知設定ファイルを格納し、
    前記エッジサーバの処理回路は、
    前記異常情報の前記ヘッダ情報及び前記ペイロード情報が、前記異常検知設定ファイルと異なる場合、又は、前記異常情報を受信する周期が前記異常検知設定ファイルに記載された周期と異なる場合に、異常を検知する、
    請求項1から請求項14のいずれかに記載の情報処理システム。
  16. 前記エッジサーバの処理回路は、
    異常の発生要因をログとして、前記エッジサーバの記憶部に格納する、
    請求項1から請求項15のいずれかに記載の情報処理システム。
  17. 接続されるローエンド機器において動作する、バージョンごとのソフトウェアの情報と、前記ローエンド機器で動作する前記ソフトウェアのバージョンを含むローエンド機器情報と、を格納する、記憶部と、
    前記記憶部に接続される、処理回路と、
    を備え、
    前記処理回路は、
    前記ローエンド機器から異常情報を取得し、
    前記ローエンド機器から取得した前記異常情報に基づいて、前記ローエンド機器の異常を検知し、
    検知した前記異常に基づいて、前記記憶部に格納されている前記ローエンド機器の前記ソフトウェアのバージョン情報を取得し、前記記憶部から前記ローエンド機器で動作する前記バージョン情報におけるバージョンよりも古いバージョンのソフトウェアであるロールバックソフトウェアに関する情報を取得し、
    前記ロールバックソフトウェアに関する情報に基づいて、前記ローエンド機器に前記ソフトウェアのロールバックを要求する、
    情報処理装置。
  18. 接続されるローエンド機器において動作する、バージョンごとのソフトウェアの情報と、前記ローエンド機器で動作する前記ソフトウェアのバージョンを含むローエンド機器情報と、を格納する、記憶部と、
    前記記憶部に接続される、処理回路と、
    を備え、情報処理装置において、
    前記処理回路に、
    前記ローエンド機器から異常情報を取得し、
    前記ローエンド機器から取得した前記異常情報に基づいて、前記ローエンド機器の異常を検知し、
    検知した前記異常に基づいて、前記記憶部に格納されている前記ローエンド機器の前記ソフトウェアのバージョン情報を取得し、前記記憶部から前記ローエンド機器で動作する前記バージョン情報におけるバージョンよりも古いバージョンのソフトウェアであるロールバックソフトウェアに関する情報を取得し、
    前記ロールバックソフトウェアに関する情報に基づいて、前記ローエンド機器に前記ソフトウェアのロールバックを要求する、
    処理を実行させる、プログラム。
JP2021203627A 2021-12-15 2021-12-15 情報処理装置、情報処理システム及びプログラム Pending JP2023088716A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021203627A JP2023088716A (ja) 2021-12-15 2021-12-15 情報処理装置、情報処理システム及びプログラム
US17/823,879 US20230185560A1 (en) 2021-12-15 2022-08-31 Information processing device, information processing system and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021203627A JP2023088716A (ja) 2021-12-15 2021-12-15 情報処理装置、情報処理システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2023088716A true JP2023088716A (ja) 2023-06-27

Family

ID=86695597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021203627A Pending JP2023088716A (ja) 2021-12-15 2021-12-15 情報処理装置、情報処理システム及びプログラム

Country Status (2)

Country Link
US (1) US20230185560A1 (ja)
JP (1) JP2023088716A (ja)

Also Published As

Publication number Publication date
US20230185560A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
US20190057214A1 (en) Update control device, terminal, and method of controlling
US11258792B2 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
CN108701039B (zh) 用于无线更新车辆的软件的方法和设备
CN110427785B (zh) 设备指纹的获取方法和装置、存储介质及电子装置
US20150113520A1 (en) Method for confirming correction program and information processing apparatus
JP6385842B2 (ja) 情報処理端末、情報処理方法、及び情報処理システム
US20050188196A1 (en) Method of nullifying digital certificate, apparatus for nullifying digital certificate, and system, program, and recoring medium for nullifying digital certificate
US20220083326A1 (en) Upgrading method and system, server, and terminal device
KR20170037612A (ko) 단말 식별자들을 용이하게 하는 방법 및 시스템
KR102177411B1 (ko) 물리적 단방향 암호화 원격 모니터링을 통해 산업 제어 시스템을 관리하는 방법
JP2011108167A (ja) コンピューターシステム
EP3537740B1 (en) Hash based device configuration management
WO2017113789A1 (zh) 电子设备的远程修复方法、设备、被修复设备和系统
CN111897846A (zh) 缓存数据校验方法、装置、设备及存储介质
CN115001766A (zh) 一种高效的多节点批量远程证明方法
CN117391099B (zh) 智能卡的数据下载及校验方法及其系统、存储介质
CN112131041A (zh) 用于管理数据放置的方法、设备和计算机程序产品
US10621334B2 (en) Electronic device and system
JP5219615B2 (ja) 通信装置及び路側機及び車載器及び通信方法及び通信プログラム
KR101320680B1 (ko) 소프트웨어의 무결성 검사 장치 및 방법
CN111865924A (zh) 一种监控用户端方法及系统
JP2023088716A (ja) 情報処理装置、情報処理システム及びプログラム
JP2011100411A (ja) 認証代行サーバ装置、認証代行方法及びプログラム
US20210103439A1 (en) Methods, wireless modules, electronic devices and server devices
CN111628987B (zh) 鉴权方法、装置、系统、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240227