JP6254499B2 - 分散制御システムにおける合意の欠損 - Google Patents

分散制御システムにおける合意の欠損 Download PDF

Info

Publication number
JP6254499B2
JP6254499B2 JP2014175467A JP2014175467A JP6254499B2 JP 6254499 B2 JP6254499 B2 JP 6254499B2 JP 2014175467 A JP2014175467 A JP 2014175467A JP 2014175467 A JP2014175467 A JP 2014175467A JP 6254499 B2 JP6254499 B2 JP 6254499B2
Authority
JP
Japan
Prior art keywords
agreement
distributed
distributed system
devices
data set
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
JP2014175467A
Other languages
English (en)
Other versions
JP2015057692A (ja
JP2015057692A5 (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 JP2015057692A publication Critical patent/JP2015057692A/ja
Publication of JP2015057692A5 publication Critical patent/JP2015057692A5/ja
Application granted granted Critical
Publication of JP6254499B2 publication Critical patent/JP6254499B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/065Generation of reports related to network devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Alarm Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、一般的にアクセス制御システムに関し、より具体的には、分散型のアクセス制御システムにおける合意の欠損(consensus loss)に関する。
分散システムは、タスクのセットを達成するために通信し及び自身のアクションを協調させる複数のコンポーネントを含み得る。例えば、分散システム内のコンピュータは、アルゴリズムを解決するために協調することを目的として、ネットワーク上で通信し得る。データ及びリソースの管理、又は処理ステップの同期といった、独立したコンピュータ上で同時に行われる動作を成功裏に協調させるために、分散アルゴリズムを実装することが必要であり得る。多様な分散アルゴリズムが、分散システムのコンポーネントを協調させるために開発されてきた。
1つの観点によれば、分散システム内のデバイスにより実行される方法は、上記デバイスにより、上記分散システム内の他のデバイスが利用不能になったことを検出することと、上記デバイスにより、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定することと、上記デバイスにより、上記分散システム内の利用可能なデバイスのリストを生成することと、上記デバイスにより、管理デバイスへ警報メッセージ(alarm message)を送信することと、上記警報メッセージは、上記合意の欠損を示し、上記利用可能なデバイスのリストを含むことと、を含み得る。
それにより、例えば、分散システムに参加するいずれかのデバイスが利用不能になったことに起因して分散的に維持されるデータセットの管理又は変更のためのデバイス間の合意が得られなくなった場合に、システムをどのように再構成すべきかの判断を管理デバイス又は管理デバイスを操作する管理者に委ねることができる。
追加的に、上記方法は、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システム(consensus-based distributed system)を生成するための指示を受信することと、上記指示の受信に応じて、上記合意ベースの分散システムを生成することと、を含み得る。
それにより、合意の欠損が生じた状況下で依然として利用可能なデバイスを用いて、望ましい分散システムを再構成することができる。
追加的に、上記合意ベースの分散システムを生成することは、定足数をなすために要するデバイスの数を選択すること、を含んでもよく、上記数は、上記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当し得る。
それにより、再構成される新たな分散システムにおいて、デバイスの数が不足することなく合意を達成してデータセットを有効に管理し又は変更することが可能となる。
追加的に、上記方法は、上記利用可能なデバイスのうちの上記少なくともいくつかのデバイスに投票重みを割り当てること、を含んでもよく、上記投票重みは、生成される上記合意ベースの分散システムにおいて上記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、上記利用可能なデバイスの上記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与し得る。
それにより、データセットの管理又は変更のためのデバイス間の合意に際して特定のデバイスを重要視するなどといった柔軟な分散データセットの運用が可能となる。例えば、合意に関与することが特に望ましい一部のデバイスに相対的に大きい投票重みを付与することで、そのデバイスが利用不能になったときに、純粋なデバイス数が依然として過半数に達していたとしても合意の欠損が生じたと判定されるようにすることができる。
追加的に、上記投票重みは、上記デバイスのロケーション、複数の物理アクセス制御デバイスのうちの特定のサブセットにおけるデバイスのメンバーシップ、上記デバイスに関連付けられるデバイスタイプ、上記デバイスに割り当てられる脅威レベル(threat level)、又は上記デバイスに関連付けられる信頼性の指標、のうちの少なくとも1つに基づき得る。
追加的に、上記投票重みは、上記デバイスに関連付けられるログに記録された1つ以上のイベント、上記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、上記デバイスに関連付けられる管理上のログインの頻度、のうちの少なくとも1つに基づき得る。
追加的に、上記分散システム内の他のデバイスが利用不能になったことを検出することは、上記他のデバイスへの接続が喪失したことを検出すること、上記他のデバイスからデバイス障害の標識を受信すること、又は上記他のデバイスがセキュリティ侵害(security breach)に関連付けられていることを検出すること、のうちの少なくとも1つを含み得る。
追加的に、上記管理デバイスへ上記警報メッセージを送信することは、上記管理デバイスへウェブサービスメッセージを送信すること、上記管理デバイスへ電子メールメッセージを送信すること、上記管理デバイスへSMS(Short Message Service)メッセージを送信すること、又は、上記管理デバイスへリアルタイムサービス品質(quality of service)メッセージを送信すること、のうちの少なくとも1つを含み得る。
追加的に、上記方法は、上記分散システム内の利用可能なデバイスの上記リストを維持することと、特定の間隔で利用可能なデバイスの上記リストを更新することと、を含み得る。
追加的に、上記分散システムは、分散されたデータセットを含み、上記方法は、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記分散されたデータセットに基づく緊急分散データセットを生成することと、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記リストに含まれる上記利用可能なデバイスを含む緊急の合意ベースの分散システムを生成することと、上記緊急の合意ベースの分散システムは、上記緊急分散データセットを使用することと、をさらに含み得る。
追加的に、上記方法は、上記リストに含まれる上記利用可能なデバイスを含む合意ベースの分散システムを生成するための指示を、上記管理デバイスから受信することと、上記合意ベースの分散システムを生成するための上記指示の受信に応じて、上記分散されたデータセットへ上記緊急分散データセット内のデータを取り込むことと、をさらに含み得る。
追加的に、上記デバイスは、組込み型システム(embedded system)に相当し得る。
追加的に、上記分散システムは、分散された物理アクセス制御システムを含み、上記デバイス及び上記他のデバイスは、物理アクセス制御ユニットに相当し得る。
他の観点によれば、分散システムのデバイスは、上記分散システム内の他のデバイスが利用不能になったことを検出し、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定し、上記分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、上記合意の欠損を示し及び上記利用可能なデバイスのリストを含む警報メッセージを送信する、ように構成されるロジック、を含み得る。
追加的に、上記ロジックは、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、上記指示の受信に応じて、上記合意ベースの分散システムを生成する、ようにさらに構成され得る。
追加的に、上記ロジックは、上記合意ベースの分散システムを生成する際に、定足数をなすために要するデバイスの数を選択する、ようにさらに構成されてもよく、上記数は、上記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当し得る。
追加的に、上記ロジックは、上記合意ベースの分散システムを生成する際に、上記利用可能なデバイスのうちの上記少なくともいくつかのデバイスに投票重みを割り当てる、ようにさらに構成されてもよく、上記投票重みは、生成される上記合意ベースの分散システムにおいて上記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、上記利用可能なデバイスの上記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与し得る。
追加的に、上記投票重みは、上記デバイスのロケーション、複数の物理アクセス制御デバイスのうちの特定のサブセットにおけるデバイスのメンバーシップ、上記デバイスに関連付けられるデバイスタイプ、上記デバイスに割り当てられる脅威レベル、上記デバイスに関連付けられる信頼性の指標、上記デバイスに関連付けられるログに記録された1つ以上のイベント、上記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、上記デバイスに関連付けられる管理上のログインの頻度、のうちの少なくとも1つに基づき得る。
追加的に、上記ロジックは、上記分散システム内の他のデバイスが利用不能になったことを検出する際、上記他のデバイスへの接続が喪失したことを検出し、上記他のデバイスからデバイス障害の標識を受信し、又は上記他のデバイスがセキュリティ侵害に関連付けられていることを検出する、ようにさらに構成され得る。
追加的に、上記ロジックは、上記管理デバイスへ上記警報メッセージを送信する際、上記管理デバイスへウェブサービスメッセージを送信し、上記管理デバイスへ電子メールメッセージを送信し、上記管理デバイスへSMSメッセージを送信し、又は、上記管理デバイスへリアルタイムサービス品質メッセージを送信する、ようにさらに構成され得る。
追加的に、上記分散システムは、分散されたデータセットを含み、上記ロジックは、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記分散されたデータセットに基づく緊急分散データセットを生成し、上記分散システムにおいて合意の欠損が生じたとの判定に応じて、上記リストに含まれる上記利用可能なデバイスを含み上記緊急分散データセットを使用する緊急の合意ベースの分散システムを生成し、上記リストに含まれる上記利用可能なデバイスを含む合意ベースの分散システムを生成するための指示を上記管理デバイスから受信し、上記合意ベースの分散システムを生成するための上記指示の受信に応じて、上記分散されたデータセットへ上記緊急分散データセット内のデータを取り込む、ようにさらに構成され得る。
追加的に、上記分散システムは、分散された物理アクセス制御システムを含み、上記デバイス及び上記他のデバイスは、物理アクセス制御ユニットに相当し得る。
また別の観点によれば、分散システムは、複数の物理アクセス制御デバイスを含んでよく、上記複数の物理アクセス制御デバイスのうちの特定の1つは、上記分散システム内の他のデバイスが利用不能になったことを検出し、上記他のデバイスが利用不能になったことの検出に基づいて、上記分散システムにおいて合意の欠損が生じたと判定し、上記分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、上記合意の欠損を示し上記利用可能なデバイスのリストを含む警報メッセージを送信し、上記管理デバイスから、上記リストに含まれる上記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、上記指示の受信に応じて、上記合意ベースの分散システムを生成する、ように構成される。
ここで説明される実施形態に係る例示的な環境を示すブロック図である。 図1のシステムユニットの例示的なコンポーネントを示すブロック図である。 図1のシステムユニットの例示的な機能コンポーネントを示すブロック図である。 図1のシステムユニットの例示的な機能コンポーネントを示すブロック図である。 図3Bの合意データベース内に記憶され得る例示的な情報の図である。 1つの実施形態における分散制御システム内で合意の欠損を処理するためのフローチャートである。 図1の管理デバイスの例示的なコンポーネントを示す図である。 1つの実施形態における分散制御システムのシステムユニットから受信される合意欠損警報を処理するためのフローチャートである。 図1のシステムユニットの例示的な物理レイアウトを示す平面図である。 図1のシステムの例示的な物理レイアウトを示す平面図である。 ここで説明される1つ以上の実装に係る例示的な合意欠損のシナリオの図である。 ここで説明される1つ以上の実装に係る例示的な合意欠損のシナリオの図である。 ここで説明される1つ以上の実装に係る例示的な合意欠損のシナリオの図である。 ここで説明される1つ以上の実装に係る例示的なユーザインタフェースの図である。
以下の詳細な説明は、添付図面へ言及する。異なる図面における同一の参照番号は、同一の又は類似のエレメントを識別する。
ここで説明される実装は、分散制御システムにおける合意の欠損に関する。1つの実施形態において、分散制御システムは、分散型の(distributed)物理アクセス制御システムを含み得る。物理アクセス制御システムは、1つ以上の制御ユニット又はシステムユニットを含んでよく、各々はある施設のエリアへの物理的なアクセスを制御する。例えば、制御ユニット又はシステムユニットは、ユーザから認証情報(credential)を取得し、ユーザの認証情報が検証され、真正なものとして証明され、又は特定の条件を充足する場合にドアのロックを解除し得る。他の実装において、分散制御システムは、分散型のビル管理システム、分散型の監視システム、分散型のセキュリティシステム及び/又は他のタイプの分散制御システムを含み得る。
分散制御システムは、分散アルゴリズムを用いて、分散型のコンピューティング動作を実行し得る。例えば、分散制御システムは、分散されたデータベースを管理(manage)し得る。分散アルゴリズムは、合意(consensus)アルゴリズムを含み得る。合意アルゴリズムは、ある動作が実行される前に、分散システム内のノードの間で合意に達することを要する。例えば、合意アルゴリズムを採用する分散型のデータベースを更新するために、分散システム内のノード群は、更新の実行についての合意に到達する。合意に達した場合、ノード群(例えば、全てのノード)は、提案された動作(例えば、分散されたデータベースの変更)に同意し得る。合意は、提案された動作について定足数が獲得された場合に達せられ得る。定足数(quorum)は、提案された動作についてノード群のうちの多数(majority)が賛意を示す場合に達せられ得る。賛意は、例えば、賛成票(あるいは同意、承認など)を意味するメッセージ又は信号の送信によって示され得る。この実施形態では、変更について賛意を示すことをノード群のうちの多数に要求することで、例えば、2つの競合する提案された変更が検討されている場合に、少なくとも1つのノードが提案された変更の双方を受信し、提案された変更の一方を選択して賛成票を投じるなどの動作を行うことが保証される。
分散システムにおける合意の欠損は、定足数が達成されない場合に生じ得る。例えば、特定の数のノードが障害を起こし又は到達不能あるいは通信不能となった場合、提案された動作のための定足数が獲得されず、分散システムは、動作を継続することができないかもしれない。合意の欠損は、システム内のノード数を変更し、又はシステムへ予約ノード(reserved nodes)を取り入れることにより、自動的にハンドリングされることもできる。しかしながら、分散制御システムにおいて、そうした解決策は望ましくないかもしれない。例えば、システム内のノード数を変更し又は予約ノードを取り入れることは、システムの機能性を変化させかねない。他の例として、予約ノードが利用不能ということもあり得る。また別の例として、分散制御システム内のノードの2つのサブセットの間で通信が遮断されており、合意ベースのシステムが新たに自動的に各サブセット内の利用可能なノードを用いて生成される場合、いわゆるsplit-brain問題が生じ得る。split-brain問題では、各サブセットがそれぞれ分散システムを形成する結果として、分散される2つのバージョンのデータセットが維持されることになる。
ここで説明される実装は、分散システム内のデバイスを含み、当該デバイスは、分散システム内の他のデバイスが利用不能になったことを検出し、他のデバイスが利用不能になったことの検出に基づいて、分散システムにおいて合意の欠損が生じたと判定するように構成される。当該デバイスは、分散システム内の利用可能なデバイスのリストを生成し、管理デバイスへ、警報(alarm)メッセージを送信するように構成され得る。警報メッセージは、合意の欠損が生じたことを示し、利用可能なデバイスのリストを含み得る。管理者は、生成された当該利用可能なデバイスのリストに基づいて、新たな分散システムを生成すべきかを判断することができる。利用可能なデバイスを用いた新たな分散システムの生成は、ある状況下では望ましいものであり、他の状況下では望ましくない。分散システム内のデバイスは、管理デバイスから、リストに含まれる利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信し、指示の受信に応じて、合意ベースの分散システムを生成する、ように構成され得る。利用可能なデバイスのリストを生成すること、及び利用可能なデバイスを用いた新たな合意ベースのシステムの形成のために管理者からの承認を求めることにより、合意ベースの分散システムにおけるsplit-brain問題を防止し、又は望ましい構成で新たな分散システムを生成することが可能となる。
図1は、以下に説明するシステム及び/又は方法が実装され得る例示的な環境100のブロック図である。図1に示したように、環境100は、制御システム110(例えば、分散された物理アクセス制御システム)、ネットワーク120及び管理デバイス130を含み得る。
分散制御システム(DCS)110は、システムユニット115−A〜115−N(“システムユニット群115”と総称され、及び個別に“システムユニット115”とも称される)を含む分散コンピューティングシステムを含み得る。システムユニット115は、組込み型の(embedded)システムとして実装されてもよい。いくつかの実装では、システムユニット115は、物理アクセス制御デバイスを含み得る。例えば、システムユニット115は、部屋(room)又は部屋の集合といった保護されるエリアへのアクセスを制御するアクセスコントローラを含み得る。システムユニット115は、リーダ(reader)デバイスを介して認証情報(例えば、アクセスカードの認証情報)を受信し、当該認証情報が真正であってセキュアエリアへアクセスする権限に関連付けられているかを判定し得る。判定結果が真であれば、アクセスコントローラは、ドアのロックを解除し又はセキュアエリアへのアクセスを許可することに関連付けられる他の動作を実行するためのコマンドを発行し得る。他の実装において、システムユニット115は、監視デバイス又は機械の動作を制御するデバイスなどといった異なるタイプのセキュリティデバイスを含んでもよい。
DCS110は、1つ以上の分散されたデータセットを含み得る。分散されたデータセットは、複数のデバイスに関連付けられるデータセットを含む。1つの実施形態において、当該複数のデバイスは、データセットの変更を行うために、互いに通信し及び協調する。1つの実装において、分散されたデータセットに関連付けられるデバイス群の各々により当該分散されたデータセットのローカルコピーが維持され、それらデバイス群により変更が同意されると、その変更が分散されたデータセットのローカルコピーへと反映/再現される。他の実装において、例えば、分散されたデータセットのローカルコピーを全てのデバイスが記憶するとは限らない。
いくつかの実施形態において、分散されたデータセット(例えば、合意ベースの分散データベース)内で変更を行うために、合意が達せられる。他の実施形態において、合意が無くとも、分散されたデータセットへの変更がなされてもよい。分散されたデータセットは、全てのシステムユニット115に関連付けられてもよく、又はシステムユニット115のサブセットに関連付けられてもよい。システムユニット115は、合意ベースの分散されたデータセットへの変更を提案し得る。分散されたデータセットに関連付けられる定足数のシステムユニット115により変更が受け入れられる場合、合意は達せられ、関連付けられる各システムユニット115内の分散されたデータセットの各ローカルコピーへ変更が伝播され得る。よって、定足数の関連付けられるシステムユニット115が変更について賛成票を投じる場合に、分散されたデータセットにおける変更に関する合意が達せられ得る。定足数とは、関連付けられるシステムユニット群115を支配する最小限の数(例えば、過半数)に相当してよい。よって、過半数の例では、分散されたデータセットがN個のシステムユニット115に関連付けられる場合、Nが偶数ならばN/2+1個の関連付けられるシステムユニット115が変更に賛成票を投じれば定足数に達し、Nが奇数ならば(N−1)/2+1個の関連付けられるシステムユニット115が変更に賛成票を投じれば定足数に達する。定足数に達するために例えば過半数を要求することで、2つの競合する提案が検討される場合に、少なくとも1つのシステムユニット115が双方の提案を受信し、合意のためにそれら提案のうちの1つを選択することが保証され得る。
合意ベースの分散されたデータセットは、当該分散されたデータセットに関連付けられるどのシステムユニット115も、分散された当該データセットにより管理されるべき情報(例えば、1つの実施形態では、全ての情報)をデータセットに含めることを保証し得る。例えば、分散されたデータセットはアクセスルールを含んでよく、アクセスルールは分散されたデータセットに関連付けられるいかなるシステムユニット115にとっても利用可能であり得る。よって、1つ以上の分散されたデータセットの結果として、1つの実施形態において、DCS110は、サーバデバイスといった中央制御デバイスを伴わない非集中化型のシステムに相当し得る。他の実施形態において、DCS110は、非集中化型のシステム及び(サーバデバイスといった)中央制御デバイスの双方を含んでもよい。DCS110における何らかの変更が任意のシステムユニット115において構成され、その変更が分散されたデータセットに関連付けられる場合には、その変更は、当該分散されたデータセットに関連付けられる他のシステムユニット115へ伝播され得る。さらに、DCS110は、デバイス障害に関して、シングルポイントの障害が回避され得るようなロバスト性を呈し得る。例えば、特定のシステムユニット115が障害を起こした場合に、他のシステムユニット115は、データのロスなく(又はデータの最小限のロスのみで)動作を継続し得る。さらに、DCS110は、動的に変化してもよい。例えば、任意の時点でアプリケーションは追加されてよく、必要に応じて新たなデータセットがシステムユニット115内に記憶されてよい。
DCS110は、分散されないデータセットをも含んでよい。一例として、第1のシステムユニット115は、他のいかなるシステムユニット115にも含まれないローカルデータセットを含み得る。他の例として、第1のシステムユニット115は、ミラーリングといった非分散的な手法で第2のシステムユニット115へと複製されるローカルデータセットを含んでもよい。また別の例として、第1のシステムユニット115がローカルデータセットの第1のバージョンを含み、第2のシステムユニット115が当該ローカルデータセットの第2のバージョンを含んでもよい。この場合、第1のシステムユニット115はローカルデータセットの第1のバージョンを維持し、第2のシステムユニット115は当該ローカルデータセットの第2のバージョンを維持する。また別の例において、第1のシステムユニット115が分散されたデータセットから第1のローカルデータセットを導出し、第2のシステムユニット115が分散されたデータセットから第1のローカルデータセットとは異なる第2のローカルデータセットを導出してもよい。
ネットワーク120は、システムユニット115が互いに通信することを可能とし、及び/又は管理デバイス130が個々のシステムユニット115と通信することを可能とし得る。ネットワーク120は、1つ以上の回線交換ネットワーク及び/又はパケット交換ネットワークを含み得る。例えば、ネットワーク120は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、公衆交換電話網(PSTN)、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、無線ネットワーク、及び/又はこれらの若しくは他のタイプのネットワークの組合せ、を含み得る。
管理(administration)デバイス130は、DCS110を構成/設定し、DCS110の構成/設定を変更し、DCS110から情報を受信し、及び/又はDCS110について他の管理を実行するために、管理者(administrator)が個別のシステムユニット115へ接続することを可能とし得る。管理デバイス130は、システムユニット115との通信のために構成される任意のデバイスを含み得る。例えば、管理デバイス130は、可搬性の通信デバイス(例えば、携帯電話、スマートフォン、ファブレットデバイス、GPS(Global Positioning System)デバイス、及び/若しくは他のタイプの無線デバイス)、PC(Personal Computer)若しくはワークステーション、サーバデバイス、ラップトップ、タブレット、若しくは他のタイプのポータブルコンピュータ、並びに/又は通信ケイパビリティを有する他のタイプのデバイスを含み得る。
図1は環境100の例示的なコンポーネント群を示しているが、他の実装において、環境100は、より少ない数のコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、又は図1に描かれたもの以外の追加的なコンポーネントを含んでもよい。追加的に又は代替的に、環境100内のいかなる1つのデバイスも(又はいかなるデバイスの集合も)、環境100内の1つ以上の他のデバイスにより実行されるものとして説明された機能を実行してよい。例えば、いくつかの実装において、システムユニット115は、入出力デバイス(例えば、キーボード/キーパッド及びディスプレイ、タッチスクリーンなど)を含んでもよく、管理デバイス130は必要とされなくてもよい。
図2は、システムユニット115の例示的なコンポーネント群を示すブロック図である。図2に示したように、システムユニット115は、コントローラ210と、1つ以上の周辺デバイス230とを含み得る。コントローラ210は、システムユニット115の動作を制御し、他のシステムユニット115と通信し、管理デバイス130と通信し、及び/又は周辺デバイス230を制御し得る。コントローラ210は、バス212、プロセッサ214、メモリ216、ネットワークインタフェース218、周辺インタフェース220及び筐体222を含み得る。
バス212は、コントローラ210のコンポーネント間の通信を許容するパスを含み得る。プロセッサ214は、命令を解釈し及び実行する、任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ並びに/又は処理ロジック(若しくはプロセッサ、マイクロプロセッサ、及び/若しくは処理ロジックの集合)を含み得る。他の実施形態において、プロセッサ214は、ASIC(application-specific integrated circuit)、FPGA(field-programmable gate array)及び/又は他のタイプの集積回路若しくは処理ロジックを含み得る。
メモリ216は、プロセッサ214による実行のための情報及び/若しくは命令を記憶し得る任意のタイプの動的記憶デバイス、並びに/又は、プロセッサ214による使用のための情報を記憶し得る任意のタイプの不揮発性記憶デバイスを含み得る。例えば、メモリ216は、RAM(random access memory)若しくは他のタイプの動的記憶デバイス、ROM(read-only memory)デバイス若しくは他のタイプの静的記憶デバイス、CAM(content addressable memory)、磁気的及び/若しくは光学的記録メモリデバイス、及びその対応するドライブ(例えば、ハードディスクドライブ、光学的ドライブなど)、並びに/又は、フラッシュメモリといった着脱可能な形態のメモリ、を含み得る。
ネットワークインタフェース218は、有線通信リンク(例えば、導電性ワイヤ、ツイストペアケーブル、同軸ケーブル、伝送線、光ファイバケーブル、及び/若しくは導波管など)、無線通信リンク(例えば、無線周波数(RF)、赤外線、及び/若しくは可視光線など)、又は無線通信リンクと有線通信リンクとの組合せを介して、コントローラ210が他のデバイス及び/又はシステムと通信する(例えば、データを送受信する)ことを可能とする送受信器(例えば、送信器及び/又は受信器)、を含み得る。ネットワークインタフェース218は、ベースバンド信号をRF信号へ変換する送信器、及び/又はRF信号をベースバンド信号へ変換する受信器、を含み得る。ネットワークインタフェース218は、RF信号を送受信するためのアンテナと連結されてもよい。
ネットワークインタフェース218は、データの他のデバイスへの送信を遂行する入出力ポート、入出力システム及び/又は他の入出力コンポーネント、を含む論理的なコンポーネントを含み得る。例えば、ネットワークインタフェース218は、有線通信用のネットワークインタフェースカード(例えば、イーサネット(登録商標)カード)、及び/又は無線通信用の無線ネットワークインタフェース(例えば、Wi−Fi)カードを含み得る。ネットワークインタフェース218は、ケーブル上の通信用のUSB(universal serial bus)ポート、Bluetooth(登録商標)無線インタフェース、RFID(radiofrequency identification)インタフェース、NFC(near-field communications)無線インタフェース、及び/又はデータをある形態から他の形態へ変換する任意の他のタイプのインタフェースをも含み得る。
周辺インタフェース220は、1つ以上の周辺デバイス230と通信するように構成され得る。例えば、周辺インタフェース220は、周辺デバイス230へのデータの送信を遂行する入出力ポート、入出力システム及び/又は他の入出力コンポーネント、を含む1つ以上の論理的なコンポーネントを含み得る。一例として、周辺インタフェース220は、WiegandプロトコルなどのSPI(Serial Peripheral Interface)バスプロトコル、RS−485プロトコル、及び/又は他のタイプのプロトコルを用いて、周辺デバイスと通信し得る。他の例として、周辺インタフェース220は、異なるタイプのプロトコルを用いてもよい。1つの実施形態において、ネットワークインタフェース218もまた、周辺機器230をコントローラ210と連結するための周辺インタフェースとして作動してもよい。
筐体222は、コントローラ210のコンポーネント群を収容し、コントローラ210のコンポーネント群を環境から保護し得る。1つの実施形態において、筐体222は、1つ以上の周辺デバイス230を含み得る。他の実施形態において、筐体222は、管理デバイス130を含んでもよい。筐体222は、複数のシステムユニット115及び/又はコントローラ210を伴うシステムにおいて、1つのシステムユニット115及び/又はコントローラ210の他のシステムユニット115及び/又はコントローラ210からの境界を定義し得る。
以下に説明するように、コントローラ210は、分散システム内で合意の欠損を管理することに関する何らかの動作を実行し得る。コントローラ210は、それら動作を、ASICのハードウェア回路の結果として実行してもよい。また(あるいは代替的に)、コントローラ210は、メモリ216といったコンピュータ読取可能な媒体に含まれるソフトウェア命令を実行するプロセッサ214に応じて、それら動作を実行してもよい。コンピュータ読取可能な媒体は、非一時的なメモリデバイスを含み得る。メモリデバイスは、単一の物理的なメモリデバイスの範囲内で実装されてもよく、又は複数の物理的なメモリデバイスをまたいで拡散されてもよい。ソフトウェア命令は、他のコンピュータ読取可能な媒体から又は他のデバイスからメモリ216へ読み込まれてもよい。メモリ216内に含まれるソフトウェア命令は、プロセッサ214に、ここで説明される処理を実行させる。よって、ここで説明される実装は、いかなる特定のハードウェア回路及びソフトウェアの組合せにも限定されない。
周辺デバイス230は、コントローラ210へ情報を提供し、コントローラ210により制御され、及び/又はさもなくばコントローラ210と通信する1つ以上のデバイスを含み得る。例えば、周辺デバイス230は、リーダ(reader)デバイス240、ロック(lock)デバイス250、センサ260、及び/又はアクチュエータ270を含み得る。図2には例示の目的で単一のリーダデバイス240、単一のロックデバイス250、単一のセンサ260、及び単一のアクチュエータ270が示されているが、実際には、一群の周辺デバイス230は、複数のリーダデバイス240、複数のロックデバイス250、複数のセンサ260、及び/又は複数のアクチュエータ270を含んでもよい。いくつかの実装において、周辺デバイス230は、図2に示したデバイスのうちの1つ以上を含まなくてもよい。追加的に又は代替的に、周辺デバイス230は、図2に示していない任意の他のタイプのセキュリティデバイスを含んでもよい。
リーダデバイス240は、ユーザから認証情報を読取り、認証情報をコントローラ210へ提供するデバイスを含み得る。例えば、リーダデバイス240は、アルファベット又は数字のPIN(personal identification number)をユーザから受け付けるように構成されるキーパッド、磁気ストリップ上にカードコードを格納するカード若しくはRFIDタグといった他のタイプの記憶デバイスを構成するカードリーダ、ユーザの指紋を読み取るように構成される指紋リーダ、ユーザの虹彩を読み取るように構成される虹彩リーダ、ユーザの声紋を記録するように構成されるマイクロフォン及び声紋識別器、NFC(near field communication)リーダ、並びに/又は他のタイプのリーダデバイスを含み得る。リーダデバイス240は、認証情報を提供可能な任意のタイプのセキュリティデバイスを含んでよく、センサ260を参照しながら以下に説明される任意のセンサデバイスといった1つ以上のセンサデバイスを含んでもよい。例えば、リーダデバイス240は、顔認識のために使用されるカメラ、及び/又は音声認識のために使用されるマイクロフォンを含んでもよい。
ロックデバイス250は、コントローラ210により制御されるロック(鍵)を含み得る。ロックデバイス250は、ドア(例えば、ドアの開閉が妨げられる)、窓、HVACベント(空調、通気、排気など)、及び/又はセキュアエリアの開放可能部への他のタイプのアクセス、をロック(施錠)し得る。例えば、ロックデバイス250は、電磁式ロック、コントローラ210により制御されるモータを伴う機械式ロック、電気機械式ロック、及び/又は他のタイプのロックを含み得る。さらに、ロックデバイス250は、機械、輸送車両、エレベータ、及び/又は電気デバイスの動作をロック(施錠)し/アンロック(開錠)してもよい。
センサ260は、センサデバイスを含み得る。例として、センサ260は、ドアが開いているか閉じているかを感知するドアセンサ、可視光モニタリングカメラ、赤外(IR)光モニタリングカメラ、熱シグニチャモニタリングカメラ及び/若しくは他のタイプのモニタリングデバイス、動きセンサ、熱センサ、圧力センサ及び/若しくは他のタイプの警報センサといった警報センサ、音声記録デバイス(例えば、マイクロフォン)、システムユニット115の内部に位置する位置センサ、及び/若しくはシステムユニット115に関連付けられる保護されるエリア内に位置する“退出要求(request to exit)”ボタンといったタンパ(tamper)センサ、並びに/又は、他のタイプのセンサデバイス、を含み得る。
アクチュエータ270は、アクチュエータデバイスを含み得る。一例として、アクチュエータ270は、照明/発光デバイスを制御し得る。他の例として、アクチュエータ270は、侵入警報起動器(burglar alarm activator)、メッセージを再生し若しくは警報信号を生成するスピーカ、ディスプレイデバイス、センサ260を動かす(例えば、カメラ若しくは他の監視デバイスの視界を制御する)モータ、ドア、窓、HVACベント及び/若しくはセキュアエリアに関連付けられる他の開放可能部を開閉するためのモータ、ロックデバイス250をロック位置若しくはアンロック位置に固定するモータ、消火デバイス、並びに/又は他のタイプのアクチュエータデバイスを含み得る。
図2はシステムユニット115の例示的なコンポーネント群を示しているが、他の実装において、システムユニット115は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図2に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、システムユニット115のいかなるコンポーネントも(又はいかなるコンポーネントの集合も)、システムユニット115の1つ以上の他のコンポーネントにより実行されるものとして説明された1つ又は複数のタスクを実行してよい。例えば、いくつかの実装において、周辺インタフェース220は、ネットワークインタフェースに相当し得る。他の例として、いくつかの実装において、周辺デバイス230は、周辺インタフェース220を介するよりもむしろ、ネットワークインタフェース218を介してコントローラ210へ接続され得る。
さらに、DCS110は物理アクセス分散制御システムを含み得るものの、他の実装では、物理アクセスシステムとは別のシステムが制御されてもよい。一方で、DCS110は、ドアを開閉し又は建物若しくは施設への物理的なアクセスを制御するための制御システムといった、(例えば、運用環境における)任意のタイプの物理アクセス制御システムを含んでもよい。また、DCS110は、ファン(fan)を制御(例えば、起動若しくは停止)し、ビル管理システム内の警報を開始させ(例えば、認証失敗、成功裏の認証など)、又は産業オートメーションシステム内のロボットアームを制御するシステムを含んでもよい。
図3A及び図3Bは、システムユニット115の例示的な機能コンポーネントを示すブロック図である。システムユニット115の機能コンポーネントは、例えば、1つ以上のASICのハードワイヤ回路を介して実装されてもよい。追加的に又は代替的に、システムユニット115の機能コンポーネントは、メモリ216からの命令を実行するプロセッサ214により実装されてもよい。図3Aは、システムユニット115の機能的なレイヤ群を示している。図3Aに示したように、システムユニット115は、API(application programming interface)レイヤ310、アプリケーションレイヤ320、分散制御レイヤ340及びストレージレイヤ350を含み得る。
APIレイヤ310は、例えば、管理デバイス130と通信するように構成されるAPIを含む。一例として、管理者が管理デバイス130を用いてシステムユニット115にログインする際、APIレイヤ310は、管理者を認証するために管理デバイス130と通信し得る。他の例として、APIレイヤ310は、システムユニット115の構成を変更するために管理デバイス130と通信し得る。APIレイヤ310は、管理デバイス130からデータを受信し、当該データを分散制御レイヤ340及び/又はストレージレイヤ350へ提供し得る。また、APIレイヤ310は、アプリケーションレイヤ320内にアプリケーションをインストールするために管理デバイス130と通信し得る。APIレイヤ310は、様々な管理者タイプを扱うように構成されてもよい。例えば、APIレイヤ310は、ウェブサービス管理者、リナックス管理者若しくはONVIF(Open Network Video Interface Forum)管理者を扱うためのAPI、及び/又は他のタイプのAPIを含んでもよい。
アプリケーションレイヤ320は、システムユニット115にインストールされる1つ以上のアプリケーションを含む。図3Bは、例示的なアプリケーション群を示す。図3Bに示したように、アプリケーションレイヤ320は、アクセス制御ロジックアプリケーション322、ドア制御アプリケーション324、リーダ制御アプリケーション326、イベントハンドリングアプリケーション328、スケジュールハンドリングアプリケーション330、及び/又は合意欠損モジュール332を含み得る。
アクセス制御ロジックアプリケーション322は、受信される認証情報に基づいて、及び記憶されるアクセスルールに基づいて、アクセスを許可するべきかを判定し得る。ドア制御アプリケーション324は、1つ以上のドア及び/又は関連付けられるロックデバイス250を制御し得る。例えば、ドア制御アプリケーション324は、ドアが開いているか閉じているか及び/若しくは施錠されているか開錠されているかを判定し、並びに1つ以上のデバイスを操作してドアを開閉し及び/若しくはドアを施錠し若しくは開錠し得る。リーダ制御アプリケーション326は、1つ以上のリーダデバイス240を制御し、1つ以上のリーダデバイス240から受信される認証情報を取得し及び処理し得る。イベントハンドリングアプリケーション328は、システムユニット115により記録され若しくは生成され、及び/又は他のシステムユニット115により記録されるイベントのログを維持し得る。イベントハンドリングアプリケーション328は、全ての(又は少なくともいくつかの)システムユニット115において分散システムイベントログを維持する目的で、ローカルで記録され又は生成されたイベントがDCS110内の他のシステムユニット115へと配信されること、を保証してもよい。そのようにして、ログに記録されたイベントは、システムイベントログに関連付けられる任意のシステムユニット115から引き出され得る。スケジュールハンドリングアプリケーション330は、システムユニット115に関連付けられる1つ以上のスケジュールを管理し得る。例えば、特定のユーザのグループについてのアクセスルールが、特定の日時に基づいて変化し得る。
合意欠損モジュール332は、分散されたデータセットに関する合意の欠損を検出し得る。例えば、合意欠損モジュール332は、どのシステムユニット115が利用可能であるかを判定し、個別の分散されたデータセットに関連付けられる利用可能なシステムユニット115の数が当該分散されたデータセットについての提案される動作に関する定足数に達し得るために十分であるかを判定し得る。利用可能なシステムユニット115の数が定足数に達するために要する数を下回る場合には、合意欠損モジュール332は、その個別の分散されたデータセットに関して合意の欠損を検出し得る。合意欠損モジュール332は、当該個別の分散されたデータセットに関連付けられる利用可能なシステムユニット115のリストを生成し、生成したリストを含む合意欠損警報(consensus loss alarm)を生成し、生成した合意欠損警報を指定されたデバイスへ送信し得る。指定されたデバイスは、管理デバイス130、及び/又は、管理者の移動通信デバイス(例えば携帯電話)といった他のデバイスに相当し得る。管理者は、分散されたデータセットについて新たなシステムユニット115のセットを生成することを選択すると、システムユニット115へ、当該新たなシステムユニット115のセットを生成するための指示を送信し得る。合意欠損モジュール332は、分散されたデータセットに関連付けられる新たなシステムユニット115のセットを生成し得る。
他のアプリケーション(図3Bには示していない)がアプリケーションレイヤ320に含まれてもよい。一例として、警報アプリケーションは、レポート及び/又は警報を生成し、当該レポート及び/又は警報を管理デバイス130へ(及び/若しくは他の指定されたデバイスへ)並びに/又は1つ以上の他のシステムユニット115へ送信し得る。他の例として、タスク固有の制御アプリケーションは、ドア開放イベント、センサイベント、アクチュエータイベント及び/又は他のタイプのイベントといったシステムユニット115に関連付けられるイベントを処理し得る。
分散制御レイヤ340は、システムユニット115に関連付けられる1つ以上の分散されるデータセットを管理し得る。例えば、分散制御レイヤ340は、ネットワーク120上の他のシステムユニット115とのセキュア接続(例えば、TLS(Transport Layer Security)接続)を維持し得る。さらに、分散制御レイヤ340は、個別の合意ベースの分散データセットにおける変更に関する合意を確立するために、プロトコル(例えば、PAXOSプロトコル)を使用し得る。一例として、分散制御レイヤ340は、分散されたデータセットに関連付けられる他のシステムユニット115へ変更についての提案を送信し、他のシステムユニット115から当該変更のための定足数を受信し得る。他の例として、分散制御レイヤ340は、他のシステムユニット115から受信される提案について(例えば応答メッセージを送信することにより)賛成票を投じてもよい。また別の例として、分散制御レイヤ340は、変更について投票しなかったとしても、当該変更について合意が達せられたという標識を受信してもよい。変更についての合意の標識が受信された場合、分散制御レイヤ340は、分散されたデータセットのローカルコピー内の当該変更を行い得る。
ストレージレイヤ350は、システムユニット115に関連付けられる1つ以上のデータセットを記憶し得る。ストレージレイヤ350に記憶されるデータセットは、ローカルデータセットに相当してもよく、又は分散されたデータセットに相当してもよい。ローカルデータセットには、当該ローカルデータセットを記憶する個別のシステムユニット115に関連付けられる(及び/又は、個別のシステムユニット115にのみ関連付けられる)情報が格納され得る。分散されたデータセットには、当該分散されたデータセットに関連付けられる他のシステムユニット115にも関連付けられる情報が格納され得る。
ストレージレイヤ350に含まれ得る例示的な情報が図3Bに示されている。図3Bに示したように、ストレージレイヤ350は、構成データ352、認証情報データ354、アクセスルールデータ356、及び合意データベース358を含み得る。構成データ352には、コントローラ210若しくはコントローラ210に接続される周辺デバイス230のハードウェア構成及び設定、若しくはアプリケーションレイヤ320にインストールされるアプリケーションのソフトウェア構成及び設定といった、個別のシステムユニット115に関連付けられる構成データ、並びに/又は他のタイプの構成情報が格納され得る。認証情報データ354には、システムユニット115に関連付けられる認証情報が格納され得る。アクセスルール356には、システムユニット115に関連付けられるアクセスルールが格納され得る。合意データベース358には、合意の欠損を検出するために合意欠損モジュール332により使用され得る情報が格納され得る。合意データベース358に格納され得る例示的な情報は、図4を参照しながら後に説明される。
図3A及び図3Bはシステムユニット115の例示的な機能コンポーネント群を示しているが、他の実装において、システムユニット115は、より少ない数の機能コンポーネント、異なる機能コンポーネント、異なる配置の機能コンポーネント、又は図3A及び図3Bに描かれたものとは別の追加的な機能コンポーネントを含んでもよい。追加的に、システムユニット115のコンポーネント群のうちのいかなる1つも(又はいかなるコンポーネントの集合も)、システムユニット115の1つ以上の他の機能コンポーネントにより実行されるものとして説明された機能を実行してよい。
図4は、合意データベース358に格納され得る例示的な情報の図である。図4に示したように、合意データベース358は、1つ以上の分散データセットレコード400を含み得る。各データセットレコード400には、システムユニット115が関連付けられる個別のデータセットに関する情報が格納される。データセットレコード400は、分散データセットフィールド410、システムユニットフィールド420−A〜420−Nのセット、対応する利用可能性フィールド430−A〜430−Nのセット、合意フィールド440、及び警報フィールド450を含み得る。
分散データセットフィールド410には、システムユニット115に関連付けられる個別のデータセットを識別する情報(例えば、データセットの識別子及び/又は名称など)が格納され得る。各システムユニットフィールド420には、分散されたデータセットに関連付けられる他のシステムユニット115を識別する情報(例えば、システムユニットの識別子及び/又は名称など)が格納され得る。対応する利用可能性フィールド430には、他のシステムユニット115が利用可能かについての情報が格納され得る。合意フィールド440には、個別の分散されたデータセットに関連付けられる合意要件に関する情報が格納され得る。例えば、合意フィールド440には、個別の分散されたデータセットについての提案される動作に関して合意を確立するための定足数に達するために、いくつの賛成票が(自身の及び)他のシステムユニット115から必要とされるかについての情報が格納され得る。さらに、合意フィールド440には、合意欠損モジュール332が個別の分散されたデータセットについて合意の欠損を検出した場合に合意の欠損が検出された旨を示す標識が格納されてもよい。いくつかの実装において、個別の分散されたデータセットに関する提案された動作について投票が行われる際に、異なるシステムユニット115に、異なる投票重み(voting weight)が割り当てられてもよい。投票重み情報は、システムユニットフィールド420内に及び/又は合意フィールド440内に格納され得る。
警報フィールド450には、合意の欠損の検出に応じた合意欠損警報の生成に関する情報が格納される。例えば、警報フィールド450は、合意欠損警報の送信の際に使用されるべき特定の通信方法を識別してもよく、及び/又は、合意欠損警報が送信されるべき特定の宛て先デバイスを識別してもよい。
図4は合意データベース358に格納され得る例示的なコンポーネントを示しているが、他の実装において、合意データベース358は、より少ない数のコンポーネント、異なるコンポーネント、異なる配置のコンポーネント、又は図4に描かれたものとは別の追加的なコンポーネントを含んでもよい。
図5は、1つの実施形態における分散制御システム内で合意の欠損を処理するためのフローチャートである。いくつかの実装において、図5の処理は、コントローラ210により実行され得る。他の実装において、図5の処理のいくつか又は全てが、コントローラ210とは別個の及び/又はコントローラ210を含む、他のデバイス又はデバイスの集合により実行されてもよい。
図5の処理は、分散システム内のシステムユニットが利用不能になったことを検出すること(ブロック510)を含み得る。システムユニット115は、特定の間隔でハートビート(あるいはポーリング)メッセージを交換してもよい。他のシステムユニット115からハートビートメッセージが特定の期間の間に受信されなければ、合意欠損モジュール332は、当該他のシステムユニット115が利用不能になったと判定し得る。一例として、他のシステムユニット115は、誤作動を起こし又は電力を欠損したかもしれない。他の例として、他のシステムユニット115への接続に、リンク故障、ネットワーク輻輳、インタフェース若しくはネットワーキングデバイスの誤作動、及び/又は他の原因の結果として、障害が起こったかもしれない。合意欠損モジュール332は、合意データベース358内に、他のシステムユニット115が利用不能であることを示す標識を記憶させ得る。
また別の例として、障害を起こしたシステムユニット115がデバイス障害を示すメッセージを他のシステムユニット115へ送信してもよく、そのメッセージは当該他のシステムユニット115に障害発生中のシステムユニット115を利用不能であると識別させる。また別の例として、セキュリティ攻撃を受けたシステムユニット115が、セキュリティ侵害(security breach)を検出してもよい。例えば、攻撃対象のシステムユニット115は、システムユニット115のコントローラ210が操作された場合にアクティブ化されるタンパスイッチあるいは侵入検知スイッチを含み得る。侵入又は改ざん等のセキュリティ侵害の検出に応じて、攻撃を受けたシステムユニット115は、セキュリティ侵害を示すメッセージを他のシステムユニット115へ送信し、及び自身を非アクティブ化し得る。セキュリティ侵害メッセージの受信に応じて、他のシステムユニット115は、攻撃を受けたシステムユニット115を利用不能であると識別し得る。合意欠損モジュール332は、分散されたデータセットに関連付けられる利用可能なシステムユニット115のリストを維持し、特定の間隔で利用可能なデバイスの当該リストを更新し得る。
システムユニットが利用不能になったことの検出に基づいて、分散システムにおいて合意の欠損が生じたか否かについての判定が行われ得る(ブロック520)。例えば、合意欠損モジュール332は、分散されたデータセットに関連付けられるいくつのシステムユニット115が利用可能であるかを判定し、及び、利用可能なシステムユニット115の数が分散されたデータセットについての提案される動作に関し合意を確立するための定足数に達するために要するシステムユニット115の数よりも少ないかを判定し得る。利用可能なシステムユニット115の数が定足数に達するために要するシステムユニット115の数よりも少ない場合、合意欠損モジュール332は、分散されたデータセットについて合意の欠損が生じたと判定し得る。
次に、利用可能なシステムユニット115のリストが生成され(ブロック530)、生成されたリストを含む警報メッセージが管理デバイスへ送信され得る(ブロック540)。例えば、合意欠損モジュール332は、合意データベース358にアクセスし、当該分散されたデータセットに関連付けられるどのシステムユニット115が利用可能であるかを判定し得る。合意欠損モジュール332は、警報フィールド450にアクセスして、合意欠損警報の送信のためにどの通信方法を使用すべきかを判定し、及び合意欠損警報の送信先となるべき特定の宛て先デバイスを判定し得る。宛て先デバイスは、管理デバイス130であってもよく、及び/又は管理者の移動通信デバイスといった他のデバイスであってもよい。
一例として、警報フィールド450が宛て先デバイスへウェブサービスメッセージが送信されるべきであることを特定していれば、合意欠損モジュール332は、その宛て先デバイスへウェブサービスメッセージを送信し得る。他の例として、警報フィールド450が宛て先デバイスへ電子メールメッセージ、SMSメッセージ又はリアルタイムサービス品質メッセージが送信されるべきであることを特定していれば、合意欠損モジュール332は、その宛て先デバイスへ電子メールメッセージ、SMSメッセージ又はリアルタイムサービス品質メッセージを送信し得る。
次に、上記リストに含まれるシステムユニットのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示が受信され(ブロック550)、受信された指示に基づいて、合意ベースの分散システムが生成され得る(ブロック560)。例えば、システムユニット115は、上記宛て先デバイス(例えば、管理デバイス130)から、分散されたデータセットのための合意ベースの分散システムを生成せよという指示を受信し得る。受信される指示は、新たな分散システムに含まれるべきシステムユニット115のリストを含み得る。一例として、管理者は、合意欠損警報内でリスト化された全ての利用可能なデバイスを新たな分散システムに含めることを選択してもよい。他の例として、管理者は、新たな分散システムから利用可能なデバイスのうちのいくつかを除外することを選択してもよい。
いくつかの実装において、管理デバイス130は、新たな分散システムに含まれるべき1つの特定のシステムユニット115へ上記指示を送信してもよい。他の実装において、管理デバイス130は、新たな分散システムに含まれるべき複数の(又は場合によっては全ての)システムユニット115へ上記指示を送信してもよい。指示を受信したシステムユニット115は、合意欠損警報に関連付けられる分散されたデータセットに基づいて、新たな分散されたデータセットを生成し、そして、新たな分散システムに含まれるべき他のシステムユニット115を当該新たな分散されたデータセットに関連付け得る。
システムユニット115は、新たな分散システムを生成する際に、過半数を達成するために必要とされるデバイスの最小限の数に基づいて、定足数に達するために要するシステムユニット115の数を選択し得る。よって、例えば、6個のシステムユニット115が新たな分散システムのために管理者により選択された場合、4個のシステムユニット115という定足数が当該新たなシステムのために設定され得る。
いくつかの実装において、分散されたデータセットについて提案される動作のための定足数に向けて投票を行おうとしている場合に、異なるシステムユニット115に異なる投票重みが割り当てられてもよい。例えば、個別のシステムユニット115の位置/ロケーションに基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のロケーションは重要であると見なされ、よってその特定のロケーションに位置するシステムユニット115に他のシステムユニット115よりも高い投票重みが付与され得る。
また、システムユニット115のグループにおけるメンバシップに基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、分散されたデータセットは1つ以上の基準に基づいてシステムユニット115の複数のグループに関連付けられ、第1のグループ内のシステムユニット115に、第2のグループ内のシステムユニット115よりも高い投票重みが付与され得る。また、個別のシステムユニット115のデバイスタイプに基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、第1のシステムユニット115は追加的な機能性を伴う新たなバージョンに対応しており、他のシステムユニット115よりも高い投票重みを付与され得る。
また、個別のシステムユニット115に割り当てられた脅威レベルに基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット115はパブリックロケーションといった脅威の大きいエリアに位置しており、よって他のシステムユニット115よりも低い投票重みを付与され得る。また、個別のシステムユニット115に関連付けられる信頼性の指標に基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット115は(例えば、環境的な条件に起因して)高い障害率を有しており、よって他のシステムユニット115よりも低い投票重みを付与され得る。また、個別のシステムユニット115に関連付けられる1つ以上のログに記録されたイベントに基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット115に含まれる動きセンサのログに多数の又は頻繁な動き検出イベントが記録されており、よって当該特定のシステムユニット115に他のシステムユニット115よりも高い投票重みが付与され得る。
また、個別のシステムユニット115に関連付けられる周辺デバイスのアクティブ化の頻度に基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット11のロックデバイス250は他のシステムユニット115に関連付けられるロックデバイス250よりも高い頻度で稼働させられるような高いトラフィックを経験しており、よって当該特定のシステムユニット115に他のシステムユニット115よりも高い投票重みが付与され得る。また、個別のシステムユニット115に関連付けられる管理上のログインの頻度に基づいて、個別のシステムユニット115に他のシステムユニット115より高い投票重み又はより低い投票重みが付与されてもよい。例えば、特定のシステムユニット11は他のシステムユニット115よりも高い頻度で管理デバイス130により使用されており、よって他のシステムユニット115よりも高い投票重みを付与され得る。
いくつかの実装において、システムユニット115は、合意の欠損が検出された後、管理デバイス130から新たな分散されたデータセットを生成することを指示する応答が受信される前に、分散されたデータセットを使用し続ける必要があり得る。よって、いくつかの実装において、合意の欠損の検出に応じて、システムユニット115は、分散されたデータセットに基づいて、及び利用可能なシステムユニット115のリストに基づいて、緊急の分散されたデータセットを生成し得る。緊急分散データセットは、生成された合意欠損警報に管理者が応答するまで、システムユニット115により使用され得る。新たな分散システムを生成するための指示が管理デバイス130から受信された後、緊急分散データセット内のデータは、新たな分散データセットに取り込まれ得る。
いくつかの実装において、新たな分散されたデータセットが生成された後、以前に分散されたデータセットに関連付けられていて利用不能となった1つ以上のシステムユニット115が、再び利用可能となるかもしれない。例えば、障害を起こしたシステムユニット115が修復され、又は故障した接続が復旧するかもしれない。復旧したシステムユニット115は、分散されたデータセットへ再加入することをリクエストし得る。復旧したシステムユニット115が利用不能であった間、当該復旧したシステムユニット115は分散されたデータセットに関係するデータを蓄積していたかもしれない。復旧したシステムユニット115は、合意の欠損の後に生成された新たな分散システムに追加されることをリクエストし得る。新たな分散されたデータセットに関連付けられるシステムユニット115は、復旧したシステムユニット115から新たな分散されたデータセットへの追加を求めるリクエストを受信し、復旧したシステムユニット115を当該新たな分散されたデータセットへ追加し得る。システムユニット115は、続いて、復旧したシステムユニット115から新たな分散されたデータセットへのデバイスデータの追加を求めるリクエストを受信し、デバイスデータが新たな分散されたデータセットと整合するかを判定し、デバイスデータが新たな分散されたデータセットと整合する場合には、新たな分散されたデータセットへデバイスデータを追加し得る。
図6は、管理デバイス130の例示的なコンポーネントを示すブロック図である。図6に示したように、管理デバイス130は、バス610、プロセッサ620、メモリ630、入力デバイス640、出力デバイス650及び通信インタフェース660を含み得る。
バス610は、管理デバイス130のコンポーネント間の通信を許容するパスを含み得る。プロセッサ620は、命令を解釈し及び実行する、任意のタイプのシングルコアプロセッサ、マルチコアプロセッサ、マイクロプロセッサ、ラッチベースのプロセッサ並びに/又は処理ロジック(若しくはプロセッサ、マイクロプロセッサ、及び/若しくは処理ロジックの集合)を含み得る。他の実施形態において、プロセッサ620は、ASIC、FPGA及び/又は他のタイプの集積回路若しくは処理ロジックを含み得る。
メモリ630は、プロセッサ620による実行のための情報及び/若しくは命令を記憶し得る任意のタイプの動的記憶デバイス、並びに/又は、プロセッサ620による使用のための情報を記憶し得る任意のタイプの不揮発性記憶デバイスを含み得る。例えば、メモリ630は、RAM若しくは他のタイプの動的記憶デバイス、ROMデバイス若しくは他のタイプの静的記憶デバイス、CAM、磁気的及び/若しくは光学的記録メモリデバイス、及びその対応するドライブ(例えば、ハードディスクドライブ、光学的ドライブなど)、並びに/又は、フラッシュメモリといった着脱可能な形態のメモリ、を含み得る。
入力デバイス640は、オペレータが管理デバイス130へ情報を入力することを可能とし得る。入力デバイス640は、例えば、キーボード、マウス、ペン、マイクロフォン、リモートコントローラ、音声入力デバイス、画像及び/若しくは映像入力デバイス、タッチスクリーンディスプレイ、並びに/又は他のタイプの入力デバイスを含み得る。いくつかの実装において、管理デバイス130は、遠隔的に管理されてもよく、入力デバイス640を含まなくてもよい。言い換えれば、管理デバイス130は、“ヘッドレス(headless)”であってもよく、例えばキーボードを含まなくてもよい。
出力デバイス650は、管理デバイス130のオペレータへ情報を出力し得る。出力デバイス650は、ディスプレイ、プリンタ、スピーカ及び/又は他のタイプの出力デバイスを含み得る。例えば、管理デバイス130は、管理者へコンテンツを表示するためのLCD(liquid-crystal display)を含み得るディスプレイを有してもよい。ディスプレイは、タッチスクリーンに相当してもよい。いくつかの実装において、管理デバイス130は、遠隔的に管理されてもよく、出力デバイス650を含まなくてもよい。言い換えれば、管理デバイス130は、“ヘッドレス(headless)”であってもよく、例えばディスプレイを含まなくてもよい。
通信インタフェース660は、無線通信(例えば、RF、赤外線、及び/若しくは可視光線など)、有線通信(例えば、導電性ワイヤ、ツイストペアケーブル、同軸ケーブル、伝送線、光ファイバケーブル、及び/若しくは導波管など)、又は無線通信と有線通信との組合せを介して、管理デバイス130が他のデバイス及び/又はシステムと通信することを可能とする送受信器、を含み得る。通信インタフェース660は、ベースバンド信号をRF信号へ変換する送信器、及び/又はRF信号をベースバンド信号へ変換する受信器、を含み得る。通信インタフェース660は、RF信号を送受信するためのアンテナと連結されてもよい。
通信インタフェース660は、データの他のデバイスへの送信を遂行する入出力ポート、入出力システム及び/又は他の入出力コンポーネント、を含む論理的なコンポーネントを含み得る。例えば、通信インタフェース660は、有線通信用のネットワークインタフェースカード(例えば、イーサネット(登録商標)カード)、及び/又は無線通信用の無線ネットワークインタフェース(例えば、Wi−Fi)カードを含み得る。通信インタフェース660は、ケーブル上の通信用のUSBポート、Bluetooth(登録商標)無線インタフェース、RFIDインタフェース、NFC無線インタフェース、及び/又はデータをある形態から他の形態へ変換する任意の他のタイプのインタフェースをも含み得る。
以下に説明するように、管理デバイス130は、システムユニット115から受信される合意欠損警報の管理に関する何らかの動作を実行し得る。管理デバイス130は、メモリ630といったコンピュータ読取可能な媒体に含まれるソフトウェア命令を実行するプロセッサ620に応じて、それら動作を実行してもよい。メモリ630は、単一の物理的なメモリデバイスの範囲内で実装されてもよく、又は複数の物理的なメモリデバイスをまたいで拡散されてもよい。ソフトウェア命令は、他のコンピュータ読取可能な媒体から又は他のデバイスからメモリ630へ読み込まれてもよい。メモリ630内に含まれるソフトウェア命令は、プロセッサ620に、ここで説明される処理を実行させる。代替的に、ここで説明される処理を実装するために、ハードワイヤ回路がソフトウェア命令の代わりに又はソフトウェア命令との組合せにおいて用いられてもよい。よって、ここで説明される実装は、いかなる特定のハードウェア回路及びソフトウェアの組合せにも限定されない。
図6は管理デバイス130の例示的なコンポーネント群を示しているが、他の実装において、管理デバイス130は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図6に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、管理デバイス130の1つ以上のコンポーネントが、管理デバイス130の1つ以上の他のコンポーネントにより実行されるものとして説明された1つ以上のタスクを実行してもよい。
図7は、1つの実施形態における分散制御システムのシステムユニットから受信される合意欠損警報を処理するためのフローチャートである。いくつかの実装において、図7の処理は、管理デバイス130により実行され得る。他の実装において、図7の処理のいくつか又は全てが、管理デバイス130とは別個の及び/又は管理デバイス130を含む、他のデバイス又はデバイスの集合により実行されてもよい。
図7の処理は、分散制御システムのシステムユニットから1つ以上の合意欠損警報を受信すること(ブロック710)、を含み得る。管理デバイス130は、合意欠損警報アプリケーションを含み得る。合意欠損警報アプリケーションは、DCS110のシステムユニット115から合意関連の警報を受信するように構成され得る。システムユニット115により合意の欠損が検出されると、合意欠損警報アプリケーションは、1つ以上の合意欠損警報を受信し得る。いくつかの実装において、合意欠損警報は、受信の際に提供されるアラートのシーケンスとして提示されてもよい。追加的に又は代替的に、合意欠損警報は、管理者へ提示される前に構造化され又は集約されてもよい。
受信された警報は、当該警報に関連付けられる分散されたデータセットに基づいて構造化され(ブロック720)、構造化された警報に基づいてユーザインタフェースが生成され得る(ブロック730)。例えば、分散されたデータセットについて合意の欠損が検出されると、当該分散されたデータセットに関連付けられる機能中のシステムユニット115(例えば、全ての機能中のシステムユニット115)は、管理デバイス130へ合意欠損警報を送信し得る。個別の分散されたデータセットについての受信される合意欠損警報のいくつかは、利用可能なデバイスの同一のリストを含み得る。合意欠損警報アプリケーションは、受信した利用可能なデバイスのリストを、重複するリストが提示されるように構造化あるいは体系化し得る。管理デバイス130上でアラートが生成され、生成されたアラートを閲覧することを管理者が選択すると、ユーザインタフェースが生成され管理者へ提示される。
ユーザインタフェースは、追加的な警報が受信された場合には更新され得る(ブロック740)。追加的な合意欠損警報が受信されると、合意欠損警報アプリケーションは、生成済みのユーザインタフェースを更新して、管理デバイス130によりシステムユニット115から受信された当該追加的な合意欠損警報から取得される情報を含める。
図8は、システムユニット115の例示的な物理レイアウト800を示す平面図である。図8に示したように、物理レイアウト800は、壁810、ドア820、コントローラ210、リーダデバイス240、ロックデバイス250、センサ260及びアクチュエータ270を含み得る。
壁810は、建物内の部屋といったセキュアエリア830を囲む。ドア820は、セキュアエリア830へのユーザのためのアクセスを提供する。本実施形態において、コントローラ210は、セキュアエリア830の内部に取り付けられる。他の実施形態において、コントローラ210は、非セキュアエリア850又はセキュアエリア830の外部に取り付けられてもよい。リーダデバイス240は、セキュアエリア830の外部に取り付けられ、ロックデバイス250はセキュアエリア830の内部において壁810及びドア820に取り付けられる。センサ260は、この例では、セキュアエリア830の外部、即ちドア820の外の非セキュアエリアに搭載される監視デバイスである。アクチュエータ270は、この例では、監視デバイスの視界を制御するために使用されるモータを含む。
ユーザがリーダデバイス240へ(例えば、PINを入力し、アクセスカードをスキャンし、虹彩をスキャンする等により)認証情報を入力すると、コントローラ210は、その認証情報を用いてユーザのアイデンティティを認証し、アクセスルールテーブルをルックアップして、ユーザのアイデンティティとアクセスルールとに基づいて、ユーザにアクセスを許可すべきかを判定する。コントローラ210は、アクセスが許可されるべきであると判定すると、ロックデバイス250を起動してドア820をアンロック(開錠)し、そのようにしてユーザのセキュアエリア830へのアクセスを許可する。
図8は物理レイアウト800の例示的なコンポーネント群を示しているが、他の実装において、物理レイアウト800は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図8に描かれたものとは異なる配置のコンポーネントを含んでもよい。追加的に又は代替的に、物理レイアウト800内のいかなるコンポーネントも(又はいかなるコンポーネントの集合も)、物理レイアウト800の1つ以上の他のコンポーネントにより実行されるものとして説明された1つ又は複数のタスクを実行してよい。
図9は、DCS110の例示的な物理レイアウト900を示す平面図である。図9に示したように、物理レイアウト900は、部屋920−A〜920−Fを有する建物910を含み得る。イーサネット(登録商標)ネットワークといったローカルネットワーク930は、システムユニット115A〜115Fを相互接続し得る。この例において、システムユニット115−Aは部屋920−Aへの2つのドアを制御し、システムユニット115−Bは部屋920−Bへの外側のドアを制御し、システムユニット115−Cは部屋920−Bから部屋920−Cへの1つのドアを制御し、システムユニット115−Dは部屋920−Cから部屋920−Dへの1つのドアを制御し、システムユニット115−Eは部屋920−Dから部屋920−Eへの1つのドア及び部屋920−Eから部屋920−Fへの1つのドアを制御し、システムユニット115−Fは部屋920−Fへの外側のドアを制御する。
この例において、システムユニット115A〜115Fは、中央制御デバイス(例えば、サーバ)を含まず、1つ以上の分散されたデータセットを含み得る。例えば、システムユニット115A〜115Fは、分散される認証情報テーブル、分散されるアクセスルールテーブル、及び/又は分散されるイベントログを維持し得る。ここで、管理者が管理デバイス130を使用して、ユーザを追加するためにシステムユニット115−Aへログインし、ユーザに関連付けられる認証情報を追加することを想定する。それら追加された認証情報は、ユーザがアクセス権を有する部屋へのドアを制御する他のシステムユニット115へ配信され得る。例えば、システムユニット115−Bに障害が起きると、システムユニット115−Bにより収集されたデータは、他のシステムユニットに含まれる分散されたイベントログの結果として、利用可能であり続け得る。
図9は物理レイアウト900の例示的なコンポーネント群を示しているが、他の実装において、物理レイアウト900は、より少ない数のコンポーネント、異なるコンポーネント、追加的なコンポーネント、又は図9に描かれたものとは異なる配置のコンポーネントを含んでもよい。例えば、他の実施形態では、1つ以上の分散されるデータセットに関連して中央制御デバイス(例えば、サーバ)が使用されてもよい。追加的に又は代替的に、物理レイアウト900内の1つ以上のコンポーネントが、物理レイアウト900の1つ以上の他のコンポーネントにより実行されるものとして説明された1つ以上のタスクを実行してもよい。
図10A〜図10Cは、ここで説明される1つ以上の実装に係る例示的な合意欠損のシナリオの図である。図10Aは、図9の物理レイアウト900内の複数のシステムユニット115のあり得るネットワークトポロジー1000を例示している。図10Aに示したように、ローカルネットワーク930は、イーサネットスイッチ1010−A及びイーサネットスイッチ1010−Bを含み得る。イーサネットスイッチ1010−Aは、システムユニット115−A、115−B及び115−Cのコントローラに接続され得る。イーサネットスイッチ1010−Bは、システムユニット115−D、115−E及び115−Fのコントローラに接続され得る。イーサネットスイッチ1010−A及び1010−Bは、イーサネットケーブルで接続され得る。ここで、イーサネットケーブルが破損した結果としてリンク1020が故障したものと想定する。故障したリンク1020は、システムユニット115−A、115−B及び115−Cを、システムユニット115−D、115−E及び115−Fとの間で通信不能にし得る。
図10Bは、合意データベース358内に記憶される情報の一部に相当し得るテーブル1030を示している。図10Bに示したように、テーブル1030は、システムユニット115−A〜115−Fに関連付けられる分散されたデータセットに関する情報を含む。テーブル1030は、マスタデータベース分散データセット、建物カウンタ分散データセット及び部屋Cカウンタ分散データセットに関する情報を含み得る。マスタデータベース分散データセットは、システムユニット115−A〜115−Fに関連付けられ得る。マスタデータベースには、例えば、暗号化された認証情報、アクセスルール情報、システムユニット115の構成情報、及び/又は他のタイプの情報が格納され得る。1つの実施形態において、この例では、システムユニット115−A〜115−Fの全てがマスタデータベース分散データセットに関連付けられ得る。さらに、マスタデータベース分散データセットの変更に関する合意に達するために、4個のシステムユニットという定足数を要し得る。他の実施形態において、他の例では、システムユニット115−A〜115−Fの全てが必ずしもマスタデータベース分散データセットに関連付けられるとは限らない。
建物カウンタ分散データセットには、建物カウンタアプリケーションに関する情報が格納され得る。建物カウンタアプリケーションは、建物910に入館し及び退館する人々を追跡し、建物910の内部にその時点で何人の人がいるかに関する情報を維持し得る。建物910の入退館はシステムユニット115−B及び115−Fのみにより制御されるため、システムユニット115−B及び115−Fのみが建物カウンタ分散データセットに関連付けられる。さらに、建物カウンタ分散データセットの変更に関する合意に達するために、2個のシステムユニットという定足数を要し得る。
部屋Cカウンタ分散データセットには、部屋920−Cのためのカウンタアプリケーションに関する情報が格納され得る。例えば、部屋920−Cはカフェテリアに相当し、部屋Cカウンタアプリケーションは、カフェテリア内にその時点で何人の人がいるかを追跡し得る。部屋920−Cへのドアはシステムユニット115−A、115−C及び115−Dのみにより制御されるため、システムユニット115−A、115−C及び115−Dのみが部屋Cカウンタ分散データセットに関連付けられる。さらに、部屋Cカウンタ分散データセットの変更に関する合意に達するために、2個のシステムユニットという定足数を要し得る。
故障したリンク1020は、合意欠損警報の生成に帰結し得る。図10Cは、リンク1020の故障に応じたシステムユニット115−A〜115−Fのうちの特定の1つにより生成される合意欠損警報を含む信号フロー1040を示している。システムユニット115−Aは、もはやシステムユニット115−D、115−E及び115−Fには到達可能でない。従って、システムユニット115−Aは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Aは、マスタデータベース合意欠損警報1042を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1042は、利用可能なデバイスとして、システムユニット115−A、115−B及び115−Cを列挙し得る。さらに、システムユニット115−Aは、依然としてシステムユニット115−Cには到達可能であるため、部屋Cカウンタ分散データセットに関して2個という必要定足数に達することができ、よって部屋Cカウンタ分散データセットについては合意の欠損は検出されない。
システムユニット115−Bは、もはやシステムユニット115−D、115−E及び115−Fには到達可能でない。従って、システムユニット115−Bは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Bは、マスタデータベース合意欠損警報1044を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1044は、利用可能なデバイスとして、システムユニット115−A、115−B及び115−Cを列挙し得る。さらに、システムユニット115−Bは、建物カウンタ分散データセットに関して2個という必要定足数に達することができない。従って、システムユニット115−Bは、建物カウンタ合意欠損警報1046を生成して管理デバイス130へ送信し得る。建物カウンタ合意欠損警報1046は、利用可能なデバイスとして唯一、システムユニット115−Bを列挙し得る。
システムユニット115−Cは、もはやシステムユニット115−D、115−E及び115−Fには到達可能でない。従って、システムユニット115−Cは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Cは、マスタデータベース合意欠損警報1048を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1048は、利用可能なデバイスとして、システムユニット115−A、115−B及び115−Cを列挙し得る。さらに、システムユニット115−Cは、依然としてシステムユニット115−Aには到達可能であるため、部屋Cカウンタ分散データセットに関して2個という必要定足数に達することができ、よって部屋Cカウンタ分散データセットについては合意の欠損は検出されない。
システムユニット115−Dは、もはやシステムユニット115−A、115−B及び115−Cには到達可能でない。従って、システムユニット115−Dは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Dは、マスタデータベース合意欠損警報1050を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1050は、利用可能なデバイスとして、システムユニット115−D、115−E及び115−Fを列挙し得る。さらに、システムユニット115−Dは、部屋Cカウンタ分散データセットに関して2個という必要定足数に達することができない。従って、システムユニット115−Dは、部屋Cカウンタ合意欠損警報1052を生成して管理デバイス130へ送信し得る。部屋Cカウンタ合意欠損警報1052は、利用可能なデバイスとして唯一、システムユニット115−Dを列挙し得る。
システムユニット115−Eは、もはやシステムユニット115−A、115−B及び115−Cには到達可能でない。従って、システムユニット115−Eは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Eは、マスタデータベース合意欠損警報1054を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1054は、利用可能なデバイスとして、システムユニット115−D、115−E及び115−Fを列挙し得る。
システムユニット115−Fは、もはやシステムユニット115−A、115−B及び115−Cには到達可能でない。従って、システムユニット115−Fは、マスタデータベース分散データセットに関して4個という必要定足数に達することができない。従って、システムユニット115−Fは、マスタデータベース合意欠損警報1056を生成して管理デバイス130へ送信し得る。マスタデータベース合意欠損警報1056は、利用可能なデバイスとして、システムユニット115−D、115−E及び115−Fを列挙し得る。さらに、システムユニット115−Fは、建物カウンタ分散データセットに関して2個という必要定足数に達することができない。従って、システムユニット115−Fは、建物カウンタ合意欠損警報1058を生成して管理デバイス130へ送信し得る。建物カウンタ合意欠損警報1058は、利用可能なデバイスとして唯一、システムユニット115−Fを列挙し得る。
図11は、ここで説明される1つ以上の実装に係る例示的なユーザインタフェース1100の図である。図11に示したように、ユーザインタフェース1100は、図10Cに示した合意欠損警報の受信に応じて、管理デバイス130により生成され得る。ユーザインタフェース1100は、マスタデータベース分散データセットリスト1110、建物カウンタ分散データセットリスト1120及び部屋Cカウンタ分散データセットリスト1130を含み得る。
マスタデータベース分散データセットリスト1110は、2つのリストを含み得る。第1のリストは、マスタデータベース合意欠損警報1042、1044及び1048から取得される情報に基づいて生成され、第2のリストは、マスタデータベース合意欠損警報1050、1054及び1056から取得される情報に基づいて生成され得る。このケースでは、管理者は、マスタデータベース分散データセットのために2つのリストのうちの一方を新たな合意ベースのシステムとして選択し、マスタデータベース分散データセットの2つの異なるバーションが生じるというsplit-brain問題を回避するために、他方のリストを選択しない(あるいは却下する)。例えば、管理者は、システムユニット115−A、115−B及び115−Cを選択し、この場合、システムユニット115−D、115−E及び115−Fはマスタデータベースを変更することができなくなる。
建物カウンタ分散データセットリスト1120は、2つのリストを含み得る。第1のリストは、建物カウンタ合意欠損警報1046から取得される情報に基づいて生成され、第2のリストは、建物カウンタ合意欠損警報1058から取得される情報に基づいて生成され得る。このケースでは、管理者は、リストの双方を選択してよく、その結果split-brain問題が生じるかもしれない。しかしながら、管理者は、建物へ入館し及び建物から退館する人数の追跡を継続することを重要視してもよく、システムユニット115−Bからの建物カウンタデータセット及びシステムユニット115−Fからの建物カウンタデータセットを手動で照合し一致させること選択し得る。
部屋Cカウンタ分散データセットリスト1130は、部屋Cカウンタ合意欠損警報1052から取得された情報に基づいて生成されるリストを含み得る。管理者は、システムユニット115−A及びシステムユニット115−Cが依然として部屋Cカウンタ分散データセットに関して定足数を得ることができることをシステムの構成に基づいて認識し得るため、この警報を無視することを選択し得る。
ここまでの明細書において、好適な多様な実施形態を添付図面を参照しながら説明した。しかしながら、多様な修正及び変更をそこに加えることが可能であり、以下の特許請求の範囲に記載された発明の広範な範囲から逸脱することなく、追加的な実施形態が実装され得ることが明白である。従って、明細書及び図面は、限定的というよりも例示的な意味で扱われるべきである。
例えば、図5及び図7を基準として一連のブロックが説明されているが、ブロックの順序は、他の実装において修正されてもよい。さらに、依存関係の無いブロックは並列的に実行されてもよい。
上述したシステム及び/又は方法は、図面に示した実装に限らず、ソフトウェア、ファームウェア及びハードウェアの多くの様々な形式で実装され得ることが理解されるであろう。それらシステム及び方法を実装するために使用される実際のソフトウェアコード又は専用の制御ハードウェアは、実施形態を限定するものではない。よって、システム及び方法の動作及び振る舞いは特定のソフトウェアコードを参照することなく説明されているが、ここでの説明に基づけば、それらシステム及び方法を実装するようにソフトウェア及び制御ハードウェアを設計することができることが理解される。
さらに、上述したある要素は、1つ以上の機能を実行するコンポーネントとして実装され得る。ここでのコンポーネントとは、プロセッサ、ASIC若しくはFPGAといったハードウェア、又はハードウェア及びソフトウェアの組合せ(例えば、ソフトウェアを実行するプロセッサ)を含み得る。
強調すべきこととして、“comprises”及び“comprising”(含む/備える)との用語は、本明細書において使用される場合、記述された特徴、整数、ステップ又はコンポーネントの存在を特定するものとして扱われるが、1つ以上の他の特徴、整数、ステップ、コンポーネント又はそれらの集合の存在又は追加を除外しない。
本出願におけるいかなるエレメント、動作又は命令も、そのように明示的に説明されていない限り、実施形態にとって決定的又は必要不可欠であると解釈されるべきではない。また、ここでの冠詞“a”は1つ以上の項目を含むものと意図される。さらに、“based on”(基づいて)とのフレーズは、他の明示的な説明が無い限り、「少なくとも部分的に基づく」ことを意味するものと意図される。

Claims (23)

  1. 分散システム内のデバイスにより実行される方法であって、
    前記デバイスにより、前記分散システム内の他のデバイスが利用不能になったことを検出することと、
    前記デバイスにより、特定の分散されたデータセットについて、前記他のデバイスが利用不能になったことの検出に基づいて、前記分散システムにおいて合意の欠損が生じたと判定することと、
    前記デバイスにより、前記特定の分散されたデータセットに関連するいずれのデバイスが利用可能であるかを判定するために合意データベースにアクセスすることと、
    前記デバイスにより、前記合意データベースへのアクセスに基づき、および前記合意の欠損が生じたという判定に基づき、前記分散システム内の利用可能なデバイスのリストを生成することと、
    前記デバイスにより、管理デバイスへ警報メッセージを送信することと、
    前記警報メッセージは、前記合意の欠損を示し、前記利用可能なデバイスのリストを含むことと、
    を含む方法。
  2. 前記管理デバイスから、前記リストに含まれる前記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信することと、
    前記指示の受信に応じて、前記合意ベースの分散システムを生成することと、
    をさらに含む、請求項1の方法。
  3. 前記合意ベースの分散システムを生成することは、定足数をなすために要するデバイスの数を選択すること、を含み、
    前記数は、前記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当する、
    請求項2の方法。
  4. 前記方法は、前記利用可能なデバイスのうちの前記少なくともいくつかのデバイスに投票重みを割り当てること、をさらに含み、
    前記投票重みは、生成される合意ベースの分散システムにおいて前記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、前記利用可能なデバイスの前記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与する、
    請求項3の方法。
  5. 前記投票重みは、
    前記デバイスの位置、
    前記利用可能なデバイスの特定のサブセットにおけるデバイスのメンバーシップ、
    前記デバイスに関連付けられるデバイスタイプ、
    前記デバイスに割当てられる脅威レベル、又は
    前記デバイスに関連付けられる信頼性の指標、
    のうちの少なくとも1つに基づく、請求項4の方法。
  6. 前記投票重みは、
    前記デバイスに関連付けられるログに記録された1つ以上のイベント、
    前記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、
    前記デバイスに関連付けられる管理上のログインの頻度、
    のうちの少なくとも1つに基づく、請求項4の方法。
  7. 前記分散システム内の他のデバイスが利用不能になったことを検出することは、
    前記他のデバイスへの接続が喪失したことを検出すること、
    前記他のデバイスからデバイス障害の標識を受信すること、又は
    前記他のデバイスがセキュリティ侵害に関連付けられていることを検出すること、
    のうちの少なくとも1つを含む、請求項1の方法。
  8. 前記管理デバイスへ前記警報メッセージを送信することは、
    前記管理デバイスへウェブサービスメッセージを送信すること、
    前記管理デバイスへ電子メールメッセージを送信すること、
    前記管理デバイスへSMS(Short Message Service)メッセージを送信すること、又は、
    前記管理デバイスへリアルタイムサービス品質メッセージを送信すること、
    のうちの少なくとも1つを含む、請求項1の方法。
  9. 前記分散システム内の利用可能なデバイスの前記リストを維持することと、特定の間隔で利用可能なデバイスの前記リストを更新することと、をさらに含む、請求項1の方法。
  10. 前記分散システムは、分散されたデータセットを含み、前記方法は、
    前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記リストに含まれる前記利用可能なデバイスの少なくともいずれかを含む新たな合意ベースの分散システムを生成するための指示を前記管理デバイスから受信する前に、前記分散されたデータセットに基づく他の分散されたデータセットを生成することと、
    生成された前記他の分散されたデータセットを利用し、前記リストに含まれる前記利用可能なデバイスの少なくともいずれかを含む他の合意ベースの分散システムを生成することと、
    をさらに含む、請求項1の方法。
  11. 前記リストに含まれる前記利用可能なデバイスの少なくともいずれかを含む新たな合意ベースの分散システムを生成するための前記指示を受信することと、
    前記新たな合意ベースの分散システムを生成するための前記指示の受信に応じて、前記新たな合意ベースの分散システムに前記他の分散されたデータセット内のデータを取り込むこと、
    をさらに含む、請求項10の方法。
  12. 前記デバイスは、組込み型システム(embedded system)に相当する、請求項1の方法。
  13. 前記分散システムは、分散された物理アクセス制御システムを含み、前記デバイス及び前記他のデバイスは、物理アクセス制御ユニットに相当する、請求項12の方法。
  14. 分散システムのデバイスであって、
    前記分散システム内の他のデバイスが利用不能になったことを検出し、
    前記他のデバイスが利用不能になったことの検出に基づいて、特定の分散されたデータセットについて、前記分散システムにおいて合意の欠損が生じたと判定し、
    前記特定の分散されたデータセットに関連するいずれのデバイスが利用可能であるかを判定するために合意データベースにアクセスし、
    前記合意データベースへのアクセスに基づき、および前記合意の欠損が生じたという判定に基づき、前記分散システム内の利用可能なデバイスのリストを生成する、
    ように構成されるロジックと、
    管理デバイスへ、前記合意の欠損を示し及び前記利用可能なデバイスのリストを含む警報メッセージを送信する送信機と、
    前記合意データベースを記憶するメモリと、
    を備えるデバイス。
  15. 前記ロジックは、
    前記管理デバイスから、前記リストに含まれる前記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信する受信機を備え、
    前記ロジックは、前記指示の受信に応じて、前記合意ベースの分散システムを生成するように構成される、請求項14のデバイス。
  16. 前記ロジックは、前記合意ベースの分散システムを生成する際に、定足数をなすために要するデバイスの数を選択する、ようにさらに構成され、
    前記数は、前記利用可能なデバイスのうちの過半数を達成するために必要とされる最小限の数に相当する、
    請求項15のデバイス。
  17. 前記ロジックは、合意ベースの分散システムを生成する際に、前記利用可能なデバイスのうちの前記少なくともいくつかのデバイスに投票重みを割り当てる、ようにさらに構成され、
    前記投票重みは、生成される前記合意ベースの分散システムにおいて前記デバイスが定足数に向けて投票を行おうとしている場合に、当該デバイスから受信される票に、前記利用可能なデバイスの前記少なくともいくつかのうちの他のデバイスから受信される票よりも大きい重みを付与する、
    請求項16のデバイス。
  18. 前記投票重みは、
    前記デバイスのロケーション、
    前記利用可能なデバイスの特定のサブセットにおけるデバイスのメンバーシップ、
    前記デバイスに関連付けられるデバイスタイプ、
    前記デバイスに割り当てられる脅威レベル、
    前記デバイスに関連付けられる信頼性の指標、
    前記デバイスに関連付けられるログに記録された1つ以上のイベント、
    前記デバイスに関連付けられる周辺デバイスのアクティブ化の頻度、又は、
    前記デバイスに関連付けられる管理上のログインの頻度、
    のうちの少なくとも1つに基づく、請求項17の方法。
  19. 前記ロジックは、前記分散システム内の他のデバイスが利用不能になったことを検出する際、
    前記他のデバイスへの接続が喪失したことを検出し、
    前記他のデバイスからデバイス障害の標識を受信し、又は
    前記他のデバイスがセキュリティ侵害に関連付けられていることを検出する、
    ようにさらに構成される、請求項14の方法。
  20. 前記ロジックは、前記管理デバイスへ前記警報メッセージを送信する際、
    前記管理デバイスへウェブサービスメッセージを送信し、
    前記管理デバイスへ電子メールメッセージを送信し、
    前記管理デバイスへSMSメッセージを送信し、又は、
    前記管理デバイスへリアルタイムサービス品質メッセージを送信する、
    ようにさらに構成される、請求項14の方法。
  21. 前記分散システムは、分散されたデータセットを含み、前記ロジックは、
    前記分散システムにおいて合意の欠損が生じたとの判定に応じて、前記リストに含まれる前記利用可能なデバイスの少なくともいずれかを含む新たな合意ベースの分散システムを生成するための指示を前記管理デバイスから受信する前に、前記分散されたデータセットに基づく他の分散されたデータセットを生成し、
    前記リストに含まれる前記利用可能なデバイスの少なくともいずれかを含む新たな合意ベースの分散システムを生成するための前記指示を受信し、
    前記新たな合意ベースの分散システムを生成するための前記指示の受信に応じて、前記新たな合意ベースの分散システムに前記他の分散されたデータセット内のデータを取り込む、ようにさらに構成される、請求項14のデバイス。
  22. 前記分散システムは、分散された物理アクセス制御システムを含み、前記デバイス及び前記他のデバイスは、物理アクセス制御ユニットに相当する、請求項14のデバイス。
  23. 分散システムであって、
    複数の物理アクセス制御デバイスを含み、
    前記複数の物理アクセス制御デバイスのうちの特定の1つは、
    前記分散システム内の他のデバイスが利用不能になったことを検出し、
    前記他のデバイスが利用不能になったことの検出に基づいて、特定の分散されたデータセットについて、前記分散システムにおいて合意の欠損が生じたと判定し、
    前記特定の分散されたデータセットに関連するいずれのデバイスが利用可能であるかを判定するために合意データベースにアクセスし、
    前記合意データベースへのアクセスに基づき、および前記合意の欠損が生じたという判定に基づき、前記分散システム内の利用可能なデバイスのリストを生成する、
    ように構成されるプロセッサと、
    管理デバイスへ、前記合意の欠損を示し及び前記利用可能なデバイスのリストを含む警報メッセージを送信する送信機と、
    前記管理デバイスから、前記リストに含まれる前記利用可能なデバイスのうちの少なくともいくつかを含む合意ベースの分散システムを生成するための指示を受信する受信機と、
    を備え、
    前記プロセッサは、前記合意ベースの分散システムを前記指示の受信に応じて生成するように構成される、分散システム。

JP2014175467A 2013-09-16 2014-08-29 分散制御システムにおける合意の欠損 Active JP6254499B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/028,243 US9686161B2 (en) 2013-09-16 2013-09-16 Consensus loss in distributed control systems
US14/028,243 2013-09-16

Publications (3)

Publication Number Publication Date
JP2015057692A JP2015057692A (ja) 2015-03-26
JP2015057692A5 JP2015057692A5 (ja) 2017-03-23
JP6254499B2 true JP6254499B2 (ja) 2017-12-27

Family

ID=49263126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014175467A Active JP6254499B2 (ja) 2013-09-16 2014-08-29 分散制御システムにおける合意の欠損

Country Status (6)

Country Link
US (1) US9686161B2 (ja)
EP (1) EP2849067B1 (ja)
JP (1) JP6254499B2 (ja)
KR (1) KR101809994B1 (ja)
CN (1) CN104468690B (ja)
TW (1) TWI598852B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049011B2 (en) * 2016-05-03 2018-08-14 International Business Machines Corporation Continuing operation of a quorum based system after failures
US10295982B2 (en) 2016-06-09 2019-05-21 Honeywell International Inc. Detecting and tracking changes in engineering configuration data
CN110445619B (zh) 2017-03-30 2020-10-16 腾讯科技(深圳)有限公司 区块链系统、消息处理方法及存储介质
CN108230506A (zh) * 2018-01-03 2018-06-29 西安科技大学 一种分布式的安全管理系统
JP7317488B2 (ja) * 2018-04-17 2023-07-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、情報処理装置、管理システム、及び、プログラム
CN112883119B (zh) * 2021-04-30 2022-05-17 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机设备及计算机可读存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243744B1 (en) * 1998-05-26 2001-06-05 Compaq Computer Corporation Computer network cluster generation indicator
EP1107119A3 (en) 1999-12-02 2005-07-20 Sun Microsystems, Inc. Extending cluster membership and quorum determinations to intelligent storage systems
US7325046B1 (en) * 2000-05-31 2008-01-29 International Business Machines Corporation Method, system and program products for managing processing groups of a distributed computing environment
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
AU2003219835A1 (en) * 2002-02-22 2003-09-09 Mission Critical Linux, Inc. Clustering infrastructure system and method
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
JP2005025289A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd 複数計算機間で共有する外部記憶装置におけるデータ保護プログラムおよびデータ保護方法
US7856502B2 (en) * 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
US7950044B2 (en) * 2004-09-28 2011-05-24 Rockwell Automation Technologies, Inc. Centrally managed proxy-based security for legacy automation systems
US7739677B1 (en) * 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
KR101268432B1 (ko) * 2006-01-09 2013-05-28 삼성전자주식회사 스마트 커뮤니케이터를 이용한 지능형 출입 인증 시스템 및방법
US20070208688A1 (en) * 2006-02-08 2007-09-06 Jagadish Bandhole Telephony based publishing, search, alerts & notifications, collaboration, and commerce methods
US8234704B2 (en) * 2006-08-14 2012-07-31 Quantum Security, Inc. Physical access control and security monitoring system utilizing a normalized data format
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network
US8554865B2 (en) 2007-09-21 2013-10-08 Honeywell International Inc. System and method for remotely administering and synchronizing a clustered group of access control panels
JP4796086B2 (ja) * 2008-03-14 2011-10-19 株式会社東芝 クラスタシステム及び同システムにおいてマスタノードを選択する方法
US8230253B2 (en) * 2008-07-21 2012-07-24 International Business Machines Corporation Byzantine fault tolerant dynamic quorum using a trusted platform module
US9690818B2 (en) * 2009-12-01 2017-06-27 Sybase, Inc. On demand locking of retained resources in a distributed shared disk cluster environment
US8417899B2 (en) * 2010-01-21 2013-04-09 Oracle America, Inc. System and method for controlling access to shared storage device
JP5035390B2 (ja) * 2010-06-02 2012-09-26 富士通株式会社 システム管理情報表示プログラム、システム管理情報表示装置、システム管理情報表示方法および運用管理システム
US8135987B2 (en) * 2010-06-03 2012-03-13 Microsoft Corporation Collection ordering for replicated state machines
US9063787B2 (en) * 2011-01-28 2015-06-23 Oracle International Corporation System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US8595546B2 (en) * 2011-10-28 2013-11-26 Zettaset, Inc. Split brain resistant failover in high availability clusters
GB2496840A (en) * 2011-11-15 2013-05-29 Ibm Controlling access to a shared storage system
US20140095925A1 (en) * 2012-10-01 2014-04-03 Jason Wilson Client for controlling automatic failover from a primary to a standby server
US8621062B1 (en) * 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers

Also Published As

Publication number Publication date
US20150081805A1 (en) 2015-03-19
TW201528217A (zh) 2015-07-16
KR101809994B1 (ko) 2017-12-18
CN104468690A (zh) 2015-03-25
US9686161B2 (en) 2017-06-20
CN104468690B (zh) 2019-05-28
TWI598852B (zh) 2017-09-11
EP2849067B1 (en) 2019-06-12
KR20150032200A (ko) 2015-03-25
EP2849067A1 (en) 2015-03-18
JP2015057692A (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
JP6254499B2 (ja) 分散制御システムにおける合意の欠損
JP6307393B2 (ja) アクセス制御システムにおける分散されたイベント
JP6247618B2 (ja) アクセス制御システムにおける匿名の決定
JP6400990B2 (ja) 分散制御システムにおけるアプリケーションデータの管理
US10097572B1 (en) Security for network computing environment based on power consumption of network devices
JP6147234B2 (ja) 分散データベースの結合
US20160349821A1 (en) Event-based power provisioning system
US20200064792A1 (en) Event Engine for Building Management System Using Distributed Devices and Blockchain Ledger

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: 20170215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170215

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

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: 20171121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171130

R150 Certificate of patent or registration of utility model

Ref document number: 6254499

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