데이터 분산 서비스
"오늘의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]
버전 | 발표 날짜 |
---|---|
1.0 | 2003년 6월 |
1.1 | 2005년 12월 4일 |
1.2 | 2007년 1월 1일 |
1.4 | 2015년 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 데모'라는 테스트 스위트를 사용하여 서로의 토픽을 게시하고 구독했다. 예를 들어 한 공급업체가 모양에 대한 정보를 게시하면, 다른 공급업체는 해당 토픽을 구독하여 자체 모양 디스플레이에 결과를 표시할 수 있었다. 각 공급업체는 번갈아 가며 정보를 게시하고 다른 공급업체는 구독하는 방식으로 진행되었다.
이러한 상호 운용성은 DDS-I 또는 실시간 게시-구독 (RTPS) 프로토콜과 공통 모델 사용에 대한 합의 덕분에 가능했다.
2009년 3월, 세 공급업체는 2009년 1월부터 OMG 실시간 게시-구독 프로토콜 버전 2.1을 구현한 개별 독립 제품 간의 상호 운용성을 시연했다. 시연에는 서로 다른 OS 플랫폼(마이크로소프트 윈도우 및 리눅스)에서 서로의 게시자 및 구독자 검색이 포함되었으며, 멀티캐스트 및 유니캐스트 네트워크 통신을 지원했다.
DDS 상호 운용성 시연에서는 다음과 같은 시나리오를 사용했다.
시나리오 |
---|
인터넷 프로토콜 (IP)을 사용한 기본적인 네트워크 연결 |
게시자 및 구독자 검색 |
요청자와 제공자 간의 서비스 품질 (QoS) 호환성 |
지연 허용 네트워크 |
다중 토픽 및 토픽 인스턴스 |
토픽의 독점 소유권 |
시간 및 지리적 위치를 포함한 토픽 데이터의 콘텐츠 필터링 |
5. 주요 구현체
- http://www.rti.com/products/dds/index.html RTI Connext DDS - Real-Time Innovations사의 COTS 실시간 DDS API (C, C++, Java). 임베디드 시스템을 포함한 다양한 플랫폼용 파생 제품으로 "RTI Connext DDS Secure"(DDS Secure 대응), "Connext DDS Micro"(임베디드용 축소판), "Connext DDS Cert"(Connext DDS Micro에 DO-178C Level A 인증 획득용 자료 추가)가 있다.[1]
- http://www.prismtech.com/opensplice OpenSplice - 유럽 최대 군수 업체 Thales에서 개발되어 Prismtech에 매각된 DDS. DDS 시장에서 RTI(점유율 70% 정도) 다음가는 제품(점유율 10~15%)이다.[2]
- http://www.ociweb.com/products/dds DDS for TAO - Object Computing, Inc (OCI)의 오픈 소스 DDS 구현. CORBA 기반 ACE/TAO 프레임워크를 기반으로 한다.[3]
- http://www-adele.imag.fr/~donsez/dev/dds/readme.html Open-Source Java-based DDS - ADELE Team의 오픈 소스 Java 기반 DDS 구현 (CORBA 기반).[4]
- http://dds.milsoft.com.tr MilSOFT DDS - MilSOFT의 COTS DDS 구현.[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