(57)【要約】【課題】  エンベデッドシステムにおいてソフトウェアをアップデートする際に、より速やかにアップデートできるようにするための装置及び方法を提供する。【解決手段】ターゲットシステム２０２からのソフトウェアバージョン情報を受信し、該ソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータをダウンロードするデータとしてターゲットシステム２０２にダウンロードするサーバー２００と、サーバー２００からダウンロードされたデータを分析し、位置情報を参照して、変更されたバイナリーイメージをアップデートするターゲットシステム２０２と、を備える。【選択図】  図２
2005209195.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットシステムからのソフトウェアバージョン情報を受信し、該受信したソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータを、ダウンロードするデータとして前記ターゲットシステムにダウンロードするサーバーと、
前記サーバーからダウンロードされた前記データを分析し、前記位置情報を参照して、前記変更されたバイナリーイメージをアップデートするターゲットシステムと、
を備えることを特徴とするエンベデッドシステム。
【請求項２】
前記サーバーは、前記ターゲットシステムとデータの送受信を行うためのインターフェースと、
新しいソフトウェア情報のバイナリーイメージを生成するためのダウンロード管理器と、
前記ターゲットシステムからの前記ソフトウェア情報によるバイナリーイメージと前記新しいソフトウェア情報によるバイナリーイメージとを比較し、変更されたバイナリーイメージ情報と前記位置情報とを含んだデータとを生成するバイナリーイメージ管理器と、を備えること
を特徴とする請求項１記載のエンベデッドシステム。
【請求項３】
前記バイナリーイメージ管理器は、前記バイナリーイメージの比較を通じて、ヘッダーフィールドと、位置情報とダウンロードする新しいソフトウェア情報の変更されたバイナリーイメージデータとを具備するデータフィールドと、エラーチェックフィールドと、を備えたデータを生成すること
を特徴とする請求項２記載のエンベデッドシステム。
【請求項４】
前記バイナリーイメージ管理器は、前記バイナリーイメージを比較する際に、受信されたソフトウェア情報によるバイナリーイメージと、新しいソフトウェア情報に対応するバイナリーイメージと、を比較するための、予め設定されたウィンドウを使用すること
を特徴とする請求項２記載のエンベデッドシステム。
【請求項５】
前記ターゲットシステムは、前記サーバーとの間でデータの送受信をするためのインターフェースと、
前記サーバーからのソフトウェアのバージョン情報要請に応答して現在保存されているソフトウェアのバージョン情報を提供し、前記サーバーからダウンロードされるバイナリーデータを分析してアップデートを実行するバイナリーイメージ制御機と、
前記サーバーから伝送されるデータをダウンロードして保存し、イメージアップデートを要請する信号を出力するターゲットダウンロード管理器と、
前記ターゲットダウンロード管理器からイメージアップデート信号が入力される場合には、前記ダウンロードしたデータを分析し、アップデートする位置情報を認識し、前記位置情報に対応する位置に前記ダウンロードしたバイナリーイメージデータのアップデートを実行するバイナリーイメージ制御器と、を備えること
を特徴とする請求項１記載のエンベデッドシステム。
【請求項６】
前記ターゲットシステムは、前記バイナリーイメージ制御機からエラーチェック要請がある場合に、前記ダウンロードしたデータを確認検査するためのエラーチェック器をさらに備えること
を特徴とする請求項５記載のエンベデッドシステム。
【請求項７】
サーバーとターゲットシステムとを備えたエンベデッドシステムにおいてソフトウェアをアップデートするための方法であって、
前記ターゲットシステムからソフトウェアのバージョン情報を受信し、該受信したソフトウェアのバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアのバージョン情報に対応するバイナリーイメージ情報と、を比較し、変更されたバイナリーイメージ情報と位置情報とを含んだデータを前記ターゲットシステムにダウンロードする第１の過程と、
前記データが前記ターゲットシステムにダウンロードされると、前記ターゲットシステムが前記データを分析して前記位置情報に従って前記バイナリーイメージをアップデートする第２の過程と、
を具備することを特徴とするソフトウェアのダウンロード方法。
【請求項８】
前記第１の過程は、前記ターゲットシステムへソフトウェアのバージョン情報を要請し、該要請したソフトウェアのバージョン情報を当該ターゲットシステムから受信する段階と、
前記ターゲットシステムのソフトウェアのバージョン情報によるバイナリーイメージと、前記ダウンロードしようとするソフトウェアのバージョン情報によるバイナリーイメージとを比較し、前記二つのバイナリーイメージの相違する部分に該当するデータと該データの位置情報とを含ませたデータを、ダウンロードするデータとして生成する段階と、
生成された前記ダウンロードするデータを前記ターゲットシステムにダウンロードする段階と、を具備すること
を特徴とする請求項７記載のソフトウェアのダウンロード方法。
【請求項９】
前記第２の過程は、前記ダウンロードしたデータを分析して、アップデートする位置情報を認識し、前記ターゲットシステム内の前記位置情報に対応した位置に保存されているバイナリーイメージのアップデートを実行する過程を備えること
を特徴とする請求項７記載のソフトウェアのダウンロード方法。
【請求項１０】
前記ダウンロードするデータを生成する段階では、ヘッダーフィールドと、前記位置情報及びダウンロードするバイナリーイメージデータを具備するデータフィールドと、エラーチェックフィールドと、を含むデータを生成すること
を特徴とする請求項８記載のソフトウェアのダウンロード方法。
【請求項１１】
前記バイナリーイメージを比較する際に、バイナリーイメージ管理器が、比較のために予め設定されたウィンドウを使用して、該ウィンドウのサイズの量のバイナリーイメージの各セットを比較すること
を特徴とする請求項８記載のソフトウェアのダウンロード方法。
【請求項１２】
前記バイナリーイメージ管理器は、前記比較の結果、バイナリーイメージが相互に異なる場合には、ダウンロードしようとするバージョンのバイナリーイメージの該当位置のウィンドウサイズに対応するバイナリーイメージを、ターゲットシステム内に存在するバージョンのバイナリーイメージの該当位置から、該ウィンドウの連続的な位置移動を行って、同一のバイトらが存在するか否かについて、イメージファイルの最後までチェックしながらデータを検索すること
を特徴とする請求項１１記載のソフトウェアのダウンロード方法。
【請求項１３】
Ｎ番目のウィンドウを移動させながら比較検索する際に、相互に一致したデータがある場合には、当該データの信頼性検証のために、同一カウント(same count)Ｓを予め設定し、前記Ｎ番目からＮ＋Ｓ番目のウィンドウまで同じデータで一致するるか否かチェックし、一致すれば同一データと判断し、一致しなければ異なるデータと判断すること
を特徴とする請求項１２記載のソフトウェアのダウンロード方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンベデッドシステムに関し、特に、ソフトウェアのダウンロードのためのエンベデッドシステム及びソフトウェアダウンロード方法に関する。
【背景技術】
【０００２】
エンベデッドシステムは、消費者製品、例えば、マイクロプロセッサー又はマイクロコントローラーを備えた大部分の装置に、その装置の一部として内蔵されている。このようなエンベデッドシステムは、当該装置を制御、監視或いは補助するために使われる。例えば、エンベデッドシステムは、移動通信端末機にも適用可能であり、放送通信を提供するための加入者セットトップボックス(settop box)のような装置に内蔵することもできる。
【０００３】
このようなエンベデッドシステムが加入者セットトップボックスに内蔵される場合は、例えば、システムを駆動する装置ドライバ(device driver)と、リアルタイムオペレーションシステム(realtime os)と、アプリケーション(application)などがセットトップボックスに内蔵されることになる。実際に、セットトップボックスが各家庭に設けられる場合に、アプリケーション上でのバグが発生してソフトウェアを更新すなわちアップデートする場合、或いはドライバーの機能をアップデートする場合などには、該当するソフトウェアを遠隔でダウンロードするか、遠隔位置から直接シリアルポート(serial port)を用いてアップデートすることが可能である。
【０００４】
ソフトウェアのダウンロード方法の内で、遠隔でダウンロードする場合には、新しいソフトウェアは、イーサネット（登録商標）ポート(ethernet port)の特定チャンネルを通じて、デバイス即ちセットトップボックスにダウンロードされる。このとき、アップデートされるソフトウェアはダウンロードされる新しいプログラムに入れ替えられるが、ダウンロードされるソフトウェアのデータとしては、全ての対応（該当）するソフトウェア全体のデータがダウンロードされることになる。したがって、ソースコードの一部だけ変更する必要がある場合でさえも、該当するアプリケーション全体をダウンロードして、セットトップボックスに内蔵された既存のアプリケーションを完全に削除して、新しいアプリケーションと取り替えられることになる。すなわち、初期ソースコードの修正が必要である場合に、バイナリーファイルの全体がボード上にダウンロードされる必要がある。そして、バイナリーファイルは、そのサイズがシステムによって数ＫＢ〜数ＭＢ程度であり、バイナリーファイルのダウンロード時間もこのサイズに比例して長くなる。
【０００５】
消費者の多様な要求と、今後の放送と通信が融合されたデジタルメディアサービスネットワークでは、一層多くのコンテンツ(contents)を収容することが求められている。そして、このようなコンテンツサービスを提供する光ネットワークの設定では、各家庭にあるセットトップボックスのような多くの端末及び該端末に接続されるＯＮＵらが用いられ、これらにエンベデッドソフトウェアが内蔵されている。しかしながら、ＯＮＵは頻繁なソフトウェアアップグレードが必要とされ、このように接続された数多くのＯＮＵの一つ一つに対してソフトウェアのアップグレードを頻繁に行わなければならないことから、アップグレード時ごとに多くの時間が費やされ、また、それによって多くのコストが発生した。
【０００６】
また、消費者の多様な要求によってソフトウェアをアップグレードしなければならない場合や、発売開始された製品の欠陷により消費者が持っている既存製品のソフトウェアをアップグレードしなければならない場合が頻繁に生じ得る。このように、ソフトウェアをアップグレードしなければならない状況の場合には、ソフトウェアのダウンロードのための実行コードであるバイナリー(binary)を、ＲＳ２３２Ｃ、ＪＴＡＧ、或いはイーサネット（登録商標）接続を通じてダウンロードすることが頻繁に発生する。
【０００７】
以下、従来のサーバーから該当ソフトウェアをダウンロードしてアップグレードするためのエンベデッドシステムについて、図１を参照して説明する。
【０００８】
図１は、従来のソフトウェアをダウンロードするためのエンベデッドシステムのブロック構成図である。
【０００９】
図１に示されるように、サーバー１００は、ダウンロード管理器１０４によってダウンローディングするソフトウェアのバイナリーイメージが保存されているバイナリーイメージ保存部１０８から、バイナリーのコードを読み出して、このバイナリーを、サーバーインターフェース１０６と、ＲＳ２３２Ｃ，ＪＴＡＧ或いはイーサネット（登録商標）とを通じて、ターゲットシステム１０２に伝送する。そして、ターゲットシステム１０２は、ターゲットシステムインターフェース１１０を通じて受信されるバイナリーイメージを、バイナリーイメージ保存部１１２に保存する。
【００１０】
ここで、サーバー１００は、アップグレードしようとするソフトウェアについてのバイナリーイメージの全体をターゲットシステム１０２に伝送する。また、これを受信したターゲットシステム１０２は、既存のソフトウェアを新たに受信したソフトウェアに取り替えることによって、ソフトウェアのアップグレードを実行する。
【００１１】
しかしながら、システムによって多少の差はあるが、そのダウンロード及びアップロード実行時間には数分以上が費やされる場合が多く、これによりシステム開発を阻害する大きな要因となる。各家庭にあるセットトップボックスの場合に、各１台当たり数分として計算すれば、ソフトウェアのアップグレードのために非常に長い時間が消費される。
【００１２】
また、ソフトウェアをアップグレードするために他の業者（third company）からの専用チャンネルを貸与する場合には、消費時間によって貸与に関するコストが増加するので、高コスト化を招くことになる。
【００１３】
また、上述のように設置されたシステムにおけるソフトウェアのアップグレード時だけでなく、エンベデッドシステムを開発する際にソフトウェアを変更する場合にも、該当するソフトウェアの全体を随時にダウンロードして変更することになるので、このダウンロード時間によって開発時間の大幅な遅れを招くことになる。
【００１４】
上述のように、多様なコンテンツを提供するネットワークにおいて、ソフトウェアのアップグレードが必要であるエンベッデドシステムでは、ソフトウェアをアップグレードするとき毎にサーバーからソフトウェア全体をダウンロードすることにより、多くの時間が消費されるとともに、大きなコストが発生した。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、上述したような従来技術の問題点を解決するためになされたものであり、その第１の目的は、エンベデッドシステムにおいてソフトウェアをアップデートする際に、より速やかにアップデートできるようにするための装置及び方法を提供することにある。
【００１６】
本発明の第２の目的は、ソフトウェアのアップデートに必要となる時間及びコストを減らすための装置及び方法を提供することにある。
【００１７】
本発明の第３の目的は、ソフトウェアをアップデートする際に、既存のソフトウェアから変更されている部分のみをアップデートすることができる装置及び方法を提供することにある。
【００１８】
本発明の第４の目的は、エンベデッドシステムのデバッギング環境でさえも開発時間を短縮させることができる装置及び方法を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するための本発明に係るエンベデッドシステムは、ターゲットシステムからのソフトウェアバージョン情報を受信し、該受信したソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータを、ダウンロードするデータとして前記ターゲットシステムにダウンロードするサーバーと、前記サーバーからダウンロードされた前記データを分析し、前記位置情報を参照して、前記変更されたバイナリーイメージをアップデートするターゲットシステムと、を備えることを特徴とする。
【００２０】
また、上記目的を達成するための本発明は、サーバーとターゲットシステムとを備えたエンベデッドシステムにおいてソフトウェアをアップデートするための方法であって、ターゲットシステムからソフトウェアのバージョン情報を受信し、該受信したソフトウェアのバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアのバージョン情報に対応するバイナリーイメージ情報と、を比較し、変更されたバイナリーイメージ情報と位置情報とを含んだデータを当該ターゲットシステムにダウンロードする第１の過程と、前記データが前記ターゲットシステムにダウンロードされると、前記ターゲットシステムが前記データを分析して前記位置情報に従って前記バイナリーイメージをアップデートする第２の過程と、を具備することを特徴とする
【発明の効果】
【００２１】
本発明によれば、随時にアップデートが要求されるコンテンツ関連ソフトウェアをアップデートする際に、ソフトウェア全体をダウンロードしないで、ソフトウェアをダウンロードしようとするターゲットシステムのバージョン情報に対応するソフトウェアと、伝送しようとするソフトウェアとの相違部分を再構成して、変更されるデータのみを送受信してダウンロードすることにより、ダウンロード時間やソフトウェアのアップグレード時間が短縮され、さらには、デバッギングの回数や時間も短縮される利点がある。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な一実施形態について添付図面を参照しながら詳細に説明する。下記の説明において、本発明の要旨のみを明確にする目的で、関連した公知機能又は構成に関する具体的な説明は省略する。
【００２３】
以下の本発明の実施形態では、エンベデッドシステムにおいて、随時にアップデートされるソフトウェアを遠隔でより速やかにダウンロードできるようにするための構成としている。
【００２４】
図２は、ソフトウェアをダウンロードするための、本発明の実施形態によるエンベデッドシステムのブロック構成図である。
【００２５】
図２に示されるように、まず、サーバー２００は、ダウンロードする遠隔サーバーやターゲットシステム２０２へのバイナリーイメージファイルのダウンロードを全般的に管理するダウンロード管理器(ＤＣＭ:Download Control Manager)２０４と、ターゲットシステム２０２へ／からのファイル及びデータの送／受信を実行するサーバーインターフェース(ＳＩ:Server Interface)２０８と、ターゲットシステムに提供するバイナリーイメージを生成するバイナリーイメージ管理器(ＢＩＭ:Binary Image Manager)２０６と、バイナリーイメージファイルを保存するためのバイナリーイメージ保存部(Binary Image Storage Unit)２０９と、を備える。
【００２６】
一方、ターゲットシステム２０２は、サーバー２００からソフトウェアをダウンロードする装置であり、このターゲットシステムの例としては、遠隔地に設置されたセットトップボックス又はＯＮＵのような端末などが挙げられる。このようなターゲットシステム２０２は、遠隔のサーバーとの間でのファイル及びデータ送受信の機能を担うターゲットインターフェース(ＴＩ:Target Interface)２１０と、バイナリーイメージについての情報を管理し、新しいバイナリーイメージを受信して変更するバイナリーイメージ制御器(ＢＩＣ:Binary Image Controller)２１６と、ソフトウェアダウンロード過程を管理するターゲットダウンロード管理器(ＴＤＭ:Target Download Management)２１２と、受信したデータについての確認(validation)検査のためのエラーチェック器(ＥＣ:Error Checker)２１４と、バイナリーイメージファイルを保存するバイナリーイメージ保存部２１５と、を備える。
【００２７】
以下、図２のように構成されたエンベデッドシステムのターゲットシステム２０２が、サーバー２００から新しいソフトウェアのアップグレードをダウンロードする過程について、図３及び図４を参照して説明する。
【００２８】
まず、図３を参照して、ソフトウェアのダウンロードのためのサーバー２００側の動作について説明する。
【００２９】
図３は、本発明の実施形態によるサーバーが、ターゲットシステムへソフトウェアをダウンロードする方法を示す制御流れ図である。
【００３０】
まず、ダウンロード管理器２０４は、サーバーインターフェース２０８を通じてターゲットシステム２０２のバイナリーバージョン情報の要請を行う(ステップ３００，３０２)。その後、ターゲットシステム２０２は、サーバー２００のバイナリーバージョン情報要請に応答して、自機のバイナリーイメージのバージョン情報を伝送する(ステップ３０４)。
【００３１】
次に、サーバーインターフェース２０８は、受信したバージョン情報をダウンロード管理器２０４に伝送し(ステップ３０６)、これを受信したダウンロード管理器２０４は、バイナリーイメージ管理器２０６に対して、当該ターゲットシステムのバイナリーバージョン情報を伝送し、バイナリーイメージ生成を指示する(ステップ３０８)。
【００３２】
次に、バイナリーイメージ管理器２０６は、ターゲットシステム２０２でダウンロードされようとするバイナリーイメージを生成する(ステップ３１０)。すなわち、バイナリーイメージ管理器２０６は、ターゲットシステム２０２のバージョン情報を受信すると、サーバー２００で管理されるバイナリーイメージリストの内の、ターゲットシステム２０２のバイナリーバージョン情報と関連付けられたバイナリーイメージと、新たにダウンロードしようとするバイナリーイメージと、を比較する。ここで、バイナリーイメージを比較する過程は、バイナリーイメージの各々の全てのアドレスを一つずつ比較するのではなく、比較ウィンドウを使用して、同じサイズ（ウィンドウ）を有するデータ同士を比較する方法とすることにより、ダウンロードの効率性を高める。
【００３３】
この比較は、比較ウィンドウを使用して、同一のサイズを持つデータを比較することにより実行される。以下、この方法について具体的に説明する。
【００３４】
例えば、既存バージョンのバイナリーイメージ（ファイル）をＡと、ターゲットシステムがアップデートする新しいバージョンのバイナリーイメージ（ファイル）をＢと、ウィンドウサイズを１０と、それぞれ仮定し、移動（shift）させるウィンドウのシフトマージン(shift margin)を−５〜＋５と仮定する。この場合、使用者は、シフトマージン値や比較ウィンドウのサイズを任意に調節可能である。
【００３５】
まず、サーバー２００は、ファイルＡのＮ番目のウィンドウを、Ｂの−５から−４，−３，....，５まで移動させて、ファイルＡのウィンドウ内のデータとファイルＢの移動されたウィンドウ内のデータとが完全に一致するか否かを比較する。ここで、ウィンドウサイズは、１×Ｎ(row × column)サイズであって、Ｎは可変のサイズであり、バイナリーファイルを初めてスキャニング(scanning)する際には、一番目のバイトからＮ番目のバイトまでが一番目のウィンドウとして構成される。また、二番目のウィンドウは、Ｎ＋１番目のバイトからＮ＋Ｎ番目のバイトまでが含まれる。概して、Ｍ番目のウィンドウは、(Ｍ×Ｎ)＋１番目のバイトから(Ｍ×Ｎ)＋Ｎ番目のバイトまでとなる。このように、一連のバイトが規定されたウィンドウは、既存のダウンロード済みのバージョンのバイナリーファイルのバイトと比較されるために使用される。
【００３６】
ここで、シフトマージン値とウィンドウのサイズは、使用者が任意に決定できる。そして、データが完全に一致する場合には、得られるシフトマージン値は、同一カウント(same count)であることが分かる。また、このような同一カウンタは信頼性検証のために予め設定する。したがって、Ｎ番目〜Ｎ＋Ｓ番目のウィンドウが、ターゲットシステムバージョンのバイナリーファイルのＭ番目〜Ｍ＋Ｓ番目のウィンドウまで完全に一致する場合には、全く同一のデータであると判断されることになる。
【００３７】
一方で、もしも両者が一致しない場合には、予め定義されたシフトマージンまで位置を一つずつ増やすか減らして、ファイルＡのウィンドウサイズのバイト値とファイルＢのバイト値を連続的に比較して、完全に一致するウィンドウサイズのバイト値を探す。もし、完全に一致するシフト位置が(＋ｓ)で、このときＢファイルのウィンドウがＭ番目のウィンドウであると仮定すれば、Ａファイルの(Ｍ×Ｎ(window size)＋ｓ(shift位置))が、Ｍ番目のウィンドウの位置情報になる。すなわち、ＢファイルのＭ番目のウィンドウ内にある一連のバイト値が、Ａファイルの(Ｍ×Ｎ＋ｓ) の位置で、Ｎサイズのウィンドウ内に同一のデータが入っていることを意味する。このようなプロセスは、Ｂファイルの全体のウィンドウについて実行される。このようなプロセッシングを遂行することによって、新たにアップデートするファイルＢの各ウィンドウ中のデータがＡファイル中に存在する場合に、同一のデータの位置情報を探すことができる。もし、同一のデータが存在しない場合には、バイナリーイメージ管理器２０６は、Ｂファイルの同一ではないウィンドウデータについて、何番のウィンドウであるかの情報を保存する。また、バイナリーイメージ管理器２０６は、Ｂファイル内にある実データ（actual data）も一緒に保存する。ここでは、同一データが存在するか否かについて区分するために、フラッグ(flag)値を用いて区分する。
【００３８】
例えば、ターゲットシステム２０２がアップデート信号を受信すれば、ダウンロードされるファイルが分析され、また、新しいバイナリーファイルが形成される。そして、ターゲットシステム２０２内のファイルは、新たに形成されたバイナリーファイルに置き換えられ或いは補足される。このようなプロセスを遂行するために、ダウンロードされるファイルは、ヘッダ(head)領域と、データ(data)領域と、エンド(end)領域と、に区分して分析される。データ領域を分析する際には、何番のウィンドウであるかが先に判断される。また、その後、フラッグ値を通じて、当該ウィンドウサイズのバイト値に対応するバイト値が、自機内のバイナリーファイルの中に同一に存在するか否かを判断する。
【００３９】
もし、Flag ＝０であれば、同一のデータが存在するので、そのターゲットシステムは、フラッグの後に位置する４バイトサイズのシフト値を確認し、自機のバイナリー内で(何番目のウィンドウ(position of window)＋シフト値)情報によって、一連のバイト値を探す。
【００４０】
一方、Flag＝１であれば、そのターゲットシステムは、ダウンロードされたバイナリーファイルから、ウィンドウサイズとそれに対応する実際のデータとを抽出し、新しいファイルの(何番目のウィンドウ＋シフト値)情報に従った位置に、当該データを含ませる。ターゲットシステムは、このようなプロセスを通じて、ダウンロードされたファイルについて分析を完全に実行して、新しいファイルをアップデートする。
【００４１】
次に、伝送されるべきデータは、ステップＳ３１０のイメージ比較の後に生成される(ステップ３１２)。ここで生成されたデータは、ターゲットシステムに予め保存されているイメージファイルバージョンと新しいイメージファイルバージョンとに基づいている。特に、生成されたデータは、上述のように比較した二つのイメージファイルの差で構成される。すなわち、ダウンロードされる新しいファイルＣ(以下、新しいファイルＣをファイルＣＣと呼ぶ。)は、ヘッダー(header)領域と、データ(data)領域と、エンド(end)領域と、に分けられる。このうち、ヘッダー領域は、(ＣＣファイルのサイズ情報)＋(Ｂファイルのバージョン情報)＋(使用されるウィンドウサイズ)＋(全体のウィンドウ個数)などで構成される。また、データ領域は、(ウィンドウのシーケンス番号)＋(flag)＋{ (flag＝０である場合の、ウィンドウのシフト位置情報)or(flag＝１である場合の、データサイズ＋実データ)}で構成されるユニットを含む。このようなユニットは、差があると判断されるところのウィンドウ番号のために存在する。
【００４２】
上述した過程によって、ウィンドウは、二つのファイルの最初の位置からシフトカウント(Shift count)として一つずつ比較される。また、イメージバージョン情報と位置情報及びウィンドウサイズを含むデータが生成される。したがって、新たに生成されたデータは、位置情報と実データとを含んでいる。すなわち、ｎ番目のウィンドウ内にある一連のデータ値が、ダウンロードするシステムに内蔵されたソフトウェアバイナリーファイルの内のｎ番目のウィンドウ位置で−ｓシフトマージン〜＋ｓシフトマージン内にある場合には、位置情報だけが格納され、そうでない場合には、(ウィンドウサイズ) + (ウィンドウ中のデータ)が格納される。
【００４３】
このときに生成されるパケットデータは、ヘッダーと、データと、ＣＲＣ３２又はチェックサム(checksum)と、を含んで構成される。パケットデータのサイズは、任意に決定できるが、一般に、ＬＡＮ環境では最大４ｋｂｙｔｅまでパケットを支援するので、本実施形態では５１２ｂｙｔｅ〜４ｋｂｙｔｅの範囲であると仮定する。すなわち、生成されたデータは、同じサイズのパケットに分割され、ヘッダーとエラーチェックのための値をパケットに付け加えられて伝送される。上記の新たにアップデートされるバージョン情報は、これらのファイルらのヘッダーに挿入される。
【００４４】
より詳細には、ヘッダー領域は、preambleと、source_IDと、target_IDと、current_packet_numberと、last_packet_numberと、packet_lengthと、で構成される。また、データ領域は、４バイト（ｂｙｔｅ）のオフセット(offset)と、２〜４ｂｙｔｅのデータサイズと、対応するデータと、で構成される。さらに、エラーチェックのための領域は、ＣＲＣ３２又はチェックサムで構成される。また、最後のパケットのデータには、アップデートしようとするソフトウェアのバイナリーイメージのＣＲＣ３２値を含ませる。
【００４５】
そして、サーバー２００は、このように生成されたデータパケットを、サーバーインターフェース２０８を通じてターゲットシステム２０２にダウンロードする(ステップ３１４，ステップ３１６)。
【００４６】
以下、図４を参照して、ソフトウェアのダウンロードのためのターゲットシステム２０２側の動作について説明する。
【００４７】
図４は、本発明の一実施形態によるターゲットシステムでサーバーからソフトウェアをダウンロードする方法を示す制御流れ図である。
【００４８】
まず、ターゲットシステム２０２は、ステップ４００（或いは図３のステップＳ３０２）で、サーバー２００から送られて来た、ターゲットシステム２０２に内蔵されたバイナリーイメージのバージョン情報の要請を、ターゲットインターフェース２１０で受信して、ターゲットダウンロード管理器２１２に伝送する(ステップ４０２)。これを受信したターゲットシステム２０２のターゲットダウンロード管理器２１２は、バイナリーイメージ制御器２１６から、現在搭載されたバイナリーイメージのバージョン情報を確認する(ステップ４０４，ステップ４０６)。ターゲットダウンロード管理器２１２は、確認したバイナリーイメージバージョン情報をサーバー２００に伝送する(ステップ４０８，ステップ４１０)。
【００４９】
次に、サーバー２００からデータがダウンロードされると(ステップ４１２，ステップ４１４)、ターゲットシステム２０２のターゲットダウンロード管理器２１２は、エラーチェック器２１４に対して、ダウンロードされるデータパケットをパケット毎にエラーチェックするように要請する(ステップ４１６)。このとき、もしエラーがあれば、ターゲットダウンロード管理器２１２は、サーバー側に、エラーが発生した該当パケットだけ再伝送するように要請し、ダウンロードしたパケットをバイナリーイメージ保存部２１５に保存する(ステップ４１８)。その後、ターゲットダウンロード管理器２１２は、サーバー２００より受信したデータパケットからヘッダーを除去することにより得られたデータを使用して、イメージを再構成する(ステップ４２０)。
【００５０】
次に、ターゲットダウンロード管理器２１２からバイナリーイメージ制御器２１６にイメージアップデートが要請されれば(ステップ４２２)、バイナリーイメージ制御器２１６は、バイナリーイメージを分析してアップデートを実行する(ステップ４２４)。すなわち、バイナリーイメージ制御器２１６は、ダウンロードしたバイナリーイメージの情報を分析して、バージョン情報と、アップデートする位置情報と、バイナリー値と、を分析してアップデートを実行する。
【００５１】
ここで、ターゲットシステム２０２は、従前から保存されているバイナリーデータを再構成するものであり、具体的には、ヘッダー情報を分析し、ダウンロードしたデータ領域のオフセット（シフト）値を参照して、アップデートされる位置情報を探し、変更されるデータのサイズはデータ領域のデータサイズ値とし、既存の実値(actual value)は伝送されたデータ領域のデータ値に変更しながら、ターゲットシステムのバイナリーを再構成する。
【００５２】
また、再構成されたイメージと最後のパケットに含まれているＣＲＣ３２又はチェックサム値により、エラーチェック器２１４を通じてエラーチェックを実行する(ステップ４２６)。
【００５３】
すなわち、サーバー２００は、ターゲットシステム２０２に対して、アップデートされたバイナリー情報を含む多数のパケットを伝送し、続いて、ターゲットシステム２０２は、受信したパケットからヘッダーとエラーチェックサム値を削除して、削除後の純粋データ領域だけを順に全部集めて一つのバイナリーイメージを構築する。このように構築されたバイナリーファイルは、ターゲットシステム２０２をアップデートするために使用される。このように構築されたイメージファイルは、例えば、イメージバージョン情報＋(位置情報＋ウィンドウサイズのバイト値＋位置情報＋ウィンドウサイズのバイト値＋位置情報＋ウィンドウサイズのバイト値＋...)＋チェックサム(ＣＲＣ３２)として構成される。
【００５４】
最後に、ターゲットシステム２０２は、ソフトウェアのアップデート完了信号をサーバー２００に伝送する(ステップ４２８，ステップ４３０)。
【００５５】
以上、本発明を具体的な実施形態を参照して詳細に説明したが、本発明の範囲は前述の実施形態に限定されるべきではなく、特許請求の範囲の記載及びこれと均等なものの範囲内で様々な変形が可能なことは、当該技術分野における通常の知識を持つ者には明らかである。例えば、上述の実施形態ではターゲットシステムの一例としてセットトップボックスが適用された場合を説明したが、本発明のターゲットシステムは、エンベデッドソフトウェアを内蔵しているすべての端末に適用することができる。
【図面の簡単な説明】
【００５６】
【図１】ソフトウェアをダウンロードするための従来のエンベデッドシステムのブロック構成図である。
【図２】ソフトウェアをダウンロードするための本発明の実施形態によるエンベデッドシステムのブロック構成図である。
【図３】本発明の実施形態によるサーバーがターゲットシステムへソフトウェアをダウンロードする方法を示す制御流れ図である。
【図４】本発明の一実施形態によるターゲットシステムにおいて、サーバーからソフトウェアをダウンロードする方法を示す制御流れ図である。
【符号の説明】
【００５７】
２００  サーバー
２０２  ターゲットシステム
【図１】
2005209195.tif 000003
【図２】
2005209195.tif 000004
【図３】
2005209195.tif 000005
【図４】
2005209195.tif 000006