KR101985899B1 - System, method, and computer program for assigning tasks - Google Patents

System, method, and computer program for assigning tasks Download PDF

Info

Publication number
KR101985899B1
KR101985899B1 KR1020170128314A KR20170128314A KR101985899B1 KR 101985899 B1 KR101985899 B1 KR 101985899B1 KR 1020170128314 A KR1020170128314 A KR 1020170128314A KR 20170128314 A KR20170128314 A KR 20170128314A KR 101985899 B1 KR101985899 B1 KR 101985899B1
Authority
KR
South Korea
Prior art keywords
task
job
hold message
node
list
Prior art date
Application number
KR1020170128314A
Other languages
Korean (ko)
Other versions
KR20190038195A (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 주식회사 트레드링스
Priority to KR1020170128314A priority Critical patent/KR101985899B1/en
Publication of KR20190038195A publication Critical patent/KR20190038195A/en
Application granted granted Critical
Publication of KR101985899B1 publication Critical patent/KR101985899B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명의 일 실시예에 따른 작업 할당 시스템은 네트워크를 구성하는 하나의 노드는, 상기 네트워크를 구성하는 다른 노드들에 작업 리스트 및 제1 작업 홀드 메시지를 전송하고, 상기 다른 노드들 중 적어도 하나로부터 제2 작업 홀드 메시지를 수신하는 통신 인터페이스; 작업 지시서에 기초하여 상기 작업 리스트를 생성하고, 상기 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제1 작업 홀드 메시지를 생성하고, 상기 제1 작업 홀드 메시지와 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하고, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 프로세서; 및 상기 작업 리스트를 저장하는 데이터베이스;를 포함한다.A task allocation system according to an embodiment of the present invention is a system in which a node constituting a network transmits a task list and a first task hold message to other nodes constituting the network, A communication interface for receiving a second job hold message; Generating at least one job included in the job list, generating the first job hold message for the at least one job, generating the first job hold message and the second job hold message, A processor for determining whether to perform the at least one task based on a result of comparing the second task hold message for the at least one task and updating the task list if performing or holding the at least one task; And a database for storing the task list.

Description

작업 할당 시스템, 방법, 및 컴퓨터 프로그램{System, method, and computer program for assigning tasks}System, method, and computer program for assigning tasks,

본 발명의 실시예들은 메쉬 네트워크(mesh network)에서의 작업 할당 시스템, 방법, 및 컴퓨터 프로그램에 관한 것이다.Embodiments of the present invention relate to a task assignment system, method, and computer program in a mesh network.

네트워크는 구조에 따라 허브 앤 스포크 네트워크(hub and spoke network)와 메쉬 네트워크로 구분될 수 있다.A network can be divided into a hub and spoke network and a mesh network depending on the structure.

허브 앤 스포크 네트워크에서는 스포크 노드 간의 연결이 허브 노드를 통해 이루어지며, 메쉬 네트워크에서는 노드 간의 연결이 직접 이루어진다.In a hub-and-spoke network, the connections between the spoke nodes are made through the hub node, and the connections between the nodes are made directly in the mesh network.

클라우드 컴퓨팅 환경은 메쉬 네트워크를 기반으로 대용량 데이터를 수집할 수 있다. 따라서, 허브 노드가 부재한 메쉬 네트워크에 보다 적합한 데이터 수집을 위한 작업 할당 기법의 개발이 필요하다.The cloud computing environment can collect large amounts of data based on mesh networks. Therefore, it is necessary to develop a task allocation scheme for data collection that is more suitable for a mesh network without a hub node.

본 발명의 실시예들은 메쉬 네트워크에 적합한 작업 할당 시스템, 방법, 및 컴퓨터 프로그램을 제공하고자 한다.Embodiments of the present invention seek to provide a task assignment system, method, and computer program suitable for a mesh network.

본 발명의 일 실시예에 따른 작업 할당 시스템이 구현된 네트워크를 구성하는 하나의 노드는, 상기 네트워크를 구성하는 다른 노드들에 작업 리스트 및 제1 작업 홀드 메시지를 전송하고, 상기 다른 노드들 중 적어도 하나로부터 제2 작업 홀드 메시지를 수신하는 통신 인터페이스; 작업 지시서에 기초하여 상기 작업 리스트를 생성하고, 상기 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제1 작업 홀드 메시지를 생성하고, 상기 제1 작업 홀드 메시지와 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하고, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 프로세서; 및 상기 작업 리스트를 저장하는 데이터베이스;를 포함한다.One node constituting a network in which a task allocation system according to an embodiment of the present invention is implemented transmits a task list and a first task hold message to other nodes constituting the network, A communication interface for receiving a second job hold message from one; Generating at least one job included in the job list, generating the first job hold message for the at least one job, generating the first job hold message and the second job hold message, A processor for determining whether to perform the at least one task based on a result of comparing the second task hold message for the at least one task and updating the task list if performing or holding the at least one task; And a database for storing the task list.

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result between the first and second job hold messages is obtained by comparing the elapsed time from the first job hold message transmission time and the second job hold message reception time Lt; / RTI >

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과일 수 있다.In this embodiment, the result of comparing the first and second job hold messages may be a result of comparing the first and second job hold message generation times.

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result of the first and second job hold messages may be compared with the first and second job hold message transmission times or the second job hold message reception times It can be a result.

본 실시예에서, 상기 작업 리스트는 상기 작업 지시서에 포함된 작업들 각각에 대한 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)일 수 있다.In the present embodiment, the work list may be a Bloom filter in which at least one of an identifier and a status code for each of the jobs included in the work instruction sheet is inserted.

본 실시예에서, 상기 프로세서에 의해, 상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경함으로써 상기 작업 리스트를 갱신하고, 상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경함으로써 상기 작업 리스트를 갱신할 수 있다.In the present embodiment, the processor updates the task list by performing the at least one task to change the status code corresponding to the at least one task from none to done, When a job is held, the job list can be updated by changing the status code corresponding to the at least one job from none to hold.

본 실시예에서, 상기 통신 인터페이스에 의해, 상기 다른 노드들에 제1 리소스 정보를 전송하고, 상기 다른 노드들 중 적어도 하나로부터 제2 리소스 정보를 수신하고, 상기 프로세서에 의해, 상기 제1 리소스 정보에 포함시킨 제1 리소스 성능이 상기 제2 리소스 정보에 포함된 제2 리소스 성능보다 좋은 경우 상기 작업 리스트를 생성할 수 있다.In this embodiment, by the communication interface, first resource information is transmitted to the other nodes, second resource information is received from at least one of the other nodes, and the first resource information If the first resource performance included in the second resource information is better than the second resource performance included in the second resource information.

본 발명의 일 실시예에 따른 작업 할당 시스템이 구현된 네트워크를 구성하는 하나의 노드는, 상기 네트워크를 구성하는 다른 노드로부터 작업 리스트 및 제1 작업 홀드 메시지를 수신하고, 상기 다른 노드에 제2 작업 홀드 메시지를 전송하는 통신 인터페이스; 상기 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 생성하고, 상기 적어도 하나의 작업에 대한 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하고, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 프로세서; 및 상기 작업 리스트를 저장하는 데이터베이스;를 포함한다.One node constituting the network in which the task assignment system according to an embodiment of the present invention is implemented may receive a task list and a first task hold message from another node constituting the network, A communication interface for transmitting a hold message; Selecting at least one job included in the job list, generating the second job hold message for the at least one job, and generating the first job hold message for the at least one job and the second job hold message for the at least one job, A processor for determining whether to perform the at least one task based on a result of comparing the message and updating the task list when performing or holding the at least one task; And a database for storing the task list.

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 전송 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result between the first and second job hold messages is obtained by comparing the time elapsed from the reference time and the transmission time of the second job hold message from the reception time of the first job hold message Lt; / RTI >

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과일 수 있다.In this embodiment, the result of comparing the first and second job hold messages may be a result of comparing the first and second job hold message generation times.

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제2 작업 홀드 메시지 전송 시간과, 제1 작업 홀드 메시지 전송 시간 또는 제1 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result between the first and second job hold messages indicates that the second job hold message transmission time is compared with the first job hold message transmission time or the first job hold message reception time It can be a result.

본 실시예에서, 상기 작업 리스트는 작업 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)일 수 있다.In the present embodiment, the task list may be a Bloom filter in which at least one of the task identifier and the status code is inserted.

본 실시예에서, 상기 프로세서에 의해, 상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경함으로써 상기 작업 리스트를 갱신하고, 상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경함으로써 상기 작업 리스트를 갱신할 수 있다.In the present embodiment, the processor updates the task list by performing the at least one task to change the status code corresponding to the at least one task from none to done, When a job is held, the job list can be updated by changing the status code corresponding to the at least one job from none to hold.

본 실시예에서, 상기 통신 인터페이스에 의해 상기 다른 노드로부터 상기 적어도 하나의 작업에 대한 작업 완료 메시지를 수신하고, 상기 프로세서에 의해 상기 작업 완료 메시지에 대응하여 상기 적어도 하나의 작업에 대응하는 상태코드를 상기 미완료 또는 상기 홀드에서 완료(done)로 변경함으로써 상기 작업 리스트를 갱신할 수 있다.In the present embodiment, a task completion message for the at least one task is received from the other node by the communication interface, and a status code corresponding to the at least one task The task list can be updated by changing from the above-mentioned incomplete or the hold to done.

본 발명의 일 실시예에 따른 작업 할당 방법은 상기 제1 노드에 의해, 작업 지시서에 기초하여 작업 리스트를 생성하는 단계; 상기 제1 노드에 의해, 상기 작업 리스트를 상기 제2 노드에 전송하는 단계; 상기 제1 노드에 의해, 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 제1 작업 홀드 메시지를 생성하고, 상기 제1 작업 홀드 메시지를 상기 제2 노드에 전송하는 단계; 상기 제1 노드에 의해, 상기 제2 노드로부터 상기 적어도 하나의 작업에 대한 제2 작업 홀드 메시지를 수신하는 단계; 상기 제1 노드에 의해, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하는 단계; 및 상기 제1 노드에 의해, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 단계;를 포함한다.According to an embodiment of the present invention, there is provided a method of assigning a task, the method comprising: generating a task list by a first node based on a task instruction sheet; Sending, by the first node, the task list to the second node; Selecting, by the first node, at least one task included in the task list, generating a first task hold message for the at least one task, and transmitting the first task hold message to the second node step; Receiving, by the first node, a second job hold message for the at least one job from the second node; Determining, by the first node, whether to perform the at least one task based on a result of comparing the first task hold message and the second task hold message; And updating the task list by performing or holding the at least one task by the first node.

본 실시예에서, 상기 제2 노드에 의해, 상기 작업 리스트에 포함된 상기 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 생성하는 단계; 상기 제2 노드에 의해, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하는 단계; 상기 제2 노드에 의해, 상기 제1 노드로부터 상기 적어도 하나의 작업에 대한 작업 완료 메시지를 수신하는 단계; 및 상기 제2 노드에 의해, 상기 적어도 하나의 작업에 대한 수행, 홀드, 또는 상기 작업 완료 메시지에 대응하여 상기 작업 리스트를 갱신하는 단계;를 포함할 수 있다.Selecting, by the second node, the at least one task included in the task list and generating the second task hold message for the at least one task in the present embodiment; Determining, by the second node, whether to perform the at least one task based on a result of comparing the first job hold message and the second job hold message; Receiving, by the second node, a task completion message for the at least one task from the first node; And updating, by the second node, the task list in response to performing, holding, or the task completion message for the at least one task.

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result between the first and second job hold messages is obtained by comparing the elapsed time from the first job hold message transmission time and the second job hold message reception time Lt; / RTI >

본 실시예에서, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.In the present exemplary embodiment, the comparison result of the first and second job hold messages may be compared with the first and second job hold message transmission times or the second job hold message reception times It can be a result.

본 실시예에서, 상기 작업 리스트는 상기 작업 지시서에 포함된 작업들 각각에 대한 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)이고, 상기 작업 리스트를 갱신하는 단계는, 상기 제1 노드에 의해, 상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경하고, 상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경하는 단계일 수 있다.In the present embodiment, the work list is a Bloom filter in which at least one of an identifier and a status code for each of the jobs included in the work instruction sheet is inserted, and the step of updating the work list comprises: Wherein performing at least one task by the node changes a status code corresponding to the at least one task from none to done and if the at least one task is held, And changing the corresponding status code from none to hold.

본 발명의 일 실시예에 따른 컴퓨터 프로그램은, 컴퓨터를 이용하여 본 발명의 일 실시예에 따른 작업 할당 방법을 실행하기 위하여 기록매체에 저장된다.A computer program according to an embodiment of the present invention is stored in a recording medium to execute a job assignment method according to an embodiment of the present invention using a computer.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and the detailed description of the invention.

본 발명의 실시예들에 따르면, 메쉬 네트워크에 적합한 작업 할당 시스템, 방법, 및 컴퓨터 프로그램을 제공할 수 있다.According to embodiments of the present invention, a task assignment system, method, and computer program suitable for a mesh network can be provided.

본 발명의 실시예들에 따르면, 메쉬 네트워크를 구성하는 모든 노드들이 임시 허브 노드로서 동작할 수 있으므로, 고장난 노드가 존재하는 경우에도 데이터를 원활하게 수집할 수 있다.According to embodiments of the present invention, all the nodes constituting the mesh network can operate as a temporary hub node, so that data can be smoothly collected even in the presence of a failed node.

본 발명의 실시예들에 따르면, 블룸 필터를 이용하여 메쉬 네트워크를 구성하는 노드들에게 작업을 효율적으로 할당할 수 있으므로, 대용량 데이터를 보다 빠르고 체계적으로 수집할 수 있다.According to the embodiments of the present invention, work can be efficiently allocated to the nodes constituting the mesh network using the Bloom filter, so that the large-capacity data can be collected more quickly and systematically.

도 1은 본 발명의 일 실시예에 따른 네트워크를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 작업 할당 시스템을 개략적으로 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 임시 허브 노드 결정 방법을 설명하기 위한 흐름도이다.
도 4a, 도 4b, 및 도 4c는 일 실시예에 따른 작업 리스트를 설명하기 위한 도면이다.
도 5 및 도 6은 각각 본 발명의 일 실시예에 따른 작업 할당 방법을 상세하게 설명하기 위한 흐름도이다.
1 is a diagram for explaining a network according to an embodiment of the present invention.
2 is a block diagram schematically illustrating a task assignment system according to an embodiment of the present invention.
3 is a flowchart illustrating a method of determining a temporary hub node according to an exemplary embodiment of the present invention.
4A, 4B, and 4C are views for explaining a task list according to an embodiment.
5 and 6 are flowcharts for explaining a task allocation method according to an embodiment of the present invention in detail.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

이하의 실시예에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In the following embodiments, the terms first, second, etc. may be used to describe various elements, but the elements should not be limited by terms. Terms are used only for the purpose of distinguishing one component from another.

이하의 실시예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수의 표현을 포함한다. 이하의 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the following examples are used only to illustrate specific embodiments and are not intended to limit the invention. The singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. In the following description, the terms " comprises " or " having ", and the like, specify that the presence of stated features, integers, steps, operations, elements, But do not preclude the presence or addition of other features, numbers, steps, operations, components, parts, or combinations thereof.

본 발명의 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명의 실시예의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명의 실시예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명의 실시예들은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Embodiments of the present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in a wide variety of hardware and / or software configurations that perform particular functions. For example, embodiments of the invention may be embodied directly in hardware, such as memory, processing, logic, look-up tables, etc., that can perform various functions by control of one or more microprocessors or by other control devices Circuit configurations can be employed. Similar to the components of an embodiment of the present invention may be implemented with software programming or software components, embodiments of the present invention include various algorithms implemented with a combination of data structures, processes, routines, or other programming constructs , C, C ++, Java, assembler, and the like. Functional aspects may be implemented with algorithms running on one or more processors. Embodiments of the present invention may also employ conventional techniques for electronic configuration, signal processing, and / or data processing. Terms such as mechanisms, elements, means, and configurations are widely used and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in conjunction with a processor or the like.

도 1은 본 발명의 일 실시예에 따른 네트워크를 설명하기 위한 도면이다.1 is a diagram for explaining a network according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 네트워크(10)는 제1 노드(1n) 내지 제N 노드(Nn)를 포함한다.Referring to FIG. 1, a network 10 according to an embodiment of the present invention includes a first node 1n to an Nth node Nn.

네트워크(10)는 유선 네트워크 또는 무선 네트워크를 포함할 수 있다. 무선 네트워크는 2G(Generation) 또는 3G 셀룰러 통신 시스템, 3GPP(3rd Generation Partnership Project), 4G 통신 시스템, LTE(Long-Term Evolution), WiMAX(World Interoperability for Microwave Access) 등이 될 수 있다.The network 10 may include a wired network or a wireless network. The wireless network may be a 2G (Generation) or 3G cellular communication system, a 3rd Generation Partnership Project (3GPP), a 4G communication system, a Long-Term Evolution (LTE), or a World Interoperability for Microwave Access (WiMAX).

제1 노드(1n) 내지 제N 노드(Nn)는 데이터를 수집하는 작업을 수행할 수 있다. 상세하게는, 제1 노드(1n) 내지 제N 노드(Nn)는 작업 리스트를 공유하고, 작업 리스트에 포함된 모든 작업을 나누어 수행할 수 있다.The first node 1n to the N-th node Nn can perform an operation of collecting data. Specifically, the first node 1n to the N-th node Nn share the task list, and can perform all tasks included in the task list separately.

제1 노드(1n) 내지 제N 노드(Nn)는 각각 임시 허브 노드로서 동작할 수 있다. 예를 들어, 제1 노드(1n) 내지 제N 노드(Nn) 중 리소스 성능이 가장 좋은 제1 노드(1n)가 임시 허브 노드로서 동작할 수 있다. 리소스 성능은 변동될 수 있으므로, 임시 허브 노드가 되는 노드 역시 변동될 수 있다.The first node 1n to the N-th node Nn may each operate as a temporary hub node. For example, the first node 1n having the best resource performance among the first node 1n to the Nth node Nn may operate as a temporary hub node. Since the resource performance may fluctuate, the node that becomes the temporary hub node may also fluctuate.

임시 허브 노드는 작업 지시서에 기초하여 작업 리스트를 생성하고, 작업 리스트를 브로드캐스팅할 수 있다. 예를 들어, 임시 허브 노드인 제1 노드(1n)가 작업 지시서에 기초하여 작업 리스트를 생성하고, 제2 노드(2n) 내지 제N 노드(Nn)에 작업 리스트를 브로드캐스팅할 수 있다. 따라서, 제1 노드(1n) 내지 제N 노드(Nn)가 작업 리스트를 공유할 수 있다.The temporary hub node can create a work list based on the work instruction and broadcast the work list. For example, the first node 1n, which is a temporary hub node, can generate a task list based on the work instruction sheet and broadcast the task list to the second node 2n to the Nth node Nn. Thus, the first node 1n to the N-th node Nn can share the task list.

제1 노드(1n) 내지 제N 노드(Nn)는 각각 작업 리스트에 포함된 적어도 하나의 작업을 수행할 수 있다. 이를 위해, 제1 노드(1n) 내지 제N 노드(Nn)는 적어도 하나의 작업에 대한 작업 홀드 메시지를 서로 주고 받을 수 있다. 제1 노드(1n) 내지 제N 노드(Nn)는 각각 전송한 작업 홀드 메시지와 수신한 작업 홀드 메시지를 비교한 결과에 기초하여, 적어도 하나의 작업에 대한 수행 여부를 판단할 수 있다.The first node 1n to the N-th node Nn may each perform at least one task included in the task list. To this end, the first node 1n to the N-th node Nn may exchange work-hold messages for at least one job. The first node 1n to the N-th node Nn may determine whether to perform at least one task based on a result of comparing the received job hold message and the received job hold message, respectively.

즉, 제1 노드(1n) 내지 제N 노드(Nn)는 각각 작업 리스트에 포함된 일부 작업을 동적으로 할당 받아 수행할 수 있다. 이에 따라, 제1 노드(1n) 내지 제N 노드(Nn)는 중복 없이 작업 리스트에 포함된 모든 작업을 수행함으로써, 대용량 데이터를 원활하게 수집할 수 있다.That is, the first node 1n to the N-th node Nn can dynamically allocate and perform some tasks included in the task list, respectively. Accordingly, the first node 1n to the N-th node Nn can smoothly collect large-volume data by performing all jobs included in the job list without duplication.

도 2는 본 발명의 일 실시예에 따른 작업 할당 시스템을 개략적으로 도시한 블록도이다.2 is a block diagram schematically illustrating a task assignment system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 작업 할당 시스템(100)은 통신 인터페이스(110), 프로세서(130), 및 데이터베이스(150)를 포함한다.Referring to FIG. 2, a task assignment system 100 according to an embodiment of the present invention includes a communication interface 110, a processor 130, and a database 150.

네트워크(10)를 구성하는 하나의 노드에 포함된 통신 인터페이스(110)는 네트워크(10)를 구성하는 다른 노드들에 작업 리스트 및 제1 작업 홀드 메시지를 전송하고, 다른 노드들 중 적어도 하나로부터 제2 작업 홀드 메시지를 수신한다.The communication interface 110 included in one node constituting the network 10 transmits a task list and a first task hold message to other nodes constituting the network 10, 2 Receive a job hold message.

예를 들어, 제1 노드(1n)의 통신 인터페이스(110)는 제2 노드(2n) 내지 제N 노드(Nn)에 작업 리스트 및 제1 작업 홀드 메시지를 전송하고, 제2 노드(2n)로부터 제2 작업 홀드 메시지를 수신할 수 있다.For example, the communication interface 110 of the first node 1n transmits a work list and a first job hold message to the second node 2n to the Nth node Nn, And may receive a second job hold message.

한편, 네트워크(10)를 구성하는 하나의 노드에 포함된 통신 인터페이스(110)는 네트워크(10)를 구성하는 다른 노드로부터 작업 리스트 및 제1 작업 홀드 메시지를 수신하고, 다른 노드에 제2 작업 홀드 메시지를 전송한다.On the other hand, the communication interface 110 included in one node constituting the network 10 receives a work list and a first job hold message from another node constituting the network 10, Message.

예를 들어, 제2 노드(2n)의 통신 인터페이스(110)는 제1 노드(1n)로부터 작업 리스트 및 제1 작업 홀드 메시지를 수신하고, 제1 노드(1n)에 제2 작업 홀드 메시지를 전송할 수 있다.For example, the communication interface 110 of the second node 2n receives the task list and the first task hold message from the first node 1n and sends the second task hold message to the first node 1n .

네트워크(10)를 구성하는 하나의 노드에 포함된 통신 인터페이스(110)는 네트워크(10)를 구성하는 다른 노드에 적어도 하나의 작업에 대한 작업 완료 메시지를 전송하거나, 네트워크(10)를 구성하는 다른 노드로부터 적어도 하나의 작업에 대한 작업 완료 메시지를 수신할 수 있다.The communication interface 110 included in one node constituting the network 10 may transmit a task completion message for at least one task to another node constituting the network 10, And receive a task completion message for at least one task from the node.

작업 완료 메시지는 작업 식별자, 노드 식별자, 작업 완료 알림 중 적어도 하나를 포함할 수 있다.The task completion message may include at least one of a task identifier, a node identifier, and a task completion notification.

네트워크(10)를 구성하는 하나의 노드에 포함된 통신 인터페이스(110)는 네트워크(10)를 구성하는 다른 노드들에 제1 리소스 정보를 전송하고, 다른 노드들 중 적어도 하나로부터 제2 리소스 정보를 수신할 수 있다.The communication interface 110 included in one node constituting the network 10 transmits first resource information to other nodes constituting the network 10 and transmits second resource information from at least one of the other nodes .

리소스 정보는 작업을 수행하는데 필요한 노드의 유선 자원 또는 무선 자원에 대한 정보를 의미할 수 있다.The resource information may mean information about a wired resource or a wireless resource of a node necessary for performing an operation.

한편, 네트워크(10)를 구성하는 하나의 노드에 포함된 프로세서(130)는 제1 노드(1n) 내지 제n 노드(Nn)의 리소스 성능을 비교하고, 리소스 성능이 가장 좋은 노드를 임시 허브 노드로 결정할 수 있다.The processor 130 included in one node constituting the network 10 compares the resource capabilities of the first node 1n to the nth node Nn, .

예를 들어, 제1 노드(1n)의 프로세서(130)는 제1 리소스 정보에 포함시킨 제1 리소스 성능이 제2 리소스 정보에 포함된 제2 리소스 성능보다 좋은 경우 제1 노드(1n)를 임시 허브 노드로 결정하고, 작업 지시서에 기초하여 작업 리스트를 생성할 수 있다.For example, when the first resource performance included in the first resource information is better than the second resource performance included in the second resource information, the processor 130 of the first node 1n temporarily sets the first node 1n It is determined as a hub node, and a work list can be generated based on the work instruction sheet.

네트워크(10)를 구성하는 하나의 노드에 포함된 프로세서(130)는 작업 지시서에 기초하여 작업 리스트를 생성하고, 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 적어도 하나의 작업에 대한 제1 작업 홀드 메시지를 생성하고, 제1 작업 홀드 메시지와 적어도 하나의 작업에 대한 제2 작업 홀드 메시지를 비교한 결과에 기초하여 적어도 하나의 작업의 수행 여부를 결정하고, 적어도 하나의 작업을 수행 또는 홀드하면 작업 리스트를 갱신한다.The processor 130 included in one node constituting the network 10 generates a work list based on the work instruction sheet, selects at least one work included in the work list, Determining whether to perform at least one task based on a result of comparing the first task hold message with the second task hold message for at least one task, and performing or holding at least one task The task list is updated.

예를 들어, 제1 노드(1n)의 프로세서(130)는 작업 지시서에 기초하여 작업 리스트를 생성하고, 작업 리스트에 포함된 작업 A를 선택하고, 작업 A에 대한 제1 작업 홀드 메시지를 생성할 수 있다. 제2 노드(2n)로부터의 제2 작업 홀드 메시지가 작업 A에 대한 메시지인 경우, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과에 기초하여 작업 A의 수행 여부를 결정하고, 작업 A를 수행 또는 홀드한 경우 작업 A에 대한 수행 또는 홀드 결과가 반영되도록 작업 리스트를 갱신할 수 있다.For example, the processor 130 of the first node 1n generates a work list based on the work instruction sheet, selects the work A contained in the work list, and generates a first work hold message for the work A . If the second job hold message from the second node 2n is a message for job A, the processor 130 of the first node 1n may compare the first and second job hold messages with the second job hold message The task list can be updated so that the execution or hold result of task A is reflected when task A is performed or held.

한편, 네트워크(10)를 구성하는 하나의 노드에 포함된 프로세서(130)는 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 적어도 하나의 작업에 대한 제2 작업 홀드 메시지를 생성하고, 적어도 하나의 작업에 대한 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과에 기초하여 적어도 하나의 작업의 수행 여부를 결정하고, 적어도 하나의 작업을 수행 또는 홀드하면 작업 리스트를 갱신한다.On the other hand, the processor 130 included in one node constituting the network 10 selects at least one job included in the job list, generates a second job hold message for at least one job, Determines whether to perform at least one task based on a result of comparing the first task hold message and the second task hold message with respect to the task of the first task and updates the task list when performing or holding at least one task.

예를 들어, 제2 노드(2n)의 프로세서(130)는 작업 리스트에 포함된 작업 A를 선택하고, 작업 A에 대한 제2 작업 홀드 메시지를 생성할 수 있다. 제1 노드(1n)로부터의 제1 작업 홀드 메시지가 작업 A에 대한 메시지인 경우, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과에 기초하여 작업 A의 홀드 여부를 결정하고, 작업 A를 홀드한 경우 작업 A에 대한 홀드 결과가 반영되도록 작업 리스트를 갱신할 수 있다.For example, the processor 130 of the second node 2n may select task A contained in the task list and generate a second task hold message for task A. If the first job hold message from the first node 1n is a message for job A, the processor 130 of the second node 2n may compare the result of the comparison of the first and second job hold messages It is possible to determine whether the job A is held based on the job A, and update the job list so that the hold result for job A is reflected when the job A is held.

작업 지시서는 수집의 대상이 되는 데이터의 범위를 가리킬 수 있다. 작업 지시서에 포함된 작업들 각각은 수집의 대상이 되는 데이터의 전체 범위 중 일부를 가리킬 수 있다. 수집의 대상이 되는 데이터의 범위는 데이터의 식별자, 데이터의 주소, 데이터가 저장된 서버의 식별자, 데이터가 저장된 서버의 주소 등일 수 있으며, 이에 한정하지 않는다.The work order can indicate the range of data to be collected. Each of the tasks included in the work instruction sheet may indicate some of the entire range of data to be collected. The scope of the data to be collected may be an identifier of the data, an address of the data, an identifier of the server where the data is stored, an address of the server where the data is stored, and the like.

작업 리스트는 작업 지시서에 포함된 작업들 각각에 대한 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)일 수 있다. 작업 리스트에 포함된 식별자 및 상태코드는 서로 대응될 수 있다.The work list may be a Bloom filter in which at least one of an identifier and a status code for each of the jobs included in the work instruction sheet is inserted. The identifiers and status codes included in the task list may correspond to each other.

상태코드는 작업의 수행 여부를 가리킬 수 있다. 상태 코드는 예를 들어, 미완료(none), 홀드(hold), 및 완료(done) 중 하나일 수 있다. 미완료(none)는 해당 작업이 아직 수행되지 않은 상태임을 나타낼 수 있다. 홀드(hold)는 해당 작업이 소정 노드에 의해 할당 요청된 상태임을 나타낼 수 있다. 완료(done)는 해당 작업이 수행된 상태임을 나타낼 수 있다.The status code can indicate whether or not the task is performed. The status code may be, for example, one of none, hold, and done. Incomplete (none) may indicate that the job has not yet been performed. A hold may indicate that the job is in a state requested to be allocated by a predetermined node. Done can indicate that the job has been performed.

작업 홀드 메시지는 작업 식별자, 작업 홀드 메시지 생성 시간, 작업 홀드 메시지 전송 시간, 작업 홀드 요청 중 적어도 하나를 포함할 수 있다.The operation hold message may include at least one of a job identifier, a job hold message generation time, a job hold message transmission time, and a job hold request.

제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다. 이때, 제2 작업 홀드 메시지 수신 시간은 제1 노드(1n) 등이 제2 작업 홀드 메시지를 수신한 시간을 가리킬 수 있다.The result of comparing the first operation hold message and the second operation hold message may be a result of comparing the time elapsed from the reference time and the reception time of the second operation hold message from the first operation hold message transmission time. At this time, the second task hold message reception time may indicate the time when the first node 1n etc. received the second task hold message.

예를 들어, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간이 제2 작업 홀드 메시지 수신 시간 이전인 경우, 작업 A를 수행할 수 있다. 이때, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과하면, 제2 작업 홀드 메시지를 수신하기 이전에도 작업 A를 수행할 수 있다.For example, the processor 130 of the first node 1n may perform the task A when the elapsed time from the first task hold message transmission time is before the second task hold message reception time. At this time, the processor 130 of the first node 1n may perform the task A even before receiving the second job hold message when the reference time elapses from the first job hold message transmission time.

예를 들어, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간이 제2 작업 홀드 메시지 수신 시간 이후인 경우, 작업 A를 홀드할 수 있다.For example, the processor 130 of the first node 1n may hold task A if the elapsed time from the first task hold message transmission time is after the second task hold message reception time.

제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 전송 시간을 비교한 결과일 수 있다. 이때, 제1 작업 홀드 메시지 수신 시간은 제2 노드(2n) 등이 제1 작업 홀드 메시지를 수신한 시간을 가리킬 수 있다.The result of comparing the first operation hold message and the second operation hold message may be a result of comparing the time elapsed from the reference time and the transmission time of the second operation hold message from the reception time of the first operation hold message. At this time, the first task hold message reception time may indicate the time when the second node 2n or the like receives the first task hold message.

예를 들어, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과한 시간이 제2 작업 홀드 메시지 전송 시간 이전인 경우, 작업 A를 홀드할 수 있다. 이때, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과하면, 제2 작업 홀드 메시지를 전송하기 이전에도 작업 A를 홀드할 수 있다.For example, the processor 130 of the second node 2n may hold the task A when the elapsed time from the first task hold message reception time is earlier than the second task hold message transmission time. At this time, the processor 130 of the second node 2n may hold the task A before transmitting the second task hold message when the reference time elapses from the first task hold message receiving time.

예를 들어, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과한 시간이 제2 작업 홀드 메시지 전송 시간 이후인 경우, 작업 A를 수행할 수 있다. 이때, 제2 노드(2n)의 프로세서(130)는 제2 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과하면, 제1 작업 홀드 메시지를 수신하기 이전 또는 제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과하기 이전에도 작업 A를 수행할 수 있다.For example, the processor 130 of the second node 2n may perform task A if the elapsed time from the first task hold message reception time is after the second task hold message transmission time. At this time, the processor 130 of the second node 2n, if the reference time elapses from the second operation hold message transmission time, before the first operation hold message is received or when the reference time elapses from the first operation hold message reception time You can also do task A before.

제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과일 수 있다.The result of comparing the first operation hold message and the second operation hold message may be a result of comparing the first operation hold message generation time and the second operation hold message generation time.

예를 들어, 제1 작업 홀드 메시지 생성 시간이 제2 작업 홀드 메시지 생성 시간 이전인 경우, 제1 노드(1n)의 프로세서(130)는 작업 A를 수행할 수 있고, 제2 노드(2n)의 프로세서(130)는 작업 A를 홀드할 수 있다.For example, if the first task hold message creation time is before the second task hold message creation time, the processor 130 of the first node 1n may perform task A, Processor 130 may hold job A.

예를 들어, 제1 작업 홀드 메시지 생성 시간이 제2 작업 홀드 메시지 생성 시간 이후인 경우, 제1 노드(1n)의 프로세서(130)는 작업 A를 홀드할 수 있고, 제2 노드(2n)의 프로세서(130)는 작업 A를 수행할 수 있다.For example, if the first task hold message generation time is after the second task hold message generation time, the processor 130 of the first node 1n can hold task A, Processor 130 may perform task A. < RTI ID = 0.0 >

제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간과 제2 작업 홀드 메시지 전송 시간을 비교한 결과일 수 있다.The result of comparing the first operation hold message and the second operation hold message may be a result of comparing the first operation hold message transmission time and the second operation hold message transmission time.

예를 들어, 제1 작업 홀드 메시지 전송 시간이 제2 작업 홀드 메시지 전송 시간 이전인 경우, 제1 노드(1n)의 프로세서(130)는 작업 A를 수행할 수 있고, 제2 노드(2n)의 프로세서(130)는 작업 A를 홀드할 수 있다.For example, if the first task hold message transmission time is before the second task hold message transmission time, the processor 130 of the first node 1n may perform task A, and the second node 2n Processor 130 may hold job A.

예를 들어, 제1 작업 홀드 메시지 전송 시간이 제2 작업 홀드 메시지 전송 시간 이후인 경우, 제1 노드(1n)의 프로세서(130)는 작업 A를 홀드할 수 있고, 제2 노드(2n)의 프로세서(130)는 작업 A를 수행할 수 있다.For example, if the first job hold message transmission time is after the second job hold message transmission time, the processor 130 of the first node 1n may hold job A and the second node 2n Processor 130 may perform task A. < RTI ID = 0.0 >

제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간 또는 제1 작업 홀드 메시지 수신 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.The result of comparing the first operation hold message with the second operation hold message may include a first operation hold message transmission time or a first operation hold message reception time and a second operation hold message transmission time or a second operation hold message reception time, May be the result of comparison.

예를 들어, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지 전송 시간이 제2 작업 홀드 메시지 수신 시간 이전인 경우, 작업 A를 수행할 수 있다.For example, the processor 130 of the first node 1n may perform task A if the first job hold message transmission time is before the second job hold message reception time.

예를 들어, 제1 노드(1n)의 프로세서(130)는 제1 작업 홀드 메시지 전송 시간이 제2 작업 홀드 메시지 수신 시간 이후인 경우, 작업 A를 홀드할 수 있다.For example, the processor 130 of the first node 1n may hold job A if the first job hold message transmission time is after the second job hold message reception time.

예를 들어, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지 수신 시간이 제2 작업 홀드 메시지 전송 시간 이전인 경우, 작업 A를 홀드할 수 있다.For example, the processor 130 of the second node 2n may hold job A if the first job hold message reception time is before the second job hold message transmission time.

예를 들어, 제2 노드(2n)의 프로세서(130)는 제1 작업 홀드 메시지 수신 시간이 제2 작업 홀드 메시지 전송 시간 이후인 경우, 작업 A를 수행할 수 있다.For example, the processor 130 of the second node 2n may perform task A if the first task hold message reception time is after the second task hold message transmission time.

프로세서(130)는 적어도 하나의 작업을 수행하면, 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)로 변경함으로써 작업 리스트를 갱신할 수 있다.When the processor 130 performs at least one task, it can update the task list by changing the status code corresponding to at least one task from none to done.

예를 들어, 제1 노드(1n)의 프로세서(130)는 작업 A를 수행한 후, 작업 A의 상태코드를 미완료(none)에서 완료(done)로 변경할 수 있다.For example, the processor 130 of the first node 1n may change the status code of task A from incomplete (none) to done after performing task A.

프로세서(130)는 적어도 하나의 작업을 홀드하면, 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경함으로써 작업 리스트를 갱신할 수 있다.The processor 130 may update the task list by holding at least one task and changing the status code corresponding to the at least one task from none to hold.

예를 들어, 제2 노드(2n)의 프로세서(130)는 작업 A를 홀드한 후, 작업 A의 상태코드를 미완료(none)에서 홀드(hold)로 변경할 수 있다.For example, the processor 130 of the second node 2n may change the status code of task A from incomplete (none) to hold after holding task A.

프로세서(130)는 통신 인터페이스(110)를 통해 수신한 작업 완료 메시지에 대응하여, 적어도 하나의 작업에 대응하는 상태코드를 미완료(none) 또는 홀드(hold)에서 완료(done)로 변경함으로써 작업 리스트를 갱신할 수 있다.The processor 130 changes the status code corresponding to at least one task from "none" or "hold" to "done" in response to the job completion message received through the communication interface 110, Can be updated.

예를 들어, 제1 노드(1n)의 프로세서(130)는 작업 A를 수행한 후, 작업 A에 대한 작업 완료 메시지를 제2 노드(2n)에 전송할 수 있다. 이때, 제2 노드(2n)의 프로세서(130)는 작업 완료 메시지에 대응하여 작업 A의 상태코드를 홀드(hold)에서 완료(done)로 변경할 수 있다.For example, the processor 130 of the first node 1n may perform a job A and then send a job completion message for the job A to the second node 2n. At this time, the processor 130 of the second node 2n may change the status code of the task A from 'hold' to 'done' in response to the job completion message.

이와 같이, 제1 노드(1n) 내지 제N 노드(Nn)는 작업 리스트의 상태코드를 갱신함으로써 중복 없이 효율적으로 작업 리스트에 포함된 작업을 수행할 수 있다.In this manner, the first node 1n to the N-th node Nn can update the status code of the work list, thereby efficiently performing the jobs included in the work list without duplication.

데이터베이스(150)는 작업 리스트를 저장할 수 있다. 프로세서(130)는 데이터베이스(150)에 저장된 작업 리스트를 갱신할 수 있다.The database 150 may store a work list. The processor 130 may update the task list stored in the database 150.

도 2의 작업 할당 시스템(100)은 도 1의 제1 노드(1n) 내지 제N 노드(Nn)에 각각 구현될 수도 있고, 일부는 제1 노드(1n) 내지 제N 노드(Nn)에 구현되고 일부는 네트워크(10)의 게이트웨이(미도시)에 구현될 수도 있고, 제1 노드(1n) 내지 제N 노드(Nn)에 나누어 구현될 수도 있으며, 이에 한정하지 않는다.The task allocation system 100 of FIG. 2 may be implemented in the first node 1n to the Nth node Nn, respectively, and some of them may be implemented in the first node 1n to the Nth node Nn And some of them may be implemented in a gateway (not shown) of the network 10, or may be implemented by being divided into the first node 1n to the Nth node Nn, but the present invention is not limited thereto.

이하에서는, 도 3을 참조하여 일 실시예에 따른 임시 허브 노드 결정 방법을 보다 상세하게 설명한다. 도 3에 도시된 제1 노드(1n), 제2 노드(2n), 및 제3 노드(3n)는 하나의 네트워크(10)를 구성하며, 동일한 도메인 네임 시스템(DNS, domain name system)을 사용할 수 있다.Hereinafter, a method of determining a temporary hub node according to an embodiment will be described in more detail with reference to FIG. The first node 1n, the second node 2n and the third node 3n shown in FIG. 3 constitute one network 10 and use the same domain name system (DNS) .

도 3은 본 발명의 일 실시예에 따른 임시 허브 노드 결정 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of determining a temporary hub node according to an exemplary embodiment of the present invention.

도 3을 참조하면, 제1 노드(1n)는 제1 리소스 정보를 생성하고(S101), 제1 리소스 정보를 제2 노드(2n)와 제3 노드(3n)에 전송한다(S103, S105).3, the first node 1n generates first resource information (S101), and transmits the first resource information to the second node 2n and the third node 3n (S103 and S105) .

한편, 제2 노드(2n)는 제2 리소스 정보를 생성하고(S107), 제2 리소스 정보를 제1 노드(1n)와 제3 노드(3n)에 전송한다(S109, S111).On the other hand, the second node 2n generates second resource information (S107), and transmits the second resource information to the first node 1n and the third node 3n (S109, S111).

한편, 제3 노드(3n)는 제3 리소스 정보를 생성한다(S113).Meanwhile, the third node 3n generates third resource information (S113).

네트워크(10)에 포함된 노드들은 주기적으로 리소스 정보를 주고받을 수 있다. 예를 들어, 제1 노드(1n) 및 제2 노드(2n)는 250ms(millisecond)마다 제1 리소스 정보 및 제2 리소스 정보를 브로드캐스팅할 수 있다.The nodes included in the network 10 can exchange resource information periodically. For example, the first node 1n and the second node 2n may broadcast the first resource information and the second resource information every 250 ms (millisecond).

이때, 리소스 정보를 브로드캐스팅하지 않는 제3 노드(3n)는 네트워크(10)에서 제외될 수 있다. 도시하지 않았으나, 제3 노드(3n)의 리소스 정보 전송 주기가 250ms(millisecond)를 초과하는 경우에도, 제3 노드(3n)는 네트워크(10)에서 제외될 수 있다.At this time, the third node 3n that does not broadcast the resource information may be excluded from the network 10. [ Although not shown, the third node 3n may be excluded from the network 10 even when the resource information transmission period of the third node 3n exceeds 250 ms (milliseconds).

제1 노드(1n)는 제1 리소스 정보에 포함시킨 제1 리소스 성능이 제2 리소스 정보에 포함된 제2 리소스 성능보다 좋으면(S115), 제1 노드(1n)를 임시 허브 노드로 결정한다(S117).If the first resource performance included in the first resource information is better than the second resource performance included in the second resource information (S115), the first node 1n determines the first node 1n as a temporary hub node S117).

제2 노드(2n)는 제1 리소스 정보에 포함된 제1 리소스 성능이 제2 리소스 정보에 포함시킨 제2 리소스 성능보다 좋으면(S119), 제1 노드(1n)를 임시 허브 노드로 결정한다(S121).If the first resource performance included in the first resource information is greater than the second resource performance included in the second resource information (S119), the second node 2n determines the first node 1n as a temporary hub node S121).

한편, 제1 노드(1n)는 제2 리소스 성능이 제1 리소스 성능보다 좋으면(S115), 제2 노드(2n)를 임시 허브 노드로 결정한다(S118).On the other hand, if the second resource performance is better than the first resource performance (S115), the first node 1n determines the second node 2n as a temporary hub node (S118).

제2 노드(2n)는 제2 리소스 성능이 제1 리소스 성능보다 좋으면(S119), 제2 노드(2n)를 임시 허브 노드로 결정한다(S122).The second node 2n determines that the second node 2n is a temporary hub node (S122) if the second resource performance is better than the first resource performance (S119).

이어서, 제1 노드(1n)와 제2 노드(2n)는 각각 작업 지시서를 수신한다(S123, S125). 이때, 임시 허브 노드로 동작하는 제1 노드(1n)는 작업 지시서에 기초하여 작업 리스트를 생성한다(S127). 작업 리스트는 블룸 필터의 형태로 생성될 수 있다.Subsequently, the first node 1n and the second node 2n respectively receive the work instruction sheet (S123, S125). At this time, the first node 1n operating as a temporary hub node generates a work list based on the work instruction sheet (S127). The task list may be generated in the form of a Bloom filter.

이어서, 제1 노드(1n)는 네트워크(10)에 속한 제2 노드(2n)에 작업 리스트를 전송한다(S129). 예를 들어, 제1 노드(1n)는 작업 지시서에 포함된 작업에 대한 정보가 나열된 블룸 필터를 제2 노드(2n)에 전송할 수 있다.Subsequently, the first node 1n transmits the task list to the second node 2n belonging to the network 10 (S129). For example, the first node 1n may transmit a bloom filter to the second node 2n in which information on the job included in the work instruction sheet is listed.

도시하지 않았으나, 제2 노드(2n)가 임시 허브 노드로 결정된 경우, 제2 노드(2n)는 작업 지시서에 기초하여 작업 리스트를 생성하고, 네트워크(10)에 속한 제1 노드(1n)에 작업 리스트를 전송할 수 있다.Although not shown, when the second node 2n is determined as a temporary hub node, the second node 2n generates a work list based on the work instruction sheet, and sends a job list to the first node 1n belonging to the network 10 You can send a list.

이에 따라, 제1 노드(1n)와 제2 노드(2n)는 작업 리스트를 공유할 수 있다. 이때, 제1 노드(1n)는 네트워크(10)에 속하지 않은 제3 노드(3n)에는 작업 리스트를 전송하지 않을 수 있다.Accordingly, the first node 1n and the second node 2n can share the work list. At this time, the first node 1n may not transmit the work list to the third node 3n that is not belonging to the network 10. [

이어서, 제1 노드(1n)와 제2 노드(2n)는 작업 리스트에 포함된 적어도 하나의 작업을 수행한다(S131, S133).Then, the first node 1n and the second node 2n perform at least one task included in the task list (S131, S133).

이처럼, 제1 노드(1n), 제2 노드(2n), 및 제3 노드(3n)는 동적으로 임시 허브 노드로 동작할 수 있고, 네트워크(10)에 포함되거나 네트워크(10)로부터 제외될 수 있다. 따라서, 본 발명의 실시예들에 따르면, 작업 할당이 효율적이고 작업 속도가 빨라지므로, 대용량 데이터를 수집하는데 있어 보다 효과적이다.As such, the first node 1n, the second node 2n, and the third node 3n can dynamically act as temporary hub nodes and can be included in or excluded from the network 10 have. Therefore, according to the embodiments of the present invention, since the task allocation is efficient and the operation speed is fast, it is more effective in collecting large amount of data.

이하에서는, 도 4a, 도 4b, 및 도 4c 내지 도 6을 참조하여 각 노드에 의해 작업 리스트에 포함된 작업을 수행하는 동작에 대하여 보다 상세하게 설명한다.Hereinafter, the operation of performing the tasks included in the task list by each node will be described in more detail with reference to Figs. 4A, 4B, and 4C to 6.

도 4a, 도 4b, 및 도 4c는 일 실시예에 따른 작업 리스트를 설명하기 위한 도면이다.4A, 4B, and 4C are views for explaining a task list according to an embodiment.

도 4a를 참조하면, 작업 A의 상태코드는 미완료(none)이다. 이는, 현재 작업 A가 어느 노드에도 할당되지 않고 수행되지 않은 상태임을 가리킨다. 따라서, 상태코드가 미완료(none)인 작업 A는 할당의 대상이 될 수 있다.Referring to FIG. 4A, the status code of task A is incomplete (none). This indicates that the current task A is not assigned to any node and is not executed. Thus, job A with a status code of incomplete (none) can be the object of allocation.

도 4b를 참조하면, 작업 A의 상태코드는 홀드(hold)이다. 이는, 현재 작업 A가 노드에 의해 선택 중인 상태임을 가리킨다. 따라서, 상태코드가 홀드(hold)인 작업 A는 아직 수행되지 않은 작업임을 알 수 있다.Referring to FIG. 4B, the status code of task A is a hold. This indicates that task A is currently being selected by the node. Therefore, it can be seen that job A having a status code hold is an operation that has not been performed yet.

도 4c를 참조하면, 작업 A의 상태코드는 완료(done)이다. 이는, 현재 작업 A가 이미 수행된 상태임을 가리킨다. 따라서, 상태코드가 완료(done)인 작업 A는 할당의 대상이 될 필요가 없다.Referring to FIG. 4C, the status code of task A is done. This indicates that the current task A has already been performed. Therefore, task A, whose status code is done, need not be the object of assignment.

도 5 및 도 6은 각각 본 발명의 일 실시예에 따른 작업 할당 방법을 상세하게 설명하기 위한 흐름도이다.5 and 6 are flowcharts for explaining a task allocation method according to an embodiment of the present invention in detail.

도 5를 참조하면, 제1 노드(1n)는 작업 리스트의 작업 A를 선택하고(S201). 작업 A에 대한 작업 홀드 메시지를 생성한다(S203).Referring to FIG. 5, the first node 1n selects job A in the job list (S201). A job hold message for job A is generated (S203).

이어서, 제1 노드(1n)는 작업 홀드 메시지를 제2 노드(2n)에 전송한다(S205). 이때, 제2 노드(2n)는 작업 A에 대한 작업 홀드 메시지를 전송하지 않을 수 있다.Subsequently, the first node 1n transmits a job hold message to the second node 2n (S205). At this time, the second node 2n may not transmit a job hold message for task A.

제1 노드(1n)는 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과하면(S207), 작업 A를 수행한다(S209). 즉, 제1 노드(1n)는 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과하면, 작업 A를 할당 받을 수 있다.When the reference time elapses from the job hold message transmission time (S207), the first node (1n) performs job A (S209). That is, the first node 1n can be assigned task A when the reference time elapses from the hold message transmission time.

도시하지 않았지만, 제2 노드(2n)에 의해 작업 A에 대한 작업 홀드 메시지가 전송된 경우라면, 제1 노드(1n)는 제1 노드(1n)의 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간이 제2 노드(2n)로부터의 작업 홀드 메시지 수신 시간보다 빠른 경우, 작업 A를 수행할 수 있다.Although not shown, if a job hold message for job A is transmitted by the second node 2n, the first node 1n transmits the job hold message transmission time of the first node 1n, If the time is earlier than the receipt time of the job hold message from the second node 2n, then task A can be performed.

한편, 제2 노드(2n)는 제1 노드(1n)로부터의 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과하면(S211), 작업 A를 홀드한다(S213). 이때, 제2 노드(2n)는 작업 리스트 상에서의 작업 A의 상태코드를 미완료(none)에서 홀드(hold)로 변경할 수 있다.Meanwhile, when the reference time has elapsed from the reception time of the job hold message from the first node 1n (S211), the second node 2n holds the job A (S213). At this time, the second node 2n may change the status code of task A on the work list from none to hold.

이처럼, 제2 노드(2n)의 작업 리스트 상에 현재 작업 A가 노드에 의해 선택 중인 상태임을 나타냄으로써, 작업 A를 제2 노드(2n)의 선택 대상에서 제외시킬 수 있다. 따라서, 작업 A의 중복 할당을 방지함으로써, 작업 할당을 보다 효율적으로 수행하고, 작업 속도를 향상 시킬 수 있다.Thus, by indicating that the current job A is being selected by the node on the job list of the second node 2n, the job A can be excluded from the selection target of the second node 2n. Therefore, it is possible to more efficiently perform the job assignment and improve the work speed by preventing duplication of job A.

제2 노드(2n)는 작업 리스트의 작업 B를 선택한다(S215). 다시 말해, 제2 노드(2n)는 작업 리스트 상에서의 상태코드가 미완료(none)인 작업 B를 선택할 수 있다. 도시하지 않았으나, 제2 노드(2n)는 작업 B에 대한 작업 홀드 메시지를 브로드캐스팅할 수 있다.The second node 2n selects job B in the job list (S215). In other words, the second node 2n can select job B whose status code on the job list is incomplete (none). Although not shown, the second node 2n may broadcast a job hold message for task B.

한편, 제1 노드(1n)는 작업 A를 완료하고, 작업 리스트를 갱신한다(S217). 즉, 제1 노드(1n)는 작업 A가 완료되면, 작업 리스트 상에서의 작업 A의 상태코드를 미완료(none)에서 완료(done)로 변경할 수 있다.On the other hand, the first node 1n completes the task A and updates the task list (S217). That is, when the task A is completed, the first node 1n can change the status code of the task A on the work list from incomplete (none) to done (done).

이어서, 제1 노드(1n)는 작업 A에 대한 작업 완료 메시지를 제2 노드(2n)에 전송한다(S219). 제2 노드(2n)는 작업 완료 메시지에 대응하여 작업 리스트를 갱신한다(S221). 즉, 제2 노드(2n)는 작업 A에 대한 작업 완료 메시지에 대응하여, 작업 리스트 상에서의 작업 A의 상태코드를 홀드(hold)에서 완료(done)로 변경할 수 있다.Subsequently, the first node 1n transmits a job completion message for the job A to the second node 2n (S219). The second node 2n updates the task list in response to the task completion message (S221). That is, the second node 2n may change the status code of the task A on hold from the hold to the done in response to the job completion message for the job A.

이하에서는, 앞서 설명한 부분과 동일한 부분에 대한 설명은 생략하거나 간략히 한다.Hereinafter, the same parts as those described above will be omitted or briefly described.

도 6을 참조하면, 제1 노드(1n)는 작업 리스트의 작업 A를 선택하고(S301). 작업 A에 대한 제1 작업 홀드 메시지를 생성하고(S303), 제1 작업 홀드 메시지를 제2 노드(2n)에 전송한다(S305).Referring to FIG. 6, the first node 1n selects job A in the job list (S301). A first job hold message for job A is generated (S303), and a first job hold message is transmitted to the second node 2n (S305).

제2 노드(2n)는 작업 리스트의 작업 A를 선택하고(S307). 작업 A에 대한 제2 작업 홀드 메시지를 생성하고(S309), 제2 작업 홀드 메시지를 제1 노드(1n)에 전송한다(S311). 이에 따라, 제1 노드(1n)는 제2 노드(2n)로부터 작업 A에 대한 제2 작업 홀드 메시지를 수신할 수 있다.The second node 2n selects job A in the job list (S307). A second job hold message for job A is generated (S309), and a second job hold message is transmitted to the first node 1n (S311). Thus, the first node 1n may receive a second job hold message for job A from the second node 2n.

한편, 제1 노드(1n) 및 제2 노드(2n)는 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과에 기초하여 작업 A의 수행 여부를 결정할 수 있다.On the other hand, the first node 1n and the second node 2n can determine whether to perform the task A based on a result of comparing the first and second job hold messages.

일 실시예에 따르면, 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는 제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과일 수 있다.According to an exemplary embodiment, a result of comparing the first and second task hold messages may be a result of comparing the first task hold message generation time and the second task hold message generation time.

다른 실시예에 따르면, 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는 제1 작업 홀드 메시지 전송 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.According to another embodiment, the result of comparing the first and second job hold messages is a result of comparing the first job hold message transmission time with the second job hold message transmission time or the second job hold message reception time Lt; / RTI >

다른 실시예에 따르면, 제1 작업 홀드 메시지와 제2 작업 홀드 메시지를 비교한 결과는 제2 작업 홀드 메시지 전송 시간과, 제1 작업 홀드 메시지 전송 시간 또는 제1 작업 홀드 메시지 수신 시간을 비교한 결과일 수 있다.According to another embodiment, the result of comparing the first operation hold message with the second operation hold message is a result of comparing the second operation hold message transmission time with the first operation hold message transmission time or the first operation hold message reception time Lt; / RTI >

즉, 제1 작업 홀드 메시지 생성 시간이 제2 작업 홀드 메시지 생성 시간보다 빠르면(S313, S317), 제1 노드(1n)는 작업 A를 수행하고(S315), 제2 노드(2n)는 작업 A를 홀드한다(S319). 즉, 제1 작업 홀드 메시지 생성 시간이 제2 작업 홀드 메시지 생성 시간보다 빠른 경우, 제1 노드(1n)가 작업 A를 할당 받을 수 있다.That is, if the first task hold message creation time is earlier than the second task hold message creation time (S313, S317), the first node 1n performs task A (S315), and the second node 2n executes task A (S319). That is, if the first task hold message generation time is faster than the second task hold message generation time, the first node 1n can be assigned task A.

도시하지 않았으나, 제1 작업 홀드 메시지 전송 시간이 제2 작업 홀드 메시지 전송 시간보다 빠르면, 제1 노드(1n)는 작업 A를 수행하고(S315), 제2 노드(2n)는 작업 A를 홀드한다(S319).Although not shown, if the first task hold message transmission time is earlier than the second task hold message transmission time, the first node 1n performs task A (S315), and the second node 2n holds task A (S319).

한편, 제1 작업 홀드 메시지 생성 시간이 제2 작업 홀드 메시지 생성 시간보다 느리면(S313, S317), 제1 노드(1n)는 작업 A를 홀드하고(S316), 제2 노드(2n)는 작업 A를 수행한다(S321). 즉, 제2 작업 홀드 메시지 생성 시간이 제1 작업 홀드 메시지 생성 시간보다 빠른 경우, 제2 노드(2n)가 작업 A를 할당 받을 수 있다.On the other hand, if the first task hold message generation time is slower than the second task hold message generation time (S313, S317), the first node 1n holds task A (S316), and the second node 2n holds task A (S321). That is, if the second task hold message generation time is faster than the first task hold message generation time, the second node 2n can be assigned task A.

제1 노드(1n)가 작업 A를 할당 받은 경우, 제1 노드(1n)는 작업 A를 완료하고, 작업 리스트를 갱신한다(S327).When the first node 1n has been assigned task A, the first node 1n completes task A and updates the task list (S327).

제1 노드(1n)가 작업 A에 대한 작업 완료 메시지를 제2 노드(2n)에 전송하면(S329), 제2 노드(2n)는 작업 완료 메시지에 대응하여 작업 리스트를 갱신한다(S331).When the first node 1n transmits a job completion message for the job A to the second node 2n (S329), the second node 2n updates the job list in response to the job completion message (S331).

도시하지 않았으나, 제2 노드(2n)가 작업 A를 할당 받은 경우, 제2 노드(2n)는 작업 A를 완료하고, 작업 리스트를 갱신할 수 있다. 제2 노드(2n)가 작업 A에 대한 작업 완료 메시지를 제1 노드(1n)에 전송하면, 제1 노드(1n)는 작업 완료 메시지에 대응하여 작업 리스트를 갱신할 수 있다.Although not shown, if the second node 2n is assigned task A, the second node 2n can complete task A and update the task list. When the second node 2n transmits a job completion message for the job A to the first node 1n, the first node 1n can update the job list in response to the job completion message.

본 발명의 실시예들에 따르면, 메쉬 네트워크를 구성하는 모든 노드들이 임시 허브 노드로서 동작할 수 있으므로, 고장난 노드가 존재하는 경우에도 데이터를 원활하게 수집할 수 있다.According to embodiments of the present invention, all the nodes constituting the mesh network can operate as a temporary hub node, so that data can be smoothly collected even in the presence of a failed node.

본 발명의 실시예들에 따르면, 블룸 필터를 이용하여 메쉬 네트워크를 구성하는 노드들에게 작업을 효율적으로 할당할 수 있으므로, 대용량 데이터를 보다 빠르고 체계적으로 수집할 수 있다.According to the embodiments of the present invention, work can be efficiently allocated to the nodes constituting the mesh network using the Bloom filter, so that the large-capacity data can be collected more quickly and systematically.

결과적으로, 본 발명의 실시예들에 따르면, 메쉬 네트워크에 적합한 작업 할당 시스템, 방법, 및 컴퓨터 프로그램을 제공할 수 있다.As a result, according to embodiments of the present invention, it is possible to provide a task allocation system, method, and computer program suitable for a mesh network.

이제까지 본 발명에 대하여 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명을 구현할 수 있음을 이해할 것이다.The present invention has been described above with reference to preferred embodiments. It will be understood by those skilled in the art that the present invention may be embodied in various other forms without departing from the spirit or essential characteristics thereof.

그러므로 상기 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 특허청구범위에 의해 청구된 발명 및 청구된 발명과 균등한 발명들은 본 발명에 포함된 것으로 해석되어야 한다.Therefore, the above-described embodiments should be considered in a descriptive sense rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and the inventions claimed by the claims and the inventions equivalent to the claimed invention are to be construed as being included in the present invention.

10: 네트워크
1n: 제1 노드
2n: 제2 노드
3n: 제3 노드
Nn: 제n 노드
10: Network
1n: first node
2n: second node
3n: third node
Nn: Control node

Claims (20)

네트워크를 구성하는 하나의 노드는,
상기 네트워크를 구성하는 다른 노드들에 작업 리스트 및 제1 작업 홀드 메시지를 전송하고, 상기 다른 노드들 중 적어도 하나로부터 제2 작업 홀드 메시지를 수신하는 통신 인터페이스;
작업 지시서에 기초하여 상기 작업 리스트를 생성하고, 상기 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제1 작업 홀드 메시지를 생성하고, 상기 제1 작업 홀드 메시지와 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하고, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 프로세서; 및
상기 작업 리스트를 저장하는 데이터베이스;를 포함하는, 작업 할당 시스템.
One node, which constitutes a network,
A communication interface for transmitting a work list and a first job hold message to other nodes constituting the network and receiving a second job hold message from at least one of the other nodes;
Generating at least one job included in the job list, generating the first job hold message for the at least one job, generating the first job hold message and the second job hold message, A processor for determining whether to perform the at least one task based on a result of comparing the second task hold message for the at least one task and updating the task list if performing or holding the at least one task; And
And a database for storing the task list.
청구항 1에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 수신 시간을 비교한 결과인, 작업 할당 시스템.
The method according to claim 1,
Wherein the result of comparing the first job hold message with the second job hold message is a result of comparing a time elapsed from a reference time and a reception time of a second job hold message from a transmission time of the first job hold message, .
청구항 1에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과인, 작업 할당 시스템.
The method according to claim 1,
The result of comparing the first job hold message and the second job hold message,
And a result of comparing the generation time of the first job hold message with the generation time of the second job hold message.
청구항 1에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제1 작업 홀드 메시지 전송 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과인, 작업 할당 시스템.
The method according to claim 1,
The result of comparing the first job hold message and the second job hold message,
And a result of comparing a first job hold message transmission time with a second job hold message transmission time or a second job hold message reception time.
청구항 1에 있어서,
상기 작업 리스트는 상기 작업 지시서에 포함된 작업들 각각에 대한 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)인, 작업 할당 시스템.
The method according to claim 1,
Wherein the work list is a Bloom filter in which at least one of an identifier and a status code for each of the jobs included in the work instruction sheet is inserted.
청구항 5에 있어서,
상기 프로세서에 의해,
상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경함으로써 상기 작업 리스트를 갱신하고,
상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경함으로써 상기 작업 리스트를 갱신하는, 작업 할당 시스템.
The method of claim 5,
By the processor,
Performing the at least one task to update the task list by changing the status code corresponding to the at least one task from none to done,
Wherein the task list is updated by holding the at least one task and changing the status code corresponding to the at least one task from none to hold.
청구항 1에 있어서,
상기 통신 인터페이스에 의해, 상기 다른 노드들에 제1 리소스 정보를 전송하고, 상기 다른 노드들 중 적어도 하나로부터 제2 리소스 정보를 수신하고,
상기 프로세서에 의해, 상기 제1 리소스 정보에 포함시킨 제1 리소스 성능이 상기 제2 리소스 정보에 포함된 제2 리소스 성능보다 좋은 경우 상기 작업 리스트를 생성하는, 작업 할당 시스템.
The method according to claim 1,
Wherein the communication interface transmits first resource information to the other nodes, receives second resource information from at least one of the other nodes,
Wherein the processor generates the task list when the first resource capability included in the first resource information is better than the second resource capability included in the second resource information.
네트워크를 구성하는 하나의 노드는,
상기 네트워크를 구성하는 다른 노드로부터 작업 리스트 및 제1 작업 홀드 메시지를 수신하고, 상기 다른 노드에 제2 작업 홀드 메시지를 전송하는 통신 인터페이스;
상기 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 생성하고, 상기 적어도 하나의 작업에 대한 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하고, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 프로세서; 및
상기 작업 리스트를 저장하는 데이터베이스;를 포함하는, 작업 할당 시스템.
One node, which constitutes a network,
A communication interface for receiving a work list and a first job hold message from another node constituting the network and transmitting a second job hold message to the other node;
Selecting at least one job included in the job list, generating the second job hold message for the at least one job, and generating the first job hold message for the at least one job and the second job hold message for the at least one job, A processor for determining whether to perform the at least one task based on a result of comparing the message and updating the task list when performing or holding the at least one task; And
And a database for storing the task list.
청구항 8에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제1 작업 홀드 메시지 수신 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 전송 시간을 비교한 결과인, 작업 할당 시스템.
The method of claim 8,
The result of comparing the first job hold message and the second job hold message,
Wherein a result of comparing a time at which a reference time elapses from a reception time of a first job hold message and a transmission time of a second job hold message.
청구항 8에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제1 작업 홀드 메시지 생성 시간과 제2 작업 홀드 메시지 생성 시간을 비교한 결과인, 작업 할당 시스템.
The method of claim 8,
The result of comparing the first job hold message and the second job hold message,
And a result of comparing the generation time of the first job hold message with the generation time of the second job hold message.
청구항 8에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제2 작업 홀드 메시지 전송 시간과, 제1 작업 홀드 메시지 전송 시간 또는 제1 작업 홀드 메시지 수신 시간을 비교한 결과인, 작업 할당 시스템.
The method of claim 8,
The result of comparing the first job hold message and the second job hold message,
Wherein the second job hold message transmission time is a result of comparing the second job hold message transmission time with the first job hold message transmission time or the first job hold message reception time.
청구항 8에 있어서,
상기 작업 리스트는 작업 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)인, 작업 할당 시스템.
The method of claim 8,
Wherein the task list is a Bloom filter in which at least one of a task identifier and a status code is inserted.
청구항 12에 있어서,
상기 프로세서에 의해,
상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경함으로써 상기 작업 리스트를 갱신하고,
상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경함으로써 상기 작업 리스트를 갱신하는, 작업 할당 시스템.
The method of claim 12,
By the processor,
Performing the at least one task to update the task list by changing the status code corresponding to the at least one task from none to done,
Wherein the task list is updated by holding the at least one task and changing the status code corresponding to the at least one task from none to hold.
청구항 13에 있어서,
상기 통신 인터페이스에 의해 상기 다른 노드로부터 상기 적어도 하나의 작업에 대한 작업 완료 메시지를 수신하고,
상기 프로세서에 의해 상기 작업 완료 메시지에 대응하여 상기 적어도 하나의 작업에 대응하는 상태코드를 상기 미완료 또는 상기 홀드에서 완료(done)로 변경함으로써 상기 작업 리스트를 갱신하는, 작업 할당 시스템.
14. The method of claim 13,
Receive a task completion message for the at least one task from the other node by the communication interface,
And updates the task list by changing the status code corresponding to the at least one task from the unfinished or the hold to done in response to the task completion message by the processor.
네트워크를 구성하는 제1 노드 및 제2 노드의 작업 할당 방법에 있어서,
상기 제1 노드에 의해, 작업 지시서에 기초하여 작업 리스트를 생성하는 단계;
상기 제1 노드에 의해, 상기 작업 리스트를 상기 제2 노드에 전송하는 단계;
상기 제1 노드에 의해, 작업 리스트에 포함된 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 제1 작업 홀드 메시지를 생성하고, 상기 제1 작업 홀드 메시지를 상기 제2 노드에 전송하는 단계;
상기 제1 노드에 의해, 상기 제2 노드로부터 상기 적어도 하나의 작업에 대한 제2 작업 홀드 메시지를 수신하는 단계;
상기 제1 노드에 의해, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하는 단계; 및
상기 제1 노드에 의해, 상기 적어도 하나의 작업을 수행 또는 홀드하면 상기 작업 리스트를 갱신하는 단계;를 포함하는, 작업 할당 방법.
1. A method for assigning a job to a first node and a second node constituting a network,
Generating, by the first node, a work list based on the work instruction sheet;
Sending, by the first node, the task list to the second node;
Selecting, by the first node, at least one task included in the task list, generating a first task hold message for the at least one task, and transmitting the first task hold message to the second node step;
Receiving, by the first node, a second job hold message for the at least one job from the second node;
Determining, by the first node, whether to perform the at least one task based on a result of comparing the first task hold message and the second task hold message; And
And updating the task list by performing or holding the at least one task by the first node.
청구항 15에 있어서,
상기 제2 노드에 의해, 상기 작업 리스트에 포함된 상기 적어도 하나의 작업을 선택하고, 상기 적어도 하나의 작업에 대한 상기 제2 작업 홀드 메시지를 생성하는 단계;
상기 제2 노드에 의해, 상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과에 기초하여 상기 적어도 하나의 작업의 수행 여부를 결정하는 단계;
상기 제2 노드에 의해, 상기 제1 노드로부터 상기 적어도 하나의 작업에 대한 작업 완료 메시지를 수신하는 단계; 및
상기 제2 노드에 의해, 상기 적어도 하나의 작업에 대한 수행, 홀드, 또는 상기 작업 완료 메시지에 대응하여 상기 작업 리스트를 갱신하는 단계;를 포함하는, 작업 할당 방법.
16. The method of claim 15,
Selecting, by the second node, the at least one task included in the task list and generating the second task hold message for the at least one task;
Determining, by the second node, whether to perform the at least one task based on a result of comparing the first job hold message and the second job hold message;
Receiving, by the second node, a task completion message for the at least one task from the first node; And
And updating, by the second node, the task list in response to performing, holding, or the task completion message for the at least one task.
청구항 15에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는, 제1 작업 홀드 메시지 전송 시간으로부터 기준 시간이 경과한 시간과 제2 작업 홀드 메시지 수신 시간을 비교한 결과인, 작업 할당 방법.
16. The method of claim 15,
Wherein a result of comparing the first job hold message and the second job hold message is a result of comparing a time when a reference time elapses from a first job hold message transmission time and a reception time of a second job hold message, .
청구항 15에 있어서,
상기 제1 작업 홀드 메시지와 상기 제2 작업 홀드 메시지를 비교한 결과는,
제1 작업 홀드 메시지 전송 시간과, 제2 작업 홀드 메시지 전송 시간 또는 제2 작업 홀드 메시지 수신 시간을 비교한 결과인, 작업 할당 방법.
16. The method of claim 15,
The result of comparing the first job hold message and the second job hold message,
Wherein the first task hold message transmission time is a result of comparing a first task hold message transmission time and a second task hold message transmission time or a second task hold message reception time.
청구항 15에 있어서,
상기 작업 리스트는 상기 작업 지시서에 포함된 작업들 각각에 대한 식별자 및 상태코드 중 적어도 하나가 삽입된 블룸 필터(Bloom filter)이고,
상기 작업 리스트를 갱신하는 단계는,
상기 제1 노드에 의해, 상기 적어도 하나의 작업을 수행하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 완료(done)으로 변경하고, 상기 적어도 하나의 작업을 홀드하면 상기 적어도 하나의 작업에 대응하는 상태코드를 미완료(none)에서 홀드(hold)로 변경하는 단계인, 작업 할당 방법.
16. The method of claim 15,
Wherein the work list is a Bloom filter in which at least one of an identifier and a status code for each of the jobs included in the work instruction sheet is inserted,
The step of updating the task list comprises:
Performing at least one task by the first node to change a status code corresponding to the at least one task from none to done and holding the at least one task, Is changed from an imperfect (none) to a hold state.
컴퓨터를 이용하여 제15항 내지 제19항 중 어느 한 항의 방법을 실행하기 위하여 기록매체에 저장된 컴퓨터 프로그램.A computer program stored on a recording medium for executing the method of any one of claims 15 to 19 using a computer.
KR1020170128314A 2017-09-29 2017-09-29 System, method, and computer program for assigning tasks KR101985899B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170128314A KR101985899B1 (en) 2017-09-29 2017-09-29 System, method, and computer program for assigning tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170128314A KR101985899B1 (en) 2017-09-29 2017-09-29 System, method, and computer program for assigning tasks

Publications (2)

Publication Number Publication Date
KR20190038195A KR20190038195A (en) 2019-04-08
KR101985899B1 true KR101985899B1 (en) 2019-06-04

Family

ID=66164373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170128314A KR101985899B1 (en) 2017-09-29 2017-09-29 System, method, and computer program for assigning tasks

Country Status (1)

Country Link
KR (1) KR101985899B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012049247A1 (en) 2010-10-13 2012-04-19 Partec Cluster Competence Center Gmbh A computer cluster arrangement for processing a computation task and method for operation thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5392129B2 (en) * 2010-02-08 2014-01-22 富士通株式会社 Program and information processing apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012049247A1 (en) 2010-10-13 2012-04-19 Partec Cluster Competence Center Gmbh A computer cluster arrangement for processing a computation task and method for operation thereof

Also Published As

Publication number Publication date
KR20190038195A (en) 2019-04-08

Similar Documents

Publication Publication Date Title
EP4020252A1 (en) Data analysis method and device, apparatus, and storage medium
US11895577B2 (en) Network slice selection method and apparatus
CN110121180B (en) Data analysis device, system and method
US11093296B2 (en) System, virtualization control apparatus, method for controlling a virtualization control apparatus, and program
CN115525438A (en) Method, device and system for allocating resources and tasks in distributed system
EP3185516A1 (en) Address processing method, related device and system
US20150301814A1 (en) Application deployment method and scheduler
EP3871091B1 (en) Distributed database-driven resource management and locking in a cloud native mobile core network node architecture
CN108123820B (en) Network equipment information acquisition method and device
EP3386169B1 (en) Address allocation method, gateway and system
EP3329657B1 (en) A method a server and a client for policy based control of m2m devices
KR20120066116A (en) Web service information processing method and web service compositing method and apparatus using the same
CN112019581B (en) Method and device for scheduling task processing entities
EP4068725B1 (en) Topology-based load balancing for task allocation
US20200136929A1 (en) Virtual network function bus-based auto-registration
KR20220043651A (en) A method and apparatus for renewing subscription for network data analysis in a wireless communication system
CN112672421B (en) Method, system, device and storage medium for positioning terminal in communication network
JP2019525676A (en) Method and apparatus for managing terminal mobility pattern
US20190289067A1 (en) Information processing apparatus and non-transitory computer readable medium
CN112672420A (en) Method, system, device and storage medium for positioning terminal in communication network
CN103581273A (en) Service executing method, device and system for distributed system
KR101985899B1 (en) System, method, and computer program for assigning tasks
JP6981419B2 (en) Information processing equipment, gateway equipment, information processing methods and information processing programs
WO2022022910A1 (en) Service request handling
US20150271775A1 (en) Method and Device for Deregistering Terminal Peripheral

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant