JP2006216047A - ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート - Google Patents

ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート Download PDF

Info

Publication number
JP2006216047A
JP2006216047A JP2006024791A JP2006024791A JP2006216047A JP 2006216047 A JP2006216047 A JP 2006216047A JP 2006024791 A JP2006024791 A JP 2006024791A JP 2006024791 A JP2006024791 A JP 2006024791A JP 2006216047 A JP2006216047 A JP 2006216047A
Authority
JP
Japan
Prior art keywords
update
computing device
firmware
mobile computing
component
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.)
Granted
Application number
JP2006024791A
Other languages
English (en)
Other versions
JP5096680B2 (ja
Inventor
Yuhang Zhu
チュー ユハン
Jeffrey M Paul
エム.ポール ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006216047A publication Critical patent/JP2006216047A/ja
Application granted granted Critical
Publication of JP5096680B2 publication Critical patent/JP5096680B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/934Information retrieval or Information management

Abstract

【課題】異なるシステムまたは実装に渡ってファームウェアをアップデートするための一様のスキームを提供する。
【解決手段】読み取り専用管理オブジェクトは、アップデートすることができるファームウェアコンポーネントに関連する情報を含むように作成される。この情報には、コンポーネント識別子、コンポーネントバージョン、および、コンポーネントのためのユーザーフレンドリ名が含まれ、ファームウェアコンポーネントを含むデバイスの状態を指示する状態識別子も含まれる。他のコンポーネントは、管理オブジェクトからの情報をファームウェアアップデートプロセスの一部として使用することができる。アップデート管理オブジェクトは、アップデートパッケージをデバイスに配信するように動的に作成される。アップデートパッケージは、複数のファームウェアコンポーネントへのアップデートを含むことができる。
【選択図】図1

Description

本発明は、ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデートに関する。
コンピューティングデバイス、特に、数ある中でも、ラップトップコンピュータ、携帯情報端末(PDA)および携帯電話など、ポータブルコンピューティングデバイスは通常、マシン可読命令のセット、またはコードを含む。このような命令は通常、コンピューティングデバイス上で、フラッシュメモリまたは読出し専用メモリ(ROM)など、不揮発性ストレージエリア内に格納される。命令を、ROMなどの不揮発性ストレージエリアに格納することによって、そのデバイスの操作命令を、デバイスへの電力の供給が中断されるときでさえ、保持することができる。ROMなどの不揮発性メモリ内に格納されたコードは時として、ファームウェアと呼ばれる。
これらのコンピューティングデバイスのメーカー、所有者およびユーザは、時々、ROM内に格納されたコードを変更することを必要とするか、または望む場合がある。このような変更の動機には、機能またはセキュリティにおける変更、または、コード内の欠陥を訂正することが含まれる。このタスクを支援するため、バージョン番号付け、モジュール化および通信プロトコルなどの方法およびデバイスが使用されている。
しかし、ファームウェアをアップデートするための、異なる、および潜在的に互換性のない、方法およびデバイスの存在は、アップデートを実行するタスクを複雑にする。ファームウェアをアップデートするための現在のシステムおよび方法は、ファームウェアアップデートシステムまたはファームウェアアップデート実装において根本的な差異を考慮に入れることができず、異なるシステムまたは実装に渡ってファームウェアをアップデートするための一様のスキームを提供しない。
以下で、基本的理解を提供するために、簡単な概要を提示する。この概要は、広範な概要ではない。これは、主要/重要な要素を特定することも、範囲を線引きすることも意図するものではない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、いくつかの概念を簡単な形態で提示することである。加えて、本明細書で使用されたセクションの見出しは、単に便宜上提供されるものであり、決して限定として解釈されるべきではない。
読み取り専用管理オブジェクトは、アップデートすることができるファームウェアコンポーネントに関連する情報を含むように作成される。この情報には、コンポーネントID、コンポーネントバージョン、および、このコンポーネントのユーザーフレンドリ名が含まれる。この情報にはまた、ファームウェアコンポーネントを含むデバイスの状態を指示する状態識別子もが含まれる。他のコンポーネントは、管理オブジェクトからの情報を、ファームウェアアップデートプロセスの一部として使用することができる。
アップデートオブジェクトは、モバイルコンピューティングデバイスに送信されるように作成される。アップデートオブジェクトは、使用可能なファームウェアコンポーネントアップデートパッケージに関連する情報を含み、通常は、バージョン、名前およびロケーション情報を含む。ロケーション(記憶場所)情報は通常、ユニフォームリソース識別子の形態で提供される。アップデートオブジェクトは、複数の使用可能なファームウェアコンポーネントアップデートパッケージについての情報を含むことができる。
アップデートサーバは、管理オブジェクトからの情報にアクセスし、モバイルコンピューティングデバイスのファームウェアをアップデートするために使用可能であるファームウェアコンポーネントアップデートパッケージを識別することができる。アップデートサーバはアップデートオブジェクトを作成し、そのオブジェクトをモバイルコンピューティングデバイスに送信する。アップデートオブジェクト内に含まれた情報は、モバイルコンピューティングデバイスに、ファームウェアコンポーネントアップデートパッケージのロケーションを与える。
開示および説明されるコンポーネントおよび方法は、以下で十分に説明され、特に特許請求の範囲において指摘される特徴を備える。以下の説明および添付の図面は、ある例示的態様を詳細に示す。しかし、これらの態様は、開示されたコンポーネントおよび方法を使用することができる様々な方法のほんの数例を示す。開示および説明されるコンポーネントおよび方法の特定の実施態様は、そのような態様およびそれらの等価物のいくつか、多数またはすべてを含むことができる。本明細書で提示された特定の実施態様および実施例の変形形態は、図面と共に考慮されると以下の詳細な説明から明らかになるであろう。
本出願で使用されるとき、「コンポーネント」、「システム」、「モジュール」などの語はコンピュータ関連エンティティを指すように意図され、このエンティティは、ハードウェア、ソフトウェア(例えば、実行中のソフトウェア)、および/またはファームウェアなどである。例えば、コンポーネントは、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、プログラム、および/またはコンピュータであり得る。また、サーバ上で実行するアプリケーションおよびサーバの両方も、コンポーネントであり得る。1つまたは複数のコンポーネントがプロセス内に存在することができ、コンポーネントは、1つのコンピュータ上でローカライズされるか、および/または、2つ以上のコンピュータの間で分散され得る。
開示されるコンポーネントおよび方法は、図面を参照して説明され、図面において、類似の参照番号は全体に渡って類似の要素を指すために使用される。以下の説明では、説明のため、開示される主題の十分な理解を提供するために、多数の特定の詳細を示す。しかし、特定の実施態様では、これらの特定の詳細のあるものを省略することができ、または他のものと結合することができることは明らかであろう。他の場合では、説明を容易にするために、ある構造およびデバイスをブロック図の形で示す。加えて、示される特定の実施例は、クライアント/サーバキテクチャと一致する用語を使用する場合があり、または、クライアント/サーバ実施態様の実施例である場合もあるが、開示および説明されたコンポーネントおよび方法の主旨または範囲から逸脱することなく、クライアントおよびサーバの役割は逆にされる場合があること、開示および説明されたコンポーネントおよび方法はクライアント/サーバキテクチャに限定されず、具体的にはピアツーピア(P2P)アーキテクチャを含む他のアーキテクチャにおける使用のために容易に適合される場合があることは、当業者には理解されよう。さらに、本明細書で提示される特定の実施例は、特定のコンポーネントを含むか、または参照するが、本明細書で開示および説明されるコンポーネントおよび方法の実施態様は、必ずしもこれらの特定のコンポーネントに限定されず、他の状況においても使用することができることに留意されたい。
図1は、本発明の一態様によるファームウェアアップデートシステム100のシステムブロック図である。このシステムは、ファームウェアコードデータストア120にアクセスする、アップデートサーバ110を含む。アップデートサーバは、ファームウェアアップデートを提供するために特に設計された専用サーバとすることができ、または、ウェブサーバなど、より汎用的な情報サーバの一部にすることができる。ファームウェアコードデータストア120は、ファームウェアコードバージョン、ならびに、いかなるアップデートされたコードバージョンにも関連する情報をそれ自体で含むことができる。アップデートサーバ110を、無線通信コンポーネントを含むネットワーク130に接続することができる。通信チャネル140は、アップデートサーバ110をネットワーク130に結合し、有線チャネルまたは無線チャネルとすることができる。
モバイルコンピューティングデバイス150は、マシン可読命令をファームウェア160の形態で含む。モバイルコンピューティングデバイス150はまた、数ある中でも、送信器、受信器、または複合トランシーバなど、無線通信コンポーネントを含むこともできる。モバイルコンピューティングデバイス150は、無線通信チャネル170によってネットワーク130に結合される。無線通信チャネル170は、IEEE 802.11xベース(WiFi)の無線接続とすることができ、または、別の適切な無線通信チャネルとすることができる。企図されたこれらの無線チャネルの中には、IEEE 802.16(WiMax)、ブルートゥース、赤外線(IrDa)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、および、GSM(global system for mobile communications)携帯電話接続がある。
オペレーション中のファームウェアアップデートシステム100の一実施例は、以下の通りである。モバイルコンピューティングデバイス150は、ネットワーク130との無線接続170を作成する。ネットワーク130は、アップデートサーバ110との接続140を提供する。アップデートサーバは、確立された接続を使用して、モバイルコンピューティングデバイス150上に現在あるファームウェア160に関する情報にアクセスする。
アップデートサーバ110は、モバイルコンピューティングデバイス150上に現在インストールされているファームウェア160の個々のコンポーネントを、ファームウェアコードデータストア120内に格納されているそのデバイスのためのファームウェアコンポーネントのバージョンと比較する。モバイルコンピューティングデバイス150上にインストールされたファームウェア160のコンポーネントが現在のバージョンである場合、アクションは起きない。ファームウェアコードデータストア120内に格納された、モバイルコンピューティングデバイス150のための少なくとも1つのファームウェアコンポーネントが、モバイルコンピューティングデバイス150上に格納されたファームウェア160のコンポーネントのアップグレードまたはより新しいバージョンである場合、モバイルコンピューティングデバイス150は、アップグレードまたはより新しいバージョンをアップデートサーバ110からダウンロードし、現在インストールされているコンポーネントを置換する。このスキームのさらなる詳細を以下で論ずる。
ファームウェアは慣習上、いくつかの数の個々のパッケージまたはコンポーネントに分離され、その各々を個別にアップデート、削除または置換することができる。各パッケージは通常、パッケージ識別子、バージョン識別子、およびアップデートステータス識別子を含む。簡素な可能なアップデートスキームでは、記述された各ファームウェアコンポーネントは、ステータス情報をユーザまたはアップデートサーバへ提供し、アップデートをダウンロードすること、および、ROM内のそれの適切な場所において、特定のコンポーネントをアップデートまたは置換することに備える。しかし、しばしば、ファームウェアアップデートは、ROMイメージのいくつかの異なったエリアのアップデートまたは置換を必要とし、その各々は通常、別々にバージョニングされるようになる。このようなスキームでは、OMA(Open Mobile Alliance)ファームウェアアップデート(FUMO)仕様によって想定された実施態様など、標準化された実施態様を使用してアップデートすることは、複数のダウンロードおよびアップデートサイクルが、ROMイメージの、影響を受ける各セクションを個々にアップデートすることを必要とする。このプロセスは、「同期していない(out of sync)」ファームウェアパッケージをもたらす。というのは、あるパッケージはアップデートされていたが、他のパッケージはまだ置換されていなかったからである。
解決策は、ステータスを、ダウンロードおよびアップデートの挙動から分割することである。この論理的分割は、モバイルオペレータインフラストラクチャによる、アップデートされる必要のあるファームウェアコンポーネントの検出のための、標準化された問い合わせを許可する一方で、なお、ROMイメージに適用されるべきコードアップデートの集合体を含むパッチを可能にする。1つの可能な実施態様は、標準化されたモバイルオペレータインフラストラクチャを使用することを含む。このようなスキームでは、読み取り専用管理オブジェクトを発行して、アップデートすることができるROMイメージの領域またはファームウェアコンポーネントを記述することができる。管理オブジェクトを、図2に示すスキーマによって示すように実施することができる。
図2は、読み取り専用管理オブジェクト200のためのスキーマを示す。このタイプのオブジェクトを、数ある中でも、OMA FUMOデバイス管理ツリーなど、デバイス管理ツリーの一部として管理することができる。読み取り専用管理オブジェクト200は、ROMPackageノード210をルートレベルで含む。この特定のスキーマによれば、ただ1つのルートレベルノードが存在することができる。異なる数のノードをルートレベルで有する他のスキーマが可能であることは、当業者には理解されよう。
この実施例では、ROMPackageノード210は、ルートレベルの親ノードであり、グローバル一意識別子(「GUID」)とすることができるROMパッケージ識別子を、バージョンおよび名前情報と共にグループ化する。GUIDは、英数字識別子、バイナリ識別子、16進識別子、または別の適切な識別子とすることができる。この特定のスキーマに示すように、ROMPackageノード210が必要とされ、これはルートレベルに位置する単一のインスタンスに制限される。このスキーマのさらなる考察は時々、ある形式において必要とされるか、または制限されるとき、あるコンポーネントを参照することに留意されたい。このような参照が行われるとき、これらの参照は特定の実施例のためのみであり、一実施例として提供された特定の実施態様からの逸脱が不可能であることを示唆しない。
次のレベルは、少なくとも1つのxノード220を含み、これはパッケージ識別子を含む。このパッケージ識別子は、英数字識別子、バイナリ識別子、16進識別子、または別の適切な識別子とすることができる。簡単のため、単一のxノード220のみを示す。しかし、複数のxノード220が可能であるだけでなく、想定される。この実施例の各xノード220は、1つのPkgVersionノード230、1つのPkgNameノード240、および1つのStateノード250を含む。これらのコンポーネントのさらなる考察は、以下の通りである。
各xノード220は、特定のROMパッケージの識別子を表す。xノード220に含まれた値はGUIDであり、これは、英数字識別子、バイナリ識別子、16進識別子、または別の適切な識別子とすることができる。xノード220は、それが関連するROMイメージについてのさらなる記述的情報を含む、他の下位レベルノードをグループ化する働きをする。具体的には、各xノード220は、イメージ全体から離れて、単一で分離可能なユニットとして処理することができる、ROMイメージの別個の部分のための識別子としての機能を果たすことができる。
PkgVersionノード230は、ROMイメージの部分について、具体的には、ROMイメージのパッケージについてのバージョン情報を含む。バージョン情報を任意の適切なフォーマットで提供することもでき、これらのフォーマットには、具体的には、英数字ストリング、バイナリ識別子、または16進識別子が含まれる。この特定の実施例では、ただ1つのPkgVersionノード230のみが、xノード220によって指定されたグループ内で許可される。しかし、他のスキームが可能であることは、当業者には容易に理解されよう。企図されるこれらのスキームの中には、複数のバージョン識別子を含むものがあり、その場合、パッケージは複数の既存のパッケージを置換することができ、また、数ある中でもゲームまたはテレビ会議など、特定の使用のために意図されたバージョンなど、サブバージョンまたは特殊バージョンを含むものがある。サブバージョンまたは特殊バージョンのコンポーネントの場合、サブバージョンまたは特殊バージョンに関連付けられる、特殊にフォーマットされた識別子を使用することができる。加えて、または代替として、提示された実施例のスキーマを拡張して、サブバージョンまたは特殊バージョン識別のためのノードを含めることができる。
提示されたスキーマの1つの利点は、その拡張性である。本明細書で提示された実施例のスキーマは、ベースレベルフレームワークを提供し、拡張の開発を含むさらなる開発が、このフレームワークに基づくようにすることができる。汎用的に適用可能か、極めて実装依存か、またはその中間のどこかにすることができる様々な方法で、ベーススキーマを拡張することができることに留意されたい。
PkgNameノード240は、ROMパッケージの名前を含む。この実施例では、名前は、人が読めるものであり、文字または英数字ストリングである。しかし、ROMパッケージの名前は代替方法で表すことができ、これらの方法には具体的には、人が読めない英数字識別子、バイナリ識別子、16進識別子、または別の適切な識別子が含まれる。この実施例では、ただ1つのPkgNameノード240のみが各xノード220について提供されるが、特定の実施態様では複数を使用することができる。
Stateノード250は、パッケージのためのモバイルデバイスの状態のための値を含む。この値は実装依存にすることができ、モバイルコンピューティングデバイスの状態情報を格納するために使用することができる。例えば、アップデートが成功したこと、および、古いデータが削除されたことを指示する値を、Stateノード250にセットすることができる。同様に、アップデートの試行が失敗していること、および、古いデータが保持されていることを指示する値をセットすることができる。同様に、アップデートの試みが失敗したこと、および古いデータが保持されたままであることを指示する値をセットすることができる。幅広い種類の他の状態記述子および値を作成し使用することができる。
図3は、本発明の一態様によるアップデートオブジェクト300のスキーマ図である。この実施例では、アップデートオブジェクト300のインスタンスが、適用されるべき特定のアップデートに応じて、ランタイムで動的に作成される。図2に関連して論じたオブジェクトスキーマのように、アップデートオブジェクトをまた、OMA FUMOシステムまたは別の適切なシステムに従って処理することもできる。このオブジェクトは、FwUpdateノード310をルートレベルで含む。この特定のスキーマによれば、ただ1つのルートレベルノードが存在することができる。しかし、他の実施態様では、複数のルートレベルノードが使用され得る。提示されたスキーマを、特定の実施態様の特有の必要性に合わせてどのように修正することができるか、当業者には理解されよう。
次のレベルは、パッケージ識別子を含む、xノード320を含む。明確にするために、単一のxノード320を示す。しかし、複数のxノード320を使用することができ、使用されるであろうことが企図されている。この実施例では、xノード320のパッケージ識別子は、イメージアップデートパッケージのGUIDである。GUIDは、英数字識別子、バイナリ識別子、16進識別子、または別の適切な識別子とすることができる。
各xノード320は、ROMイメージのアップデートパッケージを表す。表されたアップデートパッケージは、複数のROMパッケージをアップデートするための情報を含むことができる。各xノード320は、DownloadAndUpdateノード330を含み、ノード330自体がPkgURLノード340を含む。DownloadAndUpdateノード330は、ブール(boolean)データを含むことができる。PkgURLノード340は、ダウンロードされてファームウェアアップデートとして適用されるべきパッケージのためのユニフォームリソースロケータ(「URL」)などのロケーション情報を含むことができる。
ノード320はまた、PkgVersionノード350を含む。PkgVersionノード350は、イメージアップデートパッケージについてのバージョン情報を含む。このバージョン情報は、文字ストリングの場合のように、人が読めるものにすることができ、または、バイナリコードなど、マシン可読フォーマットにすることができる。バージョン情報のための他の適切なフォーマットを使用することができる。加えて、サブバージョンまたは特殊バージョン情報を、提示されたスキーマの一部として、または、このスキーマの拡張として、含めることができる。
ノード320はまた、PkgNameノード360を含む。この実施例では、PkgNameノード360は、ROMパッケージのユーザーフレンドリ名を含む。本明細書で提示された他の実施例のように、名前は、特定の実施態様に応じてそれら自体が変わる可能性のある様々なフォーマットで表すことができる。
Stateノード370は、さらに、xノード320の下に含まれる。Stateノード370は、ROMパッケージをアップデートしようとする試行の後の、モバイルデバイスの状態についての値を含む。この値は実装依存にすることができ、モバイルコンピューティングデバイスについての状態情報を格納するために使用することができる。例えば、アップデートが成功したこと、および、古いデータが削除されていることを指示する値を、Stateノード370にセットすることができる。同様に、アップデートの試行が失敗したこと、および、古いデータが保持されたままであることを指示する値をセットすることができる。幅広い種類の他の状態記述子および値を作成し使用することができる。
図4は、本発明の別の態様による、ローカライゼーション機能を含むROMアップデートシステム400のシステムブロック図である。ローカライゼーションは一般に、具体的にはソフトウェアコンポーネントを含む、コンピューティングデバイスのコンポーネントを、特定の地理的ロケーションの必要性を反映するように適合させるプロセスを示す。一般に、ローカライゼーションは、特定の地域で話される言語を使用するようにソフトウェアを適合させるようなことを含む。本明細書で使用されるように、ローカライゼーションはまた、コンピューティングデバイスに、ある地理的エリア内で別の地理的エリア内とは異なる動作をさせるように、オペレーションレベルの変更を行うことをも含む。
このような機能的変更の一実施例は、通信プロトコルにおけるものである。モバイルコンピューティングデバイスは、複数の通信プロトコルをサポートするハードウェアを含むことができる。このデバイスは、米国内に位置する間、TDMAプロトコルを通信施設への無線アクセスのために使用することができる。しかし、欧州では、GSMプロトコルが主として使用される。したがって、モバイルコンピューティングデバイスのROM内の変更により、モバイルコンピューティングデバイスが欧州内で動作中であるときに、このデバイスにTDMAの代わりにGSMを使用させることができる。
同様に、モバイルコンピューティングデバイスは、IEEE 802.11x(WiFi)通信を、他の通信プロトコルと共にサポートすることができる。モバイルコンピューティングデバイスがWiFiホットスポット、または、WiFiアクセスポイントによってサービスされる別のエリアに入るとき、モバイルコンピューティングデバイスはそのROMをアップデートして、デバイスにWiFiアクセスポイントを使用させることができる。複数の通信プロトコルの間のこのような切り替えの他の実施例は、当業者には明らかになるであろう。
もう1つの実施例は、地理的ロケーションによって、モバイルコンピューティングデバイスの機能を追加または除去すること(または同様に、使用可能もしくは使用不可にすること)を含む。米国内では、強力な暗号化技術を使用して、電子通信を保護することができる。このような技術のためのサポートは通常、あらゆる地理的ロケーションにおいて使用可能ではない。モバイルコンピューティングデバイスは、その内部ROMイメージをアップデートすることによって、暗号化機能を追加または除去すること(または、使用可能もしくは使用不可にすること)ができる。このような機能的修正の他の実施例は、当業者には明らかになるであろう。
ROMアップデートシステム400は、モバイルコンピューティングデバイスの地理的ロケーションに従って、モバイルコンピューティングデバイスのROMイメージのアップデートを可能にするように意図されている。ROMアップデートシステム400は、ローカライズされたファームウェア420をそれ自体が含む、モバイルコンピューティングデバイス410を含む。モバイルコンピューティングデバイス410は、携帯電話、パーソナル情報マネージャ、携帯情報端末、または別のデバイスとすることができる。全地球測位システム(GPS)モジュール430はモバイルコンピューティングデバイスに結合され、GPS衛星440にアクセスすることができる。GPSモジュール430は、GPS衛星440からの情報を使用して、モバイルコンピューティングデバイス410の地理的ロケーションを決定することができる。
モバイルコンピューティングデバイス410は、ネットワーク450にアクセスすることができる。ネットワーク450は、有線または無線ネットワークにすることができ、特にインターネットとすることができる。ネットワーク450は、アップデートサーバ460に接続することができる。アップデートサーバは、専門ファイルサーバ、ファームウェアアップデートタスクのために適合されているウェブサーバ、または、別の適切なタイプのサーバとすることができる。どのように実装されても、アップデートサーバ460はモバイルコンピューティングデバイス410と通信することができ、特に、アップデート情報をモバイルコンピューティングデバイス410に送信することができる。
アップデートサーバ460は、ローカライゼーションモジュール470にアクセスすることができる。ローカライゼーションモジュール470は、GPSモジュール430からの情報を使用して、モバイルコンピューティングデバイス410に送信されるべき、ローカライズされたROMイメージまたはその一部など、適切なローカライゼーション情報を決定することができる。アップデートサーバ460は、ROMコードデータストア480から、ローカライゼーションモジュール470によって指定された適切なROMコンポーネントにアクセスすることができる。ROMデータストア480からのROMコンポーネントは、アップデートサーバ460により、ネットワーク450を使用して、モバイルコンピューティングデバイス410に送信することができる。
例えば、ローカライゼーションまたは識別タスクに関連して開示および説明されるコンポーネントは、その様々な態様を実行するための様々な人工知能ベースのスキームを使用することができる。例えば、ローカライズされたROMコンポーネントの識別は、ニューラルネットワーク、エキスパートシステム、ルールベースの処理コンポーネント、またはSVMによって実行することができる。また、複数のコンポーネントを使用することができるとき、ニューラルネットワーク、他の人工知能ベースのコンポーネントは、事前定義された要素(factor)に基づいて「最良適合(best fit)」を提供する、ローカライズされたROMコンポーネントの識別を支援することができる。
分類子は、入力属性ベクトルX=(x,x,x,x,...x)を、入力がクラスに属する信頼性、すなわちf(X)=confidence(class)、にマッピングする関数である。このような分類は、確率的および/または統計ベースの解析を使用して(例えば、解析の有用性およびコストの要素に入れる)、ユーザが自動的に実行されるように望むアクションを予知または推論することができる。ROMコンポーネント置換システムの場合、例えば、属性は、ファイル名、署名、ハッシュ関数、アップグレードコード、互換性コード、バージョン番号、ビルド番号、リリース日、または、ROMファイルから導出された他のデータ固有の属性などのファイル記述子とすることができ、クラスは、例えば、デバイスが使用することができる他のROMコンポーネントの記述子など、関心のあるカテゴリまたはエリアである。
サポートベクトルマシン(SVM)は、使用することのできる分類子の一例である。SVMは、可能な入力の空間における超曲面を見つけることによって動作し、その超曲面は、トリガリング基準(triggering criteria)を非トリガリングイベントから分割しようと試行する。直観的に、これは、トレーニングデータに近いが等しくはないデータをテストするために、分類を正しくする。他の有向および無向モデル分類手法には、例えば、ナイーブベイズ、ベイジアンネットワーク、判定ツリーが含まれ、異なるパターンの独立性を提供する確率分類モデルを使用することができる。分類にはまた、本明細書で使用されるとき、優先順位のモデルを開発するために利用される、統計的回帰(statistical regression)が含まれる。
本明細書から容易に理解されるように、本発明は、明示的にトレーニングされる(例えば、汎用トレーニングデータによる)、ならびに、暗示的にトレーニングされる(例えば、ユーザの挙動を観察すること、外部の情報を受信することによる)、分類子を使用することができる。例えば、SVMは、分類子コンストラクタおよび機能選択モジュール内で学習フェーズまたはトレーニングフェーズによって構成される。従って、分類子を使用して、いくつかのファンクションを自動的に実行することができ、これらのファンクションには、それに限定されないが、デバイスにデータが送信されるべきであるかどうかを判断することが含まれる。
ROMアップデートシステム400のオペレーションの一実施例は、以下の通りである。使用中に、モバイルコンピューティングデバイス410はGPSモジュール430にアクセスして、その地理的ロケーションについての情報を得る。この情報を得るため、GPSモジュール430はGPS衛星440にアクセスし、このGPS衛星440からの情報に基づいてその地理的位置を計算する。モバイルコンピューティングデバイスはまた、前の図に関連して上述したスキーマまたはオブジェクトのうち1つの形態における、ローカライズされたファームウェア420についての情報にもアクセスする。
モバイルコンピューティングデバイス410は、その地理的ロケーションおよびローカライズされたフォームウェア420についての情報を、ネットワーク450を介して送信する。その情報は、アップデートサーバ460によって受信される。アップデートサーバ460はその地理的情報、および、ローカライズされたファームウェア420についての情報を、ローカライゼーションモジュール470に送信する。ローカライゼーションモジュール470は、その地理的情報、および、ローカライズされたファームウェア420についての情報を使用して、置換ローカライズドROMコンポーネントが存在するかどうか、および、その置換ローカライズドROMコンポーネントが適用されるべきであるかどうかを判断する。
置換ローカライズドROMコンポーネントが存在し、適用されるべきである場合、ローカライゼーションモジュール470は、置換ROMコンポーネントについての識別情報をアップデートサーバ460に提供する。アップデートサーバ460は、ROMコードデータストア480からコンポーネントを得て、このコンポーネントを、ネットワーク450を介して送信する。モバイルコンピューティングデバイス410は、ネットワーク450から置換コンポーネントを受信し、置換コンポーネントを用いて、ローカライズされたファームウェア420をアップデートすることを続ける。
図5は、本発明のさらなる態様による、ピアベースのROMアップデートシステム500のシステムブロック図である。このピアベースのROMアップデートシステムは、それによりモバイル通信デバイスが置換ROMコンポーネントを第2のモバイルコンピューティングデバイスからピアツーピアベースで直接得ることができる手段を提供するように、意図されている。このようなピアツーピア機能は、他の環境の中でも、モバイルコンピューティングデバイスのファームウェアの一部が破損しているか、または誤動作しているときなど、モバイルコンピューティングデバイスがネットワークに接続してROMアップデートを得ることができないときの環境において、有用であり得る。
ピアベースのROMアップデートシステム500は、モバイルコンピューティングデバイス510、520を含む。モバイルコンピューティングデバイス510、520の各々は、ファームウェア530、540のセットを含む。モバイルコンピューティングデバイス510、520の各々はまた、関連するピアアップデートマネージャ550、560にもアクセスすることができる。ピアアップデートマネージャ550、560は、モバイルコンピューティングデバイス510、520のファームウェア530、540についての記述的情報を得ることができる。その記述的情報は、ピアアップデートマネージャ550、560によって、他のモバイルコンピューティングデバイスに発行することができる。ピアアップデートマネージャ550、560など、モバイルコンピューティングデバイスに関連付けられたピアアップデートマネージャは、発行された情報を使用して、ファームウェア530、540などのファームウェアが、発行側モバイルコンピューティングデバイスをソースとして使用してアップデートされるべきであるかどうかを判断することができる。
モバイルコンピューティングデバイス510、520はまた、それぞれネットワーク570にもアクセスすることができる。各モバイルコンピューティングデバイス510、520はまた、ネットワーク570を使用して、アップデートサーバ580にアクセスすることができる。アップデートサーバ580へのアクセスは、アップデートを得る追加または代替手段として提供される。アップデートサーバ580は常に、最新バージョンのROMコンポーネントを、モバイルコンピューティングデバイスのファームウェアへのインストレーションのために有するようになるが、必ずしもそうとは限らないことが企図されている。また、アップデートサーバ580は、アップデートサーバにアクセスする他のモバイルコンピューティングデバイスへの配布のために、モバイルコンピューティングデバイスからROMコンポーネントを得ることができる場合もある。
可能なオペレーションシナリオの一実施例は、以下の通りである。モバイルコンピューティングデバイス510はネットワーク570を使用して、アップデートサーバ580にアクセスし、ファームウェア530へのインストレーションのためにアップデートされたROMコンポーネントを得る。アップデートサーバ580は、アップデートが入手可能であることを決定し、そのアップデートをモバイルコンピューティングデバイス510に送信する。モバイルコンピューティングデバイス510は、新しいコンポーネントを用いてファームウェア530をアップデートし、そのオペレーションを継続する。
モバイルコンピューティングデバイス510は、ピアアップデートマネージャ550を使用して、そのROMコンポーネントについての情報をモバイルコンピューティングデバイス520に発行する。モバイルコンピューティングデバイス520のピアアップデートマネージャ560は、モバイルコンピューティングデバイス510によって発行された情報を、モバイルコンピューティングデバイス520のファームウェア540のROMコンポーネントについての情報と比較する。ピアアップデートマネージャ560はこの情報を使用して、アップデートされたバージョンのROMコンポーネントがモバイルコンピューティングデバイス510から入手可能であるかどうかを判断する。そうである場合、ピアアップデートマネージャ560は、モバイルコンピューティングデバイス510からアップデートされたコンポーネントを得て、モバイルコンピューティングデバイス520のファームウェア540をアップデートする。
図6は、開示された発明のなおさらなる態様による、安全なROMアップデートシステム600のシステムブロック図である。安全なROMアップデートシステム600は、モバイルコンピューティングデバイスのファームウェアをアップデートするため、および、そのようなROMコンポーネントのソースの識別を検証するために使用される、ROMコンポーネントのコンテンツを保護することができる、プラットフォームを提供するように意図されている。様々な手法を使用して、ROMコンポーネントを保護および検証することができる。いくつかの実施例を以下でさらに論ずる。
安全なROMアップデートシステム600は、アップデートサーバ610を含む。アップデートサーバ610はセキュリティモジュール620にアクセスすることができ、セキュリティモジュール620は、アップデートサーバ610のためのセキュリティファンクションおよび認証ファンクションを提供する。このようなセキュリティファンクションおよび認証ファンクションは、デジタル署名を電子通信に適用すること、および、このような電子通信を暗号化することを含むことができる。様々な技術を使用して、電子通信にデジタル署名し、またはこれを暗号化することができる。これらの技術には、対称秘密鍵暗号化アルゴリズム、非対称秘密鍵−公開鍵アルゴリズム、または別の適切な暗号化スキームを使用することが含まれる。
アップデートサーバはネットワーク630にアクセスして、モバイルコンピューティングデバイス650と通信することができる。モバイルコンピューティングデバイス650はモバイルセキュリティモジュール640にアクセスすることができ、モバイルセキュリティモジュール640は、アップデートサーバ610に関連付けられたセキュリティモジュール620によって署名または暗号化される電子通信を解釈することができる。モバイルセキュリティモジュール640によって解釈された電子通信は、モバイルコンピューティングデバイス650へ、使用のために転送することができる。
オペレーション中に、モバイルコンピューティングデバイス650は、アップデート要求をモバイルセキュリティモジュール640に送信することができる。モバイルセキュリティモジュール640はこの要求を暗号化およびデジタル署名し、これをネットワーク630へ、配信のために転送する。ネットワーク630はこの要求をセキュリティモジュール620に転送し、セキュリティモジュール620はデジタル署名を検証し、この要求を復号化する。セキュリティモジュール620は次いで、この要求をアップデートサーバ610に転送する。
アップデートサーバは、アップデートパッケージを識別し、セキュリティモジュール620に送信する。セキュリティモジュール620は、アップデートパッケージを暗号化およびデジタル署名し、次いでこのアップデートパッケージをネットワーク630に転送する。ネットワーク630はアップデートパッケージをモバイルセキュリティモジュール640に転送し、モバイルセキュリティモジュール640は、アップデートパッケージのデジタル署名を検証し、このパッケージを復号化する。モバイルセキュリティモジュール640は次いで、アップデートパッケージをモバイルコンピューティングデバイス650に転送し、モバイルコンピューティングデバイス650はこのパッケージを使用して、そのファームウェアをアップデートする。
図7〜12を参照して、様々な方法または手順による流れ図を提示する。説明を簡単にするため、例えば、流れ図の形態において、本明細書で示された1つまたは複数の方法は、一連の動作として図示および説明されるが、図示および説明された方法および手順も、それと共にこのような方法または手順を使用することができるいかなるコンポーネントも、必ずしもこの動作の順序によって限定されないことを理解されたい。というのは、いくつかの動作は異なる順序で、および/または、本明細書で図示および説明されたもの以外の動作と同時に行われる場合があるからである。例えば、状態図においてなど、ある方法を代替として、一連の相互に関係する状態またはイベントとして表現することができることは、当業者には理解されよう。また、例示された動作のすべてが、方法または手順を実施するために必要とされるとは限らない。
図7は、本明細書で開示または説明されているコンポーネントによって使用され得る一般的な処理方法700における動作を示す流れ図である。処理は開始ブロック710で開始し、プロセスブロック720に続き、そこで管理オブジェクトが発行される。プロセスブロック730で、アップデートするROMセクションが識別される。処理は次いでプロセスブロック740に続き、そこでアップデートオブジェクトが得られる。プロセスブロック750で、実際のアップデートがダウンロードされ、デバイスのROMイメージに適用される。プロセスブロック760で、アップデートの試行に続いてデバイスの状態を指示するステータス識別子がセットされ、処理は終了ブロック770で終了する。
図8は、本明細書で開示または説明されているコンポーネントによって使用され得る一般的な処理方法800における動作を示す流れ図である。方法800は、モバイルコンピューティングデバイスのファームウェアをローカライズすることができる方法を提供するように意図されている。処理は開始ブロック810で開始し、プロセスブロック820に続く。プロセスブロック820で、モバイルコンピューティングデバイスの地理的ロケーションが得られる。地理的ロケーション情報を、GPSシステムを使用して自動的に得ることができる。加えて、または代替として、このような情報をユーザが、ロケーションを入力すること、またはロケーションを地図から選択すること、またはメニュー内のロケーションのセットの中からロケーションを選択することによって、あるいは別の適切な方法によって、手動で入力することができる。
処理はプロセスブロック830に続き、そこで、モバイルコンピューティングデバイス上にインストールされたファームウェアの記述子が得られる。このような記述子を、前の図と共に前述した記述子の1つにすることができ、または、別の適切な記述子にすることができる。プロセスブロック840で、モバイルコンピューティングデバイスのファームウェア記述子および地理的情報を含むアップデート要求が、アップデートサーバに送信される。これらの2つの情報を共に単一のユニットとして送信することができ、または分離することができる。
プロセスブロック850で、アップデートサーバは適切なローカライズされたファームウェアアップデートコンポーネントを、コンポーネントデータストアから識別する。ローカライズされたファームウェアアップデートを、完全なROMイメージにすることができ、または、ROMイメージのコンポーネントにすることができる。また、ローカライズされたファームウェアアップデートは、モバイルコンピューティングデバイスの機能性を、数ある中でも、他の図と共に前に論じた方法のいずれにおいても調整することができる。処理はプロセスブロック860に続き、そこで、アップデートサーバは、ローカライズされたファームウェアアップデートコンポーネントをモバイルコンピューティングデバイスに送信する。モバイルコンピューティングデバイスは、ローカライズされたアップデートコンポーネントを使用して、そのファームウェアの少なくとも一部をアップデートする。処理は終了ブロック880で終了する。
図9は、本明細書で開示または説明されているコンポーネントと共に使用することができる一般的な処理方法900の処理を示す流れ図である。方法900は、モバイルコンピューティングデバイスのファームウェアを、ピアツーピア通信などにより別のモバイルコンピューティングデバイスにアクセスすることよって、アップデートすることができる方法を提供するように意図されている。方法900の処理は開始ブロック910で開始し、プロセスブロック920に続き、そこで、モバイルコンピューティングデバイスは、そのファームウェア内にインストールされるROMイメージの記述子を発行する。この記述子は、前の図と共に説明される記述子の1つとすることができ、または別の適切な記述子とすることもできる。
処理はプロセスブロック930に続き、そこで、第2のモバイルコンピューティングデバイスは、発行されたROM記述子を、第2のモバイルコンピューティングデバイス内に現在インストールされているROMイメージの記述子と比較する。第2のモバイルコンピューティングデバイスの現在インストールされているROMイメージの記述子は、前の図と共に説明される記述子の1つとすることができ、または別の適切な記述子とすることもできる。判断ブロック940で、発行された記述子が、第2のモバイルコンピューティングデバイスのROMコンポーネントをアップデートすることができるROMコンポーネントに、関連付けられているかどうかの判断が行われる。
判断ブロック940で行われた判断がyesである場合、処理はプロセスブロック950に続き、そこで、アップグレードするために使用することができるROMコンポーネントが第1のモバイルコンピューティングデバイスから得られる。記述子のパブリケーションのように、複数のデバイスの間のコンポーネントの転送は、モバイルコンピューティングデバイスがサポートすることができる有線または無線通信プロトコルのいずれを使用することもできる。企図される有線システムの中には、ユニバーサルシリアルバス(「USB」)、IEEE 1394(ファイアワイヤ)、シリアルおよびパラレル接続、ならびに他のものがある。使用することができる無線システムには、WiFi、WiMax、CDMA、TDMA、GSM、ブルートゥース、および他のものが含まれる。
処理はプロセスブロック960に続き、そこで、得られたアップデートコンポーネントが第2のモバイルコンピューティングデバイスのファームウェアにインストールされる。インストレーションは、アップデートプロセスがうまく完了したことを保証するための1つまたは複数のチェックを含むことができる。処理は終了ブロック970で終了する。同様に、判断ブロック940で行われた判断が、アップデートコンポーネントが他のモバイルコンピューティングデバイスから入手可能でないことを指示する場合、処理は終了ブロック970で終了する。
図10は、本明細書で開示または説明されているコンポーネントと共に使用することができる一般的な処理方法1000の処理を示す流れ図である。方法1000は、モバイルコンピューティングデバイスのファームウェア内にインストールされたROMコンポーネントを安全にアップデートするための方法を提供するように意図されている。方法1000の処理は開始ブロック1010で開始し、プロセスブロック1020に続く。プロセスブロック1020で、モバイルコンピューティングデバイスは、暗号化およびデジタル署名されるアップデート要求を構築する。ここでは、暗号化およびデジタル署名が論じられる他の場所のように、これらの技術のいずれも単独で使用することができ、または両方を組み合わせて使用することができることに留意されたい。
処理はプロセスブロック1030に続き、そこで、現在署名され暗号化されたアップデート要求がアップデートサーバに送信される。要求の送信を、アップデートサーバへの直接接続を通じて、アップデートサーバへのネットワーク接続を通じて、または、アップデートサーバの代わりをすることができるピアとの接続を通じて、実施することができる。プロセスブロック1040で、サーバはアップデート要求を受信し、アップデート要求のデジタル署名を検証すること、および、アップデート要求のコンテンツを復号化することを続ける。この時点で、一連のチェック(図示せず)を設けて、要求が真正であることをデジタル署名が指示すること、および、要求がアップデートサーバへの転送中に改ざんされていないことを保証することができる。これらのチェックのいずれかが失敗する場合、処理を終了させることができる。
プロセスブロック1050で、アップデートサーバは、アップデート要求において提供された情報に従ってモバイルコンピューティングデバイスのファームウェアをアップデートするために使用することができる、ROMコンポーネントを識別する。プロセスブロック1060で、アップデートサーバは、アップグレードコンポーネントを暗号化およびデジタル署名する。加えて、アップデートサーバは、署名および暗号化されたROMコンポーネントをモバイルコンピューティングデバイスに送信する。
プロセスブロック1070で、モバイルコンピューティングデバイスは、署名および暗号化されたROMコンポーネントを受信し、この署名を検証すること、および、このコンポーネントを復号化することを続ける。以前の類似のプロセスのように、一連のチェック(図示せず)を設けて、要求が真正であることをデジタル署名が指示すること、および、要求がアップデートサーバへの転送中に改ざんされていないことを保証することができる。これらのチェックのいずれかが失敗する場合、処理を終了させることができる。
プロセスブロック1080で、モバイルコンピューティングデバイスはROMコンポーネントをインストールして、そのファームウェアをアップデートする。インストレーションはチェック(図示せず)を含んで、そのコンポーネントが適切にインストールされたものであり、動作可能であることを保証することができる。これらのチェックのいずれの失敗も、数ある中でも、別のアップデートの試行をもたらす可能性があり、または、処理の終了をもたらす可能性がある。方法1000の処理は、終了ブロック1090で終了する。
実施態様のための追加のステータスを提供するために、図11〜12および以下の考察は、開示および説明されているコンポーネントおよび方法をその中で実施することができる適切なコンピューティング環境の簡単な全体的説明を提供するように意図されている。様々な特定の実施態様を一般に、ローカルコンピュータおよび/またはリモートコンピュータ上で実行するコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストで上述したが、他の実施態様もまた、単独で、または、他のプログラムモジュールと組合せても可能であることは、当業者には理解されよう。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行し、および/または、特定の抽象データ型を実装する。
また、上述のコンポーネントおよび方法を他のコンピュータシステム構成により実施することができ、これらの構成には、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースおよび/またはプログラム可能な家庭用電化製品などが含まれ、その各々が1つまたは複数の関連付けられたデバイスと動作可能に通信することができることは、当業者には理解されよう。開示および説明されたコンポーネントおよび方法のある例示された態様をまた分散コンピューティング環境で実施することもでき、この環境では、あるタスクが、通信ネットワークまたは他のデータ接続を通じてリンクされるリモート処理デバイスによって実行される。しかし、これらの態様の、全部ではないがいくつかを、スタンドアロンコンピュータ上で実施することができる。分散コンピューティング環境では、プログラムモジュールはローカルおよび/またはリモートのメモリストレージデバイス内に位置することができる。
図11は、開示および説明されているコンポーネントおよび方法をその中で使用することができる、サンプルコンピューティング環境1100の概略ブロック図である。システム1100は、1つまたは複数のクライアント1110を含む。クライアント1110は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。システム1100はまた、1つまたは複数のサーバ1120を含む。サーバ1120は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ1120は、例えば、開示および説明されているコンポーネントまたは方法を使用することによって変換を実行するためのスレッドまたはプロセスを収容することができる。具体的には、サーバ1120上で実装することができる1つのコンポーネントは、図1のアップデートサーバ110など、アップデートサーバである。そのように実装することができるもう1つのコンポーネントは、図4のローカライゼーションモジュール470である。加えて、図6と共に論じたセキュリティモジュール620など、様々なセキュリティモジュールもまた、サーバ1120のコンポーネントとして実装することができる。様々な他の開示および論じられたコンポーネントを、サーバ1120上で実装することができる。
クライアント1110とサーバ1120の間の1つの可能な通信の手段を、2つ以上のコンピュータプロセスの間で送信されるように適合されたデータパケットの形態にすることができる。システム1100は、クライアント1110とサーバ1120の間の通信を容易にするために使用することができる通信フレームワーク1140を含む。クライアント1110は、クライアント1110にローカルで情報を格納するために使用することができる1つまたは複数のクライアントデータストア1150に、動作可能に接続される。同様に、サーバ1120は、サーバ1120にローカルで情報を格納するために使用することができる1つまたは複数のサーバデータストア1130に、動作可能に接続される。
図12を参照すると、様々なコンポーネントを実施するための例示的環境1200は、コンピュータ1212を含む。コンピュータ1212は、処理装置1214、システムメモリ1216、およびシステムバス1218を含む。システムバス1218は、それに限定されないが、システムメモリ1216を含むシステムコンポーネントを処理装置1214に結合する。処理装置1214は様々な使用可能なプロセッサのいずれかにすることもできる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャもまた、処理装置1214として使用することができる。
システムバス1218を、いくつかのタイプのバス構造のいずれかにすることもでき、これらのバス構造には、任意の様々な使用可能なバスアーキテクチャを使用する、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および/または、ローカルバスが含まれ、これらのバスアーキテクチャには、それに限定されないが、ISA(Industrial Standard Architecture)、MCA(Micro−Channel Architecture)、EISA(Extended ISA)、IDE(Inteligent Drive Electronics)、VLB(VESAローカルバス)、PCI(Peripheral Component Interconnect)、PCI Express(Peripheral Component Interconnect Express)、ExpressCard、カードバス、ユニバーサルシリアルバス(USB)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association)バス、ファイアワイヤ(IEEE 1394)、SATA(Serial Advanced Technology Attachment)、および、SCSI(Small Computer Systems Interface)が含まれる。
システムメモリ1216は、揮発性メモリ1220および不揮発性メモリ1222を含む。基本入出力システム(BIOS)は、起動中など、コンピュータ1212内の複数の要素の間で情報を転送するための基本ルーチンを含み、不揮発性メモリ1222に格納される。例示として、限定ではなく、不揮発性メモリ1222には、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、またはフラッシュメモリが含まれる。揮発性メモリ1220には、外部キャッシュメモリの機能を果たすランダムアクセスメモリ(RAM)が含まれる。例示として、限定ではなく、RAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、および、ダイレクトランバスRAM(DRRAM)など、多数の形態で使用可能である。
コンピュータ1212はまた、リムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体を含む。例えば、図12は、ディスクストレージ1224を例示する。ディスクストレージ1224には、それに限定されないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックが含まれる。加えて、ディスクストレージ1224は記憶媒体を他の記憶媒体とは別々に、または、他の記憶媒体と組み合わせて含むことができ、他の記憶媒体には、それに限定されないが、コンパクトディスクROMデバイス(CD−ROM)、書き込み可能CDドライブ(CD−Rドライブ)、再書き込み可能CDドライブ(CD−RWドライブ)、またはデジタル多用途ディスクROMドライブ(DVD−ROM)など、光ディスクドライブが含まれる。システムバス1218へのディスクストレージデバイス1224の接続を容易にするために、インターフェイス1226など、リムーバブルまたは非リムーバブルインターフェイスが通常は使用される。
コンピュータ1212と共に提供される様々なタイプの揮発性および不揮発性メモリまたはストレージを使用して、本明細書で開示および説明されたデータポートシグナリングシステムの様々な実施態様のコンポーネントを格納することができる。例えば、図1を参照すると、ファームウェア160を、不揮発性メモリ1222内に格納することができるソフトウェアモジュールとして実施することができる。ランタイムで、ファームウェア160を揮発性メモリ1220へロードすることができ、そこから処理装置1214は、ファームウェア160のマシン解釈可能コードにアクセスし、それにより実行に入ることができる。
図12は、ユーザと、適切なオペレーティング環境1200で説明された基本コンピュータリソースの間の、仲介の機能を果たすソフトウェアを説明することを理解されたい。このようなソフトウェアにはオペレーティングシステム1228が含まれる。オペレーティングシステム1228はディスクストレージ1224上に格納することができ、コンピュータシステム1212のリソースをコントロールし割り振るように動作する。システムアプリケーション1230は、オペレーティングシステム1228による、システムメモリ1216内またはディスクストレージ1224上のいずれかに格納されたプログラムモジュール1232およびプログラムデータ1234を通じたリソースの管理を利用する。開示されたコンポーネントおよび方法を、様々なオペレーティングシステムまたはオペレーティングシステムの組合せと共に実施することができることを理解されたい。
ユーザはコマンドまたは情報をコンピュータ1212へ、入力デバイス1236を通じて入力する。入力デバイス1236には、それに限定されないが、マウスなどのポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、TVチューナーカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれる。これらおよび他の入力デバイスは処理装置1214へ、システムバス1218を通じて、インターフェイスポート1238を介して接続する。インターフェイスポート1238には、例えば、シリアルポート、パラレルポート、ゲームポート、および、ユニバーサルシリアルバス(USB)が含まれる。出力デバイス1240は、入力デバイス1236と同じタイプのポートのいくつかを使用する。したがって、例えば、USBポートを使用して入力をコンピュータ1212に提供し、情報をコンピュータ1212から出力デバイス1240に出力することができる。インターフェイスポート1238には具体的には、数ある中でも、本明細書で開示および説明されたコンポーネントと共に使用することができる様々なデータ接続ポートが含まれる可能性がある。
出力アダプタ1242は、他の出力デバイス1240の中でも、特殊なアダプタを必要とするモニタ、スピーカおよびプリンタのようないくつかの出力デバイス1240があることを例示するために提供される。出力アダプタ1242には、例示として、限定ではなく、出力デバイス1240とシステムバス1218の間の接続の手段を提供するビデオおよびサウンドカードが含まれる。リモートコンピュータ1244など、他のデバイスおよび/またはデバイスのシステムは、入力および出力機能の両方を提供することに留意されたい。
コンピュータ1212はネットワーク環境において、リモートコンピュータ1244など、1つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ1244は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピアデバイスまたは他の共通ネットワークノードなどとすることができ、通常は、コンピュータ1212に関連して上述した要素の多数またはすべてを含む。簡潔にするため、メモリストレージデバイス1246のみがリモートコンピュータ1244と共に例示される。リモートコンピュータ1244はコンピュータ1212に、ネットワークインターフェイス1248を通じて論理的に接続され、次いで通信接続1250を介して物理的に接続される。ネットワークインターフェイス1248は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)など、有線および/または無線通信ネットワークを包含する。LAN技術には、FDDI(Fiber Distributed Data Interface)、CDDI(Copper Distributed Data Interface)、イーサネット(登録商標)、トークンリングなどが含まれる。WAN技術には、それに限定されないが、point−to−pointリンク、総合デジタルサービス通信網(ISDN)およびその変形形態のような回線交換網、パケット交換網、およびデジタル加入者線(DSL)が含まれる。
通信接続1250は、ネットワークインターフェイス1248をバス1218に接続するために使用されたハードウェア/ソフトウェアを指す。通信接続1250を例示的に明確にするためにコンピュータ1212の内部に図示するが、コンピュータ1212の外部にすることもできる。ネットワークインターフェイス1248への接続のために必要なハードウェア/ソフトウェアには、例示のためにのみ、通常の電話グレードモデム、ケーブルモデムおよびDSLモデムを含むモデム、ISDNアダプタ、およびイーサネット(登録商標)カードなど、内部および外部技術が含まれる。
上述されたものには、あるコンポーネントおよび方法の例示的実施例が含まれる。言うまでもなく、コンポーネントまたは方法のあらゆる考えられる組合せを説明することは可能ではないが、多数のさらなる組合せおよび置換が可能であることは、当業者には理解されよう。したがって、すべてのこのような変更、修正および変形形態は、付属の特許請求の範囲の主旨および範囲内に入るように意図されている。
特に、および、上述のコンポーネント、デバイス、回路、システムなどによって実行された様々な機能については、このようなコンポーネントを説明するために使用された語(「手段」への参照を含む)は、特に他の指示がない限り、説明されたコンポーネントの指定された機能を実行するいかなるコンポーネント(例えば、機能的等価物)にも対応するように意図されている。これは、たとえ、本明細書で例示された実施例における機能を実行する、開示された構造に構造上等価的でないとしてもである。この点で、開示および説明されたコンポーネントおよび方法は、様々な開示および説明された方法の動作および/またはイベントを実行するためのコンピュータ実行可能命令を有するシステムならびにコンピュータ可読媒体を含むことができるということも理解されよう。
加えて、特定の特徴は、いくつかの実施態様のうちただ1つに関して開示されている場合があるが、いずれかの所与のまたは特定の応用例のために望まれ、有利であるとき、このような特徴は、他の実施態様の1つまたは複数の他の特徴と共に結合され得る。さらに、「含む(include)」および「含んでいる(including)」という語、ならびにその変形形態が詳細な説明または特許請求の範囲において使用される範囲で、これらの語は、「含む、備える(comprising)」という語に類似した方法で包含的であるように意図されている。
ファームウェアアップデートシステムのシステムブロック図である。 管理オブジェクトのためのスキーマ図である。 アップデートオブジェクトのためのスキーマ図である。 ローカライゼーション機能を含むROMアップデートシステムのシステムブロック図である。 ピアベースのROMアップデートシステムのシステムブロック図である。 安全なROMアップデートシステムのシステムブロック図である。 使用される場合のある方法における動作を示す流れ図である。 使用される場合のある方法における動作を示す流れ図である。 使用することができる方法の処理を示す流れ図である。 使用することができる方法の処理を示す流れ図である。 例示的ネットワーキング環境を例示する図である。 例示的オペレーティング環境を例示する図である。
符号の説明
110 アップデートサーバ
120 ファームウェアコード
150 モバイルコンピューティングデバイス
160 ファームウェア
410 モバイルコンピューティングデバイス
420 ファームウェア
430 GPSモジュール
460 アップデートサーバ
470 ローカライゼーションモジュール
480 ROMコード
510、520 モバイルコンピューティングデバイス
530、540 ファームウェア
550、560 ピアアップデートマネージャ
580 アップデートサーバ
610 サーバ
620 セキュリティモジュール
640 モバイルセキュリティモジュール
650 モバイルコンピューティングデバイス

Claims (20)

  1. モバイルコンピューティングデバイスのファームウェアを記述するためのシステムであって、
    ファームウェアコンポーネントの識別情報およびバージョン情報を含む読み取り専用管理オブジェクトと、
    前記ファームウェアコンポーネントのアップデートパッケージに関連する識別情報およびバージョン情報を含むアップデートオブジェクトとを備えることを特徴とするシステム。
  2. 前記ファームウェアコンポーネントの前記識別情報およびバージョン情報にアクセスして、ファームウェアコンポーネントアップデートパッケージが入手可能であるかどうかを判断するアップデートモジュールをさらに備えることを特徴とする請求項1に記載のシステム。
  3. 前記アップデートオブジェクトは、前記ファームウェアコンポーネントアップデートパッケージのロケーションをさらに含むことを特徴とする請求項2に記載のシステム。
  4. 前記ファームウェアコンポーネントアップデートパッケージの前記ロケーションは、ユニフォームリソース識別子であることを特徴とする請求項3に記載のシステム。
  5. 前記管理オブジェクトを使用して、前記アップデートオブジェクトを提供するアップデートサーバをさらに備えることを特徴とする請求項4に記載のシステム。
  6. 前記アップデートオブジェクトは、ローカライズされたコンポーネントを参照することを特徴とする請求項5に記載のシステム。
  7. 前記アップデートオブジェクトをモバイルコンピューティングデバイスから得ることができるピアアップデートモジュールをさらに備えることを特徴とする請求項5に記載のシステム。
  8. ローカライズされたコンテンツを参照するアップデートオブジェクトを識別することができるローカライゼーションモジュールをさらに備えることを特徴とする請求項5に記載のシステム。
  9. 前記アップデートオブジェクトを送信のために保護することができるセキュリティモジュールをさらに備えることを特徴とする請求項5に記載のシステム。
  10. ポータブルコンピューティングデバイスのファームウェアコンポーネントを管理する、コンピュータにより実施される方法であって、
    読み取り専用管理オブジェクトを使用して、少なくとも部分的には、アクセスされた情報に基づいて、入手可能なファームウェアコンポーネントアップデートパッケージを識別するステップと、
    前記ファームウェアコンポーネントアップデートパッケージに関連する情報を含むアップデートオブジェクトを作成するステップとを備えることを特徴とする方法。
  11. アップデートオブジェクトを作成するステップは、アップデートコンポーネントのロケーションを提供するステップ、および、ローカライゼーション情報を使用するステップのうちの少なくとも1つを含むことを特徴とする請求項10に記載の方法。
  12. 前記アップデートオブジェクトをモバイルコンピューティングデバイスに送信するステップをさらに備えることを特徴とする請求項11に記載の方法。
  13. 前記アップデートオブジェクトをモバイルコンピューティングデバイスに送信するステップは、前記アップデートオブジェクトにデジタル署名するステップ、および、前記アップデートオブジェクトを暗号化するステップのうちの少なくとも1つを含むことを特徴とする請求項12に記載の方法。
  14. 前記ファームウェアコンポーネントパッケージを前記モバイルコンピューティングデバイスに送信するステップをさらに備えることを特徴とする請求項12に記載の方法。
  15. ポータブルコンピューティングデバイスのファームウェアコンポーネントを管理するためのシステムであって、
    読み取り専用管理オブジェクトを使用して、少なくとも部分的には、アクセスされた情報に基づいて、入手可能なファームウェアコンポーネントアップデートパッケージを識別する手段と、
    前記ファームウェアコンポーネントアップデートパッケージに関連する情報を含むアップデートオブジェクトを作成する手段とを備えることを特徴とするシステム。
  16. アップデートオブジェクトを作成する前記手段は、アップデートコンポーネントのロケーションを提供する手段を含むことを特徴とする請求項15に記載のシステム。
  17. 前記アップデートオブジェクトをモバイルコンピューティングデバイスに送信する手段をさらに備えることを特徴とする請求項16に記載のシステム。
  18. 前記アップデートオブジェクトをモバイルコンピューティングデバイスに送信する前記手段は、前記アップデートオブジェクトにデジタル署名する手段、および、前記アップデートオブジェクトを暗号化する手段のうちの少なくとも1つを含むことを特徴とする請求項17に記載のシステム。
  19. 前記ファームウェアコンポーネントパッケージを前記モバイルコンピューティングデバイスに送信する手段をさらに備えることを特徴とする請求項17に記載のシステム。
  20. アップデートオブジェクトを作成する前記手段は、ローカライゼーション情報を使用する手段を含むことを特徴とする請求項16に記載のシステム。
JP2006024791A 2005-02-01 2006-02-01 ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート Expired - Fee Related JP5096680B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US64888705P 2005-02-01 2005-02-01
US60/648,887 2005-02-01
US11/141,864 US7873959B2 (en) 2005-02-01 2005-06-01 Publishing the status of and updating firmware components
US11/141,864 2005-06-01

Publications (2)

Publication Number Publication Date
JP2006216047A true JP2006216047A (ja) 2006-08-17
JP5096680B2 JP5096680B2 (ja) 2012-12-12

Family

ID=36603025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024791A Expired - Fee Related JP5096680B2 (ja) 2005-02-01 2006-02-01 ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート

Country Status (8)

Country Link
US (1) US7873959B2 (ja)
EP (1) EP1686469B1 (ja)
JP (1) JP5096680B2 (ja)
KR (1) KR101238511B1 (ja)
CN (1) CN1825282B (ja)
BR (1) BRPI0600159A (ja)
ES (1) ES2601502T3 (ja)
MX (1) MXPA06001253A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243183A (ja) * 2007-03-28 2008-10-09 Lenovo Singapore Pte Ltd ファームウェア装置更新システムおよびその方法
US8201161B2 (en) 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
JP2012168710A (ja) * 2011-02-14 2012-09-06 Fujitsu Ltd 情報処理システム、情報処理方法、及び制御プログラム
US20160219029A1 (en) 2015-01-27 2016-07-28 Renesas Electronics Corporation Communication device, lsi, program, and communication system

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7367027B1 (en) * 2002-08-22 2008-04-29 Hewlett-Packard Development Company, L.P. System for generating efficient and compact update packages
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7428709B2 (en) * 2005-04-13 2008-09-23 Apple Inc. Multiple-panel scrolling
US7634584B2 (en) 2005-04-27 2009-12-15 Solarflare Communications, Inc. Packet validation in virtual network interface architecture
US7870490B2 (en) * 2005-11-15 2011-01-11 Microsoft Corporation On-the-fly device configuration and management
US7378966B2 (en) * 2006-01-04 2008-05-27 Microsoft Corporation RFID device groups
US7984432B2 (en) * 2006-05-30 2011-07-19 Infineon Technologies Ag Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
US20080001711A1 (en) * 2006-06-15 2008-01-03 Microsoft Corporation Reliability of execution for device provider implementations
US8207822B2 (en) * 2006-06-15 2012-06-26 Microsoft Corporation Support for batching of events, and shredding of batched events in the RFID infrastructure platform
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
CN101543016A (zh) * 2006-11-29 2009-09-23 惠普开发有限公司 网络中的设备管理操作的基于ip的通知
TW200828099A (en) * 2006-12-19 2008-07-01 Realtek Semiconductor Corp Flash memory device and renewing method, and program search method
US8041444B2 (en) * 2006-12-22 2011-10-18 Harris Stratex Networks Operating Corporation Intelligent production station and production method
US20080174404A1 (en) * 2007-01-23 2008-07-24 Microsoft Corporation Dynamic updates in rfid manager
US8245219B2 (en) * 2007-01-25 2012-08-14 Microsoft Corporation Standardized mechanism for firmware upgrades of RFID devices
US9112891B2 (en) * 2007-02-02 2015-08-18 Sharp Laboratories Of America, Inc. Remote firmware management for electronic devices
FR2913295B1 (fr) * 2007-03-02 2010-09-10 Sagem Comm Procede de telechargement dans un boitier recepteur/ decodeur de television.
US8019794B2 (en) * 2007-04-02 2011-09-13 Sharp Laboratories Of America, Inc. Firmware repository for MFP devices
JP4539677B2 (ja) * 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
US8271969B2 (en) 2007-08-09 2012-09-18 Research In Motion Limited Method and apparatus for determining the state of a computing device
CN101437071B (zh) 2007-11-15 2011-09-28 华为技术有限公司 终端设备管理树管理对象实例化的方法及设备
KR100932276B1 (ko) 2007-12-06 2009-12-16 한국전자통신연구원 보안 모듈의 업그레이드 장치 및 그 방법
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
KR20090090801A (ko) * 2008-02-22 2009-08-26 삼성전자주식회사 휴대 단말기의 펌웨어 업데이트 방법 및 장치
US8347348B2 (en) * 2008-03-31 2013-01-01 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for pre-boot policy modification
KR100951622B1 (ko) * 2008-05-02 2010-04-09 강릉원주대학교산학협력단 무선센서 네트워크의 노드에 대한 펌웨어 업데이트 방법 및이에 사용되는 펌웨어 업데이트장치
US8971884B2 (en) * 2008-09-30 2015-03-03 At&T Mobility Ii Llc Rejection notification to a universal integrated circuit card
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US8618717B2 (en) * 2009-07-02 2013-12-31 Sierra Wireless, Inc. System and method for connection to a wireless network
US8296399B2 (en) * 2009-07-15 2012-10-23 Microsoft Corporation Connecting galleries to dynamic server-hosted content
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US9467338B2 (en) * 2010-04-01 2016-10-11 Blackberry Limited Method for communicating device management data changes
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
US9110690B2 (en) * 2010-04-28 2015-08-18 General Electric Company Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
US8307095B2 (en) 2010-06-21 2012-11-06 Research In Motion Limited Firmware upgrade system and method in a device management architecture
US8713098B1 (en) * 2010-10-01 2014-04-29 Google Inc. Method and system for migrating object update messages through synchronous data propagation
US20120216183A1 (en) * 2011-02-23 2012-08-23 Amit Mahajan Firmware updation in electronic devices
US8824346B2 (en) * 2011-02-23 2014-09-02 Lg Electronics Inc. Remote wakeup of application processor of mobile device
CN102356394B (zh) * 2011-08-23 2013-09-11 华为技术有限公司 文档更新方法和装置
CN102508729B (zh) * 2011-09-29 2014-12-03 中国航天科技集团公司第五研究院第五一三研究所 Fpga内rom映射区动态刷新纠错方法
US8984502B2 (en) 2011-10-28 2015-03-17 Hewlett-Packard Development Company, L.P. Systems and methods for composing or decomposing a composite image for firmware update images
US10083021B2 (en) * 2011-12-06 2018-09-25 Samsung Electronics Co., Ltd. Method and apparatus for providing firmware over the air service to user equipments
US8713646B2 (en) 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US9430206B2 (en) * 2011-12-16 2016-08-30 Hsiu-Ping Lin Systems for downloading location-based application and methods using the same
US9680763B2 (en) 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US10404615B2 (en) 2012-02-14 2019-09-03 Airwatch, Llc Controlling distribution of resources on a network
EP2817715A4 (en) * 2012-02-23 2015-10-28 Hewlett Packard Development Co MICROLOGICAL PRODUCT FOR MODIFYING AN ACTIVE MICROLOGICIEL
US9032386B1 (en) * 2012-07-30 2015-05-12 Adobe Systems Incorporated Product upgrade location identifier for software upgrade
EP2704053B1 (en) * 2012-08-27 2016-09-21 Giesecke & Devrient GmbH Method and system for updating a firmware of a security module
US8869133B2 (en) * 2012-11-06 2014-10-21 General Electric Company Method and system for use in facilitating patch change management of industrial control systems
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US8832785B2 (en) 2012-12-06 2014-09-09 Airwatch, Llc Systems and methods for controlling email access
US8938730B2 (en) 2012-12-17 2015-01-20 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set
US8924950B2 (en) * 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US8781502B1 (en) 2013-02-01 2014-07-15 Swirl Networks, Inc. Systems and methods for display of supplemental content responsive to location
CN103176822B (zh) * 2013-03-04 2016-08-31 广东欧珀移动通信有限公司 一种下载数据的控制方法及控制装置
US20140280955A1 (en) 2013-03-14 2014-09-18 Sky Socket, Llc Controlling Electronically Communicated Resources
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US10742604B2 (en) 2013-04-08 2020-08-11 Xilinx, Inc. Locked down network interface
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US9092300B2 (en) 2013-04-18 2015-07-28 Ottr Products, Llc Peripheral device and method for updating firmware thereof
US9900261B2 (en) 2013-06-02 2018-02-20 Airwatch Llc Shared resource watermarking and management
US9584437B2 (en) 2013-06-02 2017-02-28 Airwatch Llc Resource watermarking and management
US8756426B2 (en) 2013-07-03 2014-06-17 Sky Socket, Llc Functionality watermarking and management
US8775815B2 (en) 2013-07-03 2014-07-08 Sky Socket, Llc Enterprise-specific functionality watermarking and management
US8806217B2 (en) 2013-07-03 2014-08-12 Sky Socket, Llc Functionality watermarking and management
US9665723B2 (en) 2013-08-15 2017-05-30 Airwatch, Llc Watermarking detection and management
US9516005B2 (en) 2013-08-20 2016-12-06 Airwatch Llc Individual-specific content management
US9544306B2 (en) 2013-10-29 2017-01-10 Airwatch Llc Attempted security breach remediation
US9258301B2 (en) 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US9098375B2 (en) * 2013-12-23 2015-08-04 Verizon Patent And Licensing Inc. Automatic management of software patch installation
CN103888867A (zh) * 2014-03-07 2014-06-25 深圳市领芯者科技有限公司 音箱、音箱的控制系统及控制方法
US10489145B2 (en) * 2014-11-14 2019-11-26 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
US10015048B2 (en) * 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9807117B2 (en) 2015-03-17 2017-10-31 Solarflare Communications, Inc. System and apparatus for providing network security
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10491400B2 (en) 2016-08-23 2019-11-26 Solarflare Communications, Inc. System and apparatus for providing network security
CN107800561B (zh) * 2016-09-12 2021-05-04 平安科技(深圳)有限公司 资源更新方法和装置
US10528708B2 (en) * 2016-12-16 2020-01-07 International Business Machines Corporation Prevention of unauthorized resource updates
US11223520B1 (en) 2017-01-31 2022-01-11 Intel Corporation Remote control plane directing data plane configurator
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10523578B1 (en) 2017-07-23 2019-12-31 Barefoot Networks, Inc. Transmission of traffic management data to processing pipeline
US10346157B2 (en) * 2017-07-31 2019-07-09 Qualcomm Incorporated Patch infrastructure for ROM firmware
US10771387B1 (en) 2017-09-28 2020-09-08 Barefoot Networks, Inc. Multiple packet data container types for a processing pipeline
US10686872B2 (en) 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
US10686731B2 (en) 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
US11165720B2 (en) 2017-12-19 2021-11-02 Xilinx, Inc. Network interface device
JP7081223B2 (ja) * 2018-03-07 2022-06-07 トヨタ自動車株式会社 マスタ装置、マスタ、ソフトウェアの整合性を確認するための方法及びプログラム、車両
US11520572B2 (en) * 2019-09-13 2022-12-06 Oracle International Corporation Application of scheduled patches
KR20210046418A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법
KR102188044B1 (ko) * 2019-11-29 2020-12-07 한남대학교 산학협력단 뉴로모픽 아키텍처 기반 지능형 응용 개발을 위한 프레임워크 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209510A (ja) * 2002-01-11 2003-07-25 Nec Corp 携帯電話のファームウェア配信システム、携帯電話端末およびそのファームウェア更新プログラム
JP2004126856A (ja) * 2002-10-01 2004-04-22 Matsushita Electric Ind Co Ltd Ddnsクライアント端末とddnsサーバ、ddnsバージョン管理システム、及びファームウェアバージョンの更新方法
JP2004199491A (ja) * 2002-12-19 2004-07-15 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2004213201A (ja) * 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6976163B1 (en) * 2000-07-12 2005-12-13 International Business Machines Corporation Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein
US7149792B1 (en) 2000-11-20 2006-12-12 Axeda Corporation Device registration mechanism
US20070169073A1 (en) * 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
US20030217357A1 (en) 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
US20040193917A1 (en) * 2003-03-26 2004-09-30 Drews Paul C Application programming interface to securely manage different execution environments
US7203745B2 (en) * 2003-05-29 2007-04-10 Akamai Technologies, Inc. Method of scheduling hosts for software updates in a distributed computer network
US7428417B2 (en) * 2003-09-26 2008-09-23 Siemens Communications, Inc. System and method for presence perimeter rule downloading
US7765540B2 (en) * 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209510A (ja) * 2002-01-11 2003-07-25 Nec Corp 携帯電話のファームウェア配信システム、携帯電話端末およびそのファームウェア更新プログラム
JP2004126856A (ja) * 2002-10-01 2004-04-22 Matsushita Electric Ind Co Ltd Ddnsクライアント端末とddnsサーバ、ddnsバージョン管理システム、及びファームウェアバージョンの更新方法
JP2004199491A (ja) * 2002-12-19 2004-07-15 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2004213201A (ja) * 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243183A (ja) * 2007-03-28 2008-10-09 Lenovo Singapore Pte Ltd ファームウェア装置更新システムおよびその方法
US8201161B2 (en) 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
JP2012168710A (ja) * 2011-02-14 2012-09-06 Fujitsu Ltd 情報処理システム、情報処理方法、及び制御プログラム
US20160219029A1 (en) 2015-01-27 2016-07-28 Renesas Electronics Corporation Communication device, lsi, program, and communication system
JP2016139882A (ja) * 2015-01-27 2016-08-04 ルネサスエレクトロニクス株式会社 通信装置、lsi、プログラムおよび通信システム
US10382419B2 (en) 2015-01-27 2019-08-13 Renesas Electronics Corporation Communication device, LSI, program, and communication system

Also Published As

Publication number Publication date
KR20060093022A (ko) 2006-08-23
EP1686469A2 (en) 2006-08-02
CN1825282A (zh) 2006-08-30
MXPA06001253A (es) 2006-09-19
EP1686469A3 (en) 2009-01-14
BRPI0600159A (pt) 2007-07-17
EP1686469B1 (en) 2016-08-31
US7873959B2 (en) 2011-01-18
JP5096680B2 (ja) 2012-12-12
CN1825282B (zh) 2010-05-12
US20060174242A1 (en) 2006-08-03
ES2601502T3 (es) 2017-02-15
KR101238511B1 (ko) 2013-02-28

Similar Documents

Publication Publication Date Title
JP5096680B2 (ja) ファームウェアコンポーネントのステータスの発行およびファームウェアコンポーネントのアップデート
US11606677B2 (en) Method for sharing application between terminals, and terminal
US10979292B2 (en) Adaptive deployment of applications for mobile devices
US9436456B2 (en) System and method for management of software updates at a vehicle computing system
US10419289B2 (en) System and method for configuration management service
US7003534B2 (en) Generating difference files using module information of embedded software components
US7590669B2 (en) Managing client configuration data
US8522206B2 (en) Selective delta validation of a shared artifact
CN109787774B (zh) 基于数字签名校验的升级下载方法、装置、服务器及终端
US20120233299A1 (en) Managing configurations of system management agents in a distributed environment
US20140282470A1 (en) Remote transfer of electronic images to a vehicle
US20220236976A1 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
CN110532009A (zh) 一种智能设备升级管理系统及方法
US20230305837A1 (en) Data file partition and replication
JP2021511583A (ja) 衛星装置を遠隔的に更新するための方法及び装置
KR102564488B1 (ko) 블록체인 기반 IoT 기기 펌웨어 공급 시스템 및 이를 이용하는 펌웨어 업데이트 방법
US20200349292A1 (en) Data bundle generation and deployment
KR20150007146A (ko) 소프트웨어 배포 방법 및 이를 수행하는 소프트웨어 배포 서버
Villegas et al. OTA updates mechanisms: a taxonomy and techniques catalog
US20240111519A1 (en) Onboard communication system, center device, vehicle-side system, and method for verifying update data of onboard communication
US11974204B2 (en) Method for sharing application between terminals, and terminal
US11886860B2 (en) Distribution of digital content to vehicles

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120914

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120921

R150 Certificate of patent or registration of utility model

Ref document number: 5096680

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees