KR102145795B1 - 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치 - Google Patents
복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102145795B1 KR102145795B1 KR1020170088033A KR20170088033A KR102145795B1 KR 102145795 B1 KR102145795 B1 KR 102145795B1 KR 1020170088033 A KR1020170088033 A KR 1020170088033A KR 20170088033 A KR20170088033 A KR 20170088033A KR 102145795 B1 KR102145795 B1 KR 102145795B1
- Authority
- KR
- South Korea
- Prior art keywords
- task
- worker
- worker node
- node
- application
- Prior art date
Links
Images
Classifications
-
- 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
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
복수의 워커 노드(worker node)가 분산된 환경에서 제1 워커 노드가 태스크(task)를 수행하는 방법이 제공된다. 상기 제1 워커 노드는, 어플리케이션 관리 장치로부터, 어플리케이션에 포함되는 적어도 하나의 태스크 중 제1 태스크를 할당 받는다. 상기 제1 워커 노드는, 상기 제1 태스크를 수행한다. 그리고 상기 제1 워커 노드는, 휴대 가능한 상기 제1 워커 노드와 협업하는 제2 워커 노드와 상기 제1 워커 노드 간의 네트워크 품질 그리고 상기 제1 워커 노드의 물리적 위치를 포함하는 측정 정보를, 상기 어플리케이션 관리 장치로 전송한다.
Description
본 발명은 복수의 워커 노드가 분산된 환경에서 데이터 스트림의 분석 및 처리를 위한 태스크를 수행하고 관리하는 방법 및 장치에 관한 것이다.
또한, 본 발명은 태스크를 지속적으로 모니터링하고 관리하는 방법 및 장치에 관한 것이다.
초연결 시대에 도래하면서, 비정형 데이터가 폭발적으로 증가하고 있다. 가트너 사(社)는, 2020년에는 사물 인터넷(IoT: internet of things)를 통해 연결된 디바이스들이 260억개에 이른다고 발표한 바 있고, 2020년에 생성되는 데이터의 양은 2013년에 생성되는 데이터의 양의 100배가 넘을 것으로 발표한 바 있다. 이를 대변하듯이, 근래에는 라즈베리파이(Raspberry Pi)와 아두이노(Arduino) 등과 같은 작은 컴퓨터와 센서들을 통해 누구나 데이터를 손쉽게 수집할 수 있고, 이러한 데이터를 분석 활용하는 많은 서비스가 생겨나고 있다. 여기서, 라즈베리파이는 분석 노드로써 활용될 수 있다.
예를 들어, IoT 디바이스들을 활용하는 서비스들에는, 스마트홈 서비스, 스마트팩토리 서비스, 스마트팜(smart farm) 서비스 등이 있다. 이러한 서비스들은, 서버가 사용자에 의해 생성되는 스트림 데이터 또는 지역에서 생성되는 스트림 데이터를 실시간으로 수집하고 분석하여 맞춤 서비스를 제공하는 것을 목표로 가진다. 이를 위해, 아파치 하둡(Apache Hadoop), 아파치 스파크(Apache Spark) 등과 같은 서버 클러스터에 의해 수집된 데이터를 처리하는 빅데이터 플랫폼은, 실시간으로 들어오는 데이터를 분석 처리하기 위한 스트림 분석 모듈을 지원한다.
기존의 데이터 분석 플랫폼들은 서버 클러스터 내의 분산 환경에서, 소수의 데이터 소스로부터 또는 단일의 메시지 허브로부터 데이터를 수집하여 처리한다.
하지만 근래에는 앞서 언급한 IoT 디바이스들을 통해 수많은 최종 사용자가 데이터 퍼블리셔(publisher)가 됨으로써, 데이터의 양 뿐만 아니라 데이터 생성 소스도 급증하였다. 그리고 가장 앞 단의 디바이스(예, 게이트웨이), 서버 클러스터, 그리고 데이터 소스 간의 연결들은 다를 수 있다. 또한 품질도 항상 보장될 수 없다.
따라서, 실시간 반응성이 요구되는 부분에 대해서는, 앞 단(예, 엣지 단)의 디바이스를 통해 데이터를 분석 처리하는 기술이 필요하다. 그리고 고성능 컴퓨팅이 요구되는 분석에 대해서는, 게이트웨이와 서버 클러스터의 상황에 따라 태스크를 분배 및 배치함으로써 협업 분석을 지원할 수 있는 기술이 필요하다.
본 발명이 해결하고자 하는 과제는, 복수의 워커 노드가 분산된 환경에서 데이터 스트림의 분석 및 처리를 위한 태스크를 수행하고 관리하는 방법 및 장치, 그리고 태스크를 지속적으로 모니터링하고 관리하는 방법 및 장치를 제공하는 것이다.
또한 본 발명이 해결하고자 하는 과제는, 태스크 배치를 통해, 앞 단의 게이트웨이와 서버 클러스터 간의 협업 분석을 효율적으로 제공하는 방법 및 장치를 제공하는 것이다.
본 발명의 실시예에 따르면, 복수의 워커 노드(worker node)가 분산된 환경에서 제1 워커 노드가 태스크(task)를 수행하는 방법이 제공된다. 상기 제1 워커 노드의 태스크 수행 방법은, 어플리케이션 관리 장치로부터, 어플리케이션에 포함되는 적어도 하나의 태스크 중 제1 태스크를 할당 받는 단계; 상기 제1 태스크를 수행하는 단계; 및 휴대 가능한 상기 제1 워커 노드와 협업하는 제2 워커 노드와 상기 제1 워커 노드 간의 네트워크 품질 그리고 상기 제1 워커 노드의 물리적 위치를 포함하는 측정 정보를, 상기 어플리케이션 관리 장치로 전송하는 단계를 포함한다.
상기 어플리케이션에 포함되는 적어도 하나의 태스크를 할당 받는 복수의 협업 워커 노드는, 상기 제1 워커 노드와 상기 제2 워커 노드를 포함할 수 있다.
상기 복수의 협업 워커 노드는, 워커 노드들 간의 네트워크 품질, 각 워커 노드의 처리 능력, 상기 적어도 하나의 태스크의 특성, 그리고 수집되는 데이터의 특성에 기초해, 상기 어플리케이션 관리 장치에 의해 결정될 수 있다.
상기 제1 태스크를 수행하는 단계는, 상기 제1 태스크가 소스(source) 태스크인 경우에, 센서로부터 데이터 스트림을 수집하는 단계; 상기 제1 태스크가 분석(analysis) 태스크인 경우에, 상기 수집된 데이터 스트림을 분석하여, 분석 결과를 생성하는 단계; 및 상기 제1 태스크가 싱크(sink) 태스크인 경우에, 상기 분석 결과를 시각화하는 단계를 포함할 수 있다.
상기 제1 워커 노드의 태스크 수행 방법은, 상기 제1 태스크의 수행 결과를 상기 제2 워커 노드로 전송하는 단계를 더 포함할 수 있다.
상기 제1 태스크를 수행하는 단계는, 기 설정된 정책에 따라 상기 제1 태스크를 수행하는 단계를 포함할 수 있다.
상기 측정 정보는, 상기 제1 워커 노드의 부하 그리고 상기 제1 워커 노드가 상기 제1 태스크를 수행하는데 걸린 시간을 더 포함할 수 있다.
상기 제1 워커 노드의 태스크 수행 방법은, 상기 어플리케이션에 포함되는 적어도 하나의 태스크 중 상기 제1 태스크의 수행 결과를 입력 데이터로써 사용하는 제2 태스크를 수행하는 상기 제2 워커 노드에 장애가 발생하는 경우에, 상기 제2 워커 노드를 대신하여 상기 제2 태스크를 수행하는 단계를 더 포함할 수 있다.
또한 본 발명의 다른 실시예에 따르면, 어플리케이션 관리 장치가 어플리케이션을 관리하는 방법이 제공된다. 상기 어플리케이션 관리 장치의 관리 방법은, 분산된 복수의 워커 노드로부터, 상기 복수의 워커 노드에 의해 측정된 측정 정보를 수집하는 단계; 상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 수행할 협업 워커 노드들을, 상기 측정 정보에 기초해 결정하는 단계; 및 상기 협업 워커 노드들에게 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 할당하는 단계를 포함한다.
상기 측정 정보는, 각 워커 노드의 계산 능력, 각 워커 노드의 부하 상태, 워커 노드들 간의 네트워크 품질, 각 워커 노드의 물리적 위치, 그리고 각 워커 노드에 의해 처리되는 데이터의 특성을 포함할 수 있다.
상기 협업 워커 노드들을 결정하는 단계는, 상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 최단 시간 내에 수행하는 상기 협업 워커 노드들을, 상기 측정 정보, 상기 적어도 하나의 태스크의 특성, 그리고 각 워커 노드에 대한 접근 권한에 기초해 결정하는 단계를 포함할 수 있다.
상기 어플리케이션에 포함되는 적어도 하나의 태스크는, 방향성 비사이클 그래프(DAG: directed acyclic graph)로 표현될 수 있다.
상기 어플리케이션 관리 장치의 관리 방법은, 상기 어플리케이션과 상기 어플리케이션을 위한 설정 정보를, 그래픽 사용자 인터페이스, 시스템 API(application programming interface), 및 콘솔 명령어 중 적어도 하나를 통해 등록하는 단계를 더 포함할 수 있다.
상기 협업 워커 노드들을 결정하는 단계는, 상기 측정 정보의 가중치를 결정하는 단계; 및 상기 측정 정보와 상기 측정 정보의 가중치를 고려해, 상기 협업 워커 노드들을 결정하는 단계를 포함할 수 있다.
상기 어플리케이션에 포함되는 적어도 하나의 태스크는, 센서로부터 데이터 스트림을 수집하기 위한 소스(source) 태스크; 상기 수집된 데이터 스트림을 분석하여 분석 결과를 생성하기 위한 분석 태스크; 및 상기 분석 결과를 소비하기 위한 싱크(sink) 태스크를 포함할 수 있다.
상기 어플리케이션 관리 장치의 관리 방법은, 상기 협업 워커 노드들로부터, 상기 협업 워커 노드들이 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 수행하는데 걸린 시간 정보를 수집하는 단계; 및 상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 할당 받는 워커 노드들을, 상기 수집된 시간 정보에 기초해 다시 결정하는 단계를 더 포함할 수 있다.
상기 어플리케이션 관리 장치의 관리 방법은, 상기 협업 워커 노드들 중 제1 워커 노드에 장애가 발생한 경우에, 상기 제1 워커 노드에 할당된 제1 태스크를 재할당할 것을, 상기 협업 워커 노드들 중 제2 워커 노드로부터 요청 받는 단계; 및 상기 복수의 워커 노드 중 상기 제1 워커 노드와 다른 워커 노드에, 상기 제1 태스크를 할당하는 단계를 더 포함할 수 있다.
또한 본 발명의 또 다른 실시예에 따르면, 어플리케이션 관리 장치가 제공된다. 상기 어플리케이션 관리 장치는, 복수의 워커 노드로부터, 상기 복수의 워커 노드에 의해 측정된 측정 정보를 수집하는 시스템 정보 수집부; 상기 복수의 워커 노드 중에서 어플리케이션에 포함되는 적어도 하나의 태스크를 수행할 적어도 하나의 협업 워커 노드를, 상기 측정 정보에 기초해 결정하는 분석 노드 판단부; 및 상기 적어도 하나의 협업 워커 노드에게 상기 적어도 하나의 태스크를 할당하는 태스크 배치부를 포함한다.
상기 측정 정보는, 상기 복수의 워커 노드의 계산 능력, 상기 복수의 워커 노드의 부하 상태, 상기 복수의 워커 노드의 물리적 위치, 그리고 상기 복수의 워커 노드들 간의 네트워크 품질을 포함할 수 있다.
상기 분석 노드 판단부는, 상기 적어도 하나의 협업 워커 노드를, 상기 측정 정보 그리고 상기 적어도 하나의 태스크의 특성에 기초해 결정할 수 있다.
상기 분석 노드 판단부는, 상기 측정 정보의 가중치를 결정하고, 상기 측정 정보와 상기 측정 정보의 가중치를 고려해 상기 적어도 하나의 협업 워커 노드를 결정할 수 있다.
상기 시스템 정보 수집부는, 상기 적어도 하나의 협업 워커 노드로부터, 상기 적어도 하나의 협업 워커 노드가 상기 적어도 하나의 태스크를 수행하는데 걸린 시간 정보를 수집할 수 있다.
상기 분석 노드 판단부는, 상기 복수의 워커 노드 중에서 상기 적어도 하나의 태스크를 할당 받는 적어도 하나의 워커 노드를, 상기 수집된 시간 정보를 고려해 다시 결정할 수 있다.
상기 어플리케이션 관리 장치는, 그래픽 사용자 인터페이스, 시스템 API(application programming interface), 및 콘솔 명령어 중 적어도 하나를 통해, 상기 어플리케이션을 등록하는 어플리케이션 등록부를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 데이터 소스 및 워커(worker) 노드가 완전히 분산된 환경에서 효율적으로 데이터 스트림을 수집하고 분석 처리하는 시스템이 제공될 수 있다.
또한 본 발명의 실시예에 따르면, 노드들 간 네트워크가 불안정한 환경에서도, 높은 중요도를 가지거나 즉시성을 필요로 하는 태스크를 데이터를 수집하는 앞 단의 노드에 할당 처리함으로써, 보다 안전하고 즉시적인 서비스 제공이 가능하다.
또한 본 발명의 실시예에 따르면, 앞 단의 작은 컴퓨터(예, IoT 게이트웨이 등)를 노드로써 포함하는 시스템이 제공될 수 있고, 이로 의해 잉여 자원이 활용 될 수 있다.
또한 본 발명의 실시예에 따르면, 서로 분산된 이질적 노드들의 협업이 가능하며, 이로 인해 유연성, 확장성, 및 호환성(compatibility) 등이 지원될 수 있다.
또한 본 발명의 실시예에 따르면, 앞 단(예, 엣지 단) 노드에서의 데이터 스트림 전처리를 통해, 노드들 간 네트워크 트래픽과 서버 클러스터의 부하가 획기적으로 감소될 수 있다.
도 1은 본 발명의 실시예에 따른, 완전 분산 시스템을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른, 데이터 스트림을 분산 처리하는 시스템을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른, 노드들이 완전히 분산된 환경을 지원하는 시스템이 스트림 데이터를 분석하는 방법을 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른, 논리적 태스크와 워커 노드를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른, 데이터 스트림을 분산 처리하는 시스템을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른, 노드들이 완전히 분산된 환경을 지원하는 시스템이 스트림 데이터를 분석하는 방법을 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른, 논리적 태스크와 워커 노드를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서에서, 동일한 구성요소에 대해서 중복된 설명은 생략한다.
또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로써, 본 발명을 한정하려는 의도로 사용되는 것이 아니다.
또한 본 명세서에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.
또한 본 명세서에서, '및/또는' 이라는 용어는 복수의 기재된 항목들의 조합 또는 복수의 기재된 항목들 중의 어느 항목을 포함한다. 본 명세서에서, 'A 또는 B'는, 'A', 'B', 또는 'A와 B 모두'를 포함할 수 있다.
노드들이 완전히 분산된 환경에서, 데이터 스트림을 효율적으로 처리하는 시스템과 태스크를 효율적으로 할당하는 방법에 대하여 설명한다.
구체적으로, 데이터를 처리하는 노드들이 완전히 분산된 환경에서, 센서로부터 수집된 데이터 스트림을 빠르고 효율적으로 분석하고, 분석 결과에 따른 서비스를 제공하는 시스템, 장치, 및 방법에 대하여 설명한다.
또한, 노드들이 완전히 분산된 환경을 고려하여, 노드의 부하, 노드의 위치, 노드들 간 네트워크 정보, 데이터의 성격 등과 같은 정보에 근거하여, 태스크를 배치하고 처리하는 시스템, 장치, 및 방법에 대하여 설명한다. 구체적으로, 완전히 분산된 노드들의 부하뿐만 아니라, 노드들 간의 네트워크 품질 및 데이터의 성격 등을 고려하여, 태스크를 배치 및 재배치하는 방법 및 장치에 대하여 설명한다. 그리고 앞 단의 게이트웨이와 서버 클러스터 간의 협업 분석을 효율적으로 제공하는 방법 및 장치에 대하여 설명한다.
도 1은 본 발명의 실시예에 따른, 완전 분산 시스템을 나타내는 도면이다.
구체적으로, 완전 분산 시스템은 센서들, 분석 게이트웨이들, 및 서버 클러스터를 포함할 수 있다. 센서는 일반 센서(generic sensor), 광 센서, 모션 센서, 소리 센서, 온도 센서 등일 수 있다. 센서는 분석 게이트웨이에 데이터 스트림을 전송할 수 있으며, 이 경우에 분석 게이트웨이가 워커 노드로써 데이터 소스 태스크를 담당한다. 분석 게이트웨이는 상술한 소형 컴퓨터(예, 라즈베리파이), 휴대 가능한 단말(예, 스마트폰, 스마트와치, 태블릿 PC) 등일 수 있다. 분석 게이트웨이는 네트워크를 통해 서버 클러스터와 통신할 수 있다.
완전히 분산된 워커 노드(worker node)들에 태스크를 배치하여 협업 분석을 수행하는 방법에 대하여 설명한다. 그래픽 사용자 인터페이스(GUI: graphical user interface), 시스템 API(application programming interface), 콘솔 명령어 등을 통해, 어플리케이션 및 설정(예, 어플리케이션을 위한 설정 정보 등)이 사용자에 의해 등록된다. 그리고 워커 노드의 처리 능력 및 부하 상태, 그리고 노드들 간 네트워크 품질이 측정된다. 그리고 사용 가능한(또는 접근 가능한) 분산 워커 노드들로부터, 상기 측정된 정보가 수집된다. 그리고 사용자의 설정, 워커 노드들 간의 네트워크 품질, 그리고 처리 대상 데이터의 성격 등이 고려되어, 태스크가 분산 배치된다. 그리고 워커 노드는 배치 받은 태스크를 수행한다.
도 2는 본 발명의 실시예에 따른, 데이터 스트림을 분산 처리하는 시스템을 나타내는 도면이다. 구체적으로 도 2에는, 노드들이 완전히 분산된 환경을 지원하며 효율적으로 데이터 스트림을 처리하는 시스템이 예시되어 있다. 도 2에서, 어플리케이션 관리 서버(AM100)는 도 1의 서버 클러스터에 존재할 수 있고 서버 클러스터는 백엔드(backend) 단의 워커 노드에 대응할 수 있다. 워커 노드(WM100)는 도 1의 분석 게이트웨이에 대응할 수 있고, 데이터 퍼블리셔(DP100)는 도 1의 센서 또는 데이터 소스에 대응할 수 있다. 도 2에는, 복수의 워커 노드(WM100)와 복수의 데이터 퍼블리셔(DP100)가 예시되어 있다.
어플리케이션 관리 서버(AM100)(또는 어플리케이션 관리 장치)는 어플리케이션 개발자에 의해 서비스가 개발될 수 있는 환경을 포함할 수 있다. 구체적으로, 어플리케이션 관리 서버(AM100)는 어플리케이션 등록부(AM110), 시스템 정보 수집부(AM120), 분석 노드 판단부(AM130), 및 태스크 배치부(AM140)를 포함할 수 있다.
어플리케이션 등록부(AM110)는 개발된 서비스를 GUI, 시스템 API, 콘솔 명령어 등을 통해 등록할 수 있다. 여기서, 개발된 서비스는 어플리케이션에 대응할 수 있다. 하나의 어플리케이션은 1개 이상의 태스크로 구성된다. 태스크는, 스트림 데이터를 수집하는 소스 태스크(source task), 데이터를 분석하거나 명령을 처리하는 분석 태스크(analysis task), 그리고 결과 값을 시각화하거나 소비하는 싱크 태스크(sink task)를 포함할 수 있다.
시스템 정보 수집부(AM120)는 분산된 워커 노드(WN100)들로부터 워커 노드(WN100)들에 의해 측정된 측정 정보를 수집할 수 있다. 구체적으로, 시스템 정보 수집부(AM120)는 워커 노드(WN100)로부터, 워커 노드(WN100)의 계산 능력, 워커 노드(WN100)의 부하 상태, 워커 노드(WN100)들 간의 네트워크 품질(예, 네트워크 대역폭, 네트워크 지연 등), 워커 노드(WN100)의 물리적 위치, 워커 노드(WN100)에 의해 처리되는 데이터의 특성(예, 센서에 의해 수집되는 데이터의 특성, 워커 노드(WN100)의 분석 데이터의 성격 등), 그리고 워커 노드(WN100)의 사용자 접근 권한 등을 수집할 수 있다.
분석 노드 판단부(AM130)는 시스템 정보 수집부(AM120)에 의해 수집된 정보를 기반으로, 어플리케이션을 배치하고 어플리케이션을 수행할 최적의 워커 노드(WN100)를 결정한다. 예를 들어, 분석 노드 판단부(AM130)는 분산된 복수의 워커 노드(WN100) 중에서 어플리케이션에 포함되는 적어도 하나의 태스크를 수행할 적어도 하나의 협업 워커 노드(WN100)를, 시스템 정보 수집부(AM120)에 의해 수집된 정보에 기초해 결정할 수 있다.
태스크 배치부(AM140)는 태스크 수행을 위해 결정된 적어도 하나의 워커 노드(WN100)(예, 분석 노드 판단부(AM130)에 의해 결정된 워커 노드(WN100))에, 적어도 하나의 태스크를 동적으로 할당(배치)한다.
워커 노드(WN100)는 태스크 관리부(WN110), 처리 정보 측정부(WN120), 및 태스크 실행부(WN130)를 포함한다. 워커 노드(WN100)는 필요에 따라, 장애 관리부(WN140)를 더 포함할 수 있다.
태스크 관리부(WN110)는 어플리케이션 관리 서버(AM100)부터 태스크를 배치 받기 위한 인터페이스 역할을 수행한다.
처리 정보 측정부(WN120)는 자신이 속한 워커 노드(WN100)와 다른 워커 노드(WN100) 간의 네트워크 품질, 자신이 속한 워커 노드(WN100)의 부하 상태, 태스크 처리 상태, 그리고 자신이 속한 워커 노드(WN100)가 태스크를 수행하는데 걸린 시간, 자신이 속한 워커 노드(WN100)의 물리적 위치 등의 정보를 지속적으로 측정한다. 처리 정보 측정부(WN120)에 의해 측정된 측정 정보는 어플리케이션 관리 서버(AM100)에 의해 수집된다.
태스크 실행부(WN130)는 워커 노드(WN100)의 런타임으로 배치된 태스크를, 기 설정된 정책에 따라 수행한다. 태스크 실행부(WN130)는 경우에 따라, 데이터 퍼블리셔(DP100)로부터 데이터 스트림을 수집하는 역할(예, 소스 태스크)을 수행하거나, 분석(예, 분석 태스크)을 수행하거나, 출력 및 처리(예, 싱크 태스크)를 수행할 수 있다. 태스크 수행을 위한 정책은 권한을 가진 사용자에 의해 설정될 수 있다.
장애 관리부(WN140)는 유동적인 네트워크 상태를 가지는 IoT 환경에서 발생할 수 있는 장애를 처리한다. 예를 들어, 장애 관리부(WN140)는 협업을 위한 태스크를 수행하는 다른 워커 노드(WN100)로부터 응답이 일정 시간 동안에 없는 경우에, 상기 협업을 위한 태스크가 장애 관리부(WN140)가 속한 워커 노드(WN100)의 태스크 실행부(WN130)에 의해 대신 처리되도록 하거나, 사용자에게 경보를 출력할 수 있다.
도 3은 본 발명의 실시예에 따른, 노드들이 완전히 분산된 환경을 지원하는 시스템이 스트림 데이터를 분석하는 방법을 나타내는 도면이다.
본 발명은 도 3에 예시된 방법에 한정되지 않으며, 다양한 응용이 가능하다. 예를 들어, 도 3에 예시된 절차들 중 장애 관리 절차 그리고 최적의 협업 노드를 판단 및 구성하는 절차는 생략될 수 있다. 최적의 협업 노드를 판단 및 구성하는 절차가 생략되는 경우에, 워커 노드(WN100)를 임의로 배치한 후 처리 정보를 측정 및 수집하여 워커 노드(WN100)를 재배치하는 방법도 사용될 수 있다.
어플리케이션이 개발되고, 어플리케이션 관리 서버(AM100)에 등록된다(S100). 구체적으로, 실행될 어플리케이션은 사용자에 의해 직접 개발될 수 있다. 시스템에 의해 제공되는 개발 도구나 시스템 API가, 어플리케이션 개발을 위해 사용자에 의해 사용될 수 있다.
어플리케이션 관리 서버(AM100)는 태스크와 태스크 수행 정보를 예측하고 수집한다(S101). 어플리케이션은 1개 이상의 태스크로 구성되는데, 이는 방향성 비사이클 그래프(DAG: directed acyclic graph)로 표현될 수 있다. 1개 이상의 태스크는 소스 태스크, 분석 태스크, 및 싱크 태스크를 포함할 수 있다. 태스크는 하나의 책무 원칙을 주로 가지며, 하나의 태스크는 하나의 워커 노드(WN100) 또는 클러스터 형태의 워커 노드에 할당될 수 있다. 여기서, 클러스터 형태의 워커 노드는 복수의 디바이스로 구성된다. 즉, 본 발명에서, 워커 노드(WN100)는 클러스터 형태의 워커 노드로 대체될 수도 있다.
어플리케이션 관리 서버(AM100)는 워커 노드(WN100)의 상태 정보와 네트워크 정보를 수집한다(S102). 어플리케이션 관리 서버(AM100)는 워커 노드(WN100)의 정보 및 클러스터 형태의 워커 노드의 정보를 가지고 있으며, 워커 노드(WN100)에 대한 접근 권한 정보를 가지고 있다.
어플리케이션 관리 서버(AM100)는 협업을 위한 최적의 워커 노드들(WN100)을 판단하여 구성한다(S103). 구체적으로, 어플리케이션 관리 서버(AM100)는 어플리케이션에 포함되는 복수의 태스크를 수행할 최적의 협업 워커 노드(WN100)들을 결정할 수 있다. 예를 들어, 어플리케이션 관리 서버(AM100)는 최적의 협업 워커 노드(WN100)들을, 워커 노드(WN100)들 간의 네트워크 품질(예, 네트워크 대역폭, 네트워크 지연 등), 각 워커 노드(WN100)의 처리 능력(예, 워커 노드(WN100)의 처리 량 등), 각 워커 노드(WN100)의 부하 상태, 각 태스크의 특성(예, 태스크의 입력 데이터의 크기, 태스크의 출력 데이터의 크기, 태스크를 위한 연산들, 태스크를 위해 요구되는 컴퓨팅 부하 등), 처리 대상 데이터의 특성(예, 데이터의 보안성, 데이터의 지역성 등), 그리고 워커 노드(WN100)에 대한 사용자 접근 권한 등에 기초해 결정할 수 있다.
어플리케이션 관리 서버(AM100)는 S103 과정에서 구성된 워커 노드들(WN100)에게 태스크를 할당한다(S104). 구체적으로, 어플리케이션 관리 서버(AM100)는 어플리케이션에 포함되는 복수의 태스크를, S103 과정에서 구성된 최적의 워커 노드들(WN100)에게 할당할 수 있다.
S104 과정에서 태스크를 할당 받은 워커 노드(WN100)는 설정된 정책에 기초해, 태스크를 수행한다(S105).
태스크와 워커 노드(WN100)는 지속적으로 모니터링된다(S106). S106 과정은 어플리케이션 관리 서버(AM100)에 의해 수행될 수도 있고, 워커 노드(WN100)에 의해 수행될 수도 있다. 예를 들어, 워커 노드(WN100)가 자신의 정보를 수집하여 어플리케이션 관리 서버(AM100)에 전송하는 경우에, 어플리케이션 관리 서버(AM100)는 수집된 정보를 바탕으로 QoS(quality of service)를 관리할 수 있다. 태스크를 할당 받은 워커 노드(WN100)는 태스크의 수행 결과, 그리고 자신과 협업하는 다른 워커 노드(WN100)와 자신 간의 네트워크 품질 등을 어플리케이션 관리 서버(AM100)로 전송할 수 있다.
품질(예, 네트워크 품질)이 변경되었는지가 판단된다. 이전 품질과 현재 품질 간의 차이 값이 임계값 보다 큰 경우나 장애가 발생한 경우에, 태스크가 재배치되고, 장애 알림과 장애 처리가 수행된다(S107, S108). S107 과정과 S108 과정은 어플리케이션 관리 서버(AM100)에 의해 수행될 수도 있고, 워커 노드(WN100)에 의해 수행될 수도 있다.
한편, 어플리케이션 사용자가 접근 가능한 워커 노드(들)(WN100)에 한하여, 태스크(들)가 배치되고 수행될 수 있다. 하나의 워커 노드(WN100)에 1개 이상의 태스크가 배치될 수 있으며, 태스크 별로 S105 과정이 수행된다. 구체적으로, 후속 태스크가 존재하는 경우에, 후속 태스크에 대하여 S105 과정이 수행될 수 있다(S109).
보안성을 필요로 하거나 높은 지역성을 가지는 데이터의 경우에, 해당 데이터가 생성되는 워커 노드(들)(WN100)에 일부 태스크(들)가 집중 배치될 수 있다. 반면에, 많은 컴퓨팅 부하를 요구하는 태스크(들)의 경우에, 클러스터 형태의 일부 노드가 해당 태스크(들)를 수행하도록, 제약이 가해질 수 있다.
도 4는 본 발명의 실시예에 따른, 논리적 태스크와 워커 노드를 나타내는 도면이다.
구체적으로 도 4에는, 복수의 데이터 소스, 복수의 워커 노드(N1, N2, N3, N4), 그리고 복수의 태스크(T1, T2, T3, T4)가 예시되어 있다. 각 워커 노드(N1~N4)는 클러스터 형태의 워커 노드로 대체될 수 있다. 복수의 워커 노드(N1, N2, N3, N4)는 데이터를 주고 받을 수 있도록, 하나 이상의 네트워크 연결점을 가질 수 있다. 한편, 모든 워커 노드들(N1, N2, N3, N4)이 서로 연결되어 있을 필요는 없다. 본 명세서에서, 연결(또는 물리적 연결)은 네트워크 연결(예, 무선 연결, 유선 연결 등)을 의미할 수 있다. 태스크(T2, T3)는 태스크(T1)를 기준으로 후속 태스크이고, 태스크(T4)는 태스크(T2, T3)를 기준으로 후속 태스크이다.
소스 태스크(T1)를 할당 받은 워커 노드(N1)는, 하나 이상의 데이터 소스로부터 데이터 스트림을 수집할 수 있다. 분석 태스크(T2, T3)를 할당 받은 워커 노드(N2)는 태스크(T1)의 수행 결과 값을 이용해, 분석 태스크(T2, T3)를 수행할 수 있다. 예를 들어, 워커 노드(N2)는 워커 노드(N1)에 의해 수집된 데이터 스트림을 분석할 수 있다. 싱크 태스크(T4)를 할당 받은 워커 노드(N4)는 태스크(T2, T3)의 수행 결과 값을 이용해, 싱크 태스크(T4)를 수행할 수 있다. 예를 들어, 워커 노드(N4)는 워커 노드(N2)에 의해 분석된 결과 값을 시각화하거나 소비할 수 있다.
상술한 태스크 배치는 어플리케이션 관리 서버(AM100)의 분석 노드 판단부(AM130)에서의 최적화 알고리즘을 통해 결정될 수 있다(예, integer programming). 여기서, 최적화 알고리즘은 각 태스크를 위한 입력 데이터의 크기와 출력 데이터의 크기, 워커 노드(WN100)들 간 링크 품질(예, network bandwidth and latency), 태스크의 크기(예, operations), 워커 노드(WN100)의 처리량(throughput), 그리고 워커 노드(WN100)의 부하(예, computing load) 등을 예측하여 사용할 수 있다. 이를 통해, 어플리케이션을 최단 시간에 수행하기 위한 태스크 배치 구성이, 우선적으로 판단될 수 있다. 구체적으로, 어플리케이션 관리 서버(AM100)는 복수의 워커 노드(WN100) 중에서 어플리케이션에 포함된 복수의 태스크를 최단 시간 내에 수행할 수 있는 최적의 협업 워커 노드(WN100)들을 결정할 수 있다.
태스크 배치 구성을 위해 수집되는 정보는, 그 적용 분야에 따라 확장될 수 있다. 구체적으로, 최적화 알고리즘과 이에 적용되는 정보는 다양하게 응용될 수 있다. 예를 들어, 각 워커 노드(WN100)의 부하에 따른 전력 소모 정보가 추가되어, 최소의 에너지 소모로 어플리케이션을 수행하기 위한 최적의 태스크 배치가 구성될 수 있다.
또한, 최적화 알고리즘의 수행에 있어서, 최적화 알고리즘에 적용되는 각 정보에 대한 가중치가 결정될 수 있다. 구체적으로, 각 정보의 가중치는 사용자 선호 또는 데이터 성격에 따라 다르게 설정될 수 있다. 예를 들어, 전송 데이터의 크기가 커서 데이터 유실 및 데이터 충돌의 가능성이 높은 경우에, 최적화 알고리즘에 적용되는 네트워크 품질 정보의 가중치는 커질 수 있다.
워커 노드(WN100) 또는 클러스터 형태의 워커 노드는 주어진 정책에 따라 태스크를 수행한다. 예를 들어, 태스크 수행을 위한 정책이 순차 순환 대기 방식을 포함하는 경우에, 주어진 태스크들은 순서대로 수행될 수 있다. 본 발명의 실시예에 따른 시스템은 다중 어플리케이션을 수행할 수 있기 때문에, 각 워커 노드(WN100)는 비동기(asynchronous) 방식 및 비 차단(non-blocking) 방식으로 태스크를 수행할 수 있다.
워커 노드(WN100) 또는 클러스터 형태의 워커 노드가 태스크를 할당 받는 경우에, 전체 태스크(또는 어플리케이션) 수행 구조 또는 후속 태스크 정보를 그래프 또는 이와 유사한 오브젝트를 통해 전달 받을 수 있다. 이를 통해, 워크 노드(WN100) 또는 클러스터 형태의 워커 노드는 부여 받은 태스크를 수행한 후, 그 태스크의 수행 결과 값을 후속 태스크에 전달할 수 있다. 이전 태스크의 수행 결과 값을 전달 받은 후속 태스크는 이전 태스크를 수행한 동일 워커 노드(WN100) 또는 다른 워커 노드(WN100)에 의해 수행될 수 있다. 후속 태스크는 이전 태스크의 수행 결과를 입력 데이터로써 사용할 수 있다. 예를 들어, 제2 워커 노드(WN100)가 후속 태스크를 할당 받은 경우에, 현재 태스크를 수행하는 제1 워커 노드(WN100)는 현재 태스크의 수행 결과를 제2 워커 노드(WN100)로 전송할 수 있다.
초기의 태스크 배치는 실제 측정 값이 아닌 예측 값에 기초해 구성될 수 있다. 태스크가 수행되면서 실제 수행 시간 및 실제 전송 시간이 지속적으로 수집되고 동기화되고, 이에 기초해 최적화 알고리즘이 간헐적으로 재수행되어 태스크가 재배치될 수 있다. 이를 통해, 어플리케이션을 보다 효율적으로 처리할 수 있는 최적의 태스크 배치가 계산된다면, 태스크 배치부(AM140)에 의해 태스크 재배치가 수행될 수 있다. 예를 들어, 어플리케이션 관리 서버(AM100)의 시스템 정보 수집부(AM120)는 워커 노드(WN100)가 태스크를 수행하는데 걸린 시간 정보를 수집할 수 있고, 어플리케이션 관리 서버(AM100)의 분석 노드 판단부(AM130)는 수집된 시간 정보에 기초해, 태스크를 할당 받을 워커 노드(WN100)를 다시 결정할 수 있다.
각 태스크 수행에, 장애 관리가 추가될 수 있다. 구체적으로, 이러한 장애 관리는 현재 태스크의 수행과 후속 태스크의 진행에서 실행될 수 있다. 예를 들어, 태스크 수행에서 장애가 발생하는 경우에, 장애 대응(예, 해당 태스크를 재수행, 또는 에러값을 출력 등)이 수행될 수 있다. 다른 예를 들어, 특정한 문제(예, 네트워크 문제, 워커 노드(WN100)의 과부하 등)로 인해 제2 워커 노드(WN100)가 후속 태스크를 진행하는 것이 어려운 경우(예, 제2 워커 노드(WN100)에 장애가 발생한 경우)에, 현재 태스크를 수행한 제1 워커 노드(WN100)는 제2 워커 노드(WN100)에 할당된 후속 태스크를 다른 워커 노드(WN100)에 재배치해줄 것을 어플리케이션 관리 서버(AM100)에 요청하거나, 제1 워커 노드(WN100)가 제2 워커 노드(WN100)를 대신해서 후속 태스크를 수행할 수 있다. 어플리케이션 관리 서버(AM100)가 제1 워커 노드(WN100)로부터 재배치 요청을 수신한 경우에, 제2 워커 노드(WN100)에 할당된 후속 태스크를 다른 워커 노드(WN100)에 재배치할 수 있다.
한편, 본 발명은 다양한 분야에서 적용될 수 있다. 예를 들어, IoT 디바이스들을 활용하는 서비스(예, 스마트홈, 스마트팜 등)에서 데이터 스트림을 생성하는 센서들을 데이터 소스로 정의하고 센서들을 분석하여 결과를 도출하는 어플리케이션에, 본 발명은 적용될 수 있다.
앞 단의 게이트웨이가 하나의 워커 노드(WN100)로써 동작하여 센서 스트림 데이터를 수집하고, 수집된 데이터에 대한 전처리(예, 데이터 필터링, 보간, 암호화 등)를 수행하여 데이터의 크기를 크게 줄일 수 있다. 그 후에, 서버 클러스터는 앞 단의 게이트웨이로부터 전달 받은 데이터를 이용해, 고성능 컴퓨팅 작업(예, 머신러닝 등)을 수행할 수 있다. 이를 통해, 앞 단의 게이트웨이와 서버 클러스터 간의 협업 분석이 가능하다.
또한, 앞 단의 게이트웨이와 서버 클러스터 간의 네트워크 품질은 항상 보장될 수 없으므로, 즉시적 응답을 필요로 하는 분석 태스크는 앞 단의 게이트웨이에 할당되어 앞 단의 게이트웨이에 의해 수행될 수 있다. 각 워커 노드(WN100)에 의해 실행된 분석의 결과값은 사용자의 선호에 따라 동기화될 수 있다.
도 5는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다. 도 5의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 센서, 게이트웨이, 서버 클러스터, 어플리케이션 관리 서버(AM100), 워커 노드(WN100), 데이터 퍼블리셔(DP100), 데이터 소스 등일 수 있다.
도 5의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 네트워크에 연결되어 통신을 수행하는 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법들을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다.
한편, 본 발명의 실시예는 지금까지 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 상술한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 통상의 기술자라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 통상의 기술자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (20)
- 복수의 워커 노드(worker node)가 분산된 환경에서 제1 워커 노드가 태스크(task)를 수행하는 방법으로서,
상기 제1 워커 노드가, 어플리케이션 관리 장치로부터 어플리케이션에 포함되는 적어도 하나의 태스크 중 제1 태스크를 할당받는 단계;
상기 제1 워커 노드가, 상기 제1 태스크를 수행하는 단계;
상기 제1 워커 노드가, 상기 제1 태스크의 유형에 따라 상기 제1 태스크를 수행한 결과를 협업한 다른 워커 노드로 전송하는 단계; 및
상기 제1 워커 노드가, 측정 정보 - 상기 측정 정보는 상기 제1 태스크를 수행한 결과, 협업한 다른 워커 노드와의 네트워크 품질, 상기 제1 워커 노드의 부하 상태, 상기 제1 워커 노드가 상기 제1 태스크를 수행하는데 걸린 시간, 상기 제1 워커 노드의 물리적 위치, 상기 제1 워커 노드의 부하에 따른 전력 소모 정보를 포함함 - 를 상기 어플리케이션 관리 장치로 전송하는 단계
를 포함하고,
상기 제1 태스크를 수행하는 단계는
상기 제1 태스크가 소스(source) 태스크인 경우에, 상기 제1 워커 노드가 센서로부터 데이터 스트림을 수집하는 단계;
상기 제1 태스크가 분석(analysis) 태스크인 경우에, 상기 제1 워커 노드는 소스 태스크를 할당받은 워커 노드에 의해 수집된 데이터 스트림을 제공받아서 상기 수집된 데이터 스트림을 분석하여 분석 결과를 생성하는 단계; 및
상기 제1 태스크가 싱크(sink) 태스크인 경우에, 상기 제1 워커 노드는 분석 태스크를 할당받은 워커 노드로부터 분석 결과를 제공받아서 상기 분석 결과를 출력 또는 전송하거나 시각화하는 단계를 포함하는, 제1 워커 노드의 태스크 수행 방법. - 제1항에 있어서,
상기 수행한 결과를 협업한 다른 워커 노드로 전송하는 단계는,
상기 제1 태스크가 소스 태스크인 경우에, 상기 제1 워커 노드가 수집한 데이터 스트림을 분석 태스크를 할당받은 워커 노드로 전송하는 단계; 및
상기 제1 태스크가 분석 태스크인 경우에, 상기 제1 워커 노드가 상기 수집된 데이터 스트림을 분석한 분석 결과를 싱크 태스크를 할당받은 워커 노드로 전송하는 단계
를 포함하는, 제1 워커 노드의 태스크 수행 방법. - 제1항에 있어서,
상기 어플리케이션에 포함되는 적어도 하나의 태스크 중 상기 제1 태스크의 수행 결과를 입력 데이터로써 사용하는 제2 태스크를 수행하는 제2 워커 노드에 장애가 발생하는 경우에, 상기 제1 워커 노드가 상기 제2 워커 노드를 대신하여 상기 제2 태스크를 수행하는 단계
를 더 포함하는 제1 워커 노드의 태스크 수행 방법. - 어플리케이션 관리 장치가 어플리케이션을 관리하는 방법으로서,
분산된 복수의 워커 노드로부터, 상기 복수의 워커 노드에 의해 측정된 제1 측정 정보 - 상기 제1 측정 정보는 각 워커 노드의 계산 능력, 각 워커 노드의 부하 상태, 워커 노드들 간의 네트워크 품질, 각 워커 노드의 물리적 위치, 각 워커 노드의 부하에 따른 전력 소모 정보를 포함함 - 를 수집하는 단계;
상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 수행할 협업 워커 노드들을, 상기 제1 측정 정보에 기초해 결정하는 단계; 및
상기 협업 워커 노드들에게 상기 어플리케이션에 포함되는 적어도 하나의 태스크 - 상기 태스크는 센서로부터 데이터 스트림을 수집하기 위한 소스 태스크, 수집된 데이터 스트림을 분석하여 분석 결과를 생성하기 위한 분석 태스크, 및 분석 결과를 소비하기 위한 싱크 태스크를 포함함 - 를 할당하는 단계
를 포함하고,
상기 적어도 하나의 태스크를 할당하는 단계는
상기 어플리케이션에 포함되는 적어도 하나의 태스크를 위한 입력 데이터의 크기와 출력 데이터의 크기, 각 워커 노드의 처리량, 각 워커 노드의 부하, 워커 노드들 간의 링크 품질, 태스크의 크기를 고려하여 상기 어플리케이션을 최단 시간에 수행하도록 상기 적어도 하나의 태스크를 상기 협업 워커 노드들에게 할당하면서, 추가적으로, 상기 협업 워커 노드들의 부하에 따른 전력 소모 정보를 고려하여 최소의 에너지 소모로 상기 어플리케이션을 수행하도록 상기 적어도 하나의 태스크를 상기 협업 워커 노드들에게 할당하는, 어플리케이션 관리 장치의 관리 방법. - 제4항에 있어서,
상기 협업 워커 노드들을, 상기 제1 측정 정보에 기초해 결정하는 단계는,
상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 최단 시간 내에 수행하는 상기 협업 워커 노드들을, 상기 제1 측정 정보, 상기 적어도 하나의 태스크의 특성, 그리고 각 워커 노드에 대한 접근 권한에 기초해 결정하는, 어플리케이션 관리 장치의 관리 방법. - 제4항에 있어서,
상기 협업 워커 노드들을, 상기 제1 측정 정보에 기초해 결정하는 단계는,
상기 제1 측정 정보의 가중치를 결정하는 단계; 및
상기 제1 측정 정보와 상기 제1 측정 정보의 가중치를 고려해, 상기 협업 워커 노드들을 결정하는 단계를 포함하는
어플리케이션 관리 장치의 관리 방법. - 제4항에 있어서,
상기 협업 워커 노드들로부터, 상기 협업 워커 노드들이 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 수행하는데 걸린 시간 정보를 포함하는 제2 측정 정보 - 상기 제2 측정 정보는 상기 적어도 하나의 태스크를 수행한 결과, 협업한 다른 워커 노드와의 네트워크 품질, 해당 워커 노드의 부하 상태, 해당 워커 노드의 물리적 위치, 해당 워커 노드의 부하에 따른 전력 소모 정보를 더 포함함 - 를 수집하는 단계;
상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 할당받는 워커 노드들을, 상기 제2 측정 정보에 기초해 다시 결정하는 단계; 및
상기 제2 측정 정보에 포함된 네트워크 품질에 기초하여, 상기 네트워크 품질과 이전 네트워크 품질 사이의 차이 값이 임계값 보다 큰 경우에, 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 상기 협업 워커 노드들에 재배치하는 단계
를 더 포함하는 어플리케이션 관리 장치의 관리 방법. - 제4항에 있어서,
상기 협업 워커 노드들 중 제1 워커 노드에 장애가 발생한 경우에, 상기 제1 워커 노드에 할당된 제1 태스크를 재할당할 것을, 상기 협업 워커 노드들 중 제2 워커 노드로부터 요청받는 단계; 및
상기 복수의 워커 노드 중 상기 제1 워커 노드와 다른 워커 노드에, 상기 제1 태스크를 할당하는 단계
를 더 포함하는 어플리케이션 관리 장치의 관리 방법. - 복수의 워커 노드로부터, 상기 복수의 워커 노드에 의해 측정된 제1 측정 정보 - 상기 제1 측정 정보는 각 워커 노드의 계산 능력, 각 워커 노드의 부하 상태, 워커 노드들 간의 네트워크 품질, 각 워커 노드의 물리적 위치, 각 워커 노드의 부하에 따른 전력 소모 정보를 포함함 - 를 수집하는 시스템 정보 수집부;
상기 복수의 워커 노드 중에서 어플리케이션에 포함되는 적어도 하나의 태스크를 수행할 적어도 하나의 협업 워커 노드를, 상기 제1 측정 정보에 기초해 결정하는 분석 노드 판단부; 및
상기 적어도 하나의 협업 워커 노드에게 상기 적어도 하나의 태스크 - 상기 태스크는 센서로부터 데이터 스트림을 수집하기 위한 소스 태스크, 수집된 데이터 스트림을 분석하여 분석 결과를 생성하기 위한 분석 태스크, 및 분석 결과를 소비하기 위한 싱크 태스크를 포함함 - 를 할당하는 태스크 배치부
를 포함하고,
상기 태스크 배치부는, 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 위한 입력 데이터의 크기와 출력 데이터의 크기, 각 워커 노드의 처리량, 각 워커 노드의 부하, 워커 노드들 간의 링크 품질, 태스크의 크기를 고려하여 상기 어플리케이션을 최단 시간에 수행하도록 상기 적어도 하나의 태스크를 상기 협업 워커 노드들에게 할당하면서, 추가적으로, 상기 협업 워커 노드들의 부하에 따른 전력 소모 정보를 고려하여, 최소의 에너지 소모로 상기 어플리케이션을 수행하도록 상기 적어도 하나의 태스크를 상기 협업 워커 노드들에게 할당하는, 어플리케이션 관리 장치. - 제9항에 있어서,
상기 시스템 정보 수집부는, 상기 협업 워커 노드들로부터, 상기 협업 워커 노드들이 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 수행하는데 걸린 시간 정보를 포함하는 제2 측정 정보 - 상기 제2 측정 정보는 상기 적어도 하나의 태스크를 수행한 결과, 협업한 다른 워커 노드와의 네트워크 품질, 해당 워커 노드의 부하 상태, 해당 워커 노드의 물리적 위치, 해당 워커 노드의 부하에 따른 전력 소모 정보를 더 포함함 - 를 수집하고,
상기 분석 노드 판단부는, 상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 할당받는 워커 노드들을, 상기 제2 측정 정보에 기초해 다시 결정하고,
상기 태스크 배치부는, 상기 제2 측정 정보에 포함된 네트워크 품질에 기초하여, 상기 네트워크 품질과 이전 네트워크 품질 사이의 차이 값이 임계값 보다 큰 경우에, 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 상기 협업 워커 노드들에 재배치하는, 어플리케이션 관리 장치. - 제9항에 있어서,
상기 분석 노드 판단부는, 상기 복수의 워커 노드 중에서 상기 어플리케이션에 포함되는 적어도 하나의 태스크를 최단 시간 내에 수행하는 상기 협업 워커 노드들을, 상기 제1 측정 정보, 상기 적어도 하나의 태스크의 특성, 그리고 각 워커 노드에 대한 접근 권한에 기초해 결정하는, 어플리케이션 관리 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160115224 | 2016-09-07 | ||
KR1020160115224 | 2016-09-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180028004A KR20180028004A (ko) | 2018-03-15 |
KR102145795B1 true KR102145795B1 (ko) | 2020-08-19 |
Family
ID=61659812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170088033A KR102145795B1 (ko) | 2016-09-07 | 2017-07-11 | 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102145795B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220046885A (ko) * | 2020-10-08 | 2022-04-15 | 주식회사 이루온 | 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법 |
KR20220064859A (ko) * | 2020-11-12 | 2022-05-19 | 숭실대학교산학협력단 | 이기종 분산 기계학습 플랫폼 환경을 위한 로드 밸런싱 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102448789B1 (ko) * | 2018-12-05 | 2022-09-30 | 한국전자통신연구원 | 클라우드 컴퓨팅 시스템의 워커 스케줄링 방법 및 이를 위한 장치 |
KR102698931B1 (ko) * | 2019-01-03 | 2024-08-27 | 삼성전자주식회사 | 태스크 분산 처리를 관리하는 마스터 장치, 태스크를 처리하는 태스크 처리 장치, 및 그 동작 방법 |
KR102224487B1 (ko) * | 2019-05-02 | 2021-03-08 | 숭실대학교산학협력단 | 머신 러닝 플랫폼 관리 시스템 및 방법 |
KR102308105B1 (ko) * | 2019-05-20 | 2021-10-01 | 주식회사 에이젠글로벌 | 분산 병렬 기반 인공지능 예측 모델 관제 장치 및 방법 |
KR102347535B1 (ko) * | 2019-07-29 | 2022-01-04 | 서울대학교산학협력단 | 스마트 팜 환경 데이터의 보간 장치 및 그 방법 |
KR102257039B1 (ko) * | 2019-09-10 | 2021-05-28 | 주식회사 피앤씨솔루션 | 분산처리 기반의 hmd용 머신러닝 시스템 |
KR102473613B1 (ko) * | 2019-12-23 | 2022-12-02 | 주식회사 제로원에이아이 | 인공지능 모델의 분산 학습 기법 |
KR102250950B1 (ko) * | 2020-09-21 | 2021-05-12 | (주)시큐레이어 | 분산 배포환경에서의 머신 러닝 기반 프로세스 실행 환경 자동 최적화 방법 및 장치 |
WO2024012702A1 (en) * | 2022-07-15 | 2024-01-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Worker nodes cooperatively performing a task |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099107A (ja) * | 2010-10-29 | 2012-05-24 | Fujitsu Ltd | 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130088512A (ko) * | 2012-01-31 | 2013-08-08 | 한국전자통신연구원 | 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법 |
WO2014025584A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for tuning a cloud computing system |
EP2746941A1 (en) * | 2012-12-20 | 2014-06-25 | Thomson Licensing | Device and method for optimization of data processing in a MapReduce framework |
KR20150092586A (ko) * | 2014-02-05 | 2015-08-13 | 한국전자통신연구원 | 데이터 플로 기반 대규모 데이터 스트림 처리 방법 및 장치 |
-
2017
- 2017-07-11 KR KR1020170088033A patent/KR102145795B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099107A (ja) * | 2010-10-29 | 2012-05-24 | Fujitsu Ltd | 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220046885A (ko) * | 2020-10-08 | 2022-04-15 | 주식회사 이루온 | 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법 |
KR102400703B1 (ko) * | 2020-10-08 | 2022-05-23 | 주식회사 이루온 | 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법 |
KR20220064859A (ko) * | 2020-11-12 | 2022-05-19 | 숭실대학교산학협력단 | 이기종 분산 기계학습 플랫폼 환경을 위한 로드 밸런싱 방법, 이를 수행하기 위한 기록 매체 및 장치 |
KR102538389B1 (ko) * | 2020-11-12 | 2023-05-31 | 숭실대학교 산학협력단 | 이기종 분산 기계학습 플랫폼 환경을 위한 로드 밸런싱 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20180028004A (ko) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102145795B1 (ko) | 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치 | |
Gupta et al. | iFogSim: A toolkit for modeling and simulation of resource management techniques in the Internet of Things, Edge and Fog computing environments | |
Elgendy et al. | An efficient and secured framework for mobile cloud computing | |
JP6935496B2 (ja) | メッセージングプロトコル通信の管理 | |
US20200137151A1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
JP5245722B2 (ja) | スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム | |
US20160203024A1 (en) | Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform | |
US9350633B2 (en) | Dynamic optimization of command issuance in a computing cluster | |
KR20180073154A (ko) | 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법 | |
US9130943B1 (en) | Managing communications between client applications and application resources of on-premises and cloud computing nodes | |
CN113382077B (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
JP2008510259A (ja) | モジュラー型のイベントドリブン処理 | |
US10713026B2 (en) | Heterogeneous distributed runtime code that shares IOT resources | |
JP5285083B2 (ja) | 並行してトポロジを発見する方法および装置 | |
WO2018061825A1 (ja) | 分散処理システム、分散処理方法、及び記録媒体 | |
Hsieh et al. | ScriptIoT: A script framework for and internet-of-things applications | |
KR101656706B1 (ko) | 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법 | |
CN115965517B (zh) | 图形处理器资源管理方法及装置、电子设备和存储介质 | |
JP2024020271A (ja) | 機械学習ワークロードのためのタスクスケジューリング | |
CN113168333A (zh) | 受协调设备环境的工作流配置 | |
JP5754504B2 (ja) | 管理装置、情報処理装置、情報処理システム及びデータ転送方法 | |
US11349729B2 (en) | Network service requests | |
US10757177B1 (en) | Data locality-aware MapReduce using IoT devices | |
Mohamed et al. | Automatic generation of distributed run-time infrastructure for internet of things | |
US20230418594A1 (en) | Dynamic container layer switching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |