KR102124954B1 - IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF - Google Patents

IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF Download PDF

Info

Publication number
KR102124954B1
KR102124954B1 KR1020180166711A KR20180166711A KR102124954B1 KR 102124954 B1 KR102124954 B1 KR 102124954B1 KR 1020180166711 A KR1020180166711 A KR 1020180166711A KR 20180166711 A KR20180166711 A KR 20180166711A KR 102124954 B1 KR102124954 B1 KR 102124954B1
Authority
KR
South Korea
Prior art keywords
module
database management
management system
access
business
Prior art date
Application number
KR1020180166711A
Other languages
Korean (ko)
Inventor
홍석주
김정택
유영훈
윤순기
윤주현
최상준
Original Assignee
주식회사 엘지씨엔에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지씨엔에스 filed Critical 주식회사 엘지씨엔에스
Priority to KR1020180166711A priority Critical patent/KR102124954B1/en
Application granted granted Critical
Publication of KR102124954B1 publication Critical patent/KR102124954B1/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/25Integrating or interfacing systems involving database management systems
    • 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/242Query formulation
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to one embodiment of the present invention, provided is an IoT platform system for simultaneously supporting a heterogeneous database management system, which comprises: a message processing module processing a received message and delivering the received message to a target client or a server; a DB adapter receiving a request for access to data storage from the message processing module and generating a query in accordance with a type of a database management system to be accessed; and data storage configured with a plurality of types of database management systems and performing an operation in accordance with a query generated by the DB adapter.

Description

이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템 및 그 동작 방법{IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF}IoT platform system for simultaneous support of heterogeneous database management system and its operation method{IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF}

본 발명은 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템 및 그 동작 방법에 관한 것으로, 보다 상세하게는, 공통된 서비스 로직으로 다양한 종류의 데이터베이스로의 접근을 가능하게 하는 IoT 플랫폼 시스템 및 그 동작 방법에 관한 것이다. The present invention relates to an IoT platform system and its operation method for simultaneously supporting heterogeneous database management systems, and more specifically, an IoT platform system and its operation method to enable access to various types of databases with a common service logic. It is about.

최근 IT 기술 및 통신 기술의 발전으로 다양한 IoT 장비 간의 데이터 송수신 및 IoT 장비와 서비스 서버 간의 통신을 가능하게 해주는 IoT 플랫폼이 널리 사용되고 있다. Recently, with the development of IT technology and communication technology, IoT platforms that enable data transmission and reception between various IoT devices and communication between IoT devices and service servers are widely used.

IoT 플랫폼에서 서비스 로직에 대한 처리를 위해서는 데이터베이스에 접근해야 한다. 데이터베이스의 종류로는 관계형 데이터베이스, 비관계형 데이터베이스가 있고, 관계형 데이터베이스 및 비관계형 데이터베이스 내에서도 각각 다양한 종류의 데이터베이스가 존재한다. In order to process service logic in IoT platform, it is necessary to access the database. Types of databases include relational databases and non-relational databases, and various types of databases exist in relational and non-relational databases.

기존 IoT 플랫폼에 있어서는, 이러한 데이터베이스의 종류에 따라 서비스 로직을 다르게 개발하여야 했고, 이를 검증해야만 했다. In the existing IoT platform, service logic had to be developed differently according to the type of the database, and this had to be verified.

예를 들어, IoT 플랫폼에서 접근하고자 하는 데이터베이스가 관계형 데이터베이스 관리 시스템(RDBMS: Relational DataBase Management System)의 일종인 오라클(Oracle)이라면 그에 맞는 데이터베이스 쿼리 처리를 위한 모듈을 만들어야 했고, 활용한 서비스 로직을 만들어야 했다. For example, if the database you want to access from the IoT platform is Oracle, which is a kind of relational database management system (RDBMS), you need to create a module for database query processing according to it, and create service logic that utilizes it. did.

만약, 이 IoT 플랫폼을 비관계형 데이터베이스 관리 시스템의 일종인 MySQL을 사용하는 사이트에 설치하고 사용하려면 기존에 오라클 데이터베이스에 맞춰 개발된 IoT 플랫폼의 소스코드 수정이 반드시 필요하였다. If you want to install and use this IoT platform on a site that uses MySQL, which is a kind of non-relational database management system, it is necessary to modify the source code of the IoT platform developed for the existing Oracle database.

그나마 같은 관계형 데이터베이스 관리 시스템 계열이라면, 변경의 범위가 크지 않을 수도 있지만 관계형에서 비관계형으로의 전환은 방대한 범위에 대한 수정을 수반하였다. In the case of such a relational database management system family, the scope of change may not be great, but the transition from relational to non-relational involved amendments to the vast range.

이러한 문제점은 고객이 IoT 플랫폼을 처음 도입할 때에도 문제가 있지만, IoT 플랫폼을 사용하던 중 데이터베이스를 이종의 데이터베이스로 교체하는 경우에 특히 문제가 되었었다. This problem was problematic even when the customer first introduced the IoT platform, but was particularly problematic when replacing the database with a heterogeneous database while using the IoT platform.

위와 같은 문제점을 해결하기 위해서, 데이터베이스의 종류에 의존하지 않는 IoT 플랫폼 지원이 필요한데, 기존 기술로는 IoT 플랫폼 내부 구현체에 각 종류의 데이터베이스를 모두 지원할 수 있는 구현체(코드 구현)를 추가해야만 했다. In order to solve the above problems, it is necessary to support the IoT platform that does not depend on the type of database, and with the existing technology, an implementation (code implementation) capable of supporting all types of databases must be added to the IoT platform internal implementation.

이렇게 하면 IoT 플랫폼이 여러 종류의 데이터베이스를 사용할 수 있게 되지만, IoT 플랫폼 자체가 무거워 지고 기능 관계가 복잡해져 유지보수가 어려워진다. This will allow the IoT platform to use multiple types of databases, but the IoT platform itself will become heavy and the functional relationships will be complicated, making maintenance difficult.

또한, 관계형 및 비관계형 데이터베이스 내에서도 각각 여러 종류의 데이터베이스가 존재하기 때문에, 새로운 종류의 데이터베이스가 추가될 때마다 기존 데이터베이스의 동작에 대해서도 검증이 필요해져 검증 범위가 확대될 수 밖에 없다. In addition, since several types of databases exist in relational and non-relational databases, verification of the operation of the existing database is required whenever a new type of database is added, and the verification scope is inevitably expanded.

또한, 이러한 방식은 데이터베이스와 관련이 없는 서비스 로직에도 영향을 주기 때문에, 데이터베이스가 추가될 때마다 데이터베이스 처리 모듈에 대해서뿐만 아니라 서비스 로직까지 수정해야 하는 등 수정 범위가 넓어질 수밖에 없다.In addition, since this method affects service logic that is not related to the database, the scope of modification is inevitably widened, such as having to modify not only the database processing module but also the service logic whenever a database is added.

본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것으로, 데이터베이스의 종류에 상관없이 공통된 서비스 로직으로의 작업 처리가 가능해지도록 하는 것을 그 목적으로 한다.The present invention is to solve the above-mentioned problems of the prior art, and an object thereof is to enable work processing with a common service logic regardless of the type of database.

본 발명의 다른 목적은, 데이터베이스의 종류가 추가되더라도 상위 계층의 변경이 최소화될 수 있도록 하여, 서비스 로직과 데이터베이스 간 결합도가 낮아지도록 하는 것이다. Another object of the present invention is to allow the modification of the upper layer to be minimized even if the type of database is added, so that the coupling between the service logic and the database is low.

본 발명의 또 다른 목적은, 개발자 입장에서 데이터베이스 종류와 관계없이 동일한 방식으로 서비스 로직의 작성을 가능하게 하는 것이다. Another object of the present invention is to enable the creation of service logic in the same way regardless of the database type from the developer's point of view.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the objects mentioned above, and other objects not mentioned will be clearly understood from the following description.

상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템으로서, 수신된 메시지를 처리하여 타깃 클라이언트 또는 서버로 전달하는 메시지 처리 모듈; 상기 메시지 처리 모듈로부터 데이터 스토리지에 대한 접속 요청을 수신하며, 접속 대상인 데이터베이스 관리 시스템의 종류에 따른 쿼리를 생성하는 DB 어댑터; 및 복수 종류의 데이터베이스 관리 시스템으로 구성되며, 상기 DB 어댑터에 의해 생성된 쿼리에 따른 동작을 수행하는 데이터 스토리지를 포함하는, IoT 플랫폼 시스템이 제공된다. According to an embodiment of the present invention for achieving the above object, an IoT platform system for simultaneously supporting a heterogeneous database management system, comprising: a message processing module that processes a received message and delivers it to a target client or server; A DB adapter that receives a request for access to data storage from the message processing module and generates a query according to the type of database management system to be accessed; And a data storage configured with a plurality of types of database management systems and performing an operation according to a query generated by the DB adapter.

상기 DB 어댑터는, 서비스 로직을 포함하는 비즈니스 모듈로부터 데이터 스토리지에 대한 접근을 요청받는 비즈니스 데이터 접속 모듈; 및 상기 비즈니스 데이터 접속 모듈로부터 전달되는 공통된 쿼리 구문을 접근 대상인 데이터베이스 관리 시스템의 종류에 맞게 변환하는 공통 데이터 접속 모듈을 포함할 수 있다. The DB adapter includes a business data connection module that is requested to access data storage from a business module including service logic; And a common data access module that converts the common query syntax transmitted from the business data access module to suit the type of database management system to be accessed.

상기 DB 어댑터는, 접속 대상인 데이터베이스 관리 시스템의 종류에 맞게 결정된 프록시를 통해 상기 공통 데이터 접속 모듈에 의해 변환된 쿼리를 상기 데이터 스토리지에 전달하는 DB 프록시를 더 포함할 수 있다. The DB adapter may further include a DB proxy that delivers a query converted by the common data access module to the data storage through a proxy determined according to the type of database management system to be accessed.

상기 DB 어댑터는, 상기 DB 프록시를 포함하며 데이터베이스 관리 시스템의 종류에 따른 복수개의 프록시 중 접속 대상인 데이터베이스 관리 시스템의 종류에 따라 특정 프록시를 결정하도록 지원하는 설정 적용 모듈을 더 포함할 수 있다. The DB adapter may further include a configuration applying module that supports determining a specific proxy according to the type of the database management system to be connected among the plurality of proxies according to the type of database management system.

상기 DB 어댑터는, 상기 DB 프록시와 연동하며 필요 시 추가적인 기능을 지원하는 커스텀 특화 모듈을 더 포함할 수 있다. The DB adapter may further include a custom specialized module that works with the DB proxy and supports additional functions when necessary.

본 발명의 다른 실시예에 따르면, 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템의 동작 방법으로서, 클라이언트로부터 데이터를 수신하는 단계; 비즈니스 레이어의 비즈니스 모듈을 통해 데이터 스토리지로의 접근을 위한 DB 어댑터를 호출하는 단계; 상기 호출에 응답하여, DB 어댑터 내의 공통 데이터 접속 모듈이 통합 쿼리 구문을 접속 대상인 데이터베이스 관리 시스템의 종류에 따른 쿼리로 변환하는 단계; 및 상기 공통 데이터 접속 모듈이 변환된 쿼리를 상기 데이터베이스 관리 시스템의 종류에 대응되는 프록시를 통해 데이터 스토리지로 전달하는 단계를 포함하는, IoT 플랫폼 시스템의 동작 방법이 제공된다. According to another embodiment of the present invention, an operation method of an IoT platform system for simultaneously supporting a heterogeneous database management system, the method comprising: receiving data from a client; Calling a DB adapter for access to data storage through a business module in the business layer; In response to the call, the common data connection module in the DB adapter converting the integrated query syntax into a query according to the type of database management system to be accessed; And transmitting the query converted by the common data connection module to a data storage through a proxy corresponding to the type of the database management system.

상기 방법은, 상기 데이터를 수신하는 단계 이전에, 상기 DB 어댑터 내의 설정 적용 모듈이 설정 파일의 설정값을 기초로 확인되는 접속 대상 데이터베이스 관리 시스템의 종류에 따라 사용할 프록시를 결정하는 단계를 더 포함할 수 있다. The method may further include, prior to the step of receiving the data, determining a proxy to be used according to a type of a database management system to be accessed based on a setting value of a setting file by a setting applying module in the DB adapter. Can be.

상기 방법은, 상기 DB 어댑터를 호출하는 단계 이후에, 상기 DB 어댑터 내의 비즈니스 데이터 접속 모듈이 상기 통합 쿼리 구문을 상기 공통 데이터 접속 모듈로 전달하는 단계를 더 포함할 수 있다.The method may further include, after the step of invoking the DB adapter, passing, by the business data connection module in the DB adapter, the integrated query syntax to the common data connection module.

본 발명의 일 실시예에 따르면, 데이터베이스의 종류에 상관없이 공통된 서비스 로직으로의 작업 처리가 가능해진다.According to an embodiment of the present invention, work processing with common service logic is possible regardless of the type of database.

본 발명의 일 실시예에 따르면, 데이터베이스의 종류가 추가되더라도 상위 계층의 변경이 최소화되기 때문에, 서비스 로직과 데이터베이스 간 결합도가 낮아질 수 있게 된다. According to an embodiment of the present invention, even if the type of database is added, since the change of the upper layer is minimized, the degree of coupling between the service logic and the database can be reduced.

본 발명의 일 실시예에 따르면, 개발자 입장에서 데이터베이스 종류와 관계없이 동일한 방식으로 서비스 로직의 작성이 가능해진다. According to an embodiment of the present invention, it is possible to write service logic in the same way regardless of the database type from the developer's point of view.

본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.It should be understood that the effects of the present invention are not limited to the above-described effects, and include all effects that can be deduced from the configuration of the invention described in the detailed description or claims of the present invention.

도 1은 본 발명의 일 실시예에 따른 IoT 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 IoT 플랫폼 시스템의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 IoT 플랫폼 시스템의 아키텍쳐를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 IoT 플랫폼 시스템의 DB 어댑터 동작 과정을 나타내는 도면이다.
1 is a diagram schematically showing the configuration of an IoT system according to an embodiment of the present invention.
2 is a view showing the internal configuration of the IoT platform system according to an embodiment of the present invention.
3 is a view showing the architecture of an IoT platform system according to an embodiment of the present invention.
4 is a view showing a DB adapter operation process of the IoT platform system according to an embodiment of the present invention.

이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, the present invention will be described with reference to the accompanying drawings. However, the present invention may be implemented in various different forms, and thus is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "indirectly connected" with another member in between. . Also, when a part “includes” a certain component, this means that other components may be further provided instead of excluding other components, unless otherwise stated.

이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 IoT 시스템의 구성을 개략적으로 도시한 도면이다. 1 is a diagram schematically showing the configuration of an IoT system according to an embodiment of the present invention.

도 1을 참조하면, IoT 시스템은 클라이언트(100), IoT 플랫폼 시스템(200), 데이터 분석 플랫폼 시스템(300), 서비스 제공 서버(400)를 포함하여 구성될 수 있다. Referring to FIG. 1, the IoT system may include a client 100, an IoT platform system 200, a data analysis platform system 300, and a service providing server 400.

클라이언트(100)는 홈 디바이스, 감지 센서, 에너지 센서, 환경 센서, 공장 디바이스, 디바이스 스위치, 로봇 등의 IoT 기기, 이동식 단말기(휴대전화, 스마트폰, 태블릿 PC 등의 통신기능을 갖춘 연산기기), 게이트웨이 등을 포함하는 개념이다. The client 100 includes a home device, a sensing sensor, an energy sensor, an environmental sensor, a factory device, a device switch, an IoT device such as a robot, a mobile terminal (a computing device equipped with a communication function such as a mobile phone, a smartphone, a tablet PC), It is a concept including a gateway and the like.

IoT 플랫폼 시스템(200)은 클라이언트(100)들 간의 통신 또는 클라이언트(100)와 서비스 제공 서버(400) 간의 통신 및 메시지 송수신을 가능하게 해준다. 예를 들어, 클라이언트(100)로부터 데이터를 수집하고, 데이터 분석 플랫폼 시스템(300)에 해당 데이터의 분석을 요청하며, 데이터 분석 플랫폼 시스템(300)으로부터 수신한 데이터 분석 결과를 가공하여 서비스 제공 서버(400)에 전송할 수 있다. 또한, IoT 플랫폼 시스템(200)은 서비스 제공 서버(400)에서 제공하는 서비스별 관리 기능을 제공한다.The IoT platform system 200 enables communication between the clients 100 or communication and message transmission and reception between the client 100 and the service providing server 400. For example, collecting data from the client 100, requesting the analysis of the data from the data analysis platform system 300, processing the data analysis result received from the data analysis platform system 300 to provide a service server ( 400). In addition, the IoT platform system 200 provides management functions for each service provided by the service providing server 400.

이러한 IoT 플랫폼 시스템(200)은 데이터 수집/전달 기능, 데이터 저장 기능, 서비스 활용 기능, 포털 서비스 지원 기능 및 IoT 보안 기능 등을 제공할 수 있다. The IoT platform system 200 may provide a data collection/delivery function, a data storage function, a service utilization function, a portal service support function, and an IoT security function.

데이터 수집/전달 기능은, HTTP, MQTT, CoAP, TCP, Web Socket, BACnet, Modbus 등 IoT 표준 프로토콜 또는 산업 표준 프로토콜 등 다양한 프로토콜로 클라이언트(100)로부터의 데이터를 수집하고, 이를 타 기기에 전달하는 기능이다. The data collection/delivery function collects data from the client 100 in various protocols such as IoT standard protocols such as HTTP, MQTT, CoAP, TCP, Web Socket, BACnet, Modbus, or industry standard protocols, and transmits them to other devices. Function.

데이터 저장 기능은 표준을 준수하여 클라이언트(100) 각각의 등록 정보, 그룹 정보, 데이터 보안 정책, 네트워크 연결 정보, 메시지 전송 정보, 데이터 구독 정보, 디바이스 위치 정보, 과금 정책 등을 저장하고, 외부 연동을 위한 서비스 정보, 플랫폼 상태 정보 및 인증정보 등을 저장하는 기능이다. The data storage function stores the registration information, group information, data security policy, network connection information, message transmission information, data subscription information, device location information, charging policy, etc. of each client 100 according to the standard, and external linkage It is a function to store service information, platform status information, and authentication information.

서비스 활용 기능은, 다양한 서비스를 제공할 수 있는 여러 기본 기능(function)을 제공하는 것이다. 상기 기본 기능에는, 디바이스 정보 처리, 디바이스 검색, 그룹 정보 처리, 서비스 정보 처리, 플랫폼 정보 처리, 네트워크 연결 처리, 메시지 파싱/전송, 데이터 저장 처리, 구독 및 통지, 보안정책 적용, 디바이스 위치 검색, 과금 처리, 사용자/단말 인증, 펌웨어 정보 처리 등이 포함될 수 있다. The service utilization function is to provide various basic functions that can provide various services. The basic functions include device information processing, device search, group information processing, service information processing, platform information processing, network connection processing, message parsing/transmission, data storage processing, subscription and notification, security policy application, device location search, charging Processing, user/terminal authentication, firmware information processing, and the like.

포털 서비스 지원 기능은, 서비스 관리, 단말 관리, 플랫폼 모니터링, 로그 모니터링, 펌웨어 관리, 시스템 관리 기능 등의 관리자용 포털 서비스 지원 기능과, 서비스 관리, 단말 관리, 기술 지원, openAPI 테스트 등의 개발자용 포털 서비스 지원 기능을 포함한다. Portal service support functions include portal service support functions for administrators such as service management, terminal management, platform monitoring, log monitoring, firmware management, and system management functions, and portals for developers such as service management, terminal management, technical support, and openAPI testing. Includes service support functions.

IoT 보안 기능은, 네트워크를 통해 클라이언트(100)로부터의 데이터 수집/전달과 데이터 활용을 위한 서비스 제공 서버(400)로의 정보 전달 시 적용되는 보안 정책을 제공하는 것이다. The IoT security function is to provide a security policy applied when information is transmitted to the service providing server 400 for data collection/transmission from the client 100 and data utilization through the network.

한편, 서비스 제공 서버(400)는 IoT 시스템을 이용하여 다양한 서비스를 제공하는 기능을 하며, 예를 들면, 스마트 시티, 스마트 빌딩, 스마트 팩토리, 스마트홈, 스마트 모빌리티 등의 서비스를 제공할 수 있다. Meanwhile, the service providing server 400 functions to provide various services using an IoT system, and may provide services such as smart city, smart building, smart factory, smart home, and smart mobility.

도 2는 본 발명의 일 실시예에 따른 IoT 플랫폼 시스템(200)의 내부 구성을 나타내는 도면이다. 2 is a view showing the internal configuration of the IoT platform system 200 according to an embodiment of the present invention.

도 2를 참조하면, IoT 플랫폼 시스템(200)은 서버용 소프트웨어로서 구현될 수 있으며, 프론트 엔드 레이어(210) 및 백 엔드 레이어(220)를 포함할 수 있다. Referring to FIG. 2, the IoT platform system 200 may be implemented as software for a server, and may include a front end layer 210 and a back end layer 220.

프론트 엔드 레이어(210)는 메시지 큐(211), 메시지 브로커(212), 메시지 처리 모듈(213), 펌웨어 관리 모듈(214), DB 어댑터(215)를 포함할 수 있고, 백 엔드 레이어(220)는 데이터 스토리지(221), 서비스 API(222), 관리 포털 지원 모듈(223), 캐시 메모리(224), 네트워크 결합 스토리지(NAS: Network Attached Storage)(225)를 포함할 수 있다. The front end layer 210 may include a message queue 211, a message broker 212, a message processing module 213, a firmware management module 214, a DB adapter 215, and a back end layer 220 May include a data storage 221, a service API 222, a management portal support module 223, a cache memory 224, and a network attached storage (NAS) 225.

프론트 엔드 레이어(210), 백 엔드 레이어(220), 메시지 큐(211), 메시지 브로커(212), 메시지 처리 모듈(213), 펌웨어 관리모듈(214), DB 어댑터(215), 데이터 스토리지(221), 서비스 API(222), 관리 포털 지원 모듈(223), 캐시 메모리(224), 네트워크 결합 스토리지(225)는 외부 장치와 통신할 수 있는 프로그램 모듈 또는 하드웨어들일 수 있다. 이러한 프로그램 모듈 또는 하드웨어는 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 IoT 플랫폼 시스템(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 한편, 이러한 프로그램 모듈 또는 하드웨어들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.Front end layer 210, back end layer 220, message queue 211, message broker 212, message processing module 213, firmware management module 214, DB adapter 215, data storage 221 ), the service API 222, the management portal support module 223, the cache memory 224, and the network-coupled storage 225 may be program modules or hardware capable of communicating with an external device. The program module or hardware may be included in the IoT platform system 200 in the form of an operating system, an application program module, and other program modules, and may be physically stored on various known storage devices. Meanwhile, these program modules or hardwares include, but are not limited to, routines, subroutines, programs, objects, components, data structures, etc. that perform specific tasks or execute specific abstract data types to be described later according to the present invention.

메시지 큐(211)는 메시지 브로커(212)가 메시지 처리모듈(213)과 메시지를 송수신하기 전에 메시지를 대기시키는 기능을 수행한다. The message queue 211 performs a function of waiting for a message before the message broker 212 transmits and receives a message with the message processing module 213.

메시지 브로커(212)는 클라이언트(100)와 IoT 플랫폼 시스템(200) 간 통신 채널을 제공하고, IoT 플랫폼 시스템(200) 내부 처리를 위한 정보 전송 중계 모듈이다. 즉, 메시지 브로커(212)는 메시지 처리 모듈(213)의 프록시 역할을 수행한다. The message broker 212 provides a communication channel between the client 100 and the IoT platform system 200, and is an information transmission relay module for internal processing of the IoT platform system 200. That is, the message broker 212 serves as a proxy for the message processing module 213.

메시지 처리 모듈(213)은 표준 메시지를 메시지 큐(211) 혹은 메시지 브로커(212)로부터 수신하여 타깃 클라이언트(100) 또는 서비스 제공 서버(400)로 전송하거나, 해당 메시지에 대응하는 서비스를 처리하는 기능을 수행한다. 또한, 메시지 처리 모듈(213)은 메시지를 처리하여 DB 어댑터(215)를 통해 데이터 스토리지(221)와 송수신한다. The message processing module 213 receives a standard message from the message queue 211 or the message broker 212 and transmits it to the target client 100 or the service providing server 400, or processes a service corresponding to the message. To perform. In addition, the message processing module 213 processes the message and transmits and receives data to and from the data storage 221 through the DB adapter 215.

펌웨어 관리 모듈(214)은 클라이언트(100) 또는 서비스 제공 서버(400)에 버전별 펌웨어를 제공하고, 펌웨어 관리 및 업그레이드 기능을 제공한다. 또한, DB 어댑터(215) 및 네트워크 결합 스토리지(225)와 트랙잰션을 할 수 있다. The firmware management module 214 provides firmware for each version to the client 100 or the service providing server 400, and provides a firmware management and upgrade function. In addition, the DB adapter 215 and network-coupled storage 225 can be tracked.

DB 어댑터(215)는 메시지 처리 모듈(213)로부터 DB 접속과 관련한 요청을 수신하여 백 엔드 레이어(220)의 데이터 스토리지(221)와 트랜잭션을 수행한다. The DB adapter 215 receives a request related to a DB connection from the message processing module 213 and performs a transaction with the data storage 221 of the back end layer 220.

본 발명의 실시예에 따른 DB 어댑터(215)는 데이터 스토리지(221)의 종류, 예를 들면, 관계형 데이터베이스 관리 시스템(RDBMS: Relational DataBase Management System)인지 비관계형 데이터베이스 관리 시스템인지 여부와 상관없이 메시지 처리 모듈(213)과 데이터 스토리지(221) 간의 트랜잭션을 처리한다. The DB adapter 215 according to an embodiment of the present invention processes messages regardless of the type of the data storage 221, for example, a relational database management system (RDBMS) or a non-relational database management system. The transaction between the module 213 and the data storage 221 is processed.

이렇게 함으로써, 메시지 처리 모듈(213)은 데이터 스토리지(221)가 관계형 데이터베이스 관리 시스템인지, 비관계형 데이터베이스 관리 시스템인지, 관계형 또는 비관계형 데이터베이스 관리 시스템 내에서도 어떠한 종류인지를 고려하지 않고, 메시지 처리만을 수행할 수 있다.By doing so, the message processing module 213 performs only message processing without considering whether the data storage 221 is a relational database management system, a non-relational database management system, or any type within a relational or non-relational database management system. You can.

DB 어댑터(215) 내의 세부 구성 및 상세 동작 방식에 대해서는 후에 상세히 설명하기로 한다. The detailed configuration and detailed operation method in the DB adapter 215 will be described in detail later.

백 엔드 레이어(220)의 데이터 스토리지(221)는 IoT 플랫폼 시스템(200) 에서 사용하는 모든 데이터를 저장한다. 데이터 스토리지(221) 내에는 비관계형 데이터베이스 관리 시스템(221a) 및 관계형 데이터베이스 관리 시스템(221b)이 존재할 수 있는데, 데이터 스토리지(221)는 데이터를 저장함에 있어서, 비관계형 데이터베이스 관리 시스템(221a) 및 관계형 데이터베이스 관리 시스템(221b) 중 적어도 하나를 선택적으로 사용할 수 있다.The data storage 221 of the back end layer 220 stores all data used in the IoT platform system 200. A non-relational database management system 221a and a relational database management system 221b may exist in the data storage 221. In the data storage 221, the non-relational database management system 221a and the relational data are stored. At least one of the database management systems 221b may be selectively used.

또한, 데이터 스토리지(221)는 응용 프로그램에 따라 빠른 요청 또는 응답을 수행할 필요가 있을 때, 해당 데이터를 임시 저장할 수 있다. In addition, when it is necessary to perform a quick request or response according to an application program, the data storage 221 may temporarily store the corresponding data.

서비스 API(222)는 데이터 스토리지(221)와 외부 플랫폼 시스템(500) 간의 통신을 담당하며, 이에는 통신을 위한 규칙들이 정의되어 있을 수 있다. The service API 222 is responsible for communication between the data storage 221 and the external platform system 500, and rules for communication may be defined therein.

관리 포털 지원 모듈(223)은 관리자 입장에서 IoT 플랫폼 시스템(200)을 관리하기 위한 포털 서비스를 지원하는 관리 포털(600)과 연동한다. The management portal support module 223 interoperates with the management portal 600 that supports the portal service for managing the IoT platform system 200 from the administrator's perspective.

캐시 메모리(224)는 메시지 브로커(212), 메시지 처리모듈(213) 및 펌웨어 관리 모듈(214)에서 처리하고 있는 메시지 또는 인증정보를 임시 저장하는 기능을 수행한다. The cache memory 224 functions to temporarily store messages or authentication information processed by the message broker 212, the message processing module 213, and the firmware management module 214.

네트워크 결합 스토리지(225)는 클라이언트(100) 또는 서비스 제공 서버(400)에 설치되는 펌웨어의 버전별 파일들을 저장하고, 펌웨어 관리 모듈(214)로부터의 요청에 따라 필요한 펌웨어를 제공하는 기능을 수행한다. The network-coupled storage 225 stores files for each version of firmware installed in the client 100 or the service providing server 400, and performs a function of providing necessary firmware according to a request from the firmware management module 214. .

도 3은 본 발명의 실시예에 따른 IoT 플랫폼 시스템의 아키텍쳐를 나타내는 도면이다. 3 is a view showing the architecture of an IoT platform system according to an embodiment of the present invention.

도 3을 참조하면, 일 실시예에 따른 IoT 플랫폼 시스템(200)은 비즈니스 레이어(BL) 및 데이터 액세스 레이어(DAL)로 분리 및 계층화된 아키텍처로 구현될 수 있다. Referring to FIG. 3, the IoT platform system 200 according to an embodiment may be implemented in a separated and layered architecture with a business layer (BL) and a data access layer (DAL).

비즈니스 레이어(BL)는 비즈니스와 관련된 영역으로서, 애플리케이션 로직 처리 등을 담당하는 계층으로 복수개의 비즈니스 모듈(BM)을 포함할 수 있다. The business layer BL is an area related to business, and may include a plurality of business modules BM as a layer in charge of processing application logic and the like.

각각의 비즈니스 모듈(BM)은 서비스와 관련한 로직이 있는 함수들의 집합으로, 데이터 스토리지(221)에 대한 접근이 필요한 경우, 즉, 데이터 스토리지(221)에 대한 호출이 이루어지는 경우에는 DB 어댑터(215)를 호출하여 처리권을 전달한다.Each business module (BM) is a set of functions with logic related to a service. When access to the data storage 221 is required, that is, when a call to the data storage 221 is made, the DB adapter 215 To pass the processing right.

데이터 액세스 레이어(DAL)는 도 2를 참조하여 설명한 DB 어댑터(215)에 해당하는 계층이다. The data access layer (DAL) is a layer corresponding to the DB adapter 215 described with reference to FIG. 2.

이러한 데이터 액세스 레이어(DAL), 즉, DB 어댑터(215)는 비즈니스 데이터 접속 모듈(2151), 공통데이터 접속 모듈(2152), DB 프록시(2153), 설정 적용 모듈(2154), 커스텀 특화 모듈(2155)을 포함할 수 있다. The data access layer (DAL), that is, the DB adapter 215 includes a business data connection module 2151, a common data connection module 2152, a DB proxy 2153, a setting application module 2154, and a custom specialization module 2155 ).

비즈니스 데이터 접속 모듈(2151)은 필요에 따라 공통 데이터 접속 모듈(2152)의 기능을 활용한다. 즉, 비즈니스 데이터 접속 모듈(2151)은 비즈니스 레이어(BL)로부터의 요청에 따라 공통 데이터 접속 모듈(2152)을 호출하여 데이터 스토리지(221)에 대한 액세스를 시도한다.The business data connection module 2151 utilizes the functions of the common data connection module 2152 as needed. That is, the business data connection module 2151 tries to access the data storage 221 by calling the common data connection module 2152 according to a request from the business layer BL.

공통 데이터 접속 모듈(2152)은 서비스 처리 관점에서 데이터 스토리지(221)에 액세스를 하기 위한 작업을 담당한다. 즉, 공통 데이터 접속 모듈(2152)은 데이터 스토리지(221)에 대한 액세스와 관련된 작업 및 기능을 모두 포함한다. The common data connection module 2152 is responsible for accessing the data storage 221 from a service processing viewpoint. That is, the common data connection module 2152 includes all operations and functions related to access to the data storage 221.

일 실시예에 따르면, 비즈니스 데이터 접속 모듈(2151)에는 비즈니스 모듈(BM)에 의해 통합 쿼리 구문(Unified Query Syntax)이 입력될 수 있고, 공통데이터 접속 모듈(2152)에는 상기 통합 쿼리 구문을 접근하고자 하는 데이터베이스 관리 시스템의 종류에 맞게 변환하는 통합 쿼리 컨버터(Unified Query Converter)가 포함될 수 있다. According to an embodiment, a unified query syntax may be input to the business data access module 2151 by a business module (BM), and the common data access module 2152 may access the unified query syntax. It may include an integrated query converter (Unified Query Converter) to convert to suit the type of database management system.

예를 들어, 비즈니스 모듈(BM)에서 animal 이라는 데이터 객체에 대해 dog를 데이터 스토리지(221)의 관계형 데이터베이스 관리 시스템에 존재하는 animal 이라는 테이블에 추가하려고 할 때, 비즈니스 데이터 접속 모듈(2151)에는 Animal.Insert("Dog", "1", "10")와 같은 표현이 입력되고, 공통데이터 접속 모듈(2152)의 통합 쿼리 컨버터는 접근하려는 데이터베이스 관리 시스템의 종류에 맞게 상기 표현을 INSERT INTO Animal (Category, age, weight) VALUES ('Dog', '1', '10')로 변환할 수 있다. For example, when a business module (BM) attempts to add a dog to a table named animal existing in the relational database management system of the data storage 221 for a data object named animal, the business data access module 2151 includes Animal. Expressions such as Insert ("Dog", "1", "10") are input, and the integrated query converter of the common data access module 2152 inserts the expressions according to the type of database management system to be accessed. INSERT INTO Animal (Category) , age, weight) VALUES ('Dog', '1', '10').

이러한 공통데이터 접속 모듈(2152)은 IoT 플랫폼 시스템(200) 구동 시 비즈니스 데이터 접속 모듈(2151)에 작성된 공통된 쿼리 구문을 읽어 접근하고자 하는 데이터베이스 관리 시스템의 종류에 맞는 쿼리를 생성한다. When the IoT platform system 200 is driven, the common data access module 2152 reads a common query syntax written in the business data access module 2151 to generate a query suitable for the type of database management system to be accessed.

공통데이터 접속 모듈(2152)에 의해 접근 대상이 관계형 데이터베이스 관리 시스템인지 비관계형 데이터베이스 관리 시스템인지 여부와 상관없이, 즉, 데이터베이스의 종류와 상관없이 쿼리 처리가 가능해진다. The common data connection module 2152 enables query processing regardless of whether the access target is a relational database management system or a non-relational database management system, that is, regardless of the type of database.

또한, 이에 의해 상위 계층의 변경이 최소화하여, 서비스 로직과 데이터베이스 간 결합도가 낮아질 수 있다. 즉, 개발자 입장에서는 데이터베이스 종류와 관계없이 동일한 방식으로 서비스 로직 작성이 가능해진다. In addition, the change of the upper layer is minimized thereby, and the degree of coupling between the service logic and the database can be lowered. That is, it is possible for the developer to write service logic in the same way regardless of the database type.

예를 들어, IoT 플랫폼 시스템 운영 중 이종의 데이터베이스 관리 시스템으로 데이터베이스를 교체하는 경우라 할지라도 설정만 변경하면, 서비스 로직에 대한 변경 없이도 전환이 가능해진다. For example, even if the database is replaced with a heterogeneous database management system while the IoT platform system is in operation, switching is possible without changing the service logic by changing only the settings.

DB 프록시(2153)는 비즈니스 데이터 접속 모듈(2151)과 데이터 스토리지(221) 간의 실질적 통신 매개 역할을 한다. 비즈니스 데이터 접속 모듈(2151)에서 접근하고자 하는 데이터베이스 관리 시스템의 종류(관계형 또는 비관계형 데이터베이스 관리 시스템, 관계형 또는 비관계형 데이터베이스 관리 시스템 내의 다양한 종류의 시스템)에 맞게 통신을 제어한다. The DB proxy 2153 serves as a practical communication medium between the business data access module 2151 and the data storage 221. The business data access module 2151 controls communication according to the type of database management system (relational or non-relational database management system, various types of systems in a relational or non-relational database management system) to be accessed.

이러한 DB 프록시(2153)는 공통 데이터 접속 모듈(2152)을 상속받기 때문에 공통된 쿼리 컨버터 기능도 내재화되어 있다. Since the DB proxy 2153 inherits the common data connection module 2152, a common query converter function is also internalized.

DB 프록시(2153)는 각 데이터베이스 관리 시스템의 종류별 접속 프록시를 가지고 있으며, IoT 플랫폼 시스템(200)의 빌드 시에 생성될 수 있다.The DB proxy 2153 has a connection proxy for each type of database management system, and may be generated when the IoT platform system 200 is built.

비즈니스 데이터 접속 모듈(2151)이 공통 데이터 접속 모듈(2152)과 DB 프록시(2153)를 통해 데이터 스토리지(221)에 접근하게 되면, 공통 데이터 접속 모듈(2152)에 의해 변환된 통합 쿼리 구문에 따라 실질적인 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 동작이 수행된다. 데이터 스토리지(221)에 접근하여 처리된 결과는 DB 프록시(2153)로부터 상위 계층, 즉, 공통 데이터 접속 모듈(2152), 비즈니스 데이터 접속 모듈(2151)을 통해 비즈니스 모듈(BM)로 전달된다. When the business data access module 2151 accesses the data storage 221 through the common data access module 2152 and the DB proxy 2153, the actual data access module 2152 is converted according to the integrated query syntax converted by the common data access module 2152. Create, Read, Update, Delete operations are performed. The result processed by accessing the data storage 221 is transmitted from the DB proxy 2153 to the business module BM through the upper layer, that is, the common data access module 2152 and the business data access module 2151.

설정 적용 모듈(2154)은 접근이 필요한 데이터베이스 관리 시스템의 종류를 확인하여, 그 확인 결과를 DB 프록시(2153)에 넘겨준다. 이에 따라, 접근 대상 데이터베이스 관리 시스템의 종류에 맞는 프록시가 선택될 수 있다. The setting application module 2154 checks the type of the database management system that needs access, and passes the verification result to the DB proxy 2153. Accordingly, a proxy suitable for the type of database management system to be accessed can be selected.

커스텀 특화 모듈(2155)은 데이터베이스 관리 시스템의 특성 또는 요청되는 작업의 특성에 따라 추가적으로 실행되어야 할 기능들을 포함하는 모듈로서, 이는 생략될 수 있다. The custom specialization module 2155 is a module including functions to be additionally executed according to characteristics of a database management system or characteristics of a requested operation, which may be omitted.

도 4는 본 발명의 일 실시예에 따른 IoT 플랫폼 시스템의 DB 어댑터 동작 과정을 나타내는 도면이다. 4 is a view showing a DB adapter operation process of the IoT platform system according to an embodiment of the present invention.

도 4를 참조하면, IoT 플랫폼 시스템(200)이 구동될 시, 설정 적용 모듈(2154)이 설정 파일을 읽어 사용할 데이터베이스 관리 시스템의 종류를 결정한다(S410). 설정 파일은 비즈니스 레이어(BL) 내에 존재하며, 접근 대상 데이터베이스 관리 시스템의 종류에 대한 정보를 포함할 수 있다. Referring to FIG. 4, when the IoT platform system 200 is driven, the setting application module 2154 reads a setting file to determine the type of database management system to use (S410 ). The configuration file exists in the business layer BL, and may include information on the type of database management system to be accessed.

설정 적용 모듈(2154)에 의해 결정된 결과는 DB 프록시(2153)로 전달되고(S420), 이에 따라, DB 프록시(2153) 내에서 사용할 프록시가 결정된다. 즉, 접근 대상 데이터베이스 관리 시스템의 종류에 대응되는 프록시가 결정된다. The result determined by the setting applying module 2154 is transmitted to the DB proxy 2153 (S420), and accordingly, a proxy to be used in the DB proxy 2153 is determined. That is, a proxy corresponding to the type of the database management system to be accessed is determined.

이렇게 설정 파일에 존재하는 설정 정보만을 통해 관계형 데이터베이스 관리 시스템 또는 비관계형 데이터베이스로의 전환이 가능하므로, 서비스 로직 단에 큰 영향을 주지 않게 된다. Since it is possible to switch to a relational database management system or a non-relational database only through the configuration information existing in the configuration file, there is no significant effect on the service logic stage.

클라이언트(100) 또는 서버(400)로부터 IoT 플랫폼 시스템(200)으로 데이터가 전송되면(S430), 비즈니스 레이어(BL)에서는 업무별 비즈니스 모듈(BM)을 통해 해당 데이터를 가공한 후, 비즈니스 데이터 접속 모듈(2151)을 호출함으로써 데이터 스토리지(221)에 대한 접근을 시도한다(S440). 예를 들어, 클라이언트(100)가 온도 센서이고, 센싱된 정보를 DB에 저장하는 경우라면, 비즈니스 레이어(BL)의 온도 처리 모듈(BM)에서 데이터를 가공한 후, 온도 데이터 접속 모듈(2151)을 호출하게 된다.When data is transmitted from the client 100 or the server 400 to the IoT platform system 200 (S430), the business layer BL processes the corresponding data through a business module (BM) for each business, and then accesses business data By calling the module 2151, access to the data storage 221 is attempted (S440). For example, if the client 100 is a temperature sensor and stores sensed information in a DB, after processing data in the temperature processing module BM of the business layer BL, the temperature data connection module 2215 Will call

비즈니스 데이터 접속 모듈(2151)은 공통 데이터 접속 모듈(2152)의 기능을 활용하고, DB 프록시(2153)를 통해 데이터 스토리지(221)에 접근하기 위해 공통 데이터 접속 모듈(2152)을 호출한다(S450). 공통 데이터 접속 모듈(2152)은 비즈니스 데이터 접속 모듈(2151)로부터 전달된 쿼리를 변환하여 DB 프록시(2153)를 호출한다(S460). DB 프록시(2153)는 필요 시 커스텀 특화 모듈(2155)을 통해 경우에 따라 추가적으로 실행되어야 할 기능들을 사용한다(S461). The business data connection module 2151 utilizes the functions of the common data connection module 2152 and calls the common data connection module 2152 to access the data storage 221 through the DB proxy 2153 (S450). . The common data connection module 2152 converts the query transmitted from the business data connection module 2215 to call the DB proxy 2153 (S460). If necessary, the DB proxy 2153 uses functions to be additionally executed through the custom-specific module 2155 (S461).

DB 프록시(2153) 내에서 IoT 플랫폼 시스템 구동 시 설정 적용 모듈(2154)에 의해 결정된 특정 프록시에 의해 데이터 스토리지(221)에 대한 접근이 이루어지게 된다(S470). When the IoT platform system is driven in the DB proxy 2153, access to the data storage 221 is performed by a specific proxy determined by the setting application module 2154 (S470).

본 발명의 실시예에 따르면, 데이터베이스 관리 시스템의 종류에 상관없이 공통된 메시지로의 작업 처리가 가능해진다. According to an embodiment of the present invention, work processing with a common message is possible regardless of the type of database management system.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration only, and those skilled in the art to which the present invention pertains can understand that the present invention can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims, and all modifications or variations derived from the meaning and scope of the claims and their equivalent concepts should be interpreted to be included in the scope of the present invention.

Claims (8)

이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템으로서,
서비스 로직을 포함하고 클라이언트로부터 수신된 메시지를 처리하는 비즈니스 모듈;
상기 비즈니스 모듈로부터 데이터 스토리지에 대한 접속 요청을 수신하며, 상기 비즈니스 모듈의 액세스 대상인 데이터베이스 관리 시스템의 종류에 따른 쿼리를 생성하는 DB 어댑터; 및
복수 종류의 데이터베이스 관리 시스템으로 구성되며, 상기 DB 어댑터에 의해 생성된 쿼리에 따른 동작을 수행하는 데이터 스토리지를 포함하고,
상기 DB 어댑터는,
상기 비즈니스 모듈로부터 데이터 스토리지에 대한 접근을 요청받는 비즈니스 데이터 접속 모듈; 및
상기 비즈니스 데이터 접속 모듈로부터 전달되고 상기 비즈니스 모듈에 의해 입력된 공통된 쿼리 구문을 액세스 대상인 데이터베이스 관리 시스템의 종류에 맞게 변환하는 공통 데이터 접속 모듈을 포함하는, IoT 플랫폼 시스템.
As an IoT platform system to simultaneously support heterogeneous database management systems,
A business module including service logic and processing a message received from a client;
A DB adapter that receives a connection request for data storage from the business module and generates a query according to the type of database management system to which the business module is accessed; And
It is composed of a plurality of types of database management systems, and includes data storage that performs an operation according to a query generated by the DB adapter.
The DB adapter,
A business data access module that is requested to access data storage from the business module; And
An IoT platform system including a common data connection module that converts a common query syntax transmitted from the business data connection module and input by the business module according to the type of database management system to be accessed.
제1항에 있어서,
상기 DB 어댑터는,
상기 데이터베이스 관리 시스템의 종류에 따른 복수의 접속 프록시를 포함하고, 상기 공통 데이터 접속 모듈에 의해 변환된 쿼리를 상기 접속 프록시를 통해 상기 데이터 스토리지에 전달하는 DB 프록시를 더 포함하는, IoT 플랫폼 시스템.
According to claim 1,
The DB adapter,
An IoT platform system including a plurality of connection proxies according to the type of the database management system, and further comprising a DB proxy that delivers a query converted by the common data access module to the data storage through the access proxy.
제2항에 있어서,
상기 DB 어댑터는,
상기 비즈니스 모듈이 포함된 비즈니스 레이어 내의 설정 파일에 기초하여 액세스가 필요한 데이터베이스 관리 시스템의 종류를 결정하고 이 결정을 상기 DB 프록시에 전달하는 설정 적용 모듈을 더 포함하고,
상기 DB 프록시는 상기 설정 적용 모듈로부터 상기 결정을 수신하여 상기 복수의 접속 프록시 중 상기 액세스가 필요한 데이터베이스 관리 시스템의 종류에 따라 액세스에 사용할 접속 프록시를 결정하는, IoT 플랫폼 시스템.
According to claim 2,
The DB adapter,
Further comprising a configuration applying module for determining the type of database management system that needs access based on a configuration file in the business layer containing the business module and passing the decision to the DB proxy,
The DB proxy receives the decision from the setting application module, and determines an access proxy to be used for access according to the type of database management system that requires the access among the plurality of access proxies.
제3항에 있어서,
상기 DB 어댑터는,
상기 DB 프록시와 연동하며 상기 데이터베이스 관리 시스템의 특성 또는 상기 데이터베이스 관리 시스템에 요청되는 작업의 특성에 따라 추가적인 기능을 지원하는 커스텀 특화 모듈을 더 포함하는, IoT 플랫폼 시스템.
According to claim 3,
The DB adapter,
IoT platform system further comprising a custom module for interworking with the DB proxy and supporting additional functions according to the characteristics of the database management system or the operation requested for the database management system.
제1항에 있어서,
상기 공통 데이터 접속 모듈은,
상기 공통된 쿼리 구문을 액세스 하고자 하는 데이터베이스 관리 시스템의 종류에 맞게 변환하는 통합 쿼리 컨버터를 포함하는, IoT 플랫폼 시스템.
According to claim 1,
The common data connection module,
And an integrated query converter that converts the common query syntax according to the type of database management system to be accessed.
IoT 플랫폼 시스템 내에서 서비스 로직을 포함하는 비즈니스 모듈이 데이터 스토리지에 포함된 이기종 데이터베이스 관리 시스템에 액세스 하는 것을 지원하기 위한 상기 IoT 플랫폼 시스템의 동작 방법으로서,
클라이언트로부터 데이터를 수신하는 단계;
상기 비즈니스 모듈이 상기 데이터 스토리지로의 액세스를 위해 DB 어댑터를 호출하는 단계;
상기 비즈니스 모듈의 호출에 응답하여, 상기 DB 어댑터 내의 비즈니스 데이터 접속 모듈이 공통된 쿼리 구문을 상기 DB 어댑터 내의 공통 데이터 접속 모듈로 전달하는 단계;
상기 공통 데이터 접속 모듈이 상기 전달된 공통된 쿼리 구문을 상기 비즈니스 모듈의 액세스 대상인 데이터베이스 관리 시스템의 종류에 대응하는 쿼리로 변환하는 단계; 및
상기 공통 데이터 접속 모듈이 변환된 쿼리를 상기 데이터베이스 관리 시스템의 종류에 대응되는 DB 프록시를 통해 상기 데이터 스토리지로 전달하는 단계를 포함하는, IoT 플랫폼 시스템의 동작 방법.
As an operation method of the IoT platform system for supporting a business module including service logic in an IoT platform system to access a heterogeneous database management system included in data storage,
Receiving data from a client;
The business module calling a DB adapter for access to the data storage;
In response to a call of the business module, passing a query syntax common to the business data connection module in the DB adapter to a common data connection module in the DB adapter;
The common data connection module converting the passed common query syntax into a query corresponding to a type of database management system to which the business module is accessed; And
And passing the query converted by the common data connection module to the data storage through a DB proxy corresponding to the type of the database management system.
제6항에 있어서,
상기 DB 어댑터 내의 설정 적용 모듈이 상기 비즈니스 모듈이 포함된 비즈니스 레이어 내의 설정 파일에 기초하여 상기 액세스 대상인 데이터베이스 관리 시스템의 종류를 결정하고 그 결정을 상기 DB 프록시에 전달하는 단계를 더 포함하는, IoT 플랫폼 시스템의 동작 방법.
The method of claim 6,
IoT platform, further comprising the step of applying a setting module in the DB adapter to determine the type of the database management system to be accessed based on a setting file in the business layer including the business module and passing the decision to the DB proxy. How the system works.
제7항에 있어서,
상기 DB 프록시가 상기 결정에 따라 내부의 복수의 접속 프록시 중 상기 액세스 대상인 데이터베이스 관리 시스템의 종류에 따라 액세스에 사용할 접속 프록시를 결정하고, 상기 결정된 접속 프록시를 통해 상기 변환된 쿼리를 상기 데이터 스토리지에 전달하는 단계를 더 포함하는, IoT 플랫폼 시스템의 동작 방법.
The method of claim 7,
The DB proxy determines the access proxy to be used for access according to the type of the database management system to be accessed among the plurality of access proxies inside, and transmits the converted query to the data storage through the determined access proxy. The method of operating the IoT platform system further comprising the step of.
KR1020180166711A 2018-12-20 2018-12-20 IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF KR102124954B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180166711A KR102124954B1 (en) 2018-12-20 2018-12-20 IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180166711A KR102124954B1 (en) 2018-12-20 2018-12-20 IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF

Publications (1)

Publication Number Publication Date
KR102124954B1 true KR102124954B1 (en) 2020-06-19

Family

ID=71137329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180166711A KR102124954B1 (en) 2018-12-20 2018-12-20 IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF

Country Status (1)

Country Link
KR (1) KR102124954B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609126A (en) * 2021-07-06 2021-11-05 无锡四维时空信息科技有限公司 Integrated storage management method and system for multi-source space-time data
KR20220116879A (en) * 2021-02-16 2022-08-23 명지대학교 산학협력단 Data Intergration And Linkage Service Method For Linkage Between Power Systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100289330B1 (en) * 1998-11-26 2001-05-02 정선종 Spatial engine device supporting heterogeneous database system and method of managing spatial data using same
KR20050074731A (en) * 2004-01-14 2005-07-19 주식회사 케이티 Device for connecting different kind databases and method thereof
KR101785158B1 (en) * 2015-10-13 2017-10-13 (주)섬엔지니어링 Real-time Virtual Integration of different system and Union Query System based keyward
KR101917806B1 (en) * 2017-12-22 2018-11-12 주식회사 웨어밸리 Synchronization Error Detection AND Replication Method of Database Replication System Using SQL Packet Analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100289330B1 (en) * 1998-11-26 2001-05-02 정선종 Spatial engine device supporting heterogeneous database system and method of managing spatial data using same
KR20050074731A (en) * 2004-01-14 2005-07-19 주식회사 케이티 Device for connecting different kind databases and method thereof
KR101785158B1 (en) * 2015-10-13 2017-10-13 (주)섬엔지니어링 Real-time Virtual Integration of different system and Union Query System based keyward
KR101917806B1 (en) * 2017-12-22 2018-11-12 주식회사 웨어밸리 Synchronization Error Detection AND Replication Method of Database Replication System Using SQL Packet Analysis

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220116879A (en) * 2021-02-16 2022-08-23 명지대학교 산학협력단 Data Intergration And Linkage Service Method For Linkage Between Power Systems
KR102538324B1 (en) 2021-02-16 2023-05-30 명지대학교 산학협력단 Data Intergration And Linkage Service Method For Linkage Between Power Systems
CN113609126A (en) * 2021-07-06 2021-11-05 无锡四维时空信息科技有限公司 Integrated storage management method and system for multi-source space-time data
CN113609126B (en) * 2021-07-06 2022-03-11 无锡四维时空信息科技有限公司 Integrated storage management method and system for multi-source space-time data

Similar Documents

Publication Publication Date Title
US10244058B2 (en) Extending functionality of applications
US10324711B2 (en) System and method for the data management in the interaction between machines
US7571208B2 (en) Creating proxies from service description metadata at runtime
US20130332524A1 (en) Data service on a mobile device
CN111861140A (en) Service processing method, device, storage medium and electronic device
US20230205503A1 (en) Method for dynamically integrating application programs, and software system and machine using the same
US5454109A (en) Data processing system with interface between application programs and external tools residing in separate environments
CN110011875A (en) Dial testing method, device, equipment and computer readable storage medium
CN108415909A (en) A kind of system and method accessing disparate databases
KR102124954B1 (en) IoT PLATFORM SYSTEM FOR SUPPORTING HETEROGENEOUS DATABASE MANAGEMENT SYSTEM SIMULTANEOUSLY AND OPERATING METHOD THEREOF
CN114090388A (en) Information acquisition method, server cluster, server and equipment
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
CN116204239A (en) Service processing method, device and computer readable storage medium
Jin et al. IoT device management architecture based on proxy
CN116781780A (en) Request processing method, device, server and storage medium
KR101785158B1 (en) Real-time Virtual Integration of different system and Union Query System based keyward
CN114840574A (en) Data query method, server, node and storage medium
CN114285859A (en) Data processing method, device, equipment and storage medium for interlayer zone block chain service
CN109981738B (en) Cloud server suitable for application of narrow-band Internet of things
KR20190015817A (en) Method, Apparatus and System for Monitoring Using Middleware
KR102086088B1 (en) Terminal, device manager application and service application for changing access point name
WO2020146689A1 (en) Enabling distributed semantic mashup
KR102437068B1 (en) IoT common service provision method and apparatus to support service creation for IoT devices
EP4075731A1 (en) Data management method and apparatus, and device, computer-readable storage medium, and system
CN117033748B (en) Service query information acquisition method, service data query method and device

Legal Events

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