이 문서의 내용은 출처가 분명하지 않습니다. (2014년 2월) |
데이터 분산 서비스(Data Distribution Service, DDS)는 실시간 시스템의 실시간성(real-time), 규모가변성(scalable), 안전성 (dependable), 고성능 (high performance)를 가능하게 하는 Object Management Group(OMG) 표준 출판/구독 (Publish/Subscribe) 네트워크 커뮤니케이션 미들웨어이다. 분산 환경을 위한 데이터 중심의 출판/구독 프로그래밍 모델에 대한 표준화의 필요성에 의해 만들어졌다. 2개의 메이저 벤더인 미국의 Real-Time Innovations (RTI)와 프랑스의 Thales Group이 OMG에 의해 승인된 DDS 규격을 만들기 위해 협력한 2004년까지 독점적 DDS 솔루션만 사용 가능했다. DDS는 금융거래, 항공 교통관제, 스마트 그리드 관리, 산업자동화 시스템등의 mission critical 애플리케이션을 위해 디자인되었다. 과거에는 국방, 항공 우주산업에 제한적으로 사용되었지만, 현재는 다양한 분야의 지능화 시스템 (Intelligent System)에 사용되는 사례가 늘어나고 있다.
DDS의 표준 스펙은 2단계의 인터페이스로 구성된다:
DDS는 복잡한 네트워크 프로그래밍을 단순화하는 네트워크 미들웨어이다. 노드에 걸쳐 데이터, 이벤트, 그리고 명령어를 주고 받기 위해 출판-구독 모델을 구현했다.
정보를 생성하는 노드(출판자들)는 "토픽"을(예: 기온, 장소, 압력) 생성하고, 데이터 샘플을 출판한다. DDS는 샘플을 해당 토픽에 관심있어하는 모든 구독자들에게 배달한다
DDS는 모든 전송에 대한 것들을 다룬다.: 메시지 어드레싱, 데이터 마샬링 & 디마샬링(그래서 구독자가 출판자와 다른 플랫폼 하에 있을 수 있다.), 배달, 흐름제어, 재시도, 기타. 어떤 노드도 출판, 구독, 양쪽 모두를 동시에 할 수 있다.
DDS 출판-구독 모델은 분산 애플리케이션에서의 복잡한 네트워크 프로그래밍을 가상적으로 제거한다.
DDS는 기본적인 출판-구독 모델 이상의 메커니즘을 지원한다. 통신으로 DDS를 이용하는 애플리케이션이 갖는 주요한 이득은 완전히 분리된다는 점이다. 상호간의 응답을 다루기 위해서 아주 적은 설계시간이 소요된다.
특히, 애플리케이션들은 위치나 존재를 포함한 참가하는 다른 애플리케이션들에 대한 정보를 필요로 하지 않는다. DDS는 사용자 애플리케이션들로부터의 어떤 간섭 요구없이, 다음 내용을 포함한 모든 메시지 전송에 대한 것을 자동적으로 다룬다.
DDS는 사용자가 Quality of Service(QoS) 파라미터를 자동-발견 메커니즘을 설정하기위한 방법으로써 명기하는 것을 허용하고 메시지를 보내거나 받을 때 사용되는 행동을 명기한다. 메커니즘은 선행으로 설정되고, 유저 파트에서 더 이상의 노력을 필요로 하진 않는다. 완전한 익명으로 메시지를 교환함으로써 DDS는 분산된 애플리케이션 설계를 단순화하고 모듈러형태의-잘 구조화된 프로그램을 장려한다.DDS는 또한 만약 첫 번째가 실패가 되면 핫-스왑 리던던트 출판을 자동적으로 다룬다. 구독자는 항상 유효한 데이터에 높은 우선순위를 둔 샘플을 취한다. 역시 첫 번째가 복원되었을 때 자동적으로 돌아올 수도 있다. DDS는 Ada, C, C++, C# 그리고 Java API를 포함한 언어로 사용할 수 있다.