(57)【要約】  開示する技術は、一般に、ＩｏＴ環境におけるデバイスプロビショニングを対象とする。例えば、このような技術は、ＩｏＴデバイスをＩｏＴハブにプロビショニングするのに使用可能である。該技術の一実施例では、第１のＩｏＴデバイスの識別に関連付けられた情報を含む識別メッセージが受信される。その後、第１のＩｏＴデバイスの有効性が検証される。第１のＩｏＴデバイスが検証された後、少なくとも一部は識別メッセージに基づいて、複数のＩｏＴハブからＩｏＴハブが選択される。その後、第１のＩｏＴデバイスは、選択されたＩｏＴハブに登録される。
2019537330.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］  ステップ７−３において、プロビショニングサービス７１１は、ＩｏＴデバイス７４１を登録するための適切なＩｏＴハブを見つけるために、ＩｏＴデバイス７４１からのデータおよび基本データソースからのデータ上でルーティングルールを実行する。
【００８２】
［0090］  ステップ７−４において、プロビショニングサービス７１１は、ＩｏＴデバイス７４１をＩｏＴハブのデバイス・アイデンティティ・レジストリおよびデバイス管理（ＤＭ）レジストリに登録する、またはいくつかの実施例では、１つのデバイスレジストリに登録する。
【００８３】
［0091］  ステップ７−５において、ＩｏＴハブ７５１は、ＩｏＴデバイス７４１に関する暗号情報をプロビショニングサービス７１１に返す。
【００８４】
［0092］  ステップ７−６において、プロビショニングサービス７１１は、暗号情報をＩｏＴデバイス７４１に返す。その後の全てのコールは、ＩｏＴデバイス７４１とＩｏＴハブ７５１との間で行われる。ＩｏＴデバイス７４１は、ようやく直接ＩｏＴハブ７５１へのデータの送信を開始することができる。
【００８５】
［0093］  ＩｏＴデバイス７４１は、ステップ７−７において、ようやくＩｏＴハブ７５１にデータを送信することができる。
【００８６】
［0094］  ステップ７−８において、ＩｏＴデバイス７４１のメタデータは、ＤＭ同期を介してＩｏＴハブ７５１のＤＭレジストリに記憶されているメタデータと同期する。
【００８７】
［0095］  図８は、ＩｏＴ通信のためのプロセス（８８０）の一例を示す論理流れ図である。開始ブロックの後、プロセスはブロック８８１に進む。ブロック８８１において、識別メッセージが受信される。識別メッセージは、第１のＩｏＴデバイスの識別に関連付けられた情報を含む。その後、プロセスは、ブロック８８２に移る。ブロック８８２において、第１のＩｏＴデバイスの有効性が検証される。いくつかの実施例では、第１のＩｏＴデバイスの有効性を検証するステップは、登録リストに対して識別情報内のデバイス識別をチェックするステップ、識別情報を受信したモバイル・プロビショニング・アプリケーション（ＭＰＡ）接続を認証するステップ、識別情報を受信したクラウド間アイデンティティアテスタ接続を認証するステップ、または識別情報内の証明書を認証するステップのうちの少なくとも１つを含む。
【００８８】
［0096］  その後、プロセスは、ブロック８８３に移る。ブロック８８３において、少なくとも一部は識別メッセージに基づいて、複数のＩｏＴハブから１つのＩｏＴハブが選択される。すなわち、第１のＩｏＴデバイスに関連付けるために複数のＩｏＴハブから１つのＩｏＴハブを決定するのは、少なくとも一部は識別メッセージに基づいて行われる。その後、プロセスは、ブロック８８４に移る。ブロック８８４において、第１のＩｏＴデバイスは、選択されたＩｏＴハブに登録される。その後、プロセスは、リターンブロックに進み、そこで他の処理が再開される。
【００８９】
［0097］  図９は、ＩｏＴ通信のためのプロセス（９８５）の一例を示す論理流れ図である。開始ブロックの後、プロセスはブロック９８６に進む。ブロック９８６において、デバイスレジストリが作成される。その後、プロセスは、ブロック９８７に移る。ブロック９８７において、プロビショニングサービスのホスト名が第２のホスト名になり、ＩｏＴハブのホスト名が第１のホスト名になるように、また第２のホスト名が第１のホスト名と異なるように、プロビショニングサービスとＩｏＴハブとの間のネットワーク通信に基づいて、プロビショニングサービスから第１のＩｏＴデバイスを登録するための要求が受信される。
【００９０】
［0098］  その後、プロセスは、ブロック９８８に進み、そこで、第１のＩｏＴデバイスはデバイスレジストリに追加され得る。その後、プロセスは、ブロック９８９に進み、そこで、第１のＩｏＴデバイスに関連付けられた暗号情報が送信される。その後、プロセスは、リターンブロックに進み、そこで他の処理が再開される。
結論
【００９１】
［0099］  上記の発明を実施するための形態は、本技術の特定の実施例を説明し、考えられる最良の形態を説明するものであり、上記でどれほど詳細に記載されていようと、本技術は多くの方法で実施され得る。詳細は、実装において異なる場合があるが、その異なる形態も本明細書に記載されている技術によって包含される。上述したように、技術の特定の特徴または態様を説明するときに使用される特定の用語は、その用語が関連付けられる任意の特定の特性、特徴、または態様に限定されるように本明細書において再定義されることを意味すると捉えるべきではない。概して、以下の特許請求の範囲で使用される用語は、発明を実施するための形態でこの用語が明確に定義されている場合を除き、本技術を本明細書に開示されている特定の実施例に制限するものであると解釈すべきでない。したがって、本技術の実際の範囲は、開示されている実施例だけでなく、技術を実施または実装する全ての同等の方法をも包含する。
【図１】
2019537330.tif 000003
【図２】
2019537330.tif 000004
【図３】
2019537330.tif 000005
【図４】
2019537330.tif 000006
【図５】
2019537330.tif 000007
【図６】
2019537330.tif 000008
【図７】
2019537330.tif 000009
【図８】
2019537330.tif 000010
【図９】
2019537330.tif 000011
【国際調査報告】
2019537330.tif 000012
2019537330.tif 000013