JP2019535060A - ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法 - Google Patents

ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法 Download PDF

Info

Publication number
JP2019535060A
JP2019535060A JP2019512904A JP2019512904A JP2019535060A JP 2019535060 A JP2019535060 A JP 2019535060A JP 2019512904 A JP2019512904 A JP 2019512904A JP 2019512904 A JP2019512904 A JP 2019512904A JP 2019535060 A JP2019535060 A JP 2019535060A
Authority
JP
Japan
Prior art keywords
update
client device
client
server
functionality
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
JP2019512904A
Other languages
English (en)
Other versions
JP6852148B2 (ja
Inventor
デイビッド、オコナー
ロバート、ヤマグチ
ジースハン、マフムード
ジャネル、ポールソン
サビー、ザファル、ウッラ
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.)
U Blox AG
Original Assignee
U Blox AG
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 U Blox AG filed Critical U Blox AG
Publication of JP2019535060A publication Critical patent/JP2019535060A/ja
Application granted granted Critical
Publication of JP6852148B2 publication Critical patent/JP6852148B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Abstract

ソフトウェアアップデートシステムは、アップデートされる非OSシステムソフトウェア(110)を有するクライアントデバイス(104)と、クライアントデバイス(104)から遠隔に位置して、クライアントデバイス(104)と通信することができるクライアントアップデートサーバ(102)と、クライアントデバイス(104)に関するケーパビリティーデータにアクセスするデバイスケーパビリティーマネージャー(126)とを備えている。アップデートサーバ(102)は、ソフトウェア(110)の少なくとも一部をアップデートするのに必要な第1アップデートを検索する。アップデートサーバ(102)は、デバイスケーパビリティーマネージャー(126)と協働するアップデートオプティマイザー(124)を備えており、クライアントデバイスのアップデートを最適化する第1アップデートを適用する編制スキームを決定する。編制スキームはクライアントデバイス(104)のテクニカルケーパビリティーと互換性を有しており、アップデートオプティマイザー(124)は、選択された編制スキームに従って編制された第1アップデートのインスタンスから第1アップデートをリカバリーするリカバリーファンクションを識別する。デバイスケーパビリティーマネージャー(126)は、識別されたリカバリーファンクションを実行するのに求められる必要なファンクショナリティを判定するために、ケーパビリティーデータを使用する。アップデートサーバ(102)は、クライアントデバイス(104)がリカバリーファンクションをサポートすることを可能にする第2アップデートを備えるアップデートパッケージを生成するアップデートオプティマイザー(124)応じて、アップデートパッケージジェネレーター(116)を備える。

Description

本発明は、例えば、クライアントデバイスに非オペレーティングシステム(OS:Operating System)アップデートを伝達することができるクライアントアップデートサーバを備えるタイプのソフトウェアアップデートシステムに関する。また、本発明は、例えば、クライアントデバイスに非OSアップデートを伝達することができるクライアントアップデートサーバを備えるタイプのエアーアップデートシステムにおけるファームウェアに関する。さらに、本発明は、クライアントデバイスをアップデートする方法に関し、例えば、クライアントデバイスに非OSアップデートを伝達するクライアントアップデートサーバを備えるタイプの方法に関する。
無線通信の分野では、いくつかの応用分野においては、いわゆるファームウェアオーバーザエアー(FOTA:Firmware Over-The-Air)システムを提供することが知られている。FOTAシステムは、アップデートシステムにおける通信可能なデバイスを、最新のファームウェアバージョンにアップデートされた状態に維持するために使用される。オーバーザエアーアップデートアプローチでは、通信機能を備えたデバイスを、サーバ、例えば専用のファームウェアをアップデートするサーバとの無線接続を使用して、アップデートすることができる。したがって、デバイスは、アップデートや別のコンピューティング装置への物理的接続のために、それらを取り戻したり、回収したりする必要なしに、もとの場所のままでよい。しかしながら、多くの制約がオーバーザエアーアプローチに伴う。例えば、デバイスは通信という観点からターゲット到達可能である必要があり、適切なデータ転送速度が利用可能である必要があり、また、電池式のビーコンの場合のようにデバイスへの電源供給が適切である必要がある。
従って、デバイスへ送信されたアップデートは、アップデートサーバとデバイスとの間の接続に関する制限のある帯域幅を考慮して、及び、デバイスによって行なわれる通常のタスクと比較して、デバイスによる無線受信が比較的大量の電力を消費するという事実を考慮して、一般的には処理される。このため、アップデートは、例えば、含まれているデータ型に適したパッケージングアルゴリズムを使用してパッケージすることにより、処理することができる。しかしながら、これは、処理されたアップデートを受信するデバイスが、それを使用するために、データの処理を復元できなければならないという要求に結びつく。
さらに、アップデートシステムを使用するすべてのデバイスに共通のアップデートは、利用できないかもしれない。代わりに、デバイスのためのアップデートは、個別ベースでの要求となり得て、あるいは、1つを超えるデバイスのグループが、それぞれ異なるアップデートがそれらに適用されることを要求し得る。さらに、いくつかのシナリオでは、デバイスは、アップデートの目的のために、1つを超えるサーバによってアクセス可能になり得て、したがって、所定のデバイスのファームウェア構成は、単一のアップデートサーバの排他的な制御の下にはない。また、いくつかのデバイスについては、例えば、アップデートを適用するための別のコンピューティング装置にデバイスを拘束することにより、ローカルにファームウェアをアップデートすることが可能となる。
したがって、アップデートサーバ(以下に「コンテンツサーバ」と呼ぶ)は、所定のデバイス用のファームウェアのアップデートステータス及びバージョンを記録し、そして追跡するようにプログラムされる一方で、そのようなアプローチは、コンテンツサーバがアップデートする目的ためにデバイスにアクセスする、ただ一つのサーバであると仮定している。したがって、コンテンツサーバによって保持された情報が常に最新であるという仮定が存在する。同様に、コンテンツサーバからデバイスへのアップデート通信の目的のために、コンテンツサーバは、各デバイスあるいはデバイスのグループによりサポートされた処理の記録を維持することができる。これは、コンテンツサーバが、必ずしも所定のデバイスによって格納された処理へアクセスする、ただ一つの実体ではないからである。また、デバイスあるいはデバイスのグループが、別のサーバあるいは他の複数のサーバによってコントロールされることが可能であり、あるいは、それらは、アップデートのためにローカルにアクセスされることができる。これは、コンテンツサーバの検知の範囲外で、デバイスになされた変更を導くことになり得る。したがって、コンテンツサーバにサポートされた処理の記録は不正確になる。
そのような困難を克服するために、既存のデバイスアップデートプロシージャは、アップデートするサーバに利用可能で、アップデートされるデバイスにサポートされた処理テクニックを識別するために、アップデートされるデバイスに照会をすることをコンテンツサーバに要求することができ、この処理テクニックを、処理された形式で、デバイスのためのアップデートの伝達に、コンテンツサーバは使用することができる。しかしながら、既存のアップデートプロシージャは、共通の処理テクニックを見つけることができると仮定している。さらに、デバイスの問合せでは、デバイスにサポートされた処理テクニックに関するクエリーに応答して、デバイスはコンテンツサーバにデータを返信する必要があり、デバイスはそのために電力を消費する。
本発明の第1態様によれば、アップデートされる非OSシステムソフトウェアを有するクライアントデバイスと、前記クライアントデバイスから遠隔に位置して、前記クライアントデバイスと通信可能なクライアントアップデートサーバと、前記クライアントデバイスに関するテクニカルケーパビリティデータにアクセスするように構成されたデバイスケーパビリティーマネージャーと、を備えるソフトウェアアップデートシステムであって、 前記クライアントアップデートサーバは、前記クライアントデバイスの非OSシステムソフトウェアの少なくとも一部をアップデートするのに必要な第1アップデートを検索するように構成されており、前記クライアントアップデートサーバは、前記デバイスケーパビリティーマネージャーと協働して、前記クライアントデバイスのアップデートを最適化するように、前記第1アップデートに適用する編制スキームを決定するように構成されたアップデートオプティマイザーを備えており、前記決定した編制スキームは、前記クライアントデバイスのテクニカルケーパビリティーと互換性を有しており、前記アップデートオプティマイザーは、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから、前記第1アップデートをリカバリーするリカバリーファンクションを識別するように構成されており、前記デバイスケーパビリティーマネージャーは、前記クライアントデバイスに求められる必要なファンクショナリティを決定するために前記ケーパビリティーデータを使用して、前記アップデートオプティマイザーによって識別された前記リカバリーファンクションを実行するように構成されており、
前記クライアントアップデートサーバは、前記アップデートオプティマイザーに応じてアップデートパッケージジェネレーターを備えており、前記クライアントデバイスがリカバリーファンクションをサポート可能にする第2アップデートを備えるアップデートパッケージを生成するように構成されており、前記クライアントアップデートサーバは、前記クライアントデバイスに前記アップデートパッケージを伝達するように構成されたアップデート通信ユニットを備えており、前記クライアントデバイスは、前記アップデートパッケージを受信し、前記第2アップデートを抽出して、インストールするように構成されている、システムが提供される。
アップデートパッケージジェネレーターは、アップデートオプティマイザーを備えていてもよい。
前記クライアントアップデートサーバは、前記第1アップデートの前に、前記クライアントデバイスに前記アップデートパッケージを伝達するように前記アップデート通信ユニットに命じるように構成されてもよい。
前記クライアントアップデートサーバは、前記アップデートパッケージと前記選択された編制スキームに従って編制された第1アップデートのインスタンスとを、前記クライアントデバイスへ別々に伝達するように、アップデート通信ユニットに命じるように構成されてもよい。
前記アップデート通信ユニットは、前記選択された編制スキームに従って編制された第1アップデートのインスタンスから前記第1アップデートのリカバリーを促進するために、前記アップデートパッケージを受信することを期待する前記クライアントデバイスに、アドバイスを送信するように構成されてもよい。
前記アップデート通信ユニットは、前記アップデートパッケージの前に、前記選択された編制スキームに従って編制された第1アップデートのインスタンスを送信するように構成されており、前記クライアントデバイスへの前記アドバイスは、前記選択された編制スキームに従って編制された第1アップデートのインスタンスに付随するようにしてもよい。
前記クライアントアップデートサーバは、アップデートのリポジトリから前記第1アップデートを検索するように構成されてもよい。
前記クライアントアップデートサーバは、前記デバイスケーパビリティーマネージャーによってアクセス可能なケーパビリティーデータレポジトリを備えており、前記ケーパビリティーデータレポジトリは、クライアントデバイスにサポートされた既存のファンクショナリティを記録してもよい。
前記デバイスケーパビリティーマネージャーは、前記ケーパビリティーデータレポジトリを参照して、前記リカバリーファンクションを実行するのに前記クライアントデバイスに求められる前記必要なファンクショナリティを判定するように構成されてもよい。
前記デバイスケーパビリティーマネージャーは、前記クライアントデバイスに求められる前記必要なファンクショナリティを構成するファンクショナリティ差異を識別するために、前記クライアントデバイスにサポートされている既存のファンクショナリティを、前記クライアントデバイスに求められるターゲットファンクショナリティと、比較するように構成されてもよい。
前記クライアントアップデートサーバは、ファンクショナリティリポジトリを備えており、前記ファンクショナリティリポジトリは、複数のオペレーティングファンクションを備えてもよい。
前記アップデートパッケージジェネレーターは、前記ファンクショナリティリポジトリからオペレーティングファンクションを検索するために前記ファンクショナリティリポジトリにアクセスし、前記ファンクショナリティ差異のファンクショナリティの少なくとも一部を提供するように構成されてもよい。
前記第2アップデートは、前記オペレーティングファンクションを備えてもよい。
前記ケーパビリティーデータは、前記クライアントデバイスの前記テクニカルケーパビリティーと、前記クライアントデバイスにサポートされた既存のファンクショナリティとを備えてもよい。
前記アップデートパッケージは、選択された編制スキームに従って編制された第1アップデートを備えてもよい。
前記アップデートパッケージジェネレーターは、前記選択された編制スキームに従って編制された前記第1アップデートを備える別のアップデートパッケージを生成するように構成されてもよい。
前記アップデートオプティマイザーは、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから前記第1アップデートをリカバリーするリカバリーファンクションと結合して適用される別のリカバリーファンクションを識別するように構成されてもよい。
前記非OSシステムソフトウェアは、ファームウェアであってもよい。
前記クライアントデバイスは、通信モジュールを備えており、前記第1アップデートは、前記通信モジュールに関連してもよい。
前記編制スキームは、圧縮スキームと、暗号化スキームと、データデファレンシングスキームと、デルタ符号化スキームと、のうちの少なくとも1つを備えてもよい。
前記アップデートパッケージジェネレーターは、前記デバイスケーパビリティーマネージャーによって判定された前記クライアントデバイスに求められる前記必要なファンクショナリティに応答することにより、前記デバイスケーパビリティーマネージャーに応答してもよい。
求められる前記必要なファンクショナリティの前記デバイスケーパビリティーマネージャーによる判定は、前記アップデートオプティマイザーによって識別された前記リカバリーファンクションを実行するためにクライアントデバイスに欠いているファンクショナリティの判定であってもよい。
前記ケーパビリティーデータは、1又は複数のテーブル、アレイ及び/又はデータベースとして保存されてもよい。
前記アップデートオプティマイザーは、揮発性メモリ使用、不揮発性メモリ使用、メモリの物理ブロックのサイズ、前記第1アップデートの実行に関連した変更の分布の程度、アップデートパッケージのサイズ、及び/又は、クライアントデバイスに要求される処理時間、のうちの1つ以上の基準に基づいて、前記編制スキームを選択するようにしてもよい。
前記リカバリーファンクションは、コンパイルされたコード、コンパイルされたスクリプト、解釈可能なコード、又は、解釈可能なスクリプトであってもよい。
前記第1アップデートは、前記クライアントデバイスの非アップデートメンテナンスファンクショナルアスペクトに関連してもよい。
前記ファンクショナルアスペクトは、乱数を生成するための方法、チェックサムを算出するための方法、後のアップデートパッケージに続くデータをデコードする方法、前記アップデートパッケージを解凍する方法、GNSSレシーバーの機能、ボコーダープラグイン、新機能、新しいATコマンド、又は、セキュリティパッチであってもよい。
前記クライアントアップデートサーバは、前記クライアントデバイスを備える一群のクライアントデバイスをアップデートするのに必要な前記第1アップデートを識別するように構成されており、前記アップデート通信ユニットは、前記一群のクライアントデバイスのすべてのクライアントデバイスの前記アップデートパッケージに、無線で通信するように構成されてもよい。
前記アップデートパッケージ及び/又は第1アップデートは、前記クライアントデバイスからのレスポンスを要求するクエリーがなくてもよい。
前記アップデートパッケージジェネレーターは、デルタファイルジェネレーターを備えてもよい。
前記アップデートパッケージジェネレーターは、前記ケーパビリティーデータレポジトリの参照により前記リカバリーファンクションを実行するために、前記クライアントデバイスに求められる前記必要なファンクショナリティを判定するように構成されてもよい。
前記アップデートパッケージジェネレーターは、前記クライアントデバイスに求められる前記必要なファンクショナリティを構成するファンクショナリティ差異を識別するために、前記クライアントデバイスにサポートされた既存のファンクショナリティを、前記クライアントデバイスに求められる目標ファンクショナリティと、比較するように構成されてもよい。
前記デバイスケーパビリティーマネージャーは、前記アップデートパッケージジェネレーターからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されてもよい。
前記クライアントアップデートサーバは、オープンモバイルアライアンスデータマネージメント(OMADM)サーバ及び前記OMADMサーバによってアクセス可能なケーパビリティーデータレポジトリを備え、前記ケーパビリティーデータレポジトリは、前記クライアントデバイスにサポートされた既存のファンクショナリティを記録してもよい。
前記OMADMサーバは、前記アップデートパッケージジェネレーターからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されてもよい。
前記デバイスケーパビリティーマネージャーは、ファンクションリスト依頼メッセージを受信し、これに応じて、OMADMサーバへファンクションリスト依頼を送るように構成されており、前記OMADMサーバは、前記デバイスケーパビリティーマネージャーからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されてもよい。
前記アップデートパッケージは、データ構造定義に従って前記クライアントデバイスに伝達され、前記データ構造定義は、前記アップデートパッケージを含むために予約された、必要なファンクショナリティコンテンツフィールドを備えてもよい。
前記アップデートパッケージは、データ構造定義に従って前記クライアントデバイスに伝達され、前記データ構造定義は、前記別のアップデートパッケージを含むために予約された、必要なファンクショナリティコンテンツフィールドを備えてもよい。
前記データ構造定義は、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスを含むために予約された、アップデートコンテンツフィールドをさらに備えてもよい。
前記データ構造定義は、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスのリカバリーに関連したファンクションの識別子を含むために予約された、ファンクションインディケーターフィールドをさらに備え、前記ファンクションインディケーターフィールドは、前記必要なファンクショナリティコンテンツフィールドに付随するように構成されてもよい。
前記データ構造定義は、別のアップデートパッケージ含むために予約された、別の必要なファンクショナリティコンテンツフィールドをさらに備えてもよい。
前記データ構造定義は、別の編制されたアップデートのインスタンスを含むために予約された、別のアップデートコンテンツフィールドをさらに備えてもよい。
前記データ構造定義は、前記別の編制されたアップデートのインスタンスのリカバリーに関連した別のファンクションの別の識別子を含むために予約された、別のファンクションインディケーターフィールドをさらに備え、前記別のファンクションインディケーターフィールドは、前記別の必要なファンクショナリティコンテンツフィールドに付随するように構成されてもよい。
本発明の第2態様によれば、第1態様に関する上記のソフトウェアアップデートシステムを備えるエアーアップデートシステムにおけるファームウェアが提供される。
本発明の第4態様によれば、アップデートされる非OSシステムソフトウェアを有するクライアントデバイスをアップデートする方法であって、前記クライアントデバイスに関するケーパビリティーデータにアクセスするステップと、前記クライアントデバイスの前記非OSシステムソフトウェアの少なくとも一部をアップデートするのに必要な第1アップデートを検索するステップと、前記クライアントデバイスのアップデートを最適化するように、前記第1アップデートに適用される、編制スキームを決定するステップであって、前記決定された編制スキームは、前記クライアントデバイスのテクニカルケーパビリティーと互換性がある、ステップと、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから前記第1アップデートをリカバリーするためのリカバリーファンクションを識別するステップと、アップデートオプティマイザーによって識別されたリカバリーファンクションを実行するために前記クライアントデバイスに求められる必要なファンクショナリティを判定するために、前記ケーパビリティーデータを使用するステップと、前記クライアントデバイスに求められる前記必要なファンクショナリティの判定に応じて、アップデートパッケージを生成するステップであって、前記アップデートパッケージは、前記クライアントデバイスがリカバリーファンクションをサポート可能にする第2アップデートを備えている、ステップと、前記クライアントデバイスに前記アップデートパッケージを伝達するステップと、前記クライアントデバイスが前記アップデートパッケージを受信し、前記第2アップデートを抽出し、インストールするステップと、を備える方法が提供される。
いくつかのケースにおいては、クライアントデバイスに照会をする必要性を無くした、ソフトウェアアップデートシステム及びクライアントデバイスをアップデートする方法を提供することができる。それによって、帯域幅の減少による起こる通信障害、及び/又は、クライアントデバイスによる消費電力の保存の必要を回避することができる。さらに、このシステムと方法は、クライアントデバイスへのアップデートの通信を最適化する一方で、クライアントアップデートサーバ及びクライアントデバイスがともに、アップデートに適用する共通の編制スキームをサポートすることを保証して、クライアントデバイスへの通信を促進する。さらに、クライアントデバイスは、クライアントデバイスのプロセッシングケーパビリティーに最適化された編制スキームを、そのデバイスがサポートできる状態に置かれる。さらに、このシステムと方法は、コンテンツの最小のアップデートを実現し、これにより、無線信号ロス、及び/又は、電力損のような、例えば物理的なゆらぎに起因する、データ転送中断の危険を減らすことができる。転送されているデータを破壊する危険も、より少ないデータがあることから抑制され、また、アップデートパッケージを格納するのに必要なメモリの量も抑制される。
本発明の少なくとも1つの実施形態が、添付した図面を参照しつつ、単なる例示として、開示される。
図1は、本発明の実施形態を構成するソフトウェアアップデートシステムの概要図である。 図2は、図1のシステム中で使用されるクライアントデバイスの概要図である。 図3は、図1及び本発明の別の実施形態を構成するシステムの第1部分の動作方法の第1部分のフローダイアグラムである。 図4は、図3の方法の第2部分のフローダイアグラムである。 図5は、図4及び本発明のその他の実施形態を構成する方法の第2部分の代替のフローダイアグラムである。 図6は、図1のシステムについての種々のデータ構造体定義構造の概要図である。 図7は、図1及び本発明のさらに別の実施形態を構成するシステムの第2部分の動作方法のフローダイアグラムである。 図8は、図1及び本発明の別の実施形態を構成するシステムについての代替アーキテクチャの概要図である。 図9は、図1及び本発明のその他の実施形態を構成するシステムについてのさらに別のアーキテクチャの概要図である。 図10は、図1及び本発明のさらに別の実施形態を構成するシステムについてのその他のアーキテクチャの概要図である。 図11は、図1及び本発明のその他の実施形態をさらに構成するシステについてのその他のアーキテクチャの概要図である。
次の記述の全体にわたって、同一の参照数字は同種の部分を識別するために使用される。
図1を参照して、ソフトウェアアップデートシステム100(例えば、ファームウェアオーバーザエアーアップデートシステム)は、クライアントアップデートサーバ102を備えており、クライアントアップデートサーバ102は、無線通信インターフェース108を介して、クライアントデバイス104あるいは一群のクライアントデバイス106と通信することができる。クライアントデバイス104あるいは一群のクライアントデバイス106は、クライアントアップデートサーバ102から遠隔に位置している。クライアントデバイスはそれぞれ、アップデートすることができるそれぞれの非OSソフトウェア1 10を備える。アップデートサーバ102は、任意の適切なコンピューティング装置とすることができ、例えば、パーソナルコンピュータ(PC)、ワークステーション、ミニコンピュータ、メインフレームコンピューターなどである。アップデートサーバ102は、例えば、何らかの適切なバス構成、ネットワークプラットフォーム、及び/又は、マルチプロセッサプラットフォームを備えることができる。UNIX(登録商標)、Solaris(登録商標)、Linux(登録商標)、Windows(登録商標)、MacOS(登録商標)あるいは他の適切なオペレーティングシステムを含む、様々なオペレーティングシステムを使用することができる。
任意ではあるが、ソフトウェアアップデートシステム100の外部で提供される、別のアップデートサーバ112(例えば設備メーカーサーバ)は、無線通信インターフェース108あるいは別の無線通信インターフェース114を介して、1又は複数のクライアントデバイス104と通信することができる。このような観点で、クライアントデバイス104は、アップデートサーバ112から無線通信を受信するための無線通信モジュール(図示せず)を備える。
変わって図2に示すように、この例示においては、クライアントデバイス104は、無線通信デバイスであり、プロセッシングリソース170(例えば、マイクロプロセッサー)と、揮発性メモリ172(例えば、RAM)と、不揮発性メモリ174(例えば、ROM)とを備えて、各々がプロセッシングリソース170に結合された、例えば、移動電話のユーザ装置(UE:User Equipment)ユニットである。また、プロセッシングリソース170は、マイクロホン176、スピーカーユニット178、キーパッド180及びディスプレイ182に結合されている。さらに、プロセッシングリソース170は、送信チェーン184及び受信チェーン186を備えるトランシーバーに結合され、送信チェーン及び受信チェーン184及び186は、デュプレキシングコンポーネント188に結合されている。デュプレキシングコンポーネント188は、アンテナ190に結合されている。当業者は、上述のクライアントデバイス104のアーキテクチャが、他の要素を備えることを認識するべきである。しかし、そのような追加の要素は、記述の簡明さと明瞭さを維持するために、ここに開示されていない。当業者は、さらにクライアントデバイス104が必ずしも無線通信能力を備える必要がなく、又は、無線通信と有線通信の能力を備えることができることを認識するべきである。このような観点で、クライアントデバイス104との通信は、有線通信による場合がある。
図1に戻り、クライアントアップデートサーバ102は、LANインターフェース120などのネットワークインターフェースを介して、例えばローカルエリアネットワーク(LAN:Local Area Network)などの通信網118に動作可能に結合された、アップデートパッケージジェネレーター116を備えている。また、無線通信インターフェース108における通信をサポートするために、アップデートパッケージジェネレーター116は、アップデート通信ユニット122に動作可能に結合されている。
さらに、クライアントアップデートサーバ102は、アップデートパッケージジェネレーター116及びデバイスケーパビリティーマネージャー126に動作可能に結合されたアップデートオプティマイザー124を備えており、また、デバイスケーパビリティーマネージャー126は、ケーパビリティーデータをケーパビリティーデータレポジトリ128に格納するができる。ケーパビリティーデータレポジトリは、ソフトウェアアップデートシステム100を使用する各クライアントデバイス又はクライアントデバイス104の各タイプのテクニカルケーパビリティーの記録を備えており、この例示においては、クライアントデバイス又はクライアントデバイスの各タイプにサポートされた既存のファンクショナリティを含んでいる。ケーパビリティーデータは、任意の適切な形式、例えばテーブル、アレイ及び/又はデータベースで保存することができる。この例示において、ケーパビリティーデータレポジトリに含まれている情報は、製造者によって予め決定されている。また、アップデートストア130は、アップデートパッケージジェネレーター116に動作可能に結合されており、例えばファームウエアイメージなどのアップデートデータのイメージを格納する。ファンクショナリティリポジトリ131は、アップデートパッケージジェネレーター116に動作可能に結合されており、複数のオペレーティングファンクションを格納する。オペレーティングファンクションは、単独で又は組み合わせで、様々なクライアントデバイスによって用いられ得るファンクションの集合体又はライブラリであり、必要なタスク(例えば、後述する選択された編制スキームに従って編制されたアップデートのリカバリーに関連したタスク)を実行する。複数のオペレーショナルファンクションが、ファンクションのツールキットを構成する。
動作(図3)については、1つ以上のクライアントデバイス104の非OSソフトウェアの少なくとも一部をアップデートするために、アップデートパッケージジェネレーター116は、ネットワークインターフェース120を介してアップデートを受信し、アップデートストア130に受信したアップデートを格納する。これが、アップデートのリポジトリを構成する。一旦、アップデートパッケージジェネレーター116が第1アップデートの受信を認識する(ステップ200)と、アップデートパッケージジェネレーター116は、第1アップデートが適用されるターゲットデバイスを識別する(ステップ202)。これは、個々のクライアントデバイス104あるいはクライアントデバイス106のグループとすることができる。
第1アップデートは、この例示においては、ファームウェアアップデートであり、クライアントデバイス104の通信モジュールに関係している。しかしながら、第1アップデートは任意の適切な非OSソフトウェアでもよく、それは、例えば、データ、設定ファイルのようなファイル、アルゴリズム、アルゴリズムライブラリ、コンピュータープログラム、コードイメージ、及び、命令を含むことを意図しており、それらはオーバーザエアーでアップデートされ得るクライアントデバイス104の任意の動作部分に関係することができる。アップデートされる非OSソフトウェアは、クライアントデバイス104の非アップデートメンテナンスファンクショナルアスペクトに関するものであり、例えば、乱数を生成する方法、チェックサムを算出する方法、後のアップデートパッケージに続くデータをデコードする方法、アップデートパッケージを解凍する方法、GNSSレシーバーの機能、ボコーダープラグイン、新機能あるいは新しいATコマンドである。第1アップデートは、ソフトウェアアップデート、新しい又は置換ファイル、新しい又は置換入出力デバイスコンフィグレーション、セキュリティパッチ及び/又は実行すべきクライアントデバイス104のための特定のコマンドでもよい。このような観点で、クライアントデバイス104は、アップデートするメカニズム(後述する第2アップデートに関連する)の維持に関係するファンクショナルアスペクトを有すると認識されるべきであり、また、クライアントデバイス104をアップデートするメカニズムの維持に関係しない他のファンクショナルアスペクトを有すると認識されるべきである。第1アップデートは、アップデートするメカニズムの維持に関係しないこれらの他のファンクショナルアスペクトに関係する。
一旦、第1アップデートが適用される1又は複数のクライアントデバイスが識別される(ステップ202)と、アップデートパッケージジェネレーター116は、第1アップデートを、アップデートオプティマイザー124及びクライアントデバイス104あるいはクライアントデバイス106のグループの識別部に伝達し、また、アップデートオプティマイザー124は、デバイスケーパビリティーマネージャー126と協働して、クライアントデバイス104あるいはクライアントデバイス106のグループのテクニカルケーパビリティーを識別する(ステップ204)。いくつかの例示において、アップデートパッケージジェネレーター116は、アップデートされる非OSソフトウェアの既存バージョンと受信したアップデートとの間の差異を生成する、デルタファイルジェネレーターを備えることができ、この差異は、アップデートオプティマイザー124に伝達される第1アップデートを構成する。その後、デバイスケーパビリティーマネージャー126は、ケーパビリティーデータ128にアクセスし、クライアントデバイス104あるいはクライアントデバイス106のグループのテクニカルケーパビリティーを判定する。記述の簡明のために、以下においては、クライアントデバイス104あるいはクライアントデバイス106のグループの参照は、クライアントデバイス104の参照に略記される。しかしながら、当業者は、必要であれば、適切な修正と共に、動作原理がクライアントデバイス106のグループに適用されることを認識するであろう。
デバイスケーパビリティーマネージャー126によって一旦判定されたクライアントデバイス104のテクニカルケーパビリティーは、アップデートオプティマイザー124に伝達され、アップデートオプティマイザー124は、アップデートパッケージジェネレーター116によって識別された第1アップデートと結合してクライアントデバイス104に関連したテクニカルケーパビリティデータを使用し、最適の態様で第1アップデートを伝達するために、クライアントデバイス104のテクニカルケーパビリティーの範囲内で編制することのできる第1アップデートに従った編制スキームを識別する(ステップ206)。これにより、例えば、クライアントデバイス104のアップデートを最適化する。編制スキームは、クライアントデバイスのテクニカルケーパビリティーの1つ以上に基づいて選択することができ、例えば、メモリ、揮発性メモリ、不揮発性メモリ、又は、メモリの物理ブロックのサイズ、第1アップデートの実行に関連した変更の分布の程度、要求される処理時間、プロセッサー能力及び/又はバッテリ寿命に基づいて選択することができる。クライアントデバイス104に現在常駐しているソースファームウエアイメージと、アップデート処理の結果としてクライアントデバイス104に常駐させることを意図したターゲットファームウエアイメージとの間の差異を、考慮に入れることができる。同様に、アップデートパッケージのサイズも、メモリ使用量の観点からだけでなく、送信時間及び電力消費の観点から、考慮に入れることができる。この例示において、編制スキームは圧縮スキームであるが、しかし、当業者は、例えば最適な送信のために、第1アップデートを編制するその他の技術を採用できることを認識すべきである。他の編制スキームの例としては、暗号化スキーム、データディファレンシャルスキーム及び/又はデルタエンコーディングスキームがある。
その後、アップデートオプティマイザー124は、リカバリーファンクションを判定する(ステップ208)。これは、識別された編制スキームに従って編制された第1アップデートの構成を復元させるために、クライアントデバイス104が実行しなければならない1つ以上の処理ステップであり、なぜなら、クライアントデバイス104への伝達に先立って、アップデートオプティマイザー124によって選択された編制スキームに従って、第1アップデートが編制されるからである。リカバリーファンクションは、編制スキームの反対又は復元と考えることができ、また、クライアントデバイス104の技術的な仕様は、リカバリーファンクションの実行をサポートする必要がある。リカバリーファンクションは、選択された編制スキームに従って編制された第1アップデートのインスタンスから、第1アップデートをリカバリーできるようにする。リカバリーファンクションは、コンパイルされたコード、コンパイルされたスクリプト、解釈可能なコードあるいは解釈可能なスクリプトとして実現することができる。
アップデートオプティマイザー124は、デバイスケーパビリティーマネージャー126に、リカバリーファンクションあるいはリカバリーファンクションの識別子を伝達する。要求されるリカバリーファンクションについての情報及びクライアントデバイス104のテクニカルケーパビリティーを用いて、デバイスケーパビリティーマネージャー126は、クライアントデバイス104がリカバリーファンクションを実行するために保持することを要求されるファンクショナリティを識別する(ステップ210)。この点で、デバイスケーパビリティーマネージャー126は、クライアントデバイス104に要求されるターゲットファンクショナリティを、クライアントデバイス104にサポートされている既存のファンクショナリティと比較するように構成されており、クライアントデバイス104に求められる必要なファンクショナリティを構成する何らかのファンクショナリティ障害あるいは差異を識別する。いくつかの例示において、差異は、クライアントにサポートされた「ソース」ファンクショナリティとクライアントデバイス104にサポートされる必要のある「ターゲット」ファンクショナリティについての先験的な情報に基づいて、予め決定することができる。ファンクショナリティ差異情報は、ファンクショナリティ差異の識別を容易にするために、例えば、データベース又はルックアップテーブルに、格納することができる。
障害が存在しない場合、アップデートパッケージマネージャー116は、第1アップデートを、選択された編制スキームに従って構成された、第1アップデートのインスタンスに編制して(ステップ212)、アップデートパッケージを構成し、そして、更なるアップデートの受信を待つ処理(ステップ200)に戻る前に、クライアントデバイス104に、アップデートパッケージを伝達する(ステップ214)。さもなければ、単一のファンクション又は複数のファンクションである必要なファンクショナリティは、アップデートパッケージジェネレーター116に伝達され、アップデートパッケージジェネレーター116は、簡潔に上述した第2アップデートの形式の必要なファンクショナリティを提供する。したがって、必要なファンクショナリティを提供するために、アップデートパッケージジェネレーター116は、この例示において、ナリティリポジトリ131にアクセスし、1つ以上のオペレーショナルファンクションを検索し、少なくとも一部のファンクショナリティ障害(クライアントデバイス104が、既に必要なファンクショナリティの一部をサポートしてもよい)を削減する。すなわち、ファンクショナルリポジトリ131からの検索は、クライアントデバイス104に欠如しているファンクショナリティの少なくとも一部を提供して、リカバリーファンクションを実現し、ファンクショナリティ差異の架け橋となる。そのため、第2アップデートは、この例示においては、少なくとも1つのオペレーティングファンクションを備える、又は、提供する。
いくつかの状況で、リカバリーファンクションが必要なファンクショナリティをすべて提供するには不十分である場合、アップデートオプティマイザー124は、第1アップデートをリカバリーするリカバリーファンクションと結合して適用される別のリカバリーファンクションを識別するように構成される。したがって、1又は複数のオペレーショナルファンクションは、アップデートパッケージジェネレーター116によってファンクショナリティリポジトリ131から検索されて、アップデートパッケージに組み入れられる。それらの詳細は、後述する。
アップデートパッケージジェネレーター116は、第2アップデートを受信あるいはリカバリーすると、クライアントデバイス104にサポートされた既存のファンクショナリティのケーパビリティーの範囲内でクライアントデバイス104への最適な通信に適している形式の第2アップデートを構成すること(ステップ216)による、応答を行う。図4を参照すると、第2アップデートの構成は、アップデートパッケージを構成する。その後、アップデートパッケージジェネレーター116は、アップデート通信ユニット122にアップデートパッケージを伝達し、アップデート通信ユニット122は、採用されている1つ以上の通信プロトコルにサポートされたデータ構造定義に従ってアップデートパッケージを構成し、クライアントデバイス104に第2アップデートを伝達する(ステップ218)。
この例示において、アップデート通信ユニット122は、第1アップデートの通信に先立って、且つ、独立して、アップデートパッケージの形式の第2アップデートを伝達するように指令されている。その後、この点で、アップデートパッケージジェネレーター116は、アップデートオプティマイザー124によって決定された編制スキームに従って第1アップデートを編制し(ステップ220)、次に、アップデートパッケージジェネレーター116は、アップデート通信ユニット122及び無線通信インターフェース108を介して、クライアントデバイス104へ、編制された形式の第1アップデートを伝達する(ステップ222)。この例示において、アップデートパッケージジェネレーター116は、選択された編制スキームに従って編制された第1アップデートを備える別のアップデートパッケージを生成する。
上記に示唆されるように、第1アップデート及び第2アップデートは、多くの異なる方法でクライアントデバイス104に、伝達することができる。例えば(図5)、第1及び第2アップデートは、ともに単一の通信の一部として、クライアントデバイスに伝達することができ、その場合には、アップデートパッケージジェネレーター116は、アップデートオプティマイザー124によって決定された編制スキームに従って第1アップデートを編制し(ステップ220)、次に、アップデートパッケージジェネレーター116は、編制された形式の第1アップデートのインスタンス及び第2アップデートを備えるアップデートパッケージを、アップデート通信ユニット122へ伝達する。アップデート通信ユニット122は、採用されている1つ以上の通信プロトコルにサポートされたデータ構造定義に従ってアップデートパッケージを構成し、また、無線通信インターフェース108を介して、クライアントデバイス104(あるいは第2アップデートを要求するすべてのデバイス)に、アップデートパッケージを伝達する(ステップ222)。
あるいは、適切なプロトコルの実行で、第1アップデートは個別の通信としてクライアントデバイス104に伝達することができ、これは上述した別のアップデートパッケージであり、また、第2アップデートが受信され処理されるまでの実行に先立って、クライアントデバイス104に保持される。この点では、アップデート通信ユニット122は、選択された編制スキームに従って編制された第1アップデートのインスタンスからの第1アップデートのリカバリーを促進するためにアップデートパッケージを受信することを期待するクライアントデバイス104に、アドバイスを送信するように構成される。さらに、第1アップデートのインスタンスの通信は、クライアントデバイス104へのアドバイスを付随することができる。
アップデートパッケージを伝達する場合、編制された第1アップデートとともに、あるいは無しで、データ構造定義に従って、データ構造定義は、多くの異なる方法で構成することができ、また、アップデートパッケージを含むための予約された必要なファンクショナリティフィールドを備えることができる。図6を参照すると、第1データ構造定義300は、必要なファンクショナリティコンテンツフィールド302を備えており、この例示において、必要なファンクショナリティコンテンツフィールド302は、ファンクショナリティキー識別子又はインディケーターフィールド304を付随している。また、第1データ構造定義300は、第1アップデートコンテンツフィールド306、第2アップデートコンテンツフィールド308及び第3アップデートコンテンツフィールド310を備えており、必要なファンクショナリティフィールド302に第2アップデートが付随する場合における、クライアントデバイス104に伝達される第1アップデートあるいはその一部のインスタンスのために予約されている。
クライアントデバイス104がリカバリーファンクションをサポートすることを可能にするためにクライアントデバイス104に1つより多いファンクションを伝達する必要がある場合には、第2データ構造定義312を採用することができる。第1データ構造定義300と同様に、第2データ構造定義312は、ファンクショナリティキー識別子又はインディケーターフィールド304を付随する、必要なファンクショナリティフィールド302を備える。この例示において、クライアントデバイス104は、リカバリーファンクションをサポートするのに必要な1つのファンクションを既に保持するが、非OSソフトウェアへの異なるアップデートあるいは同じ第1アップデートの異なる部分と共に使用されるために、別のリカバリーファンクションをサポートする、別のファンクションを必要とする。この点では、第2データ構造定義312は、第1アップデートフィールド306に先行する、第1ファンクション識別子あるいはインディケーターフィールド314を備えており、クライアントデバイス104に対して、第1アップデートフィールド306含まれているアップデートに関連したリカバリーファンクションをサポートするのに特定のファンクションが要求されることを示している。同様に、第2データ構造定義312は、第2アップデートフィールド308に先行する、第2ファンクション識別子又はインディケーターフィールド316をさらに備えており、クライアントデバイス104に対して、第2アップデートフィールド308に含まれているアップデートに関連したリカバリーファンクションをサポートするのに特定のファンクションが要求されることを示す。しかしながら、この例示において、クライアントデバイス104は、第2ファンクション識別子あるいはインディケーターフィールド316で識別されたファンクションを既にサポートしており、したがって、データ構造は、第2ファンクション識別子あるいはインディケーターフィールド316に示されたファンクションのために予約されたフィールドを保持しない。
クライアントデバイス104が第1アップデートに関するリカバリーファンクションをサポートすることができるようにするためにクライアントデバイス104に1つを超えるアップデートパッケージを伝達することが必要な場合には、第3データ構造定義322が採用される。また、この例示において、第1及び第2ファンクションに加えて、クライアントデバイス104が第1アップデートに関するリカバリーファンクションをサポートするのに必要な第3ファンクションをサポートすると仮定される。この点で、第3データ構造定義322は、第1ファンクションのために予約されたファンクショナリティキー識別子又はインディケーターフィールド304を付随する必要なファンクショナリティフィールド302を備えるだけでなく、別のファンクショナリティキー識別子あるいはインディケーターフィールド326を付随する別の必要なファンクショナリティフィールド324を備える。さらに、第3データ構造定義312は、第1アップデートフィールド306に先行する、第3ファンクション識別子又はインディケーターフィールド328を備えており、クライアントデバイス104に伝達するファンクションに加えて、クライアントデバイス306に対して、特定の他のファンクション(第3ファンクション識別子又はインディケーターフィールド328で識別される)が、第1アップデートフィールド306に含まれていたアップデートに関連したリカバリーファンクションをサポートするのに要求されることを示す。
第2アップデートを含んでいるアップデートパッケージが第1アップデートとは別に伝達される実施形態において、第1の二部形式データ構造定義330を、第1データ構造定義300の二部形式の類似体として採用することができる。第1の二部形式データ構造定義330は、同一の第1アップデートに対応する2つのアップデートフィールドと共にアップデートパッケージの伝達をサポートする。それらは、第2アップデートを含んでいるアップデートパッケージとは別々に送信される。
同様に、第2の二部形式データ構造定義340を、採用することができる。第2データ構造定義312のコンテキストでは、第2の二部形式データ構造定義340は、二部形式の等価な類似体であり、第1アップデートに対応する2つのアップデートフィールドと共に、アップデートパッケージの伝達をサポートする。それらは、第2アップデートを含んでいるアップデートパッケージとは別々に送信され、クライアントデバイス104が第2アップデートに関連したファンクショナリティに加えて必要なファンクションをサポートする可能性をサポートする。
クライアントデバイス104は、任意の適切な通信対応のデバイスでもよく、例えば、排他的でなく、オーバーザエアーソフトウェアアップデートを実行することができる、移動体通信ハンドセットのような無線通信デバイスでもよい。この例示において、図7を参照すると、クライアントデバイス104は、無線通信の受信(ステップ400)を待つように構成される。その後、クライアントデバイス104は、受信したデータが非OSソフトウェアのアップデートに関係するかどうか判定する(ステップ402)。受信したデータが非OSソフトウェアのアップデートに関係しない場合、クライアントデバイス104は、クライアントデバイス104の設計に従って受信データを処理する(ステップ404)。この点で、記述の簡明のために、クライアントデバイス104の動作の記述は、クライアントデバイス104の非OSソフトウェアのアップデートに関係する処理に制限している。
さらに、記述の明瞭さ及び簡明のために、クライアントデバイス104の動作は、第2アップデートを備えるアップデートパッケージのコンテキストの中で開示され、このアップデートパッケージは、別のアップデートパッケージとして編制された形式の第1アップデートに先立って、且つ、別の通信で、受信される。この点で、第2アップデートは、編制された第1アップデートを通信するために使用される、個別の通信バーストあるいはビットストリームを使用して、送信される。従って、受信したデータがアップデート(ステップ402)に関係する場合、任意の非OSソフトウェアアップデートの処理に先立って、クライアントデバイス104は、通信が、インストールされる必要のあるアップデートパッケージに関係するかどうかを判定する(ステップ406)。受信したデータがアップデートパッケージを備える場合、クライアントデバイス104は、アップデートパッケージから第2アップデートを抽出するか、あるいは、クライアントデバイス104に第2アップデートを伝達するためにクライアントアップデートサーバ102によって用いられた第2アップデートの何らかの構成を復元する。クライアントデバイス104にサポートされた既存のファンクショナリティを使用して、クライアントデバイス104がアップデートパッケージから第2アップデートをリカバリーすることができるように、アップデートパッケージは構成される。第2アップデートの抽出は、単純なインタープリテーション、復号及び/又は解凍とすることができる。その後、クライアントデバイス104は、第2アップデートをインストールするか、又は、実行する(ステップ408)。
その後、クライアントデバイス104は、クライアントデバイス104によって受信されたデータが、編制された形式の第1アップデートを含んでいるかどうかを判定する(ステップ410)。受信したデータが編制された形式の第1アップデートを含んでいた場合、あるいは、受信したデータが第1アップデートを備えるだけであるとクライアントデバイス104によって判定された(ステップ406)場合、クライアントデバイスがリカバリーファンクションを実行するのに必要なファンクショナリティを既に保持しているので、クライアントデバイス104は、受信したデータから第1アップデートをリカバリーし始める(ステップ412)。そうでなければ、クライアントデバイス104は、非OSソフトウェアのアップデートに関連する更なるデータの受信を待つ(ステップ400)。一旦、第1アップデートが通信目的に用いられた第1アップデートの編制された形式からリカバリーされたならば、クライアントデバイス104は、第1アップデートを実施するか実行する(ステップ414)。それは、クライアントデバイス104の非OSソフトウェアをアップデートする役割を果たす。
他の実施形態(図8)においては、クライアントアップデートサーバ102は、本質的に分散することができ、及び/又は、特定の実行アーキテクチャをサポートするために他のファンクションユニットを備えることができる。この点で、アップデートオプティマイザー124のファンクショナリティは、アップデートパッケージジェネレーター116に組み入れることができる。さらに、又は、択一的に、コンテンツサーバ140は、アップデートパッケージジェネレーター116と通信する能力を有するように提供することができる。コンテンツサーバ140は仲介者として働き、アップデートパッケージジェネレーター116によって生成されたアップデートを処理する。さらに、コンテンツサーバ140は、クライアントデバイス104と無線で通信する能力を有しており、また、コンテンツサーバ140は、この例示においては無線で、クライアントデバイス104と通信する能力を有している。
動作については、デバイスケーパビリティーマネージャー126に照会するアップデートオプティマイザー124の代わりに、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティに関する情報のために、アップデートパッケージジェネレーター116は、コンテンツサーバ140へ、クエリー160(例えばファンクションリスト依頼メッセージ)を送信する。これに対するレスポンスで、コンテンツサーバ140が、クライアントデバイス104へ照会162をすることができ、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティを判定する。一旦、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティが、クライアントデバイス104により、コンテンツサーバ140へ伝達164されたならば、コンテンツサーバ140は、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティを、アップデートパッケージジェネレーター116に戻して伝達166する。この点では、上述した分散化アプローチに従って、クライアントデバイス104にサポートされたテクニカルケーパビリティー及びファンクショナリティに関する情報のうちのいくらかを、デバイスケーパビリティーマネージャー126が提供することができることは、認識されるべきである。一旦、アップデートパッケージジェネレーター116が要求した情報を保持すると、アップデートパッケージジェネレーター116は、編制された形式で第1アップデートを備えるアップデートパッケージを生成する。この点で、リカバリーファンクション及び編制スキームの識別に関係する第2アップデートは、前述の実施形態に関して開示されるのと同じである。その後、第1アップデートを備えるアップデートパッケージが、第1通信142にて、コンテンツサーバ140へ伝達される。その後、コンテンツサーバ140は、この例示では、実施の便宜に依存するが、例えば第2通信144をプッシュすることによって、第2通信144にて、編制された形式の第1アップデート及び第2アップデート備えるアップデートパッケージを、クライアントデバイス104へ伝達する。この点で、恒久的な又は一時的な記憶デバイスを、第2通信144のコンテンツを保持するために使用することができる。これは、コンテンツサーバ140によって格納され、クライアントデバイス104によってアクセスすることができる。どのような場合でも、一旦、クライアントデバイス104が第2通信144のコンテンツを得たならば、クライアントデバイス104は、既に上述した態様で、受信した第1アップデート及び第2アップデートを処理することができる。この例示において、単一のアップデートパッケージで第1及び第2アップデートがともに伝達されるが、もちろん、当業者は、他の如何なる通信フォーマットにも従って、例えば個別のアップデートパッケージとして、編制された形式の第1アップデート及び第2アップデートを、クライアントデバイス104に伝達することができると認識するであろう。
上述の実施形態(図9)の変形では、オープンモバイルアライアンスデータマネージメント(OMADM:Open Mobile Alliance Data Management)サーバ146を提供することができ、これは、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティに関係する情報を得る目的で、コンテンツサーバ140とクライアントデバイス104との間の仲介者の役割を果たす。このため、コンテンツサーバ140によって受信されたアップデートパッケージジェネレーター116からのクエリー160は、要求された情報を得るために、OMADMサーバ146へ転送される。従って、クライアントデバイス104又はクライアントデバイス104のタイプにサポートされたテクニカルケーパビリティー及び/又はファンクショナリティを判定するために、OMADMサーバ146は、照会162をクライアントデバイス104にすることができる。一旦、クライアントデバイスにサポートされたテクニカルケーパビリティー及び/又はファンクショナリティが、クライアントデバイス104により、OMADMサーバ146への伝達164されると、OMADMサーバ146は、この情報をコンテンツサーバ140へ戻して伝達166することができ、上述の実施形態に関して開示されるのと同じ方法で処理される。あるいは、クライアントデバイス104に照会する代わりに、OMADMサーバ146は、クライアントデバイス104あるいはクライアントデバイス104のタイプにサポートされたテクニカルケーパビリティー及び/又はファンクショナリティのデータベース148(リポジトリを構成する)に、アクセスできることができる。そして、コンテンツサーバ140によって転送されたクエリー160に応じて、OMADMサーバ146は、データベース148にアクセスすることができ、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティを検索でき、また、コンテンツサーバ140へこの情報を戻して伝達166することができる。この点に関して、上述したように、クライアントデバイス104にサポートされたテクニカルケーパビリティー及び/又はファンクショナリティに関する情報は、前述の実施形態の開示と同じ方法で処理される。一旦、生成されたならば、アップデートパッケージは、クライアントデバイス104に伝達することができる。1つの例示において、アップデートパッケージは、無線で伝達することができるが、しかし、他のモードを考慮すると、例えば、OMADMサーバ146によるクライアントデバイス104への後の通信のために、ポータブルメモリデバイス(図示せず)によりOMADMサーバ146へ転送することができる。
他の実施形態では、クエリーが特にアップデートパッケージジェネレーター116から生成される必要はなく、クライアントアップデートサーバ102又はソフトウェアアップデートシステム100における他の適切なエンティティから生成できることは、認識されるべきであり、例えば、クエリー(例えばファンクションリストリクエスト)を受信することができるデバイスケーパビリティーマネージャー126から生成できる。OMADMサーバ146への照会の通信は、直接的でも間接的でもよい。
さらに別の実施形態では、OMADMサーバ146は必要としない。この実施形態では、クライアントデバイス104にサポートされたファンクショナリティを判定する代わりに、又は、そのような情報の蓄積を維持する代わりに、第1アップデートは、引き続き又は先行して、リカバリーファンクションを実行するのに必要な第2アップデートを常に付随すると仮定されている。従って、どんな場合も、リカバリーファンクションがクライアントデバイス104に既にサポートされているかどうかに拘わらず、第2アップデートはクライアントデバイス104へ伝達される。このアプローチをサポートするために、図10を参照すると、アップデートパッケージジェネレーター116及びコンテンツサーバ140は、アップデートパッケージジェネレーター116からコンテンツサーバ140へのアップデートパッケージの結合した通信150をサポートする。さらに、アップデートパッケージジェネレーター116及び/又はコンテンツサーバ140は、コンテンツサーバ140からクライアントデバイス104へのアップデートパッケージの結合した通信152をサポートする。一旦、何らかの適切な実装(例えば、既に開示されたタイプ)を用いて判定されたならば、アップデートパッケージジェネレーター116は、第1アップデートと、アップデートパッケージの一部あるいは別のアップデートパッケージとしての第2アップデートとを、コンテンツサーバ140に伝達するように構成されている。同様に、コンテンツサーバ140は、第1アップデートと、アップデートパッケージの一部あるいは別のアップデートパッケージとしての第2アップデートとを、クライアントデバイス104に伝達するように構成される。実装のニーズに依存して、別のアップデートパッケージ及び/又はアップデートパッケージの1又は複数の一時的な(あるいは恒久的な)コピーが、アップデートパッケージジェネレーター116及びコンテンツサーバ140によるシェアされた使用のために、及び、コンテンツサーバ140及びクライアントデバイス104によるシェアされた使用のために、格納しておくことができる。アップデートの1又は複数のコピーは、実装(例えば共有のハードドライブ、メモリ、クラウドリソース)の何らかの適切な態様を用いて、格納することができる。
従って、動作において、一旦、アップデートパッケージジェネレーター116が、クライアントデバイス104に適用される第1アップデートと、第2アップデートの形式で要求されたファンクショナリティのデータとを識別したならば、これらは、既に開示された方法で、生成されて、コンテンツサーバ140へ伝達150され、そして、コンテンツサーバ140からクライアントデバイス104へ伝達152される。
ここで、図11に示すように、図10の実装は、第2アップデートを備えるアップデートパッケージと、編制された形式で第1アップデートを備える別のアップデートパッケージとの個別の通信のコンテキストにおいて、開示される。この点で、一旦、何らかの適切な実装(例えば、既に開示されたタイプ)を用いて判定されたならば、第1の個別の通信154が、アップデートパッケージジェネレーター116からコンテンツサーバ140への第2アップデート及び他の何らかのファンクション(別のアップデートパッケージを構成する)を伝達するために使用され、また、第2の個別の通信156が、第1アップデートを格納して伝達するために使用される。第1及び第2の個別の通信154及び156は、図10の第1の結合した通信150と同じ役割を果たす。そして、第2アップデート及び第1アップデートをそれぞれ備えるアップデートパッケージ及び別のアップデートパッケージは、第3の個別の通信158及び第4の個別の通信160として、クライアントデバイス104へ伝達され、図10の第2結合した通信152と同じ役割を果たす。再び、実装のニーズに依存して、別のアップデートパッケージ及び/又はアップデートパッケージの1又は複数の一時的な(あるいは恒久的な)コピーが、アップデートパッケージジェネレーター116及びコンテンツサーバ140によりシェアされる使用のために、及び、コンテンツサーバ140及びクライアントデバイス104によりシェアされる使用のために、格納することができる。アップデートの1又は複数のコピーは、実装(例えば共有のハードドライブ、メモリ、クラウドリソース)の何らかの適切な態様を用いて、格納することができる。
図10の例示と比較して、この例示のこの装置は、データの通信の異なる編制であるが、しかし、一方で、ファンクションは前述の例示と同様である。
上記の実施形態に関して、第1アップデートは、クライアントデバイス104からのレスポンスを要求するクエリーがないことは認識されるべきである。同様に、アップデートパッケージは、クライアントデバイス104からのレスポンスを要求するクエリーがない。
当業者は、上述の実装が、添付されたクレームの範囲内で考えられる様々な実装の単なる例示であることを認識するべきである。
例えば、デバイスケーパビリティーマネージャー126が、クライアントデバイス104によってリカバリーファンクションを実行するのに求められる必要なファンクショナリティを判定する代わりに、アップデートパッケージジェネレーター116が、ケーパビリティーデータレポジトリ128を参照することにより、必要なファンクショナリティを判定することができる。同様に、デバイスケーパビリティーマネージャー126の代わりに、アップデートパッケージジェネレーター116が、クライアントデバイス104にサポートされた既存のファンクショナリティを、クライアントデバイス104に要求されるターゲットファンクショナリティと比較することができ、クライアントデバイス104に求められる必要なファンクショナリティを構成するファンクショナリティ障害又は差異を識別することができる。しかしながら、デバイスケーパビリティーマネージャー126は、アップデートパッケージジェネレーター116から受信したファンクションリスト依頼メッセージに応じて、クライアントデバイスあるいはクライアントデバイス104のタイプに保持していたファンクショナリティを判定することができる。
上記の例示において、デバイスケーパビリティーマネージャー126及びケーパビリティーデータレポジトリ128は、クライアントアップデートサーバ102にサポートされているが、当業者は、デバイスケーパビリティーマネージャー126がクライアントアップデートサーバ102と共同設置される必要はないことを認識するべきである。同様に、ケーパビリティーデータレポジトリ128は、クライアントアップデートサーバ102と共同設置される必要はない。この点では、デバイスケーパビリティーマネージャー126及びケーパビリティーデータレポジトリ128は、それぞれ、クライアントアップデートサーバ102から互いに離れて遠隔に設置することができ、例えば、個別のサーバにサポートされる。
上述した例示において、クライアントデバイス104は、アップデート処理を行うためには無線通信インターフェースに依存している。しかしながら、上記で示唆されているように、有線通信は、クライアントデバイス104の接続を確実にするために使用することができる。当業者は、非OSソフトウェアが、クライアントデバイス104の無線通信ケーパビリティーあるいは有線通信ケーパビリティーと関係する必要はないことを認識するべきであり、また、非OSソフトウェアは、クライアントデバイス104の他のアスペクトに関係づけることができ、例えば、上記で示唆したような全地球測位システム(GPS)レシーバーのようなGNSSレシーバー、又は、クライアントデバイス104のメーカーによって提供されるようなアプリケーションプロセッサと、関係づけることができる。
アーキテクチャの分散化を開示したが、クライアントアップデートサーバ102は、OMADMサーバ146を備えることができる。さらに、OMADMサーバ146は、上記に開示された、いくつかの実施形態で用いることができるサーバの種類の単なる例示であり、当業者は、他の適切な種類のサーバを用いることができることを認識するべきであり、例えば、オープンモバイルアライアンス(OMA:Open Mobile Alliance)に従って通信をサポートするサーバ、軽量のマシントゥマシンの(LWM2M:Lightweight Machine to Machine)プロトコルなどを用いることができる。
上述の実施形態の装置及び方法は、コンピュータシステム(特に、コンピューターハードウェア又はコンピューターソフトウェア)として、又は、特別に生産された若しくは適用された集積回路として、さらには、開示された構造のコンポーネント及びユーザとの相互動作として、実現されてもよい。
上記の実施形態の方法は、コンピュータープログラムとして提供されてもよく、又は、コンピューター若しくは他のプロセッサー上で実行された時に、上記に開示された方法を行なうように構成されたコンピュータープログラムを搬送するコンピュータプログラムプロダクトあるいはコンピューター読取り可能な媒体として提供されてもよい。
用語「コンピューター読取り可能な媒体」は、限定をするものではなく、コンピューター又はコンピュータシステムによって直接読まれてアクセスすることができる、あらゆる1又は複数の媒体を含んでいる。媒体は、制限をするものではないが、フロッピーディスク、ハードディスク記憶媒体及び磁気テープのような磁気記憶媒体を含むことができ、光ディスクまたはCD−ROMのような光学的記憶媒体を含むことができ、RAM、ROM及びフラッシュメモリーを含むメモリのような電気的記憶媒体を含むことができ、さらには、磁気/光学記憶媒体のような上記のハイブリッド及び組合せを含むことができる。
本発明の特定の例示は上記に開示されているが、当業者は多くの等価な変形及び変更が可能性であることを認識するだろう。従って、上述された本発明の典型的な実施形態は、実例であり、制限をするものではないと考えられる。開示された実施形態への様々な修正は、本発明の精神及び範囲から外れることなく、行なわれてもよい。

Claims (40)

  1. ソフトウェアアップデートシステムであって、
    アップデートされる非OSシステムソフトウェアを有するクライアントデバイスと、
    前記クライアントデバイスから遠隔に位置して、前記クライアントデバイスと通信可能なクライアントアップデートサーバと、
    前記クライアントデバイスに関するテクニカルケーパビリティデータにアクセスするように構成されたデバイスケーパビリティーマネージャーと、
    を備え、
    前記クライアントアップデートサーバは、前記クライアントデバイスの非OSシステムソフトウェアの少なくとも一部をアップデートするのに必要な第1アップデートを検索するように構成されており、
    前記クライアントアップデートサーバは、前記デバイスケーパビリティーマネージャーと協働して、前記クライアントデバイスのアップデートを最適化するように、前記第1アップデートに適用する編制スキームを決定するように構成されたアップデートオプティマイザーを備えており、前記決定した編制スキームは、前記クライアントデバイスのテクニカルケーパビリティーと互換性を有しており、前記アップデートオプティマイザーは、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから、前記第1アップデートをリカバリーするリカバリーファンクションを識別するように構成されており、
    前記デバイスケーパビリティーマネージャーは、前記クライアントデバイスに求められる必要なファンクショナリティを判定するために前記ケーパビリティーデータを使用して、前記アップデートオプティマイザーによって識別された前記リカバリーファンクションを実行するように構成されており、
    前記クライアントアップデートサーバは、前記アップデートオプティマイザーに応じてアップデートパッケージジェネレーターを備えており、前記クライアントデバイスがリカバリーファンクションをサポート可能にする第2アップデートを備えるアップデートパッケージを生成するように構成されており、
    前記クライアントアップデートサーバは、前記クライアントデバイスに前記アップデートパッケージを伝達するように構成されたアップデート通信ユニットを備えており、
    前記クライアントデバイスは、前記アップデートパッケージを受信し、前記第2アップデートを抽出して、インストールするように構成されている、システム。
  2. 前記クライアントアップデートサーバは、前記第1アップデートの前に、前記クライアントデバイスに前記アップデートパッケージを伝達するように前記アップデート通信ユニットに命じるように構成されている、
    請求項1に記載のシステム。
  3. 前記クライアントアップデートサーバは、前記アップデートパッケージと前記選択された編制スキームに従って編制された第1アップデートのインスタンスとを、前記クライアントデバイスへ別々に伝達するように、アップデート通信ユニットに命じるように構成される、
    請求項1又は請求項2に記載のシステム。
  4. 前記アップデート通信ユニットは、前記選択された編制スキームに従って編制された第1アップデートのインスタンスから前記第1アップデートのリカバリーを促進するために、前記アップデートパッケージを受信することを期待する前記クライアントデバイスに、アドバイスを送信するように構成されている、
    請求項1に記載のシステム。
  5. 前記アップデート通信ユニットは、前記アップデートパッケージの前に、前記選択された編制スキームに従って編制された第1アップデートのインスタンスを送信するように構成されており、前記クライアントデバイスへの前記アドバイスは、前記選択された編制スキームに従って編制された第1アップデートのインスタンスに付随している、
    請求項4に記載のシステム。
  6. 前記クライアントアップデートサーバは、アップデートのリポジトリから前記第1アップデートを検索するように構成されている、
    請求項1乃至請求項5のいずれかに記載のシステム。
  7. 前記クライアントアップデートサーバは、前記デバイスケーパビリティーマネージャーによってアクセス可能なケーパビリティーデータレポジトリを備えており、前記ケーパビリティーデータレポジトリは、クライアントデバイスにサポートされた既存のファンクショナリティを記録する、
    請求項1乃至請求項6のいずれかに記載のシステム。
  8. 前記デバイスケーパビリティーマネージャーは、前記ケーパビリティーデータレポジトリを参照して、前記リカバリーファンクションを実行するのに前記クライアントデバイスに求められる前記必要なファンクショナリティを判定するように構成されている、
    請求項7に記載のシステム。
  9. 前記デバイスケーパビリティーマネージャーは、前記クライアントデバイスに求められる前記必要なファンクショナリティを構成するファンクショナリティ差異を識別するために、前記クライアントデバイスにサポートされている既存のファンクショナリティを、前記クライアントデバイスに求められるターゲットファンクショナリティと、比較するように構成されている、
    請求項8に記載のシステム。
  10. 前記クライアントアップデートサーバは、ファンクショナリティリポジトリを備えており、前記ファンクショナリティリポジトリは、複数のオペレーティングファンクションを備えている、
    請求項1乃至請求項9のいずれかに記載のシステム。
  11. 前記アップデートパッケージジェネレーターは、前記ファンクショナリティリポジトリからオペレーティングファンクションを検索するために前記ファンクショナリティリポジトリにアクセスし、前記ファンクショナリティ差異のファンクショナリティの少なくとも一部を提供するように構成されている、
    請求項9に従属する場合における請求項10に記載のシステム。
  12. 前記第2アップデートは、前記オペレーティングファンクションを備える、
    請求項11に記載のシステム。
  13. 前記アップデートパッケージジェネレーターは、前記選択された編制スキームに従って編制された前記第1アップデートを備える別のアップデートパッケージを生成するように構成されている、
    請求項1乃至請求項12のいずれかに記載のシステム。
  14. 前記アップデートオプティマイザーは、前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから前記第1アップデートをリカバリーするリカバリーファンクションと結合して適用される別のリカバリーファンクションを識別するように構成されている、
    請求項1乃至請求項13のいずれかに記載のシステム。
  15. 前記非OSシステムソフトウェアは、ファームウェアである、
    請求項1乃至請求項14のいずれかに記載のシステム。
  16. 前記クライアントデバイスは、通信モジュールを備えており、前記第1アップデートは、前記通信にモジュールに関連する、
    請求項1乃至請求項15のいずれかに記載のシステム。
  17. 前記編制スキームは、
    圧縮スキームと、
    暗号化スキームと、
    データデファレンシングスキームと、
    デルタ符号化スキームと、
    のうちの少なくとも1つを備える、
    請求項1乃至請求項16のいずれかに記載のシステム。
  18. 前記アップデートパッケージジェネレーターは、前記デバイスケーパビリティーマネージャーによって判定された前記クライアントデバイスに求められる前記必要なファンクショナリティに応答することにより、前記デバイスケーパビリティーマネージャーに応答する、
    請求項1乃至請求項17のいずれかに記載のシステム。
  19. 求められる前記必要なファンクショナリティの前記デバイスケーパビリティーマネージャーによる判定は、前記アップデートオプティマイザーによって識別された前記リカバリーファンクションを実行するためにクライアントデバイスに欠いているファンクショナリティの判定である、
    請求項1乃至請求項18のいずれかに記載のシステム。
  20. 前記アップデートオプティマイザーは、
    揮発性メモリ使用、
    不揮発性メモリ使用、
    メモリの物理ブロックのサイズ、
    前記第1アップデートの実行に関連した変更の分布の程度、
    アップデートパッケージのサイズ、及び/又は、
    クライアントデバイスに要求される処理時間、
    のうちの1つ以上の基準に基づいて、前記編制スキームを選択する、
    請求項1乃至請求項19のいずれかに記載のシステム。
  21. 前記リカバリーファンクションは、コンパイルされたコード、コンパイルされたスクリプト、解釈可能なコード、又は、解釈可能なスクリプトである、
    請求項1乃至請求項20のいずれかに記載のシステム。
  22. 前記第1アップデートは、前記クライアントデバイスの非アップデートメンテナンスファンクショナルアスペクトに関連する、
    請求項1乃至請求項21のいずれかに記載のシステム。
  23. 前記ファンクショナルアスペクトは、
    乱数を生成するための方法、チェックサムを算出するための方法、後のアップデートパッケージに続くデータをデコードする方法、前記アップデートパッケージを解凍する方法、GNSSレシーバーの機能、ボコーダープラグイン、新機能、新しいATコマンド、又は、セキュリティパッチである、
    請求項22に記載のシステム。
  24. 前記クライアントアップデートサーバは、前記クライアントデバイスを備える一群のクライアントデバイスをアップデートするのに必要な前記第1アップデートを識別するように構成されており、
    前記アップデート通信ユニットは、前記一群のクライアントデバイスのすべてのクライアントデバイスの前記アップデートパッケージに、無線で通信するように構成されている、
    請求項1乃至請求項23のいずれかに記載のシステム。
  25. 前記アップデートパッケージ及び/又は第1アップデートは、前記クライアントデバイスからのレスポンスを要求するクエリーがない、
    請求項1乃至請求項24のいずれかに記載のシステム。
  26. 前記アップデートパッケージジェネレーターは、デルタファイルジェネレーターを備える、
    請求項1乃至請求項25のいずれかに記載のシステム。
  27. 前記アップデートパッケージジェネレーターは、前記ケーパビリティーデータレポジトリの参照により前記リカバリーファンクションを実行するために、前記クライアントデバイスに求められる前記必要なファンクショナリティを判定するように構成されている、
    請求項7に記載のシステム。
  28. 前記アップデートパッケージジェネレーターは、前記クライアントデバイスに求められる前記必要なファンクショナリティを構成するファンクショナリティ差異を識別するために、前記クライアントデバイスにサポートされた既存のファンクショナリティを、前記クライアントデバイスに求められるターゲットファンクショナリティと、比較するように構成されている、
    請求項8に記載のシステム。
  29. 前記デバイスケーパビリティーマネージャーは、前記アップデートパッケージジェネレーターからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されている、
    請求項27又は請求項28に記載のシステム。
  30. 前記クライアントアップデートサーバは、オープンモバイルアライアンスデータマネージメント(OMADM)サーバ及び前記OMADMサーバによってアクセス可能なケーパビリティーデータレポジトリを備え、
    前記ケーパビリティーデータレポジトリは、前記クライアントデバイスにサポートされた既存のファンクショナリティを記録している、
    請求項1乃至請求項6のいずれかに記載のシステム。
  31. 前記OMADMサーバは、前記アップデートパッケージジェネレーターからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されている、
    請求項30に記載のシステム。
  32. 前記デバイスケーパビリティーマネージャーは、ファンクションリスト依頼メッセージを受信し、これに応じて、OMADMサーバへファンクションリスト依頼を送るように構成されており、
    前記OMADMサーバは、前記デバイスケーパビリティーマネージャーからのファンクションリスト依頼メッセージの受信に応じて、前記クライアントデバイス又はクライアントデバイスのタイプに保持されているファンクショナリティを判定するように構成されている、
    請求項30に記載のシステム。
  33. 前記アップデートパッケージは、データ構造定義に従って前記クライアントデバイスに伝達され、
    前記データ構造定義は、前記アップデートパッケージを含むために予約された、必要なファンクショナリティコンテンツフィールドを備える、
    請求項1乃至請求項32のいずれかに記載のシステム。
  34. 前記データ構造定義は、
    前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスを含むために予約された、アップデートコンテンツフィールドをさらに備える、
    請求項33に記載のシステム。
  35. 前記データ構造定義は、
    前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスのリカバリーに関連したファンクションの識別子を含むために予約された、ファンクションインディケーターフィールドをさらに備え、
    前記ファンクションインディケーターフィールドは、前記必要なファンクショナリティコンテンツフィールドに付随するように構成される、
    請求項33に記載のシステム。
  36. 前記データ構造定義は、
    別のアップデートパッケージ含むために予約された、別の必要なファンクショナリティコンテンツフィールドをさらに備える、
    請求項35に記載のシステム。
  37. 前記データ構造定義は、
    別の編制されたアップデートのインスタンスを含むために予約された、別のアップデートコンテンツフィールドをさらに備える、
    請求項34、請求項35又は請求項36に記載のシステム。
  38. 前記データ構造定義は、
    前記別の編制されたアップデートのインスタンスのリカバリーに関連した別のファンクションの別の識別子を含むために予約された、別のファンクションインディケーターフィールドをさらに備え、
    前記別のファンクションインディケーターフィールドは、前記別の必要なファンクショナリティコンテンツフィールドに付随するように構成される、
    請求項36に従属する場合における請求項37に記載のシステム。
  39. 請求項1乃至請求項38のいずれかに記載のソフトウェアアップデートシステムを備える、ファームウェアオーバーザエアーアップデートシステム。
  40. アップデートされる非OSシステムソフトウェアを有するクライアントデバイスをアップデートする方法であって、
    前記クライアントデバイスに関するケーパビリティーデータにアクセスするステップと、
    前記クライアントデバイスの前記非OSシステムソフトウェアの少なくとも一部をアップデートするのに必要な第1アップデートを検索するステップと、
    前記クライアントデバイスのアップデートを最適化するように、前記第1アップデートに適用される、編制スキームを決定するステップであって、前記決定された編制スキームは、前記クライアントデバイスのテクニカルケーパビリティーと互換性がある、ステップと、
    前記選択された編制スキームに従って編制された前記第1アップデートのインスタンスから前記第1アップデートをリカバリーするためのリカバリーファンクションを識別するステップと、
    アップデートオプティマイザーによって識別されたリカバリーファンクションを実行するために前記クライアントデバイスに求められる必要なファンクショナリティを判定するために、前記ケーパビリティーデータを使用するステップと、
    前記クライアントデバイスに求められる前記必要なファンクショナリティの判定に応じて、アップデートパッケージを生成するステップであって、前記アップデートパッケージは、前記クライアントデバイスがリカバリーファンクションをサポート可能にする第2アップデートを備えている、ステップと、
    前記クライアントデバイスに前記アップデートパッケージを伝達するステップと、
    前記クライアントデバイスが前記アップデートパッケージを受信し、前記第2アップデートを抽出し、インストールするステップと、
    を備える方法。
JP2019512904A 2016-09-14 2016-09-14 ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法 Active JP6852148B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/071647 WO2018050216A1 (en) 2016-09-14 2016-09-14 Software update system, firmware over the air updating system and method of updating a client device

Publications (2)

Publication Number Publication Date
JP2019535060A true JP2019535060A (ja) 2019-12-05
JP6852148B2 JP6852148B2 (ja) 2021-03-31

Family

ID=57121187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019512904A Active JP6852148B2 (ja) 2016-09-14 2016-09-14 ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法

Country Status (5)

Country Link
US (1) US10101990B2 (ja)
EP (1) EP3513282A1 (ja)
JP (1) JP6852148B2 (ja)
CN (1) CN109690478B (ja)
WO (1) WO2018050216A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3979256A1 (de) * 2020-10-02 2022-04-06 Löwenstein Medical Technology S.A. Verfahren zur aktualisierung eines beatmungsgeräts

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714819B (zh) * 2013-12-16 2019-11-15 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
US10535068B2 (en) * 2016-12-28 2020-01-14 Capital One Services, Llc Smart card multi-factor authentication device
US11315114B2 (en) 2016-12-28 2022-04-26 Capital One Services, Llc Dynamic transaction card protected by multi-factor authentication
KR20180131840A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 펌웨어 업데이트 지원 장치 및 그 방법
US10447537B2 (en) 2017-07-11 2019-10-15 Roku, Inc. Automatic determination of display device functionality
US10963239B2 (en) * 2018-10-18 2021-03-30 International Business Machines Corporation Operational file management and storage
CN111327705A (zh) * 2020-03-02 2020-06-23 深圳前海达闼云端智能科技有限公司 软件下载方法及LwM2M系统
CN111885047A (zh) * 2020-07-21 2020-11-03 黑芝麻智能科技(重庆)有限公司 用于终端获取数据的方法、终端访问数据的方法及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514214A (ja) * 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
JP2004534977A (ja) * 2000-11-20 2004-11-18 アクシダ システムズ オペレーティング カンパニー インコーポレイテッド デバイス登録機構
US20110296398A1 (en) * 2010-05-28 2011-12-01 Seth Kelby Vidal Systems and methods for determining when to update a package manager software
JP2012516506A (ja) * 2009-01-29 2012-07-19 クゥアルコム・インコーポレイテッド デバイスへのオーディオ処理能力の動的供給

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US7810088B2 (en) * 2003-06-20 2010-10-05 Samsung Electronics Co., Ltd. Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
KR101426710B1 (ko) * 2006-07-14 2014-09-23 삼성전자주식회사 휴대단말기의 버전정보 갱신 장치 및 방법
US7516367B1 (en) * 2008-05-30 2009-04-07 International Business Machines Corporation Automated, distributed problem determination and upgrade planning tool
US8572599B2 (en) * 2008-06-23 2013-10-29 Verizon Patent And Licensing Inc. Provisioning device make and model information for firmware over-the-air (FOTA)
US8612961B2 (en) * 2008-12-31 2013-12-17 Motorola Mobility Llc System and method for downloading software upgrades
US8239852B2 (en) * 2009-06-24 2012-08-07 Uniloc Luxembourg S.A. Remote update of computers based on physical device recognition
US9003387B2 (en) * 2009-09-25 2015-04-07 Fisher-Rosemount Systems, Inc. Automated deployment of computer-specific software updates
US9134992B2 (en) * 2011-08-31 2015-09-15 Vmware, Inc. Interactive and visual planning tool for managing installs and upgrades
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
US8631239B2 (en) * 2012-01-12 2014-01-14 Facebook, Inc. Multiple system images for over-the-air updates
US8850420B2 (en) * 2012-03-22 2014-09-30 Sap Ag Dynamically updating on-demand runtime platforms executing business applications
CN102724308A (zh) * 2012-06-13 2012-10-10 腾讯科技(深圳)有限公司 软件更新方法及软件更新系统
CN103853569B (zh) * 2012-12-04 2017-03-08 腾讯科技(深圳)有限公司 一种显示增量更新进度的方法和装置
CN103473099B (zh) * 2013-09-13 2017-02-01 惠州Tcl移动通信有限公司 一种移动终端的软件升级方法和系统
CN105094875A (zh) * 2014-05-19 2015-11-25 中兴通讯股份有限公司 一种软件升级方法及装置
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
CN104253866B (zh) * 2014-09-20 2018-03-27 华为技术有限公司 虚拟网络功能网元的软件部署方法、系统及相关设备
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
SG11201703525SA (en) * 2014-12-29 2017-05-30 Visa Int Service Ass Over-the-air provisioning of application library
CN104899065A (zh) * 2015-06-11 2015-09-09 武汉虹信通信技术有限责任公司 一种可批量软件在线恢复与软件在线升级的方法和系统
US10205606B2 (en) * 2016-06-15 2019-02-12 Abl Ip Holding Llc Mesh over-the-air (OTA) luminaire firmware update

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514214A (ja) * 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
JP2004534977A (ja) * 2000-11-20 2004-11-18 アクシダ システムズ オペレーティング カンパニー インコーポレイテッド デバイス登録機構
JP2012516506A (ja) * 2009-01-29 2012-07-19 クゥアルコム・インコーポレイテッド デバイスへのオーディオ処理能力の動的供給
US20110296398A1 (en) * 2010-05-28 2011-12-01 Seth Kelby Vidal Systems and methods for determining when to update a package manager software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3979256A1 (de) * 2020-10-02 2022-04-06 Löwenstein Medical Technology S.A. Verfahren zur aktualisierung eines beatmungsgeräts

Also Published As

Publication number Publication date
EP3513282A1 (en) 2019-07-24
US10101990B2 (en) 2018-10-16
JP6852148B2 (ja) 2021-03-31
CN109690478A (zh) 2019-04-26
US20180074808A1 (en) 2018-03-15
CN109690478B (zh) 2022-06-10
WO2018050216A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
JP6852148B2 (ja) ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法
EP3407527B1 (en) Method, device, and system for data synchronization
USRE44836E1 (en) System and method for efficient transfer of applications and data during device swap
JP5989807B2 (ja) ソフトウェアのインストール方法、デバイスおよびシステム
EP3968702A1 (en) Communication method and apparatus, entity and computer readable storage medium
EP2214372B1 (en) Method and apparatus for tracking device management data changes
US11831727B2 (en) Profile based content and services
CN101360127A (zh) 文件更新方法及传输系统
TW201432469A (zh) 檔案同步的方法及相關電子裝置
US9723480B2 (en) Information processing device, server device, data communication system, data communication method, and computer-readable storage medium storing data communication program
KR20050031466A (ko) 인터럽트된 동기화 프로세스의 처리를 제공하는 데이터를동기화하는 방법, 장치 및 시스템
JP2009151560A (ja) リソースの管理方法、情報処理システム、情報処理装置、及びプログラム
JP4902559B2 (ja) ネットワーク分散共有システム、ネットワーク分散共有方法、およびネットワーク分散共有プログラム
US20150282121A1 (en) Local resource sharing method of machine to machine component and apparatus thereof
US20130227118A1 (en) System and method for providing access to presence status for mobile devices
JP2009093213A (ja) ネットワーク分散共有システム、ネットワーク分散共有方法、およびネットワーク分散共有プログラム
KR101767568B1 (ko) 개방형 공간 정보 관리 시스템
US20140108758A1 (en) Data processing method and data processing system
CN116614358A (zh) 一种云平台应用发布方法、装置、系统和计算机设备
CN113986835A (zh) FastDFS分布式文件的管理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201111

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: 20210212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210310

R150 Certificate of patent or registration of utility model

Ref document number: 6852148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250