(57)【要約】ネットワーク管理のためのコンピュータ実装方法が開示され、本方法は、第1のセンサ付き無線送受信機から、他のセンサ付き無線送受信機からのデータの受け入れが可能であることをブロードキャストする工程、1つまたは複数の他のセンサ付き無線送受信機から、第1のセンサ付き無線送受信機にセンサデータを提供するためにサブスクライブするよう求める要求を受信する工程、続いて1つまたは複数の他のセンサ付き無線送受信機からセンサ値を示すデータを受信する工程、センサ値を示すデータを集約する工程、および集約されたデータを、インターネットを介して中央サービスに送信する工程、を含む。2019523620.tif 000003
2019523620.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク管理のためのコンピュータ実装方法であって、以下の工程を含む、方法:
第1のセンサ付き無線送受信機から、他のセンサ付き無線送受信機からのデータの受け入れが可能であることをブロードキャストする工程;
1つまたは複数の他のセンサ付き無線送受信機から、前記第1のセンサ付き無線送受信機にセンサデータを提供するためにサブスクライブするよう求める要求を受信する工程;
続いて前記1つまたは複数の他のセンサ付き無線送受信機からセンサ値を示すデータを受信する工程;
センサ値を示す前記データを集約する工程;および
前記集約されたデータを、インターネットを介して中央サービスに送信する工程。
【請求項２】
前記データが、前記中央サービスから要求を受信したことに応答して集約され、前記要求が、前記データが対象とすべき特定のパラメータを識別する、請求項1記載のコンピュータ実装方法。
【請求項３】
前記第1のセンサ付き無線送受信機が、前記要求に応答するセンサ読取値を特定するために、センサ・タイプ・フィールドを有する内部データベースに問い合わせする、請求項2記載のコンピュータ実装方法。
【請求項４】
前記センサ・タイプ・フィールドが、前記第1のセンサ付き無線送受信機上でハッシュ化される、請求項3記載のコンピュータ実装方法。
【請求項５】
前記第1のセンサ付き無線送受信機と前記1つまたは複数の他のセンサ付き無線送受信機とが、下にあるローカル・エリア・ネットワーク上に階層化されたネットワークを介して通信する、請求項1記載のコンピュータ実装方法。
【請求項６】
前記第1のセンサ付き無線送受信機で、前記第1のセンサ付き無線送受信機に対する前記1つまたは複数の他のセンサ付き無線送受信機の各々の近接度を判断する工程;および
判断された前記送受信機間の近接度に基づいて前記1つまたは複数の他のセンサ付き無線送受信機の各々からのデータを集約すべきかどうか判断する工程
をさらに含む、請求項1記載のコンピュータ実装方法。
【請求項７】
前記判断された近接度が、要因として、前記第1のセンサ付き送受信機と前記1つまたは複数の他のセンサ付き送受信機のうちの特定の送受信機との間の判断された地理的近接度を含む、請求項6記載のコンピュータ実装方法。
【請求項８】
前記第1のセンサ付き無線送受信機と前記1つまたは複数の他のセンサ付き無線送受信機とが、エンティティ関係モデルにおける第一級オブジェクトとしてそれらの記憶装置内のノードを各々表した、請求項1記載のコンピュータ実装方法。
【請求項９】
実行されると、
第1のセンサ付き無線送受信機から、他のセンサ付き無線送受信機からのデータの受け入れが可能であることをブロードキャストすること;
1つまたは複数の他のセンサ付き無線送受信機から、前記第1のセンサ付き無線送受信機にセンサデータを提供するためにサブスクライブするよう求める要求を受信すること;
続いて前記1つまたは複数の他のセンサ付き無線送受信機からセンサ値を示すデータを受信すること;
センサ値を示す前記データを集約すること;および
前記集約されたデータを、インターネットを介して中央サービスに送信すること
を含む動作を行う命令が格納された有形の非一時的な機械可読媒体を有する、1つまたは複数のデバイス。
【請求項１０】
前記データが、前記中央サービスから要求を受信したことに応答して集約され、前記要求が、前記データが対象とすべき特定のパラメータを識別する、請求項9記載の1つまたは複数のデバイス。
【請求項１１】
前記要求に応答するセンサ読取値を特定するために、前記第1のセンサ付き無線送受信機が、センサ・タイプ・フィールドを有する内部データベースに問い合わせする、請求項10記載の1つまたは複数のデバイス。
【請求項１２】
前記センサ・タイプ・フィールドが、前記第1のセンサ付き無線送受信機上でハッシュ化される、請求項11記載の1つまたは複数のデバイス。
【請求項１３】
前記第1のセンサ付き無線送受信機と前記1つまたは複数の他のセンサ付き無線送受信機とが、下にあるローカル・エリア・ネットワーク上に階層化されたネットワークを介して通信する、請求項9記載の1つまたは複数のデバイス。
【請求項１４】
前記動作が、
前記第1のセンサ付き無線送受信機で、前記第1のセンサ付き無線送受信機に対する前記1つまたは複数の他のセンサ付き無線送受信機の各々の近接度を判断すること;および
判断された前記送受信機間の近接度に基づいて前記1つまたは複数の他のセンサ付き無線送受信機の各々からのデータを集約すべきかどうか判断すること
をさらに含む、請求項9記載の1つまたは複数のデバイス。
【請求項１５】
前記判断された近接度が、要因として、前記第1のセンサ付き送受信機と前記1つまたは複数の他のセンサ付き送受信機のうちの特定の送受信機との間の判断された地理的近接度を含む、請求項14記載の1つまたは複数のデバイス。
【請求項１６】
前記第1のセンサ付き無線送受信機と前記1つまたは複数の他のセンサ付き無線送受信機とが、エンティティ関係モデルにおける第一級オブジェクトとしてそれらの記憶装置内のノードを各々表した、請求項9記載の1つまたは複数のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年5月26日に出願された米国特許出願第15/165526号に対する優先権を主張する。この先の出願の開示は、本出願の開示の一部とみなされ、参照により本明細書に組み入れられる。
【０００２】
技術分野
本明細書では、概して、ネットワークシステムに関する技術、およびコンピュータベースのネットワークの改善について述べる。
【背景技術】
【０００３】
背景
電子デバイスのネットワーク化により、技術の大幅な前進が可能になった。例えば、ローカル・エリア・ネットワークは、組織の従業員が、電子メールその他のソフトウェアアプリケーションを使用して相互により便利に通信することを可能にする。ワールド・ワイド・ウェブのようなインターネットおよび関連アプリケーションは、世界中で同様の通信を可能にし、また、ウェブページ、ホストアプリケーション、多数の他の実施態様など、様々なユーザへの豊富なサービスの配信も可能にする。
【０００４】
多くの人がそのようなサービスを「クラウド」から入手するという。そのようなアクティビティは、一般に、サーバシステムからコンピューティングサービスを提供すること、およびラップトップコンピュータやスマートフォンなど、多数のクライアントデバイスからそれらのサーバシステムにアクセスすることを伴う。「モノのインターネット」がより普及するにつれて、エンド・ノード・クライアント・デバイスの台数も大幅に増加することになる。しかし、クラウドの手法では、サービスを提供する比較的少数のサーバに到達するために通信が非常に遠くまで伝送されなければならず、サーバは多くのエンドデバイスからの膨大な数の要求に応答するよう求められるので、効率が低すぎるか、または柔軟性を欠くことに、またはその両方に陥りうる。さらに、ローカル情報に基づいてエンドポイントで判断が行われれば、非ローカルの関心対象である結果に関する情報を除いて、クラウドとの通信が不要になりうる。
【発明の概要】
【０００５】
概要
本明細書では、概して、エンドデバイスが任意の適切なアクセス方法、例えば、モバイルネットワーク、ローカルネットワーク、およびセンサネットワークを介して接続されることを可能にする、コンピュータネットワークにおいて分散データ収集および制御を提供するためのシステムおよび技法について説明する。より詳細には、本明細書では、より広いネットワークにおいてセンサ付きエンドノードを介してサブネットワークを確立し、管理することについて論じる。以下でより詳細に説明するように、各エンドノードは、他の近くのノードへの接続のためにそれ自体をパブリッシュすることができ、かつ/またはあるノードに位置するコンテキストオブジェクトが、その利用可能性をパブリッシュしている他のノードに位置するコンテキストオブジェクトをサブスクライブすることができる。また、ノード内の各コンテキストオブジェクトは、それ自体でコンテキスト情報を追跡し、それがパブリッシュ・サブスクライブ関係を有する他のノード内のコンテキストオブジェクトについての対応するコンテキスト情報を受信し、格納してもよい。また、エンドノード内のそうした各コンテキストオブジェクトは、1つまたは複数のセンサからデータを収集してもよく、別のセンサをサブスクライブしている場合、プロンプトなしで、かつ/または他方のエンドノード内のコンテキストオブジェクトからの要求に応答して、他方のセンサにそのデータを渡してもよい。他のノード内のコンテキストオブジェクトからそうしたデータを収集するエンドノード内のコンテキストオブジェクトは、収集されたセンサデータのみならず、それらが情報を受信する相手ノード内の様々なコンテキストオブジェクトに関するコンテキストデータも格納しうる。例えば、データを収集するノード内の各コンテキストオブジェクトは、各コンテキストオブジェクトにセンサデータを送信するその他のノードの各コンテキストオブジェクト上のセンサのタイプ、すなわち、温度センサ、動きセンサ（加速度計など）、磁気センサ、湿度センサ、グルコースセンサ、雑音センサなど、を特徴付ける情報を格納しうる。
【０００６】
ノード上のそうしたコンテキストオブジェクトは、サブネットにおいて各ノード内のエージェントによってアクセスされるエンティティ関係モデルにおける第一級オブジェクトとして確立され、ノード内の各コンテキストオブジェクトがモデルをそれ自体のコンテキストオブジェクトの中心に置き、他のエンティティとの関係が、クラスタ化アルゴリズムによって決定されるように、関連性に応じて重み付けされる。コンテキストオブジェクトによって決定された別のコンテキストオブジェクトについての関連性が閾値を下回る場合、その特定のコンテキストオブジェクトは、もはやその関係を保持せず、他方のコンテキストオブジェクトについてのデータを廃棄しうる。本明細書のネットワーク管理は、センサ付きエンドノードと共に使用できるが、他の方法でも使用することができ、リンク層接続を有するホストにまたがって動作する自己完結型オーバーレイネットワークである。例えば、本明細書に記載されるネットワークは、DNSを必要とせずに独自の到達可能性機構を実装できるので、無線センサネットワーク（WSN）で動作してもよいし、インターネット上でノードを接続してもよい。
【０００７】
他のノードからデータを収集するエンドノードは、次いで、エンドノード同士が相互に構成するネットの外部にあり、そのネットとは別個のより広いネットワークと通信しうる。例えば、エンドノードのうちの1つは、その他のエンドノードとだけでなく、他のシステム、例えば、インターネット上のクラウドサービスに接続するゲートウェイと通信しうる（またはそれ自体がゲートウェイを組み込みうる）。センサ付きネットワークがそれ自体インターネット上のオーバーレイとして実装される場合、オーバーレイの外部のエンティティに到達できるようにオーバーレイ内の通信にゲートウェイノードが必要とされうる。このように、通信するエンドノードは、より広いネットワークから情報を求める要求を受信し、そうした要求に応答して、その他のエンドノードから収集したデータ（およびそれ自体のセンサから収集したデータ）を渡すことができる。ノード内の通信インターフェースからの情報は、ノードが情報をいつ交換すべきか判断することをセンサが可能にすることとして扱うことができる。これにより、一部のノード間の通信パスが一時的に利用できないときにノードが協調し、離れた位置にあるノードに到達するために遅延耐性ネットワーキング適用することが可能になる。これを、宛先の名前を要求するだけで達成することができる。
【０００８】
ネットワークからの要求は、求められるデータの種類のためのコンテキスト情報を含んでいてよく、通信するエンドノードは、要求に応答するために、そのノードネット内のその他のノードの各々に関して格納しているコンテキストデータを使用しうる。例えば、要求は、温度センサなどの特定のタイプのセンサからの情報を求める場合がある。また要求は、ある特定のジオフェンスエリア内の温度センサからのデータのみを求めるなど、複数のパラメータを有する場合もある。通信するエンドノードは、その他のエンドノードからのコンテキストデータおよびセンサデータを配置した表を探索し、必要な場合には追加データを求める要求を行い、そのサブネット内のその他のエンドノードについて格納したデータまたは後で（より広いネットワーク上で要求を受信した後に）その他のエンドノードから取得するデータを集約し、そのデータをゲートウェイを介して要求側に返すことができる。
【０００９】
またエンドノードは、共通の目標に向かって、それらのノードまたはそれらのサブネット内の他のノードが収集するデータの分析を行うようにもプログラムされうる。例えば、病院から帰宅した医療患者が、ある一定のスケジュールに従って投薬を受けるよう指示される場合がある。患者は、協調してサブネットを形成し、収集した情報を共有しうる、センサ付きピルボックスとカメラ（患者によって着用されるか患者の住居に取り付けられる）を提供されうる。各々が、収集したデータの分析を行ってよく、一方または両方が、サブネット内の複数のセンサが収集した情報の分析を行ってもよい。例えば、カメラは、場面内で特定の動きが発生した時刻を判定し、それが人間の動きを示すことも特定しうる。カメラは、サブネット内のその他のノードに、（カメラが渡すデータが収集するデータよりずっと小さくなるように独自の画像解析を行い次第）人間の観察および観察の時刻を示す情報を渡しうる。ピルボックスノードは、カメラノードからそうしたデータを受信しうる。ピルボックスノードは、ピルボックスの一部が開いているか、およびピルボックスがいつ開けられたかを判断するためのセンサを有しうる。ピルボックスノードはさらに、投薬がいつ受けられるべきかについてのデータを格納し、投薬が適切な時刻にアクセスされたかどうかを判断するために、それ自体の時間データと、カメラから受信したデータとを分析するようにプログラムされうる。ピルボックスノードは、（特定のエンドノードまたはサブネットからの情報の転送が、システムをプログラムする人による定義されたイベントの発生を条件として行われうるように）投薬が受けられなかった場合にのみサブネットの外部に報告し、また、正データを周期的に（例えば週1回）報告しうる。インテリジェンスのサブネットへのそのような分配により、通常はより一般的なネットワークを介して送信されなければならないはずのシグナリングを大幅に減らすことができる。
【００１０】
一実施態様では、ネットワーク管理のためのコンピュータ実装方法が開示される。本方法は、第1のセンサ付き無線送受信機から、他のセンサ付き無線送受信機からのデータの受け入れが可能であることをブロードキャストする工程、1つまたは複数の他のセンサ付き無線送受信機から、第1のセンサ付き無線送受信機にセンサデータを提供するためにサブスクライブするよう求める要求を受信する工程、続いて1つまたは複数の他のセンサ付き無線送受信機からセンサ値を示すデータを受信する工程、センサ値を示すデータを集約する工程、および集約されたデータを、インターネットを介して中央サービスに送信する工程、を含む。データは、第1のセンサ付き無線送受信機が、中央サービスからの要求を受信したことに応答して集約することができ、要求は、データが対象とすべき特定のパラメータを識別する。また、第1のセンサ付き無線送受信機は、要求に応答するセンサ読取値を特定するために、センサ・タイプ・フィールドを有する内部データベースに問い合わせしうる。さらに、センサ・タイプ・フィールドは、第1のセンサ付き無線送受信機上でハッシュ化されうる。
【００１１】
特定の局面において、第1のセンサ付き無線送受信機と1つまたは複数の他のセンサ付き無線送受信機とは、下にあるローカル・エリア・ネットワーク上に階層化されたネットワークを介して通信する。また本方法は、第1のセンサ付き無線送受信機で、第1のセンサ付き無線送受信機に対する1つまたは複数の他のセンサ付き無線送受信機の各々の近接度を判断する工程、および判断された送受信機間の近接度に基づいて1つまたは複数の他のセンサ付き無線送受信機の各々からのデータを集約すべきかどうか判断する工程、も含むことができる。さらに、判断された近接度は、要因として、第1のセンサ付き送受信機と1つまたは複数の他のセンサ付き送受信機のうちの特定の送受信機との間の判断された地理的近接度を含む。加えて、第1のセンサ付き無線送受信機と1つまたは複数の他のセンサ付き無線送受信機とは、それらの記憶装置内のノードに位置するコンテキストオブジェクトを、エンティティ関係モデルにおける第一級オブジェクトとして各々表すこともできる。
【００１２】
前述の各コンピュータ実装方法について、本明細書では、実行されると、前述の方法に関して記載される動作を行う命令を格納したコンピュータ可読媒体を含む1つまたは複数のコンピュータ可読デバイスも開示する。
【００１３】
特定の実施態様では、本明細書で論じられるシステムおよび技術は、1つまたは複数の利点を提供しうる。例えば、エンドノード（ユーザエージェントの形でホストデバイスにおいて実装されうるエンティティであり、ホストデバイスは、独立型センサ、センサアレイ、ネットワークゲートウェイなどといった様々な形をとりうる）は、有用なネットワークを協調して確立し、中央サーバシステムを必要とせずに情報を共有しうる（ただし、エンドノードのグループは、これに加えて、サーバシステムと通信することもできる）。そうした分散ネットワークは、通常はあるエリアで動作しうる他のローカルネットワーク（例えば、Wi-Fiネットワーク）のオーバーレイネットワークとして働くことができ、エンドノードが相互に協調して共有し、エンドノードとは別個のエンティティから問い合わせられうる情報を使用して通信をルーティングしうる。特に、要求側サービス（ウェブ・サーバ・システムなど）は、特定の地理的エリア内のすべての温度センサの温度読取値を求める要求を送信しうる。複数の温度センサ・エンド・ノードとやり取りしている（それ自体温度センサを含みうる）通信するエンドノードは、そうした要求を受信し、それが温度データを求める要求であると特定し、そのノードがコンパイルしたすべての温度データを返し、かつ/または要求を受信した結果としてその他の各エンドノードから温度データを取得しうる。通信するエンドノードは、次いで、任意選択で、センサごとの緯度/経度位置、温度読取りの時刻、および各センサが取得しうる、または通信するエンドノードが生成しうる他の追加的なセンサパラメータを含む他の情報と一緒に、複数の他のエンドノードについてのコンパイルデータを要求側に返すことができる。このように、緊密なシステム規模の協調を必要とせずに、多種多様なセンサからのデータにアクセスすることができ、データは、特定のタイプのデータを求める特定の要求に応答して取得されうる。
【００１４】
添付の図面および以下の説明において1つまたは複数の態様の詳細を示す。他の特徴および利点は、以下の説明および添付の図面ならびに特許請求の範囲を読めば明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】分散ネットワーク化センサシステムの概念図である。
【図２】ネットワーク化センサシステムのための特定のエンドノードの概略図である。
【図３】ネットワーク化センサシステムにおいてエンドノードを管理するためのプロセスの流れ図である。
【図４】本明細書に記載される技法を実行するために単独で、または複数で使用できる例示的コンピュータシステムを示す図である。
【００１６】
様々な図面において同様の参照符号は同様の要素を示す。
【発明を実施するための形態】
【００１７】
詳細な説明
本明細書では、概して、エンドノードの形の分散エンティティのネットワークを柔軟に分散して確立し、管理するための技法について説明する。特定の実施態様では、エンドノードは、典型的には特定のエンド・ノード・デバイスの直ぐ近傍に、温度センサや湿度センサや光センサなど、様々なパラメータの感知データを取得するためのセンサを含む物理デバイスの一部とすることができる。以下で説明するように、様々なセンサを含むエンドノードは、センサからのデータが特定のエンドノードによって収集されうるように自己組織化し、相互にコンテキスト情報を共有することができ、その特定のエンドノードは、例えば、インターネット上で要求を出すクラウド内のサーバシステムからそうしたデータが要求されたときにデータを報告することができる。そのような組織化は、特定のノードがそれ自体を他のノードがサブスクライブすることができるノードとして提供することによって行われうる。サブスクライブするノードは、そうしたサブスクリプションの後、それらがサブスクライブしている収集ノードにそのセンサ読取りデータを渡すことができる。収集ノードは、そのデータを自らのセンサからのデータと併せてパッケージ化し、そうした結合されたデータの分析を行い、かつ/または結合されたデータを、それを要求しうる中央サービスにサブミットしうる。
【００１８】
図1は、分散ネットワーク化センサシステム100の概念図である。一般に、システム100は、例えば、やはりセンサを有する特定のマスタ・エンド・ノードと通信する複数のセンサ付きエンドノードの各々による、相互に通信する無線センサ/送受信機エンドノードのサブネットの形成を提供するが、加えて、その他のエンドノードからのデータを収集、格納し、また、そうしたデータへのアクセスを得ることを求める適切にフォーマットされた要求に応答し、よってゲートウェイノードとして働くことができる。特定の実施態様では、センサ付きネットワーク内のすべてのノードが、他のすべてのノードによって収集されたデータを収集、格納してもよく、単一のノードが他のノードからの情報を格納し、それら他のノードは単に独自の情報を収集して、それをその単一のノードに伝えるだけであってもよく、または、すべてのノードではないが複数のノードが、それらのノード自体およびその他のノードのうちの様々なノードによって収集された情報を収集し、格納してもよい（例えば、100ノードのオーバーレイネットワーク内の3つの異なるノードが、他のすべてのノードによって収集されたデータを受信し、格納することができ、それら3つのノード各々が100ノードのすべてのノードからのデータを各々格納する場合には3重の冗長性を提供しうる。
【００１９】
本明細書のネットワークは、通常はローカルエリアで動作するはずのWi-Fiネットワーク上のオーバーレイネットワークなど、別の、下にあるネットワーク上のオーバーレイネットワークとして実装されうる。図には、他のノード（102Aや102Bなど）からの情報を格納するノード102Cだけが示されているが、典型的な実施態様では、ノード102Cは単に、ネットワークを開始したブートストラップノードであり、その他のノードがその利用可能性をパブリッシュし、次いでネットワーク内のその他のノードをサブスクライブした後で、センサ付きネットワーク内のすべてのノードが、ブートストラップノードと同じ機能を提供してもよい。具体的には、サブネット内の各ノードが、他のすべてのノードから、この例ではノード102Cが格納しているものとして示されているのと同じデータを取得しうる。よって、すべてのノードが、相互の存在の分散されたインデックスの独自のコピー、および相互のノードのコンテキスト情報を含む、相互からのデータを各々が維持しているという点で等しくなるはずである。センサ付きネットワークがオーバーレイされているネットワークとの通信を実現するためのゲートウェイは、その場合、センサ付きノードのうちの1つによって、またはローカル・インターネット・ルータ（例えば、ホームWi-Fiアクセスポイント）などの別個のデバイスによって実現されうる。例えば、ルータ製造者は、既存の製品ラインを、本明細書に記載されるようなオーバーレイネットワークを管理する機能を追加するファームウェアや他のアップグレードで拡張しうる。
【００２０】
図示の例の概念的中心にあるのは、各々がオーバーレイネットワークのための別個のユーザエージェントを実装しうるエンドノード102Aおよび102Bと無線通信しているエンドノード102Cである。3つのノード102A〜Cは（もっと多くのノードがネットワークを構成しうるが）無線リンクを介して接続されたオーバーレイネットワークを共に構成しており、各ノードは、ユーザエージェント機能とセンサデータ収集および管理機能（例えば、それ自体と他のノードとのためのコンテキスト情報のローカル記憶、DHT（distributed hash table（分散ハッシュテーブル））の維持、および他のそうした機能）とを実行するディスクリートデバイスにおいて実装される。各デバイスの他の機能は、ノードの接続性（例えば、Wi-Fi、ZigBee、他のプロトコル）の生成に関与することができ、それぞれのノードごとのユーザエージェントは、そうした接続の上に載っていてよい（デバイスとの複数のタイプの接続が利用できる場合、ユーザエージェントは、オーバーレイネットワークを形成する際にそれらの接続の中から選択しうる）。
【００２１】
ノード102Cは、以下でより詳細に説明するように、サブネット内のその他のノード102A〜Bからデータを収集するタスクを割り当てられている。ノード102Cはこの役割を、そうしたピアツーピア・オーバーレイ・ネットワークを確立する際の、第1のノード、すなわちブートストラップノードであった結果として割り当てられていてもよい。ノード102Cは、ネットワークを維持する役割を有し、ネットワーク内のコンテキスト情報に命名するためにユニバーサルコンテキスト識別子（URIと同様にUCISと呼ばれうる）を使用する。UCIの形式は、「uci://hello:world＠example.com/programming？language＝java」であってよい。ノードは、そうしたUCIごとのソースアドレスを追跡するためのコンテンツ記憶を形成する、本明細書で呼ぶところのDCXPネットワークを形成しうる。追跡では、分散ハッシュテーブルを使用して、ルックアップを行う効率的な方法を提供しうる。新しいノードがネットワークに接続すると、（エンドノードと同じデバイス上または別のデバイス上で動作しうる）コンテキストサーバが、その新しいエンドノードのUCIを登録しうる。結果として、別のノードと通信したいノードは、コンテキストサーバが（DNSサーバの動作と同様に）その通信を形成するのに必要な関連付けられたアドレスを返すことができるので、相手ノードのUCIを知ることによって通信できることになる。
【００２２】
コンテキスト情報は、ノード間で交換され、エンドノードのうちの特定のノードを実装するデバイスによって動作するプログラムのフローに影響を及ぼすのに使用することができる。コンテキスト情報は、例えば、ネットワーク内の2つのノードの相対物理位置またはノードからの感知パラメータの相対値を示す情報を含むことができる（例えば、屋外センサアレイ内のあるノードが温度の変化を示し、続いて第1のノードの東の別のノードが、次いで第2のノードの東の別のノードが温度の変化を示す場合、プログラムフローは、東へ向かって移動する温暖前線の存在を示すように変化しうる）。
【００２３】
3つのノード102A〜Cの各々が相互に同一であってもよく、ノード102Cがその他のノードからの情報の受信側として単に選択されていてもよく、エンドノード102Cがノード102Aおよび102Bより大きい能力を有していてもよく、サブネット内の複数のノードがノード102Cについて本明細書に記載されるような能力を有していてもよい。一般に、ノード102A〜Cは、関連するネットワークにおいて通信リンクを確立する能力を有する任意の適切なデバイスにおいてホストすることができる（例えば、スマートフォン、センサ/アクチュエータデバイス、ゲートウェイまたはサーバ、アドレス指定および到達可能性はオーバーレイネットワークにおいて自己完結しているため）。
【００２４】
この例では、各ノード102A〜Cを保持するデバイスは、1つまたは複数のセンサ104A〜Cを含む。各センサ104A〜Cは、感知パラメータを、特定のノード102A〜Cとは別個のエンティティが伝達され、解釈することができる標準化されたデジタル値に変換する適切な電子回路を伴いうる。各ノード102A〜Cのデバイスは、例えば、マイクロコントローラ（または他の形のマイクロプロセッサ）と、センサから様々な電圧の形で入力を受け取り、入力を特定のときに1つまたは複数の2進値に変換し、時間の経過と共に複数の異なる時点で取られたそうした値を（例えば、揮発性または不揮発性メモリに）格納するメモリとを含みうる。
【００２５】
各エンドノード102A〜Cは、その内部にデータを格納できる様々なフィールドを示している。測定されている特定のパラメータをアドレス指定するために他のまたは追加のフィールドも適宜使用されうる。この例では、各ノードは名前を有し、便宜上ここでは3桁の数字で表されているが、典型的な実施態様では、製造時に特定のノードに提供される一意のIDなどの2進表現として表される。また各ノードは、静的な、またはサブネット内で使用するために動的に割り当てられうるIPアドレスも有する。また各ノード102A〜Cは、それがホストする1つまたは複数のセンサのタイプを識別するラベルも有する。この例では、ノード102A〜Bは温度センサのみであり、ノード102Cは温度と湿度の両方を感知する。次に、各エンドノード102A〜Cは、その感知パラメータ、この場合ノード102Aでは72度、ノード102Bでは60度、ノード102Cでは67度の値を格納する。特定の態様では、各ノードは、各ノードが10分ごとに新しい値を取り込み、24時間の値など複数の値を保存するようにプログラムされている場合など、常に複数の値を格納していてよい。取り込まれるべき値の特定の数は、そうしたシステム100のユーザによって求められると予期される特定の粒度に加えて、無線送信の頻度についてのメモリのコストと電池負荷のコストとの関数でありうる。例えば、屋外の気温のようにゆっくり変化する値は、より迅速に、または頻繁に変化する値ほど多く取り込まれ、保存されなくてもよい。図示されていないが、各値は、その値が取り込まれた時刻（例えば、GMT）でタイムスタンプされてもよい。最後に、各ノードはそれに対応するマスタノード、ここではノード102C、の値を格納し、その表現はマスタノードの一意の名前および/またはマスタノードのIPアドレスであってもよい。
【００２６】
ここに示されるフィールド以外のフィールドもエンドノード102A〜Cごとに格納されうる。例えば、各ノードは、それがどこに位置しているかを示す緯度および経度（緯度/経度）情報を格納していてよく、そうしたデータは、感知された値と一緒に要求側ノードに返されうる。位置情報は、エンドノード内のユニットによって感知されてもよく、ユーザによって手動で入力されてもよく、例えば、エンドノードをセットアップするときにタブレットまたはラップトップコンピュータを用い、そうしたタブレットまたはラップトップからエンドノードに位置情報を伝えるユーザによって別のコンピュータから取得されてもよい。またノードは、温度センサによる、温度センサが屋内に位置しているか、それとも屋外に位置しているかを示す情報や、動きセンサによる、動きセンサが建物内に固定されているか、それとも移動する物に取り付けられているかを示す情報や、他のそうしたコンテキストデータなど、それらが報告するパラメータ値を分析するのを支援する情報も格納していてよい。
【００２７】
ノード102A〜Cは、多種多様な形のセンサおよび/またはアクチュエータを備えたデバイスにおいて実装されうる。例えば、位置センサが、デバイスの特定の構成要素が移動されたかどうかを判断する（例えば、家屋のドアまたはピルボックスのふたが開閉されたか、それがいつ発生したかを判断する）のに用いられてもよく、温度センサまたは温度センサ群が、特定の地形（屋内かそれとも屋外か）における現在の温度を測定してもよい。同様に、光センサ、湿度センサ、空気流速度センサ、および任意の他の適切な形のセンサも、特定のデバイスから送信される前と後とに処理することができるデータの収集を行うために、デバイス内のユーザエージェントと結合されうる。測定されたデータは、SensorMLなどの特定の合意された規格に従って表現され、伝達されうる。
【００２８】
あるエンドノードの他のエンドノードに対する関連性は、例えば、どの他のエンドノードが第1のセンサが直接通信するサブネットの部分を構成するかを第1のセンサが判断することができるように、クラスタ化分析を使用して判断されうる。そうした判断は、特定のエンドノードと1つまたは複数の他のエンドノードの各々との関係近接度を判断した結果として生成されうる。近接度を判断するのに使用できる複数のパラメータには、エンドノードの物理的（または地理的）近接度、エンドノードがセンサにつながれているときに感知されるパラメータの類似性、エンドノードが共通のオペレータ（例えば、エンドノードを配置した会社や人）に登録されているかどうか、各エンドノードがデータを報告する頻度、エンドノードが共通の組織によって製造されたかどうか（例えば、Intel製エンドノードは、他のCisco製エンドノードよりもIntel製エンドノードと結合する可能性がより高いが、どちらとも結合できる技術的能力を有するため）、およびその他のパラメータが含まれる。クラスタ化の判断は、各エンドノードにおいて、それがオーバーレイネットワークを介して通信することになる他のエンドノードに対して行われうる。
【００２９】
異なるノードについての複数次元にわたる近接度の判断は、マンハッタン距離やユークリッド距離などのn次元の距離メトリックを使用することにより、2次元の手法の拡張として実現されうる。その際に、（センサ付きエンドノードによってモニタされるパラメータと、温度、湿度、光レベルなど、そうしたパラメータごとの許容される値とを特定しうる）アプリケーション空間が最初にドメイン状況またはイベントに分割されてよく、各状況空間を単純化して、領域または属性の集合体を含むn次元の超空間にすることができる。各空間は、コンテキスト空間内の時刻Tにおける単一値属性の集合体である、コンテキスト状態の集合体によってさらに占有される。2つのノード間の関係コンテキスト近接度は、2つのノード間のユークリッド距離である。この例では、エンドノード102Cは、温度と湿度の両方を感知するので、50％の値の、追加のセンサ値フィールドを含む。特定の実施態様では、ノードがそのパラメータの各々を周期的に、ほぼ同時に感知するようにプログラムされうるので、共通のタイムスタンプが、感知される2つのパラメータのそうした各エントリと関連付けられうる。また、ノード102Cは、ノード102Cがそのデータを報告する別個のエンドノードを持たないので、マスタノードにヌル値を有する。
【００３０】
この例では、ノード102Cは、ノード102Cがその他のエンドノード（エンドノード102A〜Bと、エンドノード102Cにデータを提供することに同意している追加のエンドノードを含みうる）から受信するデータを格納しうるテーブル106を含む。このテーブルは、様々な形を取ることができ（一般には小型の関係データベースであってよく）、例えば、ノードごとの一意の識別子または名前を、そうした各ノードにローカルに格納された情報の全部または一部と一緒に含みうる。特定の実施態様では、テーブル106内のデータは、1つまたは複数のフィールドにおいて、そうしたデータの探索および回復をより効率的にするためにハッシュ化され、またはそれ以外に符号化されうる。例えば、可変長の値は、それらが単一の長さを有するストリングにハッシュ化されれば、より効率的に照合することができる。その場合、そうしたハッシュ化されたエントリの元の値は、値をそれらのハッシュ化値にマップすることによって回復されうる。
【００３１】
またエンドノード102Cは、サブネットの外部からの通信を受信し、そうした通信に応答するのに使用しうるゲートウェイ108とも無線通信する。ゲートウェイ108は、様々な周知の形を取ることができ、家庭または会社にある様々な物がインターネットと通信することを可能にする家庭または会社へのインターネットルータとして機能しうる。ゲートウェイ108は、IEEE 802.11の各バージョン、Zigbee他を含む様々な無線通信プロトコルをサポートしうる。オーバーレイネットワーク内の任意の他の適切なノードも、オーバーレイネットワークの外部のリソースへのアクセスを同様に提供しうる。特に、オーバーレイネットワークは下にあるネットワークによって作成された接続を使用するので、その下にあるネットワークも同様に、特定のオーバーレイネットワークの外部からオーバーレイネットワークにデータを取り込み、オーバーレイネットワークからデータを取り出すのに使用されうる。例えば、エンドノードを保持する各デバイスは、特定の状況では、特定のオーバーレイネットワークの残りのエンドノードをホストするデバイスとは別個のシステムと通信しうる。オーバーレイネットワークを有する抽象化層は、オーバーレイネットワークをホストする下にあるネットワークから相対的に独立して、オーバーレイネットワーク内の任意のノードが任意の他のノードをローカルであるとみなすことを可能にする。
【００３２】
ネットワーク110は、ローカル・エリア・ネットワーク、インターネット、およびインターネットを介してノード102Cと通信しうる様々なサービスを含みうる。例えば、国立気象局は、全国からデジタル温度読取値を得るホストサービスを確立しうる。よって国立気象局は、サブネット内に屋外温度センサを有するエンドノード102Cなどのエンドノードを識別しうる。次いで、エンドノード102Cおよび他のそうした報告側エンドノードから温度読取値を周期的に収集することができ、そうした読取値は、サービスと直接通信しない他のエンドノードからのデータを含みうる。
【００３３】
動作に際して、システム100は、ユーザがセンサ102Aを、例えば、ユーザ宅の居間にあるディスプレイに報告するユーザの自宅のための温度センサとして設置することから開始しうる。そのサブシステムは、センサから基地局へと、基地局から当該ネットワークへのエンドノードとしての任意の近くのネットワークへの両方の無線能力を有しうる。温度収集は機密の話題ではないので、ユーザはそうした通信を公開の非保護状態のままとしうる。その後、ユーザまたは隣人はエンドノード102Cを設置することができ、エンドノード102Cはやはり温度センサを有し、この例では湿度センサも有する。その設置シーケンスを経ると、エンドノード102Cは、その無線範囲内の他の互換のエンドノードを求めるメッセージをブロードキャストしうる。エンドノード102Aは、リッスンモードで動作していてよく、エンドノード102Cからリッスンすると、その存在および通信関係に入る、すなわち、エンドノード102Cにデータを提供するためにサブスクライブする用意があることを告知しうる。2つのノードは次いで、IPアドレス、（固定されているとした場合の）エンドノード102Aの位置、エンドノード102A内のセンサのタイプ、エンドノード102Aに関する他のコンテキスト情報などの基本的な静的データを交換しうる。
【００３４】
エンドノードによって交換され、様々なやり方で使用されるコンテキスト情報は制約されず、センサ情報だけに限定されない。より詳細には、コンテキスト情報は、特定のエンドノードを保持する各エンティティの特性、およびそうしたエンティティの現在の状況（そのエンティティが移動しているかどうか、絶対的に、またエンドノードを有する他のエンティティとの関係でどこに位置しているか、など）を示す任意の適切な情報であってよい。コンテキスト情報は、特定のエンドノードについての、状態情報、およびそのエンドノードのエンティティによって行われる動作を含むことができる。最も簡単な形のセンサ付きエンドノードでは、コンテキスト情報は、ある測定可能な値に関しうる。また情報は、他のソースから特定された存在情報や、エンドノードのうちの1つに対応する人の嗜好情報（例えば、ホストされるインターネット音楽ストリーミングサービスでの音楽再生リストなど）など、オーバーレイ・ネットワーク・デバイスの外部からのコンテキストも含みうる。より複雑な例では、コンテキスト情報は、スマートホームシステムにおいて画像解析を行うカメラサブシステムに対応していてよく、このシステムは、人が倒れているかどうかに関する判断を行うために（エンドノードを収容したデバイスにより）人の動きの異常を特定する判断を行うように人間の手足の動きを追跡し、人を（例えば、その家の住人であるかそうでないか）識別し、またはベクトル解析を使用して、その人が食べている、眠っている、運動している、電話で話している、テレビを見ている、あるより複雑な社会的相互作用を続けている（他の人たちのグループとカードゲームをしている、講義を行っている、他の人たちのグループと議論しているなど）と判断するなど、その人の現在の活動のより複雑な判断を行う。カメラデバイスのユーザエージェントは、オーバーレイネットワークを介して、ピルボックスの特定の仕切りが開閉されたかどうか判断するために、動きセンサを備えたインテリジェントピルボックスのユーザエージェントと関係を持つことができる。そうしたユーザエージェントを有するそうしたデバイスの1つは、各ユーザ・エージェント・デバイスから周期的にデータを収集し、そのデータを投薬スケジュールと比較して、投薬がスケジュールに従って受けられたかどうかの指示を生成するようにプログラムすることもできる。その特定の判断エージェントは次いで、情報を中央サービスに報告してよく、その報告は、患者が投薬を定時に受けたことが判明した場合には報告は周期的にのみ行われるが、患者が投薬を受けなかったと判断された場合には（例えば、中央サービスが、電話呼び出しや在宅医療提供者による訪問など、その患者を人的にフォローできるように）その判断が行われ次第即時に報告が行われる、などの条件付きであってよい。
【００３５】
2つのノードは次いで、エンドノード102Aからの感知温度値の周期的通信に入りうる。例えば、ノード102Cが、情報を求めてノード102Aを周期的にポーリングしてもよく、ノード102Aがそれ自体でデータを周期的にサブミットしてもよい。またノード102Aは、n個の温度読取値を収集した後（nは正の整数である）など、メモリキャッシュが一杯になるとデータをサブミットしてもよい。このプロセスの間、ノード102Cは、受信したパラメータ値を格納してよく、またそれらの値のうちの1つまたは複数のコピーのハッシュ化を行ってもよい。またノード102Cは、その間に、エンドノード102Bなど、その無線範囲内の1つまたは複数の他のエンドノードと同様の関係を形成していてもよく、それらのセンサによって生成されたデータを収集していてもよい。
【００３６】
ある時点で、分散された温度読取値を求めるサービスは、ネットワーク110とゲートウェイ108とを介して、エンドノード102Cと通信しうる。そうしたサービスは、様々なやり方でノード102Cを発見しうる。例えば、ノード102Cは、それがセットアップされたときに、エンドノード102Cの製造者またはGoogleやFacebookのような別の信頼できる組織によって維持されるサービスなど、そうした通信するセンサノードのIPアドレスを追跡する中央サービスとの通信を開始していてもよい。一般に、このように追跡されるタイプのセンサは、センサの所有者が公益のために共有することをいとわない非機密の情報を収集するセンサであろう。そのような共有は、情報へのアクセスが提供されたり（例えば、共通ネットワーク内の同じタイプの他のセンサによって配信されるデータにアクセスできる）、データに対して小額が支払われたりするなど、センサの所有者にとっての利益も伴いうる。エンドノード102Cは、そうしたサービスに登録すると、次いで、それが受信するデータを周期的に報告し、かつ/またはそうしたデータをオンデマンドで、すなわち、気象研究者があるタイプの特定のデータを要求した場合などに、提供するようにサービスによって問い合わせされうる。
【００３７】
オーバーレイネットワーク上のエンティティのプライバシは、様々な形の認証、匿名性、およびエンドツーエンドの暗号化を使用して維持されうる。認証については、エンドノードを識別するのに使用されるUCIは、エンドノード名に基づいて生成され、割り当てられる証明書にリンクされていてよく、そられはすべて、ブートストラップノードから始まる、少なくとも1つのノードへの関連を有することによって付与される。匿名性は、任意のエージェント識別情報を取り去るためにデータを集約するプログラミングノードによって実施されうる。同様に、そのデータを報告するノードも、情報を転送するときにそのソースの識別を回避してよく、ノードは、（TOR、電子メールのショームミキサなどにおける匿名化と同様に）その他の関係を明らかにしないことによってデータの出所を突き止めにくくしうる。維持できるデータのタイプと匿名性を維持するために除去されなければならないタイプとは、実施態様によって異なるであろう。一般には、特定のユーザエージェントまたはユーザエージェントのオペレータを、維持されるデータの異なるインスタンスを使用して容易に「測量する」ことができないように十分なデータが取り去られなければならない。オーバーレイネットワークの1つのセキュリティ上の脅威は、虚偽のコンテキスト情報の注入であり、これには、無関係なコンテキスト情報を提供していると特定されるノードへの関連を拒絶する順位付け/クラスタ化機構によって対抗されうる。
【００３８】
そうしたノードを分散オーバーレイネットワークの一部として使用して実行することができる実施態様のタイプは様々である。例えば、ネットワーク内の各ノードがニューロンとして、ノード間の各関係がシナプスとして働くようにプログラムされうる。モノのインターネットが何百万、何十億ものデバイスにまで拡大するに従って、そうしたモデル化により、データの適切な収集および集約と共に、人間の神経系の洗練されたモデルがもたらされ、その処理は広範囲に及ぶが、何百万、何十億ものコンピューティングデバイス（ユーザエージェント）に散在する。
【００３９】
特定のエンドノード102A〜Cはこの場合、自律的挙動を生成するように、各々が以前に取得したグローバル知識に基づいてローカルで判断を行うことができるようになりうる。例えば、車道上の車両間通信を有するシステムでは、自動車内のノードが別の自動車内のノードの近くにはなく、よって、（例えば、発展する道路条件を示すタイヤスリップ読取値から）取得した情報を直接渡すことができない場合がある。情報を有する車両は車両が通過する際に路側ボックスと通信し、別の車両が1マイル遅れてついてきていることを知りうる。最初の車両は、そうした情報を使用して、後続車両がボックスを通過する際に後続車両に情報を転送するために、ボックスにある一定量のデータを渡す判断を行いうる。同様に、ネットワークオーバーレイも、各ノードが、現在データを受け渡すことができない場合に、通常は即時に転送するはずのデータを格納しうるという点で、遅延耐性を有しうる。ノードはその場合、関連する接続が利用可能になったときにデータを送信しうる。
【００４０】
このようにして、システム100は、様々なセンサからのデータの分散収集と一元収集の両方を自己組織化し、提供するオーバーレイネットワークにおいて分散センサシステムを提供することができる。システムは、1人または複数の異なるユーザが、それぞれの所有者の個人的目的のためにセンサを配置することができ、それぞれのセンサに他のセンサと通信させ、それぞれのセンサデータをセンサ自体のネットワークの外部で使用させることもできるという点で、柔軟であり、拡張可能でありうる。
【００４１】
図2は、ネットワーク化センサシステム200のための特定のエンドノード202の概略図である。一般に、ノード202は、図1について上述したノード102Cと同様または同一であってよい。ノードは、一般に、それ自体のセンサからのデータを収集、格納、および報告することができるが、その無線範囲内の他のノードと通信関係を形成し、（例えば、専用のオーバーレイネットワークやサブネットを介して）それらからのデータを収集、格納、報告することもできるという点で多機能でありうる。ノード202の詳細はここでは、例示を容易にするために周知のOSI-ISOスタックに従った一般的配置で示されているが、特定の実施態様では、スタックの異なる層に異なる構成要素が設けられうる。
【００４２】
この例では、エンドノード202は、インターネットなどのネットワークに接続されうる一般の無線ルータなどのゲートウェイ204と通信する。エンドノード202は、ユーザによって最初に配置され、構成されるときにゲートウェイ204との接続を確立しうる。図示されていないが、エンドノード202は、エンドノード202と同一のエンドノードおよびエンドノード202と形が異なるエンドノードを含む、他のエンドノードとの通信も確立しうる。
【００４３】
次にエンドノード202の構成要素をより詳細に参照すると、ネットワーク層206は、PHY206AとIPネットワーキングモジュール206Bとを含む。これらの構成要素は、周知の方法で、IEEE 802.11プロトコルや他の一般のプロトコルなどの一般のプロトコルに従って通信のために無線媒体上への信号の配置を行いうる。
【００４４】
伝播層208は、ネットワーク層206に提供されるべきデータを取得、フォーマットし、ネットワーク層206から受け取ったデータを最初に解釈するように働く。伝播層208は、通信モジュール208Aとルックアップサービス208Bと伝播コア208Cとを含む。通信モジュール208Aは、特定の伝播コアを介してオーバーレイネットワークの一部として新しい通信層を確立して、他の層の変更を必要とせずにルックアップサービスおよび通信技術の異なる選択を可能にする。ルックアップサービス208Bは、求められる情報またはエンティティの位置を決定するようにUCIを解決する機構を提供する。ルックアップサービスは、分散ハッシュテーブル（複数の異なるノードによって格納され、使用されるハッシュテーブル）、分散グラフ、クラウドサーバなど、多種多様なやり方で実装することができる。また伝播コア208Cは、プラットフォーム全体に対して、オーバーレイネットワーク上でピアツーピア方式で情報をパブリッシュし、取得し、転送するためのプリミティブ関数を公開する。これは、ネットワーク層の実装に固有のものであり、ネットワーク層とプラットフォームの上位層との間のギャップを埋める。
【００４５】
システムの様々なプリミティブは、下にあるネットワークとオーバーレイネットワークの使用により、ローカルに持続されるが、グローバルなアドレス指定およびルックアップ方式を介して利用可能なオブジェクトから、プリミティブを使用してモデルを作成する能力を提供する。プリミティブの使用は、システムにUCIを登録することを伴う「解決」、サブミットされたUCIを含むエンドポイントを見つけることを伴う「取得」、および識別されたUCIから現在のデータを取得する「サブスクライブ」という形を取る。
【００４６】
ユーザ入力定義または複雑な多基準近接度関係を受け入れるために問い合わせAPIも提供されうる。APIは、開発者が、問い合わせ比較器を定義し、分散システムのアーキテクチャに導入することを可能にしうる（各問い合わせ比較器には、比較器の集合全体にわたって識別可能であり、持続される一意のIDが割り当てられる）。またAPIは、問い合わせ比較器の更新および削除と、既知の識別子で特定の比較器が存在するかどうか判定する能力も可能にする。さらに、APIは、開発者が、各ノード内の問い合わせエンジンに転送されるべき、即時の実行を求める問い合わせを宣言することも可能にする。またAPIは、システムによって照合され、フィルタリングされた、現在の問い合わせパラメータを満足させる関連コンテキストエンティティのサブセットを返す。
【００４７】
分散マップリデュースが、グローバルデータに基づいてタスクを分割し、各ノードに、このグローバルデータの一部分に対して関数を実行させ、結果を返させる。そうした手法により、おそらくは大規模で複雑なタスクに対処するために、オーバーレイネットワークにおいてノードを実装する様々なデバイスの計算処理能力の結合が可能になる。システムは、スクリプト（単純なコマンドだけではない）をさらに受け入れてもよく、各ノードはそれらの関係を知っているので、スクリプトの実行の全部または一部が、グローバルデータに対して関数を実行する他のノードに分散されうる。その結果、クラウドは、関与するノードの数に依存しなくなりうる。またシステムは、コマンドまたはスクリプトを受け入れ、それを、スクリプトが指定するいくつかの特性に従って選択されるノードにマップすることもでき、このため、コードに、それぞれのローカルデータに対して関数を実行させることができる。例えば、スマートグリッド内のPLCが、それぞれのログファイルにおいていくつかの定義された発生を見つけ、特定された結果を送り返すよう要求されうる。
【００４８】
ブルームフィルタは一般に、要素が集合のメンバであるかどうかテストするのに使用される確率的データ構造であり、各エンドノードに存在する分散ハッシュテーブルとして実装されうる。ブルームフィルタは、エンドノード全体にノードまたは値が存在するかどうか判定し、特定のノードを突き止めるのを支援することができ、これは、本明細書に記載されるオーバーレイネットワークのようなピアツーピアネットワークにとって中心的に有用である。
【００４９】
アドイン層210は、（例えば、分析、遅延耐性ネットワーキング、範囲問い合わせなどの）様々な形の拡張がプラグインされることを可能にする。この層は、開発者がシステムに追加機能および/または最適化アルゴリズムを追加するための機構として現れる。アドインは、システムに、特定の適用要件、求められる体験の質、または計算能力および帯域幅に関する利用可能な容量を満足させるために使用することができる。アドインは一般に、最適化210A（システム全体の挙動および機能の最適化）または拡張210B（アプリケーションが要求しうる機能の追加）である。最適化は、例えば、情報のクラスタ化、キャッシング、持続性、インテリジェントルーティング、あるエンドノードから別のノードにデータを最適に送信すべきときを判断する意思決定を含むことができる。拡張210Bは、例えば、論理コンテキストオブジェクト、セマンティクス、推論、コンテンツ情報の順位付け、探索エンジン、問い合わせ言語、コンテキストエージェントを含むことができる。
【００５０】
ノード202内の通信は、コンテンツ対応アプリケーションが（コンテキスト情報に基づいて）拡張または最適化からのさらなるサポートを利用せずに、情報が交換されさえすればよいと判断する場合など、適切な状況ではアドイン層を迂回しうる。そうした状況は、信頼できる電力、コンピューティング、および通信リソースを備えたスマートホームにおいて生じうる。あるいは、通信に必要な接続がより少なくて済む場合には、その通信は最適化モジュール210Aによって処理され、推論を必要とする場合には、拡張モジュール210Bによって処理される。
【００５１】
インターフェース層212は、様々なセンサとやり取りし、それらのセンサによって生成されたデータを管理するためのコードを提供する。インターフェース層212は、そうした目的に柔軟なアプリケーションインターフェース212Aを使用しうる。インターフェース212Aは、異なるアプリケーションごと、異なるエンドノードタイプごとに変化しうる。特定の実施態様では、インターフェース層は、アプリケーションがスタックと通信するための共通のアプリケーション・プログラミング・インターフェース（API）を提供しうる。またインターフェース層212は、スタック内の他の層に対して上述したプリミティブ演算を公開しうる。さらに、インターフェース層212は、その他の層が、収集したデータを格納させ、同じAPIを介して外部の要求からアクセスさせるために都合よくやり取りするためのデータ記憶APIを提供しうる。またメッセージングAPIは、自発的なデータの送信としてにせよ、データ送信を求める要求としてにせよ、またはそうした要求への応答としてにせよ、他のノードとの関係を確立するための通信、およびノード間の後続のデータの受け渡しのための通信を含む、ノード202の外部のノードとの通信を管理しうる。
【００５２】
一例として、インターフェース212Aは、家庭用気象観測器を実装し、エンドノード202に、温度、湿度、および気圧の読取値を収集させると共に、タブレットやスマートフォンなどの携帯機器上のアプリと通信させて、そうした読取値をアプリによって表示し、操作することができるようにしうる。
【００５３】
エンドノード202上には他のコンテキスト対応アプリケーション214もロードされうる。例えば、あるアプリケーションは、エンドノード202によって収集された気象データの記憶、編成、および送信を管理しうる。そうしたコンテキスト対応アプリケーションは、ユーザのスマートフォン上の気象アプリとやり取りすると共に、以上および以下で述べるような気象サービスなどのリモートの要求者に要求データを提供するようにプログラムすることができる。
【００５４】
別のコンテキスト対応アプリケーションの例として、衣料品店は、Bluetoothその他の送信機がタグ付けされたデジタル標識および衣服と、センサ（例えば、動きセンサや近接センサ）とを装備しうる。顧客のスマートフォンの近接度によって決定される、顧客がどの衣服を選んだかに応じて、いくつかの助言を近くの画面に表示することができる。顧客が同じ場所に再度現れた場合には、顧客が前回そこに居たことが感知された特定のエリアで顧客が保持していた製品に関するデータを特定することによるものを含め、このパターンを強化することができる。
【００５５】
コンテキスト対応アプリケーション214の制御の下で柔軟なアプリケーションインターフェース212Aによってアクセスされるのが、センサ/アクチュエータ層216である。層216は、ノード202上に設けられたあらゆるセンサから入ってくるデータを管理し、ノード202に対するアクチュエータの動作を制御する役割を担いうる。センサ/アクチュエータ抽象化216Aは、そうした層216のためのスタック内のその他の層との、より詳細には、柔軟なアプリケーションインターフェース212Aとの通信を管理しうる。より具体的には、センサ/アクチュエータ抽象化は、情報を生成し、その情報をオーバーレイネットワークを有するシステムに提供する一般化された方法を可能にしうる。しかし、多数の異なるセンサおよびアクチュエータが存在し、それらは多くの異なる技術を使用する。センサ/アクチュエータ抽象化は、システムにアプリケーションが必要とする情報および機能を提供するために、これに対処する。したがって、センサ/アクチュエータ抽象化層は、4つの構成要素、すなわち、実際のセンサおよびアクチュエータと、異なるセンサおよびアクチュエータのネットワークと、センサおよびネットワークのゲートウェイと、抽象化構成要素とに分離される。
【００５６】
センサ/アクチュエータ抽象化216Aは、エンドツーエンド216Bおよび/またはゲートウェイ216Bを介して1つまたは複数の物理センサ/アクチュエータで構成される1つまたは複数のセンサ/アクチュエータネットワーク216Dと通信しうる。エンドツーエンド216Bは、抽象化構成要素を用いて、ゲートウェイがネットワーク内機能を実行することを必要とせずに、相互に直接通信するエンドノードによって享受されるエンドツーエンド通信を表す。ゲートウェイ216Cは、各特定のタイプのセンサおよびアクチュエータとの通信を仲介し、オーバーレイネットワーク全体に統合されようとする新しいセンサまたはアクチュエータネットワークごとに特定の実装を必要とする。ゲートウェイは、基礎をなす技術と無関係に、センサおよびアクチュエータの集合体へのアクセスを提供する。このようにして、センサ/アクチュエータ層は、すべての感知データの集合体を管理し、それらの感知データを、コンテキスト対応アプリケーション214と、エンドノード202の外部のより大きな世界とが使用できる形に変換する。
【００５７】
本明細書に記載される構成要素は、その場合、エンドノード202のために、分散センサネットワークの安価で柔軟な実装を可能にしうる。一般に、低コスト低電力の最適化された構成要素が、ネットワーク層206など、エンドノード202の様々な部分に使用されうる。インターフェース層212やコンテキスト対応アプリケーション214など他の層は、専用であり、エンドノード上のセンサ/アクチュエータ層216を使用して（エンドノード上のセンサ/アクチュエータ層216に制御信号を送信して）収集されるデータの保護管理を対象としうる。以上および以下に記載される技法を使用して、そうしたエンドノード202は、例えば、パブリッシュ/サブスクライブの手法を使用した、他の同様のノードとの通信および報告関係を形成することができ、そのため、様々なセンサによって収集されたデータを、エンドノードの特定のサブネットの外部のサーバによって発見することができ、データが適切に利用されうる。
【００５８】
図3は、ネットワーク化センサシステムにおいてエンドノードを管理するためのプロセスの流れ図である。一般に、プロセスは、特定のエンドノードが、他のノードおよびそれら他のノードからの情報を求める中央の要求者と通信するために取りうる工程を含む。特定のエンドノード（前記各図で説明したノードなど）は、その他のエンドノード内のセンサから生成されたデータを取得、格納、集約し、情報を求める要求を、特定の要求とマッチするノードからの情報を送信するようにフィルタリングしうる。本明細書でいくつかの特定の実施態様において論じられるプロセスは、図1と図2とにそれぞれ示され、記載されているシステム100とシステム200とによって実行されうる。
【００５９】
この例のプロセスはボックス302から開始し、そこで特定のエンドノードがその状況を無線でその周囲のエリアにブロードキャストする。そうしたブロードキャストは、特定のエンドノードが、他のエンドノードのマスタとして、他のノードからセンサデータを受信し、そうしたセンサデータを報告するように働く用意があることを示しうる。そのために、特定のエンドノードは、その他のエンドノードより能力の高いエンドノードであってもよく（そうしたデータのための記憶と、そうしたデータを求める要求に応答する能力を有していてもよく）、その他のエンドノードと同じ能力を有するが、（例えば、分散合意や他の合意アルゴリズムによって）マスタとなるように選択されたノードであってもよく、その他のエンドノードからオーバーラップしてデータを収集する複数の異なるノードのうちの1つであってもよい（例えば、特定のエンドノードは、他のエンドノードからデータを収集すると共に、収集したデータを、他のエンドノードがデータを格納し、受信した要求に応答して提供するために他のエンドノードに供給しうる）。
【００６０】
ボックス304で、状況のブロードキャストに応答して、特定のエンドノードは、状況のブロードキャストを受信した別のエンドノードからサブスクリプション要求を受信する。そうした要求は、他方のエンドノードが特定のエンドノードにデータを提供したいという要求を示しうる。2つのノードは、例えば、各々がその特定の能力を示し、情報を交換するために今後どんな特定のプロトコルを使用すべきかについて合意するためのハンドシェークプロセスを実行するようにプログラムされうる。そうした折衝は、相手ノードがデータを報告するかまたは特定のノードがデータを要求する頻度、報告されるべきデータフィールド（例えば、異なるバージョンのノードが、時間の経過と共に、より多いまたはより少ないデータフィールド、データタイプなどを受け入れるようになりうる場合）、および他のパラメータに関する情報を含みうる。そうしたハンドシェークは一般に、今後の通信の品質および効率を最大化するようにそれぞれのエンドノードが今後従うことができる合意を確立しうる。
【００６１】
ボックス306で、特定のエンドノードは他方のエンドノードにコンテキストデータを求める要求を送信する。そうした要求は、ハンドシェークプロセスの一部として、またはハンドシェークプロセス後に行われうる。要求は、相手ノードに、相手ノードに関して特定のノードに伝えさせるように構成されうる。そうした情報は、相手エンドノード上の1つまたは複数のセンサのタイプ、相手エンドノードの緯度/経度情報、相手エンドノードが屋内かそれとも屋外か、それとも移動中の車両内か、および相手エンドノードのセンサによって取得されている読取値の理解に関連した他の情報を含みうる。
【００６２】
ボックス308で、特定のノードは、コンテキストデータを受信し、格納する。また特定のエンドノードは、他のノードからデータを収集する用意があるノードとしてのその状況のブロードキャストに応答した他のエンドノードからの対応するデータも受信している可能性がある。よって、データは、テーブルや他の形の探索可能なデータベースなどの1つまたは複数の多次元構造に格納されうる。いくつかの実施態様では、データは、格納される前に、特定のエンドノードまたはその他のエンドノードによって、ハッシュ化されうる。そうしたハッシュ化により、相互に長さが異なる初期値に対しても長さの等しいストリングがハッシュ化によって作成される場合や、最適化マッチングアルゴリズムが使用されうる場合など、特定のコンテキストデータを使用して要求が出されたときに、その特定のエンドノードがマッチを生成することがより容易になりうる。
【００６３】
ボックス310で、特定のエンドノードは、センサ読取値データを提供するためにサブスクライブしているその他のエンドノードの各々からセンサ読取値を収集し、格納する。そうしたデータの収集は、特定のエンドノードがそうしたデータを求めるそのネットの外部からの要求を受信する前または後に行われうる。また収集は、プッシュ（ノード同士がそのデータを周期的に、または感知された値の実質的な変化を特定したときに送信し、例えば、温度が2度を超えて変化したと特定されたときに更新を送信する）、またはプル（特定のエンドノードが、センサデータを含む応答を要求するようにその他のエンドノードをポーリングする）であってもよい。また収集は、その他のエンドノードのうちの特定のノードからのデータの一部または全部のものであってもよい。例えば、ある特定の他のエンドノードがボックス306およびボックス308で特定のエンドノードに登録したときに、そのノードは、たとえそれが湿度データや動きデータなどより多くのデータを取り込むとしても、温度データをサブミットする用意があることを示していたとする。例えば、おそらくは、そうしたセンサのオペレータは、温度データにはあまり価値がないとみなし、よって温度データをあまり独占しなくてもよいものとして扱い、そのためそのオペレータは、その特定の他のエンドノードを、温度データを共有するものとしてのみ告知するように構成する。そうしたエンドノードは、そのエンドノードをその特定の他のエンドノードと同じオペレータによって運営されるノードであるものとして識別する情報などの、信用情報を有する異なるデータ収集エンドノードと追加データを共有しうる。よって、各エンドノードは、特定の実施態様では、要求側ノードが「誰」に属するかに基づくことを含めて、様々な要因に応じて、要求側ノードに関してそのデータに対する異なるレベルの透過性を提供しうる。
【００６４】
ボックス312で、特定のエンドノードは、そのサブネット（サブネットは、特定のエンドノードに報告するエンドノードのグループである）の外部から、そのサブネット内でのデータ収集を求める要求を受信する。そうした要求は様々な形で到来しうる。例えば、クラウドサービスが、特定のタイプのいくつかのエンドノードと通信するように構成され、本明細書で論じられる特定のエンドノードのようなそうしたエンドノードは、そうしたサービスに登録しうるとする。例えば、サービスは、エンドノードの製造者によって、またはFacebookやGoogleなどの信頼できる組織によって運営されうる。そうした登録は、特定のエンドノードのアドレスを、特定のエンドノードの地理的位置や特定のエンドノードが報告するデータ（例えば、温度値）の価値の種類に関する情報などのコンテキスト情報と共にそうしたサービスにサブミットしたことを伴いうる。中央サービスは次いで、特定のエンドノードおよび他の登録されたエンドノードに周期的に要求を出してもよく、定義されたイベントに応答して要求を出してもよい。例えば、信頼できるサービスは気候研究者に提供され、そうした研究者がサービスに問い合わせを行うことを可能にしうる。そうした問い合わせは、特定の1つまたは複数のエリアの温度データ履歴を要求しうる。研究者が現在の温度データを要求すると、信頼できるサービスは、研究者によって特定された地理的エリア内のすべての登録エンドノードに要求を送出しうる。
【００６５】
ボックス314で、特定のエンドノードは、（利用可能な場合）その他のエンドノードからとそれ自体からのセンサ読取値のデータを収集し、サブミットする。例えば、信頼できるサービスを形成する温度データに関する要求を受信すると、特定のエンドノードは、温度に関連したエントリを求めてそのハッシュテーブルを探索しうる。また特定のエンドノードは、（研究者の要求がそうした制限を課した場合、および特定のエンドノードがそのデータベースにセンサごとに複数の異なる時刻のデータを格納する場合）特定の地理的エリア内や特定の時間範囲内の温度読取値だけを探索することによるなど、他のフィルタも適用しうる。加えて、または代替として、特定のエンドノードは、それがサブスクライブする他のエンドノード（または信頼できるサービスからの要求に応答するエンドノード）の各々に、それらが格納した、かつ/または瞬時の温度読取値を収集するように要求を送信してもよい。特定のエンドノードは次いで、その他のエンドノードからのデータを集約、パッケージ化し、それを要求側の信頼できるサービスに送り返してよい。
【００６６】
このようにして、前述のプロセスは、様々な人々および組織が独自の目的でセンサを配置すると共に、それらのセンサの全部または一部を、他者による、すなわち、広く一般による、またはある特定の資格および信用を有する他者による問い合わせに供するための機構を提供しうる。
【実施例】
【００６７】
次に、特定のシステムがどのように使用されうるかをよりよく説明するために、本明細書に記載されるシステムおよび技法のいくつかの例示的な可能な実施態様を示す。
【００６８】
第1の例では、在宅医療システムが、中央サービスと通信することのできる自律型ホーム・センサ・ネットワークを使用して実施されうる。特に、患者はタブレットまたはスマートフォンをすでに所有していてよく、無料または有料で、オンラインのアプリケーションマーケットプレイスから在宅医療アプリケーションを取得しうる。患者は次いで、小売店やウェブサイトから、または医療提供者や保険会社から、いくつかのセンサ付きエンドノードを取得しうる。そうしたセンサには、ウェブカメラ、電子ピルボックスの形の投薬トラッカ、血圧測定用カフ、グルコースセンサ、血液分析装置、電子聴診器、体温計、動きセンサ付きフィットネス・トラッキング・バンド（FitBitなど）、ならびに患者のバイタルサイン、活動、および他の要因を追跡するための他のセンサが含まれうる。患者または患者の代理人は、そうした各センサを都合よく作動させることができ、各々、メイン・センサ・システム（例えば、卓上血圧測定用カフ、パルスオキシメータなど）と通信しうる。各センサは次いで、時間の経過と共に受信される患者データを格納しうるメイン・センサ・システムにデータを周期的に送信しうる。メイン・センサ・システムは、例えば、患者の健康状態の潜在的な変化を突き止めて、介護者が患者をフォローアップするための警報をトリガするように、そのデータを、患者の介護者がアクセスでき、取り込みデータの自動化された分析を行うことができるクラウドサービスに周期的に送信しうる。
【００６９】
第2の例として、分散センサネットワークは、原料を配送するトラック運転者や可能な限り効率的に仕事または会議に着手しようとする個人など、様々なユーザによる輸送関連の動作を改善するために使用されうる。そうしたネットワークは、例えば、将来の移動条件を予測するのに使用できる天候および温度条件を感知するために、一群の環境センサを含むことができる。またネットワークは、大量輸送車両のスケジュールを示し、特定のエリアにおける車道速度を示すためにそうした車両に搭載された動きセンサも含むことができる。またネットワークは、個々のユーザや個々のユーザの車両に取り付けられたセンサも含みうる。
【００７０】
そうした手法は、単に、同じ経路上の他の運転者の活動に基づいて特定の運転者の経路を予測するだけではない。むしろ、そうした手法は、他のオプションによって提供されるいくつかの交通モードの利用可能性など、運転者がAからBに到達することを可能にしうる他のオプションを考慮しうる。例えば、システムは、人が所与の時間枠内にAからBまで移動するための最善の選択肢を予測するために、すべてのユーザ（運転者など）およびリソース（車両、自転車、フェリー、公共交通機関など）に関する情報を集約、共有し、カーシェアリング、レンタル自転車、Uber、公共交通機関などといった人の移動を編成するのに使用されるある範囲の要因を考慮し、（気象条件のために）歩いたり、屋外に出たりする用意があるか否かなどの要因および個人的嗜好を考慮に入れて、環境の全体的なコストを最小化するために使用することができる。
【００７１】
同様に、例えば、大規模な地理的エリアにわたる判断を、分散されたエンドノードからのパワーを使用して行うことによって、収集されたデータに対して分散型の分析を行うこともできる。
【００７２】
図4は、コンピュータシステム400の概略図である。システム400は、一実施態様による、前述のコンピュータ実装方法のいずれかと関連付けて説明した動作を実行するのに使用することができる。システム400は、ラップトップ、デスクトップ、ワークステーション、パーソナル・デジタル・アシスタント、サーバ、ブレードサーバ、メインフレーム、他の適切なコンピュータといった様々な形のデジタルコンピュータを含むことが意図されている。またシステム400は、パーソナル・デジタル・アシスタント、携帯電話、スマートフォン、他の同様のコンピューティングデバイスといったモバイル機器も含むことができる。加えて、本システムは、ユニバーサル・シリアル・バス（USB）・フラッシュ・ドライブといった携帯型記憶媒体も含むことができる。例えば、USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを格納することができる。USBフラッシュドライブは、別のコンピューティングデバイスのUSBポートに挿入されうる無線送信機やUSBコネクタといった入力/出力構成要素を含むことができる。
【００７３】
システム400は、プロセッサ410と、メモリ420と、記憶装置430と、入力/出力装置440とを含む。各構成要素410、420、430、440は、システムバス450を使用して相互接続されている。プロセッサ410は、システム400内で実行するための命令を処理することができる。プロセッサは、多数のアーキテクチャのいずれかを使用して設計されていてよい。例えば、プロセッサ410は、CISC（複合命令セットコンピュータ）プロセッサや、RISC（縮小命令セットコンピュータ）プロセッサや、MISC（最小命令セットコンピュータ）プロセッサであってもよい。
【００７４】
一実施態様では、プロセッサ410はシングルスレッドプロセッサである。別の実施態様では、プロセッサ410はマルチスレッドプロセッサである。プロセッサ410は、入力/出力装置440上のユーザインターフェースにグラフィカル情報を表示するように、メモリ420または記憶装置430に格納された命令を処理することができる。
【００７５】
メモリ420は、システム400内の情報を格納する。一実施態様では、メモリ420はコンピュータ可読媒体である。一実施態様では、メモリ420は揮発性メモリユニットである。別の実施態様では、メモリ420は、不揮発性メモリユニットである。
【００７６】
記憶装置430は、システム400に大容量記憶を提供することができる。一実施態様では、記憶装置430はコンピュータ可読媒体である。多種多様な実施態様において、記憶装置430は、フロッピーディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置であってよい。
【００７７】
入力/出力装置440は、システム400に入力/出力動作を提供する。一実施態様では、入力/出力装置440は、キーボードおよび/またはポインティングデバイスを含む。別の実施態様では、入力/出力装置440は、グラフィカル・ユーザ・インターフェースを表示するための表示ユニットを含む。
【００７８】
前述の特徴は、デジタル電子回路として、またはコンピュータハードウェア、ファームウェア、ソフトウェアとして、またはそれらの組み合わせとして実装することができる。装置は、情報媒体において、例えば、プログラマブルプロセッサが実行するための機械可読記憶装置において有形に具現化されたコンピュータプログラム製品として実施することができ、方法工程は、プログラマブルプロセッサが命令のプログラムを実行して、入力データに作用し、出力を生成することによって前述の実施態様の機能を果たすことによって実行することができる。前述の特徴は、有利には、データ記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受け取り、データ記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置にデータおよび命令を送るように結合された少なくとも1つのプログラマブルプロセッサを含むプログラムシステム上で実行可能な1つまたは複数のコンピュータプログラムにおいて実装することができる。コンピュータプログラムとは、ある特定のアクティビティを実行し、またはある特定の結果をもたらすためにコンピュータにおいて、直接的または間接的に使用することができる命令セットである。コンピュータプログラムは、コンパイル言語やインタプリタ言語を含む任意の形式のプログラミング言語で書くことができ、スタンドアロンプログラムとしてや、モジュール、コンポーネント、サブルーチン、またはコンピューティング環境で使用するのに適したその他のユニットとしてを含めて、任意の形式で配置することができる。
【００７９】
命令のプログラムの実行に適したプロセッサには、例えば、汎用と専用両方のマイクロプロセッサ、任意の種類のコンピュータの単独のプロセッサまたは複数のプロセッサのうちの1つが含まれる。一般に、プロセッサは、読取り専用メモリまたはランダム・アクセス・メモリまたはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つまたは複数のメモリである。一般に、コンピュータは、データファイルを格納するための1台もしくは複数の大容量記憶装置も含み、または大容量記憶装置と通信するように動作可能に結合され、そうした大容量記憶装置には、内蔵ハードディスクやリムーバブルディスクといった磁気ディスク、光磁気ディスク、光ディスクが含まれる。コンピュータプログラム命令およびデータを有形に具現化するのに適した記憶装置には、あらゆる形の不揮発性メモリが含まれ、これには、例えば、EPROM、EEPROM、フラッシュ・メモリ・デバイスといった半導体メモリデバイス、内蔵ハードディスクやリムーバブルディスクといった磁気ディスク、光磁気ディスク、CD-ROMおよびDVD-ROMディスクが含まれる。プロセッサおよびメモリは、ASIC（特定用途向け集積回路）によって補足し、またはASICに組み込むことができる。
【００８０】
ユーザとの対話を提供するために、これらの特徴を、ユーザに情報を表示するためのCRT（陰極線管）やLCD（液晶ディスプレイ）モニタといった表示装置と、ユーザがコンピュータに入力を提供するためのキーボードおよびマウスやトラックボールといったポインティングデバイスとを備えるコンピュータ上で実施することができる。加えて、そうしたアクティビティを、タッチスクリーン・フラットパネル・ディスプレイおよび他の適切な機構によって実施することもできる。
【００８１】
これらの特徴は、データサーバといったバックエンドコンポーネントを含むコンピュータシステム、またはアプリケーションサーバやインターネットサーバといったミドルウェアコンポーネントを含むコンピュータシステム、またはグラフィカル・ユーザ・インターフェースもしくはインターネットブラウザを有するクライアントコンピュータといった、フロントエンドコンポーネントを含むコンピュータシステム、またはそれらの任意の組み合わせにおいて実施することができる。システムの各構成要素は、通信ネットワークといった、任意の形または媒体のデジタルデータ通信によって接続することができる。通信ネットワークの例には、ローカル・エリア・ネットワーク（「LAN」）、広域ネットワーク（「WAN」）、ピアツーピアネットワーク（アドホックメンバまたは静的メンバを有する）、グリッド・コンピューティング・インフラストラクチャ、およびインターネットが含まれる。
【００８２】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバとは、一般に、互いにリモートであり、通常は、前述のネットワークなどのネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作する、互いにクライアント/サーバ関係を有するコンピュータプログラムによって生じる。
【００８３】
本明細書には多くの具体的な実装詳細が含まれているが、これらの詳細は、発明または特許請求されうるものの範囲に対する限定と解釈されるべきではなく、むしろ、個々の発明の個々の実施態様に特有の特徴の記述と解釈されるべきである。本明細書に別々の実施態様の文脈において記載されている特定の特徴を、単一の実施態様において組み合わせて実施することもできる。逆に、単一の実施態様の文脈において記載されている様々な特徴を、複数の実施態様において別々に、または任意の適切な部分的組み合わせとして実施することもできる。さらに、各特徴は、上記では、ある特定の組み合わせで動作するものとして記載され、そうしたものとして最初に請求されている場合さえもあるが、請求される組み合わせの中からの1つまたは複数の特徴を、場合によっては、その組み合わせから削除することもでき、請求される組み合わせは、部分的組み合わせまたは部分的組み合わせの変形も対象としうる。
【００８４】
同様に、各動作は、図面において特定の順序で記載されているが、これは、所望の結果を達成するために、そうした動作が図示の特定の順序で、もしくは順番に行われること、またはすべての図示の動作が行われることを必要とするものとして理解されるべきではない。ある状況では、マルチタスク処理および並列処理が有利な場合がある。さらに、上述した実施態様における様々なシステム構成要素の分離は、そうした分離をすべての実施態様において必要とするものとして理解されるべきではなく、前述のプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に統合することもでき、複数のソフトウェア製品にパッケージ化することもできることを理解されたい。
【００８５】
以上、本発明の主題の特定の実施態様について説明した。添付の特許請求の範囲内には他の実施態様が含まれている。場合によっては、各請求項に記載されている動作を、異なる順序で実行し、しかも所望の結果を達成することができる。加えて、添付の図に示されるプロセスは、所望の結果を達成するのに、必ずしも、図示の特定の順序、または順番を必要としない。特定の実施態様では、マルチタスク処理および並列処理が有利な場合がある。
【図１】
2019523620.tif 000004
【図２】
2019523620.tif 000005
【図３】
2019523620.tif 000006
【図４】
2019523620.tif 000007
【国際調査報告】
2019523620.tif 000008
2019523620.tif 000009
2019523620.tif 000010