JP5297848B2 - プログラム動的更新システム、管理サーバ、組込み機器及びプログラム - Google Patents

プログラム動的更新システム、管理サーバ、組込み機器及びプログラム Download PDF

Info

Publication number
JP5297848B2
JP5297848B2 JP2009065461A JP2009065461A JP5297848B2 JP 5297848 B2 JP5297848 B2 JP 5297848B2 JP 2009065461 A JP2009065461 A JP 2009065461A JP 2009065461 A JP2009065461 A JP 2009065461A JP 5297848 B2 JP5297848 B2 JP 5297848B2
Authority
JP
Japan
Prior art keywords
update
program
information file
update information
address
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.)
Expired - Fee Related
Application number
JP2009065461A
Other languages
English (en)
Other versions
JP2010218334A (ja
Inventor
智揮 矢田
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2009065461A priority Critical patent/JP5297848B2/ja
Publication of JP2010218334A publication Critical patent/JP2010218334A/ja
Application granted granted Critical
Publication of JP5297848B2 publication Critical patent/JP5297848B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Description

本発明は、組込み機器上で動作するプログラムの動作を停止させることなく、プログラムを動的に更新する技術に関する。また、本発明は、プログラム動的更新技術を適用する管理サーバ、組込み機器及び対応するプログラムに関する。
近年、情報家電等の組込み機器の増加及び高機能化に伴い、製品出荷後に組込み機器に搭載されているプログラムの更新が行われるようになってきた。ここで更新とは、プログラムの不具合の修正や、新しい機能を追加すること等を指す。この更新は一般に組込み機器のファームウェアの更新によって実施される。しかし、前記更新方法は、ファームウェアが書き込まれているフラッシュROM(Read Only Memory)の内容を更新後のファームウェアで置き換える操作が必要となる。ファームウェアの更新中は組込み機器を利用できず、また更新後は組込み機器を再起動する必要がある。このような状況を回避するために、ファームウェアを置き換える手法に代えて、プログラムを起動した状態のまま動的にプログラムの更新をする手法が用いられる場合がある。例えばサービス無中断が要求されるオンラインシステム等におけるプログラムの更新技術(特許文献1参照)が開示されている。
特開平10−247143号公報
しかし、特許文献1の方法は、メモリ搭載量の少ない情報家電等の組込み機器に実用的に適用することは困難である。特許文献1の方法では、システムで動作するプログラムを更新するたびに、新部分プログラムをメモリに読み込む必要がある。プログラムをメモリに読み込む際には再配置及びアドレス解決が行われる。この処理によりメモリが消費される。このため、上記方法では累積してプログラムの更新を行うとメモリ消費量が増大し、上記組込み機器で許容できるメモリ使用量を超え、組込み機器で動作する別のプログラムの動作に影響を与えてしまう。
そこで、本発明では、組込み機器で動作する組込プログラムに更新プログラムを動的に適用する際のアドレスを解決した更新情報ファイルを管理サーバにおいて作成し、この更新情報ファイルを組込み機器に書き込む手法を提案する。なお、更新情報ファイルには、更新後関数と、更新前関数のメモリ上のアドレスと、更新後関数の更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。また、更新情報ファイルには、更新後関数と、更新後関数内から参照する組込プログラムの関数が記述されているメモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。また、更新情報ファイルには、参照関係がある複数の更新後関数と、参照先になる更新後関数が記述されている更新情報ファイル内の相対アドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。
一方、組込み機器は、更新情報ファイルのうち相対アドレスで表記された部分を、相対アドレスの基準アドレスが書き込まれたメモリ上のアドレス(実アドレス)分だけシフトする手法を提案する。
本発明によれば、情報家電のような搭載メモリ容量が少ない組込み機器であっても動的にプログラムの更新が可能になる。
形態例に係るプログラム動的更新システムの全体構成を説明する図である。 管理サーバの形態例を示す図である。 組込み機器の形態例を示す図である。 関数の動的な更新動作を説明する図である。 更新前後の関数の関係と更新後の関数間の関係を説明する図である。 更新情報ファイルの構成例を示す図である。 管理サーバ側で実行される更新情報ファイルの作成手順例を示すフローチャートである。 組込み機器側で実行される更新プログラムの更新手順例を示すフローチャートである。
以下、本発明を適用したプログラム動的更新システムの一形態例を、図面を用いて説明する。
・ 形態例
(1−1)システム構成
図1に、形態例に係るシステム構成図を示す。形態例に係るプログラム動的更新システムは、1台の管理サーバ101と複数台の組込み機器103(103A・103B)とがネットワーク102を介して相互に接続される場合を想定する。
組込み機器103には、例えばテレビやホームゲートウェイ等の情報家電が相当する。図1では、ネットワーク102に接続されている組込み機器103が2台の場合を記載しているが、組込み機器103の台数は任意で良い。また、管理サーバ101も組込み機器103と同様に台数は任意で良い。さらに、ネットワーク102は、管理サーバ101と組込み機器103とを相互に接続できる形態であれば任意で良い。従って、ネットワーク102は、有線接続と無線接続のどちらか一方又は両方で構成されていても良い。ネットワーク102には、例えばインターネットや放送波が相当する。
(1−2)管理サーバの構成
図2に、管理サーバ101の構成例を示す。管理サーバ101は、プログラム動的更新システムの管理者が使用するコンピュータシステムである。管理サーバ101は、入力部201、表示部202、データ処理部203、記憶部205、ネットワーク接続部209で構成される。
入力部201は、管理者が、管理サーバ101に対する指示を与えるのに使用されるデバイスである。この形態例の場合、管理者は、組込み機器103で使用される更新情報ファイル208の作成等の指示を与えるために使用される。入力部201には、例えばキーボードやマウスを使用する。表示部202は、管理サーバ101に対する入力情報や処理結果としての各種データ等を表示する出力装置である。表示部202には、例えばCRTディスプレイや液晶ディスプレイを使用する。
データ処理部203は、処理装置とメモリとから構成される。処理装置は、読み込んだプログラムの内容を解釈してデータ処理を実行する。処理装置は、例えばCPU(セントラル・プロセシング・ユニット)やMPU(マイクロ・プロセシング・ユニット)等で構成される。メモリは、処理装置で使用される処理データを一時的に記憶する記憶装置である。メモリは、例えばRAM(ランダム・アクセス・メモリ)等で構成される。なお、メモリには、後述する更新情報ファイルの作成を支援するプログラム等が格納される。この形態例においては、このプログラムを更新情報ファイル生成部204という。
更新情報ファイル作成部204は、組込み機器103側で動作する更新前プログラム306を更新するための情報を含む更新情報ファイル208を作成する。なお、図面において、図2の更新情報ファイル208と、図3の更新情報ファイル307と、図6の更新情報ファイル601とは全て同一の内容であり、図面及び説明の都合上異なった符号を記載しているだけである。
記憶部205は、各種データを記憶又は読み出す装置である。記憶部205は、例えばHDD(ハード・ディスク・ドライブ)や光学記憶装置等で構成される。この形態例の場合、記憶部205には、例えば更新前プログラム206、更新後プログラム207、更新情報ファイル208等が格納される。更新前プログラム206は、組込み機器で現在動作しているプログラムである。明細書では、このプログラムを更新前プログラムという。更新後プログラム207は、組込み機器で新たに動作させるプログラムである。明細書では、このプログラムを更新後プログラムという。更新情報ファイル208は、更新前プログラムを更新後プログラムに動的に変更するために必要なプログラムとそのアドレス情報等で構成されるデータファイルである。
ネットワーク接続部209は、管理サーバ101をネットワーク102に接続するための通信装置である。ネットワーク接続部209には、例えばNIC(ネットワーク・インタフェース・カード)を使用する。なお、更新情報ファイル208を放送波に重畳して送信する場合、ネットワーク接続部209には、放送波の送信装置が用いられる。
(1−3)組込み機器の構成
図3に、組込み機器103の構成例を示す。プログラム動的更新システムにおける組込み機器103とは、更新対象のプログラムが動作する機器である。組込み機器103は、例えば入力部301、表示部302、データ処理部303、記憶部305、ネットワーク接続部308で構成される。ただし、図3に示す組込み機器103の構成は一例であり、この構成に限定されない。
入力部301は、利用者が、組込み機器103に対する指示を与えるのに使用されるデバイスである。入力部301には、例えばキーボードやリモートコントローラーを使用する。表示部302は、組込み機器103に対する入力情報や処理結果としての各種データ等を表示する出力装置である。表示部301には、例えば液晶ディスプレイを使用する。
データ処理部303は、処理装置とメモリとから構成される。処理装置は、読み込んだプログラムの内容を解釈してデータ処理を実行する。処理装置は、例えばCPU(セントラル・プロセシング・ユニット)やMPU(マイクロ・プロセシング・ユニット)等で構成される。メモリは、処理装置で使用される処理データを一時的に記憶する記憶装置である。メモリは、例えばRAM(ランダム・アクセス・メモリ)等で構成される。なお、メモリには、更新前プログラム306に更新情報ファイル307を動的に適用するプログラム等が格納される。この形態例においては、このプログラムを更新部304という。
記憶部305は、各種データを記憶又は読み出す装置である。記憶部305は、例えばフラッシュROMやHDD(ハード・ディスク・ドライブ)等で構成される。この形態例の場合、記憶部305には、例えば更新前プログラム306、更新情報ファイル307等が格納される。
ネットワーク接続部308は、組込み機器103をネットワーク102に接続するための通信装置である。ネットワーク接続部308は、例えばNIC(ネットワーク・インタフェース・カード)を使用する。なお、更新情報ファイル307が放送波に重畳されている場合、ネットワーク接続部308には、放送波の受信装置が用いられる。
(1−4)プログラムの動的更新動作
図4に、プログラムの動作を停止させずにプログラム内の関数を更新する方法を示す。更新前関数401とは、プログラム内の関数であって不具合等を含む関数である。また、更新後関数404とは、更新前関数401の不具合等を修正した関数である。まず、更新後関数404をメモリに読み込む。次に、制御移行先403をメモリ上に配置する。制御移行先403には、更新後関数404が配置されているメモリ上の先頭アドレスが記述される。最後に、更新前関数401が配置されているメモリ上の先頭アドレスに制御移行命令402が記述される。制御移行命令402は、制御移行先403に記述された先頭アドレスを参照し、制御を記述先の先頭アドレスに移す役割をする。以上の操作により、更新前関数401が呼び出された場合は、制御移行命令402により更新後関数404に制御が移る。従って、不具合を含む更新前関数401を、不具合を修正した更新後関数404に置き換えることが可能になる。
(1−5)更新情報ファイルに記述される関数間の更新関係
図5に、更新情報ファイルに記述される関数間の更新関係の一例を示す。更新情報ファイルには、3種類の更新関係が記述される。1つは、更新前プログラムの更新前関数を更新後関数に変更する記述である。1つは、更新後プログラムの関数からOS(オペレーティング・システム)が提供する関数を参照する記述である。1つは、更新後プログラム内の関数から更新後プログラム内の他の関数を参照する記述である。
<a>更新前関数から更新後関数への更新
図5は、更新前関数A(501)、更新前関数B(504)、更新前関数C(507)の三つを、それぞれ更新後関数1(510)、更新後関数2(513)、更新後関数3(516)に動的に更新した状態を示している。図4の説明の場合と同様、更新前関数A(501)の先頭に制御移行命令A(502)が書き込まれている。例えば制御移行命令A(502)が参照する制御移行先A(503)には、更新後関数1(510)のメモリ上での先頭アドレスが格納されている。同様に、更新前関数B(504)の先頭に制御移行命令B(505)が書き込まれている。制御移行命令B(505)が参照する制御移行先B(506)には、更新後関数2(513)のメモリ上での先頭アドレスが格納されている。同様に、更新前関数C(507)の先頭に制御移行命令C(508)が書き込まれている。制御移行命令C(508)が参照する制御移行先C(509)には、更新後関数3(516)のメモリ上での先頭アドレスが格納されている。
<b>更新後プログラムの関数からOS関数の参照
図5は、更新後関数1(510)からOSが提供する関数(521)を呼び出す状態を示している。この動作は、更新後関数1(510)の該当位置に記述された制御移行命令1(511)に基づいて実行される。制御移行命令1(511)が参照する制御移行先(512)には、OSが提供する関数(521)のメモリ上でのアドレスが格納されている。
<c>更新後プログラム内の関数から更新後プログラム内の他の関数の参照
図5は、更新後関数2(513)から更新後関数3(516)を呼び出す状態を示している。この動作は、更新後関数2(513)の該当位置に記述された制御移行命令2(514)に基づいて実行される。制御移行命令2(514)が参照する制御移行先2(515)には、更新後関数3(516)のメモリ上のアドレスが格納されている。
(1−6)更新情報ファイル
図6に、更新情報ファイル601の構成例を示す。更新情報ファイル601は、組込み機器のプログラムを動的に更新するために使用する。更新情報ファイル601は、更新後関数表602、制御移行表603、相互参照表604で構成される。以下に、更新情報ファイル601を構成する要素のそれぞれを説明する。
以下の説明において、オフセットは、更新情報ファイル601の先頭位置からの変位(相対アドレス)として定義される。この形態例の場合、更新後関数1(図6)は更新情報ファイル601の先頭に配置される。従って、更新後関数1(図6)のオフセットは“0”で与えられる。つまり、オフセットは更新後関数1(図6)の先頭位置からの変位とも言うことができる。
図5の場合、矢印517の長さ(長さの単位は、例えばバイトがある)が更新後関数2(513)の更新後関数1(510)に対するオフセットに対応する。同様に、矢印520の長さが更新後関数3(516)の更新後関数1(510)に対するオフセットに対応する。
更新後関数表602は、N個の更新後関数(1〜N)で構成される。ここで、更新後関数(1〜N)は、更新前プログラム306と更新後プログラム307の比較で差異のあった関数、又は更新後プログラム307にのみ存在する関数の集まりである。図6は、これらの関数が合計でN個あることを表している。図5の例では、更新後関数1〜3(図5)の3個が相当し、Nは3になる。
制御移行表603は、M個のオフセットJ(1〜M)とアドレスJ(1〜M)の対で構成される。制御移行表603には、(a)更新前関数から更新後関数に更新するために必要なアドレス対と、(b)更新後プログラムの関数からOS関数を参照するために必要なアドレス対が記述される。従って、制御移行表603のオフセットには、後述する相互参照表604で使われるオフセットは含まない。
図5の例の場合、制御移行表603のオフセットJは、例えば制御移行先1(512)に記述する更新情報ファイル内の変位(518)や制御移行先2(515)に記述する更新情報ファイル内の変位(519)を与える。制御移行表603のアドレスJは、例えば更新前関数(A〜C)のメモリ上のアドレスやOSが提供する関数(521)のメモリ上のアドレス(絶対アドレス)を与える。この点で、オフセットとアドレスとは異なる。
相互参照表604は、L個のオフセットFR(1〜L)とオフセットTO(1〜L)の対で構成される。相互参照表604には、更新後プログラムの関数同士での呼び出しに必要なアドレス対が記述される。図5の例の場合、更新後関数2(513)から更新後関数3(516)を呼び出すのに用いられる。オフセットFRは、制御移行命令2(514)で参照する制御移行先2(515)の位置を与える。オフセットTOは、更新後関数3(516)の先頭アドレスを与える変位(520)を与える。このオフセットTOは、制御移行先2(515)に記述される。
(1−7)更新情報ファイルの作成手順
次に、管理サーバ101側で実行される更新情報ファイル208の作成手順を示す。なお、更新情報ファイル208は、組込み機器103の更新部304において利用される。
図7に、更新情報ファイル生成部204(図2)を通じて実行される処理手順例を示す。
まず、更新情報ファイル生成部204は、操作者が指定入力した更新前プログラム206とその修正プログラムである更新後プログラム207との比較動作を実行する。この処理により、両プログラム間で修正のあった関数、又は更新後プログラムにのみ存在する関数が抽出される(ステップS701)。この形態例の場合、その合計はN個である。
次に、更新情報ファイル生成部204は、ステップS701で抽出した関数を更新情報ファイル601の更新後関数(1〜N)(602)とし、更新後関数表602を作成する(ステップS702)。図5の場合、更新後関数1(510)、更新後関数2(513)、更新後関数3(516)の3つで構成される更新後関数表602が作成される。
次に、更新情報ファイル生成部204は、ステップS701にて抽出したN個の更新後関数(1〜N)について、カウンタをiとする変更箇所ループ1を開始する(ステップS703)。
次に、i番目の更新後関数iが図4の用語で更新前関数401を修正した更新後関数404であるならば、更新情報ファイル生成部204は、更新後関数iの更新情報ファイル601の先頭からの変位であるオフセットJkを算出する。ここでkはカウンタであり、初期値“1”から1つずつカウントアップする。更新前関数401が組込み機器103のメモリ上のどの位置に配置されるかは、例えば更新対象プログラムがLinux(登録商標)のカーネルの場合、System.mapファイル等を用いて調べることができる。System.mapファイルには、Linux(登録商標)カーネル内の関数の名前と、関数が配置されているメモリ上のアドレスを対にした情報が書かれている。これにより取得した更新前関数401のアドレスをアドレスJkとする。
更新情報ファイル生成部204は、このように求めたオフセットJkとアドレスJkを対にして制御移行表603に加える(ステップS704)。図5の場合、オフセット1の変位は0(ゼロ)、アドレス1は更新前関数A(501)のメモリ上のアドレスであり、オフセット2は変位(517)、アドレス2は更新前関数B(504)のメモリ上のアドレスであり、オフセット3は変位(520)、アドレス3は更新前関数C(507)のメモリ上のアドレスである。
次に、更新情報ファイル生成部204は、i番目の更新後関数iが外部関数を呼ぶか判定する(ステップS705)。ここで、外部関数とは、更新前プログラム内の関数であって、ステップS701で差異があると判定されなかった関数である。図5の例では、更新後関数1(510)から呼ばれるOSが提供する関数(521)が外部関数に相当する。
ステップS705がYesの場合、更新情報ファイル生成部204は、アドレス解決を行う(ステップS706)。アドレス解決は、i番目の更新後関数iが外部関数を呼ぶ際、その外部関数が組込み機器103のメモリ上のどのアドレスに存在するか決定することである。例えば、更新対象プログラムがLinux(登録商標)のカーネルの場合、System.mapファイルにより前記アドレスを求めることができる。このアドレスをJkとする。外部関数は、通常の関数呼び出しと同様に制御移行命令が制御移行先を参照し呼び出される。更新情報ファイル生成部204は、更新情報ファイル601の先頭からの更新後関数i内の制御移行先のオフセットを求め、これをオフセットJkとし、オフセットJkとアドレスJkを対にして制御移行表603に加える。更新情報ファイル生成部204は、上記の処理動作を、更新後関数i内の外部関数の全てに対して行う。図5の場合、制御移行表603にオフセット518とOS内の関数(521)のメモリ上のアドレスの対が追加される。
ステップS705がNoの場合、更新情報ファイル生成部204は何もしない。この後、更新情報ファイル生成部204は、ステップS704〜S706の処理を、そのカウンタiがNを越えるまで繰り返す(ステップS707)。
次に、更新情報ファイル生成部204は、ステップS701で抽出したN個の更新後関数(1〜N)について、カウンタをjとする変更箇所ループ2を開始する(ステップS708)。
次に、更新情報ファイル生成部204は、j番目の更新後関数jが内部関数を呼ぶか判定する(ステップS709)。ここで、内部関数とは、更新前プログラム内の関数であって、ステップS701で差異があると判定された関数である。図5の場合、内部関数の呼び出しは、更新後関数2(513)内の制御移行命令2(514)による更新後関数3(516)の呼び出しに相当する。
ステップS709がYesの場合、更新情報ファイル生成部204は、相互参照表を作成する(ステップS710)。j番目の更新後関数jが内部関数を呼ぶ場合、更新情報ファイル生成部204は、読み出し対象である更新後関数(1〜N)の位置(すなわち、更新情報ファイル501の先頭からの変位)をオフセットTOmとする。ここで、mはカウンタであり、初期値“1”から1つずつカウントアップされる。同様に、更新情報ファイル生成部204は、内部関数を呼ぶ制御移行命令が参照する制御移行先に記述する位置(すなわち、更新情報ファイル501の先頭からの変位)をオフセットFRmとする。更新情報ファイル生成部204は、このオフセットFRmとオフセットTOmを対にして相互参照表504に加える。更新情報ファイル生成部204は、上記の処理動作を、更新後関数j内の内部関数の全てに対して実行する。図5の場合、オフセットFRとして変位(519)、オフセットTOとして変位(520)を相互参照表504に加える。
ステップS709がNoの場合、更新情報ファイル生成部204は何もしない。この後、更新情報ファイル生成部204は、ステップS709〜S710の処理を、そのカウンタjがNを越えるまで繰り返す(ステップS711)。
以上の処理動作の実行により更新情報ファイル601が作成される。このように、アドレス解決は、基本的に管理サーバ101で実行される。
(1−8)組込み機器での更新動作
次に、組込み機器103の更新部304が更新情報ファイル307を用いて実行する更新前プログラム306の更新動作を説明する。
図8に、更新情報ファイル307を通じて実行される処理手順例を示す。
まず、更新部304は、更新情報ファイル307を組込み機器103の記憶部305に読み込む(ステップS801)。以下、更新情報ファイル307が配置されたメモリ上のアドレスをADDRと表記する。
次に、更新部304は、相互参照表604のオフセットFRaとオフセットTOaの値を取り出し、オフセットFRaとオフセットTOaのそれぞれにADDRを加える(ステップS802)。なお、aは1〜Lを表す。この加算処理により、更新部304は、オフセットとして与えられた更新情報ファイル307内の相対アドレスは、メモリ上の実アドレスに変換される。この後、更新部304は、オフセットFRaにADDRを加えたメモリ上のアドレスに、オフセットTOaにADDRを加えたアドレスを記述内容とする制御移行先を書き込む。
最後に、更新部304は、制御移行表603のオフセットJbの値を取り出し、この値にADDRを加える(ステップS803)。この加算処理により、更新部304は、オフセットとして与えられた更新情報ファイル307内の相対アドレスは、メモリ上の実アドレスに変換される。この後、更新部304は、オフセットJbと対をなすメモリ上のアドレス(図5の場合、503、506、509)にアドレスJbを記述内容とする制御移行先を書き込み、対応する関数の先頭アドレスに制御移行命令を書き込む。なお、bは1〜Mを表す。
ここで、制御移行命令を書き込む際、更新部304は、組込み機器103のハードウェアの仕様に基づき、更新前プログラム306が想定外の動作をしないようにするための処理を適切に行うものとする。
以上の更新手順により、組込み機器103で動作する更新前プログラム306の動作を停止することなく、前記更新前プログラム306を更新後プログラム207と同等の処理をする状態に移行させることが可能となる。
(1−9)効果
以上説明したように、組込み機器103の更新部304は、更新情報ファイル307に基づいて、組込み機器103で動作するプログラムを動的に更新することができる。従来方式とは異なり、この形態例の場合には、プログラムを更新するたびに更新用プログラムをメモリに読み込み実行する必要がない。すなわち、形態例に係る組込み機器103は、再配置及びアドレス解決に起因するメモリ消費量が大幅に削減される。
実際、更新部304は、更新情報ファイル307が読み込まれたメモリ上での先頭アドレス(ADDR)の情報のみに基づいてオフセットから絶対アドレスに変換することができる。よって、メモリ消費は更新情報ファイル307の大きさ程度に抑えることが可能となる。
以上より、複数の更新情報ファイル307を順次累積的に適用してプログラムの更新を行ったとしても、メモリ消費量を抑えることができる。これにより、メモリ搭載量が少ない情報家電等の組込み機器においてもプログラムの動的な更新を実用的に実行することができる。
一例として、形態例に係るプログラムの動的更新方法を、組込み機器103で動作する更新前プログラム306の更新動作に適用する場合について説明する。まず、管理者が、管理サーバ101で不都合を修正した更新後プログラム207を作成する。次に、更新情報ファイル生成部204を用いて、更新前プログラム206と更新後プログラム207とから更新情報ファイル208を作成する。管理サーバ101は前記更新情報ファイル208を組込み機器103にネットワーク経由で配布する。最後に、組込み機器103の更新部304は、配布された更新情報ファイル307を用いて、組込み機器103の更新前プログラム306を更新し、不都合を解消する。
(2)他の形態例
前述の形態例においては、情報更新ファイルの送信手順について説明しなかったが、以下のような手順によって実行することができる。例えば管理サーバ101が更新情報ファイルを強制的に組込み機器103に送信し、そのタイミングで組込み機器103内のプログラムを更新させる手法を採用しても良い。これに対し、組込み機器103が管理サーバ101に対して新規の更新情報ファイルが存在するか否かの確認処理を実行し、存在が確認された場合には、組込み機器103からの要求により管理サーバ101から更新情報ファイルをダウンロードする手法を採用しても良い。
101…管理サーバ
102…ネットワーク
103A…組込み機器
103B…組込み機器
201…入力部
202…表示部
203…データ処理部
204…更新情報ファイル生成部
205…記憶部
206…更新前プログラム
207…更新後プログラム
208…更新情報ファイル
209…ネットワーク接続部
301…入力部
302…表示部
303…データ処理部
304…更新部
305…記憶部
306…更新前プログラム
307…更新情報ファイル
308…ネットワーク接続部
401…更新前関数
402…制御移行命令
403…制御移行先
404…更新後関数
501…更新前関数A
502…制御移行命令A
503…制御移行先A
504…更新前関数B
505…制御移行命令B
506…制御移行先B
507…更新前関数C
508…制御移行命令C
509…制御移行先C
510…更新後関数1
511…制御移行命令1
512…制御移行先1
513…更新後関数2
514…制御移行命令2
515…制御移行先2
516…更新後関数3
517…更新後関数2へのオフセット
518…制御移行先1へのオフセット
519…制御移行先2へのオフセット
520…更新後関数3へのオフセット
521…OS内の関数
601…更新情報ファイル
602…更新後関数
603…制御移行表
604…相互参照表

Claims (8)

  1. 組込み機器で稼働中の組込プログラムに対する更新情報を収集し、更新情報を組込み機器に動的に適用するために前記組込み機器のメモリ上でのアドレスを解決した更新情報ファイルを生成する管理サーバと、
    前記更新情報ファイルに基づいて前記組込プログラムを動的に更新する組込み機器と
    を有し、
    前記管理サーバが生成する前記更新情報ファイルは、更新後関数と、更新後関数内から参照する前記組込プログラムの関数が記述されている前記メモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとを有する
    プログラム動的更新システム。
  2. 前記更新情報ファイルは、更新後関数と、更新前関数の前記メモリ上のアドレスと、更新後関数の更新情報ファイル内の相対アドレスとを更に有する
    ことを特徴とする請求項1に記載のプログラム動的更新システム。
  3. 前記更新情報ファイルは、参照関係がある複数の更新後関数と、参照先になる更新後関数が記述されている更新情報ファイル内の相対アドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとを更に有する
    ことを特徴とする請求項1又は2に記載のプログラム動的更新システム。
  4. 前記組込み機器は、前記相対アドレスで表記された部分を、前記相対アドレスの基準アドレスが書き込まれた前記メモリ上のアドレス分だけシフトしたアドレスに変更する
    ことを特徴とする請求項1〜のいずれか1項に記載のプログラム動的更新システム。
  5. 組込み機器で稼働中の更新前の組込プログラムと、新たに適用する更新後の組込グラムとを記憶する記憶装置と、
    前記更新前の組込プログラムと前記更新後の組込プログラムとを比較し、前記更新前の組込プログラムに対する更新情報を収集し、更新情報を前記組込み機器に動的に適用するための前記組込み機器のメモリ上でのアドレスを解決した更新情報ファイルを生成する更新情報ファイル生成部と
    を有する管理サーバであって、
    前記更新情報ファイルは、更新後関数と、更新後関数内から参照する前記組込プログラムの関数が記述されている前記メモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとを有する
    管理サーバ。
  6. 稼働中の更新前の組込プログラムと、新たに適用される更新後の組込プログラムの前記更新前の組込プログラムに対する修正箇所を前記更新前の組込プログラムに動的に適用するための更新情報ファイルとを記憶するメモリと、
    前記更新情報ファイルに基づいて前記組込プログラムを動的に更新する更新部と
    を有する組込み機器であって、
    管理サーバで生成される前記更新情報ファイルには、更新後関数と、更新後関数内から参照する前記組込プログラムの関数が記述されている前記メモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが含まれる
    組込み機器。
  7. 組込み機器で稼働中の更新前の組込プログラムと、新たに適用する更新後の組込プログラムとを比較し、前記更新前の組込プログラムに対する更新情報を収集する処理と、
    前記更新情報を前記組込み機器に動的に適用するために前記組込み機器のメモリ上でのアドレスを解決した更新情報ファイルを生成する処理と
    を管理サーバのコンピュータに実行させるプログラムであって、
    前記更新情報ファイルには、更新後関数と、更新後関数内から参照する前記組込プログラムの関数が記述されている前記メモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが含まれる
    ことを特徴とするプログラム
  8. 稼働中の更新前の組込プログラムに対して新たに適用する更新後の組込プログラムの修正箇所を前記更新前の組込プログラムに動的に適用するための更新情報ファイルをメモリから読み出す処理と、
    前記更新情報ファイルに基づいて前記組込プログラムを動的に更新する処理と
    を組込み機器のコンピュータに実行させるプログラムであって、
    管理サーバで生成される前記更新情報ファイルには、更新後関数と、更新後関数内から参照する前記組込プログラムの関数が記述されている前記メモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが含まれる
    ことを特徴とするプログラム
JP2009065461A 2009-03-18 2009-03-18 プログラム動的更新システム、管理サーバ、組込み機器及びプログラム Expired - Fee Related JP5297848B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009065461A JP5297848B2 (ja) 2009-03-18 2009-03-18 プログラム動的更新システム、管理サーバ、組込み機器及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009065461A JP5297848B2 (ja) 2009-03-18 2009-03-18 プログラム動的更新システム、管理サーバ、組込み機器及びプログラム

Publications (2)

Publication Number Publication Date
JP2010218334A JP2010218334A (ja) 2010-09-30
JP5297848B2 true JP5297848B2 (ja) 2013-09-25

Family

ID=42977097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009065461A Expired - Fee Related JP5297848B2 (ja) 2009-03-18 2009-03-18 プログラム動的更新システム、管理サーバ、組込み機器及びプログラム

Country Status (1)

Country Link
JP (1) JP5297848B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6609199B2 (ja) 2016-03-01 2019-11-20 ルネサスエレクトロニクス株式会社 組込み機器
JP6637398B2 (ja) 2016-09-23 2020-01-29 ルネサスエレクトロニクス株式会社 判定装置及び判定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273147A (ja) * 2000-03-27 2001-10-05 Toshiba Corp 情報配布方法、情報配布システム、情報配布サーバ、端末機器および記録媒体
JP2004126863A (ja) * 2002-10-01 2004-04-22 Nippon Telegr & Teleph Corp <Ntt> オブジェクト管理装置とその方法、およびプログラム
JP3792232B2 (ja) * 2004-03-08 2006-07-05 三菱電機株式会社 情報処理装置及び格納位置管理方法及びプログラム
JP2006301765A (ja) * 2005-04-18 2006-11-02 Toshiba Corp 制御装置のメンテナンス装置

Also Published As

Publication number Publication date
JP2010218334A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
EP2815311B1 (en) Using an application cache to update resources of installed applications
KR101760778B1 (ko) 컴퓨터시스템 및 그 프로그램 업데이트 방법
CN103098043B (zh) 随需虚拟机映像流式传输的方法和系统
KR101422563B1 (ko) 데이터 패키지의 효율적인 다운로드 방법 및 시스템
JP4275683B2 (ja) オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体
US20150120670A1 (en) Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US20100088448A1 (en) Virtual computing accelerator and program downloading method for server-based virtual computing
JP2009187379A (ja) 仮想計算機サーバ装置、更新画像検出方法およびプログラム
CN105052111A (zh) 跨群集边界的服务迁移
KR20120071205A (ko) 가상머신 서버와 노드 운영방법 및 그 장치
CN103136019A (zh) 用于加载配置信息的方法和装置
JPWO2010116473A1 (ja) 管理サーバ、ブートサーバ、ネットワークブートシステムおよびネットワークブート方法
JP2009199261A (ja) 情報処理システムと情報処理方法とプログラム
CN104427186A (zh) 通信装置及其定制方法
US7953894B2 (en) Providing aggregated directory structure
JP5297848B2 (ja) プログラム動的更新システム、管理サーバ、組込み機器及びプログラム
US8214330B2 (en) Information processing apparatus, information processing method, and computer program product
CN107656753A (zh) 一种补丁实现方法及装置
JP2011060142A (ja) 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体
JP5982436B2 (ja) 画面転送サーバ装置、および画面転送方法
JP5464449B2 (ja) 障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム
JP2011048605A (ja) プログラム実行装置及びアプリケーションプログラムの実行方法
JP5499781B2 (ja) メモリデータベースシステム、高速化方法、および、プログラム
JP5754778B2 (ja) 記憶装置共用システム、管理装置、処理装置、記憶装置共用方法、管理方法、アクセス方法およびプログラム
US9727362B2 (en) Execution control method, storage medium, and execution control apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees