JP2005209195A - バイナリー位置情報を用いたエンベデッドシステム及びソフトウェア遠隔ダウンロード方法 - Google Patents
バイナリー位置情報を用いたエンベデッドシステム及びソフトウェア遠隔ダウンロード方法 Download PDFInfo
- Publication number
- JP2005209195A JP2005209195A JP2005011031A JP2005011031A JP2005209195A JP 2005209195 A JP2005209195 A JP 2005209195A JP 2005011031 A JP2005011031 A JP 2005011031A JP 2005011031 A JP2005011031 A JP 2005011031A JP 2005209195 A JP2005209195 A JP 2005209195A
- Authority
- JP
- Japan
- Prior art keywords
- data
- binary image
- software
- downloaded
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】 エンベデッドシステムにおいてソフトウェアをアップデートする際に、より速やかにアップデートできるようにするための装置及び方法を提供する。
【解決手段】ターゲットシステム202からのソフトウェアバージョン情報を受信し、該ソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータをダウンロードするデータとしてターゲットシステム202にダウンロードするサーバー200と、サーバー200からダウンロードされたデータを分析し、位置情報を参照して、変更されたバイナリーイメージをアップデートするターゲットシステム202と、を備える。
【選択図】 図2
【解決手段】ターゲットシステム202からのソフトウェアバージョン情報を受信し、該ソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータをダウンロードするデータとしてターゲットシステム202にダウンロードするサーバー200と、サーバー200からダウンロードされたデータを分析し、位置情報を参照して、変更されたバイナリーイメージをアップデートするターゲットシステム202と、を備える。
【選択図】 図2
Description
本発明は、エンベデッドシステムに関し、特に、ソフトウェアのダウンロードのためのエンベデッドシステム及びソフトウェアダウンロード方法に関する。
エンベデッドシステムは、消費者製品、例えば、マイクロプロセッサー又はマイクロコントローラーを備えた大部分の装置に、その装置の一部として内蔵されている。このようなエンベデッドシステムは、当該装置を制御、監視或いは補助するために使われる。例えば、エンベデッドシステムは、移動通信端末機にも適用可能であり、放送通信を提供するための加入者セットトップボックス(settop box)のような装置に内蔵することもできる。
このようなエンベデッドシステムが加入者セットトップボックスに内蔵される場合は、例えば、システムを駆動する装置ドライバ(device driver)と、リアルタイムオペレーションシステム(realtime os)と、アプリケーション(application)などがセットトップボックスに内蔵されることになる。実際に、セットトップボックスが各家庭に設けられる場合に、アプリケーション上でのバグが発生してソフトウェアを更新すなわちアップデートする場合、或いはドライバーの機能をアップデートする場合などには、該当するソフトウェアを遠隔でダウンロードするか、遠隔位置から直接シリアルポート(serial port)を用いてアップデートすることが可能である。
ソフトウェアのダウンロード方法の内で、遠隔でダウンロードする場合には、新しいソフトウェアは、イーサネット(登録商標)ポート(ethernet port)の特定チャンネルを通じて、デバイス即ちセットトップボックスにダウンロードされる。このとき、アップデートされるソフトウェアはダウンロードされる新しいプログラムに入れ替えられるが、ダウンロードされるソフトウェアのデータとしては、全ての対応(該当)するソフトウェア全体のデータがダウンロードされることになる。したがって、ソースコードの一部だけ変更する必要がある場合でさえも、該当するアプリケーション全体をダウンロードして、セットトップボックスに内蔵された既存のアプリケーションを完全に削除して、新しいアプリケーションと取り替えられることになる。すなわち、初期ソースコードの修正が必要である場合に、バイナリーファイルの全体がボード上にダウンロードされる必要がある。そして、バイナリーファイルは、そのサイズがシステムによって数KB〜数MB程度であり、バイナリーファイルのダウンロード時間もこのサイズに比例して長くなる。
消費者の多様な要求と、今後の放送と通信が融合されたデジタルメディアサービスネットワークでは、一層多くのコンテンツ(contents)を収容することが求められている。そして、このようなコンテンツサービスを提供する光ネットワークの設定では、各家庭にあるセットトップボックスのような多くの端末及び該端末に接続されるONUらが用いられ、これらにエンベデッドソフトウェアが内蔵されている。しかしながら、ONUは頻繁なソフトウェアアップグレードが必要とされ、このように接続された数多くのONUの一つ一つに対してソフトウェアのアップグレードを頻繁に行わなければならないことから、アップグレード時ごとに多くの時間が費やされ、また、それによって多くのコストが発生した。
また、消費者の多様な要求によってソフトウェアをアップグレードしなければならない場合や、発売開始された製品の欠陷により消費者が持っている既存製品のソフトウェアをアップグレードしなければならない場合が頻繁に生じ得る。このように、ソフトウェアをアップグレードしなければならない状況の場合には、ソフトウェアのダウンロードのための実行コードであるバイナリー(binary)を、RS232C、JTAG、或いはイーサネット(登録商標)接続を通じてダウンロードすることが頻繁に発生する。
以下、従来のサーバーから該当ソフトウェアをダウンロードしてアップグレードするためのエンベデッドシステムについて、図1を参照して説明する。
図1は、従来のソフトウェアをダウンロードするためのエンベデッドシステムのブロック構成図である。
図1に示されるように、サーバー100は、ダウンロード管理器104によってダウンローディングするソフトウェアのバイナリーイメージが保存されているバイナリーイメージ保存部108から、バイナリーのコードを読み出して、このバイナリーを、サーバーインターフェース106と、RS232C,JTAG或いはイーサネット(登録商標)とを通じて、ターゲットシステム102に伝送する。そして、ターゲットシステム102は、ターゲットシステムインターフェース110を通じて受信されるバイナリーイメージを、バイナリーイメージ保存部112に保存する。
ここで、サーバー100は、アップグレードしようとするソフトウェアについてのバイナリーイメージの全体をターゲットシステム102に伝送する。また、これを受信したターゲットシステム102は、既存のソフトウェアを新たに受信したソフトウェアに取り替えることによって、ソフトウェアのアップグレードを実行する。
しかしながら、システムによって多少の差はあるが、そのダウンロード及びアップロード実行時間には数分以上が費やされる場合が多く、これによりシステム開発を阻害する大きな要因となる。各家庭にあるセットトップボックスの場合に、各1台当たり数分として計算すれば、ソフトウェアのアップグレードのために非常に長い時間が消費される。
また、ソフトウェアをアップグレードするために他の業者(third company)からの専用チャンネルを貸与する場合には、消費時間によって貸与に関するコストが増加するので、高コスト化を招くことになる。
また、上述のように設置されたシステムにおけるソフトウェアのアップグレード時だけでなく、エンベデッドシステムを開発する際にソフトウェアを変更する場合にも、該当するソフトウェアの全体を随時にダウンロードして変更することになるので、このダウンロード時間によって開発時間の大幅な遅れを招くことになる。
上述のように、多様なコンテンツを提供するネットワークにおいて、ソフトウェアのアップグレードが必要であるエンベッデドシステムでは、ソフトウェアをアップグレードするとき毎にサーバーからソフトウェア全体をダウンロードすることにより、多くの時間が消費されるとともに、大きなコストが発生した。
本発明は、上述したような従来技術の問題点を解決するためになされたものであり、その第1の目的は、エンベデッドシステムにおいてソフトウェアをアップデートする際に、より速やかにアップデートできるようにするための装置及び方法を提供することにある。
本発明の第2の目的は、ソフトウェアのアップデートに必要となる時間及びコストを減らすための装置及び方法を提供することにある。
本発明の第3の目的は、ソフトウェアをアップデートする際に、既存のソフトウェアから変更されている部分のみをアップデートすることができる装置及び方法を提供することにある。
本発明の第4の目的は、エンベデッドシステムのデバッギング環境でさえも開発時間を短縮させることができる装置及び方法を提供することにある。
上記目的を達成するための本発明に係るエンベデッドシステムは、ターゲットシステムからのソフトウェアバージョン情報を受信し、該受信したソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータを、ダウンロードするデータとして前記ターゲットシステムにダウンロードするサーバーと、前記サーバーからダウンロードされた前記データを分析し、前記位置情報を参照して、前記変更されたバイナリーイメージをアップデートするターゲットシステムと、を備えることを特徴とする。
また、上記目的を達成するための本発明は、サーバーとターゲットシステムとを備えたエンベデッドシステムにおいてソフトウェアをアップデートするための方法であって、ターゲットシステムからソフトウェアのバージョン情報を受信し、該受信したソフトウェアのバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアのバージョン情報に対応するバイナリーイメージ情報と、を比較し、変更されたバイナリーイメージ情報と位置情報とを含んだデータを当該ターゲットシステムにダウンロードする第1の過程と、前記データが前記ターゲットシステムにダウンロードされると、前記ターゲットシステムが前記データを分析して前記位置情報に従って前記バイナリーイメージをアップデートする第2の過程と、を具備することを特徴とする
本発明によれば、随時にアップデートが要求されるコンテンツ関連ソフトウェアをアップデートする際に、ソフトウェア全体をダウンロードしないで、ソフトウェアをダウンロードしようとするターゲットシステムのバージョン情報に対応するソフトウェアと、伝送しようとするソフトウェアとの相違部分を再構成して、変更されるデータのみを送受信してダウンロードすることにより、ダウンロード時間やソフトウェアのアップグレード時間が短縮され、さらには、デバッギングの回数や時間も短縮される利点がある。
以下、本発明の好適な一実施形態について添付図面を参照しながら詳細に説明する。下記の説明において、本発明の要旨のみを明確にする目的で、関連した公知機能又は構成に関する具体的な説明は省略する。
以下の本発明の実施形態では、エンベデッドシステムにおいて、随時にアップデートされるソフトウェアを遠隔でより速やかにダウンロードできるようにするための構成としている。
図2は、ソフトウェアをダウンロードするための、本発明の実施形態によるエンベデッドシステムのブロック構成図である。
図2に示されるように、まず、サーバー200は、ダウンロードする遠隔サーバーやターゲットシステム202へのバイナリーイメージファイルのダウンロードを全般的に管理するダウンロード管理器(DCM:Download Control Manager)204と、ターゲットシステム202へ/からのファイル及びデータの送/受信を実行するサーバーインターフェース(SI:Server Interface)208と、ターゲットシステムに提供するバイナリーイメージを生成するバイナリーイメージ管理器(BIM:Binary Image Manager)206と、バイナリーイメージファイルを保存するためのバイナリーイメージ保存部(Binary Image Storage Unit)209と、を備える。
一方、ターゲットシステム202は、サーバー200からソフトウェアをダウンロードする装置であり、このターゲットシステムの例としては、遠隔地に設置されたセットトップボックス又はONUのような端末などが挙げられる。このようなターゲットシステム202は、遠隔のサーバーとの間でのファイル及びデータ送受信の機能を担うターゲットインターフェース(TI:Target Interface)210と、バイナリーイメージについての情報を管理し、新しいバイナリーイメージを受信して変更するバイナリーイメージ制御器(BIC:Binary Image Controller)216と、ソフトウェアダウンロード過程を管理するターゲットダウンロード管理器(TDM:Target Download Management)212と、受信したデータについての確認(validation)検査のためのエラーチェック器(EC:Error Checker)214と、バイナリーイメージファイルを保存するバイナリーイメージ保存部215と、を備える。
以下、図2のように構成されたエンベデッドシステムのターゲットシステム202が、サーバー200から新しいソフトウェアのアップグレードをダウンロードする過程について、図3及び図4を参照して説明する。
まず、図3を参照して、ソフトウェアのダウンロードのためのサーバー200側の動作について説明する。
図3は、本発明の実施形態によるサーバーが、ターゲットシステムへソフトウェアをダウンロードする方法を示す制御流れ図である。
まず、ダウンロード管理器204は、サーバーインターフェース208を通じてターゲットシステム202のバイナリーバージョン情報の要請を行う(ステップ300,302)。その後、ターゲットシステム202は、サーバー200のバイナリーバージョン情報要請に応答して、自機のバイナリーイメージのバージョン情報を伝送する(ステップ304)。
次に、サーバーインターフェース208は、受信したバージョン情報をダウンロード管理器204に伝送し(ステップ306)、これを受信したダウンロード管理器204は、バイナリーイメージ管理器206に対して、当該ターゲットシステムのバイナリーバージョン情報を伝送し、バイナリーイメージ生成を指示する(ステップ308)。
次に、バイナリーイメージ管理器206は、ターゲットシステム202でダウンロードされようとするバイナリーイメージを生成する(ステップ310)。すなわち、バイナリーイメージ管理器206は、ターゲットシステム202のバージョン情報を受信すると、サーバー200で管理されるバイナリーイメージリストの内の、ターゲットシステム202のバイナリーバージョン情報と関連付けられたバイナリーイメージと、新たにダウンロードしようとするバイナリーイメージと、を比較する。ここで、バイナリーイメージを比較する過程は、バイナリーイメージの各々の全てのアドレスを一つずつ比較するのではなく、比較ウィンドウを使用して、同じサイズ(ウィンドウ)を有するデータ同士を比較する方法とすることにより、ダウンロードの効率性を高める。
この比較は、比較ウィンドウを使用して、同一のサイズを持つデータを比較することにより実行される。以下、この方法について具体的に説明する。
例えば、既存バージョンのバイナリーイメージ(ファイル)をAと、ターゲットシステムがアップデートする新しいバージョンのバイナリーイメージ(ファイル)をBと、ウィンドウサイズを10と、それぞれ仮定し、移動(shift)させるウィンドウのシフトマージン(shift margin)を−5〜+5と仮定する。この場合、使用者は、シフトマージン値や比較ウィンドウのサイズを任意に調節可能である。
まず、サーバー200は、ファイルAのN番目のウィンドウを、Bの−5から−4,−3,....,5まで移動させて、ファイルAのウィンドウ内のデータとファイルBの移動されたウィンドウ内のデータとが完全に一致するか否かを比較する。ここで、ウィンドウサイズは、1×N(row × column)サイズであって、Nは可変のサイズであり、バイナリーファイルを初めてスキャニング(scanning)する際には、一番目のバイトからN番目のバイトまでが一番目のウィンドウとして構成される。また、二番目のウィンドウは、N+1番目のバイトからN+N番目のバイトまでが含まれる。概して、M番目のウィンドウは、(M×N)+1番目のバイトから(M×N)+N番目のバイトまでとなる。このように、一連のバイトが規定されたウィンドウは、既存のダウンロード済みのバージョンのバイナリーファイルのバイトと比較されるために使用される。
ここで、シフトマージン値とウィンドウのサイズは、使用者が任意に決定できる。そして、データが完全に一致する場合には、得られるシフトマージン値は、同一カウント(same count)であることが分かる。また、このような同一カウンタは信頼性検証のために予め設定する。したがって、N番目〜N+S番目のウィンドウが、ターゲットシステムバージョンのバイナリーファイルのM番目〜M+S番目のウィンドウまで完全に一致する場合には、全く同一のデータであると判断されることになる。
一方で、もしも両者が一致しない場合には、予め定義されたシフトマージンまで位置を一つずつ増やすか減らして、ファイルAのウィンドウサイズのバイト値とファイルBのバイト値を連続的に比較して、完全に一致するウィンドウサイズのバイト値を探す。もし、完全に一致するシフト位置が(+s)で、このときBファイルのウィンドウがM番目のウィンドウであると仮定すれば、Aファイルの(M×N(window size)+s(shift位置))が、M番目のウィンドウの位置情報になる。すなわち、BファイルのM番目のウィンドウ内にある一連のバイト値が、Aファイルの(M×N+s) の位置で、Nサイズのウィンドウ内に同一のデータが入っていることを意味する。このようなプロセスは、Bファイルの全体のウィンドウについて実行される。このようなプロセッシングを遂行することによって、新たにアップデートするファイルBの各ウィンドウ中のデータがAファイル中に存在する場合に、同一のデータの位置情報を探すことができる。もし、同一のデータが存在しない場合には、バイナリーイメージ管理器206は、Bファイルの同一ではないウィンドウデータについて、何番のウィンドウであるかの情報を保存する。また、バイナリーイメージ管理器206は、Bファイル内にある実データ(actual data)も一緒に保存する。ここでは、同一データが存在するか否かについて区分するために、フラッグ(flag)値を用いて区分する。
例えば、ターゲットシステム202がアップデート信号を受信すれば、ダウンロードされるファイルが分析され、また、新しいバイナリーファイルが形成される。そして、ターゲットシステム202内のファイルは、新たに形成されたバイナリーファイルに置き換えられ或いは補足される。このようなプロセスを遂行するために、ダウンロードされるファイルは、ヘッダ(head)領域と、データ(data)領域と、エンド(end)領域と、に区分して分析される。データ領域を分析する際には、何番のウィンドウであるかが先に判断される。また、その後、フラッグ値を通じて、当該ウィンドウサイズのバイト値に対応するバイト値が、自機内のバイナリーファイルの中に同一に存在するか否かを判断する。
もし、Flag =0であれば、同一のデータが存在するので、そのターゲットシステムは、フラッグの後に位置する4バイトサイズのシフト値を確認し、自機のバイナリー内で(何番目のウィンドウ(position of window)+シフト値)情報によって、一連のバイト値を探す。
一方、Flag=1であれば、そのターゲットシステムは、ダウンロードされたバイナリーファイルから、ウィンドウサイズとそれに対応する実際のデータとを抽出し、新しいファイルの(何番目のウィンドウ+シフト値)情報に従った位置に、当該データを含ませる。ターゲットシステムは、このようなプロセスを通じて、ダウンロードされたファイルについて分析を完全に実行して、新しいファイルをアップデートする。
次に、伝送されるべきデータは、ステップS310のイメージ比較の後に生成される(ステップ312)。ここで生成されたデータは、ターゲットシステムに予め保存されているイメージファイルバージョンと新しいイメージファイルバージョンとに基づいている。特に、生成されたデータは、上述のように比較した二つのイメージファイルの差で構成される。すなわち、ダウンロードされる新しいファイルC(以下、新しいファイルCをファイルCCと呼ぶ。)は、ヘッダー(header)領域と、データ(data)領域と、エンド(end)領域と、に分けられる。このうち、ヘッダー領域は、(CCファイルのサイズ情報)+(Bファイルのバージョン情報)+(使用されるウィンドウサイズ)+(全体のウィンドウ個数)などで構成される。また、データ領域は、(ウィンドウのシーケンス番号)+(flag)+{ (flag=0である場合の、ウィンドウのシフト位置情報)or(flag=1である場合の、データサイズ+実データ)}で構成されるユニットを含む。このようなユニットは、差があると判断されるところのウィンドウ番号のために存在する。
上述した過程によって、ウィンドウは、二つのファイルの最初の位置からシフトカウント(Shift count)として一つずつ比較される。また、イメージバージョン情報と位置情報及びウィンドウサイズを含むデータが生成される。したがって、新たに生成されたデータは、位置情報と実データとを含んでいる。すなわち、n番目のウィンドウ内にある一連のデータ値が、ダウンロードするシステムに内蔵されたソフトウェアバイナリーファイルの内のn番目のウィンドウ位置で−sシフトマージン〜+sシフトマージン内にある場合には、位置情報だけが格納され、そうでない場合には、(ウィンドウサイズ) + (ウィンドウ中のデータ)が格納される。
このときに生成されるパケットデータは、ヘッダーと、データと、CRC32又はチェックサム(checksum)と、を含んで構成される。パケットデータのサイズは、任意に決定できるが、一般に、LAN環境では最大4kbyteまでパケットを支援するので、本実施形態では512byte〜4kbyteの範囲であると仮定する。すなわち、生成されたデータは、同じサイズのパケットに分割され、ヘッダーとエラーチェックのための値をパケットに付け加えられて伝送される。上記の新たにアップデートされるバージョン情報は、これらのファイルらのヘッダーに挿入される。
より詳細には、ヘッダー領域は、preambleと、source_IDと、target_IDと、current_packet_numberと、last_packet_numberと、packet_lengthと、で構成される。また、データ領域は、4バイト(byte)のオフセット(offset)と、2〜4byteのデータサイズと、対応するデータと、で構成される。さらに、エラーチェックのための領域は、CRC32又はチェックサムで構成される。また、最後のパケットのデータには、アップデートしようとするソフトウェアのバイナリーイメージのCRC32値を含ませる。
そして、サーバー200は、このように生成されたデータパケットを、サーバーインターフェース208を通じてターゲットシステム202にダウンロードする(ステップ314,ステップ316)。
以下、図4を参照して、ソフトウェアのダウンロードのためのターゲットシステム202側の動作について説明する。
図4は、本発明の一実施形態によるターゲットシステムでサーバーからソフトウェアをダウンロードする方法を示す制御流れ図である。
まず、ターゲットシステム202は、ステップ400(或いは図3のステップS302)で、サーバー200から送られて来た、ターゲットシステム202に内蔵されたバイナリーイメージのバージョン情報の要請を、ターゲットインターフェース210で受信して、ターゲットダウンロード管理器212に伝送する(ステップ402)。これを受信したターゲットシステム202のターゲットダウンロード管理器212は、バイナリーイメージ制御器216から、現在搭載されたバイナリーイメージのバージョン情報を確認する(ステップ404,ステップ406)。ターゲットダウンロード管理器212は、確認したバイナリーイメージバージョン情報をサーバー200に伝送する(ステップ408,ステップ410)。
次に、サーバー200からデータがダウンロードされると(ステップ412,ステップ414)、ターゲットシステム202のターゲットダウンロード管理器212は、エラーチェック器214に対して、ダウンロードされるデータパケットをパケット毎にエラーチェックするように要請する(ステップ416)。このとき、もしエラーがあれば、ターゲットダウンロード管理器212は、サーバー側に、エラーが発生した該当パケットだけ再伝送するように要請し、ダウンロードしたパケットをバイナリーイメージ保存部215に保存する(ステップ418)。その後、ターゲットダウンロード管理器212は、サーバー200より受信したデータパケットからヘッダーを除去することにより得られたデータを使用して、イメージを再構成する(ステップ420)。
次に、ターゲットダウンロード管理器212からバイナリーイメージ制御器216にイメージアップデートが要請されれば(ステップ422)、バイナリーイメージ制御器216は、バイナリーイメージを分析してアップデートを実行する(ステップ424)。すなわち、バイナリーイメージ制御器216は、ダウンロードしたバイナリーイメージの情報を分析して、バージョン情報と、アップデートする位置情報と、バイナリー値と、を分析してアップデートを実行する。
ここで、ターゲットシステム202は、従前から保存されているバイナリーデータを再構成するものであり、具体的には、ヘッダー情報を分析し、ダウンロードしたデータ領域のオフセット(シフト)値を参照して、アップデートされる位置情報を探し、変更されるデータのサイズはデータ領域のデータサイズ値とし、既存の実値(actual value)は伝送されたデータ領域のデータ値に変更しながら、ターゲットシステムのバイナリーを再構成する。
また、再構成されたイメージと最後のパケットに含まれているCRC32又はチェックサム値により、エラーチェック器214を通じてエラーチェックを実行する(ステップ426)。
すなわち、サーバー200は、ターゲットシステム202に対して、アップデートされたバイナリー情報を含む多数のパケットを伝送し、続いて、ターゲットシステム202は、受信したパケットからヘッダーとエラーチェックサム値を削除して、削除後の純粋データ領域だけを順に全部集めて一つのバイナリーイメージを構築する。このように構築されたバイナリーファイルは、ターゲットシステム202をアップデートするために使用される。このように構築されたイメージファイルは、例えば、イメージバージョン情報+(位置情報+ウィンドウサイズのバイト値+位置情報+ウィンドウサイズのバイト値+位置情報+ウィンドウサイズのバイト値+...)+チェックサム(CRC32)として構成される。
最後に、ターゲットシステム202は、ソフトウェアのアップデート完了信号をサーバー200に伝送する(ステップ428,ステップ430)。
以上、本発明を具体的な実施形態を参照して詳細に説明したが、本発明の範囲は前述の実施形態に限定されるべきではなく、特許請求の範囲の記載及びこれと均等なものの範囲内で様々な変形が可能なことは、当該技術分野における通常の知識を持つ者には明らかである。例えば、上述の実施形態ではターゲットシステムの一例としてセットトップボックスが適用された場合を説明したが、本発明のターゲットシステムは、エンベデッドソフトウェアを内蔵しているすべての端末に適用することができる。
200 サーバー
202 ターゲットシステム
202 ターゲットシステム
Claims (13)
- ターゲットシステムからのソフトウェアバージョン情報を受信し、該受信したソフトウェアバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアバージョン情報に対応するバイナリーイメージと、を比較し、変更されたバイナリーイメージとアップデートする位置情報とを含ませたデータを、ダウンロードするデータとして前記ターゲットシステムにダウンロードするサーバーと、
前記サーバーからダウンロードされた前記データを分析し、前記位置情報を参照して、前記変更されたバイナリーイメージをアップデートするターゲットシステムと、
を備えることを特徴とするエンベデッドシステム。 - 前記サーバーは、前記ターゲットシステムとデータの送受信を行うためのインターフェースと、
新しいソフトウェア情報のバイナリーイメージを生成するためのダウンロード管理器と、
前記ターゲットシステムからの前記ソフトウェア情報によるバイナリーイメージと前記新しいソフトウェア情報によるバイナリーイメージとを比較し、変更されたバイナリーイメージ情報と前記位置情報とを含んだデータとを生成するバイナリーイメージ管理器と、を備えること
を特徴とする請求項1記載のエンベデッドシステム。 - 前記バイナリーイメージ管理器は、前記バイナリーイメージの比較を通じて、ヘッダーフィールドと、位置情報とダウンロードする新しいソフトウェア情報の変更されたバイナリーイメージデータとを具備するデータフィールドと、エラーチェックフィールドと、を備えたデータを生成すること
を特徴とする請求項2記載のエンベデッドシステム。 - 前記バイナリーイメージ管理器は、前記バイナリーイメージを比較する際に、受信されたソフトウェア情報によるバイナリーイメージと、新しいソフトウェア情報に対応するバイナリーイメージと、を比較するための、予め設定されたウィンドウを使用すること
を特徴とする請求項2記載のエンベデッドシステム。 - 前記ターゲットシステムは、前記サーバーとの間でデータの送受信をするためのインターフェースと、
前記サーバーからのソフトウェアのバージョン情報要請に応答して現在保存されているソフトウェアのバージョン情報を提供し、前記サーバーからダウンロードされるバイナリーデータを分析してアップデートを実行するバイナリーイメージ制御機と、
前記サーバーから伝送されるデータをダウンロードして保存し、イメージアップデートを要請する信号を出力するターゲットダウンロード管理器と、
前記ターゲットダウンロード管理器からイメージアップデート信号が入力される場合には、前記ダウンロードしたデータを分析し、アップデートする位置情報を認識し、前記位置情報に対応する位置に前記ダウンロードしたバイナリーイメージデータのアップデートを実行するバイナリーイメージ制御器と、を備えること
を特徴とする請求項1記載のエンベデッドシステム。 - 前記ターゲットシステムは、前記バイナリーイメージ制御機からエラーチェック要請がある場合に、前記ダウンロードしたデータを確認検査するためのエラーチェック器をさらに備えること
を特徴とする請求項5記載のエンベデッドシステム。 - サーバーとターゲットシステムとを備えたエンベデッドシステムにおいてソフトウェアをアップデートするための方法であって、
前記ターゲットシステムからソフトウェアのバージョン情報を受信し、該受信したソフトウェアのバージョン情報に対応するバイナリーイメージと、ダウンロードしようとするソフトウェアのバージョン情報に対応するバイナリーイメージ情報と、を比較し、変更されたバイナリーイメージ情報と位置情報とを含んだデータを前記ターゲットシステムにダウンロードする第1の過程と、
前記データが前記ターゲットシステムにダウンロードされると、前記ターゲットシステムが前記データを分析して前記位置情報に従って前記バイナリーイメージをアップデートする第2の過程と、
を具備することを特徴とするソフトウェアのダウンロード方法。 - 前記第1の過程は、前記ターゲットシステムへソフトウェアのバージョン情報を要請し、該要請したソフトウェアのバージョン情報を当該ターゲットシステムから受信する段階と、
前記ターゲットシステムのソフトウェアのバージョン情報によるバイナリーイメージと、前記ダウンロードしようとするソフトウェアのバージョン情報によるバイナリーイメージとを比較し、前記二つのバイナリーイメージの相違する部分に該当するデータと該データの位置情報とを含ませたデータを、ダウンロードするデータとして生成する段階と、
生成された前記ダウンロードするデータを前記ターゲットシステムにダウンロードする段階と、を具備すること
を特徴とする請求項7記載のソフトウェアのダウンロード方法。 - 前記第2の過程は、前記ダウンロードしたデータを分析して、アップデートする位置情報を認識し、前記ターゲットシステム内の前記位置情報に対応した位置に保存されているバイナリーイメージのアップデートを実行する過程を備えること
を特徴とする請求項7記載のソフトウェアのダウンロード方法。 - 前記ダウンロードするデータを生成する段階では、ヘッダーフィールドと、前記位置情報及びダウンロードするバイナリーイメージデータを具備するデータフィールドと、エラーチェックフィールドと、を含むデータを生成すること
を特徴とする請求項8記載のソフトウェアのダウンロード方法。 - 前記バイナリーイメージを比較する際に、バイナリーイメージ管理器が、比較のために予め設定されたウィンドウを使用して、該ウィンドウのサイズの量のバイナリーイメージの各セットを比較すること
を特徴とする請求項8記載のソフトウェアのダウンロード方法。 - 前記バイナリーイメージ管理器は、前記比較の結果、バイナリーイメージが相互に異なる場合には、ダウンロードしようとするバージョンのバイナリーイメージの該当位置のウィンドウサイズに対応するバイナリーイメージを、ターゲットシステム内に存在するバージョンのバイナリーイメージの該当位置から、該ウィンドウの連続的な位置移動を行って、同一のバイトらが存在するか否かについて、イメージファイルの最後までチェックしながらデータを検索すること
を特徴とする請求項11記載のソフトウェアのダウンロード方法。 - N番目のウィンドウを移動させながら比較検索する際に、相互に一致したデータがある場合には、当該データの信頼性検証のために、同一カウント(same count)Sを予め設定し、前記N番目からN+S番目のウィンドウまで同じデータで一致するるか否かチェックし、一致すれば同一データと判断し、一致しなければ異なるデータと判断すること
を特徴とする請求項12記載のソフトウェアのダウンロード方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040004008A KR100584448B1 (ko) | 2004-01-19 | 2004-01-19 | 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005209195A true JP2005209195A (ja) | 2005-08-04 |
Family
ID=34747886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005011031A Pending JP2005209195A (ja) | 2004-01-19 | 2005-01-19 | バイナリー位置情報を用いたエンベデッドシステム及びソフトウェア遠隔ダウンロード方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050160418A1 (ja) |
JP (1) | JP2005209195A (ja) |
KR (1) | KR100584448B1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007201852A (ja) * | 2006-01-27 | 2007-08-09 | Hitachi Communication Technologies Ltd | ソフトウェア転送方法 |
CN100456805C (zh) * | 2006-01-27 | 2009-01-28 | 中国科学院声学研究所 | 一种基于tftp的iptv机顶盒软件网络升级方法 |
JP2012104150A (ja) * | 2012-01-19 | 2012-05-31 | Intel Corp | ネットワーク環境におけるスペースのカスタマイズ |
JP2012221158A (ja) * | 2011-04-07 | 2012-11-12 | Yokogawa Electric Corp | フィールド機器 |
CN103780860A (zh) * | 2014-01-28 | 2014-05-07 | 福建伊时代信息科技股份有限公司 | 一种屏幕录像方法及其装置与系统 |
US8977724B2 (en) | 2010-03-31 | 2015-03-10 | International Business Machines Corporation | Method and system for automated operating system image loading |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7661102B2 (en) * | 2004-08-20 | 2010-02-09 | Smith Micro Software, Inc. | Method for reducing binary image update package sizes |
US9292274B2 (en) * | 2004-08-31 | 2016-03-22 | Smith Micro Software, Inc. | Efficient method and system for reducing the time to apply update package |
US7716662B2 (en) * | 2005-06-22 | 2010-05-11 | Comcast Cable Holdings, Llc | System and method for generating a set top box code download step sequence |
US20070016530A1 (en) * | 2005-07-15 | 2007-01-18 | Christopher Stasi | Multi-media file distribution system and method |
KR100866546B1 (ko) * | 2005-12-05 | 2008-11-04 | 한국전자통신연구원 | 센서 노드용 소프트웨어 개발 시스템 및 방법 |
US8296268B2 (en) * | 2006-07-21 | 2012-10-23 | Samsung Electronics Co., Ltd. | System and method for change logging in a firmware over the air development environment |
KR100791304B1 (ko) * | 2006-07-24 | 2008-01-04 | 삼성전자주식회사 | 소프트웨어 갱신을 위한 장치, 시스템 및 방법 |
US9244672B2 (en) * | 2006-11-30 | 2016-01-26 | Red Hat, Inc. | Optimization utility for developing embedded systems |
TWI349882B (en) * | 2007-09-04 | 2011-10-01 | Quanta Comp Inc | Firmware update system and method for update the same |
US8245217B2 (en) | 2007-10-12 | 2012-08-14 | Microsoft Corporation | Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine |
KR100929797B1 (ko) * | 2007-12-21 | 2009-12-07 | 대구대학교 산학협력단 | 무선센서네트워크상에서 소프트웨어 업데이트방법 |
US8589904B2 (en) * | 2009-08-10 | 2013-11-19 | Symantec Corporation | Systems and methods for updating a software product |
US8893112B2 (en) * | 2009-12-21 | 2014-11-18 | Intel Corporation | Providing software distribution and update services regardless of the state or physical location of an end point machine |
US20110302283A1 (en) * | 2010-06-03 | 2011-12-08 | Niclas Nors | Methods And Arrangements In A Passive Optical Network |
US8769525B2 (en) * | 2011-01-31 | 2014-07-01 | Digi International Inc. | Remote firmware upgrade device mapping |
JP6152289B2 (ja) * | 2012-11-15 | 2017-06-21 | 任天堂株式会社 | 情報処理装置、端末システム、情報処理プログラム、および、アプリケーションの更新用データの取得方法 |
JP6020159B2 (ja) * | 2012-12-27 | 2016-11-02 | 株式会社リコー | 情報処理装置、及び情報処理方法 |
JP2016058006A (ja) * | 2014-09-12 | 2016-04-21 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
CN108093398B (zh) * | 2017-12-22 | 2021-08-20 | 京信网络系统股份有限公司 | 实现终端软件升级的方法及装置 |
CN109634567B (zh) * | 2018-12-07 | 2022-02-22 | 武汉瓯越网视有限公司 | 一种信息创建方法、装置、终端及存储介质 |
CN111008033A (zh) * | 2019-10-30 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于串口的通用dsp在线升级系统及升级方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479654A (en) * | 1990-04-26 | 1995-12-26 | Squibb Data Systems, Inc. | Apparatus and method for reconstructing a file from a difference signature and an original file |
US6457066B1 (en) * | 1997-11-10 | 2002-09-24 | Microsoft Corporation | Simple object access protocol |
US6151708A (en) * | 1997-12-19 | 2000-11-21 | Microsoft Corporation | Determining program update availability via set intersection over a sub-optical pathway |
US20030182414A1 (en) * | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
US6925467B2 (en) * | 2002-05-13 | 2005-08-02 | Innopath Software, Inc. | Byte-level file differencing and updating algorithms |
US7096311B2 (en) * | 2002-09-30 | 2006-08-22 | Innopath Software, Inc. | Updating electronic files using byte-level file differencing and updating algorithms |
US7415706B1 (en) * | 2003-12-01 | 2008-08-19 | Cisco Technology, Inc. | Dynamic handling of multiple software component versions for device management |
-
2004
- 2004-01-19 KR KR1020040004008A patent/KR100584448B1/ko not_active IP Right Cessation
- 2004-11-23 US US10/995,451 patent/US20050160418A1/en not_active Abandoned
-
2005
- 2005-01-19 JP JP2005011031A patent/JP2005209195A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007201852A (ja) * | 2006-01-27 | 2007-08-09 | Hitachi Communication Technologies Ltd | ソフトウェア転送方法 |
CN100456805C (zh) * | 2006-01-27 | 2009-01-28 | 中国科学院声学研究所 | 一种基于tftp的iptv机顶盒软件网络升级方法 |
JP4709020B2 (ja) * | 2006-01-27 | 2011-06-22 | 株式会社日立製作所 | ソフトウェア転送方法 |
US8977724B2 (en) | 2010-03-31 | 2015-03-10 | International Business Machines Corporation | Method and system for automated operating system image loading |
JP2012221158A (ja) * | 2011-04-07 | 2012-11-12 | Yokogawa Electric Corp | フィールド機器 |
JP2012104150A (ja) * | 2012-01-19 | 2012-05-31 | Intel Corp | ネットワーク環境におけるスペースのカスタマイズ |
CN103780860A (zh) * | 2014-01-28 | 2014-05-07 | 福建伊时代信息科技股份有限公司 | 一种屏幕录像方法及其装置与系统 |
CN103780860B (zh) * | 2014-01-28 | 2017-04-26 | 福建伊时代信息科技股份有限公司 | 一种屏幕录像方法及其装置与系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20050076175A (ko) | 2005-07-26 |
US20050160418A1 (en) | 2005-07-21 |
KR100584448B1 (ko) | 2006-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005209195A (ja) | バイナリー位置情報を用いたエンベデッドシステム及びソフトウェア遠隔ダウンロード方法 | |
KR100400458B1 (ko) | 네트워크 가능한 가전기기의 프로토콜 업그레이드 방법 | |
TW472489B (en) | Method and system for identifying and downloading appropriate software or firmware specific to a particular model of set-top box in a cable television system | |
US6668374B1 (en) | Method and apparatus for upgrading firmware in an embedded system | |
US20020087960A1 (en) | Upgrading peripheral devices | |
JP2009105983A (ja) | ブートローダーソフトウェアおよびコードバージョンテーブルを含む、セットトップ受信機のオペレーティングシステムソフトウェアを維持および更新するセットトップケーブルテレビ制御デバイスおよび方法 | |
US20070239841A1 (en) | Systems and methods for distributing software to a host device in a cable system | |
US20120117557A1 (en) | Method and system for upgrading wireless data card | |
US9100696B2 (en) | System and method for upgrading a multiprocessor set-top box device with a monolithic firmware image | |
WO2011076146A1 (zh) | 下载应用数据的方法、数字电视接收终端及系统 | |
US20050149923A1 (en) | System update protocol | |
US11876676B2 (en) | Network node firmware update | |
US20190037373A1 (en) | Method and apparatus and computer program product for upgrading a to-be-upgraded device | |
WO2022241918A1 (zh) | 一种物联网设备远程升级方法及装置 | |
AU770984B2 (en) | Method and system for targeted or universal upgrades of programming in a population of advanced set-top boxes in a cable television system | |
US20110107323A1 (en) | Electronic device and method for making upgrade firmware | |
CN109358894B (zh) | 一种支持DVB的Android设备升级方法及系统 | |
JP2007281904A (ja) | 通信制御システム | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
WO2023036064A1 (zh) | 固件更新方法、装置、电子设备和存储介质 | |
CN115421745A (zh) | 设备远程升级方法、装置、终端及存储介质 | |
CN108174253B (zh) | 一种无ip地址的iptv终端升级方法 | |
CN114489737A (zh) | 多固件ota升级方法及装置、服务端及存储介质 | |
CN112241280A (zh) | 模块化节点的构件的固件更新 | |
CN101924958B (zh) | 以太无源光网络的光网络单元的更新方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070301 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070306 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070807 |