(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】ブルームフィルタを使用したデバイス・アップデート送信
(51)【国際特許分類】
G06F 21/57 20130101AFI20250121BHJP
G06F 8/65 20180101ALI20250121BHJP
H04L 67/00 20220101ALI20250121BHJP
【FI】
G06F21/57 320
G06F8/65
H04L67/00
【外国語出願】
(21)【出願番号】P 2020100816
(22)【出願日】2020-06-10
【審査請求日】2023-06-02
(32)【優先日】2019-06-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519170209
【氏名又は名称】インテグリティ セキュリティ サービシーズ エルエルシー
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】ロケッツ ニール
【審査官】石坂 知樹
(56)【参考文献】
【文献】米国特許出願公開第2018/0275982(US,A1)
【文献】特開2010-117997(JP,A)
【文献】国際公開第2019/009020(WO,A1)
【文献】倉田成己ほか,ブルームフィルタを用いたメモリアクセス順序違反検出機構の評価,情報処理学会研究報告,日本,2014年12月09日
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
G06F 8/65
G06F 13/00
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ化された装置にアップデートを提供するためのシステムであって、
キャンペーンのためにアップデートされるコンピュータ化された装置のセットを示すキャンペーン開始リクエストを検知することと、
前記アップデートされるコンピュータ化された装置のセットに対応する複数のハッシュ値を含むブルームフィルタ・データ構造を生成すること
であり、前記ブルームフィルタ・データ構造についての前記複数のハッシュ値を、複数のハッシュ関数を用いて生成する、生成することと、
前記ハッシュ関数の数に基づいて生成された前記ブルームフィルタ・データ構造を
、キャンペーン管理サービスからネットワーク・エッジに提供することと、
を含む動作を第1のプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービスと、
前記ブルームフィルタ・データ構造の前記複数のハッシュ値のうちのハッシュ値にマッチングする前記コンピュータ化された装置に関連するハッシュ値に基づいて、前記キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することと、
前記コンピュータ化された装置が前記キャンペーンのメンバーであることを確認する前記キャンペーン管理サービスに応じて、前記キャンペーン管理サービスからの前記コンピュータ化された装置に関連する前記デバイス・アップデートを取得すること
であり、前記デバイス・アップデートは、ソフトウェア、ファームウェアおよび電子証明書のいずれか一つ以上を含むデジタル資産を含み、前記デジタル資産は、前記コンピュータ化された装置の動作を修正する、取得することと、
前記コンピュータ化された装置に前記デバイス・アップデートを提供し、それにより前記デバイス・アップデートが前記コンピュータ化された装置を修正することと、
を含む動作を第2のプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジと、
を備えるシステム。
【請求項2】
前記ネットワーク・エッジは、
前記ブルームフィルタ・データ構造を使用して、前記コンピュータ化された装置が前記キャンペーンに属さないと決定することと、
前記コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、前記キャンペーン管理サービスと通信することなく前記コンピュータ化された装置に提供することと、
を含む動作を前記第2のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項1に記載のシステム。
【請求項3】
前記コンピュータ化された装置は、モノのインターネット(IoT)の装置、民生機器または乗り物である、請求項1に記載のシステム。
【請求項4】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項1に記載のシステム。
【請求項5】
前記デバイス・アップデートは、インストール情報またはインストール・スクリプトをさらに含む、請求項
1に記載のシステム。
【請求項6】
前記キャンペーン管理サービスは、
アップデートされる前記コンピュータ化された装置に対応するデータを格納すること、
を含む動作を前記第1のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項1に記載のシステム。
【請求項7】
前記データは、キャンペーン開始日、キャンペーン終了日、複数の車両登録番号、複数の製品シリアル番号および製品モデル番号の1つ以上を含む、請求項
6に記載のシステム。
【請求項8】
前記キャンペーン管理サービスは、
前記データへアクセスすることにより、前記コンピュータ化された装置が前記キャンペーンにあるか否かを決定すること、
を含む動作を前記第1のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項
6に記載のシステム。
【請求項9】
前記ブルームフィルタ・データ構造は、前記セット内のコンピュータ化された装置の数にかかわらず一定のサイズである、請求項1に記載のシステム。
【請求項10】
前記ブルームフィルタ・データ構造が生成されると、前記システムにより、前記コンピュータ化された装置が前記デバイス・アップデートのために前記ネットワーク・エッジをポーリングする、請求項1に記載のシステム。
【請求項11】
前記キャンペーン管理サービスは、
前記キャンペーンの終了時に前記ブルームフィルタ・データ構造を削除するように前記ネットワーク・エッジに命令すること、
を含む動作を前記第1のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項1に記載のシステム。
【請求項12】
コンピュータ化された装置の前記セット内のそれぞれのコンピュータ化された装置は、前記ネットワーク・エッジと通信するためのユニフォーム・リソース・ロケータを含む、請求項1に記載のシステム。
【請求項13】
複数のハッシュ値を含むブルームフィルタ・データ構造をキャンペーン管理サービスから取得すること
であり、前記ブルームフィルタ・データ構造についての前記複数のハッシュ値を、複数のハッシュ関数を用いて生成する、取得することと、
前記ブルームフィルタ・データ構造のハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、前記キャンペーン管理サービスから前記コンピュータ化された装置がデバイス・アップデートを受け取ることを決定することと、
前記コンピュータ化された装置に対応するデバイス・アップデート・リクエストを前記キャンペーン管理サービスへ送信することと、
前記コンピュータ化された装置が前記キャンペーンのメンバーであることを前記キャンペーン管理サービスが確認した後に、前記デバイス・アップデート・リクエストに関連する前記デバイス・アップデートを前記キャンペーン管理サービスから取得すること
であり、前記デバイス・アップデートは、ソフトウェア、ファームウェアおよび電子証明書のいずれか一つ以上を含むデジタル資産を含み、前記デジタル資産は、前記コンピュータ化された装置の動作を修正する、取得することと、
前記コンピュータ化された装置に前記デバイス・アップデートを提供し、それにより前記コンピュータ化された装置が前記デバイス・アップデートをインストールすることと、を含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジ・デバイス。
【請求項14】
前記動作はさらに、
前記ブルームフィルタ・データ構造を使用して、前記コンピュータ化された装置が前記キャンペーンに属さないと決定することと、
前記コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、前記キャンペーン管理サービスと通信することなく前記コンピュータ化された装置に提供することと、
を含む、請求項
13に記載のネットワーク・エッジ。
【請求項15】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項
13に記載のネットワーク・エッジ。
【請求項16】
キャンペーンのためのデバイス・アップデートを用いて複数のコンピュータ化された装置がアップデートされることを指定するキャンペーン開始リクエストを検知することと、
アップデートされる前記複数のコンピュータ化された装置に対応するデータを格納することと、
複数のハッシュ値を含むブルームフィルタ・データ構造を生成することであり、それぞれのハッシュ値は、前記複数のコンピュータ化された装置内の前記コンピュータ化された装置のそれぞれについての前記データに基づいて
おり、前記ブルームフィルタ・データ構造についての前記複数のハッシュ値を、複数のハッシュ関数を用いて生成する、生成することと、
前記ハッシュ関数の数に基づいて生成された前記ブルームフィルタ・データ構造を
、キャンペーン管理サービスからネットワーク・エッジに提供することと、
前記デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることと、
アップデートされる前記複数のコンピュータ化された装置に対応する前記データに基づいて、前記コンピュータ化された装置が前記キャンペーンのメンバーであることを確認することと、
前記リクエストに関連する前記デバイス・アップデートをネットワーク・エッジへ提供することであり、前記コンピュータ化された装置によってアクセスされるかまたは格納される電子データを修正するための前記デバイス・アップデートを提供
し、前記デバイス・アップデートは、ソフトウェア、ファームウェアおよび電子証明書のいずれか一つ以上を含むデジタル資産を含み、前記デジタル資産は、前記コンピュータ化された装置の動作を修正する、提供することと、
を含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービス。
【請求項17】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項
16に記載のキャンペーン管理サービス。
【請求項18】
前記コンピュータ実行可能な命令は、
前記ブルームフィルタ・データ構造を使用して、前記コンピュータ化された装置が前記キャンペーンに属さないと決定することと、
前記コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、前記キャンペーン管理サービスと通信することなく前記コンピュータ化された装置に提供することと、
を含む動作をさらに前記プロセッサに行わせる、請求項16に記載のキャンペーン管理サービス。
【請求項19】
前記コンピュータ実行可能な命令は、アップデートされる前記コンピュータ化された装置に対応するデータを格納すること、を含む動作をさらに前記プロセッサに行わせる、請求項16に記載のキャンペーン管理サービス。
【請求項20】
前記データは、キャンペーン開始日、キャンペーン終了日、複数の車両登録番号、複数の製品シリアル番号および製品モデル番号の1つ以上を含む、請求項19に記載のキャンペーン管理サービス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、デバイス・アップデートを安全に提供するためのシステム、装置および方法に関する。より詳細には、本開示は、アップデートキャンペーンに含まれている、V2X乗り物中のコンピュータ化された装置のようなコンピュータ化された装置へデバイス・アップデートを提供するための、改善されたシステム、装置および方法に関する。
【背景技術】
【0002】
コンピュータが小型化してコモディティ化されるにつれ、製造業者は、いくつもの数の組み込みコンピュータおよびプロセッサを含む、より多くの様々な装置を生産している。コンピュータ化された装置内のコンピュータは、装置の動作をコントロールすることができ、データを収集、格納、共有し、他のコンピュータおよび他のコンピュータ化された装置と通信し、そしてそれ自身のソフトウェアをとりわけアップデートすることができる。モノのインターネット(IoT)は、組み込みプロセッサ、エレクトロニクス、ソフトウェア、データ、センサー、アクチュエーター、および/またはネットワーク接続を有する、コンピュータ化された物理デバイスのネットワークであり、インターネット、セルラー・ネットワークおよび他のワイヤレス・ネットワークを含むデジタル・ネットワークを経由して、これらの装置が接続しデータを交換することを可能にする。典型的には、それぞれの「モノ」は、その組み込みコンピューティング・システムを通じて一意に識別可能であり、既存のインターネット・インフラストラクチャー内において相互に動作することができる。IoTの意味での「モノ」は、とりわけ、民生機器、ビジネスおよび企業セッティングにおいて使用される企業向け機器、製造機械、農業用機器、住宅および建物内のエネルギーを消費する装置(スイッチ、電力コンセント、機器、照明装置、電球、テレビ、ガレージ・ドア・オープナー、スプリンクラー装置、セキュリティー・システムなど)、医療およびヘルスケア装置、インフラストラクチャー管理装置、ロボット、ドローン、並びに輸送装置および乗り物などのような、多種多様なコンピュータ化された装置を表すことができる。
【0003】
多くの例では、現代の乗り物および輸送機械類(例えば自動車、トラック、航空機、列車、船舶、オートバイ、スクーターなど)は、それらのサブシステムにいくつかの組み込みプロセッサまたは組み込みコンピュータを含んでおり、少なくともいくつかの様相においてコンピュータ制御である。同様に、ますます多くの現代の輸送インフラストラクチャー装置(例えば交通信号灯、交通監視カメラ、交通センサー、橋梁モニター、橋梁制御システムなど)は、少なくとも1つのそしてしばしば多数の組み込みプロセッサまたは埋込式コンピュータ・システムを含み、少なくともいくつかの様相においてコンピュータ制御である。輸送ネットワークのこれらコンピュータ制御の要素は、典型的には互いに通信して様々なタイプの情報をやりとりし、またそれらは、安全で正確で効率的で信頼できる動作のために、車両間通信(V2V;Car-to-Car(C2C)としても知られている)において他の車両との間で送受信される情報、および/または、車両インフラストラクチャ間通信(V2I;Car-to-Infrastructure(C2I)としても知られている)においてインフラストラクチャ要素との間で送受信される情報に反応および応答し、それらの動作を変更するか、またはそうでなければ依存する場合がある。V2VおよびV2Iシステムはあわせて、一般に、V2Xシステムまたはインフラストラクチャーと呼ばれている。
【0004】
コンピュータ化された装置内のコンピュータは、それらのソフトウェア、および/または、ファームウェア並びにデータに従って動作する。安全で適切な動作を保証するために、コンピュータ化された装置は、適切なソフトウェア、ファームウェア、実行可能な命令、電子証明書(例えば公開鍵証明書)、暗号化キーなど(以下、一括して「デジタル資産」または「ソフトウェア」と呼ぶ)を用いて、製造業者によって意図されるように適切に初期化されアップデートされなければならなく、そのため、IoTは、認証された既知の優良なソフトウェアおよびデータを実行している装置から構成される。しかしながら、権限の無い人または団体(例えばハッカー)が、コンピュータ化された装置内のソフトウェアを置換するまたは変更する場合に問題が生じる。また、より古いソフトウェア、試験されていないソフトウェア、承認されていないソフトウェア、および/または、既知のバグを持ったソフトウェアが、コンピュータ化された装置にインストールされる場合にも問題が生じる。
【0005】
従来のシステムは、V2X対応自動車の全てについてのソフトウェアをアップデートするキャンペーンのような、多数の装置を含む「キャンペーン」についてのデバイス・アップデート・リクエストを処理するために、ハードウェアおよび他のリソースの有意義な(significant)割り振りを要求することができ、V2X対応自動車は、特定の製造メーカー、モデルおよび年式のもの、であり/または、特定のデジタル資産(例えば、証明書の特定のセットの1つ)を持っており、それは何十または何十万もの台数に達する可能性がある。例えば、大規模なキャンペーン用のデバイス・アップデート・リクエストを処理している従来のシステムは、キャンペーンの一部ではない装置(例えば、V2X環境の一部であるが、キャンペーンの特定の製造メーカー、モデル、年式および/または証明書セットではない自動車)からのリクエストに点在された、キャンペーンの一部である装置のセット(例えば、特定の製造メーカー、モデル、年式および/または証明書グループである自動車)からのリクエストを含む全てのリクエストを処理するために、大量のメモリ、プロセッサ、ネットワーク帯域幅などを要求する。本明細書において参照されるキャンペーンは、コンピュータ化された装置の特定のグループについてのデバイス・アップデートを含むことができ、ここで、デバイス・アップデートは、ソフトウェア・アップデートおよびファームウェア・アップデートなどを含むことができる。
【0006】
いくつかの従来のシステムは、コンピュータ化された装置がキャンペーンの一部としてデバイス・アップデートを受け取るべきか否かを決定するために、例えば、リクエストしている自動車が、キャンペーンに含まれる製造メーカー、モデル、年式および/または証明書の特定のセットにあるか否かを決定するために、リニアサーチまたは二分探索法を使用することができる。しかしながら、リニアサーチおよび二分探索法は、典型的には大量のデータを格納することを要求し、データの探索は、典型的には相当な量の処理時間およびパワーを要求する。さらに、個々のそのような探索を終えるのに必要な時間の量は、キャンペーンにおける装置(例えば自動車)の数に従って成長する。したがって、デバイス・アップデート用のキャンペーンにおいてコンピュータ化された装置が含まれるか否かを決定する場合、従来のシステムは、例えば装置/リクエスト毎に5秒以上の遅れのような、重大な遅れまたは待ち時間に帰着する場合がある。
【0007】
いくつかの実施形態では、本技術は、コンピュータ化された装置が、キャンペーンに属する、または、デバイス・アップデートを受け取るようにスケジュールされているコンピュータ化された装置のグループもしくはセットに属することを検証することができる、改善されたシステム、装置および方法を含む。いくつかの実施形態では、本技術は、コンピュータ化された装置がキャンペーンに含まれるか否かを決定して、キャンペーンの一部としてデバイス・アップデートを取得するために用いられるハードウェアリソースと時間とを低減することができるシステムを含む。
【発明の概要】
【0008】
したがって、本技術は、コンピュータ化された装置にアップデートを提供することができる改善されたシステム、装置および方法を含む。いくつかの実施形態では、コンピュータ化された装置にアップデートを提供するためのシステムは、キャンペーンのためにアップデートされるコンピュータ化された装置のセットを示すキャンペーン開始リクエストを検知することを含む動作を第1のプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービス、を含むことができる。動作はまた、複数のハッシュ値を含むブルームフィルタ・データ構造を生成することを含むことができ、そこでは複数のハッシュ値がアップデートされるコンピュータ化された装置のセットに対応する。さらに動作は、ブルームフィルタ・データ構造をネットワーク・エッジに提供することを含むことができる。そのうえ、システムは、ブルームフィルタ・データ構造の複数のハッシュ値のうちのハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することを含む動作を第2のプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジ、を含むことができる。動作はまた、コンピュータ化された装置がキャンペーンのメンバーであることを確認するキャンペーン管理サービスに応じて、キャンペーン管理サービスからのコンピュータ化された装置に関連するデバイス・アップデートを取得することを含むことができる。そのうえ動作は、コンピュータ化された装置にデバイス・アップデートを提供し、それによりデバイス・アップデートがコンピュータ化された装置を修正することを含むことができる。
【0009】
一実施形態では、ネットワーク・エッジは、ブルームフィルタ・データ構造を使用して、コンピュータ化された装置がキャンペーンに属さないと決定することと、コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、キャンペーン管理サービスと通信することなくコンピュータ化された装置に提供することと、を含む動作を第2のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【0010】
一実施形態では、コンピュータ化された装置は、モノのインターネット(IoT)の装置、民生機器または乗り物である。
【0011】
一実施形態では、デバイス・アップデートは、登録証明書または匿名証明書を含むことができる。
【0012】
一実施形態では、デバイス・アップデートは、コンピュータ化された装置にインストールされるソフトウェアまたはファームウェアを含むことができる。
【0013】
一実施形態では、デバイス・アップデートは、インストール情報またはインストール・スクリプトを含むことができる。
【0014】
一実施形態では、キャンペーン管理サービスは、アップデートされるコンピュータ化された装置に対応するデータを格納することを含む動作を第1プロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【0015】
一実施形態では、データは、キャンペーン開始日、キャンペーン終了日、複数の車両登録番号、複数の製品シリアル番号および製品モデル番号の1つ以上を含むことができる。
【0016】
一実施形態では、キャンペーン管理サービスは、データへアクセスすることにより、コンピュータ化された装置がキャンペーンにあるか否かを決定することを含む動作を第1のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【0017】
一実施形態では、ブルームフィルタ・データ構造は、セット内のコンピュータ化された装置の数にかかわらず一定のサイズである。
【0018】
一実施形態では、ブルームフィルタ・データ構造を生成することは、偽陽性割合しきい値に基づいて、ブルームフィルタ・データ構造についてのハッシュ値を生成するハッシュ関数の数を調節することを含むことができる。
【0019】
一実施形態では、ブルームフィルタ・データ構造が生成されると、システムにより、コンピュータ化された装置がデバイス・アップデートのためにネットワーク・エッジをポーリングすることができる。
【0020】
一実施形態では、キャンペーン管理サービスは、キャンペーンの終了時にブルームフィルタ・データ構造を削除するようにネットワーク・エッジに命令することを含む動作を第1のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【0021】
一実施形態では、コンピュータ化された装置のセット内のそれぞれのコンピュータ化された装置は、ネットワーク・エッジと通信するためのユニフォーム・リソース・ロケータを含む。
【0022】
一実施形態では、ネットワーク・エッジ・デバイスは、複数のハッシュ値を含むブルームフィルタ・データ構造をキャンペーン管理サービスから取得することを含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むことができる。動作はまた、ブルームフィルタ・データ構造のハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することを含むことができる。さらに動作は、コンピュータ化された装置に対応するデバイス・アップデート・リクエストをキャンペーン管理サービスへ送信することを含むことができる。そのうえ動作は、コンピュータ化された装置がキャンペーンのメンバーであることをキャンペーン管理サービスが確認した後に、デバイス・アップデート・リクエストに関連するデバイス・アップデートをキャンペーン管理サービスから取得することを含むことができる。さらに動作は、コンピュータ化された装置にデバイス・アップデートを提供し、それによりコンピュータ化された装置がデバイス・アップデートをインストールすることを含むことができる。
【0023】
一実施形態では、キャンペーン管理サービスは、キャンペーンのためのデバイス・アップデートを用いて複数のコンピュータ化された装置がアップデートされることを指定するキャンペーン開始リクエストを検知することを含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むことができる。動作はまた、アップデートされる複数のコンピュータ化された装置に対応するデータを格納することと、複数のハッシュ値を含むブルームフィルタ・データ構造を生成することとを含むことができ、そこでは、それぞれのハッシュ値は、複数のコンピュータ化された装置内のコンピュータ化された装置のそれぞれについてのデータに基づいている。そのうえ動作は、ブルームフィルタ・データ構造をネットワーク・エッジに提供することと、デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることとを含むことができる。さらに動作は、アップデートされる複数のコンピュータ化された装置に対応するデータに基づいて、コンピュータ化された装置がキャンペーンのメンバーであることを確認することを含むことができる。さらに動作は、リクエストに関連するデバイス・アップデートをネットワーク・エッジへ提供することであり、コンピュータ化された装置によってアクセスされるかまたは格納される電子データを修正するためのデバイス・アップデートを提供することを含むことができる。
【図面の簡単な説明】
【0024】
本明細書に組み込まれてその一部を構成する添付図面は、開示された主題の多数の特徴の例を示す。添付図面は、詳細な説明の記載と共に、本明細書に記述される様々な技術の原理について説明する役目をする。
【0025】
【
図1】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【
図2】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスを使用してブルームフィルタ・データ構造を初期化することができる、例示的なシステムのブロック図である。
【
図3A】本明細書に記述される例示的な実施形態に対応する、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【
図3B】本明細書に記述される例示的な実施形態に対応する、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【
図4】本明細書に記述される例示的な実施形態に対応する、ネットワーク・エッジを用いてキャンペーンに関連するリクエストを管理する例示的な方法のプロセス・フローチャートである。
【
図5】本明細書に記述される例示的な実施形態に対応する、キャンペーン管理サービスを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。
【
図6】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置と、キャンペーン管理サービスと、証明書管理サービスとの間の例示的なデータ・フローを示すデータ・フロー・ダイアグラムである。
【
図7】本明細書に記述される例示的な実施形態に対応するシステムおよび方法をホストすることができるコンピューティング・システムの例示的なブロック図である。
【発明を実施するための形態】
【0026】
本明細書に記述される技術の様々な実施形態が今詳細に言及されるであろう、それらの例は添付図面中に示されている。都合の良い場合にはいつでも、同じまたは同様の部品を参照するために、図面の全体にわたって同じ参照番号が使用されるであろう。
【0027】
イントロダクション
【0028】
ますます多くの装置、センサーおよび機器が、とりわけネットワーク・コンポーネントのような、追加のハードウェア・コンポーネントを含んでいる。ネットワーク・コンポーネントは、様々な装置がいくつもの数の外部装置、サーバなどと通信することを可能にすることができる。いくつかの例では、装置を動作するために使用されるソフトウェアおよびファームウェアは、時代遅れまたは安全ではなくなる。したがって、装置は、ネットワーク・コンポーネントを経由してデバイス・アップデートをリクエストすることができ、装置の性能を改善しかつセキュリティ問題を防ぐ。いくつかの実施形態では、装置はグループまたはキャンペーンでアップデートされる。キャンペーンは、製造業者または他の適切なエンティティが装置のセットにデバイス・アップデートを提供することを可能にすることができる。いくつかの例では、装置は、外部サーバまたはサービスを周期的にポーリングすることができ、装置に利用可能なアップデートがあるか否か(例えば、装置を含むアクティブなキャンペーンがあるか)を決定し、および/または、装置がデバイス・アップデートを取得することができるか否かを決定する。
【0029】
様々な実施形態では、デバイス・アップデートは、製造され初期化された後の、自動車のコンポーネントについてのアップデートを一度に含むことができる。例えば、フィールドでの安全で適切な動作を保証するために、セキュリティ資産のようなデジタル資産をプロビジョニングすることにより、組み込み装置、例えば乗り物の中で使用される電子制御装置(ECU)を、製造する間に初期化することができる。デジタル資産は、様々な電子証明書、暗号化キー、一意な識別子およびソフトウェアを含むことができる。いくつかの例では、CMSすなわち証明書管理サービス(certificate management service)は、これらのデジタル資産を生成し、安全なプロビジョニング・システムは、デジタル資産を製造工場に分配する。
【0030】
概して(しかし常にではなく)、工場を去りサービスへ展開した後、デバイス・アップデートは、新しいまたは置換するソフトウェア、ファームウェア、デジタル資産などを取得するために、コンピュータ化された装置によってリクエストされることができ、それは、コンピュータ化された装置を正確にまたは改訂された方法で機能することを可能にする。述べられたいくつかの実施形態では、コンピュータ化された装置は、デバイス・アップデートをリクエストすることができ、リクエストは、とりわけブルームフィルタ・データ構造を使用してフィルターすることができる。ブルームフィルタ・データ構造を利用する様々な実施形態は、コンピュータ化された装置が、従来のシステムと比較して低減された量の記憶装置を利用している間、従来のシステムによる所要時間未満であるほぼ一定の量の時間内において、デバイス・アップデートを受け取ることになるか否かに関する決定を提供する。
【0031】
図1は、デバイス・アップデートについてのリクエストを処理することができる、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。いくつかの実施形態では、システム100は、任意の適切なコンピューティング・デバイス、サーバ、外部リモート・サービス・ネットワークなどを用いて実装することができる。この例において示されるように、システム100は、ネットワーク・エッジ102、装置管理サーバ104、装置106、キャンペーン管理サービス108、内部サービス110、データベース112、ブルームフィルタ装置114およびメッセージ・サーバ116をとりわけ含むことができる。
【0032】
いくつかの実施形態では、ネットワーク・エッジ102は、デバイス・アップデートなどのためのキャンペーンの初期化118を実装することが可能な、装置管理サーバ104を含むことができる。キャンペーンは、ソフトウェア・アップデート、ファームウェア・アップデートまたは新しいアプリケーションのような、デバイス・アップデートをとりわけ取得するための、任意のセット、グループまたは数の装置(本明細書ではコンピュータ化された装置とも呼ぶ)106を、指定するまたは含むことができる。いくつかの実施形態では、デバイス・アップデートは、装置106に格納されるソフトウェア、ファームウェアまたはこれらの任意の組み合わせに関連する、インストール情報またはインストール・スクリプトを含むことができる。インストール情報は、装置106のメモリ内にデバイス・アップデートを格納するためのディレクトリーまたはロケーションを示すことができる。インストール・スクリプトは、デバイス・アップデートをインストールするための実行可能な命令を含むことができる。
【0033】
いくつかの実施形態では、装置106は、とりわけ、モノのインターネット(IoT)のセンサー、民生機器、乗り物、または乗り物(例えばOBUなど)の一部である装置、とすることができる。例えば、装置106は、乗り物、船舶(例えばボート)、航空機、宇宙船、医療機器、ロボット、ドローン、無線若しくは有線の通信モジュール、またはIoT装置を含むことができる。いくつかの例では、装置106は、とりわけ、交通制御施設(例えば交通信号、交通信号灯、または電子交通サイネージ)、デジタル・ビルボード、歩行者警戒システム、オートバイ・センサー、自転車センサー、電子サイン、街灯センサーまたは構造物警告センサーの、RSUに対応することができる。
【0034】
いくつかの例では、装置管理サーバ104は、ウェブ・インタフェース、外部サーバまたは装置106からのキャンペーン開始リクエスト(図示せず)を検知120することができる。いくつかの実施形態では、装置管理サーバ104は、キャンペーンを管理するサーバまたは装置からのキャンペーン開始リクエストを検知することができる。その後、装置管理サーバ104は、サーバ、データベース、クライアント装置などのような、いくつもの数のコンピューティング・デバイスを含む内部サービス110に属することができるキャンペーン管理サービス108へ、キャンペーン開始リクエストを転送することができる。いくつかの実施形態では、内部サービス110は、装置管理サーバ104を経由してキャンペーンに関連するデータの送信を回避する任意の適切なインタフェースを通じて、キャンペーン開始リクエストを検知することができる。キャンペーン開始リクエストは、デバイス・アップデートキャンペーンの一部としてアップデートされる装置106のリストまたはセットを示すことができる。いくつかの例では、キャンペーン開始リクエストは、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、および/または任意で、キャンペーンのパラメータを指定する他の情報と共に、シリアル番号のセット、製品名のセット、インターネット・プロトコル(IP)アドレスのセット、メディア・アクセス制御(MAC)アドレスのセットなどのような、装置識別子のセットまたはそれぞれの装置についての識別情報のセットを含むことができる。
【0035】
いくつかの実施形態では、キャンペーン管理サービス108は、キャンペーンが開始されることを決定することができる。いくつかの例では、キャンペーンを開始することは、内部サービス110のデータベース112に、キャンペーン・データおよびステータスを格納122することを含むことができる。データベース112に格納されるキャンペーン・データは、シリアル番号のセット、製品名のセット、インターネット・プロトコル(IP)アドレスのセット、メディア・アクセス制御(MAC)アドレスのセット、装置識別情報の他のいくつかのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間などのような、キャンペーン開始リクエストからの情報を含むことができる。いくつかの例では、データベース112に格納されるキャンペーンのステータスは、キャンペーンが開始したか、または、キャンペーンが後の時間まで非アクティブであるかを示すことができる。いくつかの実施形態では、データベース112は、キャンペーン管理サービス108内にデータをローカルに格納することができる、または、データベース112は、ネットワーク接続(図示せず)を経由してアクセスされる、外部に設置されたデータベース112とすることができる。
【0036】
いくつかの実施形態では、キャンペーン管理サービス108は、キャンペーンのためのデバイス・アップデート・リクエストの処理に先立って、キャンペーンのためにデータ構造を初期化124する。データ構造は、ブルームフィルタ・データ構造、リンクリスト、多次元の配列、或いは、キャンペーンに含まれているかまたは対応する、装置106および/またはリクエスト134を速く識別するために使用されることができる、その他のデータ構造(例えば、キャンペーン開始リクエストからの装置識別子のリストまたはセットに載っている装置)を含むことができる。いくつかの例では、ブルームフィルタ・データ構造は、例えば、装置がキャンペーンに追加されるときに、キャンペーン内の装置の数に基づいてまたはその数に従って、拡大または縮小しない静的または一定のサイズの構造として割り付けられる。いくつかの実施形態では、ブルームフィルタ・データ構造は、キャンペーンに含まれているコンピューティング・デバイスに対応するハッシュ値の配列を含むことができる。いくつかの実施形態では、それぞれのハッシュ値は個別のハッシュ関数を用いて生成することができる。例えば、それぞれのブルームフィルタ・データ構造は、Xの異なるハッシュ関数に関連することができる。Xの異なるそれぞれのハッシュ関数は、ブルームフィルタ・データ構造の配列内の1つの位置へのコンピューティング・デバイスについての識別情報を、マップするかハッシュすることができる。例えば、ブルームフィルタ・データ構造にコンピューティング・デバイスを追加するために、コンピューティング・デバイスについての識別情報が、Xの異なるそれぞれのハッシュ関数に提供される。Xの異なるそれぞれのハッシュ関数は、配列位置に対応する出力値を生成する。ブルームフィルタ・データ構造の配列は修正されて、Xの異なるハッシュ関数によって出力として生成される、それぞれの配列位置に対する値を格納することができる。一例では、コンピュータ化された装置についての識別情報は、それぞれが個別の配列位置の値を生成する5つのハッシュ関数に提供されることができる。ブルームフィルタ・データ構造は修正されて、5つのハッシュ関数の出力にマップされたそれぞれの配列位置に、バイナリ値または他の適切な値を格納することができる。したがって、コンピュータ化された装置がブルームフィルタ・データ構造にマップされた後、ブルームフィルタ・データ構造の5つの配列位置は1の値を格納することができる。
【0037】
ブルームフィルタ・データ構造の配列にハッシュ値をマップするハッシュ関数の数は、偽陽性割合しきい値に基づくことができる。例えば、ブルームフィルタ・データ構造の配列中のエントリーの数と比較してハッシュ関数の数を減らすことは、偽陽性割合を低減することができる。対照的に、ブルームフィルタ・データ構造の配列にハッシュ値をマップするために使用されるハッシュ関数の数を増加させることは、偽陽性割合を増加させることができる。いくつかの例では、キャンペーン管理サービス108は、偽陽性割合しきい値に基づいて、ブルームフィルタ・データ構造についてのハッシュ値を生成するハッシュ関数の数を調節することができる。
【0038】
いくつかの実施形態では、キャンペーン管理サービス108は、メッセージ・サーバ116を経由して、ブルームフィルタ・データ構造をブルームフィルタ装置114へ送信126することができる。例えば、メッセージ・サーバ116は、ブルームフィルタ・データ構造をブルームフィルタ装置114へ同期してまたは非同期に提供128することを可能にすることができる。いくつかの例では、ネットワーク・エッジ102は、ブルームフィルタ装置114または装置管理サーバ104に、ブルームフィルタ・データ構造のキャッシュされたコピーを格納することにより、キャンペーン130の起動または実行を開始することができる。したがって、ネットワーク・エッジ102は、ネットワーク・エッジ102内にブルームフィルタ・データ構造を格納することにより、ブルームフィルタ・データ構造の初期化に引き続き、デバイス・アップデート・リクエストの処理を開始することができる。いくつかの実施形態では、
図2に関して以下でより詳細に説明されるように、装置106が、アップデートをリクエストし、ブルームフィルタ・データ構造の初期化をまだ終了していないキャンペーンのメンバーである場合には、ネットワーク・エッジ102は、リクエストする装置106が利用可能なアップデートを有していないかまたはキャンペーンの一部ではない、と応答するであろう。したがって、装置106はネットワーク・エッジ102をポーリングし、いくつかの例では、ブルームフィルタ・データ構造が生成されるときにデバイス・アップデートについてネットワーク・エッジ102にポーリングすることを含んで、装置106がキャンペーンに属するか否かを示す応答を待つ132ことができる。
【0039】
図1はさらに、ブルームフィルタ・データ構造によって表されるキャンペーンに実際に含まれている装置106からのデバイス・アップデート・リクエストを、システム100がどのように処理するかの例を示し、それは真陽性と呼ばれることができる。この例において示されるように、ブルームフィルタ・データ構造が初期化され、フィルタリング・プロセスが起動している後、装置106は、ネットワーク・エッジ102にデバイス・アップデート・リクエスト134を送信することができる。ネットワーク・エッジ102は、ブルームフィルタ・データ構造(例えばブルームフィルタ装置114上の)に照会136して、リクエストする装置106がキャンペーンに属するか否かを決定することができる。いくつかの実施形態では、ブルームフィルタ・データ構造を照会136することは、装置106からの装置識別子(つまり識別情報)に適用されたハッシュ関数を使用して、ハッシュ値を生成することを含むことができる。装置識別子または識別情報は、MACアドレス、IPアドレスおよびシリアル番号などであるか、これらを含むことができる。様々な実施形態では、ブルームフィルタ・データ構造に格納されているハッシュ値にマッチングする装置106の識別情報についてのハッシュ値は、装置106がキャンペーンに属する可能性があるか、またはおそらくキャンペーンに属するかを示すことができ、ブルームフィルタ・データ構造に格納されているハッシュ値は、キャンペーン開始リクエストに含まれている装置識別子のリストから生成されている。様々な実施形態では、ブルームフィルタは、8%、6%、5%、4%、3%、2%、1%、または1%未満で0%を超えるように、約10%以下の割合で偽陽性を生成する可能性があるので、ブルームフィルタ・データ構造におけるマッチングは、リクエストする装置106がキャンペーンの一部であることを保証しない。いくつかの実施形態では、ブルームフィルタ・データ構造(それはキャンペーンに対応する)内のハッシュ値の数(それらは装置に対応する)にかかわらず、装置106についてのマッチングするハッシュ値がほぼ一定の時間でブルームフィルタ・データ構造に格納される場合には、ネットワーク・エッジ102は決定138することができる。したがって、装置106がキャンペーンに属するか否かを決定するとき、ブルームフィルタ・データ構造は、従来のシステムよりもより速い処理時間を提供しより小さな量のメモリを使用し、これらの改善はキャンペーンにおける装置の数が増大するにつれ増大する。
【0040】
図1に示されるような様々な実施形態では、マッチングを検索し比較しまたはそうでなければ識別する際、ブルームフィルタ装置114は、装置106がキャンペーンのメンバーであることを装置管理サーバ104に示す140ことができる。その後、装置管理サーバ104は、例えばメッセージ・サーバ116を経由して、キャンペーン管理サービス108へデバイス・アップデート・リクエスト134を送信142することができる。いくつかの例では、メッセージ・サーバ116は、デバイス・アップデート・リクエスト134をキャンペーン管理サービス108へ非同期にまたは同期して転送144することができる。
【0041】
様々な実施形態では、キャンペーン管理サービス108は、デバイス・アップデート・リクエスト144/134を検知し、データベース112を照会146して、装置106が本当にキャンペーンに属するか否かを検索するか、またはそうでなければ決定することができ、これはブルームフィルタ・データ構造が偽陽性を生成した場合には当てはまらない可能性がある。
図1において示された例では、データベース112は、キャンペーン・データ、キャンペーンのステータス、装置のリストまたは範囲(例えば装置識別子)、および/または他の情報を、キャンペーン管理サービス108へ返す148ことができる。キャンペーン管理サービス108は、示された例では、装置106が検索されたキャンペーンのメンバーであることと、装置106がキャンペーンの一部としてデバイス・アップデートを受け取るかまたは提供されることとを決定150することができる。いくつかの実施形態では、キャンペーン管理サーバ108は、メッセージ・サーバ116、ブルームフィルタ装置114、および/または装置管理サーバ104、或いはこれらの任意の組み合わせを経由して、装置106がキャンペーンのメンバーであるという指示を装置106へ返す152ことができる。いくつかの実施形態では、キャンペーン管理サービス108は、ネットワーク・エッジ102を経由して、デバイス・アップデート・データを装置106へ返し、送信し、またはそうでなければ提供154する。様々な実施形態では、デバイス・アップデート・データは、ソフトウェア、ファームウェアなどのようなデジタル資産を含むことができ、それらは実行またはそうでなければ使用されると、例えば、既存の機能を修正し、新しい機能を追加し、望ましくない機能を削除することによって、装置106を改訂またはアップデートする。
【0042】
したがって、
図1は、装置106がブルームフィルタ・データ構造に格納されたハッシュ値にマッチングし、装置106が確信を持ってキャンペーンに属する真陽性の例を表す。いくつかの実施形態では、システム100は、いくつもの数の装置を用いて実装することができる。例えば、ネットワーク・エッジ102は単一のサーバを用いて実装することができ、内部サービス110は単一のサーバを用いて実装することができ、ネットワーク・エッジ102と内部サービス110とが互いに直接的に通信するように、システム100はメッセージ・サーバ116を含まないようにすることができる。
【0043】
図2は、ブルームフィルタ・データ構造を初期化する例示的なシステムのブロック図を描写する。いくつかの実施形態では、システム200は、とりわけ、ネットワーク・エッジ102、装置管理サーバ104、装置106およびキャンペーン管理サービス108のような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【0044】
いくつかの実施形態では、システム200は、ウェブ・インタフェース、外部サーバ、または装置106からのキャンペーン開始リクエスト(図示せず)を検知202することができる装置管理サーバ104を含むことができるネットワーク・エッジ102を含むことができる。いくつかの実施形態では、装置管理サーバ104は、キャンペーンを管理するサーバまたは装置からのキャンペーン開始リクエストを検知することができる。装置管理サーバ104は、その後、内部サービス110に属することができるキャンペーン管理サービス108へ、キャンペーン・リクエストを転送することができる。いくつかの実施形態では、内部サービス110は、装置管理サーバ104を経由してキャンペーンに関連するデータの送信を回避する任意の適切なインタフェースを通じて、キャンペーン開始リクエストを検知することができる。キャンペーン開始リクエストは、デバイス・アップデートキャンペーンの一部としてアップデートされる装置のリストを示すことができる。いくつかの例では、キャンペーン・リクエストは、シリアル番号のセット、製品名のセット、インターネット・プロトコル(IP)アドレスのセット、メディア・アクセス制御(MAC)アドレスのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、などを含むことができる。
【0045】
いくつかの実施形態では、キャンペーン管理サービス108は、キャンペーンが開始されることを決定することができる。いくつかの例では、キャンペーンを開始することは、内部サービス110のデータベース112に、キャンペーン・データおよびステータスを格納204することを含むことができる。データベース112に格納されるキャンペーン・データは、シリアル番号のセット、製品名のセット、インターネット・プロトコル(IP)アドレスのセット、メディア・アクセス制御(MAC)アドレスのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、などのような、キャンペーン・リクエストからの情報を含むことができる。いくつかの例では、データベース112に格納されるキャンペーンのステータスは、キャンペーンが開始したか否かを、またはキャンペーンを開始する次の時間および日付を示すことができる。いくつかの実施形態では、キャンペーン管理サービス108は、キャンペーンのためのデバイス・アップデート・リクエストの処理に先立って、キャンペーンのためのデータ構造を生成206する。データ構造は、ブルームフィルタ・データ構造、リンクリスト、多次元の配列、またはその他のデータ構造を含むことができる。いくつかの実施形態では、ブルームフィルタ・データ構造は、キャンペーンに含まれているコンピューティング・デバイスに対応するハッシュ値の配列を含むことができる。いくつかの実施形態では、それぞれのハッシュ値は個別のハッシュ関数を用いて生成することができる。
【0046】
図2はさらに、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ102による使用の準備ができる前に、装置106から受け取られるデバイス・アップデート・リクエストをシステム200がどのように処理するかの例を示す。示された例では、ブルームフィルタ・データ構造がキャンペーン開始時間に生成されている間、および/または、ブルームフィルタ・データ構造がネットワーク・エッジ102によって取得およびインストールされる前に、装置管理サーバ104は、装置106からのデバイス・アップデート・リクエスト134を受け取るかまたは検知208することができ、それは装置106がキャンペーンに属するか否かに関する決定を引き起こすであろう。示された例では、リクエスト208/134が到着するとき、キャンペーン管理サービス108はキャンペーンのためのブルームフィルタ・データ構造を生成206する処理中にあるので、装置管理サーバ104は、装置106についてのアップデートが無いことを示す、または言いかえれば、装置106がキャンペーンに無いことを示す応答214を返す。
【0047】
この特定の例では、装置管理サーバ104は、装置106からのデバイス・アップデート208/134についてのリクエストを、ブルームフィルタ装置114へ送信210することができる。ブルームフィルタ装置114は、リクエスト208/134に含まれている装置106(例えばシリアル番号、IPアドレス、MACアドレスなど)についての識別情報に基づいてハッシュ値を生成することにより、装置106がキャンペーンのメンバーであるか否かを決定212することができる。様々な例では、ブルームフィルタ装置114は、装置106についてのハッシュ値を、ブルームフィルタ装置114に格納されているブルームフィルタ・データ構造内のハッシュ値と比較することにより、マッチングするハッシュ値を識別しようとすることができる。
図2の例では、ブルームフィルタ・データ構造がキャンペーン管理サービス108からまだ受け入れられていないように、ブルームフィルタ装置114がキャンペーンのための格納されたブルームフィルタ・データ構造をまだ有していないので、ブルームフィルタ装置114はいかなる比較も行うことができない。
【0048】
示された実施形態におけるこの事例について、ブルームフィルタ装置114は、装置管理サーバ104を経由して、装置106がキャンペーンに無いことを示す除外応答を返す214。これは、キャンペーン管理サービス108によって同時に生成、構築、または生成206されているブルームフィルタ・データ構造に関連するキャンペーンに装置106が属しているにもかかわらず、生じる可能性がある。
【0049】
いくつかの実施形態では、装置106は、デバイス・アップデートについてネットワーク・エッジ102を周期的にポーリングする(例えば、リクエストを送信する)ことができる。例えば、装置106は、分数、時間数、日数、週数、月数、年数などのような所定の時間間隔に基づいて、デバイス・アップデートについてのリクエストを装置管理サーバ104へ送信することができる。そのような実施形態では、ブルームフィルタ・データ構造が生成されている間、ポーリングするリクエスト208の1つ以上がネットワーク・エッジ102に到着することができる。いくつかの実施形態(示された)では、ネットワーク・エッジ102は、キャンペーン管理サービス108と通信することなく、装置がキャンペーンに属さないと決定し、アップデート無しまたは除外応答214を装置106へ返すことができる。
【0050】
図1に関して上記に説明されるように、キャンペーン管理サービス108は、ブルームフィルタ・データ構造の生成に引き続き、例えばメッセージ・サーバ116を経由して、ブルームフィルタ・データ構造をネットワーク・エッジ102へ送信216することができる。いくつかの例では、ネットワーク・エッジ102は、ブルームフィルタ・データ構造のキャッシュされたコピーを、装置管理サーバ104にまたは個別のブルームフィルタ装置114に格納することができる。いくつかの実施形態では、ネットワーク・エッジ102は、ブルームフィルタ・データ構造を初期化して、ネットワーク・エッジ102内へブルームフィルタ・データ構造を格納した後に、ブルームフィルタ・データ構造を使用して、デバイス・アップデート・リクエスト134の処理を開始することができる。様々な実施形態では、装置管理サーバ104は、ブルームフィルタ・データ構造の初期化に引き続き、格納されたブルームフィルタ・データ構造に関連するキャンペーンに属する任意の適切な装置106に、デバイス・アップデート154を返すことができる。
【0051】
図3Aおよび3Bは、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。いくつかの実施形態では、システム300は、とりわけ、ネットワーク・エッジ102、装置管理サーバ104、装置106およびキャンペーン管理サービス108のような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【0052】
図3Aにおいて示される例では、ブルームフィルタ・データ構造は、
図1および2に関して上記に説明されるように生成され格納されることができる。例えば、任意の適切な外部サーバ、ウェブ・ベースのインタフェース、コンピューティング・デバイスなどは、内部サービス110に送信される初期化リクエスト304を経由して、デバイス・アップデートなどについてのキャンペーンを初期化302することができる。いくつかの実施形態では、キャンペーン管理サービス108は、内部サービス110のデータベース112にキャンペーン・データおよびステータスを格納306することにより、キャンペーンを開始することができる。いくつかの実施形態では、キャンペーン管理サービス108は、キャンペーンの開始に先立って、キャンペーンのためのブルームフィルタ・データ構造のようなデータ構造を初期化308する。いくつかの実施形態では、キャンペーン管理サービス108は、メッセージ・サーバ116を経由して、ブルームフィルタ装置114へブルームフィルタ・データ構造を送信310することができる。
【0053】
まず、
図3Aは、ブルームフィルタ・データ構造によって表されるキャンペーンに含まれていない装置106からのデバイス・アップデート・リクエストを、システム100がどのように処理するかの例を示す。この例において示されるように、ネットワーク・エッジ102は、ブルームフィルタ装置114または装置管理サーバ104に、ブルームフィルタ・データ構造のコピーを格納することにより、キャンペーン312の実装、起動および実行を開始することができる。その後、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ102内に格納されるので、ネットワーク・エッジ102は、キャンペーンの情報に関するデバイス・アップデート・リクエストを処理することができる。いくつかの例では、デバイス・リクエストを処理する前に、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ102内に格納されるまで、システム100は待つ314ことができる。いくつかの実施形態では、ネットワーク・エッジ102は、様々な装置についての様々なデバイス・アップデートに関連する、複数の同時に起こるキャンペーンをサポートすることができる。いくつかのそのような実施形態では、それぞれのキャンペーンは個別のブルームフィルタ・データ構造によって表されることができ、これに対し他の実施形態では、複数のキャンペーンからのデータから生成される単一のブルームフィルタ・データ構造が、単一のデータ構造において全てのキャンペーンを表すために使用されることができる。
【0054】
図3Aにおいて示される例では、装置管理サーバ104は、先に述べられたように、装置106からのアップデート・リクエストを受け取るかまたは検知316することができる。いくつかの例では、装置管理サーバ104は、装置106からのデバイス・アップデートについてのリクエストを、ブルームフィルタ装置114へ送信318することができる。識別情報はリクエスト316に含まれており、ブルームフィルタ装置114は、装置106についての識別情報に基づいてまたは識別情報を使用してハッシュ値を生成することにより、キャンペーンにおける装置106のメンバーシップを決定320することができる。いくつかの例では、ブルームフィルタ装置114は、装置106についてのハッシュ値を、ブルームフィルタ装置114に格納されているブルームフィルタ・データ構造内のハッシュ値と比較することにより、ブルームフィルタ・データ構造内のマッチングするハッシュ値を見つけるかまたは識別しようとすることができる。ブルームフィルタは偽陰性を生成せず、したがって、マッチングするハッシュ値の欠如は、装置106がキャンペーンの一部ではないこと、および/または、利用可能なアップデート・データを装置106が有していないことを示す。示された例では、装置106についてのハッシュされた識別情報は、ブルームフィルタ・データ構造内にはなく、したがって、ブルームフィルタ装置114は、装置管理サーバ104を経由して、現時点において装置106がキャンペーンに無いかまたは装置106が利用可能なアップデートを有していないことを示す応答322を返す。
【0055】
図3Bはさらに、キャンペーンには本当に含まれていないが、ブルームフィルタ・データ構造の表現によるものであるように見える装置106からのデバイス・アップデート・リクエスト324を、システム100がどのように処理するかの例を示し、それは偽陽性と呼ばれることができる。先に述べられたように、様々な実施形態では、ブルームフィルタ・データ構造は、例えば約5%の割合といった約10%以下の割合で偽陽性を生成する可能性がある。この例において示されるように、装置管理サーバ104は、アップデートについての装置106からのリクエスト324を受け取るかまたは検知し、それは装置106がキャンペーンに属するか否かに関する決定を引き起こすことができる。この例では、リクエスト324は、リクエスト316を発行し先の例からのキャンペーンに含まれていない装置とは異なる装置106から到来するかまたは対応することができる。
【0056】
いくつかの例では、装置管理サーバ104は、装置106からのデバイス・アップデート324についてのリクエストを、ブルームフィルタ装置114へ送信326することができる。ブルームフィルタ装置114は、装置106についてのリクエストの識別情報に基づいてハッシュ値を生成し、生成されたハッシュ値と同じハッシュ値をブルームフィルタ・データ構造内に見つけることにより、リクエストする装置106がキャンペーンのメンバーであることを決定328することができる。ブルームフィルタ・データ構造に同じハッシュ値を見つけると、ブルームフィルタ装置114は、装置106がおそらくキャンペーンにあることを示す応答を装置管理サーバ104へ返す330(ブルームフィルタ・データ構造において識別されたハッシュ値が、装置106に対応する生成されたハッシュ値にマッチングしたので)。
【0057】
いくつかの実施形態では、装置管理サーバ104は、メッセージ・サーバ116を経由して、装置106についてのデバイス・アップデートについてのリクエストをキャンペーン管理サービス108へ送信332することができる。いくつかの例では、キャンペーン管理サービス108は、データベース112を照会334して、装置がキャンペーンのメンバーであるか否かを検索するか、またはそうでなければ決定することができ、これはブルームフィルタ・データ構造が偽陽性を生成した場合には当てはまらない可能性がある。データベース112がキャンペーンのためのデータおよびステータス情報をキャンペーン管理サービス108に返した336後、この特定の例では、キャンペーン管理サービス108は、リクエストする装置106がキャンペーンに属さないことを決定338する。いくつかの例では、キャンペーン管理サービス108は、メッセージ・サーバ116、ブルームフィルタ装置114、および/または装置管理サーバ104、或いはこれらの任意の組み合わせを経由して、装置106がキャンペーンに属さないことを示す応答を返す340ことができる。
【0058】
図3Bからのこの例では、ネットワーク・エッジ102は、装置106が実際にはキャンペーンの一部ではないにもかかわらず、装置106がキャンペーンの一部でありデバイス・アップデートを受け取るであろうことを示す偽陽性を生成している。これは、リクエストする装置106の識別情報から生成されるハッシュ値が、ブルームフィルタ・データ構造によって表されるキャンペーンの実際に一部である、異なる装置のハッシュ値に偶然マッチングするときに生じる。上記に説明されるように、この偽陽性エラーは、キャンペーン管理サービス108が、キャンペーンのためのデータおよびステータス情報にアクセスして、リクエストする装置106が実際にキャンペーンのメンバーであることを検証するときに、結局検知される。それでもなお、ブルームフィルタ装置114の様々な実施形態は、キャンペーンの一部ではない装置106に偽陰性のメンバーシップ応答を決して返さないので、ブルームフィルタ装置114の総合的な性能は、キャンペーン管理サービス108に送信され処理されるデバイス・アップデート・リクエスト(特に、キャンペーンのメンバーではないリクエストの数)の数を著しく低減することにより、リクエストする装置106が経験する待ち時間を低減し、エンド・トゥー・エンドでのリソース使用量および処理時間を低減する。
【0059】
図4は、ネットワーク・エッジを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。いくつかの実施形態では、方法400は、ネットワーク・エッジ102、装置管理サーバ104、ブルームフィルタ装置114、ネットワーク・エッジ602、キャンペーン・サービス608、またはこれらの任意の組み合わせのような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【0060】
この例に示されるように、ブロック402では、ネットワーク・エッジはデバイス・アップデートのためのキャンペーンを開始するリクエストを検知することができる。いくつかの実施形態では、任意の適切なサーバ、ウェブ・ベースのインタフェース、装置、またはコンピュータ化された装置は、キャンペーン開始日およびキャンペーン終了日のようなデータに加えて、キャンペーン中かまたはキャンペーンに属するコンピュータ化された装置のリストまたはセットを提供することにより、キャンペーンを開始することができ、ここで、リストまたはセット内のコンピュータ化された装置は、車両登録番号、製品シリアル番号、製品モデル番号などのような一意な識別子によってそれぞれ識別される。いくつかの実施形態では、ネットワーク・エッジについてのユニフォーム・リソース・ロケータは、デバイス・アップデートをリクエストするそれぞれのコンピュータ化された装置(例えばコンピュータ化された装置106)の保護されたメモリ内に格納される。ユニフォーム・リソース・ロケータは、コンピュータ化された装置が所定の認証されたネットワーク・エッジと安全に連絡をとることを可能にする。
【0061】
ブロック404では、ネットワーク・エッジは、キャンペーン管理サービス(例えばキャンペーン管理サービス108)にリクエストを送信することができる。いくつかの実施形態では、ネットワーク・エッジは、メッセンジャー装置またはサービス(例えばメッセージサービス116)を経由して、キャンペーン管理サービスにリクエストを送信することができる。メッセンジャー装置は、非同期のまたは同期した通信をサポートすることができる。例えば、メッセンジャー装置は、いくつもの数のリクエストを格納し、しばらく経ってそれらのリクエストをキャンペーン管理サービスへ送信することができる。いくつかの実施形態では、メッセンジャー装置は、1つ以上のネットワーク・エッジから1つ以上のキャンペーン管理サービスへ、いくつもの数のキャンペーンについてのリクエストを送信することができる。
【0062】
ブロック406では、ネットワーク・エッジは、キャンペーン管理サービスからリクエストされたキャンペーンに対応するブルームフィルタ・データ構造を受け入れるか、取得するか、取得するか、またはそうでなければアクセスすることができる。例えば、キャンペーン管理サービスによってキャンペーンを初期化するリクエストの処理に引き続き、ネットワーク・エッジは、キャンペーン管理サービスによって生成されたブルームフィルタ・データ構造を受け入れるかまたは取得することができる。いくつかの実施形態では、ブルームフィルタ・データ構造は、コンピュータ化された装置と通信する装置管理サーバ内のネットワーク・エッジ内に格納することができる。いくつかの例では、ブルームフィルタ・データ構造は、装置管理サーバにアクセスすることが可能な、個別の装置(例えばブルームフィルタ装置114)内のネットワーク・エッジ内に格納することができる。
【0063】
動作中に、装置管理サーバは、キャンペーンのためのデバイス・アップデートがリクエストする装置に利用可能か否かを決定することを試みているコンピュータ化された装置から、リクエストを受け取るかまたは検知することができる。装置管理サーバは、ローカルに格納されたブルームフィルタ・データ構造または個別のブルームフィルタ装置に照会することができ、コンピュータ化された装置がキャンペーンのメンバーではないことか、または、コンピュータ化された装置がキャンペーンのメンバーである可能性があり低い可能性で偽陽性と予想される傾向があることか、のどちらかを決定する。
【0064】
ブロック408では、ネットワーク・エッジは、ブルームフィルタ・データ構造に格納されたハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスから、コンピュータ化された装置が利用可能なデバイス・アップデートをおそらく持っていることを決定することができ、ここで、上に言及されるように、格納されたハッシュ値はブルームフィルタ・データ構造への照会により識別された。一方で、リクエストするコンピュータ化された装置が、キャンペーンの一部ではない場合またはそれについて利用可能ないかなるアップデートも有さない場合、その後、ネットワーク・エッジは、コンピュータ化された装置へ否定的な応答を返すことができる。これは、コンピュータ化された装置に関連するハッシュ値が、ブルームフィルタ・データ構造に格納されたハッシュ値のうちのどれともマッチングしない場合に生じる。
【0065】
いくつかの実施形態では、ネットワーク・エッジは、コンピュータ化された装置についての識別情報からいくつもの数のハッシュ値を生成し、そのハッシュ値を、ブルームフィルタ・データ構造に格納された値と比較することができる。例えば、ブルームフィルタ・データ構造は、5つ以上の個別のハッシュ関数に適用された、コンピュータ化された装置の識別情報からの出力に基づいて、5つ以上のハッシュ値を格納してもよい。いくつかの実施形態では、いくつもの数のハッシュ関数が、ブルームフィルタ・データ構造に格納されるハッシュ値を生成するために使用することができる。
【0066】
ブロック410では、ネットワーク・エッジは、コンピュータ化された装置に対応するデバイス・アップデート・リクエストを、キャンペーン管理サービスへ送信することができる。いくつかの実施形態では、ネットワーク・エッジは、ブルームフィルタ・データ構造内のハッシュ値にマッチングする、リクエストする装置についての識別情報に対応する1つ以上のハッシュ値の検知に応じて、デバイス・アップデート・リクエストをキャンペーン管理サービスへ転送することができる。いくつかの例では、キャンペーン管理サービスにデバイス・アップデート・リクエストを送信することは、コンピュータ化された装置が偽陽性とは対照的にキャンペーンに属していることの検証を可能にする。
【0067】
ブロック412では、コンピュータ化された装置が実際にキャンペーンのメンバーであることを、キャンペーン管理サービスが検証し、確認し、または決定した場合に、ネットワーク・エッジは、リクエストするコンピュータ化された装置に関連するデバイス・アップデートを、キャンペーン管理サービスから受け取るか、取得するか、またはそうでなければ取得することができる。いくつかの実施形態では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーンに対応する格納されたデータに基づいて検証することができる。例えば、データは、キャンペーンの一部としてデバイス・アップデートを取得することができる、コンピュータ化された装置についての識別情報のリスト(つまり、キャンペーンに含まれているコンピュータ化された装置に対応する識別子のリスト)を含むことができ、また、キャンペーン管理サービスは、リクエストする装置がリストに載っていることを決定することができる。いくつかの実施形態では、ネットワーク・エッジは、キャンペーン管理サービスからデバイス・アップデートを、直接的にまたはメッセンジャー装置を経由して、またはその他の適切なコンピューティング・デバイスから、受け取るかまたは取得することができる。
【0068】
ブロック414では、ネットワーク・エッジは、キャンペーン管理サービスから到来したデバイス・アップデートをコンピュータ化された装置へ送信することにより、コンピュータ化された装置を、アップデートするか、改訂するか、プロビジョニングするか、または修正することができる。いくつかの実施形態では、デバイス・アップデートは、コンピュータ化された装置内に格納されているソフトウェア、ファームウェアなどを修正することができる。ネットワーク・エッジは、デバイス・アップデートをコンピュータ化された装置に送信するか、またはそうでなければ提供することができ、それが受け取られる場合、コンピュータ化された装置は、デバイス・アップデートを自動的にインストールすることができる。いくつかの例では、デバイス・アップデートは、新しいアプリケーションをインストールし、既存のアプリケーションを修正し、ハードウェア・コンポーネントをコントロールするファームウェア・ドライバーのアップデートなどにより、コンピュータ化された装置を修正することができる。
【0069】
図4のプロセス・フローチャートは、方法400の動作が任意の特定の順序で実行されることになっているか、または、動作を同時に実行することができないか、または、方法400の動作が全ての事例に含まれることになっていることを示すようには意図されない。さらに、方法400は、任意の適切な数の追加の動作を含むことができる。例えば、方法400はまた、コンピュータ化された装置と、デバイス・アップデートを取得する前に相互のトランスポート・レイヤー・セキュリティ証明書を交換するキャンペーン管理サービスとを含むことができる。いくつかの実施形態では、ネットワーク・エッジは、キャンペーンを初期化するリクエストを検知して、そのリクエストをキャンペーン管理サービスに送信しない可能性がある。例えば、外部サーバ、ウェブ・ベースのインタフェースなどは、ネットワーク・エッジにアクセスすることなく、キャンペーンのためのデータをキャンペーン管理サービスへ直接的に送信することにより、キャンペーンを初期化してもよい。
【0070】
図5は、キャンペーン管理サービスを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。いくつかの実施形態では、方法500は、キャンペーン管理サービス108、データベース112、内部サービス110、キャンペーン・サービス608、またはこれらの任意の組み合わせのような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【0071】
ブロック502では、キャンペーン管理サービスは、キャンペーンのためにアップデートされる多くのコンピュータ化された装置を示すキャンペーン開始リクエストを、受け取るかまたは検知することができる。いくつかの実施形態では、キャンペーン管理サービスは、ネットワーク・エッジからの、または、ネットワーク・エッジからの非同期のまたは同期したメッセージを提供するメッセンジャー装置からのキャンペーン開始リクエストを検知することができる。いくつかの実施形態では、キャンペーン管理サービスは、ウェブ・ベースのインタフェース、キャンペーンを管理する装置などから、キャンペーン開始リクエストを直接的に検知することができる。上記に説明されるように、キャンペーン開始リクエストは、キャンペーンの一部としてデバイス・アップデートを受け取ることになっているそれぞれの装置の識別情報、キャンペーンの開始日または開始時間およびキャンペーンの終了日または終了時間などを含むことができる。
【0072】
ブロック504では、キャンペーン管理サービスは、アップデートされるコンピュータ化された装置に対応するデータを格納することができる。いくつかの実施形態では、キャンペーン管理サービスは、ローカルにまたは外部データベースにおいてアップデートされる、コンピュータ化された装置に対応するデータを格納することができる。いくつかの実施形態では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンに属するか否かを決定するために、データを分析するか、探索するか、または照会することができる。例えば、キャンペーン管理サービスは、一意な識別子を有するコンピュータ化された装置からのデバイス・アップデートについてのリクエストを後で検知する場合には、キャンペーン管理サービスは、装置(例えば、一意な識別子)がキャンペーンに含まれているか否かを決定するために、データを分析するか、探索するか、または照会することができ、そのデバイス・アップデートがそのコンピュータ化された装置に提供されるようにすることができる。
【0073】
ブロック506では、キャンペーン管理サービスは、キャンペーンに含まれておりこのようにしてキャンペーンのデバイス・アップデートが提供されることになっている、コンピュータ化された装置を表すブルームフィルタ・データ構造を生成することができる。様々な実施形態では、キャンペーンの一部であるコンピュータ化された装置のそれぞれについての一意な識別子(または他の識別情報)からハッシュ値が生成される場合、ブルームフィルタ・データ構造は複数のハッシュ値を含む。いくつかの例では、ブルームフィルタ・データ構造は、アップデートされるコンピュータ化された装置のそれぞれについてのデータまたは識別情報に基づいたハッシュ値を含むことができる。
【0074】
いくつかの実施形態では、ブルームフィルタ・データ構造は、アップデートされるそれぞれのコンピュータ化された装置についての識別情報に基づいた、いくつもの数のハッシュ値を含むことができる。例えば、ブルームフィルタ・データ構造は、いくつもの数のハッシュ値を格納することができる配列、リンクリストおよびベクトルなどを含むことができる。いくつかの実施形態では、それぞれのコンピュータ化された装置についての識別情報は、いくつもの数のハッシュ関数に適用され、それぞれのハッシュ関数は、ブルームフィルタ・データ構造に格納される出力ビットまたは一連のビットを生成する。いくつかの実施形態では、キャンペーン管理サービスは、キャンペーンに含められるコンピュータ化された装置の複数のグループに適用される結合動作に基づいたブルームフィルタ・データ構造を生成することができる。
【0075】
ブロック508では、キャンペーン管理サービスは、例えばブルームフィルタ・データ構造の初期化の後に、ブルームフィルタ・データ構造をネットワーク・エッジに送信するか、またはそうでなければ提供することができる。いくつかの実施形態では、キャンペーン管理サービスは、非同期のメッセンジャー装置(例えばメッセージ・サーバ116)を経由して、ブルームフィルタ・データ構造をネットワーク・エッジに送信することができる。例えば、非同期のメッセンジャー装置は、ブルームフィルタ・データ構造を受け入れて、その後、後の時間または日付まで、ブルームフィルタ・データ構造をネットワーク・エッジに送信することを遅らせることができ、それは、待ち時間が長くおよび/または低帯域幅の制限を有する、ネットワークインターフェイスを経由した通信を改善することができる。
【0076】
ブロック510では、キャンペーン管理サービスは、デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることができる。いくつかの実施形態では、ブロック508においてキャンペーン管理サービスがネットワーク・エッジに提供したブルームフィルタ・データ構造に基づいて、ネットワーク・エッジが、リクエストに対応するコンピュータ化された装置がおそらく(偽陽性を除いて)キャンペーンに属することを決定した後にのみ、キャンペーン管理サービスは、デバイス・アップデートについてのリクエストを受け取ることができる。いくつかのそのような実施形態では、リクエストするコンピュータ化された装置についての識別情報から生成されるかまたは由来するハッシュ値が、ブルームフィルタ・データ構造に格納されたハッシュ値にマッチングする場合にのみ、ネットワーク・エッジは、デバイス・アップデートについてのリクエストをキャンペーン管理サービスへ転送する。上記に説明されるように、リクエストするコンピュータ化された装置についての識別情報から生成されるかまたは由来するハッシュ値が、ブルームフィルタ・データ構造に格納された任意のハッシュ値にマッチングしない場合、その後、ネットワーク・エッジはキャンペーン管理サービスと連絡をとらず、その代わり、デバイス・アップデートをリクエストするがキャンペーンには含まれていないコンピュータ化された装置へ、正確な「アップデートは無い」応答を提供する。
【0077】
ブロック512では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーであることを確認、検証するか、またはそうでなければ決定することができる。いくつかの実施形態では、キャンペーン・データが、コンピュータ化された装置がキャンペーンの一部であることを示すか否かを決定するために、キャンペーン管理サービスは、デバイス・アップデートをリクエストしたコンピュータ化された装置の識別情報を、キャンペーンのために格納されたデータと比較する(例えばローカルでまたはデータベース内で)ことができる。様々な実施形態では、コンピュータ化された装置の識別情報は、リクエストに含まれている。より詳細な例として、キャンペーン管理サービスは、キャンペーン・データの一部である一意な識別子(例えばシリアル番号)のリスト中に、装置のシリアル番号のような、コンピュータ化された装置の一意な識別子を探索することができ、そこでは、キャンペーン・データ中の一意な識別子のリストは、キャンペーンの一部である装置を全て含む。
【0078】
ブロック514では、コンピュータ化された装置が実際にキャンペーンのメンバーであることを決定した後、キャンペーン管理サービスは、デバイス・アップデート・リクエスト(およびキャンペーン)に関連するデバイス・アップデートを、ネットワーク・エッジに送信することができる。いくつかの例では、デバイス・アップデートは、コンピュータ化された装置に格納されたファームウェア、ソフトウェア、またはそれらの任意の組み合わせに対して、追加、置換、および/または修正を行うコード、命令、バイナリなどとすることができる。
【0079】
ブロック512において、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーン管理サービスが確認せず、検証せず、またはそうでなければ決定しない場合には、キャンペーン管理サービスは、ブロック514の動作を行わない。様々な実施形態では、コンピュータ化された装置(例えばコンピュータ化された装置の識別情報)が、キャンペーン・データ中にリストされておらず、識別されず、またはそうでなければ表されていないので、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーではないことを決定することができる。
【0080】
いくつかの実施形態では、ブロック512において、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーン管理サービスが確認せず、検証せず、またはそうでなければ決定しない場合には、その後、キャンペーン管理サービスは、ブロック516において、リクエストする装置がキャンペーンの一部ではないこと、および/または、リクエストする装置についてのアップデートが無いことを示すメッセージなどを、ネットワーク・エッジに送信するか、またはそうでなければ提供するかまたは示す。
【0081】
図5のプロセス・フローチャートは、方法500の動作が任意の特定の順序で実行されることになっているか、または、動作を同時に実行することができないか、または、方法500の動作が全ての事例に含まれることになっていることを示すようには意図されない。さらに、方法500は、任意の適切な数の追加の動作を含むことができる。例えば、キャンペーンが終了した場合(例えばキャンペーンのための終了日が生じる場合)、例えば、キャンペーンの終了に応じて引き起こされる可能性がある、ブルームフィルタ・データ構造を格納しているキャッシュまたはメモリ素子をフラッシュするメッセージを、ネットワーク・エッジへ送信することによって、キャンペーン管理サービスは、ネットワーク・エッジにブルームフィルタ・データ構造を削除するよう命令することができる。
【0082】
図6は、デジタル資産を提供するためのサービスタイプの一例である、ネットワーク・エッジ602が証明書管理サービス604と対話する例示的な動作環境600を描写する。いくつかの実施形態では、証明書管理サービス604はV2X証明書管理サービスとすることができる。追加または代替の実施形態では、証明書管理サービス604はC2X証明書管理サービスとすることができ、1つ以上のコンピューティング・デバイス上の1つ以上のバーチャル・マシンなどの、サーバ(複数のサーバ)として実装することができる。示されるように、ネットワーク・エッジ602は、1つ以上のコンピュータ化された装置606についての、証明書などのようなデバイス・アップデートについてのリクエストを、キャンペーン・サービス608およびインターネットのようなネットワーク610を経由して、証明書管理サービス604に提出することができる。いくつかの実施形態では、デバイス・アップデートは、安全な環境にあるコンピュータ化された装置606上において、アプリケーションの実行を可能にすることができる。例えば、コンピュータ化された装置606が、ランタイム環境にある追加のコンピュータ化された装置との通信を安全に送信することを可能にする証明書を、デバイス・アップデートは含むことができる。
【0083】
或る実施形態では、コンピュータ化された装置606は、乗り物、船舶(例えばボート)、航空機、宇宙船、医療機器、ロボット、ドローン、無線または有線の通信モジュールおよびIoT装置の1つ以上に対応する。例えば、コンピュータ化された装置606は、乗り物、船舶、航空機、宇宙船、ロボット、ドローン、医療機器またはIoT装置の、OBUまたはECUに対応することができる。同様に例えば、コンピュータ化された装置606は、とりわけ、交通制御施設(例えば交通信号、信号または電子交通信号)、デジタル・ビルボード、歩行者警戒システム、オートバイ・センサー、自転車センサー、電子サイン、街灯センサーまたは構造物警告センサーの、RSUに対応することができる。
【0084】
いくつかの実施形態では、ネットワーク・エッジ602は、上記に説明されるようにブルームフィルタ・データ構造を使用することができ、コンピュータ化された装置606が証明書管理サービス604からデバイス・アップデートを受け取るかどうかを決定することができる。いくつかの例では、デバイス・アップデートは、登録証明書、匿名証明書、ファームウェアおよびソフトウェアなどを含むことができる。登録証明書は、ソフトウェア・アップデート、ファームウェア・アップデートまたはこれらの任意の組み合わせのようなデバイス・アップデートを、コンピュータ化された装置606へプロビジョニングすることを可能にする、任意の適切な電子証明書を含むことができる。匿名証明書は、コンピュータ化された装置606がランタイム環境の間にデータまたは通信を安全に交換すること可能にする、個別の電子証明書を含むことができる。いくつかの実施形態では、ネットワーク・エッジ602は、デバイス・アップデートキャンペーンに含まれていないコンピュータ化された装置606へ、応答を送信することができる。例えば、コンピュータ化された装置606の識別情報に基づいたハッシュ値は、デバイス・アップデートキャンペーンに関連するブルームフィルタ・データ構造に格納されたハッシュ値にマッチングしない可能性がある。いくつかの例では、ネットワーク・エッジ602は、コンピュータ化された装置606の1つ以上がデバイス・アップデートキャンペーンに含まれることを決定することができる。ネットワーク・エッジ602は、キャンペーン・サービス608を経由して、デバイス・アップデートについてのリクエストを、登録機関612、登録認証機関614、匿名認証機関616またはこれらの任意の組み合わせへ送信することができる。
【0085】
動作環境600では、デバイス・アップデートまたは証明書についてのリクエストは、任意の適切なインタフェースを経由して、キャンペーン・サービス608によってネットワーク・エッジ602から受け取られる。例えば、キャンペーン・サービス608は、とりわけ、クライアントのrepresentational state transfer(REST)プロトコルまたはsimple object access protocol(SOAP)プロトコルに基づいたAPIを実装することができる。
図6に示されるように、キャンペーン・サービス608は、パブリックまたはプライベートAPIを実装することができ、証明書管理サービス604は、V2XまたはC2X証明書管理サービスとすることができる。証明書管理サービス604は、デバイス・アップデートについてのリクエストを受け入れて、時間枠内にタスクを終えて、その後、キャンペーン・サービス608およびネットワーク610を経由して、結果(例えば、生成されたデバイス・アップデート、または証明書)をネットワーク・エッジ602に返す。いくつかの実施形態では、時間枠は、とりわけ証明書管理サービス604の処理キャパシティーに依存する、分数、時間数または日数でありえる。
【0086】
証明書管理サービス604は、リクエストされたデバイス・アップデートを生成するためのコンポーネントを含む。
図6の例では、これらのコンポーネントは、登録機関612、登録認証機関614、匿名認証機関616、第1のリンケージ機関618および第2のリンケージ機関620を含む。
【0087】
追加または代替の実施形態では、証明書管理サービス604のコンポーネントは、証明書管理サービス604がV2XまたはC2X証明書管理サービスとして構成されるか否かに依存して、変化することができる。例えば、証明書管理サービス604がC2X証明書管理サービスとして機能する場合、証明書管理サービス604は、登録認証機関614の役割に似ている役割を遂行するように構成された長期認証機関(LTCA)を含むことができる。同様に、証明書管理サービス604がC2X証明書管理サービスとして具体化される場合、証明書管理サービス604は、匿名認証機関616の役割に似ている役割を遂行する認証機関(AA)を含むことができる。証明書管理サービス604のコンポーネントは、次のパラグラフに述べられている。
【0088】
一例では、証明書管理サービス604はCMSとして具体化することができる。証明書管理サービス604の様々な実施形態は、非常に高いボリュームのデバイス・トランザクションおよび証明書生成処理に使用されてもよい。様々な実施形態では、証明書管理サービス604は、複数のサーバ、複数のハードウェア・セキュリティー・モジュール(HSM)、複数の計算するまたは計算エンジンおよび複数のアプリケーションプラットフォームを使用して、実装することができる。例示的な実施形態では、それぞれのアプリケーションプラットフォームは、登録機関612、登録認証機関614、匿名認証機関616およびリンケージ機関618,620をホストするための1つ以上のバーチャル・マシン(VM)を含むことができる。追加または代替の実施形態では、それぞれのアプリケーションプラットフォームは、ソフトウェア・アプリケーションをホストおよび実行することができる、例えばアプリケーションサーバ、コンピュータ、または他のコンピュータ・ハードウェアのような、1つ以上のハードウェア・プラットフォームを含むことができる。
図6の例では、登録認証機関614についてのアプリケーションプラットフォームは、登録認証機関614についてのアプリケーションを起動する1つ以上のVMとすることができ、匿名認証機関616についてのアプリケーションプラットフォームは、匿名認証機関616についてのアプリケーションをホストおよび起動するように動作可能な1つ以上のVMとすることができる。同様に、第1のリンケージ機関618についてのアプリケーションプラットフォームは、第1のリンケージ機関アプリケーションをホストおよび起動するように構成された1つ以上のVMとすることができ、第2のリンケージ機関620についてのアプリケーションプラットフォームは、第2のリンケージ機関アプリケーションをホストおよび起動するように動作可能な1つ以上のVMとすることができる。証明書管理サービス604の非限定的な例は、プライベート・データ・センター、例えばアマゾンからのアマゾン・ウェブ・サービス(AWS)のようなクラウド・データ・センター、または、プライベート・データ・センターとクラウド・データ・センターとのハイブリッドで、実装することができる。
【0089】
いくつかの実施形態では、証明書管理サービス604は、製造業者の分配機器またはネットワーク・エッジ602によって使用されるための、登録証明書および匿名証明書のようなセキュリティ証明書を含むデバイス・アップデートを提供することができる。或る実施形態では、証明書管理サービス604は、分配機器(図示せず)に証明書を提供するために、デジタル資産管理システム(DAMS(図示せず))と対話することができる。
【0090】
図6において示されるように、証明書管理サービス604のアーキテクチャーは、登録機関612、登録認証機関614、匿名認証機関616、第1のリンケージ機関618および第2のリンケージ機関620を含む。これらのコンポーネントのそれぞれは、それぞれが専用の計算エンジン(図示せず)を利用して、タスクを実行することができる。例えば、登録機関612は、登録機関計算エンジンを利用することができ、登録認証機関614は、登録認証機関計算エンジンを利用することができ、匿名認証機関616は、匿名認証機関計算エンジンを利用することができ、第1のリンケージ機関618は、第1のリンケージ機関計算エンジンを利用することができ、第2のリンケージ機関620は、第2のリンケージ機関計算エンジンを利用することができる。これらのコンポーネントのそれぞれの機能は、次のパラグラフに述べられている。
【0091】
いくつかの実施形態では、証明書管理サービス604のアーキテクチャーは、好都合に、セキュリティ機能からセキュリティ非関連のアプリケーションを分離する。
図6の例において示されるように、登録機関612、登録認証機関614、匿名認証機関616およびリンケージ機関618,620は、自身の専用の計算エンジン上で実行される自身のVM上のアプリケーションとして実装され、それらの全ては、任意のセキュリティ非関連のアプリケーションおよび機能と分離されている。これは、HSMの性能が遅いか、クラウド・サービス・プロバイダーがHSMを提供することができないか、または、HSMの適切な管理が不確かである従来のシステムを超える、技術的なおよびセキュリティ的な利点および改善の両方を提供する。証明書管理サービス604では、HSMを利用する暗号動作は、計算エンジン(例えば、1つ以上の計算エンジン)中で行われる。
【0092】
重大なセキュリティ機能を互いから分離して個別の計算エンジン上に配置することによって、
図6に示されるように、例えば登録機関612、登録認証機関614、匿名認証機関616およびリンケージ機関618,620によって行われるような、計算集約型の暗号およびセキュリティ機能(楕円曲線バタフライ展開計算または楕円曲線デジタル署名)は、既存の従来の登録機関システムよりも著しく速く行われる。下記に述べられるキャンペーン・サービス608に関連して、証明書管理システム604から取得されたデジタル資産を有するコンピュータ化された装置606のプロビジョニングを、ネットワーク610に関連する任意の技術的な性能の問題が妨害するまたは遅延することを防ぐことにより、この設計は、マルチクライアント環境中のトランザクション処理における著しい改善を可能にする。例えば、キャンペーン・サービス608は、どのコンピュータ化された装置606がデバイス・アップデートキャンペーンに属していて、デバイス・アップデートについてのリクエストを送信しているかを決定することができる。したがって、キャンペーン・サービス608は、コンピュータ化された装置606がデバイス・アップデートキャンペーンに属するかを決定することができ、そしてそうならば、プロビジョニング・プロセスの間またはしばらく経って、登録証明書および匿名証明書のような取得されたデバイス・アップデートを、コンピュータ化された装置606に提供する。いくつかの例では、コンピュータ化された装置606にプロビジョニングしている間、キャンペーン・サービス608は帯域幅問題、ネットワーク接続問題などを回避することができる。例えば、キャンペーン・サービス608は、多くのコンピュータ化された装置606がデバイス・アップデートについて登録機関612に照会するのを防ぐことができる。キャンペーン・サービス608はまた、ブルームフィルタ・データ構造内にハッシュ値を格納することにより、少ないデータ記憶装置を用いて、デバイス・アップデートについてのリクエストを速く処理することができ、ハッシュ値は、キャンペーンに属するコンピュータ化された装置606からの識別情報に基づくことができる。そのうえ、キャンペーン・サービス608は、いくつかの例では、CMS604から登録証明書および匿名証明書を同期してまたは非同期に取得することができ、登録証明書および匿名証明書を、コンピュータ化された装置606に同期してまたは非同期に提供することができる。いくつかの例では、登録証明書および匿名証明書の非同期の取得および分配は、それぞれのコンピュータ化された装置についてのプロビジョニング・プロセスの時間をより低減することができる。そのため、本開示に対応する実施形態は、キャンペーンの一部としてデバイス・アップデートを取得することになり、デジタル資産のようなデバイス・アップデートを証明書管理システム604から取得することになるコンピュータ化された装置606を決定するための、特定の技術的に有利なシステム・アーキテクチャーを提供する。
【0093】
いくつかの実施形態では、登録機関612によって実行される登録機関アプリケーションの規模が修正される場合、追加のVMを追加することができる一方で、登録機関計算エンジンの安全な計算能力に変更は必要とされない。その代わりに、セキュリティ計算が性能を制限している場合には、付加的で安全な、登録機関計算エンジンを追加することができる。この同じ多次元スケーリングは、証明書管理サービス604のその他のコンポーネントについてあてはまる。これらの能力は、既存の従来の証明書管理サービス(CMS)を超える著しい性能の改善およびスケーラビリティを提供する。いくつかの実施形態では、登録機関612、登録認証機関614、匿名認証機関616、リンケージ機関618,620についてのそれぞれのアプリケーションプラットフォームは、証明書管理サービス604のこれらコンポーネントの全てが互いに独立してスケーリングできるように、入力メッセージキューのそれぞれのセットを経由して、計算エンジンと通信可能に接続されている。
【0094】
上に述べられ、
図6の非限定的な例において示されたように、登録機関612、認証機関614,616およびリンケージ機関618,620のそれぞれは、自身のバーチャル・マシン(VM)上のアプリケーションとして実装することができる。追加または代替の実施形態では、登録機関612、認証機関614,616、リンケージ機関618,620の1つ以上は、ハードウェア・プラットフォーム(例えば、サーバまたは計算エンジン)上で実行することができる。アプリケーションプラットフォーム(例えばVMまたはハードウェア・プラットフォーム)上で実行するこれらアプリケーションのそれぞれの役割および機能は、次のパラグラフに述べられている。
【0095】
様々な実施形態では、登録機関612は、電子証明書のユーザリクエストを検証するプロビジョニング・ネットワーク内の機関、または他のタイプのデジタル・セキュリティ資産になりえて、認証機関(例えば登録認証機関614および匿名認証機関616)が、電子証明書を発行することを可能にすることができる。様々な実施形態では、登録機関612は、任意の適切な公開鍵インフラストラクチャー(PKI)技術を実装することができる。様々な実施形態では、キャンペーン・サービス608は、とりわけrepresentational state transfer(REST)ウェブ・サービスまたはSOAPベースのサービスとして実装することができる登録機関612へ、証明書リクエストを渡すことができる。様々な実施形態では、同時に実行する登録機関612の複数のインスタンスが存在することができる。これは、
図6に示される証明書管理サービス604の他のコンポーネントについて同様に表される。証明書管理サービス604の登録機関機能は、RESTウェブ・サービスとして実装される登録機関612の複数のインスタンスによってその機能を実行することができるという点で、一元化されていない。登録機関612についての1つの役割は、署名する匿名認証機関616がどの証明書が特定のコンピュータ化された装置に格納されるかを決定するのを妨げる間に、証明書プロビジョニング・リクエストを承諾し遂行することである。登録機関612は、証明書管理サービス604内においてそれらの役割を遂行するために、メッセージキューを経由して、匿名認証機関616およびリンケージ機関618,620と直接的に対話することができる。
【0096】
或る実施形態では、登録機関612(および
図6のそれ以外のコンポーネント)は、データベース(図示せず)に接続されることができる。証明書管理サービス604は、データ記憶および取得用のデータ・ストアまたはデータベースのコレクションを利用することができる。例えば、使用されるデータベースは、1つ以上の論理的なまたは物理的なデータベース・ユニットから成ることができ、それぞれのユニットは、必要な場合にデータ分離を可能にする1つ以上のテーブルを有している。本明細書において使用されるように、用語「データベース」は1つ以上のデータベースまたはデータ・ストアを表す。或る実施形態では、複数のデータベースの使用は、登録機関612と
図6の他のコンポーネントとの間でのデータ分離を可能にする。例えば、複数のデータベースのそのような使用は、登録機関612と、認証機関614,616と、リンケージ機関618,620との間のデータ分離を可能にする。
【0097】
いくつかの実施形態では、証明書管理サービス604によって使用されるデータベースは、アクセスが速く待ち時間が短い1つ以上のデータベースのコレクションである。いくつかの実施形態では、データベースは、例えばアマゾン・ウェブ・サービスによって提示されるDynamoDBデータ・サービスのような、NoSQLデータベースまたはデータベース・サービスとすることができる。様々な実施形態では、データベースに格納されるデータは、アプリケーションに依存するけれども、過去に発行された証明書、様々なリンケージ機関値、証明書が発行された装置上のデータ、オペレーターのアクションなどを含むことができる。いくつかの例では、データは、暗号化されていないか、暗号化されているか、またはそれらの組み合わせのいずれかで格納することができる。
【0098】
様々な実施形態では、登録機関612によって作られた電子証明書が異なるセグメントへ、例えば登録電子証明書および匿名電子証明書へ分割されるように、証明書管理サービス604は、登録認証機関614および匿名認証機関616を含んでいる。同時に実行する登録認証機関614の複数のインスタンスが存在することができるので、登録認証機関614は、証明書管理サービス604の一元化されていないコンポーネントである。例えば、いくつかの実施形態では、同時に実行する登録認証機関614の複数のインスタンスが存在することができる。登録認証機関614は、登録機関612から登録証明書についてのリクエストを受け取ることができる。登録認証機関614の1つの役割は、登録機関612からのリクエストを遂行し、例えば分配機器のような端末装置へ登録証明書を発行することである。いくつかの実施形態では、登録認証機関614は、CMS604内においてその役割を遂行するために、登録機関612と直接的に対話する。
【0099】
匿名認証機関616は、同時に実行する匿名認証機関616の複数のインスタンスが存在する可能性があるという点で、CMSの一元化されていないコンポーネントである。匿名認証機関616について、様々な実施形態では、並行して同時に実行する匿名認証機関616の複数のインスタンスが存在することができる。匿名認証機関616は、匿名証明書についてのリクエストを登録機関612から受け取ってもよい。匿名認証機関616の役割は、登録機関612からのリクエストを遂行し、例えばコンピュータ化された装置606のような端末装置へ匿名証明書を発行することである。或る実施形態では、匿名認証機関616は、V2V機能についての短期の匿名証明書のリクエストを遂行する。いくつかの実施形態では、匿名認証機関616は、CMS604内においてその機能を遂行するために、登録機関612と直接的に対話する。
【0100】
様々な実施形態では、
図6に示されるリンケージ機関618および620は、証明書リクエスターのID(つまり証明書リクエスター装置の一意な識別子)を、取り消し目的について発行された匿名証明書にリンクする。すなわち、第1のリンケージ機関618および第2のリンケージ機関620は、証明書リクエスター装置の一意な識別子としてのそれぞれのリンケージ値を、発行された匿名証明書に提供する。第1のリンケージ機関618および第2のリンケージ機関620は、リンケージ値についてのリクエストを登録機関612から受け取ることができ、リクエストされたリンケージ値を登録機関612に提供することができる。リンケージ機関618,620は、リンケージ値についてのリクエストを遂行するために、登録機関612と直接的に対話する。
【0101】
様々な実施形態では、CSM604の計算エンジンはHSMを含むことができ、これにより、これらのコンポーネントがハッカーから過度に脅かされることなく、安全な計算を行うことを可能にする。いくつかの実施形態では、計算エンジンは、組み込みHSMを必要とすることなくそれ自身が安全な計算を行うように設計されることができ、そのような実施形態では、それらはHSMを具体化する。
【0102】
様々な実施形態では、CMS604において異なるHSMバージョンが使用されてもよい。例えば、HSMは、1つ以上の計算エンジン内にプラグイン・カードとしてインストールされた組み込みHSMを含むことができる。そのような例示的な実施形態では、組み込みHSMは、1つ以上の計算エンジン内に、Peripheral Component Interconnect(PCI)HSMまたはPCI Express(PCIe)HSMとしてインストールされることができる。また、例えば、証明書管理サービス604内のHSMは、自身の筐体内において計算エンジンから分離される、外付けの、ネットワークに取り付けられたまたはネットワークに接続されたHSMを含むことができる。
【0103】
当業者の一人であれば、
図6に示されるコンポーネントおよび実施形態の詳細は、説明の簡潔さおよび明瞭さのために提示された例であることを認識するであろう。この例は制限を意図するものではなく多くの変更が可能であり、他のコンポーネント、プロセス、実施形態の詳細および変更を、本明細書に記述された技術原理から逸脱することなく使用することができる。
【0104】
図7は、コンピューティング環境700の例示的なブロック図であり、本技術の実装に対応するシステムおよび方法の実装に使用することができるコンピューティング・システム702を含む。他のコンポーネントおよび/またはアレンジメントが使用されてもよい。いくつかの実施形態では、コンピューティング・システム702は、とりわけ、ネットワーク・エッジ102、キャンペーン管理サービス108、ネットワーク・エッジ602またはキャンペーン・サービス608のような、
図1-6の様々なコンポーネントを実装するために、少なくとも部分的に使用することができる。いくつかの実施形態では、コンピューティング・システム700に類似する一連のコンピューティング・システムは、ネットワーク704を経由して互いに通信することが可能な
図1-6のコンポーネントのうちの1つを実装するように、それぞれが専門のハードウェアを用いてカスタマイズされ、および/または専門のサーバとしてプログラムされることができる。
【0105】
図7に示される例では、コンピューティング・システム700は、中央処理装置(CPU)706、メモリ708、入力/出力(I/O)装置710、ハードウェア・セキュリティー・モジュール(HSM)712および不揮発性記憶装置714のような多くのコンポーネントを含む。システム700は様々な方法において実装することができる。例えば、統合型プラットフォーム(サーバ、ワークステーション、パーソナル・コンピュータ、ラップトップなどのような)としての実施形態は、CPU706、メモリ708、不揮発性記憶装置714およびI/O装置710を含むことができる。そのような構成では、コンポーネント706,708,714,710は、ローカルデータ・バスを通じて接続し通信してもよいし、外部I/O接続を経由して、データ・リポジトリ716(例えば個別のデータベース・システムとして実装された)にアクセスしてもよい。I/Oコンポーネント710は、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(セルラーフォン・ネットワークまたはインターネットのようなWAN)のようなネットワーク、および/または他の適切な接続を通じて、直通の通信リンク(例えば、配線による接続またはローカルのWi-Fi(登録商標)接続)を通じて、外部装置に接続することができる。システム700は、スタンドアローンとすることができるか、または、より大きなシステムのサブシステムとすることができる。
【0106】
CPU706は、カリフォルニア州サンタクララのインテル(登録商標)コーポレーションによって製造されたコア(登録商標)ファミリーからのマイクロプロセッサ、またはカリフォルニア州サニーヴェールのAMD(登録商標)コーポレーションによって製造されたアスロン(登録商標)ファミリーからのマイクロプロセッサのような、1つ以上の既知のプロセッサまたは制御演算装置とすることができる。メモリ708は、本技術の実施形態に関連する或る機能、方法およびプロセスを行うためにCPU706によって実行または使用される命令および情報を格納するように構成された、1つ以上の速い記憶装置とすることができる。記憶装置714は、揮発性若しくは不揮発性、磁気、半導体、テープ、光学または他のタイプの記憶装置、或いは、CDおよびDVDのような装置並びにソリッドステート装置を含む、長期記憶を意図したコンピュータ可読媒体とすることができる。
【0107】
図示する実施形態では、メモリ708は、CPU706によって実行された時に、本技術に対応する様々な動作、手続き、プロセスまたは方法を行う、記憶装置714からまたはリモートシステム(図示せず)からロードされる、1つ以上のプログラムまたはアプリケーション718を含む。或いはまた、CPU706は、システム700からリモートに設置された1つ以上のプログラムを実行することができる。例えば、システム700は、実行された時に本技術の実施形態に関連する機能およびプロセスを行う1つ以上のリモートプログラムに、ネットワーク704を経由してアクセスすることができる。
【0108】
一つの実施形態では、メモリ708は、ネットワーク・エッジ102用に、および/またはキャンペーン管理サーバ108用に、本明細書に記述される専門の機能および動作を行うためのプログラム718を含むことができる。いくつかの実施形態では、メモリ708は、付随的な機能を本技術へ提供する他の方法およびプロセスを実現する他のプログラムまたはアプリケーションを含むことができる。いくつかの例では、メモリ708は、任意の適切な非一時的なコンピュータ可読媒体を含むことができる。例えば、非一時的なコンピュータ可読媒体は、本明細書に記述される技術に従って命令を実行するようにCPU706に命令する、コンピュータ実行可能な命令を含むことができる。
【0109】
メモリ708はまた、本技術に無関係な他のプログラム(図示せず)を用いて、および/または、CPU706によって実行された時に当該分野において周知のいくつかの機能を行うオペレーティング・システム(図示せず)を用いて、構成されることができる。例示的には、オペレーティング・システムは、マイクロソフトWindows(登録商標)、Unix(登録商標)、Linux(登録商標)、アップル・コンピュータ(登録商標)オペレーティング・システム、または他のオペレーティング・システムとすることができる。オペレーティング・システムの選択およびオペレーティング・システムの使用さえも、本技術にとっては重大ではない。
【0110】
HSM712は、デジタル・セキュリティ資産を安全に生成および格納し、および/または、暗号化およびセンシティブな様々な計算を安全に行うプロセッサを、それ自身に備える装置とすることができる。HSM712は、攻撃者による実行可能なアクセスから、暗号化キーのようなデジタル・セキュリティ資産および他の機密データを保護する。いくつかの実施形態では、HSMは、コンピューティング・システム700に直接的に取り付けるプラグイン・カードまたはボードとすることができる。
【0111】
I/O装置710は、データがシステム700によって受け取られおよび/または送信されることを可能にする1つ以上の入出力装置を含むことができる。例えば、I/O装置710は、データがユーザから入力されることを可能にする、キーボード、タッチスクリーン、マウスなどのような、1つ以上の入力装置を含むことができる。さらに、I/O装置710は、データがユーザに出力されるかまたは提示されることを可能にする、ディスプレイ・スクリーン、CRTモニター、液晶モニター、プラズマ・ディスプレイ、プリンタ、スピーカー装置などのような、1つ以上の出力装置を含むことができる。I/O装置710はまた、コンピューティング・システム700が他の機器および装置と例えばデジタルで通信することを可能にする、1つ以上のデジタルのおよび/またはアナログの通信入出力装置を含むことができる。I/O装置710には、他の構成および/または数の入力および/または出力装置を組み込むことができる。
【0112】
示された実施形態では、システム700は、ネットワーク704(インターネット、プライベート・ネットワーク、仮想プライベート・ネットワーク、セルラー・ネットワーク若しくは他のネットワーク、またはこれらの組み合わせのような)に接続され、そして次には、サーバ、パーソナル・コンピュータ、ラップトップ・コンピュータ、クライアント装置などのような、様々なシステムおよびコンピューティング機器に接続することができる。一般に、システム700は、ネットワーク704を経由して、外部機器および装置からデータを入力することができ、外部機器および装置へデータを出力することができる。
【0113】
図7に示される例示的な実施形態では、データ・リポジトリまたはデータソース716は、システム700の外部にあるスタンドアローンのデータベースである。他の実施形態では、データソース716はシステム700によってホストされることができる。様々な実施形態では、データソース716は、本技術に対応するシステムおよび方法を実装するために使用されるデータを管理および格納することができる。例えば、データソース716は、キャンペーンのそれぞれのコンピュータ化された装置についての識別情報またはデータを含むデータ構造などを、管理および格納することができる。データソース716はまた、いくつもの数のハッシュ関数に適用される識別情報に基づいたハッシュ値を含むブルームフィルタ・データ構造を、管理および格納することができる。
【0114】
いくつかの実施形態では、データソース716は、情報を格納し、システム700を通じてアクセスされおよび/または管理される、1つ以上のデータベースを含むことができる。例示的には、データベース716は、オラクル(登録商標)データベース、サイベース(登録商標)データベース、または他のリレーショナル・データベースとすることができる。しかしながら、本技術に対応するシステムおよび方法は、分離するデータ構造若しくはデータベースに、またはデータベース若しくはデータ構造の使用にさえ制限されない。
【0115】
当業者の一人であれば、
図7中のシステムのコンポーネントおよび実施形態の詳細は、説明の簡潔さおよび明瞭さのために提示された例であることを認識するであろう。他のコンポーネントおよび実施形態の詳細を使用することができる。
【0116】
先に述べた例は、説明の明瞭さのために、OBU、ECUおよびRSUなどのようなコンピュータ化された装置の特定の例を使用するけれども、本技術はそれらの特定の例に制限されない。本技術に対応する様々な実施形態は、とりわけ、医療機器(例えば透析機、輸液ポンプなど)、ロボット、ドローン、自律的な乗り物および無線通信モジュール(例えば、embedded Universal Integrated Circuit Cards(eUICC))のような多種多様なコンピュータ化された装置を用いて、それら多種多様なコンピュータ化された装置のために使用することができる。
【0117】
本技術の他の実施形態は、本明細書の考察および本明細書に開示された技術の実践により、当業者には明らかであろう。例示的な実施形態の様々な修正と同様に、開示された主題に属する、当業者には明らかである主題の他の実施形態は、開示された主題の範囲内に位置するものとする。