KR101545626B1 - Dds-db 연동 시스템 - Google Patents

Dds-db 연동 시스템 Download PDF

Info

Publication number
KR101545626B1
KR101545626B1 KR1020140003203A KR20140003203A KR101545626B1 KR 101545626 B1 KR101545626 B1 KR 101545626B1 KR 1020140003203 A KR1020140003203 A KR 1020140003203A KR 20140003203 A KR20140003203 A KR 20140003203A KR 101545626 B1 KR101545626 B1 KR 101545626B1
Authority
KR
South Korea
Prior art keywords
data
dds
application
dbms
management system
Prior art date
Application number
KR1020140003203A
Other languages
English (en)
Other versions
KR20150083938A (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 KR1020140003203A priority Critical patent/KR101545626B1/ko
Publication of KR20150083938A publication Critical patent/KR20150083938A/ko
Application granted granted Critical
Publication of KR101545626B1 publication Critical patent/KR101545626B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions

Abstract

본 발명은 데이터 분산 서비스(DDS)와 데이터베이스 관리 시스템(DBMS)을 연동시켜, 데이터 분산 서비스 어플리케이션이 도메인 내에서 발간/구독되는 데이터를 각 노드들의 DBMS에 저장하고, 데이터 분산 서비스(DDS) 미들웨어가 탑재되지 않은 데이터베이스 관리 시스템 어플리케이션이 데이터베이스 관리 시스템에 각종 데이터를 삽입/변경/제거할 수 있는 환경을 지원하는 DDS-DB 연동 시스템을 제공함에 있다.
이를 위한, 본 발명의 데이터 분산 서비스(data distribution service)를 지원 시스템은, 데이터 분산 서비스 실행을 위한 미들웨어가 설치된 복수의 DDS 어플리케이션, DDS 어플리케이션의 요청에 따라 데이터를 발간/구독하는 데이터 분산 서비스 에이전트(DDS), 데이터베이스 분산 서비스 에이전트를 데이터베이스 관리 시스템(DBMS)과 연동시켜 도메인에서 발간/구독되는 데이터에 대한 데이터베이스 관리 시스템(DBMS)으로의 동기화를 관리하는 DDS-DB 엔진, DDS 서비스 에이전트와 DDS-DB 엔진 간의 인터페이스를 제공하는 DDS-DB 브리지, 데이터베이스 관리 시스템(DBMS)에 직접 데이터를 생성 및 변경하는 DBMS 어플리케이션을 포함한다.

Description

DDS-DB 연동 시스템{SYSTEM FOR INTEROPERATION BETWEEN DDS AND DBMS}
본 발명은 데이터 분산 서비스를 지원하기 위한 것으로서, 더욱 상세하게는 데이터 분산 서비스를 데이터베이스 관리 시스템과 연동시켜 데이터 분산 서비스 환경에서 발간/구독되는 데이터의 영속성을 보장하고, 데이터의 중복 저장을 방지하고 중복 검사를 신속하게 하기 위한 DDS-DB 연동 시스템에 관한 것이다.
데이터 통신 미들웨어(middleware)는 애플리케이션(application)에서 제공했던 데이터 교환 기능을 대행하는 역할을 수행한다. 또한, 데이터 통신 미들웨어는 다양한 디바이스들이 존재하는 유비쿼터스 환경에서 동적으로 네트워크 망을 구성하여 통신 네트워크 도메인을 형성하는 역할을 수행한다.
현재 데이터 교환을 위한 데이터 통신 미들웨어는 Web Service, CORBA, JMS 등 다양한 데이터 통신 미들웨어 들이 개발되었다. 이러한 데이터 통신 미들웨어는 각각의 특징을 가지고 다양한 응용 도메인에서 사용되고 있지만, 대부분 중앙 집중식 방법으로 중앙에 서버를 통한 데이터 관리 구조를 가지게 된다.
현재의 유비쿼터스 환경과 같이 다수의 디바이스들이 동적으로 망을 구성하고 분산된 형태로 빈번한 데이터를 제공하는 구조에서는 중앙 집중식 데이터 관리 구조는 효율적이지 못하게 된다.
따라서, 이러한 분산된 환경에서 데이터 도메인을 구성하고 효율적인 데이터 전송을 위해, 국제 소프트웨어 표준화 기구인 OMG(Object Management Group)에서 데이터 분산 서비스(Data Distribution Service; DDS)의 미들웨어 표준을 제안하였다.
도 1은 종래의 데이터 분산 서비스의 통신 방식에 대한 예시 도면으로서, 임베디드 기기나 모바일 기기와 같은 복수의 분산 노드들은 동적으로 네트워크 데이터 도메인을 형성하고, 네트워크 데이터 도메인에 자유로운 참여나 탈퇴가 가능한 네트워크 통신 환경을 제공한다. 이를 위해, 데이터 분산 서비스는 사용자에게 발간(publish), 구독(subscribe) 환경을 제공하여 자신이 원하는 데이터에 대한 추가적인 작업 없이 데이터를 생산, 수집, 소비할 수 있는 기능을 제공해 준다. 이때, 분산 노드는 사용자 단말기, 센서 등과 같이 토픽의 발간/구독을 요청하는 DDS 어플리케이션과 DDS 어플리케이션으로부터의 요청에 따라 데이터 발간/구독을 실행하는 데이터 분산 서비스 에이전트로 구성되며, DDS를 통해 발간/구독되는 데이터를 객체형 데이터로 토픽(Topic)이라 정의하는데 이하에서는 이러한 토픽을 데이터라 명명하도록 한다.
이러한 종래의 DDS-DB 연동 시스템에서는 사용자가 DDS 도메인에 참여하기 위해서는 사용자 단말기에 DDS 미들웨어 및 관련 응용 프로그램이 설치되어 있어야 하며 그렇지 않은 경우에는 사용자 단말은 DDS 도메인에 참여할 수 없는 단점이 있다.
아울러, 응용 프로그램의 목적에 따라 도메인에서 발생한 데이터들은 추후 처리, 분석 및 재사용의 필요성이 있음에도 불구하고 종래의 DDS-DB 연동 시스템에서는 발간(publish), 구독(subscribe)되는 각종 데이터는 일회성의 성격을 갖는 단점이 있다.
한국공개특허 제2012-0048742호 "확장성과 적응성을 가지는 DDS 구조 및 DDS를 구성하는 노드" 한국등록특허 제1157039호 : "DDSB 통신 시스템 및 방법"
배경 기술의 단점을 해소하기 위한 본 발명의 목적은 데이터 분산 서비스(DDS)와 데이터베이스 관리 시스템(DBMS)을 연동시켜, 데이터 분산 서비스 어플리케이션이 도메인 내에서 발간/구독되는 데이터를 각 노드들의 DBMS에 저장하고, 데이터 분산 서비스(DDS) 미들웨어가 탑재되지 않은 데이터베이스 관리 시스템 어플리케이션이 데이터베이스 관리 시스템에 각종 데이터를 삽입/변경/제거할 수 있는 환경을 지원하는 DDS-DB 연동 시스템을 제공함에 있다.
또, 본 발명은 DBMS에 변경되는 데이터에 대한 데이터 발간시에 해당 데이터의 동작 상태를 구분하는 코드값과 해당 데이터의 정보를 구분하는 키값을 추가하여 데이터의 동작 유형과 정보 유형을 어플리케이션에서 쉽게 인식할 수 있도록 하는 DDS-DB 연동 시스템을 제공함에 있다.
또, 본 발명은 데이터 동기화시에 데이터의 중복 저장을 방지하기 위하여 데이터 변경 여부를 검사하며, 중복 검사시에 기 설정정한 메모리 영역만 검사함으로써 검사 속도를 개선하기 위한 DDS-DB 연동 시스템을 제공함에 있다.
본 발명의 데이터 분산 서비스(data distribution service)를 지원 시스템은, 데이터 분산 서비스 실행을 위한 미들웨어가 설치된 복수의 DDS 어플리케이션, DDS 어플리케이션의 요청에 따라 데이터를 발간/구독하는 데이터 분산 서비스 에이전트(DDS), 데이터베이스 분산 서비스 에이전트를 데이터베이스 관리 시스템(DBMS)과 연동시켜 도메인에서 발간/구독되는 데이터에 대한 데이터베이스 관리 시스템(DBMS)으로의 동기화를 관리하는 DDS-DB 엔진, DDS 서비스 에이전트와 DDS-DB 엔진 간의 인터페이스를 제공하는 DDS-DB 브리지, 데이터베이스 관리 시스템(DBMS)에 직접 데이터를 생성 및 변경하는 DBMS 어플리케이션을 포함한다.
여기서, 데이터 분산 서비스 에이전트는 분산된 DDS 어플리케이션 사이의 데이터 전송 프로토콜인 RTPS(Real-Time Publish-Subcribe) 계층과, 데이터 발간 구독을 위한 인터페이스인 DCPS(Data-Centric Publish-Subscribe) 계층을 포함한다.
또한, DDS-DB 엔진은 데이터 분산 서비스 에이전트(DDS)를 통해 발간/구독되는 데이터를 데이터베이스 관리 시스템(DBMS)에 저장하는 스토리지 매니저(storage manager), 동일 데이터에 대한 중복 저장을 방지하기 위하여 DDS에서 발간/구독되는 데이터에 대한 중복 여부를 검사하는 DDS 필터, DBMS 어플리케이션이 DBMS에 데이터를 생성 및 변경할 경우 스토리지 매니저로부터 이벤트 메시지를 받아 변동 여부를 감지하고 변동 데이터를 데이터 분산 서비스 에이전트(DDS)로 발간하도록 하는 트랜잭션 모니터, 동일한 데이터를 구독하는 다른 데이터 분산 서비스 에이전트(DDS)들에 데이터를 동기화하는 싱크로나이저, DDS 어플리케이션들 사이에서 동일한 데이터를 수신하는 다른 DDS 어플리케이션에 대한 정보를 유지하고 상기 싱크로나이저의 요청이 있을 경우 해당 정보를 싱크로 나이저로 반환하는 메타데이터 매니저를 포함한다.
또한, 스토리지 매니저는 데이터베이스 관리 시스템에서 발간되는 데이터와 함께 데이터베이스의 동작 상태를 구분하는 코드 값과 해당 데이터의 정보를 나타내는 키 값을 시퀀스 다이어그램에 표현할 수 있다.
또한, 스토리지 매니저는 DBMS 어플리케이션에 의해 데이터의 생성 및 변경 이벤트가 발생하면 해당 데이터에 대한 동작 상태를 나타내는 함수 중 어느 하나를 호출하여하여 해당 데이터를 데이터베이스 관리 시스템(DBMS)에 저장 관리할 수 있다.
그리고, DDS 필터는 동일한 도메인 내에서 동일한 데이터를 구독하는 DDS 어플리케이션이 둘 이상 존재할 경우 여러 데이터가 수신되면 그 중 하나의 DDS 어플리케이션이 발간/구독한 데이터만을 데이터베이스 관리 시스템에 반영할 수 있다.
또한, DDS 필터는 중복 데이터 검사 시간 단축을 위하여 중복 검사 시점으로부터 일정 시간 이내에 DDS에서 발간/구독한 데이터에 대해서만 중복 검사를 실시하거나, 데이터베이스 관리 시스템의 메모리에 대하여 중복 검사 영역을 설정하여, 동기화시에 중복 감사 영역에 대한 데이터의 변경 여부만을 검사할 수 있다.
또한, 싱크로나이저는 DDS 어플리케이션이 오류로 인하여 중지되었다가 재동작하는 경우 및 신규 DDS 어플리케이션이 도메인에 참여한 경우 데이터베이스 관리 시스템에 동기화된 이전 발간/구독 데이터를 각 DDS 어플리케이션과 연결된 데이터베이스 관리 시스템에 동기화시킬 수 있다.
또는, 싱크로나이저는 자신이 구독하는 데이터와 동일한 데이터를 수신하는 DDS 어플리케이션의 정보를 얻기 위하여 메타 데이터 매니저에 데이터 이름을 전달하고, 메타데이터 매니저는 싱크로나이저로부터 전달받은 데이터의 이름으로 해당 데이터를 구독하는 다른 DDS 어플리케이션의 IP를 검색하여 싱크로나이저에 반환하며, 싱크로나이저는 반환된 IP를 갖는 DDS 어플리케이션과 통신하여 마지막으로 수행된 트랜잭션 로그 파일을 열어 데이터 변경을 확인하여 변경 데이터를 동기화할 수 있다.
또는, 싱크로나이저는 신규 DDS 어플리케이션이 도메인에 참여한 경우 해당 DDS 어플리케이션과 동일한 데이터를 구독하는 다른 DDS 어플리케이션들의 이전 구독 데이터를 DDS 어플리케이션에 동기화시킬 수 있다.
또한, 트랜잭션 모니터는 데이터 변경이 감지되면 데이터의 관계성을 확인하여 스토리지 매니저를 통해 데이터의 정보를 확인하여 연관된 데이터를 함께 발간할 수 있다.
본 발명은 데이터 분산 서비스(DDS)와 데이터베이스 관리 시스템(DBMS)을 연동시켜, DDS 미들웨어가 지원되지 않는 디바이스도 DDS 에이전트의 시맨틱이나 데이터 형식을 알지 못하더라도 DBMS와 DDS의 인터페이스를 통해 자동으로 데이터의 발간/구독이 가능해짐으로써 활용성이 높은 이점이 있다.
또, 발간되는 데이터에 해당 데이터의 동작 상태를 구분하는 코드값과 해당 데이터의 정보를 구분하는 키값을 추가하여 데이터의 동작 유형과 정보 유형을 어플리케이션에서 쉽게 인식할 수 있도록 함으로써, 수신단에서의 수신된 데이터에 대한 정보 분석을 쉽게 할 수 있어 데이터 처리 부하를 감소시키고 처리 속도를 향상시킬 수 있는 이점이 있다.
또한, 본 발명은 데이터 동기화시에 기 설정한 메모리 영역만 중복 검사를 실시함으로써 중복 검사에 따른 부하를 감소시켜 중복 검사 속도를 개선할 수 있는 이점이 있다.
도 1은 종래의 데이터 분산 서비스의 통신 방식에 대한 예시 도면.
도 2는 본 발명의 일실시예에 따른 데이터 분산 서비스(data distribution service) 지원 시스템의 개념도.
도 3은 본 발명의 일실시에에 따른 데이터 분산 서비스(data distribution service) 지원 시스템 각부의 세부 구성도.
도 4는 도 2의 DDS 에이전트의 세부 구성 및 동작 과정 설명도.
도 5는 본 발명에 따라 스토리지 매니저가 데이터를 표현하는 데이터 타입.
도 6은 도 2의 스토리지 매니저의 동작 과정의 예시도.
도 7은 도 2의 DDS 필터의 동작 과정의 예시도.
도 8은 도 2의 트랜잭션 모니터의 동작 과정 예시도.
도 9는 도 2의 싱크로나이저의 동작 과정 예시도.
도 10은 도 2의 메타데이터 매니저의 동작 과정 예시도.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세하게 설명하기로 한다.
도 2는 본 발명의 일실시예에 따른 데이터 분산 서비스(data distribution service) 지원 시스템의 개념도이고, 도 3은 본 발명의 일실시에에 따른 데이터 분산 서비스(data distribution service) 지원 시스템 각부의 세부 구성도이며, 도 4는 도 2의 DDS 에이전트의 세부 구성 및 동작 과정 설명도이다.
도 2 내지 도 3을 참조하면, 본 발명의 DDS-DB 연동 시스템은 DDS 어플리케이션(10), 데이터 분산 서비스 에이전트(20, 이하 DDS 에이전트라 함), DDS-DB 엔진(30), DDS-DB 브리지(40), 데이터베이스 관리 시스템(50) 및 DBMS 어플리케이션(60)을 포함한다.
이때, DDS 어플리케이션(10)은 데이터 분산 서비스 에이전트(20)에 데이터에 대한 발간/구독을 요청하는 디바이스로서, 통신 기능이 탑재된 다양한 센서들 또는 사용자 단말기 등이 여기에 해당된다. 또한, DDS 어플리케이션(10)은 도메인 내에서 데이터의 발간/구독 서비스 실행을 위한한 미들웨어가 설치된다.
DDS 에이전트(20)는 DDS 어플리케이션(10)의 요청에 따라 데이터를 발간/구독을 담당하는 것으로서, DDS 에이전트(20)는 데이터 발간 구독을 위한 인터페이스인 DCPS(Data-Centric Publish-Subscribe) 계층(21) 및 분산된 DDS 어플리케이션 사이의 데이터 전송 프로토콜인 RTPS(Real-Time Publish-Subcribe) 계층(22)을 포함한다.
DDS 에이전트(20)는 데이터 발간/구독을 위하여 DataWriter(201), Publisher(202)로 구성된 송신부(200)와 데이터를 구독하기 위해 DataReader(301), Subscriber(302)로 구성된 수신부(300)를 포함한다.
이때, 송신부(200)와 수신부(200)의 DataWriter(201), Publisher(202), DataReader(301), Subscriber(302)와 데이터는 DCPS 계층(21)을 구성하는 요소이다.
DataWriter(201)는 어플리케이션으로 전달 받은 데이터 발간을 위해 라이트(write)하는 역할을 수행하며, DataWriter(201) 한 개는 하나의 데이터에 대해서만 라이트(write) 할 수 있다.
Publisher(202)는 DataWriter(201)를 통해 라이트(write)된 데이터를 발간하는 역할을 수행하고, 여러 개의 DataWriter(201)를 가질 수 있어 여러 데이터에 대하여 발간 할 수 있다.
DataReader(301)는 DataWriter(201)와 반대로 Subscriber(302)에서 전달 받은 데이터를 리드(read)하고, DDS 어플리케이션은 해당 데이터의 read/take를 통해 확인 할 수 있다. read는 DDS 어플리케이션이 데이터를 읽은 후 DataReader 메모리에서 삭제하지 않고, take는 읽은 후 메모리에서 삭제한다. DataReader(301)는 DataWriter(302)와 마찬가지로 DataReader(302)한 개당 하나의 데이터에 대해서만 read 할 수 있다.
Subscriber(302)는 Publisher(202)가 발간 한 데이터를 구독하는 기능을 수행한다. Subscriber(302)를 통해 구독 된 데이터는 DataReader(301)에게 전달이 되고, Subscriber(302)는 여러 개의 DataReader(302)를 가질 수 있어 여러 데이터에 대해 구독이 가능하다.
상술한 DCPS 구성 요소들을 통해 데이터가 발간되는 동작 과정을 다음과 같다.
우선, DataWriter(201)와 DataReader(301)는 각각 하나의 데이터에 대해 write, read 한다. DataWriter(201)가 데이터에 대해 write를 하면 Publisher(302)를 통해 Data Domain으로 발간된다. 데이터 도메인에 발간된 데이터는 해당 데이터를 구독하는 Subscriber(302)에게 전달된다. 구독된 데이터는 DataReader(301)를 통해 read되고 DDS 어플리케이션(10)에서 확인 할 수 있는 동작 과정을 가진다.
이때 어플리케이션들 간에 데이터를 발간/구독하기 위해서는 DDS 어플리케이션들이 같은 도메인 내에 존재해야 하고, 도메인에 참가하기 위해서는 Domain Participant를 생성해야 한다. 동일한 도메인에 존재하지 않은 노드들 간에는 데이터를 발간/구독 할 수 없다.
한편, DDS-DB 엔진(30)은 데이터스 분산 서비스 에이전트(20)를 데이터베이스 관리 시스템(DBMS)과 연동시켜 도메인에서 발간/구독되는 데이터에 대한 데이터베이스 관리 시스템(DBMS)으로의 동기화를 관리하는 것으로서, DDS-DB 엔진은 스토리지 매니저(storage manager, 31), DDS 필터(32), 트랜잭션 모니터(33), 싱크로나이저(34) 및 메타데이터 매니저(35)를 포함한다.
우선, 데이터 분산 서비스(DDS) 에이전트(20)를 통해 발간/구독되는 데이터를 DBMS에 저장하여 후술하는 DDS 미들웨어가 설치되지 않은 DBMS 어플리케이션이 발간/구독할 수 있도록 하거나, DBMS에 삽입/변경되는 데이터들을 DDS 어플리케이션이 발간/구독할 수 있도록 하기 위하여, DDS의 데이터를 DBMS의 테이블의 형태에 맞게 저장하기 위한 기법이 필요하고 DBMS를 통해 데이터를 변경하기 위한 기법이 필요하다.
이에, 스토리지 매니저(31)가 DDS 에이전트(20)와 DBMS 사이에서 DDS 에이전트(20)를 통해 발간/구독되는 데이터의 DBMS에 저장하거나, DBMS의 변경 데이터들에 대하여 DDS 에이전트(20)에 연결된 DDS 어플리케이션(10)에서 사용 가능한 형태로 변환한다.
보다 구체적으로는, 기존에는 DBMS의 동작 중에 삽입(Insert)만 시퀀스 다이어그램에 표현하지만, 본 발명은 DBMS에서의 동작 상태를 나타내는 삽입(Insert)/삭제(Delete)/엡데이트(Update)를 모두 표현함으로써, 해당 데이터를 구독하는 어플리케이션들이 해당 데이터에 대한 동작 유형을 파악할 수 있도록 한다.
도 5는 본 발명에 따라 스토리지 매니저가 데이터를 표현하는 데이터 타입으로서, 스토리지 매니저(31)는 도 5에 도시된 바와 같이 DBMS에서 발간되는 데이터(401)와 함께 동작 상태를 나타내는 코드값 예를 들어 삽입/삭제/업데이트를 구분하는 코드 값(402)과 해당 데이터의 정보를 나타내는 키 값(405)을 시퀀스 다이어그램에 표현한다.
이때, 코드 값은 삽입(Insert)/삭제(Delete)/업데이트(Update) 동작 상태를 I,U,D로 표현한다. 이에 따라, 어플리케이션들은 해당 데이터의 동작 상태를 구분할 수 있으며, NULL 값일 경우 DDS를 통해 발간된 데이터가 DBMS로 저장되는 것으로 판단하여 Insert Operation을 수행한다.
또한, 키(Key) 값은 Update, Delete를 위해 데이터를 구분하는 역할을 수행하는 것으로서, 예를 들어 복수의 어플리케이션들이 데이터를 발간하는 경우 어떠한 어플리케이션에서 데이터를 발간했는지 알 수 없으므로 이를 구분하기 위한 값을 부여하거나, 단일 어플리케이션에서도 여러 데이터를 발간할 수 있으므로 데이터를 구분하기 위한 값을 부여할 수 있다.
또한, 스토리지 매니저(31)는 DBMS 어플리케이션(60)에 의해 데이터의 생성 및 변경 이벤트가 발생하면 해당 데이터에 동작 상태를 나타내는 삽입/삭제/업데이트 함수 중 어느 하나의 함수를 호출하여 해당 데이터를 데이터베이스 관리 시스템(DBMS)에 저장 관리 하는 기능을 수행한다.
도 6은 도 2의 스토리지 매니저의 동작 과정의 예시도로서, DBMS를 통해 변경된 데이터는 스토리지 매니저(31)에게 전달되어 DBMS에 반영되는데, 이때 DDS 에이전트의 DataReader(201)는 데이터를 구독하고 동시에 DDS-DB Bridge(40)와 DDS 필터(32) 스토리지 매니저(31)에 전달한다. 그러면, 스토리지 매니저(31)는 전달받고 트랜잭션을 판단하여 DBMS에 반영한다. 구체적으로는, 스토리지 매니저(31)는 DDS 에이전트에서 전달되는 시리얼라이즈(Serialized) 형태의 데이터를 전달받아 디시리얼라이즈(Deserialize)를 거쳐 DBMS의 형태에 맞게 데이터를 변환하고 해당하는 트랜잭션을 판단하여 DBMS에 저장한다.
DDS 필터(32)는 필터링 알고리즘을 통해 구독한 데이터의 중복여부를 판단하여 데이터가 이미 존재하는 중복 데이털일 경우 이미 저장한 데이터이므로 필터링 동작을 중지하고, 중복이 아닐 경우에는 Storage Manager에게 전달하여 DBMS에 반영한 후 할당한 메모리의 가장 마지막 주소에 저장하도록 하는 역할을 수행한다. 이때, DDS 필터(32)는 동일 데이터에 대한 중복 저장을 방지하기 위하여 DDS에서 발간/구독되는 데이터에 대한 중복 여부를 검사하는 것으로서, 동일한 도메인 내에서 동일한 데이터를 구독하는 DDS 어플리케이션이 둘 이상 존재할 경우 여러 데이터가 수신되면 그 중 하나의 DDS 어플리케이션이 발간/구독한 데이터만을 데이터베이스 관리 시스템에 반영한다.
이때, DDS 필터는 중복 데이터 검사 시간 단축을 위하여 일정 시간 동안 DDS에서 발간/구독한 데이터에 대해서만 중복 검사를 실시하거나, 데이터베이스 관리 시스템의 메모리에 대하여 중복 검사 영역을 설정하여, 동기화시에 중복 감사 영역에 대한 데이터의 변경 여부만을 검사할 수 있다.
도 7은 도 2의 DDS 필터의 동작 과정의 예시도로서, DDS 필터(32)는 필터링 알고리즘을 통해 구독한 데이터의 중복여부를 판단하여 중복일 경우 걸러내고 중복이 아닐 경우에는 스토리지 매니저에게 전달한다. 이때, DDS 필터(32)는 DDS의 RESOURCE_LIMITS QoS의 kind인 max_samples_per_instance 값을 리소스에 따라 다르게 설정하거나, "max_samples_per_instance" 사이즈의 메모리 중복 검사 영역을 설정하여 중복 검사를 실시한다. 여기서, DDS 필터(32)는 다수의 데이터에 대한 중복여부를 검사하므로 메모리의 중복 검사 영역에 대한 설정은 데이터를 발간하는 DataWriterID에 따라 "max_samples_per_instance" 사이즈가 다르게 설정될 수 있다.
트랜잭션 모니터(33)는 DBMS 어플리케이션이 DBMS에 데이터를 생성 및 변경할 경우 스토리지 매니저(31)로부터 이벤트 메시지를 받아 변동 여부를 감지하고 변동 데이터를 DDS 에이전트(20)로 발간하도록 하는 역할을 한다.
도 8은 도 2의 트랜잭션 모니터의 동작 과정 예시도로서, DBMS 어플리케이션(60)이 DBMS에 데이터의 삽입/삭제/변경함으로써 DBMS의 데이터 변동이 발생하고 DBMS를 통해 변경된 데이터의 커밋(commit)이 완료되면, 트랜잭션 모니터(33)는 스토리지 매니저(31)에 이벤트 메시지를 요청한다. 이후, 트랜잭션 모니터(33)는 이벤트 메시지를 받으면 변경을 감지하고 DDS 에이전트에 맞게 데이터를 시리얼라이즈한 뒤 DDS-DB 브리지(40)를 통해 데이터를 발간한다.
이때, 트랜잭션 모니터는 트랜잭션 모니터는 데이터 변경이 감지되면 데이터의 관계성을 확인하여 상기 스토리지 매니저를 통해 데이터의 정보를 확인하여 연관된 데이터를 함께 발간한다. 구체적으로는, 발간/구독되는 데이터에 대한 상속이나 참조와 같은 관계성을 확인하여 DBMS 어플리케이션에 의해 삽입(Insert)/삭제(Delete)/업데이트(Updat)와 같은 데이터 변동이 발생하면, 관련된 데이터를 찾아 한꺼번에 데이터를 발간하는 것으로서, 트랜잭션 모니터(Tx Monitor)가 데이터 변경을 감지하면 스토리지 매니터(Storage Manager)는 메타데이터 매니저(35)에 데이터에 대한 관계성을 확인하고, 스토리지 매니저(31)는 해당 데이터와의 관계성 정보를 확인하여 DDS 에이전트의 DataWriter를 통해 데이터가 발간되도록 하는 것이다.
싱크로나이저(34)는 동일한 데이터를 구독하는 다른 DDS 어플리케이션들에 데이터를 동기화하는 것으로서, DDS 어플리케이션(10)의 오류로 인해 반영하지 못한 데이터가 생길 경우 또는 발간/구독 과정 중 추가로 데이터를 구독하는 신규 DDS 어플리케이션(10)이 생기는 경우 동일 데이터를 구독하는 다른 DDS 어플리케이션(10)을 통해 동기화를 수행한다.
도 9는 도 2의 싱크로나이저의 동작 과정 예시도로서, 동기화를 요청하는 DDS 어플리케이션(A node)의 동기화 요청이 있으면 해당 DDS 어플리케이션(A node)의 싱크로나이저(34)는 자신이 구독하는 데이터와 동일한 데이터를 수신하는 DDS 어플리케이션(B node)의 정보를 얻기 위하여 메타데이터 매니저(35)에 데이터 이름을 전달한다. 그러면, 메타데이터 매니저(35)는 싱크로나이저(34)로부터 전달받은 데이터의 이름으로 해당 데이터를 구독하는 다른 DDS 어플리케이션의 IP를 검색하여 상기 싱크로나이저에 반환한다.
이어서, 싱크로나이저(34)는 반환된 IP를 갖는 다른 어플리케이션(B node) 싱크로나이저(34a)에 동기화를 요청한다.
그러면, 요청을 받은 DDS 어플리케이션(B node)의 싱크로나이저(34a)는 DDS 어플리케이션과 통신하여 마지막으로 수행된 트랜잭션 로그 파일을 열어 데이터 변경을 확인하여 변경 데이터를 동기화한다. 즉, 동기화 요청을 받은 요청을 받은 DDS 어플리케이션(B node)은 DBMS(50a)을 통해 트랜잭션 로그(Tx Log)를 생성하고, 동기화를 요청한 DDS 어플리케이션(A node)의 싱크로나이저(34)에게 전달한다. 이후, 트랜잭션 로그(Tx Log)를 전달 받은 싱크로나이저(34)는 스토리지 매니저(31)을 통해 동기화를 수행한다.
메타데이터 매니저(35)는 메타데이터 매니저(35)는 데이터 발간을 위하여 특정 데이터를 발간하는 Dada writer에 대한 ID 정보를 유지하고 동일한 데이터를 구독하는 DDS 어플리케이션들의 동기화를 위해 DataReader의 IP와 Port정보를 유지하는 역할을 한다. 즉, 다른 노드와 통신을 하기 위해서는 통신에 필요한 IP와 데이터의 이름이 필요하므로, 매타데이터 매니저(35)는 자신의 DDS 어플리케이션(19)과 동일한 데이터를 수신하는 다른 노드들에 대한 정보를 유지하고 싱크로나이저(34)의 요청이 있을 경우 해당 정보를 싱크로나이저(34)에 반환하는 역할을 하는 것이다.
도 10은 도 2의 메타데이터 매니저의 동작 과정 예시도로서, 싱크로나이저(34)로부터 정보를 요청하는 메시지를 받으면 DDS-DB Bridge를 통해 DDS의 RTPS로부터 동일한 데이터를 구독하는 다른 DDS 어플리케이션(10)의 이름과, ID 및 IP port 정보를 받아와 싱크로나이저(35)로 전달하며, 전달한 정보들을 DBMS(50)에 저장하여 관리한다.
한편, DDS-DB 브리지(40)는 DDS 에이전트(20)와 DDS-DB 엔진(40) 간의 인터페이스를 제공하고, DBMS 어플리케이션(60)은 데이터베이스 관리 시스템(DBMS)에 직접 데이터를 생성 및 변경하는 역할을 한다. 이때, DBMS 어플리케이션(60)는 DDS 미들웨어가 설치되거나 또는 설치되지 않은 디바이스로서 DBMS에 직접 엑세스하여 데이터의 변경이 가능하다. 이와 같이 본 발명은 DDS 미들웨어가 지원되지 않는 디바이스도 DDS 에이전트의 시맨틱이나 데이터 형식을 알지 못하더라도 DBMS와 DDS의 인터페이스를 통해 자동으로 데이터의 발간/구독이 가능해짐으로써 활용성이 높은 장점이 있다.
비록 본 발명이 상기 언급된 바람직한 실시예와 관련하여 설명되어졌지만, 발명의 요지와 범위로부터 벗어남이 없이 다양한 수정이나 변형을 하는 것이 가능하다. 따라서 첨부된 특허청구의 범위는 본 발명의 요지에서 속하는 이러한 수정이나 변형을 포함할 것이다.
10 : DDS 어플리케이션 20 : DDS 에이전트
21 : DCPS 22 : RTPS
30 : DDS-DB 엔진 31 : 싱크로 나이저
32 : DDS 필터 33 : 트랜잭션 모니터
34 : 싱크로나이저 35 : 메타데이터 매니저
40 : DDS-DB 브리지 50 : DBMS
50 : DBMS 어플리케이션

Claims (6)

  1. 복수의 DDS 어플리케이션의 요청에 따라 데이터를 발간/구독하는 데이터 분산 서비스 에이전트(DDS)와, 도메인에서 발간/구독되는 데이터에 대한 데이터베이스 관리 시스템(DBMS)으로의 동기화를 관리하는 DDS-DB 엔진과, 상기 데이터 분산 서비스 에이전트와 DDS-DB 엔진 간의 인터페이스를 제공하는 DDS-DB 브리지 및 데이터베이스 관리 시스템(DBMS)에 직접 데이터를 생성 및 변경하는 DBMS 어플리케이션을 포함하는 데이터 분산 서비스(data distribution service)를 지원하는 시스템에 있어서,
    DDS-DB 엔진은,
    상기 데이터베이스 관리 시스템에서 발간되는 데이터와 함께 데이터베이스의 동작 상태를 구분하는 코드 값과 해당 데이터의 정보를 나타내는 키 값을 시퀀스 다이어그램에 표현하고, 상기 DBMS 어플리케이션에 의해 데이터의 생성 및 변경 이벤트가 발생하면 해당 데이터에 대한 동작 상태를 나타내는 함수 중 어느 하나를 호출하여 해당 데이터를 데이터베이스 관리 시스템(DBMS)에 저장 관리하는 스토리지 매니저(storage manager)와,
    데이터 분산 서비스 에이전트(DDS)에서 발간/구독되는 데이터에 대한 중복 여부를 검사하는 DDS 필터와,
    상기 DBMS 어플리케이션이 데이터를 생성 및 변경할 경우 데이터 변동 여부를 감지하고 변동 데이터를 상기 데이터 분산 서비스 에이전트(DDS)로 발간하도록 하는 트랜잭션 모니터;
    동일한 데이터를 구독하는 다른 데이터 분산 서비스 에이전트(DDS)들에 데이터를 동기화하는 싱크로나이저;
    상기 DDS 어플리케이션들 사이에서 동일한 데이터를 수신하는 다른 DDS 어플리케이션에 대한 정보를 유지하고 상기 싱크로나이저의 요청이 있을 경우 해당 정보를 상기 싱크로나이저로 반환하는 메타데이터 매니저를 포함함을 특징으로 하는 DDS-DB 연동 시스템.
  2. 삭제
  3. 삭제
  4. 제 1항에 있어서,
    상기 DDS 필터는 동일한 도메인 내에서 동일한 데이터를 구독하는 DDS 어플리케이션이 둘 이상 존재할 경우 여러 데이터가 수신되면 그 중 하나의 DDS 어플리케이션이 발간/구독한 데이터만을 상기 데이터베이스 관리 시스템에 반영하고,
    중복 데이터 검사 시간 단축을 위하여 중복 검사 시점으로부터 일정 시간 이내에 DDS에서 발간/구독한 데이터에 대해서만 중복 검사를 실시하며,
    중복 데이터 검사 시간 단축을 위하여 상기 데이터베이스 관리 시스템의 메모리에 대하여 중복 검사 영역을 설정하여, 동기화시에 중복 감사 영역에 대한 데이터의 변경 여부만을 검사하는 것을 특징으로 하는 DDS-DB 연동 시스템.
  5. 제 1항에 있어서,
    상기 싱크로나이저는 상기 DDS 어플리케이션이 오류로 인하여 중지되었다가 재동작하는 경우 및 신규 DDS 어플리케이션이 상기 도메인에 참여한 경우 상기 데이터베이스 관리 시스템에 동기화된 이전 발간/구독 데이터를 상기 각 DDS 어플리케이션과 연결된 데이터베이스 관리 시스템에 동기화시키고,
    상기 싱크로나이저는 자신이 구독하는 데이터와 동일한 데이터를 수신하는 상기 DDS 어플리케이션의 정보를 얻기 위하여 상기 메타 데이터 매니저에 데이터 이름을 전달하고,
    상기 메타데이터 매니저는 싱크로나이저로부터 전달받은 데이터의 이름으로 해당 데이터를 구독하는 다른 DDS 어플리케이션의 IP를 검색하여 상기 싱크로나이저에 반환하고,
    상기 싱크로나이저는 상기 반환된 IP를 갖는 DDS 어플리케이션과 통신하여 마지막으로 수행된 트랜잭션 로그 파일을 열어 데이터 변경을 확인하여 변경 데이터를 동기화하며,
    상기 싱크로나이저는 신규 DDS 어플리케이션이 도메인에 참여한 경우 해당 DDS 어플리케이션과 동일한 데이터를 구독하는 다른 DDS 어플리케이션들의 이전 구독 데이터를 상기 DDS 어플리케이션에 동기화시키는 것을 특징으로 하는 DDS-DB 연동 시스템.
  6. 제 1항에 있어서,
    상기 트랜잭션 모니터는 데이터 변경이 감지되면 데이터의 관계성을 확인하여 상기 스토리지 매니저를 통해 데이터의 정보를 확인하여 연관된 데이터를 함께 발간하는 것을 특징으로 하는 DDS-DB 연동 시스템.
KR1020140003203A 2014-01-10 2014-01-10 Dds-db 연동 시스템 KR101545626B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140003203A KR101545626B1 (ko) 2014-01-10 2014-01-10 Dds-db 연동 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140003203A KR101545626B1 (ko) 2014-01-10 2014-01-10 Dds-db 연동 시스템

Publications (2)

Publication Number Publication Date
KR20150083938A KR20150083938A (ko) 2015-07-21
KR101545626B1 true KR101545626B1 (ko) 2015-08-20

Family

ID=53873666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140003203A KR101545626B1 (ko) 2014-01-10 2014-01-10 Dds-db 연동 시스템

Country Status (1)

Country Link
KR (1) KR101545626B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170130911A (ko) 2016-05-20 2017-11-29 주식회사 리얼타임테크 Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038529B1 (ko) * 2017-11-30 2019-10-30 주식회사 리얼타임테크 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
KR102068782B1 (ko) * 2018-05-31 2020-01-21 한전케이디엔 주식회사 데이터 분산서비스 용 통신 애플리케이션 관리 및 운영 시스템
KR101950012B1 (ko) * 2018-07-24 2019-02-19 한화시스템(주) 효율적인 보안통신을 위한 dds 시스템 및 방법
KR102339661B1 (ko) * 2018-09-28 2021-12-14 (주)구름네트웍스 Dds를 위한 게이트웨이 장치
KR102279601B1 (ko) * 2018-09-28 2021-07-19 (주)구름네트웍스 Dds를 위한 게이트웨이 구동 방법
KR102022570B1 (ko) * 2019-04-18 2019-09-18 한화시스템(주) 데이터 분산 서비스 시스템 및 이를 이용한 메시지 전송 방법
CN116431368B (zh) * 2023-06-13 2023-09-22 湖南大学 一种面向自主无人系统的传感器即插即用中间件

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"DDS와 DBMS 연동을 위한 엔진 설계 및 DBMS2DDS 메커니즘 구현", 이현우, 2012.02.28., http://www.riss.kr/link?id=T12757132*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170130911A (ko) 2016-05-20 2017-11-29 주식회사 리얼타임테크 Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법

Also Published As

Publication number Publication date
KR20150083938A (ko) 2015-07-21

Similar Documents

Publication Publication Date Title
KR101545626B1 (ko) Dds-db 연동 시스템
CN1656480B (zh) 允许同步具备不同能力的不同设备中的数据的方法和设备
US9753954B2 (en) Data node fencing in a distributed file system
US9432455B2 (en) Synchronizing events between mobile devices and servers
CN106506703B (zh) 基于共享内存的服务发现方法、装置及系统、服务器
CN1531303B (zh) 协议无关的客户端高速缓存系统和方法
US20030088659A1 (en) System and method for distributed state management
US10726042B2 (en) Replication control using eventually consistent meta-data
KR100747466B1 (ko) 추가 속성을 가지는 노드를 이용하는 장치 관리 방법 및장치 관리 클라이언트
CN109376197B (zh) 一种数据同步方法、服务器及计算机存储介质
US8909662B2 (en) Message based mobile object with native PIM integration
CN108804119A (zh) 配置更新方法、装置、系统、配置中心、应用节点及介质
EP1678638A2 (en) System and method for providing record synchronization in a healthcare setting
WO2007059465A2 (en) Server side application integration framework
CN101277212B (zh) 资源管理平台及资源管理方法
CN103338243A (zh) Web节点的缓存数据更新方法和系统
CN105162879A (zh) 实现多机房数据一致性的方法、装置及系统
CN107168970A (zh) 一种分布式文件系统hdfs的管理方法、装置及系统
CN110795395B (zh) 文件部署系统和文件部署方法
CN110781149A (zh) 管理直播间信息的方法、装置、设备及存储介质
CN101064619B (zh) 一种具有主题分发功能的资源管理平台及其方法
CN111460038A (zh) 一种数据准实时同步方法及装置
CN101276269A (zh) 可扩展资源管理平台
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
CN101610225B (zh) 一种同步处理方法、系统和装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180906

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190709

Year of fee payment: 5