(57)【要約】【課題】 本発明は、システムアップグレード方法に関し、特に、ＯＴＡ (Ｏｖｅｒ−ｔｈｅ−Ａｉｒ)プログラムメカニズムを用いた移動端末のプログラム(ファームウェア及び応用プログラムの作動を含む)をアップデートすることができる装置及び方法に関する。【解決手段】システムのバージョンアップグレード方法は、アップグレードパッケージプロセッサが、第１バージョン及び第２バージョンプログラムを入力され、二つのバージョンのプログラムの差によるアップグレードパッケージを生成するステップと、アップグレードパッケージサーバーがアップグレードパッケージを受信し、アップグレードパッケージの生成を一つ以上の受信装置に通知及びダウンロードするステップと、受信装置がアップグレードパッケージをダウンロードしてアップグレードパッケージを格納するメモリの領域にインストールし、アップグレード要求時、第１バージョンプログラムに選択されたアップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを生成し、アップグレードされた第２バージョンプログラムを用いてシステムを運用するステップと、からなる。【選択図】図１
2009536396.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上でプログラムバージョンをアップグレードする方法において、
第１バージョン及び第２バージョンプログラムの差に基づいてアップグレードパッケージを生成するステップと、
前記アップグレードパッケージの生成を、少なくとも一つの受信装置に通知するステップと、
前記受信装置が、前記アップグレードパッケージサーバーのアップグレードパッケージをダウンロードし、第１メモリに前記アップグレードパッケージをインストールし、アップグレード要求によって第２メモリに前記第２バージョンプログラムをロードするために、前記アップグレードパッケージと前記第１バージョンプログラムとを結合するステップと、
を備えることを特徴とするプログラムアップグレード方法。
【請求項２】
前記アップグレードパッケージは、前記アップグレードパッケージを前記第１バージョンプログラムと結合するためのインストールデータと、前記第１バージョンプログラムに結合されるアップグレードデータと、を含むことを特徴とする請求項１に記載のプログラムアップグレード方法。
【請求項３】
前記インストールデータは、前記第１バージョンプログラムと結合するためのヒストリーデータと、前記アップグレードパッケージを前記第１バージョンプログラムに結合するためのマップ情報を含むマップデータと、を有することを特徴とする請求項２に記載のプログラムアップグレード方法。
【請求項４】
前記アップグレードパッケージを生成する過程が、
前記第１及び第２バージョンプログラムを、設定されたサイズのブロックデータに分割して比較するステップと、
前記比較結果により、前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを発生するステップと、
前記インストールデータ及びアップグレードデータを結合して前記アップグレードパッケージとして生成するステップと、
を有することを特徴とする請求項１に記載のプログラムアップグレード方法。
【請求項５】
前記第１バージョンプログラムと、少なくとも一つの前記アップグレードパッケージデータとは、第１メモリに各々格納されることを特徴とする請求項４に記載のプログラムアップグレード方法。
【請求項６】
前記アップグレード要求は、システムが初期化された時、又は、ユーザーの要求がある時に、バージョンを選択することによって発生することを特徴とする請求項５に記載のプログラムアップグレード方法。
【請求項７】
前記マップデータは、前記第２バージョンプログラムのブロックデータを各々前記第１バージョンプログラムのブロックデータに結合するためのコマンド及びブロックインデックスを含むことを特徴とする請求項４に記載のプログラムアップグレード方法。
【請求項８】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋ Ｎｏは、当該コマンドの開始ブロック番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであることを特徴とする請求項７に記載のプログラムアップグレード方法。
【請求項９】
前記「変更」コマンドは、前記第１バージョンプログラムにおいて新しいブロックの追加、又は、ブロックの変更が行われることを意味することを特徴とする請求項８に記載のプログラムアップグレード方法。
【請求項１０】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ，ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ] [ｄｉｆｆｅｒｅｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋＮｏは、当該コマンドの開始ブロック番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであり、ｄｉｆｆｅｒｅｎｃｅは、前記第１及び第２バージョンプログラムのブロックデータの差を意味することを特徴とする請求項７に記載のプログラムアップグレード方法。
【請求項１１】
前記［ｄｉｆｆｅｒｅｎｃｅ］フィールドに、前記第１及び第２バージョンプログラムのブロックデータの差データがあると、当該ブロックの前記アップグレードデータは生成されないことを特徴とする請求項１０に記載のプログラムアップグレード方法。
【請求項１２】
前記第１バージョンプログラムは、前記受信装置の製造時にインストールされるプログラムであり、前記第２バージョンプログラムは、前記第１バージョンプログラムをアップグレードしたプログラムであり、前記第２バージョンプログラムは、複数個生成され、前記受信装置にインストールされることを特徴とする請求項１１に記載のプログラムアップグレード方法。
【請求項１３】
システムのバージョンをアップグレードするためのアップグレードパッケージを生成する方法において、
前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較するステップと、
前記比較結果によって前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むアップグレードデータを生成するステップと、
前記第１バージョンプログラムとの結合情報を有するヒストリーデータ及び前記アップグレードデータを結合してアップグレードパッケージとして生成するステップと、
前記アップグレードパッケージの生成を受信装置に通知するステップと、
前記アップグレードパッケージを少なくとも一つの前記受信装置にダウンロードし、不揮発性メモリに前記ダウンロードしたアップグレードパッケージをインストールし、アップグレード要請信号により前記アップグレードパッケージと前記第１バージョンプログラムとを結合して第２バージョンプログラムを生成し、前記第２バージョンプログラムを用いて前記受信装置を運用するステップと、
を備えることを特徴とするプログラムアップグレード方法。
【請求項１４】
前記第１バージョンプログラムと少なくとも一つの前記アップグレードパッケージとは、不揮発性メモリに各々格納されることを特徴とする請求項１３に記載のプログラムアップグレード方法。
【請求項１５】
前記アップグレード要請信号は、システム初期化又はユーザーの要求によって生成され、前記アップグレードパッケージは、複数のアップグレードパッケージから選択可能であることを特徴とする請求項１４に記載のプログラムアップグレード方法。
【請求項１６】
前記アップグレードパッケージは、前記アップグレードパッケージと前記第１バージョンプログラムとの関係を表すヒストリーデータを含むインストールデータを更に有することを特徴とする請求項１５に記載のプログラムアップグレード方法。
【請求項１７】
前記アップグレードデータは、コピー、変更、及びシフトコマンド中の一つを備え、前記アップグレードデータのコピーブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ]を含み、変更ブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｄａｔａ]を含み、シフトブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]を含み、ここで、前記[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ]は、開始するブロックのインデックスであり、[ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ]は、当該コマンドのブロック数を意味し、[ｄａｔａ]は、変更ブロックのデータであり、[ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]は、シフトブロックの開始ブロックインデックスを意味することを特徴とする請求項１６に記載のプログラムアップグレード方法。
【請求項１８】
前記シフトブロックデータの[ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]フィールドは、「第２バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]±ブロック数」、又は、「第２バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]−第１バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]」中のいずれか一つで表現されることを特徴とする請求項１７に記載のプログラムアップグレード方法。
【請求項１９】
システムのバージョンをアップグレードする方法において、
アップグレードパッケージプロセッサが、第１バージョン及び第２バージョンプログラムを受信し、前記二つのバージョンプログラムの差によるアップグレードパッケージを生成するステップと、
アップグレードパッケージサーバーが、前記アップグレードパッケージを受信し、前記アップグレードパッケージの生成を受信装置に通知するステップと、
前記受信装置が、前記アップグレードパッケージをダウンロードし、前記第１バージョンプログラムを格納する第１メモリのアップグレードパッケージ領域に、前記ダウンロードされたアップグレードパッケージをインストールし、アップグレード要求時に、前記第１バージョンプログラムに、前記アップグレードパッケージの中から選択された前記アップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを第２メモリに格納し、前記アップグレードされた第２バージョンプログラムを用いてシステムを運用するステップと、
を備えることを特徴とするプログラムアップグレード方法。
【請求項２０】
前記アップグレードパッケージを生成するステップが、
前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較するステップと、
前記比較結果により、前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを生成するステップと、
前記インストールデータ及びアップグレードデータを結合してアップグレードパッケージとして生成するステップと、を有することを特徴とする請求項１９に記載のプログラムアップグレード方法。
【請求項２１】
前記アップグレードパッケージをインストールする第１メモリは、
前記第１バージョンプログラムを格納する第１バージョン格納領域と、
前記インストールデータ及びアップグレードデータを格納するアップグレードパッケージ格納領域とを含み、
前記アップグレードパッケージ格納領域は、少なくとも二つ備えられることを特徴とする請求項２０に記載のバージョンアップグレード方法。
【請求項２２】
前記アップグレードパッケージのインストールデータは、前記第１バージョンプログラムの結合情報であるヒストリーデータと、前記第１バージョンプログラムとブロックマップのためのマップデータとを含み、
前記アップグレードパッケージを前記第１メモリにインストールするステップは、
前記アップグレードパッケージから前記ヒストリーデータを抽出し、当該アップグレードパッケージ格納領域のヒストリーデータ領域にインストールするステップと、
前記アップグレードパッケージから前記マップデータを抽出して当該アップグレードパッケージ格納領域にインストールするステップと、
前記アップグレードパッケージのアップグレードデータを、当該アップグレードパッケージ格納領域のアップグレードデータ領域にインストールするステップと、を有することを特徴とする請求項２１に記載のプログラムアップグレード方法。
【請求項２３】
前記第２バージョンプログラムを生成する過程が、
アップグレード要求時に、前記第１メモリにインストールされた最新バージョンのアップグレードパッケージをロードするステップと、
前記ロードされたアップグレードパッケージのマップデータによって前記第１バージョンプログラムに前記アップグレードデータを結合して前記第２バージョンプログラムを生成し、前記第２バージョンプログラムを前記第２メモリに格納するステップと、
を有することを特徴とする請求項２２に記載のプログラムアップグレード方法。
【請求項２４】
前記第１メモリは、不揮発性メモリであり、前記第２メモリは、揮発性メモリであることを特徴とする請求項２３に記載のプログラムアップグレード方法。
【請求項２５】
前記アップグレード要求は、システム初期化の実行後、生成されることを特徴とする請求項２４に記載の前記プログラムアップグレード方法。
【請求項２６】
システムのプログラムをアップグレードするためのアップグレードパッケージを生成する方法において、
前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較するステップと、
前記比較結果により前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを生成するステップと、
前記インストールデータ及びアップグレードデータを結合してアップグレードパッケージを生成するステップと、
を備え、
受信側システムが、前記アップグレードパッケージをダウンロードして前記格納している第１バージョンプログラムに前記アップグレードパッケージを結合してプログラムをアップグレードすることを特徴とするアップグレードパッケージの生成方法。
【請求項２７】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ] [ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋ Ｎｏは、当該コマンドの開始ブロックの番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであることを特徴とする請求項２６に記載のプログラムアップグレード方法。
【請求項２８】
前記「変更」コマンドは、前記第１バージョンプログラムにおいて新たなブロックの挿入またはブロックの変更を行うことを意味することを特徴とする請求項２７に記載のプログラムアップグレード方法。
【請求項２９】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ] [ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ] [ｄｉｆｆｅｒｅｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋ Ｎｏは、当該コマンドの開始ブロックの番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであり、ｄｉｆｆｅｒｅｎｃｅは、前記第１及び第２バージョンプログラムのブロックデータの差を意味することを特徴とする請求項２６に記載のプログラムアップグレード方法。
【請求項３０】
前記ｄｉｆｆｅｒｅｎｃｅに、第１及び第２バージョンプログラムのブロックデータの差データがあると、当該ブロックのアップグレードデータは生成されないことを特徴とする請求項２９に記載のプログラムアップグレード方法。
【請求項３１】
第１バージョン及び第２バージョンプログラムを入力され、前記二つのバージョンプログラムの差によるアップグレードパッケージを生成するアップグレードパッケージプロセッサと、
前記アップグレードパッケージの生成を受信装置に通知及びダウンロードするアップグレードパッケージサーバーと、
前記アップグレードパッケージをダウンロードし、前記第１バージョンプログラムを格納する第１メモリのアップグレードパッケージ領域に前記ダウンロードされたアップグレードパッケージをインストールし、アップグレード要求時に、前記第１バージョンプログラムに前記アップグレードパッケージを結合してアップグレードされた前記第２バージョンプログラムを第２メモリに格納する受信装置と
を備えることを特徴とするプログラムアップグレードシステム。
【請求項３２】
前記アップグレードパッケージプロセッサは、
前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較する比較器と、
前記比較結果により前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを生成するインストールデータ発生器と、
前記インストールデータ及び前記アップグレードデータを結合してアップグレードパッケージを生成するパッケージ発生器と、
を有することを特徴とする請求項３１に記載のプログラムアップグレードシステム。
【請求項３３】
前記受信装置は、
前記ダウンロードされた前記アップグレードパッケージを前記第１メモリの対応するアップグレードパッケージ領域にインストールするインストーラーと、
アップグレード要求時、前記第１メモリにインストールされた前記第１バージョンプログラム、及び前記アップグレードパッケージをロードし、前記マップデータにより前記アップグレードデータを前記第１バージョンプログラムに結合してアップグレードされた前記第２バージョンプログラムを生成した後、前記第２メモリに格納するトランスレータと、
を有することを特徴とする請求項３２に記載のプログラムアップグレードシステム。
【請求項３４】
前記アップグレード要求は、システム初期化又はユーザーの要求によって生成され、前記アップグレードパッケージのバージョンは選択可能であることを特徴とする請求項３３に記載のプログラムアップグレードシステム。
【請求項３５】
前記インストールデータは、前記アップグレードパッケージを前記第１バージョンプログラムと結合するためのヒストリーデータを更に備えることを特徴とする請求項３４に記載のシステムのプログラムアップグレードシステム。
【請求項３６】
前記マップデータは、前記第２バージョンプログラムのブロックデータを各々前記第１バージョンプログラムのブロックデータに結合するためのコマンド及びブロックインデックスを含むことを特徴とする請求項３５に記載のバージョンアップグレードシステム。
【請求項３７】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ] [ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋ Ｎｏは、当該コマンドの開始ブロックの番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであることを特徴とする請求項３５に記載のプログラムアップグレードシステム。
【請求項３８】
前記「変更」コマンドは、前記第１バージョンプログラムにおいて新たなブロックの挿入またはブロックの変更を行うことを意味することを特徴とする請求項３６に記載のプログラムアップグレードシステム。
【請求項３９】
前記マップデータは、[Ｃｍｄ] [ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ] [ｆｌａｇ] [ｄｉｓｔａｎｃｅ] [ｄｉｆｆｅｒｅｎｃｅ]を含み、Ｃｍｄは、コピー、変更、及びシフト中の一つのコマンドであり、ｓｔａｒｔ ｂｌｏｃｋ Ｎｏは、当該コマンドの開始ブロックの番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋは、当該コマンドに対応するブロックの数を意味し、ｆｌａｇは、前記アップグレードデータの状態を表す識別情報であり、ｄｉｓｔａｎｃｅは、前記第２バージョンプログラムのブロックが位置する前記第１バージョンプログラムのブロックインデックスであり、ｄｉｆｆｅｒｅｎｃｅは、前記第１及び第２バージョンブロックデータの差を意味することを特徴とする請求項３５に記載のプログラムアップグレードシステム。
【請求項４０】
前記ｄｉｆｆｅｒｅｎｃｅに、前記第１及び第２バージョンプログラムのブロックデータの差データがあると、当該ブロックの前記アップグレードデータは生成されないことを特徴とする請求項３９に記載の前記プログラムアップグレードシステム。
【請求項４１】
前記第１バージョンプログラムは、前記受信装置の製造時にインストールされるプログラムであり、前記第２バージョンプログラムは、前記第１バージョンプログラムをアップグレードしたプログラムであり、前記第２バージョンプログラムは、複数個生成され、前記受信装置にインストールされることを特徴とする請求項４０に記載のプログラムアップグレードシステム。
【請求項４２】
前記アップグレードパッケージプロセッサは、
前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較する比較器と、
前記第１バージョンプログラムの結合情報を含むインストールデータを発生するインストールデータ発生器と、
前記比較結果により前記第２バージョンプログラムのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むアップグレードデータを生成し、前記第１バージョンプログラムとの結合情報を有するヒストリーデータ及び前記アップグレードデータを結合してアップグレードパッケージを生成するパッケージ発生器と、
を有することを特徴とする請求項３１に記載のプログラムアップグレードシステム。
【請求項４３】
前記受信装置は、
前記ダウンロードされたアップグレードパッケージのアップグレードデータを分析して前記マップデータを生成し、前記ヒストリーデータ、前記マップデータ、及び前記アップグレードデータを含むアップグレードパッケージを前記第１メモリの対応するアップグレードパッケージ領域にインストールするインストーラーと、
アップグレード要求時、前記マップデータにより前記アップグレードデータを前記第１バージョンプログラムに結合してアップグレードされた第２バージョンプログラムを生成して前記第２メモリに格納するトランスレータと、
を有することを特徴とする請求項４２に記載のプログラムアップグレードシステム。
【請求項４４】
前記アップグレード要求は、システム初期化又はユーザーの要求によって発生し、前記パッケージのバージョンは選択可能であることを特徴とする請求項４３に記載の前記バージョンアップグレードシステム。
【請求項４５】
前記アップグレードデータは、コピー、変更、及びシフトコマンド中の一つを備え、前記アップグレードデータのコピーブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ]を含み、変更ブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｄａｔａ]を含み、シフトブロックデータは、[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]を含み、ここで、前記[ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ]は、開始するブロックのインデックスであり、[ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ]は、当該コマンドのブロック数を意味し、[ｄａｔａ]は、変更ブロックのデータであり、[ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]は、シフトブロックの開始ブロックインデックスを意味することを特徴とする請求項４４に記載のプログラムアップグレードシステム。
【請求項４６】
前記シフトブロックデータの[ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]は、「第２バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]±ブロック数」、又は、「第２バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]−第１バージョンプログラムの[ｂｌｏｃｋ Ｎｏ]」中のいずれか一つで表現されることを特徴とする請求項４５に記載のプログラムアップグレードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムアップグレード方法およびシステムに関し、特に、ＯＴＡ (Ｏｖｅｒ−ｔｈｅ−Ａｉｒ)プログラムメカニズムを用いた移動端末のプログラム(ファームウェア及び応用プログラムの作動を含む)をアップデートすることができるシステム及び方法に関する。
【背景技術】
【０００２】
携帯電話やＰＤＡ(Ｐｅｒｓｏｎａｌ ｄｉｇｉｔａｌ ａｓｓｉｓｔａｎｔｓ)のような電子製品は、ファームウェアや応用プログラムを含んでいる。しかし、前記端末システムに採択された全てのソフトウェア又はファームウェアは、プログラムのバグ又はプログラムのバージョン変更等によってプログラムをアップグレードしなければならない。ファームウェアや応用ソフトウェアを修理及びアップグレードするために、ユーザーは、端末機を供給する製造会社やサービスキャリア(ｓｅｒｖｉｃｅ ｃａｒｒｉｅｒ)等を訪問することになる。
【０００３】
この時、前記端末機が、無線通信機能を備える携帯端末機である場合、前記アップグレードサービスは、ＯＴＡ(ｏｖｅｒ ｔｈｅ ａｉｒ)形態でも可能である。前記ＯＴＡの場合、ユーザーの端末アップグレードのために、パッチソフトウェア(ｐａｔｃｈ ｓｏｆｔｗａｒｅ)を伝送してもらえるダウンロードモジュールと、現在の端末のソフトウェアバージョンをアップグレードすることができるソフトウェアパッケージ(ｓｏｆｔｗａｒｅ ｐａｃｋａｇｅ)を用いてアップグレードするアップグレード処理モジュールとが必要である。しかし、ほとんどの従来のＯＴＡが可能な装置は、ＯＴＡ作動の安全性に限界があった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、少なくとも前述した問題点を解決するために考案したものであり、無線通信をすることで伝達されたアップグレードパッケージによってファームウェアをアップデートすることのできるＯＴＡが可能な携帯端末機のプログラムアップグレードシステム及び方法に関する。
【課題を解決するための手段】
【０００５】
本発明は、移動端末に設置された旧バージョンのファームウェアと新バージョンのファームウェアとの差をアップグレードパッケージとして生成し、生成されたアップグレードパッケージと移動端末の旧バージョンのファームウェアとを組み合わせ、無線通信を用いて移動端末のファームウェアアップデートを可能にするＯＴＡが可能な移動端末のプログラムアップグレードシステム及び方法を提供する。
【０００６】
本発明は、無線通信をすることで受信されたアップグレードパッケージによってファームウェアのアップデートを可能にするＯＴＡが可能な移動端末のプログラムアップグレードシステム及び方法を提供する。ここで、アップグレードパッケージは、ヒストリーデータと、アップグレードパッケージ及びプログラムのアップグレードターゲットバージョンの関係を表すインデックス情報を含むマップデータと、二つのバージョンのプログラムの差を表すアップグレードデータとを含む。
【０００７】
本発明は、アップグレードパッケージの生産を可能にするＯＴＡが可能な移動端末のプログラムアップグレードシステム及び方法を提供する。アップデータパッケージは、新バージョンと旧バージョンとのファームウェアの差によって生成されたアップグレードデータと、アップグレードパッケージとファームウェアプログラムのアップグレードターゲットバージョンとの関係を表すヒストリーデータと、二つのバージョンのブロックをマップするマップデータとを有する。
【０００８】
本発明は、移動端末に設置された基準ファームウェアと、無線通信をすることでダウンロードされたアップグレードパッケージとを組み合わせ、移動端末のファームウェアのアップデートを可能にするＯＴＡが可能な移動端末のプログラムアップグレードシステム及び方法を提供する。
【０００９】
本発明は、移動端末に設置された基準ファームウェアと、無線通信をすることでダウンロードされた少なくとも一つのアップグレードパッケージとを組み合わせ、移動端末のファームウェアのアップデートを可能にするＯＴＡが可能な移動端末のプログラムアップグレードシステム及び方法を提供する。
【００１０】
前記目的を達成するための本発明に係るシステムのバージョンをアップグレードする方法は、アップグレードパッケージプロセッサが第１バージョン及び第２バージョンプログラムを入力され、前記二つのバージョンのプログラムの差によるアップグレードパッケージを生成するステップと、アップグレードパッケージサーバーが前記アップグレードパッケージを受信し、前記アップグレードパッケージの生成を一つ以上の受信装置に通知及びダウンロードするステップと、前記受信装置が前記アップグレードパッケージをダウンロードしてアップグレードパッケージを格納するメモリの領域にインストールし、アップグレード要求時、前記第１バージョンプログラムに前記アップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを生成し、前記アップグレードされた第２バージョンプログラムを用いてシステムを運用するステップと、を備えることを特徴とする。
【００１１】
ここで、前記アップグレードパッケージを生成する過程は、前記第１及び第２バージョンプログラムを、設定されたサイズのブロックデータに分割して比較するステップと、前記比較結果によって前記第２バージョンのブロックデータを前記第１バージョンプログラムにマップするためのマップデータ含むインストールデータを発生するステップと、前記インストールデータ及びアップグレードデータを結合してアップグレードパッケージとして生成するステップと、を備えることを特徴とする。
【００１２】
前記受信装置が、前記アップグレードプログラムを生成する過程は、前記ダウンロードされるアップグレードパッケージをメモリのアップグレードパッケージ領域にインストールし、前記メモリは、前記第１バージョンプログラムを格納する領域及び複数のアップグレードパッケージを格納する領域を備えるステップと、アップグレード要求時、前記マップデータによって前記アップグレードデータを前記第１バージョンプログラムに結合してアップグレードされた第２バージョンプログラムを生成するステップと、前記生成された第２バージョンプログラムで前記受信装置を運用するステップと、を有することを特徴とする。
【００１３】
また、前記アップグレードパッケージを生成する過程は、前記第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割して比較するステップと、前記比較結果によって前記第２バージョンのブロックデータを前記第１バージョンプログラムにマップするためのマップテータを含むアップグレードデータを発生するステップと、前記第１バージョンプログラムとの結合情報を有するヒストリーデータ及びアップグレードデータを結合してアップグレードパッケージを生成するステップと、を有することを特徴とする。
【００１４】
前記受信装置が、アップグレードプログラムを生成する過程は、前記ダウンロードされるアップグレードパッケージのアップグレードデータを分析してマップテータを生成し、前記ヒストリーデータ、マップテータ、及びアップグレードデータを含むアップグレードパッケージをメモリのアップグレードパッケージ領域にインストールし、前記メモリは、前記第１バージョンプログラムを格納する領域及び複数のアップグレードパッケージを格納する領域を備えるステップと、アップグレード要求時、前記マップデータによって前記アップグレードデータを前記第１バージョンプログラムに結合してアップグレードされた第２バージョンプログラムを生成するステップと、前記生成された第２バージョンプログラムで前記受信装置を運用するステップと、を有することを特徴とする。
【００１５】
また、前記目的を達成するための本発明の実施形態に係るシステムのバージョンをアップグレードする方法は、アップグレードパッケージプロセッサが第１バージョン及び第２バージョンプログラムを受信し、前記二つのバージョンのプログラムの差によるアップグレードパッケージを生成するステップと、アップグレードパッケージサーバーが前記アップグレードパッケージを受信し、前記アップグレードパッケージの生成を、一つ以上の受信装置に通知及びダウンロードするステップと、前記受信装置が前記アップグレードパッケージをダウンロードし、前記第１バージョンプログラムを格納する第１メモリのアップグレードパッケージ領域に、前記ダウンロードされたアップグレードパッケージをインストールし、アップグレード要求時、前記第１バージョンプログラムに、前記アップグレードパッケージの中から選択された、前記アップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを第２メモリに格納し、前記アップグレードされた第２バージョンプログラムを用いてシステムを運用するステップ、とを備えることを特徴とする。
【００１６】
また、前記目的を達成するための本発明の実施形態に係るシステムのプログラムをアップグレードするためのアップグレードパッケージを生成する方法は、前記第１及び第２バージョンプログラムを、設定されたサイズのブロックデータに分割して比較するステップと、前記比較結果によって前記第２バージョンのブロックデータを、前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを発生するステップと、前記インストールデータ及びアップグレードデータを結合してアップグレードパッケージとして生成するステップとからなり、受信側のシステムが、前記アップグレードパッケージをダウンロードして、前記格納している第１バージョンプログラムに前記アップグレードパッケージを結合してプログラムをアップグレードすることを特徴とする。
【００１７】
また、本発明に係るシステムのバージョン情報アップグレード装置は、第１バージョン及び第２バージョンプログラムを受信し、前記二つのバージョンのプログラムの差によるアップグレードパッケージを生成するアップグレードパッケージプロセッサと、前記アップグレードパッケージの生成を、受信装置に通知及びダウンロードするアップグレードパッケージサーバーと、前記アップグレードパッケージをダウンロードし、前記第１バージョンプログラムを格納する第１メモリのアップグレードパッケージ領域に、前記ダウンロードされたアップグレードパッケージをインストールし、アップグレード要求時、前記第１バージョンプログラムに、前記アップグレードパッケージの中から選択された、前記アップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを第２メモリに格納し、前記アップグレードされた第２バージョンプログラムを用いて受信装置として構成されることを特徴とする。
【００１８】
ここで、前記アップグレードパッケージプロセッサは、前記第１及び第２バージョンプログラムを、設定されたサイズのブロックデータに分割して比較する比較器と、前記比較結果によって前記第２バージョンのブロックデータを前記第１バージョンプログラムにマップするためのマップデータを含むインストールデータを発生するインストールデータ発生器と、前記インストールデータ及びアップグレードデータを結合してアップグレードパッケージとして生成するパッケージ発生器と、を有することを特徴とする。
【００１９】
前記受信装置は、前記第１バージョンプログラムを格納する領域、及び複数のアップグレードパッケージを格納する領域を備える第１メモリと、システムプログラムを格納する第２メモリと、前記ダウンロードされるアップグレードパッケージを第１メモリの対応するアップグレードパッケージ領域にインストールするインストーラーと、アップグレード要求時、前記第１メモリにインストールされた第１バージョンプログラム及びアップグレードパッケージをロードし、前記マップデータによって前記アップグレードデータを前記第１バージョンプログラムに結合してアップグレードされた第２バージョンプログラムを生成した後、前記第２メモリに格納するトランスレータと、を有することを特徴とする。
【発明の効果】
【００２０】
本発明では、システムのアップグレードバージョンを生成する時、基準バージョンとアップグレードバージョンとの差によるアップグレードパッケージを生成することができ、これによってアップグレードバージョンのプログラムを迅速に生成することができる。また、アップグレードバージョンをダウンロードする時、受信装置は、第１メモリに前記基準バージョンのプログラム及びアップグレードバージョンのアップグレードパッケージを独立的にインストールして保管し、前記保管された基準バージョン及びアップグレードバージョンを第２メモリでマージしてアップグレードされたプログラムを生成することによって、安定的にシステムのプログラムをアップグレードできるという利点がある。また、複数のアップグレードパッケージを保管していることによって、システムのアップグレードヒストリーを維持することができ、ユーザーは、必要時に必要とするバージョンのアップグレードプログラムにシステムプログラムを変更できるよいう利点がある。
【００２１】
また、前記第１バージョンプログラム自体のアップグレードは、第１メモリで実行されないため、アップグレードの失敗時、アップグレードを再実行することができ、これによって別途のフォールト・トレラント制御（fault tolerant control）の機能を有していなくても、フォールト・トレラント制御（fault tolerant control）機能を実行することができる。その理由は、本発明は、アップグレードが失敗しても、第１バージョンプログラムが第１メモリに有効であり、アップグレードが失敗してもいつでも再開することができる。アップグレード過程を実行する途中に、どんなフォールトが発生しても再度実行できるという利点がある。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好ましい実施形態の詳細な説明が添付された図面を参照して説明する。図面において、同一の構成には、なるべく同一の符号を付して表している。
【００２３】
下記の説明において、本発明をより理解しやすくするために、アップグレードバージョンのブロックの数、マクロブロックのサイズ等のような特定の詳細が表されている。これらの特定の詳細がなくても、また、これらの変形によっても、本発明が容易に実施できるということは、この技術分野における通常の知識を有する者にとって自明なことである。
【００２４】
本発明の実施形態において、「アップグレード」(ｕｐｇｒａｄｅ)とは、システムのプログラム(ファームウェア及びソフトウェア等)コードをアップグレードパッケージを用いて、新しいシステムプログラムを生成する動作を意味する。「アップグレードパッケージ」とは、アップグレードデータ及びインストールデータを含む情報を意味する。「アップグレードデータ」(ｕｐｇｒａｄｅ ｄａｔａ)とは、プログラムのアップグレード時、旧バージョンプログラムの代わりに、新バージョンプログラムを生成するためのデータを意味する。「インストールデータ」とは、プログラムのアップグレード時、旧バージョンを用いてアップグレードバージョンを生成する時のインストール情報を意味し、インストールデータは、ヒストリーデータ及びマップ(map)データから構成することができる。マップデータは、本発明の実施形態においては、新バージョンのデータを生成するために、コピー(ｃｏｐｙ)、移動(ｓｈｉｆｔ)、及び変更(ｍｏｄｉｆｙ)等のコマンド、及びこれらのコマンドを実行するためのブロック位置データを含むことができる。「第１バージョン」は、システムのオリジナルバージョンプログラム、又は、システムの基準となるプログラムにすることができる。「第２バージョン」は、アップグレードバージョンであり、第１バージョンプログラムをアップグレードしたプログラムにすることができる。この時、受信側の装置は、装置の製造時、第１バージョンプログラムがインストールされており、アップグレードプログラムが発生すると、第２バージョンアップグレードパッケージをダウンロードして格納することができ、また、一つ又はそれ以上の第２バージョンを格納することができる。従って、「アップグレードパッケージ」は、第１バージョンプログラムをアップグレードするための情報であり、第１バージョンプログラムから第２バージョンプログラムとして生成するときに必要なインストールデータ及びアップグレードデータを含むことができ、本発明の実施形態において、第２バージョンアップグレードパッケージは、第１バージョンプログラムをコピー（ｃｏｐｙ)、シフト(ｓｈｉｆｔ)、及び変更(ｍｏｄｉｆｙ)のコマンド及びブロック位置データ、そして、これに関するアップグレードデータを含むことができる。「プログラム」は、システムのファームウェア(ｆｉｒｍｗａｒｅ)及びソフトウェア(ｓｏｆｔｗａｒｅ)を含む用語として使われる。
【００２５】
「第１メモリ」とは、第１バージョン及び第２バージョンを格納するメモリを意味する。「第２メモリ」とは、第１バージョンプログラムに、第２バージョンアップグレードパッケージを用いて生成された、アップグレードされたプログラムを格納するメモリを意味する。ここで、第１メモリ及び第２メモリは、一つのメモリ上において第１領域及び第２領域に区分されたメモリとして構成することができ、また、別途の二つのメモリとして構成することもできる。本発明の実施形態においては、第１及び第２メモリが、物理的に別途の二つのメモリであると仮定し、ここで、各々「第１メモリ」は、不揮発性メモリ(ｎｏｎ‐ｖｏｌａｔｉｌｅ ｍｅｍｏｒｙ)、かつフラッシュメモリであり、「第２メモリ」は、揮発性メモリ(ｖｏｌａｔｉｌｅ ｍｅｍｏｒｙ)、かつＳＤＲＡＭであると仮定する。本発明の実施形態において、第１メモリは、第１バージョンプログラム、そして少なくとも一つの第２バージョンアップグレードパッケージを格納し、第２バージョンアップグレードパッケージは、各バージョンを識別するためのヒストリーデータ(更に、マップデータを含むことができる)、及びアップグレードデータを各々格納する。システムの起動時、又は、ユーザーの命令によってシステムは第１バージョンプログラムに第２バージョンアップグレードパッケージを用いて生成されたアップグレードプログラムを第２メモリに格納した後、アップグレードされた第２バージョンプログラムによってシステムを運用する。ここで、第１バージョンを基準プログラムにすることができる。第２バージョンは、アップグレードパッケージによって生成することができ、アップグレードパッケージは、インストールデータ、及びアップグレードデータから構成することができ、インストールデータは、ヒストリーデータ及び/又はマップデータから構成することができる。第１バージョンは、システムのオリジナルプログラム(又は、基準プログラム)にすることができ、第２バージョンは、第１バージョンとの差を有するアップグレードデータ、及び、これをインストールするためのインストールデータを含むことができる。従って、第２メモリに格納されるプログラムは、第１バージョンに第２バージョンを結合して生成されたプログラムにすることができる。
【００２６】
本発明の実施形態に係るシステムアップグレード及び維持補修の方法は、アップグレードパッケージを生成して伝送する送信システム、及び、アップグレードパッケージを受信してシステムプログラムをアップグレードする受信装置等から構成される。図１は、本発明の実施形態により、アップグレードパッケージを生成して伝送し、伝送されるアップグレードパッケージをダウンロードして、システムプログラムをアップグレードするシステムの構成を示す図である。
【００２７】
図１を参照すると、アップグレードパッケージプロセッサ１０は、第２バージョンプログラムの発生時、第１バージョンプログラムと比較して、その差によるアップグレードパッケージを生成した後、これをアップグレードパッケージサーバー２０に伝送する。この時、アップグレードパッケージプロセッサ１０は、アップグレードパッケージサーバー２０との連結方法により、無線(ａｉｒ  ｐｒｏｔｏｃｏｌｓ:ＣＤＭＡ、ＵＭＴＳ等)、近距離無線通信(ｂｌｕｅｔｏｏｔｈ、Ｚｉｇｂｅｅ等)、近距離有線通信(ＵＳＢ、ＵＡＲＴ)、有無線インターネット(Ｗｉｂｒｏ、Ｗｉｆｉ、Ｗｉｍａｘ等)方式で伝達することができる。又は、アップグレードパッケージサーバー２０と、アップグレードパッケージプロセッサ１０とは、一体型で構成することもできる。次に、アップグレードパッケージサーバー２０は、アップグレードパッケージが発生したことを複数の受信装置３０に通知(ｎｏｔｉｆｉｃａｔｉｏｎ)し、応答する受信装置３０に、アップグレードパッケージをダウンロードする。この時、受信装置のアップグレードパッケージのダウンロード方法は、上記のように、アップグレードパッケージサーバー２０及び受信装置３０の連結方法により、無線(ａｉｒ ｐｒｏｔｏｃｏｌｓ:ＣＤＭＡ、ＵＭＴＳ等)、近距離無線通信(ｂｌｕｅｔｏｏｔｈ、Ｚｉｇｂｅｅ等)、近距離有線通信(ＵＳＢ、ＵＡＲＴ)、有無線インターネット(Ｗｉｂｒｏ、Ｗｉｆｉ、Ｗｉｍａｘ等)方式等を使用することができる。
【００２８】
受信装置３０は、ダウンロードされるアップグレードパッケージを、第２バージョンプログラムを生成するための情報としてメモリに格納する。この時、受信装置３０のメモリは、第１メモリ及び第２メモリから構成することができる。ここで、第１メモリ及び第２メモリは、一つのメモリで構成することができ、また各々別途のメモリにすることもできる。ここで、第１メモリは、ダウンロードされる第１バージョンプログラム及びアップグレードパッケージを格納するメモリであり、第２メモリは、第１バージョンプログラムを、アップグレードパッケージによりアップグレードして生成された第２バージョンプログラムを格納するメモリである。すなわち、受信装置３０は、ダウンロードされるアップグレードパッケージを、第１メモリに、第２バージョンプログラムのアップグレード情報として格納する。その後、アップグレード要求時、受信装置は、第１バージョンプログラムにダウンロードされたアップグレードパッケージを結合(ｍｅｒｇｅ)して第２バージョンプログラムを生成し、生成された第２バージョンプログラムを第２メモリに格納する。その後、受信装置３０は、第２メモリに格納された、アップグレードされた第２バージョンプログラムによってシステムを運用する。
【００２９】
次に、アップグレードパッケージプロセッサ１０の動作を説明する。図２は、本発明の実施形態に係るアップグレードパッケージプロセッサ１０と、その周辺構成との関係を説明するための図である。
【００３０】
図２を参照すると、第１バージョンプログラム５０と第２バージョンプログラム５５とは、アップグレードパッケージプロセッサ１０に入力される。ここで、第１バージョンプログラム５０は、オリジナルバージョンプログラムにすることができ、第２バージョンプログラム５５は、アップグレードされたプログラムであり、受信装置３０においては、アップグレードデータの結合(ｍｅｒｇｅ、ａｓｓｅｍｂｌｉｎｇ)により、第１プログラム５０から生成されるプログラムである。アップグレードパッケージプロセッサ１０は、まず、第１バージョンから現在の第２バージョンへと移動するための第２バージョンアップグレードパッケージ(ｕｐｇｒａｄｅ ｐａｃｋａｇｅ)を生成する。第１バージョン及び第２バージョンプログラムを比較し、比較結果によってアップグレードパッケージを生成した後、アップグレードパッケージサーバー２０に伝達する。アップグレードパッケージは、アップグレードデータ及びインストールデータから構成することができる。その場合、アップグレードデータは、第１及び第２バージョンプログラムの差によるデータである。インストールデータは、ヒストリーデータ及びマップデータから構成することができ、ヒストリーデータは、第１バージョンプログラムと結合するためのデータにすることができ、マップデータは、第１及び第２バージョンプログラムの比較結果により、第１バージョンプログラムに、第２バージョンプログラムをマップするためのコピー、変更、シフトのコマンド、及びコマンドのインデックス情報を含むことができる。更に、アップグレードパッケージは、ヒストリーデータ及びマップデータのみから構成することもできる。その場合、マップデータは、変更されたデータをアップグレードデータとして生成せず、マップデータに含めてアップグレードパッケージを生成する。この時、アップグレードパッケージをアップグレードパッケージサーバー２０に伝送する方法は、その連結方法によって無線、近距離通信、有線通信方式のいずれかを使用することができる。
【００３１】
図３−図８は、アップグレードパッケージプロセッサ１０において、アップグレードパッケージを生成する方法を説明するための図である。本発明の実施形態に係るアップグレードパッケージは、アップグレードデータ、ヒストリーデータ、及びマップデータから構成されるアップグレードパッケージを生成することができ、また、ヒストリーデータ及びマップデータのみから構成されるアップグレードパッケージを生成することもできる。更に、本発明の実施形態において、第１バージョンプログラム(以下、第１バージョン又はＶ１と称する)を、第２バージョンプログラム(以下、第２バージョン又はＶ２と称する)にアップグレードする場合、アップグレード過程において、シフト動作を減らすために第１バージョンＶ１のプログラムにギャップ領域を割り当てることができる。
【００３２】
図３−図８を参照して、本発明の実施形態に係るアップグレードパッケージの生成方法を説明する。本発明の実施形態において、アップグレードパッケージプロセッサ１０は、第１バージョンプログラム(以下、第１バージョン及び/又はＶ１と称する)、及び第２バージョンプログラム(以下、第２バージョン及び/又はＶ２と称する)のデータを設定されたサイズのブロック(以下、マクロブロック(ｍａｃｒｏ ｂｌｏｃｋ:ＭＢ)と称する)のサイズで比較し、比較結果により、各ブロックの属性(コピー(Ｃ:ｃｏｐｙ)、変更(Ｍ:ｍｏｄｉｆｙ)、シフト(Ｓ:ｓｈｉｆｔ))を把握し、ブロックデータの属性に応じてアップグレードパッケージを生成する。この時、アップグレードパッケージは、のように、アップグレードデータ、ヒストリーデータ、及びマップデータから構成するでき、また、ヒストリーデータ及びマップデータのみから構成することもできる。マクロブロックは、データを特定のサイズに分割したものであり、１６インストラクション(ｉｎｓｔｒｕｃｔｉｏｎ)は１６bitであり、３２インストラクション(ｉｎｓｔｒｕｃｔｉｏｎ)は３２bitであることを意味する。
【００３３】
アップグレードパッケージプロセッサ１０が、マップデータを含むアップグレードパッケージを生成する場合、マップデータは、Ｃ(ｃｏｐｙ)、Ｍ(ｍｏｄｉｆｙ)、Ｓ(ｓｈｉｆｔ)のコマンド(ｃｏｍｍａｎｄ)を有し、マップデータの形態(ｍａｐ ｆｏｒｍａｔ)は、下記のように構成することができる。
【００３４】
[Ｃｍｄ][ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｆｌａｇ][ｄｉｓｔａｎｃｅ][ｄｉｆｆｅｒｅｎｃｅ]
マップデータにおいて、Ｃｍｄは、Ｃ、Ｍ、Ｓのいずれかである。ｓｔａｒｔ ｂｌｏｃｋ Ｎｏとは、当該コマンドの開始ブロック番号を意味し、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋとは、当該コマンドに対応するブロックの数を意味する。ｆｌａｇは、０、１、２から構成することができ、ｆｌａｇ０は、コピー(ｊｕｓｔ ｃｏｐｙ(Ｃｍｄ:Ｃ))、及びシフト(ｊｕｓｔ ｓｈｉｆｔ(Ｃｍｄ:Ｓ)の場合に使用できるフラグであり、ｆｌａｇ１は、Ｖ１プログラムからブロックデータを生成することができる場合(ｇｅｎｅｒａｔｅ ｄａｔａ ｆｒｏｍ Ｖ１(Ｃｍｄ:Ｍ))に使用できるフラグであり、ｆｌａｇ２は、Ｖ１プログラムからブロックデータを生成することができず、ブロックデータは、デルタパッケージ(ｄｅｌｔａ ｐａｃｋａｇｅ)である場合(ｄａｔａ ｉｓ ｉｎ ｄｅｌｔａ ｐａｃｋａｇｅ(ｎｏｔ ｕｓｅ Ｖ１)(Ｃｍｄ:Ｍ))に使用されるフラグである。ここで、デルタパッケージは、アップグレードデータにすることができる。ｄｉｓｔａｎｃｅとは、Ｖ２プログラムの当該ブロックが位置するＶ１プログラムのブロックインデックス情報を意味する。ｄｉｆｆｅｒｅｎｃｅとは、Ｖ２プログラムのブロックデータと、Ｖ１プログラムのブロックデータとの差の値を意味する。
【００３５】
本発明の実施形態において、アップグレードパッケージプロセッサ１０は、Ｖ１ブロック及びＶ２ブロックのデータが相違すると、変更ブロックデータを生成する。この時、Ｖ２の変更ブロックデータが確認されると、アップグレードパッケージプロセッサ１０は、Ｖ１の設定された区間のブロックを探索(ｓｅａｒｃｈｉｎｇ)し、Ｖ２変更ブロックデータと同一のデータがあるか否かを確認する。
【００３６】
図３−図５は、変更ブロックデータの発生時、現在のブロック位置で、設定されたブロック数(以下、探索区間と称する)だけ第１バージョンのブロックをスイングしながら、第２バージョンの変更ブロックデータと同一のブロックデータがあるか否かを検査する。ここで、探索区間は、２、４、８、１６、３２...のブロックに設定することができ、本発明の実施形態においては、１６ブロックと仮定する。アップグレードパッケージプロセッサ１０は、第２バージョンの変更ブロックを感知すると、現在の第２バージョンブロックに対応する第１バージョンのブロックインデックスの位置で、探索区間のブロックを検索する。この時、探索区間は、第１バージョンの現在のブロックインデックスの前後に位置する各１６個のブロック(すなわち、３２個のブロック)である。従って、Ｖ２プログラムにおいて、変更ブロックデータを確認すると、本発明の実施形態では、アップグレードパッケージプロセッサ１０は、Ｖ１プログラムの対応するブロック位置で、設定された探索区間内のブロックデータを探索し、同一のブロックデータがあるか否かを確認する。この時、Ｖ１プログラムの設定された区間内に同一のブロックデータがあれば、アップグレードパッケージプロセッサ１０は、アップグレードデータを生成せず、マップデータに対応するＶ１プログラムのブロックインデックスを含めてアップグレードパッケージを生成する。
【００３７】
この時、変更ブロックのマップデータを生成する方法は、一つのブロックを比較して生成することができ、複数のブロックを比較して生成することもできる。一般的に、第２バージョンの変更データは、複数のブロックにして生成することができる。すなわち、プログラムバージョンがアップグレードされる場合、アップグレードプログラム(すなわち、Ｖ２プログラム)は、基準となるプログラムにアップグレードされる内容が挿入及び/又は代替される方式の変更ブロックが含まれる形態として生成することができる。その場合、変更ブロックデータは、基準プログラム(ここでは、Ｖ１プログラム)と同一又は類似のブロックデータにすることができる。従って、本発明の実施形態においては、変更ブロックデータの確認時、複数のブロックを比較して変更ブロックデータのマップデータを生成する例について説明する。その場合、アップグレードパッケージプロセッサ１０は、変更ブロックを含む複数のブロックデータを、Ｖ１プログラムの探索区間内のブロックと比較し、変更ブロックのマップデータを生成する。ここで、複数のブロックを比較する場合、そのブロック数は２、４、８、１６...等に設定する。これは、アップグレードパッケージにおいて、マップデータを生成する時、２の倍数にて演算を処理し、演算の処理速度を向上させるためである。その場合、Ｖ２プログラムのブロックデータをＶ１プログラムのブロックデータと比較し、コピー又はシフトである場合、当該ブロックのインデックスを含むマップデータを発生する。しかし、変更ブロックデータが発生すると、アップグレードパッケージプロセッサ１０は、ブロックデータを比較し、探索区間内のＶ１プログラムのブロックデータと同一であれば、対応する第２バージョンブロックデータのコマンドを変更と決定し、当該ブロックのインデックスを確認してマップデータとして生成する。この時、複数のブロックの検索方法は、２ブロック単位で検索する場合、０、２、４、６、...等のように、偶数のブロックインデックス位置で検索し、４ブロック単位で検索する場合、０、４、８、...等のように、４番目ごとに、ブロックインデックス位置で検索し、８ブロック単位で検索する場合、０、８、１６等のように、８番目ごとに、ブロックインデックス位置で検索をする。これは、アップグレードパッケージプロセッサ１０が、この二つのバージョンのブロックデータを演算する時、複雑な演算を簡単にするためである。
【００３８】
下記の説明において、図３−図５は、探索区間が３２ブロック(現在のブロックインデックスの前後１６ブロック)であり、変更ブロックの検索範囲は、複数のブロックを検索する場合の例を示している。ここで、図３は、Ｖ２の変更ブロックデータと同一のブロックデータが、Ｖ１の探索区間内に存在する場合の例を示しており、図４は、Ｖ２の変更ブロックデータと類似のブロックデータが、Ｖ１の探索区間内に存在する場合の例を示しており、図５は、Ｖ２の変更ブロックデータと同一又は類似のブロックデータが、Ｖ１の探索区間内に存在しない場合の例を示している。
【００３９】
図３は、アップグレードパッケージプロセッサ１０が、Ｖ２プログラムの変更ブロックデータを、設定された区間内で見つけることができる場合のアップグレードパッケージの生成例を説明するための図である。
【００４０】
図３を参照すると、アップグレードパッケージプロセッサ１０は、Ｖ１及びＶ２プログラムをマクロブロック単位で比較する。比較過程において、Ｖ２プログラムの変更されたマクロブロックデータを、Ｖ１プログラムの特定区間内で見つけることができる場合、アップグレードパッケージプロセッサ１０は、変更ブロックデータをアップグレードデータとして生成せず、マップデータにＶ１の対応するブロックインデックス情報を含める。すなわち、アップグレードパッケージプロセッサ１０は、Ｖ２プログラムの変更ブロックデータと同一のブロックデータを有するＶ１プログラムのブロックインデックスを見つけた後、これをマップデータに表示する。
【００４１】
図３は、Ｖ２プログラムのブロック１６−１９が変更され、ブロック２０−２４がシフトされる例を示している。その場合、アップグレードパッケージプロセッサ１０は、Ｖ１プログラムの設定区間内において、Ｖ２プログラムのブロック１６−１９のデータと同一の値を有するＶ１ブロック１２、１３、８、９のデータを確認することができる。すなわち、アップグレードパッケージプロセッサ１０において、Ｖ２プログラムのブロック１６−１７は、Ｖ１プログラムのブロック１２−１３と同一であり、Ｖ２プログラムのブロック１８−１９は、Ｖ１プログラムのブロック８−９と同一であることが分かる。図３のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０は、下記[表１]のようなマップデータを発生することができる。
【００４２】
【表１】
2009536396.tif 000003
[表１]のようなマップデータにおいて、Ｖ２ブロック０−１５は、Ｖ１ブロック０−１５と同一であり、Ｖ２ブロック１６−１９は、各々Ｖ１ブロック１２、１３、８、９と同一であり、Ｖ２ブロック２０−２４は、Ｖ１ブロック１６−２０と同一であることを意味する。従って、図３のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０において、特定区間内でＶ２の変更ブロックを見つけることができる場合は、当該変更ブロックデータをＶ１の対応するブロックインデックスをマップしてマップデータを生成する。その場合、アップグレードパッケージプロセッサ１０は、ヒストリーデータ及び[表１]のようなマップデータを結合し、アップグレードパッケージとして生成する。
【００４３】
図４は、アップグレードパッケージプロセッサ１０が、Ｖ２プログラムの変更ブロックデータを、Ｖ１プログラムの設定された区間内で類似のブロックデータを見つけることができる場合において、アップグレードパッケージを生成する方法を説明するための図である。図４は、Ｖ２プログラムのブロック１６−１９が変更され、ブロック２０−２４がシフトされる例を示している。
【００４４】
図４を参照すると、アップグレードパッケージプロセッサ１０において、Ｖ２プログラムのブロック１６は、Ｖ１プログラムの設定区間内のブロック１２と同一であるが、ブロック１７は、Ｖ１プログラムの設定された探索区間内で、一致するブロックを見つけることができず、Ｖ２プログラムのブロック１８は、Ｖ１プログラムの設定された探索区間内で、一致するブロックを見つけることはできないが、ブロック１９は、Ｖ１プログラムの設定区間内のブロック７と同一であることが分かる。その場合、アップグレードパッケージプロセッサ１０において、変更ブロック１６及び１７は、探索区間内のＶ１のブロック１２及び１３と類似のブロックに決定し、変更ブロック１８及び１９は、探索区間内のＶ１のブロック６及び７と類似のブロックに決定する。従って、図４のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０は、下記[表２]のようなマップデータを生成することができる。
【００４５】
【表２】
2009536396.tif 000004
[表２]のようなマップデータにおいて、Ｖ２ブロック０−１５は、Ｖ１ブロック０−１５と同一であり、Ｖ２ブロック２０−２４は、Ｖ１ブロック１６−２０と同一であることを意味する。また、マップテータにおいて、Ｖ２ブロック１６及び１９は、各々Ｖ１ブロック１２及び７と同一であり、Ｖ２ブロック１７は、Ｖ１ブロック１３との差の値によってエントロピー符号化(ｃｏｄｅ(Ｂ、Ｋ))され、Ｖ２ブロック１８は、Ｖ１ブロック６との差の値によってエントロピー符号化(ｃｏｄｅ(Ｂ、Ｃ))されたことを意味する。従って、図４のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０において、特定区間内でＶ２の変更ブロックを見つけることができない場合には、当該変更ブロックデータをＶ１の対応するブロックインデックスをマップし、マップされたＶ１及びＶ２ブロックのデータの差をエントロピー符号化してマップデータを生成する。
【００４６】
図５は、アップグレードパッケージプロセッサ１０が、Ｖ２プログラムの変更ブロックデータを、設定された区間内で見つけることができない場合のアップグレードパッケージの生成例を説明するための図である。
【００４７】
アップグレードパッケージプロセッサ１０は、Ｖ１及びＶ２プログラムが入力されると、設定区間内において、Ｖ１及びＶ２プログラムを、設定されたサイズのマクロブロック単位で比較する。アップグレードパッケージプロセッサ１０は、二つのバージョンの比較結果によって各ブロックデータの属性(Ｃ、Ｍ、Ｓ)を把握した後、アップグレードデータを生成する。この時、変更ブロックのデータは、アップグレードデータであり、アップグレードパッケージに含まれるべきデータを意味する。この時、Ｖ１及びＶ２のブロックデータを比較する方法は、Ｖ２ブロックデータを、Ｖ１の前後の設定区間内で見つけることができるかを検査し、見つけることができなければ、二つのデータの差をそのままエントロピー符号化(ｅｎｔｒｏｐｙ ｃｏｄｉｎｇ)してアップグレードデータとして生成する。
【００４８】
図５は、ブロック１６−１９に４つのブロックデータＺ、Ｗ、Ｐ、Ｘが挿入された場合を仮定している。その場合、アップグレードパッケージプロセッサ１０は、設定された区間のブロックデータを検査し、同一の値を有するブロックデータがあるか否かを検査する。この時、設定された区間内に同一の値を有するブロックデータがなければ、当該ブロックの属性をＭに設定し、当該ブロックのデータをアップグレードデータに設定する。すなわち、アップグレードパッケージプロセッサ１０において、Ｖ２プログラムのブロック１６−１９は、Ｖ１プログラムの設定された区間内で、一致するブロックを見つけることができないことが分かる。図５のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０は、下記[表３]のようなマップデータを発生することができ、Ｚ、Ｗ、Ｐ、Ｘをエントロピー符号化してアップグレードデータを発生することができる。
【００４９】
【表３】
2009536396.tif 000005
[表３]のようなマップデータにおいて、Ｖ２ブロック０−１５は、Ｖ１ブロック０−１５と同一であり、Ｖ２ブロック２０−２４は、Ｖ１ブロック１６−２０と同一であることを意味する。更に、マップデータにおいて、Ｖ２ブロック１６−１９は、アップグレードデータのＺ、Ｗ、Ｐ、Ｘにエントロピー符号化(ｃｏｄｅ(Ｅ、Ｃ))されたことを意味する。従って、図５のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０において、特定区間内でＶ２の変更ブロックを見つけることができない場合は、当該変更ブロックデータのフラグを２(Ｆ=２)に設定して対応するＶ１プログラムのブロックがないことを表示し、別途のアップグレードデータを生成する。その場合、アップグレードパッケージは、ヒストリーデータ、マップデータ、及びアップグレードデータからなる。
【００５０】
また、図５のように、Ｖ２の変更ブロックデータが、Ｖ１の設定された区間内で見つからない場合、アップグレードパッケージプロセッサ１０は、アップグレードデータを生成せず、マップデータのみを用いてアップグレードパッケージを生成することもできる。下記[表４]は、Ｖ２の変更ブロックデータをＶ１の設定された区間内で見つけることができない場合のマップデータの構成例を示している。
【００５１】
【表４】
2009536396.tif 000006
従って、図５のようなＶ１及びＶ２プログラムを用いてアップグレードパッケージを生成する場合、アップグレードパッケージプロセッサ１０において、特定区間内でＶ２の変更ブロックを見つけることができない場合は、当該変更ブロックデータをエントロピー符号化してマップデータを生成する。[表４]のように、マップデータを発生する場合、アップグレードパッケージプロセッサ１０は、アップグレードデータを生成せず、ヒストリーデータ及び[表４]のようなマップデータを生成してアップグレードパッケージを生成することができる。
【００５２】
図６は、Ｖ１プログラムが、ギャップ領域を備え、Ｖ２プログラムにアップグレードされる時のシフト動作を改善する方法を説明する図である。また、図６及び図７は、Ｖ１プログラムの一部のブロックデータが、Ｖ２プログラムにおいては、削除される場合のアップグレードパッケージの生成例を説明するための図である。
【００５３】
図６を参照すると、アップグレードパッケージプロセッサ１０は、Ｖ１プログラムに基づいてＶ２プログラムを比較する時、新しいデータが追加又は削除されると、当該領域の次のブロックをシフトさせる。この時、変更ブロックのサイズによって、前へのシフトが発生すると、アップグレードパッケージプロセッサ１０は、Ｖ１プログラムの設定された区間を探索して変更ブロックと同一のブロックデータがあるか否かを確認し、ある場合には、Ｖ１ブロックの番号をＶ２の変更ブロックにマップさせる。しかし、同一のデータがない場合には、アップグレードパッケージプロセッサ１０は、Ｖ２の当該ブロックデータをエントロピー符号化してアップグレードデータとして生成する。
【００５４】
上記のように、Ｖ１プログラムをＶ２プログラムにアップグレードする場合、Ｖ２プログラムは、Ｖ１プログラムにおいて、多くのブロックのシフトが発生することがある。従って、上記のようなシフトを考慮して、図６に示すように、Ｖ１プログラムにデータを格納しないギャップ(ｇａｐ)領域を割り当てることができる。ここで、Ｖ１のギャップ領域は、Ｖ２プログラムのアップグレードデータを考慮して設定することができる。好ましくは、Ｖ２プログラムのシフト動作は、図６に示すようなギャップ領域を用いて、その次のコンポーネント(ｃｏｍｐｏｎｅｎｔ)に影響を及ぼさないように実行される。例えば、図６において、Ｖ２プログラムは、Ｖ１プログラムのブロック６−１０の５個のブロックデータを必要とせず、ブロック３−４、８−９、１３、１７−１９の８個のブロックが追加され、ブロック１５は、同じサイズで代替される(ｒｅｐｌａｃｅｄ ａｓ ｓａｍｅ ｓｉｚｅ)構造を有する。その場合、Ｖ２プログラムは、Ｖ１プログラムから５個のブロックが削除され、８個のブロックが追加されるため、図５に示すように、最終ブロックは、３個のブロックのシフトが発生する。この時、最終ブロックのシフトは、Ｖ１プログラムのギャップ領域で発生するため、Ｖ２プログラムの次のコンポーネントは、シフト動作なしで、最初ブロックからＶ１プログラムの当該コンポーネントと比較され、アップグレード動作を行うことができる。
【００５５】
図７を参照すると、ＦＯＴＡ(Ｆｉｒｍｗａｒｅ ｏｖｅｒ−ｔｈｅ−ａｉｒ)を支援するバイナリは、物理的にギャップ領域を有しており、アップグレード時、各コンポーネント領域間の侵犯を防止する。従って、Ｖ１プログラムは、図７のような構造を有することができる。すなわち、Ｖ１プログラムは、複数のコンポーネント(図７では、５個のコンポーネントから構成される場合を仮定している)から構成される。従って、図７のようなＶ１プログラムをアップグレードするＶ２プログラムが生成されると、アップグレードパッケージプロセッサ１０は、変更されたブロックデータが追加される場合にも、シフトされるブロックをギャップ領域にマップさせることができる。従って、アップグレードパッケージプロセッサ１０は、コンポーネント単位でアップグレード過程を実行することができ、従って、各コンポーネント単位で独立的なアップグレードパッケージを生成することができる。
【００５６】
上記のように、アップグレードパッケージプロセッサ１０は、ヒストリーデータ、マップデータ、及びアップグレードデータから構成されたアップグレードパッケージを生成することができる。その場合、マップデータは、Ｖ１及びＶ２プログラムの差によるブロックの属性(コピー、変更、シフト)及びブロックのインデックス情報を含み、アップグレードデータは、変更ブロックデータにすることができる。また、アップグレードパッケージプロセッサ１０は、マップデータ及びヒストリーデータのみからアップグレードパッケージを生成することができる。その場合、アップグレードパッケージプロセッサ１０は、マップデータに、Ｖ１及びＶ２プログラムの差によるブロックの属性(コピー、変更、シフト)及びブロックのインデックス情報の他、変更されたデータ(又は、変更ブロックのインデックス情報)を含めることができる。
【００５７】
図８は、ヒストリーデータ及びアップグレードデータから構成されるアップグレードパッケージを生成する方法を説明するための図である。その場合、アップグレードパッケージプロセッサ１０は、マップデータ発生器を備えず、パッケージ発生器１３０は、図８のようなアップグレードデータを発生する。ここで、アップグレードデータは、Ｖ２バージョンの各ブロックのインデックス情報、及びブロックデータ情報を含む構造を有することができる。
【００５８】
図８を参照すると、Ｖ１は、第１バージョンプログラムを示し、Ｖ２は、第２バージョンのアップグレードプログラムを表す。Ｖ１とＶ２とを比較すると、Ｖ２は、６、７、１３、１４、１５、１６、１７番のブロックデータが追加され、Ｖ１の９、１０、１１、１２番のブロックデータが削除された状態であることがわかる。この時、パッケージ発生器１３０は、Ｖ１及びＶ２の比較結果を分析し、Ｖ２の各ブロックのブロックインデックス(Ｖ１のようなブロックマップのためのインデックス)、及びブロックデータの情報を含まなければならない。本発明の実施形態に係るアップグレードデータは、マップデータと類似した構造を有することができる。すなわち、アップグレードデータのコマンドは、Ｃ(ｃｏｐｙ)、Ｍ(ｍｏｄｉｆｙ、ｉｎｓｅｒｔ ｏｒ ｒｅｐｌａｃｅ ａｓ ｓａｍｅ ｓｉｚｅ)、Ｓ(ｓｈｉｆｔ)から構成することができ、各コマンドのフォーマットは、下記のように構成することができる。
【００５９】
コピー(ｃｏｐｙ ｆｏｒｍａｔ)
[ｃｍｄ][ｓｔａｒｔ ｂｌｏｃｋ ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ]
変更(ｍｏｄｉｆｙ ｆｏｒｍａｔ)
[ｃｍｄ][ｓｔａｒｔ ｂｌｏｃｋ ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｄａｔａ]
シフト(ｓｈｉｆｔ ｆｏｒｍａｔ)
[ｃｍｄ][ｓｔａｒｔ ｂｌｏｃｋ ｎｏ][ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｐｒｅｖｉｏｕｓ ｖｅｒｓｉｏｎ ｐｏｓｉｔｉｏｎ]
上記のようなフォーマットを有する場合、コピーは、開始ブロックの番号、及びコピーするブロックの数を含む情報を有し、変更は、開始ブロックの番号、変更ブロックの数、及び各変更ブロックのデータが、順次に連結される情報を有し、シフトは、開始ブロックの番号、シフトブロックの数、及び最初シフトブロックに対応するＶ１のブロックインデックス等が含まれる。
【００６０】
従って、図８の場合、Ｖ２のコピーブロックに対するアップグレードデータは、Ｃ:０、６にすることができ、変更ブロックに対するアップグレードデータは、Ｍ:６、２、Ｘ、Ｙ及びＭ:１３、５、Ａ、Ｂ、Ｃ、Ｄ、Ｅにすることができ、シフトブロックに対するアップグレードデータは、Ｓ:８、３、６、Ｓ:１１、２、１３、及びＳ:１８、７、１５にすることができる。上記のようなアップグレードデータが伝送される場合、受信側では、第２バージョンであるＶ２プログラムにアップグレードする時、Ｖ２の０番のブロックから６個のブロックは、Ｖ１の０番から５番までのブロックをコピーし、６番ブロックから２個のブロックは、Ｘ及びＹを追加し、１３番ブロックから５個のブロックは、順次にＡ、Ｂ、Ｃ、Ｄ、Ｅを追加し、８番ブロックから３個のブロックは、Ｖ１の６、７、８番のブロックをシフトし、１１番ブロックから２個のブロックは、Ｖ１の１３、１４番ブロックをシフトし、１８番ブロックから７個のブロックは、各々Ｖ１の１５、１６、１７、１８、１９、２０、２１番のブロックをシフトすることを命令する意味になる。従って、図８のようなＶ１及びＶ２データが入力されると、アップグレードパッケージプロセッサ１０は、図８のアップグレードパッケージ(ｄｅｌｔａ ｐａｃｋａｇｅ)のアップグレードデータを[表５]のように生成することとなる。
【００６１】
【表５】
2009536396.tif 000007
その後、アップグレードパッケージプロセッサ１０は、アップグレードデータとヒストリーデータとを結合してアップグレードパッケージとして生成し、アップグレードパッケージは、アップグレードパッケージサーバー２０に伝達される。この時、パッケージ発生器１３０で生成されるアップグレードパッケージは、圧縮されてアップグレードパッケージサーバー２０に伝達されることもできる。上記のように、マップデータを生成せずにアップグレードデータを用いてＶ２プログラムのアップグレードパッケージを生成する場合、アップグレードパッケージの生成速度を向上させることができる。上記では、圧縮する例を挙げているが、圧縮機を用いずにデータのみからもパッケージの生成が可能である。
【００６２】
以下、図９−図１３の説明においては、アップグレードパッケージプロセッサ１０が、ヒストリーデータ、マップデータ、及びアップグレードデータから構成されるアップグレードパッケージを生成する場合、及びヒストリーデータとアップグレードデータとから構成されるアップグレードパッケージを生成する場合を具体的に説明する。
【００６３】
図９は、図２のアップグレードパッケージプロセッサ１０の構成例を示す図であり、第１及び第２バージョンプログラムを圧縮し、圧縮された二つのバージョンのプログラムを比較分析してマップデータ及びアップグレードデータを生成し、マップデータを含むインストールデータ及びアップグレードデータを合成して、アップグレードパッケージを生成するアップグレードパッケージ生成器の構成を示す図である。
【００６４】
図１０は、図２のアップグレードパッケージプロセッサ１０の更に他の構成例を示す図であり、第１及び第２バージョンを圧縮し、圧縮された二つのバージョンを比較分析してアップグレードデータを生成し、マップデータを含まないインストールデータ及びアップグレードデータを合成して、アップグレードパッケージを生成するアップグレードパッケージ生成器の構成を示す図である。
【００６５】
図１１は、図９のようなアップグレードパッケージプロセッサ１０で生成されるアップグレードパッケージの構成を示しており、図１２は、図１０のようなアップグレードパッケージプロセッサ１０で生成されるアップグレードパッケージの構成を示している。
【００６６】
図１３は、図２のアップグレードパッケージプロセッサ１０の更に他の構成例を示す図であり、圧縮していない第１及び第２バージョンを比較分析してアップグレードデータを生成し、マップデータを含むインストールデータ及びアップグレードデータを合成して、アップグレードパッケージを生成するアップグレードパッケージプロセッサ１０の構成を示す図である。ただし、図１０と類似した方法で、アップグレードパッケージプロセッサ１０は、マップデータを含まないインストールデータを生成した後、これをアップグレードデータに合成することによってアップグレードパッケージを生成することもできる。
【００６７】
図９−図１２を参照すると、第１バージョンプログラム５０と第２バージョンプログラム５５は、アップグレードパッケージプロセッサ１０に入力されるが、図９及び図１０のように、第１圧縮機１６０に入力されて圧縮された形態で入力されるか、又は図１３のように元の情報そのままで入力される。第１圧縮機１６０は、第１バージョンプログラムを設定されたサイズ（以下、マクロブロック（ｍａｃｒｏ  ｂｌｏｃｋ）と称する）に分割して圧縮し、また第２バージョンプログラムもマクロブロック単位で分割して圧縮する。圧縮された二つのバージョンのプログラムを比較して、二つのブロックデータが同一であるか否かを表示する。ここで、比較器１１０は、排他的論理和（ｅｘｃｌｕｓｉｖｅ  ＯＲ）演算回路を用いることができる。二つのバージョンのプログラムの対応するブロックデータが同一でない場合、比較器１１０は、設定された区間内の第１バージョンブロックデータを探索し、探索区間で二つのブロックのデータを比較し、一致するか否かを確認する。上記のように、二つのバージョンのブロックデータを探索した後、比較器１１０は、比較結果値及び対応する第１バージョンのブロックインデックス値をインストールデータ発生器１８０に伝達する。
【００６８】
すなわち、比較器１１０は、現在の第２バージョンブロックデータを第１バージョンの対応するブロックデータと比較し、同一である場合、比較結果値と共に当該ブロックのインデックスをインストールデータ発生器１８０に伝達する。しかし、第２バージョンのブロックデータと第１バージョンのブロックデータとが相違すると、比較器１１０は、第１バージョンプログラムの設定された探索区間（ｓｅａｒｃｈ  ｗｉｎｄｏｗ）内のブロックデータを第２バージョンの現在のブロックデータと比較し、同一のブロックデータがあるか否かを検査する。探索区間は、第１バージョンプログラムの現在ブロック位置の前後に位置する、設定された数のブロック（図３−図８の場合、前後１５ブロックで、探索区間は３０ブロックとなる）データであり、探索方法としては、第２バージョンのブロックデータを第１バージョンの探索区間内でスイングしながら各ブロックデータと比較する方法を用いることができる。その時、同一のブロックデータがあると、比較器１１０は、比較結果値と共に第１バージョンのブロックインデックスをインストールデータ発生器１８０に伝達する。ところが、同一のブロックデータがない場合には、比較器１１０は、隣接している第１バージョンブロックのインデックス及びこれによる比較結果値を前記インストールデータ発生器１８０に伝達する。
【００６９】
図３−図５を参照すると、第２バージョンのブロック０−１５を比較する場合、比較器１１０は、第１バージョンのブロック０−１５と同一の比較結果値を生成し、なお、比較結果値及び比較された第１及び第２バージョンのブロックインデックス０−１５を、各々インストールデータ発生器１１０に伝達する。また、第２バージョンのブロック１６−１９を比較する場合、比較器１１０は、第１バージョンのブロック１６−１９と相違するデータであることを確認し、設定された区間内の第１バージョンのブロックデータと比較を行う。設定された区間が１５ブロックであると、比較器１１０は、まず第１バージョンのブロック０−１５と比較して同一のブロックデータがあるか否かを確認し、その後、第１バージョン１７−３１のブロックと比較して同一のブロックデータがあるか否かを確認する。図３において、第２バージョンのブロック１６−１７（１８−１９）は、第１バージョンのブロック１２−１３（ブロック８−９）と同一であることを確認し、比較器１１０は、比較結果値及び第２バージョンのブロック１６−１７（１８−１９）、第１バージョンのブロック１２−１３（８−９）のインデックスをインストールデータ発生器１８０に伝達する。また、図４において、第２バージョンのブロック１６−１７（１８−１９）は、第１バージョンのブロック１２−１３（ブロック８−９）と類似していることを確認し、比較器１１０は、比較結果値及び第２バージョンのブロック１６−１７（１８−１９）、第１バージョンのブロック１２−１３（８−９）インデックスをインストールデータ発生器１８０に伝達する。ここで、比較器１１０は、ブロック１７及び１８は、比較結果値（ＫとＢとの差及びＣとＢとの差の値）及び比較対象の第１バージョンのブロックインデックス１３及び６をインストールデータプロセッサ１８０に伝達する。すなわち、比較器１１０において、先のブロックは、同一の比較結果値を有するのに対し、次のブロックが異なる比較結果値を有する場合には、上記のように、二つのブロックの比較結果値及び比較された第１バージョンのブロックインデックスをインストールデータ発生器１８０に伝達する。なお、図５のように、第２バージョンのブロック１６−１９が、第１バージョンの設定区間内のブロックにおいて一致しない場合、比較器１１０は、一致しないことを表す第２バージョンのブロック番号１６−１９をインストールデータ発生器１８０に伝達する。
【００７０】
インストールデータ発生器１８０は、図９に示すように、ヒストリーデータ発生器１２０及びマップデータ発生器１５０とから構成されるか、又は図１０に示すように、ヒストリーデータ発生器１２０のみから構成されてもよい。ヒストリーデータ発生器１２０は、第２バージョンのバージョン番号（ｖｅｒｓｉｏｎ  ｎｕｍｂｅｒ）を含む。すなわち、バージョン番号が５である場合、第２バージョンはバージョン番号５となり、第１バージョン及びバージョン番号が５である第２バージョンを結合してアップグレードするという意味である。マップデータ発生器１５０は、比較器１１０から出力される第１及び第２バージョンのブロックインデックス値、及び比較結果値を分析してアップグレードパッケージを生成するためのマップデータを生成する。マップデータ発生器１５０は、上記のように、比較器１１０から出力される第１バージョン及び第２バージョンのブロックインデックス、及び比較結果値に応じて［Ｃｍｄ］［ｓｔａｒｔ  ｂｌｏｃｋ  Ｎｏ，ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋ］［ｆｌａｇ］［ｄｉｓｔａｎｃｅ］［ｄｉｆｆｅｒｅｎｃｅ］の構造を有するマップデータを生成する。第１及び第２バージョンの同一のブロックインデックスにおいて同一の比較値が発生すると、マップデータ発生器１５０は、当該ブロックのコマンドをコピーＣと決定し、このようなブロック番号を累積する。上記のような動作は、第２バージョンの変更ブロックが発生するか、又は第１バージョンの削除ブロックが発生するまで続けられる。
【００７１】
また、比較器１１０が、第１及び第２バージョンの同一のブロックインデックスにおいて異なる比較値を生成すると、マップデータ発生器１５０は、第２バージョンの当該ブロックのコマンドを変更Ｍ又はシフトＳと決定することになる。この時、変更Ｍは２種類の形態で発生される。その一つは、挿入であり、もう一つは、代替である。マップデータ発生器１５０は、比較器１１０から出力される比較結果値及びブロックインデックスを連続して分析する。ブロックインデックスを分析し、第１バージョンに第２バージョンのデータを挿入する変更であると判断されると、マップデータ発生器１５０は、コマンドを変更Ｍとするマップデータを生成する。この時、マップデータ発生器１５０は、図３のように、設定された探索区間内で同一のブロックデータが存在する場合、図４のように、設定された探索区間内で類似したブロックデータが存在する場合、又は図５のように、設定された探索区間内で同一のブロックデータが存在しない場合に応じて、それぞれ異なる形態の変更マップデータを生成することができる。また、図５の場合、[表３]のように、マップデータとアップグレードデータとをそれぞれ独立して生成することができ、又は、[表４]のように、マップデータにアップグレードデータを含めて生成することができる。以下の実施形態では、[表３]のように、マップデータ及びアップグレードデータをそれぞれ生成する場合を仮定して説明する。
【００７２】
変更ブロックデータが、同じサイズの元のブロックに代替される場合、マップデータ発生器１５０は、二つのブロックの差データをエントロピー符号化してマップデータに含めることができる。変更ブロックが同じサイズのブロックに代替されると、続く第２バージョンの後のブロックはシフト動作が発生しない。すなわち、第１バージョンと同一のブロックインデックスを有する第２バージョンのブロックを同じサイズに変更する場合、続く第２バージョンの次のブロックはシフトされなくなる。また、第２バージョンが、第１バージョンの一部のブロックを削除するプログラムである場合、マップデータ発生器１５０は、続く第２バージョンの次のブロックをシフトさせるマップデータを生成する。その場合、シフト動作は、第１バージョンの削除されたブロックインデックスにシフトされなければならない。
【００７３】
変更ブロックが挿入される場合、その後のブロックデータはシフトされなければならない。そのため、マップデータ発生器１５０は、変更ブロックを挿入するマップデータを生成した後、入力される比較器１１０の出力を分析し、第１バージョンのブロックインデックスと第２ブロックのブロックインデックスとを分析する。第２バージョンのブロックインデックス、シフトするブロックの数、また第１バージョン及び第２バージョンのシフトブロック数を含むマップデータを生成する。
【００７４】
上記のような過程でマップデータを生成する場合、マップデータ発生器１５０は、図３のような第２バージョンが発生すると、[表１]のようなマップデータを生成でき、図４のような第２バージョンが発生すると、[表２]のようなマップデータを生成でき、図５のような第２バージョンが発生すると、[表３]又は[表４]のようなマップデータを生成することができる。以下、説明する実施形態では、図５のような第２バージョンである場合に、マップデータ発生器１５０は、[表３]のようなマップデータを生成するものとする。
【００７５】
パッケージ発生器１３０は、第１圧縮機１６０から出力される第２バージョンの圧縮されたブロックデータ、及びマップデータ発生器２３でマップデータを分析してアップグレードパッケージを発生する。この時、パッケージ発生器１３０は、マップデータ発生器１５０から発生するマップデータを分析し、アップグレードデータを発生するか否かを決定する。すなわち、パッケージ発生器１３０は、マップデータのコマンドを分析して、コピーＣ及びシフトＳのコマンドを有するブロックである場合には、アップグレードデータを発生しない。また、マップデータのコマンドが変更Ｍである場合、パッケージ発生器１３０は、マップデータが当該ブロックのデータを含んでいるか、又は当該ブロックのデータをインデックスする第１バージョンのブロックインデックスを含む場合にも、アップグレードデータを発生しない。しかし、マップデータのコマンドが変更Ｍであり、マップデータが、第２バージョンの当該ブロックデータを変更するための第１バージョンのインデックス又はエントロピーデータを含まない場合、パッケージ発生器１３０は、圧縮された第２バージョンのブロックデータを用いてアップグレードデータを生成する。すなわち、パッケージ発生器１３０は、マップデータを分析し、コピーＣ及びシフトＳコマンドを有するマップデータであると、アップグレードデータを生成しない。また、変更Ｍコマンドである場合には、フラグを分析し、フラグＦ＝１である場合には、アップグレードデータを生成せず、Ｆ２フラグの場合にのみアップグレードデータを生成する。
【００７６】
その後、パッケージ発生器１３０は、インストールデータ発生器１８０で発生するインストールデータに、アップグレードデータをマージ（ｍｅｒｇｅ）して、アップグレードパッケージとして生成する。この時、インストールデータは、ヒストリーデータ又はヒストリーデータ及びマップデータである。すなわち、図９のように、インストールデータ発生器１８０がヒストリーデータ発生器１２０及びマップデータ発生器１５０から構成された場合、インストールデータは、ヒストリーデータ及びマップデータとなり、図１０のように、インストールデータ発生器１８０が、ヒストリーデータ発生器１２０のみから構成された場合には、インストールデータはヒストリーデータとなる。
【００７７】
図１０を参照すると、インストールデータ発生器１８０は、図９とは異なり、マップデータ発生器１５０を備えていない。パッケージ発生器１３０は、第２バージョンのブロックインデックス値に対応してマップされる第１バージョンのブロックインデックス値、及び、ブロックデータに関する情報を含むアップグレードデータを生成する。この時、アップグレードデータは、マップデータ発生器１５０と類似したコマンドを備え、コピーＣ、変更Ｍ、及びシフトＳコマンドのフォーマットは、それぞれＣ：［ｓｔａｒｔ  ｂｌｏｃｋ  ｎｏ］［ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋ］、Ｍ：［ｓｔａｒｔ  ｂｌｏｃｋ  ｎｏ］［ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋ］［ｄａｔａ］及びＳ：［ｓｔａｒｔ  ｂｌｏｃｋ  ｎｏ］［ｎｕｍｂｅｒ  ｏｆ  ｂｌｏｃｋ］［ｐｒｅｖｉｏｕｓ  ｖｅｒｓｉｏｎ  ｐｏｓｉｔｉｏｎ］のような構成にすることができる。すなわち、アップグレードデータにおいて、Ｖ２のブロックデータをＶ１からコピーするコマンドは、開始ブロックの番号及びコピーするブロックの数を含む情報を有するように構成し、ブロックデータをＶ１に追加又は変更するコマンドは、開始ブロックの番号、変更ブロックの数、及び各変更ブロックのデータが順次に連結される情報を有するように構成し、Ｖ１のブロックデータをシフトするコマンドは、開始ブロックの番号、シフトブロックの数、及び最初シフトブロックに対応するＶ１のブロックインデックスの情報を有するように構成する。
【００７８】
次いで、パッケージ発生器１３０は、アップグレードデータとヒストリーデータとを結合してアップグレードパッケージとして生成し、アップグレードパッケージは、アップグレードパッケージサーバー２０に伝達される。パッケージ発生器１３０で生成されるアップグレードパッケージは、第２圧縮機１４０によって圧縮され、アップグレードパッケージサーバー２０に伝達されることもできる。上記のように、マップデータを生成せず、アップグレードデータを用いてＶ２プログラムのアップグレードパッケージを生成する場合、アップグレードパッケージ生成速度を向上させることができる。
【００７９】
従って、アップグレードパッケージは、ヒストリーデータ、マップデータ、及びアップグレードデータ、又は、ヒストリーデータ及びアップグレードデータによって構成することができる。それにより、パッケージ発生器１３０で生成されるアップグレードパッケージは、図９のように、ヒストリーデータ及びマップデータから構成されるインストールデータが生成される場合、図１１のように生成され、また、図１０のように、ヒストリーデータのみから構成されるインストールデータが生成される場合には、図１２のように生成される。
【００８０】
その後、パッケージ発生器１３０から出力されるアップグレードパッケージは、第２圧縮機１４０で圧縮され、アップグレードパッケージサーバー２０に伝達される。ここで、第２圧縮機１４０は省略することができる。しかし、送信効率を高めるために、図９に示すように、第２圧縮機１４０によって圧縮することもできる。なお、第１圧縮機１６０で第１及び第２バージョンプログラムを圧縮する場合、第１圧縮解除機１６５は、圧縮された第１及び第２バージョンプログラムを圧縮解除する。これは、第１圧縮機１６０で圧縮された第１及び第２バージョンプログラムが正常に圧縮されたのかを確認するものであり、圧縮時に誤りが発生した場合、第１圧縮機１６０を制御し、再圧縮するように制御することができる。
【００８１】
図９及び図１０は、アップグレードパッケージプロセッサ１０が、第１及び第２バージョンを圧縮した後、二つのバージョンを比較分析し、アップグレードパッケージを生成する構造を示している。その場合、比較器１１０は、圧縮された二つのバージョンのプログラムを比較することになる。しかし、比較器１１０は、第１及び第２バージョンを圧縮していないデータで比較することができる。図１３は、のように、第１及び第２バージョンプログラムを圧縮していないデータで比較して、アップグレードパッケージを生成する構造を示している。その場合、図７のような構成を有するアップグレードパッケージプロセッサ１０の比較器１１０は、受信される第１及び第２バージョンプログラムを設定されたサイズのブロックデータに分割し、ブロック単位の第１及び第２バージョンのデータを上記のような方法で探索及び比較する。従って、図１３において、第１及び第２バージョンを圧縮する構成を除いた残りの構成は、図９と同一であり、その動作も同一である。また、図１３は、インストールデータ発生器１８０が、ヒストリーデータ及びマップデータを生成する例を示しているが、図１０のように、インストールデータ発生器１８０がヒストリーデータ発生器１２０のみを備えることもできる。
【００８２】
上記のように、アップグレードパッケージプロセッサ１０は、第１バージョンに基づいて第２バージョンを比較し、比較結果に応じてインストールデータを含むアップグレードパッケージを生成する。この比較過程において、第２バージョンが、第１バージョンに新しいデータを追加又は削除する変更が生じると、第２バージョンのブロックは、第１バージョンの当該領域に続く次のブロックに比べて、シフトされる結果になる。すると、第２バージョンのブロックは、第１バージョンで変更されたブロックに沿って前へシフトされるか、又は後へシフトされるという結果を招く。また、第２バージョンの変更されたブロックは、第１バージョンの探索区間内で同一のブロックが存在するのかを探索し、探索結果に応じて同一のブロックデータを有する第１ブロックのブロックインデックスを指定するか、又は当該ブロックのデータをエントロピー符号化することになる。また、上記のように、変更ブロック以後の第２バージョンのブロックデータは、第１バージョンのブロックデータにおいて、挿入又は削除されたブロック数だけシフトされる。それにより、アップグレードパッケージプロセッサ１０は、第１バージョン及び第２バージョンを比較した後、コマンドコピーＣ、変更Ｍ、及びシフトＳからなるマップデータ（マップデータを用いない場合には、アップグレードデータにこれを含めて生成することができる）を生成し、マップデータ、ヒストリーデータ、及びアップグレードデータ（マップデータを生成しない場合には、ヒストリーデータ及びアップグレードデータ）からなる第２バージョンのアップグレードパッケージを生成し、アップグレードパッケージサーバー２０に伝送する。アップグレードパッケージプロセッサ１０において、アップグレードパッケージを伝送する方法は、アップグレードパッケージサーバー２０との連結方法により、無線、近距離通信、又は有線通信方法を用いることができる。
【００８３】
すると、アップグレードパッケージサーバー２０は、アップグレードパッケージをダウンロードできる受信装置３０に、新しいアップグレードパッケージの発生を通知する。そして、この通知に応答する受信装置３０に、アップグレードパッケージをダウンロードする。このように、アップグレードパッケージサーバー２０は、アップグレードパッケージの発生を、各受信装置に通知する通知サーバー（ｎｏｔｉｆｉｃａｔｉｏｎ  ｓｅｒｖｅｒ）を更に備えることができる。
【００８４】
受信装置３０は、ダウンロードするアップグレードパッケージの発生を通知されると、それに応答を行い、アップグレードパッケージサーバー２０からアップグレードパッケージをダウンロードする。図１４は、本発明の実施形態に係る受信装置の構成を示す図である。
【００８５】
図１４を参照すると、ダウンローダー（ｄｏｗｎ−ｌｏａｄｅｒ）２２０は、アップグレードパッケージサーバー２０からダウンロードするアップグレードパッケージをダウンロードし、インストーラー（ｉｎｓｔａｌｌｅｒ）２３０は、ダウンロードされたアップグレードパッケージのインストールデータ及びアップグレードデータを分析し、第１メモリ２５０に格納する。ここで、インストールデータは、ヒストリーデータ及びマップデータから構成されるか、又はヒストリーデータのみから構成される。インストールデータが、マップデータを含まない場合、第２バージョンの第１バージョンマップ情報は、アップグレードデータに含まれる構造を有することができる。この時、インストーラー２３０は、マップデータが含まれていないインストールデータを受信すると、第１バージョンとアップグレードデータとを比較分析し、マップデータを生成するか、又はマップデータを生成しない。インストーラー２３０でマップデータを生成しない場合、トランスレータ２４０でアップグレードデータのマップ情報を用いて、アップグレードパッケージを直接第１バージョンに結合することもできる。また、インストーラー２３０は、第１メモリ２５０の第２バージョンのアップグレードパッケージを格納する領域で、ヒストリーデータ、マップデータ、及びアップグレードデータをマッチさせて格納する。第１メモリ２５０には、オリジナルバージョンである第１バージョン、及び第１バージョンを第２バージョンに生成するための少なくとも一つのアップグレードパッケージが格納される。アップグレードパッケージは、少なくとも一つであって、最大Ｎ個のアップグレードパッケージを格納することができる。本発明の実施形態では、Ｎ＝６個と仮定する。
【００８６】
なお、上記のように、新バージョンのアップグレードパッケージをダウンロードすると、システムは、ユーザーにプログラムのアップグレードが準備できたことを知らせる。システムアップグレードの要求が発生するか、又はシステムの初期化動作を行なった後、受信装置３０のトランスレータ（ｔｒａｎｓｌａｔｏｒ）２４０は、第１メモリ２５０で第１バージョン及びダウンロードされた第２バージョンのアップグレードパッケージをロードしてから、第１バージョンにインストールされたアップグレードパッケージを結合して、第２バージョンを生成した後、これを第２メモリ２６０に格納する。この時、トランスレータ２４０は、アップグレードパッケージのインストールデータを分析して、バージョン番号及び結合するバージョンを決定し、マップデータを分析して、アップグレードパッケージのアップグレードデータを結合するバージョン（ここでは、第１バージョンであってもよい）の当該ブロック内容をアップグレードする。また、インストールデータにマップデータが含まれていない場合、トランスレータ２４０は、ヒストリーデータを分析して、結合する第１バージョンを決定し、アップグレードデータによってアップグレードパッケージを第１バージョンに結合させ、第２バージョンのプログラムを生成することもできる。上記のような動作を行いながら第１バージョンを第２バージョンにアップグレードすると、トランスレータ２４０は、それを第２メモリ２６０に格納し、その後、受信装置３０は、第２メモリ２６０に格納された第２バージョンプログラムを用いて、システムの動作を制御する。
【００８７】
上記のように、第１メモリ２５０には、第１バージョンプログラム及び第２バージョンプログラムを生成するための少なくとも一つのアップグレードパッケージが格納される。アップグレードパッケージは、インストールデータ（ヒストリー及びマップデータ）及びアップグレードデータ、又はヒストリーデータ及びアップグレードデータ、又はインストールデータ（ヒストリー及びマップデータ）のみから構成されてもよい。インストールデータは、第１バージョンにアップグレードデータをアップグレードする時に用いるデータであり、アップグレードパッケージのヒストリーデータと、アップグレードデータのマップ関連情報であるマップデータとから構成されることができる。ここで、マップデータは、二つのバージョン間の関係を表すものであり、上記のように、三つの形態（ｃｏｐｙ、ｍｏｄｉｆｙ、ｓｈｉｆｔ）で表示することができる。マップデータは、特定データ（ここでは、第１バージョン）の比較を通じてＣＭＳ（ｃｏｐｙ、ｍｏｄｉｆｙ、ｓｈｉｆｔ）を探す生成方法であり、迅速なアドレス計算を目的に用いられ、第１メモリ２５０に含まれている第１バージョンに基づき第２メモリ２６０で第２バージョンプログラムを迅速に生成するためのデータとして用いられる。
【００８８】
この時、ダウンロードされるアップグレードパッケージは、アップグレードパッケージプロセッサ１０で生成されるが、インストールデータのマップデータは生成されることもあり、又は生成されない場合もある。それにより、受信装置にダウンロードされるアップグレードパッケージにマップデータが含まれることもあり、あるいは含まれない場合もある。―――従って、マップデータが含まれていないアップグレードパッケージをダウンロードした場合、インストーラー２３０は、逆に第１メモリ２５０に格納された第１バージョンと、ダウンロードされたアップグレードパッケージとを比較分析し、アップグレードデータを第１バージョンにマップするためのマップデータを生成しなければならない。そのため、インストーラー２３０は、アップグレードデータを分析してマップデータを生成する。アップグレードデータは、図８に示すような構造を有することができる。インストーラー２３０が、アップグレードデータからマップデータを生成するのは、トランスレータ２４０において、第２バージョンのプログラムを生成する速度を向上させるためである。この時、アップグレードデータが、第１バージョンのブロックとマップするための情報を含んでいる場合、アップグレードデータにマップデータを生成してインストールすることができ、アップグレードデータをそのままインストールすることもできる。
【００８９】
また、トランスレータ２４０は、第１バージョンプログラムと、最も最近ダウンロードされた第２バージョンのアップグレードパッケージとを組み合わせてアップグレードするのが一般的だが、ユーザーが選択する特定バージョンにアップグレードすることもできる。すなわち、少なくとも一つのバージョンを格納するが、本発明の実施形態においては、第２バージョンに生成するアップグレードパッケージは、上記のように、最大６個まで格納することができると仮定する。特定のアップグレードパッケージが、第２メモリ２６０で再組合せに失敗した場合、ユーザーに現在のシステムが保有している再組合せの可能なアップグレードパッケージリストを表示し、ユーザーの選択に応じてアップグレードパッケージを選択して第２バージョンプログラムを生成することもできる。
【００９０】
第１メモリ２５０は、複数(ここでは、最大６個と仮定する)のアップグレードパッケージを格納できる格納領域を備える。従って、アップグレードパッケージは、必要な場合にダウンロードされ、第１メモリ２５０の格納領域に格納されて、次のアップグレードパッケージがダウンロードされても以前にダウンロードされたアップグレードパッケージは削除しない。従って、バージョンの変更によるヒストリーが累積されて格納され、第１バージョンの格納状態をそのまま保持する。従って、第１及び第２バージョンがそのまま保持されるため、アップグレードの信頼性(ｆａｕｌｔ―ｔｏｌｅｒａｎｃｅ)が高い。また、最新の第２バージョンに生成するためのアップグレードパッケージがロードされない場合、ユーザーの選択によって特定バージョンのアップグレードパッケージを用いることができ、全てのバージョンのアップグレードパッケージロードが失敗するという最悪の場合でも、オリジナルバージョンの第１バージョンプログラムをロードして使用することができる。
【００９１】
図１５は、本発明の実施形態に係る受信装置の第１メモリ２５０の構造を示す図である。図１５において、参照番号３１０は、第１バージョンを格納する第１格納領域であって、第１バージョンは、圧縮された状態又は圧縮されてない状態で格納することができる。参照番号３２０は、少なくとも一つの第２バージョンを生成するためのアップグレードパッケージを格納する第２格納領域であり、対応する第２バージョンのアップグレードパッケージを格納するための格納領域にすることができる。すなわち、第２格納領域３２０に格納されるアップグレードパッケージは、各々対応するバージョンのアップグレードデータ及びインストールデータにすることができ、アップグレードデータは、第１バージョンで変更されるデータ(コマンド、実際のデータ等)、及びブロックインデックスにすることができる。従って、第２格納領域３２０のサイズは、アップグレードパッケージの数によって決定される。参照番号３３０は、ユーザー領域であり、ファイルシステム(file system)等が格納される。
【００９２】
図１６は、第１メモリ２５０の第２格納領域３２０に格納されるアップグレードパッケージの構造を示す図であり、図１７は、図１６のようなアップグレードパッケージにおけるヒストリーデータの構造を示す図である。
【００９３】
図１６を参照すると、第２格納領域３２０は、設定された数(ここでは、６個に仮定している)のアップグレードパッケージを格納できる格納領域を備え、各アップグレードパッケージの格納領域に対応するバージョンのヒストリーデータ、マップデータ、及びアップグレードデータを格納できる構造で構成される。この時、アップグレードパッケージは、インストールデータ及びアップグレードデータから構成され、インストールデータは、上記のように(図９及び図１０を参照)、ヒストリーデータ、又は、ヒストリーデータ及びマップデータによって構成することができる。また、第２格納領域３２０には、アップグレードデータのヒストリーデータ及びマップデータを格納することができる。ここで、アップグレードデータのヒストリーデータを格納する理由は、第１格納領域３１０に格納された第１バージョンと連結するためである。また、第１バージョンに関するマップデータ及びアップグレードデータは省略することができ、また、その代わりにナルデータ(ｎｕｌｌ ｄａｔａ)を入れることもできる。図１６は、アップグレードパッケージが、ヒストリーデータ、マップデータ、及びアップグレードデータ等から構成された例を示している。また、アップグレードパッケージプロセッサ１０において、上記のように、ヒストリーデータ及びマップデータから構成されるアップグレードパッケージを生成する場合、第２格納領域３２０の各アップグレードパッケージの格納領域は、対応するバージョンのヒストリー及びマップデータを格納する構造に構成することもできる。
【００９４】
図１７を参照すると、ヒストリーデータの構造は、ヒストリーデータのバージョン(ｖｅｒｓｉｏｎ)、サイズ(ｓｉｚｅ)、結合フラグ(ｃｏｍｂｉｎｅｄ ｆｌａｇ)、失敗フラグ(ｆａｉｌ ｆｌａｇ)等から構成することができる。ここで、バージョン(ｖｅｒｓｉｏｎ)は、アップグレードパッケージのバージョン番号(図１６の場合、＃２−＃７中のいずれか一つ)にすることができ、サイズ(ｓｉｚｅ)は、当該バージョンのヒストリーデータのサイズにすることができ、結合フラグ(ｃｏｍｂｉｎｅｄ ｆｌａｇ)は、当該バージョンのアップグレードパッケージを結合してアップグレードするバージョン番号(ここでは、第１バージョンの番号＃１にすることができる)にすることができ、失敗フラグ(ｆａｉｌ ｆｌａｇ)は、ロード中、失敗(ｆａｉｌ)が発生したかを表示するためのフラグである。この時、第１バージョンのヒストリーデータは、バージョン(ｖｅｒｓｉｏｎ)領域に＃１が格納され、結合フラグ(ｃｏｍｂｉｎｅｄ ｆｌａｇ)領域に＃１が連結される。また、例えば、任意のアップグレードパッケージ領域のヒストリーデータにおいて、バージョン(ｖｅｒｓｉｏｎ)領域に＃５が格納され、結合フラグ(ｃｏｍｂｉｎｅｄ ｆｌａｇ)領域にＶ＃１が格納された場合、受信装置３０は、＃５の第２バージョンを＃１の第１バージョンに結合(ｍｅｒｇｅ)して、アップグレードすることとなる。ダウンロードされるアップグレードパッケージは、図１６のような構造で図１５のような第１メモリの第２格納領域３２０に格納される。この時、第２格納領域３２０にダウンロードされるアップグレードパッケージは、アップグレード要求時に、第１格納領域３１０の第１バージョンに結合され、アップグレードされた第２バージョンプログラムを生成することとなる。
【００９５】
以下の説明では、アップグレードパッケージが、マップデータ、ヒストリーデータ、及びアップグレードデータから構成された場合を仮定して説明する。
【００９６】
図１８は、第１メモリ２５０及び第２メモリ２６０の構造を示す図である。
【００９７】
図１８を参照すると、アップグレード要求時、図示していないローダーは、第２格納領域３２０でアップグレードするバージョンのアップグレードパッケージをロードし、トランスレータ２４０は、ロードされたアップグレードパッケージを、第１格納領域３１０の第１バージョンとマージして第２バージョンプログラムを生成した後、第２メモリ２６０に格納する。この時、アップグレードの要求は、受信装置３０のユーザー応答によって決定される。すなわち、受信装置３０は、アップグレードパッケージをダウンロードする時点、又は、システム初期化を行った後、アップグレードされてないバージョンのアップグレードパッケージが存在する場合、アップグレードをするか否かを案内するメッセージを表示し、ユーザーが、アップグレードを要求するとき、上記のような動作を行い、バージョンをアップグレードした後、アップグレードされたバージョンのプログラムを第２メモリ２６０に格納する。その後、受信装置３０は、第２メモリ２６０に格納された第２バージョンプログラムを用いて、受信装置３０を運用する。
【００９８】
なお、上記のようなアップグレード動作は、受信装置３０の動作を初期化した後、行うことができる。すなわち、図１５に示すように、第１及び第２バージョンプログラムは、互いに結合されてない状態で第１メモリ２５０に格納されており、アップグレードが要求される時点で、第１バージョンプログラムに第２バージョンのアップグレードパッケージを結合して第２バージョンプログラムを生成し、この第２バージョンプログラムを第２メモリ２６０に格納して使用する。
【００９９】
図１９は、第２バージョンのアップグレードパッケージが、第１メモリ２５０に格納されていない場合の動作を説明するための図であり、図２０及び図２１は、第２バージョンのアップグレードパッケージが第１メモリ２５０の第２領域３２０に格納された場合の動作を説明する図である。
【０１００】
図１９を参照すると、第１メモリ２５０は、第１バージョンを格納しており、ここで、第１バージョンは、初期バージョン(ｉｎｉｔｉａｌ ｖｅｒｓｉｏｎ)のプログラムにすることができる。そして、第１バージョンは、図１９に示すように、ｎ個のブロック(Ｂ＃１−Ｂ＃ｎ)からなることを仮定している。ここで、第１バージョンのインストールデータは、ヒストリーデータとマップデータとから構成することができる。ここで、ヒストリーデータは、上記のように、バージョン領域に＃１が格納され、結合フラグ領域に＃１が格納される。また、マップデータ領域には、[表１]ないし[表３]のような構造を有するマップデータが格納される。
【０１０１】
ここで、アップグレード要求コマンドが発生すると、トランスレータ２４０は、インストールデータを分析する。この時、図１９のように、第２バージョンのアップグレードパッケージが存在しない場合、マップデータは、マップデータをｎｕｌｌ状態で備えることができ、また、{Ｃ:０、ｎ、Ｆ:０、ｎｕｌｌ、ｎｕｌｌ}構造のマップデータを備えることもできる。上記のようなマップデータは、第１メモリ２５０の第１バージョンを、そのまま第２メモリ２６０にコピーするという命令であるため、トランスレータ２４０は、第１メモリ２５０の第１バージョンを第２メモリ２６０に、そのままコピーする。すると、受信装置３０は、第２メモリ２６０に、図１９のようにコピーされた第１バージョンによって受信装置３０の動作を制御する。第１メモリ２５０に格納される第１バージョンは、圧縮されて格納される。従って、第１バージョンが圧縮されて格納された場合、トランスレータ２４０は、第１圧縮解除機２７０を介して圧縮されたバージョンの圧縮を解除した後、第２メモリ２６０にコピーする。また、アップグレードパッケージプロセッサ１０が、第２圧縮機１４０を介してアップグレードパッケージを圧縮する場合、トランスレータ２４０は、まずロードされたアップグレードパッケージの圧縮を解除した後、上記のようなトランスレート動作を行うことができる。
【０１０２】
図２０及び図２１を参照すると、第１メモリ２５０は、第１格納領域３１０に第１バージョン＃１を格納しており、第２格納領域３２０に第２バージョンのアップグレードパッケージを格納している。ここで、第１バージョンは、初期バージョン(ｉｎｉｔｉａｌ ｖｅｒｓｉｏｎ)、又は、基準と設定されたバージョンにすることができ、第２バージョンのアップグレードパッケージは、アップグレードデータ及びインストールデータから構成することができる。インストールデータは、上記のように、対応する第２バージョンの番号、及び結合するバージョン(ここでは、第１バージョン)の番号等を格納するヒストリーデータ及びマップデータから構成することができる。そして、第１バージョンは、図２０及び図２１に示すように、ｎ個のブロック(Ｂ＃１−Ｂ＃ｎ)からなる。ここで、ヒストリーデータは、結合フラグ領域に、＃０が格納されており、マップデータ領域には、[表１](図２０の場合)、又は[表３](図２１の場合)のようなマップデータを格納することができる。
【０１０３】
まず、図２０を参照すると、第１メモリ２５０の第１領域３１０は、第１バージョンのプログラムを格納し、第１メモリ２５０の第２領域３２０の特定アップグレードパッケージは、[表１]のようなマップデータを格納していると仮定する。ここで、アップグレードパッケージのヒストリーデータは、第１バージョンのプログラムと結合するためのフラグ情報を格納している。その場合、トランスレータ２４０は、マップデータによって第１バージョンプログラムをアップグレードして、第２バージョンプログラムを生成した後、これを第２メモリ２６０に格納する。この時、マップデータは、０番ブロックから１５番ブロックまでは、第１バージョンのブロックをコピーし、１６番目のブロックから１９番目のブロックまでの４個のブロックは、各々第１バージョンの１２、１３、８、９番目のブロックをコピーして挿入し、２０番目のブロックから最後のブロック(前の２０個のブロックを除く全てのブロック)は、４個ずつシフトするというコマンドを含んでいる。従って、トランスレータ２４０は、図２１の第２メモリ２６に示すように、マップデータに応じて第１バージョンプログラムをアップグレードする。
【０１０４】
ここでは、ブロック間にギャップがない場合を説明したが、ギャップがある場合は、ギャップまでのみシフトする。
【０１０５】
次に、図２１を参照すると、第１メモリ２５０の第１領域３１０は、第１バージョンのプログラムを格納し、第１メモリ２５０の第２領域３２０の特定アップグレードパッケージは、[表３]のようなマップデータを格納していると仮定する。ここで、アップグレードパッケージのヒストリーデータは、第１バージョンプログラムと結合するためのフラグ情報を格納している。マップデータは、０番ブロックから１５番ブロックまでは、第１バージョンのブロックをコピーし、１６番目ブロックから１９番目ブロックまでの４個のブロックには、各々アップグレードパッケージのアップグレードデータ{Ｚ，Ｗ，Ｐ，Ｘ}を挿入し、２０番目のブロックから最後のブロック(前の２０個のブロックを除く残り全てのブロック)は、４個ずつシフトさせるというコマンドを含んでいる。従って、トランスレータ２４０は、図２１の第２メモリ２６に示すように、マップデータに応じて第１バージョンプログラムをアップグレードする。
【０１０６】
その後、受信装置３０は、第２メモリ２６０に図２０及び図２１のようにアップグレードされた第２バージョンによって受信装置３０の動作を制御する。ここで、第１メモリ２５０に格納される第１バージョン及び第２バージョンのアップグレードパッケージは、伝送時に圧縮して格納することができる(アップグレードパッケージプロセッサ１０で生成されるアップグレードパッケージを、第２圧縮機１４０を用いて圧縮する場合)。従って、第１バージョン及びアップグレードパッケージが、圧縮されて格納された場合、トランスレータ２４０は、圧縮解除機２７０を介して圧縮された第１バージョン及びアップグレードパッケージの圧縮を解除することができる。また、第１バージョン及び第２バージョンのプログラムを圧縮した後(アップグレードパッケージプロセッサ１０の第１圧縮機１６０を用いて圧縮する場合)、圧縮された第１バージョン及び第２バージョンのブロックを比較し、アップグレードパッケージを生成した場合、トランスレータ２４０でトランスレートした第２バージョンのブロックデータは圧縮されたデータになる。その場合、トランスレータ２４０は、圧縮解除機２７５を用いて圧縮を解除した後、第２メモリ２６０に格納する。
【０１０７】
図２２は、受信装置３０が、第１バージョンプログラムにアップグレードパッケージを結合し、第２バージョンプログラムを生成する過程を総合的に説明する図である。
【０１０８】
図２２を参照すると、第１メモリ２５０は、上記のように第１バージョンのプログラム及び第２バージョンのアップグレードパッケージを格納しており、アップグレード要求時、トランスレータ２４０は、アップグレードパッケージを第１バージョンに結合して第２バージョンプログラムを生成した後、これを第２メモリ２６０に格納する。従って、受信装置３０は、第１メモリ２５０に格納している第１バージョンのプログラム及び第２バージョンアップグレードパッケージを第２メモリ２６０で結合(ｍｅｒｇｅ)して使用し、上記のようなアップグレードは、システム初期化の実行後、又は、アップグレード要求により繰り返して行なわれる。
【０１０９】
前述のように、本発明の実施形態に係るシステムのプログラムアップグレード方法は、アップグレードパッケージを生成し、生成されたアップグレードパッケージを決められたネットワーク通信方法によってダウンロードし、ダウンロードされたアップグレードパッケージをインストールして第１メモリに格納し、第１格納されたアップグレードパッケージを用いてシステムのアップグレードプログラムを生成して第２メモリに格納した後、第２格納されたアップグレードプログラムを用いてシステムを運用する。そのために、以下に説明する本発明の実施形態においては、まず、迅速なアップグレードのためのアップグレードパッケージ生成方法を提案し、第２に、アップグレードパッケージをダウンロードした後、迅速な実行のためのインストールデータ処理方法を提案し、第３に、アップグレードパッケージをダウンロードするシステムにおいて、ダウンロードされたアップグレードパッケージを保管及び処理する方法を提案し、第４に、保管しているアップグレードパッケージを用いてシステムアップグレードを行なう方法を提案する。
【０１１０】
まず、迅速なアップグレードのためのアップグレードパッケージの生成方法について説明すると、第１バージョンのプログラムと第２バージョンのプログラムとをアップグレードパッケージの生成のために入力し、この二つのバージョンを、アップグレードパッケージの生成時に、圧縮するか、又は、圧縮していない状態で比較した後、二つのバージョン間の差異点を見出す。ここで、二つのバージョン間の差異点は、これを受信するシステムにおいて、第１バージョンにアップグレードパッケージを再組合せするためのインストールデータ(ｉｎｓｔａｌｌ ｄａｔａ:特に、マップデータにすることができる)として生成される。また、インストールデータと共にアップグレードデータを生成した後、これをアップグレードパッケージとして生成する。
【０１１１】
上記のように生成されたアップグレードパッケージは、受信装置３０にダウンロードされる。ここで、受信装置３０は、アップグレードパッケージをダウンロードした後、迅速な実行のためのアップグレードパッケージ処理過程を行なう。アップグレードパッケージに含まれるインストールデータは、基準となるプログラム(ここでは、第１バージョンプログラム)との比較から得られ、迅速なアドレス計算のために使われる。すなわち、第１メモリ２５０に格納された第１バージョンと、ダウンロードされるアップグレードパッケージを第２メモリ２６０で結合する時、インストールデータを用いて迅速にブロック別に処理することができる。
【０１１２】
アップグレードパッケージをダウンロードした後、迅速な実行のためのインストール処理方法について説明すると、インストールデータは、基準プログラムとの比較から得られ、迅速なアドレス計算のために使われ、第１メモリ２５０に含まれている第１バージョンとアップグレードパッケージとを第２メモリ２６０で結合することを助ける役割として使用される。
【０１１３】
上記のインストール方法は、マップデータが存在するか否かによって異なる形態になる。アップグレードパッケージにマップデータが含まれている場合、受信装置３０は、アップグレードパッケージにおいて、ヒストリーデータ、マップデータ、及びアップグレードデータに分類した後、これらを各々第１メモリ２５０のアップグレードパッケージ領域の割り当てられた格納領域に格納する。
【０１１４】
しかし、マップデータが、アップグレードパッケージに含まれていない場合、受信装置３０は、逆に第１メモリ２５０に含まれた第１バージョンプログラムとアップグレードデータとを比較し、当該マップ機能のためのデータを生成することができる。この時、アップグレードデータは、図８のように、マップ情報を含むことができる。その場合、受信装置３０は、インストール段階において、アップグレードデータからマップ情報を抽出してマップデータを生成した後、これをアップグレードパッケージのマップデータ領域にインストールし、アップグレードデータを抽出してアップグレードパッケージのアップグレードデータ領域にインストールする。その場合、受信装置３０は、アップグレードパッケージにマップデータが含まれた場合と同じ形態でアップグレードパッケージをインストールすることができる。また、インストールデータは、アップグレードパッケージのヒストリーデータを含んでいる。ここで、ヒストリーデータは、第１メモリ２５０に格納されるアップグレードパッケージ及びアップグレードパッケージが結合されるバージョンを表すデータを含んでいる。本発明の実施形態では、上記のように、６個のアップグレードパッケージを第１メモリ２５０に保管することを仮定して説明しており、特定アップグレードパッケージについて、第２メモリ２６０において結合失敗が発生した場合、受信装置３０が保管している他のアップグレードパッケージのリストを表示し、ユーザーの選択によるアップグレードパッケージにアップグレードすることができる。
【０１１５】
アップグレードパッケージの保管及び処理方法について説明すると、アップグレードパッケージは、第１メモリ２５０上に構成される特定の格納領域に保管され、格納領域は複数備えられる。従って、アップグレードパッケージは、ダウンロードされて第１メモリ２５０に格納され、その次のアップグレードパッケージがダウンロードされても、以前のアップグレードパッケージは削除されない。また、特定アップグレードパッケージがロードされない場合、受信装置３０は、ユーザーが保管しているアップグレードパッケージのリストを提供し、特定バージョンを再組合せするための選択を支援する。最悪の場合、全てのアップグレードパッケージのロードが失敗した場合には、オリジナルバージョンである第１バージョンをロードして使用することができる。
【０１１６】
図２３は、本発明の実施形態に係るアップグレードパッケージ生成及びアップグレード過程を説明するフロー図である。図２３の動作は、図１において、アップグレードパッケージプロセッサ１０及び受信装置３０の動作を中心に示されている。
【０１１７】
図２３を参照すると、アップグレードパッケージプロセッサ１０は、ステップ４１１でアップグレードパッケージを生成するためのバージョンを受信する。ここで、アップグレードパッケージは、新バージョンのプログラムが生成された場合に生成され、生成されるアップグレードパッケージは、基準となるバージョンプログラムと比較されて生成されるデータ(アップグレードデータ及びインストールデータ)にすることができる。本発明の実施形態において、基準となるバージョンは、第１バージョンと称しており、新バージョンは、第２バージョンと称している。ここで、第１バージョンは、オリジナルバージョン又は他のバージョンと結合することのできる基準バージョンとなる。すなわち、第１バージョンは、アップグレードされるバージョンと結合される基準バージョンとなる。また、第２バージョンのアップグレードパッケージは、第１バージョンと結合されてアップグレードされる第２バージョンのプログラムを生成する情報であって、第２バージョンのアップグレードパッケージは、少なくとも一つ以上となる。従って、上記のように、第１及び第２バージョンが受信されると、アップグレードパッケージプロセッサ１０は、ステップ４１３で二つのバージョンの差を分析し、ステップ４１５で二つのバージョンの差によるアップグレードパッケージを生成する。ここで、アップグレードパッケージは、二つのバージョンの差に応じて、第１バージョンにアップグレードするアップグレードデータと、アップグレードデータを第１バージョンに結合するための情報であるインストールデータ等から構成される。また、インストールデータは、第２バージョンのヒストリーを表示するヒストリーデータと、アップグレードデータを第１バージョンにアップグレードする時のマップ情報を表すマップデータ等から構成される。この時、マップデータは、アップグレードパッケージから省略することができ、その場合、マップデータは、受信装置３０においてアップグレードパッケージをインストールする時に生成することができる。従って、インストールデータは、プログラムのアップグレード時、アップグレードバージョンプログラムを速かに生成するための情報として使われる。
【０１１８】
上記のように生成されるアップグレードパッケージは、アップグレードパッケージサーバー２０に伝達され、アップグレードパッケージサーバー２０は、受信装置３０にアップグレードパッケージの生成を通知する。また、アップグレードパッケージの発生を感知した受信装置３０が、アップグレードパッケージサーバー２０にダウンロードを要求すると、アップグレードパッケージサーバー２０は、対応する受信装置３０にアップグレードパッケージをダウンロードする。ここで、そのダウンロード方法は、受信装置３０の通信方法によって決定される。すなわち、受信装置３０が、無線通信機能を備える携帯端末機であると、無線通信方式に応じてＣＤＭＡ，ＵＭＴＳ，ＧＳＭ等のような無線通信方式でダウンロードされ、また、インターネットに接続されている場合には、ＵＳＢ、ブルートゥース、ワイブロ、無線ＬＡＮ等のような通信方法でアップグレードパッケージをダウンロードすることができる。
【０１１９】
受信装置３０は、ステップ４５１でアップグレードパッケージをダウンロードした後、ステップ４５３でダウンロードされるアップグレードパッケージを第１メモリ２５０に格納する。ここで、第１メモリ２５０は、第１バージョンのプログラムを格納する第１領域３１０、及びアップグレードパッケージを格納する格納する第２領域３２０から構成される。第２領域３２０は、複数の格納領域から構成され、複数の第２バージョン情報を格納することができる。本発明の実施形態では、第２領域３２０が、６個の格納領域から構成されることと仮定している。また、アップグレードパッケージを格納する格納領域は、インストールデータであるヒストリーデータ及びマップデータを格納する領域とアップグレードデータを格納する領域等から構成される。アップグレードパッケージをインストールする段階において、アップグレードパッケージにマップデータが含まれていない場合、受信装置３０のインストーラー２３０は、第１バージョンプログラムに、アップグレードデータをマップして、アップグレードするためのマップデータを抽出することができる。上記のように、アップグレードパッケージが、第１メモリ２５０に格納されると、受信装置３０は、アップグレード要求時、ステップ４５５で第１バージョンプログラムに、アップグレードパッケージをマージして、第２バージョンのプログラムを生成した後、これを第２メモリ２６０に格納し、格納された第２バージョンプログラムによってシステムを運用する。ここで、第２メモリ２６０は、ワークメモリ(ｗｏｒｋ ｍｅｍｏｒｙ)にすることができ、その場合、第２メモリ２６０は、揮発性メモリに具現することができる。従って、受信装置３０は、システム初期化段階において、第１メモリ２５０に格納された第１バージョン、及び最も最近ダウンロードされた第２バージョンのアップグレードパッケージを結合して生成される第２バージョンのプログラムを第２メモリ２６０に格納し、システムは、第２メモリ２６０に格納された第２バージョンを用いてシステムを運用する。また、受信装置３０は、プログラムのアップグレードが失敗した場合、旧バージョンプログラムを用いて自動的にプログラムアップグレードを試みることができる。また、受信装置３０は、プログラムアップグレードが失敗した場合、旧バージョンのリストを表示し、ユーザーに選択されたバージョンを用いて、手動でプログラムアップグレードを実行することができる。また、システムの初期化時、ユーザーは、必要とするプログラムのバージョンを選択することができ、受信装置３０は、ユーザーに選択されたバージョンのプログラムをアップグレードすることもできる。
【０１２０】
以下の説明において、アップグレードパッケージプロセッサ１０、アップグレードパッケージサーバー２０、及び受信装置３０の動作過程を具体的に説明する。
【０１２１】
まず、アップグレードパッケージを生成する過程を詳細に説明する。
【０１２２】
図２４−図２６は、アップグレードパッケージを生成する過程を示すフロー図である。
【０１２３】
図２４を参照すると、まずアップグレードパッケージプロセッサ１０は、ステップ５０１で第１及び第２バージョンをロードする。その後、アップグレードパッケージプロセッサ１０は、ステップ５０３で第１及び第２バージョンのプログラムを比較して二つのバージョン間の差を確認した後、これを比較データとして生成する。また、アップグレードパッケージプロセッサ１０は、ステップ５０５及びステップ５０７で比較データを用いてアップグレードデータ及びインストールデータを生成する。ここで、アップグレードパッケージプロセッサ１０は、各々パッケージ発生器１３０及びインストール発生器１８０を各々備える場合、図２４に示すように、アップグレードデータ及びインストールデータを並列に生成することができる。また、アップグレードパッケージプロセッサ１０は、アップグレードデータ及びインストールデータを順次に生成することができる。この時、アップグレードデータ及びインストールデータの生成順序は、アップグレードデータ−インストールデータの順で生成することができ、また、インストールデータ−アップグレードデータの順で生成することもできる。
【０１２４】
ここで、インストールデータは、受信側で、第１バージョンにアップグレードパッケージを結合(ｍｅｒｇｅ)するために用いるデータであって、上記のように、ヒストリーデータとマップデータとがある。ここで、ヒストリーデータは、上記のように、該当するアップグレードパッケージのバージョン、アップグレードパッケージが結合されるバージョン(ここでは、第１バージョンにすることができる)、サイズ等からなり、マップデータは、第１バージョンプログラムが、各ブロックデータと第２バージョンプログラムの各ブロックデータとを結合するためのマップ情報(ｍａｐｐｉｎｇ ｉｎｆｏｒｍａｔｉｏｎ)である。ここで、インストールデータにおいて、マップデータは、アップグレードパッケージプロセッサ１０で生成することができ、また、受信側でも生成することができる。従って、マップデータは、アップグレードパッケージに含めることも、又は、含めないこともできる。
【０１２５】
従って、アップグレードパッケージプロセッサ１０は、図２５のように、インストールデータの生成時、マップデータを生成することも、又は、生成しないこともできる。図２６のように、インストールデータをアップグレードパッケージに結合(ｍｅｒｇｅ)する時に、マップデータを含めて合成することもでき、又は、マップデータを省略して結合することもできる。図２５を参照すると、アップグレードパッケージプロセッサ１０は、ステップ５２１でヒストリーデータを生成した後、ステップ５２３でマップデータ生成が必要であるかを検査する。ここで、マップデータ生成が必要である場合、アップグレードパッケージプロセッサ１０は、ステップ５２５で比較データを用いてアップグレードデータをマップするためのマップデータを生成した後、図２４にリターンする。また、図２６を参照すると、アップグレードパッケージプロセッサ１０は、ステップ５３１でインストールデータをアップグレードパッケージにマージする時、マップデータも一緒にマージするかを検査する。この時、アップグレードパッケージプロセッサ１０は、マップデータをマージする場合、ステップ５３３でヒストリー及びマップデータから構成されるインストールデータを、アップグレードパッケージに合成してアップグレードパッケージを生成する。また、マップデータをマージしない場合には、ステップ５３５でヒストリーデータのみから構成されたインストールデータを、アップグレードパッケージに結合してアップグレードパッケージを生成する。ここで、マップデータは、図３−図５、及び[表１]−[表４]に示すような方法で生成することができる。
【０１２６】
また、図２４において、ステップ５０１でロードされた第１及び第２バージョンプログラムを圧縮した後（例えば、アップグレードパッケージプロセッサ１０の第１圧縮機１６０を介して行なうことができる)、ステップ５０３へ進行することができ、また、ステップ５０９を実行して生成されたアップグレードパッケージを圧縮することができる(例えば、アップグレードパッケージプロセッサ１０の第２圧縮機１４０を介して行なうことができる)。ここで、第１及び第２バージョンプログラムの圧縮符号化動作を行なう場合、ステップ５０３で比較するバージョンのサイズが小さくなってデータ処理時間を短縮することができ、また、アップグレードパッケージを圧縮符号化する場合には、伝送される情報の量を減らすことができる。圧縮符号化動作を実行する場合、アップグレードパッケージプロセッサ１０は、これを再び圧縮解除して正常に圧縮符号化されたかを確認し、正常に圧縮符号化された場合にのみ次の段階へ進行するように制御することができる。
【０１２７】
図２７は、本発明の実施形態に係るアップグレードパッケージプロセッサ１０において、アップグレードパッケージを生成する過程を示すフロー図であり、図２８は、図２７における第１及び第２バージョンを圧縮及び検証する過程を示すフロー図であり、図２９は、図２７におけるインストールデータを生成する過程を示すフロー図であり、図３０は、図２７におけるアップグレードパッケージを生成する過程を示すフロー図である。
【０１２８】
図２７−図３０を参照すると、アップグレードパッケージプロセッサ１０は、ステップ５５１で構成ファイル (ｃｏｎｆｉｇｕｒｅ ｆｉｌｅ)を入力する。この時、構成ファイルは、アップグレードパッケージプロセッサ１０の動作を規定するフラグの設定を含む。ここで、フラグ中、Ｃ_ＦＬＡＧは、圧縮の有無を設定するフラグ(ｃｏｍｐｒｅｓｓｉｏｎ ｆｌａｇ)であり、Ｍ_ＦＬＡＧは、マップデータの生成の有無を決定するフラグ(ｍａｐ ｇｅｎｅｒａｔｉｏｎ ｆｌａｇ)であり、Ｖ_ＦＬＡＧは、圧縮された情報を圧縮解除して検討することによって、正常に圧縮されたかを検証するフラグ(ｖｅｒｉｆｙ ｆｌａｇ)である。その後、アップグレードパッケージプロセッサ１０は、ステップ５５３で第１及び第２バージョンをロードする。ここで、第１バージョンは、上記のように、オリジナルバージョン、又は、バージョンアップグレードのための基準バージョンにすることができ、第２バージョンは、最近のアップグレードバージョンにすることができる。
【０１２９】
二つのバージョンをロードした後、アップグレードパッケージプロセッサ１０は、ステップ５５５で二つのバージョンの圧縮符号化が必要であるか(Ｃ_ＦＬＡＧ＝１)を検査する。圧縮符号化が必要でない場合、アップグレードパッケージプロセッサ１０は、ステップ５６１で第１及び第２バージョンを各々コンフィギュアバージョンにフォーマットした後、ステップ５６３へ進行して二つのバージョンの比較を行なう。しかし、ステップ５５５で圧縮符号化が必要な場合、アップグレードパッケージプロセッサ１０は、ステップ５５７で第１圧縮機１６０を実行した後、ステップ５５９で第１及び第２バージョンプログラムを第１圧縮機１６０を介して圧縮符号化した後、ステップ５６３で圧縮された二つのバージョンのプログラムを比較器１１０を介して比較する。
【０１３０】
ステップ５５９において、二つのバージョンを圧縮する過程は、図２８のような過程で行なわれる。ここで、圧縮フラグが設定されている場合には、検証フラグも共に設定されるのが一般的である。この時、検証フラグ(Ｖ_ＦＬＡＧ)がセットされると、アップグレードパッケージプロセッサ１０は、圧縮データの圧縮を解除した後、圧縮解除されたデータを圧縮前のデータと比較して正常に圧縮されたかを検証する。
【０１３１】
図２８を参照すると、アップグレードパッケージプロセッサ１０は、第１及び第２バージョンプログラムを各々圧縮した後、ステップ６０１で検証が必要なのか(Ｖ_ＦＬＡＧ＝１)を検査する。ここで、検証が必要な場合、アップグレードパッケージプロセッサ１０は、ステップ６０３で第１圧縮解除機１６５を実行させて圧縮された第１及び第２バージョンの圧縮を解除した後、ステップ６０５で圧縮前のバージョンと圧縮解除した後のバージョンとを比較し、ステップ６０７で比較の結果、圧縮前及び圧縮解除後のバージョンが同一の値を有するかを検査する。この時、圧縮前及び圧縮解除後のバージョンが同一であると、アップグレードパッケージプロセッサ１０は、ステップ６０７でこれを確認し、ステップ６０９で圧縮されたバージョンを比較器１１０に送ると共に、正常状態であることを検証する通知を生成する。しかし、ステップ６０７で、圧縮前及び圧縮解除した後のデータが同一でない場合、アップグレードパッケージプロセッサ１０は、ステップ６１１でこれをエラー処理した後、リターンする。その場合、アップグレードパッケージプロセッサ１０は、第１及び第２バージョンプログラムを圧縮する過程を再実行することができる。
【０１３２】
図２７に戻り、上記のように、圧縮された、又は、圧縮されていない第１バージョン及び第２バージョンが発生すると、アップグレードパッケージプロセッサ１０は、ステップ５６３で比較器１１０を実行させた後、ステップ５６５でインストールデータ発生器１８０を実行させる。この時、インストールデータ発生器１８０は、マップデータを生成することも、又は、生成しないこともできる。これは、Ｍ_ＦＬＡＧによって決定される。従って、アップグレードパッケージプロセッサ１０は、ステップ５６７でマップデータを生成するべきか(Ｍ_ＦＬＡＧ＝１)を確認する。マップデータを生成する場合(Ｍ_ＦＬＡＧ＝１)、アップグレードパッケージプロセッサ１０は、ステップ５６７でこれを感知して、ステップ５６９で第１バージョンと第２バージョンとを比較器１１０を介して比較する。この時、第１及び第２バージョンの比較は、ブロックのサイズで比較することができ、第１バージョン及び第２バージョンのブロックデータが同一でない場合には、現在の第２バージョンブロックデータを、第１バージョンの設定された探索区間内のブロックデータと比較して一致するか否かを判断する。すなわち、比較器１１０は、図３−図５に示すように、現在の第２バージョンブロックデータを第１バージョンの設定された探索区間内のブロックデータと比較して一致するか否かを判定する。
【０１３３】
第１バージョン及び第２バージョンは、圧縮されたバージョン、又は、圧縮されていないバージョンである。また、第１及び第２バージョンの比較を完了すると、アップグレードパッケージプロセッサ１０は、ステップ５７１でマップデータを生成するために、比較データをインストールデータ生成器１８０に伝達すると共に、ステップ５７７へ進行してマップデータ及びアップグレードデータを生成するために、比較結果値を格納領域に格納する。しかし、マップデータを生成しなくても良い場合(Ｍ_ＦＬＡＧ＝０)、アップグレードパッケージプロセッサ１０は、ステップ５６７でこれを感知し、ステップ５７５で第１バージョンと第２バージョンとを比較器１１０を介して比較する。ここで、第１バージョン及び第２バージョンは、上記のように、圧縮されたバージョン、又は、圧縮されていないバージョンである。第１及び第２バージョンの比較を完了すると、アップグレードパッケージプロセッサ１０は、ステップ５７７でアップグレードデータを生成するために、比較結果値を格納領域に格納する。上記のように、マップデータを生成する場合、アップグレードパッケージプロセッサ１０は、二つのバージョンの比較結果値をインストールデータ生成器１８０に伝達すると共に、格納領域に格納してマップデータ及びアップグレードデータを生成することができるようにし、マップデータを生成しない場合、アップグレードパッケージプロセッサ１０は、二つのバージョンの比較結果値を格納領域に格納してアップグレードデータを生成することができるようにする。
【０１３４】
その後、アップグレードパッケージプロセッサ１０は、ステップ５７９でインストールデータ生成器１８０を駆動させてインストールデータを生成する。ここで、インストールデータの生成は、図２９のような過程で進行される。
【０１３５】
図２９を参照すると、インストールデータ生成時、アップグレードパッケージプロセッサ１０は、ステップ６５１でインストールデータの生成を活性化した後、ステップ６５３で二つのバージョンのヒストリー情報を検査する。その後、アップグレードパッケージプロセッサ１０は、ステップ６５５で、ヒストリーデータ発生器１２０を駆動し、ステップ６５７でヒストリーデータを生成する。この時、ヒストリーデータは、図示のように、ヘッダー(ｈｅａｄｅｒ)、第１バージョンの情報 (ｆｉｒｓｔ ｉｎｐｕｔ ｖｅｒｓｉｏｎ ｉｎｆｏ)、第２バージョンの情報(ｓｅｃｏｎｄ ｉｎｐｕｔ ｖｅｒｓｉｏｎ ｉｎｆｏ)、及びメモリ情報(ｍｅｍｏｒｙ ｉｎｆｏ)等から構成される。第１及び第２バージョンのプログラムは、各々バージョン識別情報(ＳＷ ＶＥＲ;０ｘ２ＡＢ，０ｘ２ＡＣ)、タイムスタンプ(ＳＷ ｔｉｍｅ ｓｔａｍｐ)、チェックサム情報(ＳＷ ｃｈｅｃｋｓｕｍ)等からなる。従って、ヒストリーデータは、アップグレード時、基準となるバージョン(ここでは、第１バージョンかつオリジナルバージョンである)と基準バージョンでアップグレードされるべきデータを提供するアップグレードバージョン(ここでは、第２バージョン)の識別情報とが、ヒストリーデータに含まれる。
【０１３６】
その後、アップグレードパッケージプロセッサ１０は、ステップ６５９でマップデータを生成するべきか(Ｍ_ＦＬＡＧ＝１)を確認する。マップデータを生成する場合、アップグレードパッケージプロセッサ１０は、ステップ６０３でマップデータ発生器１５０を駆動した後、ステップ６６５でマップデータを生成する。ここで、マップデータは、上記のように、コピーＣ、変更Ｍ、及び移動Ｓ等であり、マップデータは、所定サイズを有するマクロブロックに分割されて設定される。この時、マップデータは、二つのバージョンの比較結果値に応じて生成されるが、二つのバージョンのブロックデータが同一であると、当該ブロックのマップデータは、コピーＣに設定し、二つのバージョンのプロックデータ値が異なっているか、あるいは、ブロックデータが追加された場合には、当該ブロックのマップデータを変更Ｍに設定し、二つのバージョンのブロックデータ値は同一であるが、そのブロックのインデックスが異なっている場合には、同じ位置までの移動Ｓに設定する。従って、図３−図６に示すように、マップデータ発生過程は、比較器１１０から出力される比較結果値及びブロックインデックス値を分析し、第１バージョンと差のあるブロックのインデックス及びデータをマップデータとして生成する。この時、マップデータは、上記のように、[Ｃｍｄ][ｓｔａｒｔ ｂｌｏｃｋ Ｎｏ、ｎｕｍｂｅｒ ｏｆ ｂｌｏｃｋ][ｆｌａｇ][ｄｉｓｔａｎｃｅ][ｄｉｆｆｅｒｅｎｃｅ]の形態で生成することができ、第１バージョン及び第２バージョンが、図３−図５のような場合には、[表１]−[表３]のように、マップデータを生成することができる。そのため、上記のようなマップデータを生成することとなり、この時、アップグレードデータは、変更Ｍに関するブロックのデータとして生成することができる。上記のように、マップデータを生成した後、アップグレードパッケージプロセッサ１０は、ステップ６６７でヒストリーデータにマップデータをマージしてインストールデータとして生成する。
【０１３７】
ステップ６６１まで実行すると、アップグレードパッケージプロセッサ１０は、Ｍ_ＦＬＡＧの設定の有無に応じてインストールデータを生成することになるが、ここで、生成するインストールデータは、ヒストリーデータのみから構成されるか、又は、ヒストリーデータ及びマップデータがマージされた形態のデータにすることができる。
【０１３８】
図２７に戻り、上記のように、インストールデータを生成した後、アップグレードパッケージプロセッサ１０は、ステップ５８１でパッケージ発生器を実行させ、ステップ５８３でパッケージ発生器によってアップグレードパッケージを生成する。図３０は、アップグレードパッケージを生成する過程を示すフロー図である。
【０１３９】
図３０を参照すると、アップグレードパッケージプロセッサ１０は、ステップ６２１で比較結果によるアップグレードデータを発生する。ここで、パッケージ発生器１３０は、第１バージョンと第２バージョンとにおいて、比較結果値が、設定された探索区間内から同一のブロックデータを見つけることができなかった場合、当該ブロックのデータをアップグレードデータに設定することができる。また、アップグレードデータのマップ位置は、マップデータによって決定される。本発明の実施形態では、アップグレードパッケージが、ヒストリーデータ、マップデータ、及びアップグレードデータから構成された場合を仮定して説明しているが、上記のように、ヒストリーデータ及びマップデータのみから構成することもできる。インストールデータのみからアップグレードパッケージを構成する場合、アップグレードパッケージプロセッサ１０は、マップデータに、第１バージョンと差のある第２バージョンの各ブロックのマップ情報、及び差のあるブロックデータを含めて発生することができる。
【０１４０】
また、パッケージ発生器１３０は、インストールデータがマップデータを含まない場合、アップグレードデータに第１バージョンと結合するための第２バージョンの各ブロックのブロックインデックス値を含めてアップグレードデータを生成することもできる。その場合、アップグレードデータは、図８に示すように、コピーＣ、変更Ｍ、及びシフトＳのコマンドフォーマットとして生成することができる。すなわち、第１バージョンと同じブロック番号のデータをコピーする場合、アップグレードデータは、コピーする第１バージョンの開始ブロック番号及びコピーするブロック数を含むコマンドとして生成される。また、第１バージョンにブロックデータを追加する場合、アップグレードデータは、追加するブロック番号及び追加変更するブロック数、及び各ブロックのデータを含むコマンドが生成される。最後に、第１バージョンにシフトされるブロックデータの場合、アップグレードデータは、開始ブロックの番号、シフトするブロックの数、及びシフトされる一番目のブロック番号にマップされる第１バージョンのブロック番号等が含まれる。上記のような構造のアップグレードデータを生成すると、アップグレードデータは、マップ情報を含むようになる。
【０１４１】
アップグレードデータは、圧縮してダウンロードするのが好ましい。従って、アップグレードパッケージプロセッサ１０は、ステップ６２３で圧縮機を駆動した後、ステップ６２５でアップグレードデータを圧縮し、それから、アップグレードデータの圧縮が正常に行なわれたかを検証するために、ステップ６２７及びステップ６２９で圧縮されたアップグレードデータの圧縮を解除した後、圧縮前及び圧縮解除後のデータを比較し、検証する。検証が正常に行なわれると、アップグレードパッケージプロセッサ１０は、ステップ６３１でこれを感知し、ステップ６３３でアップグレードデータにインストールデータを合成してアップグレードパッケージを生成し、ステップ６３５でアップグレードパッケージをアップグレードパッケージサーバー２０に伝達する。しかし、ステップ６３１で、検証が失敗した場合、アップグレードパッケージプロセッサ１０は、ステップ６３７で、エラー処理を行う。
【０１４２】
上記のように、アップグレードパッケージプロセッサ１０で、アップグレードパッケージが生成されると、アップグレードパッケージは、アップグレードパッケージサーバー２０に伝達され、これを必要とする受信装置３０にダウンロードされる。この時、アップグレードパッケージは、基準バージョンである第１バージョンと、アップグレードバージョンである第２バージョンとの差を有するアップグレードデータ、及びこのようなアップグレードデータをインストールするためのデータから構成される。
【０１４３】
図３１は、本発明の実施形態におけるアップグレードパッケージを伝達されるアップグレードパッケージサーバー２０が、アップグレードパッケージを受信装置３０にダウンロードする過程を示すフロー図である。
【０１４４】
図３１を参照すると、アップグレードパッケージを伝達されると、アップグレードパッケージサーバー２０は、ステップ７１１でアップグレードパッケージが存在することを各受信装置３０に通知する。この時、アップグレードパッケージサーバー２０と受信装置３０間の通信方法は、受信装置３０とアップグレードパッケージサーバー２０間の連結方法によって決定される。すなわち、受信装置３０が、携帯端末機の場合、受信装置３０は、空中無線通信(例えば、ＣＤＭＡ，ＧＳＭ，ＧＰＲＳ等)方法で通信機能を行なう。また、受信装置３０が、コンピュータ、あるいはコンピュータを介して連結された携帯端末機である場合、アップグレードパッケージの通信をインターネットを介して行なうことができる。ここで、携帯端末機が、無線通信機能を備える場合、インターネットは、無線インターネット(ｗｉｂｒｏ，ｗｉｍａｘ，ｗｉｆｉ，無線ＬＡＮ等)を使用することもできる。その後、受信装置３０が、これに対する応答をすると、アップグレードパッケージサーバー２０は、ステップ７１３でこれを受信した後、ステップ７２３でダウンロードの許容を通知する。その後、受信装置３０が、これに対して応答すると、アップグレードパッケージサーバー２０は、ステップ７１７でこれを受信し、ステップ７１９で管理情報(ｍａｎａｇｅｍｅｎｔ ｉｎｆｏ)を当該受信装置３０に伝送する。その後、受信装置３０が、これに対して応答すると、アップグレードパッケージサーバー２０は、ステップ７２３でアップグレードパッケージを当該受信装置３０にダウンロードする。アップグレードパッケージサーバー２０は、ステップ７２５で受信装置３０からダウンロード完了データを受信すると、ステップ７２７で伝送の終了情報を受信装置３０に伝送し、ステップ７２９で応答メッセージのを受信すると、アップグレードパッケージのダウンロード過程を終了する。
【０１４５】
上記のように、アップグレードパッケージサーバー２０は、アップグレードパッケージプロセッサ１０から伝達されるアップグレードパッケージを複数の受信装置３０に通知し、通知に応じて応答する受信装置３０にアップグレードパッケージをダウンロードする。この時、受信装置３０は、アップグレードパッケージサーバー２０からダウンロードされるアップグレードパッケージを第１メモリ２５０にインストールする過程(ｉｎｓｔａｌｌｉｎｇ)、及びアップグレード要求時、第１メモリ２５０にインストールされたアップグレードデータを用いて第２バージョンを生成し、これを第２メモリ２６０に格納して運用する過程(ｔｒａｎｓｌａｔｉｎｇ)を実行するようになる。
【０１４６】
図３２は、本発明の実施形態における受信装置３０が、アップグレードパッケージをダウンロードしてインストールする過程、及びインストールされたアップグレードパッケージを用いて第２バージョンプログラムを生成した後、これを用いてシステムを運用する過程等を示すフロー図である。
【０１４７】
図３２を参照すると、受信装置３０は、ステップ８０１で既に第１バージョンプログラムを第１メモリ２５０に格納している状態である。この時、第１バージョンは、システムの製造時に、第１メモリ２５０にインストールすることができ、また、システムの製造後、基準となる新バージョンをダウンロードしてこれを基準バージョン情報に設定することもできる。上記のような状態で、アップグレードパッケージのダウンロードを通知されると、受信装置３０は、図３１のような過程を行ない、アップグレードパッケージサーバー２０からアップグレードパッケージをダウンロードすることになる。従って、受信装置３０は、ステップ８０３−ステップ８０７を行ない、アップグレードパッケージサーバー２０からダウンロードされるアップグレードパッケージを受信し、一時格納する。また、一時格納されたアップグレードパッケージは、第１メモリ２５０にインストールされるが、ここで、インストール動作は、アップグレードパッケージをダウンロードしてからすぐに実行することができ、また、受信装置３０の正常な動作モードを実行した後にインストールすることもできる。従って、アップグレードパッケージのダウンロード後に、インストールコマンドが発生しない場合、受信装置３０は、ステップ８０９でこれを感知し、ステップ８１１で受信装置３０の正常モードへ戻る。上記のような状態で、正常モードを実行した後、インストールコマンドが発生すると、受信装置３０は、一時格納中のアップグレードパッケージを第１メモリ２５０にインストールする動作を行なうことになる。
【０１４８】
従って、ステップ８０９でインストールコマンドを感知すると、受信装置３０は、ステップ８１３で第１メモリ２５０にダウンロードされたアップグレードパッケージをインストールする。ここで、第１メモリ２５０は、不揮発性メモリにすることができ、バージョンアップグレード時に、基準となる第１バージョンを格納する領域と、複数のアップグレードパッケージを格納する領域とから構成される。すなわち、第１メモリ２５０は、図１５、図１６−図１７のようなバージョンを格納する第１及び第２領域で割り当てることができる。従って、アップグレードパッケージのダウンロード時、受信装置３０は、ステップ８１３で該当するアップグレードパッケージを格納するバッファー領域にダウンロードされたアップグレードパッケージをインストールする。この時、アップグレードパッケージは、以前のアップグレードパッケージとは別に独立的に格納されるため、第１メモリ２５０には、第２バージョンのアップグレードパッケージが生成された順に格納されており、従って、バージョンのアップグレードヒストリーを全て格納している状態になる。
【０１４９】
アップグレードパッケージを第１メモリ２５０にインストールした後、受信装置３０は、システム初期化(ｓｙｓｔｅｍ ｒｅｂｏｏｔ)動作を実行するかを表示する。この時、システム初期化コマンドが発生しないと、受信装置３０は、ステップ８２３でこれを感知し、ステップ８１７で正常モードを実行する。その場合、動作モードは、現在ダウンロードされたアップグレードパッケージによるバージョンアップグレードが実行されていない状態であるため、旧バージョンで実行されることになる。
【０１５０】
しかし、ステップ８１５でシステム初期化コマンドが発生すると、受信装置３０は、ステップ８２１でシステム初期化動作を実行し、初期化動作の実行後、受信されたアップグレードパッケージから第２バージョンプログラムを生成するために、ステップ８２３でトランスレータ２４０を駆動する。この時、トランスレータ２４０は、第１メモリ２５０にインストールされたアップグレードパッケージを第１バージョンにマージし、第２バージョンのプログラムを生成して第２メモリ２６０に格納し、その後、受信装置３０は、第２メモリ２６０に格納された第２バージョンのプログラムに基づいて動作モードを制御する。ここで、受信装置３０は、ステップ８２５でアップグレードパッケージのインストールデータを検査してアップグレードパッケージの状態を確認する。アップグレードパッケージの状態に異状があると、受信装置３０は、ステップ８３３でアップグレードバージョンの旧バージョンを第２メモリ２６０に格納してシステムの動作を制御する。しかし、アップグレードパッケージの状態が正常であると、受信装置３０は、ステップ８２５でこれを感知し、ステップ８２７で第１メモリ２５０にインストールされた該当するアップグレードパッケージをロードし、ステップ８２９で第１メモリ２５０に格納している第１バージョンに、ロードしたアップグレードパッケージを組み合わせて第２バージョンのプログラムを生成し、これを第２メモリ２６０に格納する。その後、受信装置３０は、ステップ８３１で第２メモリ２６０に格納されたアップグレードバージョンのプログラムを用いてシステムの動作を制御する。
【０１５１】
上記のように、受信装置３０は、アップグレードパッケージをダウンロードすると、インストール過程及びアップグレード過程を実行する。図３３は、本発明の実施形態における受信装置３０からダウンロードされるアップグレードパッケージを第１メモリ２５０にインストールする過程を示すフロー図であり、図３４は、本発明の実施形態における受信装置３０で第１メモリ２５０にインストールされたアップグレードパッケージを第１バージョンのプログラムにアップグレードし、第２メモリ２６０に格納した後、システムを運用する過程を示すフロー図である。
【０１５２】
図３３を参照すると、ダウンロードの必要時、受信装置３０は、ステップ８４１でダウンローダー(ｄｏｗｎ ｌｏａｄｅｒ)を実行させ、ステップ８４３でネットワークを介してアップグレードパッケージサーバー２０から伝送されるアップグレードパッケージをダウンロードする。この時、アップグレードパッケージのダウンロード方法は、受信装置３０によって変わる。すなわち、受信装置３０が、移動通信端末機である場合、受信装置３０は、設定される無線リンク(例えば、ＣＤＭＡ，ＵＭＴＳ，ＧＳＭ，ＧＰＲＳ等)を介してアップグレードパッケージをダウンロードすることができ、インターネットを介して連結される端末機である場合には無線インターネット(ｗｉｂｒｏ，ｗｉｆｉ，ｗｉｍａｘ，無線ＬＡＮ等)を介してアップグレードパッケージをダウンロードすることができる。また、ＵＳＢのような有線通信リンク、又は、ブルートゥース等のような近距離通信リンクを介してシステムに連結される端末機の場合には、当該有線通信方法、又は、近距離無線通信方法によってアップグレードパッケージをダウンロードすることができる。ダウンロードは、アップグレードパッケージ全体がダウンロードされるまで続き、ダウンロード中にエラーが発生すると、受信装置３０は、ステップ８４５でこれを感知し、ステップ８４７及びステップ８４９を行ない、アップグレードパッケージの再ダウンロードを実行する。
【０１５３】
ステップ８４５で正常にダウンロードが完了した場合、受信装置３０は、ステップ８５１でインストーラー(ｉｎｓｔａｌｌｅｒ)２３０をロードし、アップグレードパッケージを第１メモリ２５０にインストールする準備をする。アップグレードパッケージを第１メモリ２５０にインストールする過程を説明すると、受信装置３０は、ステップ８５３−ステップ８５７からアップグレードパッケージのヒストリーデータを抽出し、抽出されたヒストリーデータを確認した後、第１メモリ２５０の当該アップグレードパッケージ格納領域内のヒストリーテーブルに格納する。
【０１５４】
その後、受信装置３０は、アップグレードパッケージ内にマップデータが含まれているかを検査する。この時、アップグレードパッケージ内にマップデータが含まれている場合、受信装置３０は、ステップ８５９でこれを感知し、ステップ８７５及びステップ８７７で、アップグレードパッケージ内からマップデータを抽出し、第１メモリ２５０の当該アップグレードパッケージ格納領域内にマップデータを格納し、ステップ８７９でアップグレードデータ格納領域にアップグレードデータを格納する。従って、ステップ８８１になると、受信装置３０は、受信されたアップグレードパッケージからヒストリーデータ、マップデータ、及びアップグレードデータを各々抽出した後、第１メモリ２５０の該当するアップグレードパッケージバッファー内に、ヒストリーデータ、マップデータ、及びアップグレードデータをインストールして格納した状態になる。
【０１５５】
また、アップグレードパッケージ内にマップデータが含まれていない場合、受信装置３０は、ステップ８５９でこれを感知し、ステップ８６１及びステップ８６３で圧縮解除機を駆動してアップグレードパッケージからアップグレードデータを抽出して圧縮を解除する。その後、受信装置３０は、ステップ８６５−ステップ８６９を実行し、圧縮解除されたアップグレードデータをパーシングした後、これを第１メモリ２５０に格納している第１バージョンと比較して差データを求め、これに基づいてアップグレードデータを第１バージョンにマップするためのマップデータを生成する。その後、受信装置３０は、ステップ８７１及びステップ８７３で第１メモリ２５０に割り当てられたアップグレードパッケージのバッファーに生成されたマップデータ及びアップグレードデータを各々格納する。また、ステップ８６３で圧縮解除したアップグレードデータがマップデータの情報を含む場合、インストーラー２３０は、マップデータを生成しないこともある。すなわち、アップグレードデータが、図８のように、マップデータを含む場合、アップグレードデータからマップデータを生成することができる。また、マップデータを生成する過程を省略することができる。図８の場合、アップグレードデータは、第２バージョンプログラムの各ブロックに対するコマンド(コピー、変更、シフト)及び当該ブロックのインデックス情報を含んでおり、従って、アップグレードデータを用いてマップデータ及びアップグレードデータを分離して生成することができる。上記のように、アップグレードデータでマップデータを生成すると、受信装置３０は、インストールデータ及びアップグレードデータを用いてアップグレードプログラムを生成することになる。また、アップグレードデータがマップデータを含んでいるため、マップデータを生成しないこともある。その場合、ステップ８６１−ステップ８７３の動作は、省略することができ、アップグレードプログラムを生成する時、トランスレータは、アップグレードデータのマップ情報を用いてアップグレードデータを第１バージョンのプログラムに結合することができる。本発明の実施形態では、アップグレードデータがマップ情報を含む場合、インストーラーは、アップグレードデータからマップデータを生成してインストールすると仮定する。その場合、アップグレードパッケージは、同一の形態のインストールデータ及びアップグレードデータから構成され、アップグレードパッケージ領域にインストールされ、トランスレータは、同一のプログラムでアップグレードプログラムを生成することができる。
【０１５６】
図３３に示すように、受信装置３０は、アップグレードパッケージのダウンロードが通知されると、アップグレードパッケージをダウンロードし、ダウンロードされたアップグレードパッケージを分析して第１メモリ２５０の対応する領域に、各々ヒストリーデータ、マップデータ、及びアップグレードデータをインストールする。ここで、マップデータは、アップグレードパッケージに含まれることもあり、含まれないこともある。従って、アップグレードパッケージにマップデータが含まれていない場合、受信装置３０は、第１メモリ２５０に格納し、基準バージョンである第１バージョンにダウンロードされたアップグレードデータを比較してマップデータを生成し、生成されたデータをアップグレードパッケージ[バッファー]格納領域にインストールして格納する。
【０１５７】
図３４は、受信装置３０から図３３のような過程でダウンロードするアップグレードパッケージを、第２メモリ上でアップグレードする過程を示すフロー図である。
【０１５８】
図３４を参照すると、アップグレードパッケージを用いて受信装置３０のバージョンをアップグレードする過程は、システム電源をオンにするか、又は、ユーザーのアップグレード要求によって実行される。すなわち、本発明の実施形態に係る受信装置３０は、システムの初期化時、ハードウェア等の初期化を実行した後、第１メモリ２５０に格納された第１バージョンプログラム、及び最も最近アップグレードされたアップグレードパッケージ(又は、ユーザーによって設定されたアップグレードパッケージ)を組み合わせてアップグレードされた第２バージョンプログラムを第２メモリ２６０に格納し、これを用いてシステムの動作を制御する。ここで、第２メモリ２６０に格納される情報は、プログラムとして不揮発性メモリにインストールできる全ての情報を含む。
【０１５９】
システム初期化動作が実行されると、受信装置３０は、ステップ８８１−ステップ８８３を実行し、システム初期化を行なった後、第１メモリ２５０で第１バージョンプログラム及びアップグレードパッケージをロードするためのローダーを実行する。その後、受信装置３０は、ステップ８８４で第１メモリ２５０内のアップグレードパッケージ格納領域を分析し、アップグレードパッケージが一つ以上格納されているかを検査する。ここで、アップグレードパッケージが格納されていない場合、受信装置３０は、ステップ８８４でこれを感知し、ステップ８８５でアップグレード過程を実行するためのトランスレータ２４０をロードし、ステップ８８６で第１バージョンのセキュリティー検査を行なう。その後、受信装置３０は、ステップ８８７で第１メモリ２５０に格納されている第１バージョンプログラムが圧縮された状態であるかを検査し、圧縮された状態であると、ステップ８８８で圧縮解除機２７０を駆動して第１バージョンの圧縮を解除した後、ステップ８８９で第１バージョンを第２メモリに格納し、ステップ８９０で第２メモリ２６０に格納された第１バージョンを用いてシステムを運用する。しかし、ステップ８８７で第１バージョンが圧縮されていないものと判定されると、受信装置３０は、ステップ８８９及びステップ８９０を実行し、第１バージョンを第２メモリ２６０に格納し、これを用いてシステムを運用する。
【０１６０】
しかし、ステップ８８４で一つ以上のアップグレードパッケージが第１メモリ２５０に格納されていると、受信装置３０は、ステップ８９１でトランスレータ２４０をロードした後、ステップ８９２で最も最近アップグレードされたアップグレードパッケージをロードする。この時、第１メモリ２５０にインストールされたアップグレードパッケージは、ヒストリーデータ、マップデータ、及びアップグレードデータ、又は、ヒストリーデータ及びマップデータ、又は、ヒストリーデータ及びアップグレードデータ等から構成される。その後、受信装置３０は、ステップ８９３で圧縮解除機２７０を駆動してロードされたアップグレードパッケージ(ここで、アップグレードデータのみ圧縮されていることもある)の圧縮を解除し、ステップ８９４でダウンロードしたアップグレードパッケージが受信側に適しているバージョンであるか否かを確認し、ウイルスチェック等のセキュリティー検査を行なう。その後、受信装置３０は、ステップ８９５で第１メモリ２５０に格納されている第１バージョンが圧縮された状態であるか否かを検査し、圧縮された状態であると、ステップ８９６で圧縮解除機を駆動して第１バージョンの圧縮を解除した後、ステップ８９７で第１バージョンにアップグレードパッケージを結合してアップグレードされた第２バージョンプログラムを第２メモリに格納し、ステップ８９０で第２メモリ２６０にアップグレードされた第２バージョンプログラムを用いてシステムを運用する。ここで、ステップ８９７でアップグレードパッケージのアップグレードデータを第１バージョンに結合し、アップグレードする時、マップデータを用いてアップグレードデータを第１バージョンにマップする。また、ステップ８９５で第１バージョンが圧縮されていないと判定されると、受信装置３０は、ステップ８９７及びステップ８９０を実行し、第１バージョンにアップグレードパッケージを組み合わせてアップグレードバージョンのプログラムを生成した後、これを第２メモリに格納し、これを用いてシステムを運用する。
【０１６１】
図３５−図３８は、図３４と同様に、第１メモリ２５０にインストールされたアップグレードパッケージを基準バージョンプログラムに結合して、アップグレードされた第２バージョンプログラムを生成した後、第２メモリ２６０に格納する過程を詳細に示すフロー図である。
【０１６２】
図３５を参照すると、受信装置３０は、ステップ９０１−ステップ９０５を実行し、システムの初期化を実行した後、バージョンをアップグレードするためにローダーを実行させ、ステップ９０７及びステップ９０９を実行し、アップグレードパッケージが有効であるかを決定した後、第１メモリ２５０に少なくとも一つのアップグレードパッケージが格納されているか否かを検査する。ここで、第１メモリ２５０に有効なアップグレードパッケージが一つも格納されていないと、受信装置３０は、ステップ９１１へ進行し、トランスレータ２４０をロードした後、図３６のステップ９２１−ステップ９２９を実行し、第１メモリ２５０に格納している第１バージョンをトランスレートして第２メモリ２６０に格納し、これを用いてシステムを運用する。第１バージョンＶ１が圧縮された状態であると、受信装置３０は、ステップ９２２でこれを感知し、ステップ９２３−ステップ９２７を実行し、第１バージョンＶ１の最後のデータ(ＥＯＤ:ｅｎｄ ｏｆ ｄａｔａ)までトランスレートし、第２メモリ２６０に格納する。第１バージョンＶ１が圧縮されたデータでない場合には、受信装置３０は、ステップ９２６及びステップ９２７を繰り返し行い、第１バージョンＶ１の最後のデータまでトランスレートし、第２メモリ２６０に格納する。上記のように、第１バージョンＶ１を格納した後、受信装置３０は、ステップ９２８で第２メモリ２６０に格納されたバージョン(ここでは、システム全体のソフトウェア情報にすることができる)を検証した後、ステップ９２９でこれを用いてシステムの全体的動作を実行させる。
【０１６３】
しかし、図３５のステップ９０９で少なくとも一つのアップグレードパッケージが第１メモリ２５０に格納されていることを感知すると、受信装置３０は、ステップ９１３でアップグレードパッケージがヒストリーデータを備えているかを検査し、ステップ９１５でヒストリーデータ内の失敗フラグ(ｆａｉｌ ｆｌａｇ)を検査する。ここで、失敗フラグは、当該アップグレードパッケージのロード失敗が発生したことがあることを表示するフラッグであり、失敗フラグがセット(ｆａｉｌ ｆｌａｇ ＝ ｔｒｕｅ)されたという意味は、当該アップグレードパッケージに異状があったことを表している。従って、受信装置３０は、ステップ９１７でヒストリーデータの失敗フラグがセットされたかを検査した後、失敗フラグがセットされていない状態であると、図３７のステップ９３１−ステップ９４６を実行しながらシステムアップグレード動作を行ない、失敗フラグがセットされた状態であると、図３８のステップ９５１−ステップ９６９を実行し、システムアップグレード動作を行なう。
【０１６４】
まず、アップグレードパッケージのヒストリーデータが正常である場合の動作を、図３７を参照して説明すると、受信装置３０は、ステップ９３１−ステップ９３７で第１メモリ２５０に格納している最も最近のアップグレードパッケージのヒストリーデータを探索して失敗フラグを確認し、正常であると、マップデータ及びアップグレードデータをロードし、トランスレータをロードした後、セキュリティー検査を行ない、アップグレードデータが圧縮された場合には、アップグレードデータの圧縮を解除する。第１バージョンＶ１が圧縮された場合、受信装置３０は、ステップ９３９及びステップ９４１を実行しながら第１バージョンＶ１プログラムの圧縮を解除し、ステップ９４２で第１バージョンＶ１にアップグレードパッケージのアップグレードデータをマップしてバージョンをアップグレードし、アップグレードされるバージョンを第２メモリ２６０に格納する。上記のような動作では、ステップ９４３及びステップ９４４を繰り返し行ないながらアップグレードデータの最後のデータまでアップグレードする動作を実行する。また、ステップ９３８で第１バージョンＶ１が圧縮されていない場合、受信装置３０は、ステップ９３８でこれを感知し、ステップ９４０、ステップ９４３、及びステップ９４４を行いながら第１バージョンＶ１にアップグレードパッケージのアップグレードデータをマップさせ、アップグレードバージョンＶ２のプログラムを生成した後、これを第２メモリ２６０に格納する。上記のように、第２メモリ２６０にアップグレードバージョンのプログラムを格納した後、受信装置３０は、ステップ９４５でこれを検証した後、ステップ９４６で第２メモリ２６０に格納されたアップグレードバージョンを用いてシステムを駆動する。
【０１６５】
ここで、受信装置３０が、第１バージョンＶ１にアップグレードパッケージのアップグレードデータをマップさせて、アップグレードされたプログラムを生成する過程を説明すると、アップグレードパッケージがマップデータを含む場合、マップデータは、[表１]−[表４]のような構造を有することができる。その場合、受信装置３０のトランスレータ２４０は、[表１]、[表２]、及び[表４]のようなマップデータである場合、第１バージョンＶ１にアップグレードパッケージのマップデータを結合して第２バージョンＶ２のプログラムを生成する。すなわち、[表１]のようなマップデータ{Ｃ:０，１５、Ｆ:０、ｎｕｌｌ、ｎｕｌｌ}、{Ｍ:１６,４ Ｆ:１、(１６−１２)、(１７−１３)、(１８−８)、(１９−９)、０、０、０、０}、{Ｓ:２０，５、Ｆ:０、(２０−４)、０}であると、Ｃ、Ｍ、Ｓコマンドによってマップデータに含まれたブロックインデックスに対応する第１バージョンＶ１のブロックデータを、対応する第２バージョンＶ２のブロックデータとして格納する。その場合、受信装置３００は、第２バージョンＶ２の０番から１５番ブロックまでは、第１バージョンＶ１のブロック０番から１５番までのブロックデータを格納し、ブロック１６から１９番ブロックまでは、第１バージョンＶ１のブロック１２，１３，８，９番のブロックデータを各々格納し、ブロック２０番から２４番までのブロックは、第１バージョンＶ１のブロック１６番から２０番までのブロックデータを格納する。
【０１６６】
[表２]のようなマップデータ{Ｃ:０，１５、Ｆ:０、ｎｕｌｌ、ｎｕｌｌ}、{Ｍ:１６，４ Ｆ:１、(１６−１２)、(１７−１３)、(１８−８)、(１９−９)、０、ｃｏｄｅ(Ｂ，Ｋ)、ｃｏｄｅ(Ｅ，Ｃ)、０}，{Ｓ:２０，５、Ｆ:０、(２０−４)、０}である場合、受信装置３０は、Ｃ及びＳコマンドに係る第２バージョンＶ２のブロックは、マップデータに対応するブロックインデックスの第１バージョンＶ１のブロックデータを対応する第２バージョンのブロックデータとして格納する。また、Ｍコマンドに係る第２バージョンのブロックは、マップデータに含まれたブロックインデックス及びエントロピー符号化されたデータを用いてブロックデータを生成する。その場合、受信装置３０は、第２バージョンＶ２の０番から１５番までのブロックは、第１バージョンＶ１のブロック０番から１５番までのブロックデータを格納し、ブロック１６から１９番までのブロックは、第１バージョンＶ１のブロック１２，ｃｏｄｅ(Ｂ，Ｋ)，ｃｏｄｅ(Ｅ，Ｃ)，９番ブロックデータを各々格納し、ブロック２０番から２４番までのブロックは、第１バージョンＶ１のブロック１６番から２０番までのブロックデータを格納する。ここで、コード(Ｂ，Ｋ)は、第１バージョンＶ１の１３番ブロックデータと第２バージョンＶ２の１７番ブロックデータとの差をエントロピー符号化したデータを意味し、コード(Ｅ，Ｃ)は、第１バージョンの８番のブロックデータと第２バージョンＶ２の１８番ブロックデータとの差をエントロピー符号化したデータを意味する。
【０１６７】
また、[表３]のようなマップデータ{Ｃ:０，１５、Ｆ:０、ｎｕｌｌ、ｎｕｌｌ}、{Ｍ:１６，４、Ｆ:２、ｎｕｌｌ、ｎｕｌｌ}、{Ｓ:２０，５、Ｆ:０、(２０−４)、０}である場合、受信装置３０は、Ｃ及びＳコマンドに係る第２バージョンＶ２のブロックは、マップデータに対応するブロックインデックスの第１バージョンＶ１のブロックデータを対応する第２バージョンのブロックデータとして格納する。Ｍコマンドに係る第２バージョンのブロックは、マップデータに含まれたブロックインデックス値及びアップグレードデータの数を確認し、これをアップグレードデータでアクセスしてブロックデータを生成する。その場合、受信装置３０は、第２バージョンＶ２の０番から１５番までのブロックは、第１バージョンＶ１のブロック０番から１５番までのブロックデータを格納し、ブロック１６から１９番までのブロックは、アップグレードデータで４個のブロックデータを順次にアクセスして各々対応するブロックインデックスのブロックデータで格納する。その場合、第２バージョンＶ２のブロック１６，１７，１８，１９のブロックデータは、Ｚ，Ｗ，Ｐ，Ｘにすることができる。
【０１６８】
また、マップデータがなく、ヒストリーデータ及びアップグレードデータから構成されたアップグレードパッケージが受信された場合、受信装置３０は、アップグレードデータ及び第１バージョンＶ１のプログラムを比較分析してマップデータを生成することができ、また、マップデータの生成を省略することもできる。本発明の実施形態では、インストーラーが、アップグレードデータのマップ情報を用いてマップデータを生成すると仮定する。例えば、アップグレードデータが、[表５]のように、第１バージョンＶ１のブロックインデックス情報{Ｃ:０，６}、{Ｍ:６，２，Ｘ，Ｙ}、{Ｓ:８，３，６，} {Ｓ:１１，２，１３}、{Ｍ:１３，５，Ａ，Ｂ，Ｃ，Ｄ，Ｅ}、{Ｓ:１８，７，１５}を含んでいる場合、インストーラー２３０は、コピー及びシフトブロックのマップ情報は、のような形態のマップデータに生成し、変更ブロックのマップ情報は、設定された探索区間を確認してマップ情報及び/又はアップグレードデータを生成する。また、上記のように生成されるアップグレード及びマップデータを、対応するアップグレードパッケージ領域にマップデータ及びアップグレードデータとしてインストールする。
【０１６９】
また、図３５のステップ９１７でアップグレードパッケージに失敗フラグがセットされた場合、図３８において、受信装置３０は、ステップ９５１で全てのアップグレードパッケージの失敗フラグがセットされたかを検査する。ここで、全てのアップグレードパッケージの失敗フラグがセットされた状態である場合、受信装置３０は、ステップ９５２でトランスレータをロードした後、図３６のステップ９２１以後の動作過程を行ないながら第１バージョンを第２メモリ２６０に格納し、これを用いてシステムの駆動を制御する。すなわち、インストールされた全てのアップグレードパッケージに異状が発生した場合、受信装置３０は、第１メモリ２５０に格納している第１バージョンをロードして第２メモリ２６０に格納し、これを用いてシステムの動作を制御する。この時、第１バージョンは、システムの製造時に、第１メモリ２５０にロードされたプログラムにすることができる。
【０１７０】
しかし、図３８のステップ９５１で全てのアップグレードパッケージの失敗フラグがセットされた状態ではない場合、受信装置３０は、ステップ９５３及びステップ９５４において、失敗フラグがセットされたアップグレードパッケージを検査した後、使用可能なアップグレードパッケージのリストを作ってユーザーに表示する。その後、ユーザーが、リストの中から必要とするアップグレードパッケージを選択すると、受信装置３０は、ステップ９５５でこれを感知し、ステップ９５６−ステップ９６０を実行しながら選択されたアップグレードパッケージのマップデータ及びアップグレードデータをロードし、トランスレータをロードしてセキュリティー検査を行なった後、アップグレードデータが圧縮されていたらアップグレードデータの圧縮を解除する。その後、ステップ９６１−ステップ９６９を実行しながら第１メモリ２５０から第１バージョンをロードした後、アップグレードデータをマップさせて第２バージョンを生成し、第２メモリ２６０に格納した後、これを用いてシステムの駆動を制御する。ステップ９６１−ステップ９６９の動作は、ステップ９３８−ステップ９４６と同一方法で実行することができる。
【０１７１】
上記のように、本発明の実施形態では、アップグレードパッケージを生成する送信側が、基準バージョンとアップグレードバージョンとの差を比較し、比較結果に応じてアップグレードパッケージを生成して伝送し、アップグレードパッケージをダウンロードする受信側は、ダウンロードされたアップグレードパッケージを第１メモリ２５０にインストールし、その後、第１メモリ２５０のアップグレードパッケージを第１バージョンのプログラムにマップさせて第２バージョンのプログラムを生成し、第２メモリ２６０に格納した後、これを用いてシステムの駆動を制御する。
【０１７２】
本発明の実施形態に係るアップグレードパッケージ生成の特徴は次のとおりである。
【０１７３】
まず、第１バージョン及び第２バージョンを受信し、二つのバージョンを比較してその差を含む比較データを生成する。ここで、第１バージョンは、基準バージョンであり、システムの製造時に、メモリにインストールされるプログラム、又は、その後決定された基準プログラムにすることができる。第２バージョンは、第１バージョンのアップグレードバージョンであり、システムの製造後、システムにダウンロードされるバージョンを意味する。ここで、第２バージョンは、複数個発生され、最も最近生成された第２バージョンが最も最近アップグレードされたバージョンである。
【０１７４】
二つのバージョンを比較する時、バージョンを各々圧縮(ｃｏｍｐｒｅｓｓ_１)した後に、比較することができ、また、圧縮していないバージョンを圧縮していない状態で比較することもできる。バージョンを圧縮して比較する場合、バージョンが正常に圧縮されたかを検証するために、圧縮バージョンの圧縮を解除した後、圧縮解除されたバージョンを各々圧縮前のバージョンと比較して圧縮が正常に行なわれたかを検証することができる。
【０１７５】
第２に、二つの比較データを用いてインストールデータを生成する。
【０１７６】
インストールデータは、第１バージョンにアップグレードデータをマップする時に使用するためのインストールデータを意味する。インストールデータは、ヒストリーデータを含む。ヒストリーデータは、アップグレードパッケージのバージョン識別情報、結合されるバージョン識別情報等を含んでおり、ロード失敗の有無を表示するフラグを備えることができる。また、インストールデータは、ヒストリーデータ以外に、マップデータを含むことができる。マップデータは、アップグレードデータを第１バージョンにマップするためのデータであり、コピー、変更及び移動等のコマンド、及び第１バージョンとブロックマップをするためのインデックス情報とに区分される。また、第２バージョンにブロックデータが挿入されて変更が発生する場合、変更されるブロックデータが、第１バージョンＶ１の設定された探索区間のブロックデータと同一あるいは類似の場合、これをアップグレードデータに生成せずマップデータに含めることもできる。ここで、インストールデータがマップデータを含まない場合には、受信側でマップデータを生成することができる。
【０１７７】
第３に、比較データを用いてアップグレードデータを生成し、アップグレードデータにインストールデータを合成してアップグレードパッケージを生成する。
【０１７８】
アップグレードデータは、第１バージョンと第２バージョンとをブロック単位で比較し、比較の結果、ブロックのサイズ(大きいか、小さい場合、又はブロックが挿入される場合)に変化があるか、又は、ブロックのデータが互いに異なるデータ値を有するブロックを選択してアップグレードデータに設定する。ここで、アップグレードデータに対応するマップデータは、変更(ｍｏｄｉｆｙ) Ｍデータにすることができる。そして、アップグレードデータにインストールデータを合成してアップグレードパッケージとして生成する。この時、インストールデータには、マップデータが含まれないこともある。その場合、受信側で生成してインストールすることができる。また、アップグレードデータがマップ情報を含む場合には、マップデータの生成は省略することもできる。
【０１７９】
また、アップグレードデータ又はアップグレードパッケージは、圧縮してダウンロードすることができる。その場合、アップグレードデータ(又は、アップグレードパッケージ)を圧縮し、圧縮されたアップグレードデータ(又は、アップグレードパッケージ)の圧縮を解除し、圧縮前のアップグレードデータ(又は、アップグレードパッケージ)と圧縮解除したアップグレードデータ(又は、アップグレードパッケージ)とを比較検討して圧縮が正常に行なわれたかを検証する。
【０１８０】
上記のように、生成されたアップグレードパッケージは、アップグレードパッケージサーバー２０に伝達され、アップグレードパッケージサーバーは、伝達されるアップグレードパッケージを受信装置に通知し、通知に応答する受信装置にアップグレードパッケージをダウンロードする。
【０１８１】
上記のようなアップグレードパッケージを受信する受信装置３０は、第１メモリ２５０及び第２メモリ２６０を備え、アップグレードパッケージを第１メモリ２５０にインストールし、インストールされたアップグレードパッケージを第２メモリ２６０でアップグレードしてシステムの駆動を制御する。
【産業上の利用可能性】
【０１８２】
本発明は、安定的にシステムのプログラムをアップグレードできるという利点を有し、プログラムアップグレード方法およびシステムとして有用である。
【図面の簡単な説明】
【０１８３】
【図１】本発明の実施形態に係るプログラムアップグレードシステムを説明する図面。
【図２】図１のプログラムアップグレードシステムのアップグレードパッケージプロセッサの作動例を説明する図面。
【図３】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図４】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図５】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図６】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図７】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図８】図２のアップグレードパッケージプロセッサにおけるアップグレードパッケージデータフォーマットを説明する図面。
【図９】本発明の実施形態に係るプログラムアップグレードシステムのアップグレードパッケージプロセッサの構成例を示す図面。
【図１０】アップグレードパッケージプロセッサの他の構成例を示す図面。
【図１１】図９のアップグレードパッケージプロセッサにおいて発生するアップグレードパッケージの構成を示す図面。
【図１２】図１０のアップグレードパッケージプロセッサにおいて発生するアップグレードパッケージの構成を示す図面。
【図１３】本発明の実施形態に係るアップグレードパッケージプロセッサの更に他の構成例を示す図面。
【図１４】本発明の実施形態に係る受信装置の構成を示す図面。
【図１５】図１４に示された受信装置の第１メモリの構造を示す図面。
【図１６】図１５に示された第１メモリに格納される第２格納領域の構造を示す図面。
【図１７】図１６のような第２格納領域に格納される各々のアップグレードパッケージのヒストリーデータのフォーマットを示す図面。
【図１８】本発明の実施形態に係るプログラムアップグレードシステムのアップグレード動作を示す図面。
【図１９】本発明の他の実施形態に係るプログラムアップグレードシステムのアップグレード動作を説明する図面。
【図２０】本発明の他の実施形態に係るプログラムアップグレードシステムのアップグレード動作を説明する図面。
【図２１】本発明の他の実施形態に係るプログラムアップグレードシステムのアップグレード動作を説明する図面。
【図２２】本発明の実施形態に係るプログラムアップグレードシステムの受信装置におけるバージョンアップグレード方法を説明する図面。
【図２３】本発明の実施形態に係るアップグレードパッケージの生成及びアップグレード過程を説明するフロー図。
【図２４】アップグレードパッケージを生成する過程を示すフロー図。
【図２５】アップグレードパッケージを生成する過程を示すフロー図。
【図２６】アップグレードパッケージを生成する過程を示すフロー図。
【図２７】本発明の実施形態に係るアップグレードパッケージプロセッサにおけるアップグレードパッケージを生成する過程を示すフロー図。
【図２８】図２７における圧縮及び検証する過程を示すフロー図。
【図２９】図２７におけるインストールデータを生成する過程を示すフロー図。
【図３０】図２７におけるアップグレードパッケージを生成する過程を示すフロー図。
【図３１】本発明の実施形態に係るアップグレードパッケージを伝達されるアップグレードパッケージサーバーが、アップグレードパッケージを受信装置にダウンロードする過程を示すフロー図。
【図３２】本発明の実施形態に係る受信装置が、アップグレードパッケージをダウンロードしてインストールする過程、及びインストールされたアップグレードパッケージをアップグレードして運用する過程等を示すフロー図。
【図３３】本発明の実施形態に係る受信装置でダウンロードされるアップグレードパッケージを第１メモリにインストールする過程を示すフロー図。
【図３４】本発明の実施形態に係るプログラムアップグレード方法におけるアップグレード過程を示すフロー図。
【図３５】本発明の他の実施形態に係るプログラムアップグレード方法におけるアップグレード過程を示すフロー図。
【図３６】本発明の他の実施形態に係るプログラムアップグレード方法におけるアップグレード過程を示すフロー図。
【図３７】本発明の他の実施形態に係るプログラムアップグレード方法におけるアップグレード過程を示すフロー図。
【図３８】本発明の他の実施形態に係るプログラムアップグレード方法におけるアップグレード過程を示すフロー図。
【図１】
2009536396.tif 000008
【図２】
2009536396.tif 000009
【図３】
2009536396.tif 000010
【図４】
2009536396.tif 000011
【図５】
2009536396.tif 000012
【図６】
2009536396.tif 000013
【図７】
2009536396.tif 000014
【図８】
2009536396.tif 000015
【図９】
2009536396.tif 000016
【図１０】
2009536396.tif 000017
【図１１】
2009536396.tif 000018
【図１２】
2009536396.tif 000019
【図１３】
2009536396.tif 000020
【図１４】
2009536396.tif 000021
2009536396.tif 000022
【図１５】
2009536396.tif 000023
【図１６】
2009536396.tif 000024
2009536396.tif 000025
【図１７】
2009536396.tif 000026
【図１８】
2009536396.tif 000027
【図１９】
2009536396.tif 000028
【図２０】
2009536396.tif 000029
【図２１】
2009536396.tif 000030
【図２２】
2009536396.tif 000031
【図２３】
2009536396.tif 000032
【図２４】
2009536396.tif 000033
【図２５】
2009536396.tif 000034
【図２６】
2009536396.tif 000035
【図２７】
2009536396.tif 000036
【図２８】
2009536396.tif 000037
【図２９】
2009536396.tif 000038
【図３０】
2009536396.tif 000039
【図３１】
2009536396.tif 000040
【図３２】
2009536396.tif 000041
【図３３】
2009536396.tif 000042
【図３４】
2009536396.tif 000043
【図３５】
2009536396.tif 000044
【図３６】
2009536396.tif 000045
【図３７】
2009536396.tif 000046
【図３８】
2009536396.tif 000047
【国際調査報告】
2009536396.tif 000048
2009536396.tif 000049