(57)【要約】      （修正有）【課題】コンピュータ化された装置を安全に更新するためのシステム、装置及び方法を提供する。【解決手段】システムは、キャンペーン管理サービスとネットワーク・エッジを含む。キャンペーン管理サービスは、更新される装置の数を示すキャンペーン開始リクエストを検知し、更新される装置に対応するデータを格納し、更新される装置の各々についてのデータに基づいたハッシュ値を含むブルームフィルタ・データ構造を生成し、それをネットワーク・エッジに送信する。ネットワークエッジは、装置がキャンペーン管理サービスから更新を取得するか否かを決定するために、キャンペーン管理サービスからのブルームフィルタ・データ構造を使用し、更新を取得し、装置に更新を送信し、装置が更新をインストールすることにより、装置を修正する。【選択図】図１
2020201959.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ化された装置にアップデートを提供するためのシステムであって、
キャンペーンのためにアップデートされるコンピュータ化された装置のセットを示すキャンペーン開始リクエストを検知することと、
前記アップデートされるコンピュータ化された装置のセットに対応する複数のハッシュ値を含むブルームフィルタ・データ構造を生成することと、
前記ブルームフィルタ・データ構造をネットワーク・エッジに提供することと、
を含む動作を第１のプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービスと、
前記ブルームフィルタ・データ構造の前記複数のハッシュ値のうちのハッシュ値にマッチングする前記コンピュータ化された装置に関連するハッシュ値に基づいて、前記キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することと、
前記コンピュータ化された装置が前記キャンペーンのメンバーであることを確認する前記キャンペーン管理サービスに応じて、前記キャンペーン管理サービスからの前記コンピュータ化された装置に関連する前記デバイス・アップデートを取得することと、
前記コンピュータ化された装置に前記デバイス・アップデートを提供し、それにより前記デバイス・アップデートが前記コンピュータ化された装置を修正することと、
を含む動作を第２のプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジと、
を備えるシステム。
【請求項２】
前記ネットワーク・エッジは、
前記ブルームフィルタ・データ構造を使用して、前記コンピュータ化された装置が前記キャンペーンに属さないと決定することと、
前記コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、前記キャンペーン管理サービスと通信することなく前記コンピュータ化された装置に提供することと、
を含む動作を前記第２のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項１に記載のシステム。
【請求項３】
前記コンピュータ化された装置は、モノのインターネット（ＩｏＴ）の装置、民生機器または乗り物である、請求項１に記載のシステム。
【請求項４】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項１に記載のシステム。
【請求項５】
前記デバイス・アップデートは、前記コンピュータ化された装置にインストールされるソフトウェアまたはファームウェアを含む、請求項１に記載のシステム。
【請求項６】
前記デバイス・アップデートは、インストール情報またはインストール・スクリプトをさらに含む、請求項５に記載のシステム。
【請求項７】
前記キャンペーン管理サービスは、
アップデートされる前記コンピュータ化された装置に対応するデータを格納すること、
を含む動作を前記第１のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項１に記載のシステム。
【請求項８】
前記データは、キャンペーン開始日、キャンペーン終了日、複数の車両登録番号、複数の製品シリアル番号および製品モデル番号の１つ以上を含む、請求項７に記載のシステム。
【請求項９】
前記キャンペーン管理サービスは、
前記データへアクセスすることにより、前記コンピュータ化された装置が前記キャンペーンにあるか否かを決定すること、
を含む動作を前記第１のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項７に記載のシステム。
【請求項１０】
前記ブルームフィルタ・データ構造は、前記セット内のコンピュータ化された装置の数にかかわらず一定のサイズである、請求項１に記載のシステム。
【請求項１１】
前記ブルームフィルタ・データ構造を生成することは、
偽陽性レートしきい値に基づいて、前記ブルームフィルタ・データ構造についての前記ハッシュ値を生成するハッシュ関数の数を調節することを含む、請求項１に記載のシステム。
【請求項１２】
前記ブルームフィルタ・データ構造が生成されると、前記システムにより、前記コンピュータ化された装置が前記デバイス・アップデートのために前記ネットワーク・エッジをポーリングする、請求項１に記載のシステム。
【請求項１３】
前記キャンペーン管理サービスは、
前記キャンペーンの終了時に前記ブルームフィルタ・データ構造を削除するように前記ネットワーク・エッジに命令すること、
を含む動作を前記第１のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む、請求項１に記載のシステム。
【請求項１４】
コンピュータ化された装置の前記セット内のそれぞれのコンピュータ化された装置は、前記ネットワーク・エッジと通信するためのユニフォーム・リソース・ロケータを含む、請求項１に記載のシステム。
【請求項１５】
複数のハッシュ値を含むブルームフィルタ・データ構造をキャンペーン管理サービスから取得することと、
前記ブルームフィルタ・データ構造のハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、前記キャンペーン管理サービスから前記コンピュータ化された装置がデバイス・アップデートを受け取ることを決定することと、
前記コンピュータ化された装置に対応するデバイス・アップデート・リクエストを前記キャンペーン管理サービスへ送信することと、
前記コンピュータ化された装置が前記キャンペーンのメンバーであることを前記キャンペーン管理サービスが確認した後に、前記デバイス・アップデート・リクエストに関連する前記デバイス・アップデートを前記キャンペーン管理サービスから取得することと、
前記コンピュータ化された装置に前記デバイス・アップデートを提供し、それにより前記コンピュータ化された装置が前記デバイス・アップデートをインストールすることと、
を含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジ・デバイス。
【請求項１６】
前記動作はさらに、
前記ブルームフィルタ・データ構造を使用して、前記コンピュータ化された装置が前記キャンペーンに属さないと決定することと、
前記コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、前記キャンペーン管理サービスと通信することなく前記コンピュータ化された装置に提供することと、
を含む、請求項１５に記載のネットワーク・エッジ。
【請求項１７】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項１５に記載のネットワーク・エッジ。
【請求項１８】
前記デバイス・アップデートは、前記コンピュータ化された装置にインストールされるソフトウェアまたはファームウェアを含む、請求項１５に記載のネットワーク・エッジ。
【請求項１９】
キャンペーンのためのデバイス・アップデートを用いて複数のコンピュータ化された装置がアップデートされることを指定するキャンペーン開始リクエストを検知することと、
アップデートされる前記複数のコンピュータ化された装置に対応するデータを格納することと、
複数のハッシュ値を含むブルームフィルタ・データ構造を生成することであり、それぞれのハッシュ値は、前記複数のコンピュータ化された装置内の前記コンピュータ化された装置のそれぞれについての前記データに基づいている、生成することと、
前記ブルームフィルタ・データ構造をネットワーク・エッジに提供することと、
前記デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることと、
アップデートされる前記複数のコンピュータ化された装置に対応する前記データに基づいて、前記コンピュータ化された装置が前記キャンペーンのメンバーであることを確認することと、
前記リクエストに関連する前記デバイス・アップデートをネットワーク・エッジへ提供することであり、前記コンピュータ化された装置によってアクセスされるかまたは格納される電子データを修正するための前記デバイス・アップデートを提供することと、
を含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービス。
【請求項２０】
前記デバイス・アップデートは、登録証明書または匿名証明書を含む、請求項１９に記載のキャンペーン管理サービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、デバイス・アップデートを安全に提供するためのシステム、装置および方法に関する。より詳細には、本開示は、アップデートキャンペーンに含まれている、Ｖ２Ｘ乗り物中のコンピュータ化された装置のようなコンピュータ化された装置へデバイス・アップデートを提供するための、改善されたシステム、装置および方法に関する。
【背景技術】
【０００２】
コンピュータが小型化してコモディティ化されるにつれ、製造業者は、いくつもの数の組み込みコンピュータおよびプロセッサを含む、より多くの様々な装置を生産している。コンピュータ化された装置内のコンピュータは、装置の動作をコントロールすることができ、データを収集、格納、共有し、他のコンピュータおよび他のコンピュータ化された装置と通信し、そしてそれ自身のソフトウェアをとりわけアップデートすることができる。モノのインターネット（ＩｏＴ）は、組み込みプロセッサ、エレクトロニクス、ソフトウェア、データ、センサー、アクチュエーター、および／またはネットワーク接続を有する、コンピュータ化された物理デバイスのネットワークであり、インターネット、セルラー・ネットワークおよび他のワイヤレス・ネットワークを含むデジタル・ネットワークを経由して、これらの装置が接続しデータを交換することを可能にする。典型的には、それぞれの「モノ」は、その組み込みコンピューティング・システムを通じて一意に識別可能であり、既存のインターネット・インフラストラクチャー内において相互に動作することができる。ＩｏＴの意味での「モノ」は、とりわけ、民生機器、ビジネスおよび企業セッティングにおいて使用される企業向け機器、製造機械、農業用機器、住宅および建物内のエネルギーを消費する装置（スイッチ、電力コンセント、機器、照明装置、電球、テレビ、ガレージ・ドア・オープナー、スプリンクラー装置、セキュリティー・システムなど）、医療およびヘルスケア装置、インフラストラクチャー管理装置、ロボット、ドローン、並びに輸送装置および乗り物などのような、多種多様なコンピュータ化された装置を表すことができる。
【０００３】
多くの例では、現代の乗り物および輸送機械類（例えば自動車、トラック、航空機、列車、船舶、オートバイ、スクーターなど）は、それらのサブシステムにいくつかの組み込みプロセッサまたは組み込みコンピュータを含んでおり、少なくともいくつかの様相においてコンピュータ制御である。同様に、ますます多くの現代の輸送インフラストラクチャー装置（例えば交通信号灯、交通監視カメラ、交通センサー、橋梁モニター、橋梁制御システムなど）は、少なくとも１つのそしてしばしば多数の組み込みプロセッサまたは埋込式コンピュータ・システムを含み、少なくともいくつかの様相においてコンピュータ制御である。輸送ネットワークのこれらコンピュータ制御の要素は、典型的には互いに通信して様々なタイプの情報をやりとりし、またそれらは、安全で正確で効率的で信頼できる動作のために、車両間通信（Ｖ２Ｖ；Ｃａｒ−ｔｏ−Ｃａｒ（Ｃ２Ｃ）としても知られている）において他の車両との間で送受信される情報、および／または、車両インフラストラクチャ間通信（Ｖ２Ｉ；Ｃａｒ−ｔｏ−Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（Ｃ２Ｉ）としても知られている）においてインフラストラクチャ要素との間で送受信される情報に反応および応答し、それらの動作を変更するか、またはそうでなければ依存する場合がある。Ｖ２ＶおよびＶ２Ｉシステムはあわせて、一般に、Ｖ２Ｘシステムまたはインフラストラクチャーと呼ばれている。
【０００４】
コンピュータ化された装置内のコンピュータは、それらのソフトウェア、および／または、ファームウェア並びにデータに従って動作する。安全で適切な動作を保証するために、コンピュータ化された装置は、適切なソフトウェア、ファームウェア、実行可能な命令、電子証明書（例えば公開鍵証明書）、暗号化キーなど（以下、一括して「デジタル資産」または「ソフトウェア」と呼ぶ）を用いて、製造業者によって意図されるように適切に初期化されアップデートされなければならなく、そのため、ＩｏＴは、認証された既知の優良なソフトウェアおよびデータを実行している装置から構成される。しかしながら、権限の無い人または団体（例えばハッカー）が、コンピュータ化された装置内のソフトウェアを置換するまたは変更する場合に問題が生じる。また、より古いソフトウェア、試験されていないソフトウェア、承認されていないソフトウェア、および／または、既知のバグを持ったソフトウェアが、コンピュータ化された装置にインストールされる場合にも問題が生じる。
【０００５】
従来のシステムは、Ｖ２Ｘ対応自動車の全てについてのソフトウェアをアップデートするキャンペーンのような、多数の装置を含む「キャンペーン」についてのデバイス・アップデート・リクエストを処理するために、ハードウェアおよび他のリソースの有意義な（ｓｉｇｎｉｆｉｃａｎｔ）割り振りを要求することができ、Ｖ２Ｘ対応自動車は、特定の製造メーカー、モデルおよび年式のもの、であり／または、特定のデジタル資産（例えば、証明書の特定のセットの１つ）を持っており、それは何十または何十万もの台数に達する可能性がある。例えば、大規模なキャンペーン用のデバイス・アップデート・リクエストを処理している従来のシステムは、キャンペーンの一部ではない装置（例えば、Ｖ２Ｘ環境の一部であるが、キャンペーンの特定の製造メーカー、モデル、年式および／または証明書セットではない自動車）からのリクエストに点在された、キャンペーンの一部である装置のセット（例えば、特定の製造メーカー、モデル、年式および／または証明書グループである自動車）からのリクエストを含む全てのリクエストを処理するために、大量のメモリ、プロセッサ、ネットワーク帯域幅などを要求する。本明細書において参照されるキャンペーンは、コンピュータ化された装置の特定のグループについてのデバイス・アップデートを含むことができ、ここで、デバイス・アップデートは、ソフトウェア・アップデートおよびファームウェア・アップデートなどを含むことができる。
【０００６】
いくつかの従来のシステムは、コンピュータ化された装置がキャンペーンの一部としてデバイス・アップデートを受け取るべきか否かを決定するために、例えば、リクエストしている自動車が、キャンペーンに含まれる製造メーカー、モデル、年式および／または証明書の特定のセットにあるか否かを決定するために、リニアサーチまたは二分探索法を使用することができる。しかしながら、リニアサーチおよび二分探索法は、典型的には大量のデータを格納することを要求し、データの探索は、典型的には相当な量の処理時間およびパワーを要求する。さらに、個々のそのような探索を終えるのに必要な時間の量は、キャンペーンにおける装置（例えば自動車）の数に従って成長する。したがって、デバイス・アップデート用のキャンペーンにおいてコンピュータ化された装置が含まれるか否かを決定する場合、従来のシステムは、例えば装置／リクエスト毎に５秒以上の遅れのような、重大な遅れまたは待ち時間に帰着する場合がある。
【０００７】
いくつかの実施形態では、本技術は、コンピュータ化された装置が、キャンペーンに属する、または、デバイス・アップデートを受け取るようにスケジュールされているコンピュータ化された装置のグループもしくはセットに属することを検証することができる、改善されたシステム、装置および方法を含む。いくつかの実施形態では、本技術は、コンピュータ化された装置がキャンペーンに含まれるか否かを決定して、キャンペーンの一部としてデバイス・アップデートを取得するために用いられるハードウェアリソースと時間とを低減することができるシステムを含む。
【発明の概要】
【０００８】
したがって、本技術は、コンピュータ化された装置にアップデートを提供することができる改善されたシステム、装置および方法を含む。いくつかの実施形態では、コンピュータ化された装置にアップデートを提供するためのシステムは、キャンペーンのためにアップデートされるコンピュータ化された装置のセットを示すキャンペーン開始リクエストを検知することを含む動作を第１のプロセッサに行わせる、コンピュータ実行可能な命令を含むキャンペーン管理サービス、を含むことができる。動作はまた、複数のハッシュ値を含むブルームフィルタ・データ構造を生成することを含むことができ、そこでは複数のハッシュ値がアップデートされるコンピュータ化された装置のセットに対応する。さらに動作は、ブルームフィルタ・データ構造をネットワーク・エッジに提供することを含むことができる。そのうえ、システムは、ブルームフィルタ・データ構造の複数のハッシュ値のうちのハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することを含む動作を第２のプロセッサに行わせる、コンピュータ実行可能な命令を含むネットワーク・エッジ、を含むことができる。動作はまた、コンピュータ化された装置がキャンペーンのメンバーであることを確認するキャンペーン管理サービスに応じて、キャンペーン管理サービスからのコンピュータ化された装置に関連するデバイス・アップデートを取得することを含むことができる。そのうえ動作は、コンピュータ化された装置にデバイス・アップデートを提供し、それによりデバイス・アップデートがコンピュータ化された装置を修正することを含むことができる。
【０００９】
一実施形態では、ネットワーク・エッジは、ブルームフィルタ・データ構造を使用して、コンピュータ化された装置がキャンペーンに属さないと決定することと、コンピュータ化された装置についてのデバイス・アップデートが無いという指示を、キャンペーン管理サービスと通信することなくコンピュータ化された装置に提供することと、を含む動作を第２のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【００１０】
一実施形態では、コンピュータ化された装置は、モノのインターネット（ＩｏＴ）の装置、民生機器または乗り物である。
【００１１】
一実施形態では、デバイス・アップデートは、登録証明書または匿名証明書を含むことができる。
【００１２】
一実施形態では、デバイス・アップデートは、コンピュータ化された装置にインストールされるソフトウェアまたはファームウェアを含むことができる。
【００１３】
一実施形態では、デバイス・アップデートは、インストール情報またはインストール・スクリプトを含むことができる。
【００１４】
一実施形態では、キャンペーン管理サービスは、アップデートされるコンピュータ化された装置に対応するデータを格納することを含む動作を第１プロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【００１５】
一実施形態では、データは、キャンペーン開始日、キャンペーン終了日、複数の車両登録番号、複数の製品シリアル番号および製品モデル番号の１つ以上を含むことができる。
【００１６】
一実施形態では、キャンペーン管理サービスは、データへアクセスすることにより、コンピュータ化された装置がキャンペーンにあるか否かを決定することを含む動作を第１のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【００１７】
一実施形態では、ブルームフィルタ・データ構造は、セット内のコンピュータ化された装置の数にかかわらず一定のサイズである。
【００１８】
一実施形態では、ブルームフィルタ・データ構造を生成することは、偽陽性割合しきい値に基づいて、ブルームフィルタ・データ構造についてのハッシュ値を生成するハッシュ関数の数を調節することを含むことができる。
【００１９】
一実施形態では、ブルームフィルタ・データ構造が生成されると、システムにより、コンピュータ化された装置がデバイス・アップデートのためにネットワーク・エッジをポーリングすることができる。
【００２０】
一実施形態では、キャンペーン管理サービスは、キャンペーンの終了時にブルームフィルタ・データ構造を削除するようにネットワーク・エッジに命令することを含む動作を第１のプロセッサに行わせる、コンピュータ実行可能な命令をさらに含む。
【００２１】
一実施形態では、コンピュータ化された装置のセット内のそれぞれのコンピュータ化された装置は、ネットワーク・エッジと通信するためのユニフォーム・リソース・ロケータを含む。
【００２２】
一実施形態では、ネットワーク・エッジ・デバイスは、複数のハッシュ値を含むブルームフィルタ・データ構造をキャンペーン管理サービスから取得することを含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むことができる。動作はまた、ブルームフィルタ・データ構造のハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスからコンピュータ化された装置がデバイス・アップデートを受け取ることを決定することを含むことができる。さらに動作は、コンピュータ化された装置に対応するデバイス・アップデート・リクエストをキャンペーン管理サービスへ送信することを含むことができる。そのうえ動作は、コンピュータ化された装置がキャンペーンのメンバーであることをキャンペーン管理サービスが確認した後に、デバイス・アップデート・リクエストに関連するデバイス・アップデートをキャンペーン管理サービスから取得することを含むことができる。さらに動作は、コンピュータ化された装置にデバイス・アップデートを提供し、それによりコンピュータ化された装置がデバイス・アップデートをインストールすることを含むことができる。
【００２３】
一実施形態では、キャンペーン管理サービスは、キャンペーンのためのデバイス・アップデートを用いて複数のコンピュータ化された装置がアップデートされることを指定するキャンペーン開始リクエストを検知することを含む動作をプロセッサに行わせる、コンピュータ実行可能な命令を含むことができる。動作はまた、アップデートされる複数のコンピュータ化された装置に対応するデータを格納することと、複数のハッシュ値を含むブルームフィルタ・データ構造を生成することとを含むことができ、そこでは、それぞれのハッシュ値は、複数のコンピュータ化された装置内のコンピュータ化された装置のそれぞれについてのデータに基づいている。そのうえ動作は、ブルームフィルタ・データ構造をネットワーク・エッジに提供することと、デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることとを含むことができる。さらに動作は、アップデートされる複数のコンピュータ化された装置に対応するデータに基づいて、コンピュータ化された装置がキャンペーンのメンバーであることを確認することを含むことができる。さらに動作は、リクエストに関連するデバイス・アップデートをネットワーク・エッジへ提供することであり、コンピュータ化された装置によってアクセスされるかまたは格納される電子データを修正するためのデバイス・アップデートを提供することを含むことができる。
【図面の簡単な説明】
【００２４】
本明細書に組み込まれてその一部を構成する添付図面は、開示された主題の多数の特徴の例を示す。添付図面は、詳細な説明の記載と共に、本明細書に記述される様々な技術の原理について説明する役目をする。
【００２５】
【図１】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【図２】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスを使用してブルームフィルタ・データ構造を初期化することができる、例示的なシステムのブロック図である。
【図３Ａ】本明細書に記述される例示的な実施形態に対応する、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【図３Ｂ】本明細書に記述される例示的な実施形態に対応する、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。
【図４】本明細書に記述される例示的な実施形態に対応する、ネットワーク・エッジを用いてキャンペーンに関連するリクエストを管理する例示的な方法のプロセス・フローチャートである。
【図５】本明細書に記述される例示的な実施形態に対応する、キャンペーン管理サービスを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。
【図６】本明細書に記述される例示的な実施形態に対応する、コンピュータ化された装置と、キャンペーン管理サービスと、証明書管理サービスとの間の例示的なデータ・フローを示すデータ・フロー・ダイアグラムである。
【図７】本明細書に記述される例示的な実施形態に対応するシステムおよび方法をホストすることができるコンピューティング・システムの例示的なブロック図である。
【発明を実施するための形態】
【００２６】
本明細書に記述される技術の様々な実施形態が今詳細に言及されるであろう、それらの例は添付図面中に示されている。都合の良い場合にはいつでも、同じまたは同様の部品を参照するために、図面の全体にわたって同じ参照番号が使用されるであろう。
【００２７】
イントロダクション
【００２８】
ますます多くの装置、センサーおよび機器が、とりわけネットワーク・コンポーネントのような、追加のハードウェア・コンポーネントを含んでいる。ネットワーク・コンポーネントは、様々な装置がいくつもの数の外部装置、サーバなどと通信することを可能にすることができる。いくつかの例では、装置を動作するために使用されるソフトウェアおよびファームウェアは、時代遅れまたは安全ではなくなる。したがって、装置は、ネットワーク・コンポーネントを経由してデバイス・アップデートをリクエストすることができ、装置の性能を改善しかつセキュリティ問題を防ぐ。いくつかの実施形態では、装置はグループまたはキャンペーンでアップデートされる。キャンペーンは、製造業者または他の適切なエンティティが装置のセットにデバイス・アップデートを提供することを可能にすることができる。いくつかの例では、装置は、外部サーバまたはサービスを周期的にポーリングすることができ、装置に利用可能なアップデートがあるか否か（例えば、装置を含むアクティブなキャンペーンがあるか）を決定し、および／または、装置がデバイス・アップデートを取得することができるか否かを決定する。
【００２９】
様々な実施形態では、デバイス・アップデートは、製造され初期化された後の、自動車のコンポーネントについてのアップデートを一度に含むことができる。例えば、フィールドでの安全で適切な動作を保証するために、セキュリティ資産のようなデジタル資産をプロビジョニングすることにより、組み込み装置、例えば乗り物の中で使用される電子制御装置（ＥＣＵ）を、製造する間に初期化することができる。デジタル資産は、様々な電子証明書、暗号化キー、一意な識別子およびソフトウェアを含むことができる。いくつかの例では、ＣＭＳすなわち証明書管理サービス（ｃｅｒｔｉｆｉｃａｔｅ  ｍａｎａｇｅｍｅｎｔ  ｓｅｒｖｉｃｅ）は、これらのデジタル資産を生成し、安全なプロビジョニング・システムは、デジタル資産を製造工場に分配する。
【００３０】
概して（しかし常にではなく）、工場を去りサービスへ展開した後、デバイス・アップデートは、新しいまたは置換するソフトウェア、ファームウェア、デジタル資産などを取得するために、コンピュータ化された装置によってリクエストされることができ、それは、コンピュータ化された装置を正確にまたは改訂された方法で機能することを可能にする。述べられたいくつかの実施形態では、コンピュータ化された装置は、デバイス・アップデートをリクエストすることができ、リクエストは、とりわけブルームフィルタ・データ構造を使用してフィルターすることができる。ブルームフィルタ・データ構造を利用する様々な実施形態は、コンピュータ化された装置が、従来のシステムと比較して低減された量の記憶装置を利用している間、従来のシステムによる所要時間未満であるほぼ一定の量の時間内において、デバイス・アップデートを受け取ることになるか否かに関する決定を提供する。
【００３１】
図１は、デバイス・アップデートについてのリクエストを処理することができる、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。いくつかの実施形態では、システム１００は、任意の適切なコンピューティング・デバイス、サーバ、外部リモート・サービス・ネットワークなどを用いて実装することができる。この例において示されるように、システム１００は、ネットワーク・エッジ１０２、装置管理サーバ１０４、装置１０６、キャンペーン管理サービス１０８、内部サービス１１０、データベース１１２、ブルームフィルタ装置１１４およびメッセージ・サーバ１１６をとりわけ含むことができる。
【００３２】
いくつかの実施形態では、ネットワーク・エッジ１０２は、デバイス・アップデートなどのためのキャンペーンの初期化１１８を実装することが可能な、装置管理サーバ１０４を含むことができる。キャンペーンは、ソフトウェア・アップデート、ファームウェア・アップデートまたは新しいアプリケーションのような、デバイス・アップデートをとりわけ取得するための、任意のセット、グループまたは数の装置（本明細書ではコンピュータ化された装置とも呼ぶ）１０６を、指定するまたは含むことができる。いくつかの実施形態では、デバイス・アップデートは、装置１０６に格納されるソフトウェア、ファームウェアまたはこれらの任意の組み合わせに関連する、インストール情報またはインストール・スクリプトを含むことができる。インストール情報は、装置１０６のメモリ内にデバイス・アップデートを格納するためのディレクトリーまたはロケーションを示すことができる。インストール・スクリプトは、デバイス・アップデートをインストールするための実行可能な命令を含むことができる。
【００３３】
いくつかの実施形態では、装置１０６は、とりわけ、モノのインターネット（ＩｏＴ）のセンサー、民生機器、乗り物、または乗り物（例えばＯＢＵなど）の一部である装置、とすることができる。例えば、装置１０６は、乗り物、船舶（例えばボート）、航空機、宇宙船、医療機器、ロボット、ドローン、無線若しくは有線の通信モジュール、またはＩｏＴ装置を含むことができる。いくつかの例では、装置１０６は、とりわけ、交通制御施設（例えば交通信号、交通信号灯、または電子交通サイネージ）、デジタル・ビルボード、歩行者警戒システム、オートバイ・センサー、自転車センサー、電子サイン、街灯センサーまたは構造物警告センサーの、ＲＳＵに対応することができる。
【００３４】
いくつかの例では、装置管理サーバ１０４は、ウェブ・インタフェース、外部サーバまたは装置１０６からのキャンペーン開始リクエスト（図示せず）を検知１２０することができる。いくつかの実施形態では、装置管理サーバ１０４は、キャンペーンを管理するサーバまたは装置からのキャンペーン開始リクエストを検知することができる。その後、装置管理サーバ１０４は、サーバ、データベース、クライアント装置などのような、いくつもの数のコンピューティング・デバイスを含む内部サービス１１０に属することができるキャンペーン管理サービス１０８へ、キャンペーン開始リクエストを転送することができる。いくつかの実施形態では、内部サービス１１０は、装置管理サーバ１０４を経由してキャンペーンに関連するデータの送信を回避する任意の適切なインタフェースを通じて、キャンペーン開始リクエストを検知することができる。キャンペーン開始リクエストは、デバイス・アップデートキャンペーンの一部としてアップデートされる装置１０６のリストまたはセットを示すことができる。いくつかの例では、キャンペーン開始リクエストは、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、および／または任意で、キャンペーンのパラメータを指定する他の情報と共に、シリアル番号のセット、製品名のセット、インターネット・プロトコル（ＩＰ）アドレスのセット、メディア・アクセス制御（ＭＡＣ）アドレスのセットなどのような、装置識別子のセットまたはそれぞれの装置についての識別情報のセットを含むことができる。
【００３５】
いくつかの実施形態では、キャンペーン管理サービス１０８は、キャンペーンが開始されることを決定することができる。いくつかの例では、キャンペーンを開始することは、内部サービス１１０のデータベース１１２に、キャンペーン・データおよびステータスを格納１２２することを含むことができる。データベース１１２に格納されるキャンペーン・データは、シリアル番号のセット、製品名のセット、インターネット・プロトコル（ＩＰ）アドレスのセット、メディア・アクセス制御（ＭＡＣ）アドレスのセット、装置識別情報の他のいくつかのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間などのような、キャンペーン開始リクエストからの情報を含むことができる。いくつかの例では、データベース１１２に格納されるキャンペーンのステータスは、キャンペーンが開始したか、または、キャンペーンが後の時間まで非アクティブであるかを示すことができる。いくつかの実施形態では、データベース１１２は、キャンペーン管理サービス１０８内にデータをローカルに格納することができる、または、データベース１１２は、ネットワーク接続（図示せず）を経由してアクセスされる、外部に設置されたデータベース１１２とすることができる。
【００３６】
いくつかの実施形態では、キャンペーン管理サービス１０８は、キャンペーンのためのデバイス・アップデート・リクエストの処理に先立って、キャンペーンのためにデータ構造を初期化１２４する。データ構造は、ブルームフィルタ・データ構造、リンクリスト、多次元の配列、或いは、キャンペーンに含まれているかまたは対応する、装置１０６および／またはリクエスト１３４を速く識別するために使用されることができる、その他のデータ構造（例えば、キャンペーン開始リクエストからの装置識別子のリストまたはセットに載っている装置）を含むことができる。いくつかの例では、ブルームフィルタ・データ構造は、例えば、装置がキャンペーンに追加されるときに、キャンペーン内の装置の数に基づいてまたはその数に従って、拡大または縮小しない静的または一定のサイズの構造として割り付けられる。いくつかの実施形態では、ブルームフィルタ・データ構造は、キャンペーンに含まれているコンピューティング・デバイスに対応するハッシュ値の配列を含むことができる。いくつかの実施形態では、それぞれのハッシュ値は個別のハッシュ関数を用いて生成することができる。例えば、それぞれのブルームフィルタ・データ構造は、Ｘの異なるハッシュ関数に関連することができる。Ｘの異なるそれぞれのハッシュ関数は、ブルームフィルタ・データ構造の配列内の１つの位置へのコンピューティング・デバイスについての識別情報を、マップするかハッシュすることができる。例えば、ブルームフィルタ・データ構造にコンピューティング・デバイスを追加するために、コンピューティング・デバイスについての識別情報が、Ｘの異なるそれぞれのハッシュ関数に提供される。Ｘの異なるそれぞれのハッシュ関数は、配列位置に対応する出力値を生成する。ブルームフィルタ・データ構造の配列は修正されて、Ｘの異なるハッシュ関数によって出力として生成される、それぞれの配列位置に対する値を格納することができる。一例では、コンピュータ化された装置についての識別情報は、それぞれが個別の配列位置の値を生成する５つのハッシュ関数に提供されることができる。ブルームフィルタ・データ構造は修正されて、５つのハッシュ関数の出力にマップされたそれぞれの配列位置に、バイナリ値または他の適切な値を格納することができる。したがって、コンピュータ化された装置がブルームフィルタ・データ構造にマップされた後、ブルームフィルタ・データ構造の５つの配列位置は１の値を格納することができる。
【００３７】
ブルームフィルタ・データ構造の配列にハッシュ値をマップするハッシュ関数の数は、偽陽性割合しきい値に基づくことができる。例えば、ブルームフィルタ・データ構造の配列中のエントリーの数と比較してハッシュ関数の数を減らすことは、偽陽性割合を低減することができる。対照的に、ブルームフィルタ・データ構造の配列にハッシュ値をマップするために使用されるハッシュ関数の数を増加させることは、偽陽性割合を増加させることができる。いくつかの例では、キャンペーン管理サービス１０８は、偽陽性割合しきい値に基づいて、ブルームフィルタ・データ構造についてのハッシュ値を生成するハッシュ関数の数を調節することができる。
【００３８】
いくつかの実施形態では、キャンペーン管理サービス１０８は、メッセージ・サーバ１１６を経由して、ブルームフィルタ・データ構造をブルームフィルタ装置１１４へ送信１２６することができる。例えば、メッセージ・サーバ１１６は、ブルームフィルタ・データ構造をブルームフィルタ装置１１４へ同期してまたは非同期に提供１２８することを可能にすることができる。いくつかの例では、ネットワーク・エッジ１０２は、ブルームフィルタ装置１１４または装置管理サーバ１０４に、ブルームフィルタ・データ構造のキャッシュされたコピーを格納することにより、キャンペーン１３０の起動または実行を開始することができる。したがって、ネットワーク・エッジ１０２は、ネットワーク・エッジ１０２内にブルームフィルタ・データ構造を格納することにより、ブルームフィルタ・データ構造の初期化に引き続き、デバイス・アップデート・リクエストの処理を開始することができる。いくつかの実施形態では、図２に関して以下でより詳細に説明されるように、装置１０６が、アップデートをリクエストし、ブルームフィルタ・データ構造の初期化をまだ終了していないキャンペーンのメンバーである場合には、ネットワーク・エッジ１０２は、リクエストする装置１０６が利用可能なアップデートを有していないかまたはキャンペーンの一部ではない、と応答するであろう。したがって、装置１０６はネットワーク・エッジ１０２をポーリングし、いくつかの例では、ブルームフィルタ・データ構造が生成されるときにデバイス・アップデートについてネットワーク・エッジ１０２にポーリングすることを含んで、装置１０６がキャンペーンに属するか否かを示す応答を待つ１３２ことができる。
【００３９】
図１はさらに、ブルームフィルタ・データ構造によって表されるキャンペーンに実際に含まれている装置１０６からのデバイス・アップデート・リクエストを、システム１００がどのように処理するかの例を示し、それは真陽性と呼ばれることができる。この例において示されるように、ブルームフィルタ・データ構造が初期化され、フィルタリング・プロセスが起動している後、装置１０６は、ネットワーク・エッジ１０２にデバイス・アップデート・リクエスト１３４を送信することができる。ネットワーク・エッジ１０２は、ブルームフィルタ・データ構造（例えばブルームフィルタ装置１１４上の）に照会１３６して、リクエストする装置１０６がキャンペーンに属するか否かを決定することができる。いくつかの実施形態では、ブルームフィルタ・データ構造を照会１３６することは、装置１０６からの装置識別子（つまり識別情報）に適用されたハッシュ関数を使用して、ハッシュ値を生成することを含むことができる。装置識別子または識別情報は、ＭＡＣアドレス、ＩＰアドレスおよびシリアル番号などであるか、これらを含むことができる。様々な実施形態では、ブルームフィルタ・データ構造に格納されているハッシュ値にマッチングする装置１０６の識別情報についてのハッシュ値は、装置１０６がキャンペーンに属する可能性があるか、またはおそらくキャンペーンに属するかを示すことができ、ブルームフィルタ・データ構造に格納されているハッシュ値は、キャンペーン開始リクエストに含まれている装置識別子のリストから生成されている。様々な実施形態では、ブルームフィルタは、８％、６％、５％、４％、３％、２％、１％、または１％未満で０％を超えるように、約１０％以下の割合で偽陽性を生成する可能性があるので、ブルームフィルタ・データ構造におけるマッチングは、リクエストする装置１０６がキャンペーンの一部であることを保証しない。いくつかの実施形態では、ブルームフィルタ・データ構造（それはキャンペーンに対応する）内のハッシュ値の数（それらは装置に対応する）にかかわらず、装置１０６についてのマッチングするハッシュ値がほぼ一定の時間でブルームフィルタ・データ構造に格納される場合には、ネットワーク・エッジ１０２は決定１３８することができる。したがって、装置１０６がキャンペーンに属するか否かを決定するとき、ブルームフィルタ・データ構造は、従来のシステムよりもより速い処理時間を提供しより小さな量のメモリを使用し、これらの改善はキャンペーンにおける装置の数が増大するにつれ増大する。
【００４０】
図１に示されるような様々な実施形態では、マッチングを検索し比較しまたはそうでなければ識別する際、ブルームフィルタ装置１１４は、装置１０６がキャンペーンのメンバーであることを装置管理サーバ１０４に示す１４０ことができる。その後、装置管理サーバ１０４は、例えばメッセージ・サーバ１１６を経由して、キャンペーン管理サービス１０８へデバイス・アップデート・リクエスト１３４を送信１４２することができる。いくつかの例では、メッセージ・サーバ１１６は、デバイス・アップデート・リクエスト１３４をキャンペーン管理サービス１０８へ非同期にまたは同期して転送１４４することができる。
【００４１】
様々な実施形態では、キャンペーン管理サービス１０８は、デバイス・アップデート・リクエスト１４４／１３４を検知し、データベース１１２を照会１４６して、装置１０６が本当にキャンペーンに属するか否かを検索するか、またはそうでなければ決定することができ、これはブルームフィルタ・データ構造が偽陽性を生成した場合には当てはまらない可能性がある。図１において示された例では、データベース１１２は、キャンペーン・データ、キャンペーンのステータス、装置のリストまたは範囲（例えば装置識別子）、および／または他の情報を、キャンペーン管理サービス１０８へ返す１４８ことができる。キャンペーン管理サービス１０８は、示された例では、装置１０６が検索されたキャンペーンのメンバーであることと、装置１０６がキャンペーンの一部としてデバイス・アップデートを受け取るかまたは提供されることとを決定１５０することができる。いくつかの実施形態では、キャンペーン管理サーバ１０８は、メッセージ・サーバ１１６、ブルームフィルタ装置１１４、および／または装置管理サーバ１０４、或いはこれらの任意の組み合わせを経由して、装置１０６がキャンペーンのメンバーであるという指示を装置１０６へ返す１５２ことができる。いくつかの実施形態では、キャンペーン管理サービス１０８は、ネットワーク・エッジ１０２を経由して、デバイス・アップデート・データを装置１０６へ返し、送信し、またはそうでなければ提供１５４する。様々な実施形態では、デバイス・アップデート・データは、ソフトウェア、ファームウェアなどのようなデジタル資産を含むことができ、それらは実行またはそうでなければ使用されると、例えば、既存の機能を修正し、新しい機能を追加し、望ましくない機能を削除することによって、装置１０６を改訂またはアップデートする。
【００４２】
したがって、図１は、装置１０６がブルームフィルタ・データ構造に格納されたハッシュ値にマッチングし、装置１０６が確信を持ってキャンペーンに属する真陽性の例を表す。いくつかの実施形態では、システム１００は、いくつもの数の装置を用いて実装することができる。例えば、ネットワーク・エッジ１０２は単一のサーバを用いて実装することができ、内部サービス１１０は単一のサーバを用いて実装することができ、ネットワーク・エッジ１０２と内部サービス１１０とが互いに直接的に通信するように、システム１００はメッセージ・サーバ１１６を含まないようにすることができる。
【００４３】
図２は、ブルームフィルタ・データ構造を初期化する例示的なシステムのブロック図を描写する。いくつかの実施形態では、システム２００は、とりわけ、ネットワーク・エッジ１０２、装置管理サーバ１０４、装置１０６およびキャンペーン管理サービス１０８のような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【００４４】
いくつかの実施形態では、システム２００は、ウェブ・インタフェース、外部サーバ、または装置１０６からのキャンペーン開始リクエスト（図示せず）を検知２０２することができる装置管理サーバ１０４を含むことができるネットワーク・エッジ１０２を含むことができる。いくつかの実施形態では、装置管理サーバ１０４は、キャンペーンを管理するサーバまたは装置からのキャンペーン開始リクエストを検知することができる。装置管理サーバ１０４は、その後、内部サービス１１０に属することができるキャンペーン管理サービス１０８へ、キャンペーン・リクエストを転送することができる。いくつかの実施形態では、内部サービス１１０は、装置管理サーバ１０４を経由してキャンペーンに関連するデータの送信を回避する任意の適切なインタフェースを通じて、キャンペーン開始リクエストを検知することができる。キャンペーン開始リクエストは、デバイス・アップデートキャンペーンの一部としてアップデートされる装置のリストを示すことができる。いくつかの例では、キャンペーン・リクエストは、シリアル番号のセット、製品名のセット、インターネット・プロトコル（ＩＰ）アドレスのセット、メディア・アクセス制御（ＭＡＣ）アドレスのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、などを含むことができる。
【００４５】
いくつかの実施形態では、キャンペーン管理サービス１０８は、キャンペーンが開始されることを決定することができる。いくつかの例では、キャンペーンを開始することは、内部サービス１１０のデータベース１１２に、キャンペーン・データおよびステータスを格納２０４することを含むことができる。データベース１１２に格納されるキャンペーン・データは、シリアル番号のセット、製品名のセット、インターネット・プロトコル（ＩＰ）アドレスのセット、メディア・アクセス制御（ＭＡＣ）アドレスのセット、デバイス・アップデートを開始する時間、デバイス・アップデートを終了する時間、などのような、キャンペーン・リクエストからの情報を含むことができる。いくつかの例では、データベース１１２に格納されるキャンペーンのステータスは、キャンペーンが開始したか否かを、またはキャンペーンを開始する次の時間および日付を示すことができる。いくつかの実施形態では、キャンペーン管理サービス１０８は、キャンペーンのためのデバイス・アップデート・リクエストの処理に先立って、キャンペーンのためのデータ構造を生成２０６する。データ構造は、ブルームフィルタ・データ構造、リンクリスト、多次元の配列、またはその他のデータ構造を含むことができる。いくつかの実施形態では、ブルームフィルタ・データ構造は、キャンペーンに含まれているコンピューティング・デバイスに対応するハッシュ値の配列を含むことができる。いくつかの実施形態では、それぞれのハッシュ値は個別のハッシュ関数を用いて生成することができる。
【００４６】
図２はさらに、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ１０２による使用の準備ができる前に、装置１０６から受け取られるデバイス・アップデート・リクエストをシステム２００がどのように処理するかの例を示す。示された例では、ブルームフィルタ・データ構造がキャンペーン開始時間に生成されている間、および／または、ブルームフィルタ・データ構造がネットワーク・エッジ１０２によって取得およびインストールされる前に、装置管理サーバ１０４は、装置１０６からのデバイス・アップデート・リクエスト１３４を受け取るかまたは検知２０８することができ、それは装置１０６がキャンペーンに属するか否かに関する決定を引き起こすであろう。示された例では、リクエスト２０８／１３４が到着するとき、キャンペーン管理サービス１０８はキャンペーンのためのブルームフィルタ・データ構造を生成２０６する処理中にあるので、装置管理サーバ１０４は、装置１０６についてのアップデートが無いことを示す、または言いかえれば、装置１０６がキャンペーンに無いことを示す応答２１４を返す。
【００４７】
この特定の例では、装置管理サーバ１０４は、装置１０６からのデバイス・アップデート２０８／１３４についてのリクエストを、ブルームフィルタ装置１１４へ送信２１０することができる。ブルームフィルタ装置１１４は、リクエスト２０８／１３４に含まれている装置１０６（例えばシリアル番号、ＩＰアドレス、ＭＡＣアドレスなど）についての識別情報に基づいてハッシュ値を生成することにより、装置１０６がキャンペーンのメンバーであるか否かを決定２１２することができる。様々な例では、ブルームフィルタ装置１１４は、装置１０６についてのハッシュ値を、ブルームフィルタ装置１１４に格納されているブルームフィルタ・データ構造内のハッシュ値と比較することにより、マッチングするハッシュ値を識別しようとすることができる。図２の例では、ブルームフィルタ・データ構造がキャンペーン管理サービス１０８からまだ受け入れられていないように、ブルームフィルタ装置１１４がキャンペーンのための格納されたブルームフィルタ・データ構造をまだ有していないので、ブルームフィルタ装置１１４はいかなる比較も行うことができない。
【００４８】
示された実施形態におけるこの事例について、ブルームフィルタ装置１１４は、装置管理サーバ１０４を経由して、装置１０６がキャンペーンに無いことを示す除外応答を返す２１４。これは、キャンペーン管理サービス１０８によって同時に生成、構築、または生成２０６されているブルームフィルタ・データ構造に関連するキャンペーンに装置１０６が属しているにもかかわらず、生じる可能性がある。
【００４９】
いくつかの実施形態では、装置１０６は、デバイス・アップデートについてネットワーク・エッジ１０２を周期的にポーリングする（例えば、リクエストを送信する）ことができる。例えば、装置１０６は、分数、時間数、日数、週数、月数、年数などのような所定の時間間隔に基づいて、デバイス・アップデートについてのリクエストを装置管理サーバ１０４へ送信することができる。そのような実施形態では、ブルームフィルタ・データ構造が生成されている間、ポーリングするリクエスト２０８の１つ以上がネットワーク・エッジ１０２に到着することができる。いくつかの実施形態（示された）では、ネットワーク・エッジ１０２は、キャンペーン管理サービス１０８と通信することなく、装置がキャンペーンに属さないと決定し、アップデート無しまたは除外応答２１４を装置１０６へ返すことができる。
【００５０】
図１に関して上記に説明されるように、キャンペーン管理サービス１０８は、ブルームフィルタ・データ構造の生成に引き続き、例えばメッセージ・サーバ１１６を経由して、ブルームフィルタ・データ構造をネットワーク・エッジ１０２へ送信２１６することができる。いくつかの例では、ネットワーク・エッジ１０２は、ブルームフィルタ・データ構造のキャッシュされたコピーを、装置管理サーバ１０４にまたは個別のブルームフィルタ装置１１４に格納することができる。いくつかの実施形態では、ネットワーク・エッジ１０２は、ブルームフィルタ・データ構造を初期化して、ネットワーク・エッジ１０２内へブルームフィルタ・データ構造を格納した後に、ブルームフィルタ・データ構造を使用して、デバイス・アップデート・リクエスト１３４の処理を開始することができる。様々な実施形態では、装置管理サーバ１０４は、ブルームフィルタ・データ構造の初期化に引き続き、格納されたブルームフィルタ・データ構造に関連するキャンペーンに属する任意の適切な装置１０６に、デバイス・アップデート１５４を返すことができる。
【００５１】
図３Ａおよび３Ｂは、デバイス・アップデートについてのリクエストを処理するための、コンピュータ化された装置、ネットワーク・エッジおよびキャンペーン管理サービスについての例示的な動作環境のブロック図である。いくつかの実施形態では、システム３００は、とりわけ、ネットワーク・エッジ１０２、装置管理サーバ１０４、装置１０６およびキャンペーン管理サービス１０８のような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【００５２】
図３Ａにおいて示される例では、ブルームフィルタ・データ構造は、図１および２に関して上記に説明されるように生成され格納されることができる。例えば、任意の適切な外部サーバ、ウェブ・ベースのインタフェース、コンピューティング・デバイスなどは、内部サービス１１０に送信される初期化リクエスト３０４を経由して、デバイス・アップデートなどについてのキャンペーンを初期化３０２することができる。いくつかの実施形態では、キャンペーン管理サービス１０８は、内部サービス１１０のデータベース１１２にキャンペーン・データおよびステータスを格納３０６することにより、キャンペーンを開始することができる。いくつかの実施形態では、キャンペーン管理サービス１０８は、キャンペーンの開始に先立って、キャンペーンのためのブルームフィルタ・データ構造のようなデータ構造を初期化３０８する。いくつかの実施形態では、キャンペーン管理サービス１０８は、メッセージ・サーバ１１６を経由して、ブルームフィルタ装置１１４へブルームフィルタ・データ構造を送信３１０することができる。
【００５３】
まず、図３Ａは、ブルームフィルタ・データ構造によって表されるキャンペーンに含まれていない装置１０６からのデバイス・アップデート・リクエストを、システム１００がどのように処理するかの例を示す。この例において示されるように、ネットワーク・エッジ１０２は、ブルームフィルタ装置１１４または装置管理サーバ１０４に、ブルームフィルタ・データ構造のコピーを格納することにより、キャンペーン３１２の実装、起動および実行を開始することができる。その後、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ１０２内に格納されるので、ネットワーク・エッジ１０２は、キャンペーンの情報に関するデバイス・アップデート・リクエストを処理することができる。いくつかの例では、デバイス・リクエストを処理する前に、キャンペーンを表すブルームフィルタ・データ構造がネットワーク・エッジ１０２内に格納されるまで、システム１００は待つ３１４ことができる。いくつかの実施形態では、ネットワーク・エッジ１０２は、様々な装置についての様々なデバイス・アップデートに関連する、複数の同時に起こるキャンペーンをサポートすることができる。いくつかのそのような実施形態では、それぞれのキャンペーンは個別のブルームフィルタ・データ構造によって表されることができ、これに対し他の実施形態では、複数のキャンペーンからのデータから生成される単一のブルームフィルタ・データ構造が、単一のデータ構造において全てのキャンペーンを表すために使用されることができる。
【００５４】
図３Ａにおいて示される例では、装置管理サーバ１０４は、先に述べられたように、装置１０６からのアップデート・リクエストを受け取るかまたは検知３１６することができる。いくつかの例では、装置管理サーバ１０４は、装置１０６からのデバイス・アップデートについてのリクエストを、ブルームフィルタ装置１１４へ送信３１８することができる。識別情報はリクエスト３１６に含まれており、ブルームフィルタ装置１１４は、装置１０６についての識別情報に基づいてまたは識別情報を使用してハッシュ値を生成することにより、キャンペーンにおける装置１０６のメンバーシップを決定３２０することができる。いくつかの例では、ブルームフィルタ装置１１４は、装置１０６についてのハッシュ値を、ブルームフィルタ装置１１４に格納されているブルームフィルタ・データ構造内のハッシュ値と比較することにより、ブルームフィルタ・データ構造内のマッチングするハッシュ値を見つけるかまたは識別しようとすることができる。ブルームフィルタは偽陰性を生成せず、したがって、マッチングするハッシュ値の欠如は、装置１０６がキャンペーンの一部ではないこと、および／または、利用可能なアップデート・データを装置１０６が有していないことを示す。示された例では、装置１０６についてのハッシュされた識別情報は、ブルームフィルタ・データ構造内にはなく、したがって、ブルームフィルタ装置１１４は、装置管理サーバ１０４を経由して、現時点において装置１０６がキャンペーンに無いかまたは装置１０６が利用可能なアップデートを有していないことを示す応答３２２を返す。
【００５５】
図３Ｂはさらに、キャンペーンには本当に含まれていないが、ブルームフィルタ・データ構造の表現によるものであるように見える装置１０６からのデバイス・アップデート・リクエスト３２４を、システム１００がどのように処理するかの例を示し、それは偽陽性と呼ばれることができる。先に述べられたように、様々な実施形態では、ブルームフィルタ・データ構造は、例えば約５％の割合といった約１０％以下の割合で偽陽性を生成する可能性がある。この例において示されるように、装置管理サーバ１０４は、アップデートについての装置１０６からのリクエスト３２４を受け取るかまたは検知し、それは装置１０６がキャンペーンに属するか否かに関する決定を引き起こすことができる。この例では、リクエスト３２４は、リクエスト３１６を発行し先の例からのキャンペーンに含まれていない装置とは異なる装置１０６から到来するかまたは対応することができる。
【００５６】
いくつかの例では、装置管理サーバ１０４は、装置１０６からのデバイス・アップデート３２４についてのリクエストを、ブルームフィルタ装置１１４へ送信３２６することができる。ブルームフィルタ装置１１４は、装置１０６についてのリクエストの識別情報に基づいてハッシュ値を生成し、生成されたハッシュ値と同じハッシュ値をブルームフィルタ・データ構造内に見つけることにより、リクエストする装置１０６がキャンペーンのメンバーであることを決定３２８することができる。ブルームフィルタ・データ構造に同じハッシュ値を見つけると、ブルームフィルタ装置１１４は、装置１０６がおそらくキャンペーンにあることを示す応答を装置管理サーバ１０４へ返す３３０（ブルームフィルタ・データ構造において識別されたハッシュ値が、装置１０６に対応する生成されたハッシュ値にマッチングしたので）。
【００５７】
いくつかの実施形態では、装置管理サーバ１０４は、メッセージ・サーバ１１６を経由して、装置１０６についてのデバイス・アップデートについてのリクエストをキャンペーン管理サービス１０８へ送信３３２することができる。いくつかの例では、キャンペーン管理サービス１０８は、データベース１１２を照会３３４して、装置がキャンペーンのメンバーであるか否かを検索するか、またはそうでなければ決定することができ、これはブルームフィルタ・データ構造が偽陽性を生成した場合には当てはまらない可能性がある。データベース１１２がキャンペーンのためのデータおよびステータス情報をキャンペーン管理サービス１０８に返した３３６後、この特定の例では、キャンペーン管理サービス１０８は、リクエストする装置１０６がキャンペーンに属さないことを決定３３８する。いくつかの例では、キャンペーン管理サービス１０８は、メッセージ・サーバ１１６、ブルームフィルタ装置１１４、および／または装置管理サーバ１０４、或いはこれらの任意の組み合わせを経由して、装置１０６がキャンペーンに属さないことを示す応答を返す３４０ことができる。
【００５８】
図３Ｂからのこの例では、ネットワーク・エッジ１０２は、装置１０６が実際にはキャンペーンの一部ではないにもかかわらず、装置１０６がキャンペーンの一部でありデバイス・アップデートを受け取るであろうことを示す偽陽性を生成している。これは、リクエストする装置１０６の識別情報から生成されるハッシュ値が、ブルームフィルタ・データ構造によって表されるキャンペーンの実際に一部である、異なる装置のハッシュ値に偶然マッチングするときに生じる。上記に説明されるように、この偽陽性エラーは、キャンペーン管理サービス１０８が、キャンペーンのためのデータおよびステータス情報にアクセスして、リクエストする装置１０６が実際にキャンペーンのメンバーであることを検証するときに、結局検知される。それでもなお、ブルームフィルタ装置１１４の様々な実施形態は、キャンペーンの一部ではない装置１０６に偽陰性のメンバーシップ応答を決して返さないので、ブルームフィルタ装置１１４の総合的な性能は、キャンペーン管理サービス１０８に送信され処理されるデバイス・アップデート・リクエスト（特に、キャンペーンのメンバーではないリクエストの数）の数を著しく低減することにより、リクエストする装置１０６が経験する待ち時間を低減し、エンド・トゥー・エンドでのリソース使用量および処理時間を低減する。
【００５９】
図４は、ネットワーク・エッジを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。いくつかの実施形態では、方法４００は、ネットワーク・エッジ１０２、装置管理サーバ１０４、ブルームフィルタ装置１１４、ネットワーク・エッジ６０２、キャンペーン・サービス６０８、またはこれらの任意の組み合わせのような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【００６０】
この例に示されるように、ブロック４０２では、ネットワーク・エッジはデバイス・アップデートのためのキャンペーンを開始するリクエストを検知することができる。いくつかの実施形態では、任意の適切なサーバ、ウェブ・ベースのインタフェース、装置、またはコンピュータ化された装置は、キャンペーン開始日およびキャンペーン終了日のようなデータに加えて、キャンペーン中かまたはキャンペーンに属するコンピュータ化された装置のリストまたはセットを提供することにより、キャンペーンを開始することができ、ここで、リストまたはセット内のコンピュータ化された装置は、車両登録番号、製品シリアル番号、製品モデル番号などのような一意な識別子によってそれぞれ識別される。いくつかの実施形態では、ネットワーク・エッジについてのユニフォーム・リソース・ロケータは、デバイス・アップデートをリクエストするそれぞれのコンピュータ化された装置（例えばコンピュータ化された装置１０６）の保護されたメモリ内に格納される。ユニフォーム・リソース・ロケータは、コンピュータ化された装置が所定の認証されたネットワーク・エッジと安全に連絡をとることを可能にする。
【００６１】
ブロック４０４では、ネットワーク・エッジは、キャンペーン管理サービス（例えばキャンペーン管理サービス１０８）にリクエストを送信することができる。いくつかの実施形態では、ネットワーク・エッジは、メッセンジャー装置またはサービス（例えばメッセージサービス１１６）を経由して、キャンペーン管理サービスにリクエストを送信することができる。メッセンジャー装置は、非同期のまたは同期した通信をサポートすることができる。例えば、メッセンジャー装置は、いくつもの数のリクエストを格納し、しばらく経ってそれらのリクエストをキャンペーン管理サービスへ送信することができる。いくつかの実施形態では、メッセンジャー装置は、１つ以上のネットワーク・エッジから１つ以上のキャンペーン管理サービスへ、いくつもの数のキャンペーンについてのリクエストを送信することができる。
【００６２】
ブロック４０６では、ネットワーク・エッジは、キャンペーン管理サービスからリクエストされたキャンペーンに対応するブルームフィルタ・データ構造を受け入れるか、取得するか、取得するか、またはそうでなければアクセスすることができる。例えば、キャンペーン管理サービスによってキャンペーンを初期化するリクエストの処理に引き続き、ネットワーク・エッジは、キャンペーン管理サービスによって生成されたブルームフィルタ・データ構造を受け入れるかまたは取得することができる。いくつかの実施形態では、ブルームフィルタ・データ構造は、コンピュータ化された装置と通信する装置管理サーバ内のネットワーク・エッジ内に格納することができる。いくつかの例では、ブルームフィルタ・データ構造は、装置管理サーバにアクセスすることが可能な、個別の装置（例えばブルームフィルタ装置１１４）内のネットワーク・エッジ内に格納することができる。
【００６３】
動作中に、装置管理サーバは、キャンペーンのためのデバイス・アップデートがリクエストする装置に利用可能か否かを決定することを試みているコンピュータ化された装置から、リクエストを受け取るかまたは検知することができる。装置管理サーバは、ローカルに格納されたブルームフィルタ・データ構造または個別のブルームフィルタ装置に照会することができ、コンピュータ化された装置がキャンペーンのメンバーではないことか、または、コンピュータ化された装置がキャンペーンのメンバーである可能性があり低い可能性で偽陽性と予想される傾向があることか、のどちらかを決定する。
【００６４】
ブロック４０８では、ネットワーク・エッジは、ブルームフィルタ・データ構造に格納されたハッシュ値にマッチングするコンピュータ化された装置に関連するハッシュ値に基づいて、キャンペーン管理サービスから、コンピュータ化された装置が利用可能なデバイス・アップデートをおそらく持っていることを決定することができ、ここで、上に言及されるように、格納されたハッシュ値はブルームフィルタ・データ構造への照会により識別された。一方で、リクエストするコンピュータ化された装置が、キャンペーンの一部ではない場合またはそれについて利用可能ないかなるアップデートも有さない場合、その後、ネットワーク・エッジは、コンピュータ化された装置へ否定的な応答を返すことができる。これは、コンピュータ化された装置に関連するハッシュ値が、ブルームフィルタ・データ構造に格納されたハッシュ値のうちのどれともマッチングしない場合に生じる。
【００６５】
いくつかの実施形態では、ネットワーク・エッジは、コンピュータ化された装置についての識別情報からいくつもの数のハッシュ値を生成し、そのハッシュ値を、ブルームフィルタ・データ構造に格納された値と比較することができる。例えば、ブルームフィルタ・データ構造は、５つ以上の個別のハッシュ関数に適用された、コンピュータ化された装置の識別情報からの出力に基づいて、５つ以上のハッシュ値を格納してもよい。いくつかの実施形態では、いくつもの数のハッシュ関数が、ブルームフィルタ・データ構造に格納されるハッシュ値を生成するために使用することができる。
【００６６】
ブロック４１０では、ネットワーク・エッジは、コンピュータ化された装置に対応するデバイス・アップデート・リクエストを、キャンペーン管理サービスへ送信することができる。いくつかの実施形態では、ネットワーク・エッジは、ブルームフィルタ・データ構造内のハッシュ値にマッチングする、リクエストする装置についての識別情報に対応する１つ以上のハッシュ値の検知に応じて、デバイス・アップデート・リクエストをキャンペーン管理サービスへ転送することができる。いくつかの例では、キャンペーン管理サービスにデバイス・アップデート・リクエストを送信することは、コンピュータ化された装置が偽陽性とは対照的にキャンペーンに属していることの検証を可能にする。
【００６７】
ブロック４１２では、コンピュータ化された装置が実際にキャンペーンのメンバーであることを、キャンペーン管理サービスが検証し、確認し、または決定した場合に、ネットワーク・エッジは、リクエストするコンピュータ化された装置に関連するデバイス・アップデートを、キャンペーン管理サービスから受け取るか、取得するか、またはそうでなければ取得することができる。いくつかの実施形態では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーンに対応する格納されたデータに基づいて検証することができる。例えば、データは、キャンペーンの一部としてデバイス・アップデートを取得することができる、コンピュータ化された装置についての識別情報のリスト（つまり、キャンペーンに含まれているコンピュータ化された装置に対応する識別子のリスト）を含むことができ、また、キャンペーン管理サービスは、リクエストする装置がリストに載っていることを決定することができる。いくつかの実施形態では、ネットワーク・エッジは、キャンペーン管理サービスからデバイス・アップデートを、直接的にまたはメッセンジャー装置を経由して、またはその他の適切なコンピューティング・デバイスから、受け取るかまたは取得することができる。
【００６８】
ブロック４１４では、ネットワーク・エッジは、キャンペーン管理サービスから到来したデバイス・アップデートをコンピュータ化された装置へ送信することにより、コンピュータ化された装置を、アップデートするか、改訂するか、プロビジョニングするか、または修正することができる。いくつかの実施形態では、デバイス・アップデートは、コンピュータ化された装置内に格納されているソフトウェア、ファームウェアなどを修正することができる。ネットワーク・エッジは、デバイス・アップデートをコンピュータ化された装置に送信するか、またはそうでなければ提供することができ、それが受け取られる場合、コンピュータ化された装置は、デバイス・アップデートを自動的にインストールすることができる。いくつかの例では、デバイス・アップデートは、新しいアプリケーションをインストールし、既存のアプリケーションを修正し、ハードウェア・コンポーネントをコントロールするファームウェア・ドライバーのアップデートなどにより、コンピュータ化された装置を修正することができる。
【００６９】
図４のプロセス・フローチャートは、方法４００の動作が任意の特定の順序で実行されることになっているか、または、動作を同時に実行することができないか、または、方法４００の動作が全ての事例に含まれることになっていることを示すようには意図されない。さらに、方法４００は、任意の適切な数の追加の動作を含むことができる。例えば、方法４００はまた、コンピュータ化された装置と、デバイス・アップデートを取得する前に相互のトランスポート・レイヤー・セキュリティ証明書を交換するキャンペーン管理サービスとを含むことができる。いくつかの実施形態では、ネットワーク・エッジは、キャンペーンを初期化するリクエストを検知して、そのリクエストをキャンペーン管理サービスに送信しない可能性がある。例えば、外部サーバ、ウェブ・ベースのインタフェースなどは、ネットワーク・エッジにアクセスすることなく、キャンペーンのためのデータをキャンペーン管理サービスへ直接的に送信することにより、キャンペーンを初期化してもよい。
【００７０】
図５は、キャンペーン管理サービスを用いてキャンペーンに関連するリクエストを管理することができる例示的な方法についてのプロセス・フローチャートである。いくつかの実施形態では、方法５００は、キャンペーン管理サービス１０８、データベース１１２、内部サービス１１０、キャンペーン・サービス６０８、またはこれらの任意の組み合わせのような、任意の適切な数のコンピューティング・デバイスを用いて実装することができる。
【００７１】
ブロック５０２では、キャンペーン管理サービスは、キャンペーンのためにアップデートされる多くのコンピュータ化された装置を示すキャンペーン開始リクエストを、受け取るかまたは検知することができる。いくつかの実施形態では、キャンペーン管理サービスは、ネットワーク・エッジからの、または、ネットワーク・エッジからの非同期のまたは同期したメッセージを提供するメッセンジャー装置からのキャンペーン開始リクエストを検知することができる。いくつかの実施形態では、キャンペーン管理サービスは、ウェブ・ベースのインタフェース、キャンペーンを管理する装置などから、キャンペーン開始リクエストを直接的に検知することができる。上記に説明されるように、キャンペーン開始リクエストは、キャンペーンの一部としてデバイス・アップデートを受け取ることになっているそれぞれの装置の識別情報、キャンペーンの開始日または開始時間およびキャンペーンの終了日または終了時間などを含むことができる。
【００７２】
ブロック５０４では、キャンペーン管理サービスは、アップデートされるコンピュータ化された装置に対応するデータを格納することができる。いくつかの実施形態では、キャンペーン管理サービスは、ローカルにまたは外部データベースにおいてアップデートされる、コンピュータ化された装置に対応するデータを格納することができる。いくつかの実施形態では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンに属するか否かを決定するために、データを分析するか、探索するか、または照会することができる。例えば、キャンペーン管理サービスは、一意な識別子を有するコンピュータ化された装置からのデバイス・アップデートについてのリクエストを後で検知する場合には、キャンペーン管理サービスは、装置（例えば、一意な識別子）がキャンペーンに含まれているか否かを決定するために、データを分析するか、探索するか、または照会することができ、そのデバイス・アップデートがそのコンピュータ化された装置に提供されるようにすることができる。
【００７３】
ブロック５０６では、キャンペーン管理サービスは、キャンペーンに含まれておりこのようにしてキャンペーンのデバイス・アップデートが提供されることになっている、コンピュータ化された装置を表すブルームフィルタ・データ構造を生成することができる。様々な実施形態では、キャンペーンの一部であるコンピュータ化された装置のそれぞれについての一意な識別子（または他の識別情報）からハッシュ値が生成される場合、ブルームフィルタ・データ構造は複数のハッシュ値を含む。いくつかの例では、ブルームフィルタ・データ構造は、アップデートされるコンピュータ化された装置のそれぞれについてのデータまたは識別情報に基づいたハッシュ値を含むことができる。
【００７４】
いくつかの実施形態では、ブルームフィルタ・データ構造は、アップデートされるそれぞれのコンピュータ化された装置についての識別情報に基づいた、いくつもの数のハッシュ値を含むことができる。例えば、ブルームフィルタ・データ構造は、いくつもの数のハッシュ値を格納することができる配列、リンクリストおよびベクトルなどを含むことができる。いくつかの実施形態では、それぞれのコンピュータ化された装置についての識別情報は、いくつもの数のハッシュ関数に適用され、それぞれのハッシュ関数は、ブルームフィルタ・データ構造に格納される出力ビットまたは一連のビットを生成する。いくつかの実施形態では、キャンペーン管理サービスは、キャンペーンに含められるコンピュータ化された装置の複数のグループに適用される結合動作に基づいたブルームフィルタ・データ構造を生成することができる。
【００７５】
ブロック５０８では、キャンペーン管理サービスは、例えばブルームフィルタ・データ構造の初期化の後に、ブルームフィルタ・データ構造をネットワーク・エッジに送信するか、またはそうでなければ提供することができる。いくつかの実施形態では、キャンペーン管理サービスは、非同期のメッセンジャー装置（例えばメッセージ・サーバ１１６）を経由して、ブルームフィルタ・データ構造をネットワーク・エッジに送信することができる。例えば、非同期のメッセンジャー装置は、ブルームフィルタ・データ構造を受け入れて、その後、後の時間または日付まで、ブルームフィルタ・データ構造をネットワーク・エッジに送信することを遅らせることができ、それは、待ち時間が長くおよび／または低帯域幅の制限を有する、ネットワークインターフェイスを経由した通信を改善することができる。
【００７６】
ブロック５１０では、キャンペーン管理サービスは、デバイス・アップデートについてのリクエストをコンピュータ化された装置から受け取ることができる。いくつかの実施形態では、ブロック５０８においてキャンペーン管理サービスがネットワーク・エッジに提供したブルームフィルタ・データ構造に基づいて、ネットワーク・エッジが、リクエストに対応するコンピュータ化された装置がおそらく（偽陽性を除いて）キャンペーンに属することを決定した後にのみ、キャンペーン管理サービスは、デバイス・アップデートについてのリクエストを受け取ることができる。いくつかのそのような実施形態では、リクエストするコンピュータ化された装置についての識別情報から生成されるかまたは由来するハッシュ値が、ブルームフィルタ・データ構造に格納されたハッシュ値にマッチングする場合にのみ、ネットワーク・エッジは、デバイス・アップデートについてのリクエストをキャンペーン管理サービスへ転送する。上記に説明されるように、リクエストするコンピュータ化された装置についての識別情報から生成されるかまたは由来するハッシュ値が、ブルームフィルタ・データ構造に格納された任意のハッシュ値にマッチングしない場合、その後、ネットワーク・エッジはキャンペーン管理サービスと連絡をとらず、その代わり、デバイス・アップデートをリクエストするがキャンペーンには含まれていないコンピュータ化された装置へ、正確な「アップデートは無い」応答を提供する。
【００７７】
ブロック５１２では、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーであることを確認、検証するか、またはそうでなければ決定することができる。いくつかの実施形態では、キャンペーン・データが、コンピュータ化された装置がキャンペーンの一部であることを示すか否かを決定するために、キャンペーン管理サービスは、デバイス・アップデートをリクエストしたコンピュータ化された装置の識別情報を、キャンペーンのために格納されたデータと比較する（例えばローカルでまたはデータベース内で）ことができる。様々な実施形態では、コンピュータ化された装置の識別情報は、リクエストに含まれている。より詳細な例として、キャンペーン管理サービスは、キャンペーン・データの一部である一意な識別子（例えばシリアル番号）のリスト中に、装置のシリアル番号のような、コンピュータ化された装置の一意な識別子を探索することができ、そこでは、キャンペーン・データ中の一意な識別子のリストは、キャンペーンの一部である装置を全て含む。
【００７８】
ブロック５１４では、コンピュータ化された装置が実際にキャンペーンのメンバーであることを決定した後、キャンペーン管理サービスは、デバイス・アップデート・リクエスト（およびキャンペーン）に関連するデバイス・アップデートを、ネットワーク・エッジに送信することができる。いくつかの例では、デバイス・アップデートは、コンピュータ化された装置に格納されたファームウェア、ソフトウェア、またはそれらの任意の組み合わせに対して、追加、置換、および／または修正を行うコード、命令、バイナリなどとすることができる。
【００７９】
ブロック５１２において、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーン管理サービスが確認せず、検証せず、またはそうでなければ決定しない場合には、キャンペーン管理サービスは、ブロック５１４の動作を行わない。様々な実施形態では、コンピュータ化された装置（例えばコンピュータ化された装置の識別情報）が、キャンペーン・データ中にリストされておらず、識別されず、またはそうでなければ表されていないので、キャンペーン管理サービスは、コンピュータ化された装置がキャンペーンのメンバーではないことを決定することができる。
【００８０】
いくつかの実施形態では、ブロック５１２において、コンピュータ化された装置がキャンペーンのメンバーであることを、キャンペーン管理サービスが確認せず、検証せず、またはそうでなければ決定しない場合には、その後、キャンペーン管理サービスは、ブロック５１６において、リクエストする装置がキャンペーンの一部ではないこと、および／または、リクエストする装置についてのアップデートが無いことを示すメッセージなどを、ネットワーク・エッジに送信するか、またはそうでなければ提供するかまたは示す。
【００８１】
図５のプロセス・フローチャートは、方法５００の動作が任意の特定の順序で実行されることになっているか、または、動作を同時に実行することができないか、または、方法５００の動作が全ての事例に含まれることになっていることを示すようには意図されない。さらに、方法５００は、任意の適切な数の追加の動作を含むことができる。例えば、キャンペーンが終了した場合（例えばキャンペーンのための終了日が生じる場合）、例えば、キャンペーンの終了に応じて引き起こされる可能性がある、ブルームフィルタ・データ構造を格納しているキャッシュまたはメモリ素子をフラッシュするメッセージを、ネットワーク・エッジへ送信することによって、キャンペーン管理サービスは、ネットワーク・エッジにブルームフィルタ・データ構造を削除するよう命令することができる。
【００８２】
図６は、デジタル資産を提供するためのサービスタイプの一例である、ネットワーク・エッジ６０２が証明書管理サービス６０４と対話する例示的な動作環境６００を描写する。いくつかの実施形態では、証明書管理サービス６０４はＶ２Ｘ証明書管理サービスとすることができる。追加または代替の実施形態では、証明書管理サービス６０４はＣ２Ｘ証明書管理サービスとすることができ、１つ以上のコンピューティング・デバイス上の１つ以上のバーチャル・マシンなどの、サーバ（複数のサーバ）として実装することができる。示されるように、ネットワーク・エッジ６０２は、１つ以上のコンピュータ化された装置６０６についての、証明書などのようなデバイス・アップデートについてのリクエストを、キャンペーン・サービス６０８およびインターネットのようなネットワーク６１０を経由して、証明書管理サービス６０４に提出することができる。いくつかの実施形態では、デバイス・アップデートは、安全な環境にあるコンピュータ化された装置６０６上において、アプリケーションの実行を可能にすることができる。例えば、コンピュータ化された装置６０６が、ランタイム環境にある追加のコンピュータ化された装置との通信を安全に送信することを可能にする証明書を、デバイス・アップデートは含むことができる。
【００８３】
或る実施形態では、コンピュータ化された装置６０６は、乗り物、船舶（例えばボート）、航空機、宇宙船、医療機器、ロボット、ドローン、無線または有線の通信モジュールおよびＩｏＴ装置の１つ以上に対応する。例えば、コンピュータ化された装置６０６は、乗り物、船舶、航空機、宇宙船、ロボット、ドローン、医療機器またはＩｏＴ装置の、ＯＢＵまたはＥＣＵに対応することができる。同様に例えば、コンピュータ化された装置６０６は、とりわけ、交通制御施設（例えば交通信号、信号または電子交通信号）、デジタル・ビルボード、歩行者警戒システム、オートバイ・センサー、自転車センサー、電子サイン、街灯センサーまたは構造物警告センサーの、ＲＳＵに対応することができる。
【００８４】
いくつかの実施形態では、ネットワーク・エッジ６０２は、上記に説明されるようにブルームフィルタ・データ構造を使用することができ、コンピュータ化された装置６０６が証明書管理サービス６０４からデバイス・アップデートを受け取るかどうかを決定することができる。いくつかの例では、デバイス・アップデートは、登録証明書、匿名証明書、ファームウェアおよびソフトウェアなどを含むことができる。登録証明書は、ソフトウェア・アップデート、ファームウェア・アップデートまたはこれらの任意の組み合わせのようなデバイス・アップデートを、コンピュータ化された装置６０６へプロビジョニングすることを可能にする、任意の適切な電子証明書を含むことができる。匿名証明書は、コンピュータ化された装置６０６がランタイム環境の間にデータまたは通信を安全に交換すること可能にする、個別の電子証明書を含むことができる。いくつかの実施形態では、ネットワーク・エッジ６０２は、デバイス・アップデートキャンペーンに含まれていないコンピュータ化された装置６０６へ、応答を送信することができる。例えば、コンピュータ化された装置６０６の識別情報に基づいたハッシュ値は、デバイス・アップデートキャンペーンに関連するブルームフィルタ・データ構造に格納されたハッシュ値にマッチングしない可能性がある。いくつかの例では、ネットワーク・エッジ６０２は、コンピュータ化された装置６０６の１つ以上がデバイス・アップデートキャンペーンに含まれることを決定することができる。ネットワーク・エッジ６０２は、キャンペーン・サービス６０８を経由して、デバイス・アップデートについてのリクエストを、登録機関６１２、登録認証機関６１４、匿名認証機関６１６またはこれらの任意の組み合わせへ送信することができる。
【００８５】
動作環境６００では、デバイス・アップデートまたは証明書についてのリクエストは、任意の適切なインタフェースを経由して、キャンペーン・サービス６０８によってネットワーク・エッジ６０２から受け取られる。例えば、キャンペーン・サービス６０８は、とりわけ、クライアントのｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｓｔａｔｅ  ｔｒａｎｓｆｅｒ（ＲＥＳＴ）プロトコルまたはｓｉｍｐｌｅ  ｏｂｊｅｃｔ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）プロトコルに基づいたＡＰＩを実装することができる。図６に示されるように、キャンペーン・サービス６０８は、パブリックまたはプライベートＡＰＩを実装することができ、証明書管理サービス６０４は、Ｖ２ＸまたはＣ２Ｘ証明書管理サービスとすることができる。証明書管理サービス６０４は、デバイス・アップデートについてのリクエストを受け入れて、時間枠内にタスクを終えて、その後、キャンペーン・サービス６０８およびネットワーク６１０を経由して、結果（例えば、生成されたデバイス・アップデート、または証明書）をネットワーク・エッジ６０２に返す。いくつかの実施形態では、時間枠は、とりわけ証明書管理サービス６０４の処理キャパシティーに依存する、分数、時間数または日数でありえる。
【００８６】
証明書管理サービス６０４は、リクエストされたデバイス・アップデートを生成するためのコンポーネントを含む。図６の例では、これらのコンポーネントは、登録機関６１２、登録認証機関６１４、匿名認証機関６１６、第１のリンケージ機関６１８および第２のリンケージ機関６２０を含む。
【００８７】
追加または代替の実施形態では、証明書管理サービス６０４のコンポーネントは、証明書管理サービス６０４がＶ２ＸまたはＣ２Ｘ証明書管理サービスとして構成されるか否かに依存して、変化することができる。例えば、証明書管理サービス６０４がＣ２Ｘ証明書管理サービスとして機能する場合、証明書管理サービス６０４は、登録認証機関６１４の役割に似ている役割を遂行するように構成された長期認証機関（ＬＴＣＡ）を含むことができる。同様に、証明書管理サービス６０４がＣ２Ｘ証明書管理サービスとして具体化される場合、証明書管理サービス６０４は、匿名認証機関６１６の役割に似ている役割を遂行する認証機関（ＡＡ）を含むことができる。証明書管理サービス６０４のコンポーネントは、次のパラグラフに述べられている。
【００８８】
一例では、証明書管理サービス６０４はＣＭＳとして具体化することができる。証明書管理サービス６０４の様々な実施形態は、非常に高いボリュームのデバイス・トランザクションおよび証明書生成処理に使用されてもよい。様々な実施形態では、証明書管理サービス６０４は、複数のサーバ、複数のハードウェア・セキュリティー・モジュール（ＨＳＭ）、複数の計算するまたは計算エンジンおよび複数のアプリケーションプラットフォームを使用して、実装することができる。例示的な実施形態では、それぞれのアプリケーションプラットフォームは、登録機関６１２、登録認証機関６１４、匿名認証機関６１６およびリンケージ機関６１８，６２０をホストするための１つ以上のバーチャル・マシン（ＶＭ）を含むことができる。追加または代替の実施形態では、それぞれのアプリケーションプラットフォームは、ソフトウェア・アプリケーションをホストおよび実行することができる、例えばアプリケーションサーバ、コンピュータ、または他のコンピュータ・ハードウェアのような、１つ以上のハードウェア・プラットフォームを含むことができる。図６の例では、登録認証機関６１４についてのアプリケーションプラットフォームは、登録認証機関６１４についてのアプリケーションを起動する１つ以上のＶＭとすることができ、匿名認証機関６１６についてのアプリケーションプラットフォームは、匿名認証機関６１６についてのアプリケーションをホストおよび起動するように動作可能な１つ以上のＶＭとすることができる。同様に、第１のリンケージ機関６１８についてのアプリケーションプラットフォームは、第１のリンケージ機関アプリケーションをホストおよび起動するように構成された１つ以上のＶＭとすることができ、第２のリンケージ機関６２０についてのアプリケーションプラットフォームは、第２のリンケージ機関アプリケーションをホストおよび起動するように動作可能な１つ以上のＶＭとすることができる。証明書管理サービス６０４の非限定的な例は、プライベート・データ・センター、例えばアマゾンからのアマゾン・ウェブ・サービス（ＡＷＳ）のようなクラウド・データ・センター、または、プライベート・データ・センターとクラウド・データ・センターとのハイブリッドで、実装することができる。
【００８９】
いくつかの実施形態では、証明書管理サービス６０４は、製造業者の分配機器またはネットワーク・エッジ６０２によって使用されるための、登録証明書および匿名証明書のようなセキュリティ証明書を含むデバイス・アップデートを提供することができる。或る実施形態では、証明書管理サービス６０４は、分配機器（図示せず）に証明書を提供するために、デジタル資産管理システム（ＤＡＭＳ（図示せず））と対話することができる。
【００９０】
図６において示されるように、証明書管理サービス６０４のアーキテクチャーは、登録機関６１２、登録認証機関６１４、匿名認証機関６１６、第１のリンケージ機関６１８および第２のリンケージ機関６２０を含む。これらのコンポーネントのそれぞれは、それぞれが専用の計算エンジン（図示せず）を利用して、タスクを実行することができる。例えば、登録機関６１２は、登録機関計算エンジンを利用することができ、登録認証機関６１４は、登録認証機関計算エンジンを利用することができ、匿名認証機関６１６は、匿名認証機関計算エンジンを利用することができ、第１のリンケージ機関６１８は、第１のリンケージ機関計算エンジンを利用することができ、第２のリンケージ機関６２０は、第２のリンケージ機関計算エンジンを利用することができる。これらのコンポーネントのそれぞれの機能は、次のパラグラフに述べられている。
【００９１】
いくつかの実施形態では、証明書管理サービス６０４のアーキテクチャーは、好都合に、セキュリティ機能からセキュリティ非関連のアプリケーションを分離する。図６の例において示されるように、登録機関６１２、登録認証機関６１４、匿名認証機関６１６およびリンケージ機関６１８，６２０は、自身の専用の計算エンジン上で実行される自身のＶＭ上のアプリケーションとして実装され、それらの全ては、任意のセキュリティ非関連のアプリケーションおよび機能と分離されている。これは、ＨＳＭの性能が遅いか、クラウド・サービス・プロバイダーがＨＳＭを提供することができないか、または、ＨＳＭの適切な管理が不確かである従来のシステムを超える、技術的なおよびセキュリティ的な利点および改善の両方を提供する。証明書管理サービス６０４では、ＨＳＭを利用する暗号動作は、計算エンジン（例えば、１つ以上の計算エンジン）中で行われる。
【００９２】
重大なセキュリティ機能を互いから分離して個別の計算エンジン上に配置することによって、図６に示されるように、例えば登録機関６１２、登録認証機関６１４、匿名認証機関６１６およびリンケージ機関６１８，６２０によって行われるような、計算集約型の暗号およびセキュリティ機能（楕円曲線バタフライ展開計算または楕円曲線デジタル署名）は、既存の従来の登録機関システムよりも著しく速く行われる。下記に述べられるキャンペーン・サービス６０８に関連して、証明書管理システム６０４から取得されたデジタル資産を有するコンピュータ化された装置６０６のプロビジョニングを、ネットワーク６１０に関連する任意の技術的な性能の問題が妨害するまたは遅延することを防ぐことにより、この設計は、マルチクライアント環境中のトランザクション処理における著しい改善を可能にする。例えば、キャンペーン・サービス６０８は、どのコンピュータ化された装置６０６がデバイス・アップデートキャンペーンに属していて、デバイス・アップデートについてのリクエストを送信しているかを決定することができる。したがって、キャンペーン・サービス６０８は、コンピュータ化された装置６０６がデバイス・アップデートキャンペーンに属するかを決定することができ、そしてそうならば、プロビジョニング・プロセスの間またはしばらく経って、登録証明書および匿名証明書のような取得されたデバイス・アップデートを、コンピュータ化された装置６０６に提供する。いくつかの例では、コンピュータ化された装置６０６にプロビジョニングしている間、キャンペーン・サービス６０８は帯域幅問題、ネットワーク接続問題などを回避することができる。例えば、キャンペーン・サービス６０８は、多くのコンピュータ化された装置６０６がデバイス・アップデートについて登録機関６１２に照会するのを防ぐことができる。キャンペーン・サービス６０８はまた、ブルームフィルタ・データ構造内にハッシュ値を格納することにより、少ないデータ記憶装置を用いて、デバイス・アップデートについてのリクエストを速く処理することができ、ハッシュ値は、キャンペーンに属するコンピュータ化された装置６０６からの識別情報に基づくことができる。そのうえ、キャンペーン・サービス６０８は、いくつかの例では、ＣＭＳ６０４から登録証明書および匿名証明書を同期してまたは非同期に取得することができ、登録証明書および匿名証明書を、コンピュータ化された装置６０６に同期してまたは非同期に提供することができる。いくつかの例では、登録証明書および匿名証明書の非同期の取得および分配は、それぞれのコンピュータ化された装置についてのプロビジョニング・プロセスの時間をより低減することができる。そのため、本開示に対応する実施形態は、キャンペーンの一部としてデバイス・アップデートを取得することになり、デジタル資産のようなデバイス・アップデートを証明書管理システム６０４から取得することになるコンピュータ化された装置６０６を決定するための、特定の技術的に有利なシステム・アーキテクチャーを提供する。
【００９３】
いくつかの実施形態では、登録機関６１２によって実行される登録機関アプリケーションの規模が修正される場合、追加のＶＭを追加することができる一方で、登録機関計算エンジンの安全な計算能力に変更は必要とされない。その代わりに、セキュリティ計算が性能を制限している場合には、付加的で安全な、登録機関計算エンジンを追加することができる。この同じ多次元スケーリングは、証明書管理サービス６０４のその他のコンポーネントについてあてはまる。これらの能力は、既存の従来の証明書管理サービス（ＣＭＳ）を超える著しい性能の改善およびスケーラビリティを提供する。いくつかの実施形態では、登録機関６１２、登録認証機関６１４、匿名認証機関６１６、リンケージ機関６１８，６２０についてのそれぞれのアプリケーションプラットフォームは、証明書管理サービス６０４のこれらコンポーネントの全てが互いに独立してスケーリングできるように、入力メッセージキューのそれぞれのセットを経由して、計算エンジンと通信可能に接続されている。
【００９４】
上に述べられ、図６の非限定的な例において示されたように、登録機関６１２、認証機関６１４，６１６およびリンケージ機関６１８，６２０のそれぞれは、自身のバーチャル・マシン（ＶＭ）上のアプリケーションとして実装することができる。追加または代替の実施形態では、登録機関６１２、認証機関６１４，６１６、リンケージ機関６１８，６２０の１つ以上は、ハードウェア・プラットフォーム（例えば、サーバまたは計算エンジン）上で実行することができる。アプリケーションプラットフォーム（例えばＶＭまたはハードウェア・プラットフォーム）上で実行するこれらアプリケーションのそれぞれの役割および機能は、次のパラグラフに述べられている。
【００９５】
様々な実施形態では、登録機関６１２は、電子証明書のユーザリクエストを検証するプロビジョニング・ネットワーク内の機関、または他のタイプのデジタル・セキュリティ資産になりえて、認証機関（例えば登録認証機関６１４および匿名認証機関６１６）が、電子証明書を発行することを可能にすることができる。様々な実施形態では、登録機関６１２は、任意の適切な公開鍵インフラストラクチャー（ＰＫＩ）技術を実装することができる。様々な実施形態では、キャンペーン・サービス６０８は、とりわけｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｓｔａｔｅ  ｔｒａｎｓｆｅｒ（ＲＥＳＴ）ウェブ・サービスまたはＳＯＡＰベースのサービスとして実装することができる登録機関６１２へ、証明書リクエストを渡すことができる。様々な実施形態では、同時に実行する登録機関６１２の複数のインスタンスが存在することができる。これは、図６に示される証明書管理サービス６０４の他のコンポーネントについて同様に表される。証明書管理サービス６０４の登録機関機能は、ＲＥＳＴウェブ・サービスとして実装される登録機関６１２の複数のインスタンスによってその機能を実行することができるという点で、一元化されていない。登録機関６１２についての１つの役割は、署名する匿名認証機関６１６がどの証明書が特定のコンピュータ化された装置に格納されるかを決定するのを妨げる間に、証明書プロビジョニング・リクエストを承諾し遂行することである。登録機関６１２は、証明書管理サービス６０４内においてそれらの役割を遂行するために、メッセージキューを経由して、匿名認証機関６１６およびリンケージ機関６１８，６２０と直接的に対話することができる。
【００９６】
或る実施形態では、登録機関６１２（および図６のそれ以外のコンポーネント）は、データベース（図示せず）に接続されることができる。証明書管理サービス６０４は、データ記憶および取得用のデータ・ストアまたはデータベースのコレクションを利用することができる。例えば、使用されるデータベースは、１つ以上の論理的なまたは物理的なデータベース・ユニットから成ることができ、それぞれのユニットは、必要な場合にデータ分離を可能にする１つ以上のテーブルを有している。本明細書において使用されるように、用語「データベース」は１つ以上のデータベースまたはデータ・ストアを表す。或る実施形態では、複数のデータベースの使用は、登録機関６１２と図６の他のコンポーネントとの間でのデータ分離を可能にする。例えば、複数のデータベースのそのような使用は、登録機関６１２と、認証機関６１４，６１６と、リンケージ機関６１８，６２０との間のデータ分離を可能にする。
【００９７】
いくつかの実施形態では、証明書管理サービス６０４によって使用されるデータベースは、アクセスが速く待ち時間が短い１つ以上のデータベースのコレクションである。いくつかの実施形態では、データベースは、例えばアマゾン・ウェブ・サービスによって提示されるＤｙｎａｍｏＤＢデータ・サービスのような、ＮｏＳＱＬデータベースまたはデータベース・サービスとすることができる。様々な実施形態では、データベースに格納されるデータは、アプリケーションに依存するけれども、過去に発行された証明書、様々なリンケージ機関値、証明書が発行された装置上のデータ、オペレーターのアクションなどを含むことができる。いくつかの例では、データは、暗号化されていないか、暗号化されているか、またはそれらの組み合わせのいずれかで格納することができる。
【００９８】
様々な実施形態では、登録機関６１２によって作られた電子証明書が異なるセグメントへ、例えば登録電子証明書および匿名電子証明書へ分割されるように、証明書管理サービス６０４は、登録認証機関６１４および匿名認証機関６１６を含んでいる。同時に実行する登録認証機関６１４の複数のインスタンスが存在することができるので、登録認証機関６１４は、証明書管理サービス６０４の一元化されていないコンポーネントである。例えば、いくつかの実施形態では、同時に実行する登録認証機関６１４の複数のインスタンスが存在することができる。登録認証機関６１４は、登録機関６１２から登録証明書についてのリクエストを受け取ることができる。登録認証機関６１４の１つの役割は、登録機関６１２からのリクエストを遂行し、例えば分配機器のような端末装置へ登録証明書を発行することである。いくつかの実施形態では、登録認証機関６１４は、ＣＭＳ６０４内においてその役割を遂行するために、登録機関６１２と直接的に対話する。
【００９９】
匿名認証機関６１６は、同時に実行する匿名認証機関６１６の複数のインスタンスが存在する可能性があるという点で、ＣＭＳの一元化されていないコンポーネントである。匿名認証機関６１６について、様々な実施形態では、並行して同時に実行する匿名認証機関６１６の複数のインスタンスが存在することができる。匿名認証機関６１６は、匿名証明書についてのリクエストを登録機関６１２から受け取ってもよい。匿名認証機関６１６の役割は、登録機関６１２からのリクエストを遂行し、例えばコンピュータ化された装置６０６のような端末装置へ匿名証明書を発行することである。或る実施形態では、匿名認証機関６１６は、Ｖ２Ｖ機能についての短期の匿名証明書のリクエストを遂行する。いくつかの実施形態では、匿名認証機関６１６は、ＣＭＳ６０４内においてその機能を遂行するために、登録機関６１２と直接的に対話する。
【０１００】
様々な実施形態では、図６に示されるリンケージ機関６１８および６２０は、証明書リクエスターのＩＤ（つまり証明書リクエスター装置の一意な識別子）を、取り消し目的について発行された匿名証明書にリンクする。すなわち、第１のリンケージ機関６１８および第２のリンケージ機関６２０は、証明書リクエスター装置の一意な識別子としてのそれぞれのリンケージ値を、発行された匿名証明書に提供する。第１のリンケージ機関６１８および第２のリンケージ機関６２０は、リンケージ値についてのリクエストを登録機関６１２から受け取ることができ、リクエストされたリンケージ値を登録機関６１２に提供することができる。リンケージ機関６１８，６２０は、リンケージ値についてのリクエストを遂行するために、登録機関６１２と直接的に対話する。
【０１０１】
様々な実施形態では、ＣＳＭ６０４の計算エンジンはＨＳＭを含むことができ、これにより、これらのコンポーネントがハッカーから過度に脅かされることなく、安全な計算を行うことを可能にする。いくつかの実施形態では、計算エンジンは、組み込みＨＳＭを必要とすることなくそれ自身が安全な計算を行うように設計されることができ、そのような実施形態では、それらはＨＳＭを具体化する。
【０１０２】
様々な実施形態では、ＣＭＳ６０４において異なるＨＳＭバージョンが使用されてもよい。例えば、ＨＳＭは、１つ以上の計算エンジン内にプラグイン・カードとしてインストールされた組み込みＨＳＭを含むことができる。そのような例示的な実施形態では、組み込みＨＳＭは、１つ以上の計算エンジン内に、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）ＨＳＭまたはＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）ＨＳＭとしてインストールされることができる。また、例えば、証明書管理サービス６０４内のＨＳＭは、自身の筐体内において計算エンジンから分離される、外付けの、ネットワークに取り付けられたまたはネットワークに接続されたＨＳＭを含むことができる。
【０１０３】
当業者の一人であれば、図６に示されるコンポーネントおよび実施形態の詳細は、説明の簡潔さおよび明瞭さのために提示された例であることを認識するであろう。この例は制限を意図するものではなく多くの変更が可能であり、他のコンポーネント、プロセス、実施形態の詳細および変更を、本明細書に記述された技術原理から逸脱することなく使用することができる。
【０１０４】
図７は、コンピューティング環境７００の例示的なブロック図であり、本技術の実装に対応するシステムおよび方法の実装に使用することができるコンピューティング・システム７０２を含む。他のコンポーネントおよび／またはアレンジメントが使用されてもよい。いくつかの実施形態では、コンピューティング・システム７０２は、とりわけ、ネットワーク・エッジ１０２、キャンペーン管理サービス１０８、ネットワーク・エッジ６０２またはキャンペーン・サービス６０８のような、図１−６の様々なコンポーネントを実装するために、少なくとも部分的に使用することができる。いくつかの実施形態では、コンピューティング・システム７００に類似する一連のコンピューティング・システムは、ネットワーク７０４を経由して互いに通信することが可能な図１−６のコンポーネントのうちの１つを実装するように、それぞれが専門のハードウェアを用いてカスタマイズされ、および／または専門のサーバとしてプログラムされることができる。
【０１０５】
図７に示される例では、コンピューティング・システム７００は、中央処理装置（ＣＰＵ）７０６、メモリ７０８、入力／出力（Ｉ／Ｏ）装置７１０、ハードウェア・セキュリティー・モジュール（ＨＳＭ）７１２および不揮発性記憶装置７１４のような多くのコンポーネントを含む。システム７００は様々な方法において実装することができる。例えば、統合型プラットフォーム（サーバ、ワークステーション、パーソナル・コンピュータ、ラップトップなどのような）としての実施形態は、ＣＰＵ７０６、メモリ７０８、不揮発性記憶装置７１４およびＩ／Ｏ装置７１０を含むことができる。そのような構成では、コンポーネント７０６，７０８，７１４，７１０は、ローカルデータ・バスを通じて接続し通信してもよいし、外部Ｉ／Ｏ接続を経由して、データ・リポジトリ７１６（例えば個別のデータベース・システムとして実装された）にアクセスしてもよい。Ｉ／Ｏコンポーネント７１０は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（セルラーフォン・ネットワークまたはインターネットのようなＷＡＮ）のようなネットワーク、および／または他の適切な接続を通じて、直通の通信リンク（例えば、配線による接続またはローカルのＷｉ−Ｆｉ（登録商標）接続）を通じて、外部装置に接続することができる。システム７００は、スタンドアローンとすることができるか、または、より大きなシステムのサブシステムとすることができる。
【０１０６】
ＣＰＵ７０６は、カリフォルニア州サンタクララのインテル（登録商標）コーポレーションによって製造されたコア（登録商標）ファミリーからのマイクロプロセッサ、またはカリフォルニア州サニーヴェールのＡＭＤ（登録商標）コーポレーションによって製造されたアスロン（登録商標）ファミリーからのマイクロプロセッサのような、１つ以上の既知のプロセッサまたは制御演算装置とすることができる。メモリ７０８は、本技術の実施形態に関連する或る機能、方法およびプロセスを行うためにＣＰＵ７０６によって実行または使用される命令および情報を格納するように構成された、１つ以上の速い記憶装置とすることができる。記憶装置７１４は、揮発性若しくは不揮発性、磁気、半導体、テープ、光学または他のタイプの記憶装置、或いは、ＣＤおよびＤＶＤのような装置並びにソリッドステート装置を含む、長期記憶を意図したコンピュータ可読媒体とすることができる。
【０１０７】
図示する実施形態では、メモリ７０８は、ＣＰＵ７０６によって実行された時に、本技術に対応する様々な動作、手続き、プロセスまたは方法を行う、記憶装置７１４からまたはリモートシステム（図示せず）からロードされる、１つ以上のプログラムまたはアプリケーション７１８を含む。或いはまた、ＣＰＵ７０６は、システム７００からリモートに設置された１つ以上のプログラムを実行することができる。例えば、システム７００は、実行された時に本技術の実施形態に関連する機能およびプロセスを行う１つ以上のリモートプログラムに、ネットワーク７０４を経由してアクセスすることができる。
【０１０８】
一つの実施形態では、メモリ７０８は、ネットワーク・エッジ１０２用に、および／またはキャンペーン管理サーバ１０８用に、本明細書に記述される専門の機能および動作を行うためのプログラム７１８を含むことができる。いくつかの実施形態では、メモリ７０８は、付随的な機能を本技術へ提供する他の方法およびプロセスを実現する他のプログラムまたはアプリケーションを含むことができる。いくつかの例では、メモリ７０８は、任意の適切な非一時的なコンピュータ可読媒体を含むことができる。例えば、非一時的なコンピュータ可読媒体は、本明細書に記述される技術に従って命令を実行するようにＣＰＵ７０６に命令する、コンピュータ実行可能な命令を含むことができる。
【０１０９】
メモリ７０８はまた、本技術に無関係な他のプログラム（図示せず）を用いて、および／または、ＣＰＵ７０６によって実行された時に当該分野において周知のいくつかの機能を行うオペレーティング・システム（図示せず）を用いて、構成されることができる。例示的には、オペレーティング・システムは、マイクロソフトＷｉｎｄｏｗｓ（登録商標）、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、アップル・コンピュータ（登録商標）オペレーティング・システム、または他のオペレーティング・システムとすることができる。オペレーティング・システムの選択およびオペレーティング・システムの使用さえも、本技術にとっては重大ではない。
【０１１０】
ＨＳＭ７１２は、デジタル・セキュリティ資産を安全に生成および格納し、および／または、暗号化およびセンシティブな様々な計算を安全に行うプロセッサを、それ自身に備える装置とすることができる。ＨＳＭ７１２は、攻撃者による実行可能なアクセスから、暗号化キーのようなデジタル・セキュリティ資産および他の機密データを保護する。いくつかの実施形態では、ＨＳＭは、コンピューティング・システム７００に直接的に取り付けるプラグイン・カードまたはボードとすることができる。
【０１１１】
Ｉ／Ｏ装置７１０は、データがシステム７００によって受け取られおよび／または送信されることを可能にする１つ以上の入出力装置を含むことができる。例えば、Ｉ／Ｏ装置７１０は、データがユーザから入力されることを可能にする、キーボード、タッチスクリーン、マウスなどのような、１つ以上の入力装置を含むことができる。さらに、Ｉ／Ｏ装置７１０は、データがユーザに出力されるかまたは提示されることを可能にする、ディスプレイ・スクリーン、ＣＲＴモニター、液晶モニター、プラズマ・ディスプレイ、プリンタ、スピーカー装置などのような、１つ以上の出力装置を含むことができる。Ｉ／Ｏ装置７１０はまた、コンピューティング・システム７００が他の機器および装置と例えばデジタルで通信することを可能にする、１つ以上のデジタルのおよび／またはアナログの通信入出力装置を含むことができる。Ｉ／Ｏ装置７１０には、他の構成および／または数の入力および／または出力装置を組み込むことができる。
【０１１２】
示された実施形態では、システム７００は、ネットワーク７０４（インターネット、プライベート・ネットワーク、仮想プライベート・ネットワーク、セルラー・ネットワーク若しくは他のネットワーク、またはこれらの組み合わせのような）に接続され、そして次には、サーバ、パーソナル・コンピュータ、ラップトップ・コンピュータ、クライアント装置などのような、様々なシステムおよびコンピューティング機器に接続することができる。一般に、システム７００は、ネットワーク７０４を経由して、外部機器および装置からデータを入力することができ、外部機器および装置へデータを出力することができる。
【０１１３】
図７に示される例示的な実施形態では、データ・リポジトリまたはデータソース７１６は、システム７００の外部にあるスタンドアローンのデータベースである。他の実施形態では、データソース７１６はシステム７００によってホストされることができる。様々な実施形態では、データソース７１６は、本技術に対応するシステムおよび方法を実装するために使用されるデータを管理および格納することができる。例えば、データソース７１６は、キャンペーンのそれぞれのコンピュータ化された装置についての識別情報またはデータを含むデータ構造などを、管理および格納することができる。データソース７１６はまた、いくつもの数のハッシュ関数に適用される識別情報に基づいたハッシュ値を含むブルームフィルタ・データ構造を、管理および格納することができる。
【０１１４】
いくつかの実施形態では、データソース７１６は、情報を格納し、システム７００を通じてアクセスされおよび／または管理される、１つ以上のデータベースを含むことができる。例示的には、データベース７１６は、オラクル（登録商標）データベース、サイベース（登録商標）データベース、または他のリレーショナル・データベースとすることができる。しかしながら、本技術に対応するシステムおよび方法は、分離するデータ構造若しくはデータベースに、またはデータベース若しくはデータ構造の使用にさえ制限されない。
【０１１５】
当業者の一人であれば、図７中のシステムのコンポーネントおよび実施形態の詳細は、説明の簡潔さおよび明瞭さのために提示された例であることを認識するであろう。他のコンポーネントおよび実施形態の詳細を使用することができる。
【０１１６】
先に述べた例は、説明の明瞭さのために、ＯＢＵ、ＥＣＵおよびＲＳＵなどのようなコンピュータ化された装置の特定の例を使用するけれども、本技術はそれらの特定の例に制限されない。本技術に対応する様々な実施形態は、とりわけ、医療機器（例えば透析機、輸液ポンプなど）、ロボット、ドローン、自律的な乗り物および無線通信モジュール（例えば、ｅｍｂｅｄｄｅｄ  Ｕｎｉｖｅｒｓａｌ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃａｒｄｓ（ｅＵＩＣＣ））のような多種多様なコンピュータ化された装置を用いて、それら多種多様なコンピュータ化された装置のために使用することができる。
【０１１７】
本技術の他の実施形態は、本明細書の考察および本明細書に開示された技術の実践により、当業者には明らかであろう。例示的な実施形態の様々な修正と同様に、開示された主題に属する、当業者には明らかである主題の他の実施形態は、開示された主題の範囲内に位置するものとする。
【図１】
2020201959.tif 000003
【図２】
2020201959.tif 000004
【図３Ａ】
2020201959.tif 000005
【図３Ｂ】
2020201959.tif 000006
【図４】
2020201959.tif 000007
【図５】
2020201959.tif 000008
【図６】
2020201959.tif 000009
【図７】
2020201959.tif 000010
【外国語明細書】
2020201959000001.pdf
2020201959000002.pdf
2020201959000003.pdf
2020201959000004.pdf