KR20190075391A - 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템 - Google Patents

데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템 Download PDF

Info

Publication number
KR20190075391A
KR20190075391A KR1020170176941A KR20170176941A KR20190075391A KR 20190075391 A KR20190075391 A KR 20190075391A KR 1020170176941 A KR1020170176941 A KR 1020170176941A KR 20170176941 A KR20170176941 A KR 20170176941A KR 20190075391 A KR20190075391 A KR 20190075391A
Authority
KR
South Korea
Prior art keywords
participant
domain
packet
broker device
internal identifier
Prior art date
Application number
KR1020170176941A
Other languages
English (en)
Other versions
KR102025375B1 (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 KR1020170176941A priority Critical patent/KR102025375B1/ko
Publication of KR20190075391A publication Critical patent/KR20190075391A/ko
Application granted granted Critical
Publication of KR102025375B1 publication Critical patent/KR102025375B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • H04L29/08
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것으로, 상기 장치가 속한 제1 도메인과 상이한 제2 도메인의 제2 장치와 통신하는 통신부 및 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하고, 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 상기 제2 장치로 전송하며, 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하도록 상기 통신부를 제어하는 제어부를 포함하되, 상기 탐색 메시지는, 상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 장치 및 그의 데이터 분산 서비스를 위한 방법, 이러한 장치를 포함하는 데이터 분산 서비스 시스템에 관한 것이다.

Description

데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템{Apparatus and method for data distribution service, data distribution service system}
본 발명은 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것으로, 보다 구체적으로 다중 도메인에 분산된 데이터 분산 서비스 장치들 간 참여자 탐색이 가능하게 하는 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것이다.
데이터 분산 서비스(Data Distribution Service, 이하 DDS)는 분산 환경을 위한 데이터 중심의 발간/구독(publish/subscribe) 방식의 통신을 위한 미들웨어의 표준 규격으로서, OMG(Object Management Group)에서 표준화되었다. DDS는 크게 데이터 공유 영역인 도메인(Domain)과 도메인 참여자(Domain Participant)(또는, 참여자)로 구성된다. 하나의 도메인에는 각각의 데이터에 대한 다수의 발간자(publisher)와 구독자(subscriber)가 존재하며 미리 약속된 데이터 타입인 토픽(topic)의 샘플을 교환하게 된다. DDS에서 데이터는 마치 신문을 발간 또는 구독하는 형태로 개체들 간에 분산된다.
이러한 DDS 미들웨어는 응용프로그램과 운영 체제 사이에 존재하는 서비스 계층으로서 API를 제공하며, 응용 프로그램은 이를 통해 쉽게 다른 개체와 통신을 수행할 수 있다. DDS 미들웨어는 크게 DCPS(Data-Centric Publish-Subscribe) 계층 및 RTPS(The Real-Time Publish Subscribe) 프로토콜을 사용하는 계층으로 구분될 수 있다.
DCPS 계층은 분산 환경을 위한 발간/구독의 명세를 갖는 미들웨어 인터페이스로서, 분산 환경을 위한 데이터 중심의 발간-구독 프로그래밍 모델에 대한 표준화된 인터페이스를 제공할 수 있다. RTPS 프로토콜을 사용하는 계층은 실제 데이터가 발간/구독되는 계층으로서, 도메인 형성과 사용할 데이터의 타입을 결정하고 도메인에 참여하는 원격지의 참여자들을 동적으로 탐색(Discovery)하는 기능을 제공할 수 있다. 한편, DCPS 계층은 QoS를 설정할 수 있는데, 이때 설정된 QoS에 따라 신뢰성(Reliable) 또는 비신뢰성(Unreliable)을 갖는 데이터 통신을 수행할 수 있다.
RTPS 프로토콜에서는 통신을 수행하는 도메인 참여한 개체들, 즉 참여자들을 찾기 위하여 참여자들에 대한 탐색, 즉 참여자 탐색(Participant Discovery) 및 참여자 내부에 존재하는 라이터(writer), 리더(reader)와 같은 종단 장치의 탐색, 즉 종단점 탐색(Endpoint Discovery)를 수행한다.
한편, DDS 참여자들의 수가 일정 규모를 넘어서는 경우 단일 도메인만으로는 모든 DDS 참여자를 수용할 수 없다. 즉, 하나의 도메인에서는 일정 수 이상의 주소를 제공할 수 없으므로, DDS 시스템은 다중 도메인으로 구성되어야 한다. 도 1은 다중 도메인으로 구성된 DDS 시스템의 일반적인 구성을 나타낸 도면이다. 도 1을 참조하면, 각각이 적어도 하나의 참여자들(1a, 2a, 3a)을 포함하는 복수의 도메인들(1, 2, 3)이 도시된다.
그러나 종래의 DDS 시스템은 상이한 도메인에 속한 참여자들에 대해 참여자 탐색을 가능하게 하는 수단이 제공하지 않는다. 따라서, 다중 도메인에 분산된 참여자들 간에 DDS 통신이 적절하게 수행되지 못하는 문제점이 있었다.
본 발명은 상기한 문제점을 해결하기 위한 것으로, 브로커로 동작하는 장치를 통하여 상이한 도메인에 분산된 참여자를 탐색하고, DDS 통신을 수행할 수 있도록 하는 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것이다.
상술한 과제를 해결하기 위한 본 발명에 따른 데이터 분산 서비스를 위한 장치는, 상기 장치가 속한 제1 도메인과 상이한 제2 도메인의 제2 장치와 통신하는 통신부 및 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하고, 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 상기 제2 장치로 전송하며, 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하도록 상기 통신부를 제어하는 제어부를 포함하되, 상기 탐색 메시지는, 상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 한다.
또한, 상기 내부 식별자는, 상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 한다.
또한, 상기 제어부는, 상기 제2 장치를 위한 내부 식별자를 할당하고, 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하되, 상기 얼라이브 메시지는, 상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 한다.
또한, 상기 장치는, 정보를 저장하는 저장부를 더 포함하고, 상기 제어부는, 상기 제2 장치로부터 상기 얼라이브 메시지에 응답하여 상기 제2 장치의 식별 정보를 포함하는 응답 메시지가 수신되면, 상기 제2 장치의 식별 정보를 상기 할당된 내부 식별자와 연계하여 매핑 정보로써 상기 저장부에 저장하는 것을 특징으로 한다.
또한, 상기 제어부는, 상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하되, 상기 제2 장치는, 상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 한다.
또한, 상술한 과제를 해결하기 위한 본 발명에 따른 제1 도메인을 구성하는 장치의 데이터 분산 서비스를 위한 방법은, 상기 제1 도메인과 상이한 제2 도메인의 제2 장치로 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 전송하는 단계, 상기 제2 장치로부터 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자에 대한 탐색 메시지가 수신되면, 상기 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하는 단계 및 상기 내부 식별자를 기초로 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하는 단계를 포함하되, 상기 제2 장치로 전송되는 상기 탐색 메시지는, 상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 한다.
또한, 상기 내부 식별자는, 상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 한다.
또한, 상기 방법은, 상기 탐색 메시지를 전송하는 단계 이전에, 상기 제2 장치를 위한 내부 식별자를 할당하는 단계 및 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하는 단계를 더 포함하되, 상기 얼라이브 메시지는, 상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 한다.
또한, 상기 통신하는 단계는, 상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하는 단계를 포함하되, 상기 제2 장치는, 상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 한다.
또한, 상술한 과제를 해결하기 위한 본 발명에 따른 데이터 분산 서비스 시스템은, 상기 중 어느 하나에 따른 데이터 분산 서비스를 위한 장치를 포함하여 구성되는 것을 특징으로 한다.
본 발명에 따른 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템은 다중 도메인으로 구성된 DDS 시스템에서, 브로커로 동작하는 장치를 통해 상이한 도메인에 속한 참여자들을 효과적으로 탐색할 수 있도록 한다.
또한, 본 발명에 따른 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템은 다중 도메인 환경에서 DDS 통신이 적절하게 수행될 수 있도록 한다.
도 1은 다중 도메인으로 구성된 DDS 시스템의 일반적인 구성을 나타낸 도면이다.
도 2는 본 발명에 따른 다중 도메인으로 구성된 DDS 시스템을 나타낸 도면이다.
도 3은 본 발명에 따른 DDS 시스템에서 브로커 장치 간 탐색 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 메시지의 패킷 구조를 나타낸 도면이다.
도 5는 본 발명에 따른 DDS 시스템에서 참여자 탐색 동작을 설명하기 위한 흐름도이다.
도 6은 본 발명에 따른 DDS 시스템에서 DDS 통신을 수행하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명에 따른 DDS를 위한 장치의 구조를 나타낸 블록도이다.
본 명세서의 실시 예를 설명함에 있어 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우, 그 상세한 설명은 생략될 수 있다.
본 명세서에서 사용되는 "포함한다," "포함할 수 있다." 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.  
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명을 설명한다.
도 2는 본 발명에 따른 다중 도메인으로 구성된 DDS 시스템을 나타낸 도면이다.
도 2를 참조하면, 본 발명에 따른 DDS 시스템은 다수의 도메인들(10, 20)로 구성된다. 도 2의 실시 예에서는 2개의 도메인만이 도시되지만, 도메인의 개수에는 제한이 없다.
각각의 도메인(10, 20)은 하나의 라우터(11, 21)에 연결되어 로컬 네트워크를 형성하도록 구성될 수 있다. 각각의 도메인(10, 20)은 내부 라우터(11, 21)를 통하여 다른 도메인(10, 20)과 통신할 수 있다.
각각의 도메인(10, 20)은 다수의 참여자들(12, 22)로 구성된다. 도메인(10, 20) 내에 존재하는 참여자들(12, 22)은 RTPS 통신 객체로 동작하고 노드라고 지칭될 수 있다. 각각의 참여자(12, 22)는 데스크탑 컴퓨터, 노트북 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 셋톱 박스, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 등 다양한 형태의 단말 장치일 수 있다. 도 2의 실시 예에서는, 각각의 도메인(10, 20)에 하나의 참여자(12, 22)만이 도시되지만, 이보다 많은 수의 참여자가 도메인(10, 20) 내에 존재할 수 있다.
각각의 참여자(12, 22)는 하나 이상의 발간자 또는 구독자를 가질 수 있다. 발간자는 자신의 정보를 전달하기 위해서 하나 이상의 라이터(writer)(또는, 데이터라이터(datawriter), 발간 개체)를 포함할 수 있고, 구독자는 발간자의 정보를 수신하기 위한 하나 이상의 리더(reader)(또는, 데이터리더(datareader), 구독 개체)를 포함할 수 있다.
발간자와 구독자의 응용 프로그램에서는 특정 데이터의 주제를 나타내는 토픽을 생성하고, 이를 라이터와 리더에 관심 토픽으로 등록함으로써 상호 간에 정보를 교환한다. 관심 토픽이 상이한 발간자와 구독자는 토픽 데이터를 교환하지 않기 때문에 이들 간에는 간섭이 발생하지 않는다. 즉, DDS 시스템은 서버가 없는 피어-투-피어(Peer-to-Peer) 구조로서, 도메인 내에서 같은 관심 토픽을 갖는 참여자끼리만 통신을 한다. 관심 토픽에 대응되는 데이터는 라이터 및 DDS 네트워크를 통해서 DDS 데이터 패킷으로 전송되고, 리더는 수신된 DDS 데이터 패킷에 포함된 토픽 데이터를 확인하여 응용 프로그램에게 전달한다.
상술한 동작을 수행하기 위해, 각각의 도메인(10, 20) 내에서 각각의 참여자(12, 22)는 자신이 속한 도메인(10, 20)에 참여한 다른 참여자를 발견하기 위한 탐색을 수행한다. 이를 구체적으로 설명하면 다음과 같다.
각각의 참여자(12, 22)는 탐색 메시지(discovery message)(또는, 발견 메시지)를 유니캐스트 또는 멀티캐스트 방식으로 전송하여, 도메인(10, 20) 내의 다른 참여자에게 자신의 존재를 알린다. 이러한 과정을 참여자 탐색이라 한다. 탐색 메시지는 탐색 메시지를 전송하는 참여자(12, 22)에게 할당되는 전역 고유 식별자(Global Unique IDentifier, 이하 GUID), 참여자(12, 22)의 프로토콜 버전, 벤더 식별자, 유니캐스트 및 멀티캐스트 로케이터(IP 주소 및 포트 번호 등) 및 참여자를 추적하는 방법 등에 대한 정보를 포함할 수 있다. 여기서, GUID는 도메인(10, 20) 내에서 각각의 참여자(12, 22)를 식별하기 위해 할당되는 것으로, 다른 참여자는 탐색 메시지 또는 DDS 데이터 패킷의 GUID로부터 해당 탐색 메시지 또는 DDS 데이터 패킷을 전송한 다른 참여자가 자신과 동일한 도메인(10, 20) 내에 존재하는 특정 참여자임을 식별할 수 있다. 이와 같이 참여자들(12, 22)은 각각 발견 메시지를 전달 및 교환함으로써, 동일한 도메인(10)에 속한 다른 참여자를 발견할 수 있다.
참여자 탐색이 완료되면, 각각의 참여자(12, 22)는 해당 참여자 내부에서 토픽 데이터 전송을 실제로 수행하는 통신 객체인 라이터 또는 리더의 QoS 정보들을 확인하고 교환하는 종단점 탐색을 수행한다.
일반적인 DDS 시스템에서, 참여자 탐색은 동일한 도메인(10, 20) 내에서만 가능하도록 구성된다. 즉, 일반적인 DDS 시스템에서, 제1 도메인(10)에 속한 참여자(12)는 제2 도메인에 속한 참여자(22)를 탐색하지 못한다. 또한, 제2 도메인(20)에 속한 참여자(22)는 제1 도메인에 속한 참여자(12)를 탐색하지 못한다. 이는 참여자들(12, 22)이 자신이 속한 도메인(10, 20) 내에서만 탐색 메시지를 전송하고 수신할 수 있다. 이는 다중 도메인으로 구성되는 대규모 DDS 시스템에서 DDS 통신이 효율적으로 이루어질 수 없게 한다.
상기한 문제를 해결하기 위하여, 본 발명의 다양한 실시 예에서, 각각의 도메인(10, 20)은 브로커로 동작하는 장치(13, 23)를 포함하여 구성된다. 장치(13, 23)는 DDS를 위한 장치로써, 이하에서는 편의를 위해 브로커 장치(13, 23)로 명명한다.
브로커 장치(13, 23)는 자신이 속한 도메인(10, 20) 내의 참여자(12, 22)에 대한 정보를 다른 도메인(10, 20)의 브로커 장치(13, 23)로 전송할 수 있다. 또한, 다른 도메인(10, 20) 내의 참여자(12, 22)에 대한 정보를 수신한 브로커 장치(13, 23)는 해당 참여자(12, 22)를 위한 내부 포트 번호를 할당하고, 내부 참여자(12, 22)와 해당 참여자(12, 22) 간의 DDS 통신을 중개할 수 있다. 결과적으로, 브로커 장치(13, 23)는 다른 도메인(10, 20)에 존재하는 참여자(12, 22)가 마치 내부 도메인(10, 20)에 존재하는 것처럼 DDS 통신이 가능하게 할 수 있다.
이하에서, 브로커 장치(13, 23)를 통하여 상이한 도메인에 분산된 참여자를 탐색하고 DDS 통신을 수행할 수 있도록 하는 방법을 보다 구체적으로 설명한다.
도 3은 본 발명에 따른 DDS 시스템에서 브로커 장치 간 탐색 동작을 설명하기 위한 흐름도이다.
도 2의 실시 예에서, 제1 도메인(10)에는 제1 브로커 장치(13)가, 제2 도메인(20)에는 제2 브로커 장치(23)가 배치된다. 제1 브로커 장치(13) 및 제2 브로커 장치(23)는 제1 도메인(10)과 제2 도메인(20) 각각에 존재하는 제1 및 제2 라우터(11, 21)를 통해 통신할 수 있다.
제1 브로커 장치(13) 및 제2 브로커 장치(23)에는 자신이 속한 도메인(10, 20)에 대응하는 IP 주소 및 포트 번호가 할당된다. 이때, 제1 브로커 장치(13) 및 제2 브로커 장치(23)에는 기설정된 값의 동일한 포트 번호가 할당될 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)에는 192.168.0.2의 IP 주소 및 8301의 포트 번호가 할당되고, 제2 브로커 장치(23)에는 192.168.2.1의 IP 주소 및 8301의 포트 번호가 할당되어 있다. 또한, 본 발명의 다양한 실시 예에서, 제1 브로커 장치(13) 및 제2 브로커 장치(23)에는 참여자(12, 22)와 유사하게 GUID가 할당될 수 있다.
마찬가지로, 제1 라우터(11) 및 제2 라우터(21)에도 IP 주소가 할당된다. 도 2의 실시 예에서, 제1 라우터(11)에는 192.168.0.1의 IP 주소가 할당되고, 제2 라우터(21)에는 192.168.2.1의 IP 주소가 할당되어 있다. 일 실시 예에서, 제1 라우터(11) 및 제2 라우터(21)에는 외부 네트워크와 통신하기 위한 외부 네트워크 주소가 더 할당될 수 있다. 도 2의 실시 예에서, 제1 라우터(11)에는 129.254.1.2의 외부 네트워크 주소가 할당되고, 제2 라우터(21)에는 129.254.1.4의 외부 네트워크 주소가 할당되어 있다.
본 발명의 다양한 실시 예에서, 제1 브로커 장치(13) 및 제2 브로커 장치(23)는 서로를 발견하기 위한 탐색을 수행할 수 있다.
도 3을 참조하면, 제1 브로커 장치(13)는 다른 도메인으로부터 메시지 및/또는 패킷을 수신하기 위한 포트 번호를 할당할 수 있다. 구체적으로, 제1 브로커 장치(13)는 다른 도메인의 브로커 장치, 예를 들어 제2 도메인(20)의 제2 브로커 장치(23)를 위한 포트 번호를 할당할 수 있다(301). 도 2의 실시 예에서, 제1 브로커 장치(13)는 제2 브로커 장치(23)를 위한 포트 번호로써 57321을 할당한다. 할당된 포트 번호는 제2 브로커 장치(23)로부터 메시지 및/또는 패킷을 수신하기 위한 수신 포트로써 설정될 수 있다.
이후에, 제1 브로커 장치(13)는 제1 라우터(11) 및 제2 도메인(20)의 제2 라우터(21)를 통해 제2 브로커 장치(23)로 얼라이브(alive) 메시지를 전송할 수 있다(302). 이때, 제1 브로커 장치(13)는 얼라이브 메시지를 전송하기 위하여, 제2 라우터(21)의 외부 네트워크 주소를 인지하고 있다. 또한, 상술한 바와 같이, 제1 브로커 장치(13)는 제2 브로커 장치(23)가 자신과 동일한 포트 번호를 할당받은 것으로 인지할 수 있다. 그에 따라, 도 2의 실시 예에서, 제1 브로커 장치(13)는 목적지 주소 192.254.1.4:8301로 얼라이브 메시지를 전송한다.
본 발명의 다양한 실시 예에서, 얼라이브 메시지는 도 4에 도시된 것과 같은 패킷 구조를 가질 수 있다. 도 4를 참조하면, 패킷 구조는 PREFIX 필드와 Struct socketaddr 필드로 구성될 수 있다. PREFIX 필드는 도메인 정보, 브로커 장치(13, 23)의 식별 정보, 예를 들어 GUID 등을 포함할 수 있다. Struct socketaddr 필드는 브로커 장치(13, 23)의 IP 주소 및 패킷 번호와 같은 바인드 정보를 포함할 수 있다. 또한, 얼라이브 메시지에는 얼라이브 메시지를 수신할 브로커 장치(13, 23)를 위하여 할당된 식별 정보, 예를 들어 패킷 번호가 포함될 수 있다. 얼라이브 메시지는 참여자(12, 22)가 송수신하는 탐색 메시지와 구분하기 위해 채택된 용어로써, 다양한 실시 예에서, 얼라이브 메시지는 탐색 메시지, 킵얼라이브 메시지, 헬로 메시지, 하트비트 메시지 등으로 명명될 수 있다.
얼라이브 메시지는 제2 라우터(21)에 의해 포트 번호 8301을 갖는 제2 브로커 장치(23)로 전달된다.
제2 브로커 장치(23)는 수신된 얼라이브 메시지로부터 제1 브로커 장치(13)를 식별하고, 제1 브로커 장치(13)를 위한 포트 번호를 할당할 수 있다(303). 제2 브로커 장치(23)는 얼라이브 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 브로커 장치(13)를 식별할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 포트 번호 57321을 이용하는 제1 브로커 장치(13)를 식별할 수 있다.
제2 브로커 장치(23)는 식별된 제1 브로커 장치(13)를 위한 포트 번호를 할당할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 제1 브로커 장치(13)를 위한 포트 번호로써 68213을 할당한다. 할당된 포트 번호는 제1 브로커 장치(13)로부터 메시지 및/또는 데이터 등의 패킷을 수신하기 위한 수신 포트로 설정될 수 있다.
제2 브로커 장치(23)는 식별된 제1 브로커 장치(13)에 관한 정보로써, 제1 브로커 장치(13)의 도메인 정보(라우터 정보를 포함할 수 있다.), GUID, IP 주소 및 패킷 번호 등을 저장하고 관리할 수 있다. 구현하기에 따라, 제2 브로커 장치(23)는 자신이 할당한 포트 번호 및 제1 브로커 장치(13)의 정보를 연계하여 매핑 정보로써 관리할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)의 포트 번호 68213과 제1 브로커 장치의 포트 번호 57321이 연계될 수 있다.
이후에, 제2 브로커 장치(23)는 제2 라우터(21) 및 제1 도메인(10)의 제1 라우터(11)를 통해 제1 브로커 장치(13)로 응답 메시지(ACK)를 전송할 수 있다(304). 이를 위하여, 마찬가지로 제2 브로커 장치(23)는 제1 라우터(11)의 외부 네트워크 주소를 인지하고 있다. 또한, 제2 브로커 장치(23)는 얼라이브 메시지로부터 식별된 제1 브로커 장치(13)의 포트 번호 57321을 인지할 수 있다. 그에 따라, 도 2의 실시 예에서, 제2 브로커 장치(23)는 목적지 주소 192.254.1.2:27321로 응답 메시지를 전송한다.
본 발명의 다양한 실시 예에서, 응답 메시지는 도 4에 도시된 것과 같은 패킷 구조를 가질 수 있다. 다른 실시 예에서, 응답 메시지는 얼라이브 메시지와 상이한 패킷 구조를 가질 수 있다. 다양한 실시 예에서, 응답 메시지는 제2 브로커 장치(23)가 제1 브로커 장치(13)의 얼라이브 메시지를 올바르게 수신하였음을 나타내기 위한 정보 및 제2 브로커 장치(23)의 식별 정보로써, 예를 들어 GUID, IP 주소 및 패킷 번호 등을 포함할 수 있다.
본 발명의 다양한 실시 예에서, 제2 브로커 장치(23)는 제1 브로커 장치(13)로부터 수신된 얼라이브 메시지의 무결성을 검사하고, 메시지가 올바르게 수신되지 않았다고 판단되는 경우에는 부정 응답 메시지(NACK)를 전송할 수 있다. 이 경우, 제1 브로커 장치(13)와 제2 브로커 장치(23) 간 얼라이브 메시지의 재교환이 이루어질 수 있다.
제1 브로커 장치(13)는 수신된 응답 메시지로부터 제2 브로커 장치(23)를 식별할 수 있다(305). 제1 브로커 장치(13)는 응답 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제2 브로커 장치(23)를 식별할 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)는 포트 번호 68213을 이용하는 제2 브로커 장치(23)를 식별할 수 있다.
제1 브로커 장치(13)는 식별된 제2 브로커 장치(23)에 관한 정보로써, 제2 브로커 장치(23)의 도메인 정보(라우터 정보를 포함할 수 있다.), GUID, IP 주소 및 패킷 번호 등을 저장하고 관리할 수 있다. 구현하기에 따라, 제1 브로커 장치(13)는 자신이 할당한 포트 번호 및 제2 브로커 장치(23)의 정보를 매핑 정보로써 저장할 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)의 포트 번호 57321과 제2 브로커 장치(23)의 포트 번호 68213이 연계될 수 있다.
상술한 탐색 과정이 완료된 이후에, 제1 브로커 장치(13)와 제2 브로커 장치(23)는 기설정된 주기에 따라 얼라이브 메시지를 교환하여 서로의 존재를 확인할 수 있다(306, 307). 이때, 제1 브로커 장치(13) 및 제2 브로커 장치(23)는 서로의 포트 번호를 인지하고 있으므로, 얼라이브 메시지는 상대방의 포트 번호로 직접 전송될 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)는 제2 브로커 장치(23)를 위하여 목적지 주소 129.254.1.4:68213으로 얼라이브 메시지를 전송하고, 제2 브로커 장치(23)는 제1 브로커 장치(13)를 위하여 목적지 주소 129.254.1.2:57321로 얼라이브 메시지를 전송한다. 얼라이브 메시지의 교환 주기는 네트워크 성능, 네트워크 부하 등을 기초로 결정될 수 있다.
이하에서는, 제1 브로커 장치(13)와 제2 브로커 장치(23)를 통하여 제1 도메인(10) 및 제2 도메인(20)의 제1 참여자(12) 및 제2 참여자(22)가 참여자 탐색을 수행하는 방법을 구체적으로 설명한다.
도 5는 본 발명에 따른 DDS 시스템에서 참여자 탐색 동작을 설명하기 위한 흐름도이다.
도 2의 실시 예에서, 제1 도메인(10)에는 제1 참여자(12)가 제2 도메인(20)에는 제2 참여자(22)가 배치된다. 제1 참여자(12) 및 제2 참여자(22)에는 각각이 속한 도메인(10, 20)에서 제공하는 IP 주소와 포트 번호가 할당된다. 이때, 제1 참여자(12) 및 제2 참여자(22)에는 RTPS 프로토콜에 의해 기설정된 값의 포트 번호가 할당될 수 있다. 도 2의 실시 예에서, 제1 참여자(12)에는 192.168.0.3의 IP 주소 및 7400의 포트 번호가 할당되고, 제2 참여자(22)에는 192.168.2.3의 IP 주소 및 7400의 포트 번호가 할당되어 있다. 추가로, 제1 참여자(12) 및 제2 참여자(22)에게는 GUID가 할당된다.
본 발명의 다양한 실시 예에서, 제1 참여자(12)와 제2 참여자(22)는 일반적인 RTPS 프로토콜에 따라 도메인 내의 다른 참여자에 대한 탐색을 수행한다.
먼저, 제1 참여자(12)는 제1 도메인(10) 내에 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(501). 탐색 메시지에는 제1 참여자(12)의 GUID, IP 주소, 포트 번호 등에 대한 정보가 포함될 수 있다.
제1 도메인(10) 내에서 동작하는 제1 브로커 장치(13)는 제1 참여자(12)로부터 전송되는 탐색 메시지를 수신할 수 있다. 제1 브로커 장치(13)는 수신된 탐색 메시지로부터 제1 참여자(12)를 식별할 수 있다(502). 제1 브로커 장치(13)는 탐색 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 브로커 장치(13)를 식별할 수 있다. 제1 브로커 장치(13)는 제1 참여자(12)의 포트 번호에 관한 정보를 저장하고 관리할 수 있다.
이후에, 제1 브로커 장치(13)는 제1 라우터(11) 및 제2 도메인(20)의 제2 라우터(21)를 통해 제2 브로커 장치(23)로, 제1 참여자(12)에 대한 탐색 메시지를 전송할 수 있다(503). 브로커 장치 간에 송수신되는 탐색 메시지는 RTPS 프로토콜에서 정의되는 탐색 메시지와 동일한 패킷 구조를 가지거나 또는 별도로 정의되는 패킷 구조를 가질 수 있다. 탐색 메시지는 제1 참여자(12)에 대한 식별 정보로써, 예를 들어 도메인 정보, GUID, IP 주소, 패킷 번호 등이 포함될 수 있다.
제2 브로커 장치(23)는 수신된 탐색 메시지로부터 제1 참여자(12)를 식별하고, 제1 참여자(12)를 위한 IP 주소 및 포트 번호를 할당할 수 있다(504). 제2 브로커 장치(23)는 탐색 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 참여자(12)를 식별할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 포트 번호 7400을 이용하는 제1 참여자(12)를 식별할 수 있다.
제2 브로커 장치(23)는 식별된 제1 참여자(12)를 위한 포트 번호를 할당할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 제1 참여자(12)를 위한 포트 번호로써 88888을 할당한다. 여기서, 포트 번호는 제2 도메인(20)의 참여자들로부터 전송되는 패킷을 제1 참여자(12)를 위해 수신하기 위한 수신 포트로써 설정될 수 있다.
일 실시 예에서, 제2 브로커 장치(23)는 식별된 제1 참여자(12)를 위한 IP 주소를 더 할당할 수 있다. 제1 도메인(10)과 제2 도메인(20)은 내부 IP 주소로 이용될 수 있는 IP 주소의 범위가 상이할 수 있다. 따라서, 제1 도메인(10)에서 사용하는 IP 주소 범위 내의 IP 주소는 제2 도메인(20)에 존재하는 브로커 및 참여자들에 의해 올바르게 식별되지 않을 수 있다. 따라서, 제2 브로커 장치(23)는 제1 도메인(10)에 존재하는 제1 참여자(12)를 위하여 제2 도메인(20)에 대응하는 IP 주소를 할당할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 제1 참여자(12)를 위하여 192.168.2.5의 IP 주소를 할당할 수 있다.
제2 브로커 장치(23)는 식별된 제1 참여자(12)에 관한 정보로써, 제1 참여자(12)의 도메인 정보(해당 도메인의 브로커 장치에 관한 정보를 포함할 수 있다.), 해당 도메인에서의 GUID, IP 주소, 포트 번호 등을 저장하고 관리할 수 있다. 제2 브로커 장치(23)는 제1 참여자(12)에 관한 정보와 자신이 제1 참여자(12)를 위하여 할당한 IP 주소 및 포트 번호를 연계하여 매핑 정보로써 저장할 수 있다. 도 2의 실시 예에서, 제1 참여자(12)에 대하여, 제1 도메인(10) 내의 포트 번호 7400과 제2 브로커 장치(23)가 할당한 IP 주소 192.168.2.5 및 포트 번호 88888이 연계될 수 있다.
일 실시 예에서, 제2 브로커 장치(23)는 탐색 메시지에 응답하여 제1 브로커 장치(13)로 응답 메시지를 전송할 수 있다(505). 응답 메시지는 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 포트 번호 등을 포함할 수 있다. 이 경우, 제1 브로커 장치(13)는 제1 도메인(10) 내에서의 제1 참여자(12)에 관한 정보와 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 포트 번호를 연계하여 저장할 수 있다.
이후에, 제2 브로커 장치(23)는 제2 도메인(20) 내에 제1 참여자(12)에 대한 RTPS 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(506). 탐색 메시지에는 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 IP 주소, 포트 번호, 제1 참여자(12)의 GUID 등이 포함될 수 있다.
제2 브로커 장치(23)가 전송한 탐색 메시지는 제2 도메인(20) 내에서 동작하는 제2 참여자(22)에 의하여 수신될 수 있다. 탐색 메시지에는 제2 도메인(20)에서 유효한 IP 주소, 포트 번호 등이 포함되어 있으므로, 제2 참여자(22)는 제1 참여자(12)를 유효하게 식별할 수 있다(507). 제1 참여자(12)를 식별함으로써 제2 참여자(22)는 마치 제1 참여자(12)가 제2 도메인(20)에 존재하는 참여자인 것처럼 인지하고, 제1 참여자(12)를 위한 패킷을 송신하거나 제1 참여자(12)로부터 전송되는 패킷을 수신할 수 있다.
유사하게, 제2 참여자(22)도 제2 도메인(20) 내에 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(508). 탐색 메시지를 수신한 제2 브로커 장치(23)는 제2 참여자(22)를 식별하고 제2 참여자(22)에 대한 포트 번호를 저장한 뒤(509), 제1 브로커 장치(13)로 제2 참여자(22)를 위한 탐색 메시지를 전송할 수 있다(510).
제1 브로커 장치(13)는 제2 참여자(22)를 위한 제1 도메인(10) 대응 IP 주소 및 포트 번호를 할당할 수 있다(511). 도 2의 실시 예에서, 제1 브로커 장치(13)는 제2 참여자(22)를 위해 포트 번호 99999를 할당한다. 제1 브로커 장치(13)는 제2 브로커 장치(23)로 응답 메시지를 전송할 수 있고(512), 제1 도메인(10) 내에 제2 참여자(22)를 위한 탐색 메시지를 전송할 수 있다(513). 제1 도메인(10) 내의 제1 참여자(12)는 제1 브로커 장치(13)가 전송한 탐색 메시지를 수신하고, 유효하게 제2 참여자(22)를 식별할 수 있다(514).
제2 참여자(22)를 위한 참여자 탐색 방법의 구체적인 내용은 제1 참여자(12)를 위한 탐색 방법과 동일하므로 상세한 설명은 생략한다.
이하에서, 상기한 참여자 탐색 이후에, 상이한 도메인에 위치한 제1 참여자(12)와 제2 참여자(22)가 실질적으로 DDS 통신을 수행하는 방법을 구체적으로 설명한다.
도 6은 본 발명에 따른 DDS 시스템에서 DDS 통신을 수행하는 방법을 설명하기 위한 흐름도이다. 이하에서 설명하는 DDS 통신 방법은 도 5에 도시된 참여자 탐색 이후에 수행되는 종단점 탐색을 위한 메시지 패킷 또는 탐색이 모두 완료된 이후에 참여자들 간 송수신되는 데이터 패킷에 대한 DDS 통신에 적용될 수 있다.
도 6을 참조하면, 제1 참여자(12)는 제1 도메인(10) 내에 패킷을 전송한다(601). 패킷은 유니캐스트 또는 멀티캐스트 방식으로 전송될 수 있으며, 데이터 패킷의 경우 해당 데이터 패킷의 토픽에 대한 구독자를 위해 전송될 수 있다. 일 실시 예에서, 패킷은 제2 도메인(20) 내의 제2 참여자(22)를 위한 패킷일 수 있다. 즉, 도 2의 실시 예에서 패킷은 목적지 주소의 포트 번호가 99999로 설정된 패킷이다.
제1 도메인(10) 내에서 동작하는 제1 브로커 장치(13)는 제1 참여자(12)로부터 전송되는 패킷을 수신할 수 있다. 제1 브로커 장치(13)는 패킷의 목적지를 식별할 수 있다(602). 구체적으로, 제1 브로커 장치(13)는 패킷이 수신된 포트 번호를 기초로 패킷이 다른 도메인으로 전송되어야 할 패킷인지 여부를 판단할 수 있다. 패킷이 수신되는 포트 번호는, 해당 패킷의 목적지 주소에 대응할 수 있다.
제1 브로커 장치(13)는 패킷이 수신된 포트 번호를 기저장된 매핑 정보에서 검색하고, 해당 포트 번호가 다른 도메인의 정보와 연계되어 있는지를 판단할 수 있다. 해당 포트 번호가 다른 도메인의 정보와 연계되어 있는 경우, 제1 브로커 장치(13)는 매핑 정보로부터 패킷이 전송되어야 할 도메인에 관한 정보, 패킷을 전송할 브로커 장치에 관한 정보를 식별할 수 있다.
도 2의 실시 예에서, 제1 브로커 장치(13)는 포트 번호 99999로 수신된 패킷에 대하여, 해당 패킷이 제2 도메인(20)에, 즉 제2 브로커 장치(23)에 전송되어야 할 패킷임을 식별할 수 있다. 일 실시 예에서, 매핑 정보에 포트 번호 99999와 연계된 제2 도메인(20)의 참여자 정보가 포함되어 있는 경우, 제1 브로커 장치(13)는 해당 패킷이 제2 도메인(20)의 포트 번호 7400을 이용하는 제2 참여자(22)에게 전송되어야 할 패킷임을 추가로 식별할 수 있다. 이러한 제2 도메인(20) 내에서의 포트 번호 및 참여자에 대한 식별은 제2 도메인(20)에서 동작하는 제2 브로커 장치(23)에 의하여 수행될 수도 있다. 이 경우, 제1 브로커 장치(13)는 해당 패킷이 제2 도메인(20)에 전송되어야 할 패킷인 것만을 식별하여도 좋다.
제1 브로커 장치(13)는 식별 결과를 기초로, 패킷을 제2 도메인(20)의 제2 브로커 장치(23)에 전송할 수 있다(603).
일 실시 예에서, 제1 브로커 장치(13)는 패킷의 목적지 주소를 변경하지 않고 패킷을 그대로 전달할 수 있다. 이 경우, 도 2의 실시 예에서 패킷의 목적지 포트 번호는 99999로 설정된다. 다른 실시 예에서, 제1 브로커 장치(13)는 패킷의 목적지 주소를 식별된 제2 도메인(20)에서의 포트 번호로 재설정하여 전달할 수 있다. 이 경우, 도 2의 실시 예에서 패킷의 목적지 포트 번호는 7400으로 설정된다.
제1 브로커 장치(13)로부터 제2 브로커 장치(23)로 전송된 패킷은, 전술한 바와 같이 제1 브로커 장치(13)를 위하여 제2 브로커 장치(23)가 할당한 포트 번호, 즉 도 2의 실시 예에서 68213을 통해 제2 브로커 장치(23)에서 수신된다.
제2 브로커 장치(23)는 패킷의 목적지 주소를 기초로, 패킷이 전송되어야 할 제2 도메인(20) 내의 참여자를 식별할 수 있다(604).
제2 브로커 장치(23)는 제1 브로커 장치(13)를 위하여 할당한 포트 번호를 통해 패킷이 수신됨에 따라 해당 패킷이 제1 도메인(10)으로부터 수신된 것임을 식별할 수 있다. 제2 브로커 장치(23)는 해당 패킷이 제2 도메인(20) 내의 어느 참여자에게 전달되어야 할 것인지를 판단할 수 있다.
일 실시 예에서, 수신된 패킷이 제1 도메인(10)에서의 포트 번호를 포함하는 경우, 제2 브로커 장치(23)는 기저장된 매핑 정보에서 제1 포트 번호를 검색할 수 있다. 포트 정보가 기저장된 매핑 정보에서 검색되면, 제2 브로커 장치(23)는 해당 포트 번호와 연계된 제2 도메인(20)의 포트 번호를 판단할 수 있다. 도 2의 실시 예에서 제2 브로커 장치(23)는 목적지 주소의 포트 번호가 99999로 설정된 패킷에 대하여, 해당 패킷이 제2 도메인(20)의 포트 번호 7400을 이용하는 제2 참여자(22)에게 전송되어야 할 패킷임을 식별할 수 있다.
다른 실시 예에서, 수신된 패킷이 제2 도메인(20)에서의 포트 번호를 포함하는 경우, 제2 브로커 장치(23)는 해당 패킷이 전송되어야 할 참여자를 식별할 수 있다. 도 2의 실시 예에서 제2 브로커 장치(23)는 목적지 주소의 포트 번호가 7400으로 설정된 패킷에 대하여, 해당 패킷이 제2 참여자(22)에게 전송되어야 할 패킷임을 식별할 수 있다.
제2 브로커 장치(23)는 식별 결과를 기초로, 패킷을 도메인 내의 참여자에게 전송할 수 있다(605). 도 2의 실시 예에서, 제2 브로커 장치(23)는 제2 참여자(22)에게 패킷을 전달할 수 있다.
상기와 같이 본 발명에서는 각각의 도메인(10, 20)에 마련되며, 라우터(11, 12)를 통하여 통신 가능하게 설정되는 브로커 장치(13, 23)에 의해, 상이한 도메인에 위치한 참여자들 간의 DDS 통신이 가능하게 한다.
도 7은 본 발명에 따른 DDS를 위한 장치의 구조를 나타낸 블록도이다. DDS를 위한 장치(700)는 상술한 브로커 장치일 수 있다.
도 7을 참조하면, 장치(700)는 통신부(710), 제어부(720) 및 저장부(730)를 포함하여 구성될 수 있다.
통신부(710)는 유선 또는 무선 통신 기술을 이용하여 외부와 통신을 수행한다. 구체적으로, 통신부(710)는 장치(700)와 동일한 도메인 내에 존재하는 적어도 하나의 참여자, 또는 상이한 도메인 내에 존재하는 다른 장치와 통신을 수행할 수 있다. 본 발명의 다양한 실시 예에서, 통신부(710)는 다른 도메인 내에 존재하는 다른 장치와 얼라이브 메시지 및 그에 대한 응답 메시지를 교환할 수 있다. 또한, 통신부(710)는 도메인 내의 참여자로부터 수신된 패킷을 다른 도메인의 장치로 전달하거나, 다른 도메인의 장치로부터 수신된 패킷을 도메인 내의 참여자에게 전달할 수 있다. 다른 도메인과의 통신은 라우터를 통하여 중개될 수 있다.
제어부(720)는 본 발명에 따른 DDS 통신 방법을 수행하기 위해 장치(700)의 각 구성 요소들을 제어한다. 구체적으로, 제어부(720)는 다른 도메인 내에 존재하는 다른 장치를 위한 포트를 할당하고, 할당된 포트를 통해 다른 장치로부터 메시지 및/또는 패킷을 수신할 수 있다. 또한, 제어부(720)는 자신의 GUID, IP 주소, 포트 번호 등의 정보를 다른 도메인 내에 존재하는 다른 장치에게 전송함으로써, 다른 장치가 자신을 위한 포트를 할당할 수 있도록 한다.
또한, 제어부(720)는 자신이 속한 도메인 내에 존재하는 적어도 하나의 참여자에 대한 식별 정보, 예를 들어 포트 번호를 저장하고 관리한다. 제어부(720)는 자신이 속한 도메인 내에 존재하는 적어도 하나의 참여자에 대한 식별 정보를 다른 도메인의 장치로 전달하여, 다른 도메인의 장치가 참여자를 위한 포트를 할당할 수 있도록 한다. 제어부(720)는 다른 도메인의 장치로부터 수신되는 다른 도메인 내의 적어도 하나의 참여자를 위하여 식별 정보, 예를 들어 포트를 할당하고 저장할 수 있다.
제어부(720)는 다른 도메인 내의 참여자를 위하여 할당된 포트로 패킷이 수신되면, 해당 참여자가 속한 도메인, 즉 해당 참여자가 속한 도메인의 장치를 식별하고 식별된 장치로 패킷을 전달하여, 식별된 장치를 통해 다른 도메인 내의 참여자에게 패킷이 전송될 수 있도록 한다. 또한, 제어부(720)는 다른 도메인의 장치로부터 패킷이 수신되는 경우, 패킷의 목적지 포트 번호를 기초로 해당 패킷이 전달되어야 할 내부 도메인의 참여자를 식별하고 식별된 참여자에게 패킷을 전달할 수 있다.
제어부(720)의 보다 상세한 제어 동작은 도 2 내지 도 6을 참조하여 설명한 바와 같다.
저장부(730)는 장치(700)의 동작을 위하여 필요한 정보, 데이터, 운영 체제, 프로그램, 소프트웨어, 애플리케이션 등을 저장할 수 있다. 본 발명의 다양한 실시 예에서, 저장부(730)는 제어부(720)의 제어에 따라 도메인 내의 적어도 하나의 참여자를 위한 정보로써 포트 번호를 저장하고 관리할 수 있다. 또한, 저장부(730)는 다른 도메인 내의 브로커 및 적어도 하나의 참여자에 관한 정보로써 포트 번호와 제어부(720)가 내부 도메인을 위해 별도로 할당한 포트 번호, IP 주소 등을 연계항 매핑 정보로써 저장할 수 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
700: 장치
710: 통신부
720: 제어부
730: 저장부

Claims (10)

  1. 데이터 분산 서비스를 위한 장치로서,
    상기 장치가 속한 제1 도메인과 상이한 제2 도메인의 제2 장치와 통신하는 통신부; 및
    상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하고, 상기 제1 도메인을 구성하는 적어도 하나의 제1 참여자에 대한 탐색 메시지를 상기 제2 장치로 전송하며, 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하도록 상기 통신부를 제어하는 제어부를 포함하되,
    상기 탐색 메시지는,
    상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 내부 식별자는,
    상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 제어부는,
    상기 제2 장치를 위한 내부 식별자를 할당하고, 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하되,
    상기 얼라이브 메시지는,
    상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 하는 장치.
  4. 제3항에 있어서,
    정보를 저장하는 저장부를 더 포함하고,
    상기 제어부는,
    상기 제2 장치로부터 상기 얼라이브 메시지에 응답하여 상기 제2 장치의 식별 정보를 포함하는 응답 메시지가 수신되면, 상기 제2 장치의 식별 정보를 상기 할당된 내부 식별자와 연계하여 매핑 정보로써 상기 저장부에 저장하는 것을 특징으로 하는 장치.
  5. 제1항에 있어서, 상기 제어부는,
    상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하되,
    상기 제2 장치는,
    상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 하는 장치.
  6. 제1 도메인을 구성하는 장치의 데이터 분산 서비스를 위한 방법으로서,
    상기 제1 도메인과 상이한 제2 도메인의 제2 장치로 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 전송하는 단계;
    상기 제2 장치로부터 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자에 대한 탐색 메시지가 수신되면, 상기 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하는 단계; 및
    상기 내부 식별자를 기초로 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하는 단계를 포함하되,
    상기 제2 장치로 전송되는 상기 탐색 메시지는,
    상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 내부 식별자는,
    상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서, 상기 탐색 메시지를 전송하는 단계 이전에,
    상기 제2 장치를 위한 내부 식별자를 할당하는 단계; 및
    상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하는 단계를 더 포함하되,
    상기 얼라이브 메시지는,
    상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 하는 방법.
  9. 제6항에 있어서, 상기 통신하는 단계는,
    상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하는 단계를 포함하되,
    상기 제2 장치는,
    상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 하는 방법.
  10. 제1항 내지 제5항 중 어느 한 항에 따른 장치를 포함하는 데이터 분산 서비스 시스템.
KR1020170176941A 2017-12-21 2017-12-21 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템 KR102025375B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176941A KR102025375B1 (ko) 2017-12-21 2017-12-21 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176941A KR102025375B1 (ko) 2017-12-21 2017-12-21 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템

Publications (2)

Publication Number Publication Date
KR20190075391A true KR20190075391A (ko) 2019-07-01
KR102025375B1 KR102025375B1 (ko) 2019-09-26

Family

ID=67255663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176941A KR102025375B1 (ko) 2017-12-21 2017-12-21 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템

Country Status (1)

Country Link
KR (1) KR102025375B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030780B1 (ko) * 2019-08-07 2019-10-10 한화시스템(주) Dds 시스템 및 이의 디스커버리 방법
KR20220067269A (ko) * 2020-11-17 2022-05-24 (주)젠토 가상화 장비를 이용한 데이터 분산 서비스 방법 및 데이터 분산 서비스 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150009715A (ko) * 2013-07-17 2015-01-27 한국전자통신연구원 참여자 발견 메시지 주기 결정 방법 및 장치
KR20150077256A (ko) * 2013-12-26 2015-07-07 한국전자통신연구원 다중 네트워크 도메인에서 데이터 분산 서비스(dds) 통신을 위한 가상 객체 생성 장치 및 방법
KR101705797B1 (ko) * 2016-01-14 2017-02-10 충남대학교산학협력단 데이터 분산 서비스 기반의 통신단말 검색 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150009715A (ko) * 2013-07-17 2015-01-27 한국전자통신연구원 참여자 발견 메시지 주기 결정 방법 및 장치
KR20150077256A (ko) * 2013-12-26 2015-07-07 한국전자통신연구원 다중 네트워크 도메인에서 데이터 분산 서비스(dds) 통신을 위한 가상 객체 생성 장치 및 방법
KR101705797B1 (ko) * 2016-01-14 2017-02-10 충남대학교산학협력단 데이터 분산 서비스 기반의 통신단말 검색 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030780B1 (ko) * 2019-08-07 2019-10-10 한화시스템(주) Dds 시스템 및 이의 디스커버리 방법
KR20220067269A (ko) * 2020-11-17 2022-05-24 (주)젠토 가상화 장비를 이용한 데이터 분산 서비스 방법 및 데이터 분산 서비스 시스템

Also Published As

Publication number Publication date
KR102025375B1 (ko) 2019-09-26

Similar Documents

Publication Publication Date Title
CN103581299B (zh) 服务调度方法、装置及系统
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US8386614B2 (en) Network connection manager
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
KR20120071576A (ko) 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템
CN103781055A (zh) 一种数据下载方法及相关设备
CN107580079A (zh) 一种报文传输方法和装置
Nordström et al. Haggle: Opportunistic mobile content sharing using search
WO2021056738A1 (zh) 分布式系统nat穿透方法、装置、设备及存储介质
US9072078B2 (en) Method and mobile communication system capable of establishing peer-to-peer transmission
JP7046983B2 (ja) パケット伝送方法及び装置
CN103929438A (zh) 基于网页浏览器通信的防火墙穿越方法、设备和系统
KR102025375B1 (ko) 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템
US20100293239A1 (en) Maintaining instant messaging conversations when a recipient is not at their primary workstation
CN101808107A (zh) 一种存储设备与用户二层互通的方法、装置及系统
CN105357329A (zh) 跨idc网络环境下业务数据的传输方法、装置及系统
CN102938711B (zh) 网口信息配置方法及网络设备
CN104969521A (zh) 数据发送处理方法及路由器
US20140201262A1 (en) User device, communication server and control method thereof
CN103166851B (zh) 互联网信息的传送处理方法与系统
CN103152495A (zh) 一种媒体转移的方法、装置及系统
KR102137118B1 (ko) 데이터 분산 서비스를 위한 방법 및 장치, 데이터 분산 서비스 시스템
CN112039712B (zh) 在云服务器上进行卸载的方法、控制装置、存储介质
US8111635B2 (en) Server, terminal, and method for supporting mobility
KR102439923B1 (ko) 가상화 장비를 이용한 데이터 분산 서비스 방법 및 데이터 분산 서비스 시스템

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