KR20150032190A - Method and device for managing application data - Google Patents
Method and device for managing application data Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Individual 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
Description
본 발명은 접근 제어 시스템에 관한 것으로서, 더욱 상세하게는 접근 제어 시스템에서의 어플리케이션 데이터 관리에 관한 것이다.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
분산 제어 시스템(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 "
분산 제어 시스템(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
몇몇 실시예에 따르면, 분산 데이터세트와 관련된 모든 시스템 유닛들(115)은 분산 데이터세트를 저장할 수 있다. 예를 들어, 분산 데이터세트는 접근 규칙을 포함할 수 있는데, 접근 규칙은 분산 데이터세트와 관련된 모든 시스템 유닛에게 유효할 수 있다. 따라서, 일 실시예에 따르면 하나 이상의 분산 데이터세트의 결과에 따라 분산 제어 시스템(110)은 서버 디바이스와 같은 중앙 제어 디바이스가 아닌 분권화된 시스템에 대응할 수 있다. 다른 실시예에 따르면, 분산 제어 시스템(110)은 분권화된 시스템 및 (서버 디바이스와 같은) 중앙 제어 디바이스를 모두 포함할 수 있다. 일 실시예에 따르면, 분산 데이터세트에 대한 변경은 어떠한 시스템 유닛(115)에 의해서도 설정될 수 있고, 분산 데이터세트와 관련된 다른 시스템 유닛들(115)에게 전파될 수 있다. 또한, 단일 지점에서의 오류가 방지될 수 있는 것과 같이, 분산 제어 시스템(110)은 디바이스 오류에 대한 강인함을 나타낼 수 있다. 예를 들어, 특정 시스템 유닛(115)이 오동작하면 다른 시스템 유닛들(115)은 데이터의 손실 없이(또는 최소한의 데이터 손실로) 동작을 지속할 수 있다. 또한, 분산 제어 시스템(110)은 동적으로 변경될 수 있다. 예를 들어, 어플리케이션은 어느 시점에서도 추가될 수 있고, 새로운 데이터세트는 필요한 만큼 시스템 유닛들(115)에 저장될 수 있다. 다른 실시예에 따르면, 분산 데이터세트와 관련된 모든 시스템 유닛들(115)이 분산 데이터세트를 저장하는 것은 아니다.According to some embodiments, all
분산 데이터 시스템(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
네트워크(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
관리 디바이스(130)는 관리자로 하여금 특정 시스템 유닛(115)에 연결하여 분산 제어 시스템(110)을 설정하고, 분산 제어 시스템(110)의 설정을 변경하고, 분산 제어 시스템(110)으로부터 정보를 수신하며, 그리고/또는 분산 제어 시스템(110)을 관리할 수 있도록 한다. 관리 디바이스(130)는 하나 이상의 시스템 유닛들(115)과의 통신을 위하여 설정된 어떠한 디바이스라도 포함할 수 있다. 예를 들어, 관리 디바이스(130)는 휴대용 통신 디바이스(예를 들어, 휴대폰, 스마트폰, 패블릿 디바이스(phablet device), GPS(Global Positioning System) 디바이스, 및/또는 다른 종류의 무선 디바이스); 개인용 컴퓨터 또는 워크스테이션; 서버 디바이스; 랩탑; 태블릿, 또는 다른 종류의 휴대용 컴퓨터; 및/또는 통신 기능을 구비한 특정 종류의 디바이스를 포함할 수 있다.The
도 1이 환경(100)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 환경(100)은 도 1에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 다르게 배치된 구성요소, 또는 추가 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 환경(100)(또는 디바이스들의 그룹)에 포함된 디바이스는 환경(100) 내에서 하나 이상의 다른 디바이스에 의하여 수행되도록 명시된 기능을 수행할 수 있다. 예를 들어, 몇몇 실시예에 따르면 시스템 유닛들(115)은 입력 및/또는 출력 디바이스(예를 들어, 키보드/키패드 및 디스플레이, 터치스크린 등)를 포함하고, 관리 디바이스(130)는 필요하지 않을 수 있다.Although FIG. 1 illustrates exemplary components of
도 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
버스(212)는 제어기(210)의 구성요소간 통신을 가능하게 하는 경로를 포함할 수 있다. 프로세서(214)는 명령을 인터프리트하고 실행하는 소정 종류의 싱글 코어 프로세서, 멀티 코어 프로세서, 마이크로 프로세서, 래치 기반 프로세서(latch-based processor), 및/또는 처리 로직 (또는, 프로세서, 마이크로 프로세서, 및/또는 처리 로직의 패밀리)를 포함할 수 있다. 다른 실시예에 따르면, 프로세서(214)는 ASIC(Application-Specific Integrated Circuit), FPGA(Field-Programmable Gate Array), 및/또는 다른 종류의 집적 회로 또는 처리 로직을 포함할 수 있다.The
메모리(216)는 프로세서(214)에 의하여 실행되는 정보 및/또는 명령을 저장하는 소정 종류의 동적 저장 디바이스 및/또는 프로세서(214)에 의하여 이용되는 정보를 저장하는 비휘발성 저장 디바이스를 포함할 수 있다. 예를 들어, 메모리(216)는 램(RAM; Random Access Memory) 또는 다른 종류의 동적 저장 디바이스, 롬(ROM; Read-Only Memory) 디바이스 또는 다른 종류의 정적 저장 디바이스, 내용 주소화 기억 장치(CAM; Content Addressable Memory), 자기 및/또는 광학 저장 메모리 디바이스 및 그 대응하는 드라이브(예를 들어, 하드 디스크 드라이브, 광학 드라이브 등), 및/또는 플래시 메모리와 같은 삭제 가능 형태의 메모리를 포함할 수 있다.The
네트워크 인터페이스(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
네트워크 인터페이스(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
하우징(222)은 제어기(210)의 구성요소를 수용하고, 제어기(210)의 구성요소를 환경으로부터 보호할 수 있다. 일 실시예에 따르면, 하우징(222)은 하나 이상의 주변 디바이스(230)를 포함할 수 있다. 다른 실시예에 따르면, 하우징(222)은 관리 디바이스(130)를 포함할 수 있다. 하우징(222)은 다수의 시스템 유닛들(115) 및/또는 다수의 제어기(210)로 구성된 시스템에 있는 다른 시스템 유닛들(115) 및/또는 제어기(210)에 대한 하나의 시스템 유닛(115) 및/또는 제어기(210)의 경계를 정의할 수 있다.The housing 222 may receive the components of the
후술하는 바와 같이, 제어기(210)는 분산 시스템에 있는 어플리케이션 데이터세트 및/또는 데이터세트 그룹과 관련된 특정 동작을 수행할 수 있다. 제어기(210)는 ASIC의 배선에 의한 회로(hardwired logic)를 통하여 이러한 동작을 수행할 수 있다. 제어기(210)는 또한 (또는 선택적으로) 메모리(216)과 같은 컴퓨터 판독 가능 매체에 기록되어 있는 소프트웨어 명령을 실행하는 프로세서(214)에 대한 응답으로 이러한 동작을 수행할 수 있다. 컴퓨터 판독 가능 매체는 일시적이지 않은(non-transitory) 메모리 디바이스를 포함한다. 메모리 디바이스는 단일 물리 메모리 디바이스 또는 복수 개로 확장된 물리 메모리 디바이스 내에 구현될 수 있다. 소프트웨어 명령은 다른 컴퓨터 판독 매체 또는 다른 디바이스에서 판독되어 메모리(216)에 입력될 수 있다. 메모리(216)에 기록된 소프트웨어 명령에 의하여 프로세서(214)는 본 문서에 기재된 처리를 수행할 수 있다. 따라서, 본 문서에 기재된 구현은 하드웨어 회로 및 소프트웨어의 특정 조합에 한정되는 것이 아니다.As described below, the
주변 디바이스(230)는 제어기(210)에게 정보를 제공하고, 제어기(210)에 의하여 제어되며, 그리고/또는 제어기(210)와 통신하는 하나 이상의 디바이스를 포함할 수 있다. 예를 들어, 주변 디바이스(230)는 리더 디바이스(240), 잠금 디바이스(250), 센서(260) 및/또는 액추에이터(270)를 포함할 수 있다. 도 2는 하나의 리더 디바이스(240), 하나의 잠금 디바이스9250), 하나의 센서(260) 및 하나의 액추에이터(270)를 도시하고 있으나, 이는 예시적인 것으로서, 실제로 주변 디바이스(230)는 다수의 리더 디바이스(240), 다수의 잠금 디바이스(250), 다수의 센서(260) 및/또는 다수의 액추에이터(270)를 포함할 수 있다. 몇몇 실시예에 따르면, 주변 디바이스(230)는 도 2에 도시된 것과 같은 하나 이상의 디바이스를 포함하지 않을 수 있다. 추가적으로 또는 선택적으로, 주변 디바이스(230)는 도 2에 도시되지 않은 다른 종류의 보안 디바이스를 포함할 수 있다.The
리더 디바이스(240)는 사용자로부터 인증서를 판독하여 제어기(210)로 해당 인증서를 제공하는 디바이스를 포함할 수 있다. 예를 들어, 리더 디바이스(240)는 글자와 숫자로 구성된(alphanumeric) 개인 식별 번호(PIN; Personal Identification Number)를 사용자로부터 입력 받도록 설정된 키패드 또는 키보드; 자기 띠 또는 RFID 태그와 같은 다른 종류의 저장 디바이스에 코드를 저장하는 카드를 판독하도록 설정된 카드 리더기; 사용자의 지문을 판독하도록 설정된 지문 리더기; 사용자의 홍채를 판독하도록 설정된 홍채 리더기; 사용자의 음성 서명을 녹음하도록 설정된 마이크로폰 및 음성 서명 식별기(voice signature identifier); NFC 리더기; 및/또는 다른 종류의 리더 디바이스를 포함할 수 있다. 리더 디바이스(240)는 인증서를 제공하는 소정 종류의 보안 디바이스를 포함하고, 하나 이상의 센서 디바이스를 포함할 수 있는데, 그러한 센서 디바이스는 아래에 기재된 센서(260)를 참조한다. 예를 들어, 리더 디바이스(240)는 얼굴 인식에 이용되는 카메라 및/또는 음성 인식에 이용되는 마이크로폰을 포함할 수 있다.The
잠금 디바이스(250)는 제어기(210)에 의하여 제어되는 잠금 수단을 포함할 수 있다. 잠금 디바이스(250)는 도어, 창문, HVAC(Heating, Ventilating, and Air Conditioning), 및/또는 보안 영역의 입구에 대한 다른 종류의 접근을 잠글 수 있다(예를 들어, 도어가 열리거나 닫히는 것을 방지할 수 있다). 예를 들어, 잠금 디바이스(250)는 전자기 잠금 수단; 제어기(210)에 의하여 제어되는 모터가 구비된 기계식 잠금 수단; 전자 기계식 잠금 수단; 및/또는 다른 종류의 잠금 수단을 포함할 수 있다. 또한, 잠금 디바이스(250)는 기계, 운송 수단, 엘리베이터 및/또는 전기 디바이스의 동작에 대한 잠금/잠금 해제를 수행할 수 있다.The
센서(260)는 센서 디바이스를 포함할 수 있다. 예시적인 것으로서, 센서(260)는 도어가 열려있는지 닫혀있는지를 감지하는 도어 센서; 가시광 모니터링 카메라; 적외선 모니터링 카메라, 열 감지 모니터링 카메라, 및/또는 다른 종류의 모니터링 디바이스; 움직임 센서, 열 센서, 압력 센서, 및/또는 다른 종류의 알람 센서와 같은 알람 센서; 오디오 레코딩 디바이스(예를 들어, 마이크로폰); 시스템 유닛(115)의 내부에 구비된 위치 센서와 같은 접근 센서(tamper sensor); 및/또는 시스템 유닛(115)과 관련된 보안 영역 내에 위치하는 "퇴장 요청" 버튼; 및/또는 다른 종류의 센서 디바이스를 포함할 수 있다.The
액추에이터(270)는 액추에이터 디바이스를 포함할 수 있다. 예시적인 것으로서, 액추에이터(270)는 조명 디바이스를 제어할 수 있다. 다른 예시적인 것으로서, 액추에이터(270)는 도난 경보 동작기; 메시지를 재생하거나 알람 신호를 발생하는 스피커; 디스플레이 디바이스; (예를 들어, 카메라 또는 다른 모니터링 디바이스의 시야 제어를 위하여) 센서(260)를 움직이는 모터; 도어, 창문, HVAC 및/또는 보안 영역과 관련된 또 다른 입구의 열림/닫힘을 위한 모터; 잠겨있거나 잠겨있지 않은 위치에서의 잠금 디바이스(250)를 보호하는 모터; 소화 디바이스(fire extinguishing device); 및/또는 다른 종류의 액추에이터 디바이스를 포함할 수 있다.
도 2는 시스템 유닛(115)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예로서 시스템 유닛(115)은 도 2에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소 또는 다르게 배치된 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 시스템 유닛(115)의 컴포넌트(또는 컴포넌트 그룹)는 시스템 유닛(115)의 하나 이상의 다른 컴포넌트에 의하여 수행되도록 명시된 작업 또는 작업들을 수행할 수 있다. 예를 들어, 몇몇 실시예에 따르면 주변기기 인터페이스(220)는 네트워크 인터페이스에 대응할 수 있다. 다른 예시적인 것으로서, 몇몇 실시예에 따르면 주변 디바이스(230)는 주변기기 인터페이스(220)보다는 네트워크 인터페이스(218)을 통하여 제어기(210)에 연결될 수 있다.2 shows an exemplary component of the
또한, 분산 제어 시스템(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
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
어플리케이션 계층(320)은 시스템 유닛(115)에 설치된 하나 이상의 어플리케이션을 포함할 수 있다. 도 3b는 실시예에 따른 어플리케이션을 나타내고 있다. 도 3b에 도시된 바와 같이, 어플리케이션 계층(320)은 접근 제어 로직 어플리케이션(322), 도어 제어 어플리케이션(324), 리더 제어 어플리케이션(326), 이벤트 처리 어플리케이션(328) 및/또는 어플리케이션(332)를 포함할 수 있다.The
접근 제어 로직 어플리케이션(322)는 수신된 인증서 및 저장된 접근 규칙을 기초로 접근이 허용되는지를 판단할 수 있다. 도어 제어 어플리케이션(324)는 하나 이상의 도어 및/또는 관련 잠금 디바이스(250)를 제어할 수 있다. 예를 들어, 도어 제어 어플리케이션(324)은 도어가 열려있는지 닫혀있는지 및/또는 잠겨있는지 잠겨있지 않는지를 판단하고, 하나 이상의 디바이스가 도어를 열거나 닫거나 및/또는 잠그거나 잠금 해제하도록 동작시킬 수 있다. 리더 제어 어플리케이션(326)은 하나 이상의 리더 디바이스(240)를 제어하고, 하나 이상의 리더 디바이스(240)로부터 수신된 인증서를 획득하여 처리할 수 있다. 이벤트 처리 어플리케이션(328)은 시스템 유닛(115)에 의하여 기록 또는 생성되거나, 다른 시스템 유닛(115)에 의하여 기록된 이벤트의 로그를 보관할 수 있다. 이벤트 처리 어플리케이션(328)은 모든(또는 적어도 일부) 시스템 유닛들(115)에 분산 시스템 이벤트 로그를 보관하기 위하여 로컬상에서 기록되거나 발생된 이벤트가 분산 제어 시스템(110)상의 다른 시스템 유닛들(115)로 분산되도록 할 수 있다. 따라서, 로깅된 이벤트는 시스템 이벤트 로그와 관련된 어느 시스템 유닛(115)으로부터 라도 추출될 수 있다. 스케줄 처리 어플리케이션(330)은 시스템 유닛(115)과 관련된 하나 이상의 스케줄을 관리할 수 있다. 예를 들어, 특정 사용자 그룹에 대한 접근 규칙은 하루 중 특정 시간을 기초로 변경될 수 있다.The access
어플리케이션(332)은 시스템 유닛(115)의 어플리케이션 계층(320)에 설치된 특정 어플리케이션에 대응할 수 있는데, 이는 분산 데이터세트를 이용한다. 예를 들어, 어플리케이션(332)는 어플리케이션을 제어하는 카메라와 같은 특정 센서(260)와 관련된 어플리케이션; 도어 모터 어플리케이션과 같은 특정 액추에이터(270)와 관련된 어플리케이션; 인원수 카운팅 어플리케이션과 같이 정보 처리를 수행하는 어플리케이션; 주변 디바이스(230)을 제어하는 서드 파티(third party) 어플리케이션에 대한 플랫폼을 제공하는 어플리케이션; 네트워크를 통한 원격 디바이스와의 통신을 설정하는 어플리케이션; 및/또는 다른 종류의 어플리케이션에 대응할 수 있다.The application 332 may correspond to a specific application installed in the
다른 종류의 어플리케이션(도 3b에 도시되어 있지 않음)은 어플리케이션 계층(320)에 포함될 수 있다. 예시적으로서, 알람 어플리케이션이 리포트 및/또는 알람을 생성하여 리포트 및/또는 알람을 관리 디바이스(130)(및/또는 다른 지정 디바이스) 및/또는 하나 이상의 다른 시스템 유닛들(115)에게 송신할 수 있다. 다른 예시적인 것으로서, 작업 고유의 제어 어플리케이션은 도어 열림 이벤트, 센서 이벤트, 액추에이터 이벤트 및/또는 다른 종류의 이벤트와 같은 시스템 유닛(115)에 관련된 이벤트를 처리할 수 있다.Other types of applications (not shown in FIG. 3B) may be included in the
분산 계층(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
저장 계층(350)은 유닛(115)과 관련된 하나 이상의 데이터세트를 저장할 수 있다. 저장 계층(350)에 저장된 저장 계층은 로컬 데이터세트에 대응하거나 분산 데이터세트에 대응할 수 있다. 로컬 데이터세트는 로컬 데이터세트를 저장하고 있는 특정 유닛(115)과 관련된(및/또는 관련만 되어 있는) 정보를 저장할 수 있다. 분산 데이터세트는 분산 데이터세트와 관련된 다른 시스템 유닛들(115)과 관련된 정보를 저장할 수 있다.The
저장 계층(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
시스템 데이터세트(358)은 시스템 유닛들(115)(예를 들어, 모든 시스템 유닛들(115))과 관련된 분산 데이터세트에 대응할 수 있다. 따라서, 시스템 데이터세트(358)는 분산 제어 시스템(110)에 있는 각 시스템 유닛(115)에 저장될 수 있다. 시스템 데이터세트(358)에 저장될 수 있는 실시예에 따른 정보는 도 4a를 참조하여 후술하기로 한다.
어플리케이션 데이터세트(360)은 어플리케이션(332)와 같은 특정 어플리케이션과 관련된 분산 데이터세트에 대응할 수 있다. 어플리케이션 데이터세트(360)에 저장될 수 있는 실시예에 따른 정보는 도 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
도 4a는 시스템 데이터세트(358)에 저장될 수 있는 예시적인 정보의 도면이다. 도 4a에 도시된 바와 같이, 시스템 데이터세트(358)은 시스템 유닛 리스트(410) 및 하나 이상의 분배 데이터세트 식별자(ID) 필드(420)를 포함할 수 있다. 시스템 유닛 리스트(410)는 분산 제어 시스템(110)이 포함된 시스템 유닛들(115)의 리스트를 저장할 수 있다.FIG. 4A is a diagram of exemplary information that may be stored in the
분산 데이터세트 식별자 필드(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
도 4a는 시스템 데이터세트(358)에 저장될 수 있는 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 시스템 데이터세트(358)는 도 4a에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 다르게 배치된 구성요소, 또는 추가 구성요소를 포함할 수 있다.Although FIG. 4A illustrates an exemplary component that may be stored in the
도 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
시스템 유닛 필드(440)는 어플리케이션 데이터세트(360)와 관련된 데이터세트 그룹에 있는 시스템 유닛들(115)을 확인할 수 있도록 하는 정보를 저장할 수 있다. 정족수 필드(450)는 합의에 이르기 위하여 어플리케이션 데이터세트(360)에 대하여 제안되는 변경에 대한 표결을 함에 있어서 데이터세트 그룹에 있는 시스템 유닛들(115)에 의하여 요구되는 동의 표의 수를 확인할 수 있도록 하는 정보를 저장할 수 있다. 어플리케이션 데이터 필드(640)는 어플리케이션 데이터세트(360)와 관련된 어플리케이션 데이터를 저장할 수 있다.The
도 4b는 어플리케이션 데이터세트(360)에 저장될 수 있는 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 어플리케이션 데이터세트(360)는 도 4b에 도시된 것과는 다르게 적은 수의 기능적 구성요소, 다른 기능적 구성요소, 다르게 배치된 기능적 구성요소, 또는 추가 기능적 구성요소를 포함할 수 있다.Although FIG. 4B illustrates exemplary components that may be stored in the
도 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
도 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
어플리케이션 데이터세트 식별자가 시스템 데이터세트에 존재하지 않는 것으로 판단되면(블록 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
어플리케이션 데이터세트가 생성되어(블록 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
다시 블록 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
요청 시스템 유닛이 분산 데이터세트에 추가되었다고 하는 통지가 다른 시스템 유닛으로부터 수신될 수 있다(블록 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
데이터세트 그룹에 추가되었다고 하는 통지를 수신함에 대한 응답으로, 다른 시스템 유닛으로부터 어플리케이션 데이터세트가 수신되고(블록 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
도 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
도 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
어플리케이션 데이터세트와 관련된 데이터세트 그룹에 있는 다른 시스템 유닛들이 확인될 수 있으며(블록 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
어플리케이션 데이터세트에 있는 어플리케이션 데이터를 변경하기 위하여 합의가 획득될 수 있는데(블록 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
도 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
도 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
데이터세트 그룹에 있는 다른 시스템 유닛들이 확인될 수 있으며(블록 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
요청 시스템 유닛을 데이터세트 그룹에 추가하기 위하여 합의가 획득될 수 있으며(블록 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
몇몇 실시예에 따르면, 특정 시스템 유닛(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
몇몇 실시예에 따르면, 어플리케이션(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
도 8은 시스템 유닛(115)의 예시적인 물리 레이아웃(800)을 나타낸 평면도이다. 도 8에 도시된 바와 같이, 물리 레이아웃(800)은 벽(810), 도어(820), 제어기(210), 리더 디바이스(240), 잠금 디바이스(250), 센서(260) 및 액추에이터(270)를 포함할 수 있다.8 is a plan view showing an exemplary
벽(810)은 빌딩의 룸(room)과 같은 보안 영역(830)을 수용한다. 도어(820)는 사용자에게 보안 영역(830)으로의 접근을 제공한다. 일 실시예에 따르면, 제어기(210)는 보안 영역(830)의 내부에 설치된다. 다른 실시예에 따르면, 제어기(210)는 보안 영역(830)의 외부에 설치될 수 있다. 리더 디바이스(240)는 보안 영역(830)의 외부에 설치되고, 잠금 디바이스(250)는 보안 영역(440) 내부의 벽(810) 및 도어(820)에 설치된다. 이와 같은 예에 따르면, 센서(260)는 보안 영역(830)의 외부에 마운팅된 모니터링 디바이스이다. 액추에이터(270)는 이러한 예에 따른 모니터링 디바이스의 시야를 제어하기 위하여 사용되는 모터를 포함한다.The wall 810 accommodates a
(예를 들어, 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
도 8은 물리적 레이아웃(800)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 물리적 레이아웃(800)는 도 8에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소, 또는 다르게 배치된 구성요소를 포함할 수 있다. 추가적으로 또는 선택적으로, 물리적 레이아웃(800)의 어느 구성요소(또는 구성요소의 그룹)라도 물리적 레이아웃(800)에 구비된 하나 이상의 다른 구성요소에 의하여 수행하도록 명시된 하나의 작업 또는 복수의 작업을 수행할 수 있다.8 illustrates exemplary components of a
도 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
이러한 예에 따르면, 시스템 유닛(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
도 9는 물리적 레이아웃(900)의 예시적인 구성요소를 나타내고 있으나, 다른 실시예에 따르면 물리적 레이아웃(900)은 도 9에 도시된 것과는 다르게 적은 수의 구성요소, 다른 구성요소, 추가 구성요소 또는 다르게 배치된 구성요소를 포함할 수 있다. 예를 들어, 다른 실시예에 따르면, 중앙 제어 디바이스(예를 들어, 서버)가 하나 이상의 분산 데이터세트와 함께 이용될 수 있다. 추가적으로 또는 선택적으로, 물리적 레이아웃(900)의 하나 이상의 구성요소는 물리적 레이아웃(900)에 구비된 하나 이상의 다른 구성요소에 의하여 수행하도록 명시된 하나 이상의 작업을 수행할 수 있다.Although FIG. 9 illustrates exemplary components of a
도 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
도 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
도 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
시스템 유닛(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
이후에, 카운팅 어플리케이션(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
도 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
시스템 유닛(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
이상과 같이, 첨부된 도면을 참조로 다양한 실시예가 설명되었다. 그러나, 후술하는 청구항을 통하여 제시한 발명의 범위를 벗어나지 않는 다양한 수정 및 변경이 적용될 수 있음은 자명하고, 추가적인 실시예가 구현될 수도 있다. 따라서, 상세한 설명 및 도면은 제한적이 아니라 예시적인 것으로 간주되어야 한다.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:
상기 어플리케이션 데이터세트에 대한 식별자가 상기 분산 시스템의 분산 시스템 데이터세트에 리스트되어 있는지를 판단하는 단계는
상기 분산 시스템 데이터세트에 있는 분산 데이터세트의 식별자 리스트에 접근하는 단계; 및
상기 분산 데이터세트의 식별자에 대한 리스트가 상기 요청된 어플리케이션 데이터세트에 대한 식별자를 포함하는지 판단하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 생성한 것에 대한 응답으로 상기 디바이스의 저장 계층에 상기 어플리케이션 데이터세트를 생성하는 단계; 및
상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하는 단계;
상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하는 단계; 및
상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 상기 방법은
상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하는 단계;
상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하는 단계;
상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하는 단계;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계를 더 포함하는 어플리케이션 데이터를 관리하는 방법.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:
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하는 단계는
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스에게 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로 상기 다른 디바이스를 추가하는 것에 대한 제안을 송신하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 표결의 정족수를 획득하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 단계는
상기 다른 디바이스로 상기 어플리케이션 데이터세트를 송신하는 단계; 및
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 대한 합의에 요구되는 정족수를 조정하는 단계를 포함하는 어플리케이션 데이터를 관리하는 방법.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.
상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응하는 어플리케이션 데이터를 관리하는 방법.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)에게 송신하는 로직(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).
추가적으로 상기 로직은 상기 분산 시스템 데이터세트의 상기 어플리케이션 데이터세트에 대한 식별자의 엔트리를 생성한 것에 대한 응답으로 상기 디바이스의 저장 계층에 상기 어플리케이션 데이터세트를 생성하고;
상기 어플리케이션 데이터세트를 생성한 것에 대한 응답으로, 상기 어플리케이션의 정보를 상기 생성된 어플리케이션 데이터세트에 추가하는 어플리케이션 데이터를 관리하는 디바이스.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.
추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 디바이스가 상기 데이터세트 그룹에 추가되어 있다고 하는 통지를 수신하고;
상기 분산 시스템에 있는 상기 다른 디바이스로부터 상기 어플리케이션 데이터세트를 수신하며;
상기 수신된 어플리케이션 데이터세트를 상기 디바이스에 저장하는 어플리케이션 데이터를 관리하는 디바이스.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.
상기 수신된 어플리케이션 데이터세트는 상기 데이터세트 그룹의 멤버인 상기 디바이스의 리스트를 포함하되, 추가적으로 상기 로직은
상기 어플리케이션 데이터세트로 어플리케이션 데이터를 추가하기 위하여 상기 데이터세트 그룹의 멤버인 상기 디바이스로 제안을 송신하고;
상기 제안을 송신한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하기 위한 합의를 획득하며;
상기 합의를 획득한 것에 대한 응답으로, 상기 어플리케이션 데이터를 상기 어플리케이션 데이터세트에 추가하는 어플리케이션 데이터를 관리하는 디바이스.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.
추가적으로 상기 로직은 상기 분산 시스템에 있는 다른 디바이스로부터 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹으로의 참여 요청을 수신하고;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득하며;
상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 것에 대한 합의를 획득한 것에 대한 응답으로, 상기 생성된 어플리케이션 데이터세트와 관련된 디바이스의 데이터세트 그룹에 상기 다른 디바이스를 추가하는 어플리케이션 데이터를 관리하는 디바이스.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.
상기 분산 시스템은 분산 물리 접근 제어 시스템을 포함하고, 상기 디바이스 및 상기 다른 디바이스는 물리 접근 제어 유닛에 대응하는 어플리케이션 데이터를 관리하는 디바이스.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.
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)
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)
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)
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 |
-
2013
- 2013-09-16 US US14/028,230 patent/US9619668B2/en active Active
- 2013-09-23 EP EP13185582.7A patent/EP2849063B1/en active Active
-
2014
- 2014-09-03 JP JP2014179412A patent/JP6400990B2/en active Active
- 2014-09-15 KR KR1020140121847A patent/KR101908988B1/en active IP Right Grant
- 2014-09-16 CN CN201410472628.1A patent/CN104462172B/en active Active
- 2014-09-16 TW TW103132027A patent/TWI623839B/en active
Cited By (2)
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 |