KR20150032190A - Method and device for managing application data - Google Patents

Method and device for managing application data Download PDF

Info

Publication number
KR20150032190A
KR20150032190A KR20140121847A KR20140121847A KR20150032190A KR 20150032190 A KR20150032190 A KR 20150032190A KR 20140121847 A KR20140121847 A KR 20140121847A KR 20140121847 A KR20140121847 A KR 20140121847A KR 20150032190 A KR20150032190 A KR 20150032190A
Authority
KR
South Korea
Prior art keywords
data set
application data
application
distributed
distributed system
Prior art date
Application number
KR20140121847A
Other languages
Korean (ko)
Other versions
KR101908988B1 (en
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 KR20150032190A publication Critical patent/KR20150032190A/en
Application granted granted Critical
Publication of KR101908988B1 publication Critical patent/KR101908988B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Selective Calling Equipment (AREA)

Abstract

The present invention relates to a method and a device for managing application data. A device (115) may correspond to a physical access controller (115) in a distributed physical access control system (110). The device in a distributed system may include a logic (210) configured to detect a request from an application to access an application dataset, wherein the application dataset corresponds to a distributed dataset and determine whether the application dataset exists in the distributed system (110). The logic (210) may be further configured to generate the application dataset in the distributed system (110), in response to determining that the application dataset does not exist in the distributed system (110), and send, to other devices (115) in the distributed system, a request to join a dataset group that includes devices (115) associated with the application dataset, in response to determining that the application dataset exists in the distributed system (110).

Description

어플리케이션 데이터를 관리하는 방법 및 디바이스{Method and device for managing application data}METHOD AND DEVICE FOR MANAGING APPLICATION DATA [0002]

본 발명은 접근 제어 시스템에 관한 것으로서, 더욱 상세하게는 접근 제어 시스템에서의 어플리케이션 데이터 관리에 관한 것이다.The present invention relates to an access control system, and more particularly to application data management in an access control system.

분산 시스템은 일련의 작업을 성취하기 위하여 그 동작을 통신하고 조정하는 구성요소를 포함할 수 있다. 예를 들어, 알고리즘 해결을 위한 조정을 수행하기 위하여 분산 시스템의 컴퓨터는 네트워크를 통하여 통신할 수 있다. 데이터 및 자원 관리 또는 프로세싱 단계 동기화와 같은 독립된 컴퓨터에서의 동작을 동시에 성공적으로 조정하기 위하여, 분산 알고리즘의 구현이 필요할 수 있다. 분산 시스템의 구성요소를 조정하기 위하여 다양한 분산 알고리즘이 발전되어 왔다.A distributed system may include components that communicate and coordinate its operations to accomplish a series of tasks. For example, a computer in a distributed system can communicate over a network to perform coordination for algorithm resolution. Implementation of a distributed algorithm may be required to successfully coordinate operations on independent computers simultaneously, such as data and resource management or processing phase synchronization. Various distributed algorithms have been developed to coordinate the components of a distributed system.

본 발명은 접근 제어 시스템에서의 어플리케이션 데이터를 관리하는데 그 목적이 있다.An object of the present invention is to manage application data in an access control system.

본 발명의 실시예에 따라, 분산 시스템의 디바이스에 의하여 수행되는 어플리케이션 데이터를 관리하는 방법은 어플리케이션 데이터세트로 접근하는 어플리케이션에 의한 요청을 상기 디바이스가 감지하는 단계로서, 상기 어플리케이션 데이터세트는 분산 데이터세트에 대응하고; 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는지를 상기 디바이스가 판단하는 단계; 상기 어플리케이션 데이터세트가 상기 분산 시스템 데이터세트에 존재하는 것으로 판단한 것에 대한 응답으로 상기 디바이스가 상기 분산 시스템에 상기 어플리케이션 데이터세트를 생성하는 단계; 및 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는 것으로 판단한 것에 대한 응답으로, 상기 어플리케이션 데이터세트와 관련된 디바이스를 포함하는 데이터세트 그룹으로의 참여 요청을 상기 디바이스가 상기 분산 시스템의 다른 디바이스에게 송신하는 단계를 포함한다.According to an embodiment of the present invention, a method of managing application data performed by a device in a distributed system includes the step of the device detecting a request by an application accessing an application data set, ; Determining by the device whether the application data set is present in the distributed system; The device generating the application data set in the distributed system in response to determining that the application data set is present in the distributed system data set; And sending, in response to determining that the application data set is present in the distributed system, a request for participation in a data set group including a device associated with the application data set to the other device in the distributed system .

또한, 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는지를 상기 디바이스가 판단하는 단계는 상기 분산 시스템 데이터세트에 있는 분산 데이터세트의 식별자 리스트에 접근하는 단계; 및 상기 분산 데이터세트의 식별자에 대한 리스트가 상기 요청된 어플리케이션 데이터세트에 대한 식별자를 포함하는지 판단하는 단계를 포함한다.In addition, the step of the device determining if the application data set is present in the distributed system includes accessing an identifier list of the distributed data set in the distributed system data set; And determining whether the list of identifiers of the distributed data set includes an identifier for the requested application data set.

또한, 본 발명의 실시예에 따른 방법은 상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가하는 단계를 포함할 수 있다.The method according to an embodiment of the present invention may further include adding information of the application to the generated application data set in response to generating the application data set.

또한, 본 발명의 실시예에 따른 방법은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하는 단계; 상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하는 단계; 및 상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장하는 단계를 포함할 수 있다.Further, a method according to an embodiment of the present invention includes receiving a notification from another device in the distributed system that the device is added to the data set group; Receiving the application data set from the other device in the distributed system; And storing the received application data set in the device.

또한, 상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 상기 방법은 상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하는 단계; 상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하는 단계; 상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하는 단계를 더 포함할 수 있다.In addition, the received application data set includes a list of the devices that are members of the data set group, the method further comprising: providing the device with a suggestion to the device that is a member of the data set group to add application data to the application data set Transmitting; Obtaining an agreement to add the application data to the application data set in response to sending the suggestion; And adding the application data to the application data set in response to obtaining the agreement.

또한, 본 발명의 실시예에 따른 방법은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하는 단계; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계; 및 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계를 포함할 수 있다.In addition, the method according to an embodiment of the present invention includes: receiving a request for participation from another device in the distributed system into a data set group of a device related to the generated application data set; Obtaining an agreement on adding the other device to a data set group of the device associated with the generated application data set; And in response to obtaining an agreement to add the other device to a data set group of the device associated with the generated application data set, And the like.

또한, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계는 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스에게 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로 상기 다른 디바이스를 추가하는 것에 대한 제안을 송신하는 단계; 및 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 표결의 정족수를 획득하는 단계를 포함할 수 있다.In addition, the step of acquiring an agreement on adding the other device to the data set group of the device related to the generated application data set may include acquiring the agreement of the device related to the created application data set Sending a suggestion for adding the other device to a data set group; And obtaining a quorum of voting for adding the other device to a data set group of the device associated with the generated application data set.

또한, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계는 상기 다른 디바이스로 상기 어플리케이션 데이터세트를 송신하는 단계; 및 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 대한 합의에 요구되는 정족수를 조정하는 단계를 포함할 수 있다.The step of adding the another device to a data set group of a device associated with the generated application data set may include: transmitting the application data set to the another device; And adjusting a quorum required for agreement on the data set group of the device associated with the generated application data set.

또한, 본 발명의 실시예에 따른 방법은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트의 어플리케이션 데이터에 대한 변경 요청을 수신하는 단계; 및 상기 생성된 어플리케이션 데이터세트의 상기 어플리케이션 데이터를 변경하라는 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트의 상기 어플리케이션 데이터를 변경하는 단계를 포함할 수 있다.The method may further include receiving a change request for application data of the generated application data set from another device in the distributed system; And modifying the application data of the generated application data set in response to obtaining an agreement to change the application data of the generated application data set.

또한, 본 발명의 실시예에 따른 방법은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에서의 제거 요청을 수신하는 단계; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거하라는 합의를 획득하는 단계; 및 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거하라는 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거하는 단계를 포함할 수 있다.In addition, the method according to an embodiment of the present invention includes: receiving a removal request in a data set group of a device related to the generated application data set from another device in the distributed system; Obtaining an agreement to remove the other device from the data set group of the device associated with the generated application data set; And removing the other device from the data set group of the device associated with the generated application data set in response to obtaining an agreement to remove the other device from the data set group of the device associated with the generated application data set Step < / RTI >

또한, 상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응한다.Further, the distributed system includes a distributed physical access control system, and the device and the other device correspond to a physical access control unit.

본 발명의 다른 실시예에 따른 어플리케이션 데이터를 관리하는 디바이스는 어플리케이션 데이터세트로 접근하는 어플리케이션에 의한 요청을 감지하되, 여기서 상기 어플리케이션 데이터세트는 분산 데이터세트에 대응하고; 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는지를 판단하고; 상기 어플리케이션 데이터세트가 상기 분산 시스템 데이터세트에 존재하는 것으로 판단한 것에 대한 응답으로 상기 분산 시스템에 상기 어플리케이션 데이터세트를 생성하며; 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는 것으로 판단한 것에 대한 응답으로, 상기 어플리케이션 데이터세트와 관련된 디바이스를 포함하는 데이터세트 그룹으로의 참여 요청을 상기 분산 시스템의 다른 디바이스에게 송신하는 로직을 포함할 수 있다.A device for managing application data according to another embodiment of the present invention detects a request by an application accessing an application data set, wherein the application data set corresponds to a distributed data set; Determine whether the application data set is present in the distributed system; Generate the application data set in the distributed system in response to determining that the application data set is present in the distributed system data set; In response to determining that the application data set is present in the distributed system, sending a join request to a data set group that includes a device associated with the application data set to another device in the distributed system have.

또한, 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는 것으로 상기 로직이 판단한 경우, 추가적으로 상기 로직은 상기 분산 시스템 데이터세트에 있는 분산 데이터세트의 식별자 리스트에 접근하고; 상기 분산 데이터세트의 리스트가 상기 요청된 어플리케이션 데이터세트에 대한 식별자를 포함하는지 판단할 수 있다.In addition, if the logic determines that the application data set is present in the distributed system, the logic further accesses an identifier list of the distributed data set in the distributed system data set; And determine whether the list of distributed data sets includes an identifier for the requested application data set.

또한, 추가적으로 상기 로직은 상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가할 수 있다.Additionally, the logic may add information of the application to the generated application data set in response to generating the application data set.

또한, 추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하고; 상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하며; 상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장할 수 있다.Additionally, the logic further receives a notification from another device in the distributed system that the device is being added to the data set group; Receive the application data set from the other device in the distributed system; The received application data set may be stored in the device.

또한, 상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 추가적으로 상기 로직은 상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하고; 상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하며; 상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가할 수 있다.In addition, the received application data set includes a list of the devices that are members of the data set group, and further wherein the logic is configured to provide the device with the application data set as a member of the data set group ; Obtain an agreement to add the application data to the application data set in response to sending the suggestion; In response to obtaining the agreement, the application data may be added to the application data set.

또한, 추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하고; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하며; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가할 수 있다.Additionally, the logic further receives a request for participation from another device in the distributed system into a data set group of the device associated with the generated application data set; Obtain an agreement on adding the other device to a data set group of the device associated with the generated application data set; In response to obtaining an agreement on adding the other device to the data set group of the device associated with the generated application data set, adding the other device to the data set group of the device related to the generated application data set can do.

또한, 추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에서의 제거 요청을 수신하고; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거하라는 합의를 획득하며; 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거하라는 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로부터 상기 다른 디바이스를 제거할 수 있다.Additionally, the logic further comprises receiving from another device in the distributed system a removal request in the data set group of the device associated with the generated application data set; Obtain an agreement to remove the other device from the data set group of the device associated with the generated application data set; In response to obtaining an agreement to remove the other device from the device data set group associated with the generated application data set, removing the other device from the data set group of the device associated with the generated application data set have.

또한, 상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응한다.Further, the distributed system includes a distributed physical access control system, and the device and the other device correspond to a physical access control unit.

본 발명의 또 다른 실시예에 따른 분산 시스템은 복수의 물리 접근 제어 디바이스를 포함할 수 있는데, 여기서 상기 복수의 물리 접근 제어 디바이스 중 특정 하나는 어플리케이션 데이터세트로 접근하는 어플리케이션에 의한 요청을 감지하되, 여기서 상기 어플리케이션 데이터세트는 분산 데이터세트에 대응하고; 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는지를 판단하고; 상기 어플리케이션 데이터세트가 상기 분산 시스템 데이터세트에 존재하는 것으로 판단한 것에 대한 응답으로 상기 분산 시스템에 상기 어플리케이션 데이터세트를 생성하며; 상기 어플리케이션 데이터세트가 상기 분산 시스템에 존재하는 것으로 판단한 것에 대한 응답으로, 상기 어플리케이션 데이터세트와 관련된 디바이스를 포함하는 데이터세트 그룹으로의 참여 요청을 상기 분산 시스템의 다른 디바이스에게 송신하는 로직을 포함할 수 있다.A distributed system according to another embodiment of the present invention may include a plurality of physical access control devices, wherein a specific one of the plurality of physical access control devices detects a request by an application accessing an application data set, Wherein the application data set corresponds to a distributed data set; Determine whether the application data set is present in the distributed system; Generate the application data set in the distributed system in response to determining that the application data set is present in the distributed system data set; In response to determining that the application data set is present in the distributed system, sending a join request to a data set group that includes a device associated with the application data set to another device in the distributed system have.

도 1은 본 발명의 실시예에 따른 예시적인 환경을 나타낸 블록도이다.
도 2는 도 1에 도시된 분산 시스템 유닛의 예시적인 구성요소를 나타낸 블록도이다.
도 3a 및 도 3b는 도 1에 도시된 분산 시스템 유닛의 예시적인 기능적 구성요소를 나타낸 블록도이다.
도 4a는 도 3b에 도시된 시스템 데이터세트에 저장될 수 있는 예시적인 정보를 나타낸 도면이다.
도 4b는 도 3b에 도시된 어플리케이션 데이터세트에 저장될 수 있는 예시적인 정보를 나타낸 도면이다.
도 5는 본 발명의 하나 이상의 실시예에 따라 분산 제어 시스템의 데이터세트 그룹에 참여하거나 어플리케이션 데이터세트에 접근하는 것을 나타낸 흐름도이다.
도 6은 본 발명의 하나 이상의 실시예에 따라 분산 제어 시스템의 어플리케이션 데이터세트에 어플리케이션 데이터를 추가하는 것을 나타낸 흐름도이다.
도 7은 본 발명의 하나 이상의 실시예에 따라 분산 제어 시스템의 어플리케이션 데이터세트와 관련된 데이터세트 그룹에 시스템 유닛이 추가되도록 하는 요청을 처리하는 것을 나타낸 흐름도이다.
도 8은 도 1에 도시된 분산 제어 시스템의 예시적인 물리 레이아웃을 나타낸 평면도이다.
도 9는 도 1에 도시된 분산 시스템의 예시적인 물리 레이아웃을 나타낸 평면도이다.
도 10a 내지 도 10c는 본 발명의 하나 이상의 실시예에 따라 예시적 어플리케이션 데이터세트의 시나리오를 나타낸 도면이다.
1 is a block diagram illustrating an exemplary environment in accordance with an embodiment of the present invention.
2 is a block diagram illustrating exemplary components of the distributed system unit shown in FIG.
Figs. 3A and 3B are block diagrams illustrating exemplary functional components of the distributed system unit shown in Fig. 1. Fig.
FIG. 4A is a diagram illustrating exemplary information that may be stored in the system data set shown in FIG. 3B.
FIG. 4B is a diagram illustrating exemplary information that may be stored in the application data set shown in FIG. 3B.
5 is a flow diagram illustrating accessing or participating in a data set group of a distributed control system in accordance with one or more embodiments of the present invention.
6 is a flow diagram illustrating adding application data to an application data set of a distributed control system in accordance with one or more embodiments of the present invention.
7 is a flow diagram illustrating processing a request to add a system unit to a data set group associated with an application data set of a distributed control system in accordance with one or more embodiments of the present invention.
8 is a plan view showing an exemplary physical layout of the distributed control system shown in Fig.
9 is a plan view showing an exemplary physical layout of the distributed system shown in FIG.
Figures 10A-10C illustrate scenarios of an exemplary application data set in accordance with one or more embodiments of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 서로 다른 도면에 포함된 동일 참조 부호는 동일 또는 유사한 구성요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference symbols in different drawings designate the same or similar elements.

분산 제어 시스템은 분산 물리 접근 제어 시스템을 포함할 수 있다. 물리 접근 제어 시스템은 하나 이상의 접근 제어 유닛을 포함할 수 있는데, 각 접근 제어 유닛은 시설의 영역으로의 물리적 접근을 제어한다. 예를 들어, 접근 제어 유닛은 사용자로부터 인증서를 획득하고, 사용자의 인증서가 인증된 경우 도어의 잠금을 해제할 수 있다. 다른 실시예에 따르면, 분산 제어 시스템은 분산 빌딩 관리 시스템, 분산 모니터링 시스템, 분산 보안 시스템 및/또는 다른 종류의 분산 제어 시스템을 포함할 수 있다.The distributed control system may include a distributed physical access control system. The physical access control system may include one or more access control units, each access control unit controlling physical access to the area of the facility. For example, the access control unit may obtain a certificate from the user and unlock the door if the user's certificate is authentic. According to another embodiment, the distributed control system may include a distributed building management system, a distributed monitoring system, a distributed security system, and / or other types of distributed control systems.

분산 제어 시스템은 분산 알고리즘을 이용하여 분산 컴퓨팅 동작을 수행할 수 있다. 예를 들어, 분산 제어 시스템은 분산 데이터베이스를 관리할 수 있다. 분산 알고리즘은 합의 기반일 수 있다. 합의 알고리즘은 동작이 수행되기 이전에 분산 시스템에 있는 노드간의 합의를 성취하는데 이용된다. 예를 들어, 일 실시예에 다르면 분산 데이터세트를 업데이트하기 위하여, 분산 시스템에 있는 노드들은 업데이트를 수행하기 위하여 합의하여야 한다. 합의는 제안된 동작(예를 들어, 분산 데이터베이스에 대한 변경)에 (예를 들어, 모두, 정족수만큼) 동의하는 노드에 대응한다. 제안된 동작에 대한 정족수가 획득된 경우 합의에 이를 수 있다. 노드의 대다수가 제안된 동작에 동의하는 경우 합의에 이를 수 있다. 변경에 동의하는 대다수의 노드를 요구함에 따라, 예를 들어 2개의 충돌하는 제안된 변경이 고려될 때, 적어도 하나의 노드가 2개의 제안된 변경을 수신하고, 먼저 수신된 제안 변경을 선택하고 동의하는 것이 보장된다. 다른 실시예에 따르면, 노드는 제안된 변경 중 하나를 선택하고 동의함에 있어서 (먼저 수신된 제안 변경에 따른 것이 아닌) 다른 기준을 이용할 수 있다.The distributed control system can perform distributed computing operations using a distributed algorithm. For example, a distributed control system can manage a distributed database. The distributed algorithm may be a consensus-based. The consensus algorithm is used to achieve agreement between nodes in the distributed system before the operation is performed. For example, in one embodiment, in order to update a distributed data set, the nodes in the distributed system must agree to perform the update. The agreement corresponds to a node that agrees with the proposed action (e.g., a change to the distributed database) (e.g., by a quorum). If a quorum for the proposed action is obtained, it can reach agreement. A consensus can be reached if the majority of the nodes agree with the proposed operation. Upon requesting a majority of nodes agreeing to a change, for example, when two conflicting proposed changes are considered, at least one node receives two proposed changes, first selects a proposed change to be received, . According to another embodiment, the node may select one of the proposed changes and use other criteria in agreeing (rather than according to a previously received proposal change).

분산 데이터세트는 분산 시스템에 있는 노드 중 적어도 일부에 의하여 이용될 수 있다. 예를 들어, 어플리케이션은 어플리케이션 분산 데이터세트를 이용하고, 어플리케이션은 분산 시스템에 있는 노드 중 적어도 일부에 설치될 수 있다. 특정 어플리케이션 데이터세트를 이용하는 노드 중 적어도 일부는 이하 데이터세트 그룹이라 한다. 본 발명에서 제시되는 구현 예들은 특정 어플리케이션과 관련된 분산 데이터세트를 관리하는 것에 관한 것이다. 분산 시스템에 있는 디바이스는 어플리케이션과 관련된 분산 데이터세트에 대응하는 어플리케이션 데이터세트로 접근하는 어플리케이션으로부터의 요청을 감지하고, 어플리케이션 데이터세트가 분산 시스템에 존재하는지를 판단할 수 있다. 어플리케이션 데이터세트가 존재하지 않는 경우 어플리케이션 데이터세트가 생성될 수 있다. 어플리케이션 데이터세트가 존재하는 경우, 어플리케이션 데이터세트와 관련된 디바이스를 포함하는 데이터세트 그룹으로의 참여 요청이 분산 시스템에 있는 다른 디바이스로 송신될 수 있다.The distributed data set may be used by at least some of the nodes in the distributed system. For example, an application may use an application distributed data set, and an application may be installed in at least some of the nodes in the distributed system. At least some of the nodes using the specific application data set are referred to as data set groups hereinafter. Implementations presented in the present invention are directed to managing distributed data sets associated with a particular application. A device in the distributed system may detect a request from an application accessing an application data set corresponding to a distributed data set associated with the application and determine whether the application data set is present in the distributed system. If there is no application data set, an application data set can be created. If an application data set is present, a request to join a data set group containing a device associated with the application data set may be sent to another device in the distributed system.

분산 시스템에 있는 다른 디바이스는 데이터세트 그룹에 추가되고자 하는 요청 디바이스로부터 요청을 수신하고, 요청 디바이스를 데이터세트 그룹에 추가하는 것에 대한 제안을 발생시킬 수 있다. 데이터세트 그룹에 있는 다른 디바이스는 제안에 동의할 수 있으며, 합의에 이른 경우 요청 디바이스는 데이터세트 그룹에 추가될 수 있게 된다. 그리하여, 요청 디바이스는 데이터세트 그룹과 관련된 어플리케이션 데이터세트를 수신하고, 및/또는 데이터세트 그룹과 관련된 어플리케이션 데이터세트에 어플리케이션을 추가하거나 및/또는 다른 변경이 반영되도록 할 것을 제안할 수 있다.Another device in the distributed system may receive a request from a requesting device to be added to the data set group and generate a suggestion to add the requesting device to the data set group. Other devices in the data set group can agree on the proposal, and when the agreement is reached, the request device can be added to the data set group. Thus, the requesting device may suggest receiving an application data set associated with a data set group, and / or adding an application to the application data set associated with the data set group and / or other changes to be reflected.

도 1은 아래에 설명된 시스템 및/또는 방법이 구현되는 예시적인 환경을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 환경(100)은 분산 제어 시스템(100)(예를 들어, 분산 물리 접근 제어 시스템), 네트워크(120) 및 관리 디바이스(130)를 포함할 수 있다.1 is a block diagram illustrating an exemplary environment in which the systems and / or methods described below are implemented. The environment 100 may include a distributed control system 100 (e.g., a distributed physical access control system), a network 120, and a management device 130, as shown in FIG.

분산 제어 시스템(DCS; Distributed Control System)(110)은 시스템 유닛들(115-A 내지 115-N)(집합적으로 "시스템 유닛들(115)"이라 하고, 개별적으로 "시스템 유닛(115)"이라 한다)을 포함하는 분산 연산 시스템을 포함할 수 있다. 시스템 유닛(115)는 임베디스 시스템으로 구현될 수 있다. 몇몇 구현에서 시스템 유닛(115)는 물리 접근 제어 디바이스를 포함할 수 있다. 예를 들어, 시스템 유닛(115)은 룸(room) 또는 그룹으로 이루어진 룸과 같은 보안 영역으로의 접근을 제어하는 접근 제어기를 포함할 수 있다. 시스템 유닛(115)는 리더 디바이스를 통하여 인증서(예를 들어, 접근 카드 인증서)를 수신하고, 인증서가 진짜이고 보안 영역으로의 접근 권한이 있는 것인지 판단할 수 있다. 만일 그렇다면, 접근 제어기는 도어에 대한 잠금을 해제하는 명령을 발행하거나 보안 영역으로의 접근을 허용하기 위한 다른 동작을 수행할 수 있다. 다른 실시예에 따르면, 시스템 유닛(115)은 모니터링 디바이스, 기계의 동작을 제어하는 디바이스와 같은 서로 다른 종류의 보안 디바이스를 포함할 수 있다. 다른 실시예에 따르면, 시스템 유닛(115)은 또 다른 종류의 임베디드 시스템을 포함할 수 있다.Distributed control system (DCS) 110 includes system units 115-A to 115-N (collectively referred to as "system units 115" and individually referred to as "system units 115" And a distributed computing system including the distributed computing system. The system unit 115 may be implemented as an embedded system. In some implementations, the system unit 115 may include a physical access control device. For example, the system unit 115 may include an access controller that controls access to a secure area, such as a room or a group of rooms. The system unit 115 may receive a certificate (e.g., an access card certificate) via the reader device and determine whether the certificate is authentic and authorized to access the secure area. If so, the access controller may issue a command to unlock the door or perform other actions to allow access to the secure area. According to another embodiment, the system unit 115 may comprise a different kind of secure device, such as a monitoring device, a device that controls the operation of the machine. According to another embodiment, the system unit 115 may include another type of embedded system.

분산 제어 시스템(110)은 하나 이상의 분산 데이터세트를 포함할 수 있다. 분산 데이터세트는 다수의 디바이스와 관련된 데이터세트를 포함한다. 일 실시예에 따르면, 다수의 디바이스는 데이터세트에 대한 변경을 위하여 상호간에 통신하고 조정한다. 몇몇 구현에서 분산 데이터세트는 분산 데이터세트와 관련된 각 디바이스에 의하여 보관되고, 디바이스들에 의한 변경 동의가 있으면 각 디바이스에 의하여 분산 데이터세트에 대한 변경이 적용된다. 다른 실시예에 따르면, 분산 데이터세트와 관련된 모든 디바이스가 실제 분산 데이터세트를 저장하는 것은 아니다.The distributed control system 110 may include one or more distributed data sets. A distributed data set includes a data set associated with a plurality of devices. According to one embodiment, multiple devices communicate and coordinate with each other for changes to the data set. In some implementations, the distributed data set is maintained by each device associated with the distributed data set, and changes to the distributed data set are applied by each device if there is a change agreement by the devices. According to another embodiment, not all devices associated with a distributed data set store actual distributed data sets.

몇몇 실시예에 따르면, 분산 데이터세트(예를 들어, 합의 기반의 분산 데이터베이스)에 대한 변경을 수행하기 위하여 합의에 이르게 된다. 다른 실시예에 따르면, 합의 없이 분산 데이터세트에 대한 변경이 수행될 수 있다. 분산 데이터세트는 모든 시스템 유닛들(115)과 관련되거나 시스템 유닛들(115)의 서브셋과 관련될 수 있다. 시스템 유닛(115)은 합의 기반의 분산 데이터세트의 변경을 제안할 수 있다. 분산 데이터세트와 관련된 시스템 유닛들(115)의 정족수에 의하여 변경이 수용되면, 합의에 이를 수 있게 되고, 각 관련 시스템 유닛(115)의 분산 데이터세트로 변경이 전파될 수 있다. 따라서, 관련 시스템 유닛들(115)의 정족수가 변경에 동의하면, 분산 데이터세트의 변경에 대한 합의에 이를 수 있게 된다. 정족수는 관련 시스템 유닛들(115)의 최소 다수(smallest majority)에 대응할 수 있다. 따라서, 분산 데이터세트가 N개의 시스템 유닛들(115)과 관련된 경우 N/2+1개의 관련 시스템 유닛들(115)이 변경에 동의하고 N이 짝수이거나, (N-1)/2+1개의 관련 시스템 유닛들(115)이 변경에 동의하고 N이 홀수이면 정족수를 만족한다. 정족수를 만족하기 위하여 최소 다수를 요구함에 따라 2개의 상충되는 제안이 고려될 때 적어도 하나의 시스템 유닛(115)이 2개의 제안을 수신하고 합의에 따라 제안들 중 하나를 선택할 수 있게 된다. 몇몇 실시예에 따르면, 시스템 유닛(115)은 첫 번째로 수신한 제안을 선택한다. 다른 실시예에 따르면, 제안은 다른 기준이 이용되어 선택될 수 있다.According to some embodiments, an agreement is reached to effect a change to a distributed data set (e. G., A consensus-based distributed database). According to another embodiment, changes to the distributed data set may be performed without consensus. The distributed data set may be associated with all system units 115 or with a subset of system units 115. The system unit 115 may propose a change of the distributed data set based on the agreement. Once a change is accepted by the quorum of the system units 115 associated with the distributed data set, an agreement can be reached and the change propagated to the distributed data set of each associated system unit 115. Thus, if the quorum of the associated system units 115 agrees with the change, it is possible to reach an agreement on the change of the distributed data set. A quorum may correspond to a smallest majority of the associated system units 115. Thus, if the distributed data set is associated with N system units 115, then N / 2 + 1 associated system units 115 will agree with the change and N is even, or (N-1) / 2 + If the associated system units 115 agree to a change and N is odd, then a quorum is satisfied. As a minimum number of quorums is required to satisfy the quorum, at least one system unit 115 receives two proposals when two conflicting proposals are considered and is able to select one of the proposals as agreed upon. According to some embodiments, the system unit 115 selects the first received proposal. According to another embodiment, the proposal may be selected using different criteria.

몇몇 실시예에 따르면, 분산 데이터세트와 관련된 모든 시스템 유닛들(115)은 분산 데이터세트를 저장할 수 있다. 예를 들어, 분산 데이터세트는 접근 규칙을 포함할 수 있는데, 접근 규칙은 분산 데이터세트와 관련된 모든 시스템 유닛에게 유효할 수 있다. 따라서, 일 실시예에 따르면 하나 이상의 분산 데이터세트의 결과에 따라 분산 제어 시스템(110)은 서버 디바이스와 같은 중앙 제어 디바이스가 아닌 분권화된 시스템에 대응할 수 있다. 다른 실시예에 따르면, 분산 제어 시스템(110)은 분권화된 시스템 및 (서버 디바이스와 같은) 중앙 제어 디바이스를 모두 포함할 수 있다. 일 실시예에 따르면, 분산 데이터세트에 대한 변경은 어떠한 시스템 유닛(115)에 의해서도 설정될 수 있고, 분산 데이터세트와 관련된 다른 시스템 유닛들(115)에게 전파될 수 있다. 또한, 단일 지점에서의 오류가 방지될 수 있는 것과 같이, 분산 제어 시스템(110)은 디바이스 오류에 대한 강인함을 나타낼 수 있다. 예를 들어, 특정 시스템 유닛(115)이 오동작하면 다른 시스템 유닛들(115)은 데이터의 손실 없이(또는 최소한의 데이터 손실로) 동작을 지속할 수 있다. 또한, 분산 제어 시스템(110)은 동적으로 변경될 수 있다. 예를 들어, 어플리케이션은 어느 시점에서도 추가될 수 있고, 새로운 데이터세트는 필요한 만큼 시스템 유닛들(115)에 저장될 수 있다. 다른 실시예에 따르면, 분산 데이터세트와 관련된 모든 시스템 유닛들(115)이 분산 데이터세트를 저장하는 것은 아니다.According to some embodiments, all system units 115 associated with a distributed data set may store a distributed data set. For example, a distributed data set may include access rules, which may be valid for all system units associated with a distributed data set. Thus, according to one embodiment, the distributed control system 110 may correspond to a decentralized system other than a central control device such as a server device, depending on the result of one or more distributed data sets. According to another embodiment, the distributed control system 110 may include both a decentralized system and a central control device (such as a server device). According to one embodiment, changes to the distributed data set may be set by any system unit 115 and propagated to other system units 115 associated with the distributed data set. Also, as errors at a single point can be prevented, the distributed control system 110 can exhibit robustness to device errors. For example, if a particular system unit 115 malfunctions, other system units 115 may continue to operate without loss of data (or with minimal data loss). In addition, the distributed control system 110 may be dynamically changed. For example, an application may be added at any time, and a new data set may be stored in the system units 115 as needed. According to another embodiment, not all system units 115 associated with a distributed data set store a distributed data set.

분산 데이터 시스템(110)은 또한 분산되지 않은 데이터세트를 포함할 수 있다. 예시적인 것으로서, 제 1 시스템 유닛(115)은 다른 시스템 유닛(115) 어디에도 포함되어 있지 않은 로컬 데이터세트를 포함할 수 있다. 다른 예시적인 것으로서, 제 1 시스템 유닛(115)은 미러링(mirroring)과 같이 비분산 형태의 제 2 시스템 유닛(115)으로 복제된 로컬 데이터세트를 포함할 수 있다. 또 다른 예시적인 것으로서, 제 1 시스템 유닛(115)은 제 1 버전의 로컬 데이터세트를 포함할 수 있고, 제 2 시스템 유닛(115)은 제 2 버전의 로컬 데이터세트를 포함할 수 있는데, 여기서 제 1 시스템 유닛(115)은 제 1 버전의 로컬 데이터세트를 보관하고, 제 2 시스템 유닛(115)은 제 2 버전의 로컬 데이터세트를 보관한다. 또 다른 예시적인 것으로서, 제 1 시스템 유닛(115)은 분산 데이터세트에서 제 1 로컬 데이터세트를 추출하고, 제 2 시스템 유닛(115)은 분산 데이터세트에서 제 2 로컬 데이터세트를 추출할 수 있는데, 여기서 제 1 로컬 데이터세트는 제 2 로컬 데이터세트와 상이한 것이다. The distributed data system 110 may also include non-distributed data sets. By way of example, the first system unit 115 may include a local data set that is not included anywhere else in the other system units 115. As another example, the first system unit 115 may comprise a local data set replicated in a second system unit 115 in a non-distributed form, such as mirroring. As another example, the first system unit 115 may comprise a first version of the local data set and the second system unit 115 may comprise a second version of the local data set, 1 system unit 115 stores the first version of the local data set and the second system unit 115 stores the second version of the local data set. As another example, the first system unit 115 may extract a first set of local data from a set of distributed data and the second system unit 115 may extract a second set of local data from the set of distributed data, Wherein the first local data set is different from the second local data set.

네트워크(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), 애드혹(adhoc) 네트워크, 인트라넷(intranet), 인터넷(Internet), 광섬유(fiber optic) 기반 네트워크, 무선 네트워크 및/또는 이러한 네트워크 또는 다른 네트워크간의 조합을 포함할 수 있다.The network 120 allows the system units 115 to communicate with each other and the management device 130 to communicate with specific system units 115. The network 120 may include one or more circuit-switched networks and / or a packet-switched network. For example, the network 120 may be a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a public switched telephone network (PSTN) ), An ad hoc network, an intranet, the Internet, a fiber optic based network, a wireless network, and / or a combination of such networks or other networks.

관리 디바이스(130)는 관리자로 하여금 특정 시스템 유닛(115)에 연결하여 분산 제어 시스템(110)을 설정하고, 분산 제어 시스템(110)의 설정을 변경하고, 분산 제어 시스템(110)으로부터 정보를 수신하며, 그리고/또는 분산 제어 시스템(110)을 관리할 수 있도록 한다. 관리 디바이스(130)는 하나 이상의 시스템 유닛들(115)과의 통신을 위하여 설정된 어떠한 디바이스라도 포함할 수 있다. 예를 들어, 관리 디바이스(130)는 휴대용 통신 디바이스(예를 들어, 휴대폰, 스마트폰, 패블릿 디바이스(phablet device), GPS(Global Positioning System) 디바이스, 및/또는 다른 종류의 무선 디바이스); 개인용 컴퓨터 또는 워크스테이션; 서버 디바이스; 랩탑; 태블릿, 또는 다른 종류의 휴대용 컴퓨터; 및/또는 통신 기능을 구비한 특정 종류의 디바이스를 포함할 수 있다.The management device 130 may allow the administrator to establish a distributed control system 110 by connecting to a particular system unit 115 and to change the settings of the distributed control system 110 and receive information from the distributed control system 110 And / or to manage the distributed control system 110. The management device 130 may include any device configured for communication with one or more system units 115. For example, the management device 130 may be a portable communication device (e.g., a cell phone, a smart phone, a phablet device, a Global Positioning System (GPS) device, and / or other types of wireless devices); A personal computer or workstation; Server device; laptop; Tablet, or other type of portable computer; And / or certain types of devices with communication capabilities.

도 1이 환경(100)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 환경(100)은 도 1에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 다르게 배치된 구성요소, 또는 추가 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 환경(100)(또는 디바이스들의 그룹)에 포함된 디바이스는 환경(100) 내에서 하나 이상의 다른 디바이스에 의하여 수행되도록 명시된 기능을 수행할 수 있다. 예를 들어, 몇몇 실시예에 따르면 시스템 유닛들(115)은 입력 및/또는 출력 디바이스(예를 들어, 키보드/키패드 및 디스플레이, 터치스크린 등)를 포함하고, 관리 디바이스(130)는 필요하지 않을 수 있다.Although FIG. 1 illustrates exemplary components of environment 100, according to another embodiment, environment 100 may include fewer components, different components, differently arranged components, or different components, Additional components may be included. Additionally or alternatively, a device included in the environment 100 (or group of devices) may perform the specified function to be performed by one or more other devices within the environment 100. For example, according to some embodiments, the system units 115 include input and / or output devices (e.g., keyboard / keypad and display, touch screen, etc.) .

도 2는 시스템 유닛(115)의 예시적인 구성요소를 나타낸 블록도이다. 도 2에 도시된 바와 같이, 시스템 유닛(115)은 제어기(210) 및 하나 이상의 주변 디바이스(230)를 포함할 수 있다. 제어기(210)는 시스템 유닛(115)의 동작을 제어하고 다른 시스템 유닛들(115)과 통신하고, 관리 디바이스(130)와 통신하고, 그리고/또는 주변 디바이스(230)를 제어할 수 있다. 제어기(210)는 버스(212), 프로세서(214), 메모리(216), 네트워크 인터페이스(218), 주변기기 인터페이스(220) 및 하우징(222)을 포함할 수 있다.FIG. 2 is a block diagram illustrating exemplary components of the system unit 115. FIG. As shown in FIG. 2, the system unit 115 may include a controller 210 and one or more peripheral devices 230. The controller 210 may control the operation of the system unit 115 and may communicate with other system units 115, communicate with the management device 130 and / or control the peripheral device 230. The controller 210 may include a bus 212, a processor 214, a memory 216, a network interface 218, a peripheral interface 220 and a housing 222.

버스(212)는 제어기(210)의 구성요소간 통신을 가능하게 하는 경로를 포함할 수 있다. 프로세서(214)는 명령을 인터프리트하고 실행하는 소정 종류의 싱글 코어 프로세서, 멀티 코어 프로세서, 마이크로 프로세서, 래치 기반 프로세서(latch-based processor), 및/또는 처리 로직 (또는, 프로세서, 마이크로 프로세서, 및/또는 처리 로직의 패밀리)를 포함할 수 있다. 다른 실시예에 따르면, 프로세서(214)는 ASIC(Application-Specific Integrated Circuit), FPGA(Field-Programmable Gate Array), 및/또는 다른 종류의 집적 회로 또는 처리 로직을 포함할 수 있다.The bus 212 may include a path that enables communication between the components of the controller 210. The processor 214 may be any type of single-core processor, a multicore processor, a microprocessor, a latch-based processor, and / or processing logic (or a processor, / RTI > and / or a family of processing logic). According to another embodiment, the processor 214 may include an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or other types of integrated circuit or processing logic.

메모리(216)는 프로세서(214)에 의하여 실행되는 정보 및/또는 명령을 저장하는 소정 종류의 동적 저장 디바이스 및/또는 프로세서(214)에 의하여 이용되는 정보를 저장하는 비휘발성 저장 디바이스를 포함할 수 있다. 예를 들어, 메모리(216)는 램(RAM; Random Access Memory) 또는 다른 종류의 동적 저장 디바이스, 롬(ROM; Read-Only Memory) 디바이스 또는 다른 종류의 정적 저장 디바이스, 내용 주소화 기억 장치(CAM; Content Addressable Memory), 자기 및/또는 광학 저장 메모리 디바이스 및 그 대응하는 드라이브(예를 들어, 하드 디스크 드라이브, 광학 드라이브 등), 및/또는 플래시 메모리와 같은 삭제 가능 형태의 메모리를 포함할 수 있다.The memory 216 may include any type of dynamic storage device that stores information and / or instructions executed by the processor 214 and / or a non-volatile storage device that stores information used by the processor 214 have. For example, the memory 216 may be a random access memory (RAM) or other dynamic storage device, a ROM (Read-Only Memory) device or other type of static storage device, , A Content Addressable Memory), a magnetic and / or optical storage memory device and its corresponding drive (e.g., hard disk drive, optical drive, etc.), and / .

네트워크 인터페이스(218)는 유선 통신 링크(예를 들어, 도전성 와이어, 트위스트 페어 케이블(twisted pair cable), 동축 케이블, 송전선, 광섬유 케이블 및/또는 도파관 등), 무선 통신 링크(예를 들어, 무선 주파수(RF; Radio Frequency), 적외선, 및/또는 비주얼 옵틱(visual optics) 등) 또는 무선 및 유선 통신 링크의 조합을 통하여 제어기(210)가 다른 디바이스 및/또는 시스템과 통신할 수 있도록 하는 송수신기(예를 들어, 송신기 및/또는 수신기)를 포함할 수 있다. 네트워크 인터페이스(218)는 기저대역 신호를 무선 주파수 신호로 변환하는 송신기 및/또는 무선 주파수 신호를 기저대역 신호로 변환하는 수신기를 포함할 수 있다. 네트워크 인터페이스(218)는 무선 주파수 신호를 송신 및 수신하기 위하여 안테나와 커플링 될 수 있다.The network interface 218 may be any type of communication device such as a wired communication link (e.g., a conductive wire, a twisted pair cable, a coaxial cable, a transmission line, a fiber optic cable and / (E.g., a wireless transceiver) that allows the controller 210 to communicate with other devices and / or systems through a combination of wireless and wired communication links, such as radio frequency (RF), infrared, and / or visual optics, For example, a transmitter and / or a receiver. The network interface 218 may include a transmitter that converts the baseband signal to a radio frequency signal and / or a receiver that converts the radio frequency signal to a baseband signal. The network interface 218 may be coupled with the antenna to transmit and receive radio frequency signals.

네트워크 인터페이스(218)는 다른 디바이스로의 데이터 송신을 수행하는 입력 및/또는 출력 포트, 입력 및/또는 출력 시스템으로 구성된 논리 구성요소, 및/또는 다른 입력 및 출력 구성요소를 포함할 수 있다. 예를 들어, 네트워크 인터페이스(218)는 유선 통신을 위한 네트워크 인터페이스 카드(예를 들어, 이더넷 카드) 및/또는 무선 통신을 위한 무선 네트워크 인터페이스(예를 들어, 와이파이) 카드를 포함할 수 있다. 네트워크 인터페이스(218)는 데이터를 특정 형태에서 다른 형태로 변환하기 위하여 케이블을 통한 통신을 위하여 범용 직렬 버스(USB; Universal Serial Bus) 포트를 포함하고, 블루투스 무선 인터페이스, RFID(Radio-Frequency Identification) 인터페이스, 근거리 무선 통신(NFC; Near-Field Communications) 인터페이스 및/또는 다른 종류의 인터페이스를 포함할 수 있다.Network interface 218 may include input and / or output ports for performing data transmission to other devices, logical components comprised of input and / or output systems, and / or other input and output components. For example, the network interface 218 may include a network interface card (e.g., an Ethernet card) for wired communication and / or a wireless network interface (e.g., WiFi) card for wireless communication. The network interface 218 includes a universal serial bus (USB) port for communicating over a cable to convert data from one form to another, and includes a Bluetooth wireless interface, a Radio-Frequency Identification (RFID) , A near-field communications (NFC) interface, and / or other types of interfaces.

주변기기 인터페이스(220)는 하나 이상의 주변 디바이스(230)와 통신하도록 설정될 수 있다. 예를 들어, 주변기기 인터페이스(220)는 주변 디바이스(230)로의 데이터 송신을 수행하는 입력 및/또는 출력 포트, 입력 및/또는 출력 시스템 및/또는 다른 입력 및 출력 구성요소로 구성된 하나 이상의 논리 구성요소를 포함할 수 있다. 예시적인 것으로서, 주변기기 인터페이스(220)는 위건드(Wiegand) 프로토콜 및/또는 RS-485 프로토콜 및/또는 다른 종류의 프로토콜과 같은 직렬 주변기기 인터페이스 버스 프로토콜(Serial Peripheral Interface Bus protocol)을 이용하여 주변 디바이스(230)와 통신할 수 있다. 또 다른 예시적인 것으로서, 주변기기 인터페이스(220)는 서로 다른 종류의 프로토콜을 이용할 수 있다. 일 실시예에 따르면, 네트워크 인터페이스(218)는 주변 디바이스(230)를 제어기(210)에 커플링하는 주변기기 인터페이스로도 동작할 수 있다.The peripheral interface 220 may be configured to communicate with one or more peripheral devices 230. For example, the peripheral interface 220 may include one or more logic components (not shown) configured as input and / or output ports, input and / or output systems and / or other input and output components for performing data transmission to the peripheral device 230 . ≪ / RTI > By way of example, the peripheral interface 220 may be connected to a peripheral device (not shown) using a Serial Peripheral Interface Bus protocol, such as the Wiegand protocol and / or the RS-485 protocol and / 230). As another example, the peripheral interface 220 may use a different kind of protocol. According to one embodiment, the network interface 218 may also operate as a peripheral interface that couples the peripheral device 230 to the controller 210.

하우징(222)은 제어기(210)의 구성요소를 수용하고, 제어기(210)의 구성요소를 환경으로부터 보호할 수 있다. 일 실시예에 따르면, 하우징(222)은 하나 이상의 주변 디바이스(230)를 포함할 수 있다. 다른 실시예에 따르면, 하우징(222)은 관리 디바이스(130)를 포함할 수 있다. 하우징(222)은 다수의 시스템 유닛들(115) 및/또는 다수의 제어기(210)로 구성된 시스템에 있는 다른 시스템 유닛들(115) 및/또는 제어기(210)에 대한 하나의 시스템 유닛(115) 및/또는 제어기(210)의 경계를 정의할 수 있다.The housing 222 may receive the components of the controller 210 and may protect the components of the controller 210 from the environment. According to one embodiment, the housing 222 may include one or more peripheral devices 230. According to another embodiment, the housing 222 may include a management device 130. [ The housing 222 may include a plurality of system units 115 and / or one system unit 115 for the controller 210 and / or other system units 115 in a system comprised of a plurality of controllers 210. [ And / or the boundaries of the controller 210.

후술하는 바와 같이, 제어기(210)는 분산 시스템에 있는 어플리케이션 데이터세트 및/또는 데이터세트 그룹과 관련된 특정 동작을 수행할 수 있다. 제어기(210)는 ASIC의 배선에 의한 회로(hardwired logic)를 통하여 이러한 동작을 수행할 수 있다. 제어기(210)는 또한 (또는 선택적으로) 메모리(216)과 같은 컴퓨터 판독 가능 매체에 기록되어 있는 소프트웨어 명령을 실행하는 프로세서(214)에 대한 응답으로 이러한 동작을 수행할 수 있다. 컴퓨터 판독 가능 매체는 일시적이지 않은(non-transitory) 메모리 디바이스를 포함한다. 메모리 디바이스는 단일 물리 메모리 디바이스 또는 복수 개로 확장된 물리 메모리 디바이스 내에 구현될 수 있다. 소프트웨어 명령은 다른 컴퓨터 판독 매체 또는 다른 디바이스에서 판독되어 메모리(216)에 입력될 수 있다. 메모리(216)에 기록된 소프트웨어 명령에 의하여 프로세서(214)는 본 문서에 기재된 처리를 수행할 수 있다. 따라서, 본 문서에 기재된 구현은 하드웨어 회로 및 소프트웨어의 특정 조합에 한정되는 것이 아니다.As described below, the controller 210 may perform certain operations associated with application data sets and / or data set groups in the distributed system. The controller 210 can perform this operation through hardwired logic of the ASIC. The controller 210 may also (or alternatively) perform such operations in response to the processor 214 executing software instructions recorded on a computer readable medium, such as the memory 216. Computer readable media include non-transitory memory devices. The memory device may be implemented in a single physical memory device or in a plurality of expanded physical memory devices. The software instructions may be read from another computer readable medium or other device and input into memory 216. [ The processor 214 may perform the processing described in this document by the software instructions recorded in the memory 216. [ Thus, the implementations described herein are not limited to any particular combination of hardware circuitry and software.

주변 디바이스(230)는 제어기(210)에게 정보를 제공하고, 제어기(210)에 의하여 제어되며, 그리고/또는 제어기(210)와 통신하는 하나 이상의 디바이스를 포함할 수 있다. 예를 들어, 주변 디바이스(230)는 리더 디바이스(240), 잠금 디바이스(250), 센서(260) 및/또는 액추에이터(270)를 포함할 수 있다. 도 2는 하나의 리더 디바이스(240), 하나의 잠금 디바이스9250), 하나의 센서(260) 및 하나의 액추에이터(270)를 도시하고 있으나, 이는 예시적인 것으로서, 실제로 주변 디바이스(230)는 다수의 리더 디바이스(240), 다수의 잠금 디바이스(250), 다수의 센서(260) 및/또는 다수의 액추에이터(270)를 포함할 수 있다. 몇몇 실시예에 따르면, 주변 디바이스(230)는 도 2에 도시된 것과 같은 하나 이상의 디바이스를 포함하지 않을 수 있다. 추가적으로 또는 선택적으로, 주변 디바이스(230)는 도 2에 도시되지 않은 다른 종류의 보안 디바이스를 포함할 수 있다.The peripheral device 230 may include one or more devices that provide information to the controller 210, are controlled by the controller 210, and / or communicate with the controller 210. For example, the peripheral device 230 may include a reader device 240, a locking device 250, a sensor 260, and / or an actuator 270. Figure 2 illustrates one reader device 240, one locking device 9250, one sensor 260 and one actuator 270, but this is illustrative only, and in fact the peripheral device 230 may include multiple A reader device 240, a plurality of locking devices 250, a plurality of sensors 260, and / or a plurality of actuators 270. According to some embodiments, the peripheral device 230 may not include one or more devices as shown in FIG. Additionally or alternatively, the peripheral device 230 may include other types of secure devices not shown in FIG.

리더 디바이스(240)는 사용자로부터 인증서를 판독하여 제어기(210)로 해당 인증서를 제공하는 디바이스를 포함할 수 있다. 예를 들어, 리더 디바이스(240)는 글자와 숫자로 구성된(alphanumeric) 개인 식별 번호(PIN; Personal Identification Number)를 사용자로부터 입력 받도록 설정된 키패드 또는 키보드; 자기 띠 또는 RFID 태그와 같은 다른 종류의 저장 디바이스에 코드를 저장하는 카드를 판독하도록 설정된 카드 리더기; 사용자의 지문을 판독하도록 설정된 지문 리더기; 사용자의 홍채를 판독하도록 설정된 홍채 리더기; 사용자의 음성 서명을 녹음하도록 설정된 마이크로폰 및 음성 서명 식별기(voice signature identifier); NFC 리더기; 및/또는 다른 종류의 리더 디바이스를 포함할 수 있다. 리더 디바이스(240)는 인증서를 제공하는 소정 종류의 보안 디바이스를 포함하고, 하나 이상의 센서 디바이스를 포함할 수 있는데, 그러한 센서 디바이스는 아래에 기재된 센서(260)를 참조한다. 예를 들어, 리더 디바이스(240)는 얼굴 인식에 이용되는 카메라 및/또는 음성 인식에 이용되는 마이크로폰을 포함할 수 있다.The reader device 240 may include a device that reads the certificate from the user and provides the certificate to the controller 210. For example, the reader device 240 may include a keypad or keyboard configured to receive alphanumeric Personal Identification Numbers (PINs) from a user. A card reader configured to read a card storing codes in a magnetic strip or other type of storage device such as an RFID tag; A fingerprint reader configured to read a fingerprint of a user; A iris reader configured to read a user's iris; A microphone and a voice signature identifier configured to record a user's voice signature; NFC reader; And / or other types of reader devices. Reader device 240 includes some type of secure device that provides a certificate, and may include one or more sensor devices, such as sensor 260, described below. For example, the reader device 240 may include a camera used for face recognition and / or a microphone used for speech recognition.

잠금 디바이스(250)는 제어기(210)에 의하여 제어되는 잠금 수단을 포함할 수 있다. 잠금 디바이스(250)는 도어, 창문, HVAC(Heating, Ventilating, and Air Conditioning), 및/또는 보안 영역의 입구에 대한 다른 종류의 접근을 잠글 수 있다(예를 들어, 도어가 열리거나 닫히는 것을 방지할 수 있다). 예를 들어, 잠금 디바이스(250)는 전자기 잠금 수단; 제어기(210)에 의하여 제어되는 모터가 구비된 기계식 잠금 수단; 전자 기계식 잠금 수단; 및/또는 다른 종류의 잠금 수단을 포함할 수 있다. 또한, 잠금 디바이스(250)는 기계, 운송 수단, 엘리베이터 및/또는 전기 디바이스의 동작에 대한 잠금/잠금 해제를 수행할 수 있다.The locking device 250 may include locking means controlled by the controller 210. The locking device 250 may lock other types of access to doors, windows, Heating, Ventilating, and Air Conditioning (HVAC), and / or entrances to the security area (e.g., preventing doors from opening or closing can do). For example, the locking device 250 may include electromagnetic locking means; A mechanical locking means provided with a motor controlled by the controller 210; Electromechanical locking means; And / or other types of locking means. The locking device 250 may also perform locking / unlocking operations on the machine, the vehicle, the elevator, and / or the electrical device.

센서(260)는 센서 디바이스를 포함할 수 있다. 예시적인 것으로서, 센서(260)는 도어가 열려있는지 닫혀있는지를 감지하는 도어 센서; 가시광 모니터링 카메라; 적외선 모니터링 카메라, 열 감지 모니터링 카메라, 및/또는 다른 종류의 모니터링 디바이스; 움직임 센서, 열 센서, 압력 센서, 및/또는 다른 종류의 알람 센서와 같은 알람 센서; 오디오 레코딩 디바이스(예를 들어, 마이크로폰); 시스템 유닛(115)의 내부에 구비된 위치 센서와 같은 접근 센서(tamper sensor); 및/또는 시스템 유닛(115)과 관련된 보안 영역 내에 위치하는 "퇴장 요청" 버튼; 및/또는 다른 종류의 센서 디바이스를 포함할 수 있다.The sensor 260 may comprise a sensor device. By way of example, the sensor 260 may include a door sensor that senses whether the door is open or closed; Visible light monitoring camera; Infrared monitoring cameras, thermal sensing monitoring cameras, and / or other types of monitoring devices; Alarm sensors such as motion sensors, thermal sensors, pressure sensors, and / or other types of alarm sensors; An audio recording device (e. G., A microphone); A tamper sensor, such as a position sensor, provided within the system unit 115; And / or a "redemption request" button located within a security zone associated with the system unit 115; And / or other types of sensor devices.

액추에이터(270)는 액추에이터 디바이스를 포함할 수 있다. 예시적인 것으로서, 액추에이터(270)는 조명 디바이스를 제어할 수 있다. 다른 예시적인 것으로서, 액추에이터(270)는 도난 경보 동작기; 메시지를 재생하거나 알람 신호를 발생하는 스피커; 디스플레이 디바이스; (예를 들어, 카메라 또는 다른 모니터링 디바이스의 시야 제어를 위하여) 센서(260)를 움직이는 모터; 도어, 창문, HVAC 및/또는 보안 영역과 관련된 또 다른 입구의 열림/닫힘을 위한 모터; 잠겨있거나 잠겨있지 않은 위치에서의 잠금 디바이스(250)를 보호하는 모터; 소화 디바이스(fire extinguishing device); 및/또는 다른 종류의 액추에이터 디바이스를 포함할 수 있다.Actuator 270 may include an actuator device. By way of example, the actuator 270 may control the lighting device. As another example, the actuator 270 may include a stolen alarm operator; A speaker for reproducing a message or generating an alarm signal; A display device; A motor for moving the sensor 260 (e.g., for field of view of a camera or other monitoring device); A door, window, motor for opening / closing another entrance associated with the HVAC and / or security area; A motor for protecting the locking device 250 in a locked or unlocked position; A fire extinguishing device; And / or other types of actuator devices.

도 2는 시스템 유닛(115)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예로서 시스템 유닛(115)은 도 2에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소 또는 다르게 배치된 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 시스템 유닛(115)의 컴포넌트(또는 컴포넌트 그룹)는 시스템 유닛(115)의 하나 이상의 다른 컴포넌트에 의하여 수행되도록 명시된 작업 또는 작업들을 수행할 수 있다. 예를 들어, 몇몇 실시예에 따르면 주변기기 인터페이스(220)는 네트워크 인터페이스에 대응할 수 있다. 다른 예시적인 것으로서, 몇몇 실시예에 따르면 주변 디바이스(230)는 주변기기 인터페이스(220)보다는 네트워크 인터페이스(218)을 통하여 제어기(210)에 연결될 수 있다.2 shows an exemplary component of the system unit 115, the system unit 115, as an alternative embodiment, may have fewer components, other components, additional components, or different arrangements RTI ID = 0.0 > components. ≪ / RTI > Additionally or alternatively, a component (or group of components) of the system unit 115 may perform specified tasks or tasks to be performed by one or more other components of the system unit 115. For example, according to some embodiments, peripheral interface 220 may correspond to a network interface. As another example, in some embodiments, the peripheral device 230 may be connected to the controller 210 via the network interface 218 rather than the peripheral interface 220.

또한, 분산 제어 시스템(110)은 분산 제어 시스템에 대한 물리 접근을 포함하고 있으나, 다른 예로서 물리 접근이 아닌 방식으로 시스템이 제어될 수 있다. 이에 반하여, 분산 제어 시스템(110)은 도어를 개방 및/또는 폐쇄하거나 빌딩 또는 시설로의 물리적인 접근을 제어하는 제어 시스템과 같은 소정 종류의 물리 접근 제어 시스템을 (예를 들어, 동작 환경 내에) 포함할 수 있다. 분산 제어 시스템(110)은 또한 팬(fan)을 제어하고(예를 들어, 동작 개시 또는 동작 중지), 빌딩 관리 시스템의 알람을 개시하고(예를 들어, 실패 인증, 성공 인증 등), 또는 산업 자동화 시스템에서 로봇 팔을 제어하는 시스템을 포함할 수 있다.Also, while the distributed control system 110 includes physical access to the distributed control system, as another example, the system may be controlled in a manner other than physical access. On the other hand, the distributed control system 110 may provide a certain type of physical access control system (e.g., within an operating environment), such as a control system that opens and / or closes a door or controls physical access to a building or facility, . The distributed control system 110 may also control a fan (e.g., start or stop operation), initiate an alarm of the building management system (e.g., failure authentication, success authentication, etc.) And a system for controlling the robot arm in an automated system.

도 3a 및 도 3b는 시스템 유닛(115)의 예시적인 기능적 구성요소를 나타낸 블록도이다. 시스템 유닛(115)의 기능적 구성요소는 예를 들어, 하나 이상의 ASIC의 배선에 의한 회로를 통하여 구현될 수 있다. 추가적으로 또는 선택적으로, 시스템 유닛(115)의 기능적 구성요소는 메모리(216)의 명령을 실행하는 프로세서(214)에 의하여 구현될 수 있다. 도 3a는 시스템 유닛(115)의 기능적 계층을 나타내고 있다. 도 3a에 도시된 바와 같이, 시스템 유닛(115)는 어플리케이션 프로그래밍 인터페이스(API; Application Programming Interface) 계층(310), 어플리케이션 계층(320), 분산 계층(340) 및 저장 계층(350)을 포함할 수 있다.FIGS. 3A and 3B are block diagrams illustrating exemplary functional components of the system unit 115. FIG. The functional components of the system unit 115 may be implemented through circuitry, for example, by wiring one or more ASICs. Additionally or alternatively, the functional components of the system unit 115 may be implemented by the processor 214 executing instructions of the memory 216. FIG. 3A shows a functional hierarchy of the system unit 115. FIG. 3A, the system unit 115 may include an application programming interface (API) layer 310, an application layer 320, a distribution layer 340, and a storage layer 350 have.

API 계층(310)은 예를 들어 관리 디바이스(310)와 통신하도록 설정된 API를 포함한다. 예를 들어, 관리자가 관리 디바이스(130)를 이용하여 시스템 유닛(115)에 로그인 한 경우, API 계층(310)은 관리 디바이스(130)와 통신하여 관리자를 인증할 수 있다. 다른 예로서, API 계층(310)은 관리 디바이스(130)와 통신하여 시스템 유닛(115)의 설정을 변경할 수 있다. API 계층(310)은 관리 디바이스(130)로부터 데이터를 수신하고, 해당 데이터를 분산 계층(340) 및/또는 저장 계층(350)에 제공할 수 있다. API 계층(310)은 또한 관리 디바이스(130)와 통신하여 어플리케이션 계층(320)에 어플리케이션을 설치할 수 있다. API 계층(310)은 서로 다른 관리자 종류를 처리하도록 설정될 수 있다. 예를 들어, API 계층(310)은 웹 서비스 관리자, 리눅스(Linux) 관리자, ONVIF(Open Network Video Interface Forum)를 처리하는 API, 및/또는 다른 종류의 API를 포함할 수 있다.The API layer 310 includes APIs configured to communicate with, for example, the management device 310. For example, when an administrator logs in to the system unit 115 using the management device 130, the API layer 310 can communicate with the management device 130 to authenticate the administrator. As another example, the API layer 310 may communicate with the management device 130 to change the settings of the system unit 115. The API layer 310 may receive data from the management device 130 and provide the data to the distribution layer 340 and / or the storage layer 350. The API layer 310 may also communicate with the management device 130 to install applications in the application layer 320. API layer 310 may be configured to handle different manager types. For example, the API layer 310 may include a web service manager, a Linux administrator, an API that handles ONVIF (Open Network Video Interface Forum), and / or other types of APIs.

어플리케이션 계층(320)은 시스템 유닛(115)에 설치된 하나 이상의 어플리케이션을 포함할 수 있다. 도 3b는 실시예에 따른 어플리케이션을 나타내고 있다. 도 3b에 도시된 바와 같이, 어플리케이션 계층(320)은 접근 제어 로직 어플리케이션(322), 도어 제어 어플리케이션(324), 리더 제어 어플리케이션(326), 이벤트 처리 어플리케이션(328) 및/또는 어플리케이션(332)를 포함할 수 있다.The application layer 320 may include one or more applications installed in the system unit 115. 3B shows an application according to an embodiment. 3B, the application layer 320 may include an access control logic application 322, a door control application 324, a reader control application 326, an event processing application 328, and / or an application 332 .

접근 제어 로직 어플리케이션(322)는 수신된 인증서 및 저장된 접근 규칙을 기초로 접근이 허용되는지를 판단할 수 있다. 도어 제어 어플리케이션(324)는 하나 이상의 도어 및/또는 관련 잠금 디바이스(250)를 제어할 수 있다. 예를 들어, 도어 제어 어플리케이션(324)은 도어가 열려있는지 닫혀있는지 및/또는 잠겨있는지 잠겨있지 않는지를 판단하고, 하나 이상의 디바이스가 도어를 열거나 닫거나 및/또는 잠그거나 잠금 해제하도록 동작시킬 수 있다. 리더 제어 어플리케이션(326)은 하나 이상의 리더 디바이스(240)를 제어하고, 하나 이상의 리더 디바이스(240)로부터 수신된 인증서를 획득하여 처리할 수 있다. 이벤트 처리 어플리케이션(328)은 시스템 유닛(115)에 의하여 기록 또는 생성되거나, 다른 시스템 유닛(115)에 의하여 기록된 이벤트의 로그를 보관할 수 있다. 이벤트 처리 어플리케이션(328)은 모든(또는 적어도 일부) 시스템 유닛들(115)에 분산 시스템 이벤트 로그를 보관하기 위하여 로컬상에서 기록되거나 발생된 이벤트가 분산 제어 시스템(110)상의 다른 시스템 유닛들(115)로 분산되도록 할 수 있다. 따라서, 로깅된 이벤트는 시스템 이벤트 로그와 관련된 어느 시스템 유닛(115)으로부터 라도 추출될 수 있다. 스케줄 처리 어플리케이션(330)은 시스템 유닛(115)과 관련된 하나 이상의 스케줄을 관리할 수 있다. 예를 들어, 특정 사용자 그룹에 대한 접근 규칙은 하루 중 특정 시간을 기초로 변경될 수 있다.The access control logic application 322 may determine whether access is allowed based on the received certificate and stored access rules. The door control application 324 may control one or more doors and / or associated locking devices 250. For example, the door control application 324 may determine whether the door is open, closed, and / or locked and not locked, and one or more devices may operate to open, close, and / or lock or unlock the door. The reader control application 326 may control one or more reader devices 240 and may obtain and process certificates received from one or more reader devices 240. [ The event processing application 328 may be recorded or created by the system unit 115 or may store a log of events recorded by other system units 115. [ The event processing application 328 may be configured to cause events recorded or generated locally to be stored in all (or at least a portion of) the system units 115 to be stored in the distributed system event logs by other system units 115 on the distributed control system 110. [ As shown in Fig. Thus, logged events can be extracted from any system unit 115 associated with the system event log. The schedule processing application 330 may manage one or more schedules associated with the system unit 115. For example, the access rules for a particular group of users may be changed based on a specific time of day.

어플리케이션(332)은 시스템 유닛(115)의 어플리케이션 계층(320)에 설치된 특정 어플리케이션에 대응할 수 있는데, 이는 분산 데이터세트를 이용한다. 예를 들어, 어플리케이션(332)는 어플리케이션을 제어하는 카메라와 같은 특정 센서(260)와 관련된 어플리케이션; 도어 모터 어플리케이션과 같은 특정 액추에이터(270)와 관련된 어플리케이션; 인원수 카운팅 어플리케이션과 같이 정보 처리를 수행하는 어플리케이션; 주변 디바이스(230)을 제어하는 서드 파티(third party) 어플리케이션에 대한 플랫폼을 제공하는 어플리케이션; 네트워크를 통한 원격 디바이스와의 통신을 설정하는 어플리케이션; 및/또는 다른 종류의 어플리케이션에 대응할 수 있다.The application 332 may correspond to a specific application installed in the application layer 320 of the system unit 115, which uses a distributed data set. For example, the application 332 may be an application associated with a specific sensor 260, such as a camera controlling an application; Applications associated with specific actuators 270, such as door motor applications; An application that performs information processing such as a number counting application; An application that provides a platform for a third party application that controls the peripheral device 230; An application for establishing communication with a remote device over a network; And / or other types of applications.

다른 종류의 어플리케이션(도 3b에 도시되어 있지 않음)은 어플리케이션 계층(320)에 포함될 수 있다. 예시적으로서, 알람 어플리케이션이 리포트 및/또는 알람을 생성하여 리포트 및/또는 알람을 관리 디바이스(130)(및/또는 다른 지정 디바이스) 및/또는 하나 이상의 다른 시스템 유닛들(115)에게 송신할 수 있다. 다른 예시적인 것으로서, 작업 고유의 제어 어플리케이션은 도어 열림 이벤트, 센서 이벤트, 액추에이터 이벤트 및/또는 다른 종류의 이벤트와 같은 시스템 유닛(115)에 관련된 이벤트를 처리할 수 있다.Other types of applications (not shown in FIG. 3B) may be included in the application layer 320. By way of example, an alarm application may generate reports and / or alarms to send reports and / or alarms to the management device 130 (and / or other designated devices) and / or one or more other system units 115 have. As another example, task-specific control applications may process events related to the system unit 115, such as door open events, sensor events, actuator events, and / or other types of events.

분산 계층(340)은 시스템 유닛들(115)과 관련된 하나 이상의 분배 데이터세트를 관리할 수 있다. 예를 들어, 분산 계층(340)은 네트워크(120)를 통한 다른 시스템 유닛들(115)과의 보안 연결(예를 들어, 전송 계층 보안(TLS; transport Layer Security) 연결)을 유지할 수 있다. 또한, 분산 계층(340)은 데이터세트의 분배를 위하여 피어-투-피어 네트워크의 제어기들(210)을 연결할 수 있다. 분산 계층(340)은 프로토콜(예를 들어, 팍소스(PAXOS) 프로토콜)을 이용하여 특정 합의 기반 분산 데이터세트의 변경에 대한 합의를 구현할 수 있다. 예시적인 것으로서, 분산 계층(340)은 변경에 대한 제안을 분산 데이터세트와 관련된 다른 시스템 유닛들(115)에게 송신하고, 변경에 대한 정족수를 다른 시스템 유닛들(115)로부터 수신할 수 있다. 다른 예시적인 것으로서, 분산 계층(340)은 다른 시스템 유닛(115)으로부터 수신된 제안에 동의할 수 있다. 또 다른 예시적인 것으로서, 분산 계층(340)은 변경에 대한 동의 없이도 변경에 대한 합의가 수행되었음을 나타내는 통지를 수신할 수 있다. 변경에 대한 합의 통지가 수신된 경우, 분산 계층(340)은 저장 계층(350)에 있는 분산 데이터세트에 변경을 적용할 수 있다. 분산 계층(340)은 어플리케이션 데이터세트에 접근하고자 하는 어플리케이션(332)로부터 요청을 수신하고, 어플리케이션 데이터세트가 존재하는지를 판단하기 위하여 시스템 데이터세트를 확인할 수 있다. 어플리케이션 데이터세트가 존재하는 경우 분산 계층(340)은 분산 제어 시스템(110)에 있는 다른 시스템 유닛들(115)에게 요청을 송신함으로써 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여를 요청할 수 있다. 어플리케이션 데이터세트가 존재하지 않으면, 분산 계층(340)은 어플리케이션(332)을 대신하여 어플리케이션 데이터세트를 생성할 수 있다.The distribution layer 340 may manage one or more distribution data sets associated with the system units 115. For example, the distribution layer 340 may maintain a secure connection (e.g., Transport Layer Security (TLS) connection) with other system units 115 via the network 120. In addition, the distribution layer 340 may connect the controllers 210 of the peer-to-peer network for distribution of the data set. The distribution layer 340 may implement an agreement on the modification of a particular aggregation-based distributed data set using a protocol (e.g., the PAXOS protocol). By way of example, the distribution layer 340 may send a suggestion for a change to other system units 115 associated with the distributed data set, and may receive a quorum for the change from the other system units 115. As another example, the distribution layer 340 may agree to a proposal received from another system unit 115. [ As another example, the distribution layer 340 may receive a notification indicating that an agreement for the change has been made without consent to the change. When a consent notice for the change is received, the distribution layer 340 may apply the changes to the distributed data set in the storage layer 350. The distribution layer 340 may receive the request from the application 332 that wants to access the application data set and may determine the system data set to determine if the application data set is present. If an application data set is present, the distribution layer 340 may request participation in the data set group of the device associated with the application data set by sending a request to the other system units 115 in the distributed control system 110 . If an application data set does not exist, then the distribution layer 340 may generate an application data set on behalf of the application 332.

저장 계층(350)은 유닛(115)과 관련된 하나 이상의 데이터세트를 저장할 수 있다. 저장 계층(350)에 저장된 저장 계층은 로컬 데이터세트에 대응하거나 분산 데이터세트에 대응할 수 있다. 로컬 데이터세트는 로컬 데이터세트를 저장하고 있는 특정 유닛(115)과 관련된(및/또는 관련만 되어 있는) 정보를 저장할 수 있다. 분산 데이터세트는 분산 데이터세트와 관련된 다른 시스템 유닛들(115)과 관련된 정보를 저장할 수 있다.The storage layer 350 may store one or more data sets associated with the unit 115. The storage layer stored in the storage layer 350 may correspond to a local data set or correspond to a distributed data set. The local data set may store information related (and / or relevant) to the particular unit 115 storing the local data set. The distributed data set may store information associated with other system units 115 associated with the distributed data set.

저장 계층(350)에 포함될 수 있는 실시예에 따른 정보가 도 3b에 도시되어 있다. 도 3b에 도시된 바와 같이, 저장 계층(350)은 설정 데이터(352), 인증서 데이터(354), 접근 규칙 데이터(356), 시스템 데이터세트(358), 및 어플리케이션 데이터세트(360)를 포함할 수 있다. 설정 데이터(352)는 제어기(210)의 하드웨어 설정, 제어기(210)에 연결된 주변 디바이스(230), 어플리케이션 계층(320)에 설치된 어플리케이션, 및/또는 다른 종류의 설정 정보와 같은 특정 시스템 유닛(115)과 관련된 설정 데이터를 저장할 수 있다. 인증서 데이터(354)는 시스템 유닛(115)과 관련된 인증서를 저장할 수 있다. 접근 규칙(356)은 시스템 유닛(115)와 관련된 접근 규칙을 저장할 수 있다.Information according to an embodiment that may be included in the storage layer 350 is shown in FIG. 3B, the storage layer 350 includes configuration data 352, certificate data 354, access rule data 356, a system data set 358, and an application data set 360 . The configuration data 352 may be stored in a specific system unit 115 such as a hardware configuration of the controller 210, a peripheral device 230 connected to the controller 210, an application installed in the application layer 320, and / ) Can be stored. The certificate data 354 may store a certificate associated with the system unit 115. Access rules 356 may store access rules associated with system unit 115.

시스템 데이터세트(358)은 시스템 유닛들(115)(예를 들어, 모든 시스템 유닛들(115))과 관련된 분산 데이터세트에 대응할 수 있다. 따라서, 시스템 데이터세트(358)는 분산 제어 시스템(110)에 있는 각 시스템 유닛(115)에 저장될 수 있다. 시스템 데이터세트(358)에 저장될 수 있는 실시예에 따른 정보는 도 4a를 참조하여 후술하기로 한다.System data set 358 may correspond to a set of distributed data associated with system units 115 (e.g., all system units 115). Thus, the system data set 358 may be stored in each system unit 115 in the distributed control system 110. Information according to an embodiment that may be stored in the system data set 358 will be described later with reference to FIG. 4A.

어플리케이션 데이터세트(360)은 어플리케이션(332)와 같은 특정 어플리케이션과 관련된 분산 데이터세트에 대응할 수 있다. 어플리케이션 데이터세트(360)에 저장될 수 있는 실시예에 따른 정보는 도 4b를 참조하여 후술하기로 한다.Application data set 360 may correspond to a distributed data set associated with a particular application, such as application 332. [ Information according to an embodiment that can be stored in the application data set 360 will be described later with reference to FIG. 4B.

도 3a 및 도 3b가 시스템 유닛(115)의 예시적인 기능적 구성요소를 나타내고 있으나, 다른 실시예에 따르면 시스템 유닛(115)은 도 3a 및 도 3b에 도시된 것과는 다르게 적은 수의 기능적 구성요소, 다른 기능적 구성요소, 다르게 배치된 기능적 구성요소, 또는 추가 기능적 구성요소를 포함할 수 있다. 예를 들어, 하나의 어플리케이션(332) 및 하나의 어플리케이션 데이터세트(360)가 도 3b에 도시되어 있으나, 이는 예시적인 것으로서, 실제로 어플리케이션 계층(320)은 다수의 어플리케이션(332)을 포함할 수 있으며, 저장 계층(350)은 다수의 어플리케이션 데이터세트(360)를 포함할 수 있다. 추가적으로, 시스템 유닛(115)의 구성 요소(또는, 어떠한 구성요소의 그룹) 중 어느 것이든 시스템 유닛(115)에 구비된 하나 이상의 다른 기능적 구성요소에 의하여 수행되도록 명시된 기능을 수행할 수 있다.3A and 3B illustrate exemplary functional components of the system unit 115, but according to another embodiment, the system unit 115 may include fewer functional components than the one shown in FIGS. 3A and 3B, A functional component, a functional component, a functional component, a functional component, or a functional component. For example, one application 332 and one application data set 360 are shown in FIG. 3B, but this is exemplary and in practice the application layer 320 may include multiple applications 332 , The storage layer 350 may include a plurality of application data sets 360. Additionally, any of the components of the system unit 115 (or any group of components) may perform the specified function to be performed by one or more other functional components included in the system unit 115.

도 4a는 시스템 데이터세트(358)에 저장될 수 있는 예시적인 정보의 도면이다. 도 4a에 도시된 바와 같이, 시스템 데이터세트(358)은 시스템 유닛 리스트(410) 및 하나 이상의 분배 데이터세트 식별자(ID) 필드(420)를 포함할 수 있다. 시스템 유닛 리스트(410)는 분산 제어 시스템(110)이 포함된 시스템 유닛들(115)의 리스트를 저장할 수 있다.FIG. 4A is a diagram of exemplary information that may be stored in the system data set 358. FIG. As shown in FIG. 4A, the system data set 358 may include a system unit list 410 and one or more distribution data set identifier (ID) fields 420. The system unit list 410 may store a list of system units 115 including the distributed control system 110.

분산 데이터세트 식별자 필드(420)는 분산 제어 시스템(110)에 존재하는 분산 데이터세트를 확인하기 위한 정보를 저장할 수 있다. 분산 데이터세트 필드(420)는 하나 이상의 분산 데이터세트 엔트리를 포함할 수 있다. 각 분산 데이터세트 식별자 필드(420)는 분산 제어 시스템(110)의 특정 분산 데이터세트와 관련된 하나 이상의 식별자를 포함할 수 있다. 하나 이상의 식별자는 데이터세트 그룹의 명칭; 분산 데이터세트와 관련된 식별자, 이름, 및/또는 어플리케이션에 대한 설명; 데이터세트의 내용을 설명하는 메타데이터; 및/또는 특정 분산 데이터세트를 확인하는데 이용될 수 있는 다른 정보를 포함할 수 있다. 분산 데이터세트 식별자는 어플리케이션(332)가 어플리케이션 데이터세트로의 접근을 요청할 때 특정 어플리케이션을 확인하고자 하는 분산 계층(340)에 의하여 이용될 수 있다.The distributed data set identifier field 420 may store information for identifying a distributed data set present in the distributed control system 110. [ The distributed data set field 420 may include one or more distributed data set entries. Each distributed data set identifier field 420 may include one or more identifiers associated with a particular distributed data set of the distributed control system 110. The one or more identifiers may include a name of a data set group; A description of the identifier, name, and / or application associated with the distributed data set; Metadata describing the contents of the data set; And / or other information that may be used to identify a particular distributed data set. The distributed data set identifier may be used by the distribution layer 340 to identify a particular application when the application 332 requests access to the application data set.

도 4a는 시스템 데이터세트(358)에 저장될 수 있는 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 시스템 데이터세트(358)는 도 4a에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 다르게 배치된 구성요소, 또는 추가 구성요소를 포함할 수 있다.Although FIG. 4A illustrates an exemplary component that may be stored in the system data set 358, according to another embodiment, the system data set 358 may include fewer components than the one shown in FIG. 4A, , ≪ / RTI > otherwise disposed components, or additional components.

도 4b는 어플리케이션 데이터세트(360)에 저장될 수 있는 예시적인 정보의 도면이다. 도 4b에 도시된 바와 같이, 어플리케이션 데이터세트(360)는 분산 데이터세트 식별자 필드(430), 하나 이상의 시스템 유닛 필드(440-A 내지 440-N), 정족수 필드(450) 및 어플리케이션 데이터 필드(460)를 포함할 수 있다. 분산 데이터세트 식별자(430)는 특정 어플리케이션 데이터세트(360)를 확인할 수 있도록 하고, 시스템 데이터세트(358)의 분산 데이터세트 식별자 필드(420)에 저장된 분산 데이터세트 식별자에 대응할 수 있다.4B is a drawing of exemplary information that may be stored in the application data set 360. FIG. 4B, the application data set 360 includes a distributed data set identifier field 430, one or more system unit fields 440-A through 440-N, a quorum field 450 and an application data field 460 ). The distributed data set identifier 430 may correspond to the distributed data set identifier stored in the distributed data set identifier field 420 of the system data set 358,

시스템 유닛 필드(440)는 어플리케이션 데이터세트(360)와 관련된 데이터세트 그룹에 있는 시스템 유닛들(115)을 확인할 수 있도록 하는 정보를 저장할 수 있다. 정족수 필드(450)는 합의에 이르기 위하여 어플리케이션 데이터세트(360)에 대하여 제안되는 변경에 대한 표결을 함에 있어서 데이터세트 그룹에 있는 시스템 유닛들(115)에 의하여 요구되는 동의 표의 수를 확인할 수 있도록 하는 정보를 저장할 수 있다. 어플리케이션 데이터 필드(640)는 어플리케이션 데이터세트(360)와 관련된 어플리케이션 데이터를 저장할 수 있다.The system unit field 440 may store information that allows the system units 115 in the data set group associated with the application data set 360 to be identified. The quorum field 450 allows verification of the number of consent tables required by the system units 115 in the data set group in voting for proposed changes to the application data set 360 to arrive at an agreement Information can be stored. The application data field 640 may store application data associated with the application data set 360.

도 4b는 어플리케이션 데이터세트(360)에 저장될 수 있는 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 어플리케이션 데이터세트(360)는 도 4b에 도시된 것과는 다르게 적은 수의 기능적 구성요소, 다른 기능적 구성요소, 다르게 배치된 기능적 구성요소, 또는 추가 기능적 구성요소를 포함할 수 있다.Although FIG. 4B illustrates exemplary components that may be stored in the application data set 360, according to another embodiment, the application data set 360 may include fewer functional components than the one shown in FIG. 4B, Components, other functional components, or additional functional components.

도 5는 본 발명의 하나 이상의 실시예에 따라 데이터세트 그룹으로 참여하거나 분산 제어 시스템에 있는 어플리케이션 데이터세트로 접속하는 것에 대한 흐름도이다. 몇몇 실시예에 따르면 도 5의 프로세스는 제어기(210)에 의하여 수행될 수 있다. 다른 실시예에 따르면, 도 5의 프로세스 중 일부 또는 전체는 제어기(210)와는 분리된, 및/또는 제어기(210)에 포함되어 있는 다른 디바이스 또는 디바이스 그룹에 의하여 수행될 수 있다.Figure 5 is a flow diagram of joining into a data set group or accessing an application data set in a distributed control system in accordance with one or more embodiments of the present invention. According to some embodiments, the process of FIG. 5 may be performed by the controller 210. According to another embodiment, some or all of the process of FIG. 5 may be performed by another device or group of devices that are separate from and / or included in the controller 210.

도 5의 프로세스는 데이터세트 그룹에 참여하는 단계 또는 어플리케이션 데이터세트에 접속하는 단계를 포함할 수 있다(블록 510). 예를 들어, 관리자는 특정 시스템 유닛(115)에 로그인하기 위하여 관리 디바이스(130)를 이용하고, 해당 시스템 유닛(115)에 어플리케이션(332)을 설치할 수 있다. 어플리케이션(332)은 데이터를 분산 데이터세트에 저장하거나, 및/또는 분산 데이터세트에서 데이터를 추출하도록 설정될 수 있다. 따라서, 어플리케이션(332)이 설치된 이후에는 어플리케이션(332)는 어플리케이션(332)과 관련된 분산 데이터세트로 접근하기 위하여 분산 계층(340)에 요청을 송신할 수 있다. 어플리케이션 데이터세트 식별자가 시스템 데이터세트에 존재하는지에 대한 판단이 수행될 수 있다(블록 515). 전술한 바와 같이, 시스템 데이터세트(358)는 분산 제어 시스템(110)에 포함된 분산 데이터세트의 식별자를 저장하는 분산 데이터세트 식별자 필드(420)를 포함한다. 분산 계층(340)은 어플리케이션(332)에 대한 식별자가 분산 데이터세트 식별자 필드(420)에 리스트되어 있는지를 판단하기 위하여 분산 데이터세트 식별자 필드(420)에 접속할 수 있다.The process of FIG. 5 may include joining a data set group or connecting to an application data set (block 510). For example, the administrator can use the management device 130 to log in to the specific system unit 115 and install the application 332 in the corresponding system unit 115. The application 332 may be configured to store data in a distributed data set, and / or to extract data in a distributed data set. Thus, after the application 332 is installed, the application 332 may send a request to the distribution layer 340 to access the distributed data set associated with the application 332. A determination may be made whether the application data set identifier is present in the system data set (block 515). As described above, the system data set 358 includes a distributed data set identifier field 420 that stores an identifier of a distributed data set included in the distributed control system 110. The distribution layer 340 may connect to the distributed data set identifier field 420 to determine if the identifier for the application 332 is listed in the distributed data set identifier field 420.

어플리케이션 데이터세트 식별자가 시스템 데이터세트에 존재하지 않는 것으로 판단되면(블록 515 - 아니오), 시스템 데이터세트에 어플리케이션 데이터세트 엔트리가 생성되어 분산될 수 있다(블록 520). 시스템 데이터세트(358)는 분산 제어 시스템(110)에 있는 분산 데이터세트이기 때문에, 시스템 데이터세트(358)에 대한 변경을 수행하기 위하여 시스템 유닛(115)은 시스템 데이터세트(358)의 분산 데이터세트 식별자 필드(420)의 변경을 수행하기 위한 합의를 획득한다. 시스템 유닛(115)의 제어기(210)는 분산 제어 시스템(110)에 있는 다른 시스템 유닛들(115)로 변경에 대한 제안을 송신할 수 있는데, 시스템 데이터세트(358)에 대하여 다른 시스템 유닛들(115)로부터 동의 표의 정족수가 수신된 경우 어플리케이션 데이터세트 엔트리가 시스템 데이터세트(358)의 분산 데이터세트 식별자 필드(420)에 추가될 수 있다.If it is determined that the application data set identifier is not present in the system data set (block 515 -No), an application data set entry may be created and distributed in the system data set (block 520). Since the system data set 358 is a distributed data set in the distributed control system 110, the system unit 115 is configured to perform a change to the system data set 358, To obtain an agreement to perform the change of the identifier field 420. The controller 210 of the system unit 115 may send a suggestion for the change to the other system units 115 in the distributed control system 110 so that the other system units 115 An application data set entry may be added to the distributed data set identifier field 420 of the system data set 358. [

어플리케이션 데이터세트가 생성되어(블록 530), 어플리케이션 데이터가 어플리케이션 데이터세트에 추가될 수 있다(블록 540). 예를 들어, 분산 계층(340)은 저장 계층(350)에 어플리케이션 데이터세트(360)를 생성하고, 어플리케이션(332)로부터 어플리케이션 데이터를 수신하며, 수신된 어플리케이션 데이터를 어플리케이션 데이터세트(360)에 추가할 수 있다. 또한, 시스템 데이터세트(358)의 분산 데이터세트 식별자 필드(420)에 어플리케이션 데이터세트 엔트리를 생성한 특정 시스템 유닛(115)이 어플리케이션 데이터세트와 관련된 첫 번째 시스템 유닛(115)이고, 다른 시스템 유닛들(115)은 어플리케이션 데이터세트와 관련된 데이터세트 그룹에 속하지 않은 경우, 분산 계층(340)은 어플리케이션 데이터세트(360)과 관련된 데이터세트 그룹에 대한 정족수 요건을 1로 설정할 수 있다. 따라서, 어플리케이션 데이터세트(360)에 어플리케이션 데이터를 추가하기 위하여 다른 시스템 유닛들(115)로부터의 동의 표를 획득하는 것이 필요하지 않게 된다.An application data set may be created (block 530) and application data may be added to the application data set (block 540). For example, the distribution layer 340 may generate an application data set 360 in the storage layer 350, receive application data from the application 332, add the received application data to the application data set 360 can do. It should also be noted that the particular system unit 115 that created the application data set entry in the distributed data set identifier field 420 of the system data set 358 is the first system unit 115 associated with the application data set, The distribution layer 340 may set the quorum requirement to 1 for the data set group associated with the application data set 360 if the application layer 115 does not belong to the data set group associated with the application data set. Thus, it is not necessary to acquire a consent table from the other system units 115 to add application data to the application data set 360.

다시 블록 515를 설명하면, 어플리케이션 데이터세트 식별자가 시스템 데이터세트에 존재하는 것으로 판단되는 경우(블록 515 - 예), 어플리케이션 데이터세트와 관련된 데이터세트 그룹으로의 추가를 요청하기 위하여 분산 제어 시스템(110)에 있는 다른 시스템 유닛들(115)에게 요청이 송신될 수 있다(블록 550). 분산 데이터세트 식별자 필드(420)는 어떠한 시스템 유닛들(115)이 특정 분산 데이터세트와 관련되어 있는지를 나타내고 있는 정보를 포함하고 있지 않을 수 있기 때문에 제어기(210)는 분산 제어 시스템(110)에 있는 다른 시스템 유닛들(115)(예를 들어, 다른 모든 시스템 유닛들(115))에게 데이터세트 그룹으로의 추가 요청을 송신해야 할 수 있다.Again, block 515 illustrates that if the application data set identifier is determined to be present in the system data set (block 515 - Yes), the distribution control system 110 may request to add to the data set group associated with the application data set, A request may be sent to other system units 115 in the network (block 550). Since the distributed data set identifier field 420 may not contain information indicating which system units 115 are associated with a particular distributed data set, It may be necessary to send another request to the other system units 115 (e.g., all other system units 115) to the data set group.

요청 시스템 유닛이 분산 데이터세트에 추가되었다고 하는 통지가 다른 시스템 유닛으로부터 수신될 수 있다(블록 560). 예를 들어, 분산 제어 시스템(110)에서 어플리케이션 데이터세트와 관련된 데이터세트 그룹에 있는 하나 이상의 다른 시스템 유닛들(115)은 요청을 처리하여 요청 시스템 유닛(115)을 데이터세트 그룹에 추가할 수 있다. 존재하고 있는 데이터세트 그룹에 시스템 유닛(115)을 추가하는 처리는 도 7을 통하여 후술하기로 한다. 일단 요청 시스템 유닛(115)이 데이터세트 그룹에 추가되면, 요청 시스템 유닛(115)을 추가한 특정 시스템 유닛(115)은 요청 시스템 유닛(115)에게 통지를 송신할 수 있다.A notification that the requesting system unit has been added to the distributed data set may be received from another system unit (block 560). For example, in the distributed control system 110, one or more other system units 115 in the data set group associated with the application data set may process the request to add the requesting system unit 115 to the data set group . The processing of adding the system unit 115 to an existing data set group will be described later with reference to FIG. Once the requesting system unit 115 is added to the data set group, the particular system unit 115 that has added the requesting system unit 115 can send a notification to the requesting system unit 115. [

데이터세트 그룹에 추가되었다고 하는 통지를 수신함에 대한 응답으로, 다른 시스템 유닛으로부터 어플리케이션 데이터세트가 수신되고(블록 570), 수신된 어플리케이션 데이터세트가 저장 계층에 추가될 수 있다(블록 580). 예를 들어, 분산 계층(340)은 다른 시스템 유닛(115)으로부터 어플리케이션 데이터세트를 수신하고, 수신된 어플리케이션 데이터세트를 저장 계층(350)에 저장할 수 있다. 어플리케이션 데이터세트는 데이터세트 그룹과 관련되고, 어플리케이션 데이터세트에 대한 동작을 수행함에 있어서의 정족수 요건과 관련된 시스템 유닛들(115)의 리스트를 포함할 수 있다.In response to receiving the notification that it has been added to the data set group, an application data set is received from another system unit (block 570) and the received application data set may be added to the storage layer (block 580). For example, the distribution layer 340 may receive an application data set from another system unit 115 and store the received application data set in the storage layer 350. The application data set may be associated with a data set group and may include a list of system units 115 associated with a quorum requirement in performing operations on the application data set.

도 6은 본 발명의 하나 이상의 실시예에 따라 분산 제어 시스템의 어플리케이션 데이터세트에 존재하고 있는 어플리케이션 데이터의 변경에 대한 흐름도이다. 몇몇 실시예에 따르면, 도 6의 프로세스 중 일부 또는 전체는 제어기(210)와는 분리된, 및/또는 제어기(210)에 포함되어 있는 다른 디바이스 또는 디바이스 그룹에 의하여 수행될 수 있다.6 is a flow diagram of a change in application data present in an application data set of a distributed control system in accordance with one or more embodiments of the present invention. According to some embodiments, some or all of the process of FIG. 6 may be performed by another device or group of devices that are separate from, and / or included in, the controller 210.

도 6의 프로세스는 어플리케이션 데이터세트에 있는 어플리케이션 데이터에 대한 변경 요청을 감지하는 단계를 포함할 수 있다(블록 610). 예시적인 것으로서, 어플리케이션(332)은 특정 주변 디바이스(230)로부터의 데이터 수신, 특정 주변 디바이스(230)로 송신된 명령 기록, 연산의 결과 기록과 같은 어플리케이션 데이터 및/또는 어플리케이션(332)에 의하여 생성된 다른 종류의 어플리케이션 데이터를 생성할 수 있다. 다른 예시적인 것으로서, 어플리케이션(332)은 어플리케이션 데이터세트(360)에 존재하고 있는 어플리케이션 데이터를 수정하고, 갱신하고, 삭제하고, 및/또는 변경할 것을 선택할 수 있다. 어플리케이션(332)은 어플리케이션 데이터 변경을 분산 계층(340)에 제공할 수 있다.The process of FIG. 6 may include detecting a change request for application data in the application data set (block 610). As an illustrative example, application 332 may be generated by application data such as data reception from a particular peripheral device 230, command recording sent to a specific peripheral device 230, result recording of an operation, and / or application 332 It is possible to generate other kinds of application data. As another example, application 332 may choose to modify, update, delete, and / or modify application data residing in application data set 360. The application 332 may provide application data changes to the distribution layer 340.

어플리케이션 데이터세트와 관련된 데이터세트 그룹에 있는 다른 시스템 유닛들이 확인될 수 있으며(블록 620), 어플리케이션 데이터세트의 어플리케이션 데이터를 변경하기 위하여 확인된 다른 시스템 유닛들에게 제안이 송신될 수 있다(블록 630). 예를 들어, 분산 계층(340)은 어플리케이션 데이터세트(360)에 접근하고, 시스템 유닛 필드(440)에서 시스템 유닛들(115)이 확인되었는지를 판단하며, 시스템 유닛 필드(440)에서 확인된 시스템 유닛들(115)에게 어플리케이션 데이터 변경에 대한 제안을 송신할 수 있다.Other system units in the data set group associated with the application data set may be identified (block 620) and a suggestion may be sent to other system units identified to modify the application data of the application data set (block 630) . For example, the distribution layer 340 may access the application data set 360, determine whether the system units 115 have been identified in the system unit field 440, Units 115 to change the application data.

어플리케이션 데이터세트에 있는 어플리케이션 데이터를 변경하기 위하여 합의가 획득될 수 있는데(블록 640), 획득된 합의에 대한 응답으로 제안된 변경이 어플리케이션 데이터세트에 적용될 수 있다(블록 650). 시스템 유닛(115)은 제안된 변경에 동의한다고 하는 정족수의 동의 표를 수신할 수 있다. 예를 들어, 10개의 시스템 유닛들(115)이 데이터세트 그룹에 관련되어 있으면, 요청 시스템 유닛(115)은 어플리케이션 데이터세트(360)의 어플리케이션 데이터를 변경하기 위하여 관련된 6개의 시스템 유닛들(115)로부터 동의 표를 수신해야 할 수 있다. 일단 6개의 동의 표가 수신되면, 제안된 변경에 대한 합의에 이르게 되고, 제안된 변경이 수행된다. 제안된 변경에 대한 합의를 획득한 것에 대한 응답으로, 분산 계층(340)은 전술한 추가, 변경, 갱신, 삭제, 및/또는 저장 계층(350)에 있는 어플리케이션 데이터세트(360)의 어플리케이션 데이터에 대한 변경을 수행할 수 있다.An agreement may be obtained to modify the application data in the application data set (block 640), and the proposed change in response to the obtained agreement may be applied to the application data set (block 650). The system unit 115 may receive a quorum consent table indicating that the proposed change is agreed to. For example, if ten system units 115 are associated with a data set group, then the requesting system unit 115 may be associated with six associated system units 115 to modify the application data of the application data set 360. For example, ≪ / RTI > Once six consent tables are received, an agreement on the proposed changes is reached, and the proposed changes are performed. In response to obtaining an agreement on the proposed changes, the distribution layer 340 may be configured to update the application data in the application data set 360 in the add, change, update, delete, and / Can be performed.

도 7은 본 발명의 하나 이상의 실시예에 따라 분산 제어 시스템의 어플리케이션 데이터세트와 관련된 데이터세트 그룹에 시스템 유닛이 추가되도록 하는 요청을 처리하는 것을 나타낸 흐름도이다. 몇몇 실시예에 따르면, 도 7의 프로세스는 제어기(210)에 의하여 수행될 수 있다. 다른 실시예에 따르면, 도 7의 프로세스 중 일부 또는 전체는 제어기(210)와는 분리된, 및/또는 제어기(210)에 포함되어 있는 다른 디바이스 또는 디바이스 그룹에 의하여 수행될 수 있다.7 is a flow diagram illustrating processing a request to add a system unit to a data set group associated with an application data set of a distributed control system in accordance with one or more embodiments of the present invention. According to some embodiments, the process of FIG. 7 may be performed by the controller 210. According to another embodiment, some or all of the process of FIG. 7 may be performed by another device or group of devices that are separate from and / or included in the controller 210.

도 7의 프로세스는 어플리케이션 데이터세트와 관련된 데이터세트 그룹으로 추가되고자 하는 다른 시스템 유닛으로부터 요청을 수신하는 단계(블록 710)를 포함할 수 있다. 예를 들어, 시스템 유닛(115)의 제어기(210)는 어플리케이션 데이터세트와 관련된 데이터세트 그룹으로 추가되고자 하는 요청 시스템 유닛으로부터 요청을 수신할 수 있다. 시스템 유닛(115)은 요청을 수신하고, 시스템 유닛(115)이 데이터세트 그룹과 관련된 경우 해당 요청이 적절한지를 판단할 수 있다. 예를 들어, 시스템 유닛(115)은 요청에 의하여 확인된 어플리케이션(332)과 관련된 어플리케이션 데이터세트(360)가 저장 계층(350)에 존재하고 있는지 판단할 수 있다.The process of FIG. 7 may include receiving a request (block 710) from another system unit to be added to the data set group associated with the application data set. For example, the controller 210 of the system unit 115 may receive a request from a requesting system unit that is to be added as a data set group associated with the application data set. The system unit 115 may receive the request and may determine if the request is appropriate if the system unit 115 is associated with a data set group. For example, the system unit 115 may determine whether the application data set 360 associated with the application 332 identified by the request exists in the storage layer 350. [

데이터세트 그룹에 있는 다른 시스템 유닛들이 확인될 수 있으며(블록 720), 데이터세트 그룹에 요청 시스템 유닛을 추가하기 위하여 확인된 다른 시스템 유닛들에게 제안이 송신될 수 있다(블록 730). 예를 들어, 분산 계층(340)은 어플리케이션 데이터세트(360)에 접근하고, 시스템 유닛 필드(440)에서 시스템 유닛들(115)이 확인되었는지를 판단하며, 요청 시스템 유닛(115)의 추가에 대한 제안을 시스템 유닛 필드(440)에서 확인된 시스템 유닛들(115)에게 송신할 수 있다.Other system units in the data set group may be identified (block 720) and a suggestion may be sent to other system units identified to add the request system unit to the data set group (block 730). For example, the distribution layer 340 may access the application data set 360, determine whether the system units 115 have been identified in the system unit field 440, The proposal may be sent to the system units 115 identified in the system unit field 440.

요청 시스템 유닛을 데이터세트 그룹에 추가하기 위하여 합의가 획득될 수 있으며(블록 740), 획득된 합의에 대한 응답으로 요청 시스템 유닛이 데이터세트 그룹에 추가될 수 있다(블록 750). 또한, 데이터세트 그룹에 대한 정족수 요건이 조정될 수 있다(블록 760). 시스템 유닛(115)은 요청 시스템 유닛(115)을 추가하기 위하여 제안된 변경에 동의한다고 하는 정족수의 동의 표를 수신할 수 있다. 예를 들어, 10개의 시스템 유닛들(115)이 데이터세트 그룹에 있으면, 제안 시스템 유닛(115)은 데이터세트 그룹에 요청 시스템 유닛(115)을 추가하기 위하여 관련된 6개의 시스템 유닛들(115)로부터 동의 표를 수신해야 할 수 있다. 일단 6개의 동의 표가 수신되면, 제안된 추가에 대한 합의에 이르게 되고, 요청 시스템 유닛(115)은 어플리케이션 데이터세트(360)와 관련된 데이터세트 그룹에 추가될 수 있게 된다. 예를 들어, 분산 계층(340)은 어플리케이션 데이터세트(360)의 요청 시스템 유닛(115)을 위하여 시스템 유닛 필드(440)를 생성할 수 있다. 또한, 분산 계층(340)은 어플리케이션 데이터세트(360)의 정족수 필드(450)에 있는 정족수 요건을 조정할 수 있다. 예를 들어, 10개의 시스템 유닛들(110)이 데이터세트 그룹과 관련되어 있었고, 현재 11개의 시스템 유닛들(115)이 데이터세트 그룹과 관련되어 있으면, 6인 정족수 요건은 변경되지 않을 수 있다. 그러나, 다른 시스템 유닛(115)이 데이터세트 그룹에 추가되어 총 12개의 시스템 유닛들이 되면, 정족수 요건은 6에서 7로 변경될 수 있다.An agreement may be obtained to add the requesting system unit to the data set group (block 740), and the requesting system unit may be added to the data set group in response to the obtained agreement (block 750). Also, the quorum requirement for the data set group may be adjusted (block 760). The system unit 115 may receive a quorum consent table stating that it agrees with the proposed changes to add the requesting system unit 115. For example, if ten system units 115 are in a data set group, then the proposal system unit 115 may send the request system unit 115 to the data set group from the associated six system units 115 You may need to receive a consent form. Once six consensus tables have been received, an agreement on the proposed addition is reached, and the requesting system unit 115 is allowed to be added to the data set group associated with the application data set 360. For example, the distribution layer 340 may generate a system unit field 440 for the requesting system unit 115 of the application data set 360. The distribution layer 340 may also adjust the quorum requirement in the quorum field 450 of the application data set 360. For example, if ten system units 110 were associated with a dataset group, and the current eleven system units 115 are associated with a dataset group, the quorum requirement of six may not change. However, if another system unit 115 is added to the data set group to become a total of 12 system units, the quorum requirement may be changed from 6 to 7.

몇몇 실시예에 따르면, 특정 시스템 유닛(115)이 어플리케이션 데이터세트와 관련된 데이터세트 그룹에서의 삭제를 요청하면 삭제 프로세스가 수행될 수 있다. 예를 들어, 어플리케이션(332)이 특정 시스템 유닛(115)에서 제거(uninstall)될 수 있다. 제거 프로세스의 일부로서, 어플리케이션(332)은 특정 시스템 유닛(115)이 어플리케이션 데이터세트(360)에서 삭제될 것을 요청할 수 있다. 따라서, 특정 시스템 유닛(115)은 어플리케이션 데이터세트(360)와 관련된 데이터세트 그룹에 있는 다른 시스템 유닛들(115)에게 삭제되는 것에 대한 제안을 송신할 수 있다. 제안에 대한 합의가 획득되면, 특정 시스템 유닛(115)이 데이터세트 그룹에서 삭제되고, 어플리케이션 데이터세트(360)가 저장 계층(350)에서 제거될 수 있다.According to some embodiments, a deletion process may be performed if a particular system unit 115 requests deletion in a data set group associated with an application data set. For example, the application 332 may be uninstalled at a particular system unit 115. As part of the removal process, the application 332 may request that the particular system unit 115 be deleted from the application data set 360. Thus, the particular system unit 115 may send suggestions for the other system units 115 in the data set group associated with the application data set 360 to be deleted. Once a consensus on the proposal is obtained, the particular system unit 115 may be deleted from the data set group, and the application data set 360 may be removed from the storage layer 350.

몇몇 실시예에 따르면, 어플리케이션(332)의 설치는 자동화될 수 있다. 따라서, 한번에 한번씩 각각의 시스템 유닛(115)에 어플리케이션(332)을 설치하기 위하여 관리자가 관리 디바이스(130)를 이용하기 보다는 어플리케이션(332)은 하나의 시스템 유닛(115)에 설치되고, 일련의 설치 명령이 시스템 유닛(115)에 설치될 수 있다. 설치 명령은 어플리케이션(332)의 일부 또는 별도의 프로그램, 어플리케이션 및/또는 스크립트 파일로서 포함될 수 있다. 설치 명령은 어플리케이션(332)을 설치하기 위한 하나 이상의 기준을 포함할 수 있으며, 특정 시스템 유닛(115)이 하나 이상의 기준을 만족하면 어플리케이션(332)을 설치하라는 명령이 분산 제어 시스템(110)의 다른 시스템 유닛들(115)에게 송신될 수 있다. 따라서, 특정 시스템 유닛(115)에 의하여 하나 이상의 기준이 만족되면, 해당 시스템 유닛(115)은 어플리케이션(332)을 설치할 수 있다. 어플리케이션(332)이 해당 시스템 유닛(115)에 설치된 이후에는 해당 시스템 유닛(115)은 어플리케이션(332)와 관련되고, 어플리케이션 데이터세트(360)와 관련된 데이터세트 그룹으로 추가되기 위하여 도 5의 프로세스를 수행할 수 있다. 특정 시스템 유닛(115)에 어플리케이션(332)를 설치하기 위한 하나 이상의 기준은 해당 시스템 유닛(115)과 관련된 하드웨어 설정; 해당 시스템 유닛(115)에 연결된 주변 디바이스의 특정 종류; 해당 시스템 유닛(115)과 관련된 위치 유형; 해당 시스템 유닛(115)에 의하여 기록된 이벤트 종류; 해당 시스템 유닛(115)에 설치된 특정 어플리케이션; 및/또는 다른 종류의 기준을 포함할 수 있다.According to some embodiments, the installation of application 332 may be automated. Therefore, rather than using the management device 130 by the administrator to install the application 332 in each system unit 115 once at a time, the application 332 is installed in one system unit 115, An instruction may be installed in the system unit 115. [ The installation command may be included as part of the application 332 or as a separate program, application and / or script file. The install command may include one or more criteria for installing the application 332 and if the particular system unit 115 meets one or more criteria an instruction to install the application 332 may be sent to another May be transmitted to the system units (115). Thus, if one or more criteria are met by the particular system unit 115, the corresponding system unit 115 may install the application 332. [ After the application 332 is installed in the corresponding system unit 115, the corresponding system unit 115 associates with the application 332 and adds the process of Figure 5 to be added to the data set group associated with the application data set 360 Can be performed. One or more criteria for installing an application 332 in a particular system unit 115 may include hardware settings associated with that system unit 115; A specific type of peripheral device connected to the system unit 115; A location type associated with the system unit 115; An event type recorded by the corresponding system unit 115; A specific application installed in the corresponding system unit 115; And / or other types of criteria.

도 8은 시스템 유닛(115)의 예시적인 물리 레이아웃(800)을 나타낸 평면도이다. 도 8에 도시된 바와 같이, 물리 레이아웃(800)은 벽(810), 도어(820), 제어기(210), 리더 디바이스(240), 잠금 디바이스(250), 센서(260) 및 액추에이터(270)를 포함할 수 있다.8 is a plan view showing an exemplary physical layout 800 of the system unit 115. As shown in FIG. 8, the physical layout 800 includes a wall 810, a door 820, a controller 210, a reader device 240, a lock device 250, a sensor 260, and an actuator 270, . ≪ / RTI >

벽(810)은 빌딩의 룸(room)과 같은 보안 영역(830)을 수용한다. 도어(820)는 사용자에게 보안 영역(830)으로의 접근을 제공한다. 일 실시예에 따르면, 제어기(210)는 보안 영역(830)의 내부에 설치된다. 다른 실시예에 따르면, 제어기(210)는 보안 영역(830)의 외부에 설치될 수 있다. 리더 디바이스(240)는 보안 영역(830)의 외부에 설치되고, 잠금 디바이스(250)는 보안 영역(440) 내부의 벽(810) 및 도어(820)에 설치된다. 이와 같은 예에 따르면, 센서(260)는 보안 영역(830)의 외부에 마운팅된 모니터링 디바이스이다. 액추에이터(270)는 이러한 예에 따른 모니터링 디바이스의 시야를 제어하기 위하여 사용되는 모터를 포함한다.The wall 810 accommodates a secure area 830 such as a room of a building. The door 820 provides access to the secure area 830 to the user. According to one embodiment, the controller 210 is installed inside the secure area 830. According to another embodiment, the controller 210 may be installed outside the secure area 830. The reader device 240 is installed outside the security area 830 and the locking device 250 is installed in the wall 810 and the door 820 inside the security area 440. According to such an example, the sensor 260 is a monitoring device mounted outside of the secure area 830. Actuator 270 includes a motor used to control the field of view of the monitoring device according to this example.

(예를 들어, PIN 번호 입력, 접속 카드 스캐닝, 홍채 스캐닝 등을 입력함으로써) 사용자가 리더 디바이스(240)에 인증서를 입력하면, 제어기(210)는 인증서를 사용하여 사용자의 신원을 확인하고, 접근 규칙 테이블을 검색하여 사용자의 신원 및 접근 규칙을 기초로 사용자에 의한 접근 허용 여부를 판단할 수 있다. 접근이 허용되는 것으로 제어기(210)가 판단하면, 제어기(210)는 잠금 디바이스(250)를 동작시켜 도어(820)의 잠금을 해제하여 사용자에 의한 보안 영역(830)으로의 접근을 허용한다.When the user enters a certificate into the reader device 240 (for example, by entering a PIN number, access card scanning, iris scanning, etc.), the controller 210 uses the certificate to verify the identity of the user, The rule table can be searched to determine whether or not the user can allow access based on the user's identity and access rules. If the controller 210 determines that access is allowed, the controller 210 operates the locking device 250 to unlock the door 820 to allow access to the security area 830 by the user.

도 8은 물리적 레이아웃(800)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 물리적 레이아웃(800)는 도 8에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소, 또는 다르게 배치된 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 물리적 레이아웃(800)의 어느 구성요소(또는 구성요소의 그룹)라도 물리적 레이아웃(800)에 구비된 하나 이상의 다른 구성요소에 의하여 수행하도록 명시된 하나의 작업 또는 복수의 작업을 수행할 수 있다.8 illustrates exemplary components of a physical layout 800, it is appreciated that, according to other embodiments, the physical layout 800 may include a small number of components, other components, additional components, But may include otherwise disposed components. Additionally or alternatively, any component (or group of components) of the physical layout 800 may perform one or more operations specified to be performed by one or more other components included in the physical layout 800 .

도 9는 분산 제어 시스템(110)의 예시적인 물리적 레이아웃(900)을 나타낸 평면도이다. 도 9에 도시된 바와 같이, 물리적 레이아웃(900)은 룸(920-A 내지 920-F)로 구성된 빌딩(910)을 포함할 수 있다. 이더넷 네트워크와 같은 로컬 네트워크(930)는 시스템 유닛(115-A 내지 115F)간에 상호 연결될 수 있다. 이러한 예에 따르면, 시스템 유닛(115-A)은 2개의 도어가 룸(920-A)을 향하도록 제어하고; 시스템 유닛(115-B)은 외부 도어가 룸(920-B)를 향하도록 제어하고; 시스템 유닛(115-C)는 하나의 도어가 룸(920-B)에서 룸(920-C)를 향하도록 제어하고, 시스템 유닛(115-D)는 하나의 도어가 룸(920-C)에서 룸(920-D)를 향하도록 제어하고; 시스템 유닛(115-E)는 하나의 도어가 룸(920-D)에서 룸(920-E)를 향하도록 제어하며; 시스템 유닛(115-F)는 외부 도어가 룸(920-F)를 향하도록 제어한다.9 is a top view of an exemplary physical layout 900 of the distributed control system 110. In FIG. As shown in FIG. 9, the physical layout 900 may include a building 910 comprised of rooms 920-A through 920-F. A local network 930, such as an Ethernet network, may be interconnected between the system units 115-A through 115F. According to this example, the system unit 115-A controls the two doors toward the room 920-A; The system unit 115-B controls the external door to face the room 920-B; The system unit 115-C controls one door from the room 920-B to the room 920-C and the system unit 115-D controls one door from the room 920- To face room 920-D; The system unit 115-E controls one door from the room 920-D to the room 920-E; The system unit 115-F controls the external door to face the room 920-F.

이러한 예에 따르면, 시스템 유닛(115-A 내지 115-F)은 중앙 제어 디바이스(예를 들어, 서버)를 포함하지 않고, 하나 이상의 분산 데이터 세트를 포함할 수 있다. 예를 들어, 시스템 유닛(115-A 내지 115-F)은 분산 인증 테이블, 분산 접근 규칙 테이블, 및/또는 분산 이벤트 로그를 보관할 수 있다. 관리자가 관리 디바이스(130)를 이용하여 시스템 유닛(115-A)에 로그인하고, 사용자를 추가하고 사용자와 관련된 인증서를 추가하는 것을 가정하자. 이렇게 추가된 인증서는 사용자가 접근하고자 하는 룸의 도어를 제어하는 다른 시스템 유닛들(115)에게 분산될 수 있다. 예를 들어, 시스템 유닛(115-B)이 실패하면, 다른 시스템 유닛들에 포함된 분산 이벤트 로그에 의하여 시스템 유닛(115-B)에 의하여 수집된 데이터는 계속 유효할 수 있다.According to this example, the system units 115-A through 115-F do not include a central control device (e.g., a server) and may include one or more distributed data sets. For example, the system units 115-A through 115-F may store a distributed authentication table, a distributed access rules table, and / or a distributed event log. Suppose an administrator logs in to the system unit 115-A using the management device 130, adds a user and adds a certificate associated with the user. This added certificate can be distributed to other system units 115 that control the door of the room that the user wishes to access. For example, if the system unit 115-B fails, the data collected by the system unit 115-B by the distributed event log included in the other system units may continue to be valid.

도 9는 물리적 레이아웃(900)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 물리적 레이아웃(900)은 도 9에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소 또는 다르게 배치된 구성요소를 포함할 수 있다. 예를 들어, 다른 실시예에 따르면, 중앙 제어 디바이스(예를 들어, 서버)가 하나 이상의 분산 데이터세트와 함께 이용될 수 있다. 추가적으로 또는 선택적으로, 물리적 레이아웃(900)의 하나 이상의 구성요소는 물리적 레이아웃(900)에 구비된 하나 이상의 다른 구성요소에 의하여 수행하도록 명시된 하나 이상의 작업을 수행할 수 있다.Although FIG. 9 illustrates exemplary components of a physical layout 900, according to another embodiment, the physical layout 900 may include a small number of components, other components, additional components, or otherwise And may include deployed components. For example, according to another embodiment, a central control device (e.g., a server) may be used with one or more distributed data sets. Additionally or alternatively, one or more components of the physical layout 900 may perform one or more operations specified to be performed by one or more other components included in the physical layout 900.

도 10a 내지 도 10c는 본 발명의 하나 이상의 실시예에 따라 예시적 어플리케이션 데이터세트의 시나리오를 나타낸 도면이다. 예를 들어, 도 9의 룸(920-C)에 인원수 카운팅 어플리케이션이 필요한 경우를 가정해 보자. 룸(920-C)에 있는 사람의 수를 카운팅하기 위해서는 어떠한 도어를 통해서든 룸(920-C)에 드나드는 사람을 카운팅 해야 할 필요가 있다. 따라서, 인원수 카운팅 어플리케이션은 시스템 유닛들(115-A, 115-C 및 115-D)의 제어기(210)에 설치되어야 한다.Figures 10A-10C illustrate scenarios of an exemplary application data set in accordance with one or more embodiments of the present invention. For example, suppose that a room counting application is needed in room 920-C of FIG. In order to count the number of people in the room (920-C), it is necessary to count the number of people going to and from the room (920-C) through any door. Thus, the number counting application must be installed in the controller 210 of the system units 115-A, 115-C and 115-D.

도 10a는 카운팅 어플리케이션(1010-A)이 시스템 유닛(115-A)에 설치된 이후의 신호 흐름 시나리오(1000)를 도시하고 있다. 카운팅 어플리케이션(1010-A)이 시스템 유닛(115-A)에 설치된 이후에는 카운팅 어플리케이션(1010-A)은 분산 계층(340-A)을 통하여 카운팅 어플리케이션(1010-A)와 관련된 분산 어플리케이션 데이터세트로의 접근을 요청할 수 있다(신호 1012). 분산 계층(340-A)은 카운팅 어플리케이션(1010)에 대한 어플리케이션 데이터세트 엔트리가 시스템 데이터세트(358)에 존재하지 않은 것을 확인할 수 있다. 이에, 분산 계층(340-A)은 시스템 데이터세트(358)에 있는 카운팅 어플리케이션 데이터세트에 대한 엔트리의 추가 제안을 분배할 수 있다(신호 1014). 제안된 변경에 대한 합의가 획득된 이후, 분산 계층(340-A)은 카운팅 어플리케이션 데이터세트 식별자 엔트리(1017)을 생성하기 위하여 시스템 데이터세트(358)에 새로운 엔트리를 생성할 수 있다. 합의에 이른 이후에 수락된 제안을 통하여 시스템 데이터세트(358)에 대한 갱신이 다른 시스템 유닛들(115-B 내지 115-F)에게 분배될 수 있다. 분산 계층(340-A)은 저장 계층(350)에 카운팅 어플리케이션 데이터세트(1020-A)의 생성을 수행할 수 있다(신호 1018). 이에, 카운팅 어플리케이션(1010-A)는 분산 계층(340-A)을 통하여 카운팅 어플리케이션 데이터세트(1020-A)를 사용할 수 있게 된다.10A shows a signal flow scenario 1000 after the counting application 1010-A is installed in the system unit 115-A. After the counting application 1010-A is installed in the system unit 115-A, the counting application 1010-A sends the distributed application data set associated with the counting application 1010-A via the distribution layer 340- (Signal 1012). The distribution layer 340-A may verify that the application data set entry for the counting application 1010 is not present in the system data set 358. [ The distribution layer 340-A may then distribute further suggestions of entries for the counting application data set in the system data set 358 (signal 1014). After an agreement on the proposed change is obtained, the distribution layer 340-A may create a new entry in the system data set 358 to generate the counting application data set identifier entry 1017. [ An update to the system data set 358 may be distributed to the other system units 115-B to 115-F through the accepted proposal after reaching consensus. The distribution layer 340-A may perform the generation of the counting application data set 1020-A in the storage layer 350 (signal 1018). The counting application 1010-A is then enabled to use the counting application data set 1020-A via the distribution layer 340-A.

도 10b는 카운팅 어플리케이션(1010-C)이 시스템 유닛(115-C)에 설치된 이후의 신호 흐름 시나리오(1030)를 도시하고 있다. 카운팅 어플리케이션(1010-C)이 시스템 유닛(115-C)에 설치된 이후에는 카운팅 어플리케이션(1010-C)은 분산 계층(340-C)을 통하여 카운팅 어플리케이션(1010-C)와 관련된 분산 어플리케이션 데이터세트로의 접근을 요청할 수 있다(신호 1031). 분산 계층(340-C)은 어플리케이션 데이터세트 엔트리(1017)가 시스템 데이터세트(358)에 존재하는 것으로 판단할 수 있다. 이에, 시스템 유닛(115-C)은 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹으로 추가되도록 하는 요청을 시스템 유닛(115-A)에게 송신하고(신호 1032-A), 시스템 유닛(115-B)에게 송신하고(신호 1032-B), 시스템 유닛(115-D)에게 송신하고(신호 1032-D), 시스템 유닛(115-E)에게 송신하며(신호 1032-E), 시스템 유닛(115-F)에게 송신할 수 있다(신호 1032-F). 시스템 유닛(115-A)만이 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 포함되어 있기 때문에 시스템 유닛(115-A)만이 요청에 응답하게 된다.Figure 10B shows a signal flow scenario 1030 after the counting application 1010-C has been installed in the system unit 115-C. After the counting application 1010-C is installed in the system unit 115-C, the counting application 1010-C is connected to the distributed application data set associated with the counting application 1010-C via the distribution layer 340- (Signal 1031). Distribution layer 340-C may determine that application data set entry 1017 is present in system data set 358. [ The system unit 115-C then sends a request (signal 1032-A) to the system unit 115-A to be added to the data set group associated with the counting application data set 1020, B (signal 1032-B), sends it to system unit 115-D (signal 1032-D), sends it to system unit 115-E (signal 1032-E) -F) (signal 1032-F). Only system unit 115-A responds to the request because only system unit 115-A is included in the data set group associated with counting application data set 1020. [

시스템 유닛(115-A)이 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트에 있는 유일한 시스템 유닛이기 때문에 카운팅 어플리케이션 데이터세트(1020)에 대하여 제안된 어떠한 변경되 자동적으로 합의로 수신된다. 따라서, 시스템 유닛(115-A)은 요청을 수락하고, 시스템 유닛(115-C)을 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 추가하고자 하는 합의를 갖게 된다. 시스템 유닛(115-A)은 카운팅 어플리케이션 데이터세트(1020-A)와 관련된 데이터세트 그룹에 시스템 유닛(115-C)을 추가하고(신호 1034), 시스템 유닛(115-C)이 카운팅 데이터세트 그룹(1020)에 추가되었다고 하는 통지를 시스템 유닛(115-C)에 송신할 수 있다(신호 1036). 이에, 시스템 유닛(115-C)은 카운팅 어플리케이션 데이터세트(1020)를 수신하고(신호 1038), 시스템 유닛(115-C)은 수신된 카운팅 어플리케이션 데이터세트(1020)를 저장 계층(350)에 저장할 수 있다.Any proposed changes to the counting application data set 1020 are automatically received in agreement because the system unit 115-A is the only system unit in the data set associated with the counting application data set 1020. [ Thus, the system unit 115-A will have an agreement to accept the request and add the system unit 115-C to the data set group associated with the counting application data set 1020. [ The system unit 115-A adds a system unit 115-C to the data set group associated with the counting application data set 1020-A (signal 1034), and the system unit 115- (Signal 1036) to the system unit 115-C that it has been added to the system unit 115-C. The system unit 115-C receives the counting application data set 1020 (signal 1038) and the system unit 115-C stores the received counting application data set 1020 in the storage layer 350 .

이후에, 카운팅 어플리케이션(1010-C)은 어플리케이션 데이터를 생성할 수 있다. 예를 들어, 사람이 시스템 유닛(115-C)과 관련된 도어를 통하여 룸(920-C)을 나가면, 시스템 유닛(115-C)과 관련된 센서 디바이스는 나간 사람을 감지한다. 카운팅 어플리케이션(1010-C)은 분산 계층(340-C)을 통하여 어플리케이션 데이터세트(1020-C)에 생성된 어플리케이션 데이터를 추가할 것을 제안할 수 있다(신호 1040). 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 있는 유일한 다른 시스템 유닛이 시스템 유닛(115-A)이기 때문에, 데이터 추가에 대한 제안은 시스템 유닛(115-A)에게 송신된다(신호 1042). 시스템 유닛(115-A)는 변경에 동의할 수 있고, 이에 시스템 유닛(115-C)은 요구되는 정족수 2를 만족함으로써(자기 자신이 제안한 변경에 자동적으로 동의하도록 함으로써) 합의를 획득할 수 있다. 그 결과, 제안된 변경이 시스템 유닛(115-A) 및 시스템 유닛(115-C)에 적용될 수 있게 된다(신호 1044).Thereafter, the counting application 1010-C may generate application data. For example, if a person leaves room 920-C through the door associated with system unit 115-C, the sensor device associated with system unit 115-C senses the person leaving. The counting application 1010-C may propose to add the generated application data to the application data set 1020-C via the distribution layer 340-C (signal 1040). Since the only other system unit in the data set group associated with the counting application data set 1020 is the system unit 115-A, a proposal for data addition is sent to the system unit 115-A (signal 1042). The system unit 115-A can agree to the change so that the system unit 115-C can obtain agreement (by automatically agreeing with the changes proposed by itself) by satisfying the required quorum number 2 . As a result, the proposed change becomes applicable to the system unit 115-A and the system unit 115-C (signal 1044).

도 10c는 카운팅 어플리케이션(1010-D)이 시스템 유닛(115-D)에 설치된 이후의 신호 흐름 시나리오(1050)를 도시하고 있다. 카운팅 어플리케이션(1010-D)이 시스템 유닛(115-D)에 설치된 이후에는 카운팅 어플리케이션(1010-D)은 분산 계층(340-D)을 통하여 카운팅 어플리케이션(1010-D)와 관련된 분산 어플리케이션 데이터세트로의 접근을 요청할 수 있다(신호 1051). 분산 계층(340-D)은 카운팅 어플리케이션 데이터세트 식별자 엔트리(1017)가 시스템 데이터세트(358)에 존재하는 것으로 판단할 수 있다. 이에, 시스템 유닛(115-C)은 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹으로 추가되도록 하는 요청을 시스템 유닛(115-A)에게 송신하고(신호 1052-A), 시스템 유닛(115-B)에게 송신하고(신호 1052-B), 시스템 유닛(115-C)에게 송신하고(신호 1052-C), 시스템 유닛(115-E)에게 송신하며(신호 1052-E), 시스템 유닛(115-F)에게 송신할 수 있다(신호 1052-F). 시스템 유닛들(115-A 및 115-C)만이 카운팅 어플리케이션 데이터세트(1020)와 관련되어 있기 때문에 시스템 유닛(115-A 및 115-C)만이 요청에 응답하게 된다.Figure 10C shows the signal flow scenario 1050 after the counting application 1010-D is installed in the system unit 115-D. After the counting application 1010-D is installed in the system unit 115-D, the counting application 1010-D is connected to the counting application 1010-D via the distribution layer 340- (Signal 1051). The distribution layer 340-D may determine that the counting application data set identifier entry 1017 is present in the system data set 358. [ The system unit 115-C then sends (signal 1052-A) a request to the system unit 115-A to be added to the data set group associated with the counting application data set 1020, B (signal 1052-B), transmits it to the system unit 115-C (signal 1052-C), transmits it to the system unit 115-E (signal 1052-E) -F) (signal 1052-F). Only system units 115-A and 115-C respond to the request because only system units 115-A and 115-C are associated with counting application data set 1020. [

시스템 유닛(115-A) 및 시스템 유닛(115-C)만이 요청을 수신하였기 때문에 시스템 유닛(115-A) 및 시스템 유닛(115-C)은 시스템 유닛(115-D)를 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 추가할 것을 제안할 수 있다. 시스템 유닛(115-C) 이전에 시스템 유닛(115-A)이 요청을 수신하고, 수신된 요청에 따라 동작하는 것을 가정하자. 시스템 유닛(115-A)은 시스템 유닛(115-D)를 추가하도록 하는 제안을 시스템 유닛(115-C)에게 송신하고(신호 1054), 자기 자신에게 송신할 것이다. 시스템 유닛(115-C)은 시스템 유닛(115-D)를 추가하도록 하는 제안을 시스템 유닛(115-A)에게 송신하고, 자기 자신에게 송신할 것이다(도 10c에 도시되지 않음). 시스템 유닛(115-A)에 의하여 송신된 제안이 먼저 수신되었기 때문에 시스템 유닛(115-C)으로부터의 이후 제안은 거부된다. 이에, 시스템 유닛(115-C)은 시스템 유닛(115-A)로부터의 제안에 동의하고, 자기 자신의 제안에 대해서는 거부하며(신호 1056), 시스템 유닛(115-A)은 자기 자신의 제안에 동의하고, 시스템 유닛(115-C)로부터의 제안에 대해서는 거부하게 된다(도 10c에 도시되지 않음). 이에, 시스템 유닛(115-A)은 제안에 대한 합의에 이르게 되고, 시스템 유닛(115-D)은 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 추가되며(신호 1058), 수락된 제안의 결과에 따라 변경이 배포된다.The system unit 115-A and the system unit 115-C send the system unit 115-D to the counting application data set < RTI ID = 0.0 > 1020 < / RTI > Assume that before the system unit 115-C, the system unit 115-A receives the request and operates according to the received request. The system unit 115-A will send (signal 1054) to the system unit 115-C and send to itself a suggestion to add the system unit 115-D. The system unit 115-C will send a suggestion to add the system unit 115-D to the system unit 115-A and transmit it to itself (not shown in Fig. 10C). Subsequent proposals from the system unit 115-C are rejected because the proposal sent by the system unit 115-A has been received first. Thus, the system unit 115-C agrees with the proposal from the system unit 115-A, rejects its own proposal (signal 1056), and the system unit 115- And rejects the proposal from the system unit 115-C (not shown in Fig. 10C). The system unit 115-A is brought to an agreement on the proposal and the system unit 115-D is added to the data set group associated with the counting application data set 1020 (signal 1058) The changes are distributed according to the results.

시스템 유닛(115-A)은 시스템 유닛(115-D)이 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 추가되었다고 하는 통지를 시스템 유닛(115-D)에게 송신하고(신호 1060), 카운팅 어플리케이션 데이터세트(1020)를 시스템 유닛(115-D)에게 제공하게 된다(신호 1062). 분산 계층(340-D)은 저장 계층(350)에 수신된 카운팅 어플리케이션 데이터세트(1020)를 저장할 수 있다(신호 1064). 이러한 경우 카운팅 어플리케이션 데이터세트(1020)와 관련된 데이터세트 그룹에 대한 정족수 요건은 변경될 필요가 없다.The system unit 115-A sends a notification to the system unit 115-D that the system unit 115-D has been added to the data set group associated with the counting application data set 1020 (signal 1060) And provides application data set 1020 to system unit 115-D (signal 1062). The distribution layer 340-D may store the received counting application data set 1020 in the storage layer 350 (signal 1064). In this case, the quorum requirement for the data set group associated with the counting application data set 1020 need not be changed.

이상과 같이, 첨부된 도면을 참조로 다양한 실시예가 설명되었다. 그러나, 후술하는 청구항을 통하여 제시한 발명의 범위를 벗어나지 않는 다양한 수정 및 변경이 적용될 수 있음은 자명하고, 추가적인 실시예가 구현될 수도 있다. 따라서, 상세한 설명 및 도면은 제한적이 아니라 예시적인 것으로 간주되어야 한다.As described above, various embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto without departing from the scope of the invention as set forth in the claims set forth below, and additional embodiments may be implemented. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

예를 들어, 일련의 블록이 도 5 내지 도 7과 같이 도시되어 있으나, 블록 및/또는 신호의 순서는 다른 실시예에 따라 수정될 수 있는 것이다. 또한, 종속적이지 않은 블록 및/또는 신호 흐름은 병렬적으로 수행될 수 있다.For example, although a series of blocks is illustrated in Figures 5-7, the order of blocks and / or signals may be modified in accordance with another embodiment. Also, non-dependent blocks and / or signal flow may be performed in parallel.

이상과 같이 설명한 시스템 및/또는 방법이 도면에 도시된 형태와 같이 소프트웨어, 펌웨어, 및 하드웨어의 다양한 형태로 구현될 수 있음은 명백할 것이다. 이러한 시스템 및 방법을 구현하는데 이용되는 실제 소프트웨어 코드 또는 특화된 제어 하드웨어는 실시예에 한정되지 않는다. 따라서, 시스템 및 방법의 동작 및 행동은 특별한 소프트웨어 코드를 참조하지 않고 설명된다 - 소프트웨어 및 제어 하드웨어는 여기세 설명된 것을 기초로 시스템 및 방법을 구현하도록 디자인된 것으로 이해될 수 있다.It will be apparent that the system and / or method described above may be implemented in various forms of software, firmware, and hardware, such as the forms shown in the figures. The actual software codes or specialized control hardware used to implement such systems and methods are not limited to the embodiments. Thus, the operations and behaviors of systems and methods are described without reference to particular software codes-software and control hardware may be understood as being designed to implement the systems and methods based on what has been described herein.

또한, 이상의 내용 중 특정 부분은 하나 이상의 기능을 수행하는 구성요소로서 구현될 수 있다. 여기서 이용되는 구성요소는 프로세서, ASIC 또는 FPGA와 같은 하드웨어, 또는 하드웨어 및 소프트웨어(예를 들어, 프로세서 실행 소프트웨어)의 조합을 포함할 수 있다.In addition, certain portions of the above may be implemented as components that perform one or more functions. The components used herein may include hardware such as a processor, ASIC or FPGA, or a combination of hardware and software (e.g., processor running software).

여기서 사용되고 있는 "포함하다" 및 "포함하는"과 같은 용어는 규정된 특징, 숫자(정수), 단계 또는 구성요소의 존재를 의미하지만, 하나 이상의 다른 특징, 숫자(정수), 단계, 구성요소 및 그 그룹의 존재 또는 추가를 부정하는 것은 아니다.As used herein, terms such as " comprises "and" comprising " mean the presence of stated features, integers, steps or components but may include the presence or absence of one or more other features, integers, It does not deny the existence or addition of the group.

본 명세서에서 이용되는 요소, 동작 또는 명령 중 어느 것도 이상과 같이 명확하게 설명되지 않으면 실시예에 대하여 중요하거나 본질적인 것으로 이해될 수 없다. 또한, 여기에서 사용된 것과 같이, "하나"는 하나 이상의 항목을 포함하는 것으로 이해될 수 있다. 또한, "기초로 하여"는 별도의 다른 설명이 없다면 "적어도 일부를 기초로 하여"를 의미하는 것으로 이해될 수 있다.Any of the elements, operations, or commands used herein may not be understood to be significant or essential to the embodiment unless explicitly described as such. Also, as used herein, "one" may be understood to include more than one item. Also, "based on" can be understood to mean "based on at least a portion" unless otherwise stated.

Claims (15)

분산 시스템의 디바이스에 의하여 수행되는 방법으로서,
어플리케이션 데이터세트로 접근하는 어플리케이션에 의한 요청을 상기 디바이스가 감지하는 단계로서, 상기 어플리케이션 데이터세트는 분산 데이터세트에 대응하고;
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템의 분산 시스템 데이터세트에 리스트되어 있는지를 상기 디바이스가 판단하는 단계;
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템 데이터세트에 리스트되어 있지 않은 것으로 판단한 것에 대한 응답으로 상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 상기 디바이스가 생성하는 단계; 및
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템 데이터세트에 존재하는 것으로 판단한 것에 대한 응답으로 상기 어플리케이션 데이터세트와 관련된 디바이스를 포함하는 데이터세트 그룹으로의 참여 요청을 상기 디바이스가 상기 분산 시스템의 다른 디바이스에게 송신하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.
A method performed by a device in a distributed system,
The device detecting a request by an application accessing an application data set, the application data set corresponding to a distributed data set;
Determining by the device whether an identifier for the application data set is listed in the distributed system data set of the distributed system;
Generating, by the device, an entry of an identifier for the application data set of the distributed system data set in response to determining that an identifier for the application data set is not listed in the distributed system data set; And
In response to determining that an identifier for the application data set is present in the distributed system data set, transmits a request for participation in a data set group including a device associated with the application data set to the other device The method comprising the steps of:
제 1항에 있어서,
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템의 분산 시스템 데이터세트에 리스트되어 있는지를 판단하는 단계는
상기 분산 시스템 데이터세트에 있는 분산 데이터세트의 식별자 리스트에 접근하는 단계; 및
상기 분산 데이터세트의 식별자에 대한 리스트가 상기 요청된 어플리케이션 데이터세트에 대한 식별자를 포함하는지 판단하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.
The method according to claim 1,
Wherein the step of determining whether an identifier for the application data set is listed in the distributed system data set of the distributed system
Accessing an identifier list of distributed data sets in the distributed system data set; And
And determining whether the list of identifiers of the distributed data set includes an identifier for the requested application data set.
제 1항 또는 제 2항에 있어서,
상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 생성한 것에 대한 응답으로 상기 디바이스의 저장 계층에 상기 어플리케이션 데이터세트를 생성하는 단계; 및
상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.
3. The method according to claim 1 or 2,
Generating the application data set in a storage layer of the device in response to generating an identifier entry for the application data set of the distributed system data set; And
Further comprising the step of adding information of the application to the generated application data set in response to generating the application data set.
제 1항 내지 제 3항 중 어느 한 항에 있어서,
상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하는 단계;
상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하는 단계; 및
상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.
4. The method according to any one of claims 1 to 3,
Receiving a notification from another device in the distributed system that the device is added to the data set group;
Receiving the application data set from the other device in the distributed system; And
And storing the received application data set in the device.
제 4항에 있어서,
상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 상기 방법은
상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하는 단계;
상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하는 단계;
상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.
5. The method of claim 4,
Wherein the received application data set includes a list of the devices that are members of the data set group,
Sending a suggestion to the device that is a member of the data set group to add application data to the application data set;
Obtaining an agreement to add the application data to the application data set in response to sending the suggestion;
And adding the application data to the application data set in response to obtaining the agreement.
제 1항 내지 제 5항 중 어느 한 항에 있어서,
상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하는 단계;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.
6. The method according to any one of claims 1 to 5,
Receiving a request for participation from another device in the distributed system into a data set group of a device associated with the generated application data set;
Obtaining an agreement on adding the other device to a data set group of the device associated with the generated application data set; And
In response to obtaining an agreement on adding the other device to the data set group of the device associated with the generated application data set, adding the other device to the data set group of the device related to the generated application data set The method further comprising the steps of:
제 6항에 있어서,
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계는
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스에게 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로 상기 다른 디바이스를 추가하는 것에 대한 제안을 송신하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 표결의 정족수를 획득하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.
The method according to claim 6,
Obtaining an agreement on adding the other device to a data set group of the device associated with the generated application data set
Transmitting a suggestion to the device associated with the generated application data set to add the other device to a data set group of the device associated with the generated application data set; And
And obtaining a quorum of voting for adding the other device to a data set group of the device associated with the generated application data set.
제 6항에 있어서,
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계는
상기 다른 디바이스로 상기 어플리케이션 데이터세트를 송신하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 대한 합의에 요구되는 정족수를 조정하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.
The method according to claim 6,
Wherein the step of adding the other device to a data set group of a device associated with the generated application data set includes:
Transmitting the application data set to the another device; And
And adjusting a quorum required for an agreement on a data set group of devices associated with the generated application data set.
제 1항 내지 제 8항 중 어느 한 항에 있어서,
상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응하는 어플리케이션 데이터를 관리하는 방법.
9. The method according to any one of claims 1 to 8,
Wherein the distributed system comprises a distributed physical access control system, the device and the other device managing application data corresponding to a physical access control unit.
분산 시스템(110)에 있는 디바이스(115)로서,
어플리케이션 데이터세트로 접근하는 어플리케이션에 의한 요청을 감지하되, 여기서 상기 어플리케이션 데이터세트는 분산 데이터세트에 대응하고;
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템(110)의 분산 시스템 데이터세트에 리스트되어 있는지를 판단하고;
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템 데이터세트에 리스트되어 있지 않은 것으로 판단한 것에 대한 응답으로 상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 생성하며;
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템 데이터세트에 존재하는 것으로 판단한 것에 대한 응답으로 상기 어플리케이션 데이터세트와 관련된 디바이스(115)를 포함하는 데이터세트 그룹으로의 참여 요청을 상기 분산 시스템(110)에 있는 다른 디바이스(115)에게 송신하는 로직(210)을 포함하는 어플리케이션 데이터를 관리하는 디바이스.
As a device 115 in the distributed system 110,
Detecting a request by an application accessing an application data set, wherein the application data set corresponds to a distributed data set;
Determine whether an identifier for the application data set is listed in the distributed system data set of the distributed system (110);
Generate an entry of an identifier for the application data set of the distributed system data set in response to determining that an identifier for the application data set is not listed in the distributed system data set;
In response to determining that an identifier for the application data set is present in the distributed system data set, requests a participation in a data set group including a device (115) associated with the application data set to the distributed system To the other device (115), the logic (210).
제 10항에 있어서,
추가적으로 상기 로직은 상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 생성한 것에 대한 응답으로 상기 디바이스의 저장 계층에 상기 어플리케이션 데이터세트를 생성하고;
상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가하는 어플리케이션 데이터를 관리하는 디바이스.
11. The method of claim 10,
Wherein the logic further generates the application data set in a storage layer of the device in response to generating an entry of an identifier for the application data set of the distributed system data set;
And managing application data that adds information of the application to the generated application data set in response to generating the application data set.
제 10항 또는 제 11항에 있어서,
추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하고;
상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하며;
상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장하는 어플리케이션 데이터를 관리하는 디바이스.
The method according to claim 10 or 11,
Wherein the logic further receives a notification from another device in the distributed system that the device is being added to the data set group;
Receive the application data set from the other device in the distributed system;
And managing the application data to store the received application data set in the device.
제 12항에 있어서,
상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 추가적으로 상기 로직은
상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하고;
상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하며;
상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하는 어플리케이션 데이터를 관리하는 디바이스.
13. The method of claim 12,
Wherein the received application data set includes a list of the devices that are members of the data set group,
Send a suggestion to the device that is a member of the data set group to add application data to the application data set;
Obtain an agreement to add the application data to the application data set in response to sending the suggestion;
And managing application data that adds the application data to the application data set in response to obtaining the agreement.
제 10항 내지 제 13항 중 어느 한 항에 있어서,
추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하고;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하며;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 어플리케이션 데이터를 관리하는 디바이스.
14. The method according to any one of claims 10 to 13,
Wherein the logic further receives a request from another device in the distributed system to join a data set group of the device associated with the generated application data set;
Obtain an agreement on adding the other device to a data set group of the device associated with the generated application data set;
In response to obtaining an agreement on adding the other device to the data set group of the device associated with the generated application data set, adding the other device to the data set group of the device related to the generated application data set A device that manages application data.
제 10항 내지 제14항 중 어느 한 항에 있어서,
상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응하는 어플리케이션 데이터를 관리하는 디바이스.
15. The method according to any one of claims 10 to 14,
Wherein the distributed system comprises a distributed physical access control system, wherein the device and the other device manage application data corresponding to a physical access control unit.
KR1020140121847A 2013-09-16 2014-09-15 Method and device for managing application data KR101908988B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/028,230 2013-09-16
US14/028,230 US9619668B2 (en) 2013-09-16 2013-09-16 Managing application data in distributed control systems

Publications (2)

Publication Number Publication Date
KR20150032190A true KR20150032190A (en) 2015-03-25
KR101908988B1 KR101908988B1 (en) 2018-10-17

Family

ID=49263128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140121847A KR101908988B1 (en) 2013-09-16 2014-09-15 Method and device for managing application data

Country Status (6)

Country Link
US (1) US9619668B2 (en)
EP (1) EP2849063B1 (en)
JP (1) JP6400990B2 (en)
KR (1) KR101908988B1 (en)
CN (1) CN104462172B (en)
TW (1) TWI623839B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190092483A (en) * 2017-05-22 2019-08-07 알리바바 그룹 홀딩 리미티드 Blockchain service acceptance and agreement method and device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017032422A1 (en) * 2015-08-27 2017-03-02 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for scaling of big data analytics
US9977786B2 (en) * 2015-12-23 2018-05-22 Github, Inc. Distributed code repository with limited synchronization locking
JP6245783B1 (en) * 2017-05-02 2017-12-13 サスメド株式会社 Security system and node device used therefor
TWI784393B (en) * 2021-01-15 2022-11-21 台達電子工業股份有限公司 Method and system for monitoring industrial devices
CN114765558B (en) 2021-01-15 2024-04-09 台达电子工业股份有限公司 Industrial equipment monitoring method and industrial equipment monitoring system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6738772B2 (en) * 1998-08-18 2004-05-18 Lenel Systems International, Inc. Access control system having automatic download and distribution of security information
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US20030014465A1 (en) 2001-07-16 2003-01-16 Antonio Mugica True distributed control
US7181450B2 (en) * 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US7334154B2 (en) * 2004-06-18 2008-02-19 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US7210060B2 (en) * 2004-12-30 2007-04-24 Emc Corporation Systems and methods for restoring data
JP4808173B2 (en) * 2007-03-23 2011-11-02 株式会社日立製作所 Distributed system, data management server, and data distribution method
US8122497B2 (en) * 2007-09-10 2012-02-21 Redcloud, Inc. Networked physical security access control system and method
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
JP2010122773A (en) * 2008-11-18 2010-06-03 Hitachi Ltd Distributed processing system, method of allocating processing, and information processing apparatus
EP2408984B1 (en) 2009-03-19 2019-11-27 Honeywell International Inc. Systems and methods for managing access control devices
US20110153737A1 (en) 2009-12-17 2011-06-23 Chu Thomas P Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network
JPWO2012042607A1 (en) * 2010-09-29 2014-02-03 株式会社トライテック Distributed computing system
US8538934B2 (en) * 2011-10-28 2013-09-17 Microsoft Corporation Contextual gravitation of datasets and data services

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190092483A (en) * 2017-05-22 2019-08-07 알리바바 그룹 홀딩 리미티드 Blockchain service acceptance and agreement method and device
US10938577B2 (en) 2017-05-22 2021-03-02 Advanced New Technologies Co., Ltd. Blockchain service acceptance and consensus method and devices

Also Published As

Publication number Publication date
JP2015057696A (en) 2015-03-26
KR101908988B1 (en) 2018-10-17
CN104462172A (en) 2015-03-25
US9619668B2 (en) 2017-04-11
US20150081737A1 (en) 2015-03-19
TW201527999A (en) 2015-07-16
CN104462172B (en) 2019-05-17
JP6400990B2 (en) 2018-10-03
EP2849063B1 (en) 2020-08-12
TWI623839B (en) 2018-05-11
EP2849063A1 (en) 2015-03-18

Similar Documents

Publication Publication Date Title
KR102076796B1 (en) Method and device for controlling anonymous access
KR101908988B1 (en) Method and device for managing application data
JP2020013591A (en) Self-provisioning access control
JP6307393B2 (en) Distributed events in access control systems
JP2016515784A5 (en)
KR101809994B1 (en) Consensus loss in distributed control systems
JP6147234B2 (en) Joining distributed databases
US11126681B2 (en) Link selector in a modular physical access control system

Legal Events

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