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