(57)【要約】      （修正有）【課題】分散システムに参加するいずれかのデバイスが利用不能になった場合、利用可能なデバイスを用いて、望ましい分散システムを再構成するシステムを提供する。【解決手段】システムユニット１１５は、分散型の物理アクセス制御システム１１０内の物理アクセスコントローラに相当し、分散システム内の他のシステムユニットが利用不能になったことを検出すると、分散システムにおいて合意の欠損が生じたと判定し、分散システム内の利用可能なシステムユニットのリストを生成し、合意の欠損を示すとともに利用可能なデバイスのリストを含む警報メッセージを管理デバイス１３０へ送信する。【選択図】図１
2015057692.tif 000002
【特許請求の範囲】
【請求項１】
分散システム内のデバイスにより実行される方法であって、
前記デバイスにより、前記分散システム内の他のデバイスが利用不能になったことを検出することと、
前記デバイスにより、前記他のデバイスが利用不能になったことの検出に基づいて、前記分散システムにおいて合意の欠損が生じたと判定することと、
前記デバイスにより、前記分散システム内の利用可能なデバイスのリストを生成することと、
前記デバイスにより、管理デバイスへ警報メッセージを送信することと、
前記警報メッセージは、前記合意の欠損を示し、前記利用可能なデバイスのリストを含むことと、
を含む方法。
【請求項２】
前記管理デバイスから、前記リストに含まれる前記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信することと、
前記指示の受信に応じて、前記合意ベースの分散システムを生成することと、
をさらに含む、請求項１の方法。
【請求項３】
前記合意ベースの分散システムを生成することは、定足数をなすために要するデバイスの数を選択すること、を含み、
前記数は、前記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当する、
請求項２の方法。
【請求項４】
前記方法は、前記利用可能なデバイスのうちの前記少なくともいくつかのデバイスに投票重みを割り当てること、をさらに含み、
前記投票重みは、生成される合意ベースの分散システムにおいて前記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、前記利用可能なデバイスの前記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与する、
請求項１〜３のいずれか１項の方法。
【請求項５】
前記分散システム内の他のデバイスが利用不能になったことを検出することは、
前記他のデバイスへの接続が喪失したことを検出すること、
前記他のデバイスからデバイス障害の標識を受信すること、又は
前記他のデバイスがセキュリティ侵害に関連付けられていることを検出すること、
のうちの少なくとも１つを含む、請求項１〜４のいずれか１項の方法。
【請求項６】
前記管理デバイスへ前記警報メッセージを送信することは、
前記管理デバイスへウェブサービスメッセージを送信すること、
前記管理デバイスへ電子メールメッセージを送信すること、
前記管理デバイスへＳＭＳ（Short  Message  Service）メッセージを送信すること、又は、
前記管理デバイスへリアルタイムサービス品質メッセージを送信すること、
のうちの少なくとも１つを含む、請求項１〜５のいずれか１項の方法。
【請求項７】
前記分散システムは、分散されたデータセットを含み、前記方法は、
前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記分散されたデータセットに基づく緊急分散データセットを生成することと、
前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記リストに含まれる前記利用可能なデバイスを含む緊急の合意ベースの分散システムを生成することと、
前記緊急の合意ベースの分散システムは、前記管理デバイスから前記指示が受信されるまで、前記緊急分散データセットを使用することと、
をさらに含む、請求項２の方法。
【請求項８】
前記合意ベースの分散システムを生成するための前記指示の受信に応じて、前記分散されたデータセットへ前記緊急分散データセット内のデータを取り込むこと、
をさらに含む、請求項７の方法。
【請求項９】
前記分散システムは、分散された物理アクセス制御システムを含み、前記デバイス及び前記他のデバイスは、物理アクセス制御ユニットに相当する、請求項１〜８のいずれか１項の方法。
【請求項１０】
分散システム（１１０）のデバイス（１１５）であって、
前記分散システム（１１０）内の他のデバイス（１１５）が利用不能になったことを検出し、
前記他のデバイス（１１５）が利用不能になったことの検出に基づいて、前記分散システムにおいて合意の欠損が生じたと判定し、
前記分散システム（１１０）内の利用可能なデバイス（１１５）のリストを生成し、
管理デバイス（１３０）へ、前記合意の欠損を示し及び前記利用可能なデバイス（１１５）のリストを含む警報メッセージを送信する、
ように構成されるロジック（２１０）、を備えるデバイス。
【請求項１１】
前記ロジックは、
前記管理デバイスから、前記リストに含まれる前記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、
前記指示の受信に応じて、前記合意ベースの分散システムを生成する、
ようにさらに構成される、請求項１０のデバイス。
【請求項１２】
前記ロジックは、前記合意ベースの分散システムを生成する際に、定足数をなすために要するデバイスの数を選択する、ようにさらに構成され、
前記数は、前記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当する、
請求項１１のデバイス。
【請求項１３】
前記ロジックは、合意ベースの分散システムを生成する際に、前記利用可能なデバイスのうちの前記少なくともいくつかのデバイスに投票重みを割り当てる、ようにさらに構成され、
前記投票重みは、生成される前記合意ベースの分散システムにおいて前記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、前記利用可能なデバイスの前記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与する、
請求項１０〜１２のいずれか１項のデバイス。
【請求項１４】
前記分散システムは、分散されたデータセットを含み、前記ロジックは、
前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記分散されたデータセットに基づく緊急分散データセットを生成し、
前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記リストに含まれる前記利用可能なデバイスを含む緊急の合意ベースの分散システムを生成し、
前記合意ベースの分散システムを生成するための前記指示の受信に応じて、前記分散されたデータセットへ前記緊急分散データセット内のデータを取り込む、
ようにさらに構成され、
前記緊急の合意ベースの分散システムは、前記管理デバイスから前記指示が受信されるまで、前記緊急分散データセットを使用する、
請求項１１のデバイス。
【請求項１５】
前記分散システムは、分散された物理アクセス制御システムを含み、前記デバイス及び前記他のデバイスは、物理アクセス制御ユニットに相当する、請求項１０〜１４のいずれか１項のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にアクセス制御システムに関し、より具体的には、分散型のアクセス制御システムにおける合意の欠損（consensus  loss）に関する。
【背景技術】
【０００２】
分散システムは、タスクのセットを達成するために通信し及び自身のアクションを協調させる複数のコンポーネントを含み得る。例えば、分散システム内のコンピュータは、アルゴリズムを解決するために協調することを目的として、ネットワーク上で通信し得る。データ及びリソースの管理、又は処理ステップの同期といった、独立したコンピュータ上で同時に行われる動作を成功裏に協調させるために、分散アルゴリズムを実装することが必要であり得る。多様な分散アルゴリズムが、分散システムのコンポーネントを協調させるために開発されてきた。
【発明の概要】
【０００３】
１つの観点によれば、分散システム内のデバイスにより実行される方法は、上記デバイスにより、上記分散システム内の他のデバイスが利用不能になったことを検出することと、上記デバイスにより、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定することと、上記デバイスにより、上記分散システム内の利用可能なデバイスのリストを生成することと、上記デバイスにより、管理デバイスへ警報メッセージ（alarm  message）を送信することと、上記警報メッセージは、上記合意の欠損を示し、上記利用可能なデバイスのリストを含むことと、を含み得る。
それにより、例えば、分散システムに参加するいずれかのデバイスが利用不能になったことに起因して分散的に維持されるデータセットの管理又は変更のためのデバイス間の合意が得られなくなった場合に、システムをどのように再構成すべきかの判断を管理デバイス又は管理デバイスを操作する管理者に委ねることができる。
【０００４】
追加的に、上記方法は、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システム（consensus-based  distributed  system）を生成するための指示を受信することと、上記指示の受信に応じて、上記合意ベースの分散システムを生成することと、を含み得る。
それにより、合意の欠損が生じた状況下で依然として利用可能なデバイスを用いて、望ましい分散システムを再構成することができる。
【０００５】
追加的に、上記合意ベースの分散システムを生成することは、定足数をなすために要するデバイスの数を選択すること、を含んでもよく、上記数は、上記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当し得る。
それにより、再構成される新たな分散システムにおいて、デバイスの数が不足することなく合意を達成してデータセットを有効に管理し又は変更することが可能となる。
【０００６】
追加的に、上記方法は、上記利用可能なデバイスのうちの上記少なくともいくつかのデバイスに投票重みを割り当てること、を含んでもよく、上記投票重みは、生成される上記合意ベースの分散システムにおいて上記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、上記利用可能なデバイスの上記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与し得る。
それにより、データセットの管理又は変更のためのデバイス間の合意に際して特定のデバイスを重要視するなどといった柔軟な分散データセットの運用が可能となる。例えば、合意に関与することが特に望ましい一部のデバイスに相対的に大きい投票重みを付与することで、そのデバイスが利用不能になったときに、純粋なデバイス数が依然として過半数に達していたとしても合意の欠損が生じたと判定されるようにすることができる。
【０００７】
追加的に、上記投票重みは、上記デバイスのロケーション、複数の物理アクセス制御デバイスのうちの特定のサブセットにおけるデバイスのメンバーシップ、上記デバイスに関連付けられるデバイスタイプ、上記デバイスに割り当てられる脅威レベル（threat  level）、又は上記デバイスに関連付けられる信頼性の指標、のうちの少なくとも１つに基づき得る。
【０００８】
追加的に、上記投票重みは、上記デバイスに関連付けられるログに記録された１つ以上のイベント、上記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、上記デバイスに関連付けられる管理上のログインの頻度、のうちの少なくとも１つに基づき得る。
【０００９】
追加的に、上記分散システム内の他のデバイスが利用不能になったことを検出することは、上記他のデバイスへの接続が喪失したことを検出すること、上記他のデバイスからデバイス障害の標識を受信すること、又は上記他のデバイスがセキュリティ侵害（security  breach）に関連付けられていることを検出すること、のうちの少なくとも１つを含み得る。
【００１０】
追加的に、上記管理デバイスへ上記警報メッセージを送信することは、上記管理デバイスへウェブサービスメッセージを送信すること、上記管理デバイスへ電子メールメッセージを送信すること、上記管理デバイスへＳＭＳ（Short  Message  Service）メッセージを送信すること、又は、上記管理デバイスへリアルタイムサービス品質（quality  of  service）メッセージを送信すること、のうちの少なくとも１つを含み得る。
【００１１】
追加的に、上記方法は、上記分散システム内の利用可能なデバイスの上記リストを維持することと、特定の間隔で利用可能なデバイスの上記リストを更新することと、を含み得る。
【００１２】
追加的に、上記分散システムは、分散されたデータセットを含み、上記方法は、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記分散されたデータセットに基づく緊急分散データセットを生成することと、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記リストに含まれる上記利用可能なデバイスを含む緊急の合意ベースの分散システムを生成することと、上記緊急の合意ベースの分散システムは、上記緊急分散データセットを使用することと、をさらに含み得る。
【００１３】
追加的に、上記方法は、上記リストに含まれる上記利用可能なデバイスを含む合意ベースの分散システムを生成するための指示を、上記管理デバイスから受信することと、上記合意ベースの分散システムを生成するための上記指示の受信に応じて、上記分散されたデータセットへ上記緊急分散データセット内のデータを取り込むことと、をさらに含み得る。
【００１４】
追加的に、上記デバイスは、組込み型システム（embedded  system）に相当し得る。
【００１５】
追加的に、上記分散システムは、分散された物理アクセス制御システムを含み、上記デバイス及び上記他のデバイスは、物理アクセス制御ユニットに相当し得る。
【００１６】
他の観点によれば、分散システムのデバイスは、上記分散システム内の他のデバイスが利用不能になったことを検出し、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定し、上記分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、上記合意の欠損を示し及び上記利用可能なデバイスのリストを含む警報メッセージを送信する、ように構成されるロジック、を含み得る。
【００１７】
追加的に、上記ロジックは、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、上記指示の受信に応じて、上記合意ベースの分散システムを生成する、ようにさらに構成され得る。
【００１８】
追加的に、上記ロジックは、上記合意ベースの分散システムを生成する際に、定足数をなすために要するデバイスの数を選択する、ようにさらに構成されてもよく、上記数は、上記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当し得る。
【００１９】
追加的に、上記ロジックは、上記合意ベースの分散システムを生成する際に、上記利用可能なデバイスのうちの上記少なくともいくつかのデバイスに投票重みを割り当てる、ようにさらに構成されてもよく、上記投票重みは、生成される上記合意ベースの分散システムにおいて上記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、上記利用可能なデバイスの上記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与し得る。
【００２０】
追加的に、上記投票重みは、上記デバイスのロケーション、複数の物理アクセス制御デバイスのうちの特定のサブセットにおけるデバイスのメンバーシップ、上記デバイスに関連付けられるデバイスタイプ、上記デバイスに割り当てられる脅威レベル、上記デバイスに関連付けられる信頼性の指標、上記デバイスに関連付けられるログに記録された１つ以上のイベント、上記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、上記デバイスに関連付けられる管理上のログインの頻度、のうちの少なくとも１つに基づき得る。
【００２１】
追加的に、上記ロジックは、上記分散システム内の他のデバイスが利用不能になったことを検出する際、上記他のデバイスへの接続が喪失したことを検出し、上記他のデバイスからデバイス障害の標識を受信し、又は上記他のデバイスがセキュリティ侵害に関連付けられていることを検出する、ようにさらに構成され得る。
【００２２】
追加的に、上記ロジックは、上記管理デバイスへ上記警報メッセージを送信する際、上記管理デバイスへウェブサービスメッセージを送信し、上記管理デバイスへ電子メールメッセージを送信し、上記管理デバイスへＳＭＳメッセージを送信し、又は、上記管理デバイスへリアルタイムサービス品質メッセージを送信する、ようにさらに構成され得る。
【００２３】
追加的に、上記分散システムは、分散されたデータセットを含み、上記ロジックは、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記分散されたデータセットに基づく緊急分散データセットを生成し、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記リストに含まれる上記利用可能なデバイスを含み上記緊急分散データセットを使用する緊急の合意ベースの分散システムを生成し、上記リストに含まれる上記利用可能なデバイスを含む合意ベースの分散システムを生成するための指示を上記管理デバイスから受信し、上記合意ベースの分散システムを生成するための上記指示の受信に応じて、上記分散されたデータセットへ上記緊急分散データセット内のデータを取り込む、ようにさらに構成され得る。
【００２４】
追加的に、上記分散システムは、分散された物理アクセス制御システムを含み、上記デバイス及び上記他のデバイスは、物理アクセス制御ユニットに相当し得る。
【００２５】
また別の観点によれば、分散システムは、複数の物理アクセス制御デバイスを含んでよく、上記複数の物理アクセス制御デバイスのうちの特定の１つは、上記分散システム内の他のデバイスが利用不能になったことを検出し、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定し、上記分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、上記合意の欠損を示し上記利用可能なデバイスのリストを含む警報メッセージを送信し、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、上記指示の受信に応じて、上記合意ベースの分散システムを生成する、ように構成される。
【図面の簡単な説明】
【００２６】
【図１】ここで説明される実施形態に係る例示的な環境を示すブロック図である。
【図２】図１のシステムユニットの例示的なコンポーネントを示すブロック図である。
【図３Ａ】図１のシステムユニットの例示的な機能コンポーネントを示すブロック図である。
【図３Ｂ】図１のシステムユニットの例示的な機能コンポーネントを示すブロック図である。
【図４】図３Ｂの合意データベース内に記憶され得る例示的な情報の図である。
【図５】１つの実施形態における分散制御システム内で合意の欠損を処理するためのフローチャートである。
【図６】図１の管理デバイスの例示的なコンポーネントを示す図である。
【図７】１つの実施形態における分散制御システムのシステムユニットから受信される合意欠損警報を処理するためのフローチャートである。
【図８】図１のシステムユニットの例示的な物理レイアウトを示す平面図である。
【図９】図１のシステムの例示的な物理レイアウトを示す平面図である。
【図１０Ａ】ここで説明される１つ以上の実装に係る例示的な合意欠損のシナリオの図である。
【図１０Ｂ】ここで説明される１つ以上の実装に係る例示的な合意欠損のシナリオの図である。
【図１０Ｃ】ここで説明される１つ以上の実装に係る例示的な合意欠損のシナリオの図である。
【図１１】ここで説明される１つ以上の実装に係る例示的なユーザインタフェースの図である。
【発明を実施するための形態】
【００２７】
以下の詳細な説明は、添付図面へ言及する。異なる図面における同一の参照番号は、同一の又は類似のエレメントを識別する。
【００２８】
ここで説明される実装は、分散制御システムにおける合意の欠損に関する。１つの実施形態において、分散制御システムは、分散型の（distributed）物理アクセス制御システムを含み得る。物理アクセス制御システムは、１つ以上の制御ユニット又はシステムユニットを含んでよく、各々はある施設のエリアへの物理的なアクセスを制御する。例えば、制御ユニット又はシステムユニットは、ユーザから認証情報（credential）を取得し、ユーザの認証情報が検証され、真正なものとして証明され、又は特定の条件を充足する場合にドアのロックを解除し得る。他の実装において、分散制御システムは、分散型のビル管理システム、分散型の監視システム、分散型のセキュリティシステム及び／又は他のタイプの分散制御システムを含み得る。
【００２９】
分散制御システムは、分散アルゴリズムを用いて、分散型のコンピューティング動作を実行し得る。例えば、分散制御システムは、分散されたデータベースを管理（manage）し得る。分散アルゴリズムは、合意（consensus）アルゴリズムを含み得る。合意アルゴリズムは、ある動作が実行される前に、分散システム内のノードの間で合意に達することを要する。例えば、合意アルゴリズムを採用する分散型のデータベースを更新するために、分散システム内のノード群は、更新の実行についての合意に到達する。合意に達した場合、ノード群（例えば、全てのノード）は、提案された動作（例えば、分散されたデータベースの変更）に同意し得る。合意は、提案された動作について定足数が獲得された場合に達せられ得る。定足数（quorum）は、提案された動作についてノード群のうちの多数（majority）が賛意を示す場合に達せられ得る。賛意は、例えば、賛成票（あるいは同意、承認など）を意味するメッセージ又は信号の送信によって示され得る。この実施形態では、変更について賛意を示すことをノード群のうちの多数に要求することで、例えば、２つの競合する提案された変更が検討されている場合に、少なくとも１つのノードが提案された変更の双方を受信し、提案された変更の一方を選択して賛成票を投じるなどの動作を行うことが保証される。
【００３０】
分散システムにおける合意の欠損は、定足数が達成されない場合に生じ得る。例えば、特定の数のノードが障害を起こし又は到達不能あるいは通信不能となった場合、提案された動作のための定足数が獲得されず、分散システムは、動作を継続することができないかもしれない。合意の欠損は、システム内のノード数を変更し、又はシステムへ予約ノード（reserved  nodes）を取り入れることにより、自動的にハンドリングされることもできる。しかしながら、分散制御システムにおいて、そうした解決策は望ましくないかもしれない。例えば、システム内のノード数を変更し又は予約ノードを取り入れることは、システムの機能性を変化させかねない。他の例として、予約ノードが利用不能ということもあり得る。また別の例として、分散制御システム内のノードの２つのサブセットの間で通信が遮断されており、合意ベースのシステムが新たに自動的に各サブセット内の利用可能なノードを用いて生成される場合、いわゆるsplit-brain問題が生じ得る。split-brain問題では、各サブセットがそれぞれ分散システムを形成する結果として、分散される２つのバージョンのデータセットが維持されることになる。
【００３１】
ここで説明される実装は、分散システム内のデバイスを含み、当該デバイスは、分散システム内の他のデバイスが利用不能になったことを検出し、他のデバイスが利用不能になったことの検出に基づいて、分散システムにおいて合意の欠損が生じたと判定するように構成される。当該デバイスは、分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、警報（alarm）メッセージを送信するように構成され得る。警報メッセージは、合意の欠損が生じたことを示し、利用可能なデバイスのリストを含み得る。管理者は、生成された当該利用可能なデバイスのリストに基づいて、新たな分散システムを生成すべきかを判断することができる。利用可能なデバイスを用いた新たな分散システムの生成は、ある状況下では望ましいものであり、他の状況下では望ましくない。分散システム内のデバイスは、管理デバイスから、リストに含まれる利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、指示の受信に応じて、合意ベースの分散システムを生成する、ように構成され得る。利用可能なデバイスのリストを生成すること、及び利用可能なデバイスを用いた新たな合意ベースのシステムの形成のために管理者からの承認を求めることにより、合意ベースの分散システムにおけるsplit-brain問題を防止し、又は望ましい構成で新たな分散システムを生成することが可能となる。
【００３２】
図１は、以下に説明するシステム及び／又は方法が実装され得る例示的な環境１００のブロック図である。図１に示したように、環境１００は、制御システム１１０（例えば、分散された物理アクセス制御システム）、ネットワーク１２０及び管理デバイス１３０を含み得る。
【００３３】
分散制御システム（ＤＣＳ）１１０は、システムユニット１１５−Ａ〜１１５−Ｎ（“システムユニット群１１５”と総称され、及び個別に“システムユニット１１５”とも称される）を含む分散コンピューティングシステムを含み得る。システムユニット１１５は、組込み型の（embedded）システムとして実装されてもよい。いくつかの実装では、システムユニット１１５は、物理アクセス制御デバイスを含み得る。例えば、システムユニット１１５は、部屋（room）又は部屋の集合といった保護されるエリアへのアクセスを制御するアクセスコントローラを含み得る。システムユニット１１５は、リーダ（reader）デバイスを介して認証情報（例えば、アクセスカードの認証情報）を受信し、当該認証情報が真正であってセキュアエリアへアクセスする権限に関連付けられているかを判定し得る。判定結果が真であれば、アクセスコントローラは、ドアのロックを解除し又はセキュアエリアへのアクセスを許可することに関連付けられる他の動作を実行するためのコマンドを発行し得る。他の実装において、システムユニット１１５は、監視デバイス又は機械の動作を制御するデバイスなどといった異なるタイプのセキュリティデバイスを含んでもよい。
【００３４】
ＤＣＳ１１０は、１つ以上の分散されたデータセットを含み得る。分散されたデータセットは、複数のデバイスに関連付けられるデータセットを含む。１つの実施形態において、当該複数のデバイスは、データセットの変更を行うために、互いに通信し及び協調する。１つの実装において、分散されたデータセットに関連付けられるデバイス群の各々により当該分散されたデータセットのローカルコピーが維持され、それらデバイス群により変更が同意されると、その変更が分散されたデータセットのローカルコピーへと反映／再現される。他の実装において、例えば、分散されたデータセットのローカルコピーを全てのデバイスが記憶するとは限らない。
【００３５】
いくつかの実施形態において、分散されたデータセット（例えば、合意ベースの分散データベース）内で変更を行うために、合意が達せられる。他の実施形態において、合意が無くとも、分散されたデータセットへの変更がなされてもよい。分散されたデータセットは、全てのシステムユニット１１５に関連付けられてもよく、又はシステムユニット１１５のサブセットに関連付けられてもよい。システムユニット１１５は、合意ベースの分散されたデータセットへの変更を提案し得る。分散されたデータセットに関連付けられる定足数のシステムユニット１１５により変更が受け入れられる場合、合意は達せられ、関連付けられる各システムユニット１１５内の分散されたデータセットの各ローカルコピーへ変更が伝播され得る。よって、定足数の関連付けられるシステムユニット１１５が変更について賛成票を投じる場合に、分散されたデータセットにおける変更に関する合意が達せられ得る。定足数とは、関連付けられるシステムユニット群１１５を支配する最小限の数（例えば、過半数）に相当してよい。よって、過半数の例では、分散されたデータセットがＮ個のシステムユニット１１５に関連付けられる場合、Ｎが偶数ならばＮ／２＋１個の関連付けられるシステムユニット１１５が変更に賛成票を投じれば定足数に達し、Ｎが奇数ならば（Ｎ−１）／２＋１個の関連付けられるシステムユニット１１５が変更に賛成票を投じれば定足数に達する。定足数に達するために例えば過半数を要求することで、２つの競合する提案が検討される場合に、少なくとも１つのシステムユニット１１５が双方の提案を受信し、合意のためにそれら提案のうちの１つを選択することが保証され得る。
【００３６】
合意ベースの分散されたデータセットは、当該分散されたデータセットに関連付けられるどのシステムユニット１１５も、分散された当該データセットにより管理されるべき情報（例えば、１つの実施形態では、全ての情報）をデータセットに含めることを保証し得る。例えば、分散されたデータセットはアクセスルールを含んでよく、アクセスルールは分散されたデータセットに関連付けられるいかなるシステムユニット１１５にとっても利用可能であり得る。よって、１つ以上の分散されたデータセットの結果として、１つの実施形態において、ＤＣＳ１１０は、サーバデバイスといった中央制御デバイスを伴わない非集中化型のシステムに相当し得る。他の実施形態において、ＤＣＳ１１０は、非集中化型のシステム及び（サーバデバイスといった）中央制御デバイスの双方を含んでもよい。ＤＣＳ１１０における何らかの変更が任意のシステムユニット１１５において構成され、その変更が分散されたデータセットに関連付けられる場合には、その変更は、当該分散されたデータセットに関連付けられる他のシステムユニット１１５へ伝播され得る。さらに、ＤＣＳ１１０は、デバイス障害に関して、シングルポイントの障害が回避され得るようなロバスト性を呈し得る。例えば、特定のシステムユニット１１５が障害を起こした場合に、他のシステムユニット１１５は、データのロスなく（又はデータの最小限のロスのみで）動作を継続し得る。さらに、ＤＣＳ１１０は、動的に変化してもよい。例えば、任意の時点でアプリケーションは追加されてよく、必要に応じて新たなデータセットがシステムユニット１１５内に記憶されてよい。
【００３７】
ＤＣＳ１１０は、分散されないデータセットをも含んでよい。一例として、第１のシステムユニット１１５は、他のいかなるシステムユニット１１５にも含まれないローカルデータセットを含み得る。他の例として、第１のシステムユニット１１５は、ミラーリングといった非分散的な手法で第２のシステムユニット１１５へと複製されるローカルデータセットを含んでもよい。また別の例として、第１のシステムユニット１１５がローカルデータセットの第１のバージョンを含み、第２のシステムユニット１１５が当該ローカルデータセットの第２のバージョンを含んでもよい。この場合、第１のシステムユニット１１５はローカルデータセットの第１のバージョンを維持し、第２のシステムユニット１１５は当該ローカルデータセットの第２のバージョンを維持する。また別の例において、第１のシステムユニット１１５が分散されたデータセットから第１のローカルデータセットを導出し、第２のシステムユニット１１５が分散されたデータセットから第１のローカルデータセットとは異なる第２のローカルデータセットを導出してもよい。
【００３８】
ネットワーク１２０は、システムユニット１１５が互いに通信することを可能とし、及び／又は管理デバイス１３０が個々のシステムユニット１１５と通信することを可能とし得る。ネットワーク１２０は、１つ以上の回線交換ネットワーク及び／又はパケット交換ネットワークを含み得る。例えば、ネットワーク１２０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、公衆交換電話網（ＰＳＴＮ）、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、無線ネットワーク、及び／又はこれらの若しくは他のタイプのネットワークの組合せ、を含み得る。
【００３９】
管理（administration）デバイス１３０は、ＤＣＳ１１０を構成／設定し、ＤＣＳ１１０の構成／設定を変更し、ＤＣＳ１１０から情報を受信し、及び／又はＤＣＳ１１０について他の管理を実行するために、管理者（administrator）が個別のシステムユニット１１５へ接続することを可能とし得る。管理デバイス１３０は、システムユニット１１５との通信のために構成される任意のデバイスを含み得る。例えば、管理デバイス１３０は、可搬性の通信デバイス（例えば、携帯電話、スマートフォン、ファブレットデバイス、ＧＰＳ（Global  Positioning  System）デバイス、及び／若しくは他のタイプの無線デバイス）、ＰＣ（Personal  Computer）若しくはワークステーション、サーバデバイス、ラップトップ、タブレット、若しくは他のタイプのポータブルコンピュータ、並びに／又は通信ケイパビリティを有する他のタイプのデバイスを含み得る。
【００４０】
図１は環境１００の例示的なコンポーネント群を示しているが、他の実装において、環境１００は、より少ない数のコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、又は図１に描かれたもの以外の追加的なコンポーネントを含んでもよい。追加的に又は代替的に、環境１００内のいかなる１つのデバイスも（又はいかなるデバイスの集合も）、環境１００内の１つ以上の他のデバイスにより実行されるものとして説明された機能を実行してよい。例えば、いくつかの実装において、システムユニット１１５は、入出力デバイス（例えば、キーボード／キーパッド及びディスプレイ、タッチスクリーンなど）を含んでもよく、管理デバイス１３０は必要とされなくてもよい。
【００４１】
図２は、システムユニット１１５の例示的なコンポーネント群を示すブロック図である。図２に示したように、システムユニット１１５は、コントローラ２１０と、１つ以上の周辺デバイス２３０とを含み得る。コントローラ２１０は、システムユニット１１５の動作を制御し、他のシステムユニット１１５と通信し、管理デバイス１３０と通信し、及び／又は周辺デバイス２３０を制御し得る。コントローラ２１０は、バス２１２、プロセッサ２１４、メモリ２１６、ネットワークインタフェース２１８、周辺インタフェース２２０及び筐体２２２を含み得る。
【００４２】
バス２１２は、コントローラ２１０のコンポーネント間の通信を許容するパスを含み得る。プロセッサ２１４は、命令を解釈し及び実行する、任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ並びに／又は処理ロジック（若しくはプロセッサ、マイクロプロセッサ、及び／若しくは処理ロジックの集合）を含み得る。他の実施形態において、プロセッサ２１４は、ＡＳＩＣ（application-specific  integrated  circuit）、ＦＰＧＡ（field-programmable  gate  array）及び／又は他のタイプの集積回路若しくは処理ロジックを含み得る。
【００４３】
メモリ２１６は、プロセッサ２１４による実行のための情報及び／若しくは命令を記憶し得る任意のタイプの動的記憶デバイス、並びに／又は、プロセッサ２１４による使用のための情報を記憶し得る任意のタイプの不揮発性記憶デバイスを含み得る。例えば、メモリ２１６は、ＲＡＭ（random  access  memory）若しくは他のタイプの動的記憶デバイス、ＲＯＭ（read-only  memory）デバイス若しくは他のタイプの静的記憶デバイス、ＣＡＭ（content  addressable  memory）、磁気的及び／若しくは光学的記録メモリデバイス、及びその対応するドライブ（例えば、ハードディスクドライブ、光学的ドライブなど）、並びに／又は、フラッシュメモリといった着脱可能な形態のメモリ、を含み得る。
【００４４】
ネットワークインタフェース２１８は、有線通信リンク（例えば、導電性ワイヤ、ツイストペアケーブル、同軸ケーブル、伝送線、光ファイバケーブル、及び／若しくは導波管など）、無線通信リンク（例えば、無線周波数（ＲＦ）、赤外線、及び／若しくは可視光線など）、又は無線通信リンクと有線通信リンクとの組合せを介して、コントローラ２１０が他のデバイス及び／又はシステムと通信する（例えば、データを送受信する）ことを可能とする送受信器（例えば、送信器及び／又は受信器）、を含み得る。ネットワークインタフェース２１８は、ベースバンド信号をＲＦ信号へ変換する送信器、及び／又はＲＦ信号をベースバンド信号へ変換する受信器、を含み得る。ネットワークインタフェース２１８は、ＲＦ信号を送受信するためのアンテナと連結されてもよい。
【００４５】
ネットワークインタフェース２１８は、データの他のデバイスへの送信を遂行する入出力ポート、入出力システム及び／又は他の入出力コンポーネント、を含む論理的なコンポーネントを含み得る。例えば、ネットワークインタフェース２１８は、有線通信用のネットワークインタフェースカード（例えば、イーサネット（登録商標）カード）、及び／又は無線通信用の無線ネットワークインタフェース（例えば、Ｗｉ−Ｆｉ）カードを含み得る。ネットワークインタフェース２１８は、ケーブル上の通信用のＵＳＢ（universal  serial  bus）ポート、Bluetooth（登録商標）無線インタフェース、ＲＦＩＤ（radiofrequency  identification）インタフェース、ＮＦＣ（near-field  communications）無線インタフェース、及び／又はデータをある形態から他の形態へ変換する任意の他のタイプのインタフェースをも含み得る。
【００４６】
周辺インタフェース２２０は、１つ以上の周辺デバイス２３０と通信するように構成され得る。例えば、周辺インタフェース２２０は、周辺デバイス２３０へのデータの送信を遂行する入出力ポート、入出力システム及び／又は他の入出力コンポーネント、を含む１つ以上の論理的なコンポーネントを含み得る。一例として、周辺インタフェース２２０は、WiegandプロトコルなどのＳＰＩ（Serial  Peripheral  Interface）バスプロトコル、ＲＳ−４８５プロトコル、及び／又は他のタイプのプロトコルを用いて、周辺デバイスと通信し得る。他の例として、周辺インタフェース２２０は、異なるタイプのプロトコルを用いてもよい。１つの実施形態において、ネットワークインタフェース２１８もまた、周辺機器２３０をコントローラ２１０と連結するための周辺インタフェースとして作動してもよい。
【００４７】
筐体２２２は、コントローラ２１０のコンポーネント群を収容し、コントローラ２１０のコンポーネント群を環境から保護し得る。１つの実施形態において、筐体２２２は、１つ以上の周辺デバイス２３０を含み得る。他の実施形態において、筐体２２２は、管理デバイス１３０を含んでもよい。筐体２２２は、複数のシステムユニット１１５及び／又はコントローラ２１０を伴うシステムにおいて、１つのシステムユニット１１５及び／又はコントローラ２１０の他のシステムユニット１１５及び／又はコントローラ２１０からの境界を定義し得る。
【００４８】
以下に説明するように、コントローラ２１０は、分散システム内で合意の欠損を管理することに関する何らかの動作を実行し得る。コントローラ２１０は、それら動作を、ＡＳＩＣのハードウェア回路の結果として実行してもよい。また（あるいは代替的に）、コントローラ２１０は、メモリ２１６といったコンピュータ読取可能な媒体に含まれるソフトウェア命令を実行するプロセッサ２１４に応じて、それら動作を実行してもよい。コンピュータ読取可能な媒体は、非一時的なメモリデバイスを含み得る。メモリデバイスは、単一の物理的なメモリデバイスの範囲内で実装されてもよく、又は複数の物理的なメモリデバイスをまたいで拡散されてもよい。ソフトウェア命令は、他のコンピュータ読取可能な媒体から又は他のデバイスからメモリ２１６へ読み込まれてもよい。メモリ２１６内に含まれるソフトウェア命令は、プロセッサ２１４に、ここで説明される処理を実行させる。よって、ここで説明される実装は、いかなる特定のハードウェア回路及びソフトウェアの組合せにも限定されない。
【００４９】
周辺デバイス２３０は、コントローラ２１０へ情報を提供し、コントローラ２１０により制御され、及び／又はさもなくばコントローラ２１０と通信する１つ以上のデバイスを含み得る。例えば、周辺デバイス２３０は、リーダ（reader）デバイス２４０、ロック（lock）デバイス２５０、センサ２６０、及び／又はアクチュエータ２７０を含み得る。図２には例示の目的で単一のリーダデバイス２４０、単一のロックデバイス２５０、単一のセンサ２６０、及び単一のアクチュエータ２７０が示されているが、実際には、一群の周辺デバイス２３０は、複数のリーダデバイス２４０、複数のロックデバイス２５０、複数のセンサ２６０、及び／又は複数のアクチュエータ２７０を含んでもよい。いくつかの実装において、周辺デバイス２３０は、図２に示したデバイスのうちの１つ以上を含まなくてもよい。追加的に又は代替的に、周辺デバイス２３０は、図２に示していない任意の他のタイプのセキュリティデバイスを含んでもよい。
【００５０】
リーダデバイス２４０は、ユーザから認証情報を読取り、認証情報をコントローラ２１０へ提供するデバイスを含み得る。例えば、リーダデバイス２４０は、アルファベット又は数字のＰＩＮ（personal  identification  number）をユーザから受け付けるように構成されるキーパッド、磁気ストリップ上にカードコードを格納するカード若しくはＲＦＩＤタグといった他のタイプの記憶デバイスを構成するカードリーダ、ユーザの指紋を読み取るように構成される指紋リーダ、ユーザの虹彩を読み取るように構成される虹彩リーダ、ユーザの声紋を記録するように構成されるマイクロフォン及び声紋識別器、ＮＦＣ（near  field  communication）リーダ、並びに／又は他のタイプのリーダデバイスを含み得る。リーダデバイス２４０は、認証情報を提供可能な任意のタイプのセキュリティデバイスを含んでよく、センサ２６０を参照しながら以下に説明される任意のセンサデバイスといった１つ以上のセンサデバイスを含んでもよい。例えば、リーダデバイス２４０は、顔認識のために使用されるカメラ、及び／又は音声認識のために使用されるマイクロフォンを含んでもよい。
【００５１】
ロックデバイス２５０は、コントローラ２１０により制御されるロック（鍵）を含み得る。ロックデバイス２５０は、ドア（例えば、ドアの開閉が妨げられる）、窓、ＨＶＡＣベント（空調、通気、排気など）、及び／又はセキュアエリアの開放可能部への他のタイプのアクセス、をロック（施錠）し得る。例えば、ロックデバイス２５０は、電磁式ロック、コントローラ２１０により制御されるモータを伴う機械式ロック、電気機械式ロック、及び／又は他のタイプのロックを含み得る。さらに、ロックデバイス２５０は、機械、輸送車両、エレベータ、及び／又は電気デバイスの動作をロック（施錠）し／アンロック（開錠）してもよい。
【００５２】
センサ２６０は、センサデバイスを含み得る。例として、センサ２６０は、ドアが開いているか閉じているかを感知するドアセンサ、可視光モニタリングカメラ、赤外（ＩＲ）光モニタリングカメラ、熱シグニチャモニタリングカメラ及び／若しくは他のタイプのモニタリングデバイス、動きセンサ、熱センサ、圧力センサ及び／若しくは他のタイプの警報センサといった警報センサ、音声記録デバイス（例えば、マイクロフォン）、システムユニット１１５の内部に位置する位置センサ、及び／若しくはシステムユニット１１５に関連付けられる保護されるエリア内に位置する“退出要求（request  to  exit）”ボタンといったタンパ（tamper）センサ、並びに／又は、他のタイプのセンサデバイス、を含み得る。
【００５３】
アクチュエータ２７０は、アクチュエータデバイスを含み得る。一例として、アクチュエータ２７０は、照明／発光デバイスを制御し得る。他の例として、アクチュエータ２７０は、侵入警報起動器（burglar  alarm  activator）、メッセージを再生し若しくは警報信号を生成するスピーカ、ディスプレイデバイス、センサ２６０を動かす（例えば、カメラ若しくは他の監視デバイスの視界を制御する）モータ、ドア、窓、ＨＶＡＣベント及び／若しくはセキュアエリアに関連付けられる他の開放可能部を開閉するためのモータ、ロックデバイス２５０をロック位置若しくはアンロック位置に固定するモータ、消火デバイス、並びに／又は他のタイプのアクチュエータデバイスを含み得る。
【００５４】
図２はシステムユニット１１５の例示的なコンポーネント群を示しているが、他の実装において、システムユニット１１５は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図２に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、システムユニット１１５のいかなるコンポーネントも（又はいかなるコンポーネントの集合も）、システムユニット１１５の１つ以上の他のコンポーネントにより実行されるものとして説明された１つ又は複数のタスクを実行してよい。例えば、いくつかの実装において、周辺インタフェース２２０は、ネットワークインタフェースに相当し得る。他の例として、いくつかの実装において、周辺デバイス２３０は、周辺インタフェース２２０を介するよりもむしろ、ネットワークインタフェース２１８を介してコントローラ２１０へ接続され得る。
【００５５】
さらに、ＤＣＳ１１０は物理アクセス分散制御システムを含み得るものの、他の実装では、物理アクセスシステムとは別のシステムが制御されてもよい。一方で、ＤＣＳ１１０は、ドアを開閉し又は建物若しくは施設への物理的なアクセスを制御するための制御システムといった、（例えば、運用環境における）任意のタイプの物理アクセス制御システムを含んでもよい。また、ＤＣＳ１１０は、ファン（fan）を制御（例えば、起動若しくは停止）し、ビル管理システム内の警報を開始させ（例えば、認証失敗、成功裏の認証など）、又は産業オートメーションシステム内のロボットアームを制御するシステムを含んでもよい。
【００５６】
図３Ａ及び図３Ｂは、システムユニット１１５の例示的な機能コンポーネントを示すブロック図である。システムユニット１１５の機能コンポーネントは、例えば、１つ以上のＡＳＩＣのハードワイヤ回路を介して実装されてもよい。追加的に又は代替的に、システムユニット１１５の機能コンポーネントは、メモリ２１６からの命令を実行するプロセッサ２１４により実装されてもよい。図３Ａは、システムユニット１１５の機能的なレイヤ群を示している。図３Ａに示したように、システムユニット１１５は、ＡＰＩ（application  programming  interface）レイヤ３１０、アプリケーションレイヤ３２０、分散制御レイヤ３４０及びストレージレイヤ３５０を含み得る。
【００５７】
ＡＰＩレイヤ３１０は、例えば、管理デバイス１３０と通信するように構成されるＡＰＩを含む。一例として、管理者が管理デバイス１３０を用いてシステムユニット１１５にログインする際、ＡＰＩレイヤ３１０は、管理者を認証するために管理デバイス１３０と通信し得る。他の例として、ＡＰＩレイヤ３１０は、システムユニット１１５の構成を変更するために管理デバイス１３０と通信し得る。ＡＰＩレイヤ３１０は、管理デバイス１３０からデータを受信し、当該データを分散制御レイヤ３４０及び／又はストレージレイヤ３５０へ提供し得る。また、ＡＰＩレイヤ３１０は、アプリケーションレイヤ３２０内にアプリケーションをインストールするために管理デバイス１３０と通信し得る。ＡＰＩレイヤ３１０は、様々な管理者タイプを扱うように構成されてもよい。例えば、ＡＰＩレイヤ３１０は、ウェブサービス管理者、リナックス管理者若しくはＯＮＶＩＦ（Open  Network  Video  Interface  Forum）管理者を扱うためのＡＰＩ、及び／又は他のタイプのＡＰＩを含んでもよい。
【００５８】
アプリケーションレイヤ３２０は、システムユニット１１５にインストールされる１つ以上のアプリケーションを含む。図３Ｂは、例示的なアプリケーション群を示す。図３Ｂに示したように、アプリケーションレイヤ３２０は、アクセス制御ロジックアプリケーション３２２、ドア制御アプリケーション３２４、リーダ制御アプリケーション３２６、イベントハンドリングアプリケーション３２８、スケジュールハンドリングアプリケーション３３０、及び／又は合意欠損モジュール３３２を含み得る。
【００５９】
アクセス制御ロジックアプリケーション３２２は、受信される認証情報に基づいて、及び記憶されるアクセスルールに基づいて、アクセスを許可するべきかを判定し得る。ドア制御アプリケーション３２４は、１つ以上のドア及び／又は関連付けられるロックデバイス２５０を制御し得る。例えば、ドア制御アプリケーション３２４は、ドアが開いているか閉じているか及び／若しくは施錠されているか開錠されているかを判定し、並びに１つ以上のデバイスを操作してドアを開閉し及び／若しくはドアを施錠し若しくは開錠し得る。リーダ制御アプリケーション３２６は、１つ以上のリーダデバイス２４０を制御し、１つ以上のリーダデバイス２４０から受信される認証情報を取得し及び処理し得る。イベントハンドリングアプリケーション３２８は、システムユニット１１５により記録され若しくは生成され、及び／又は他のシステムユニット１１５により記録されるイベントのログを維持し得る。イベントハンドリングアプリケーション３２８は、全ての（又は少なくともいくつかの）システムユニット１１５において分散システムイベントログを維持する目的で、ローカルで記録され又は生成されたイベントがＤＣＳ１１０内の他のシステムユニット１１５へと配信されること、を保証してもよい。そのようにして、ログに記録されたイベントは、システムイベントログに関連付けられる任意のシステムユニット１１５から引き出され得る。スケジュールハンドリングアプリケーション３３０は、システムユニット１１５に関連付けられる１つ以上のスケジュールを管理し得る。例えば、特定のユーザのグループについてのアクセスルールが、特定の日時に基づいて変化し得る。
【００６０】
合意欠損モジュール３３２は、分散されたデータセットに関する合意の欠損を検出し得る。例えば、合意欠損モジュール３３２は、どのシステムユニット１１５が利用可能であるかを判定し、個別の分散されたデータセットに関連付けられる利用可能なシステムユニット１１５の数が当該分散されたデータセットについての提案される動作に関する定足数に達し得るために十分であるかを判定し得る。利用可能なシステムユニット１１５の数が定足数に達するために要する数を下回る場合には、合意欠損モジュール３３２は、その個別の分散されたデータセットに関して合意の欠損を検出し得る。合意欠損モジュール３３２は、当該個別の分散されたデータセットに関連付けられる利用可能なシステムユニット１１５のリストを生成し、生成したリストを含む合意欠損警報（consensus  loss  alarm）を生成し、生成した合意欠損警報を指定されたデバイスへ送信し得る。指定されたデバイスは、管理デバイス１３０、及び／又は、管理者の移動通信デバイス（例えば携帯電話）といった他のデバイスに相当し得る。管理者は、分散されたデータセットについて新たなシステムユニット１１５のセットを生成することを選択すると、システムユニット１１５へ、当該新たなシステムユニット１１５のセットを生成するための指示を送信し得る。合意欠損モジュール３３２は、分散されたデータセットに関連付けられる新たなシステムユニット１１５のセットを生成し得る。
【００６１】
他のアプリケーション（図３Ｂには示していない）がアプリケーションレイヤ３２０に含まれてもよい。一例として、警報アプリケーションは、レポート及び／又は警報を生成し、当該レポート及び／又は警報を管理デバイス１３０へ（及び／若しくは他の指定されたデバイスへ）並びに／又は１つ以上の他のシステムユニット１１５へ送信し得る。他の例として、タスク固有の制御アプリケーションは、ドア開放イベント、センサイベント、アクチュエータイベント及び／又は他のタイプのイベントといったシステムユニット１１５に関連付けられるイベントを処理し得る。
【００６２】
分散制御レイヤ３４０は、システムユニット１１５に関連付けられる１つ以上の分散されるデータセットを管理し得る。例えば、分散制御レイヤ３４０は、ネットワーク１２０上の他のシステムユニット１１５とのセキュア接続（例えば、ＴＬＳ（Transport  Layer  Security）接続）を維持し得る。さらに、分散制御レイヤ３４０は、個別の合意ベースの分散データセットにおける変更に関する合意を確立するために、プロトコル（例えば、ＰＡＸＯＳプロトコル）を使用し得る。一例として、分散制御レイヤ３４０は、分散されたデータセットに関連付けられる他のシステムユニット１１５へ変更についての提案を送信し、他のシステムユニット１１５から当該変更のための定足数を受信し得る。他の例として、分散制御レイヤ３４０は、他のシステムユニット１１５から受信される提案について（例えば応答メッセージを送信することにより）賛成票を投じてもよい。また別の例として、分散制御レイヤ３４０は、変更について投票しなかったとしても、当該変更について合意が達せられたという標識を受信してもよい。変更についての合意の標識が受信された場合、分散制御レイヤ３４０は、分散されたデータセットのローカルコピー内の当該変更を行い得る。
【００６３】
ストレージレイヤ３５０は、システムユニット１１５に関連付けられる１つ以上のデータセットを記憶し得る。ストレージレイヤ３５０に記憶されるデータセットは、ローカルデータセットに相当してもよく、又は分散されたデータセットに相当してもよい。ローカルデータセットには、当該ローカルデータセットを記憶する個別のシステムユニット１１５に関連付けられる（及び／又は、個別のシステムユニット１１５にのみ関連付けられる）情報が格納され得る。分散されたデータセットには、当該分散されたデータセットに関連付けられる他のシステムユニット１１５にも関連付けられる情報が格納され得る。
【００６４】
ストレージレイヤ３５０に含まれ得る例示的な情報が図３Ｂに示されている。図３Ｂに示したように、ストレージレイヤ３５０は、構成データ３５２、認証情報データ３５４、アクセスルールデータ３５６、及び合意データベース３５８を含み得る。構成データ３５２には、コントローラ２１０若しくはコントローラ２１０に接続される周辺デバイス２３０のハードウェア構成及び設定、若しくはアプリケーションレイヤ３２０にインストールされるアプリケーションのソフトウェア構成及び設定といった、個別のシステムユニット１１５に関連付けられる構成データ、並びに／又は他のタイプの構成情報が格納され得る。認証情報データ３５４には、システムユニット１１５に関連付けられる認証情報が格納され得る。アクセスルール３５６には、システムユニット１１５に関連付けられるアクセスルールが格納され得る。合意データベース３５８には、合意の欠損を検出するために合意欠損モジュール３３２により使用され得る情報が格納され得る。合意データベース３５８に格納され得る例示的な情報は、図４を参照しながら後に説明される。
【００６５】
図３Ａ及び図３Ｂはシステムユニット１１５の例示的な機能コンポーネント群を示しているが、他の実装において、システムユニット１１５は、より少ない数の機能コンポーネント、異なる機能コンポーネント、異なる配置の機能コンポーネント、又は図３Ａ及び図３Ｂに描かれたものとは別の追加的な機能コンポーネントを含んでもよい。追加的に、システムユニット１１５のコンポーネント群のうちのいかなる１つも（又はいかなるコンポーネントの集合も）、システムユニット１１５の１つ以上の他の機能コンポーネントにより実行されるものとして説明された機能を実行してよい。
【００６６】
図４は、合意データベース３５８に格納され得る例示的な情報の図である。図４に示したように、合意データベース３５８は、１つ以上の分散データセットレコード４００を含み得る。各データセットレコード４００には、システムユニット１１５が関連付けられる個別のデータセットに関する情報が格納される。データセットレコード４００は、分散データセットフィールド４１０、システムユニットフィールド４２０−Ａ〜４２０−Ｎのセット、対応する利用可能性フィールド４３０−Ａ〜４３０−Ｎのセット、合意フィールド４４０、及び警報フィールド４５０を含み得る。
【００６７】
分散データセットフィールド４１０には、システムユニット１１５に関連付けられる個別のデータセットを識別する情報（例えば、データセットの識別子及び／又は名称など）が格納され得る。各システムユニットフィールド４２０には、分散されたデータセットに関連付けられる他のシステムユニット１１５を識別する情報（例えば、システムユニットの識別子及び／又は名称など）が格納され得る。対応する利用可能性フィールド４３０には、他のシステムユニット１１５が利用可能かについての情報が格納され得る。合意フィールド４４０には、個別の分散されたデータセットに関連付けられる合意要件に関する情報が格納され得る。例えば、合意フィールド４４０には、個別の分散されたデータセットについての提案される動作に関して合意を確立するための定足数に達するために、いくつの賛成票が（自身の及び）他のシステムユニット１１５から必要とされるかについての情報が格納され得る。さらに、合意フィールド４４０には、合意欠損モジュール３３２が個別の分散されたデータセットについて合意の欠損を検出した場合に合意の欠損が検出された旨を示す標識が格納されてもよい。いくつかの実装において、個別の分散されたデータセットに関する提案された動作について投票が行われる際に、異なるシステムユニット１１５に、異なる投票重み（voting  weight）が割り当てられてもよい。投票重み情報は、システムユニットフィールド４２０内に及び／又は合意フィールド４４０内に格納され得る。
【００６８】
警報フィールド４５０には、合意の欠損の検出に応じた合意欠損警報の生成に関する情報が格納される。例えば、警報フィールド４５０は、合意欠損警報の送信の際に使用されるべき特定の通信方法を識別してもよく、及び／又は、合意欠損警報が送信されるべき特定の宛て先デバイスを識別してもよい。
【００６９】
図４は合意データベース３５８に格納され得る例示的なコンポーネントを示しているが、他の実装において、合意データベース３５８は、より少ない数のコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、又は図４に描かれたものとは別の追加的なコンポーネントを含んでもよい。
【００７０】
図５は、１つの実施形態における分散制御システム内で合意の欠損を処理するためのフローチャートである。いくつかの実装において、図５の処理は、コントローラ２１０により実行され得る。他の実装において、図５の処理のいくつか又は全てが、コントローラ２１０とは別個の及び／又はコントローラ２１０を含む、他のデバイス又はデバイスの集合により実行されてもよい。
【００７１】
図５の処理は、分散システム内のシステムユニットが利用不能になったことを検出すること（ブロック５１０）を含み得る。システムユニット１１５は、特定の間隔でハートビート（あるいはポーリング）メッセージを交換してもよい。他のシステムユニット１１５からハートビートメッセージが特定の期間の間に受信されなければ、合意欠損モジュール３３２は、当該他のシステムユニット１１５が利用不能になったと判定し得る。一例として、他のシステムユニット１１５は、誤作動を起こし又は電力を欠損したかもしれない。他の例として、他のシステムユニット１１５への接続に、リンク故障、ネットワーク輻輳、インタフェース若しくはネットワーキングデバイスの誤作動、及び／又は他の原因の結果として、障害が起こったかもしれない。合意欠損モジュール３３２は、合意データベース３５８内に、他のシステムユニット１１５が利用不能であることを示す標識を記憶させ得る。
【００７２】
また別の例として、障害を起こしたシステムユニット１１５がデバイス障害を示すメッセージを他のシステムユニット１１５へ送信してもよく、そのメッセージは当該他のシステムユニット１１５に障害発生中のシステムユニット１１５を利用不能であると識別させる。また別の例として、セキュリティ攻撃を受けたシステムユニット１１５が、セキュリティ侵害（security  breach）を検出してもよい。例えば、攻撃対象のシステムユニット１１５は、システムユニット１１５のコントローラ２１０が操作された場合にアクティブ化されるタンパスイッチあるいは侵入検知スイッチを含み得る。侵入又は改ざん等のセキュリティ侵害の検出に応じて、攻撃を受けたシステムユニット１１５は、セキュリティ侵害を示すメッセージを他のシステムユニット１１５へ送信し、及び自身を非アクティブ化し得る。セキュリティ侵害メッセージの受信に応じて、他のシステムユニット１１５は、攻撃を受けたシステムユニット１１５を利用不能であると識別し得る。合意欠損モジュール３３２は、分散されたデータセットに関連付けられる利用可能なシステムユニット１１５のリストを維持し、特定の間隔で利用可能なデバイスの当該リストを更新し得る。
【００７３】
システムユニットが利用不能になったことの検出に基づいて、分散システムにおいて合意の欠損が生じたか否かについての判定が行われ得る（ブロック５２０）。例えば、合意欠損モジュール３３２は、分散されたデータセットに関連付けられるいくつのシステムユニット１１５が利用可能であるかを判定し、及び、利用可能なシステムユニット１１５の数が分散されたデータセットについての提案される動作に関し合意を確立するための定足数に達するために要するシステムユニット１１５の数よりも少ないかを判定し得る。利用可能なシステムユニット１１５の数が定足数に達するために要するシステムユニット１１５の数よりも少ない場合、合意欠損モジュール３３２は、分散されたデータセットについて合意の欠損が生じたと判定し得る。
【００７４】
次に、利用可能なシステムユニット１１５のリストが生成され（ブロック５３０）、生成されたリストを含む警報メッセージが管理デバイスへ送信され得る（ブロック５４０）。例えば、合意欠損モジュール３３２は、合意データベース３５８にアクセスし、当該分散されたデータセットに関連付けられるどのシステムユニット１１５が利用可能であるかを判定し得る。合意欠損モジュール３３２は、警報フィールド４５０にアクセスして、合意欠損警報の送信のためにどの通信方法を使用すべきかを判定し、及び合意欠損警報の送信先となるべき特定の宛て先デバイスを判定し得る。宛て先デバイスは、管理デバイス１３０であってもよく、及び／又は管理者の移動通信デバイスといった他のデバイスであってもよい。
【００７５】
一例として、警報フィールド４５０が宛て先デバイスへウェブサービスメッセージが送信されるべきであることを特定していれば、合意欠損モジュール３３２は、その宛て先デバイスへウェブサービスメッセージを送信し得る。他の例として、警報フィールド４５０が宛て先デバイスへ電子メールメッセージ、ＳＭＳメッセージ又はリアルタイムサービス品質メッセージが送信されるべきであることを特定していれば、合意欠損モジュール３３２は、その宛て先デバイスへ電子メールメッセージ、ＳＭＳメッセージ又はリアルタイムサービス品質メッセージを送信し得る。
【００７６】
次に、上記リストに含まれるシステムユニットのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示が受信され（ブロック５５０）、受信された指示に基づいて、合意ベースの分散システムが生成され得る（ブロック５６０）。例えば、システムユニット１１５は、上記宛て先デバイス（例えば、管理デバイス１３０）から、分散されたデータセットのための合意ベースの分散システムを生成せよという指示を受信し得る。受信される指示は、新たな分散システムに含まれるべきシステムユニット１１５のリストを含み得る。一例として、管理者は、合意欠損警報内でリスト化された全ての利用可能なデバイスを新たな分散システムに含めることを選択してもよい。他の例として、管理者は、新たな分散システムから利用可能なデバイスのうちのいくつかを除外することを選択してもよい。
【００７７】
いくつかの実装において、管理デバイス１３０は、新たな分散システムに含まれるべき１つの特定のシステムユニット１１５へ上記指示を送信してもよい。他の実装において、管理デバイス１３０は、新たな分散システムに含まれるべき複数の（又は場合によっては全ての）システムユニット１１５へ上記指示を送信してもよい。指示を受信したシステムユニット１１５は、合意欠損警報に関連付けられる分散されたデータセットに基づいて、新たな分散されたデータセットを生成し、そして、新たな分散システムに含まれるべき他のシステムユニット１１５を当該新たな分散されたデータセットに関連付け得る。
【００７８】
システムユニット１１５は、新たな分散システムを生成する際に、過半数を達成するために必要とされるデバイスの最小限の数に基づいて、定足数に達するために要するシステムユニット１１５の数を選択し得る。よって、例えば、６個のシステムユニット１１５が新たな分散システムのために管理者により選択された場合、４個のシステムユニット１１５という定足数が当該新たなシステムのために設定され得る。
【００７９】
いくつかの実装において、分散されたデータセットについて提案される動作のための定足数に向けて投票を行おうとしている場合に、異なるシステムユニット１１５に異なる投票重みが割り当てられてもよい。例えば、個別のシステムユニット１１５の位置／ロケーションに基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のロケーションは重要であると見なされ、よってその特定のロケーションに位置するシステムユニット１１５に他のシステムユニット１１５よりも高い投票重みが付与され得る。
【００８０】
また、システムユニット１１５のグループにおけるメンバシップに基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、分散されたデータセットは１つ以上の基準に基づいてシステムユニット１１５の複数のグループに関連付けられ、第１のグループ内のシステムユニット１１５に、第２のグループ内のシステムユニット１１５よりも高い投票重みが付与され得る。また、個別のシステムユニット１１５のデバイスタイプに基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、第１のシステムユニット１１５は追加的な機能性を伴う新たなバージョンに対応しており、他のシステムユニット１１５よりも高い投票重みを付与され得る。
【００８１】
また、個別のシステムユニット１１５に割り当てられた脅威レベルに基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット１１５はパブリックロケーションといった脅威の大きいエリアに位置しており、よって他のシステムユニット１１５よりも低い投票重みを付与され得る。また、個別のシステムユニット１１５に関連付けられる信頼性の指標に基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット１１５は（例えば、環境的な条件に起因して）高い障害率を有しており、よって他のシステムユニット１１５よりも低い投票重みを付与され得る。また、個別のシステムユニット１１５に関連付けられる１つ以上のログに記録されたイベントに基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット１１５に含まれる動きセンサのログに多数の又は頻繁な動き検出イベントが記録されており、よって当該特定のシステムユニット１１５に他のシステムユニット１１５よりも高い投票重みが付与され得る。
【００８２】
また、個別のシステムユニット１１５に関連付けられる周辺デバイスのアクティブ化の頻度に基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット１１のロックデバイス２５０は他のシステムユニット１１５に関連付けられるロックデバイス２５０よりも高い頻度で稼働させられるような高いトラフィックを経験しており、よって当該特定のシステムユニット１１５に他のシステムユニット１１５よりも高い投票重みが付与され得る。また、個別のシステムユニット１１５に関連付けられる管理上のログインの頻度に基づいて、個別のシステムユニット１１５に他のシステムユニット１１５より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット１１は他のシステムユニット１１５よりも高い頻度で管理デバイス１３０により使用されており、よって他のシステムユニット１１５よりも高い投票重みを付与され得る。
【００８３】
いくつかの実装において、システムユニット１１５は、合意の欠損が検出された後、管理デバイス１３０から新たな分散されたデータセットを生成することを指示する応答が受信される前に、分散されたデータセットを使用し続ける必要があり得る。よって、いくつかの実装において、合意の欠損の検出に応じて、システムユニット１１５は、分散されたデータセットに基づいて、及び利用可能なシステムユニット１１５のリストに基づいて、緊急の分散されたデータセットを生成し得る。緊急分散データセットは、生成された合意欠損警報に管理者が応答するまで、システムユニット１１５により使用され得る。新たな分散システムを生成するための指示が管理デバイス１３０から受信された後、緊急分散データセット内のデータは、新たな分散データセットに取り込まれ得る。
【００８４】
いくつかの実装において、新たな分散されたデータセットが生成された後、以前に分散されたデータセットに関連付けられていて利用不能となった１つ以上のシステムユニット１１５が、再び利用可能となるかもしれない。例えば、障害を起こしたシステムユニット１１５が修復され、又は故障した接続が復旧するかもしれない。復旧したシステムユニット１１５は、分散されたデータセットへ再加入することをリクエストし得る。復旧したシステムユニット１１５が利用不能であった間、当該復旧したシステムユニット１１５は分散されたデータセットに関係するデータを蓄積していたかもしれない。復旧したシステムユニット１１５は、合意の欠損の後に生成された新たな分散システムに追加されることをリクエストし得る。新たな分散されたデータセットに関連付けられるシステムユニット１１５は、復旧したシステムユニット１１５から新たな分散されたデータセットへの追加を求めるリクエストを受信し、復旧したシステムユニット１１５を当該新たな分散されたデータセットへ追加し得る。システムユニット１１５は、続いて、復旧したシステムユニット１１５から新たな分散されたデータセットへのデバイスデータの追加を求めるリクエストを受信し、デバイスデータが新たな分散されたデータセットと整合するかを判定し、デバイスデータが新たな分散されたデータセットと整合する場合には、新たな分散されたデータセットへデバイスデータを追加し得る。
【００８５】
図６は、管理デバイス１３０の例示的なコンポーネントを示すブロック図である。図６に示したように、管理デバイス１３０は、バス６１０、プロセッサ６２０、メモリ６３０、入力デバイス６４０、出力デバイス６５０及び通信インタフェース６６０を含み得る。
【００８６】
バス６１０は、管理デバイス１３０のコンポーネント間の通信を許容するパスを含み得る。プロセッサ６２０は、命令を解釈し及び実行する、任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ並びに／又は処理ロジック（若しくはプロセッサ、マイクロプロセッサ、及び／若しくは処理ロジックの集合）を含み得る。他の実施形態において、プロセッサ６２０は、ＡＳＩＣ、ＦＰＧＡ及び／又は他のタイプの集積回路若しくは処理ロジックを含み得る。
【００８７】
メモリ６３０は、プロセッサ６２０による実行のための情報及び／若しくは命令を記憶し得る任意のタイプの動的記憶デバイス、並びに／又は、プロセッサ６２０による使用のための情報を記憶し得る任意のタイプの不揮発性記憶デバイスを含み得る。例えば、メモリ６３０は、ＲＡＭ若しくは他のタイプの動的記憶デバイス、ＲＯＭデバイス若しくは他のタイプの静的記憶デバイス、ＣＡＭ、磁気的及び／若しくは光学的記録メモリデバイス、及びその対応するドライブ（例えば、ハードディスクドライブ、光学的ドライブなど）、並びに／又は、フラッシュメモリといった着脱可能な形態のメモリ、を含み得る。
【００８８】
入力デバイス６４０は、オペレータが管理デバイス１３０へ情報を入力することを可能とし得る。入力デバイス６４０は、例えば、キーボード、マウス、ペン、マイクロフォン、リモートコントローラ、音声入力デバイス、画像及び／若しくは映像入力デバイス、タッチスクリーンディスプレイ、並びに／又は他のタイプの入力デバイスを含み得る。いくつかの実装において、管理デバイス１３０は、遠隔的に管理されてもよく、入力デバイス６４０を含まなくてもよい。言い換えれば、管理デバイス１３０は、“ヘッドレス（headless）”であってもよく、例えばキーボードを含まなくてもよい。
【００８９】
出力デバイス６５０は、管理デバイス１３０のオペレータへ情報を出力し得る。出力デバイス６５０は、ディスプレイ、プリンタ、スピーカ及び／又は他のタイプの出力デバイスを含み得る。例えば、管理デバイス１３０は、管理者へコンテンツを表示するためのＬＣＤ（liquid-crystal  display）を含み得るディスプレイを有してもよい。ディスプレイは、タッチスクリーンに相当してもよい。いくつかの実装において、管理デバイス１３０は、遠隔的に管理されてもよく、出力デバイス６５０を含まなくてもよい。言い換えれば、管理デバイス１３０は、“ヘッドレス（headless）”であってもよく、例えばディスプレイを含まなくてもよい。
【００９０】
通信インタフェース６６０は、無線通信（例えば、ＲＦ、赤外線、及び／若しくは可視光線など）、有線通信（例えば、導電性ワイヤ、ツイストペアケーブル、同軸ケーブル、伝送線、光ファイバケーブル、及び／若しくは導波管など）、又は無線通信と有線通信との組合せを介して、管理デバイス１３０が他のデバイス及び／又はシステムと通信することを可能とする送受信器、を含み得る。通信インタフェース６６０は、ベースバンド信号をＲＦ信号へ変換する送信器、及び／又はＲＦ信号をベースバンド信号へ変換する受信器、を含み得る。通信インタフェース６６０は、ＲＦ信号を送受信するためのアンテナと連結されてもよい。
【００９１】
通信インタフェース６６０は、データの他のデバイスへの送信を遂行する入出力ポート、入出力システム及び／又は他の入出力コンポーネント、を含む論理的なコンポーネントを含み得る。例えば、通信インタフェース６６０は、有線通信用のネットワークインタフェースカード（例えば、イーサネット（登録商標）カード）、及び／又は無線通信用の無線ネットワークインタフェース（例えば、Ｗｉ−Ｆｉ）カードを含み得る。通信インタフェース６６０は、ケーブル上の通信用のＵＳＢポート、Bluetooth（登録商標）無線インタフェース、ＲＦＩＤインタフェース、ＮＦＣ無線インタフェース、及び／又はデータをある形態から他の形態へ変換する任意の他のタイプのインタフェースをも含み得る。
【００９２】
以下に説明するように、管理デバイス１３０は、システムユニット１１５から受信される合意欠損警報の管理に関する何らかの動作を実行し得る。管理デバイス１３０は、メモリ６３０といったコンピュータ読取可能な媒体に含まれるソフトウェア命令を実行するプロセッサ６２０に応じて、それら動作を実行してもよい。メモリ６３０は、単一の物理的なメモリデバイスの範囲内で実装されてもよく、又は複数の物理的なメモリデバイスをまたいで拡散されてもよい。ソフトウェア命令は、他のコンピュータ読取可能な媒体から又は他のデバイスからメモリ６３０へ読み込まれてもよい。メモリ６３０内に含まれるソフトウェア命令は、プロセッサ６２０に、ここで説明される処理を実行させる。代替的に、ここで説明される処理を実装するために、ハードワイヤ回路がソフトウェア命令の代わりに又はソフトウェア命令との組合せにおいて用いられてもよい。よって、ここで説明される実装は、いかなる特定のハードウェア回路及びソフトウェアの組合せにも限定されない。
【００９３】
図６は管理デバイス１３０の例示的なコンポーネント群を示しているが、他の実装において、管理デバイス１３０は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図６に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、管理デバイス１３０の１つ以上のコンポーネントが、管理デバイス１３０の１つ以上の他のコンポーネントにより実行されるものとして説明された１つ以上のタスクを実行してもよい。
【００９４】
図７は、１つの実施形態における分散制御システムのシステムユニットから受信される合意欠損警報を処理するためのフローチャートである。いくつかの実装において、図７の処理は、管理デバイス１３０により実行され得る。他の実装において、図７の処理のいくつか又は全てが、管理デバイス１３０とは別個の及び／又は管理デバイス１３０を含む、他のデバイス又はデバイスの集合により実行されてもよい。
【００９５】
図７の処理は、分散制御システムのシステムユニットから１つ以上の合意欠損警報を受信すること（ブロック７１０）、を含み得る。管理デバイス１３０は、合意欠損警報アプリケーションを含み得る。合意欠損警報アプリケーションは、ＤＣＳ１１０のシステムユニット１１５から合意関連の警報を受信するように構成され得る。システムユニット１１５により合意の欠損が検出されると、合意欠損警報アプリケーションは、１つ以上の合意欠損警報を受信し得る。いくつかの実装において、合意欠損警報は、受信の際に提供されるアラートのシーケンスとして提示されてもよい。追加的に又は代替的に、合意欠損警報は、管理者へ提示される前に構造化され又は集約されてもよい。
【００９６】
受信された警報は、当該警報に関連付けられる分散されたデータセットに基づいて構造化され（ブロック７２０）、構造化された警報に基づいてユーザインタフェースが生成され得る（ブロック７３０）。例えば、分散されたデータセットについて合意の欠損が検出されると、当該分散されたデータセットに関連付けられる機能中のシステムユニット１１５（例えば、全ての機能中のシステムユニット１１５）は、管理デバイス１３０へ合意欠損警報を送信し得る。個別の分散されたデータセットについての受信される合意欠損警報のいくつかは、利用可能なデバイスの同一のリストを含み得る。合意欠損警報アプリケーションは、受信した利用可能なデバイスのリストを、重複するリストが提示されるように構造化あるいは体系化し得る。管理デバイス１３０上でアラートが生成され、生成されたアラートを閲覧することを管理者が選択すると、ユーザインタフェースが生成され管理者へ提示される。
【００９７】
ユーザインタフェースは、追加的な警報が受信された場合には更新され得る（ブロック７４０）。追加的な合意欠損警報が受信されると、合意欠損警報アプリケーションは、生成済みのユーザインタフェースを更新して、管理デバイス１３０によりシステムユニット１１５から受信された当該追加的な合意欠損警報から取得される情報を含める。
【００９８】
図８は、システムユニット１１５の例示的な物理レイアウト８００を示す平面図である。図８に示したように、物理レイアウト８００は、壁８１０、ドア８２０、コントローラ２１０、リーダデバイス２４０、ロックデバイス２５０、センサ２６０及びアクチュエータ２７０を含み得る。
【００９９】
壁８１０は、建物内の部屋といったセキュアエリア８３０を囲む。ドア８２０は、セキュアエリア８３０へのユーザのためのアクセスを提供する。本実施形態において、コントローラ２１０は、セキュアエリア８３０の内部に取り付けられる。他の実施形態において、コントローラ２１０は、非セキュアエリア８５０又はセキュアエリア８３０の外部に取り付けられてもよい。リーダデバイス２４０は、セキュアエリア８３０の外部に取り付けられ、ロックデバイス２５０はセキュアエリア８３０の内部において壁８１０及びドア８２０に取り付けられる。センサ２６０は、この例では、セキュアエリア８３０の外部、即ちドア８２０の外の非セキュアエリアに搭載される監視デバイスである。アクチュエータ２７０は、この例では、監視デバイスの視界を制御するために使用されるモータを含む。
【０１００】
ユーザがリーダデバイス２４０へ（例えば、ＰＩＮを入力し、アクセスカードをスキャンし、虹彩をスキャンする等により）認証情報を入力すると、コントローラ２１０は、その認証情報を用いてユーザのアイデンティティを認証し、アクセスルールテーブルをルックアップして、ユーザのアイデンティティとアクセスルールとに基づいて、ユーザにアクセスを許可すべきかを判定する。コントローラ２１０は、アクセスが許可されるべきであると判定すると、ロックデバイス２５０を起動してドア８２０をアンロック（開錠）し、そのようにしてユーザのセキュアエリア８３０へのアクセスを許可する。
【０１０１】
図８は物理レイアウト８００の例示的なコンポーネント群を示しているが、他の実装において、物理レイアウト８００は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図８に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、物理レイアウト８００内のいかなるコンポーネントも（又はいかなるコンポーネントの集合も）、物理レイアウト８００の１つ以上の他のコンポーネントにより実行されるものとして説明された１つ又は複数のタスクを実行してよい。
【０１０２】
図９は、ＤＣＳ１１０の例示的な物理レイアウト９００を示す平面図である。図９に示したように、物理レイアウト９００は、部屋９２０−Ａ〜９２０−Ｆを有する建物９１０を含み得る。イーサネット（登録商標）ネットワークといったローカルネットワーク９３０は、システムユニット１１５Ａ〜１１５Ｆを相互接続し得る。この例において、システムユニット１１５−Ａは部屋９２０−Ａへの２つのドアを制御し、システムユニット１１５−Ｂは部屋９２０−Ｂへの外側のドアを制御し、システムユニット１１５−Ｃは部屋９２０−Ｂから部屋９２０−Ｃへの１つのドアを制御し、システムユニット１１５−Ｄは部屋９２０−Ｃから部屋９２０−Ｄへの１つのドアを制御し、システムユニット１１５−Ｅは部屋９２０−Ｄから部屋９２０−Ｅへの１つのドア及び部屋９２０−Ｅから部屋９２０−Ｆへの１つのドアを制御し、システムユニット１１５−Ｆは部屋９２０−Ｆへの外側のドアを制御する。
【０１０３】
この例において、システムユニット１１５Ａ〜１１５Ｆは、中央制御デバイス（例えば、サーバ）を含まず、１つ以上の分散されたデータセットを含み得る。例えば、システムユニット１１５Ａ〜１１５Ｆは、分散される認証情報テーブル、分散されるアクセスルールテーブル、及び／又は分散されるイベントログを維持し得る。ここで、管理者が管理デバイス１３０を使用して、ユーザを追加するためにシステムユニット１１５−Ａへログインし、ユーザに関連付けられる認証情報を追加することを想定する。それら追加された認証情報は、ユーザがアクセス権を有する部屋へのドアを制御する他のシステムユニット１１５へ配信され得る。例えば、システムユニット１１５−Ｂに障害が起きると、システムユニット１１５−Ｂにより収集されたデータは、他のシステムユニットに含まれる分散されたイベントログの結果として、利用可能であり続け得る。
【０１０４】
図９は物理レイアウト９００の例示的なコンポーネント群を示しているが、他の実装において、物理レイアウト９００は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図９に描かれたものとは異なる配置のコンポーネントを含んでもよい。例えば、他の実施形態では、１つ以上の分散されるデータセットに関連して中央制御デバイス（例えば、サーバ）が使用されてもよい。追加的に又は代替的に、物理レイアウト９００内の１つ以上のコンポーネントが、物理レイアウト９００の１つ以上の他のコンポーネントにより実行されるものとして説明された１つ以上のタスクを実行してもよい。
【０１０５】
図１０Ａ〜図１０Ｃは、ここで説明される１つ以上の実装に係る例示的な合意欠損のシナリオの図である。図１０Ａは、図９の物理レイアウト９００内の複数のシステムユニット１１５のあり得るネットワークトポロジー１０００を例示している。図１０Ａに示したように、ローカルネットワーク９３０は、イーサネットスイッチ１０１０−Ａ及びイーサネットスイッチ１０１０−Ｂを含み得る。イーサネットスイッチ１０１０−Ａは、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃのコントローラに接続され得る。イーサネットスイッチ１０１０−Ｂは、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆのコントローラに接続され得る。イーサネットスイッチ１０１０−Ａ及び１０１０−Ｂは、イーサネットケーブルで接続され得る。ここで、イーサネットケーブルが破損した結果としてリンク１０２０が故障したものと想定する。故障したリンク１０２０は、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃを、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆとの間で通信不能にし得る。
【０１０６】
図１０Ｂは、合意データベース３５８内に記憶される情報の一部に相当し得るテーブル１０３０を示している。図１０Ｂに示したように、テーブル１０３０は、システムユニット１１５−Ａ〜１１５−Ｆに関連付けられる分散されたデータセットに関する情報を含む。テーブル１０３０は、マスタデータベース分散データセット、建物カウンタ分散データセット及び部屋Ｃカウンタ分散データセットに関する情報を含み得る。マスタデータベース分散データセットは、システムユニット１１５−Ａ〜１１５−Ｆに関連付けられ得る。マスタデータベースには、例えば、暗号化された認証情報、アクセスルール情報、システムユニット１１５の構成情報、及び／又は他のタイプの情報が格納され得る。１つの実施形態において、この例では、システムユニット１１５−Ａ〜１１５−Ｆの全てがマスタデータベース分散データセットに関連付けられ得る。さらに、マスタデータベース分散データセットの変更に関する合意に達するために、４個のシステムユニットという定足数を要し得る。他の実施形態において、他の例では、システムユニット１１５−Ａ〜１１５−Ｆの全てが必ずしもマスタデータベース分散データセットに関連付けられるとは限らない。
【０１０７】
建物カウンタ分散データセットには、建物カウンタアプリケーションに関する情報が格納され得る。建物カウンタアプリケーションは、建物９１０に入館し及び退館する人々を追跡し、建物９１０の内部にその時点で何人の人がいるかに関する情報を維持し得る。建物９１０の入退館はシステムユニット１１５−Ｂ及び１１５−Ｆのみにより制御されるため、システムユニット１１５−Ｂ及び１１５−Ｆのみが建物カウンタ分散データセットに関連付けられる。さらに、建物カウンタ分散データセットの変更に関する合意に達するために、２個のシステムユニットという定足数を要し得る。
【０１０８】
部屋Ｃカウンタ分散データセットには、部屋９２０−Ｃのためのカウンタアプリケーションに関する情報が格納され得る。例えば、部屋９２０−Ｃはカフェテリアに相当し、部屋Ｃカウンタアプリケーションは、カフェテリア内にその時点で何人の人がいるかを追跡し得る。部屋９２０−Ｃへのドアはシステムユニット１１５−Ａ、１１５−Ｃ及び１１５−Ｄのみにより制御されるため、システムユニット１１５−Ａ、１１５−Ｃ及び１１５−Ｄのみが部屋Ｃカウンタ分散データセットに関連付けられる。さらに、部屋Ｃカウンタ分散データセットの変更に関する合意に達するために、２個のシステムユニットという定足数を要し得る。
【０１０９】
故障したリンク１０２０は、合意欠損警報の生成に帰結し得る。図１０Ｃは、リンク１０２０の故障に応じたシステムユニット１１５−Ａ〜１１５−Ｆのうちの特定の１つにより生成される合意欠損警報を含む信号フロー１０４０を示している。システムユニット１１５−Ａは、もはやシステムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆには到達可能でない。従って、システムユニット１１５−Ａは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ａは、マスタデータベース合意欠損警報１０４２を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０４２は、利用可能なデバイスとして、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃを列挙し得る。さらに、システムユニット１１５−Ａは、依然としてシステムユニット１１５−Ｃには到達可能であるため、部屋Ｃカウンタ分散データセットに関して２個という必要定足数に達することができ、よって部屋Ｃカウンタ分散データセットについては合意の欠損は検出されない。
【０１１０】
システムユニット１１５−Ｂは、もはやシステムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆには到達可能でない。従って、システムユニット１１５−Ｂは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ｂは、マスタデータベース合意欠損警報１０４４を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０４４は、利用可能なデバイスとして、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃを列挙し得る。さらに、システムユニット１１５−Ｂは、建物カウンタ分散データセットに関して２個という必要定足数に達することができない。従って、システムユニット１１５−Ｂは、建物カウンタ合意欠損警報１０４６を生成して管理デバイス１３０へ送信し得る。建物カウンタ合意欠損警報１０４６は、利用可能なデバイスとして唯一、システムユニット１１５−Ｂを列挙し得る。
【０１１１】
システムユニット１１５−Ｃは、もはやシステムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆには到達可能でない。従って、システムユニット１１５−Ｃは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ｃは、マスタデータベース合意欠損警報１０４８を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０４８は、利用可能なデバイスとして、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃを列挙し得る。さらに、システムユニット１１５−Ｃは、依然としてシステムユニット１１５−Ａには到達可能であるため、部屋Ｃカウンタ分散データセットに関して２個という必要定足数に達することができ、よって部屋Ｃカウンタ分散データセットについては合意の欠損は検出されない。
【０１１２】
システムユニット１１５−Ｄは、もはやシステムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃには到達可能でない。従って、システムユニット１１５−Ｄは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ｄは、マスタデータベース合意欠損警報１０５０を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０５０は、利用可能なデバイスとして、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆを列挙し得る。さらに、システムユニット１１５−Ｄは、部屋Ｃカウンタ分散データセットに関して２個という必要定足数に達することができない。従って、システムユニット１１５−Ｄは、部屋Ｃカウンタ合意欠損警報１０５２を生成して管理デバイス１３０へ送信し得る。部屋Ｃカウンタ合意欠損警報１０５２は、利用可能なデバイスとして唯一、システムユニット１１５−Ｄを列挙し得る。
【０１１３】
システムユニット１１５−Ｅは、もはやシステムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃには到達可能でない。従って、システムユニット１１５−Ｅは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ｅは、マスタデータベース合意欠損警報１０５４を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０５４は、利用可能なデバイスとして、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆを列挙し得る。
【０１１４】
システムユニット１１５−Ｆは、もはやシステムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃには到達可能でない。従って、システムユニット１１５−Ｆは、マスタデータベース分散データセットに関して４個という必要定足数に達することができない。従って、システムユニット１１５−Ｆは、マスタデータベース合意欠損警報１０５６を生成して管理デバイス１３０へ送信し得る。マスタデータベース合意欠損警報１０５６は、利用可能なデバイスとして、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆを列挙し得る。さらに、システムユニット１１５−Ｆは、建物カウンタ分散データセットに関して２個という必要定足数に達することができない。従って、システムユニット１１５−Ｆは、建物カウンタ合意欠損警報１０５８を生成して管理デバイス１３０へ送信し得る。建物カウンタ合意欠損警報１０５８は、利用可能なデバイスとして唯一、システムユニット１１５−Ｆを列挙し得る。
【０１１５】
図１１は、ここで説明される１つ以上の実装に係る例示的なユーザインタフェース１１００の図である。図１１に示したように、ユーザインタフェース１１００は、図１０Ｃに示した合意欠損警報の受信に応じて、管理デバイス１３０により生成され得る。ユーザインタフェース１１００は、マスタデータベース分散データセットリスト１１１０、建物カウンタ分散データセットリスト１１２０及び部屋Ｃカウンタ分散データセットリスト１１３０を含み得る。
【０１１６】
マスタデータベース分散データセットリスト１１１０は、２つのリストを含み得る。第１のリストは、マスタデータベース合意欠損警報１０４２、１０４４及び１０４８から取得される情報に基づいて生成され、第２のリストは、マスタデータベース合意欠損警報１０５０、１０５４及び１０５６から取得される情報に基づいて生成され得る。このケースでは、管理者は、マスタデータベース分散データセットのために２つのリストのうちの一方を新たな合意ベースのシステムとして選択し、マスタデータベース分散データセットの２つの異なるバーションが生じるというsplit-brain問題を回避するために、他方のリストを選択しない（あるいは却下する）。例えば、管理者は、システムユニット１１５−Ａ、１１５−Ｂ及び１１５−Ｃを選択し、この場合、システムユニット１１５−Ｄ、１１５−Ｅ及び１１５−Ｆはマスタデータベースを変更することができなくなる。
【０１１７】
建物カウンタ分散データセットリスト１１２０は、２つのリストを含み得る。第１のリストは、建物カウンタ合意欠損警報１０４６から取得される情報に基づいて生成され、第２のリストは、建物カウンタ合意欠損警報１０５８から取得される情報に基づいて生成され得る。このケースでは、管理者は、リストの双方を選択してよく、その結果split-brain問題が生じるかもしれない。しかしながら、管理者は、建物へ入館し及び建物から退館する人数の追跡を継続することを重要視してもよく、システムユニット１１５−Ｂからの建物カウンタデータセット及びシステムユニット１１５−Ｆからの建物カウンタデータセットを手動で照合し一致させること選択し得る。
【０１１８】
部屋Ｃカウンタ分散データセットリスト１１３０は、部屋Ｃカウンタ合意欠損警報１０５２から取得された情報に基づいて生成されるリストを含み得る。管理者は、システムユニット１１５−Ａ及びシステムユニット１１５−Ｃが依然として部屋Ｃカウンタ分散データセットに関して定足数を得ることができることをシステムの構成に基づいて認識し得るため、この警報を無視することを選択し得る。
【０１１９】
ここまでの明細書において、好適な多様な実施形態を添付図面を参照しながら説明した。しかしながら、多様な修正及び変更をそこに加えることが可能であり、以下の特許請求の範囲に記載された発明の広範な範囲から逸脱することなく、追加的な実施形態が実装され得ることが明白である。従って、明細書及び図面は、限定的というよりも例示的な意味で扱われるべきである。
【０１２０】
例えば、図５及び図７を基準として一連のブロックが説明されているが、ブロックの順序は、他の実装において修正されてもよい。さらに、依存関係の無いブロックは並列的に実行されてもよい。
【０１２１】
上述したシステム及び／又は方法は、図面に示した実装に限らず、ソフトウェア、ファームウェア及びハードウェアの多くの様々な形式で実装され得ることが理解されるであろう。それらシステム及び方法を実装するために使用される実際のソフトウェアコード又は専用の制御ハードウェアは、実施形態を限定するものではない。よって、システム及び方法の動作及び振る舞いは特定のソフトウェアコードを参照することなく説明されているが、ここでの説明に基づけば、それらシステム及び方法を実装するようにソフトウェア及び制御ハードウェアを設計することができることが理解される。
【０１２２】
さらに、上述したある要素は、１つ以上の機能を実行するコンポーネントとして実装され得る。ここでのコンポーネントとは、プロセッサ、ＡＳＩＣ若しくはＦＰＧＡといったハードウェア、又はハードウェア及びソフトウェアの組合せ（例えば、ソフトウェアを実行するプロセッサ）を含み得る。
【０１２３】
強調すべきこととして、“comprises”及び“comprising”（含む／備える）との用語は、本明細書において使用される場合、記述された特徴、整数、ステップ又はコンポーネントの存在を特定するものとして扱われるが、１つ以上の他の特徴、整数、ステップ、コンポーネント又はそれらの集合の存在又は追加を除外しない。
【０１２４】
本出願におけるいかなるエレメント、動作又は命令も、そのように明示的に説明されていない限り、実施形態にとって決定的又は必要不可欠であると解釈されるべきではない。また、ここでの冠詞“a”は１つ以上の項目を含むものと意図される。さらに、“based  on”（基づいて）とのフレーズは、他の明示的な説明が無い限り、「少なくとも部分的に基づく」ことを意味するものと意図される。
【図１】
2015057692.tif 000003
【図２】
2015057692.tif 000004
【図３Ａ】
2015057692.tif 000005
【図３Ｂ】
2015057692.tif 000006
【図４】
2015057692.tif 000007
【図５】
2015057692.tif 000008
【図６】
2015057692.tif 000009
【図７】
2015057692.tif 000010
【図８】
2015057692.tif 000011
【図９】
2015057692.tif 000012
【図１０Ａ】
2015057692.tif 000013
【図１０Ｂ】
2015057692.tif 000014
【図１０Ｃ】
2015057692.tif 000015
【図１１】
2015057692.tif 000016