KR20220027714A - A dds routing service system for providing processing a data priority control based on topic - Google Patents

A dds routing service system for providing processing a data priority control based on topic Download PDF

Info

Publication number
KR20220027714A
KR20220027714A KR1020200147228A KR20200147228A KR20220027714A KR 20220027714 A KR20220027714 A KR 20220027714A KR 1020200147228 A KR1020200147228 A KR 1020200147228A KR 20200147228 A KR20200147228 A KR 20200147228A KR 20220027714 A KR20220027714 A KR 20220027714A
Authority
KR
South Korea
Prior art keywords
dds
priority
data
message
routing service
Prior art date
Application number
KR1020200147228A
Other languages
Korean (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 (주)구름네트웍스
Publication of KR20220027714A publication Critical patent/KR20220027714A/en

Links

Images

Classifications

    • H04L67/2828
    • 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/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In accordance with an embodiment of the present invention, a data distribution service (DDS) routing service system includes a first LAN network including a first user device, a DDS middleware device and a DDS routing service device connected through a WAN network; and a second LAN network in a remote place including the same components as the first LAN network. The DDS routing service is set to: perform a communication processing function of routing DDS traffic data of the middleware device connected through the first local network to the middleware device connected to the second local network located in the remote place different from the first local network, through a broadband area; perform data management for data efficiency management processing using topic-based priority data control in response to the routed DDS traffic data, while providing a function of designating priorities by DDS topic in accordance with priority setting information; perform a process of controlling priorities of packet data in accordance with the determined priorities; determine and deliver the priority setting information by acquiring priority setting information designated by a user from the DDS routing service device; process priority queue management based on the determined priorities; and preferentially transmit packets corresponding to a priority queue. Therefore, the present invention is capable of minimizing latency and increasing routing efficiency.

Description

토픽 기반 우선순위 데이터 제어를 처리하는 DDS 라우팅 서비스 시스템{A DDS ROUTING SERVICE SYSTEM FOR PROVIDING PROCESSING A DATA PRIORITY CONTROL BASED ON TOPIC}A DDS ROUTING SERVICE SYSTEM FOR PROVIDING PROCESSING A DATA PRIORITY CONTROL BASED ON TOPIC

본 발명은 데이터 분산 서비스의 라우팅 서비스 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 토픽 기반 우선순위 데이터 제어를 처리하는 DDS 라우팅 서비스 시스템에 관한 것이다.The present invention relates to a routing service system for a data distribution service. More specifically, the present invention relates to a DDS routing service system that handles topic-based priority data control.

DDS(Data Distribution Service)는 OMG(Object Management Group)표준 통신 미들웨어를 정의하며, 데이터 중심의 발간-구독(Publish-Subscribe) 통신 방식을 어플리케이션에 제공하는 통신 미들웨어를 개시하고 있다.DDS (Data Distribution Service) defines OMG (Object Management Group) standard communication middleware, and discloses communication middleware that provides data-oriented publish-subscribe communication method to applications.

특히, DDS 미들웨어는 디바이스의 자유로운 참여/탈퇴가 가능한 환경에서 발간/구독(Publish/Subscribe) 통신기법을 이용하여 효율적인 데이터 분배를 제공한다.In particular, the DDS middleware provides efficient data distribution using the Publish/Subscribe communication technique in an environment where devices can freely participate/withdraw.

이러한 DDS의 특징은 다수의 디바이스들이 동적으로 연동되어 하나의 네트워크 도메인을 형성하고 데이터를 교환하는 경우가 빈번한 유비쿼터스 환경에 적합하다는 것이다. DDS는 발간/구독 기능, QoS 제어 기능, DDS 참여 노드 의 주소를 알아내는 디스커버리 기능 등 다양한 기능이 포함되며, 각 미들웨어는 이러한 처리를 위한 프로세서 및 메모리 등의 컴퓨팅 자원을 구비하고 있다.A characteristic of this DDS is that it is suitable for a ubiquitous environment in which a plurality of devices are dynamically linked to form a single network domain and exchange data frequently. DDS includes various functions such as publish/subscribe function, QoS control function, discovery function to find out the address of DDS participating node, and each middleware is equipped with computing resources such as processor and memory for such processing.

다만, 이러한 DDS 표준을 지원하는 미들웨어 디바이스들은 기본적으로 LAN(Local Area Network) 접속을 기반으로 구현되어 있어, 이더넷 프로토콜 기반으로 통신하며 외부 네트워크에서는 접속이 제한되는 문제점이 있다.However, the middleware devices supporting the DDS standard are basically implemented based on a LAN (Local Area Network) connection, and thus communicate based on the Ethernet protocol, and there is a problem in that access is limited in an external network.

따라서, 현재의 DDS 미들웨어 시스템을 WAN(Wide Area Network)을 통해 외부 인터넷망 등을 통해서도 접속할 수 있도록 구현하기 위해서는, 기존 DDS 네트워크 인프라 및 동작 방식을 WAN을 지원하도록 모두 변경하고, 새로운 DDS 장비 및 네트워크 인프라를 구축하여야 하는 문제점이 있다. 이는 과도한 비용을 소요하게 하며, 기존의 DDS 미들웨어 시스템을 활용할 수 없어 비효율적이며, 따라서 산업현장에 적용되기 어려운 문제점이 있다.Therefore, in order to implement the current DDS middleware system so that it can be accessed through an external Internet network through WAN (Wide Area Network), all existing DDS network infrastructure and operation methods are changed to support WAN, and new DDS equipment and network There is a problem in having to build an infrastructure. This causes excessive cost, and it is inefficient because the existing DDS middleware system cannot be used, and thus it is difficult to apply to industrial sites.

또한, DDS 미들웨어 시스템의 자체적인 비효율성도 개선될 필요성이 있다. 컴퓨팅 자원은 제한적이기 때문에 미들웨어 시스템 및 라우팅 서비스를 효율적으로 운용하려면 RTPS 및 OMG 표준에 의해 정의되는 DDS 미들웨어의 처리량 저하, 패킷 사용 효율 저하, 스레드 간 통신지연, 대역폭 관리 등에 대한 비효율적인 측면이 개선되어야 한다.In addition, there is a need to improve the inefficiency of the DDS middleware system itself. Since computing resources are limited, inefficient aspects such as throughput degradation, packet usage efficiency degradation, communication delay between threads, bandwidth management, etc. of DDS middleware defined by RTPS and OMG standards should be improved to efficiently operate the middleware system and routing service. do.

본 발명은 상기한 바와 같은 문제점을 해결하고자 안출된 것으로, DDS 지원 미들웨어 디바이스를 포함하는 기존 LAN 기반의 DDS 시스템 트래픽을, 통상의 인터넷망과 같은 WAN 기반의 네트워크를 통해 라우팅될 수 있도록 처리하여, 별도의 인프라 변경 없이도 기존의 DDS 시스템이 WAN을 통해 연결된 다른 디바이스와 DDS 통신을 할 수 있게 하는 DDS 라우팅 서비스 시스템을 제공하는 데 그 목적이 있다.The present invention was devised to solve the above problems, and by processing the existing LAN-based DDS system traffic including the DDS support middleware device to be routed through a WAN-based network such as a normal Internet network, It is an object of the present invention to provide a DDS routing service system that enables an existing DDS system to perform DDS communication with other devices connected through a WAN without a separate infrastructure change.

또한, 본 발명은 DDS 라우팅 서비스를 제공함에 있어서, 토픽 기반 우선순위 데이터 제어 처리를 제공하여, 네트워크 부하 저감, 지연 최소화 및 라우팅 효율을 높일 수 있는 DDS 라우팅 서비스 시스템을 제공하는 데 그 목적이 있다.Another object of the present invention is to provide a DDS routing service system capable of reducing network load, minimizing delay, and increasing routing efficiency by providing topic-based priority data control processing in providing a DDS routing service.

그리고, 본 발명은 DDS 시스템의 비효율성을 개선하기 위해, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 라우팅 서비스 시스템을 제공하는 데 그 목적이 있다.In addition, in order to improve the inefficiency of the DDS system, the present invention overcomes a decrease in throughput and a decrease in real-time communication due to a message size limitation, and prevents traffic loss and loss due to traffic flow control, thereby providing low latency. An object of the present invention is to provide a DDS routing service system that implements time and effectively enables real-time processing.

상기한 바와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 시스템은, WAN 네트워크를 통해 연결되는 제1 사용자 장치, DDS 미들웨어 디바이스 및 DDS 라우팅 서비스 장치를 포함하는 제1 LAN 네트워크; 및 제1 LAN 네트워크와 동일한 구성을 포함하는 원격지의 제2 LAN 네트워크를 포함하는 DDS(Data Distribution Service) 라우팅 서비스 시스템에 있어서, 상기 DDS 라우팅 서비스는, 제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 통신 처리 기능을 수행하고, 상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 토픽 기반 우선순위 데이터 제어를 이용한 데이터 효율 관리 처리를 수행하는 데이터 관리를 수행하되, 우선 순위 설정 정보에 따라 DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 패킷 데이터의 우선 순위를 제어하는 프로세스를 수행하고, DDS 라우팅 서비스 장치로부터 사용자가 지정한 우선 순위 설정 정보를 획득하여 우선 순위 설정 정보를 결정 및 전달하며, 결정된 우선 순위에 기반한 우선 순위 큐 관리를 처리하고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 한다.A system according to an embodiment of the present invention for solving the above problems, a first LAN network including a first user equipment, a DDS middleware device, and a DDS routing service device connected through a WAN network; and a second LAN network at a remote location having the same configuration as the first LAN network, wherein the DDS routing service comprises: DDS traffic of a middleware device connected through the first local network. Performs a communication processing function of routing data to a middleware device connected to a second local network located at a remote location different from the first local network through a wide area network, and in response to the routed DDS traffic data, topic-based priority It performs data management that performs data efficiency management processing using priority data control, but provides a function to specify a priority for each DDS topic according to priority setting information, and controls the priority of packet data according to the determined priority process, obtains the user-specified priority setting information from the DDS routing service device, determines and delivers the priority setting information, handles priority queue management based on the determined priority, and Packets are transmitted and processed first.

본 발명의 실시 예에 따르면, DDS 지원 미들웨어 디바이스를 포함하는 기존 LAN 기반의 DDS 시스템 트래픽을, 통상의 인터넷망과 같은 WAN 기반의 네트워크를 통해 라우팅될 수 있도록 처리하여, 별도의 인프라 변경 없이도 기존의 DDS 시스템이 WAN을 통해 연결된 다른 디바이스와 DDS 통신을 할 수 있게 하는 DDS 라우팅 서비스 시스템을 제공할 수 있다.According to an embodiment of the present invention, existing LAN-based DDS system traffic including a DDS-supporting middleware device is processed to be routed through a WAN-based network such as a normal Internet network, It is possible to provide a DDS routing service system that enables the DDS system to perform DDS communication with other devices connected through a WAN.

또한, 본 발명의 실시 예에 따르면, DDS 라우팅 서비스를 제공함에 있어서, 토픽 기반 우선순위 데이터 제어 처리를 제공하여, 네트워크 부하 저감, 지연 최소화 및 라우팅 효율을 높일 수 있는 DDS 라우팅 서비스 시스템을 제공할 수 있다.In addition, according to an embodiment of the present invention, in providing the DDS routing service, it is possible to provide a DDS routing service system capable of reducing network load, minimizing delay, and increasing routing efficiency by providing topic-based priority data control processing. there is.

그리고, 본 발명의 실시 예에 따르면, DDS 시스템의 비효율성을 개선하기 위해, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 라우팅 서비스 시스템을 제공할 수 있다.And, according to an embodiment of the present invention, in order to improve the inefficiency of the DDS system, it overcomes a decrease in throughput and a decrease in communication real-time due to a message size limitation, and prevents traffic loss and loss due to traffic flow control. , through which it is possible to provide a DDS routing service system that realizes low latency and effectively enables real-time processing.

도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2는 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치를 보다 구체적으로 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 데이터 관리부를 보다 구체적으로 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 우선 순위 제어부를 보다 구체적으로 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 우선 순위 제어부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 통신 관리부를 보다 구체적으로 도시한 블록도이다.
도 7 및 도 8은 본 발명의 실시 예에 따른 트래픽 제어부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 10은 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 11은 본 발명의 실시 예에 따른 직렬화부 처리에 따른 패킷 처리부의 동작을 설명하기 위한 흐름도이다.
도 12는 본 발명의 실시 예에 따른 입출력 패스스루 활성화부의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 13은 본 발명의 실시 예에 따른 트래픽 제어부의 동작을 설명하기 위한 흐름도이다.
도 14는 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
1 is a conceptual diagram schematically illustrating an entire system according to an embodiment of the present invention.
2 is a block diagram illustrating a DDS routing service apparatus according to an embodiment of the present invention in more detail.
3 is a block diagram illustrating a data management unit according to an embodiment of the present invention in more detail.
4 is a block diagram illustrating a priority control unit according to an embodiment of the present invention in more detail.
5 is a flowchart for explaining the operation of the priority control unit according to an embodiment of the present invention in more detail.
6 is a block diagram illustrating a communication management unit according to an embodiment of the present invention in more detail.
7 and 8 are diagrams for explaining a detailed configuration of a traffic controller according to an embodiment of the present invention and a system operation according thereto.
9 is a diagram illustrating serialization of an RTPS message according to an embodiment of the present invention, and FIG. 10 is a diagram comparing serialization between an embodiment of the present invention and the prior art.
11 is a flowchart for explaining the operation of the packet processing unit according to the serialization unit processing according to an embodiment of the present invention.
12 is a flowchart illustrating an operation of an input/output pass-through activation unit according to an embodiment of the present invention.
13 is a flowchart illustrating an operation of a traffic controller according to an embodiment of the present invention.
14 is a flowchart illustrating in more detail a calculation process for calculating the delay time of the traffic control unit.

이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.The following is merely illustrative of the principles of the invention. Therefore, those skilled in the art will be able to devise various devices that, although not explicitly described or shown herein, embody the principles of the present invention and are included within the spirit and scope of the present invention. Further, it is to be understood that all conditional terms and examples listed herein are, in principle, expressly intended solely for the purpose of enabling the concept of the present invention to be understood, and not limited to the specifically enumerated embodiments and states as such. should be

또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.Moreover, it is to be understood that all detailed description reciting the principles, aspects, and embodiments of the invention, as well as specific embodiments, are intended to cover structural and functional equivalents of such matters. It should also be understood that such equivalents include not only currently known equivalents, but also equivalents developed in the future, i.e., all devices invented to perform the same function, regardless of structure.

따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.Thus, for example, the block diagrams herein are to be understood as representing conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, all flowcharts, state transition diagrams, pseudo code, etc. may be tangibly embodied on computer-readable media and be understood to represent various processes performed by a computer or processor, whether or not a computer or processor is explicitly shown. should be

프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.The functions of the various elements shown in the figures including a processor or functional blocks represented by similar concepts may be provided by the use of dedicated hardware as well as hardware having the ability to execute software in association with appropriate software. When provided by a processor, the functionality may be provided by a single dedicated processor, a single shared processor, or a plurality of separate processors, some of which may be shared.

또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비 휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.In addition, the clear use of terms presented as processor, control, or similar concepts should not be construed as exclusively referring to hardware having the ability to execute software, and without limitation, digital signal processor (DSP) hardware, ROM for storing software. It should be understood to implicitly include (ROM), RAM (RAM) and non-volatile memory. Other common hardware may also be included.

본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.In the claims of the present specification, a component expressed as a means for performing the function described in the detailed description includes, for example, a combination of circuit elements that perform the function or software in any form including firmware/microcode, etc. It is intended to include all methods of performing the functions of the device, coupled with suitable circuitry for executing the software to perform the functions. Since the present invention defined by these claims is combined with the functions provided by the various enumerated means and in a manner required by the claims, any means capable of providing the functions are equivalent to those contemplated from the present specification. should be understood as

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. The above-described objects, features, and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, whereby those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.1 is a conceptual diagram schematically illustrating an entire system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 전체시스템은, 제1 LAN 네트워크(1000)를 구성하는 제1 사용자 장치(10), DDS 미들웨어 디바이스(300) 및 DDS 라우팅 서비스 장치(100)를 포함하며, 제1 LAN 네트워크(1000)는 동일한 구성을 포함하는 원격지의 제2 LAN 네트워크(2000)와 WAN 네트워크를 통해 연결될 수 있다.Referring to FIG. 1 , the entire system according to an embodiment of the present invention includes a first user device 10 , a DDS middleware device 300 , and a DDS routing service device 100 constituting a first LAN network 1000 . In addition, the first LAN network 1000 may be connected to the second LAN network 2000 of a remote location having the same configuration through a WAN network.

먼저, 사용자 장치(10)는, DDS 미들웨어 디바이스(300)를 통해 메시지를 입력하거나 DDS 미들웨어 디바이스(300)로부터 구독 처리된 메시지를 수신하는 사용자 컴퓨팅 장치일 수 있다.First, the user device 10 may be a user computing device that inputs a message through the DDS middleware device 300 or receives a subscription-processed message from the DDS middleware device 300 .

그리고, DDS 미들웨어 디바이스(300)는 사용자 장치(10)로부터 입력된 메시지를 제1 LAN 네트워크(1000) 내부로 발간 처리하거나, 제1 LAN 네트워크(1000)를 통해 수신되는 메시지를 구독 처리하여 사용자 장치(10)로 전달하는 통상의 DDS 미들웨어 디바이스(300)일 수 있다.In addition, the DDS middleware device 300 publishes a message input from the user device 10 into the first LAN network 1000 or subscribes to a message received through the first LAN network 1000 to process the user device. It may be a typical DDS middleware device 300 that forwards to (10).

보다 구체적으로, 본 발명의 실시 예에 따른 미들웨어 디바이스(300)는, 표준화된 DDS(Dara Distribution Service) 규격에 따른 DCPS(Data Centric Publish Subscribe) 프로토콜과 RTPS(RealTime Publish Subscribe) 프로토콜을 이용한 통신 기능을 제공할 수 있다. DCPS는 표준화된 사용자 API 및 모델링을 규격하고 있으며, RTPS는 DDS 벤더간 상호운용이 가능한 통신 규약을 규격화하고 있다.More specifically, the middleware device 300 according to an embodiment of the present invention provides a communication function using a Data Centric Publish Subscribe (DCPS) protocol and a RealTime Publish Subscribe (RTPS) protocol according to the standardized Dara Distribution Service (DDS) standard. can provide DCPS standardizes standardized user API and modeling, and RTPS standardizes communication protocol that enables interoperability between DDS vendors.

이러한 DDS 미들웨어 디바이스(300)는, DDS의 DCPS API를 사용해 제1 사용자 장치(10)와의 인터페이싱을 담당하며, 제1 사용자 장치(10)의 요청에 따라 메시지 발간/구독 요청을 수신하여, RTPS 규격에 따른 발간 메시지의 송신 처리와, 구독 메시지의 수신 처리를 수행한다.The DDS middleware device 300 is in charge of interfacing with the first user equipment 10 using the DCPS API of DDS, and receives a message publication/subscription request according to the request of the first user equipment 10, and receives the RTPS standard It performs transmission processing of publication message according to and reception processing of subscription message.

그리고, DDS 미들웨어 디바이스(300)는 메시지 발간 또는 구독 처리에 필요한 전송 이벤트 프로세스 및 재전송 이벤트 프로세스를 처리할 수 있다.In addition, the DDS middleware device 300 may process a transmission event process and a retransmission event process required for message publication or subscription processing.

그리고, DDS 미들웨어 디바이스(300)는, 통신 인터페이스를 통해 제1 사용자 장치(10)와 연결될 수 있으며, 제1 사용자 장치(10)의 메시지를 RTPS 패킷으로 패킷화하여 통신 인터페이스로 전송하거나, 통신 인터페이스를 통해 수신된 RTPS 패킷으로부터 메시지를 복원하여 제1 사용자 장치(10)로 전달하는 처리를 수행할 수 있다.In addition, the DDS middleware device 300 may be connected to the first user device 10 through a communication interface, and packetize the message of the first user device 10 into an RTPS packet and transmit it to a communication interface, or a communication interface A process of restoring a message from an RTPS packet received through RTPS and transferring the message to the first user device 10 may be performed.

이와 같은, 본 발명의 실시 예에서, 구체적으로 도시되지는 않았으나 제1 사용자 장치(10)에서 작성된 메시지 정보는 DDS 미들웨어 디바이스(300)의 메시지 처리부로 전달될 수 있으며, 전달된 메시지는 DDS 미들웨어 디바이스(300)의 이벤트 처리부를 통해 발간 처리되어 패킷 처리부를 통해 패킷화되어 통신 인터페이스부를 통해 외부 네트워크로 전송될 수 있다.As described above, in an embodiment of the present invention, although not specifically illustrated, message information written in the first user device 10 may be transmitted to the message processing unit of the DDS middleware device 300 , and the transmitted message may be transmitted to the DDS middleware device It may be published and processed through the event processing unit of 300 , may be packetized through the packet processing unit, and transmitted to an external network through the communication interface unit.

그리고, DDS 미들웨어 디바이스(300)의 메시지 처리부는 제1 사용자 장치(10)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부를 통한 구독 메시지 처리를 통해 패킷 처리부에서 통신 인터페이스부로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부를 통해 메시지 처리부로 전달되어 사용자 장치로 출력될 수 있다.In addition, when the message processing unit of the DDS middleware device 300 requests to receive the DDS subscription message from the first user device 10 , the packet received from the communication interface unit in the packet processing unit through the subscription message processing through the event processing unit is a subscription message. to be inversely transformed. In addition, the inversely transformed subscription message may be transmitted to the message processing unit through the event processing unit and output to the user device.

여기서, 통상적으로 DDS 미들웨어 디바이스(300)에서 지원하는 네트워크는 근거리 통신망(Local Area Network; LAN)일 수 있으며, LAN 네트워크는 로컬 네트워크로서 지역적으로 그 데이터 전송 가능한 영역이 제한될 수 있다.Here, in general, a network supported by the DDS middleware device 300 may be a local area network (LAN), and the LAN network may be a local network, and a region in which data transmission is possible may be limited.

즉, 전술한 바와 같이, DDS 미들웨어 디바이스(300)의 통신 가능한 영역은 로컬 네트워크에 국한되므로, 지역이 전혀 상이한 원격지의 제2 LAN 네트워크(2000)의 미들웨어 디바이스와는 DDS 표준 규격에 따른 프로토콜 기반 통신이 불가능한 상태이다.That is, as described above, since the communicable area of the DDS middleware device 300 is limited to the local network, it communicates with the middleware device of the second LAN network 2000 in a remote location completely different from a protocol-based communication according to the DDS standard standard. This is an impossible state.

예를 들어, 대전 지역의 로컬 네트워크에 연결된 DDS 미들웨어 디바이스(300)와 서울 지역에 있는 로컬 네트워크에 연결된 DDS 미들웨어 디바이스(300)간 자유로운 트래픽 송수신이 불가능하게 세팅되어 있는 것이다.For example, free transmission and reception of traffic between the DDS middleware device 300 connected to the local network in the Daejeon area and the DDS middleware device 300 connected to the local network in the Seoul area is set to be impossible.

이에 따라, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, DDS 중계 서비스 노드를 각 LAN 네트워크에 추가하고, 중계 서비스 노드를 통해 DDS 트래픽 데이터가 광역 통신망(Wide Area Network; WAN) 방식으로 송수신될 수 있도록 하는 트래픽 라우팅 기능을 제공할 수 있다.Accordingly, the DDS routing service apparatus 100 according to an embodiment of the present invention adds a DDS relay service node to each LAN network and transmits DDS traffic data through the relay service node in a wide area network (WAN) method. It can provide a traffic routing function that enables transmission and reception with

도 1에 도시된 바와 같이, WAN 네트워크는 제1 LAN 네트워크(1000)와 제2 LAN 네트워크(2000)를 연결하며, DDS 라우팅 서비스 장치(100)는, 그 지역 사이의 DDS 미들웨어 디바이스(300) 간 발생되는 메시지 관련 전송 트래픽을 효율적으로 중계하여, 기존의 DDS 미들웨어 디바이스(300)의 인프라를 변경하지 않고도 간편한 트래픽 라우팅 설정만으로 광대역 네트워크 또는 원거리 통신망을 지원하는 DDS 서비스 시스템을 구축할 수 있다.1, the WAN network connects the first LAN network 1000 and the second LAN network 2000, and the DDS routing service apparatus 100 is between the DDS middleware devices 300 between the areas. By efficiently relaying the generated message-related transmission traffic, it is possible to build a DDS service system supporting a broadband network or a long-distance communication network by simply setting up traffic routing without changing the infrastructure of the existing DDS middleware device 300 .

효율적이고 호환성 있는 트래픽 데이터의 처리를 위해, DDS 라우팅 서비스 장치(100)는, DDS 벤더 중립적인 트래픽 처리를 제공하며, 특히 WAN 네트워크 구간에서의 스마트 멀티 캐스팅과, 효율적이고 지능적인 선택적 데이터 압축, 데이터 암호화 및 데이터 직렬화 기반 트래픽 제어 프로세스를 수행할 수 있는 바, 이에 대하여는 보다 구체적으로 후술하도록 한다.For efficient and compatible traffic data processing, the DDS routing service device 100 provides DDS vendor-neutral traffic processing, in particular, smart multicasting in the WAN network section, efficient and intelligent selective data compression, and data A traffic control process based on encryption and data serialization can be performed, which will be described in more detail later.

도 2는 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치를 보다 구체적으로 도시한 블록도이다.2 is a block diagram illustrating a DDS routing service apparatus according to an embodiment of the present invention in more detail.

도 2를 참조하면, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, 도메인 관리부(110), 설정 관리부(120), 통신 관리부(130) 및 데이터 관리부(140)를 포함한다.Referring to FIG. 2 , the DDS routing service apparatus 100 according to an embodiment of the present invention includes a domain manager 110 , a setting manager 120 , a communication manager 130 , and a data manager 140 .

본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, 별도의 컴퓨터 OS 상에서 실행되는 소프트웨어의 동작으로 구현되거나, 물리적인 네트워크 연결을 위한 별도의 네트워크 장비(라우터, 모뎀 등)에 연결되는 별도의 하드웨어로 구현될 수도 있다. DDS 라우팅 서비스 장치(100)는 제1 LAN 네트워크(1000)의 기존 DDS 미들웨어 디바이스(300)와 연결된 DDS 서비스 시스템 인프라에 하나의 RS(Routing Servive) 노드를 추가할 수 있으며, RS 노드를 통해 전술한 DDS 미들웨어간 메시지 구독 및 발간 트래픽들이 WAN 을 통해 상호 송수신되도록 라우팅 처리할 수 있다.The DDS routing service apparatus 100 according to an embodiment of the present invention is implemented as an operation of software executed on a separate computer OS or is connected to a separate network equipment (router, modem, etc.) for a physical network connection. It may be implemented in hardware of The DDS routing service apparatus 100 may add one RS (Routing Servive) node to the DDS service system infrastructure connected to the existing DDS middleware device 300 of the first LAN network 1000, and through the RS node, Message subscription and publication traffic between DDS middlewares can be routed so that they are transmitted and received through WAN.

이에 따라, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, DDS 미들웨어 디바이스(300)가 일반적인 인터넷과 같은 글로벌 통신망을 통해 연결 구동될 수 있도록 처리함으로써, DDS 서비스의 논리적 통신 영역인 GDS(Global Data Space)를 확장할 수 있게 한다.Accordingly, the DDS routing service apparatus 100 according to an embodiment of the present invention processes the DDS middleware device 300 to be connected and driven through a global communication network such as the general Internet, thereby providing a logical communication area of the DDS service, GDS. (Global Data Space) can be expanded.

보다 구체적으로, 도메인 관리부(110)는 각 DDS 미들웨어 디바이스(300)의 GDS 연관 관계 구축에 필요한 미들웨어 디바이스(300)별 도메인 정보를 수집 처리하며, 수집된 도메인 정보를 통신 관리부(130)로 전달하는 하나 이상의 서브시스템을 포함할 수 있다.More specifically, the domain management unit 110 collects and processes domain information for each middleware device 300 necessary for establishing the GDS relationship of each DDS middleware device 300 , and transfers the collected domain information to the communication management unit 130 . It may include one or more subsystems.

통신 관리부(130)는, 도메인 관리부(110)에서 수집된 도메인 정보에 기초하여 GDS 노드 맵을 구축하고, GDS 노드 맵에 기초하여 DDS 미들웨어 디바이스(300)들을 각각 GDS 노드에 연결된 DDS 도메인 참여자(Domain Participant)로서 관리할 수 있다.The communication management unit 130 builds a GDS node map based on the domain information collected by the domain management unit 110, and connects the DDS middleware devices 300 to each GDS node based on the GDS node map. Participant) can be managed.

그리고, 통신 관리부(130)는, GDS 노드 맵을 이용한 트래픽 브릿징(Bridging)을 처리하여, 제1 LAN 네트워크(1000)에 연결된 DDS 미들웨어 디바이스(300)가 제2 LAN 네트워크(2000)의 RS 노드를 통해 다른 원격 GDS 노드에 연결될 수 있도록 처리할 수 있으며, 이에 따라 DDS 미들웨어 디바이스(300)는 기존의 LAN 통신 프로토콜을 그대로 사용하면서도, 원격지에 존재하는 다른 DDS 도메인 참여자와 자유롭게 트래픽을 교환할 수 있게 된다.In addition, the communication management unit 130 processes traffic bridging using the GDS node map, so that the DDS middleware device 300 connected to the first LAN network 1000 is an RS node of the second LAN network 2000 . can be processed so that it can be connected to other remote GDS nodes through do.

한편, 데이터 관리부(140)는, 라우팅되는 트래픽 데이터의 안정적이고 효율적인 교환 처리를 위해, 라우팅되는 트래픽 데이터를 이용한 관리 서비스 처리를 수행할 수 있다.Meanwhile, the data management unit 140 may perform management service processing using routed traffic data for stable and efficient exchange processing of routed traffic data.

여기서 데이터 관리 서비스는, 표준 암호화 통신 프로토콜인 DTLS를 통한 데이터 암호화 서비스, 토픽 별 우선순위 관리 기능을 위한 우선 순위 제어 서비스, 데이터 토픽 압축 서비스, 선택적 멀티캐스팅 처리 서비스 중 적어도 하나를 포함할 수 있으며, 이에 대하여는 도 4에서 보다 구체적으로 설명하도록 한다.Here, the data management service may include at least one of a data encryption service through DTLS, a standard encryption communication protocol, a priority control service for a priority management function for each topic, a data topic compression service, and a selective multicasting processing service, This will be described in more detail with reference to FIG. 4 .

한편, 설정 관리부(120)는, 시스템 이용을 위한 설정 정보를 저장 및 관리할 수 있다. 사용자는 파일 또는 사용자 입력 정보 형태의 설정 정보를 입력하여 설정 정보를 업데이트할 수 있으며, 설정 관리부(120)는 이를 위한 설정 정보 파서(paser)와 파싱된 설정 정보를 각 구성요소에 적용하는 설정 적용부(Applier)를 포함할 수 있다. 바람직하게, 설정 정보는 yaml (YAML Ain't Markup Language) 데이터 포맷의 파일 일 수 있으며, 스칼라 정보, 시퀀스 정보, 매핑 정보를 이용하여 적용될 모듈 및 적용할 설정 정보를 나타낼 수 있다.Meanwhile, the setting management unit 120 may store and manage setting information for system use. The user can update the setting information by inputting setting information in the form of a file or user input information, and the setting management unit 120 applies a setting information parser for this and the setting to apply the parsed setting information to each component. It may include an Applier. Preferably, the configuration information may be a file of a yaml (YAML Ain't Markup Language) data format, and may indicate a module to be applied and configuration information to be applied using scalar information, sequence information, and mapping information.

그리고, 설정 관리부(120)는, 설정 정보를 4개의 그룹으로 구분하여 관리할 수 있으며, 네트워크 그룹, 로그 그룹, 우선순위 그룹, 브릿징 그룹으로 구분될 수 있다. 네트워크 그룹과 브릿징 그룹의 설정 정보는 통신 관리부(130)에 적용될 수 있으며, 로그 그룹 정보는 모든 구성요소에서 모두 적용될 수 있고, 우선순위 그룹 설정 정보는 데이터 관리부(140)에 적용될 수 있다.In addition, the setting management unit 120 may divide and manage setting information into four groups, and may be divided into a network group, a log group, a priority group, and a bridging group. Network group and bridging group setting information may be applied to the communication management unit 130 , log group information may be applied to all components, and priority group setting information may be applied to the data management unit 140 .

도 3은 본 발명의 실시 예에 따른 데이터 관리부를 보다 구체적으로 도시한 블록도이다.3 is a block diagram illustrating a data management unit according to an embodiment of the present invention in more detail.

도 3을 참조하면, 본 발명의 실시 예에 따른 데이터 관리부(140)는, 데이터 암호화부(141), 토픽 압축부(143), 우선순위 제어부(145) 및 멀티캐스팅 처리부(147)를 포함한다.Referring to FIG. 3 , the data management unit 140 according to an embodiment of the present invention includes a data encryption unit 141 , a topic compression unit 143 , a priority control unit 145 , and a multicasting processing unit 147 . .

데이터 암호화부(141)는, 표준 암호화 통신 프로토콜인 DTLS(Datagram Transport Layer Security)를 DDS 트래픽 데이터에 적용하여, WAN을 통해 전송되는 사용자의 데이터를 외부의 공격으로부터 보호한다.The data encryption unit 141 applies Datagram Transport Layer Security (DTLS), which is a standard encryption communication protocol, to DDS traffic data to protect user data transmitted through a WAN from external attacks.

여기서, DTLS는 데이터그램 형식의 콘텐츠를 애플리케이션끼리 주고받을 때 안전하게 전송할 수 있도록 고안된 프로토콜로서, SSL, TLS와 같은 수준의 보안 서비스(무결성, 인증, 정보 은닉 등)를 제공할 수 있다.Here, DTLS is a protocol designed to safely transmit datagram-type content between applications, and can provide security services (integrity, authentication, information hiding, etc.) at the same level as SSL and TLS.

이에 따라, 데이터 암호화부(141)는, DDS 트래픽 데이터의 DTLS 암호화를 통해, 데이터그램을 주고 받는 DDS 미들웨어 디바이스(300)들의 두 엔드포인트 사이의 중간 네트워크에서 전송 중인 데이터를 훔쳐보거나 위조하는 등의 행위를 사전에 방지할 수 있다.Accordingly, the data encryption unit 141, through DTLS encryption of the DDS traffic data, spying on data being transmitted in an intermediate network between the two endpoints of the DDS middleware devices 300 exchanging datagrams or counterfeiting, etc. behavior can be prevented in advance.

그리고, 토픽 압축부(143)는, 실시간으로 각 DDS트래픽의 토픽 정보를 분석 및 학습하여, 데이터 압축을 처리할 DDS 토픽(Topic) 트래픽을 실시간으로 결정할 수 있으며, 토픽 압축이 결정된 트래픽에 대한 토픽 압축 처리를 수행하여, 라우팅할 트래픽의 총량을 줄이고, 대역폭 효율을 높일 수 있다. 이에 대하여는 도 4 및 도 5를 참조하여 보다 구체적으로 후술하도록 한다.In addition, the topic compression unit 143 may analyze and learn topic information of each DDS traffic in real time to determine DDS topic traffic to process data compression in real time, and topic for the traffic for which topic compression is determined. By performing compression processing, it is possible to reduce the total amount of traffic to be routed and increase bandwidth efficiency. This will be described later in more detail with reference to FIGS. 4 and 5 .

그리고, 우선순위 제어부(145)는 DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 트래픽의 우선 순위를 제어하는 프로세스를 수행할 수 있다. 우선 순위는 네임 패턴 매칭(Nme Pattern Matching) 등을 통해 지정될 수 있으며, 특히 데이터가 폭증하는 등의 상황에서는 특정한 토픽에 대한 처리 우선 순위가 설정되어 DDS 토픽별 최소한의 통신 대역폭이 확보되도록 할 수 있다.In addition, the priority control unit 145 may provide a function of designating a priority for each DDS topic, and may perform a process of controlling the priority of traffic according to the determined priority. Priority can be specified through Nme Pattern Matching, etc. In particular, in situations such as an explosion of data, the processing priority for a specific topic is set so that the minimum communication bandwidth for each DDS topic can be secured. there is.

한편, 멀티캐스팅 처리부(147)는, WAN 환경에서는 기본적으로 허용되지 않는 트래픽의 멀티캐스팅 서비스를 라우팅 서비스 노드(RS 노드)를 통해 구현할 수 있다. 멀티캐스팅 처리부(147)는 상기 RS 노드에 접속된 하나 이상의 DDS 참여자 미들웨어 디바이스(300)들로 구독/발간 메시지의 글로벌한 멀티캐스팅을 처리하는 멀티캐스팅 서비스를 제공할 수 있다.Meanwhile, the multicasting processing unit 147 may implement a multicasting service of traffic that is not basically allowed in a WAN environment through a routing service node (RS node). The multicasting processing unit 147 may provide a multicasting service for processing global multicasting of a subscription/publish message to one or more DDS participant middleware devices 300 connected to the RS node.

또한, 멀티캐스팅 처리부(147)는, 트래픽 정보로부터 DDS 토픽의 구독/발간 관계를 분석하여, 멀티캐스팅 여부를 결정할 수 있다. 이에 따라 WAN을 통해 수신되는 유니캐스트 트래픽이라 하더라도, 특정 미들웨어 디바이스(300)로부터의 발간 메시지인 경우 멀티캐스트 트래픽으로 변경하여, 수신측 GDS 노드로 멀티캐스팅을 처리할 수 있다. 이에 따라, 멀티캐스팅 처리부(147)는 트래픽 정보의 DDS 토픽의 구독/발간 관계 정보 분석에 기초하여, GDS 맵에 등록된 도메인 참여자들에 대응하는 복수의 DDS 미들웨어 디바이스(300)로의 선택적 멀티캐스팅을 수행할 수 있다.Also, the multicasting processing unit 147 may determine whether to multicast by analyzing the subscription/publishing relationship of the DDS topic from the traffic information. Accordingly, even unicast traffic received through the WAN may be changed to multicast traffic in the case of a message issued from a specific middleware device 300 and multicasting may be processed by the receiving GDS node. Accordingly, the multicasting processing unit 147 performs selective multicasting to a plurality of DDS middleware devices 300 corresponding to domain participants registered in the GDS map, based on the analysis of the subscription/publishing relationship information of the DDS topic of the traffic information. can be done

도 4는 본 발명의 실시 예에 따른 우선 순위 제어부를 보다 구체적으로 도시한 블록도이다.4 is a block diagram illustrating a priority control unit according to an embodiment of the present invention in more detail.

도 4를 참조하면, 본 발명의 실시 예에 따른 우선순위 제어부(145)는, DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 트래픽의 우선 순위를 제어하는 프로세스를 수행할 수 있다. 우선 순위는 네임 패턴 매칭(Nme Pattern Matching) 등을 통해 지정될 수 있으며, 특히 데이터가 폭증하는 등의 상황에서는 특정한 토픽에 대한 처리 우선 순위가 설정되어 DDS 토픽별 최소한의 통신 대역폭이 확보되도록 할 수 있다.Referring to FIG. 4 , the priority control unit 145 according to an embodiment of the present invention provides a function to designate a priority for each DDS topic, and performs a process of controlling the priority of traffic according to the determined priority. can do. Priority can be specified through Nme Pattern Matching, etc. In particular, in situations such as an explosion of data, the processing priority for a specific topic is set so that the minimum communication bandwidth for each DDS topic can be secured. there is.

이를 위해, 본 발명의 실시 예에 따른 우선순위 제어부(145)는, 우선순위 설정 정보 등록부(1451), 우선 순위 결정부(1453), 우선 순위 큐 처리부(1455) 및 패킷 입출력부(1457)를 포함한다.To this end, the priority control unit 145 according to an embodiment of the present invention includes a priority setting information registration unit 1451 , a priority determination unit 1453 , a priority queue processing unit 1455 , and a packet input/output unit 1457 . include

우선 순위 설정 정보 등록부(1451)는, 설정 관리부(120)로부터 사용자가 지정한 우선 순위 설정 정보를 획득하며, 획득된 우선 순위 설정 정보를 우선 순위 결정부(1453)로 전달한다.The priority setting information registration unit 1451 obtains the user-specified priority setting information from the setting management unit 120 , and transmits the obtained priority setting information to the priority determination unit 1453 .

그리고, 우선 순위 결정부(1453)는, 패킷 입출력부(1457)를 통해 라우팅 처리되는 트래픽 데이터의 패킷 데이터를 토픽 기반으로 분석하고, 상기 우선 순위 설정 정보에 기초한 우선순위 제어 처리 여부를 결정한다.In addition, the priority determining unit 1453 analyzes packet data of traffic data routed through the packet input/output unit 1457 on a topic-based basis, and determines whether to perform priority control processing based on the priority setting information.

우선 순위 결정부(1453)는 패킷 데이터 중 우선순위 지정이 가능한 토픽 패킷을 식별할 수 있으며, 식별된 토픽 패킷에 대응하는 우선순위 정보를 결정하여, 우선 순위 큐 처리부(1455)로 전달할 수 있다.The priority determiner 1453 may identify a topic packet capable of designating a priority among packet data, determine priority information corresponding to the identified topic packet, and transmit it to the priority queue processing unit 1455 .

우선 순위 큐 처리부(1455)는, 패킷 입출력부(1457)로 출력될 패킷 데이터 큐(Queue, 전송 대기열)를 관리할 수 있으며, 특히 우선순위 정보가 지정된 토픽 패킷은 우선순위 큐에 등록하고, 우선순위가 지정되지 않은 패킷은 일반 큐에 등록할 수 있다.The priority queue processing unit 1455 may manage a packet data queue (a transmission queue) to be output to the packet input/output unit 1457 , and in particular, a topic packet to which priority information is specified is registered in the priority queue, Unordered packets can be registered in the general queue.

패킷 입출력부(1457)는 수신된 패킷을 우선 순위 결정부(1453) 전달하여 우선순위 지정을 요청할 수 있으며, 우선 순위 큐 처리부(1455)를 통해 전달된 우선순위 큐의 토픽 패킷들은 일반 큐의 패킷들보다 우선적으로 전송할 데이터로 선정하고, 이에 기초한 데이터 전송 순서의 변경 처리를 수행할 수 있다.The packet input/output unit 1457 transmits the received packet to the priority determiner 1453 to request prioritization, and the topic packets of the priority queue transmitted through the priority queue processing unit 1455 are packets of the general queue. It is possible to select data to be transmitted preferentially over other data, and to change the data transmission order based on the selection process.

이에 따라, 라우팅 서비스에 있어서 전송할 패킷이 획득되는 시점에, 그 토픽 기반의 우선 순위가 사전 결정될 수 있으며, 결정된 우선 순위에 기반한 우선 순위 큐 관리가 처리되고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 함으로써, 망의 과부하 상태 또는 데이터 폭증 상태에서도 전송 대역폭 및 퀄리티를 유지시킬 수 있다.Accordingly, when a packet to be transmitted is acquired in the routing service, the priority based on the topic may be predetermined, priority queue management based on the determined priority is processed, and packets corresponding to the priority queue are prioritized. By allowing transmission to be processed as , the transmission bandwidth and quality can be maintained even in a network overload condition or data explosion condition.

보다 구체적으로, 우선순위 설정 정보 등록부(1451)는, 우선순위 설정 정보에 기초하여 데이터 큐 리스트를 생성할 수 있으며, 생성된 데이터 큐를 우선 순위 결정부(1453) 및 우선 순위 큐 처리부(1455)로 전달할 수 있다. 우선순위 설정 정보가 없는 경우에는 가장 작은 우선 순위 값만을 갖는 하나의 우선순위 큐만이 생성될 수 있다.More specifically, the priority setting information registration unit 1451 may generate a data queue list based on the priority setting information, and the generated data queue is determined by the priority determining unit 1453 and the priority queue processing unit 1455 . can be transmitted as When there is no priority setting information, only one priority queue having only the smallest priority value may be created.

그리고, 우선 순위 결정부(1453)는 패킷의 토픽 정보와 우선 순위 설정 정보에 기초하여, 각 데이터 큐에 접근할 확률을 연산하며, 그 확률 값에 따라 우선순위 큐 지정 여부를 결정할 수 있다.In addition, the priority determining unit 1453 may calculate a probability of accessing each data queue based on topic information and priority setting information of the packet, and determine whether to designate a priority queue according to the probability value.

보다 구체적으로, 예를 들어 우선 순위 설정 정보는 타입 정보와 레벨 정보를 포함할 수 있다.More specifically, for example, the priority setting information may include type information and level information.

타입 정보는 우선 순위 결정 규칙을 포함하며, 예를 들어 토픽 이름(by topic name)과 같이, 우선 순위를 결정할 기준 타입 정보를 포함할 수 있다.The type information includes a prioritization rule, for example, may include criteria type information for determining priority, such as a topic name (by topic name).

레벨 정보는, 우선 순위 결정 규칙에 대응하는 패턴별 그룹 레벨을 포함할 수 있다. 패턴이 지정된 레벨이 높을 수록 더 높은 우선 순위로 결정될 수 있다.The level information may include a group level for each pattern corresponding to the prioritization rule. The higher the level at which the pattern is assigned, the higher the priority can be determined.

이와 같은 타입 정보 및 레벨 정보는 문자열로 표시될 수 있으며, 타입 정보는 구분자 설정으로 지정되고, {패턴, 값} 객체의 배열에 따라 레벨 정보가 지정될 수 있다. 아래 표는 타입 정보 및 레벨 정보를 포함하는 설정 정보의 예시이다.Such type information and level information may be displayed as character strings, type information may be designated as a separator setting, and level information may be designated according to an arrangement of {pattern, value} objects. The table below is an example of setting information including type information and level information.

타입 정보type information 기본값: “none”,
목록: [ “none”, “by_topic_name” ]
Default: “none”,
List: [ “none”, “by_topic_name” ]
레벨 정보level information levels:
- patterns: [ "Urgent*" ]
rate: 100
- patterns: [ "Normal*", "Norm" ]
rate: 50
levels:
- patterns: [ "Urgent*" ]
rate: 100
- patterns: [ "Normal*", "Norm" ]
rate: 50

표 1에 도시된 바와 같이, 우선 순위로 구분할 패킷의 토픽 타입은 토픽 이름(by_topic_name)일 수 있으며, 그 이름 패턴에 "Urgent"가 포함된 경우 100의 우선 순위 레벨이 지정되고, 그 이름 패턴에 "Normal"이 포함되거나 "Norm"인 경우, 50의 우선 순위 레벨이 지정될 수 있다. 이 경우, 토픽의 이름 타입에 "Urgent"가 포함된 패킷은 100의 레벨로 우선 순위 및 그 큐 리스트가 할당될 수 있으며, , "Normal"이 포함되거나, "Norm"인 패킷은 50의 레벨로 우선 순위 및 그 큐 리스트가 할당될 수 있다.As shown in Table 1, the topic type of the packet to be classified by priority may be a topic name (by_topic_name), and when "Urgent" is included in the name pattern, a priority level of 100 is specified, and the name pattern is When "Normal" is included or "Norm", a priority level of 50 may be designated. In this case, a packet including "Urgent" in the name type of the topic can be assigned a priority and its queue list at a level of 100, and a packet containing "Normal" or "Norm" can be assigned a level of 50. Priorities and their cue lists can be assigned.

그리고 우선 순위 결정부(1453)는, 패킷간 상호 레벨을 비교하여 n개 패킷들 중 i번째 데이터 큐 Q_i에 접근할 확률 P_i를 연산할 수 있으며, 연산된 P_i에 기초한 각 패킷별 우선 순위 큐 할당 여부를 결정할 수 있다.In addition, the priority determining unit 1453 may calculate the probability P_i of accessing the i-th data queue Q_i among the n packets by comparing the mutual levels between packets, and assigning a priority queue for each packet based on the calculated P_i can decide whether

보다 구체적으로, P_i에 대한 연산은 하기 수학식 1로 설명될 수 있다.More specifically, the operation on P_i may be described by Equation 1 below.

Figure pat00001
Figure pat00001

여기서, V_total은 사용자가 우선 순위 설정 정보로서 등록한 우선순위 큐 리스트에서 우선순위 레벨 값을 모두 더한 값일 수 있다.Here, V_total may be the sum of all priority level values from the priority queue list registered by the user as priority setting information.

그리고, Vi는 i번째 우선순위 레벨의 값을 수치로 표현한 것으로, 상기 rate 100, rate 50 등과 같이 사용자에 의해 설정될 수 있다.In addition, Vi is a numerical expression of the value of the i-th priority level, and may be set by the user, such as the rate 100, rate 50, and the like.

P_i는 현재 패킷이 i번째 우선 순위에 대항하는 데이터 큐에 접근할 확률을 나타낸다.P_i represents the probability that the current packet accesses the data queue corresponding to the i-th priority.

P_total은 우선 순위 큐 리스트에 있는 모든 우선 순위 큐에 데이터가 접근할 확률의 합으로 항상 1일 수 있다.P_total is the sum of the probability of data access to all priority queues in the priority queue list, and may always be 1.

이에 따라, 우선순위 제어부(145)는, 초기에 V_total을 갱신하고, 우선 순위 설정 정보가 존재하는 경우, 이에 기초한 P_i 의 갱신 및 Q_i의 생성 처리를 수행할 수 있게 된다.Accordingly, the priority control unit 145 may initially update V_total and, if priority setting information exists, update P_i and generate Q_i based thereon.

도 5는 본 발명의 실시 예에 따른 우선 순위 제어부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.5 is a flowchart for explaining the operation of the priority control unit according to an embodiment of the present invention in more detail.

도 5를 참조하면, 본 발명의 실시 예에 따른 우선 순위 결정부(1453)는, 패킷 입출력부(1457)로주터 로드된 패킷을 구분하여 데이터 큐에 등록할 수 있는 바, 이에 기초한 각 패킷별 우선 순위 레벨을 결정할 수 있다. 다만, DDS RTPS 패킷 및 RS 패킷 중 우선 순위를 적용할 수 있는 패킷은 DDS RTPS 패킷 중에서도 DATA 패킷일 수 있으며, 이 중 사용자가 정의한 토픽에 해당하는 토픽 패킷에 대하여만 우선 순위 제어 처리가 제공될 수 있다.Referring to FIG. 5 , the priority determining unit 1453 according to an embodiment of the present invention may classify packets loaded from the packet input/output unit 1457 and register them in the data queue. Based on this, each packet You can determine the priority level. However, among the DDS RTPS packet and the RS packet, the packet to which priority can be applied may be a DATA packet among the DDS RTPS packets. there is.

따라서, 도 5는 토픽 패킷에 대한 우선 순위 제어가 처리되는 경우를 설명하기 위한 흐름도이며, 우선순위 패킷이 아닌 일반 데이터 큐는 우선 순위가 가장 낮은 값을 가질 수 있다.Accordingly, FIG. 5 is a flowchart for explaining a case in which priority control for a topic packet is processed, and a general data queue that is not a priority packet may have the lowest priority value.

우선 순위 제어 처리가 수행되면, 먼저 우선순위 제어부(145)는, 데이터 송신 시점의 데이터 큐 선정 기준 값인 C_current를 산출한다(S1501).When the priority control process is performed, first, the priority control unit 145 calculates C_current, which is a data queue selection reference value at the time of data transmission (S1501).

데이터 큐 선정 기준값 C_current는, 하기와 같은 수학식 2를 통해 산출될 수 있다.The data queue selection reference value C_current may be calculated through Equation 2 below.

Figure pat00002
Figure pat00002

여기서, R_current는 패킷이 현재 데이터 큐에 접근하는 시점에서 생성하는 난수의 값이며, 난수 생성 함수 사용시 반환하는 수의 최대값은 R_max로서 예를 들어 32647(16 진수 : 0x7fff) 일 수 있다. 그리고, R_total은 현재 처리 중인 전체 패킷들에 대해 할당된 난수들을 모두 더한 값일 수 있다.Here, R_current is the value of a random number generated when the packet accesses the current data queue, and the maximum value of the number returned when the random number generation function is used is R_max, for example, 32647 (hexadecimal: 0x7fff). In addition, R_total may be a value obtained by adding all random numbers assigned to all packets currently being processed.

그리고, 우선순위 제어부(145)는 우선 순위 타입 정보 및 레벨 정보에 기초하여, 가장 높은 순위의 데이터 큐 Q_i에 대한 현재 패킷의 접근 확률 P 값을 P_i로 연산하며(S1502), C_current 값이 P_i보다 작거나 같은지를 판단한다(S1503).Then, the priority control unit 145 calculates the access probability P value of the current packet to the highest priority data queue Q_i as P_i based on the priority type information and the level information (S1502), and the C_current value is higher than P_i It is determined whether it is less than or equal to (S1503).

작거나 같지 않은 경우, 우선순위 제어부(145)는 Q_i의 패킷을 현재 데이터 큐 Q_current 보다 우선 출력할 데이터 큐의 패킷으로 선정할 수 있다(S1511).If less than or equal to, the priority control unit 145 may select the packet of Q_i as a packet of the data queue to be output prior to the current data queue Q_current (S1511).

작거나 같은 경우, 우선순위 제어부(145)는 C_current에서 P_i 값만큼을 차감하고, P_i에는 다음 순위 큐에 대응하는 확률 값을 설정한다(S1505).If less than or equal to, the priority control unit 145 subtracts the value of P_i from C_current, and sets a probability value corresponding to the next priority queue in P_i ( S1505 ).

이후, 우선순위 제어부(145)는 설정 정보에 다음 레벨 정보가 존재하는지 확인한다(S1507).Thereafter, the priority control unit 145 checks whether the next level information exists in the setting information (S1507).

다음 레벨 정보가 존재하는 경우에는, 우선순위 제어부(145)는 상기 S1502 단계부터 다시 처리한다.If the next level information exists, the priority control unit 145 processes again from step S1502.

그러나, 다음 레벨 정보가 존재하지 않는 경우에는 우선순위 제어부(145)는 현재 데이터 큐 Q_current의 패킷을 출력 패킷으로 선정한다(S1509).However, when the next level information does not exist, the priority control unit 145 selects a packet of the current data queue Q_current as an output packet (S1509).

도 6은 본 발명의 실시 예에 따른 통신 관리부를 보다 구체적으로 도시한 블록도이다.6 is a block diagram illustrating a communication management unit according to an embodiment of the present invention in more detail.

도 6을 참조하면, 본 발명의 실시 예에 따른 통신 관리부(130)는, 통신 인터페이스를 구성하며, 엔드포인트 소켓 관리부(131), 브릿지 처리부(133), 트래픽 제어부(135) 및 GDS 관리부(137)를 포함한다.Referring to FIG. 6 , the communication management unit 130 according to an embodiment of the present invention configures a communication interface, and includes an endpoint socket management unit 131 , a bridge processing unit 133 , a traffic control unit 135 , and a GDS management unit 137 . ) is included.

엔드포인트 소켓 관리부(131)는 WAN 네트워크를 통해 라우팅된 DDS 트래픽을 교환하는 엔드포인트 소켓의 생성, 연결 및 소멸 관리를 처리한다. 엔드포인트 소켓 연결을 통해, 각 LAN 네트워크로 접속한 DDS 미들웨어 디바이스(300)들은 WAN 네트워크를 통해 트래픽 데이터를 상호 교환할 수 있다.The endpoint socket management unit 131 handles creation, connection, and destruction management of endpoint sockets for exchanging DDS traffic routed through the WAN network. The DDS middleware devices 300 connected to each LAN network through the endpoint socket connection may exchange traffic data with each other through the WAN network.

그리고, 브릿지 처리부(133)는 트래픽 데이터의 브릿지 처리를 수행할 수 있으며, 브릿치 처리에 따라, 각각 GDS 노드에 연결된 DDS 도메인 참여자(Domain Participant)들이 LAN 통신을 하는 것과 동일한 방식으로 통신할 수 있게 한다.In addition, the bridge processing unit 133 may perform bridging processing of traffic data, and according to the bridging processing, the DDS domain participants connected to each GDS node can communicate in the same way as LAN communication. do.

브리지 처리는 데이터 링크 계층 중 MAC계층에서 처리되는 것으로, 두 세그먼트 사이에서 데이터 링크 계층간의 패킷 전송을 처리할 수 있는 바, 2개 이상의 독립된 세그먼를 결합해서, 결과적으로 하나의 network인 것처럼 보이게 할 수 있다. 브릿지 처리는, MAC 어드레스를 조사하여 데이터 링크층이 관리하는 패킷의 소스 어드레스와 목적지 어드레스를 보고 그 패킷을 통과해야 할 것인지, 아닌지를 판정해서 그 트래픽을 필터링 또는 포워딩 하는 기능을 수행할 수 있다. 이에 따라 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는 브릿지 기능을 포함하므로, DDS 브라우팅 서비스 장치라고도 할 수 있다.Bridge processing is processed in the MAC layer among the data link layers, and it can handle packet transmission between the data link layers between two segments. there is. The bridging process may perform a function of filtering or forwarding the traffic by examining the MAC address, looking at the source address and the destination address of the packet managed by the data link layer, determining whether the packet should be passed through or not. Accordingly, since the DDS routing service apparatus 100 according to an embodiment of the present invention includes a bridge function, it may also be referred to as a DDS routing service apparatus.

GDS 관리부(137)는, 전술한 도메인 관리부(110)에서 수집된 도메인 정보에 기초하여 GDS 노드 맵을 구축하고, GDS 노드 맵에 기초하여 DDS 미들웨어 디바이스(300)들을 각 도메인 참여자로서 매핑 저장 및 관리할 수 있다.The GDS management unit 137 builds a GDS node map based on the domain information collected by the aforementioned domain management unit 110, and stores and manages mapping of the DDS middleware devices 300 as each domain participant based on the GDS node map. can do.

한편, 트래픽 제어부(135)는, DDS 제품 간 상호 운용성 보장을 위해, 통신 관리부(130)를 통해 송수신되는 RTPS 표준 메시지를 UDP와 같은 통신 프로토콜 패킷으로 변환하는 처리를 수행할 수 있으며, 이러한 변환 프로세스는 발간 요청 받은 메시지를 RTPS 표준에 따른 형태로 직렬화하는 직렬화 프로세스와, 지연 시간 최소화 프로세스를 수행할 수 있다. 이에 대하여는 보다 구체적으로 도 7 내지 도 14를 참조하여 설명하도록 한다.Meanwhile, the traffic control unit 135 may perform a process of converting an RTPS standard message transmitted and received through the communication management unit 130 into a communication protocol packet such as UDP in order to ensure interoperability between DDS products, and this conversion process can perform the serialization process of serializing the message requested to be published in the form according to the RTPS standard, and the process of minimizing the delay time. This will be described in more detail with reference to FIGS. 7 to 14 .

도 7은 본 발명의 실시 예에 따른 트래픽 제어부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.7 is a block diagram illustrating a detailed configuration of a traffic control unit and a system operation according thereto according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 실시 예에 따른 트래픽 제어부(135)는, 트래픽 제어 활성화 결정부(1355), 패킷 처리부(1351), 이벤트 처리부(1352) 및 메시지 처리부(1353)를 포함하며, 패킷 처리부(1351)는 통신 인터페이스부(1354)를 통해 외부 네트워크와 연결될 수 있고, 메시지 처리부(1353)는 제1 사용자 장치(10)로부터 입력되는 메시지를 발간 처리하거나, 네트워크로부터 수신되는 메시지를 구독 처리하여 제1 사용자 장치(10)로 전달할 수 있다.Referring to FIG. 7 , the traffic control unit 135 according to an embodiment of the present invention includes a traffic control activation determination unit 1355, a packet processing unit 1351, an event processing unit 1352, and a message processing unit 1353, The packet processing unit 1351 may be connected to an external network through the communication interface unit 1354 , and the message processing unit 1353 publishes and processes a message input from the first user device 10 or subscribes to a message received from the network. It may be processed and transmitted to the first user device 10 .

트래픽 제어 활성화 결정부(1355)는, 본 발명의 실시 예에 따른 트래픽 제어부(135)의 동작 활성화 여부를 설정 관리부(120)로부터 식별되는 설정 정보에 따라 결정할 수 있다. 설정 정보는 트래픽 제어에 대응하여 후술할 관련 트래픽 제어 기준 변수 및 지연 변수를 포함할 수 있다.The traffic control activation determiner 1355 may determine whether to activate the operation of the traffic control unit 135 according to the configuration information identified by the configuration manager 120 . The configuration information may include a related traffic control reference variable and a delay variable, which will be described later in response to traffic control.

메시지 처리부(1353)는, DDS의 DCPS API를 사용해 제1 사용자 장치(10)과의 인터페이싱을 담당하며, 제1 사용자 장치(10)의 요청에 따라 메시지 발간/구독 요청을 수신하여, RTPS 규격에 따른 발간 메시지의 송신 처리와, 구독 메시지의 수신 처리를 수행한다.The message processing unit 1353 is responsible for interfacing with the first user device 10 using the DCPS API of DDS, and receives a message publication/subscription request according to the request of the first user device 10, and conforms to the RTPS standard. It performs transmission processing of published message and reception processing of subscription message.

그리고, 이벤트 처리부(1352)는 메시지 처리부(1353)의 메시지 발간 또는 구독 처리에 필요한 전송 이벤트 프로세스 및 재전송 이벤트 프로세스를 처리할 수 있다. In addition, the event processing unit 1352 may process a transmission event process and a retransmission event process required for the message publication or subscription processing of the message processing unit 1353 .

한편, 패킷 처리부(1351)는 통신 인터페이스부(1354)와 연결될 수 있으며, 메시지를 RTPS 패킷으로 패킷화하여 통신 인터페이스부(1354)로 전송하거나, RTPS 패킷으로부터 메시지를 복원하여 이벤트 처리부(1352)로 전달하는 처리를 수행할 수 있다.On the other hand, the packet processing unit 1351 may be connected to the communication interface unit 1354, packetize the message into an RTPS packet and transmit it to the communication interface unit 1354, or restore the message from the RTPS packet to the event processing unit 1352 Forwarding processing can be performed.

이와 같은, 본 발명의 실시 예에서, 제1 사용자 장치(10)에서 작성된 메시지 정보는 메시지 처리부(1353)로 전달될 수 있으며, 전달된 메시지는 이벤트 처리부(1352)를 통해 발간 처리되어 패킷 처리부(1351)를 통해 패킷화되어 통신 인터페이스부(1354)를 통해 외부 LAN 또는 트래픽 라우팅을 통한 WAN 네트워크로 전송될 수 있다.As described above, in an embodiment of the present invention, the message information written in the first user device 10 may be transmitted to the message processing unit 1353, and the transmitted message is published and processed through the event processing unit 1352 to be processed by the packet processing unit ( 1351 ) and may be transmitted to an external LAN or a WAN network through traffic routing through the communication interface unit 1354 .

그리고, 메시지 처리부(1353)는 제1 사용자 장치(10)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부(1352)를 통한 구독 메시지 처리를 통해 패킷 처리부(1351)에서 통신 인터페이스부(1354)로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부(1352)를 통해 메시지 처리부(1353)로 전달되어 제1 사용자 장치(10)로 출력될 수 있다.Then, when the message processing unit 1353 receives a request to receive the DDS subscription message from the first user device 10 , the packet processing unit 1351 receives it from the communication interface unit 1354 through the subscription message processing through the event processing unit 1352 . The received packet is inversely converted into a subscription message. In addition, the inversely transformed subscription message may be transmitted to the message processing unit 1353 through the event processing unit 1352 and output to the first user device 10 .

특히, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, DDS 제품 간 상호 운용성 보장을 위해, 통신 인터페이스부(1354)를 통해 송수신되는 RTPS 표준 메시지를 UDP와 같은 통신 프로토콜 패킷으로 변환하는 처리를 수행할 수 있으며, 이러한 변환 프로세스는 발간 요청 받은 메시지를 RTPS 표준에 따른 형태로 직렬화하는 직렬화 프로세스를 포함할 수 있다.In particular, the packet processing unit 1351 according to an embodiment of the present invention converts an RTPS standard message transmitted and received through the communication interface unit 1354 into a communication protocol packet such as UDP to ensure interoperability between DDS products. may be performed, and this conversion process may include a serialization process of serializing a message requested to be published in a form according to the RTPS standard.

그리고, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 직렬화 프로세스에 있어서, 실시간 배칭(BATCHING) 프로세스를 통해 대역폭의 낭비를 해소하고, 실시간성을 보장할 수 있다.And, in the serialization process, the packet processing unit 1351 according to an embodiment of the present invention can eliminate bandwidth waste through a real-time BATCHING process and ensure real-time performance.

보다 구체적으로, 예를 들어 RTPS에서는 기본적으로 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화되도록 구성되어 있다. 따라서 제1 사용자 장치(10)에서 100개의 메시지를 발간 요청하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신될 수 있다.More specifically, for example, in RTPS, one user message is basically configured to be serialized into one RTPS message. Accordingly, when the first user device 10 requests to publish 100 messages, 100 RTPS messages may be generated and transmitted to the network.

그러나, 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.However, due to the characteristics of the network device, frequent I/O caused by a large number of packets generated within a short period of time causes performance degradation. In addition, when converting user data into network packets, space for expressing metadata and headers of each protocol such as Ethernet, IP, UDP, and RTPS is added to the message. Bandwidth is wasted.

이에 따라, 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장하기 위하여, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, RTPS 서브 메시지에 패킷의 허용 가능한 최대 바이트 한도까지 복수의 메시지를 배칭(BATCHING) 처리할 수 있는 직렬화 프로세스를 처리할 수 있으며, 이를 위한 하나 이상의 메시지 버퍼를 포함할 수 있다.Accordingly, in order to solve the performance degradation due to frequent I/O and the wastage of bandwidth required for expressing protocol metadata and headers, and at the same time to ensure real-time performance, the packet processing unit 1351 according to the embodiment of the present invention includes: A serialization process capable of batching multiple messages up to the maximum allowable byte limit of the packet in the RTPS sub-message may be processed, and one or more message buffers may be included for this.

또한, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 이벤트 처리부(1352)에서 처리되는 각 이벤트의 시작과 종료 처리를 수행함에 있어서, 스레드간 통신으로 발생하는 지연과 상태 전환으로 발생되는 지연 시간을 최소화하기 위하여, 단일 스레드로 메시지의 발간 또는 구독 프로세르를 처리하도록 하는 입출력 패스스루 경로를 활성화할 수 있으며, 이러한 입출력 패스스루 활성화 여부는 메시지의 지연 시간에 따라 동적으로 가변 처리됨으로써, 환경 적응적으로 지연 시간의 최소화를 달성할 수 있다.In addition, when the packet processing unit 1351 according to an embodiment of the present invention performs start and end processing of each event processed by the event processing unit 1352, a delay caused by communication between threads and a delay time caused by a state transition In order to minimize this, an input/output pass-through path that processes a message publication or subscription process with a single thread can be activated. In general, the delay time can be minimized.

그리고, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 트래픽 제어시의 유실이 일어나지 않도록 하는 최대 대역폭을 설정할 수 있으며, 이는 패킷 전송 파라미터에 따른 지연 시간 연산을 통해 송신 대기 처리를 수행하도록 함으로써 조절될 수 있다.In addition, the packet processing unit 1351 according to an embodiment of the present invention may set a maximum bandwidth that prevents loss during traffic control, which is performed by performing transmission standby processing through a delay time calculation according to packet transmission parameters. can be adjusted.

도 8은 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.8 is a block diagram illustrating a detailed configuration of a packet processing unit and a system operation according thereto according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 입출력 패스스루 활성화부(1351a), 직렬화부(1351b), 트래픽 지연 제어부(1351c) 및 송수신부(1351d)를 포함한다.Referring to FIG. 8 , the packet processing unit 1351 according to an embodiment of the present invention includes an input/output pass-through activation unit 1351a, a serialization unit 1351b, a traffic delay control unit 1351c, and a transceiver 1351d. .

먼저, 패킷 처리부(1351)는 RTPS의 전송 계층 프로토콜로 UDP를 사용할 수 있으며, 미들웨어를 통해 생성되는 미들웨어 내부 데이터, 사용자 데이터를 RTPS 메시지로 캡슐화 처리할 수 있다. RTPS는 UDP를 전송 계층으로 사용하므로 RTPS 메시지는 다시 UDP 데이터그램으로 캡슐화될 수 있다.First, the packet processing unit 1351 may use UDP as a transport layer protocol of the RTPS, and may encapsulate the middleware internal data and user data generated through the middleware into an RTPS message. Since RTPS uses UDP as the transport layer, RTPS messages can be encapsulated back into UDP datagrams.

직렬화부(1351b)는 이러한 RTPS 메시지를 UDP 데이터그램으로 캡슐화하기 위한 RTPS 메시지의 직렬화 처리를 수행할 수 있다.The serializer 1351b may serialize the RTPS message for encapsulating the RTPS message into a UDP datagram.

도 9는 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 10은 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.9 is a diagram illustrating serialization of an RTPS message according to an embodiment of the present invention, and FIG. 10 is a diagram comparing serialization between an embodiment of the present invention and the prior art.

도 9를 참조하면, RTPS 메시지는 구체적으로, RTPS 헤더와 하나 이상의 RTPS 서브메시지 데이터로 구성될 수 있으며, RTPS 헤더는 임의 값(Magic Value), 프로토콜 버전(Protocol Version), 벤더 식별자(Vendor ID) 및 메시지를 발간하는 발간자 식별정보(GUID-Globally Unique Identifier)를 포함할 수 있다. DDS는 물리적으로는 통신 인터페이스부(1354)를 통한 IP Address 및 UDP Port를 사용하여 통신을 수행하지만, 논리적으로는 GUID Prefix로 상대방을 식별할 수 있게 정의된다.Referring to FIG. 9 , the RTPS message may specifically include an RTPS header and one or more RTPS submessage data, and the RTPS header includes an arbitrary value (Magic Value), a protocol version (Protocol Version), and a vendor ID (Vendor ID). and publisher identification information (GUID-Globally Unique Identifier) that publishes the message. The DDS physically performs communication using an IP address and a UDP port through the communication interface unit 1354, but logically it is defined so that the counterpart can be identified with a GUID prefix.

그리고, RTPS 서브메시지 데이터는 서브메시지 헤더 정보 및 서브메시지 바디 정보를 포함할 수 있다. 서브메시지 헤더 정보는 서브메시지의 종류 정보와 크기 정보를 포함할 수 있다. 서브메시지 바디 정보에는 메시지가 표현하고자 하는 실제 데이터가 포함될 수 있다.And, the RTPS sub-message data may include sub-message header information and sub-message body information. The sub-message header information may include sub-message type information and size information. The sub-message body information may include actual data to be expressed by the message.

서브 메시지의 종류 정보는, DATA, DATA_FRAG, GAP, ACKNACK, HEARTBEAT, HEARTBEAT_FRAG, PAD, INFO_SRC, INFO_DST, INFO_TS 또는 INFO_REPLY 와 같이 분류될 수 있으며, 각각 서브메시지 바디에 포함된 실제 데이터의 속성을 나타낼 수 있다.The sub-message type information may be classified as DATA, DATA_FRAG, GAP, ACKNACK, HEARTBEAT, HEARTBEAT_FRAG, PAD, INFO_SRC, INFO_DST, INFO_TS or INFO_REPLY, and may indicate the properties of actual data included in each sub-message body. .

그리고, 도 10(A)를 참조하면, 기본적으로 종래 기술에서 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화된다. 따라서 사용자가 100개의 메시지를 발간하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신된다. 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.And, referring to FIG. 10(A), basically, in the prior art, one user message is serialized into one RTPS message. Therefore, when the user publishes 100 messages, 100 RTPS messages are generated and transmitted to the network. Due to the characteristics of network devices, frequent I/O caused by a large number of packets generated within a short period of time causes performance degradation. In addition, when converting user data into network packets, space for expressing metadata and headers of each protocol such as Ethernet, IP, UDP, and RTPS is added to the message. Bandwidth is wasted.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는, 도 10(B)에 도시된 바와 같이, RTPS 메시지를 구성하는 RTPS 서브 메시지상에, 패킷에 허용되는 최대 바이트 한도까지 배칭(Batching) 처리를 수행할 수 있다. 따라서 사용자 메시지가 충분히 작을 경우, 복수의 사용자 메시지를 1개의 RTPS 메시지로 직렬화 처리할 수 있다.Accordingly, the serializer 1351b according to the embodiment of the present invention, as shown in FIG. 10B, batches the RTPS sub-message constituting the RTPS message up to the maximum byte limit allowed for the packet. ) can be processed. Therefore, if the user message is small enough, a plurality of user messages can be serialized into one RTPS message.

이를 위해, 직렬화부(1351b)는 메시지 배칭을 위한 별도의 메시지 버퍼(미도시)를 포함할 수 있다. 메시지를 배칭하기 위해서는 충분한 메시지가 메시지 버퍼에 쌓여 있어야 한다.To this end, the serializer 1351b may include a separate message buffer (not shown) for message batching. In order to batch messages, enough messages must be accumulated in the message buffer.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 충분한 메시지가 메시지 버퍼에 쌓이도록 하기 위해, 제1 사용자 장치(10)에서 메시지 발간 요청을 네트워크 전송 속도보다 빠르게 요청한 경우, 즉시 전송이 불가능한 메시지로 판별하여 메시지 버퍼에 누적되도록 처리할 수 있다. 그리고, 직렬화부(1351b)는 상기 사용자장치(200)에서 수신된 메시지 발간 요청을 강제 지연 처리함으로써, 메시지가 메시지 버퍼에 쌓일 시간을 확보하도록 할 수 있다.Accordingly, the serializer 1351b according to an embodiment of the present invention transmits a message immediately when the first user device 10 requests a message publication faster than the network transmission speed in order to accumulate enough messages in the message buffer. It is determined as an impossible message and can be processed to accumulate in the message buffer. In addition, the serializer 1351b may secure time for the message to accumulate in the message buffer by forcibly delaying the message publication request received from the user device 200 .

특히, DDS 표준에서는 QoS 파라미터로서 지연 할당(LATENCY_BUDGET) 파라미터를 정의하고 있다. 지연 할당 파라미터는, 발간측 제1 사용자 장치(10)에 적용될 수 있으며, 단지 데이터 통신의 긴급도를 표현하는 수치로 정의는 되어 있으나, 실제 의미는 구현자가 임의로 부여할 수 있는 측면이 존재한다. 따라서, 본 발명의 실시 예에 따른 직렬화부(1351b)는 지연 할당(LATENCY_BUDGET) 파라미터를 RTPS 메시지를 배치하기 위한 메시지 송신 최대 지연 시간으로 재정의할 수 있다.In particular, the DDS standard defines a delay allocation (LATENCY_BUDGET) parameter as a QoS parameter. The delay allocation parameter can be applied to the first user device 10 of the publishing side, and is defined as a numerical value that merely expresses the urgency of data communication, but the actual meaning can be arbitrarily assigned by the implementer. Accordingly, the serializer 1351b according to an embodiment of the present invention may redefine the delay allocation (LATENCY_BUDGET) parameter as the maximum delay time of message transmission for arranging the RTPS message.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 지연 할당 파라미터에 기초한 메시지 송신 최대 지연 시간 동안, 제1 사용자 장치(10)로부터 수신된 메시지 발간 요청을 강제 지연 처리하고 요청된 발간 메시지를 메시지 버퍼에 누적하며, 지연 시간이 경과되면 누적된 메시지들을 배칭 처리하여 직렬화된 1개의 RTPS 병합 메시지로 구성하며, 구성된 RTPS 병합 메시지를 송수신부(1351d)를 통해 통신 패킷으로 변환하여 통신 인터페이스부(1354)로 출력할 수 있다.Accordingly, the serializer 1351b according to an embodiment of the present invention forcibly delays the message publication request received from the first user device 10 during the maximum delay time of message transmission based on the delay allocation parameter, and processes the requested publication message. is accumulated in the message buffer, and when the delay time has elapsed, the accumulated messages are batch-processed to form one serialized RTPS merge message, and the configured RTPS merge message is converted into a communication packet through the transceiver 1351d and the communication interface unit (1354) can be output.

이러한 RTPS 병합 메시지는, DDS에서 정의된 RTPS 표준 규격을 그대로 따르므로 상호 운용성에 영향을 미치지 않으며, 수신 측에서는 RTPS 병합 메시지에 포함된 메시지들의 시작점부터 종료점까지의 직렬화된 데이터를 각각 취득할 수 있으므로, 실시간 배칭 전송 및 수신 처리가 가능하게 된다.Since this RTPS merge message follows the RTPS standard defined in DDS as it is, interoperability is not affected, and the receiver can acquire serialized data from the start point to the end point of the messages included in the RTPS merge message, respectively. Real-time batch transmission and reception processing becomes possible.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 앞서 서술한 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장할 수 있다.Accordingly, the serialization unit 1351b according to an embodiment of the present invention can solve the aforementioned performance degradation due to frequent I/O and waste of bandwidth required for expressing protocol metadata and headers, and at the same time guarantee real-time performance. can

도 11은 이러한 본 발명의 실시 예에 따른 직렬화부(1351b)의 처리에 따른 패킷 처리부(1351)의 동작을 설명하기 위한 흐름도이다.11 is a flowchart for explaining the operation of the packet processing unit 1351 according to the processing of the serialization unit 1351b according to an embodiment of the present invention.

도 11을 참조하면, 본 발명의 실시 예에 따른 직렬화부(1351b)는 이벤트 처리부(1352)의 이벤트가 발생되어 전달되면(S101), 메시지 발간 이벤트인지 판단한다(S103).Referring to FIG. 11 , when an event of the event processing unit 1352 is generated and delivered (S101), the serializer 1351b according to an embodiment of the present invention determines whether it is a message publication event (S103).

메시지 발간 이벤트인 경우, 직렬화부(1351b)는 발간 메시지에 동일한 GUID를 갖는 시퀀스를 부여하고, 메시지 버퍼에 삽입 처리한다(S109).In the case of a message publication event, the serialization unit 1351b assigns a sequence having the same GUID to the publication message and inserts the sequence into the message buffer (S109).

예를 들어, 발간 메시지에 할당된 시퀀스는 1, 2, 3 과 같은 일련번호일 수 있으며, 메시지 버퍼에 삽입되는 모든 메시지들은 동일한 발간자 식별자(GUID)에 매칭될 수 있다.For example, a sequence assigned to a publication message may be a serial number such as 1, 2, 3, and all messages inserted into the message buffer may be matched to the same publisher identifier (GUID).

그리고, 직렬화부(1351b)는 메시지 버퍼가 가득 찼는지 판단하고(S111), 가득 찬 경우 버퍼링된 메시지의 배칭 처리를 수행한다(S113). 만약 가득 차지 않은 경우에는 일정 지연 할당 주기 시간까지 발간 이벤트 발생을 대기 처리할 수 있다.Then, the serializer 1351b determines whether the message buffer is full (S111), and if it is full, performs batch processing of the buffered messages (S113). If it is not full, the publication event may be processed by waiting until a certain delay allocation cycle time.

여기서, 직렬화부(1351b)는 버퍼링된 메시지 배칭 처리를 위해, 동일 발간자 식별자(GUID)에 매칭된 하나의 RTPS 메시지에 일련번호 시퀀스가 할당된 복수의 서브메시지들을 포함시키는 처리를 수행할 수 있다.Here, the serializer 1351b may perform a process of including a plurality of submessages to which a serial number sequence is assigned to one RTPS message matched with the same publisher identifier (GUID) for buffered message batching processing. .

그리고, 직렬화부(1351b)는 배칭된 메시지를 송수신부(1351d)로 전달하며, 송수신부(1351d)에서는 패킷화 처리하여 통신 인터페이스부(1354)를 통해 외부 네트워크로 전송한다(S115).Then, the serializer 1351b transmits the batched message to the transceiver 1351d, and the transceiver 1351d processes the packetized message and transmits it to an external network through the communication interface unit 1354 (S115).

한편, 본 발명의 실시 예에 따르면 전술한 바와 같이 지연 할당(LATENCY_BUDGET) QoS 파라미터가 설정될 수 있다.Meanwhile, according to an embodiment of the present invention, as described above, a delay allocation (LATENCY_BUDGET) QoS parameter may be set.

이에 따라, S103 단계에서 발생된 이벤트가 메시지 발간 이벤트가 아닌 것으로 확인되는 경우, 직렬화부(1351b)는 지연 할당 주기 이벤트로 판별하며, 메시지 버퍼에 지연 할당 시간 이상으로 대기된 메시지가 존재하는지 확인한다(S105).Accordingly, when it is confirmed that the event generated in step S103 is not a message publication event, the serializer 1351b determines that it is a delay allocation cycle event, and checks whether a message waiting for more than the delay allocation time exists in the message buffer. (S105).

만약 지연 할당 시간으로 대기된 메시지가 존재하는 경우, 직렬화부(1351b)는 현재까지 버퍼링된 메시지의 배칭 처리(S113) 및 전송 처리(S115)를 수행한다.If there is a message waiting for the delay allocation time, the serialization unit 1351b performs batching processing (S113) and transmission processing (S115) of the messages buffered so far.

그러나, 아직 지연 할당 이상 대기된 메시지가 존재하지 않으면 직렬화부(1351b)는 지연 할당에 따른 주기적 이벤트를 재예약 처리하여(S107), 지연 할당 시간 이상으로 초과 지연되는 데이터는 없도록 처리할 수 있다.However, if there is no message waiting longer than the delay allocation, the serializer 1351b may re-schedule the periodic event according to the delay allocation ( S107 ), so that there is no data delayed more than the delay allocation time.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)의 배칭 처리는 실시간성을 보장할 수 있으며 특히 지연 할당(LATENCY_BUDGET) QoS 파라미터 설정을 통하여, 특정 파라미터에 의해 보장된 지연 한도 내에서의 최대 메시지 처리량을 확보할 수 있게 된다.Accordingly, the batching processing of the serialization unit 1351b according to the embodiment of the present invention can guarantee real-time, and in particular, through the setting of the delay allocation (LATENCY_BUDGET) QoS parameter, the maximum within the delay limit guaranteed by the specific parameter. Message throughput can be secured.

한편, 다시 도 8을 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 입출력 패스스루 활성화부(1351a)를 포함한다.Meanwhile, referring to FIG. 8 again, the packet processing unit 1351 according to the embodiment of the present invention includes an input/output pass-through activation unit 1351a.

본 발명의 실시 예에 따른 라우팅 서비스 장치(100) 및 미들웨어 디바이스(300)는, 복잡한 DDS의 기능들을 구현하는 복잡도를 낮추기 위해 복수의 처리부로 구분될 수 있으며, 각 처리부는 다른 처리부와 흐름 연계를 위한 일부 로직을 제외하면, 대부분의 로직이 다른 처리부와 독립적으로 구동될 수 있다. 따라서, 본 발명의 실시 예에 따른 라우팅 서비스 장치(100) 및 미들웨어 디바이스(300)는 각각의 처리부에 자체적인 프로세서가 포함될 수 있고, 각 프로세서는 각각의 프로세스 스레드를 처리함으로써 동시에 여러 작업이 수행되도록 하여 대량의 메시지 발간/구독 요청에 대응할 수 있다.The routing service apparatus 100 and the middleware device 300 according to an embodiment of the present invention may be divided into a plurality of processing units in order to reduce the complexity of implementing complex DDS functions, and each processing unit performs flow linkage with other processing units. Except for some logic for , most of the logic can be driven independently of other processing units. Accordingly, the routing service apparatus 100 and the middleware device 300 according to an embodiment of the present invention may include their own processors in each processing unit, and each processor processes each process thread so that several tasks are performed at the same time. In this way, it is possible to respond to a large number of message publication/subscription requests.

그러나, 한 처리부에서 다음 처리부로 처리 흐름이 변경될 때 지연시간이 발생한다. 이는 이벤트 전달 시작 및 종료 시점에서 발생하는 다음 처리부와의 스레드 간 통신으로 발생하는 지연과, 그리고 다음 처리부의 스레드가 대기 상태였을 경우 해당 스레드가 다시 시작되기까지의 지연으로 인해 발생될 수 있다.However, a delay occurs when the flow of processing is changed from one processing unit to the next processing unit. This may be caused by a delay caused by inter-thread communication with the next processing unit that occurs at the start and end of event delivery, and a delay until the corresponding thread is restarted when the next processing unit's thread is in the waiting state.

이러한 지연 발생을 최소화하기 위하여, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 단일 처리부의 스레드 구동을 통해, 각 처리부간 이벤트 전달 시작 또는 종료 스레드 생성 없이, 곧바로 작업을 처리하여 불필요한 지연시간이 발생하는 것을 최소화 할 수 있으며, 이러한 입출력 패스스루 기능의 활성화 여부를 판단하여 ON 또는 OFF 처리할 수 있다.In order to minimize the delay, the input/output pass-through activation unit 1351a according to an embodiment of the present invention directly processes the task without creating a thread to start or end event transfer between each processing unit through thread driving of a single processing unit. The occurrence of unnecessary delay time can be minimized, and it can be processed ON or OFF by determining whether the input/output pass-through function is activated.

예를 들어, 입출력 패스스루를 활성화 한 경우, 한 처리부의 스레드를 사용하여 메시지의 최종 처리까지 진행하므로 병렬 처리는 불가능하게 되며, 그 결과 다량의 메시지 처리 성능을 감소할 수 있다. 따라서, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 따라서 처리량과 지연시간을 모두 최적화하기 위해 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.For example, when I/O pass-through is enabled, parallel processing becomes impossible because a message is processed until the final processing using a thread of one processing unit, and as a result, processing performance of a large amount of messages may be reduced. Accordingly, the input/output pass-through activation unit 1351a according to an embodiment of the present invention may dynamically change whether to activate the input/output pass-through in order to optimize both throughput and delay time.

도 12는 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)의 동작을 예시적으로 설명하기 위한 흐름도이다.12 is a flowchart for exemplarily explaining the operation of the input/output pass-through activation unit 1351a according to an embodiment of the present invention.

도 12를 참조하면, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 처리량과 지연시간을 모두 최적화하기 위해 RTPS 패킷 송수신 시간 기록의 시각차 평균 시간과, RTPS 패킷 1개의 송수신 처리 시간을 비교하여, 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.Referring to FIG. 12 , the input/output pass-through activation unit 1351a according to an embodiment of the present invention optimizes both the throughput and the delay time. By comparing , it is possible to dynamically change whether input/output pass-through is activated.

보다 구체적으로, 먼저 입출력 패스스루 활성화부(1351a)는 RTPS 패킷의 송수신 시간 정보를 누적 기록한다(S201).More specifically, first, the input/output pass-through activation unit 1351a accumulates and records transmission/reception time information of the RTPS packet (S201).

그리고, 입출력 패스스루 활성화부(1351a)는 시간 기록이 32회 이상 측정되었는지 판단한다(S203).Then, the input/output pass-through activation unit 1351a determines whether the time recording is measured 32 times or more ( S203 ).

여기서, 시간 기록의 측정 회수는 네트워크 환경에 따라 상이할 수 있다.Here, the number of times recorded may be different depending on the network environment.

그리고, 입출력 패스스루 활성화부(1351a)는 측정된 RTPS 패킷의 각 패킷 간 시각차 평균 값이, 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인지 판단한다(S205).Then, the input/output pass-through activation unit 1351a determines whether the measured average value of the time difference between packets of the RTPS packets is within a preset transmission/reception processing time of one RTPS packet ( S205 ).

만약 시각차 평균이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인 경우, 입출력 패스스루로 처리되는 현재 패킷의 개수가 대량인 것으로 판단될 수 있으며, 이에 따라 대랑 메시지 처리에 효율적인 병렬 프로세스를 적용하기 위해 입출력 패스스루 활성화부(1351a)는 입출력 패스스루 기능을 비활성화 처리할 수 있다(S207).If the time difference average is within the pre-set transmission/reception processing time of one RTPS packet, it may be determined that the number of current packets processed through input/output pass-through is large. The pass-through activation unit 1351a may deactivate the input/output pass-through function (S207).

반면, 시각차 평균 값이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간을 초과하는 경우에는 직렬 메시지 처리가 지연 시간을 최소화할 수 있으므로, 입출력 패스스루 활성화부(1351a)는 입출력 패스스루 기능을 활성화한다(S209).On the other hand, if the time difference average value exceeds the preset transmission/reception processing time of one RTPS packet, the serial message processing can minimize the delay time, so the input/output pass-through activation unit 1351a activates the input/output pass-through function (S209) ).

이와 같이, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 지연 시간을 메시지의 실시간 전송 상황 따라 최소화할 수 있으며, 특히 대량의 메시지 처리 시에는 메시지를 각 처리부가 병렬로 처리하는 것이 지연시간을 최소화 할 수 있으므로, 입출력 패스스루를 비활성하고, 소량의 메시지 처리 시에는 이벤트 전달 시작/종료의 오버헤드가 크게 작용하는 것이 예상되므로, 입출력 패스스루를 활성화하여 지연시간을 최소화할 수 있는 것이다.In this way, the input/output pass-through activation unit 1351a according to the embodiment of the present invention can minimize the delay time according to the real-time transmission situation of the message. In particular, when processing a large number of messages, each processing unit processes the message in parallel Since it is possible to minimize the delay time, it is expected that I/O pass-through is disabled, and the overhead of event delivery start/end is expected to be large when processing a small amount of messages. there will be

한편, 다시 도 8을 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 입출력 트래픽 지연 제어부(1351c)를 포함할 수 있다.Meanwhile, referring to FIG. 8 again, the packet processing unit 1351 according to an embodiment of the present invention may include an input/output traffic delay control unit 1351c.

송수신부(1351d)는, 직렬화부(1351b)에서 처리된 데이터를 패킷화하여 외부 네트워크로 패킷을 송신할 수 있다. 다만, 통신 인터페이스부(1354)의 네트워크 인터페이스의 대역폭이 실제 네트워크의 대역폭보다 클 경우, 실제 네트워크의 대역폭 초과분에 해당하는 패킷은 모두 유실되는 문제점이 발생될 수 있다.The transceiver 1351d may packetize the data processed by the serializer 1351b and transmit the packet to an external network. However, when the bandwidth of the network interface of the communication interface unit 1354 is greater than the bandwidth of the actual network, all packets corresponding to the excess of the bandwidth of the actual network may be lost.

유실된 패킷을 복구하기 위해 송수신부(1351d)는 재전송 처리를 시작할 수 있다. 그러나 재전송 처리 역시 네트워크로 패킷을 송신하는 행위이기 때문에, 재전송 과정에서 대역폭 초과분이 발생한 만큼 일부 재전송 패킷 또한 유실될 수 있으며, 일부 유실된 재전송 패킷을 다시 재전송해야 하는 악순환이 통신 성능의 저하를 야기한다.In order to recover the lost packet, the transceiver 1351d may start a retransmission process. However, since the retransmission process is also an act of transmitting packets to the network, some retransmission packets may also be lost as much as bandwidth excess occurs in the retransmission process, and a vicious cycle of retransmitting some lost retransmission packets causes deterioration of communication performance. .

이에 따라, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 직렬화부(1351b) 및 송수신부(1351d) 사이를 연결할 수 있으며, 송신 시간 지연을 통해 송신 대역폭이 일정하게 제어될 수 있도록 하여, 대역폭 초과분에 따른 패킷 유실을 방지할 수 있다. 이러한 최대 대역폭 허용량은 실제 네트워크 환경에 따라 달라질 수 있으며 사용자 설정에 따라 사전 결정될 수 있다.Accordingly, the traffic delay control unit 1351c according to an embodiment of the present invention can connect between the serialization unit 1351b and the transceiver 1351d, so that the transmission bandwidth can be constantly controlled through the transmission time delay, Packet loss due to excess bandwidth can be prevented. This maximum bandwidth allowance may vary depending on the actual network environment and may be predetermined according to user settings.

도 13은 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)의 동작을 설명하기 위한 흐름도이다.13 is a flowchart for explaining the operation of the traffic delay control unit 1351c according to an embodiment of the present invention.

도 13을 참조하면, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 직렬화부(1351b)로부터 직렬화된 메시지 데이터가 전달되면(S310), 현재 시간이 사전 설정된 대역폭에 따른 지연 시간 이내인지 판단한다(S303).Referring to FIG. 13 , when serialized message data is transmitted from the serialization unit 1351b ( S310 ), the traffic delay control unit 1351c according to an embodiment of the present invention determines whether the current time is within a delay time according to a preset bandwidth. do (S303).

그리고, 트래픽 지연 제어부(1351c)는 허용량 이내인 경우에는 송수신부(1351d)로 메시지를 전달하며(S305), 허용량을 초과하는 경우 일정 시간 동안 전송 지연을 처리하며(S307), 지연된 메시지는 전송 지연 시간 이후 송수신부(1351d)로 전달될 수 있다.Then, the traffic delay control unit 1351c transmits the message to the transceiver 1351d if it is within the allowable amount (S305), and if it exceeds the allowable amount, processes the transmission delay for a certain period of time (S307), and delays the transmission of the delayed message After a time, it may be transmitted to the transceiver 1351d.

보다 구체적으로, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 상기 S303 단계에서, 하기의 수학식 3을 이용하여, 현재 시점이 사전 설정된 대역폭에 따른 지연 시간 이내인지 여부를 판단할 수 있다.More specifically, in step S303, the traffic delay control unit 1351c according to an embodiment of the present invention may determine whether the current time point is within a delay time according to a preset bandwidth using Equation 3 below. .

Figure pat00003
Figure pat00003

이와 같은 수학식 3은, n개의 패킷을 송신하였을 때, 패킷 전송이 가능한 시간 T_open을 연산하는 프로세스를 나타내고 있으며, 트래픽 지연 제어부(1351c)는 패킷 전송이 가능한 시간 이내인지 여부에 따라 메시지 전송의 지연여부 및 지연 시간을 결정할 수 있다.Equation 3 as described above shows a process of calculating the time T_open during which packet transmission is possible when n packets are transmitted. You can decide whether or not to delay.

보다 구체적으로, T_open은 패킷 전송이 가능한 시간을 나타내며, T_current가 T_open보다 이전일 경우, 패킷 전송은 지연될 수 있다.More specifically, T_open indicates a time during which packet transmission is possible, and when T_current is earlier than T_open, packet transmission may be delayed.

T_current는 현재 시간을 나타낼 수 있으며, UNIX Epoch Timestamp를 나노초 해상도로 표현한 값이 예시될 수 있다. 예를 들어 2019년 10월 1일 16시 30분에 대응하는 T_current는 1,569,915,000,000,000,000 값을 가질 수 있다.T_current may represent the current time, and a value representing the UNIX Epoch Timestamp with nanosecond resolution may be exemplified. For example, T_current corresponding to 16:30 on October 1, 2019 may have a value of 1,569,915,000,000,000,000.

그리고, B는 미들웨어 디바이스(300)가 사용하는 네트워크 인터페이스의 최대 대역폭 값을 bps(bit per second)로 나타내는 값일 수 있다. 최대 대역폭 값은 트래픽 지연 제어부(1351c)가 통신 인터페이스부(1354)로부터 식별하여 감지하거나, 별도로 사용자에 의해 지정될 수도 있다.And, B may be a value representing the maximum bandwidth value of the network interface used by the middleware device 300 in bits per second (bps). The maximum bandwidth value may be detected by the traffic delay control unit 1351c by identifying it from the communication interface unit 1354, or may be separately designated by the user.

그리고, 10^9 / B 는 비트슬라이스를 나타내는 것으로, 네트워크 장치의 대역폭이 1비트를 보내는데 걸리는 나노초를 의미할 수 있다.And, 10^9 / B represents a bit slice, and may mean nanoseconds required for the bandwidth of a network device to transmit 1 bit.

그리고, L_i는 i번째 패킷의 크기를 나타낼 수 있으며, 패킷 크기 Li는 바이트 단위이므로, 패킷 크기의 단위를 비트로 통합하기 위해 패킷 크기에 8을 곱한 값이 누적 합산되도록 정의될 수 있다.In addition, L_i may indicate the size of the i-th packet, and since the packet size Li is a byte unit, a value obtained by multiplying the packet size by 8 to integrate the packet size unit into bits may be defined to be cumulatively summed.

이와 같이 제안된 수학식 1을 참조하면, 트래픽 지연 제어부(1351c)는, 사전 설정된 최대 대역폭 내에서 패킷 전송이 발생하여, Tx 트래픽이 발생하였을 때, 나노 초 단위로 구분된 비트슬라이스가 얼마나 사용되는지를 연산하여, 패킷 전송이 가능한 시간 T_open을 연산할 수 있다.Referring to Equation 1 proposed in this way, the traffic delay controller 1351c determines how much bit slices divided in nanoseconds are used when Tx traffic occurs due to packet transmission occurring within a preset maximum bandwidth. By calculating , it is possible to calculate the time T_open during which packet transmission is possible.

예를 들어, 트래픽 지연 제어부(1351c)는 현재 측정한 T_current가 마지막으로 계산한 T_open보다 작다면 T_open - T_current 값 만큼의 지연 시간 동안 전송을 지연처리할 수 있는 것이다.For example, if the currently measured T_current is smaller than the last calculated T_open, the traffic delay control unit 1351c may delay transmission for a delay time equal to the T_open - T_current value.

도 14는 트래픽 지연 제어부(1351c)의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.14 is a flowchart illustrating in more detail an operation process for calculating the delay time of the traffic delay control unit 1351c.

도 14를 참조하면, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 초기 T_open은 0으로 입력하고, T_current를 현재 값으로 갱신한다(S401).Referring to FIG. 14 , the traffic delay control unit 1351c according to an embodiment of the present invention inputs an initial T_open of 0 and updates T_current to a current value (S401).

그리고, 트래픽 지연 제어부(1351c)는 T_current가 T_open 보다 큰지 판단한다(S403).Then, the traffic delay control unit 1351c determines whether T_current is greater than T_open (S403).

만약 T_current가 T_open 보다 작은 경우, 트래픽 지연 제어부(1351c)는 T_open - T_current 값의 차이가 1ms 이하인지 판단한다(S405).If T_current is smaller than T_open, the traffic delay control unit 1351c determines whether a difference between T_open - T_current values is 1 ms or less (S405).

만약 T_open - T_current 값의 차이가 1ms 보다 큰 경우, 트래픽 지연 제어부(1351c)는 T_open이 T_current보다 작은지 판단한다(S407).If the difference between T_open - T_current is greater than 1 ms, the traffic delay controller 1351c determines whether T_open is less than T_current (S407).

T_open이 T_current보다 작지 않으면, 트래픽 지연 제어부(1351c)는 전송 대기를 처리하고, T_current로 T_open 값을 갱신한다(S409).If T_open is not smaller than T_current, the traffic delay control unit 1351c processes transmission standby and updates the T_open value to T_current (S409).

한편, S403 단계에서 T_current가 T_open보다 큰 경우, 트래픽 지연 제어부(1351c)는 T_current - T_open 값의 차이가 1ms 이하인지 판단한다(S411).Meanwhile, when T_current is greater than T_open in step S403 , the traffic delay control unit 1351c determines whether a difference between the values of T_current - T_open is 1 ms or less ( S411 ).

만약 상기 S407 단계에서 T_open이 T_current보다 작거나, T_current - T_open 값의 차이가 1ms 이하가 아닌 경우에는 T_current를 다시 갱신하며(S413), T_open을 다시 갱신한다(S415).If T_open is smaller than T_current or the difference between T_current and T_open is not less than 1 ms in step S407, T_current is updated again (S413) and T_open is updated again (S415).

이와 같은 처리에 따라, 송신 대기가 너무 자주 일어나지 않도록 T_open 값 및 T_current 값이 조절될 수 있다. 특히, 현재 시간이 가장 마지막으로 패킷을 송신한 시간으로부터 1 밀리초 이상 경과한 경우는 송신대기 처리 흐름이 발생하지 않도록 T_open 값은 T_current 값으로 갱신 처리될 수 있다.According to such processing, the T_open value and the T_current value may be adjusted so that transmission standby does not occur too often. In particular, when the current time has elapsed more than 1 millisecond from the last packet transmission time, the T_open value may be updated to the T_current value so that the transmission standby processing flow does not occur.

한편, 다시 도 8을 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 송수신부(1351d)를 포함하며, 송수신부(1351d)는 직렬화부(1351b) 및 트래픽 지연 제어부(1351c)를 통해 수신된 발간 메시지를 패킷화하여 통신 인터페이스부(1354)를 통해 외부 네트워크로 전송하거나, 외부의 패킷을 수신하여 직렬화부(1351b)로 전달하여 역직렬화된 구독 메시지가 메시지 처리부(1353)를 통해 제1 사용자 장치(10)로 전달되도록 처리할 수 있다.Meanwhile, referring back to FIG. 8 , the packet processing unit 1351 according to an embodiment of the present invention includes a transceiver 1351d, and the transceiver 1351d includes a serialization unit 1351b and a traffic delay control unit 1351c. The received message is packetized and transmitted to an external network through the communication interface unit 1354, or an external packet is received and delivered to the serializer 1351b, and the deserialized subscription message is transmitted through the message processing unit 1353. It may be processed to be transmitted to the first user device 10 .

이와 같은 구성을 통해, 본 발명의 실시 예에 따른 라우팅 서비스 장치(100)는, 실시간성을 유지할 수 있는 메시지 배칭 처리와 입출력 처리 패스스루 프로세스 및 트래픽 지연 제어 처리를 제공할 수 있다.Through such a configuration, the routing service apparatus 100 according to an embodiment of the present invention may provide message batching processing, input/output processing pass-through processing, and traffic delay control processing capable of maintaining real-time performance.

상술한 본 발명의 다양한 실시 예들에 따른 방법은 프로그램으로 구현되어 다양한 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장된 상태로 각 서버 또는 기기들에 제공될 수 있다. 이에 따라, 사용자 단말(100)은 서버 또는 기기에 접속하여, 상기 프로그램을 다운로드할 수 있다.The above-described method according to various embodiments of the present invention may be implemented as a program and provided to each server or device while being stored in various non-transitory computer readable media. Accordingly, the user terminal 100 may access the server or device to download the program.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, and the like, and can be read by a device. Specifically, the above-described various applications or programs may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention as claimed in the claims In addition, various modifications are possible by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present invention.

Claims (7)

WAN 네트워크를 통해 연결되는 제1 사용자 장치, DDS 미들웨어 디바이스 및 DDS 라우팅 서비스 장치를 포함하는 제1 LAN 네트워크; 및 제1 LAN 네트워크와 동일한 구성을 포함하는 원격지의 제2 LAN 네트워크를 포함하는 DDS(Data Distribution Service) 라우팅 서비스 시스템에 있어서,
상기 DDS 라우팅 서비스는,
제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 통신 처리 기능을 수행하고,
상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 토픽 기반 우선순위 데이터 제어를 이용한 데이터 효율 관리 처리를 수행하는 데이터 관리를 수행하되,
우선 순위 설정 정보에 따라 DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 패킷 데이터의 우선 순위를 제어하는 프로세스를 수행하고,
DDS 라우팅 서비스 장치로부터 사용자가 지정한 우선 순위 설정 정보를 획득하여 우선 순위 설정 정보를 결정 및 전달하며, 결정된 우선 순위에 기반한 우선 순위 큐 관리를 처리하고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 하는
DDS 라우팅 서비스 시스템.
a first LAN network including a first user equipment connected through a WAN network, a DDS middleware device, and a DDS routing service apparatus; And a DDS (Data Distribution Service) routing service system comprising a second LAN network at a remote location having the same configuration as the first LAN network,
The DDS routing service,
Performs a communication processing function of routing DDS traffic data of a middleware device connected through a first local network to a middleware device connected to a second local network located in a remote location different from the first local network through a wide area network,
In response to the routed DDS traffic data, performing data management that performs data efficiency management processing using topic-based priority data control,
Provides the function to specify the priority of each DDS topic according to the priority setting information, and performs the process of controlling the priority of packet data according to the determined priority,
It acquires the user-specified priority setting information from the DDS routing service device, determines and delivers the priority setting information, processes the priority queue management based on the determined priority, and transmits the packets corresponding to the priority queue first to be processed
DDS Routing Service System.
제1항에 있어서,
상기 우선 순위 설정 정보는, 우선순위 결정 규칙 정보 및 상기 우선 순위 결정 규칙에 대응하는 패턴 별 우선순위 정보를 포함하는
DDS 라우팅 서비스 시스템.
The method of claim 1,
The priority setting information includes priority determination rule information and priority information for each pattern corresponding to the priority determination rule
DDS Routing Service System.
제2항에 있어서,
상기 우선순위 결정 규칙 정보는 토픽 타입 정보를 포함하고, 상기 패턴별 우선순위 정보는 지정된 문자열 패턴별 우선 순위 레벨 정보를 포함하는
DDS 라우팅 서비스 시스템.
3. The method of claim 2,
The priority determination rule information includes topic type information, and the priority information for each pattern includes priority level information for each specified string pattern.
DDS Routing Service System.
제1항에 있어서,
상기 우선 순위 제어는,
결정된 우선 순위에 기반한 우선 순위 큐 관리를 처리하고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 하는
DDS 라우팅 서비스 시스템.
The method of claim 1,
The priority control is
It processes priority queue management based on the determined priority and prioritizes transmission and processing of packets corresponding to the priority queue.
DDS Routing Service System.
제1항에 있어서,
상기 우선 순위가 지정된 패킷은 DDS RTPS 패킷의 DATA 패킷 중 사용자가 정의한 토픽에 해당하는 토픽 패킷인
DDS 라우팅 서비스 시스템.
The method of claim 1,
The priority packet is a topic packet corresponding to a user-defined topic among the DATA packets of the DDS RTPS packet.
DDS Routing Service System.
제1항에 있어서,
상기 우선 순위 제어는, 상기 우선 순위 설정 정보로부터 획득되는 우선 순위 타입 정보 및 레벨 정보에 기초하여, 가장 높은 순위의 데이터 큐 Q_i에 대응한 현재 패킷의 우선순위 확률 값 P_i를 연산하고, 상기 P_i 확률 값과 현재 데이터 큐 선정 기준값 C_current를 비교하여 우선 순위 큐 패킷의 우선 출력 여부를 결정하는
DDS 라우팅 서비스 시스템.
The method of claim 1,
The priority control includes calculating a priority probability value P_i of a current packet corresponding to the highest priority data queue Q_i based on priority type information and level information obtained from the priority setting information, and the P_i probability It compares the value and the current data queue selection standard value C_current to determine whether or not to output priority queue packets.
DDS Routing Service System.
제1항에 있어서,
상기 통신 처리는, 상기 트래픽 데이터의 메시지 기반 제어 처리를 수행하는 트래픽을 제어하되,
상기 트래픽 제어는,
사용자 장치로부터 수신되는 메시지 요청을 라우팅 서비스 장치로 전달하고, 라우팅 서비스 장치로부터 수신되는 메시지를 직렬화 처리하여 네트워크로 전송하는 패킷 처리를 수행하고,
상기 패킷 처리는,
발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는
DDS 라우팅 서비스 시스템.
The method of claim 1,
The communication processing, but controlling the traffic for performing the message-based control processing of the traffic data,
The traffic control is
The message request received from the user device is transferred to the routing service device, the message received from the routing service device is serialized, and the packet is transmitted to the network.
The packet processing is
Serializes the message requested to be published in a format according to the RTPS (Real Time Publish Subscribe) standard, but batches a plurality of messages accumulated in the message buffer into a sub-message of one RTPS message.
DDS Routing Service System.
KR1020200147228A 2020-08-27 2020-11-06 A dds routing service system for providing processing a data priority control based on topic KR20220027714A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200108869 2020-08-27
KR1020200108869 2020-08-27

Publications (1)

Publication Number Publication Date
KR20220027714A true KR20220027714A (en) 2022-03-08

Family

ID=80813288

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200147237A KR20220027716A (en) 2020-08-27 2020-11-06 Recording medium
KR1020200147228A KR20220027714A (en) 2020-08-27 2020-11-06 A dds routing service system for providing processing a data priority control based on topic
KR1020200147233A KR20220027715A (en) 2020-08-27 2020-11-06 A dds routing service program that provide processing a data priority control based on topic

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200147237A KR20220027716A (en) 2020-08-27 2020-11-06 Recording medium

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020200147233A KR20220027715A (en) 2020-08-27 2020-11-06 A dds routing service program that provide processing a data priority control based on topic

Country Status (1)

Country Link
KR (3) KR20220027716A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115250287A (en) * 2022-06-23 2022-10-28 重庆长安汽车股份有限公司 Automatic adaptation method and system based on DDS multiport

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115913809B (en) * 2022-09-26 2024-05-03 重庆长安汽车股份有限公司 Data distribution communication method, system, computer device and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115250287A (en) * 2022-06-23 2022-10-28 重庆长安汽车股份有限公司 Automatic adaptation method and system based on DDS multiport
CN115250287B (en) * 2022-06-23 2023-08-04 重庆长安汽车股份有限公司 Automatic adaptation method based on DDS multiple ports

Also Published As

Publication number Publication date
KR20220027715A (en) 2022-03-08
KR20220027716A (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US9185047B2 (en) Hierarchical profiled scheduling and shaping
WO2020077680A1 (en) Data transmission method, system, and proxy server
US20120054362A1 (en) Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
CN112631788B (en) Data transmission method and data transmission server
US20140222960A1 (en) Method and Apparatus for Rapid Data Distribution
US8539089B2 (en) System and method for vertical perimeter protection
KR20220027714A (en) A dds routing service system for providing processing a data priority control based on topic
EP1124357A1 (en) Method and device for communicating between a first and a second network
JP4555345B2 (en) Communication network system having bus type network structure and data transmission / reception method using the same
US9083617B2 (en) Reducing latency of at least one stream that is associated with at least one bandwidth reservation
CN112838992A (en) Message scheduling method and network equipment
KR20220027708A (en) A method operating of a dds routing service providing apparatus processing a data priority control based on topic
KR20220027707A (en) A dds routing service providing apparatus processing a data priority control based on topic
KR20210073005A (en) A middleware apparatus operating method of data distribution services for providing a efficient message processing
KR20220027711A (en) A dds routing service system for providing processing intelligent topic compression
KR20220027705A (en) A dds routing service providing apparatus processing intelligent topic compression
KR20220027706A (en) A method operating of a dds routing service providing apparatus processing intelligent topic compression
KR102211005B1 (en) A middleware apparatus of data distribution services for providing a efficient message processing
Paikan et al. Communication channel prioritization in a publish-subscribe architecture
KR102231481B1 (en) A middleware apparatus of data distribution services for providing a efficient message loss detection and retransmission processing
KR20210073031A (en) Program for operation of a middleware apparatus that data distribution services for providing a efficient message processing
KR20210073029A (en) Recording Medium
KR20210073004A (en) Middleware system of data distribution services for providing a efficient message processing
KR20210073034A (en) Middleware system of data distribution services for providing a efficient message loss detection and retransmission processing
KR20210073046A (en) Recording Medium