IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7412564オペレーティングシステムレベル分散型アンビエントコンピューティング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-28
(45)【発行日】2024-01-12
(54)【発明の名称】オペレーティングシステムレベル分散型アンビエントコンピューティング
(51)【国際特許分類】
   H04L 67/51 20220101AFI20240104BHJP
【FI】
H04L67/51
【請求項の数】 20
(21)【出願番号】P 2022537626
(86)(22)【出願日】2020-11-05
(65)【公表番号】
(43)【公表日】2023-02-28
(86)【国際出願番号】 US2020070752
(87)【国際公開番号】W WO2021127671
(87)【国際公開日】2021-06-24
【審査請求日】2022-10-11
(31)【優先権主張番号】62/949,929
(32)【優先日】2019-12-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/727,349
(32)【優先日】2019-12-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ザマラト,マルコ
(72)【発明者】
【氏名】ゲイツ,カラ
(72)【発明者】
【氏名】バンサル,サミール
(72)【発明者】
【氏名】カペロニス,クリスーラ
(72)【発明者】
【氏名】マラヒ,エバン
【審査官】木村 雅也
(56)【参考文献】
【文献】特開2019-145090(JP,A)
【文献】特表2019-526095(JP,A)
【文献】特表2020-532027(JP,A)
【文献】米国特許出願公開第2016/011910(US,A1)
【文献】米国特許出願公開第2018/358009(US,A1)
【文献】米国特許第8171137(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/51
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
コンピューティングデバイスが、ユーザ環境に関連付けられる複数の追加のデバイスを検出することと、
前記複数の追加のデバイスについて、前記複数の追加のデバイスに関連付けられる複数の能力を判断することと、
前記コンピューティングデバイスが、前記複数の追加のデバイスを分散型コンピューティングシステムとして構成することとを含み、前記複数の追加のデバイスは、前記複数の能力のうちの少なくとも1つおよび前記ユーザ環境内のデバイス位置に対応し、前記方法はさらに、
前記コンピューティングデバイスにおいて、タスクを実行する要求を受信することと、
前記コンピューティングデバイスが、前記複数の追加のデバイスのうちのどれが前記タスクを実行することができるかを判断することと、
前記複数の追加のデバイスのうち、前記タスクを実行することが可能であると判断された少なくとも1つを選択することとを含み、前記選択することは、少なくとも、
前記複数の追加のデバイスの、前記コンピューティングデバイス、または前記タスクを実行する前記要求に関連付けられるユーザに対する、判断された近接度、
前記複数の追加のデバイスにおいてそれぞれのデバイス上で実行する、判断されたオペレーティングシステム、および
前記複数の追加のデバイスにおいてそれぞれのデバイス上で利用可能な、少なくとも1つの判断された、センサに基づく能力に基づき、前記方法はさらに、
前記コンピューティングデバイスが、前記タスクを実行するよう前記複数の追加のデバイスのうちの前記選択された少なくとも1つをトリガすることを含む、コンピュータにより実現される方法。
【請求項2】
前記複数の追加のデバイスのうちの前記少なくとも1つの選択は、さらに、前記ユーザ環境に関連付けられる検出された情報に基づき、前記ユーザ環境は、前記コンピューティングデバイスおよび前記複数の追加のデバイスを含む物理的建物として規定される、請求項1に記載のコンピュータにより実現される方法。
【請求項3】
前記検出された情報は、前記ユーザ環境における検出されたユーザアクティビティレベル、前記ユーザ環境における検出された音声要求、または前記ユーザ環境に関連付けられる検出された視覚画像に対応する、請求項2に記載のコンピュータにより実現される方法。
【請求項4】
さらに、前記コンピューティングデバイスが、前記タスクに対応する出力を生成するために前記複数の追加のデバイスにおいて第2のデバイスを選択することを含み、前記第2のデバイスの前記選択は、前記複数の追加のデバイスのうちの前記選択された少なくとも1つが前記タスクに対応する出力を生成し通信するのに適していないと判断することに少なくとも基づく、請求項1~3のいずれか1項に記載のコンピュータにより実現される方法。
【請求項5】
さらに、前記コンピューティングデバイスが、前記タスクに対応する出力を生成するために前記複数の追加のデバイスのうちの第2のデバイスを選択することを含み、前記第2のデバイスの前記選択は、前記複数の追加のデバイスのうちの前記少なくとも1つの追加のデバイスの位置が、前記タスクを実行する前記要求に関連付けられる前記ユーザの事前規定された視覚範囲または事前規定された音声範囲の外にあると判断することに少なくとも基づく、請求項1~4のいずれか1項に記載のコンピュータにより実現される方法。
【請求項6】
前記タスクを実行するよう前記選択されたデバイスをトリガすることは、視覚および音声出力を生成することを含み、前記視覚および音声出力は、事前規定された期間外の時刻を判断することに応答して、前記複数の追加のデバイスのうちの別の追加のデバイス上に提供される、請求項1~5のいずれか1項に記載のコンピュータにより実現される方法。
【請求項7】
前記コンピューティングデバイスが、前記タスクを実行するよう前記選択されたデバイスをトリガすることは、前記コンピューティングデバイスに関連付けられるオペレーティングシステムを介して、前記選択された少なくとも1つの追加のデバイス上で実行しているそれぞれのオペレーティングシステムと通信している少なくとも1つのサービスにアクセスすることを含み、前記サービスは、前記受信されたタスクを前記複数の追加のデバイスにおける少なくとも1つの他のデバイスにディスパッチするよう構成される、請求項1~6のいずれか1項に記載のコンピュータにより実現される方法。
【請求項8】
前記タスクを実行するために前記複数の追加のデバイスのうちの前記少なくとも1つを選択することは、
前記複数の追加のデバイスのうちの前記少なくとも1つに関連付けられる検出された情報および記憶された情報に基づいて、前記ユーザ環境についてコンテキストを判断することを含む、請求項1~7のいずれか1項に記載のコンピュータにより実現される方法。
【請求項9】
前記検出された情報は、カレンダー情報を含む、請求項8に記載のコンピュータにより実現される方法。
【請求項10】
コンピュータに命令を実行させるためのプログラムであって、前記命令は、実行されると、少なくとも1つのプロセッサに、
コンピューティングデバイスによって、ユーザ環境に関連付けられる複数の追加のデバイスを検出させ、
前記複数の追加のデバイスについて、それぞれの追加のデバイスの各々に関連付けられる複数の能力を判断させ、
前記コンピューティングデバイスによって、前記複数の追加のデバイスを分散型コンピューティングシステムとして構成させるよう構成され、前記複数の追加のデバイスは、前記複数の能力のうちの少なくとも1つおよび前記ユーザ環境内のデバイス位置に対応し、前記命令は、さらに、実行されると、前記少なくとも1つのプロセッサに、
前記コンピューティングデバイスにおいて、タスクを実行する要求を受信させ、
前記タスクの実行の完了が前記複数の能力のうちの2つ以上の使用を示すと判断することに応答して、
前記分散型コンピューティングシステム内で、前記複数の追加のデバイスのうちのどれが前記タスクを実行することができるかを判断させ、
前記タスクを完了するために前記2つ以上の能力の実行を共有するために、前記複数の追加のデバイスにおいて少なくとも2つのデバイスを選択させるよう構成され、前記少なくとも2つのデバイスを選択することは、少なくとも、前記コンピューティングデバイスまたは前記タスクを実行する前記要求に関連付けられるユーザに対する前記2つのデバイスの判断された近接度に基づき、前記命令は、さらに、実行されると、前記少なくとも1つのプロセッサに、
前記タスクを実行するよう、前記コンピューティングデバイスによって、前記選択された少なくとも2つのデバイスをトリガさせるよう構成される、プログラム
【請求項11】
前記少なくとも2つのデバイスを選択することは、前記タスクの複数の別個の部分を実行するために通信するよう前記少なくとも2つのデバイスを構成することを含む、請求項10に記載のプログラム
【請求項12】
前記少なくとも2つのデバイスを選択することは、
前記複数の追加のデバイスのうちのどれが、前記タスクを完了するために前記2つ以上の能力を実行するよう構成されるコンポーネントを含むかを判断することと、
前記少なくとも2つのデバイスを、前記タスクを完了するために通信するよう構成することとを含む、以下を含む、請求項10または11に記載のプログラム
【請求項13】
前記2つのデバイスのうちの少なくとも1つに関連付けられる少なくとも1つの能力は、前記少なくとも2つのデバイスのうちの他方に関連付けられる能力を拡張する、請求項10~12のいずれか1項に記載のプログラム
【請求項14】
前記タスクの前記実行は、前記分散型コンピューティングシステム内の前記デバイスのためにインターネット接続がない場合にトリガされる、請求項10~13のいずれか1項に記載のプログラム
【請求項15】
システムであって、
ディスプレイと、
メモリと、
前記メモリに結合される少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
コンピューティングデバイスによって、ユーザ環境に関連付けられる複数の追加のデバイスを検出し、
前記複数の追加のデバイスについて、前記複数の追加のデバイスのうちの少なくとも1つに関連付けられる複数の能力を判断し、
前記コンピューティングデバイスによって、前記複数の追加のデバイスを分散型コンピューティングシステムとして構成するよう構成され、前記複数の追加のデバイスは、前記複数の能力のうちの少なくとも1つおよび前記ユーザ環境内のデバイス位置に対応し、前記少なくとも1つのプロセッサはさらに、
前記コンピューティングデバイスにおいて、タスクを実行する要求を受信し、
前記コンピューティングデバイスによって、前記複数の追加のデバイスのうちのどれが前記タスクを実行することができるかを判断し、
前記複数の追加のデバイスのうち、前記タスクを実行することができると判断される少なくとも1つを選択するよう構成され、前記選択は、前記コンピューティングデバイスまたは前記タスクを実行する前記要求に関連付けられるユーザに対する前記複数の追加のデバイスの判断された近接度に少なくとも基づき、前記少なくとも1つのプロセッサはさらに、
前記タスクを実行するよう、前記コンピューティングデバイスによって、前記複数の追加のデバイスのうちの前記選択された少なくとも1つをトリガするよう構成される、システム。
【請求項16】
前記複数の追加のデバイスを分散型コンピューティングシステムとして構成することは、
前記複数の追加のデバイスについて、前記ユーザ環境および前記コンピューティングデバイスに関連付けられるポリシーおよびユーザ選好を有効にすることと、
前記ユーザ環境内で識別されていないデバイスを検出することに応答して、前記識別されていないデバイスに対してセキュリティチェックを実行し、前記識別されていないデバイスが前記セキュリティチェックに合格した場合に、前記識別されていないデバイスに対して前記ポリシーおよびユーザ選好を構成することとを含む、請求項15に記載のシステム。
【請求項17】
前記タスクを実行するよう選択された前記デバイスに対してユーザ選択制御を有効にするために、前記コンピューティングデバイスの前記ディスプレイ上にグラフィカル制御要素を表示することをさらに備える、請求項15または16に記載のシステム。
【請求項18】
さらに、前記タスクに対応する出力を生成するために、前記コンピューティングデバイスによって前記複数の追加のデバイスのうちの第2のデバイスを選択することを含み、前記第2のデバイスの前記選択は、前記複数の追加のデバイスのうちの前記少なくとも1つの追加のデバイスの位置が、前記タスクを実行する前記要求に関連付けられるユーザの事前規定された視覚範囲または事前規定された音声範囲の外にあると判断することに少なくとも基づく、請求項15~17のいずれか1項に記載のシステム。
【請求項19】
前記タスクを実行するよう、前記選択されたデバイスをトリガすることは、前記コンピューティングデバイスが前記タスクを実行する前記受信された要求に関連付けられるユーザに対して閾値距離内にあると判断したことに応答して、視覚出力を生成することを含み、前記視覚出力は、前記コンピューティングデバイスの前記ディスプレイ上に提供される、請求項15~18のいずれか1項に記載のシステム。
【請求項20】
前記タスクを実行するよう、前記コンピューティングデバイスによって、前記選択されたデバイスをトリガすることは、前記コンピューティングデバイスに関連付けられるオペレーティングシステムを介して、前記選択された少なくとも1つの追加のデバイスと通信している少なくとも1つのサービスにアクセスすることを含み、前記サービスは、前記受信されたタスクを前記複数の追加のデバイスにおける少なくとも1つの他のデバイスにディスパッチするよう構成される、請求項15~19のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本出願は、2019年12月18日に提出された「OPERATING SYSTEM LEVEL DISTRIBUTED AMBIENT COMPUTING」と題される米国仮特許出願第62/949,929号の利益を主張する、2019年12月26日に提出された「OPERATING SYSTEM LEVEL DISTRIBUTED AMBIENT COMPUTING」と題される米国非仮特許出願第16/727,349号に対する優先権を主張し、それらの各々は参照によりその全体が本明細書に組み込まれる。
【0002】
本出願は、2019年12月18日に提出された「OPERATING SYSTEM LEVEL DISTRIBUTED AMBIENT COMPUTING」と題される米国仮特許出願第62/949,929号の利益を主張し、それは、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0003】
背景
従来の電子デバイスは、オペレーティングシステムを用いてソフトウェアを実行することができる。例えば、携帯電話デバイスは、デバイス上のハードウェアコンポーネント間で通信する専用オペレーティングシステムを用いてハードウェアおよびオンボードソフトウェアを動作させるよう構成され得る。そのようなオペレーティングシステムは、典型的には、デバイス上でソフトウェアおよびハードウェア機能を制御および管理することが意図される。他の電子デバイスは、同じ態様で動作し、各それぞれの別個のデバイスについて、それぞれのオンボードデバイスオペレーティングシステムを用いて、ソフトウェアを実行し得る。
【発明の概要】
【0004】
概要
本明細書に説明されるシステムおよび方法は、規定されたロケーション、建物、複合施設等内において利用可能なデバイスを包含および/またはそれにアクセスすることができる分散型アンビエントコンピューティングシステムの交換可能モジュールとしてコンピューティングデバイスおよび/または他の電子デバイスを利用する分散型コンピューティング環境(例えば、システム)を生成するように機能してもよい。分散型アンビエントコンピューティングシステムは、複数のデバイスのグローバルビューを有するようそのようなデバイスにわたって展開されるオペレーティングシステムであってもよい。分散型アンビエントコンピューティングシステムは、オペレーティングシステムを用いて、コンピューティングタスクをいくつかのデバイスにわたって分散させてもよい。例えば、一日を通してユーザによって所有および/またはアクセスされる種々の電子デバイスは、概して、共にアンビエントに機能するよう構成可能ではなく、なぜならば、そのようなデバイスは種々の電子デバイスの各々を取り囲む他のそれぞれのデバイスのグローバルな理解を有さない場合があるためである。
【0005】
本明細書で説明されるシステムおよび方法は、規定されたロケーションを取り囲むデバイスのグローバルな理解を判定するために、および様々な電子デバイスを、様々な電子デバイスのうちの1つ以上の間でタスクをオーケストレーションおよび分散させるように機能してもよい分散型アンビエントコンピューティングシステムとして構成するために用いられ得る。デバイスの各々は、タスクを完了するために利用される(たとえば、入力/出力を生成するための)センサおよび能力で定義されてもよく、および/またはそれらに関連付けられてもよい。本明細書で説明されるシステムおよび方法は、世帯またはオフィス等の規定されたロケーション内の電子デバイス間の改善されたリソース管理を提供してもよい。ユーザは、自分の世帯またはオフィス内の複数のデバイスの間でセンサおよび能力の使用を活用することが可能であってもよく、以前であれば世帯またはオフィス内で単一のデバイスだけでは行うことができなかった、または行うことが困難であったであろうタスクが行われることを可能にする。したがって、ユーザは、以前であれば単一のコンピューティングデバイスだけでは完了できなかった技術的タスクを完了するように指示できてもよい。さらに、ユーザは、タスクを実行するために1つ以上の新たなコンピューティングデバイスを規定されたロケーションに追加する(たとえば、追加のコンピューティングデバイスを購入する)必要なく、これを行うことができてもよい。本明細書で説明されるシステムおよび方法は、規定されたロケーションにおけるセンサおよび能力の冗長性の低減、ならびに前記センサおよび能力の利用の改善を可能にしてもよい。ユーザは、より多様なタスクを、規定されたロケーションにおいて、より少ないコンピューティングデバイスを用いて実行されることができてもよく、それは、電力消費の利益および環境上の利益を有することができる。
【0006】
1つ以上のコンピュータからなるシステムは、動作中にシステムに特定のアクションを実行させるソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せがシステムにインストールされることによって、特定の動作またはアクションを実行するよう構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されると装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するよう構成することができる。
【0007】
第1の一般的な態様では、コンピュータにより実現される方法が説明される。本方法は、コンピューティングデバイスが、ユーザ環境に関連付けられる複数の追加のデバイスを検出することと、複数の追加のデバイスについて、複数の追加のデバイスに関連付けられる複数の能力を判断することと、コンピューティングデバイスが、複数の追加のデバイスを分散型コンピューティングシステムとして構成することとを含んでもよい。複数の追加のデバイスは、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に対応してもよい。本方法は、コンピューティングデバイスにおいて、タスクを実行する要求を受信することと、コンピューティングデバイスが、複数の追加のデバイスのうちのどれがタスクを実行することができるかを判断することと、複数の追加のデバイスのうち、タスクを実行することができると判断された少なくとも1つを選択することとをさらに含んでもよい。選択することは、コンピューティングデバイスまたはタスクを実行する要求に関連付けられるユーザに対する複数のデバイスの判断された近接度と、複数のデバイスにおいてそれぞれのデバイス上で実行される判断されたオペレーティングシステムと、複数のデバイスにおいてそれぞれのデバイス上で利用可能な、判断された、センサに基づく能力とに少なくとも部分的に基づいてもよい。本方法はまた、タスクを実行するように、コンピューティングデバイスが、選択されたデバイスをトリガすることも含んでもよい。
【0008】
実現例は、以下の態様のいずれかまたはすべてを含んでもよい。いくつかの実現例では、複数の追加のデバイスのうちの少なくとも1つの選択は、さらに、ユーザ環境に関連付けられる検出された情報に基づき、ユーザ環境は、コンピューティングデバイスおよび複数の追加のデバイスを含む物理的建物として規定される。いくつかの実現例では、検出された情報は、ユーザ環境における検出されたユーザアクティビティレベル、ユーザ環境における検出された音声要求、またはユーザ環境に関連付けられる検出された視覚画像に対応する。いくつかの実現例では、本方法は、コンピューティングデバイスが、タスクに対応する出力を生成するために複数の追加のデバイスにおいて第2のデバイスを選択することをさらに含む。第2のデバイスの選択は、複数の追加のデバイスのうちの選択された少なくとも1つがタスクに対応する出力を生成し通信するのに適していないと判断することに少なくとも部分的に基づいてもよい。
【0009】
いくつかの実現例では、本方法は、コンピューティングデバイスが、タスクに対応する出力を生成するために複数の追加のデバイスのうちの第2のデバイスを選択することをさらに含む。第2のデバイスの選択は、複数の追加のデバイスのうちの少なくとも1つの追加のデバイスの位置が、タスクを実行する要求に関連付けられるユーザの事前規定された視覚範囲または事前規定された音声範囲の外にあると判断することに少なくとも部分的に基づいてもよい。いくつかの実現例では、タスクを実行するよう選択されたデバイスをトリガすることは、視覚出力および音声出力を生成することを含む。視覚および音声出力は、事前規定された期間外の時刻の判断に応答して、複数の追加のデバイスのうちの別のデバイス上に提供されてもよい。
【0010】
いくつかの実現例では、本方法はさらに、コンピューティングデバイスが、タスクを実行するよう選択されたデバイスをトリガすることを含んでもよく、コンピューティングデバイスに関連付けられるオペレーティングシステムを介して、選択された少なくとも1つの追加のデバイス上で実行するそれぞれのオペレーティングシステムと通信する少なくとも1つのサービスにアクセスすることを含む。サービスは、受信されたタスクを複数の追加のデバイスにおける少なくとも1つの他のデバイスにディスパッチするよう構成されてもよい。いくつかの実現例では、タスクを実行するために複数の追加のデバイスのうちの少なくとも1つを選択することは、ユーザ環境についてコンテキストを判断することを含み、コンテキストは、複数の追加のデバイスのうちの1つ以上に関連付けられる検出された情報および記憶された情報に基づいてもよい。いくつかの実現例では、検出された情報はカレンダー情報を含む。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、および/またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0011】
第2の一般的な態様では、コンピュータプログラム製品が説明される。コンピュータプログラム製品は、命令を含む非一時的コンピュータ可読媒体上に有形に具現化され、命令は、実行されると、少なくとも1つのプロセッサに、コンピューティングデバイスによって、ユーザ環境に関連付けられる複数の追加のデバイスを検出させ、複数の追加のデバイスについて、それぞれの追加のデバイスの各々に関連付けられる複数の能力を判断させ、コンピューティングデバイスによって、複数の追加のデバイスを分散型コンピューティングシステムとして構成させるよう構成され、複数の追加のデバイスは、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に対応し、命令は、さらに、実行されると、少なくとも1つのプロセッサに、コンピューティングデバイスにおいて、タスクを実行する要求を受信させる。タスクの実行の完了が複数の能力のうちの2つ以上の使用を示すと判断したことに応答して、命令は、分散型コンピューティングシステム内で、複数の追加のデバイスのうちのどれがタスクを実行することができるかを判断し、複数の追加のデバイスにおいて少なくとも2つのデバイスを選択して、タスクを完了するために2つ以上の能力の実行を共有してもよく、少なくとも2つのデバイスの選択は、コンピューティングデバイスまたはタスクを実行する要求に関連付けられるユーザに対する2つのデバイスの判断された近接度に少なくとも部分的に基づく。命令は、タスクを実行するよう、コンピューティングデバイスによって、選択された少なくとも2つのデバイスをトリガすることができる。
【0012】
実現例は、以下の態様のいずれかまたはすべてを含んでもよい。いくつかの実現例では、命令は、タスクの複数の別個の部分を実行するために通信するよう少なくとも2つのデバイスを構成することを含む、少なくとも2つのデバイスを選択することを含んでもよい。いくつかの実現例では、少なくとも2つのデバイスを選択することは、複数のデバイスのうちのどれが、タスクを完了するための2つ以上の能力を実行するよう構成されるコンポーネントを含むかを判断することと、タスクを完了するために通信するように少なくとも2つのデバイスを構成することとを含む。いくつかの実現例では、2つのデバイスのうちの少なくとも1つに関連付けられる少なくとも1つの能力は、少なくとも2つのデバイスのうちの他方に関連付けられる能力を拡張する。いくつかの実現例では、タスクの実行は、分散型コンピューティングシステム内のデバイスのためにインターネット接続がない場合にトリガされる。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、および/またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0013】
第3の一般的な態様では、ディスプレイと、メモリと、メモリに結合される少なくとも1つのプロセッサとを含んでもよいシステムが説明され、少なくとも1つのプロセッサは、コンピューティングデバイスによって、ユーザ環境に関連付けられる複数の追加のデバイスを検出し、複数の追加のデバイスについて、複数の追加のデバイスのうちの1つ以上に関連付けられる複数の能力を判断し、コンピューティングデバイスによって、複数の追加のデバイスを分散型コンピューティングシステムとして構成するよう構成される。複数の追加のデバイスは、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に対応してもよい。プロセッサは、さらに、コンピューティングデバイスにおいて、タスクを実行する要求を受信し、コンピューティングデバイスによって、複数の追加のデバイスのうちのどれがタスクを実行することができるかを判断し、複数の追加のデバイスのうち、タスクを実行することができると判断される少なくとも1つを選択するよう構成されてもよく、選択は、コンピューティングデバイスまたはタスクを実行する要求に関連付けられるユーザに対する複数のデバイスの判断された近接度に少なくとも部分的に基づく。プロセッサは、さらに、タスクを実行するよう、コンピューティングデバイスによって、選択されたデバイスをトリガするよう構成されてもよい。
【0014】
実現例は、以下の態様のいずれかまたはすべてを含んでもよい。いくつかの実現例では、複数の追加のデバイスを分散型コンピューティングシステムとして構成することは、複数の追加のデバイスについて、ユーザ環境およびコンピューティングデバイスに関連付けられるポリシーならびにユーザ選好(Preference)を有効にすることと、ユーザ環境内で識別されていないデバイスを検出することに応答して、識別されていないデバイスに対してセキュリティチェックを実行することと、識別されていないデバイスがセキュリティチェックに合格した場合に、識別されていないデバイスに対してポリシーおよびユーザ選好を構成することとを含む。
【0015】
いくつかの実現例では、プロセッサは、さらに、タスクを実行するよう選択されたデバイスに対してユーザ選択制御を有効にするために、コンピューティングデバイスのディスプレイ上にグラフィカル制御要素を表示するよう構成される。いくつかの実現例では、プロセッサは、さらに、タスクに対応する出力を生成するために、コンピューティングデバイスによって複数の追加のデバイスのうちの第2のデバイスを選択するよう構成され、第2のデバイスの選択は、複数の追加のデバイスのうちの少なくとも1つの追加のデバイスの位置が、タスクを実行する要求に関連付けられるユーザの事前規定された視覚範囲または事前規定された音声範囲の外にあると判断することに少なくとも部分的に基づく。
【0016】
いくつかの実現例では、タスクを実行するよう、選択されたデバイスをトリガすることは、コンピューティングデバイスがタスクを実行する受信された要求に関連付けられるユーザに対して閾値距離内にあると判断したことに応答して、視覚出力を生成することを含み、視覚出力は、コンピューティングデバイスのディスプレイ上に提供される。いくつかの実現例では、タスクを実行するよう、コンピューティングデバイスによって、選択されたデバイスをトリガすることは、コンピューティングデバイスに関連付けられるオペレーティングシステムを介して、選択された少なくとも1つの追加のデバイスと通信している少なくとも1つのサービスにアクセスすることを含み、サービスは、受信されたタスクを複数の追加のデバイスにおける少なくとも1つの他のデバイスにディスパッチするよう構成される。説明される技術の実現例は、ハードウェア、方法もしくはプロセス、および/またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含んでもよい。
【0017】
1つ以上の実現例の詳細が、添付の図面および以下の説明に記載される。他の特徴は、記載および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0018】
図1A】本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステムの図である。
図1B】本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステムの図である。
図1C】本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステムの図である。
図2】本明細書で説明する実現例による、複数のデバイスを含む例示的な分散型アンビエントコンピューティングシステムを示すブロック図である。
図3A】本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させるための例示的なアーキテクチャを示すブロック図である。
図3B】本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させるための例示的なアーキテクチャを示すブロック図である。
図4】本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムにおけるタスク要求およびタスクの実行を示す例示的な図である。
図5A】本明細書で説明する実現例による、要求されたタスクを実行するために2つ以上のデバイスを用いることを示す。
図5B】本明細書で説明する実現例による、要求されたタスクを実行するために2つ以上のデバイスを用いることを示す。
図5C】本明細書で説明する実現例による、要求されたタスクを実行するために2つ以上のデバイスを用いることを示す。
図6A】本明細書で説明する実現例による、世帯用の例示的な分散型アンビエントコンピューティングシステムを示す。
図6B】本明細書で説明する実現例による、世帯用の例示的な分散型アンビエントコンピューティングシステムを示す。
図6C】本明細書で説明する実現例による、世帯用の例示的な分散型アンビエントコンピューティングシステムを示す。
図7】本明細書で説明する実現例による、世帯内でアンビエントデバイスを用いて実行されるタスク実行の一例の図である。
図8】本明細書で説明する実現例による、世帯内のアンビエントデバイス間のリソースのプロビジョニングを示す図である。
図9】本明細書で説明する実現例による、アンビエントデバイスを用いて世帯内でモードを提供することを示す図である。
図10A】本明細書で説明する実現例による、複数のアンビエントデバイスおよび分散ストレージログを用いるタスク処理の一例を示す。
図10B】本明細書で説明する実現例による、複数のアンビエントデバイスおよび分散ストレージログを用いるタスク処理の一例を示す。
図11A】本明細書で説明する実現例による、アンビエントデバイスを用いて世帯内のアクティビティおよびリソースをオーケストレーションする例を示す。
図11B】本明細書で説明する実現例による、アンビエントデバイスを用いて世帯内のアクティビティおよびリソースをオーケストレーションする例を示す。
図12】本明細書で説明する実現例による、アクティビティをオーケストレーションし、世帯に関連付けられるデバイスとリソースを共有する例を示す図である。
図13】本明細書で説明する実現例による、世帯に関連付けられる他のアンビエントデバイスとポリシーを共有するアンビエントデバイスを示す図である。
図14】本明細書で説明する実現例による、少なくとも2人のユーザのアンビエントデバイス認識を示す図である。
図15A】本明細書で説明する実現例による、世帯用の例示的なアンビエントデバイス構成を示す。
図15B】本明細書で説明する実現例による、世帯用の例示的なアンビエントデバイス構成を示す。
図16】本明細書で説明する実現例による、世帯用のアンビエントデバイス構成の別の例を示す図である。
図17】本明細書で説明する実現例による、世帯用のアンビエントデバイス構成の別の例を示す。
図18】本明細書で説明する実現例による、世帯に関連付けられる他のアンビエントデバイスとポリシーおよび構成詳細を共有するアンビエントデバイスの例を示す図である。
図19】本明細書で説明する実現例による、世帯用の第三者センサを構成する例を示す図である。
図20】本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させる例示的なプロセスのフローチャートである。
図21】本明細書で説明する実現例による、複数のデバイス間でタスクを共有するために分散型アンビエントコンピューティングシステムを動作させる例示的なプロセスのフローチャートである。
図22】本明細書で説明する技術を実現するために用いられ得るコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す。
【発明を実施するための形態】
【0019】
様々な図面における類似または同一の参照番号の使用は、類似もしくは同一の要素または特徴の存在を示すことを意図している。
【0020】
詳細な説明
本明細書は、分散型アンビエントコンピューティングシステムとしてアンビエントコンピューティングデバイス(例えば、電子デバイス)を共に動作させるためのプラットフォームを説明する。このプラットフォームは、電子デバイス(例えば、コンピューティングデバイス、アンビエントデバイスなど)の各々のオペレーティングシステムが、アンビエントデバイス間でユーザ要求タスクを実行し、および/またはその実行を共有するよう構成され得るフレームワークとして機能してもよい。概して、本明細書で説明されるシステムおよび方法は、そのようなプラットフォームを利用して、事前規定されたロケーション(例えば、世帯)内で検出される、および/または別様にそれと関連付けられるデバイス(例えば、世帯デバイス)間でタスク(例えば、処理タスク、ユーザ要求タスク、サービス指向タスクなど)を分散させることができる。タスクは、デバイス能力(例えば、センサ、処理能力、ハードウェア、ソフトウェア)、ポリシー、ユーザ選好、ユーザ許可、要求、ユーザの居場所、デバイスコンテキスト等に基づいて分散されることができる。住宅内の各デバイスは、デバイス位置に加えて、入力のセット、出力のセット、およびデバイス能力のセットとして定義されてもよい。
【0021】
本明細書で説明されるシステムおよび方法は、従来のシステムとは異なるパラダイムを用いて、規定された環境と関連付けられる1つ以上のデバイス上でのタスク完了およびコンテンツの提示のための分散型アンビエントコンピューティングを提供してもよい。例えば、本明細書で説明されるシステムおよび方法は、各デバイスが、典型的には、複数のデバイス間でタスクを通信および共有することに対して互換性がない場合がある、異なるハードコード化されたオペレーティングシステムを用いて動作する、従来のデバイス相互作用を用いて動作するのではなく、デバイス能力を用いるようタスクを割り当て得る複数のデバイス上で実行している分散オペレーティングシステムとしてともに機能するように、電子デバイスを構成してもよい。結果として、本明細書に記載されるシステムおよび方法は、電子デバイス間の通信効率の向上および転送されるデータの量の低減という利点を提供し得る。したがって、本システムおよび方法は、より少ないデータをデバイスからデバイスへ転送する(またはデータを全く転送しない)ためにプラットフォームを採用し、これは、分散型アンビエントコンピューティングシステム間の安全なデータ使用を保証し得る。
【0022】
本明細書で説明されるプラットフォームは、ユーザのニーズ、住宅/世帯のニーズ、サービスのニーズ、およびデバイスの能力を考慮するオペレーティングシステム(O/S)レベルの分散型アンビエントコンピューティングシステムを含むか、またはそれへのアクセスを有してもよい。いくつかの実現例では、O/Sは、特定のロケーション、建物、世帯、住宅、複合施設などにおけるアンビエントデバイス間で分散して動作してもよい。本明細書で説明されるシステムおよび方法は、分散型アンビエントコンピューティングシステムの一部として定義され、規定された環境内に位置する(かまたはそれと関連付けられる)電子デバイス上でタスクを実行するためにプラットフォームを利用してもよく、ユーザ設定許可に基づいてそのようにしてもよい。
【0023】
いくつかの実現例では、プラットフォームは、規定された環境内の電子デバイスのうちの2つ以上の間でのそのようなタスクの分散を可能にしてもよい。例えば、本システムおよび方法は、プラットフォームを用いて動作して、規定された環境内で1つ以上のデバイスと関連付けられるO/Sレベルアーキテクチャにアクセスして、事前規定されたユーザ環境内の各デバイスを検出し、それと通信してもよい。規定された環境内の他のデバイスは、同じO/Sレベルアーキテクチャを有さなくてもよく、したがって、プラットフォームは、代わりに、そのようなデバイスに関連付けられる入力および/または出力を利用して、O/Sレベルアーキテクチャと機能するよう構成される、規定された環境内の他のデバイスと連携してタスクを実行してもよい。
【0024】
動作中、本明細書で説明されるシステムおよび方法によって実行されるプラットフォームは、(異なるデバイス上の)いくつかの固有のオペレーティングシステムにアクセスし、規定された環境内で検出可能な電子デバイス上でUIコンテンツ、データ、音声コンテンツなどを提供するように機能するインターフェイスとして動作することができる。例えば、プラットフォームは、事前規定された環境(例えば、住宅、世帯、建物などを表すロケーション)内の各デバイスが、入力のセット、出力のセット、およびデバイス能力のセットとして構成ならびに定義されることを可能にし得る。各デバイスは、任意の数の対応デバイスにわたってタスクを実行および/または分散するためにプラットフォームとともに動作してもよいオペレーティングシステムを含んでもよい(またはそれへのアクセスを有してもよい)。例えば、特定のデバイスがユーザ要求タスクを実行するよう構成可能でない場合、本明細書で説明されるシステムおよび方法は、規定された環境内で別のデバイスを検出して、ユーザ要求タスクを実行することが可能なデバイスとタスクを共有することができる。例えば、より新しいスマートディスプレイの機械学習能力を利用するために、機械学習処理能力のない古いディスプレイをアップグレードするために、タスク要求に応答して、機械学習処理能力を有する新しいスマートディスプレイなどのデバイスが、プラットフォームによってアクセスされてもよい。
【0025】
いくつかの実現例では、ユーザは、本明細書で説明するプラットフォームおよびユーザ許可を利用して、住宅(たとえば、世帯)についてのいくつかの環境ポリシーおよび/または選好を構成してもよい。プラットフォームは、デバイス状態、過去のアクティビティなどに関する情報を得るために、環境に関連付けられる各デバイスの分散ストレージログ(例えば、ローカルに記憶され、パブリックまたはプライベートネットワークを介して利用可能なレッジャー)からのデータにアクセスし、それを共有することができる。分散ストレージは、デバイスデータおよび/またはユーザデータを保持するよう構成され、それらの各々は、そのようなデータが危険にさらされないことを保証するために環境内に留まる。例えば、ユーザは、住宅に関連付けられるユーザの世帯を対象とするポリシーおよび選好を設定することができ、分散ストレージは、デバイス間でポリシーを共有するために用いられてもよい。ポリシーは、世帯全体、特定の部屋またはアクティビティ、特定のデバイス、特定の時間などに適用されてもよい。例えば、ユーザは、特定の時刻の後に閾値デシベルレベルよりも大きな音楽を許可しないようにポリシーを構成してもよい。
【0026】
いくつかの実現例では、本明細書で説明するシステムおよび方法は、ユーザ許可および/またはデバイス設定に従って、規定された環境(たとえば、ユーザ環境)内の任意の数のデバイスとそのようなポリシーを共有する(および/または共有すべきかどうかを判断する)よう構成されてもよい。いくつかの実現例では、本明細書で説明するシステムおよび方法は、他のデバイス固有のポリシーを設定するよう構成されてもよく、それらは、ユーザがそのようなデバイスを特定のポリシーで手動で更新するのを待つ必要なく、分散型アンビエントコンピューティングシステム内の1つ以上の他のデバイスと共有されることができる。そのような例示的なポリシーは、限定はしないが、特定の空間の近くまたは特定の空間内のカメラ対応(またはセンサ対応)デバイスのためのカメラ使用(または他のセンサ使用)のためのポリシーと、特定のユーザおよび/または時間についてのデバイスアクセス制限のためのポリシーと、特定のユーザ、デバイス、および/または時間についての着信拒否構成に関するポリシーとを含んでもよい。いくつかの実現例では、分散型アンビエントコンピューティングシステム内のデバイスの一部またはいくつかの例ではすべてが、コンピューティングシステムのユーザによって構成されたとおりのポリシーに従ってもよい。
【0027】
同様に、新たなデバイスが住宅に追加される(または移動される)(すなわち、分散型アンビエントコンピューティングシステムに関連付けられるかまたはそれによって定義される)とき、新たなデバイスは、住宅および/または部屋ポリシーのための既存の構成を継承してもよい。たとえば、プラットフォームは、基底のデバイスO/Sを利用して、各特定のデバイスに対して通知をトリガしてもよく、各デバイスは、ポリシーが何を構成することを意図されているかを判断および/または解釈してもよい。各デバイスは、次いで、受信された通知の解釈に従って、受信されたポリシーを構成してもよい。たとえば、あるデバイスは、どのセンサおよび/または対応する能力がそれ自体内で利用可能であるかに基づいて、着信拒否ポリシーをどのよう構成するかを判断してもよい。次いで、デバイスは、ポリシーに従って、着信センサおよび/または能力をオフにすることができる。
【0028】
概して、デバイス間でタスク実行を共有しようと試みるときに生じ得る1つの技術的問題は、ソフトウェア、ハードウェア、および/またはファームウェアレベルでのデバイスの非互換性を含み得る。例えば、一日中ユーザによって所有および/またはアクセスされる種々の電子デバイスは、概して、共に単一コンピュータとしてアンビエントに機能するよう構成可能ではない。そのようなデバイスは、典型的には、デバイス間で互換性がない場合がある異なるハードコード化されたオペレーティングシステムを用いて動作する。これは、概して、ユーザが住宅デバイスを同期させることが複雑であり、時間がかかり、または不適当であり得、また、新たなデバイスが追加される、および/または住宅に出入りされるときに通信および/またはポリシーを同期させることも困難であり得るという点で、技術的課題を提示し得る。
【0029】
本明細書で説明されるシステムおよび方法は、電子デバイス間の通信を可能にすることによって、および世帯内のユーザによって要求されるタスクの便利な実行を提供するためにユーザ要求タスクの分散および共有を可能にするよう、技術的問題に対する技術的解決策を提供する。たとえば、規定された環境(たとえば、あるロケーションエリア)に関連付けられる検出されたデバイスのうちの1つ以上で実行する基底のO/Sは、たとえば、そのロケーションエリア内の対応デバイスにコンピューティングタスクを動的に分散するよう構成され得る。いくつかの実現例では、オペレーティングシステムは、そのロケーション(例えば、住宅、世帯、建物など)において利用可能なデバイスを検出し、識別し、ランク付けすることをタスクとする専用サービスにアクセスすることができ、検出されたデバイスおよび/または別様に利用可能なデバイスにわたってタスクをディスパッチおよびオーケストレーションする判断を行うことができる。そのような判断は、特定のデバイスが他のデバイスを制御することができるかまたは単に他のデバイスに情報を渡すことができるかを判断するために、デバイス上で実行されるO/Sを考慮に入れることができる。
【0030】
本明細書で説明される技術的解決策は、改善されたタスク管理、改善されたタスク評価、および/または改善された判断処理の技術的効果を世帯用デバイス間で提供し得る。本システムおよび方法はまた、サービスプロバイダによってもロケーションにおけるデバイスの製造業者によっても所有も運営されない、ロケーション実現分散ストレージを用いて、どのデバイスの間で受信されたタスクを実行するか、および/または受信されたタスクの実行を共有するかを選択するための方法を提供してもよい。
【0031】
図1Aは、本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステム100のブロック図である。例示的なシステム100では、ユーザ102は、任意の数のデバイスを中に含む(またはそれらに関連付けられる)住宅(たとえば、世帯のロケーション)内にいてもよい。住宅は、住宅に関連付けられるデバイスのための分散型アンビエントコンピューティングシステム100として構成されてもよいユーザ環境(たとえば、ロケーション/ロケーションエリア)を表してもよい。ユーザ環境は、住宅および住宅を取り囲む特定のエリアを含むようにユーザによって規定されてもよい。いくつかの実現例では、住宅内のデバイスは、ユーザ要求、閾値設定、および/または製造業者によって実現されユーザによって構成可能なデバイスポリシーからの距離に従って、ユーザ環境の境界を設定するよう構成することができる。
【0032】
概して、例示的な分散型アンビエントコンピューティングシステム100は、システム100が、目標(例えば、タスク)を達成するために共に用いられてもよい能力の集合として各デバイスを利用し得るので、世帯/住宅内のデバイスから価値をユーザに提供し得る。
【0033】
図1Aに示されるように、デバイスは、ドアロックデバイス104、セキュリティデバイス106、煙検出器デバイス108、占有センサデバイス110(例えば、サーモスタットを含む)、環境ハブデバイス112、アシスタントデバイス114、および音声/マイクロフォンデバイス116を含む、いくつかのアンビエントデバイスを含む。デバイスの各々は、分散型アンビエントコンピューティングシステム100内のアンビエントデバイスのネットワークを表す点線によって接続されて示されている。デバイス間の接続は、以下で詳細に説明されるように、無線であってもよい。いくつかの実現例では、デバイスは、分散ストレージを介して、および/またはデバイスからデバイスに直接データを共有してもよいが、概して、事前構成されたユーザ許可に従ってデータを共有してもよい。
【0034】
各アンビエントデバイスは、ユーザが好む許可に従ってユーザ設定されてもよい。たとえば、カメラ、マイクロフォン、インターネットアクセス、および/または他のセンサに基づく能力を有するデバイスは、ユーザ好みの許可に従って構成されてもよい。そのような許可は、時間ベースおよびユーザ制御であってもよい。いくつかの実現例では、ユーザデバイスは、ユーザが許可およびデバイス能力を迅速に修正できることを確実にするために、デバイスに与えられる許可を再検討または編集するようにユーザに促すよう構成されてもよい。
【0035】
図示のドアロックデバイス104は、少なくとも、受信した信号からドアをロックおよびロック解除する感知能力を含んでもよい。図示されるセキュリティデバイス106(例えば、セキュリティカメラ)は、カメラセンサ、音声センサ、モーションセンサ、スピーカ等の1つ以上のオンボードデバイスおよび/またはセンサを含んでもよい。セキュリティデバイス106は、住宅の外部に配置されてもよいが、分散型アンビエントコンピューティングシステム100に関連付けられるユーザ環境に依然として関連付けられてもよい。図示の煙検出器デバイス108は、ユーザ環境全体にわたって任意の数のロケーションに配置されてもよい。煙検出器デバイスは、音声センサ、光電センサ、および/またはイオン化センサを含んでもよい。図示の占有センサデバイス110は、移動がデバイス110の近くの特定のロケーションで起こっているかどうかを判断してもよい。デバイス110は、動きおよび/または存在を検出する光電気センサを含んでもよい。そのようなセンサは、赤外線、超音波、マイクロ波、および/または他の信号センサを用いて、規定された環境内のユーザの存在を検出してもよい。検出されたユーザの存在は、例えば、デバイス110がサーモスタットデバイスを含む(またはそれへのアクセスを有する)場合、環境を修正するためのトリガであってもよい。
【0036】
環境ハブデバイス112は、任意の数の音声センサ、スピーカ、マイクロフォン、インターネット(または他のネットワーク)アクセスなどを含むスマートディスプレイであってもよい。本明細書で用いる「スマート」デバイスは、限定はしないが、Bluetooth(登録商標)、Zigbee(登録商標)、NFC、Wi-Fi(登録商標)、LiFi、ワイヤレスUSB、ワイヤレスイーサネット(登録商標)、セルラーなどを含む特定の有線または無線プロトコルを介して他の電子デバイス、ネットワーク、システムと通信可能に結合されてもよい電子デバイスを表してもよい。
【0037】
デバイス112は、限定はしないが、ほんの数例を挙げると、検索、文書のドラフト、オーディオおよび/またはビジュアルコンテンツの取得ならびに再生、他の住宅デバイスの構成、電話の発信を含むユーザ要求タスクを実行するためのアシスタントデバイスとして機能してもよい。アシスタントデバイス114は、任意の数の音声センサ、スピーカ、マイクロフォン、インターネット(または他のネットワーク)アクセス等を含んでもよい。そのようなデバイス114も、限定はしないが、検索、文書のドラフト、オーディオおよび/またはビジュアルコンテンツの取得ならびに再生、他の住宅デバイスの構成、電話の発信などを含むユーザ要求タスクを実行してもよい。音声/マイクロフォンデバイス116は、ユーザ環境全体にわたって任意の数のロケーションに見出してもよい。デバイス116は、音声センサ、スピーカ、およびマイクロフォンなどを含んでもよい。各デバイスに関連付けられるセンサのいずれも、事前構成されたユーザ許可に従って機能および/または動作するよう構成される。
【0038】
アンビエントデバイス104~116は、ロケーションに関連付けられるデバイスの一部(またはいくつかの例では、すべて)を含んでもよい。そのようなデバイスは、例えば、携帯電話、タブレット、パーソナルコンピュータ、またはラップトップのうちの1つ以上等のパーソナルデバイスを含んでも含まなくてもよい。例えば、1つ以上のパーソナルデバイスは、ユーザが、アンビエントデバイス104~116のうちの他のもの(またはユーザ環境において利用可能な他の同様のデバイス)を相互接続するように、そのようなデバイスを構成する場合、分散型環境コンピューティングシステムの一部であってもよい。
【0039】
ユーザ102は、図1Aに示すデバイスのうちの1つ以上を要するタスクを実行することを望む場合がある。例えば、ユーザは、住宅から出ている場合があり、セキュリティ対策に取り組みたい場合がある。図1Aに示すように、ユーザはタスクを発話してもよい(または、コンピューティングデバイスのUIにおいてタスクを選択してもよい)。タスクは、本明細書で説明されるプラットフォーム上で実行するコンピューティングデバイスを用いて、ユーザによって発話または選択されてもよい。コンピューティングデバイスは、例えば、プラットフォームとの間でコマンドを解釈することができるO/Sを実行していてもよいアシスタントデバイス114またはデバイス116を含む。この例では、発話されたタスク118(すなわち、自宅を保護して)は、発話されたタスク118をアンビエントデバイス104~116のうちの1つ以上の間で編成するようにデバイス114をトリガすることができる。例えば、タスク118を受信すると、デバイス114は、システム内のどのデバイスが保護措置(例えば、セキュリティタスク)が可能であるかを評価してもよい。デバイス114はまた、どのデバイスがセキュリティ対策に従事するかを評価するために用いられてもよい、デバイスの特定の近接度を判断してもよい。
【0040】
例えば、窓がない屋根裏のスマート電球は、使用時に信号を送信してもよいオンボード近接度検出器を用いてセキュリティ対策を講じる必要がなくてもよい。代わりに、デバイス114は、セキュリティタスクにそのようなデバイスを含まないようにユーザによって設定されたポリシーを有してもよい。デバイス114は、例えば、セキュリティ機能を有すると判断され住宅のポリシーに従うデバイスのセキュリティ機能をオンにしてもよい。動作中、デバイス114は、住宅のためにセキュリティ従事を実行するようにデバイス1104,106,108,110,112,および116をトリガするために、信号を送信し、そのような信号を分散ストレージに記録してもよい。各従事したデバイスも、各それぞれのデバイスに関連付けられるそれぞれの分散ストレージに信号を記録してもよい。各分散ストレージは、マスタ世帯分散ストレージと同期して、マスタ世帯分散ストレージを用いて判断がなされてもよいようにしてもよい。
【0041】
図1Bは、本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステム128のブロック図である。本明細書で説明されるシステムおよび方法は、任意の数のプラットフォーム上で動作するデバイスを活用してもよい。従来のシステムでは、コンピューティングデバイスおよび電子デバイスは、概して、特定のハードウェア上でタスクを実行するように最適化される場合がある。本明細書で説明されるシステムおよび方法は、例えば、他の態様では単一のデバイスを用いて達成することが困難であったかもしれないコンピューティングタスクを分散するよう、デバイスを、あるロケーション内の利用可能なデバイスを概念的に包含する、より大きいコンピュータの交換可能モジュールとして構成することによって、便利なデバイス管理の利点を提供し得る。
【0042】
たとえば、デバイス112および114(図1B)は、任意の数のデバイス(例えば、モバイルデバイス132、デバイス134、デバイス136、デバイス138、デバイス140、および/またはデバイス142)から入力を受信してもよい(たとえば、第1のオペレーティングシステムを実行する)第1のプラットフォーム130上で動作していてもよく、それらデバイスのいずれも、第2、第3、第4などのオペレーティングシステムを実行する第2、第3、第4などのプラットフォーム(図示せず)を用いて動作していてもよい。デバイス112および114はまた、任意の数のデバイス(例えば、モバイルデバイス132、デバイス134、デバイス136、デバイス138、デバイス140、および/またはデバイス142)に出力を与えてもよい。プラットフォーム130は、デバイス112および114を利用して、例えば、デバイス132~142にわたってコンテンツ(例えば、視覚コンテンツ、音声コンテンツ、データコンテンツ、構成情報)を適応させてもよい。プラットフォーム130は、デバイス112および/または114とシステム128内の別のデバイスとの間でコンテンツ(またはタスク)をどのように配置、再配置、提示、実行、および/もしくは別様に取り扱うかを評価、決定、計算、または別様に判断してもよい。プラットフォーム130は、プラットフォーム130の外部の他のデバイスをプラットフォーム130への入力および/または出力として機能するよう構成することによって、そのようなデバイスを活用してもよい。
【0043】
本システムおよび方法は、近接した(例えば、近くの)コンピューティングデバイス(例えば、電子デバイス)に関連付けられる判断されたデバイス能力を利用してもよい。そのようなデバイスは、たとえば、特定の規定された環境(たとえば、ロケーション)の閾値距離内で検出された場合、近接していると判断されてもよい。図1Bに描写される例は、デバイス112,114,132,134,136,138,140,および142を含むが、任意の数およびタイプの電子デバイスが、本明細書に説明されるシステム、方法、およびプラットフォームを利用するために置換されてもよい。
【0044】
本明細書で説明されるコンピューティングデバイスのうちの1つ以上(たとえば、デバイス112およびデバイス114)は、近接デバイス(たとえば、デバイス132~142)のうちの1つ以上を用いてコンピューティングタスクの実行を可能にするために分散型アンビエントコンピューティング論理を含んでもよい。コンピューティングデバイス112および/または114のうちの1つ以上において実行するオペレーティングシステムは、近接デバイスの検出された能力に従って、および特定のタスクを実行する受信された要求に基づいて、任意の数のデバイス132~142がコンピューティングタスクおよび/または他のデバイスタスクを共有(たとえば、分散)することを可能にしてもよい。特定のロケーションからの事前定義された距離を規定することによって、デバイスのネットワークを識別およびグループ化して、ユーザ要求タスクを、組み合わされたデバイス能力、事前定義されたポリシーおよび選好、ならびに/またはユーザコンテキストに従って、選択的に実行してもよい。
【0045】
概して、本明細書で説明されるデバイスおよびコンピューティングシステムは、ユーザ環境内の他のデバイスからの、またはタスクを実行する要求と関連付けられるユーザへの近接度を判定することができる。例えば、デバイスおよびコンピューティングシステムの一部は、特定のデバイスが別のデバイスに近接しているかどうかを判断してもよい視線センサを有してもよく、それは、近接度の自己識別または検出された近接度の識別を可能にすることができる。いくつかの実現例では、デバイスおよびコンピューティングシステムは、特定のロケーションに割り当てられてもよく、したがって、そのロケーションは、別のデバイスまたはシステムへの物理的近接度を識別するために用いられてもよい。判断されたロケーションは、特定のデバイスがアンビエントコンピューティング環境内で移動したかどうかを判断するために、再評価および/または再判断されてもよい。いくつかの実現例では、特定のデバイスまたはシステムの近接度を判断することは、通信を測定することを含んでもよい。たとえば、各デバイスは、往復パケット時間を評価または判定するために1つ以上のデバイス間で通信パケットを送信することと組み合わせて用いられてもよい識別子とともにネットワークに接続されてもよい。そのような時間は、どのデバイスが別のデバイス(またはユーザ)よりもあるデバイス(またはユーザ)により近い(すなわち、より近接している)かのインジケータを提供するようにランク付けされてもよい。
【0046】
図1Cは、本明細書で説明される実現例による、例示的な分散型アンビエントコンピューティングシステム150のブロック図である。コンピューティングシステム150に示されるデバイスは、アシスタントデバイス112、アシスタントデバイス114、カメラデバイス134、サーモスタットデバイス138、カメラデバイス140、照明デバイス142、およびテレビデバイス144を含む。本明細書で説明されるプラットフォームは、体験をそのような環境に適合させるために、任意の数のデバイスの間で分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。例えば、プラットフォームは、アシスタントデバイス114が、テレビデバイス144およびカメラデバイス134と共に機能して、アシスタントデバイス114内のマイクロフォン、インターネット接続性、およびダイヤル機能がカメラデバイス134およびテレビデバイス144のディスプレイと組み合わされて高度な通信システムを可能にしてもよいビデオチャットリグを生成するよう適合されてもよいマイクロフォン入力および検索機能を含む、と判断してもよい。本明細書で説明されるシステムおよび方法は、矢印152,154,および156によって示されるように、分散型アンビエントコンピューティングシステム150内で接続能力を生成するためにプラットフォームを利用することができる。結合されたデバイス114,144,および134に対してポリシーを生成することができる。本明細書で説明されるプラットフォームは、要求されたタスクのための追加の能力を提供すると判断されたデバイスおよび/または別のデバイスにポリシーを適応させるために用いることができる。
【0047】
いくつかの実現例では、デバイス能力を組み合わせることは、あるデバイスが別のデバイスからの機能で更新されることを可能にしてもよい。例えば、スピーカデバイス(例えば、アシスタントデバイス114等)は、ディスプレイデバイス(例えば、スマートディスプレイデバイス112)と組み合わされて、規定された環境に対するセキュリティ機能を提供してもよい。
【0048】
いくつかの異なるデバイスが図1A図1Cに示されるが、任意の数のコンピューティングデバイス(例えば、アンビエントデバイス、パーソナルコンピューティングデバイス、電子デバイスなど)が、本明細書で説明されるプラットフォームおよび分散型アンビエントコンピューティングシステムを用いて動作するよう構成されてもよい。そのようなデバイスは、入力、出力、およびデバイス能力に従って定義されるため、本明細書で説明されるシステムおよび方法は、環境および/またはデバイスのうちの1つ以上と関連付けられるタスク要求ならびにポリシーに従って、デバイス能力を利用してもよい。
【0049】
本明細書で用いられるように、規定された環境(例えば、ユーザ環境、住宅)は、関連付けられるユーザ、部屋、平方フィート数、認識および/もしくは構成されたデバイス、ならびに/または世帯と関連付けられる他の要素のうちの1つ以上に基づいて規定される世帯を含んでもよい。いくつかの実現例では、規定された環境は、ほんの数例を挙げると、建物、ユーザ定義周辺部、住宅を囲む構内、アパート、コンドミニアム、建物の組、または部屋を含んでもよい。
【0050】
本明細書で説明されるデバイス(例えば、電子デバイスおよび/またはコンピューティングデバイス)は、スマートディスプレイ、テレビ、モバイルデバイス、タブレット、コンピュータ、ゲームコントローラ、ライト、アラームクロック、電子アシスタント、スマートウォッチ、スマートフォン、サーモスタット、電化製品、ファン、スイッチ、スプリンクラー、空気清浄機、ブラインド、天幕、シャッター、カーテン、窓、ガレージ扉開閉器、シャワー、セキュリティシステム、電子ドアベル、カメラおよびカメラを有するデバイス、電子ロック、煙検出器、近接度センサ、インターネット接続スピーカ、ラップトップ、デスクトップ、ワークステーション、車、または情報を通信し得る他のデバイスを含んでもよいが、それらに限定はされない。
【0051】
図2は、本明細書で説明する実現例による、複数のデバイスを含む例示的な分散型アンビエントコンピューティングシステム200を示すブロック図である。システム200は、タスクが分散型アンビエントコンピューティングシステム200内のデバイスのいずれかの間でディスパッチおよび/または共有され得るように、コンピューティングデバイス(例えば、コンピューティングシステム202およびコンピューティングデバイス204)、アンビエントデバイス(デバイス104,106,108,112,114,および116)、および/または他のモバイルデバイス(図2に図示せず)を、単一の分散型コンピューティング環境として機能するように構成するために、用いられてもよい。例えば、システム200は、特定の環境の各部屋内の各デバイス上で実行する基底のオペレーティングシステムにかかわらず、入力を取得し、デバイス機能性および/または処理を制御し、出力を提供する目的で、各デバイスを認識および記述することが可能であってもよい。
【0052】
いくつかの実現例では、複数のデバイスは、たとえば、分散型アンビエントコンピューティングシステム200において利用可能な利用可能なソフトウェアコンポーネント(および機能)から動的に形成されてもよい任意の数のアプリケーションを含んでもよい。これらのアプリケーションは、オペレーティングシステムに依存しないプラットフォーム上で動作する動的相互運用性を提供することができる。
【0053】
本明細書で用いる分散型アンビエントコンピューティングシステムは、互いの間で、および/またはネットワークのために構成された他のデバイスの間で通信してもよい、複数の(たとえば、2つ以上の)自律コンピューティングデバイス、モバイルデバイス、アンビエントデバイス、パーソナルハンドヘルドデバイス、センサなどのネットワークを指してもよい。このネットワークは、いくつか例を挙げると、事前定義されたネットワーク、自律的に生成されたネットワーク、ピアツーピアネットワーク、またはUPnP、SLP、もしくはGSM(登録商標)などのプロトコルを用いてネットワーク内のデバイス間でデータが転送されることを可能にする他のネットワークであってもよい。分散型アンビエントコンピューティングシステムは、分散型アンビエントコンピューティング環境のために規定されたデバイスのうちの1つ以上に関連付けられるユーザから受信されたタスクおよび要求を実行するために、共有リソース、通信インフラストラクチャ、UI要素、および/またはサービスの協調使用を提供することができる。本明細書で用いられるように、分散型アンビエントコンピューティング環境は、分散型アンビエントコンピューティングネットワーク内で構成されたデバイスに利用可能なリソース、通信インフラストラクチャ、UI要素、および/またはサービスへのアクセスを有する、定義された物理的空間を指してもよい。
【0054】
特定の分散型アンビエントコンピューティングシステムにおける各デバイス(例えば、図2の例におけるデバイス104,106,108,112,114,116,および204)は、限定はしないが、(センサ206a~206g、入力208a~208gおよび出力210a~210gからの)それぞれのデバイス能力を含む、そのようなデバイスに関連付けられる能力、および規定されたユーザ環境内のそれぞれのデバイス位置によって、定義されてもよい。コンピューティングシステム202は、例えば、デバイス104,106,108,112,114,116,および204のいずれかにわたってタスクを動的に分散するよう構成されてもよい。
【0055】
センサ206a~206gは、デバイス能力を表してもよい。任意の数のセンサが、本明細書で説明されるデバイス上で利用可能であってもよい。加えて、特定のセンサが1つのデバイス上で利用不可能である場合、別のデバイスが、ユーザ要求タスク内で要求される能力を行う(例えば、実行する)ように、そのセンサを提供してもよい。例示的なセンサは、光学センサ、画像センサ、音声センサ、動きセンサ、近接度センサ、温度センサ、赤外線センサ、超音波センサ、タッチセンサ、圧力センサ、レベルセンサ、煙および/またはガスセンサ、化学センサ、加速度計、ジャイロスコープ、環境センサなどを含んでもよいが、これらに限定はされない。
【0056】
入力208a~208gは、たとえば、触覚ユーザ入力を受信することができるタッチ入力デバイス、ハンドコントローラ、モバイルデバイス(または他のポータブル電子デバイス)、可聴ユーザ入力を受信することができるマイクロフォンなどを介して受信されるコンテンツを含んでもよい。出力210a~210gは、例えば、視覚出力のためのディスプレイ、音声出力のためのスピーカなどのためのコンテンツの生成を含んでもよい。
【0057】
いくつかの実現例では、各デバイス104,106,108,112,114,116,および204は、いくつかのアプリ211a~211gを含む。アプリは、サービス214、ポリシーおよび許可252、選好254、ならびに分散ストレージ256を利用してもよい。ポリシーおよび許可252は、デバイス許可、デバイスポリシー、ユーザ許可、ユーザポリシーなどに関連してもよい。分散ストレージ256は、ローカルコピーとしてデバイス202(または他のデバイス)上にあってもよいが、パブリックもしくはプライベートネットワーク、インターネット接続ネットワーク、または他のネットワークを介して更新されてもよい。同期は、2つの分散ストレージログ、例えば、ストレージ256とストレージ257との間で行うことができる。
【0058】
非限定的な例では、システム200は、システム内のデバイスの入力、出力、および能力を判断し、どのデバイスがタスクを実行するのに用いられ得るか、情報を表示するのに用いられ得るかなどに関する判断を行ってもよい。たとえば、カメラデバイスは、ビデオ入力およびマイクロフォン入力を含み得るが、出力能力は含まない場合がある。加えて、カメラデバイスのためのデバイス処理能力も、限定される場合がある。同じシステム200に関連付けられるテレビデバイスは、入力としてマイクロフォンを有してもよく、カメラディスプレイよりも大きなディスプレイを有してもよく、したがって、カメラデバイス上に視覚出力を提供する代わりに、ユーザに便利な視覚出力を提供してもよい。Wi-Fiルータまたはスマートディスプレイなどの他のデバイスは、同様のまたは異なる入力および/または出力を有してもよいが、追加の処理能力および/またはメモリを有してもよく、したがって、システム200内の別のデバイスのための処理を実行するように、システム200によって選択されてもよい。動作中、システム200は、どのデバイスがユーザ要求タスクを満たすのに適しているかを動的に判断してもよい。
【0059】
いくつかの実現例では、コンピューティングシステム204およびデバイス104~116は、コンピューティングシステム202に示されるコンポーネントを含んでもよい。そのような例では、各コンピューティングシステムおよびデバイスは、能力を評価するために、および/またはデバイス104~116の間でタスクを分散するために、用いられてもよい。例えば、コンピューティングシステム204は、画像センサ、音声センサおよびインターネット接続性を伴うアシスタントデバイスであってもよい。コンピューティングシステム204は、規定された世帯内の地下室位置に位置してもよい。コンピューティングシステム200は、タスク実行を実行および/または共有するために、デバイス104,106,108,112,114,および116のいずれかならびにコンピューティングシステム202にアクセスしてもよい。例えば、世帯内のあるユーザが、システム204を介して、世帯に関連付けられるキッチン位置で映画を再生するよう要求する場合、コンピューティングシステム204は、どのデバイスが映画を再生する能力を有するかを判断するために、世帯に関連付けられるデバイスのいずれかの間で利用可能な能力を評価してもよい。この例において、システム204は、キッチンに位置するアシスタントデバイス112および世帯のリビングルームに位置する第2のデバイス144が映画を再生する能力を有する、と判断してもよい。これに応答して、システム204は、アシスタントデバイス112が適切なロケーション(キッチン内)にあり且つ要求された能力を有する(例えば、映画を再生する)デバイスであると判断する。したがって、コンピューティングデバイス204は、アシスタントデバイス112上でストリーミングするために、映画をトリガする。同様に、デバイス104は、コンピューティングシステム202に示されるコンポーネントを含んでもよい。したがって、デバイス104は、分散型アンビエントコンピューティングシステム200内のデバイス内およびデバイス間でタスクを実行、共有、および/または分散させるために用いられてもよい。
【0060】
概して、コンピューティングデバイス202および204ならびにデバイス104~116は、本明細書で説明されるシステムおよびプラットフォームを用いて、互いの間でデータをワイヤレスに通信および/または転送してもよい。いくつかの実現例では、各デバイスは、分散型アンビエントコンピューティングシステム200において、システム200に関連付けられる各デバイスと通信するよう構成されてもよい。
【0061】
図2に示すように、コンピューティングシステム202は、オペレーティングシステム(O/S)212を含む。O/S212は、アプリケーション、サービス、およびデバイス通信を実行ならびに/または制御するように機能してもよい。O/S212は、第1のタイプのオペレーティングシステムであってもよいが、図2に示される(または特定の分散型アンビエントコンピューティングシステムに関連付けられる)他のデバイスは、異なるデバイスハードウェアを動作させる異なるオペレーティングシステムであってもよい。
【0062】
動作時、本明細書で説明されるシステムおよび方法は、例えば各デバイスが異なるオペレーティングシステムを実行していてもよい(例えば世帯内における)分散型アンビエントコンピューティングシステム200内にあってもよい任意の数の異なるデバイスタイプのための1つ以上のサービス214へのアクセスを提供してもよい。サービス214は、分散型アンビエントコンピューティングシステム200において検出された(例えば、受信された)タスクを生成し、管理し、実行するよう構成されてもよい。加えて、サービス214は、O/Sレベルのアクセスを提供して、周辺(例えばアンビエント)デバイスおよび能力を検出してもよい。サービス214は、システム200において受信された1つ以上のタスクをディスパッチするO/Sレベルエグゼクティブ決定者であってもよい。
【0063】
サービス214は、サービスプロバイダによってユーザに提供されるパーソナライズされたコンピュータベースのサービスを含んでもよい。いくつかの実現例では、サービスはパーソナライズされなくてもよく、代わりに、ユーザのコンピューティングデバイスおよび/または電子デバイス上で用いるためにユーザに提供される一般的なサービスであってもよい。いくつかの実現例では、サービスは、ユーザの要求時にアプリ(たとえば、アプリケーション)を介して提供されてもよい。
【0064】
O/S212は、アプリケーション216、タスクマネージャ218、アイデンティティマネージャ220、デバイスマネージャ222、およびコンテキストマネージャ224を、実行および/またはそうでない場合には管理することができる。アプリケーションは、ユーザインターフェイス(UI)生成部226およびユーザデータ228を含んでもよく、これらの両方は、コンテンツおよび/またはデータを生成し、そのようなコンテンツおよび/またはデータをデバイスインターフェイスを介してユーザに提供するために用いられてもよい。
【0065】
タスクマネージャ218は、分散型アンビエントコンピューティングシステム200全体にわたるタスクの分散を管理することができる。たとえば、タスクマネージャ218は、システム200内のデバイスのうちの1つ以上を用いるタスクの完了をトリガするために、タスクおよびデバイス能力を評価してもよい。
【0066】
アイデンティティマネージャ220は、システム200に関連付けられるアイデンティティを管理してもよい。例えば、ユーザは、アイデンティティを用いてデバイスに関連付けられてもよい。アイデンティティは、アイデンティティアカウントに関連付けられてもよいが、そのようなアカウントは、サービスプロバイダによって制御および生成されるのではなく、ユーザによって制御および生成される。各アイデンティティは、グローバルに一意の識別子として表されてもよい。加えて、各アイデンティティは、ペルソナを用いて表されてもよく、これは、例えば、ユーザ(またはユーザと関連付けられるデータ)を第三者またはシステム200内の他のデバイスに提示するために用いられてもよい。概して、アイデンティティマネージャ220は、ユーザ、住宅サービス、物理的建物、およびデバイスを追加および/または修正するために用いられてもよい。たとえば、アイデンティティマネージャ220は、物理的建物(たとえば、住宅)を表してもよいアカウントを生成してもよい。住宅のアイデンティティは、ユーザが所有権を主張してもよいアドレスおよび他の識別用データを含んでもよい。物理的建物のアイデンティティは、典型的には、人間のユーザまたはサービスプロバイダに直接つながっておらず、代わりに、住宅のためにユーザによってセットアップされたアカウントに対応する。
【0067】
ある例では、ユーザは、特定の物理的建物の所有権を主張してもよい。これに応答して、アイデンティティマネージャ220は、物理的建物と、その位置と、その建物に関連付けられる世帯内の1人以上のユーザとの間のつながりを生成することができる。例えば、アイデンティティマネージャ220は、物理的建物に対応する世帯と関連付ける(すなわち関係付ける)追加のユーザを設定するように、ユーザによって要求されてもよい。アイデンティティは、そのような関係を含んでもよく、システム200は、そのような関係に基づいて権利、ポリシー、および選好を割り当ててもよい。
【0068】
デバイスマネージャ222は、システム200内のデバイスステータスおよび状態を管理ならびに評価してもよい。いくつかの実現例では、デバイスマネージャ222は、特定の環境のためにデバイスを設定してもよい。例えば、1つ以上のセットアップAPIが、セットアップアプリケーションによって埋め込まれ、および/または別様に利用されてもよく、セットアップアプリケーションは、デバイスの基底のオペレーティングシステムにかかわらず、システム200内の他のアンビエントコンピューティングデバイスとの相互運用性を依然として保証しながら、ブランド表現側面(例えば、デバイスブランド毎のUIコンテンツ)を提示するために、システム200内の任意の特定のデバイスのデバイスマネージャによって用いられてもよい。
【0069】
いくつかの実現例では、デバイスマネージャ222は、デバイス対デバイスセットアップを提供するか、またはそうでなければ有効にしてもよい。たとえば、スマート住宅デバイスは、以前にプロビジョニングされたデバイスアイデンティティを介したユーザ確認で、ピアツーピアネットワーク(または超音波もしくは他のワイヤレス技術を介した他のネットワーク)を介して通信してもよい。確認で、以前にプロビジョニングされたデバイスは、たとえば、スマート住宅デバイスのうちの1つ以上にサービス、選好、および/または設定を通信してもよい。したがって、手動Wi-Fiセットアップ、デバイスセットアップ、またはボックスセットアップタスクのうちの他のものは、不要にされてもよい。
【0070】
いくつかの実現例では、デバイスマネージャ222は、ユーザが以前に構成したデバイスに応じて、および以前のデバイス構成に関連付けられる情報に基づいて、特定のデバイス機能を個々にアクティブ化および/または並べ替えることができるように、モジュール式の、すぐに利用できる体験を提供することができる。デバイスマネージャ222は、次いで、ユーザが新たなセットアップを伴う体験を求めるときに、初期デバイスセットアップに関連付けられる情報を再利用してもよい。
【0071】
コンテキストマネージャ224は、イベント、ステートメント、またはアイデアのための設定を形成する状況を評価してもよい。コンテキストマネージャ224は、それを完全に理解および評価できる設定を定義してもよい。例えば、コンテキストマネージャ224は、分散型アンビエントコンピューティングシステム200内のデバイス間で、コンテキストを意識したコンピューティングを提供してもよい。例えば、コンテキストマネージャ224は、関係のあるアクション可能な情報をデバイスのユーザに提示するために、ソフトウェアおよび/またはハードウェアを用いて、デバイスの周囲環境に関するデータを収集および分析してもよい。収集および分析は、ユーザが規定されたロケーションの外で追加のリソースを用いることを要求しない限り、ユーザ許可に従って、デバイスに関連付けられるロケーション内で行われる。いくつかの実現例では、コンテキストマネージャ224は、個々のデバイスから信号を収集し、信号を分析し、住宅全体のコンテキストに合成し、システムおよび/またはデバイスの許可に従ってコンテキストの変化をサービスおよびシステム(たとえば、デバイス)の他の部分に通知してもよい。
【0072】
図2に示されるように、O/S212は、サービス214、通信モジュール230、カメラ232、メモリ234、およびCPU/GPU236を含むか、またはそれらへのアクセスを有してもよい。コンピューティングシステム202はまた、感知システム238を含むか、またはそれへのアクセスも有してもよい。感知システム238は、慣性測定ユニット(IMU)センサ240と、音声センサ242と、ジェスチャセンサ244と、画像センサ246と、画像分析部248と、ロケーション識別部250とを含む。感知システム238は、通信モジュール230、カメラ232、距離/近接度センサ(図示せず)、位置センサ(図示せず)、および/もしくは他のセンサならびに/または異なるセンサの組み合わせへのアクセスを有してもよい。システム212によってアクセスされるセンサのいくつかは、システム200またはシステム200のユーザに関連付けられるデバイスの位置検出に備えてもよい。システム238のセンサのうちのいくつかは、デバイス104、106、108、112、114、116、および/または204のうちの1つ以上のコンポーネント上における表示のために、分散型アンビエントコンピューティングシステムと関連付けられる物理的環境の画像のキャプチャに備えてもよい。
【0073】
IMUセンサ240は、コンピューティングシステム202のために、角速度および線形加速度を検出または測定するように機能してもよい。次いで、システム202は、IMUセンサ240によって取得された測定値に基づいて、3D空間における3D配向を計算および/または推定してもよい。IMUセンサ240は、1つ以上の加速度計、ジャイロスコープ、磁力計、および他のそのようなセンサを含んでもよい。概して、IMUセンサ240は、たとえば、デバイス202の動き、移動、速度、および/または加速度を検出してもよい。
【0074】
画像センサ246は、デバイス202(またはデバイス202と通信する別のデバイス)によって実行されるカメラキャプチャに関連付けられるバックグラウンドデータの変化を検出してもよい。カメラ232は、後向きキャプチャモードおよび前向きキャプチャモードを含んでもよい。
【0075】
コンピューティングシステム202は、特定のポリシーおよび許可252ならびに選好254を生成および/または配信してもよい。ポリシー252および選好254は、デバイス製造業者またはユーザによって構成されてもよい。ポリシー252および選好254は、音声コマンド、視覚コマンド、スケジュールベースのコマンド、または他の構成可能なコマンドに基づいてトリガするルーチン(すなわち、アクションのセット)を含んでもよい。たとえば、ユーザは、1つ以上のドアをロックし、1つ以上のカメラをオンまたはオフにし、ライトを消すように、事前規定されたロケーションにおいてデバイスをトリガするための選好および/またはアクションとともに夕方ルーチンをセットアップしてもよい。受信されたコマンドは、そのようなルーチンをトリガしてもよい。他のポリシーおよび選好は、当然、ポリシーおよび許可252ならびに/または選好254とともに構成された特定のロケーションに関連付けられる他のデバイスを修正および/または制御するよう構成されてもよい。
【0076】
いくつかの実現例では、コンピューティングシステム202は、分散型アンビエントコンピューティングシステム200の動作中にデバイスステータスおよびタスクステータスを維持するために、分散ストレージ256(および/または分散ストレージ257)にアクセスしてもよい。そのような分散ストレージ256(および/または分散ストレージ257)は、分散ストレージシステムを表してもよい。いくつかの実現例では、分散ストレージ256(および/または分散ストレージ257)は、サービス214として提供されてもよい。そのようなサービスは、特定の世帯、建物、ユーザなどによって所有されるデバイスにわたって同期されてもよい。いくつかの実現例では、分散ストレージ256(および/または分散ストレージ257)は、アプリケーションを介して提供されてもよい。
【0077】
特定の定義されたユーザの代わりに実行する各アプリケーション216および/またはコンポーネントは、例えば、分散ストレージ(例えば、ログ)256によって提供および管理され、ユーザによって要求されるように、他のユーザ関連デバイスに提供される、別個のデータストアを有してもよい。特定のコンポーネント/ユーザの組み合わせのためのデータストアは、ユーザにプライベートであり、したがって、同じユーザの他のアプリケーションにはアクセスできず、同じアプリケーション(または別のアプリケーション)の他のユーザにはアクセスできない。各データストアは、ネットワークリソースプロバイダ(例えば、ネットワーク259)を通して、ユーザに関連付けられるデバイスにわたって透過的に同期されてもよい。いかなるデータ操作も、ネットワークとの協調なしでオフライン優先で実行されてもよい。同時修正がデータ競合をもたらす場合、その競合は、例えば、アプリ構成可能マージポリシーを用いて解決することができる。
【0078】
いくつかの実現例では、分散ストレージ256(および/または分散ストレージ257)の実現例は、データをローカルに記憶し、そのデータへのアクセスを提供するストレージ(図示せず)と、ストレージと対話するクライアントコンポーネントと、分散ストレージ256APIをローカルに実行されるアプリケーション(たとえば、アプリケーション216)に公開するローカルクライアントとを含む。
【0079】
動作中、分散ストレージ256は、アプリケーション216のためにローカルに動作してもよく、アプリケーションがゲストモードで動作している場合、データをネットワーク259および分散ストレージ257と同期させなくてもよい。アプリケーション216が標準モードで動作している場合、分散ストレージ256は、ネットワーク259を介してネットワークインスタンスを用いてユーザデータを同期してもよい。概して、ネットワーク259は、ハイブリッドネットワークサービスまたはパブリックネットワークサービスを提供してもよい。ハイブリッドネットワークサービスは、ハイブリッドネットワークソリューションベンダによって生成、提供、および/またはサービスされてもよい。パブリックネットワークサービスは、パブリックネットワークを管理するサービスプロバイダによって所有および運営されてもよい。
【0080】
分散ストレージ256は、アプリケーション(例えば、アプリケーション216)が、同期および表面化されてもよい変更のセットをなすことを可能にするトランザクションを実行することに備えてもよい。例えば、コンピューティングシステム202(例えば、クライアントデバイス)は、トランザクションを開始し、ページ状態のスナップショットを取得し、データを読み出してもよい。次いで、コンピューティングシステム202は(例えば、アプリケーション216を介して)、分散ストレージ256のページインターフェイスを介して変更を行ってもよく、トランザクションをコミットしてもよい。トランザクションが開始されると、ページの状態は、トランザクションがコミットまたはアボートされるまで進まないように追跡およびピン止めされる。これは、トランザクション書き込みがページのスナップショット上で可視の状態に正確に影響を及ぼすことを保証するという利点を提供してもよい。いくつかの実現例では、分散ストレージ257は、マスタ世帯分散ストレージとして動作することができ、マスタ世帯分散ストレージでは、構成された世帯デバイスが、分散ストレージ256などのそれぞれの分散デバイスストレージとの間でデータを共有(および同期)してもよい。
【0081】
ある特定の分散型アンビエントコンピューティングシステム内の各デバイスは、O/S212、感知システム238、通信モジュール230、サービス214、メモリ234、および/またはカメラ232と通信する1つ以上のプロセッサ(たとえば、CPU/GPU236)を含んでもよい。通信モジュール230は、コンピューティングシステム202と他の外部デバイスとの間の通信に備えてもよい。プロセッサ236は、特定のタスクを実行するために命令(例えば、コンピュータプログラム)を実行するよう構成される。いくつかの実現例では、プロセッサ236のうちの少なくとも1つは、分散型アンビエントコンピューティングシステムにおいてデバイスを動作させるために命令を実行する。メモリ234は、システム200内の要素間の通信および対話の全体にわたって利用されてもよい。
【0082】
加えて、コンピューティングシステム202は、1つ以上の周辺機器(図示せず)を用いるかまたはそれへのアクセスを有してもよい。例示的な周辺機器は、任意の数のコントローラ、コンピューティングデバイス、ヘッドマウントディスプレイデバイス、カメラ、スピーカ、追跡システム、および/またはデバイス202と通信する他のデバイスを含んでもよい。
【0083】
いくつかの実現例では、コンピューティングシステム202は、追跡システム(図示せず)を含むかまたはそれへのアクセスを有する。追跡システムは、例えば、光センサ、慣性測定ユニット(IMU)センサ240、音声センサ242、画像センサ246、画像分析部248、ロケーション識別部250、カメラ232、距離/近接度センサ(図示せず)、位置センサ(図示せず)、および/もしくは他のセンサならびに/または異なるセンサの組合せを含んでも(またはそれらにアクセスしても)よい。
【0084】
上述の問題に対する様々な解決策が、本明細書で説明される実現例に従い、コンピューティングシステムによって提供される。本願明細書において記載される実現例に従うコンピューティングシステムは、分散型アンビエントコンピューティングシステムに含まれるさまざまなセンサおよび/またはデバイスによって収集されたデータを活用して、住宅環境において利用可能でありかつ能力のあるデバイスを検出、識別および/またはランク付けするようサービスおよびプラットフォームとともに機能するデバイスのネットワークを生成(たとえば構築)してもよい。そのようなサービスは、分散型アンビエントコンピューティングシステム内の利用可能なデバイスにわたってタスクをディスパッチおよび/またはオーケストレーションするための判断を(例えば、ユーザ要求またはユーザ設定許可に基づいて)行ってもよい。サービスおよびプラットフォームに関するさらなる詳細は、以下で説明される。
【0085】
図3Aは、本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させるための例示的なアーキテクチャ300を示すブロック図である。アーキテクチャ300は、異なるオペレーティングシステムを実行するデバイスにわたって一様な構造を提供してもよい。各デバイスは、デバイスブランド認識などを可能にするために、統一されたUIコンテンツへのアクセスを有してもよい。
【0086】
図3Aに示されるように、アーキテクチャ300は、オペレーティングシステム(O/S)層302と、プラットフォーム層304と、コア情報アーキテクチャ(IA)306と、会話フレームワーク308と、表現言語310とを含む。O/S層302は、O/S312と、任意選択で他のオペレーティングシステム314とを含む。O/S312は、コンピューティングシステム202および/またはコンピューティングシステム204が動作してもよいオペレーティングシステムを表してもよい。O/S312は、特定の規定された環境内の他のデバイスにタスクを向ける(例えば、分散させる)よう用いられてもよい。他のオペレーティングシステム314は、オペレーティングシステム312上で動作していない、規定された環境内のデバイス(例えば、デバイス104、106、108、112、114、116など)からの入力および/またはデバイスへの出力として利用されてもよい。
【0087】
プラットフォーム層304は、図2に関して上記で詳細に説明したように、タスクマネージャ218、アイデンティティマネージャ220、デバイスマネージャ222、およびコンテキストマネージャ224を含む。概して、アイデンティティマネージャ220は、プラットフォーム層304内で同じレベルで各々が表されてもよいユーザ、住宅サービス、およびデバイスを追加ならびに/または修正するために用いられてもよい。プラットフォーム層304は、O/S層312とコアIA306との間で情報を通信してもよい、本明細書で説明されるプラットフォームを表してもよい。
【0088】
(異なるハードウェアおよびソフトウェアとともに動作する)いくつかのデバイスが重複する機能性を含んでもよいため、プラットフォーム層304は、定義されたユーザのアイデンティティに基づいて、ユーザにより要求される(または別のデバイスを用いてユーザから要求される)タスクをオーケストレーションするように、そのようなデバイスを評価、管理、および構成するために、用いられてもよい。たとえば、アイデンティティマネージャ220は、限定はしないが、建物、ユーザ、世帯、企業などを含むエンティティのためのアイデンティティを生成し、それを用いるために、用いられてもよい。デバイスマネージャ222は、そのようなエンティティを表すアカウントを生成するために用いられてもよい。特定のエンティティのアイデンティティは、例えば、プロバイダによって記憶され、所有され、サービスされるサービスプロバイダアカウントの置き換えであってもよい。アイデンティティは、サービスプロバイダによって所有および維持されるのではなく、ユーザによって所有および維持されてもよい。
【0089】
再び図3Aを参照すると、コア(IA)306は、少なくともコア状態モジュール316とナビゲーションシステム318とを含む。コア状態モジュール316は、例えば、分散型アンビエントコンピューティングシステム200内の各デバイスのコンポーネントのコア状態を評価および判断する。ナビゲーションシステム318は、特定のデバイスがどの状態にあるかを判断して、システム200がそのような情報をシステム200内の他のデバイスと共有してもよいようにしてもよい。
【0090】
会話フレームワーク308は、適応および応答レイアウトならびにコンポーネントモジュール320と、マルチモーダルユーザエクスペリエンス(UX)モジュール322とを含む。モジュール320は、コアIA306によって生成されるUIコンテンツが、システム200内の各デバイスについて特定のソフトウェアおよび/またはハードウェアコンポーネントを適合させ、それで応答することができることを保証してもよい。マルチモーダルUXモジュール322は、システム200の分散型アンビエントコンピューティング機能を利用しながら、ユーザがシームレスでデバイス固有の体験を提供されることを保証するために、UIコンテンツを生成してもよい。表現言語310は、たとえば、ユーザにコンテンツを提供するデバイスおよび/または分散型アンビエントコンピューティングシステム200に関連付けられる他のデバイスのためにUIコンテンツを生成するために用いられてもよい表現言語324を含んでもよい。
【0091】
アーキテクチャ300の動作において、コアIA層306、会話フレームワーク308、および表現言語310は、プラットフォーム層304およびO/S層302とともに機能して、システム200が、特定の分散型アンビエントコンピューティングシステムに関連付けられるデバイスにわたって同じ情報アーキテクチャおよび同じ状態セットならびにコンポーネントを有することを保証してもよい。次いで、アーキテクチャ300は、デバイス固有のUIコンテンツおよび/またはUXシナリオを可能にしながら、デバイスにわたって採用されるUX設計に従ってコンテンツを表示してもよい。例えば、ユーザは、スマートウォッチを介してタスクを要求してもよく、それは異なる部屋においてスマートハブ上に表示される。ディスプレイは、結合的であり、類似していてもよいが、デバイス、製造業者、システムのためにセットアップされたポリシー、システムのためにセットアップされた選好等に基づいて、異なる色スキーム、要素、または他のUIコンテンツを描写してもよい。
【0092】
図3Bは、本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させるための例示的なアーキテクチャ350である。例えば、アーキテクチャ350は、分散型アンビエントコンピューティングシステム200を動作させるために用いられてもよい。アーキテクチャ350は、O/S312と、サービスプロバイダ、開発者、および/またはデバイス製造業者によって提供される任意の数の要素352を含んでもよい。
【0093】
要素352は、サービス214、電子サービスB354、電子サービスC356、アプリ358、ならびに第二者(2P)および第三者(3P)デバイスおよび/またはサービス360を含む。いくつかの実現例では、3Pデバイスは、相手先ブランド製造業者(OEM)がブランド化可能なコンポーネントをデバイスセットアップフローに埋め込むことを可能にして、製品構成中にOEMブランド化が存在することを保証する構成APIを含んでもよい。
【0094】
例えば、3Pデバイス構成は、典型的には、ユーザを、複数のアイデンティティおよび/またはパスワードを利用する異なるアプリならびにウェブフローに入れる。各特定の3Pデバイスは、デバイスを異なるよう構成する場合があり(たとえば、ペア形成、命名法、保守)、これは、デバイスを構成する際に困難をもたらすことがあり、デバイスにわたってデータ矛盾を引き起こすことがある。ますます多様かつ低忠実度のデバイスが市場に出てきており、全体的または一貫したセットアップソリューションがないなか、ユーザは、ハードウェアブリッジまたは中間アプリをセットアップすることを強いられることが多く、これは、ハードウェアおよびデバイスエコシステムをユーザに対して断片化される状態にする場合がある。これは、3Pデバイスに互換性がないように感じさせ得る。本明細書に説明されるシステム200、アーキテクチャ300、および350を用いて、プラットフォームは、デバイス製品キーを認識するために用いられることができ、新たなデバイスは、例えば、システム200と関連付けられるロケーションの命名および構造言語を継承してもよい。
【0095】
本明細書で説明するプラットフォームは、近くの1Pデバイスがそのような3Pデバイスのための通信および処理のためのハブとして働くことを可能にしてもよい。加えて、プラットフォームは、OEMが、ロケーションにおけるデバイス間で一貫性のある、すぐに利用できる体験を保ちながら、かれらのブランドを柔軟に維持することを可能にするセットアップAPIを使用できるようにしてもよい。モジュール式の、すぐに利用できる体験に、埋め込み可能なブランド化されたコンポーネントを提供することにより、セットアップ/構成フローを視覚的に離れることなく、基本的な許可を可能にすることができる。
【0096】
サービス214は、OEM、サービスプロバイダ、アカウントプロバイダなどによって提供されるデバイスサービスを表してもよい。いくつかの実現例では、サービスは、デバイスのための物理ペアリングサービスを含んでもよい。そのようなサービスは、ペアリングのための一貫した規格が、デバイスパッケージング、デバイス材料、デバイスセンサ、および/またはデバイスソフトウェアを通して表現され得ることを保証してもよい。
【0097】
電子サービスB354は、ユーザ要求タスク、コマンド、および/または他の入力に応答して、応答音声情報、タスク完了、および/または通信アクセスを含んでもよい。電子サービスC356は、リアルタイムフィードバック、リマインダ、情報、および/または他のユーザ要求コンテンツを受信するために電子サービスB354の使用を含んでもよい。
【0098】
アプリ358は、分散型アンビエントコンピューティングシステム内のデバイスのいずれかとともに使用可能な第一、第二、または第三者アプリであってもよい。第二者(2P)および第3三者(3P)デバイスおよび/またはサービス、デバイス要素、ならびにサービスは、オペレーティングシステム314(またはO/S312に包含されない別のO/S)を実行する。例えば、第二者(2P)および第三者(3P)デバイスならびに/またはサービス360は、それぞれのデバイスもしくは2Pおよび/もしくは3Pサービスを受信するそれぞれのデバイスのハードウェアならびに/またはソフトウェアの製造業者ではない第二者または第三者によって、製造、提供、および/または他の態様で提供されてもよい。
【0099】
図3Bに示すO/S312は、システム200およびアーキテクチャ300の部分を含む(かまたはそれらにアクセス)してもよい。O/S312は、センサ層362と、計算/記憶/調整層364と、UX層366とを含む。センサ層362は、任意の数の第一者(1P)センサ368と、任意の数の2Pセンサおよび/または3Pセンサ370とを含む。1Pセンサ368は、たとえば、O/S312(またはO/S212)を実行するデバイスのために設計されたセンサを含んでもよい。2Pおよび3Pセンサ370は、オペレーティングシステム314(またはO/S312に包含されない別のO/S)を実行するセンサおよび/またはデバイス要素を含んでもよい。
【0100】
計算/記憶/調整層364は、集中型住宅(例えば、世帯)計算および/またはストレージリソース372と、1P分散住宅(例えば、世帯)計算ストレージリソース374とを含んでもよい。集中型住宅(例えば、世帯)計算ストレージリソース372は、分散ストレージ256ならびに他のデバイスおよび/またはネットワークベースの分散ストレージと機能して、デバイスのストレージおよび同期を調整してもよい。1P分散住宅(例えば、世帯)計算および/またはストレージリソース374は、1Pセンサ368に関するデータを記憶するように機能してもよい。
【0101】
層364はまた、アシスタントシステムUI376、コンテキスト信号378、アイデンティティおよび/または許可380、ならびに分散ストレージ256へのアクセスも含む。アシスタントシステムUI376は、ユーザが情報を提供され、他の情報を入力できるように、アシスタントまたは他のデバイスを介して提供されるUIコンテンツを含んでもよい。コンテキスト信号378は、ポリシー、ルール、およびデバイスアクションを実現するために用いられてもよい、デバイスレベルで決定される信号を含んでもよい。アイデンティティおよび/または許可380は、世帯内のデバイスおよびユーザを識別するために用いられてもよいルールおよび/またはデータ、ならびにそのようなユーザに関連付けられる任意の許可であってもよい。
【0102】
分散ストレージ256は、分散型アンビエントコンピューティングシステム200の動作中にデバイスステータスおよびタスクステータスを維持してもよい。そのような分散ストレージ256は、分散型アンビエントコンピューティングシステム200のための分散ストレージシステムを表し、および/または提供してもよい。いくつかの実現例では、分散ストレージ256は、サービス214として提供されてもよい。そのようなサービスは、特定の世帯、建物、ユーザなどによって所有されるデバイスにわたって同期されてもよい。いくつかの実現例では、分散ストレージ256は、アプリケーションを介して提供されてもよい。
【0103】
動作中、アーキテクチャ350は、ユーザが内部でデバイスを操作するための結合住宅空間を提供してもよい。ユーザが自分の住宅および関連付けられるデバイスと対話する際、ユーザは単一の世帯の異なる態様と対話していてもよく、したがって各住宅利用アーキテクチャ350は、例えば、アシスタントシステムUI376を用いて単一のデジタルアシスタントにより操作され得る。いくつかの実現例では、そのようなUI376は、住宅のために購入された第1のデジタルアシスタントデバイスと対応してもよい。したがって、第1のデジタルアシスタントデバイスは、住宅のためのユーザのエコシステムであってもよい。
【0104】
プラットフォーム304は、O/S312と機能して、各関連付けられるデバイスが能力(例えば、1Pセンサおよび3Pセンサ)、レンダリング層(例えば、UX層366)、および計算(例えば、層364)の集合と見なされる、分散型アンビエントコンピューティングシステムを提供してもよい。O/S312は、異なるデバイスを、それらの、所望の交差住宅体験(cross-home experience)をもたらす能力に応じて、オーケストレーションしてもよい。住宅体験は本質的に共同的であり、家族関係に向けて指向されるので、O/Sは、住宅内の関係を考慮に入れながら、世帯内のユーザに独自の個人的体験を提供してもよい。
【0105】
図4は、本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムにおけるタスク要求およびタスクの実行を示す例示的な図である。図示のように、ユーザ402は、任意の数のデバイスが特定のロケーション400(たとえば、ユーザの住宅)に関連付けられていてもよい。そのようなデバイスの構成は、本文書を通して説明される。
【0106】
マルチデバイス住宅を管理することは扱いにくい場合があるため、単一のアシスタントデバイスを用いて、例えば、ロケーション400において住宅に関連付けられるデバイス間に生じ得るギャップを橋渡ししてもよい。各デバイスおよびインフラストラクチャは、別個のインターフェイスおよび選好を有してもよい。単一のアシスタントは、デバイス間の通信インフラストラクチャ、UI要素、およびユーザデータ、インフラストラクチャ、ならびにデバイスに関連付けられるサービスを提供するように機能して、住宅ロケーション400に関連付けられるデバイスの単純なユーザ制御を提供しながら、そのようなデバイスが共に動作することを可能にしてもよい。概して、単一のアシスタントは、O/S212/312ならびにアーキテクチャ300および/またはアーキテクチャ350を用いて動作して、デバイスにわたってコンテンツを適応させてもよい。
【0107】
再び図4を参照すると、ある時点で、ユーザ402は、アシスタントデバイス406、テレビ408、アラームクロック410、タブレット412、携帯電話414、およびライト416を含むが、それらに限定されない、1つ以上のデバイスを関与させるタスクを要求してもよい。例えば、ユーザ402(図4に示す)は、「就寝時」タスク404を発話した。それに応答して、システム200は、アーキテクチャ300および/またはアーキテクチャ350を用いて、デバイス406~416の就寝時関連タスクを実行してもよい。たとえば、ロケーション400のためにセットアップされた分散型アンビエントコンピューティングシステム(たとえば、システム200)は、デバイス406~416のうちの1つが、発話されたタスクを実行するようにロケーション400における他のデバイスをトリガすることが可能である、と判断してもよい。ここで、アシスタントデバイス406は、ユーザ要求タスク404を受信するデバイスとして示される。アシスタント406は、アシスタントデバイス406をコントローラとして用いるかまたは最も近くの対応デバイスを他のデバイスのコントローラとして用いるようユーザによって設定された条件、ポリシー、または選好に基づいて、タスクを受信してもよい。いくつかの実現例では、システム200は、たとえば、ユーザに最も近いと判断されたデバイスを他のデバイスのためのコントローラデバイスとして利用するために、デバイス406~416のために構成されたかもしれない、あらかじめ定義された近接度条件にアクセスしてもよい。
【0108】
ユーザのタスク404(例えば、コマンド)がアシスタントデバイス406によって受信される場合、デバイス406(システム200として利用または動作する)は、デバイス406~416(すなわち、それ自体を含む)のうちのどれがタスク404を実行するよう構成される、および/または実行可能であるかを判断してもよい。この例では、デバイス406~416は、「就寝時」タスク404でセットアップされた特定のユーザ選好254ならびに/またはポリシーおよび許可252に対応してもよい夜間モードをトリガするよう構成および/または可能であってもよい。就寝時タスクを実行することが可能であり、そのように構成されると判断される任意のデバイスを、タスク404を実行するためにアシスタントデバイス406によりトリガしてもよい。例えば、アシスタントデバイス406は、テレビ408を消すよう、および/または事前規定された夜間モードに変更するよう、トリガしてもよい。同様に、アシスタントデバイス406は、アクセスされたユーザスケジュール、時刻、曜日等に基づいて、アラームクロック410にアラームが設定されるようトリガしてもよい。加えて、アシスタントデバイス406は、タブレット412をシャットダウンするかまたは通知を遮断するようにトリガしてもよい。アシスタントデバイス406はまた、夜間モードで機能するように携帯電話414上の機能を変更してもよい。加えて、アシスタントデバイス406は、ライト416などの他のデバイスを遮断または減光してもよい。上記の変更の各々は、ユーザ要求タスク404を実行するために、組み合わせてまたは連続的にトリガされてもよい。
【0109】
タスク404を発話する前に、ユーザは、ユーザ情報、スケジューリング情報などを用いてデバイス406~416を構成していてもよい。例えば、ユーザは、ユーザ情報、スケジューリング情報、または他の検出された情報を用いてモバイルデバイス414を構成していてもよく、モバイルデバイス414は、デバイス406~416を含む、以前に構成された分散型コンピューティングシステムに基づいて、そのような情報をデバイス406~412および416と共有してもよい。代替として、ある分散型(アンビエント)コンピューティングシステムは、タスクが受信されると、ランタイムおよびオンザフライでセットアップされてもよい。いくつかの実現例では、分散型アンビエントコンピューティングシステムは、たとえば、デバイス406~416のうちの1つ以上が、特定の受信されたタスクを実行することが可能ではないかもしれないと判断された場合、デバイス406~416のサブセットを含む場合がある。
【0110】
ロケーション400内の他のデバイスが存在し、システム200と通信することが可能であってもよく、したがって、システム200は、限定はしないが、たとえば、他のライトを減光すること、温度を変更すること、ドアをセキュリティ保護すること、占有セキュリティカメラをアクティブ化または修正すること、スピーカおよび/またはテレビ408に音量制限を課すことを含む、タスク404に関連付けられるコマンドの下でセットアップされた他のタスクを実行してもよい。概して、住宅ロケーション400に関連付けられるユーザ(および結果として住宅400用に構成された分散型アンビエントコンピューティングシステム)は、各デバイスを明示的に構成する必要なく、ポリシーおよび選好を生成し実行してもよい。したがって、いくつかの実現例では、ポリシーおよび選好は、たとえば、ユーザコマンドを受信する必要なく、特定のユーザにより課された時間にトリガされてもよい。
【0111】
概して、システム200、またはあるロケーションにおいて2つ以上のデバイスの間でセットアップされた別の分散型アンビエントコンピューティングシステムは、そのロケーションに関連付けられるデバイスの間で情報を通信および渡してもよいが、そのロケーションに関連付けられていないデバイスとはその情報のいずれも共有しなくてもよい。加えて、デバイス間で生じる通信は、暗号化および/または別様に暗号でセキュリティ保護されることができる。
【0112】
いくつかの実現例では、いくつかの異なるデバイスネットワークが(たとえば、部屋ごとに)セットアップされてもよい。そのようなネットワークは、ロケーション内において、ロケーション内の他のネットワークに通信することができる。
【0113】
図5Aは、本明細書で説明する実現例による、ユーザ要求タスクを実行する2つ以上のデバイスを示す例示的な図である。示されるように、ロケーション502は、例えば、システム200によって規定される。ロケーション502は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。アシスタントデバイス504は、ロケーション502について、ロケーション502に関連付けられるいくつかのデバイスを検出してもよい。ロケーション502内のデバイスは、ロケーション502に関連付けられる特定の世帯の一部としてユーザのために構成されてもよい。たとえば、サーモスタットデバイス506および光センサデバイス508は、ロケーション502の一部として検出されてもよい。いくつかの実現例では、ロケーション502を囲むエリア510も、ロケーション502に関連付けられるユーザ環境の一部として含まれてもよい。
【0114】
概して、デバイス504,506,および508は、非セキュリティタイプのデバイスにわたる能力を用いて、住宅監視側面(home monitoring aspects)を提供してもよい。例えば、アシスタントデバイス504、サーモスタットデバイス506、および光センサ508は、セキュリティシステムの一部でなくてもよいが、各デバイスは、住宅内の変更についてユーザに注意喚起するように機能し、したがってセキュリティ機能を提供してもよい。
【0115】
動作中、アシスタントデバイス504は、デバイス506および508がデバイス能力に関して何を実行することができるかを判断してもよい。ここで、デバイス504は、サーモスタットデバイス506および光センサ508の両方が近接度感知および/または占有感知などの能力を含む、と判断してもよい。それに応答して、デバイス504は、サーモスタットデバイス506および光センサ508を分散型アンビエントコンピューティングシステムとして構成してもよい。さらに、アシスタントデバイス504は、分散型アンビエントコンピューティングシステムに含まれてもよい。各デバイス504,506,および508は、検出された能力のうちの少なくとも1つに従って、ならびにロケーション502および/またはエリア510のユーザ環境内のデバイスロケーションに従って、定義されてもよい。たとえば、各デバイス504,506,および509は、検出された能力のうちの少なくとも1つに、ロケーション502および/またはエリア510のユーザ環境内のデバイスロケーションに従って、対応してもよい。
【0116】
ある時点で、アシスタントデバイス504は、ロケーション502にいるユーザからタスクを受信してもよい。あるいは、受信されたタスクは、分散型アンビエントコンピューティング環境に関連付けられてもよいオフサイトユーザ(および関連付けられるユーザデバイス)から、アシスタントデバイス504において遠隔受信されてもよい。タスクは、デバイス504、506、および/または508が住宅内の移動を検出することに対して応答してもよい「セキュリティ更新を提供して」または「誰が在宅しているか?」であってもよい。
【0117】
タスクに応答して、アシスタントデバイス504は、ロケーション502に関連付けられる利用可能なデバイスのうちの2つ以上が要求されたタスクを実行するのに有用かもしれない、と判断してもよい。タスクの実行の完了がデバイスの複数の能力のうちの2つ以上の使用を示すとの判断に応答して、アシスタントデバイス504は、分散型コンピューティングシステム内で、追加のデバイスのうちのどれがタスクを実行することができるかを判断してもよい。たとえば、デバイス504は、デバイス506は第1の部屋のためにカメラと近接度センサとを含み、デバイス508は第2の部屋のために近接度センサを含む、と判断してもよい。
【0118】
両方の部屋における動きを理解することは、ユーザが要求したタスクを正確かつ的確に完了する公算の増加をもたらしてもよい。従って、アシスタントデバイス504は、タスクを完了するために、2つ以上の能力の実行を共有するために、少なくとも2つのデバイス(例えば、デバイス506およびデバイス508)を選択する。少なくとも2つのデバイスの選択は、例えば、アシスタントデバイス504に対する2つのデバイスの判断された近接度に少なくとも部分的に基づいてもよい。上記の判断が完了すると、アシスタントデバイス504は、タスクを実行するよう、選択された少なくとも2つのデバイス(デバイス506およびデバイス508をデバイス504と共に)トリガしてもよい。例えば、デバイス506およびデバイス508からデータを収集すると、アシスタントデバイス504は、受信されたタスクにおいてユーザにより要求される情報を通信してもよい。
【0119】
いくつかの実現例では、少なくとも2つのデバイスを選択することは、タスクの別々の部分を実行するために通信するようデバイス504,506,および508を構成することを含む。いくつかの実現例では、少なくとも2つのデバイスを選択することは、デバイスのうちのどれが、タスクを完了するために2つ以上の能力を実行するよう構成されるコンポーネントを含むかを判断することと、タスクを完了するために通信するように少なくとも2つのデバイスを構成することとを含む。
【0120】
いくつかの実現例では、2つのデバイスのうちの少なくとも1つに関連付けられる少なくとも1つの能力は、少なくとも2つのデバイスのうちの他方に関連付けられる能力を拡張する。例えば、サーモスタットデバイスは、ユーザの動きをキャプチャしてもよいが、アシスタントデバイス504を介して通信しない限り、そのような動きをユーザに通信しなくてもよい。したがって、アシスタントデバイス504は、サーモスタットデバイス506の能力を拡張する。
【0121】
いくつかの実現例では、タスクの実行は、分散型(アンビエント)コンピューティングシステム内のデバイスのためにインターネット接続性がない場合にトリガされる。たとえば、デバイス504,506,および508は、インターネットなしで情報を共有してもよく、ユーザがロケーション502に再び入るときに、モバイルデバイスを介してユーザに情報を提供してもよい。すなわち、ユーザは、自分の玄関に近づきつつあり、どの世帯員がロケーション502において在宅しているかを判断するタスクを自分のモバイルデバイスに要求してもよい。モバイルデバイスは、ロケーション502に関連付けられる境界に入るとデバイス504~506に接続してもよく、ユーザがロケーション502の閾値範囲内にいるときに、ユーザに回答を与えてもよい。
【0122】
図5Bは、本明細書で説明する実現例による、ユーザ要求タスクを実行する2つ以上のデバイスを示す別の例示的な図である。ロケーション516は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション516内のデバイスは、例えば、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい、ロケーション516と関連付けられる特定の世帯の一部として、システム200によって構成されてもよい。ロケーション516は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0123】
ここでは、2人のユーザがテレビデバイス518を見ている。ユーザの1人は、モバイルデバイス520に関連付けられる。カメラデバイス522もこのシーン内に示される。テレビデバイス518、モバイルデバイス520、およびカメラデバイス522は、ロケーション516に予め相関(例えば、関連)付けられてもよい。
【0124】
ある時点で、モバイルデバイス520で入来ビデオコールが受信される。そのようなコールは、ロケーション516においてデバイスに関連付けられる分散型アンビエントコンピューティングシステムの要求されたタスクを表してもよい。ここで、モバイルデバイス520は、ユーザの近くになくてもよい。デバイス518~522は分散型アンビエントコンピューティングシステムの一部として構成されるので、モバイルデバイス520のために入力および出力を送信および/または受信するために、任意の数のデバイスが(たとえば、機能を置換するために)用いられてもよい。この例では、システム200は、たとえば、ロケーション516についてデバイス能力を評価してもよく、そのようなデバイスへのユーザ近接度を評価してもよい。この評価を用いて、テレビデバイス518がモバイルデバイス520からユーザに視覚および音声出力を提供してもよく、カメラデバイス522を用いて、視覚および/または音声出力をキャプチャして、モバイルデバイス520上の発呼者に送信することができる、と判断してもよい。モバイルデバイス520はタスクの各々を実行してもよいが、ユーザはデバイス520から離れていると判断され、したがって、分散型アンビエントコンピューティングシステムは、分散型アンビエントコンピューティングシステムに関連付けられる他の近接デバイスを用いて、電話呼タスクを実行してもよい代替デバイスを便利に提供してもよい。
【0125】
図5Cは、本明細書で説明する実現例による、ユーザ要求タスクを実行する2つ以上のデバイスを示す別の例示的な図である。ロケーション530は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション530内のデバイスは、例えば、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい、ロケーション530と関連付けられる特定の世帯の一部として、システム200によって構成されてもよい。ロケーション530は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0126】
図示の例では、アシスタントデバイス532および外部カメラ534は共に機能して、ロケーション530のドアでの配達をユーザに注意喚起してもよい。例えば、外部カメラ534は、視覚画像をキャプチャすることによって、ユーザ536からの小包配達を検出してもよい。カメラ534によってキャプチャされた配達は、別のデバイスによって実行されるタスクをトリガしてもよい。例えば、カメラ534は、小包が配達されたことをアシスタントデバイス532に注意喚起してもよい。アシスタントデバイス532は、小包が配達されたことを示す音声インジケータ538をトリガしてもよい。
【0127】
図6A図6Cは、本明細書で説明する実現例による、世帯用の例示的な分散型アンビエントコンピューティングシステムを示す。以下の例では、世帯用デバイスの分散型アンビエントコンピューティングシステムが確立されてもよい。各デバイス能力が判断されてもよい。各デバイス位置も判断されてもよい。分散型コンピューティングシステムは、カメラによってキャプチャされたセキュリティカメラビデオを用いてもよい。キャプチャされたビデオは、そのロケーションに関連付けられるデバイスにわたって同期されてもよい分散ストレージに記憶されてもよい。
【0128】
この例では、異なる能力が各デバイスに割り当てられる。この例における異なる能力は、カメラ入力および記録能力、コンテンツへの対話型アクセス能力、ならびに記憶能力を含んでもよい。各能力は、任意の装置で実行可能なモジュールにおけるモードとして構築される。
【0129】
図6Aに示すように、ロケーション600が規定される。ロケーション600は、異なる例によって示されるロケーション600-A、600-B、および600-Cを含む。ロケーション600内のデバイスは、例えば、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい、ロケーション530と関連付けられる特定の世帯の一部として、システム200によって構成されてもよい。ロケーション530は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0130】
図6Aのロケーション600-Aに示すデバイスは、対応する分散ストレージ604を有するカメラ602と、対応する分散ストレージ608を有するカメラデバイス606と、電子デバイス610と、アシスタントデバイス612と、第2のアシスタントデバイス614とを含む。デバイス610,612,および614は、分散ストレージ616と通信してもよい。モバイルデバイス618も、同様にロケーション600-Aに関連付けられてもよい。加えて、各分散ストレージ604、分散ストレージ608、および分散ストレージ616は、ロケーション600に関連付けられるネットワークベースの分散ストレージ618と同期されてもよい。
【0131】
各デバイス602,606,610,612,614,および618は、それぞれのデバイスが異常なイベントを検出すると、搭載カメラでコンテンツをキャプチャしてもよい。例えば、ローカルマシンベースの学習を用いて、そのようなイベントが検出された時にキャプチャされた画像をキャプチャし、分散ストレージにアップロードすることができる。概して、任意のデバイスが、例えば、分散ストレージログを実行して、例えば、ストレージ604,608,616,または620のいずれかにおいてデータを記憶、日付け、および/または参照することができる。データは、ストレージ604,608,616,または620にわたって非同期的に共有されてもよい。かくして、対話型デバイス610、612、614、618の各々は、記憶されたビデオ/画像へのアクセスを有してもよい。
【0132】
ここで図6Bを参照すると、ロケーション600-Bは、ロケーション600内で検出され、および/またはロケーション600のために構成される各デバイスに対する、カメラ、分散ストレージ、ならびに対話型アクセスを示すように示されている。ここでは、デバイスは、簡略化のため、コンピューティングデバイスとして示されている。例えば、カメラ602は、カメラ機能およびログ機能に関連付けられるが、対話型アクセス機能には関連付けられない。カメラデバイス606は、カメラ602と同様の機能を有するように示される。電子デバイス610はログ機能を含み、デバイス612および618は対話型機能とともに示されているが、ログ機能は示されていない。デバイス612および618はログ機能を含まないが、他のデバイスのための分散ストレージにアクセスしてもよい。デバイス614は、対話型機能およびログ機能の両方を含む。
【0133】
ここで図6Cを参照すると、ロケーション600-Cは、同じデバイス602,606,610,612,614,および618とともに示される。ロケーション600-Cは、X620によって示されるように、インターネットがデバイスによって利用可能でもなく、アクセスもされないオフラインモードで示されている。ここで、モバイルデバイス618は、デバイスへのアクセスを有さなくてもよいが、ロケーション600-C内のデバイスは、オフライン(またはオンライン)状態にあるかどうかにかかわらず、共に動作し、ローカルに記憶されたログデータにアクセスしてもよい。
【0134】
図7は、本明細書で説明する実現例による、世帯内でアンビエントデバイスを用いて実行されるタスク実行の一例の図である。ロケーション700は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション700内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション700に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション700は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。この例では、少なくとも3人のユーザが住宅を共有し、住宅に向けて賃料を支払ってもよい。
【0135】
ロケーション700は、関連付けられるユーザ(たとえば、世帯構成員)がサービス、費用などを共有および/または分割するためのプラットフォームであってもよい。たとえば、ロケーション700は、世帯共有サービス(例えば、Wi-Fi、メディア、支払いなど)を統合するのを助けるアイデンティティとして構成されてもよい。この例では、ユーザのジョージア、エレイン、およびエレノアは、ロケーション700においてサービスを共有しており、ロケーション700のアイデンティティを用いて、デバイスをロケーション700と関連付け、彼女らのパーソナルデバイスを介して(または他の世帯用デバイスを介して)賃料を支払ってもよい。
【0136】
少なくとも1つのデバイス(デバイスA)をロケーション700に関連付けてもよい。この例では、ジョージアは、自分の賃料の支払いを要求するタスク(可聴タスク)を生成してもよい。タスクは、彼女のモバイルデバイス702に提示されてもよい。例えば、ジョージアは、「OkデバイスA,私の分の賃料を払って。」と発話してもよい。それに応答して、デバイスAは、ジョージアのモバイルデバイス702と通信して、賃料支払いを行うための情報を取り出してもよい。通信および賃料支払いが完了すると、デバイスAは、賃料が支払われたことを言葉で応答してもよく、ならびに/またはジョージアの賃料が支払われたという他のインジケータを生成および送信してもよい。たとえば、デバイスAは、電子メールを生成し、ジョージアの電子メールアカウントに送信してもよく、それはモバイルデバイス702によって取り出されてもよい。いくつかの実現例では、この例におけるデバイスAはまた、インジケータ706によって示されるように、ロケーション700に関連付けられる他のユーザおよび/またはデバイスに、支払われた賃料について注意喚起するかまたは別様に示してもよい。
【0137】
ロケーション700に関連付けられる他のユーザはまた、デバイスA(またはロケーション内の別の非個人用デバイス)によって提供されるサービスを利用してもよい。例えば、エレインはモバイルデバイス708を有するが、例えば、仮に自分のモバイルデバイスがまだロケーション700に関連付けられる分散型アンビエントコンピューティングシステムの一部として構成されていない場合に、代わりに、デバイスAを利用して、自分の分の賃料を支払ってもよい。
【0138】
図8は、本明細書で説明する実現例による、世帯内のアンビエントデバイス間のリソースのプロビジョニングを示す図である。ロケーション800は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション800内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション800に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション800は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0139】
この例では、ハブデバイス802は、ロケーション800に関連付けられる世帯のためにプロビジョニングおよび/または構成された第1のデバイスアイデンティティを表してもよい。デバイス802は、世帯のユーザと関連付けられるか、またはそうでなければそのユーザを認識してもよいが、サービスプロバイダによってプロビジョニングされるユーザアカウントに結び付けられなくてもよい。代わりに、デバイス802は、特定のユーザアカウントなどではなく、世帯によってプロビジョニングされてもよい。
【0140】
示されるように、第1のユーザ804、第2のユーザ806、および第3のユーザ808は、ロケーション800において世帯の一部として表される。ユーザのうちの1人以上は、デバイスを、特定の目的(例えば、機能810,812,および814)、部屋(例えば、キッチン816)、人々(例えば、ユーザ804,806,および808)、および/またはサービス(図示せず)のために、事前プロビジョニングしてもよい。いくつかの実現例では、デバイスは、同時に、1つ以上のアイデンティティを管理するために用いられてもよい、本明細書で説明する分散型アンビエントコンピューティングシステムの一部であってもよい。
【0141】
図9は、本明細書で説明する実現例による、アンビエントデバイスを用いて世帯内でモードを提供することを示す図である。ロケーション900は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション900内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション900に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション900は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0142】
図9に示すように、ハブデバイス902は、ゲストをゲストモードで歓迎してもよい。ゲストモードでは、世帯は、住宅指示マニュアル、パスワードなどを提供する必要なく、ロケーション900への訪問者をホストしてもよい。代わりに、ロケーション900は分散型アンビエントコンピューティングシステムに関連付けられてもよいので、システムは、ゲストに、ユーザがゲストモードのために以前にプロビジョニングした特定のデバイス使用、サービス、および/または接続を申し出てもよい。例えば、ユーザは、ゲストモバイルデバイス904上でWi-Fiネットワーク有効化を提供してもよいが、特定の接続されたデバイスが認識されない場合、世帯内の他のデバイスにそのようなネットワークへの接続を注意喚起してもよい。同様に、デバイス902は、ゲストモバイルデバイス904を介して照明デバイス906のアクセスおよび制御をプロビジョニングしてもよい。世帯のプライバシーが保護されてもよく、なぜならば、サービスおよび/またはデバイス使用をゲストデバイスに依然として提供する一方で、個人的な世帯データは、ゲストデバイスに送信されないか、または代わりに、ゲストデバイスから隠されるかのいずれかであるからである。
【0143】
いくつかの実現例では、ロケーション900は、個人データをゲストから隠すために、コンテキストを用いてもよい。そのようなコンテキストは、プライバシーモードをトリガしてもよい。プライバシーモードは、ロケーション900におけるサービスならびに/またはデバイスの同時および連続的なマルチユーザ使用を可能にする動的認証を含んでもよい。加えて、プライバシーモードは、特定のユーザに提供されてもよく、デバイス配置および存在に基づいてリアルタイムで管理されることができる。例えば、寝室内のデバイスは、スケジュールされた会議中、世帯訪問中、またはユーザが在宅していないときにプライバシーモードをトリガしてもよく、ダイニングエリア内のデバイスは、なんらかのデータを隠蔽するが、そのデータの各部分は隠蔽しない、異なるプライバシーモードをトリガしてもよい。プライバシーモードはまた、ロケーション900で生じるプレゼンス、関係、およびアクティビティによっても管理されてもよい。
【0144】
図10Aは、本明細書で説明する実現例による、複数のアンビエントデバイスと分散ストレージ1006とを用いるタスク処理の一例を示す。図10Aに示すように、例示的な住宅用の分散型アンビエントコンピューティングシステムは、カメラデバイスA1002と、カメラデバイスB1004と、分散ストレージ1006と、ハブデバイス1008とを含む。デバイス能力は、デバイス間で転送されてもよい。たとえば、分散ストレージは、分散ストレージ1006からハブデバイス1008に転送されてもよいログ能力を提供してもよい。ハブデバイス1008は、図示されている唯一の対話型デバイスである。デバイス1002,1004,1006,および1008の各々は、オンラインモードで使用可能である。すなわち、この住宅はインターネットサービスに接続される。
【0145】
図10Bを参照すると、カメラデバイスA1002およびカメラデバイス1004が再び図示されている。ここで、カメラデバイスBは、アクティビティが検出された場合、ビデオおよび/または画像をキャプチャしてもよい。例えば、現在のカメラBフィードを表す第1の時刻1010において、カメラ入力は、アクティビティが検出されないことを示す。火曜日の時刻1012(例えば、16:49:48)に、動き(例えば、犬1014)が検出され、スナップショットおよび/またはビデオがローカルレッジャー(例えば、分散ストレージ)に記憶される。概して、分散型アンビエントコンピューティングシステムに関連付けられるデバイスは、分散ストレージ1006にアクセスすることによって、画像および/またはビデオへのアクセスを得てもよい。加えて、分散型アンビエントコンピューティングシステム内のデバイスは、分散型ストレージ1006への変更を直ちに見てもよく、分散型ストレージ1006からのコンテンツを後でレビューしてもよい。
【0146】
図11Aは、本明細書で説明する実現例による、アンビエントデバイスを用いて世帯内でアクティビティおよびリソースをオーケストレーションする例を示す。図11Aに示されるように、例示的な住宅ロケーション1100のための分散型アンビエントコンピューティングシステム。ロケーション1100は、ライトデバイス1102と、第1の音声デバイス1104と、第2の音声デバイス1106とを含み、各デバイスは、それぞれ、ユーザ1108、ユーザ1110、およびユーザ1112によってアクセスされる。
【0147】
例示的な世帯用デバイスは、ロケーション1100のために生成されてもよい分散型アンビエントコンピューティングシステムの一部であってもよい。ユーザ1108,1110,および1112は、ある家族を、スケジュール、パーソナルデバイス、タスクなどとともに表してもよい。分散型アンビエントコンピューティングシステムは、家族における、デバイスにわたるアクティビティ、アイデンティティ、および個人的選好をオーケストレーションするために用いられてもよい。いくつかの実現例では、システム200は、たとえば、家族内のユーザが他のユーザスケジュールおよび情報に容易にアクセスできるように、家族所有写真、ビデオコレクション、ノート、ソーシャルメディア、アラーム、カレンダーなどを単一の掲示板表示に組み合わせるために、用いられてもよい。システム200は、一日を通して世帯内で発生する特定のパターンを感知してもよく、そのようなパターンを合理化または改善するための提案を提供してもよい。本明細書で説明されるシステムおよび方法は、個人データが住宅内に留まることを保証しながら、そのような提案および共有ユーザデータを提供してもよい。例えば、住宅データおよびユーザデータは、情報が暗号化され、典型的なアカウントサービスプロバイダによって所有される個人ユーザアカウントにリンクされ得ないのでなければ、住宅デバイスの外部に提供されない。加えて、製品使用、データ使用、およびそのような製品またはデータの時間ベースもしくは文脈的使用は、住宅の外に分散されない場合がある。
【0148】
分散型アンビエントコンピューティングシステム内のシステムは、そのような情報が住宅システムの外部の他者によって収集されないことを保証する。したがって、ユーザは、一日中、データが住宅システムから出ないマルチデバイス行程を有してもよい。例えば、ユーザ1108は、デバイスがオフラインである間、デバイス1106を用いてデバイス1104のアラームを設定してもよい。システム200は、分散ストレージ256を利用してもよく、それは、住宅内で、ピアツーピア通信、プライベート通信を用いて、オフラインモードを用いて、デバイスと通信してもよい。分散ストレージは、特定のデバイスから記憶されたデータを検索してもよく、そのようなデータを世帯用デバイス間で同期させてもよい。いくつかの実現例では、分散ピアツーピアコンピュータネットワークが、特定の通信、転送、および/またはデバイス同期のために用いられてもよい。
【0149】
図11Bを参照すると、ユーザ1108は、自分のプレイリスト1114を世帯用デバイスと共有してもよい。同様に、ユーザ1112は、自分のプレイリスト1116を世帯用デバイスと共有してもよい。たとえば、デバイス1102,1104 および1106(ならびに他の世帯用デバイス)の間でセットアップされる分散型アンビエントコンピューティングシステム200は、家族のために音楽を再生するために、共有される世帯用グループサービスおよび選好を用いてもよい。コンテンツの共有は、住宅中心サービスが世帯に結び付けられることを保証してもよい。パーソナルデバイスは、例えば、他のアカウントを用いてパーソナルデバイスを構成する必要なく、世帯用デバイスの側面を継承してもよい。
【0150】
図12は、本明細書で説明する実現例による、アクティビティをオーケストレーションし、世帯に関連付けられるデバイスとリソースを共有する例を示す図である。ロケーション1200は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1200内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1200に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1200は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。この例では、ロケーション1200は、少なくとも1つのデバイス1202を含む。デバイス1202は、アーキテクチャ300および350を利用して、ロケーション1200およびロケーション1200に関連付けられるデバイスに対してデータ規則1204が実現されることを保証してもよい。たとえば、データ規則1204は、ユーザデータ228、ユーザ選好254、ユーザポリシー252、ならびにアイデンティティマネージャ220、デバイスマネージャ22、タスクマネージャ218、およびコンテキストマネージャ224によって処理される他のコンテンツを含むかまたは管理してもよい。概して、データ規則1204は、許可、センサトリガ、占有トリガなどを介してセキュリティ保護およびトグルされてもよい。特に、ロケーション1200に関連付けられるユーザは、データ規則1204を用いて、世帯関連データおよびユーザデータに対する可視性および制御を有してもよい。
【0151】
いくつかの実現例では、ユーザは、カメラデバイス(図示せず)が住宅の特定の部屋で動作することを可能にするようにデータ規則1204を構成してもよい。例えば、データ規則1204は、ペット1206の安全チェックを提供するためにペット1206のビデオをキャプチャすることを示してもよい。カメラデバイス(図示せず)が、カメラデバイスを収容する部屋の動きをキャプチャするように設定されている場合、データ規則は、事前規定された許容範囲(例えば、部屋の床からの高さ)を上回る動きをキャプチャして、例えば、ペット1206を、吠えている間、キャプチャするよう構成されてもよい。これは、家族が吠える挙動を後で目撃することを可能にしてもよい。加えて、動きのキャプチャは、ユーザ許可ならびに/またはユーザ構成ポリシーおよび/もしくはルールに基づいて、特定のイベントまたは情報を別の部屋のユーザに告知するように他のデバイスをトリガしてもよい。示されるように、デバイス1202は、事前定義された許容範囲を上回る動きのデータ規則が満たされたことを通知されており、したがって、「しーっ!」の告知1208が、例えば、デバイス1202から、他の部屋にデバイス1202とともにいるユーザに示される。
【0152】
図13は、本明細書で説明する実現例による、世帯に関連付けられる他のアンビエントデバイスとポリシーを共有するアンビエントデバイスを示す図である。ロケーション1300は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1300内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1300に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1300は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0153】
従来のデバイス構成では、各デバイスは、ユーザにデバイスセットアップのワークフローを実行させるステップのセットでセットアップされる。これは、各追加のデバイスに対して実行するのが煩雑であり得、その各々は、それぞれのデバイスを適切に構成するよう、異なる固有のワークフローである場合がある。システム200は、最小限のユーザ労力を用いてもよい分散型アンビエントコンピューティングシステム(例えば、デバイスのネットワーク)をセットアップするために用いられてもよい。システム200は、デバイス能力および他のデバイスの知識ならびにシステム200に以前に関連付けられた情報を活用することによって、各デバイスのためのセットアップフローを実行してもよい。
【0154】
いくつかの実現例では、あるロケーション(たとえば、ロケーション1300)のための住宅のためのデバイスセットアップは、以前のデバイスセットアップおよびユーザ許可に基づいて自動化されてもよい。たとえば、ユーザ1302は、以前に構成されたモバイルデバイス1304を有してもよい。システム200は、例えば、新たなデバイス1306がいつロケーション1300の住宅に持ち込まれたかを検知してもよく、新たなデバイスを即座にセットアップする許可をユーザに求めてもよい。そのようなワークフローは、ユーザにとって、デバイスを管理する負担を取り除くことができる。ユーザが追加するデバイスが多いほど、システムは、ユーザ体験を改善するために、より多くの情報を学習してもよい。たとえば、デバイス1304を構成し、デバイス1304の構成を提供してデバイス1306を構成すると、システム200は、第3のデバイス(たとえば、デバイス1308)がロケーション1300のためにいつ利用可能であるかを検出してもよい。次いで、システム200は、デバイス1304とデバイス1306との間でデータを転送して、デバイス1308を、ロケーション1300の分散型アンビエントコンピューティングネットワークで用いるために、適切に構成してもよい。ユーザデータは、それがユーザによって移動を要求され、そしてそのような場合に、暗号化され、住宅で他者(例えば、他のユーザ、サービスプロバイダ、アカウントプロバイダなど)によって個人ユーザアカウントにリンクされることができないのでなければ、ロケーション1300の住宅から出ない。これは、特定のロケーションのための分散型アンビエントコンピューティングネットワークが、ユーザのデータがどのように処理されるかについての信頼性をユーザに提供することを確実にするという利点を提供してもよい。加えて、そのようなデータ規則は、異なる製造業者からのデバイスが、1つの世帯の下で共に作業するよう構成されることを可能にしてもよい。
【0155】
図14は、本明細書で説明する実現例による、少なくとも2人のユーザのアンビエントデバイス認識を示す図である。ロケーション1400は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1400内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1400に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1400は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0156】
図14に示すように、第1のユーザ1402および第2のユーザ1404は、ロケーション1400のためにセットアップされた分散型アンビエントコンピューティングシステムの一部である。アシスタント/ハブデバイス1406も、同様にロケーション1400のためのシステムの一部として構成される。
【0157】
従来のシステムでは、デバイス体験は、デバイスを構成した誰に対しても最適化されてよい。例えば、従来のデバイス構成は、サービスプロバイダに結び付けられるユーザアカウントを伴うユーザに結び付けられる。二次ユーザ(例えば、デバイスを構成しなかったユーザ)は、典型的には、不適切に考慮され、これは、第2のユーザのための個人化された体験の欠如につながり得る。システム200は、ロケーション1400に関連付けられる世帯用デバイスに関して、世帯の追加ユーザが考慮され対応されることを保証してもよい。例えば、システム200は、個人の選好を考慮しながら共同的コンテキストを理解してもよい。システム200(およびロケーション1400)に関連付けられるデバイスから提供される体験は、家族および共同的指向であってもよく、それでいて個人的価値を各ユーザに提供してもよい。図示されるデバイス1406では、ユーザ1402および1404の両方が認識される(それぞれ、アイコン1408およびアイコン1410によって示される)。デバイス1406は、音声指示1412によって示されるように、両方のユーザに話しかけてもよい。
【0158】
図15A図15Bは、本明細書で説明する実現例による、世帯用の例示的なアンビエントデバイス構成を示す。ロケーション1500は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1400内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1400に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1500は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0159】
図15Aを参照すると、アシスタントデバイス1502は、ロケーション1500に対して以前に構成されていてもよい住宅アカウント1504の一部として示されている。ここで、デバイス1506を新たに追加してもよい。住宅アカウント1504は、特定のデバイスおよび/または能力を認識するためにロケーション1500内の1つ以上のデバイスを利用するためのデバイス対デバイス意識を有してもよく、特定のクレデンシャルおよび/または選好を継承するようそのような新たなデバイスをトリガしてもよいシステム200を用いてもよい。
【0160】
図15Bを参照すると、デバイス202はまた、モジュール式の、すぐに利用できる体験を提供してもよい。たとえば、デバイス構成およびサービス構成を、ユーザが構成している特定のデバイス(またはサービス)に応じて個々にアクティブ化および並べ替えられ得る別個のモジュールとして実現してもよい。モジュールは、特定のデバイスソフトウェアに追加されることができる埋め込み可能かつブランド化されたコンポーネントを表してもよい。
【0161】
加えて、住宅アカウント1504(たとえば、デバイス分散ストレージ)に関連付けられる情報を用いて、ロケーション1500内のデバイスをセットアップしてもよい。例えば、システム200は、住宅アカウント1504を用いて、第1のデバイス製造業者1508および第2のデバイス製造業者1510を認識してもよい。この例では、第1のデバイス製造業者は電球製造業者であってもよく、第2のデバイス製造業者はスマートコンセント製造業者であってもよい。ここで、システム200は、要素1512によって示されるように、ユーザが、分散型アンビエントコンピューティングシステムに関連付けられるデバイスを介して、特定の製造業者またはサービスプロバイダを介してデバイスにログインすることを可能にしてもよい。いくつかの実現例では、システム200は、インジケータ1514によって示されるように、特定のデバイスを検出してもよい。システム200は、2つのライトが見つかったことを検出し、どの部屋およびルーチンが2つのライトのために構成されているかを示してもよい。システム200はまた、インジケータ1514と同様のインジケータを提供して、ユーザが特定のルーチンおよび部屋を構成すること、または他のデバイスからの他のルーチンの継承を構成することを可能にしてもよい。
【0162】
いくつかの実現例では、システム200は、デバイスに関連付けられる特定の製品キーを検出してもよい。製品キーが認識されると、システム200は、住宅ロケーション1500に関連付けられる命名および言語要素を提供することができる。近くのセンサデバイスは、例えば、デバイス間のデバイスセットアップおよびタスク管理のための通信ならびに処理のためのハブとしての役割を果たすことができる。相手先ブランド製造業者は、例えば、デバイス構成フローを視覚的に残すことなく、許可に基づいてユーザが有効にすることができる、埋め込み可能なブランド化されたコンポーネントを含んでもよい。
【0163】
いくつかの実現例では、システム200は、ユーザがロケーション1500に持ち込む追加のデバイスの構成をトリガしてもよい。例えば、システム200は、既に構成された分散型アンビエントコンピューティングシステムの近くに新たなデバイスを発見してもよく、その新たなデバイスをシステムにプロビジョニングし始めてもよい。加えて、システム200は、ロケーション1500に関連付けられる分散ストレージにデバイス情報を記憶することによって、その新たなデバイスを登録してもよい。システム200は、ロケーション1500に関連付けられる任意の他のデバイスから、その新たなデバイスに、ユーザおよび/またはデバイス選好を提供してもよい。アカウントおよび/またはサービスが、次いで、その新たなデバイスを含むデバイス間でリンクされてもよい。
【0164】
図16は、本明細書で説明する実現例による、世帯用のアンビエントデバイス構成の別の例を示す図である。ロケーション1600は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1600内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1600に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1600は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0165】
この例では、ユーザは、典型的には、レシピのためにモバイルデバイス1602にアクセスしてもよい。ある時点で、ユーザは、ロケーション1600のために別のデバイス1604を購入してもよい。ユーザは、デバイス1604を取り外し、ロケーション1600に関連付けられる住宅内にそのデバイスを配置してもよい。システム200は、デバイス1604を検出してもよく、デバイス1604に関連付けられる能力を検出してもよい。ある時点で、デバイス1604は、世帯のニーズ(例えば、ユーザが利益を得てもよいタスク)を認識してもよい。図示される例では、デバイス1604は、インジケータ1606によって示されるように、デバイス1604がキッチン内でレシピを提供するために有用であり得ることを、システム200を介して認識した。ここで、システム200は、デバイス1604を介してレシピ命令を提供することは有用であり得ると判断してもよく、それに応答して、デバイス1604を介して命令を受信するために、(例えば、デバイス1602上で以前にアクセスされた)レシピアプリケーションを閲覧するための構成の一部分をトリガしてもよい。いくつかの実現例では、ユーザが分散型アンビエントコンピューティングシステム200を介して取り出される情報に基づいて機能を構成する必要なく、追加の機能がデバイス1604上で利用可能であってもよい。
【0166】
図17は、本明細書で説明する実現例による、世帯用のアンビエントデバイス構成の別の例を示す。ロケーション1700は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1700内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1700に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1700は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0167】
いくつかの実現例では、アンビエントデバイス構成は、世帯用にデバイスを構成するための質問、サービス、および他のオプションを表面化することによって体験的かつ積極的な構成オプションを提供してもよい。たとえば、ある例示的な構成オプションは、デバイスをセットアップするためのコンテキストおよび/またはユーザの関心を判断してもよい。一例は、図17において、「このデバイスを何のために使用したいですか?」とユーザに尋ねる質問インジケータ1702によって示されている。そのような質問はまた、回答1704,1706,および1708によって示されるように、ユーザが選択してもよい回答を提供してもよい。
【0168】
システム200はまた、デバイス構成の後(および経時的に)、新たな特徴および/またはサービスの発見ならびに構成を可能にするために、連続発見モジュール(たとえば、オプション)を提供してもよい。たとえば、デバイス1710は、ユーザが新たなもしくは未構成の特徴および/またはサービスについて学習することを可能にするために、「知っていましたか」音声質問1712を示す。特定の構成モジュールは、経時的に文脈的に表面化されてもよい。
【0169】
図18は、本明細書で説明する実現例による、世帯に関連付けられる他のアンビエントデバイスとポリシーおよび構成詳細を共有するアンビエントデバイスの例を示す図である。ロケーション1800は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1800内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1800に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1800は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0170】
図示のように、アシスタントデバイス1802は、カメラデバイス1804と共に利用されてもよい。アシスタントデバイス1802がロケーション1800に持ち込まれると、世帯用システム(例えば、システム200)は、カメラデバイス1804の能力が、アシスタントデバイス1802と共に用いられるときに、追加の特徴またはタスクにアップグレードされてもよい、というインジケータ1806等の指示を提供してもよい。そのようなアップグレードは、ユーザにより有効され、ユーザにより無効され、および/または許可に基づいてもよい。別の例では、新たなデバイスがロケーション1800に持ち込まれたときに、インジケータ1808によって示されるように、部屋に関連付けられる設定の一部として特定のデバイスを設定することに関する質問など、ユーザに質問が提供されてもよい。概して、ロケーション1800に関連付けられる部屋全体および世帯全体のポリシーならびに能力は、新たな製品および/またはサービスによって採用されてもよい。したがって、新たなデバイスおよびサービスは、住宅システムへの追加のために、シームレスに、場合によっては、デバイスに要求されてトリガされてもよい。いくつかの実現例では、ユーザが特定の部屋間でデバイスを移動させると、移動されたデバイスは、新たな部屋と関連付けられる設定、選好、および/または挙動を採用してもよい。
【0171】
図19は、本明細書で説明する実現例による、世帯用の第三者センサを構成する例を示す図である。ロケーション1900は、範囲内に位置する任意の数のデバイスを含むように規定される。ロケーション1900内のデバイスは、システム200によって、例えば、任意の数のユーザのために、ロケーション1900に関連付けられる特定の世帯の一部として構成されてもよく、分散型アンビエントコンピューティングシステムを生成するために用いられてもよい。ロケーション1900は、限定はしないが、住宅、世帯、居住/所在地、事業所などを含むユーザ環境であるかまたはユーザ環境を表してもよい。
【0172】
ユーザは、ロケーション1900とともに構成されたモバイルデバイス1902を有してもよい。モバイルデバイスは、ロケーション1900に関連付けられる追加のデバイスを構成するために用いられてもよい。しかしながら、ユーザが追加のデバイスをセットアップしないことを選択する場合、それらのデバイスは、別のデバイスによって後で自動検出されてもよい。例えば、アシスタント/ハブデバイス1904は、新たなデバイス(例えば、スマート電球デバイス1906、スマート電球デバイス1908、およびスマート電球デバイス1910)を検出してもよい。ハブは、ユーザに対する提案を、指示、質問、および/または他のガイダンスとともに生成してもよい。ここで、スマート電球1906、スマート電球デバイス1908、およびスマート電球デバイス1910は、各々、スマート電球デバイス1906~1910とは異なる1つ以上の製造業者によって各々製造されるデバイス1902または1904と相関または関連付けられない第三者(3P)製造業者からのものである。しかしながら、デバイス1904は、基底のオペレーティングシステムソフトウェアが追加のセットアップAPIおよび/またはペアリング規格へのアクセスを提供して、スマート電球デバイス1906~1910の構成をロケーション1500に関連付けられる住宅用の構成にシームレスに埋め込んでもよいシステム200に関連付けられてもよい。したがって、システム200(例えば、分散型アンビエントコンピューティングシステム)によって生成されるエコシステムは、デバイス1906~1910がそれらの基底のブランドを保持および表現することを可能にしながら、デバイスにわたって一貫性があってもよい。
【0173】
図20は、本明細書で説明する実現例による、分散型アンビエントコンピューティングシステムを動作させる例示的なプロセス2000である。プロセス2000は、規定されたユーザ環境内のデバイスがタスクを通信し、共有し、実行してもよいことを保証してもよい。プロセス2000は、便宜上、システム200、アーキテクチャ300および350を参照して説明されてもよい。
【0174】
ブロック2002において、プロセス2000は、コンピューティングデバイスが、ユーザ環境に関連付けられる複数の追加のデバイスを検出することを含む。例えば、コンピューティングシステム202は、ロケーション(例えば、世帯/住宅)等のユーザ環境として定義されるロケーション内の任意の数のデバイス104,106,108,112,114,116,および204を検出してもよい。検出は、デバイスの存在、それぞれのデバイスの各々に関連付けられるロケーション、ユーザ環境内のデバイス間の近接度などの検出を含んでもよい。概して、追加のデバイスは、携帯電話、ラップトップ、デスクトップなどのパーソナルユーザデバイスを含んでも含まなくてもよい。
【0175】
ブロック2004において、プロセス2000は、複数の追加のデバイスについて、複数の追加のデバイスのうちの1つ以上に関連付けられる複数の能力を判断することを含む。たとえば、システム202は、デバイス104,106,108,112,114,116,および204の各々に関連付けられるデバイス能力および/または処理能力を判断してもよい。例示的な能力は、限定はしないが、ほんの数例を挙げると、デバイスセンサ能力、デバイス通信能力、デバイス処理能力、デバイスハードウェア能力および/またはデバイスソフトウェア能力を含んでもよい。いくつかの実現例では、コンピューティングシステム202は、能力を評価および/または判断するために、特定の世帯ロケーション内のデバイスと関連付けられる1つ以上の分散ストレージログにアクセスしてもよい。
【0176】
ブロック2006において、プロセス2000は、コンピューティングデバイスが、複数の追加のデバイスを分散型コンピューティングシステムとして構成することを含む。複数の追加のデバイスは、分散型アンビエントコンピューティングシステムにおいて、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に従って定義されてもよい。たとえば、コンピューティングシステム202は、デバイス104,106,108,112,114,116,および204の各々がユーザからなる世帯に関連付けられ得る(および/またはユーザからなる世帯のロケーションの特定の距離内にある)、と評価することができる。それに応答して、システム202は、デバイス104,106,108,112,114,116,および204を、世帯のためにタスクを実行することができる分散型アンビエントコンピューティングシステムとして動作するように生成および/または別様に構成してもよい。
【0177】
いくつかの実現例では、複数の追加のデバイスを分散型コンピューティングシステムとして構成することは、複数の追加のデバイスについて、ユーザ環境およびコンピューティングデバイスに関連付けられるポリシーならびにユーザ選好を有効にすることを含む。例えば、コンピューティングシステム202は、各デバイスに関連付けられる複数の能力を再検討して、もしあれば、どのポリシーが特定のデバイス上で有効にされてもよいかを判断してもよい。例えば、2つのデバイスが住宅内の寝室のロケーションにある場合、コンピューティングシステム202は、デバイスユーザがそのようなエリアに関連付けられる異なるポリシーを構成しない限り、そのようなエリア内のカメラデバイスがオフにされるという事前定義されたポリシーを有効にすることができる。いくつかの実現例では、複数の追加のデバイスを分散型コンピューティングシステムとして構成することは、ユーザ環境内で識別されていないデバイスを検出したことに応答して、識別されていないデバイスに対してセキュリティチェックを実行することを含んでもよい。この構成はまた、識別されていないデバイスがセキュリティチェックに合格した場合に、識別されていないデバイス上でポリシーおよびユーザ選好を構成することを含んでもよい。
【0178】
ブロック2008において、プロセス2000は、コンピューティングデバイスにおいて、タスクを実行する要求を受信することを含む。例えば、コンピューティングシステム202は、タスクを実行する要求をデバイス106から受信してもよい。タスクは、月曜日の午後2:00から午後4:00の間に玄関を監視して、エラが学校から戻ることを確認することを含んでもよい。この例では、システム202は、要求を受信し、タスクをどのように実行するかを判断し始めてもよい。
【0179】
ブロック2010において、プロセス2000は、コンピューティングデバイスが、複数の追加のデバイスのうちのどれがタスクを実行することができるかを判断することを含む。たとえば、コンピューティングシステム202は、世帯に関連付けられるデバイス(たとえば、デバイス104,106,108,112,114,116,および204)のうちのどれがタスクを実行することができるかを判断してもよい。
【0180】
ブロック2012において、プロセス2000は、複数の追加のデバイスのうち、タスクを実行することが可能であると判断された少なくとも1つを選択することを含む。追加のデバイスの選択は、コンピューティングデバイスに対する複数のデバイスの判断された近接度に少なくとも部分的に基づいてもよい。例えば、コンピューティングシステム202は、どのデバイスが、要求されたタスクを受信するコンピューティングデバイスに近接しているかを判断して、タスク(またはユーザ)が、例えば、ユーザの近傍および/またはタスク受信デバイス202の近傍のデバイスによって実行されることから利益を得るであろうかどうかをまず判断してもよい。この例では、タスクは、特定のロケーションを監視することを伴い、したがって、近接度は、タスクを実行する1つ以上のデバイスを選択する際に、考慮されない場合がある。
【0181】
いくつかの実現例では、コンピューティングシステム202は、複数のデバイスにおけるそれぞれのデバイス上で実行する判断されたオペレーティングシステムを評価することによって、複数の追加のデバイスのうちの1つ以上を選択してもよい。例えば、システム200内の特定のデバイスは、そのデバイスが特定のタスクを実行することができるかもしくは他のデバイス間でタスクを共有もしくは分散させることができることを示すフラグまたはインジケータに関連付けられるオペレーティングシステムを含んでもよい。いくつかの実現例では、デバイスは、デバイスオペレーティングシステムを判断し、次いで、そのデバイスオペレーティングシステムが特定のタスクまたはそのようなタスクの分散を実行することが可能であるかどうかを判断するモジュールを含んでもよい。いくつかの実現例では、システム200内の特定のデバイスのオペレーティングシステムは、その特定のデバイスとともに用いられるよう利用可能なデバイス能力および/またはプロトコルを、システム200内の他のデバイスに通知してもよい。
【0182】
たとえば、あるデバイスの特定のカメラ映像が、住宅のロケーションにいないかまたは住宅用に構成されていないデバイスを用いるユーザに送信されるようにユーザ設定される場合、システム202は、オフサイトデバイスまたは非承認デバイスにコンテンツを送信することを可能にされる別のデバイスを選択しなければならなくてもよい。例えば、分散型アンビエントコンピューティングシステム200は、システムポリシーに従って要求に応じてオフサイトユーザに情報を送信してもよい特定のデバイスを有してもよい。そのようなポリシーは、異なるタイプのデータをキャプチャするデバイスのために構成されてもよい。たとえば、ドアベルカメラもしくは屋外セキュリティカメラによってキャプチャされたコンテンツおよび/またはデータは、ユーザデータを含む可能性が低いことがあり、したがって、あるポリシーは、システム200に関連付けられる世帯用暗号化または他のセキュリティプロトコルなしにそのようなデータに遠隔アクセスするよう構成されてもよい。
【0183】
いくつかの実現例では、コンピューティングシステム202は、複数のデバイスのうちのそれぞれのデバイス上で利用可能な、判断された、センサに基づく能力を評価することによって、複数の追加のデバイスのうちの1つ以上を選択してもよい。センサに基づく能力は、能力を実行するために、デバイスセンサを動作させる、および/または別様に用いるデバイス能力を含んでもよい。例えば、システム202は、システム200内のどのデバイスがカメラおよび/または他の(画像センサを用いる)画像キャプチャ能力を含むかを判断してもよい。そのようなデバイスは、それぞれのデバイスに関連付けられるロケーションに従って選択およびランク付けされてもよい。たとえば、ドアベルカメラ(図示せず)およびセキュリティデバイス106は、タスクを実行するために選択されてもよいが、セキュリティデバイス106は、街路ビューおよび住宅に到着し入る子供(たとえば、エラ)の住宅入口をキャプチャすることに基づいて選択されてもよい。他のデバイスも、例えば、エラが住宅に入るときに顔認識能力に基づいて選択およびランク付けされてもよい。
【0184】
いくつかの実現例では、複数の追加のデバイスのうちの少なくとも1つの選択は、さらに、ユーザ環境に関連付けられる検出された情報に基づく。たとえば、ユーザ環境は、コンピューティングシステム202ならびに複数の追加のデバイス104,106,108,112,114,116,および204を含む物理的建物として規定されてもよい。各デバイスは、タスクの実行を助けることができる追加の有用な情報を含んでもよい。
【0185】
いくつかの実現例では、タスクを実行するために複数の追加のデバイスのうちの少なくとも1つを選択することは、ユーザ環境についてコンテキストを判断することを含む。コンテキストは、複数の追加のデバイスのうちの1つ以上に関連付けられる検出された情報および記憶された情報に基づいてもよい。例えば、検出された情報は、カレンダー情報を含む。例えば、アシスタントデバイス112上のカレンダーは、エラが、最近スケジュールされた習い事に基づいて、月曜日に学校にいないことを検出してもよい。したがって、タスクが月曜日ごとに発生する反復タスクであり、スケジュールされた学校機能停止が異常である場合、システム202は、エラを含むイベントを検出してもよく、タスク要求者に通知を送信して、要求された監視時間の間にエラが家にいると予想されないことを要求者に知らせてもよい。
【0186】
要求されたタスクに関する他の検出されたデータも、もちろん可能である。たとえば、いくつかの実現例では、検出された情報は、たとえば、エラがすでに家にいる(または早く到着した)ことを示してもよい、ユーザ環境における検出されたユーザアクティビティレベルに対応する。いくつかの実現例では、検出された情報は、ユーザ環境内の1つ以上の検出された音声要求または検出された視覚画像に対応してもよい。例えば、エラが1:45PMに音声要求を提出したか、または世帯のデバイスカメラのうちの1つによってキャプチャされた場合、タスクは、削除および/または別様に再スケジュールされてもよい。検出された音声および/または視覚画像を用いて、タスク要求者に通信を送信してもよい。
【0187】
いくつかの実現例では、プロセス2000は、タスクに対応する出力を生成するために、コンピューティングシステム202によって、複数の追加のデバイスにおいて第2のデバイスを選択することを含んでもよい。例えば、エラが自宅に到着すると、エラの屋内でキャプチャされた写真がタスク要求者に提供されて、エラが自宅に到着したことを示してもよく、キャプチャされた写真は、エラが自宅にいる証明を提供してもよい。
【0188】
いくつかの実現例では、第2のデバイスの選択は、複数の追加のデバイスのうちの選択された少なくとも1つ(たとえば、セキュリティデバイス106)がタスクに対応する出力を生成し通信するのに適していないと判断することに少なくとも部分的に基づいてもよい。たとえば、デバイス106は、住宅の玄関でエラのキャプチャを送信してもよいが、デバイス106は、エラが実際に住宅に入ったことを示すエラの屋内写真をキャプチャすることができないことがある。代わりに、デバイス110が、エラの存在を検出してもよく、エラの写真をキャプチャし、タスク要求者に送信してもよい。
【0189】
いくつかの実現例では、タスクに対応する出力を生成するために、コンピューティングシステム202によって、複数の追加のデバイスのうちの第2のデバイスを選択することは、セキュリティデバイス106のロケーションが、タスクを実行する要求に関連付けられるユーザの事前定義された視覚範囲または事前定義された音声範囲の外にある、と判断することに少なくとも部分的に基づいて、第2のデバイスを選択することを含んでもよい。たとえば、タスク要求がデバイス106とは異なる部屋でタスクを実行することを含む場合、タスクを実行するために、デバイス110など、異なるデバイスが選択されてもよい。
【0190】
ブロック2014において、プロセス2000は、タスクを実行するよう、コンピューティングデバイスが、選択されたデバイスをトリガすることを含む。例えば、コンピューティングシステム202は、2:00から4:00の時間の間にセキュリティデバイス106の範囲内の任意の動きの画像をキャプチャする実行をトリガしてもよい。いくつかの実現例では、タスクを実行するよう、コンピューティングシステム202が、選択されたデバイス(たとえば、セキュリティデバイス106)をトリガすることは、コンピューティングシステム202に関連付けられるオペレーティングシステムを介して、選択された少なくとも1つの追加のデバイス(たとえば、セキュリティデバイス106)上で実行しているそれぞれのオペレーティングシステムと通信している少なくとも1つのサービスにアクセスすることを含む。例えば、セキュリティデバイス106は、画像および/またはコンテンツを他のデバイスに送信することができない場合がある。あるサービスは、たとえば、1つ以上のデバイス分散ストレージ(たとえば、ログ)を用いて、住宅内の他のデバイスまたは住宅コンテンツを受信することを承認されたデバイス(例えば、タスクを要求した世帯構成員のモバイルデバイス)に通信メッセージを生成してもよい、システム200内のデバイスに、キャプチャされたコンテンツを転送するよう、構成されてもよい。そのようなサービスは、受信されたタスクを複数の追加のデバイスのうちの少なくとも1つの他のデバイスにディスパッチするよう構成されてもよい。例えば、デバイス106は、エラの写真をキャプチャし、その写真を、基底のオンボードオペレーティングシステムを介して、メッセージを生成し、他のオンサイトまたは遠隔世帯のデバイスに送信するよう構成されるアシスタントデバイス114に送信(または利用可能に)してもよい。
【0191】
いくつかの実現例では、タスクを実行するよう選択されたデバイス(例えば、デバイス106および/またはデバイス114)をトリガすることは、視覚出力(たとえば、エラの写真)を生成することを含み、視覚出力は、コンピューティングデバイスが、タスクを実行するよう受信された要求に関連付けられるユーザまでの閾値距離内にある、と判断したことに応答して、コンピューティングデバイスのディスプレイ上に提供される。
【0192】
いくつかの実現例では、タスクを実行するよう選択されたデバイスをトリガすることは、視覚および音声出力(例えば、セキュリティデバイス106からのキャプチャされた画像、キャプチャされたビデオなど)を生成することを含む。視覚および音声出力は、事前規定された期間外の時刻を判断することに応答して、複数の追加のデバイスのうちの別のデバイス上に提供されてもよい。例えば、システム200が世帯データを住宅外のデバイスに送信することを承認しない場合、その情報は、システム200内の別のデバイスに送信またはログ記録されてもよい。この別のデバイスは、そのようなデータを送信することを承認されてもよく、例えば、エラの到着についてタスク要求者に注意喚起してもよい。いくつかの実現例では、システム202は、タスクを実行するよう選択されたデバイスについてユーザ選択制御を有効にするために、コンピューティングデバイス(またはシステム200に関連付けられる任意のデバイス)のディスプレイ上のグラフィカル制御要素の表示をトリガしてもよい。例示的な制御は、例えば、タスクに関連付けられるビデオを再生するための再生ボタンであってもよい。
【0193】
図21は、本明細書で説明する実現例による、複数のデバイス間でタスクを共有するために分散型アンビエントコンピューティングシステムを動作させる例示的なプロセス2100である。プロセス2100は、規定されたユーザ環境内のデバイスがタスクを通信し、共有し、実行してもよいことを保証してもよい。プロセス2100は、便宜上、システム200、アーキテクチャ300、および350を参照して説明されてもよい。いくつかの実現例では、本開示全体にわたって説明するデバイスは、システム200内で他のデバイスとして動作してもよい。例えば、アシスタントデバイス114は、デバイス202の各コンポーネントを含むコンピューティングシステム202として動作してもよい。
【0194】
ブロック2102において、プロセス2100は、コンピューティングデバイスが、ユーザ環境に関連付けられる複数の追加のデバイスを検出することを含む。例えば、コンピューティングシステム202は、ロケーション(例えば、世帯/住宅)等のユーザ環境として定義されるロケーション内の任意の数のデバイス104,106,108,112,114,116,および204を検出してもよい。検出は、デバイスの存在、それぞれのデバイスの各々に関連付けられるロケーション、ユーザ環境内のデバイス間の近接度などの検出を含んでもよい。概して、追加のデバイスは、携帯電話、ラップトップ、デスクトップなどのパーソナルユーザデバイスを含んでも含まなくてもよい。
【0195】
ブロック2104において、プロセス2100は、複数の追加のデバイスについて、それぞれの追加のデバイスの各々に関連付けられる複数の能力を判断することを含む。たとえば、システム202は、デバイス104,106,108,112,114,116,および204の各々に関連付けられるデバイス能力および/または処理能力を判断してもよい。例示的な能力は、限定はしないが、ほんの数例を挙げると、デバイスセンサ能力、デバイス通信能力、デバイス処理能力、デバイスハードウェア能力および/またはデバイスソフトウェア能力を含んでもよい。いくつかの実現例では、コンピューティングシステム202は、一般に、能力を評価および/または判断するために、特定の世帯ロケーション内のデバイスに関連付けられる1つ以上のデバイス分散ストレージまたはストレージにアクセスしてもよい。
【0196】
ブロック2106において、プロセス2100は、コンピューティングデバイスが、複数の追加のデバイスを分散型コンピューティングシステムとして構成することを含み、複数の追加のデバイスは、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に対応する。いくつかの実現例では、分散型コンピューティングシステムは、ユーザ設定許可、ユーザ同意、および/または他のデバイスベースのポリシーに従って構成されてもよい。
【0197】
複数の追加のデバイスは、分散型アンビエントコンピューティングシステム200において、複数の能力のうちの少なくとも1つおよびユーザ環境内のデバイス位置に従って定義されてもよい。たとえば、コンピューティングシステム202は、デバイス104,106,108,112,114,116,および204の各々がユーザからなる世帯に関連付けられ得る(および/またはユーザからなる世帯のロケーションの特定の距離内にある)、と評価することができる。それに応答して、システム202は、デバイス104,106,108,112,114,116,および204を、世帯のためにタスクを実行することができる分散型アンビエントコンピューティングシステムとして動作するように生成および/または別様に構成してもよい。
【0198】
ブロック2108において、プロセス2100は、コンピューティングデバイスにおいて、タスクを実行する要求を受信することを含む。例えば、ユーザ102は、住宅から出ている場合があり、セキュリティ対策に取り組みたい場合がある。図1Aに示すように、ユーザは、タスク118(すなわち、自宅を保護して)の実行を発話するか、または別様に要求して、例えば、発話されたタスク118をアンビエントデバイス104~116のうちの1つ以上の間で編成するよう、デバイス114をトリガしてもよい。コンピューティングシステム202は、例えば、本明細書で説明されるプラットフォームとの間でコマンドを解釈することが可能なO/Sを実行していてもよいアシスタントデバイス114またはデバイス116に含まれてもよい。
【0199】
ブロック2110において、プロセス2100は、タスクの実行の完了が複数の能力のうちの2つ以上の使用を示す、と判断することを含む。例えば、アシスタントデバイス114(デバイス202として動作する)は、分散型コンピューティングシステム200内で、複数の追加のデバイスのうちのどれがタスクを実行することができるかを判断し(ブロック2112)、タスクを完了するために2つ以上の能力の実行を共有するために、複数の追加のデバイスにおいて少なくとも2つのデバイスを選択してもよい。少なくとも2つのデバイスの選択は、コンピューティングデバイスに対する2つのデバイスの判断された近接度に少なくとも部分的に基づいてもよい(ブロック2114)。
【0200】
例えば、タスク118を受信すると、デバイス114は、システム内のどのデバイスが保護措置(例えば、セキュリティタスク)が可能であるかを評価してもよい。デバイス114はまた、どのデバイスがセキュリティ対策に従事するかを評価するために用いられてもよい、デバイスの特定の近接度を判断してもよい。デバイス114は、例えば、セキュリティ機能を有すると判断され住宅のポリシーに従うデバイスのセキュリティ機能をオンにしてもよい。ここで、デバイス114(デバイス202として動作する)は、ドアロックデバイス104およびセキュリティデバイス106が住宅を保護するのに充分であると判断してもよい。
【0201】
動作中、デバイス114は、住宅のためにセキュリティ従事を実行するようにデバイス104,106,108,110,112,および116をトリガするために、信号を送信し、そのような信号を分散ストレージに記録してもよい。各従事したデバイスも、各それぞれのデバイスに関連付けられるそれぞれの分散ストレージに信号を記録してもよい。各分散ストレージ(例えば、ログ)は、マスタ世帯分散ストレージ(例えば、分散ストレージ257)と同期し、マスタ世帯レッジャー(例えば、分散ストレージ)を用いて判断を行うようにしてもよい。
【0202】
ブロック2116において、プロセス2100は、タスクを実行するよう、コンピューティングデバイスが、選択された少なくとも2つのデバイスをトリガすることを含む。たとえば、デバイス114は、予め定められたポリシーに従ってセキュリティプロトコルに従事するようデバイス104および106をトリガしてもよい。いくつかの実現例では、デバイス114は、セキュリティ対策のためにポリシーを適所に有することなくセキュリティ対策に従事するようにそのようなデバイスをトリガしてもよい。
【0203】
いくつかの実現例では、少なくとも2つのデバイスを選択することは、タスクの複数の別個の部分を実行するために通信するよう少なくとも2つのデバイスを構成することを含む。例えば、デバイス114は、セキュリティ対策を特定の順序で使用および使用解除するために、例えばBluetooth(登録商標)を介して通信するように、デバイス104およびデバイス106を構成してもよい。例えば、ドアロックデバイス104がロック解除された場合、セキュリティデバイス106はオフにされてもよい。
【0204】
いくつかの実現例では、少なくとも2つのデバイスを選択することは、複数のデバイスのうちのどれが、タスクを完了するための2つ以上の能力を実行するよう構成されるコンポーネントを含むかを判断することと、タスクを完了するために通信するように少なくとも2つのデバイスを構成することとを含む。たとえば、デバイス114は、デバイス104とデバイス106との間でセキュリティ対策の同期をトリガしてもよい。
【0205】
図22は、本明細書で説明する技術とともに用いられてもよいコンピュータデバイス2200およびモバイルコンピュータデバイス2250の一例を示す。コンピューティングデバイス2200は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、スマートデバイス、アプライアンス、電子センサに基づくデバイス、テレビ、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピューティングデバイス等の種々の形態のデジタルコンピュータを表すように意図される。コンピューティングデバイス2250は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すように意図される。本明細書に示された構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本文書に記載および/または特許請求される本発明の実現例を限定するものではない。
【0206】
コンピューティングデバイス2200は、プロセッサ2202と、メモリ2204と、ストレージデバイス2206と、メモリ2204および高速拡張ポート2210に接続する高速インターフェイス2208と、低速バス2214およびストレージデバイス2206に接続する低速インターフェイス2212とを含む。プロセッサ2202は、半導体ベースのプロセッサとすることができる。メモリ2204は、半導体ベースのメモリとすることができる。コンポーネント2202,2204,2206,2208,2210,および2212の各々は、様々なバスを用いて相互接続され、共通のマザーボード上に、または必要に応じて他の方法で実装されてもよい。プロセッサ2202は、高速インターフェイス2208に結合されたディスプレイ2216などの外部入力/出力装置上にGUIのためのグラフィカル情報を表示するために、メモリ2204またはストレージデバイス2206に記憶された命令を含む、コンピューティングデバイス2200内で実行するための命令を処理することができる。他の実現例では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよびメモリのタイプとともに用いられてもよい。また、複数のコンピューティングデバイス2200が接続されてもよく、各デバイスは、(たとえば、サーババンクとして、ブレードサーバのグループとして、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0207】
メモリ2204は、コンピューティングデバイス2200内に情報を記憶する。一実現例では、メモリ2204は、1つ以上の揮発性メモリユニットである。別の実現例では、メモリ2204は、1つ以上の不揮発性メモリユニットである。メモリ2204はまた、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ可読媒体であってもよい。概して、コンピュータ可読媒体は、非一時的コンピュータ可読媒体であってもよい。
【0208】
ストレージデバイス2206は、コンピューティングデバイス2200のための大容量ストレージを提供することができる。一実現例では、ストレージデバイス2206は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、もしくはテープ装置、フラッシュメモリもしくは他の類似の固体メモリ装置、もしくはストレージエリアネットワークもしくは他の構成の装置を含む装置のアレイなどのコンピュータ可読媒体であるかまたはそれを含んでもよい。コンピュータプログラム製品は、情報担体において有形に具現化することができる。コンピュータプログラム製品はまた、実行されると、上記で説明したもののような、1つ以上の方法および/またはコンピュータにより実現される方法を実行する命令を含んでもよい。情報担体は、メモリ2204、ストレージデバイス2206、またはプロセッサ2202上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0209】
高速コントローラ2208は、コンピューティングデバイス2200のための帯域幅集約型動作を管理し、低速コントローラ2212は、より低い帯域幅集約型動作を管理する。このような機能の割り当ては例示に過ぎない。一実現例では、高速コントローラ2208は、(例えば、グラフィックスプロセッサまたはアクセラレータを介して)メモリ2204、ディスプレイ2216に、および様々な拡張カード(図示せず)を受け入れてもよい高速拡張ポート2210に、結合される。この実現例では、低速コントローラ2212は、ストレージデバイス2206および低速拡張ポート2214に結合される。低速拡張ポートは、様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含んでもよく、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つ以上の入力/出力装置に、たとえばネットワークアダプタを介して結合されてもよい。
【0210】
コンピューティングデバイス2200は、図に示されるように、いくつかの異なる形態で実現されてもよい。例えば、標準サーバ2220として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、それは、ラックサーバシステム2224の一部としても実現されてもよい。加えて、それは、ラップトップコンピュータ2222などのパーソナルコンピュータにおいて実現されてもよい。代替として、コンピューティングデバイス2200からのコンポーネントは、デバイス2250等のモバイルデバイス(図示せず)内の他のコンポーネントと組み合わせられてもよい。そのようなデバイスの各々は、コンピューティングデバイス2000、2050のうちの1つ以上を含んでもよく、システム全体が、互いに通信する複数のコンピューティングデバイス2000、2050から構成されてもよい。
【0211】
コンピューティングデバイス2250は、他のコンポーネントの中でもとりわけ、プロセッサ2252と、メモリ2264と、ディスプレイ2254などの入出力装置と、通信インターフェイス2266と、トランシーバ2268とを含む。デバイス2250はまた、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどのストレージデバイスを設けられてもよい。コンポーネント2250,2252,2264,2254,2266,および2268の各々は、様々なバスを用いて相互接続され、コンポーネントのうちのいくつかは、共通のマザーボード上に、または必要に応じて他の方法で実装されてもよい。
【0212】
プロセッサ2252は、コンピューティングデバイス2250内で、メモリ2264に記憶された命令を含む命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス2250によって実行されるアプリケーション、およびデバイス2250によるワイヤレス通信など、デバイス2250の他のコンポーネントの調整に備えてもよい。
【0213】
プロセッサ2252は、ディスプレイ2254に結合された制御インターフェイス2258およびディスプレイインターフェイス2256を介してユーザと通信してもよい。ディスプレイ2254は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス2256は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ2254を駆動するための適切な回路を備えてもよい。制御インターフェイス2258は、ユーザからコマンドを受信し、それらをプロセッサ2252に提出するために変換してもよい。さらに、デバイス2250と他のデバイスとの近距離通信を可能にするために、プロセッサ2252と通信する外部インターフェイス2262を設けてもよい。外部インターフェイス2262は、例えば、いくつかの実現例では有線通信に備えてもよく、他の実現例では無線通信を提供してもよく、複数のインターフェイスも用いられてもよい。
【0214】
メモリ2264は、コンピューティングデバイス2250内に情報を記憶する。メモリ2264は、1つ以上のコンピュータ可読媒体、1つ以上の揮発性メモリユニット、または1つ以上の不揮発性メモリユニットのうちの1つ以上として実現され得る。拡張メモリ2274も提供され、たとえばSIMM(シングルインラインメモリモジュール)カードインターフェイスを含んでもよい拡張インターフェイス2272を介してデバイス2250に接続されてもよい。そのような拡張メモリ2274は、デバイス2250のための追加の記憶空間を提供してもよく、またはデバイス2250のためのアプリケーションもしくは他の情報を記憶してもよい。具体的には、拡張メモリ2274は、上記で説明したプロセスを実行または補足するための命令を含んでもよく、セキュリティ保護された情報も含んでもよい。したがって、たとえば、拡張メモリ2274は、デバイス2250のためのセキュリティモジュールとして提供されてもよく、デバイス2250のセキュリティ保護された使用を可能にする命令とともにプログラムされてもよい。加えて、ハッキング不可能な態様でSIMMカード上に識別用情報を配置するなど、追加の情報とともに、SIMMカードを介して、セキュリティ保護されたアプリケーションを提供してもよい。
【0215】
メモリは、以下で説明するように、たとえば、フラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実現例では、あるコンピュータプログラム製品が、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法などの1つ以上の方法を実行する命令を含む。情報担体は、メモリ2264、拡張メモリ2274、もしくはプロセッサ2252上のメモリなどのコンピュータ可読媒体または機械可読媒体であり、たとえば、トランシーバ2268または外部インターフェイス2262を介して受信されてもよい。
【0216】
デバイス2250は、必要に応じてデジタル信号処理回路を含んでもよい通信インターフェイス2266を介して無線で通信してもよい。通信インターフェイス2266は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、もしくはGPRSなどの様々なモードまたはプロトコルの下での通信に備えてもよい。そのような通信は、例えば、無線周波数トランシーバ2268を介して行われてもよい。さらに、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバ(図示せず)などを用いて、短距離通信が生じてもよい。加えて、GPS(全地球測位システム)受信機モジュール2270が、デバイス2250上で実行されるアプリケーションによって適宜用いられてもよい追加のナビゲーション関連および位置関連無線データをデバイス2250に提供してもよい。
【0217】
デバイス2250はまた、音声コーデック2260を用いて可聴的に通信してもよく、これは、ユーザから発話された情報を受信し、それを使用可能なデジタル情報に変換してもよい。音声コーデック2260は、同様に、たとえばデバイス2250のハンドセット内のスピーカなどを通じて、ユーザのために可聴音を生成してもよい。そのような音声は、音声電話通話からの音を含んでもよく、録音された音(例えば、音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス2250上で動作するアプリケーションによって生成される音も含んでもよい。
【0218】
コンピューティングデバイス2250は、図に示されるように、いくつかの異なる形態で実現されてもよい。例えば、それは、携帯電話2280として実現されてもよい。それは、スマートフォン2282、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【0219】
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらの様々な実現例は、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置にデータおよび命令を送信するように結合された、専用であっても汎用であってもよい少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムにおける実現例を含むことができる。
【0220】
これらのコンピュータプログラム(モジュール、プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラマブルプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実現することができる。本明細書で使用されるとき、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/もしくはデータをプログラマブルプロセッサに提供するよう使用される任意のコンピュータプログラム製品、装置ならびに/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
【0221】
ユーザとの対話に備えるために、本明細書で説明されるシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、またはLED(発光ダイオード))と、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上で実現することができる。他の種類のデバイスも同様に、ユーザとの対話に備えるために使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信されることができる。
【0222】
本明細書で説明されるシステムおよび技術は、(たとえばデータサーバとして)バックエンドコンポーネントを含む計算システムにおいて実現され得るか、(たとえばアプリケーションサーバといった)ミドルウェアコンポーネントを含む計算システムにおいて実現され得るか、(たとえば本明細書で説明されるシステムおよび技術の実現例とユーザが対話することが可能であるグラフィカルユーザーインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといった)フロントエンドコンポーネントを含む計算システムにおいて実現され得るか、またはそのようなバックエンドコンポーネント、ミドルウェアコンポーネントもしくはフロントエンドコンポーネントの任意の組合せを含む計算システムにおいて実現され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含む。
【0223】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは一般に互いから遠隔にあり、典型的には通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されるとともに互いに対してクライアント-サーバ関係を有するコンピュータプログラムによって生ずる。
【0224】
多数の実施形態が記載された。それにもかかわらず、本発明の精神および範囲から逸脱することなく、様々な修正がなされ得ることが理解されるであろう。
【0225】
加えて、図面において示される論理フローは、望ましい結果を達成するために、示された特定の順序または連続する順序を必要としない。加えて、説明されたフローから、他のステップが与えられてもよく、またはステップが削除されてもよく、他の構成要素が、説明されたシステムに追加されてもよく、またはそこから削除されてもよい。したがって、他の実施形態は、特許請求の範囲内にある。
【0226】
上記の説明に加えて、本明細書で説明されるシステム、プログラム、または特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクション、またはアクティビティ、職業、ユーザの嗜好、またはユーザの現在位置についての情報)の収集を可能にし得るかどうかおよび何時そうであり得るかの両方、ならびにユーザがサーバからコンテンツまたは通信を送信されるかどうかに関してユーザが選択を行うことを可能にする制御が、ユーザに提供される。さらに、特定のデータは、個人的に識別可能な情報が取り除かれるように、記憶または使用前に、1つ以上の方法で扱われてもよい。例えば、ユーザの素性は、ユーザについて個人的に識別可能な情報を判断できないように扱われてもよく、またはユーザの地理的位置は、(例えば、都市、ZIPコード、または州レベルに関して)位置情報が得られる場合に、ユーザの特定の位置を判断することができないように、一般化されてもよい。したがって、ユーザは、ユーザに関してどのような情報が収集されるか、その情報がどのように用いられるか、およびどのような情報がユーザに提供されるかについて、制御することができる。
【0227】
コンピュータシステム(例えば、コンピューティングデバイス)は、ネットワークを介する通信に適合された、無線周波数(RF)、マイクロ波周波数(MWF)、および/または赤外線周波数(IRF)無線通信技術ならびにプロトコルを含む任意の公知の無線通信技術ならびにプロトコルを用いて、ネットワークサーバと確立された通信リンクを経由でネットワークを介してネットワークサーバと無線通信するよう構成されてもよい。
【0228】
本開示の態様によれば、本明細書で説明する様々な技術の実現例は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、またはそれらの組合せにおいて実現されてもよい。実現例は、(例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータなどの)データ処理装置によって処理するための、またはデータ処理装置の動作を制御するために、コンピュータプログラム製品(例えば、情報担体、機械可読記憶装置、コンピュータ可読媒体、有形コンピュータ可読媒体において有形に具現化されるコンピュータプログラム)として実現されてもよい。いくつかの実現例では、有形のコンピュータ可読記憶媒体は、実行されるとプロセッサにプロセスを実行させる命令を記憶するよう構成されてもよい。上記のコンピュータプログラムのようなコンピュータプログラムは、コンパイル型または解釈型言語を含む任意の形態のプログラミング言語で記述されてもよく、それは、スタンドアロンプログラムとして、またはモジュールとして、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットを含む任意の形態で展開されてもよい。コンピュータプログラムは、1つのコンピュータまたは1つの場所に位置するかもしくは複数の場所にわたって分散され通信ネットワークによって相互接続される複数のコンピュータ上で処理されるように展開されてもよい。
【0229】
本明細書に開示される具体的な構造的および機能的詳細は、例示的な実施形態を説明する目的で代表的なものにすぎない。しかしながら、例示的実施形態は、多くの代替形態で具現化されてもよく、本明細書に記載される実施形態のみに限定されると解釈されるべきではない。
【0230】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的としており、実施形態を限定することを意図するものではない。本明細書で用いる場合、単数形「a」、「an」、および「the」は、文脈が明確に別段に指示しない限り、複数形も含むものとする。さらに、「備える(comprises)」、「備えて(comprising)」、「含む(includes)」、および/または「含んで(including)」という文言は、本明細書で用いられる場合、述べられた特徴、ステップ、動作、要素、および/または構成要素の存在を明記するが、1つ以上の他の特徴、ステップ、動作、要素、構成要素および/もしくはそれらの群の存在または追加を排除しないことが理解されよう。
【0231】
ある要素が、別の要素に「結合される」、別の要素に「接続される」、もしくは「応答する」、または別の要素「上にある」として言及される場合、それは、別の要素に直接結合される、接続される、もしくは応答する、もしくは上にあり得るか、または介在要素も存在してもよいことが理解されるであろう。対照的に、ある要素が別の要素に「直接結合される」、「直接接続される」、もしくは「直接応答する」、または別の要素「上に直接ある」として言及される場合、介在要素は存在しない。本明細書で用いられる場合、「および/または」という文言は、関連付けられる列挙された項目のうちの1つ以上の任意およびすべての組み合わせを含む。
【0232】
「~の真下に(beneath)」、「~より下に(below)」、「~より下の(lower)」、「~より上に(above)」、「~より上の(upper)」などの空間的に相対的な用語は、本明細書では、説明を容易にするために、図に示すように、1つの要素または特徴を他の要素または特徴に関連して説明するために用いられる場合がある。空間的に相対的な用語は、図面に示された向きに加えて、使用中または動作中の装置の異なる向きを包含することが意図されていることが理解されるであろう。例えば、図中の装置がひっくり返された場合、他の要素もしくは特徴の「下」または「真下」と記載される要素は、他の要素または特徴の「上に」向けられる。したがって、「下」という文言は、上および下の両方の向きを包含することができる。装置は、別様に向けられてもよく(70度または他の向きに回転させられてもよい)、本明細書で用いられる空間的相対記述子は、それに応じて解釈されてもよい。
【0233】
本概念の例示的な実施形態は、本明細書では、例示的な実施形態の理想化された実施形態(および中間構造)の概略図である断面図を参照して記載される。したがって、例えば製造技術および/または公差の結果として図の形状からの変動が予想される。したがって、説明される概念の例示的実施形態は、本明細書に示される領域の特定の形状に限定されると解釈されるべきではなく、例えば、製造に起因する形状の偏差を含むと解釈されるべきである。したがって、図に示される領域は、本質的に概略的であり、それらの形状は、装置の領域の実際の形状を示すことを意図してはおらず、例示的な実施形態の範囲を限定することを意図していない。
【0234】
「第1の」、「第2の」などの文言は、本明細書では様々な要素を説明するために用いられ得るが、これらの要素はこれらの文言によって限定されるべきではないことが理解されよう。これらの文言は、ある要素を他の要素と区別するためにのみ用いられる。したがって、「第1の」要素は、本実施形態の教示から逸脱することなく、「第2の」要素と呼ぶことができる。
【0235】
特に定義されない限り、本明細書で用いられる文言(技術用語および科学用語を含む)は、これらの概念が属する技術分野の当業者によって通常理解されるものと同じ意味を有する。さらに、一般に用いられる辞書で定義されるものなどのような用語は、関連技術および/または本明細書の文脈においてそれらの意味と一貫する意味を有するものとして解釈されるべきであり、本明細書でそうであると明示的に定義されない限り、理想化された意味または過度に形式的な意味で解釈されないことになることが理解されるであろう。
【0236】
記載された実現例のある特徴を本明細書で記載されるように示したが、当業者には、多くの修正物、置換物、変更物、および均等物が思い浮かぶであろう。したがって、特許請求の範囲は、実現例の範囲内に入るような修正および変更を包含するように意図されることを理解されたい。これらは、限定ではなく例としてのみ提示されており、形態および詳細の様々な変更が行われ得ることを理解されたい。本明細書で説明される装置および/または方法の任意の部分を、相互排他的組み合わせを除く任意の組み合わせで組み合わせてもよい。本明細書で説明される実現例は、説明される異なる実現例の機能、構成要素、および/または特徴の様々な組合せおよび/または部分的組合せを含むことができる。
図1A
図1B
図1C
図2
図3A
図3B
図4
図5A
図5B
図5C
図6A
図6B
図6C
図7
図8
図9
図10A
図10B
図11A
図11B
図12
図13
図14
図15A
図15B
図16
図17
図18
図19
図20
図21
図22