(57)【要約】  １つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイス（例えば、モジュール上のシステム（ｄａｔａ  ｓｙｓｔｅｍ  ｏｎ  ａ  ｍｏｄｕｌｅ）（（ＤＳｏＭ））／パッケージ内データシステム（Ｄａｔａ  Ｓｙｓｔｅｍ  ｉｎ  ａ  Ｐａｃｋａｇｅ）（ＤＳｉＰ））である。前記通信デバイスは、コンピューティングデバイスに通信的に結合されるように構成されてもよく、無線セルラ送受信器を備えてもよい。前記通信デバイスは、前記コンピューティングデバイスから前記クラウドベースのサービスに少なくとも１つのデータオブジェクトを送信することと、前記クラウドベースのサービスから少なくとも１つのデータオブジェクトを受信すること、のうちの１つ以上を実施するように構成されてもよい。本開示の実施形態は、前記通信デバイス上にパッケージ化され、インターネットベースの安全な通信ハブと統合された分散複製時空間データベースを提供してもよい。
2021531710.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、前記コンピューティングデバイスに通信的に結合される通信デバイスであり、
無線セルラ送受信器を備え、
前記通信デバイスは、
１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも１つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された１つ以上のデータオブジェクトの少なくとも１つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも１つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも１つのデータオブジェクトアレイの前記１つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも１つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも１つのデータオブジェクトアレイの前記１つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の１つ以上を実施するように構成されている、
通信デバイス。
【請求項２】
前記コンピューティングデバイスが、マイクロコントローラである、
請求項１に記載の通信デバイス。
【請求項３】
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
請求項１に記載の通信デバイス。
【請求項４】
前記シリアルリンクが、ユニバーサルアシンクロナスレシーバ／トランスミッタ（ＵＡＲＴ）、ユニバーサルシリアルバス（ＵＳＢ）、インターインテグレーテッドサーキット（Ｉ２Ｃ）、シリアルペリフェラルインタフェース（ＳＰＩ）、ＭＯＤＢＵＳ（登録商標）、コントローラエリアネットワーク（ＣＡＮ）バス、及びペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、のうちの1つ以上を含む、請求項３に記載の通信デバイス。
【請求項５】
前記通信デバイスが、前記コンピューティングデバイスから通信ポリシーを受信するように構成されている、
請求項１に記載の通信デバイス。
【請求項６】
前記通信ポリシーが、消費電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先すること、のうちの1つ以上を含む、前記通信デバイスのために１つ以上の通信セッション基準を定義する、
請求項５に記載の通信デバイス。
【請求項７】
前記通信デバイスが、
前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記データオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するためのスケジュールを生成するステップと、
前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記クラウドベースサービスから前記データオブジェクトアレイの少なくとも一部分を受信するためのスケジュールを生成するステップと、
の１つ以上を実施するようにさらに構成されている、
請求項５に記載の通信デバイス。
【請求項８】
前記通信デバイスが、前記１つ以上のオブジェクトにメタデータを追加するように構成され、前記メタデータは、前記通信デバイスの時間及び位置のうちの１つ以上を含む、
請求項７に記載の通信デバイス。
【請求項９】
前記通信デバイスが、前記コンピューティングデバイスから受信した前記通信ポリシーと、前記１つ以上のデータオブジェクトに追加されたメタデータと、の少なくとも一部に基づいて、前記データオブジェクトの圧縮及び暗号化の１つ以上を行うように構成されている、
請求項８に記載の通信デバイス。
【請求項１０】
前記１つ以上のデータオブジェクトが、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトである、
請求項１に記載の通信デバイス。
【請求項１１】
前記通信デバイスが、
前記通信デバイスの前記メモリに記憶させるために、前記無線セルラ送受信器を介して、前記１つ以上のデータオブジェクトの形式のファームウェアデータを受信するステップと、
前記コンピューティングデバイスに受信した前記ファームウェアデータをインストールするため、受信した前記ファームウェアデータの少なくとも一部を前記コンピューティングデバイスに送信するように、前記コンピューティングデバイスから1つ以上のコマンドを受信するステップと、
を実施するようにさらに構成されている、
請求項１に記載の通信デバイス。
【請求項１２】
前記通信デバイスが、前記無線セルラ送受信器の電源の有効化及び無効化の１つ以上を実施するようにさらに構成されている、
請求項１に記載の通信デバイス。
【請求項１３】
前記通信デバイスが、全球測位衛星システム（ＧＮＳＳ）システムをさらに備え、ＧＮＳＳアンテナと通信結合されるようにさらに構成されている、
請求項１に記載の通信デバイス。
【請求項１４】
加速度計であって、前記加速度計が動きを検出したときに、前記通信デバイスに前記ＧＮＳＳシステムからＧＮＳＳ位置情報をサンプリングさせるように構成された前記加速度計、をさらに備える、
請求項１３に記載の通信デバイス。
【請求項１５】
製造時に前記通信デバイスの不揮発性メモリが、前記通信デバイスのセキュア認証及びクラウドベースサービスとの通信を可能にする１つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成される、
請求項１に記載の通信デバイス。
【請求項１６】
１つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスであって、
無線セルラ送受信器を備え、
前記通信デバイスは、
１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップであって、
前記コンピューティングデバイスから少なくとも１つのデータオブジェクトを受信するステップと、
前記通信デバイスのメモリに記憶された１つ以上のデータオブジェクトの少なくとも１つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも１つのデータオブジェクトに基づいて修正するステップと、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、
を含む、前記送信するステップと、
１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップであって、
前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、
前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも１つのデータオブジェクトアレイの前記１つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも１つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、
前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも１つのデータオブジェクトアレイの前記１つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、
を含む、前記受信するステップと、
の１つ以上を実施するように構成されている、
通信デバイス。
【請求項１７】
前記コンピューティングデバイスが、マイクロコントローラである、
請求項１６に記載の通信デバイス。
【請求項１８】
前記通信デバイスが、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されている、
請求項１６に記載の通信デバイス。
【請求項１９】
前記１つ以上のデータオブジェクトが、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトである、
請求項１６に記載の通信デバイス。
【請求項２０】
シリアルリンクを介してコンピューティングデバイスに通信的に結合されるように構成されている通信デバイスであって、前記コンピューティングデバイスが、前記シリアルリンクを介して通信される１つ以上のＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトを使用して、前記通信デバイスとリクエスト及びレスポンスを通信する、
通信デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年７月２５日に出願された米国特許仮出願第６２／７０３，０５４号、及び２０１９年２月２０日に出願された米国特許仮出願第６２／８０７，８４０号の利益を主張するものである。上記出願は両方とも、参照によって本明細書に組み込まれている。
【背景技術】
【０００２】
セルラ通信業界からの、通信に関しての展望は２つの中核的前提に支配される。第１の前提として、グローバル相互運用性が何よりも重要（速度よりも重要）であり、テクノロジは規格基準委員会によって定義されなければならない。第２の前提として、カスタマは何であれ規格基準委員会が作り出すもの（業界と政府が設計及び構築するもの）を使用することになり、業界はその計量式セルラビジネスモデルを永久に使用することになり、カスタマはそれについていくことになる。カスタマは、テクノロジ又はその要件を定義することに関与せず、開発者等とはつながりがない。
【０００３】
コンピューティング／ＩＴ業界からの、通信に関しての展望は、概して２つの中核的前提に支配される。第１の前提として、テクノロジは、革新者と構築者と業界とによって定義されるべきである。開発者は最良を知っており、アーキテクチャは、強力なハイエンドプラットフォームに向けての進歩的な考え方で定義されるべきであって、能力が劣る過去のプラットフォームにあまりフォーカスすべきではない。第２の前提として、多種多様なデバイスとプロトコルとネットワークとが存在する中で、支配的なプラットフォーム提供者の最も重要な役割は、あらゆるデバイスとあらゆるアプリケーションをサポートし、全てのネットワークを、ストリームを送達するソケットを露出させるパイプとして扱う、一般化された抽象化を作成することである。
【０００４】
これらの業界はいずれも、セルラ中心の大量のモノのインターネット（ＩｏＴ）（数十億個のデバイス）に関してはいずれの展望も受け入れられないという事実を完全には受け入れていない。ＡＴコマンド及びモデムモジュール、並びにカスタムネゴシエーションによるセルラ契約の低レベル性、及び規格に基づく制約は複雑すぎる場合があり、スケーリングが不可能である。更に、クラウドに接続する際に必要とされる証明書管理及び高レベルのＬｉｎｕｘ（登録商標）／Ｗｉｎｄｏｗｓ（登録商標）ベースのアプリケーションプログラマブルインタフェース（ＡＰＩ）の複雑さは、組み込み開発者が極めて低電力且つ安価なマイクロコントローラにおいて極めて単純なことをしようとする場合には、単純に現実的ではない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来の技術における課題を解決するためになされたものである。
【課題を解決するための手段】
【０００６】
一例示的実施態様では、１つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスが提供される。前記通信デバイスは、前記コンピューティングデバイスに通信的に結合され、無線セルラ送受信器を備えるように構成されてよい。前記通信デバイスは、１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップと、１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップ、の１つ以上を実施するように構成されてよい。前記１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップは、前記コンピューティングデバイスから少なくとも１つのデータオブジェクトを受信するステップと、前記通信デバイスのメモリに記憶された１つ以上のデータオブジェクトの少なくとも１つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも１つのデータオブジェクトに基づいて修正するステップと、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップと、を含んでよい。前記１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップは、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも１つのデータオブジェクトアレイの前記１つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも１つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも１つのデータオブジェクトアレイの前記１つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップと、を含んでよい。
【０００７】
以下の特徴例のうちの１つ以上が含まれてよい。前記コンピューティングデバイスは、マイクロコントローラであってよい。前記通信デバイスは、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されてよい。前記シリアルリンクは、ユニバーサルアシンクロナスレシーバ／トランスミッタ（ＵＡＲＴ）、ユニバーサルシリアルバス（ＵＳＢ）、インターインテグレーテッドサーキット（Ｉ２Ｃ）、シリアルペリフェラルインタフェース（ＳＰＩ）、ＭＯＤＢＵＳ（登録商標）、コントローラエリアネットワーク（ＣＡＮ）バス、及びペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、のうちの1つ以上を含んでよい。前記通信デバイスは、前記コンピューティングデバイスから通信ポリシーを受信するように構成されてよい。前記通信ポリシーは、消費電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先すること、のうちの1つ以上を含む、前記通信デバイスのために１つ以上の通信セッション基準を定義してよい。前記通信デバイスは、前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記データオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するためのスケジュールを生成するステップと、前記コンピューティングデバイスから受信した前記通信ポリシーの少なくとも一部に基づいて、前記無線セルラ送受信器を介して、前記クラウドベースサービスから前記データオブジェクトアレイの少なくとも一部分を受信するためのスケジュールを生成するステップと、の１つ以上を実施するようにさらに構成されてよい。前記通信デバイスは、前記１つ以上のオブジェクトにメタデータを追加するように構成されてよく、前記メタデータは、前記通信デバイスの時間及び位置のうちの１つ以上を含んでよい。前記通信デバイスは、前記コンピューティングデバイスから受信した前記通信ポリシーと、前記１つ以上のデータオブジェクトに追加されたメタデータと、の少なくとも一部に基づいて、前記データオブジェクトの圧縮及び暗号化の１つ以上を行うように構成されてよい。前記１つ以上のデータオブジェクトは、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトであってよい。前記通信デバイスは、前記通信デバイスの前記メモリに記憶させるために、前記無線セルラ送受信器を介して、前記１つ以上のデータオブジェクトの形式のファームウェアデータを受信するステップと、前記コンピューティングデバイスに受信した前記ファームウェアデータをインストールするため、受信した前記ファームウェアデータの少なくとも一部を前記コンピューティングデバイスに送信するように、前記コンピューティングデバイスから1つ以上のコマンドを受信するステップと、を実施するようにさらに構成されてよい。前記通信デバイスは、前記無線セルラ送受信器の電源の有効化及び無効化の１つ以上を実施するようにさらに構成され��よい。前記通信デバイスは、全球測位衛星システム（ＧＮＳＳ）システムをさらに備え、ＧＮＳＳアンテナと通信結合されるようにさらに構成されてよい。前記通信デバイスは、加速度計であって、前記加速度計が動きを検出したときに、前記通信デバイスに前記ＧＮＳＳシステムからＧＮＳＳ位置情報をサンプリングさせるように構成された前記加速度計、をさらに備えてよい。前記通信デバイスは、製造時に前記通信デバイスの不揮発性メモリが、前記通信デバイスのセキュア認証及びクラウドベースサービスとの通信を可能にする１つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成されてよい。
【０００８】
別の例示的実施態様では、１つ以上のデータ変更を互いに非同期的に同期させるために、コンピューティングデバイスをクラウドベースサービスと通信結合するための通信デバイスが提供される。前記通信デバイスは、無線セルラ送受信器を備えてよく、１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップと、１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップを実施するように構成されてよい。前記１つ以上のデータオブジェクトを前記コンピューティングデバイスから前記クラウドベースサービスまで送信するステップは、前記コンピューティングデバイスから少なくとも１つのデータオブジェクトを受信するステップと、前記通信デバイスのメモリに記憶された１つ以上のデータオブジェクトの少なくとも１つのデータオブジェクトアレイを、少なくともある程度は、前記受信された少なくとも１つのデータオブジェクトに基づいて修正するステップと、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記修正された少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスに送信するステップとを含んでよい。前記１つ以上のデータオブジェクトを前記クラウドベースサービスから受信するステップは、前記コンピューティングデバイスに対して非同期で、前記無線セルラ送受信器経由で、前記少なくとも１つのデータオブジェクトアレイの少なくとも一部分を前記クラウドベースサービスから受信するステップと、前記コンピューティングデバイスの前記メモリに記憶された前記少なくとも１つのデータオブジェクトアレイの前記１つ以上のデータオブジェクトを、少なくともある程度は、前記少なくとも１つのデータオブジェクトアレイの前記受信された少なくとも一部分に基づいて修正するステップと、前記通信デバイスと前記クラウドベースサービスとの通信に対して非同期で、前記少なくとも１つのデータオブジェクトアレイの前記１つ以上の修正されたデータオブジェクトを、前記コンピューティングデバイスが利用できるようにするステップとを含んでよい。
【０００９】
以下の特徴例のうちの１つ以上が含まれてよい。前記コンピューティングデバイスは、マイクロコントローラであってよい。前記通信デバイスは、シリアルリンクを介して前記コンピューティングデバイスに通信的に結合されるように構成されてよい。前記１つ以上のデータオブジェクトは、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトであってよい。
【００１０】
更に別の例示的実施態様では、通信デバイスは、シリアルリンクを介してコンピューティングデバイスに通信的に結合されるように構成されている通信デバイスであって、前記コンピューティングデバイスが、前記シリアルリンクを介して通信される１つ以上のＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトを使用して、前記通信デバイスとリクエスト及びレスポンスを通信するように構成されてよい。
【００１１】
１つ以上の例示的実施態様の詳細を、添付図面及び以下の記述において説明する。他の可能な特徴例及び／又は可能な利点例も、本明細書、図面、及び特許請求項から明らかになるであろう。実施態様によってはそのような可能な特徴例及び／又は可能な利点例がない場合があるが、そのような可能な特徴例及び／又は可能な利点例は、実施態様によっては必ずしも必要とされない場合がある。
【００１２】
各種図面間で類似の参照符号は類似の要素を表す。
【図面の簡単な説明】
【００１３】
【図１】本開示の１つ以上の例示的実施態様による通信システムの例示的概略図である。
【図２】乃至
【図４】本開示の１つ以上の例示的実施態様による、コンピューティングデバイス及び無線セルラ送受信器と通信結合された通信デバイスの例示的概略図である。
【図５】本開示の１つ以上の例示的実施態様による、１つ以上のデータオブジェクトアレイを有する通信システムの例示的概略図である。
【図６】本開示の１つ以上の例示的実施態様による、分散複製時空間データベースを定義する為に通信デバイスと通信ハブとの間で同期されているデータオブジェクトアレイのデータオブジェクトの例示的概略図である。
【図７】本開示の１つ以上の例示的実施態様による、通信ハブに関連付けられた管理ツールの例示的概略図である。
【図８】本開示の１つ以上の例示的実施態様による、１つ以上のデータオブジェクトアレイを有する通信システムの例示的概略図である。
【図９】乃至
【図１０】本開示の１つ以上の例示的実施態様による、通信ハブに関連付けられた管理ツールの例示的概略図である。
【図１１】乃至
【図１２】本開示の１つ以上の例示的実施態様による通信ハブの概略図である。
【発明を実施するための形態】
【００１４】
上述のように、現時点ではセルラ通信に関して全く異なる２つのシステムアーキテクチャが存在し、両方とも広く支持されている。そして両方とも圧倒的に複雑である。例えば、セルラ通信業界からの展望は２つの中核的前提に支配される。第１の前提として、グローバル相互運用性が何よりも重要（速度よりも重要）であり、テクノロジは規格基準委員会によって定義されなければならない。第２の前提として、カスタマは何であれ規格基準委員会が作り出すもの（業界と政府が設計及び構築するもの）を使用することになり、業界はその計量式セルラビジネスモデルを永久に使用することになり、カスタマはそれについていくことになる。カスタマは、テクノロジ又はその要件を定義することに関与せず、開発者等とはつながりがない。
【００１５】
コンピューティング／ＩＴ業界からの、通信に関しての展望は、概して２つの中核的前提に支配される。第１の前提として、テクノロジは、革新者と構築者と業界とによって定義されるべきである。開発者は最良を知っており、アーキテクチャは、強力なハイエンドプラットフォームに向けての進歩的な考え方で定義されるべきであって、能力が劣る過去のプラットフォームにあまりフォーカスすべきではない。第２の前提として、多種多様なデバイスとプロトコルとネットワークとが存在する中で、支配的なプラットフォーム提供者の最も重要な役割は、あらゆるデバイスとあらゆるアプリケーションをサポートし、全てのネットワークを、ストリームを送達するソケットを露出させるパイプとして扱う、一般化された抽象化を作成することである。例えば、トランスポートとしての６４ｋｂｐｓセルラには関心が持たれておらず、エッジにある６４ＫＢマイクロコントローラには関心が持たれていない。
【００１６】
これらの業界はいずれも、セルラ中心の大量のモノのインターネット（ＩｏＴ）（数十億個のデバイス）に関してはいずれの展望も受け入れられないという事実を完全には受け入れていない。ＡＴコマンド及びモデムモジュール、並びにカスタムネゴシエーションによるセルラ契約の低レベル性、及び規格に基づく制約は複雑すぎる場合があり、スケーリングが不可能である。更に、クラウドに接続する際に必要とされる証明書管理及び高レベルのＬｉｎｕｘ／Ｗｉｎｄｏｗｓベースのアプリケーションプログラマブルインタフェース（ＡＰＩ）の複雑さは、組み込み開発者が極めて低電力且つ安価なマイクロコントローラにおいて極めて単純なことをしようとする場合には、単純に現実的ではない。
【００１７】
後で詳細に論じるように、本開示の実施形態は、マイクロコントローラをクラウドベースサービスに通信結合するように構成されたモジュール上データシステム（ｄａｔａ  ｓｙｓｔｅｍ  ｏｎ  ａ  ｍｏｄｕｌｅ（ＤＳｏＭ））、パッケージ内データシステム（ｄａｔａ  ｓｙｓｔｅｍ  ｉｎ  ａ  ｐａｃｋａｇｅ（ＤＳｉＰ））、又は通信デバイス及び／又は通信ハブを含んでよい。後で詳細に述べるように、本開示の実施形態は、次に挙げる特徴の１つ以上を備えてよく、それらの特徴は、モジュール上データシステム（ＤＳｏＭ）であって、モデム／無線セルラ送受信器、プリペイドセルラモジュール、ストレージ、ＩＰ及びＴＬＳのスタック、セキュアエレメント及び鍵／証明書、ＧＰＳ及び加速度計を有し、ＳＳＩＤ、パスワード、アクセスポイント、ゲートウェイ、キャリア、又はＳＩＭを扱う面倒のない接続性を提供するモジュール上データシステム（ＤＳｏＭ）、プロビジョニング課題が皆無であり、ハードウェア暗号化鍵及び暗号化された「インターネットからの」通信を有するセキュリティ、モデム、接続、キュー、又はストレージを管理する複雑さのないバッテリ駆動（μＡ）セルラ、データをそれが属する場所（例えば、アマゾンウェブサービス（Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＡＷＳ（商標）））、アズール（Ａｚｕｒｅ（商標））、グーグルクラウドストレージ（Ｇｏｏｇｌｅ  Ｃｌｏｕｄ  Ｓｔｏｒａｇｅ（商標））、又はカスタムクラウド）まで直接ルーティングする、極めて薄い「サービスとしてのインフラストラクチャ」（ＩａａＳ）、及び可動部分がほとんどなく、あらゆるスキルレベルで低障壁であることである（ＡＷＳは、米国、他の国々、又はその両方におけるアマゾン・ドット・コム・インク（Ａｍａｚｏｎ．ｃｏｍ，  Ｉｎｃ．）の商標であり、Ａｚｕｒｅは、米国、他の国々、又はその両方におけるマイクロソフト・コーポレーション（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）の登録商標であり、Ｇｏｏｇｌｅ  Ｃｌｏｕｄ  Ｓｔｏｒａｇｅは、米国、他の国々、又はその両方におけるグーグルＬＬＣ（Ｇｏｏｇｌｅ  ＬＬＣ）の登録商標である）。このように、そして後で詳細に論じるように、本開示の実施形態は、セキュア通信モジュール上にパッケージされ、インターネットベースの通信ハブと統合された分散複製時空間データベースを備えてよい。
【００１８】
図１の例を参照すると、幾つかの実施形態では、通信システム（例えば、通信システム１００）において、大まかに、通信デバイス（例えば、通信デバイス１０２）がコンピューティングデバイス（例えば、コンピューティングデバイス１０４）及び通信ハブ（例えば、通信ハブ１０６）と通信結合されるように構成されてよく、通信ハブ（例えば、通信ハブ１０６）はクラウドベースサービス（例えば、クラウドベースサービス１０８）と通信結合されるように構成されてよい。後で詳細に論じるように、アプリケーションがコンピューティングデバイス（例えば、コンピューティングデバイス１０４）上で書かれてよく、コンピューティングデバイス（例えば、コンピューティングデバイス１０４）からのデータ（例えば、データオブジェクト１１０）は、通信デバイス（例えば、通信デバイス１０２）との通信の為にフォーマットされてよく、通信ハブ（例えば、通信ハブ１０６）との間でやり取りされてよい。通信ハブ（例えば、通信ハブ１０６）は、クラウドベースサービス（例えば、クラウドベースサービス１０８）又はアプリケーションとの間でデータをやり取りしてよい。幾つかの実施形態では、コンピューティングデバイス（例えば、マイクロコントローラ）を、クラウドベースサービスと通信するように構成する為の、電源及びストレージの管理、プロビジョニング及びセキュリティ及びソフトウェアアップデート、無線帯域及びキャリアの管理、規制証明書、ビジネスモデル等は、全て通信デバイス及び通信ハブによって管理されてよい。
【００１９】
幾つかの実施形態では、通信デバイスはコンピューティングデバイスをクラウドベースサービスに通信結合してよい。幾つかの実施形態では、コンピューティングデバイスはマイクロコントローラを含んでよい。マイクロコントローラ（「ＭＣＵ」）は、一般に、単一集積回路上にあって製品のアプリケーションロジックを実行するコンピューティングデバイスを含んでよい。ＭＣＵは、ベンダのソフトウェア開発キット（ＳＤＫ）により、又は最小限のオペレーティング環境（例えば、ＦｒｅｅＲＴＯＳ、Ａｒｍ（登録商標）、Ｍｂｅｄ（商標）  ＩｏＴ  Ｄｅｖｉｃｅ  Ｐｌａｔｆｏｒｍ等）により「裸」で動作することが可能である（Ａｒｍは、米国、他の国々、又はその両方におけるアーム・ホールディングス（Ａｒｍ  Ｈｏｌｄｉｎｇｓ）の登録商標である）。幾つかの実施形態では、ＭＣＵは、そのハードウェア設計の多くの側面をよりハイエンドのコンポーネント（例えば、シングルボードコンピュータ）と共有しているとしても、Ｌｉｎｕｘ（登録商標）（例えば、Ｌｉｎｕｘカーネルをベースとする任意のオペレーティングシステム）を実行することができない（Ｌｉｎｕｘは、米国、他の国々、又はその両方におけるリーナス・トーバルズ（Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓ）の登録商標である）。当該技術分野において知られているように、ＭＣＵは、一般に、１つ以上のＣＰＵコア、メモリ（例えば、ＲＡＭ）、入出力周辺装置等を含んでよい。
【００２０】
幾つかの実施形態では、コンピューティングデバイスはシングルボードコンピュータ（「ＳＢＣ」）を含んでよい。ＳＢＣは、一般に、Ｌｉｎｕｘ（又は、メモリ管理ユニット（ＭＭＵ）を必要とする任意のＯＳ（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）又はＡｎｄｒｏｉｄ（商標）））をベースとするコンピュータを含んでよい（Ｍｉｃｒｏｓｏｆｔ及びＷｉｎｄｏｗｓは、米国、他の国々、又はその両方におけるマイクロソフト・コーポレーション（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）の登録商標である）。しかしながら、当然のこととして、他のオペレーティングシステムがＳＢＣで使用されてよく、且つ／又はＳＢＣにインストールされてよく、そのようなオペレーティングシステムとして、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ（登録商標）  ＯＳ  Ｘ（登録商標）、Ｒｅｄ  Ｈａｔ（登録商標）  Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｏｂｉｌｅ、Ｃｈｒｏｍｅ  ＯＳ、Ｂｌａｃｋｂｅｒｒｙ  ＯＳ、Ｆｉｒｅ  ＯＳ、又はカスタムオペレーティングシステムがあり、これらに限定されない（Ｍａｃ及びＯＳ  Ｘは、米国、他の国々、又はその両方におけるアップル・インク（Ａｐｐｌｅ  Ｉｎｃ．）の登録商標であり、Ｒｅｄ  Ｈａｔは、米国、他の国々、又はその両方におけるレッド・ハット・コーポレーション（Ｒｅｄ  Ｈａｔ  Ｃｏｒｐｏｒａｔｉｏｎ）の登録商標である）。
【００２１】
クラウドベースサービスは、一般に、エンティティ自体の構内にあるサーバ（例えば、カスタマのサーバ）から提供されるのではなく、ユーザがオンデマンドでクラウドコンピューティングプロバイダのサーバからインターネット経由で利用可能になる任意のサービス又はアプリケーションを含んでよい。クラウドサービスの例として、一般に、オンラインデータストレージ及びバックアップソリューション、ウェブベースの電子メールサービス、ホストされたオフィススイート及びドキュメントコラボレーションサービス、データベース処理、管理された技術サポートサービス等があってよい。当然のことながら、いかなるクラウドベースサービスも本開示の範囲内で使用可能である。
【００２２】
幾つかの実施形態では、通信デバイスはコンピューティングデバイスと通信結合されてよい。上述のように、幾つかの実施形態では、コンピューティングデバイスはマイクロコントローラであってよい。幾つかの実施形態では、通信デバイスは、モジュール上データシステム（ＤＳｏＭ）又はパッケージ内データシステム（ＤＳｉｐ）であってよい。当該技術分野において知られているように、ＤＳｏＭは、一般に、システム機能を単一モジュールに統合したボードレベルの回路を含んでよく、ＤＳｉＰは、一般に、単一チップキャリアパッケージに封入された多数の集積回路を含んでよい。幾つかの実施形態では、通信デバイスは、カスタマのコンピューティングデバイスとクラウドベースサービスとの間のデータパケット（例えば、データオブジェクト）のセキュア通信を、セルラ経由で、電力効率よく、非同期で段階的に実施して管理するように構成されてよい。
【００２３】
幾つかの実施形態では、通信デバイスは、カスタマアプリケーションコードをホストしなくてよいので、アプリケーションプロセッサでなくてよい。幾つかの実施形態では、通信デバイスは、２つの中核的タスク、即ち、１）データオブジェクトの双方向非同期セキュアデータ通信、及び２）周辺装置の電源管理にフォーカスされたインテリジェント周辺装置であってよい。
【００２４】
一例では、通信デバイスは、広い範囲の様々な状況に組み込まれるように設計された小型の業界標準Ｍ．２  ３０３０  （ＮＧＦＦ）  Ｋｅｙ  Ｅフォームファクタ（３０ｍｍ平方）を使用してパッケージされてよい。幾つかの実施形態では、Ｍ．２フォームファクタは組み込みＳＩＭ（ｅＳＩＭ）を有してよく、組み込まれたＳＩＭスイッチにより、ハードウェア設計者は、必要に応じて、ソフトウェアで選択可能な外部ＳＩＭを利用することが可能である。幾つかの実施形態では、通信デバイスは１つ以上のプロセッサを含んでよい。例えば、通信デバイスのリクエストプロセッサ（例えば、ＳＴＭ３２Ｌ４Ｓ５）は、例えば、１．７〜３．６Ｖの範囲の回路とインタフェースすることが可能であり、ソケットは、様々な設計ニーズに適合するように、主電源電圧とは別個にそのプロセッサに給電することが可能である。上記では動作電圧が特定範囲のフォームファクタ及びプロセッサの例を示したが、当然のことながら、他のフォームファクタ、プロセッサ、及び電圧動作範囲も本開示の範囲内で使用されてよい。
【００２５】
幾つかの実施形態では、後で詳細に述べるように、通信デバイスの機能性は、通信デバイスの１つ以上のプロセッサを使用して実施されてよい。
【００２６】
幾つかの実施形態では、通信デバイスの主電源電圧は「Ｖ＋」と称されてよく、無線セルラ送受信器（例えば、Ｑｕｅｃｔｅｌ  ＢＧ９６モデム及び関連回路）に使用されてよい。無線セルラ送受信器の一例について論じたが、当然のことながら、他の無線セルラ送受信器及び／又はモデムの使用も本開示の範囲内で可能である。幾つかの実施形態では、通信デバイスのオンボードレギュレータが、例えば、ＬｉＰｏバッテリに直接接続されるように構成されてよく、例えば、２．５〜５．５Ｖの範囲の任意の電圧が供給されてよい。しかしながら、当然のこととして、電圧範囲が異なる他の電源（例えば、非バッテリ電源、他のタイプのバッテリ、ソーラー電源等）も本開示の範囲内で使用されてよい。
【００２７】
更に図２の例を参照すると、幾つかの実施形態では、通信デバイスは、シリアルリンク経由でコンピューティングデバイスと通信結合されるように構成されてよい。このように、通信デバイス１０２は、２本のワイヤでコンピューティングデバイス１０４と結合されてよい。例えば、コンピューティングデバイス（ＭＣＵ）は、シリアルリンク（例えば、シリアルリンク２０２）を使用して通信デバイスにリクエストを送信するオプションを有してよい。幾つかの実施形態では、シリアルリンク（例えば、シリアルリンク２０２）は、ユニバーサルアシンクロナスレシーバ／トランスミッタ（ＵＡＲＴ）、ユニバーサルシリアルバス（ＵＳＢ）、インターインテグレーテッドサーキット（Ｉ２Ｃ）、シリアルペリフェラルインタフェース（ＳＰＩ）、ＭＯＤＢＵＳ（登録商標）、コントローラエリアネットワーク（ＣＡＮ）バス、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、又は他の任意のシリアルリンク／プロトコルのうちの１つ以上であってよい。幾つかの実施形態では、通信デバイス（例えば、通信デバイス１０２）のシリアルポートは、コンピューティングデバイス（例えば、コンピューティングデバイス１０４）によって駆動されるリクエスト／レスポンスであってよい。幾つかの実施形態では、通信デバイス１０２は、通信デバイス１０２を、Ｉ２Ｃスレーブデバイスとして動作するように構成することによって、コンピューティングデバイス１０４と通信結合されてよい。当該技術分野において知られているように、Ｉ２Ｃは、スレーブデバイスと通信するように構成されたコントローラとの標準の双方向インタフェースである。幾つかの実施形態では、Ｉ２Ｃは、コンピューティングデバイス１０４と通信デバイス１０２との間の通信の為の極めて低電力のインタフェースを提供することが可能である。
【００２８】
一例では、ＵＡＲＴの代替としてＵＳＢコネクタが追加されてよく、ＵＳＢコネクタは、通信デバイスがＬｉｎｕｘ（登録商標）ホストとともに使用されることを可能にできる。幾つかの実施形態では、シリアルリンクのボーレートは固定でも可変でもよい。一例では、ボーレートは、固定ボーレート（例えば、９６００ｂｐｓ）で動作する内部低電力ＵＡＲＴを使用することにより極めて低い電力消費を達成するように固定されてよい。９６００ｂｐｓという例を示したが、当然のことながら、任意のボーレートが本開示の範囲内で使用されてよい。
【００２９】
幾つかの実施形態では、通信デバイス１０２は、固定ボーレートのプライマリシリアルリンクと、自動ボーレート検出を有するセカンダリシリアルリンク又は補助シリアルリンクとをサポートしてよい。幾つかの実施形態では、このインタフェース又はリンクは、通信デバイス１０２の「ＡＵＸ  ＷＡＫＥ」ピンをハイに設定することにより有効化されてよい。しかしながら、当然のこととして、セカンダリシリアルリンクの有効化は、様々な方法（例えば、ボタンを押す、１つ以上のピンをハイ又はローに設定する等）で達成されてよい。ＵＳＢインタフェースを有する通信デバイス１０２の幾つかの実施形態では、データは、通信デバイス１０２とコンピューティングデバイス１０４との間でＤ＋／Ｄ−ワイヤを使用して転送されてよい。
【００３０】
幾つかの実施形態では、通信デバイスは無線セルラ送受信器を含んでよい。幾つかの実施形態では、無線セルラ送受信器（例えば、無線セルラ送受信器２０４）は通信デバイス１０２のモジュールであってよい。無線セルラ送受信器は、一般に、無線広域遠隔通信用の任意の無線セルラ送受信器を含んでよい。例として、ＬＴＥ−Ｍ、ＬＴＥ  Ｃａｔ  Ｍ１、ナローバンドモノのインターネット（ＮＢ−ＩｏＴ）、ＬＴＥ  Ｃａｔ  ＮＢ１、３Ｇ、２Ｇ等があってよく、これらに限定されない。当該技術分野において知られているように、ＬＴＥ−Ｍ及びＮＢ−ＩｏＴは、（具体的には、マシンツーマシン及びモノのインターネットのアプリケーションの為の）広範囲のセルラデバイス及びサービスを有効化する為に３ＧＰＰによって開発された低電力ワイドエリアネットワーク（ＬＰＷＡＮ）無線技術規格のタイプである。セルラ及び無線技術規格の具体例を示したが、当然のことながら、任意のセルラ通信規格が本開示の範囲内で使用されてよい。
【００３１】
幾つかの実施形態では、無線セルラ送受信器２０４は、無線セルラ通信用として構成された無線セルラ送受信器アンテナ（例えば、アンテナ２０６）及び／又はアンテナアレイと通信結合されるように構成されてよい。幾つかの実施形態では、無線セルラ送受信器アンテナ２０６は、１つ以上の無指向性アンテナ及び／又は指向性アンテナを含んでよい。
【００３２】
幾つかの実施形態では、通信デバイス１０２はキャリアボード（例えば、キャリアボード２１０）と結合されてよい。キャリアボードは、一般に、通信デバイス（例えば、通信デバイス１０２）を他のコンピューティングデバイス（例えば、コンピューティングデバイス１０４）とインタフェースさせるように構成された回路を含んでよい。幾つかの実施形態では、キャリアボード２１０は、特定ユーザ用の通信デバイスを迅速に統合することを可能にできる。例えば、幾つかのキャリアボード（例えば、キャリアボード２１０）は、迅速なブレッドボードプロトタイピングの為に（例えば、３．３Ｖロジックの）機能をヘッダピン経由で露出させることにフォーカスされてよい。別の幾つかのキャリアボード（例えば、キャリアボード２１０）は、キャリアによって事前証明された一体型無指向性ＬＴＥアンテナ（例えば、アンテナ２０６）及び全球測位衛星システム（ＧＮＳＳ）アンテナ（例えば、アンテナ２０８）を有してよく、これらは、工業環境又は大量生産環境においてキャリアボードをマザーボードにはんだ付けできるようにフラットバックのキャステレイテッド接続部を有する。例えば、あるキャリアボード（例えば、キャリアボード２１０）は、ビルトイン無線セルラ送受信器アンテナ２０６及び／又はＧＮＳＳアンテナ２０８を含まなくてよい。又、例えば、あるキャリアボード（例えば、キャリアボード２１０）は、無線セルラ送受信器アンテナ及び／又はＧＮＳＳアンテナを含んでよい。当然のことながら、様々な構成に応じて様々なキャリアボードが本開示の範囲内で使用可能である。
【００３３】
幾つかの実施形態では、キャリアボード（例えば、キャリアボード２１０）は、通信デバイスに給電するように、且つ、データオブジェクトをクラウドベースサービスに中継するように構成されたｍｉｃｒｏＵＳＢコネクタを含んでよい。例えば、このＵＳＢコネクタを別のコンピューティングデバイス（例えば、Ｒａｓｐｂｅｒｒｙ  Ｐｉ（商標））に差し込むだけで、ユーザは任意のシリアル端末プログラムにコマンドを打ち込むことが可能である（Ｒａｓｐｂｅｒｒｙ  Ｐｉは、米国、他の国々、又はその両方におけるラズベリーパイ財団（Ｒａｓｐｂｅｒｒｙ  Ｐｉ  Ｆｏｕｎｄａｔｉｏｎ）の登録商標である）。
【００３４】
幾つかの実施形態では、キャリアボード（例えば、キャリアボード２１０）は、様々な電圧を供給するように構成されたマイクロスイッチを含んでよい。例えば、マイクロスイッチは、３．３Ｖと１．８Ｖの両方の動作を可能にできる。電圧の例を示したが、当然のことながら、任意の電圧が本開示の範囲内で使用されてよい。
【００３５】
図３の例を再度参照すると、幾つかの実施形態では、通信デバイス１０２は、無線セルラ送受信器及び／又は無線セルラモデム（例えば、無線セルラ送受信器２０４）と通信結合された１つ以上のプロセッサ（例えば、プロセッサ３０２）を含んでよい。プロセッサ３０２は、図３では無線セルラ送受信器２０４とは別個であるように示されているが、幾つかの実施形態では、プロセッサ３０２は、無線セルラ送受信器２０４と一体化されたプロセッサであってよい。或いは、プロセッサ３０２は、無線送受信器２０４とは物理的に別個であってよい。例えば、幾つかの実施形態では、プロセッサ３０２は、シリアルリンク３０４経由で無線セルラ送受信器２０４と通信結合されるように構成されてよい。幾つかの実施形態では、無線セルラ送受信器２０４は、通信デバイス１０２によって独占的に「所有」及び制御されてよい。例えば、上述のように、通信デバイス１０２の電力消費は、少なくともある程度は、無線セルラ送受信器２０４のデューティサイクル及び送信挙動に依存する可能性がある。例えば、無線セルラ送受信器がアクティブのときの電流引き込みは、典型的には、０〜２５０ｍＡの範囲にあると考えられるが、ＧＳＭの使用が必要とされる領域では、電流引き込みは数ミリ秒の間に例えば最大約２Ａまでのスパイクになる可能性がある。そこで、通信デバイス１０２の電圧入力（「ＶＩＮ」）は、そのような短時間のスパイクに対応できるバッテリ又は他の電源に直接接続されてよい。
【００３６】
幾つかの実施形態では、通信デバイスは、その無線セルラ送受信器の電源を有効化及び無効化するように構成されてよい。図３に示すように、通信デバイス１０２が無線通信デバイスとは別個のプロセッサを含む一例では、通信デバイス１０２は電源制御回路（例えば、電源制御回路３０６）を含んでよく、電源制御回路（例えば、電源制御回路３０６）は、１つ以上のピン（例えば「ＭＤＭ−ＥＮ」ピン）と結合されて、無線セルラ送受信器２０４の電源入力（例えば「ＶＩＮ」ピン）を選択的に有効化及び／又は無効化するように構成されてよい。このように、通信デバイス１０２は、無線セルラ送受信器／モデムの電源を制御してデューティサイクル管理を実施してよい。
【００３７】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスの電源を有効化及び／又は無効化するように構成されてよい。図４の例に示すように、幾つかの実施形態では、通信デバイス１０２は電源制御回路４０２を含んでよく、電源制御回路４０２は、１つ以上のピン（例えば「ＭＣＵ−ＥＮ」ピン）と結合されて、コンピューティングデバイス１０４の電源入力（例えば「ＶＩＮ」ピン）を選択的に有効化するように構成されてよい。例えば、通信デバイスのソフトウェアスケジューリング機能は、コンピューティングデバイスのデューティサイクルの制御を可能にできる。幾つかの実施形態では、コンピューティングデバイス及び通信デバイスは、コンピューティングデバイス１０４と通信デバイス１０２との間のリンク４０４を通して周期的ポーリングを行うことを必要とせずに「ディープスリープ」モードに入るように構成されてよい。例えば、コンピューティングデバイス１０４は、追跡用の特定データオブジェクトアレイを表すソフトウェアオプションを与えられてよく、着信する追跡されたデータがクラウドベースサービスから受信されて、コンピューティングデバイスによる処理に利用可能になったときに、通信デバイス１０２の１つ以上のピン（例えば「ＷＡＫＥ−ＯＵＴ」ピン）がアサートされてよい。このデータオブジェクトアレイは、ユーザ定義されてよく、且つ／又は（例えば、デフォルトの設定により）自動的に定義されてよい。この構成は、クラウドベースサービスからデータが受信されたときだけコンピューティングデバイス１０４を覚醒させることによって著しい省電力を可能にできる。
【００３８】
幾つかの実施形態では、通信デバイス１０２は、通常は、タイマに対して、且つ／又はシリアルリンク２０２経由でコンピューティングデバイス１０４から来るコマンドに対してスリープ状態で待機してよい。幾つかの実施形態では、コンピューティングデバイス１０４は、自身が通信デバイス１０２に対してコマンドを発行する予定が全くないことを認識した時点で１つ以上のピン（例えば「ＷＡＫＥ−ＩＮ」ピン）をアサートしてよい。この構成では、更なる電力を節約する為にシリアルリンク２０２が無効化されてよい。
【００３９】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスから少なくとも１つのデータオブジェクトを受信するように構成されてよい。データオブジェクトは、一般に、コンピューティングデバイスに情報を運んだり、コンピューティングデバイスから情報を運んだりするように構成されたデータパケットを含んでよい。幾つかの実施形態では、後で詳細に論じるように、コンピューティングデバイス１０４は通信セッションデータオブジェクトを提供してよく、通信セッションデータオブジェクトは、クラウドベースサービス用データを含まないが、通信デバイス１０２とクラウドベースサービス１０８との間の接続を構成することに使用されてよい。図１の例を再度参照すると、幾つかの実施形態では、コンピューティングデバイス１０４は、少なくとも１つのデータオブジェクトを（例えば、シリアルリンク２０２経由で）通信デバイス１０２に送信してよい。幾つかの実施形態では、コンピューティングデバイス１０４は、クラウドベースサービスに記憶されるデータを生成するように構成された１つ以上のセンサ及び／又は調節機構を含んでよい。
【００４０】
幾つかの実施形態では、少なくとも１つのデータオブジェクトは、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）（ＪＳＯＮ）オブジェクトであってよい。当該技術分野において知られているように、ＪＳＯＮは、属性値ペア及びアレイデータ型（又は他の任意のシリアル化可能値）からなるデータオブジェクトを送信する為の、人間可読テキストを使用するオープン標準のファイルフォーマットである。幾つかの実施形態では、ＪＳＯＮオブジェクトは、１つ以上のＪＳＯＮリクエスト及び／又は１つ以上のＪＳＯＮレスポンスを含んでよい。後で詳細に論じるように、コンピューティングデバイスで生成されるデータは、データオブジェクトを含むＪＳＯＮリクエストとして通信デバイスに送信されて、クラウドベースサービスに記憶されてよい。例えば、コンピューティングデバイス１０４は、データを、１つ以上の属性（例えば、データオブジェクトが作成された時刻、データオブジェクトが作成された場所、データオブジェクトを作成したコンピューティングデバイス等）を有するオプションペイロード及びオプションボディの組み合わせとしてカプセル化するように構成されてよい。ペイロードは、一般に、例えば、任意のアプリケーションデータを含む、Ｂａｓｅ６４エンコードされたＪＳＯＮ文字列（例えば、“payload”:”YWJHhLW0tLW0tLW0tLW0tLGt5eg==”）を含んでよい。ボディは一般に、任意のアプリケーション／クラウドベースサービスデータを含むＪＳＯＮオブジェクト（例えば、“body”:{“temp”:34.2,”alert”:true,”particle”:{“mass”:[5.1,12.32],”count”]}}）を含んでよい。上述の例はＪＳＯＮオブジェクトを含むが、当然のことながら、他のデータオブジェクトフォーマットも可能であり、本開示の範囲内である。
【００４１】
幾つかの実施形態では、通信デバイス１０２は、２つ以上のＪＳＯＮリクエストを有するデータオブジェクトをクラウドベースサービスに供給するように構成されてよい。一例では、ＪＳＯＮリクエストを２つだけ有するデータオブジェクトがクラウドベースサービスに供給されてよい。例えば、コンピューティングデバイス１０４は、起動すると、そのシリアルポート（例えば、シリアルリンク２０２）経由でＪＳＯＮリクエストを通信デバイス１０２に送信してよく、このＪＳＯＮリクエストは、１）このコンピューティングデバイスの識別子（どのコンピューティングデバイスがデータを供給しているかをクラウドベースサービスが知る為のもの）と、２）データが他のステージングされたデータとともにバッチとしてクラウドベースサービスに送信される前に、そのデータが通信デバイス上にとどまることを可能にされるべき最大時間と、を構成するものである。受信されることが可能な、このような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}}
【００４２】
上記に示すように、「ｌｏｏｐ（）」コマンドは、更なるセットアップなしで、コンピューティングデバイスがシンプルなＪＳＯＮコマンドを発行して、通信デバイスに記憶された同類データの集合体（例えば、データオブジェクトアレイ）にＪＳＯＮデータオブジェクトを追加することを可能にできる。この例では、「ａｉｒ．ｑｏ」の「．ｑｏ」は「アウトバウンドキュー」を意味してよく、「ａｉｒ」はユーザ定義名であってよい。上記の例に示すように、幾つかの実施形態では、データオブジェクトの「ボディ」は完全に自由形式のＪＳＯＮであってよく、スキーマ制約なしでクラウドベースサービスによって解釈されてよい。上記の例ではコンピューティングデバイスの起動時にコンピューティングデバイスからデータオブジェクトを受信することについて論じたが、当然のことながら、データオブジェクトは、コンピューティングデバイスの動作の任意の時点でコンピューティングデバイスから受信されてよい。
【００４３】
幾つかの実施形態では、データオブジェクトは、コンピューティングデバイス、通信デバイス、通信ハブ、及び／又はクラウドベースサービスに関する情報を提供するように構成されてよい。例えば、データオブジェクトは、サービス構成環境変数をリクエストして返すこと、現在のサービス構成パラメータを返すこと、通信デバイスが接続されているか、切断されているか、中間状態にあるかを表示すること、データオブジェクトの同期を手動で初期化すること、最後の同期についての情報を表示すること、サービス管理者との間で「ライブ」メッセージをやり取りすること等を行うように構成されてよい。
【００４４】
更に図５の例を参照すると、幾つかの実施形態では、通信デバイスは、通信デバイスのメモリに記憶された１つ以上のデータオブジェクトの少なくとも１つのデータオブジェクトアレイを、少なくともある程度は、受信された少なくとも１つのデータオブジェクトに基づいて修正するように構成されてよい。データオブジェクトアレイは、一般に、第１のデータオブジェクトが加えられたときに自動作成されたデータオブジェクトのアレイを収容する永続ファイルを含んでよい。従って、幾つかの実施形態では、データオブジェクトアレイは、データオブジェクトが通信デバイス１０２によって受信されたときに作成されてよい。幾つかの実施形態では、データオブジェクトアレイは名前を割り当てられてよい。これらの名前は任意であってよく、且つ／又は、データオブジェクトアレイのデータオブジェクト（例えば、特定のセンサ等に関連付けられたデータオブジェクト）の生成に関連付けられてよい。図５に示すように、データオブジェクトアレイの集合（例えば、データオブジェクトアレイの集合５０２）が、通信デバイス１０２のメモリに記憶されてよい。幾つかの実施形態では、データオブジェクトアレイの集合は、少なくとも１つのデータオブジェクトアレイ（例えば、データオブジェクトアレイ５０４、５０６、５０８）を含んでよい。幾つかの実施形態では、この少なくとも１つのデータオブジェクトアレイのそれぞれが、１つ以上のデータオブジェクト（例えば、データオブジェクト５１０、５１２、５１４、５１６、５１８、５２０、５２２、５２４、５２６）を含んでよい。後で詳細に論じるように、通信ハブ１０６は、同様に、少なくとも１つのデータオブジェクトアレイ（例えば、データオブジェクトアレイ５３０、５３２、５３４）を含む、データオブジェクトアレイの集合（例えば、データオブジェクトアレイ５２８）を含んでよい。この例では、データオブジェクトアレイ５３０がデータオブジェクト４３６、４３８、５４０を含んでよく、データオブジェクトアレイ５３２がデータオブジェクト５４２、５４４、５４６を含んでよく、データオブジェクトアレイ５３４がデータオブジェクト５４８、５５０、５５２を含んでよい。
【００４５】
幾つかの実施形態では、データオブジェクトアレイ（例えば、データオブジェクト１１０）が、データオブジェクトの特定の属性を明らかにするデータオブジェクト拡張子を含んでよい。例えば、あるデータオブジェクト拡張子（例えば「．ｄｂ」）は、そのデータオブジェクトが、クラウドベースサービスと通信デバイスとの間で完全に複製可能なデータベースオブジェクトであることを示すことが可能である。幾つかの実施形態では、データベース拡張子は、構成及びステータス情報を維持する為に共通で使用されてよい。別の例では、データオブジェクト拡張子（例えば「．ｑｏ」）は、そのデータオブジェクトがアウトバウンドのみのデータオブジェクトであって、通信デバイス１０２から通信ハブ１０６に送信されるだけであることを示すことが可能である。これらのデータオブジェクトは、通信ハブ１０６に転送された後に、通信デバイス１０２内のデータオブジェクトアレイから削除されてよい。別の例では、データオブジェクト拡張子（例えば「．ｑｉ」）は、そのデータオブジェクトがインバウンドのみのデータオブジェクトであって、通信ハブ１０６から通信デバイス１０２に送信されるだけであることを示すことが可能である。これらのデータオブジェクトは、通信デバイス１０２に転送された後に、通信ハブ１０６内のデータオブジェクトアレイから削除されてよい。上記ではデータオブジェクト拡張子の幾つかの例を示したが、当然のことながら、他のデータオブジェクト拡張子も本開示の範囲内で可能である。
【００４６】
幾つかの実施形態では、データオブジェクト拡張子のセキュアバリアント（例えば「．ｄｂｓ」、「．ｑｏｓ」、「．ｑｉｓ」）は、そのデータオブジェクトが暗号化されることを示すことが可能である。幾つかの実施形態では、データオブジェクトは、一般に、帯域幅を低減する為に暗号化せずに送信されてよい。しかしながら、機密性が高いデータオブジェクトの場合には、これらのセキュアデータオブジェクト拡張子によって、データオブジェクトがＴＬＳ暗号化通信セッションで転送されることを保証することが可能である。
【００４７】
図５の例を再度参照すると、幾つかの実施形態では、データオブジェクトアレイ５０４は、データオブジェクト（例えば、データオブジェクト５１０、５１２、５１４）を含んでよく、双方向の拡張子に関連付けられてよい。データオブジェクトアレイ５０６は、データオブジェクト（例えば、データオブジェクト５１６、５１８、５２０）を含んでよく、アウトバウンドのみの拡張子に関連付けられてよい。この例では、データオブジェクトアレイ５０６は、データオブジェクト５１６、５１８、５２０を通信ハブ５０６に送信し、それらのデータオブジェクトをデータオブジェクトアレイ５０６から削除するように構成されたアウトバウンドのみのキューであってよい。幾つかの実施形態では、データオブジェクトアレイ５０８は、インバウンドのみの拡張子を有するデータオブジェクト（例えば、データオブジェクト５２２、５２４、５２６）に関連付けられてよい。この例では、データオブジェクトアレイ５０８は、通信ハブ１０６から送信されて、通信ハブ１０６のデータオブジェクトアレイから削除されたデータオブジェクト５２２、５２４、５２６を受信するように構成されてよい。このように、通信デバイス１０２は、インターネットベースのセキュア通信ハブ１０６と一体化されてよい分散複製時空間データベースを有するパッケージ内データシステム（ＤＳｉＰ）であってよい。特定のデータオブジェクト拡張子に関連付けられた３つのデータオブジェクトアレイの例を示したが、当然のことながら、任意の数のデータオブジェクトアレイが本開示の範囲内で使用されてよく、且つ／又は、データオブジェクトアレイはデータオブジェクト拡張子に限定される必要はない。例えば、データオブジェクトアレイは、様々なコンピューティングデバイスセンサ、データオブジェクトのタイプ等に関して定義されてよい。
【００４８】
幾つかの実施形態では、その少なくとも１つのデータオブジェクトアレイを修正することは、データオブジェクトアレイのデータオブジェクトを追加すること、削除すること、及び変更することのうちの１つ以上を含んでよい。例えば、データオブジェクトが新しいデータオブジェクトである場合、その少なくとも１つのデータオブジェクトアレイを修正することは、その新しいデータオブジェクトをデータオブジェクトアレイに追加することを含んでよい。データオブジェクトが既存のデータオブジェクトを削除することを含む場合、その少なくとも１つのデータオブジェクトアレイを修正することは、そのデータオブジェクトをデータオブジェクトアレイから削除することを含んでよい。データオブジェクトアレイ内のデータオブジェクトが更新又は変更される場合、その少なくとも１つのデータオブジェクトアレイを修正することは、そのデータオブジェクトを更新又は変更することを含んでよい。
【００４９】
幾つかの実施形態では、データオブジェクトは、付加的メタデータとともに通信デバイスのメモリに記憶されている少なくとも１つのデータオブジェクトアレイに追加されてよく、又はそのデータオブジェクトアレイ内で更新されてよい。例えば、データオブジェクトがコンピューティングデバイス１０４から、例えば「ｎｏｔｅ．ａｄｄ」リクエストを使用して受信される場合、そのデータオブジェクトは、例えば、通信デバイスのハードウェアから時間及び場所の情報が利用可能であれば、それらの情報によって自動的に増強されてよい。同様に、既存のデータオブジェクトを更新又は変更するデータオブジェクトが受信される場合、そのデータオブジェクトは、例えば、通信デバイスのハードウェアから時間及び場所の情報が利用可能であれば、それらの情報によって自動的に増強されてよい。当然のことながら、本開示の範囲内で他のメタデータもデータオブジェクトに追加されてよい。
【００５０】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスに対して非同期で、無線セルラ送受信器経由で、修正された少なくとも１つのデータオブジェクトアレイの少なくとも一部分をクラウドベースサービスに送信するように構成されてよい。本明細書では、「コンピューティングデバイスに対して非同期で送信する」ことは、コンピューティングデバイスを関与させずに、コンピューティングデバイスから独立してデータを送信することを含んでよい。上述のように、通信デバイス１０２からその少なくとも１つのデータオブジェクトアレイのその少なくとも一部分を送信することは、コンピューティングデバイス１０４に対して非同期であってよい。幾つかの実施形態では、通信デバイス１０２からデータオブジェクトが非同期送信されることで、通信デバイスがデータオブジェクトを送信するときにコンピューティングデバイス１０４がオフライン又は「スリープ中」であることが可能になりうる。
【００５１】
例えば、コンピューティングデバイス１０４が、事前定義された頻度で（例えば、毎時に）データオブジェクト（例えば、空気の温度及び湿度の読み）をクラウドベースサービス１０８に供給するように構成されているとする。コンピューティングデバイス１０４は、その事前定義された頻度でデータオブジェクトを通信デバイス１０２に供給してよい。しかしながら、通信デバイス１０２は、コンピューティングデバイス１０４に対して非同期で、データオブジェクトを（例えば、データオブジェクトアレイに対する修正の形式で）通信ハブ１０６に送信するように構成されてよい。上述のように、通信デバイス１０２からの送信は、コンピューティングデバイス１０４から独立して、コンピューティングデバイス１０４の関与なしで行われてよい。この例では、通信デバイス１０２は、別の事前定義された頻度で（例えば、１日１回）データオブジェクトを送信してよい。このように、コンピューティングデバイス１０４は、通信デバイス１０２を管理又は制御することなく、コンピューティングデバイス１０４において事前定義された頻度でデータオブジェクト（例えば、データオブジェクトアレイのデータオブジェクトに対する修正）を供給してよい。このように、幾つかの実施形態では、コンピューティングデバイス１０４は、通信デバイス１０４にデータを容易に供給することが可能であってよく、通信デバイス１０２は、コンピューティングデバイス１０４から独立してクラウドベースサービス１０８にデータを送信することが可能である。後で詳細に論じるように、このように通信デバイス１０４がデータオブジェクトを非同期送信することで、通信デバイス１０２及び／又はコンピューティングデバイス１０４の電力を節約しながら、且つ／又はコンピューティングデバイス１０４の関与を必要とせずに、通信デバイス１０２がデータオブジェクトを供給することが可能になりうる。
【００５２】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスから通信ポリシーを受信するように構成されてよい。通信ポリシーは、一般に、通信デバイスの為の１つ以上の通信セッション基準であってよく、これには、電力を節約すること、ネットワーク帯域幅を節約すること、データオブジェクトをセキュリティ保護すること、並びに、幾つかのデータオブジェクトを他のデータオブジェクトより優先することのうちの１つ以上が含まれる。例えば、ユーザが動作寿命を延ばす為にコンピューティングデバイス及び／又は通信デバイスの電力を節約することを優先したいとする。この例の場合、通信ポリシーは、通信デバイス１０４がデータオブジェクトを送信又は受信する頻度を定義してよい。後で詳細に論じるように、これは、無線セルラ送受信器２０４が（例えば、通信デバイス１０２によって）給電される頻度、及び／又はＧＮＳＳアンテナ又はＧＰＳアンテナが（例えば、通信デバイス１０２によって）給電される頻度に影響しうる。別の例では、ユーザがデータオブジェクト通信のセキュリティを優先したいとする。この例の場合は、後で詳細に論じるように、通信ポリシーは、通信デバイス１０２のセキュリティ要素を使用してデータオブジェクトをいつ圧縮及び／又は暗号化するかを定義してよい。別の例では、ユーザが（例えば、通信デバイスの位置が変化する例において）通信デバイス１０２の位置を含むメタデータでデータオブジェクトをタグ付けしたいとする。この例の場合は、後で詳細に論じるように、通信ポリシーは、特定時刻における通信デバイス１０２の位置を含むメタデータでデータオブジェクトをいつタグ付けするかを定義してよい。通信における優先事項の３つの例について論じたが、当然のことながら、他の優先事項も可能であり、本開示の範囲内である（例えば、通信のデータ量、特定のセンサから特定のデータを供給すること等）。
【００５３】
幾つかの実施形態では、コンピューティングデバイス１０２から受信された少なくとも１つのデータオブジェクトが通信ポリシーを定義してよい。例えば、幾つかの実施形態では、データオブジェクトは、下記のリクエスト例に示すように通信デバイスのセルラ接続を設定するように構成されたリクエストを含んでよい。
{“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
}
【００５４】
幾つかの実施形態では、通信デバイスは、データオブジェクトアレイの少なくとも一部分を、無線セルラ送受信器経由でクラウドベースサービスに送信するスケジュール、及び／又は、データオブジェクトの少なくとも一部分を無線セルラ送受信器経由でクラウドベースサービスから受信するスケジュールを、少なくともある程度は、コンピューティングデバイスから受信された通信ポリシーに基づいて生成するように構成されてよい。例えば、通信デバイス１０２は、自前のヒューリスティックスを用いて、通信ハブ１０６との接続をスケジュールしてよく、その時点で必要に応じてデータオブジェクトを双方向に同期させる。後で詳細に論じるように、データオブジェクトは、通信デバイスのストレージと通信ハブのストレージとの間のデータオブジェクトアレイのステージングエリアから動かされるか且つ／又は複製されてよい。
【００５５】
一例では、通信デバイス１０２は、無線セルラ送受信器２０４経由のセルラ通信が比較的大量の電力を必要とする可能性があるときに、セルラネットワークとの通信をいつどれだけの頻度で確立するかを決定するスケジュールを管理してよい。この例の場合、通信ポリシーは、電力を節約することを優先してよく、通信デバイス１０２は、データオブジェクトアレイに対するデータオブジェクト／修正の送信及び／又は受信をいつどれだけの頻度で行うかを決定するスケジュールを管理してよい。
【００５６】
更に図６の例を参照すると、幾つかの実施形態では、通信デバイス１０２は、コンピューティングデバイス１０４に対して非同期で、１つ以上のデータオブジェクトを、無線セルラ送受信器２０４経由で通信ハブ１０６に送信するように構成されてよい。上述のように、通信ハブ１０６は、同様に、少なくとも１つのデータオブジェクトアレイ（例えば、データオブジェクトアレイ５３０、５３２、５３４）を含む、データオブジェクトアレイの集合（例えば、データオブジェクトアレイ５２８）を含んでよい。この例では、データオブジェクトアレイ５３０がデータオブジェクト５３６、５３８、５４０を含んでよく、データオブジェクトアレイ５３２がデータオブジェクト５４２、５４４、５４６を含んでよく、データオブジェクトアレイ５３４がデータオブジェクト５４８、５５０、５５２を含んでよい。３つのデータオブジェクトアレイについて論じたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクトアレイが通信ハブ１０６内に記憶されてよい。
【００５７】
幾つかの実施形態では、通信デバイス１０２は、データオブジェクト５１０を有するデータオブジェクトアレイ５０４と、データオブジェクト５１６を有するデータオブジェクトアレイ５０６と、を含んでよく、これらのデータオブジェクトは、コンピューティングデバイス１０４に対して非同期で、通信ハブ１０６に送信されてよい。この例では、データオブジェクト５１０は、データオブジェクト５３６としてデータオブジェクトアレイ５３０に複製されるように、双方向に複製されるデータオブジェクトであってよい。更に、データオブジェクト５１６はアウトバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト５１６は、通信ハブ１０６のデータオブジェクトアレイ５３２に送信されると、データオブジェクト５４２としてデータオブジェクトアレイ５３２に記憶されてよく、且つ、（例えば、データオブジェクト５１６の周囲の破線で示されるように）データオブジェクトアレイ５０６から削除されてよい。２つのデータオブジェクトが通信ハブ１０６に送信される例について述べたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクト及び／又はデータオブジェクトアレイ（例えば、データオブジェクトアレイの一部及び／又は全部）が通信ハブ１０６に送信されてよい。
【００５８】
幾つかの実施形態では、通信デバイスは、コンピューティングデバイスに対して非同期で、無線セルラ送受信器経由で、少なくとも１つのデータオブジェクトアレイの少なくとも一部分をクラウドベースサービスから受信するように構成されてよい。本明細書では、「コンピューティングデバイスに対して非同期で受信する」ことは、コンピューティングデバイスを関与させずに、コンピューティングデバイスから独立してデータを受信することを含んでよい。例えば、通信ハブ１０６が、事前定義された頻度で（例えば、毎時に）天気データを供給するように構成されているとする。後で詳細に論じるように、通信ハブ１０６は、事前定義された頻度でデータオブジェクトを通信デバイス１０２（例えば、無線セルラ送受信器２０４）に送信又は供給してよい。しかしながら、通信デバイス１０２は、コンピューティングデバイス１０４に対して非同期で、データオブジェクトを通信ハブ１０６から受信するように構成されてよい。上述のように、通信デバイス１０２によるデータオブジェクトの受信は、コンピューティングデバイス１０４から独立して、コンピューティングデバイス１０４の関与なしで行われてよい。この例では、コンピューティングデバイス１０４は、別の事前定義された頻度で（例えば、１日１回）データオブジェクトを通信デバイス１０２から受信してよい。このように、コンピューティングデバイス１０４は、通信デバイス１０２を管理又は制御することなく、コンピューティングデバイス１０４において事前定義された頻度でデータオブジェクトを受信してよい。
【００５９】
幾つかの実施形態では、コンピューティングデバイス１０４は、通信デバイス１０４からデータを受信することが可能であってよく、通信デバイス１０２は、コンピューティングデバイス１０４から独立してクラウドベースサービス１０８からデータを受信することが可能である。後で詳細に論じるように、このように通信デバイス１０４がデータオブジェクトアレイに対するデータオブジェクト／修正を非同期送信することで、通信デバイス１０２及び／又はコンピューティングデバイス１０４の電力を節約しながら、且つ／又はコンピューティングデバイス１０４の関与を必要とせずに、通信デバイス１０２がデータオブジェクトを受信することが可能になりうる。幾つかの実施形態では、通信デバイス１０２がデータオブジェクトを非同期受信することで、通信デバイスがデータオブジェクトを受信するときにコンピューティングデバイス１０４がオフライン又は「スリープ中」であることが可能になりうる。上述のように、データが受信されたときにコンピューティングデバイス１０４がそのデータを通信デバイス１０２にリクエストできるように、通信デバイス１０２は、コンピューティングデバイス１０４を「覚醒させる」信号をコンピューティングデバイス１０４に供給してよい。このように、コンピューティングデバイス１０４は、通信デバイス１０２がデータオブジェクトを受信することに関与しなくてよい。
【００６０】
幾つかの実施形態では、通信デバイス１０２は、コンピューティングデバイスのメモリに記憶された少なくとも１つのデータオブジェクトアレイの１つ以上のデータオブジェクトを、少なくともある程度は、その少なくとも１つのデータオブジェクトアレイの受信された少なくとも一部分に基づいて修正してよい。幾つかの実施形態では、その少なくとも１つのデータオブジェクトアレイを修正することは、データオブジェクトアレイのデータオブジェクトを追加すること、削除すること、及び変更することのうちの１つ以上を含んでよい。例えば、データオブジェクトが新しいデータオブジェクトである場合、その少なくとも１つのデータオブジェクトアレイを修正することは、その新しいデータオブジェクトをデータオブジェクトアレイに追加することを含んでよい。データオブジェクトが既存のデータオブジェクトを削除することを含む場合、その少なくとも１つのデータオブジェクトアレイを修正することは、そのデータオブジェクトをデータオブジェクトアレイから削除することを含んでよい。データオブジェクトアレイ内のデータオブジェクトが更新又は変更される場合、その少なくとも１つのデータオブジェクトアレイを修正することは、そのデータオブジェクトを更新又は変更することを含んでよい。
【００６１】
上述のように、幾つかの実施形態では、データオブジェクトは、クラウドベースサービスとコンピューティングデバイスとの間で双方向に伝達されてよい。幾つかの実施形態では、無線セルラ送受信器２０４は、通信ハブ１０６から１つ以上のデータオブジェクトを受信してよく、その１つ以上の受信されたデータオブジェクトをシリアルリンク３０４経由で通信デバイス１０２に伝達してよい。上述のように、幾つかの実施形態では、通信デバイスは、コンピューティングデバイスのメモリに記憶された少なくとも１つのデータオブジェクトアレイの１つ以上のデータオブジェクトを、少なくともある程度は、その少なくとも１つのデータオブジェクトアレイの受信された少なくとも一部分に基づいて修正するように構成されてよい。更に図６の例を参照すると、幾つかの実施形態では、通信ハブ１０６は、データオブジェクト５５２を有するデータオブジェクトアレイ５３４を含んでよく、データオブジェクト５５２は通信デバイス１０２に送信されてよい。上述のように、通信デバイス１０２は、インターネットベースのセキュア通信ハブ１０６と一体化されてよい分散複製時空間データベースを有するパッケージ内データシステム（ＤＳｉＰ）であってよい。この例では、データオブジェクト５５２はインバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト５５２は、通信デバイス１０２のデータオブジェクトアレイ５０８に送信されると、データオブジェクト５２６としてデータオブジェクトアレイ５０８に記憶されてよく、且つ、（例えば、データオブジェクト５５２の周囲の破線で示されるように）データオブジェクトアレイ５３４から削除されてよい。１つのデータオブジェクトが通信ハブ１０６に送信される例について述べたが、当然のことながら、本開示の範囲内で任意の数のデータオブジェクト及び／又はデータオブジェクトアレイ（例えば、データオブジェクトアレイの一部及び／又は全部）が通信デバイス１０２によって受信されてよい。
【００６２】
幾つかの実施形態では、通信デバイスは、通信デバイスとクラウドベースサービスとの通信に対して非同期で、少なくとも１つのデータオブジェクトアレイの１つ以上の修正されたデータオブジェクトを、コンピューティングデバイスが利用できるようにするように構成されてよい。本明細書では「通信デバイスとクラウドベースサービスとの通信に対して非同期で、少なくとも１つのデータオブジェクトアレイの１つ以上の修正されたデータオブジェクトを、コンピューティングデバイスが利用できるようにする」ことは、クラウドベースサービスから受信されたデータオブジェクト（例えば、少なくとも１つのデータオブジェクトアレイの受信された部分に基づいて修正されたデータオブジェクト）を、通信デバイスとクラウドベースサービスとの通信から独立して、コンピューティングデバイスが利用できるようにすることを含んでよい。図２の例を再度参照すると、幾つかの実施形態では、通信デバイス１０２は、少なくとも１つのデータオブジェクトアレイの少なくとも一部分をコンピューティングデバイス１０４が利用できるようにすることを、通信デバイス１０２上の（例えば、上述のように、通信デバイス１０２のメモリ内の）少なくとも１つのデータオブジェクトアレイの少なくとも一部分をステージングすることと、少なくとも１つのデータオブジェクトアレイのその少なくとも一部分に対するコンピューティングデバイス１０４からのリクエストを受信することと、によって行ってよい。このように、コンピューティングデバイス１０４は、少なくとも１つのデータオブジェクトアレイの少なくとも一部分を（シリアルリンク２０２経由で）リクエストしてよい。従って、通信デバイス１０４は、クラウドベースサービス１０８とのあらゆる通信から独立して、修正されたデータオブジェクトをコンピューティングデバイス１０４が利用できるようにしてよい。
【００６３】
図４の例を再度参照すると、幾つかの実施形態では、通信デバイスは、１つ以上のデータオブジェクトの形式のファームウェアデータを、通信デバイスのメモリに記憶させる為に、無線セルラ送受信器経由で受信するように構成されてよい。幾つかの実施形態では、コンピューティングデバイス１０４は、通信デバイス１０２経由でファームウェア更新を受信してよい。例えば、図４に示すように、あくまで例としてであるが、コンピューティングデバイス１０４が２線シリアルワイヤデバッグ（ＳＷＤ）インタフェース（例えば、ＳＷＤインタフェース３０６）を含むとする。幾つかの実施形態では、ＳＷＤインタフェース４０６は、特に、コンピューティングデバイス（例えば、マイクロコントローラ）のファームウェアの再フラッシュを可能にできる。この例では、開発者は、永続ファームウェアデータ（例えば、構成データ）を、コンピューティングデバイスのメモリではなく通信デバイスのメモリ（例えば、フラッシュメモリ）に記憶させることを選択できる。そうすることにより、認定された開発者が、新しいファームウェアを無線セルラ送受信器２０４経由で受信して通信デバイス１０２にダウンロードするようにできる。幾つかの実施形態では、他のファームウェアデータ又はファームウェアイメージ（例えば、最新の既知の良好なファームウェア）が通信デバイスにダウンロードされてよい。
【００６４】
この例について続けると、通信デバイス１０２は、コンピューティングデバイスから１つ以上のコマンドを受信して、受信されたファームウェアデータがコンピューティングデバイスにインストールされるように、受信されたファームウェアデータの少なくとも一部分を（例えば、ＳＷＤインタフェース４０６経由で）コンピューティングデバイスに送信してよい。幾つかの実施形態では、通信デバイス１０２は、コンピューティングデバイス１０４のファームウェアを完全に再フラッシュしてよい。図４は、コンピューティングデバイスにＳＷＤピンがある例を示しているが、当然のことながら、コンピューティングデバイス１０４のファームウェアの再フラッシュは他の構成を使用して行われてもよい。例えば、幾つかの実施形態では、ファームウェアの再フラッシュは、通信デバイス１０２の１つ以上のピン（例えば「ＲＥＳＥＴ」ピン）によるコンピューティングデバイス１０４のブート中に、コンピューティングデバイス１０４の１つ以上のピン（例えば、ＧＰＩＯ−００ピン（図示せず））をローに保持することによって実施されてよい。ファームウェアは、その後、シリアルリンク２０２でコンピューティングデバイス１０４に送信されてよい。
【００６５】
幾つかの実施形態では、通信デバイスは、全球測位衛星システム（ＧＮＳＳ）システムを含んでよく、ＧＮＳＳアンテナと通信結合されるように構成されてよい。当該技術分野において知られているように、ＧＮＳＳ受信器（ＧＮＳＳ受信器２１２）は、一般に、ＧＮＳＳ衛星コンステレーションからの信号を受信及びデジタル処理して（受信器の）位置、速度、及び時刻を提供する電子デバイス又はモジュールを含んでよい。幾つかの実施形態では、通信デバイス１０２から転送されるデータオブジェクトは、時刻及び位置のメタデータでタグ付けされてよい。幾つかの実施形態では、位置情報は、ＧＮＳＳ受信器を使用して取得されてよく、一方、時刻は、セルラネットワーク及びＧＮＳＳ受信器の両方から利用可能であってよい。幾つかの実施形態では、通信デバイス１０２は加速度計（例えば、加速度計２１４）を含んでよく、加速度計は、動きを検出したときにＧＮＳＳアンテナをサンプリングするように構成されている。幾つかの実施形態では、動いていない通信デバイスに関するエネルギ使用を最適化できるように、通信デバイス１０２は、ＧＮＳＳアンテナの使用が不要になる時を特定する為のＭＥＭＳベースの加速度計（例えば、加速度計２１４）を有してよい。このように、ＧＮＳＳアンテナ（例えば、ＧＮＳＳアンテナ２０８）は、加速度計（例えば、加速度計２１４）によって動きが検出されたときに有効化されてよく、それ以外のときは電力を節約する為に無効化されてよい。
【００６６】
幾つかの実施形態では、通信デバイスは、１つ以上のデータオブジェクトにメタデータを追加するように構成されてよく、メタデータは、通信デバイスの時刻及び位置の一方又は両方を含む。例えば、通信デバイス１０２は、データオブジェクトにメタデータをタグ付けするように構成されてよい。メタデータは、ＧＮＳＳアンテナ２０８を使用して特定された通信デバイスの時刻及び／又は位置を含んでよい。幾つかの実施形態では、コンピューティングデバイス１０２は、（例えば、コンピューティングデバイス１０４又は通信ハブ１０６から）データオブジェクトが受信されたときにデータオブジェクトに時刻情報メタデータをタグ付けしてよい。
【００６７】
幾つかの実施形態では、通信デバイスのエッジピンの１つにより、設計者は、どのアクティブなＧＮＳＳ／ＧＰＳアンテナで必要になっても、ＧＰＳ／ＧＮＳＳの受信器Ｕ．ＦＬコネクタにバイアス電圧を供給することを可能にできる。便宜上、その目的に使用できる３．８Ｖ電源が通信デバイス１０２から供給されてよい。幾つかの実施形態では、ＧＮＳＳアンテナ（例えば、ＧＮＳＳアンテナ２０８）が通信デバイス１０２に通信結合されている場合は、アクティブ／パッシブスイッチが、どのタイプのアンテナを通信デバイス１０２に通信結合するかをユーザが選択することを可能にできる。アクティブの場合は、アンテナの内蔵ＬＮＡに給電するバイアス電圧として３．８Ｖが供給されてよい。特定の電圧値について上述したが、当然のことながら、ＧＮＳＳで必要とされる任意の電圧が本開示の範囲内で供給されてよい。
【００６８】
幾つかの実施形態では、製造時に通信デバイスの不揮発性メモリが、通信デバイスのセキュア認証、及びクラウドベースサービスとの通信を可能にする１つ以上のセキュリティ鍵とデジタル署名済み証明書とを含むように構成される。例えば、上述のように、最新のクラウドベースサービスでは、クラウドと通信デバイス１０２とが、いずれもスプーフィングされることがないように双方向認証を実施することが必要な場合がある。更に、多くの用途で、無線経由及び有線経由のデータを暗号化することが重要な場合がある。その為、幾つかの実施形態では、通信デバイス１０２は、例えば、ＳＴＳＡＦＥ−Ａ１００セキュアエレメントを内蔵してよく、これは、チップの製造又は組立の時点でチップ内に生成された対称鍵を含んでよい。これにより、通信デバイス１０２の製造者もコンピューティングデバイス１０４の製造者も、セキュア鍵マテリアルの取り扱いや管理が全く不要である。一例では、通信デバイス１０２用に生成されるセキュリティ鍵は、ＮＩＳＴ  Ｐ−３８４曲線による楕円曲線暗号（ＥＣＣ）を使用してよく、署名アルゴリズムはＥＣＤＳＡ−ｗｉｔｈ−ＳＨＡ３８４であってよい。セキュアエレメントの具体例と特定の署名アルゴリズムについて示したが、当然のことながら、クラウドベースサービス１０８と通信デバイス１０２との間でデータをセキュリティ保護する為に、暗号鍵を生成するように構成された任意のセキュリティデバイス又はモジュール、及び／又は任意の署名アルゴリズムが本開示の範囲内で使用されてよい。
【００６９】
幾つかの実施形態では、通信デバイスは、データオブジェクトの圧縮及び暗号化の一方又は両方を、少なくともある程度は、コンピューティングデバイスから受信された通信ポリシーと、その１つ以上のデータオブジェクトに付加されたメタデータとに基づいて行うように構成されてよい。例えば、上述のように、データオブジェクトの暗号化には、通信デバイス１０２からのかなりの電力が必要になる場合がある。このように、通信デバイス１０２は、データオブジェクトのメタデータ及び／又は通信ポリシーを利用して、データオブジェクトを圧縮及び／又は暗号化するかどうかを決定してよい。データの圧縮及び／又は暗号化を電力の節約に基づいて行うことの例を論じたが、当然のことながら、メタデータ及び通信ポリシーは、他の状況でも（例えば、位置、時刻、セキュリティ優先順位付け等に基づいて）どのような場合にデータオブジェクトを圧縮及び／又は暗号化するかを決定してよい。
【００７０】
幾つかの実施形態では、通信デバイス１０２は電力調節機構を有してよく、可変クロック速度を大いに利用してよい。上述のように、無線セルラ送受信器（例えば、無線セルラ送受信器２０４）及び／又はモデムは送信時又は受信時に、ＧＮＳＳは受信時に、  ＣＰＵはセッション又はデータオブジェクトの暗号化の実施時に、それぞれかなりの電流を引き込む場合があり、更にセキュアエレメントは、特定のサイドチャネル攻撃を防ぐように有効化されたときに一定の電力を引き込む場合がある。しかしながら、幾つかの実施形態では、通信デバイス設計において、ゼロ入力電流が１マイクロアンペアより大きい（例えば、Ｉｑ＞１μＡの）シングルスイッチがないことが可能である。即ち、通信デバイス１０２の各スイッチのゼロ入力電流は１マイクロアンペア未満であってよい。しかしながら、当然のこととして、本開示の範囲内で任意のゼロ入力電流が可能である。プロセッサが例えば「ＳＴＯＰ」モードにあるときに１つ以上のシリアルリンク（例えば、Ｉ２Ｃ、ＵＡＲＴ、ＵＳＢ等）及びリアルタイムクロック（ＲＴＣ）を動作させる能力に関連して、通信デバイス１０２がアイドル時に引き込む電流は、例えば３．３Ｖで例えば８μＡ未満であってよい。従って、通信デバイス１０２は、マイクロコントローラ及び他のコンピューティングデバイスに対して低電力のセルラテザーソリューションを提供することが可能である。
【００７１】
図１の例を再度参照すると、幾つかの実施形態では、通信ハブは、１つ以上の通信デバイスとクラウドベースサービスとに通信結合されるように構成されてよい。後で詳細に論じるように、幾つかの実施形態では、通信ハブ１０６は、非常に薄い機能性の層を提供するように構成されてよく、これは、第１に、カスタマが同様の機能の通信デバイス（例えば、通信デバイス１０２）を、動作の監視が可能な通信デバイスグループ（例えば「フリート」）に集約することを自動プロビジョニングし可能にするものであり、第２に、そのようなフリートを、通信デバイス（例えば、通信デバイス１０２）から到着するデータオブジェクト（例えば、ＪＳＯＮフォーマットされたデータ）がクラウドベースサービス（例えば、クラウドベースサービス１０８）に転送されることを可能にする「ルート」とともに構成するものである。
【００７２】
後で論じるように、無線セルラ送受信器２０４は、セルラネットワークを介してデータを送信するように構成されてよい。例えば、上述のように、無線セルラ送受信器２０４は、様々な通信プロトコル（例えば、２Ｇ、ＬＴＥ、Ｃａｔ−Ｍ、ＬＴＥ  Ｃａｔ−ＮＢ１等）を使用してデータの送受信を行うように構成されてよく、データはセルラタワー及び／又はセルラノード（例えば、ｅＮｏｄｅＢ）に送信され、且つそれらから送信される。当該技術分野において知られているように、セルラノード又はセルラタワーは、データを特定の送信先に中継する為にバックホールネットワーク又は他のネットワークと通信結合されてよい。従って、無線セルラ送受信器２０４は、セルラネットワークを介して通信ハブ１０６までデータを送信するように構成されてよい。
【００７３】
幾つかの実施形態では、通信ハブ（例えば、通信ハブ１０６）は、一般に、１つ以上の通信デバイス（例えば、通信デバイス１０２）を１つ以上の通信デバイスグループに編成するように構成されたソフトウェアサービスを含んでよい。通信ハブは更に、その１つ以上の通信デバイスグループに１つ以上のルートを関連付けてよく、１つ以上のルートは、１つ以上のコンピューティングデバイスと通信結合された１つ以上の通信デバイスとクラウドベースサービスとの間で１つ以上のデータオブジェクトをルーティングするように構成されてよく、その１つ以上のコンピューティングデバイスに対して非同期で、１つ以上のデータオブジェクトを、１つ以上の通信デバイスとクラウドベースサービスとの間で、その１つ以上のルートを経由させてルーティングしてよい。幾つかの実施形態では、後で詳細に論じるように、通信ハブ１０６は、単一インスタンスのハイパースケールの「サービスとしてのソフトウェア」（ＳａａＳ）サービスとして、又はサーバにデプロイされたカスタマの自前のプライベート通信ハブサービスインスタンスとしてデプロイされてよい。
【００７４】
幾つかの実施形態では、通信ハブ（例えば、通信ハブ１０６）は、１つ以上の通信デバイスを管理するように構成されてよく、１つ以上の通信デバイスは、１つ以上のコンピューティングデバイスと通信結合されている。幾つかの実施形態では、１つ以上の通信デバイスの各通信デバイスは一意の識別子を有してよい。幾つかの実施形態では、一意識別子は、各通信デバイス（例えば、通信デバイス１０２）に自動で割り当てられてよく、或いは通信デバイスごとに手動で割り当てられるか構成されてよい。
【００７５】
幾つかの実施形態では、通信ハブ１０６は、１つ以上の通信デバイス製品識別子を１つ以上の通信ハブプロジェクトに関連付けてよい。通信ハブプロジェクトは、一般に、１つ以上の通信デバイスを含むカスタマ固有エンティティと、通信デバイスグループと、１つ以上の通信デバイスグループに関連付けられるか割り当てられて、データオブジェクトが通信デバイス（例えば、通信デバイス１０２）から通信ハブ１０６によってどのように転送されるかを定義するルートと、を含んでよい。更に、図７の管理ツール例（例えば、管理ツール７００）を参照すると、幾つかの実施形態では、ユーザはプロジェクトを作成してよい（例えば、プロジェクトに名前を割り当てること、１つ以上のアカウントを作成すること等によりプロジェクトを作成してよい）。そしてユーザは、通信ハブ１０６が通信ハブプロジェクトに関連付ける１つ以上の通信デバイス製品識別子を作成してよい。例えば、ユーザは１つ以上の通信デバイス製品識別子を与えてよい（例えば「ｐｒｏｄｕｃｔ．ｏｒｇ．ｓａｆｅｃａｓｔ．＊」、「ｐｒｏｄｕｃｔ．ｏｒｇ．ｓａｆｅｃａｓｔ．ｎｉｎｊａ」、「ｐｒｏｄｕｃｔ．ｏｒｇ．ｓａｆｅｃａｓｔ．ａｉｒ」等）。幾つかの実施形態では、アスタリスク記号「＊」の使用は、製品識別子のうちの「＊」記号の前の部分を含む全ての通信デバイス製品識別子を包含してよい。例えば、通信デバイス製品識別子「ｐｒｏｄｕｃｔ．ｏｒｇ．ｓａｆｅｃａｓｔ．＊」を作成することにより、「ｐｒｏｄｕｃｔ．ｏｒｇ．ｓａｆｅｃａｓｔ．」を含む全ての通信デバイス製品識別子がこのプロジェクトに関連付けられる。オープンエンデッド通信デバイス製品識別子を指定するシンボル例としてアスタリスク記号について述べたが、当然のことながら、他の記号も本開示の範囲内で使用されてよい。
【００７６】
幾つかの実施形態では、通信ハブ１０６は、１つ以上の通信デバイスから着信する１つ以上の通信セッションを受信してよく、着信する各通信セッションは、１つ以上の通信デバイスの製品識別子を含む。例えば、以下の例に示すように、通信デバイス１０２が、着信した通信セッションを（例えば、ＪＳＯＮオブジェクト経由で）クラウドベースストレージ１０８に送信するとする。
setup()
serial.println {“req”:”service.set”,”product”:” org.safecast.air”,”minutes”:60}
【００７７】
この例では、通信ハブ１０６は、着信した通信セッションから通信デバイス製品識別子（例えば「ｏｒｇ．ｓａｆｅｃａｓｔ．ａｉｒ」）を識別してよい。幾つかの実施形態では、通信ハブ１０６は、通信デバイス１０２を特定の通信ハブプロジェクトに関連付けてよく、これは、通信デバイス製品識別子がプロジェクトに関連付けられている為である。しかしながら、当然のこととして、本開示の範囲内で、他の通信デバイス製品識別子もデータオブジェクトから識別されてよい。
【００７８】
幾つかの実施形態では、通信ハブ１０６は、１つ以上の通信デバイスを、少なくともある程度は、１つ以上の通信デバイスによって確立された通信セッションの製品識別子に基づいて、１つ以上の通信デバイスグループとの通信、及びクラウドベースサービスへのルートに対してプロビジョニングしてよい。幾つかの実施形態では、１つ以上の通信デバイスを、通信ハブ自体、及び１つ以上のクラウドベースサービスとの通信に対してプロビジョニングすることは、１つ以上の通信デバイスを１つ以上の通信デバイスグループに関連付けることを含んでよい。例えば、通信ハブ１０６は、通信デバイス１０２を通信デバイスグループ（例えば、通信ハブプロジェクトの為のユーザ定義されたデフォルトの通信デバイスグループ）に編成するか割り当ててよい。後で詳細に論じるように、通信ハブ１０６は、１つ以上の通信デバイスを、１つ以上の通信デバイスと、通信ハブと、１つ以上のクラウドベースサービスとの間の１つ以上のルートに自動で関連付けてよい。
【００７９】
幾つかの実施形態では、通信ハブ１０６は、１つ以上の通信デバイスを１つ以上の通信デバイスグループに編成してよい。更に図８の例を参照すると、幾つかの実施形態では、１つ以上のコンピューティングデバイス（例えば、コンピューティングデバイス１０４、８０６、８０８）と通信結合されている１つ以上の通信デバイス（例えば、通信デバイス１０２、８０２、８０４）が、１つ以上の通信デバイスグループ（例えば、通信デバイスグループ８１０）に編成されてよい。幾つかの実施形態では、１つ以上の通信デバイスグループは、ユーザ定義されてよく、且つ／又は通信ハブ１０６によって自動的に編成されてよい。
【００８０】
更に図９〜１０の例を参照すると、幾つかの実施形態では、１つ以上の通信デバイスを管理することは、ユーザが１つ以上の通信デバイスグループ及び１つ以上のルートを管理することを可能にするように構成された管理ツール（例えば、グラフィカルユーザインタフェース）を提供することを含んでよい。例えば、管理ツール（例えば、管理ツール７００）は、ユーザが１つ以上の通信デバイスグループとその１つ以上の通信デバイスグループに関連付けられたルートとを管理する為に提供されてよい。
【００８１】
幾つかの実施形態では、通信ハブ（例えば、通信ハブ１０６）は、１つ以上のコンピューティングデバイスと通信結合されている１つ以上の通信デバイスとクラウドベースサービスとの間で１つ以上のデータオブジェクトをルーティングするように構成されてよい。図８の例を再度参照すると、幾つかの実施形態では、１つ以上のルート（例えば、１つ以上のルート８１４）は、通信デバイス１０２、８０２、８０４と通信ハブ１０６との間、並びに通信ハブ１０６とクラウドベースサービス１０８との間の通信チャネルを含んでよい。幾つかの実施形態では、１つ以上のルートは、通信ハブとクラウドベースサービスとの間の１つ以上のデータオブジェクトの転送を可能にできる。幾つかの実施形態では、ルートは、１つ以上のクラウドベースサービスアドレスと、クラウドベースサービスに関連付けられた認証情報と、ＪＳＯＮ変換情報（後述）と、クラウドベースサービスにアクセスする為のユーザ認証情報（例えば、ユーザ名及びパスワード）と、他の任意の、通信ハブが１つ以上のデータオブジェクト／データオブジェクトアレイの修正をクラウドベースサービスまでルーティングすることを可能にする為に使用される情報と、を含んでよい。
【００８２】
図１０を参照すると、幾つかの実施形態では、１つ以上のデータオブジェクトをルーティングすることは、１つ以上の通信デバイスグループを１つ以上のルートに関連付けることを含んでよい。図１０に示すように、管理ツール７００は、ユーザが１つ以上の通信デバイスグループ（「フリート」）を１つ以上のプロジェクトデータルート（例えば、ルート１０００）に関連付けることを可能にするように構成されてよい。幾つかの実施形態では、１つ以上のルート（例えば、１つ以上のルート８１４）は、通信ハブとクラウドベースサービスとの間で１つ以上のデータオブジェクトを転送するように構成された１つ以上のサーバを含んでよい。
【００８３】
上述のように、通信ハブ１０６は、一般に、「サービスとしてのソフトウェア」（ＳａａＳ）サービスとして、又はカスタマのサーバ上のサービスインスタンスとしてデプロイされてよい。通信ハブ１０６がカスタマのサーバ上のサービスインスタンスとしてデプロイされている幾つかの実施形態では、１つ以上のデータオブジェクトを１つ以上の通信デバイスと通信ハブとからルーティングすることは、少なくともある程度はインターネット接続経由で行われる。例えば、通信ハブがカスタマのサーバ上のサービスインスタンスとしてデプロイされている場合には、通信デバイス対通信ハブ通信は（例えば、ＨＴＴＰ  ＡＰＩによる）インターネット経由で行われてよい。通信ハブ１０６がＳａａＳサービスとしてデプロイされている別の例では、１つ以上のデータオブジェクトを１つ以上の通信デバイスと通信ハブとからルーティングすることは、少なくともある程度は、非インターネットのアクセス可能な接続を経由して行われる。言い換えると、通信デバイス対通信ハブ通信は、論理的に「インターネットを通して」行われてよい。例えば、データオブジェクトは、セルラキャリアから直接（例えば、非インターネット接続経由で）仮想プライベートクラウド（ＶＰＣ）までセキュアトンネル内を移動するように構成されてよい。このように、１つ以上のデータオブジェクトを１つ以上の通信デバイスと通信ハブとからルーティングすることは、インターネットベースの攻撃に対する脆弱性から保護されることが可能であり、これは、通信デバイスがＩＰアドレス可能でない為である。
【００８４】
幾つかの実施形態では、更に図１１の例を参照すると、１つ以上のデータオブジェクトをルーティングすることは、デバイス毎のイベントフロー（例えば、デバイス毎のイベントフロー１１０２）と、フィルタリング及びデータオブジェクト対データオブジェクト変換（フィルタリング及びＪＳＯＮ対ＪＳＯＮ変換１１０４）と、選択的ルーティング（例えば、ルーティング１１０６）と、を含んでよい。幾つかの実施形態では、更に図１２を参照すると、デバイス毎のイベントフロー１１０２は、（上述のように、例えば、ＨＴＴＰ  ＡＰＩ（例えば、インターネットベースの通信）又はデバイストンネル（例えば、非インターネットベースの通信）のいずれかを経由して）通信デバイスからデータオブジェクトを受信することを含んでよい。データオブジェクトがデバイストンネル経由で受信される例では、デバイス毎のイベントフロー１１０２は、データオブジェクトを一時セッションログ（例えば、一時セッションログ１２０２）にログ記録してよい。データオブジェクトがＨＴＴＰ  ＡＰＩ又はデバイストンネル経由で受信される場合には、デバイス毎のイベントフロー１１０２は、通信ハブ１０６（例えば、データオブジェクトアレイストレージ１２０４）に記憶されている少なくとも１つのデータオブジェクトアレイにデータオブジェクトを追加してよい。クラウドベースサービス１０８からデータオブジェクトを伝達する場合には、上述のプロセスが反転されてよい。例えば、データオブジェクトは、クラウドベースサービスから受信され、通信ハブ１０６に記憶されている少なくとも１つのデータオブジェクトアレイに追加され、ＨＴＴＰ  ＡＰＩ又はデバイストンネル経由でコンピューティングデバイスに送信されてよい。
【００８５】
幾つかの実施形態では、１つ以上のデータオブジェクトをルーティングすることは、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上のコンピューティングデバイスと通信結合されている１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることを含んでよい。幾つかの実施形態では、「同期させる」ことは、一般に、データオブジェクトアレイを作成、削除、及び更新することを含んでよい。幾つかの実施形態では、後で詳細に論じるように、同期させることは、データアレイのデータオブジェクト拡張子に基づいて、単方向アップ／アウトバウンド（例えば、クラウドベースサービスに向かうだけ／通信デバイス内で保持されず）、単方向ダウン／インバウンド（例えば、通信デバイスに向かうだけ／通信ハブ内で保持されず）、又は双方向（例えば、通信デバイス及び通信ハブの両方で保持される）であってよい。例えば、図１２に示すように、データオブジェクトが通信ハブ１０６によって受信される場合は、データオブジェクトアレイストレージ１２０４に記憶されている通信ハブ１０６の少なくとも１つのデータオブジェクトアレイの少なくとも一部分が、受信されたデータオブジェクトと同期されてよい。
【００８６】
幾つかの実施形態では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と双方向に同期させることを含んでよい。例えば、図６を再度参照すると、データオブジェクト５３６は、データオブジェクト５１０としてデータオブジェクトアレイ５０４に複製されるように、双方向に複製されるデータオブジェクトであってよい。
【００８７】
幾つかの実施形態では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分に同期させることを含んでよい。この例では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分に同期させることは、単方向であってよい。幾つかの実施形態では、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分を同期させること（例えば、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイを追加又は修正すること）に対する応答として、通信ハブは、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を削除するように構成されてよい。例えば、データオブジェクト５５２はインバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト５５２は、通信ハブ１０６のデータオブジェクトアレイ５０８に送信されると、データオブジェクト５２６としてデータオブジェクトアレイ５０８に記憶されてよく、且つ、（例えば、データオブジェクト５３４の周囲の破線で示されるように）データオブジェクトアレイ５３４から削除されてよい。
【００８８】
幾つかの実施形態では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分から同期させることを含んでよい。幾つかの実施形態では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分から同期させること（例えば、通信ハブの少なくとも１つのデータオブジェクトアレイを追加又は修正すること）に対する応答として、通信デバイスは、通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分を削除するように構成されてよい。例えば、通信デバイス１０２は、データオブジェクト５１６を有するデータオブジェクトアレイ５０６を含んでよく、データオブジェクト５１６は通信ハブ１０６に送信されてよい。この例では、データオブジェクト５１６はアウトバウンドのみのデータオブジェクトであってよく、従って、データオブジェクト５１６は、通信ハブ１０６のデータオブジェクトアレイ５３２に送信されると、データオブジェクト５４２としてデータオブジェクトアレイ５３２に記憶されてよく、且つ、（例えば、データオブジェクト５１６の周囲の破線で示されるように）データオブジェクトアレイ５０６から削除されてよい。
【００８９】
幾つかの実施形態では、通信ハブの少なくとも１つのデータオブジェクトアレイの少なくとも一部分を、１つ以上の通信デバイスの少なくとも１つの対応するデータオブジェクトアレイの少なくとも一部分と同期させることは、少なくともある程度は、１つ以上のデータオブジェクトアレイのそれぞれに関連付けられたデータオブジェクト拡張子に基づく。例えば、上述のように、データオブジェクトアレイは、少なくともある程度は、１つ以上のデータオブジェクトアレイのそれぞれに関連付けられたデータオブジェクト拡張子に基づいて定義されてよい。このように、データオブジェクト拡張子は、通信ハブ１０６と通信デバイス１０２との間でデータをどのように移動及び／又は複製するかを定義してよい。
【００９０】
幾つかの実施形態では、上述のように、１つ以上のデータオブジェクトをルーティングすることは、１つ以上のコンピューティングデバイスと通信結合された１つ以上の通信デバイスから１つ以上のデータオブジェクト（例えば、ＪＳＯＮオブジェクト）を受信することを含んでよい。幾つかの実施形態では、図１２の例を再度参照すると、通信ハブは、１つ以上のデータオブジェクト（例えば、ＪＳＯＮオブジェクト）をフィルタリング及び変換してよい。幾つかの実施形態では、通信デバイスから受信されたデータオブジェクト（例えば、ＪＳＯＮオブジェクト）を変換する為の変換ロジック、及び／又は通信デバイスに送信されるデータオブジェクト（例えば、ＪＳＯＮオブジェクト）を変換する為の変換ロジックをユーザが提供したい場合がある。図９の例を再度参照すると、幾つかの実施形態では、管理ツール７００は、ユーザが１つ以上のＪＳＯＮ対ＪＳＯＮ変換を定義することを可能にする、ユーザインタフェースの一部分（例えば、ウィンドウ１００２）を提供してよい。この例では、ユーザは、特定のデータオブジェクトの変換がユーザ定義変換に基づいて行われるように、ユーザインタフェースの別の部分（例えば、ウィンドウ１００４）で１つ以上のデータオブジェクトを選択してよい。幾つかの実施形態では、ユーザは、別のウィンドウ（例えば、ウィンドウ１００６）で１つ以上の通信デバイスグループ（「フリート」）を選択してよく、それによって、選択された通信デバイスグループの、ウィンドウ１００４から選択されたデータオブジェクトが、ウィンドウ１００２で与えられた変換に従って変換されることが可能になる。様々なウィンドウの例を示したが、当然のことながら、ユーザインタフェースは、本開示の範囲内で、ユーザが通信デバイスグループ、データオブジェクト、及びデータオブジェクト変換（例えば、ＪＳＯＮ変換）を選択することを容易にするように様々な様式で構成されてよい。
【００９１】
幾つかの実施形態では、図１１の例を再度参照すると、通信ハブは、１つ以上のデータオブジェクトの、クラウドベースサービスまでの、且つクラウドベースサービスからの選択的ルーティング（例えば、選択的ルーティング１１０６）を行ってよい。図１０の例を再度参照すると、幾つかの実施形態では、通信ハブ１０６とクラウドベースサービス１０８との間でデータオブジェクトをルーティングする為の１つ以上のルートが決定されてよい。データオブジェクト変換に関して上述したように、（例えば、ウィンドウ１００４の）特定のデータオブジェクト及び／又は（例えば、ウィンドウ１００６の）特定の通信デバイスグループに対して特定のルートが選択されてよく、或いは関連付けられてよい。
【００９２】
幾つかの実施形態では、１つ以上のＡＰＩを使用して、データオブジェクトがクラウドベースサービス１０８まで、又はクラウドベースサービス１０８から送信されてよい。図８の例を再度参照すると、幾つかの実施形態では、１つ以上のＡＰＩ（例えば、ＡＰＩ８１６）が、ダウンロード可能鍵とともにＨＴＴＰ又はＨＴＴＰｓで呼び出し可能であってよい。幾つかの実施形態では、ＡＰＩ８１６は、ポストされたもの、又は返されたもののボディに、データオブジェクトとともにＨＴＴＰ  ＧＥＴ又はＰＯＳＴを含んでよい。幾つかの実施形態では、データオブジェクトは、ＪＳＯＮオブジェクトとしてクラウドベースサービス１０８に送信されてよい。例えば、データオブジェクト又はＪＳＯＮオブジェクトが、以下の例に示すように、クラウドベースストレージ１０８に送信されてよい。
POST
{"req":"note.add","file":"air.qo","device":"imei:8664250","product":"com.acme.airmon","when":1544643332,”where”:”JMC3+56”,”body”:{temp”:72,”humid”61}}
【００９３】
このように、コンピューティングデバイス１０４で生成されたデータオブジェクトは、最小限のユーザ実装で、セルラネットワークを介して、コンピューティングデバイス１０２と通信ハブ１０６との組み合わせを経由してクラウドベースサービス１０８に伝達されてよい。上記の例ではＪＳＯＮオブジェクトについて論じたが、当然のことながら、他のデータオブジェクトも、本開示の範囲内で、API816により搬送されてよい。
【００９４】
図面におけるフローチャート及びブロック図は、本開示の様々な実施態様によるシステム、方法、及びコンピュータプログラム製品の可能な実施態様のアーキテクチャ、機能性、及び動作を示してよい。この点において、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施する為の１つ以上の実行可能命令を含むモジュール、セグメント、又はコード部分を表すものであってよい。なお、幾つかの代替実施態様では、ブロックに記載された機能は、図面に記載された順序から外れて実行されてもよい。例えば、連続するように示されている２つのブロックが、実際には、ほぼ同時に実行されてもよく、必要とされる機能性によっては、逆の順序で実行されることがあってもよい。又、ブロック図及び／又はフローチャート図の各ブロック、並びに、ブロック図及び／又はフローチャート図におけるブロック同士の組み合わせが、指定された機能又は動作を実行する専用ハードウェアベースシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施可能であることにも注意されたい。
【００９５】
本明細書において使用された術語は、特定の実施態様を記述することのみを目的としており、本開示の限定を意図したものではない。本明細書では、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈上明らかに矛盾する場合を除き、複数形も同様に包含するものとする。更に当然のことながら、「ｃｏｍｐｒｉｓｅｓ（含む）」及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む）」という語句は、本明細書で使用される場合には、述べられた特徴、整数、手順、操作、要素、及び／又は構成要素の存在を明記するものであり、１つ以上の他の特徴、整数、手順、操作、要素、構成要素、及び／又はこれらの集まりの存在又は追加を排除するものではない。
【００９６】
以下の特許請求項における全てのミーンズ・オア・ステップ・プラス・ファンクション（ｍｅａｎｓ  ｏｒ  ｓｔｅｐ  ｐｌｕｓ  ｆｕｎｃｔｉｏｎ）要素の対応する構造、材料、動作、及び均等物は、他の特許請求された要素との組み合わせで、具体的に特許請求されたとおりに機能を実施する全ての構造、材料、または動作を包含するものとする。本開示の記載は、例示及び説明を目的として提示しており、網羅的であることも、開示された形態での本開示に限定されることも意図していない。当業者であれば、本開示の範囲及び趣旨から逸脱しない、様々な修正や変形が明らかであろう。本実施形態は、本開示の原理及び実際の適用を最もよく説明する為に、且つ、他の当業者が、想定される特定の使用に適した様々な修正を有する様々な実施態様に関して本開示を理解することを可能にするように、選択して説明されたものである。
【００９７】
様々な実施態様を説明してきた。ここまで、本出願の開示を詳細に、且つ、本出願の実施態様を参照することにより、説明してきたが、添付の特許請求項で定義される本開示の範囲から逸脱することのない修正形態及び変形形態が可能であることは明らかであろう。
【図１】
2021531710.tif 000003
【図２】
2021531710.tif 000004
【図３】
2021531710.tif 000005
【図４】
2021531710.tif 000006
【図５】
2021531710.tif 000007
【図６】
2021531710.tif 000008
【図７】
2021531710.tif 000009
【図８】
2021531710.tif 000010
【図９】
2021531710.tif 000011
【図１０】
2021531710.tif 000012
【図１１】
2021531710.tif 000013
【図１２】
2021531710.tif 000014
【国際調査報告】
2021531710.tif 000015