(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】コンピューティングデバイスとクラウドベースサービスとを接続するモジュール上データシステム(DSoM)
(51)【国際特許分類】
H04W 28/02 20090101AFI20231031BHJP
H04W 8/22 20090101ALI20231031BHJP
【FI】
H04W28/02
H04W8/22
(21)【出願番号】P 2021527013
(86)(22)【出願日】2019-07-25
(86)【国際出願番号】 US2019043372
(87)【国際公開番号】W WO2020023709
(87)【国際公開日】2020-01-30
【審査請求日】2022-07-22
(32)【優先日】2018-07-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-02-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521032793
【氏名又は名称】ブルース インク.
【氏名又は名称原語表記】BLUES INC.
(74)【代理人】
【識別番号】100107364
【氏名又は名称】斉藤 達也
(72)【発明者】
【氏名】オジー,レイモンド エドワード
【審査官】▲高▼木 裕子
(56)【参考文献】
【文献】特開2014-093095(JP,A)
【文献】特表2017-517782(JP,A)
【文献】特表2018-515965(JP,A)
【文献】米国特許出願公開第2015/0363289(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24 - 7/26
H04W 4/00 - 99/00
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
1つ以上のデータ変更を互いに
非同期で同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、
前記コンピューティングデバイス及び前記クラウドベースサービスは、当該通信デバイスを介して通信結合され、当該通信デバイスは、前記コンピューティングデバイスに通信的に結合
されるように構成されている、通信デバイスであり、
無線セルラ送受信器を備え、
前記通信デバイスは、
1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレ
イを、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクト
を、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の1つ以上を実施するように構成されている、
通信デバイス。
【請求項2】
前記コンピューティングデバイスが、マイクロコントローラである、
請求項1に記載の通信デバイス。
【請求項3】
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
請求項1に記載の通信デバイス。
【請求項4】
前記シリアルリンクが、ユニバーサルアシンクロナスレシーバ/トランスミッタ(UART)、ユニバーサルシリアルバス(USB)、インターインテグレーテッドサーキット(I2C)、シリアルペリフェラルインタフェース(SPI)、MODBUS(登録商標)、コントローラエリアネットワーク(CAN)バス、及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、のうちの1つ以上を含む、請求項3に記載の通信デバイス。
【請求項5】
前記通信デバイスが、前記コンピューティングデバイスから通信ポリシーを受信するように構成されている、
請求項1に記載の通信デバイス。
【請求項6】
前記通信ポリシーが、消費電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先すること、のうちの1つ以上を含む、前記通信デバイスのために1つ以上の通信セッション基準を定義する、
請求項5に記載の通信デバイス。
【請求項7】
前記通信デバイスが、
前記コンピューティングデバイスから受信した
前記通信ポリシーに基づいて、前記無線セルラ送受信器を介して、前記データオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するためのスケジュールを生成するステップと、
前記コンピューティングデバイスから受信した
前記通信ポリシーに基づいて、前記無線セルラ送受信器を介して、前記クラウドベースサービスから前記データオブジェクトアレイの少なくとも一部分を受信するためのスケジュールを生成するステップと、
の1つ以上を実施するようにさらに構成されている、
請求項5に記載の通信デバイス。
【請求項8】
前記通信デバイスが、前記1つ以上の
データオブジェクトにメタデータを追加するように構成され、前記メタデータは、前記通信デバイスの時間及び位置のうちの1つ以上を含む、
請求項7に記載の通信デバイス。
【請求項9】
前記通信デバイスが、前記コンピューティングデバイスから受信した前記通信ポリシーと、前記1つ以上のデータオブジェクトに追加されたメタデータ
とに基づいて、前記データオブジェクトの圧縮及び暗号化の1つ以上を行うように構成されている、
請求項8に記載の通信デバイス。
【請求項10】
前記1つ以上のデータオブジェクトが、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトである、
請求項1に記載の通信デバイス。
【請求項11】
前記通信デバイスが、
前記通信デバイスの前記メモリに記憶させるために、前記無線セルラ送受信器を介して、前記1つ以上のデータオブジェクトの形式のファームウェアデータを受信するステップと、
前記コンピューティングデバイスに受信した前記ファームウェアデータをインストールするため、受信した前記ファームウェアデータの少なくとも一部を前記コンピューティングデバイスに送信するように、前記コンピューティングデバイスから1つ以上のコマンドを受信するステップと、
を実施するようにさらに構成されている、
請求項1に記載の通信デバイス。
【請求項12】
前記通信デバイスが、前記無線セルラ送受信器の電源の有効化及び無効化の1つ以上を実施するようにさらに構成されている、
請求項1に記載の通信デバイス。
【請求項13】
前記通信デバイスが、全球測位衛星システム(GNSS)システムをさらに備え、GNSSアンテナと通信結合されるようにさらに構成されている、
請求項1に記載の通信デバイス。
【請求項14】
加速度計であって、前記加速度計が動きを検出したときに、前記通信デバイスに前記GNSSシステムからGNSS位置情報をサンプリングさせるように構成された前記加速度計、をさらに備える、
請求項13に記載の通信デバイス。
【請求項15】
製造時に前記通信デバイスの不揮発性メモリが、前記通信デバイスのセキュア認証及びクラウドベースサービスとの通信を可能にする1つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成される、
請求項1に記載の通信デバイス。
【請求項16】
1つ以上の
データを互いに非同期で同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、
前記コンピューティングデバイス及び前記クラウドベースサービスは、当該通信デバイスを介して通信結合された、通信デバイスであり、
無線セルラ送受信器を備え、
前記通信デバイスは、
1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイ
を、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクト
を、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の1つ以上を実施するように構成されている、
通信デバイス。
【請求項17】
前記コンピューティングデバイスが、マイクロコントローラである、
請求項16に記載の通信デバイス。
【請求項18】
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
請求項16に記載の通信デバイス。
【請求項19】
前記1つ以上のデータオブジェクトが、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトである、
請求項16に記載の通信デバ
イス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年7月25日に出願された米国特許仮出願第62/703,054号、及び2019年2月20日に出願された米国特許仮出願第62/807,840号の利益を主張するものである。上記出願は両方とも、参照によって本明細書に組み込まれている。
【背景技術】
【0002】
セルラ通信業界からの、通信に関しての展望は2つの中核的前提に支配される。第1の前提として、グローバル相互運用性が何よりも重要(速度よりも重要)であり、テクノロジは規格基準委員会によって定義されなければならない。第2の前提として、カスタマは何であれ規格基準委員会が作り出すもの(業界と政府が設計及び構築するもの)を使用することになり、業界はその計量式セルラビジネスモデルを永久に使用することになり、カスタマはそれについていくことになる。カスタマは、テクノロジ又はその要件を定義することに関与せず、開発者等とはつながりがない。
【0003】
コンピューティング/IT業界からの、通信に関しての展望は、概して2つの中核的前提に支配される。第1の前提として、テクノロジは、革新者と構築者と業界とによって定義されるべきである。開発者は最良を知っており、アーキテクチャは、強力なハイエンドプラットフォームに向けての進歩的な考え方で定義されるべきであって、能力が劣る過去のプラットフォームにあまりフォーカスすべきではない。第2の前提として、多種多様なデバイスとプロトコルとネットワークとが存在する中で、支配的なプラットフォーム提供者の最も重要な役割は、あらゆるデバイスとあらゆるアプリケーションをサポートし、全てのネットワークを、ストリームを送達するソケットを露出させるパイプとして扱う、一般化された抽象化を作成することである。
【0004】
これらの業界はいずれも、セルラ中心の大量のモノのインターネット(IoT)(数十億個のデバイス)に関してはいずれの展望も受け入れられないという事実を完全には受け入れていない。ATコマンド及びモデムモジュール、並びにカスタムネゴシエーションによるセルラ契約の低レベル性、及び規格に基づく制約は複雑すぎる場合があり、スケーリングが不可能である。更に、クラウドに接続する際に必要とされる証明書管理及び高レベルのLinux(登録商標)/Windows(登録商標)ベースのアプリケーションプログラマブルインタフェース(API)の複雑さは、組み込み開発者が極めて低電力且つ安価なマイクロコントローラにおいて極めて単純なことをしようとする場合には、単純に現実的ではない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記従来の技術における課題を解決するためになされたものである。
【課題を解決するための手段】
【0006】
一例示的実施態様では、1つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスが提供される。前記通信デバイスは、前記コンピューティングデバイスに通信的に結合され、無線セルラ送受信器を備えるように構成されてよい。前記通信デバイスは、1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップと、1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップ、の1つ以上を実施するように構成されてよい。前記1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップは、前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、を含んでよい。前記1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップは、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、を含んでよい。
【0007】
以下の特徴例のうちの1つ以上が含まれてよい。前記コンピューティングデバイスは、マイクロコントローラであってよい。前記通信デバイスは、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されてよい。前記シリアルリンクは、ユニバーサルアシンクロナスレシーバ/トランスミッタ(UART)、ユニバーサルシリアルバス(USB)、インターインテグレーテッドサーキット(I2C)、シリアルペリフェラルインタフェース(SPI)、MODBUS(登録商標)、コントローラエリアネットワーク(CAN)バス、及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、のうちの1つ以上を含んでよい。前記通信デバイスは、前記コンピューティングデバイスから通信ポリシーを受信するように構成されてよい。前記通信ポリシーは、消費電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先すること、のうちの1つ以上を含む、前記通信デバイスのために1つ以上の通信セッション基準を定義してよい。前記通信デバイスは、前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記データオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するためのスケジュールを生成するステップと、前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記クラウドベースサービスから前記データオブジェクトアレイの少なくとも一部分を受信するためのスケジュールを生成するステップと、の1つ以上を実施するようにさらに構成されてよい。前記通信デバイスは、前記1つ以上のオブジェクトにメタデータを追加するように構成されてよく、前記メタデータは、前記通信デバイスの時間及び位置のうちの1つ以上を含んでよい。前記通信デバイスは、前記コンピューティングデバイスから受信した前記通信ポリシーと、前記1つ以上のデータオブジェクトに追加されたメタデータと、の少なくとも一部に基づいて、前記データオブジェクトの圧縮及び暗号化の1つ以上を行うように構成されてよい。前記1つ以上のデータオブジェクトは、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトであってよい。前記通信デバイスは、前記通信デバイスの前記メモリに記憶させるために、前記無線セルラ送受信器を介して、前記1つ以上のデータオブジェクトの形式のファームウェアデータを受信するステップと、前記コンピューティングデバイスに受信した前記ファームウェアデータをインストールするため、受信した前記ファームウェアデータの少なくとも一部を前記コンピューティングデバイスに送信するように、前記コンピューティングデバイスから1つ以上のコマンドを受信するステップと、を実施するようにさらに構成されてよい。前記通信デバイスは、前記無線セルラ送受信器の電源の有効化及び無効化の1つ以上を実施するようにさらに構成されてよい。前記通信デバイスは、全球測位衛星システム(GNSS)システムをさらに備え、GNSSアンテナと通信結合されるようにさらに構成されてよい。前記通信デバイスは、加速度計であって、前記加速度計が動きを検出したときに、前記通信デバイスに前記GNSSシステムからGNSS位置情報をサンプリングさせるように構成された前記加速度計、をさらに備えてよい。前記通信デバイスは、製造時に前記通信デバイスの不揮発性メモリが、前記通信デバイスのセキュア認証及びクラウドベースサービスとの通信を可能にする1つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成されてよい。
【0008】
別の例示的実施態様では、1つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスが提供される。前記通信デバイスは、無線セルラ送受信器を備えてよく、1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップと、1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップを実施するように構成されてよい。前記1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップは、前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップとを含んでよい。前記1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップは、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップとを含んでよい。
【0009】
以下の特徴例のうちの1つ以上が含まれてよい。前記コンピューティングデバイスは、マイクロコントローラであってよい。前記通信デバイスは、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されてよい。前記1つ以上のデータオブジェクトは、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトであってよい。
【0010】
更に別の例示的実施態様では、通信デバイスは、シリアルリンクを介してコンピューティングデバイスに通信的に結合されるように構成されている通信デバイスであって、前記コンピューティングデバイスが、前記シリアルリンクを介して通信される1つ以上のJavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトを使用して、前記通信デバイスとリクエスト及びレスポンスを通信するように構成されてよい。
【0011】
1つ以上の例示的実施態様の詳細を、添付図面及び以下の記述において説明する。他の可能な特徴例及び/又は可能な利点例も、本明細書、図面、及び特許請求項から明らかになるであろう。実施態様によってはそのような可能な特徴例及び/又は可能な利点例がない場合があるが、そのような可能な特徴例及び/又は可能な利点例は、実施態様によっては必ずしも必要とされない場合がある。
【0012】
各種図面間で類似の参照符号は類似の要素を表す。
【図面の簡単な説明】
【0013】
【
図1】本開示の1つ以上の例示的実施態様による通信システムの例示的概略図である。
【
図4】本開示の1つ以上の例示的実施態様による、コンピューティングデバイス及び無線セルラ送受信器と通信結合された通信デバイスの例示的概略図である。
【
図5】本開示の1つ以上の例示的実施態様による、1つ以上のデータオブジェクトアレイを有する通信システムの例示的概略図である。
【
図6】本開示の1つ以上の例示的実施態様による、分散複製時空間データベースを定義する為に通信デバイスと通信ハブとの間で同期されているデータオブジェクトアレイのデータオブジェクトの例示的概略図である。
【
図7】本開示の1つ以上の例示的実施態様による、通信ハブに関連付けられた管理ツールの例示的概略図である。
【
図8】本開示の1つ以上の例示的実施態様による、1つ以上のデータオブジェクトアレイを有する通信システムの例示的概略図である。
【
図10】本開示の1つ以上の例示的実施態様による、通信ハブに関連付けられた管理ツールの例示的概略図である。
【
図12】本開示の1つ以上の例示的実施態様による通信ハブの概略図である。
【発明を実施するための形態】
【0014】
上述のように、現時点ではセルラ通信に関して全く異なる2つのシステムアーキテクチャが存在し、両方とも広く支持されている。そして両方とも圧倒的に複雑である。例えば、セルラ通信業界からの展望は2つの中核的前提に支配される。第1の前提として、グローバル相互運用性が何よりも重要(速度よりも重要)であり、テクノロジは規格基準委員会によって定義されなければならない。第2の前提として、カスタマは何であれ規格基準委員会が作り出すもの(業界と政府が設計及び構築するもの)を使用することになり、業界はその計量式セルラビジネスモデルを永久に使用することになり、カスタマはそれについていくことになる。カスタマは、テクノロジ又はその要件を定義することに関与せず、開発者等とはつながりがない。
【0015】
コンピューティング/IT業界からの、通信に関しての展望は、概して2つの中核的前提に支配される。第1の前提として、テクノロジは、革新者と構築者と業界とによって定義されるべきである。開発者は最良を知っており、アーキテクチャは、強力なハイエンドプラットフォームに向けての進歩的な考え方で定義されるべきであって、能力が劣る過去のプラットフォームにあまりフォーカスすべきではない。第2の前提として、多種多様なデバイスとプロトコルとネットワークとが存在する中で、支配的なプラットフォーム提供者の最も重要な役割は、あらゆるデバイスとあらゆるアプリケーションをサポートし、全てのネットワークを、ストリームを送達するソケットを露出させるパイプとして扱う、一般化された抽象化を作成することである。例えば、トランスポートとしての64kbpsセルラには関心が持たれておらず、エッジにある64KBマイクロコントローラには関心が持たれていない。
【0016】
これらの業界はいずれも、セルラ中心の大量のモノのインターネット(IoT)(数十億個のデバイス)に関してはいずれの展望も受け入れられないという事実を完全には受け入れていない。ATコマンド及びモデムモジュール、並びにカスタムネゴシエーションによるセルラ契約の低レベル性、及び規格に基づく制約は複雑すぎる場合があり、スケーリングが不可能である。更に、クラウドに接続する際に必要とされる証明書管理及び高レベルのLinux/Windowsベースのアプリケーションプログラマブルインタフェース(API)の複雑さは、組み込み開発者が極めて低電力且つ安価なマイクロコントローラにおいて極めて単純なことをしようとする場合には、単純に現実的ではない。
【0017】
後で詳細に論じるように、本開示の実施形態は、マイクロコントローラをクラウドベースサービスに通信結合するように構成されたモジュール上データシステム(data system on a module(DSoM))、パッケージ内データシステム(data system in a package(DSiP))、又は通信デバイス及び/又は通信ハブを含んでよい。後で詳細に述べるように、本開示の実施形態は、次に挙げる特徴の1つ以上を備えてよく、それらの特徴は、モジュール上データシステム(DSoM)であって、モデム/無線セルラ送受信器、プリペイドセルラモジュール、ストレージ、IP及びTLSのスタック、セキュアエレメント及び鍵/証明書、GPS及び加速度計を有し、SSID、パスワード、アクセスポイント、ゲートウェイ、キャリア、又はSIMを扱う面倒のない接続性を提供するモジュール上データシステム(DSoM)、プロビジョニング課題が皆無であり、ハードウェア暗号化鍵及び暗号化された「インターネットからの」通信を有するセキュリティ、モデム、接続、キュー、又はストレージを管理する複雑さのないバッテリ駆動(μA)セルラ、データをそれが属する場所(例えば、アマゾンウェブサービス(Amazon Web Services(AWS(商標)))、アズール(Azure(商標))、グーグルクラウドストレージ(Google Cloud Storage(商標))、又はカスタムクラウド)まで直接ルーティングする、極めて薄い「サービスとしてのインフラストラクチャ」(IaaS)、及び可動部分がほとんどなく、あらゆるスキルレベルで低障壁であることである(AWSは、米国、他の国々、又はその両方におけるアマゾン・ドット・コム・インク(Amazon.com, Inc.)の商標であり、Azureは、米国、他の国々、又はその両方におけるマイクロソフト・コーポレーション(Microsoft Corporation)の登録商標であり、Google Cloud Storageは、米国、他の国々、又はその両方におけるグーグルLLC(Google LLC)の登録商標である)。このように、そして後で詳細に論じるように、本開示の実施形態は、セキュア通信モジュール上にパッケージされ、インターネットベースの通信ハブと統合された分散複製時空間データベースを備えてよい。
【0018】
図1の例を参照すると、幾つかの実施形態では、通信システム(例えば、通信システム100)において、大まかに、通信デバイス(例えば、通信デバイス102)がコンピューティングデバイス(例えば、コンピューティングデバイス104)及び通信ハブ(例えば、通信ハブ106)と通信結合されるように構成されてよく、通信ハブ(例えば、通信ハブ106)はクラウドベースサービス(例えば、クラウドベースサービス108)と通信結合されるように構成されてよい。後で詳細に論じるように、アプリケーションがコンピューティングデバイス(例えば、コンピューティングデバイス104)上で書かれてよく、コンピューティングデバイス(例えば、コンピューティングデバイス104)からのデータ(例えば、データオブジェクト110)は、通信デバイス(例えば、通信デバイス102)との通信の為にフォーマットされてよく、通信ハブ(例えば、通信ハブ106)との間でやり取りされてよい。通信ハブ(例えば、通信ハブ106)は、クラウドベースサービス(例えば、クラウドベースサービス108)又はアプリケーションとの間でデータをやり取りしてよい。幾つかの実施形態では、コンピューティングデバイス(例えば、マイクロコントローラ)を、クラウドベースサービスと通信するように構成する為の、電源及びストレージの管理、プロビジョニング及びセキュリティ及びソフトウェアアップデート、無線帯域及びキャリアの管理、規制証明書、ビジネスモデル等は、全て通信デバイス及び通信ハブによって管理されてよい。
【0019】
幾つかの実施形態では、通信デバイスはコンピューティングデバイスをクラウドベースサービスに通信結合してよい。幾つかの実施形態では、コンピューティングデバイスはマイクロコントローラを含んでよい。マイクロコントローラ(「MCU」)は、一般に、単一集積回路上にあって製品のアプリケーションロジックを実行するコンピューティングデバイスを含んでよい。MCUは、ベンダのソフトウェア開発キット(SDK)により、又は最小限のオペレーティング環境(例えば、FreeRTOS、Arm(登録商標)、Mbed(商標) IoT Device Platform等)により「裸」で動作することが可能である(Armは、米国、他の国々、又はその両方におけるアーム・ホールディングス(Arm Holdings)の登録商標である)。幾つかの実施形態では、MCUは、そのハードウェア設計の多くの側面をよりハイエンドのコンポーネント(例えば、シングルボードコンピュータ)と共有しているとしても、Linux(登録商標)(例えば、Linuxカーネルをベースとする任意のオペレーティングシステム)を実行することができない(Linuxは、米国、他の国々、又はその両方におけるリーナス・トーバルズ(Linus Torvalds)の登録商標である)。当該技術分野において知られているように、MCUは、一般に、1つ以上のCPUコア、メモリ(例えば、RAM)、入出力周辺装置等を含んでよい。
【0020】
幾つかの実施形態では、コンピューティングデバイスはシングルボードコンピュータ(「SBC」)を含んでよい。SBCは、一般に、Linux(又は、メモリ管理ユニット(MMU)を必要とする任意のOS(例えば、Microsoft(登録商標) Windows(登録商標)又はAndroid(商標)))をベースとするコンピュータを含んでよい(Microsoft及びWindowsは、米国、他の国々、又はその両方におけるマイクロソフト・コーポレーション(Microsoft Corporation)の登録商標である)。しかしながら、当然のこととして、他のオペレーティングシステムがSBCで使用されてよく、且つ/又はSBCにインストールされてよく、そのようなオペレーティングシステムとして、Microsoft(登録商標) Windows(登録商標)、Mac(登録商標) OS X(登録商標)、Red Hat(登録商標) Linux(登録商標)、Windows(登録商標) Mobile、Chrome OS、Blackberry OS、Fire OS、又はカスタムオペレーティングシステムがあり、これらに限定されない(Mac及びOS Xは、米国、他の国々、又はその両方におけるアップル・インク(Apple Inc.)の登録商標であり、Red Hatは、米国、他の国々、又はその両方におけるレッド・ハット・コーポレーション(Red Hat Corporation)の登録商標である)。
【0021】
クラウドベースサービスは、一般に、エンティティ自体の構内にあるサーバ(例えば、カスタマのサーバ)から提供されるのではなく、ユーザがオンデマンドでクラウドコンピューティングプロバイダのサーバからインターネット経由で利用可能になる任意のサービス又はアプリケーションを含んでよい。クラウドサービスの例として、一般に、オンラインデータストレージ及びバックアップソリューション、ウェブベースの電子メールサービス、ホストされたオフィススイート及びドキュメントコラボレーションサービス、データベース処理、管理された技術サポートサービス等があってよい。当然のことながら、いかなるクラウドベースサービスも本開示の範囲内で使用可能である。
【0022】
幾つかの実施形態では、通信デバイスはコンピューティングデバイスと通信結合されてよい。上述のように、幾つかの実施形態では、コンピューティングデバイスはマイクロコントローラであってよい。幾つかの実施形態では、通信デバイスは、モジュール上データシステム(DSoM)又はパッケージ内データシステム(DSip)であってよい。当該技術分野において知られているように、DSoMは、一般に、システム機能を単一モジュールに統合したボードレベルの回路を含んでよく、DSiPは、一般に、単一チップキャリアパッケージに封入された多数の集積回路を含んでよい。幾つかの実施形態では、通信デバイスは、カスタマのコンピューティングデバイスとクラウドベースサービスとの間のデータパケット(例えば、データオブジェクト)のセキュア通信を、セルラ経由で、電力効率よく、非同期で段階的に実施して管理するように構成されてよい。
【0023】
幾つかの実施形態では、通信デバイスは、カスタマアプリケーションコードをホストしなくてよいので、アプリケーションプロセッサでなくてよい。幾つかの実施形態では、通信デバイスは、2つの中核的タスク、即ち、1)データオブジェクトの双方向非同期セキュアデータ通信、及び2)周辺装置の電源管理にフォーカスされたインテリジェント周辺装置であってよい。
【0024】
一例では、通信デバイスは、広い範囲の様々な状況に組み込まれるように設計された小型の業界標準M.2 3030 (NGFF) Key Eフォームファクタ(30mm平方)を使用してパッケージされてよい。幾つかの実施形態では、M.2フォームファクタは組み込みSIM(eSIM)を有してよく、組み込まれたSIMスイッチにより、ハードウェア設計者は、必要に応じて、ソフトウェアで選択可能な外部SIMを利用することが可能である。幾つかの実施形態では、通信デバイスは1つ以上のプロセッサを含んでよい。例えば、通信デバイスのリクエストプロセッサ(例えば、STM32L4S5)は、例えば、1.7~3.6Vの範囲の回路とインタフェースすることが可能であり、ソケットは、様々な設計ニーズに適合するように、主電源電圧とは別個にそのプロセッサに給電することが可能である。上記では動作電圧が特定範囲のフォームファクタ及びプロセッサの例を示したが、当然のことながら、他のフォームファクタ、プロセッサ、及び電圧動作範囲も本開示の範囲内で使用されてよい。
【0025】
幾つかの実施形態では、後で詳細に述べるように、通信デバイスの機能性は、通信デバイスの1つ以上のプロセッサを使用して実施されてよい。
【0026】
幾つかの実施形態では、通信デバイスの主電源電圧は「V+」と称されてよく、無線セルラ送受信器(例えば、Quectel BG96モデム及び関連回路)に使用されてよい。無線セルラ送受信器の一例について論じたが、当然のことながら、他の無線セルラ送受信器及び/又はモデムの使用も本開示の範囲内で可能である。幾つかの実施形態では、通信デバイスのオンボードレギュレータが、例えば、LiPoバッテリに直接接続されるように構成されてよく、例えば、2.5~5.5Vの範囲の任意の電圧が供給されてよい。しかしながら、当然のこととして、電圧範囲が異なる他の電源(例えば、非バッテリ電源、他のタイプのバッテリ、ソーラー電源等)も本開示の範囲内で使用されてよい。
【0027】
更に
図2の例を参照すると、幾つかの実施形態では、通信デバイスは、シリアルリンク経由でコンピューティングデバイスと通信結合されるように構成されてよい。このように、通信デバイス102は、2本のワイヤでコンピューティングデバイス104と結合されてよい。例えば、コンピューティングデバイス(MCU)は、シリアルリンク(例えば、シリアルリンク202)を使用して通信デバイスにリクエストを送信するオプションを有してよい。幾つかの実施形態では、シリアルリンク(例えば、シリアルリンク202)は、ユニバーサルアシンクロナスレシーバ/トランスミッタ(UART)、ユニバーサルシリアルバス(USB)、インターインテグレーテッドサーキット(I
2C)、シリアルペリフェラルインタフェース(SPI)、MODBUS(登録商標)、コントローラエリアネットワーク(CAN)バス、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、又は他の任意のシリアルリンク/プロトコルのうちの1つ以上であってよい。幾つかの実施形態では、通信デバイス(例えば、通信デバイス102)のシリアルポートは、コンピューティングデバイス(例えば、コンピューティングデバイス104)によって駆動されるリクエスト/レスポンスであってよい。幾つかの実施形態では、通信デバイス102は、通信デバイス102を、I
2Cスレーブデバイスとして動作するように構成することによって、コンピューティングデバイス104と通信結合されてよい。当該技術分野において知られているように、I
2Cは、スレーブデバイスと通信するように構成されたコントローラとの標準の双方向インタフェースである。幾つかの実施形態では、I
2Cは、コンピューティングデバイス104と通信デバイス102との間の通信の為の極めて低電力のインタフェースを提供することが可能である。
【0028】
一例では、UARTの代替としてUSBコネクタが追加されてよく、USBコネクタは、通信デバイスがLinux(登録商標)ホストとともに使用されることを可能にできる。幾つかの実施形態では、シリアルリンクのボーレートは固定でも可変でもよい。一例では、ボーレートは、固定ボーレート(例えば、9600bps)で動作する内部低電力UARTを使用することにより極めて低い電力消費を達成するように固定されてよい。9600bpsという例を示したが、当然のことながら、任意のボーレートが本開示の範囲内で使用されてよい。
【0029】
幾つかの実施形態では、通信デバイス102は、固定ボーレートのプライマリシリアルリンクと、自動ボーレート検出を有するセカンダリシリアルリンク又は補助シリアルリンクとをサポートしてよい。幾つかの実施形態では、このインタフェース又はリンクは、通信デバイス102の「AUX WAKE」ピンをハイに設定することにより有効化されてよい。しかしながら、当然のこととして、セカンダリシリアルリンクの有効化は、様々な方法(例えば、ボタンを押す、1つ以上のピンをハイ又はローに設定する等)で達成されてよい。USBインタフェースを有する通信デバイス102の幾つかの実施形態では、データは、通信デバイス102とコンピューティングデバイス104との間でD+/D-ワイヤを使用して転送されてよい。
【0030】
幾つかの実施形態では、通信デバイスは無線セルラ送受信器を含んでよい。幾つかの実施形態では、無線セルラ送受信器(例えば、無線セルラ送受信器204)は通信デバイス102のモジュールであってよい。無線セルラ送受信器は、一般に、無線広域遠隔通信用の任意の無線セルラ送受信器を含んでよい。例として、LTE-M、LTE Cat M1、ナローバンドモノのインターネット(NB-IoT)、LTE Cat NB1、3G、2G等があってよく、これらに限定されない。当該技術分野において知られているように、LTE-M及びNB-IoTは、(具体的には、マシンツーマシン及びモノのインターネットのアプリケーションの為の)広範囲のセルラデバイス及びサービスを有効化する為に3GPPによって開発された低電力ワイドエリアネットワーク(LPWAN)無線技術規格のタイプである。セルラ及び無線技術規格の具体例を示したが、当然のことながら、任意のセルラ通信規格が本開示の範囲内で使用されてよい。
【0031】
幾つかの実施形態では、無線セルラ送受信器204は、無線セルラ通信用として構成された無線セルラ送受信器アンテナ(例えば、アンテナ206)及び/又はアンテナアレイと通信結合されるように構成されてよい。幾つかの実施形態では、無線セルラ送受信器アンテナ206は、1つ以上の無指向性アンテナ及び/又は指向性アンテナを含んでよい。
【0032】
幾つかの実施形態では、通信デバイス102はキャリアボード(例えば、キャリアボード210)と結合されてよい。キャリアボードは、一般に、通信デバイス(例えば、通信デバイス102)を他のコンピューティングデバイス(例えば、コンピューティングデバイス104)とインタフェースさせるように構成された回路を含んでよい。幾つかの実施形態では、キャリアボード210は、特定ユーザ用の通信デバイスを迅速に統合することを可能にできる。例えば、幾つかのキャリアボード(例えば、キャリアボード210)は、迅速なブレッドボードプロトタイピングの為に(例えば、3.3Vロジックの)機能をヘッダピン経由で露出させることにフォーカスされてよい。別の幾つかのキャリアボード(例えば、キャリアボード210)は、キャリアによって事前証明された一体型無指向性LTEアンテナ(例えば、アンテナ206)及び全球測位衛星システム(GNSS)アンテナ(例えば、アンテナ208)を有してよく、これらは、工業環境又は大量生産環境においてキャリアボードをマザーボードにはんだ付けできるようにフラットバックのキャステレイテッド接続部を有する。例えば、あるキャリアボード(例えば、キャリアボード210)は、ビルトイン無線セルラ送受信器アンテナ206及び/又はGNSSアンテナ208を含まなくてよい。又、例えば、あるキャリアボード(例えば、キャリアボード210)は、無線セルラ送受信器アンテナ及び/又はGNSSアンテナを含んでよい。当然のことながら、様々な構成に応じて様々なキャリアボードが本開示の範囲内で使用可能である。
【0033】
幾つかの実施形態では、キャリアボード(例えば、キャリアボード210)は、通信デバイスに給電するように、且つ、データオブジェクトをクラウドベースサービスに中継するように構成されたmicroUSBコネクタを含んでよい。例えば、このUSBコネクタを別のコンピューティングデバイス(例えば、Raspberry Pi(商標))に差し込むだけで、ユーザは任意のシリアル端末プログラムにコマンドを打ち込むことが可能である(Raspberry Piは、米国、他の国々、又はその両方におけるラズベリーパイ財団(Raspberry Pi Foundation)の登録商標である)。
【0034】
幾つかの実施形態では、キャリアボード(例えば、キャリアボード210)は、様々な電圧を供給するように構成されたマイクロスイッチを含んでよい。例えば、マイクロスイッチは、3.3Vと1.8Vの両方の動作を可能にできる。電圧の例を示したが、当然のことながら、任意の電圧が本開示の範囲内で使用されてよい。
【0035】
図3の例を再度参照すると、幾つかの実施形態では、通信デバイス102は、無線セルラ送受信器及び/又は無線セルラモデム(例えば、無線セルラ送受信器204)と通信結合された1つ以上のプロセッサ(例えば、プロセッサ302)を含んでよい。プロセッサ302は、
図3では無線セルラ送受信器204とは別個であるように示されているが、幾つかの実施形態では、プロセッサ302は、無線セルラ送受信器204と一体化されたプロセッサであってよい。或いは、プロセッサ302は、無線送受信器204とは物理的に別個であってよい。例えば、幾つかの実施形態では、プロセッサ302は、シリアルリンク304経由で無線セルラ送受信器204と通信結合されるように構成されてよい。幾つかの実施形態では、無線セルラ送受信器204は、通信デバイス102によって独占的に「所有」及び制御されてよい。例えば、上述のように、通信デバイス102の電力消費は、少なくともある程度は、無線セルラ送受信器204のデューティサイクル及び送信挙動に依存する可能性がある。例えば、無線セルラ送受信器がアクティブのときの電流引き込みは、典型的には、0~250mAの範囲にあると考えられるが、GSMの使用が必要とされる領域では、電流引き込みは数ミリ秒の間に例えば最大約2Aまでのスパイクになる可能性がある。そこで、通信デバイス102の電圧入力(「VIN」)は、そのような短時間のスパイクに対応できるバッテリ又は他の電源に直接接続されてよい。
【0036】
幾つかの実施形態では、通信デバイスは、その無線セルラ送受信器の電源を有効化及び無効化するように構成されてよい。
図3に示すように、通信デバイス102が無線通信デバイスとは別個のプロセッサを含む一例では、通信デバイス102は電源制御回路(例えば、電源制御回路306)を含んでよく、電源制御回路(例えば、電源制御回路306)は、1つ以上のピン(例えば「MDM-EN」ピン)と結合されて、無線セルラ送受信器204の電源入力(例えば「VIN」ピン)を選択的に有効化及び/又は無効化するように構成されてよい。このように、通信デバイス102は、無線セルラ送受信器/モデムの電源を制御してデューティサイクル管理を実施してよい。
【0037】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスの電源を有効化及び/又は無効化するように構成されてよい。
図4の例に示すように、幾つかの実施形態では、通信デバイス102は電源制御回路402を含んでよく、電源制御回路402は、1つ以上のピン(例えば「MCU-EN」ピン)と結合されて、コンピューティングデバイス104の電源入力(例えば「VIN」ピン)を選択的に有効化するように構成されてよい。例えば、通信デバイスのソフトウェアスケジューリング機能は、コンピューティングデバイスのデューティサイクルの制御を可能にできる。幾つかの実施形態では、コンピューティングデバイス及び通信デバイスは、コンピューティングデバイス104と通信デバイス102との間のリンク404を通して周期的ポーリングを行うことを必要とせずに「ディープスリープ」モードに入るように構成されてよい。例えば、コンピューティングデバイス104は、追跡用の特定データオブジェクトアレイを表すソフトウェアオプションを与えられてよく、着信する追跡されたデータがクラウドベースサービスから受信されて、コンピューティングデバイスによる処理に利用可能になったときに、通信デバイス102の1つ以上のピン(例えば「WAKE-OUT」ピン)がアサートされてよい。このデータオブジェクトアレイは、ユーザ定義されてよく、且つ/又は(例えば、デフォルトの設定により)自動的に定義されてよい。この構成は、クラウドベースサービスからデータが受信されたときだけコンピューティングデバイス104を覚醒させることによって著しい省電力を可能にできる。
【0038】
幾つかの実施形態では、通信デバイス102は、通常は、タイマに対して、且つ/又はシリアルリンク202経由でコンピューティングデバイス104から来るコマンドに対してスリープ状態で待機してよい。幾つかの実施形態では、コンピューティングデバイス104は、自身が通信デバイス102に対してコマンドを発行する予定が全くないことを認識した時点で1つ以上のピン(例えば「WAKE-IN」ピン)をアサートしてよい。この構成では、更なる電力を節約する為にシリアルリンク202が無効化されてよい。
【0039】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するように構成されてよい。データオブジェクトは、一般に、コンピューティングデバイスに情報を運んだり、コンピューティングデバイスから情報を運んだりするように構成されたデータパケットを含んでよい。幾つかの実施形態では、後で詳細に論じるように、コンピューティングデバイス104は通信セッションデータオブジェクトを提供してよく、通信セッションデータオブジェクトは、クラウドベースサービス用データを含まないが、通信デバイス102とクラウドベースサービス108との間の接続を構成することに使用されてよい。
図1の例を再度参照すると、幾つかの実施形態では、コンピューティングデバイス104は、少なくとも1つのデータオブジェクトを(例えば、シリアルリンク202経由で)通信デバイス102に送信してよい。幾つかの実施形態では、コンピューティングデバイス104は、クラウドベースサービスに記憶されるデータを生成するように構成された1つ以上のセンサ及び/又は調節機構を含んでよい。
【0040】
幾つかの実施形態では、少なくとも1つのデータオブジェクトは、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトであってよい。当該技術分野において知られているように、JSONは、属性値ペア及びアレイデータ型(又は他の任意のシリアル化可能値)からなるデータオブジェクトを送信する為の、人間可読テキストを使用するオープン標準のファイルフォーマットである。幾つかの実施形態では、JSONオブジェクトは、1つ以上のJSONリクエスト及び/又は1つ以上のJSONレスポンスを含んでよい。後で詳細に論じるように、コンピューティングデバイスで生成されるデータは、データオブジェクトを含むJSONリクエストとして通信デバイスに送信されて、クラウドベースサービスに記憶されてよい。例えば、コンピューティングデバイス104は、データを、1つ以上の属性(例えば、データオブジェクトが作成された時刻、データオブジェクトが作成された場所、データオブジェクトを作成したコンピューティングデバイス等)を有するオプションペイロード及びオプションボディの組み合わせとしてカプセル化するように構成されてよい。ペイロードは、一般に、例えば、任意のアプリケーションデータを含む、Base64エンコードされたJSON文字列(例えば、“payload”:”YWJHhLW0tLW0tLW0tLW0tLGt5eg==”)を含んでよい。ボディは一般に、任意のアプリケーション/クラウドベースサービスデータを含むJSONオブジェクト(例えば、“body”:{“temp”:34.2,”alert”:true,”particle”:{“mass”:[5.1,12.32],”count”]}})を含んでよい。上述の例はJSONオブジェクトを含むが、当然のことながら、他のデータオブジェクトフォーマットも可能であり、本開示の範囲内である。
【0041】
幾つかの実施形態では、通信デバイス102は、2つ以上のJSONリクエストを有するデータオブジェクトをクラウドベースサービスに供給するように構成されてよい。一例では、JSONリクエストを2つだけ有するデータオブジェクトがクラウドベースサービスに供給されてよい。例えば、コンピューティングデバイス104は、起動すると、そのシリアルポート(例えば、シリアルリンク202)経由でJSONリクエストを通信デバイス102に送信してよく、このJSONリクエストは、1)このコンピューティングデバイスの識別子(どのコンピューティングデバイスがデータを供給しているかをクラウドベースサービスが知る為のもの)と、2)データが他のステージングされたデータとともにバッチとしてクラウドベースサービスに送信される前に、そのデータが通信デバイス上にとどまることを可能にされるべき最大時間と、を構成するものである。受信されることが可能な、このようなJSONデータオブジェクト又はコマンドの一例を以下に示す。これは(例えば)空気の湿度を監視するように構成されたコンピューティングデバイスの例である。
setup()
serial.println {“req”:”service.set”,”product”:”com.acme.airmon”,”minutes”:60}
loop()
serial.println {“req”:”note.add”,”file”:”air.qo”,”body”:{“temp”:72,”humid”:61}}
【0042】
上記に示すように、「loop()」コマンドは、更なるセットアップなしで、コンピューティングデバイスがシンプルなJSONコマンドを発行して、通信デバイスに記憶された同類データの集合体(例えば、データオブジェクトアレイ)にJSONデータオブジェクトを追加することを可能にできる。この例では、「air.qo」の「.qo」は「アウトバウンドキュー」を意味してよく、「air」はユーザ定義名であってよい。上記の例に示すように、幾つかの実施形態では、データオブジェクトの「ボディ」は完全に自由形式のJSONであってよく、スキーマ制約なしでクラウドベースサービスによって解釈されてよい。上記の例ではコンピューティングデバイスの起動時にコンピューティングデバイスからデータオブジェクトを受信することについて論じたが、当然のことながら、データオブジェクトは、コンピューティングデバイスの動作の任意の時点でコンピューティングデバイスから受信されてよい。
【0043】
幾つかの実施形態では、データオブジェクトは、コンピューティングデバイス、通信デバイス、通信ハブ、及び/又はクラウドベースサービスに関する情報を提供するように構成されてよい。例えば、データオブジェクトは、サービス構成環境変数をリクエストして返すこと、現在のサービス構成パラメータを返すこと、通信デバイスが接続されているか、切断されているか、中間状態にあるかを表示すること、データオブジェクトの同期を手動で初期化すること、最後の同期についての情報を表示すること、サービス管理者との間で「ライブ」メッセージをやり取りすること等を行うように構成されてよい。
【0044】
更に
図5の例を参照すると、幾つかの実施形態では、通信デバイスは、通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイを、少なくともある程度は、受信された少なくとも1つのデータオブジェクトに基づいて修正するように構成されてよい。データオブジェクトアレイは、一般に、第1のデータオブジェクトが加えられたときに自動作成されたデータオブジェクトのアレイを収容する永続ファイルを含んでよい。従って、幾つかの実施形態では、データオブジェクトアレイは、データオブジェクトが通信デバイス102によって受信されたときに作成されてよい。幾つかの実施形態では、データオブジェクトアレイは名前を割り当てられてよい。これらの名前は任意であってよく、且つ/又は、データオブジェクトアレイのデータオブジェクト(例えば、特定のセンサ等に関連付けられたデータオブジェクト)の生成に関連付けられてよい。
図5に示すように、データオブジェクトアレイの集合(例えば、データオブジェクトアレイの集合502)が、通信デバイス102のメモリに記憶されてよい。幾つかの実施形態では、データオブジェクトアレイの集合は、少なくとも1つのデータオブジェクトアレイ(例えば、データオブジェクトアレイ504、506、508)を含んでよい。幾つかの実施形態では、この少なくとも1つのデータオブジェクトアレイのそれぞれが、1つ以上のデータオブジェクト(例えば、データオブジェクト510、512、514、516、518、520、522、524、526)を含んでよい。後で詳細に論じるように、通信ハブ106は、同様に、少なくとも1つのデータオブジェクトアレイ(例えば、データオブジェクトアレイ530、532、534)を含む、データオブジェクトアレイの集合(例えば、データオブジェクトアレイ528)を含んでよい。この例では、データオブジェクトアレイ530がデータオブジェクト436、438、540を含んでよく、データオブジェクトアレイ532がデータオブジェクト542、544、546を含んでよく、データオブジェクトアレイ534がデータオブジェクト548、550、552を含んでよい。
【0045】
幾つかの実施形態では、データオブジェクトアレイ(例えば、データオブジェクト110)が、データオブジェクトの特定の属性を明らかにするデータオブジェクト拡張子を含んでよい。例えば、あるデータオブジェクト拡張子(例えば「.db」)は、そのデータオブジェクトが、クラウドベースサービスと通信デバイスとの間で完全に複製可能なデータベースオブジェクトであることを示すことが可能である。幾つかの実施形態では、データベース拡張子は、構成及びステータス情報を維持する為に共通で使用されてよい。別の例では、データオブジェクト拡張子(例えば「.qo」)は、そのデータオブジェクトがアウトバウンドのみのデータオブジェクトであって、通信デバイス102から通信ハブ106に送信されるだけであることを示すことが可能である。これらのデータオブジェクトは、通信ハブ106に転送された後に、通信デバイス102内のデータオブジェクトアレイから削除されてよい。別の例では、データオブジェクト拡張子(例えば「.qi」)は、そのデータオブジェクトがインバウンドのみのデータオブジェクトであって、通信ハブ106から通信デバイス102に送信されるだけであることを示すことが可能である。これらのデータオブジェクトは、通信デバイス102に転送された後に、通信ハブ106内のデータオブジェクトアレイから削除されてよい。上記ではデータオブジェクト拡張子の幾つかの例を示したが、当然のことながら、他のデータオブジェクト拡張子も本開示の範囲内で可能である。
【0046】
幾つかの実施形態では、データオブジェクト拡張子のセキュアバリアント(例えば「.dbs」、「.qos」、「.qis」)は、そのデータオブジェクトが暗号化されることを示すことが可能である。幾つかの実施形態では、データオブジェクトは、一般に、帯域幅を低減する為に暗号化せずに送信されてよい。しかしながら、機密性が高いデータオブジェクトの場合には、これらのセキュアデータオブジェクト拡張子によって、データオブジェクトがTLS暗号化通信セッションで転送されることを保証することが可能である。
【0047】
図5の例を再度参照すると、幾つかの実施形態では、データオブジェクトアレイ504は、データオブジェクト(例えば、データオブジェクト510、512、514)を含んでよく、双方向の拡張子に関連付けられてよい。データオブジェクトアレイ506は、データオブジェクト(例えば、データオブジェクト516、518、520)を含んでよく、アウトバウンドのみの拡張子に関連付けられてよい。この例では、データオブジェクトアレイ506は、データオブジェクト516、518、520を通信ハブ506に送信し、それらのデータオブジェクトをデータオブジェクトアレイ506から削除するように構成されたアウトバウンドのみのキューであってよい。幾つかの実施形態では、データオブジェクトアレイ508は、インバウンドのみの拡張子を有するデータオブジェクト(例えば、データオブジェクト522、524、526)に関連付けられてよい。この例では、データオブジェクトアレイ508は、通信ハブ106から送信されて、通信ハブ106のデータオブジェクトアレイから削除されたデータオブジェクト522、524、526を受信するように構成されてよい。このように、通信デバイス102は、インターネットベースのセキュア通信ハブ106と一体化されてよい分散複製時空間データベースを有するパッケージ内データシステム(DSiP)であってよい。特定のデータオブジェクト拡張子に関連付けられた3つのデータオブジェクトアレイの例を示したが、当然のことながら、任意の数のデータオブジェクトアレイが本開示の範囲内で使用されてよく、且つ/又は、データオブジェクトアレイはデータオブジェクト拡張子に限定される必要はない。例えば、データオブジェクトアレイは、様々なコンピューティングデバイスセンサ、データオブジェクトのタイプ等に関して定義されてよい。
【0048】
幾つかの実施形態では、その少なくとも1つのデータオブジェクトアレイを修正することは、データオブジェクトアレイのデータオブジェクトを追加すること、削除すること、及び変更することのうちの1つ以上を含んでよい。例えば、データオブジェクトが新しいデータオブジェクトである場合、その少なくとも1つのデータオブジェクトアレイを修正することは、その新しいデータオブジェクトをデータオブジェクトアレイに追加することを含んでよい。データオブジェクトが既存のデータオブジェクトを削除することを含む場合、その少なくとも1つのデータオブジェクトアレイを修正することは、そのデータオブジェクトをデータオブジェクトアレイから削除することを含んでよい。データオブジェクトアレイ内のデータオブジェクトが更新又は変更される場合、その少なくとも1つのデータオブジェクトアレイを修正することは、そのデータオブジェクトを更新又は変更することを含んでよい。
【0049】
幾つかの実施形態では、データオブジェクトは、付加的メタデータとともに通信デバイスのメモリに記憶されている少なくとも1つのデータオブジェクトアレイに追加されてよく、又はそのデータオブジェクトアレイ内で更新されてよい。例えば、データオブジェクトがコンピューティングデバイス104から、例えば「note.add」リクエストを使用して受信される場合、そのデータオブジェクトは、例えば、通信デバイスのハードウェアから時間及び場所の情報が利用可能であれば、それらの情報によって自動的に増強されてよい。同様に、既存のデータオブジェクトを更新又は変更するデータオブジェクトが受信される場合、そのデータオブジェクトは、例えば、通信デバイスのハードウェアから時間及び場所の情報が利用可能であれば、それらの情報によって自動的に増強されてよい。当然のことながら、本開示の範囲内で他のメタデータもデータオブジェクトに追加されてよい。
【0050】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスに対して非同期で、無線セルラ送受信器経由で、修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分をクラウドベースサービスに送信するように構成されてよい。本明細書では、「コンピューティングデバイスに対して非同期で送信する」ことは、コンピューティングデバイスを関与させずに、コンピューティングデバイスから独立してデータを送信することを含んでよい。上述のように、通信デバイス102からその少なくとも1つのデータオブジェクトアレイのその少なくとも一部分を送信することは、コンピューティングデバイス104に対して非同期であってよい。幾つかの実施形態では、通信デバイス102からデータオブジェクトが非同期送信されることで、通信デバイスがデータオブジェクトを送信するときにコンピューティングデバイス104がオフライン又は「スリープ中」であることが可能になりうる。
【0051】
例えば、コンピューティングデバイス104が、事前定義された頻度で(例えば、毎時に)データオブジェクト(例えば、空気の温度及び湿度の読み)をクラウドベースサービス108に供給するように構成されているとする。コンピューティングデバイス104は、その事前定義された頻度でデータオブジェクトを通信デバイス102に供給してよい。しかしながら、通信デバイス102は、コンピューティングデバイス104に対して非同期で、データオブジェクトを(例えば、データオブジェクトアレイに対する修正の形式で)通信ハブ106に送信するように構成されてよい。上述のように、通信デバイス102からの送信は、コンピューティングデバイス104から独立して、コンピューティングデバイス104の関与なしで行われてよい。この例では、通信デバイス102は、別の事前定義された頻度で(例えば、1日1回)データオブジェクトを送信してよい。このように、コンピューティングデバイス104は、通信デバイス102を管理又は制御することなく、コンピューティングデバイス104において事前定義された頻度でデータオブジェクト(例えば、データオブジェクトアレイのデータオブジェクトに対する修正)を供給してよい。このように、幾つかの実施形態では、コンピューティングデバイス104は、通信デバイス104にデータを容易に供給することが可能であってよく、通信デバイス102は、コンピューティングデバイス104から独立してクラウドベースサービス108にデータを送信することが可能である。後で詳細に論じるように、このように通信デバイス104がデータオブジェクトを非同期送信することで、通信デバイス102及び/又はコンピューティングデバイス104の電力を節約しながら、且つ/又はコンピューティングデバイス104の関与を必要とせずに、通信デバイス102がデータオブジェクトを供給することが可能になりうる。
【0052】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスから通信ポリシーを受信するように構成されてよい。通信ポリシーは、一般に、通信デバイスの為の1つ以上の通信セッション基準であってよく、これには、電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先することのうちの1つ以上が含まれる。例えば、ユーザが動作寿命を延ばす為にコンピューティングデバイス及び/又は通信デバイスの電力を節約することを優先したいとする。この例の場合、通信ポリシーは、通信デバイス104がデータオブジェクトを送信又は受信する頻度を定義してよい。後で詳細に論じるように、これは、無線セルラ送受信器204が(例えば、通信デバイス102によって)給電される頻度、及び/又はGNSSアンテナ又はGPSアンテナが(例えば、通信デバイス102によって)給電される頻度に影響しうる。別の例では、ユーザがデータオブジェクト通信のセキュリティを優先したいとする。この例の場合は、後で詳細に論じるように、通信ポリシーは、通信デバイス102のセキュリティ要素を使用してデータオブジェクトをいつ圧縮及び/又は暗号化するかを定義してよい。別の例では、ユーザが(例えば、通信デバイスの位置が変化する例において)通信デバイス102の位置を含むメタデータでデータオブジェクトをタグ付けしたいとする。この例の場合は、後で詳細に論じるように、通信ポリシーは、特定時刻における通信デバイス102の位置を含むメタデータでデータオブジェクトをいつタグ付けするかを定義してよい。通信における優先事項の3つの例について論じたが、当然のことながら、他の優先事項も可能であり、本開示の範囲内である(例えば、通信のデータ量、特定のセンサから特定のデータを供給すること等)。
【0053】
幾つかの実施形態では、コンピューティングデバイス102から受信された少なくとも1つのデータオブジェクトが通信ポリシーを定義してよい。例えば、幾つかの実施形態では、データオブジェクトは、下記のリクエスト例に示すように通信デバイスのセルラ接続を設定するように構成されたリクエストを含んでよい。
{“req”;”service.set”
“product”:RegisteredProductID”
“mode”:
“periodic” is a default mode which may periodically connect to the communication hub,
“continuous” may be for high-power devices with always-on cellular with data synchronizing periodically,
“minimum” disables periodic connections, requiring another command (e.g., “service.sync”) when a sync is needed.
“minutes”:maxWaittoSyncOutboundData such as newly added data objects may be queued,
“hours”:maxWaittoSyncInboundData such as environment variables from the cloud-based service,
“align”:true to align syncs onto a regular time-periodic cycle v. being “maxWait” triggered
}
【0054】
幾つかの実施形態では、通信デバイスは、データオブジェクトアレイの少なくとも一部分を、無線セルラ送受信器経由でクラウドベースサービスに送信するスケジュール、及び/又は、データオブジェクトの少なくとも一部分を無線セルラ送受信器経由でクラウドベースサービスから受信するスケジュールを、少なくともある程度は、コンピューティングデバイスから受信された通信ポリシーに基づいて生成するように構成されてよい。例えば、通信デバイス102は、自前のヒューリスティックスを用いて、通信ハブ106との接続をスケジュールしてよく、その時点で必要に応じてデータオブジェクトを双方向に同期させる。後で詳細に論じるように、データオブジェクトは、通信デバイスのストレージと通信ハブのストレージとの間のデータオブジェクトアレイのステージングエリアから動かされるか且つ/又は複製されてよい。
【0055】
一例では、通信デバイス102は、無線セルラ送受信器204経由のセルラ通信が比較的大量の電力を必要とする可能性があるときに、セルラネットワークとの通信をいつどれだけの頻度で確立するかを決定するスケジュールを管理してよい。この例の場合、通信ポリシーは、電力を節約することを優先してよく、通信デバイス102は、データオブジェクトアレイに対するデータオブジェクト/修正の送信及び/又は受信をいつどれだけの頻度で行うかを決定するスケジュールを管理してよい。
【0056】
更に
図6の例を参照すると、幾つかの実施形態では、通信デバイス102は、コンピューティングデバイス104に対して非同期で、1つ以上のデータオブジェクトを、無線セルラ送受信器204経由で通信ハブ106に送信するように構成されてよい。上述のように、通信ハブ106は、同様に、少なくとも1つのデータオブジェクトアレイ(例えば、データオブジェクトアレイ530、532、534)を含む、データオブジェクトアレイの集合(例えば、データオブジェクトアレイ528)を含んでよい。この例では、データオブジェクトアレイ530がデータオブジェクト536、538、540を含んでよく、データオブジェクトアレイ532がデータオブジェクト542、544、546を含んでよく、データオブジェクトアレイ534がデータオブジェクト548、550、552を含んでよい。3つのデータオブジェクトアレイについて論じたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクトアレイが通信ハブ106内に記憶されてよい。
【0057】
幾つかの実施形態では、通信デバイス102は、データオブジェクト510を有するデータオブジェクトアレイ504と、データオブジェクト516を有するデータオブジェクトアレイ506と、を含んでよく、これらのデータオブジェクトは、コンピューティングデバイス104に対して非同期で、通信ハブ106に送信されてよい。この例では、データオブジェクト510は、データオブジェクト536としてデータオブジェクトアレイ530に複製されるように、双方向に複製されるデータオブジェクトであってよい。更に、データオブジェクト516はアウトバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト516は、通信ハブ106のデータオブジェクトアレイ532に送信されると、データオブジェクト542としてデータオブジェクトアレイ532に記憶されてよく、且つ、(例えば、データオブジェクト516の周囲の破線で示されるように)データオブジェクトアレイ506から削除されてよい。2つのデータオブジェクトが通信ハブ106に送信される例について述べたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクト及び/又はデータオブジェクトアレイ(例えば、データオブジェクトアレイの一部及び/又は全部)が通信ハブ106に送信されてよい。
【0058】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスに対して非同期で、無線セルラ送受信器経由で、少なくとも1つのデータオブジェクトアレイの少なくとも一部分をクラウドベースサービスから受信するように構成されてよい。本明細書では、「コンピューティングデバイスに対して非同期で受信する」ことは、コンピューティングデバイスを関与させずに、コンピューティングデバイスから独立してデータを受信することを含んでよい。例えば、通信ハブ106が、事前定義された頻度で(例えば、毎時に)天気データを供給するように構成されているとする。後で詳細に論じるように、通信ハブ106は、事前定義された頻度でデータオブジェクトを通信デバイス102(例えば、無線セルラ送受信器204)に送信又は供給してよい。しかしながら、通信デバイス102は、コンピューティングデバイス104に対して非同期で、データオブジェクトを通信ハブ106から受信するように構成されてよい。上述のように、通信デバイス102によるデータオブジェクトの受信は、コンピューティングデバイス104から独立して、コンピューティングデバイス104の関与なしで行われてよい。この例では、コンピューティングデバイス104は、別の事前定義された頻度で(例えば、1日1回)データオブジェクトを通信デバイス102から受信してよい。このように、コンピューティングデバイス104は、通信デバイス102を管理又は制御することなく、コンピューティングデバイス104において事前定義された頻度でデータオブジェクトを受信してよい。
【0059】
幾つかの実施形態では、コンピューティングデバイス104は、通信デバイス104からデータを受信することが可能であってよく、通信デバイス102は、コンピューティングデバイス104から独立してクラウドベースサービス108からデータを受信することが可能である。後で詳細に論じるように、このように通信デバイス104がデータオブジェクトアレイに対するデータオブジェクト/修正を非同期送信することで、通信デバイス102及び/又はコンピューティングデバイス104の電力を節約しながら、且つ/又はコンピューティングデバイス104の関与を必要とせずに、通信デバイス102がデータオブジェクトを受信することが可能になりうる。幾つかの実施形態では、通信デバイス102がデータオブジェクトを非同期受信することで、通信デバイスがデータオブジェクトを受信するときにコンピューティングデバイス104がオフライン又は「スリープ中」であることが可能になりうる。上述のように、データが受信されたときにコンピューティングデバイス104がそのデータを通信デバイス102にリクエストできるように、通信デバイス102は、コンピューティングデバイス104を「覚醒させる」信号をコンピューティングデバイス104に供給してよい。このように、コンピューティングデバイス104は、通信デバイス102がデータオブジェクトを受信することに関与しなくてよい。
【0060】
幾つかの実施形態では、通信デバイス102は、コンピューティングデバイスのメモリに記憶された少なくとも1つのデータオブジェクトアレイの1つ以上のデータオブジェクトを、少なくともある程度は、その少なくとも1つのデータオブジェクトアレイの受信された少なくとも一部分に基づいて修正してよい。幾つかの実施形態では、その少なくとも1つのデータオブジェクトアレイを修正することは、データオブジェクトアレイのデータオブジェクトを追加すること、削除すること、及び変更することのうちの1つ以上を含んでよい。例えば、データオブジェクトが新しいデータオブジェクトである場合、その少なくとも1つのデータオブジェクトアレイを修正することは、その新しいデータオブジェクトをデータオブジェクトアレイに追加することを含んでよい。データオブジェクトが既存のデータオブジェクトを削除することを含む場合、その少なくとも1つのデータオブジェクトアレイを修正することは、そのデータオブジェクトをデータオブジェクトアレイから削除することを含んでよい。データオブジェクトアレイ内のデータオブジェクトが更新又は変更される場合、その少なくとも1つのデータオブジェクトアレイを修正することは、そのデータオブジェクトを更新又は変更することを含んでよい。
【0061】
上述のように、幾つかの実施形態では、データオブジェクトは、クラウドベースサービスとコンピューティングデバイスとの間で双方向に伝達されてよい。幾つかの実施形態では、無線セルラ送受信器204は、通信ハブ106から1つ以上のデータオブジェクトを受信してよく、その1つ以上の受信されたデータオブジェクトをシリアルリンク304経由で通信デバイス102に伝達してよい。上述のように、幾つかの実施形態では、通信デバイスは、コンピューティングデバイスのメモリに記憶された少なくとも1つのデータオブジェクトアレイの1つ以上のデータオブジェクトを、少なくともある程度は、その少なくとも1つのデータオブジェクトアレイの受信された少なくとも一部分に基づいて修正するように構成されてよい。更に
図6の例を参照すると、幾つかの実施形態では、通信ハブ106は、データオブジェクト552を有するデータオブジェクトアレイ534を含んでよく、データオブジェクト552は通信デバイス102に送信されてよい。上述のように、通信デバイス102は、インターネットベースのセキュア通信ハブ106と一体化されてよい分散複製時空間データベースを有するパッケージ内データシステム(DSiP)であってよい。この例では、データオブジェクト552はインバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト552は、通信デバイス102のデータオブジェクトアレイ508に送信されると、データオブジェクト526としてデータオブジェクトアレイ508に記憶されてよく、且つ、(例えば、データオブジェクト552の周囲の破線で示されるように)データオブジェクトアレイ534から削除されてよい。1つのデータオブジェクトが通信ハブ106に送信される例について述べたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクト及び/又はデータオブジェクトアレイ(例えば、データオブジェクトアレイの一部及び/又は全部)が通信デバイス102によって受信されてよい。
【0062】
幾つかの実施形態では、通信デバイスは、通信デバイスとクラウドベースサービスとの通信に対して非同期で、少なくとも1つのデータオブジェクトアレイの1つ以上の修正されたデータオブジェクトを、コンピューティングデバイスが利用できるようにするように構成されてよい。本明細書では「通信デバイスとクラウドベースサービスとの通信に対して非同期で、少なくとも1つのデータオブジェクトアレイの1つ以上の修正されたデータオブジェクトを、コンピューティングデバイスが利用できるようにする」ことは、クラウドベースサービスから受信されたデータオブジェクト(例えば、少なくとも1つのデータオブジェクトアレイの受信された部分に基づいて修正されたデータオブジェクト)を、通信デバイスとクラウドベースサービスとの通信から独立して、コンピューティングデバイスが利用できるようにすることを含んでよい。
図2の例を再度参照すると、幾つかの実施形態では、通信デバイス102は、少なくとも1つのデータオブジェクトアレイの少なくとも一部分をコンピューティングデバイス104が利用できるようにすることを、通信デバイス102上の(例えば、上述のように、通信デバイス102のメモリ内の)少なくとも1つのデータオブジェクトアレイの少なくとも一部分をステージングすることと、少なくとも1つのデータオブジェクトアレイのその少なくとも一部分に対するコンピューティングデバイス104からのリクエストを受信することと、によって行ってよい。このように、コンピューティングデバイス104は、少なくとも1つのデータオブジェクトアレイの少なくとも一部分を(シリアルリンク202経由で)リクエストしてよい。従って、通信デバイス104は、クラウドベースサービス108とのあらゆる通信から独立して、修正されたデータオブジェクトをコンピューティングデバイス104が利用できるようにしてよい。
【0063】
図4の例を再度参照すると、幾つかの実施形態では、通信デバイスは、1つ以上のデータオブジェクトの形式のファームウェアデータを、通信デバイスのメモリに記憶させる為に、無線セルラ送受信器経由で受信するように構成されてよい。幾つかの実施形態では、コンピューティングデバイス104は、通信デバイス102経由でファームウェア更新を受信してよい。例えば、
図4に示すように、あくまで例としてであるが、コンピューティングデバイス104が2線シリアルワイヤデバッグ(SWD)インタフェース(例えば、SWDインタフェース306)を含むとする。幾つかの実施形態では、SWDインタフェース406は、特に、コンピューティングデバイス(例えば、マイクロコントローラ)のファームウェアの再フラッシュを可能にできる。この例では、開発者は、永続ファームウェアデータ(例えば、構成データ)を、コンピューティングデバイスのメモリではなく通信デバイスのメモリ(例えば、フラッシュメモリ)に記憶させることを選択できる。そうすることにより、認定された開発者が、新しいファームウェアを無線セルラ送受信器204経由で受信して通信デバイス102にダウンロードするようにできる。幾つかの実施形態では、他のファームウェアデータ又はファームウェアイメージ(例えば、最新の既知の良好なファームウェア)が通信デバイスにダウンロードされてよい。
【0064】
この例について続けると、通信デバイス102は、コンピューティングデバイスから1つ以上のコマンドを受信して、受信されたファームウェアデータがコンピューティングデバイスにインストールされるように、受信されたファームウェアデータの少なくとも一部分を(例えば、SWDインタフェース406経由で)コンピューティングデバイスに送信してよい。幾つかの実施形態では、通信デバイス102は、コンピューティングデバイス104のファームウェアを完全に再フラッシュしてよい。
図4は、コンピューティングデバイスにSWDピンがある例を示しているが、当然のことながら、コンピューティングデバイス104のファームウェアの再フラッシュは他の構成を使用して行われてもよい。例えば、幾つかの実施形態では、ファームウェアの再フラッシュは、通信デバイス102の1つ以上のピン(例えば「RESET」ピン)によるコンピューティングデバイス104のブート中に、コンピューティングデバイス104の1つ以上のピン(例えば、GPIO-00ピン(図示せず))をローに保持することによって実施されてよい。ファームウェアは、その後、シリアルリンク202でコンピューティングデバイス104に送信されてよい。
【0065】
幾つかの実施形態では、通信デバイスは、全球測位衛星システム(GNSS)システムを含んでよく、GNSSアンテナと通信結合されるように構成されてよい。当該技術分野において知られているように、GNSS受信器(GNSS受信器212)は、一般に、GNSS衛星コンステレーションからの信号を受信及びデジタル処理して(受信器の)位置、速度、及び時刻を提供する電子デバイス又はモジュールを含んでよい。幾つかの実施形態では、通信デバイス102から転送されるデータオブジェクトは、時刻及び位置のメタデータでタグ付けされてよい。幾つかの実施形態では、位置情報は、GNSS受信器を使用して取得されてよく、一方、時刻は、セルラネットワーク及びGNSS受信器の両方から利用可能であってよい。幾つかの実施形態では、通信デバイス102は加速度計(例えば、加速度計214)を含んでよく、加速度計は、動きを検出したときにGNSSアンテナをサンプリングするように構成されている。幾つかの実施形態では、動いていない通信デバイスに関するエネルギ使用を最適化できるように、通信デバイス102は、GNSSアンテナの使用が不要になる時を特定する為のMEMSベースの加速度計(例えば、加速度計214)を有してよい。このように、GNSSアンテナ(例えば、GNSSアンテナ208)は、加速度計(例えば、加速度計214)によって動きが検出されたときに有効化されてよく、それ以外のときは電力を節約する為に無効化されてよい。
【0066】
幾つかの実施形態では、通信デバイスは、1つ以上のデータオブジェクトにメタデータを追加するように構成されてよく、メタデータは、通信デバイスの時刻及び位置の一方又は両方を含む。例えば、通信デバイス102は、データオブジェクトにメタデータをタグ付けするように構成されてよい。メタデータは、GNSSアンテナ208を使用して特定された通信デバイスの時刻及び/又は位置を含んでよい。幾つかの実施形態では、コンピューティングデバイス102は、(例えば、コンピューティングデバイス104又は通信ハブ106から)データオブジェクトが受信されたときにデータオブジェクトに時刻情報メタデータをタグ付けしてよい。
【0067】
幾つかの実施形態では、通信デバイスのエッジピンの1つにより、設計者は、どのアクティブなGNSS/GPSアンテナで必要になっても、GPS/GNSSの受信器U.FLコネクタにバイアス電圧を供給することを可能にできる。便宜上、その目的に使用できる3.8V電源が通信デバイス102から供給されてよい。幾つかの実施形態では、GNSSアンテナ(例えば、GNSSアンテナ208)が通信デバイス102に通信結合されている場合は、アクティブ/パッシブスイッチが、どのタイプのアンテナを通信デバイス102に通信結合するかをユーザが選択することを可能にできる。アクティブの場合は、アンテナの内蔵LNAに給電するバイアス電圧として3.8Vが供給されてよい。特定の電圧値について上述したが、当然のことながら、GNSSで必要とされる任意の電圧が本開示の範囲内で供給されてよい。
【0068】
幾つかの実施形態では、製造時に通信デバイスの不揮発性メモリが、通信デバイスのセキュア認証、及びクラウドベースサービスとの通信を可能にする1つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成される。例えば、上述のように、最新のクラウドベースサービスでは、クラウドと通信デバイス102とが、いずれもスプーフィングされることがないように双方向認証を実施することが必要な場合がある。更に、多くの用途で、無線経由及び有線経由のデータを暗号化することが重要な場合がある。その為、幾つかの実施形態では、通信デバイス102は、例えば、STSAFE-A100セキュアエレメントを内蔵してよく、これは、チップの製造又は組立の時点でチップ内に生成された対称鍵を含んでよい。これにより、通信デバイス102の製造者もコンピューティングデバイス104の製造者も、セキュア鍵マテリアルの取り扱いや管理が全く不要である。一例では、通信デバイス102用に生成されるセキュリティ鍵は、NIST P-384曲線による楕円曲線暗号(ECC)を使用してよく、署名アルゴリズムはECDSA-with-SHA384であってよい。セキュアエレメントの具体例と特定の署名アルゴリズムについて示したが、当然のことながら、クラウドベースサービス108と通信デバイス102との間でデータをセキュリティ保護する為に、暗号鍵を生成するように構成された任意のセキュリティデバイス又はモジュール、及び/又は任意の署名アルゴリズムが本開示の範囲内で使用されてよい。
【0069】
幾つかの実施形態では、通信デバイスは、データオブジェクトの圧縮及び暗号化の一方又は両方を、少なくともある程度は、コンピューティングデバイスから受信された通信ポリシーと、その1つ以上のデータオブジェクトに付加されたメタデータとに基づいて行うように構成されてよい。例えば、上述のように、データオブジェクトの暗号化には、通信デバイス102からのかなりの電力が必要になる場合がある。このように、通信デバイス102は、データオブジェクトのメタデータ及び/又は通信ポリシーを利用して、データオブジェクトを圧縮及び/又は暗号化するかどうかを決定してよい。データの圧縮及び/又は暗号化を電力の節約に基づいて行うことの例を論じたが、当然のことながら、メタデータ及び通信ポリシーは、他の状況でも(例えば、位置、時刻、セキュリティ優先順位付け等に基づいて)どのような場合にデータオブジェクトを圧縮及び/又は暗号化するかを決定してよい。
【0070】
幾つかの実施形態では、通信デバイス102は電力調節機構を有してよく、可変クロック速度を大いに利用してよい。上述のように、無線セルラ送受信器(例えば、無線セルラ送受信器204)及び/又はモデムは送信時又は受信時に、GNSSは受信時に、 CPUはセッション又はデータオブジェクトの暗号化の実施時に、それぞれかなりの電流を引き込む場合があり、更にセキュアエレメントは、特定のサイドチャネル攻撃を防ぐように有効化されたときに一定の電力を引き込む場合がある。しかしながら、幾つかの実施形態では、通信デバイス設計において、ゼロ入力電流が1マイクロアンペアより大きい(例えば、Iq>1μAの)シングルスイッチがないことが可能である。即ち、通信デバイス102の各スイッチのゼロ入力電流は1マイクロアンペア未満であってよい。しかしながら、当然のこととして、本開示の範囲内で任意のゼロ入力電流が可能である。プロセッサが例えば「STOP」モードにあるときに1つ以上のシリアルリンク(例えば、I2C、UART、USB等)及びリアルタイムクロック(RTC)を動作させる能力に関連して、通信デバイス102がアイドル時に引き込む電流は、例えば3.3Vで例えば8μA未満であってよい。従って、通信デバイス102は、マイクロコントローラ及び他のコンピューティングデバイスに対して低電力のセルラテザーソリューションを提供することが可能である。
【0071】
図1の例を再度参照すると、幾つかの実施形態では、通信ハブは、1つ以上の通信デバイスとクラウドベースサービスとに通信結合されるように構成されてよい。後で詳細に論じるように、幾つかの実施形態では、通信ハブ106は、非常に薄い機能性の層を提供するように構成されてよく、これは、第1に、カスタマが同様の機能の通信デバイス(例えば、通信デバイス102)を、動作の監視が可能な通信デバイスグループ(例えば「フリート」)に集約することを自動プロビジョニングし可能にするものであり、第2に、そのようなフリートを、通信デバイス(例えば、通信デバイス102)から到着するデータオブジェクト(例えば、JSONフォーマットされたデータ)がクラウドベースサービス(例えば、クラウドベースサービス108)に転送されることを可能にする「ルート」とともに構成するものである。
【0072】
後で論じるように、無線セルラ送受信器204は、セルラネットワークを介してデータを送信するように構成されてよい。例えば、上述のように、無線セルラ送受信器204は、様々な通信プロトコル(例えば、2G、LTE、Cat-M、LTE Cat-NB1等)を使用してデータの送受信を行うように構成されてよく、データはセルラタワー及び/又はセルラノード(例えば、eNodeB)に送信され、且つそれらから送信される。当該技術分野において知られているように、セルラノード又はセルラタワーは、データを特定の送信先に中継する為にバックホールネットワーク又は他のネットワークと通信結合されてよい。従って、無線セルラ送受信器204は、セルラネットワークを介して通信ハブ106までデータを送信するように構成されてよい。
【0073】
幾つかの実施形態では、通信ハブ(例えば、通信ハブ106)は、一般に、1つ以上の通信デバイス(例えば、通信デバイス102)を1つ以上の通信デバイスグループに編成するように構成されたソフトウェアサービスを含んでよい。通信ハブは更に、その1つ以上の通信デバイスグループに1つ以上のルートを関連付けてよく、1つ以上のルートは、1つ以上のコンピューティングデバイスと通信結合された1つ以上の通信デバイスとクラウドベースサービスとの間で1つ以上のデータオブジェクトをルーティングするように構成されてよく、その1つ以上のコンピューティングデバイスに対して非同期で、1つ以上のデータオブジェクトを、1つ以上の通信デバイスとクラウドベースサービスとの間で、その1つ以上のルートを経由させてルーティングしてよい。幾つかの実施形態では、後で詳細に論じるように、通信ハブ106は、単一インスタンスのハイパースケールの「サービスとしてのソフトウェア」(SaaS)サービスとして、又はサーバにデプロイされたカスタマの自前のプライベート通信ハブサービスインスタンスとしてデプロイされてよい。
【0074】
幾つかの実施形態では、通信ハブ(例えば、通信ハブ106)は、1つ以上の通信デバイスを管理するように構成されてよく、1つ以上の通信デバイスは、1つ以上のコンピューティングデバイスと通信結合されている。幾つかの実施形態では、1つ以上の通信デバイスの各通信デバイスは一意の識別子を有してよい。幾つかの実施形態では、一意識別子は、各通信デバイス(例えば、通信デバイス102)に自動で割り当てられてよく、或いは通信デバイスごとに手動で割り当てられるか構成されてよい。
【0075】
幾つかの実施形態では、通信ハブ106は、1つ以上の通信デバイス製品識別子を1つ以上の通信ハブプロジェクトに関連付けてよい。通信ハブプロジェクトは、一般に、1つ以上の通信デバイスを含むカスタマ固有エンティティと、通信デバイスグループと、1つ以上の通信デバイスグループに関連付けられるか割り当てられて、データオブジェクトが通信デバイス(例えば、通信デバイス102)から通信ハブ106によってどのように転送されるかを定義するルートと、を含んでよい。更に、
図7の管理ツール例(例えば、管理ツール700)を参照すると、幾つかの実施形態では、ユーザはプロジェクトを作成してよい(例えば、プロジェクトに名前を割り当てること、1つ以上のアカウントを作成すること等によりプロジェクトを作成してよい)。そしてユーザは、通信ハブ106が通信ハブプロジェクトに関連付ける1つ以上の通信デバイス製品識別子を作成してよい。例えば、ユーザは1つ以上の通信デバイス製品識別子を与えてよい(例えば「product.org.safecast.*」、「product.org.safecast.ninja」、「product.org.safecast.air」等)。幾つかの実施形態では、アスタリスク記号「*」の使用は、製品識別子のうちの「*」記号の前の部分を含む全ての通信デバイス製品識別子を包含してよい。例えば、通信デバイス製品識別子「product.org.safecast.*」を作成することにより、「product.org.safecast.」を含む全ての通信デバイス製品識別子がこのプロジェクトに関連付けられる。オープンエンデッド通信デバイス製品識別子を指定するシンボル例としてアスタリスク記号について述べたが、当然のことながら、他の記号も本開示の範囲内で使用されてよい。
【0076】
幾つかの実施形態では、通信ハブ106は、1つ以上の通信デバイスから着信する1つ以上の通信セッションを受信してよく、着信する各通信セッションは、1つ以上の通信デバイスの製品識別子を含む。例えば、以下の例に示すように、通信デバイス102が、着信した通信セッションを(例えば、JSONオブジェクト経由で)クラウドベースストレージ108に送信するとする。
setup()
serial.println {“req”:”service.set”,”product”:” org.safecast.air”,”minutes”:60}
【0077】
この例では、通信ハブ106は、着信した通信セッションから通信デバイス製品識別子(例えば「org.safecast.air」)を識別してよい。幾つかの実施形態では、通信ハブ106は、通信デバイス102を特定の通信ハブプロジェクトに関連付けてよく、これは、通信デバイス製品識別子がプロジェクトに関連付けられている為である。しかしながら、当然のこととして、本開示の範囲内で、他の通信デバイス製品識別子もデータオブジェクトから識別されてよい。
【0078】
幾つかの実施形態では、通信ハブ106は、1つ以上の通信デバイスを、少なくともある程度は、1つ以上の通信デバイスによって確立された通信セッションの製品識別子に基づいて、1つ以上の通信デバイスグループとの通信、及びクラウドベースサービスへのルートに対してプロビジョニングしてよい。幾つかの実施形態では、1つ以上の通信デバイスを、通信ハブ自体、及び1つ以上のクラウドベースサービスとの通信に対してプロビジョニングすることは、1つ以上の通信デバイスを1つ以上の通信デバイスグループに関連付けることを含んでよい。例えば、通信ハブ106は、通信デバイス102を通信デバイスグループ(例えば、通信ハブプロジェクトの為のユーザ定義されたデフォルトの通信デバイスグループ)に編成するか割り当ててよい。後で詳細に論じるように、通信ハブ106は、1つ以上の通信デバイスを、1つ以上の通信デバイスと、通信ハブと、1つ以上のクラウドベースサービスとの間の1つ以上のルートに自動で関連付けてよい。
【0079】
幾つかの実施形態では、通信ハブ106は、1つ以上の通信デバイスを1つ以上の通信デバイスグループに編成してよい。更に
図8の例を参照すると、幾つかの実施形態では、1つ以上のコンピューティングデバイス(例えば、コンピューティングデバイス104、806、808)と通信結合されている1つ以上の通信デバイス(例えば、通信デバイス102、802、804)が、1つ以上の通信デバイスグループ(例えば、通信デバイスグループ810)に編成されてよい。幾つかの実施形態では、1つ以上の通信デバイスグループは、ユーザ定義されてよく、且つ/又は通信ハブ106によって自動的に編成されてよい。
【0080】
更に
図9~10の例を参照すると、幾つかの実施形態では、1つ以上の通信デバイスを管理することは、ユーザが1つ以上の通信デバイスグループ及び1つ以上のルートを管理することを可能にするように構成された管理ツール(例えば、グラフィカルユーザインタフェース)を提供することを含んでよい。例えば、管理ツール(例えば、管理ツール700)は、ユーザが1つ以上の通信デバイスグループとその1つ以上の通信デバイスグループに関連付けられたルートとを管理する為に提供されてよい。
【0081】
幾つかの実施形態では、通信ハブ(例えば、通信ハブ106)は、1つ以上のコンピューティングデバイスと通信結合されている1つ以上の通信デバイスとクラウドベースサービスとの間で1つ以上のデータオブジェクトをルーティングするように構成されてよい。
図8の例を再度参照すると、幾つかの実施形態では、1つ以上のルート(例えば、1つ以上のルート814)は、通信デバイス102、802、804と通信ハブ106との間、並びに通信ハブ106とクラウドベースサービス108との間の通信チャネルを含んでよい。幾つかの実施形態では、1つ以上のルートは、通信ハブとクラウドベースサービスとの間の1つ以上のデータオブジェクトの転送を可能にできる。幾つかの実施形態では、ルートは、1つ以上のクラウドベースサービスアドレスと、クラウドベースサービスに関連付けられた認証情報と、JSON変換情報(後述)と、クラウドベースサービスにアクセスする為のユーザ認証情報(例えば、ユーザ名及びパスワード)と、他の任意の、通信ハブが1つ以上のデータオブジェクト/データオブジェクトアレイの修正をクラウドベースサービスまでルーティングすることを可能にする為に使用される情報と、を含んでよい。
【0082】
図10を参照すると、幾つかの実施形態では、1つ以上のデータオブジェクトをルーティングすることは、1つ以上の通信デバイスグループを1つ以上のルートに関連付けることを含んでよい。
図10に示すように、管理ツール700は、ユーザが1つ以上の通信デバイスグループ(「フリート」)を1つ以上のプロジェクトデータルート(例えば、ルート1000)に関連付けることを可能にするように構成されてよい。幾つかの実施形態では、1つ以上のルート(例えば、1つ以上のルート814)は、通信ハブとクラウドベースサービスとの間で1つ以上のデータオブジェクトを転送するように構成された1つ以上のサーバを含んでよい。
【0083】
上述のように、通信ハブ106は、一般に、「サービスとしてのソフトウェア」(SaaS)サービスとして、又はカスタマのサーバ上のサービスインスタンスとしてデプロイされてよい。通信ハブ106がカスタマのサーバ上のサービスインスタンスとしてデプロイされている幾つかの実施形態では、1つ以上のデータオブジェクトを1つ以上の通信デバイスと通信ハブとからルーティングすることは、少なくともある程度はインターネット接続経由で行われる。例えば、通信ハブがカスタマのサーバ上のサービスインスタンスとしてデプロイされている場合には、通信デバイス対通信ハブ通信は(例えば、HTTP APIによる)インターネット経由で行われてよい。通信ハブ106がSaaSサービスとしてデプロイされている別の例では、1つ以上のデータオブジェクトを1つ以上の通信デバイスと通信ハブとからルーティングすることは、少なくともある程度は、非インターネットのアクセス可能な接続を経由して行われる。言い換えると、通信デバイス対通信ハブ通信は、論理的に「インターネットを通して」行われてよい。例えば、データオブジェクトは、セルラキャリアから直接(例えば、非インターネット接続経由で)仮想プライベートクラウド(VPC)までセキュアトンネル内を移動するように構成されてよい。このように、1つ以上のデータオブジェクトを1つ以上の通信デバイスと通信ハブとからルーティングすることは、インターネットベースの攻撃に対する脆弱性から保護されることが可能であり、これは、通信デバイスがIPアドレス可能でない為である。
【0084】
幾つかの実施形態では、更に
図11の例を参照すると、1つ以上のデータオブジェクトをルーティングすることは、デバイス毎のイベントフロー(例えば、デバイス毎のイベントフロー1102)と、フィルタリング及びデータオブジェクト対データオブジェクト変換(フィルタリング及びJSON対JSON変換1104)と、選択的ルーティング(例えば、ルーティング1106)と、を含んでよい。幾つかの実施形態では、更に
図12を参照すると、デバイス毎のイベントフロー1102は、(上述のように、例えば、HTTP API(例えば、インターネットベースの通信)又はデバイストンネル(例えば、非インターネットベースの通信)のいずれかを経由して)通信デバイスからデータオブジェクトを受信することを含んでよい。データオブジェクトがデバイストンネル経由で受信される例では、デバイス毎のイベントフロー1102は、データオブジェクトを一時セッションログ(例えば、一時セッションログ1202)にログ記録してよい。データオブジェクトがHTTP API又はデバイストンネル経由で受信される場合には、デバイス毎のイベントフロー1102は、通信ハブ106(例えば、データオブジェクトアレイストレージ1204)に記憶されている少なくとも1つのデータオブジェクトアレイにデータオブジェクトを追加してよい。クラウドベースサービス108からデータオブジェクトを伝達する場合には、上述のプロセスが反転されてよい。例えば、データオブジェクトは、クラウドベースサービスから受信され、通信ハブ106に記憶されている少なくとも1つのデータオブジェクトアレイに追加され、HTTP API又はデバイストンネル経由でコンピューティングデバイスに送信されてよい。
【0085】
幾つかの実施形態では、1つ以上のデータオブジェクトをルーティングすることは、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上のコンピューティングデバイスと通信結合されている1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることを含んでよい。幾つかの実施形態では、「同期させる」ことは、一般に、データオブジェクトアレイを作成、削除、及び更新することを含んでよい。幾つかの実施形態では、後で詳細に論じるように、同期させることは、データアレイのデータオブジェクト拡張子に基づいて、単方向アップ/アウトバウンド(例えば、クラウドベースサービスに向かうだけ/通信デバイス内で保持されず)、単方向ダウン/インバウンド(例えば、通信デバイスに向かうだけ/通信ハブ内で保持されず)、又は双方向(例えば、通信デバイス及び通信ハブの両方で保持される)であってよい。例えば、
図12に示すように、データオブジェクトが通信ハブ106によって受信される場合は、データオブジェクトアレイストレージ1204に記憶されている通信ハブ106の少なくとも1つのデータオブジェクトアレイの少なくとも一部分が、受信されたデータオブジェクトと同期されてよい。
【0086】
幾つかの実施形態では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と双方向に同期させることを含んでよい。例えば、
図6を再度参照すると、データオブジェクト536は、データオブジェクト510としてデータオブジェクトアレイ504に複製されるように、双方向に複製されるデータオブジェクトであってよい。
【0087】
幾つかの実施形態では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分に同期させることを含んでよい。この例では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分に同期させることは、単方向であってよい。幾つかの実施形態では、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分を同期させること(例えば、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイを追加又は修正すること)に対する応答として、通信ハブは、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を削除するように構成されてよい。例えば、データオブジェクト552はインバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト552は、通信ハブ106のデータオブジェクトアレイ508に送信されると、データオブジェクト526としてデータオブジェクトアレイ508に記憶されてよく、且つ、(例えば、データオブジェクト534の周囲の破線で示されるように)データオブジェクトアレイ534から削除されてよい。
【0088】
幾つかの実施形態では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分から同期させることを含んでよい。幾つかの実施形態では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分から同期させること(例えば、通信ハブの少なくとも1つのデータオブジェクトアレイを追加又は修正すること)に対する応答として、通信デバイスは、通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分を削除するように構成されてよい。例えば、通信デバイス102は、データオブジェクト516を有するデータオブジェクトアレイ506を含んでよく、データオブジェクト516は通信ハブ106に送信されてよい。この例では、データオブジェクト516はアウトバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト516は、通信ハブ106のデータオブジェクトアレイ532に送信されると、データオブジェクト542としてデータオブジェクトアレイ532に記憶されてよく、且つ、(例えば、データオブジェクト516の周囲の破線で示されるように)データオブジェクトアレイ506から削除されてよい。
【0089】
幾つかの実施形態では、通信ハブの少なくとも1つのデータオブジェクトアレイの少なくとも一部分を、1つ以上の通信デバイスの少なくとも1つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、少なくともある程度は、1つ以上のデータオブジェクトアレイのそれぞれに関連付けられたデータオブジェクト拡張子に基づく。例えば、上述のように、データオブジェクトアレイは、少なくともある程度は、1つ以上のデータオブジェクトアレイのそれぞれに関連付けられたデータオブジェクト拡張子に基づいて定義されてよい。このように、データオブジェクト拡張子は、通信ハブ106と通信デバイス102との間でデータをどのように移動及び/又は複製するかを定義してよい。
【0090】
幾つかの実施形態では、上述のように、1つ以上のデータオブジェクトをルーティングすることは、1つ以上のコンピューティングデバイスと通信結合された1つ以上の通信デバイスから1つ以上のデータオブジェクト(例えば、JSONオブジェクト)を受信することを含んでよい。幾つかの実施形態では、
図12の例を再度参照すると、通信ハブは、1つ以上のデータオブジェクト(例えば、JSONオブジェクト)をフィルタリング及び変換してよい。幾つかの実施形態では、通信デバイスから受信されたデータオブジェクト(例えば、JSONオブジェクト)を変換する為の変換ロジック、及び/又は通信デバイスに送信されるデータオブジェクト(例えば、JSONオブジェクト)を変換する為の変換ロジックをユーザが提供したい場合がある。
図9の例を再度参照すると、幾つかの実施形態では、管理ツール700は、ユーザが1つ以上のJSON対JSON変換を定義することを可能にする、ユーザインタフェースの一部分(例えば、ウィンドウ1002)を提供してよい。この例では、ユーザは、特定のデータオブジェクトの変換がユーザ定義変換に基づいて行われるように、ユーザインタフェースの別の部分(例えば、ウィンドウ1004)で1つ以上のデータオブジェクトを選択してよい。幾つかの実施形態では、ユーザは、別のウィンドウ(例えば、ウィンドウ1006)で1つ以上の通信デバイスグループ(「フリート」)を選択してよく、それによって、選択された通信デバイスグループの、ウィンドウ1004から選択されたデータオブジェクトが、ウィンドウ1002で与えられた変換に従って変換されることが可能になる。様々なウィンドウの例を示したが、当然のことながら、ユーザインタフェースは、本開示の範囲内で、ユーザが通信デバイスグループ、データオブジェクト、及びデータオブジェクト変換(例えば、JSON変換)を選択することを容易にするように様々な様式で構成されてよい。
【0091】
幾つかの実施形態では、
図11の例を再度参照すると、通信ハブは、1つ以上のデータオブジェクトの、クラウドベースサービスまでの、且つクラウドベースサービスからの選択的ルーティング(例えば、選択的ルーティング1106)を行ってよい。
図10の例を再度参照すると、幾つかの実施形態では、通信ハブ106とクラウドベースサービス108との間でデータオブジェクトをルーティングする為の1つ以上のルートが決定されてよい。データオブジェクト変換に関して上述したように、(例えば、ウィンドウ1004の)特定のデータオブジェクト及び/又は(例えば、ウィンドウ1006の)特定の通信デバイスグループに対して特定のルートが選択されてよく、或いは関連付けられてよい。
【0092】
幾つかの実施形態では、1つ以上のAPIを使用して、データオブジェクトがクラウドベースサービス108まで、又はクラウドベースサービス108から送信されてよい。
図8の例を再度参照すると、幾つかの実施形態では、1つ以上のAPI(例えば、API816)が、ダウンロード可能鍵とともにHTTP又はHTTPsで呼び出し可能であってよい。幾つかの実施形態では、API816は、ポストされたもの、又は返されたもののボディに、データオブジェクトとともにHTTP GET又はPOSTを含んでよい。幾つかの実施形態では、データオブジェクトは、JSONオブジェクトとしてクラウドベースサービス108に送信されてよい。例えば、データオブジェクト又はJSONオブジェクトが、以下の例に示すように、クラウドベースストレージ108に送信されてよい。
POST
{"req":"note.add","file":"air.qo","device":"imei:8664250","product":"com.acme.airmon","when":1544643332,”where”:”JMC3+56”,”body”:{temp”:72,”humid”61}}
【0093】
このように、コンピューティングデバイス104で生成されたデータオブジェクトは、最小限のユーザ実装で、セルラネットワークを介して、コンピューティングデバイス102と通信ハブ106との組み合わせを経由してクラウドベースサービス108に伝達されてよい。上記の例ではJSONオブジェクトについて論じたが、当然のことながら、他のデータオブジェクトも、本開示の範囲内で、API816により搬送されてよい。
【0094】
図面におけるフローチャート及びブロック図は、本開示の様々な実施態様によるシステム、方法、及びコンピュータプログラム製品の可能な実施態様のアーキテクチャ、機能性、及び動作を示してよい。この点において、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施する為の1つ以上の実行可能命令を含むモジュール、セグメント、又はコード部分を表すものであってよい。なお、幾つかの代替実施態様では、ブロックに記載された機能は、図面に記載された順序から外れて実行されてもよい。例えば、連続するように示されている2つのブロックが、実際には、ほぼ同時に実行されてもよく、必要とされる機能性によっては、逆の順序で実行されることがあってもよい。又、ブロック図及び/又はフローチャート図の各ブロック、並びに、ブロック図及び/又はフローチャート図におけるブロック同士の組み合わせが、指定された機能又は動作を実行する専用ハードウェアベースシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施可能であることにも注意されたい。
【0095】
本明細書において使用された術語は、特定の実施態様を記述することのみを目的としており、本開示の限定を意図したものではない。本明細書では、単数形「a」、「an」、及び「the」は、文脈上明らかに矛盾する場合を除き、複数形も同様に包含するものとする。更に当然のことながら、「comprises(含む)」及び/又は「comprising(含む)」という語句は、本明細書で使用される場合には、述べられた特徴、整数、手順、操作、要素、及び/又は構成要素の存在を明記するものであり、1つ以上の他の特徴、整数、手順、操作、要素、構成要素、及び/又はこれらの集まりの存在又は追加を排除するものではない。
【0096】
以下の特許請求項における全てのミーンズ・オア・ステップ・プラス・ファンクション(means or step plus function)要素の対応する構造、材料、動作、及び均等物は、他の特許請求された要素との組み合わせで、具体的に特許請求されたとおりに機能を実施する全ての構造、材料、または動作を包含するものとする。本開示の記載は、例示及び説明を目的として提示しており、網羅的であることも、開示された形態での本開示に限定されることも意図していない。当業者であれば、本開示の範囲及び趣旨から逸脱しない、様々な修正や変形が明らかであろう。本実施形態は、本開示の原理及び実際の適用を最もよく説明する為に、且つ、他の当業者が、想定される特定の使用に適した様々な修正を有する様々な実施態様に関して本開示を理解することを可能にするように、選択して説明されたものである。
【0097】
様々な実施態様を説明してきた。ここまで、本出願の開示を詳細に、且つ、本出願の実施態様を参照することにより、説明してきたが、添付の特許請求項で定義される本開示の範囲から逸脱することのない修正形態及び変形形態が可能であることは明らかであろう。
〔付記1〕
1つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、前記コンピューティングデバイスに通信的に結合される通信デバイスであり、
無線セルラ送受信器を備え、
前記通信デバイスは、
1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の1つ以上を実施するように構成されている、
通信デバイス。
〔付記2〕
前記コンピューティングデバイスが、マイクロコントローラである、
付記1に記載の通信デバイス。
〔付記3〕
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
付記1に記載の通信デバイス。
〔付記4〕
前記シリアルリンクが、ユニバーサルアシンクロナスレシーバ/トランスミッタ(UART)、ユニバーサルシリアルバス(USB)、インターインテグレーテッドサーキット(I2C)、シリアルペリフェラルインタフェース(SPI)、MODBUS(登録商標)、コントローラエリアネットワーク(CAN)バス、及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、のうちの1つ以上を含む、付記3に記載の通信デバイス。
〔付記5〕
前記通信デバイスが、前記コンピューティングデバイスから通信ポリシーを受信するように構成されている、
付記1に記載の通信デバイス。
〔付記6〕
前記通信ポリシーが、消費電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先すること、のうちの1つ以上を含む、前記通信デバイスのために1つ以上の通信セッション基準を定義する、
付記5に記載の通信デバイス。
〔付記7〕
前記通信デバイスが、
前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記データオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するためのスケジュールを生成するステップと、
前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記クラウドベースサービスから前記データオブジェクトアレイの少なくとも一部分を受信するためのスケジュールを生成するステップと、
の1つ以上を実施するようにさらに構成されている、
付記5に記載の通信デバイス。
〔付記8〕
前記通信デバイスが、前記1つ以上のオブジェクトにメタデータを追加するように構成され、前記メタデータは、前記通信デバイスの時間及び位置のうちの1つ以上を含む、
付記7に記載の通信デバイス。
〔付記9〕
前記通信デバイスが、前記コンピューティングデバイスから受信した前記通信ポリシーと、前記1つ以上のデータオブジェクトに追加されたメタデータと、の少なくとも一部に基づいて、前記データオブジェクトの圧縮及び暗号化の1つ以上を行うように構成されている、
付記8に記載の通信デバイス。
〔付記10〕
前記1つ以上のデータオブジェクトが、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトである、
付記1に記載の通信デバイス。
〔付記11〕
前記通信デバイスが、
前記通信デバイスの前記メモリに記憶させるために、前記無線セルラ送受信器を介して、前記1つ以上のデータオブジェクトの形式のファームウェアデータを受信するステップと、
前記コンピューティングデバイスに受信した前記ファームウェアデータをインストールするため、受信した前記ファームウェアデータの少なくとも一部を前記コンピューティングデバイスに送信するように、前記コンピューティングデバイスから1つ以上のコマンドを受信するステップと、
を実施するようにさらに構成されている、
付記1に記載の通信デバイス。
〔付記12〕
前記通信デバイスが、前記無線セルラ送受信器の電源の有効化及び無効化の1つ以上を実施するようにさらに構成されている、
付記1に記載の通信デバイス。
〔付記13〕
前記通信デバイスが、全球測位衛星システム(GNSS)システムをさらに備え、GNSSアンテナと通信結合されるようにさらに構成されている、
付記1に記載の通信デバイス。
〔付記14〕
加速度計であって、前記加速度計が動きを検出したときに、前記通信デバイスに前記GNSSシステムからGNSS位置情報をサンプリングさせるように構成された前記加速度計、をさらに備える、
付記13に記載の通信デバイス。
〔付記15〕
製造時に前記通信デバイスの不揮発性メモリが、前記通信デバイスのセキュア認証及びクラウドベースサービスとの通信を可能にする1つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成される、
付記1に記載の通信デバイス。
〔付記16〕
1つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、
無線セルラ送受信器を備え、
前記通信デバイスは、
1つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも1つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された1つ以上のデータオブジェクトの少なくとも1つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも1つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
1つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも1つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも1つのデータオブジェクトアレイの前記1つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも1つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも1つのデータオブジェクトアレイの前記1つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の1つ以上を実施するように構成されている、
通信デバイス。
〔付記17〕
前記コンピューティングデバイスが、マイクロコントローラである、
付記16に記載の通信デバイス。
〔付記18〕
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
付記16に記載の通信デバイス。
〔付記19〕
前記1つ以上のデータオブジェクトが、JavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトである、
付記16に記載の通信デバイス。
〔付記20〕
シリアルリンクを介してコンピューティングデバイスに通信的に結合されるように構成されている通信デバイスであって、前記コンピューティングデバイスが、前記シリアルリンクを介して通信される1つ以上のJavaScriptオブジェクトノーテーション(JavaScript Object Notation)(JSON)オブジェクトを使用して、前記通信デバイスとリクエスト及びレスポンスを通信する、
通信デバイス。