(57)【要約】本発明は、物理的な侵入検出及び警報監視を管理するネットワーク化されたセンサシステムを提供するものであり、前記システムは、サーバ装置の上階層を含み、前記サーバ装置は、プロセッサ装置とプロセッサ装置と通信するメモリを含み、上階層サーバ装置と通信する中間階層、及びノード機能を提供するために、ルーチンを実行するアプリケーション層を含む少なくともいくつかの機能ノードを持つ完全に機能するノードを含む装置の下階層、及び装置の下階層を管理する装置を含み、前記装置は少なくともいくつかの機能ノードの各々においてアプリケーション層を制御するために状態機械を実行するプログラムマネ‐ジャを例示化する装置である。【選択図】図２
2017510182.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク化されたセンサシステムであって、前記システムは、
サーバ装置の上階層を含み、
前記サーバ装置は、プロセッサ装置及びプロセッサ装置と通信するメモリを含み、
一以上の上階層サーバ装置と通信するゲートウェイ装置の中間階層、及び
ノードセンサ機能、及び装置の下階層の少なくともいくつかの機能ノードにおいて、アプリケーション層を管理するためのアプリケーション層マネージャを提供するために、ルーチンを実行するアプリケーション層を含む、少なくともいくつかの完全に機能するセンサノードを持つ完全に機能するセンサノードを含む装置の下階層を含む、前記システム。    
【請求項２】
請求項１のネットワーク化されたシステムであって、下階層の完全に機能するノードは無線装置及び物理的な侵入検出及び警報監視システムのためのセンサである制約された無線ノード又はセンサエンドノードである、前記システム。
【請求項３】
請求項１のネットワーク化されたシステムであって、前記ゲートウェイは、機能ノードが、ワイヤレスネットワーク内の他のノードに無線接続ポイントを提供するアクセスポイントに物理的に取り付けられている、アクセスポイントを備えている、前記システム。
【請求項４】
請求項１のネットワーク化されたシステムであって、前記アプリケーション層マネージャは連携して実行する複数組の機能を含む状態機械を含み、前記機能は、前記状態機械における状態を変化させるために、個別に削除または置換もしくは添加することができる、前記システム。
【請求項５】
請求項１のネットワーク化されたシステムであって、前記アプリケーション層マネージャは、装置の起動後に又は装置を再起動することなく個々の機能をロードし、そして実行を可能にするエッジデバイスオペレーティングシステムを用いる、前記システム。
【請求項６】
請求項１のネットワーク化されたシステムであって、前記アプリケーション層マネージャは、状態関数からの要求を受領し、そしてこれに対して現在動作している機能の目的機能への「パス・オフ」（"pass-offs"）を行う、前記システム。
【請求項７】
請求項６のネットワーク化されたシステムであって、前記アプリケーション層マネージャは、状態関数のための中央記述子を記憶する遷移表にアクセスする、前記システム。
【請求項８】
請求項１のネットワーク化されたシステムであって、前記アプリケーション層マネージャはファームウエアであり、下階層装置中の他のファームウエアモジュールから別個である様に分離されている、前記システム。
【請求項９】
ネットワーク化されたセンサシステムを管理する方法であって、前記方法は、
ネットワーク化されたシステムを、サーバ装置の上階層と、上階層サーバと通信するゲイトウエイ装置の中間階層と、及びセンサノード機能を提供するためにルーチンを実行するアプリケーション層を含む、少なくともいくつかの機能するノードを持つ完全に機能するノードであるセンサ装置の下階層に区分し、及び少なくともいくつかの機能ノードの各々においてアプリケーション層を制御するために状態機械を実行する、装置により実行されたプログラムマネージャを介して装置の下階層を管理することを含む、前記方法。
【請求項１０】
請求項９の方法であって、前記下階層の完全に機能するノードは無線装置及び
物理的な侵入検出及び警報監視システムのためのセンサである制約された無線ノード又はエンドノードである、前記方法。
【請求項１１】
請求項９の方法であって、前記状態機械は連携して実行する複数組の機能を含み、前記状態機械における状態を変化させるために、前記機能は個別に削除、置換もしくは添加することができる、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書の記述は、商業や住宅地に設置されているセキュリティ、侵入監視及び警報システムを用いたセンサ ネットワークのようなセンサ ネットワークの動作に関するものである。
【０００２】
本出願は、35 U.S.C. §119（e）の下に、発明の名称を「ワイヤレスセンサネットワーク」とする、2014年4月2日に出願された米国仮特許出願61/973,962及び発明の名称を「ワイヤレスセンサネットワーク」とする、2014年2月28日に出願された米国仮特許出願61/946,054及び発明の名称を「ワイヤレスセンサネットワーク」とする、2014年8月20日に出願された特許出願14/463,738の優先権を主張するものであり、その全ての内容は参照により本明細書に組み入れられる。
【背景技術】
【０００３】
企業や住宅所有者は、その施設内のアラーム状態を検出し、監視ステーション、またはセキュリティシステムの許可されたユーザにその状態について信号を送るためのセキュリティシステムを持っていることが一般的である。
【０００４】
セキュリティシステムは、多くの場合、電気的に又は無線で様々なセンサに接続された侵入検出パネルを含む。これらのセンサの種類には、典型的には、動き検出器、カメラ、及び近接センサ（ドアや窓が開かれているかどうかを決定するために使用される）を含む。典型的には、そのようなシステムは、監視されているある特定の状態が変更されたかまたは確認されない状態になっていることを示すために、これらの1以上のセンサから非常に単純な信号（電気的にオープンまたはクローズ）を受信する。
【発明の概要】
【０００５】
しかし、このようなネットワークは、一般的にコンピュータ機器の間をつなぐ有線および無線リンクの組み合わせを用いて、無線リンクは通常ハブ/ゲートウェイ接続へのエンドノード装置に使用される。事実、ネットワークに関わるすべての装置は、いくつかの簡単なソフトウェアの形式を使用するが、エンドノードとハブ/ゲートウェイでは、このソフトウェアは形式が単純であり、データ削減と意思決定において殆ど高度な機能を用いず、非常に静的であり、これはソフトウェアは一般的に頻繁には変化しないことを意味する。しかし、これらのより低レベルの装置上のソフトウェアが更新される場合、その更新はしばしばではないが、従来のブートローディング（boot-loading）方法が用いられる。
【０００６】
しかし、これらのブートローディング方法は時間がかかり、エネルギーを消費し、更新された装置の再起動が必要になりセキュリティ/アラームの問題を提起することになる。
【０００７】
一の実施態様によれば、ネットワーク化されたセンサシステムは、サーバ装置の上階層を含み、サーバ装置はプロセッサ装置とプロセッサ装置と通信するメモリを含む。このシステムはまた、一以上の上階層サーバ装置および完全に機能するセンサノードを含む下階層の装置と通信するゲートウェイ装置の中間階層を含み、完全に機能するセンサノードの少なくともいくつかはアプリケーション層を含み、そして前記アプリケーション層は、ノードセンサ機能と、下階層の少なくともいくつかの機能ノードにおいて、アプリケーション層を管理するためのアプリケーション層マネージャを提供するためにルーチンを実行する。
【０００８】
これらの態様においてはまた、方法、コンピュータプログラム製品、およびシステムを含むことができる。上記の態様のうちの1以上から1以上の利点が提供されるであろう。
ネットワークは、有線および無線リンクの組み合わせを使用することができ、好ましくは各階層の間は有線でリンクされているのが望ましく、特に中間階層及び下階層間（例えば、エンドノード装置からハブ/ゲートウェイへ）の接続は無線リンクが望ましい。ネットワークに関与する装置は、データ削減と意思決定のような高度な機能領域を含むことができ、そして装置の機能は動的に変わり得るものであり、この意味するところは、ソフトウエアを従来のブートローディング法を用いることなく更新することができることを意味し、それによって、時間を要し、エネルギーを消費し、そして更新された装置が必要とする再起動が不要となり、そして、そのようなセンサおよび他のエンドノード装置が更新されるときの、潜在的なセキュリティ/アラームの問題を回避することが出来る。これによって、データの削減と意思決定への高度な機能を有する、そのようなセンサーやその他のエンドノードデバイスの管理が可能となる。
【０００９】
本発明の1以上の実施形態の詳細は、添付の図面及び以下の説明に記載されている。本発明の他の特徴、目的、及び利点は、明細書および図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【００１０】
【図１】図1は、代表的なネットワーク化されたセキュリティシステムの概略図である。
【図２】図2は、一般的なアプリケーション層マネージャのブロック図である。
【図３】図3は、アプリケーション層マネージャ上のプロセスの一例を示すブロック図である。
【図４】図4は、アプリケーション層マネージャ上の典型的な状態遷移を示す図である。
【図５】図5及び図6は、フローチャートである。
【図６】図5及び図6は、フローチャートである。
【図７】図7は、あるネットワーク化されたセキュリティシステムの例の構成部分を示すブロック図である。
【発明を実施するための形態】
【００１１】
本明細書においては、セキュリティ/侵入及び警報システムを含み、これに
限定されない、様々な状況で使用される、ネットワークの特徴の例について記載される。セキュリティシステムの例は、電気的に又は無線で各種センサに接続された侵入検出パネルを含むことができる。これらのセンサの種類は、動き検出器、カメラ、近接センサ（例えば、ドアや窓が開かれているかどうかを決定するために使用される）、また他の種類のセンサ）を含むことができる。
【００１２】
典型的に、そのようなシステムは、監視されているある特定の状態が変更されまたは確認されない状態になっていることを示すために、1以上のこれらのセンサからの比較的単純な信号（電気的にオープンまたはクローズ）を受信する。
【００１３】
例えば、典型的な侵入監視システムは、建物内の入り口ドアを監視するために設置することができる。ドアが固定されたとき、近接センサは磁気接触を検知し、電気的に閉回路を生成する。ドアが開いているときには、近接センサは回路を開き、パネルにアラーム状態（例えば、開いた入口ドア）が発生したことを示す信号を送る。データ収集システムは、家庭用安全監視などの様ないくつかの用途において、より一般的に使われる様になってきている。データ収集システムは、ワイヤレスセンサネットワークとワイヤレス装置を使用し、リモートサーバベースの監視およびレポート生成を含むことができる。
【００１４】
以下に、より詳細に記載されるように、ワイヤレスセンサネットワークは、一般的に、コンピュータ装置の間で有線および無線リンクの組み合わせを使用し、無線リンクは通常最低レベルの接続（例えば、エンドノード装置からハブ/ゲートウェイの接続）に使用される。
【００１５】
あるネットワークの例では、ネットワークのエッジ（ワイヤレスで接続された）階層は、特定の機能を持つ、資源制約型の装置で構成されている。これらの装置は、小から中程度の処理能力とメモリを有することができ、バッテリにより駆動されても良く、したがって、その多くの時間をスリープモードに置くことでエネルギーを節約することが必要である。典型的なモデルでは、エッジデバイスが、一般的に、単一のワイヤレスネットワークを形成するものであり、そのネットワークでは各エンドノードはハブアンドスポークスタイル アーキテクチャ（hub-and-spoke-style architecture）で親ノードと直接通信する。親ノードは、例えば、ゲートウェイまたはサブコーディネータ上のアクセスポイントとすることができ、それは、さらにアクセスポイント又は他のサブコーディネータに接続される。図1を参照すると、ワイヤレスセンサネットワーク（WSN）のための典型的な（グローバル）分散型ネットワーク10トポロジが示される。図1では、分散型ネットワーク10は、論理的に、一組の階層または階層レベル12a〜12cに分割される。ネットワークの上階層または階層レベル12aには、サーバおよび/または仮想サーバ14が配置されており、これらのサーバは、インターネット・プロトコルの様な十分に確立されたネットワーキング技術又はインターネットを全く用いず又はその一部を用いるプライベートネットワークであっても良いが、それらを用いて相互にネットワーク接続されている「クラウドコンピューティング」パラダイムを実行する。それらのサーバ14上で実行されるアプリケーションは、ウエッブ、インターネット・ネットワーク、XML/ SOAP、RESTful  Webサービス、およびHTTPやATOMなどの他のアプリケーション階層技術のような種々のプロトコルを用いて通信する。
【００１６】
分散型ネットワーク10は、装置（ノード）間に直接リンクを持ち、これについては以下で説明する。分散型ネットワーク10は、個々の建物や構造物の中央、好都合な場所に位置するゲートウェイ16を含む、ここで中間階層と呼ばれる、第２の論理的に分割された階層または階層レベル12bを含む。これらのゲートウェイ16は、これらのサーバがスタンドアロン専用サーバおよび/またはウエッブプログラミング技術を使用してクラウドアプリケーションを実行するクラウドベースのサーバーであるかを問わず、上階層のサーバ14と通信する。
【００１７】
中間階層ゲートウェイ16はまた、ローカルエリアネットワーク17a（例えば、イーサネット（登録商標）（Ethernet）または802.11）およびセルラーネットワークインターフェース17bの両方と共に表示されている。分散型ネットワークトポロジは、また、完全に機能するセンサノード18（例えば、無線装置、例えば、トランシーバまたはいくつかの実施の例では単に送信機又は受信機であり、図１では“F”で示す）並びに制約された無線センサノードやセンサエンドノード（図１において"C"で示す）を含む下階層（エッジ層）12cの一組の装置を含む。
【００１８】
いくつかの実施形態では、有線センサ（図示せず）には分散型ネットワーク10の例に含むことができる。
【００１９】
本明細書で使用される制約されたコンピュータ装置20は、検出システム内の他のコンピュータ装置、センサに比べて実質的に、持続性の低い揮発性メモリを持つ装置である。現在、制約された装置の例としては、約１メガバイトより少ないフラッシュ/永続メモリ、および10から20キロバイト未満のRAM/揮発性メモリを有するものであろう。これらの制約された装置20はこのような方法、すなわち、一般的に、コスト/物理構成の考慮にしたがい構成される。典型的なネットワークでは、ネットワークのエッジ（ワイヤレス接続された）階層は特定の機能を有する高度に資源制約のある装置で構成されている。これらの装置は、小〜中程度の処理能力とメモリを持ち、多くの場合、バッテリ駆動されているので時間の多くをスリープモードで費やすことによってエネルギーを節約するが必要となる。
【００２０】
代表的なモデルは、各エンドノードがハブアンドスポークスタイル アーキテクチャで親ノードと直接通信する単一のワイヤレスネットワークを形成するエッジデバイスである。親ノードは、例えば、ゲートウェイ上のアクセスポイント、または他のサブコーディネータとすることができ、これらはさらにアクセスポイント又は他のサブコーディネータに接続される。各ゲートウェイは、物理的にそのアクセスポイントに取り付けられており、無線接続ポイントをワイヤレスネットワーク内の他のノードに提供するアクセスポイント（完全に機能するノードまたは“F”ノード）が備わっている。図1に示すリンク（番号なしの線によって示される）は、装置間の直接的な（単一ホップネットワーク層）接続を表す。正式なネットワーク層（図1に示す3階層のそれぞれで機能する）は、ネットワーク上を一つの装置から他の装置へ（断片化または非断片化された）メッセージを送信するために中間のルーティング可能な装置で使用されるルーティング情報と共に一連のこれらの直接リンクを使用する。
【００２１】
WSN10は、下階層装置18及び20上で動作するアプリケーション層に対し状態機械（state machine）のアプローチをする。
【００２２】
以下ではこのようなアプローチの特定の実施の一例について議論する。
【００２３】
状態機械における状態は、連携して実行される複数組の機能を含み、そしてこれらの機能は、ある特定の下階層装置の状態機械における状態を変化させるために、個別に削除または置換もしくは添加することができる。
【００２４】
WSN状態関数ベースのアプリケーション層は、エッジデバイスオペレーティングシステム（図示しない。しかし、上記の仮出願に開示されている）を使用し、このオペレーティングシステムは、装置を再起動することなく（装置の起動後に）個々の機能をロードし実行を可能にする（いわゆる「ダイナミックプログラミング」）。他の実施態様では、その様なシステムが、好ましくはエッジデバイスを再起動せずに（デバイスの起動後）、個々の機能をロード及び実行を可能にする場合、エッジデバイスは、他のオペレーティングシステムを使用することができる。
【００２５】
図２を参照すると、アプリケーション層マネージャ30の実施態様が示される。
【００２６】
アプリケーション層マネージャ30は、特定のアプリケーション解決法又は更新された装置、例えば、デバイス18、20（図1の下階層12c）中の「ビジネス」ロジックの詳細に依存しないという意味で一般的である。アプリケーション層マネージャ30は、機能から機能、例えば、ノード、例えば、デバイス18、20上の「パス・オフ」（"pass-offs"）（現に動作している機能の変化）を扱う。
【００２７】
これらのパス・オフは、ノード、又はデバイス18、20で実行されている、実際の状態関数によって要求されるものである。
【００２８】
アプリケーション層マネージャ30は、状態関数のための中央記述子として働く遷移表（図4）を使用して「パス・オフ」（現に動作している機能の変化）を達成する。アプリケーション層マネージャ30への入力は、インターフェース32を介してネットワーク層からの解析されたメッセージを含む。アプリケーション層マネージャ30は、割り込み及びポーリングベースの入力を含み、これらは割り込みインタフェース34からのプロセッサ周辺の割り込みを介して、及びインターフェース36を介するポーリングセンサー/ペリフェラル入力を介する入力を含む。アプリケーション層マネージャ30は、設定、記憶されたデータ、および/または沈殿メッセージの生成（precipitate message generation）の変更を指示するルール38を適用するために入力を十分特徴付けることを含む。
【００２９】
アプリケーション層マネージャ30は、メッセージ生成/パーサー42並びにルール38と、構成マネージャ40を有する。アプリケーション層マネージャ30は、示す様に、ネットワークメッセージ及びセンサ/プロセッサペリフェラルに基づく入力、ローカルデータ記憶部４４（遷移表用に）及びリスト、構成管理機能、設定されたルール、およびレポート生成能力を有する。
エッジアプリケーション層アーキテクチャー
【００３０】
図3には、アプリケーションモジュールセット50は、エッジデバイス18及び20（図1）のアプリケーション層50を含むことを示す。アプリケーションモジュールセット50は、アプリケーション層マネージャによって管理されている層52（図4）と、アプリケーション層マネージャによって管理されていない層54を含む。この実施形態では、これらの他のモジュール内のコードの変更を必要とせず、アプリケーション層コードにおいて変更を適用するために、アプリケーション層マネージャは、例えば、WSN（例えば、無線ウエッブモジュール、EDFF等、示さず、）の端で使用されるこれらの他のファームウエアモジュールから別個である様に分離されている。さらに、示される様に、動きISR（motion ISR）及び動きフィルタ（motion filter）のリアルタイム処理は、アプリケーション層マネージャによって処理されないのに対して、動きレポート生成器と心拍生成器は、アプリケーション層マネージャによって処理される。
【００３１】
図3の例に示されるアプリケーションモジュールセット50は、アプリケーション層、例えば、スタック56と通信する動きレポート生成器53aと、心拍生成器53bを含む。アプリケーション層52への変更は、これらの他の分離されたモジュールの詳細のすべてを十分に理解することなく、アプリケーション層52の働きの詳細を理解することにより可能である。個々の異なるグループおよび/またはシステムの各モジュールのコード化および保守を担当することがあるため、これは望ましいことである。また、アプリケーション層52は、全アプリケーション層の更新を必要とせずに、アプリケーション層（例えば、個々のビジネス・ルール、レポート、フィルター、および他の機能）の一部の更新をサポートする様な一般的な方法で構成されている。
【００３２】
更に図3は、アプリケーション  モジュールセットにおいて実行される様々なプロセス間の状態図を示しており、以下に記載の遷移表との相互作用することで実行される。
【００３３】
【表１】
2017510182.tif 000003
【００３４】
図4を参照すると、アプリケーション層マネージャ50（App_Mgr（））を含む例示的な状況では、2つの状態（機能A、B、およびCの状態1、および機能DとEの状態2）があることを示す。遷移表は状態遷移を規定する。
【００３５】
遷移表は、機械の現在の状態及び他の入力に基づいて、有限半オートマトンまたは有限状態機械がどのような状態（または非決定性有限オートマトンの場合の状態）に移動するかを示す。状態テーブルは、基本的に入力の一部が現在の状態であり、出力が他の出力と共に次の状態を含む真理値表である。
【００３６】
状態テーブルには、状態機械を特定する、いくつかの方法の一つであり、他の方法は状態図、および特性方程式（characteristic equation）である。
【００３７】
状態1は通常の状態であり、エントリポイント“Func A”を持つ。通常、状態1は“Func A”を実行し、これは“Func B”に実行を要求し、“Func B”は“Func C”の実行を要求する。この実施例ではある状態が起きる（実際の状態は、特定固有の実施であり、その詳細は、以下に続くものを理解するために必要ではない）。状態1から状態2の遷移が発生する条件であるこのような状況の下では、“Func B”が“Func C”ではなく、“Func D”の実行を要求する、状態2は1サイクル（D-E-終了（exit））の間のみ存在し又は多数のサイクル（D-E-D-E-...-終了）の間存在する。しかし、この例で終了が発生した場合、何れの機能（function）を呼び出すことなくその様にする。そして、デフォルトでは、それはエントリポイント機能であるため、AppMgrのアイドル機能はFunc Aを実行する。
アプリケーションレイヤモジュラリティ（modularity）
【００３８】
図5に示すように、モーションセンサー上の「典型的な」アプリケーション60は、割り込みルーチンでモーションセンサーの生データを処理し、モーションセンサーの割り込みサービスルーティングは、それ自身の状態を維持し、適切な場合、「モーションイベント」を宣言するモーションフィルタを呼び出す62。
【００３９】
モーションイベントは、（おそらく僅かの非決定性待ち時間の後）に、レポートを、そのスタックの、外に出て行く行列に配置する無線プログラムスタックを呼び出す動きレポート生成器（モーションレポートジェネレータ）によって取り扱われる64。
【００４０】
動きレポート生成器は、ACKメッセージを待ち66、ACKが受信されるまで、必要に応じて、メッセージを再送信する。心拍メッセージは定期的に生成され68、無線スタックの出て行くメッセージ行列に配置され、ACKを待つ。（心拍メッセージは、配信が旨く行かない場合再提示さないが、新しい心拍メッセージは、前の送信の結果が無線スタックから取得されるまで送信さない。）
【００４１】
図6を参照すると、アプリケーション層は、アプリケーション全体を壊すことなく個々の部分が、無線リンクを介して更新可能となるように、アプリケーション層の異なる部分を定義し、リンクすることによってモジュール要件を満たすように構成されている。アプリケーション層は、アプリケーション層「機械」の基本的な構築ブロックである「オブジェクト」を例示化する72（instantiate）。
【００４２】
「オブジェクト」は、機能ポインタの配列を持っており、各機能は「キーパー」として、例えば、特定の状態及びどの機能が機械で実行されているか（すなわち、どの配列インデックスが有効か）を追跡する７４特殊マネージャ機能（アプリケーション層マネージャ30または「AppMgr」）を維持する。
【００４３】
状態遷移は、このインデクスを変える76ことにより（または、AppMgにインデックスを変更するよう要求することにより）、現在の機能が機能制御を、新しい状態（例えば、図4におけるFuncD）への侵入をマークする次の適切な機能に移す76ことにより達成される。
【００４４】
AppMgrは、AppMgrにあるよりもむしろ個々の状態関数に存在する「ハードワイヤード」（hard wired）ビジネスロジックであるのが一般的であり、そして個々の状態関数は、対応する機能をゲートウェイなどの外部ホストから送信される、その機能の新しいバージョンで交換することによって変更される。このように、許可された状態遷移に変更する（いずれかの新しい遷移を追加したり、古いものを削除する）ことは、状態変更に参加する機能を新しい機能により置き換えることにより達成される。
【００４５】
いくつかの実施形態では、AppMgrは現在の状態関数の現在のインデックス値を実際に変更するように構成される78が、他方、他の実施態様では、古い機能はAppMgr（）を仲介として使用することなく、直接新しい機能80を活性化する。
【００４６】
その理由は、AppMgrは、許可された遷移のマッピング82を備えており、このマッピングの違反をチェックする８4ためである（すなわち、ある与えられた機能は別の機能にコントロールを譲り、そのようにしながら許可されていない状態遷移を行う）。この様にすることにより、状態機械の動作への変更が有効であること及び状態機械の動作への変更が実際に行われていることを確認することを助ける。なぜなら、誤った状態変化がある機能によって要求されたときにエラーメッセージがAppMgr（）によって生成されるからである86。それ以外の場合は、個々の状態は、対応する機能をその機能の新しいバージョンで置き換えることによって変更される88。
アプリケーションの例
【００４７】
p_AppFunc[i]はi番目のアプリケーション機能へのポインタとする。 N_iをAppMgr() によって維持される「現在のインデックス」値とする。 N_iはAppMgr（）を介して、1パスで次へその値を保持するグローバル変数である。
【００４８】
AppMgrは、エッジデバイス上で実行するオペレーティングシステム中の様に（EDFF）スケジューラによって実行されるルート機能である。AppMgrは、数ミリ秒ごとを完全に実行される。AppMgr（）が実行される度にAppMgrはp_AppFunc[i]により示された機能を実行する。
【００４９】
いくつかの実施形態では、状態機械は、配列のセットとして実行することができ、より複雑な実施では、状態機械内の不確定数の状態を許容するために、状態機械は、リンクされたリストを介してリンクされた一組の機能として実施される。
いくつかの状態では、ただ一つの機能が呼び出される場合がある。
【００５０】
すなわち、p_AppFunc[N_k]が一度実行され、その後N_iが異なる値に変更され、例えば、N_kであり、それによりAppMgr（）の次の呼び出しにおいては、異なる状態に入ることになろう（すなわち、p_AppFunc [N_k]が実行される）。
【００５１】
他の状態では、N_iの変更の前に、対応する機能が何度も実行されることがある。
単一実施の機能の例は、レポートの送信であろう。複数実施機能の例は、センサ装置からの生データに作用するセンサフィルタの活動であろう。
【００５２】
p_AppFunc[i]の種々の機能は、それらが何時AppMgr（）が状態変更を行うことを要求しなければならないかを決定するのみならず、これらの機能は、AppMgr（）がどの新しい機能（例えば、N_iのどのような一以上の新しい値）から選択するべきかを示す。その理由は、AppMgr（）はかなり一般的であるように構成されており、そのため、すべてのビジネスロジックは、状態間の遷移の説明などを含み、p_AppFunc[]の機能に含まれているからである。
同時アクション
【００５３】
2つの p_AppFunc[]機能は、同時に行われる異なるタスクを持つ必要、例えば、２のセンサからのデータを同時にフィルタリングする場合（例えば、スイッチのデバウンシング及び振動測定計からのモーションデータのフィルタリングである）がある。AppMgrを提供する一つの一般的なアプローチは、一度に2つの状態関数を実行することである（AppMgrを通して各パスで両方を実行する）他のアプローチは、AppMgrをシンプルにして、アプリケーション状態が、相互に呼び出しを行うためのコードが提供されて、そしてお互いを呼び出すようにするものである。すなわち、p_AppFunc[N_i]はp_AppFunc[N_i]の実行の終了とともにp_AppFunc[N_k]を実行するよう要求し、その逆も同様に真理である。実際には、2つのアプリケーション機能は、時間を共有することについてのAppMgrの計画なしで、AppMgrの時間と注意を分けるのである。
【００５４】
種々のp_AppFunc[]のバージョンが、ゲートウェイとクラウドの実行可能なコードリポジトリ（repository）に保持されており、このような各機能は、各機能のバージョンを互いに区別するために使用されるID番号を持つことができる（多くの場合、各機能の世代またはバージョンの差は小さいが重要であるので、正確に正しいID番号を取得する）。ある与えられた機能の内では、異なる機能や状態への要求された変更は、コードバージョンに関して非常に特定なものになり、したがって、状態変化（機能変更）を要求するために機能によって使用されるパラメータは、実際に新しい機能のID番号であるということは論理にかなう。
【００５５】
バージョンを管理する簡単な方法は、アプリケーションレイヤ状態関数にそれ自身のファイルの種類を与えることである。ファイルの種類は、例えば、フラッシュメモリ内のファイルインデックス内のフィールドの一つとして維持されており、そのためブートアップ中のAppMgr（）の初期化プロセスは、フラッシュメモリ内のそのタイプのファイルを検索し、機能ポインタの配列を生成し、そのインデックスiは、0から最大値であるi最大まである。この初期化の間に、AppMgr（）はそれぞれの値iを機能p_AppFunc[i]及びその機能の対応する機能IDにマッピングし、そして各機能IDに対して、対応するインデックス値i、及び許可された状態遷移（現在の機能から到達可能な機能のための機能ID）を示す表を作成する。例えば、現在の機能、例えば、機能ID、例えば、0x31C7を持つp AppFunc[N_i] 、の動作の過程において、機能は、0x396Bの戻り値のAppMgr（）に戻ることがある。この戻り値は、機能ID  "0x396B”を持つ機能p_AppFunc[]を実行するための要求である。AppMgr（）は、気ID  "0x396B”を持つ機能p_AppFunc[]を実行するための要求が、機能ID0x31C7のために許可されている遷移であるか、もしそうであるなら、iのどの値が機能ID  "0x396B”に対応するするのかを決定するために状態テーブルを用いる。もし、それが正当な要求である場合、AppMgr（）は、N_iを機能ID"0x396Bに対応する新しいi値に等しいものに設定し、AppMgr（）が次に実行される時に、新しい機能ID0x396Bが実行されるであろう。
【００５６】
AppMgr（）の初期化及び、状態テーブルの作製中に、各状態が到達可能であること（いずれの状態も孤立していない）及び全ての状態が単一状態機械（2つのより小さい、完全に分離された状態のセットではない）の一部であることを確認するために、簡単なグラフ解析アルゴリズムが実行される。状態テーブルの検証はまた、如何なる状態遷移も、遷移が存在しない機能への移行を伴うことができないことを要求する。
【００５７】
AppMgr（）は、インデックスN_iが定義されていないときに実行される機能IDは0x0001を持つ幹状態（stem state）（アイドル状態）を常に、有している。
【００５８】
状態機械の初期化は、その独自の汎用機能、機能IDが0x0000、を持つ第２の状態（初期化状態）で行われる。機能のいずれかが変わるときは（例えば、新しい機能の無線ダウンロードによって）いつでも、AppMgr（）は、機能0x0000を再実行し、その後状態関数0x0001に移行する。これは、完全な機能セット内のユーザ提供の機能の唯一の機能がエントリ状態として識別されるさらなる要件である。これは自動的には0x0001によって呼び出される状態である。その時点からユーザ提供の機能は、状態がその戻り値の一部として変更されることを要求する。
【００５９】
状態図を示す図3および上記の表に戻ると、以下の表には、上記の適用例の状態遷移が入力されている。
【００６０】
【表２】
2017510182.tif 000004
【００６１】
上記の例は、概念を説明するために簡略化されている。しかし、より複雑なアプリケーションのセットも使用することもできる。例えば、ノードに２つの "状態"があるとして -第１の状態は連続ループにおいて、機能A、B、Cの常時走行に対応し、第２の状態は他の連続ループにおいて、機能DとEの実行に対応する。第１の状態（通常状態）では、機能A（「エントリ機能」）は完了まで実行され、AppMgr（）に機能Bを実行することを要求する。機能Bが完了すると、機能Bは機能Cに、機能Cは続いて機能Aに要求する。機能Aはエントリ機能であり、ループはA-B-C-A…は閉鎖ループであるため、機能D及び機能Eは通常は実行されない。しかし、特別な条件において、機能Bが存在し、機能Bが機能C.ではなく、機能Dに要求すると仮定する。そうすると機能DとEは、それらの1つが、最初のループで機能を要求するまで、ループ（D-E-D-E...）において実行される。
【００６２】
このようにして、一以上の機能のセットは状態に対応し、それぞれの状態で動作する機能は、状態遷移を管理する。
【００６３】
機能が存在するが、新しい機能が要求されない場合、AppMgrアイドルは、単に再びエントリポイント機能を実行する。非常に単純なノードを持ついくつかの例では、エントリ機能が存在しない可能性があり、その場合は、イベントが開始した機能が実行されるまでアイドル機能がそれ自身を実行する。図4に戻って参照すると、２つの状態（機能A、B、およびCの状態1、および機能DとEの状態2）が存在する仮定的（一般的）な状況である。
【００６４】
状態1は、正常な状態であり、エントリポイントFunc Aを持っている。特別な状況状態において、Func BがFunc CよりもむしろFunc Dの実行を要求したときに、状態１は状態2に遷移する。状態2は唯一の1サイクル（D-E-終了）又は多くのサイクル（D-E-D-E-...-終了）において存在しても良いが、この例で終了が起きる場合、それは任意の機能を呼び出すことなく起きる。それはエントリポイント機能であるため、デフォルトまでに、AppMgrアイドル機能はFunc Aを実行する。
【００６５】
図7は、図1〜6に関して説明されるWSNの特徴及び本明細書に記述した様々な機能を有するセキュリティシステムの一例を示す。
【００６６】
図7に示すように、相関処理はある制約されたノード（これらはまた、完全に機能するノードであってもよい）からの入力を受領する。これらの入力は、認証情報およびビデオ情報を含むことができ、そして相関処理は、ネットワークを介して送信される相関結果を生成することができる。
【００６７】
コンテキスト管理処理は、ある制約されたノード（これらはまた、完全に機能するノードであってもよい）、例えば、認証情報およびビデオやグループ化情報からの入力を受け、コンテキスト処理を行い、結果はネットワークを介して送信される。ネットワークは、緊急終了インジケータ、例えば、分散型ルール処理とルールエンジン/メッセージング処理並びに緊急時カメラの動作をサポートする。範囲延長部（Range extender）は、例えば、ゲートウェイと共に使用され、そして、リアルタイム位置システムは、示されるように、様々なセンサ（例えば、制約型）からの入力を受け取る。クラウド・コンピューティング及びいくつかのネットワークの一部の構成を経由するWSNへのサーバ・インタフェースはサブネットとして実行することができる。これらのセンサは、何かがセンサの範囲内の領域内で検出されたと言う表示に加えて、その表示が何であるかを、特定のセンサへの入力についての大規模な分析を実行するために必要とされる侵入検出パネルなしで評価するために使用できる詳しい追加情報を提供する。例えば、動き検出器は、部屋内で移動している暖かい物体の熱シグニチャ（heat signature）を分析し、それがヒト又はペットのものであるかを決定するように構成することができる。その分析結果は、検出体についての情報を伝えるメッセージやデータになるであろう。各種センサは、このように、侵入検出パネルにおける真のまたは確認されたアラーム状態を検出するために、適宜組み合わせて、音、動き、振動、圧力、熱、イメージ等を感知するために使用される。認識ソフトウェアは、対象がヒトおよび動物であるかを区別するために使用することができ、さらに顔認識ソフトウェアは、ビデオカメラに組み込まれ、境界内への侵入が、認められ、許可された個人のものであることを確認するために使用することができる。このようなビデオカメラは、プロセッサとメモリと、カメラによる入力（撮像画像）を処理するための認識ソフトウェアを含み、ビデオカメラで撮影された個人の認証又は認証の欠如に関する情報を伝達するメタデータを生成する。処理はまた、代替的に又は追加的に、ビデオカメラによって捕捉/監視される領域内の個人の特徴に関する情報を含むことができる。このように、状況に応じて、これらの情報はより高度な動き検出器及び境界内への侵入の特徴を与えるセンサへの入力に対してより高度な分析を行ったビデオカメラから受信したメタデータか、又は対象の認識を確立することを目ざす非常に複雑な処理から得られるメタデータのいずれかであろう。侵入検出パネルが、アルゴリズムを実行するためその処理能力を利用できる様にするために、センサ装置は、より複雑な出力を生成するために、複数のセンサを統合することができる。この場合、アルゴリズムは、違反の妥当性について賢明な決定を行うために環境の仮想イメージや環境シグニチャを構築することにより、環境を分析する。メモリは、侵入検出パネルのプロセッサによって使用されるプログラム命令及びデータを保存する。メモリは、ランダム・アクセス・メモリ及び読み出し専用メモリの適切な組合せであってもよく、適切なプログラム命令（例えばファームウェアまたはオペレーティングソフトウェア）、構成及び動作データをホストすることができ、そして、ファイルシステムまたは他の形で構成することができる。保存されたプログラム命令は、1以上のユーザを認証するための1以上の認証プロセスを含むことができる。パネルのメモリに保存されたプログラム命令は、さらに、ネットワーク通信およびデータネットワークへの接続確立を可能にソフトウェアコンポーネントを保存しても良い。
【００６８】
ソフトウェアコンポーネントは、例えば、インタフェース及びキーパッドを含む様々なインターフェイス用のドライバコンポーネント並びにインタネットプロトコル（IP）スタックを含むことができる。接続を確立し、ネットワークを介して通信するのに適した他のソフトウェアコンポーネントは当業者には明らかであろう。構成データと共にメモリに保存されるプログラム命令は、パネルの全体の動作を制御することができる。
【００６９】
監視サーバは、1以上の処理装置（例えば、マイクロプロセッサ）、ネットワークインターフェースおよびメモリ（すべて図示せず）を含む。監視サーバは、物理的に、ラック搭載カードの形をとることができ、１以上のオペレータ端末（図示せず）と通信することができる。監視サーバの例にはSURGARD（商標）のSG-System III Virtual、または同様のシステムである。各監視サーバのプロセッサは、各監視サーバのコントローラとして動作し、各サーバと通信し、各サーバの全体の動作を制御する。プロセッサは、監視サーバの全体の動作を制御するプロセッサ実行可能命令を保存するメモリを含む、またはそれと通信することができる。適切なソフトウェアは各監視サーバにアラームを受信させ、適切なアクションをとることを可能にする。ソフトウェアは、適切なインターネットプロトコル（IP）スタックおよびアプリケーション/クライアントを含むことができる。中央監視ステーションの各監視サーバは、アラームイベント等を処理するためにコントロールパネルおよび/またはユーザ装置と通信するIPアドレスと一以上のポートに関連付けることができる。
【００７０】
監視サーバアドレスは静的（static）であり、従って、常に、侵入検出パネルに特定の一つの監視サーバを識別させることができる。代替的に、動的アドレスを使用して、ドメインネームサービスを通じて決定された静的ドメイン名に関連付けることができる。ネットワークインタフェースカードは、着信信号を受信するために、ネットワークとインタフェースし、そして、例えば、イーサネット（登録商標）・ネットワーク・インタフェース・カード（NIC）の形態をとることができる。サーバーは、アラームイベントを表す受信されたデータが人間のオペレータによる処理のために渡される、コンピュータ、シンクライアント（thin-clients）等であってもよい。監視ステーションは、さらに、データベース・エンジンの制御下にあるデータベースを備えた加入者データベースを有し、又はこれにアクセスすることができる。データベースは、監視ステーションによってサービスされるパネルのようなパネルに対するさまざまな加入者装置/プロセスに対応するエントリを含んでもよい。
【００７１】
本明細書に記載されるプロセスおよびそれらの様々な変形の全てまたは一部（以下、「処理」という。）は、コンピュータプログラム製品を介して、少なくとも部分的に実施することができる。すなわち、コンピュータプログラム製品は、１以上の有形の、物理的に有態の記憶装置の形で具現化されているものであり、それは、データ処理装置、例えば、プログラム可能なプロセッサ、コンピュータ、または複数のコンピュータにより実施され又はその動作を制御するための、コンピュータおよび/または機械可読記憶装置である。コンピュータプログラムは、コンパイルまたは解釈言語を含む任意の形のプログラム言語で書くことができ、それはスタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピュータ環境使用に適した他のユニットを含む、任意の形態で展開することができる。コンピュータプログラムは、1つのサイトの1つのコンピュータまたは複数のコンピュータ上で実行される様に展開されるか、または複数のサイトに分散し、そしてネットワークにより相互接続されるようにすることができる。プロセスの実施に関連する動作は、較正プロセスの機能を実行するために1以上のコンピュータプログラムを実行する1以上のプログラム可能なプロセッサによって実行することができる。
【００７２】
処理の全部または一部は、専用論理回路、例えば、FPGA（フィールド・プログラマブル・ゲート・アレイ）及び/又はASIC（特定用途向け集積回路）として実施することができる。コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および１以上の任意の種類のデジタルコンピュータのプロセッサを含んでも良い。
【００７３】
一般に、プロセッサは、読み出し専用の記憶領域またはランダムアクセス記憶領域あるいはその両方から命令およびデータを受け取る。コンピュータの要素（サーバを含む）は、命令を実行する1以上のプロセッサ、及び命令およびデータを保存するための複数の記憶領域の装置を含む。一般に、コンピュータはまた、それからデータを受け取るように結合され、又はそれへデータを転送し、またはその両方を、実行する様に結合された1以上の機械可読記憶媒体を含み、それらには、例えば、データ保存用の大容量記憶装置、例えば、磁気、磁気光ディス、又は光ディスがある。コンピュータプログラム命令およびデータを具体化するのに適している有形の、物理的に有態なハードウェア記憶装置には、あらゆる形態の非揮発性記憶装置を含み、その例としては、半導体記憶域装置、例えば、EPROM、EEPROM、及びフラッシュ記憶領域装置；磁気ディスク、例えば、内付ハードディスクやリムーバブルディスク；磁気‐光ディスク及びCD-ROM及びDVD-ROMディスク、揮発性のコンピュータ・メモリ、例えば、静的および動的RAM、並びに消去可能なメモリ、例えば、フラッシュメモリを含む。さらに、図に示された論理フローは、望ましい結果を達成するために、示された特定の順序、または連続して行われる（sequential）順序を必要としない。加えて、他の動作が提供されてもよいし、または動作を記述されたフローから除去することができ、また他の成分を加えてもよいし、または記載のシステムから除去しても良い。同様に、図に示された動作が異なる部分によって実行されても良いし、または連結されてもよい。
【００７４】
本明細書に記載の異なる実施形態の要素は、具体的に上で述べられていない他の実施形態を形成する様に組み合わされてもよい。要素にその動作に悪影響を与えることなく、本明細書に記載されるプロセス、コンピュータプログラム、ウエッブページから取り除いてもよい。
【００７５】
さらに、様々な個別の要素は、本明細書に記載の機能を実行するための1以上の個々の要素と結合されてもよい。具体的に本明細書中に記載されていない他の実施も、以下の特許請求の範囲に含まれる。
【図１】
2017510182.tif 000005
【図２】
2017510182.tif 000006
【図３】
2017510182.tif 000007
【図４】
2017510182.tif 000008
【図５】
2017510182.tif 000009
【図６】
2017510182.tif 000010
【図７】
2017510182.tif 000011
【国際調査報告】
2017510182.tif 000012