JP6307393B2 - アクセス制御システムにおける分散されたイベント - Google Patents

アクセス制御システムにおける分散されたイベント Download PDF

Info

Publication number
JP6307393B2
JP6307393B2 JP2014187457A JP2014187457A JP6307393B2 JP 6307393 B2 JP6307393 B2 JP 6307393B2 JP 2014187457 A JP2014187457 A JP 2014187457A JP 2014187457 A JP2014187457 A JP 2014187457A JP 6307393 B2 JP6307393 B2 JP 6307393B2
Authority
JP
Japan
Prior art keywords
data
event
data area
area
memory space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014187457A
Other languages
English (en)
Other versions
JP2015057703A5 (ja
JP2015057703A (ja
Inventor
オーラ アンゲルスマルク
オーラ アンゲルスマルク
ペール スミット
ペール スミット
Original Assignee
アクシス アーベー
アクシス アーベー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アクシス アーベー, アクシス アーベー filed Critical アクシス アーベー
Publication of JP2015057703A publication Critical patent/JP2015057703A/ja
Publication of JP2015057703A5 publication Critical patent/JP2015057703A5/ja
Application granted granted Critical
Publication of JP6307393B2 publication Critical patent/JP6307393B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Alarm Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Description

本開示は、概して、物理アクセス制御システムにおけるイベントデータの分散に関する。
施設への物理アクセスを制御するためにアクセス制御システムが使用される場合がある。アクセス制御システム(及び、他の種類の制御システム)は、システムの異なる部分を各々制御する、多数のコントローラを有し得る。各コントローラは、例えば、ユーザが正しい認証情報(credential)をカードリーダに入力したかどうか、又はカメラが動きを検知したかどうかといった、イベントに関するデータを格納し得る。
一実施形態では、システムはネットワークに接続される複数の装置を含み得る。各装置は、対応する装置から生じるイベントデータを格納するための第1のデータエリア及び当該複数の装置のうち他の装置から生じるイベントデータを格納するための第2のデータエリアを含むメモリを含み得る。一実施形態では、 第1のデータエリアは、多くとも第1のメモリスペースを占めるように構成され、第2のデータエリアは、多くとも第2のメモリスペースを占めるように構成される。各装置は、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアからイベントデータを除去し(remove)、第2のデータエリアが第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリアからイベントデータを除去し、ネットワークインタフェースを通じて、第1のデータエリアから他の装置にイベントデータを分散させ、及び、第2のデータエリアに格納するために、ネットワークインタフェースを通じて他の装置からイベントデータを受信するためのプロセッサを含み得る。
一実施形態では、複数の装置は、分散されたピアツーピアネットワークに接続され、複数の装置のうち1つより多くの装置の各プロセッサは、ピアツーピアネットワークにおいて、各々の第1のデータエリア内のイベントデータを他の装置に分散させるように構成される。一実施形態では、複数の装置のうち1つより多くの装置の各プロセッサは、ピアツーピアネットワークにおいて、各々の第2のデータエリア内のイベントデータを他の装置に分散させるように構成される。
一実施形態は、第1のデータエリアに格納されるイベントデータ及び第2のデータエリアに格納されるイベントデータを要求及び受信するための複数の装置のうちの1つと通信する追加的な装置を含み得る。一実施形態では、第1のメモリスペースは、第2の最大メモリスペースより大きい。一実施形態では、複数の装置は、物理アクセス制御システム(PACS:physical access control system)内の複数のコントローラを含み得る。
一実施形態では、プロセッサは、第1のデータエリアのイベントデータ及び第2のデータエリアのイベントデータをルールと比較し、比較に基づいて警報を出すように構成される。
一実施形態では、プロセッサは、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアから最も古いイベントデータを除去し、第2のデータエリアが第2のメモリスペースより多くを占めることを阻止するために第2のデータエリアから最も古いイベントデータを除去するように構成される。
一実施形態では、プロセッサは、第1のデータエリアから装置のうち別の1つへのイベントデータの分散に優先順位をつけるように構成され、当該装置のうち別の1つは、イベントデータへのサブスクリプション(subscription)に関連付けられる。
一実施形態では、プロセッサは、ネットワーク内のトラフィック量に基づいて、対応する装置から生じるイベントデータを他の装置へ分散させるように構成される。
一実施形態では、イベントデータの分散を停止するために、装置のうちの他の1つからネットワークインタフェースを通じて標識(indication)が受信された場合に、プロセッサは、第1のデータエリアから装置のうちの別の1つにイベントデータを分散することを停止するように構成される。
一実施形態では、対応する他の装置内のプロセッサが、プロセッサ負荷閾値を超過する場合に、装置のうちの他の1つは、イベントデータの分散を停止することを指示する。
別の実施形態では、装置から生じるイベントデータを格納するための第1のデータエリア及び当該装置とピアツーピアネットワークで接続された1つ以上の他の装置から生じるイベントデータを格納するための第2のデータエリアを含み、第1のデータエリアは、多くとも第1のメモリスペースを占めるように構成され、第2のデータエリアは、多くとも第2のメモリスペースを占めるように構成される、メモリを含み得る。当該装置は、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアから格納されたイベントデータを除去し、第2のデータエリア第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリアから格納されたイベントデータを除去し、ネットワークインタフェースを通じて、第1のデータエリアから他の装置にイベントデータを分散させ、第2のデータエリアに格納するために、ネットワークインタフェースを通じて他の装置からイベントデータを受信するためのプロセッサを含み得る。
一実施形態では、プロセッサは、ピアツーピアネットワークにおいて、第1のデータエリア内のイベントデータを他の装置に分散させ、ピアツーピアネットワークにおいて、第2のデータエリア内のイベントデータを他の装置に分散させるように構成される。一実施形態では、第1のメモリスペースは、第2のメモリスペースより大きい。
一実施形態では、当該装置は、物理アクセス制御システム(PACS)内のコントローラを含み得る。
一実施形態では、プロセッサは、第1のデータエリア内のイベントデータ及び第2のデータエリア内のイベントデータをルールと比較し、比較に基づいて警報を出し、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアから最も古いイベントデータを除去し、第2のデータエリアが第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリアから最も古いイベントデータを除去するように構成される。
一実施形態では、プロセッサは、第1のデータエリアから装置のうち別の1つへのイベントデータの分散に優先順位をつけるように構成され、装置のうち他の1つは、前記イベントデータへのサブスクリプションに関連付けられる。
一実施形態では、プロセッサは、ピアツーピアネットワーク内のトラフィック量に基づいて、第1のデータエリアから他の装置へイベントデータを分散させるように構成される。
別の実施形態では、方法は、複数の装置のうちの第1の装置から生じるイベントデータを、メモリの第1のデータエリア内に格納することを含み得る。第1のデータエリアは、多くとも第1のメモリスペースを占めるように構成され、複数の装置は、分散されたピアツーピアネットワーク内に接続される。当該方法は、第1の装置とは別の装置から生じるイベントデータを第2のデータエリアに格納することであって、第2のデータエリアは、多くとも第2のメモリスペースを占めるように構成されることを含み得る。当該方法は、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアからイベントデータを除去することと、第2のデータエリアが第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリアからイベントデータを除去することと、ネットワークインタフェースを通じて、第1のデータエリアから他の装置にイベントデータを分散させること、及び、第2のデータエリアに格納するために、ネットワークインタフェースを通じて他の装置からイベントデータを受信することと、を含み得る。
一実施形態では、第1のメモリスペースは、第2のメモリスペースより大きい。当該方法は、第1のデータエリアが第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリアから最も古いイベントデータを除去することと、第2のデータエリアが第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリアから最も古いイベントデータを除去することと、を含み得る。当該方法は、第1のデータエリアから装置のうちの別の1つへのイベントデータの分散に優先順位をつけることであって、装置のうちの他の1つはイベントデータへのサブスクリプションと関連付けられることを含み得る。
本明細書に記載される実施形態による例示的な環境を示すブロック図である。 図1のシステムユニットの例示的なコンポーネントを示すブロック図である。 図1のシステムユニットの例示的なコンポーネントを示すブロック図である。 一実施形態における図1のシステムユニットの機能コンポーネントを示すブロック図である。 一実施形態における図1のシステムユニットの機能コンポーネントを示すブロック図である。 一実施形態における図3Bのストレージレイヤの機能コンポーネントを示すブロック図である。 一実施形態における図3Bのストレージレイヤの機能コンポーネントを示すブロック図である。 一実施形態における例示的なサブスクリプションテーブル(subscription table)のブロック図である。 図1のシステムユニットの例示的な物理レイアウトを示す平面図である。 図1の制御システムの例示的な物理レイアウトを示す平面図である。 図1の管理装置の例示的なコンポーネントのブロック図である。 一実施形態における分散制御システム内のイベントのデータの分散についての例示的なプロセスのフローチャートである。 一実施形態における分散制御システム内のイベントのデータの受信についての例示的なプロセスのフローチャートである。 図3のストレージレイヤがオーバーフローしないことを保証するための例示的なプロセスのフローチャートである。 一実施形態における分散制御システム内のイベントのデータの分散についての例示的なプロセスのフローチャートである。 一実施形態における図1のコントローラに格納されるデータに管理者がアクセスするための例示的なプロセスのフローチャートである。
以下の詳細な説明は、添付図面を参照する。異なる図面における同一の参照番号は、同一又は類似のエレメントを識別する。
以下に記載する一実施形態は、物理アクセス制御システム(PACS:physical access control system)におけるコントローラに関する。他の実施形態は、建物の管理システム内、監視システム内、及びセキュリティシステム内の異なるアプリケーションを制御するためのシステムにおけるコントローラといった、PACS以外の装置又はシステムを含んでもよい。一実施形態は、例えば、ホームオートメーションシステムにおけるコントローラを含んでもよい。
上述したように、制御システムは、システムの異なる部分を各々制御する多数のコントローラを有し得る。各コントローラは、例えば、ユーザがカードリーダに正しい認証情報(credential)を入力したかどうか、又はカメラが動きを検知したかどうかといった、イベントに関するデータを格納し得る。以下に述べる一実施形態では、コントローラは、分散方式(distributed manner)でイベントデータを格納する。しかしながら、大量のイベントデータは、ビジータイムの期間において、コントローラ又はネットワークを圧倒する恐れがある。以下に述べる一実施形態では、別のコントローラが、優先順位等に基づいてイベントデータにサブスクライブ(subscribe)する場合に、コントローラは、あまりビジーでない時間にイベントデータを分散することによりコントローラ自身の負荷及びネットワークトラフィックを減少させ得る。
別の実施形態では、コントローラは、2つのメモリエリア、当該コントローラで生じるイベントデータを格納するための第1のメモリエリアと、他のコントローラから生じるイベントデータを格納するための第2のメモリエリアとを含み得る。第1及び第2のメモリエリアは、多くとも第1及び第2のメモリスペースを占有するように構成され得る。(限定され得る)メモリ管理の形態として、当該コントローラから生じるイベントデータを格納するための第1のメモリスペースは、他のコントローラから生じるイベントデータを格納するための第2のメモリスペースよりも大きくてもよい。したがって、コントローラは、(例えば)他のコントローラよりも長期間それ自身のイベントデータを格納し得る。にもかかわらず、他のコントローラがネットワーク内で同じことをする(例えば、各々それ自身に関する情報をより多く格納する)ため、完全な(又はより完全な)イベントデータの集合が、コントローラのネットワーク内に格納され得る。さらに、完全な(又はより完全な)イベントデータの集合を格納するための中央サーバを必ずしも維持しないものの、この完全な(又はより完全な)イベントデータの集合は格納され得る。にもかかわらず、管理装置(administrative device)(又はサーバ)は、なお、例えば、コントローラがメモリの不足から努力してデータを除去する前に、異なるコントローラからイベントデータをダウンロードする可能性がある。以下の1つ以上の実施形態は、特定の環境における物理アクセス制御システム(例えば、分散型物理アクセス制御システム)内のイベントデータの分散に関する。述べたように、他の実施形態は、(例えば、物理アクセス制御システム以外の)他の種類のシステム内のイベントデータの分散に関連してもよい。
図1は、以下に記載するシステム及び方法が実装されうる例示的な環境100のブロック図である。図1に示すように、環境100は、分散制御システム110(例えば、分散型物理アクセス制御システム)、ネットワーク120、及び管理装置(administration device)130を含んでもよい。
分散制御システム110は、システムユニット115−A〜115−N(集合としては“システムユニット115”又は“ユニット115”と呼び、個別には“ユニット115”と呼ぶ)を含む分散コンピューティングシステムを含み得る。分散制御システム100は、ネットワーク120内で接続される複数の装置(ユニット115)を有する。一実施形態では、システムユニット115は、物理アクセス制御装置を含む。例えば、システムユニット115は、部屋や部屋の集合といったセキュアな領域へのアクセスを制御するコントローラを含み得る。システムユニット115は、リーダ(reader)装置を介して認証情報(例えば、アクセスカード認証情報)を受信し、認証情報が真正であり、セキュアな領域にアクセスする権限と関連付けられているかどうか判定し得る。認証情報が真正である場合、コントローラは、ドアのロックを開くコマンドを発行し、又はセキュアな領域へのアクセスを許可することと関連付けられる他の動作を実行し得る。
分散制御システム110は、1つ以上の分散されたデータセットを含み得る。分散されたデータセットは、分散されたデータセットと関連付けられるシステムユニット115に分散されて(おそらくは重複して)記憶されたデータを含む。一実施形態では、分散されたデータセットは、複数の装置上で複製される。例えば、分散されたデータセット全体を複数のユニット115(例えば、各ユニット115)に記憶させてもよい。別の実施形態では、1つ以上のユニット115が、分散されたデータセットのサブセットを記憶してもよい。また、分散されたデータセットは、全てのシステムユニット115と関連付けられていてもよく、システムユニット115のサブセットと関連付けられてもよい。
一実施形態では、ユニット115は、分散されたデータセット(例えば、合意ベース(consensus based)の分散データベース)に変更をもたらすために、合意に達し得る。システムユニット115は、合意ベースの分散されたデータセットに変更を提案することができる。分散されたデータセットと関連付けられた定足数のユニット115によって変更が受け入れられる場合、ユニット115は合意に達することができ、関連付けられる各ユニット115内の分散されたデータセットの各ローカルコピーに変更を伝播し得る。すなわち、定足数の関連付けられるユニット115が変更について賛成票を投じる場合に、分散されたデータセットにおける変更に関する合意が達成され得る。
本文脈において、定足数とは、関連付けられるユニット115を支配する最小限の数に相当し得る。例えば、分散されたデータセットがN個のユニット115と関連付けられている場合、且つNが偶数の場合は、N/2+1個の関連付けられるユニット115が変更に賛成票を投じれば定足数に達し、Nが奇数の場合は(N−1)/2+1個の関連付けられるユニット115が変更に賛成票を投じれば定足数に達し得る。定足数を達成するのに最小限の多数を必要とすることによって、2つの競合する提案が検討される場合に、少なくとも1つのシステムユニット115が双方の提案を受信し、合意のためにそれらの提案のうちの1つを選択することが保証され得る。
合意ベースの分散されたデータセットは、分散されたデータセットと関連付けられる任意のシステムユニット115が、分散されたデータセットによって管理される情報(例えば、一実施形態におけるすべての情報)を含むことを保証し得る。例えば、分散されたデータセットはアクセスルールを含んでもよく、アクセスルールは、分散されたデータセットと関連付けられる任意のシステムユニット115にとって利用可能であってもよい。このように、1つ以上の分散されたデータセットの結果として、一実施形態では、制御システム110は、サーバ装置といった中央制御装置のない非集中型システムに対応しうる。他の実施形態では、制御システム110は、非集中型システムと、(サーバ装置といった)中央制御装置の両方を含み得る。制御システム110への変更は任意のシステムユニット115において構成されることができ、変更が分散されたデータセットと関連付けられる場合には、変更は分散されたデータセットと関連付けられた他のシステムユニット115に伝播され得る。さらに、制御システム110は、デバイス障害に関して、シングルポイントの障害が回避され得るようなロバスト性を呈し得る。例えば、特定のシステムユニット115に障害が発生した場合、他のユニット115は、データのロスなしで(又はデータの最小限のロスのみで)動作を継続し得る。別の実施形態では、合意なしで分散されたデータセットへの変更が行われてもよい。
ネットワーク120は、ユニット115が相互に通信することを可能にすることができ、及び/又は管理装置130が特定のユニット115と通信することを可能にすることができる。ネットワーク120は、1つ以上の回線交換ネットワーク及び/又はパケット交換ネットワークを含み得る。例えば、ネットワーク120は、ローカルエリアネットワーク(LAN:local area network)、広域ネットワーク(WAN:wide area network)、メトロポリタンエリアネットワーク(MAN:metropolitan area network)、公衆交換電話網(PSTN:Public Switched Telephone Network)、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、無線ネットワーク、及び/又はこれらの若しくは他の種類のネットワークの組み合わせを含み得る。
管理装置(administration device)130は、制御システム110を構成し、制御システム110の構成を変更し、制御システム110から情報を受信し、及び/又はそれ以外に制御システム110を管理するために、管理者が特定のユニット115に接続することを可能にする。管理装置130は、ユニット115のうちの1つ以上と通信するように構成される任意の装置を含み得る。例えば、管理装置130は、携帯用通信機器(携帯電話、スマートフォン、ファブレット機器、GPS(global positioning system)装置、及び/若しくは別の種類の無線装置など)、パーソナルコンピュータ若しくはワークステーション、サーバ装置、ラップトップ、タブレット、若しくは別の種類の携帯用コンピュータ、並びに/又は通信ケイパビリティを有する任意の種類の装置を含み得る。一実施形態では、管理装置130は、ユニット115の一部であってもよい。よって、管理者は、ユニット115のうちの1つ以上から制御システム110を管理することができる。
図1には環境100の例示的なコンポーネントが示されているが、他の実装では、環境100は、図1に示すものと比べてより少ないコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、又は追加的なコンポーネントを含んでもよい。追加的又は代替的に、環境100内の任意の1つの装置(又は任意の装置群)は、環境100内の1つ以上の他の装置によって実行されるとして記載されている機能を実行し得る。
図2A及び図2Bは、ユニット115の例示的なコンポーネントを示すブロック図である。図2Aに示すように、ユニット115は、コントローラ210、及び1つ以上の周辺装置230を含み得る。コントローラ210は、ユニット115の動作を制御することができ、他のユニット115と通信することができ、管理装置130と通信することができ、及び/又は周辺装置230を制御することができる。周辺装置230は、コントローラ210に情報を提供し、コントローラ210によって制御され、及び/又はそうでなければコントローラ210と通信する装置を含み得る。一実施形態では、周辺装置230は、任意の種類のセキュリティ装置を含み得る。例えば、周辺装置230は、リーダ装置240、ロック装置250、センサ260(カメラなど)、及び/又はアクチュエータ270といったセキュリティ装置を含み得る。
図2Bに示すように、コントローラ210は、バス212、プロセッサ214、メモリ216、ネットワークインタフェース218、周辺インタフェース220、及びハウジング222を含み得る。バス212は、コントローラ210のコンポーネント間の通信を可能にするパスを含む。プロセッサ214は、命令を解釈し、実行する任意の種類のシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、及び/若しくは処理ロジック(又はプロセッサ、マイクロプロセッサ、及び/若しくは処理ロジックのファミリ)を含み得る。他の実施形態では、プロセッサ214は、ASIC(application-specific integrated circuit)、FPGA(field-programmable gate array)、及び/又は別の種類の集積回路若しくは処理ロジックを含み得る。
メモリ216は、情報、データ、及び/又は命令を記憶する。メモリ216は、任意の種類の動的記憶デバイス、揮発性記憶デバイス、及び/又は不揮発性記憶デバイスを含み得る。メモリ216は、プロセッサ214が実行するための命令、又はプロセッサ214が使用するための情報を記憶することができる。例えば、メモリ216は、RAM(random access memory)若しくは別の種類の動的記憶デバイス、ROM(read-only memory)若しくは別の種類の静的記憶デバイス、CAM(content addressable memory)、磁気的記録メモリデバイス及び/若しくは光学的記録メモリデバイス及びそれに対応するドライブ(例えばハードディスクドライブ、光学的ドライブなど)、並びに/又はフラッシュメモリといった着脱可能な形態のメモリを含み得る。
ネットワークインタフェース218は、有線通信リンク(例えば、導線、ツイストペアケーブル、同軸ケーブル、伝送回線、光ファイバケーブル、及び/若しくは導波管など)、無線通信リンク(例えば、RF(radio frequency)、赤外線、及び/若しくは可視光線など)、又は有線通信リンクと無線通信リンクとの組み合わせを介して、コントローラ210が他の装置及び/又はシステムと通信する(データの送信及び/又は受信を行う)送受信機(送信機及び/又は受信機など)を含んでもよい。ネットワークインタフェース218は、ベースバンド信号をRF信号に変換する送信機、及び/又はRF信号をベースバンド信号に変換する受信機を含み得る。ネットワークインタフェース218は、RF信号を送受信するためのアンテナと連結されてもよい。
ネットワークインタフェース218は、他の装置へのデータの送信を遂行する入力ポート及び/若しくは出力ポート、入力システム及び/若しくは出力システム、並びに/又は他の入力コンポーネント及び出力コンポーネントを含むロジックコンポーネントを含み得る。例えば、ネットワークインタフェース218は、有線通信のためのネットワークインタフェースカード(イーサネット(登録商標)カードなど)及び/又は無線通信のための無線ネットワークインタフェース(例えば、WiFi)カードを含み得る。またネットワークインタフェース218は、ケーブル上の通信のためのUSB(universal serial bus)ポート、Bluetooth(登録商標)無線インタフェース、RFID(radiofrequency identification)インタフェース、NFC(near-field communication)無線インタフェース、及び/又はある形態から別の形態へデータを変換する任意の他の種類のインタフェースをも含み得る。
周辺インタフェース220は、1つ以上の周辺装置230と通信するように構成され得る。例えば、周辺インタフェース220は、周辺装置230へのデータの送信を遂行する入力ポート及び/若しくは出力ポート、入力システム及び/若しくは出力システム、並びに/又は他の入力コンポーネント及び出力コンポーネントを含む1つ以上のロジックコンポーネントを含み得る。一例として、周辺インタフェース220は、SPI(Serial Peripheral Interface)バスプロトコル(例えば、Wiegandプロトコル及び/又はRS−485プロトコル)を用いて周辺装置230と通信し得る。別の例として、周辺インタフェース220は、異なる種類のプロトコルを使用してもよい。一実施形態では、ネットワークインタフェース218は、周辺装置230をコントローラ210と連結するための周辺インタフェースとして作動することもできる。
ハウジング222は、コントローラ210のコンポーネント群を収容し、コントローラ210のコンポーネント群を環境から保護し得る。一実施形態では、ハウジング222は、周辺装置230のうちの1つ以上を含んでもよい。別の実施形態では、ハウジング222は、管理装置130を含んでもよい。ハウジング222は、複数のユニット115又はコントローラ110を有するシステムにおいて1つのシステムユニット115及び/又はコントローラ210の他のシステムユニット115及び/又はコントローラ210からの境界を定義しうる。
以下に記載するように、コントローラ210は、1つ以上の装置上の1つ以上のサービスのためのユーザ認証情報の配信に関連した動作を実行し得る。コントローラ210はこれらの動作を、ASICの配線回路の結果として実行してもよい。コントローラ210はまた(あるいは代替的に)、これらの動作を、プロセッサ214がメモリ216といったコンピュータ可読媒体に含まれるソフトウェア命令を実行したことに応答して実行してもよい。コンピュータ可読媒体は、非一時的及び/又は有形のメモリデバイスを含み得る。メモリ216は、単一の物理的なメモリデバイス内で実装されてもよく、複数の物理的なメモリデバイスにまたがって拡散されてもよい。ソフトウェア命令は、別のコンピュータ可読媒体から又は別の装置からメモリ216に読み込まれてもよい。メモリ216に含まれるソフトウェア命令は、プロセッサ214に、本明細書に記載されるプロセスを実行させ得る。よって、本明細書に記載する実装は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも限定されない。
周辺装置230に戻って、リーダ装置240は、ユーザから認証情報を読み取り、当該認証情報をコントローラ210に提供する装置を含み得る。例えば、リーダ装置240は、ユーザから英数字の個人識別番号(PIN:personal identification number)を受け取るように構成されるキーパッド又はキーボード、磁気ストリップ又はRFIDタグといった別の種類の記憶デバイス上にコードを記憶するカードを読み取るように構成されるカードリーダ、ユーザの指紋を読み取るように構成される指紋リーダ、ユーザの虹彩を読み取るように構成される虹彩リーダ、ユーザの声紋を記録するように構成されるマイクロフォン及び声紋識別器;NFCリーダ、顔認識ソフトウェアと関連付けられるカメラ、音声認識ソフトウェアと関連付けられるマイクロフォン、並びに/又は別の種類のリーダ装置を含み得る。リーダ装置240は、認証情報を提供することのできる任意の種類のセキュリティ装置を含んでもよく、センサ260を参照して以下で説明する任意のセンサ装置といった1つ以上のセンサ装置を含んでもよい。例えば、リーダ装置240は、顔認識に使用されるカメラ及び/又は音声認識に使用されるマイクロフォンを含んでもよい。この場合、ユーザの顔又は音声を認証情報として使用し得る。
ロック装置250は、コントローラ210によって制御されるロック(錠)を含み得る。ロック装置250は、ドア(例えば、ドアが開閉しないようにする)、窓、HVAC通気孔、及び/又はセキュアな領域への別の種類のアクセス開口部をロック(施錠)し得る。例えば、ロック装置250は、電磁式ロック、コントローラ210によって制御されるモータを備える機械式ロック、電気機械式ロック、及び/又は別の種類のロックを含み得る。
センサ260は、感知(sensing)装置を含み得る。例として、センサ260は、ドアが開いているかそれとも閉じているか感知するドアセンサ、可視光監視装置(カメラ)、赤外(IR)光監視装置、熱シグ二チャ監視装置、オーディオ監視装置(マイクロフォンなど)、及び/若しくは別の種類の監視装置、動きセンサ、熱センサ、圧力センサ、及び/若しくは別の種類の警報センサといった警報センサ、ユニット115内部に位置する位置センサといったタンパセンサ、並びに/又はユニット115と関連付けられるセキュリティ保護される領域内に位置する“退出要求(request-to-exit)”ボタン、並びに/又は別の種類のセンサ装置を含んでもよい。以下の例では、センサ260を“カメラ260”と呼ぶこともある。
アクチュエータ270は、アクチュエータ装置を含み得る。一例として、アクチュエータ270は、照明装置を制御し得る。他の例として、アクチュエータ270は、侵入警報起動器(burglar alarm activator)、メッセージを再生し、若しくは警報信号を発生させるスピーカ、ディスプレイ装置、センサ260を動かす(例えば、カメラ若しくは他の監視装置の視野を制御する)モータ、ドア、窓、HVAC通気孔及び/若しくはセキュアな領域と関連付けられる別の開口部を開閉するためのモータ、ロック装置250を施錠位置若しくは開錠位置で固定するモータ、消火装置、並びに/又は別の種類のアクチュエータ装置を含んでもよい。
図2A及び図2Bには、ユニット115の例示的なコンポーネントが示されているが、他の実装では、ユニット115は、図2A及び図2Bに示すものと比べてより少数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は異なる配置のコンポーネントを含んでもよい。例えば、図2Aには単一のリーダ装置240、単一のロック装置250、単一のセンサ260、及び単一のアクチュエータ270が示されているが、実際には、周辺装置230は、複数のリーダ装置240、複数のロック装置250、複数のセンサ260、及び/又は複数のアクチュエータ270を含んでもよい。また周辺装置230は、図2Aに示す装置のうちの1つ以上を含まなくてもよい。追加的又は代替的に、ユニット115の任意のコンポーネント(又は任意のコンポーネント群)が、ユニット115の1つ以上の他のコンポーネントによって実行されるものとして記載される1つ以上のタスクを実行してもよい。
さらに、例示的な分散制御システム110は物理アクセス分散制御システムを含むが、他の実装は、物理アクセス以外のシステムを制御してもよい。一方で、分散制御システム110は、(例えば、動作環境に)ドアを開閉するための制御システム及び/又は建物若しくは施設への物理的アクセスを制御するための制御システムといった、任意の種類の物理アクセス制御システムを含んでもよい。また、分散制御システム110は、ファン(fan)を制御する(例えば始動若しくは停止する)システム、建物管理システムで警報を始動させるシステム(例えば、認証失敗、認証成功など)、又は産業オートメーションシステムでロボットアームを制御するシステムを含んでもよい。
図3Aは、システムユニット115の例示的な機能レイヤを示すブロック図である。図3Aに示すように、ユニット115は、API(application program interface)レイヤ310、アプリケーションレイヤ320、分散制御(distribution)レイヤ340、及びストレージレイヤ350を含み得る。
APIレイヤ310は、例えば、管理装置130と通信するように構成されるAPIを含む。管理者が管理装置130を使用してユニット115にログインするときに、APIレイヤ310は、管理装置130と通信して管理者を認証し得る。別の例として、APIレイヤ310は、管理装置130と通信してユニット115の構成を変更することもできる。APIレイヤ310は、管理装置130からデータを受信し、当該データを分散制御レイヤ340及び/又はストレージレイヤ350に提供し得る。また、APIレイヤ310は、管理装置130と通信してアプリケーションレイヤ320にアプリケーションをインストールすることもできる。APIレイヤ310は、様々な管理者タイプを取り扱うように構成されてもよい。例えば、APIレイヤ310は、ウェブサービス管理者、Linux管理者、ONVIF(Open Network Video Interface Forum)管理者を取り扱うためのAPI、及び/又は別の種類のAPIを含んでもよい。
アプリケーションレイヤ320は、ユニット115上にインストールされる1つ以上のアプリケーションを含み得る。アプリケーションは、他のアプリケーションの中で、制御ロジックアプリケーション、ドアを開閉するためのドア制御アプリケーション、及びユーザ認証情報を受け取るためのリーダ制御アプリケーションを含み得る。アプリケーションについては図3Bに関連してより詳細に論じる。
分散制御レイヤ340は、ユニット115と関連付けられる1つ以上の分散されたデータセットを管理し得る。例えば、分散制御レイヤ340は、データセットの配信のためにピアツーピア(peer-to-peer)ネットワークでコントローラ210を接続することができる。分散制御レイヤ340は、プロトコル(PAXOSプロトコルなど)を使用して、特定の合意ベースの分散されたデータセットの変更に関する合意を確立することができる。一例として、分散制御レイヤ340は、分散されたデータセットと関連付けられる他のシステムユニット115へ変更の提案を送信することができ、他のシステムユニット115から変更のための定足数を受信し得る。別の例として分散制御レイヤ340は、別のユニット115から受け取った提案に賛成投票してもよい。さらに別の例として、分散制御レイヤ340は、変更に賛成投票せずに、変更についての合意に達したという指示を受信する場合もある。変更についての合意の指示が受信されると、分散制御レイヤ340は、分散されたデータセットのローカルコピーの変更を行うことができる。分散制御レイヤ340は、ネットワーク120上で他のユニット115とのセキュアな接続(TLS(Transport Layer Security)接続)を維持することができる。
ストレージレイヤ350は、ユニット115と関連付けられる1つ以上のデータセットを記憶し得る。ストレージレイヤ350に記憶されたデータセットは、ローカルデータセットに対応してもよく、又は分散されたデータセットに対応してもよい。ローカルデータセットは、ローカルデータセットを記憶する特定のユニット115と関連付けられる(及び/又は特定のユニット115とのみ関連付けられる)情報を記憶し得る。分散されたデータセットは、分散されたデータセットと関連付けられる他のシステムユニット115の間で分散される情報を記憶し得る。
図3Bは、アプリケーションレイヤ320及びストレージレイヤ350についてさらなる詳細を示す、コントローラ210の例示的な機能コンポーネントのブロック図である。図3Bに示すように、アプリケーションレイヤ320は、制御ロジックアプリケーション322(若しくは“制御ロジック322”)、管理者認証ロジック323、ドア制御アプリケーション324、リーダ制御アプリケーション326、イベント処理アプリケーション328、及び/又はスケジュール処理アプリケーション330を含み得る。他のアプリケーションは、例えば、警報アプリケーションや制御アプリケーションを含んでもよい。
制御ロジック322は、受信した認証情報に基づいて、また記憶されたアクセスルールに基づいて、ユーザに物理的アクセスを許可すべきかどうかを判定し得る。管理者ロジック323は、管理者にアクセス(例えばリモートログインといったリモートアクセス)を許可し、他の管理プロセスを提供することができる。そのように、管理ロジック323は、認証情報(ユーザ名とパスワードなど)に基づいて管理者を認証し、(例えば、他の管理者のために、及び/又は物理的アクセスの許可を得ようとするユーザのために)ユーザ認証情報へのアクセス、及びユーザ認証情報の更新を管理者に承認することができる。
ドア制御アプリケーション324は、1つ以上のドア及び/又は関連付けられるロック装置250を制御し得る。例えば、ドア制御アプリケーション324は、ドアが開いているか若しくは閉じているか、及び/又は施錠されているか若しくは開錠されているか判定することができ、1つ以上の装置を、ドアを開き若しくは閉じるように、及び/又はドアを施錠し若しくは開錠するように動作させ得る。リーダ制御アプリケーション326は、1つ以上のリーダ装置240を制御することができ、1つ以上のリーダ装置240から受信される認証情報を取得し、処理し得る。イベント処理アプリケーション328は、ドア開けイベント、警報イベント、センサイベント、及び/又は他の種類のログに記録されたイベントといった、ユニット115によって記録されたイベントを処理し得る。イベント処理アプリケーション328は、報告及び/又は警報を生成し、当該報告及び/又は警報を管理装置130へ(及び/又は他のユニット115といった別の指定の装置へ)送信し得る。スケジュール処理アプリケーション330は、ユニット115と関連付けられる1つ以上のスケジュールを管理し得る。例えば、特定のユーザの集合についてのアクセスルールが、特定の時刻に基づいて変化してもよい。
ストレージレイヤ350は、分散データエリア360及び非分散データエリア370を含み得る。一実施形態では、分散データエリア360は、分散された合意ベースの(consensus-based)データ(例えばデータベース)及び/又は分散された非合意ベース(non-consensus-based)のデータ(例えばデータベース)を含み得る。非分散データエリア370は、(即ち、上述したローカルデータセットのような)分散されていない、及び/又は合意ベースではないデータ(例えばデータベース)を含み得る。“データエリア”とは、例えば、データベース及び/又はメモリエリアを参照し得る。
図3Cは、ストレージレイヤ350の例示的なコンポーネントのブロック図である。図示するように、分散データエリア360は、合意データエリア361及び非合意データエリア363を含み得る。上述したように、合意データエリア361は、データの変更が受け入れられる前にピア間での合意を必要とし得るデータを含む。上述したように、非合意データエリア363は、データの変更が受け入れられる前にピア間での合意を必要としなくてもよいデータを含む。一実施形態では、非合意データは、ユニット113において発生するイベントを含み得る。この場合、対応するユニット115は、イベントを“所有”してもよく、合意は、“スプリットブレインシンドローム(split-brain syndrome)”を回避する必要がないかもしれない。例えば、分散されたデータベースを分散する異なるユニットが、一致しない又は競合するデータを格納し、不一致又は競合を解消するため合意が達せられない場合に、スプリットブレインシンドロームが発生しうる。
図3Cに示すように、合意データエリア361は、装置固有データ362、管理者認証情報DB364、アクセス認証情報DB366、及び/又はサブスクリプションテーブル(subscription table)367を含み得る。上述したように、装置固有データ362は、コントローラ210のハードウェア構成、コントローラ210に接続される周辺装置230、アプリケーションレイヤ320にインストールされるアプリケーション、又は他の種類の情報といった、特定のユニット115に関連付けられる構成情報(configuration information)を含み得る。
管理者認証情報DB364は、システムユニット115を管理し、及び/又は運用することができるユーザを認証するための認証情報(例えば、ユーザ名及びパスワード)を格納し得る。一実施形態では、同一の管理者がコントローラ210又はユニット115のいずれかからシステム110を管理できるようにするために、管理者認証情報DB364は、他のコントローラ210の間で(例えば、合意ベースのデータベースにおいて)分散される。
アクセス認証情報DB366は、物理エリアにアクセスしたいユーザについての認証情報(カード及びpin情報、指紋情報、等)を格納し得る。一実施形態では、アクセス認証情報DB366内のデータは、ネットワーク内の他のコントローラに対し(例えば、合意ベースの分散されたデータベースに)分散され得る。
サブスクリプションテーブル367は、他の装置におけるイベントへのサブスクライブを登録したイベント及び装置のリストを含み得る。例えば、スポットライトのためのコントローラ210は、カメラのためのコントローラ210の動作検知イベントに登録しサブスクライブしてもよい。よって、ルールの集合に基づいて、カメラにより動きが検知されるとき、スポットライトは、(例えば、上述したように“警報(alarm)”を)オンにしてもよい。サブスクリプションテーブル367については、図3Eを参照して以下でより詳細に説明する。
図3Cに示すように、非合意データエリア363は、(“装置イベントエリア369”又は“第1のデータエリア”と呼ばれる)装置イベントデータエリア369、及び(“他のイベントエリア368”又は“第2のデータエリア”)と呼ばれる)他のイベントデータエリア368を格納する。デバイスイベントエリア369は、特定のユニット115及び/又はコントローラ110から生じる(又は発生する)イベントデータを格納する(又はログ(log)を取る)(例えば、ユニット115−Aは、コントローラ110−Aを有するユニット115−Aで発生するイベントに関するデータを、それ自身のエリア369に格納する)。他のイベントエリア368は、他のユニット115及び/又はコントローラ110から生じる(又は発生する)イベントデータを格納する(又はログ(log)を取る)(例えば、ユニット115−Aは、ユニット115−B〜115−Fのいずれかで発生するイベントに関するデータを、それ自身のエリア368に格納する)。上述したように、装置イベントエリア369及び他のイベントエリア368に記録されるイベントは、対応する装置(例えば、固有の装置識別子)にタグ付け又は関連付けされてもよく、合意は、スプリットブレインシンドロームを回避するために必要とされないかもしれない。
一実施形態では、装置イベントエリア369及び/又は他のイベントエリア368(及びストレージレイヤ350内の他のデータエリア)は、最大メモリスペースに関連付けられ(又は割り当てられ)得る。即ち、装置イベントエリア369(第1のデータエリア)は、多くとも第1のメモリスペースを占めるように構成され、他のイベントエリア368(第2のデータエリア)は、多くとも第2のメモリスペースを占めるように構成される。ある実装においては、装置イベントエリア369のために割り当てられる最大メモリスペース(第1のメモリスペース)は、他のイベントエリア368のために割り当てられる最大メモリスペース(第2のメモリスペース)よりも大きい。さらに、一実施形態では、エリア368及び369は、例えば、テキストファイルの各行が異なるイベントに対応する、テキストファイルであってもよい。一実施形態では、ストレージレイヤ350内の他のデータエリアは、また、最大メモリスペース(例えば、装置イベントデータエリア372)に関連付けられ(又は割り当てられ)てもよい。
非合意データエリア370は、また、特定のユニット115及び/又はコントローラ110で生じるイベントデータを格納し得る(例えば、ユニット115−Aは、ユニット115−A及び/又はコントローラ110−Aで発生するイベントに関するデータをエリア370に格納する)。データエリア368及び369のような、装置イベントデータエリア372に格納されるデータは、対応する装置(例えば、固有の装置識別子)にタグ付け又は関連付けられてもよく、合意は、スプリットブレインシンドロームを回避するために必要ではないかもしれない。一実施形態では、図3Cにおいて矢印で示すように、装置イベントエリア372からのデータは、非分散データエリア370から非合意データエリア363にコピーされてもよい。
したがって、図3Cは、対応する装置(コントローラ210)で生じるイベントデータを格納するための第1のデータエリア(装置イベントエリア369)及び複数の装置のうちの他の装置(他のコントローラ210)から生じるイベントデータを格納するための第2のデータエリア(他のイベントエリア368)を含む、メモリ(例えば、ストレージレイヤ350)を示す。さらに、述べたように、一実施形態では、第1のデータエリアは、多くとも第1のメモリスペースを占めるように構成されてもよく、第2のデータエリアは、多くとも第2のメモリスペースを占めるように構成されてもよい。
図3Dは、ストレージレイヤ350の例示的なコンポーネントの別のブロック図である。図示するように、ストレージレイヤ350は、揮発性記憶装置390及び不揮発性記憶装置392を含み得る。揮発性記憶装置390は、電力が供給される限りデータを記憶する。即ち、揮発性記憶装置390が電源を失うとすぐに、そのデータは消去される。他方、不揮発性記憶装置392は、格納されたデータの変更には電力を必要とし得るが、不揮発性記憶装置392は電力がなくでもデータを記憶することができる。一実施形態では、揮発性記憶装置390に格納されたデータ(又は格納するためのデータ)を変更するのに要する時間は、不揮発性記憶装置392に格納されたデータ(又は格納するためのデータ)を変更するのに要する時間よりも短い(例えば、著しく短い)。同様に、揮発性記憶装置390に格納されたデータ(又は格納するためのデータ)を変更するのに要する計算能力は、不揮発性記憶装置392に格納されたデータ(又は格納するためのデータ)を変更するのに要する計算能力よりも少ない(例えば、著しく少ない)かもしれない。図3Cに示される別のデータエリア(例えば、装置イベントデータエリア369、他のイベントデータエリア368、分散データエリア360、及び/又は非分散データエリア370)は、揮発性記憶エリア390及び不揮発性記憶エリア392の両方においてエリアを有し得る。
図3A〜3Dには、ユニット115の例示的な機能コンポーネントが示されているが、他の実装では、ユニット115は、図3A〜3Cに示すものと比べてより少ない機能コンポーネント、異なる機能コンポーネント、異なる配置の機能コンポーネント、又は追加的な機能コンポーネントを含んでもよい。追加的に、ユニット115内の任意の1つのコンポーネント(又は任意のコンポーネント群)は、ユニット115内の1つ以上の他の機能コンポーネントによって実行されるとして記載されている機能を実行し得る。さらに、ユニット115の機能コンポーネントは、例えば、1つ以上のASICの配線回路(hard-wired circuitry)を介して実装されてもよい。追加的又は代替的に、ユニット115の機能コンポーネントは、メモリ216から命令を実行するプロセッサ214によって実装されてもよい。
図3Eは、例示的なサブスクリプションテーブル367のブロック図である。サブスクリプションテーブル367は、サブスクライバフィールド(subscriber field)392、装置フィールド394、及び/又はイベントフィールド396を含み得る。サブスクリプションテーブル367は、図3Eに示されるものよりも多い、少ない、又は異なる配置のフィールドを含んでもよい。
サブスクライバフィールド392は、装置におけるイベントにサブスクライブするように登録されているコントローラ210を識別する。イベントフィールド392は、サブスクライバフィールド392内の対応するコントローラ210がサブスクライブしているイベントを識別する。装置フィールド394は、対応するイベントが関連付けられているコントローラ210を識別する。例えば、サブスクリプションテーブル367の最初の行に示されるように、コントローラ210−Cは、カメラ260により検知される動きを伴うコントローラ210−Aからのイベントに関するデータを受信するためにサブスクライブしている。よって、ルールの集合に基づいて、コントローラ210−Cが、カメラ260により検知されている動きに関するデータを受信するとき、コントローラ210−Cは、検知された動きに向かってそのスポットライトを点灯するためにそのアクチュエータを起動し得る。
一実施形態では、サブスクリプションテーブル367は、管理者によって手動で設定され得る。別の実施形態では、管理者は、コントローラのためのルールを設定してもよく(例えば、カメラ260により検知された動きに向かってスポットライトを動かす等)、システム110は、コントローラ210−Cをコントローラ210−Aの適切なイベントに自動的にサブスクライブするであろう。
図4は、ユニット115−Aの例示的な物理レイアウトを示す平面図である。図4に示すように、ユニット115−Aは、壁410、ドア420、コントローラ210−A、リーダ装置240、ロック装置250、センサ260、及びアクチュエータ270を含み得る。
壁410は、建物内の部屋といったセキュアな領域440を囲む。ドア420は、セキュアな領域440へのユーザのためのアクセスを提供する。この実施形態では、コントローラ210−Aは、セキュアな領域440の内部に設置されている。他の実施形態では、コントローラ210−Aは、セキュアでない領域450に設置されてもよい。リーダ装置240は、セキュアな領域440の外部に設置されており、ロック装置250はセキュアな領域440の内部において壁410及びドア420に設置されている。センサ260は、この例では、セキュアな領域440の外部のセキュアでない領域450に取り付けられた監視装置である。アクチュエータ270は、この例の監視装置の視野を制御するのに使用されるモータを含む。
ユーザが(例えば、PINを入力する、アクセスカードをスキャンする、虹彩をスキャンするなどによって)リーダ装置240に認証情報を入力すると、コントローラ210−Aは認証情報を使用してユーザのアイデンティティを認証し、アクセスルールテーブルでルックアップを実行して、ユーザのアイデンティティ及びアクセスルールに基づいてユーザにアクセスを許可すべきかどうかを判定し得る。コントローラ210−Aは、アクセスが許可されるべきであると判定した場合、ロック装置250を作動させてドア420を開錠し、ユーザにセキュアな領域440へのアクセスを許可する。
図4には、物理レイアウト400の例示的なコンポーネントが示されているが、他の実装では、物理レイアウト400は、図4に示すものと比べて、より少数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は異なる配置のコンポーネントを含んでもよい。追加的又は代替的に、物理レイアウト400内のいずれか1つのコンポーネント(又はコンポーネント群)は、物理レイアウト400の1つ以上の他のコンポーネントによって実行されるものとして記載されている1つ以上のタスクを実行してもよい。
図5は、制御システム110の例示的な物理レイアウト500を示す平面図である。図5に示すように、物理レイアウト500は、(図4に示す)ユニット115−Aを含む。物理レイアウト500は、また、部屋520−A〜部屋520−Fを有する建物510を含み得る。イーサネット(登録商標)ネットワークといったローカルネットワーク530は、システムユニット115−A〜システムユニット115−Fを相互接続し得る。この例では、システムユニット115−Aは部屋520−Aに通じる2つのドアを制御し、システムユニット115−Bは部屋520−Bに通じる外側のドアを制御し、システムユニット115−Cは部屋520−Bから部屋520−Cへの1つのドアを制御し、システムユニット115−Dは部屋520−Cから部屋520−Dへの1つのドアを制御し、システムユニット115−Eは部屋520−Dから部屋520−Eへの1つのドアを制御し、システムユニット115−Fは部屋520−Fに通じる外側のドアを制御する。
この例では、システムユニット115−A〜システムユニット115−Fは、中央制御装置(サーバなど)を含まず、1つ以上の分散されたデータセットを含み得る。例えば、システムユニット115−A〜システムユニット115−Fは、分散された認証情報テーブル、分散されたアクセスルールテーブル、及び/又は分散されたイベントログを維持し得る。管理者が管理装置130を使用して、ユーザを追加するためにシステムユニット115−Aにログインし、ユーザと関連付けられる認証情報を追加するものと仮定する。それらの追加された認証情報は、ユーザがアクセス権を有する部屋に通じるドアを制御する他のシステムユニット115に配信され得る。例えば、システムユニット115−Bに障害が発生した場合、システムユニット115−Bによって収集されたデータは、他のシステムユニットに含まれる分散されたイベントログの結果として、利用可能であり続け得る。
図5では、各ユニット115はコントローラ210と関連付けられている。さらに、図5の実装では、各コントローラ210は、他のコントローラ210とは異なる場所(例えば異なる部屋520)にある。他の実装では、いくつかのコントローラ210及びユニット115は、他のコントローラ及びユニット115とは異なる建物、異なる地理的区域、異なる国、異なる大陸などに位置してもよい。一実施形態では、ユニット115及びコントローラ210は、それらが多様な場所にあるにもかかわらず、相互に探索し合い(又はそうするよう最善を尽くし)、ピアツーピアネットワークを形成し、データセットを配信することができる。
図5には、物理レイアウト500の例示的コンポーネントが示されているが、他の実装では、物理レイアウト500は、図5に示すものと比べて、より少ないコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は異なる配置のコンポーネントを含んでもよい。例えば、別の実施形態では、中央制御装置(サーバなど)が、1つ以上の分散されたデータセットと併用されてもよい。追加的又は代替的に、物理レイアウト500の1つ以上のコンポーネントは、物理レイアウト500の1つ以上の他のコンポーネントによって実行されるものとして記載されている1つ以上のタスクを実行してもよい。
図6は、管理装置130の例示的なコンポーネントを示すブロック図である。図6に示すように、管理装置130は、バス610、プロセッサ620、メモリ630、入力装置640、出力装置650、及び通信インタフェース660を含み得る。
バス610は、管理装置130のコンポーネント間の通信を可能にするパスを含む。プロセッサ620は、命令を解釈し、実行する任意の種類のシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ、及び/若しくは処理ロジック(又はプロセッサ、マイクロプロセッサ、及び/若しくは処理ロジックのファミリ)を含んでもよい。他の実施形態では、プロセッサ620は、ASIC、FPGA、及び/又は別の種類の集積回路若しくは処理ロジックを含んでもよい。
メモリ630は、情報、データ、及び/又は命令を記憶する。メモリ630は、動的記憶デバイス、揮発性記憶デバイス、及び/又は不揮発性記憶デバイスを含んでもよい。メモリ630は、プロセッサ620が実行するための命令、又はプロセッサ620が使用するための情報を記憶し得る。例えば、メモリ620は、RAM、ROM、CAM、磁気的記録メモリデバイス及び/又は光学的記録メモリデバイスなどを含んでもよい。
入力装置640は、オペレータが管理装置130へ情報を入力することを可能にする。入力装置640は、例えば、キーボード、マウス、ペン、マイクロフォン、タッチスクリーンディスプレイなどを含んでもよい。出力装置650は、管理装置130のオペレータに情報を出力し得る。出力装置650は、ディスプレイ、プリンタ、スピーカ、及び/又は別の種類の出力装置を含んでもよい。
通信インタフェース660は、コントローラ210が、有線通信リンク、無線通信リンク、又は無線通信リンクと有線通信リンクとの組み合わせを介して他の装置と通信する(例えば、データを送信し、及び/又は受信する)ことを可能にする送受信機(送信機及び/又は受信機など)を含んでもよい。通信インタフェース660は、有線通信のためのネットワークインタフェースカード(イーサネット(登録商標)カードなど)及び/又は無線通信のための無線ネットワークインタフェース(例えばWiFi)カードを含んでもよい。
管理装置130は、システム110内のユニット115の管理に関連する動作を実行し得る。管理装置130は、これらの動作を、プロセッサ620がメモリ630といったコンピュータ可読媒体に含まれるソフトウェア命令を実行したことに応答して実行してもよい。メモリ630に含まれるソフトウェア命令は、プロセッサ620にこれらの動作を実行させ得る。
上述のように、コントローラ210は、分散方式でイベントデータを格納する。図7は、一実施形態における分散された制御システムでのイベントのデータを分散するための例示的なプロセス700のフローチャートである。プロセス700は、例えば、制御ロジック322、分散制御レイヤロジック340、コントローラ210内で実行される及び/又はイベント処理アプリケーション328により実行され得る。
プロセス700は、イベントの生成で開始する(ブロック702)。例えば、ユニット115−A内のカメラ260は、その視界内の物体の動きを検知し得る。このイベントがカメラ260からコントローラ210−Aに報告され得ることにより、コントローラ210−Aは、カメラ260からイベントに関するデータを受信する。イベントについてのデータは、動きが検知された事実、動きが検知された時間、動きの大きさなどといった情報を含み得る。コントローラ210−Aは、イベントについてサブスクライバが存在するかどうかを判定する(ブロック703)。この例では、コントローラ210−Aは、サブスクリプションテーブル367に問い合わせ得る。サブスクリプションテーブル367は、コントローラ210Cが“カメラ260上の動き”のイベントにサブスクライブすることが登録されていることを、(列394にリストされている)コントローラ210−Aに通知する。イベントに対するサブスクライバが存在する場合(ブロック704:YES)、イベントについてのデータは、分散データエリア360(例えば、非合意データエリア363の装置イベントエリア369)に格納され得る(ブロック706)。引き続きこの例では、コントローラ210−Aは、装置イベントエリア369(第1のデータエリア)に、“カメラ260上の動き”のイベントを記述するデータを格納する。イベントについてのデータは、また、コントローラ210−A及び/又はカメラ260のアイデンティティにタグ付けされてもよい。
分散データエリア360の一部として、イベントについてのデータは、他のコントローラ210(例えば、サブスクライブするコントローラ210−Cを含む、コントローラ210−B〜210−F)に分散され得る(ブロック708)。上述のように、分散は、制御ロジック322及び/又は分散制御レイヤ340により処理され得る。イベントに関するデータ(例えば、カメラ260上の動き等)は、コントローラ210−A内の装置イベントエリア369に保存されるため、コントローラ210−Cは、分散データエリア360の非合意データエリア363内のデータの分散の一部としてイベントのデータを知らされるようになる。コントローラ210−Cがイベントに関するデータを受信すると、コントローラ210−Cは、イベントに関するデータをルールと比較し、比較に基づき適当なルールに従ってイベントに作用し得る。このように、他のコントローラ(例えば、コントローラ210−C)が、イベントデータへのサブスクリプション(subscription)に関連付けられている場合に、コントローラ210−Aは、(例えば、装置イベントエリア369又は第1のデータエリアに格納された)イベントデータの他のコントローラ210への分散に優先順位をつけ得る。
上述の実施形態では、コントローラ210−Aは、コントローラ210−Aがビジーであるか否かに関わらず、装置イベントエリア369(第1のデータエリア)にイベントについてのデータを格納し(ブロック706)、他のコントローラ210に対しデータを分散する(ブロック708)。別の実施形態では、コントローラ210−Aがビジーである場合、イベントに対応するデータは、コントローラ210−A内の分散データエリア360の装置イベントエリア369に格納されることなく(又は、格納されることに加えて)、サブスクライブしているコントローラ210−Cに直接分散され得る。この場合、コントローラ210−A(例えば、ネットワークインタフェース218)は、イベントのデータと共にコントローラ210−Cに直接メッセージを送信し得る。この実施形態は、あまりビジーでないタイムピリオドまで、(例えば、コントローラ210−Aの)計算能力及びイベントのデータの分散についての(例えば、ネットワーク120の)ネットワークリソースを減少させ得る。別の実施形態では、コントローラ210−Aは、イベントにサブスクライブした他のコントローラ210にイベントについてのデータを送信するだけであってもよい。この実施形態は、コントローラ210−Aのリソースを節約し得る。コントローラ210−Aは、状態又はトリガイベント、例えば、プロセッサの負荷閾値、ネットワーク120内のトラフィック量(例えば、閾値より落ちる、又は閾値を上回っている)、処理しているイベントの数(例えば、閾値を上回る、又は下回る)等に基づいて、ビジーかどうかを判定し得る。例えば、満載のイベントを生成し処理している(例えば、ロック装置250により制御されるドアから入る)ため、コントローラ210−Aは、ビジーであるかもしれない。
イベントに対するサブスクライバが存在しない場合(ブロック704:NO)、コントローラ210−Aは、ビジーであるか否かを判定し得る(ブロック709)。コントローラ210−Aがビジーであるか否かの判定は、上述の通りである。コントローラ210−Aがビジーでない場合(ブロック710:NO)イベントについてのデータは、分散データエリア360(例えば、非合意データエリア363の装置イベントエリア369(第1のデータエリア))に格納され得る(ブロック712)。この例では、分散データエリア360の一部として、イベントについてのデータが他のコントローラ210(例えば、コントローラ210−B〜210−F)に分散される(ブロック712)。別の実施形態では、コントローラ210−Aは、他のコントローラ210がビジーであるか否かを判定し得る(図7には示さず)。本実施形態では、別のコントローラ210がビジーである場合、コントローラ210−Aは、他のコントローラ210にデータを分散する前に、他のコントローラ(例えば、コントローラ210−C)がビジーでなくなるまで待機し得る。図10を参照して後述するように、コントローラ210−Aが他のコントローラ210−Cからそれがビジーであることを示す“ホールドメッセージ(hold message)”を受信した場合、コントローラ210−Aは、別のコントローラ210−Cがビジーであると判定し得る。図10を参照して後述するように、コントローラ210−Aが他のコントローラ210−Cからそれがビジーでない(又はもはやビジーでなくなる)ことを示す“ストップホールドメッセージ(stop-hold message)”を受信した場合、コントローラ210−Aは、別のコントローラ210−Cがビジーでないと判定し得る。別の実施形態では、他のコントローラ210−Cにより送信され、かつコントローラ210−Cから受信されるイベントデータが閾値(例えば、コントローラ210−Cからのイベントデータの歴史的な分析により判定される閾値等)を上回る場合、コントローラ210−Aは、別のコントローラ210−Cがビジーであると判定し得る。
コントローラ210−Aがビジーである場合(ブロック710:YES)、イベントについてのデータは、非分散データエリア370(例えば、装置イベントエリア372)に格納されることができる(ブロック714)。上述のように、非分散データエリア370に格納されるデータは、分散制御レイヤ340による分散の影響を受けず、コントローラ210がビジーであるためこのことがリソースを節約し得る。図10を参照して以下で詳細に述べるように、例えば、コントローラ210があまりビジーでないときに、イベントについてのデータは、分散のために非分散データエリア370から分散データエリア360(例えば、装置イベントエリア369)に移動(move)又はコピーされ得る。さらに、一実施形態では、コントローラ210−Aがビジーである場合(ブロック710:YES)、イベントについてのデータは、不揮発性記憶装置392よりもむしろ揮発性記憶装置390に格納されることができる。上述のように、コントローラ210がビジーであるため、コントローラ210−Aは、不揮発性記憶装置よりもむしろ揮発性記憶装置390にデータを保存することによりリソースを節約し得る。例えば、コントローラ210があまりビジーでないときに、イベントについてのデータは、揮発性記憶装置390から不揮発性記憶装置392に移動又はコピーされてもよい。
コントローラ210−Aが(例えば、停電等で)電源を失い、揮発性記憶装置390内の(例えば、分散データエリア360の)分散されたデータが失われた場合、分散されたデータは、電力が回復したとき他の装置(例えば、コントローラ210−B〜210−F)から再構築され得る。したがって、本実施形態では、データが危険にさらされていない間、コントローラ210−Aは、(データを不揮発性記憶装置390にコピーしないことにより)リソースを節約し得る。よって、別の実施形態では、イベントについてのデータが非分散データエリア370(例えば、装置イベントエリア372)に格納される場合(ブロック714)、コントローラ210−Aがビジーであるとき(ブロック710:YES)でさえ、イベントデータは不揮発性記憶装置392に格納され得る。本実施形態では、コントローラ210−Aが電源を失い、(例えば、データが装置イベントエリア369に格納又はコピーされていないために)イベントデータが他の装置に分散されていない場合に、イベントデータは不揮発性記憶装置392から回復され得る。
コントローラ210−Aは、イベントのデータを生成及び送信することができるだけでなく、(例えば、そのネットワークインタフェース218を通じて他のコントローラ210−B〜210−Fから)イベントのデータを受信することができる。図8は、一実施形態における分散制御システムでのイベントのデータを受信するための例示的なプロセスのフローチャートである。プロセス800は、例えば、制御ロジック322、分散制御レイヤロジック340、及び/又はコントローラ210内で実行されるイベント処理アプリケーション328により実行され得る。
プロセス800は、(例えば、別のユニット115からの)イベントに関するデータの受信で開始する(ブロック802)。例えば、コントローラ210−Aは、コントローラ210−Dに関連付けられるリーダが有効なエントリーコードを受信したことを示すイベントのデータをコントローラ210−Dから受信し得る。コントローラ210−Aは、そのようなイベントにサブスクライブされているか否かを判定し得る(ブロック803)。コントローラ210−Aは、そのようなイベントにサブスクライブされているか否かを判定するために、サブスクリプションテーブル367に問い合わせし得る。サブスクリプションテーブル367(3行目)に示されるように、コントローラ210−Aは、コントローラ210−Dについての“リーダを介してユーザから受信される有効なエントリーコード”にサブスクライブしている。別の実施形態では、コントローラ210−Aは、サブスクライブしているイベントに関するデータのみ受信し得る。同様に、他のコントローラ210は、イベントにサブスクライブしている他のコントローラ210に対してだけ、イベントに関するデータを送信し得る。この場合、コントローラ210−Aは、受信されたデータに関連付けられるイベントにサブスクライブされているか否かを判定(ブロック803)する必要がないかもしれない。この実施形態は、コントローラ210−Aのリソースを節約し得る。
コントローラ210−Aがそのようなイベントにサブスクライブされている場合(ブロック804:YES)、コントローラ210−Aは、イベントのデータを、例えば非合意データエリア363の他のイベントエリア368に格納し得る(ブロック806)。コントローラ210−Aがイベントにサブスクライブされていない場合(ブロック804:NO)、コントローラ210−Aは、それにもかかわらず依然としてイベントのデータを受信し格納し得る。一実施形態では、コントローラ210(例えば、ある実装における全てのコントローラ210)は、最終的には制御システム110内の全てのイベントを受信し格納し得る。しかしながら、コントローラ210が既にビジーである場合、優先度の低いイベントを受信し分散することは、コントローラに過負荷をかけ、パフォーマンスを低下させる恐れがある。したがって、一実施形態では、コントローラ210−Aは、それがビジーであるかを判定する(ブロック807)。コントローラ210がビジーであるか否かの判定は、図7を参照して上述されている。
コントローラ210−Aがビジーでない場合(ブロック808:NO)、コントローラ210は、例えば非合意データエリア363の他のイベントエリア368(第2のデータエリア)に、イベントのデータを格納し得る(ブロック806)。コントローラ210がサブスクライブしているイベントは、より高い優先度を有することができ、したがってコントローラ210がビジーである場合であっても、コントローラ210がイベントデータを受信するときに、対応するイベントデータが扱われ得る。コントローラ210−Aがビジーである場合(ブロック808:YES)、コントローラ210は、イベントのデータを格納するよりもむしろ(例えば、揮発性記憶装置390のような記憶装置にそれを保持するよりもむしろ)、破棄し得る(ブロック810)。不揮発性記憶装置392にデータを格納することは、ビジーである間は、あまりにも負担となる恐れがあるため、それにもかかわらずコントローラ210−Aは、データを破棄し得る。(図10を参照して後述される)一実施形態では、コントローラ210−Aは、あまりビジーでないときに、(ブロック810から破棄されたデータを含む)なくなったイベントのデータを要求し得る。さらに別の実施形態では、コントローラ210−Aがあまりビジーでないときに、イベントデータは、他のコントローラ210によって、コントローラ210−A(又は全てのコントローラ210)に再送信され得る。他のコントローラ210は、例えば、コントローラ210−Aにより生成されたイベントデータ活動を監視することにより、コントローラ210−Aがあまりビジーでないことを判定し得る。したがって、コントローラ210が破棄し(ブロック810)又はそうでなければ受信していないイベントデータは、コントローラ210−A内でイベントデータを完結させるのを助けるために、最終的には、コントローラ210−Aにより要求され(又はコントローラ210−Aに再送信され)得る。
コントローラ210がイベントデータを生成及び受信するため、コントローラ210は、データで圧倒されるようになる(例えば、メモリを使い果たす)恐れがある。図9は、(例えば、装置イベントエリア369及び他のイベントエリア368が割り当てられたメモリスペースよりも多くを占めることを阻止するために)ストレージレイヤ350がデータで圧倒されないことを保証するための、例示的なプロセス900のフローチャートである。プロセス900は、制御ロジック322、分散制御レイヤロジック340、及び/又はコントローラ210で実行されるイベント処理アプリケーション328により実行されてもよい。プロセス900は、バックグラウンドプロセスとして継続的又は定期的に実行され得る。一実施形態では、イベントデータが、装置イベントエリア369、他のイベントエリア368及び/又は装置イベントエリア372に書き込まれるときに、プロセス900は実行され得る。例えば、コントローラ210は、プロセス700のブロック706、ブロック714、及び/若しくはブロック712、並びに/又はプロセス800のブロック806の後に、プロセス900を実行してもよい。
プロセス900は、データエリアが一杯であるかの判定(ブロック902)で開始する。この場合のデータエリアは、装置イベントエリア369(第1のデータエリア)、他のイベントエリア368(第2のデータエリア)、装置イベントエリア372、及び/又は任意の他のデータエリアに対応し得る。本実施形態では、別々のデータエリアは、各々最大サイズを有し得る。上述したように、例えば、装置イベントエリア369(第1のデータエリア)は、多くとも第1のメモリスペースを占め、他のイベントエリア368(第2のデータエリア)は、多くとも第2のメモリスペースを占め得る。(装置イベントエリア369に属している)第1のメモリスペースは、(他のイベントエリア368に属している)第2のメモリスペースより大きくてもよい。代替的に、装置イベントエリア369は装置イベントエリア372と組み合わせて、他のイベントエリア368よりも多くのスペースを割り当てられ得る。データエリアが一杯、一杯に近い、又は一杯より多い場合(ブロック904:YES)、イベントデータ(例えば、より古いイベントデータ又は最も古いイベントデータ)は、除去され得る(ブロック906)。例えば、コントローラ210−Aが、装置イベントエリア369(第1のデータエリア)にイベントデータを格納しているが、エリア369(第1のデータエリア)がその割り当てられた最大値(第1のメモリスペース)を超過する場合、コントローラ210は、装置イベントエリア369(第1のデータエリア)がその割り当てられた最大値(第1のメモリスペース)よりも多くを占めることを阻止するために、より古いイベントデータ又は最も古いイベントデータを除去し得る。同様に、コントローラ210−Aが他のイベントエリア368にイベントデータを格納しているが、エリア368(第2のデータエリア)が、その割り当てられた最大値(第2のメモリスペース)に達しようとしている場合、コントローラ210は、他のイベントエリア368(第2のメモリスペース)がその割り当てられた最大値(第2のメモリスペース)よりも多くを占めることを阻止するために、より古いイベントデータ又は最も古いイベントデータを除去し得る。一実施形態では、各ユニット(例えば、コントローラ210−Aを有するユニット115−A)は、他のコントローラ210よりも、それ自身に関するイベントデータをより多く格納する。即ち、各装置イベントエリア369について割り当てられた最大値(第1のデータエリアの第1のメモリスペース)は、対応する他のイベントエリア368について割り当てられた最大値(第2のデータエリアの第2のメモリスペース)よりも大きくてもよい。
したがって、プロセス900によれば、コントローラ210−Aは、第1のデータエリア(装置イベントエリア369)が第1のメモリスペースより多くを占めることを阻止するために、第1のデータエリア(装置イベントエリア369)からイベントデータを除去し得る。コントローラ210−Aは、また、第2のデータエリアが、第2のメモリスペースより多くを占めることを阻止するために、第2のデータエリア(他のイベントエリア368)からイベントデータを除去し得る。一実施形態では、コントローラ210は、第1のデータエリア(装置イベントエリア369)から最も古いイベントデータを除去し、第2のデータエリア(他のイベントエリア368)から最も古いイベントデータを除去し得る。プロセス700及び800によれば、コントローラ210−Aは、ネットワークインタフェースを通じて、第1のデータエリア(装置イベントエリア369)から他のコントローラ210にイベントデータを分散し、及び、第2のデータエリア(他のイベントエリア368)に格納するためにネットワークインタフェースを通じて他のコントローラ210からイベントデータを受信し得る。
上述のように、コントローラ210−Aは、それがビジーでない場合(又はビジーでないよりも少しビジーである場合)に、イベントデータを分散し得る。図10は、一実施形態において、コントローラがビジーであるか否かに基づいて、分散制御システムでイベントを分散するための例示的なプロセス1000のフローチャートである。プロセス1000は、例えば、制御ロジック322、分散制御レイヤロジック340、及び/又はコントローラ210で実行されるイベント処理アプリケーション328により実行され得る。例えば、プロセス1000は、バックグラウンドプロセスとして、継続的又は定期的に実行されてもよい。
この例では、プロセス100は、コントローラ210がビジーであるかの判定で開始する(ブロック1002)コントローラ210−Aがビジーであるかの判定については、上述の通りである。一実施形態では、コントローラ210−Aがビジーである場合(ブロック1004:YES)、コントローラ210−Aは、他のコントローラ(例えば、コントローラ210−B〜210−F)にホールドメッセージをブロードキャストし得る。他のコントローラ210−B〜210−Fがそのような標識(indication)を受信する場合、それらの他のコントローラ210−B〜210−Fは、優先度がより低いデータ及び/又は情報といった、いくつか又は全てのイベントデータのコントローラ210−Aへの送信又は分散を停止し得る。一実施形態では、例えば、合意データエリア361に格納されたデータ及び情報は、非合意データエリア363に格納されたデータよりも高い優先度を有する。非合意データエリア363を超えて合意データエリア361に格納されたデータに関する情報に優先順位をつけることは、合意データエリアがそこに格納されたデータに関する合意を達成しない可能性を減少させることができる。さらに、上述のように、コントローラ210−Aが関連付けられるサブスクリプションに対するイベントのデータは、コントローラ210−Aが関連付けられていないサブスクリプションに対するイベントのデータよりも優先度が高いと考えられ得る。
コントローラ210−Aがビジーでない場合(ブロック1004:NO)コントローラ210−Aは、他のコントローラ(例えば、コントローラ210−B〜210−F)にストップホールドメッセージをブロードキャストし得る(ブロック1008)(例えば、特に、コントローラ210−Aがブロック1006でホールドメッセージをブロードキャストした実施形態において)。コントローラ210−Aがビジーでない場合(ブロック1004:NO)、コントローラ210−Aは、非分散データエリア370から分散データエリア360(例えば、装置イベントエリア369(第1のデータエリア))にイベントデータをコピーし得る(ブロック1010)。上述のように、分散データエリア360に保存されたデータは、制御ロジック322及び/又は分散制御レイヤ340により分散されることができる。非分散データエリア370から分散データエリア360にコピーされるデータは、コントローラ210−Aがあまりにビジーであった(ブロック710:YES)ために、分散データエリア360に保存されなかったデータを含むことができる。上述のように、コントローラ210−Aは、それがあまりビジーでないときに、失われたイベントのデータ(ブロック810から破棄されたデータを含む)についての要求を送信し得る(ブロック1012)。さらに別の実施形態では、コントローラ210−Aがあまりビジーでないときに、イベントデータは他のコントローラ210により再送信され得る。他のコントローラ210は、コントローラ210−Aからの活動(例えば、送信されたイベント)が減少しているときにコントローラ210−Aがあまりビジーでないかどうかを判定し得る。したがって、コントローラ210が破棄し(ブロック810)、又はそうでなければ受信していないイベントデータは、コントローラ210−A内でイベントデータを完結させるのを助けるために、最終的には、コントローラ210−Aにより要求され(又はコントローラ210−Aに再送信され)得る。このように、イベントデータの分散は、ビジーな期間からビジーでない期間にシフトされる。
プロセス700、800、及び1000及び上述の説明により、イベントデータの分散を停止するために、通信ネットワークを通じて装置の中の他の1つから標識が受信される場合、コントローラ210−Aは、第1のデータエリア(装置イベントエリア369)からコントローラ210の中の別の1つにイベントデータを分散することを停止し得る。一実施形態では、対応する他のコントローラ210内のプロセッサがプロセッサ負荷閾値を超過する場合、コントローラ210の中の他の1つは、イベントデータの分散を停止することを示し得る。
一実施形態は、管理者が管理装置130を使用して、コントローラ210のうちのいずれか又は全てに格納されるデータにアクセスするためにコントローラ(例えば、コントローラ210−A〜210−Fのうちいずれか1つ)にログインできるようにする。即ち、管理者は、管理装置130を使用して、コントローラ210−A又はコントローラ210−B〜210−Fのうちのいずれかに格納されているデータにアクセスするためにコントローラ210−Aにログインすることができる。図11は、一実施形態において、管理者がコントローラ210に格納されているデータにアクセスするための例示的なプロセス1100のフローチャートである。プロセス1100は、例えば、制御ロジック322、分散制御レイヤロジック340、及び/又はコントローラ210で実行されるイベント処理アプリケーション328により実行されてもよい。
この例では、プロセス1100は、イベントデータなどのデータについての要求を受信することで開始する(ブロック1102)。例えば、管理者は、管理装置130を使用して、装置イベントエリア369(第1のデータエリア)、他のイベントエリア368(第2のデータエリア)、及び/又は装置イベントエリア372内のイベントデータを要求及び受信するために、コントローラ210のうちの任意の1つにログイン又は任意の1つと通信する。ある場合において、管理者は、要求されたデータを分析し、及びデータについて報告することを望むかもしれない。管理者が、管理装置130(例えば、システムユニット115に関連する追加の装置)からコントローラ210−Aにログインすると仮定する。コントローラ210−Aが、要求されたデータを有する場合(ブロック114:YES)、コントローラ210−Aは、要求している装置(例えば、管理装置130又は“追加の装置”)に対し要求されたデータを送信することができる(ブロック1106)。しかし、コントローラ210−Aは、装置イベントエリア369(第1のデータエリア)、他のイベントエリア368(第2のデータエリア)、又は装置イベントエリア372に格納されている、要求されたイベントデータの全てを有していないかもしれない(例えば、イベントデータがコントローラ210−Aにまだ分散されていないかもしれず、又は、プロセス900の間にコントローラ210−A内で除去されて他の場所に格納されているかもしれない)。コントローラ210−Aが要求されたデータを有していない場合(ブロック1104:NO)、コントローラ210−Aは、他のコントローラ210(例えば、コントローラ210−B〜210−F)からデータを要求することができる(ブロック1110)。コントローラ210−Aは、その後、要求されたデータを受信し(ブロック1112)、それを要求元に送信するであろう(ブロック114)。一実施形態では、コントローラ210−Aは、データがコントローラ210−Aを通過することなく、管理装置130に(例えば、直接)関連するデータを送信するように他のコントローラ210−B〜210−Fに要求し得る。
したがって、プロセス1100は、第1のデータエリア(装置イベントエリア369)に格納されたイベントデータ又は第2のデータエリア(他のイベントエリア368)に格納されたイベントデータを要求及び受信するために、コントローラ210のうち1つと通信する追加の装置(管理装置130)を開示する。
以上の明細書では、添付の図面を参照して様々な実施形態を説明した。しかし、添付の特許請求の範囲に記載される本発明の広範な範囲から逸脱することなく、実施形態に様々な改変及び変更を加えることができ、追加的な実施形態を実現することができることは明らかであろう。本明細書及び図面は、したがって、限定としてではなく例示とみなされるべきである。例えば、図7及び8に関連して一連のブロックが記載されているが、ブロック及び/又は信号フローの順序は、他の実装では変更されてもよい。さらに、依存関係の無いブロック及び/又は信号フローは並列に実行されてもよい。
一実施形態では、方法及びシステムは、合意データエリア361を省略し得る(例えば、合意ベースのデータベースを含まない)。別の実施形態では、方法及びシステムは、装置イベントデータエリア369を分散しなくてもよく、及び/又は、他のイベントデータエリア368を分散しなくてもよい。
前述のシステム及び/又は方法は、各図に示す実装形態において、多くの異なる形態のソフトウェア、ファームウェア、及びハードウェアで実装され得ることが理解されるであろう。これらのシステム及び方法を実装するのに使用される実際のソフトウェアコード又は専用の制御ハードウェアは、各実施形態を限定するものではない。よって、システム及び方法の動作及び振る舞いは、特定のソフトウェアコードを参照せずに記載された。すなわち、ソフトウェア及び制御ハードウェアは、本明細書の記載に基づくシステム及び方法を実装するように設計することができることが理解される。
さらに、前述のある特定の部分が、1つ以上の機能を実行するコンポーネントとして実装されてもよい。コンポーネントとは、本明細書で使用する場合、プロセッサ、ASIC、FPGAといったハードウェア、又はハードウェアとソフトウェアの組み合わせ(ソフトウェアを実行するプロセッサなど)を含み得る。
“含む(comprises及び/又はcomprising)”という用語は、本明細書で使用する場合、記述される特徴、整数、ステップ又はコンポーネントの存在を指定するが、1つ以上の他の特徴、整数、ステップ、コンポーネント又はそのグループを排除するものではない。さらに、“例示的な(exemplary)”(“例示的な実施形態”、“例示的な構成”など)という用語は、“一例として(as an example)”を意味し、“好ましい(preferred)”、“最善の(best)”などを意味するものではない。
本出願で使用されるいかなる要素、動作、又は命令も、特に明示しない限り、実施形態にとって不可欠又は本質的であると解釈すべきではない。また、本明細書で使用する場合、冠詞の“a”は1つ以上の項目を含むことが意図されている。さらに、“〜に基づいて(based on)”という句は、特に明示しない限り、“少なくとも一部は〜に基づいて”を意味するものである。

Claims (24)

  1. 分散されたピアツーピアネットワーク内で接続された複数の装置を含み、
    前記複数の装置のうちの各々の装置は、
    合意データエリア及び非合意データエリアを含むメモリと、
    ここで、前記複数の装置は、データを前記合意データエリア内に分散させ、かつ、データを前記非合意データエリア内に分散させるように前記分散されたピアツーピアネットワーク内で接続され、
    前記非合意データエリアは、第1のデータエリアおよび第2のデータエリアを含み、
    前記メモリに対応する前記装置から生じ、かつ、前記複数の装置のうちの他の装置からは生じない第1のイベントデータを格納するために前記第1のデータエリアは構成され、
    前記他の装置から生じる第2のイベントデータを格納するために前記第2のデータエリアは構成され、
    前記第1のデータエリアは、多くとも第1の最大メモリスペースを占めるように構成され、
    前記第2のデータエリアは、多くとも第2の最大メモリスペースを占めるように構成され、
    前記第1のイベントデータは、生じたイベントを報告するためのデータであり、前記第2のイベントデータは、生じたイベントを報告するためのデータであり、
    プロセッサと、を含み、
    前記プロセッサは、前記合意データエリア内のデータを変更し、前記非合意データエリア内のデータを変更し、
    前記合意データエリア内のデータを変更するための定足数を要求し、前記非合意データエリア内のデータを変更するための定足数を要求せず、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したかどうかと、前記第2のデータエリアが前記第2の最大メモリスペースに達したかどうかとを判定し、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したと判定する場合に、前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記メモリに対応する前記装置から生じた前記格納された第1のイベントデータを前記第1のデータエリアから除去し、
    前記第2のデータエリアが前記第2の最大メモリスペースに達したと判定する場合に、前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記他の装置から生じた前記格納された第2のイベントデータを前記第2のデータエリアから除去し、かつ、
    ネットワークインターフェースを通じて、前記第1のイベントデータを前記他の装置に分散させ、そして、前記第2のデータエリアに格納するために、前記ネットワークインターフェースを通じて前記他の装置から前記第2のイベントデータを受信する、システム。
  2. 前記複数の装置のうち1つより多くの装置内の各プロセッサは、前記ピアツーピアネットワークにおいて、前記第1のイベントデータを他の装置に分散させるように構成され、
    前記複数の装置のうち1つより多くの装置内の各プロセッサは、前記ピアツーピアネットワークにおいて、前記第2のイベントデータを他の装置に分散させるように構成される、請求項1に記載のシステム。
  3. 前記第1の最大メモリスペースは、前記第2の最大メモリスペースより大きく、
    前記第1のイベントデータは、前記装置で発生したイベントを報告するためのデータであり、かつ、前記第2のイベントデータは、前記複数の装置のうちの前記他の装置で発生したイベントを報告するためのデータである、請求項1に記載のシステム。
  4. 前記複数の装置は、物理アクセス制御システム(PACS:physical access control system)内の複数のシステムユニットを含み、
    前記複数のシステムユニットのうちの一つは、コントローラおよび周辺装置を含み、
    前記システムユニットで発生したイベントを報告する前記第1のイベントデータは、前記周辺装置がリーダ装置である場合にリーダ装置が認証情報を受信したことの標識、または、前記周辺装置がカメラである場合にカメラが動きを検知したことの標識を含み、
    前記プロセッサは、前記第1のイベントデータ及び前記第2のイベントデータをルールと比較し、前記比較に基づいて警報を出すように構成される、請求項3に記載のシステム。
  5. 前記装置がビジーかどうかを判定し、
    前記装置がビジーであると前記プロセッサが判定する場合に前記ピアツーピアネットワークを通じて前記第1のイベントデータを前記他の装置に分散させることを停止し、かつ、
    前記装置がビジーであると前記プロセッサが判定する場合に、前記装置から生じる前記第1のイベントデータを前記第1のデータエリア内に格納することを継続するように、前記プロセッサは構成される、請求項2に記載のシステム。
  6. 前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記第1のデータエリアから最も古い前記第1のイベントデータを除去するように前記プロセッサは構成され、
    前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記第2のデータエリアから最も古い前記第2のイベントデータを除去するように前記プロセッサは構成される、請求項1に記載のシステム。
  7. 前記複数の装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられることを判定し、
    前記装置がビジーであると前記プロセッサが判定する場合、および、前記複数の装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられると前記プロセッサが判定する場合に、前記第1のイベントデータを前記複数の装置のうちの他の1つへ送信するように、前記プロセッサは構成される、請求項5に記載のシステム。
  8. 第1の閾値をパスするネットワーク内のトラフィック量、第2の閾値をパスする前記プロセッサの負荷、または、第3の閾値をパスする、前記プロセッサによって処理されるイベントの数に基づいて、前記装置がビジーかどうかを判定するように、前記プロセッサは構成される、請求項5に記載のシステム。
  9. 前記第1のイベントデータまたは前記第2のイベントデータを前記複数の装置のうちの他の一つへ分散させることを停止するために、前記ネットワークインターフェースを通じて前記複数の装置のうちの他の一つから標識が受信される場合、前記第1のイベントデータまたは前記第2のイベントデータを前記複数の装置のうちの他の一つへ分散させることを停止するように、前記プロセッサは構成される、請求項1に記載のシステム。
  10. 前記第1のデータエリアは、揮発性メモリエリアおよび不揮発性メモリエリアを含み、
    前記装置がビジーであると前記プロセッサが判定する場合には前記第1のイベントデータを前記揮発性メモリエリア内に格納し、
    前記装置がもはやビジーではないと前記プロセッサが判定する場合には前記第1のイベントデータを前記不揮発性メモリエリアへ移動させるように、前記プロセッサは構成される、請求項5に記載のシステム。
  11. 装置であって、
    合意データエリア及び非合意データエリアを含むメモリと、
    ここで、前記装置は、データを前記合意データエリア内に分散させ、かつ、データを前記非合意データエリア内に分散させるように、分散されたピアツーピアネットワーク内で接続されるように構成され、
    前記非合意データエリアは、第1のデータエリアおよび第2のデータエリアを含み、
    前記装置から生じ、かつ、ピアツーピアネットワーク内で前記装置と接続された一以上の他の装置からは生じない第1のイベントデータを格納するために前記第1のデータエリアは構成され、
    前記装置と前記ピアツーピアネットワーク内で接続された前記一以上の他の装置から生じた第2のイベントデータを格納するために前記第2のデータエリアは構成され、
    前記第1のデータエリアは、多くとも第1の最大メモリスペースを占めるように構成され、
    前記第2のデータエリアは、多くとも第2の最大メモリスペースを占めるように構成され、
    前記第1のイベントデータは、生じたイベントを報告するためのデータであり、前記第2のイベントデータは、生じたイベントを報告するためのデータであり、
    プロセッサと、を含み、
    前記プロセッサは、前記合意データエリア内のデータを変更し、前記非合意データエリア内のデータを変更し、
    前記合意データエリア内のデータを変更するための定足数を要求し、前記非合意データエリア内のデータを変更するための定足数を要求せず、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したかどうかと、前記第2のデータエリアが前記第2の最大メモリスペースに達したかどうかとを判定し、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したと判定する場合に、前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記装置から生じた前記格納されたイベントデータを前記第1のデータエリアから除去し、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したと判定する場合に、前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記格納されたイベントデータを前記第2のデータエリアから除去し、かつ、
    ネットワークインターフェースを通じて、前記第1のイベントデータを前記他の装置に分散させ、そして、前記第2のデータエリアに格納するために、前記ネットワークインターフェースを通じて前記他の装置から前記第2のイベントデータを受信する、装置。
  12. 前記プロセッサは、前記ピアツーピアネットワークにおいて、前記第1のイベントデータを前記一以上の他の装置に分散させるように構成され、
    前記プロセッサは、前記ピアツーピアネットワークにおいて、前記第2のイベントデータを前記一以上の他の装置に分散させるように構成され、
    前記第1の最大メモリスペースは、前記第2の最大メモリスペースより大きい、請求項11に記載の装置。
  13. 前記装置は、物理アクセス制御システム(PACS:physical access control system)内のシステムユニットであり、
    前記システムユニットは、コントローラおよび周辺装置を含み、
    前記第1のイベントデータは、前記システムユニットで発生したイベントを報告するためのデータであり、
    前記第2のイベントデータは、前記ピアツーピアネットワーク内の前記一以上の他の装置で発生したイベントを報告するためのデータであり、
    前記システムユニットで発生したイベントを報告する前記第1のイベントデータは、前記周辺装置がリーダ装置である場合にリーダ装置が認証情報を受信したことの標識、または、前記周辺装置がカメラである場合にカメラが動きを検知したことの標識を含む、請求項12に記載の装置。
  14. 前記プロセッサは、前記第1のイベントデータ及び前記第2のイベントデータをルールと比較し、前記比較に基づいて警報を出すように構成され、
    前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記第1のデータエリアから最も古い前記第1のイベントデータを除去するように前記プロセッサは構成され、
    前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記第2のデータエリアから最も古い前記第2のイベントデータを除去するように前記プロセッサは構成される、請求項11に記載の装置。
  15. 前記装置がビジーかどうかを判定し、
    複数の前記装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられることを判定し、
    前記装置がビジーであると前記プロセッサが判定する場合に、前記ピアツーピアネットワークを通じて前記第1のイベントデータを他の装置に分散させることを停止し、
    前記装置がビジーであると前記プロセッサが判定する場合に、前記装置から生じる前記第1のイベントデータを前記第1のデータエリア内に格納することを継続し、
    前記装置がビジーであること、および、複数の前記装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられることを前記プロセッサが判定する場合に、前記第1のイベントデータを前記複数の装置のうちの他の1つへ送信するように、前記プロセッサは構成される、請求項12に記載の装置。
  16. 第1の閾値をパスする前記ピアツーピアネットワーク内のトラフィック量、第2の閾値をパスする前記プロセッサの負荷、または、第3の閾値をパスする、前記プロセッサによって処理されるイベントの数に基づいて、前記装置がビジーかどうかを判定するように、前記プロセッサは構成される、請求項15に記載の装置。
  17. 複数の装置のうちの第1の装置から生じ、かつ、前記第1の装置以外の装置からは生じない第1のイベントデータをメモリの第1のデータエリア内に格納するステップと、
    ここで、前記メモリは、合意データエリアおよび非合意データエリアを含み、
    前記複数の装置は、データを前記合意データエリア内に分散させ、かつ、データを前記非合意データエリア内に分散させるように、分散されたピアツーピアネットワーク内で接続され、
    前記非合意データエリアは、前記第1のデータエリアおよび第2のデータエリアを含み、
    前記第1のデータエリアは、多くとも第1の最大メモリスペースを占めるように構成され、
    前記第1のイベントデータは、生じたイベントを報告するためのデータであり、
    前記複数の装置は、分散されたピアツーピアネットワーク内で接続され、
    前記第1の装置以外の装置から生じる第2のイベントデータを前記第2のデータエリア内に格納するステップと、
    前記第2のデータエリアは、多くとも第2の最大メモリスペースを占めるように構成され、
    前記第2のイベントデータは、生じたイベントを報告するためのデータであり、
    定足数を要求する、前記合意データエリア内のデータを変更するステップと、
    定足数を要求しない、前記非合意データエリア内のデータを変更するステップと、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したかどうかを判定するステップと、
    前記第2のデータエリアが前記第2の最大メモリスペースに達したかどうかを判定するステップと、
    前記第1のデータエリアが前記第1の最大メモリスペースに達したと判定された場合に、前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記第1のイベントデータを前記第1のデータエリアから除去するステップと、
    前記第2のデータエリアが前記第2の最大メモリスペースに達したと判定された場合に、前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記第2のイベントデータを前記第2のデータエリアから除去するステップと、
    ネットワークインターフェースを通じて、前記第1のイベントデータを他の装置に分散させ、そして、前記第2のデータエリアに格納するために、前記ネットワークインターフェースを通じて前記他の装置から前記第2のイベントデータを受信するステップと、
    を含む、方法。
  18. 前記第1の最大メモリスペースは、前記第2の最大メモリスペースより大きく、
    前記第1の装置は、物理アクセス制御システム(PACS:physical access control system)内のシステムユニットであり、
    前記システムユニットは、コントローラおよび周辺装置を含み、
    前記第1のイベントデータは、前記システムユニットで発生したイベントを報告するためのデータであり、かつ、前記第2のイベントデータは、前記第1の装置以外の前記装置で発生したイベントを報告するためのデータであり
    前記システムユニットで発生したイベントを報告する前記第1のイベントデータは、前記周辺装置がリーダ装置である場合にリーダ装置が認証情報を受信したことの標識、または、前記周辺装置がカメラである場合にカメラが動きを検知したことの標識を含む、請求項17に記載の方法。
  19. 前記第1のデータエリアが前記第1の最大メモリスペースより多くを占めることを阻止するために、前記第1のデータエリアから最も古い前記第1のイベントデータを除去するステップと、
    前記第2のデータエリアが前記第2の最大メモリスペースより多くを占めることを阻止するために、前記第2のデータエリアから最も古い前記第2のイベントデータを除去するステップと、をさらに含む、請求項17に記載の方法。
  20. 前記装置がビジーかどうかを判定するステップと、
    前記複数の装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられることを判定するステップと、
    前記装置がビジーであると判定される場合に、前記ピアツーピアネットワークを通じて前記第1のイベントデータを前記他の装置に分散させることを停止するステップと、
    前記装置がビジーであると判定される場合に、前記装置から生じる前記第1のイベントデータを前記第1のデータエリア内に格納することを継続するステップと、
    前記装置がビジーであること、および、前記複数の装置のうちの他の1つが、前記第1のイベントデータへのサブスクリプションに関連付けられることが判定される場合に、前記第1のイベントデータを前記複数の装置のうちの他の1つへ送信するステップと、
    をさらに含む、請求項19に記載の方法。
  21. 前記装置がビジーであると前記プロセッサが判定する場合に、前記非合意データエリア内にデータを分散させることを停止しながら、前記合意データエリア内にデータを分散させることを継続するように、前記プロセッサは構成され、
    前記第1のデータエリアが一杯、一杯に近い、又は一杯より多い場合に、前記第1のデータエリアが前記第1の最大メモリスペースに達したと判定するように、前記プロセッサは構成され、
    前記第2のデータエリアが一杯、一杯に近い、又は一杯より多い場合に、前記第2のデータエリアが前記第2の最大メモリスペースに達したと判定するように、前記プロセッサは構成される、請求項5に記載のシステム。
  22. 前記合意データエリアは、ユーザが物理エリアにアクセスするためのユーザ認証情報のデータベースを含む、請求項1に記載のシステム。
  23. 前記合意データエリアは、ユーザが物理エリアにアクセスするためのユーザ認証情報のデータベースを含む、請求項11に記載の装置
  24. ユーザが物理エリアにアクセスするためのユーザ認証情報のデータベースを前記合意データエリア内に格納するステップをさらに含む、請求項17に記載の方法。
JP2014187457A 2013-09-16 2014-09-16 アクセス制御システムにおける分散されたイベント Active JP6307393B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/028,198 US9807161B2 (en) 2013-09-16 2013-09-16 Distributed events in an access control system
US14/028,198 2013-09-16

Publications (3)

Publication Number Publication Date
JP2015057703A JP2015057703A (ja) 2015-03-26
JP2015057703A5 JP2015057703A5 (ja) 2017-08-31
JP6307393B2 true JP6307393B2 (ja) 2018-04-04

Family

ID=49263127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014187457A Active JP6307393B2 (ja) 2013-09-16 2014-09-16 アクセス制御システムにおける分散されたイベント

Country Status (6)

Country Link
US (1) US9807161B2 (ja)
EP (1) EP2849068B1 (ja)
JP (1) JP6307393B2 (ja)
KR (1) KR101940086B1 (ja)
CN (1) CN104468689B (ja)
TW (1) TW201523451A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100378A1 (en) * 2013-10-04 2015-04-09 Caterpillar Inc. Supply chain management method and system
KR20160052240A (ko) * 2014-11-04 2016-05-12 삼성전자주식회사 복수의 메모리 장치들을 관리하기 위한 방법 및 장치
JP6785305B2 (ja) 2015-07-15 2020-11-18 15 セカンズ オブ フェイム,インコーポレイテッド 顔認識及びコンテキストビデオストリームで個人を識別するためのビデオ解析技術のための装置及び方法
SG10201912947XA (en) 2015-10-21 2020-02-27 15 Seconds Of Fame Inc Methods and apparatus for false positive minimization in facial recognition applications
GB201707050D0 (en) 2017-05-03 2017-06-14 British American Tobacco Investments Ltd Data communication
KR101956882B1 (ko) 2017-11-01 2019-06-19 국민대학교산학협력단 비트맵 기반의 분산 네트워크 빈발 이벤트 수집 장치 및 방법, 이를 저장하는 기록매체
GB201722278D0 (en) 2017-12-29 2018-02-14 British American Tobacco Investments Ltd Device identification and method
GB201722241D0 (en) * 2017-12-29 2018-02-14 British American Tobacco Investments Ltd Data capture across devices
US10936856B2 (en) 2018-08-31 2021-03-02 15 Seconds of Fame, Inc. Methods and apparatus for reducing false positives in facial recognition
CN111611193B (zh) * 2019-02-22 2023-06-20 阿里巴巴集团控股有限公司 事件处理方法、装置和设备
US11010596B2 (en) 2019-03-07 2021-05-18 15 Seconds of Fame, Inc. Apparatus and methods for facial recognition systems to identify proximity-based connections
US10997206B2 (en) * 2019-04-08 2021-05-04 Sap Se Subscription-based change data capture mechanism using database triggers
US11341351B2 (en) 2020-01-03 2022-05-24 15 Seconds of Fame, Inc. Methods and apparatus for facial recognition on a user device
US11997112B1 (en) 2020-11-06 2024-05-28 Wells Fargo Bank, N.A. Access control threat detection
JP2023173646A (ja) * 2022-05-26 2023-12-07 株式会社日立製作所 データ共有システム、データ共有方法、及びデータ共有プログラム

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4581606A (en) * 1982-08-30 1986-04-08 Isotec Industries Limited Central monitor for home security system
US5276867A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
JP4309480B2 (ja) * 1995-03-07 2009-08-05 株式会社東芝 情報処理装置
US6347335B1 (en) 1995-09-22 2002-02-12 Emc Corporation System using a common and local event logs for logging event information generated by plurality of devices for determining problem in storage access operations
US7716486B2 (en) * 1995-10-02 2010-05-11 Corestreet, Ltd. Controlling group access to doors
EP0864028A1 (en) * 1995-12-02 1998-09-16 Ji-Tae Kim Intelligent safe system
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
US9230375B2 (en) * 2002-04-08 2016-01-05 Assa Abloy Ab Physical access control
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
US6145045A (en) * 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
GB2341249A (en) * 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
US8266266B2 (en) * 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US6389510B1 (en) * 2000-04-25 2002-05-14 Lucent Technologies Inc. Method and apparatus for caching web-based information
US6504479B1 (en) * 2000-09-07 2003-01-07 Comtrak Technologies Llc Integrated security system
WO2002071241A1 (en) 2001-02-09 2002-09-12 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US20030101155A1 (en) * 2001-11-23 2003-05-29 Parag Gokhale Method and system for scheduling media exports
US7386376B2 (en) * 2002-01-25 2008-06-10 Intelligent Mechatronic Systems, Inc. Vehicle visual and non-visual data recording system
AU2003228468B2 (en) * 2002-04-08 2009-10-01 Assa Abloy Ab Physical access control
JP2004062630A (ja) * 2002-07-30 2004-02-26 Fujitsu Ltd Fifoメモリ及び半導体装置
US7197662B2 (en) * 2002-10-31 2007-03-27 Ring Technology Enterprises, Llc Methods and systems for a storage system
US20050010518A1 (en) * 2003-07-07 2005-01-13 Friedman Allen R. Method and system for transfer of employee stock options
US7370089B2 (en) * 2003-07-11 2008-05-06 International Business Machines Corporation Autonomic learning method to load balance output transfers of two peer nodes
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US7444379B2 (en) * 2004-06-30 2008-10-28 International Business Machines Corporation Method for automatically setting chat status based on user activity in local environment
US8301938B2 (en) * 2005-03-21 2012-10-30 Hewlett-Packard Development Company, L.P. Managing memory health
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US20080028230A1 (en) * 2006-05-05 2008-01-31 Tri-D Systems, Inc. Biometric authentication proximity card
US7917471B2 (en) * 2006-07-14 2011-03-29 Nokia Corporation Method for obtaining information objects in a communication system
JP2008112293A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd 管理計算機及び電源制御方法並びに計算機システム
CN101174337A (zh) * 2006-11-03 2008-05-07 上海银晨智能识别科技有限公司 基于人脸识别的监控装置及嵌入式门禁监控系统
EP2119235A4 (en) * 2007-02-02 2011-12-21 Honeywell Int Inc SYSTEMS AND METHODS FOR MANAGING LIVE VIDEO DATA
KR100871711B1 (ko) * 2007-05-03 2008-12-08 삼성전자주식회사 싱글-엔디드 시그널링과 차동 시그널링을 지원하는 다중위상 송/수신 회로 및 차동 시그널링에서 싱글-엔디드시그널링 전환을 위한 클럭킹 방법
US7920843B2 (en) * 2007-06-15 2011-04-05 Alarm.Com Incorporated Alarm system with two-way voice
US8203426B1 (en) 2007-07-11 2012-06-19 Precision Edge Access Control, Inc. Feed protocol used to report status and event information in physical access control system
US8122497B2 (en) 2007-09-10 2012-02-21 Redcloud, Inc. Networked physical security access control system and method
JP4995064B2 (ja) * 2007-12-21 2012-08-08 キヤノン株式会社 画像出力装置及び画像出力方法
US7965195B2 (en) * 2008-01-20 2011-06-21 Current Technologies, Llc System, device and method for providing power outage and restoration notification
JP4896057B2 (ja) * 2008-03-26 2012-03-14 ルネサスエレクトロニクス株式会社 送信タイミング変更型ネットワーク装置及びシステム
CN101630370B (zh) * 2008-07-14 2012-07-18 中兴通讯股份有限公司 一种射频识别系统的控制方法及射频识别系统
US8090692B2 (en) * 2008-09-10 2012-01-03 Infinite Memory Ltd Method for using an OTP storage device
TW201101020A (en) * 2009-06-30 2011-01-01 Jmicron Technology Corp Data backup apparatus and data backup method
SE534135C2 (sv) * 2009-09-17 2011-05-10 Phoniro Ab Distribution av låsåtkomstdata för elektromekaniska lås i ett åtkomstkontrollsystem
US20110225312A1 (en) * 2010-03-10 2011-09-15 Thomson Licensing Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks
US8463788B2 (en) * 2010-09-03 2013-06-11 Marvell World Trade Ltd. Balancing caching load in a peer-to-peer based network file system
US8396963B2 (en) * 2010-09-29 2013-03-12 Schneider Electric USA, Inc. Networked devices for monitoring utility usage and methods of using the same
WO2012098656A1 (ja) * 2011-01-19 2012-07-26 富士通株式会社 伝送装置、伝送方法および伝送システム
US9036444B1 (en) * 2011-03-10 2015-05-19 Netapp, Inc. Redundant memory system and associated method thereof
US20120246303A1 (en) * 2011-03-23 2012-09-27 LogRhythm Inc. Log collection, structuring and processing
KR20120112965A (ko) * 2011-04-04 2012-10-12 삼성전자주식회사 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
US8930647B1 (en) * 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
CA2841104C (en) * 2011-09-07 2019-06-04 Orega Inc. File management sysyetm and file management method
US8695047B2 (en) * 2011-11-08 2014-04-08 Qualcomm Incorporated Video stream protection
US20130258110A1 (en) * 2012-04-03 2013-10-03 Honeywell International Inc. System and Method for Providing Security on Demand
JP5906950B2 (ja) * 2012-06-06 2016-04-20 富士通株式会社 コンテンツ配信のための情報処理方法及び装置
US9039523B2 (en) * 2012-06-22 2015-05-26 Igt Avatar as security measure for mobile device use with electronic gaming machine
US9471245B1 (en) * 2012-10-31 2016-10-18 Emc Corporation Method and apparatus for transferring modified data efficiently
US9467368B2 (en) * 2013-03-04 2016-10-11 Dell Products, Lp System and method for routing data to devices within an information handling system
US9092338B1 (en) * 2013-03-20 2015-07-28 Google Inc. Multi-level caching event lookup
WO2014190216A1 (en) * 2013-05-22 2014-11-27 Thompson David S Fantasy sports interleaver

Also Published As

Publication number Publication date
EP2849068A1 (en) 2015-03-18
US20150081785A1 (en) 2015-03-19
TW201523451A (zh) 2015-06-16
CN104468689A (zh) 2015-03-25
US9807161B2 (en) 2017-10-31
KR101940086B1 (ko) 2019-01-18
JP2015057703A (ja) 2015-03-26
CN104468689B (zh) 2019-11-19
KR20150032188A (ko) 2015-03-25
EP2849068B1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
JP6307393B2 (ja) アクセス制御システムにおける分散されたイベント
JP6247618B2 (ja) アクセス制御システムにおける匿名の決定
JP6234348B2 (ja) ユーザ認証情報の配信
TWI623839B (zh) 藉由分散系統內之裝置所執行之方法及分散系統內之裝置
JP6254499B2 (ja) 分散制御システムにおける合意の欠損
KR101837289B1 (ko) IoT 환경에서의 신뢰도 분석 방법 및 시스템
KR101757345B1 (ko) 분산형 데이터베이스를 조인하는 디바이스 및 방법
Comaneci et al. Electronic ID: Services and Applications for Context-Aware Integrated Mobile Services

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170718

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170911

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180312

R150 Certificate of patent or registration of utility model

Ref document number: 6307393

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250