KR20150032200A - 분산 제어 시스템의 컨센서스 로스 - Google Patents

분산 제어 시스템의 컨센서스 로스 Download PDF

Info

Publication number
KR20150032200A
KR20150032200A KR20140122303A KR20140122303A KR20150032200A KR 20150032200 A KR20150032200 A KR 20150032200A KR 20140122303 A KR20140122303 A KR 20140122303A KR 20140122303 A KR20140122303 A KR 20140122303A KR 20150032200 A KR20150032200 A KR 20150032200A
Authority
KR
South Korea
Prior art keywords
consensus
distributed
distributed system
data set
loss
Prior art date
Application number
KR20140122303A
Other languages
English (en)
Other versions
KR101809994B1 (ko
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 KR20150032200A publication Critical patent/KR20150032200A/ko
Application granted granted Critical
Publication of KR101809994B1 publication Critical patent/KR101809994B1/ko

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)

Abstract

분산 신체 출입 제어 시스템 내의 신체 출입 제어기에 대응하는 장치가 제공된다. 본 발명의 일 실시예에 따른 분산 시스템 내의 상기 장치에 의해서 수행되는 방법은, 상기 분산 시스템 내의 또 다른 장치가 이용 불가능하게 된 것을 탐지하는 단계, 상기 다른 장치가 이용 불가능하게된 것을 탐지한 것을 바탕으로 상기 분산 시스템 내에 컨센서스 로스가 발생한 것으로 결정하는 단계, 상기 분산 시스템 내의 이용 가능한 장치 목록을 생성하는 단계, 및 관리 장치에 상기 경보 메시지를 전송하는 단계를 포함하되, 상기 경보 메시지는 상기 컨센서스 로스의 발생을 가리키고 상기 이용 가능한 장치 목록을 포함한다.

Description

분산 제어 시스템의 컨센서스 로스{CONSENSUS LOSS IN DISTRIBUTED CONTROL SYSTEMS}
본원 발명은 출입 제어 시스템에 일반적으로 관련되어 있고, 보다 자세하게는, 분산 출입 제어 시스템의 컨센서스 로스(consensus loss)에 관련되어 있다.
분산 시스템은 통신하는 구성 요소를 포함할 수 있고, 그들의 동작이 임무의 집합을 성취하도록 조율할 수 있다. 예를 들어서, 분산 시스템에 있는 컴퓨터는 알고리즘을 해결하기 위한 조율을 위해서 네트워크를 통하여 통신할 수 있다. 성공적으로 독립적인 컴퓨터들에 대한 동시 조작을 조율하기 위해서, 데이터 및 자원 관리 또는 처리 과정의 동기화와 같은, 분산 알고리즘이 구현될 필요가 있다. 다양한 분산 알고리즘이 분산 시스템의 구성 요소를 조율하기 위해 개발되고 있다.
본 발명이 해결하고자 하는 기술적 과제는 분산 제어 시스템 내에서 발생한 컨센서스 로스를 처리하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 분산 제어 시스템 내에서 발생한 컨센서스 로스를 처리할 수 있는 분산 제어 시스템을 구성하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
일 측면에 따르면, 분산 시스템에 있는 장치에 의해서 수행되는 방법은, 상기 장치에 의해, 상기 분산 시스템에 있는 또 다른 장치가 이용 불가능하게 된 것을 탐지하는 것, 상기 장치에 의해 상기 다른 장치가 이용 불가능하게 된 것을 탐지한 것을 바탕으로 상기 분산 시스템에서 컨센서스 로스(consensus loss)가 발생한 것으로 결정하는 것, 상기 장치에 의해서, 상기 분산 시스템에 있는 이용 가능한 장치 목록을 생성하는 것 및 상기 장치에 의해 관리 장치에 경보 메시지를 전송하는 것을 포함할 수 있다. 이 때, 상기 경보 메시지는 상기 컨센서스 로스를 가리키며 상기 경보 메시지는 상기 이용 가능한 장치 목록을 포함한다.
추가적으로, 상기 방법은, 상기 관리 장치로부터, 상기 목록에 포함된 상기 이용 가능한 장치 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하는 인스트럭션을 수신하는 것; 및 상기 인스트럭션 수신에 대한 응답으로 상기 컨센서스 기반 분산 시스템을 생성하는 것을 포함할 수 있다.
추가적으로, 상기 컨센서스 기반 분산 시스템을 생성하는 것은 정족수를 생성하기 위하여 요구되는 장치들의 개수를 선택하는 것을 포함할 수 있다. 이 때, 상기 개수는 상기 이용 가능한 장치들 중에서 과반수를 획득하기 위해 필요한 장치들의 최소한의 개수와 일치한다.
추가적으로, 상기 방법은 상기 이용 가능한 장치들 중에서 상기 적어도 일부의 장치에 투표 가중치를 할당하는 것을 포함하되, 상기 투표 가중치는 상기 생성된 상기 컨센서스 기반 분산 시스템에서 정족수를 위해 상기 장치가 투표할 때 상기 이용 가능한 장치 중에서 상기 적어도 일부의 또 다른 장치로부터 수신된 표보다 상기 장치로부터 수신한 표에 더 많은 가중치를 할당하는 것이다.
추가적으로, 상기 투표 가중치는 상기 장치의 위치, 다수의 물리적 출입 제어 장치의 특정 부분집합에 속한 상기 장치의 멤버쉽(membership), 상기 장치에 연관된 장치 타입, 상기 장치에 할당된 위협 정도 또는 상기 장치에 연관된 신뢰성 측정 중에서 적어도 하나에 기반할 수 있다.
추기적으로, 상기 투표 가중치는 상기 장치에 연관된 하나 이상의 기록된 이벤트, 상기 장치에 연관된 주변 장치의 활성화의 빈도 또는 상기 장치에 연관된 관리 상의 로그인의 빈도 중에서 적어도 하나에 기반할 수 있다.
추가적으로, 상기 분산 시스템에 속한 또 다른 장치가 이용 불가능하게 되는 것을 탐지하는 것은 상기 장치에 대한 접속이 끊기는 것; 상기 다른 장치로부터 장치 고장의 신호를 수신하는 것, 또는 상기 다른 장치가 보안 위반에 연관된 것을 탐지하는 것 중에서 적어도 하나를 포함할 수 있다.
추가적으로, 상기 관리 장치에 경보 메시지를 전송하는 것은 웹 서비스(web service) 메시지를 상기 관리 장치에 전송하는 것, 이메일(email) 메시지를 상기 관리 장치에 전송하는 것, 단문 메시지 서비스(SMS; short message service)를 상기 관리 장치에 전송하는 것 또는 서비스 메시지의 실시간 QoS(Quality of Service)를 상기 관리 장치에 전송하는 것 중에서 적어도 하나를 포함할 수 있다.
추가적으로, 상기 방법은 상기 분산 시스템에서 이용 가능한 장치들의 상기 목록을 유지하는 것 및 특정 간격으로 이용 가능한 장치들의 상기 목록을 갱신하는 것을 포함할 수 있다.
추가적으로, 상기 분산 시스템은 분산 데이터세트를 포함할 수 있고, 상기 방법은 컨센서스 로스가 상기 분산 시스템 내에서 발생하였다는 것을 결정한 것에 응답하여 비상 분산 데이터세트를 생성하는 것을 더 포함할 수 있다. 이 때, 상기 비상 분산 데이터세트는 상기 분산 데이터세트에 기반하며, 상기 방법은 상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여 상기 목록에 포함된 상기 이용 가능한 장치들을 포함하는 비상 컨센서스 기반 분산 시스템을 생성하는 것을 더 포함할 수 있다. 이 때, 상기 비상 컨센서스 기반 분산 시스템은 상기 비상 분산 데이터세트를 사용한다.
추가적으로, 상기 방법은, 상기 관리 장치로부터, 상기 목록에 포함된 상기 이용 가능한 장치들을 포함하는 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 수신하는 것; 및 상기 컨센서스 기반 분산 시스템을 생성하기 위한 상기 인스트럭션을 수신하는 것에 응답하여 상기 비상 분산 데이터세트의 데이터를 상기 분산 데이터세트에 통합하는 것을 더 포함할 수 있다.
추가적으로, 상기 장치는 임베디드 시스템(embedded system)에 대응될 수 있다.
추가적으로, 상기 분산 시스템은 분산 신체 출입 제어 시스템을 포함할 수 있고, 상기 장치 및 상기 다른 장치는 신체 출입 제어 유닛에 대응될 수 있다.
또 다른 측면에 따르면, 분산 시스템의 장치는 상기 분산 시스템 내의 또 다른 장치가 이용 불가능하게 된 것을 탐지하고, 상기 다른 장치가 이용 불가능하게 된 것을 탐지한 것을 바탕으로 상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정하며, 상기 분산 시스템 내의 이용 가능한 장치 목록을 생성하고, 관리 장치에 경보 메시지를 전송하도록 설정된 로직을 포함할 수 있다. 이 때, 상기 경보 메시지는 상기 컨센서스 로스를 가리키고 상기 경보 메시지는 상기 이용 가능한 장치 목록을 포함한다.
추가적으로, 상기 로직은, 상기 관리 장치로부터, 상기 목록에 포함된 상기 이용 가능한 장치들 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 수신하고, 상기 인스트럭션을 수신한 것에 응답하여 상기 컨센서스 기반 분산 시스템을 생성할 수 있다.
추가적으로, 상기 로직이 상기 컨센서스 기반 분산 시스템을 생성할 때, 상기 로직은 정족수를 생성하는데 요구되는 장치의 개수를 선택하도록 더 설정될 수 있다. 이 때, 상기 개수는 과반수를 획득하는데 필요한 상기 이용 가능한 장치들의 최소한의 개수에 대응될 수 있다.
추가적으로, 상기 로직이 상기 컨센서스 기반 분산 시스템을 생성할 때, 상기 로직은 상기 이용 가능한 장치 중에서 상기 적어도 일부의 장치에 투표 가중치를 할당하도록 더 설정될 수 있다. 이 때, 상기 투표 가중치는 상기 생성된 상기 컨센서스 기반 분산 시스템에서 정족수를 위해 상기 장치가 투표할 때 상기 이용 가능한 장치 중에서 상기 적어도 일부의 또 다른 장치로부터 수신된 표보다 상기 장치로부터 수신한 표에 더 많은 가중치를 할당하는 것이다.
추가적으로, 상기 투표 가중치는 상기 장치의 위치, 다수의 물리적 출입 제어 장치의 특정 부분집합에 속한 상기 장치의 멤버쉽, 상기 장치에 연관된 장치 타입, 상기 장치에 할당된 위협 정도, 상기 장치에 연관된 신뢰성 측정, 상기 장치에 연관된 하나 이상의 기록된 이벤트, 상기 장치에 연관된 주변 장치의 활성화 빈도, 또는 상기 장치에 연관된 관리 상의 로그인의 빈도 중에서 적어도 하나에 기반할 수 있다.
추가적으로, 상기 로직은 상기 분산 시스템 내의 또 다른 장치가 이용 불가능하게 된 것을 탐지할 때, 상기 로직은 상기 다른 장치에 대한 접속이 끊기는 것; 상기 다른 장치로부터 장치 고장의 신호를 수신하는 것, 또는 상기 다른 장치가 보안 위반에 연관된 것을 탐지하도록 설정될 수 있다.
추가적으로, 상기 관리 장치에 상기 경보 메시지를 전송할 때, 상기 로직은 웹 서비스(web service) 메시지를 상기 관리 장치에 전송하거나, 이메일(email) 메시지를 상기 관리 장치에 전송하거나, 단문 메시지 서비스(SMS; short message service)를 상기 관리 장치에 전송하거나 또는 서비스 메시지의 실시간 QoS(Quality of Service)를 상기 관리 장치에 전송하도록 설정될 수 있다.
추가적으로, 상기 분산 시스템이 분산 데이터세트를 포함할 수 있고, 상기 로직은 컨센서스 로스가 상기 분산 시스템 내에서 발생하였다는 것을 결정한 것에 응답하여 비상 분산 데이터세트를 생성하도록 더 설정될 수 있다. 이 때, 상기 비상 분산 데이터세트는 상기 분산 데이터세트에 기반하며, 상기 로직은 상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여 상기 목록에 포함된 상기 이용 가능한 장치들을 포함하는 비상 컨센서스 기반 분산 시스템을 생성하도록 더 설정될 수 있다. 이 때, 상기 비상 컨센서스 기반 분산 시스템은 상기 비상 분산 데이터세트를 사용하고, 상기 로직은 상기 관리 장치로부터 상기 목록에 포함된 상기 이용 가능한 장치를 포함하는 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 수신하도록 더 설정될 수 있고, 상기 로직은 상기 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 수신한 것에 응답하여 상기 비상 분산 데이터세트의 데이터를 상기 분산 데이터세트에 통합하도록 더 설정될 수 있다.
추가적으로, 상기 분산시스템은 분산 신체 출입 제어 시스템을 포함할 수 있고, 상기 장치 및 상기 다른 장치는 신체 출입 제어 유닛과 일치한다.
또 다른 측면에 따르면, 분산 시스템은 다수의 신체 출입 제어 장치를 포함하되, 상기 다수의 신체 출입 제어 장치 중에서 특정한 하나는, 상기 분산 시스템 내의 또 다른 장치가 이용 불가능하게 된 것을 탐지하고, 상기 다른 장치가 이용 불가능하게 된 것을 탐지한 것을 기반으로 상기 분산 시스템 내에서 일체의 손실이 발생한 것을 결정하며, 상기 분산 시스템 내의 이용 가능한 장치 목록을 생성하고, 상기 이용 가능한 장치 목록을 포함하고 상기 컨센서스 로스를 가리키는 경보 메시지를 관리 장치에 전송하며, 상기 목록에 포함된 상기 이용 가능한 장치 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 상기 관리 장치로부터 수신하며, 상기 인스트럭션을 수신한 것에 응답하여 상기 컨센서스 기반 분산 시스템을 생성하도록 설정될 수 있다.
도 1은, 본 발명의 일 실시예에 따른 예시적인 환경을 도시한 블록도이다.
도 2는, 도 1에 도시된 시스템 유닛의 예시적인 구성 요소를 도시한 블록도이다.
도 3a 및 도 3b는, 도 1에 도시된 상기 시스템 유닛의 예시적인 기능적 구성 요소를 도시한 블록도이다.
도 4는, 도 3b의 컨센서스 데이터베이스 내에 저장될 수 있는 예시적인 정보에 관한 도면이다.
도 5는, 본 발명의 일 실시예에 따른 분산 제어 시스템 내의 컨센서스 로스를 처리하는 순서도이다.
도 6은, 도 1에 도시된 상기 관리 장치의 예시적인 구성 요소를 도시한 도면이다.
도 7은, 본 발명의 일 실시예에 따른 분산 제어 시스템의 시스템 유닛으로부터 수신된 컨센서스 로스 경보를 처리하는 순서도이다.
도 8은, 도 1에 도시된 상기 시스템 유닛의 예시적인 물리적 배치를 도시한 평면도이다.
도 9는, 도 1에 도시된 상기 시스템의 예시적인 물리적 배치를 도시한 평면도이다.
도 10a 내지 도 10c는, 본 발명에서 기술된 하나 이상의 실시예에 따른 예시적인 컨센서스 로스 시나리오에 대한 도면이다.
도 11은, 본 발명에서 기술된 하나 이상의 실시예에 따른 예시적인 사용자 인터페이스에 대한 도면이다.
이하에서 첨부된 도면을 참조하여 자세하게 기술한다. 다른 도면에서 같은 참조 번호는 동일하거나 유사한 요소를 나타낸다.
본 발명에서 기술된 구현은 분산 제어 시스템에서 컨센서스 로스에 관한 것이다. 일 실시예에 따르면, 분산 제어 시스템은 분산 신체 출입 제어 시스템을 포함할 수 있다. 신체 출입 제어 시스템은, 시설 영역에 대한 신체 출입을 제어하는, 하나 이상의 제어 또는 시스템 유닛을 포함할 수 있다. 예를 들어서, 제어 또는 시스템 유닛은 사용자로부터 인증 정보를 획득할 수 있고 만일 상기 사용자의 인증 정보가 검증되면 문의 자물쇠를 해제할 수 있다. 다른 구현에서, 분산 제어 시스템은 분산 건물 관리 시스템, 분산 감시 시스템, 분산 보안 시스템 및/또는 분산 제어 시스템의 또 다른 타입을 포함할 수 있다.
분산 제어 시스템은 분산 알고리즘을 사용하는 분산 컴퓨팅 운영을 수행할 수 있다. 예를 들어서, 분산 제어 시스템은 분산 데이터베이스를 관리할 수 있다. 상기 분산 알고리즘은 컨센서스 알고리즘을 포함할 수 있다. 상기 컨센서스 알고리즘은 어떤 동작이 수행되기 전에 분산 시스템 내의 상기 노드(node)에 의해서 컨센서스에 도달하는 것을 요구한다. 예를 들어서, 상기 컨센서스 알고리즘을 채용한 분산 데이터베이스를 갱신하기 위하여, 상기 분산 시스템 내의 상기 노드는 상기 갱신을 수행하기 위한 컨센서스에 도달한다. 컨센서스에 도달하면, 그 이후에 상기 노드(예를 들면, 모든 노드들)는 제안된 동작(예를 들면, 상기 분산 데이터베이스에 대한 변경)에 동의할 수 있다. 상기 제안된 동작에 대한 정족수가 충족되면 상기 컨센서스가 이루어질 수 있다. 상기 노들의 과반수가 상기 제안된 동작에 투표하면 상기 정족수가 충족될 수 있다. 이 실시예에 따르면, 과반수의 노드가 변경에 투표하도록 요구하는 것은, 만일 두 개의 상충되는 제안된 변경이 고려될 때, 적어도 하나의 노드는 상기 제안된 두 개의 변경안을 수신하고 상기 제안된 변경 중 하나에 대하여 투표하는 것을 선택하는 것을 보장할 수 있다.
분산 시스템 내의 컨센서스 로스는 정족수가 충족되지 않는 경우 발생할 수 있다. 예를 들어서, 특정 개수의 노드가 고장 나거나 연결할 수 없는 경우, 제안된 동작에 대한 정족수는 충족될 수 없고 상기 분산 시스템은 운영을 계속하는 가능하지 않을 수 있다. 상기 컨센서스 로스는 삼기 시스템 내의 상기 노드의 개수를 변경하거나 예비 노드를 상기 시스템으로 가져옴으로써 자동적으로 처리될 수 있다. 그러나, 분산 제어 시스템에서, 이러한 해결책은 바람직하지 않을 수 있다. 예를 들어서, 상기 시스템에서 상기 노드의 개수를 변경하거나 예비 노드를 가져오는 것은 상기 시스템의 상기 기능성을 바꿀 수 있다. 또 다른 예시로써, 예비 노드가 이용 가능하지 않을 수 있다. 또 다른 예시로써, 상기 분산 제어 시스템 내의 노드들의 두 개의 부분 집합 사이에 통신이 가로막히고 각 부분 집합 내의 상기 이용 가능한 노드를 사용하여 새로운 컨센서스 기반 시스템이 자동적으로 생성된다면, 스플릿 브레인 문제가 발생할 수 있다. 상기 스플릿 브레인(split brain) 문제에서, 상기 두 부분 집합 각각은 그들만의 분산 시스템을 형성하고, 분산 데이터세트의 두 가지 버전(version)이 유지되는 결과를 초래한다.
본원에서 기술된 구현들은, 분산 시스템 내의 또 다른 장치가 이용 불가능하게 된 것을 탐지하고 상기 다른 장치가 이용 불가능하게 된 것을 탐지한 것을 기반으로 상기 분산 시스템 내에 컨센서스 로스가 발생한 것을 결정하도록 설정된 상기 분산 시스템 내의 장치를 포함할 수 있다. 상기 장치는 상기 분산 시스템 내의 이용 가능한 장치 목록을 생성하고 관리 장치에 경보 메시지를 전송하도록 설정될 수 있다. 상기 경보 메시지는 컨센서스 로스가 발생한 것을 가리킬 수 있고 상기 이용 가능한 장치 목록을 포함할 수 있다. 관리자는 상기 생성된 이용 가능한 장치 목록을 기반으로 새로운 분산 시스템을 생성할 지 여부를 결정할 수 있다. 상기 이용 가능한 장치를 사용하는 새로운 분산 시스템의 생성은 몇몇 상황에서는 바람직할 수 있지만 다른 상황에서는 바람직하지 않을 수 있다. 상기 장치는, 상기 관리 장치로부터, 상기 목록에 포함된 상기 이용 가능한 장치 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하는 인스트럭션을 수신하고 상기 인스트럭션을 수신한 것에 응답하여 상기 컨센서스 기반 분산 시스템을 생성하도록 설정될 수 있다. 이용 가능한 장치 목록을 생성하는 것과 상기 이용 가능한 장치를 이용하는 새로운 컨센서스 기반 시스템을 형성하기 위한 관리자의 승인을 요구하는 것은 컨센서스 기반 분산 시스템에서 스플릿 브레인 문제를 방지할 수 있다.
도 1은 이하에서 기술된 상기 시스템 및/또는 방법이 구현될 수 있는 예시적인 환경(100)의 블록도이다. 도 1에 도시된 것과 같이, 환경(100)은 제어 시스템(110) (예를 들면, 분산 신체 출입 제어 시스템), 네트워크(120) 및 관리 장치(130)을 포함할 수 있다.
분산 제어 시스템(DCS; Distributed Control System, 110)은 시스템 유닛(115a 내지 115n)(집합적으로는 “시스템 유닛들(115)”로 개별적으로는 “시스템 유닛(115)”로 참조됨)을 포함하는 분산 컴퓨팅 시스템을 포함할 수 있다. 시스템 유닛(115)는 임베디드 시스템(embedded system)으로 구현될 수 있다. 몇몇 구현에서, 시스템 유닛(115)는 신체 출입 제어 장치를 포함할 수 있다. 예를 들어서, 시스템 유닛(115)은 룸(room)이나 룸들의 그룹 같은 보안 영역에 대한 출입을 제어하는 출입 제어기를 포함할 수 있다. 시스템 유닛(115)는 판독 장치를 통해서 인증 정보(예를 들면, 출입 카드 인증 정보)를 수신할 수 있고, 상기 인증 정보가 진정한지 여부 및 상기 보안 영역을 출입할 수 있는 권한에 관련되었는지 여부를 결정할 수 있다. 만일 그렇다면, 상기 출입 제어기는 문에 있는 자물쇠를 열기 위한 커맨드를 발생시키거나 상기 보안 영역에 대한 출입의 승인에 관련된 다른 동작을 수행할 수 있다. 다른 구현에서, 시스템 유닛(115)는, 감시 장치, 기계의 동작을 제어하는 장치, 기타 등등과 같은, 보안 장치의 다른 타입을 포함할 수 있다.
DCS(110)은 하나 이상의 분산 데이터세트를 포함할 수 있다. 분산 데이터세트는 복수의 장치들에 연관된 데이터세트를 포함할 수 있고, 일 실시예에 따르면, 상기 복수의 장치는 상기 데이터세트에 변경을 가하기 위하여 서로 통신하고 조율할 수 있다. 일 실시예에 따르면, 상기 분산 데이터세트의 로컬 복사본은 상기 분산 데이터세트에 연관된 각 장치에 의해서 유지되며, 만일 변경이 상기 장치들에 의해서 동의를 얻으면 상기 변경은 상기 분산 데이터세트의 로컬 복사본에 복제된다. 또 다른 실시예에서, 예를 들어서, 모든 상기 장치들이 상기 분산 데이터세트의 로컬 복사본을 저장하는 것은 아니다.
몇몇 실시예에 따르면, 상기 분산 데이터세트(예를 들면, 컨센서스 기반 분산 데이터베이스)에 변경을 가하기 위하여 컨센서스가 이루어진다. 다른 실시예에 따르면, 컨센서스 없이 상기 분산 데이터세트에 변경이 발생할 수 있다. 분산 데이터세트는 모든 시스템 유닛들(115)에 연관되거나 시스템 유닛들(115)의 부분 집합에 연관될 수 있다. 시스템 유닛(115)은 컨센서스 기반 분산 데이터세트에 변경을 제안할 수 있다. 만일 상기 변경이 상기 분산 데이터세트에 연관된 시스템 유닛들(115)의 정족수에 의해서 받아들여진다면, 컨센서스가 이루어질 수 있고 상기 변경은 각 연관된 시스템 유닛(115) 내부의 상기 분산 데이터세트의 각 로컬 복사본에 전파될 수 있다. 따라서, 상기 분산 데이터세트 내의 변경에 관한 컨센서스는 상기 관련된 시스템 유닛들(115)의 정족수가 상기 변경에 대하여 투표를 한다면 이루어질 수 있다. 정족수는 상기 관련된 시스템 유닛들(115)의 가장 적은 과반수에 대응될 수 있다. 따라서, 분산 데이터세트가 N개의 시스템 유닛들(115)에 연관되어 있다면, N이 짝수인 경우 상기 변경에 대하여 N/2+1 개의 관련된 시스템 유닛들(115)이 투표하거나, N이 홀수인 경우 상기 변경에 대하여 (N-1)/2+1개의 관련된 시스템 유닛들(115)이 투표한다면, 정족수는 충족될 수 있다. 정족수를 충족시키기 위하여 가장 적은 과반수를 요구하는 것은 두 개의 상충되는 제안된 변경이 고려될 때, 적어도 하나의 시스템 유닛(115)은 상기 두 개의 제안을 수신하고 컨센서스를 위하여 상기 제안된 변경 중 하나를 선택하는 것을 보장할 수 있다.
컨센서스 기반 분산 데이터세트는 상기 분산 데이터세트에 연관된 어떠한 시스템 유닛(115)이 상기 분산 데이터세트에 의해서 관리되는 상기 정보(예를 들면, 일 실시예에 따른 모든 상기 정보)를 포함하는 것을 보장할 수 있다. 예를 들어서, 분산 데이터세트는 출입 규정을 포함할 수 있고, 상기 출입 규정은 상기 분산 데이터세트에 연관된 어떠한 시스템 유닛(115)에 이용 가능할 수 있다. 따라서, 상기 하나 이상의 분산 데이터세트의 결과로써, 일 실시예에 따르면, DCS(110)는 서버 장치와 같은 중앙 제어 장치를 가지지 않은 분산 시스템에 대응될 수 있다. 다른 실시예에 따르면, DCS(110)은 분산 시스템 및 (서버 장치와 같은) 중앙 제어 장치 모두를 포함할 수 있다. DCS(110)에 대한 변경은 어떠한 시스템 유닛(115)에서 설정될 수 있고, 상기 변경이 분산 데이터세트에 연관되어 있다면, 상기 변경은 상기 분산 데이터세터에 연관된 다른 시스템 유닛들(115)에 전파될 수 있다. 더 나아가서, DCS(110)는, 고장난 단일 지점이 회피될 수 있는 것처럼, 장치 고장에 관하여 견고함을 보여줄 수 있다. 예를 들어서, 특정 시스템 유닛(115)가 고장나면, 상기 다른 시스템 유닛들(115)가 데이터의 손실 없이 (또는 데이터 손실을 최소화하여) 동작을 계속할 수 있다. 게다가, DCS(110)는 동적으로 변경될 수 있다. 예를 들어서, 어떠한 시점에 응용 프로그램이 추가될 수 있고 필요할 때 새로운 데이터세트가 시스템 유닛들(115)에 저장될 수 있다.
DCS(110)는 분산되지 않은 데이터세트도 포함할 수 있다. 예를 들어서, 첫 번째 시스템 유닛(115)은 어떠한 다른 시스템 유닛(115)에 포함되지 않은 로컬 데이터세트를 포함할 수 있다. 또 다른 예를 들면, 첫 번째 시스템 유닛(115)은, 미러링되는(mirrored) 것과 같이, 비분산 방식으로 두 번째 시스템 유닛(115)에 복제된 로컬 데이터세트를 포함할 수 있다. 또 다를 예를 들면, 첫 번째 시스템 유닛(115)는 로컬 데이터세트의 첫 번째 버전(version)을 포함할 수 있고 두 번째 시스템 유닛(115)는 상기 로컬 데이터세트의 두 번째 버전을 포함할 수 있되, 상기 첫 번째 시스템 유닛(115)는 상기 로컬 데이터세트의 상기 첫 번째 버전을 유지하고 상기 두 번째 시스템 유닛(115)은 상기 로컬 데이터세트의 두 번째 버전을 유지한다. 또 다른 예를 들면, 첫 번째 시스템 유닛(115)는 분산 데이터세트로부터 첫 번째 로컬 데이터세트를 추출할 수 있고 두 번째 시스템 유닛(115)는 상기 분산 데이터세트로부터 두 번째 로컬 데이터세트를 추출할 수 있되, 상기 첫 번째 로컬 데이터세트는 상기 두 번째 로컬 데이터세트와 서로 다르다.
네트워크(120)는 시스템 유닛들(115)이 서로 통신할 수 있게 하고/하거나 관리 장치(130)가 특정 시스템 유닛들(115)와 통신하게 할 수 있다. 네트워크(120)는 하나 이상의 회로 교환 네트워크(circuit-switched network) 및/또는 패킷 교환 네트워크(packet-switched network)를 포함할 수 있다. 예를 들어서, 네트워크(120)는 근거리 망(LAN; Local Area Network), 원거리 망(WAN; Wide Area Network), 대도시 통신망(MAN; metropolitan area network), 공중 교환 전화망(PSTN; Public Switched Telephone Network), 애드혹 망(ad hoc network), 내부 전산망(intranet), 인터넷(internet), 광 섬유망(fiber optic-based network), 무선망(wireless network) 및/또는 이것들 또는 다른 네트워크 타입의 조합을 포함할 수 있다.
관리 장치(130)는 관리자가 DCS(110)를 설정, DCS(110)의 설정을 변경, DCS(110)로부터 정보를 수신, 및/또는 다른 방식으로 DCS(110)를 관리하기 위하여 특정 시스템 유닛(115)에 접속하게 할 수 있다. 관리 장치(130)는 시스템 유닛(115)와 통신을 위하여 설정된 모든 장치를 포함할 수 있다. 예를 들어서, 관리 장치(130)는 이동식 통신 장치(예를 들어, 모바일 폰, 스마트 폰, 패블릿(phablet device), GPS(global positioning system) 장치 및/또는 무선 장치의 또 다른 타입); 개인용 컴퓨터 또는 워크스테이션(workstation); 서버 장치; 랩탑(laptop), 태블릿(tablet) 또는 이동식 컴퓨터의 또 다른 타입; 및/또는 통신 능력을 갖춘 모든 타입의 장치를 포함할 수 있다.
도 1은 환경(100)의 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 환경(100)은 도 1에 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 다르게 배열된 구성 요소 또는 추가적인 구성 요소를 포함할 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 어떠한 하나의 장치 (또는 장치들의 어떠한 그룹)은 환경(100) 내의 하나 이상의 다른 장치에 의해서 수행되는 것으로 기술된 기능을 수행할 수 있다. 예를 들어서, 몇몇 구현에서, 시스템 유닛들(115)는 입력 및/또는 출력 장치(예를 들어, 키보드, 키패드, 디스플레이, 터치스크린, 기타 등등)를 포함할 수 있고 관리 장치(130)는 필요하지 않을 수 있다.
도 2는 시스템 유닛(115)의 예시적인 구성 요소를 도시한 블록도이다. 도 2에 도시된 것과 같이, 시스템 유닛(115)는 제어기(210) 및 하나 이상의 주변 장치(230)를 포함할 수 있다. 제어기(210)은 시스템 유닛(115)의 동작을 제어할 수 있고/있거나, 다른 시스템 유닛(115)와 통신할 수 있고/있거나, 관리 장치(130)과 통신할 수 있고/있거나, 주변 장치(230)을 제어할 수 있다. 제어기(210)은 버스(212), 프로세서(214), 메모리(216), 네트워크 인터페이스(218), 주변 인터페이스(220) 및 하우징(housing, 222)를 포함할 수 있다.
버스(212)는 제어기(210)의 상기 구성 요소들 사이에 통신하는 경로를 포함할 수 있다. 프로세서(620)는 싱글 코어 프로세서(single-core processor), 멀티 코어 프로세서(multi-core processor), 마이크로프로세서(microprocessor), 래치 기반 프로세서(latch-based processor) 및/또는 인스트럭션을 해석하고 수행하는 처리 로직(logic) (또는 프로세서들, 마이크로프로세서들 및/또는 처리 로직들의 일족)을 포함할 수 있다. 다른 실시예에 따르면, 프로세서(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), 자기적 및/또는 광학적 기록 메모리 장치 및 그것에 상응하는 드라이브(예를 들어, 하드 디스크 드라이브, 광학 드라이브, 기타 등등), 및/또는 플래시 메모리(flash memory) 같은 이동할 수 있는 형태의 메모리를 포함할 수 있다
네트워크 인터페이스(218)는 제어기(210)가 다른 장치 및/또는 시스템과 유선 통신 링크(예를 들어, 도전성 와이어, 꼬임 쌍선 케이블, 동축 케이블, 전송선, 광섬유 케이블 및/또는 도파관(waveguide), 기타 등등), 무선 통신 링크(예를 들어, 방사주파수(RF; radio frequency), 적외선 및/또는 시광학(visual optic), 기타 등등) 또는 유선 및 무선 통신 링크의 조합을 통해서 통신(예를 들어, 데이터를 전송 하고/하거나 수신)하게 할 수 있게 하는 송수신기(예를 들어, 전송기 및/또는 수신기)를 포함할 수 있다. 네트워크 인터페이스(218)는 기저 대역(baseband) 신호를 RF 신호로 변환하는 송신기 및/또는 RF 신호를 기저 대역 신호로 변환하는 수신기를 포함할 수 있다. 네트워크 인터페이스(218)는 RF 신호를 송신하고 수신하기 위한 안테나와 결합될 수 있다.
네트워크 인터페이스(218)는 입력 및/또는 출력 포트(port), 입력 및/또는 출력 시스템, 및/또는 다른 장치에 데이터를 전송하는 것을 돕는 다른 입력 및 출력 구성 요소를 포함하는 논리적 구성 요소를 포함할 수 있다. 예를 들어, 네트워크 인터페이스(218)은 유선 통신을 위하여 네트워크 인터페이스 카드(예를 들어, 이더넷(Ethernet) 카드) 및/또는 무선 통신을 위하여 무선 네트워크 인터페이스(예를 들어, WiFi) 카드를 포함할 수 있다. 네트워크 인터페이스(218)는 또한, 케이블 상에서 통신을 위한 유니버설 시리얼 버스(USB; universal serial bus), 블루투스(Bluetooth) 무선 인터페이스, 방사주파수 식별(RFID; radio-frequency identification) 인터페이스, 근거리 통신(NFC; near-field communication) 무선 인터페이스, 및/또는 한 형식에서 다른 형식으로 데이터를 변환할 수 있는 인터페이스의 모든 다른 타입을 포함할 수 있다.
주변 인터페이스(220)는 하나 이상의 주변 장치(230)와 통신하도록 설정될 수 있다. 예를 들어, 주변 인터페이스(220)는 입력 및/또는 출력 포트, 입력 및/또는 출력 시스템, 및/또는 주변 장치(430)에 데이터를 전송하는 것을 돕는 다른 입력 및 출력 구성 요소를 포함하는 하나 이상의 논리적 구성 요소를 포함할 수 있다. 예시로써, 주변 인터페이스(220)는 비건드 프로토콜(Wiegand protocol), RS-485 프로토콜 및/또는 프로토콜의 또 다른 타입과 같은 시리얼 주변 인터페이스 버스 프로토콜(Serial Peripheral Interface Bus protocol)을 사용하여 주변 장치와 통신할 수 있다. 또 다른 예시로써, 주변 인터페이스(220)는 프로토콜의 다른 타입을 이용할 수 있다. 일 실시예에 따르면, 네트워크 인터페이스(218)은 제어기(210)에 주변 장치(230)을 결합하기 위한 주변 장치 인터페이스로써 동작할 수도 있다.
하우징(housing, 222)은 제어기(210)의 구성 요소를 둘러쌀 수 있고 환경으로부터 제어기(210)의 구성 요소를 보호할 수 있다. 일 실시예에 따르면, 하우징(222)은 하나 이상의 주변 장치(230)을 포함할 수 있다. 또 다른 실시예에 따르면, 하우징(222)은 관리 장치(130)을 포함할 수 있다. 하우징(222)은 복수의 시스템 유닛(115) 제어기 시스템에서 다른 시스템 유닛들(115) 및/또는 제어기들(210)으로부터 하나의 시스템 유닛(115) 및/또는 제어기(210)의 경계를 결정할 수 있다.
이하에서 설명된 것처럼, 제어기(210)는 분산 시스템 내에서 컨센서스 로스를 관리하는 것에 관련된 특정 동작을 수행할 수 있다. 제어기(210)는 ASIC 의 하드웨어 전기 회로의 결과로써 이러한 동작을 수행할 수 있다. 제어기(210)는 메모리(216)와 같은 컴퓨터가 읽을 수 있는 매체에 포함된 소프트웨어 인스트럭션을 수행하는 프로세서(214)에 대한 응답으로 이러한 동작을 또한(또는 대안적으로) 수행할 수 있다. 컴퓨터가 읽을 수 있는 매체는 비일시적 메모리 장치로 정의될 수 있다. 메모리 장치는 하나의 물리적 메모리 장치 내에서 구현되거나 또는 복수의 물리적 메모리 장치에 퍼져 있을 수 있다. 상기 소프트웨어 인스트럭션은 또 다른 컴퓨터가 읽을 수 있는 매체 또는 또 다른 장치로부터 메모리(216)로 읽어 들여 질 수 있다. 메모리(216)에 포함된 상기 소프트웨어 인스트럭션은 프로세서(214)가 여기서 설명된 처리를 수행하게 할 수 있다. 따라서, 여기서 설명된 구현은 하드웨어 회로 및 소프트웨어의 어떠한 특정 조합에 한정되지는 않는다.
주변 장치(230)는 제어기(210)에 정보를 제공하고/하거나, 제어기(210)에 의해서 제어되고/되거나, 제어기(210)와 다른 방식으로 통신하는 하나 이상의 장치를 포함할 수 있다. 예를 들어서, 주변 장치(230)은 판독 장치(240), 잠금 장치(250), 센서(260) 및/또는 구동기(270)을 포함할 수 있다. 도 2에는 하나의 판독 장치(240), 하나의 잠금 장치(250), 하나의 센서(260) 및 하나의 구동기(270)이 예시적인 목적으로 도시되어 있지만, 실제적인 경우, 주변 장치(230)는 복수의 판독 장치(240), 복수의 잠금 장치(250), 복수의 센서(260) 및/또는 복수의 구동기(270)을 포함할 수 있다. 몇몇 실시예에서, 주변 장치(230)은 도 2에 도시된 상기 장치들 중에서 하나 이상을 포함하지 않을 수 있다. 추가적으로 또는 대안적으로, 주변 장치(230)은 도 2에 도시되지 않은 모든 다른 종류의 안전 장치를 포함할 수 있다.
판독 장치(240)는 사용자로부터 인증 정보를 판독하고 제어기(210)에 상기 인증 정보를 제공하는 장치를 포함할 수 있다. 예를 들어서, 판독 장치(240)는 사용자로부터 개인 식별 번호(PIN; personal identification number)를 수신하도록 설정된 키패드, 자기대(magnetic strip) 또는 RFID 태그와 같은 저장 장치의 또 다른 타입에 카드 코드를 저장하는 카드를 설정하는 카드 판독기; 사용자의 지문을 판독하도록 설정된 지문 판독기, 사용자의 홍채를 판독하도록 설정된 홍채 판독기, 마이크로폰과 사용자의 목소리 서명을 기록하도록 설정된 목소리 서명 식별기; 근거리 통신 NFC 판독기 및/또는 또 다른 타입의 판독 장치를 포함할 수 있다. 판독 장치(240)는 인증 정보를 제공할 수 있는 모든 타입의 보안 장치도 포함할 수 있고, 센서(260)에 관련하여 이하에서 설명된 어떠한 센서 장치와 같은 하나 이상의 센서 장치를 포함할 수 있다. 예를 들어서, 판독 장치(240)는 안면 인식을 위해 사용되는 카메라 및/또는 목소리 인식을 위해 사용되는 마이크로폰을 포함할 수 있다.
잠금 장치(250)는 제어기(210)에 의해서 제어되는 자물쇠를 포함할 수 있다. 잠금 장치(250)는 출입문, 창문, HVAC 환풍구 및/또는 보안 영역에 개방된 접근의 또 다른 타입을 잠글 수 있다(예를 들면, 열리거나 닫히는 것을 방지할 수 있다). 예를 들면, 잠금 장치(250)는 전자기 자물쇠; 제어기(210)에 의해서 제어되는 모터를 구비한 기계적 자물쇠; 전가기계적 자물쇠; 및/또는 또 다른 타입의 자물쇠를 포함할 수 있다. 더 나아가서, 잠금 장치(250)는 기계, 운송 차량, 엘리베이터 및/또는 전기 장치의 동작을 잠그거나 해제할 수 있다.
센서(260)는 센서 장치를 포함할 수 있다. 예를 들어서, 센서(260)는 출입문이 열렸는지 닫혔는지 여부를 감지하기 위한 출입문 센서; 가시 광선 감시 카메라, 적외선 감시 카메라, 열 신호 감시 카메라 및/또는 또 다른 타입의 감시 장치; 동작 센서, 열 센서, 압력 센서 같은 경보 센서 및/또는 또 다른 타입의 경보 센서; 오디오(audio) 레코딩 장치(예를 들면, 마이크로폰); 시스템 유닛(115) 내부에 위치한 위치 센서(position sensor)와 같은 탬퍼 센서(tamper sensor); 및/또는 시스템 유닛(115)에 연관된 보안 영역 내부에 위치한 “나가기 요청” 버튼; 및/또는 또 다른 타입의 센서 장치를 포함할 수 있다.
구동기(270)는 구동 장치를 포함할 수 있다. 예를 들어서, 구동기(270)는 조명 장치를 제어할 수 있다. 다른 예를 들어서, 구동기(270)는 도난 경화 활성기; 경보 신호를 생성하거나 메시지를 재생하는 스피커; 디스플레이(display) 장치; 센서(260)을 움직이는(예를 들면, 카메라 또는 다른 감시 장치의 시야를 제어하는) 모터; 출입문, 창문, HVAC 환풍구 및/또는 보안 영역에 연관된 또 다른 입구를 위한 모터; 잠금 장치(250)가 잠금 또는 해제 위치에 위치하도록 보장하는 모터; 소화 장치; 및/또는 또 다른 타입의 구동 장치를 포함할 수 있다.
도 2는 시스템 유닛(115)의 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 시스템 유닛(115)은 도 2에 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 추가적인 구성 요소 또는 다르게 배열된 구성 요소를 포함할 수 있다. 추가적으로 또는 대안적으로, 시스템 유닛(115)의 모든 구성 요소(또는 구성 요소들의 어떠한 그룹)는 시스템 유닛(115)의 하나 이상의 다른 구성 요소에 의해서 수행되는 것으로 기술된 임무 또는 임무들을 수행할 수 있다. 예를 들어서, 몇몇 구현에서, 주변 인터페이스(220)는 네트워크 인터페이스와 일치할 수 있다. 또 다른 예를 들어서, 몇몇 구현에서, 주변 장치(230)는, 주변 인터페이스(220)을 통하기 보다는, 네트워크 인터페이스(218)을 통해서 제어기(210)에 연결될 수 있다.
더 나아가, DCS(110)가 신체 출입 분산 제어 시스템을 포함할 수 있지만, 다른 구현은 신체 출입 시스템이 아닌 다른 제어 시스템을 포함할 수 있다. 반면에, DCS(110)는, 건물이나 시설에 대한 신체 출입을 제어하거나 출입문을 열거나 닫기 위한 제어 시스템 같은, (예를 들면, 동작 환경에서) 모든 타입의 신체 출입 제어 시스템을 포함할 수 있다. DCS(110)는 팬을 제어(예를 들면, 개시 또는 정지)하거나, 건물 관리 시스템 내의 경보기를 초기화(예를 들면, 인증 실패, 인증 성공, 기타 등등)하거나, 공장 자동화 시스템 내의 로봇 팔을 제어하기 위한 시스템을 포함할 수 있다.
도 3a 및 3b는 시스템 유닛(115)의 예시적인 기능적 구성 요소를 도시한 블록도이다. 시스템 유닛(115)의 상기 기능적 구성 요소는, 예를 들어서, 하나 이상의 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)은 웹 서비스(web service) 관리자, 리눅스(Linux) 관리자, 오픈 네트워크 비디오 인터페이스 포럼(ONVIF; Open Network Video Interface Forum) 관리자를 처리하기 위한 API 및/또는 또 다른 타입의 API를 포함할 수 있다.
응용 계층(320)은 시스템 유닛(115)에 설치된 하나 이상의 응용 프로그램을 포함한다. 도 3b는 예시적인 응용 프로그램을 도시하고 있다. 도 3b에 도시된 것과 같이, 응용 계층(320)은 출입 제어 로직 응용 프로그램(322), 출입문 제어 응용 프로그램(324?), 판독 제어 응용 프로그램(326), 이벤트 처리 응용 프로그램(328), 스케줄 처리 응용 프로그램(330) 및/또는 컨센서스 로스 모듈(332)를 포함할 수 있다.
출입 제어 로직 응용 프로그램(322)은 수신된 인증 정보 및 저장된 출입 규정을 바탕으로 출입을 승인할지 여부를 결정할 수 있다. 출입문 제어 응용프로그램(324)는 하나 이상의 출입문 및/또는 연관된 잠금 장치(250)을 제어할 수 있다. 예를 들어서, 출입문 제어 응용 프로그램(324)는 출입문이 개폐 여부 및/또는 잠금 또는 잠금 해제 여부를 판단할 수 있고 상기 출입문을 개폐 시키고/시키거나 상기 출입문을 잠금 또는 잠금 해제 하기 위하여 하나 이상의 장치를 작동시킬 수 있다. 판독 제어 응용 프로그램(326)은 하나 이상의 판독 장치(240)을 제어할 수 있고 하나 이상의 판독 장치(240)으로부터 수신된 인증 정보를 처리할 수 있다. 이벤트 처리 응용 프로그램(328)은 시스템 유닛(115)에 의해서 생성 되거나 기록된 이벤트 로그 및/또는 또 다른 시스템 유닛(115)에 의해서 기록된 이벤트 로그를 유지 관리할 수 있다. 이벤트 처리 응용 프로그램(328)은 모든(또는 적어도 몇몇의) 시스템 유닛들(115) 내에 분산된 시스템 이벤트 로그를 유지 관리하기 위하여 지역적으로 기록되거나 생성된 이벤트가 DCS(110) 내의 다른 시스템 유닛(115)에 분산되는 것을 보장할 수 있다. 따라서, 로그로 남은 이벤트는 상기 시스템 이벤트 로그와 연관된 모든 시스템 유닛(115)으로부터 검색될 수 있다. 스케줄 처리 응용 프로그램(330)은 시스템 유닛(115)에 연관된 하나 이상의 스케줄을 관리할 수 있다. 예를 들어서, 특정 사용자 그룹에 대한 출입 규정은 하루 중의 특정 시간에 따라 바뀔 수 있다.
컨센서스 로스 모듈(332)는 분산 데이터세트에 관한 컨센서스 로스를 탐지할 수 있다. 예를 들어서, 컨센서스 로스 모듈(332)는 어느 시스템 유닛들(115)이 이용 가능한지 결정할 수 있고, 특정 분산 데이터세트에 연관된, 이용 가능한 시스템 유닛들(115)의 개수가 상기 분산 데이터세트에 제안된 동작에 관하여 정족수를 충족하기에 충분한지 여부를 결정할 수 있다. 상기 이용 가능한 시스템 유닛들(115)의 개수가 정족수를 충족하기에 요구되는 숫자보다 작으면, 컨세서스 로스 모듈(332)은 상기 특정 분산 데이터세트에 관한 컨센서스 로스를 탐지할 수 있다. 컨센서스 로스 모듈(332)은, 상기 특정 분산 데이터세트에 연관된, 이용 가능한 시스템 유닛들(115)의 목록을 생성할 수 있고 상기 생성된 목록을 포함하는 컨센서스 로스 경보를 생성하며, 상기 생성된 컨센서스 로스 경보를 지정된 장치에 전송할 수 있다. 상기 지정된 장치는 관리 장치(130) 및/또는, 관리자의 이동 통신 장치(예를 들면, 모바일 폰)와 같은 또 다른 장치와 일치할 수 있다. 상기 관리자가 상기 분산 데이터세트에 대한 시스템 유닛들(115)의 새로운 집합을 생성하는 것을 선택하면, 상기 관리자는 상기 시스템 유닛들(115)의 새로운 집합을 생성하는 인스트럭션을 시스템 유닛(115)에 전송할 수 있다. 컨센서스 로스 모듈(332)는 상기 분산 데이터세트에 연관된 시스템 유닛들(115)의 상기 새로운 집합을 생성할 수 있다.
다른 (도 3b에 도시되지 않은) 응용 프로그램은 응용 계층(320)에 포함될 수 있다. 예를 들면, 경보 응용 프로그램은 리포트 및/또는 경보를 생성하고, 상기 리포트 및/또는 경보를 관리 장치(130)및/또는 또 다른 지정된 장치) 및/또는 하나 이상의 다른 시스템 유닛들(115)에 전송할 수 있다. 또 다른 예를 들면, 임무 중심(task-specific) 제어 응용 프로그램은 시스템 유닛(115)에 연관된, 출입문 개방 이벤트, 센서 이벤트, 구동기 이벤트 및/또는 다른 타입의 이벤트와 같은 이벤트를 처리할 수 있다.
분산 계층(340)은 시스템 유닛(115)에 연관된 하나 이상의 분산 데이터세트를 관리할 수 있다. 예를 들어, 분산 계층(340)는 네트워크(120)을 통해서(예를 들면, 전송 계층 보안(TLS; Transport Layer Security) 연결) 다른 시스템 유닛들(115)과 보안 연결을 유지할 수 있다. 더 나아가, 분산 계층(340)은 특정 컨센서스 기반 분산 데이터세트 내의 변경에 관한 컨센서스를 수립하기 위하여 프로토콜(예를 들면, PAXOS 프로토콜)을 사용할 수 있다. 예를 들면, 분산 계층(340)는 상기 분산 데이터세트에 연관된 다른 시스템 유닛들(115)에 상기 변경에 대한 제안을 전송할 수 있고 상기 다른 시스템 유닛들(115)로부터 상기 변경에 대한 정족수를 수신할 수 있다. 또 다른 예를 들면, 분산 계층(340)은 또 다른 시스템 유닛(115)로부터 수신된 제안에 대하여 투표할 수 있다. 또 다른 예를 들면, 분산 계층(340)은 상기 변경에 대한 투표 없이 변경에 대한 컨센서스가 달성 되었다는 신호를 수신할 수 있다. 변경에 대한 컨센서스의 신호가 수신되면, 분산 계층(340)은 상기 분산 데이터세트의 로컬 복사본 내에 상기 변경을 반영할 수 있다.
저장 계층(350)은 상기 시스템 유닛(115)에 연관된 하나 이상의 데이터세트를 저장할 수 있다. 저장 계층(350)에 저장된 데이터세트는 로컬 데이터세터에 일치하거나 분산 데이터세트에 일치할 수 있다. 로컬 데이터세트는 상기 로컬 데이터 세트를 저장하는 상기 특정 시스템 유닛(115)에 연관된(및/또는 상기 특정 시스템 유닛(115)에만 연관된) 정보를 저장할 수 있다. 분산 데이터세트는 상기 분산 데이터세트에 연관된 다른 시스템 유닛들(115)에 연관된 정보를 저장할 수 있다.
저장 계층(350)에 포함될 수 있는 예시적인 정보가 도 3b에 도시되어 있다. 도 3b에 도시된 것과 같이, 저장 계층(350)은 설정 데이터(352), 인증 정보 데이터(354), 출입 규정 데이터(356) 및 컨센서스 데이터베이스(358)을 포함할 수 있다. 설정 데이터(352)는 특정 시스템 유닛(115)에 연관된, 제어기(210)의 하드웨어 설정, 제어기(210)에 연결된 주변 장치(230), 응용 계층(320)에 설치된 응용 프로그램 및/또는 다른 타입의 설정 정보와 같은 설정 데이터를 저장할 수 있다. 인증 정보 데이터(354)는 시스템 유닛(115)에 연관된 인증 정보를 저장할 수 있다. 출입 규정(356)은 시스템 유닛(115)에 연관된 출입 규정을 저장할 수 있다. 컨센서스 데이터베이스(358)은 컨센서스 로스를 탐지하기 위하여 컨센서스 로스 모듈(332)에 의해서 사용될 수 있는 정보를 저장할 수 있다. 컨센서스 데이터베이스(358)에 저장될 수 있는 예시적인 정보는 도 4를 참조하여 이하에서 설명한다.
도 3a 및 3b가 시스템 유닛(115)의 예시적인 기능적 구성 요소를 도시하고 있지만, 다른 구현에서, 시스템 유닛(115)는 도 3a 및 3b에 도시된 것보다 더 적은 기능적 구성 요소, 다른 기능적 구성 요소, 다르게 배열된 기능적 구성 요소 또는 추가적인 기능적 구성 요소를 포함할 수 있다. 추가적으로, 시스템 유닛(115)의 구성 요소 중의 어떠한 하나(또는 구성 요소의 모든 그룹)는 시스템 유닛(115)의 하나 이상의 다른 기능적 구성 요소에 의해서 수행되는 것으로 기술된 기능을 수행할 수 있다.
도 4는 컨센서스 데이터베이스(358)에 저장될 수 있는 예시적인 정보에 관한 도면이다. 도 4에 도시된 것과 같이, 컨센서스 데이터베이스(358)은 하나 이상의 분산 데이터세트 레코드(record, 400)을 포함할 수 있다. 각 데이터세트 레코드(400)는 시스템 유닛(115)가 연관된 특정 데이터세트에 관련된 정보를 저장할 수 있다. 데이터세트 레코드(400)은 분산 데이터세트 항목(410), 시스템 유닛 항목(410a 내지 420n)의 집합, 대응되는 이용 가능성 항목(430a 내지 430n)의 집합, 컨센서스 항목(440) 및 경보 항목(450)을 포함할 수 있다.
분산 데이터세트 항목(410)은 시스템 유닛(115)에 연관된 특정 분산 데이터세트를 정의하는 정보를 저장할 수 있다. 각 시스템 유닛 항목(420)은 상기 분산 데이터세트에 연관된 또 다른 시스템 유닛(115)를 정의하는 정보를 저장할 수 있다. 대응되는 이용가능성 필드(430)은 상기 다른 시스템 유닛(115)가 이용 가능한지 여부에 관한 정보를 저장할 수 있다. 컨센서스 항목(440)은 상기 특정 분산 데이터세트에 연관된 컨센서스 요구 조건에 관한 정보를 저장할 수 있다. 예를 들어서, 컨센서스 항목(440)은 상기 특정 분산 데이터세트에 제안된 동작에 관한 컨센서스를 수립하기 위한 정족수를 충족시키기 위해서 다른 시스템 유닛들(115)로부터 얼마나 많은 득표가 필요한지에 관한 정보를 저장할 수 있다. 더 나아가서, 컨센서스 항목(440)은 컨센서스 로스 모듈(332)이 상기 특정 분산 데이터세트에 대한 컨센서스 로스를 탐지하면 컨센서스 로스가 탐지되었다는 것을 나타내는 신호를 저장할 수 있다. 몇몇 구현에서, 상기 특정 분산 데이터세트에 제안된 동작에 대해 투표할 때 서로 다른 시스템 유닛들(115)는 서로 다른 투표 가중치를 할당 받을 수 있다. 상기 투표 가중치 정보는 시스템 유닛 항목(420) 및/또는 컨센서스 항목(440)에 저장될 수 있다.
경보 항목(450)은 컨센서스 로그가 탐지된 것에 응답하여 컨센서스 로스 경보를 생성하는 것에 관련된 정보를 저장할 수 있다. 예를 들어, 경보 항목(450)은 상기 컨센서스 로스 경보를 전송하는데 사용되는 특정 통신 방법을 식별할 수 있고/있거나 상기 컨센서스 로스 경보가 전송될 특정 대상 장치를 식별할 수 있다.
도 4가 컨센서스 데이터베이스(358)이 저장될 수 있는 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 컨센서스 데이터베이스(358)은 도 4에 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 다르게 배열된 구성 요소 또는 추가적인 구성 요소를 포함할 수 있다.
도 5는 일 실시예에 따른 분산 제어 시스템에서 컨센서스 로스를 처리하기 위한 순서도이다. 몇몇 구현에서, 상기 도 5의 처리 과정은 제어기(210)에 의해서 수행될 수 있다. 다른 구현에서, 상기 도 5의 처리 고정의 일부 또는 전부는, 제어기(210)로부터 떨어져 있고/있거나 제어기(210)에 포함된, 또 다른 장치 또는 장치들의 그룹에 의해서 수행될 수 있다.
도 5의 상기 처리 과정은 분산 시스템 내의 시스템 유닛이 이용 가능하지 않게 되었다는 것을 탐지하는 단계(S510)를 포함할 수 있다. 시스템 유닛들(115)은 특정 간격으로 허트비트(heartbeat) 메시지를 주고 받을 수 있다. 만일 허트비트 메시지가 또 다른 시스템 유닛(115)로부터 특정 시간 주기 내에 수신되지 않으면, 컨센서스 로스 모듈(332)는 상기 다른 시스템 유닛(115)가 이용 가능하지 않게 되었다고 결정할 수 있다. 예를 들면, 상기 다른 시스템 유닛(115)는 고장이 났거나 전원이 꺼졌을 수 있다. 또 다른 예를 들면, 상기 다른 시스템 유닛(115)에 대한 연결이 링크의 손상, 네트워크 혼잡, 고장난 인터페이스 또는 네트워크 장치, 및/또는 또 다른 이유의 결과로써 끊어질 수 있다. 컨센서스 로스 모듈(332)는 컨센서스 데이터베이스(358)에 상기 다른 시스템 유닛(115)의 상기 이용 불가능성의 표시를 저장할 수 있다.
또 다른 예를 들면, 고장난 시스템 유닛(115)은, 다른 시스템 유닛들(115)가 상기 고장난 시스템 유닛(115)을 이용 불가능으로 식별하도록, 상기 다른 시스템 유닛들(115)에 장치 고장을 가리키는 메시지를 전송할 수 있다. 또 다른 예를 들면, 손상된 시스템 유닛(115)는 보안 위반을 탐지할 수 있다. 예를 들어, 상기 손상된 시스템 유닛(115)는 상기 다른 시스템 유닛(115)의 제어기(210)가 조작되면 활성화 되는 탬퍼 스위치(tamper switch)를 포함할 수 있다. 상기 탬퍼링(tampering)을 감지한 것에 응답하여, 상기 손상된 시스템 유닛(115)은 상기 다른 시스템 유닛들(115)에 보안 위반을 가리키는 메시지를 전송하고 자신을 비활성화 시킬 수 있다. 상기 다른 시스템 유닛들(115)은 상기 보안 위반 메시지를 수신한 것에 응답하여 상기 손상된 시스템 유닛(115)을 이용 불가능으로 식별할 수 있다. 컨센서스 로스 모듈(332)은, 분산 데이터세트에 연관된, 이용 가능한 시스템 유닛들(115)의 목록을 유지 관리할 수 있고, 특정한 간격으로 상기 이용 가능한 장치 목록을 갱신할 수 있다.
상기 시스템 유닛이 불가능하게 된 것을 탐지한 것을 바탕으로 상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정(S520) 될 수 있다. 예를 들어, 컨센서스 로스 모듈(332)는, 분산 데이터세트에 연관된, 얼마나 많은 시스템 유닛들(115)가 이용 가능한지 결정할 수 있고, 상기 분산 데이터세트에 제안된 동작에 관하여 컨센서스를 수립하기 위한 정족수를 충족시키기 위한 정족수를 충족하기 위해 필요한 시스템 유닛들(115)의 개수보다 상기 이용 가능한 시스템 유닛들(115)의 숫자가 더 적은 지 여부를 결정할 수 있다. 만일 상기 이용 가능한 시스템 유닛들(115)의 숫자가 상기 정족수를 충족하기 위해 필요한 상기 시스템 유닛들(115)의 숫자보다 더 적다면, 컨센서스 로스 모듈(332)은 컨센서스 로스가 상기 분산 데이터세트에 대하여 발생하였다는 것을 결정할 수 있다.
이용 가능한 시스템의 목록이 생성(S530) 될 수 있고, 상기 생성된 목록을 포함하는 경보 메시지가 관리 장치에 전송(S540) 될 수 있다. 예를 들어, 컨센서스 로스 모듈(332)은 컨센서스 데이터베이스(358)에 접근할 수 있고, 상기 분산 데이터세트에 연관된, 어느 시스템 유닛들(115)이 이용 가능한 지를 결정할 수 있다. 컨센서스 로스 모듈(332)은 상기 컨센서스 로스 경보를 전송하는데 어떤 통신 방법을 사용할 지를 결정하기 위하여 경보 항목(450)에 접근할 수 있고, 상기 컨센서스 로스 경보가 전송 될 특정 대상 장치를 결정할 수 있다. 상기 대상 장치는 관리 장치(130) 및/또는, 관리자의 이동 통신 장치와 같은, 또 다른 장치를 포함일 수 있다.
예를 들면, 경보 항목(450)은 웹 서비스 메시지가 상기 대상 장치에 전송되어야 하는 것을 명기할 수 있고 컨센서스 로스 모듈(332)이 웹 서비스 메시지를 상기 대상 장치에 전송할 수 있다. 또 다른 예를 들면, 경보 항목(450)은 이메일 메시지, 단문 메시지 서비스(SMS; Short Message Service) 또는 서비스 메시지의 실시간 품질이 상기 대상 장치로 전송되어야 하는 것을 명기할 수 있고 컨센서스 로스 모듈(332)은 이메일 메시지, 단문 메시지 서비스 또는 서비스 메시지의 실시간 QoS(Quality of Service)를 상기 대상 장치로 전송할 수 있다.
인스트럭션은 상기 리스트에 포함된 상기 시스템 유닛들의 최소한 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하기 위해 수신(S550) 될 수 있고 상기 수신된 인스트럭션을 바탕으로 컨센서스 기반 분산 시스템이 생성(S560) 될 수 있다. 예를 들어, 시스템 유닛(115)은 상기 분산 데이터세트에 대한 컨센서스 기반 분산 시스템을 생성하는 인스트럭션을 상기 대상 장치(예를 들면, 관리 장치(130))로부터 수신할 수 있다. 상기 수신된 인스트럭션은 상기 새로운 분산 시스템에 포함될 시스템 유닛들(115)의 목록을 포함할 수 있다. 예를 들면, 상기 관리자는 상기 새로운 분산 시스템 내에 상기 컨센서스 로스 경보에 나열된 모든 상기 이용 가능한 장치를 포함하는 것을 선택할 수 있다. 또 다른 예를 들면, 상기 관리자는 상기 새로운 분산 시스템으로부터 상기 이용 가능한 장치들의 일부를 제외하는 것을 선택할 수 있다.
몇몇 구현에서, 관리 장치(130)는 상기 인스트럭션을 상기 새로운 분산 시스템에 포함될 특정 시스템 유닛(115)에 전송할 수 있다. 다른 구현에서, 관리 장치(130)는 상기 인스트럭션을 상기 새로운 분산 시스템에 포함될 복수의 (그리고 가능하게는 모든) 시스템 유닛들(115)에 전송할 수 있다. 상기 인스트럭션을 수신한 시스템 유닛(115)은 상기 컨센서스 로스 경보에 연관된 상기 분산 데이터세터를 바탕으로 새로운 분산 데이터세트를 생성하고 나서, 상기 새로운 분산 시스템에 포함될, 상기 다른 시스템 유닛들(115)을 상기 새로운 분산 데이터세트에 연관시킬 수 있다.
시스템 유닛(115)은, 상기 새로운 분산 시스템을 생성할 때, 과반수를 달성하기 위해 필요한 장치의 최소한의 개수를 바탕으로, 정족수를 충족하기 위해 요구되는 시스템 유닛들(115)의 개수를 선택할 수 있다. 따라서, 예를 들면, 상기 새로운 분산 시스템에 대해서 6 개의 시스템 유닛들(115)이 관리자에 의해서 선택되면, 상기 새로운 분산 시스템에 대해 4개의 시스템 유닛들(115)이 정족수로 설정될 수 있다.
몇몇 구현에서, 분산 데이터세트에 대해 제안된 동작을 위한 정족수를 위해서 투표할 때 상이한 투표 가중치가 상이한 시스템 유닛들(115)에 할당될 수 있다. 특정 시스템 유닛(115)은 상기 특정 시스템 유닛(115)의 상기 위치를 기반으로 다른 시스템 유닛들(115) 보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 위치는 중요하게 고려될 수 있고 상기 특정 위치에 있는 시스템 유닛(115)은 다른 시스템 유닛들(115)보다 더 높은 투표 가증치를 받을 수 있다.
특정 시스템 유닛(115)은 시스템 유닛들(115)의 그룹 내의 멤버쉽(membership)을 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 분산 데이터세트는 하나 이상의 기준을 바탕으로 시스템 유닛들(115)의 복수의 그룹과 연관될 수 있다고 첫 번째 그룹 내의 시스템 유닛들(115)은 두 번째 그룹 내의 시스템 유닛들(115)보다 더 높은 투표 가중치를 받을 수 있다. 특정 시스템 유닛(115)는 상기 특정 시스템 유닛(115)의 장치 타입을 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 첫 번째 시스템 유닛(115)은 추가적인 기능을 가진 새로운 버전(version)에 상응할 수 있고 다른 시스템 유닛들(115)보다 더 높은 투표 가중치를 받을 수 있다.
특정 시스템 유닛(115)은 상기 특정 시스템 유닛(115)에 할당된 위협 레벨을 바탕으로 다른 시스템 유닛들(115) 보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 시스템 유닛(115)는, 공공 장소와 같은, 고위협 영역에 위치할 수 있고, 그렇기 때문에 다른 시스템 유닛들(115)보다 더 낮은 투표 가중치를 받을 수 있다. 특정 시스템 유닛(115)는 상기 특정 시스템 유닛(115)에 연관된 신뢰성 측정치를 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 시스템 유닛(115)은 (예를 들면, 환경 조건으로 인한) 높은 고장률을 가질 수 있고 다른 시스템 유닛들(115)보다 더 낮은 투표 가중치를 받을 수 있다. 특정 시스템 유닛(115)은 상기 특정 시스템 유닛(115)에 연관되어 로그화된 이벤트를 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 시스템 유닛(115)은 대량의 동작 감지 이벤트를 로그로 남기는 동작 센서를 포함할 수 있고 따라서 상기 특정 시스템 유닛(115)는 다른 시스템 유닛들(115)보다 더 높은 투표 가중치를 받을 수 있다.
특정 시스템 유닛(115)는 상기 특정 시스템 유닛(115)에 연관된 주변 장치의 활성화 빈도를 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 시스템 유닛(115)는 높은 트래픽(traffic)을 겪을 수 있고, 다른 시스템 유닛들(115)에 연관된 잠금 장치(250)보다 더 높은 빈도로 잠금 장치(250)가 활성화 되기 때문에, 상기 특정 시스템 유닛(115)는 다른 시스템 유닛들(115) 보다 더 높은 투표 가중치를 받을 수 있다. 특정 시스템 유닛(115)은 상기 특정 시스템 유닛(115)에 연관된 관리적인 로그인(login) 빈도를 바탕으로 다른 시스템 유닛들(115)보다 더 높거나 더 낮은 투표 가중치를 받을 수 있다. 예를 들면, 특정 시스템 유닛(115)는 다른 시스템 유닛들(115)보다 관리 장치(130)에 의해서 더 자주 사용될 수 있고 다른 시스템 유닛들(115) 보다 더 높은 투표 가중치를 받을 수 있다.
몇몇 구현에서, 시스템 유닛들(115)은 컨센서스 로스가 탐지된 이후 시스템 유닛들(155)에게 새로운 분산 데이터세트를 생성하도록 명령하는 응답을 관리 장치(130)로부터 수신하기 이전에 분산 데이터세트를 계속 사용할 필요가 있다. 따라서, 몇몇 구현에서, 컨센서스 로스를 탐지한 것에 응답하여, 시스템 유닛(115)는 상기 분산 데이터 세트 및 상기 이용 가능한 시스템 유닛(115) 목록을 바탕으로 비상 분산 데이터세트를 생성할 수 있다. 상기 비상 분산 데이터세트는 상기 생성된 컨센서스 로스 경보에 관리자가 응답하기 이전에 상기 시스템 유닛들(115)에 의해서 사용될 수 있다. 새로운 분산 시스템을 생성하는 인스트럭션을 관리 장치(130)로부터 수신한 이후, 상기 비상 분산 데이터세트의 데이터는 상기 새로운 분산 데이터세트에 통합될 수 있다.
몇몇 구현에서, 상기 새로운 분산 데이터세트가 생성된 이후, 상기 분산 데이터세터에 이전에 연관되어 있었고 이용 불가능하게 된, 하나 이상의 시스템 유닛들(115)은 다시 이용 가능하게 될 수 있다. 예를 들어서, 고장난 시스템 유닛(115)은 수리될 수 있고 손상된 연결은 복구될 수 있다. 상기 복구된 시스템 유닛(115)는 상기 분산 데이터세트에 재가입을 요청할 수 있다. 상기 복구된 시스템 유닛(115)이 이용 불가능한 동안에, 상기 복구된 시스템 유닛(115)은 상기 분산 데이터세트에 관련된 누적된 데이터를 가지고 있을 수 있다. 상기 복구된 시스템 유닛(115)은 컨센서스 로스 이후에 생성된 상기 새로운 분산 시스템에 추가되는 것을 요청할 수 있다. 상기 새로운 분산 데이터세트에 연관된 시스템 유닛(115)은 상기 복구된 시스템 유닛(115)으로부터 상기 새로운 분산 데이터세트에 추가되기를 원하는 요청을 수신할 수 있고 상기 복구된 시스템 유닛(115)를 상기 새로운 분산 데이터세트에 추가할 수 있다. 상기 시스템 유닛(115)는 이어서 상기 복구된 시스템 유닛(115)로부터 장치 데이터를 상기 새로운 분산 데이터세트에 추가하는 요청을 수신할 수 있고, 상기 장치 데이터가 상기 새로운 분산 데이터세트와 부합되는지 여부를 결정할 수 있고, 상기 장치 데이터가 상기 분산 데이터세트와 부합되면 상기 장치 데이터를 상기 새로운 분산 데이터세트에 추가할 수 있다.
도 6은 관리 장치(130)의 예시적인 구성 요소를 도시한 블록도이다. 도 6에 도시된 것과 같이, 관리 장치(130)는 버스(610), 프로세서(620), 메모리(630), 입력 장치(640), 출력 장치(650) 및 통신 인터페이스(660)을 포함할 수 있다.
버스(610)는 관리 장치(130)의 구성 요소들 사이에 통신을 허용하는 경로를 포함할 수 있다. 프로세서(620)는 싱글 코어 프로세서(single core processor), 멀티 코어 프로세서(multi core processor), 마이크로프로세서(microprocessor), 래치 기반 프로세서(latch-based processor) 및/또는 인스트럭션을 해석하고 실행하는 처리 로직 (또는 프로세서, 마이크로프로세서 및/또는 처리 로직의 일족)의 모든 타입을 포함할 수 있다. 다른 실시예에 따르면, 프로세서(620)는 ASIC, FPGA및/또는 집적 회로 또는 처리 로직의 또 다른 타입을 포함할 수 있다.
메모리(630)는, 프로세서(620)에 의한 수행을 위하여, 정보 및/또는 인스트럭션을 저장할 수 있는 모든 타입의 동적 저장 장치를 포함할 수 있고/있거나, 프로세서(414)에 의한 사용을 위하여 정보를 저장할 수 있는 모든 타입의 비휘발성 저장 장치를 포함할 수 있다. 예를 들어서, 메모리(630)는 RAM 또는 동적 저장 장치의 또 다른 타입, ROM 장치 또는 정적 저장 장치의 또 다른 타입, CAM, 자기적 및/또는 광학적 기록 메모리 장치와 이에 상응하는 드라이브(예를 들어서, 하드 디스크 드라이브, 광학 드라이브, 기타 등등), 및/또는 플래시 메모리(flash memory) 같은 이동할 수 있는 형태의 메모리를 포함할 수 있다.
입력 장치(640)는 운영자가 관리 장치(130)에 정보를 입력하게 할 수 있다. 입력 장치(640)는, 예를 들어, 키보드, 마우스, 펜, 마이크로폰, 원격 조정기, 오디오 캡쳐(audio capture) 장치, 이미지 또는 비디오 캡쳐 장치, 터치스크린 디스플레이, 및/또는 모든 타입의 입력 장치를 포함할 수 있다. 몇몇 구현에서, 관리 장치(130)는 원격으로 관리될 수 있고 입력 장치(640)를 포함하지 않을 수 있다. 즉, 관리 장치(130)는 “헤드리스(headless)”일 수 있고, 예를 들면, 키보드를 포함하지 않을 수 있다.
출력 장치(650)는 관리 장치(130)의 운영자에게 정보를 출력할 수 있다. 출력 장치(650)는 디스플레이, 프린터, 스피커 및/또는 또 다른 타입의 출력 장치를 포함할 수 있다. 예를 들어, 관리 장치(130)는 관리자에게 컨텐츠(content)를 표시하기 위한 액정 디스플레이(LCD; liquid-crystal display)를 포함하는 디스플레이를 포함할 수 있다. 상기 디스플레이는 터치스크린과 일치할 수 있다. 몇몇 구현에서, 관리 장치(130)는 원격으로 관리되고 출력 장치(650)를 포함하지 않을 수 있다. 즉, 관리 장치는 “헤드리스(headless”일 수 있고, 예를 들면, 디스플레이를 포함하지 않을 수 있다.
통신 인터페이스(660)는 관리 장치(130)가 무선 통신(예를 들면, RF, 적외선 및/또는 시광학(visual optics), 기타 등등), 유선 통신(예를 들면, 도전성 와이어(conductive wire), 꼬임 쌍성 케이블(twisted pair cable), 동축 케이블, 전송선, 광섬유 케이블 및/또는 도파관(waveguide), 기타 등등) 또는 유무선 통신의 조합을 통하여 다른 장치 및/또는 시스템과 통신할 수 있게 하는 송수신기를 포함할 수 있다. 통신 인터페이스(660)는 기저 대역 신호(baseband signal)을 RF 신호로 변환하는 수신기를 포함할 수 있고/있거나 통신 인터페이스(660)는 RF 신호를 기저 대역 신호로 변환하는 수신기를 포함할 수 있다. 통신 인터페이스(660)는 RF 신호를 송신하고 수신하기 위한 안테나와 결합될 수 있다.
통신 인터페이스(660)은 입력 및/또는 출력 포트(port), 입력 및/또는 출력 시스템, 및/또는 다른 장치에 데이터의 전송을 용이하게 하는 다른 입력 및 출력 구성 요소를 포함하는 논리적 구성 요소를 포함할 수 있다. 예를 들어, 통신 인터페이스(660)는 유선 통신을 위한 네트워크 인터페이스 카드(예를 들면, 이더넷 카드(Ethernet card)) 및/또는 무선 통신을 위한 무선 네트워크 인터페이스(예를 들면, WiFi) 카드를 포함할 수 있다. 통신 인터페이스(660)는 케이블, 블루투스(Bluetooth), 무선 인터페이스, RFID 인터페이스, NFC 무선 인터페이스, 및/또는 하나의 형식에서 또 다른 형식으로 변환하는 모든 타입의 인터페이스를 통하여 통신 하기 위한 USB 포트를 포함할 수 있다.
이하에서 기술된 것처럼, 관리 장치(130)는 시스템 유닛들(115)로부터 수신된 컨센서스 로스 경보의 관리와 관련된 어떠한 동작을 수행할 수 있다. 관리 장치(130)는, 메모리(630)과 같은, 컴퓨터가 읽을 수 있는 매체에 저장된 소프트웨어(software) 인스트럭션을 수행하는 프로세서(620)에 응답하여 상기 컨센서스 로스 경보의 관리와 관련된 동작을 수행할 수 있다. 메모리(630)는 하나의 물리적 메모리 장치 내에서 구현되거나 복수의 물리적 메모리 장치에 퍼져서 구현될 수 있다. 상기 소프트웨어 인스트럭션은 또 다른 컴퓨터가 읽을 수 있는 매체 또는 또 다른 장치로부터 메모리(630)로 읽어 들여 질 수 있다. 메모리(630)에 들어있는 상기 소프트웨어 인스트럭션은 프로세서(620)가 본원에서 기술된 처리 과정을 수행하게 할 수 있다. 대안적으로, 하드웨어 전기회로가, 본원에서 기술된 처리 과정을 구현한 소프트웨어 인스트럭션을 대신하여, 또는 상기 소프트웨어 인스트럭션과 조합된 방식으로, 사용될 수 있다. 따라서, 본원에서 기술된 구현은 하드웨어 전기회로 및 소트프웨어의 어떠한 특정 조합에 제한되는 것은 아니다.
도 6는 관리 장치(130)의 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 관리 장치(130)는 도 6에서 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 추가적인 구성 요소 또는 다르게 배열된 구성 요소를 포함할 수 있다. 추가적으로 또는 대안적으로 관리 장치(130)의 하나 이상의 구성 요소는 관리 장치(130)의 하나 이상의 다른 구성 요소들에 의해 수행되는 것으로 기술된 하나 이상의 임무를 수행할 수 있다.
도 7은 일 실시예에 따른 분산 제어 시스템의 시스템 유닛들로부터 수신된 컨센서스 로스 경보를 처리하기 위한 순서도이다. 몇몇 구현에서, 도 7의 상기 처리 과정은 관리 장치(130)에 의해서 수행될 수 있다. 다른 구현에서, 도 7의 일부 또는 모든 상기 처리 과정은 또 다른 장치 또는 관리 장치(130)로부터 떨어져 있고/있거나 관리 장치(130)를 포함하는 장치들의 그룹에 의해서 수행될 수 있다.
도 7의 상기 처리 과정은 분산 제어 시스템의 시스템 유닛들로부터 하나 이상의 컨센서스 로스 경보를 수신(S710)하는 것을 포함할 수 있다. 관리장치(130)는 컨센서스 로스 경보 응용 프로그램을 포함할 수 있다. 상기 컨센서스 경보 응용 프로그램은 DCS(110)의 시스템 유닛들(115)로부터 컨센서스 경보를 수신하도록 설정될 수 있다. 컨센서스 로스가 시스템 유닛(115)에 의해서 탐지될 때, 상기 컨센서스 경보기는 하나 이상의 컨센서스 로스 경보를 수신할 수 있다. 몇몇 구현에서, 상기 컨센서스 로스 경보는 제공받은 경고가 수신된 순서로 나열된 상기 경고의 배열로 표현될 수 있다. 추가적으로 또는 대안적으로, 상기 컨센서스 로스 경보는 상기 관리자에게 알려지기 전에 정리되거나 통합될 수 있다.
상기 수신된 경보는 상기 경보와 연관된 분산 데이터세트를 바탕으로 정리(S720)될 수 있고 사용자 인터페이스는 상기 정리된 경보를 바탕으로 생성(S730)될 수 있다. 예를 들어, 분산 데이터세트에 대한 컨센서스 로스가 탐지되면, 상기 분산 데이터세트에 연관된 상기 작동하는 시스템 유닛들(115)(예를 들면, 모든 작동하는 시스템 유닛들(115))은 컨센서스 로스 경보를 관리 장치(130)에 전송할 수 있다. 특정 분산 데이터세트에 대한 상기 수신된 컨센서스 로스 경보의 일부는 동일한 이용 가능한 장치 목록을 포함할 수 있다. 상기 컨센서스 로스 경보 응용 프로그램은 중복된 목록이 표시되게 하기 위하여 상기 수신된 이용 가능한 장치 목록을 정리할 수 있다. 경고가 관리 장치(130) 상에서 생성될 수 있고, 관리자가 상기 생성된 경고를 보는 것을 선택하는 경우, 상기 생성된 사용자 인터페이스가 상기 관리자에게 표시될 수 있다.
상기 사용자 인터페이스는 추가적인 경보가 수신되면 갱신(S740) 될 수 있다. 추가적인 컨센서스 로스 경보가 수신되는 경우, 상기 컨센서스 로스 경보 응용 프로그램은 시스템 유닛들(115)로부터 관리 장치(130)에 의해서 수신된 상기 추가적인 컨센서스 로스 경보에서 얻은 정보를 포함하도록 상기 생성된 사용자 인터페이스를 갱신 할 수 있다.
도 8은 시스템 유닛(115)의 예시적인 물리적 배치(800)를 도시한 평면도이다. 도 8에 도시된 것과 같이, 물리적 배치(800)은 벽(810), 출입문(820), 제어기(210), 판독 장치(240), 잠금 장치(250), 센서(260) 및 구동기(270)을 포함할 수 있다.
벽(810)은 건물에 있는 룸과 같은 보안 영역(830)을 둘러싸고 있다. 출입문(820)은 사용자에게 보안 영역(830)에 대합 출입을 제공한다. 이 실시예에 따르면, 제어기(210)는 보안 영역(830) 내부에 설치될 수 있다. 다른 실시예에 따르면, 제어기(210)는 비보안 영역(850)에 설치될 수 있다. 판독 장치(240)는 보안 영역(830) 바깥에 설치되고 잠금 장치(250)는 보안 영역(830) 내부에 벽(810)과 출입문(820) 쪽으로 설치된다. 센서(260)는, 이 예시에서, 보안 영역(830)의 외부이며 출입문(820)의 바깥 쪽 비보안 영역에 장착된 감시 장치이다. 이 예시에서, 구동기(270)는 감시 장치(460)의 시야를 제어하는데 사용되는 모터를 포함한다.
사용자가 인증 정보를 판독 장치(240)에 입력하면(예를 들어, PIN 입력, 출입 카드 스캐닝(scanning), 홍채 스캐닝, 기타 등등), 제어기(210)는 상기 인증 정보를 이용하여 상기 사용자의 신원을 검증할 수 있고, 상기 사용자의 상기 신원과 출입 규정을 바탕으로 상기 사용자에 대한 출입의 승인 여부를 결정하기 위하여 출입 규정 테이블에서 검색을 수행할 수 있다. 제어기(210)가 출입이 승인되어야 한다고 결정하면, 제어기(210)는 잠금 장치(250)를 활성화시켜 출입문(820)을 잠금 해제하고, 따라서 보안 영역(830)에 대한 상기 사용자의 출입을 승인한다.
도 8은 물리적 배치(800)의 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 물리적 배치(800)은 도 8에 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 추가적인 구성 요소 또는 다르게 배열된 구성 요소를 포함할 수 있다. 추가적으로 또는 대안적으로 물리적 배치(800) 내의 모든 구성 요소(또는 구성 요소들의 그룹)은 물리적 배치(800)의 하나 이상의 다른 구성 요소들에 의해서 수행되는 것으로 기술된 임무 또는 임무들을 수행할 수 있다.
도 9는 DCS(110)의 예시적인 물리적 배치(900)을 도시한 평면도이다. 도 9에 도시된 것과 같이, 물리적 배치(900)은 룸(920a) 내지 룸(920f)를 구비한 건물(910)을 포함할 수 있다. 이더넷 네트워크(Ethernet network)와 같은, 로컬 네트워크(local network, 930)는 시스템 유닛들(115a) 내지 시스템 유닛들(115f)를 서로 연결할 수 있다. 이 예시에서, 시스템 유닛(115a)은 룸(920a)로 들어가는 두 개의 출입문을 제어하고, 시스템 유닛(115b)은 룸(920b)로 들어가는 바깥쪽 문을 제어하며, 시스템 유닛(115c)는 룸(920b)에서 룸(920c)로 들어가는 하나의 출입문을 제어하고, 시스템 유닛(115d)는 룸(920c)에서 룸(920d)로 들어가는 하나의 출입문을 제어하며, 시스템 유닛(115e)는 룸(920d)에서 룸(920e)로 들어가는 하나의 출입문을 제어하고, 시스템 유닛(115f)는 룸(920f)로 들어가는 바깥 쪽 출입문을 제어한다.
이 예시에서, 시스템 유닛들(115a 내지 115f)는 중앙 제어 장치(예를 들면, 서버)를 포함하지 않으며 하나 이상의 분산 데이터세트를 포함할 수 있다. 예를 들면, 시스템 유닛들(115a 내지 115f)는 분산 인증 정보 테이블, 분산 출입 규정 테이블 및/또는 분산 이벤트 로그를 유지 관리 할 수 있다. 관리자가 사용자를 추가하고 사용자와 관련된 인증 정보를 추가하기 위하여 시스템 유닛(115a)에 접속하는데 관리 장치(130)를 사용한다고 가정한다. 상기 추가된 인증 정보는 상기 사용자가 출입하는 룸의 출입문을 제어하는 상기 다른 시스템 유닛들(115)에 분산 배포될 수 있다. 시스템 유닛(115b)가 고장 난다면, 시스템 유닛(115b)에 의해서 수집된 데이터는 상기 다른 시스템 유닛들에 포함된 분산 이벤트 로그 때문에 계속 이용 가능할 수 있다.
도 9는 물리적 배치(900)의 예시적인 구성 요소를 도시하고 있지만, 다른 구현에서, 물리적 배치(900)은 도 9에 도시된 것보다 더 적은 구성 요소, 다른 구성 요소, 추가적인 구성 요소 또는 다르게 배열된 구성 요소를 포함할 수 있다. 예를 들어, 또 다른 실시예에서, 중앙제어 장치(예를 들면, 서버)는 하나 이상의 분산 데이터세트와 결합하여 사용될 수 있다. 초가적으로 또는 대안적으로, 물리적 배치(900)의 하나 이상의 구성 요소들은 물리적 배치(900)의 하나 이상의 다른 구성 요소들에 의해서 수행되는 것으로 기술된 임무 또는 임무들을 수행할 수 있다.
도 10a 내지 10c는 본원에서 기술된 하나 이상의 구현들에 따른 예시적인 컨센서스 로스 시나리오에 관한 도면이다. 도 10a는 도 9의 물리적 배치(900)에 있는 시스템 유닛들(115)의 가능한 네트워크 토폴로지(topology)를 도시하고 있다.도 10a에 도시된 것과 같이, 로컬 네트워크(930)은 이더넷 스위치(110a) 및 이더넷 스위치(1010b)를 포함할 수 있다. 이더넷 스위치(1010a)는 시스템 유닛들(115a, 115b 및 11c)의 제어기에 연결될 수 있다. 이더넷 스위치(1010b)는 시스템 유닛들(115d, 115e 및 115f)의 제어기에 연결될 수 있다. 이더넷 스위치(1010a, 1010b)는 이더넷 케이블로 연결될 수 있다. 이더넷 케이블이 손상되어 손상된 링크(1020)가 발생하였다고 가정한다. 손상된 링크(1020)는 시스템 유닛들(115a, 115b 및 115c) 이 시스템 유닛들(115d, 115e 및 115f)과 통신하는 것을 불가능하게 만들 수 있다.
도 10b는 컨센서스 데이터베이스(358)에 저장된 상기 정보의 일부분에 대응될 수 있는 테이블(1030)을 도시하고 있다. 도 10b에 도시된 것과 같이, 테이블(1030)은 시스템 유닛들(115a 내지 115f)에 연관된 분산 데이터세트에 관한 정보를 포함할 수 있다. 테이블(1030)은 마스터(master) 데이터베이스 분산 데이터세트, 건물 카운터(counter) 분산 데이터세트 및 룸C 카운터 분산 데이터세트에 관한 정보를 포함할 수 있다. 마스터 데이터베이스 분산 데이터세트는 시스템 유닛들(115a 내지 115f)에 연관될 수 있다. 상기 마스터 데이터베이스는, 예를 들면, 암호화된 인증 정보, 출입 규정 정보, 시스템 유닛들(115)의 설정 정보 및/또는 다른 타입의 정보를 저장할 수 있다. 일 실시예에 따르면, 본 예시에서, 모든 시스템 유닛들(115a 내지 115f)은 상기 마스터 데이터베이스 분산 데이터세트와 연관될 수 있다. 더 나아가서, 상기 마스터 데이터베이스 분산 데이터세트에 대한 변경과 관련된 컨센서스를 달성하기 위한 정족수로 4개의 시스템 유닛들이 요구될 수 있다. 다른 실시예에 따른 다른 예시에서, 모든 시스템 유닛들(115a 내지 115f)이 상기 마스터 데이터베이스 분산 데이터세트에 연관될 필요는 없다.
상기 건물 카운터 분산 데이터세트는 건물 카운터 응용 프로그램에 관한 정보를 저장할 수 있다. 상기 건물 카운터 응용 프로그램은 건물(910)에 들어오고 나가는 사람들을 추적할 수 있고 현재 건물(910) 내부에 몇 명의 사람들이 있는지에 관한 정보를 유지 관리할 수 있다. 오직 시스템 유닛들(115b 및 115f) 만이 건물(910)에 대한 출구를 제어하기 때문에, 오직 시스템 유닛들(115b 및 115f) 만이 건물 카운터 분산 데이터세트에 연관될 수 있다. 더 나아가서, 상기 건물 카운터 분산 데이터세트에 대한 변경과 관련된 컨센서스를 달성하기 위한 정족수로 2개의 시스템 유닛들이 요구될 수 있다.
상기 룸 C 카운터 분산 데이터세트는 룸(920c)에 대한 카운터 응용 프로그램과 관련된 정보를 저장할 수 있다. 예를 들어, 룸(920c)은 카페테리아(cafeteria)에 상응할 수 있고 룸 C 카운터 응용 프로그램은 현재 상기 카페테리아 내에 몇 명의 사람들이 있는지를 추적할 수 있다. 오직 시스템 유닛들(115a, 115c 및 115d)만이 룸(920c)에 대한 출입문을 제어하기 때문에, 오직 시스템 유닛들(115a, 115c 및 115d)만이 상기 룸 C 카운터 분산 데이터세트에 연관될 수 있다. 더 나아가서, 상기 건물 카운터 분산 데이터세터에 대한 변경과 관련된 컨센서스를 달성하기 위한 정족수로 2개의 시스템 유닛들이 요구될 수 있다.
손상된 링크(1020)는 컨센서스 로스 경보를 생성하는 결과를 가져올 수 있다. 도 10c는 손상된 링크(1020)에 대한 응답으로 시스템 유닛들(115a 내지 115f)중 특정 하나의 시스템 유닛에 해서 생성된 컨센서스 로스 경보를 포함하는 순서도(1040)를 도시하고 있다. 시스템 유닛(115a)은 더 이상 시스템 유닛들(115d, 115e 및 115f)에 도달할 수 없다. 따라서, 시스템 유닛(115a)는 상기 마스터 데이터베이스 분산 데이터세트에 관한 요구되는 정족수 4를 충족시킬 수 없다. 따라서, 시스템 유닛(115a)는 마스터 데이터베이스 컨센서스 로스 경보(1042)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1042)는 시스템 유닛들(115a, 115b 및 115c)를 이용 가능한 장치들로 나열할 수 있다. 더 나아가서, 시스템 유닛(115a)는 여전히 시스템 유닛(115c)에 도달할 수 있기 때문에, 시스템 유닛(115a)는 상기 룸 C 카운터 분산 데이터세트에 관하여 필요한 정족수 2를 충족시킬 수 있고, 이에 따라서 상기 룸 C 카운트 분산 데이터세트에 대한 컨센서스 손실은 탐지되지 않는다.
시스템 유닛(115b)은 더 이상 시스템 유닛들(115d, 115e 및 115f)에 도달할 수 없다. 따라서, 시스템 유닛(115b)는 상기 마스터 데이터베이스 분산 데이터세트에 관하여 요구되는 정족수 4를 충족 시킬 수 없다. 따라서, 시스템 유닛(115b)는 마스터 데이터베이스 컨센서스 로스 경보(1044)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1044)는 상기 이용 가능 장치들로 시스템 유닛들(115a, 115b 및 115c)을 나열할 수 있다. 더 나아가서, 시스템 유닛(115b)는 상기 건물 카운터 분산 데이터세트에 관하여 요구되는 정족수 2를 충족시킬 수 없다. 따라서, 시스템 유닛(115b)는 건물 카운터 컨센서스 로스 경보(1046)을 생성하여 관리 장치(130)에 전송할 수 있다. 건물 카운터 컨센서스 로스 경보(1046)은 이용 가능한 장치로 시스템 유닛(115b)만을 나열할 수 있다.
시스템 유닛(115c)은 더 이상 시스템 유닛들(115d, 115e 및 115f)에 도달할 수 없다. 따라서, 시스템 유닛(115c)는 상기 마스터 데이터베이스 분산 데이터세트에 관하여 요구되는 정족수 4를 충족 시킬 수 없다. 따라서, 시스템 유닛(115c)는 마스터 데이터베이스 컨센서스 로스 경보(1048)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1048)는 상기 이용 가능 장치들로 시스템 유닛들(115a, 115b 및 115c)을 나열할 수 있다. 더 나아가서, 시스템 유닛(115b)은 여전히 시스템 유닛(115a)에 도달 할 수 있기 때문에, 시스템 유닛(115c)은 상기 룸 C 카운터 분산 데이터세트에 관하여 요구되는 정족수 2를 충족시킬 수 있고 이에 따라서 상기 룸 C 카운터 분산 데이터세트에 관한 컨센서스 로스는 탐지되지 않는다.
시스템 유닛(115d)은 더 이상 시스템 유닛들(115a, 115c 및 115c)에 도달할 수 없다. 따라서, 시스템 유닛(115d)는 상기 마스터 데이터베이스 분산 데이터세트에 관하여 요구되는 정족수 4를 충족 시킬 수 없다. 따라서, 시스템 유닛(115d)는 마스터 데이터베이스 컨센서스 로스 경보(1050)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1050)는 상기 이용 가능 장치들로 시스템 유닛들(115d, 115e 및 115f)을 나열할 수 있다. 더 나아가서, 시스템 유닛(115d)는 상기 룸 C 카운터 분산 데이터세트에 관하여 요구되는 정족수 2를 충족시킬 수 없다. 따라서, 시스템 유닛(115d)는 룸 C 카운터 컨센서스 로스 경보(1046)을 생성하여 관리 장치(130)에 전송할 수 있다. 룸 C 카운터 컨센서스 로스 경보(1046)는 이용 가능한 장치로 시스템 유닛(115b)만을 나열할 수 있다.
시스템 유닛(115e)은 더 이상 시스템 유닛들(115a, 115b 및 115c)에 도달할 수 없다. 따라서, 시스템 유닛(115e)는 상기 마스터 데이터베이스 분산 데이터세트에 관하여 요구되는 정족수 4를 충족 시킬 수 없다. 따라서, 시스템 유닛(115e)는 마스터 데이터베이스 컨센서스 로스 경보(1054)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1054)는 상기 이용 가능 장치들로 시스템 유닛들(115d, 115e 및 115f)을 나열할 수 있다.
시스템 유닛(115f)은 더 이상 시스템 유닛들(115a, 115c 및 115c)에 도달할 수 없다. 따라서, 시스템 유닛(115f)는 상기 마스터 데이터베이스 분산 데이터세트에 관하여 요구되는 정족수 4를 충족 시킬 수 없다. 따라서, 시스템 유닛(115f)는 마스터 데이터베이스 컨센서스 로스 경보(1056)를 생성하여 관리 장치(130)에 전송할 수 있다. 마스터 데이터베이스 컨센서스 로스 경보(1056)는 상기 이용 가능 장치들로 시스템 유닛들(115d, 115e 및 115f)을 나열할 수 있다. 더 나아가서, 시스템 유닛(115f)는 상기 건물 카운터 분산 데이터세트에 관하여 요구되는 정족수 2를 충족시킬 수 없다. 따라서, 시스템 유닛(115f)는 건물 카운터 컨센서스 로스 경보(1058)을 생성하여 관리 장치(130)에 전송할 수 있다. 건물 카운터 컨센서스 로스 경보(1058)은 이용 가능한 장치로 시스템 유닛(115f)만을 나열할 수 있다.
도 11은 본원에서 기술한 하나 이상의 구현들에 관한 예시적인 사용자 인터페이스(1100)에 관한 도면이다. 도 11에 도시된 것과 같이, 사용자 인터페이스(1100)는 도 10c에 도시된 상기 커센서스 로스 경보를 수신한 것에 응답하여 관리 장치(130)에 의해서 생성될 수 있다. 사용자 인터페이스(1100)는 마스터 데이터베이스 분사 데이터세트 목록(1110), 건물 카운터 분산 데이터세트 목록(1120) 및 룸 C 카운터 분산 데이터세트 목록(1130)을 포함할 수 있다.
마스터 데이터베이스 분산 데이터세트 목록(1110)은 두 개의 목록을 포함할 수 있다. 첫 번째 목록은 마스터 데이터베이스 컨센서스 로스 경보(1042, 1044, 1048)로부터 수신된 정보를 바탕으로 생성될 수 있고, 두 번째 목록은 마스트 데이터베이스 컨센서스 로스 경보(1050, 1054, 1056) 으로부터 수신된 정보를 바탕으로 생성될 수 있다. 이 경우, 상기 관리자는 상기 마스트 데이터베이스 분산 데이터세트에 대한 새로운 컨센서스 기반 시스템으로써 상기 두 개의 목록 중에서 하나를 선택할 수 있고 상기 마스터 데이터베이스 분산 데이터세트의 두 가지 다른 버전을 가지는 스플릿 브레인 문제(split-brain problem)를 피하기 위하여 상기 두 개의 목록 중에서 다른 목록은 선택 해제할 수 있다.
건물 카운터 분산 데이터세트 목록(1120)은 또한 두 개의 목록을 포함할 수 있다. 첫 번째 목록은 건물 카운터 컨센서스 로스 경보(1046)으로부터 수신된 정보를 바탕으로 생성될 수 있고 두 번째 목록은 건물 카운터 컨센서스 로스 경보(1058)로부터 수신된 정보를 바탕으로 생성될 수 있다. 이 경우, 상기 관리자는 상기 두 개의 목록을 모두 선택할 수 있고 이것은 스플릿 브레인 문제를 초래할 수 있다. 그러나, 상기 관리자는 상기 건물에 출입하는 사람들의 계속하여 추적하는 것을 중요하게 고려할 수 있고 시스템 유닛들(115b 내지 115f)로부터 상기 건물 카운터 데이터세트를 수동으로 조정하는 것을 선택할 수 있다.
룸 C 카운터 분산 데이터세트 목록(1130)은 룸 C 카운터 컨센서스 로스 경보(1052)로부터 수신된 정보를 바탕으로 생성된 리스트를 포함할 수 있다. 상기 관리자는, 상기 시스템의 설정을 바탕으로, 상기 관리자가 시스템 유닛들(115a 내지 115c)이 여전히 상기 룸 C 카운터 분산 데이터세트에 관한 정족수를 획득할 수 있다고 인식할 수 있는 것처럼 이러한 경보를 무시하는 것을 선택할 수 있다.
앞의 명세서 내용에서, 다양한 바람직한 실시예가 상기 첨부된 도면을 참조하여 기술되었다. 그러나 다양한 수정과 변경이 상기 실시예에 가해 질 수 있고, 이하의 청구항에서 설명된 발명의 가장 넓은 범위를 벗어나지 않고 추가적인 실시예가 구현될 수 있다. 따라서 명세서 및 도면은 한정적이라기 보다는 설명적인 것으로 이해되어야 한다.
예를 들어, 도 5 및 도 7에 관하여 일련의 블록들이 도시되어 있지만, 상기 블록의 순서는 다른 구현에서는 수정될 수 있다. 더 나아가서, 독립적인 블록은 병렬적으로 수행될 수 있다.
위에서 설명한 시스템 및/또는 방법은 도면들에 도시된 구현에 있는 소프트웨어, 펌웨어 및 하드웨어의 매우 다양한 형태로 구현될 수 있다는 것은 자명하다. 실제적인 소프트웨어 코드 또는 이러한 시스템 및 방법을 구현하는데 사용된 특화된 제어 하드웨어는 실시예에 한정되지는 않는다. 따라서, 상기 시스템 및 방법의 구동과 동작은 특정 소프트웨어 코드에 대한 참조 없이 기술되었다. 소프트웨어 및 컨트롤 하드웨어는 본원의 설명을 바탕으로 상기 시스템 및 방법을 구현하도록 설계될 수 있다.
더 나아가서, 위에서 기술한 어떤 부분은 하나 이상의 기능을 수행하는 구성 요소로 구현될 수 있다. 구성 요소는, 본원에서 사용된 것처럼, 프로세서, ASIC 또는 FPGA 같은 하드웨어 또는 하드웨어 및 소프트웨어의 조합(예를 들어서, 소프트웨어를 수행하는 프로세서)을 포함할 수 있다.
본원 명세서에서 사용된 "포함한다" 및 "포함하는"이라는 용어는, 설명된 특징들, 숫자들, 단계들 또는 구성 요소들의 존재를 특정하지만, 하나 이상의 다른 특징들, 숫자들, 단계들, 구성 요소들 또는 그들의 그룹들의 존재나 추가를 배제하는 것은 아니다.
본 출원에서 사용된 어떠한 요소, 동작 또는 인스트럭션도 명시적으로 기재되어 있지 않는 한 실시예들에 대해 임계적이거나 필수적인 것으로 해석되어서는 안된다. 또한, 본원에 사용된 것처럼, 관사 “a”는 하나 이상의 항목들을 포함하도록 의도된 것이다. 더 나아가, “바탕으로”라는 문구는 명시적으로 다르게 기재되어 있지 않는 한, “적어도 부분적으로 바탕을 두고”를 의미하도록 의도된 것이다.
100 : 분산 제어 시스템 환경 110: 분산 제어 시스템
115 : 시스템 유닛 120 : 네트워크
130 : 관리 장치 210 : 제어기
220 : 주변 인터페이스 230 : 주변 장치
240 : 판독 장치 250 : 잠금 장치
260 : 센서 270 : 구동기

Claims (15)

  1. 분산 시스템 내의 장치가, 상기 분산 시스템 내의 다른 장치가 이용 불가능하게 된 것을 탐지하는 단계;
    상기 장치가, 상기 다른 장치가 이용 불가능하게 된 것을 탐지한 것을 바탕으로 상기 분산 시스템 내에 컨센서스 로스(consensus loss)가 발생한 것으로 결정하는 단계;
    상기 장치가, 상기 분산 시스템 내의 이용 가능한 장치 목록을 생성하는 단계; 및
    상기 장치가, 관리 장치에 경보 메시지를 전송하는 단계를 포함하되,
    상기 경보 메시지는 상기 컨센서스 로스를 가리키며, 상기 이용 가능한 장치 목록을 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  2. 제1항에 있어서,
    상기 장치가 상기 관리 장치로부터 상기 목록에 포함된 상기 이용 가능한 장치들 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하는 인스트럭션을 수신하는 단계; 및
    상기 인스트럭션을 수신한 것에 응답하여 상기 컨센서스 기반 분산 시스템을 생성하는 단계를 더 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  3. 제2항에 있어서,
    상기 컨센서스 기반 분산 시스템을 생성하는 단계는,
    정족수를 생성하기 위해 요구되는 장치의 개수를 선택하는 단계를 포함하되,
    상기 개수는 상기 이용 가능한 장치 중에서 과반수를 회득하기 위해 필요한 장치들의 가장 작은 개수와 일치하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  4. 제1 항 내지 제3항 중 어느 한 항에 있어서,
    상기 이용 가능한 장치 중에서 적어도 일부의 장치에 투표 가중치를 할당하는 단계를 더 포함하되,
    상기 투표 가중치를 할당하는 단계는상기 장치가 상기 생성된 컨센서스 기반 분산 시스템 내에서 정족수를 위해 투표를 할 때, 상기 이용 가능한 장치 중에서 적어도 일부의 다른 장치로부터 수신된 표보다 상기 장치로부터 수신된 표에 더 많은 투표 가중치를 할당하는 단계를 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서 ,
    상기 분산 시스템 내에서 다른 장치가 이용 불가능하게 된 것을 탐지하는 단계는,
    상기 다른 장치에 대한 연결이 끊긴 것을 탐지하는 단계;
    상기 다른 장치로부터 장치 고장의 신호를 수신하는 단계; 또는
    보안 위반과 연관된 상기 다른 장치를 탐지하는 단계 중에서 적어도 어느 하나를 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  6. 제1항 내지 제5항 중에서 어느 한 항에 있어서,
    상기 관리 장치로 상기 경보 메시지를 전송하는 단계는,
    웹 서비스(web service) 메시지를 전송하는 단계;
    이메일(email) 메시지를 상기 관리 장치로 전송하는 단계;
    단문 서비스(SMS; Short Message Service) 메시지를 상기 관리 장치로 전송하는 단계; 또는
    서비스 메시지의 실시간 QoS(Quality of Service)를 상기 관리 장치로 전송하는 단계 중에서 적어도 어느 하나를 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  7. 제2항에 있어서,
    상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여 비상 분산 데이터세트를 생성하는 단계; 및
    상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여, 상기 목록에 포함된 상기 이용 가능한 장치를 포함하는 비상 컨센서스 기반 분산시스템을 생성하는 단계를 더 포함하되,
    상기 비상 분산 데이터세트는 상기 분산 데이터세트를 바탕으로 하며,
    상기 비상 컨센서스 기반 분산시스템은 상기 관리 장치로부터 상기 인스트럭션이 수신되기 전까지 상기 비상 분산 데이터세트를 사용하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  8. 제7항에 있어서,
    상기 컨센서스 기반 분산 시스템을 생성하는 인스트럭션을 수신한 것에 응답하여, 상기 비상 분산 데이터세트를 상기 분산 데이터세트에 통합하는 단계를 더 포함하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 분산 시스템은 분산 신체 출입 제어 시스템을 포함하고,
    상기 장치 및 상기 다른 장치는 신체 출입 제어 유닛에 대응하는,
    분산 시스템 내의 컨센서스 로스 처리 방법.
  10. 분산 시스템을 구성하는 장치에 있어서,
    상기 분산 시스템 내의 다른 장치가 이용 불가능하게 된 것을 탐지하는 탐지부;
    상기 탐지부가 상기 다른 장치가 이용 불가능하게 된 건을 탐지한 것을 바탕으로 상기 분산 시스템 내에 컨센서스 로스가 발생한 것을 결정하는 컨센서스 로스 결정부;
    상기 분산 시스템 내의 이용 가능한 장치의 목록을 생성하는 목록 생성부; 및
    관리 장치에 경보 메시지를 전송하는 경보 전송부를 포함하되,
    상기 경보 메시지는 상기 컨센서스 로스를 가리키고 상기 이용 가능한 장치 목록을 포함하는,
    분산 시스템을 구성하는 장치.
  11. 제10항에 있어서,
    관리 장치로부터, 상기 목록에 포함된 이용 가능한 장치 중에서 적어도 일부를 포함하는 컨센서스 기반 분산 시스템을 생성하기 위한 인스트럭션을 수신하는 수신부; 및
    상기 인스트럭션을 수신한 것에 응답하여 상기 컨센서스 기반 분산 시스템을 생성하는 시스템 생성부를 더 포함하는,
    분산 시스템을 구성하는 장치.
  12. 제11항에 있어서,
    상기 시스템 생성부는,
    정족수를 생성하는데 요구되는 장치의 개수를 선택하되,
    상기 개수는 상기 이용 가능한 장치 중에서 과반수를 획득하기 위해 필요한 장치들의 최소한의 개수와 일치하는,
    분산 시스템을 구성하는 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 시스템 생성부는,
    상기 이용 가능한 장치 중에서 상기 적어도 일부의 장치에 투표 가중치를 할당하되, 상기 장치가 상기생성된 컨센서스 기반 분산 시스템 내에서 정족수를 위해 투표를 할 때, 상기 이용 가능한 장치 중에서 적어도 일부의 다른 장치로부터 수신된 표보다 상기 장치로부터 수신된 표에 더 많은 가중치를 할당하는,
    분산 시스템을 구성하는 장치.
  14. 제11항에 있어서,
    상기 분산 시스템은 분산 데이터세트를 포함하고,
    상기 분산 시스템을 구성 장치는,
    상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여, 상기 분산 데이터세트에 기반한 비상 분산 데이터세트를 생성하는 비상 데이터세트 생성부; 및
    상기 분산 시스템 내에서 컨센서스 로스가 발생한 것으로 결정한 것에 응답하여, 상기 목록에 포함된 상기 이용 가능한 장치를 포함하는 비상 컨센서스 기반 분산 시스템을 생성하는 비상 시스템 생성부를 더 포함하되,
    상기 비상 컨센서스 기반 분산 시스템은 상기 관리 장치로부터 상기 인스트럭션을 수신하기 전까지 상기 비상 분산 데이터세트를 사용하고, 상기 컨센서스 기반 분산 시스템을 생성하는 상기 인스트럭션을 수신하는 것에 응답하여 상기 비상 분산 데이터세트를 상기 분산 데이터세트에 통합하는,
    분산 시스템을 구성하는 장치.
  15. 제10항 내지 제14항 중 어느 한 항에 있어서,
    상기 분산 시스템은 분산 신체 출입 제어 시스템을 포함하고,
    상기 장치 및 상기 다른 장치는 신체 출입 제어 유닛에 대응하는,
    분산 시스템을 구성하는 장치..
KR1020140122303A 2013-09-16 2014-09-15 분산 제어 시스템의 컨센서스 로스 KR101809994B1 (ko)

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 (2)

Publication Number Publication Date
KR20150032200A true KR20150032200A (ko) 2015-03-25
KR101809994B1 KR101809994B1 (ko) 2017-12-18

Family

ID=49263126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140122303A KR101809994B1 (ko) 2013-09-16 2014-09-15 분산 제어 시스템의 컨센서스 로스

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019181149A (ja) * 2018-04-17 2019-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 制御方法、情報処理装置、管理システム、及び、プログラム

Families Citing this family (5)

* 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 西安科技大学 一种分布式的安全管理系统
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019181149A (ja) * 2018-04-17 2019-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 制御方法、情報処理装置、管理システム、及び、プログラム

Also Published As

Publication number Publication date
US20150081805A1 (en) 2015-03-19
TW201528217A (zh) 2015-07-16
KR101809994B1 (ko) 2017-12-18
JP6254499B2 (ja) 2017-12-27
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
EP2849067A1 (en) 2015-03-18
JP2015057692A (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
US10176706B2 (en) Using degree of confidence to prevent false security system alarms
KR101809994B1 (ko) 분산 제어 시스템의 컨센서스 로스
JP6937764B2 (ja) 物理空間へのアクセスを制御するためのシステムおよび方法
US9807161B2 (en) Distributed events in an access control system
US10447334B2 (en) Methods and systems for comprehensive security-lockdown
KR101908988B1 (ko) 어플리케이션 데이터를 관리하는 방법 및 디바이스
US11469789B2 (en) Methods and systems for comprehensive security-lockdown
EP3188148B1 (en) Intrusinon alarm system with learned and dynamic entry delays
KR101757345B1 (ko) 분산형 데이터베이스를 조인하는 디바이스 및 방법
US20230016625A1 (en) Methods and Systems for Comprehensive Security-Lockdown
KR20160041521A (ko) 스마트폰과 차량용 블랙박스를 통합제어하는 시설보안 시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant