맨위로가기

데이터 분산 서비스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터 분산 서비스(DDS)는 객체 관리 그룹(OMG)에서 개발한 분산 시스템을 위한 미들웨어 표준이다. DDS는 게시-구독 패턴을 기반으로 하여 노드 간의 데이터, 이벤트, 명령을 효율적으로 송수신하며, 데이터 중심 퍼블리시-서브스크라이브(DCPS)와 데이터 로컬 재구성 계층(DLRL)의 두 가지 인터페이스를 제공한다. 다양한 프로그래밍 언어와 운영 체제를 지원하며, 실시간 퍼블리시-서브스크라이브 와이어 프로토콜을 통해 상호 운용성을 보장한다. DDS는 복잡한 네트워크 프로그래밍을 단순화하고, 서비스 품질(QoS) 매개변수를 통해 통신 동작을 사전 구성할 수 있게 하여 군사용 시스템, 항공 관제 시스템, 산업용 사물 인터넷(IIoT) 등 다양한 분야에서 활용된다. 주요 구현체로는 RTI Connext DDS, OpenSplice DDS 등이 있다.

더 읽어볼만한 페이지

  • 컴퓨터 표준 - 포트란
    포트란은 1950년대 IBM에서 개발되어 과학 및 공학 계산에 주로 사용되는 프로그래밍 언어이며, '수식 번역 시스템'에서 유래하여 객체 지향 프로그래밍, 병렬 처리 등의 기능이 추가되며 현대적인 언어로 발전해왔다.
  • 컴퓨터 표준 - PCI 익스프레스
    PCI 익스프레스(PCIe)는 고속 직렬 통신을 사용하는 컴퓨터 확장 카드 인터페이스 규격으로, 점대점 연결 방식과 패킷 기반 데이터 전송, 그리고 다양한 레인 구성과 지속적인 발전을 특징으로 한다.
  • 분산 컴퓨팅 - 클라우드 컴퓨팅
    클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 자원을 서비스 형태로 제공하는 모델로, 다양한 서비스 및 배치 모델을 가지며 비용 효율성과 확장성을 제공하지만 보안 및 의존성 문제도 존재하며 지속적으로 발전하고 있다.
  • 분산 컴퓨팅 - 그리드 컴퓨팅
    그리드 컴퓨팅은 지리적으로 분산된 컴퓨터 자원을 연결하여 가상 슈퍼컴퓨터를 구축하는 기술이며, 유휴 자원을 활용하고 과학 연구 등 다양한 분야에 활용된다.
  • 통신 - 무선 통신
    무선 통신은 전선 없이 전자기파 등을 이용하여 정보를 전달하는 방식으로, 마르코니의 무선 전신 실험 성공 이후 다양한 형태로 발전해왔으며, 현대 사회에서 필수적인 기술로 자리 잡았다.
  • 통신 - 메이데이
    메이데이는 심각한 위험에 처한 선박, 항공기 등이 즉각적인 구조를 요청할 때 사용하는 국제적인 구조 신호로, 1923년 프레더릭 스탠리 맥포드가 프랑스어 "m'aidez"에서 착안하여 고안되었으며, 허위 호출은 범죄로 간주된다.
데이터 분산 서비스

2. 버전 역사

DDS 규격 개발은 2001년에 시작되었다. 객체 관리 그룹(OMG)은 2004년 DDS 버전 1.0을 발표했다.[8] 이후 2005년 12월에 버전 1.1,[9] 2007년 1월에 1.2,[10] 2015년 4월에 1.4를 발표했다.[11]

DDS는 여러 미국 특허로 보호받고 있다.[12][13][14][15]

DDS 버전 역사
버전발표 날짜
1.02003년 6월
1.12005년 12월 4일
1.22007년 1월 1일
1.42015년 4월


2. 1. 관련 표준


  • DDS-RTPS영어 (Real-time Publish-Subscribe) 2.2[1]: RTPS 프로토콜의 최신 버전이다.
  • DDS-WEB영어 1.0 Beta[2]: DDS와 웹 환경의 통합을 위한 규격이다. QoS의 XML 정의도 포함한다.
  • DDS-DLRL영어 1.4 Beta[3]: DDS 버전 1.2까지 확장으로 포함되었던 규격으로, 별도로 분리되었다.
  • DDS-XTypes영어[4]: 토픽 형식을 변경 가능하게 하는 확장 사양이다.
  • DDS Security영어[5]: 보안 확장 사양이다.
  • DDS-PSM-Cxx영어[6]: C++ 2003 STL 지원 API이다.

3. 구조

DDS는 데이터 중심의 발행-구독(Publish-Subscribe) 모델을 기반으로 분산 애플리케이션 간의 통신을 지원한다. 정보를 생성하는 노드(publisher)는 "토픽"을 생성하고 "샘플"을 발행하며, DDS는 해당 토픽에 관심이 있다고 선언한 모든 구독자(subscriber)가 샘플을 받을 수 있도록 작동한다.[1]

DDS는 메시지 주소 지정, 데이터 마샬링(subscriber와 publisher는 서로 다른 플랫폼이어도 됨), 배포, 흐름 제어, 재전송 등 전송과 관련된 모든 잡무를 처리한다. 각 노드는 publisher가 될 수도 있고 subscriber가 될 수도 있으며, 동시에 두 가지 역할을 수행할 수도 있다.[1]

DDS 발행-구독 모델은 분산 애플리케이션에서 복잡한 네트워크 프로그래밍을 단순화한다.[1] DDS는 기본적인 발행-구독 모델 외에도 애플리케이션 간 상호 작용 설계 시간을 절약하고, 위치나 존재 여부에 관계없이 메시지 배달을 자동 제어하는 기능을 제공한다. 사용자 애플리케이션은 서비스 품질(QoS) 파라미터를 지정하여 자동 감지 기구를 설정하거나 메시지 송수신 동작을 지정할 수 있으며, 이는 분산 애플리케이션 설계를 단순화하고 모듈화를 돕는다.[1]

DDS는 publisher의 이중화에 의한 핫 스왑도 제어한다. 핫 스왑 중에도 subscriber는 항상 유효한(publisher가 지정한 유효 기간 내) 고 우선순위 데이터 샘플을 받으며, 장애 복구 시 1차 publisher로 자동 복구된다.[1]

3. 1. DDS 엔트리 (DDS 구성 요소)

DomainParticipantFactory: DDS의 진입점인 싱글턴 팩토리이다.
DomainParticipant: 특정 도메인 내에서 통신을 위한 진입점이다. 하나의 도메인에 애플리케이션의 참가자를 표현한다. 또한 DDS 출판(Publish), 구독(Subscribe), 토픽(Topic), 멀티토픽(Multi-Topic), 콘텐트필터드토픽(ContentFilteredTopics)의 생성에 대한 팩토리로서 동작한다.
TopicDescription: 토픽, 콘텐트필터드토픽, 멀티토픽을 위한 추상화된 기본 클래스이다.
Topic: TopicDescription의 분화한 형태로, 대부분의 데이터의 기본 디스크립션이며, 출판되거나 구독된다.
ContentFilteredTopic: Topic과 같은 TopicDescription의 분화된 형태로 콘텐츠 기반의 구독을 허용한다.
MultiTopic: Topic과 같은 TopicDescription의 분화된 형태로, 여러 개의 토픽들로부터 데이터의 결합/필터/재배치를 허용한다.
Publisher: 출판자(Publisher)는 객체로, 실제로 데이터의 보급을 책임진다.
DataWriter: 애플리케이션이 주어진 토픽 하에서 출판되기 위해 데이터 값을 설정한다.
Subscriber: 구독자(Subscriber)는 객체로 구독물로부터 데이터 결과를 실제로 받는 것을 책임진다.
DataReader: 애플리케이션이 받기를 원하는 데이터가 있음을 알리면(토픽, 콘텐트 필터드 토픽 또는 멀티토픽을 이용한 서브스크립션이 만들어진) 허용하고, 덧붙여진 구독자에 의해 받은 데이터를 액세스할 수 있다.

3. 2. DDS 모델

DDS는 복잡한 네트워크 프로그래밍을 단순화하는 미들웨어이다. 이는 노드 간의 데이터, 이벤트 및 명령을 송수신하기 위해 게시-구독 패턴을 구현한다. 정보를 생성하는 노드(게시자)는 "토픽"(예: 온도, 위치, 압력)을 생성하고 "샘플"을 게시한다. DDS는 해당 토픽에 관심을 선언한 구독자에게 샘플을 전달한다.

DDS는 메시지 주소 지정, 데이터 마샬링 및 언마샬링 (구독자가 게시자와 다른 플랫폼에 있을 수 있도록), 전달, 흐름 제어, 재시도 등과 같은 전송 작업을 처리한다. 모든 노드는 게시자, 구독자 또는 둘 다 동시에 될 수 있다.

DDS 게시-구독 모델은 분산 애플리케이션에 대한 복잡한 네트워크 프로그래밍을 사실상 제거한다.

DDS는 기본 게시-구독 모델을 넘어선 메커니즘을 지원한다. 핵심 이점은 통신에 DDS를 사용하는 애플리케이션이 분리된다는 것이다. 상호 작용을 처리하는 데 거의 설계 시간을 할애할 필요가 없다. 특히 애플리케이션은 존재 여부나 위치를 포함하여 다른 참여 애플리케이션에 대한 정보가 필요하지 않다. DDS는 사용자 애플리케이션의 개입 없이 다음을 포함한 메시지 전달을 투명하게 처리한다.

  • 누가 메시지를 받아야 하는지 결정
  • 수신자의 위치
  • 메시지를 전달할 수 없는 경우 발생하는 일


DDS를 사용하면 사용자가 서비스 품질 (QoS) 매개변수를 지정하여 검색 및 동작 메커니즘을 사전에 구성할 수 있다. 익명으로 메시지를 교환함으로써 DDS는 분산 애플리케이션을 단순화하고 모듈식의 잘 구조화된 프로그램을 장려한다. DDS는 또한 기본 게시자에 장애가 발생할 경우 중복 게시자를 자동으로 핫 스와핑한다. 구독자는 데이터가 여전히 유효한(즉, 게시자가 지정한 유효 기간이 만료되지 않은) 가장 높은 우선 순위의 샘플을 항상 얻는다. 또한 복구 시 기본 게시자로 자동 전환된다.

4. 상호 운용성

DDS는 Ada, C, C++, C#, Java, Python, Scala, Lua, 파로, Ruby, Rust로 구현된 응용 프로그래밍 인터페이스 (API) 및 라이브러리를 제공한다.

DDS 공급업체는 2009년부터 2013년까지 OMG 봄 기술 회의에서 상호 운용성 시연에 참여했다. 이 시연에서 각 공급업체는 'shapes 데모'라는 테스트 스위트를 사용하여 서로의 토픽을 게시하고 구독했다. 예를 들어 한 공급업체가 모양에 대한 정보를 게시하면, 다른 공급업체는 해당 토픽을 구독하여 자체 모양 디스플레이에 결과를 표시할 수 있었다. 각 공급업체는 번갈아 가며 정보를 게시하고 다른 공급업체는 구독하는 방식으로 진행되었다.

OMG 데이터 분산 서비스 상호 운용성


이러한 상호 운용성은 DDS-I 또는 실시간 게시-구독 (RTPS) 프로토콜과 공통 모델 사용에 대한 합의 덕분에 가능했다.

2009년 3월, 세 공급업체는 2009년 1월부터 OMG 실시간 게시-구독 프로토콜 버전 2.1을 구현한 개별 독립 제품 간의 상호 운용성을 시연했다. 시연에는 서로 다른 OS 플랫폼(마이크로소프트 윈도우리눅스)에서 서로의 게시자 및 구독자 검색이 포함되었으며, 멀티캐스트유니캐스트 네트워크 통신을 지원했다.

DDS 상호 운용성 시연에서는 다음과 같은 시나리오를 사용했다.

시나리오
인터넷 프로토콜 (IP)을 사용한 기본적인 네트워크 연결
게시자 및 구독자 검색
요청자와 제공자 간의 서비스 품질 (QoS) 호환성
지연 허용 네트워크
다중 토픽 및 토픽 인스턴스
토픽의 독점 소유권
시간 및 지리적 위치를 포함한 토픽 데이터의 콘텐츠 필터링


5. 주요 구현체

6. 채택 사례

DDS는 미국 해군 오픈 아키텍처(OA)에 채택된 이후, 미 국방부 전체 조달 규격(COTS)에 통합되었다. 이후 각국의 군용 및 민간용 시스템에 채택되고 있다.

국가채택 분야 및 시스템
미국강습 상륙함(LPD-17), 개함 방어 시스템(SSDS), 함내 네트워크(SWAN), 이지스 시스템, 함내 네트워크(SWAN)를 갱신한 TSCEi (Zumwalt DDG 1000 등)
캐나다/유럽항공 관제 시스템 (서방에서는 RTI Connext, 동방에서는 OpenSplice 채택)
스웨덴SAAB 9LV
대한민국한국 해군 차세대 함정, 지능형 교통 시스템, 스마트 팩토리 등



항공기기용 소프트웨어 표준 규격 "FACE"의 통신 미들웨어로 채택되었다. 산업용 사물 인터넷(IIOT) 통신 미들웨어로도 유망하다.

참조

[1] 웹사이트 DDS Interoperability Demo http://www.omg.org/n[...] Object Management Group 2009-08-12
[2] 웹사이트 DDS Interoperability Demo December 2010 https://d2vkrkwbbxby[...] Real-Time Innovations, Inc 2010-12-11
[3] 간행물 OMG DDS Interoperability Demo 2011 https://community.rt[...] 2011-03-01
[4] 간행물 OMG DDS Interoperability Demo 2012 https://community.rt[...] 2012-03-01
[5] 간행물 DDS Interoperability Demo 2013 Washington DC http://www.slideshar[...] 2013-03-01
[6] 웹사이트 DDS Interoperability Demonstration https://www.youtube.[...] Real-Time Innovations 2010-12-14
[7] 웹사이트 The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification (DDSI-RTPS) http://www.omg.org/s[...] 2019-05-01
[8] 웹사이트 Data Distribution Service (DDS), Version 1.0 http://www.omg.org/s[...] Object Management Group 2004-12-02
[9] 웹사이트 Data Distribution Service (DDS), Version 1.1 http://www.omg.org/s[...] 2005-12-04
[10] 웹사이트 Data Distribution Service (DDS), Version 1.2 http://www.omg.org/s[...] 2007-01-01
[11] 웹사이트 Data Distribution Service (DDS), Version 1.4 http://www.omg.org/s[...] 2015-04-10
[12] 특허 US Patent US8874686 https://patents.goog[...]
[13] 특허 US Patent US8671135 https://patents.goog[...]
[14] 특허 US Patent US8150988 https://patents.goog[...]
[15] 특허 US Patent US9015672 https://patents.goog[...]
[16] 간행물 DDS for Lightweight CCM (dds4ccm), Version 1.1 http://www.omg.org/s[...] 2012-02-01
[17] 간행물 Programming languages — C++ http://www.iso.org/i[...] ISO/IEC 2003-10-15
[18] 간행물 DDS-PSM-Cxx: ISO/IEC C++ 2003 Language DDS PSM, Version ptc/2011-01-02 http://www.omg.org/s[...] 2011-01-01
[19] 간행물 Extensible and Dynamic Topic Types for DDS (DDS-XTypes) http://www.omg.org/s[...] 2012-11-10
[20] 간행물 UML Profile for Data Distribution http://www.omg.org/c[...]
[21] 간행물 DDS-Java: Java 5 Language PSM for DDSVersion 1.0 http://www.omg.org/s[...] 2013-03-01
[22] 웹사이트 Interface Definition Language (IDL), Version 3.5 http://www.omg.org/s[...] OMG 2014-03-01
[23] 웹사이트 About the DDS For Extremely Resource Constrained Environments Specification Version 1.0 https://www.omg.org/[...] 2021-03-12
[24] 웹사이트 About the RPC Over DDS Specification Version 1.0 https://www.omg.org/[...] 2021-03-12
[25] 웹사이트 DDS Data Local Reconstruction Layer (DDS-DLRL) http://www.omg.org/s[...] 2015-04-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com