KR102163323B1 - 스트림리즈닝 시스템 - Google Patents
스트림리즈닝 시스템 Download PDFInfo
- Publication number
- KR102163323B1 KR102163323B1 KR1020180076128A KR20180076128A KR102163323B1 KR 102163323 B1 KR102163323 B1 KR 102163323B1 KR 1020180076128 A KR1020180076128 A KR 1020180076128A KR 20180076128 A KR20180076128 A KR 20180076128A KR 102163323 B1 KR102163323 B1 KR 102163323B1
- Authority
- KR
- South Korea
- Prior art keywords
- information
- stream
- reasoning
- query
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 230000002085 persistent effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 34
- 230000008569 process Effects 0.000 abstract description 21
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000002474 experimental method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002341 toxic gas Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명의 실시예들은 입력부 및 추론부를 포함하여 구성되는 스트림리즈닝 시스템을 제시하고 미들웨어로 구현될 수 있다. 또한, 실시간 분산 메시징 시스템, 실시간 분산 처리 시스템 또는 데이터 파이프라인을 이용한 스트림리즈닝 시스템을 제시한다.
이에, 본 발명의 실시예들은 대용량의 스트림정보를 실시간으로 지능적으로 처리할 수 있다.
이에, 본 발명의 실시예들은 대용량의 스트림정보를 실시간으로 지능적으로 처리할 수 있다.
Description
본 발명의 실시예들은 스트림리즈닝 시스템에 관한 것으로서, 더욱 상세하게는, 대규모의 스트림 빅데이터를 지능적으로 처리하기 위한 스트림리즈닝 시스템 및 방법에 관한 것이다.
스마트시티(Smart City)는 도시민의 삶의 질을 향상시키기 위해서 스마트 서비스들을 언제, 어디서나, 어느 때, 어떠한 디바이스를 통해서도 도시민에게 제공하기 위해서 도시에 정보통신기술이 녹아져 있는 미래형 도시이다. (비특허문헌 1)
가트너(Gartner)는 2016년 스마트 시티에서 16억 대의 사물인터넷 기기(Connected Things)가 사용될 것으로 전망했다. 이는 2015년보다 39% 증가한 수치다. (비특허문헌 2)
사물인터넷 (IoT: Internet of Thing) 기술은 실세계에 존재하는 사물 (Physical Things) 및 사이버환경에 존재하는 사물 (Virtual Things)들이 인터넷을 통하여 서로 연결 되고 이러한 물리공간과 가상공간의 사물, 데이터, 사람들이 연동을 통하여 다양한 서비스를 제공할 수 있는 미래 인터넷 인프라 기술이다. (비특허문헌 3)
스마트시티에서 스마트서비스를 구현하기 위해서는 IoT의 스마트기기로부터 전송되는 엄청난 양의 빅데이터를 분석하여 정확한 상황인식(situation-aware)을 통해 판단과정을 거쳐서, 도시민에게 지능적인 서비스를 제공하는 것이 필요하다. 이때, 끊임없이 발생하는 빅데이터를 실시간으로 처리하여 상황인식을 하기 위해서는 스트림리즈닝(stream reasoning) 기술이 반드시 필요하다.
스트림리즈닝은 최근에 발생한 분야로서, “매우 많은 수의 동시 사용자들이 사용하는 의사 결정 시스템을 지원하기 위한 목적으로, 다수의 이질적이며 불량 데이터가 섞인 거대한 규모의 빅데이터 스트림을 실시간으로 처리하는 논리적 추론(logical reasoning)”을 말한다. (비특허문헌 4)
스트림리즈닝과 관련된 종래기술을 살펴보면 다음과 같다.
비특허문헌 5는 스트림리즈닝의 높은 전체처리량을 제공하기 위하여 컴퓨터 클러스터와 Yahoo S4 프레임워크를 활용한 병렬 처리 방법론을 제시하였다. 또한 스트림상에서 로우레벨 술어(predicate)의 집합을 제시하고 이러한 술어를 이용하여 RDFS 리즈닝의 인코딩과 C-SPARQL 쿼리 응답을 제시하였다.
비특허문헌 6은 대규모 실시간 시맨틱 처리 프레임워크를 제안하고 IoT 애플리케이션을 위한 탄력적인 분산 스트림 엔진을 제안하였다. 제안된 엔진은 분산 컴퓨팅 플랫폼 SPARK를 기반으로 모든 종류의 IoT 애플리케이션을 지 원하며 홈 환경 모니터링 애플리케이션의 사례를 들었다. 서로 다른 타입의 IoT 애플리케이션을 갖는 대규모 센서 스트림을 위해서 확장될 수 있음을 실험을 통해 보여주었다.
그러나, 종래기술은 빠르게 변하고, 거대한 양의 스트림 빅데이터를 이용하여 실시간이며, 연속적으로 스트림리즈닝을 수행하는 데에 어려움이 있다.
[1] Y. W. Lee, "Smart-city", European Union Parliament Seminar, May 2013, [Online], Retrieved June 2016 from http://www.europarl.europa.eu/document/activities/cont/20130 5/20130514ATT66084/20130514ATT66084EN.pdf.
[2] R. Meulen, V. Woods, Gartner, "Gartner Says Smart Cities Will Use 1.6 Billion Connected Things in 2016", Gartner Newsroom, 2015, [Online], Retrieved June 2016 from http://www.gartner.com/newsroom/id/3175418.
[3] Karen Rose, Scott Eldridge, Lyman Chapin, "The Internet of Things: An Overview", Report of Internet Society, 2015.
[4] E. D. Valle, S. Ceri, F. v. Harmelen, D. Fensel, "It's a Streaming World! Reasoning upon Rapidly Changing Information", IEEE Intelligent Systems, Vol. 24, pp. 83- 89, 2009
[5] J. Hoeksema, S. Kotoulas, "High-performance Distributed Stream Reasoning using S4", Proc. The First International Workshop on Ordering and Reasoning (OrdRing 2011), pp. 1-12, 2011
[6] X. Chen, H. Chen, N. Zhang, J. Huang, W. Zhang, "Large-Scale Real-Time Semantic Processing Framework for Internet of Things", International Journal of Distributed Sensor Networks, Vol. 11, No. 10, pp. 1-11, 2015
전술한 문제점을 해결하기 위하여, 본 발명의 실시예들은 스트림정보를 수신하는 입력부 및 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 추론부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템을 제공하는데 그 목적이 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예는 스트림정보를 수신하는 입력부; 및 상기 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 추론부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템을 제공한다.
이상과 같이, 본 발명의 실시예들은 스트림리즈닝 시스템을 제시함으로써, 대용량의 스트림정보를 실시간으로 처리할 수 있고 미들웨어로 구현될 수 있으므로 높은 확장성을 가진다.
또한, 본 발명의 실시예들은 실시간 분산 메시징 시스템과 실시간 분산 처리 시스템을 이용하므로 대용량의 스트림정보를 실시간으로 정확하게 처리할 수 있다.
또한, 본 발명의 실시예들은 데이터의 종류에 따라 복수개의 파이프라인으로 구성될 수 있어서 스트림정보를 빠르게 처리할 수 있다.
또한, 본 발명의 실시예들은 특정시간마다 추론정보를 저장하는 저장공간을 구비하므로 연속질의에 빠르게 대처할 수 있다.
이상의 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있다.
도 1은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 2는 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 3은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 4는 일 실시예에 따른 스마트시티에 대한 OWL 도메인 온톨로지의 일례를 예시적으로 나타낸 도면이다.
도 5는 일 실시예에 따른 스트림리즈닝 방법의 일례를 예시적으로 나타낸 순서도이다.
도 6a 내지 도 6e는 스트림리즈닝 시스템을 구현하여 실험한 일례를 예시적으로 나타낸 도면이다.
도 2는 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 3은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 4는 일 실시예에 따른 스마트시티에 대한 OWL 도메인 온톨로지의 일례를 예시적으로 나타낸 도면이다.
도 5는 일 실시예에 따른 스트림리즈닝 방법의 일례를 예시적으로 나타낸 순서도이다.
도 6a 내지 도 6e는 스트림리즈닝 시스템을 구현하여 실험한 일례를 예시적으로 나타낸 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예들에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예들에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 본 실시예들은 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
이하에 첨부되는 도면들은 본 발명의 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
이하의 실시예들에서 개시되는 스트림리즈닝 시스템에 대해 각 도면을 참조하여 보다 구체적으로 살펴보기로 한다.
도 1은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 1를 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 센서(200)로부터 스트림정보를 수신할 수 있고 사용자단말 또는 외부시스템(300)으로부터 질의정보를 수신하여 사용자단말 또는 외부시스템(300)에게 질의 결과를 송신할 수 있다.
센서(200)는 가스, 이산화탄소, 온도, 사용자의 위치 등을 감지할 수 있고 통신 네트워크를 통해 감지된 값에 해당하는 스트림정보를 스트림리즈닝 시스템(100)에 송신할 수 있다.
여기에서, 통신 네트워크는 유선 또는 무선 통신망을 포함하는 넓은 개념의 네트워크를 의미할 수 있다. 이하, 마찬가지이다.
사용자단말 또는 외부시스템(300)은 스트림리즈닝 시스템(100)에 현재 화재가 발생했는지, 유독가스가 누출됐는지 등과 같은 상황정보나 컨텍스트정보에 대한 질의정보를 통신 네트워크를 통해 송신할 수 있고 질의정보에 대한 질의 결과를 스트림리즈닝 시스템(100)로부터 수신할 수 있다.
여기에서, 사용자단말(300)은 노트북, 휴대폰, 스마트 폰(2G/3G/4G/LET, smart phone), PMP(Portable Media Player), PDA(Personal Digital Assistant) 및 타블렛 PC(Tablet PC) 중 어느 하나일 수 있다.
스트림리즈닝 시스템(100)은 입력부(110), 추론부(120) 및 관리부(130)를 포함하여 구성될 수 있다.
입력부(110)는 센서(200)로부터 스트림정보를 수신하여 추론부(120)로 스트림정보를 실시간으로 전송할 수 있다. 여기에서, 스트림정보는 대용량이고 실시간 처리가 필요하므로 입력부(110)는 스트림정보의 양에 따른 확장성과 낮은 전송 지연시간이 요구된다.
따라서, 입력부(110)는 실시간 분산 메시징 시스템으로 구현되는 것이 바람직하다. 여기에서, 메시징 시스템은 컴퓨터 시스템간에 의미적으로 정확한 메시지를 보낼 수 있게 해주는 표준으로서 서비스 제공자, 서비스 소비자 및/또는 브로커로 구성되어 통신 구조가 단순하다. 구체적으로, 메시징 시스템에서 서비스 제공자는 브로커에게 메시지를 송신하여 브로커의 큐에 메시지를 저장할 수 있고 서비스 소비자는 브로커의 큐에 저장된 메시지를 가져올 수 있다.
또한 여기에서, 실시간 분산 메시징 시스템이란 실시간으로 메시지를 보내기 위한 분산 메시징 시스템으로서 실시간으로 메시지를 빠르게 전송할 수 있도록 통신 방법이 단순하고 브로커가 수신하는 대용량의 메시지가 누락하지 않도록 메시지를 여러 대의 서버로 분산시킬 수 있는 메시징 시스템을 의미할 수 있다.
입력부(110)는 대용량의 데이터 스트림을 실시간으로 전송받기 위하여 실시간 분산 메시징 시스템의 일종인 Kafka를 이용할 수 있다. Kafka 는 대용량 메시지 처리에 특화된 메시징 시스템으로 실시간으로 스트림정보를 전송할 수 있다. 그리고 확장성(scale-out)과 고가용성(high availability)을 위하여 클러스터로 동작되는 점은 스마트 시티에서 발생하는 대규모 데이터를 처리하기에 용이하다. 또한, 스트림 리즈닝에서 필요한 대용량 실시간 전송 및 낮은 전송 지연시간을 만족하고, 기존 메시징 프로토콜인 AMQP 프로토콜 이나 JMS API 등에 비해서 자체의 가벼운 프로토콜을 사용하여 IoT 디바이스와 SOUL과의 스트림정보 전송에도 적합하다.
추론부(120)는 후술할 변환부(122) 및 분석부(126)를 포함할 수 있고 입력부(110)로부터 전달받은 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 여기에서, 스트림정보는 대용량이고 실시간 처리가 필요하므로 추론부(120)는 스트림정보량에 따른 높은 확장성과 높은 처리량 그리고, 낮은 처리 지연시간이 요구된다.
따라서, 추론부(120)는 실시간 분산 처리 시스템으로 구현되는 것이 바람직하다. 여기에서, 실시간 시스템은 제한된 시간 안에 작업을 처리할 수 있도록 하는 시스템을 의미할 수 있고 실시간 분산 처리 시스템은 제한된 시간 내에 대용량의 정보를 처리하기 위해 네트워크로 연결된 서로 다른 컴퓨터간에 서로 통신하고 메시지를 전달하여 작업을 조정하고 수행할 수 있는 시스템을 의미할 수 있다.
또한, 실시간 분산 처리 시스템은 대용량의 정보를 빠르게 처리하기 위해 데이터의 종류에 따라 복수개의 데이터 파이프라인을 구성하는 기능을 제공할 수 있어야 한다. 여기에서, 데이터 파이프라인은 하나의 데이터 처리 요소에 의해 출력된 데이터가 다음의 데이터 처리 요소의 입력 데이터가 되도록 순차적으로 연결된 데이터 처리 요소의 집합을 의미할 수 있다.
추론부(120)는 대용량의 데이터 스트림을 실시간으로 처리하기 위하여 실시간 분산 처리 시스템의 일종인 Apache Storm을 이용할 수 있다. Apache Storm은 토폴로지(topology)를 이용하여 입력스트림과 입력스트림을 처리하는 처리 로직을 포함한다. 2가지 종류의 컴포넌트인 스파우트 (spout)와 볼트(bolt)가 있는데, 스파우트는 외부 소스로부터 토폴로지로 데이터 스트림을 생성해주는 역할을 하고, 볼트는 토폴로지의 모든 처리 작업을 수행하며, 스트림을 다음 단계에서 처리할 데이터 스트림을 생성한다. 또한 원하는 데이터 스트림을 얻기 위해, 볼트 단위로 처리 작업을 분리해서 여러 개의 볼트를 배치할 수 있다. 이러한 스톰의 구조와 프로세스는 스트림 리즈닝의 실시간 처리와 추론 메커니즘에 매우 효율적이다.
관리부(130)는 추론부(120)에 의해 생성된 추론정보를 전달받고 사용자단말 또는 외부시스템(300)으로부터 추론정보에 대한 질의정보를 수신하며 질의 결과에 해당하는 추론정보를 사용자단말 또는 외부시스템(300)에게 송신할 수 있다.
또한, 관리부(130)는 사용자단말 또는 외부시스템(300)에서 등록된 질의정보를 스트림리즈닝 시스템에서 연속적으로 처리하여 스트림리즈닝의 결과인 추론정보를 반환할 수 있다. 사용자단말 또는 외부시스템(300) 이 연속질의정보를 등록하였을 때, 관리부(130)는 연속적으로 질의의 결과를 반환할 수 있어야 하며, 이것을 continuous query이라고 한다.
도 2는 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 2를 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 입력부(110), 변환부(122), 분석부(126), 관리부(130), 데이터베이스(140) 및 서비스 브로커(150)를 포함하여 구성될 수 있다.
또한, 스트림리즈닝 시스템(100)은 스마트시티 시스템(400)의 미들웨어로 구성될 수 있다.
여기에서, 스마트시티 시스템(400)은 스마트시티의 IoT 디바이스를 비롯한 수많은 인프라를 지능적으로 관리하고, 스마트시티의 다양한 스마트 애플리케이션을 도시민에게 제공하기 위한 3 티어 아키텍처로서 3티어는 스마트시티 포탈 티어, 스마트시티 미들웨어 티어, 스마트시티 인프라스트럭쳐 티어로 구성되고, 이 중 스마트시티 미들웨어 티어는 스마트시티 인프라스트럭쳐를 통해 들어오는 다양한 데이터를 지능적으로 처리하여, 스마트시티 포탈 티어를 통해 스마트시티 서비스를 제공할 수 있다.
또한 여기에서, 미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어 또는 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어를 의미한다.
공통 디바이스 인터페이스 레이어는 인프라 영역의 센서로부터 데이터를 받아서 스마트 컴퓨팅 레이어로 전달하는 역할을 수행할 수 있고 다양한 종류의 센서와 통신 프로토콜을 지원하고 이기종의 USN에 대해 공통 인터페이스를 제공할 수 있다.
스마트 컴퓨팅 레이어는 스트림리즈닝의 중요 레이어로서 변환부(122), 분석부(126), 관리부(130) 및 데이터베이스(140)를 포함하여 구성될 수 있다. 스마트시티 미들웨어는 스트림리즈닝을 수행하기 위하여 로우 데이터에서 RDF/OWL 포맷으로 변경하고 추론할 수 있다. 그리고 추론된 정보를 저장하며 컨텍스트에 대한 연속쿼리를 지원할 수 있다.
변환부(122)는 공통 디바이스 인터페이스 레이어로부터 로우 데이터(센서 데이터, 스트림정보)를 전달받고, 필터 정책에 따라 필터링을 수행하고, 분석부(126)에서 스트림리즈닝이 가능하도록 로우 데이터를 컨텍스트 온톨로지 모델을 따르는 RDF/OWL과 같은 온톨로지정보로 변경할 수 있다.
여기에서, 온톨로지란 사람들이 세상에 대하여 보고 듣고 느끼고 생각하는 것에 대하여 서로 간의 토론을 통하여 합의를 이룬 바를, 개념적이고 컴퓨터에서 다룰 수 있는 형태로 표현한 모델로, 개념의 타입이나 사용상의 제약조건들을 명시적으로 정의한 기술을 의미한다.
분석부(126)는 미리 정의된 룰에 따라 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 그리고 스트림리즈닝의 성능 향상을 위해 유비쿼터스 코어 컴퓨팅 레이어에서의 클라우드 컴퓨팅 기술을 활용하여 분산 처리를 지원할 수 있다. 클라우드 컴퓨팅 기술은 OpenNebula와 Haizea를 기반으로 구현될 수 있다.
저장부(140)는 컨텍스트 온톨로지 모델, 컨텍스트 인스턴스, 룰, 그리고 추론된 컨텍스트(추론정보)를 저장할 수 있다.
관리부(130)는 유비쿼터스 코어 컴퓨팅 레이어와의 인터페이스 역할을 수행할 수 있고, 유비쿼터스 코어 컴퓨팅 레이어의 서비스 브로커(150)로부터의 쿼리를 해석하고, 쿼리를 수행할 수 있다.
컨텍스트 온톨로지 모델과 룰 파일은 시스템이 초기화 될 때 메모리에 미리 로드가 되고 컨텍스트 인스턴스는 런타임에 메모리에 로드될 수 있다.
이와 같이, 스트림리즈닝 시스템(100)은 미들웨어로 구현되므로 이기종 시스템에서도 작동될 수 있다.
도 3은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 3을 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 입력부(110), 변환부(122), 분석부(126), 관리부(130), 데이터베이스(140) 및 서비스 브로커(150)를 포함하여 구성될 수 있고 스트림리즈닝 시스템(100)은 도 2에서와 마찬가지로 미들웨어로 구성될 수 있다.
공통 디바이스 인터페이스 레이어 상에 있는 입력부(110)는 Kafka 브로커(112)를 포함하여 구성될 수 있다.
Kafka 브로커(112)는 센서(200)로부터 수신한 스트림정보를 저장하는 버퍼 기능을 수행하고 스마트 컴퓨팅 레이어의 변환부(122)에 스트림정보를 전송할 수 있다.
이와 같이, 입력부(110)는 Kafka와 같은 실시간 분산 메시징 시스템을 이용하여 메시지를 전송하므로 대용량의 스트림정보를 지연 및 손실 없이 효과적으로 전송할 수 있다.
또한, Kafka 브로커(112)는 수신한 스트림정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 변환부(122)에 전송할 수도 있다.
이와 같이, Kafka 브로커(112)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 스트림정보를 실시간으로 빠르게 처리할 수 있다.
변환부(122)는 Kafka 스파우트(123)와 변환부 Bolt(124)로 구성될 수 있다.
Kafka 스파우트(123)는 Kafka Consumer(전술한 서비스 소비자)를 Apache Storm에 구현한 구현체로써, 입력부(110)에서 전송되는 스트림정보를 받아들일 수 있다.
Kafka 스파우트(123)는 수신한 스트림정보의 종류에 따라 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 변환부 Bolt(124)로 전송할 수 있다.
변환부 Bolt(124)는 전송받은 스트림정보를 추론이 가능하도록 OWL 온톨로지 모델을 이용하여 OWL 온톨로지 인스턴스로 변환할 수 있다.
이와 관련하여, 도 4는 일 실시예에 따른 스마트시티에 대한 OWL 도메인 온톨로지의 일례를 예시적으로 나타낸 도면이다.
또한, 변환부 Bolt(124)는 스트림정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 분석부(126)에 전송할 수도 있다.
이와 같이, 변환부 Bolt(124)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 스트림정보를 실시간으로 빠르게 처리할 수 있다.
분석부(126)는 OWL 온토롤지 인스턴스와 사용자 정의 룰을 이용하여 추론을 수행하여 추론정보를 생성할 수 있고, 분석부 Bolt(127)를 포함하여 구성될 수 있다.
분석부 Bolt(127)는 Apache Jena Framework를 이용하여 OWL 추론을 수행할 수 있고, OWL Reasoner는 Pellet을 이용할 수 있다. 여기에서 사용되는 사용자 정의 룰은 사용자의 입력을 받아 run-time 중에 동적으로 변경이 가능하도록 구성될 수 있다.
관리부(130)는 분석부(126)에서 수행된 추론결과를 데이터베이스(140)에 전송하고, 상위 레이어인 유비쿼터스 코어 컴퓨팅 레이어의 서비스 브로커(150)와의 인터페이스 기능을 수행할 수 있다.
각 노드들의 Persistentaggregate(132)는 추론정보를 State(134)로 전달할 수 있다. 또한, Persistentaggregate(132)는 특정시간 동안의 추론정보를 모았다가 한꺼번에 State(134)로 전달하거나 특정시간 동안의 추론정보를 합산 또는 병합하여 State(134)로 전달할 수도 있고 특정시간 동안 받은 추론정보 중에서 최근의 추론정보만을 State(134)로 전달할 수도 있다.
State(134)는 Distributed RPC(DRPC, Distributed Remote Procedure Call)에서 전달되는 연속질의를 처리하기 위해서 상태를 저장하기 위한 메모리 저장소일 수 있다. 스트림리즈닝에서 연속되는 추론의 결과에 연속질의를 수행하기 위해서는 각각의 순간에 대한 상태가 저장되어 있어야 한다. 흘러가는 스트림에서 각각의 순간에 대한 상태에 질의를 하기 위해 윈도우 기법을 사용하여 상태를 유지할 수 있다. 여기에서, 윈도우 기법이란 특정 단위 시간 동안의 정보를 다음 단위 시간 경과 전까지 유지하는 것을 의미할 수 있다.
이와 같이, 관리부(130)는 데이터베이스(140)와 별도로 State(134)를 구비함으로써 연속질의를 빠르게 처리할 수 있다.
한편, Apache Storm에서 연속질의를 구현하기 위해서 Storm의 DRPC 기법을 이용할 수 있다.
DRPC 서버(136)는 Storm에서 사용하는 Storm의 topology에 RPC(Remote Procedure Call)를 수행할 수 있게 해주는 서버로써, 서비스 브로커(150)로부터 명령을 받고, Aggregate(139)로부터 처리된 결과를 받아서 서비스 브로커(150)에 반환할 수 있다.
DRPC 스파우트(137)는 DRPC 서버(136)로부터 받은 질의정보를 State 쿼리(138)에 전달할 수 있다. 또한, DRPC 스파우트(137)는 질의정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 질의정보를 State 쿼리(138)에 전송할 수도 있다.
이와 같이, DRPC 스파우트(137)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 질의정보를 실시간으로 빠르게 처리할 수 있다.
State 쿼리(138)는 전달받은 질의정보를 이용하여 전술한 State(134)에 윈도우상의 현 상태 값에 대해 질의를 하고, 질의에 대한 결과정보(추론정보)를 받아서 Aggregate(139)에 전달할 수 있다.
Aggregate(139)는 전달받은 결과값을 DRPC 서버(136)에 전달할 수 있다. 또한, Aggregate(139)는 연속쿼리에 대한 여러 개의 결과값을 병합하거나 합산하여 DRPC 서버(136)에 전달하거나 최근의 결과값 만을 DRPC 서버(136)에 전달할 수도 있다.
데이터베이스(140)는 State의 메모리에 적재되었던 상태 값들의 영속적인 저장을 위한 저장소이며, 각 순간에 대한 추론된 온톨로지 인스턴스가 적재될 수 있다.
서비스 브로커(150)는 유비쿼터스 코어 컴퓨팅 레이어에 속해 있고, 스마트 컴퓨팅 레이어와의 인터페이스 역할을 수행할 수 있다. 스마트시티 애플리케이션은 필요한 상황정보를 획득하기 위해서 서비스 브로커(150)에게 연속질의를 요청하고, 그 결과값을 받을 수 있다.
도 5는 일 실시예에 따른 스트림리즈닝 방법의 일례를 예시적으로 나타낸 순서도이다.
도 5를 참조하면, 일 실시예에 따른 스트림리즈닝 방법(500)은 입력단계(S510), 변환단계(S520), 분석단계(S530) 및 관리단계(S540)를 포함할 수 있다.
입력단계(S510)에서, 스트림리즈닝 시스템(100)은 센서(200)로부터 스트림정보를 수신할 수 있다.
변환단계(S520)에서, 스트림리즈닝 시스템(100)은 스트림정보를 전달받고, 필터 정책에 따라 필터링을 수행하고, Context Analyzer에서 스트림리즈닝이 가능하도록 로우 데이터를 컨텍스트 온톨로지 모델을 따르는 RDF/OWL과 같은 온톨로지정보로 변경할 수 있다.
분석단계(S530)에서, 스트림리즈닝 시스템(100)은 미리 정의된 룰에 따라 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 그리고 스트림리즈닝의 성능 향상을 위해 유비쿼터스 코어 컴퓨팅 레이어에서의 클라우드 컴퓨팅 기술을 활용하여 분산 처리를 지원할 수 있다. 클라우드 컴퓨팅 기술은 OpenNebula와 Haizea를 기반으로 구현될 수 있다.
관리단계(S540)에서, 스트림리즈닝 시스템(100)은 추론정보를 전달받고 사용자단말 또는 외부시스템(300)으로부터 추론정보에 대한 질의정보를 수신하며 질의 결과에 해당하는 추론정보를 사용자단말 또는 외부시스템(300)에게 송신할 수 있다.
도 6a 내지 도 6e는 스트림리즈닝 시스템을 구현하여 실험한 일례를 예시적으로 나타낸 도면이다.
도 6a 및 도 6b를 참조하면, 분산 환경에서의 스트림 리즈닝을 수행하기 위한 실험에 사용된 클러스터는 총 16대이고 실험에 사용한 클러스터 노드의 사양(도 6a) 및 클러스터 환경(도 6b)를 알 수 있다.
스마트시티에서 발생하는 대용량 스트림정보를 발생시키기 위하여 스트림 데이터 생성기를 구현하여 이용하였다. 이 실험에서는 1,000,000건의 센서 데이터를 발생시키고, 스트림 데이터 생성기에서 생성된 데이터의 전 송 속도를 변경하면서 처리시간, 초당 처리량 등을 측정하였다.
스트림리즈닝은 실시간 처리 시스템이기 때문에 일반적인 배치(batch) 데이터 처리 실험과 똑같은 방법으로는 평가가 어렵다. 스트림리즈닝 시스템을 평가하기 위해서 스트림 데이터의 개수를 고정하고, 센서 데이터 전송시간에 따른 초당 센서 데이터 전송량을 측정하였다. 측정된 초당 센서 데이터 전송량을 기반으로 전체 처리시간과, 전체 초당 처리량을 측정하였다. 각각의 실험 결과는 10번을 측정하고, 최소값과 최대값을 제외하고 평균을 낸 결과만을 데이터로 이용하였다.
도 6c 내지 도 6e는 4노드에서 12노드까지 노드 개수를 늘리면서 실험한 결과를 나타낸다. 1노드에서 3노드까지는 메모리 부족으로 성능측정을 할 수 없었다.
도 6c는 1,000,000개의 센서 스트림정보 전체를 스트림으로 전송하였을 때, 초당 센서 스트림 데이터의 전송량을 나타낸 도면이다. 고정된 개수의 데이터를 시간을 늘려감에 따라 보내기 때문에 초당 전송량은 점점 줄어드는 반비례 관계임을 확인할 수 있다.
도 6d는 도 6c의 Y축으로 사용하였던 초당 센서 스트림 데이터의 전송량에 따른 전체 처리시간을 나타낸 도면이다. 4개의 노드와 6개의 노드를 이용하였을 때, 결과가 상당히 불안정하게 나온 것을 확인할 수 있다. 8 개의 노드, 10개의 노드에서는 초당 전송량이 약 10,000 인 경우에 처리 시간이 가장 적게 걸렸으며, 그 이후로는 처리 시간이 작지만 점점 늘어나는 것을 확인할 수 있다. 12개의 노드를 이용하였을 경우에는 초당 전송량이 약 11,000을 넘을 경우에도 처리 시간이 줄어들었다. 이 결과로, 본 실험 시스템의 최대 처리 능력은 10개의 노드인 경우에 약 초당 10,000개의 스트림 데이터를 처리할 수 있고, 노드를 더 늘리는 경우에는 시간이 줄어들 것이라고 추론할 수 있다.
도 6e는 초당 센서 스트림 데이터의 전송량에 따른 초당 전체 처리량을 나타낸 도면이다. 4개의 노드를 이용하였을 경우에 초당 5,000개의 데이터를 처리할 수 있는 것을 확인할 수 있으며, 6개의 노드를 이용하였을 경우에 초당 6,000개의 데이터를 처리할 수 있는 것을 확인 할 수 있다. 8개의 노드와 10개의 노드를 이용하였을 때, 초당 전송량이 증가함에 따라 초당 처리량이 비례하여 증가하였고, 초당 센서 스트림 데이터의 전송량이 10,000 인 경우에 초당 전체 처리량이 가장 높은 것을 확인 할 수 있으며, 그 이후로는 초당 처리량이 점점 낮아지는 것을 확인할 수 있다. 12개의 노드를 이용하였을 경우, 10,000이후에도 증가하는 것을 볼 수 있다. 이 결과로, 도 6d의 결론과 동일하게, 본 실험 시스템에서 노드 10개를 이용하였을 때, 최대 처리 능력은 약 초당 10,000개의 스 트림 데이터를 처리할 수 있다. 또한, 노드가 증가됨에 따라 초당 처리량이 증가됨을 추론할 수 있다.
이상에서와 같이, 본 출원의 바람직한 실시예 들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 스트림리즈닝 시스템
110 : 입력부 120 : 추론부
122 : 변환부 126 : 분석부
130 : 관리부 140 : 데이터베이스
150 : 서비스 브로커
200 : 센서 300 : 사용자단말 또는 외부시스템
110 : 입력부 120 : 추론부
122 : 변환부 126 : 분석부
130 : 관리부 140 : 데이터베이스
150 : 서비스 브로커
200 : 센서 300 : 사용자단말 또는 외부시스템
Claims (9)
- 이기종의 센서에 대해 공통 인터페이스를 제공하며 스트림정보를 수신하는 공통 디바이스 인터페이스 레이어, 상기 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 스마트 컴퓨팅 레이어, 질의를 전송하고 추론정보를 수신하는 유비쿼터스 코어 컴퓨팅 레이어를 포함하여 구성되고,
상기 스마트 컴퓨팅 레이어는,
상기 스트림정보를 온톨로지정보로 변환하는 변환부;
상기 온톨로지정보 및 사용자에 의해 정의된 룰을 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 분석부; 및
추론정보에 대한 질의를 수신하고 상기 생성된 추론정보를 유비쿼터스 코어 컴퓨팅 레이어로 송신하는 관리부를 포함하며,
상기 관리부는,
특정시간 동안의 추론정보를 합산 또는 병합하여 전달하는 지속수집부(Persistentaggregate), 상기 지속수집부로부터 전송된 추론정보를 데이터베이스에 저장하고 윈도우에 의한 상태를 저장하는 스테이트부(state), 유비쿼터스 코어 컴퓨팅 레이어로부터 질의를 받아 처리된 결과를 반환하는 프로시저서버, 상기 프로시저서버로부터 받은 질의정보를 전달하는 스파우트, 전달받은 질의정보에 대응하는 윈도우상의 상태값에 대해 상기 스테이트부에 질의를 하고 그 결과값을 전달하는 스테이트쿼리부, 복수 개의 결과값을 병합하여 상기 프로시저서버에 전송하는 수집부(Aggregate)를 포함하는 스트림리즈닝 시스템.
- 삭제
- 제1항에 있어서,
상기 룰은 동적으로 변경이 가능한 것을 특징으로 하는 스트림리즈닝 시스템.
- 제1항에 있어서,
상기 변환부 및 상기 분석부는 데이터의 종류에 따라 복수개의 데이터 파이프라인으로 구성되는 것을 특징으로 하는 스트림리즈닝 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 제 1항에 있어서,
상기 스트림리즈닝 시스템은 미들웨어에 해당하는 것을 특징으로 하는 스트림리즈닝 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180076128A KR102163323B1 (ko) | 2018-06-29 | 2018-06-29 | 스트림리즈닝 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180076128A KR102163323B1 (ko) | 2018-06-29 | 2018-06-29 | 스트림리즈닝 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200010659A KR20200010659A (ko) | 2020-01-31 |
KR102163323B1 true KR102163323B1 (ko) | 2020-10-08 |
Family
ID=69369433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180076128A KR102163323B1 (ko) | 2018-06-29 | 2018-06-29 | 스트림리즈닝 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102163323B1 (ko) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101248192B1 (ko) * | 2011-02-24 | 2013-04-03 | 주식회사 솔트룩스 | 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법 |
KR102091240B1 (ko) * | 2016-11-23 | 2020-03-20 | 한국전자통신연구원 | 결정적 및 비결정적 지식 처리의 융합을 위한 데이터 처리 장치 및 방법 |
-
2018
- 2018-06-29 KR KR1020180076128A patent/KR102163323B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
An approach for Real-time Stream Reasoning for the Internet of Things(2017) |
스트림-리즈닝을 위한 실시간 사물인터넷 빅-데이터 처리(2017.06.) |
Also Published As
Publication number | Publication date |
---|---|
KR20200010659A (ko) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581932B2 (en) | Network-based dynamic data management | |
JP5360457B2 (ja) | 分散ディレクトリサーバ、分散ディレクトリシステム、分散ディレクトリ方法、およびプログラム | |
Xu et al. | Eaaas: Edge analytics as a service | |
KR20110106765A (ko) | 분산 연산 기법을 이용한 유비쿼터스 시스템용 미들웨어 장치 | |
Delicato et al. | Wireless sensor networks as a service | |
Huang et al. | A survey on fog computing | |
Jung et al. | Cloud computing platform based real-time processing for stream reasoning | |
Kim et al. | Cost modeling for analyzing network performance of IoT protocols in blockchain-based IoT | |
JP5818263B2 (ja) | データの分散管理システム及び装置及び方法及びプログラム | |
Rao | Multimedia based intelligent content networking for future internet | |
CN101741877B (zh) | 媒体资源的操作方法、系统和设备 | |
KR102163323B1 (ko) | 스트림리즈닝 시스템 | |
Jung et al. | Processing IoT Data with Cloud Computing for Smart Cities. | |
Hossain et al. | A biologically inspired framework for multimedia service management in a ubiquitous environment | |
CN104243560A (zh) | 移动设备上的web服务系统 | |
Xiao et al. | Edge-based interoperable service-driven information distribution for intelligent pervasive services | |
CN117376346A (zh) | 基于边缘计算与分布式计算的设备数据处理方法及装置 | |
Milenkovic | Internet of things: System reference architecture | |
Lenzi et al. | Interconnecting tactical service-oriented infrastructures with federation services | |
CN111858260A (zh) | 信息显示方法、装置、设备及介质 | |
KR101509268B1 (ko) | 분산 연산 기법을 이용한 유비쿼터스 원격 자원 제어 방법 및 유비쿼터스 시스템 | |
Badidi et al. | Building a data pipeline for the management and processing of urban data streams | |
Bala et al. | Impact of post cloud computing paradigms on IoT | |
Shah et al. | Monitoring appliances sensor data in home environment: Issues and challanges | |
Baydeti et al. | Scalable Models for Redundant Data Flow Analysis in Online Social Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right |