(57)【要約】  【課題】  ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新が可能なシステムおよび方法を提供すること。  【解決手段】  サーバ１は、プログラムをモジュール１０２およびメインプログラム１０３に分割し、メインプログラム１０３をコンパイルし、共有ライブラリを利用する形態でのリンクを行い、モジュール１０２を共有ライブラリとしてコンパイルし、コンパイルしたモジュール１０４およびメインプログラム１０５を端末装置３へ送信する。また、モジュールを変更するモジュール変更手段１３を備え、更新すべきデータに対して変更を行う。端末装置３は、モジュール１０６およびメインプログラム１０７を記憶する記憶手段３３を備える。また、更新すべきデータを受信すると、記憶手段３３に書込み、記憶手段３３に記憶されたモジュールおよびメインプログラムをダイナミックリンクし、ダイナミックリンクされたプログラムを実行する。【選択図】  図１
2005056319.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエア更新システムにおける端末装置であって、
各々が１つ以上のプログラムファイルを含む、共有ライブラリ化されたモジュールおよび前記共有ライブラリにリンクされたメインプログラムに分割されたソフトウエアを記憶する記憶手段と、
更新すべきモジュール及びメインプログラムを含む更新データを受信するための通信手段と、
前記通信手段で受信した前記更新データを前記記憶手段に書込む書込み手段と、
前記記憶手段に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするダイナミックリンク手段と、
前記ダイナミックリンクされたプログラムを実行する実行手段と、
を備えた端末装置。
【請求項２】
請求項１記載の端末装置であって、
前記記憶手段に、前記モジュールおよび前記メインプログラムを複数に分割された記憶領域に記憶する分割記憶領域が設けられ、
前記書込み手段は、前記通信手段が受信した前記更新データを対応する分割記憶領域中の更新前データから書換えるものであり、
前記端末装置は、
前記更新データに対応する前記更新前データをバックアップするバックアップ手段と、
前記書込み手段の書込み中の障害を検出する検出手段と、
前記検出手段によって検出された障害情報を記憶する障害記憶手段と、
前記端末装置を再起動する再起動手段と、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報により判定する障害検出判定手段と、
前記障害検出判定手段によって障害があったと判定された場合に、前記バックアップされた更新前データを元の分割記憶領域に書き戻す復元手段と、
各々の前記分割記憶領域をパーティションとして前記端末装置で用いられるファイルシステムにマウントするパーティションマウント手段と、
を更に備え、
前記ダイナミックリンク手段は、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである端末装置。
【請求項３】
請求項１記載の端末装置であって、
前記記憶手段に、前記モジュールおよび前記メインプログラムを複数に分割された記憶領域に記憶する分割記憶領域が設けられ、
前記書込み手段は、前記更新データを分割記憶領域に書込むものであり、
前記端末装置は、
前記更新データを、前記書込み手段が書込むべき前記分割記憶領域を指定する書込み先指定手段と、
前記書込み手段の書込み中の障害を検出する検出手段と、
前記検出手段によって検出された障害情報を記憶する障害記憶手段と、
前記端末装置を再起動する再起動手段と、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害記憶手段中の情報より判定する障害検出判定手段と、
前記障害検出判定手段で判定された障害発生の有無により、前記分割記憶領域のマウント方法を制御するパーティションマウント制御手段と、
前記パーティションマウント制御手段の指示に従い、前記分割記憶領域をパーティションとして前記端末装置に用いられるファイルシステムにマウントするパーティションマウント手段と、
を更に備え、
前記パーティションマウント制御手段は、障害が生じていない場合は前記更新データが書込まれた分割領域を、障害が生じている場合は書込み以前にモジュールが存在した分割記憶領域をパーティションとして前記ファイルシステムにマウントするように前記パーティションマウント手段に指示を行い、
前記ダイナミックリンク手段は、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである端末装置。
【請求項４】
ソフトウエア更新システムにおけるサーバであって、
ソフトウエアを、各々が１つ以上のソースプログラムファイルからなるモジュールおよびメインプログラムに分割するファイル単位分割手段と、
前記ファイル単位分割手段で分割された前記モジュールおよび前記メインプログラムを含むデータを記憶する記憶手段と、
前記記憶手段に記憶された前記データに変更を加えるモジュール変更手段と、
前記記憶手段に記憶されたメインプログラムをコンパイルし、共有ライブラリを利用する形態でのリンクを行うメインプログラムコンパイル手段と、
前記記憶手段に記憶されたモジュールをコンパイルするとともに共有ライブラリ化するモジュールコンパイル手段と、
通信回線を介して前記モジュールおよび前記メインプログラムを送信するための通信手段と、
を備えたサーバ。
【請求項５】
請求項１ないし３のいずれか一項記載の端末装置と、請求項４記載のサーバとを備えたソフトウエア更新システム。
【請求項６】
ソフトウエア更新可能な端末装置におけるソフトウエア更新方法であって、
各々が１つ以上のプログラムファイルを含む、共有ライブラリ化されたモジュールおよび前記共有ライブラリにリンクされたメインプログラムに分割されたソフトウエアを記憶するステップと、
更新すべきモジュールおよびメインプログラムを含む更新データを受信するステップと、
前記通信手段で受信した前記更新データを前記記憶手段に書込むステップと、
前記記憶手段に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするダイナミックリンクステップと、
前記ダイナミックリンクされたプログラムを実行するステップと、
を備えた端末装置のソフトウエア更新方法。
【請求項７】
請求項６記載のソフトウエア更新方法であって、
前記ソフトウエアを記憶手段に記憶するステップは、前記記憶手段に設けられた複数の分割記憶領域に前記モジュールおよび前記メインプログラムを記憶するものであり、
前記モジュールを書込むステップは、前記通信手段が受信した前記更新データを対応する分割記憶領域中の更新前データから書換えるものであり、
前記ソフトウエア更新方法は、
前記更新前データをバックアップするステップと、
前記書込み中の障害を検出するステップと、
前記検出手段によって検出された障害情報を記憶するステップと、
前記端末装置を再起動するステップと、
前記再起動手段による再起動後に、再起動前の更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報より判定する障害検出判定手段と、
前記障害検出判定手段によって障害があったと判定された場合に、前記バックアップされた更新前データを元の分割記憶領域に書き戻すステップと、
各々の前記分割記憶領域をパーティションとして前記端末装置に用いられるファイルシステムにマウントするステップと、
を更に備え、
前記ダイナミックリンクするステップは、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである端末装置のソフトウエア更新方法。
【請求項８】
請求項６記載のソフトウエア更新方法であって、
前記ソフトウエアを記憶手段に記憶するステップは、前記記憶手段に設けられた複数の分割記憶領域に前記モジュールおよび前記メインプログラムを記憶するものであり、
前記更新データを書込むステップは、前記通信手段が受信した前記更新データを前記分割記憶領域に書込むものであり、
前記ソフトウエア更新方法は、
前記更新データを書込むべき前記分割記憶領域を指定するステップと、
前記更新データの書込み中の障害を検出するステップと、
前記検出手段によって検出された障害情報を記憶するステップと、
前記端末装置を再起動するステップと、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報より判定するステップと、
前記障害検出判定手段で判定された障害発生の有無により、障害が生じていない場合は前記更新データが書込まれた分割領域を、障害が生じている場合は書込み以前にモジュールが存在した分割記憶領域をパーティションとして前記ファイルシステムにマウントするように指示を行うステップと、
前記指示に従い、前記分割記憶領域をパーティションとしてファイルシステムにマウントするステップと、
を更に備え、
前記ダイナミックリンクするステップは、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである端末装置のソフトウエア更新方法。
【請求項９】
端末装置のソフトウエアを更新可能なサーバにおけるソフトウエア更新方法であって、
ソフトウエアを、各々が１つ以上のソースプログラムファイルからなるモジュールおよびメインプログラムに分割するステップと、
前記ファイル単位分割手段で分割された前記モジュールおよび前記メインプログラムを記憶するステップと、
前記記憶手段に記憶された前記データに変更を加えるステップと、
前記記憶手段に記憶されたメインプログラムをコンパイルし、共有ライブラリを利用する形態でのリンクを行うステップと、
前記記憶手段に記憶されたモジュールをコンパイルおよび共有ライブラリ化するステップと、
通信回線を介してモジュールおよびメインプログラムを前記端末装置へ送信するステップと、
を備えたサーバのソフトウエア更新方法。
【請求項１０】
コンピュータに、請求項６ないし９に記載の各ステップを実行させるためのソフトウエア更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアを更新するためのソフトウエア更新システム、ソフトウエア更新方法、およびソフトウエア更新プログラムに関するものである。
【背景技術】
【０００２】
従来の携帯電話などの組込み機器におけるソフトウエア更新方法は、ソフトウエア更新の高速化を図るために、ソフトウエア全体を複数の要素に分解し、ソフトウエアの更新すべき部分に対応する要素のみを更新している（例えば、非特許文献１、特許文献１参照）。
【０００３】
非特許文献１では、ソフトウエアの更新を前提とした携帯電話移動機ソフトウエアの構造が記載されている。このソフトウエアの構造は、ソフトウエアを複数に分割したモジュールと、モジュール間の参照を行うためのジャンプベクタテーブルとで構成される。この構成により、あるモジュールが更新されることによって関数の配置にずれが生じた場合においても、ジャンプベクタテーブルを利用することにより、更新による影響を抑えることができる。
【０００４】
また、特許文献１では、移動電話機用のソフトウエア書換え方法が記載されている。このソフトウエア書換え方法によれば、機能毎のプログラム部品に互いのプログラム間の参照関係を示す制御領域を備えており、プログラムを更新する際、この制御領域を更新することで、新しいプログラムを再配置している。
【０００５】
しかしながら、上記従来のソフトウエア更新方法においては、リアルタイムＯＳ（オペレーティングシステム）上での動作を前提としているため、近年普及しつつある、組み込みＬｉｎｕｘ等のようなダイナミックリンク機能を持ったＯＳ上におけるモジュール単位でのソフトウエア書換えの実現方式については説明されていない。また、従来のソフトウエア更新方法をダイナミックリンク機能をもったＯＳに適用するのは困難であった。
【０００６】
また、上記のような組み込みＬｉｎｕｘ等のようなダイナミックリンク機能を持ったＯＳ上でのソフトウエア書換え方式において、モジュール化を利用したフォールトトレランス性の確保方式も明確に示されていないため、フォールトトレランス性を確保する必要がある。
【特許文献１】特開２００２−９４６３９号公報
【非特許文献１】清原良三、栗原まり子、高橋清、橘高大造、「携帯電話のＳＷ更新に関する検討」、情報処理学会・モバイルコンピューティングとワイヤレス通信研究会報告（２２−１３）、２００２年１０月１８日、ｐｐ．９３−１００
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来の事情に鑑みてなされたものであって、ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新が可能なシステムおよび方法を提供することを第１の目的とする。さらに、ダイナミックリンク機能を持ったＯＳ上でのソフトウエア書換え方式において、フォールトトレランス性の確保された、モジュール単位でのソフトウエア更新が可能なシステムおよび方法を提供することを第２の目的とする。
【課題を解決するための手段】
【０００８】
本発明の端末装置は、ソフトウエア更新システムにおける端末装置であって、
各々が１つ以上のプログラムファイルを含む、共有ライブラリ化されたモジュールおよび前記共有ライブラリにリンクされたメインプログラムに分割されたソフトウエアを記憶する記憶手段と、
更新すべきモジュール及びメインプログラムを含む更新データを受信するための通信手段と、
前記通信手段で受信した前記更新データを前記記憶手段に書込む書込み手段と、
前記記憶手段に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするダイナミックリンク手段と、
前記ダイナミックリンクされたプログラムを実行する実行手段と、
を備えた構成を有している。
【０００９】
この構成により、ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新を可能とすることができる。
【００１０】
また、本発明の端末装置は、
前記記憶手段に、前記モジュールおよび前記メインプログラムを複数に分割された記憶領域に記憶する分割記憶領域が設けられ、
前記書込み手段は、前記通信手段が受信した前記更新データを対応する分割記憶領域中の更新前データから書換えるものであり、
前記端末装置は、
前記更新データに対応する前記更新前データをバックアップするバックアップ手段と、
前記書込み手段の書込み中の障害を検出する検出手段と、
前記検出手段によって検出された障害情報を記憶する障害記憶手段と、
前記端末装置を再起動する再起動手段と、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報により判定する障害検出判定手段と、
前記障害検出判定手段によって障害があったと判定された場合に、前記バックアップされた更新前データを元の分割記憶領域に書き戻す復元手段と、
各々の前記分割記憶領域をパーティションとして前記端末装置で用いられるファイルシステムにマウントするパーティションマウント手段と、
を更に備え、
前記ダイナミックリンク手段は、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクする構成を有している。
【００１１】
この構成により、ダイナミックリンク機能を持ったＯＳ上における、モジュール単位でのソフトウエア更新時に、フォールトトレランス性を確保することができる。
【００１２】
さらに、本発明の端末装置は、
前記記憶手段に、前記モジュールおよび前記メインプログラムを複数に分割された記憶領域に記憶する分割記憶領域が設けられ、
前記書込み手段は、前記更新データを分割記憶領域に書込むものであり、
前記端末装置は、
前記更新データを、前記書込み手段が書込むべき前記分割記憶領域を指定する書込み先指定手段と、
前記書込み手段の書込み中の障害を検出する検出手段と、
前記検出手段によって検出された障害情報を記憶する障害記憶手段と、
前記端末装置を再起動する再起動手段と、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害記憶手段中の情報より判定する障害検出判定手段と、
前記障害検出判定手段で判定された障害発生の有無により、前記分割記憶領域のマウント方法を制御するパーティションマウント制御手段と、
前記パーティションマウント制御手段の指示に従い、前記分割記憶領域をパーティションとして前記端末装置に用いられるファイルシステムにマウントするパーティションマウント手段と、
を更に備え、
前記パーティションマウント制御手段は、障害が生じていない場合は前記更新データが書込まれた分割領域を、障害が生じている場合は書込み以前にモジュールが存在した分割記憶領域をパーティションとして前記ファイルシステムにマウントするように前記パーティションマウント手段に指示を行い、
前記ダイナミックリンク手段は、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクする構成を有している。
【００１３】
この構成により、ダイナミックリンク機能を持ったＯＳ上における、モジュール単位でのソフトウエア更新時に、フォールトトレランス性を確保することができる。さらに、データ書込み回数削減により書込み時間を削減し、かつ記憶手段の書込み回数削減による記憶手段の長寿命化を図ることができる。
【００１４】
本発明のサーバは、ソフトウエア更新システムにおけるサーバであって、
ソフトウエアを、各々が１つ以上のプログラムファイルからなるモジュールおよびメインプログラムに分割するファイル単位分割手段と、
前記ファイル単位分割手段で分割された前記モジュールおよび前記メインプログラムを含むデータを記憶する記憶手段と、
前記記憶手段に記憶された前記データに変更を加えるモジュール変更手段と、
前記記憶手段に記憶されたメインプログラムをコンパイルし、共有ライブラリを利用する形態でのリンクを行うメインプログラムコンパイル手段と、
前記記憶手段に記憶されたモジュールをコンパイルするとともに共有ライブラリ化するモジュールコンパイル手段と、
通信回線を介して前記モジュールおよび前記メインプログラムを送信するための通信手段と、
を備えた構成を有している。
【００１５】
この構成により、ダイナミックリンク機能を持ったＯＳを搭載した端末装置に対して、モジュール単位でのソフトウエア更新を可能とすることができる。
【００１６】
また、本発明は、前記端末装置と、前記サーバとを備えたソフトウエア更新システムを提供するものである。
【００１７】
この構成により、ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新を可能とすることができる。
【００１８】
本発明のソフトウエア更新方法は、ソフトウエア更新可能な端末装置におけるソフトウエア更新方法であって、
各々が１つ以上のプログラムファイルを含む、共有ライブラリ化されたモジュールおよび前記共有ライブラリにリンクされたメインプログラムに分割されたソフトウエアを記憶するステップと、
更新すべきモジュールおよびメインプログラムを含む更新データを受信するステップと、
前記通信手段で受信した前記更新データを前記記憶手段に書込むステップと、
前記記憶手段に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするダイナミックリンクステップと、
前記ダイナミックリンクされたプログラムを実行するステップと、
を備えた。
【００１９】
この構成により、ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新を可能とすることができる。
【００２０】
また、本発明のソフトウエア更新方法は、
前記ソフトウエアを記憶手段に記憶するステップは、前記記憶手段に設けられた複数の分割記憶領域に前記モジュールおよび前記メインプログラムを記憶するものであり、
前記モジュールを書込むステップは、前記通信手段が受信した前記更新データを対応する分割記憶領域中の更新前データから書換えるものであり、
前記ソフトウエア更新方法は、
前記更新前データをバックアップするステップと、
前記書込み中の障害を検出するステップと、
前記検出手段によって検出された障害情報を記憶するステップと、
前記端末装置を再起動するステップと、
前記再起動手段による再起動後に、再起動前の更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報より判定する障害検出判定手段と、
前記障害検出判定手段によって障害があったと判定された場合に、前記バックアップされた更新前データを元の分割記憶領域に書き戻すステップと、
各々の前記分割記憶領域をパーティションとして前記端末装置に用いられるファイルシステムにマウントするステップと、
を更に備え、
前記ダイナミックリンクするステップは、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである。
【００２１】
この構成により、ダイナミックリンク機能を持ったＯＳ上における、モジュール単位でのソフトウエア更新時に、フォールトトレランス性を確保することができる。
【００２２】
さらに、本発明のソフトウエア更新方法は、
前記ソフトウエアを記憶手段に記憶するステップは、前記記憶手段に設けられた複数の分割記憶領域に前記モジュールおよび前記メインプログラムを記憶するものであり、
前記更新データを書込むステップは、前記通信手段が受信した前記更新データを前記分割記憶領域に書込むものであり、
前記ソフトウエア更新方法は、
前記更新データを書込むべき前記分割記憶領域を指定するステップと、
前記更新データの書込み中の障害を検出するステップと、
前記検出手段によって検出された障害情報を記憶するステップと、
前記端末装置を再起動するステップと、
前記再起動手段による再起動後に、再起動前の前記更新データの分割記憶領域への書込み中に障害が発生したか否かを前記障害情報より判定するステップと、
前記障害検出判定手段で判定された障害発生の有無により、障害が生じていない場合は前記更新データが書込まれた分割領域を、障害が生じている場合は書込み以前にモジュールが存在した分割記憶領域をパーティションとして前記ファイルシステムにマウントするように指示を行うステップと、
前記指示に従い、前記分割記憶領域をパーティションとしてファイルシステムにマウントするステップと、
を更に備え、
前記ダイナミックリンクするステップは、前記ファイルシステムにマウントされた前記分割記憶領域に記憶された前記モジュールおよび前記メインプログラムをダイナミックリンクするものである。
【００２３】
ダイナミックリンク機能を持ったＯＳ上における、モジュール単位でのソフトウエア更新時に、フォールトトレランス性を確保することができる。さらに、データ書込み回数削減により書込み時間を削減し、かつ記憶手段の書込み回数削減による記憶手段の長寿命化を図ることができる。
【００２４】
また、本発明のソフトウエア更新方法は、端末装置のソフトウエアを更新可能なサーバにおけるソフトウエア更新方法であって、
ソフトウエアを、各々が１つ以上のソースプログラムファイルからなるモジュールおよびメインプログラムに分割するステップと、
前記ファイル単位分割手段で分割された前記モジュールおよび前記メインプログラムを記憶するステップと、
前記記憶手段に記憶された前記データに変更を加えるステップと、
前記記憶手段に記憶されたメインプログラムをコンパイルし、共有ライブラリを利用する形態でのリンクを行うステップと、
前記記憶手段に記憶されたモジュールをコンパイルおよび共有ライブラリ化するステップと、
通信回線を介してモジュールおよびメインプログラムを前記端末装置へ送信するステップと、
を備えた。
【００２５】
この構成により、ダイナミックリンク機能を持ったＯＳを搭載した端末装置に対して、モジュール単位でのソフトウエア更新を可能とすることができる。
【００２６】
さらに、本発明は、コンピュータに、前記ソフトウエア更新方法の各ステップを実行させるためのソフトウエア更新プログラムを提供するものである。
【００２７】
このプログラムにより、ダイナミックリンク機能を持ったＯＳを搭載した端末装置に対して、モジュール単位でのソフトウエア更新を可能とすることができる。
【発明の効果】
【００２８】
本発明によれば、ダイナミックリンク機能を持ったＯＳ上において、モジュール単位でのソフトウエア更新が可能なシステムおよび方法を簡易に提供することができる。
【発明を実施するための最良の形態】
【００２９】
（第１の実施形態）
図１は、本発明の第１の実施形態を説明するためのソフトウエア更新システムを示す概略構成図である。図１に示すように、第１の実施形態のソフトウエア更新システムは、サーバ１と、サーバ１から通信回線２を介してデータを受信する端末装置３とを備える。端末装置３としては、たとえば、ＯＳとしてＬｉｎｕｘが組込まれ、Ｃ言語で記述されたアプリケーションプログラムを実行可能な組込み機器等である。ただし、本発明はこれに限られるものでなく、ＯＳやプログラム言語は他のものでも構わない。
【００３０】
サーバ１は、既存のアプリケーションプログラム（以下、アプリ）１０１をソースコードのファイル単位で分割するファイル単位分割手段１１と、ファイル単位分割手段１１でアプリ１０１が分割されてできたモジュール１０２およびメインプログラム１０３を記憶する記憶手段１２と、記憶手段１２に記憶されているモジュール１０２を変更するモジュール変更手段１３と、記憶手段１２に記憶されているモジュール１０２をコンパイルするとともに共有ライブラリ化するコンパイル・共有ライブラリ化手段１４と、記憶手段１２に記憶されているメインプログラム１０３を共有ライブラリを利用して実行するようにコンパイルするメインプログラムコンパイル・共有ライブラリリンク手段１５と、コンパイル・共有ライブラリ化手段１４によってコンパイル・共有ライブラリ化されたモジュール１０４およびメインプログラムコンパイル・共有ライブラリリンク手段１５によってコンパイルされたメインプログラム１０５を記憶する記憶手段１６と、記憶手段１６に記憶されているモジュール１０４およびメインプログラム１０５を通信回線２を介して端末装置３に送信する通信手段１７と、サーバ１の動作を制御する動作制御手段１８とを備える。動作制御手段１８は、所定のプログラムによって動作するプロセッサを主体に構成される。
【００３１】
端末装置３は、サーバ１から通信回線２を通じて送られてきたモジュール、あるいはメインプログラムを受信する通信手段３１と、受信したモジュールおよびメインプログラムを記憶手段３３に書込む書込み手段３２と、書込み手段３２によって書込まれたモジュール１０６およびメインプログラム１０７を記憶する記憶手段３３と、モジュール１０６とメインプログラム１０７をダイナミックリンクするダイナミックリンク手段３４と、ダイナミックリンクされたソフトウエアを実行する実行手段３５と、端末装置３の動作を制御する動作制御手段３６とを備える。動作制御手段３６は、所定のプログラムによって動作するプロセッサを主体に構成される。
【００３２】
以上のように構成されたソフトウエア更新装置について、以下その動作を説明する。なお、下記の説明の中ではすべての動作が、サーバ１では動作制御手段１８からの、端末装置３では動作制御手段３６からの各手段に対して出した指令に従って実行されるため、動作制御手段１８または３６からの指示であることは省略している。
【００３３】
まず、アプリ１０１全体を転送する際の動作について図２を参照しながら説明する。図２は、本発明の第１の実施形態に係るソフトウエア更新システムにおけるアプリ転送の動作説明のためのフロー図である。このアプリ１０１全体を転送する際の動作について、図１では、実線の矢印で示している。
【００３４】
まず、ファイル単位分割手段１３はアプリ１０１のソースコードを複数のモジュール１０２ａ、１０２ｂ、１０２ｃ、およびメインプログラム１０３に分割する（ステップ２０１）。なお、本実施形態では、アプリ１０１を３つのモジュールに分割する場合を例にとって説明するが、複数のモジュールに分割するのであれば、その数は限られるものではない。
【００３５】
また、アプリ１０１をどのように分割するかは、システムへの要求に応じて自由に行うことができる。例えば、各モジュールが均等な大きさになるように分割する、モジュール間の依存関係が極力すくなくなるように分割する、などの分割方法を本システムのユーザが選んでもよいし、それらの基準を自動的に評価するプログラムを用いて、自動的にモジュール分割してもよい。また、メインプログラム１０３は、たとえば、Ｃ言語の場合は、mainという名前の関数が含まれたモジュールが該当する。このメインプログラムもユーザが選んでもよいし、プログラム等で自動的に判別してもよい。
【００３６】
次に、コンパイル・共有ライブラリ化手段１４は、各モジュール１０２ａ、１０２ｂ、１０２ｃをコンパイルするとともに共有ライブラリ化し、それぞれ対応するモジュール１０４ａ、１０４ｂ、１０４ｃを生成する（ステップ２０２）。ここで、モジュール１０２ａを一つのファイルからなるとし、そのファイル名をfile-102a.cとした時、現在広く用いられているＯＳであるＬｉｎｕｘ、およびＬｉｎｕｘ上で広く用いられているコンパイラであるｇｃｃ（GNU Compiler Collection）を用いた場合、例えば下記のコマンドを実行することによってコンパイル、および共有ライブラリ化を行うことができる。
gcc -O -g -c -fPIC -o sub.o file-102a.c
gcc -shared -Wl,-soname,libsubs.so.1 -o libsubs.so.1 sub.o
【００３７】
ここで、上記コマンドを実行した際に生成されるファイルlibsubs.so.1が、共有ライブラリ化されたモジュールである。上の例では、モジュール１０２が一つのファイルから構成される場合について説明したが、Ｃ言語プログラム等のファイルが多数ある場合は１行目のコマンドを各ファイルに対して実行し、２行目のコマンドの最後にそのファイル名群を追加すればよい。
【００３８】
次にメインプログラムコンパイル・共有ライブラリリンク手段１５はメインプログラム１０３を、共有ライブラリを用いるものとしてコンパイルし、メインプログラム１０５を生成する（ステップ２０３）。ここで、メインプログラム１０３を一つのファイルからなるとし、そのファイル名をmain.cとした時、Ｌｉｎｕｘおよびｇｃｃを用いた場合、下記のコマンドを実行することによってコンパイルを行うことができる。
gcc -c -o main.o main.c
gcc -o main main.o libsubs.so.1 -ldl
【００３９】
上記コマンドを実行した際に生成されるファイルmainが、共有ライブラリを用いるものとしてコンパイルされたメインプログラムである。また、モジュール１０２と同様、メインプログラム１０３は複数のファイルを含んでいても良い。
【００４０】
次に通信手段１７は、コンパイルおよび共有ライブラリ化されたモジュール１０４ａ、１０４ｂ、１０４ｃと、コンパイルされたメインプログラム１０５を通信回線２を介して端末装置３に向けて送信する（ステップ２０４）。
【００４１】
端末装置３に設けられた通信手段３１はサーバ１から送信されて来たデータを受信し、書込み手段３１は受信したデータを記憶手段３２の中に格納する（ステップ２０５）。次に、ダイナミックリンク手段は３４がモジュール１０６ａ、１０６ｂ、１０６ｃとメインプログラム１０７をダイナミックリンクする（ステップ２０６）。実行手段３５はダイナミックリンクされたプログラムを実行する（ステップ１１８）。このようにして、サーバ１から端末装置３へのアプリ１００の転送が完了する。
【００４２】
次に、１つのモジュールのみが変更された場合の更新方法について、図３を参照しながら説明する。図３は、本発明の第１の実施形態に係るソフトウエア更新システムにおける更新方法の動作説明のためのフロー図である。ここでは、モジュール１０２ｂを、モジュール１０２ｂ（ｖｅｒ１）からモジュール１０２ｂ（ｖｅｒ２）へ更新する場合を例にとって説明する。なお、ｖｅｒ１は１つ目のバージョン、ｖｅｒ２は２つ目のバージョンであることを示す。また、メインプログラムを更新する場合や、複数のモジュールやメインプログラムを同時に更新する場合においても、同様である。なお、このモジュール１０２ｂを更新する際の動作について、図１では、破線の矢印で示している。
【００４３】
まず、開発者がモジュール変更手段１３を用いて、記憶手段１２に記憶されているモジュール１０２ｂを、ｖｅｒ１からｖｅｒ２へ変更する（ステップ３０１）。このとき、モジュール１０２ｂへの変更は内部の処理のみの変更とし、外部に影響のあるデータやインタフェースには変更がないものとする。また、モジュール変更手段１３は開発者が汎用のエディタなどを使って行ってもよいし、変更のための専用ツールを用いてもよい。
【００４４】
次にコンパイル・共有ライブラリ化手段１４はモジュール１０２ｂ（ｖｅｒ２）をコンパイルし共有ライブラリ化する（ステップ３０２）。このステップの実行方法は図２におけるステップ２０２と同等である。次に通信手段１１２はコンパイル・共有ライブラリ化されたモジュール１０４ｂ（ｖｅｒ２）を端末装置３に向けて通信回線２を介して送信する（ステップ３０３）。
【００４５】
端末装置３に設けられた通信手段３１はサーバ１から送信されてきたデータを受信し、書込み手段３１は受信したデータを記憶手段３２の中に格納する（ステップ３０４）。このとき、サーバ１から送信されて来たのはモジュール１０４ｂ（ｖｅｒ２）のみであるので、記憶手段３２に記憶されているモジュール１０６ｂ（ｖｅｒ１）のみ、新しいバージョン（ｖｅｒ２）に更新する。次にダイナミックリンク手段１１７はモジュール１０６ａ、１０６ｂ（ｖｅｒ２）、１０６ｃとメインプログラム１０７をダイナミックリンクする（ステップ３０５）。実行手段１１８はダイナミックリンクされたプログラムを実行する（ステップ３０６）。
【００４６】
このような本発明の第１の実施形態のソフトウエア更新システムによれば、ファイル単位での分割を行うファイル単位分割手段とモジュールを共有ライブラリに変換するコンパイル・共有ライブラリ化手段と、メインプログラムを共有ライブラリを使用するものとしてコンパイルするメインプログラムコンパイル・共有ライブラリリンク手段とを設けることにより、既存のアプリをジャンプテーブルなどを作成することなくファイル単位で任意のモジュールおよびメインプログラムに分割でき、モジュール単位でのデータ転送を行なう通信手段と、ダイナミックリンク手段とを備えることにより、既存のアプリをモジュール単位で更新でき、また、ダイナミックリンク機能を備えたＯＳでのソフトウエアの更新を簡便に実現することができる。
【００４７】
なお、本実施例では、モジュール分割するソフトウエアを既存アプリケーションとして説明したが、新規アプリケーション開発する際に利用することも可能である。既存アプリケーションを分割する際には、特別な操作が不要であることが利点として得られたが、新規アプリケーションを開発する際にも、モジュール分割されることを意識せずにアプリケーションを開発することが可能であるという利点を有する。また、モジュール分割を意識してアプリケーションを開発した際には、より効率的なモジュール分割が可能となり、ダイナミックリンクライブラリからの呼出し時間の短縮等、実行性能の向上などの利点が得られることは言うまでもない。
【００４８】
（第２の実施形態）
図４は、本発明の第２の実施形態を説明するためのソフトウエア更新システムを示す概略構成図である。同図において、第１の実施形態で説明した図１と重複する部分には同一の符号を付す。
【００４９】
図４に示すように、第２の実施形態に係る端末装置４では、記憶手段３３において、モジュール１０６ａ、１０６ｂ、１０６ｃおよびメインプログラム１０７を、Ｌｉｎｕｘにおける異なったパーティション上にそれぞれ格納する分割記憶領域４０ａ、４０ｂ、４０ｃ、４０ｄが設けられている。
【００５０】
また、端末装置４は、受信したデータを対応する分割記憶領域４０へ書込む書込み手段４１と、書込み手段４１がデータを書込む前にデータを退避させるバックアップ手段４２と、バックアップ手段４２から送られたデータを記憶するバックアップ記憶手段４３と、バックアップ記憶手段４３が記憶していたデータを元の分割記憶領域に書き戻す復元手段４４と、書込み手段４１の書込み動作中に書込みが失敗したか否かを判定する障害検出判定手段４５と、書込み手段４１の動作終了後、あるいは障害検出判定手段４５によって障害が検出された時点で起動され、端末装置４を再起動する再起動手段４６と、障害検出判定手段４５によって障害が検出されなかった場合に分割記憶領域４０ａ、４０ｂ、４０ｃ、４０ｄをそれぞれパーティションとし、ファイルシステム中にマウントするパーティションマウント手段４７と、端末装置４全体の動作を制御する動作制御手段４８と、書込み手段４１の動作中に障害が発生したか否かを検出する障害検出手段４９と、障害検出手段４９によって障害が検出されたか否かを記憶する障害記憶手段５０とを備える。ここで、動作制御手段４８は、所定のプログラムによって動作するプロセッサを主体に構成される。
【００５１】
以上のように構成されたソフトウエア更新装置について、以下その動作を説明する。図５は、第２の実施形態に係るファイルシステムの構成を説明するための図である。
【００５２】
図５に示すように、分割記憶領域４０ａ、４０ｂ、４０ｃ、４０ｄは、それぞれ、独立したファイルシステムとして構成されている。ここで、これらの分割記憶領域は、例えば、組込み機器等に広く用いられるフラッシュＲＯＭ等の整数個のブロック（セクター）から構成される。パーティションマウント手段４７の動作により、分割記憶領域４０ａ、４０ｂ、４０ｃ、４０ｄはＬｉｎｕｘ上のアプリケーションから図５のようなディレクトリ構造として見える。
【００５３】
つまり、分割記憶領域４１ｄをルートファイルシステムとし、そのルートファイルシステム中の/fsys1, /fsys2, /fsys3というマウントポイントに、それぞれ分割記憶領域４０ａ、４０ｂ、４０ｃがマウントされる。ルートファイルシステム中のディレクトリ/には、メインプログラム１０７がファイルとして格納される。/fsys1, /fsys2, /fsys3には、それぞれ、モジュール１０６ａ、モジュール１０６ｂ、モジュール１０６ｃが格納される。
【００５４】
本構成を用いることによって、各モジュールを更新するためには、各分割記憶領域の中のフラッシュＲＯＭのセクターを書き換えればよく、他の分割記憶領域中のモジュールは書き換える必要がない。各分割記憶領域は、フラッシュＲＯＭの１つのセクターからなる場合もあるし、合計数ＭＢのサイズを持つ多数のフラッシュＲＯＭのセクターから構成される場合もある。前者の場合には、バックアップ記憶手段４３の容量は１セクターを格納するだけの容量があればよく、メモリ容量への制限の厳しい組込み機器で用いる際には小容量のメモリの追加のみでフォールトトレランス性を実現することができる。後者の場合には、アプリを大きなモジュールに分割するだけでよく、モジュールの数が減少することによる実行効率向上や管理の煩雑さの減少を図ることができる。
【００５５】
図６は、第２の実施形態に係る端末装置におけるソフトウエア更新方法の動作説明のためのフロー図である。ここで、分割記憶領域４０ｂに記憶されているモジュール１０６ｂ（ｖｅｒ１）を、モジュール１０６ｂ（ｖｅｒ２）に書換える場合を例にとって説明する。なお、サーバ１０での動作は、図３におけるステップ３０１ないし３０３と同様である。
【００５６】
まず、動作制御手段４８からの指示に従い、バックアップ手段４２は分割記憶領域４１ｂの中のモジュール１０６ｂ（ｖｅｒ１）（ｖｅｒ１は１つめのバージョンであることを示す）をバックアップ記憶手段４３中に記憶する（ステップ６０１）。次に書込み手段４１はモジュール１０６ｂ（ｖｅｒ２）（ｖｅｒ２は２つめのバージョンであることを示す）を分割記憶領域４１ｂに書込む（ステップ６０２）。
【００５７】
次に、障害検出手段４９はステップ７０２における書込みが正常に終了したか、障害が発生して異常終了したかを検出する（ステップ６０３）。もし、正常終了した場合は障害なしを障害記憶手段５０に記憶させる（ステップ６０４）。もし、障害が発生して異常終了した場合は障害発生を障害記憶手段５０に記憶させる（ステップ６０５）。
【００５８】
次に、再起動手段４６はソフトウエアまたは端末装置４を再起動する（ステップ６０６）。再起動後に、障害検出判定手段４５は障害記憶手段５０に障害発生が記憶されているか否かを判定する（ステップ６０７）。もし、障害発生が記憶されていれば、復元手段４４はバックアップ記憶手段４３に記憶されているモジュール１０６ｂ（ｖｅｒ１）を分割記憶領域４０ｂに書き戻し（ステップ６１１）、障害記憶手段５０に障害なしを記憶させて、ステップ７０６に戻る（ステップ６１２）。
【００５９】
ステップ６０７において、もし障害なしが記憶されていれば、次にパーティションマウント手段４７は分割記憶領域４０ａ、４０ｂ、４０ｃ、４０ｄのそれぞれのパーティションを図５に示したディレクトリに構成の通りにマウントする（ステップ６０８）。ダイナミックリンク手段３４は全モジュール１０６ａ、１０６ｂ、１０６ｃとメインプログラム１０７とをダイナミックリンクする（ステップ６０９）。次に実行手段３５がダイナミックリンクしたソフトウエアを実行する（ステップ６１０）。
【００６０】
このような本発明の第２の実施形態のソフトウエア更新システムによれば、コンパイル・共有ライブラリ化手段と、メインプログラムコンパイル・共有ライブラリリンク手段と、分割記憶領域と、障害検出手段と、障害記憶手段と、バックアップ手段と、バックアップ記憶手段と、復元手段と、障害検出判定手段と、再起動手段と、パーティションマウント手段と、ダイナミックリンク手段とを備えることにより、モジュール単位でのソフトウエア更新を簡便にかつ小容量の記憶容量を用いて実現でき、またデータ書込み時の書込み障害が発生しても、動作を継続することができ、フォールトトレランス性を確保することができる。
【００６１】
なお、本実施の形態では、サーバで生成されたモジュールをそのままサーバから端末装置へ送信する方式について説明したが、たとえば特開平８−２５５１０４号公報に示されるような旧バージョンと新バージョンの差分を抽出する技術を用い、サーバから端末装置へ送信されるデータ量を削減することも可能である。
【００６２】
また、障害検出判定手段４５により障害が判定された場合は、端末装置３の表示器やスピーカ（不図示）等を通じて使用者に通知したり、通信手段３１に送信機能を持たせ、通信手段を介してサーバへ障害情報を通知してもよい。
【００６３】
（第３の実施形態）
図７は、本発明の第３の実施形態を説明するためのソフトウエア更新システムを示す概略構成図である。同図において、第１の実施形態で説明した図１と重複する部分には同一の符号を付す。
【００６４】
第３の実施形態に係る端末装置７は、記憶手段３３において、モジュール１０６ａ、１０６ｂ、１０６ｃおよびメインプログラム１０７を、Ｌｉｎｕｘにおける異なったパーティション上にそれぞれ格納する分割記憶領域７０ａ、７０ｂ、７０ｃ、７０ｄ、７０ｅが設けられている。
【００６５】
また、端末装置７は、分割記憶領域通信手段３１から受信したデータを、使用されていない分割記憶領域に書込み、その分割記憶領域、および受け取ったモジュールの旧バージョンが格納されていた分割記憶領域をパーティションマウント制御手段に伝える書込み手段７１と、書込み手段７１がデータを分割記憶領域に書込んでいる最中の書込み失敗の障害を検出する障害検出手段７２と、障害検出手段７２が検出した障害を記憶する障害記憶手段７３と、ブート時に障害記憶手段７３に障害発生が記憶されているか否かを判定する障害検出判定手段７４と、書込み中の障害発生時、あるいは書込み正常終了時にソフトウエアまたは端末装置７を再起動する再起動手段７５と、障害発生の有無により、分割記憶領域のマウント方法を制御するパーティションマウント制御手段７６と、パーティションマウント制御手段７６の指示に従い、パーティションのマウントを行うパーティションマウント手段７７と、端末装置７全体の動作を制御する動作制御手段７８と、通信手段３１が受信したデータを書込む先を指定する書込み先指定手段７９とを備える。ここで、動作制御手段７８は、所定のプログラムによって動作するプロセッサを主体に構成される。
【００６６】
以上のように構成されたソフトウエア更新装置について、以下その動作を説明する。まず、図８および図９を参照しながら、ファイルシステムの構造を説明する。図８は、第２の実施形態に係るファイルシステムの構成および動作を説明するための図であり、図９は、第３の実施形態に係るファイルシステムの構成および動作を説明するための図である。
【００６７】
分割記憶領域７０ａないし７０ｅは、図４と同じく、それぞれ、フラッシュＲＯＭの整数個のブロック（セクター）からなる独立したファイルシステムとして構成されており、図８では分割記憶領域７０ａ、７０ｂ、７０ｃはそれぞれ、ディレクトリ/fsys1, /fsys2, /fsys3にマウントされている。図８には第２の実施形態におけるモジュールのバックアップ、新たなモジュールの書込み、復元時のデータの流れを矢印で示している。第２の実施形態では、もし、書込み時に障害が発生しなくても、モジュールのバックアップ記憶手段へのバックアップと分割記憶領域への書込みの２回のデータ書込みが発生し、障害発生時にはさらに１回の書込みが発生する。
【００６８】
一方、本実施の形態では、バックアップ記憶手段の代わりに、分割記憶領域７０ｅを追加した。また、ダウンロードしたモジュールの書込みは分割記憶領域７０ｅに行う。書込み前には分割記憶領域７０ｂを/fsys2にマウントしていたが、書込み後は、分割記憶領域７０ｅを/fsys2にマウントし、分割記憶領域７０ｅ中の新しいモジュールを、あたかも分割記憶領域７０ｂ中にあった古いモジュールと入れ替えたように見せ、モジュールの更新を行う。すなわち、障害の生じていない分割記憶領域に記憶されているモジュールおよびメインプログラムを、ダイナミックリンクし、実行するものである。
【００６９】
次に、図１０を参照しながら端末装置７の動作について説明する。図１０は、第３の実施形態に係る端末装置におけるソフトウエア更新方法の動作説明のためのフロー図である。ここで、分割記憶領域７０ｂに記憶されているモジュール１０６ｂ（ｖｅｒ１）を、モジュール１０６ｂ（ｖｅｒ２）に更新する場合を例にとって説明する。なお、サーバ１０での動作は、図３におけるステップ３０１ないし３０３と同様である。
【００７０】
まず、動作制御手段７８からの指示に基づき、書込み先指定手段７９が書込み先を決定し、その決定に従い、書込み手段７１は、通信手段３１から得たデータを分割記憶領域７０ｅに書込む（ステップ１００１）。この時、書込み先指定手段７９は、その時点で利用されていない、バックアップ用の分割記憶領域を指定する。
【００７１】
次に障害検出手段７２は書込み中に障害が発生し、書込みが正常終了したか否かを判定する（ステップ１００２）。もし、障害が発生していたら、障害記憶手段７３に指示し、障害発生を記録する（ステップ１００４）。もし障害が発生していなければ、障害なしを記録する（ステップ１００３）。
【００７２】
次に再起動手段７５が端末装置７を再起動する（ステップ１００５）。次に再起動後、障害検出判定手段７４は、障害記憶手段７３に障害が記録されているかを判定する（ステップ１００６）。
【００７３】
もし、障害が記録されていれば、パーティションマウント制御手段７６は書換え前と同様に、分割記憶領域７０ａから７０ｄをマウントするよう、パーティションマウント手段７７に指示し、パーティションマウント手段７７はその指示に従ってマウントする（ステップ１００８）。
【００７４】
もし、障害が記録されていなければ、パーティションマウント制御手段７６は、分割記憶領域７０ｂをマウントしていたディレクトリ /fsys2に、代わりに分割記憶領域７０ｅをマウントし、その他のパーティションは従来通りマウントするよう、パーティションマウント手段７７に指示し、パーティションマウント手段７７はその指示に従ってマウントし、かつ分割記憶領域７０ｂは利用されていないことを書込み先指定手段７９に通知する（ステップ１００７）。
【００７５】
次に、動作制御手段７８は障害記憶手段７３に障害なしを記憶させる（ステップ１００９）。次にダイナミックリンク手段３４は全モジュールとメインプログラムをダイナミックリンクする（ステップ１０１０）。次に実行手段３５がダイナミックリンクしたソフトウエアを実行する（ステップ１０１１）。
【００７６】
このような本発明の第３の実施形態のソフトウエア更新システムによれば、コンパイル・共有ライブラリ化手段と、メインプログラムコンパイル・共有ライブラリリンク手段と、分割記憶領域と、書込み先指定手段と、障害検出手段と、障害記憶手段と、障害検出判定手段と、再起動手段と、パーティションマウント制御手段と、パーティションマウント手段と、ダイナミックリンク手段とを備えることにより、モジュール単位でのソフトウエア更新を簡便にかつ小容量の記憶容量しか用いずに実現で、またデータ書込み時の書込み障害が発生しても、動作を継続することができ、フォールトトレランス性を確保することができる。さらに、データ書込み回数削減により書込み時間を削減し、かつ不揮発メモリの書込み回数削減による長寿命化を図ることができる。
【産業上の利用可能性】
【００７７】
本発明のソフトウエア更新システムは、簡便なソフトウエア更新が可能な効果を有し、ダイナミックリンク機能を備えたＯＳを搭載した組込み機器等に有用である。
【図面の簡単な説明】
【００７８】
【図１】本発明の第１の実施形態を説明するためのソフトウエア更新システムを示す概略構成図
【図２】第１の実施形態に係るソフトウエア更新システムにおけるアプリ転送の動作説明のためのフロー図
【図３】第１の実施形態に係るソフトウエア更新システムにおける更新方法の動作説明のためのフロー図
【図４】本発明の第２の実施形態を説明するためのソフトウエア更新システムを示す概略構成図
【図５】第２の実施形態に係るファイルシステムの構成を説明するための図
【図６】第２の実施形態に係る端末装置におけるソフトウエア更新方法の動作説明のためのフロー図
【図７】本発明の第３の実施形態を説明するためのソフトウエア更新システムを示す概略構成図
【図８】第２の実施形態に係るファイルシステムの構成および動作を説明するための図
【図９】第３の実施形態に係るファイルシステムの構成および動作を説明するための図
【図１０】第３の実施形態に係る端末装置におけるソフトウエア更新方法の動作説明のためのフロー図
【符号の説明】
【００７９】
１  サーバ
２  通信回線
３、４、９  端末装置
１１  ファイル単位分割手段
１２、１６  記憶装置
１３  モジュール変更手段
１４  コンパイル・共有ライブラリ化手段
１５  メインプログラムコンパイル・共有ライブラリリンク手段
１７、３１  通信手段
１８、３６、４８、７８  動作制御手段
３２、４１、７１  書込み手段
３４  ダイナミックリンク手段
３５  実行手段
４０、７０  分割記憶領域
４２  バックアップ手段
４３  バックアップ記憶手段
４４  復元手段
４５、７４  障害検出判定手段
４６、７５  再起動手段
４７、７７  パーティションマウント手段
４９、７２  障害検出手段
５０、７３  障害記憶手段
７６  パーティションマウント制御手段
７９  書込み先指定手段
【図１】
2005056319.tif 000003
【図２】
2005056319.tif 000004
【図３】
2005056319.tif 000005
【図４】
2005056319.tif 000006
【図５】
2005056319.tif 000007
【図６】
2005056319.tif 000008
【図７】
2005056319.tif 000009
【図８】
2005056319.tif 000010
【図９】
2005056319.tif 000011
【図１０】
2005056319.tif 000012