(57)【特許請求の範囲】
【請求項１】
複数のユーザデバイス(810、820、830、840)の間のワイヤレス通信の方法であって、
前記複数のユーザデバイス(810、820、830、840)のうちの第1のユーザデバイスにより、前記複数のユーザデバイス(810、820、830、840)のうちの残りのユーザデバイスとワイヤレスピアツーピアネットワークを確立するステップ(1110)と、
前記第1のユーザデバイスにより、前記第1のユーザデバイスが前記複数のユーザデバイス(810、820、830、840)のうちのアクティブユーザデバイス(810)であるか否かを判定するステップ(1130)と、
前記第1のユーザデバイスがアクティブデバイス基準を満たして前記アクティブユーザデバイス(810)であるべきか否かを判定するステップと、
前記第1のユーザデバイスが前記アクティブユーザデバイスであり、前記アクティブデバイス基準を満たして前記アクティブユーザデバイス(810)であるべきであると判定することに応答して、前記第1のユーザデバイスにより、前記残りのユーザデバイスに通知を送信するステップ(1140)であって、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であることを前記通知が示す、ステップ(1140)と、
前記第1のユーザデバイスと前記複数のユーザデバイス(810、820、830、840)のうちの前記残りのユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバ(170)から前記第1のユーザデバイスにおいて受信するステップ(1150)であって、同じユーザが前記第1のユーザデバイスおよび前記残りのユーザデバイスの前記1つまたは複数のアプリケーションにログインしている、ステップ(1150)と、
前記アクティブユーザデバイスとして判定された前記第1のユーザデバイスによって、前記残りのユーザデバイスに前記更新されたアプリケーションデータを送信するステップ(1160)と
を含む、方法。
【請求項２】
前記第1のユーザデバイスが前記アクティブデバイス基準を満たさないと判定すると、前記第1のユーザデバイスによって、前記残りのユーザデバイスに通知を送信するステップであって、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)ではないことを前記通知が示す、ステップと、
前記アクティブユーザデバイス(810)である、前記残りのユーザデバイスのうちの別のユーザデバイスから、前記第1のユーザデバイスと前記アクティブユーザデバイス(810)の両方にインストールされた1または複数のアプリケーション用の更新されたアプリケーションデータを前記第1のユーザデバイスにおいて受信するステップであって、同じユーザが前記ユーザデバイスと前記アクティブユーザデバイス(810)の両方の前記1または複数のアプリケーションにログインしている、ステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)でないと判定することに応答して、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)ではないことを示す通知を前記残りのユーザデバイスに送信するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)でないと判定することが、他のユーザデバイスが前記アクティブユーザデバイス(810)であるという前記通知を受信することを含む、請求項3に記載の方法。
【請求項５】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であると判定することに応答して、前記通知を送信する前記ステップおよび前記更新されたアプリケーションデータを送信する前記ステップが、前記ワイヤレスピアツーピアネットワークを介して実施される、請求項1に記載の方法。
【請求項６】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であると判定することに応答して、前記更新されたアプリケーションデータを送信する前記ステップが、マルチキャストインターフェースを介して前記残りのユーザデバイスに前記更新されたアプリケーションデータを送信するステップを含む、請求項1に記載の方法。
【請求項７】
前記第1のユーザデバイスにより、前記残りのユーザデバイスに通知を送信するステップであって、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であることを前記通知が示す、ステップと、
前記第1のユーザデバイスと前記複数のユーザデバイス(810、820、830、840)のうちの前記残りのユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから前記第1のユーザデバイスにおいて受信するステップであって、同じユーザが前記第1のユーザデバイスと前記残りのユーザデバイスの前記1または複数のアプリケーションにログインしている、ステップと、
前記アクティブユーザデバイス(810)として判定された前記第1のユーザデバイスにより、前記残りのユーザデバイスに前記更新されたアプリケーションデータを送信するステップとをさらに含む、請求項1に記載の方法。
【請求項８】
前記ユーザデバイス上に現在のユーザアクティビティが存在すること、前記ユーザデバイス上に少なくとも1つの実行中のアプリケーションが存在すること、前記ユーザデバイスがスリープモードではないこと、または前記ユーザデバイスのディスプレイが電源オンであることを判断することと、
現在のユーザアクティビティを検出するか、少なくとも1つの実行中のアプリケーションを有するか、スリープモードではないか、または電源オンのディスプレイを有する別のユーザデバイスよりも高いバッテリレベルを前記ユーザデバイスが有すると判断することと、
前記ユーザデバイスが電源に接続されていると判断することと、
前記ユーザデバイス上に現在のユーザアクティビティが存在すること、前記ユーザデバイスがスリープモードではないこと、または前記ユーザデバイスが現在充電中であることを判断すること
のうちの１つまたは複数に応答して、前記第1のユーザデバイスがアクティブデバイス基準を満たして、前記アクティブユーザデバイス(810)であるべきであると判定されることを決定するステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記ユーザデバイスの前記バッテリレベルがしきい値よりも大きいことを判断することにさらに応答して、前記第1のユーザデバイスがアクティブデバイス基準を満たして、前記アクティブユーザデバイス(810)であるべきと判定される、請求項8に記載の方法。
【請求項１０】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であると判定することに応答して、前記残りのユーザデバイスが、前記1つまたは複数のアプリケーション用の更新されたアプリケーションデータについてリモートサーバまたは前記アクティブユーザデバイス(810)にポーリングすることを禁止される、請求項1に記載の方法。
【請求項１１】
前記アクティブユーザデバイス(810)がリモートサーバと同期することによって前記更新されたアプリケーションデータを受信する、請求項1に記載の方法。
【請求項１２】
前記第1のユーザデバイス上に現在のユーザアクティビティが存在しないこと、前記第1のユーザデバイス上で少なくとも1つの実行中のアプリケーションがないこと、前記第1のユーザデバイスがスリープモードであること、および前記第1のユーザデバイスのディスプレイが電源オフであることを判断することと、
前記第1のユーザデバイス上に現在のユーザアクティビティが存在しないこと、前記第1のユーザデバイスがスリープモードであること、および前記第1のユーザデバイスが現在充電中ではないことを判断すること、
の1つまたは複数に応答して、前記第1のユーザデバイスが、前記アクティブユーザデバイス(810)であるべきためのアクティブデバイス基準を満たさないと判定される、請求項1に記載の方法。
【請求項１３】
前記第1のユーザデバイスが前記アクティブユーザデバイス(810)でないと判断することに応答して、前記1つまたは複数のアプリケーション用の更新されたアプリケーションデータについてリモートサーバまたは前記アクティブユーザデバイス(810)に前記第1のユーザデバイスがポーリングすることを禁止するステップをさらに含む、請求項1に記載の方法。
【請求項１４】
複数のユーザデバイス(810、820、830、840)の間のワイヤレス通信用の装置であって、
第1のユーザデバイスが前記複数のユーザデバイスのうちのアクティブユーザデバイス(810)であるか否かを判定する(1130)ように構成された前記第1のユーザデバイスのプロセッサ(208)と、
前記第1のユーザデバイスがアクティブデバイス基準を満たして前記アクティブユーザデバイス(810)であるべきか否かを判定するための手段と、
前記複数のユーザデバイス(810、820、830、840)のうちの残りのユーザデバイスとワイヤレスピアツーピアネットワークを確立すること(1110)と、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であるとの判定に応答して、前記残りのユーザデバイスに通知を送信すること(1140)であって、前記第1のユーザデバイスが前記アクティブユーザデバイス(810)であることを前記通知が示す、送信すること(1140)と、前記第1のユーザデバイスと前記残りのユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバ(170)から受信すること(1150)であって、同じユーザが前記第1のユーザデバイスおよび前記残りのユーザデバイスの前記1つまたは複数のアプリケーションにログインしており、前記アクティブユーザデバイス(810)として判定された前記第1のユーザデバイスが動作可能である、受信すること(1150)と、前記残りのユーザデバイスに前記更新されたアプリケーションデータを送信すること(1160)とを行うように構成された前記ユーザデバイスのトランシーバ(206)と
を備える、装置。
【請求項１５】
プロセッサによる実行時に、請求項１から１３のいずれか一項に記載の方法を前記プロセッサに実行させる命令を有する、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本特許出願は、本出願の譲受人に譲渡され、参照によりその全体が本明細書に明確に組み込まれる、2013年9月9日に出願された「INCREASING POWER SAVINGS THOUGH INTELLIGENT SYNCING OF DATA」と題する米国仮出願第61/875,497号の利益を主張する。
【０００２】
本開示は、データのインテリジェント同期による省電力化の向上に関する。
【背景技術】
【０００３】
インターネットは、標準インターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびインターネットプロトコル(IP))を使用して互いに通信する、相互接続されたコンピュータおよびコンピュータネットワークのグローバルシステムである。モノのインターネット(IoT)は、コンピュータおよびコンピュータネットワークだけでなく、日常の物が、IoT通信ネットワーク(たとえば、アドホックシステムまたはインターネット)を介して読取り可能、認識可能、位置特定可能、アドレス指定可能、および制御可能であり得るという発想に基づく。
【０００４】
いくつかの市場動向がIoTデバイスの開発を推進している。たとえば、増大するエネルギーコストは、政府によるスマートグリッドに対する戦略投資、ならびに電気自動車および公共充電ステーションなどの将来の消費に対するサポートを推進している。増大する医療費および老齢人口は、遠隔/接続ヘルスケアおよびフィットネスサービスの開発を推進している。住居内の技術革命は、「N」プレイ(たとえば、データ、音声、ビデオ、セキュリティ、エネルギー管理など)をマーケティングし、ホームネットワークを拡張するサービスプロバイダによる統合を含む、新しい「スマート」サービスのための開発を推進している。企業設備の運転費を削減するための手段として、建造物はよりスマートかつより便利になっている。
【０００５】
IoT用のいくつかの重要なアプリケーションが存在する。たとえば、スマートグリッドおよびエネルギー管理の領域では、公益事業会社は住居および事業に対するエネルギーの配給を最適化することができ、カスタマはエネルギー使用をより良好に管理することができる。住居およびビルディングオートメーションの領域では、スマートホームおよびスマートビルディングは、住居または事務所内の、電化製品からプラグイン電気自動車(PEV)セキュリティシステムまで、事実上、どのようなデバイスまたはシステムに対しても集中制御することができる。資産管理の分野では、企業、病院、工場、および他の大型組織は、高価値の機器、患者、車両などの位置を正確に追跡することができる。ヘルスおよびウェルネスの領域では、医師は患者の健康を遠隔監視することができ、人々はフィットネスルーチンの進捗を追跡することができる。
【発明の概要】
【課題を解決するための手段】
【０００６】
以下に、本明細書で開示する1つまたは複数の態様および/または実施形態に関する簡略化された概要を示す。したがって、以下の概要は、すべての考えられる態様および/または実施形態に関連する包括的な概説と見なされるべきではなく、また、以下の概要は、すべての考えられる態様および/または実施形態に関連する重要な、または決定的な要素を特定するか、任意の特定の態様および/または実施形態に関連付けられる範囲を定めると見なされるべきでもない。したがって、以下の概要の唯一の目的は、以下に提示される詳細な説明に先立って、本明細書で開示する機構に関連する1つまたは複数の態様および/または実施形態に関するいくつかの概念を簡略化された形で提示することである。
【０００７】
本開示は、様々なユーザデバイスによって実行されるワイヤレス通信に関する。ユーザデバイスによって実施されるワイヤレス通信の方法は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、ユーザデバイスがアクティブユーザデバイスであるか否かを判定することと、ユーザデバイスがアクティブユーザデバイスではないと判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、ユーザデバイスがアクティブユーザデバイスではないことを通知が示す、送信することと、ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信することであって、同じユーザがユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、受信することとを含む。
【０００８】
ユーザデバイスによって実施されるワイヤレス通信の方法は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、ユーザデバイスがアクティブユーザデバイスであるか否かを判定することと、ユーザデバイスがアクティブユーザデバイスであると判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、ユーザデバイスがアクティブユーザデバイスであることを通知が示す、送信することと、ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信することであって、同じユーザがユーザデバイスおよび1つまたは複数のユーザデバイスの1つまたは複数のアプリケーションにログインしている、受信することと、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信することとを含む。
【０００９】
ユーザデバイスにおけるワイヤレス通信用の装置は、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するように構成されたプロセッサと、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、ユーザデバイスがアクティブユーザデバイスではないとプロセッサが判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、ユーザデバイスがアクティブユーザデバイスではないことを通知が示す、送信することと、ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信することであって、同じユーザがユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、受信することとを行うように構成されたトランシーバとを含む。
【００１０】
ユーザデバイスにおけるワイヤレス通信用の装置は、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するように構成されたプロセッサと、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、ユーザデバイスがアクティブユーザデバイスであるとプロセッサが判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、ユーザデバイスがアクティブユーザデバイスであることを通知が示す、送信することと、ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信することであって、同じユーザがユーザデバイスおよび1つまたは複数のユーザデバイスの1つまたは複数のアプリケーションにログインしている、受信することと、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信することとを行うように構成されたトランシーバとを含む。
【００１１】
ユーザデバイスにおけるワイヤレス通信用の装置は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するように構成されたロジックと、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するように構成されたロジックと、ユーザデバイスがアクティブユーザデバイスではないと判定することに応答して、1つまたは複数のユーザデバイスに通知を送信するように構成されたロジックであって、ユーザデバイスがアクティブユーザデバイスではないことを通知が示す、ロジックと、ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信するように構成されたロジックであって、同じユーザがユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、ロジックとを含む。
【００１２】
ユーザデバイスにおけるワイヤレス通信用の装置は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するように構成されたロジックと、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するように構成されたロジックと、ユーザデバイスがアクティブユーザデバイスであると判定することに応答して、1つまたは複数のユーザデバイスに通知を送信するように構成されたロジックであって、ユーザデバイスがアクティブユーザデバイスであることを通知が示す、ロジックと、ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信するように構成されたロジックであって、同じユーザがユーザデバイスおよび1つまたは複数のユーザデバイスの1つまたは複数のアプリケーションにログインしている、ロジックと、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信するように構成されたロジックとを含む。
【００１３】
ユーザデバイスにおけるワイヤレス通信用の装置は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するための手段と、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するための手段と、ユーザデバイスがアクティブユーザデバイスではないと判定することに応答して、1つまたは複数のユーザデバイスに通知を送信するための手段であって、ユーザデバイスがアクティブユーザデバイスではないことを通知が示す、手段と、ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信するための手段であって、同じユーザがユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、手段とを含む。
【００１４】
ユーザデバイスにおけるワイヤレス通信用の装置は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するための手段と、ユーザデバイスがアクティブユーザデバイスであるか否かを判定するための手段と、ユーザデバイスがアクティブユーザデバイスであると判定することに応答して、1つまたは複数のユーザデバイスに通知を送信するための手段であって、ユーザデバイスがアクティブユーザデバイスであることを通知が示す、手段と、ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信するための手段であって、同じユーザがユーザデバイスおよび1つまたは複数のユーザデバイスの1つまたは複数のアプリケーションにログインしている、手段と、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信するための手段とを含む。
【００１５】
ユーザデバイスによって実行されるワイヤレス通信のための非一時的コンピュータ可読媒体は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立する少なくとも1つの命令と、ユーザデバイスがアクティブユーザデバイスであるか否かを判定する少なくとも1つの命令と、ユーザデバイスがアクティブユーザデバイスではないと判定することに応答して、1つまたは複数のユーザデバイスに通知を送信する少なくとも1つの命令であって、ユーザデバイスがアクティブユーザデバイスではないことを通知が示す、命令と、ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信する少なくとも1つの命令であって、同じユーザがユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、命令とを含む。
【００１６】
ユーザデバイスによって実行されるワイヤレス通信のための非一時的コンピュータ可読媒体は、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立する少なくとも1つの命令と、ユーザデバイスがアクティブユーザデバイスであるか否かを判定する少なくとも1つの命令と、ユーザデバイスがアクティブユーザデバイスであると判定することに応答して、1つまたは複数のユーザデバイスに通知を送信する少なくとも1つの命令であって、ユーザデバイスがアクティブユーザデバイスであることを通知が示す、命令と、ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信する少なくとも1つの命令であって、同じユーザがユーザデバイスおよび1つまたは複数のユーザデバイスの1つまたは複数のアプリケーションにログインしている、命令と、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信する少なくとも1つの命令とを含む。
【００１７】
本明細書において開示される態様および実施形態に関連付けられる他の目的および利点は、添付の図面および発明を実施するための形態に基づいて、当業者には明らかになるであろう。
【００１８】
本開示の態様およびその付随する利点の多くに関するより完全な理解は、以下の詳細な説明を参照しながら、本発明を限定するためではなく単に例示するために提示される添付の図面とともに考察することによって、本開示の態様およびその付随する利点の多くがより深く理解されるようになるときに容易に得られるであろう。
【図面の簡単な説明】
【００１９】
【図１Ａ】本開示の一態様によるワイヤレス通信システムのハイレベルシステムアーキテクチャを示す図である。
【図１Ｂ】本開示の別の態様によるワイヤレス通信システムのハイレベルシステムアーキテクチャを示す図である。
【図１Ｃ】本開示の一態様によるワイヤレス通信システムのハイレベルシステムアーキテクチャを示す図である。
【図１Ｄ】本開示の一態様によるワイヤレス通信システムのハイレベルシステムアーキテクチャを示す図である。
【図１Ｅ】本開示の一態様によるワイヤレス通信システムのハイレベルシステムアーキテクチャを示す図である。
【図２Ａ】本開示の態様による例示的なモノのインターネット(IoT)デバイスを示す図である。
【図２Ｂ】本開示の態様による例示的なパッシブIoTデバイスを示す図である。
【図３】本開示の態様による機能を実行するように構成されたロジックを含む通信デバイスを示す図である。
【図４】本開示の様々な態様による例示的なサーバを示す図である。
【図５】本開示の一態様による、発見可能なピアツーピア(P2P)サービスをサポートすることのできるワイヤレス通信ネットワークを示す図である。
【図６】本開示の一態様による、様々なデバイスが通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的な環境を示す図である。
【図７】本開示の一態様による、様々なデバイスが通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的なメッセージシーケンスを示す図である。
【図８】ユーザデバイスの例示的なP2Pネットワークを示す図である。
【図９】代替基準に基づいてアクティブデバイスを選ぶための例示的なフローを示す図である。
【図１０】本開示の少なくとも1つの態様による例示的なフローを示す図である。
【図１１】本開示の少なくとも1つの態様による例示的なフローを示す図である。
【図１２】本明細書において教示される通信をサポートするように構成された装置のいくつかの例示的な態様の簡略ブロック図である。
【図１３】本明細書において教示される通信をサポートするように構成された装置のいくつかの例示的な態様の簡略ブロック図である。
【発明を実施するための形態】
【００２０】
本開示は、様々なユーザデバイスによって実行されるワイヤレス通信に関する。第1のユーザデバイスは、1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、第1のユーザデバイスがアクティブユーザデバイスであるか否かを判定することと、第1のユーザデバイスがアクティブユーザデバイスではないと判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、第1のユーザデバイスがアクティブユーザデバイスではないことを通知が示す、送信することと、第1のユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信することであって、同じユーザが第1のユーザデバイスとアクティブユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている、受信することとを行う。
【００２１】
1つまたは複数のユーザデバイスのうちの第2のユーザデバイスは、第1のユーザデバイスを含む1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立することと、第2のユーザデバイスがアクティブユーザデバイスであるか否かを判定することと、第2のユーザデバイスがアクティブユーザデバイスであると判定することに応答して、1つまたは複数のユーザデバイスに通知を送信することであって、第2のユーザデバイスがアクティブユーザデバイスであることを通知が示す、送信することと、第2のユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信することと、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信することとを行う。
【００２２】
例示的な実施形態に関する具体例を示すために、次の説明および関連する図面において様々な態様が開示される。代替的な実施形態は、本開示を読むと当業者には明らかであり、本開示の範囲または趣旨から逸脱することなく、構築および実践することができる。加えて、本明細書において開示される態様および実施形態の関連する詳細を不明瞭にしないように、よく知られている要素は詳細には記載されないか、または省略される場合がある。
【００２３】
「例示的」という言葉は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、論じられた特徴、利点または動作モードを含むことを要求しない。
【００２４】
本明細書で使用される用語は、特定の実施形態のみを説明するものであり、本明細書で開示される実施形態を限定するものと解釈すべきではない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用すると、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
【００２５】
さらに、多くの態様について、たとえばコンピューティングデバイスの要素によって実施されるべき、動作のシーケンスに関して説明する。本明細書で説明する様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実施され得ることは認識されよう。さらに、本明細書で説明されるこれらの一連の動作は、実行されると、関連するプロセッサに本明細書において説明される機能を実行させることになる対応する1組のコンピュータ命令を記憶した、任意の形のコンピュータ可読記憶媒体内で完全に具現されるものと見なされ得る。したがって、本開示の様々な態様は、特許請求される主題の範囲内にすべて入ることが企図されているいくつかの異なる形で具現され得る。さらに、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形は、本明細書において、たとえば、説明される動作を実行する「ように構成された論理」として説明される場合がある。
【００２６】
本明細書において使用する「モノのインターネットデバイス」(または「IoTデバイス」)という用語は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth（登録商標）識別子(ID)、近距離無線通信(NFC)IDなど)を有し、有線接続またはワイヤレス接続を介して1つまたは複数の他のデバイスに情報を送信することができる任意の物(たとえば、電化製品、センサなど)を指す場合がある。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどのパッシブ通信インターフェース(本明細書では「パッシブ」IoTデバイスと呼ばれるそのようなIoTデバイス)、または、モデム、トランシーバ、送信機受信機などのアクティブ通信インターフェース(本明細書では「アクティブ」IoTデバイス、もしくは単に「IoTデバイス」と呼ばれるそのようなIoTデバイス)を有する場合がある。IoTデバイスは、中央処理装置(CPU)、マイクロプロセッサ、ASICなどの中に組み込まれ、かつ/または、それらによって制御/監視され得るし、ローカルアドホックネットワークまたはインターネットなどのIoTネットワークに接続するために構成された属性の特定のセット(たとえば、IoTデバイスがオンであるかオフであるか、開いているか閉じているか、アイドルであるかアクティブであるか、タスク実行に利用可能であるかビジーであるかなど、冷房機能であるか暖房機能であるか、環境監視機能であるか環境記録機能であるか、発光機能であるか、音響放射機能であるかなどの、デバイスの状態またはステータス)を有することができる。たとえば、IoTデバイスには、これらのデバイスがIoTネットワークと通信するためのアドレス指定可能通信インターフェースを備えている限り、限定はしないが、冷蔵庫、トースター、オーブン、電子レンジ、冷凍庫、皿洗い機、パラボラアンテナ、手工具、洗濯機、衣類乾燥機、加熱炉、空調機、自動温度調節器、テレビジョン、照明設備、電気掃除機、スプリンクラー、電気メータ、ガスメータなどが含まれ得る。IoTデバイスには、(スマートフォンを含む)携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)なども含まれ得る。したがって、IoTネットワークは、通常、インターネット接続性をもたないデバイス(たとえば、皿洗い機など)に加えて、「レガシー」インターネットアクセス可能デバイス(たとえば、ラップトップコンピュータまたはデスクトップコンピュータ、携帯電話など)の組合せから構成される場合がある。
【００２７】
図1Aは、本開示の一態様によるワイヤレス通信システム100Aのハイレベルシステムアーキテクチャを示す。ワイヤレス通信システム100Aは、テレビジョン110と、屋外空調機112と、自動温度調節器114と、冷蔵庫116と、洗濯機および乾燥機118とを含む、複数のIoTデバイスを含んでいる。
【００２８】
図1Aを参照すると、IoTデバイス110〜118は、図1Aにエアインターフェース108および直接有線接続109として示されている物理通信インターフェースまたはレイヤを介してアクセスネットワーク(たとえば、アクセスポイント125)と通信するように構成される。エアインターフェース108は、IEEE802.11などのワイヤレスインターネットプロトコル(IP)に準拠することができる。図1Aは、エアインターフェース108を介して通信するIoTデバイス110〜118と、直接有線接続109を介して通信するIoTデバイス118とを示すが、各IoTデバイスは、有線接続もしくはワイヤレス接続、または両方を介して通信することができる。
【００２９】
インターネット175は、(便宜上、図1Aには示されていない)いくつかのルーティングエージェントおよび処理エージェントを含む。インターネット175は、標準インターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびIP)を使用して、異種のデバイス/ネットワークの間で通信する、相互接続されたコンピュータおよびコンピュータネットワークのグローバルシステムである。TCP/IPは、宛先において、データがどのようにフォーマッティング、アドレス指定、送信、ルーティング、および受信されるべきかを指定するエンドツーエンド接続性を提供する。
【００３０】
図1Aでは、デスクトップコンピュータまたはパーソナルコンピュータ(PC)などのコンピュータ120は、(たとえば、Ethernet（登録商標）接続またはWi-Fiもしくは802.11ベースのネットワークを介して)直接インターネット175に接続しているように示されている。コンピュータ120は、一例では、(たとえば、有線接続性とワイヤレス接続性の両方を有するWiFiルータ用の)アクセスポイント125自体に相当することができるモデムまたはルータへの直接接続などの、インターネット175への有線接続を有する場合がある。代替として、有線接続を介してアクセスポイント125およびインターネット175に接続されるのではなく、コンピュータ120は、エアインターフェース108または別のワイヤレスインターフェースを介してアクセスポイント125に接続される場合があり、エアインターフェース108を介してインターネット175にアクセスする場合がある。デスクトップコンピュータとして図示されているが、コンピュータ120は、ラップトップコンピュータ、タブレットコンピュータ、PDA、スマートフォンなどであり得る。コンピュータ120は、IoTデバイスであり得るし、かつ/またはIoTデバイス110〜118のネットワーク/グループなどのIoTネットワーク/グループを管理する機能を含んでいる場合がある。
【００３１】
アクセスポイント125は、たとえば、FiOS、ケーブルモデム、デジタル加入者線(DSL)モデムなどの光通信システムを介して、インターネット175に接続される場合がある。アクセスポイント125は、標準インターネットプロトコル(たとえば、TCP/IP)を使用して、IoTデバイス110〜120およびインターネット175と通信することができる。
【００３２】
図1Aを参照すると、IoTサーバ170は、インターネット175に接続されるように示されている。IoTサーバ170は、複数の構造的に別々の複数のサーバとして実装され得るか、または代替として、単一のサーバに相当する場合がある。一態様では、IoTサーバ170は、(点線によって示されるように)オプションであり、IoTデバイス110〜120のグループは、ピアツーピア(P2P)ネットワークであり得る。そのような場合、IoTデバイス110〜120は、エアインターフェース108および/または直接有線接続109を介して、互いに直接通信することができる。代替または追加として、IoTデバイス110〜120の一部またはすべては、エアインターフェース108および直接有線接続109に依存しない通信インターフェースを用いて構成される場合がある。たとえば、エアインターフェース108がWiFiインターフェースに相当する場合、IoTデバイス110〜120のうちの1つまたは複数は、互いに、または他のBluetooth（登録商標）対応デバイスもしくはNFC対応デバイスと直接通信するためのBluetooth（登録商標）インターフェースまたはNFCインターフェースを有する場合がある。
【００３３】
ピアツーピアネットワークでは、サービス発見方式は、ノードの存在、それらの能力、およびグループメンバーシップをマルチキャストすることができる。ピアツーピアデバイスは、この情報に基づいて、関連付けおよびそれに続く対話を確立することができる。
【００３４】
本開示の一態様によれば、図1Bは、複数のIoTデバイスを含んでいる別のワイヤレス通信システム100Bのハイレベルアーキテクチャを示す。一般に、図1Bに示されたワイヤレス通信システム100Bは、上記でより詳細に記載された、図1Aに示されたワイヤレス通信システム100Aと同じ、かつ/または実質的に同様の様々な構成要素(たとえば、エアインターフェース108および/または直接有線接続109を介してアクセスポイント125と通信するように構成された、テレビジョン110と、屋外空調機112と、自動温度調節器114と、冷蔵庫116と、洗濯機および乾燥機118とを含む様々なIoTデバイス、インターネット175に直接接続する、かつ/またはアクセスポイント125を介してインターネット175に接続するコンピュータ120、ならびにインターネット175を介してアクセス可能なIoTサーバ170など)を含む場合がある。そのため、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が図1Aに示されたワイヤレス通信システム100Aに関して上記ですでに提供されている限り、図1Bに示されたワイヤレス通信システム100B内のいくつかの構成要素に関する様々な詳細は、本明細書では省略される場合がある。
【００３５】
図1Bを参照すると、ワイヤレス通信システム100Bは、代替的にIoTマネージャ130またはIoTマネージャデバイス130と呼ばれる場合があるスーパーバイザデバイス130を含む場合がある。そのため、以下の説明が「スーパーバイザデバイス」130という用語を使用する場合、IoTマネージャ、グループオーナー、または同様の用語に対するいずれの参照も、スーパーバイザデバイス130、または同じもしくは実質的に同様の機能を提供する別の物理構成要素もしくは論理構成要素を指す場合があることを、当業者なら諒解されよう。
【００３６】
一実施形態では、スーパーバイザデバイス130は、一般に、ワイヤレス通信システム100B内の様々な他の構成要素を観測、監視、制御、または場合によっては管理することができる。たとえば、スーパーバイザデバイス130は、エアインターフェース108および/または直接有線接続109を介してアクセスネットワーク(たとえば、アクセスポイント125)と通信して、ワイヤレス通信システム100B内の様々なIoTデバイス110〜120に関連付けられた属性、活動、または他の状態を監視または管理することができる。スーパーバイザデバイス130は、インターネット175への、および場合によっては(点線として示された)IoTサーバ170への有線接続またはワイヤレス接続を有する場合がある。スーパーバイザデバイス130は、様々なIoTデバイス110〜120に関連付けられた属性、活動、または他の状態をさらに監視または管理するために使用され得る情報を、インターネット175および/またはIoTサーバ170から取得することができる。スーパーバイザデバイス130は、スタンドアロンデバイス、またはコンピュータ120などのIoTデバイス110〜120のうちの1つであり得る。スーパーバイザデバイス130は、物理デバイス、または物理デバイス上で実行されるソフトウェアアプリケーションであり得る。スーパーバイザデバイス130は、IoTデバイス110〜120に関連付けられた、監視される属性、活動、または他の状態に関する情報を出力し、かつ入力情報を受信して、それらに関連付けられた属性、活動、または他の状態を制御または場合によっては管理することができる、ユーザインターフェースを含む場合がある。したがって、スーパーバイザデバイス130は、一般に、様々な構成要素を含み、ワイヤレス通信システム100B内の様々な構成要素を観測、監視、制御、または場合によっては管理するために、様々な有線通信インターフェースおよびワイヤレス通信インターフェースをサポートすることができる。
【００３７】
図1Bに示されたワイヤレス通信システム100Bは、ワイヤレス通信システム100Bに結合され得るか、または場合によってはワイヤレス通信システム100Bの一部とされ得る、(アクティブIoTデバイス110〜120と対照的な)1つまたは複数のパッシブIoTデバイス105を含む場合がある。一般に、パッシブIoTデバイス105には、短距離インターフェースを介して照会されたとき、その識別子および属性を別のデバイスに提供することができる、バーコード付きデバイス、Bluetooth（登録商標）デバイス、無線周波数(RF)デバイス、RFIDタグ付きデバイス、赤外線(IR)デバイス、NFCタグ付きデバイス、または任意の他の適切なデバイスが含まれ得る。アクティブIoTデバイスは、パッシブIoTデバイスの属性における変化を検出すること、記憶すること、通信すること、それらの変化に作用することなどができる。
【００３８】
たとえば、パッシブIoTデバイス105は、各々がRFIDタグまたはバーコードを有するコーヒーカップとオレンジジュースの容器とを含む場合がある。キャビネットIoTデバイスおよび冷蔵庫IoTデバイス116は、各々がRFIDタグまたはバーコードを読み取って、コーヒーカップおよび/またはオレンジジュースの容器のパッシブIoTデバイス105が、いつ追加または除去されたかを検出することができる、適切なスキャナまたはリーダーを有する場合がある。キャビネットIoTデバイスがコーヒーカップのパッシブIoTデバイス105の除去を検出し、冷蔵庫IoTデバイス116がオレンジジュースの容器のパッシブIoTデバイスの除去を検出することに応答して、スーパーバイザデバイス130は、キャビネットIoTデバイスおよび冷蔵庫IoTデバイス116において検出された活動に関する1つまたは複数の信号を受信することができる。次いで、スーパーバイザデバイス130は、ユーザがコーヒーカップからオレンジジュースを飲んでいる、かつ/またはコーヒーカップからオレンジジュースを飲みたいと推定することができる。
【００３９】
上記は何らかの形態のRFIDタグ通信インターフェースまたはバーコード通信インターフェースを有するようにパッシブIoTデバイス105を記載するが、パッシブIoTデバイス105は、そのような通信能力をもたない1つまたは複数のデバイスまたは他の対象物を含む場合がある。たとえば、いくつかのIoTデバイスは、パッシブIoTデバイス105を識別するために、パッシブIoTデバイス105に関連付けられた形状、サイズ、色、および/または他の観測可能な特徴を検出することができる、適切なスキャナ機構またはリーダー機構を有する場合がある。このようにして、任意の適切な対象物は、その識別情報および属性を通信し、ワイヤレス通信システム100Bの一部になることができ、スーパーバイザデバイス130を用いて観測、監視、制御、または場合によっては管理することができる。さらに、パッシブIoTデバイス105は、図1Aのワイヤレス通信システム100Aに結合されるか、または場合によってはその一部とされ、実質的に同様の形式で、観測、監視、制御、または場合によっては管理される場合がある。
【００４０】
本開示の別の態様によれば、図1Cは、複数のIoTデバイスを含んでいる別のワイヤレス通信システム100Cのハイレベルアーキテクチャを示す。一般に、図1Cに示されたワイヤレス通信システム100Cは、上記でより詳細に記載された、それぞれ図1Aおよび図1Bに示されたワイヤレス通信システム100Aおよび100Bと同じ、かつ/または実質的に同様の様々な構成要素を含む場合がある。そのため、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が、それぞれ図1Aおよび図1Bに示されたワイヤレス通信システム100Aおよび100Bに関して上記ですでに提供されている限り、図1Cに示されたワイヤレス通信システム100C内のいくつかの構成要素に関する様々な詳細は、本明細書では省略される場合がある。
【００４１】
図1Cに示された通信システム100Cは、IoTデバイス110〜118とスーパーバイザデバイス130との間の例示的なピアツーピア通信を示す。図1Cに示されたように、スーパーバイザデバイス130は、IoTスーパーバイザインターフェースを介してIoTデバイス110〜118の各々と通信する。さらに、IoTデバイス110および114、IoTデバイス112、114、および116、ならびにIoTデバイス116および118は、互いに直接通信する。
【００４２】
IoTデバイス110〜118はIoTグループ160を構成する。IoTデバイスグループ160は、ユーザのホームネットワークに接続されたIoTデバイスなどの、ローカルに接続されたIoTデバイスのグループである。図示されていないが、複数のIoTデバイスグループは、インターネット175に接続されたIoTスーパーエージェント140を介して互いに接続され得るし、かつ/または通信することができる。ハイレベルで、スーパーバイザデバイス130はグループ内通信を管理し、IoTスーパーエージェント140はグループ間通信を管理することができる。別々のデバイスとして図示されているが、スーパーバイザデバイス130およびIoTスーパーエージェント140は、同じデバイス(たとえば、図1Aのコンピュータ120などのスタンドアロンデバイスもしくはIoTデバイス)であり得るか、またはその中に存在する場合がある。代替として、IoTスーパーエージェント140は、アクセスポイント125の機能に対応するか、またはその機能を含む場合がある。さらに別の代替として、IoTスーパーエージェント140は、IoTサーバ170などのIoTサーバの機能に対応するか、またはその機能を含む場合がある。IoTスーパーエージェント140は、ゲートウェイ機能145をカプセル化することができる。
【００４３】
各IoTデバイス110〜118は、スーパーバイザデバイス130をピアとして扱い、属性/スキーマ更新をスーパーバイザデバイス130に送信することができる。IoTデバイスが別のIoTデバイスと通信する必要があるとき、IoTデバイスは、そのIoTデバイスに対するポインタをスーパーバイザデバイス130に要求し、次いで、ピアとして対象のIoTデバイスと通信することができる。IoTデバイス110〜118は、共通メッセージングプロトコル(CMP)を使用して、ピアツーピア通信ネットワークを介して互いに通信する。2つのIoTデバイスがCMP対応であり、共通通信トランスポートを介して接続されている限り、それらのIoTデバイスは互いに通信することができる。プロトコルスタックにおいて、CMPレイヤ154は、アプリケーションレイヤ152の下にあり、トランスポートレイヤ156および物理レイヤ158の上にある。
【００４４】
本開示の別の態様によれば、図1Dは、複数のIoTデバイスを含んでいる別のワイヤレス通信システム100Dのハイレベルアーキテクチャを示す。一般に、図1Dに示されたワイヤレス通信システム100Dは、上記でより詳細に記載された、それぞれ図1A〜図1Cに示されたワイヤレス通信システム100A〜100Cと同じ、かつ/または実質的に同様の様々な構成要素を含む場合がある。そのため、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が、それぞれ図1A〜図1Cに示されたワイヤレス通信システム100A〜100Cに関して上記ですでに提供されている限り、図1Dに示されたワイヤレス通信システム100D内のいくつかの構成要素に関する様々な詳細は、本明細書では省略される場合がある。
【００４５】
インターネット175は、IoTの概念を使用して調整され得る「リソース」である。しかしながら、インターネット175は、調整されるリソースのほんの一例であり、任意のリソースがIoTの概念を使用して調整される可能性がある。調整され得る他のリソースには、限定はしないが、電気、ガス、ストレージ、セキュリティなどが含まれる。IoTデバイスはリソースに接続される場合があり、それによってリソースを調整するか、または、リソースはインターネット175を介して調整される可能性がある。図1Dは、天然ガス、ガソリン、湯、および電気などのいくつかのリソース180を示し、リソース180は、インターネット175に加えて、かつ/またはインターネット175を介して調整され得る。
【００４６】
IoTデバイスは、互いに通信し、リソース180のそれらの使用を調整することができる。たとえば、トースター、コンピュータ、およびヘアドライヤなどのIoTデバイスは、Bluetooth（登録商標）通信インターフェースを介して互いに通信して、電気(リソース180)のそれらの使用を調整することができる。別の例として、デスクトップコンピュータ、電話、およびタブレットコンピュータなどのIoTデバイスは、Wi-Fi通信インターフェースを介して通信して、インターネット175(リソース180)に対するそれらのアクセスを調整することができる。さらに別の例として、ストーブ、衣類乾燥機、および給湯器などのIoTデバイスは、Wi-Fi通信インターフェースを介して通信して、ガスのそれらの使用を調整することができる。代替または追加として、各IoTデバイスは、IoTデバイスから受信された情報に基づいて、リソース180のそれらの使用を調整するロジックを有する、IoTサーバ170などのIoTサーバに接続される場合がある。
【００４７】
本開示の別の態様によれば、図1Eは、複数のIoTデバイスを含んでいる別のワイヤレス通信システム100Eのハイレベルアーキテクチャを示す。一般に、図1Eに示されたワイヤレス通信システム100Eは、上記でより詳細に記載された、それぞれ図1A〜図1Dに示されたワイヤレス通信システム100A〜100Dと同じ、かつ/または実質的に同様の様々な構成要素を含む場合がある。そのため、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が、それぞれ図1A〜図1Dに示されたワイヤレス通信システム100A〜100Dに関して上記ですでに提供されている限り、図1Eに示されたワイヤレス通信システム100E内のいくつかの構成要素に関する様々な詳細は、本明細書では省略される場合がある。
【００４８】
通信システム100Eは、2つのIoTデバイスグループ160Aおよび160Bを含む。複数のIoTデバイスグループは、インターネット175に接続されたIoTスーパーエージェントを介して互いに接続され得るし、かつ/または互いに通信することができる。ハイレベルで、IoTスーパーエージェントは、IoTデバイスグループの間のグループ間通信を管理することができる。たとえば、図1Eでは、IoTデバイスグループ160Aは、IoTデバイス116A、122A、および124Aと、IoTスーパーエージェント140Aとを含み、IoTデバイスグループ160Bは、IoTデバイス116B、122B、および124Bと、IoTスーパーエージェント140Bとを含む。そのため、IoTスーパーエージェント140Aおよび140Bは、インターネット175と接続し、インターネット175を介して互いに通信し、かつ/またはIoTデバイスグループ160Aと160Bとの間の通信を容易にするために互いに直接通信することができる。さらに、図1Eは、IoTスーパーエージェント140Aおよび140Bを介して互いに通信する2つのIoTデバイスグループ160Aおよび160Bを示すが、任意の数のIoTデバイスグループが、IoTスーパーエージェントを使用して互いに適切に通信できることを当業者なら諒解されよう。
【００４９】
図2Aは、本開示の態様によるIoTデバイス200Aのハイレベルな例を示す。IoTデバイス200Aは、IoTデバイス110〜120、スマートフォン、タブレットコンピュータ、ラップトップコンピュータなどの任意のIoTデバイスに相当する場合がある。外観および/または内部構成要素はIoTデバイス間でかなり異なり得るが、大部分のIoTデバイスは、ディスプレイとユーザ入力のための手段とを備える場合がある、ある種のユーザインターフェースを有する。ユーザインターフェースをもたないIoTデバイスは、図1A〜図1Bのエアインターフェース108などの有線ネットワークまたはワイヤレスネットワークを介してリモートで通信することができる。
【００５０】
図2Aに示されたように、IoTデバイス200Aについての例示的な構成では、IoTデバイス200Aの外部ケーシングは、当技術分野で知られているように、構成要素の中でも、ディスプレイ226と、電源ボタン222と、2つの制御ボタン224Aおよび224Bとを用いて構成される場合がある。ディスプレイ226は、タッチスクリーンディスプレイであり得るし、その場合、制御ボタン224Aおよび224Bは必要でない場合がある。IoTデバイス200Aの一部として明示的に示されてはいないが、IoTデバイス200Aは、限定はしないが、Wi-Fiアンテナ、セルラーアンテナ、衛星位置システム(SPS)アンテナ(たとえば、全地球測位システム(GPS)アンテナ)などを含む、1つまたは複数の外部アンテナおよび/または外部ケーシングに内蔵される1つのまたは複数の内蔵アンテナを含むことができる。
【００５１】
IoTデバイス200AなどのIoTデバイスの内部構成要素は異なるハードウェア構成によって具体化され得るが、内部ハードウェア構成要素のための基本的なハイレベル構成は図2Aにプラットフォーム202として示されている。プラットフォーム202は、ローカルに記憶されたアプリケーションを単独で実行することもできる。プラットフォーム202は、一般に、プロセッサ208と呼ばれる、マイクロコントローラ、マイクロプロセッサ、特定用途向け集積回路、デジタル信号プロセッサ(DSP)、プログラマブル論理回路、または他のデータ処理デバイスなどの、1つまたは複数のプロセッサ208に動作可能に結合された、有線通信および/またはワイヤレス通信のために構成された1つまたは複数のトランシーバ206(たとえば、Wi-Fiトランシーバ、Bluetooth（登録商標）トランシーバ、セルラートランシーバ、衛星トランシーバ、GPS受信機またはSPS受信機など)を含む場合がある。プロセッサ208は、IoTデバイスのメモリ212内でアプリケーションプログラミング命令を実行することができる。メモリ212は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュカード、またはコンピュータプラットフォームに共通の任意のメモリのうちの1つまたは複数を含むことができる。1つまたは複数の入力/出力(I/O)インターフェース214は、プロセッサ208が、図示されたディスプレイ226、電源ボタン222、制御ボタン224Aおよび224Bなどの様々なI/Oデバイス、ならびにIoTデバイス200Aに関連付けられたセンサ、アクチュエータ、リレー、バルブ、スイッチなどの任意の他のデバイスと通信すること、およびそれらから制御することを可能にするように構成することができる。
【００５２】
したがって、本開示の一態様は、本明細書に記載された機能を実行する能力を含むIoTデバイス(たとえば、IoTデバイス200A)を含むことができる。当業者によって理解されるように、様々な論理要素は、本明細書で開示する機能を達成するために、個別の要素、プロセッサ(たとえば、プロセッサ208)上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアとの任意の組合せで具現され得る。たとえば、トランシーバ206、プロセッサ208、メモリ212、およびI/Oインターフェース214をすべて協調的に用いて、本明細書で開示する様々な機能をロード、記憶および実行することができ、したがって、これらの機能を実行するための論理は様々な要素に分散させることができる。代替的には、機能は1つの個別構成要素に組み込むことができる。したがって、図2AのIoTデバイス200Aの特徴は単に例示であると見されるべきであり、本開示は、図示される特徴または構成に限定されない。
【００５３】
たとえば、トランシーバ206は、1つまたは複数のユーザデバイスとワイヤレスP2Pネットワークを確立することができる。プロセッサ208は、以下に記載されるように、IoTデバイス200Aがアクティブユーザデバイスであるか否かを判定することができる。IoTデバイス200Aがアクティブユーザデバイスであると判定することに応答して、トランシーバ206は、IoTデバイス200Aがアクティブユーザデバイスであることを示す通知を1つまたは複数のユーザデバイスに送信することができる。代替として、IoTデバイス200Aがアクティブユーザデバイスではないと判定することに応答して、トランシーバ206は、IoTデバイス200Aがアクティブユーザデバイスではないことを示す通知を1つまたは複数のユーザデバイスに送信することができる。IoTデバイス200Aがアクティブユーザデバイスである場合、トランシーバ206は、IoTデバイス200Aと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータを、IoTサーバ170などのリモートサーバから受信することができ、同じユーザがIoTデバイス200Aと1つまたは複数のユーザデバイスの両方の1つまたは複数のアプリケーションにログインしている。次いで、トランシーバ206は、1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信することができる。代替として、IoTデバイス200Aがアクティブユーザデバイスではない場合、トランシーバ206は、IoTデバイス200Aとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータを、アクティブユーザデバイスから受信することができる。
【００５４】
図2Bは、本開示の態様によるパッシブIoTデバイス200Bのハイレベルな例を示す。一般に、図2Bに示されたパッシブIoTデバイス200Bは、上記でより詳細に記載された、図2Aに示されたIoTデバイス200Aと同じ、かつ/または実質的に同様の様々な構成要素を含む場合がある。そのため、説明を簡潔かつ簡単にするために、同じまたは同様の詳細が、図2Aに示されたIoTデバイス200Aに関して上記ですでに提供されている限り、図2Bに示されたパッシブIoTデバイス200B内のいくつかの構成要素に関する様々な詳細は、本明細書では省略される場合がある。
【００５５】
図2Bに示されたパッシブIoTデバイス200Bは、一般に、プロセッサ、内部メモリ、またはいくつかの他の構成要素をもたない場合があるという点で、図2Aに示されたIoTデバイス200Aとは異なる場合がある。代わりに、一実施形態では、パッシブIoTデバイス200Bは、パッシブIoTデバイス200Bが、制御されたIoTネットワーク内で観測されること、監視されること、制御されること、管理されること、または場合によっては知られることを可能にする、I/Oインターフェース214または他の適切な機構のみを含む場合がある。たとえば、一実施形態では、パッシブIoTデバイス200Bに関連付けられたI/Oインターフェース214は、短距離インターフェースを介して照会されたとき、パッシブIoTデバイス200Bに関連付けられた識別子および属性を別のデバイス(たとえば、パッシブIoTデバイス200Bに関連付けられた属性に関する情報を検出すること、記憶すること、通信すること、その情報に作用すること、または場合によってはその情報を処理することができる、IoTデバイス200AなどのアクティブIoTデバイス)に提供することができる、バーコード、Bluetooth（登録商標）インターフェース、無線周波数(RF)インターフェース、RFIDタグ、IRインターフェース、NFCインターフェース、または任意の他の適切なI/Oインターフェースを含む場合がある。
【００５６】
上記は何らかの形態のRF、バーコード、または他のI/Oインターフェース214を有するようにパッシブIoTデバイス200Bを記載するが、パッシブIoTデバイス200Bは、そのようなI/Oインターフェース214をもたないデバイスまたは他の対象物を備える場合がある。たとえば、いくつかのIoTデバイスは、パッシブIoTデバイス200Bを識別するために、パッシブIoTデバイス200Bに関連付けられた形状、サイズ、色、および/または他の観測可能な特徴を検出することができる、適切なスキャナ機構またはリーダー機構を有する場合がある。このようにして、任意の適切な対象物は、その識別情報および属性を通信することができ、制御されたIoTネットワーク内で観測、監視、制御、または場合によっては管理することができる。
【００５７】
図3は、機能を実行するように構成される論理を含む通信デバイス300を示す。通信デバイス300は、限定はしないが、IoTデバイス110〜120、IoTデバイス200A、インターネット175に結合された任意の構成要素(たとえば、IoTサーバ170)などを含む、上記の通信デバイスのうちのいずれかに対応し得る。したがって、通信デバイス300は、図1A〜1Bのワイヤレス通信システム100A〜100Bを介して1つもしくは複数の他のエンティティと通信する(または通信を容易にする)ように構成された任意の電子デバイスに対応し得る。
【００５８】
図3を参照すると、通信デバイス300は、情報を受信および/または送信するように構成される論理305を含む。一例では、通信デバイス300がワイヤレス通信デバイス(たとえば、IoTデバイス200Aおよび/またはパッシブIoTデバイス200B)に対応する場合には、情報を受信および/または送信するように構成される論理305は、ワイヤレス送受信機および関連ハードウェア(たとえば、RFアンテナ、モデム、変調器および/または復調器など)のようなワイヤレス通信インターフェース(たとえば、Bluetooth（登録商標）、Wi-Fi、Wi-Fi Direct、Long-Term Evolution (LTE) Directなど)を含むことができる。別の例では、情報を受信および/または送信するように構成された論理305は、有線通信インターフェース(たとえば、インターネット175にアクセスする手段となり得るシリアル接続、USBまたはFirewire接続、Ethernet（登録商標）接続など)に対応することができる。したがって、通信デバイス300が、何らかのタイプのネットワークベースのサーバ(たとえば、IoTサーバ170)に対応する場合には、情報を受信および/または送信するように構成された論理305は、一例では、Ethernet（登録商標）プロトコルによってネットワークベースのサーバを他の通信エンティティに接続するEthernet（登録商標）カードに対応し得る。さらなる例では、情報を受信および/または送信するように構成された論理305は、通信デバイス300がそのローカル環境を監視する手段となり得る感知または測定ハードウェア(たとえば、加速度計、温度センサ、光センサ、ローカルRF信号を監視するためのアンテナなど)を含むことができる。情報を受信および/または送信するように構成された論理305は、実行されるときに、情報を受信および/または送信するように構成された論理305の関連ハードウェアがその受信機能および/または送信機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を受信および/または送信するように構成された論理305は、ソフトウェアだけに対応するのではなく、情報を受信および/または送信するように構成された論理305は、その機能性を達成するためのハードウェアに少なくとも部分的に依拠する。
【００５９】
図3を参照すると、通信デバイス300は、情報を処理するように構成される論理310をさらに含む。一例では、情報を処理するように構成される論理310は、少なくともプロセッサを含むことができる。情報を処理するように構成された論理310によって実施され得るタイプの処理の例示的な実装形態は、判断を行うこと、接続を確立すること、異なる情報オプション間で選択を行うこと、データに関係する評価を実施すること、測定動作を実施するために通信デバイス300に結合されたセンサと対話すること、情報をあるフォーマットから別のフォーマットに(たとえば、.wmvから.aviへなど、異なるプロトコル間で)変換することなどを含むが、これらに限定されない。たとえば、情報を処理するように構成された論理310中に含まれるプロセッサは、汎用プロセッサ、DSP、ASIC、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組合せに対応し得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現され得る。情報を処理するように構成された論理310は、実行されるとき、情報を処理するように構成された論理310の関連ハードウェアがその処理機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を処理するように構成された論理310は、ソフトウェアだけに対応するのではなく、情報を処理するように構成された論理310は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
【００６０】
図3を参照すると、通信デバイス300は、情報を記憶するように構成される論理315をさらに含む。一例では、情報を記憶するように構成される論理315は、少なくとも非一時的メモリおよび関連ハードウェア(たとえば、メモリコントローラなど)を含むことができる。たとえば、情報を記憶するように構成される論理315に含まれる非一時的メモリは、RAM、フラッシュメモリ、ROM、消去可能プログラマブルROM(EPROM)、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当該技術分野において知られている任意の他の形の記憶媒体に対応することができる。情報を記憶するように構成される論理315は、実行されるときに、情報を記憶するように構成される論理315の関連ハードウェアがその記憶機能を実行できるようにするソフトウェアも含むことができる。しかしながら、情報を記憶するように構成される論理315は、ソフトウェアだけに対応するのではなく、情報を記憶するように構成される論理315は、その機能を達成するためにハードウェアに少なくとも部分的に依拠する。
【００６１】
図3を参照すると、通信デバイス300は、情報を提示するように構成された論理320をさらにオプションで含む。一例では、情報を提示するように構成される論理320は、少なくとも出力デバイスおよび関連ハードウェアを含むことができる。たとえば、出力デバイスは、ビデオ出力デバイス(たとえば、ディスプレイスクリーン、USB、HDMI（登録商標）のようなビデオ情報を搬送することができるポートなど)、オーディオ出力デバイス(たとえば、スピーカ、マイクロフォンジャック、USB、HDMI（登録商標）のようなオーディオ情報を搬送することができるポートなど)、振動デバイス、および/または、情報がそれによって出力のためにフォーマットされ得る、または通信デバイス300のユーザもしくは操作者によって実際に出力され得る任意の他のデバイスを含むことができる。たとえば、通信デバイス300が、図2Aに示されたIoTデバイス200A、および/または図2Bに示されたパッシブIoTデバイス200Bに相当する場合、情報を提示するように構成されたロジック320は、ディスプレイ226を含む場合がある。さらなる一例では、情報を提示するように構成される論理320は、ローカルユーザを有しないネットワーク通信デバイス(たとえば、ネットワークスイッチ、またはルータ、リモートサーバなど)のようないくつかの通信デバイスでは省くことができる。情報を提示するように構成された論理320は、実行されるとき、情報を提示するように構成された論理320の関連ハードウェアがその提示機能を実施できるようにするソフトウェアも含むことができる。しかしながら、情報を提示するように構成された論理320は、ソフトウェアだけに対応するのではなく、情報を提示するように構成された論理320は、その機能性を達成するためにハードウェアに少なくとも部分的に依拠する。
【００６２】
図3を参照すると、通信デバイス300は、ローカルユーザ入力を受信するように構成された論理325をさらにオプションで含む。一例では、ローカルユーザ入力を受信するように構成される論理325は、少なくともユーザ入力デバイスおよび関連ハードウェアを含むことができる。たとえば、ユーザ入力デバイスは、ボタン、タッチスクリーンディスプレイ、キーボード、カメラ、オーディオ入力デバイス(たとえば、マイクロフォン、もしくはマイクロフォンジャックなど、オーディオ情報を搬送することができるポートなど)、および/または情報がそれによって通信デバイス300のユーザもしくはオペレータから受信され得る任意の他のデバイスを含み得る。たとえば、通信デバイス300が図2Aに示すようなIoTデバイス200Aおよび/または図2Bに示すようなパッシブIoTデバイス200Bに対応する場合、ローカルユーザ入力を受信するように構成された論理325は、ボタン222、224Aおよび224B、ディスプレイ226(タッチスクリーンの場合)などを含み得る。さらなる例では、ローカルユーザ入力を受信するように構成された論理325は、(たとえば、ネットワークスイッチまたはルータ、リモートサーバなど)ローカルユーザを有さないネットワーク通信デバイスのようないくつかの通信デバイスでは省略されることがある。ローカルユーザ入力を受信するように構成された論理325は、実行されるとき、ローカルユーザ入力を受信するように構成された論理325の関連ハードウェアがその入力受信機能を実施できるようにするソフトウェアも含むことができる。しかしながら、ローカルユーザ入力を受信するように構成された論理325は、ソフトウェアだけに対応するのではなく、ローカルユーザ入力を受信するように構成された論理325は、その機能性を達成するためにハードウェアに少なくとも部分的に依拠する。
【００６３】
図3を参照すると、305〜325の構成された論理は、図3では別個のまたは相異なるブロックとして示されているが、それぞれの構成された論理がその機能を実行するためのハードウェアおよび/またはソフトウェアは、部分的に重複できることは理解されよう。たとえば、305〜325の構成された論理の機能を容易にするために使用される任意のソフトウェアを、情報を記憶するように構成された論理315に関連する非一時的メモリに記憶することができ、それにより、305〜325の構成された論理は各々、その機能(すなわち、この場合、ソフトウェア実行)を、情報を記憶するように構成された論理315によって記憶されたソフトウェアの動作に部分的に基づいて実行する。同様に、構成された論理のうちの1つに直接関連付けられるハードウェアは、時々、他の構成された論理によって借用または使用され得る。たとえば、情報を処理するように構成された論理310のプロセッサは、データを、情報を受信および/または送信するように構成された論理305によって送信される前に、適切な形式にフォーマットすることができ、それにより、情報を受信および/または送信するように構成された論理305は、その機能(すなわち、この場合、データの送信)を、情報を処理するように構成された論理310に関連付けられたハードウェア(すなわち、プロセッサ)の動作に部分的に基づいて実行する。
【００６４】
概して、別段に明示的に記載されていない限り、本開示全体にわたって使用される「ように構成された論理」という句は、ハードウェアにより少なくとも部分的に実施される態様を呼び出すものとし、ハードウェアから独立したソフトウェアだけの実施形態に位置づけるものではない。様々なブロックにおける構成された論理または「ように構成された論理」は、特定の論理ゲートまたは論理要素に限定されるのではなく、概して、本明細書に記載した機能性を、(ハードウェアまたはハードウェアとソフトウェアの組合せのいずれかを介して)実施するための能力を指すことが諒解されよう。したがって、様々なブロックに示す構成された論理または「ように構成された論理」は、「論理」という言葉を共有するにもかかわらず、必ずしも論理ゲートまたは論理要素として実装されるとは限らない。様々なブロックの論理間の他のやりとりまたは協働が、以下でより詳細に説明する態様の検討から、当業者には明らかになるであろう。
【００６５】
様々な実施形態は、図4に示すサーバ400などの、様々な市販のサーバデバイスのいずれにおいても実装され得る。一例では、サーバ400は、上記で説明したIoTサーバ170の1つの例示的な構成に対応し得る。図4では、サーバ400は、揮発性メモリ402と、ディスクドライブ403などの大容量の不揮発性メモリとに結合されたプロセッサ401を含む。サーバ400は、プロセッサ401に結合された、フロッピー（登録商標）ディスクドライブ、コンパクトディスク(CD)ドライブまたはDVDディスクドライブ406を含むことも可能である。サーバ400は、他のブロードキャストシステムコンピュータおよびサーバに、またはインターネットに結合されたローカルエリアネットワークなどのネットワーク407とのデータ接続を確立するための、プロセッサ401に結合されたネットワークアクセスポート404を含むことも可能である。図3の文脈において、図4のサーバ400は、通信デバイス300の1つの例示的な実装形態を示すが、情報を送信および/または受信するように構成された論理305は、ネットワーク407と通信するためにサーバ400によって使用されるネットワークアクセスポイント404に相当し、情報を処理するように構成された論理310は、プロセッサ401に相当し、情報を記憶するように構成された論理315は、揮発性メモリ402、ディスク(disk)ドライブ403、および/またはディスク(disc)ドライブ406のうちの任意の組合せに相当することが諒解されよう。情報を提示するように構成されたオプションの論理320およびローカルユーザ入力を受信するように構成されたオプションの論理325は、図4には明示的に示さず、その中に含まれる場合もあれば、含まれない場合もある。したがって、図4は、通信デバイス300が、図2Aに示すようなIoTデバイスの実装形態に加えてサーバとして実装され得ることを説明するのを助ける。
【００６６】
概して、電話、タブレットコンピュータ、ラップトップコンピュータおよびデスクトップコンピュータ、特定の車両などのユーザ機器(UE)は、互いに(たとえば、Bluetooth（登録商標）、ローカルWi-Fiなどによって)ローカルに接続するかまたは(たとえば、セルラーネットワーク、インターネットなどを介して)リモートに接続するように構成されてもよい。さらに、いくつかのUEは、デバイスが1対1の接続を確立するかまたは互いに直接通信するためにいくつかのデバイスを含むグループに同時に接続するのを可能にする特定のワイヤレスネットワーキング技法(たとえば、Wi-Fi、Bluetooth（登録商標）、Wi-Fi Directなど)を使用する近接度ベースのピアツーピア(P2P)通信をサポートしてもよい。その目的で、図5は、発見可能なP2Pサービスをサポートすることができる例示的なワイヤレス通信ネットワークまたはWAN500を示す。たとえば、一実施形態では、ワイヤレス通信ネットワーク500は、様々な基地局510および他のネットワークエンティティを含む、LTEネットワークまたは別の適切なWANを備える場合がある。簡単のために、図5には、3つの基地局510a、510bおよび510c、1つのネットワークコントローラ530、ならびに1つのダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバ540のみを示す。基地局510は、デバイス520と通信するエンティティであってもよく、Node B、evolved Node B(eNB)、アクセスポイントなどとも呼ばれることがある。各基地局510は、特定の地理的エリアに対して通信カバレージを実現し得、カバレージエリア内に位置するデバイス520のための通信をサポートし得る。ネットワーク容量を向上させるために、基地局510の全体的なカバレージエリアが複数の(たとえば、3つの)より小さいエリアに区分されてもよく、各々のより小さいエリアがそれぞれの基地局510によってサービスされてもよい。3GPPでは、「セル」という用語は、この用語が使用される状況に応じて、このカバレッジエリアにサービスしている基地局510および/または基地局サブシステム510のカバレッジエリアを指し得る。3GPP2では、「セクタ」または「セルセクタ」という用語は、このカバレッジエリアにサービスしている基地局510および/または基地局サブシステム510のカバレッジエリアを指し得る。明確にするために、本明細書の説明では3GPPの「セル」の概念が使用されることがある。
【００６７】
基地局510は、マクロセル、ピコセル、フェムトセル、および/または他のセルタイプの通信カバレッジを可能にすることができる。マクロセルは、比較的大きい地理的エリア(たとえば、半径数キロメートル)をカバーすることができ、サービスに加入しているデバイス520による無制限アクセスを可能にし得る。ピコセルは、比較的小さい地理的エリアをカバーすることができ、サービスに加入しているデバイス520による無制限アクセスを可能にし得る。フェムトセルは、比較的小さい地理的エリア(たとえば、家庭)をカバーすることができ、フェムトセルとの関連付けを有するデバイス520(たとえば、限定加入者グループ(CSG)中のデバイス)による限定アクセスを可能にし得る。図5に示す例では、ワイヤレスネットワーク500は、マクロセルのためのマクロ基地局510a、510b、および510cを含む。ワイヤレスネットワーク500は、ピコセルのためのピコ基地局510および/またはフェムトセルのためのホーム基地局510(図5には示されていない)も含み得る。
【００６８】
ネットワークコントローラ530は、基地局510のセットに結合することができ、これらの基地局510の調整および制御を行うことができる。ネットワークコントローラ530は、バックホールを介して基地局と通信することができる単一のネットワークエンティティまたはネットワークエンティティの集合であってもよい。また、基地局は、たとえば、直接またはワイヤレスバックホールまたはワイヤラインバックホールを介して間接的に、互いに通信し得る。DHCPサーバ540は、以下に説明するように、P2P通信をサポートすることができる。DHCPサーバ540は、ワイヤレスネットワーク500の一部であっても、またはインターネット接続共有(ICS)を介して実行されるワイヤレスネットワーク500の外部のサーバであっても、またはそれらの任意の適切な組合せであってもよい。DHCPサーバ540は、(図5に示されるように)別個のエンティティであってよく、または、基地局510、ネットワークコントローラ530、もしくは他の何らかのエンティティの一部であってもよい。いずれの場合も、DHCPサーバ540は、ピアツーピアの通信を望むデバイス520によって到達可能であり得る。
【００６９】
デバイス520はワイヤレスネットワーク500全体にわたって分散され得、各デバイス520は固定されてもまたは移動可能であってもよい。デバイス520はまた、ノード、ユーザ機器(UE)、局、移動局、端末、アクセス端末、加入者ユニットなどと呼ばれ得る。デバイス520は、セルラー電話、携帯情報端末(PDA)、ワイヤレスモデム、ワイヤレス通信デバイス、ハンドヘルドデバイス、ラップトップコンピュータ、コードレス電話、ワイヤレスローカルループ(WLL)局、スマートフォン、ネットブック、スマートブック、タブレットなどであってよい。デバイス520は、ワイヤレスネットワーク500内の基地局510と通信してもよく、さらに他のデバイス520とピアツーピア通信してもよい。たとえば、図5に示すように、デバイス520aとデバイス520bがピアツーピア通信してもよく、デバイス520cとデバイス520dがピアツーピア通信してもよく、デバイス520eとデバイス520fがピアツーピア通信してもよく、デバイス520gとデバイス520hとデバイス520iがピアツーピア通信し、一方、残りのデバイス520が基地局510と通信してもよい。さらに図5に示すように、デバイス520a、520d、520f、および520hは、たとえば、P2P通信を行っていないときに基地局510と通信するか、または場合によってはP2P通信と同時に基地局510と通信してもよい。
【００７０】
本明細書の説明では、WAN通信は、たとえば別のデバイス520などのリモートエンティティと通話するための、ワイヤレスネットワーク500におけるデバイス520と基地局510との間の通信を指し得る。WANデバイスは、WAN通信に関心を持っているか、WAN通信に関与しているデバイス520である。P2P通信は、基地局510を介さない、2つ以上のデバイス520間の直接通信を指す。P2Pデバイスは、P2P通信に関心を持っているかまたはP2P通信に関与しているデバイス520、たとえば、P2Pデバイスの近傍内の別のデバイス520に関するトラフィックデータを有するデバイス520である。2つのデバイスは、たとえば、各デバイス520が他のデバイス520を検出できる場合、互いに近傍に位置すると見なされてもよい。概して、デバイス520は、別のデバイス520と、P2P通信の場合は直接通信してもよく、WAN通信の場合は少なくとも1つの基地局510を介して通信してもよい。
【００７１】
一実施形態では、P2Pデバイス520間の直接通信はP2Pグループとして構成されてもよい。より詳細には、P2Pグループは概して、P2P通信に関心を持っているか、またはP2P通信に関与している2つ以上のデバイス520のグループを指し、P2Pリンクは、P2Pグループ用の通信リンクを指す。さらに、一実施形態では、P2Pグループは、P2Pグループオーナー(またはP2Pサーバ)と指定される1つのデバイス520と、P2PグループオーナーによってサービスされるP2Pクライアントと指定される1つまたは複数のデバイス520とを含んでもよい。P2Pグループオーナーは、WANとのシグナリングの交換、P2PグループオーナーとP2Pクライアントとの間のデータ送信の調整などのような、いくつかの管理機能を実行することができる。たとえば、図5に示すように、第1のP2Pグループは、基地局510aの対象となるデバイス520aおよび520bを含み、第2のP2Pグループは、基地局510bの対象となるデバイス520cおよび520dを含み、第3のP2Pグループは、異なる基地局510bおよび510cの対象となるデバイス520eおよび520fを含み、第4のP2Pグループは、基地局510cの対象となるデバイス520g、520h、および520iを含む。デバイス520a、520d、520f、および520hは、そのそれぞれのP2PグループにおけるP2Pグループオーナーであってもよく、デバイス520b、520c、520e、520g、および520iは、そのそれぞれのP2PグループにおけるP2Pクライアントであってもよい。図5の他のデバイス520は、WAN通信に関与していてもよい。
【００７２】
一実施形態では、P2P通信は、P2Pグループ内でのみ行われ、かつ、P2Pグループに関連するP2PグループオーナーとP2Pクライアントとの間でのみ行われる。たとえば、同じP2Pグループ内の2つのP2Pクライアント(たとえば、デバイス520gおよび520i)が情報を交換することを望む場合、P2Pクライアントの一方がP2Pグループオーナー(たとえば、デバイス520h)に情報を送ってもよく、次いでP2Pグループオーナーが送信を他のP2Pクライアントに中継してもよい。一実施形態では、特定のデバイス520は、複数のP2Pグループに属してもよく、各P2Pグループ内でP2PグループオーナーまたはP2Pクライアントのいずれかとして振る舞ってもよい。さらに、一実施形態では、特定のP2Pクライアントは、1つのP2Pグループのみに属するかまたは複数のP2Pグループに属し、任意の特定の瞬間に複数のP2PグループのいずれかにおけるP2Pデバイス520と通信してもよい。概して、通信は、ダウンリンクおよびアップリンク上での送信を通じて促進され得る。WAN通信では、ダウンリンク(または順方向リンク)は基地局510からデバイス520への通信リンクを指し、アップリンク(または逆方向リンク)はデバイス520から基地局510への通信リンクを指す。P2P通信では、P2PダウンリンクはP2PグループオーナーからP2Pクライアントへの通信リンクを指し、P2PアップリンクはP2PクライアントからP2Pグループオーナーへの通信リンクを指す。いくつかの実施形態では、2つ以上のデバイスが、WAN技法を使用してP2P通信するのではなく、Wi-Fi、Bluetooth（登録商標）、またはWi-Fi Directなどの技法を使用してより小さいP2Pグループを形成してワイヤレスローカルエリアネットワーク(WLAN)上でP2P通信してもよい。たとえば、Wi-Fi、Bluetooth（登録商標）、Wi-Fi Direct、またはその他のWLAN技法を使用するP2P通信では、2つ以上のモバイルフォン、ゲームコンソール、ラップトップコンピュータ、またはその他の適切な通信エンティティ間のP2P通信を可能にすることができる。
【００７３】
図6は、本開示の一態様による、様々なデバイス610、630、640が通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的な環境600を示す。たとえば、一実施形態では、ネットワーク化コンピューティング環境におけるアプリケーション間通信を有効化するのに使用されるソフトウェアバスを含んでもよい分散バス625を介したプロセス間通信プロトコル(IPC)フレームワークを使用して単一のプラットフォーム上でのアプリケーション同士などの間の通信を容易にすることができ、この場合、ネットワーク化コンピューティング環境におけるアプリケーション間通信では、各アプリケーションが分散バス625に登録して他のアプリケーションにサービスを提供し、他のアプリケーションが登録されているアプリケーションに関する情報を分散バス625に問い合わせる。そのようなプロトコルは、信号メッセージ(たとえば、通知)がポイントツーポイントメッセージであってもまたはブロードキャストメッセージであってもよく、メソッド呼出しメッセージ(たとえば、RPC)が同期メッセージであってもまたは非同期メッセージであってもよく、分散バス625(たとえば、「デーモン」バスプロセス)が様々なデバイス610、630、640間のメッセージルーティングに対処することができる、非同期通知およびリモートプロシージャ呼出し(RPC)を可能にすることができる。
【００７４】
一実施形態では、分散バス625は、様々なトランスポートプロトコル(たとえば、Bluetooth（登録商標）、TCP/IP、Wi-Fi、CDMA、GPRS、UMTSなど)によってサポートされてもよい。たとえば、一態様によれば、第1のデバイス610は、分散バスノード612と1つまたは複数のローカルエンドポイント614とを含んでもよく、分散バスノード612は、第1のデバイス610に関連するローカルエンドポイント614と第2のデバイス630および第3のデバイス640に関連するローカルエンドポイント634および644との間の、分散バス625を通じた(たとえば、第2のデバイス630および第3のデバイス640上の分散バスノード632および642を介した)通信を容易にすることができる。図7を参照しながら以下にさらに詳細に説明するように、分散バス625は、対称的マルチデバイスネットワークトポロジーをサポートしてもよく、デバイスドロップアウトの存在下でロバストな動作を可能にしてもよい。したがって、仮想分散バス625は、概して任意の下位トランスポートプロトコル(たとえば、Bluetooth（登録商標）、TCP/IP、Wi-Fiなど)とは無関係であってもよく、非セキュア(たとえば、オープン)からセキュア(たとえば、認証または暗号化)まで様々なセキュリティオプションを実現することができ、セキュリティオプションは、第1のデバイス610、第2のデバイス630、および第3のデバイス640間の自発的な接続を容易にしつつ、様々なデバイス610、630、640が互いの範囲に入るかまたは互いに近接したときに介入せずに使用され得る。
【００７５】
図7は、本開示の一態様による、第1のデバイス(「デバイスA」)710および第2のデバイス(「デバイスB」)730が通信するのに利用することができる近接度ベースの分散バスを確立するために発見可能なP2Pサービスを使用し得る例示的なメッセージシーケンス700を示す。概して、デバイスAは、デバイスBとの通信を要求してもよく、デバイスAは、そのような通信を容易にするのを助けることができるバスノード712に加えて通信の要求を出し得るローカルエンドポイント714(たとえば、ローカルアプリケーション、サービスなど)を含んでもよい。さらに、デバイスB 730は、ローカルエンドポイント714が、デバイスA 710上のローカルエンドポイント714とデバイスB 730上のローカルエンドポイント734との間の通信を容易にするのを助けることができるバスノード732に加えて通信を試み得るローカルエンドポイント734を含んでもよい。
【００７６】
一実施形態では、メッセージシーケンスステップ754において、バスノード712および732は適切な発見機構を実行してもよい。たとえば、Bluetooth（登録商標）、TCP/IP、UNIX（登録商標）などによってサポートされる接続を発見するための機構が使用されてもよい。メッセージシーケンスステップ756において、デバイスA 710上のローカルエンドポイント714は、バスノード712を通じて利用可能なエンティティ、サービス、エンドポイントなどに接続することを要求してもよい。一実施形態では、この要求は、ローカルエンドポイント714とバスノード712との間の要求応答プロセスを含んでもよい。メッセージシーケンスステップ758において、分散メッセージバスが、バスノード712をバスノード732に接続し、それによってデバイスA 710とデバイスB 730との間のP2P接続を確立するように形成されてもよい。一実施形態では、バスノード712とバスノード732との間に分散バスを形成するための通信は、近接度ベースのP2Pプロトコル(たとえば、接続された製品間の相互運用性を実現するように設計されたAllJoyn(登録商標)ソフトウェアフレームワークおよび近位ネットワークを動的に作成し近位P2P通信を容易にするための様々な製造業者によるソフトウェアアプリケーション)を使用して容易にされてもよい。代替として、一実施形態では、サーバ(図示せず)はバスノード712とバスノード732との間の接続を容易にしてもよい。さらに、一実施形態では、バスノード712とバスノード732との間に接続を形成する前に適切な認証機構が使用されてもよい(たとえば、クライアントが認証コマンドを送って認証対話を開始することができるSASL認証)。さらに、メッセージシーケンスステップ758において、バスノード712および732は、利用可能な他のエンドポイント(たとえば、図6のデバイスC 640上のローカルエンドポイント644)に関する情報を交換してもよい。そのような実施形態では、バスノードが維持する各ローカルエンドポイントが他のバスノードに通知されてもよく、この通知は、一意のエンドポイント名、トランスポートタイプ、接続パラメータ、または他の適切な情報を含んでもよい。
【００７７】
一実施形態では、メッセージシーケンスステップ760において、バスノード712およびバスノード732は、それぞれローカルエンドポイント734および714に関連付けられた得られた情報を使用して、様々なバスノードを通じて利用可能な得られた実エンドポイントを表すことのできる仮想エンドポイントを作成してもよい。一実施形態では、バスノード712上のメッセージルーティングでは、実エンドポイントおよび仮想エンドポイントを使用してメッセージを送信してもよい。さらに、リモートデバイス(たとえば、デバイスA 710)上に存在するあらゆるエンドポイントに1つのローカル仮想エンドポイントがあってもよい。さらに、そのような仮想エンドポイントは、分散バス(たとえば、バスノード712とバスノード732との間の接続)を介して送られたメッセージを多重化しならびに/あるいは多重化解除してもよい。一態様では、仮想エンドポイントは、実エンドポイントと同様にローカルバスノード712または732からメッセージを受信してもよく、分散バスを介してメッセージを転送してもよい。したがって、仮想エンドポイントは、エンドポイント多重化分散バス接続からローカルバスノード712および732へメッセージを転送してもよい。さらに、一実施形態では、リモートデバイス上の仮想エンドポイントに対応する仮想エンドポイントは、任意の時点で特定のトランスポートタイプの所望のトポロジーに対処するように再接続されてもよい。そのような態様では、UNIX（登録商標）ベースの仮想エンドポイントは、ローカルと見なされることがあり、したがって、再接続の候補とは見なされないことがある。さらに、TCPベースの仮想エンドポイントは、1つのホップルーティングに関して最適化されてもよい(たとえば、各バスノード712および732は互いに直接接続されてもよい)。さらに、Bluetooth（登録商標）ベースの仮想エンドポイントは、Bluetooth（登録商標）ベースのマスタがローカルマスタノードと同じバスノードであってもよい単一ピコネット(たとえば、1つのマスタおよびn個のスレーブ)に関して最適化されてもよい。
【００７８】
バスノード712とバスノード732は、メッセージシーケンスステップ762においてバス状態情報を交換してバスインスタンス同士をマージし、分散バスを介した通信を可能にしてもよい。たとえば、一実施形態では、バス状態情報は、周知から一意までのエンドポイント名のマッピング、整合規則、ルーティンググループ、または他の適切な情報を含んでもよい。一実施形態では、状態情報は、ローカルエンドポイント714および734が分散バスベースのローカル名を使用して通信するインターフェースを使用してバスノード712インスタンスとバスノード732インスタンスとの間で伝達されてもよい。別の態様では、バスノード712およびバスノード732の各々は、分散バスへのフィードバックを可能にする役割を果たすローカルバスコントローラを維持してもよく、バスコントローラは、グローバルメソッド、引数、信号、およびその他の情報を分散バスに関連する規格に変換してもよい。メッセージシーケンスステップ764において、バスノード712およびバスノード732は、上述のようなバスノードノード接続の間に導入されるあらゆる変化に関してそれぞれのローカルエンドポイント714および734に通知する信号を伝達(たとえば、ブロードキャスト)してもよい。一実施形態では、新しいおよび/または削除されたグローバル名および/または変換後の名前が、名前オーナー変更後信号によって示されてもよい。さらに、(たとえば、名前衝突に起因して)ローカルに失われることがあるグローバル名が名前喪失信号によって示されてもよい。さらに、名前衝突に起因して転送されるグローバル名が名前オーナー変更後信号によって示されてもよく、バスノード712およびバスノード732が切り離された場合および/またはときに消える一意の名前が名前オーナー変更後信号によって示されてもよい。
【００７９】
上記に使用されたように、周知の名前を使用してローカルエンドポイント714および734を一意に記述してもよい。一実施形態では、デバイスA 710とデバイスB 730との間で通信が行われるとき、異なる周知の名前タイプが使用されてもよい。たとえば、バスノード712が直接接続されるデバイスA 710に関連するバスノード712上にのみデバイスローカル名が存在してもよい。別の例では、すべての既知のバスノード712および732上にグローバル名が存在してもよく、すべてのバスセグメント上に存在してもよい名前のオーナーは1人だけである。言い換えれば、バスノード712とバスノード732が連結され、衝突が起こると、オーナーのうちの1人がグローバル名を失うことがある。さらに別の例では、クライアントが仮想バスに関連する他のバスノードに接続されるときに変換後の名前が使用されてもよい。そのような態様では、変換後の名前はアペンデッドエンドを含んでもよい(たとえば、グローバルに一意の識別子「1234」を有する分散バスに接続された周知の名前「org.foo」を有するローカルエンドポイント714は「G1234.org.foo」と見なされてもよい)。
【００８０】
メッセージシーケンスステップ766において、バスノード712およびバスノード732は、エンドポイントバストポロジーの変更について他のバスノードに通知するための信号を伝達(たとえば、ブロードキャスト)してもよい。その後、ローカルエンドポイント714からのトラフィックは、仮想エンドポイントを通過してデバイスB 730上の意図されるローカルエンドポイント734に達してもよい。さらに、動作中に、ローカルエンドポイント714とローカルエンドポイント734との間の通信はルーティンググループを使用してもよい。一態様では、ルーティンググループは、エンドポイントが信号、メソッド呼出し、またはエンドポイントのサブセットからの他の適切な情報を受信するのを可能にしてもよい。したがって、ルーティング名は、バスノード712または732に接続されたアプリケーションによって決定されてもよい。たとえば、P2Pアプリケーションは、アプリケーションに組み込まれた一意で周知のルーティンググループ名を使用してもよい。さらに、バスノード712および732は、ローカルエンドポイント714および734のルーティンググループへの登録および/または登録解除をサポートしてもよい。一実施形態では、ルーティンググループは、現在のバスインスタンスよりも後のインスタンスまで持続しなくてもよい。別の態様では、アプリケーションは、分散バスに接続するたびにアプリケーションの好ましいルーティンググループの登録をしてもよい。さらに、グループはオープンであっても(たとえば、任意のエンドポイントが参加してよい)またはクローズドであっても(たとえば、グループの作成者がグループを修正してもよい)よい。さらに、バスノード712または732は、他のリモートバスノードにルーティンググループエンドポイントの追加、削除、またはその他の変更を通知するための信号を送ってもよい。そのような実施形態では、バスノード712または732は、グループにメンバーが追加されならびに/あるいはグループからメンバーが削除されたときはいつでも他のグループメンバーにルーティンググループ変更信号を送ってもよい。さらに、バスノード712または732は、最初にルーティンググループから削除されることなく分散バスから切り離されるエンドポイントにルーティンググループ変更信号を送ってもよい。
【００８１】
多くのユーザは、複数のモバイルデバイスを有し、それらの各々にインストールされた同じアプリケーションを有する場合がある。たとえば、ユーザは、スマートフォン、ラップトップコンピュータ、およびタブレットコンピュータを有する場合があり、同じソーシャルネットワーキング、マイクロブロギング、および/または電子メールのアプリケーションを各デバイスにインストールする場合がある。通常、デバイス上のアプリケーションは、他のデバイスにおいて行われるそのアプリケーションのためのいかなる同期化とも関係なく、そのアプリケーション用のデータを同期する。たとえば、新しいデータがソーシャルネットワーキングアプリケーションに利用可能であるとき、ユーザのスマートフォン、ラップトップコンピュータ、およびタブレットコンピュータは、各々同じデータをダウンロードする。
【００８２】
この同期の重複はいくつかの問題を提示する。たとえば、デバイスが新しいデータをダウンロードするか、または新しいデータをポーリングする必要があるたびに、デバイスはアイドルモードから出て、共通制御チャネルをセットアップし、専用チャネルを要求し、次いで専用状態に入る必要があり得る。これによって電力が浪費され、このことは、バッテリ電池式デバイスについての重要な問題点である。各デバイスに同じデータをダウンロードすることは、帯域幅の浪費でもある。
【００８３】
したがって、本開示の様々な態様は、ユーザの様々なデバイス間の協調を可能にして、データをインテリジェントに同期し、デバイスの帯域幅および電力使用量を最小化する。
【００８４】
図8を参照して本開示の例示的な態様が記載される。図8は、たとえば、図2Aおよび図2Bに示されたユーザデバイスであり得る、ユーザデバイス810〜840の例示的なP2Pネットワーク800を示す。ユーザデバイス810〜840は、たとえば、図5から図7を参照して上述されたように、通信してP2Pネットワーク800を形成する。図8の例では、ユーザデバイスは、スマートフォン810と、ラップトップコンピュータ820と、デスクトップコンピュータ830と、タブレットコンピュータ840とを含む。ユーザデバイス810〜840は、様々なワイヤレスリンクを介して互いに接続される場合がある。たとえば、スマートフォン810は、Bluetooth(登録商標)接続などの近距離ワイヤレス接続を介してラップトップコンピュータ820に接続される場合があり、ラップトップコンピュータ820、デスクトップコンピュータ830、およびタブレットコンピュータ840は、Wi-Fi接続などのワイヤレスローカルエリアネットワーク接続を介して互いに接続される場合がある。
【００８５】
ユーザデバイス810〜840は、各々、同じソーシャルネットワーキングアプリケーションおよび/または同じマイクロブロギングアプリケーションなどの、同じアプリケーションのうちの1つまたは複数を実行している場合がある。ユーザは、たとえば、同じユーザネームとパスワードなどの同じユーザ認証情報を用いて、これらのアプリケーションの各々にログインしている場合がある。そのようなアプリケーションは、本明細書では「共通」アプリケーションと呼ばれる。ユーザデバイス810〜840は、P2Pインターフェースを介して互いに通信することによって、どのアプリケーションを共通して有するかを決定することができる。
【００８６】
P2Pネットワーク800を確立した後、ユーザデバイス810〜840は、互いに通信して、ある特定の基準に基づいて「アクティブデバイス」になるべき1つのデバイスを選ぶ。たとえば、現在のユーザアクティビティを検出するか、スリープモードではないか、少なくとも1つの実行中のアプリケーションを有するか、またはそのディスプレイがオンであるデバイスは、「アクティブデバイス」として選ばれ得る。スリープモードにおいて、デバイスはどのアプリケーションも実行していない場合があるか、またはバックグラウンドモードで実行している場合があり、ディスプレイはオフであり得る。そのため、デバイスがスリープモードであると判断することは、デバイスが実行中のアプリケーションを有しておらず、かつ/またはディスプレイがオフであると判断することを含む場合がある。
【００８７】
アクティブデバイスが存在しない場合、または2つ以上のアクティブデバイスが存在する場合、最も高い利用可能なバッテリ充電を有するデバイス、または電源に接続されたデバイスが、アクティブデバイスとして選ばれ得る。アクティブデバイスが後でアクティブデバイスの基準を満たさなくなった場合、この状態変化はP2Pネットワーク800内の他のデバイスに通信され、アクティブデバイスの基準を使用して新しいアクティブデバイスが選ばれる。例示のためにすぎないが、図8の例では、アクティブデバイスはスマートフォン810であり得る。
【００８８】
図9は、様々な基準に基づいてアクティブデバイスを選ぶための例示的なフローを示す。図9に示されたフローは、各ユーザデバイス810〜840によって実施される場合がある。910において、デバイス810〜840の各々またはいずれかは、アクティブデバイスであるべきか否かを判定するために周期的にポーリングする。920において、デバイスは現在のユーザアクティビティがあるか否かを判定する。現在のユーザアクティビティがない場合、930において、デバイスはスリープモードでないか否かを判定する。デバイスがスリープモードでないか否かの判定は、少なくとも1つの実行中のアプリケーションが存在するか否か、かつ/またはディスプレイがオンであるか否かを判定することを含む場合がある。たとえば、デバイスが少なくとも1つのアプリケーションを実行している、かつ/またはディスプレイがオンである場合、デバイスはスリープモードではないと判定することができ、逆も同様である。代替として、たとえば、930および940における判定の間で行われる別個の判定(図示せず)が存在する場合がある。デバイスがスリープモードである場合(、かつ代替または追加として、実行中のアプリケーションが存在せず、ディスプレイがオフである場合)、940において、デバイスは、現在充電中であるか否かを判定する。判定920〜940のいずれかの結果が「はい」である場合、フローは950に進む。そうではなく、判定920〜940の各々の結果が「いいえ」である場合、フローは970に進む。
【００８９】
950において、現在のユーザアクティビティがある場合、またはデバイスがスリープモードではない場合、またはデバイスが現在充電中である場合、デバイスは、そのバッテリレベルがしきい値よりも大きいか否かを判定する。そうである場合、960において、デバイスは、デバイスが「アクティブデバイス」であると判断し、この状態をP2Pネットワーク800内の他のデバイスにブロードキャストする。950において、そのバッテリが充電中ではないとデバイスが判定した場合、フローは970に進む。デバイスがバッテリ式ではない場合、940および950における判定は省略することができ、フローは960に進むことができる。
【００９０】
970において、現在のユーザアクティビティがない場合、およびデバイスがスリープモードである場合、およびデバイスが現在充電中ではない場合、デバイスは、デバイスが現在の「アクティブデバイス」であるか否かを判定する。そうでない場合、フローは910に戻り、デバイスは次の周期的ポーリングまで待機する。しかしながら、そうである場合、980において、デバイスはその状態を「非アクティブデバイス」に設定し、この状態をP2Pネットワーク800内の他のデバイスにブロードキャストする。
【００９１】
再び図8を参照すると、ひとたび選ばれると、アクティブデバイス、たとえば図8の例におけるスマートフォン810のみが共通アプリケーション(すなわち、同じユーザ認証情報を用いてログインされた各デバイスに共通のアプリケーション)用の新しいデータについてポーリングし、新しいデータをダウンロードするために対応するリモートサーバと同期する。残りのデバイス、たとえば図8の例におけるユーザデバイス820〜840は、リモートサーバまたはアクティブデバイスのいずれからも、共通アプリケーション用の新しいデータをポーリングしない。しかしながら、それらは、共通アプリケーションではないアプリケーション用のデータを同期し続けることができる。
【００９２】
共通アプリケーションのいずれかに利用可能な新しいデータが存在するとき、アクティブデバイス(たとえば、スマートフォン810)は、新しいデータをダウンロードし、P2Pインターフェースを介して残りのデバイス(たとえば、デバイス820〜840)にそれを「プッシュ」する。他のユーザデバイス820〜840は、対応するリモートサーバではなく、アクティブデバイス810から直接新しいデータを同期する。アクティブデバイス810は、P2Pインターフェースを介して標準マルチキャストプロトコルを使用して、他のユーザデバイス820〜840と新しいデータを同期することができる。
【００９３】
このようにして、ユーザデバイス820〜840は、少なくとも2つの方法でそれらの電力消費を低減することができる。第1に、デバイス820〜840は、共通アプリケーション用の新しいデータが存在するときのみ起きる。共通アプリケーションの各々の同期設定に従って、それらは周期的に起きる必要はない。第2に、ユーザデバイス810〜840は、マルチキャストプロトコルを使用して新しいデータを同期することができる。これは、各デバイス810〜840が単独でネットワークと同期し、新しいデータをダウンロードするよりも電力効率が良い。加えて、本開示の様々な態様は、ただ1つのデバイス、アクティブデバイス810が共通アプリケーション用のデータを同期するので、ネットワーク帯域幅の不要な使用を低減する。
【００９４】
図10は、本開示の少なくとも1つの態様による例示的なフローを示す。図10に示されたフローは、ユーザデバイス810〜840のうちの1つなどのユーザデバイスによって実施される場合がある。図10のフローでは、ユーザデバイスは非アクティブユーザデバイスである。
【００９５】
1010において、ユーザデバイスは、1つまたは複数の他のユーザデバイスとワイヤレスP2Pネットワークを確立する。
【００９６】
1020において、ユーザデバイスは、ユーザデバイスおよび1つまたは複数の他のユーザデバイスが、各々1つまたは複数のアプリケーションを共通して有すると判断する。すなわち、ユーザデバイスおよび1つまたは複数の他のユーザデバイスは、各々、インストールされた同じ1つまたは複数のアプリケーションを有し、同じユーザがそれらのアプリケーション用の同じログオン認証情報を使用して、各アプリケーションにログインしている。
【００９７】
1030において、ユーザデバイスは、ユーザデバイスがアクティブデバイスではないと判断する。この判断は、ユーザデバイス上に現在のユーザアクティビティが存在しないこと、ユーザデバイス上に少なくとも1つの実行中のアプリケーションが存在しないこと、ユーザデバイスがスリープモードであること、およびユーザデバイスのディスプレイが電源オフであることの判断を含む場合がある。代替として、ユーザデバイスがアクティブユーザデバイスではないと判断することは、図9の920〜940におけるように、ユーザデバイス上に現在のユーザアクティビティが存在しないこと、ユーザデバイスがスリープモードであること、およびユーザデバイスが現在充電中ではないことの判断を含む場合がある。その場合、ユーザデバイスは、図9の970におけるように、ユーザデバイスが現在のアクティブデバイスであるか否かを判定する。ユーザデバイスが現在のアクティブユーザデバイスであると判定することに基づいて、ユーザデバイスは、ユーザデバイスがアクティブデバイスではないと判断する。
【００９８】
1040において、ユーザデバイスがアクティブデバイスではないと判定することに応答して、ユーザデバイスは、図9の980におけるように、ユーザデバイスがアクティブユーザデバイスではないことを示す通知を1つまたは複数の他のユーザデバイスに送信する。
【００９９】
1050において、ユーザデバイスは、別のユーザデバイスがアクティブデバイスであることの通知を受信する。図9を参照して上記で説明されたように、アクティブユーザデバイスは、現在のユーザアクティビティを検出するか、スリープモードではないか、または現在充電中であるユーザデバイスであり得る。1030および1050は別々に示されているが、ユーザデバイスは、別のデバイスがアクティブユーザであることの通知を受信することによって、ユーザデバイスがアクティブデバイスではないと判断することができる。同様に、1050は1040の後に行われるように示されているが、1040および1050は同時に、または逆の順序で行われる場合がある。
【０１００】
1060において、ユーザデバイスは、1つまたは複数の共通アプリケーション用の更新されたアプリケーションデータについてリモートサーバにポーリングすることを禁止される。同様に、ユーザデバイスは、1つまたは複数の共通アプリケーション用の更新されたアプリケーションデータについてアクティブデバイスにポーリングすることを禁止される。
【０１０１】
1070において、ユーザデバイスは、1つまたは複数の共通アプリケーション用の更新されたアプリケーションデータをアクティブデバイスから受信する。ユーザデバイスは、ワイヤレスP2Pネットワークを介してアクティブデバイスから、更新されたアプリケーションデータを受信することができる。アクティブユーザデバイスは、リモートサーバと同期することによって、更新されたアプリケーションデータを受信することができる。
【０１０２】
図11は、本開示の少なくとも1つの態様による例示的なフローを示す。図11に示されたフローは、ユーザデバイス810〜840のうちの1つなどのユーザデバイスによって実施される場合がある。図11のフローでは、ユーザデバイスはアクティブユーザデバイスである。
【０１０３】
1110において、ユーザデバイスは、1つまたは複数の他のユーザデバイスとワイヤレスP2Pネットワークを確立する。
【０１０４】
1120において、ユーザデバイスは、ユーザデバイスおよび1つまたは複数の他のユーザデバイスが、各々1つまたは複数のアプリケーションを共通して有すると判断する。すなわち、ユーザデバイスおよび1つまたは複数の他のユーザデバイスは、各々、インストールされた同じ1つまたは複数のアプリケーションを有し、同じユーザが同じアプリケーション用の同じログオン認証情報を使用して、各アプリケーションにログインしている。
【０１０５】
1130において、ユーザデバイスは、ユーザデバイスがアクティブデバイスであると判断する。この判断は、ユーザデバイス上に現在のユーザアクティビティが存在すること、ユーザデバイス上に少なくとも1つの実行中のアプリケーションが存在すること、ユーザデバイスがスリープモードではないこと、またはユーザデバイスのディスプレイが電源オンであることの判断を含む。この判断は、現在のユーザアクティビティを検出するか、少なくとも1つの実行中のアプリケーションを有するか、スリープモードではないか、または電源オンのディスプレイを有する別のユーザデバイスよりも高いバッテリレベルをユーザデバイスが有することの判断を含む場合もある。この判断は、ユーザデバイスが電源に接続されていることの判断を含む場合もある。
【０１０６】
別の態様では、ユーザデバイスがアクティブデバイスであると判断することは、図9の920〜940におけるように、ユーザデバイス上に現在のユーザアクティビティが存在すること、ユーザデバイスがスリープモードではないこと、またはユーザデバイスが現在充電中であることの判断を含む場合がある。その場合、ユーザデバイスは、図9の950におけるように、そのバッテリレベルがしきい値を上回るか否かを判定する。ユーザデバイスのバッテリレベルがしきい値を上回ると判定することに基づいて、ユーザデバイスは、ユーザデバイスがアクティブデバイスであると判断する。
【０１０７】
1140において、ユーザデバイスは、ユーザデバイスがアクティブデバイスであることを1つまたは複数の他のユーザデバイスに通知する。次いで、1つまたは複数の非アクティブデバイスは、1つまたは複数の共通アプリケーション用の更新されたアプリケーションデータについてリモートサーバにポーリングすることを禁止される。
【０１０８】
1150において、ユーザデバイスは、1つまたは複数の共通アプリケーション用の更新されたアプリケーションデータをリモートサーバから受信する。
【０１０９】
1160において、更新されたアプリケーションデータを受信することに応答して、ユーザデバイスは、1つまたは複数の他のデバイスに更新されたアプリケーションデータを送信(プッシュ)する。送信は、P2Pネットワークを介して実行される場合がある。送信は、マルチキャストインターフェースを介して1つまたは複数の他のデバイスに更新されたアプリケーションデータを送信することを含む場合がある。
【０１１０】
図12は、一連の相互に関係する機能モジュールとして表された例示的なIoTデバイス装置1200を示す。1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するためのモジュール1202は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。ユーザデバイスがアクティブユーザデバイスであるか否かを判定するためのモジュール1204は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのプロセッサ208などのプロセッサに相当する場合がある。1つまたは複数のユーザデバイスに通知を送信するためのモジュール1206は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信するためのモジュール1208は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。
【０１１１】
図13は、一連の相互に関係する機能モジュールとして表された例示的なIoTデバイス装置1300を示す。1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するためのモジュール1302は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。ユーザデバイスがアクティブユーザデバイスであるか否かを判定するためのモジュール1304は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのプロセッサ208などのプロセッサに相当する場合がある。1つまたは複数のユーザデバイスに通知を送信するためのモジュール1306は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信するためのモジュール1308は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信するためのモジュール1310は、少なくともいくつかの態様では、たとえば、本明細書において説明された図2Aのトランシーバ206などのトランシーバに相当する場合がある。
【０１１２】
図12および図13のモジュールの機能は、本明細書の教示と矛盾しない様々な方法で実装される場合がある。いくつかの設計では、これらのモジュールの機能は、1つまたは複数の電気構成要素として実装される場合がある。いくつかの設計では、これらのブロックの機能は、1つまたは複数のプロセッサ構成要素を含む処理システムとして実装される場合がある。いくつかの設計では、これらのモジュールの機能は、たとえば、1つまたは複数の集積回路(たとえば、ASIC)の少なくとも一部分を使用して実装される場合がある。本明細書において説明されたように、集積回路は、プロセッサ、ソフトウェア、他の関連する構成要素、またはそれらの何らかの組合せを含む場合がある。したがって、様々なモジュールの機能は、たとえば、集積回路の様々なサブセットとして、ソフトウェアモジュールのセットの様々なサブセットとして、またはそれらの組合せとして実装される場合がある。また、(たとえば、集積回路の、および/またはソフトウェアモジュールのセットの)所与のサブセットは、2つ以上のモジュールに関する機能の少なくとも一部分を提供できることを諒解されたい。
【０１１３】
加えて、図12および図13によって表される構成要素および機能、ならびに本明細書に記載された他の構成要素および機能は、任意の適切な手段を使用して実装される場合がある。そのような手段も、少なくとも部分的に、本明細書において教示された対応する構造を使用して実装される場合がある。たとえば、図12および図13の「ためのモジュール」構成要素とともに上述された構成要素も、同様に指定された「ための手段」機能に相当する場合がある。したがって、いくつかの態様では、そのような手段のうちの1つまたは複数は、プロセッサ構成要素、集積回路、または本明細書において教示された他の適切な構造のうちの1つまたは複数を使用して実装される場合がある。
【０１１４】
情報および信号が多種多様な異なる技術および技法のいずれかを使用して表すことができることを、当業者は理解されよう。たとえば上記説明全体を通して参照することができるデータ、命令、指令、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁界または粒子、光学場または粒子、あるいはそれらの任意の組合せによって表すことができる
【０１１５】
さらに、本明細書で開示する態様に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、一般的にそれらの機能性に関してこれまで説明されてきた。そのような機能性がハードウェアとして実現されるか、またはソフトウェアとして実現されるかは、具体的な適用例および全体的なシステムに課される設計制約によって決まる。当業者は、説明される機能を具体的な応用形態ごとに様々な方法で実現することができるが、そのような実現の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１１６】
本明細書において開示された態様と関連して記載された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書に記載された機能を実行するように設計されたそれらの任意の組合せを用いて、実装または実行される場合がある。汎用プロセッサを、マイクロプロセッサとすることができるが、代替案では、プロセッサを、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装され得る。
【０１１７】
本明細書において開示する態様に関連して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接具現され得る。ソフトウェアモジュールは、RAM、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、そこに情報を書込みできるようにプロセッサに結合される。代替案では、記憶媒体は、プロセッサに一体とされ得る。プロセッサおよび記憶媒体は、ASIC内に存在し得る。ASICはIoTデバイス内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別の構成要素として存在し得る。
【０１１８】
1つまたは複数の例示的な態様では、述べられる機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで、実施され得る。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、または、コンピュータ可読媒体を介して送信される場合がある。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできるすべての使用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク(disc)ストレージ、磁気ディスク(disk)ストレージもしくは他の磁気ストレージデバイス、あるいは命令もしくはデータ構造の形で所望のプログラムコードを担持しまたは記憶するのに使用でき、コンピュータによってアクセスできる任意の他の媒体を含むことができる。また、任意の接続は、適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースからソフトウェアが送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、CD、レーザディスク(disc)、光ディスク(disc)、DVD、フロッピー（登録商標）ディスク(disk)およびBlu-ray（登録商標）ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１１９】
上記の開示は本開示の例示的な態様を示すが、添付の特許請求の範囲によって規定される本開示の範囲から逸脱することなく、本明細書で様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本開示の態様による方法クレームの機能、ステップおよび/または動作は、特定の順序で実施される必要はない。さらに、本開示の要素は、単数形で記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が考えられる。
【符号の説明】
【０１２０】
100A  ワイヤレス通信システム
100B  ワイヤレス通信システム
100C  ワイヤレス通信システム
100D  ワイヤレス通信システム
100E  ワイヤレス通信システム
105  パッシブIoTデバイス
108  エアインターフェース
109  直接有線接続
110  テレビジョン、IoTデバイス
112  屋外空調機、IoTデバイス
114  自動温度調節器、IoTデバイス
116  冷蔵庫、IoTデバイス
116A  IoTデバイス
116B  IoTデバイス
118  洗濯機および乾燥機、IoTデバイス
120  コンピュータ、IoTデバイス
122A  IoTデバイス
122B  IoTデバイス
124A  IoTデバイス
124B  IoTデバイス
125  アクセスポイント
130  スーパーバイザデバイス
140  IoTスーパーエージェント
140A  IoTスーパーエージェント
140B  IoTスーパーエージェント
145  ゲートウェイ機能
152  アプリケーションレイヤ
154  CMPレイヤ
156  トランスポートレイヤ
158  物理レイヤ
160  IoTデバイスグループ
160A  IoTデバイスグループ
160B  IoTデバイスグループ
170  IoTサーバ
175  インターネット
180  リソース
200A  IoTデバイス
200B  パッシブIoTデバイス
202  プラットフォーム
206  トランシーバ
208  プロセッサ
212  メモリ
214  入力/出力(I/O)インターフェース
222  電源ボタン
224A  制御ボタン
224B  制御ボタン
226  ディスプレイ
300  通信デバイス
320  情報を提示するように構成されたロジック
500  ワイヤレス通信ネットワーク
510  基地局
800  P2Pネットワーク
810  スマートフォン、ユーザデバイス
820  ラップトップコンピュータ、ユーザデバイス
830  デスクトップコンピュータ、ユーザデバイス
840  タブレットコンピュータ、ユーザデバイス
1200  IoTデバイス装置
1202  1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するためのモジュール
1204  ユーザデバイスがアクティブユーザデバイスであるか否かを判定するためのモジュール
1206  1つまたは複数のユーザデバイスに通知を送信するためのモジュール
1208  ユーザデバイスとアクティブユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをアクティブユーザデバイスから受信するためのモジュール
1300  IoTデバイス装置
1302  1つまたは複数のユーザデバイスとワイヤレスピアツーピアネットワークを確立するためのモジュール
1304  ユーザデバイスがアクティブユーザデバイスであるか否かを判定するためのモジュール
1306  1つまたは複数のユーザデバイスに通知を送信するためのモジュール
1308  ユーザデバイスと1つまたは複数のユーザデバイスの両方にインストールされた1つまたは複数のアプリケーション用の更新されたアプリケーションデータをリモートサーバから受信するためのモジュール
1310  1つまたは複数のユーザデバイスに更新されたアプリケーションデータを送信するためのモジュール
【図１Ａ】
0006453338.tif 000002
【図１Ｂ】
0006453338.tif 000003
【図１Ｃ】
0006453338.tif 000004
【図１Ｄ】
0006453338.tif 000005
【図１Ｅ】
0006453338.tif 000006
【図２Ａ】
0006453338.tif 000007
【図２Ｂ】
0006453338.tif 000008
【図３】
0006453338.tif 000009
【図４】
0006453338.tif 000010
【図５】
0006453338.tif 000011
【図６】
0006453338.tif 000012
【図７】
0006453338.tif 000013
【図８】
0006453338.tif 000014
【図９】
0006453338.tif 000015
【図１０】
0006453338.tif 000016
【図１１】
0006453338.tif 000017
【図１２】
0006453338.tif 000018
【図１３】
0006453338.tif 000019