(57)【特許請求の範囲】
【請求項１】
起動するプログラムの管理を行うと共に、当該プログラムのバージョンダウンを行う場合、プログラムバージョンダウン通知を発行するプログラム管理部と、
前記プログラムバージョンダウン通知を受信した場合、当該バージョンダウンされるプログラムが使用するデータを、バージョンダウン後のプログラムが使用可能な形式にバージョンダウンするデータバージョンダウン部とを備え、
前記プログラム管理部は、
前記データバージョンダウン部によりデータのバージョンダウンが終了したことを示す通知を受けると、前記バージョンダウンするプログラムを起動用プログラムとして設定することを特徴とするバージョンダウン管理装置。
【請求項２】
プログラムバージョンと当該プログラムバージョンのプログラムが使用するデータファイルのデータバージョンとの対応関係を示すファイルバージョン蓄積部を備えると共に、前記プログラム管理部は、バージョンダウンするプログラムのプログラムバージョンを含めて通知し、
前記データバージョンダウン部は、プログラムバージョンダウン通知を受信した場合、バージョンダウンするプログラムが使用するデータファイルのバージョンを前記ファイルバージョン蓄積部から検索し、当該検索して得たバージョンになるようデータファイルのバージョンダウンを行うことを特徴とする請求項１記載のバージョンダウン管理装置。
【請求項３】
プログラムと当該プログラムが使用するデータファイルのデータバージョンとの関係を示すプログラム蓄積部を備え、
前記プログラム管理部は、プログラムのバージョンダウンを行う場合、当該プログラムが使用するデータバージョンを前記プログラム蓄積部から取得し、プログラムバージョンダウン通知に当該使用可能なデータバージョンを含め、
前記データバージョンダウン部は、前記プログラムバージョンダウン通知のデータバージョンになるようデータファイルのバージョンダウンを行うことを特徴とする請求項１記載のバージョンダウン管理装置。
【請求項４】
バージョンダウンされるプログラムが使用するデータをそれぞれ管理する複数のデータ管理部を備え、
前記複数のデータ管理部は、プログラムバージョンダウン通知を受信した場合は、管理するデータに対応した前記データバージョンダウン部によりバージョンダウンを行った後、ファイルバージョンダウン終了通知を行い、
前記プログラム管理部は、プログラムのバージョンダウンを行う場合は、前記複数のデータ管理部にプログラムバージョンダウン通知を行い、かつ、全てのデータ管理部から前記ファイルバージョンダウン終了通知を受けた場合に、バージョンダウンするプログラムを起動用プログラムとして設定するようにしたことを特徴とする請求項１から請求項３のうちのいずれか１項記載のバージョンダウン管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置内で動作するプログラムのバージョンアップとバージョンダウンを自動で行う組込み系装置において、バージョンダウンを管理するバージョンダウン管理装置に関する。
【背景技術】
【０００２】
ネットワークに接続して動作する組込み系装置では、機能拡張や不具合修正のためネットワーク経由でプログラムサーバにアクセスして機器内で動作するプログラムをバージョンアップすることが可能である。一方で、例えばバージョンアップしたプログラムに重大な問題が発生した場合など、ネットワーク経由で過去に実績のあるバージョンにバージョンダウンする場合がある。
【０００３】
プログラムのバージョンアップでは、機能拡張なども伴うため、組込み系装置の不揮発メモリに蓄積しているデータファイルの形式がしばしば変更される。一方で、例えばバージョンアップしたプログラムに問題が発生した場合など、過去の実績あるバージョンにバージョンダウンする場合がある。しかしながら、一度バージョンアップを行い、データファイルのファイル形式変更が行われた場合にはバージョンダウン先の過去のバージョンではそのファイル形式が認識できず、正しくデータファイルを読み込めない。
【０００４】
このような問題に対処するため、例えば特許文献１に記載されたような方法では、新バージョンソフトウェアで生成した新バージョンファイル形式を、旧バージョンファイル形式のみ読み込み可能な旧バージョンソフトウェアで読み込むようにしている。即ち、このような方法とは、新バージョンソフトウェアで新バージョンファイルを旧バージョンファイルに変換する方法と、旧バージョンソフトウェアで新バージョンファイルを旧バージョンファイルに変換する方法である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１１２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ファイル変換の実行は利用者の操作によるものであり、ファイル変換のタイミングについては任意となる。一方、組込み系装置がソフトウェアのバージョンダウンに伴い、ファイルのバージョンダウンを行う場合は、ファイル形式の変換処理を単独で行うだけでは、ファイル変換失敗時などにファイル変換できずにプログラムバージョンダウンのみ実施されるという問題点がある。これを解決するにはプログラムのバージョンダウンとファイルのバージョンダウンのタイミングを同期させる必要がある。ところが、上記従来の特許文献等にはこのようなプログラムとデータファイルのバージョンダウンを同期させて行うようなファイル変換方法については開示されていなかった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、プログラムのバージョンダウンとファイルのバージョンダウンのタイミングを同期させることのできるバージョンダウン管理装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るバージョンダウン管理装置は、起動するプログラムの管理を行うと共に、プログラムのバージョンダウンを行う場合、プログラムバージョンダウン通知を発行するプログラム管理部と、プログラムバージョンダウン通知を受信した場合、バージョンダウンされるプログラムが使用するデータを、バージョンダウン後のプログラムが使用可能な形式にバージョンダウンするデータバージョンダウン部とを備え、プログラム管理部は、データバージョンダウン部によりデータのバージョンダウンが終了したことを示す通知を受けると、バージョンダウンするプログラムを起動用プログラムとして設定するようにしたものである。
【発明の効果】
【０００９】
この発明のバージョンダウン管理装置は、プログラム管理部は、データバージョンダウン部によりデータのバージョンダウンが終了したことを示す通知を受けると、バージョンダウンするプログラムを起動用プログラムとして設定するようにしたので、プログラムのバージョンダウンとファイルのバージョンダウンのタイミングを同期させることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１のバージョンダウン管理装置を適用したデータ蓄積装置を示す構成図である。
【図２】この発明の実施の形態１のバージョンダウン管理装置におけるデータ蓄積部のデータを示す説明図である。
【図３】この発明の実施の形態１のバージョンダウン管理装置におけるデータ蓄積部の複数のデータファイルバージョンを示す説明図である。
【図４】この発明の実施の形態１のバージョンダウン管理装置の動作を示すフローチャートである。
【図５】この発明の実施の形態１のバージョンダウン管理装置におけるプログラム蓄積部のプログラムを示す説明図である。
【図６】この発明の実施の形態１のバージョンダウン管理装置の他の例を示す構成図である。
【図７】この発明の実施の形態１のバージョンダウン管理装置の他の例におけるファイルバージョン蓄積部のデータを示す説明図である。
【図８】この発明の実施の形態１のバージョンダウン管理装置の他の例における動作を示すフローチャートである。
【図９】この発明の実施の形態１のバージョンダウン管理装置の更に他の例におけるプログラム蓄積部を示す説明図である。
【図１０】この発明の実施の形態１のバージョンダウン管理装置の更に他の例における動作を示すフローチャートである。
【図１１】この発明の実施の形態２のバージョンダウン管理装置を適用したデータ蓄積装置を示す構成図である。
【図１２】この発明の実施の形態２のバージョンダウン管理装置による予約データ蓄積部のデータを示す説明図である。
【図１３】この発明の実施の形態２のバージョンダウン管理装置によるユーザ設定蓄積部のデータを示す説明図である。
【図１４】この発明の実施の形態２のバージョンダウン管理装置における動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態１．
実施の形態１では、データ管理部が一つのみで構成されているデータ蓄積装置について説明を行う。
図１は、実施の形態１のバージョンダウン管理装置を適用したデータ蓄積装置を含むシステムを示す構成図である。
図示のシステムは、データ蓄積装置１とプログラム配信サーバ２がＩＰネットワーク３を介して接続され、構成されている。
【００１２】
本実施の形態のデータ蓄積装置１は、複数の電話番号を不揮発メモリに保存している装置であり、装置内で動作しているプログラムデータをＩＰネットワーク３経由で更新可能な機能を具備している。プログラム配信サーバ２は、データ蓄積装置１で動作するプログラムを提供するサーバであり、配信するバージョンのプログラムを１バージョン提供する。プログラム配信サーバ２はプログラム更新チェック機能とプログラム配信機能の２機能をデータ蓄積装置１に対して提供する。データ蓄積装置１は、ＨＴＴＰを用いてプログラム配信サーバ２にアクセスする。
【００１３】
プログラム更新チェック機能では、データ蓄積装置１が、データ蓄積装置１内で動作しているプログラムのバージョンを格納したプログラム更新チェックメッセージをプログラム配信サーバ２に送信すると、プログラム配信サーバ２は、格納されているプログラムバージョンがプログラム配信サーバ２の提供するプログラムバージョンと異なる場合は、更新プログラムありとして提供しているプログラムのバージョンをデータ蓄積装置１に対して送信する。プログラム配信機能については、更新チェックにより更新すべきプログラムの存在を検知したデータ蓄積装置１が更新すべきプログラムをプログラム配信サーバ２からダウンロードし、自身の不揮発メモリ領域内にプログラムを保存後、再起動してプログラムバージョンを更新する。ここで、ダウンロードした更新用プログラムがデータ蓄積装置１内で動作しているプログラムのバージョンより大きい場合はバージョンアップ、ダウンロードした更新用プログラムがデータ蓄積装置１内で動作しているプログラムバージョンより小さい場合にはバージョンダウンが行われる。プログラム更新チェックで更新すべきプログラムが存在しないことを検知したデータ蓄積装置１はプログラム更新を行わない。
【００１４】
以下、データ蓄積装置１の内部構成について説明する。
データ蓄積装置１は、通信処理部１０、アプリケーション部１１、データ管理部１２、データバージョンダウン部１３、データバージョンアップ部１４、プログラム管理部１５、データ蓄積部１６、プログラム蓄積部１７、ブートローダ１８を備え、通信処理部１０〜プログラム管理部１５でプログラム更新管理部１９を構成している。
【００１５】
通信処理部１０は、ＩＰネットワーク３を通じてＨＴＴＰ通信を行う処理部である。アプリケーション部１１は、データ蓄積装置１内のアプリケーション機能を提供する部分であり、本装置では装置内に蓄積している電話番号データの入力機能、編集機能、検索機能、表示機能を提供するが、これらの機能については、本発明の特徴部分とは直接関係しないため、本実施の形態では詳細な説明は省略する。データ管理部１２は、アプリケーション部１１から要求されるデータを、データ蓄積部１６から読み出してＣＲＣチェックでその正当性を判断してアプリケーション部１１に引き渡す機能を有している。また、アプリケーション部１１から蓄積要求されるデータに対してＣＲＣデータを付与しデータ蓄積部１６に蓄積する。更に、アプリケーション部１１が複数のファイルデータを扱う場合でも書き込み時にＣＲＣをデータに付与して蓄積することや、蓄積ファイルのＣＲＣチェックで正当性を確認する機能は共通であるため、データ蓄積装置１は共通機能として一つのデータ管理部１２を設ける。データバージョンダウン部１３はデータ蓄積部１６のデータのバージョンダウンを行う機能であり、プログラムのバージョンダウンが発生すると、バージョンダウン先のプログラムで読み込み可能な形式にデータファイルをバージョンダウンする。データバージョンアップ部１４は、データ蓄積部１６に蓄積されているデータの形式が古いバージョンだった場合にファイル形式をバージョンアップし、自身のプログラムが使用する形式に変換する。
【００１６】
プログラム管理部１５は、データ蓄積装置１内で動作するプログラムのバージョンとそのプログラムデータをプログラム蓄積部１７に蓄積、管理している。また、プログラム管理部１５は、定期的にＩＰネットワーク３を通じてプログラム配信サーバ２に対してプログラム更新チェックを行い、更新プログラムを検知するとダウンロードにより装置内のプログラムデータを更新する。データ蓄積部１６は不揮発メモリの一部の領域を用いて実現され、アプリケーション部１１で使用するデータを蓄積している。プログラム蓄積部１７も不揮発メモリ内の一部の領域を用いて実現され、装置内で動作するプログラムデータを蓄積している。プログラム更新対象部１９に含まれている通信処理部１０、アプリケーション部１１、データ管理部１２、データバージョンダウン部１３、データバージョンアップ部１４、プログラム管理部１５はプログラム更新において更新対象となる部分である。ブートローダ１８はプログラム蓄積部１７に格納されているプログラムデータを起動させる。
【００１７】
次に、実施の形態１のバージョンダウン管理装置の動作について説明する。
今、データ蓄積装置１ではプログラムバージョン“２”のプログラムが動作しているとし、これをプログラムバージョン“１”にバージョンダウンする処理について説明を行う。
プログラムバージョン“２”ではデータ蓄積部１６に蓄積する各データファイルにＣＲＣを付与し、データ蓄積部１６の破損等が原因でファイルが壊れていることを検知可能としている。データ管理部１２において、アプリケーション部１１から入力された電話番号データをデータ蓄積部１６に蓄積する際にデータ全体に対するＣＲＣを計算し、データファイルに付与してデータ蓄積部１６に蓄積する。
【００１８】
図２にデータ蓄積部１６に蓄積している電話番号データの例を示す。
図中、バージョン２０は、そのデータファイルのバージョン、ＩＤ２１は各データの識別ＩＤ、名前２２は各データの名前、電話番号２３は、各データの電話番号、ＣＲＣ２４は、誤り検出符号である。バージョン２０は、データファイル形式のバージョンを示しており、本バージョンはバージョン“２”とする。電話番号情報は、ＩＤ２１、名前２２、電話番号２３で一つの情報を構成している。ＩＤ２１は本ファイル中で電話番号について固有となるＩＤである。名前２２は電話番号２３が対応する電話の使用者名である。ＣＲＣ２４はファイル全体に対して計算したＣＲＣである。ＣＲＣの生成方法は一般的な方法を使用しているため、本実施の形態で特に詳細な説明は省略する。
【００１９】
アプリケーション部１１から要求を受け、データ管理部１２がデータファイルをデータ蓄積部１６から読み出すときはデータファイルに付与されているＣＲＣ２４を用いて読み出したデータのチェックを行う。具体的には、読み出したデータ（図２のＣＲＣ２４以外のデータ）から計算したＣＲＣと、ファイルに蓄積されていたＣＲＣが一致していたら、読み込んだデータに異常はないとしてアプリケーション部１１に引渡し、読み出したデータから計算したＣＲＣと読み出したＣＲＣ２４が不一致の場合は、蓄積したデータに異常が発生していることをアプリケーション部１１に通知して、ファイル読み込みエラーとする。
【００２０】
プログラムバージョン“２”では前記の通り電話番号データにＣＲＣ２４が付与された形式で蓄積しているが、プログラムバージョン“１”では電話番号データにＣＲＣ２４が付与されていない形式で蓄積している。図３にプログラムバージョン“１”が使用する電話番号データファイルのファイル形式と、プログラムバージョン“２”が使用する電話番号データのファイル形式を示す。プログラムバージョン“１”が使用する電話番号データファイルバージョンは“１”、プログラムバージョン２が使用する電話番号データファイルバージョンは“２”とする。
【００２１】
図３において、データファイルバージョン１におけるバージョン３０はデータファイルのバージョン、ＩＤ３１は各データの識別ＩＤ、名前３２は、各データの名前、電話番号３３は、各データの電話番号である。データファイルバージョン２については図２に示したデータファイルと同様である。バージョン３０、ＩＤ３１、名前３２、電話番号３３については、データファイルバージョン“１”とデータファイルバージョン“２”は同様に設けられているが、データファイルバージョン“１”にはＣＲＣが存在しない。そのため、プログラムバージョン“１”のプログラムがデータファイルバージョン“２”のファイルを読み込む場合、ＣＲＣ２４の部分をＩＤが“５”の次の電話番号データと誤って読み込み、動作異常となる場合がある。そのため、プログラムバージョン“２”からプログラムバージョン“１”へのプログラムバージョンダウンを行うためには同時にデータ蓄積部１６の電話番号データファイルのバージョンも“２”から“１”へバージョンダウンする必要がある。
【００２２】
図４は、プログラムバージョン“２”からプログラムバージョン“１”へプログラムバージョンダウンを行う際の動作を示すフローチャートである。
プログラム管理部１５は、データ蓄積装置１が動作中は定期的に、例えば１２時間毎にプログラム配信サーバ２に対してプログラム更新チェックを行う。プログラム更新チェックはＨＴＴＰを用いて行う。プログラム更新チェックを行うためのＵＲＬは固定であり、データ蓄積装置１内に予め埋めこまれているものとする。図５はプログラム蓄積部１７の内部構造である。プログラム蓄積部１７にはプログラムデータを格納する領域が２面用意されている。第１面４０にはプログラムＡが格納されており、第２面４１にはプログラムＢが格納されている。起動フラグ４２は、プログラムＡの起動フラグ、バージョン４３は、プログラムＡのバージョン、プログラムデータ４４は、プログラムＡのプログラムデータ、起動フラグ４５は、プログラムＢの起動フラグ、バージョン４６は、プログラムＢのバージョン、プログラムデータ４７はプログラムＢのプログラムデータである。
【００２３】
データ蓄積装置１は起動フラグが“１”に設定されている面のプログラムで起動する。図５では起動フラグ４２が“１”に設定されており、起動フラグ４５が“０”に設定されているため、次回起動時はプログラムＡで起動する。バージョンはプログラムバージョンを表しており、プログラムＡはバージョン“２”、プログラムＢはバージョン“１”である。プログラムデータ４４、プログラムデータ４７には実行可能なプログラムバイナリデータが格納されている。
【００２４】
プログラム管理部１５は、プログラム蓄積部１７のデータを読み出し、起動フラグ４２と起動フラグ４５をチェックし、次回起動するプログラム（今回の場合は第１面のプログラムＡが該当）バージョンを取得し、プログラム更新チェックを実施するため、ＨＴＴＰリクエストを通信処理部１０経由でプログラム配信サーバ２に送信する（ステップＳＴ１）。プログラム管理部１５はプログラム更新チェックの応答をプログラム配信サーバ２から通信処理部１０経由で受信する。ここで更新有の場合は２００ ＯＫ通知が返り、更新なしの場合は４０４ Ｎｏｔ Ｆｏｕｎｄが返るとする。この応答によりプログラム管理部１５は更新プログラムの有無を確認する（ステップＳＴ２）。更新プログラムが存在しない場合（ステップＳＴ２のＮＯ）は、次回のプログラム更新チェックを行うまで一定時間待機する（ステップＳＴ４）。プログラム更新チェックで更新プログラムが存在した場合（ステップＳＴ２のＹＥＳ）には、プログラム管理部１５は通信処理部１０経由で更新プログラムをダウンロードし、バージョン番号とプログラムデータを入手する（ステップＳＴ３）。
【００２５】
ダウンロードしたプログラムは、起動フラグが０の面（現在の例ではプログラムデータ４１側の第２面）に蓄積する。ダウンロードしたタイミングでは起動フラグは０のままとする（ステップＳＴ５）。プログラム管理部１５は、ダウンロードしたプログラムのバージョンと、現在起動しているプログラムのバージョンを比較する。今回のプログラム更新がバージョンダウンの場合（ステップＳＴ６のＹＥＳ）、プログラム管理部１５からデータ管理部１２に対してプログラムバージョンダウン通知が送信される（ステップＳＴ７）。データ管理部１２は、プログラムバージョン“２”ではデータ蓄積部１６に格納するデータファイルにＣＲＣ２４を付与するように変更したので、バージョンダウンの場合はデータファイルについてもバージョンダウンする必要があることを知っており、データ蓄積部１６に格納されている電話番号データを読み出し、データバージョンダウン部１３に送信する（ステップＳＴ８）。
【００２６】
データバージョンダウン部１３は読み出したデータからＣＲＣ２４を削除したデータを生成し、ファイルのバージョンを“１”に変更し、データ管理部１２に送信する（ステップＳＴ９）。データ管理部１２はデータ蓄積部１６のバージョン“２”の電話番号データファイルを削除して、バージョンダウンしたバージョン“１”の電話番号データファイルを書きこむ（ステップＳＴ１０）。データ管理部１２は、データ蓄積部１６への書き込みを終了すると、プログラム管理部１５にデータバージョンダウン終了通知を行う（ステップＳＴ１１）。プログラム管理部１５はデータバージョンダウン終了通知を受けると、プログラム蓄積部１７に蓄積した更新プログラムの起動フラグ４５を“１”に変更し、逆面のプログラムの起動フラグ４２を“０”に変更し（ステップＳＴ１２）、再起動を行う（ステップＳＴ１３）。再起動後はブートローダ１８がプログラム蓄積部１７の起動フラグが１のプログラムを用いてデータ蓄積装置１を起動する。今回の例ではプログラム更新によりダウンロードしたプログラムバージョン“１”で起動する（ステップＳＴ１４）。データ蓄積部１６のデータファイルはプログラムバージョン“１”で使用可能なデータファイルバージョン“１”に変換されており、バージョンダウンは完了する。尚、ステップＳＴ６において、プログラムバージョンダウンではなかった場合は、ステップＳＴ１２に移行する。
【００２７】
また、データバージョンアップ部１４については公知の動作と同様であるため、その詳細説明は省略する。即ち、データバージョンアップ部１４は、プログラムバージョンアップ後の起動時に、データ蓄積部１６のファイルバージョンをチェックし、自身が読み込み可能なデータファイルバージョンよりも小さいバージョンのデータファイルについては、自身が読み書き可能な最新バージョンのファイル形式に変換する機能を提供する。ただし、このような動作は、本発明とは直接関係が無いため、フローチャート等の詳細説明は省略する。
【００２８】
このようにプログラムバージョンダウンの際にプログラム管理部１５からデータ管理部１２に対してプログラム変更通知を送信し、データ管理部１２にて必要なデータファイルの変更を行った後にデータバージョンダウン終了通知をプログラム管理部１５に通知し、その後に更新したプログラムの起動フラグをオンすることにより扱えるファイル形式が異なるバージョンへのバージョンダウンを完了することが可能となる。
【００２９】
以上では、データファイルバージョン“１”を利用するプログラムバージョン“１”と、データファイルバージョン“２”を利用するプログラムバージョン“２”の間でバージョンダウンすることが可能な構成について説明を行った。次に各プログラムバージョンで使用可能なデータファイルバージョンをデータ蓄積装置１内で管理しているデータ蓄積装置１ａの説明を行う。
【００３０】
図６は、図１のデータ蓄積装置１に対して、ファイルバージョン蓄積部５０を追加したデータ蓄積装置１ａを示している。図１の構成と異なる部分は、データ管理部１２ａ、データバージョンダウン部１３ａ、プログラム管理部１５ａと、追加されたファイルバージョン蓄積部５０を含むプログラム更新管理部１９ａの構成である。
【００３１】
図７は、ファイルバージョン蓄積部５０の説明図である。
ファイルバージョン蓄積部５０は、プログラムバージョン６０と、そのプログラムが使用可能なデータファイルバージョン６１を記載したデータテーブルを蓄積する不揮発メモリの一部である。図示例ではプログラムバージョン６０が“１”では、データファイルバージョン６１の“１”が使用可能であり、プログラムバージョン６０が“２”では、データファイルバージョン６１の“２”が使用可能である。本例ではプログラムバージョン“１”と“２”の２バージョンのみが記載されているが、さらにバージョンデータを登録することにより三つ以上の複数のバージョンを管理することが可能である。
【００３２】
図８は、図６のデータ蓄積装置１ａの動作を示すフローチャートである。
図８において、図４の動作と異なるのは、図４のステップＳＴ７〜ＳＴ９を図８のステップＳＴ２０〜ＳＴ２３に置き換えた部分である。他の処理は図４と同様であるため、ここでは変更部分についてのみ説明する。
プログラム管理部１５ａは、データ管理部１２ａに対して更新ダウンロードしたプログラムのプログラムバージョンを付与してプログラムバージョンダウン通知を行う（ステップＳＴ２０）。データ管理部１２ａはデータ蓄積部１６から電話番号データを読み出し、バージョンダウンするプログラムのバージョン番号と共にデータバージョンダウン部１３ａへ送信する（ステップＳＴ２１）。データバージョンダウン部１３ａはファイルバージョン蓄積部５０からバージョンダウン先のプログラムが使用可能なファイルデータバージョンを検索する。本実施の形態の場合、プログラムバージョン“１”がバージョンダウン先のため、図７の例によるとデータファイルバージョンは“１”となる（ステップＳＴ２２）。データバージョンダウン部１３ａはデータ形式をプログラムバージョンダウン先のプログラムが使用可能なデータファイルバージョンにバージョンダウンする（ステップＳＴ２３）。
【００３３】
このように、データ蓄積装置１ａを図６の構成に変更することにより、各バージョンのプログラムが使用可能なデータファイルバージョンを管理することができ、三つ以上の複数のデータファイルバージョンを有しているプログラムについて任意のプログラムバージョンにバージョンダウンすることが可能となる。
【００３４】
次にファイルバージョン蓄積部５０は有さないが、プログラム配信サーバ２からダウンロードする更新用プログラムと共にその更新用プログラムが使用可能なデータファイルバージョンを取得可能とすることで同様の効果が得られる例について説明を行う。データ蓄積装置の図面上の構成は図１と同様である。ただし、プログラム管理部１５がプログラム更新チェックにより更新プログラムの存在を検知し、更新プログラムをダウンロードする際に更新プログラムのバージョンだけでなく、更新プログラムが使用可能なデータファイルのバージョンもプログラム配信サーバ２から取得可能とする。
【００３５】
図９は、プログラム配信サーバ２から入手したプログラムが使用可能なデータファイル形式バージョンを追加したプログラム蓄積部１７を示す構成図である。２面のプログラムデータにデータバージョン７０とデータバージョン７１が追加されている。
図１０は、プログラム配信サーバ２から更新プログラムをダウンロードする際に、該更新プログラムが使用可能なデータファイルバージョン情報を付与して配信する場合のフローチャートである。図１０のフローチャートにおいて、図４とは異なる処理は、先ず、ステップＳＴ３が図１０のステップＳＴ３０に変更されている点である。ステップＳＴ３０では、プログラム管理部１５がプログラム配信サーバ２からプログラムをダウンロードする際に更新プログラムが使用可能なデータファイルのバージョンを同時に入手するように変更している。また、図４のステップＳＴ７〜ＳＴ９は、図１０ではステップＳＴ３１〜ＳＴ３３に変更されている。プログラム管理部１５からデータ管理部１２にデータバージョンを付与したプログラムバージョンダウン通知を行い（ステップＳＴ３１）。データ管理部１２はデータ蓄積部１６から電話番号データを読み出し、バージョンダウンするプログラムが使用可能なデータファイルバージョンと共にデータバージョンダウン部１３へ送信する（ステップＳＴ３２）。データバージョンダウン部１３はデータ形式をプログラムバージョンダウン先が使用可能なデータファイルバージョンにバージョンダウンする（ステップＳＴ３３）。
【００３６】
このようにダウンロードする更新プログラムと共にそのプログラムが使用可能なデータファイルバージョンを受信可能とすることで、バージョンアップと共に複数のデータファイルバージョンを有しているプログラムについて任意のプログラムバージョンにバージョンダウンすることが可能となる。
【００３７】
以上説明したように、実施の形態１のバージョンダウン管理装置によれば、起動するプログラムの管理を行うと共に、プログラムのバージョンダウンを行う場合、プログラムバージョンダウン通知を発行するプログラム管理部と、プログラムバージョンダウン通知を受信した場合、バージョンダウンされるプログラムが使用するデータを、バージョンダウン後のプログラムが使用可能な形式にバージョンダウンするデータバージョンダウン部とを備え、プログラム管理部は、データバージョンダウン部でバージョンダウンが完了した後に、バージョンダウンするプログラムを起動用プログラムとして設定するようにしたので、プログラムのバージョンダウンとファイルのバージョンダウンのタイミングを同期させることができる。
【００３８】
また、実施の形態１のバージョンダウン管理装置によれば、プログラムバージョンとプログラムバージョンのプログラムが使用するデータファイルのデータバージョンとの対応関係を示すファイルバージョン蓄積部を備えると共に、プログラム管理部は、バージョンダウンするプログラムのプログラムバージョンを含めて通知し、データバージョンダウン部は、プログラムバージョンダウン通知を受信した場合、バージョンダウンするプログラムが使用するデータファイルのバージョンをデータバージョン蓄積部から検索し、検索して得たバージョンになるようデータファイルのバージョンダウンを行うようにしたので、三つ以上の複数のデータファイルバージョンを有しているプログラムについて任意のプログラムバージョンにバージョンダウンすることが可能となる。
【００３９】
また、実施の形態１のバージョンダウン管理装置によれば、プログラムとプログラムが使用するデータファイルのデータバージョンとの関係を示すプログラム蓄積部を備え、プログラム管理部は、プログラムのバージョンダウンを行う場合、プログラムが使用するデータバージョンをプログラム蓄積部から取得し、プログラムバージョンダウン通知に使用可能なデータバージョンを含め、データバージョンダウン部は、プログラムバージョンダウン通知のデータバージョンになるようデータファイルのバージョンダウンを行うようにしたので、三つ以上の複数のデータファイルバージョンを有しているプログラムについて任意のプログラムバージョンにバージョンダウンすることが可能となる。
【００４０】
実施の形態２．
実施の形態１では、データファイル形式としてファイルにＣＲＣ付与の有無という、アプリケーションが扱う複数のデータファイルに共通な処理を行うデータ管理部１２の例について説明を行った。実施の形態２では、アプリケーションが扱うデータファイルの内容に変更が発生した場合でも正しくバージョンダウン可能であるデータ蓄積装置について説明を行う。
【００４１】
実施の形態２では、ＩＰＴＶ受信端末をデータ蓄積装置の例として説明を行う。ＩＰＴＶ受信端末とは、ＩＰネットワークで映像ストリームを受信、再生する端末であり、ＩＰネットワークに接続して映像ストリームを受信、再生してＩＰ放送、地デジ再送信等のサービス行う。国内ではＩＰＴＶフォーラムの仕様書が開示されている。
【００４２】
図１１は、実施の形態２のバージョンダウン管理装置を示すシステム構成図である。
図示のシステムは、データ蓄積装置１００、プログラム配信サーバ１０１、ストリーム配信サーバ１０２、ＩＰネットワーク１０３、ＴＶ１０４、リモコン１０５を備えている。データ蓄積装置１００はＩＰネットワーク１０３に接続されており、ストリーム配信サーバ１０２から送信される映像ストリームを受信して、映像コンテンツの再生を行う。再生した映像はコンポジットケーブル（図示省略）でＴＶ１０４に表示される。ＴＶ１０４は公知のテレビ受像器であり、リモコン１０５は、ユーザがデータ蓄積装置１００に対して各種操作を行うためのリモコンである。また、プログラム配信サーバ１０１は、データ蓄積装置１００で動作するプログラムを提供するサーバ装置であり、配信するバージョンのプログラムが１バージョン提供される。プログラム配信サーバ１０１については、実施の形態１のプログラム配信サーバ２と同様の機能を提供する。データ蓄積装置１００はＩＰＴＶフォーラムのＩＰ放送と地デジ再送信サービスに対応している。
【００４３】
図１１は、データ蓄積装置１００の内部構造も示している。
データ蓄積装置１００は、通信処理部１１０、Ｄｅｍｕｘ部（デマルチプレクサ）１１１、映像デコード部１１２、映像出力部１１３、音声デコード部１１４、音声出力部１１５、プログラム管理部１１６、全体制御部１１７、予約部１１８、予約データ管理部１１９、予約データバージョンアップ部１２０、予約データバージョンダウン部１２１、ユーザデータ管理部１２２、ユーザデータバージョンアップ部１２３、ユーザデータバージョンダウン部１２４、ブートローダ１２５、プログラム蓄積部１２６、ユーザ設定蓄積部１２７、予約データ蓄積部１２８、データ管理部リスト１２９、リモコン受信部１３０、ＧＵＩ部１３１を備えている。
【００４４】
図１におけるアプリケーション部１１に相当する機能部は、Ｄｅｍｕｘ部１１１、映像デコード部１１２、映像出力部１１３、音声デコード部１１４、音声出力部１１５、全体制御部１１７、予約部１１８、ＧＵＩ部１３１、リモコン受信部１３０に該当する。図１におけるデータ管理部１２に相当する機能部は、予約データ管理部１１９とユーザデータ管理部１２２に相当する。図１におけるデータバージョンダウン部１３に相当する機能部は、予約データバージョンダウン部１２１とユーザデータバージョンダウン部１２４に該当する。図１のデータ蓄積部１６に相当する機能部は、予約データ蓄積部１２８、ユーザ設定蓄積部１２７に該当する。
【００４５】
また、図１１のプログラム管理部１１６の機能、ブートローダ１２５の機能、プログラム蓄積部１２６の構造は、それぞれ実施の形態１のプログラム管理部１５の機能、ブートローダ１８の機能、プログラム蓄積部１７と同一である。
【００４６】
データ蓄積装置１００は視聴予約機能とＧＵＩ機能を有しており、視聴予約機能は予約データ、ＧＵＩ機能はユーザ設定データを不揮発メモリに保存している。実施の形態２では、この予約データとユーザ設定データの二つのデータファイル形式についてプログラムバージョンダウンが発生した場合の処理について説明を行う。
【００４７】
予約部１１８は、ユーザがＧＵＩ部１３１の画面からリモコン１０５の操作によりリモコン受信部１３０経由で入力された予約データを予約データ管理部１１９に送信して予約データ蓄積部１２８に蓄積することや、予約データ管理部１１９経由で予約データ蓄積部１２８から読み出した予約データを管理し、予約時間に到達すると全体制御部１１７に対してチャンネル切り替え要求を送信する。チャンネル切り替え要求には、切り替え先としてＩＰ放送か地デジ再送信のどちらのモードであるか示す放送モード、切り替え先のチャンネル番号が付与されている。
【００４８】
全体制御部１１７は、チャンネル切り替え要求を受信すると、放送モードとチャンネル番号から内部に有しているストリーム受信のための情報から切り替え先のマルチキャストアドレスとポート番号を検索し、通信処理部１１０にマルチキャストアドレスとポート番号を渡す。通信処理部１１０はマルチキャストアドレスとポート番号に対してストリームのリクエストをＩＰネットワーク１０３の図示しないルータに対して行う。これによりストリーム配信サーバ１０２が送信するＲＴＰマルチキャスト映像ストリームを通信処理部１１０が受信する。
【００４９】
通信処理部１１０は、受信した映像ストリームの通信プロトコルヘッダを取り除き、ＭＰＥＧ−２システムのＴＳ（トランスポートストリーム）形式でＤｅｍｕｘ部１１１に入力する。Ｄｅｍｕｘ部１１１ではＴＳ多重された映像と音声データを分離し、映像ストリームを映像デコード部１１２、音声ストリームを音声デコード部１１４に入力する。
【００５０】
映像デコード部１１２ではＭＰＥＧ形式で圧縮された映像ストリームをデコードして映像データに変換する。音声デコード部１１４もＭＰＥＧ形式で圧縮された音声ストリームをデコードし、音声データに変換する。映像デコード部１１２は映像データを映像出力部１１３に送信し、音声デコード部１１４は音声データを音声出力部１１５に転送する。
映像出力部１１３は、ＧＵＩ部１３１で生成したＧＵＩ画像データと映像デコード部１１２でデコードした映像データを重畳した映像データを生成してＮＴＳＣ信号に変換し、出力端子から出力する。音声出力部１１５はデコードした音声データをアナログ音声に変換し、出力端子から出力する。このようにして、データ蓄積装置１００はＩＰネットワーク１０３から受信した映像ストリームを再生し、視聴予約した番組の再生を行う。
【００５１】
データ蓄積装置１００のユーザがリモコン１０５を用いて入力したユーザ設定データを、ＧＵＩ部１３１がリモコン受信部１３０経由で受信し、ユーザデータ管理部１２２経由でユーザ設定蓄積部１２７に保存する。設定したデータは起動時にユーザ設定蓄積部１２７から読み出され、ユーザデータ管理部１２２で管理する。
【００５２】
以下、実施の形態１と同様に、プログラムバージョン“２”で動作しているデータ蓄積装置１００がプログラムバージョン“１”にバージョンダウンする処理について説明を行う。
図１２は、予約データ蓄積部１２８内のデータファイルバージョン“１”とデータファイルバージョン“２”の予約データの構造を示している。
プログラムバージョン“１”はデータファイルバージョン“１”の形式を使用可能であり、プログラムバージョン“２”はデータファイルバージョン“２”の形式を使用可能である。図中、予約データ２００は、データファイルバージョン“１”の予約データであり、ＩＤ２０１、放送モード２０２、チャンネル２０３、開始時間２０４、終了時間２０５、データファイルバージョン２０６の情報を有している。また、予約データ２１０は、データファイルバージョン“２”の予約データであり、ＩＤ２１１、モード２１２、チャンネル２１３、開始時間２１４、終了時間２１５、データファイルバージョン２１６、番組のタイトル２１７、番組概要２１８の情報を有している。データファイルバージョン“１”と“２”の相違点は、データファイルバージョン “２”において、予約する番組のタイトル２１７と番組概要２１８を予約データに蓄積可能としたことである。番組のタイトル２１７と番組概要２１８は映像ストリームに多重されている番組情報から取得する。番組情報の構造等はＩＰＴＶフォーラムの仕様に記載されており、本実施の形態では番組情報から開始時間を元に番組のタイトルと番組の概要情報を取得するのみであるため、これらの情報取得処理についての詳細な説明は省略する。
【００５３】
図１３は、ユーザ設定蓄積部１２７内のデータファイルバージョン“１”とデータファイルバージョン“２”のユーザデータの構造を示している。プログラムバージョン“１”はデータファイルバージョン“１”の形式を使用可能であり、プログラムバージョン“２”はデータファイルバージョン“２”の形式を使用可能である。ユーザ設定データ２５０は、データファイルバージョン“１”のユーザ設定データであり、データファイルバージョン２５１、音声多重設定２５２、二ヶ国語設定２５３、字幕設定２５４、映像設定２５５、光デジタル音声出力設定２５６の情報を有している。ユーザ設定データ２６０は、データファイルバージョン“２”のユーザ設定データであり、データファイルバージョン２６１、音声多重設定２６２、二ヶ国語設定２６３、字幕設定２６４、映像設定２６５、光デジタル音声出力設定２６６、パレンタルコントロール設定２６７、パレンタルコントロール設定パスワード２６８の情報を有している。音声多重設定２５２／２６２、二ヶ国語設定２５３／２６３、字幕設定２５４／２６４、映像設定２５５／２６５、光デジタル音声出力設定２５６／２６６については、データファイルバージョン“１”とデータファイルバージョン“２”で同一であり、パレンタルコントロール設定２６７とパレンタルコントロール設定パスワード２６８が、データファイルバージョン“２”で付加されている。
【００５４】
音声多重設定２５２／２６２は音声多重番組の視聴時にデフォルトで主音声、副音声のどちらを出力するかの設定を行う項目であり、二ヶ国語設定２５３／２６３は二ヶ国語番組の視聴時にデフォルトで出力する言語の設定を行う項目である。字幕設定２５４／２６４は字幕あり番組視聴時にデフォルトで字幕を表示するか否かを設定し、映像設定２５５／２６５は映像の明るさの設定を行う。光デジタル音声出力設定２５６／２６６は光デジタル音声の出力フォーマットの設定である。
パレンタルコントロール設定２６７はデータ蓄積装置１００の視聴年齢を設定しており、視聴年齢制限設定されている番組の場合、データ蓄積装置１００に設定されている視聴年齢と同一もしくは低い視聴年齢制限設定の番組は視聴可能であるが、データ蓄積装置１００に設定されている視聴年齢よりも高い視聴年齢制限設定の番組は視聴することができない。２６８はパレンタルコントロール設定パスワードであり、データ蓄積装置１００の視聴年齢設定を設定する前にチェックするパスワードが蓄積されている。
【００５５】
次に、実施の形態２のバージョンダウン管理装置におけるバージョンダウン動作について説明する。
図１４は、プログラムバージョン“２”からプログラムバージョン“１”へのプログラムバージョンダウンを行う場合の動作を示すフローチャートである。
プログラム管理部１１６はデータ蓄積装置１００が電源オンしている間は定期的にプログラム配信サーバ１０１に対してプログラム更新チェックを行う。プログラム更新チェックにはＨＴＴＰを用いる。プログラム更新チェックを行うためのＵＲＬは固定であり、データ蓄積装置１００に内に予め埋めこまれている。プログラム蓄積部１２６の内部構造は図５に示したプログラム蓄積部１７と同一である。
【００５６】
図１４のフローチャートにおいて、ステップＳＴ１０１からステップＳＴ１０６までは実施の形態１における図４のフローチャートのステップＳＴ１からステップＳＴ６までの動作と同一であるため、これらの説明は省略する。
今回のプログラム更新がバージョンダウンの場合（ステップＳＴ１０６のＹＥＳ）だとすると、プログラム管理部１１６はデータ管理部リスト１２９を検索し、プログラムバージョンダウン通知を送信する必要があるデータ管理部は予約データ管理部１１９とユーザデータ管理部１２２であることを認識する。プログラム管理部１１６は全体制御部１１７を経由して予約部１１８とＧＵＩ部１３１に対してプログラムバージョンダウン通知を送信する。
【００５７】
予約部１１８は予約データ管理部１１９にプログラムバージョンダウン通知を送信する（ステップＳＴ１０７）。予約データ管理部１１９はプログラムバージョンダウン通知を受け取ると、予約データ蓄積部１２８から予約データを読み出し、予約データバージョンダウン部１２１に送信する（ステップＳＴ１０８）。予約データバージョンダウン部１２１はプログラムバージョン“２”で使用可能なデータファイルバージョン“２”の各データからタイトル２１７と番組概要２１８を削除し、プログラムバージョン“１”で使用可能なデータファイルバージョン“１”のデータを生成して予約データ管理部１１９に送信する（ステップＳＴ１０９）。予約データ管理部１１９はデータファイルバージョン“２”のデータを削除して、データファイルバージョン“１”のデータを予約データ蓄積部１２８に書き込む（ステップＳＴ１１０）。予約データ管理部１１９は、予約部１１８と全体制御部１１７を介してプログラム管理部１１６に対してデータバージョンダウン終了通知を送信する（ステップＳＴ１１１）。データバージョンダウン終了通知は発行元が記載されており、これにより予約データ管理部１１９が送信したデータバージョンダウン通知であることが認識可能である。
【００５８】
ＧＵＩ部１３１はユーザデータ管理部１２２にプログラムバージョンダウン通知を送信する（ステップＳＴ１０７）。ユーザデータ管理部１２２はプログラムバージョンダウン通知を受け取ると、ユーザ設定蓄積部１２７からユーザデータを読み出し、ユーザデータバージョンダウン部１２４に送信する（ステップＳＴ１０８）。ユーザデータバージョンダウン部１２４はプログラムバージョン“２”で使用可能なデータファイルバージョン“２”のデータからパレンタルコントロール設定２６７とパレンタルコントロール設定パスワード２６８を削除し、プログラムバージョン“１”で使用可能なデータファイルバージョン“１”のデータを生成してユーザデータ管理部１２２に送信する（ステップＳＴ１０９）。ユーザデータ管理部１２２はデータファイルバージョン“２”のデータを削除して、データファイルバージョン“１”のデータをユーザ設定蓄積部１２７に書き込む（ステップＳＴ１１０）。ユーザデータ管理部１２２は、ＧＵＩ部１３１と全体制御部１１７を介してプログラム管理部１１６に対してデータバージョンダウン終了通知を送信する（ステップＳＴ１１１）。データバージョンダウン終了通知は発行元が記載されており、これによりユーザデータ管理部１２２が送信したデータバージョンダウン通知であることが認識可能である。
【００５９】
予約データ管理部１１９とユーザデータ管理部１２２からデータバージョンダウン通知を受信した（ステップＳＴ１１２）プログラム管理部１１６は、全てのデータバージョンダウンが完了したことを認識し、プログラム蓄積部１２６に蓄積した更新プログラムの起動フラグ４５を“１”に変更し、既存のプログラムの起動フラグ４２を“０”に変更し（ステップＳＴ１１３）、再起動を行う（ステップＳＴ１１４）。再起動後はブートローダ１２５がプログラム蓄積部１２６の起動フラグが１のプログラムを用いてデータ蓄積装置１００を起動する。今回はプログラム更新によりダウンロードしたプログラムバージョン“１”のプログラムにより起動する（ステップＳＴ１１５）。起動後はプログラムバージョン“１”のプログラムで起動し、また、予約データ蓄積部１２８とユーザ設定蓄積部１２７のデータはプログラムバージョン“１”で使用可能なデータファイルバージョン“１”に変換されているため、問題なくバージョンダウンを完了させることができる。
【００６０】
ここで、予約データバージョンアップ部１２０とユーザデータバージョンアップ部１２３については詳細な説明を省略するが、予約データバージョンアップ部１２０とユーザデータバージョンアップ部１２３は、プログラムバージョンアップ後の起動時に、予約データ蓄積部１２８とユーザ設定蓄積部１２７のファイルバージョンをチェックし、自身が読み込み可能なデータファイルバージョンよりも小さいバージョンのデータファイルについては、自身が読み書き可能なバージョンのファイル形式にバージョンアップする機能を提供する。ただし、本発明とは直接関係が無いため、フローチャート等を用いた説明は省略する。
【００６１】
このようにプログラムバージョンダウンの際にプログラム管理部１１６から予約データ管理部１１９とユーザデータ管理部１２２に対してプログラム変更通知を送信し、予約データ管理部１１９とユーザデータ管理部１２２にて必要なデータファイルの変更を行った後にデータバージョンダウン通知をプログラム管理部１１６に通知し、全てのデータバージョンダウン終了通知を受けた後に、更新したプログラムの起動フラグをＯＮすることにより、複数のデータ管理部が存在する場合でもファイル形式が異なるバージョンへのバージョンダウンを実現することが可能となる。
【００６２】
以上説明したように、実施の形態２のバージョンダウン管理装置によれば、バージョンダウンされるプログラムが使用するデータをそれぞれ管理する複数のデータ管理部を備え、複数のデータ管理部は、プログラムバージョンダウン通知を受信した場合は、管理するデータに対応したデータバージョンダウン部によりバージョンダウンを行った後、ファイルバージョンダウン終了通知を行い、プログラム管理部は、プログラムのバージョンダウンを行う場合は、複数のデータ管理部にプログラムバージョンダウン通知を行い、かつ、全てのデータ管理部からファイルバージョンダウン終了通知を受けた場合に、バージョンダウンするプログラムを起動用プログラムとして設定するようにしたので、複数のデータ管理部が存在する場合でもファイル形式が異なるバージョンへのバージョンダウンを実現することが可能となる。
【００６３】
尚、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００６４】
１，１ａ，１００  データ蓄積装置、２，１０１  プログラム配信サーバ、３，１０３  ＩＰネットワーク、１０，１１０  通信処理部、１１  アプリケーション部、１２，１２ａ  データ管理部、１３，１３ａ  データバージョンダウン部、１４  データバージョンアップ部、１５，１５ａ，１１６  プログラム管理部、１６  データ蓄積部、１７，１２６  プログラム蓄積部、１８，１２５  ブートローダ、１９，１９ａ  プログラム更新管理部、５０  ファイルバージョン蓄積部、１０２  ストリーム配信サーバ、１０４  ＴＶ、１０５  リモコン、１１１  Ｄｅｍｕｘ部、１１２  映像デコード部、１１３  映像出力部、１１４  音声デコード部、１１５  音声出力部、１１７  全体制御部、１１８  予約部、１１９  予約データ管理部、１２０  予約データバージョンアップ部、１２１  予約データバージョンダウン部、１２２  ユーザデータ管理部、１２３  ユーザデータバージョンアップ部、１２４  ユーザデータバージョンダウン部、１２７  ユーザ設定蓄積部、１２８  予約データ蓄積部、１２９  データ管理部リスト、１３０  リモコン受信部、１３１  ＧＵＩ部。
【図１】
0005713809.tif 000002
【図２】
0005713809.tif 000003
【図３】
0005713809.tif 000004
【図４】
0005713809.tif 000005
【図５】
0005713809.tif 000006
【図６】
0005713809.tif 000007
【図７】
0005713809.tif 000008
【図８】
0005713809.tif 000009
【図９】
0005713809.tif 000010
【図１０】
0005713809.tif 000011
【図１１】
0005713809.tif 000012
【図１２】
0005713809.tif 000013
【図１３】
0005713809.tif 000014
【図１４】
0005713809.tif 000015