(57)【要約】  開示される技術は一般に、ＩｏＴ通信に関する。たとえばそのような技術は、手動工程を伴わず自動的にＩｏＴデバイスをプロビジョニングするために用いることができる。この技術の一例において、初期ブート時、ＩｏＴデバイスに格納されたプロビジョニングサービスエンドポイントへ識別情報が自動的に送信される。識別情報は、第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む。プロビジョニングサービスからの暗号情報が受信される。暗号情報は、第１のＩｏＴデバイスのＩＤに部分的に基づいて複数のＩｏＴハブから選択されたＩｏＴハブに関連する。暗号情報の受信に応答して、ＩｏＴハブへメッセージが自動的に送信される。ユーザ接続を必要とせず、ＩｏＴハブからの新たな構成ファイルおよびファームウェア更新が受信される。新たな構成ファイルおよびファームウェア更新は、自動的にインストールされる。
2019535086.tif 000002
【特許請求の範囲】
【請求項１】
モノのインターネット（ＩｏＴ）通信のための装置であって、
第１のＩｏＴデバイスを備え、前記第１のＩｏＴデバイスは、
前記ＩｏＴデバイスのための実行時間データを格納するように適合されたメモリと、
実行に応答して、前記ＩｏＴデバイスが、
初期ブート時、前記ＩｏＴデバイスに格納されたプロビジョニングサービスエンドポイントへ、前記第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む識別情報を自動的に送信することと、
前記第１のＩｏＴデバイスのＩＤに部分的に基づいて複数のＩｏＴハブから選択されたＩｏＴハブに関連する、前記プロビジョニングサービスからの暗号情報を受信することと、
前記暗号情報の受信に応答して、前記ＩｏＴハブへメッセージを自動的に送信することと、
ユーザ接続を必要とせず、前記ＩｏＴハブからの新たな構成ファイルおよびファームウェア更新を受信することと、
前記新たな構成ファイルおよび前記ファームウェア更新を自動的にインストールすることと
を含むアクションを実行することを可能にするプロセッサ実行可能コードを実行するように適合された少なくとも１つのプロセッサと
を含む、装置。
【請求項２】
前記識別情報は、前記第１のＩｏＴデバイスに関連する地理的情報を更に含み、ＩｏＴハブは、前記第１のＩｏＴデバイスに関連する前記地理的情報に更に基づいて、前記複数のＩｏＴハブから選択される、請求項１に記載の装置。
【請求項３】
前記暗号情報は、前記ＩｏＴハブに接続する前記第１のＩｏＴデバイスに関連する接続情報を含む、請求項１に記載の装置。
【請求項４】
モノのインターネット（ＩｏＴ）通信のための方法であって、
第１のＩｏＴデバイスから、第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む識別情報を受信することと、
少なくとも１つのプロセッサを用いて、前記第１のＩｏＴデバイスを検証することと、
前記第１のＩｏＴデバイスの前記ＩＤに少なくとも部分的に基づいて、複数のＩｏＴハブからＩｏＴハブを自動的に選択することと、
前記ＩｏＴハブを選択すると、前記選択されたＩｏＴハブへ、前記ＩｏＴデバイスを前記選択されたＩｏＴハブに登録する要求を自動的に送信することと、
前記選択されたＩｏＴハブからの、構成情報を含む接続情報を受信することと、
前記接続情報を受信すると、ユーザ接続を必要とせず、前記第１のＩｏＴデバイスへ前記構成情報を自動的に送信することと
を含む方法。
【請求項５】
前記接続情報を受信すると、ユーザ接続を必要とせず、前記第１のＩｏＴデバイスへファームウェア更新を自動的に送信すること
を更に備える、請求項４に記載の方法。
【請求項６】
前記構成情報は、前記ＩｏＴデバイスのための最新の構成ファイルを含む、請求項４に記載の方法。
【請求項７】
前記識別情報は、前記第１のＩｏＴデバイスに関連する地理的情報を更に含み、前記ＩｏＴハブを自動的に選択することは、前記第１のＩｏＴデバイスに関連する前記地理的情報に更に基づく、請求項４に記載の方法。
【請求項８】
モノのインターネット（ＩｏＴ）通信のための装置であって、
１または複数のデバイスを含むＩｏＴハブを備え、前記デバイスは、前記デバイスに関する実行時間データを格納するように適合された少なくとも１つのメモリと、実行に応答して、前記ＩｏＴが、
デバイスレジストリを作成することと、
プロビジョニングサービスからの、第１のＩｏＴデバイスを登録する要求を受信することと、
前記第１のＩｏＴデバイスを前記デバイスレジストリに追加することと、
前記第１のＩｏＴデバイスに関連する暗号情報を送信することと、
前記暗号情報の送信に応答して、前記第１のＩｏＴデバイスからの第１のメッセージを受信することと、
前記第１のメッセージの受信に応答して、前記第１のＩｏＴデバイスへ、新たな構成ファイルおよび新たなファームウェア更新を自動的に送信することと
を含むアクションを実行することを可能にするプロセッサ実行可能コードを実行するように適合された少なくとも１つのプロセッサと
を備える、装置。
【請求項９】
前記暗号情報はクレデンシャルを含み、前記暗号情報は更に、前記ＩｏＴハブに関連するホストネームを含む、請求項８に記載の装置。
【請求項１０】
前記第１のＩｏＴデバイスを登録する前記要求は、前記ＩｏＴハブのホストネームが第１のホストネームであり、前記プロビジョニングサービスのホストネームが第２のホストネームであり、かつ前記第２のホストネームが前記第１のホストネームと異なるような、前記プロビジョニングサービスと前記ＩｏＴハブとの間のネットワーク通信に基づく、請求項８に記載の装置。
【請求項１１】
前記暗号情報は、前記ＩｏＴハブに接続する前記第１のＩｏＴデバイスに関連する接続情報を含む、請求項８に記載の装置。
【請求項１２】
前記暗号情報はクレデンシャルを含み、前記暗号情報は更に、前記ＩｏＴハブに関連するホストネームを含む、請求項１に記載の装置。
【請求項１３】
前記識別情報は、前記第１のＩｏＴデバイスの前記ＩＤを含む証明書を含む、請求項１に記載の装置。
【請求項１４】
前記第１のＩｏＴデバイスを検証することは、前記デバイスＩＤを登録リストと照合することを含む、請求項４に記載の方法。
【請求項１５】
前記第１のＩｏＴデバイスを検証することは、前記識別情報における証明書を検証することを含む、請求項４に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
［0001］  モノのインターネット（「ＩＯＴ」）は一般に、ネットワークを介したデータの通信を含む、ネットワークを介した通信が可能なデバイスのシステムを指す。デバイスは、たとえばトースター、コーヒーマシン、サーモスタットシステム、洗濯機、乾燥機、ランプ、自動車など、あらゆる物を含んでよい。ネットワーク通信は、デバイス自動化、データ捕捉、警報の提供、設定の個人化、および数々の他の用途のために用いられ得る。
【発明の概要】
【０００２】
［0002］  この概要は、発明を実施するための形態において以下で詳述される選定された概念を簡単な形式で紹介するために提供される。この概要は、主張される本発明の主要特徴または必須特徴を特定することは意図されておらず、主張される本発明の範囲を限定するために用いられることも意図されていない。
【０００３】
［0003］  簡潔に述べると、開示される技術は一般に、ＩｏＴ通信に関する。たとえばそのような技術は、手動工程を伴わず自動的にＩｏＴデバイスをプロビジョニングするために用いることができる。この技術の一例において、初期ブート時、ＩｏＴデバイスに格納されたプロビジョニングサービスエンドポイントへ識別情報が自動的に送信される。識別情報は、第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む。プロビジョニングサービスからの暗号情報が受信される。暗号情報は、第１のＩｏＴデバイスのＩＤに部分的に基づいて複数のＩｏＴハブから選択されたＩｏＴハブに関連する。暗号情報の受信に応答して、ＩｏＴハブへメッセージが自動的に送信される。ユーザ接続（ｕｓｅｒ  ａｓｓｏｃｉａｔｉｏｎ）を必要とせず、ＩｏＴハブからの新たな構成ファイルおよびファームウェア更新が受信される。新たな構成ファイルおよびファームウェア更新は、自動的にインストールされる。
【０００４】
［0004］  いくつかの例において、手動工程が必要とされないゼロタッチ方式において、ＩｏＴデバイスはグローバルエンドポイントに接続し、適切なクラウドベースのＩｏＴソリューションへルート指定され、その後、そのＩｏＴソリューションに固有に適用される構成データおよびファームウェア更新を自動的に有する。自動的な構成およびファームウェア更新は、デバイスとのユーザ接続を必要とせず、デバイスが最初にＩｏＴソリューションに接続された時に発生する。ＩｏＴデバイスは、人間の介入なしでプロビジョニングされ、完全に更新される。複数の種類のハードウェア／オペレーティングシステム（ＯＳ）の組み合わせを同じグローバルエンドポイントに接続することができ、これは、ハードウェアに固有で、１つのバックエンドソリューションにのみ接続するのとは対照的である。いくつかの例において、プロビジョニングサービスとの全ての接続が保護される。また、複数のＩｏＴソリューションが１つのプロビジョニングサービスによって、１つのプロビジョニングサービスに接続され得る。いくつかの例は、ゼロタッチではなくロータッチであり、すなわちこれらの例において、人間のアクションがないのではなく、わずかに存在する。
【０００５】
［0005］  開示される技術の他の態様およびそれに関する応用は、添付の図面および説明を閲読し理解することによって理解される。
【０００６】
［0006］  本開示の非限定的かつ非包括的な例が、以下の図面を参照して説明される。図面において、同類の参照番号は、特に記載されない限り、様々な図を通して同類の部分を指す。これらの図面は、必ずしも一定の比率で拡大縮小されたものではない。
【０００７】
［0007］  本開示をより深く理解するために、添付図面とともに閲読すべき、以下の発明を実施するための形態が参照される。
【図面の簡単な説明】
【０００８】
【図１】［0008］本技術の態様が用いられ得る適切な環境の一例を示すブロック図である。
【図２】［0009］開示される技術の態様に係る、適切なコンピューティングデバイスの一例を示すブロック図である。
【図３】［0010］ＩｏＴ通信のためのシステムの例を示すブロック図である。
【図４】［0011］ＩｏＴ通信のためのプロセスに関するデータフローの例を示す図である。
【図５】［0012］図３のシステムの一部の例を示すブロック図である。
【図６】［0013］図３のシステムの一部の他の例を示すブロック図である。
【図７】［0014］ＩｏＴ通信のためのプロセスの例を示す論理フロー図である。
【図８】［0015］ＩｏＴ通信のための他のプロセスの例を示す論理フロー図である。
【図９】［0016］本開示の態様に係る、ＩｏＴ通信のための更に他のプロセスの例を示す論理フロー図である。
【発明を実施するための形態】
【０００９】
［0017］  以下の説明は、本技術の様々な例に関する説明を可能にし、それらを完全に理解するための特定の細部を提供するものである。当業者が理解するように、本技術は、これらの細部の多くを伴わずとも実施され得る。いくつかの例において、周知の構造および機能は、本技術の例の説明を不必要に不明瞭にすることを避けるために、詳しく示されず説明されない。本開示において用いられる用語は、本技術の特定の例の詳細な説明に関連して用いられる場合でも、最も幅広く合理的に解釈されることが意図される。特定の用語が以下で強調され得るが、任意の限定された方式で解釈されることが意図された任意の用語は、この発明を実施するための形態において、明確かつ具体的に定義される。以下で識別される意味は、必ずしもその用語を限定するものではなく、その用語の典型的な例を提供するものにすぎない。たとえば、「基づく」という用語は排他的なものではなく、「少なくとも部分的に基づく」という用語に等しく、追加の要因に基づくという選択肢を含み、それらのいくつかは本明細書で説明されないこともある。他の例として、「介して」という用語は排他的なものではなく、「少なくとも部分的に介して」という用語に等しく、追加の要因を介するという選択肢を含み、それらのいくつかは本明細書で説明されないこともある。「〜において」の意味は、「〜において」および「〜で」を含む。本明細書で用いられる「１つの実施形態において」または「一例において」という表現は、必ずしも同じ実施形態または例を指すものではないが、そうである場合もある。文中の特定の数値表示の使用は、より小さい値を持つ数値表示の存在を暗示するものではない。たとえば、「第３のフーおよび第４のバーから成るグループから選択されたウィジェット」という記載は、それ自体が、少なくとも３つのフーまたは少なくとも４つのバーという要素があることを暗示するものではない。単一形での参照は、閲読の明確性のためになされたにすぎず、複数形での参照が明確に除外されない限り、複数形での参照を含むものである。「または」という用語は、特に記載されない限り、包括的な「または」演算子である。たとえば、「ＡまたはＢ」という表現は、「Ａ、Ｂ、またはＡおよびＢ」を意味する。本明細書で用いられる場合、「構成要素」および「システム」という用語は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの様々な組み合わせを包含することが意図される。したがって、たとえばシステムまたは構成要素は、プロセス、コンピューティングデバイスで実行しているプロセス、コンピューティングデバイス、またはそれらの一部であってよい。
【００１０】
［0018］  簡潔に述べると、開示される技術は一般に、ＩｏＴ通信に関する。たとえばそのような技術は、手動工程を伴わず自動的にＩｏＴデバイスをプロビジョニングするために用いることができる。この技術の一例において、初期ブート時、ＩｏＴデバイスに格納されたプロビジョニングサービスエンドポイントへ識別情報が自動的に送信される。識別情報は、第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む。プロビジョニングサービスからの暗号情報が受信される。暗号情報は、第１のＩｏＴデバイスのＩＤに部分的に基づいて複数のＩｏＴハブから選択されたＩｏＴハブに関連する。暗号情報の受信に応答して、ＩｏＴハブへメッセージが自動的に送信される。ユーザ接続を必要とせず、ＩｏＴハブからの新たな構成ファイルおよびファームウェア更新が受信される。新たな構成ファイルおよびファームウェア更新は、自動的にインストールされる。
【００１１】
［0019］  多数のＩｏＴデバイスのセットアップは困難であり、相当な量の手動作業を伴い得る。既成のスマートデバイスの場合、デバイスは、自身が接続すべきクラウドバックエンドがどれかを何らかの方法で知ることを必要とし得る。その後デバイスは、そのクラウドバックエンドに安全に接続可能であることを必要とし、これは、顧客が個人的にデバイスに接続クレデンシャルを設置する必要性を伴い得る。デバイスは、年単位で倉庫に置かれていることがあり、これは、搭載ファームウェアが旧式であり、デバイスの安全性を保証するために更新される必要を有し得ることを意味する。
【００１２】
［0020］  これらの問題は、全てのＩｏＴデバイスに直面し得る。他のいくつかの技術において、顧客が、一括インポートを用いて一度にＩｏＴハブ内で多数のデバイスアイデンティティを作成することができる場合でもなお、デバイス自体に接続クレデンシャルを個々に設置することが必要である。他のいくつかの技術は、デバイスを接続するための手動作業を引き受け、あるいはデバイスが従来管理されるユーザ接続によって管理インタフェースにデバイスが登録されることを必要とする。これら他の技術は、デバイスを準備するためにデバイス製造と最終使用との間で行われる手動工程を伴うので、実質的な手動作業を伴う。
【００１３】
［0021］  本開示のいくつかの例は、手動工程を伴わず自動的に、ＩｏＴデバイスがグローバルエンドポイントに接続し、適切なクラウドベースのＩｏＴソリューションにルート指定され、その後、そのＩｏＴソリューションに固有に適用される構成データおよびファームウェア更新を自動的に有することを提供する。自動的な構成およびファームウェア更新は、デバイスとのユーザ接続を必要とせず、デバイスが最初にＩｏＴソリューションに接続された時に発生する。ＩｏＴデバイスは、人間の介入なしで、プロビジョニングされ完全に更新される。複数の種類のハードウェア／オペレーティングシステム（ＯＳ）の組み合わせを同じグローバルエンドポイントに接続することができ、これは、ハードウェアに固有で、１つのバックエンドソリューションにのみ接続するのとは対照的である。いくつかの例において、プロビジョニングサービスとの全ての接続が保護される。いくつかの例において、プロビジョニングサービスは、クラウド内のグローバルエンドポイントとして機能するグローバルに利用可能なクラウドサービスであり、他の例において、プロビジョニングサービスは、サービスエンドポイントごとのユーザの加入におけるエンドポイントである。また、複数のＩｏＴソリューションが、１つのプロビジョニングサービスによって、１つのプロビジョニングサービスに接続され得る。
【００１４】
（例示的なデバイス／動作環境）
［0022］  図１は、本技術の態様が実施され得る環境１００の図である。図示するように、環境１００は、ネットワーク１３０を介して接続されたコンピューティングデバイス１１０およびネットワークノード１２０を含む。環境１００の特定の構成要素が図１に示されるが、他の例において、環境１００は、追加のおよび／または異なる構成要素を含んでもよい。たとえば特定の例において、環境１００は、ネットワークストレージデバイス、メンテナンスマネージャ、および／または他の適切な構成要素（不図示）も含んでよい。図１に示すコンピューティングデバイス１１０は、オンプレミス、クラウドなどを含む様々な位置にあってよい。たとえばコンピュータデバイス１１０は、クライアント側、サーバ側などにあってよい。
【００１５】
［0023］  図１に示すように、ネットワーク１３０は、複数のコンピューティングデバイス１１０を相互接続し、コンピューティングデバイス１１０を外部ネットワーク１４０、たとえばインターネットまたはイントラネットに接続する１または複数のネットワークノード１２０を含んでよい。たとえばネットワークノード１２０は、スイッチ、ルータ、ハブ、ネットワークコントローラ、または他のネットワーク要素を含んでよい。特定の例において、コンピューティングデバイス１１０は、ラック、アクションゾーン、グループ、セット、または他の適切な区分に組織化され得る。たとえば図示した例において、コンピューティングデバイス１１０は、第１、第２、および第３のホストセット１１２ａ〜１１２ｃとして個々に識別された３つのホストセットにグループ化される。図示した例において、ホストセット１１２ａ〜１１２ｃの各々は、「トップオブラック」または「ＴＯＲ」ネットワークノードと一般に称される、対応するネットワークノード１２０ａ〜１２０ｃにそれぞれ動作可能に結合される。ＴＯＲネットワークノード１２０ａ〜１２０ｃは、コンピューティングデバイス１１０と外部ネットワーク１４０との間の通信を可能にする階層型、フラット、メッシュ、または他の適切な型のトポロジにコンピュータネットワークを形成するために、追加のネットワークノード１２０に動作可能に結合され得る。他の例において、複数のホストセット１１２ａ〜１１２ｃは、単一のネットワークノード１２０を共有してよい。コンピューティングデバイス１１０は実質的に、任意の種類の汎用または専用コンピューティングデバイスであってよい。たとえば、これらのコンピューティングデバイスは、たとえばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ディスプレイデバイス、カメラ、プリンタ、またはスマートフォンなどのユーザデバイスであってよい。ただし、データセンタ環境において、これらのコンピューティングデバイスは、たとえばアプリケーションサーバコンピュータ、仮想コンピューティングホストコンピュータ、またはファイルサーバコンピュータなどのサーバデバイスであってよい。また、コンピューティングデバイス１１０は、演算、格納、および／または他の適切なコンピューティングサービスを提供するために個々に構成されてもよい。
【００１６】
［0024］  いくつかの例において、コンピューティングデバイス１１０の１または複数は、以下で詳述するように、ＩｏＴデバイス、ＩｏＴハブの一部または全部を備えるデバイス、プロビジョニングサービスの一部または全部などを備えるデバイスなどである。
【００１７】
（例示的なコンピューティングデバイス）
［0025］  図２は、本技術の態様が実施され得るコンピューティングデバイス２００の一例を示す図である。コンピューティングデバイス２００は実質的に、任意の種類の汎用または専用コンピューティングデバイスであってよい。たとえばコンピューティングデバイス２００は、たとえばデスクトップコンピュータ、ラップトップコンピュータ、ディスプレイデバイス、カメラ、プリンタ、またはスマートフォンなどのユーザデバイスであってよい。同様にコンピューティングデバイス２００は、たとえばアプリケーションサーバコンピュータ、仮想コンピューティングホストコンピュータ、またはファイルサーバコンピュータなどのサーバデバイスであってもよく、たとえばコンピューティングデバイス２００は、図１のコンピューティングデバイス１１０またはネットワークノード１２０の例であってよい。コンピューティングデバイス２００は、ＩｏＴサービスを受信するためにネットワークに接続するＩｏＴデバイスであってもよい。同様にコンピュータデバイス２００は、以下で詳述するように、図３、図５、および図６に示すデバイスのいずれかの例であってよい。図２に示すように、コンピューティングデバイス２００は、処理回路２１０、動作メモリ２２０、メモリコントローラ２３０、データストレージメモリ２５０、入力インタフェース２６０、出力インタフェース２７０、およびネットワークアダプタ２８０を含む。コンピューティングデバイス２００の上述した構成要素の各々は、少なくとも１つのハードウェア要素を含む。
【００１８】
［0026］  コンピューティングデバイス２００は、たとえば本明細書で説明されるワークロード、プロセス、または技術を実行するための命令などの命令を実行するように構成された少なくとも１つの処理回路２１０を含む。処理回路２１０は、マイクロプロセッサ、マイクロコントローラ、グラフィックプロセッサ、コプロセッサ、フィールドプログラマブルゲートアレイ、プログラマブル論理デバイス、信号プロセッサ、またはデータを処理するために適した他の任意の回路を含んでよい。上述した命令は、他のデータ（たとえばデータセット、メタデータ、オペレーティングシステム命令など）とともに、コンピューティングデバイス２００の実行時間中に動作メモリ２２０に格納され得る。動作メモリ２２０は、たとえば揮発性メモリ、半揮発性メモリ、ランダムアクセスメモリ、スタティックメモリ、キャッシュ、バッファ、または実行時間情報を格納するために用いられる他の媒体など、様々なデータストレージデバイス／部品のいずれかも含んでよい。一例において、動作メモリ２２０は、コンピューティングデバイス２００が電源を切られている時、情報を保持しない。コンピューティングデバイス２００は、ブーティングまたは他のローディングプロセスの一部として、不揮発性データストレージ部品（たとえばデータストレージ部品２５０）から動作メモリ２２０へ命令を転送するように構成され得る。
【００１９】
［0027］  動作メモリ２２０は、第４世代ダブルデータレート（ＤＤＲ４）メモリ、第３世代ダブルデータレート（ＤＤＲ３）メモリ、他のダイナミックランダムアクセスメモリ（ＤＲＡＭ）、高帯域幅メモリ（ＨＢＭ）、ハイブリッドメモリキューブメモリ、３Ｄ積層型メモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、または他のメモリを含んでよく、そのようなメモリは、ＤＩＭＭ、ＳＩＭＭ、ＳＯＤＩＭＭ、または他のパッケージングに集積された１または複数のメモリ回路を備えてよい。そのような動作メモリモジュールまたはデバイスは、チャネル、ランク、およびバンクに従って組織化され得る。たとえば動作メモリデバイスは、チャネル内のメモリコントローラ２３０を介して処理回路２１０に結合され得る。コンピューティングデバイス２００の一例は、チャネルごとに１または２のランクを有し、チャネルごとに１または２のＤＩＭＭを含んでよい。ランク内の動作メモリは、共有クロック、および共有のアドレスおよびコマンドバスで動作してよい。また、動作メモリデバイスは、いくつかのバンクに組織化されてよく、バンクは、行および列によってアドレス指定されたアレイであると考えられ得る。そのような動作メモリの組織化に基づいて、動作メモリ内の物理アドレスは、チャネル、ランク、バンク、行および列のタプルによって称され得る。
【００２０】
［0028］  上記説明にかかわらず、動作メモリ２２０は特に、通信媒体、任意の通信媒体、または任意の信号それ自体を含むものではなく、または包含するものではない。
【００２１】
［0029］  メモリコントローラ２３０は、処理回路２１０を動作メモリ２２０にインタフェース接続するように構成される。たとえばメモリコントローラ２３０は、動作メモリ２２０と処理回路２１０との間でコマンド、アドレス、およびデータをインタフェース接続するように構成され得る。メモリコントローラ２３０は、処理回路２１０による、または処理回路２１０に関するメモリ管理の特定の態様を抽出し、または管理するようにも構成され得る。メモリコントローラ２３０は、処理回路２１０から独立した単一のメモリコントローラとして図示されるが、他の例において、複数のメモリコントローラが用いられてよく、メモリコントローラ（複数も可）は、動作メモリ２２０に統合されてもよい。また、メモリコントローラ（複数も可）は、処理回路２１０に統合されてもよい。これらのおよび他の変形例が考えられる。
【００２２】
［0030］  コンピューティングデバイス２００において、データストレージメモリ２５０、入力インタフェース２６０、出力インタフェース２７０、およびネットワークアダプタ２８０は、バス２４０によって処理回路２１０にインタフェース接続される。図２はバス２４０を単一の受動バスとして示すが、たとえばバスの集合、ポイントツーポイントリンクの集合、入力／出力コントローラ、ブリッジ、他のインタフェース回路、またはそれらの任意の集合など他の構成が、データストレージメモリ２５０、入力インタフェース２６０、出力インタフェース２７０、またはネットワークアダプタ２８０を処理回路２１０にインタフェース接続するために適切に用いられてもよい。
【００２３】
［0031］  コンピューティングデバイス２００において、データストレージメモリ２５０は、長期間不揮発性データストレージに用いられる。データストレージメモリ２５０は、たとえば不揮発性メモリ、ディスク、ディスクドライブ、ハードドライブ、ソリッドステートドライブ、または情報の不揮発性ストレージに用いられ得る他の任意の媒体など、様々な不揮発性データストレージ／部品のいずれかを含んでよい。しかし、データストレージメモリ２５０は特に、通信媒体、任意の通信媒体、または任意の信号それ自体を含む、または包括するものではない。動作メモリ２２０とは対照的に、データストレージメモリ２５０は、実行時間データストレージではなく不揮発性長期間データストレージのためにコンピューティングデバイス２００によって用いられる。
【００２４】
［0032］  また、コンピューティングデバイス２００は、たとえばプロセッサ可読記憶媒体（たとえば動作メモリ２２０およびデータストレージメモリ２５０）、および通信媒体（たとえば通信信号および無線波）など任意の種類のプロセッサ可読媒体を含んでよく、またはこれに結合され得る。プロセッサ可読記憶媒体という用語は、動作メモリ２２０およびデータストレージメモリ２５０を含むが、「プロセッサ可読記憶媒体」という用語は、本明細書および特許請求の範囲を通して、単数形で用いられる場合も複数形で用いられる場合も、本明細書において「プロセッサ可読記憶媒体」という用語が特に通信媒体、任意の通信媒体、または任意の信号それ自体を除外するものであり、包括するものではないように定義される。ただし、「プロセッサ可読記憶媒体」という用語は、プロセッサキャッシュ、ランダムアクセスメモリ（ＲＡＭ）、レジスタメモリなどを包括するものである。
【００２５】
［0033］  コンピューティングデバイス２００は、コンピューティングデバイス２００がユーザまたは他のデバイスからの入力を受信することを可能にするように構成され得る入力インタフェース２６０も含む。また、コンピューティングデバイス２００は、コンピューティングデバイス２００からの出力を提供するように構成され得る出力インタフェース２７０を含む。一例において、出力インタフェース２７０は、フレームバッファ、グラフィックプロセッサ、グラフィックプロセッサまたはアクセラレータを含み、独立した視覚ディスプレイデバイス（たとえばモニタ、プロジェクタ、仮想コンピューティングクライアントコンピュータなど）に提示するためのディスプレイをレンダリングするように構成される。他の例において、出力インタフェース２７０は、視覚ディスプレイデバイスを含み、閲覧するためのディスプレイをレンダリングおよび提示するように構成される。
【００２６】
［0034］  図示した例において、コンピューティングデバイス２００は、ネットワークアダプタ２８０を介して他のコンピューティングデバイスまたはエンティティと通信するように構成される。ネットワークアダプタ２８０は、有線ネットワークアダプタ、たとえばイーサネットアダプタ、トークンリングアダプタ、またはデジタル加入者線（ＤＳＬ）アダプタを含んでよい。ネットワークアダプタ２８０は、無線ネットワークアダプタ、たとえばＷｉＦｉアダプタ、Ｂｌｕｅｔｏｏｔｈアダプタ、ＺｉｇＢｅｅアダプタ、ロングタームエボリューション（ＬＴＥ）アダプタ、または５Ｇアダプタも含んでよい。
【００２７】
［0035］  コンピューティングデバイス２００は、特定の配置で構成された特定の構成要素とともに示されるが、これらの構成要素および配置は、本技術が用いられ得るコンピューティングデバイスの一例にすぎない。他の例において、データストレージメモリ２５０、入力インタフェース２６０、出力インタフェース２７０、またはネットワークアダプタ２８０は、処理回路２１０に直接結合されてよく、または入力／出力コントローラ、ブリッジ、または他のインタフェース回路を介して処理回路２１０に結合され得る。本技術の他の変形例も考えられる。
【００２８】
［0036］  コンピューティングデバイス２００のいくつかの例は、実行に応答してコンピューティングデバイス２００がアクションを実行することを可能にするプロセッサ実行可能コードを格納および実行するようにそれぞれ適合された少なくとも１つのストレージメモリ（たとえばデータストレージメモリ２５０）、少なくとも１つの動作メモリ（たとえば動作メモリ２２０）、および少なくとも１つのプロセッサ（たとえば処理ユニット２１０）を含む。いくつかの例において、コンピューティングデバイス２００は、たとえば以下のプロセス７００、プロセス８００、またはプロセス９００におけるアクション、または以下の図３、図５、または図６におけるコンピューティングデバイスの１または複数によって実行されるプロセスにおけるアクションなどのアクションを実行することが可能である。
【００２９】
（例示的なシステム）
［0037］  図３は、ＩｏＴ通信のためのシステム（３００）の例を示すブロック図である。システム３００は、ネットワーク３３０、ＩｏＴハブ３５１〜３５３、ＩｏＴデバイス３４１〜３４３、およびプロビジョニングサービス３１１〜３１２を含んでよく、これら全てがネットワーク３３０に接続する。「ＩｏＴデバイス」という用語は、ＩｏＴサービスを利用することが意図されたデバイスを指す。ＩｏＴデバイスは実質的に、テレメトリコレクションまたは他の任意の目的を含むＩｏＴサービスを使用するためにクラウドに接続する任意のデバイスを含んでよい。プロビジョニングサービス３１１〜３１２の各々は、たとえばいくつかの例において分散型システムなど、１または複数のデバイスを含む。「ＩｏＴハブ」という用語は、ＩｏＴデバイスがプロビジョニング後にＩｏＴサービスのためにネットワーク上で接続するデバイス、またはたとえば分散型システムなど複数のデバイスを指す。ＩｏＴデバイス３４１〜３４３および／またはＩｏＴハブ３５１〜３５３およびプロビジョニングサービス３１１〜３１２を備えるデバイスの各々は、図２のコンピューティングデバイス２００の例を含んでよい。「ＩｏＴハブ」という用語は、１つの特定の種類のＩｏＴサービスに限定されるものではなく、ＩｏＴデバイスがプロビジョニング後に任意の種類のＩｏＴソリューションまたはＩｏＴサービスのために通信するデバイスを指す。すなわち「ＩｏＴハブ」という用語は、本明細書および特許請求の範囲を通して、任意のＩｏＴソリューションを指す一般用語である。図３および本明細書における図３に対応する説明は、本開示の範囲を限定するものではなく例示目的でシステム例を示すものである。
【００３０】
［0038］  ネットワーク３３０は、有線および／または無線ネットワークを含む１または複数のコンピュータネットワークを含んでよく、各ネットワークは、たとえば無線ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、および／またはたとえばインターネットなどのグローバルネットワークであってよい。異なるアーキテクチャおよびプロトコルに基づくものを含むＬＡＮの相互接続型セットにおいて、ルータは、ＬＡＮ間のリンクとして機能し、一方から他方へのメッセージの送信を可能にする。また、ＬＡＮ内の通信リンクは一般に、ツイストワイヤペアまたは同軸ケーブルを含み、ネットワーク間の通信リンクは、アナログ電話回線、Ｔ１、Ｔ２、Ｔ３、およびＴ４を含む完全または部分的専用デジタル回線、統合サービスデジタルネットワーク（ＩＳＤＮ）、デジタル加入者線（ＤＳＬ）、衛星リンクを含む無線リンク、または当業者に既知である他の通信リンクを利用してよい。また、遠隔コンピュータおよび他の関連電子デバイスは、モデムおよび一時的電話リンクを介してＬＡＮまたはＷＡＮのいずれかに遠隔接続され得る。基本的に、ネットワーク３３０は任意の通信方法を含み、これによって情報は、ＩｏＴハブ３５１〜３５３、ＩｏＴデバイス３４１〜３４３、およびプロビジョニングサービス３１１〜３１２間を移動してよい。
【００３１】
［0039］  一例として、ＩｏＴデバイス３４１〜３４３は、たとえばＩｏＴハブ３５１〜３５３など１または複数のＩｏＴハブによって提供されるＩｏＴサービスを利用することが意図されたデバイスである。プロビジョニングサービス３１１〜３１２は、ＩｏＴデバイスをＩｏＴハブに自動的にプロビジョニングする際のアクションを実行するデバイスまたはデバイスのセット（たとえば分散型システムなど）である。
【００３２】
［0040］  システム３００は、図３に示すものより多いまたは少ない数のデバイスを含んでよく、図３は例として示されたにすぎない。
【００３３】
（例示的なプロセス）
［0041］  明確性のために、本明細書で説明されるプロセスは、特定のデバイスまたはシステムの構成要素によって特定の順序で実行される動作の観点で説明される。ただし、他のプロセスは、記載された順序、デバイス、または構成要素に限定されるものではないことに留意されたい。たとえば、特定の動作は、そのような順序、同時性、動作、または特徴が本明細書で説明されるか否かにかかわらず、様々な順序で実行され、同時に実行され、省略され、あるいは追加の動作または特徴によって補足されてよい。同様に、本開示において説明される用語はいずれも、その用語がプロセスと関連して特に説明されるか否かにかかわらず、説明されたプロセスまたは他のプロセスに組み込まれてよい。開示されたプロセスは、そのようなデバイス、構成要素、またはシステムが本明細書で説明されるか否かにかかわらず、他のデバイス、構成要素、またはシステムにおいて、またはそれらによって実行されてもよい。これらのプロセスは、様々な方法で具体化されてもよい。たとえばプロセスは、たとえばプロセッサ可読記憶媒体に格納されたプロセッサ可読命令として製品上で具体化され、あるいはコンピュータ実行プロセスとして実行され得る。他の例として、これらのプロセスは、プロセッサ実行可能命令として符号化され、通信媒体を介して伝送され得る。
【００３４】
［0042］  図４は、ＩｏＴ通信のためのプロセス（４２０）に関するデータフロー例を示す図である。図４および本明細書における図４に対応する説明は、本開示の範囲を限定するものではなく、例示目的でプロセス例を示すものである。
【００３５】
［0043］  いくつかの例において、ＩｏＴデバイス４４１およびプロビジョニングサービス４１１は、以下の開始点を有する。第１に、ＩｏＴデバイス４４１は、自動的にプロビジョニングされるために自身が接続するエンドポイントを格納する。たとえば、製造所において、エンドポイントユニフォームリソース識別子（ＵＲＩ）がＩｏＴデバイス４４１にインストールされ得る。いくつかの例において、初期パワーアップおよび初期ブートアップ時、ＩｏＴデバイス４４１は、プロビジョニングサービス４１１のみに接続するために暗号によって保証される。また、ＩｏＴデバイス４４１は、自身に関する識別情報および任意選択的なメタデータを格納してよく、これは、いくつかの例において測位位置を含んでよい。
【００３６】
［0044］  また、プロビジョニングサービス４１１は、ＩｏＴデバイス４４１のアイデンティティ検証するいくつかの方法を有してよい。ＩｏＴデバイス４４１のアイデンティティを検証するために用いられるソースは、プロビジョニングサービス４１１に追加のメタデータを提供してよい。プロビジョニングサービスデバイス４１１は、適切なＩｏＴハブにＩｏＴデバイスのプロビジョニング要求をルート指定するために用いられるルールエンジンも含んでよい。たとえば、１つのルールが、特定の領域内に位置するＩｏＴソリューションにプロビジョニングされる特定の地理的領域内の全てのＩｏＴデバイスに関し得る。プロビジョニングサービスデバイス４１１は、各々が個別のＩｏＴソリューションに対応する１または複数のＩｏＴハブにＩｏＴデバイスをどのように接続するかに関する情報を用いて構成され得る。
【００３７】
［0045］  図示した例において、ＩｏＴデバイス４４１が顧客によって最初に電源をオンにされた時、ステップ４２１が行われる。ステップ４２１において、ＩｏＴデバイス４４１からプロビジョニングサービス４１１へ識別メッセージが伝達され得る。
【００３８】
［0046］  いくつかの例において、ＩｏＴデバイス４４１は、プロビジョニングサービス４１１のＵＲＩを用いて製造される。これらの例のいくつかにおいて、ＩｏＴデバイス４４１が最初に電源をオンにされた時、ステップ４２１が行われる。ＩｏＴデバイス４４１が最初に電源をオンにされると、ＩｏＴデバイス４４１は、プロビジョニングサービス４１１のＵＲＩを介してプロビジョニングサービス４１１へ識別メッセージを送信してよい。
【００３９】
［0047］  識別情報は、ＩｏＴデバイス４４１がＩｏＴサービスを受ける有効なデバイスであることを検証するために用いることができる情報を含み、たとえば地理的情報など、どのＩｏＴソリューションがＩｏＴデバイス４４１のために適切であるかを決定するための情報も含んでよい。
【００４０】
［0048］  図示するように、次にステップ４２２が行われる。ステップ４２２において、プロビジョニングサービスは、ＩｏＴデバイス４４１が有効であるか否かを決定する。有効性の決定は、様々な例において様々な方法で行われ、これらは以下で詳述される。プロビジョニングサービスが、ＩｏＴデバイス４４１が有効ではないと決定すると、プロセスは終了する。
【００４１】
［0049］  プロビジョニングサービス４１１が、ＩｏＴデバイス４４１が有効であると決定すると、ステップ４２３が行われる。ステップ４２３において、プロビジョニングサービス４１１は、複数のＩｏＴハブからＩｏＴハブを選択する。いくつかの例において、ＩｏＴハブの選択は、ルーティングルールに基づく。いくつかの例において、地理的位置が、ＩｏＴハブの選択における要因であってよい。たとえば、いくつかの例において、最も近い適切なＩｏＴハブが選択され得る。ＩｏＴハブの選択における他の要因は、どのＩｏＴソリューションがＩｏＴデバイスに関連する要因に基づいて適切であるかに依存し、ＩｏＴデバイス製造業者によって決定され得る。たとえば、製造業者が作る全てのスマートビルディングＩｏＴデバイスは、特定のＩｏＴソリューションを用い、したがって対応するＩｏＴハブを選択し、その製造業者が作るスマートトースターは、異なるＩｏＴソリューションを使用し、したがってそれに対応するＩｏＴハブを選択してよい。
【００４２】
［0050］  この例において、次にステップ４２４が行われる。ステップ４２４において、ＩｏＴデバイス４４１を登録する要求が、プロビジョニングサービス４１１から選択されたＩｏＴハブ（ＩｏＴハブ４５１）へ伝達され得る。いくつかの例において、ＩｏＴデバイス４４１を登録する要求は、ＩｏＴデバイス４４１に関連する接続情報を含む。次に、ステップ４２５が行われる。ステップ４２５において、ＩｏＴハブ４５１は、ＩｏＴハブ４５１内のデバイスレジストリにＩｏＴデバイス４４１を登録してよい。いくつかの例において、ＩｏＴハブ４５１は、デバイスアイデンティティレジストリおよびデバイス管理レジストリの両方にＩｏＴデバイス４４１を登録する。他の例において、デバイスアイデンティティレジストリおよびデバイス管理レジストリは結合され、ＩｏＴハブ４５１は、２つではなく１つのレジストリにＩｏＴデバイス４４１を登録する。
【００４３】
［0051］  したがって、いくつかの例において、デバイスレジストリは、デバイスアイデンティティレジストリ、デバイス管理レジストリ、デバイスアイデンティティレジストリおよびデバイス管理レジストリ、または結合されたデバイスレジストリの少なくとも１つである。ステップ４２５における登録の一部として、いくつかの例において、ＩｏＴハブ４５１は、ＩｏＴデバイス４４１用に個別のＩＤを作成する。ＩｏＴデバイス４４１用の個別ＩＤを作成することによって、ＩｏＴハブは、ＩｏＴデバイス４４１にマッピングされるＩｏＴデバイス４４１用のＩＤを有するので、ＩｏＴハブ４５１は、ＩｏＴデバイス４４１と適切に通信することができる。
【００４４】
［0052］  この例において、次にステップ４２６が行われる。ステップ４２６において、ＩｏＴデバイス４４１に関する暗号情報が、ＩｏＴハブ４５１からプロビジョニングサービス４１１へ伝達される。この通信の一部として、いくつかの例において、ＩｏＴハブ４５１は、ＩｏＴデバイス４４１のためのコマンドをキューに入れるか、またはＩｏＴデバイス４４１がその後完了するために送信されるコマンドをキューに入れる。暗号情報は、クレデンシャル、選択されたＩｏＴハブ４５１のホストネーム、ＩｏＴデバイス４４１がＩｏＴハブ４５１と接続するために必要な接続情報なども含んでよい。この例において、次にステップ４２７が行われる。ステップ４２７において、ＩｏＴデバイス４４１に関する暗号情報が、プロビジョニングサービス４１１からＩｏＴデバイス４４１へ伝達される。
【００４５】
［0053］  いくつかの例において、次にステップ４２８が行われる。ステップ４２８において、ＩｏＴデバイス４４１が暗号情報を受信したことに応答して、ＩｏＴデバイス４４１からＩｏＴハブ４５１へ自動的にメッセージが伝達される。いくつかの例において、次にステップ４２９が行われる。ステップ４２９において、自動的に更新が伝達される。すなわち、いくつかの例において、第１のメッセージの受信に応答して、新たな構成ファイルおよび新たなファームウェア更新は、ユーザ接続を必要とせず、ＩｏＴハブ４５１からＩｏＴデバイス４４１へ自動的に伝達される。いくつかの例において、次にステップ４３１が行われる。ステップ４３１において、更新がインストールされる。すなわち、いくつかの例において、新たな構成ファイルおよびファームウェア更新は、ＩｏＴデバイス４４１に自動的にインストールされる。
【００４６】
［0054］  プロセス４２０の結果として、ＩｏＴデバイス４４１はプロビジョニングされ、ＩｏＴサービスと完全に通信することができ、最新状態であり、ＩｏＴデバイス４４１が数か月または数年間倉庫に置かれていた場合でも、最新のファームウェアおよび最新の構成ファイルによって完全に更新される。これら全ては、手動工程を一切介さず、人間の介入なしで、自動的に遂行される。
【００４７】
［0055］  プロビジョニングの完了後、いくつかの例において、ＩｏＴデバイス４４１とＩｏＴハブ４５１との間の通信は、直接かつ通常の形式で発生してよく、いくつかの例においてＩｏＴデバイス４４１が再プロビジョニングを必要としない限り、プロビジョニングサービス４１１は、ＩｏＴデバイス４４１とＩｏＴハブ４５１との間の通信に再び関与することはない。
【００４８】
［0056］  いくつかの例において、ＩｏＴデバイス４４１は、プロビジョニングサービス４１１の暗号メモリを保持し、ＩｏＴデバイス４１１を再プロビジョニングするために、ＩｏＴデバイス４４１の寿命にわたりプロビジョニングサービス４１１にリダイレクトされ得る。いくつかの例において、たとえばＩｏＴデバイス４４１の転売、地理的領域の変化など、特定のイベントによって、ＩｏＴデバイス４４１は再プロビジョニングを開始し得る。
【００４９】
［0057］  いくつかの例において、ＩｏＴデバイスの再プロビジョニングは、以下のように実行され得る。第１に、（ベースデータ内で）ＩｏＴデバイスが接続すべき新たなＩｏＴハブはどれかに関する決定が行われる。本明細書において用いられる「ベースデータ」という用語は、たとえば測位位置などの位置情報、デバイス識別情報、他の適切なメタデータなど、ＩｏＴデバイスをプロビジョニングする時に用いられる、ＩｏＴデバイスに関するデータおよび／またはメタデータを指す。次に、ＩｏＴデバイスは、新たなＩｏＴハブにおいてプロビジョニングされる。その後、新たな接続情報が返信される。ＩｏＴデバイスはその後、古いＩｏＴハブのレジストリから削除される。
【００５０】
［0058］  いくつかの例において、セキュリティ対策として、プロビジョニングサービス４１１は、デバイスによって最初にコンタクトされない場合、デバイスへ直接接続することを規制され得る。他の例において、プロビジョニングサービス４１１は、ＩｏＴデバイス４４１によってコンタクトされなくてもＩｏＴデバイス４４１に直接接続することができ、セキュリティは他の方法で保証される。
【００５１】
［0059］  図５は、図３のシステム３００の一部（５０１）の例を示すブロック図である。部分５０１は、ＩｏＴデバイス５４１、プロビジョニングサービス５１１、およびＩｏＴハブ５５１および５５２を含む。図示するように、プロビジョニングサービス５１１は、ルーティングルール５９１および登録リスト５５２を含む。また、ＩｏＴハブ５５１はデバイスレジストリ５９３を含み、ＩｏＴハブ５５２はデバイスレジストリ５９４を含む。
【００５２】
［0060］  いくつかの例において、ＩｏＴデバイス５４１は、そこにインストールされたプロビジョニングサービス５１１のＵＲＩを用いて製造される。
【００５３】
［0061］  いくつかの例において、ＩｏＴデバイス５４１は、そこにインストールされたＩｏＴデバイス５４１に関する識別情報を用いても製造される。これらの例のいくつかにおいて、ＩｏＴデバイス５４１は、他の製造業者セットデータを用いても製造される。識別情報は、デバイスアイデンティティ（ＩＤ）、製造業者セットデータ、およびいくつかの例において、たとえば地理的データなど、ＩｏＴソリューションの選択に関連し得る他の情報を含むベースデータを含んでよい。いくつかの例において、デバイスＩＤは、デバイスの製造業者によって既知である。
【００５４】
［0062］  いくつかの例において、製造業者は、アップロードファイルなどを介してプロビジョニングサービス５１１に利用可能なＩｏＴサービスを用いるのに適したＩｏＴデバイスについてのデバイスアイデアのリストを作成し、それによって各ＩｏＴデバイスのデバイスＩＤが検証され得る。
【００５５】
［0063］  ステップ５−１において、ＩｏＴデバイス５４１は、製造所で設定された（プロビジョニングサービス５１１の）プロビジョニングサービスエンドポイントにコンタクトする。デバイスＩＤ、および任意選択的に他の製造業者セットデータが、コールの一部として受け渡される。
【００５６】
［0064］  次に、ステップ５−２において、プロビジョニングサービス５１１は、アップロードされたベースデータに対してデバイスＩＤおよび任意選択的に他の製造業者セットデータを検証することによって、ＩｏＴデバイス５４１の有効性を確認する。いくつかの例において、プロビジョニングサービス５１１はまた、ＩｏＴデバイス５４１に関するメタデータ／ハブデータが存在する場合、そのようなデータを見つけ出すために、ベースデータソースにおいてＩｏＴデバイス５４１を検索する。
【００５７】
［0065］  ステップ５−２における検証は、様々な例において様々な方法で実行され得る。いくつかの例において、登録リスト５９２は、第１のブートアップ時に用いるためのエンドポイントとしてプロビジョニングサービス５１１を用いてプログラムされたプロビジョニングサービスに関連する１または複数のＩｏＴソリューションを用いる製造業者によって組み立てられた全てのデバイスを含んでよい。他の例において、登録リスト５９２は、プロビジョニングのためのエンドポイントとしてプロビジョニングサービス５１１を用いる、組み立てられた全てのデバイスではなく、販売されているデバイスのみを含んでよい。いくつかの例において、プロビジョニングサービス５１１は、提供されたデバイスＩＤが登録リスト５９２に含まれるデバイスＩＤであるか否かを決定することによって、アイデンティティを検証する。いくつかの例において、デバイスアイデンティティを確認するために他のステップが必要である。たとえば、ＩｏＴデバイス５４１によって提供される他のデータもまた、検証において用いられ得る。
【００５８】
［0066］  次に、ステップ５−３において、プロビジョニングサービス５１１は、ＩｏＴデバイス５４１からのデータおよびベースデータソースからのデータにルーティングルールを実行し、ＩｏＴデバイス５４１が登録するための適切なＩｏＴハブを見つけ出す。プロビジョニングサービスデバイス５１１は、選択されたＩｏＴハブ（５５１）のアイデンティティレジストリおよびデバイス管理（ＤＭ）レジストリにＩｏＴデバイス５４１を登録する。いくつかの例において、２つの独立したレジスタではなく、ＩｏＴデバイス５４１が登録される１つのデバイスレジストリが存在する。
【００５９】
［0067］  次に、ステップ５−４において、ＩｏＴハブ５５１は、ＩｏＴデバイス５４１に関する暗号情報をプロビジョニングサービス５１１へ返信する。
【００６０】
［0068］  次に、ステップ５−５において、プロビジョニングサービス５１１は、暗号情報をＩｏＴデバイス５４１へ返信する。
【００６１】
［0069］  ここでＩｏＴデバイス５４１は、ステップ５−６において、ＩｏＴハブ５５１へデータを直接送信することができる。
【００６２】
［0070］  次に、ステップ５−７において、ＩｏＴデバイス５４１のメタデータは、ＩｏＴハブ（５４１）のデバイス管理（ＤＭ）レジストリに格納されたメタデータと、ＤＭ同期を介して同期する。
【００６３】
［0071］  図６は、図３のシステム３００の一部（６０１）の例を示すブロック図である。部分６０１は、ＩｏＴデバイス６４１、プロビジョニングサービス６１１、ベースデータソース６７２、およびＩｏＴハブ６５１および６５２を含む。図示するように、プロビジョニングサービス６１１は、ルーティングルール６９１を含む。また、ＩｏＴハブ６５１はデバイスレジストリ６９３を含み、ＩｏＴハブ６５２はデバイスレジストリ６９４を含む。
【００６４】
［0072］  いくつかの例において、（秘密／公開鍵ペアのうちの）秘密鍵は、（トラステッドプラットフォームモジュールまたは他の同類の技術によって）ＩｏＴデバイス６４１の安全ストレージにおいてＩｏＴデバイス６４１に格納される。図６に示す例において、これは、ＩｏＴデバイス６４１の信頼の基点（ｒｏｏｔｓ  ｏｆ  ｔｒｕｓｔ）である。
【００６５】
［0073］  またいくつかの例において、ＩｏＴデバイス６４１は、プロビジョニングサービス６１１のＵＲＩを含むＸ５０９証明書を格納する。いくつかの例において、Ｘ５０９証明書は、ＩｏＴデバイス６４１のデバイスＩＤおよびＩｏＴデバイス６４１に関する他のデバイスメタデータも含む。
【００６６】
［0074］  Ｘ５０９証明書の署名は、安全プロセスにおいて秘密鍵を用いて遂行される。いくつかの例において、Ｘ５０９証明書は、プロビジョニング時に生成され、他の例において、Ｘ５０９証明書は、製造時に生成される。（秘密／公開鍵ペアのうちの）公開鍵は、証明書署名を検証するためにプロビジョニングサービスで利用可能にされる。
【００６７】
［0075］  ステップ６−１において、ＩｏＴデバイス６４１は、プロビジョニングサービス６１１のエンドポイントにコンタクトし、この場合、エンドポイントは製造所で設定される。エンドポイントは、Ｘ５０９証明書から抽出され、署名はＸ５０９証明書とともに、コールの一部として受け渡される。
【００６８】
［0076］  ステップ６−２において、プロビジョニングサービス６１１は、公開鍵を用いて署名を計算し、供給された署名と比較することによって、Ｘ５０９証明書の検証を確認する。またプロビジョニングサービスデバイス６１１は、ＩｏＴデバイス６４１に関するメタデータ／ハブデータを見つけ出すために、ベースデータソースにおいてＩｏＴデバイス６４１を検索する。
【００６９】
［0077］  ステップ６−３において、プロビジョニングサービス６１１は、ＩｏＴデバイス６４１が登録するための適切なＩｏＴハブを見つけ出すために、ＩｏＴデバイス６４１からのデータおよびベースデータソースからのデータにルーティングルールを実行する。
【００７０】
［0078］  ステップ６−４において、プロビジョニングサービス６１１は、ＩｏＴハブのデバイスアイデンティティレジストリおよびデバイス管理（ＤＭ）レジストリに、あるいはいくつかの例において単一のデバイスレジストリに、ＩｏＴデバイス６４１を登録する。
【００７１】
［0079］  ステップ６−５において、ＩｏＴハブ６５１は、ＩｏＴデバイス６４１に関する暗号情報をプロビジョニングサービス６１１へ返信する。
【００７２】
［0080］  ステップ６−６において、プロビジョニングサービス６１１は、暗号情報をＩｏＴデバイス６４１へ返信する。後続するコールは全て、ＩｏＴデバイス６４１とＩｏＴハブ６５１との間である。ここで、ＩｏＴデバイス６４１は、ＩｏＴハブ６５１へ直接データを送信することを開始することができる。
【００７３】
［0081］  ステップ６−７において、ＩｏＴデバイス６４１は、ＩｏＴハブ６５１へデータを送信することができる。
【００７４】
［0082］  ステップ６−８において、ＩｏＴデバイス６４１のメタデータは、ＤＭ同期を介して、ＩｏＴハブ６５１のＤＭレジストリに格納されたメタデータと同期する。
【００７５】
［0083］  図７は、ＩｏＴ通信に関するプロセス（７６０）の例を示す論理フロー図である。開始ブロックの後、プロセスはブロック７６１へ進み、ここで初期ブート時、ＩｏＴデバイスに格納されたプロビジョニングサービスエンドポイントへ識別情報が自動的に送信される。識別情報は、第１のＩｏＴデバイスの身分証明書（ＩＤ）を含む。その後プロセスは、ブロック７６２へ進む。ブロック７６２において、プロビジョニングサービスから暗号情報が受信される。暗号情報は、第１のＩｏＴデバイスのＩＤに部分的に基づいて複数のＩｏＴハブから選択されたＩｏＴハブに関連する。
【００７６】
［0084］  プロセスはその後、ブロック７６３へ進む。ブロック７６３において、暗号情報の受信に応答して、ＩｏＴハブへメッセージが自動的に送信される。プロセスはブロック７６４へ進む。ブロック７６４において、新たな構成ファイルおよびファームウェア更新が、ユーザ接続を必要とせずに、ＩｏＴハブから受信される。プロセスはブロック７６５へ進む。ブロック７６５において、新たな構成ファイルおよびファームウェア更新が自動的にインストールされる。プロセスはその後、リターンブロックへ進み、他の処理が再び始められる。
【００７７】
［0085］  図８は、ＩｏＴ通信に関するプロセス（８８０）の例を示す論理フロー図である。開始ブロックの後、プロセスはブロック８８１へ進む。ブロック８８１において、第１のＩｏＴデバイスからの識別メッセージが受信される。識別メッセージは、第１のＩｏＴデバイスの識別に関連する情報を含む。プロセスはその後、ブロック８８２へ進む。ブロック８８２において、第１のＩｏＴデバイスを検証するために少なくとも１つのプロセスが用いられる。いくつかの例において、第１のＩｏＴデバイスの検証は、デバイスＩＤを登録リストと照合することを含む。いくつかの例において、第１のＩｏＴデバイスの検証は、識別情報における証明書を検証することを含む。
【００７８】
［0086］  プロセスはその後、ブロック８８３へ進む。ブロック８８３において、第１のＩｏＴデバイスのＩＤに少なくとも部分的に基づいて、複数のＩｏＴハブからＩｏＴハブが選択される。すなわち、複数のＩｏＴハブからの、第１のＩｏＴデバイスと関連するＩｏＴハブの決定は、第１のＩｏＴデバイスのＩＤに少なくとも部分的に基づいて行われる。プロセスはその後、ブロック８８４へ進む。ブロック８８４において、選択されたＩｏＴハブにＩｏＴデバイスを登録する要求が、選択されたＩｏＴハブへ自動的に送信される。プロセスはその後、ブロック８８５へ進む。ブロック８８５において、選択されたＩｏＴハブからの接続情報が受信される。接続情報は、構成情報を含む。プロセスはその後、ブロック８８６へ進む。ブロック８８６において、接続情報を受信すると、ユーザ接続を必要とせず、第１のＩｏＴデバイスへ接続情報が自動的に送信される。プロセスはその後、リターンブロックへ進み、他の処理が再び始められる。
【００７９】
［0087］  図９は、ＩｏＴ通信に関するプロセス（９９０）の例を示す論理フロー図である。開始ブロックの後、プロセスはブロック９９１へ進む。ブロック９９１において、デバイスレジストリが作成される。プロセスはその後、ブロック９９２へ進む。ブロック９９２において、プロビジョニングサービスからの、第１のＩｏＴデバイスを登録する要求が受信される。いくつかの例において、第１のＩｏＴデバイスを登録する要求は、ＩｏＴハブのホストネームが第１のホストネームであり、プロビジョニングサービスのホストネームが第２のホストネームであるような、かつ第２のホストネームが第１のホストネームと異なるようなプロビジョニングサービスとＩｏＴハブとの間のネットワーク通信に基づく。プロセスはその後、ブロック９９３へ進む。ブロック９９３において、第１のＩｏＴデバイスは、デバイスレジストリに追加され得る。プロセスはその後、ブロック９９４へ進む。ブロック９９４において、第１のＩｏＴデバイスに関連する暗号情報が送信される。
【００８０】
［0088］  プロセスはその後、ブロック９９５へ進む。ブロック９９５において、暗号情報の送信に応答して、ＩｏＴデバイスからの第１のメッセージが受信される。プロセスはその後、ブロック９９６へ進む。ブロック９９６において、更新が自動的に送信される。すなわち、いくつかの例において、第１のメッセージの受信に応答して、新たな構成ファイルおよび新たなファームウェア更新が自動的に第１のＩｏＴデバイスへ送信される。プロセスはその後、リターンブロックへ進み、他の処理が再び始められる。
結論
【００８１】
［0089］  上記発明を実施するための形態は、本技術の特定の例を説明し、考えられる最適モードを説明するものであり、文書内で上記がどのように詳述されようとも、本技術は多数の方法で実施され得る。実装において細部は変化し得るが、これはなお、本明細書で説明された技術によって包括されるものである。上述したように、本技術の特定の特徴または態様を説明する際に用いられる用語は、用語が本明細書においてその用語が関連する任意の特定の特性、特徴、または態様に限定されるように再定義されることを暗示するものとして受け取られてはならない。一般に、以下の特許請求の範囲において用いられる用語は、発明を実施するための形態がそのような用語を明確に定義しない限り、本明細書に開示される特定の例に技術を限定するものとして解釈してはならない。したがって、本技術の事実上の範囲は、開示された例のみならず、本技術を実施または実行する全ての同等の方法も包括するものである。
【図１】
2019535086.tif 000003
【図２】
2019535086.tif 000004
【図３】
2019535086.tif 000005
【図４】
2019535086.tif 000006
【図５】
2019535086.tif 000007
【図６】
2019535086.tif 000008
【図７】
2019535086.tif 000009
【図８】
2019535086.tif 000010
【図９】
2019535086.tif 000011
【国際調査報告】
2019535086.tif 000012
2019535086.tif 000013