(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024073194
(43)【公開日】2024-05-29
(54)【発明の名称】更新補助デバイス、更新補助方法、および、更新補助プログラム、ならびに、フィールド機器
(51)【国際特許分類】
G05B 19/042 20060101AFI20240522BHJP
G06F 8/654 20180101ALI20240522BHJP
【FI】
G05B19/042
G06F8/654
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022184283
(22)【出願日】2022-11-17
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】鎌塚 昂
(72)【発明者】
【氏名】田中 秀和
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376AB06
5B376CA05
5B376CA43
5B376CA53
5B376CA60
5B376CA76
5B376CA88
5B376GA13
5H220AA01
5H220BB12
5H220CC06
5H220CX02
5H220JJ12
5H220JJ16
5H220JJ24
(57)【要約】 (修正有)
【課題】更新補助デバイスを提供する。
【解決手段】対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する更新用ソフトウェア記憶部と、各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割する分割部と、前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給する供給部と、を備える、更新補助デバイスを提供する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する更新用ソフトウェア記憶部と、
各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割する分割部と、
前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給する供給部と、
を備える、更新補助デバイス。
【請求項2】
前記複数のブロックのうちの更新対象ブロックを用いた前記対象ソフトウェアの部分的な更新が完了したか否かを判定する判定部を更に備え、
前記供給部は、前記更新対象ブロックを用いた前記対象ソフトウェアの部分的な更新が完了したと判定された場合に、前記複数のブロックのうちの次の更新対象ブロックを前記作業用メモリに供給する、請求項1に記載の更新補助デバイス。
【請求項3】
前記作業用メモリの空き容量を示す容量情報を取得する容量情報取得部を更に備え、
前記分割部は、前記容量情報に基づいて前記更新用ソフトウェアを前記複数のブロックに分割する、請求項1に記載の更新補助デバイス。
【請求項4】
前記対象デバイスは、前記対象ソフトウェアを記憶する不揮発性メモリと、前記作業用メモリと、前記対象ソフトウェアの更新処理を実行するCPUと、を備えるものであり、
前記対象デバイスの前記CPUに対して、前記対象ソフトウェアを部分的に更新することを指示する指示部を更に備える、請求項1に記載の更新補助デバイス。
【請求項5】
前記指示部は、前記対象デバイスの前記CPUに対して、更新対象ブロックを前記作業用メモリに書き込むことを指示する、請求項4に記載の更新補助デバイス。
【請求項6】
前記指示部は、前記対象デバイスの前記CPUに対して、前記作業用メモリに供給された更新対象ブロックを用いて前記対象ソフトウェアを更新することを指示する、請求項4に記載の更新補助デバイス。
【請求項7】
前記更新用ソフトウェアは、互いに異なる複数の作業用メモリを作業領域としてそれぞれ更新される複数の対象ソフトウェアを更新するためのものであり、
前記分割部は、各ブロックが前記複数の作業用メモリのうちの対応する作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを前記複数のブロックに分割し、
前記供給部は、前記更新用ソフトウェアをブロック単位で前記対応する作業用メモリにそれぞれ供給する、請求項1に記載の更新補助デバイス。
【請求項8】
更新前の前記対象ソフトウェアを示す更新前ソフトウェアを前記対象デバイスから取得する更新前ソフトウェア取得部と、
前記更新前ソフトウェアを記憶する更新前ソフトウェア記憶部と、
前記更新用ソフトウェアを用いた前記対象ソフトウェアの更新が成功しなかった場合に、前記更新前ソフトウェアを前記対象デバイスに返送する返送部と、
を更に備える、請求項1に記載の更新補助デバイス。
【請求項9】
コンピュータネットワークを介して前記更新用ソフトウェアを取得する更新用ソフトウェア取得部を更に備える、請求項1から8のいずれか一項に記載の更新補助デバイス。
【請求項10】
前記更新用ソフトウェア記憶部の機能が、着脱可能なストレージデバイスにより提供される、請求項1から8のいずれか一項に記載の更新補助デバイス。
【請求項11】
前記供給部は、コンピュータネットワークを介して前記更新用ソフトウェアを前記作業用メモリに供給する、請求項1から8のいずれか一項に記載の更新補助デバイス。
【請求項12】
請求項1から8のいずれか一項に記載の更新補助デバイスを備える、フィールド機器。
【請求項13】
前記対象デバイスと、
前記対象デバイスおよび前記更新補助デバイスが取り付けられ、前記対象デバイスと前記更新補助デバイスとの間の通信を中継する中継デバイスと、
を更に備える、請求項12に記載のフィールド機器。
【請求項14】
コンピュータが、
対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶することと、
各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割することと、
前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給することと、
を備える、更新補助方法。
【請求項15】
コンピュータにより実行され、前記コンピュータを、
対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する更新用ソフトウェア記憶部と、
各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割する分割部と、
前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給する供給部と、
して機能させる、更新補助プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、更新補助デバイス、更新補助方法、および、更新補助プログラム、ならびに、フィールド機器に関する。
【背景技術】
【0002】
特許文献1には、「最小単位レビジョン・ナンバーを設定する」と記載されている。特許文献2には、「フィールド機器の全てがメモリ更新の準備中でないときに…更新データの転送を開始する」と記載されている。特許文献3には、「全てのフィールド機器がメモリ更新の準備中でないことを検出したときに…更新データを転送する」と記載されている。特許文献4には、「プログラムの配置変更をCPUがアクセスしていない分割領域毎に実施」すると記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特開2004-295299
[特許文献2] 特開2005-135223
[特許文献3] 特開2005-173747
[特許文献4] 特開2005-182106
【発明の概要】
【0003】
本発明の第1の態様においては、更新補助デバイスを提供する。前記更新補助デバイスは、対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する更新用ソフトウェア記憶部と、各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割する分割部と、前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給する供給部と、を備える。
【0004】
前記更新補助デバイスは、前記複数のブロックのうちの更新対象ブロックを用いた前記対象ソフトウェアの部分的な更新が完了したか否かを判定する判定部を更に備え、前記供給部は、前記更新対象ブロックを用いた前記対象ソフトウェアの部分的な更新が完了したと判定された場合に、前記複数のブロックのうちの次の更新対象ブロックを前記作業用メモリに供給してもよい。
【0005】
前記更新補助デバイスのいずれかは、前記作業用メモリの空き容量を示す容量情報を取得する容量情報取得部を更に備え、前記分割部は、前記容量情報に基づいて前記更新用ソフトウェアを前記複数のブロックに分割してもよい。
【0006】
前記対象デバイスは、前記対象ソフトウェアを記憶する不揮発性メモリと、前記作業用メモリと、前記対象ソフトウェアの更新処理を実行するCPUと、を備えるものであり、前記更新補助デバイスのいずれかは、前記対象デバイスの前記CPUに対して、前記対象ソフトウェアを部分的に更新することを指示する指示部を更に備えてもよい。
【0007】
前記更新補助デバイスのいずれかにおいて、前記指示部は、前記対象デバイスの前記CPUに対して、更新対象ブロックを前記作業用メモリに書き込むことを指示してもよい。
【0008】
前記更新補助デバイスのいずれかにおいて、前記指示部は、前記対象デバイスの前記CPUに対して、前記作業用メモリに供給された更新対象ブロックを用いて前記対象ソフトウェアを更新することを指示してもよい。
【0009】
前記更新用ソフトウェアは、互いに異なる複数の作業用メモリを作業領域としてそれぞれ更新される複数の対象ソフトウェアを更新するためのものであり、前記更新補助デバイスのいずれかにおいて、前記分割部は、各ブロックが前記複数の作業用メモリのうちの対応する作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを前記複数のブロックに分割し、前記供給部は、前記更新用ソフトウェアをブロック単位で前記対応する作業用メモリにそれぞれ供給してもよい。
【0010】
前記更新補助デバイスのいずれかは、更新前の前記対象ソフトウェアを示す更新前ソフトウェアを前記対象デバイスから取得する更新前ソフトウェア取得部と、前記更新前ソフトウェアを記憶する更新前ソフトウェア記憶部と、前記更新用ソフトウェアを用いた前記対象ソフトウェアの更新が成功しなかった場合に、前記更新前ソフトウェアを前記対象デバイスに返送する返送部と、を更に備えてもよい。
【0011】
前記更新補助デバイスのいずれかは、コンピュータネットワークを介して前記更新用ソフトウェアを取得する更新用ソフトウェア取得部を更に備えてもよい。
【0012】
前記更新補助デバイスのいずれかにおいて、前記更新用ソフトウェア記憶部の機能が、着脱可能なストレージデバイスにより提供されてもよい。
【0013】
前記更新補助デバイスのいずれかにおいて、前記供給部は、コンピュータネットワークを介して前記更新用ソフトウェアを前記作業用メモリに供給してもよい。
【0014】
本発明の第2の態様においては、フィールド機器を提供する。前記フィールド機器は、前記更新補助デバイスのいずれかを備える。
【0015】
前記フィールド機器は、前記対象デバイスと、前記対象デバイスおよび前記更新補助デバイスが取り付けられ、前記対象デバイスと前記更新補助デバイスとの間の通信を中継する中継デバイスと、を更に備えてもよい。
【0016】
本発明の第3の態様においては、更新補助方法を提供する。前記更新補助方法は、コンピュータが、対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶することと、各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割することと、前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給することと、を備える。
【0017】
本発明の第4の態様においては、更新補助プログラムを提供する。前記更新補助プログラムは、コンピュータにより実行され、前記コンピュータを、対象デバイスで実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する更新用ソフトウェア記憶部と、各ブロックが前記対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、前記更新用ソフトウェアを複数のブロックに分割する分割部と、前記更新用ソフトウェアをブロック単位で前記作業用メモリに供給する供給部と、して機能させる。
【0018】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0019】
【
図1】本実施形態に係る更新補助デバイス200が用いられてよい機器10の構成図の一例を示す。
【
図2】本実施形態に係る更新補助デバイス200のブロック図の一例を示す。
【
図3】本実施形態に係る更新補助デバイス200が実行してよい更新補助方法のフロー図の一例を示す。
【
図4】本実施形態に係る更新補助デバイス200が用いられてよい機器10の構成図の変形例を示す。
【
図5】変形例に係る更新用ソフトウェアの一例を示す。
【
図6】別の実施形態に係る更新補助デバイス200のブロック図の一例を示す。
【
図7】本実施形態に係る更新補助デバイス200の構成図の他の例を示す。
【
図8】本実施形態に係る更新補助デバイス200が用いられてよい更新補助システムの一例を示す。
【
図9】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。
【発明を実施するための形態】
【0020】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0021】
図1は、本実施形態に係る更新補助デバイス200が用いられてよい機器10の構成図の一例を示す。機器10は、様々な設備で用いられる様々な機器である。このような設備は、一例として、プラントであってよい。プラントとしては、化学やバイオ等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。機器10は、このようなプラントに設置される温度計、差圧・圧力計、流量計、および、バルブ・ポジショナ等のフィールド機器であってよい。これより先、機器10がフィールド機器である場合を一例として説明するが、これに限定されるものではない。
【0022】
機器10においては、センサからの信号を出力信号に変換するための演算部分のプログラムや、ネットワーク情報を構成するコンフィギュレーション情報等が、EPROM(Erasable Programmable Read Only Memory)、Flash ROM、または、EEPROM(Electrically EPROM)等の不揮発性メモリに記憶されている。
【0023】
近年、プロセスの改善等を目的とした機能分散を進める上で、機器10にも自己診断機能の拡張等の付加機能が求められるようになってきている。また、機能が豊富になったことに起因して、バグが発生する可能性も高くなってきている。そのため、機器10の内部に記憶されているプログラムやコンフィギュレーション情報等のソフトウェアを更新する機会が増してきている。このような傾向は、フィールド機器以外の様々な機器においても同様にみられる。
【0024】
そこで、このような機器10をPROFINET(Process Field Net)やイーサネット(登録商標)等の通信規格に対応させ、フィールドバスの通信機能を用いて、機器10の内部に記憶されているソフトウェアを更新することが想定されている。
【0025】
従来は、このような場合に、更新用ソフトウェアを不揮発性メモリにダウンロードし、CPUが作業用メモリを作業領域として用いて、機器10の内部に記憶されているソフトウェアを更新していた。
【0026】
しかしながら、不揮発性メモリの空き容量が足りない場合には、機器10は、更新用ソフトウェアをダウンロードすることができない。また、更新用ソフトウェアがダウンロードできたとしても作業用メモリの空き容量が足りない場合には、CPUは、ソフトウェアの更新処理を実行することができない。このような問題は、フィールド機器のように、比較的小さな容量のメモリが搭載される機器において、発生する可能性が高い。
【0027】
そこで、このような問題に鑑み、本実施形態に係る更新補助デバイス200は、更新用ソフトウェアを複数のブロックに分割し、更新用ソフトウェアをブロック単位で作業用メモリに供給することで、機器10の内部に記憶されているソフトウェアの更新を補助する。
【0028】
機器10は、中継デバイス50と、対象デバイス100と、更新補助デバイス200と、を備える。なお、本図においては、機器10が、中継デバイス50、対象デバイス100、および、更新補助デバイス200のみを備える場合を一例として示しているが、機器10は、図示せぬ他のデバイスを備えていてもよい。
【0029】
中継デバイス50は、対象デバイス100および更新補助デバイス200が取り付けられ、対象デバイス100と更新補助デバイス200との間の通信を中継する。この際、対象デバイス100および更新補助デバイス200は、中継デバイス50に着脱可能に取り付けられてもよい。また、中継デバイス50は、PROFINETやイーサネット等の通信規格に対応しており、機器10とコンピュータネットワークとを接続可能に構成されてよい。一例として、中継デバイス50は、ベースボードであってよく、複数のボードを着脱可能な複数のスロットと、イーサネットケーブルを差し込み可能なLANポートを有してよい。なお、機器10が無線を介してコンピュータネットワークと接続可能な場合には、機器10は、LANポートを有していなくてもよい。
【0030】
対象デバイス100は、更新対象となる対象ソフトウェアが実行されるデバイスである。一例として、対象デバイス100は、ベースボードである中継デバイス50の第1のスロットに着脱可能に取り付けられた第1のボードであってよい。対象デバイス100は、第1の不揮発性メモリ102と、第1の作業用メモリ104と、第1のCPU106と、を備える。
【0031】
第1の不揮発性メモリ102は、電源を供給しなくても記憶を保持することができるメモリである。一例として、第1の不揮発性メモリ102は、EPROM、Flash ROM、または、EEPROM等、情報の読み取りのみが可能なROMであってよい。第1の不揮発性メモリ102は、少なくとも、更新対象となる対象ソフトウェア(例えば、センサからの信号を出力信号に変換するための演算部分のプログラムや、ネットワーク情報を構成するコンフィギュレーション情報)を記憶してよい。
【0032】
第1の作業用メモリ104は、第1のCPU106が何らかの処理を実行するにあたって作業領域として用いられるメモリである。一例として、第1の作業用メモリ104は、情報の読み書きが可能なRAM(Random Access Memory)であってよい。第1の作業用メモリ104は、少なくとも、第1のCPU106が対象ソフトウェアを更新する作業領域として用いられてよい。
【0033】
第1のCPU106は、他の素子や回路の制御やデータの演算等を行う演算処理装置である。第1のCPU106は、第1の作業用メモリ104を作業領域として、種々の処理を実行する。第1のCPU106は、少なくとも、第1の作業用メモリ104を作業領域として、第1の不揮発性メモリ102に記憶されている対象ソフトウェアの更新処理を実行してよい。
【0034】
このように、対象デバイス100は、対象ソフトウェアを記憶する不揮発性メモリ(第1の不揮発性メモリ102)と、対象ソフトウェアを更新する作業領域として用いられる作業用メモリ(第1の作業用メモリ104)と、対象ソフトウェアの更新処理を実行するCPU(第1のCPU106)と、を備えるものであってよい。
【0035】
更新補助デバイス200は、対象デバイス100における対象ソフトウェアの更新を補助する。一例として、更新補助デバイス200は、ベースボードである中継デバイス50の第2のスロットに着脱可能に取り付けられた第2のボードであってよい。更新補助デバイス200は、第2の不揮発性メモリ202と、第2の作業用メモリ204と、第2のCPU206と、を備える。
【0036】
第2の不揮発性メモリ202、第2の作業用メモリ204、および、第2のCPU206は、第1の不揮発性メモリ102、第1の作業用メモリ104、および、第1のCPU106と同様の素子であってよいので、相違点を除きここでは説明を省略するが、上述の問題に鑑み、第2の不揮発性メモリ202の容量は、第1の不揮発性メモリ102の容量よりも大きいことが好ましい。
【0037】
このように、本実施形態に係る更新補助デバイス200を備える機器10、特に、フィールド機器が提供されてよい。また、フィールド機器は、対象デバイス100と、対象デバイス100および更新補助デバイス200が取り付けられ、対象デバイス100と更新補助デバイス200との間の通信を中継する中継デバイス50と、を更に備えてよい。これより、このような機器10において対象ソフトウェアの更新を補助する更新補助デバイス200の機能を詳細に説明する。
【0038】
図2は、本実施形態に係る更新補助デバイス200のブロック図の一例を示す。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、その機能が必ずしも1つの素子により提供されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらの機能が必ずしも別々の素子により提供されていなくてもよい。これより先のブロック図についても同様である。
【0039】
更新補助デバイス200は、更新用ソフトウェア取得部210と、更新用ソフトウェア記憶部220と、容量情報取得部230と、分割部240と、指示部250と、供給部260と、判定部270と、を備えてよい。
【0040】
更新用ソフトウェア取得部210は、コンピュータネットワークを介して更新用ソフトウェアを取得する。更新用ソフトウェア取得部210は、取得した更新用ソフトウェアを、更新用ソフトウェア記憶部220に供給する。このような更新用ソフトウェア取得部210の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0041】
更新用ソフトウェア記憶部220は、対象デバイス100で実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶する。このような更新用ソフトウェア記憶部220の機能は、例えば、第2の不揮発性メモリ202により提供されてよい。
【0042】
容量情報取得部230は、対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量を示す容量情報を取得する。容量情報取得部230は、取得した容量情報を分割部240に供給する。このような容量情報取得部230の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0043】
分割部240は、各ブロックが対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、更新用ソフトウェアを複数のブロックに分割する。この際、分割部240は、容量情報に基づいて更新用ソフトウェアを複数のブロックに分割してよい。分割部240は、更新用ソフトウェアを複数のブロックに分割した場合、その旨を指示部250に通知する。このような分割部240の機能は、例えば、第2のCPU206により提供されてよい。
【0044】
指示部250は、対象デバイス100のCPUに対して、対象ソフトウェアを部分的に更新することを指示する。このような指示部250の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0045】
供給部260は、更新用ソフトウェアをブロック単位で作業用メモリに供給する。このような供給部260の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0046】
判定部270は、複数のブロックのうちの更新対象ブロックを用いた対象ソフトウェアの部分的な更新が完了したか否かを判定する。このような判定部270の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。そして、供給部260は、更新対象ブロックを用いた対象ソフトウェアの部分的な更新が完了したと判定された場合に、複数のブロックのうちの次の更新対象ブロックを作業用メモリに供給する。
【0047】
このような機能部を備える更新補助デバイス200が、対象デバイス100における対象ソフトウェアの更新を補助する方法を、フロー図を用いて詳細に説明する。
【0048】
図3は、本実施形態に係る更新補助デバイス200が実行してよい更新補助方法のフロー図の一例を示す。
【0049】
ステップS310において、更新補助デバイス200は、更新用ソフトウェアを取得する。例えば、更新用ソフトウェア取得部210は、コンピュータネットワークを介して更新用ソフトウェアを取得してよい。より詳細には、更新用ソフトウェア取得部210は、中継デバイス50を介してコンピュータネットワークにアクセスし、対象デバイス100で実行される対象ソフトウェアを更新するための更新用ソフトウェアをダウンロードしてよい。更新用ソフトウェア取得部210は、取得した更新用ソフトウェアを、更新用ソフトウェア記憶部220に供給する。
【0050】
ステップS320において、更新補助デバイス200は、更新用ソフトウェアを記憶する。例えば、更新用ソフトウェア記憶部220は、ステップS310において取得された対象デバイス100で実行される対象ソフトウェアを更新するための更新用ソフトウェアを記憶してよい。
【0051】
なお、上述の説明では、更新用ソフトウェア取得部210がコンピュータネットワークを介して更新用ソフトウェアを取得し、これを更新用ソフトウェア記憶部220が記憶する場合を一例として示したが、これに限定されるものではない。更新用ソフトウェア記憶部220に更新用ソフトウェアが既に記憶されている場合には、更新補助デバイス200は、ステップS310の処理を実行しなくてもよい。すなわち、更新補助デバイス200は、更新用ソフトウェア取得部210を備えていなくてもよい。
【0052】
ステップS330において、更新補助デバイス200は、容量情報を取得する。例えば、容量情報取得部230は、対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量を示す容量情報を取得してよい。より詳細には、容量情報取得部230は、中継デバイス50を介して第1のCPU106と通信し、第1の作業用メモリ104の空き容量を示す容量情報を取得してよい。容量情報取得部230は、取得した容量情報を分割部240に供給する。
【0053】
なお、上述の説明では、容量情報取得部230が第1のCPU106と通信して容量情報を取得する場合を一例として示したが、これに限定されるものではない。第1の作業用メモリ104の空き容量が既知である場合、または、既知な情報から推測可能な場合には、更新補助デバイス200は、ステップS330の処理を実行しなくてもよい。すなわち、更新補助デバイス200は、容量情報取得部230を備えていなくてもよい。
【0054】
ステップS340において、更新補助デバイス200は、更新用ソフトウェアを分割する。例えば、分割部240は、各ブロックが対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、更新用ソフトウェアを複数のブロックに分割してよい。より詳細には、分割部240は、各ブロックが第1の作業用メモリ104の空き容量以下となるように、ステップS320において記憶された更新用ソフトウェアを複数のブロックに分割してよい。
【0055】
この際、分割部240は、ステップS330において取得された容量情報に基づいて更新用ソフトウェアを複数のブロックに分割してもよい。一例として、ステップS320において記憶された更新用ソフトウェアのサイズが600MBであったとする。また、ステップS330において取得された容量情報が、第1の作業用メモリ104の空き容量が256MBであることを示していたとする。この場合、分割部240は、各ブロックが256MB以下となるように、更新用ソフトウェアをブロック1(200MB)、ブロック2(200MB)、および、ブロック3(200MB)の3つのブロックに分割してよい。
【0056】
なお、上述の説明では、分割部240が、各ブロックのサイズが均等になるように更新用ソフトウェアを複数のブロックに分割する場合を一例として示したが、これに限定されるものではない。分割部240は、例えば、ブロック1(256MB)、ブロック2(256MB)、および、ブロック3(88MB)の3つのブロックに分割する等、少なくとも1つのブロックが第1の作業用メモリ104の空き容量以下となる最大のサイズとなるように、更新用ソフトウェアを複数のブロックに分割してもよい。
【0057】
ステップS345において、更新補助デバイス200は、ブロックのインデックスiの最大値をセットして、インデックスiを初期化する。例えば、分割部240は、インデックスiの最大値を、ステップS340において更新用ソフトウェアが分割されたブロックの個数nにセットして、インデックスi=1にセットしてよい。一例として、更新用ソフトウェアが3つのブロックに分割された場合、分割部240は、インデックスiの最大値を3にセットして、インデックスi=1にセットしてよい。分割部240は、更新用ソフトウェアを複数のブロックに分割した旨を指示部250に通知する。この際、分割部240は、更新用ソフトウェアが分割されたブロックの個数nを指示部250に通知してもよい。
【0058】
ステップS350において、更新補助デバイス200は、部分的な更新を指示する。例えば、指示部250は、対象デバイス100のCPUに対して、対象ソフトウェアを部分的に更新することを指示してよい。この際、指示部250は、対象デバイス100のCPUに対して、更新対象ブロックを作業用メモリに書き込むことを指示してよい。また、指示部250は、対象デバイス100のCPUに対して、作業用メモリに供給された更新対象ブロックを用いて対象ソフトウェアを更新することを指示してよい。より詳細には、指示部250は、中継デバイス50を介して第1のCPU106と通信してよい。そして、指示部250は、第1のCPU106に対して、対象ソフトウェアを部分的に更新することを指示してよい。この際、指示部250は、第1のCPU106に対して、更新用ソフトウェアが分割されたブロックの個数nを通知してもよい。これにより、更新補助デバイス200は、対象デバイス100に対して、更新用ソフトウェアが何個のブロックに分かれて供給されるのかを事前に知らしめることができる。また、指示部250は、第1のCPU106に対して、更新用ソフトウェアが分割された更新対象ブロックを第1の作業用メモリ104に書き込むことを指示してよい。また、指示部250は、第1のCPU106に対して、第1の作業用メモリ104に供給された更新対象ブロックを用いて対象ソフトウェアを更新することを指示してよい。
【0059】
ステップS360において、更新補助デバイス200は、インデックスiが最大値より大きいか否かを判定する。例えば、更新補助デバイス200は、インデックスiがステップS345においてインデックスiの最大値としてセットされたブロックの個数nより大きいか否か判定してよい。インデックスiがブロックの個数nより大きくない(No)と判定した場合、更新補助デバイス200は、処理をステップS365へ進める。一例として、インデックスi=1、かつ、ブロックの個数n=3の場合、i≦nであるので、更新補助デバイス200は、処理をステップS365へ進めてよい。
【0060】
ステップS365において、更新補助デバイス200は、更新対象ブロックiを供給する。例えば、供給部260は、更新対象ブロックiを、対象ソフトウェアを更新する作業領域として用いられる作業用メモリに供給してよい。より詳細には、i=1の場合、供給部260は、ブロック1を、中継デバイス50を介して第1の作業用メモリ104に供給してよい。このようにして、供給部260は、更新用ソフトウェアをブロック単位で作業用メモリに供給してよい。これに応じて、第1のCPU106は、供給部260から供給されたブロック1を第1の作業用メモリ104に書き込んでよい。次に、第1のCPU106は、第1の作業用メモリ104に供給されたブロック1を用いて第1の不揮発性メモリ102に記憶された対象ソフトウェアの更新処理を実行してよい。そして、第1のCPU106は、ブロック1を用いた対象ソフトウェアの更新処理が完了した場合に、その旨を、中継デバイス50を介して第2のCPU206に通知してよい。
【0061】
ステップS370において、更新補助デバイス200は、更新が完了したか否かを判定する。例えば、判定部270は、複数のブロックのうちの更新対象ブロックiを用いた対象ソフトウェアの部分的な更新が完了したか否かを判定してよい。より詳細には、i=1の場合、判定部270は、対象ソフトウェアの更新処理が完了した旨を、中継デバイス50を介して第1のCPU106から通知されたか否かを判定してよい。更新処理が完了した旨が通知されていない場合に、判定部270は、ブロック1を用いた対象ソフトウェアの部分的な更新が完了していない(No)と判定してよい。この場合、判定部270は、部分的な更新が完了したか否かの判定処理を繰り返してよい。更新処理が完了した旨が通知された場合に、判定部270は、ブロック1を用いた対象ソフトウェアの部分的な更新が完了した(Yes)と判定してよい。この場合、更新補助デバイス200は、処理をステップS375へ進める。
【0062】
ステップS375において、更新補助デバイス200は、インデックスiをインクリメントする。例えば、更新補助デバイス200は、インデックスi=i+1にセットしてよい。より詳細には、i=1の場合、更新補助デバイス200は、i=2にセットしてよい。そして、更新補助デバイス200は、処理をステップS360へ戻してフローを継続する。
【0063】
ステップS360において、インデックスi=2、かつ、ブロックの個数n=3の場合、i≦nであるので、更新補助デバイス200は、処理をステップS365へ進めてよい。ステップS365において、i=2の場合、供給部260は、ブロック2を、中継デバイス50を介して第1の作業用メモリ104に供給してよい。そして、ステップS370において、判定部270がブロック2を用いた対象ソフトウェアの部分的な更新が完了したと判定した場合に、ステップS375において、更新補助デバイス200は、i=3にセットしてよい。そして、更新補助デバイス200は、処理をステップS360へ戻してフローを継続する。
【0064】
ステップS360において、インデックスi=3、かつ、ブロックの個数n=3の場合、i≦nであるので、更新補助デバイス200は、処理をステップS365へ進めてよい。ステップS365において、i=3の場合、供給部260は、ブロック3を、中継デバイス50を介して第1の作業用メモリ104に供給してよい。そして、ステップS370において、判定部270がブロック3を用いた対象ソフトウェアの部分的な更新が完了したと判定した場合に、ステップS375において、更新補助デバイス200は、i=4にセットしてよい。そして、更新補助デバイス200は、処理をステップS360へ戻してフローを継続する。
【0065】
このようにして、供給部260は、更新対象ブロックを用いた対象ソフトウェアの部分的な更新が完了したと判定された場合に、複数のブロックのうちの次の更新対象ブロックを作業用メモリに供給してよい。
【0066】
なお、上述の説明では、ステップS370において判定部270が第1のCPU106から更新処理が完了した旨が通知されたと判定したことに応じて、供給部260が次の更新対象ブロックを第1の作業用メモリ104に供給する場合を一例として示したが、これに限定されるものではない。更新対象ブロックのサイズに応じて更新処理時間が既知である場合、または、既知な情報から推測可能な場合には、更新補助デバイス200は、ステップS370の処理を実行しなくてもよい。この場合、供給部260は、既知の、または、推測した更新処理時間が満了したことに応じて、次の更新対象ブロックを第1の作業用メモリ104に供給してもよい。すなわち、更新補助デバイス200は、判定部270を備えていなくてもよい。
【0067】
ステップS360において、インデックスi=4、かつ、ブロックの個数n=3の場合、i>nであるので、更新補助デバイス200は、インデックスiがブロックの個数nより大きい(Yes)と判定してよい。この場合、更新補助デバイス200は、処理をステップS380へ進める。
【0068】
ステップS380において、更新補助デバイス200は、更新用ソフトウェアを削除する。例えば、更新用ソフトウェア記憶部220は、ステップS320において記憶した更新用ソフトウェアを削除してよい。そして、更新補助デバイス200は、本フローを終了する。なお、例えば、更新補助デバイス200が中継デバイス50から着脱可能であって、更新用ソフトウェアを機器10とは異なる他の機器の内部に記憶されているソフトウェアの更新にも流用可能な場合には、更新補助デバイス200は、ステップS380の処理を実行せずに、本フローを終了してもよい。
【0069】
このように、本実施形態に係る更新補助デバイス200は、各ブロックが対象ソフトウェアを更新する作業領域として用いられる作業用メモリの空き容量以下となるように、更新用ソフトウェアを複数のブロックに分割し、更新用ソフトウェアをブロック単位で作業用メモリに供給する。これにより、本実施形態に係る更新補助デバイス200によれば、対象デバイス100における第1の不揮発性メモリ102や第1の作業用メモリ104の空き容量が足りない場合であっても、対象ソフトウェアの部分的な更新が実現可能となるように、更新を補助することができる。
【0070】
また、本実施形態に係る更新補助デバイス200は、更新対象ブロックを用いた対象ソフトウェアの部分的な更新が完了したか否かを判定し、更新が完了したと判定された場合に次の更新対象ブロックを作業用メモリに供給する。これにより、本実施形態に係る更新補助デバイス200によれば、対象ソフトウェアの更新が完了する前に次の更新対象ブロックを作業用メモリに供給してしまうことを防ぐことができる。
【0071】
また、本実施形態に係る更新補助デバイス200は、作業用メモリの空き容量を示す容量情報を取得し、当該容量情報に基づいて更新用ソフトウェアを複数のブロックに分割する。これにより、本実施形態に係る更新補助デバイス200によれば、作業用メモリの実際の空き容量に基づいて更新用ソフトウェアを複数のブロックに分割するので、各ブロックが作業用メモリの空き容量よりも大きくなってしまうことを確実に防ぐことができる。
【0072】
また、本実施形態に係る更新補助デバイス200は、対象デバイス100のCPUに対して、対象ソフトウェアを部分的に更新することを指示する。これにより、本実施形態に係る更新補助デバイス200によれば、対象デバイス100における第1のCPU106に対して、対象ソフトウェアを一括して更新することに代えて、対象ソフトウェアを部分的に更新することを知らしめることができる。これにより、本実施形態に係る更新補助デバイス200によれば、対象デバイス100における第1のCPU106に対して、更新対象ブロックを第1の作業用メモリ104に書き込むことや、第1の作業用メモリ104に供給された更新対象ブロックを用いて対象ソフトウェアを更新することを指示することができ、更新補助デバイス200が意図した処理を対象デバイス100に実行させることができる。
【0073】
また、本実施形態に係る更新補助デバイス200は、コンピュータネットワークを介して更新用ソフトウェアを取得する。これにより、本実施形態に係る更新補助デバイス200によれば、コンピュータネットワークにアクセス可能な様々な環境において、更新用ソフトウェアを取得することができる。
【0074】
また、本実施形態に係る更新補助デバイス200を備えるフィールド機器が提供される。このようなフィールド機器は、内部に記憶されているソフトウェアを更新する機会が比較的多く、かつ、搭載されるメモリの容量が比較的小さい場合が多い。したがって、本実施形態に係る更新補助デバイス200をこのような親和性の高いフィールド機器に適用することで、より顕著な効果を奏することができる。
【0075】
また、フィールド機器は、対象デバイス100と、対象デバイス100および更新補助デバイス200が取り付けられ、対象デバイス100と更新補助デバイス200との間の通信を中継する中継デバイス50と、を更に備える。これにより、既存のフィールド機器においても、中継デバイス50に更新補助デバイス200を取り付けるだけで、対象ソフトウェアの部分的な更新が実現可能となるように機能を拡張することができる。すなわち、更新補助デバイス200をモジュールとして開発し、後から機器10に接続できる仕組みとすることもできる。
【0076】
図4は、本実施形態に係る更新補助デバイス200が用いられてよい機器10の構成図の変形例を示す。本図においては、
図1と同じ構成を有する部材に対して同じ符号を付すとともに、以下相違点を除き説明を省略する。上述の説明では、更新対象となる対象ソフトウェアが実行されるデバイスが対象デバイス100の1つのみである場合を一例として示したが、本図においては、更新対象となる対象ソフトウェアが実行されるデバイスが複数ある場合を説明する。
【0077】
本図においては、説明の便宜上、対象デバイス100を、第1の対象デバイス100と呼称する。また、更新補助デバイス200を、第2の対象デバイス200とも別称する。すなわち、更新補助デバイス200は、他の対象デバイスにおける更新を補助するデバイスとして機能するとともに、自らが対象デバイスとしても機能する。本図において、機器10は、中継デバイス50、第1の対象デバイス100、および、更新補助デバイス200(第2の対象デバイス200)に加えて、第3の対象デバイス300を更に備える。
【0078】
第3の対象デバイス300は、第1の対象デバイス100と同様、更新対象となる対象ソフトウェアが実行されるデバイスである。一例として、第3の対象デバイス300は、ベースボードである中継デバイス50の第3のスロットに着脱可能に取り付けられた第3のボードであってよい。第3の対象デバイス300は、第3の不揮発性メモリ302と、第3の作業用メモリ304と、第3のCPU306と、を備える。
【0079】
第3の不揮発性メモリ302、第3の作業用メモリ304、および、第3のCPU306は、第1の不揮発性メモリ102、第1の作業用メモリ104、および、第1のCPU106と同様の素子であってよいので、相違点を除きここでは説明を省略する。
【0080】
本図においては、第1の対象デバイス100、第2の対象デバイス200、および、第3の対象デバイス300の3つのデバイスが、更新対象となる対象ソフトウェアが実行されるデバイスである。すなわち、第1の対象デバイス100における第1の不揮発性メモリ102、第2の対象デバイス200における第2の不揮発性メモリ202、および、第3の対象デバイス300における第3の不揮発性メモリ302のそれぞれに、更新対象となる対象ソフトウェアが記憶されている。そして、更新補助デバイス200は、第1の対象デバイス100および第3の対象デバイス300におけるソフトウェアの更新を補助するとともに、自らに記憶されているソフトウェアをも更新する。
【0081】
このような場合、更新用ソフトウェア記憶部220に記憶される更新用ソフトウェアは、複数の対象デバイス100~300に記憶されている複数の対象ソフトウェアをそれぞれ更新するための複数のソフトウェア領域を有していてよい。
【0082】
図5は、変形例に係る更新用ソフトウェアの一例を示す。更新用ソフトウェアは、例えば、本図に示されるように、領域A、領域B、および、領域Cの3つのソフトウェア領域を有していてよい。
【0083】
領域Aは、第1の対象デバイス100における第1の不揮発性メモリ102に記憶されている対象ソフトウェアを更新するためのソフトウェア領域である。分割部240は、例えば上述のフローと同様に、領域Aを3つのブロック(ブロックa1、ブロックa2、および、ブロックa3)に分割してよい。そして、供給部260は、インデックスiにしたがって更新対象ブロックaiを第1の作業用メモリ104に供給することで、第1の不揮発性メモリ102に記憶されている対象ソフトウェアを更新するための更新用ソフトウェアをブロック単位で第1の作業用メモリ104に供給してよい。
【0084】
領域Bは、第2の対象デバイス200における第2の不揮発性メモリ202に記憶されている対象ソフトウェアを更新するためのソフトウェア領域である。ここで、第2のCPU206が第2の作業用メモリ204を作業領域として第2の不揮発性メモリ202に記憶されている対象ソフトウェアの更新処理を実行するにあたり、第2の作業用メモリ204の空き容量が十分に大きかったとする。一例として、領域Bのサイズが600MBであり、第2の作業用メモリ204の空き容量が1GBであったとする。この場合、第2のCPU206は、第2の作業用メモリ204を作業領域として、対象ソフトウェアを一括して更新可能である。したがって、分割部240は、領域Bを複数のブロックに分割しなくてよい。そして、供給部260は、領域Bに係る更新用ソフトウェアをそのまま第2の作業用メモリ204に供給してよい。
【0085】
領域Cは、第3の対象デバイス300における第3の不揮発性メモリ302に記憶されている対象ソフトウェアを更新するためのソフトウェア領域である。ここで、第3のCPU306が第3の作業用メモリ304を作業領域として第3の不揮発性メモリ302に記憶されている対象ソフトウェアの更新処理を実行するにあたり、第3の作業用メモリ304の空き容量が不足していたとする。一例として、領域Cのサイズが600MBであり、第3の作業用メモリ304の空き容量が512MBであったとする。この場合、分割部240は、領域Cを、ブロックc1(300MB)、および、ブロックc2(300MB)の2つのブロックに分割してよい。そして、供給部260は、インデックスiにしたがって更新対象ブロックciを第3の作業用メモリ304に供給することで、第3の不揮発性メモリ302に記憶されている対象ソフトウェアを更新するための更新用ソフトウェアをブロック単位で第3の作業用メモリ304に供給してよい。
【0086】
このように、更新用ソフトウェアは、互いに異なる複数の作業用メモリ(例えば、第1の作業用メモリ104、第2の作業用メモリ204、および、第3の作業用メモリ304)を作業領域としてそれぞれ更新される複数の対象ソフトウェアを更新するためのものであってよい。この場合、分割部240は、各ブロックが複数の作業用メモリのうちの対応する作業用メモリの空き容量以下となるように、更新用ソフトウェアを複数のブロックに分割してよい。そして、供給部260は、更新用ソフトウェアをブロック単位で対応する作業用メモリにそれぞれ供給してよい。
【0087】
これにより、本実施形態に係る更新補助デバイス200によれば、複数の作業用メモリ(例えば、第1の作業用メモリ104、第2の作業用メモリ204、および、第3の作業用メモリ304)のそれぞれの空き容量に照らして必要と判断した領域に対して分割処理およびブロック単位での供給処理を実行することで、複数の対象デバイス100~300に記憶されている複数の対象ソフトウェアを、1つの更新用ソフトウェアを用いて更新することもできる。
【0088】
図6は、別の実施形態に係る更新補助デバイス200のブロック図の一例を示す。本図においては、
図2と同じ機能を有する部材に対して同じ符号を付すとともに、以下相違点を除き説明を省略する。別の実施形態に係る更新補助デバイス200は、上述の実施形態に係る更新補助デバイス200が備える機能部に加えて、更新前ソフトウェア取得部610と、更新前ソフトウェア記憶部620と、返送部630と、を更に備える。
【0089】
更新前ソフトウェア取得部610は、更新前の対象ソフトウェアを示す更新前ソフトウェアを対象デバイス100から取得する。より詳細には、更新前ソフトウェア取得部610は、対象ソフトウェアの更新に先立ち、中継デバイス50を介して第1のCPU106と通信し、第1の不揮発性メモリ102に記憶されている対象ソフトウェアのコピーを、更新前ソフトウェアとして取得してよい。更新前ソフトウェア取得部610は、取得した更新前ソフトウェアを更新前ソフトウェア記憶部620に供給する。このような更新前ソフトウェア取得部610の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0090】
更新前ソフトウェア記憶部620は、更新前ソフトウェアを記憶する。より詳細には、更新前ソフトウェア記憶部620は、更新前ソフトウェア取得部610から供給された対象ソフトウェアのコピーを、更新前ソフトウェアとして記憶してよい。このような更新前ソフトウェア記憶部620の機能は、例えば、第2の不揮発性メモリ202により提供されてよい。
【0091】
返送部630は、更新用ソフトウェアを用いた対象ソフトウェアの更新が成功しなかった場合に、更新前ソフトウェアを対象デバイスに返送する。より詳細には、判定部270は、更新対象ブロックiが供給されたことに応じて予め定められた期間がセットされたタイマをスタートさせてよい。そして、判定部270は、タイマが満了するまでに、第1のCPU106から更新処理が完了した旨が通知されなかった場合に、対象ソフトウェアの更新が成功しなかったと判定してよい。この場合、判定部270は、対象ソフトウェアの更新が成功しなかった旨を返送部630に通知してよい。これに応じて、返送部630は、更新前ソフトウェア記憶部620にアクセスし、記憶されている更新前ソフトウェアを取得してよい。そして、返送部630は、中継デバイス50を介して第1のCPU106と通信し、更新前ソフトウェアを対象デバイス100に返送してよい。このような返送部630の機能は、例えば、第2のCPU206、および、図示せぬ通信部により提供されてよい。
【0092】
このように、別の実施形態に係る更新補助デバイス200は、更新前ソフトウェアを対象デバイス100から取得して記憶しておき、対象ソフトウェアの更新が成功しなかった場合に、更新前ソフトウェアを対象デバイス100に返送する。これにより、別の実施形態に係る更新補助デバイス200によれば、対象ソフトウェアの更新に先立ち、更新前の対象ソフトウェアを自デバイスへバックアップさせておくので、対象ソフトウェアの更新が成功裡に終わらなかった場合であっても、対象デバイス100に返送部630からの返送に応じて更新前の対象ソフトウェアを復元させることができる。
【0093】
図7は、本実施形態に係る更新補助デバイス200の構成図の他の例を示す。本図においては、
図1と同じ構成を有する部材に対して同じ符号を付すとともに、以下相違点を除き説明を省略する。上述の説明では、更新補助デバイス200が、第2の不揮発性メモリ202を備える場合を一例として示したが、本図においては、更新補助デバイス200は、第2の不揮発性メモリ202に代えて、または、加えて、インターフェイス部710と、ストレージデバイス720とを備える。
【0094】
インターフェイス部710は、ストレージデバイス720を更新補助デバイス200に接続するための入出力部である。例えば、インターフェイス部710は、ストレージデバイス720を更新補助デバイス200に着脱可能に接続するためのポート、スロット、または、コネクタ等であってよく、一例として、USBポートやSDカードスロットであってよい。
【0095】
ストレージデバイス720は、データの保存が可能な記録媒体である。例えば、ストレージデバイス720は、データの持ち運びが可能となるように、インターフェイス部710を介して更新補助デバイス200に着脱可能に取り付けられた記録媒体であってよく、一例として、USBメモリやSDカードであってよい。
【0096】
このようなストレージデバイス720には、更新用ソフトウェアが予め保存されていてよい。すなわち、更新用ソフトウェア記憶部220の機能が、着脱可能なストレージデバイス720により提供されてよい。これにより、本実施形態に係る更新補助デバイス200によれば、更新用ソフトウェアを別途ダウンロードする必要がないので、コンピュータネットワークにアクセスできない環境であっても対象ソフトウェアの更新を補助することができるとともに、ダウンロードにかかる費用や時間を削減することができる。
【0097】
図8は、本実施形態に係る更新補助デバイス200が用いられてよい更新補助システムの一例を示す。本図においては、
図1と同じ構成を有する部材に対して同じ符号を付すとともに、以下相違点を除き説明を省略する。上述の説明では、更新補助デバイス200が、機器10に内蔵される場合を一例として示したが、本図においては、更新補助デバイス200がクラウド上に設けられている。すなわち、更新補助デバイス200は、クラウド上にあるバーチャルボードであってよい。
【0098】
この場合、更新補助デバイス200は、コンピュータネットワークおよび中継デバイス50を介して、対象デバイス100と通信可能に構成されてよい。したがって、供給部260は、コンピュータネットワークを介して更新用ソフトウェアをブロック単位で対象デバイス100における第1の作業用メモリ104に供給してよい。これにより、本実施形態に係る更新補助デバイス200によれば、物理的なボードを用意する必要なしに、対象デバイス100における対象ソフトウェアの更新を補助することができる。また、複数の機器10に内蔵された複数の対象デバイス100に対して、クラウド上の更新補助デバイス200から更新できるので、(集中的に)効率的な更新を行うことができる。
【0099】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【0100】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0101】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【0102】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0103】
図9は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。コンピュータ9900にインストールされたプログラムは、コンピュータ9900に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ9900に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ9900に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU9912によって実行されてよい。
【0104】
本実施形態によるコンピュータ9900は、CPU9912、RAM9914、グラフィックコントローラ9916、およびディスプレイデバイス9918を含み、それらはホストコントローラ9910によって相互に接続されている。コンピュータ9900はまた、通信インターフェイス9922、ハードディスクドライブ9924、DVDドライブ9926、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ9920を介してホストコントローラ9910に接続されている。コンピュータはまた、ROM9930およびキーボード9942のようなレガシの入/出力ユニットを含み、それらは入/出力チップ9940を介して入/出力コントローラ9920に接続されている。
【0105】
CPU9912は、ROM9930およびRAM9914内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ9916は、RAM9914内に提供されるフレームバッファ等またはそれ自体の中にCPU9912によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス9918上に表示されるようにする。
【0106】
通信インターフェイス9922は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ9924は、コンピュータ9900内のCPU9912によって使用されるプログラムおよびデータを格納する。DVDドライブ9926は、プログラムまたはデータをDVD-ROM9901から読み取り、ハードディスクドライブ9924にRAM9914を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
【0107】
ROM9930はその中に、アクティブ化時にコンピュータ9900によって実行されるブートプログラム等、および/またはコンピュータ9900のハードウェアに依存するプログラムを格納する。入/出力チップ9940はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ9920に接続してよい。
【0108】
プログラムが、DVD-ROM9901またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ9924、RAM9914、またはROM9930にインストールされ、CPU9912によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ9900に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ9900の使用に従い情報の操作または処理を実現することによって構成されてよい。
【0109】
例えば、通信がコンピュータ9900および外部デバイス間で実行される場合、CPU9912は、RAM9914にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス9922に対し、通信処理を命令してよい。通信インターフェイス9922は、CPU9912の制御下、RAM9914、ハードディスクドライブ9924、DVD-ROM9901、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0110】
また、CPU9912は、ハードディスクドライブ9924、DVDドライブ9926(DVD-ROM9901)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM9914に読み取られるようにし、RAM9914上のデータに対し様々なタイプの処理を実行してよい。CPU9912は次に、処理されたデータを外部記録媒体にライトバックする。
【0111】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU9912は、RAM9914から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM9914に対しライトバックする。また、CPU9912は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU9912は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0112】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ9900上またはコンピュータ9900近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ9900に提供する。
【0113】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0114】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0115】
10 機器
50 中継デバイス
100 対象デバイス(第1の対象デバイス)
102 第1の不揮発性メモリ
104 第1の作業用メモリ
106 第1のCPU
200 更新補助デバイス(第2の対象デバイス)
202 第2の不揮発性メモリ
204 第2の作業用メモリ
206 第2のCPU
210 更新用ソフトウェア取得部
220 更新用ソフトウェア記憶部
230 容量情報取得部
240 分割部
250 指示部
260 供給部
270 判定部
300 第3の対象デバイス
302 第3の不揮発性メモリ
304 第3の作業用メモリ
306 第3のCPU
610 更新前ソフトウェア取得部
620 更新前ソフトウェア記憶部
630 返送部
710 インターフェイス部
720 ストレージデバイス
9900 コンピュータ
9901 DVD-ROM
9910 ホストコントローラ
9912 CPU
9914 RAM
9916 グラフィックコントローラ
9918 ディスプレイデバイス
9920 入/出力コントローラ
9922 通信インターフェイス
9924 ハードディスクドライブ
9926 DVDドライブ
9930 ROM
9940 入/出力チップ
9942 キーボード