KR101413295B1 - 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드 - Google Patents

확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드 Download PDF

Info

Publication number
KR101413295B1
KR101413295B1 KR1020100109306A KR20100109306A KR101413295B1 KR 101413295 B1 KR101413295 B1 KR 101413295B1 KR 1020100109306 A KR1020100109306 A KR 1020100109306A KR 20100109306 A KR20100109306 A KR 20100109306A KR 101413295 B1 KR101413295 B1 KR 101413295B1
Authority
KR
South Korea
Prior art keywords
rtps
layer
dds
dcps
application
Prior art date
Application number
KR1020100109306A
Other languages
English (en)
Other versions
KR20120048742A (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 KR1020100109306A priority Critical patent/KR101413295B1/ko
Priority to US13/211,839 priority patent/US8874686B2/en
Publication of KR20120048742A publication Critical patent/KR20120048742A/ko
Application granted granted Critical
Publication of KR101413295B1 publication Critical patent/KR101413295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따른, DDS(Data Distribution Service)를 구성하는 노드는, 제1 DCPS(Data-Centric Publish-Subscribe) 계층 및 제1 RTPS(Real-Time Publish-Subcribe) 계층을 가지는 제1 DDS 어플리케이션; 및 상기 제1 RTPS(Real-Time Publish-Subcribe) 계층과 통신하는 제2 DCPS(Data-Centric Publish-Subscribe) 계층을 가지는 제2 DDS 어플리케이션을 포함하는 것을 특징으로 한다.

Description

확장성과 적응성을 가지는 DDS 구조 및 DDS를 구성하는 노드{DDS structure and node composing DDS with scalability and adaptability}
본 발명은 DDS(Data Distribution Service)에 관한 것으로, 보다 상세하게는 확장성과 적응성을 가지는 DDS(Data Distribution Service) 구조 및 DDS를 구성하는 노드에 관한 것이다.
DDS(Data Distribution Service, DDS)는 분산 응용프로그램들 간에 데이터 중심의 발간/구독(publish/subscribe) 방식의 통신을 위한 미들웨어의 표준 규격으로서, OMG(Object Management Group)에서 표준화되었다. DDS는 크게 데이터 공유 영역인 도메인(Domain)과 도메인 참여자(Domain Participant)로 구성되며, 도메인 참여자는 각각의 데이터에 대하여 발간자(publisher)와 구독자(subscriber)로 나뉘게 된다. 하나의 도메인에는 다수의 발간자와 구독자가 존재하며 미리 약속된 데이터 타입인 토픽(topic)의 샘플을 교환하게 된다.
현재 개발된 DDS 제품들의 구조는 크게 Decentralized 구조와 Federated 구조로 구분된다. Decentralized 구조는 한 노드에 있는 각 DDS 어플리케이션(application)들이 각각의 DCPS(Data-Centric Publish-Subscribe)와 RTPS(Real-Time Publish-Subcribe)를 가지고 DDS 서비스를 수행하는 구조이다. 이 구조는 적은 수의 DDS 어플리케이션이 구동되거나 별도의 데몬 없이 동작하는 장점은 있지만, DCPS와 RTPS의 개발 프로세스가 복잡하고, 많은 노드가 DDS 도메인에 참여하는 경우 디스커버리(discovery)에서 문제를 발생시킬 수 있다. Federated 구조는 데몬 형식의 RTPS를 사용하여 각각의 DCPS 개체들이 공통으로 RTPS를 사용하는 구조이다. 이 구조는 Decentralized 구조 보다 복잡도가 낮고 대규모 시스템에 보다 적합하지만, 추가적인 프로세스간(interprocess) 통신 비용을 발생시키고 데몬 형식의 RTPS에 문제가 발생하는 경우 전체 시스템에 영향을 미치게 된다.
본 발명이 이루고자 하는 기술적 과제는 확장성과 적응성을 가지는, DDS(Data Distribution Service)를 구성하는 노드 및 DDS 구조를 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명의 일 실시예에 따른, DDS(Data Distribution Service)를 구성하는 노드는, 수정 가능하며, RTPS(Real-Time Publish-Subcribe)의 일부 기능이 구현된 제1 RTPS 계층을 포함하는 커널 모듈; 및 DCPS(Data-Centric Publish-Subscribe) 계층과, RTPS의 상기 일부 기능을 제외한 기능이 구현된 제2 RTPS 계층으로 구성되는 DDS 어플리케이션을 포함하는 것을 특징으로 한다.
여기서, 상기 일부 기능은 디스커버리 기능, 데이터 수신 기능 및 RTPS 메시지 생성 기능 중 적어도 하나를 포함할 수 있다.
또한, 상기 일부 기능을 제외한 기능은 HistoryCache 기능 및 RTPS 메시지 제어 기능 중 적어도 하나를 포함할 수 있다.
또한, 상기 제2 RTPS 계층은, 상기 제2 RTPS 계층과 상기 제1 RTPS 계층의 간의 연결을 수행하는 RTPS 소켓을 구비하고, 상기 제1 RTPS 계층에 수신된 데이터를 상기 제1 RTPS 계층으로부터 소켓 형태로 전달받을 수 있다.
또한, 상기 제1 RTPS 계층은 네트워크와의 데이터 송수신을 위한 소켓을 구비하고, 상기 소켓을 통하여 수신된 데이터를 상기 제1 RTPS 계층으로 전달할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른, DDS(Data Distribution Service)를 구성하는 노드는, 제1 DCPS(Data-Centric Publish-Subscribe) 계층 및 제1 RTPS(Real-Time Publish-Subcribe) 계층을 가지는 제1 DDS 어플리케이션; 및 상기 제1 RTPS(Real-Time Publish-Subcribe) 계층과 통신하는 제2 DCPS(Data-Centric Publish-Subscribe) 계층을 가지는 제2 DDS 어플리케이션을 포함하는 것을 특징으로 한다.
여기서, 상기 제1 DCPS 계층은, 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하는 것을 허용하기 위한 IPC 연결 구조체인 서버 IPC를 가지고, 상기 제2 DCPS 계층은 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 IPC 연결 구조체인 클라이언트 IPC를 가질 수 있다.
또한, 상기 서버 IPC 또는 상기 클라이언트 IPC는, 공유 메모리, 메시지 큐, 소켓 중 어느 하나일 수 있다.
또한, 상기 제1 DCPS 계층은, 상기 제1 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 로컬 API를 가질 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 DDS 구조는, 제1 DCPS(Data-Centric Publish-Subscribe) 계층과 제1 RTPS(Real-Time Publish-Subcribe) 계층을 가지는 제1 DDS 어플리케이션을 포함하는 제1 노드; 및 상기 제1 RTPS(Real-Time Publish-Subcribe) 계층과 통신하는 제2 DCPS(Data-Centric Publish-Subscribe) 계층을 가지는 제2 DDS 어플리케이션을 포함하는 제2 노드로 구성되는 것을 특징으로 한다.
여기서, 상기 제1 노드 및 상기 제2 노드는 동일한 DDS 도메인에 속하는 것일 수 있다.
또한, 상기 제1 노드는 DDS 도메인에 속하고, 상기 제2 노드는 상기 DDS 도메인의 외부 WAN 환경에 속하는 것일 수 있다.
또한, 상기 제1 DCPS 계층은, 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하는 것을 허용하기 위한 IPC 연결 구조체인 서버 IPC를 가지고, 상기 제2 DCPS 계층은 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 IPC 연결 구조체인 클라이언트 IPC를 가질 수 있다.
또한, 상기 서버 IPC 또는 상기 클라이언트 IPC는, 공유 메모리, 메시지 큐, 소켓 중 어느 하나일 수 있다.
또한, 상기 제1 DCPS 계층은, 상기 제1 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 로컬 API를 가질 수 있다.
본 발명에 의하면, RTPS의 메시지 수신 기능 등 일부 기능을 커널의 소켓으로 구현함으로써, RTPS의 디스커버리 기능을 단순화시킬 수 있고, 노드 간의 메시지 응답 시간을 빠르게 할 수 있다.
또한, 본 발명에 의하면, 하나의 RTPS를 여러 DCPS가 공유함으로써 RTPS의 디스커버리 기능을 단순화시킬 수 있고, RTPS와 DCPS는 IPC를 이용하여 효율적인 프로세스 간 통신을 수행할 수 있다.
또한, 본 발명에 의하면, 동일한 도메인에 속한 여러 개의 노드 내 DDS 응용이 여러 개의 노드 중 특정 노드 내 DDS 응용의 RTPS를 이용함으로써, 디스커버리의 확산이 억제되고 노드 간에 보다 효율적인 메시지 송수신을 수행할 수 있게 된다.
또한, 본 발명에 의하면, DDS 도메인에 참가하지 못한 외부의 DDS 어플리케이션이 DDS 도메인을 형성하고 있는 참여 노드 내 DDS 어플리케이션의 RTPS를 이용함으로써, DDS 라우터 없이 DDS 도메인의 외부에서 DDS 서비스를 이용할 수가 있게 된다.
도 1은 본 발명의 일 실시예에 따른 DDS 어플리케이션의 구현 방법을 나타낸 흐름도이다.
도 2는 본 발명의 일 실시예에 따른, DDS를 구성하는 노드의 구조를 나타낸다.
도 3은 도 2에 도시된 구조에서 RTPS 소켓(205)을 생성하고 사용하기 위한 절차를 나타낸 흐름도이다.
도 4는 RTPS 매핑 테이블의 예를 나타낸다.
도 5는 Decentralized 구조를 도식화한 도면이다.
도 6은 본 발명에 따른 DDS 구조를 위한 DDS 어플리케이션의 구성을 나타낸다.
도 7은 본 발명의 일 실시예에 따른, DDS를 구성하는 노드의 구조를 나타낸다.
도 8은 한 노드 내에서 여러 개의 DDS 어플리케이션이 특정 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 DDS 구조를 나타낸다.
도 10은 한 도메인 내에서 여러 노드 내 DDS 어플리케이션이 특정 노드 내 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
도 11은 본 발명의 다른 실시예에 따른 DDS 구조를 나타낸다.
도 12는 DDS 도메인의 외부 WAN 환경에 존재하는 노드 내 DDS 어플리케이션이 DDS 도메인 내의 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 DDS 어플리케이션의 구현 방법을 나타낸 흐름도이다.
우선, DDS 어플리케이션(application)을 DCPS(Data-Centric Publish-Subscribe)와 RTPS(Real-Time Publish-Subcribe)의 기능 모듈로 분리하여 구현한다(110단계). DCPS는 응용프로그램에 제공되는 데이터 발간/구독 기능 인터페이스로서 이 계층을 통해 응용프로그램은 데이터를 교환할 상대에 대한 인지 없이 원하는 데이터의 발간/구독을 수행하게 된다. DCPS는 read()/write() 방식의 API를 제공하여 읽기/쓰기 방식으로 응용프로그램 간의 데이터 교환 기능을 제공한다. RTPS는 실제 데이터가 발간/구독되는 계층으로서, 도메인 형성과 사용할 데이터의 타입을 결정하고 도메인에 참여하는 도메인 참여자(Domain Participant)를 발견(Discovery)하고, publisher와 subscriber에 의해 데이터가 발간/구독된다. 그리고 HistoryCache 등 RTPS 메시지 제어 기능, 데이터 수신 및 RTPS 메시지 생성 기능 등을 수행한다.
다음으로, DDS 어플리케이션이 구동되는 커널이 수정 가능한지 판단한다(120단계). 수정 가능한 커널은 예를 들어 리눅스 커널 등이 될 수 있다. 커널이 수정 가능하지 않다면 기존과 마찬가지로 RTPS의 모든 기능을 DDS 어플리케이션에 구현한다(130단계).
만일, 커널이 수정 가능하다면 커널에 RTPS의 일부 기능을 구현하고, 그 일부 기능을 제외한 나머지 기능을 DDS 어플리케이션에 구현한다(140단계). 여기서, 커널에 구현할 일부 기능은 Discovery 기능, 데이터 수신 기능, RTPS 메시지 생성 기능 등일 수 있으며, 이러한 일부 기능은 커널의 소켓을 이용하여 구현할 수 있다. 이때, RTPS의 일부 기능을 커널에 포함시켜 제1 RTPS 계층으로서 구현하고, HistoryCache 기능, RTPS 메시지 제어 기능 등 RTPS의 나머지 기능을 DDS 어플리케이션 내에 미들웨어 형태로 제2 RTPS 계층으로서 구현한다. 이하 제1 RTPS 계층을 하위 레벨(Low-level) RTPS, 제2 RTPS 계층을 상위 레벨(High-level) RTPS라 칭하기로 한다.
도 2는 본 발명의 일 실시예에 따른, DDS를 구성하는 노드의 구조로서, 상기 140단계를 통하여 구현된 DDS 어플리케이션을 가지는 노드의 구조를 나타낸다. 여기서 노드는 DDS 도메인 참여자가 될 수 있는 컴퓨팅 장치를 의미한다.
본 실시예에 따른 노드는 수정 가능한 커널 모듈(209)과 커널 모듈(209) 상에서 구동되는 적어도 하나의 DDS 어플리케이션(201)을 포함하여 이루어진다. DDS 어플리케이션(201)은 DCPS 계층(202)과 상위 레벨(High-level) RTPS 계층(203)을 포함하고, 커널 모듈(209)은 하위 레벨(Low-level) RTPS 계층(206)과 TCP/UDP 계층(208)을 포함한다. 상위 레벨 RTPS 계층(203)은 HistoryCache(204)와, RTPS 소켓(205)를 포함하고, 하위 레벨 RTPS 계층(206)은 소켓(207)을 포함한다. 도시된 바와 같이, 노드 내에는 동일한 구조의 DDS 어플리케이션(201)이 복수 개 존재할 수 있다.
DDS 어플리케이션(201)은 DCPS 계층과 RTPS 계층(상위 레벨 RTPS 계층과 하위 레벨 RTPS 계층)을 생성하는 응용프로그램이다. DCPS 계층(202)은 DDS 어플리케이션(201)의 API 계층으로서, 응용프로그램이 DDS 서비스를 이용할 수 있도록 해준다. 상위 레벨 RTPS 계층(203)은 RTPS 메시지에 대한 제어를 수행하고, HistoryCache(204)와 RTPS 소켓(205)을 관리한다. HistoryCache(204)는 RTPS 메시지의 수신에 관련된 제어를 수행하며, ACK, NAK, 수신 데이터를 저장하는 기능을 수행한다. RTPS 소켓(205)은 상위 레벨 RTPS 계층(203)과 하위 레벨 RTPS 계층(206)의 연결 기능을 수행하며, 하위 레벨 RTPS 계층(206)에 수신된 데이터를 하위 레벨 RTPS 계층(206)으로부터 소켓 형태로 전달받는다.
하위 레벨 RTPS 계층(206)은 Discovery 기능, 데이터 수신 기능 및 RTPS 메시지 생성 기능을 수행한다. 하위 레벨 RTPS 계층(206)은 실제 네트워크 소켓을 통하여 전달되는 RTPS serialized 메시지를 RTPS 메시지 형태로 변환하고, RTPS 메시지를 바탕으로 상위 레벨 RTPS 계층(203)이 데이터를 수신할 수 있도록 데이터를 가공하여 전달하는 역할을 수행한다. 소켓(207)은 실제로 네트워크로부터 데이터를 송수신하기 위한 네트워크 소켓에 해당한다.
도 2에 도시된 바와 같이 DDS 어플리케이션(201)이 복수 개 존재하는 경우 DDS 어플리케이션(201) 각각의 RTPS 소켓(205)은 하나의 하위 레벨 RTPS 계층(206)의 소켓(207)과 데이터를 송수신한다. 즉, 복수 개의 DDS 어플리케이션(201)이 하나의 하위 레벨 RTPS 계층(206)을 공유한다.
도 3은 도 2에 도시된 구조에서 RTPS 소켓(205)을 생성하고 사용하기 위한 절차를 나타낸 흐름도이다. DDS 어플리케이션(201)은 RTPS 소켓 API를 이용하여 RTPS 소켓(205)의 설정을 수행한다(310단계). 상위 레벨 RTPS 계층(203)은 RTPS 소켓(205)을 위한 인자로서, Domainparticipant ID, Topic ID, Datareader/Datawriter ID 정보를 하위 레벨 RTPS 계층(206)으로 전달한다(320단계). 하위 레벨 RTPS 계층(206)은 상기 전달받은 정보를 토대로 RTPS 매핑 테이블을 생성한다(330단계). RTPS 매핑 테이블은 RTPS 소켓(205)에 대한 등록정보로서, 하위 레벨 RTPS 계층(206)은 소켓(207)을 통하여 수신된 RTPS 데이터를 RTPS 매핑 테이블을 바탕으로 RTPS 소켓(205)에 매핑시키고 전달하게 된다. 도 4는 RTPS 매핑 테이블의 예를 나타낸다. 도 4를 참조하면, RTPS 매핑 테이블은 RTPS 소켓(205)의 식별번호(S1, S2, ...)와, 그에 매핑되는 RTPS 소켓 설정 정보로서 Domainparticipant ID, Topic ID, Datareader/Datawriter ID를 가진다. RTPS 매핑 테이블은 하위 레벨 RTPS 계층(206)에 유지된다. 하위 레벨 RTPS 계층(206)은 RTPS 매핑 테이블을 바탕으로 RTPS 소켓(205)을 생성하여 상위 레벨 RTPS 계층(203)으로 전달한다(340단계). 그러면 상위 레벨 RTPS 계층(203)은 RTPS 소켓(205)을 통하여 데이터를 송수신하게 된다(350단계).
이러한 본 발명의 실시예에 의하면, RTPS의 메시지 수신 기능 등 일부 기능을 커널의 소켓으로 구현함으로써, RTPS의 디스커버리 기능을 단순화시킬 수 있고, 노드 간의 메시지 응답 시간을 빠르게 할 수 있다.
도 5는 Decentralized 구조를 도식화한 도면이다. Decentralized 구조에 의하면, TCP/UDP를 통해 수신되는 데이터는 DDS 어플리케이션 각각에 대응하는 소켓, RTPS, DCPS를 거치게 된다. 후술할 본 발명에 따른 DDS 구조는 확장성과 적응성을 가지는 구조로서, Decentralized 구조를 포함하여 적응적으로 Federated 구조를 지원할 수 있으며, 도메인 내의 노드나 DDS 어플리케이션에 따른 변화에 적절하게 대응할 수 있다.
도 6은 본 발명에 따른 DDS 구조를 위한 DDS 어플리케이션의 구성을 나타낸다. DDS 어플리케이션(401)은 DCPS 계층(402)과, RTPS 계층(408)으로 이루어지며, DCPS 계층(402)은 로컬 RTPS API(407)와 DCPS 도메인 매니저(403)로 이루어진다. 또한, DCPS 도메인 매니저(403)는 클라이언트 IPC(404), DCPS 커넥션 매니저(405), 서버 IPC(406)으로 이루어진다.
로컬 RTPS API(407)는 DDS 어플리케이션(401)이 DDS 어플리케이션(401) 자체의 RTPS 계층(408)을 이용하도록 하기 위한 로컬 API(application programming interface)이다. DCPS 도메인 매니저(403)는 DDS 어플리케이션(401)이 다른 DDS 어플리케이션의 RTPS 계층을 이용할 수 있도록 하거나, 다른 DDS 어플리케이션이 DDS 어플리케이션(401)의 RTPS 계층(408)을 이용할 수 있도록 하는 기능을 수행한다. 여기서, '다른 DDS 어플리케이션'은 동일한 노드 내의 다른 DDS 어플리케이션이거나, 혹은 동일한 도메인 내의 다른 노드 내의 DDS 어플리케이션이거나, 혹은 외부 노드, 즉 WAN(wide area network) 환경 내의 다른 노드 내의 DDS 어플리케이션을 의미한다. 클라이언트 IPC(404)는 DDS 어플리케이션(401)이 자신의 RTPS 계층(408)이 아닌, 다른 DDS 어플리케이션 내의 RTPS 계층을 이용하기 위한 IPC(interprocess communication) 연결 구조체이다. 여기서, IPC 연결 구조체는 공유 메모리(shared memory), 메시지 큐(message queue), 소켓 등이 될 수 있다. 서버 IPC(406)는 다른 DDS 어플리케이션이 DDS 어플리케이션(401) 자신의 RTPS 계층(408)을 이용하는 것을 허용하기 위한 IPC 연결 구조체이다. DCPS 커넥션 매니저(405)는 클라이언트 IPC(404)와 서버 IPC(406)를 제어하며, 클라이언트 IPC(404)와 서버 IPC(406)가 필요로 하는 정보(예를 들어, 공통으로 사용할 RTPS에 관한 정보)를 제공한다.
도 7은 본 발명의 일 실시예에 따른, DDS를 구성하는 노드로서, 한 노드 내에 여러 개의 DDS 어플리케이션이 생성되는 경우, 여러 개의 DDS 어플리케이션이 특정 DDS 어플리케이션의 RTPS를 공유하는 구조를 나타낸다. 도 7을 참조하면, DDS 어플리케이션(401)에는 RTPS(408)가 존재하며, DDS 어플리케이션(401)은 로컬 RTPS API(407)를 이용하여 자신의 RTPS(408)를 이용한다. 한편, 다른 DDS 어플리케이션(501, 601)은 RTPS가 존재하지 않으며, DDS 어플리케이션(401)의 RTPS를 이용한다. 따라서 DDS 어플리케이션(501, 601)은 로컬 RTPS API가 필요 없다. DDS 어플리케이션(601)이 DDS 어플리케이션(401)의 RTPS(408)를 이용하기 위하여, DDS 어플리케이션(601)의 클라이언트 IPC(604)와 DDS 어플리케이션(401)의 서버 IPC(406)가 연결되어, DCPS(602)와 RTPS(408)가 서로 통신을 수행한다.
이러한 본 발명의 실시예에 의하면, 하나의 RTPS를 여러 DCPS가 공유함으로써 RTPS의 디스커버리 기능을 단순화시킬 수 있고, RTPS와 DCPS는 IPC(공유 메모리, 메시지 큐, 소켓)를 이용하여 효율적인 프로세스 간 통신을 수행한다.
도 8은 도 7에 도시된 바와 같이, 한 노드 내에서 여러 개의 DDS 어플리케이션이 특정 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
DDS 어플리케이션이 생성되면(810단계), DDS 어플리케이션(601)은 DCPS 도메인 매니저(403)를 호출한다(820단계). 그러면 DCPS 도메인 매니저(603)는 노드 내에 이미 수행되고 있는 RTPS가 존재하는지 검사한다(830단계). 노드 내에 이미 수행되고 있는 RTPS가 존재하지 않으면 DDS 어플리케이션은 자체적으로 RTPS를 생성한다(840단계).
노드 내에 이미 수행되고 있는 RTPS가 존재하면, DCPS 도메인 매니저(603)는 DCPS 커넥션 매니저(405)를 호출하고(850단계), 다른 DDS 어플리케이션의 RTPS를 이용하기 위하여 클라이언트 IPC(604)를 호출한다(860단계). DCPS 커넥션 매니저(605)는 노드 내에 이미 수행되고 있는 RTPS에 관한 정보를 저장한다. DCPS 커넥션 매니저(605)는 클라이언트 IPC(604)를 RTPS가 수행되고 있는 다른 DDS 어플리케이션(401)의 서버 IPC(406)와 연결한다(870단계). 그러면 DDS 어플리케이션(601)은 다른 DDS 어플리케이션(401)의 RTPS(408)를 이용하게 된다(880단계).
도 9는 본 발명의 일 실시예에 따른 DDS 구조로서, 한 도메인 내에 여러 개의 노드가 존재하고, 각 노드에 DDS 어플리케이션이 생성되는 경우, DDS 어플리케이션이 다른 노드 내의 DDS 어플리케이션의 RTPS를 공유하는 구조를 나타낸다. 도 9를 참조하면 노드 #1 내 DDS 어플리케이션에는 RTPS가 존재하며, DDS 어플리케이션은 로컬 RTPS API를 이용하여 자신의 RTPS를 이용한다. 한편, 다른 노드 #2, #3, #4 내의 DDS 어플리케이션은 RTPS가 존재하지 않으며, 노드 #1 내 DDS 어플리케이션의 RTPS를 이용한다. 따라서 노드 #2, #3, #4 내의 DDS 어플리케이션은 로컬 RTPS API가 필요 없다. 노드 #2, #3, #4 내의 각 DDS 어플리케이션은 노드 #1 내 DDS 어플리케이션의 RTPS를 이용하기 위하여, 노드 #2, #3, #4 내의 각 DDS 어플리케이션의 클라이언트 IPC와 노드 #1 내 DDS 어플리케이션의 서버 IPC가 연결되어, 노드 #2, #3, #4 내의 각 DDS 어플리케이션의 DCPS와 노드 #1 내의 DDS 어플리케이션의 RTPS가 서로 통신을 수행한다.
이러한 본 발명의 실시예에 의하면, 동일한 도메인에 속한 여러 개의 노드 내 DDS 응용이 여러 개의 노드 중 특정 노드 내 DDS 응용의 RTPS를 이용함으로써, 디스커버리의 확산이 억제되고 노드 간에 보다 효율적인 메시지 송수신을 수행할 수 있게 된다.
도 10은 도 9에 도시된 바와 같이, 한 도메인 내에서 여러 노드 내 DDS 어플리케이션이 특정 노드 내 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
DDS 어플리케이션이 생성되면(1010단계), DDS 어플리케이션은 DCPS 도메인 매니저를 호출한다(1020단계). DCPS 도메인 매니저는 DCPS 커넥션 매니저를 호출하고(1030단계), RTPS가 수행되고 있는, 다른 노드 내의 DDS 어플리케이션의 주소를 획득한다(1040단계). 그리고, 획득된 정보를 바탕으로 다른 노드 내 DDS 어플리케이션의 RTPS를 이용하기 위하여 클라이언트 IPC를 호출한다(1050단계). DCPS 커넥션 매니저는 동일한 도메인에 속한 다른 노드 내에 수행되고 있는 RTPS에 관한 정보를 저장한다. DCPS 커넥션 매니저는 클라이언트 IPC를 RTPS가 수행되고 있는, 다른 노드 내 DDS 어플리케이션의 서버 IPC와 연결한다(1060단계). 그러면 DDS 어플리케이션은 다른 노드 내 DDS 어플리케이션의 RTPS를 이용하게 된다(1070단계).
도 11은 본 발명의 다른 실시예에 따른 DDS 구조로서, DDS 도메인의 외부 WAN 환경에 존재하는 노드 내 DDS 어플리케이션이 DDS 도메인 내의 DDS 어플리케이션의 RTPS를 공유하는 구조를 나타낸다. 도 11을 참조하면, 노드 #11은 도메인에 참여하고 있지만, 노드 #12, #13, #14는 도메인에 참여하고 있지 않다. 보통은 이러한 경우에 노드 #12, #13, #14가 DDS 서비스를 이용하려면 도메인에 마련되는 DDS 라우터(router)를 이용하여야 한다. 본 실시예에 의하면, 노드 #12, #13, #14 내의 DDS 어플리케이션이 도메인에 속한 노드 #11 내의 DDS 어플리케이션의 RTPS를 이용함으로써 DDS 라우터 없이 DDS 서비스를 이용할 수 있다. 노드 #12, #13, #14 내의 각 DDS 어플리케이션이 노드 #11 내의 DDS 어플리케이션의 RTPS를 이용하기 위하여, 노드 #2, #3, #4 내의 각 DDS 어플리케이션의 클라이언트 IPC와 노드 #1 내의 DDS 어플리케이션의 서버 IPC가 연결되어, 노드 #12, #13, #14 내의 각 DDS 어플리케이션의 DCPS와 노드 #11 내의 DDS 어플리케이션의 RTPS가 서로 통신을 수행한다.
이러한 본 발명의 실시예에 의하면, DDS 도메인에 참가하지 못한 외부의 DDS 어플리케이션이 DDS 도메인을 형성하고 있는 참여 노드 내 DDS 어플리케이션의 RTPS를 이용함으로써, DDS 라우터 없이 DDS 도메인의 외부에서 DDS 서비스를 이용할 수가 있게 된다.
도 12는 도 11에 도시된 바와 같이, DDS 도메인의 외부 WAN 환경에 존재하는 노드 내 DDS 어플리케이션이 DDS 도메인 내의 DDS 어플리케이션의 RTPS를 공유하는 과정을 나타낸 흐름도이다.
DDS 도메인의 외부 WAN 환경에 존재하는 노드 내에서 DDS 어플리케이션이 생성되면(1210단계), DDS 어플리케이션은 DCPS 도메인 매니저를 호출한다(1220단계). DCPS 도메인 매니저는 DCPS 커넥션 매니저를 호출하고(1230단계), DDS 도메인에 속한, RTPS가 수행되고 있는 노드 내의 DDS 어플리케이션의 주소를 획득한다(1240단계). 그리고, 획득된 정보를 바탕으로 DDS 도메인에 속한 노드 내의 DDS 어플리케이션의 RTPS를 이용하기 위하여 클라이언트 IPC를 호출한다(1250단계). DCPS 커넥션 매니저는 DDS 도메인에 속한 노드 내에 수행되고 있는 RTPS에 관한 정보를 저장한다. DCPS 커넥션 매니저는 클라이언트 IPC를 RTPS가 수행되고 있는, DDS 도메인에 속한 노드 내 DDS 어플리케이션의 서버 IPC와 연결한다(1260단계). 그러면 외부 WAN 환경 내의 DDS 어플리케이션은 DDS 도메인에 속한 노드 내 DDS 어플리케이션의 RTPS를 이용하게 된다(1270단계).
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (15)

  1. DDS(Data Distribution Service)를 구성하는 노드에 있어서,
    수정 가능하며, RTPS(Real-Time Publish-Subcribe)의 디스커버리 기능, 데이터 수신 기능 및 RTPS 메시지 생성 기능 중 적어도 하나를 포함하는 기능이 구현된 제1 RTPS 계층을 포함하는 커널 모듈; 및
    DCPS(Data-Centric Publish-Subscribe) 계층과, RTPS의 HistoryCache 기능 및 RTPS 메시지 제어 기능 중 적어도 하나를 포함하는 기능이 구현된 제2 RTPS 계층으로 구성되는 DDS 어플리케이션을 포함하는 것을 특징으로 하는 노드.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 제2 RTPS 계층은, 상기 제2 RTPS 계층과 상기 제1 RTPS 계층의 간의 연결을 수행하는 RTPS 소켓을 구비하고, 상기 제1 RTPS 계층에 수신된 데이터를 상기 제1 RTPS 계층으로부터 소켓 형태로 전달받는 것을 특징으로 하는 노드.
  5. 제1항에 있어서,
    상기 제1 RTPS 계층은 네트워크와의 데이터 송수신을 위한 소켓을 구비하고, 상기 소켓을 통하여 수신된 데이터를 상기 제1 RTPS 계층으로 전달하는 것을 특징으로 하는 노드.
  6. DDS(Data Distribution Service)를 구성하는 노드에 있어서,
    제1 DCPS(Data-Centric Publish-Subscribe) 계층 및 제1 RTPS(Real-Time Publish-Subcribe) 계층을 가지는 제1 DDS 어플리케이션; 및
    상기 제1 RTPS(Real-Time Publish-Subcribe) 계층과 통신하는 제2 DCPS(Data-Centric Publish-Subscribe) 계층을 가지는 제2 DDS 어플리케이션을 포함하는 것을 특징으로 하는 노드.
  7. 제6항에 있어서,
    상기 제1 DCPS 계층은, 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하는 것을 허용하기 위한 IPC 연결 구조체인 서버 IPC를 가지고,
    상기 제2 DCPS 계층은 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 IPC 연결 구조체인 클라이언트 IPC를 가지는 것을 특징으로 하는 노드.
  8. 제7항에 있어서,
    상기 서버 IPC 또는 상기 클라이언트 IPC는, 공유 메모리, 메시지 큐, 소켓 중 어느 하나인 것을 특징으로 하는 노드.
  9. 제6항에 있어서,
    상기 제1 DCPS 계층은, 상기 제1 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 로컬 API를 가지는 것을 특징으로 하는 노드.
  10. DDS(Data Distribution Service) 시스템에 있어서,
    제1 DCPS(Data-Centric Publish-Subscribe) 계층과 제1 RTPS(Real-Time Publish-Subcribe) 계층을 가지는 제1 DDS 어플리케이션을 포함하는 제1 노드; 및
    상기 제1 RTPS(Real-Time Publish-Subcribe) 계층과 통신하는 제2 DCPS(Data-Centric Publish-Subscribe) 계층을 가지는 제2 DDS 어플리케이션을 포함하는 제2 노드로 구성되는 것을 특징으로 하는 DDS 시스템.
  11. 제10항에 있어서,
    상기 제1 노드 및 상기 제2 노드는 동일한 DDS 도메인에 속하는 것을 특징으로 하는 DDS 시스템.
  12. 제10항에 있어서,
    상기 제1 노드는 DDS 도메인에 속하고, 상기 제2 노드는 상기 DDS 도메인의 외부 WAN 환경에 속하는 것을 특징으로 하는 DDS 시스템.
  13. 제10항에 있어서,
    상기 제1 DCPS 계층은, 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하는 것을 허용하기 위한 IPC 연결 구조체인 서버 IPC를 가지고,
    상기 제2 DCPS 계층은 상기 제2 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 IPC 연결 구조체인 클라이언트 IPC를 가지는 것을 특징으로 하는 DDS 시스템.
  14. 제13항에 있어서,
    상기 서버 IPC 또는 상기 클라이언트 IPC는, 공유 메모리, 메시지 큐, 소켓 중 어느 하나인 것을 특징으로 하는 DDS 시스템.
  15. 제10항에 있어서,
    상기 제1 DCPS 계층은, 상기 제1 DDS 어플리케이션이 상기 제1 RTPS 계층을 이용하기 위한 로컬 API를 가지는 것을 특징으로 하는 DDS 시스템.
KR1020100109306A 2010-11-04 2010-11-04 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드 KR101413295B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100109306A KR101413295B1 (ko) 2010-11-04 2010-11-04 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드
US13/211,839 US8874686B2 (en) 2010-11-04 2011-08-17 DDS structure with scalability and adaptability and node constituting the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100109306A KR101413295B1 (ko) 2010-11-04 2010-11-04 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드

Publications (2)

Publication Number Publication Date
KR20120048742A KR20120048742A (ko) 2012-05-16
KR101413295B1 true KR101413295B1 (ko) 2014-06-30

Family

ID=46020670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100109306A KR101413295B1 (ko) 2010-11-04 2010-11-04 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드

Country Status (2)

Country Link
US (1) US8874686B2 (ko)
KR (1) KR101413295B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101463468B1 (ko) * 2014-01-21 2014-12-02 국방과학연구소 OMG 표준 DDS(Data Distribution Service)와 호환 가능한 OMG 표준 미들웨어 기반의 클러스터 구조
KR20150123074A (ko) * 2014-04-24 2015-11-03 한국전자통신연구원 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치
CN104809028B (zh) * 2015-05-07 2020-05-12 厦门雅迅网络股份有限公司 一种本地多进程间数据订阅推送的方法
CN105827588B (zh) * 2015-12-23 2019-03-15 广东亿迅科技有限公司 一种基于网络驱动层的流媒体数据分发***
US10205784B2 (en) 2016-03-21 2019-02-12 General Electric Company Communication system and method for controlling data distribution quality of service in time sensitive networks
US11072356B2 (en) 2016-06-30 2021-07-27 Transportation Ip Holdings, Llc Vehicle control system
US10979506B2 (en) 2016-09-19 2021-04-13 Westinghouse Air Brake Technologies Corporation Vehicle control system
US10814893B2 (en) 2016-03-21 2020-10-27 Ge Global Sourcing Llc Vehicle control system
KR101999291B1 (ko) * 2017-07-26 2019-07-11 한전케이디엔주식회사 데이터 분산 서비스를 이용한 전기차 충전 인프라 시스템
CN108174358B (zh) * 2017-12-14 2021-05-18 沈阳无距科技有限公司 飞行集群通讯方法、装置和***
CN111400228B (zh) * 2020-02-24 2021-05-28 华东计算技术研究所(中国电子科技集团公司第三十二研究所) DDS通信中间件集成RapidIO传输的方法及***
CN112445631A (zh) * 2020-12-02 2021-03-05 广东博智林机器人有限公司 Rtps的进程通信方法、装置、电子设备及存储介质
CN114567665A (zh) * 2022-01-26 2022-05-31 阿波罗智能技术(北京)有限公司 节点间通信的方法、装置、设备、介质及自动驾驶车辆

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016586A (ko) * 2001-08-21 2003-03-03 홍은영 이동통신용 유선 뷔오아이피 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101180A (en) * 1996-11-12 2000-08-08 Starguide Digital Networks, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
US7502361B2 (en) * 1998-11-13 2009-03-10 Alcatel-Lucent Usa Inc. Subnetwork layer for a multimedia mobile network
US6614781B1 (en) * 1998-11-20 2003-09-02 Level 3 Communications, Inc. Voice over data telecommunications network architecture
US7031314B2 (en) * 2001-05-16 2006-04-18 Bytemobile, Inc. Systems and methods for providing differentiated services within a network communication system
CN1305276C (zh) * 2004-01-15 2007-03-14 中兴通讯股份有限公司 一种快速处理实时媒体流数据包的方法及其***
US7533128B1 (en) * 2005-10-18 2009-05-12 Real-Time Innovations, Inc. Data distribution service and database management systems bridge
US7665096B2 (en) 2005-11-18 2010-02-16 The Boeing Company DDS-assisted CORBA discovery
US7783853B1 (en) * 2006-04-24 2010-08-24 Real-Time Innovations, Inc. Memory usage techniques in middleware of a real-time data distribution system
US20090248612A1 (en) 2008-03-31 2009-10-01 Morris Robert P Methods, Systems, And Computer Program Products For Providing Prior Values Of A Tuple Element In A Publish/Subscribe System
FR2933834A1 (fr) * 2008-07-11 2010-01-15 Canon Kk Procede de gestion d'une transmission de flux de donnees sur un canal de transport d'un tunnel, tete de tunnel, produit programme d'ordinateur et moyen de stockage correspondants.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016586A (ko) * 2001-08-21 2003-03-03 홍은영 이동통신용 유선 뷔오아이피 시스템

Also Published As

Publication number Publication date
KR20120048742A (ko) 2012-05-16
US8874686B2 (en) 2014-10-28
US20120117186A1 (en) 2012-05-10

Similar Documents

Publication Publication Date Title
KR101413295B1 (ko) 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드
US12021678B2 (en) Pervasive realtime framework
CN108306819B (zh) 基于区块链的即时通讯***实现方法、介质和计算设备
Choi et al. A fog operating system for user-oriented iot services: Challenges and research directions
US20090210482A1 (en) Framework for Rendering Plug-ins in Remote Access Services
US10728181B2 (en) Advanced message queuing protocol (AMQP) message broker and messaging client interactions via dynamic programming commands using message properties
CN105893133A (zh) 基于容器技术的应用服务无缝迁移方法和***
CN105610981A (zh) 快速作战信息流转平台
US20190089778A1 (en) Ad hoc decentralized cloud infrastructure
CN108139920A (zh) 在动态条件及变约束下用于基于信息中心联网(icn)的代理服务器管理的方法、设备及***
CN110635932B (zh) 一种基于OpenStack控制平面的虚拟网络性能的优化方法
US20070118634A1 (en) Message oriented construction of web services
WO2021032269A1 (en) Distribution of constrained device data
KR102119456B1 (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
US9009352B1 (en) Transformation of common information model messages
CN108289056A (zh) 分享动态图表的方法、装置以及计算设备
US20140181233A1 (en) System, messaging broker and method for managing communication between open services gateway initiative (osgi) environments
Preisler et al. Decentralized coordination in self-organizing systems based on peer-to-peer coordination spaces
US7685303B2 (en) Object-oriented discovery framework
CN112995333B (zh) 一种远程文件激活方法、***及相关装置
WO2024034057A1 (ja) ネットワーク管理装置、ネットワーク管理方法及びプログラム
Liao et al. Efficient provisioning of hybrid virtual network with stochastic resource demands
CN117155810A (zh) 基于grpc和udp广播的分布式通信***及通信方法
Saranya et al. A Study on Middleware Technologies in Cloud Computing
CN117880296A (zh) 一种服务请求处理方法、装置、***、设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
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: 20170529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 5