KR102422229B1 - 메시지 브로커 기반 데이터 처리 시스템 - Google Patents

메시지 브로커 기반 데이터 처리 시스템 Download PDF

Info

Publication number
KR102422229B1
KR102422229B1 KR1020200178125A KR20200178125A KR102422229B1 KR 102422229 B1 KR102422229 B1 KR 102422229B1 KR 1020200178125 A KR1020200178125 A KR 1020200178125A KR 20200178125 A KR20200178125 A KR 20200178125A KR 102422229 B1 KR102422229 B1 KR 102422229B1
Authority
KR
South Korea
Prior art keywords
data
message
time
module
message broker
Prior art date
Application number
KR1020200178125A
Other languages
English (en)
Other versions
KR20220087759A (ko
Inventor
이성근
Original Assignee
주식회사 비카누스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 비카누스 filed Critical 주식회사 비카누스
Priority to KR1020200178125A priority Critical patent/KR102422229B1/ko
Publication of KR20220087759A publication Critical patent/KR20220087759A/ko
Application granted granted Critical
Publication of KR102422229B1 publication Critical patent/KR102422229B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

메시지 브로커 기반 데이터 처리 및 워크플로우 실행 시스템이 개시된다. 메시지 브로커의 메시지 발행 및 구독 모듈; 메시지를 반복, 순환하여 데이터를 처리하도록 하는 메시지 브로커 채널을 구성한다. 상술한 메시지 브로커 기반 데이터 처리 및 워크플로우 실행 시스템에 시간 동기화 모듈을 추가 구성함으로써 다수의 장비 및 센서로부터 수집되는 시간 비동기 시계열 데이터의 시간 동기화를 수행하여 기존 장비에 신규 장비나 센서를 부착할 경우 필드버스(field-bus)를 신규로 연결할 필요 없이 유연하게 시간 동기화된 시계열 데이터를 수집할 수 있다. 따라서, 특정 시점을 기준한 데이터 분석과 데이터베이스의 적재 및 검색도 용이해지는 장점이 있다. 또한, 워크플로우 실행 모듈; 데이터 저장 모듈을 추가 구성함으로써 다수의 작업들로 구성된 워크플로우를 메시지 브로커의 메시지 발행, 구독 기능을 이용하여 실행할 수 있다. 상술한 메시지 브로커 기반 워크플로우 실행 시스템은 작업들이 분산 컴퓨팅 환경에서 동작할 수 있고 이종 프로그래밍 언어로 구성될 수 있는 효과가 있다.

Description

메시지 브로커 기반 데이터 처리 시스템{MESSAGE BROKER-BASED DATA PROCESSING SYSTEM}
본 발명은 메시지 통신을 이용한 데이터 처리 시스템에 관한 것으로서, 구체적으로는 메시지 브로커(message broker) 기반 데이터 처리 및 워크플로우(workflow) 실행 시스템에 관한 것이다.
2016년 세계 경제 포럼에서 주창된 4차 산업 혁명은 정보통신 기술(ICT)의 융합으로 새로운 기술 혁신을 도출하는 차세대 산업 혁명을 의미한다. 4차 산업 혁명에서 빅데이터, 인공지능, 사물 인터넷 등은 매우 중요한 요소 기술이며 이 기술들의 공통된 핵심 요소 중 하나는 산업 현장이나 일상 생활에서 발생하고 디바이스 간 상호 연결된 센서(sensor) 데이터이다.
지능형 시스템을 구현하기 위해 센서 데이터의 중요도는 매우 높아지고 있다. 일반적으로 다수의 센서를 시스템에 부착함으로써 시스템의 다양한 동작 및 상태를 파악하고, 제조 현장에서는 센서에서 수집한 빅데이터를 분석하여 공정 고도화 및 품질 향상을 모색하고 있다.
IT(Information Technology) 분야나 제조 현장에서의 데이터 처리 및 분석은 데이터 추출, 변환, 적재로 구성되는 ETL(Extract, Transform, Loading) 과정을 거친 후 데이터베이스에 저장된 데이터를 검색하고 분석하는 것이 일반적이다. ETL 과정은 수집된 소스 데이터에서 정보를 추출하고 추출된 정보를 정렬, 통합, 부분 선택 등과 같은 변환 과정들을 통해 통합 또는 관심 영역의 정보를 표현한다.
최근, 실시간 스트리밍 데이터 처리 분야나 인공지능 적용을 위한 실시간 데이터 처리 분야에 대한 수요가 증가하고 있으며 이러한 분야는 기존 ETL 과정과는 또 다른 형태의 데이터 처리 과정이 필요하다. 예를 들면, 데이터 분석에는 다양한 프로그래밍 언어가 사용되는데 이러한 프로그래밍 언어로 구성된 프로세스들을 독립적으로 실행시키면서 시퀀스도 제어할 수 있는 방법이 필요하다. 스트림 데이터 또한 특정 변환 처리 후 다음 변환 시퀀스로 바로 전달될 수 있는 방법 및 시스템 구조가 필요하다.
산업 현장에서는 필드버스(Field Bus)라는 산업용 통신 프로토콜을 사용하여 센서와 장비 간 또는 장비와 장비 간 데이터 전달 및 통신을 수행한다. 최근에는 기존 시스템들의 성능을 보완하기 위한 엣지(Edge) 디바이스 기기들이 추가적으로 시스템에 장착되는 경우가 많은데, 기존 제어기의 수정이 불가능하거나 기기 간 호환이 되지 않는 경우 기존 장비에서 수집되는 데이터와 신규로 추가된 기기나 장비에서 수집된 데이터 간에는 시간 불일치 문제가 발생한다.
예를 들어, 기존 장비에서 모션 축들의 위치 및 속도 정보를 수집하고 있고 가공 부하량을 측정할 수 있는 신규 센서와 기기를 부착하여 새로운 데이터를 수집할 경우, 기존 장비와 신규 기기가 동일 필드버스와 제어기에 연결되어 있다면 수집 데이터의 시간을 일치시킬 수 있다. 하지만 신규 기기가 기존 필드버스와 제어기를 지원하지 않는다면 두 기기에서 수집되는 데이터들 간에는 시간 불일치가 발생하게 된다.
공개특허공보 10-2010-0126786 등록특허공보 10-0800351
본 발명의 목적은 메시지 브로커 기반 데이터 처리 및 워크플로우 실행 시스템을 제공하는 데 있다.
상술한 본 발명의 목적에 따른 메시지 브로커 기반 데이터 처리 및 워크플로우 실행 시스템은, 데이터를 메시지 형태로 변환 후 메시지 브로커의 특정 채널 또는 주제로 메시지를 발행하는 메시지 발행 모듈; 발행된 메시지를 메시지 구독 모듈에 전달하는 메시지 브로커; 메시지 브로커 특정 채널 또는 주제의 메시지를 구독하는 메시지 구독 모듈을 포함하도록 구성될 수 있다.
여기서, 상기 메시지 구독 모듈에 의해 구독된 메시지를 소정의 형태로 가공 및 변환하는 데이터 변환 모듈을 더 포함하도록 구성될 수 있다.
그리고 상기 메시지 구독 모듈에 의해 구독된 메시지를 적재하는 데이터 적재 모듈을 더 포함하도록 구성될 수 있다.
상술한 메시지 브로커 기반 데이터 처리 및 워크플로우 실행 시스템에 의하면, 데이터의 발행과 구독 과정을 메시지 브로커의 채널을 통해 반복하여 데이터가 연속적으로 처리되도록 구성됨으로써, 실시간 입력 데이터를 연속적으로 변환하여 처리할 수 있고, 추가적인 시간 동기화 모듈을 통해 동시간에 입력되지 않은 시계열 데이터의 획득 시간을 허용 범위 내에서 동기화할 수 있다. 이를 통해, 새로운 센서 및 엣지 컴퓨팅 기기를 기존 장비에 부착할 경우, 기존 필드 버스(field-bus)와 연결하지 않고 메시지 브로커로 모든 데이터를 통합, 수집 및 시간 동기화 처리 후 원하는 형태로 시계열 데이터를 연속적으로 변형하여 사용할 수 있다.
또한, 분산 작업들을 주어진 순서대로 수행하는 시퀀스 실행, 관리기가 추가되어 구성됨으로써, 연속된 분산 작업들을 순차적으로 처리하는 워크플로우를 메시지 브로커를 통해 수행할 수 있는 효과가 있다. 이를 통해 이종 프로그래밍 언어로 구성된 각각의 분산 작업들을 별도의 프로그래밍 언어 번역기를 사용하지 않고 순차적으로 실행할 수 있다.
그리고, 데이터를 메시지 브로커로부터 실시간으로 구독하고 모니터링 시스템 및 데이터베이스와 연동하여 데이터 거동 특성을 실시간 파악하거나 분석 용도로 사용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메시지 브로커 활용 데이터 처리 장치의 블럭 구성도이다.
도 2는 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 데이터 변환을 순차적으로 수행하는 과정을 나타내는 모식도이다.
도 3은 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 원시 데이터를 순차적으로 변환하여 특징 데이터를 추출하는 과정을 예시하는 모식도이다.
도 4는 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 원시 데이터로부터 추출한 데이터를 변환하고 이를 순차적으로 분석하는 과정을 나타내는 모식도이다.
도 5는 본 발명의 실시예에 따른 메시지 브로커 기반 시계열 데이터 처리 및 워크플로우 실행 시스템의 블럭 구성도이다.
도 6은 본 발명의 실시예에 따라 모니터링 단말 및 데이터베이스와 연동되는 메시지 브로커 기반 시계열 데이터 처리 및 워크플로우 실행 시스템의 블럭 구성도이다.
도 7은 본 발명의 실시예에 따른 시간 동기화 장치의 타이머 성능을 일반적인 타이머와 비교하여 나타내는 그래프이다.
도 8은 본 발명의 실시예에 따른 메시지 발행 및 메시지 구독 간의 시간 지연에 대한 실험치를 나타내는 그래프이다.
도 9는 본 발명의 실시예에 따른 시간 비동기 시계열 데이터를 시간 동기화하고 연속적인 시계열 데이터로 변환한 뒤 여러 데이터 처리 과정을 통해 데이터를 분석하는 과정을 나타내는 모식도이다.
도 10은 본 발명의 실시예에 따른 메시지 브로커의 메시지를 이용하여 워크플로우 내 작업들을 실행하는 과정을 나타내는 모식도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 발명을 실시하기 위한 구체적인 내용에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 메시지 브로커 활용 데이터 처리 장치의 블럭 구성도이다. 도 2는 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 데이터 변환을 순차적으로 수행하는 과정을 나타내는 모식도이고, 도 3은 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 원시 데이터를 순차적으로 변환하여 특징 데이터를 추출하는 과정을 예시하는 모식도이고, 도 4는 본 발명의 실시예에 따른 메시지 브로커의 채널을 이용하여 원시 데이터로부터 추출한 데이터를 변환하고 이를 순차적으로 분석하는 과정을 나타내는 모식도이다.
그리고 도 5는 본 발명의 실시예에 따른 메시지 브로커 기반 시계열 데이터 처리 및 워크플로우 실행 시스템의 블럭 구성도이고, 도 6은 본 발명의 실시예에 따라 모니터링 단말 및 데이터베이스와 연동되는 메시지 브로커 기반 시계열 데이터 처리 및 워크플로우 실행 시스템의 블럭 구성도이다. 그리고 도 7은 본 발명의 실시예에 따른 시간 동기화 장치의 타이머 성능을 일반적인 타이머와 비교하여 나타내는 그래프이고, 도 8은 본 발명의 실시예에 따른 메시지 발행 및 메시지 구독 간의 시간 지연에 대한 실험치를 나타내는 그래프이고, 도 9는 본 발명의 실시예에 따른 시간 비동기 시계열 데이터를 시간 동기화하고 연속적인 시계열 데이터로 변환한 뒤 여러 데이터 처리 과정을 통해 데이터를 분석하는 과정을 나타내는 모식도이고, 도 10은 본 발명의 실시예에 따른 메시지 브로커의 메시지를 이용하여 워크플로우 내 작업들을 실행하는 과정을 나타내는 모식도이다.
여기서, 도 1은 메시지 브로커 활용 데이터 처리 장치(100) 위주의 일부 실시예를 개략적으로 나타내며, 도 2와 3은 메시지 브로커를 이용한 데이터 처리 방식의 다양한 실시예를 나타낸다.
도 1을 참조하면, 본 발명의 실시예에 따른 메시지 브로커 활용 데이터 처리 장치(100)는 메시지 발행(publish) 모듈(110), 메시지 브로커(message broker)(120), 메시지 구독(subscribe) 모듈(130), 데이터 저장 모듈(600)을 포함하도록 구성될 수 있다.
먼저, 도 1의 (B)를 보면, 데이터 생성 모듈은 데이터 수집, 추출, 변환 모듈을 데이터 활용 모듈은 데이터 적재, 분석, 시각화 모듈 구성을 기반으로 한다.
본 발명은 이러한 ETL 구성에서 연속적으로 획득되는 수많은 센서 데이터에 대해 메시지 브로커를 적용하여 센서 데이터의 시계열적 흐름에 대한 처리를 명확하게 하고, 신규로 설치되거나 장착되는 장비(10)나 센서(20) 등에 대한 추가적인 처리를 별도의 필드버스 연결 등의 작업을 하지 않고도 처리 가능하게 하는 것에 주안점이 있다. 즉, 이종 기기에서 수집되는 시계열 데이터를 필드버스(field bus)를 사용하지 않고도 시간을 동기화할 수 있는 장점이 있다.
이하에서 더 구체적으로 설명한다.
메시지 발행 모듈(110)과 메시지 구독 모듈(130)은 다수 개가 구비될 수 있으며 메시지 발행 모듈(110)이 메시지 브로커(120)로 발행한 메시지를 메시지 구독 모듈(130)이 구독하고 이를 재발행함으로써 반복, 순환하여 메시지를 연속적으로 전달되게 구성할 수 있다.
이때 활용되는 데이터는 발행되는 메시지 또는 별도의 데이터 저장 모듈(600)에 저장될 수 있으며, 별도의 데이터 저장 모듈(600)에 저장될 경우 발행되는 메시지는 데이터 저장 모듈(600)의 정보를 포함하도록 구성될 수 있다.
장비의 다수의 센서(sensor)(20)에 의해 감지된 센싱 데이터를 획득하는 엣지 컴퓨팅(edge computing device)(30)에 메시지 발행(publish) 모듈(110)이 설치될 수 있고, 이 센싱 데이터를 메시지로서 발행(publish)하도록 구성될 수 있다.
여기서, 데이터 처리 구성에 해당되는 데이터 생성 모듈(111) 및 데이터 활용 모듈(131)은 각각 메시지 발행 모듈(110) 및 메시지 구독 모듈(130)에 각각 구비될 수 있다.
데이터 처리 구성은 데이터 수집, 분석, 시각화, 추출, 변환, 적재 등의 기능을 수행하도록 구성될 수 있다.
예를 들어, 데이터 변환 모듈(400)은 데이터들의 시간 동기화를 수행하거나, 푸리에(Fourier)나 웨이블렛(Wavelet) 변환과 같은 도메인(domain) 변환을 수행하거나, 통계적 요약(summary statistics) 정보 계산을 수행하도록 구성될 수 있다.
또한, 데이터 적재 모듈(500)은 처리된 데이터를 데이터 저장 모듈(600)에 적재하는 기능을 수행하도록 구성될 수 있는데, 데이터 적재 모듈(500)은 데이터 종류 및 형태에 따라 시계열 데이터베이스, NoSQL, RDBMS, 인메모리 데이터베이스 등의 데이터 저장 모듈(600)에 적재할 수 있다.
도 2는 수집된 원시 데이터를 발행하고 메시지 브로커(120)를 통해 전달된 데이터를 순차적으로 처리하고 재발행하는 과정을 나타내는 모식도이다. 도 3은 도 2에서 모식화된 메시지 브로커(120)를 통한 데이터 연속 처리 과정의 예이며, 원시 시계열 데이터를 최초 발행한 뒤 이를 도메인 변환하고 차원 축소한 후 특징을 추출하는 과정을 나타낸다.
메시지는 메시지 브로커의 채널(channel), 주제(subject) 또는 토픽(topic)이라고 불리는 특정 통로를 통해 발행 및 구독되며, 메시지를 반복하여 발행, 구독하기 위해서는 기존 채널에 새로운 주제명을 추가하는 방식으로 채널명을 생성하도록 구성할 수 있다.
도 4는 원시 데이터를 수집하고 메시지 브로커를 통해 발행한 뒤 구독된 데이터에서 정보를 추출하고 데이터 변환 후 변환된 데이터를 재발행하는 과정과, 변환된 데이터를 구독한 후 각 변환 데이터들을 별도의 프로세스에서 분석하는 과정을 나타내는 모식도이다. 이 과정은 이미지 데이터로 표현 가능한 원시 데이터를 분석하는 예로서, 디스플레이 측정 데이터 분석에 활용 가능하다. 이를 상세히 설명하면 다음과 같다. 초기 원시 측정 데이터를 수집 후 발행하고 측정 데이터에서 이미지 정보를 추출한 후 이미지를 웨이블렛(wavelet) 변환한다. 이미지를 웨이블렛 변환하면 LL(Low Low), LH (Low High), HL(High Low), HH(High High) 네 개의 영역으로 분할되는데 이 웨이블렛 변환된 데이터를 메시지 브로커의 각 채널을 통하여 발행한다. 또한, 네 채널로 구독되는 LL, LH, HL, HH 영역의 이미지 데이터를 분산하여 분석함으로써 시스템 가동 효율을 증가시킬 수 있다. 이 과정은 반복하여 수행될 수 있으며 각 과정에서 나온 결과값들은 시각화 하거나 데이터베이스에 적재하여 활용할 수 있다.
도 5는 데이터 발행 모듈(110)을 이용하여 장비(10)나 엣지 컴퓨팅 기기(40)로부터 데이터를 수집하고 이를 메시지 브로커(120)를 이용하여 발행한 후 시간 동기화 장치(200)을 통해 수집한 데이터들의 시간을 동기화하고 이를 시계열 버퍼(300)를 통해 일정 길이 동안 합치고 데이터베이스에 적재하는 과정을 나타내는 모식도이다. 시간 동기화 장치(200)는 구독 데이터를 임시 저장하는 구독 데이터 버퍼(210), RT(real-time) 타이머(220) 그리고 시간 동기 처리 모듈(230)로 구성될 수 있다. 구독 데이터 버퍼(210)는 각 채널별로 구독되는 데이터를 저장하는 공간이며, RT 타이머는 정해진 시간마다 트리거(trigger)를 발생시키며, 트리거가 발생한 순간 각 버퍼에 들어있는 데이터를 가져와서 데이터의 시간 동기를 수행한다. 트리거 발생 순간 각 버퍼 데이터는 개수가 다를 수 있으며 심지어 데이터가 없을 수도 있다. 따라서 시간 동기 처리 모듈(230)은 버퍼 데이터들의 평균값, 최대값, 최소값, 처음 값, 마지막 값 또는 이전 버퍼값 등 다양한 방법들을 사용하여 트리거 간격 동안의 대표값을 선정하도록 구성될 수 있다. 이렇게 트리거 간격 동안 각 채널의 대표값으로 선정된 데이터들은 동일 시각에 수집된 데이터로 간주될 수 있으며 이 결정 시각을 기반하여 데이터베이스에 저장, 조회 및 데이터를 분석할 수 있다. 결정 시각은 RT타이머(220)의 정밀도와 수집 데이터의 분해능에 따라 결정될 수 있으며, 고속으로 데이터를 처리할 필요가 있는 분야는 수에서 수십 밀리초(msec)로 설정할 수 있고 그렇지 않는 분야는 수에서 수십 초(sec)로 설정하여 데이터를 수집, 처리할 수 있다. 즉, 가변 설정이 가능하다. 도 7은 본 발명의 리얼타임 타이머의 성능을 종래와 비교하여 나타내고 있다. 도7을 통해 알 수 있듯이 CPU 부하(load)가 변화하는 상황에서 일반적인 타이머보다 본 발명에 따른 RT타이머(220)의 지터(jitter)가 훨씬 적어 일정한 주기의 트리거를 발생함에 있어서 더욱 뛰어난 성능을 나타내고 있다. 본 발명의 메시지 브로커(120)를 이용한 데이터 처리 및 시간 동기화 기능을 사용하면 이종 기기에서 수집되는 시계열 데이터를 필드버스(field bus)를 사용하지 않고도 시간을 동기화할 수 있으며 RT타이머(220)의 성능에 따라 분해능이 높은 시간 동기화도 가능하다.
도 6은 다수의 센서에서 수집하는 시계열 데이터를 메시지 브로커(120)를 이용하여 시간을 동기화하고 시간 동기화된 시계열 데이터를 다양한 방법으로 활용하는 예제를 보여주는 모식도이다. 시간 동기화 장치(200)를 통해 일정 주기의 시간 간격을 갖는 동기화된 시계열 데이터를 다양한 소프트웨어 어플리케이션에 활용할 수 있는데 먼저, 메시지 브로커(120)의 해당 채널을 직접 구독하면 실시간으로 시계열 데이터를 모니터링 할 수 있고, 시계열 버퍼(300)에 데이터를 일정 시간 동안 모은 후 이를 시계열 데이터베이스 또는 NoSQL, RDBMS등의 데이터베이스로 적재할 수 있다. 또한, 시계열 버퍼(300)에 모인 데이터 중에 대표값을 선정하여 인메모리 데이터베이스에 적재함으로써 HMI(Human Man Interface) 화면에 장비나 센서 상태를 출력할 수 있다. 시계열 버퍼 데이터 중에 대표값을 선정하는 방법은 시간 동기화 모듈(230)에서 대표값을 선정하는 방법과 동일하며 노이즈를 제거하기 위해서는 평균이나 중간값을 선택하는 것이 유리하다. 이와 같이 메시지 브로커(120)를 이용하여 실시간 모니터링이나 HMI 시스템을 구성하게 되면 데이터 수집, 장비 제어, 모니터링 및 분석 시스템이 분리되는 장점이 있고, 소프트웨어 개발 측면으로는 이종 언어를 사용하여 각 모듈을 개발할 수 있고 시스템 확장성이 높아지는 장점이 있다.
한편, 제1 메시지 구독 모듈(130a)은 메시지 브로커(120)에서 출력되는 메시지를 구독하여 시간 동기화 장치(200)로 전달한 후, 다시 시간 동기화 장치(200)에 의해 시간 동기화가 된 데이터를 메시지 브로커(120)로 전달하도록 구성될 수 있다.
그리고 제2 메시지 구독 모듈(130b)은 메시지 브로커(120)로부터 시간 동기화가 된 데이터를 구독하여 데이터 적재 모듈(500)로 전달한다.
도 8은 메시지 발행 모듈(110)과 메시지 구독 모듈(130)이 동일 프로세스로 동작하는 경우 메시지 브로커(120)를 이용하여 메시지를 발행하고 발행된 메시지를 구독하는데 소요되는 시간, 즉 발행과 구독에 따른 지연시간을 측정한 그래프이다.
도 9는 센서(20)로부터 수집한 시간 비동기 시계열 데이터를 메시지 브로커(120), 시간 동기화 장치(200), 시계열 버퍼(300)를 이용하여 시간 동기된 연속적인 시계열 데이터로 재생성하고, 반복적인 데이터 처리 과정을 통해 시간 동기 시계열 데이터를 분석하거나 데이터베이스에 데이터를 적재하는 과정을 나타내는 모식도이다.
도 10은 메시지 브로커(120)를 이용하여 다수의 작업(job)으로 구성된 워크플로우(workflow)를 실행하는 예제를 나타내는 도식도이다. 워크플로우는 다수의 작업들로 구성되며, 순차적 또는 그래프(graph) 구조의 방식으로 구성될 수 있다. 각 작업들은 자기 자신 작업 이름의 채널을 구독하여 메시지를 전달 받고, 작업 완료 후 다음 진행될 작업 이름의 채널들로 메시지를 전달한다. 메시지 브로커는 이러한 메시지를 중계하는 브로커 역할을 수행하며, 전달되는 메시지에는 입력 변수 타입, 크기, 데이터 저장 경로, 출력 변수 타입 및 크기 등이 정의될 수 있다. 본 발명에서 사용된 도 8의 메시지 브로커 지연 시간은 일반적인 크기의 메시지에 대해서는5msec 이하이기 때문에 다수의 작업들을 갖는 워크플로우를 실행하더라도 빠르게 수행할 수 있는 장점이 있다. 추가적으로 워크플로우를 실행하기 전에 다수의 워크플로우를 대기 및 실행하여 성능 효율을 높일 수 있다. 일반적으로 워크플로우 대기열 앞단에 라우터(router)를 구성하여 라운드로빈(round robin), 해싱(hashing), 최소 커넥션(least connection)등의 방식등을 사용하여 로드밸런싱(load balancing)을 수행할 수 있다. 본 발명의 메시지 브로커 기반 워크플로우는 메시지 구독, 발행 과정을 통해 실행되기 때문에 워크플로우 내 작업들이 각기 다른 하드웨어에 분산되어 있거나 이종 프로그래밍 언어로 구성되어 있더라도 정해진 워크플로우 순서대로 수행될 수 있는 장점이 있다. 특히, 작업들이 다수의 컴퓨터에 분산되어 실행될 수 있기 때문에 시스템의 전반적인 성능을 향상한다.
100: 메시지 브로커 활용 데이터 처리 장치
110: 메시지 발행 모듈
111: 데이터 생성 모듈
120: 메시지 브로커
130: 메시지 구독 모듈
130a: 제1 메시지 구독 모듈
130b: 제2 메시지 구독 모듈
131: 데이터 활용 모듈
200: 시간 동기화 장치
210: 구독 데이터 버퍼
220: RT 타이머
230: 시간 동기 처리 모듈
300: 시계열 버퍼
400: 데이터 변환 모듈
500: 데이터 적재 모듈
600: 데이터 저장 모듈
700: 모니터링 단말

Claims (3)

  1. 다수의 이종 장비에 부착된 다수의 센서(sensor)에서 감지된 시계열 센싱 데이터를 각 이종 장비의 엣지 컴퓨팅 기기(edge computing device)로부터 수집하고, 수집된 시계열 센싱 데이터를 이용하여 반복적으로 연속하여 메시지를 발행 및 구독하여 실시간 전달하는 메시지 브로커 활용 데이터 처리 장치;
    상기 메시지 브로커 활용 데이터 처리 장치에서 발행된 메시지를 수집하여 시간 동기화를 수행하는 시간 동기화 장치;
    상기 시간 동기화 장치에 의해 시간 동기화가 된 메시지를 소정 길이의 범위 내에서 축적하는 시계열 버퍼;
    상기 시계열 버퍼에 의해 축적된 메시지를 소정 형태의 데이터로 가공 및 변환하여 데이터 수집, 분석, 시각화, 추출, 변환 또는 적재 중 적어도 하나 이상의 데이터 처리 기능을 수행하는 데이터 변환 모듈;
    상기 데이터 변환 모듈에 의해 데이터 처리 기능이 수행된 데이터를 적재하는 데이터 적재 모듈;
    상기 데이터 적재 모듈에 의해 데이터가 적재되어 저장되는 데이터 저장 모듈;
    상기 데이터 저장 모듈에 저장된 데이터를 조회 및 분석하는 모니터링 단말을 포함하고,
    상기 메시지 브로커 활용 데이터 처리 장치는,
    상기 다수의 이종 장비의 시계열 센서 데이터를 메시지 형태로 변환 후 메시지 브로커의 소정 채널 또는 소정 주제에 따른 통로를 통해 메시지를 발행하는 다수의 메시지 발행 모듈;
    상기 메시지 발행 모듈에서 발행된 메시지를 상기 소정 채널 또는 소정 주제에 따른 통로를 통해 메시지 구독 모듈에 전달하는 메시지 브로커;
    상기 소정 채널 또는 소정 주제의 메시지를 상기 메시지 브로커로부터 구독하여 전달받는 다수의 메시지 구독 모듈을 포함하도록 구성되고,
    상기 메시지 브로커는,
    상기 메시지의 입력 변수 타입, 크기, 데이터 저장 경로, 출력 변수 타입 및 크기를 정의하여 전달하도록 구성되고,
    상기 메시지 브로커는,
    메시지를 반복하여 발행 및 구독할 수 있도록 기존 채널명 또는 주제명에 새로운 채널명 또는 주제명을 추가하는 방식으로 채널명 또는 주제명을 추가 생성하도록 구성되고,
    상기 메시지 구독 모듈은,
    상기 메시지 브로커에서 전달되는 메시지를 구독하여 상기 시간 동기화 장치로 전달하고, 상기 시간 동기화 장치로부터 시간 동기화된 데이터를 수신하여 상기 메시지 브로커로 다시 전달하는 제1 메시지 구독 모듈;
    상기 메시지 브로커로부터 시간 동기화된 데이터를 전달받아 상기 데이터 적재 모듈로 전달하는 제2 메시지 구독 모듈을 포함하도록 구성되고,
    상기 메시지 브로커 활용 데이터 처리 장치는,
    상기 엣지 컴퓨팅 기기로부터 수집된 시계열 센싱 데이터를 미리 정의된 방법으로 변환 및 가공 처리하고, 상기 메시지 브로커를 활용하여 반복적으로 구독 및 발행하여 연속적으로 데이터를 처리하는 워크플로우를 실행하도록 구성되고,
    상기 시간 동기화 장치는,
    상기 메시지 브로커 활용 데이터 처리 장치에서 상기 메시지 구독 모듈로 전달되는 메시지를 분류하여 각 채널별 또는 각 주제별로 구독되는 데이터를 임시 저장하는 구독 데이터 버퍼;
    미리 정해진 시간마다 트리거(trigger)를 발생시키는 RT 타이머;
    상기 RT 타이머에 의해 트리거가 발생할 때마다 상기 구독 데이터 버퍼에 임시 저장된 데이터를 처리하여 데이터의 시간 동기를 수행하는 시간 동기 처리 모듈을 포함하도록 구성되며,
    상기 시간 동기 처리 모듈은,
    상기 구독 데이터 버퍼에 저장된 데이터의 평균값, 최대값, 최소값, 처음 값, 마지막 값 또는 이전 버퍼값 중 적어도 하나 이상을 이용하여 각 트리거 발생 간격 시간 동안의 대표값을 선정하도록 구성되며,
    상기 데이터 적재 모듈은,
    상기 적재되는 데이터 종류 및 형태에 따라 시계열 데이터베이스, NoSQL, RDBMS 또는 인메모리 데이터베이스 중 어느 하나의 데이터 저장 모듈로 적재하도록 구성되며, 상기 시간 동기 처리 모듈에서 선정된 대표값을 해당 트리거가 발생한 시간마다 동일 시각에 수집된 데이터로 간주하여 상기 데이터 저장 모듈에 적재하여 저장하도록 구성되며,
    상기 데이터 저장 모듈에 저장된 데이터는,
    해당 트리거가 발생한 시간을 기준으로 조회하도록 구성되는 메시지 브로커 기반 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 RT타이머는,
    상기 채널 또는 주제 중에서 소정 기준 이상의 고속으로 데이터를 처리할 필요가 있는 채널 또는 주제의 데이터에 대해서는 1-99 msec마다 트리거를 발생하도록 구성되고, 소정 기준 이상의 고속으로 데이터를 처리할 필요가 없는 채널 또는 주제의 데이터에 대해서는 1-99 sec마다 트리거를 발생하도록 구성되는 것을 특징으로 하는 메시지 브로커 기반 데이터 처리 시스템.
  3. 제1항에 있어서, 상기 RT타이머는,
    상기 트리거의 발생 간격을 가변 설정하여 트리거를 발생시키도록 구성되는 것을 특징으로 하는 메시지 브로커 기반 데이터 처리 시스템.
KR1020200178125A 2020-12-18 2020-12-18 메시지 브로커 기반 데이터 처리 시스템 KR102422229B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200178125A KR102422229B1 (ko) 2020-12-18 2020-12-18 메시지 브로커 기반 데이터 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200178125A KR102422229B1 (ko) 2020-12-18 2020-12-18 메시지 브로커 기반 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
KR20220087759A KR20220087759A (ko) 2022-06-27
KR102422229B1 true KR102422229B1 (ko) 2022-07-18

Family

ID=82246727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200178125A KR102422229B1 (ko) 2020-12-18 2020-12-18 메시지 브로커 기반 데이터 처리 시스템

Country Status (1)

Country Link
KR (1) KR102422229B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0305066D0 (en) 2003-03-06 2003-04-09 Ibm System and method for publish/subscribe messaging
US8140630B2 (en) 2008-03-05 2012-03-20 International Business Machines Corporation Publish/subscribe message broker for message sequences
KR101890310B1 (ko) * 2016-09-19 2018-08-22 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR101936338B1 (ko) * 2016-12-07 2019-01-08 한국전자통신연구원 MQTT 기반의 IoT 게이트웨이를 이용한 SUN 센서 모니터링 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
KR20220087759A (ko) 2022-06-27

Similar Documents

Publication Publication Date Title
CN109726074A (zh) 日志处理方法、装置、计算机设备和存储介质
CN106778033A (zh) 一种基于Spark平台的Spark Streaming异常温度数据报警方法
US10725794B2 (en) Data processing device, data processing method, setting management device, and data processing system
US20160142493A1 (en) Sensor data collection system
US20110282866A1 (en) System And Method For Retrieving And Processing Information From A Supervisory Control Manufacturing/Production Database
CN113360554B (zh) 一种数据抽取、转换和加载etl的方法和设备
KR20150112357A (ko) 센서 데이터 처리 시스템 및 방법
Soumaya et al. Real-time data stream processing challenges and perspectives
CN111124392A (zh) 一种提高物联网平台规则引擎高并发能力的方法
Ruiz et al. ITER fast plant system controller prototype based on PXIe platform
JP5520369B2 (ja) コンピュータ・システム、方法及びプログラム
CN112749153A (zh) 一种工业网络数据管理系统
CN111258973A (zh) Redis慢日志的存储、展示方法、装置、设备和介质
KR102422229B1 (ko) 메시지 브로커 기반 데이터 처리 시스템
CN113268530A (zh) 海量异构数据采集方法、系统、计算机设备和存储介质
Marten et al. Result processing approaches for large smart grid co-simulations
Bohm et al. Aggregation of real-time system monitoring data for analyzing large-scale parallel and distributed computing environments
EP3839672B1 (en) Distributed sensing processing systems
CN109756565A (zh) 一种基于统计表的多任务数据推送方法
CN101495978A (zh) 减少总线连接的消费者和产生者之间的消息流
US20130117334A1 (en) Storage for real time process
CN113342826A (zh) 一种对不同数据采集引擎的数据操作进行统一管理的方法、存储介质及系统
CN107239478B (zh) 能量管理服务器及具备其的能量管理系统
CN105023262A (zh) 视觉检测控制器
CN110187829A (zh) 一种数据处理方法、装置、系统及电子设备

Legal Events

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