(57)【要約】様々な例示的態様において、サービス・データ・プラットフォームのためのシステムおよび方法が提供される。サービス・データ・プラットフォームは、マネジメントアプリケーションAPIを用いてサードパーティーによってアップロードされたソフトウェアを受け取るように構成されたアプリケーションマネジメントAPIを含む。またサービス・データ・プラットフォームは、アップロードされたソフトウェアを配布するために照明ノードのグループを識別するようにおよびアップロードされたソフトウェアが識別された照明ノードのグループへの配置に関して安全であると判定するように構成された、複数のグラフサーバも含む。サービス・データ・プラットフォームは、管理APIを用いて、アップロードされたソフトウェアを識別された照明ノードのグループに配布するように構成されたデバイスマネージャをさらに含む。2017517081.tif 000003
2017517081.tif 000002
【特許請求の範囲】
【請求項１】
以下の工程を含む、ネットワーク内の照明ノードにおいてセンサデータを処理するための方法:
管理アプリケーション・プログラミング・インターフェース（API）を用いてサービス・データ・プラットフォームから、前記照明ノードにおいてセンサアプリケーションをアップロードするよう求める第1の要求を受け取る工程;
前記管理APIを用いて前記サービス・データ・プラットフォームから、前記センサアプリケーションを実行するよう求める第2の要求を受け取る工程;
センサデータAPIを用いてセンサデバイスから、高帯域幅データを表すセンサデータを収集する工程;
マシンのプロセッサにより前記センサアプリケーションを実行して、前記センサデータに基づいて前記照明ノードにおいて解析データを生成する工程であって、前記生成された解析データが低帯域幅データを表す、工程;および
前記生成された解析データを、アプリケーションAPIを用いて前記サービス・データ・プラットフォームへ送信する工程。
【請求項２】
センサデータが、センサ生データおよびセンサ・イベント・データのうちの少なくとも1つを含む、請求項1記載の方法。
【請求項３】
センサデータが、ネットワーク内のデバイスによるフィルタリングも、集約も、それ以外の変更もなされたことがない収集されたセンサデータを表す、請求項1記載の方法。
【請求項４】
センサアプリケーションがスクリプトを表す、請求項1記載の方法。
【請求項５】
照明ノードがセンサノードを表す、請求項1記載の方法。
【請求項６】
センサデータAPIを用いてセンサデータを収集する工程が、
前記センサデータAPIを用いてセンサデバイスに、前記センサデータを要求する工程;および
前記センサデバイスから、要求された前記センサデータを含む応答を受け取る工程
をさらに含む、請求項1記載の方法。
【請求項７】
センサデータAPIを用いてセンサデータを収集する工程が、
前記収集されるセンサデータの量が大きすぎてネットワーク上でほぼリアルタイムにサービス・データ・プラットフォームへ効率的に転送することができないようなデータ転送レートで前記センサデータを収集する工程
をさらに含む、請求項1記載の方法。
【請求項８】
センサアプリケーションを実行して、センサデータに基づいて照明ノードにおいて解析データを生成する工程が、
前記生成される解析データの量がネットワーク上でほぼリアルタイムにサービス・データ・プラットフォームへ転送可能であるようなデータ転送レートで、未変更センサデータに基づいて前記解析データを生成する工程
をさらに含む、請求項1記載の方法。
【請求項９】
センサアプリケーションを実行して、照明ノードで受け取られたセンサデータに基づいて前記照明ノードにおいて解析データを生成する工程が、
低帯域幅データを生成するために未変更センサデータに基づいて前記解析データを生成する工程
をさらに含む、請求項1記載の方法。
【請求項１０】
センサアプリケーションが、照明ノードにおいて収集された未変更センサデータのノードベースの処理を行うために前記照明ノード上で走るサードパーティーによって開発されたソフトウェアを表す、請求項1記載の方法。
【請求項１１】
管理APIを用いてサービス・データ・プラットフォームから、照明ノードにおける前記照明ノードにおいてセンサアプリケーションをアップロードするよう求める第1の要求を受け取る工程が、
前記センサアプリケーションを含むファイルを受け取る工程、および
前記ファイルから前記照明ノード上へ前記センサアプリケーションをインストールする工程
をさらに含む、請求項1記載の方法。
【請求項１２】
管理APIを用いてサービス・データ・プラットフォームから、センサアプリケーションに対する管理機能を果たすよう求める追加要求を受け取る工程
をさらに含む、請求項1記載の方法。
【請求項１３】
センサアプリケーションを実行して、センサデータに基づいて照明ノードにおいて解析データを生成する工程が、
コンテナ内の前記センサアプリケーションを実行して、前記センサアプリケーションによって利用されるリソースを制限し、かつ前記センサアプリケーションのためのセキュアな動作環境を提供する工程
をさらに含む、請求項1記載の方法。
【請求項１４】
センサデータAPIを用いてセンサデバイスから収集する工程が、
照明ノードに位置するかまたはリモート照明ノードに位置する前記センサデバイスからセンサデータを収集する工程
をさらに含む、請求項1記載の方法。
【請求項１５】
センサアプリケーションを実行して、センサデータに基づいて照明ノードにおいて解析データを生成する工程が、
情報を位置特定し、分類し、かつ相関させるアルゴリズムを適用することによって前記解析データを生成する工程
をさらに含む、請求項1記載の方法。
【請求項１６】
センサアプリケーションを実行して、センサデータに基づいて照明ノードにおいて解析データを生成する工程が、
照明ノードで実行されている他のソフトウェアに影響を及ぼさずにセンサアプリケーションを実行する工程
をさらに含む、請求項1記載の方法。
【請求項１７】
センサアプリケーションを実行して、センサデータに基づいて照明ノードにおいて解析データを生成する工程が、
前記照明ノードの通常動作に影響を及ぼさずに前記解析データを生成する工程
をさらに含む、請求項1記載の方法。
【請求項１８】
以下の工程を含む、ネットワークにおいて照明ノードにソフトウェアを配置する方法:
前記サービス・データ・プラットフォームによって提供されたマネジメントアプリケーション・アプリケーション・プログラミング・インターフェース（API）を用いてサードパーティーによってアップロードされたソフトウェアを、サービス・データ・プラットフォームによって受け取る工程;
マシンのプロセッサにより、前記アップロードされたソフトウェアを配布するために照明ノードのグループを識別する工程;
前記アップロードされたソフトウェアが、前記識別された照明ノードのグループへの配置に関して安全であると判定する工程;および
管理APIを用いて、前記アップロードされたソフトウェアを前記識別された照明ノードのグループへ配布する工程。
【請求項１９】
管理APIを用いて、管理機能を求める要求を提供することによって、識別された照明ノードのグループにインストールされたソフトウェアの実行をマネジメントする工程
をさらに含む、請求項18記載の方法。
【請求項２０】
ソフトウェアがセンサアプリケーションを表す、請求項18記載の方法。
【請求項２１】
センサアプリケーションがスクリプト言語で書かれている、請求項20記載の方法。
【請求項２２】
アプリケーションAPIを用いて、識別された照明ノードのグループから、前記識別された照明ノードのグループによって生成されたノード処理済センサデータを受け取る工程
をさらに含む、請求項18記載の方法。
【請求項２３】
識別された照明ノードのグループからのノード処理済センサデータを、サービス・データ・プラットフォームに位置するデータベースに記憶する工程
をさらに含む、請求項22記載の方法。
【請求項２４】
集約APIを用いて、許可されたサードパーティーに、記憶されたノード処理済センサデータへのアクセスを提供する工程
をさらに含む、請求項23記載の方法。
【請求項２５】
センサデバイスと、
管理アプリケーション・プログラミング・インターフェース（API）を用いてサービス・データ・プラットフォームから、照明ノードにおける前記照明ノードにおいてセンサアプリケーションをアップロードするよう求める第1の要求を受け取り、
前記管理APIを用いて前記サービス・データ・プラットフォームから、前記センサアプリケーションを実行するよう求める第2の要求を受け取り、
センサデータAPIを用いて前記センサデバイスから、高帯域幅データを表すセンサデータを収集し、
マシンのプロセッサにより前記センサアプリケーションを実行して、前記センサデータに基づいて前記照明ノードにおいて解析データを生成し、前記生成された解析データが低帯域幅データを表し、かつ
前記生成された解析データを、アプリケーションAPIを用いて前記サービス・データ・プラットフォームへ送信する
ように構成された1つまたは複数のプロセッサによって実施されるエンドポイント・アプリケーション・フレームワークと
を含む、照明ノードのためのシステム。
【請求項２６】
マネジメントアプリケーション・アプリケーション・プログラミング・インターフェース（API）を用いてサードパーティーによってアップロードされたソフトウェアを受け取るように構成された1つまたは複数のプロセッサによって実施されるアプリケーションマネジメントAPIと、
前記アップロードされたソフトウェアを配布するために照明ノードのグループを識別し、前記アップロードされたソフトウェアが前記識別された照明ノードのグループへの配置に関して安全であると判定するように構成された1つまたは複数のプロセッサによって実施される複数のグラフサーバと、
管理APIを用いて、前記アップロードされたソフトウェアを前記識別された照明ノードのグループへ配布するように構成された1つまたは複数のプロセッサによって実施されるデバイスマネージャと、
を含む、サービス・データ・プラットフォームのためのシステム。
【請求項２７】
デバイスマネージャが、
管理APIを用いて、管理機能を求める要求を提供することによって、識別された照明ノードのグループにインストールされたソフトウェアの実行をマネジメントする
ようにさらに構成されている、請求項26記載のシステム。
【請求項２８】
デバイスマネージャが、アプリケーションAPIを用いて、識別された照明ノードのグループから、前記識別された照明ノードのグループによって生成されたノード処理済センサデータを受け取るようにさらに構成されている、請求項26記載のシステム。
【請求項２９】
複数のグラフサーバに通信可能に結合され、デバイスマネージャによって受け取られたノード処理済センサデータを記憶するように構成されたデータベースをさらに含む、請求項28記載のシステム。
【請求項３０】
許可されたサードパーティーに、データベースによって記憶されたノード処理済センサデータへのアクセスを提供するように構成された1つまたは複数のプロセッサによって実施される集約データAPIをさらに含む、請求項29記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照によりその全体が各々組み入れられる、2015年3月5日付で出願された米国特許出願第14/639,872号の優先権の恩典を主張し、2014年3月6日付で出願された米国仮出願第61,948,856号の優先権を主張するものである。
【０００２】
仮出願は、2013年9月11日付で出願された、「Networked Lighting Infrastructure for Sensing Applications」という名称の米国非仮特許出願第14/024,561号およびその関連米国仮出願第61/699,968号に関連したものであり、これらの内容を付録Aとして添付する。
【０００３】
技術分野
本開示の態様は概して、センサデータの処理に関し、限定のためではないがより詳細には、ネットワーク内のセンサノードにおけるセンサデータの処理に関する。
【背景技術】
【０００４】
背景
今日、センサネットワークは幅広い応用分野で使用されている。例えば、センサネットワークによって収集されたデータは、環境モニタリング、セキュリティおよび監視、ロジスティクスおよび輸送、制御および自動化、ならびに交通モニタリングに用いることができる。センサネットワークは、ネットワーク上で中央サーバと通信するセンサノードを含む。これによりセンサをより多くのリソースを有するデバイスによって記憶し、処理することが可能になる。ある種のセンサには、ソフトウェアアプリケーションによる使用のためにセンサデータを処理する中央サーバまたはプラットフォームへ搬送するのが困難となりうる大量のセンサデータを、（データを変更せずに）生成するものがある。
【発明の概要】
【０００５】
【図面の簡単な説明】
【０００６】
添付の図面の各図には、限定のためではなく例示のために様々な態様が示されている。
【０００７】
【図１Ａ】様々な態様における使用に適する照明センサネットワークの図である。
【図１Ｂ】例示的態様による、サービス・データ・プラットフォームと通信する照明ノードを示すブロック図である。
【図２Ａ】例示的態様による、センサから高帯域幅データを受け取り、ネットワークに低帯域幅データを提供するサービス・エンドポイント・プラットフォームを示す図である。
【図２Ｂ】例示的態様による、複数のサーバを有するサービス・データ・プラットフォームを示すブロック図である。
【図３Ａ】例示的態様による、エンドポイント・アプリケーション・フレームワークが照明ノードにおいてセンサデータを処理するためにサービス・データ・プラットフォームと通信することを可能にする例示的ソフトウェアアーキテクチャを示す図である。
【図３Ｂ】例示的態様による、複数のコンテナを有するエンドポイント・アプリケーション・フレームワークを示す図である。
【図４Ａ】例示的態様による、複数の照明器具を有する照明ネットワークを示すブロック図である。
【図４Ｂ】例示的態様による、センサと通信するサービス・エンドポイント・プラットフォームを有する照明ノードを示すブロック図である。
【図４Ｃ】例示的態様による、照明ノードを示すブロック図である。
【図５Ａ】例示的態様による、複数の構成要素を有する照明ノードを示す図である。
【図５Ｂ】例示的態様による、複数の構成要素を有するサービス・データ・プラットフォームを示す図である。
【図５Ｃ】例示的態様による、照明ノードにおけるセンサデータの処理のための例示的ソフトウェアアプリケーションの図である。
【図６】照明ネットワーク内の照明ノードを編成し、マネジメントするためにサービス・データ・プラットフォームによって用いられるツリーの一例を示す図である。
【図７】例示的態様による、アプリケーション・プログラミング・インターフェース（API）および照明ネットワークを用いるユーザと通信するサービス・データ・プラットフォームを示す図である。
【図８】例示的態様による、照明ネットワーク内の照明ノードと通信するサービス・データ・プラットフォームを示すブロック図である。
【図９Ａ】例示的態様による、ネットワーク内の照明ノードにおいてセンサデータを処理するための方法を示す流れ図である。
【図９Ｂ】例示的態様による、ネットワークにおいて照明ノードにソフトウェアを配置するための方法を示す流れ図である。
【図１０】いくつかの例示的態様による、マシン上にインストールされうるソフトウェアアーキテクチャの一例を示すブロック図である。
【図１１】例示的態様による、マシンに本明細書で論じる方法のうちのいずれか1つまたは複数を行わせるための命令セットが内部で実行されうるコンピュータシステムの形態のマシンを示す図である。
【発明を実施するための形態】
【０００８】
本明細書で与えられる見出しは単に便宜的なものにすぎず、必ずしも用いられる用語の範囲または意味に影響を及ぼすとは限らない。
【０００９】
詳細な説明
以下の説明は、本開示の例示的態様を具現化するシステム、方法、技法、命令シーケンス、および計算機プログラム製品を含む。以下の記述では、説明を目的として、本発明の主題の様々な態様の理解を提供するために多数の具体的詳細が示されている。しかし、本発明の主題の態様がこれらの具体的詳細なしでも実施されうることが、当業者には明らかであろう。概して、周知の命令インスタンス、プロトコル、構造、および技法は必ずしも詳細に示されるとは限らない。
【００１０】
照明センサネットワークにおいて、センサデータは（サービス・エンドポイント・プラットフォームと呼ばれる）照明ノード内のエンドポイントにおいて収集され、センサデータ（例えば、処理済センサデータや生センサデータ）を、ノードベースの処理済センサデータおよび生センサデータを収集して記憶する（サービス・データ・プラットフォームと呼ばれる）中央サーバへ、転送する。また中央サーバもセンサデータを処理し、センサデータまたはセンサデータを利用するアプリケーションへのアクセスを提供することができる。以下で説明する様々な態様は、照明ノード（または他のノード）におけるサードパーティーソフトウェアアプリケーションの実行を可能にする。サードパーティーソフトウェアアプリケーションは、アプリケーション特有のヒューリスティックスを利用して照明センサネットワークのエンドポイントにおけるデータ結果をカスタマイズするのに用いられうる。
【００１１】
本明細書に記載される照明センサネットワークの様々な態様は以下の特徴のうちの多くを提供する。照明ノードにおいてサードパーティーソフトウェアアプリケーションのためのセキュアなアプリケーション実行環境を提供すること、照明ノードにおけるデータセキュリティおよびプライバシをマネジメントしつつ、サードパーティーソフトウェアアプリケーションにノードベースのセンサデータを提供すること、データセキュリティおよびプライバシをマネジメントしつつ、サードパーティーソフトウェアアプリケーションにサイトベースのセンサデータを提供すること、プログラマティックインターフェースを用いてサードパーティーアプリケーションソフトウェアの管理機能のためのサポートを提供すること、サードパーティーソフトウェア・アプリケーション・スクリプトとクラウドにおいてサービス・データ・プラットフォームにアップロードされたサードパーティーアプリケーションとの間のデータ通信をマネジメントすること、照明ノードへのサードパーティーアプリケーションソフトウェアの配置をマネジメントすること、ならびに、エンドポイント（例えば、サービス・エンドポイント・プラットフォーム）上での複数のサードパーティーソフトウェアアプリケーションの共存をマネジメントすること。
【００１２】
サードパーティー（例えば、アプリケーション開発者など）が（生センサデータおよびセンサ・データ・イベントを含む）センサデータにアクセスし、照明センサネットワーク内の照明ノード上でサードパーティーソフトウェアを実行することを可能にする様々な技法が開示される。実行されるサードパーティーソフトウェアは、アプリケーション、スクリプト、ルーチン、プログラムなどを含みうる。
【００１３】
サードパーティーアプリケーション開発者が、照明センサネットワーク内の様々な照明ノードにおいて収集される特定の種類のセンサデータのヒューリスティックスまたは他の解析を生成するための規則セットを生成できるようにすることができる。センサデータの例には、動き検知データ、周囲光センサデータ、オーディオデータ、画像データ、ビデオデータ、および加速度計データが含まれる。
【００１４】
照明ノードにおいて利用可能な最低レベルのセンサデータ（例えば、照明センサネットワーク内の様々なデバイスによるフィルタリングも、集約も、それ以外の変更もなされたことがないセンサデータ）へのアクセスにより、サードパーティーは、この最低レベルのセンサデータを様々な目的に利用するサードパーティーソフトウェアを開発することができる。
【００１５】
様々な態様において、照明ノードは、様々なアプリケーションが相互にも、照明ノードの通常動作にも影響を及ぼさない動作環境においてサードパーティーソフトウェアを実行するように構成することができる。言い換えると、照明ノードは、照明ノードの出力または動作に影響を及ぼさずにサードパーティーソフトウェアを安全に実行させるためのサンドボックスを提供することができる。
【００１６】
いくつかの態様において、サービス・データ・プラットフォーム内のコンピューティングデバイス（例えば、クラウドサーバなど）は、照明ノードにおける配置を対象としたサードパーティーソフトウェアを受け取るように構成することができる。サービス・データ・プラットフォーム内のコンピューティングデバイスは、実行のために様々な照明ノードにソフトウェアを配布する前に、問題または潜在的に危険な内容を特定するためにサードパーティーソフトウェアをスキャンし、構文解析し、デバッグし、処理し、かつ/またはそれ以外の方法で解析することができる。例えば、サードパーティーソフトウェアは、潜在的なマルウェアとして、またはそれ以外にネットワーク攻撃や装置シャットダウンを生じさせうるものと特定される場合もある。
【００１７】
照明センサネットワークは、照明ネットワークに過度の輻輳を生じさせずに、サードパーティーが照明ノードから収集された詳細なセンサデータにアクセスし、詳細なセンサデータのノードベースの処理を行うことができるアプリケーションスクリプト環境を提供することができる。さらに、サードパーティーは、異なるエンティティまたは業務に関連した、またはそれらによって望まれる情報を提供するようにカスタマイズされうるサードパーティーソフトウェア（例えば、スクリプト）を提供することができる。
【００１８】
様々な態様において、（照明ノードを含む）照明ネットワークは、顧客サイトに配置することができる。顧客は、サードパーティーが、有料または無料で、顧客サイトに位置する照明ネットワーク内の照明ノードにおける生センサデータにアクセスし、生センサデータを処理することを許可することができる。一例は、顧客サイトの駐車場内の照明ノードにおける生センサデータへのアクセスを求める駐車場サービス会社である。駐車場顧客サイトは、駐車場サービス会社に、顧客駐車場サイトに位置する照明ノードにサードパーティーソフトウェアアプリケーションを配置し、次いで、駐車場顧客サイトに位置する照明ノードにおいてサードパーティーソフトウェアアプリケーションを実行することによって生センサデータにアクセスし、生センサデータを処理することを許可する。
【００１９】
サードパーティーソフトウェアアプリケーションの配置およびノードベースの処理済センサデータへのアクセスは、例示的態様においてクラウドコンピューティング環境内に置かれたサービス・データ・プラットフォームを介したものである。様々な態様は、照明センサネットワーク内で利用されるアプリケーションスクリプト環境のための方法、デバイス、システム、および非一時的プロセス可読記憶媒体を提供する。
【００２０】
そうした照明センサネットワークの例は、2013年9月11日付で出願された、「Networked Lighting Infrastructure for Sensing Applications」という名称の米国非仮特許出願第14/024,561号および2012年9月12日付で出願されたその関連米国仮出願第61/699,968号に記載されており、これらの内容は参照により全体が本明細書に組み入れられる。
【００２１】
カリフォルニア州サニーベールのSensity Systems Inc.によって開発されたNetSense照明センサ・ネットワーク・プラットフォームは、記載される様々な態様を実施するのに用いられうる照明センサネットワークの一例を提供するものである。
NetSenseフレームワークは、アプリケーションがノードにおけるセンサデータにアクセスすることを可能にする照明インフラストラクチャを用いた様々なセンサの配置を可能にする。
【００２２】
図1Aに、様々な態様における使用に適する照明センサネットワーク160の実装を示す。照明センサネットワーク160は、照明インフラストラクチャを用いた様々なセンサの配置を可能にし、照明インフラストラクチャと関連付けられた照明ノード上で走るアプリケーションが処理のためにセンサデータにセキュアにアクセスすることを可能にする。
【００２３】
図1Aには、照明センサネットワーク160の様々な構成要素が示されている。照明センサネットワーク160は、サービス・データ・プラットフォーム140とネットワーク接続されている照明インフラストラクチャを表す。センサ416およびサービス・エンドポイント・プラットフォーム110を含む照明ノード105は、一態様によれば、サービス・データ・プラットフォーム140と通信するために広域ネットワーク（WAN）130などのネットワーク上で通信することができ、サービス・データ・プラットフォーム140はクラウドコンピューティング環境に置くことができる。
【００２４】
照明インフラストラクチャには照明器具が含まれる。照明インフラストラクチャは顧客サイトと呼ばれてもよく、または顧客サイトに位置してもよい。様々な態様において、サービス・データ・プラットフォーム140は、企業実体（例えば、Sensity Systems Inc.）によって所有、運営されてよく、照明インフラストラクチャの所有者は企業実体の顧客である場合がある。サービス・エンドポイント・プラットフォーム140は照明器具ごとにインストールすることができる。代替の態様においては、照明インフラストラクチャ内の照明器具の一部だけがサービス・エンドポイント・プラットフォーム140を含む。サービス・エンドポイント・プラットフォーム140は以下で述べる機能を提供することができる。
【００２５】
サービス・エンドポイント・プラットフォーム110は、（照明インフラストラクチャ内の）照明器具をクラウドにおけるサービス・データ・プラットフォーム140と接続し、照明器具間または照明ノード105間の通信をサポートするネットワーキング機能を含む。サービス・エンドポイント・プラットフォーム110は、照明ノード105における通信、センサデータ、および処理をマネジメントするための計算処理プラットフォームを提供する。サービス・エンドポイント・プラットフォーム110は、センサ416が、照明ノード105内のサービス・エンドポイント・プラットフォーム110に接続されることを可能にするセンサインターフェースをさらに提供する。
【００２６】
サービス・データ・プラットフォーム140は以下で述べる機能を提供する。サービス・データ・プラットフォーム140は、例示的態様においては、サービス・エンドポイント・プラットフォーム110を有する照明ノード105と通信するクラウドにおける集中サーバを表す。照明ノード105によって提供されるセンサデータは、サービス・データ・プラットフォーム140において収集され、記憶される。照明ノード105によって提供されるセンサデータは、センサアプリケーション120のうちの1つまたは複数によって照明ノード105において何らかの処理が行われたものである場合がある。特に、高帯域レートで照明ノード105において受け取られるセンサデータを、ネットワーク（例えば、WAN130）上で大量の生センサデータを送信することが難しい可能性のある場合に、照明ノード105において処理することができる。ノードベースの処理済センサデータの結果は、次いで、WAN130上でサービス・データ・プラットフォーム140へ送信することができ、そこで、ノードベースの処理済センサデータは収集および記憶され、許可されたユーザまたはアプリケーションによるアクセスを受けることができる。
【００２７】
サービス・データ・プラットフォーム140は、照明ノード105によって提供されたセンサデータを処理することができる。サービス・データ・プラットフォーム140によって処理されるセンサデータは、ノード処理済センサデータおよび照明ノード105によって処理されなかったセンサデータを含む。場合によっては、サービス・データ・プラットフォーム140によって受け取られるデータは、圧縮データまたは他の形態の変更された生センサデータを含みうる。サービス・データ・プラットフォーム140によって受け取られるセンサデータは、サービス・データ・プラットフォーム140によって処理される場合もある。様々な態様において、サービス・データ・プラットフォーム140の処理は、データベースサーバ290を介してデータベース291からセンサデータにアクセスする、図2Bに示す解析サーバ266がセンサデータに対する解析を行うことを含みうる。
【００２８】
またサービス・データ・プラットフォーム140は、サービス・データ・プラットフォーム140に記憶されたデータへのAPIサーバを介したプログラムによるアクセスとウェブサーバを介したウェブアクセスの両方を提供する。例えば、サービス・データ・プラットフォーム140は、サードパーティーアプリケーションがサービス・データ・プラットフォーム140に記憶されたセンサデータにアクセスするための集約データAPI141を提供することができる。別の例では、サービス・データ・プラットフォーム140は、ウェブサーバ280を介したセンサデータへのアクセスも提供することができる。またサービス・データ・プラットフォーム140は、照明ノード105において配置されるべきアプリケーションをアップロードするためにアプリケーションマネジメントAPI142を提供することもできる。集約データAPI141およびアプリケーションマネジメントAPI142は図1Bに示されている。
【００２９】
図1Bに、例示的態様による、照明センサネットワーク160を示すハイレベルブロック図を示す。照明センサネットワーク160は、サービス・データ・プラットフォーム140と通信する照明ノード105を含むことができる。例示的態様において、照明ノード105内の（図1Aに示す）サービス・エンドポイント・プラットフォーム110の各々は、ノードベースのセンサ処理のためにサービス・データ・プラットフォーム140によって配置された1つまたは複数のセンサアプリケーション120を実行することができる。ノードベースのセンサ処理は、一般に、照明ノード105において利用可能なセンサデータに対する解析を行うのに用いられ、圧縮もセンサデータへの他の変更もなしではネットワーク上で容易に送信できない高帯域幅データを提供するセンサに特に適する。
【００３０】
照明ノード105上で走るセンサアプリケーション120は、センサデータにアクセスし、照明センサネットワーク160から利用可能なセンサデータ、特に、照明ノード105における解析処理に利用可能なセンサデータに対する解析を行おうとするサードパーティーによって開発されうる。照明ノード105における解析処理の結果は、記憶のためにWAN130上でサービス・データ・プラットフォーム140へ送信される。
【００３１】
複数のセンサアプリケーション120を照明ノード105の各々で実行することができる。様々な態様において、センサアプリケーション120はスクリプト言語を用いて実施することができる。照明ノード105上の各センサアプリケーション120は、センサアプリケーション120ごとのセキュアな動作環境を作り出すために別々のコンテナ内で実行される。様々な態様において、センサアプリケーション120のうちの1つの実行は照明ノード105で走るその他のセンサアプリケーション120の動作に干渉せず、照明ノード105または照明ノード105と関連付けられた照明器具の通常動作にも干渉せず、妨害しない。センサアプリケーション120の各々は、センサアプリケーション120が照明ノード105において実行されるためのセキュアな環境を提供するようにサンドボックスにおいて実行することができる。
【００３２】
図3Bを参照すると、エンドポイント・アプリケーション・フレームワーク310は、一態様によれば、それぞれ別々のコンテナ320〜322内に複数のセンサアプリケーション220〜222を含む。センサアプリケーション220〜222はセンサアプリケーション120を表しうる。コンテナ320はセンサアプリケーションを走らせるためのリソースをマネジメントし、センサアプリケーションは、アプリケーションスクリプトとも呼ばれることのあるスクリプト言語を用いてそれぞれ実施することができる。例えば、各コンテナは、中央処理装置（CPU）、メモリ、データおよびファイルへのアクセスといったリソースに関連した各コンテナに関連付けられたセンサアプリケーションについての限界を定義し、不良コードが他のコンテナ内のセンサアプリケーションを破壊するのを防ぐために用いられうる。例示的態様において、各アプリケーションスクリプトは別々のアプリケーションコンテナ（例えば、コンテナ320）で走る。センサアプリケーション220〜222は、エンドポイント・アプリケーション・フレームワーク310内で実行可能なアプリケーションスクリプトまたは他のソフトウェアプログラムを表す。図3Bにはインターフェース360も示されており、インターフェース360は、管理API340、アプリケーションAPI350、およびセンサデータAPI330を提供するのに用いられうる。
【００３３】
エンドポイント・アプリケーション・フレームワーク310は、コンテナ320〜322およびインターフェース360をマネジメントすることによってセンサデータのノードベースの処理を提供するセンサアプリケーション220〜222または他のソフトウェアプログラムを実行するためのフレームワークを提供する。様々な態様において、照明ノード105は、様々なアプリケーションが相互にも、照明ノード105の通常動作にも影響を及ぼさない動作環境において様々なサードパーティーソフトウェアを実行するように構成されうる。言い換えると、照明ノード105は、照明ノード105の出力にも照明ノード105の動作にも影響を及ぼさずにサードパーティーソフトウェアを安全に実行させるためのサンドボックスを提供することができる。
【００３４】
図1Bに戻って、照明ノード105は照明ネットワーク100内に含まれる。照明ネットワーク100は照明器具を含むことができる。照明ノード105は照明器具に直接的または間接的に接続することができる。例示的態様においては、いくつかの照明ノード105が照明器具に直接接続されず、関連付けられない場合もある。他の態様において、照明ネットワーク100内の照明ノード105は、センサデータのノードベースの処理およびWAN130への伝送のために、ある照明ノード105から別の照明ノード105へセンサデータを送信するように相互間で通信することができる。別の態様においては、照明ノード105の一部または全部が、センサアプリケーション120によるセンサデータのノードベースの処理を提供することができる。
【００３５】
照明ノード105は、照明器具に直接的または間接的に取り付けることによって照明器具と関連付けることもでき、照明器具にリモートで接続することもできる。様々な態様においては、照明ノード105のうちのいくつかが照明器具と関連付けられない場合もあり、他の照明ノード105を介して通信する場合もある。代替の態様においては、インフラストラクチャが（センサデータを受け取る）ノードに電力およびネットワーキング機能を供給するという条件で、電灯なしの器具を含むインフラストラクチャを用いることができる。例えば、インフラストラクチャは、電柱を有するユーティリティインフラストラクチャとすることもでき、空調装置を有する空調インフラストラクチャとすることもできる。これらの例では、ノードを電柱または空調装置に（直接的または間接的に）取り付けることができる。様々な態様において、照明ノード105は、照明器具とも光センサとも関連付けられていないセンサノードを表す。
【００３６】
図1Bに示すように、サービス・データ・プラットフォーム140は、アプリケーションマネジメントAPI142を用いて、センサアプリケーションをサービス・データ・プラットフォーム140にアップロードするためのプラットフォームを提供する。アプリケーションマネジメントAPI142は、サードパーティーがセンサアプリケーション120をサービス・データ・プラットフォーム140へアップロードするためのAPIを提供する。サービス・データ・プラットフォーム140によって提供されるAPIは、汎用APIまたはカスタムAPIとすることができる。
【００３７】
サービス・データ・プラットフォーム140は、センサアプリケーション120を照明ノード105に配置する機能を提供する配置モジュール（例えば、図5Bに示す配置モジュール520）を含む。配置モジュール520は、単独で、またはノードマネジメントモジュール（例えば、図5Bに示すノードマネジメントモジュール540）と組み合わさって、どの照明ネットワーク100内のどの照明ノード105がセンサアプリケーション120のうちのどれを配置すべきか決定する。センサアプリケーション120のうちの1つまたは複数を照明ノード105の各々において配置することができる。
【００３８】
様々な態様において、センサアプリケーション120のサービス・データ・プラットフォーム140による配置の前に、サービス・データ・プラットフォーム140は、センサアプリケーション120が照明ノード105上で実行され、または配置されたときに照明ノード105に害を与える可能性が高くないと判定するために、センサアプリケーション120を評価し、または選別する。
【００３９】
図1Bには、ユーザまたはアプリケーションがセンサデータ（ノードベースの処理済センサデータまたはサーバベースの処理済センサデータ）にアクセスするための集約データAPI141も示されている。センサデータのサーバベースの処理は、図2Bに示す解析サーバ266によって行われうる。上述のように、センサデータのノードベースの処理は、照明ノード105上で走るセンサアプリケーション120によって行われる。様々な態様において、センサデータは集約データAPI141を用いてアクセスされうる。
【００４０】
図2Bを参照すると、処理済センサデータはデータベース291に記憶され、データベースサーバ290によってアクセスされる。例示的態様において、アプリケーションサーバ260は、APIサーバ270またはウェブサーバ280によってWAN130を介して他のネットワーク接続されたデバイスと通信する。
【００４１】
様々な態様において、照明ネットワーク100の所有者は、サードパーティーが、照明ネットワーク100内の照明ノード105においてセンサアプリケーション120をインストールし、実行することを許可する。センサアプリケーション100は、許可されたサードパーティーが使用するために照明ノード105において収集され、処理されたセンサデータを利用する。ノードベースの処理済センサデータの結果はサービス・データ・プラットフォーム140へ送信される。許可されたサードパーティーは、様々な態様において、センサデータAPIによって、サービス・データ・プラットフォーム140を介してノードベースの処理済センサデータにアクセスする。様々な態様において、サービス・データ・プラットフォーム140は、照明ノード105、照明ノード105によって提供されるデータ、および照明ノード105におけるセンサアプリケーション120の配置および実行の様々な局面をマネジメントするサービス提供者または他の実体によって所有され、運営される。
【００４２】
サービス・データ・プラットフォーム140については、図2B、図5B、および図6〜図8に関連して以下でさらに詳細に論じる。
【００４３】
図2Aに、例示的態様による、センサから高帯域幅データ（または大量のデータ）を受け取り、ネットワーク上で伝送されることのできる低帯域幅データを提供するサービス・エンドポイント・プラットフォーム210を示す。上述のように、照明ノード105は複数のセンサ416を含むことができ、センサ416はセンサデバイスとも呼ばれる。センサ416の例には、照明センサ、オーディオセンサ、カメラセンサ、ビデオセンサなどが含まれる。
【００４４】
図2Aには、例示的態様による、センサからセンサデータを受け取り、センサデータAPI330を用いてアプリケーション220およびアプリケーション221に高帯域幅センサデータを提供するセンサドライバ230およびセンサドライバ231が示されている。センサドライバ230およびセンサドライバ231は、センサデータAPI330の下のサービス・エンドポイント・プラットフォーム210においてソフトウェアとして実施することができる。センサアプリケーション220およびセンサアプリケーション221は、センサデータのノードベースの処理から結果を生成する。結果は、低帯域幅データとしてパス250およびパス251上でWAN130へ送信される。様々な態様において、低帯域幅データは、高帯域幅データを用いるセンサアプリケーション220およびセンサアプリケーション221によって生成されたセンサデータからの洞察を表しうる。
【００４５】
様々な態様において、センサアプリケーション220およびセンサアプリケーション221によって実施されるアルゴリズムは、照明ノード105において行われうる解析処理を表す。カメラは、オーディオおよび画像データを有するビデオを撮影することのできるセンサデバイスを表しうる。カメラからの画像データは、毎秒メガビット単位またはギガビット単位の範囲の高帯域幅データを表す生センサデータを表しうる。カメラからの画像データは、効率的伝送に適するように、画像データが圧縮されず、他の方法でのサイズ縮小もされなければ、ネットワーク（例えば、WAN130）上で送信するのが難しい。画像データを圧縮することは可能であるが、そうした圧縮は画像データ詳細の一部の損失をもたらしうる。生画像データを送信するのではなく、センサアプリケーション220またはセンサアプリケーション221は、生画像データに対して解析を行い、次いで、ノードベースで処理された生画像データの結果をネットワーク（例えば、WAN130）へ送ることができる。生画像データのノードベースの処理は、生画像データからの詳細のほぼ100％を維持することができる。
【００４６】
高帯域幅データを生成するセンサデバイスの別の例が、振動を測定する加速度計である。加速度計は、高速サンプルレート、例えば、毎秒100サンプルで振動を測定することができる。生センサデータは、生センサデータの洞察を行うために、無線ネットワーク上で効率的に搬送することができないほど、大きく、または高速で受け取られる場合がある。例えば、生センサデータからの所望の洞察にはピーク加速度やスペクトル成分が含まれうる。センサアプリケーション220およびセンサアプリケーション221は、ノードベースのセンサ処理を行って、ところどころのピークを決定し、または写真を撮影することができ、ノードベースの処理の結果はネットワーク（例えば、WAN130）へ搬送されうる。
【００４７】
オーディオセンサからのオーディオデータも高帯域幅センサデータを提供する場合がある。オーディオ解析は、何者かの悲鳴、ガラス破損、車の衝突、発砲などの聞き取りを含みうる。オーディオ解析は、特定のイベントが発生したことを判定する。解析処理がある特定のイベントが発生したかどうか判定するためにネットワーク（例えば、WAN130）上で（場合によっては高帯域幅データを表す）オーディオ記録を送るのではなく、センサアプリケーション220またはセンサアプリケーション221は、ある特定のイベントの発生を検知するためにノードベースのセンサ処理を行うことができる。ノードベースのセンサ処理からの結果は次いで、許可されたユーザがアクセスするために、ネットワーク（例えば、WAN130）上でサービス・データ・プラットフォーム140へ搬送される。
【００４８】
上述の様々な高帯域幅データの例において、（アプリケーション220またはアプリケーション221によって生成された）データ解析結果は、ネットワーク上で、サービス・データ・プラットフォーム140が置かれたクラウドへ搬送される。サービス・データ・プラットフォーム140は、照明センサネットワーク160のための集中サーバを表しうる。結果は次いでサービス・データ・プラットフォーム140に記憶される。処理済センサデータは、ウェブAPIまたはプログラマティックAPIを用いてサービス・データ・プラットフォーム140から許可されたユーザによってアクセスされうる。サービス・データ・プラットフォーム140の所有者は、許可されたユーザが処理済センサデータにアクセスするためのウェブアプリケーションを提供することができる。ユーザによっては独自のアプリケーションを作成し、他のAPIを介して処理済センサデータにアクセスすることもできる。
【００４９】
図2Bに、例示的態様によるサービス・データ・プラットフォーム140を示す。サービス・データ・プラットフォーム140は、1つまたは複数のアプリケーションサーバ260に結合され、プログラマティックインターフェースおよびウェブインターフェースをそれぞれ提供することのできるAPIサーバ270およびウェブサーバ280を含む。サービス・データ・プラットフォーム140は、サーバマシン間の通信を可能にするために通信可能に結合されている専用サーバマシンまたは共用サーバマシン上でホストされうる。サーバの各々は1つまたは複数のモジュールまたはアプリケーションを含むことができ、モジュールまたはアプリケーションの各々は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの任意の組み合わせとして具現化されうる。
【００５０】
（1つまたは複数の）アプリケーションサーバ260は、さらに、1つまたは複数の情報記憶リポジトリまたはデータベース291へのアクセスを円滑化する1つまたは複数のデータベースサーバ290に結合されるものとして示されている。例示的態様において、（1つまたは複数の）データベース291は、センサ情報およびセンサ解析情報を記憶する記憶装置である。（1つまたは複数の）アプリケーションサーバ260は、グラフサーバ262、デバイスサーバ264、および解析サーバ266を含む。これらのサーバについては、図7〜図8に関連してさらに詳細に論じる。
【００５１】
図3Aに、例示的態様による、照明ノード105において実施されたエンドポイント・アプリケーション・フレームワーク310内のソフトウェア構成要素を示す。図4A〜図4Cに、照明ノード105の様々なハードウェア態様を示す。例示的態様において、エンドポイント・アプリケーション・フレームワーク310は、照明センサネットワーク160内のアプリケーションスクリプト機能またはセンサデータのノードベースの処理をサポートするための機能をマネジメントする。
【００５２】
図3Aには、例示的態様による、照明ノード105のエンドポイント・アプリケーション・フレームワーク310層における様々なソフトウェア構成要素が示されている。エンドポイント・アプリケーション・フレームワーク310内には、センサアプリケーション220のためのコンテナ320、管理API340、アプリケーションAPI350およびセンサデータAPI330が置かれている。センサアプリケーション320のためのコンテナ320はセンサアプリケーション220をマネジメントする。様々な態様において、センサアプリケーション220はスクリプト言語を用いて実施される。例えば、コンテナ320は、管理API340を介したコンテナ320への要求366に基づいてスクリプトを開始し、停止し、再開し、ダウンロードし、リロードするのに用いられる。管理API340は、サービス・データ・プラットフォーム140からのパス365上の要求を提供する。これらの要求を、管理要求または構成要求と呼ぶことができる。サービス・データ・プラットフォーム140は照明ノード105にソフトウェアアプリケーションを配置する役割を担う。センサアプリケーション220は、管理API340を用いてサービス・データ・プラットフォーム140からセンサアプリケーション220へファイルを送ることによって配置することができる。
【００５３】
サードパーティーによって提供されたセンサアプリケーション220は、アプリケーションマネジメントAPI142を用いてサービス・データ・プラットフォーム140によって受け取られ、次いで、センサデータおよびセンサイベントのノードベースの処理のために（管理API340を用いて）ダウンロードされ、またはアップロードされうる。
【００５４】
またエンドポイント・アプリケーション・フレームワーク310は、管理API340、アプリケーションAPI350、およびセンサデータAPI330を含む様々なインターフェースをマネジメントする役割も担う。
【００５５】
上述のように、管理要求または構成要求366は管理API340を用いて提供される。サービス・データ・プラットフォーム140は、要求366をマネジメントし、要求366を含むコミュニケーションを、パス365上でエンドポイント・アプリケーション・フレームワーク310へ送る。
【００５６】
各センサは、センサデータAPI330を用いて、生センサデータ363およびセンサ・データ・イベント364をセンサアプリケーション220へ提供する。センサアプリケーション220は、生センサデータ363およびセンサイベント364を取り出すためにセンサデータAPIへ要求368を提供することができる。生センサデータ363およびセンサイベント364は応答369によってセンサアプリケーション220へ提供される。センサアプリケーション220は、ノードベースの処理済センサデータの結果を生成するために、センサデータAPI330を介して受け取った生センサデータ363およびセンサ・データ・イベント364に対して解析を実行することができる。
【００５７】
ノードベースの処理済センサデータの結果はパス367上でアプリケーションAPI350を介してサービス・データ・プラットフォーム140へ送信される。ユーザは集約データAPI141を用いてノードベースの処理済センサデータの結果にアクセスすることができる。
【００５８】
図4Aに、例示的態様による照明ネットワーク100を示す。照明ネットワーク100は複数の照明器具305および425を示している。照明ネットワーク100内の照明器具の数は、クライアントの必要に応じて変動しうる。さらに、すべての照明器具が、照明器具に直接的または間接的に取り付けられた照明ノード415を含むとは限らない。例えば、照明器具425は照明器具425に取り付けられた照明ノード415を含まない。しかし、いくつかの態様においては、照明器具425はリモート照明ノードと通信することができる。代替の態様においては、照明ノード415に電源およびネットワーキング機能を提供する他の種類の器具を用いることもできる。別の態様においては、照明ノード415をセンサノードまたはノードと呼ぶ場合もある。
【００５９】
照明器具305はどちらも、光源411、支持構造412、電源413、および照明ノード415を含む。いくつかの態様において、照明ノード415は、生センサデータおよび処理済センサデータを含むセンサデータを記憶するためのローカル記憶（不図示）を含むことができる。照明ノード415は、様々な条件およびイベントを検知するためのセンサデータを提供するようにサービス・エンドポイント・プラットフォーム210およびセンサ416を含む。
【００６０】
図4Bに、例示的態様による、照明ノード415内のサービス・エンドポイント・プラットフォーム210を示す。サービス・エンドポイント・プラットフォーム210は、センサデータ（生センサデータおよびセンサ・データ・イベント）を受け取るためのセンサデータAPI330、照明ノード415においてセンサデータを処理するための計算処理プラットフォーム450、およびネットワークインターフェース440を含む。ネットワークインターフェース440は、計算処理プラットフォーム450によって処理されたセンサデータをネットワーク（例えば、WAN130）上でサービス・データ・プラットフォーム140へ送るのに用いることができる。
【００６１】
例示的態様において、計算処理プラットフォーム450は、照明ノード415においてセンサデータを処理する役割を担う。図4Cに示す1つまたは複数のハードウェア構成要素（例えば、ノード・アプリケーション・コントローラ470）が、エンドポイント・アプリケーション・フレームワーク310およびセンサアプリケーション120で表されるソフトウェアと併せて、図4Bに示す計算処理プラットフォーム450を実施するのに用いられうる。
【００６２】
図4Cに、照明ノード415の一態様の例示的ブロック図を示す。いくつかの態様において、照明ノード415は、揮発性メモリおよび不揮発性メモリ（不図示）に接続された（ノード・アプリケーション・コントローラ470と呼ばれる）マイクロコントローラ上で走るソフトウェアで構成されうるノード・アプリケーション・コントローラ470によって制御されうる。様々な態様において、センサアプリケーション220は、ノード・アプリケーション・コントローラ470内のメモリにインストールされ、ノード・アプリケーション・コントローラ470によって実行される。ノード・アプリケーション・コントローラ470は、ソフトウェアアプリケーション120を実行する機能を提供することができる。別の態様においては、ノード・アプリケーション・コントローラ470は、フィールド・プログラマブル・ゲート・アレイ（FPGA）上で走るファームウェアで構成されうる。ノード・アプリケーション・コントローラ470は、選択されたLANネットワークプロトコルと互換性を有するネットワークインターフェース440を介してLAN上で通信することができる。ノード・アプリケーション・コントローラ470は、センサ416からデータを読み取り、データをメモリ（不図示）に記憶することができ、また、データをLAN上でサービス・データ・プラットフォーム140へ転送することもできる。またノード・アプリケーション・コントローラ470は、LED電灯411などの接続されて制御されるデバイスの設定を変更するためにコントローラ480へ出力信号を送ることもできる。またノード・アプリケーション・コントローラ470は、ネットワークインターフェース440（例えば、無線アップリンクアンテナでサービス・データ・プラットフォーム140と通信するアップリンク送信機164）に接続することもできる。様々な態様において、照明ノード305上のデバイスは、照明ノード305内の1つまたは複数の電源413に電力を提供する電力入力端子490による電力供給を受けることができる。
【００６３】
図5Aに、例示的態様による、複数の構成要素を有する照明ノード415を示す。照明ノード415は、センサアプリケーション120によるセンサデータのノードベースの処理を可能にするためのフレームワークを提供するエンドポイント・アプリケーション・フレームワーク310を含む。エンドポイント・アプリケーション・フレームワーク310はセンサデータのノードベースの処理をマネジメントする様々な機能をマネジメントする。上述のように、エンドポイント・アプリケーション・フレームワーク310は、例えば、センサ416とセンサアプリケーション120との間のインターフェースや、照明ノード415とサービス・データ・プラットフォーム140との間のインターフェースとのインターフェースをマネジメントする。センサドライバ505は、センサアプリケーション120が処理するために、センサデータAPI330を用いてセンサ416からセンサデータを提供する。ネットワークインターフェース440は、照明ノード415とサービス・データ・プラットフォーム140との間のインターフェースを提供する。
【００６４】
図5Bに、例示的態様による、複数の構成要素を有するサービス・データ・プラットフォーム140を示す。アプリケーションマネジメントAPI142は、サードパーティーなどのユーザが照明ネットワーク100内の照明ノード415において配置しようとするセンサアプリケーション120をアップロードするためのインターフェースを提供する。センサデータが照明ノード105に配置されたセンサアプリケーション120によって処理された後で、ユーザは、集約データAPI141を介してサービス・データ・プラットフォーム140からノードベースの処理済センサデータの結果にアクセスすることができる。アプリケーションデータベース530は処理済センサデータの結果を記憶する。アプリケーションデータベース530は、図2Bに示すデータベース291のうちの1つまたは複数を表しうる。図5Bに戻って、配置モジュール520は、センサアプリケーション120を1つまたは複数の選択された照明ノードに、または照明ノードのグループに配置する機能を提供することができる。配置モジュール520およびノードマネジメントモジュール540については、図6〜図8に関連して以下でさらに詳細に論じる。
【００６５】
図5Cは、エンドポイント・アプリケーション・フレームワーク310が、照明ネットワーク100内の照明ノード105におけるセンサデータの処理をマネジメントすることを可能にする例示的センサアプリケーションの図である。センサデータAPI330およびアプリケーションAPI350はエンドポイント・アプリケーション・フレームワーク310からの構成要素のうちの一部を表している。センサアプリケーション120は様々なソフトウェア構成要素を含む。
【００６６】
図5Cによれば、センサアプリケーション120は、第1の照明ノードおよび第2の照明ノードと呼ばれる2つの照明ノード105においてインストールされうる。センサデータAPI330はセンサアプリケーション120がセンサデータを受け取るためのインターフェースを提供する。生センサデータはセンサデータに対する解析を行うために（パス583を介して）センサ解析560へ送られる。生センサデータはセンサデータに対する解析を行うために（パス584を介して）センサ解析565へ送られる。
【００６７】
センサ解析560および565は、センサデータのノードベースの処理の結果を生成するために生センサデータを処理し、情報を位置特定し、分類し、かつ相関させるアルゴリズムを適用する役割を担うソフトウェア層を表す。様々な例において、サードパーティーアプリケーション開発者によって提供されるセンサソフトウェア501は、照明センサネットワーク160内の様々な照明ノード105において収集される特定の種類のセンサデータ（例えば、動き検知データ、周囲光センサデータなど）のヒューリスティックスまたは他の解析を生成するための規則セットを表しうる。センサ解析560および565によって処理されるセンサデータの例には、環境センサからのデータ（例えば、温度や湿度）、ガス（例えば、C02やCO）、加速度計からのデータ（例えば、振動）、微粒子、電力、RF信号、周囲光、ならびに動き検知、静止画像、ビデオおよびオーディオが含まれる。センサ解析560および565によって生成される情報は、通信パス580上でアプリケーションAPI350に供与され、さらに、通信パス581上でサービス・データ・プラットフォーム140に供与される。
【００６８】
コンテナ（図5Cには不図示）は、ソフトウェアアプリケーションごとに別々のコンテナを用いて、センサアプリケーション501の実行をマネジメントする。
【００６９】
図6に、照明ネットワーク100内の照明ノードを編成し、マネジメントするためにサービス・データ・プラットフォーム140によって用いられるツリーの一例を示す図である。ツリー600は、多くの照明ネットワーク100において照明ノード105をマネジメントするためにサービス・データ・プラットフォーム140によって生成され、利用されるデータ構造である。グラフサーバ262は、ツリー600のような階層ツリー構造からのノードのグループ化をマネジメントするのに用いることができる。ツリー内のノードは、地理的位置およびユーザ情報、ならびに他の情報によって照明ネットワーク100内の照明ノード105に関する情報を追跡するのに用いることができる。ツリーは、例えば、どの照明ノード105がセンサアプリケーション220を配置すべきか決定するための許可を追跡する際に役立つ。
【００７０】
ツリー600はノード601を含み、ノード601はツリー600におけるルートノードを表す。ツリー内のノードの数および種類は様々とすることができる。ノード610、ノード611、およびノード612は位置情報を有するノードを表す。例えば、ノード610は州カリフォルニア（CA）を表し、ノード611は都市サンタクララを表し、ノード612はウェストフィールド・バレー・フェア・モールを表す。一例では、クライアントデバイス（不図示）上でユーザ（例えば、サービス・データ・プラットフォーム140のシステム管理者）に提示されたユーザインターフェースを介してノード612を選択することによって、照明ネットワーク100が、ウェストフィールド・バレー・フェア・モールにおける関連付けられた照明ノード105であることが選択される。ノード612を選択することによって、サービス・データ・プラットフォーム140のシステム管理者は、バレーフェアの照明ネットワーク100に位置する照明ノード105にセンサアプリケーション220を配置することができる。
【００７１】
ノード620、ノード621、およびノード622はユーザ情報を表す。一例では、ノード620は、サービス・データ・プラットフォーム140のシステム管理者に、バレーフェアにある照明ネットワーク100のところの照明ノード105にセンサアプリケーション220を配置するよう要求することを許可されたユーザを表しうる。ノード621およびノード622は、それぞれ、許可されたユーザのグループの中からの特定のユーザ、ケントおよびボブを表す。
【００７２】
様々な態様において、ツリー600は、システム管理者が、照明ノード105の地理的位置、顧客または所有者ごとの照明ノード105、追跡許可（例えば、センサアプリケーション220を配置するためのサードパーティーに付与された許可）、および多様な地理的位置にわたる様々な顧客サイトにおいて複数の照明ノード105を有する多くの照明ネットワーク100をマネジメントするのに役立つ他の情報を閲覧するためのグラフィカル・ユーザ・インターフェースとしてユーザに提示することができる。
【００７３】
上記のように、サービス・データ・プラットフォーム140は、サービス・データ・プラットフォーム140の管理者が顧客サイトにおける照明ネットワーク100の所有者によって許可されていることを条件として、各照明ノード105に1つまたは複数のセンサアプリケーション220を配置することができる。センサアプリケーション220のサードパーティーアプリケーション開発者は、サードパーティーアプリケーション開発者が照明ノード105において配置しようとするセンサアプリケーション220と互換性を有するデバイス（例えば、照明ノード105、サービス・エンドポイント・プラットフォーム210、およびエンドポイント・アプリケーション・フレームワーク310、およびこれらのデバイス内の構成要素）を指定することができる。サービス・データ・プラットフォーム140のシステム管理者は、様々なノードへのセンサアプリケーション220の配置をマネジメントする。サービス・データ・プラットフォーム140は、サードパーティーアプリケーション開発者（または他のユーザ）が現場のデバイス（例えば、照明ノード105）にセンサアプリケーション220をアップロードし、センサ・アプリケーション・コードを割り当てることを可能にする。サービス・データ・プラットフォーム140は、ユーザが、例えば、ツリー600を用いて1つまたは複数のセンサアプリケーション220を照明ノード105のグループに割り当てすることによって、照明ノード105をグループ化することを可能にする。サービス・データ・プラットフォーム140はさらに、ユーザが割り当てられた照明ノード105にセンサアプリケーション220をプッシュダウンすることを可能にする。様々な態様において、（図3Aに示す）管理API340は、サービス・データ・プラットフォーム140によって、センサアプリケーション220をアップロードするのに用いられる。照明ノード105は、サービス・データ・プラットフォーム140によって配置された後でセンサアプリケーション220を実行する。
【００７４】
図7に、例示的態様による、様々な構成要素を有するサービス・データ・プラットフォーム140のブロック図を示す。サービス・データ・プラットフォーム140は、集約データAPI141およびアプリケーションマネジメントAPI142、グラフデータベース291aに結合されたグラフサーバ262、ならびにデバイスマネージャ710を含む。いくつかの態様において、グラフデータベース291aは、図2Bに示すデータベース291のうちの1つまたは複数を表す。
【００７５】
様々な態様において、集約データAPI141およびアプリケーションマネジメントAPI142はAPIサーバ270を用いて実施される。API141および142は、それぞれ、サービス・データ・プラットフォーム140の許可されたユーザに、ノードベースの処理済センサデータにアクセスする外部API、または照明ノード105で配置するためのセンサアプリケーション120をアップロードする外部APIを提供する。API141および142はグラフサーバ262に通信可能に結合されている。
【００７６】
グラフサーバ262は、ツリー600のような階層ツリー構造によって提供される地理情報およびユーザ情報によって照明ノード105をグループ化する機能を提供する。照明ネットワーク100内の照明ノード105はグラフサーバ262を用いてグループごとにマネジメントされる。様々な態様において、センサアプリケーション220は、例えば、センサアプリケーション220の配置時に、グループごとにマネジメントされる。
【００７７】
デバイスマネージャ710は、デバイスと呼ばれうる照明ノード105をマネジメントする機能を提供する。デバイスマネージャ710はデバイスサーバ264を含み、照明ノード105a〜105cとインターフェースする。デバイスマネージャ710は、ネットワーク（例えば、WAN）を介して照明ネットワーク100と通信することができる。
【００７８】
図8に、例示的態様による、相互に通信する様々なサーバを有するサービス・データ・プラットフォーム140のブロック図を示す。APIサーバ270はグラフサーバ262と通信し、グラフサーバ262はデバイスサーバ264と通信する。デバイスサーバ264はネットワーク（例えば、不図示のネットワーク130）と通信する。図8に示す例では、APIサーバ270a〜270cは、各々、グラフサーバ262a〜262bと通信する。グラフサーバ262a〜262bは、各々、デバイスサーバ264a〜264bと通信する。デバイスサーバ264a〜264bは照明ノード105a〜cと通信する。
【００７９】
図9A〜図9Bに、様々な態様において実施される方法900および910の流れ図を示す。いくつかの態様においては、方法900および910の各々に追加動作を加えることもでき、方法900および910の各々から1つまたは複数の動作を削除することもできる。別の態様においては、方法900と910、またはこれらの方法の変形を組み合わせることができる。方法900および910において行われる動作は、照明センサネットワーク160内の1つまたは複数の構成要素またはモジュールによって行われうる。
【００８０】
図9Aに、例示的態様による、ネットワーク（例えば、照明ネットワーク100）内の照明ノード105においてセンサデータを処理するための方法900を記述する。方法900は動作901〜905を含む。動作901で、管理API340を用いてサービス・データ・プラットフォーム140から、照明ノード105においてセンサアプリケーション220をアップロードするよう求める第1の要求を受け取る。動作902で、管理API340を用いてサービス・データ・プラットフォーム140から、センサアプリケーション220を実行するよう求める第2の要求を受け取る。動作903で、センサデータAPI330を用いてセンサデバイス（例えば、センサ416）から、高帯域幅データを表すセンサデータを収集する。動作904で、センサアプリケーション220を実行して、センサデータに基づいて照明ノード105において、低帯域幅データを表す解析データを生成する。動作905で、生成された解析データを、アプリケーションAPI350を用いてサービス・データ・プラットフォーム140へ送信する。
【００８１】
他の例示的態様において、照明ノード105においてセンサデータを処理するための方法900は、管理API340を用いてサービス・データ・プラットフォーム140から、センサアプリケーションに対する管理機能を果たすよう求める追加要求を受け取る動作を含む。
【００８２】
例示的態様において、センサデータは、センサ生データおよびセンサ・イベント・データのうちの少なくとも1つを含む。別の態様において、センサデータは、ネットワーク内のデバイスによるフィルタリングも、集約も、それ以外の変更もなされたことがない収集されたセンサデータを表す。いくつかの態様において、センサアプリケーション220はスクリプトを表す。別の態様において、照明ノード105はセンサノードを表す。いくつかの態様において、センサアプリケーション220は、照明ノード105において収集された未変更センサデータのノードベースの処理を行うために照明ノード105上で走るサードパーティーによって開発されたソフトウェアを表す。
【００８３】
他の態様において、管理API340を用いてサービス・データ・プラットフォーム140から、照明ノード105においてセンサアプリケーション220をアップロードするよう求める第1の要求を受け取る動作は、センサアプリケーション220を含むファイルを受け取り、ファイルから照明ノード105上へセンサアプリケーション220をインストールする動作を含む。例示的態様において、センサデータAPI330を用いてセンサデータを収集する動作は、センサデータAPI330を用いてセンサデバイスに、要求されたセンサデータを含む、センサデバイス（例えば、センサ416）からの応答を受け取るセンサデータを要求する動作を含む。他の態様において、センサデータAPI330を用いてセンサデータを収集する動作は、収集されるセンサデータの量が大きすぎてネットワーク（例えば、WAN130）上でほぼリアルタイムにサービス・データ・プラットフォーム140へ効率的に転送することができないようなデータ転送レートでセンサデータを収集する動作を含む。別の態様においては、センサデータAPIを用いてセンサデバイスからを収集する動作は、照明ノードに位置するかまたはリモート照明ノードに位置するセンサデバイス（例えば、416）からセンサデータを収集する動作を含む。
【００８４】
別の態様において、センサアプリケーション220を実行して、センサデータに基づいて照明ノード105において解析データを生成する動作は、生成される解析データの量がネットワーク（例えば、WAN130）上でほぼリアルタイムにサービス・データ・プラットフォーム140へ転送可能であるようなデータ転送レートで、未変更センサデータに基づいて解析データを生成する動作を含む。様々な態様において、センサアプリケーション220を実行して、照明ノード105において受け取られたセンサデータに基づいて照明ノード105において解析データを生成する動作は、低帯域幅データを生成するために未変更センサデータに基づいて解析データを生成する動作を含む。
【００８５】
様々な態様において、センサアプリケーション220を実行して、センサデータに基づいて照明ノードにおいて解析データを生成する動作は、コンテナ320内のセンサアプリケーション220を実行して、センサアプリケーション220によって利用されるリソースを制限し、かつセンサアプリケーション220のためのセキュアな動作環境を提供する動作を含む。例示的態様において、センサアプリケーション220を実行して、センサデータに基づいて照明ノード105において解析データを生成する動作は、情報を位置特定し、分類し、かつ相関させるアルゴリズムを適用することによって解析データを生成する動作を含む。別の態様において、センサアプリケーション220を実行して、センサデータに基づいて照明ノード105において解析データを生成する動作は、照明ノード105において実行されている他のソフトウェアに影響を及ぼさずにセンサアプリケーション220を実行する動作を含む。別の態様において、センサアプリケーション220を実行して、センサデータに基づいて照明ノード105において解析データを生成する動作は、照明ノード105の通常動作に影響を及ぼさずに解析データを生成する動作をさらに含む。
【００８６】
図9Bに、例示的態様による、ネットワーク（例えば、照明センサネットワーク160）内の照明ノード105にソフトウェアを配置する方法910を記述する。方法910は動作911〜914を含む。動作911で、サービス・データ・プラットフォーム140が、サービス・データ・プラットフォーム140によって提供されたマネジメントアプリケーションAPI142を用いてサードパーティーによってアップロードされたソフトウェアを受け取る。動作912で、アップロードされたソフトウェアを配布するために照明ノード105のグループを識別する。動作913で、アップロードされたソフトウェアが、識別された照明ノード105のグループへの配置に関して安全であると判定する。動作914で、管理API340を用いて、アップロードされたソフトウェアを識別された照明ノード105のグループに配布する。
【００８７】
様々な態様において、照明ノード105にソフトウェアを配置する方法910は、管理API340を用いて、管理機能を求める要求を提供することによって、識別された照明ノード105のグループにインストールされたソフトウェアの実行をマネジメントする動作を含む。
【００８８】
他の態様において、照明ノード105にソフトウェアを配置する方法910は、アプリケーションAPI350を用いて、識別された照明ノード105のグループから、識別された照明ノード105のグループによって生成されたノード処理済センサデータを受け取る動作、および識別された照明ノード105のグループからのノード処理済センサデータを、サービス・データ・プラットフォーム140に位置する検出（例えば、291）に記憶する動作を含む。別の態様において、照明ノード105にソフトウェアを配置する方法は、集約データAPI141を用いて、許可されたサードパーティーによって要求された記憶されたノード処理済センサデータへのアクセスを提供する動作を含む。いくつかの態様において、ソフトウェアはセンサアプリケーション220を表す。別の態様において、センサアプリケーション220はスクリプト言語で書かれている。
【００８９】
図10は、上述のデバイスのうちのいずれか1つまたは複数にインストールされうる、ソフトウェアアーキテクチャ1002を示すブロック図1000である。図10は、ソフトウェアアーキテクチャの単なる非限定的な例にすぎず、本明細書に記載される機能を円滑に行わせるために多くの他のアーキテクチャが実施されうることが理解されるであろう。ソフトウェア1002は、プロセッサ1110、メモリ1130、および入出力構成要素1150を含む、図11のマシン1100などのハードウェア上で実行することができる。図10の例示的アーキテクチャにおいて、ソフトウェア1002は、各層が特定の機能を提供しうる層のスタックとして概念化することができる。例えば、ソフトウェア1002は、オペレーティングシステム1004、ライブラリ1006、フレームワーク1008、およびアプリケーション1010などの層を含むことができる。動作に際して、アプリケーション1010は、ソフトウェアスタックを介してアプリケーション・プログラミング・インターフェース（API）コール1012を呼び出し、APIコール1012に応答してメッセージ1014を受け取ることができる。
【００９０】
オペレーティングシステム1004は、ハードウェアリソースをマネジメントし、共通サービスを提供することができる。オペレーティングシステム1004は、例えば、カーネル1020、サービス1022、およびドライバ1024を含むことができる。カーネル1020はハードウェアとその他のソフトウェア層との間の抽象化層として働くことができる。例えば、カーネル1020は、メモリマネジメント、プロセッサマネジメント（例えばスケジューリング）、構成要素マネジメント、ネットワーキング、セキュリティ設定などの役割を担うことができる。サービス1022は、その他のソフトウェア層のための他の共通サービスを提供することができる。ドライバ1024は、基礎となるハードウェアを制御し、またはハードウェアとインターフェースする役割を担うことができる。例えば、ドライバ1024は、ディスプレイドライバ、カメラドライバ、Bluetooth（登録商標）ドライバ、フラッシュ・メモリ・ドライバ、シリアル通信ドライバ（例えば、ユニバーサル・シリアル・バス（USB）ドライバ）、Wi-Fi（登録商標）ドライバ、オーディオドライバ、電源マネジメントドライバなどを含むことができる。
【００９１】
ライブラリ1006は、アプリケーション1010によって利用されうるローレベルの共通インフラストラクチャを提供することができる。ライブラリ1006は、メモリ割り振り機能、ストリング操作機能、数学機能などの機能を提供することのできるシステム1030ライブラリ（例えば、C標準ライブラリ）を含むことができる。加えて、ライブラリ1006は、メディアライブラリ（例えば、MPREG4、H.264、MP3、AAC、AMR、JPG、PNGなどの、様々なメディアフォーマットの提示および操作をサポートするためのライブラリ）、グラフィックスライブラリ（例えば、ディスプレイ上のグラフィックコンテンツにおいて2Dおよび3Dをレンダリングするのに用いられうるOpenGLフレームワーク）、データベースライブラリ（例えば、様々なリレーショナルデータベース機能を提供することができるSQLite）、ウェブライブラリ（例えば、ウェブブラウジング機能を提供することができるWeb Kit）などの、APIライブラリ1032を含むこともできる。またライブラリ1006は、アプリケーション1010に多くの他のAPIを提供する多種多様なその他のライブラリ1034も含むことができる。
【００９２】
フレームワーク1008は、アプリケーション1010によって利用されうるハイレベルの共通インフラストラクチャを提供することができる。例えば、フレームワーク1008は、様々なグラフィック・ユーザ・インターフェース（GUI）機能、ハイレベルリソースマネジメント、ハイレベル位置サービスなどを提供することができる。フレームワーク1008は、アプリケーション1010によって利用されうる広範囲の他のAPIを提供することができ、その一部は、特定のオペレーティングシステムまたはプラットフォームに固有のものとすることができる。
【００９３】
アプリケーション1010は、ブラウザアプリケーション1054、解析アプリケーション1056、センサアプリケーション1058、およびサードパーティーアプリケーション1066などの幅広い種類の他のアプリケーションを含む。図11は、機械可読媒体（例えば、機械可読記憶媒体）から命令を読み出し、本明細書で論じる方法のうちのいずれか1つまたは複数を実行することができる、いくつかの例示的態様による、マシン1100の構成要素を示すブロック図である。具体的には、図11には、その内部で、マシン1100に本明細書で論じる方法のうちのいずれか1つまたは複数を実行させるための命令1116（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、app、または他の実行可能コード）を実行することができる、コンピュータシステムの例示的形態のマシン1100の図が示されている。代替の態様においては、マシン1100は独立型デバイスとして動作し、または他のマシンに結合する（例えば、ネットワーク接続する）こともできる。ネットワーク接続された配置において、マシン1100は、サーバ・クライアント・ネットワーク環境におけるサーバマシンもしくはクライアントマシンとして、またはピア・ツー・ピア（もしくは分散）ネットワーク環境におけるピアマシンとして動作することもできる。マシン1100には、それだけに限らないが、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（PC）、タブレットコンピュータ、ラップトップコンピュータ、ノートブック、セット・トップ・ボックス（STB）、携帯情報端末（PDA）、娯楽メディアシステム、セルラ電話機、スマートフォン、モバイル機器、ウェアラブルデバイス（例えば、スマートウォッチ）、スマート・ホーム・デバイス（例えば、スマート家電）、他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、またはマシン1100によって行われるべき動作を指定する命令1116を、順次に、またはそれ以外の方法で実行することのできる任意のマシン、が含まれうる。さらに、1台のマシン1100だけが示されているが、「マシン」という用語は、本明細書で論じる方法のうちのいずれか1つまたは複数を実行するために命令1116を個々に、または連携して実行するマシン1100の集合体を含むものとしても理解されるものとする。
【００９４】
マシン1100は、プロセッサ1110、メモリ1130、および入出力構成要素1150を含むことができ、これらは、バス1102を介して相互に通信するように構成することができる。一例示的態様において、プロセッサ1110（例えば、中央処理装置（CPU）、縮小命令セットコンピューティング（RISC）プロセッサ、複雑命令セットコンピューティング（CISC）プロセッサ、グラフィックス処理装置（GPU）、ディジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）、無線周波数集積回路（RFIC）、別のプロセッサ、またはこれらの任意の適切な組み合わせ）は、例えば、命令1116を実行することのできるプロセッサ1112およびプロセッサ1114を含むことができる。「プロセッサ」という用語は、命令を同時に実行することのできる2つ以上の独立したプロセッサ（「コア」とも呼ばれる）を含むことのできるマルチコアプロセッサを含むものであることが意図されている。図11には複数のプロセッサが示されているが、マシン1100は単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ（例えば、マルチコアプロセス）、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含むことができる。
【００９５】
メモリ1130は、バス1102を介してプロセッサ1110から利用可能なメインメモリ1132、スタティックメモリ1134、および記憶装置1136を含むことができる。記憶装置1136は、本明細書に記載される方法または機能のうちのいずれか1つまたは複数を具現化する命令1116が記憶された機械可読媒体1138を含むことができる。また命令1116は、マシン1100による命令1116の実行時に、全部または少なくとも一部を、メインメモリ1132内、スタティックメモリ1134内、プロセッサ1110のうちの少なくとも1つの内部（例えば、プロセッサのキャッシュメモリ内）、またはそれらの任意の適切な組み合わせに置くこともできる。したがって、メインメモリ1132、スタティックメモリ1134、およびプロセッサ1110を機械可読媒体1138とみなすことができる。
【００９６】
本明細書で用いる場合、「メモリ」という用語は、データを一時的に、または永続的に記憶することができる機械可読媒体1138を指し、それだけに限らないが、ランダム・アクセス・メモリ（RAM）、読取り専用メモリ（ROM）、バッファメモリ、フラッシュメモリ、およびキャッシュメモリを含むものと理解することができる。機械可読媒体1138は、例示的態様において、単一の媒体であるものとして示されているが、「機械可読記憶媒体」という用語は、命令1116を記憶することができる単一の媒体または複数の媒体（例えば、集中または分散データベースや、関連付けられたキャッシュおよびサーバ）を含むものと理解すべきである。また「機械可読媒体」という用語は、命令が、マシン1100の1つまたは複数のプロセッサ（例えば、プロセッサ1110）によって実行されると、マシン1100に本明細書に記載される方法のうちのいずれか1つまたは複数を実行させるように、マシン（例えば、マシン1100）が実行するための命令（例えば、命令1116）を記憶することができる任意の媒体、または複数の媒体の組み合わせを含むものと理解されるものとする。したがって、「機械可読媒体」とは、単一の記憶装置またはデバイス、ならびに複数の記憶装置またはデバイスを含む「クラウドベースの」記憶システムまたは記憶ネットワークを指す。「機械可読媒体」という用語は、それだけに限らないが、固体メモリ（例えば、フラッシュメモリ）の形態の1つもしくは複数のデータリポジトリ、光媒体、磁気媒体、他の不揮発性メモリ（例えば、消去可能プログラム可能読取り専用メモリ（EPROM））、またはそれらの任意の適切な組み合わせを含むものとしかるべく理解されるものとする。「機械可読媒体」という用語は、特に、非法定の信号自体を除外するものである。
【００９７】
入出力構成要素1150は、入力を受け取り、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定を取り込むなどのための多種多様な構成要素を含むことができる。入出力構成要素1150は図11に示されていない多くの他の構成要素を含みうることが理解されるであろう。入出力構成要素1150は、単に以下の考察を簡単にするために機能に従ってグループ化されており、このグループ化はいかなる意味でも限定的ではない。様々な例示的態様において、入出力構成要素1150は出力構成要素1152および入力構成要素1154を含むことができる。出力構成要素1152は、視覚構成要素（例えば、プラズマ・ディスプレイ・パネル（PDP）、発光ダイオード（LED）ディスプレイ、液晶ディスプレイ（LCD）、プロジェクタ、ブラウン管（CRT）などのディスプレイ）、音響構成要素（例えば、スピーカ）、触覚構成要素（例えば、振動モータ）、他の信号発生器などを含むことができる。入力構成要素1154は、英数字入力構成要素（例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、光学式キーボード、または他の英数字入力構成要素）、ポイントベースの入力構成要素（例えば、マウス、タッチパッド、トラックボール、ジョイスティック、動きセンサ、または他のポインティング器具）、触覚入力構成要素（例えば、物理ボタン、タッチもしくはタッチジェスチャの位置および力を提供するタッチスクリーン、または他の触覚入力構成要素）、聴覚入力構成要素（例えば、マイクロフォン）などを含むことができる。
【００９８】
別の例示的態様において、入出力構成要素1150は、幅広い他の構成要素の中でも特に、生体測定構成要素1156、動き構成要素1158、環境構成要素1160、または位置構成要素1162を含むことができる。例えば、生体測定構成要素1156は、表情（例えば、手の表情、顔の表情、声の表情、身振り、または視線）を検知し、生体信号（例えば、血圧、心拍数、体温、発汗、または脳波）を測定し、人を識別する（例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波ベースの識別）などのための構成要素を含むことができる。動き構成要素1158は、加速度センサ構成要素（例えば、加速度計）、重力センサ構成要素、回転センサ構成要素（例えば、ジャイロスコープ）などを含むことができる。環境構成要素1160は、例えば、照明センサ構成要素（例えば、光度計）、温度センサ構成要素（例えば、周囲温度を検知する1つもしくは複数の温度計）、湿度センサ構成要素、圧力センサ構成要素（例えば、気圧計）、音響センサ構成要素（例えば、暗騒音を検知する1つもしくは複数のマイクロフォン）、近接センサ構成要素（例えば、近くの物体を検知する赤外線センサ）、ガスセンサ（例えば、安全のために危険なガスの濃度を検知し、もしくは大気中の汚染物質を測定するガス検知センサ）、または周囲の物理環境に対応する指示、測定、もしくは信号を提供することのできる他の構成要素を含むことができる。位置構成要素1162は、位置センサ構成要素（例えば、全地球測位システム（GPS）受信機構成要素）、高度センサ構成要素（例えば、高度計や、高度を導出するための気圧を検知する気圧計）、向きセンサ構成要素（例えば、磁力計）などを含むことができる。
【００９９】
通信は多種多様な技術を用いて実施することができる。入出力構成要素1150は、マシン1100を、それぞれカップリング1182およびカップリング1172を介してネットワーク130またはデバイス1170に結合するように動作する通信構成要素1164を含むことができる。例えば、通信構成要素1164は、ネットワーク130とインターフェースするためのネットワークインターフェース構成要素または他の適切なデバイスを含むことができる。別の例において、通信構成要素1164は、有線通信構成要素、無線通信構成要素、セルラ通信構成要素、近距離無線通信（NFC）構成要素、Bluetooth（登録商標）構成要素（例えば、Bluetooth（登録商標） Low Energy）、Wi-Fi（登録商標）構成要素、および他のモダリティによって通信を提供する他の通信構成要素を含むことができる。デバイス1170は、別のマシンまたは多種多様な周辺機器のうちのいずれか（例えば、ユニバーサル・シリアル・バス（USB）を介して結合された周辺機器）とすることができる。
【０１００】
さらに、通信構成要素1164は、識別子を検知し、または識別子を検知するように動作する構成要素を含むことができる。例えば、通信構成要素1164は、無線周波数識別（RFID）タグリーダ構成要素、NFCスマートタグ検知構成要素、光学式読取装置構成要素（例えば、統一商品コード（Universal Product Code（UPC））バーコードなどの一次元バーコード、Quick Response（QR）コード、Aztecコード、Data Matrix、Dataglyph、MaxiCode、PDF417、Ultra Code、UCC RSS-2Dバーコード、および他の光学式コードなどの多次元バーコードを検知する光センサ）、または音響検知構成要素（例えば、タグ付けオーディオ信号を識別するマイクロフォン）を含むことができる。加えて、例えば、インターネット・プロトコル（IP）・ジオロケーションによる位置特定、Wi-Fi（登録商標）信号三角測量による位置特定、特定の位置を指示しうるNFCビーコン信号の検出による位置特定などのように、通信構成要素1164を介して様々な情報を導出することもできる。
【０１０１】
様々な例示的態様においては、ネットワーク130の1つまたは複数の部分を、アドホックネットワーク、イントラネット、エクストラネット、仮想私設網（VPN）、ローカル・エリア・ネットワーク（LAN）、無線LAN（WLAN）、広域ネットワーク（WAN）、無線WAN（WWAN）、メトロポリタン・エリア・ネットワーク（MAN）、インターネット、インターネットの一部分、公衆交換電話網（PSTN）の一部分、旧来の電話サービス（POTS）網、セルラ電話網、無線ネットワーク、Wi-Fi（登録商標）ネットワーク、別の種類のネットワーク、または2つ以上のそうしたネットワークの組み合わせとすることができる。例えば、ネットワーク130またはネットワーク130の一部分は、無線もしくはセルラネットワークを含むことができ、カップリング1182は符号分割多元接続（CDMA）接続、モバイル通信のためのグローバルシステム（GSM）接続、または他の種類のセルラもしくは無線カップリングとすることができる。本例では、カップリング1182は、1xRTT（Single Carrier Radio Transmission Technology）、EVDO（Evolution-Data Optimized）技術、GPRS（General Packet Radio Service）技術、EDGE（Enhanced Data rates for GSM Evolution）技術、3Gネットワーク、第4世代無線（4G）ネットワークを含む3GPP（third Generation Partnership Project）、UMTS（Universal Mobile Telecommunications System）、HSPA（High Speed Packet Access）、WiMAX（Worldwide Interoperability for Microwave Access）、LTE（Long Term Evolution）規格、様々な規格設定団体によって定義された他の規格、他の長距離プロトコル、または他のデータ転送技術などの、様々な種類のデータ転送技術のうちのいずれかを実施することができる。
【０１０２】
命令1116は、ネットワーク・インターフェース・デバイス（例えば、通信構成要素1164に含まれるネットワークインターフェース構成要素）を介する伝送媒体を用い、いくつかの周知の転送プロトコルのいずれか一つ（例えば、ハイパーテキスト転送プロトコル（HTTP））を利用して、ネットワーク130上で送信し、または受信することができる。同様に、命令1116は、デバイス1170へのカップリング1172（例えば、ピア・ツー・ピア・カップリング）を介して伝送媒体を用いて送信し、または受信することもできる。「伝送媒体」という用語は、マシン1100が実行するための命令1116を記憶し、符号化し、または搬送することのできる任意の無形の媒体を含むものと理解されるものであり、そうしたソフトウェアの通信を円滑化するためのディジタル通信信号またはアナログ通信信号または他の無形の媒体を含む。
【０１０３】
さらに、機械可読媒体1138は、伝搬信号を具現化するものではないという点において非一時的である（言い換えると、いかなる一時信号も有しない）。しかし、機械可読媒体1138を「非一時的」と呼ぶことを、本媒体が移動不能であることを意味するものであると解釈すべきではない。本媒体は、ある物理位置から別の物理位置へ搬送可能であるものとみなすべきである。加えて、機械可読媒体1138は有形であるため、本媒体は機械可読デバイスであるとみなすこともできる。
【０１０４】
本明細書全体を通して、複数のインスタンスは単一のインスタンスとして記載される構成要素、動作、または構造を実施することができる。1つまたは複数の方法の個々の動作が別々の動作として図示され、記述されているが、個々の動作の1つまたは複数が同時に行われる場合もあり、これらの動作が図示の順序で行われる必要はない。例示的構成において別々の構成要素として提示されている構造および機能は、組み合わされた構造または構成要素として実施することもできる。同様に、単一の構成要素として提示されている構造および機能を別々の構成要素として実施することもできる。上記その他の変形、改変、追加、および改善は、本発明の主題の範囲内に含まれる。
【０１０５】
本発明の主題の概要を特定の例示的態様に関連して説明したが、本開示の態様の幅広い範囲を逸脱することなく、これらの態様に様々な改変および変更を加えることができる。本発明の主題のそうした態様を本明細書では、個々に、またはまとめて、「発明」という用語で呼ぶ場合があり、これは単に便宜的にそう呼ぶにすぎず、複数の発明が実際に開示されている場合に、本出願の範囲をいかなる単一の開示や発明概念にも自発的に限定するためのものではない。
【０１０６】
本明細書で例示した態様は、当業者が開示された教示を実施することを可能にするのに十分な詳細さで記載されている。本開示の範囲を逸脱することなく構造的、論理的な置換および変更が加えられるように、他の態様を用い、これらの態様から導出することもできる。したがって、以上の詳細な説明は、限定的な意味として理解すべきではなく、様々な態様の範囲は、添付の特許請求の範囲がその権利を付与されるべきである十分な範囲の均等物を伴って、それらの特許請求の範囲によってのみ定義されるものである。
【０１０７】
本明細書で用いる場合、「または（もしくは）」という用語は、包括的意味または排他的意味として解釈することができる。さらに、単一のインスタンスとして本明細書に記載されているリソース、動作、または構造について、複数のインスタンスが提供される場合もある。加えて、様々なリソース、動作、モジュール、エンジン、およびデータストアの間の境界は若干恣意的であり、特定の動作が特定の例示的構成のコンテキストにおいて示されている。機能の他の割り振りも想定され、本開示の様々な態様の範囲内に含まれうる。一般に、例示的構成において別々のリソースとして提示されている構造および機能は、組み合わされた構造またはリソースとして実施することもできる。同様に、単一のリソースとして提示されている構造および機能も別々のリソースとして実施することができる。上記その他の変形、改変、追加、および改善は、添付の特許請求の範囲によって表される本開示の態様の範囲内に含まれるものである。したがって、本明細書および図面は、限定的な意味ではなく例示とみなすべきである。
【図１Ａ】
2017517081.tif 000004
【図１Ｂ】
2017517081.tif 000005
【図２Ａ】
2017517081.tif 000006
【図２Ｂ】
2017517081.tif 000007
【図３Ａ】
2017517081.tif 000008
【図３Ｂ】
2017517081.tif 000009
【図４Ａ】
2017517081.tif 000010
【図４Ｂ】
2017517081.tif 000011
【図４Ｃ】
2017517081.tif 000012
【図５Ａ】
2017517081.tif 000013
【図５Ｂ】
2017517081.tif 000014
【図５Ｃ】
2017517081.tif 000015
【図６】
2017517081.tif 000016
【図７】
2017517081.tif 000017
【図８】
2017517081.tif 000018
【図９Ａ】
2017517081.tif 000019
【図９Ｂ】
2017517081.tif 000020
【図１０】
2017517081.tif 000021
【図１１】
2017517081.tif 000022
【国際調査報告】
2017517081.tif 000023
2017517081.tif 000024