KR102404456B1 - 타임 슬롯 기반의 윈도우 제어 장치 및 방법 - Google Patents

타임 슬롯 기반의 윈도우 제어 장치 및 방법 Download PDF

Info

Publication number
KR102404456B1
KR102404456B1 KR1020220042005A KR20220042005A KR102404456B1 KR 102404456 B1 KR102404456 B1 KR 102404456B1 KR 1020220042005 A KR1020220042005 A KR 1020220042005A KR 20220042005 A KR20220042005 A KR 20220042005A KR 102404456 B1 KR102404456 B1 KR 102404456B1
Authority
KR
South Korea
Prior art keywords
window
time
stream data
input
data
Prior art date
Application number
KR1020220042005A
Other languages
English (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 KR1020220042005A priority Critical patent/KR102404456B1/ko
Application granted granted Critical
Publication of KR102404456B1 publication Critical patent/KR102404456B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 타임 슬롯 기반의 윈도우 제어 장치 및 방법에 관한 것이다. 본 발명의 일 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치에 있어서, 적어도 하나의 외부장치로부터 적어도 하나의 데이터를 스트리밍 형태로 입력받는 입력부; 상기 적어도 하나의 외부장치로부터 입력되는 스트림 데이터를 저장하고, 상기 스트림 데이터를 처리하기 위해 필요한 적어도 하나의 프로세스를 저장하는 저장부; 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성하는 윈도우 생성부; 상기 적어도 하나의 윈도우 각각에 입력되는 스트림 데이터를 분석 및 연산하는 스트리밍 처리부; 및 상기 적어도 하나의 프로세스를 기반으로, 상기 스트림 데이터를 처리하기 위한 동작을 수행하는 제어부;를 포함하며, 상기 제어부는, 상기 적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력되면, 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성한 후, 상기 스트림 데이터를 상기 적어도 하나의 윈도우 각각에 입력하여 분석 및 연산하도록 제어하며, 상기 적어도 하나의 윈도우 각각의 종료시점은 모두 동일하게 고정될 수 있다.

Description

타임 슬롯 기반의 윈도우 제어 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING WINDOW BASED ON A TIME SLOT}
본 발명은 타임 슬롯 기반의 윈도우 제어 장치 및 방법에 관한 것으로, 보다 상세하게는 연산량을 감소시켜 효율적인 처리가 가능하도록 하는 타임 슬롯 기반의 윈도우 제어 장치 및 방법에 관한 것이다.
최근 센서 네트워크 및 통신기술의 발달에 힘입어 스트림 데이터(Stream Data)에 대한 연구가 활발히 진행되고 있다. 스트림 데이터에 대한 연구 결과로 DSMS(Data Stream Management System)가 등장하였는데, 이는 새로운 형태의 질의인 연속질의(Continuous Query Language)를 사용한다. 연속질의는 시스템에 등록이 되고 조건에 맞는 데이터만 처리하는 점에서 기존의 질의와 차이가 있다. 모든 연속질의는 슬라이딩 윈도우를 포함하고 있고, 집계정보 처리를 요구한다. 그리고 이 연속질의는 슬라이딩 윈도우의 특성에 따라 두 가지로 구분된다. 첫 번째는 시간단위의 슬라이딩 윈도우를 포함하는 시간기반 질의이다. 다음은 튜플단위의 슬라이딩 윈도우를 포함하는 튜플기반 질의가 있다. 특히 이 두 종류의 연속질의 중 하나 이상이 동일한 자원에서 실행되는 경우가 발생할 수 있다.
스트림 데이터는 연속적으로 들어오는 대용량의 데이터이다. 스트림 데이터상의 질의 처리는 디스크에 저장되어 있는 데이터를 처리하는 기존의 방식과 다른 질의 처리 방법을 요구한다. 따라서 기존의 질의와 다른 형태인 연속질의가 제안되었는데, 모든 연속질의는 슬라이딩 윈도우를 포함하고 있다. 슬라이딩 윈도우는 일정시간 또는 지정된 개수의 튜플로 스트림 데이터를 분할하여 질의 처리에 이용한다. 그리고 슬라이딩 윈도우를 이동하면서 질의를 계속적으로 진행한다.
슬라이딩 윈도우는 시간을 기반으로 윈도우 크기를 결정하는 시간 기반 슬라이딩 윈도우와 튜플을 기반으로 윈도우 크기를 결정하는 튜플 기반 슬라이딩 윈도우가 있다. 시간 기반 슬라이딩 윈도우를 이용한 질의를 시간 기반 질의 또는 TS 질의라고 하며, 튜플 기반 슬라이딩 윈도우를 이용한 질의를 튜플 기반 질의 또는 ROW 질의라고 한다. TS 질의와 ROW 질의는 레인지(RANGE)와 슬라이드(SLIDE) 절을 포함한다. 레인지는 슬라이딩 윈도우의 질의 영역의 크기를 명시하는 것이다. 시간 기반에서는 시간의 범위가 나타나며 튜플 기반에서는 튜플의 개수가 나타나게 된다. 슬라이드는 슬라이딩 윈도우의 이동 크기를 명시하는 것이다. 시간 기반에서는 슬라이드의 값만큼 시간이 지난 데이터로 슬라이딩 윈도우를 이동하며, 튜플 기반에서는 슬라이딩 윈도우를 슬라이드의 값만큼 튜플의 개수를 이동한다
슬라이딩 윈도우는 중복된 영역을 포함하면서 이동하기 때문에 동일한 튜플을 질의 처리에 사용하게 되어 연산 비용을 낭비하게 되고, 스트림의 입력 속도가 빨라지면 TS 질의는 레인지와 슬라이드가 커지는데 ROW 질의는 언제나 고정이기 때문에 스트림의 입력 속도가 증가하면 튜플 기반 질의는 질의 횟수가 증가하게 되고 질의 처리시간이 늘어나며 질의 지연을 가져오게 된다. 이러한 문제점을 해결하기 위해 자원 공유 기법이 필요하다.
슬라이딩 윈도우는 질의 처리를 위해 버퍼를 이동할 때 중복된 영역을 포함할 수 있다. 슬라이딩 윈도우의 레인지의 범위가 슬라이드보다 큰 경우에 발생한다. 이 경우에는 이전의 질의 처리에 사용했던 부분을 다음 질의 처리에 사용하게 된다. 결국 중복된 영역의 질의 처리에 따라 연산 비용이 증가한다. 그래서 중복 영역을 재계산하지 않기 위해 팬(Pane) 구조가 제안되었다. 팬은 질의 영역을 분할하여 집계 값을 계산하고 유지한다.
따라서, 타임 슬롯 기반의 윈도우 제어를 통해 스트림 데이터에 대한 처리 연산량을 감소시키면서 효율적인 처리가 가능하도록 하는 기술이 개발될 필요가 있다.
한국등록특허공보 제10-1672097호 (등록일: 2016년 10월 27일)
본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 고정된 윈도우 내에 데이터가 스트림 형태로 슬라이딩 하여 입력되도록 함으로써, 연산량을 감소시켜 효율적인 처리가 가능하도록 하는 동시에 로직(logic) 수립 및 관리가 보다 용이하도록 하는 타임 슬롯 기반의 윈도우 제어 장치 및 방법을 제공함에 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치는, 적어도 하나의 외부장치로부터 적어도 하나의 데이터를 스트리밍 형태로 입력받는 입력부; 상기 적어도 하나의 외부장치로부터 입력되는 스트림 데이터를 저장하고, 상기 스트림 데이터를 처리하기 위해 필요한 적어도 하나의 프로세스를 저장하는 저장부; 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성하는 윈도우 생성부; 상기 적어도 하나의 윈도우 각각에 입력되는 스트림 데이터를 분석 및 연산하는 스트리밍 처리부; 및 상기 적어도 하나의 프로세스를 기반으로, 상기 스트림 데이터를 처리하기 위한 동작을 수행하는 제어부;를 포함하며, 상기 제어부는, 상기 적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력되면, 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성한 후, 상기 스트림 데이터를 상기 적어도 하나의 윈도우 각각에 입력하여 분석 및 연산하도록 제어하며, 상기 적어도 하나의 윈도우 각각의 종료시점은 모두 동일하게 고정될 수 있다.
한편, 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 방법은, 적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력받는 단계; 상기 적어도 하나의 외부장치로부터 입력되는 스트림 데이터를 저장하는 단계; 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성하는 단계; 상기 스트림 데이터를 상기 적어도 하나의 윈도우 각각에 입력하는 단계; 및 상기 입력되는 스트림 데이터를 분석 및 연산하는 단계를 포함하며, 상기 적어도 하나의 윈도우 각각의 종료시점은 모두 동일하게 고정될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 의하면, 고정된 윈도우 내에 데이터가 스트림 형태로 슬라이딩 하여 입력되도록 함으로써, 연산량을 감소시켜 효율적인 처리가 가능하도록 하는 동시에 로직(logic) 수립 및 관리가 보다 용이하도록 한다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1a 및 도 1b는 슬라이딩 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 구조를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따라 하나의 고정된 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
도 4는 본 발명의 다른 실시예에 따라 복수개의 고정된 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 방법을 나타내는 순서도이다.
도 6은 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 스트리밍 처리부에서 수행되는 동작의 일 예를 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 스트리밍 처리부에서 수행되는 동작에 의해 필터링 결과가 도출되는 일 예를 나타내는 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
명세서에서 사용되는 "부" 또는 "모듈"이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 "모듈"은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 "모듈"은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 "모듈"은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 "모듈"은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 "모듈"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 "모듈"들로 결합되거나 추가적인 구성요소들과 "부" 또는 "모듈"들로 더 분리될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1a 및 도 1b는 슬라이딩 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
기본적으로 슬라이딩 윈도우(Sliding Window)는 실시간 네트워크 패킷 데이터를 처리하는 기법이다. 현재 시점으로부터 일정 기간의 데이터를 일정 간격의 시간마다 전송하는 방식으로, 이 방식의 특징은 각각의 데이터 조각(window)들이 서로 겹치며 데이터가 전송되는 것이다. 즉, 슬라이딩 윈도우는 정해진 시간만큼의 범위를 잡아두고, 그 시간 동안의 스트림 데이터에 대해서 어떤 연산을 수행하는 것을 나타낸다.
도 1a 및 도 1b는 외부 장치로부터 입력되는 스트림 데이터를 현재 시점으로부터 10초 단위로 쪼개어 처리하는 경우를 도시한 것으로, 그 쪼개진 데이터(조각)를 미리 설정된 크기의 윈도우가 시간에 따라 생성되어 이동하면서 해당 구간 내의 데이터들(데이터 집합)에 대한 여러 가지 연산을 수행할 수 있다.
이때, 도 1a는 윈도우의 크기가 10초 크기에 대응하는 일 예이며, 윈도우의 크기가 스트림 데이터를 쪼개는 단위와 동일하기 때문에 스트림 데이터의 각 조각들 간 중첩되는 구간 없이 깔끔하게 쪼개진다.
한편, 도 1b는 윈도우의 크기가 5초 크기에 대응하는 일 예이며, 윈도우의 크기가 스트림 데이터를 쪼개는 단위 보다 작기 때문에 스트림 데이터의 각 조각들 간 일부가 중첩되는 구간이 발생한다. 이렇게 데이터가 중첩되도록 쪼개어 전송하는 이유는 패킷을 전송한 이후, 그 패킷의 전송을 확인받지 않고도 곧바로 다음 패킷을 보낼 수 있어 네트워크를 효율적으로 사용할 수 있기 때문이다.
이와 같이, 미리 설정된 크기(ms, 초, 분, 시간, 일 단위 등) 만큼의 윈도우가 시간을 따라 계속 슬라이딩 되는데, 이를 소프트웨어로 구현하면 일 예시로서 시작시간 및 종료시간에 대해 계속적으로 윈도우 크기만큼씩 시작시간 및 종료시간에 더해가며 시간 순으로 이동하면서 해당 시간에 해당하는 데이터 목록을 추출하여 연산을 수행한다. 그러나, 윈도우가 중첩됨에 따라 처리해야하는 윈도우의 수가 하나가 아닌 10개, 100개, 1000개 등 증가할 수 있고, 각기 그 윈도우의 크기도 상이해지면 관리해야 하는 시작시간 및 종료시간도 다양해질 뿐만 아니라, 그 내부 로직 또한 복잡해진다.
본 발명은 윈도우를 고정하고, 그 고정된 윈도우 내에 데이터가 스트림 형태로 슬라이딩 하여 입력되도록 함으로써, 윈도우가 중첩됨에 따라 처리해야하는 윈도우의 수가 증가하는 경우에도 그 연산량을 감소시킬 수 있도록 하는 것이다.
도 2는 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 구조를 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치(100)(이하, '윈도우 제어 장치'라 칭함)는 입력부(110), 저장부(130), 윈도우 생성부(150), 스트리밍 처리부(170) 및 제어부(190)를 포함한다.
입력부(110)는 적어도 하나의 외부장치로부터 적어도 하나의 데이터를 스트리밍 형태로 입력받는다. 이때, 입력부(110)는 적어도 하나의 외부장치와 유선 또는 무선 통신을 기반으로 연결되어 적어도 하나의 데이터를 입력받을 수 있으며, 이를 한정하지 않는다. 즉, 입력부(110)는 곧 통신부일 수 있는 바, 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 한다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있으며, 윈도우 제어 장치(100)는 앞에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 데이터를 송수신하게 된다.
근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다. 이때, 근거리 무선 통신망은 근거리 무선 개인 통신망(Wireless Personal Area Networks)일 수 있다.
저장부(130)는 입력부(110)를 통해 입력되는 스트림 데이터를 저장하고, 그 스트림 데이터를 처리하기 위한 적어도 하나의 프로세스를 저장한다. 이때, 저장부(130)는 스트림 데이터를 임시 저장할 수 있으며, 처리된 스트림 데이터는 삭제할 수 있다.
윈도우 생성부(150)는 미리 설정된 시간만큼의 크기를 갖는 적어도 하나의 윈도우를 생성한다. 이때, 하나의 스트림 데이터에 대한 윈도우가 복수개 생성될 수 있다. 여기서, 적어도 하나의 윈도우는 현재 시간이 종료시점으로 고정되고, 그 현재 시간을 기준으로 역으로, 즉, 과거 시간을 향해 설정된다. 그렇기 때문에 각 윈도우의 시작 시간은 현재 시간에서 그 해당 윈도우의 크기만큼의 시간을 뺀 시간이 된다. 또한, 적어도 하나의 윈도우의 크기는 필요에 따라 같거나 상이하게 설정될 수 있다.
앞서 설명한 바와 같이, 적어도 하나의 윈도우는 모두 그 종료시점(종료시간)이 현재 시간으로 고정되기 때문에, 각 윈도우의 종료시간을 별도로 연산하여 관리할 필요가 없어 연산량이 감소하게 된다.
스트리밍 처리부(170)는 적어도 하나의 윈도우를 통해 각각 순차적으로 입력되는 스트림 데이터를 분석 및 연산한다.
구체적으로, 스트리밍 처리부(170)는 적어도 하나의 윈도우에 입력되는 스트림 데이터을 분석하여 원하는 조건의 데이터가 존재하는지 여부를 확인하고, 원하는 데이터가 존재한다면 연산을 통해 그 데이터의 수를 산출한다.
즉, 연속적으로 흘러오는 스트림 데이터를 기 설정된 시간(일정 시간)의 길이만큼씩 연속적으로 계속 잘라 그 시간 범위 이내에 포함된 데이터에 대해 연산을 수행한다. 이때, 연산은 특정 조건에 해당하는 데이터의 수를 산출하거나 그 데이터들의 합 또는 평균 값을 구하는 등의 작업일 수 있다.
예를 들어, 5분 동안 status=500인 데이터가 3건 이상인 경우에 ip를 검출하는 경우, 기 등록된 담당자에게 5분 동안 3건 이상의 오류가 발생한 서버 IP를 알릴 수 있다. 또한, 1분 동안 attack=ddos인 데이터가 100건 이상인 경우에 s_ip를 검출하는 경우, 1분 동안 100회 이상의 ddos로 정의된 공격이 감지될 시 기 등록된 담당자에게 어느 IP로부터 공격이 들어온 것인이 알릴 수 있다. 또한, 10분 동안 bytes의 합이 500,000,000 이상인 데이터가 1건 이상인 경우에 user_id를 검출하는 경우, 10분 동안 500 메가 이상의 데이터를 전송한 사람의 ID 목록을 검출하여 내부 통제 등에 사용될 수 있도록 한다.
이와 같이, 본 발명은 앞서 설명한 예시와 같은 다양한 검출 조건들이 적어도 하나 이상 설정될 수 있으며, 슬라이딩 윈도우 또한 각기 따로 생성되어 동작하게 된다. 이러한 슬라이딩 윈도우를 현재시점을 종료시점으로 정하고, 역으로 (-) 시간 계산한 슬라이딩 윈도우를 생성하면, 각 시간 별로 하나의 슬라이딩 윈도우 개념으로 처리할 수 있게 된다.
제어부(190)는 저장부(130)에 저장된 적어도 하나의 프로세스를 기반으로, 그 스트림 데이터를 처리하기 위한 동작을 수행한다.
구체적으로, 제어부(190)는 적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력되면, 미리 설정된 시간만큼의 크기를 갖는 적어도 하나의 윈도우를 생성한 후, 그 스트림 데이터를 미리 설정된 크기로 쪼개어 적어도 하나의 윈도우 각각에 순차적으로 입력하여 분석 및 연산하도록 제어한다.
도 3은 본 발명의 실시예에 따라 하나의 고정된 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
도 3을 참조하면, 하나의 고정된 윈도우(W1)는 윈도우의 종료시점이 현재 시간으로 고정된 상태에서 역으로 미리 설정된 시간을 갖도록 설정되어 생성된다. 도 3은 그 하나의 고정된 윈도우(W1)의 크기를 10초로 설정한 일 예를 도시한 것이며, 그 고정된 윈도우를 통해 10초 단위로 쪼개진 스트림 데이터가 시간에 따라 순차적으로 입력된다.
도 4는 본 발명의 다른 실시예에 따라 복수개의 고정된 윈도우를 기반으로 하는 스트림 데이터 처리 방식을 나타내는 도면이다.
도 4를 참조하면, 복수개의 고정된 윈도우(W1, W2, W3)는 각 윈도우의 종료시점이 모두 현재 시간으로 동일하게 고정된 상태에서 역으로 미리 설정된 시간을 갖도록 설정되어 생성된다. 이때, 각 윈도우의 크기는 서로 같거나 상이할 수 있으며, 필요에 따라 변경하여 적용할 수 있다.
구체적으로, 제1 윈도우(W1), 제2 윈도우(W2) 및 제3 윈도우(W3)의 크기를 각각 10초, 30초 및 40초로 설정한 일 예를 도시한 것이며, 그 고정된 각각의 윈도우를 통해 10초 단위로 쪼개진 스트림 데이터가 시간에 따라 순차적으로 입력된다.
이때, 고정된 윈도우가 복수개 생성됨에 따라, 스트림 데이터의 각 조각들 간 중첩되는 구간이 존재하게 되는데, 복수개의 고정된 윈도우의 종료시점이 현재시간으로 모두 동일하므로, 각 윈도우의 종료시간을 연산할 필요가 없다. 또한, 각 윈도우의 시작시간은 종료시간에서 해당 윈도우의 크기만큼의 시간을 뺀 시간으로 산출하면 되므로, 그 연산이 간편하다.
도 3 및 도 4에는 고정된 윈도우 및 쪼개지는 스트림 데이터의 크기를 한정하여 도시하였으나, 이는 하나의 실시예에 해당할 뿐, 이를 한정하지 않는다.
도 5는 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 방법을 나타내는 순서도로서, 윈도우 제어 장치(100)에서 수행되는 스트림 데이터 처리 방법의 일 예를 나타낸 것이다.
도 5를 참조하면, 윈도우 제어 장치(100)로 적어도 하나의 외부 장치로부터 적어도 하나의 데이터를 스트리밍 형태로 입력받으면(S210), 그 입력되는 스트림 데이터를 저장한다(S230).
그 다음으로, 미리 설정된 크기를 갖는 적어도 하나의 윈도우를 생성하는데(S250), 이때, 적어도 하나의 윈도우 각각은 그 종료시점이 현재 시간으로 모두 동일하게 고정되되, 그 크기는 서로 상이하게 설정될 수 있다.
앞서 설명한 바와 같이, 본 발명은 미리 설정된 크기의 윈도우가 스트림 데이터의 조각들을 시간에 따라 이동하며 각 구간의 데이터들을 처리하는 것이 아니라, 종료시점을 현재 시간으로 고정된 미리 설정된 크기의 윈도우를 생성하여 그 고정된 윈도우에 스트림 데이터의 조각들을 시간에 따라 순차적으로 입력시켜 처리하는 것이다.
이후, 그 고정된 적어도 하나의 윈도우 각각에 스트림 데이터를 미리 설정된 단위로 쪼개어 시간에 따라 순차적으로 입력하고(S270), 그 입력되는 스트림 데이터를 분석 및 연산하여 처리한다(S290).
S290 단계에 의한 처리 결과는 적어도 하나의 윈도우 각각에 대해 개별적으로 저장되어 관리될 수 있다.
도 6은 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 스트리밍 처리부에서 수행되는 동작의 일 예를 나타내는 도면이고, 도 7은 본 발명의 실시예에 따른 타임 슬롯 기반의 윈도우 제어 장치의 스트리밍 처리부에서 수행되는 동작에 의해 필터링 결과가 도출되는 일 예를 나타내는 도면이다.
먼저, 스트리밍 처리부(170)는 연속적으로 흘러들어오는 스트림 데이터를 적어도 하나 이상 입력받으면(S310), 스트리밍 엔진을 기반으로 적어도 하나의 윈도우에 입력되는 스트림 데이터를 분석하여 원하는 특정 조건(검출 조건)의 데이터에 대한 필터링을 수행한다(S330). 예를 들어, 그 특정 조건에 해당하는 데이터가 존재하는지 여부와, 그 데이터의 수를 산출한다.
이때, 특정 조건은 적어도 하나 이상일 수 있으며, 특정 조건이 복수개 설정되는 경우에는 각 조건 마다 슬라이딩 윈도우가 생성되어 동작한다.
그 다음으로, 도 7에 도시된 바와 같이 그 필터링된 결과는 각 조건 마다 생성된 슬라이딩 윈도우, 즉, 적어도 하나의 윈도우 각각에 대해 도출된다(S350).
이와 같이, 스트림 데이터를 따라 윈도우가 슬라이딩 되는 것이 아니라, 윈도우가 고정되어 있고 데이터가 슬라이딩 되면서 입력된다면, 그 연산량이 감소되는 것은 물론, 로직 수립 및 관리가 더욱 용이해질 것이다.
한편, 본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 윈도우 제어 장치 110 : 입력부
130 : 저장부 150 : 윈도우 생성부
170 : 스트리밍 처리부 190 : 제어부

Claims (13)

  1. 타임 슬롯 기반의 윈도우 제어 장치에 있어서,
    적어도 하나의 외부장치로부터 적어도 하나의 데이터를 스트리밍 형태로 입력받는 입력부;
    상기 적어도 하나의 외부장치로부터 입력되는 스트림 데이터를 저장하고, 상기 스트림 데이터를 처리하기 위해 필요한 적어도 하나의 프로세스를 저장하는 저장부;
    서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성하는 윈도우 생성부;
    상기 적어도 하나의 윈도우 각각에 입력되는 스트림 데이터를 분석 및 연산하는 스트리밍 처리부; 및
    상기 적어도 하나의 프로세스를 기반으로, 상기 스트림 데이터를 처리하기 위한 동작을 수행하는 제어부;를 포함하며,
    상기 제어부는,
    상기 적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력되면, 상기 서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성한 후, 상기 스트림 데이터를 상기 적어도 하나의 윈도우 각각에 입력하여 분석 및 연산하도록 제어하며,
    상기 적어도 하나의 윈도우 각각의 종료시점은 모두 동일하기 고정되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 윈도우는,
    현재 시간이 상기 종료시점으로 고정되고, 상기 현재 시간을 기준으로 역으로 설정되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  3. 제2항에 있어서,
    상기 적어도 하나의 윈도우 각각의 시작 시간은,
    상기 현재 시간에서 해당 윈도우의 크기만큼의 시간을 뺀 시간인 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  4. 제1항에 있어서,
    상기 스트리밍 처리부는,
    스트리밍 엔진을 기반으로 상기 적어도 하나의 윈도우 각각에 입력되는 스트림 데이터를 분석하여 기 설정된 검출 조건의 데이터에 대한 필터링을 수행하는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  5. 제4항에 있어서,
    상기 검출 조건은, 적어도 하나 이상 설정되며,
    상기 검출 조건이 복수개인 경우,
    상기 윈도우 생성부는, 상기 적어도 하나의 윈도우를 생성할 시에 상기 복수개의 검출 조건 각각 마다 윈도우를 생성하는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  6. 제5항에 있어서,
    상기 필터링 된 결과는,
    상기 복수개의 검출 조건 각각 마다 생성된 윈도우 각각에 대해 도출되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 장치.
  7. 장치에 의해 수행되는, 타임 슬롯 기반의 윈도우 제어 방법에 있어서,
    적어도 하나의 외부장치로부터 적어도 하나의 데이터가 스트리밍 형태로 입력받는 단계;
    상기 적어도 하나의 외부장치로부터 입력되는 스트림 데이터를 저장하는 단계;
    서로 상이한 크기를 갖는 적어도 하나의 윈도우를 생성하는 단계;
    상기 스트림 데이터를 상기 적어도 하나의 윈도우 각각에 입력하는 단계; 및
    상기 입력되는 스트림 데이터를 분석 및 연산하는 단계를 포함하며,
    상기 적어도 하나의 윈도우 각각의 종료시점은 모두 동일하게 고정되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 윈도우는,
    현재 시간이 상기 종료시점으로 고정되고, 상기 현재 시간을 기준으로 역으로 설정되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 윈도우 각각의 시작 시간은,
    상기 현재 시간에서 해당 윈도우의 크기만큼의 시간을 뺀 시간인 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  10. 제7항에 있어서,
    상기 입력되는 스트림 데이터를 분석 및 연산할 시,
    스트리밍 엔진을 기반으로 상기 적어도 하나의 윈도우 각각에 입력되는 스트림 데이터를 분석하여 기 설정된 검출 조건의 데이터에 대한 필터링을 수행하는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  11. 제10항에 있어서,
    상기 검출 조건은, 적어도 하나 이상 설정되며,
    상기 검출 조건이 복수개인 경우,
    상기 적어도 하나의 윈도우를 생성할 시에 상기 복수개의 검출 조건 각각 마다 윈도우를 생성하는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  12. 제11항에 있어서,
    상기 필터링 된 결과는,
    상기 복수개의 검출 조건 각각 마다 생성된 윈도우 각각에 대해 도출되는 것을 특징으로 하는,
    타임 슬롯 기반의 윈도우 제어 방법.
  13. 컴퓨터와 결합되어, 제7항 내지 제12항 중 어느 한 항에 따른 타임 슬롯 기반의 윈도우 제어 방법을 실행시키기 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020220042005A 2022-02-07 2022-04-05 타임 슬롯 기반의 윈도우 제어 장치 및 방법 KR102404456B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220042005A KR102404456B1 (ko) 2022-02-07 2022-04-05 타임 슬롯 기반의 윈도우 제어 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220015560A KR102387105B1 (ko) 2022-02-07 2022-02-07 스트림 데이터 처리 장치 및 방법
KR1020220042005A KR102404456B1 (ko) 2022-02-07 2022-04-05 타임 슬롯 기반의 윈도우 제어 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220015560A Division KR102387105B1 (ko) 2022-02-07 2022-02-07 스트림 데이터 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102404456B1 true KR102404456B1 (ko) 2022-06-07

Family

ID=81212199

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220015560A KR102387105B1 (ko) 2022-02-07 2022-02-07 스트림 데이터 처리 장치 및 방법
KR1020220042005A KR102404456B1 (ko) 2022-02-07 2022-04-05 타임 슬롯 기반의 윈도우 제어 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020220015560A KR102387105B1 (ko) 2022-02-07 2022-02-07 스트림 데이터 처리 장치 및 방법

Country Status (1)

Country Link
KR (2) KR102387105B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140006321A (ko) * 2012-07-03 2014-01-16 삼성전자주식회사 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법
KR101672097B1 (ko) 2014-10-07 2016-11-03 충남대학교산학협력단 유량 스트림 데이터의 실시간 수집 및 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140006321A (ko) * 2012-07-03 2014-01-16 삼성전자주식회사 데이터 스트림에서 효율적인 다중 연속 집계 질의 처리 장치 및 방법
KR101672097B1 (ko) 2014-10-07 2016-11-03 충남대학교산학협력단 유량 스트림 데이터의 실시간 수집 및 처리 방법

Also Published As

Publication number Publication date
KR102387105B1 (ko) 2022-04-15

Similar Documents

Publication Publication Date Title
US20220124499A1 (en) Wireless network access control method, device, and system
CN107517481B (zh) 一种基站负载均衡的管理方法及系统
KR101235644B1 (ko) 이기종 네트워크 기반 데이터 동시 전송 서비스를 지원하는 장치
WO2021163590A4 (en) Apparatus and methods for generating and distributing policy in wireless networks
Liu et al. A fuzzy-clustering based approach for MADM handover in 5G ultra-dense networks
US20190059021A1 (en) Load balancing of data traffic in a communications network
KR102205805B1 (ko) 이동 통신 시스템에서 네트워크 최적화 프로세스 자동 수행 장치 및 방법
KR102404456B1 (ko) 타임 슬롯 기반의 윈도우 제어 장치 및 방법
CN113869521A (zh) 构建预测模型的方法、装置、计算设备和存储介质
CN105165068A (zh) 实体及操作无线局域网的实体的方法
EP2790440B1 (en) Self optimization of layer 3 filtering in wireless networks
Zhu et al. Dynamic channel selection and transmission scheduling for cognitive radio networks
EP3259932B1 (en) Client-side dynamic frequency selection check
CN104317205A (zh) 终端控制方法和系统
CN111093291B (zh) Tdma自组网及其构建方法、节点、存储介质
JP2017163311A (ja) 制御装置、その制御装置を備えた無線通信システム、コンピュータに実行させるためのプログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体
Reyna et al. An improvement of reinforcement learning approach for permutation of flow-shop scheduling problems
CN112383950B (zh) 信道选择方法、装置、终端设备及可读存储介质
Mathonsi et al. Intelligent intersystem handover delay reduction algorithm for heterogeneous wireless networks
TW201431417A (zh) 行動設備及其頻道掃描方法
KR20220044635A (ko) 네트워크 스위칭 장치 및 네트워크 스위칭 장치의 동작 방법
KR101079655B1 (ko) 핸드오버 장치와 방법
Gill et al. A New Fuzzy Simulation Model for Vertical Handoff in Heterogeneous Networks
WO2021215976A1 (en) Managing a node in a communication network
CN113543282A (zh) 一种无线漫游方法及系统

Legal Events

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