(57)【要約】  仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムは、プラットフォームシステム制御エンジンセキュアシステムスペースおよびＩｏＴプラットフォームシステム制御エンジンユーザ定義スペース少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、ネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースを含む少なくとも１つのネットワークノードデバイスと、エッジデバイスセキュアシステムスペースおよびエッジデバイスユーザ定義スペースを含む少なくとも１つのエッジデバイスとを含み、制御エンジンのセキュアシステムスペース、ネットワークノードデバイス、およびエッジデバイスはそれぞれ、セキュアされ、認可されていないアクセスおよびプラットフォームシステム制御エンジンのユーザ定義スペースを防止するように構成され、ネットワークノードデバイスおよびエッジデバイスはそれぞれ、それぞれの仮想マシンを定義する。
2019531010.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、前記ＩｏＴシステムは、
各々がＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよびＩｏＴプラットフォームシステム制御エンジンユーザ定義スペースを含む、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、
各々がＩｏＴネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースを含み、ネットワークを介して前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴネットワークノードデバイスと、
各々がエッジデバイスセキュアシステムスペースおよびエッジデバイスユーザ定義スペースを含み、前記ネットワークを介して前記少なくとも１つのＩｏＴネットワークノードデバイスおよび前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴエッジデバイスと
を含み、
前記ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、前記ＩｏＴネットワークノードデバイスセキュアシステムスペース、および前記エッジデバイスセキュアシステムスペースは各々、認可されていないアクセスを防止するようにセキュアされて構成され、
前記ＩｏＴプラットフォームシステム制御エンジンユーザ定義スペース、前記ＩｏＴネットワークノードデバイスユーザ定義スペース、および前記エッジデバイスユーザ定義スペースは各々、前記仮想マシンの分散型システムを形成するユーザ定義命令を受信および実行するように構成される、それぞれの仮想マシンを定義する、ＩｏＴシステム。
【請求項２】
前記ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよび前記エッジデバイスセキュアシステムスペースは各々、前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのＩｏＴネットワークノードデバイス、および前記少なくとも１つのＩｏＴエッジデバイスの間の前記ネットワーク上の通信を制御するように構成される、請求項１記載のＩｏＴシステム。
【請求項３】
前記ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、ＩｏＴネットワークノードデバイスセキュアシステムスペース、および前記エッジデバイスセキュアシステムスペースは各々、前記ネットワーク上の通信を制御する統合型通信制御モジュールを有する、請求項１記載のＩｏＴシステム。
【請求項４】
前記エッジデバイスセキュアシステムスペースは、前記ＩｏＴエッジデバイスのアプリケーション層と前記少なくとも１つのＩｏＴエッジデバイスのドライブ層との間のインターフェースを定義するように構成される、請求項１記載のＩｏＴシステム。
【請求項５】
前記少なくとも１つのエッジデバイスの前記仮想マシンは、所定のセンサ種とインターフェース接続するように前記少なくとも１つのＩｏＴエッジデバイスのアプリケーション層を構成するように構成される、請求項１記載のＩｏＴシステム。
【請求項６】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンの前記仮想マシンは、ユーザ定義命令を受信するように構成される、請求項１に記載のＩｏＴシステム。
【請求項７】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンの前記仮想マシンは、前記ＩｏＴネットワークノードデバイスおよび前記ＩｏＴエッジデバイスのそれぞれの仮想マシンにユーザ定義命令を伝搬するように構成される、請求項１記載のＩｏＴシステム。
【請求項８】
前記ＩｏＴエッジデバイスは、前記ＩｏＴエッジデバイスの前記仮想マシンを介して多様なセンサ入力および多様な出力にインターフェース接続するように構成される、請求項１に記載のＩｏＴシステム。
【請求項９】
前記ＩｏＴエッジデバイスの前記仮想マシンは、前記多様なセンサ入力および多様な出力の機能をカスタマイズするように構成される、請求項８記載のＩｏＴシステム。
【請求項１０】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのＩｏＴネットワークノードデバイス、および前記少なくとも１つのＩｏＴエッジデバイスの前記それぞれの仮想マシンは、スクリプト言語インターフェースにより構成可能である、請求項１記載のＩｏＴシステム。
【請求項１１】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのＩｏＴネットワークノードデバイス、および前記少なくとも１つのＩｏＴエッジデバイスの前記それぞれの仮想マシンは、視覚構成インターフェースにより構成可能である、請求項１記載のＩｏＴシステム。
【請求項１２】
前記少なくとも１つのエッジデバイスの前記仮想マシンは、所定のセンサ種のために前記少なくとも１つのエッジデバイスのアプリケーション層を構成するように構成される、請求項１記載のＩｏＴシステム。
【請求項１３】
前記ＩｏＴプラットフォームシステム制御エンジンは、統合型通信制御モジュールを含む、請求項１記載のＩｏＴシステム。
【請求項１４】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのネットワークノードデバイス、および前記少なくとも１つのＩｏＴエッジデバイスの前記それぞれの仮想マシンは、特定のＩｏＴタスクを実行するように構成される、請求項１記載のＩｏＴシステム。
【請求項１５】
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのＩｏＴネットワークノードデバイス、または前記少なくとも１つのＩｏＴエッジデバイスの前記それぞれの仮想マシンは、特定のＩｏＴタスクの一部を実行するように構成され、前記特定のＩｏＴタスクの一部は、前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、前記少なくとも１つのＩｏＴネットワークノードデバイス、または前記少なくとも１つのＩｏＴエッジデバイスの前記それぞれの仮想マシンの容量および効率特性に基づいて分配される、請求項１４記載のＩｏＴシステム。
【請求項１６】
仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムを動作させる方法であって、前記方法は、
ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよびＩｏＴプラットフォームシステム制御エンジンユーザ定義スペースを有する少なくとも１つのＩｏＴプラットフォームシステム制御エンジンを提供するステップと、
ネットワークを介して前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴネットワークノードデバイスを提供するステップであって、前記少なくとも１つのＩｏＴネットワークノードデバイスの各々がＩｏＴネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースを有する少なくとも１つのＩｏＴネットワークノードデバイスを提供するステップと、
前記ネットワークを介して前記少なくとも１つのＩｏＴネットワークノードデバイスおよび前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴエッジデバイスを提供するステップであって、前記少なくとも１つのＩｏＴエッジデバイスの各々がエッジデバイスセキュアシステムスペースおよびエッジデバイスユーザ定義スペースを含む少なくとも１つのＩｏＴエッジデバイスを提供するステップと、
認可されていないアクセスを防止するようにセキュアされる、前記ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、前記ＩｏＴネットワークノードデバイスセキュアシステムスペース、および前記エッジデバイスセキュアシステムスペースの各々を構成するステップと、
前記ＩｏＴプラットフォームシステム制御エンジンユーザ定義スペース、前記ＩｏＴネットワークノードデバイスユーザ定義スペース、および前記エッジデバイスユーザ定義スペースの各々においてそれぞれの仮想マシンを定義するステップと、
各それぞれの仮想マシンがユーザ定義命令を受信および実行するように前記仮想マシンの分散型システムを形成するステップと
を含む、方法。
【請求項１７】
インターネット・オブ・シングス（ＩｏＴ）デバイスリンクであって、
プログラムコードを保管するメモリストレージと、
前記プログラムコードを実行するマイクロコントローラであって、前記プログラムコードが、認可されていないアクセスを防止するようにセキュアされて構成されるセキュアプログラムコード、およびユーザ定義命令を実行するように構成されるユーザ定義プログラムコードを含むマイクロコントローラと、
データを前記ＩｏＴデバイスリンクに送信し、前記ＩｏＴデバイスリンクから受信するように構成される通信モジュールおよびアンテナと、
データを暗号化および復号化するように構成される暗号解読ユニットと、
前記ＩｏＴデバイスリンクに電力を供給するように構成される電力供給管理モジュールおよび蓄電ユニットと、
マイクロコントローラ操作を計時するように構成されるリアルタイムクロックと、
前記ＩｏＴデバイスリンクに対する固有ネットワークアドレスを提供するように構成されるＭＡＣアドレスモジュールと
を備え、
前記マイクロコントローラは、ＩｏＴデバイスリンクセンサの少なくとも１つの入力および出力を接続および制御するように構成されるインターフェースモジュールを有する、ＩｏＴデバイスリンク。
【請求項１８】
前記インターフェースモジュールは、天候、治安、廃棄物管理、ガス漏れ、下水道監視、水漏れ、駐車アクセス、スマート駐車、水質、構造的健全性、土壌水分、電子放射、スマート照明、街路安全、空気質、アイテム位置、水位、または公共衛生のセンサを含むＩｏＴデバイスリンクセンサに共通である、請求項１７記載のＩｏＴデバイスリンク。
【請求項１９】
前記ユーザ定義プログラムコードは、前記デバイスリンクセンサの前記少なくとも１つの入力および出力の前記動作を制御するように構成される、請求項１７記載のＩｏＴデバイスリンク。
【請求項２０】
前記ＩｏＴデバイスリンクセンサは、感知特性を感知し、暗号解読ユニットは、前記通信モジュールおよびアンテナが感知特性を送信する前に前記感知特性を暗号化する、請求項１７記載のＩｏＴデバイスリンク。
【請求項２１】
インターネット・オブ・シングス（ＩｏＴ）ネットワークシステムであって、
各々が、ＩｏＴプラットフォームシステムのＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの対応する少なくとも１つと、広域ネットワークを介して前記ＩｏＴプラットフォームシステムの各それぞれの少なくとも１つのＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスをＩｏＴプラットフォームシステム制御エンジンに通信可能にリンクするために、インターフェース接続するように構成される少なくとも１つのネットワークリンクカードと、
各それぞれのネットワークリンクカードの製造時に各それぞれのネットワークリンクカード上に設定され、一意に対応する暗号化鍵セットを形成するように、それぞれ製造時に少なくとも１つの各々のネットワークリンクカードと結合し、少なくとも１つの各々のネットワークリンクカード上に暗号化するように構成される製造時暗号化フィクスチャと、
前記ＩｏＴプラットフォームシステム制御エンジンに結合されるＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイス登録認証マネージャコントローラと
を備え、
前記登録認証マネージャコントローラは、前記ＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々のＩｏＴプラットフォームシステムへの認証された搭載をそれぞれ機能させるように、前記ＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々の対応するリンクカードの製造時に形成された暗号化鍵セットに対するセキュア対称暗号化鍵セットに基づき、ＩｏＴプラットフォームシステム内の前記ＩｏＴエッジデバイスおよび前記ＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々について、ＩｏＴプラットフォームシステム制御エンジンによって、初期化および登録の際に、前記ＩｏＴエッジデバイスおよび前記ＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々をそれぞれ登録および認証するように構成される、ＩｏＴネットワークシステム。
【請求項２２】
認証は、前記ＩｏＴエッジデバイス１２０および前記ＩｏＴネットワークノードデバイス登録認証マネージャコントローラによる前記ＩｏＴネットワークシステム内におけるデバイス初期化による登録時に機能し、実質的に同時に機能する、請求項２１記載のＩｏＴネットワークシステム。
【請求項２３】
前記暗号化鍵セットは、少なくとも、少なくとも１つの各々のネットワークリンクカードの製造時に少なくとも１つの各々のネットワークリンクカードの暗号解読ユニット中に配置される、請求項２１記載のＩｏＴネットワークシステム。
【請求項２４】
インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステムの暗号化鍵セキュリティシステムであって、前記ＩｏＴプラットフォームシステムは、ＩｏＴエッジデバイス、ＩｏＴ通信ノードデバイス、およびＩｏＴプラットフォームエンジンを備えるＩｏＴコントローラを有し、前記暗号化鍵セキュリティシステムは、前記ＩｏＴコントローラ上の前記ＩｏＴエッジデバイス、ＩｏＴ通信ノードデバイス、および前記ＩｏＴプラットフォームエンジンの間の暗号化セキュリティを確保し、前記ＩｏＴプラットフォームシステムの暗号化鍵セキュリティシステムは、
（製造時に）ＩｏＴエッジデバイスおよびＩｏＴ通信ノードデバイス上で暗号化鍵セットに暗号化するように配置され、前記暗号化鍵セキュリティシステムのＩｏＴデバイス暗号化鍵生成端を定義する暗号化鍵生成プロセッサと、
暗号化鍵セットを前記ＩｏＴプラットフォームエンジンに提供する暗号化鍵生成入力を提供するように配置されるか、または通信可能に結合され、前記ＩｏＴデバイス暗号化鍵生成端および前記ＩｏＴプラットフォームエンジン暗号化鍵生成端が前記暗号化鍵セキュリティシステムの対称鍵生成端を実質的に形成するように、前記暗号化鍵セキュリティシステムのＩｏＴプラットフォームエンジン暗号化鍵生成端を定義する別の暗号化鍵生成プロセッサと、
前記ＩｏＴデバイス暗号化鍵生成端と前記ＩｏＴプラットフォームエンジン暗号化鍵生成端とを結合するセキュア暗号化通信リンクと
を備える、ＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項２５】
前記セキュア暗号化通信リンクは、前記ＩｏＴデバイス暗号化鍵生成端において生成される上位層の暗号化鍵セットを用いて階層的暗号化鍵セットの層配置を定義し、前記ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成される前記上位層の前記暗号化鍵セットは、前記上位層が従属する前記階層的暗号化鍵セットの層配置の主層を形成する共通暗号化鍵セットに基づく、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項２６】
前記主層の前記共通暗号化鍵セットは、前記ＩｏＴプラットフォームシステムから分離されて封止されている、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項２７】
前記ＩｏＴデバイス暗号化鍵生成端において生成された前記上位層の前記暗号化鍵セットおよび前記ＩＯＴプラットフォームエンジン端において生成された前記上位層の前記暗号化鍵セットは、少なくとも１つの対称暗号化鍵および少なくとも１つの非対称暗号化鍵の組合せを含む、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項２８】
前記ＩｏＴデバイス暗号化鍵生成端において生成された前記暗号化鍵セットは、前記共通暗号化鍵セットおよび暗号化された入力から前記ＩＯＴデバイス暗号化鍵生成端への情報に基づいており、前記暗号化された入力は前記共通暗号化鍵セットに基づいており、所定のＩｏＴデバイス製造識別特性および前記暗号化された入力の改ざん表示を機能させる有効性演算子を少なくとも含む、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項２９】
前記所定のＩｏＴデバイス製造識別特性は、前記ＩｏＴデバイス暗号化鍵生成端における前記暗号化セットの生成の基礎を形成し、暗号化鍵セットの各々は、前記それぞれのリンクカードの製造時での各所定のＩｏＴエッジデバイスおよび各所定のＩｏＴ通信ノードデバイスのそれぞれのリンクカード上に暗号化し、一意に対応する、請求項２８記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３０】
前記有効性演算子は、前記暗号化された入力の有効性窓を定義し、生成された前記暗号化鍵セットの生成については、前記ＩｏＴデバイス暗号化鍵生成端における前記暗号化された入力に基づいて生成され、前記暗号化セットの各々に暗号化することについては、その製造時における前記それぞれのリンクカード上に、前記暗号化された入力に基づいて生成される、請求項２８記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３１】
前記暗号化された入力は、前記暗号化された入力が前記コンピュータ読取可能記憶媒体上に配置される入力生成位置からポート接続されるコンピュータ読取可能記憶媒体上に配置され、その位置は、前記ＩｏＴデバイス暗号化鍵生成端に対して前記ＩｏＴデバイス暗号化鍵生成端から分離されて離間している、請求項２８記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３２】
前記ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成される前記暗号化セットの各々は、前記ＩｏＴデバイス暗号化鍵生成端において生成された前記暗号化鍵セットの各対応する暗号化鍵セットに対する暗号化鍵の対称セットに少なくとも部分的に基づく、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３３】
前記ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成された前記暗号化鍵セットの各々は、各それぞれのＩｏＴデバイスに一意に対応する独立して生成された独立鍵と、前記ＩｏＴデバイス暗号化鍵生成端において生成された前記暗号化鍵セットの各対応する暗号化鍵セットに対する暗号化鍵の対称セットに少なくとも部分的に基づく少なくとも１つの他の鍵とを含む、請求項２４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３４】
前記独立鍵は、前記それぞれのＩｏＴデバイス用のセッション鍵を定義し、前記ＩｏＴプラットフォームシステムの広域ネットワークを介して、前記ＩｏＴプラットフォームエンジンからセッション鍵暗号化通信によってＩｏＴデバイスに入力され、前記セッション鍵暗号化通信は、前記少なくとも１つの他の鍵に基づき、前記セッション鍵暗号化通信の通信改ざん表示を提供する少なくとも１つの有効性演算子を有する、請求項３３記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３５】
前記それぞれのＩｏＴデバイスに対する前記セッション鍵入力を具現化する前記セッション鍵暗号化通信は、前記ＩｏＴプラットフォームシステム内の前記それぞれのＩｏＴデバイスの初期化のＩｏＴプラットフォームエンジン登録時または初期応答において実行される、請求項３４記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３６】
ＩｏＴプラットフォームエンジンからそれぞれのＩｏＴデバイスへの前記セッション鍵暗号化通信の前記初期応答と、前記セッション鍵暗号化通信からの前記セッション鍵の復号化と、前記それぞれのＩｏＴデバイスへの入力とは、前記それぞれのＩｏＴデバイスの認証と、前記ＩｏＴプラットフォームシステムへの前記それぞれのＩｏＴデバイスの搭載を機能させる、請求項３５記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３７】
前記独立鍵および前記暗号化鍵の対称セットに少なくとも部分的に基づく前記少なくとも１つの他の鍵は、前記ＩｏＴプラットフォームシステムのＩｏＴデバイス端とＩｏＴプラットフォームエンジン端とを接続する通信リンクの端同士を繋ぐ暗号化セキュリティを確保する前記階層的暗号化鍵セットの層配置の他の鍵セットの上位層を定義する、請求項３３記載のＩｏＴプラットフォームシステム暗号化鍵のセキュリティシステム。
【請求項３８】
双方向通信のために複数のＩｏＴプラットフォーム通信ネットワークノードと通信可能に結合される複数のＩｏＴプラットフォームエッジデバイスのインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステムであって、システムは、
双方向通信のために前記ＩｏＴプラットフォーム通信ネットワークノードと通信可能に結合され、これによって双方向通信のために前記ＩｏＴプラットフォームエッジデバイスと通信可能に結合されるＩｏＴプラットフォームエンジンを含み、
前記ＩｏＴプラットフォームエンジンは複数の機能モジュールを有し、前記ＩｏＴプラットフォームエンジンは、可変選択可能な数のサーバノードクラウドのサーバノード上に配置され、前記複数の機能モジュールのうちの少なくとも１つの機能モジュールは、前記プラットフォームエンジンをサーバノードに選択可能に格納するように構成される提供エンジンモジュールであり、複数の機能モジュールのうちの別のものは、前記提供エンジンモジュールを含む前記プラットフォームエンジンの機能モジュールの機能にアクセスして機能させるように、ＩｏＴユーザの証明および権限を保管するセキュア封止ストレージ部であり、前記封止ストレージ部の外側では前記プラットフォームエンジンの前記複数の機能モジュールの相互から封止され、前記セキュア封止ストレージ部は、前記プラットフォームエンジンが配置されるサーバノードの数のセキュアかつ柔軟な提供選択を機能させるように、前記提供エンジンモジュールを初期化する認証を含むユーザ権限を管理し、ユーザ権限にアクセス可能であるように構成される、ＩｏＴプラットフォームシステム。
【請求項３９】
前記セキュア封止ストレージ部は、セキュア封止の完全性の提供が、前記ＩｏＴプラットフォームエンジンの外部から切り離されて維持されるように配置される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４０】
前記セキュア封止ストレージ部は、多要素ユーザ認証を管理し、アクセスを可能とする、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４１】
前記サーバノードクラウドは、サービスとしてのインフラストラクチャ（ＩＡＡＳ）プラットフォームとして、またはプライベートサーバクラウドとして配置される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４２】
前記プラットフォームエンジンは、分散型ストレージ層で構成され、前記セキュア封止ストレージ部は、前記分散型ストレージ層内に配置される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４３】
前記セキュア封止ストレージ部は、前記複数のサーバノードにわたって分布され、前記セキュア封止ストレージ部の機能を機能させるように前記複数のサーバノード内において少なくとも最小の決定数だけ設けられる、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４４】
前記複数の機能モジュールのうちの少なくとも１つは、中央サービス検出監視機能を定義し、前記中央サービス検出監視機能モジュールは、前記複数のサーバノードにわたって分布され、前記中央サービス検出監視機能を機能させるように前記複数のサーバノード内において少なくとも最小の決定数だけ設けられる、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４５】
前記中央サービス検出監視機能は、前記提供モジュールが格納されて新たに提供されるサーバノード上の各プラットフォームエンジンサービスの実行開始を登録するように構成される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４６】
前記提供エンジンモジュールは、提供される前記選択されたサーバノードの各々における前記選択されたサービスを開始するために、前記プラットフォームエンジンが格納されるように提供されるサーバノードの数の提供選択、選択されて提供されるサーバノードの数に対するネットワークトポロジの選択、および前記プラットフォームエンジンの所定のサービスからのサービスの選択を機能させるように構成される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４７】
前記提供エンジンモジュールは、提供される前記選択されたサーバノードの各々における前記選択されたサービスの選択および設定が、ただ１つの構成ファイルによって特定され、選択が、前記選択されたサーバノードの各々の実質的自動設定を機能させる前記提供エンジンモジュールに与えられるたた１つの提供スクリプトに入力されるように構成される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４８】
設定時において、前記選択されたサーバノードの各それぞれのメタデータファイルは、前記選択されたサーバノードの各それぞれに一意に対応する秘密鍵で署名され、前記それぞれの選択されたサーバノードに対応する前記秘密鍵は、前記セキュア封止ストレージ部において封止され、前記それぞれの選択されたサーバノードの設定時に前記署名の受領次第、前記セキュア封止ストレージ部によって認証される、請求項３８記載のＩｏＴプラットフォームシステム。
【請求項４９】
仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、前記ＩｏＴシステムは、
少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、
前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを介して通信可能な少なくとも１つのＩｏＴネットワークノードデバイスと、
各々がＩｏＴエッジデバイスセキュアシステムスペースおよびＩｏＴエッジデバイスユーザ定義スペースを含み、前記少なくとも１つのＩｏＴネットワークノードデバイスおよび前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと前記ネットワークを通じて通信可能な少なくとも１つのＩｏＴエッジデバイスと
を含み、
前記ＩｏＴエッジデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、前記ＩｏＴエッジデバイスユーザ定義スペースは、前記仮想マシンの分散型システムを形成するユーザ定義命令を受信および実行するように構成される、ＩｏＴシステム。
【請求項５０】
仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、前記ＩｏＴシステムは、
少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、
各々がＩｏＴネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースを含み、前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを介して通信可能な少なくとも１つのＩｏＴネットワークノードデバイスと、
各々がＩｏＴエッジデバイスセキュアシステムスペースおよびＩｏＴエッジデバイスユーザ定義スペースを含み、前記少なくとも１つのＩｏＴネットワークノードデバイスおよび前記少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと前記ネットワークを通じて通信可能な少なくとも１つのＩｏＴエッジデバイスと
を含み、
前記ＩｏＴエッジデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、前記ＩｏＴエッジデバイスユーザ定義スペースは、前記仮想マシンの前記分散型システムを形成するユーザ定義命令を受信および実行するように構成され、
前記ＩｏＴネットワークノードデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、前記ＩｏＴネットワークノードデバイスユーザ定義スペースは、前記仮想マシンの前記分散型システムを構成するユーザ定義命令を受信および実行するように構成される、ＩｏＴシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１６年８月２２日に出願された米国特許仮出願第６２／３７７９７５号明細書の本出願であってその利益を主張するものであり、その開示の全体が引用により本明細書中において援用される。
【背景技術】
【０００２】
［技術分野］
例示的な実施形態は、概して、分散型インテリジェント遠隔感知システム、より具体的には、都市またはコミュニティ管理のための分散型インテリジェント遠隔感知システムに関する。
【発明の概要】
【０００３】
従来の都市、町、または地方自治体のインフラストラクチャ管理および監視システムは、典型的には、使用される監視および管理システムにおける著しい分断を伴う。例えば、都市は、水質を監視または管理する水質システム、および他の環境またはインフラストラクチャの状況を監視または管理するさらに他のシステムとは別個であって区別された交通システムを有し得る。典型的には、地方自治体の環境内における生活の質を向上させ、効率を向上させる情報ストリームの全体論的な配置および統合はない。典型的には、従来のシステムは、典型的に、各従来の監視システムを別個に監視または管理する任務を負う著しい数の地方自治体の従業員を伴い、著しい冗長性および相互運用性の欠如を招来する。
【０００４】
都市、町、または地方自治体のインフラストラクチャおよび監視システムの管理を全体論的に行う分散型インテリジェント遠隔感知システムを有することが有利である。
【図面の簡単な説明】
【０００５】
本開示の上記の態様および他の特徴は、添付の図面と関連付けて、以下の記載において説明される。
【０００６】
【図１】本開示の態様に係る感知環境の概略図である。
【図１Ａ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステムの概略図である。
【図２Ａ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ａ１】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ａ２】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｂ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｂ１】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｂ２】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｃ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｄ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図２Ｅ】本開示の態様に係るインターネット・オブ・シングス（ＩｏＴ）ネットワークシステムの概略図である。
【図３】本開示の態様に係るエッジデバイスの概略図である。
【図３Ａ】本開示の態様に係るエッジデバイスの概略図である。
【図４】本開示の態様に係るエッジデバイスのファームウェアの状態図である。
【図５】本開示の態様に係るゲートウェイの概略図である。
【図６】本開示の態様に係るゲートウェイのフェイルオーバの例示的な図である。
【図７】本開示の態様に係る例示的なユーザインターフェースである。
【図８】本開示の態様に係る例示的なユーザインターフェースである。
【図９】本開示の態様に係る例示的なユーザインターフェースである。
【図１０】本開示の態様に係る例示的なユーザインターフェースである。
【図１１】本開示の態様に係るネットワークリンクカードの概略図である。
【図１２Ａ】本開示の態様に係るＩｏＴプラットフォームシステムの概略図である。
【図１２Ｂ】本開示の態様に係る暗号化方式の概略図である。
【図１３Ａ】本開示の態様に係るフロー図である。
【図１３Ｂ】本開示の態様に係るフロー図である。
【図１４】本開示の態様に係るフロー図である。
【図１４Ａ】本開示の態様に係るフロー図である。
【図１４Ｂ】本開示の態様に係るフロー図である。
【図１５】本開示の態様に係る隔離された保管庫の概略図である。
【図１６】本開示の態様に係る遠隔のセキュア位置の概略図である。
【図１７】本開示の態様に係るフロー図である。
【図１８】本開示の態様に係るＩｏＴプラットフォームシステムの一部の概略図である。
【図１９】本開示の態様に係るＩｏＴプラットフォームシステムの一部の概略図である。
【図２０】本開示の態様に係る認証処理の概略図である。
【図２１】本開示の態様に係るフロー図である。
【図２２】本開示の態様に係る分散型ストレージを例示的な図である。
【図２３】本開示の態様に係るアセットグラフを例示的な図である。
【図２４】本開示の態様に係るアセットグラフを例示的な図である。
【発明を実施するための形態】
【０００７】
図１は、本開示の態様に係るスマートシティ環境複合体１内の感知環境１０の例示的な図である。一態様において、感知環境１０は、都会（例えば、都市の景観）、郊外、または田舎の環境にかかわらず、インテリジェント居住を提供するものであり、この感知環境１０においては、生活の質を向上させ、スマートシティ環境複合体１の運用における効率を向上させるために、スマートシティ環境複合体１のエッジデバイス情報ストリームが全体論的に配置される。例えば、感知環境１０は、スマートシティ環境複合体１内の状況またはインフラストラクチャを管理および監視するために必要な時間および労働力に関連する費用を削減することによって都市に必要な支出を削減するために採用され得る。一態様において、感知環境１０は、エネルギーの使用、メンテナンスの必要性の減少、および交換のためのより良好な監視に関連する費用も削減する。スマートシティ環境複合体１の感知環境１０は、一態様において、住人（例えば、来訪者および居住者）に対する効率を向上させ、ならびにスマートシティ環境複合体１のメンテナンス、運用、および管理に対する効率も向上させ得る。さらに、一態様において、スマートシティ環境複合体１の感知環境１０は、駐車管理、街路灯管理、公共安全管理、公共施設管理、環境監視、および下水道監視についての垂直ソリューションを提供する。
【０００８】
一態様において、図１に示すように、感知環境１０は、スマートシティ環境複合体１内に分散される多様な種類のセンサ１１−２８を含む。一態様において、複数種類のセンサ１１−２８の各々は、異なる感知特性を検出するように構成された異なるセンサ性能を有する。例えば、一態様において、多様なセンサ１１−２８の種類は、例えば、天候センサ１１（降水、気温、および地温を検出するように構成される）、公共安全センサ１２（騒音、動き、または群衆を検出するように構成される）、廃棄物管理センサ１３（廃棄物コンテナの状態を検出するように構成される）、ガス漏洩センサ１４、下水道監視センサ１５（下水道流体レベルを追跡するように構成される）、水漏洩センサ１６（水道本管を監視するように構成される）、駐車アクセスセンサ１７、スマート駐車センサ１８（例えば、利用可能な駐車スポットを検出する）、水質センサ１９、構造的健全性センサ２０（建物、橋、または道路の振動を検出するように構成される）、および土壌水分センサ２１（農業、園芸、または地面保持の目的のために構成される）を含み得る。他の態様において、センサ１１−２８の種類は、例えば、電子放射センサ２２（基地局および無線通信を監視するように構成される）、スマート照明センサ２３（例えば、エネルギー消費を減少させるための動きセンサまたは周囲照明センサを有する街路灯）、街路安全センサ２４（例えば、消火栓または駐車禁止区域の近くの障害物を検出するように構成されることで、これらの区域が緊急車両用に空く）、空気質センサ２５（例えば、汚染、オゾン、または花粉を検出するように構成される）、アイテム位置センサ２６（例えば、地方自治体のアセット、ツール、車両、または商品を追跡するように構成される）、水位センサ２７（例えば、雨水管の雨水または貯水器／給水塔の水位を検出するように構成される）、または公共衛生センサ２８（例えば、原子力的、生物的な科学的な汚染物質を検出するように構成される）も含み得る。さらに他の態様において、多様なセンサ１１−２８の種類は、環境またはインフラストラクチャの状態を検出するように構成される任意のセンサ特性を有する任意の適当なセンサを含み得る。
【０００９】
一態様において、スマートシティ環境複合体１内の感知環境１０は、スマートシティ環境複合体１の全体に分散した数千のセンサ１１−２８を含み得る。概して、複数のセンサ１１−２８からの多様な感知データは、全体論的な解決および流布のために、システムによって整理、分析、分解、および統合される（以下でより詳細に説明する）。複数のセンサ１１−２８からの多様な感知データの整理、分析、および統合なしでは、実質的に無秩序で感知の騒音が存在するであろう。一態様において、感知環境１０はまた、関連するセンサのデータおよび情報についての分析および解決策／決定が最適化されるように、複数のレベル（例えば、以下でより詳細に説明するような、エッジデバイスレベル、ゲートウェイレベル、およびプラットフォームエンジンレベル）でシステムの全体に亘って分散される別個のロジックモジュールまたはロジック層も含む。分散されたロジックモジュールは、リアルタイムまたは緊急の情報が最適なレベルで扱われるようにするとともに、センサ１１−２８からの多様な感知データを最適に決定する性能を有する。
【００１０】
図１Ａは、本開示の態様に係る、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００の一部の概略図である。ＩｏＴプラットフォームシステム１００は、以下でより詳細に説明するように、インターネット・オブ・シングス（ＩｏＴ）ネットワークシステム１００Ｓに含まれ得る。インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、スマートシティ環境複合体１内の感知環境１０において動作するとともにこれを利用し、車両検出、交通パターン、車両案内、または車両位置などの感知特性を感知するためのエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃを有する（本明細書中においては、概して「エッジデバイス１２０」という）。他の態様において、エッジデバイス１２０はまた、上記の多様なセンサ１１−２８に接続し、またはこれらに統合され、例えば、天候、公共安全、廃棄物管理、ガス漏洩、下水道感知、水漏洩、駐車感知、スマート駐車感知、水質、構造的健全性、土壌水分、電磁放射、スマート照明、安全かつ整然とした街路感知、空気質、アイテム追跡および位置、水位、公共衛生ハザード等の特性、または上記のような多様なセンサ１１−２８に関する任意で適当な所定の感知特性を感知するように構成される。図面を参照して本開示の態様について説明するが、本開示の態様は多くの形態で具現化され得ることを理解すべきである。加えて、構成要素および材料については、任意の大きさ、形状、または種類のものが使用され得る。
【００１１】
一態様において、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、プラットフォームエンジン１０１、１つまたは複数のＩｏＴゲートウェイ１１０Ａ−１１０Ｃ（本明細書中においては、概してゲートウェイ／ノード１１０、ＩｏＴプラットフォーム通信ネットワークノード１１０、またはネットワークノードデバイス１１０という）、１つまたは複数のＩｏＴエッジデバイス群１２０ＧＰ−１２２ＧＰ（エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃを含む）、および１つまたは複数の周辺デバイス１３０−１３２を含み得る。一態様において、１つまたは複数のエッジデバイス群１２０ＧＰ−１２２ＧＰの各々は、実質的に同じ種類の感知特性を検出または測定するように構成される、実質的に同じ種類のエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃを含む群であり、１つまたは複数のエッジデバイス群１２０ＧＰ−１２２ＧＰの各々は、共通のゲートウェイ１１０Ａ−Ｃに関連づけられる。他の態様において、１つまたは複数のエッジデバイス群１２０ＧＰ−１２２ＧＰは、任意の感知特性を測定または検出するように構成される多様な種類のエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃを含み得て、１つまたは複数のエッジデバイス群１２０ＧＰ−１２２ＧＰの各々はさらに、共通のゲートウェイ１１０Ａ−Ｃに関連づけられる。他の態様において、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、例えば、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００に関連する車両駐車スペースまたは環境状況またはインフラストラクチャ状況の監視を容易にするための任意の数および種類の構成要素を含む。
【００１２】
プラットフォームエンジン１０１は、１つまたは複数のゲートウェイ１１０Ａ−１１０Ｃ（および１つまたは複数のゲートウェイ１１０Ａ−１１０Ｃと通信するエッジデバイス群１２０ＧＰ−１２２ＧＰのエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃ）および１つまたは複数の周辺デバイス１３０−１３２と通信し、およびこれらを制御することが可能な任意の適当なコントローラを有する。一態様において、プラットフォームエンジン１０１は、エッジデバイス群１２０ＧＰ−１２２ＧＰ（および、それらのそれぞれのエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃ）およびゲートウェイ１１０Ａ−１１０Ｃからプラットフォームエンジン１０１に、ならびにプラットフォームエンジン１０１から周辺デバイス１３０−１３２に延在する、任意の適当な無線または有線の通信インターフェースリンクを使用するように構成される。ここで、一態様において、インターフェースリンクは、単一の通信プロトコルまたは異なる通信プロトコルの組合せを含み得る。一態様において、エッジデバイス群１２０ＧＰ−１２２ＧＰ、ゲートウェイ１１０Ａ−１１０Ｃ、およびプラットフォームエンジン１０１の間の無線または有線の通信インターフェースリンクは、暗号化され、第三者に対して閉じられており、これによってエッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃ、ゲートウェイ１１０Ａ−Ｃ、プラットフォームエンジン１０１、ならびに周辺デバイス１３０−１３２間の通信をハッキングするか、または傍受する可能性が最小化される。
【００１３】
一態様において、少なくともプラットフォームエンジン１０１およびゲートウェイ１１０Ａ−１１０Ｃ（ならびに感知デバイス）のうちの１つまたは複数、および／または周辺デバイス１３０−１３２の間の通信は、モバイル通信リンク１４１、衛星通信リンク１４２、公共交換電話ネットワーク１４５、インターネット／ワールド・ワイド・ウェブ１４３、イーサネット１４４、ローカルエリアネットワーク、または他の適当な無線または有線プロトコルまたは接続であり得る。一態様において、エッジデバイス群１２０ＧＰ−１２２ＧＰ中でのエッジデバイスからの通信は、実質的にリアルタイムでプラットフォームエンジン１０１および／または周辺デバイス１３０−１３２に対して提供され得る。
【００１４】
プラットフォームエンジン１０１は、一態様において、監視されている各駐車スペースについて、駐車スペースのユーザ、駐車スペースの指定／割当、到着の時間、出発の時間、取引レート、ユーザアカウント金銭残高、請求取引、駐車違反、駐車スペース利用可能性、またはインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００によって監視される各駐車スペースの使用および請求に関係する他の任意の情報を追跡および報告するように構成された、１つまたは複数のプロセッサ、メモリ、および他の任意の適当なハードウェア／ソフトウェアを含み得る。同様に、一態様において、１つまたは複数のプロセッサおよびメモリは、本明細書中において説明されるセンサ１１−２８によって監視される、異なる監視されているシステムの各々についての解決策を対して追跡し、応答し、処理し、および決定するようにも構成される。プラットフォームエンジン１０１は、１つまたは複数のユーザインターフェースによって構成され得て、プラットフォームエンジン１０１の管理および運用に対するユーザまたは受信者のアクセスを可能とする。一態様において、プラットフォームエンジン１０１は、モニタ、キーボード、および／または他の適当なユーザインターフェースを有する、任意の適当な計算装置であり得る。他の態様において、プラットフォームエンジン１０１は、計算装置のクラスタ、分散型計算装置、またはクラウドベースのシステムバックエンドである。他の態様において、周辺デバイス１３０−１３２のうちの１つまたは複数は、任意の適当な長範囲または短範囲の無線通信リンクを通じて、および／または、上記のような有線接続を通じて、プラットフォームエンジン１０１にアクセスし、これを操作するためのユーザインターフェースを提供し得る。プラットフォームエンジン１０１は、エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃから任意の適当なデータを受信するように構成され得る。エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃから送信されるデータは、例えば、監視されている駐車スペース、車両検出、および／または感知デバイスの健全性および正常（welfare）／メンテナンス状態に関連する任意のデータを含み得るか、または実現し得る。他の態様において、エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃから送信されるデータは、センサ１１−２８に関して上で説明した任意の適当な感知特性を測定する任意の感知データを含み得る、または実現し得る。一態様において、プラットフォームエンジン１０１は、エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃからのデータへの任意の適当な処理を行うように構成され得て、他の態様において、エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃからのデータは、例えばプラットフォームエンジン１０１による処理なくして、周辺デバイス１３０−１３２のうちの１つまたは複数上に表示するように構成され得る。
【００１５】
一態様において、周辺デバイス１３０−１３２のうちの１つまたは複数は、例えば、駐車／法執行人員によって使用される携帯ユニットであり得る執行ユニットであり得る。執行ユニットは、電子チケット発行およびデータ取得が分散型遠隔感知システムに統合されるように、駐車違反および／または駐車チケットの発行をプラットフォームエンジン１０１に報告するように構成され得る。例えば、周辺デバイス１３０−１３２を使用する法執行官は、法に違反している車両があるかを確認するために、違反が報知された後に駐車スペースに到着し、駐車スペースの目視調査を行い得る。違反は、周辺デバイス１３０−１３２に入力され、選択的に、違反中の車両の写真が周辺デバイスにより撮影され得る、または周辺デバイスに読み込まれ得る。このようなことから、周辺デバイス１３０−１３２に入力された違反データは、実質的にリアルタイムで、自動的に取得され、プラットフォームエンジン１０１等のメモリに保管される。認識されるように、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム内に違反情報を保管することは、他の違反閾値が満たされるか、または新たな車両がそのスペースに駐車するまで、そのスペースに関して執行官へシステムが警告することを停止させる。別の態様において、感知デバイスは、消火栓の前、消防車専用車線、横断歩道、および交差点等の非駐車スペースにおいても使用され得る。インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、例えば周辺デバイス１３０−１３２を通じて執行官に警告が送信されるように、これらの非駐車スペースのうちの１つに車両が駐車された時毎に、任意の適当な所定期間後に違反を作成するように構成され得る。
【００１６】
他の態様において、周辺デバイス１３０−１３２のうちの１つまたは複数は、感知特性（例えば、本明細書中において説明されるセンサ１１−２８に関連するもの）を監視するように構成され得る、他のデバイスまたは受信者端末を含み得る。例えば、周辺デバイス１３０−１３２のうちの１つまたは複数は、ガス漏洩モニタ、水漏洩モニタ、下水道モニタ、および廃棄物管理モニタを、地方自治体の司令センタに含み得る。他の態様において、１つまたは複数の周辺デバイス１３０−１３２は、例えば、私的に所有または操作されるモニタ、例えば、農家によって操作される土壌水分モニタ、電気通信会社によって操作される電磁放射、私的に所有される地方自治体の水源に所有される水センサ、または原子力発電所によって操作される放射モニタも含み得る。さらに他の態様において、１つまたは複数の周辺デバイス１３０−１３２は、本明細書中において説明されるセンサ１１−２８からの多様な感知データを表示または監視するように構成される任意のユーザ端末を含み得る。
【００１７】
認識され得るように、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、エッジデバイス群１２０ＧＰ−１２２ＧＰのエッジデバイスと連動して使用され得る、例えば、熱電対、湿度センサ、放射または化学センサ、光センサ、磁力計、レーダ、振動センサ、加速度計、空気質センサ、電磁放射センサ、動きセンサ、容量センサ、カメラ、および赤外線センサ等の任意の種類のエッジデバイスを組み込み得る。センサからの情報は、エッジデバイス群１２０ＧＰ−１２２ＧＰに関連する他の感知デバイスによって提供されるデータと連動して使用され得て、環境またはインフラストラクチャ状況が追跡され、センサ１１−２８からのデータの全体論的な（例えば、相互接続および統合された）管理が提供される。
【００１８】
周辺デバイス１３０−１３２のうちの１つまたは複数は、例えば、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００によって監視される駐車スペースにアクセスする受信者によって使用されるユニットも含み得る。一態様において、ユニットは、専用の車両駐車システム携帯ユニットであり得て、他の態様において、ユニットは、無線電話、ＧＰＳユニット、または他の計算装置上で実行することが可能なアプリケーションプログラムを通じて等、ユーザの無線電話、車両ＧＰＳユニット、または他のユーザ計算装置に統合され得る。さらにまた他の態様において、携帯ユニットは、例えば、街路の安全、空気質、天候、公共安全、ガス漏洩、下水道、水漏洩、駐車アクセス、駐車スポット、水質、構造的健全性、土壌水分、電磁放射、スマート照明、空気質、アセット位置および追跡、水位、および公共衛生のセンサを受信者が監視できる任意の適当な態様で実施され得る。ユニットは、例えば、分散型遠隔感知システムの展開領域の全体に亘る駐車の利用可能性（およびそこへの経路）についての実質的なリアルタイムの図を含む、エッジデバイス群１２０ＧＰ−１２２ＧＰのエッジデバイスによって提供されたデータに基づく経路探索情報を受信者に提供し得る。ユニットは、受信者が場所を選択し、例えば、色コードまたは他の適した表示を用いて、領域内の駐車スペースがどれくらい満たされているかを見ることができるように構成され得る。各駐車スペースに駐車するための料金設定も提供され得る。ユニットによって提供される経路探索情報は、受信者がどこに駐車するのかを追跡し続けることができるように提供され得る。一態様において、ユニットは、例えば分散型遠隔感知システムによって監視される駐車スペースを離れる車両により混雑していない駐車場の出口または街路を受信者が選択できるように、全地球測位システム、または、駐車スペースに関連する交通情報を受信者に提供する他のマッピングデータを含み得るか、またはこれと連動し得る。
【００１９】
前述のように、一態様において、プラットフォームエンジン１０１は、任意の適当な態様で、１つまたは複数のゲートウェイ１１０Ａ−１１０Ｃ（および１つまたは複数のゲートウェイ１１０Ａ−１１０Ｃに関連するエッジデバイス群およびエッジデバイス）に接続され得る。一態様において、１つまたは複数の通信機器１４０が、ゲートウェイ１１０Ａ−１１０Ｃと中央コントローラ１０１との間の通信リンクとして使用され得る。１つまたは複数の通信リンク１４０は、例えば、１つまたは複数の基地局／プロバイダをモバイル通信ネットワークに含み得る。他の態様において、１つまたは複数の通信リンク１４０は、例えば、衛星通信ネットワークにおける１つまたは複数の衛星、公共交換電話ネットワーク、インターネット／ワールド・ワイド・ウェブのアクセスポイント、または上記の有線および／または無線通信プロトコルにおいて使用されるもの等の他の任意の適当な通信アクセスポイントを含み得る。さらにまた他の態様において、１つまたは複数の通信リンク１４０は、モバイル通信と衛星通信との組合せ、または他の任意の適当な有線または無線通信リンクであり得る。
【００２０】
ここで図２Ａ、図２Ｂ、および図２Ｃを参照すると、ＩｏＴプラットフォームシステム１００を含むインターネット・オブ・シングス（ＩｏＴ）ネットワークシステム１００Ｓの追加の概略図が示される。図２Ａおよび図２Ｂは、単一のエッジデバイス１２０が単一のゲートウェイ１１０に接続され、さらにプラットフォームエンジン１０１に接続され、周辺デバイス１３０−１３２にまで広がって接続されていることを表している。一態様において、図２Ａおよび図２Ｂは、図１Ａに示されるインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００を実質的に他の形で表したものである。図２Ａおよび図２Ｂに示されるように、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、エッジデバイス１２０を含み、エッジデバイス１２０はゲートウェイ１１０と通信し、ゲートウェイ１１０はさらにプラットフォームエンジン１０１と通信し、プラットフォームエンジン１０１はデータを周辺デバイス１３０−１３２に配布する。図２Ｃに示されるように、一態様において、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、例えば、プログラム可能なハードウェアおよびソフトウェアとして機能する仮想マシン１５４、１６０、１８１の分散型システムとして構成される。一態様において、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン１０１、少なくとも１つのネットワークノードデバイス１１０、および少なくとも１つのＩｏＴエッジデバイス１２０のそれぞれの仮想マシン１５４、１６０、１８１は、特定のＩｏＴタスクを実行するように構成される。一態様において、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン１０１、少なくとも１つのＩｏＴネットワークノードデバイス１１０、または少なくとも１つのＩｏＴエッジデバイス１２０のそれぞれの仮想マシン１５４、１６０、１８１は、特定のＩｏＴタスクの一部を実行するように構成され、特定のＩｏＴタスクの一部は、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン１０１、少なくとも１つのＩｏＴネットワークノードデバイス１１０、または少なくとも１つのＩｏＴエッジデバイス１２０のそれぞれの仮想マシン１５４、１６０、１８１の容量および効率特性に基づいて分散される。
【００２１】
再び図２Ａ、図２Ｂ、および図２Ｃを参照すると、一態様において、エッジデバイス１２０、ゲートウェイ１１０、およびプラットフォームエンジン１０１用のハードウェアおよびソフトウェアは、各々、セキュアシステムスペース（例えば、各それぞれのデバイス用のファームウェアを含み得るそれぞれのネットワークリンクカード１５３、１６６、１８０内）、ならびにそれぞれのネットワークリンクカード１５３、１６６、１８０内で動作する仮想マシン１５４、１６０、１８１の形態でユーザ定義／構成可能スペースをそれぞれ定義する。セキュアシステムスペースは、例えば、各それぞれのデバイス（例えば、エッジデバイス１２０、ゲートウェイ１１０、およびネットワーク稼働コントローラ１０１）とネットワークおよび／または低レベルハードウェア操作との間の相互作用を制御する（例えば、物理層またはデバイス層において各それぞれのデバイスと物理ハードウェアがどのように通信するかを制御する）。ネットワークリンクカード１５３、１６６、１８０内のセキュアシステムスペースは、セキュアされており、エンドユーザまたは管理者により変更可能でない。各エッジデバイス１２０、ゲートウェイ１１０、およびプラットフォームエンジン１０１はさらに、各デバイスレベルでのユーザ構成可能スペースを定義するファームウェア内で実行されるそれぞれの仮想マシンを含む。例えば、エッジデバイス１２０のそれぞれの仮想マシンは、例えば、様々な多様なセンサの入力と出力との間のインターフェースについてのユーザ構成を可能とする。各それぞれの仮想マシン１５４、１６０、１８１はさらに、例えば、ユーザによるカスタマイズのための共通のインターフェースを提供する。このため、仮想マシン１５４、１６０、および１８１は、エッジデバイス１２０、ゲートウェイ１１０、およびプラットフォームエンジン１０１の機能をカスタマイズするために、ユーザが定義した、またはユーザがカスタマイズしたスクリプト、規則、またはコードを実行するように構成される。ユーザによるカスタマイズは、一態様において、以下でより詳細に説明するような、スクリプト言語インタプリタの形態、または視覚的形状の形態で可能である。一態様において、エッジデバイス１２０、ゲートウェイ１１０、およびプラットフォームエンジン１０１の各それぞれの仮想マシン１５４、１６０、１７２内で定義されるセキュアシステムスペースは、エンドユーザによるアクセスおよびそれぞれの仮想マシン１５４、１６０、１７２内のバグまたは悪意のあるコードによる悪用を防止するように、隔離されている。一態様において、ＩｏＴエッジデバイス１２０セキュアシステムスペースは、認可されていないアクセスを防止するためにセキュアされて構成され、ＩｏＴエッジデバイス１２０ユーザ定義スペースは、仮想マシン１５４の分散型システムを形成するユーザ定義命令を受信および実行するように構成される。別の態様において、ＩｏＴエッジデバイス１２０およびネットワークノード１１０のセキュアシステムスペースは、認可されていないアクセスを防止するためにセキュアされて構成され、ＩｏＴエッジデバイス１２０およびネットワークノード１１０のユーザ定義スペースは、仮想マシン１５４および１６０の分散型システムを形成するためのユーザ定義命令を受信および実行するように構成される。さらに別の態様において、ＩｏＴエッジデバイス１２０、プラットフォームエンジン１０１、およびネットワークノード１１０のセキュアシステムスペースは、認可されていないアクセスを防止するためにセキュアされて構成され、ＩｏＴエッジデバイス１２０、プラットフォームエンジン１０１、およびネットワークノード１１０のユーザ定義スペースは、仮想マシン１５４、１６０、１７２の分散型システムを形成するためのユーザ定義命令を受信および実行するように構成される。
【００２２】
図２Ａ、図２Ｂ、および図１１を参照して、各ネットワークリンクカード１５３、１６６、１８０（「ＩｏＴデバイスリンク」ともいう）について説明する。ネットワークリンクカード１５３は、図１１に例示を目的として示され、ネットワークリンクカード１６６、１８０は同様の構成を有し得る。ネットワークリンクカード１５３は、プロセッサ１１０３（「マイクロコントローラ」ともいう）と、メモリ１１００と、メディア・アクセス・コントロール（ＭＡＣ）アドレス１１０１ストレージと、インターフェースモジュール１１０２と、電源１１０５と、電力コントローラ１１０４と、通信モジュール１１０６と、アンテナ１１０７とを含む。プロセッサ１１０３（プロセッサ１６２はＩｏＴデバイス１１０に含まれる）は、暗号解読ユニット１１０３ＣＭ（暗号解読ユニット１６２ＣＭはＩｏＴデバイス１１０に含まれる）を含むか、またはこれに通信可能に結合される。プロセッサ１１０３も、メモリ１１００と、通信モジュール１１０６と、インターフェースモジュール１１０２と、ＭＡＣアドレスモジュール１１０１とに通信可能に結合される。プロセッサ１１０３は、メモリ１００に保管される非一時的なプログラムコードを実行するように構成される。プログラムコードは、セキュアされ、認可されていないアクセスおよびユーザ定義命令を実行するように構成されるユーザ定義プログラムコードを防止するように構成されるセキュアプログラムコードを含む。一態様において、プロセッサ１１０３は、ＩｏＴネットワークリンクカード１５３によって送信および受信されるデータを暗号化および復号化するように構成される暗号解読ユニット１１０３ＣＭをふくむか、またはこれに結合される。
【００２３】
インターフェースモジュール１１０２は、ネットワークリンクカード１５３、１６６、１８０が設置されるＩｏＴエッジデバイス１２０、ＩｏＴゲートウェイ１１０、またはプラットフォームエンジン１０１の他の構成要素との通信をプロセッサ１１０３に提供する。例えば、インターフェースモジュール１１０２は、ＩｏＴデバイスリンクセンサ１１−２８の少なくとも１つの入力１５１および出力１５２を接続し、制御するように構成される。一態様において、インターフェースモジュール１１０２は、ＩｏＴデバイスリンクセンサ１１−２８で共用され、ＩｏＴデバイスリンクセンサは、天候、公共安全、廃棄物管理、ガス漏洩、下水道監視、水漏洩、駐車アクセス、スマート駐車、水質、構造的健全性、土壌水分、電子射出、スマート照明、街路安全、空気質、アイテム位置、水位、または公共衛生のセンサのうちの１つまたは複数に対応するセンサを含む。一態様において、ユーザ定義プログラムコードは、ＩｏＴデバイスリンクセンサ１１−２８の少なくとも１つの入力１５１および出力１５２の操作を制御するように構成される。一態様において、ＩｏＴデバイスリンクセンサ１１−２８は、感知特性（例えば、天候、公共安全情報、廃棄物管理情報、ガス漏洩情報、下水道情報、水漏洩情報、駐車情報、水質情報、構造的健全性情報、土壌水分情報、電子放射情報、照明情報、街路安全情報、空気質情報、アイテム位置情報、水位情報、または公共衛生情報等）を感知し、暗号解読ユニット１１０３ＣＭは、通信モジュール１１０６およびアンテナ１１０７が感知特性を送信する前に感知特性を暗号化する。
【００２４】
電力コントローラ１１０４および電源１１０５は、メモリ１１００、ＭＡＣアドレスモジュール１１０１、プロセッサ１１０３（および暗号解読ユニット１１０３ＣＭ）、および通信モジュール１１０６に結合される電力供給管理モジュールを形成し、電力供給管理モジュールは、ＩｏＴネットワークリンクカード１５３に電力を提供するように構成される。
【００２５】
通信モジュール１１０６は、データをＩｏＴネットワークリンクカード１５３に送信し、ＩｏＴネットワークリンクカード１５３から受信するように構成される。一態様において、温度補償水晶発振器（ＴＣＸＯ）が通信モジュール１１０６に結合される。通信モジュール１１０６およびアンテナ１１０７は、ＩｏＴエッジデバイス１２０、ＩｏＴゲートウェイ１１０、およびプラットフォームエンジン１０１のうちの少なくとも１つがＩｏＴエッジデバイス１２０、ＩｏＴゲートウェイ１１０、およびプラットフォームエンジン１０１のうちの他の少なくとも１つと通信し得るように、ＩｏＴプラットフォームシステム１００の広域ネットワーク（ＷＡＮ）を介した通信を提供する。
【００２６】
ＭＡＣアドレスモジュール１１０１は、ＩｏＴネットワークリンクカード１５３に固有ネットワークアドレスを提供するように構成される。リアルタイムクロックＲＴＣも設けられ、プロセッサ１１０３の動作を計時するように構成される。
【００２７】
また、図２Ａ、図２Ｂ、および図２Ｃを参照すると、一態様において、エッジデバイス１２０は、様々なセンサ種に対するインターフェースとなり、特定の出力デバイスを駆動する、ハードウェアおよびソフトウェアモジュールである。一態様において、エッジデバイス１２０は、様々かつ多様な種類のセンサと統合し、ネットワークを介して多様なセンサ種（例えば、本明細書中において説明されるセンサ１１−２８）を通信することを許容するように構成される。一態様において、エッジデバイス１２０は、認可されていない個人によるハッキングまたはアクセスの可能性を最小化する閉じられたアーキテクチャを有することによってセキュリティを提供するように構成される、マイクロコントローラ、チップ、またはプリント回路基板（ＰＣＢ）である。なお、エッジデバイス１２０は、センサまたは出力デバイスとは別個である。代わりに、エッジデバイス１２０は、多くの異なる種類のセンサ（例えば、本明細書中において説明されるセンサ１１−２８）とのインターフェースとなる共通の通信および制御スイートを提供する。一態様において、エッジデバイス１２０のセキュアされたアーキテクチャは、以下で説明するようなセキュアされたシステムスペースを定義するネットワークリンクカード１５３によって定義される。エッジデバイス１２０はさらに、共通のプログラミングインターフェースを提供し、エッジデバイス１２０のユーザによるカスタマイズならびに以下でより詳細に説明するような多様なセンサ種および多様な出力との相互作用を可能とする、ネットワークリンクカード１５３内で実行される仮想マシン１５４を提供するように構成される。一態様において、エッジデバイス１２０はさらに、仮想マシン１５４を通じてローカルエッジデバイス１２０のレベルでローカルロジックまたは制御アーキテクチャを提供する。
【００２８】
一態様において、エッジデバイス１２０は、多様な種類のセンサ入力１５１を提供する異なるセンサ種（例えば、本明細書中において説明されるセンサ１１−２８）の多様なセンサに結合されるか、またはこれらと一体化されるように構成されている。一態様において、エッジデバイス１２０はさらに、例えば、ディスプレイ、スイッチ、データストレージデバイス、レジスタ、または他のコントローラに出力を提供するように構成される。一態様において、エッジデバイス１２０に結合される多様なセンサ（例えば、センサ１１−２８）は、低電力センサとなるように構成される。以下でより詳細に説明するように、一態様において、エッジデバイス１２０は、ネットワークリンクカード１５３を含む。一態様において、ネットワークリンクカード１５３は、ユーザには見えずアクセス不能であるセキュアシステムスペースを定義する。一態様において、ネットワークリンクカード１５３によって定義されるセキュアシステムスペースは、例えば、ネットワーク通信または低レベルハードウェア通信（例えば、通信モジュール１５５による）とのすべての相互作用の管理等、エッジデバイス１２０の特定の機能を制御する。エンドユーザによるネットワーク通信または低レベルハードウェア通信との相互作用へのアクセスを制限することにより、ネットワークリンクカード１５３のセキュアシステムスペースは、改ざんを防止し、ユーザ定義コードによってマイナスに影響される抵抗であるセキュアされたプラットフォームを提供する。例えば、エッジデバイス１２０の中核を担う性能（例えば、ブートローダ、ドメイン固有言語インタプリタ、ネットワーク通信ドライバ、デバイスとの物理レベルの相互作用）の多くはユーザ定義コードにアクセス可能でないことから、ユーザ定義コードは、エッジデバイス１２０をロックすることはできない。
【００２９】
一態様において、ネットワークリンクカード１５３は、エッジデバイス１２０の入力１５１および出力１５２が共通のデータ構造となるように、ネットワークリンクカード１５３を通じた多様な種類のセンサに対する共通のインターフェースのための仮想マシンランタイムを提供する仮想マシン１５４を含む。さらに、一態様において、エッジデバイス１２０は、包括的かつ代替可能であり、任意の適当なセンサ種（例えば、本明細書中において説明されるセンサ１１−２８）ならびに任意の適当な出力種に関連付けられ得る。エッジデバイス１２０は包括的かつ代替可能であることから、入力１５１および出力１５２から受信するデータは、独立タイプまたは不可知タイプであり、任意の特定のデータまたはセンサプロトコルに制限されることはない。一態様において、仮想マシン１５４は、システムのセキュリティおよび統合性に影響を与えることなくユーザがプログラム可能であるとともに、多様なセンサ種に結合されるエッジデバイス１２０からの感知データの判断形成、分析、および統合を促進するように構成される。一態様において、仮想マシン１５４は、ユーザ定義コードまたはスクリプトを実行してエッジデバイス１２０の機能をカスタマイズするように構成される。例えば、一態様において、温度計または熱電対に接続されたエッジデバイス１２０上の仮想マシン１５４は、センサ入力を電気信号として受信して電気信号を温度読取値に変換するようにエッジデバイス１２０をカスタマイズするユーザ定義コードまたはユーザプログラム可能コードを実行するように構成される。他のエッジデバイス１２０において、仮想マシン１５４は、例えば、自動化駐車システムのための有無センサ等、特定のエッジデバイス１２０をカスタマイズするユーザ定義コードに基づく異なる機能を有し得る。一態様において、仮想マシン１５４は、異なるデータ構造またはプロトコルを有する多様なセンサ種からデータを受信するにも関わらずエッジデバイス１２０と共通のゲートウェイ１１０とのインターフェース接続を促進するようにも構成される。一態様において、ネットワークリンクカード１５３は、暗号化された通信プロトコルを用いてゲートウェイ１１０と通信するように構成される通信モジュール１５５も有する。エッジデバイス１２０については、以下でより詳細に説明する。一態様において、エッジデバイス１２０の仮想マシン１５４は、エッジデバイス１２０レベルにおけるローカルロジック動作を提供するように構成される。例えば、仮想マシン１５４は、特定の所定センサ閾値、および特定の所定のセンサ閾値が満たされた場合に行われるアクションを定義するコードを実行し得る。
【００３０】
図２Ａ、図２Ｂ、および図２Ｃをさらに参照すると、一態様において、エッジデバイス１２０はゲートウェイ１１０と通信可能である。一態様において、ゲートウェイ１１０は、デバイスアクタモジュール１６１と、通信モジュール１６２とを含み、通信モジュール１６２は、ｗｉｆｉモジュール１６５、イーサネットモジュール１６４、およびモバイルモジュール１６３により、エッジデバイス１２０の通信モジュール１５５ならびにプラットフォームエンジン１０１と通信するように構成される。他の態様において、ゲートウェイモジュール１１０は、エッジデバイス１２０およびプラットフォームエンジン１０１と通信するように構成される任意の通信モジュールを有する。一態様において、ゲートウェイ１１０は、ネットワークリンクカード１６６を有する。ネットワークリンクカード１６６は、エッジデバイス１２０のネットワークリンクカード１５３によって定義されるセキュアされたシステムスペースと実質的に同様の補完的なセキュアされたシステムスペースを定義する。一態様において、ネットワークリンクカード１６６によって定義されるセキュアされたシステムスペースは、例えば、ゲートウェイ１１０とネットワーク内の他のデバイス（例えば、ネットワーク稼働コントローラ１０１およびエッジデバイス１２０）との間のネットワーク通信を制御するように構成される。さらに他の態様において、ネットワークリンクカード１６６によって定義されるセキュアされたシステムスペースはまた、物理層上の他の低レベルハードウェア制御も制御する。一態様において、ネットワークリンクカード１６６によって定義されるセキュアされたシステムスペースは、エンドユーザにはアクセス不能であって見えず、エンドユーザによる改ざんを防止するように構成される。一態様において、セキュアされたシステムスペースは、ユーザ定義コードがゲートウェイ１１０の性能をロックするか、またはこれに影響を与えないように構成される。一態様において、ネットワークリンクカード１６６はさらに、それぞれのエッジデバイス１２０の仮想マシン１５４に対応するネットワークリンクカード１６６内に内在する補完的仮想マシン１６０を有する。また、一態様において、仮想マシン１６０は、プログラム可能であり、以下でより詳細に説明するように、ゲートウェイレベルで多様なセンサ種に結合されるエッジデバイス１２０からの感知データの判断形成、分析、および統合を容易にするように構成される。ゲートウェイ１１０については、以下でより詳細に説明する。
【００３１】
図２Ａ、図２Ｂ、および図２Ｃを参照すると、一態様において、ゲートウェイ１１０はプラットフォームエンジン１０１と通信可能である。一態様において、プラットフォームエンジンは、概して、プラットフォームエンジンネットワークリンクカード１８０と、ゲートウェイ１１０と通信するように構成される通信モジュール１７３と、例えばエッジデバイス１２０から受信したデータ等のデータを記憶するように構成される分散型ストレージ１７１と、ドメイン固有言語（ＤＳＬ）モジュール１８２およびプラットフォームエンジン１０１の動作を制御するように動作可能なプラットフォームエンジン仮想マシン１８１を含むプラットフォームエンジンロジカル層モジュール１７２とを有する。一態様において、ネットワーク稼働コントローラのネットワークリンクカード１８０は、ネットワーク通信および／または低レベルハードウェア通信（例えば、デバイスまたはドライバレベルにおける）を制御するように構成される。一態様において、プラットフォームエンジン仮想マシン１８１は、エッジデバイス１２０の仮想マシン１５４およびゲートウェイ１１０の仮想マシン１６０に対して補完的である。一態様において、仮想マシン１８１は、以下でさらに詳細に説明するように、ユーザ定義コードまたはユーザプログラム可能コードを受信および実行するように構成される。また、一態様において、プラットフォームエンジンは、分析モジュール１７４Ａならびにビジネスメタデータマネージャモジュール１７４Ｂを用いたマシン学習およびビッグデータ分析のために構成される洞察モジュール１７４と、第三者データ統合を用いてローカルデータを統合するように構成される法人用データ統合モジュール１７５とを含む。また、一態様において、プラットフォームエンジン１０１は、アプリケーションプログラミングインターフェースモジュール１７５ならびにダッシュボードビルダ１７９と、アプリケーションフレームワーク１７８と、ユーザインターフェースモジュール１７７とを含む。一態様において、プラットフォームエンジン１０１はさらに、例えば、ビジネスアプリケーション１３０、消費者アプリケーション１３１、および地方自治体アプリケーション１３２を含み得る、周辺デバイス１３０−１３２と通信するように構成される。
【００３２】
一態様において、インターネット・オブ・シングス（ＩｏＴ）ネットワークシステム１００Ｓは、管理モジュール１９０を有する。一態様において、管理モジュール１９０は、エッジデバイス１２０、ゲートウェイ１１０、プラットフォームエンジン１０１、または周辺デバイス１３０−１３２を提供するか、または導入するように構成される。他の態様において、管理モジュール１９０は、適切なサービスの品質を確保するために、エッジデバイス１２０、ゲートウェイ１１０、プラットフォームエンジン１０１、または周辺デバイス１３０−１３２の間の通信および同期を統合するように構成される。さらに他の態様において、管理モジュール１９０は、セキュリティを提供する、またはシステムへの認可されていないアクセスまたは侵入を検出するように構成される。他の態様において、提供は、例えば、ネットワーク稼働コントローラ１０１等、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００の他の部位によって行われ得る。
【００３３】
ここで、図２Ｃおよび図２Ｄを参照すると、一態様において、仮想マシン１５４、１６０、１８１は、顧客ハードウェアのための、およびデバイスレベルでセンサまたはハードウェアデータを処理するための共通のユーザカスタマイズ可能なインターフェースを提供するように構成される。例えば、図２Ｄに見られるように、エッジデバイス１２０Ａ−１２０Ｄおよび１２１Ａ−１２１Ｃは、様々なセンサ入力１５１Ａ−１５１Ｄおよび様々な出力１５２Ａ−１５２Ｄとインターフェース接続するように構成される。様々なセンサ入力１５１Ａ−１５１Ｄの各々は、異なるか、または異なる特性を有し得る。例えば、センサ入力１５１Ａは温度センサであり得て、入力デバイス１５１Ｂは湿度センサであり得て、別のセンサ入力１５１Ｃ−Ｄは、他の環境要素を検出するように構成される（例えば、センサ１１−２８）。同様に、エッジデバイス１２０Ａ−Ｄおよび１２１Ａ−Ｃはまた、無数の出力デバイス１５２Ａ−１５２Ｄと通信し得る。これらの出力デバイスは、例えば、加湿器、サーモスタット、または作用を生じる他のデバイスを含み得る。インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００がすべての考えられる入力デバイス１５１および出力デバイス１５２に対するサポートを提供することは難しい。また、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００の製造者が、そのように多くの異なる潜在的な入力デバイス１５１および出力デバイス１５２と通信するためにソフトウェアを検討することも難しい。エッジデバイス１２０Ａ−Ｄおよび１２１Ａ−Ｃが様々な入力デバイス１５１Ａ−Ｄおよび無数の出力デバイス１５２Ａ−Ｄと通信するために、エッジデバイス１２０Ａ−Ｄおよび１２１Ａ−Ｃは各々、各入力デバイス１５１Ａ−Ｄおよび出力デバイス１５２Ａ−Ｄとインターフェース接続するためのユーザカスタマイズ可能コードを実行する仮想マシン１５４（例えば、上記のユーザ構成可能スペース）を有する。一態様において、ユーザカスタマイズ可能コードはさらに、多様なセンサまたは出力デバイスとインターフェース接続する以上の他の機能を有する。一態様において、ユーザカスタマイズ可能コードは、状況メッセージを介してセンサ入力を報告し得る。さらに他の態様において、ユーザカスタマイズ可能コードは、状況メッセージを送信するために、入力値に基づく単純な状況判断を含み得る。これは、例えば、閾値または状態の変化に基づいて報告を行うために使用され得る。
【００３４】
ここで、図２Ｅを参照すると、エッジデバイス１２０の図が示される。一態様において、エッジデバイス１２０は、仮想マシン１５４と、ネットワークリンクカード１５３とを含む。一態様において、ネットワークリンクカード１５３はさらに、ドメイン固有言語（ＤＳＬ）インタプリタ１５６と、カーネル１５７と、ブートローダ１５８とを含む。一態様において、ネットワークリンクカード１５３、ならびにそのそれぞれのＤＳＬインタプリタ１５６、カーネル１５７、およびブートローダ１５８は、エンドユーザがアクセス可能でないセキュアされたシステムスペースの一部である。ＤＳＬインタプリタ１５６は、ドメイン固有言語、すなわち、単純化されたスクリプト言語（例えば、仮想マシン１５４内においてユーザ定義コードを提供するために使用されるスクリプト言語）を解釈するように構成される。一態様において、ＤＳＬインタプリタ１５６は、単純化されたＤＳＬ構文を強要するように軽く、低電力および限定された処理能力で動作する様々な種類のハードウェア上で実行され得る。カーネル１５７およびブートローダ１５８は、エッジデバイス１２０の動作を制御するネットワークリンクカード１５３の一部である。例えば、ブートローダ１５８は、エッジデバイス１２０が起動される際にカーネル１５７を呼び出す役割を有する。また、カーネル１５７は、例えば、ネットワークを介した通信またはデバイスとの低レベル通信（例えば、デバイスから未処理の信号を受信する）等の低レベル機能のための役割を有する。ネットワークリンクカード１５３のカーネル１５７、ブートローダ１５８、およびＤＳＬインタプリタ１５６は、エンドユーザがアクセス不能であり、変更することはできない。ネットワークリンクカード１５３内のセキュアされたシステムスペースおよびその構成要素を隔離することにより、エンドユーザは、ユーザ定義コードまたはユーザプログラム可能コードのバグによるエッジデバイス１２０のロックが防止される。ネットワークリンクカード１５３のセキュアされたシステムスペースを隔離することにより、さらに、エンドユーザのユーザ定義コードがネットワーク全体を悪用することが防止される。一態様において、ネットワークリンクカード１５３およびカーネル１５７は、デバイス層２５０および物理層２６０上でデバイスまたはネットワークと通信するように構成される（例えば、ビットレベル通信における低レベル通信）。一態様において、デバイス層２５０および物理層２６０は、セキュアされたシステムスペースの一部でもあり、エンドユーザは、アプリケーション層と、デバイス層２５０と、物理層２６０との間のＡＰＩに対する変更が防止される。
【００３５】
一態様において、仮想マシン１５４は、ネットワークリンクカード１５３上で実行されるコンピュータランタイムのエミュレートされたインスタンスである。上述のように、仮想マシン１５４は、様々な入力デバイス１５１Ａ−Ｄおよび様々な出力デバイス１５２Ａ−Ｄとインターフェース接続するようにカスタマイズされた、ユーザ定義コードを実行するユーザ構成可能スペースである。一態様において、仮想マシン１５４は、仮想マシン１５４が多様なセンサ入力１５１（例えば、センサ入力１５１Ａ−Ｄ）に対してカスタマイズできるように、ユーザ定義コードを受信し、これを実行する。例えば、仮想マシン１５４およびエッジデバイス１２０は、多様なセンサ種をネットワークにインターフェース接続することを可能とする包括モジュールとして機能する。一態様において、仮想マシン１５４によって実行されるユーザ定義コードも、エッジデバイス１２０レベルにおいてエッジデバイスがローカル処理を行うことを可能とする。例えば、一態様において、仮想マシン１５４によって実行されるユーザ定義コードは、状況処理を可能とする。例えば、温度計に接続されるエッジデバイス１２０は、温度計の温度読取値を受信し、さらに温度読取値を処理して温度が所定の閾値に達しているかを判定するユーザ定義コードを有し得る。所定の閾値となった場合、仮想マシン１５４上で実行されるユーザ定義コードは、警告を送信、またはユーザによって定義されたアクションを行い得る。
【００３６】
一態様において、仮想マシン１５４は、ドメイン固有言語インタプリタ１５６によって解釈されるドメイン固有言語の形態でユーザ定義コードを受信し得る。一態様において、ドメイン固有言語は、アセンブリなどの単純化された低レベル言語であり、被演算子および演算子等のアセンブリ言語と同様の構文特性を有する。さらに他の態様において、ドメイン固有言語は、Ｌｕａ、Ｒｕｂｙ、Ｐｙｔｈｏｎ、またはＰｅｒｌと同様のスクリプト言語またはインタプリト型言語であり得る。さらに他の態様において、ドメイン固有言語は、単純化され、被演算子および演算子の限定されたセットを有する任意の適当なスクリプト言語であり得る。一態様において、仮想マシン１５４は、仮想マシン１５４のハードウェアおよびソフトウェアのプログラミングを容易にし、エッジデバイス１２０またはインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００の制御および利用を単純化するように、視覚的ユーザインターフェース、例えば、顧客のためのウェブベースのツールを介してユーザ定義コードを受信し得る。
【００３７】
図３を参照すると、エッジデバイス１２０の物理アーキテクチャの例示的な概略図が示される。一態様において、エッジデバイス１２０は、任意の適当なハウジング４０１を含み得る。ハウジング４０１は、一態様において、例えば、露出した環境、街路または道路面内、廃棄物コンテナ内、ガス本管内、下水道内、水道本管内、駐車場内、水域内、建物内、土壌中、街灯柱内、塔内、公害を発生する建物または機械内、倉庫内、雨水管および貯蔵部内、または原子力的、生物的、化学的施設内（例えば、図１においてセンサ１１−２８について示される）を含む任意の場所にエッジデバイス１２０が設置されるか、または埋設され得るように、任意の適当な形状を有し得て、任意の材料からなり得る。他の態様において、ハウジング４０１は、それぞれの駐車スペースの車両を感知するための任意の適当な場所において地上に配置されるよう構成され得る。ハウジング４０１は、暗号ユニット（ＭＣＵ）４０２を有するマイクロプロセッサ、メモリ４０３（本明細書中において説明されるように、ネットワークリンクカード１５３およびロジック層１５４を通じてエッジデバイス１２０の動作に関する態様を有効とするプロセッサ４０２に対して適切に構成される）、エッジデバイス電力システム、システムクロック４０６、エッジデバイス電力システム、エッジデバイス電力システム通信システム、および、例えば、本明細書中において引用により援用される米国特許出願第１４／４９５６７６号明細書からのエッジデバイス制御インターフェースモジュールのスイート等の任意の適当なセンサモジュール４１４等の感知デバイス４００の構成要素を収容するように構成され得る。
【００３８】
一態様において、エッジデバイス電力システムは、プロセッサ４０２に接続された電力供給管理ユニット４０４を有し得る。任意の適当な蓄電ユニット４０５が、感知デバイス４００の構成要素に電力を供給するための電力供給管理ユニット４０４に接続され得る。電力供給管理ユニット４０４は、プロセッサ４０２の制御下等の任意の適当な態様で蓄電ユニット４０５からの電力を調整および分配するように構成され得る。センサ通信システムは、プロセッサ４０２および関連するアンテナ４０８に接続される通信モジュール１５５（任意の適当な無線周波数通信モジュールであり得る）を有し得る。アンテナ４０８は、一態様における全方向性アンテナや他の態様における指向性アンテナ等の任意の適当なアンテナであり得る。アンテナ４０８が指向性アンテナである場合、受信または送信される通信の信号強度がゲートウェイ１１０（図２Ａおよび図２Ｂ）に関して記載した態様と実質的に同様の態様で最大化されるように、適当なモータまたは他の固体（solid state）または機械的駆動ユニットが、アンテナを旋回または回転させるために設けられ得る。一態様において、センサモジュール４１４は、天候センサ１１、公共安全センサ１２、廃棄物管理センサ１３、ガス漏洩センサ１４、下水道監視センサ１５、水漏洩センサ１６、駐車アクセスセンサ１７、スマート駐車センサ１８、水質センサ１９、構造的健全性センサ２０、土壌水分センサ２１、電子放射センサ２２、スマート照明センサ２３、街路安全センサ２４、空気質センサ２５、アイテム位置センサ２６、水位センサ２７、または公共衛生センサ２８を含むがこれらに限定されない任意の適当なセンサであり得る。一態様において、センサモジュール４１４は、任意の適当な態様でプロセッサ４０２に接続され得て、任意の感知特性を感知するように構成され得る。認識されるように、センサモジュール４１４のプロセッサ４０２との通信を可能とするために、任意の適当な付随的な回路が設けられ得る。
【００３９】
ここで図３Ａを参照すると、エッジデバイス１２０の代替的な態様が示される。図３Ａにおいて、ＭＣＵ４０２は、通信モジュール１５５に接続される（無線周波数（ＲＦ）受信器／送信器の形態で）。ＭＣＵ４０２はさらに、ネットワークを介した通信を提供するＭＡＣアドレス４２０に接続される。一態様において、図示されていないが、ＭＡＣアドレス４２０は、通信モジュール１５５の一部であり、通信モジュール１５５を介したネットワーク通信を可能にする。一態様において、ＭＣＵ４０２はさらに、エッジデバイス１２０に電力を供給する電源４０４に接続される。ＭＣＵ４０２はさらに、ＭＣＵ４０２から出力デバイス１５２への信号をレベルシフトする出力レベルシフタ４１４Ａに接続される。また、ＭＣＵ４０２は、さらに入力１５１に接続される入力レベルシフタ４１４Ｂにも接続される。
【００４０】
図１Ａ、図２Ａ、および図２Ｂを再び参照すると、前述のように、一態様において、エッジデバイス１２０は、多様な種類のセンサ入力１５１を提供する多様な異なるセンサ（例えば、本明細書中において説明されるセンサ１１−２８）に結合されるか、または一体化されるように構成される、マイクロコントローラ、チップ、またはプリント回路基板（ＰＣＢ）である。一態様において、エッジデバイス１２０は、例えば、ディスプレイ、スイッチ、または他のコントローラに出力１５２を提供するようにも構成される。一態様において、エッジデバイス１２０に結合された多様なセンサ（例えば、センサ１１−２８）は、電力消費を制限するために、低電力センサとして構成される。一態様において、エッジデバイス１２０のエッジデバイス仮想マシン１５４は、プログラミングのためのソフトウェアを構成し、多様なセンサ１１−２８（上記のような）から感知データを受信し、多様なセンサ１１−２８からの感知データを分析し、および統合し、既定のまたはユーザによってプログラムされたロジック層１５４内の規則または命令に基づいて、多様なセンサ１１−２８からの感知データに基づくローカルでの（例えば、エッジデバイス１２０レベル）判定を行うようにエッジデバイス１２０を構成するための、共通プラットフォームおよびプログラム可能なインターフェースとして構成される。前述のように、一態様において、エッジデバイス１２０は、実質的に代替可能であり、任意の適当なセンサに接続されるよう構成される。
【００４１】
図４を参照すると、一局面において、エッジデバイスネットワークリンクカード１５３の取り得る状態が、有限状態機械図として示される。一局面において、エッジデバイスネットワークリンクカード１５３は、初期化状態４２０で初期化される。ネットワークリンクカード１５３が初期化された後、ネットワークリンクカード１５３は、ＲＦメッセージ４３０（例えば、ゲートウェイ１１０もしくはプラットフォームエンジン１０１から受信したＲＦメッセージ）の処理、ハードウェア割り込み４４０（例えば、多様なセンサ１１−２８のうちの１つからのハードウェア割り込み）の処理、およびロジック層４５０（例えば、ロジック層１５４内に記憶された既定のプログラムもしくはユーザがプログラミングしたプログラムを実行する）の循環の間で切り替わる実行状態に入る。他の局面において、ネットワークリンクカード１５３は、ロジック層４５０の循環、ハードウェア割り込み４４０の処理、およびＲＦメッセージ４３０の処理の状態間にスリープモード４６０となってバッテリ寿命を温存、または電力消費を減少させるようにも構成される。
【００４２】
図１Ａ、図２Ａ、および図２Ｂを再び参照すると、一局面において、前述のように、エッジデバイス仮想マシン１５４ｈは、既定およびユーザがプログラミングしたビジネスロジックおよび学習した行動を含む、多様なセンサ（例えば、センサ１１−２８）のためのユーザがプログラム可能なインターフェースである。一局面において、エッジデバイス仮想マシン１５４は、データの受信（例えば、多様なセンサ１１−２８から）、データ収集の処理（例えば、入力１５１を介して多様なセンサ１１−２８から）、データの記憶（例えば、多様なセンサ１１−２８から収集）、およびデータの伝達（例えば、ゲートウェイ１１０もしくはプラットフォームエンジン１０１）を提供するように構成される。一局面において、エッジデバイス仮想マシン１５４は、ゲートウェイ１１０もしくはプラットフォームエンジン１０１から受信したＲＦメッセージの処理（例えば、ネットワークリンクカード１５３のＲＦメッセージ４３０処理の状態）、または入力１５１（例えば、多様なセンサ１１−２８から）からのハードウェア割り込みの処理（例えば、ハードウェア割り込み状態４４０）も提供する。
【００４３】
一局面において、エッジデバイス仮想マシン１５４は、エッジデバイス１２０内に内在するローカルエッジデバイス仮想マシン１５４からの特定のセンサ入力のタイプ、論理的ローカル解析、および分解を提供する規則ベースの解決システムとなるように構成される。エッジデバイス仮想マシン１５４によってもたらされる規則ベースの解決システムは、上記のドメイン固有言語（ＤＳＬ）を通じて、またはＤＳＬモジュール１５６によってインタプリトもしくはコンパイルされた任意のインタプリトもしくはコンパイルされた言語を通じて提供される。一局面において、エッジデバイス仮想マシン１５４によって提供される規則ベースの解決システムは、出力１５２を介してローカル出力を生成するようにも構成される（例えば、センサが所定の閾値を超えると、エッジデバイス仮想マシン１５４は出力１５２を介してアラーム命令を開始するように構成される）。一局面において、出力１５２は、例えば、ゲートウェイ１１０およびプラットフォームエンジン１０１を含む、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００アーキテクチャの他の部分に伝達され得る。一局面において、エッジデバイス仮想マシン１５４は、エッジデバイス１２０上での出力１５２のローカル変化を有効にすることによって、入力１５１からの入力変化（例えば、多様なセンサ１１−２８からの）に対してエッジデバイス１２０が反応できるようにする。例えば、一局面において、エッジデバイス１２０が、所定の閾値（ロジック層１５４によって定められる）を超える温度測定値を温度センサから受信した場合、エッジデバイス１２０は、ゲートウェイ１１０もしくはプラットフォームエンジン１０１に対して温度を通信する必要なくしてローカルで出力１５２を介してアラーム命令を出力することができる。一局面において、エッジデバイスのためのエッジデバイス仮想マシン１５４のローカル処理能力は、ネットワークのエッジにおける（例えば、エッジデバイス１２０における）最適なセンサ解析および決定を有効にする。一局面において、エッジデバイス仮想マシン１５４は、ローカル解析を識別し、または定義するために、多様であるが関連するセンサデータのセンサデータ解析または融合も有効とする。例えば、エッジデバイス１２０は、漏洩検知センサおよび金属検知センサからデータを受信し、水道本管の破損箇所の近傍に自動車の交通があるかどうかを判定し得る。さらに他の局面において、エッジデバイス仮想マシン１５４は、アラームを警察署、水道局、もしくは施設水道施設に対して送信して水道本管の破損について関連する者に警告するなど、ローカルアクションを開始および有効化するようにも構成される。
【００４４】
図５を参照すると、ゲートウェイ１１０の各々は、任意の形状および大きさを有する任意のハウジング２９９を有し得る。一局面において、ハウジングは、耐候性であり、ＵＶ（紫外）線に対して抵抗を有し得る。ハウジング２９９は、一態様では、無線周波数がハウジングを通過することを可能にするように、任意の適切な材料で構成され得る。各ゲートウェイ１１０Ａ−１１０Ｃ（概して、ゲートウェイ１１０という）は、それぞれのハウジング内に、プロセッサモジュール２００（本明細書において説明されるように、任意のメモリと適したプログラミングを有し得て、ゲートウェイの機能を実行するように構成され得る）と、ＧＰＳモジュール２０１と、クロックモジュール２０４と、蓄電コントローラ２０５と、電源モジュール２０２と、任意の適切な数の通信モジュール２０３および２０８とを有し得る。一局面において、ゲートウェイ１１０は、全体が引用により援用される、２０１４年１１月２０日に公開された米国特許出願公開第２０１４／０３４０２４０号明細書および２０１４年１１月２０日に公開された米国特許出願公開第２０１４／０３４０２４３号明細書に開示されるゲートウェイと実質的に同様である。一局面において、ゲートウェイ１１０は、一局面においてゲートウェイ１１０のプロセッサモジュール２００上に内在するゲートウェイ仮想マシン１６０を有するゲートウェイネットワークリンクカード１６６も有する。一局面において、ゲートウェイ仮想マシン１６０は、ゲートウェイネットワークリンクカード１６６のセキュアされたシステムスペースから隔離されたユーザ定義コードによって定義される。一局面において、ゲートウェイ仮想マシン１６０は、エッジデバイス１２０からセンサデータを受信し、エッジデバイス１２０Ａ−Ｃ、１２１Ａ−Ｃ、および１２２Ａ−Ｃの群からの解析を提供するコードを有するように構成される。一局面において、ゲートウェイ仮想マシン１６０は、エッジデバイス１２０のエッジデバイス仮想マシン１５４に対応する。一局面において、ゲートウェイ仮想マシン１６０は、ゲートウェイ１１０レベルでローカルにセンサデータの整理、解析、および統合を提供するように構成される。一局面において、ゲートウェイ１１０は、全体が引用により援用される、２０１２年９月２５日に発行された米国特許第８２７４４０３号明細書に開示のフォールトトレランスのためのクロスゲートウェイフェイルオーバ（図６参照）を提供するようにも構成される。
【００４５】
ＧＰＳモジュール２０１は、プロセッサモジュール２００に対して動作可能に接続され得て、１つまたは複数のＧＰＳ衛星と通信するための任意の適当なアンテナ２０９を有し得る。ＧＰＳモジュール２０１は、場所／位置データ、日付データ、および時間データを含むがこれらに限定されない任意の適当なデータをプロセッサモジュールに提供するように構成され得る。クロックモジュール２０４は、プロセッサモジュール２００に対して動作可能に接続され得て、プロセッサモジュール２００に対して、ＧＰＳモジュール２０１から得られた日付データおよび／または時間データを用いてプロセッサモジュール２００によって周期的に（もしくは、任意の適当な回数）更新され得る時間データを提供し得る。
【００４６】
蓄電コントローラ２０５は、プロセッサモジュール２００に対して動作可能に接続され得る。１つまたは複数のソーラーパネル２０７が、ハウジング２９９に対して配置され得て、遠隔に設けられ得て、または接続され得る。一局面において、１つまたは複数のソーラーパネル２０７は移動可能であり、１つまたは複数の蓄電ユニット２０６の再蓄電サイクルを最適化するために、例えば最高の光源等、１つまたは複数の利用可能な光源を追跡する任意の適当な態様で構成され得る。ここで、１つまたは複数のソーラーパネルは、１つまたは複数のソーラーパネルの光追跡動作を有効化するための任意の適当なモータと光センサとを有し得る。認識されるように、モータおよび光センサは、光追跡動作を有効化するために必要な計算および制御のためのプロセッサモジュール２００に接続され得る。他の局面において、ソーラーパネル２０７は、光追跡動作を有効化するために必要な計算を行うプロセッサを有し得る。ソーラーパネル２０７は、１つまたは複数の再蓄電可能な蓄電ユニット２０６を蓄電するための蓄電コントローラ２０５に対して動作可能に接続され得る。一局面において、ゲートウェイ１１０は、実質的に光のある状況（例えば、日中）に１つまたは複数のソーラーパネル２０７によって提供される電力、および実質的に光のないもしくは少ない状況（例えば、夜間、夕暮れ、夜明け等）に１つまたは複数の再蓄電可能な蓄電ユニット２０６によって提供される電力で動作するように構成され得る。他の局面において、ゲートウェイ１１０は、１つまたは複数のソーラーパネル２０７および１つまたは複数の蓄電ユニット２０６の合成出力によって提供される電力で動作するように構成され得る。さらにまた他の局面において、ゲートウェイは、公共設備等からのハードラインを用いて電源供給され得て、公共設備からの電力をゲートウェイで使用可能な電力へ変換するための適した電子機器を有し得る。
【００４７】
電源２０２は、ゲートウェイ１１０の稼働のための１つまたは複数の蓄電ユニット２０６および／またはソーラーパネル２０７からの電力を提供して管理するために、プロセッサユニット２００および１つまたは複数の蓄電ユニット２０６に対して動作可能に接続され得る。一局面において、電源モジュール２０２は、１つまたは複数の蓄電ユニット２０６の蓄電状態をプロセッサモジュール２００に提供し得る。プロセッサモジュール２００は、例えば、蓄電状態が所定の閾値に到達した時または他の任意の適当な時間において、１つまたは複数の蓄電ユニット２０６を蓄電するために１つまたは複数のソーラーパネル２０７から１つまたは複数の蓄電ユニット２０６へ電力が提供されるように、蓄電コントローラ２０５の稼働を有効化するように構成され得る。電源モジュール２０２は、例えば、１つまたは複数の蓄電ユニット２０６の蓄電周期を監視する予測メンテナンスも提供し得る。プロセッサモジュール２００は、例えば、１つまたは複数のソーラーパネル２０７の電圧／電流曲線および／または１つまたは複数の蓄電ユニット２０６の蓄電周期等の電源モジュール２０２からのデータを用いて１つまたは複数の蓄電ユニット２０６の寿命を判定もしくは予測するように構成され得る。プロセッサモジュール２００は、メッセージ（１つまたは複数の蓄電ユニット２０６の状態／寿命を含む）メッセージを、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００の任意の適当なオペレータ／メンテナンス人員への通信のためにゲートウェイ１１０から中央コントローラ１０１に送信させ得る。
【００４８】
一局面において、ゲートウェイ１１０は、２つの通信モジュール２０３および２０８を有し得る。通信モジュール２０３のうちの１つは、例えば、モバイル、衛星、または他の長範囲もしくは短範囲の通信プロトコル等の任意の適当な無線プロトコルを通じたそれぞれのエッジデバイス１２０Ａ−１２０Ｃ、１２１Ａ−１２１Ｃ、および１２２Ａ−１２２Ｃとの通信のために構成された「ローカル」通信モジュールであり得る。通信モジュール２０８のうちの他方は、例えば、以下でより詳細に説明するアンテナ２１１を用いて１つまたは複数の通信機器１４０と通信するように構成される「遠方」通信モジュールであり得る。他の局面においては、エッジデバイス１２０Ａ−１２０Ｃ、１２１Ａ−１２１Ｃ、１２２Ａ−１２２Ｃ、および１つまたは複数の通信機器１４０と通信するために単一の通信機器が使用され得る。一局面において、任意の適当なアンテナ２１０が、エッジデバイス１２０Ａ−１２０Ｃ、１２１Ａ−１２１Ｃ、および１２２Ａ−１２２Ｃとの任意の適当な無線周波数通信を可能とするために通信モジュール２０３に接続され得る。アンテナ２１０は、ハウジング２９９内に配置され得る、ハウジング２９９に取り付けられ得るか、またはハウジング２９９から遠隔に配置され得る。
【００４９】
プラットフォームエンジン１０１は、コンピュータ化されたデータフローシステムである。一局面において、プラットフォームエンジン１０１は、プラットフォームエンジンロジック層モジュール１７２と、洞察モジュール１７４と、法人用データ統合モジュール１７５と、分散型ストレージモジュール１７１と、通信インターフェースモジュール１７３とを有するプラットフォームエンジンネットワークリンクカード１８０を有する。一局面において、プラットフォームエンジン１０１はさらに、プラットフォームエンジンロジック層モジュール１７２内で実行されるプラットフォームエンジン仮想マシン１８１を有する。また、一局面において、プラットフォームエンジン１０１は、アプリケーションプログラミングインターフェースモジュール１７６と、ダッシュボードビルダ１７９と、アプリケーションフレームワーク１７８と、ユーザインターフェースモジュール１７７とを有する。
【００５０】
一局面において、プラットフォームエンジン１０１のプラットフォームエンジンファームウェア１８０は、セキュアされたシステムスペースである。ゲートウェイネットワークリンクカード１６６およびエッジデバイスネットワークリンクカード１５３と同様に、セキュアされたシステムスペースは、エンドユーザがアクセス不能なプラットフォームエンジン１０１の稼働を制御するように構成される。例えば、一局面において、プラットフォームエンジンネットワークリンクカード１８０は、ゲートウェイ１１０およびエッジデバイス１５６とのネットワーク通信を制御する通信インターフェース１７３を有する。通信インターフェース１７３へのユーザアクセスを防止することにより、プラットフォームエンジン１０１は、プラットフォームエンジン１０１の稼働に対して悪影響を及ぼし得る改ざん、ハッキング、およびユーザ定義コードの実行を受けにくくなる。また、一局面において、プラットフォームエンジンネットワークリンクカード１８０は、ビッグデータ分析もしくはマシン学習ならびにビジネスメタデータ管理のために構成される洞察モジュールを有する。また、一局面において、プラットフォームエンジンネットワークリンクカード１８０は、ロジック層モジュール１７２を有する。一局面において、ロジック層モジュール１７２は、ドメイン固有言語（ＤＳＬ）モジュール１８２を有する。ドメイン固有言語は、一局面において、ユーザ定義コードもしくはユーザプログラム可能コードを定義するための単純化された言語である。例えば、ドメイン固有言語は、被演算子と演算子とを有する、単純化された低レベルのアセンブリ型言語であり得る。一局面において、ＤＳＬは、仮想マシン１５４、１６０、および１８１によって実行されるいくつかの低レベルの命令を含む低レベルのインタプリト型言語である。一局面において、仮想マシン１５４、１６０、および１８１はさらに、シミュレーション環境、ユースケース（use case）、およびＤＳＬ言語で記述された他のユーザ定義スクリプトをさらに有し得る。一局面において、仮想マシン１５４、１６０、および１８１の構成は、ＤＳＬ言語で記述された構成ファイルをプラットフォームエンジン仮想マシン１８１にロードし、ゲートウェイ仮想マシン１６０およびエッジデバイス仮想マシン１５４に伝搬してこれらをカスタマイズすることによって行われ得る。他の局面において、ドメイン固有言語は、Ｒｕｂｙ、Ｌｕａ、Ｐｙｔｈｏｎ、もしくはＰｅｒｌ等のインタプリト型言語と同様の高レベルのインタプリト型言語である。さらに他の局面において、ドメイン固有言語は、実行可能なバイナリプログラムへコンパイルされ得る。一局面において、ＤＳＬモジュール１８２は、ユーザ定義コードもしくはユーザプログラム可能コードを構文解析（parse）し、解釈し、またはコンパイルするように構成される。ユーザ定義コードもしくはユーザプログラム可能コードは、エッジデバイス１２０から受信した感知データに基づいて整理し、解析し、統合し、および決定を行うように構成される規則のプログラム可能なコード、またはプログラム可能なセットである。一局面において、ＤＳＬモジュール１８２によって解釈またはコンパイルされたユーザ定��コードまたはユーザプログラム可能コードは、ユーザ定義コードまたはユーザプログラム可能コードを実行するように構成される仮想マシンランタイムであるプラットフォームエンジン仮想マシン１８１において実行される。一局面において、プラットフォームエンジンロジック層モジュール１７２のユーザ定義規則は、実質的に、既定であってユーザプログラム可能である。一局面において、プラットフォームエンジン仮想マシン１８１は、ゲートウェイ１１０の補完的ゲートウェイ仮想マシン１６０およびエッジデバイス１２０のエッジデバイス仮想マシン１５４と実質的に同様であり、プラットフォームエンジン１０１レベルでのデータの整理、統合、解析、および処理を提供する。プラットフォームエンジン仮想マシン１８１の規則は、データをどのように扱うかを決定する。規則の第１のステップは、適用可能なデータ要素へ受信されるデータストリームを構文解析し、適切なデータベースまたは管理システムへ転送することである。規則は、受信されたデータストリームが構文解析される各データストリームマーカについて定義される。また、規則は、どのシステムがこれらの構文解析された要素を受信するか、および返信されるデータが予想されるかを決定する。その後、各データストリームは、特定のデータベースまたは管理システムに渡され、すべてのデータストリームの受信を確認する。各要素との通信は、履歴追跡および内部診断報告のために別個のデータベースにログとして記憶される。定義されたサポートシステムからの応答が期待されると規則が指令する場合、プラットフォームエンジン１０１は、その変身されるデータストリームを待ち、ローカルに記憶する。構文解析されたデータストリームの各々がひとたび処理されると、戻りデータストリームが、コンパイルされ、ゲートウェイ１１０、エッジデバイス１２０、または周辺デバイス１３０−１３２との通信のための通信インターフェースモジュール１７３に渡される。
【００５１】
通信インターフェースモジュール１７３は、一局面において、複数の物理的接続に接続されて複数のプロトコルを使用する、マルチファセットシェルである。また、通信インターフェースモジュール１７３は、一局面において、該当する場合にウェブブラウザまたは携帯アプリケーションでの表示のためのインタラクティブ文書を生成するユーザインターフェースエンジン１７７に接続される。一局面において、通信インターフェースモジュール１７３は、モバイル、衛星、または他の長距離無線接続によって、エッジデバイス１２０、ゲートウェイ１１０、および周辺デバイス１３０−１３１への暗号化されたデータストリームの交換を提供する。通信インターフェースモジュール１７３は、経路選択テーブルを用いて、各デバイスとの通信時に使用される手段およびプロトコルの両方を追跡する。
【００５２】
データを伝送するために、通信インターフェースモジュール１７３は、送信されるデータと、それが送達されるデバイスアドレスとを受信する。定義された経路選択テーブルに基づき、通信の手段およびプロトコルが判定され、ペイロードデータが送達のためにフォーマットされる。情報の送達は、１つの個別のデバイスまたはデバイスのグループに向けられ得る。ひとたび受信されると、パケットが必要に応じて再配列され、受信側デバイスのロジックによって解釈される。データパケットのペイロードは、受信側デバイスに対し、どのようなアクションを取るか、および、どのパラメータを適用するかを伝える。
【００５３】
一局面において、図２Ｃに示されるように、エンドユーザは、ユーザ定義コードもしくはユーザプログラム可能コードをプラットフォームエンジン仮想マシン１８１に対して通信するプログラミング環境ツール２８０を通じて、ユーザ定義コードもしくはユーザプログラム可能コードを伝播することができる。一局面において、プログラミング環境ツール２８０は、単純化されたグラフィックインターフェースもしくはポイント・クリックインターフェースを通じてユーザが命令のスクリプトを単純化できるグラフィックプログラミングモジュール２８１を有し得る。他の局面において、プログラミング環境ツール２８０はさらに、ユーザがテキストもしくはテキストファイルを入力することでユーザ定義コードもしくはユーザプログラム可能コードをカスタマイズすることができるテキストプログラミング環境２８２を有し得る。一局面において、テキストプログラミング環境２８２は、ＤＳＬパーサであり、ＤＳＬでのスクリプトの入力を受け付ける。他の局面において、テキストプログラミング環境２８２は、任意の適当なプログラミング言語を構文解析し、それをＤＳＬの単純化されたシンタックスに解釈するように構成される。一局面において、これは、Ｃ、Ｐｙｔｈｏｎ、Ｌｕａ、Ｐｅｒｌ、およびＲｕｂｙ等の高レベルおよび低レベルの言語の両方を含み得る。一局面において、ユーザ定義コードもしくはユーザプログラム可能コードは、プログラミング環境ツール２８０からプラットフォームエンジン仮想マシン１８１へ渡される。そして、プログラミング環境ツール２８０からプラットフォームエンジン仮想マシン１８１へ渡されたユーザ定義コードもしくはユーザプログラム可能コードは、エッジデバイス１２０の仮想マシン１５４およびゲートウェイ１１０の仮想マシン１６０へ渡され、仮想マシン１５４および１６０の動作がさらにカスタマイズされ得る。
【００５４】
アプリケーションプログラミングインターフェースモジュール
【００５５】
コンピュータもしくは携帯アプリケーションおよび第三者のユーザをプラットフォームエンジン１０１にアクセスさせるために、プラットフォームエンジン１０１は、アプリケーションプログラミングインターフェースも有し、アプリケーションプログラミングインターフェースは、インターネット接続を介してユーザによってアクセスされ得るソフトウェアおよびアプリケーションを構築するための、またはアプリケーションデータを表示するための、サブルーティンの定義、プロトコル、およびツールのセットを提供するように構成される。本発明は、いくつかの異なる種類のインターフェースを有する。
【００５６】
地理的情報システム
【００５７】
図７から図１１は、例えば、ユーザインターフェースモジュール１７７（ウェブブラウザ）上または周辺デバイス１３０−１３２のディスプレイ（例えば、アプリケーションプログラミングインターフェースモジュール１７６にアクセスする携帯アプリ）上に表される地理的情報システムユーザインターフェースの基本的なフォーマットを示す。インターフェースは、多くのビューおよびフィルタリングレベルを有する。図７は、実行状態に注目したビューである。選択制御（１１−１）により、ユーザは、特定の状態に応じてビューをフィルタリングすることができる。この場合、ビューは、例えば、駐車コンテキスト内における空いた駐車スペース等の特定のデータのみを示すようにフィルタリングされる。他の局面において、ビューは、エッジデバイス１２０および多様なセンサ１１−２８のうちのいずれかからの任意の適当なデータを有し得て、天候、公共安全、廃棄物管理、ガス漏洩、下水道感知、水漏洩、駐車感知、スマート駐車感知、水質、構造的健全性、土壌水分、電磁放射、スマート照明、安全、および／または街路感知、空気質、アイテム追跡および位置、水位、公共衛生の危険、または多様なセンサ１１−２８に対する上記の任意の適当な所定の感知特徴を含む任意の適当なコンテキストを表示し得る。これらは、地図上にアイコン（１１−２）によって示される。
【００５８】
図８は、図７と同じビューを示すが、図８においては、ユーザがアイコンの１つをクリックしたものである。これが行われると、バルーンもしくはウィンドウ（１２−１）が開き、アイコンによって示されるスペースに関するさらなる詳細が提供される。
【００５９】
図９は、図７および図８と同様であるが、フィルタが拡張され、空いたスペースおよびメータ違反が失効したものが示される。
【００６０】
詳細バルーン（１３−１）は、スペースおよびそこで生じた違反の両方についての情報を与える。図１０は、スペースのユーザ定義グループ分けを表すＧＩＳのビューである。この場合、スペースにおいて有効な実行ポリシーに基づいてユーザによってグループが定義される。選択されたポリシーは、着色した線（１４−１）もしくは他の視覚的手段によって示される。
【００６１】
これらのグループ分けは、レポートの実行、ポリシーの変更、またはスペースの管理に使用され得る。図１１は、メータの地理的選択を示す。ユーザは、異なる地理のタイプを定義することができる。このようなタイプは、政治的（議会地区）もしくは機能的（実行ゾーン）によって分けられ得る。図１０におけるグループ分けのように、これらの選択（１５−１）は、レポートの生成、ポリシーの変更、またはその地理内のスペースの管理に使用され得る。
【００６２】
タイプは、ユーザがマウスを用いて、または公共におけるリストからスペースを選択することで１つまたは複数のスペースを選択することによって開始される。ひとたび選択されると、ユーザは、インターフェース画面の上部のメニューバーを通じて、または既定のマウスクリックの組合せで利用可能なコンテキストメニューによって、既定のアクションを開始することができる。リクエストの詳細を定義するために、ユーザによって一連のパラメータが入力され得る。全リクエストは、プラットフォームエンジン１０１のロジック中心に渡され、ここで、何のデータ要素が収集されるか、どのように照合されるか、およびどのデバイスに通信されるかについて既定の規則によって司令される。
【００６３】
同様に、地図画像上のアイコンは、現在の状態についての情報を表示するために使用され得る。この情報は、表示をリフレッシュするためのユーザの手動リクエストによって、または表示の自動リフレッシュによって更新される。いずれの場合においても、プラットフォームエンジン１０１は、現在の情報を含むデータベースから遠隔のアセットおよび人員の現在の場所および状態に関する情報を検索し、変化を反映するために表示画像を更新する。
【００６４】
テキストレポート
【００６５】
多くの場合、ユーザ（周辺デバイス１３０−１３２を使用）によって必要とされる情報は、本質的に統計的な情報である。これらのリクエストに対処するために、本開示は、一局面において、ユーザが例えば、アプリケーションプログラミングインターフェースモジュール１７６を通じて利用可能であり、周辺デバイス１３０−１３２上のアプリケーションを介してアクセス可能なテキストレポートを含む。レポートは、日付の範囲、グループもしくは個別のスペースの選択、統計のタイプ、ならびに、例えば、特定の時間において設備におけるいくつのメータが動作していない、および他と比較されるデータのサブセクション等の含まれる情報を特定する入力画面によって実行される。レポートは、ユーザによって要求される統計に対してコンテキストとして適切なレポート、表、またはチャートの形態を取り得る。
【００６６】
グラフィックレポート
【００６７】
テキストレポートに加えて、グラフは、相互に関連する統計の傾向、比較、および分析について迅速かつ簡潔に理解できる統計の視覚的表示を提供する。
【００６８】
テキストレポートと同様に、グラフィックレポートは、日付範囲、含まれるグループもしくは個別のスペース、およびグラフ化される統計を制御するユーザ入力画面によって指示されることで（アプリケーションプログラミングインターフェースモジュール１７６へのアクセスを通じて周辺デバイス１３０−１３２上に）表示される。また、ユーザは、利用可能なグラフのタイプのリストから、使用されるグラフのタイプを選択する。該当する場合、ユーザは、１つの統計を他の統計に重ねることによって統計を比較することができる。グラフ選択インターフェースは、結果を別個の軸上に表示するかについて特定するオプションをユーザに与える。これは、パーセントで測定された遵守レベル（compliance levels）に対してドルで収益を比較するなど、異なる測定の単位を用いて統計を比較する際に有用である。
【００６９】
電子看板
【００７０】
インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステム１００は、スペース監視および測定機器、状態メータ、または温度読み出し情報等の遠隔のユニットのための電子ディスプレイを有する。一局面において、電子ディスプレイは、アプリケーションプログラミングインターフェースモジュール１７６を介してプラットフォームエンジン１０１にアクセスするように構成される周辺デバイス１３０−１３２である。このようなディスプレイ（例えば、図７から図１１に示されるディスプレイ）は、現在の料金およびポリシーを公共駐車場に対して通信する実際の計測機器に接続される街路標識およびＬＣＤディスプレイを含む。電子的な性質により、標識を交換または修正するために労働力を配置する必要なしに、そのような標識を更新して、料金および稼働時間などの変更を更新することが可能になる。このような看板がなければ、このようなポリシーに対して迅速および通常の変更を行うことができない。
【００７１】
サポートデータベースおよび管理システム
【００７２】
すべての必要なフォーマットで詳細かつ柔軟にレポートを行うためには、いくつかの相互接続したシステムおよびデータベースが必要となる。プラットフォームエンジン１０１は、これらの個別のデータソースの入力を調整し、図１Ａ、図２Ａ、および図２Ｂに示される周辺デバイス１３０−１３２のうちの１つまたは複数における個別の表現を作成する。
【００７３】
洞察エンジン１７４
【００７４】
一局面において、プラットフォームエンジン１０１は、エッジデバイス１２０およびゲートウェイ１１０から受信した生データを処理するように構成される洞察エンジン１７４も有する。一局面において、洞察エンジン１７４は、使用パターンについて感知データを識別する、または任意の適当な態様でデータを解析するためにビッグデータ分析およびマシン学習を行うように構成される。例えば、洞察エンジン１７４は、例えば、水漏洩検知センサ１６および土壌水分センサ２１を用いて水の使用パターンを識別し、例えば、水不足の状況において芝生に水を与えている個人がいるかどうかを判定するように構成され得る。一局面において、感知データ間の任意の適当な関係は、洞察エンジン１７４によって判定もしくは解析され得る。
【００７５】
一局面において、メタデータの処理として、２００５年７月１３日に出願されて継続中の米国特許出願第１１／１７９７７９号明細書に記載のスマートメータシステムのようなシステムが、当該出願における図面の簡単な説明および詳細な説明について引用により援用される。このシステムは、システム管理における柔軟性を最大化させるために拡張する必要がある。そして、この処理の出力は、ユーザが要求したレポートに必要な集合統計への後の検索および編集のために、プラットフォームエンジン１０１における関連付けられたデータベースに記憶される。
【００７６】
本発明のシステムは、スタッフスーパバイザおよびポリシーメーカーによってまとめられることで、システム１００の稼働を有効にするポリシーの変化のモデリングを可能とする。履歴データを記憶することにより、洞察エンジン１７４は、エッジデバイス１２０からの感知データの統計的および数学的モデルを生成することができる。ユーザは、単にどの統計を手動で変更するか、および、どの統計を計算するかについて特定し、システムは、履歴データを使用して結果を予測することができる。これらの結果は、ターゲットとされる地理についての実際のデータに基づいており、ユーザは、料金が上昇した場合の特定の割合だけ遵守レベルが低下するという推測等、様々な推測を行うことができる。
【００７７】
現状データベース
【００７８】
一局面において、分散型ストレージ１７１の一部は、監視されている各アセットおよび人的資源についての記録を含むデータベースであることから、プラットフォームエンジン１０１は、現状データベースも有する。
【００７９】
エッジデバイス１２０およびゲートウェイ１１０に関する記録は、暗号化されたデータメッセージによって監視され、エッジデバイス１２０状態およびゲートウェイ１１０状態についての情報を含む。テーブルは、スペースにおける様々な状態の変化のシステムテレメトリからの各新しいレポートを用いて更新される。記録の詳細は、エッジデバイス１２０、ゲートウェイ１１０、および周辺デバイス１３０−１３２に関する例外事例も含む。
【００８０】
例えばスタッフスーパバイザもしくはポリシーメーカーによる人的資源に関する記録は、テレメトリ等のシステム通信技術によって新しいデータが受信されると更新される。これらの記録は、従業員によって使用されている機器（車両およびツールを含む）、従業員の場所、およびメンテナンス人員によって必要とされる指定された仕事もしくは関連する作業順序に関する情報を含む。
【００８１】
管理システム
【００８２】
一局面において、システム１０１の稼働を管理する１つの主要な構成要素は、在庫追跡である（例えば、センサ２６を介して）。一局面において、これは、例えば、法人用データ統合モジュール１７５を用いた統合を含み得るか、または分散型ストレージ１７１の一部であり得る。稼働の各要素は、固有のシリアル番号を用いて識別される。このシリアル番号は、アセットについての全ての情報を含むデータベーステーブルを検索（index）するために使用される。この情報は、部品番号、モデル番号、および製造者を含む。
【００８３】
追加のデータベーステーブルが、アセットに関する履歴事象を追跡するために使用される。このような事象は、メンテナンス事項および事象、アップグレード、位置変化、および接続されたアセットを含む。このデータは、メンテナンス人員の稼働に有用である。補助的なテーブルが、メンテナンス、交換、およびアップグレードをスケジューリングするために、システム内の任意の適当なアセットについての現在データおよび履歴データの両方を表示するために使用される。
【００８４】
部品の交換が必要な問題が生じた場合、関連付けられた交換部品および交換のための利用可能な在庫についての情報を記憶するテーブルが使用され得て、メンテナンスクルー（メンテナンス人員）が必要な修理を行うための全ての必要な部品を有することが確保される。さらに、テーブルは、部品を購入するためのソース、および製造者からの部品の効率的な発注を容易にするリードタイムについての情報を記憶する。
【００８５】
多くのシステムは、製造者からの部品の注文の属性を記録し、最も有効な注文量および輸送費用を計算することにより商品管理における効率をさらに提供するためのツールも有する。
【００８６】
メンテナンス履歴
【００８７】
上述したように、各アセットについてのメンテナンス履歴は、プラットフォームエンジン１０１の分散型ストレージ１７１において追跡される。この情報は、予防メンテナンスを容易にし、ならびに一般市民の経験を向上させる内訳の傾向を分析する際に重要である。しばしば、駐車ポリシーの違反に対して召喚される人々が、パーキングメーターの誤作動が原因であると、切符に異議を唱える。履歴情報は、このような誤作動が発生したかどうかを判定するために使用され得る。故障が発生していた場合、切符は免除される。このデータは、執行人員の稼働のために必要である。
【００８８】
特定の時間において既定の地理的領域において誤作動が発生した場合、メンテナンス管理者は、違反行為の問題を認識し、この問題を修正するために法執行の支援を求めることが可能となり得る。
【００８９】
ポリシー管理
【００９０】
ポリシー管理データベースは、様々なエッジデバイス１２０の起動を追跡するために使用される。また、このデータベースは、エッジデバイス１２０へのこれらのポリシーの適用の履歴を追跡する。
【００９１】
エッジデバイス１２０から受信したデータを処理するためにデータベースが参照される。この生データの解析は、正しく統計を計算するとともに、地図での表示（図７〜図１１）およびレポートのための現状データベースにおける現在のスペースの状態を更新するために、正しいメータ料金および人員による実行パラメータをデータに適用する必要がある。
【００９２】
エンドユーザに対する情報の伝達と拡散、解析、および収集の適した局面のさらなる例は、該当する場合に全体が引用により援用される、２０１２年９月２５日に公開された米国特許第８２７４４０３号明細書に開示および示されるシステムと同様である。
【００９３】
図２Ａ、図２Ｂ、図１２Ａ、および１２Ｂを参照すると、一局面において、ＩｏＴネットワークシステムは、少なくとも１つのネットワークリンクカード１５３および１６６（上述のように、プラットフォームエンジン１０１は、ネットワークリンクカード１８０も有し得る）と、製造時暗号化フィクスチャ１２１９と、ＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス登録認証マネージャコントローラ１９９（エンジンコア１０１ＥＣおよびエンジン保管庫１０１ＥＶのうちの１つまたは複数等のプラットフォームエンジン１０１の１つまたは複数の構成要素（もしくはプラットフォームエンジン１０１の任意の適当な他の構成要素）、および／または封止され隔離された保管庫１９０Ｖ等の管理モジュール１９０の１つまたは複数の構成要素（もしくは管理モジュール１９０の任意の適当な他の構成要素）を含み得る）を有する。少なくとも１つのネットワークリンクカード１５３、１６６、および１８０の各々は、ＩｏＴプラットフォームシステム１００のＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス１１０のうちの対応する少なくとも１つにそれぞれインターフェース接続し、広域ネットワークＷＡＮを介してＩｏＴプラットフォームシステム１００の各それぞれの少なくとも１つのＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス１１０をプラットフォームエンジン１０１等のＩｏＴプラットフォームシステム制御エンジンに通信可能にリンクするように構成される。
【００９４】
製造時暗号化フィクスチャ１２１９は、任意の適当な態様で、製造時に、各少なくとも１つのネットワークリンクカード１５３、１６６にそれぞれ結合して暗号化し、各それぞれのネットワークリンクカード１５３、１６６の製造時に、各それぞれのネットワークリンクカード１５３、１６６上に、および一意に対応して暗号化鍵セット１２０３を形成するように構成される。一局面において、暗号化フィクスチャ１２１９は、暗号化時に、任意の適当な有線もしくは無線の接続を介して少なくとも１つのネットワークリンクカード１５３、１６６に結合するように構成され得る。
【００９５】
ＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス登録認証マネージャコントローラ１９９は、ＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス１１０のうちの各少なくとも１つを、それぞれの開始および登録時において、ＩｏＴプラットフォームシステム１００内のＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス１１０のうちの各少なくとも１つのＩｏＴプラットフォーム（システム制御）エンジン１０１によって、ＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス１１０のうちの各少なくとも１つの対応するリンクカード１５３、１６６の製造時に形成された暗号化鍵セット１２０２に対するセキュア対称暗号化鍵セット１２０２Ｓに基づいて、それぞれ登録し、および認証し、ＩｏＴエッジデバイス１２０およびＩＯＴネットワークノードデバイス１１０のうちの各少なくとも１つのそれぞれをＩｏＴプラットフォームシステム１００に搭載する認証を機能させるように構成される。一局面において、認証は、ＩｏＴネットワークシステム１００Ｓ内におけるデバイス１２０および１１０のＩｏＴネットワークプラットフォーム（システム制御）エンジン１０１による登録時に機能し、実質的にこれと同時に機能する。暗号化鍵セット１０３は、少なくとも、各少なくとも１つのネットワークリンクカード１５３および１６６の製造時に各少なくとも１つのネットワークリンクカード１５３および１６６の暗号解読ユニット１１０３ＣＭに配置される。
【００９６】
さらに図２Ａ、図２Ｂ、図１２Ａ、および図１２Ｂ、ならびに図１３Ａおよび図１３Ｂを参照すると、ＩｏＴプラットフォームシステム１００は、ＩｏＴプラットフォームシステム暗号化鍵セキュリティシステム１２９０を含む。ＩｏＴプラットフォームシステム暗号化鍵セキュリティシステム１２９０の稼働は、ＩｏＴプラットフォームシステム１００から分離されて封止されるようにセキュアストレージ１９０ＫＳ（図１３Ａ、ブロック１３００）に記憶される少なくとも１つの主要もしくは共通（例えば、マスタ）鍵ＭＫ１−ＭＫを含む共通暗号化鍵セット１２０４に基づき得る。一局面において、セキュアストレージ１９０ＫＳは、管理モジュール１９０の鍵生成ユニット１９０Ｋに含まれ、他の局面において、セキュアストレージ１９０ＫＳは、ＩｏＴプラットフォームシステム１００から分離および隔離される任意の適当なストレージであり得る。４つの共通鍵ＭＫ１−ＭＫ４が示されるが、他の局面において、４つよりも大きいか、または小さい数の共通鍵が設けられ得る。鍵生成ユニット１９０Ｋは、１回のみプログラム可能なストレージであり得て、鍵生成ユニット１９０Ｋのコントローラ／プロセッサ１９０ＫＣによって読取られるか、または変更され得ない。
【００９７】
ＩｏＴプラットフォームシステム１００によって構成されるＩｏＴプラットフォームシステム暗号化鍵セキュリティシステム１２９０は、一局面において、セキュアされた暗号化通信リンク１２３５を介してＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１に通信可能に結合されるＩｏＴデバイス暗号化鍵生成端１２２０を有する。ＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１は、ＩｏＴプラットフォームシステム１００上で開始されるＩｏＴデバイス１１０および１２０を登録し、認証するように配置される１つまたは複数のプラットフォームエンジン１０１の一部であり得る。セキュアされた暗号化通信リンク１２３５は、ＩｏＴデバイス暗号化鍵生成端１２２０において生成される上位層１２５０ＬＳ１の暗号化鍵セット１２０２、およびＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１において生成される上位層１２５０ＬＳ２の暗号化鍵セット１２０３を用いて、階層的暗号化鍵セット層配置１２５０を定義し、上位層１２５１ＬＳ１および１２５０ＬＳ２が従属する階層的暗号化鍵セット層配置１２５０の主要層１２５０ＬＰを構成する共通暗号化鍵セット１２０４（例えば、共通鍵ＭＫ１−ＭＫ４）に基づく。
【００９８】
暗号化鍵セキュリティシステム１２９０のＩｏＴデバイス暗号化鍵生成端１２２０は、例えばそれぞれの暗号化フィクスチャ１２１９に含まれる暗号化鍵生成プロセッサ１２００によって定義され、ＩｏＴエッジデバイス１２０およびＩｏＴ通信ノードデバイス１１０の製造時にＩｏＴエッジデバイス１２０およびＩｏＴ通信ノードデバイス１１０に暗号化鍵セット１２０２に暗号化するように配置される。
【００９９】
鍵生成ユニット１９０Ｋなどの他の暗号化鍵生成プロセッサ１９０ＫＣは、暗号化鍵セット１２０３をＩｏＴプラットフォームエンジン１０１に提供する暗号化鍵生成入力を与えるように配置される、または通信可能に結合される。他の暗号化鍵生成プロセッサ１９０ＫＣは、ＩｏＴデバイス暗号化鍵生成端１２２０およびＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１が暗号化鍵セキュリティシステム１２９０の実質的に対称な鍵生成端１２３０ＳＭを形成するように、暗号化鍵セキュリティシステムのＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１を定義する。ＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１において生成される暗号化鍵セット１２０３の各々は、ＩｏＴデバイス暗号化鍵生成端１２２０において生成される暗号化鍵セット１２０２の各対応する暗号化鍵セット１２０２に対する暗号化鍵１２０２Ｓの対称セットに少なくとも一部が基づき得る。
【０１００】
ＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１で生成される暗号化鍵セット１２０３の各々は、独立して生成される独立鍵１２１７と、少なくとも１つの他の鍵１２１８（例えば、デバイス通信鍵）とを含む。暗号化鍵１２０２Ｓの対称セットに一部が基づく独立鍵１２１７および少なくとも１つの他の鍵１２１８は、ＩｏＴプラットフォームシステム１００のＩｏＴプラットフォームエンジン暗号化鍵生成端１２０１とＩｏＴデバイス暗号化鍵生成端１２２０とを接続する通信リンクの生成端間の暗号化のセキュリティを確保する階層的暗号化鍵セット層配置１２５０の他の上位鍵セット層１２５０ＬＬを定義する。独立鍵１２１７は、各それぞれのＩｏＴエッジデバイス１２０および／またはＩｏＴネットワークノードデバイス１１０に固有に対応する。少なくとも１つの他の鍵１２１８は、ＩＯＴデバイス暗号化鍵生成端１２２０において生成される暗号化鍵セット１２０２の各対応する暗号化鍵セット１２０２に対する暗号化鍵１２０２Ｓの対称セットに少なくとも一部が基づいている。独立鍵１２１７は、それぞれのＩｏＴエッジデバイス１２０もしくはそれぞれのＩｏＴネットワークノードデバイス１１０（本明細書中において、まとめてＩｏＴデバイス１１０、１２０という）についてのセッション鍵１２１７Ｓを定義し、広域ネットワークＷＡＮを介したＩｏＴプラットフォームシステム１００のＩｏＴプラットフォームエンジン１０１からのセッション鍵暗号化通信ＳＣＯＭＭによりＩｏＴデバイス１１０、１２０に入力される。セッション鍵暗号化通信ＳＣＯＭＭは、少なくとも１つの他の鍵１２１８に基づいており、セッション鍵暗号化通信ＳＣＯＭＭの通信改ざん表示１２５８Ａ（有効性改ざん表示１２８と同じか、または同じでない）を提供する少なくとも１つの有効性演算子１２５７Ａ（有効性演算子１２５７と同じか、または同じでない）を含む。
【０１０１】
それぞれのＩｏＴデバイス１１０、１２０に入力されるセッション鍵１２１７Ｓを具現化するセッション鍵暗号化通信ＳＣＯＭＭは、ＩｏＴプラットフォームシステム１００内のそれぞれのＩｏＴデバイス１１０、１２０の開始についてのＩｏＴプラットフォームエンジン１０１の登録時、または初期応答において機能する。ＩｏＴプラットフォームエンジン１０１からそれぞれのＩｏＴデバイス１１０、１２０へのセッション鍵暗号化通信ＳＣＯＭＭの初期応答、およびそれぞれのＩｏＴデバイス１１０、１２０におけるセッション鍵暗号化通信ＳＣＯＭＭからのセッション鍵１２１７Ｓの暗号化および入力は、本明細書中において詳細に記載されるように、それぞれのＩｏＴデバイス１１０、１２０の認証およびＩｏＴプラットフォームシステム１００に対するそれぞれのＩｏＴデバイス１１０、１２０の搭載を機能させる。
【０１０２】
一局面において、ＩｏＴデバイス暗号化鍵生成端１２２０において生成される上位層１２５０ＬＳ１の暗号化鍵セット１２０２、およびＩＯＴプラットフォームエンジン暗号化鍵生成端１２０１において生成される上位層１２５０ＬＳ２の暗号化鍵セット１２０３は、少なくとも１つの対称暗号化鍵ＳＫＥＹおよび少なくとも１つの非対称暗号化鍵ＡＫＥＹの組合せを含む。
【０１０３】
ＩｏＴデバイス暗号化鍵生成端１２２０において生成される暗号化鍵セット１２０２は、共通暗号化鍵セット１２０４およびＩＯＴデバイス暗号化鍵生成端１２２０への暗号化された入力１２５５からの情報に基づく。これらの暗号化鍵セット１２０２は、暗号解読ユニット１１０３ＣＭ、１６２ＣＭへ渡されるデータを暗号化および復号化することのみに使用され得る（例えば、このハードウェア隔離により、ＩｏＴデバイス１１０、１２０に悪意のファームウェアをインストールすることによって遠隔的にデバイス鍵セット１２０２が盗まれないことを確保し得る）。デバイス鍵セット１２０２の固有性により、研究室の環境において悪意の攻撃者がＩｏＴデバイス１１０、１２０へ物理的にアクセスした場合に、その悪意の攻撃者が物理的に所有されるＩｏＴデバイス１１０、１２０の鍵を盗むことしかできないことを確保し得る（なぜなら、各ＩｏＴデバイス１１０、１２０は固有の鍵セット１２０２を有するためである）。暗号化された入力１２５５は、共通暗号化鍵セット１２０４に基づいており、少なくとも所定のＩｏＴデバイス製造識別特性１２５６と、暗号化された入力１２５５の改ざん表示１２５８を有効化する有効性演算子１２５８とを含む。所定のＩｏＴデバイス製造識別特性１２５６は、ＩｏＴデバイス暗号化鍵生成端１２２０での暗号化鍵セット１２０２の生成における基礎を成し、暗号化鍵セット１２０２の各々は、それぞれのリンクカード１５３、１６６の製造時における各所定のＩｏＴエッジデバイス１２０および各所定のＩｏＴ通信ノードデバイス１１０のそれぞれのリンクカード１５３、１６６に対して暗号化し、および一意に対応する。有効性演算子１２５７は、暗号化された入力１２５５の有効性窓（もしくは終了）、ならびに、ＩｏＴデバイス暗号化鍵生成端１２２０における暗号化された入力１２５５に基づいて生成される暗号化鍵セット１２０２の生成、および暗号化された入力に基づく製造時にそれぞれのリンクカード１５３、１６６への暗号化セット１２０２の各々に暗号化するための有効性窓（もしくは終了）を定義する。
【０１０４】
一局面において、暗号化フィクスチャ１２１９の各々は、共通鍵ＭＫ１−ＭＫ４から得られるそれぞれの固有のフィクスチャ鍵ＦＫ１−ＦＫｎと、それぞれの暗号化フィクスチャ１２１９−１２１９ｎの固有のＭＡＣアドレスとを含む。例えば、例示的な６バイトＭＡＣアドレス０００４ａ３８１０１２３である所定の暗号化フィクスチャ１２１９ＭＡＣアドレスと共通鍵ＭＫ１−ＭＫ４のセットにより、鍵生成ユニット１９０Ｋは、フィクスチャ鍵ＦＫ１−ＦＫｎを生成するように構成される（図１３Ａ、ブロック１３０２）。フィクスチャ鍵ＦＫ１−ＦＫｎは、ＭＡＣアドレスを右詰めゼロパディングして例えば０００４ａ３８１０１２３００００００００００等の１６バイトの平文テキストを形成することによって生成される。鍵生成ユニット１９０Ｋは、任意の適当な暗号化アルゴリズム（例えば、カウンタ、電子コードブック、および暗号フィードバックモードなどの任意の適当なモードにおけるＡＥＳ−１２８）を用いて、共通鍵ＭＫ１−ＭＫ４の各々により平文テキストを暗号化し（例えば、鍵ＳＲＣ１−４を指す）、それぞれの共通鍵ＭＫ１−ＭＫ４の各々に対応する１６バイト暗号テキストを作成するように構成される。例えば、共通鍵ＭＫ１の１６バイト暗号テキストは、１ｆ７ｃ４ｄ０８４３２ｆａ５ａ１ｅｃｅ０ａａ０２３４９５０３ｄであり、１６バイト暗号テキストは、他の３つの共通鍵ＭＫ２−ＭＫ４の各々について生成され、ＭＡＣアドレス０００４ａ３８１０１２３を有する暗号化フィクスチャ１２１９についてのフィクスチャ鍵ＦＫ１のそれぞれのセットが作成される。これらのフィクスチャ鍵ＦＫ１−ＦＫｎは、暗号化された入力１２５５に含まれ得る。
【０１０５】
暗号化された入力１２５５は、任意の適当な入力生成位置１２９９からＩｏＴデバイス暗号化鍵生成端１２２０へ繋がる任意の適当なコンピュータ読み取り可能記憶媒体１２６０上に配置され得る。暗号化された入力１２５５は、入力生成位置１２９９におけるコンピュータ読み取り可能記憶媒体に配置され、入力生成位置１２９９は、ＩＯＴデバイス暗号化鍵生成端１２２０とは別個であり離れている。一局面において、コンピュータ読み取り可能記憶媒体は、ユニバーサルシリアルバスストレージデバイス、もしくは任意の適当な他の固体（solid state）ストレージデバイスである。他の局面において、暗号化された入力１２５５は、広域ネットワークＷＡＮ等の任意の適当な有線もしくは無線ネットワークを通じてＩｏＴデバイス暗号化鍵生成端１２２０に繋がり得る。
【０１０６】
図２Ａ、図２Ｂ、図１２Ａ、図１２Ｂ、図１３Ａ、および図１３Ｂを参照し、それぞれのＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎに暗号化される鍵セット１２０２の生成について説明する。一局面において、ＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎは、任意の適当な契約製造者によって製造される。この契約製造者は、ＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎを試験するように、ファームウェア（ネットワークリンクカード１５３および１６６に含まれ得る）をＩｏＴデバイス１１０、１２０にロードし得る。しかしながら、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎの改ざんを減少させるために、それぞれのＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎへの鍵セット１２０２の暗号化の準備ができるまで、契約製造者には鍵セット１２０２が与えられない。例えば、ＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎの製造実行前に、所定のＩｏＴデバイス１２５６および有効性演算子１２５８が、所定のＩｏＴデバイス構築順序について、例えば、管理モジュール１９０の封止された隔離保管庫１９０Ｖのプロセッサ１９０ＶＰによって生成され、検索される（図１３、ブロック１３０５）。ＩｏＴデバイス製造識別特性鍵１２５６Ｋは、例えば、所定のＩｏＴデバイス製造識別特性１２５６に基づき、プロセッサ１９０ＶＰによって生成され得る（図１３Ａ、ブロック１３０８）。一局面において、所定のＩｏＴデバイス製造識別特性１２５６は製造バッチ番号であり、ＩｏＴデバイス製造識別特性鍵１２５６Ｋは製造バッチ番号から生成されるバッチ鍵であるが、他の局面において、任意の適当な製造識別情報／特性が使用され得る。暗号化された入力１２５５（例えば、ラップされたデータの形態）は、少なくともＩｏＴデバイス製造識別特性鍵１２５６Ｋ、有効性演算子１２５７、ならびにＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎのバッチを作成するために使用される暗号化フィクスチャ１２１９のそれぞれの固有のフィクスチャ鍵ＦＫ１−ＦＫｎを使用して、プロセッサ１９０ＶＰによって生成され得る（図１３Ａ、ブロック１３１０）。暗号化された入力１２５５の一部が改ざんされた場合、この改ざんは、期限が切れると暗号化された入力１２５５の使用が有効でなくなる時間において有効性窓であり得る有効性演算子１２５７を使用して検知され得る。
【０１０７】
暗号化された入力１２５５は、コンピュータ読み取り可能記憶媒体１２６０と繋がるなど、任意の適当な態様で入力生成位置１２９９からＩｏＴデバイス暗号化鍵生成端１２２０（図１３Ａ、ブロック１３１５）に提供される。ＩｏＴデバイス暗号化鍵生成端１２２０は、例えば、暗号化フィクスチャ１２１９において、暗号化された入力１２５５を受信するように構成され、有効化された場合、暗号化された入力１２５５は、暗号化フィクスチャ１２１９をロック解除し（例えば、動作可能とする）、暗号化フィクスチャ１２１９を用いてＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎの生成／製造を可能とする。暗号化フィクスチャ１２１９は、暗号化された入力１２５５を認証するために、暗号化された入力１２５５を暗号化するように構成される。例えば、暗号化デバイス１２１９は、暗号化された入力を復号化することにより、製造識別特性鍵１２５６Ｋを得る（図１３Ａ、ブロック１３１８）。例えば、製造識別特性鍵１２５６Ｋが、暗号化フィクスチャ１２１９によって生成される対応の製造識別特性鍵１２５６ＫＣと一致する場合、ＩｏＴデバイス１１０Ａ−１１０ｎおよび１２０Ａ−１２０ｎの製造のために暗号化された入力が認証され、暗号化フィクスチャ１２１９が起動される。
【０１０８】
本明細書中において説明されるように、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎは、暗号解読ユニット１１０３ＣＭ、１６２ＣＭ（図１３Ｂ、ブロック１３１９）等のそれぞれのセキュアメモリを有する。暗号解読ユニット１１０３ＣＭ、１６２ＣＭは、一般的な出力レジスタではなく、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎの後続の稼働のために使用され得るが、それぞれのＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎのプロセッサによって読み取られ得ない。暗号化フィクスチャ１２１９は、例えば、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎのハードウェアを試験するために製造されるＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎのバッチ内でＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎと通信する。暗号化フィクスチャは、それぞれのＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎのＭＡＣアドレス１２７ＭＡをそれぞれのＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎから読み取ると共に、任意の適当なメモリ（例えば、製造識別特性１２５６がユーザ入力であり得る暗号化フィクスチャ１２１９のメモリ等）から製造識別特性１２５６（図１３Ａにおけるブロック１３２０、図１３Ｂにおけるブロック１３３０）を読み取る。暗号化フィクスチャ１２１９は、所定の数（例えば、約４つ、または他の局面において、４つより大きいか、または小さい）の暗号化鍵を有するデバイス鍵セット１２０２もしくはマスター鍵（図１３Ａにおけるブロック１３２２、図１３Ｂにおけるブロック１３２３）を決定する。本明細書中において説明されるように、鍵セット１２０２は、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎを製造／暗号化する暗号化フィクスチャ１２１９のフィクスチャ鍵セットＦＫ１−ＦＫｎ、製造識別特性鍵、およびそれぞれのＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎのＭＡＣアドレスから決定される。また、本明細書中において説明されるように、ＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎは、暗号解読ユニット１１０３ＣＭ、１６２ＣＭ等、それぞれのセキュアメモリを有し、デバイス鍵セット１２０２は、それぞれのＩｏＴデバイス１１０Ａ−１１０ｎ、１２０Ａ−１２０ｎ（図１３Ａ、ブロック１３２５）のセキュアメモリに暗号化された状態で保管される。
【０１０９】
製造される各ＩｏＴデバイス１１０、１２０について、例えば、ＩｏＴプラットフォームエンジン鍵生成端１２０１でのオフライン稼働（もしくはオンライン稼働）において、セッション鍵ＳＫ（例えば、セッション鍵１２１７Ｓ）、暗号化セッション鍵ＥＳＫ、ラップセッション鍵ＷＥＳＫ、乱数Ｒ、乱数の暗号化導関数ＥＲ、および巡回冗長符号（ＣＲＣ）が生成される（図１３Ｂ、ブロック１３３５）。初期化ベクトルＩＶは、例えば、ＩｏＴプラットフォームエンジン鍵生成端１２０１において生成され、少なくとも１つの有効性演算子１２５７または１２５７Ａから得られる。暗号化導関数ＥＲは、乱数Ｒおよび初期化ベクトルＩＶから生成される巡回冗長符号（ＣＲＣ）であり得る。一局面において、セッション鍵ＳＫは独立鍵を構成する乱数であり、暗号化セッション鍵ＥＳＫはそれぞれのＩｏＴデバイス１１０、１２０鍵セット１２０２およびセッション鍵における少なくとも第１のデバイス鍵から生成され、ラップされたセッション鍵ＷＥＳＫはそれぞれのＩｏＴデバイス１１０、１２０鍵セット１２０２および暗号化セッション鍵ＥＳＫにおける少なくとも第２のデバイス鍵から生成される。暗号化導関数ＥＲは、それぞれのＩｏＴデバイス１１０、１２０鍵セット１２０２における少なくとも第３のデバイス鍵セットから生成される暗号フィードバックモード暗号化であり得る。一局面において、対称鍵セット１２０２Ｓは、各それぞれのＩｏＴデバイス１１０、１２０について、暗号化セッション鍵ＥＳＫ、ラップされたセッション鍵ＷＥＳＫ、乱数Ｒ、および乱数Ｒの暗号化導関数のうちの１つまたは複数および巡回冗長符号（ＣＲＣ）を生成するために使用される。認識されるように、階層的暗号化鍵セット層配置１２５０および／またはセッション鍵ＳＫ鍵セット（例えば、ＳＫ、ＥＳＫ、ＷＥＳＫ、Ｒ、ＥＲ、ＩＶ、および／またはＣＲＣ）は、ＩｏＴプラットフォームシステム１００へのハッキングを検知するために提供される。一局面において、他世代（other epochs:ＩＶｓ）のための追加の乱数Ｒおよび暗号化導関数ＥＲの対も、保管され得て、より長い「鍵有効」期間をもたらし得る（例えば、より長い有効性演算子１２５７、１２５７Ａ）。
【０１１０】
少なくともセッション鍵ＳＫ、暗号化セッション鍵ＥＳＫ、ラップされたセッション鍵ＷＥＳＫ、乱数Ｒ、乱数の暗号化導関数ＥＲ、および巡回冗長符号（ＣＲＣ）が、ネットワークリンクカード１８０および／または分散型ストレージ１８８（例えば、エンジン保管庫１０１ＥＶ）等、１つまたは複数のプラットフォームエンジン１０１の任意の適当なデータベース／メモリに保管され、それぞれのＩｏＴデバイス１１０、１２０へのセッション鍵ＳＫの安全な送信がもたらされ得る。
【０１１１】
図２Ａ、図２Ｂ、図１２Ａ、図１２Ｂ、および図１４を参照し、ＩｏＴプラットフォームシステム１００への新しいＩｏＴデバイス１１０、１２０の搭載について説明する。製造の後、ＩｏＴデバイス１１０、１２０が現場に設置される。一度設置されると、ＩｏＴデバイス１１０、１２０は、ＩｏＴプラットフォームシステム１００上に登録および認証される。ＩｏＴデバイス１１０、１２０を登録するために、ＩｏＴデバイス１１０、１２０がオン状態に切り替えられる（図１４、ブロック１４００）。ＩｏＴデバイスがＩｏＴエッジデバイス１２０である場合、ＩｏＴエッジデバイス１２０は利用可能なＩｏＴネットワークノードデバイス１１０についてスキャンする。ＩｏＴデバイスがＩｏＴネットワークノードデバイス１１０である場合、ＩｏＴネットワークノードデバイス１１０は利用可能なプラットフォームエンジン１０１についてスキャンする。ＩｏＴデバイス１１０、１２０は、乱数（例えば、ノンス）を生成し、そのＭＡＣアドレスおよびノンスをプラットフォームエンジン１０１に送信する（図１４、ブロック１４０５）。ＭＡＣアドレスおよびノンスは、ＩｏＴデバイス１１０、１２０の登録、ＩｏＴプラットフォームシステム１００に対する初期化、およびＩｏＴデバイス１１０、１２０の認証を稼働／有効化する１つまたは複数のプラットフォームエンジン１０１の選択された部分に送信され得る。
【０１１２】
プラットフォームエンジン１０１は、ＩｏＴデバイス１１０、１２０のＭＡＣアドレスによってＩｏＴデバイス１１０、１２０を参照し、ＩｏＴデバイス１１０、１２０を登録および認証する（図１４、ブロック１４１０）。プラットフォームエンジン１０１は、ＭＡＣアドレスについてのデバイスアクタを作成し、エンジン保管庫１０１ＥＶからセッション鍵ＳＫを検索する（図１４、ブロック１４１５）。一局面において、デバイスアクタは、ＩｏＴエッジデバイス１２０を示す現在のセッション鍵ＳＫをエンジン保管庫１０１ＥＶから検索し得る。プラットフォームエンジン１０１は（例えば、デバイスアクタを通じて）ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮを作成する（少なくとも巡回冗長符号ＣＲＣ、ラップされた暗号化セッション鍵ＷＥＳＫ、パケット配列番号ＰＳＮ、およびノンスから作成され、ＰＳＮはＩｏＴデバイス１１０、１２０の最後に使用されるパケット配列番号である）（図１４、ブロック１４２０）。一局面において、ＩｏＴエッジデバイス１２０のためのデバイス通信鍵１２１８の少なくとも１つの鍵を使用して、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮが作成される。一局面において、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮの生成は、保管庫インスタンス内部のＸＯＲマスクを用いて行われる。
【０１１３】
プラットフォームエンジン１０１は、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮをＩｏＴデバイス１１０、１２０に送信する（図１４、ブロック１４２５）。ＩｏＴデバイスがＩｏＴエッジデバイス１２０である場合、ＩｏＴエッジデバイスは、現在のＩｏＴプラットフォームシステム１００タイムスタンプをＩｏＴネットワークノードデバイス１１０から検索し、初期化ベクトルＩＶ、ラップされた暗号化セッション鍵ＷＥＳＫ、パケット配列番号ＰＳＮ、およびノンスのうちの１つまたは複数を得る（図１４、ブロック１４３０）。ＩｏＴデバイスがＩｏＴネットワークノード１１０である場合、ＩｏＴネットワークノード１１０は、現在のＩｏＴプラットフォームシステム１００タイムスタンプをプラットフォームエンジン１０１から検索し、初期化ベクトルＩＶ（例えば、有効性演算子）、ラップされた暗号化セッション鍵ＷＥＳＫ、パケット配列番号ＰＳＮ、およびノンスのうちの１つまたは複数を得る（図１４、ブロック１４３０）。ＩｏＴデバイス１１０、１２０は、デバイス鍵セット１２０２のうちの少なくとも１つの鍵を使用してプラットフォームエンジン１０１によって生成されるＸＯＲマスクを計算し、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮをアンラップし得る。例えば、ＩｏＴデバイス１１０、１２０は、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮをアンラップし、暗号化導関数ＥＲを計算する。ここで、暗号化導関数ＥＲは、初期化ベクトルＩＶがプラットフォームエンジン１０１によって許容される所定の時間世代内にある場合にのみ正しいものとなる。少なくともＩｏＴデバイス１１０、１２０によって決定されたノンスがＩｏＴデバイス１１０、１２０によって生成されたノンスと一致する場合、ＩｏＴデバイス１１０、１２０は認証され（１４３２）、ラップされた暗号化セッション鍵パケット配列番号ＷＥＳＫＰＳＮは、ラップされた暗号化セッション鍵ＷＥＳＫ、パケット配列番号ＰＳＮ、およびノンスとなる。認証がない場合、認証処理は図１４のブロック１４１０に戻る。
【０１１４】
ひとたびＩｏＴデバイス１１０、１２０が認証されると、ＩｏＴデバイス１１０、１２０は、ラップされた暗号化セッション鍵ＷＥＳＫをアンラップする（図１４、ブロック１４３５）。ラップされた暗号化セッション鍵ＷＥＳＫのアンラップが失敗した場合、その失敗は、誤った世代および登録が再び行われるとハッキング事象もしくはセッション鍵ＳＫを示し得る（例えば、図１４、ブロック１４１０に戻る）。ラップされた暗号化セッション鍵ＷＥＳＫのアンラップが成功した場合、ＩｏＴデバイス１１０、１２０は、ノンスをＩｏＴデバイスによって生成されたノンスと比較し、ノンスが一致しない場合、ハッキングの試みおよび登録が再び行なわれたことを示し得る（例えば、図１４、ブロック１４１０に戻る）。ノンスが一致する場合、ＩｏＴデバイスは、ラップされた暗号化セッション鍵ＷＥＳＫをアンラップすることによって、暗号化セッション鍵ＥＳＫの判定を試みる（図１４、ブロック１４３５）。ラップされた暗号化セッション鍵ＷＥＳＫのアンラップが失敗した場合、登録が再び試みられる（例えば、図１４、ブロック１４１０に戻る）。ラップされた暗号化セッション鍵ＷＥＳＫのアンラップが成功した場合、ＩｏＴデバイス１１０、１２０は、パケット配列番号ＰＳＮをそのパケット配列番号として採用し、暗号化セッション鍵ＥＳＫをＩｏＴデバイス１１０、１２０の暗号解読ユニット１１０３ＣＭ、１６２ＣＭにロードし、ＩｏＴデバイス１１０、１２０の鍵セット１２０２のうちの少なくとも１つの鍵を使用してセッション鍵ＳＫが暗号化セッション鍵ＥＳＫから得られる（図１４、ブロック１４４０）。セッション鍵ＳＫは暗号解読ユニット１１０３ＣＭ、１６２ＣＭに保管され、ＩｏＴデバイス１１０、１２０のコントローラ１５１Ｃ、１５２Ｃ、１６２によって読み取れ得ない。
【０１１５】
セキュアチャネルは、ＩｏＴエッジデバイス１２０とＩｏＴネットワークノードデバイス１１０との間に（もしくはＩｏＴネットワークノードデバイス１１０からプラットフォームエンジン１０１へ）確立され、暗号解読ユニット１１０３ＣＭ、１６２ＣＭがオン状態に切り替えられる（図１４、ブロック１４５０）。ＩｏＴデバイス１１０、１２０は、鍵採用メッセージ（セッション鍵を含む）をＩｏＴデバイス１１０、１２０からＩｏＴネットワークノードデバイス１１０のデバイスアクタ（ＩｏＴデバイスがＩｏＴエッジデバイス１２０である場合）もしくはプラットフォームエンジン１０１のアセットアクタ（ＩｏＴデバイスがＩｏＴネットワークノードデバイス１１０である場合）に送信する（図１４、ブロック１４５０）。セッション鍵は、ＩｏＴネットワークノードデバイス１１０（ＩｏＴデバイスがＩｏＴエッジデバイス１２０である場合）またはプラットフォームエンジン１０１（ＩｏＴデバイスがＩｏＴネットワークノードデバイス１１０である場合）によって有効化され、セキュアチャネルが維持される（図１４、ブロック１４５５）。セッション鍵が有効化されない場合、認証処理は図１４のブロック１４１０に戻る。
【０１１６】
一局面において、ＩｏＴエッジデバイス１２０を認証するための認証デバイスは、ＩｏＴネットワークノードデバイス１１０であり得て、ＩｏＴネットワークノードデバイス１１０は、初期化時に接続するデフォルト通信モジュール１７３を認識している。認証デバイスがＩｏＴネットワークノードデバイス１１０である場合、ＩｏＴネットワークノードデバイス１１０のネットワークリンクカード１６６および暗号解読ユニット１６２ＣＭは、上記と同様の方法でノンスを生成してＩｏＴエッジデバイス１２０を認証するために使用される。
【０１１７】
一局面において、ＩｏＴプラットフォームシステム１００は、上述のように、任意の適当な暗号化モードを使用して、ＩｏＴプラットフォームシステム１００のデバイス間の通信を暗号化する。一局面において、メッセージの統合性および認証のために、メッセージ統合性コード（ＭＩＣ）も使用される。例示のみを目的として、一局面において、暗号化モードは、１２８ビットカウンタおよびペイロードを使用するカウンタ暗号化モードであり得る。ペイロードの一部は、内在するメッセージ統合性コードのためにファイリングされ得る。一局面において、ＩｏＴプラットフォームシステム１０１の暗号化は、少なくともプロトコル識別子（ＩＤ）、ＩｏＴデバイス１１０、１２０のＭＡＣアドレス、パケット配列番号ＰＳＮ、および巡回冗長符号（ＣＲＣ）を含む。ひとたび暗号化モードが形成されると、暗号化モードは、パケットの残り（メッセージ統合性コード以外）を暗号化するために使用され得る。一局面において、暗号解読ユニット１１０３ＣＭ、１６２ＣＭは、一度に所定数のバイト、例えば、一度に約１６バイト（他の局面において、バイトの所定数は、約１６バイトより大きいもしくは小さいものとなり得る）だけパケットデータを暗号化するために、暗号化モードおよびセッション鍵ＳＫを使用するように構成される。各所定の数のバイトを暗号化した後、パケットにファイリングされたカウンタは、増分され、他の所定数のバイトが暗号化される。ひとたびデータの全パケット長さが暗号化されると、メッセージ統合性コード（ＭＩＣ）がチェイス鍵（ＥＳＫ、暗号化データ）を用いる、などにより任意の適当な態様で計算され、ペイロードのメッセージ統合性コードフィールドに挿入される。すべてのカウンタ、メッセージ統合性コード、およびペイロードが、任意の適当な通信プロトコルおよび任意の適当な通信方法（例えば、無線周波数もしくは他の任意の適当な送信方法／タイプ）を用いて、例えば、ＩｏＴエッジデバイス１２０からＩｏＴネットワークノードデバイス１１０へ送信される。
【０１１８】
入ってくるパケットは、プラットフォームエンジン１０１によって受信され、検査される。プラットフォームエンジン１０１は、カウンタ巡回冗長符号を計算し、データパケットのカウンタブロックの統合性を照合する。巡回冗長符号の不一致が起こった場合、データパケットは破棄され得る。プラットフォームエンジン１０１は、ＩｏＴエッジデバイス１２０のＭＡＣアドレスを抽出し、ＭＡＣアドレスを使用してＩｏＴエッジデバイス１２０のセッション鍵履歴を参照する。暗号化セッション鍵はエンジン保管庫１０１ＥＶから検索され、チェイス鍵（ＥＳＫ、暗号化データ）が決定され、プラットフォームエンジン１０１によって受信されるメッセージ統合性コードと比較される。メッセージ統合性コードが一致しない場合、パケットは破棄され得る。巡回冗長符号およびメッセージ統合性コードの両方が一致する場合、プラットフォームエンジン１０１は、ＩｏＴエッジデバイス１２０のセッション鍵ＳＫを使用して、標準的なカウンタモード暗号化手順においてペイロード領域を得るために使用されるデータパケットのカウンタフィールドを暗号化する。そして、プラットフォームエンジンは、復号化されたＩｏＴエッジデバイス１２０のメッセージおよびデータを保持する。プラットフォームエンジン１０１は、自己のメッセージを生成するなどの任意の適当な態様でＩｏＴエッジデバイス１２０メッセージに応答し、ＩｏＴエッジデバイスのセッション鍵ＳＫを使用して、例えば、カウンタモード暗号化を用いてメッセージを暗号化する。
【０１１９】
図２Ａ、図２Ｂ、図１５、図１６、および図２１を参照すると、ＩｏＴプラットフォームシステム１００の初期化の前に、所定数のサーバ１５００Ａ−１５００Ｃ（ここでは、３つのサーバが設けられているが、他の局面においては、３つのサーバよりも大きいもしくは小さい数のサーバが設けられ得る）に対して隔離保管庫１９０Ｖクラスタが提供される（図２１、ブロック２１００）。これらのサーバ１５００Ａ−１５００Ｃは、インターネットから完全に隔離され、インターネットからの隔離保管庫１９０Ｖクラスタに対する遠隔的なハッキング攻撃から保護される。所定数の管理者ＡＤＭ１−ＡＤＭ５も選択される。５名の管理者ＡＤＭ１−ＡＤＭ５が図１５に示されているが、他の局面においては、５名より大きいもしくは小さい数であり得る。１つまたは複数のマスター鍵ＭＳＫ１−ＭＳＫ５のセットが作成され（図２１、ブロック２１０５）、遠隔の場所１６００においてエキュアされる（図２１、ブロック２１１０）。例えば、１つまたは複数のマスター鍵ＭＳＫ１−ＭＳＫ５の各々は、任意の適当なパスワードおよびハードウェア暗号化を用いて暗号化されたそれぞれのセキュアユニバーサルシリアルバスデバイス１５１０−１５１４（または他の適したコンピュータ読み取り可能媒体）に保管される。１つまたは複数のマスター鍵ＭＳＫ１−ＭＳＫ５のセットは、隔離保管庫１９０Ｖクラスタを封止する。一局面において、管理者の各々にはそれぞれのマスター鍵ＭＳＫ１−ＭＳＫ５が割り当てられ、管理者の大半は隔離保管庫１９０Ｖの封止を解くことを望み、１名以上の管理者は、隔離保管庫１９０Ｖを封止することを望む。一局面において、サーバ１５００Ａ−１５００Ｃは、シリアルポート（もしくは他の適した通信可能接続）を介して情報を受信するように構成される。ここで、他のサーバ１５００Ｄは、サーバ１５００Ａ−１５００Ｃに結合され、遠隔のセキュアされた位置（例えば、セキュアユニバーサルシリアルバスデバイス１５１０−１５１４）と隔離保管庫１９０Ｖクラスタとの間にインターフェースを提供する。サーバ１５００Ｄは、感染した安全ユニバーサルシリアルバス（ＵＳＢ）デバイス１５１０−１５１４が、例えば、サーバ１５００Ｄと隔離保管庫１９０Ｖクラスタとの間の所定のシリアル通信プロトコルによって、隔離保管庫１９０Ｖクラスタに影響を与えることを防止し得る。
【０１２０】
鍵生成ユニット１９０Ｋが作成される。少なくとも１つの主要もしくは共通（例えば、マスタ）鍵ＭＫ１−ＭＫが鍵生成ユニット１９０Ｋのセキュアストレージ１９０ＫＳ（例えば、ハードウェアベースの暗号解読メモリ）に保管される。一局面において、ＵＳＢケーブルが鍵生成ユニット１９０Ｋに結合され、鍵生成ユニット１９０Ｋがサーバに結合されると、鍵生成ユニット１９０Ｋはシリアルデバイスとなる。共通鍵ＭＫ１−ＭＫ５および１つまたは複数のマスター鍵ＭＳＫ１−ＭＳＫ５のセットは、セキュアされた遠隔の場所１６００に保管される。
【０１２１】
図２Ａ、図２Ｂ、図１５、図１９、および図２１を参照すると、一局面において、ＩｏＴプラットフォームシステム１００は、ネットワークサーバ１５５０もしくはクラウドインフラストラクチャ１９００上で初期化され得る。上記のように、ＩｏＴプラットフォームシステム１００は、複数のＩｏＴプラットフォーム通信ネットワークノード１１０との双方向通信のために通信可能に接続された複数のＩｏＴプラットフォームエッジデバイス１２０を含む。ＩｏＴプラットフォームエンジン１０１は、ＩｏＴプラットフォーム通信ネットワークノード１１０と双方向通信のために通信可能に結合され、それを介して、ＩｏＴプラットフォームエッジデバイス１２０と双方向通信のために通信可能に結合される。エンジン保管庫１０１ＥＶ１−１０１ＥＶｎクラスタが提供され、初期化される（図２１、ブロック２１１５）。また、エンジン保管庫１０１ＥＶ１−１０１ＥＶｎクラスタは、マスター鍵ＭＫ１−ＭＫ５で封止されると共に、マスター鍵ＭＫ１−ＭＫ５の多数を用いて封止解除され得る。エンジン保管庫１０１ＥＶ１−１０１ＥＶｎクラスタは、仮想プライベートネットワーク（ＶＰＮ）もしくは仮想プライベートクラウド（ＶＰＣ）内でアクセス可能であり、エンジン保管庫１０１ＥＶ１−１０１ＥＶｎクラスタを隔離することが望ましく、各エンジン保管庫１０１ＥＶ１−１０１ＥＶｎは、耐障害性のために、互いに地理的に分離され得る。エンジン保管庫１０１ＥＶ１−１０１ＥＶｎクラスタは、ユーザ（このユーザは管理者を含み得る）を管理し、認証するために使用され得る（図２１、ブロック２１２０）。例えば、管理者ＡＤＭ１−ＡＤＭ５のうちの１名以上は、ユーザ名、電話番号、およびＶＰＮ証明を有する新しいユーザを追加することができると共に、ユーザに対してアクセス制御ポリシーを割り当てることができる。セキュア封止ストレージ部１０１ＥＶは、マルチファクタユーザ認証２０００を用いてアクセスの管理および認証を行う（図２０）。例えば、ユーザは、ユーザ名およびパスワードを提供し、ユーザが認証を要求した場合にユーザに送信される二要素暗証番号を確認することで、エンジン保管庫１０１ＥＶを用いて認証することができる。ひとたびユーザが認証されると、ユーザに対して、トークンおよび／またはクラウド証明が発行される（図２１、ブロック２１２５）。トークンは、ポリシーごとに、所定の期間内（例えば、約１５分、もしくは約１５分よりも短いもしくは長い時間）に終了し得る。トークンおよび証明は、エンジン保管庫１０１ＥＶにおいて利用可能なデータと相互作用するために使用され得る、例えば、ＩｏＴプラットフォームシステム１００の他の部分にアクセス鍵をリースするために使用され得る。クラウド証明を要求するユーザは、トークンに関して上で説明した方法と同様の方法で認証される。ひとたび認証されると、ユーザは、短期間のクラウド証明のリースを要求することができる。エンジン保管庫１０１は、動的証明を生成すると共に、リースが終了するとそれらを取り消すように構成される。これにより、開発者マシンのセキュリティが侵された場合のサーバインフラストラクチャの漏洩が防止され得る。一局面において、クラウド証明は、一時的なものであり、所定の期間（例えば、約３分、または約３分より長いもしくは短い時間）後には無効となる。一時的なクラウド証明により、開発者がＩｏＴプラットフォームシステム開発グループを離れた場合の開発者によるＩｏＴプラットフォームシステム１０１へのアクセスの取り消しが容易となる。一局面において、リースされたクラウド証明を用いて、開発者もしくはシステムオペレータは、様々なクラウドインフラストラクチャプロバイダの要求に応じて、法人用データセンタのプライベートクラウド環境において、新しいクラウドサーバを作成することができる。これは、スクリプトの集合および所定のマシン画像の集合を用いて容易となり得る。
【０１２２】
各ＩｏＴプラットフォームエンジン１０１は、図２Ｂに示されるように、複数の機能モジュールを有し得る。一局面において、エンジンクラスタ１０１ＣＬが作成され得て（図２１、ブロック２１３０）、ＩｏＴプラットフォームエンジン１０１は、サーバノードクラウド１９００ＳＮのうちの様々に選択可能な数のサーバ／エンジンノードＳＮ１−ＳＮｎ（図２１、ブロック２１３５）に配置され得る。複数の機能モジュールのうちの少なくとも１つの機能モジュールは、選択可能にサーバノードＳＮ１−ＳＮｎにプラットフォームエンジン１０１を設けるように構成される提供エンジンモジュール１９６０であり、複数の機能モジュールのうちのその他は、封止ストレージ部の外部のプラットフォームエンジンの複数の機能モジュールから封止され、ＩｏＴユーザ証明および提供エンジンモジュール１９６０を含むプラットフォームエンジン１０１の機能モジュールの機能へのアクセスおよび変更についての権限を保管する、セキュア封止ストレージ部１０１ＥＶである。一局面において、サーバノードクラウド１９００ＳＮは、サービスとしてのインフラストラクチャ（ＩＡＡＳ）プラットフォーム、もしくはプライベートサーバクラウドとして配置される。
【０１２３】
セキュアされ封止されたストレージ１０１ＥＶは、提供エンジンモジュール１９６０を初期化する認証を含むユーザ権限へのアクセスを管理および認証し、プラットフォームエンジン１０１が配置されるサーバノードＳＮ１−ＳＮｎの数を柔軟に提供選択することを確実にするように構成される。セキュア封止ストレージ部１０１ＥＶは、セキュア封止の統合の提供が、ＩｏＴプラットフォームエンジン１０１の外部とは切り離されて維持されるように配置される。一局面において、プラットフォームエンジン１０１は、分散型ストレージ層１９７０を有して構成され、セキュア封止ストレージ部１０１ＥＶは、分散型ストレージ層１９７０内に配置される。一局面において、セキュア封止ストレージ部１９０ＥＶは、複数のサーバノードＳＮ１−ＳＮｎに渡って分散し、セキュア封止ストレージ部１０１ＥＶの機能を有効化するように、複数のサーバノードＳＮ１−ＳＮｎ内において少なくとも最低限の決定数だけ設けられる。
【０１２４】
一局面において、ＩｏＴプラットフォームエンジン１０１の複数の機能モジュールのうちの少なくとも１つは、中央サービス検出監視機能１９７５を定義する。中央サービス検出監視機能モジュール１９７５は、複数のサーバノードＳＮ１−ＳＮｎに渡って分散し、中央サービス検出監視機能モジュール１９７５の中央サービス検出監視機能を機能させるように複数のサーバノードＳＮ１−Ｓｎｎ内において少なくとも最低限の決定数だけ設けられる。一局面において、エンジンクラスタ１０１ＣＬにおいて作成されたサーバノードＳＮ１−ＳＮｎの第１のセットは、耐障害性のために他のサーバノードＳＮ１−ＳＮｎから地理的に遠隔のデータを探索し得る中央サービス検出監視機能モジュール１９７５であり得る。
【０１２５】
上記のように、セキュアされた封止ストレージ１０１ＥＶ部は、プラットフォームエンジン１０１が配置されるサーバノードＳＮ１−ＳＮｎの数についての柔軟な提供選択を機能させるように、提供エンジンモジュール１９６０を初期化する認可を含むユーザ権限へのアクセスを管理および認可するように構成される。一局面において、ＩｏＴプラットフォームシステム１００は、任意の適当な態様で、必要なサーバノードＳＮ１−ＳＮｎサービスを判定し得る（図２１、ブロック２１４０）。サーバノードＳＮ１−ＳＮｎ上にインストールされ得る様々なサービスのためのインストールスクリプトは、開発者マシン上で記述され、任意の適当なコードリポジトリへ引き渡され得る。一局面において、ＩｏＴプラットフォームシステム１００における各サービスに対応するスクリプトがあり、サービスは、どのサービスがサーバノードＮＳ１−ＳＮｎに対して決定／割り当てされているかに基づいて、サーバノードＳＮ１−ＳＮｎに渡される。サーバノードＳＮ１−ＳＮｎサービスは、例えば、必要なサーバノードＳＮ１−ＳＮｎサービスによって、必要に応じて初期化され得る（図２１、ブロック２１４５）。中央サービス検出監視機能１９７５は、提供モジュール１９６０が設けられると新しく提供されたサーバノードＳＮ１−ＳＮｎ上の各プラットフォームエンジンサービスの実行開始を登録するように構成される。例えば、サービスにより、それぞれのサーバノードＳＮ１−ＳＮｎにおいてサービスが実行されていることについて中央サービス検出監視機能１９７５に報告され得る。これにより、中央サービス検出監視機能１９７５を用いて、どのサービスがどのサーバノードＳＮ１−ＳＮｎ上で実行されているかについて追跡することができ、ＩｏＴプラットフォームシステム１００の他の部分がサービスの場所を検出することができる。中央サービス検出監視機能１９７５は、サービスの状態の変化が中央サービス検出監視機能１９７５によって知られるように、割り当てられたサーバノードＳＮ１−ＳＮｎ上でサービスが実行されているかどうかが周期的に確認され得る。
【０１２６】
一局面において、提供エンジンモジュール１９６０は、プラットフォームエンジン１０１が設けられるように提供されているサーバノードＳＮ１−ＳＮｎの数についての提供選択、選択されて提供されたサーバノードＳＮ１−ＳＮｎの数についてのネットワークトポロジの選択、およびプラットフォームエンジン１０１の所定のサービスからのサービスの選択を機能させ、提供されている選択されたサーバノードＳＮ１−ＳＮｎの各々についての選択されたサービスを開始するように構成される。一局面において、提供エンジンモジュール１９６０は、１つの構成ファイルおよび選択されたサーバノードＳＮ１−ＳＮｎの各々についての実質的に自動設定を有効化する提供エンジンモジュール１９６０に対して供給される１つの提供スクリプトに対する選択入力を用いて、提供されている選択されたサーバノードＳＮ１−ＳＮｎの各々に対する選択されたサービスの選択および設定を行うように構成される。例えば、作成されるサーバノードＳＮ１−ＳＮｎの数、それらのトポロジ、および各サーバノードＳＮ１−ＳＮｎでどのサービスが開始されるかについては、１つの提供スクリプトにおいて特定され得る。構成ファイルは、ＩｏＴプラットフォームシステム１００の任意の適当なコードリポジトリに内在し得る。開発者は、構成ファイルをそれらのマシンに引き出し、コードリポジトリに内在し得る提供スクリプトに対して構成ファイルを供給し得る。この提供スクリプトは、構成ファイルを使用し、どのサーバノードＳＮ１−ＳＮｎを作成するか、および作成されたサーバノードＳＮ１−ＳＮｎにどのサービスをインストールするかについて決定する。
【０１２７】
プラットフォームエンジン１０１のサーバノードＳＮ１−ＳＮｎ容量は、任意の適当な態様で監視され得て（図２１、ブロック２１５０）、プラットフォームエンジン１０１のサーバノードＳＮ１−ＳＮｎ容量は自動的に管理される（図２１、ブロック２１５５）。この高度な自動化は、ＩｏＴプラットフォームシステム１００は、短期間内（例えば、約３分以内、または他の局面において、約３分より長いもしくは短い期間）においてプラットフォームエンジン１０１容量を増減させることを可能にし、また、ＩｏＴプラットフォームシステム１００ネットワークのサブセクションをプラットフォームエンジン１０１のサブセクションに割り当てることを可能にし、これは、直線的に拡張可能な形式でのエンジン容量の計画を可能にする。例えば、ＩｏＴプラットフォームシステム１００ネットワークのサブセクションに接続しているＩｏＴエッジデバイス１２０の数は、設置時間において予測可能であり得る。新しいネットワーク設置（例えば、エッジデバイス）が追加されると、サーバノードＳＮ１−ＳＮｎの新しいセットが作成され、新しい場所からのデバイスデータが取り扱われる。外的事象によって、例えば、ＩｏＴエッジデバイス１２０のユーザから重いデータ負荷が予測される場合、新しいプラットフォームエンジン１０１容量が、計画されていなかった要求に対応するために迅速に提供され得る。
【０１２８】
一局面において、新しいサーバノードＳＮ１−ＳＮｎ上で開始される第１のサービスのうちの１つは、プラットフォームエンジン１０１の初期ポータル１９９９を公開する１つまたは複数のサービスである。初期ポータル１９９９は、固定アドレスと、ＩｏＴプラットフォーム通信ネットワークノード１１０の開始時にこの初期ポータル１９９９に接続するＩｏＴプラットフォーム通信ネットワークノード１１０のうちの１つまたは複数とを有する。初期ポータル１９９９は、どのＩｏＴプラットフォーム通信ネットワークノード１１０ＭＡＣアドレスがサーバノードＳＮ１−ＳＮｎのどのサブセットに割り当てられているかについて追跡し続け、そのサーバノードＳＮ１−ＳＮｎのサブセットにおける新しいポータルにＩｏＴプラットフォーム通信ネットワークノード１１０を切り換え得る。
【０１２９】
一局面において、設定時において、選択されたサーバノードＳＮ１−ＳＮｎメタデータファイル１０１ＭＤのうちの各それぞれは、選択されたサーバノードＳＮ１−ＳＮｎのうちのそれぞれに一意に対応する秘密鍵ＰＶＫ（図１７、ブロック１７００）で署名される。秘密鍵ＰＶＫは、それぞれの選択されたサーバノードＳＮ１−ＳＮｎに対応すると共に、セキュア封止ストレージ部１０１ＥＶ内に封止される（図１７、ブロック１７１０）。秘密鍵ＰＶＫは、それぞれの選択されたサーバノードＳＮ１−ＳＮｎの設定時の署名の受信において、セキュア封止ストレージ部１０１ＥＶによって認証される（図１７、ブロック１７２０）。例えば、新しいおよび／または追加のプラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎは、プラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎのメタデータファイル１０１ＭＤを使用して認証／認可され得る。プラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎには、エンジン保管庫１０１ＥＶアクセス制御リストにおける特権も割り当てられ得る。プラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎは、メタデータファイル１０１ＭＤを有効化することによってエンジン保管庫１０１ＥＶを用いて自身で認証し得る（例えば、メタデータファイル１０１ＭＤ内のメタデータを有効化することにより、メタデータが、提供スクリプトによってメタデータファイルが署名された時と同じであるかどうかをチェックし、メタデータは、各プラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎに固有である）。ひとたび認証されると、プラットフォームエンジン１０１サーバノードＳＮ１−ＳＮｎには、本明細書中において説明されるような本開示の態様を実行するための任意の適当な鍵が与えられる（図１７、ブロック１７３０）。
【０１３０】
図１８を参照すると、一局面において、サーバノードＳＮ１−ＳＮｎへの人のアクセスは、認可された人員のみに与えられ、サーバノードＳＮ１−ＳＮｎへのすべてのアクセスは監査のために記録される。ＶＰＮ上のセキュアシェル（ＳＳＨ）を通じてサーバノードＳＮ１−ＳＮｎへのアクセスを求めるユーザ１８００は、ユーザ／パスバックエンドＵＢＥおよび二要素認証ＳＦＡを通じてエンジン保管庫１０１ＥＶを用いて認証される。ここで、エンジン保管庫１０１ＥＶは、認証局ＣＡとして稼働する。サーバノードＳＮ１−ＳＮｎは、サーバノードＳＮ１−ＳＮｎの設定時において、エンジン保管庫１０ＥＶを信頼された認証局ＣＡとして信頼するように構成される。サーバノードＳＮ１−ＳＮｎへのアクセスを求めるユーザ１８００は、新しいＳＳＨ鍵ペアＳＳＨＫを生成すると共に、ＳＳＨ鍵ペアＳＳＨＫに署名するようにエンジン保管庫１０１ＥＶに要求し得る。エンジン保管庫１０１ＥＶによって署名されたＳＳＨ鍵ペアＳＳＨＫは、エンジン保管庫１０１ＥＶを信頼する任意のサーバノードＳＮ１−ＳＮｎにアクセスし得る。一局面において、エンジン保管庫１０１ＥＶは、複数の認証局ゾーンＺ１−Ｚｎを有して、ユーザ１８００によってどのサーバノードＳＮ１−ＳＮｎがアクセスされるかを制御するように構成され得る。一局面において、ＳＳＨアクセスセッションは短期間であり、各サーバノードＳＮ１−ＳＮｎ上のスクリプトは、約１０分より長い時間で全てのＳＳＨセッションを終了する（他の局面において、ＳＳＨセッションは、時間が１０分より長いか、または短いものであり得る）。ルートとしてのＳＳＨアクセスは、管理者ＡＤＭ１−ＡＤＭ５に制限され得る。通常のユーザは、診断のためにＳＳＨアクセスによりサーバノードＳＮ１−ＳＮｎにログインし得るが、ルートアクセスの特権を得られ得ない。
【０１３１】
図２Ａおよび図２Ｂを参照すると、上記のように、ＩｏＴプラットフォームシステム１００は、低電力の無線エッジデバイスからクラウドサーバまでの広範囲にわたる近代的なフレームワークであり、多様な産業におけるＩｏＴ使用事例としてのシステムに対する高速な開発、信頼性のある稼働、および精細な制御を可能とする。プラットフォームエンジン１０１は、分散型ストリーム処理、デバイスライフサイクル管理、大規模のデバイスデータについての効率的な保管／問合せ、およびデバイス間のリアルタイムの協働のための柔軟なクラウド構築デバイスである。プラットフォームエンジン１０１は、高度にカスタマイズ可能であり、マシン学習を伴うリアルタイムデバイスアクタに対して、例えば、法人用ビジネス処理への物理デバイスの統合を助けるストリーミング決定パイプラインを設けたものである。また、プラットフォームエンジン１０１は、法人用システムと接続されたデバイスとの強力な統合を可能にするために、プラグ接続可能な法人用統合モジュールとともに、近代的な安定したストリーミングのアプリケーションプログラミングインターフェース（ＡＰＩ）を提供する。
【０１３２】
上記のように、図２Ａ、図２Ｂ、および図１９を参照すると、プラットフォームエンジン１０１は、複数のサーバマシンＳＮ１−ＳＮｎのクラスタ（グループ）上で実行される。これらのマシンＳＮ１−ＳＮｎは、例えば、Amazon EC2（登録商標）、Google（登録商標）Compute Engine、もしくはMicrosoft Azure（登録商標）などのクラウドサービスとしてのインフラストラクチャプラットフォーム、または、例えば、OpenStack（登録商標）、VMWare vSphere（登録商標）などに基づくプライベートクラウドを有するプライベートデータセンタにおいて提供され得る。プラットフォームエンジン１０１（サーバマシンＳＮ１−ＳＮｎのうちの１つまたは複数を含む）は、サービスとしてのインフラストラクチャが利用可能でない場合には、データセンタにおけるサーバマシンに直接的に提供され得る。プラットフォームエンジン１０１は、様々な指示される下層のインフラストラクチャに渡って一貫したプログラミングインターフェースを提供するプラットフォームエンジンインフラストラクチャ層を有し、これにより、新しいサーバマシンＳＮ１−ＳＮｎを提供し、サーバマシンＳＮ１−ＳＮｎ間のネットワーク接続性を構成し、既存の利用可能なインフラストラクチャ／提供されたインフラストラクチャの状態についての保管および問合せを構成する。また、プラットフォームエンジンインフラストラクチャ層は、プラットフォームエンジン１０１クラスタにおける全てのサーバマシンＳＮ１−ＳＮｎについての中心的な役割の指定、記録、健全性、チェック、および監視を提供する。一局面において、プラットフォームエンジンインフラストラクチャ層は、分散型ストレージ１９７０層を使用して、上記の情報を保管する。
【０１３３】
例として、プラットフォームエンジン１０１は、これらのＩｏＴデバイスの機能をサポートするＩｏＴデバイスおよびサーバの複合ネットワークの稼働時に生成される複数種類のデータを保管および適時のアクセスを可能とする。プラットフォームエンジン１０１は、共通のアクセスパターンの保管および速度の信頼性について高度に最適化された分散型ストレージ１９７０層を提供する。分散型ストレージ１９７０層は、冗長的な信頼性の高い保管、データの高度な利用可能性、並列処理、およびＩｏＴプラットフォームシステム１００上で実行されるアプリケーションの水平方向のスケーラビリティのために、複数のマシンにわたって分散され得る。一局面において、分散型ストレージ１９７０層は、分散型ファイルシステム１９７１と、グラフストレージ１９７２と、メタデータ（鍵値）ストレージ１０１ＭＤと、エンジン保管庫１０１ＥＶと、エンジン監視データベース１９７５とを有する。分散型ストレージ１９７０層の例示的なグラフィック表示は、図２２に示される。
【０１３４】
分散型ファイルシステム１９７１は、システムログなどの大きなファイルの複数の地理的に冗長な写しを保管するように構成される。分散型ファイルシステム１９７１は、グラフストレージ１９７２およびメタデータ（鍵値）ストレージ１０１ＭＤ等、ストレージ層の他の部分に保管されるデータについてのバックアップ保管としても構成される。
【０１３５】
ＩｏＴシステムにおけるデバイスは、様々なビジネスアセットの状態について報告する。例えば、駐車センサは、駐車スペースの状態について報告し得る。デバイスとそれらが報告するアセットとの関係は、アセットナレッジグラフでモデル化される。グラフストレージ１９７２層は、このグラフを確実かつ効率的に保管するように構成され、このグラフについての迅速な問合せおよび横断（travasal）を可能にする。
【０１３６】
メタデータ（鍵値）ストレージ１０１ＭＤは、システム状態およびメタデータを保管するように構成され、分散型ファイルシステムによってバックアップされる、大規模の高度な耐障害性を有する鍵値データベースを有する。このデータベースは、書き込み操作の信頼性と永続性を保証するために、障害が発生した場合の整合性の高いストレージを優先する。書き込みが少なくとも大多数のストレージサーバによって確認されない場合、書き込みは拒否される。ひとたび書き込みが確認されると、永続的なものとなり、書き込みのインデックスは、半永久的に固定され、固有のものとなる。読み取り動作は、どのコピー（replica）においても並行して行われ得る。
【０１３７】
エンジン保管庫１０１ＥＶは、いくつかの暗号化鍵および証明（本明細書中において説明されるように）（本明細書中において秘密という）を保管し、システムのセキュリティを確保するように構成される。エンジン保管庫１０１ＥＶは、必要な場合のみ、メモリ内のみにおいて、これらの秘密を暗号化および復号化し続けるように構成される。秘密は、ディスクに対して暗号化されていない形式で書き込まれることはない。エンジン保管庫１０１ＥＶは、安全な複数要素ユーザ認証と、ユーザとマシンがアクセス権を持っているデータにのみアクセスできることを保証する精細な許可に基づく認証システムを可能にする。本明細書中において説明されるように、エンジン保管庫１０１ＥＶは、一時的な秘密を動的に生成し、ユーザ／マシンに対して発行する全ての秘密にリースを関連付ける￥リース機構を実施するように構成される。この動的な秘密の生成およびリースにより、危険にさらされた場合であっても、秘密は永遠に危険にさらされることはなく、全体的なセキュリティが向上する。また、本明細書中において説明されるように、エンジン保管庫１０１ＥＶは、認証局（ＣＡ）でもあり、ゲートウェイおよびサーバを認証するために使用される証明を生成することができる。エンジン保管庫１０１ＥＶは、例えば、ＩｏＴエッジデバイス１２０に対してデータの認証および暗号化／復号化を行うために使用されるデバイスセッション鍵を保管するように構成される。
【０１３８】
エンジン監視データベース１９７５は、各サーバマシンＳＮ１−ＳＮｎに対して割り当てられた役割およびサービスを保管するように構成される。エンジン監視データベース１９７５は、各サーバマシンＳＮ１−ＳＮｎについての健全性データを保管するように構成され、エンジンインフラストラクチャ層がプラットフォームエンジン１０１クラスタにおける全てのサーバマシンＳＮ１−ＳＮｎの健全性を監視するのに役立つ。
【０１３９】
エンジンコア１０１ＥＣは、プラットフォームエンジン１０１の稼働に必要なサービスのコアセットを実施するように構成される。これらのサービスは、ユーザ管理、認証、および認可を含む。これらのサービスは、エンジン保管庫１０１ＥＶに保管されるデータに依存し、リソースにアクセスする許可を有しているかどうかを認証し、チェックするように構成される。エンジンコア１０１ＥＣは、ＩｏＴプラットフォームシステム１００の他の部分が様々なストレージシステムと通信するためのプログラミングインターフェースを提供するように構成される。加えて、エンジンコア１０１ＥＣは、エンジンにおける各物理的アセットを表すために使用される軽量のパラレルアクタ処理を作成し、実行し、および破壊するための方法を提供するように構成される。これにより、様々なアセットアクタが互いにリアルタイムで通信し、メッセージ送信し得る。エンジンコア１０１ＥＣは、失敗した場合にはアクタを再び開始させるように構成され、特定のサーバへの負荷が大きすぎる場合には異なるサーバへ再分配することができる。アクタの現状は、分散型グラフストレージ１９７２およびメタデータストレージ１０１ＭＤによってバックアップされたアセットナレッジグラフに保管される。
【０１４０】
アセットナレッジグラフ１９７２Ｇは、マシンのクラスタに亘って分散された数千億の頂点およびエッジを保管し得る分散型グラフストレージ１９７２に保管されるプラットフォームエンジン１０１のデータ構造である。プラットフォームエンジン１０１、ＩｏＴエッジデバイス１２０、ネットワークノード１１０、サーバマシンＳＮ１−ＳＮｎ、ユーザ、アセットなどは、全て「アセット」としてモデル化される。全てのこれらの実体（entites）は、概してアセットとして考慮される。全てのアセットは。アセットナレッジグラフ１９７２Ｇと呼ばれるデータ構造内の頂点として保管される。例示的なアセットナレッジグラフは、図２３および図２４に示される。アセット間の関係は、対応するアセット頂点を接続するエッジとして保管される。頂点およびエッジの両方は、特性を保管し得る。頂点は、アセットの１つまたは複数の特性／属性を保管し、エッジは、２つのアセット間の関係の１つまたは複数の特性／属性を保管する。２つのアセット間のエッジは、アセット間の関係に応じて、一方向もしくは双方向となり得る。新しいエッジは、グラフ内における様々なアセットについての情報をエンジンがより学習することで確立され得る。この新しい情報は、ユーザ入力から、または、アセットの履歴データを見ることでアセット間の関係について学習し得るマシン学習アルゴリズムから得られ得る。例えば、図２４に示されるように、トラックは長さが変化する傾向があるので、２つの駐車センサが必要となり得るトラック駐車スペースにおいて、その駐車スペースの最終的な占有を決定することに対する各センサの貢献についての重みが、時間をかけて学習され得る。この重みは、各センサと駐車スペースとの間のエッジの特性として保管され得る。
【０１４１】
一局面において、アセットは、プラットフォームエンジン１０１内部における極度に軽量の実行処理でアニメーション化され得る。これらの処理は、互いにメッセージを送信し合い、互いに協力して決定を行い得る。例えば、特定の街路上のＩｏＴ駐車センサ（例えば、ＩｏＴエッジデバイス）を表すアクタは、大きな磁力事象を見つけるたびにその街路上の他のＩｏＴ駐車センサアクタにメッセージを送信し得る。１つのＩｏＴ駐車センサから見た場合には駐車事象に見えても実際には街路の下を通過する地下鉄のような何か別のものであるという事象を否定することによって、ＩｏＴ駐車センサの精度を向上させ得る。
【０１４２】
プラットフォームエンジン１０１のアセットナレッジグラフ１９７２Ｇ層は、これらのアクタ処理のライフサイクルを管理し、通信モジュール１７３の層１７３Ｌを用いたアクタ間のメッセージのやり取りを可能とする。アセットナレッジグラフ１９７２Ｇ層は、故障の際にもアクタを復活させて再開させるように構成される。アセットグラフ１９７２Ｇは、所定のパラメータに基づく頂点を見つけるためにグラフ１９７２Ｇを問合せおよび横断するための問合せインターフェースを提供する。
【０１４３】
層１７３Ｌは、ＩｏＴプラットフォームシステム１００全体に亘るデータのフローを可能とし、これを管理する。層１７３Ｌは、「ストリーム」を実施するように構成される。ストリームにより、データ作成者は、確実にデータを公開し、ストリームの消費者への少なくとも１度のメッセージの送達が保証される。データがストリームに公開されると、コンセンサスアルゴリズムを使用して分散型の追加専用（append-only）ログに書き込まれ、これによってストリームにおけるメッセージのインデックスが決定され、永続的なメッセージの順序付けがもたらされる。また、ストリームにより、ストリームに新しいメッセージが到着した際にすぐにオンライン消費者に通知される購読機構が可能となる。オフラインバッチ消費者もまた、サポートされており、各登録された消費者の最後に消費したインデックスをストリームが確実に保管し、消費者は、任意の適当な時間に戻ることができ、離れた箇所から継続することができる。ストリームは、プラットフォームエンジン１０１およびＩｏＴプラットフォームシステム１００の残りの部分において使用され、信頼性の高い順序付け、作成者の消費者からの切り離し、メッセージの信頼性のある経路選択、およびメッセージ送達保証が提供される。層１７３Ｌは、サーバマシンＳＮ１−ＳＮｎ、ネットワークノード１１０、および外部システムの間のメッセージのフローを可能とするポータルを提供する。
【０１４４】
ネットワークノード１１０は、ＴＣＰ接続を通じてポータル１９９９を介してプラットフォームエンジン１０１に接続する。ポータル１９９９は、ＴＣＰ／ＴＬＳサーバおよびデバイス登録サービスを提供するように構成され、デバイス登録サービスにより、ＩｏＴエッジデバイス１２０またはネットワークノード１１０は、特別に作られたチャレンジ／レスポンスアルゴリズムを使用して認証すると共に、プラットフォームエンジン１０１を登録することが可能となる。ひとたびＩｏＴデバイス１１０、１２０が上手く登録されると、共有セッション鍵が、ＩｏＴデバイス１１０、１２０とプラットフォームエンジン１０１との間に上手く確立される。プラットフォームエンジン１０１は、アセットアクタを開始し、プラットフォームエンジン１０１内のＩｏＴデバイス１１０、１２０を示す。アセットアクタは、ＩｏＴデバイス１１０、１２０のすべての既知の属性および関係が、基礎となる資産知識グラフ１９７２Ｇに示されることを保証する。ネットワークノード１１０が接続されるＴＣＰサーバエンドポイントからデータが流れ始めると、データは、ストリームネットワーク入力に経路選択され、そこで永続的に（または他の態様において一時的に）ネットワークノード１１０から入ってくる全てのメッセージを保管し、プラットフォームエンジン１０１の視点からのメッセージの永続的な順序を確立する。ひとたびメッセージがこのストリームに保管されると、ＭＡＣ（メディアアクセスコントローラ）ベースのメッセージルータがすべての入ってくるメッセージを見て、そのＭＡＣアドレスを有するデバイスに対応するアクタにメッセージが送信される。ＭＡＣアドレスは、ＩｏＴプラットフォームシステム１００内で固有である。ひとたびメッセージがデバイスアセットアクタに受け渡されると、メッセージは、事前に確立された共有セッション鍵を使用して復号化され得る。デバイスアセットアクタは、暗号化し得ると共に、ネットワーク出力ストリームへの書き込みによって対応する物理デバイスにメッセージを送り返すことができる。このストリームは、プラットフォームエンジン１０１からＩｏＴプラットフォームシステム１００へ出て行くすべてのメッセージの順序を確立し得る。デバイスアセットアクタは、それぞれのＩｏＴデバイス１１０、１２０のライフサイクルを管理し、検知アルゴリズムを実施し、構成を可能とし、ファームウェア更新の送達を可能とし、ＩｏＴデバイス１１０、１２０が送信するメッセージに基づいて物理的世界におけるそれぞれのＩｏＴデバイス１１０、１２０の状態を継続的に追跡する。デバイスアセットアクタは、物理的ＩｏＴデバイス１１０、１２０のためのプロキシとなり、ＩｏＴデバイス１１０、１２０が積極的に通信しない場合であってもＩｏＴデバイス１１０、１２０について知られている最終の状態を報告し得る。
【０１４５】
プラットフォームエンジン１０１は、ＭＱＴＴのようなオープンプロトコルを介して、ＩｏＴプラットフォームシステム１００から離れた、他のＩｏＴデバイスネットワークとの通信に対するサポートをも提供し得る。プラットフォームエンジン１０１は外部の法人用サービスとのリアルタイムの統合もサポートし得る。この外部法人用サービスとのリアルタイムの統合は、特定の法人用システムのために特定的に実施されるカスタム統合ポータルと共にＭＱＴＴおよびＣｏＡＰなどの通信プロトコルのための層１７３Ｌによって生成される再利用可能ポータル（ポータル１９９９と同じであってもなくても良い）を用いて可能となり得る。このプラットフォームエンジン１０１の層は、アセットナレッジグラフ１９７２Ｇ内に外部ビジネスアセットおよびそれらの属性を示すことをサポートすると共に、これらの外部ビジネスアセットのアセットファクタの作成もサポートする。例えば、都市管理システムは、プラットフォームエンジンに対して、駐車スペースのような都市アセットについてのデータ（例えば、スペースの場所、そのスペースについての１時間毎の値段、そのスペースについての駐車規則等）を提供し得る。この駐車スペース情報は、アセットナレッジグラフ１７９２Ｇにおいて、駐車スペースアセットの属性として保管される。都市管理システムは、例えば、駐車スペースがこの街路にあるなど、アセット間の関係についてのデータも提供し得る。これらの関係は、アセットナレッジグラフ１９７２Ｇ内に保管される。外部システムは、例えば、駐車スペースの状態もしくは街路照明の状態など、特定のアセットの状態について登録することも選択し得る。街路照明を表すアクタが、街路照明がもうすぐ故障すると予測した場合、すぐに外部都市システムに通知し、これにより、メンテナンス処理を開始し得る。
【０１４６】
プラットフォームエンジン１０１の洞察モジュール／エンジン１７４層は、デバイスおよび他のアセットデータについてのバッチおよびストリーム分析を提供する。洞察モジュール／エンジン１７４層により、データが大きくなり続けても、予測可能な潜在性（latency）についてのアセットデータの平行および水平な縮尺調整可能処理（scalable processing）が可能となる。洞察モジュール／エンジン１７４層は、様々な解析およびマシン学習アルゴリズムを使用して、サマリー統計を得る、興味深いもしくは異例の事象を検知する、故障を予測する、決定モデルを学習する、などを行う。プラットフォームエンジン１０１の内部において実施されるアルゴリズムの一部の例としては、駐車スペースがどのくらい長い間占有されるか／占有されないかについての予測、ユーザの指向および履歴についての利用可能なデータに基づいた理想的な駐車スペースの推奨、街路照明の故障の予測、デバイスログに基づく疑わしいセキュリティ事象の分類、および隣接するトラック駐車スペースまたは現実のトラック駐車事象からの磁気影（magnetic shadow）の分類などが含まれる。
【０１４７】
プラットフォームエンジン１０１の仮想マシン１８１層（仮想マシン１５４および１６０も参照）およびＩｏＴプラットフォームシステム１００の全体は、接続されたデバイスのネットワークの頂部で動作するビジネスロジックをすぐにカスタマイズし、反復する方法を提供する。仮想マシン１８１層は、ＩｏＴデバイスのような他のアセットから入ってくる情報に基づいてアセットの状態を決定することができる、新しいビジネス規則、ビジネスロジック、およびデータフローロジックを入力するためのドメイン特定プログラミング言語（ＤＳＬ）およびユーザインターフェースを提供する。仮想マシン１８１層は、バッテリの温存および決定潜在性（latency）の向上のために、提供されるビジネスロジックのどの部分に対して物理ＩｏＴデバイスをプッシュすることができるかについて、知的に決定するように構成される。ひとたびデバイスアセットアクタによって、仮想マシン１８１層が、どの部分がデバイス上で実行されるか、およびどの部分がプラットフォームエンジン１０１上で実行されるかを決定すると、仮想マシン１８１層は、新しいファームウェア、および仮想マシン１８１層のファームウェア編集パイプラインを使用してＩｏＴデバイスに伝達される仮想マシンバイトコードを動的にコンパイルすることができる。この更新されたファームウェアおよびバイトコードは、ポータル１９９９内の対応するアセットアクタに対して伝達され、ＩｏＴデバイスの更新が開始される。
【０１４８】
プラットフォームエンジン１０１は、外部システムおよびＩｏＴプラットフォームシステム１００アプリケーションのためのストリーミングアプリケーションプログラミングインターフェース（ＡＰＩ）およびＨＴＴＰ  ＡＰＩを提供し、プラットフォームエンジン１０１と対話する。アプリケーションは、アセットの作成、アセットの変更、グラフ１９７２Ｇクエリに基づくアセットの検出、１つまたは複数のアセットの状態の登録などを行う。ＩｏＴプラットフォームシステム１００アプリケーションフレームワークは、ラッパされたライブラリのセットであり、ＩｏＴプラットフォームシステム１００ＡＰＩとの対話およびアプリケーションの構築が容易となる。
【０１４９】
洞察モジュールエンジン１７４は、センサおよび他のアセットデータに基づき、迅速にデータ可視化ダッシュボードを構築するグラフィックツールを提供し得る。グラフィックツールにより、リアルタイムのデータの可視化が容易となり、履歴アセットデータの複雑な問合せも可能にする。ＩｏＴプラットフォームシステム１００は、開発キットも含み得て、開発キットは、少なくとも新しいＩｏＴエッジデバイス１２０のプロトタイプ作成を容易にするグラフィックユーザインターフェースおよびハードウェアツールのセットである。
【０１５０】
図２Ａおよび図２Ｂを参照し、ＩｏＴプラットフォームシステム１００における例示的なデータフローについて説明する。層１７３Ｌにより、ＩｏＴプラットフォームシステム１００の全体にわたるデータのフローが可能となる。層１７３Ｌは、ＩｏＴプラットフォームシステム１００における分散層であり、ＩｏＴエッジデバイス１２０、ネットワークノード１１０、プラットフォームエンジン１０１、およびＩｏＴプラットフォームシステム１００を使用して構築されるユーザインターフェースアプリケーションに対して作用する。層１７３Ｌは、ノード（例えば、サーバマシンＳＮ１−ＳＮｎ）上で実行されるアクタからなる。各ノードは、ｎｏｄｅ＿ｉｄによって固有に識別され、ｎｏｄｅ＿ｉｄは、ノード毎に固有の８バイトの長さの二値数である。ハードウェアの６バイトアドレスは、例えば、０ｘ００００ＡＡＡＡＡＡＡＡＡＡＡＡ等、２つの先頭の０バイトを有する８バイトで表される。各アクタは、｛ｎｏｄｅ＿ｉｄ、ａｃｔｏｒ＿ｉｄ｝によって固有に識別される。ａｃｔｏｒ＿ｉｄは、ノード（アクタを有する）が局所的にルーティングすることができ、全体的に識別することができるものである。層１７３Ｌは、ＩｏＴデバイスの仮想マシンの内部において、例えば、Ｃプログラミング言語およびアセンブリ言語（ＣＨＡＳＭ）を使用して実施される。層１７３Ｌは、ネットワークノード１１０の内部において、例えば、Ｃプログラミング言語およびＥｒｌａｎｇ／Ｅｌｉｘｉｒを使用して実施される。層１７３Ｌは、プラットフォームエンジン１０１の内部において、例えば、Ｃプログラミング言語、Ｅｒｌａｎｇ／Ｅｌｉｘｉｒ、およびＲｕｂｙを使用して実施され得る。層１７３ＬはＳらに、ＩｏＴプラットフォームシステム１００ユーザインターフェースアプリケーションの内部において、例えば、Ｊａｖａスクリプトを使用して実施され得る。層１７３Ｌは、他の任意の適当なランタイム環境において実施され得るように設計される。ＩｏＴプラットフォームシステムの各ノードは、１つのｌａｙｅｒ＿ｍａｎａｇｅｒアクタを得る。
【０１５１】
層１７３Ｌマネージャは、ネットワークノード１１０およびプラットフォームエンジン１０１上のＥｒｌａｎｇ／Ｅｌｉｘｉｒランタイムの内部で開始され得る。例えば、層１７３Ｌｅｒｌａｎｇ／ｅｌｉｘｉｒアプリケーションがプラットフォームエンジン１０１におけるサーバマシンＳＮ１−ＳＮｎ上で開始されると、ｌａｙｅｒ＿ｍａｎａｇｅｒ  ｅｒｌａｎｇ処理がそのサーバマシンＳＮ１−ＳＮｎ上で開始される。この処理は、このサーバマシンＳＮ１−ＳＮｎ上で開始される全てのストリームおよびポータルを追跡し続ける。
【０１５２】
層１７３Ｌマネージャは、プラットフォームエンジン１０１におけるＪａｖａランタイムの内部およびＡｎｄｒｏｉｄ（商標）デバイス上で開始され得る。例えば、層１７３Ｌ  ＪＲｕｂｙアプリケーションがＪａｖａランタイム内部で開始されると、Ｃｅｌｌｕｌｏｉｄ  ｌａｙｅｒ＿ｍａｎａｇｅｒ処理がそのマシン上で開始される。この処理は、このマシン上で開始される全てのストリームおよびポータルを追跡し続ける。
【０１５３】
層１７３Ｌマネージャは、仮想マシン（ＶＭ）１５４、１６０、１８１の内部で開始され得る。層１７３Ｌが仮想マシン１５４、１６０、１８１を実行するＩｏＴデバイス１１０、１２０（およびプラットフォームエンジン１０１）に対して利用可能となった場合、ｌａｙｅｒ＿ｍａｎａｇｅｒルーティンがＶＭバイトコードプログラムに挿入され、バイトコード更新パッチの一部として、ＩｏＴデバイス１０１、１１０、１２０に対して送達される。このルーティンは、このＩｏＴデバイス１１０、１２０（および／またはプラットフォームエンジン１０１）上でアクティブな全てのストリームおよびポータルを追跡する。
【０１５４】
層１７３Ｌマネージャは、ウェブブラウザ、ウェブベースの携帯アプリケーション、ＮｏｄｅＪＳ、もしくはＲｈｉｎｏにおけるＪａｖａスクリプトランタイムの内部において開始され得る。例えば、層１７３Ｌがｊａｖａスクリプトランタイムの内部で開始されると、ｌａｙｅｒ＿ｍａｎａｇｅｒウェブワーカ処理がＩｏＴマシン／デバイス上で開始される。この処理は、このマシン上で開始される全てのストリームおよびポータルを追跡し続ける。層１７３Ｌを実行するＩｏＴデバイス／マシンは、層１７３Ｌポータルを介して層１７３Ｌを実行する他のマシンと接続し得る。層１７３Ｌポータルは、特定のタイプのアクタであり得る。層１７３Ｌポータルは、ＴＣＰ／ＴＬＳポータル、ＷｅｂＳｏｃｋｅｔポータル、ＨＴＴＰポータル、Ｒａｄｉｏポータル、Ｊａｖａノードポータル、ＳＳＨポータル、およびＲａｄｉｏポータルを含むが、これらに限定されない。層１７３Ｌポータルは、サポートするデータのフローについて、双方向（インバウンドおよびアウトバウンドのデータの両方をサポートする場合）または一方向に設定される。
【０１５５】
層１７３Ｌ内のデータは、メッセージとして動き回り、層１７３Ｌストリームによって管理される。ストリームは、メッセージおよびメタデータを保管することができる。ストリームは、Ｌａｙｅｒ．ｃｒｅａｔｅ（ｓｔｒｅａｍ＿ｉｄ、ｏｐｔｉｏｎｓ）を呼び出すことにより、ローカルマシン上で作成することができる。ストリームは、Ｌａｙｅｒ．ｃｒｅａｔｅ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、ｏｐｔｉｏｎｓ）を呼び出すことにより、リモートマシン上で作成することができる。メッセージの作成者は、ストリーム上のインデックスに割り当てられたストリームに対してメッセージが書き込まれる場合は、Ｌａｙｅｒ．ｐｕｂｌｉｓｈ（ｓｔｒｅａｍ＿ｉｄ、ｍｅｓｓａｇｅ）を呼び出すことで、またはリモートマシン上でＬａｙｅｒ．ｐｕｂｌｉｓｈ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、ｍｅｓｓａｇｅ）を呼び出すことで、メッセージを公開することができる。ストリームは、ｌａｓｔ＿ｗｒｉｔｔｅｎ＿ｉｎｄｅｘを、ストリームメタデータにおける鍵として維持し、これが最後にストリームに書き込まれたメッセージのインデックスとなる。
【０１５６】
メッセージの消費者は、Ｌａｙｅｒ．ｒｅｇｉｓｔｅｒ＿ｃｏｎｓｕｍｅｒ（ｓｔｒｅａｍ＿ｉｄ、ｃｏｎｓｕｍｅｒ＿ｉｄ、ｏｐｔｉｏｎｓ）を呼び出すことにより、ローカルストリームに登録することができる、またはＬａｙｅｒ．ｒｅｇｉｓｔｅｒ＿ｃｏｎｓｕｍｅｒ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、ｃｏｎｓｕｍｅｒ＿ｉｄ、ｏｐｔｉｏｎｓ）を呼び出すことにより、リモートストリームに登録することができる。消費者は、特定のストリームに登録された消費者のグループ内の固有のｉｄでストリームに登録するのが望ましい。典型的には、｛ｎｏｄｅ＿ｉｄ、ｃｏｎｓｕｍｅｒ＿ｉｄ｝であり、ｃｏｎｓｕｍｅｒ＿ｉｄは、ノード上のアクタのｉｄである。場所は重要ではなく、特定の名前を有する消費者は、特定のマシンに対してクラッシュを起こし、他の場所へ行く可能性もある。消費者は、オンラインもしくはオフラインであり得る。これは、モードオプションによりオプションで指定され得る。オンライン消費者は、ストリームで到達する全てのメッセージをすぐに送信する。オフライン消費者は、メッセージが消費されたことをマーキングした場合にのみメッセージが送信される。オフライン消費者がインデックス１０を用いて消費したものとしてメッセージをマーキングし、ストリームのｌａｓｔ＿ｗｒｉｔｔｅｎ＿ｉｎｄｅｘが０より大きい場合、インデックス１１を有するメッセージが消費者に送信される。消費者は、メッセージを消費した時に、消費したものとしてメッセージをマーキングするのが望ましい。メッセージは、ローカルストリームにおいては、Ｌａｙｅｒ．ｓｅｔ＿ｃｏｎｓｕｍｅｄ（ｓｔｒｅａｍ＿ｉｄ、ｃｏｎｓｕｍｅｒ＿ｉｄ、ｉｎｄｅｘ）を用いて消費したものとしてマーキングし、リモートストリームにおいては、ｌａｙｅｒ  ｓｅｔ＿ｃｏｎｓｕｍｅｄ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、ｃｏｎｓｕｍｅｒ＿ｉｄ、ｉｎｄｅｘ）を用いて消費したものとする。ストリームは、ストリームに登録された各消費者について、ｌａｓｔ＿ｃｏｎｓｕｍｅｄ＿ｉｎｄｅｘを維持する。ストリームは、各消費者についての最後切り捨てリスト（truncated tail list）を維持し、どのメッセージがすでに消費されたかを追跡する。オンライン消費者はプッシュされたメッセージを異なる速度で消費し、メッセージの消費を自由に並列化し得るので、切り捨てられた末尾リストは、メモリ使用量を低く抑えながら、消費されたものを追跡するのに役立つ。リストの末尾にある連続した領域はすべて切り捨てられる。
【０１５７】
一局面において、メッセージは、ストリームによって消費者に対してプッシュされる。オンライン消費者は、到着のレートと同等のレートでメッセージを消費しなければならない。より多くの時間がかかる消費者は、オフラインとしなければならない。以前のメッセージについての受取確認が受信された場合にのみオフライン消費者に対してメッセージがプッシュされる。これにより、レートの限定および加速が助けられる。バッチ処理の消費者は、ストリームの下方のストレージに対してオフバンドで直接的に対話し、終了時にストリームにおいてｌａｓｔ＿ｃｏｎｓｕｍｅｄ＿ｉｎｄｅｘを更新することにより、メッセージを処理することができる。消費者は、ｌａｓｔ＿ｃｏｎｓｕｍｅｄ＿ｉｎｄｅｘおよびｌａｓｔ＿ｗｒｉｔｔｅｎ＿ｉｎｄｅｘで全てのメッセージを処理することができる。
【０１５８】
メタデータは、鍵と値とのペアとしてストリーム上で保管され得る。メタデータ鍵値ペアは、Ｌａｙｅｒ．ｓｅｔ（ｓｔｒｅａｍ＿ｉｄ、｛ｋｅｙ、ｖａｌｕｅ｝）を呼び出すことでストリームに書き込むことができる、またはＬａｙｅｒ．ｓｅｔ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、｛ｋｅｙ、ｖａｌｕｅ｝）としてリモートストリームに書き込むことができる。メタデータ値は、Ｌａｙｅｒ．ｇｅｔ（ｓｔｒｅａｍ＿ｉｄ、ｋｅｙ）を呼び出すことでストリームから読み出すことができる、またはＬａｙｅｒ．ｓｅｔ（｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝、ｋｅｙ）としてリモートストリーム上で読み出すことができる。このメタデータは、自身のストレージを維持することを望まず、ストレージの必要に応じてストリームに依拠する短期的な消費者を可能にする。
【０１５９】
ストリームは、ストリームのアドレスであるペア｛ｎｏｄｅ＿ｉｄ、ｓｔｒｅａｍ＿ｉｄ｝によって完全に識別される。これらの識別されたストリームは、層１７３Ｌが実行されているランタイムに基づいて、プロセスＩＤ（process identities）またはルーティンＩＤ（routine identifiers）にマッピングされる。
【０１６０】
層１７３Ｌポータルは、層１７３Ｌマネージャ間の接続を作成するストリームまたは消費者への正確な経路は、ローカル層１７３Ｌマネージャに問合せることによって検出し得て、ローカル層１７３Ｌマネージャは、メッセージをストリームまたはコンシューマに経路選択するために呼び出す機能により応答し得る。例えば、ｎｏｄｅ＿ｉｄが提供されているか？提供されていない場合、宛先ａｃｔｏｒ＿ｉｄへローカルに経路選択する。ノードは内部にｎｏｄｅ＿ｉｄを有しているか？有している場合、宛先ａｃｔｏｒ＿ｉｄへローカルに経路選択する。メッセージが外部ノードに到達した時にｎｏｄｅ＿ｉｄが外部ノードへのポータルへの外部経路である場合、宛先ａｃｔｏｒ＿ｉｄへローカルに経路選択する。
【０１６１】
ストリームに書き込まれるデータ（メッセージおよびメタデータ）は、様々なストレージバックエンドに保管することができる。バックエンドには、ＨＢａｓｅストレージバックエンド（Apache HBaseにデータを保管する）、メモリストレージ内バックエンド（メモリにデータを保管する）、およびＣｏｒａｃｌｅストレージバックエンド（これは、ＲＡＦＴコンセンサスプロトコルの実施である）が含まれるが、これらに限定されない。層１７３ＬストリームからＣｏｒａｃｌｅを使用することにより、複数の異なるマシン上で実行されるストリームを示す複数の処理が可能となる。メッセージは、ストリーム処理の大多数の書き込みが確認された場合のみ、ストリームに書き込まれたものとして考慮される。これにより、障害状態中においても稼働を継続するには大多数のプロセスのみが利用可能である必要があるため、並行化によって拡張し得るストリームが可能となる。
【０１６２】
認証は、複数の認証機構を使用してストリーム上で可能となり得る。認証が可能となると、クライアント（作成者もしくは消費者）処理によってストリームもしくはマネージャに対する全てのリクエストに対して認証トークンを提供する必要がある。トークンが有効である場合には稼働が進行し、トークンが有効でない場合、ストリームは認証エラーで応答する。ストリームを作成した処理は、特定の稼働についての特定の処理（もしくはルーティン）を認可することもできる。特定の稼働に対して処理が認可されない場合、稼働は失敗する。一局面において、デフォルトで、ストリームもしくはマネージャを作成した処理は、他の処理を認可することができる。消費者は、自身のｌａｓｔ＿ｃｏｎｓｕｍｅｄ＿ｉｎｄｅｘを設定することのみできる。ストリームを作成した処理は、新しい消費者および作成者に対して承認するか、または拒絶することができる。一局面において、可能とされるデータタイプのリストは、ストリームに関連付けられ得る。例えば、Ｌａｙｅｒ．ｃｒｅａｔｅ（ｓｔｒｅａｍ＿ｉｄ、ｔｙｐｅｓ：［Ｆｌｏａｔ］）である。複合タイプは、ランタイムによってサポートされる基本的なタイプの組合せとして特定される。例えば、Ｌａｙｅｒ．ｃｒｅａｔｅ（ｓｔｒｅａｍ＿ｉｄ、ｔｙｐｅｓ：［ＭａｇＲｅａｄｉｎｇ］）である。
【０１６３】
“‘ｅｌｉｘｉｒ  ｄｅｆｍｏｄｕｌｅ  ＭａｇＲｅａｄｉｎｇ  ｄｏ  ｕｓｅ  Ｌａｙｅｒ．Ｔｙｐｅ
【０１６４】
ａｔｔｒｉｂｕｔｅ：ｘ、Ｆｌｏａｔ
【０１６５】
ａｔｔｒｉｂｕｔｅ：ｙ、Ｆｌｏａｔ
【０１６６】
ｅｎｄ”’
【０１６７】
ストリームは、ストリームに関連するタイプについて有効でないメッセージを拒絶し得る。ＨＴＴＰ、ＷｅｂＳｏｃｋｅｔ、またはＴＣＰ  ＡＰＩが、任意の適当なストリームに対して可能となり得る。これは、様々な通信チャネルに亘ってストリームに対する均一なインターフェースを作成する。ＡＰＩは、層１７３Ｌのポータルとして実施される。
【０１６８】
開示された実施形態の１つまたは複数の態様によれば、仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、ＩｏＴシステムは、以下を含む。
【０１６９】
各々がＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよびＩｏＴプラットフォームシステム制御エンジンユーザ定義スペースを含む、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン。
【０１７０】
各々がＩｏＴネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースと含み、ネットワークを介して少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴネットワークノードデバイス。
【０１７１】
各々がエッジデバイスセキュアシステムスペースおよびエッジデバイスユーザ定義スペースを含み、ネットワークを介して少なくとも１つのＩｏＴネットワークノードデバイスおよび少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴエッジデバイス。
【０１７２】
ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、ＩｏＴネットワークノードデバイスセキュアシステムスペース、およびエッジデバイスセキュアシステムスペースは各々、認可されていないアクセスを防止するようにセキュアされて構成される。
【０１７３】
ＩｏＴプラットフォームシステム制御エンジンユーザ定義スペース、ＩｏＴネットワークノードデバイスユーザ定義スペース、およびエッジデバイスユーザ定義スペースは各々、仮想マシンの分散型システムを形成するユーザ定義命令を受信および実行するように構成される、それぞれの仮想マシンを定義する。
【０１７４】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよびエッジデバイスセキュアシステムスペースは各々、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのＩｏＴネットワークノードデバイス、および少なくとも１つのＩｏＴエッジデバイスの間のネットワーク上の通信を制御するように構成される。
【０１７５】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、ＩｏＴネットワークノードデバイスセキュアシステムスペース、およびエッジデバイスセキュアシステムスペースは各々、ネットワーク上の通信を制御する統合型通信制御モジュールを有する。
【０１７６】
開示された実施形態の１つまたは複数の態様によれば、エッジデバイスセキュアシステムスペースは、ＩｏＴエッジデバイスのアプリケーション層と少なくとも１つのＩｏＴエッジデバイスのドライブ層との間のインターフェースを定義するように構成される。
【０１７７】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのエッジデバイスの仮想マシンは、所定のセンサ種とインターフェース接続するように少なくとも１つのＩｏＴエッジデバイスのアプリケーション層を構成するように構成される。
【０１７８】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンの仮想マシンは、ユーザ定義命令を受信するように構成される。
【０１７９】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンの仮想マシンは、ＩｏＴネットワークノードデバイスおよびＩｏＴエッジデバイスのそれぞれの仮想マシンにユーザ定義命令を伝搬するように構成される。
【０１８０】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴエッジデバイスは、ＩｏＴエッジデバイスの仮想マシンを介して多様なセンサ入力および多様な出力にインターフェース接続するように構成される。
【０１８１】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴエッジデバイスの仮想マシンは、多様なセンサ入力および多様な出力の機能をカスタマイズするように構成される。
【０１８２】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのＩｏＴネットワークノードデバイス、および少なくとも１つのＩｏＴエッジデバイスのそれぞれの仮想マシンは、スクリプト言語インターフェースにより構成可能である。
【０１８３】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのＩｏＴネットワークノードデバイス、および少なくとも１つのＩｏＴエッジデバイスのそれぞれの仮想マシンは、視覚構成インターフェースにより構成可能である。
【０１８４】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのエッジデバイスの仮想マシンは、所定のセンサ種のために少なくとも１つのエッジデバイスのアプリケーション層を構成するように構成される。
【０１８５】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームシステム制御エンジンは、統合型通信制御モジュールを含む。
【０１８６】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのネットワークノードデバイス、および少なくとも１つのＩｏＴエッジデバイスのそれぞれの仮想マシンは、特定のＩｏＴタスクを実行するように構成される。
【０１８７】
開示された実施形態の１つまたは複数の態様によれば、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのＩｏＴネットワークノードデバイス、または少なくとも１つのＩｏＴエッジデバイスのそれぞれの仮想マシンは、特定のＩｏＴタスクの一部を実行するように構成され、特定のＩｏＴタスクの一部は、少なくとも１つのＩｏＴプラットフォームシステム制御エンジン、少なくとも１つのＩｏＴネットワークノードデバイス、または少なくとも１つのＩｏＴエッジデバイスのそれぞれの仮想マシンの容量および効率特性に基づいて分配される。
【０１８８】
開示された実施形態の１つまたは複数の態様によれば、仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムを動作させる方法であって、方法は、以下のステップを含む。
【０１８９】
ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペースおよびＩｏＴプラットフォームシステム制御エンジンユーザ定義スペースを有する少なくとも１つのＩｏＴプラットフォームシステム制御エンジンを提供するステップ。
【０１９０】
ネットワークを介して少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴネットワークノードデバイスを提供するステップであって、少なくとも１つのＩｏＴネットワークノードデバイスの各々がＩｏＴネットワークノードデバイスセキュアシステムスペースおよびＩｏＴネットワークノードデバイスユーザ定義スペースを有する少なくとも１つのＩｏＴネットワークノードデバイスを提供するステップ。
【０１９１】
ネットワークを介して少なくとも１つのＩｏＴネットワークノードデバイスおよび少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと通信可能な少なくとも１つのＩｏＴエッジデバイスを提供するステップであって、少なくとも１つのＩｏＴエッジデバイスの各々がエッジデバイスセキュアシステムスペースおよびエッジデバイスユーザ定義スペースを含む少なくとも１つのＩｏＴエッジデバイスを提供するステップ。
【０１９２】
認可されていないアクセスを防止するようにセキュアされる、ＩｏＴプラットフォームシステム制御エンジンセキュアシステムスペース、ＩｏＴネットワークノードデバイスセキュアシステムスペース、およびエッジデバイスセキュアシステムスペースの各々を構成するステップ。
【０１９３】
ＩｏＴプラットフォームシステム制御エンジンユーザ定義スペース、ＩｏＴネットワークノードデバイスユーザ定義スペース、およびエッジデバイスユーザ定義スペースの各々においてそれぞれの仮想マシンを定義するステップ。
【０１９４】
各それぞれの仮想マシンがユーザ定義命令を受信および実行するように仮想マシンの分散型システムを形成するステップ。
【０１９５】
開示された実施形態の１つまたは複数の態様によれば、インターネット・オブ・シングス（ＩｏＴ）デバイスリンクは、以下を含む。
【０１９６】
プログラムコードを保管するメモリストレージ。
【０１９７】
プログラムコードを実行するマイクロコントローラであって、プログラムコードが、認可されていないアクセスを防止するようにセキュアされて構成されるセキュアプログラムコード、およびユーザ定義命令を実行するように構成されるユーザ定義プログラムコードを含むマイクロコントローラ。
【０１９８】
データをＩｏＴデバイスリンクに送信し、ＩｏＴデバイスリンクから受信するように構成される通信モジュールおよびアンテナ。
【０１９９】
データを暗号化および復号化するように構成される暗号解読ユニット。
【０２００】
ＩｏＴデバイスリンクに電力を供給するように構成される電力供給管理モジュールおよび蓄電ユニット。
【０２０１】
マイクロコントローラ操作を計時するように構成されるリアルタイムクロック。
【０２０２】
ＩｏＴデバイスリンクに対する固有ネットワークアドレスを提供するように構成されるＭＡＣアドレスモジュール。
【０２０３】
マイクロコントローラは、ＩｏＴデバイスリンクセンサの少なくとも１つの入力および出力を接続および制御するように構成されるインターフェースモジュールを有する。
【０２０４】
開示された実施形態の１つまたは複数の態様によれば、インターフェースモジュールは、天候、治安、廃棄物管理、ガス漏れ、下水道監視、水漏れ、駐車アクセス、スマート駐車、水質、構造的健全性、土壌水分、電子放射、スマート照明、街路安全、空気質、アイテム位置、水位、または公共衛生のセンサを含むＩｏＴデバイスリンクセンサに共通である。
【０２０５】
開示された実施形態の１つまたは複数の態様によれば、ユーザ定義プログラムコードは、デバイスリンクセンサの少なくとも１つの入力および出力の動作を制御するように構成される。
【０２０６】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴデバイスリンクセンサは、感知特性を感知し、暗号解読ユニットは、通信モジュールおよびアンテナが感知特性を送信する前に感知特性を暗号化する。
【０２０７】
開示された実施形態の１つまたは複数の態様によれば、インターネット・オブ・シングス（ＩｏＴ）ネットワークシステムは、以下を含む。
【０２０８】
各々が、ＩｏＴプラットフォームシステムのＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの対応する少なくとも１つと、広域ネットワークを介してＩｏＴプラットフォームシステムの各それぞれの少なくとも１つのＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスをＩｏＴプラットフォームシステム制御エンジンに通信可能にリンクするために、インターフェース接続するように構成される少なくとも１つのネットワークリンクカード。
【０２０９】
各それぞれのネットワークリンクカードの製造時に各それぞれのネットワークリンクカード上に設定され、一意に対応する暗号化鍵セットを形成するように、それぞれ製造時に少なくとも１つの各々のネットワークリンクカードと結合し、少なくとも１つの各々のネットワークリンクカード上に暗号化するように構成される製造時暗号化フィクスチャ。
【０２１０】
ＩｏＴプラットフォームシステム制御エンジンに結合されるＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイス登録認証マネージャコントローラ。登録認証マネージャコントローラは、ＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々のＩｏＴプラットフォームシステムへの認証された搭載をそれぞれ機能させるように、ＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々の対応するリンクカードの製造時に形成された暗号化鍵セットに対するセキュア対称暗号化鍵セットに基づき、ＩｏＴプラットフォームシステム内のＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々について、ＩｏＴプラットフォームシステム制御エンジンによって、初期化および登録の際に、ＩｏＴエッジデバイスおよびＩｏＴネットワークノードデバイスのうちの少なくとも１つの各々をそれぞれ登録および認証するように構成される。
【０２１１】
開示された実施形態の１つまたは複数の態様によれば、認証は、ＩｏＴエッジデバイス１２０およびＩｏＴネットワークノードデバイス登録認証マネージャコントローラによるＩｏＴネットワークシステム内におけるデバイス初期化による登録時に機能し、実質的に同時に機能する。
【０２１２】
開示された実施形態の１つまたは複数の態様によれば、暗号化鍵セットは、少なくとも、少なくとも１つの各々のネットワークリンクカードの製造時に少なくとも１つの各々のネットワークリンクカードの暗号解読ユニット中に配置される。
【０２１３】
開示された実施形態の１つまたは複数の態様によれば、インターネット・オブ・シングス（ＩｏＴ）プラットフォームシステムの暗号化鍵セキュリティシステムであって、ＩｏＴプラットフォームシステムは、ＩｏＴエッジデバイス、ＩｏＴ通信ノードデバイス、およびＩｏＴプラットフォームエンジンを備えるＩｏＴコントローラを有し、暗号化鍵セキュリティシステムは、ＩｏＴコントローラ上のＩｏＴエッジデバイス、ＩｏＴ通信ノードデバイス、およびＩｏＴプラットフォームエンジンの間の暗号化セキュリティを確保し、ＩｏＴプラットフォームシステムの暗号化鍵セキュリティシステムは、以下を含む。
【０２１４】
（製造時に）ＩｏＴエッジデバイスおよびＩｏＴ通信ノードデバイス上で暗号化鍵セットに暗号化するように配置され、暗号化鍵セキュリティシステムのＩｏＴデバイス暗号化鍵生成端を定義する暗号化鍵生成プロセッサ。
【０２１５】
暗号化鍵セットをＩｏＴプラットフォームエンジンに提供する暗号化鍵生成入力を提供するように配置されるか、または通信可能に結合され、ＩｏＴデバイス暗号化鍵生成端およびＩｏＴプラットフォームエンジン暗号化鍵生成端が暗号化鍵セキュリティシステムの対称鍵生成端を実質的に形成するように、暗号化鍵セキュリティシステムのＩｏＴプラットフォームエンジン暗号化鍵生成端を定義する別の暗号化鍵生成プロセッサ。
【０２１６】
ＩｏＴデバイス暗号化鍵生成端とＩｏＴプラットフォームエンジン暗号化鍵生成端とを結合するセキュア暗号化通信リンク。
【０２１７】
開示された実施形態の１つまたは複数の態様によれば、セキュア暗号化通信リンクは、ＩｏＴデバイス暗号化鍵生成端において生成される上位層の暗号化鍵セットを用いて階層的暗号化鍵セットの層配置を定義し、ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成される上位層の暗号化鍵セットは、上位層が従属する階層的暗号化鍵セットの層配置の主層を形成する共通暗号化鍵セットに基づく。
【０２１８】
開示された実施形態の１つまたは複数の態様によれば、主層の共通暗号化鍵セットは、ＩｏＴプラットフォームシステムから分離されて封止されている。
【０２１９】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴデバイス暗号化鍵生成端において生成された上位層の暗号化鍵セットおよびＩＯＴプラットフォームエンジン端において生成された上位層の暗号化鍵セットは、少なくとも１つの対称暗号化鍵および少なくとも１つの非対称暗号化鍵の組合せを含む。
【０２２０】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴデバイス暗号化鍵生成端において生成された暗号化鍵セットは、共通暗号化鍵セットおよび暗号化された入力からＩＯＴデバイス暗号化鍵生成端への情報に基づいており、暗号化された入力は共通暗号化鍵セットに基づいており、所定のＩｏＴデバイス製造識別特性および暗号化された入力の改ざん表示を機能させる有効性演算子を少なくとも含む。
【０２２１】
開示された実施形態の１つまたは複数の態様によれば、所定のＩｏＴデバイス製造識別特性は、ＩｏＴデバイス暗号化鍵生成端における暗号化セットの生成の基礎を形成し、暗号化鍵セットの各々は、それぞれのリンクカードの製造時での各所定のＩｏＴエッジデバイスおよび各所定のＩｏＴ通信ノードデバイスのそれぞれのリンクカード上に暗号化し、一意に対応する。
【０２２２】
開示された実施形態の１つまたは複数の態様によれば、有効性演算子は、暗号化された入力の有効性窓を定義し、生成された暗号化鍵セットの生成については、ＩｏＴデバイス暗号化鍵生成端における暗号化された入力に基づいて生成され、暗号化セットの各々に暗号化することについては、その製造時におけるそれぞれのリンクカード上に、暗号化された入力に基づいて生成される。
【０２２３】
開示された実施形態の１つまたは複数の態様によれば、暗号化された入力は、暗号化された入力がコンピュータ読取可能記憶媒体上に配置される入力生成位置からポート接続されるコンピュータ読取可能記憶媒体上に配置され、その位置は、ＩｏＴデバイス暗号化鍵生成端に対してＩｏＴデバイス暗号化鍵生成端から分離されて離間している。
【０２２４】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成される暗号化セットの各々は、ＩｏＴデバイス暗号化鍵生成端において生成された暗号化鍵セットの各対応する暗号化鍵セットに対する暗号化鍵の対称セットに少なくとも部分的に基づく。
【０２２５】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームエンジン暗号化鍵生成端において生成された暗号化鍵セットの各々は、各それぞれのＩｏＴデバイスに一意に対応する独立して生成された独立鍵と、ＩｏＴデバイス暗号化鍵生成端において生成された暗号化鍵セットの各対応する暗号化鍵セットに対する暗号化鍵の対称セットに少なくとも部分的に基づく少なくとも１つの他の鍵とを含む。
【０２２６】
開示された実施形態の１つまたは複数の態様によれば、独立鍵は、それぞれのＩｏＴデバイス用のセッション鍵を定義し、ＩｏＴプラットフォームシステムの広域ネットワークを介して、ＩｏＴプラットフォームエンジンからセッション鍵暗号化通信によってＩｏＴデバイスに入力され、セッション鍵暗号化通信は、少なくとも１つの他の鍵に基づき、セッション鍵暗号化通信の通信改ざん表示を提供する少なくとも１つの有効性演算子を有する。
【０２２７】
開示された実施形態の１つまたは複数の態様によれば、それぞれのＩｏＴデバイスに対するセッション鍵入力を具現化するセッション鍵暗号化通信は、ＩｏＴプラットフォームシステム内のそれぞれのＩｏＴデバイスの初期化のＩｏＴプラットフォームエンジン登録時または初期応答において実行される。
【０２２８】
開示された実施形態の１つまたは複数の態様によれば、ＩｏＴプラットフォームエンジンからそれぞれのＩｏＴデバイスへのセッション鍵暗号化通信の初期応答と、セッション鍵暗号化通信からのセッション鍵の復号化と、それぞれのＩｏＴデバイスへの入力とは、それぞれのＩｏＴデバイスの認証と、ＩｏＴプラットフォームシステムへのそれぞれのＩｏＴデバイスの搭載を機能させる。
【０２２９】
開示された実施形態の１つまたは複数の態様によれば、独立鍵および暗号化鍵の対称セットに少なくとも部分的に基づく少なくとも１つの他の鍵は、ＩｏＴプラットフォームシステムのＩｏＴデバイス端とＩｏＴプラットフォームエンジン端とを接続する通信リンクの端同士を繋ぐ暗号化セキュリティを確保する階層的暗号化鍵セットの層配置の他の鍵セットの上位層を定義する。
【０２３０】
開示された実施形態の１つまたは複数の態様によれば、双方向通信のために複数のＩｏＴプラットフォーム通信ネットワークノードと通信可能に結合される複数のＩｏＴプラットフォームエッジデバイスのインターネット・オブ・シングス（ＩｏＴ）プラットフォームシステムであって、システムは、以下を含む。
【０２３１】
双方向通信のためにＩｏＴプラットフォーム通信ネットワークノードと通信可能に結合され、これによって双方向通信のためにＩｏＴプラットフォームエッジデバイスと通信可能に結合されるＩｏＴプラットフォームエンジン。
【０２３２】
ＩｏＴプラットフォームエンジンは複数の機能モジュールを有し、ＩｏＴプラットフォームエンジンは、可変選択可能な数のサーバノードクラウドのサーバノード上に配置され、複数の機能モジュールのうちの少なくとも１つの機能モジュールは、プラットフォームエンジンをサーバノードに選択可能に格納するように構成される提供エンジンモジュールであり、複数の機能モジュールのうちの別のものは、提供エンジンモジュールを含むプラットフォームエンジンの機能モジュールの機能にアクセスして機能させるように、ＩｏＴユーザの証明および権限を保管するセキュア封止ストレージ部であり、封止ストレージ部の外側ではプラットフォームエンジンの複数の機能モジュールの相互から封止され、セキュア封止ストレージ部は、プラットフォームエンジンが配置されるサーバノードの数のセキュアかつ柔軟な提供選択を機能させるように、提供エンジンモジュールを初期化する認証を含むユーザ権限を管理し、ユーザ権限にアクセス可能であるように構成される。
【０２３３】
開示された実施形態の１つまたは複数の態様によれば、セキュア封止ストレージ部は、セキュア封止の完全性の提供が、ＩｏＴプラットフォームエンジンの外部から切り離されて維持されるように配置される。
【０２３４】
開示された実施形態の１つまたは複数の態様によれば、セキュア封止ストレージ部は、多要素ユーザ認証を管理し、アクセスを可能とする。
【０２３５】
開示された実施形態の１つまたは複数の態様によれば、サーバノードクラウドは、サービスとしてのインフラストラクチャ（ＩＡＡＳ）プラットフォームとして、またはプライベートサーバクラウドとして配置される。
【０２３６】
開示された実施形態の１つまたは複数の態様によれば、プラットフォームエンジンは、分散型ストレージ層で構成され、セキュア封止ストレージ部は、分散型ストレージ層内に配置される。
【０２３７】
開示された実施形態の１つまたは複数の態様によれば、セキュア封止ストレージ部は、複数のサーバノードにわたって分布され、セキュア封止ストレージ部の機能を機能させるように複数のサーバノード内において少なくとも最小の決定数だけ設けられる。
【０２３８】
開示された実施形態の１つまたは複数の態様によれば、複数の機能モジュールのうちの少なくとも１つは、中央サービス検出監視機能を定義し、中央サービス検出監視機能モジュールは、複数のサーバノードにわたって分布され、中央サービス検出監視機能を機能させるように複数のサーバノード内において少なくとも最小の決定数だけ設けられる。
【０２３９】
開示された実施形態の１つまたは複数の態様によれば、中央サービス検出監視機能は、提供モジュールが格納されて新たに提供されるサーバノード上の各プラットフォームエンジンサービスの実行開始を登録するように構成される。
【０２４０】
開示された実施形態の１つまたは複数の態様によれば、提供エンジンモジュールは、提供される選択されたサーバノードの各々における選択されたサービスを開始するために、プラットフォームエンジンが格納されるように提供されるサーバノードの数の提供選択、選択されて提供されるサーバノードの数に対するネットワークトポロジの選択、およびプラットフォームエンジンの所定のサービスからのサービスの選択を機能させるように構成される。
【０２４１】
開示された実施形態の１つまたは複数の態様によれば、提供エンジンモジュールは、提供される選択されたサーバノードの各々における選択されたサービスの選択および設定が、ただ１つの構成ファイルによって特定され、選択が、選択されたサーバノードの各々の実質的自動設定を機能させる提供エンジンモジュールに与えられるたた１つの提供スクリプトに入力されるように構成される。
【０２４２】
開示された実施形態の１つまたは複数の態様によれば、設定時において、選択されたサーバノードの各それぞれのメタデータファイルは、選択されたサーバノードの各それぞれに一意に対応する秘密鍵で署名され、それぞれの選択されたサーバノードに対応する秘密鍵は、セキュア封止ストレージ部において封止され、それぞれの選択されたサーバノードの設定時に署名の受領次第、セキュア封止ストレージ部によって認証される。
【０２４３】
開示された実施形態の１つまたは複数の態様によれば、仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、ＩｏＴシステムは、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを介して通信可能な少なくとも１つのＩｏＴネットワークノードデバイスと、各々がＩｏＴエッジデバイスセキュアシステムスペースおよびＩｏＴエッジデバイスユーザ定義スペースを含み、少なくとも１つのＩｏＴネットワークノードデバイスおよび少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを介して通信可能な少なくとも１つのＩｏＴエッジデバイスとを含み、ＩｏＴエッジデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、ＩｏＴエッジデバイスユーザ定義スペースは、仮想マシンの分散型システムを形成するユーザ定義命令を受信および実行するように構成される。
【０２４４】
仮想マシンの分散型システムを含むインターネット・オブ・シングス（ＩｏＴ）システムであって、ＩｏＴシステムは、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンと、各々がＩｏＴネットワークノードデバイスセキュアシステムスペースと、ＩｏＴネットワークノードデバイスユーザ定義スペースとを含み、少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを介して通信可能な少なくとも１つのＩｏＴネットワークノードデバイスと、各々がＩｏＴエッジデバイスセキュアシステムスペースおよびＩｏＴエッジデバイスユーザ定義スペースを含み、少なくとも１つのＩｏＴネットワークノードデバイスおよび少なくとも１つのＩｏＴプラットフォームシステム制御エンジンとネットワークを通じて通信可能な少なくとも１つのＩｏＴエッジデバイスとを含み、ＩｏＴエッジデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、ＩｏＴエッジデバイスユーザ定義スペースは、仮想マシンの分散型システムを形成するユーザ定義命令を受信および実行するように構成され、ＩｏＴネットワークノードデバイスセキュアシステムスペースは、認可されていないアクセスを防止するようにセキュアされて構成され、ＩｏＴネットワークノードデバイスユーザ定義スペースは、仮想マシンの分散型システムを構成するユーザ定義命令を受信および実行するように構成される。
【０２４５】
上記説明は、本開示の態様の単なる例示であると理解されるべきである。前述の説明は本開示の態様の単なる例示であることを理解されたい。本開示の態様から逸脱することなく、様々な代替形態および修正形態が当業者によって考案され得る。したがって、本開示の態様は、添付の特許請求の範囲の範囲内に含まれるすべてのそのような代替形態、修正形態、および変形形態を包含することを意図している。さらに、異なる特徴が互いに異なる従属請求項または独立請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用され得ず、そのような組合せが本発明の態様の範囲内にあることを示す。
【図１】
2019531010.tif 000003
【図１Ａ】
2019531010.tif 000004
【図２Ａ】
2019531010.tif 000005
【図２Ａ１】
2019531010.tif 000006
【図２Ａ２】
2019531010.tif 000007
【図２Ｂ】
2019531010.tif 000008
【図２Ｂ１】
2019531010.tif 000009
【図２Ｂ２】
2019531010.tif 000010
【図２Ｃ】
2019531010.tif 000011
【図２Ｄ】
2019531010.tif 000012
【図２Ｅ】
2019531010.tif 000013
【図３】
2019531010.tif 000014
【図３Ａ】
2019531010.tif 000015
【図４】
2019531010.tif 000016
【図５】
2019531010.tif 000017
【図６】
2019531010.tif 000018
【図７】
2019531010.tif 000019
【図８】
2019531010.tif 000020
【図９】
2019531010.tif 000021
【図１０】
2019531010.tif 000022
【図１１】
2019531010.tif 000023
【図１２Ａ】
2019531010.tif 000024
【図１２Ｂ】
2019531010.tif 000025
【図１３Ａ】
2019531010.tif 000026
【図１３Ｂ】
2019531010.tif 000027
【図１４】
2019531010.tif 000028
【図１４Ａ】
2019531010.tif 000029
【図１４Ｂ】
2019531010.tif 000030
【図１５】
2019531010.tif 000031
【図１６】
2019531010.tif 000032
【図１７】
2019531010.tif 000033
【図１８】
2019531010.tif 000034
【図１９】
2019531010.tif 000035
【図２０】
2019531010.tif 000036
【図２１】
2019531010.tif 000037
【図２２】
2019531010.tif 000038
【図２３】
2019531010.tif 000039
【図２４】
2019531010.tif 000040
【国際調査報告】
2019531010.tif 000041