JP6660311B2 - スモールメモリ装置にソフトウェアをインストールするシステム - Google Patents

スモールメモリ装置にソフトウェアをインストールするシステム Download PDF

Info

Publication number
JP6660311B2
JP6660311B2 JP2016571403A JP2016571403A JP6660311B2 JP 6660311 B2 JP6660311 B2 JP 6660311B2 JP 2016571403 A JP2016571403 A JP 2016571403A JP 2016571403 A JP2016571403 A JP 2016571403A JP 6660311 B2 JP6660311 B2 JP 6660311B2
Authority
JP
Japan
Prior art keywords
computer program
memory
program
data packet
small memory
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.)
Active
Application number
JP2016571403A
Other languages
English (en)
Other versions
JP2017518583A (ja
Inventor
トン,ペオウ オウ
トン,ペオウ オウ
チン グアン テイ
チン グアン テイ
Original Assignee
ホーム コントロール シンガポール プライベート リミテッド
ホーム コントロール シンガポール プライベート リミテッド
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 ホーム コントロール シンガポール プライベート リミテッド, ホーム コントロール シンガポール プライベート リミテッド filed Critical ホーム コントロール シンガポール プライベート リミテッド
Publication of JP2017518583A publication Critical patent/JP2017518583A/ja
Application granted granted Critical
Publication of JP6660311B2 publication Critical patent/JP6660311B2/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/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、スモールメモリ装置にコンピュータプログラムをワイヤレスにダウンロードすること及びインストールすることに関する。例えば、スモールメモリ装置は、他のより複雑な電子装置、例えばスマートフォンなどと比較して、小さいメモリを典型的に有する電子装置、例えばリモート制御装置などであり得る。
リモート制御装置は、種々のテクノロジーを使用して、消費者装置と相互作用することができる。よく知られるレガシー赤外線テクノロジーは、リモート制御装置が消費者装置を制御することを可能にする。リモート制御装置は赤外線送信器を有して、コマンドコードを含む赤外線信号を送信し、消費者装置は赤外線受信器を有して、赤外線信号を受信し、コマンドコードを抽出する。コマンドコードに応答して、消費者装置はアクションを実行することができる。例えば、消費者装置はTVであってもよく、リモート制御装置はユーザによってコマンドコードを送るのに使用され、TVが次のチャンネルに切り換わること又はボリュームを上げることが引き起こされる。
近代のリモート制御装置は、無線ベース能力を(さらに)有して家庭内の他の装置と相互作用し、ホスト装置から、リモート制御装置のソフトウェアアップデートをワイヤレスにダウンロードすることができる。例えば、無線ベース能力は、ZigBee(登録商標) RF4CEテクノロジーに基づき得る(さらに、2014年5月22日に閲覧された、ZigBeeアライアンスのウェブサイト:http://www.zigbee.org/Specifications/ZigBeeRF4CE/Overview.aspxを参照)。ソフトウェアアップデートには、様々な装置と相互作用するためのコマンドコードの最新データベースを含む、リモート制御装置のファームウェアが典型的に含まれる。新しいソフトウェアをワイヤレスにダウンロードすること及びインストールすることは、無線ダウンロード(Over-the-Air Download)(OAD)と一般にいわれる。OADは、リモート制御装置の生産プロセスの間、リモート制御装置上でソフトウェアを受信し及びインストールすることに使用されることができる。ホスト装置が、リモート制御装置とのワイヤレス接続を確立し、それから、ソフトウェアをリモート制御装置にワイヤレスに送信してもよい。
しかしながら、大量生産プロセス内でリモートコントロール上に新しいソフトウェアをインストールすることは、依然として、生産プロセス内で比較的非効率的な処理である。このことは、特に、生産の低コスト及び高スピードが重要である大量生産プロセス、例えば、リモート制御装置の生産プロセスなどにおいて当てはまる。OADを用いた新しいソフトウェアのインストールの間、ホスト装置及びリモート制御装置は、干渉を防止するために、例えば遮蔽ボックスを用いて、付近の他の(リモート制御)装置から遮蔽される必要がある。他のリモート制御装置の各々は、その独自の遮蔽ボックス内でその独自のインストールを、遮蔽ボックスの内側でその独自のホスト装置とペアにされて行う可能性がある。各装置がその独自のソフトウェアインストールを行うための遮蔽ボックスの使用は、面倒であり、生産プロセスのスピードを制限する。生産プロセスの非効率性は、装置自体へのダウンロードが比較的遅い処理であり得るという事実のため、さらに悪化される。
さらに、上記インストールプロセスは、メモリ(及び、ゆえにコスト)の観点から非効率的であり、なぜならば、インストールプロセスの間、さらなるメモリを必要とするからである。新しいソフトウェアのインストールは、最初、リモート制御装置がさらなるメモリに新しいソフトウェアをダウンロードし及び記憶し、それから、ダウンロードされたソフトウェアを検証し、最後、リモート制御装置のメモリ内の既存のソフトウェアを上書きすることを必要とする。ゆえに、さらなるメモリは、新しいソフトウェアをダウンロードすることに主に使用され、他の時間には大部分使用されず、このことは、メモリの使用を非効率的にする。メモリの効率的な使用は、リモート制御装置などのスモールメモリ装置の大量生産プロセスにおいて特に重要であり、これにおいて、メモリサイズは最小限に保たれて、コスト及び材料費を低減させる。
目的の技術的課題は、従来技術と比較して向上した効率を有する、スモールメモリ装置にソフトウェアをインストールするシステム、方法、及び装置を提供することである。
本発明の一態様は、装置であって、コンピュータプログラムを含有する(containing)ためのメモリであるプログラムメモリと、当該装置をブートするように配置された(arranged)ブートローダを含むブートメモリと、上記コンピュータプログラム及び上記ブートローダを実行するプロセッサと、データパケットをワイヤレスに受信する受信ユニットであって、上記コンピュータプログラムの部分(portions)がそれぞれの上記データパケットのうち少なくともいくつかによって含まれる、受信ユニットと、を有し、上記ブートローダは、上記コンピュータプログラムをインストールするようにさらに配置され、上記データパケットのうちのデータパケットを検出することであって、該検出することは上記データパケットを受信することの一部である、ことと、上記データパケットから、(a)上記コンピュータプログラムの部分、及び該部分に関連した部分メタデータと、(b)上記コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータと、のうち少なくとも1つを抽出することと、上記部分メタデータに基づいて上記プログラムメモリ内のメモリ位置を決定することと、上記プログラムメモリ内に記憶されている抽出された部分を表す進捗情報を維持することと、上記進捗情報と上記プログラムメタデータとに基づいて部分の上記集合の記憶の完了を決定することと、を含む。
装置は、スモールメモリ装置、例えば、リモートコントロール、電子玩具、ウェアラブル装置、又は音楽プレーヤなどであり得る。スモールコンピュータがそれ自体効率的であるよう、装置は、コンピュータプログラムとブートローダとを実行するプロセッサを含む。装置は、コンピュータプログラムを記憶するプログラムメモリをさらに含む。装置は、装置をブートするブートローダを含むブートメモリをさらに含む。装置は、データパケットを受信する受信ユニットをさらに有する。
プログラムメモリは、コンピュータプログラムを記憶するのに必要とされるメモリよりずっと大きい利用可能メモリを有してはいないことがある。例えば、プログラムメモリは、コンピュータプログラムを含有するのに十分なほど大きく、同時に、コンピュータプログラムのさらなるコピーをさらに含有するのには非常に小さい可能性がある(しかし、そうである必要はない)。後者の場合、ゆえに、プログラムメモリは、コンピュータプログラムとコンピュータプログラムのさらなるコピーとを含有することはできず、したがって、ブートローダは、最初、プログラムメモリに事前インストールされたコンピュータプログラムを上書きする前に、コンピュータプログラムをダウンロードすることができない。インストールされる必要があるコンピュータプログラムは、例えば、装置の新しいファームウェアを含むことがあり、設定の更新されたデータベースをさらに含むことがある。
ブートローダは、その典型的タスクである装置のブートに対して追加で、装置にコンピュータプログラムをインストールするようにさらに配置される。ブートローダは、プロセッサにより実行されるときに、下記のとおり機能し得る。ブートローダは、受信ユニットを使用して、データパケットを含むワイヤレス信号について嗅ぎ付ける(スニフする)(sniff)。データパケットが検出されるとき、ブートローダは、受信ユニットを介してデータパケットをさらに受信することができる。それから、ブートローダは、データパケットから、コンピュータプログラムの部分と、該部分に関連した部分メタデータとを抽出することができる。次いで、ブートローダは、部分メタデータに基づいて、部分を記憶するためのプログラムメモリ内のメモリ位置を決定することができる。例えば、データパケットは、部分に関連した相対メモリ位置を含むヘッダを有してもよい。ブートローダは、ゆえに、プログラムメモリの所定の開始メモリ位置に相対メモリ位置を加算することによって、プログラムメモリ内の(絶対)メモリ位置を決定することができる。それから、部分は、決定されたメモリ位置に記憶されることができる。
ブートローダは、コンピュータプログラムのインストールが完了されたとブートローダが決定するまで、他のデータパケットを同様の方法で進めることができる。コンピュータプログラムのインストールは、コンピュータプログラムを集合的に形成する部分の集合がプログラムメモリ上に記憶されたとき、完了される。換言すると、インストールは、コンピュータプログラムを集合的に形成するすべての部分がプログラムメモリ内に記憶されたとき、完了される。ブートローダは、コンピュータプログラムのインストールを完了すると、それから、新たにインストールされたコンピュータプログラムを実行することによって装置をさらにブートすることができる。
ブートローダは、データパケットから、コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータを抽出することができる。例えば、プログラムメタデータは、コンピュータプログラムを集合的に形成する部分の合計量を表す数を含んでもよい。さらに、ブートローダは、プログラムメモリ内に記憶されている抽出された部分を表す進捗情報を維持することができる。例えば、ブートローダが、該プログラムローダがプログラムメモリ内にインストールした部分の数の総数を保持してもよく、ゆえに、進捗情報は上記総数であり得る。ブートローダは、進捗情報とプログラム情報とに基づいて部分の集合の記憶の完了を決定することができる。例えば、記憶された部分の上記総数が部分の合計量に合致するとき、ブートローダは、コンピュータプログラムを集合的に形成するすべての部分がプログラムメモリ内に記憶されたと決定する。
データパケットは、部分、及び該部分に関連した部分メタデータと、プログラムメタデータとを含むことができる。別法として、データパケットが、(a)部分、及び部分メタデータ、又は(b)プログラムメタデータ、のいずれかを含んでもよい。後者の場合、あらゆるデータパケットがコンピュータプログラムの部分を含みはしない。
本発明の効果は、ブートローダによるコンピュータプログラムのスモールメモリ装置へのインストールが、メモリの観点から、向上した効率を有することである。プログラムメモリは、コンピュータプログラムを記憶するのに十分なほど大きいことしか求められない。コンピュータプログラムのインストールに関して、コンピュータプログラムの追加コピーをさらに記憶するためのプログラムメモリ内の追加空間は必要とされない。したがって、インストールは、メモリの観点から、向上した効率を有する。
場合により、ブートローダは、ラウンドロビン方式でデータパケットの集合を受信するように配置され、データパケットの集合は、部分の集合を集合的に含み、データパケットの集合は、単一のラウンドロビン期間内に送信される。コンピュータプログラムを集合的に形成するすべての部分が、単一のラウンドロビン期間内に受信されることができ、しかしながら、いくつかの部分の受信が何らかの理由で失敗する場合、こうした部分は任意の次のラウンドロビン期間の間に受信されることができる。結果として、部分の受信は、失敗した受信部分に関してロバストになり、インストールの間の失敗のために装置が「使えないもの(bricked)」になることを防止する。さらに、このことは、インストールの失敗の場合に、装置が再起動されることを可能にし、したがって、ブートローダはコンピュータプログラムのインストールを再開することができる。
場合により、部分の集合は、コンピュータプログラムを連続的に形成する連続部分であり、部分メタデータは、連続部分内の部分のランク(rank)に関連した情報を含む。例えば、集合が、部分#1、部分#2、・・・、部分#100までである100個の連続部分を含む。それから、例えば、部分#60の部分メタデータが、番号60であってもよく、この番号60は、連続部分の中の部分#60のランクを表す。ゆえに、部分は、そのランクに従って連続的に受信され得る。
本発明の別の態様が、装置にコンピュータプログラムをインストールするシステムであって、データパケットを送信するように配置されたホスト装置、を含み、上記データパケットのうち少なくともいくつかが、上記コンピュータプログラムのそれぞれの部分を含み、上記ホスト装置は、上記データパケットをワイヤレスに送信する送信ユニットを有し、上記装置は、コンピュータプログラムを含有するためのメモリであるプログラムメモリと、上記装置をブートするように配置されたブートローダを含むブートメモリと、上記コンピュータプログラム及び上記ブートローダを実行するプロセッサと、上記データパケットをワイヤレスに受信する受信ユニットと、を有し、上記ブートローダは、上記コンピュータプログラムをインストールするようにさらに配置され、上記データパケットのうちのデータパケットを検出することであって、該検出することは上記データパケットを受信することの一部である、ことと、上記データパケットから、(a)上記コンピュータプログラムの部分、及び該部分に関連した部分メタデータと、(b)上記コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータと、のうち少なくとも1つを抽出することと、上記部分メタデータに基づいて上記プログラムメモリ内のメモリ位置を決定することと、上記プログラムメモリ内に記憶されている抽出された部分を表す進捗情報を維持することと、上記進捗情報と上記プログラムメタデータとに基づいて部分の上記集合の記憶の完了を決定することと、を含む。
ゆえに、システムは、ブートローダを含む装置(本発明の一態様である上記の装置と整合する)と、ホスト装置とを含む。ホスト装置はデータパケットを送信することができ、該データパケットは装置によって受信され得る。例えば、システムがリモート装置の生産ラインの一部であってもよく、ホスト装置が、リモート制御装置である装置に新しいファームウェアのそれぞれの部分を含むパケットを送信してもよい。
場合により、システムは、上記装置に従う複数の装置を含み、複数の装置の各々は、部分の集合のうちそれぞれの異なる初期部分に対応するそれぞれの異なる時点に上記検出を始動する。一効果は、コンピュータプログラムが複数のスモールメモリ装置にインストールされているとき、インストールが速度の観点から、向上した効率を有することである。装置のうち1つがそのインストールを、付近の複数の装置のうち別の装置のインストールと同時に実行することができる。各装置は、そのそれぞれの独自のホスト装置とのペアにされた接続を必要としない。代わって、複数の装置は、同じ単一のホスト装置から同じデータパケットを独立してスニフし、受信することができる。結果として、複数の装置が、データパケットを受信できるように単一のホスト装置の範囲内にある限り、コンピュータプログラムを同時にインストールすることができる複数の装置の量に対する制限は、存在しない。したがって、複数の装置にコンピュータプログラムをインストールする速度が、従来技術と比較して大きく増加する。
本発明の別の態様が、システムにおいて使用されるホスト装置であって、
ラウンドロビン方式でデータパケットの集合を送信するように配置されたプロセッサであって、上記データパケットのうちの各データパケットがコンピュータプログラムの部分を含み、上記データパケットの上記集合は、上記コンピュータプログラムを集合的に形成する部分の集合を集合的に含み、データパケットの上記集合は、単一のラウンドロビン期間内に送信される、プロセッサと、上記データパケットをワイヤレスに送信する送信ユニットと、を含む。このことは、複数の装置が並列にコンピュータプログラムをインストールすることを可能にするだけでなく、さらに、複数の装置の各々がインストールをラウンドロビン期間の間又は次のラウンドロビン期間の間の任意の時間に開始することを可能にする。このことは、コンピュータプログラムの複数の装置へのインストールについて、速度とより実用的であることとの双方の観点から、効率をさらに増大させる。
本発明の別の態様が、命令を含むコンピュータプログラム製品であって、上記命令がホスト装置のプロセッサにより実行されるときに、上記命令は上記プロセッサに、上記コンピュータプログラムからの部分を決定するステップと、上記部分に関連した部分メタデータを決定するステップと、上記部分と上記部分メタデータとを含むデータパケットを組み立てる(composing)ステップと、を実行させる。
本発明の別の態様が、装置にコンピュータプログラムをインストールする方法であって、上記装置は、コンピュータプログラムを含有するためのメモリであるプログラムメモリと、上記装置をブートするように配置されたブートローダを含むブートメモリと、上記コンピュータプログラム及び上記ブートローダを実行するプロセッサと、データパケットをワイヤレスに受信する受信ユニットであって、上記コンピュータプログラムの部分がそれぞれの上記データパケットのうち少なくともいくつかによって含まれ、当該方法は、上記データパケットのうちのデータパケットを検出するステップであって、該検出するステップは上記データパケットを受信することの一部である、ステップと、上記データパケットから、(a)上記コンピュータプログラムの部分、及び該部分に関連した部分メタデータと、(b)上記コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータと、のうち少なくとも1つを抽出するステップと、上記部分メタデータに基づいて上記プログラムメモリ内のメモリ位置を決定するステップと、上記プログラムメモリ内に記憶されている抽出された部分を表す進捗情報を維持するステップと、上記進捗情報と上記プログラムメタデータとに基づいて部分の上記集合の記憶の完了を決定するステップと、を含む。
本発明の別の態様が、命令を含むブートローダを含むコンピュータプログラム製品であって、上記ブートローダがプロセッサにより実行されるときに、上記ブートローダは上記プロセッサに請求項14に記載の方法を実行させる。
本発明の上記及び他の態様が、以降に説明される実施形態から明らかになり、該実施形態を参照して説明される。
異なる図において同じ参照番号を有するアイテムは、同じ構造的特徴及び同じ機能を有することが留意されるべきである。こうしたアイテムの機能及び/又は構造が説明されている場合、詳細な説明において該アイテムの説明が繰り返される必要がない。
スモールメモリ装置にコンピュータプログラムをインストールするシステムを例示する。 複数のスモールメモリ装置を含むシステムを例示する。 コンピュータプログラムのラウンドロビンインストールの間の、2つのスモールメモリ装置のメモリとホスト装置のメモリとを例示する。 コンピュータプログラムのインストールの完了におけるスモールメモリ装置のメモリを例示する。 コンピュータプログラムの別のラウンドロビンインストールの間の、スモールメモリ装置及びホスト装置のメモリを例示する。 コンピュータプログラムの最後の部分を記憶し、かつ部分を再順序付けする前の、スモールメモリ装置のメモリを例示する。 スモールメモリ装置にコンピュータプログラムをインストールする方法を例示する。
図1aは、スモールメモリ装置(small-memory device)DEV110にコンピュータプログラムをインストールするシステム100を例示している。システム100は、ホスト装置HST180(以降:ホストHST)、及びスモールメモリ装置DEV(以降:装置DEV)を含む。ホストHSTは、送信ユニットSND190を有する。装置DEVは、受信ユニットRCV170、ブートメモリMBOOT120、プログラムメモリMPROG130、アクティブメモリMACT140、及びプロセッサPROC150を有する。プロセッサPROCは、ブートメモリMBOOT、プログラムメモリMPROG、アクティブメモリMACT、及び受信ユニットRCVと、接続152−153及び171それぞれを通してデータを交換することができる。
ホストHSTは、部分単位で送信ユニットSND190を介してコンピュータプログラムを送信することができ、各部分は、それぞれのデータパケットにより含まれる。ゆえに、コンピュータプログラムは全体として、データパケットの集合により、集合的に含まれる。ホストHSTはワイヤレス信号191を送信し、ワイヤレス信号191はデータパケットを含有し得る。ホストHSTは、図1aに図示されていない他の要素、例えば、プロセッサ、ホストメモリ、及び、別のネットワーク及び/又はインターネットに接続するネットワーク通信ユニットなどを含んでもよい。
ホストHSTは、そのホストメモリに記憶されたコンピュータプログラムを有することができ、コンピュータプログラムからのデータパケットを下記のとおり決定することができる。ホストHSTは、最初、コンピュータプログラムを連続した部分へと分割する。上記部分は、サイズが異なってもよく、あるいは等しいサイズのものであってもよい。ホストは、部分に対するヘッダを先頭に付加すること(pre-pending)によって、データパケットを組み立てる。ヘッダは、部分に関連した部分メタデータを含むことができる。例えば、ヘッダは、パケット識別子と、部分を記憶する相対メモリ位置と、データパケットにより含まれる部分の(バイト単位における)サイズとを含んでもよい。ヘッダは、コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータを代わって含んで(あるいは、さらに含んで)もよい。例えば、プログラムメタデータは、コンピュータプログラムを集合的に形成する部分の合計数を含んでもよい。あるいは、別の例として、プログラムメタデータは、コンピュータプログラムのバイト単位における合計サイズを含んでもよい。
一実施形態において、各データパケットは、同様のフォーマット及び内容を有する。例えば、各データパケットは、部分と、関連した部分メタデータと、さらにプログラムメタデータとを含んでもよい。別の実施形態において、2つのタイプのデータパケットが存在してもよい。第1のタイプのデータパケットが、部分と関連部分メタデータとを含有してもよく、第2のタイプのデータパケットが、プログラムメタデータを含有してもよい。プロセッサPROCが、各々の連続したデータパケット内で同じプログラムメタデータを受信する必要がないとき、ホストHSTは、時おりのみ、第2のタイプのデータパケットを送信してもよい。
下記のデータパケットの例について検討する。パケット識別子は、番号であり得る。コンピュータプログラムの第1の部分を含むデータパケットが、番号1であるパケット識別子を有し得る。第2の部分を含むデータパケットが、番号2であるパケット識別子を有し得る、などする。例えば、コンピュータプログラムが500キロバイトを含み、上記500キロバイトが各々1024バイト(1kb)の500個の部分に分割されてもよく、データパケットの合計数を500にすることになる。それから、500個のデータパケットの集合は、コンピュータプログラムを集合的に含むすべての部分を集合的に含み、ゆえに、上記集合の各データパケットは、コンピュータプログラムのそれぞれの部分を含む。部分の相対メモリ位置は、プログラムメモリMPROG内の開始位置に相対した、メモリ内でのその位置を示すことができる。例えば、コンピュータプログラムの第1の部分を含むデータパケットは、相対メモリ位置0000(ゼロ)を有することがあり、コンピュータプログラムの第2の部分を含むデータパケットは、相対メモリ位置1024を有することがあり、それから、第3の部分は、メモリ位置2048に関連する等である。さらに、データパケットヘッダが例えば64バイトの固定サイズを有する場合、データパケットのサイズは1088になることに留意する。
部分は、同じサイズのものであってもよいが、サイズにおいて異なってもよい。すべての部分が同じサイズである場合、部分の相対メモリ位置は、上記サイズとそれぞれのパケット番号とに基づいて率直な方法で計算されることができる。すなわち、相対メモリ位置は、(パケット番号−1)×部分サイズとして計算される。それから、相対メモリ位置は、ヘッダ内に明示的に含まれる必要がない。別法として、上記部分は、それぞれ異なるサイズである。この場合、相対メモリ位置の計算はあまり率直でなくなり、ゆえに、ヘッダ内に相対メモリ位置を含むことが有益であり得る。
別法として、データパケットは、相対メモリ位置でなく、プログラムメモリMPROG内で部分を記憶する絶対メモリ位置を含んでもよい。それから、部分は、プログラムメモリMPROG内の絶対メモリ位置に直接記憶される。
装置DEVは、ブートメモリMBOOTを有し、ブートメモリMBOOTは、ブートローダを含む不揮発メモリであり得る。ブートローダは、装置DEVをブートするのに役立つソフトウェアを含む。装置DEVのブートは、プロセッサPROCがブートローダをアクティブメモリMACTにロードし、その後ブートローダを実行するとき、実行される。装置DEVをブートすることに対して追加で、本発明におけるブートローダは、コンピュータプログラムのインストールを実行するソフトウェア機能をさらに含む。コンピュータプログラムのインストールは、不揮発メモリであるプログラムメモリMPROGにコンピュータプログラムを記憶することを含む。
ブートローダをプロセッサPROCにより実行するとき、装置DEVは、下記のとおり動作し得る。
プロセッサPROCがブートローダを実行するとき、装置DEVは、ホストHSTにより送信されているデータパケットについて「嗅ぎ付け(スニフ)(sniffing)」を開始する。データパケットのスニフは、装置DEVが受信ユニットRCVを介してワイヤレス信号191を受信し、データパケットの存在についてワイヤレス信号を調べることを暗に示す。例えば、プロセッサは、ホストHSTからの任意のデータパケットの始まりを特色づける所定のデータシーケンスを検出することによって、データパケットを検出することができる。それから、装置DEVは、データパケット全体を受信することができる。例えば、各データパケットが所定のバイト数に制限されてもよく、したがって、プロセッサDEVは、データパケット全体を受信するためには、データパケットの上記始まりから上記所定のバイト数を受信することを必要とされる。
データパケットは、アクティブメモリMACTに書き込まれることができる。データパケットは固定のヘッダサイズを有することができ、プロセッサPROCはデータパケットからヘッダを抽出することができる。ヘッダは、部分のサイズを含んでもよく(例えば、部分は1024バイトから成る)、したがって、プロセッサPROCは、部分を含有するアクティブメモリ内のメモリ位置を決定することができる。それから、プロセッサPROCは、アクティブメモリMACTから部分を読み出すことができる。それから、プロセッサPROCは、ヘッダと部分との双方をデータパケットから抽出する。
上記の実施形態は、揮発メモリであるアクティブメモリMACTを含むが、技術的に、代わって不揮発メモリを使用することがさらに可能であり得る。現在、揮発メモリは、不揮発メモリと比較して揮発メモリからの読み出し及び揮発メモリへの書き込みがかなりより高速であるため、多くのアプリケーションに対して典型的に好まれる。しかしながら、ハードウェア革新に起因して、将来の不揮発メモリが、現在の不揮発メモリと比較してより大きい速度を有することが自然に予期される。いくつかの実施形態について、将来の不揮発メモリの速度は、アクティブメモリMACTにおける使用に対して受け入れ可能になり得る。将来の不揮発メモリを使用した実施形態の一例が、可能性として、消費者装置(consumer device)を制御するリモート制御装置である装置DEVであり得る。
データパケットの完全性を検証するために、ヘッダは、パケットチェックサムをさらに含んでもよい。プロセッサPROCは、パケットチェックサムと受信したデータパケットとが整合的であるかどうかを検証することができる。このことが当てはまらない場合、プロセッサPROCは、受信したデータパケットが壊されていると結論づけることができ、応答において、データパケットのさらなる処理を中止することができる。それから、プロセッサPROCは、別のデータパケットについてスニフすることで続行してもよい。プロセッサPROCは、上記で言及されたとおり、ヘッダから相対メモリ位置をさらに抽出してもよい。それから、プロセッサPROCは、部分を記憶するためのプログラムメモリMPROG内の絶対メモリ位置を決定してもよい。上記絶対メモリ位置は、プログラムメモリ内の所定の開始メモリ位置に対して相対メモリ位置を加算することによって決定されることができる。それから、プロセッサPROCは、プログラムメモリMPROG内の上記絶対メモリ位置に、抽出された部分を記憶する(書き込む)ことができる。
下記において、「プログラムメモリMPROG内に部分を記憶すること」は、「部分をインストールすること」ともいわれることが留意されるべきである。同様に、コンピュータプログラムは、コンピュータプログラムを集合的に形成するすべての部分がプログラムメモリMPROG内に記憶されているとき、「インストールされて」おり、各部分は、プログラムメモリMPROG内のその適切なメモリ位置に記憶される。
部分をインストールした後、又はインストールしている間、プロセッサPROCは、次のデータパケットについてスニフすることと、該次パケットについて上記の処理を繰り返すこととで続行することができる。プロセッサPROCは、コンピュータプログラムを集合的に形成するすべての部分がインストールされるまで、データパケットを受信することとそれぞれの部分をインストールすることとの処理を継続することができる。それから、装置DEVにコンピュータプログラムをインストールすることが完了される。
すべての部分の記憶の完了の決定は、下記のとおり作用し得る。プロセッサPROCは、インストールされたコンピュータプログラムのすべての部分の記録をつけることができる。下記の例について検討する。プロセッサPROCは、データパケットのヘッダから、部分の合計量が500であると決定する。ゆえに、プログラムメタデータは、500である上記合計量を含む。それから、プロセッサPROCは、各フラグがパケット番号に対応する500個のフラグのリストを維持することによって記録をつけ、対応する部分がすでにインストールされているかどうかを明示することができる。例えば、フラグ#25はパケット番号#25に対応し、部分#25がインストールされているかどうかを明示する。ゆえに、プログラムメタデータはパケット番号#25を含み、この番号がしたがって、連続した部分#1〜#500の、ランク#25の部分を表す。第1の部分をインストールする前、リストは、該リストのすべてのフラグを0(ゼロ)に設定することによって初期化される。それから、プロセッサPROCが部分を毎回インストールするたび、プロセッサPROCは、該部分の対応フラグを1(イチ)に設定する。プロセッサPROCは、上記リストのすべてのフラグが1に設定されたと決定すると、すべての500個の部分がインストールされたと決定する。
別法として、プログラムメタデータは、コンピュータプログラムにより含まれる合計バイト数を含む。プロセッサPROCは、プログラムメモリMPROGに記憶されている部分の累積バイト数の総数を保持することができる。累積バイト数が合計バイト数に合致するような最後の部分をインストールすると、プロセッサPROCは、コンピュータプログラムを集合的に形成するすべての部分がプログラムメモリMPROGに記憶されたと決定することができる。
ホストHSTは、いわゆるラウンドロビン方式(round-robin fashion)で部分を送信することができる。このことは、ホストHSTがすべての部分を周期的な仕方で送信することを暗に示す。再び、部分の合計量が500である下記の例を検討する。500個の部分は、合計数500のそれぞれのデータパケットに対応する。500個のデータパケットをラウンドロビン方式で送信することは、ホストHSTがすべての500個のデータパケットを単一のラウンドロビン期間内に連続的に送信し、それから次のラウンドロビン期間に進むことを暗に示し、これにおいて、ホストHSTは、再びになるが、すべてのデータパケットを連続的に送信する。ラウンドロビン期間内に、ホストHSTは、データパケット#1を最初送信し、それからデータパケット#2を送信し、それからデータパケット#3を送信する、などする。データパケット#500を送信した後、ホストHSTは、次の期間を、再度データパケット#1を、それからデータパケット#2を、などと送信することで開始する。
結果として、装置DEVは、同様にラウンドロビン方式で部分を受信することができ、結果として、これに応じてラウンドロビン方式でそれぞれの部分をさらにインストールすることができる。装置DEVは、ラウンドロビン期間内の任意の段階でスニフ及び受信を開始してよい。例えば、装置DEVがその第1のデータパケットを受信し、該第1のデータパケットはデータパケット#100であり、部分#100を含む。ゆえに、装置DEVが、ホストHSTにより連続的に送信される部分を受信し及びインストールする場合、装置DEVは、最初に第1のラウンドロビン期間の間に部分#100乃至#500を、それから第2のラウンドロビン期間の間に部分#1乃至#99をインストールする。
装置DEVが、何らかの理由で、第1のラウンドロビン期間の間にデータパケットを受信し及び/又はインストールすることを失敗した場合、装置DEVは、次のラウンドロビン期間の間、該データパケットを単に受信し及びインストールしてもよい。前の例で続けると、装置DEVが第1のラウンドロビン期間の間にデータパケット#200を受信することを失敗した場合、次のラウンドロビン期間は、下記のとおり進むことになる:装置DEVが(上記のとおり)部分#1乃至#99をインストールし、それから部分#100乃至#199をスキップし、最後、部分#200を受信し、インストールする。
図1bは、複数のスモールメモリ装置110〜113を含むシステム199を例示している。システム199は、実際、システム100と3つのさらなる(スモールメモリ)装置111〜113とを含む。ラウンドロビン方式で部分をインストールすることは、複数の装置110〜113を有するシステム199において特に有用である。複数の装置110〜113の各々は、データパケットの受信を、ラウンドロビン期間の(又は、その事項についての次のラウンドロビン期間の)異なる段階において開始することができる。しかしながら、複数の装置110〜113の各々は、同じ単一のホストHSTから同じデータパケットを同時に受信し、その後、それぞれの同じ部分をインストールしてもよい。システム100又はシステム199に対して追加され得る(スモールメモリ)装置の量に対して、装置の各々が並列にホストHSTから部分を受信し及びインストールするとき、制限はない。唯一の要件は、複数の装置の各々が、ホストHSTにより送信されるデータパケットを受信するように、ホストHSTの範囲内であることである。このことは、装置の大きいグループである複数の装置へのコンピュータプログラムのインストールをスピードアップするという意味において大きな利益を提示する。
図2aは、コンピュータプログラムのラウンドロビンインストールの間のホストメモリMHST200と2つのプログラムメモリMPROG1 210及びMPROG2 220とを例示している。プログラムメモリMPROG1及びMPROG2は、それぞれ、2つのスモールメモリ装置DEV1及びDEV2のメモリである。ホストメモリMHSTは、ホストHSTのメモリである。ホストメモリMHSTは、(8個の)部分A〜Hの形式のコンピュータプログラムを、それぞれのメモリ位置201〜208に含有する。部分A〜Hは、コンピュータプログラムを集合的に形成する。ホストHSTは、部分A〜Hをラウンドロビン方式で送信することができる。それから、装置DEV1及びDEV2は、ホストHSTからの部分をそれぞれのプログラムメモリMPROG1及びMPROG2内に受信し、インストールすることができる。
ホストHSTは、ホストメモリMHSTのメモリ位置203に現在の読み出し位置を有する。現在の読み出し位置は、ポインタCURR0によって示される。ホストHSTは、部分Cを読み出し、部分Cと相対メモリ位置(を有するヘッダ)とを含有するデータパケットを組み立て、このデータパケットを送信ユニットSNDを介して送信する。
装置DEV1は、データパケットを受信し、(a)部分と(b)相対メモリ位置とを抽出する。装置DEV1は、その開始メモリ位置211に相対メモリ位置を加算することによって絶対メモリ位置213を決定する。例えば、開始メモリ位置が値128を有し、相対メモリ位置が値2048を有し、したがって、絶対メモリ位置の値は2176になる。結果として、装置DEV1はその現在の書き込み位置を、ポインタCURR1により示される絶対メモリ位置に設定し、それから、プログラムメモリMPROG1のメモリ位置213に部分Cを記憶する(書き込む)。装置DEV2は、同様の処理を実行する。すなわち、装置DEV2は、データパケットを受信し、(絶対)メモリ位置223を決定し、メモリ位置223に部分Cを記憶する。ポインタCURR2は、装置DEV2の現在の書き込み位置を示す。
ホストHSTは、矢印260により示されるとおり、ラウンドロビン方式で部分を送信する。この例において、ホストHSTは、部分Cをちょうど送信したところである。ゆえに、ホストHSTにより送信されるべき次の部分は、部分Dであることになり、その後、部分Eなどである。部分Hを送信した後、それから、ホストHSTは、再度部分Aを送信することで続行することになる。
DEV1が最初スニフを開始した後、ホストHSTが、同じラウンドロビン期間内の現在の部分Cを送信するほんの直前に、部分Bを送信した。したがって、装置DEV1は、部分Bを含むデータパケットを最初検出し、結果として、部分Bが、DEV1によりインストールされる最初の部分である。この例において、装置DEV1は、目下、部分B及びCをインストールし終えている。ポインタSTART1は、第1の部分が装置DEV1によってメモリ位置212に記憶されることを示している。プログラムメモリMPROG1内のパターンフィルされたエリアは、部分B及びCがメモリ位置212及び213それぞれに記憶されていることを示す。矢印261は、装置DEV1が部分を順序B、Cにおいてインストールしたことを示す。
DEV2は、ホストHSTが部分Gを送信する直前、前のラウンドロビン期間の間にスニフを最初開始している。したがって、装置DEV2は、部分Gを含むデータパケットを最初検出し、結果として、部分Gが、DEV2によりインストールされる最初の部分である。この例において、装置DEV2は、目下、部分G、H、A、B、及びCをインストールし終えている。ポインタSTART2は、装置DEV2がその第1の部分をメモリ位置227に記憶したことを示している。プログラムメモリMPROG2内のパターンフィルされたエリアは、部分G、H、A、B、及びCがメモリ位置227、228、221、222、及び223それぞれに記憶されていることを示す。矢印262は、DEV2が部分を順序G、H、A、B、Cにおいてインストールしたことを示す。
DEV1は依然として、「残りの(to go)」6つの部分を有し、ゆえにDEV1は依然として、すべての部分A〜Hのインストールを完了するために、部分D〜H及びAをインストールする必要がある。DEV2は、「残りの」部分を3つだけ有し、ゆえにDEV2は依然として、すべての部分A〜Hのインストールを完了するために、部分D〜Fをインストールする必要がある。装置DEV1及びDEV2が双方、ラウンドロビン方式でホストHSTにより送信される次の部分を受信し及びインストールする場合、DEV2は、すべての部分のインストールを、DEV1が完了する前に完了することになる。図2bは、コンピュータプログラムのインストールを完了したプログラムメモリMPROG1及びMPROG2を例示している。メモリMPROG1及びMPROG2の双方が、それぞれのメモリ位置211〜218と221〜228とにそれぞれ、すべての部分A〜Hを含む。
図2cは、コンピュータプログラムの別のラウンドロビンインストールの間の、2つのプログラムメモリMPROG1 210及びMRPOG2 220とホストメモリMHST200とを例示している。図2cにおいて、ホストHSTとそのホストメモリMHSTとは、図2aのものと同一である。図2aの状況との差は、装置DEV1及びDEV2がその開始メモリ位置211及び221それぞれで、部分の記憶を開始していることである。装置DEV1及びDEV2は、そのそれぞれのプログラムメモリMPROG1及びMPROG2内の連続的なメモリ位置に、連続的な部分を、該部分を受信した順序に従って記憶する。ゆえに、装置DEV1は、次の部分D〜H及びAを、それぞれの連続的なメモリ位置213〜218に記憶する。同様に、装置DEV2は、連続的な部分D〜Fを、それぞれの連続的なメモリ位置225〜228に記憶する。すべての部分A〜Hを記憶した後、装置DEV1及びDEV2は、後に、そのそれぞれのプログラムメモリMPROG1及びMPROG2内の部分を、該部分の順序が図2bに従ったものになるように再順序付けする。
図2dは、コンピュータプログラムのすべての部分を記憶した後、かつ部分を再順序付けする前の、2つのプログラムメモリMPROG1及びMPROG2を例示している。装置DEV1は、そのメモリ内にすべての部分A〜Hが記憶されていると決定すると、プログラムメモリMPROG1内に部分A〜Hが図2bに表されたとおり記憶されるように、部分を再順序付けする。同様に、装置DEV2は、そのメモリ内にすべての部分A〜Hが記憶されていると決定すると、プログラムメモリMPROG2内に部分A〜Hが図2bに表されたとおり記憶されるように、部分を再順序付けする。
図2cにおいて、装置DEV1及びDEV2は、図2aとは別様に、部分を記憶する絶対メモリ位置を決定する。例えば、第1の部分Bについて、装置DEV1は、部分Bを記憶するための絶対位置が開始メモリ位置211であると決定する。次の部分Cを受信した後、装置DEV1は、部分Cを記憶するための絶対メモリ位置が次のメモリ位置、メモリ位置212であると決定する。同様に、次の部分D〜H及びAが、次のメモリ位置213〜218にそれぞれ記憶される。装置DEV1は、パケット番号と、部分がプログラムメモリMPROG1に記憶されている順序を表すそれぞれのメモリ位置とのリストを維持することができる。この場合、上記リストは、部分が(図2dに示されるとおり)順序B、C、D、E、F、G、H、Aにおいて記憶されていると示す。上記リスト内の情報に基づいて、装置DEV1は、それから、部分Aをメモリ位置218からメモリ位置211に移動し、部分Bをメモリ位置211からメモリ位置212に移動し、部分Cをメモリ位置212からメモリ位置213に移動する、などすることができる。
ホストHSTが部分をラウンドロビン方式で送信する順序は、典型的に、上記で説明されたとおりである。ラウンドロビン期間内に部分を送信する典型的順序は、A、B、C、D、E、F、G、Hである。別法として、部分を送信する順序は、上記の典型的順序とは異なってもよい。例えば、順序が反対にされ、あるいはランダム化されてもよい。例えば、順序のランダム化の結果として、ホストがあるラウンドロビン期間内に順序E、D、A、C、G、B、H、Fにおいて部分を送信することがあり、ホストが別のラウンドロビン期間内に別の順序B、F、G、E、D、H、C、Aにおいて部分を送信することがある。
コンピュータプログラムのインストールは、様々な方法において始動され得る。例えば、ブートローダが実行されているとき、ブートローダが装置DEVにデータパケットのスニフを開始させてもよい。ブートローダは、所定のタイムアウト期間を有してもよく、したがって、スニフを開始した後、上記タイムアウト期間内にデータパケットが検出されないとき、装置DEVはスニフを中止し、装置DEVのブートを進める。対照的に、データパケットが上記タイムアウト期間内に検出される場合、装置DEVは、データパケットにより含まれる部分をインストールし、次のデータパケットについてスニフを開始する。
別の例として、ブートローダは、装置DEVに、正当なコンピュータプログラムがプログラムメモリMPROG内に記憶されているかどうかを検証させてもよく、正当なコンピュータプログラムがインストールされていないと決定するとスニフを開始してもよい。別の例として、ブートローダは、装置DEVに、装置を動作するためのいかなるコンピュータプログラムもプログラムメモリMPROG内に記憶されているかどうかを検証させてもよい。装置DEVは、コンピュータプログラムがインストールされていないと決定すると、プログラムメモリが「空」である(例えば、ゼロのみで埋められている)と決定すると、スニフを開始してもよい。
別の例として、ブートローダは、装置DEVに、インストールフラグがインストール状態に設定されていると検出するとスニフを始動させてもよい。インストールフラグがインストール状態に設定されているとき、このことは、コンピュータプログラムのインストールが必要とされることを表す。インストールフラグが非インストール状態に設定されているとき、このことは、コンピュータプログラムのインストールが必要とされないことを表す。インストールフラグは、装置DEVの一部であり得る。インストールフラグは、外部入力に応答してインストール状態に設定されてもよい。例えば、装置DEVがリモート制御装置である場合、外部入力がリモート制御装置に所定コードを打ち込むユーザにより提供されて、リモート制御装置に(a)インストールフラグをインストール状態に設定することと、(b)リブートを行うことと、を実行させることができる。上述されたとおり、それから、装置DEVは、(リ)ブートの間にインストールフラグがインストール状態に設定されていると検出し、応答において、データパケットのスニフを開始する。コンピュータプログラムのインストールを完了すると、装置DEVは、インストールフラグを非インストール状態に設定することができる。別法として、外部入力が、インストールフラグを表す装置DEV上の手動スイッチを介して提供されてもよい。ユーザは、手動スイッチを第1の位置又は第2の位置に手動で設定することができる。第1の位置がインストール状態に対応してもよく、第2の位置が非インストール状態に対応してもよい。
本発明の文脈において、装置DEVが「データパケットのスニフを開始する」とき、このことは、装置DEVがコンピュータプログラムのインストールを開始したことを暗に示し、コンピュータプログラムをインストールしたことは、コンピュータプログラムがプログラムメモリMPROG内に記憶されていることを暗に示すことが留意されるべきである。
セキュリティの目的で、データパケットは暗号化を含んでもよい。例えば、ホストHSTは、コンピュータプログラムの部分を暗号化し、ヘッダと暗号化された部分とを用いてデータパケットを組み立ててもよい。装置DEVは、データパケットを受信し、データパケットから暗号化された部分を抽出し、暗号化された部分を解読することによって部分を取得することができる。暗号化は、装置DEV又は同様の装置のみが部分を受信し及びインストールし得ることを確保することができる。
一実施形態において、装置DEVは、リモート制御装置を生産する生産設備内のリモート制御装置である。生産設備は、様々な生産ステートにおけるリモート制御装置を有する生産ラインを含み得る。ラインの終わりにおいて、各リモート制御装置は、最新のファームウェアのインストールを必要とする。図1bにより概略的に例示されたのと同様の設定において、ホストHSTは、該ホストHSTにより送信されるデータパケットを複数のリモート制御装置が受信することができるように、生産ラインの付近にある。ホストHSTは、例えば、データパケットを送信するパーソナルコンピュータ又は何らかの専用装置であり得る。生産設備内の他の機器との干渉のリスクを最小化するために、ホストHST及びリモート制御装置は、他の機器によって使用されていない通信又は周波数バンドを使用してもよい。しかしながら、複数のリモート制御装置間における相互干渉は問題でなく、なぜならば、複数のリモート装置は、同じホストHSTから並列にデータパケットを単に受信しており、受信するからである。
一実施形態において、装置DEVは、コンピュータプログラムのインストールを完了するとフィードバックを提供するインジケータを有する。例えば、装置DEVは、上記完了において点灯するLEDを有する。一変形として、上記LEDが、その色を上記完了において赤から緑に変える。別の例として、装置DEVは、上記完了において通知又は警告を生成するスピーカーを有する。別の例として、装置DEVは、上記完了において振動する手段を有してもよい。
一実施形態において、装置DEVは、ワイヤレスに制御可能であるランプ、例えば、フィリップスにより生産される「ヒューパーソナルワイヤレスライティング(Hue Personal Wireless Lighting)」製品などである。ランプのライティング特性が、中央制御ボックスによって制御されることができ、あるいはランプは、スマートフォンによって直接制御されることができる。中央制御ボックスが、上記で説明されたとおりのホストHSTを含んでもよい。ユーザは、明るさ、色相、及び/又は彩度を、各ランプについて別個に、又はすべてのランプについて連帯的に制御したいことがある。典型的に、リビングルームが、複数のこうしたワイヤレス制御可能ランプを有するであろう。中央制御ボックスが、新しいファームウェアが複数のランプについて利用可能であると検出することができるとき、中央制御ボックスは、下記のとおりファームウェアアップグレードを始動させることができる。中央制御ボックスは、新しいファームウェアのバージョン番号を各ランプに送信し、応答において、各ランプは、新しいファームウェアの上記バージョン番号がそのインストールされたファームウェアに合致するかどうかを確認する。複数のランプのうちの一ランプが、該ランプのファームウェアが最新でないと検出する場合、このランプは、中央制御ボックスに、新しいファームウェアのインストールを始動することになると返信することができる。すなわち、このランプは、そのインストールフラグを「インストール状態」に設定し、リブートを実行する。リブートすると、上記ランプはそれから、中央制御ボックスからのデータパケットについてスニフを開始する。同様に、古いファームウェアを同様に有する他のランプが同じことを行い、並列に、さらにリブートし、新しいファームウェアのインストールを始動させてもよい。中央制御ボックスが少なくとも1つのランプから、新しいソフトウェアのインストールを始動させることを受信したとき、中央制御ボックスは、新しいファームウェアを、例えば製造業者のウェブサイトからダウンロードする。それから、中央制御ボックスは、新しいファームウェアを含むデータパケットの送信を開始する。上記ランプは、それから、中央制御ボックスにより送信されるデータパケットを検出し及び受信し、本発明に従うファームウェアのインストールを開始する。
前の実施形態の一変形として、新しいランプが、リビングルーム内の上記複数のランプに対して追加されることがあり、そのファームウェアが最新であるかどうかを確認することがある。新しいランプは、アーマチュア(armature)内に取り付けられ、ゆえに、このアーマチュアを介して電気的に電力供給される。電力供給されると、新しいランプは、中央制御ボックスとワイヤレスに連絡することができる。前の実施形態と同様の方法で、中央制御ボックスは、複数のランプのうちの他のランプにインストールされている最新のファームウェアを通信し、新しいランプのファームウェアが最新でない場合、中央制御ボックスと新しいランプとは、本発明に従う新しいファームウェアのインストールを開始する。
一実施形態において、小売店が、メディアプレーヤである複数のスモールメモリ装置を有する。小売商は、ショップフロアですべてのメディアプレーヤに最新のファームウェアをインストールしたいことがある。小売商は、ホストHSTとして機能するように配置されたスマートフォンを有する。最新のファームウェアは、スマートフォン上にダウンロードされることができ、スマートフォンは、ラウンドロビン方式でコンピュータプログラムの部分の送信を開始することができる。メディアプレーヤに電力供給することによって、メディアプレーヤはリブートし(ゆえに、ブートローダを実行し)、それからブートローダの一部としてスニフを始動させ、その後、上記部分を受信し及びインストールすることができる。スマートフォンがラウンドロビン方式で部分を送信し続けるとき、メディアプレーヤは1つずつ電力供給されてもよく、各メディアプレーヤは、ラウンドロビン期間のうち異なる段階において、及び/又は異なるラウンドロビン期間内でさえ、ファームウェアのインストールを始動させることができる。ゆえに、それぞれのメディアプレーヤのインストールは同期的である必要がなく、このことは、手順全体を実用的にする。上記のファームウェアを更新する手順は、そのワイヤレスの及び自動的な性質のため、簡便である。さらに、上記手順は、メディアプレーヤ上のファームウェアの更新が並列に行われるため、高速でもある。
装置DEVは、本発明に従う任意のスモールメモリ装置であり得る。多くのこうした装置が、現今、例えば、ホーム環境内、医療環境内、又は車の中の、他の装置に接続する無線能力を有する。ゆえに、装置は相互接続されることができ、例えば、互いに、及び/又は装置のローカルネットワーク内のユーザと、及び/又はインターネットと相互作用することができる。スモールメモリ装置DEVの例は、リモート制御装置、ワイヤレス制御可能ランプ(例えば、上記のもの)、メディアプレーヤ、ポータブルメディアプレーヤ、電子玩具、デジタルウォッチ、キッチン電化製品、冷蔵庫又はオーブンなどのキッチン装置、及びウェアラブル電子装置である。装置DEVは、医療目的の装置、例えば、血液飽和計測器、ウェアラブル心拍モニタ、又は、患者の生理学的又は身体的パラメータを監視する別のスモールメモリ装置などであり得る。さらに別の例として、装置DEVは、ワイヤレスに制御可能なデジタルタグ、例えば、個人識別のための名前タグとして、又は小売店で価格を示す価格タグとしての役割を果たすデジタルタグであり得る。
ホストHST及び装置DEVにより使用されるワイヤレステクノロジーは、任意の適切なワイヤレステクノロジー、例えば、RF4CE Zigbee、WiFi(登録商標)、又はペアリングを必要としないBlueTooth(登録商標)の一変形などであり得る。本発明の利益は、ブートローダによるコンピュータプログラムのインストールがいわゆるMACレベルで作用し得るものであり、ゆえにブートローダ内にRF4CEソフトウェアスタックを必要としないという意味で、ブートローダがとても簡素であり得ることであることが留意されるべきである。
プログラムメモリMPROGは、該プログラムメモリMPROGがコンピュータプログラムとさらにコンピュータプログラムのコピーとの双方を同時に含有するのに不十分なサイズであるという意味で小さい(スモールな)ものであり得ることが上記で言及されている。しかしながら、本発明は、明らかに、プログラムメモリMPROGがコンピュータプログラムと上記コピーとの双方を含有するのに十分なサイズであるようにプログラムメモリMPROGが大きいとき、同様に作用することになる。一実施形態において、プログラムメモリMPROGは実際大きく、しかしそれにかかわらず、プログラムメモリMPROGのうち小さい一部のみ利用可能であることがあり、なぜならば、残りが他の目的に使用されるためである。
ホストHSTは、データパケットを組み立てる命令を含むソフトウェアを実行することができる。このソフトウェアは、コンピュータプログラム製品、例えば、CD−ROM又はソリッドステートメモリなどに具現化されることができる。コンピュータプログラム製品は、命令がプロセッサにより実行されるときにホストHSTのプロセッサに下記のステップを実行させる該命令を含み得る:コンピュータプログラムから部分を決定するステップ、部分に関連した部分メタデータを決定するステップ、及び、部分と部分メタデータとを含むデータパケットを組み立てるステップ。
図3は、スモールメモリ装置DEVにコンピュータプログラムをインストールする方法300を例示している。方法300は、ステップ301〜305を含む。ステップ301は、複数のデータパケットのうちのデータパケットを検出することを含み、該検出することは、上記データパケットを受信することの一部である。ステップ302は、上記データパケットから、(a)コンピュータプログラムの部分、及び該部分に関連した部分メタデータと、(b)コンピュータプログラムを集合的に形成する部分の集合に関連したプログラムメタデータと、のうち少なくとも1つを抽出することを含む。ステップ303は、上記部分メタデータに基づいてプログラムメモリ内のメモリ位置を決定することを含む。ステップ304は、プログラムメモリ内に記憶されている抽出された部分を表す進捗情報を維持することを含む。ステップ305は、進捗情報とプログラムメタデータとに基づいて部分の集合の記憶の完了を決定することを含む。方法300は、システム100において及び装置100によって実行され得るステップと整合する。
方法300は、コンピュータプログラム製品に具現化されてもよい。上記コンピュータプログラム製品は、命令を含むブートローダを含み、ブートローダは、該ブートローダがプロセッサPROCにより実行されるとき、プロセッサPROCに方法300を実行させる。コンピュータプログラム製品は、例えば、CD−ROM又はソリッドステートメモリであり得る。上述された実施形態は、本発明を限定するのでなく例示していることと、別記の特許請求の範囲から逸脱することなく、多くの代替的な実施形態を当業者が設計可能であろうこととが留意されるべきである。本発明に係る上述された実施形態、実装、及び/又は態様のうち2つ以上が、有用と思われる任意の方法で組み合わせられてもよいことが当業者により十分理解されるであろう。
システム、装置、ホスト装置、方法、又はコンピュータプログラム製品の修正及び変形は、説明された、監視サブシステムの修正及び変形に対応し、本説明に基づいて当業者により実行されることができる。
請求項において、丸括弧の間に置かれたいかなる参照符号も、請求項を限定するものとみなされるべきではない。動詞「含む」及びその活用の使用は、請求項に明示された要素又はステップ以外の要素又はステップの存在を除外するものではない。要素の前にある冠詞「一の(a,an)」は、複数のこうした要素の存在を除外するものではない。本発明は、いくつかの区別可能な要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実装されることができる。いくつかの手段を列挙する装置(又はシステム)クレームにおいて、上記手段のうちいくつかが、1つの及び同じアイテムのハードウェアによって具現化されてもよい。特定の方策が相互に異なる従属請求項に記載されているという単なる事実は、こうした方策の組み合わせが利益をもたらすのに使用され得ないことを示すものではない。
本発明は、独立請求項内に定義される。有益な、しかし任意的な実施形態が、従属請求項内に定義される。

Claims (6)

  1. コンピュータプログラムの最新バージョンを複数のスモールメモリ装置に、該スモールメモリ装置の生産の間にインストールするシステムであって、
    (a)当該システムはホスト装置を含み、前記ホスト装置はホストプロセッサ及びワイヤレス送信ユニットを含み、前記ホスト装置は、
    ‐ 前記最新バージョンの最新バージョン番号を各スモールメモリ装置にワイヤレスにブロードキャストし、
    ‐ 前記スモールメモリ装置のうち少なくとも1つから少なくとも1つのインストール始動通信をワイヤレスに受信し、
    ‐ 少なくとも1つのインストール始動通信を受信すると、前記最新バージョンのそれぞれの部分を含む複数のデータパケットを配置し、前記データパケットをワイヤレスに送信する
    ように構成され、
    (b)各スモールメモリ装置は、
    現在バージョン番号を有する前記コンピュータプログラムの現在バージョンを含有するためのメモリであるプログラムメモリと、
    前記スモールメモリ装置をブートするように配置されたブートローダを含むブートメモリと、
    ‐ 前記コンピュータプログラムの前記現在バージョンを実行し、前記ブートローダを別個に実行するプロセッサと、
    前記ホスト装置からワイヤレスに受信する受信ユニットと、
    含み
    ‐ 前記コンピュータプログラムの前記現在バージョンの実行の間、前記スモールメモリ装置は、前記ホスト装置から前記最新バージョン番号を受信し、前記現在バージョン番号が前記最新バージョン番号との間で最新であるかを決定し、前記現在バージョン番号が最新でない場合、
    ‐ 前記スモールメモリ装置は、前記スモールメモリ装置をリブートすると前記スモールメモリ装置が前記コンピュータプログラムの前記最新バージョンのインストールを始動することになることを前記ホスト装置に返信し、
    ‐ 前記スモールメモリ装置は、インストール状態フラグを設定し、
    ‐ 前記スモールメモリ装置は、前記リブートを開始し、
    前記ブートローダの実行の間前記ホスト装置から、(i)前記コンピュータプログラムの前記最新バージョンと、(ii)前記コンピュータプログラムの前記最新バージョンに関連したプログラムメタデータと、を含む複数のデータパケットを受信し、前記ブートローダは
    データパケットを検出することであって、該検出することはデータパケットを受信することの一部である、ことと、
    ‐ 前記データパケットから、前記コンピュータプログラムの前記最新バージョン前記プログラムメタデータとを抽出することと、
    ‐ 前記プログラムメタデータに基づいて前記コンピュータプログラムの前記最新バージョンを前記プログラムメモリに記憶し、完了すると、前記インストール状態フラグを再設定し、前記最新バージョンの成功裏のインストールのインジケータを提供することと、
    のステップにより前記コンピュータプログラムの前記最新バージョンをインストールするようにさらに配置され、
    ‐ 前記プログラムメモリは、前記コンピュータプログラムを含有するのに十分なサイズであり、前記コンピュータプログラムと前記コンピュータプログラムのさらなるコピーとの双方を含有するのに不十分なサイズである、システム
  2. 前記ブートローダは、ラウンドロビン方式でデータパケットの集合を受信するように配置され、データパケットの前記集合は単一のラウンドロビン期間内に送信され、前記ブートローダは、前記単一のラウンドロビン期間が連続的に繰り返すことに基づいて前記単一のラウンドロビン期間の任意の段階でデータパケットの前記集合の受信を開始する
    請求項1に記載のシステム
  3. 前記ブートローダは、前記検出を始動した後、所定のタイムアウト期間内に前記データパケットを検出しないと、インストールを中止するように配置される、
    請求項1に記載のシステム
  4. 前記ブートローダは、前記データパケットを解読するように配置される、
    請求項1に記載のシステム
  5. 前記スモールメモリ装置は、リモート制御装置、ワイヤレス制御可能ランプ、メディアプレーヤ、電子玩具、キッチン電化製品、ウェアラブル電子装置、及び医療装置のうち1つにおいて具現化される、請求項1に記載のシステム
  6. 前記最新バージョンの成功裏のインストールの前記インジケータは、LEDの色の変化、サウンド警告、又は振動である、請求項1に記載のシステム。
JP2016571403A 2014-06-11 2015-06-10 スモールメモリ装置にソフトウェアをインストールするシステム Active JP6660311B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14171873.4 2014-06-11
EP14171873.4A EP2955629B1 (en) 2014-06-11 2014-06-11 System for installing new firmware on a small-memory device
PCT/SG2015/000130 WO2015190998A2 (en) 2014-06-11 2015-06-10 System for installing software on a small-memory device

Publications (2)

Publication Number Publication Date
JP2017518583A JP2017518583A (ja) 2017-07-06
JP6660311B2 true JP6660311B2 (ja) 2020-03-11

Family

ID=50972467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571403A Active JP6660311B2 (ja) 2014-06-11 2015-06-10 スモールメモリ装置にソフトウェアをインストールするシステム

Country Status (7)

Country Link
US (1) US10642591B2 (ja)
EP (1) EP2955629B1 (ja)
JP (1) JP6660311B2 (ja)
KR (1) KR102400681B1 (ja)
CN (1) CN106462416B (ja)
TW (1) TWI560546B (ja)
WO (1) WO2015190998A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100340A1 (en) * 2013-12-26 2015-07-02 Tandem Diabetes Care, Inc. Safety processor for wireless control of a drug delivery device
US9737656B2 (en) 2013-12-26 2017-08-22 Tandem Diabetes Care, Inc. Integration of infusion pump with remote electronic device
US20210132932A1 (en) * 2017-08-15 2021-05-06 General Electric Company Smart equipment, method used by smart equipment, and smart lamp
CN110083381B (zh) * 2018-01-26 2023-04-28 启碁科技股份有限公司 增量升级的方法及装置
CN111143232B (zh) * 2018-11-02 2023-08-18 伊姆西Ip控股有限责任公司 用于存储元数据的方法、设备和计算机可读介质

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503533A (en) * 1981-08-20 1985-03-05 Stanford University Local area communication network utilizing a round robin access scheme with improved channel utilization
JPH03265953A (ja) * 1990-03-15 1991-11-27 Fujitsu Ltd 端末装置への制御プログラムのダウンロード制御方式
US6269398B1 (en) * 1993-08-20 2001-07-31 Nortel Networks Limited Method and system for monitoring remote routers in networks for available protocols and providing a graphical representation of information received from the routers
US5828887A (en) * 1996-05-23 1998-10-27 Electronic Data Systems Corporation Network based program loader system and method of operation
US6252880B1 (en) * 1997-11-10 2001-06-26 Advanced Micro Devices, Inc. Apparatus and method for selectively supplying a data packet to a selected network node in a buffered distributor
JP3813769B2 (ja) * 1998-08-03 2006-08-23 松下電器産業株式会社 制御プログラム送信方法及び制御プログラムダウンロード方法
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
JP2001274721A (ja) * 2000-03-27 2001-10-05 Sharp Corp 無線端末のファームウェア書換え方法
US7031267B2 (en) * 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
US20020083331A1 (en) * 2000-12-21 2002-06-27 802 Systems, Inc. Methods and systems using PLD-based network communication protocols
US7055146B1 (en) * 2001-03-08 2006-05-30 Microsoft Corporation Method and system for dynamically inserting modifications for identified programs
JP4827310B2 (ja) * 2001-03-30 2011-11-30 パナソニック株式会社 リモートプログラムダウンロードシステム
WO2002084484A2 (en) * 2001-04-18 2002-10-24 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US7065347B1 (en) * 2001-06-27 2006-06-20 Peoplenet Communications Corporation System and method for over the air programming
KR20040022451A (ko) * 2001-07-16 2004-03-12 유킹 렌 임베디드 소프트웨어 업데이트 시스템
US20030028870A1 (en) * 2001-08-01 2003-02-06 Weisman Mitchell T. Distribution of downloadable software over a network
JP2003108398A (ja) * 2001-09-28 2003-04-11 Seiko Epson Corp プログラム書換方法およびプログラム書換装置並びに情報処理装置
KR20030032257A (ko) * 2001-10-17 2003-04-26 삼성전자주식회사 프로그램 갱신 방법 및 이에 적합한 장치
US7433472B2 (en) * 2001-12-19 2008-10-07 Irdeto Access B.V. Digital content distribution system
US20040098715A1 (en) * 2002-08-30 2004-05-20 Parixit Aghera Over the air mobile device software management
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US7287068B1 (en) * 2002-12-13 2007-10-23 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US7171606B2 (en) * 2003-03-25 2007-01-30 Wegener Communications, Inc. Software download control system, apparatus and method
JP2005050097A (ja) * 2003-07-28 2005-02-24 Sony Corp 情報処理装置、情報処理方法、プログラム、記録媒体
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050102667A1 (en) * 2003-11-10 2005-05-12 International Business Machines (Ibm) Corporation Generating summaries for software component installation
US20050102666A1 (en) * 2003-11-10 2005-05-12 International Business Machines (Ibm) Corporation Pre-deployment component hosting environment analyzer
US7926051B2 (en) * 2003-11-10 2011-04-12 International Business Machines Corporation Automatic parallel non-dependent component deployment
US8713295B2 (en) * 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
TW200713037A (en) * 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
US7903267B2 (en) * 2005-11-02 2011-03-08 Kyocera Mita Corporation Automatic installation system for printer driver, and program recording medium
JP4934885B2 (ja) * 2006-03-31 2012-05-23 オンキヨー株式会社 Avシステム、ソース機器及び受信機器
US8010638B2 (en) * 2007-04-05 2011-08-30 Alpine Electronics, Inc. Method and apparatus for updating firmware for interface unit connecting portable audio/video player with another audio/video player
JP4992587B2 (ja) * 2007-07-18 2012-08-08 船井電機株式会社 電子機器
JP2009077125A (ja) * 2007-09-20 2009-04-09 Sony Corp 受信システム、受信装置、制御装置及び方法、並びにプログラム
US8359373B2 (en) * 2008-02-06 2013-01-22 Broadcom Corporation Handheld computing unit of a computing device with an extended computing unit
JP5145074B2 (ja) * 2008-02-21 2013-02-13 京セラドキュメントソリューションズ株式会社 プログラム配信システム、プログラム配信サーバ装置および情報処理装置
KR101498054B1 (ko) * 2008-09-12 2015-03-03 엘지전자 주식회사 무선 네트워크에서의 통신 수행 방법
JP2010092297A (ja) * 2008-10-08 2010-04-22 Olympus Corp 分散制御装置およびプログラム書換方法
JP5289003B2 (ja) * 2008-11-17 2013-09-11 エイチジーエスティーネザーランドビーブイ ディスク・ドライブ及びそのプログラムの変更方法
TW201027324A (en) * 2009-01-14 2010-07-16 Giga Byte Tech Co Ltd Embedded electronic device free from being stuck in update failure and method of making the same
JP2010198155A (ja) * 2009-02-24 2010-09-09 Fujitsu Ten Ltd プログラム更新装置、プログラム更新方法、及び情報処理装置
TW201035870A (en) * 2009-03-20 2010-10-01 Chi Mei Comm Systems Inc System and method for dynamically loading data of a mobile phone
CN102449975A (zh) * 2009-04-09 2012-05-09 诺基亚公司 用于媒体文件流式传输的系统、方法和装置
TW201102924A (en) 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
JP5278222B2 (ja) * 2009-07-22 2013-09-04 富士通株式会社 無線通信装置、無線通信方法および無線通信プログラム
US8752039B1 (en) * 2009-08-19 2014-06-10 Juniper Networks, Inc. Dynamic upgrade of operating system in a network device
WO2011097471A1 (en) * 2010-02-04 2011-08-11 Johnson Controls Technology Company System and method for wireless re-programming of memory in a communication system
JP2011257954A (ja) * 2010-06-08 2011-12-22 Sony Corp 更新管理サーバ、電子機器、更新管理システム及びその方法
KR20120041384A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
JP2012093961A (ja) * 2010-10-27 2012-05-17 Omron Automotive Electronics Co Ltd 制御装置及び方法、並びにプログラム書込システム
JP2012230474A (ja) * 2011-04-25 2012-11-22 Japan Radio Co Ltd プログラム更新システム、及びプログラム更新方法
KR20140068867A (ko) * 2011-07-08 2014-06-09 오픈픽 아이엔씨. 부팅 프로세스 동안 구성요소들을 인증하기 위한 시스템 및 방법
US20130024850A1 (en) * 2011-07-18 2013-01-24 Honeywell International Inc. Systems, methods and apparatus for fast file transfer
US9084313B2 (en) * 2012-02-15 2015-07-14 Anycomm Corporation Smart bulb system
US8805990B2 (en) * 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
CN102946599B (zh) * 2012-11-08 2016-08-17 惠州Tcl移动通信有限公司 实现移动终端应用程序下载的方法及移动终端
US8781502B1 (en) * 2013-02-01 2014-07-15 Swirl Networks, Inc. Systems and methods for display of supplemental content responsive to location
KR101515198B1 (ko) * 2013-04-10 2015-05-11 주식회사 팬택 모바일 단말의 펌웨어 업그레이드 장치 및 방법
US9342316B1 (en) * 2013-12-12 2016-05-17 American Megatrends, Inc. Installing digital signage device operating system from flash memory and registering signage device to a global network
US20150170136A1 (en) * 2013-12-18 2015-06-18 PayRange Inc. Method and System for Performing Mobile Device-To-Machine Payments

Also Published As

Publication number Publication date
TWI560546B (en) 2016-12-01
US10642591B2 (en) 2020-05-05
TW201610679A (zh) 2016-03-16
EP2955629A1 (en) 2015-12-16
WO2015190998A2 (en) 2015-12-17
WO2015190998A3 (en) 2016-02-25
CN106462416A (zh) 2017-02-22
KR102400681B1 (ko) 2022-05-23
EP2955629B1 (en) 2021-10-27
CN106462416B (zh) 2020-08-25
JP2017518583A (ja) 2017-07-06
KR20170041687A (ko) 2017-04-17
US20170083304A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
JP6660311B2 (ja) スモールメモリ装置にソフトウェアをインストールするシステム
US8826261B1 (en) Programming processors through CAN interface without changing the boot mode select pins
US9000896B1 (en) Network addressable appliance interface device
EP3110179B1 (en) A service providing method using a beacon and electronic apparatus thereof
JP5539354B2 (ja) ホームコントロールシステムのリモートコントローラにおけるシーンの更新
US10463956B2 (en) Device for transmitting game application program and resource file between smart devices, application program, and transmission method therefor
WO2017161947A1 (zh) 多系统ota升级方法和多系统设备
JP2010258973A (ja) 遠隔制御装置、通信装置、遠隔制御方法及びプログラム
US20160227474A1 (en) Multi-device network setup
EP3197094B1 (en) Software upgrading method and device
EP3066564B1 (en) Software distribution architecture for hardware devices
US11876676B2 (en) Network node firmware update
JPWO2019207729A1 (ja) 産業用コンピュータ、産業用コンピュータシステム、オペレーティングシステム更新方法及びプログラム
US20110107323A1 (en) Electronic device and method for making upgrade firmware
US9380626B2 (en) Communication apparatus, information processing apparatus, and control method for the same
CN112655228A (zh) 用于产生更新报告的系统和方法
KR20110011156A (ko) 근거리 무선 통신을 이용한 콘텐츠 제공 장치 및 방법
JP6889662B2 (ja) 接続型デバイスシステム
TW201540036A (zh) 用於路由器應用程式的分發機制
US10771942B2 (en) Over the air image configuration
KR20230103777A (ko) 가전 기기의 업그레이드 시스템 및 그 방법
WO2016206437A1 (zh) Rom包生成方法及装置
JP2016536701A (ja) サーバとセキュアエレメント間の通信方法
JP2015215635A (ja) 管理システム及びそれに用いられる管理装置、並びに管理方法及び管理プログラム
JP2018042018A (ja) 通信装置、通信方法および通信プログラム

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20161202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200207

R150 Certificate of patent or registration of utility model

Ref document number: 6660311

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250