KR20200010659A - Stream reasoning system - Google Patents

Stream reasoning system Download PDF

Info

Publication number
KR20200010659A
KR20200010659A KR1020180076128A KR20180076128A KR20200010659A KR 20200010659 A KR20200010659 A KR 20200010659A KR 1020180076128 A KR1020180076128 A KR 1020180076128A KR 20180076128 A KR20180076128 A KR 20180076128A KR 20200010659 A KR20200010659 A KR 20200010659A
Authority
KR
South Korea
Prior art keywords
stream
information
inference
data
unit
Prior art date
Application number
KR1020180076128A
Other languages
Korean (ko)
Other versions
KR102163323B1 (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 KR1020180076128A priority Critical patent/KR102163323B1/en
Publication of KR20200010659A publication Critical patent/KR20200010659A/en
Application granted granted Critical
Publication of KR102163323B1 publication Critical patent/KR102163323B1/en

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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference 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

Embodiments of the present invention provide a stream reasoning system including an input unit and an inference unit and may be realized as a middleware. In addition, the embodiments provide a real-time distributed messaging system, a real-time distributed processing system or a stream reasoning system using a data pipeline. Thus, embodiments of the present invention can intelligently process a large amount of stream information in real time.

Description

스트림리즈닝 시스템{STREAM REASONING SYSTEM}Stream listening system {STREAM REASONING SYSTEM}

본 발명의 실시예들은 스트림리즈닝 시스템에 관한 것으로서, 더욱 상세하게는, 대규모의 스트림 빅데이터를 지능적으로 처리하기 위한 스트림리즈닝 시스템 및 방법에 관한 것이다.Embodiments of the present invention relate to streamlisting systems, and more particularly, to streamlisting systems and methods for intelligent processing of large-scale stream big data.

스마트시티(Smart City)는 도시민의 삶의 질을 향상시키기 위해서 스마트 서비스들을 언제, 어디서나, 어느 때, 어떠한 디바이스를 통해서도 도시민에게 제공하기 위해서 도시에 정보통신기술이 녹아져 있는 미래형 도시이다. (비특허문헌 1)Smart City is a futuristic city in which information and communication technologies are melted in the city to provide smart services to city residents anytime, anywhere, anytime, and on any device in order to improve the quality of life of the citizens. (Non-Patent Document 1)

가트너(Gartner)는 2016년 스마트 시티에서 16억 대의 사물인터넷 기기(Connected Things)가 사용될 것으로 전망했다. 이는 2015년보다 39% 증가한 수치다. (비특허문헌 2)Gartner predicts that 1.6 billion connected things will be used in the smart city in 2016. That's up 39 percent from 2015. (Non-Patent Document 2)

사물인터넷 (IoT: Internet of Thing) 기술은 실세계에 존재하는 사물 (Physical Things) 및 사이버환경에 존재하는 사물 (Virtual Things)들이 인터넷을 통하여 서로 연결 되고 이러한 물리공간과 가상공간의 사물, 데이터, 사람들이 연동을 통하여 다양한 서비스를 제공할 수 있는 미래 인터넷 인프라 기술이다. (비특허문헌 3)The Internet of Thing (IoT) technology connects the physical things in the real world and the virtual things in the cyber environment with each other through the Internet, and the objects, data and people in these physical and virtual spaces. It is the future Internet infrastructure technology that can provide various services through this linkage. (Non-Patent Document 3)

스마트시티에서 스마트서비스를 구현하기 위해서는 IoT의 스마트기기로부터 전송되는 엄청난 양의 빅데이터를 분석하여 정확한 상황인식(situation-aware)을 통해 판단과정을 거쳐서, 도시민에게 지능적인 서비스를 제공하는 것이 필요하다. 이때, 끊임없이 발생하는 빅데이터를 실시간으로 처리하여 상황인식을 하기 위해서는 스트림리즈닝(stream reasoning) 기술이 반드시 필요하다.In order to implement smart services in smart cities, it is necessary to analyze the huge amount of big data transmitted from the smart devices of the IoT, and to provide intelligent services to urban citizens through accurate judgment-aware. . In this case, in order to recognize the situation by processing the constantly occurring big data in real time, a stream reasoning technique is necessary.

스트림리즈닝은 최근에 발생한 분야로서, “매우 많은 수의 동시 사용자들이 사용하는 의사 결정 시스템을 지원하기 위한 목적으로, 다수의 이질적이며 불량 데이터가 섞인 거대한 규모의 빅데이터 스트림을 실시간으로 처리하는 논리적 추론(logical reasoning)”을 말한다. (비특허문헌 4)Stream leasing is a recent development that “is a logical way of dealing in real time with large, big data streams mixed with a large number of heterogeneous and bad data, with the aim of supporting decision systems used by very large numbers of concurrent users. Logical reasoning ”. (Non-Patent Document 4)

스트림리즈닝과 관련된 종래기술을 살펴보면 다음과 같다.Looking at the prior art associated with stream leasing as follows.

비특허문헌 5는 스트림리즈닝의 높은 전체처리량을 제공하기 위하여 컴퓨터 클러스터와 Yahoo S4 프레임워크를 활용한 병렬 처리 방법론을 제시하였다. 또한 스트림상에서 로우레벨 술어(predicate)의 집합을 제시하고 이러한 술어를 이용하여 RDFS 리즈닝의 인코딩과 C-SPARQL 쿼리 응답을 제시하였다.Non-Patent Document 5 proposes a parallel processing methodology utilizing a computer cluster and a Yahoo S4 framework to provide a high overall throughput of streamlisting. We also present a set of low-level predicates on the stream and use these predicates to present the encoding of RDFS listening and the C-SPARQL query response.

비특허문헌 6은 대규모 실시간 시맨틱 처리 프레임워크를 제안하고 IoT 애플리케이션을 위한 탄력적인 분산 스트림 엔진을 제안하였다. 제안된 엔진은 분산 컴퓨팅 플랫폼 SPARK를 기반으로 모든 종류의 IoT 애플리케이션을 지 원하며 홈 환경 모니터링 애플리케이션의 사례를 들었다. 서로 다른 타입의 IoT 애플리케이션을 갖는 대규모 센서 스트림을 위해서 확장될 수 있음을 실험을 통해 보여주었다.Non-Patent Document 6 proposes a large scale real-time semantic processing framework and a flexible distributed stream engine for IoT applications. The proposed engine supports all kinds of IoT applications based on the distributed computing platform SPARK, and is an example of a home environment monitoring application. Experiments have shown that it can be extended for large sensor streams with different types of IoT applications.

그러나, 종래기술은 빠르게 변하고, 거대한 양의 스트림 빅데이터를 이용하여 실시간이며, 연속적으로 스트림리즈닝을 수행하는 데에 어려움이 있다.However, the prior art has a difficult time to perform stream leasing in real time using a rapidly changing, huge amount of stream big data.

[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.  [1] YW 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. [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. [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 [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 [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 [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

전술한 문제점을 해결하기 위하여, 본 발명의 실시예들은 스트림정보를 수신하는 입력부 및 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 추론부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템을 제공하는데 그 목적이 있다.In order to solve the above problems, embodiments of the present invention include a stream listening system comprising an input unit for receiving stream information and an inference unit for inferring context in real time based on the stream information to generate inference information. The purpose is to provide.

전술한 목적을 달성하기 위한 본 발명의 일 실시예는 스트림정보를 수신하는 입력부; 및 상기 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 추론부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템을 제공한다.One embodiment of the present invention for achieving the above object is an input unit for receiving stream information; And an inference unit configured to generate inference information by inferring a context in real time based on the stream information.

이상과 같이, 본 발명의 실시예들은 스트림리즈닝 시스템을 제시함으로써, 대용량의 스트림정보를 실시간으로 처리할 수 있고 미들웨어로 구현될 수 있으므로 높은 확장성을 가진다.As described above, the embodiments of the present invention have high scalability since the stream listening system can be processed in real time and can be implemented as middleware.

또한, 본 발명의 실시예들은 실시간 분산 메시징 시스템과 실시간 분산 처리 시스템을 이용하므로 대용량의 스트림정보를 실시간으로 정확하게 처리할 수 있다.In addition, embodiments of the present invention can use a real-time distributed messaging system and a real-time distributed processing system can accurately process a large amount of stream information in real time.

또한, 본 발명의 실시예들은 데이터의 종류에 따라 복수개의 파이프라인으로 구성될 수 있어서 스트림정보를 빠르게 처리할 수 있다.In addition, embodiments of the present invention can be composed of a plurality of pipelines according to the type of data can be processed quickly stream information.

또한, 본 발명의 실시예들은 특정시간마다 추론정보를 저장하는 저장공간을 구비하므로 연속질의에 빠르게 대처할 수 있다.In addition, the embodiments of the present invention have a storage space for storing inference information every specific time, so that it can cope with the continuous query quickly.

이상의 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있다.Not limited to the above-mentioned effects, other effects that are not mentioned can be clearly understood by those skilled in the art from the following description.

도 1은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 2는 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 3은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.
도 4는 일 실시예에 따른 스마트시티에 대한 OWL 도메인 온톨로지의 일례를 예시적으로 나타낸 도면이다.
도 5는 일 실시예에 따른 스트림리즈닝 방법의 일례를 예시적으로 나타낸 순서도이다.
도 6a 내지 도 6e는 스트림리즈닝 시스템을 구현하여 실험한 일례를 예시적으로 나타낸 도면이다.
1 is a block diagram illustrating an example of a stream listening system according to an embodiment.
2 is a block diagram illustrating an example of a stream listening system according to an embodiment.
3 is a block diagram illustrating an example of a stream listening system according to an embodiment.
4 is a diagram illustrating an example of an OWL domain ontology for a smart city according to an embodiment.
5 is a flowchart illustrating an example of a stream listening method according to an embodiment.
6A to 6E are exemplary diagrams illustrating an example of experiments by implementing a stream listening system.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예들에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예들에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 본 실시예들은 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Description of the present invention is only for embodiments for structural or functional description, the scope of the present invention should not be construed as limited by the embodiments described in the text. That is, since the present embodiments can be variously modified and can have various forms, the scope of the present invention should be understood to include equivalents that can realize the technical idea. In addition, the objects or effects presented in the present invention does not mean that a specific embodiment should include all or only such effects, the scope of the present invention should not be understood as being limited thereby.

이하에 첨부되는 도면들은 본 발명의 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings are provided to assist in understanding the present invention, and provide embodiments with a detailed description. However, the technical features of the present invention are not limited to the specific drawings, and the features disclosed in the drawings may be combined with each other to constitute new embodiments.

이하의 실시예들에서 개시되는 스트림리즈닝 시스템에 대해 각 도면을 참조하여 보다 구체적으로 살펴보기로 한다.A stream listening system disclosed in the following embodiments will be described in more detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.1 is a block diagram illustrating an example of a stream listening system according to an embodiment.

도 1를 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 센서(200)로부터 스트림정보를 수신할 수 있고 사용자단말 또는 외부시스템(300)으로부터 질의정보를 수신하여 사용자단말 또는 외부시스템(300)에게 질의 결과를 송신할 수 있다.Referring to FIG. 1, the stream listening system 100 according to an exemplary embodiment may receive stream information from a sensor 200 and receive query information from a user terminal or an external system 300 to receive a user terminal or an external system. The query result may be sent to 300.

센서(200)는 가스, 이산화탄소, 온도, 사용자의 위치 등을 감지할 수 있고 통신 네트워크를 통해 감지된 값에 해당하는 스트림정보를 스트림리즈닝 시스템(100)에 송신할 수 있다.The sensor 200 may detect gas, carbon dioxide, temperature, a user's location, and the like, and transmit stream information corresponding to the value detected through the communication network to the stream listening system 100.

여기에서, 통신 네트워크는 유선 또는 무선 통신망을 포함하는 넓은 개념의 네트워크를 의미할 수 있다. 이하, 마찬가지이다.Here, the communication network may mean a wide concept network including a wired or wireless communication network. The same applies to the following.

사용자단말 또는 외부시스템(300)은 스트림리즈닝 시스템(100)에 현재 화재가 발생했는지, 유독가스가 누출됐는지 등과 같은 상황정보나 컨텍스트정보에 대한 질의정보를 통신 네트워크를 통해 송신할 수 있고 질의정보에 대한 질의 결과를 스트림리즈닝 시스템(100)로부터 수신할 수 있다.The user terminal or the external system 300 may transmit query information about context information or context information such as whether a current fire has occurred in the stream listening system 100 or whether toxic gas is leaked through a communication network, and the query information. The query result for may be received from the stream listening system 100.

여기에서, 사용자단말(300)은 노트북, 휴대폰, 스마트 폰(2G/3G/4G/LET, smart phone), PMP(Portable Media Player), PDA(Personal Digital Assistant) 및 타블렛 PC(Tablet PC) 중 어느 하나일 수 있다.Here, the user terminal 300 may be any one of a notebook, a mobile phone, a smart phone (2G / 3G / 4G / LET, smart phone), a portable media player (PMP), a personal digital assistant (PDA), and a tablet PC (Tablet PC). It can be one.

스트림리즈닝 시스템(100)은 입력부(110), 추론부(120) 및 관리부(130)를 포함하여 구성될 수 있다.The stream listening system 100 may include an input unit 110, an inference unit 120, and a management unit 130.

입력부(110)는 센서(200)로부터 스트림정보를 수신하여 추론부(120)로 스트림정보를 실시간으로 전송할 수 있다. 여기에서, 스트림정보는 대용량이고 실시간 처리가 필요하므로 입력부(110)는 스트림정보의 양에 따른 확장성과 낮은 전송 지연시간이 요구된다.The input unit 110 may receive the stream information from the sensor 200 and transmit the stream information to the inference unit 120 in real time. Here, since the stream information has a large capacity and needs real time processing, the input unit 110 requires scalability and low transmission delay time according to the amount of stream information.

따라서, 입력부(110)는 실시간 분산 메시징 시스템으로 구현되는 것이 바람직하다. 여기에서, 메시징 시스템은 컴퓨터 시스템간에 의미적으로 정확한 메시지를 보낼 수 있게 해주는 표준으로서 서비스 제공자, 서비스 소비자 및/또는 브로커로 구성되어 통신 구조가 단순하다. 구체적으로, 메시징 시스템에서 서비스 제공자는 브로커에게 메시지를 송신하여 브로커의 큐에 메시지를 저장할 수 있고 서비스 소비자는 브로커의 큐에 저장된 메시지를 가져올 수 있다.Therefore, the input unit 110 is preferably implemented as a real-time distributed messaging system. Here, a messaging system is a standard that allows semantically accurate messages to be sent between computer systems, consisting of service providers, service consumers, and / or brokers, thus simplifying the communication structure. Specifically, in a messaging system, a service provider may send a message to a broker to store a message in a broker's queue and a service consumer may retrieve a message stored in the broker's queue.

또한 여기에서, 실시간 분산 메시징 시스템이란 실시간으로 메시지를 보내기 위한 분산 메시징 시스템으로서 실시간으로 메시지를 빠르게 전송할 수 있도록 통신 방법이 단순하고 브로커가 수신하는 대용량의 메시지가 누락하지 않도록 메시지를 여러 대의 서버로 분산시킬 수 있는 메시징 시스템을 의미할 수 있다.In addition, here, a real-time distributed messaging system is a distributed messaging system for sending messages in real time, a simple communication method for fast message transmission in real time, and distribute the message to multiple servers so that the broker does not miss a large amount of messages received It can mean a messaging system that can be enabled.

입력부(110)는 대용량의 데이터 스트림을 실시간으로 전송받기 위하여 실시간 분산 메시징 시스템의 일종인 Kafka를 이용할 수 있다. Kafka 는 대용량 메시지 처리에 특화된 메시징 시스템으로 실시간으로 스트림정보를 전송할 수 있다. 그리고 확장성(scale-out)과 고가용성(high availability)을 위하여 클러스터로 동작되는 점은 스마트 시티에서 발생하는 대규모 데이터를 처리하기에 용이하다. 또한, 스트림 리즈닝에서 필요한 대용량 실시간 전송 및 낮은 전송 지연시간을 만족하고, 기존 메시징 프로토콜인 AMQP 프로토콜 이나 JMS API 등에 비해서 자체의 가벼운 프로토콜을 사용하여 IoT 디바이스와 SOUL과의 스트림정보 전송에도 적합하다.The input unit 110 may use Kafka, which is a kind of real-time distributed messaging system, to receive a large data stream in real time. Kafka can send stream information in real time to a messaging system specialized in processing large messages. And because it works as a cluster for scale-out and high availability, it is easy to handle large data generated from smart cities. In addition, it satisfies the large-scale real-time transmission and low transmission latency required for stream listening, and it is also suitable for the transmission of stream information between IoT devices and SOUL using its own light protocol compared to the existing messaging protocol AMQP protocol or JMS API.

추론부(120)는 후술할 변환부(122) 및 분석부(126)를 포함할 수 있고 입력부(110)로부터 전달받은 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 여기에서, 스트림정보는 대용량이고 실시간 처리가 필요하므로 추론부(120)는 스트림정보량에 따른 높은 확장성과 높은 처리량 그리고, 낮은 처리 지연시간이 요구된다.The inference unit 120 may include a conversion unit 122 and an analysis unit 126, which will be described later, and generate inference information by inferring context in real time based on stream information received from the input unit 110. In this case, since the stream information has a large capacity and needs real time processing, the inference unit 120 requires high scalability, high throughput, and low processing delay time according to the amount of stream information.

따라서, 추론부(120)는 실시간 분산 처리 시스템으로 구현되는 것이 바람직하다. 여기에서, 실시간 시스템은 제한된 시간 안에 작업을 처리할 수 있도록 하는 시스템을 의미할 수 있고 실시간 분산 처리 시스템은 제한된 시간 내에 대용량의 정보를 처리하기 위해 네트워크로 연결된 서로 다른 컴퓨터간에 서로 통신하고 메시지를 전달하여 작업을 조정하고 수행할 수 있는 시스템을 의미할 수 있다.Therefore, the inference unit 120 is preferably implemented as a real-time distributed processing system. Here, a real-time system may mean a system capable of processing a task within a limited time, and a real-time distributed processing system communicates and transmits messages between different networked computers to process a large amount of information within a limited time. It can mean a system that can coordinate and perform work.

또한, 실시간 분산 처리 시스템은 대용량의 정보를 빠르게 처리하기 위해 데이터의 종류에 따라 복수개의 데이터 파이프라인을 구성하는 기능을 제공할 수 있어야 한다. 여기에서, 데이터 파이프라인은 하나의 데이터 처리 요소에 의해 출력된 데이터가 다음의 데이터 처리 요소의 입력 데이터가 되도록 순차적으로 연결된 데이터 처리 요소의 집합을 의미할 수 있다.In addition, the real-time distributed processing system should be able to provide the ability to configure a plurality of data pipelines according to the type of data in order to process a large amount of information quickly. Here, the data pipeline may refer to a set of data processing elements sequentially connected such that data output by one data processing element is input data of a next data processing element.

추론부(120)는 대용량의 데이터 스트림을 실시간으로 처리하기 위하여 실시간 분산 처리 시스템의 일종인 Apache Storm을 이용할 수 있다. Apache Storm은 토폴로지(topology)를 이용하여 입력스트림과 입력스트림을 처리하는 처리 로직을 포함한다. 2가지 종류의 컴포넌트인 스파우트 (spout)와 볼트(bolt)가 있는데, 스파우트는 외부 소스로부터 토폴로지로 데이터 스트림을 생성해주는 역할을 하고, 볼트는 토폴로지의 모든 처리 작업을 수행하며, 스트림을 다음 단계에서 처리할 데이터 스트림을 생성한다. 또한 원하는 데이터 스트림을 얻기 위해, 볼트 단위로 처리 작업을 분리해서 여러 개의 볼트를 배치할 수 있다. 이러한 스톰의 구조와 프로세스는 스트림 리즈닝의 실시간 처리와 추론 메커니즘에 매우 효율적이다.The inference unit 120 may use Apache Storm, which is a kind of real-time distributed processing system, to process a large data stream in real time. Apache Storm includes input logic and processing logic to process input streams using topology. There are two kinds of components, spouts and vaults. Spouts create a data stream from an external source into the topology, the vault performs all the processing of the topology, and the stream is Create a data stream to process. You can also place multiple vaults by separating processing operations in vaults to get the desired data stream. These storm structures and processes are very efficient for the real-time processing and inference mechanisms of stream listening.

관리부(130)는 추론부(120)에 의해 생성된 추론정보를 전달받고 사용자단말 또는 외부시스템(300)으로부터 추론정보에 대한 질의정보를 수신하며 질의 결과에 해당하는 추론정보를 사용자단말 또는 외부시스템(300)에게 송신할 수 있다.The management unit 130 receives the inference information generated by the inference unit 120, receives query information about the inference information from the user terminal or the external system 300, and infers the information corresponding to the query result from the user terminal or the external system. Transmit to 300.

또한, 관리부(130)는 사용자단말 또는 외부시스템(300)에서 등록된 질의정보를 스트림리즈닝 시스템에서 연속적으로 처리하여 스트림리즈닝의 결과인 추론정보를 반환할 수 있다. 사용자단말 또는 외부시스템(300) 이 연속질의정보를 등록하였을 때, 관리부(130)는 연속적으로 질의의 결과를 반환할 수 있어야 하며, 이것을 continuous query이라고 한다.In addition, the management unit 130 may process the query information registered in the user terminal or the external system 300 continuously in the stream listening system to return the inference information that is the result of the stream listening. When the user terminal or the external system 300 registers the continuous query information, the management unit 130 should be able to continuously return the result of the query, which is called a continuous query.

도 2는 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.2 is a block diagram illustrating an example of a stream listening system according to an embodiment.

도 2를 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 입력부(110), 변환부(122), 분석부(126), 관리부(130), 데이터베이스(140) 및 서비스 브로커(150)를 포함하여 구성될 수 있다.2, the stream listening system 100 according to an exemplary embodiment may include an input unit 110, a conversion unit 122, an analysis unit 126, a management unit 130, a database 140, and a service broker 150. It may be configured to include).

또한, 스트림리즈닝 시스템(100)은 스마트시티 시스템(400)의 미들웨어로 구성될 수 있다.In addition, the stream listening system 100 may be configured as middleware of the smart city system 400.

여기에서, 스마트시티 시스템(400)은 스마트시티의 IoT 디바이스를 비롯한 수많은 인프라를 지능적으로 관리하고, 스마트시티의 다양한 스마트 애플리케이션을 도시민에게 제공하기 위한 3 티어 아키텍처로서 3티어는 스마트시티 포탈 티어, 스마트시티 미들웨어 티어, 스마트시티 인프라스트럭쳐 티어로 구성되고, 이 중 스마트시티 미들웨어 티어는 스마트시티 인프라스트럭쳐를 통해 들어오는 다양한 데이터를 지능적으로 처리하여, 스마트시티 포탈 티어를 통해 스마트시티 서비스를 제공할 수 있다.Here, the smart city system 400 is a three-tier architecture for intelligently managing a large number of infrastructures, including IoT devices in the smart city, and providing various smart applications of the smart city to the citizens. It is composed of city middleware tier and smart city infrastructure tier, among which smart city middleware tier can intelligently process various data coming through smart city infrastructure and provide smart city service through smart city portal tier.

또한 여기에서, 미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어 또는 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어를 의미한다.In this context, middleware refers to software that functions as an intermediary for connecting data to each other, or software that connects a service to many processes on multiple computers connected through a network. .

공통 디바이스 인터페이스 레이어는 인프라 영역의 센서로부터 데이터를 받아서 스마트 컴퓨팅 레이어로 전달하는 역할을 수행할 수 있고 다양한 종류의 센서와 통신 프로토콜을 지원하고 이기종의 USN에 대해 공통 인터페이스를 제공할 수 있다.The common device interface layer may play a role of receiving data from sensors in the infrastructure area and delivering the data to the smart computing layer, supporting various types of sensors and communication protocols, and providing a common interface for heterogeneous USNs.

스마트 컴퓨팅 레이어는 스트림리즈닝의 중요 레이어로서 변환부(122), 분석부(126), 관리부(130) 및 데이터베이스(140)를 포함하여 구성될 수 있다. 스마트시티 미들웨어는 스트림리즈닝을 수행하기 위하여 로우 데이터에서 RDF/OWL 포맷으로 변경하고 추론할 수 있다. 그리고 추론된 정보를 저장하며 컨텍스트에 대한 연속쿼리를 지원할 수 있다.The smart computing layer may be configured to include a transformation unit 122, an analysis unit 126, a management unit 130, and a database 140 as an important layer of stream listening. The smart city middleware may change and infer from the raw data to the RDF / OWL format in order to perform stream listening. It can store inferred information and support continuous queries for contexts.

변환부(122)는 공통 디바이스 인터페이스 레이어로부터 로우 데이터(센서 데이터, 스트림정보)를 전달받고, 필터 정책에 따라 필터링을 수행하고, 분석부(126)에서 스트림리즈닝이 가능하도록 로우 데이터를 컨텍스트 온톨로지 모델을 따르는 RDF/OWL과 같은 온톨로지정보로 변경할 수 있다.The converter 122 receives the raw data (sensor data, stream information) from the common device interface layer, performs filtering according to the filter policy, and analyzes the raw data onto the context ontology so that the stream filtering can be performed by the analyzing unit 126. Changes can be made to ontology information such as RDF / OWL following the model.

여기에서, 온톨로지란 사람들이 세상에 대하여 보고 듣고 느끼고 생각하는 것에 대하여 서로 간의 토론을 통하여 합의를 이룬 바를, 개념적이고 컴퓨터에서 다룰 수 있는 형태로 표현한 모델로, 개념의 타입이나 사용상의 제약조건들을 명시적으로 정의한 기술을 의미한다.Here, an ontology is a conceptual, computer-workable model that expresses the consensus of what people see, hear, feel and think about the world, in a conceptual and computer-friendly form, expressing the types of concepts and constraints on their use. Means the technology defined.

분석부(126)는 미리 정의된 룰에 따라 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 그리고 스트림리즈닝의 성능 향상을 위해 유비쿼터스 코어 컴퓨팅 레이어에서의 클라우드 컴퓨팅 기술을 활용하여 분산 처리를 지원할 수 있다. 클라우드 컴퓨팅 기술은 OpenNebula와 Haizea를 기반으로 구현될 수 있다.The analyzer 126 may generate inference information by inferring a context in real time according to a predefined rule. And to improve the performance of streamlisting, cloud computing technology at the ubiquitous core computing layer can support distributed processing. Cloud computing technology can be implemented based on OpenNebula and Haizea.

저장부(140)는 컨텍스트 온톨로지 모델, 컨텍스트 인스턴스, 룰, 그리고 추론된 컨텍스트(추론정보)를 저장할 수 있다.The storage 140 may store a context ontology model, a context instance, a rule, and an inferred context (inference information).

관리부(130)는 유비쿼터스 코어 컴퓨팅 레이어와의 인터페이스 역할을 수행할 수 있고, 유비쿼터스 코어 컴퓨팅 레이어의 서비스 브로커(150)로부터의 쿼리를 해석하고, 쿼리를 수행할 수 있다.The management unit 130 may serve as an interface with the ubiquitous core computing layer, interpret a query from the service broker 150 of the ubiquitous core computing layer, and perform a query.

컨텍스트 온톨로지 모델과 룰 파일은 시스템이 초기화 될 때 메모리에 미리 로드가 되고 컨텍스트 인스턴스는 런타임에 메모리에 로드될 수 있다.The context ontology model and rules file can be preloaded into memory when the system is initialized, and the context instance can be loaded into memory at runtime.

이와 같이, 스트림리즈닝 시스템(100)은 미들웨어로 구현되므로 이기종 시스템에서도 작동될 수 있다.As such, the stream listening system 100 may be implemented in middleware and thus may operate in heterogeneous systems.

도 3은 일 실시예에 따른 스트림리즈닝 시스템의 일례를 예시적으로 나타낸 블럭 구성도이다.3 is a block diagram illustrating an example of a stream listening system according to an embodiment.

도 3을 참조하면, 일 실시예에 따른 스트림리즈닝 시스템(100)은 입력부(110), 변환부(122), 분석부(126), 관리부(130), 데이터베이스(140) 및 서비스 브로커(150)를 포함하여 구성될 수 있고 스트림리즈닝 시스템(100)은 도 2에서와 마찬가지로 미들웨어로 구성될 수 있다.Referring to FIG. 3, the stream listening system 100 according to an embodiment includes an input unit 110, a conversion unit 122, an analysis unit 126, a management unit 130, a database 140, and a service broker 150. ) And the stream listening system 100 may be configured as middleware as in FIG. 2.

공통 디바이스 인터페이스 레이어 상에 있는 입력부(110)는 Kafka 브로커(112)를 포함하여 구성될 수 있다.The input 110 on the common device interface layer may include a Kafka broker 112.

Kafka 브로커(112)는 센서(200)로부터 수신한 스트림정보를 저장하는 버퍼 기능을 수행하고 스마트 컴퓨팅 레이어의 변환부(122)에 스트림정보를 전송할 수 있다.The Kafka broker 112 may perform a buffer function for storing the stream information received from the sensor 200 and transmit the stream information to the converter 122 of the smart computing layer.

이와 같이, 입력부(110)는 Kafka와 같은 실시간 분산 메시징 시스템을 이용하여 메시지를 전송하므로 대용량의 스트림정보를 지연 및 손실 없이 효과적으로 전송할 수 있다.As such, since the input unit 110 transmits a message using a real-time distributed messaging system such as Kafka, a large amount of stream information can be effectively transmitted without delay and loss.

또한, Kafka 브로커(112)는 수신한 스트림정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 변환부(122)에 전송할 수도 있다.In addition, the Kafka broker 112 may be divided into a plurality of data pipelines according to the received stream information and transmit the stream information to the converter 122 through the configured data pipeline.

이와 같이, Kafka 브로커(112)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 스트림정보를 실시간으로 빠르게 처리할 수 있다.As such, the Kafka broker 112 may transmit data through a plurality of data pipelines, thereby rapidly processing a large amount of stream information in real time.

변환부(122)는 Kafka 스파우트(123)와 변환부 Bolt(124)로 구성될 수 있다.The converter 122 may be composed of a Kafka spout 123 and a converter Bolt 124.

Kafka 스파우트(123)는 Kafka Consumer(전술한 서비스 소비자)를 Apache Storm에 구현한 구현체로써, 입력부(110)에서 전송되는 스트림정보를 받아들일 수 있다.Kafka spout 123 is an implementation that implements Kafka Consumer (service consumer described above) in Apache Storm, it can accept the stream information transmitted from the input unit (110).

Kafka 스파우트(123)는 수신한 스트림정보의 종류에 따라 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 변환부 Bolt(124)로 전송할 수 있다.The Kafka spout 123 may be configured of a plurality of data pipelines according to the received stream information, and may transmit the stream information to the transformer Bolt 124 through the configured data pipeline.

변환부 Bolt(124)는 전송받은 스트림정보를 추론이 가능하도록 OWL 온톨로지 모델을 이용하여 OWL 온톨로지 인스턴스로 변환할 수 있다.The converter Bolt 124 may convert the received stream information into an OWL ontology instance by using an OWL ontology model.

이와 관련하여, 도 4는 일 실시예에 따른 스마트시티에 대한 OWL 도메인 온톨로지의 일례를 예시적으로 나타낸 도면이다.In this regard, FIG. 4 is a diagram illustrating an example of an OWL domain ontology for a smart city according to an embodiment.

또한, 변환부 Bolt(124)는 스트림정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 스트림정보를 분석부(126)에 전송할 수도 있다.In addition, the converter Bolt 124 may be divided into a plurality of data pipelines according to the type of stream information, and may transmit the stream information to the analyzer 126 through the configured data pipeline.

이와 같이, 변환부 Bolt(124)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 스트림정보를 실시간으로 빠르게 처리할 수 있다.As described above, the converter Bolt 124 may transmit data through a plurality of data pipelines, thereby rapidly processing a large amount of stream information in real time.

분석부(126)는 OWL 온토롤지 인스턴스와 사용자 정의 룰을 이용하여 추론을 수행하여 추론정보를 생성할 수 있고, 분석부 Bolt(127)를 포함하여 구성될 수 있다.The analyzer 126 may generate inference information by performing inference using an OWL ontology instance and a user-defined rule, and may include an analyzer Bolt 127.

분석부 Bolt(127)는 Apache Jena Framework를 이용하여 OWL 추론을 수행할 수 있고, OWL Reasoner는 Pellet을 이용할 수 있다. 여기에서 사용되는 사용자 정의 룰은 사용자의 입력을 받아 run-time 중에 동적으로 변경이 가능하도록 구성될 수 있다.The analysis unit Bolt 127 may perform OWL inference using the Apache Jena Framework, and the OWL Reasoner may use Pellet. The custom rule used here can be configured to accept changes from the user during run-time.

관리부(130)는 분석부(126)에서 수행된 추론결과를 데이터베이스(140)에 전송하고, 상위 레이어인 유비쿼터스 코어 컴퓨팅 레이어의 서비스 브로커(150)와의 인터페이스 기능을 수행할 수 있다.The management unit 130 may transmit the inference result performed by the analyzing unit 126 to the database 140 and perform an interface function with the service broker 150 of the ubiquitous core computing layer, which is an upper layer.

각 노드들의 Persistentaggregate(132)는 추론정보를 State(134)로 전달할 수 있다. 또한, Persistentaggregate(132)는 특정시간 동안의 추론정보를 모았다가 한꺼번에 State(134)로 전달하거나 특정시간 동안의 추론정보를 합산 또는 병합하여 State(134)로 전달할 수도 있고 특정시간 동안 받은 추론정보 중에서 최근의 추론정보만을 State(134)로 전달할 수도 있다.Persistentaggregate 132 of each node may deliver inference information to State 134. In addition, the Persistentaggregate 132 collects inference information for a specific time and delivers it to the State 134 at one time, or adds or merges inference information for a specific time to the State 134, and among the inference information received for a specific time. Only recent inference information may be transferred to the state 134.

State(134)는 Distributed RPC(DRPC, Distributed Remote Procedure Call)에서 전달되는 연속질의를 처리하기 위해서 상태를 저장하기 위한 메모리 저장소일 수 있다. 스트림리즈닝에서 연속되는 추론의 결과에 연속질의를 수행하기 위해서는 각각의 순간에 대한 상태가 저장되어 있어야 한다. 흘러가는 스트림에서 각각의 순간에 대한 상태에 질의를 하기 위해 윈도우 기법을 사용하여 상태를 유지할 수 있다. 여기에서, 윈도우 기법이란 특정 단위 시간 동안의 정보를 다음 단위 시간 경과 전까지 유지하는 것을 의미할 수 있다.State 134 may be a memory store for storing state in order to process a continuous query transmitted in a Distributed Remote Procedure Call (DRPC). In order to perform a continuous query on the result of successive inference in stream listening, the state for each moment must be stored. You can use the windowing technique to maintain the state to query the state for each moment in the stream. Here, the window technique may mean maintaining information for a specific unit time until the next unit time elapses.

이와 같이, 관리부(130)는 데이터베이스(140)와 별도로 State(134)를 구비함으로써 연속질의를 빠르게 처리할 수 있다.As such, the manager 130 may process the continuous query quickly by providing the state 134 separately from the database 140.

한편, Apache Storm에서 연속질의를 구현하기 위해서 Storm의 DRPC 기법을 이용할 수 있다.Meanwhile, Storm's DRPC technique can be used to implement continuous queries in Apache Storm.

DRPC 서버(136)는 Storm에서 사용하는 Storm의 topology에 RPC(Remote Procedure Call)를 수행할 수 있게 해주는 서버로써, 서비스 브로커(150)로부터 명령을 받고, Aggregate(139)로부터 처리된 결과를 받아서 서비스 브로커(150)에 반환할 수 있다.The DRPC server 136 is a server that enables RPC (Remote Procedure Call) to perform Storm's topology used by Storm. The DRPC server 136 receives a command from the service broker 150 and receives a processed result from the Aggregate 139. It may return to the broker 150.

DRPC 스파우트(137)는 DRPC 서버(136)로부터 받은 질의정보를 State 쿼리(138)에 전달할 수 있다. 또한, DRPC 스파우트(137)는 질의정보의 종류에 따라 구별하여 복수개의 데이터 파이프라인으로 구성하고 구성된 데이터 파이프라인을 통해 질의정보를 State 쿼리(138)에 전송할 수도 있다.The DRPC spout 137 may transfer the query information received from the DRPC server 136 to the State query 138. In addition, the DRPC spout 137 may be divided into a plurality of data pipelines according to the type of query information, and transmit the query information to the state query 138 through the configured data pipeline.

이와 같이, DRPC 스파우트(137)는 복수개의 데이터 파이프라인을 통해 데이터를 전송할 수 있으므로 대용량의 질의정보를 실시간으로 빠르게 처리할 수 있다.As such, the DRPC spout 137 may transmit data through a plurality of data pipelines, thereby rapidly processing a large amount of query information in real time.

State 쿼리(138)는 전달받은 질의정보를 이용하여 전술한 State(134)에 윈도우상의 현 상태 값에 대해 질의를 하고, 질의에 대한 결과정보(추론정보)를 받아서 Aggregate(139)에 전달할 수 있다.The state query 138 may inquire the state 134 described above about the current state value on the window by using the received query information, receive the result information (inference information) for the query, and transmit the result information to the aggregate 139. .

Aggregate(139)는 전달받은 결과값을 DRPC 서버(136)에 전달할 수 있다. 또한, Aggregate(139)는 연속쿼리에 대한 여러 개의 결과값을 병합하거나 합산하여 DRPC 서버(136)에 전달하거나 최근의 결과값 만을 DRPC 서버(136)에 전달할 수도 있다.Aggregate 139 may deliver the received result to the DRPC server 136. In addition, the Aggregate 139 may merge or add several result values for the continuous query to the DRPC server 136 or deliver only the latest result value to the DRPC server 136.

데이터베이스(140)는 State의 메모리에 적재되었던 상태 값들의 영속적인 저장을 위한 저장소이며, 각 순간에 대한 추론된 온톨로지 인스턴스가 적재될 수 있다.The database 140 is a repository for persistent storage of state values that have been loaded into the memory of the state, and an inferred ontology instance for each moment may be loaded.

서비스 브로커(150)는 유비쿼터스 코어 컴퓨팅 레이어에 속해 있고, 스마트 컴퓨팅 레이어와의 인터페이스 역할을 수행할 수 있다. 스마트시티 애플리케이션은 필요한 상황정보를 획득하기 위해서 서비스 브로커(150)에게 연속질의를 요청하고, 그 결과값을 받을 수 있다.The service broker 150 belongs to the ubiquitous core computing layer and may serve as an interface with the smart computing layer. The smart city application may request a continuous query from the service broker 150 to obtain necessary situation information, and receive the result.

도 5는 일 실시예에 따른 스트림리즈닝 방법의 일례를 예시적으로 나타낸 순서도이다.5 is a flowchart illustrating an example of a stream listening method according to an embodiment.

도 5를 참조하면, 일 실시예에 따른 스트림리즈닝 방법(500)은 입력단계(S510), 변환단계(S520), 분석단계(S530) 및 관리단계(S540)를 포함할 수 있다.Referring to FIG. 5, the stream listening method 500 according to an embodiment may include an input step S510, a conversion step S520, an analysis step S530, and a management step S540.

입력단계(S510)에서, 스트림리즈닝 시스템(100)은 센서(200)로부터 스트림정보를 수신할 수 있다.In the input step (S510), the stream listening system 100 may receive the stream information from the sensor 200.

변환단계(S520)에서, 스트림리즈닝 시스템(100)은 스트림정보를 전달받고, 필터 정책에 따라 필터링을 수행하고, Context Analyzer에서 스트림리즈닝이 가능하도록 로우 데이터를 컨텍스트 온톨로지 모델을 따르는 RDF/OWL과 같은 온톨로지정보로 변경할 수 있다.In the conversion step (S520), the stream listening system 100 receives the stream information, performs filtering according to the filter policy, and stores the raw data in accordance with the context ontology model to enable stream listening in the context analyzer. It can be changed into ontology information such as

분석단계(S530)에서, 스트림리즈닝 시스템(100)은 미리 정의된 룰에 따라 컨텍스트를 실시간으로 추론하여 추론정보를 생성할 수 있다. 그리고 스트림리즈닝의 성능 향상을 위해 유비쿼터스 코어 컴퓨팅 레이어에서의 클라우드 컴퓨팅 기술을 활용하여 분산 처리를 지원할 수 있다. 클라우드 컴퓨팅 기술은 OpenNebula와 Haizea를 기반으로 구현될 수 있다.In analysis step S530, the stream listening system 100 may generate inference information by inferring a context in real time according to a predefined rule. And to improve the performance of streamlisting, cloud computing technology at the ubiquitous core computing layer can support distributed processing. Cloud computing technology can be implemented based on OpenNebula and Haizea.

관리단계(S540)에서, 스트림리즈닝 시스템(100)은 추론정보를 전달받고 사용자단말 또는 외부시스템(300)으로부터 추론정보에 대한 질의정보를 수신하며 질의 결과에 해당하는 추론정보를 사용자단말 또는 외부시스템(300)에게 송신할 수 있다.In the management step (S540), the stream listening system 100 receives the inference information and receives the query information about the inference information from the user terminal or the external system 300 and the inference information corresponding to the query result in the user terminal or external Transmit to system 300.

도 6a 내지 도 6e는 스트림리즈닝 시스템을 구현하여 실험한 일례를 예시적으로 나타낸 도면이다.6A to 6E are exemplary diagrams illustrating an example of experiments by implementing a stream listening system.

도 6a 및 도 6b를 참조하면, 분산 환경에서의 스트림 리즈닝을 수행하기 위한 실험에 사용된 클러스터는 총 16대이고 실험에 사용한 클러스터 노드의 사양(도 6a) 및 클러스터 환경(도 6b)를 알 수 있다.6A and 6B, 16 clusters were used in the experiment for performing stream listening in a distributed environment, and the cluster node specification (FIG. 6A) and the cluster environment (FIG. 6B) were used. Can be.

스마트시티에서 발생하는 대용량 스트림정보를 발생시키기 위하여 스트림 데이터 생성기를 구현하여 이용하였다. 이 실험에서는 1,000,000건의 센서 데이터를 발생시키고, 스트림 데이터 생성기에서 생성된 데이터의 전 송 속도를 변경하면서 처리시간, 초당 처리량 등을 측정하였다.The stream data generator was implemented and used to generate a large amount of stream information generated in a smart city. In this experiment, 1,000,000 sensor data were generated and the processing time and throughput per second were measured while changing the transmission speed of the data generated by the stream data generator.

스트림리즈닝은 실시간 처리 시스템이기 때문에 일반적인 배치(batch) 데이터 처리 실험과 똑같은 방법으로는 평가가 어렵다. 스트림리즈닝 시스템을 평가하기 위해서 스트림 데이터의 개수를 고정하고, 센서 데이터 전송시간에 따른 초당 센서 데이터 전송량을 측정하였다. 측정된 초당 센서 데이터 전송량을 기반으로 전체 처리시간과, 전체 초당 처리량을 측정하였다. 각각의 실험 결과는 10번을 측정하고, 최소값과 최대값을 제외하고 평균을 낸 결과만을 데이터로 이용하였다.Because stream leasing is a real-time processing system, it is difficult to evaluate in the same way as a typical batch data processing experiment. In order to evaluate the stream listening system, the number of stream data was fixed and the sensor data transmission amount per second according to the sensor data transmission time was measured. The total processing time and the total throughput per second were measured based on the measured sensor data transfers per second. Each experimental result was measured 10 times, and only the averaged results except the minimum and maximum values were used as data.

도 6c 내지 도 6e는 4노드에서 12노드까지 노드 개수를 늘리면서 실험한 결과를 나타낸다. 1노드에서 3노드까지는 메모리 부족으로 성능측정을 할 수 없었다.6c to 6e show the results of experiments while increasing the number of nodes from 4 nodes to 12 nodes. From one node to three nodes, performance measurement was not possible due to insufficient memory.

도 6c는 1,000,000개의 센서 스트림정보 전체를 스트림으로 전송하였을 때, 초당 센서 스트림 데이터의 전송량을 나타낸 도면이다. 고정된 개수의 데이터를 시간을 늘려감에 따라 보내기 때문에 초당 전송량은 점점 줄어드는 반비례 관계임을 확인할 수 있다.FIG. 6C is a diagram illustrating a transmission amount of sensor stream data per second when all 1,000,000 pieces of sensor stream information are transmitted as streams. Since a fixed number of data is sent over time, the transmission per second is inversely decreasing.

도 6d는 도 6c의 Y축으로 사용하였던 초당 센서 스트림 데이터의 전송량에 따른 전체 처리시간을 나타낸 도면이다. 4개의 노드와 6개의 노드를 이용하였을 때, 결과가 상당히 불안정하게 나온 것을 확인할 수 있다. 8 개의 노드, 10개의 노드에서는 초당 전송량이 약 10,000 인 경우에 처리 시간이 가장 적게 걸렸으며, 그 이후로는 처리 시간이 작지만 점점 늘어나는 것을 확인할 수 있다. 12개의 노드를 이용하였을 경우에는 초당 전송량이 약 11,000을 넘을 경우에도 처리 시간이 줄어들었다. 이 결과로, 본 실험 시스템의 최대 처리 능력은 10개의 노드인 경우에 약 초당 10,000개의 스트림 데이터를 처리할 수 있고, 노드를 더 늘리는 경우에는 시간이 줄어들 것이라고 추론할 수 있다.FIG. 6D is a diagram showing the total processing time according to the transmission amount of sensor stream data per second used as the Y-axis of FIG. 6C. When using 4 nodes and 6 nodes, the result is quite unstable. In 8 nodes and 10 nodes, the processing time was the smallest in the case of about 10,000 transmissions per second. Since then, the processing time is small but increases gradually. Using 12 nodes, processing time was reduced even when the transmission amount per second exceeded 11,000. As a result, it can be inferred that the maximum processing power of the present experimental system can process about 10,000 streams of data per second for 10 nodes, and the time will decrease if more nodes are added.

도 6e는 초당 센서 스트림 데이터의 전송량에 따른 초당 전체 처리량을 나타낸 도면이다. 4개의 노드를 이용하였을 경우에 초당 5,000개의 데이터를 처리할 수 있는 것을 확인할 수 있으며, 6개의 노드를 이용하였을 경우에 초당 6,000개의 데이터를 처리할 수 있는 것을 확인 할 수 있다. 8개의 노드와 10개의 노드를 이용하였을 때, 초당 전송량이 증가함에 따라 초당 처리량이 비례하여 증가하였고, 초당 센서 스트림 데이터의 전송량이 10,000 인 경우에 초당 전체 처리량이 가장 높은 것을 확인 할 수 있으며, 그 이후로는 초당 처리량이 점점 낮아지는 것을 확인할 수 있다. 12개의 노드를 이용하였을 경우, 10,000이후에도 증가하는 것을 볼 수 있다. 이 결과로, 도 6d의 결론과 동일하게, 본 실험 시스템에서 노드 10개를 이용하였을 때, 최대 처리 능력은 약 초당 10,000개의 스 트림 데이터를 처리할 수 있다. 또한, 노드가 증가됨에 따라 초당 처리량이 증가됨을 추론할 수 있다.FIG. 6E is a diagram illustrating total throughput per second according to transmission amount of sensor stream data per second. When four nodes are used, 5,000 data can be processed per second. When six nodes are used, 6,000 data can be processed per second. When 8 nodes and 10 nodes are used, the throughput increases proportionally per second as the throughput increases, and the total throughput per second is the highest when the throughput of the sensor stream data per second is 10,000. After that, we can see that the throughput per second is getting lower. If 12 nodes are used, it can be seen to increase after 10,000. As a result, as in the conclusion of FIG. 6D, when using 10 nodes in the present experimental system, the maximum processing capacity can process about 10,000 streams of data per second. It can also be inferred that throughput increases per second as nodes increase.

이상에서와 같이, 본 출원의 바람직한 실시예 들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, although described with reference to the preferred embodiments of the present application, those skilled in the art various modifications of the present application without departing from the spirit and scope of the present invention described in the claims below And can be changed.

100 : 스트림리즈닝 시스템
110 : 입력부 120 : 추론부
122 : 변환부 126 : 분석부
130 : 관리부 140 : 데이터베이스
150 : 서비스 브로커
200 : 센서 300 : 사용자단말 또는 외부시스템
100: stream listening system
110: input unit 120: inference unit
122: converter 126: analyzer
130: management unit 140: database
150: service broker
200: sensor 300: user terminal or external system

Claims (9)

스트림정보를 수신하는 입력부; 및
상기 스트림정보를 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 추론부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템.
An input unit for receiving stream information; And
And an inference unit configured to generate inference information by inferring a context in real time based on the stream information.
제1항에 있어서,
상기 추론부는,
상기 스트림정보를 온톨로지정보로 변환하는 변환부 및
상기 온톨로지정보 및 사용자에 의해 정의된 룰을 기초로 컨텍스트를 실시간으로 추론하여 추론정보를 생성하는 분석부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 1,
The inference unit,
A conversion unit for converting the stream information into ontology information;
And an analysis unit for generating inference information by inferring a context in real time based on the ontology information and a rule defined by a user.
제2항에 있어서,
상기 룰은 동적으로 변경이 가능한 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 2,
The rule is a stream listening system, characterized in that dynamically changeable.
제2항에 있어서,
상기 변환부 및 상기 분석부는 데이터의 종류에 따라 복수개의 데이터 파이프라인으로 구성되는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 2,
The transformation unit and the analysis unit stream stream system, characterized in that composed of a plurality of data pipelines according to the type of data.
제1항에 있어서,
상기 스트림리즈닝 시스템은,
추론정보에 대한 질의를 수신하고 상기 생성된 추론정보를 송신하는 관리부를 포함하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 1,
The stream listening system,
And a management unit for receiving a query for inference information and transmitting the generated inference information.
제5항에 있어서,
상기 관리부는 특정한 기간에 대한 추론정보를 저장하는 저장공간을 포함하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 5,
The management unit stream stream system, characterized in that it comprises a storage space for storing inference information for a particular period.
제1항에 있어서,
상기 입력부는 실시간 분산 메시징 시스템을 이용하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 1,
And the input unit uses a real-time distributed messaging system.
제 1항에 있어서,
상기 추론부는 실시간 분산 처리 시스템을 이용하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 1,
The reasoning unit stream stream system, characterized in that using a real-time distributed processing system.
제 1항에 있어서,
상기 스트림리즈닝 시스템은 미들웨어에 해당하는 것을 특징으로 하는 스트림리즈닝 시스템.
The method of claim 1,
The stream listening system is a stream listening system, characterized in that corresponding to the middleware.
KR1020180076128A 2018-06-29 2018-06-29 Stream reasoning system KR102163323B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180076128A KR102163323B1 (en) 2018-06-29 2018-06-29 Stream reasoning system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180076128A KR102163323B1 (en) 2018-06-29 2018-06-29 Stream reasoning system

Publications (2)

Publication Number Publication Date
KR20200010659A true KR20200010659A (en) 2020-01-31
KR102163323B1 KR102163323B1 (en) 2020-10-08

Family

ID=69369433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180076128A KR102163323B1 (en) 2018-06-29 2018-06-29 Stream reasoning system

Country Status (1)

Country Link
KR (1) KR102163323B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120097220A (en) * 2011-02-24 2012-09-03 주식회사 솔트룩스 An apparatus and method for parallel inference processing of mass data based on plug-in
KR20180058253A (en) * 2016-11-23 2018-06-01 한국전자통신연구원 Data processing apparatus and method for merging deterministic and non-deterministic knowledge information processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120097220A (en) * 2011-02-24 2012-09-03 주식회사 솔트룩스 An apparatus and method for parallel inference processing of mass data based on plug-in
KR20180058253A (en) * 2016-11-23 2018-06-01 한국전자통신연구원 Data processing apparatus and method for merging deterministic and non-deterministic knowledge information processing

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
[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
An approach for Real-time Stream Reasoning for the Internet of Things(2017) *
스트림-리즈닝을 위한 실시간 사물인터넷 빅-데이터 처리(2017.06.) *

Also Published As

Publication number Publication date
KR102163323B1 (en) 2020-10-08

Similar Documents

Publication Publication Date Title
US10521263B2 (en) Generic communication architecture for cloud microservice infrastructure
KR101509269B1 (en) Middleware device for ubiquitous system using distributed computing scheme
Xu et al. Eaaas: Edge analytics as a service
Achir et al. Service discovery and selection in IoT: A survey and a taxonomy
JP2009193250A (en) Distributed directory server, distributed directory system, distributed directory method, and program
Renart et al. An edge-based framework for enabling data-driven pipelines for iot systems
Jung et al. Cloud computing platform based real-time processing for stream reasoning
Huang et al. A survey on fog computing
Vandana et al. S-COAP: Semantic Enrichment of COAP for Resource Discovery
Datta et al. Connect and control things: integrating lightweight IoT framework into a mobile application
Wagh et al. Web service provisioning on android mobile host
Zorgati et al. Efficient IoT resource discovery approach based on P2P networks and Fog Computing
Jung et al. Processing IoT Data with Cloud Computing for Smart Cities.
KR102163323B1 (en) Stream reasoning system
Serpanos et al. IoT System Architectures
Achir et al. A taxonomy of service discovery approaches in IoT
Lenzi et al. Interconnecting tactical service-oriented infrastructures with federation services
Mayer et al. Semantic metadata to support device interaction in smart environments
KR101509268B1 (en) Ubiquitous remote resource control method using distributed computing scheme and ubiquitous system
Jin et al. Automated mashup of CoAP services on the Internet of Things
Shah et al. Monitoring appliances sensor data in home environment: Issues and challanges
Yachir et al. Semantic Resource Discovery with CoAP in the Internet of Things.
Bala et al. Impact of post cloud computing paradigms on IoT
Pop et al. eUPB: Towards an Integrated e-Service Platform in Large Scale Distributed Environments
Alaa El Din Talha A Semantic Based Annotation Technique for the Internet of Things

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