KR102025375B1 - Apparatus and method for data distribution service, data distribution service system - Google Patents

Apparatus and method for data distribution service, data distribution service system Download PDF

Info

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

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 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 장치 및 그의 데이터 분산 서비스를 위한 방법, 이러한 장치를 포함하는 데이터 분산 서비스 시스템에 관한 것이다.The present invention relates to an apparatus and method for a data distribution service, and to a data distribution service system, the communication unit communicating with a second device in a second domain different from the first domain to which the device belongs, and at least one configuring the second domain. Assigning an internal identifier of the first domain for a second participant of, transmitting a discovery message for at least one first participant constituting the first domain to the second device, wherein the at least one first participant And a controller configured to control the communication unit to communicate with the second device in order to mediate a packet transmitted and received between the at least one second participant, wherein the discovery message is generated by the second device. An apparatus and its data used for assigning an internal identifier of the second domain for a participant It relates to a data distribution service system of method for distributed services, including such a device.

Description

데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템{Apparatus and method for data distribution service, data distribution service system}Apparatus and method for data distribution service, data distribution service system}

본 발명은 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것으로, 보다 구체적으로 다중 도메인에 분산된 데이터 분산 서비스 장치들 간 참여자 탐색이 가능하게 하는 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것이다. The present invention relates to an apparatus and method for data distribution service, and a data distribution service system. More particularly, the present invention relates to an apparatus and method for data distribution service that enables a participant discovery between data distribution service devices distributed in multiple domains. A distributed service system.

데이터 분산 서비스(Data Distribution Service, 이하 DDS)는 분산 환경을 위한 데이터 중심의 발간/구독(publish/subscribe) 방식의 통신을 위한 미들웨어의 표준 규격으로서, OMG(Object Management Group)에서 표준화되었다. DDS는 크게 데이터 공유 영역인 도메인(Domain)과 도메인 참여자(Domain Participant)(또는, 참여자)로 구성된다. 하나의 도메인에는 각각의 데이터에 대한 다수의 발간자(publisher)와 구독자(subscriber)가 존재하며 미리 약속된 데이터 타입인 토픽(topic)의 샘플을 교환하게 된다. DDS에서 데이터는 마치 신문을 발간 또는 구독하는 형태로 개체들 간에 분산된다. Data Distribution Service (DDS) is a standard specification of middleware for data-centric publish / subscribe communication for a distributed environment, and has been standardized by an object management group (OMG). DDS is largely composed of data sharing domain, Domain and domain participant (or participant). In one domain, there are multiple publishers and subscribers for each data, and they exchange samples of a topic, which is a pre-defined data type. In DDS, data is distributed among individuals as if they were published or subscribed to a newspaper.

이러한 DDS 미들웨어는 응용프로그램과 운영 체제 사이에 존재하는 서비스 계층으로서 API를 제공하며, 응용 프로그램은 이를 통해 쉽게 다른 개체와 통신을 수행할 수 있다. DDS 미들웨어는 크게 DCPS(Data-Centric Publish-Subscribe) 계층 및 RTPS(The Real-Time Publish Subscribe) 프로토콜을 사용하는 계층으로 구분될 수 있다.Such DDS middleware provides an API as a service layer existing between an application program and an operating system, and an application program can easily communicate with another entity through this. DDS middleware can be largely divided into a layer using a Data-Centric Publish-Subscribe (DCPS) layer and the Real-Time Publish Subscribe (RTPS) protocol.

DCPS 계층은 분산 환경을 위한 발간/구독의 명세를 갖는 미들웨어 인터페이스로서, 분산 환경을 위한 데이터 중심의 발간-구독 프로그래밍 모델에 대한 표준화된 인터페이스를 제공할 수 있다. RTPS 프로토콜을 사용하는 계층은 실제 데이터가 발간/구독되는 계층으로서, 도메인 형성과 사용할 데이터의 타입을 결정하고 도메인에 참여하는 원격지의 참여자들을 동적으로 탐색(Discovery)하는 기능을 제공할 수 있다. 한편, DCPS 계층은 QoS를 설정할 수 있는데, 이때 설정된 QoS에 따라 신뢰성(Reliable) 또는 비신뢰성(Unreliable)을 갖는 데이터 통신을 수행할 수 있다.The DCPS layer is a middleware interface with a specification of publish / subscribe for a distributed environment, and may provide a standardized interface to a data-driven publish-subscribe programming model for distributed environments. The layer using the RTPS protocol is a layer in which actual data is published / subscribed, and may provide a function of determining domain formation and type of data to be used, and dynamically discovering remote participants participating in the domain. On the other hand, the DCPS layer can set the QoS, in this case can perform a data communication having reliable (Reliable) or unreliable (Unreliable) according to the set QoS.

RTPS 프로토콜에서는 통신을 수행하는 도메인 참여한 개체들, 즉 참여자들을 찾기 위하여 참여자들에 대한 탐색, 즉 참여자 탐색(Participant Discovery) 및 참여자 내부에 존재하는 라이터(writer), 리더(reader)와 같은 종단 장치의 탐색, 즉 종단점 탐색(Endpoint Discovery)를 수행한다. In the RTPS protocol, a search for a participant, such as Participant Discovery and a writer or reader, exists within a participant to find domain-participating entities that communicate. Perform discovery, that is, endpoint discovery.

한편, DDS 참여자들의 수가 일정 규모를 넘어서는 경우 단일 도메인만으로는 모든 DDS 참여자를 수용할 수 없다. 즉, 하나의 도메인에서는 일정 수 이상의 주소를 제공할 수 없으므로, DDS 시스템은 다중 도메인으로 구성되어야 한다. 도 1은 다중 도메인으로 구성된 DDS 시스템의 일반적인 구성을 나타낸 도면이다. 도 1을 참조하면, 각각이 적어도 하나의 참여자들(1a, 2a, 3a)을 포함하는 복수의 도메인들(1, 2, 3)이 도시된다. On the other hand, if the number of DDS participants exceeds a certain size, a single domain alone cannot accommodate all DDS participants. That is, since one domain cannot provide more than a certain number of addresses, the DDS system must be composed of multiple domains. 1 is a diagram showing a general configuration of a DDS system composed of multiple domains. Referring to FIG. 1, a plurality of domains 1, 2, 3, each of which includes at least one participant 1a, 2a, 3a, is shown.

그러나 종래의 DDS 시스템은 상이한 도메인에 속한 참여자들에 대해 참여자 탐색을 가능하게 하는 수단이 제공하지 않는다. 따라서, 다중 도메인에 분산된 참여자들 간에 DDS 통신이 적절하게 수행되지 못하는 문제점이 있었다. However, the conventional DDS system does not provide a means for enabling participant search for participants belonging to different domains. Therefore, there is a problem that DDS communication is not properly performed between participants distributed in multiple domains.

본 발명은 상기한 문제점을 해결하기 위한 것으로, 브로커로 동작하는 장치를 통하여 상이한 도메인에 분산된 참여자를 탐색하고, DDS 통신을 수행할 수 있도록 하는 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템에 관한 것이다. The present invention has been made to solve the above problems, an apparatus and method for a data distribution service, and a data distribution service system for discovering a participant distributed in different domains and performing DDS communication through a device operating as a broker. It is about.

상술한 과제를 해결하기 위한 본 발명에 따른 데이터 분산 서비스를 위한 장치는, 상기 장치가 속한 제1 도메인과 상이한 제2 도메인의 제2 장치와 통신하는 통신부 및 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하고, 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 상기 제2 장치로 전송하며, 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하도록 상기 통신부를 제어하는 제어부를 포함하되, 상기 탐색 메시지는, 상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 한다.An apparatus for data distribution service according to the present invention for solving the above-described problems, communication unit for communicating with a second device of a second domain different from the first domain to which the device belongs and at least one constituting the second domain Assign an internal identifier of the first domain for a second participant, send a discovery message for at least one first participant constituting the first domain to the second device, the at least one first participant and And a control unit for controlling the communication unit to communicate with the second device in order to mediate packets transmitted and received between the at least one second participant, wherein the discovery message is provided by the second device by the at least one first participant. It is used to assign the internal identifier of the second domain for.

또한, 상기 내부 식별자는, 상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 한다.The internal identifier may include at least one of an IP address and a port number corresponding to the first domain.

또한, 상기 제어부는, 상기 제2 장치를 위한 내부 식별자를 할당하고, 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하되, 상기 얼라이브 메시지는, 상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 한다.The controller may be further configured to allocate an internal identifier for the second device and to transmit an alive message including identification information of the device to the second device, wherein the alive message is determined by the second device. And to assign an internal identifier of the second domain for the second domain.

또한, 상기 장치는, 정보를 저장하는 저장부를 더 포함하고, 상기 제어부는, 상기 제2 장치로부터 상기 얼라이브 메시지에 응답하여 상기 제2 장치의 식별 정보를 포함하는 응답 메시지가 수신되면, 상기 제2 장치의 식별 정보를 상기 할당된 내부 식별자와 연계하여 매핑 정보로써 상기 저장부에 저장하는 것을 특징으로 한다.The apparatus may further include a storage configured to store information, and the controller may be configured to, when the response message including the identification information of the second apparatus is received from the second apparatus in response to the alive message. The identification information of the device is stored in the storage unit as mapping information in association with the assigned internal identifier.

또한, 상기 제어부는, 상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하되, 상기 제2 장치는, 상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 한다.The control unit may transmit the packet to the second device in response to the internal identifier of the packet when the at least one first participant receives a packet for an internal identifier allocated for the second participant. The second device delivers the packet to a second participant identified based on the internal identifier of the packet.

또한, 상술한 과제를 해결하기 위한 본 발명에 따른 제1 도메인을 구성하는 장치의 데이터 분산 서비스를 위한 방법은, 상기 제1 도메인과 상이한 제2 도메인의 제2 장치로 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 탐색 메시지를 전송하는 단계, 상기 제2 장치로부터 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자에 대한 탐색 메시지가 수신되면, 상기 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하는 단계 및 상기 내부 식별자를 기초로 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하는 단계를 포함하되, 상기 제2 장치로 전송되는 상기 탐색 메시지는, 상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 한다.In addition, the method for the data distribution service of the device constituting the first domain according to the present invention for solving the above-described problem, the second domain of the second domain different from the first domain to configure the first domain Transmitting a discovery message for at least one first participant; if a discovery message for at least one second participant constituting the second domain is received from the second device, the discovery message for the at least one second participant Allocating an internal identifier of the first domain and communicating with the second device to mediate packets sent and received between the at least one first participant and the at least one second participant based on the internal identifier Wherein the discovery message is sent to the second device, wherein the second device is for the at least one first participant. It characterized in that is used to allocate the internal group identifier of the second domain.

또한, 상기 내부 식별자는, 상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 한다. The internal identifier may include at least one of an IP address and a port number corresponding to the first domain.

또한, 상기 방법은, 상기 탐색 메시지를 전송하는 단계 이전에, 상기 제2 장치를 위한 내부 식별자를 할당하는 단계 및 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하는 단계를 더 포함하되, 상기 얼라이브 메시지는, 상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 한다.In addition, the method further comprises: prior to sending the discovery message, allocating an internal identifier for the second device and sending an alive message comprising identification information of the device to the second device. Wherein the alive message is sent to the second device to assign an internal identifier of the second domain for the device.

또한, 상기 통신하는 단계는, 상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하는 단계를 포함하되, 상기 제2 장치는, 상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 한다.The communicating may include, if the packet for the internal identifier assigned for the second participant is received from the at least one first participant, forwarding the packet to the second device corresponding to the internal identifier of the packet. And transmitting the packet to the second participant identified based on the internal identifier of the packet.

또한, 상술한 과제를 해결하기 위한 본 발명에 따른 데이터 분산 서비스 시스템은, 상기 중 어느 하나에 따른 데이터 분산 서비스를 위한 장치를 포함하여 구성되는 것을 특징으로 한다. In addition, the data distribution service system according to the present invention for solving the above problems is characterized in that it comprises a device for a data distribution service according to any one of the above.

본 발명에 따른 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템은 다중 도메인으로 구성된 DDS 시스템에서, 브로커로 동작하는 장치를 통해 상이한 도메인에 속한 참여자들을 효과적으로 탐색할 수 있도록 한다. Apparatus, method, and data distribution service system for data distribution service according to the present invention enables to effectively search for participants belonging to different domains through a device acting as a broker in a multi-domain DDS system.

또한, 본 발명에 따른 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템은 다중 도메인 환경에서 DDS 통신이 적절하게 수행될 수 있도록 한다. In addition, the apparatus, method, and data distribution service system for the data distribution service according to the present invention enables DDS communication to be properly performed in a multi-domain environment.

도 1은 다중 도메인으로 구성된 DDS 시스템의 일반적인 구성을 나타낸 도면이다.
도 2는 본 발명에 따른 다중 도메인으로 구성된 DDS 시스템을 나타낸 도면이다.
도 3은 본 발명에 따른 DDS 시스템에서 브로커 장치 간 탐색 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 메시지의 패킷 구조를 나타낸 도면이다.
도 5는 본 발명에 따른 DDS 시스템에서 참여자 탐색 동작을 설명하기 위한 흐름도이다.
도 6은 본 발명에 따른 DDS 시스템에서 DDS 통신을 수행하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명에 따른 DDS를 위한 장치의 구조를 나타낸 블록도이다.
1 is a diagram showing a general configuration of a DDS system composed of multiple domains.
2 is a diagram illustrating a DDS system composed of multiple domains according to the present invention.
3 is a flowchart illustrating a search operation between broker devices in the DDS system according to the present invention.
4 is a diagram illustrating a packet structure of a message according to the present invention.
5 is a flowchart illustrating a participant search operation in the DDS system according to the present invention.
6 is a flowchart illustrating a method of performing DDS communication in a DDS system according to the present invention.
7 is a block diagram showing the structure of an apparatus for DDS according to the present invention.

본 명세서의 실시 예를 설명함에 있어 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우, 그 상세한 설명은 생략될 수 있다. In the following description of embodiments of the present disclosure, when it is determined that a detailed description of a related well-known configuration or function may obscure the gist of the present disclosure, the detailed description may be omitted.

본 명세서에서 사용되는 "포함한다," "포함할 수 있다." 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.  As used herein, "includes," "can include." And the like refer to the existence of the corresponding function, operation, component, etc. disclosed, and do not limit one or more additional functions, operations, components, and the like. Also, in this specification, "includes." Or "have." And the like are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described in the specification, and that one or more other features or numbers, step, action, component, part, or It should be understood that they do not preclude the presence or possibility of adding these in advance.

본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.As used herein, the singular forms "a", "an" and "the" include plural forms unless the context clearly indicates otherwise.

이하, 첨부된 도면을 참조하여 본 발명을 설명한다. Hereinafter, with reference to the accompanying drawings will be described the present invention.

도 2는 본 발명에 따른 다중 도메인으로 구성된 DDS 시스템을 나타낸 도면이다.2 is a diagram illustrating a DDS system composed of multiple domains according to the present invention.

도 2를 참조하면, 본 발명에 따른 DDS 시스템은 다수의 도메인들(10, 20)로 구성된다. 도 2의 실시 예에서는 2개의 도메인만이 도시되지만, 도메인의 개수에는 제한이 없다. 2, the DDS system according to the present invention is composed of a plurality of domains (10, 20). Although only two domains are shown in the embodiment of FIG. 2, the number of domains is not limited.

각각의 도메인(10, 20)은 하나의 라우터(11, 21)에 연결되어 로컬 네트워크를 형성하도록 구성될 수 있다. 각각의 도메인(10, 20)은 내부 라우터(11, 21)를 통하여 다른 도메인(10, 20)과 통신할 수 있다. Each domain 10, 20 may be configured to connect to one router 11, 21 to form a local network. Each domain 10, 20 may communicate with other domains 10, 20 via internal routers 11, 21.

각각의 도메인(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) 내에 존재할 수 있다.Each domain 10, 20 consists of a number of participants 12, 22. Participants 12 and 22 existing within domains 10 and 20 operate as RTPS communication objects and may be referred to as nodes. Each participant (12, 22) is a desktop computer, notebook computer, Ultra Mobile PC (UMPC), workstation, net-book, Personal Digital Assistants (PDA), portable computer, web tablet ), Mobile phones, smart phones, e-books, portable multimedia players, portable game consoles, navigation devices, set-top boxes, various One of electronic devices, various electronic devices constituting a computer network, and the like may be various types of terminal devices. In the embodiment of FIG. 2, only one participant 12, 22 is shown in each domain 10, 20, although a greater number of participants may exist in domain 10, 20.

각각의 참여자(12, 22)는 하나 이상의 발간자 또는 구독자를 가질 수 있다. 발간자는 자신의 정보를 전달하기 위해서 하나 이상의 라이터(writer)(또는, 데이터라이터(datawriter), 발간 개체)를 포함할 수 있고, 구독자는 발간자의 정보를 수신하기 위한 하나 이상의 리더(reader)(또는, 데이터리더(datareader), 구독 개체)를 포함할 수 있다. Each participant 12, 22 may have one or more publishers or subscribers. The publisher may include one or more writers (or datawriters, publication entities) to convey their information, and the subscriber may include one or more readers (or readers) to receive the publisher's information. , Datareaders, and subscription objects).

발간자와 구독자의 응용 프로그램에서는 특정 데이터의 주제를 나타내는 토픽을 생성하고, 이를 라이터와 리더에 관심 토픽으로 등록함으로써 상호 간에 정보를 교환한다. 관심 토픽이 상이한 발간자와 구독자는 토픽 데이터를 교환하지 않기 때문에 이들 간에는 간섭이 발생하지 않는다. 즉, DDS 시스템은 서버가 없는 피어-투-피어(Peer-to-Peer) 구조로서, 도메인 내에서 같은 관심 토픽을 갖는 참여자끼리만 통신을 한다. 관심 토픽에 대응되는 데이터는 라이터 및 DDS 네트워크를 통해서 DDS 데이터 패킷으로 전송되고, 리더는 수신된 DDS 데이터 패킷에 포함된 토픽 데이터를 확인하여 응용 프로그램에게 전달한다.The publisher and subscriber applications create topics that represent the subject of specific data and exchange information with each other by registering them as topics of interest to writers and readers. Since publishers and subscribers with different topics of interest do not exchange topic data, there is no interference between them. In other words, the DDS system is a serverless peer-to-peer structure where only participants with the same topic of interest in the domain communicate. The data corresponding to the topic of interest is transmitted as a DDS data packet through the writer and the DDS network, and the reader checks the topic data included in the received DDS data packet and delivers it to the application program.

상술한 동작을 수행하기 위해, 각각의 도메인(10, 20) 내에서 각각의 참여자(12, 22)는 자신이 속한 도메인(10, 20)에 참여한 다른 참여자를 발견하기 위한 탐색을 수행한다. 이를 구체적으로 설명하면 다음과 같다. In order to perform the above-described operation, each participant 12, 22 in each domain 10, 20 performs a search for finding another participant participating in the domain 10, 20 to which it belongs. This will be described in detail as follows.

각각의 참여자(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)에 속한 다른 참여자를 발견할 수 있다. Each participant 12, 22 sends a discovery message (or discovery message) in a unicast or multicast manner, informing its other participants in the domain 10, 20. This process is called participant search. The discovery message is a global unique identifier (GUID) assigned to the participant (12, 22) sending the discovery message, the protocol version of the participant (12, 22), vendor identifier, unicast and multicast locator (IP). Information such as address and port number) and how to track participants. Here, the GUID is assigned to identify each participant 12, 22 within the domain 10, 20, and the other participant transmits the corresponding discovery message or DDS data packet from the GUID of the discovery message or DDS data packet. It can be identified that the other participant is a specific participant who exists in the same domain (10, 20) as himself. In this way, the participants 12 and 22 may discover other participants belonging to the same domain 10 by communicating and exchanging discovery messages, respectively.

참여자 탐색이 완료되면, 각각의 참여자(12, 22)는 해당 참여자 내부에서 토픽 데이터 전송을 실제로 수행하는 통신 객체인 라이터 또는 리더의 QoS 정보들을 확인하고 교환하는 종단점 탐색을 수행한다.When the participant search is completed, each participant 12 and 22 performs an end point search for confirming and exchanging QoS information of a writer or a leader, which is a communication object that actually performs topic data transmission within the participant.

일반적인 DDS 시스템에서, 참여자 탐색은 동일한 도메인(10, 20) 내에서만 가능하도록 구성된다. 즉, 일반적인 DDS 시스템에서, 제1 도메인(10)에 속한 참여자(12)는 제2 도메인에 속한 참여자(22)를 탐색하지 못한다. 또한, 제2 도메인(20)에 속한 참여자(22)는 제1 도메인에 속한 참여자(12)를 탐색하지 못한다. 이는 참여자들(12, 22)이 자신이 속한 도메인(10, 20) 내에서만 탐색 메시지를 전송하고 수신할 수 있다. 이는 다중 도메인으로 구성되는 대규모 DDS 시스템에서 DDS 통신이 효율적으로 이루어질 수 없게 한다. In a typical DDS system, participant search is configured to be possible only within the same domain (10, 20). That is, in the general DDS system, the participant 12 belonging to the first domain 10 may not search for the participant 22 belonging to the second domain. In addition, the participant 22 belonging to the second domain 20 may not search for the participant 12 belonging to the first domain. This allows participants 12 and 22 to send and receive discovery messages only within their own domains 10 and 20. This prevents efficient DDS communication in a large DDS system composed of multiple domains.

상기한 문제를 해결하기 위하여, 본 발명의 다양한 실시 예에서, 각각의 도메인(10, 20)은 브로커로 동작하는 장치(13, 23)를 포함하여 구성된다. 장치(13, 23)는 DDS를 위한 장치로써, 이하에서는 편의를 위해 브로커 장치(13, 23)로 명명한다. In order to solve the above problem, in various embodiments of the present disclosure, each of the domains 10 and 20 includes devices 13 and 23 that operate as brokers. The devices 13 and 23 are devices for the DDS, hereinafter referred to as broker devices 13 and 23 for convenience.

브로커 장치(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 통신이 가능하게 할 수 있다.The broker devices 13 and 23 may transmit information about the participants 12 and 22 in the domains 10 and 20 to which they belong to the broker devices 13 and 23 of the other domains 10 and 20. In addition, the broker devices 13 and 23 that have received the information about the participants 12 and 22 in the other domains 10 and 20 allocate an internal port number for the corresponding participants 12 and 22, and the internal participant 12 , 22) and the DDS communication between the participants 12 and 22. As a result, the broker device 13, 23 can enable DDS communication as if the participants 12, 22 in the other domains 10, 20 are present in the internal domains 10, 20.

이하에서, 브로커 장치(13, 23)를 통하여 상이한 도메인에 분산된 참여자를 탐색하고 DDS 통신을 수행할 수 있도록 하는 방법을 보다 구체적으로 설명한다. Hereinafter, a method for enabling the DDS communication and searching for participants distributed in different domains through the broker devices 13 and 23 will be described in more detail.

도 3은 본 발명에 따른 DDS 시스템에서 브로커 장치 간 탐색 동작을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a search operation between broker devices in the DDS system according to the present invention.

도 2의 실시 예에서, 제1 도메인(10)에는 제1 브로커 장치(13)가, 제2 도메인(20)에는 제2 브로커 장치(23)가 배치된다. 제1 브로커 장치(13) 및 제2 브로커 장치(23)는 제1 도메인(10)과 제2 도메인(20) 각각에 존재하는 제1 및 제2 라우터(11, 21)를 통해 통신할 수 있다. In the embodiment of FIG. 2, the first broker apparatus 13 is disposed in the first domain 10, and the second broker apparatus 23 is disposed in the second domain 20. The first broker apparatus 13 and the second broker apparatus 23 may communicate through the first and second routers 11 and 21 existing in the first domain 10 and the second domain 20, respectively. .

제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가 할당될 수 있다.The first broker apparatus 13 and the second broker apparatus 23 are assigned IP addresses and port numbers corresponding to the domains 10 and 20 to which they belong. At this time, the first broker device 13 and the second broker device 23 may be assigned the same port number of a predetermined value. In the embodiment of FIG. 2, the first broker apparatus 13 is assigned an IP address of 192.168.0.2 and a port number of 8301, and the second broker apparatus 23 has an IP address of 192.168.2.1 and a port number of 8301. Is assigned. Also, in various embodiments of the present disclosure, GUIDs may be allocated to the first broker apparatus 13 and the second broker apparatus 23 similarly to the participants 12 and 22.

마찬가지로, 제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의 외부 네트워크 주소가 할당되어 있다.Similarly, the first router 11 and the second router 21 are also assigned an IP address. In the embodiment of FIG. 2, an IP address of 192.168.0.1 is assigned to the first router 11 and an IP address of 192.168.2.1 is assigned to the second router 21. In one embodiment, the first router 11 and the second router 21 may be further assigned an external network address for communicating with the external network. In the example of FIG. 2, the first router 11 is assigned an external network address of 129.254.1.2, and the second router 21 is assigned an external network address of 129.254.1.4.

본 발명의 다양한 실시 예에서, 제1 브로커 장치(13) 및 제2 브로커 장치(23)는 서로를 발견하기 위한 탐색을 수행할 수 있다. In various embodiments of the present disclosure, the first broker device 13 and the second broker device 23 may perform a search for finding each other.

도 3을 참조하면, 제1 브로커 장치(13)는 다른 도메인으로부터 메시지 및/또는 패킷을 수신하기 위한 포트 번호를 할당할 수 있다. 구체적으로, 제1 브로커 장치(13)는 다른 도메인의 브로커 장치, 예를 들어 제2 도메인(20)의 제2 브로커 장치(23)를 위한 포트 번호를 할당할 수 있다(301). 도 2의 실시 예에서, 제1 브로커 장치(13)는 제2 브로커 장치(23)를 위한 포트 번호로써 57321을 할당한다. 할당된 포트 번호는 제2 브로커 장치(23)로부터 메시지 및/또는 패킷을 수신하기 위한 수신 포트로써 설정될 수 있다. Referring to FIG. 3, the first broker apparatus 13 may allocate a port number for receiving a message and / or a packet from another domain. In detail, the first broker apparatus 13 may allocate a port number for the broker apparatus of another domain, for example, the second broker apparatus 23 of the second domain 20 (301). In the embodiment of FIG. 2, the first broker apparatus 13 allocates 57321 as a port number for the second broker apparatus 23. The assigned port number may be set as a receiving port for receiving a message and / or a packet from the second broker device 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로 얼라이브 메시지를 전송한다. Thereafter, the first broker device 13 may transmit an alive message to the second broker device 23 through the first router 11 and the second router 21 of the second domain 20. (302). At this time, the first broker apparatus 13 recognizes the external network address of the second router 21 in order to transmit the alive message. In addition, as described above, the first broker apparatus 13 may recognize that the second broker apparatus 23 is assigned the same port number as itself. Accordingly, in the embodiment of FIG. 2, the first broker device 13 transmits an alive message to the destination address 192.254.1.4:8301.

본 발명의 다양한 실시 예에서, 얼라이브 메시지는 도 4에 도시된 것과 같은 패킷 구조를 가질 수 있다. 도 4를 참조하면, 패킷 구조는 PREFIX 필드와 Struct socketaddr 필드로 구성될 수 있다. PREFIX 필드는 도메인 정보, 브로커 장치(13, 23)의 식별 정보, 예를 들어 GUID 등을 포함할 수 있다. Struct socketaddr 필드는 브로커 장치(13, 23)의 IP 주소 및 패킷 번호와 같은 바인드 정보를 포함할 수 있다. 또한, 얼라이브 메시지에는 얼라이브 메시지를 수신할 브로커 장치(13, 23)를 위하여 할당된 식별 정보, 예를 들어 패킷 번호가 포함될 수 있다. 얼라이브 메시지는 참여자(12, 22)가 송수신하는 탐색 메시지와 구분하기 위해 채택된 용어로써, 다양한 실시 예에서, 얼라이브 메시지는 탐색 메시지, 킵얼라이브 메시지, 헬로 메시지, 하트비트 메시지 등으로 명명될 수 있다. In various embodiments of the present disclosure, the alive message may have a packet structure as shown in FIG. 4. Referring to FIG. 4, the packet structure may include a PREFIX field and a Struct socketaddr field. The PREFIX field may include domain information, identification information of the broker devices 13 and 23, for example, a GUID, and the like. The Struct socketaddr field may include bind information such as IP addresses and packet numbers of the broker devices 13 and 23. In addition, the alive message may include identification information allocated for the broker devices 13 and 23 to receive the alive message, for example, a packet number. Alive message is a term adopted to distinguish a discovery message from a participant 12 and 22. In various embodiments, the alive message may be referred to as a discovery message, a keep-alive message, a hello message, a heartbeat message, or the like. .

얼라이브 메시지는 제2 라우터(21)에 의해 포트 번호 8301을 갖는 제2 브로커 장치(23)로 전달된다. The alive message is forwarded by the second router 21 to the second broker device 23 having the port number 8301.

제2 브로커 장치(23)는 수신된 얼라이브 메시지로부터 제1 브로커 장치(13)를 식별하고, 제1 브로커 장치(13)를 위한 포트 번호를 할당할 수 있다(303). 제2 브로커 장치(23)는 얼라이브 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 브로커 장치(13)를 식별할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 포트 번호 57321을 이용하는 제1 브로커 장치(13)를 식별할 수 있다.The second broker apparatus 23 may identify the first broker apparatus 13 from the received alive message and allocate a port number for the first broker apparatus 13 (303). The second broker device 23 may identify the first broker device 13 based on information extracted from the live message, for example, a port number. In the embodiment of FIG. 2, the second broker apparatus 23 may identify the first broker apparatus 13 using the port number 57321.

제2 브로커 장치(23)는 식별된 제1 브로커 장치(13)를 위한 포트 번호를 할당할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 제1 브로커 장치(13)를 위한 포트 번호로써 68213을 할당한다. 할당된 포트 번호는 제1 브로커 장치(13)로부터 메시지 및/또는 데이터 등의 패킷을 수신하기 위한 수신 포트로 설정될 수 있다. The second broker device 23 may assign a port number for the identified first broker device 13. In the embodiment of FIG. 2, the second broker device 23 allocates 68213 as a port number for the first broker device 13. The assigned port number may be set as a reception port for receiving a packet such as a message and / or data from the first broker device 13.

제2 브로커 장치(23)는 식별된 제1 브로커 장치(13)에 관한 정보로써, 제1 브로커 장치(13)의 도메인 정보(라우터 정보를 포함할 수 있다.), GUID, IP 주소 및 패킷 번호 등을 저장하고 관리할 수 있다. 구현하기에 따라, 제2 브로커 장치(23)는 자신이 할당한 포트 번호 및 제1 브로커 장치(13)의 정보를 연계하여 매핑 정보로써 관리할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)의 포트 번호 68213과 제1 브로커 장치의 포트 번호 57321이 연계될 수 있다. The second broker apparatus 23 is information about the identified first broker apparatus 13, and includes domain information (which may include router information), GUID, IP address, and packet number of the first broker apparatus 13. Etc. can be stored and managed. According to the implementation, the second broker apparatus 23 may manage the mapping information by mapping the port number allocated by the second broker apparatus 23 and the information of the first broker apparatus 13. In the embodiment of FIG. 2, the port number 68213 of the second broker apparatus 23 may be associated with the port number 57321 of the first broker apparatus.

이후에, 제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로 응답 메시지를 전송한다.Thereafter, the second broker device 23 may transmit a response message ACK to the first broker device 13 through the second router 21 and the first router 11 of the first domain 10. 304. To this end, the second broker apparatus 23 similarly recognizes the external network address of the first router 11. In addition, the second broker apparatus 23 may recognize the port number 57321 of the first broker apparatus 13 identified from the alive message. Accordingly, in the embodiment of FIG. 2, the second broker device 23 transmits a response message to the destination address 192.254.1.2:27321.

본 발명의 다양한 실시 예에서, 응답 메시지는 도 4에 도시된 것과 같은 패킷 구조를 가질 수 있다. 다른 실시 예에서, 응답 메시지는 얼라이브 메시지와 상이한 패킷 구조를 가질 수 있다. 다양한 실시 예에서, 응답 메시지는 제2 브로커 장치(23)가 제1 브로커 장치(13)의 얼라이브 메시지를 올바르게 수신하였음을 나타내기 위한 정보 및 제2 브로커 장치(23)의 식별 정보로써, 예를 들어 GUID, IP 주소 및 패킷 번호 등을 포함할 수 있다. In various embodiments of the present disclosure, the response message may have a packet structure as shown in FIG. 4. In another embodiment, the response message may have a different packet structure than the live message. According to various embodiments of the present disclosure, the response message is information indicating that the second broker apparatus 23 correctly received the alive message of the first broker apparatus 13 and identification information of the second broker apparatus 23. For example, it may include a GUID, an IP address, a packet number, and the like.

본 발명의 다양한 실시 예에서, 제2 브로커 장치(23)는 제1 브로커 장치(13)로부터 수신된 얼라이브 메시지의 무결성을 검사하고, 메시지가 올바르게 수신되지 않았다고 판단되는 경우에는 부정 응답 메시지(NACK)를 전송할 수 있다. 이 경우, 제1 브로커 장치(13)와 제2 브로커 장치(23) 간 얼라이브 메시지의 재교환이 이루어질 수 있다. According to various embodiments of the present disclosure, the second broker apparatus 23 checks the integrity of the alive message received from the first broker apparatus 13, and if it is determined that the message is not received correctly, a negative acknowledgment message (NACK). Can be transmitted. In this case, the live message may be reexchanged between the first broker device 13 and the second broker device 23.

제1 브로커 장치(13)는 수신된 응답 메시지로부터 제2 브로커 장치(23)를 식별할 수 있다(305). 제1 브로커 장치(13)는 응답 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제2 브로커 장치(23)를 식별할 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)는 포트 번호 68213을 이용하는 제2 브로커 장치(23)를 식별할 수 있다. The first broker device 13 may identify the second broker device 23 from the received response message (305). The first broker apparatus 13 may identify the second broker apparatus 23 based on information extracted from the response message, for example, a port number. In the embodiment of FIG. 2, the first broker device 13 may identify the second broker device 23 using the port number 68213.

제1 브로커 장치(13)는 식별된 제2 브로커 장치(23)에 관한 정보로써, 제2 브로커 장치(23)의 도메인 정보(라우터 정보를 포함할 수 있다.), GUID, IP 주소 및 패킷 번호 등을 저장하고 관리할 수 있다. 구현하기에 따라, 제1 브로커 장치(13)는 자신이 할당한 포트 번호 및 제2 브로커 장치(23)의 정보를 매핑 정보로써 저장할 수 있다. 도 2의 실시 예에서, 제1 브로커 장치(13)의 포트 번호 57321과 제2 브로커 장치(23)의 포트 번호 68213이 연계될 수 있다.The first broker apparatus 13 is information about the identified second broker apparatus 23, and includes domain information (which may include router information), GUID, IP address, and packet number of the second broker apparatus 23. Etc. can be stored and managed. According to the implementation, the first broker device 13 may store the port number allocated by itself and the information of the second broker device 23 as mapping information. In the embodiment of FIG. 2, the port number 57321 of the first broker device 13 and the port number 68213 of the second broker device 23 may be associated with each other.

상술한 탐색 과정이 완료된 이후에, 제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로 얼라이브 메시지를 전송한다. 얼라이브 메시지의 교환 주기는 네트워크 성능, 네트워크 부하 등을 기초로 결정될 수 있다. After the above-described discovery process is completed, the first broker apparatus 13 and the second broker apparatus 23 may confirm the existence of each other by exchanging an alive message according to a preset period (306, 307). At this time, since the first broker device 13 and the second broker device 23 recognize each other's port number, the Alive message may be directly transmitted to the other party's port number. In the embodiment of FIG. 2, the first broker device 13 sends an alive message to the destination address 129.254.1.4:68213 for the second broker device 23, and the second broker device 23 sends the first broker device. Send an alive message to destination address 129.254.1.2:57321 for (13). The exchange interval of the alive message may be determined based on network performance, network load, and the like.

이하에서는, 제1 브로커 장치(13)와 제2 브로커 장치(23)를 통하여 제1 도메인(10) 및 제2 도메인(20)의 제1 참여자(12) 및 제2 참여자(22)가 참여자 탐색을 수행하는 방법을 구체적으로 설명한다. Hereinafter, the first participant 12 and the second participant 22 of the first domain 10 and the second domain 20 may search for a participant through the first broker device 13 and the second broker device 23. It will be described in detail how to perform.

도 5는 본 발명에 따른 DDS 시스템에서 참여자 탐색 동작을 설명하기 위한 흐름도이다. 5 is a flowchart illustrating a participant search operation in the DDS system according to the present invention.

도 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가 할당된다. 2, the first participant 12 is disposed in the first domain 10, and the second participant 22 is disposed in the second domain 20. The first participant 12 and the second participant 22 are assigned IP addresses and port numbers provided by the domains 10 and 20 to which they belong. At this time, the first participant 12 and the second participant 22 may be assigned a port number of a value preset by the RTPS protocol. 2, the first participant 12 is assigned an IP address of 192.168.0.3 and a port number of 7400, and the second participant 22 is assigned an IP address of 192.168.2.3 and a port number of 7400. have. In addition, the first participant 12 and the second participant 22 are assigned a GUID.

본 발명의 다양한 실시 예에서, 제1 참여자(12)와 제2 참여자(22)는 일반적인 RTPS 프로토콜에 따라 도메인 내의 다른 참여자에 대한 탐색을 수행한다. In various embodiments of the present invention, the first participant 12 and the second participant 22 perform a search for other participants in the domain according to a common RTPS protocol.

먼저, 제1 참여자(12)는 제1 도메인(10) 내에 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(501). 탐색 메시지에는 제1 참여자(12)의 GUID, IP 주소, 포트 번호 등에 대한 정보가 포함될 수 있다. First, the first participant 12 may transmit a discovery message in the first domain 10 in a unicast or multicast manner (501). The discovery message may include information about the GUID, IP address, port number, etc. of the first participant 12.

제1 도메인(10) 내에서 동작하는 제1 브로커 장치(13)는 제1 참여자(12)로부터 전송되는 탐색 메시지를 수신할 수 있다. 제1 브로커 장치(13)는 수신된 탐색 메시지로부터 제1 참여자(12)를 식별할 수 있다(502). 제1 브로커 장치(13)는 탐색 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 브로커 장치(13)를 식별할 수 있다. 제1 브로커 장치(13)는 제1 참여자(12)의 포트 번호에 관한 정보를 저장하고 관리할 수 있다. The first broker device 13 operating in the first domain 10 may receive a discovery message transmitted from the first participant 12. The first broker device 13 may identify 502 the first participant 12 from the received discovery message. The first broker apparatus 13 may identify the first broker apparatus 13 based on information extracted from the discovery message, for example, a port number. The first broker device 13 may store and manage information regarding the port number of the first participant 12.

이후에, 제1 브로커 장치(13)는 제1 라우터(11) 및 제2 도메인(20)의 제2 라우터(21)를 통해 제2 브로커 장치(23)로, 제1 참여자(12)에 대한 탐색 메시지를 전송할 수 있다(503). 브로커 장치 간에 송수신되는 탐색 메시지는 RTPS 프로토콜에서 정의되는 탐색 메시지와 동일한 패킷 구조를 가지거나 또는 별도로 정의되는 패킷 구조를 가질 수 있다. 탐색 메시지는 제1 참여자(12)에 대한 식별 정보로써, 예를 들어 도메인 정보, GUID, IP 주소, 패킷 번호 등이 포함될 수 있다. Subsequently, the first broker device 13 passes through the first router 11 and the second router 21 of the second domain 20 to the second broker device 23 and to the first participant 12. The discovery message may be sent (503). The discovery message transmitted and received between the broker devices may have the same packet structure as the discovery message defined in the RTPS protocol or may have a packet structure defined separately. The discovery message is identification information for the first participant 12 and may include, for example, domain information, GUID, IP address, packet number, and the like.

제2 브로커 장치(23)는 수신된 탐색 메시지로부터 제1 참여자(12)를 식별하고, 제1 참여자(12)를 위한 IP 주소 및 포트 번호를 할당할 수 있다(504). 제2 브로커 장치(23)는 탐색 메시지로부터 추출되는 정보, 예를 들어 포트 번호를 기초로 제1 참여자(12)를 식별할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 포트 번호 7400을 이용하는 제1 참여자(12)를 식별할 수 있다.The second broker device 23 may identify the first participant 12 from the received discovery message and assign an IP address and a port number for the first participant 12 (504). The second broker device 23 may identify the first participant 12 based on information extracted from the discovery message, for example, a port number. In the embodiment of FIG. 2, the second broker device 23 may identify the first participant 12 using the port number 7400.

제2 브로커 장치(23)는 식별된 제1 참여자(12)를 위한 포트 번호를 할당할 수 있다. 도 2의 실시 예에서, 제2 브로커 장치(23)는 제1 참여자(12)를 위한 포트 번호로써 88888을 할당한다. 여기서, 포트 번호는 제2 도메인(20)의 참여자들로부터 전송되는 패킷을 제1 참여자(12)를 위해 수신하기 위한 수신 포트로써 설정될 수 있다. The second broker device 23 may assign a port number for the identified first participant 12. In the embodiment of FIG. 2, the second broker device 23 assigns 88888 as the port number for the first participant 12. Here, the port number may be set as a receiving port for receiving a packet transmitted from the participants of the second domain 20 for the first participant 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 주소를 할당할 수 있다. In one embodiment, the second broker device 23 may further assign an IP address for the identified first participant 12. The first domain 10 and the second domain 20 may have different ranges of IP addresses that can be used as internal IP addresses. Thus, IP addresses within the range of IP addresses used by the first domain 10 may not be correctly identified by brokers and participants present in the second domain 20. Accordingly, the second broker device 23 may allocate an IP address corresponding to the second domain 20 for the first participant 12 existing in the first domain 10. In the embodiment of FIG. 2, the second broker device 23 may allocate an IP address of 192.168.2.5 for the first participant 12.

제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이 연계될 수 있다.The second broker device 23 is information about the identified first participant 12, and may include domain information of the first participant 12 (including information about a broker device of the corresponding domain). You can store and manage the GUID, IP address, and port number. The second broker device 23 may store information about the first participant 12 in association with an IP address and a port number allocated for the first participant 12 as mapping information. In the example of FIG. 2, for the first participant 12, the port number 7400 in the first domain 10, the IP address 192.168.2.5 and the port number 88888 allocated by the second broker device 23 may be associated. have.

일 실시 예에서, 제2 브로커 장치(23)는 탐색 메시지에 응답하여 제1 브로커 장치(13)로 응답 메시지를 전송할 수 있다(505). 응답 메시지는 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 포트 번호 등을 포함할 수 있다. 이 경우, 제1 브로커 장치(13)는 제1 도메인(10) 내에서의 제1 참여자(12)에 관한 정보와 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 포트 번호를 연계하여 저장할 수 있다. According to an embodiment, the second broker device 23 may transmit a response message to the first broker device 13 in response to the discovery message (505). The response message may include a port number, etc. allocated by the second broker device 23 for the first participant 12. In this case, the first broker device 13 may include information about the first participant 12 in the first domain 10 and a port number allocated by the second broker device 23 for the first participant 12. Can be stored in conjunction.

이후에, 제2 브로커 장치(23)는 제2 도메인(20) 내에 제1 참여자(12)에 대한 RTPS 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(506). 탐색 메시지에는 제2 브로커 장치(23)가 제1 참여자(12)를 위하여 할당한 IP 주소, 포트 번호, 제1 참여자(12)의 GUID 등이 포함될 수 있다. Thereafter, the second broker apparatus 23 may transmit 506 the RTPS discovery message for the first participant 12 in the second domain 20 in a unicast or multicast manner. The discovery message may include an IP address, a port number, a GUID of the first participant 12, etc. allocated by the second broker device 23 for the first participant 12.

제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)로부터 전송되는 패킷을 수신할 수 있다. The discovery message transmitted by the second broker device 23 may be received by the second participant 22 operating in the second domain 20. Since the discovery message includes a valid IP address, a port number, etc. in the second domain 20, the second participant 22 may effectively identify the first participant 12 (507). By identifying the first participant 12, the second participant 22 recognizes as if the first participant 12 is a participant in the second domain 20, and transmits a packet for the first participant 12. Or may receive a packet transmitted from the first participant 12.

유사하게, 제2 참여자(22)도 제2 도메인(20) 내에 탐색 메시지를 유니캐스트 또는 멀티캐스트 방식으로 전송할 수 있다(508). 탐색 메시지를 수신한 제2 브로커 장치(23)는 제2 참여자(22)를 식별하고 제2 참여자(22)에 대한 포트 번호를 저장한 뒤(509), 제1 브로커 장치(13)로 제2 참여자(22)를 위한 탐색 메시지를 전송할 수 있다(510). Similarly, the second participant 22 may also send a discovery message in the second domain 20 in a unicast or multicast fashion (508). Receiving the discovery message, the second broker device 23 identifies the second participant 22 and stores a port number for the second participant 22 (509), and then sends the second broker device 13 to the first broker device 13. The discovery message for the participant 22 may be sent (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).The first broker apparatus 13 may allocate a corresponding IP address and a port number of the first domain 10 for the second participant 22 (511). In the embodiment of FIG. 2, the first broker device 13 assigns port number 99999 for the second participant 22. The first broker apparatus 13 may transmit a response message to the second broker apparatus 23 (512), and may transmit a discovery message for the second participant 22 in the first domain 10 (513). . The first participant 12 in the first domain 10 may receive a discovery message sent by the first broker device 13 and may effectively identify the second participant 22 (514).

제2 참여자(22)를 위한 참여자 탐색 방법의 구체적인 내용은 제1 참여자(12)를 위한 탐색 방법과 동일하므로 상세한 설명은 생략한다. Since the detailed content of the method for searching for the participant for the second participant 22 is the same as the search method for the first participant 12, a detailed description thereof is omitted.

이하에서, 상기한 참여자 탐색 이후에, 상이한 도메인에 위치한 제1 참여자(12)와 제2 참여자(22)가 실질적으로 DDS 통신을 수행하는 방법을 구체적으로 설명한다.Hereinafter, after searching for the participant described above, a method in which the first participant 12 and the second participant 22 located in different domains substantially perform DDS communication will be described in detail.

도 6은 본 발명에 따른 DDS 시스템에서 DDS 통신을 수행하는 방법을 설명하기 위한 흐름도이다. 이하에서 설명하는 DDS 통신 방법은 도 5에 도시된 참여자 탐색 이후에 수행되는 종단점 탐색을 위한 메시지 패킷 또는 탐색이 모두 완료된 이후에 참여자들 간 송수신되는 데이터 패킷에 대한 DDS 통신에 적용될 수 있다. 6 is a flowchart illustrating a method of performing DDS communication in a DDS system according to the present invention. The DDS communication method described below may be applied to DDS communication for a message packet for endpoint discovery performed after the participant discovery illustrated in FIG. 5 or a data packet transmitted and received between the participants after the search is completed.

도 6을 참조하면, 제1 참여자(12)는 제1 도메인(10) 내에 패킷을 전송한다(601). 패킷은 유니캐스트 또는 멀티캐스트 방식으로 전송될 수 있으며, 데이터 패킷의 경우 해당 데이터 패킷의 토픽에 대한 구독자를 위해 전송될 수 있다. 일 실시 예에서, 패킷은 제2 도메인(20) 내의 제2 참여자(22)를 위한 패킷일 수 있다. 즉, 도 2의 실시 예에서 패킷은 목적지 주소의 포트 번호가 99999로 설정된 패킷이다. Referring to FIG. 6, the first participant 12 transmits a packet in the first domain 10 (601). The packet may be transmitted in a unicast or multicast manner, and in the case of a data packet, may be sent for a subscriber to a topic of the data packet. In one embodiment, the packet may be a packet for the second participant 22 in the second domain 20. That is, in the embodiment of FIG. 2, the packet is a packet in which the port number of the destination address is set to 99999.

제1 도메인(10) 내에서 동작하는 제1 브로커 장치(13)는 제1 참여자(12)로부터 전송되는 패킷을 수신할 수 있다. 제1 브로커 장치(13)는 패킷의 목적지를 식별할 수 있다(602). 구체적으로, 제1 브로커 장치(13)는 패킷이 수신된 포트 번호를 기초로 패킷이 다른 도메인으로 전송되어야 할 패킷인지 여부를 판단할 수 있다. 패킷이 수신되는 포트 번호는, 해당 패킷의 목적지 주소에 대응할 수 있다. The first broker device 13 operating in the first domain 10 may receive a packet transmitted from the first participant 12. The first broker apparatus 13 may identify the destination of the packet (602). In detail, the first broker apparatus 13 may determine whether the packet is a packet to be transmitted to another domain based on the port number where the packet is received. The port number at which the packet is received may correspond to the destination address of the packet.

제1 브로커 장치(13)는 패킷이 수신된 포트 번호를 기저장된 매핑 정보에서 검색하고, 해당 포트 번호가 다른 도메인의 정보와 연계되어 있는지를 판단할 수 있다. 해당 포트 번호가 다른 도메인의 정보와 연계되어 있는 경우, 제1 브로커 장치(13)는 매핑 정보로부터 패킷이 전송되어야 할 도메인에 관한 정보, 패킷을 전송할 브로커 장치에 관한 정보를 식별할 수 있다. The first broker apparatus 13 may search the pre-stored mapping information for the port number where the packet is received and determine whether the corresponding port number is associated with information of another domain. When the corresponding port number is associated with information of another domain, the first broker device 13 may identify information on the domain to which the packet is to be transmitted and information about the broker device to which the packet is to be transmitted, from the mapping information.

도 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)에 전송되어야 할 패킷인 것만을 식별하여도 좋다.In the embodiment of FIG. 2, the first broker apparatus 13 is a packet to be transmitted to the second domain 20, that is, to the second broker apparatus 23, for the packet received at the port number 99999. Can be identified. In an embodiment, when the mapping information includes the participant information of the second domain 20 associated with the port number 99999, the first broker apparatus 13 may determine that the packet is the port number 7400 of the second domain 20. It can be further identified that the packet to be transmitted to the second participant 22 using the. The identification of the port number and the participant in the second domain 20 may be performed by the second broker device 23 operating in the second domain 20. In this case, the first broker apparatus 13 may only identify that the packet is a packet to be transmitted to the second domain 20.

제1 브로커 장치(13)는 식별 결과를 기초로, 패킷을 제2 도메인(20)의 제2 브로커 장치(23)에 전송할 수 있다(603). The first broker apparatus 13 may transmit a packet to the second broker apparatus 23 of the second domain 20 based on the identification result (603).

일 실시 예에서, 제1 브로커 장치(13)는 패킷의 목적지 주소를 변경하지 않고 패킷을 그대로 전달할 수 있다. 이 경우, 도 2의 실시 예에서 패킷의 목적지 포트 번호는 99999로 설정된다. 다른 실시 예에서, 제1 브로커 장치(13)는 패킷의 목적지 주소를 식별된 제2 도메인(20)에서의 포트 번호로 재설정하여 전달할 수 있다. 이 경우, 도 2의 실시 예에서 패킷의 목적지 포트 번호는 7400으로 설정된다.In one embodiment, the first broker device 13 may deliver the packet as it is without changing the destination address of the packet. In this case, in the embodiment of FIG. 2, the destination port number of the packet is set to 99999. In another embodiment, the first broker apparatus 13 may forward the packet by resetting the destination address of the packet to the port number in the identified second domain 20. In this case, in the embodiment of FIG. 2, the destination port number of the packet is set to 7400.

제1 브로커 장치(13)로부터 제2 브로커 장치(23)로 전송된 패킷은, 전술한 바와 같이 제1 브로커 장치(13)를 위하여 제2 브로커 장치(23)가 할당한 포트 번호, 즉 도 2의 실시 예에서 68213을 통해 제2 브로커 장치(23)에서 수신된다. The packet transmitted from the first broker apparatus 13 to the second broker apparatus 23 is a port number allocated by the second broker apparatus 23 for the first broker apparatus 13 as described above, that is, FIG. 2. In the embodiment of the above is received at the second broker device 23 through 68213.

제2 브로커 장치(23)는 패킷의 목적지 주소를 기초로, 패킷이 전송되어야 할 제2 도메인(20) 내의 참여자를 식별할 수 있다(604). The second broker apparatus 23 may identify the participant in the second domain 20 to which the packet should be sent, based on the destination address of the packet (604).

제2 브로커 장치(23)는 제1 브로커 장치(13)를 위하여 할당한 포트 번호를 통해 패킷이 수신됨에 따라 해당 패킷이 제1 도메인(10)으로부터 수신된 것임을 식별할 수 있다. 제2 브로커 장치(23)는 해당 패킷이 제2 도메인(20) 내의 어느 참여자에게 전달되어야 할 것인지를 판단할 수 있다.As the packet is received through the port number allocated for the first broker device 13, the second broker device 23 may identify that the packet is received from the first domain 10. The second broker device 23 may determine to which participant in the second domain 20 the packet should be delivered.

일 실시 예에서, 수신된 패킷이 제1 도메인(10)에서의 포트 번호를 포함하는 경우, 제2 브로커 장치(23)는 기저장된 매핑 정보에서 제1 포트 번호를 검색할 수 있다. 포트 정보가 기저장된 매핑 정보에서 검색되면, 제2 브로커 장치(23)는 해당 포트 번호와 연계된 제2 도메인(20)의 포트 번호를 판단할 수 있다. 도 2의 실시 예에서 제2 브로커 장치(23)는 목적지 주소의 포트 번호가 99999로 설정된 패킷에 대하여, 해당 패킷이 제2 도메인(20)의 포트 번호 7400을 이용하는 제2 참여자(22)에게 전송되어야 할 패킷임을 식별할 수 있다. According to an embodiment, when the received packet includes a port number in the first domain 10, the second broker device 23 may search for the first port number in pre-stored mapping information. When the port information is found in the pre-stored mapping information, the second broker device 23 may determine the port number of the second domain 20 associated with the corresponding port number. In the embodiment of FIG. 2, the second broker apparatus 23 transmits the packet to the second participant 22 using the port number 7400 of the second domain 20 with respect to the packet in which the port number of the destination address is set to 99999. It can be identified that the packet should be.

다른 실시 예에서, 수신된 패킷이 제2 도메인(20)에서의 포트 번호를 포함하는 경우, 제2 브로커 장치(23)는 해당 패킷이 전송되어야 할 참여자를 식별할 수 있다. 도 2의 실시 예에서 제2 브로커 장치(23)는 목적지 주소의 포트 번호가 7400으로 설정된 패킷에 대하여, 해당 패킷이 제2 참여자(22)에게 전송되어야 할 패킷임을 식별할 수 있다. In another embodiment, when the received packet includes a port number in the second domain 20, the second broker device 23 may identify a participant to which the packet is to be transmitted. In the embodiment of FIG. 2, the second broker apparatus 23 may identify that the packet is to be transmitted to the second participant 22 with respect to the packet in which the port number of the destination address is set to 7400.

제2 브로커 장치(23)는 식별 결과를 기초로, 패킷을 도메인 내의 참여자에게 전송할 수 있다(605). 도 2의 실시 예에서, 제2 브로커 장치(23)는 제2 참여자(22)에게 패킷을 전달할 수 있다. The second broker apparatus 23 may transmit a packet to the participants in the domain based on the identification result (605). In the embodiment of FIG. 2, the second broker device 23 may deliver a packet to the second participant 22.

상기와 같이 본 발명에서는 각각의 도메인(10, 20)에 마련되며, 라우터(11, 12)를 통하여 통신 가능하게 설정되는 브로커 장치(13, 23)에 의해, 상이한 도메인에 위치한 참여자들 간의 DDS 통신이 가능하게 한다. As described above, in the present invention, the DDS communication between the participants located in different domains is provided by the broker devices 13 and 23 provided in the respective domains 10 and 20 and configured to communicate via the routers 11 and 12. Makes this possible.

도 7은 본 발명에 따른 DDS를 위한 장치의 구조를 나타낸 블록도이다. DDS를 위한 장치(700)는 상술한 브로커 장치일 수 있다. 7 is a block diagram showing the structure of an apparatus for DDS according to the present invention. The apparatus 700 for the DDS may be the above-described broker apparatus.

도 7을 참조하면, 장치(700)는 통신부(710), 제어부(720) 및 저장부(730)를 포함하여 구성될 수 있다.Referring to FIG. 7, the apparatus 700 may include a communication unit 710, a controller 720, and a storage unit 730.

통신부(710)는 유선 또는 무선 통신 기술을 이용하여 외부와 통신을 수행한다. 구체적으로, 통신부(710)는 장치(700)와 동일한 도메인 내에 존재하는 적어도 하나의 참여자, 또는 상이한 도메인 내에 존재하는 다른 장치와 통신을 수행할 수 있다. 본 발명의 다양한 실시 예에서, 통신부(710)는 다른 도메인 내에 존재하는 다른 장치와 얼라이브 메시지 및 그에 대한 응답 메시지를 교환할 수 있다. 또한, 통신부(710)는 도메인 내의 참여자로부터 수신된 패킷을 다른 도메인의 장치로 전달하거나, 다른 도메인의 장치로부터 수신된 패킷을 도메인 내의 참여자에게 전달할 수 있다. 다른 도메인과의 통신은 라우터를 통하여 중개될 수 있다.The communication unit 710 communicates with the outside using a wired or wireless communication technology. In detail, the communication unit 710 may communicate with at least one participant existing in the same domain as the device 700 or another device existing in a different domain. According to various embodiments of the present disclosure, the communication unit 710 may exchange an alive message and a response message with another device existing in another domain. In addition, the communication unit 710 may deliver a packet received from a participant in a domain to a device in another domain, or may deliver a packet received from a device in another domain to a participant in a domain. Communication with other domains can be mediated through routers.

제어부(720)는 본 발명에 따른 DDS 통신 방법을 수행하기 위해 장치(700)의 각 구성 요소들을 제어한다. 구체적으로, 제어부(720)는 다른 도메인 내에 존재하는 다른 장치를 위한 포트를 할당하고, 할당된 포트를 통해 다른 장치로부터 메시지 및/또는 패킷을 수신할 수 있다. 또한, 제어부(720)는 자신의 GUID, IP 주소, 포트 번호 등의 정보를 다른 도메인 내에 존재하는 다른 장치에게 전송함으로써, 다른 장치가 자신을 위한 포트를 할당할 수 있도록 한다. The controller 720 controls each component of the apparatus 700 to perform the DDS communication method according to the present invention. In detail, the controller 720 may allocate a port for another device existing in another domain, and receive a message and / or a packet from another device through the assigned port. In addition, the controller 720 transmits information such as its GUID, IP address, port number, etc. to another device existing in another domain, so that the other device can allocate a port for itself.

또한, 제어부(720)는 자신이 속한 도메인 내에 존재하는 적어도 하나의 참여자에 대한 식별 정보, 예를 들어 포트 번호를 저장하고 관리한다. 제어부(720)는 자신이 속한 도메인 내에 존재하는 적어도 하나의 참여자에 대한 식별 정보를 다른 도메인의 장치로 전달하여, 다른 도메인의 장치가 참여자를 위한 포트를 할당할 수 있도록 한다. 제어부(720)는 다른 도메인의 장치로부터 수신되는 다른 도메인 내의 적어도 하나의 참여자를 위하여 식별 정보, 예를 들어 포트를 할당하고 저장할 수 있다. In addition, the controller 720 stores and manages identification information, for example, a port number, of at least one participant existing in a domain to which the controller 720 belongs. The controller 720 transmits identification information of at least one participant existing in the domain to which the participant belongs to the device of the other domain, so that the device of the other domain can allocate a port for the participant. The controller 720 may allocate and store identification information, for example, a port, for at least one participant in another domain received from a device in another domain.

제어부(720)는 다른 도메인 내의 참여자를 위하여 할당된 포트로 패킷이 수신되면, 해당 참여자가 속한 도메인, 즉 해당 참여자가 속한 도메인의 장치를 식별하고 식별된 장치로 패킷을 전달하여, 식별된 장치를 통해 다른 도메인 내의 참여자에게 패킷이 전송될 수 있도록 한다. 또한, 제어부(720)는 다른 도메인의 장치로부터 패킷이 수신되는 경우, 패킷의 목적지 포트 번호를 기초로 해당 패킷이 전달되어야 할 내부 도메인의 참여자를 식별하고 식별된 참여자에게 패킷을 전달할 수 있다. When the packet is received at a port allocated for a participant in another domain, the controller 720 identifies a device of a domain to which the participant belongs, that is, a domain to which the participant belongs, and delivers the packet to the identified device, thereby identifying the identified device. This allows packets to be sent to participants in other domains. In addition, when a packet is received from a device in another domain, the controller 720 may identify a participant of an internal domain to which the packet is to be delivered, based on a destination port number of the packet, and deliver the packet to the identified participant.

제어부(720)의 보다 상세한 제어 동작은 도 2 내지 도 6을 참조하여 설명한 바와 같다.More detailed control operations of the controller 720 are as described with reference to FIGS. 2 to 6.

저장부(730)는 장치(700)의 동작을 위하여 필요한 정보, 데이터, 운영 체제, 프로그램, 소프트웨어, 애플리케이션 등을 저장할 수 있다. 본 발명의 다양한 실시 예에서, 저장부(730)는 제어부(720)의 제어에 따라 도메인 내의 적어도 하나의 참여자를 위한 정보로써 포트 번호를 저장하고 관리할 수 있다. 또한, 저장부(730)는 다른 도메인 내의 브로커 및 적어도 하나의 참여자에 관한 정보로써 포트 번호와 제어부(720)가 내부 도메인을 위해 별도로 할당한 포트 번호, IP 주소 등을 연계항 매핑 정보로써 저장할 수 있다. The storage unit 730 may store information, data, an operating system, a program, software, an application, and the like necessary for the operation of the device 700. According to various embodiments of the present disclosure, the storage unit 730 may store and manage the port number as information for at least one participant in the domain under the control of the controller 720. In addition, the storage unit 730 may store the port number and the port number, IP address, and the like separately allocated for the internal domain by the controller 720 as information about brokers and at least one participant in another domain, as linkage mapping information. have.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art will appreciate that various modifications and variations can be made without departing from the essential features of the present invention. In addition, the embodiments disclosed in the specification and the drawings merely present specific examples to easily explain and easily understand the contents of the present invention, and are not intended to limit the scope of the present invention. Therefore, the scope of the present invention should be construed that all changes or modifications derived based on the technical spirit of the present invention are included in the scope of the present invention in addition to the embodiments disclosed herein.

700: 장치
710: 통신부
720: 제어부
730: 저장부
700: device
710: communication unit
720: control unit
730: storage unit

Claims (10)

데이터 분산 서비스를 위한 장치로서,
상기 장치가 속한 제1 도메인과 상이한 제2 도메인의 제2 장치와 통신하는 통신부; 및
상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하고, 상기 내부 식별자를 이용하여 상기 제1 도메인을 구성하는 적어도 하나의 제1 참여자에게 상기 적어도 하나의 제2 참여자를 위한 제2 탐색 메시지를 전송하며, 상기 적어도 하나의 제1 참여자에 대한 제1 탐색 메시지를 상기 제2 장치로 전송하고, 상기 내부 식별자를 이용하여 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하도록 상기 통신부를 제어하는 제어부를 포함하되,
상기 제1 탐색 메시지는,
상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 장치.
An apparatus for data distribution service,
A communication unit communicating with a second device of a second domain different from the first domain to which the device belongs; And
Allocating an internal identifier of the first domain for at least one second participant constituting the second domain and using the internal identifier to the at least one first participant constituting the first domain Send a second discovery message for a second participant, send a first discovery message for the at least one first participant to the second device, and use the internal identifier to provide the at least one first participant and the A control unit for controlling the communication unit to communicate with the second device to mediate packets transmitted and received between at least one second participant,
The first search message,
And wherein the second device is used to assign an internal identifier of the second domain for the at least one first participant.
제1항에 있어서, 상기 내부 식별자는,
상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
The method of claim 1, wherein the internal identifier,
And at least one of an IP address and a port number corresponding to the first domain.
제1항에 있어서, 상기 제어부는,
상기 제2 장치를 위한 내부 식별자를 할당하고, 상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하되,
상기 얼라이브 메시지는,
상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 하는 장치.
The method of claim 1, wherein the control unit,
Allocate an internal identifier for the second device, and send an alive message containing the identification information of the device to the second device,
The alive message,
And wherein the second device is sent to assign an internal identifier of the second domain for the device.
제3항에 있어서,
정보를 저장하는 저장부를 더 포함하고,
상기 제어부는,
상기 제2 장치로부터 상기 얼라이브 메시지에 응답하여 상기 제2 장치의 식별 정보를 포함하는 응답 메시지가 수신되면, 상기 제2 장치의 식별 정보를 상기 할당된 내부 식별자와 연계하여 매핑 정보로써 상기 저장부에 저장하는 것을 특징으로 하는 장치.
The method of claim 3,
Further comprising a storage for storing information,
The control unit,
When the response message including the identification information of the second device is received in response to the alive message from the second device, the identification information of the second device is mapped to the storage unit as mapping information in association with the assigned internal identifier. Device for storing.
제1항에 있어서, 상기 제어부는,
상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하되,
상기 제2 장치는,
상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 하는 장치.
The method of claim 1, wherein the control unit,
When a packet for an internal identifier assigned for any second participant is received from the at least one first participant, the packet is transmitted to the second device in correspondence to the internal identifier of the packet,
The second device,
And deliver the packet to a second participant identified based on the internal identifier of the packet.
제1 도메인을 구성하는 장치의 데이터 분산 서비스를 위한 방법으로서,
상기 제1 도메인과 상이한 제2 도메인의 제2 장치로 상기 제1 도메인을 구성하는 적어도 하나의 제1참여자에 대한 제1 탐색 메시지를 전송하는 단계;
상기 제2 장치로부터 상기 제2 도메인을 구성하는 적어도 하나의 제2 참여자에 대한 탐색 메시지가 수신되면, 상기 적어도 하나의 제2 참여자를 위한 상기 제1 도메인의 내부 식별자를 할당하는 단계;
상기 내부 식별자를 이용하여 상기 적어도 하나의 제1 참여자에게 상기 적어도 하나의 제2 참여자를 위한 제2 탐색 메시지를 전송하는 단계; 및
상기 내부 식별자를 이용하여 상기 적어도 하나의 제1 참여자 및 상기 적어도 하나의 제2 참여자 사이에서 송수신되는 패킷을 중개하기 위하여 상기 제2 장치와 통신하는 단계를 포함하되,
상기 제2 장치로 전송되는 상기 제1 탐색 메시지는,
상기 제2 장치가 상기 적어도 하나의 제1 참여자를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 이용되는 것을 특징으로 하는 방법.
A method for data distribution service of a device constituting a first domain, the method comprising:
Transmitting a first discovery message for at least one first participant constituting the first domain to a second device of a second domain different from the first domain;
Allocating an internal identifier of the first domain for the at least one second participant when the discovery message for the at least one second participant constituting the second domain is received from the second device;
Sending a second discovery message for the at least one second participant to the at least one first participant using the internal identifier; And
Communicating with the second device to mediate packets transmitted and received between the at least one first participant and the at least one second participant using the internal identifier,
The first discovery message transmitted to the second device,
And the second device is used to assign an internal identifier of the second domain for the at least one first participant.
제6항에 있어서, 상기 내부 식별자는,
상기 제1 도메인에 대응하는 IP 주소 및 포트 번호 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
The method of claim 6, wherein the internal identifier,
And at least one of an IP address and a port number corresponding to the first domain.
제6항에 있어서, 상기 제1 탐색 메시지를 전송하는 단계 이전에,
상기 제2 장치를 위한 내부 식별자를 할당하는 단계; 및
상기 제2 장치로 상기 장치의 식별 정보를 포함하는 얼라이브 메시지를 전송하는 단계를 더 포함하되,
상기 얼라이브 메시지는,
상기 제2 장치가 상기 장치를 위한 상기 제2 도메인의 내부 식별자를 할당하기 위해 전송되는 것을 특징으로 하는 방법.
The method of claim 6, wherein before transmitting the first discovery message,
Assigning an internal identifier for the second device; And
The method may further include transmitting an alive message including the identification information of the device to the second device.
The alive message,
And wherein the second device is sent to assign an internal identifier of the second domain for the device.
제6항에 있어서, 상기 통신하는 단계는,
상기 적어도 하나의 제1 참여자로부터 임의의 제2 참여자를 위해 할당된 내부 식별자에 대한 패킷이 수신되면, 상기 패킷의 내부 식별자에 대응하여 상기 제2 장치로 상기 패킷을 전송하는 단계를 포함하되,
상기 제2 장치는,
상기 패킷의 내부 식별자를 기초로 식별되는 제2 참여자에게 상기 패킷을 전달하는 것을 특징으로 하는 방법.
The method of claim 6, wherein the communicating step,
If a packet for an internal identifier assigned for any second participant is received from the at least one first participant, transmitting the packet to the second device corresponding to the internal identifier of the packet,
The second device,
Delivering the packet to a second participant identified based on the internal identifier of the packet.
제1항 내지 제5항 중 어느 한 항에 따른 장치를 포함하는 데이터 분산 서비스 시스템. A data distribution service system comprising the apparatus according to any one of claims 1 to 5.
KR1020170176941A 2017-12-21 2017-12-21 Apparatus and method for data distribution service, data distribution service system KR102025375B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176941A KR102025375B1 (en) 2017-12-21 2017-12-21 Apparatus and method for data distribution service, data distribution service system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176941A KR102025375B1 (en) 2017-12-21 2017-12-21 Apparatus and method for data distribution service, data distribution service system

Publications (2)

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

Family

ID=67255663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176941A KR102025375B1 (en) 2017-12-21 2017-12-21 Apparatus and method for data distribution service, data distribution service system

Country Status (1)

Country Link
KR (1) KR102025375B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030780B1 (en) * 2019-08-07 2019-10-10 한화시스템(주) Data distribution service system and its discovery method
KR102439923B1 (en) * 2020-11-17 2022-09-06 (주)젠토 Method for data distribution service using virtual device, data distribution service system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101705797B1 (en) * 2016-01-14 2017-02-10 충남대학교산학협력단 System and method for endpoint discovery based on data distribution service

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150009715A (en) * 2013-07-17 2015-01-27 한국전자통신연구원 Method and apparatus for deciding participant discovery message period in DDS middleware communication
KR102152116B1 (en) * 2013-12-26 2020-09-07 한국전자통신연구원 Virtual object generating apparatus and method for data distribution service(dds) communication in multiple network domains

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101705797B1 (en) * 2016-01-14 2017-02-10 충남대학교산학협력단 System and method for endpoint discovery based on data distribution service

Also Published As

Publication number Publication date
KR20190075391A (en) 2019-07-01

Similar Documents

Publication Publication Date Title
US20220070095A1 (en) Data transmission method and apparatus, network adapter, and storage medium
US8024469B1 (en) System and method for connecting network sockets between applications
US8650326B2 (en) Smart client routing
US8386614B2 (en) Network connection manager
US20100008260A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
CN105553977A (en) Request message processing and transmitting method and device
CN103781055A (en) Data downloading method and associated device
KR20120071576A (en) Method, device and system for real-time publish subscribe discovery based on distributed hash table
US9072078B2 (en) Method and mobile communication system capable of establishing peer-to-peer transmission
US20150088995A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
Nordström et al. Haggle: Opportunistic mobile content sharing using search
CN107580079A (en) A kind of message transmitting method and device
KR101157039B1 (en) Dds bridge communication system and method
WO2021056738A1 (en) Distributed system nat traversal method, apparatus, and device, and storage medium
WO2022042235A1 (en) Data packet sending method and apparatus, data packet processing method and apparatus, device, and data packet
KR102025375B1 (en) Apparatus and method for data distribution service, data distribution service system
US8650313B2 (en) Endpoint discriminator in network transport protocol startup packets
CN110784489B (en) Secure communication system and method thereof
US7889705B2 (en) Mobile terminal and method for notifying access router of IP address in wireless network
US20140201262A1 (en) User device, communication server and control method thereof
US10333892B2 (en) Network communication system and network-traversal method
KR102137118B1 (en) Method and apparatus for data distribution service, data distribution service system
KR102439923B1 (en) Method for data distribution service using virtual device, data distribution service system
US10826952B2 (en) Conference access method and terminal for performing the same
JP2010146246A (en) Framework computer program for multi-agent system, network system and inter-agent communication method

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