KR20210073005A - A middleware apparatus operating method of data distribution services for providing a efficient message processing - Google Patents

A middleware apparatus operating method of data distribution services for providing a efficient message processing Download PDF

Info

Publication number
KR20210073005A
KR20210073005A KR1020190163423A KR20190163423A KR20210073005A KR 20210073005 A KR20210073005 A KR 20210073005A KR 1020190163423 A KR1020190163423 A KR 1020190163423A KR 20190163423 A KR20190163423 A KR 20190163423A KR 20210073005 A KR20210073005 A KR 20210073005A
Authority
KR
South Korea
Prior art keywords
message
rtps
time
transmission
packet
Prior art date
Application number
KR1020190163423A
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 (주)구름네트웍스
Priority to KR1020190163423A priority Critical patent/KR20210073005A/en
Publication of KR20210073005A publication Critical patent/KR20210073005A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L67/2842
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

A method for operating a data distribution service (DDS) middleware device for providing efficient message processing comprises the steps of: transmitting a message request, received from a user device, to an event processing unit; and serializing a message received from the event processing unit and transmitting the same to a network through a communication interface unit. The transmitting step includes a serialization step of serializing the message, requested to be published, in a format according to a real time publish subscribe (RTPS) standard, but batching a plurality of messages, accumulated in a message buffer, to a sub-message of one RTPS message. Therefore, the method can implement low latency time.

Description

효율적 메시지 처리를 제공하는 DDS 미들웨어 장치의 동작 방법{A MIDDLEWARE APPARATUS OPERATING METHOD OF DATA DISTRIBUTION SERVICES FOR PROVIDING A EFFICIENT MESSAGE PROCESSING }A MIDDLEWARE APPARATUS OPERATING METHOD OF DATA DISTRIBUTION SERVICES FOR PROVIDING A EFFICIENT MESSAGE PROCESSING }

본 발명은 데이터 분산 서비스의 미들웨어 장치의 동작 방법에 관한 것이다. 보다 구체적으로, 본 발명은 효율적 메시지 처리를 제공하는 데이터 분산 서비스 미들웨어(DDS) 장치의 동작 방법에 관한 것이다.The present invention relates to a method of operating a middleware device for a data distribution service. More specifically, the present invention relates to a method of operating a data distribution service middleware (DDS) device that provides efficient message processing.

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 such 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.

다만, 컴퓨팅 자원은 제한적이기 때문에 이를 효율적으로 운용하려면 RTPS 및 OMG 표준에 의해 정의되는 DDS 미들웨어의 비효율적인 측면을 개선할 필요성이 있다.However, since computing resources are limited, it is necessary to improve the inefficient aspects of DDS middleware defined by RTPS and OMG standards to efficiently operate them.

예를 들어, DDS 미들웨어는 RTPS 표준에 따라 데이터를 RTPS Submessage 형태로 재표현해 네트워크로 메시지를 송신한다. 하지만 송신하는 메시지의 크기가 하나의 패킷이 포함할 수 있는 메시지의 최대 크기인 MTU(Maximum Transmission Unit)보다 작을 경우, 패킷 사용의 효율성이 저하되며, 이는 처리량의 저하로 이어진다.For example, DDS middleware transmits messages to the network by re-expressing data in the form of RTPS Submessage according to the RTPS standard. However, when the size of the transmitted message is smaller than the maximum transmission unit (MTU), which is the maximum size of a message that one packet can contain, the efficiency of using the packet decreases, which leads to a decrease in throughput.

또한, DDS 미들웨어는 22종에 달하는 다수의 QoS를 지원하기 위해 고도로 복잡한 통신 처리 로직을 내부적으로 수행한다. DDS 미들웨어는 통신 처리 로직을 단순화하기 위해 실행 중 복수의 스레드를 생성 후 스레드 단위로 태스크(Task)를 분배한다. 하지만 통신 태스크 처리 과정에서 발생하는 스레드 간 통신은 지연시간의 증가를 야기하여 통신의 실시간성을 저하시킨다.In addition, DDS middleware internally performs highly complex communication processing logic to support 22 types of QoS. To simplify communication processing logic, DDS middleware creates a plurality of threads during execution and then distributes tasks in units of threads. However, inter-thread communication that occurs in the process of processing a communication task causes an increase in delay time, thereby reducing real-time communication.

그리고, DDS의 표준 와이어 프로토콜인 RTPS는 TCP(Transmission Control Protocol)와 달리 흐름제어(Flow Control)에 관여하지 않는다. 따라서 칩의 네트워크 출력 속도가 인접 네트워크의 입력 속도보다 빠른 경우, 대역폭 초과분에 대해 모두 손실이 일어난다.In addition, RTPS, which is a standard wire protocol of DDS, does not participate in flow control, unlike Transmission Control Protocol (TCP). Therefore, if the network output speed of the chip is faster than the input speed of the adjacent network, loss occurs for the excess bandwidth.

한편, DDS의 표준 와이어 프로토콜인 RTPS는 다양한 DDS 구현 간의 상호운용성을 보장하기 위한 기본적인 메커니즘만을 다루고 있다. 이에 따른 문제로 높은 처리량과 낮은 지연시간을 만족시키기 어렵고, 실제 네트워크 망에 맞춰 트래픽을 제어할 방법이 명시되어 있지 않으며, 특히 저품질의 네트워크에서는 신뢰성 있는 통신(Reliable Communication) 방식의 성능이 크게 감소한다.Meanwhile, RTPS, the standard wire protocol for DDS, deals only with basic mechanisms to ensure interoperability between various DDS implementations. As a result, it is difficult to satisfy high throughput and low latency, and the method to control traffic according to the actual network is not specified. In particular, the performance of the reliable communication method is greatly reduced in low-quality networks. .

본 발명은 상기한 문제점들을 해결하고자 안출된 것으로, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 미들웨어 장치의 동작 방법을 제공하는 데 그 목적이 있다.The present invention has been devised to solve the above problems, overcomes the decrease in throughput and real-time communication due to the size limitation of the message, and prevents traffic loss and loss due to traffic flow control, thereby reducing the low latency. An object of the present invention is to provide an operating method of a DDS middleware device that implements and effectively enables real-time processing.

상기한 바와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 DDS(Data Distribution Service) 미들웨어 장치는, 사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 메시지 처리부; 및 상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리부를 포함하고, 상기 패킷 처리부는, 발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는 직렬화부를 포함한다.A data distribution service (DDS) middleware device according to an embodiment of the present invention for solving the above-described problems includes: a message processing unit that transmits a message request received from a user device to an event processing unit; and a packet processing unit that serializes the message received from the event processing unit and transmits it to a network through a communication interface unit, wherein the packet processing unit serializes the message requested to be published in a format according to the RTPS (Real Time Publish Subscribe) standard, but , and a serialization unit that batches a plurality of messages accumulated in the message buffer into sub-messages of one RTPS message.

상기한 바와 같은 과제를 해결하기 위한 DDS(Data Distribution Service) 미들웨어 장치의 동작 방법은, 사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 단계; 및 상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 단계를 포함하고, 상기 전송하는 단계는, 발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는 직렬화 단계를 포함한다.A method of operating a data distribution service (DDS) middleware device for solving the above-described problems includes: transmitting a message request received from a user device to an event processing unit; and serializing the message received from the event processing unit and transmitting it to the network through the communication interface unit, wherein the transmitting includes serializing the message requested to be published in a format according to the RTPS (Real Time Publish Subscribe) standard. , a serialization step of batching a plurality of messages accumulated in the message buffer to a sub-message of one RTPS message.

본 발명의 실시 예에 따르면, DDS 미들웨어 장치 및 그 동작 방법에 따라, 실시간 메시지 배칭 처리를 통해 지연 한도 내에서의 최대 메시지 처리량을 달성시킬 수 있다.According to an embodiment of the present invention, a maximum message throughput within a delay limit may be achieved through real-time message batching processing according to a DDS middleware device and an operating method thereof.

또한, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법은, 조건부 입출력 처리 패스스루 활성화를 처리하여 이벤트 오버헤드를 최소화하고, 이에 따른 지연시간의 최소화를 달성할 수 있다.In addition, the DDS middleware apparatus and the operating method thereof according to an embodiment of the present invention can process conditional input/output processing pass-through activation to minimize event overhead, and thus minimize delay time.

그리고, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법에 따라, 송신 대역폭을 제어하여 트래픽 흐름제어에 의한 대역폭 초과분 유실을 방지하고, 신뢰성있는 데이터 송수신 프로세스를 구현할 수 있다.In addition, according to the DDS middleware apparatus and the operating method thereof according to an embodiment of the present invention, it is possible to control the transmission bandwidth to prevent loss of excess bandwidth due to traffic flow control, and to implement a reliable data transmission/reception process.

이에 따라, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법은, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 미들웨어 장치 및 그 동작 방법을 제공할 수 있다.Accordingly, the DDS middleware device and the method of operation thereof according to an embodiment of the present invention overcome a decrease in throughput and a decrease in real-time communication due to a size limitation of a message, and prevent traffic loss and loss due to traffic flow control, Through this, it is possible to provide a DDS middleware device and an operating method thereof that implement low latency and effectively enable real-time processing.

도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2는 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.
도 3은 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 4는 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 5는 본 발명의 실시 예에 따른 직렬화부 처리에 따른 패킷 처리부의 동작을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 입출력 패스스루 활성화부의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시 예에 따른 트래픽 제어부의 동작을 설명하기 위한 흐름도이다.
도 8은 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
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 detailed configuration of a packet processing unit and a system operation according thereto according to an embodiment of the present invention.
3 is a diagram illustrating serialization of an RTPS message according to an embodiment of the present invention, and FIG. 4 is a diagram comparing serialization between an embodiment of the present invention and the prior art.
5 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.
6 is a flowchart illustrating an operation of an input/output pass-through activation unit according to an embodiment of the present invention.
7 is a flowchart illustrating an operation of a traffic controller according to an embodiment of the present invention.
8 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 which, 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. Moreover, 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 is also to 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 present 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, 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 combined 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, and accordingly, 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 describing 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을 참조하면, 본 발명의 실시 예에 따른 DDS 미들웨어 장치(100)는, 패킷 처리부(110), 이벤트 처리부(120) 및 메시지 처리부(130)를 포함하며, 패킷 처리부(110)는 통신 인터페이스부(140)를 통해 외부 네트워크와 연결될 수 있고, 메시지 처리부(130)는 사용자 장치(200)로부터 입력되는 메시지를 발간 처리하거나, 네트워크로부터 수신되는 메시지를 구독 처리하여 사용자 장치(200)로 전달할 수 있다.Referring to FIG. 1 , the DDS middleware device 100 according to an embodiment of the present invention includes a packet processing unit 110 , an event processing unit 120 , and a message processing unit 130 , and the packet processing unit 110 is a communication interface. It may be connected to an external network through the unit 140 , and the message processing unit 130 may publish a message input from the user device 200 , or subscribe to a message received from the network and deliver it to the user device 200 . have.

보다 구체적으로, 본 발명의 실시 예에 따른 미들웨어 장치(100)는, 표준화된 DDS(Dara Distribution Service) 규격에 따른 DCPS(Data Centric Publish Subscribe) 프로토콜과 RTPS(RealTime Publish Subscribe) 프로토콜을 이용한 통신 기능을 제공할 수 있다. DCPS는 표준화된 사용자 API 및 모델링을 규격하고 있으며, RTPS는 DDS 벤더간 상호운용이 가능한 통신 규약을 규격화하고 있다.More specifically, the middleware device 100 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.

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

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

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

이와 같은, 본 발명의 실시 예에서, 사용자 장치(200)에서 작성된 메시지 정보는 메시지 처리부(130)로 전달될 수 있으며, 전달된 메시지는 이벤트 처리부(120)를 통해 발간 처리되어 패킷 처리부(110)를 통해 패킷화되어 통신 인터페이스부(140)를 통해 외부 네트워크로 전송될 수 있다.As described above, in an embodiment of the present invention, message information written in the user device 200 may be transmitted to the message processing unit 130 , and the transmitted message is published and processed through the event processing unit 120 to be processed by the packet processing unit 110 . may be packetized and transmitted to an external network through the communication interface unit 140 .

여기서, 외부 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 개인 근거리 무선통신(Personal Area Network; PAN), 이동 통신망(mobile radiocommunication network) 또는 위성 통신망 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다. 다만, DDS 표준을 지원하기 위하여, 상기 외부 네트워크는 근거리 통신망 형태의 유/무선 네트워크로 구현되는 것이 바람직할 수 있다.Here, the external network is a local area network (LAN), a wide area network (WAN), a value added network (VAN), a personal local area network (PAN), a mobile communication network ( It can be implemented in all types of wired/wireless networks such as mobile radiocommunication network) or satellite communication networks. However, in order to support the DDS standard, it may be preferable that the external network be implemented as a wired/wireless network in the form of a local area network.

그리고, 메시지 처리부(130)는 사용자 장치(200)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부(120)를 통한 구독 메시지 처리를 통해 패킷 처리부(110)에서 통신 인터페이스부(140)로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부(120)를 통해 메시지 처리부(130)로 전달되어 사용자 장치(200)로 출력될 수 있다.In addition, when a DDS subscription message reception is requested from the user device 200 , the message processing unit 130 receives a packet received from the communication interface unit 140 in the packet processing unit 110 through the subscription message processing through the event processing unit 120 . Inverse transformation is processed with this subscription message. In addition, the inversely transformed subscription message may be transmitted to the message processing unit 130 through the event processing unit 120 and output to the user device 200 .

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

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

보다 구체적으로, 예를 들어 RTPS에서는 기본적으로 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화되도록 구성되어 있다. 따라서 사용자 장치(200)에서 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 user device 200 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로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장하기 위하여, 본 발명의 실시 예에 따른 패킷 처리부(110)는, 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 110 according to an 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.

또한, 본 발명의 실시 예에 따른 패킷 처리부(110)는 이벤트 처리부(120)에서 처리되는 각 이벤트의 시작과 종료 처리를 수행함에 있어서, 스레드간 통신으로 발생하는 지연과 상태 전환으로 발생되는 지연 시간을 최소화하기 위하여, 단일 스레드로 메시지의 발간 또는 구독 프로세르를 처리하도록 하는 입출력 패스스루 경로를 활성화할 수 있으며, 이러한 입출력 패스스루 활성화 여부는 메시지의 지연 시간에 따라 동적으로 가변 처리됨으로써, 환경 적응적으로 지연 시간의 최소화를 달성할 수 있다.In addition, the packet processing unit 110 according to an embodiment of the present invention performs the start and end processing of each event processed by the event processing unit 120, delay caused by communication between threads and delay time caused by 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, and whether or not such an input/output pass-through is activated is dynamically variable depending on the delay time of the message, thereby adapting to the environment It is possible to achieve the minimization of the delay time.

그리고, 본 발명의 실시 예에 따른 패킷 처리부(110)는, 트래픽 제어시의 유실이 일어나지 않도록 하는 최대 대역폭을 설정할 수 있으며, 이는 패킷 전송 파라미터에 따른 지연 시간 연산을 통해 송신 대기 처리를 수행하도록 함으로써 조절될 수 있다.In addition, the packet processing unit 110 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 a packet transmission parameter. can be adjusted.

이러한 본 발명의 실시 예에 대하여 이하의 도면들을 참조하여 보다 구체적으로 후술하도록 한다.This embodiment of the present invention will be described in more detail below with reference to the following drawings.

도 2는 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.2 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.

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

먼저, 패킷 처리부(110)는 RTPS의 전송 계층 프로토콜로 UDP를 사용할 수 있으며, 미들웨어를 통해 생성되는 미들웨어 내부 데이터, 사용자 데이터를 RTPS 메시지로 캡슐화 처리할 수 있다. RTPS는 UDP를 전송 계층으로 사용하므로 RTPS 메시지는 다시 UDP 데이터그램으로 캡슐화될 수 있다.First, the packet processing unit 110 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.

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

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

도 3을 참조하면, RTPS 메시지는 구체적으로, RTPS 헤더와 하나 이상의 RTPS 서브메시지 데이터로 구성될 수 있으며, RTPS 헤더는 임의 값(Magic Value), 프로토콜 버전(Protocol Version), 벤더 식별자(Vendor ID) 및 메시지를 발간하는 발간자 식별정보(GUID-Globally Unique Identifier)를 포함할 수 있다. DDS는 물리적으로는 통신 인터페이스부(140)를 통한 IP Address 및 UDP Port를 사용하여 통신을 수행하지만, 논리적으로는 GUID Prefix로 상대방을 식별할 수 있게 정의된다.Referring to FIG. 3 , the RTPS message may specifically include an RTPS header and one or more RTPS sub-message 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 140, but is logically 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. .

그리고, 도 4(A)를 참조하면, 기본적으로 종래 기술에서 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화된다. 따라서 사용자가 100개의 메시지를 발간하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신된다. 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.And, referring to FIG. 4A, 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.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는, 도 4(B)에 도시된 바와 같이, RTPS 메시지를 구성하는 RTPS 서브 메시지상에, 패킷에 허용되는 최대 바이트 한도까지 배칭(Batching) 처리를 수행할 수 있다. 따라서 사용자 메시지가 충분히 작을 경우, 복수의 사용자 메시지를 1개의 RTPS 메시지로 직렬화 처리할 수 있다.Accordingly, as shown in FIG. 4(B), the serializer 113 according to an embodiment of the present invention 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.

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

이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는 충분한 메시지가 메시지 버퍼에 쌓이도록 하기 위해, 사용자 장치(200)에서 메시지 발간 요청을 네트워크 전송 속도보다 빠르게 요청한 경우, 즉시 전송이 불가능한 메시지로 판별하여 메시지 버퍼에 누적되도록 처리할 수 있다. 그리고, 직렬화부(113)는 상기 사용자장치(200)에서 수신된 메시지 발간 요청을 강제 지연 처리함으로써, 메시지가 메시지 버퍼에 쌓일 시간을 확보하도록 할 수 있다.Accordingly, the serializer 113 according to an embodiment of the present invention, in order to accumulate enough messages in the message buffer, when the user device 200 requests a message publication request faster than the network transmission rate, the message cannot be transmitted immediately. It can be determined to be accumulated in the message buffer. In addition, the serializer 113 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) 파라미터를 정의하고 있다. 지연 할당 파라미터는, 발간측 사용자 장치(200)에 적용될 수 있으며, 단지 데이터 통신의 긴급도를 표현하는 수치로 정의는 되어 있으나, 실제 의미는 구현자가 임의로 부여할 수 있는 측면이 존재한다. 따라서, 본 발명의 실시 예에 따른 직렬화부(113)는 지연 할당(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 publishing-side user device 200 and is defined as a numerical value expressing the urgency of data communication only, but the actual meaning can be arbitrarily assigned by the implementer. Accordingly, the serializer 113 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.

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

이러한 RTPS 병합 메시지는, DDS에서 정의된 RTPS 표준 규격을 그대로 따르므로 상호 운용성에 영향을 미치지 않으며, 수신 측에서는 RTPS 병합 메시지에 포함된 메시지들의 시작점부터 종료점까지의 직렬화된 데이터를 각각 취득할 수 있으므로, 실시간 배칭 전송 및 수신 처리가 가능하게 된다.Since such an 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.

이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는 앞서 서술한 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장할 수 있다.Accordingly, the serialization unit 113 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 ensure real-time performance. can

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

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

메시지 발간 이벤트인 경우, 직렬화부(113)는 발간 메시지에 동일한 GUID를 갖는 시퀀스를 부여하고, 메시지 버퍼에 삽입 처리한다(S109).In the case of a message publication event, the serialization unit 113 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, the sequence assigned to the 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).

그리고, 직렬화부(113)는 메시지 버퍼가 가득 찼는지 판단하고(S111), 가득 찬 경우 버퍼링된 메시지의 배칭 처리를 수행한다(S113). 만약 가득 차지 않은 경우에는 일정 지연 할당 주기 시간까지 발간 이벤트 발생을 대기 처리할 수 있다.Then, the serializer 113 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.

여기서, 직렬화부(113)는 버퍼링된 메시지 배칭 처리를 위해, 동일 발간자 식별자(GUID)에 매칭된 하나의 RTPS 메시지에 일련번호 시퀀스가 할당된 복수의 서브메시지들을 포함시키는 처리를 수행할 수 있다.Here, the serializer 113 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. .

그리고, 직렬화부(113)는 배칭된 메시지를 송수신부(117)로 전달하며, 송수신부(117)에서는 패킷화 처리하여 통신 인터페이스부(140)를 통해 외부 네트워크로 전송한다(S115).Then, the serialization unit 113 transmits the batched message to the transceiver 117 , and the transceiver 117 performs packetized processing and transmits it to an external network through the communication interface unit 140 ( 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 단계에서 발생된 이벤트가 메시지 발간 이벤트가 아닌 것으로 확인되는 경우, 직렬화부(113)는 지연 할당 주기 이벤트로 판별하며, 메시지 버퍼에 지연 할당 시간 이상으로 대기된 메시지가 존재하는지 확인한다(S105).Accordingly, when it is confirmed that the event generated in step S103 is not a message publication event, the serializer 113 determines that it is a delay allocation cycle event, and checks whether there is a message queued for more than the delay allocation time in the message buffer. (S105).

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

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

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

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

본 발명의 실시 예에 따른 미들웨어 장치(100)는, 복잡한 DDS의 기능들을 구현하는 복잡도를 낮추기 위해 복수의 처리부로 구분될 수 있으며, 각 처리부는 다른 처리부와 흐름 연계를 위한 일부 로직을 제외하면, 대부분의 로직이 다른 처리부와 독립적으로 구동될 수 있다. 따라서, 본 발명의 실시 예에 따른 미들웨어 장치(100)는 각각의 처리부에 자체적인 프로세서가 포함될 수 있고, 각 프로세서는 각각의 프로세스 스레드를 처리함으로써 동시에 여러 작업이 수행되도록 하여 대량의 메시지 발간/구독 요청에 대응할 수 있다.The middleware device 100 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 except for some logic for flow connection with other processing units, Most of the logic can be driven independently of other processing units. Accordingly, the middleware device 100 according to an embodiment of the present invention may include its own processor in each processing unit, and each processor processes each process thread to simultaneously perform several tasks to publish/subscribe a large amount of messages. Able to respond to requests.

그러나, 한 처리부에서 다음 처리부로 처리 흐름이 변경될 때 지연시간이 발생한다. 이는 이벤트 전달 시작 및 종료 시점에서 발생하는 다음 처리부와의 스레드 간 통신으로 발생하는 지연과, 그리고 다음 처리부의 스레드가 대기 상태였을 경우 해당 스레드가 다시 시작되기까지의 지연으로 인해 발생될 수 있다.However, a delay occurs when the flow of processing is changed from one processing unit to the next. 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.

이러한 지연 발생을 최소화하기 위하여, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 단일 처리부의 스레드 구동을 통해, 각 처리부간 이벤트 전달 시작 또는 종료 스레드 생성 없이, 곧바로 작업을 처리하여 불필요한 지연시간이 발생하는 것을 최소화 할 수 있으며, 이러한 입출력 패스스루 기능의 활성화 여부를 판단하여 ON 또는 OFF 처리할 수 있다.In order to minimize the delay, the input/output pass-through activation unit 111 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.

예를 들어, 입출력 패스스루를 활성화 한 경우, 한 처리부의 스레드를 사용하여 메시지의 최종 처리까지 진행하므로 병렬 처리는 불가능하게 되며, 그 결과 다량의 메시지 처리 성능을 감소할 수 있다. 따라서, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 따라서 처리량과 지연시간을 모두 최적화하기 위해 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.For example, if I/O pass-through is enabled, parallel processing becomes impossible because the final processing of a message is performed 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 111 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.

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

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

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

그리고, 입출력 패스스루 활성화부(111)는 시간 기록이 32회 이상 측정되었는지 판단한다(S203).Then, the input/output pass-through activation unit 111 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.

그리고, 입출력 패스스루 활성화부(111)는 측정된 RTPS 패킷의 각 패킷 간 시각차 평균 값이, 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인지 판단한다(S205).Then, the input/output pass-through activation unit 111 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개의 송수신 처리 시간 이내인 경우, 입출력 패스스루로 처리되는 현재 패킷의 개수가 대량인 것으로 판단될 수 있으며, 이에 따라 대랑 메시지 처리에 효율적인 병렬 프로세스를 적용하기 위해 입출력 패스스루 활성화부(111)는 입출력 패스스루 기능을 비활성화 처리할 수 있다(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 111 may deactivate the input/output pass-through function (S207).

반면, 시각차 평균 값이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간을 초과하는 경우에는 직렬 메시지 처리가 지연 시간을 최소화할 수 있으므로, 입출력 패스스루 활성화부(111)는 입출력 패스스루 기능을 활성화한다(S209).On the other hand, when 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 111 activates the input/output pass-through function (S209). ).

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

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

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

유실된 패킷을 복구하기 위해 송수신부(117)는 재전송 처리를 시작할 수 있다. 그러나 재전송 처리 역시 네트워크로 패킷을 송신하는 행위이기 때문에, 재전송 과정에서 대역폭 초과분이 발생한 만큼 일부 재전송 패킷 또한 유실될 수 있으며, 일부 유실된 재전송 패킷을 다시 재전송해야 하는 악순환이 통신 성능의 저하를 야기한다.In order to recover the lost packet, the transceiver 117 may start a retransmission process. However, since the retransmission process is also an act of sending 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. .

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

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

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

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

보다 구체적으로, 본 발명의 실시 예에 따른 트래픽 제어부(115)는 상기 S303 단계에서, 하기의 수학식 1을 이용하여, 현재 시점이 사전 설정된 대역폭에 따른 지연 시간 이내인지 여부를 판단할 수 있다.More specifically, in step S303, the traffic control unit 115 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 1 below.

Figure pat00001
Figure pat00001

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

보다 구체적으로, 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는 미들웨어 장치(100)가 사용하는 네트워크 인터페이스의 최대 대역폭 값을 bps(bit per second)로 나타내는 값일 수 있다. 최대 대역폭 값은 트래픽 제어부(115)가 통신 인터페이스부(140)로부터 식별하여 감지하거나, 별도로 사용자에 의해 지정될 수도 있다.And, B may be a value representing the maximum bandwidth value of the network interface used by the middleware device 100 in bits per second (bps). The maximum bandwidth value may be detected by the traffic control unit 115 by identifying it from the communication interface unit 140 or may be separately designated by a 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 in bytes, a value obtained by multiplying the packet size by 8 to integrate the unit of the packet size into bits may be defined to be cumulatively summed.

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

예를 들어, 트래픽 제어부(115)는 현재 측정한 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 controller 115 may delay transmission for a delay time equal to the value of T_open - T_current.

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

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

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

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

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

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

한편, S403 단계에서 T_current가 T_open보다 큰 경우, 트래픽 제어부(115)는 T_current - T_open 값의 차이가 1ms 이하인지 판단한다(S411).Meanwhile, when T_current is greater than T_open in step S403 , the traffic controller 115 determines whether a difference between 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 the 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 a transmission standby processing flow does not occur.

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

이와 같은 구성을 통해, 본 발명의 실시 예에 따른 미들웨어 장치(100)는, 실시간성을 유지할 수 있는 메시지 배칭 처리와 입출력 처리 패스스루 프로세스 및 트래픽 제어 처리를 제공할 수 있다.Through such a configuration, the middleware device 100 according to an embodiment of the present invention may provide message batching processing, input/output processing pass-through processing, and traffic 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 and download the program.

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

DDS(Data Distribution Service) 미들웨어 장치의 동작 방법에 있어서,
사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 단계; 및
상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 단계를 포함하고,
상기 전송하는 단계는,
발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는 직렬화 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
In the method of operating a DDS (Data Distribution Service) middleware device,
transmitting the message request received from the user device to the event processing unit; and
Serializing the message received from the event processing unit and transmitting it to a network through a communication interface unit,
The transmitting step is
Serializing the message requested to be published in a format according to the RTPS (Real Time Publish Subscribe) standard, but including a serialization step of batching a plurality of messages accumulated in the message buffer to a sub-message of one RTPS message
How DDS middleware devices work.
제1항에 있어서,
상기 직렬화 단계는,
메시지 버퍼에 누적되는 복수의 발간 메시지에 동일한 GUID를 갖는 일련번호 시퀀스를 부여하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
According to claim 1,
The serialization step is
and assigning a sequence number sequence having the same GUID to a plurality of published messages accumulated in a message buffer.
How DDS middleware devices work.
제2항에 있어서,
상기 직렬화 단계는,
버퍼링된 메시지 배칭 처리를 위해, 동일 발간자 식별자(GUID)에 매칭된 하나의 상기 RTPS 메시지에 일련번호 시퀀스가 할당된 복수의 서브메시지들을 포함시키는 처리를 수행하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
3. The method of claim 2,
The serialization step is
performing a process of including a plurality of submessages assigned with a serial number sequence in one RTPS message matched with the same publisher identifier (GUID) for buffered message batching processing
How DDS middleware devices work.
제3항에 있어서,
상기 직렬화 단계는,
메시지 버퍼에 사전 설정된 지연 할당 시간 이상으로 대기된 메시지가 존재하는지 확인한고, 지연 할당 시간으로 대기된 메시지가 존재하는 경우, 현재까지 버퍼링된 메시지의 배칭 처리를 수행하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
4. The method of claim 3,
The serialization step is
Checking whether there is a message queued for more than a preset delay allocation time in the message buffer, and if there is a message waiting for the delay allocation time, performing batch processing of messages buffered so far
How DDS middleware devices work.
제1항에 있어서,
상기 전송하는 단계는,
단일 처리부의 스레드 구동을 통해, 다른 처리부들의 개별적인 이벤트 전달 시작 또는 종료 스레드 생성 없이, 단독으로 메시지 처리를 수행할 수 있는 입출력 패스스루 기능의 활성화 여부를 결정하는 입출력 패스스루 활성화 단계를 더 포함하는
DDS 미들웨어 장치의 동작 방법.
According to claim 1,
The transmitting step is
Through the thread driving of a single processing unit, the input/output pass-through activation step of determining whether to activate the input/output pass-through function capable of performing message processing independently without creating individual event delivery start or end threads of other processing units
How DDS middleware devices work.
제5항에 있어서,
상기 입출력 패스스루 활성화 단계는,
RTPS 패킷 송수신 시간 기록의 시각차 평균 시간과, RTPS 패킷의 송수신 처리 시간을 비교하여, 입출력 패스스루 활성화 여부를 동적으로 가변하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
6. The method of claim 5,
The input/output pass-through activation step includes:
Comparing the time difference average time of the RTPS packet transmission/reception time record and the transmission/reception processing time of the RTPS packet, dynamically varying whether input/output pass-through is activated
How DDS middleware devices work.
제6항에 있어서,
상기 입출력 패스스루 활성화 단계는,
상기 RTPS 패킷 송수신 시간 기록의 시각차 평균 시간이 사전 설정된 상기 RTPS 패킷의 송수신 처리 시간 이내인 경우, 입출력 패스스루 기능을 비활성화 처리하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
7. The method of claim 6,
The input/output pass-through activation step includes:
Deactivating an input/output pass-through function when the average time difference of the RTPS packet transmission/reception time record is within a preset transmission/reception processing time of the RTPS packet;
How DDS middleware devices work.
제6항에 있어서,
상기 입출력 패스스루 활성화 단계는,
상기 RTPS 패킷 송수신 시간 기록의 시각차 평균 시간이 사전 설정된 상기 RTPS 패킷의 송수신 처리 시간을 초과하는 경우 입출력 패스스루 기능을 활성화하는 단계를 포함하는
DDS 미들웨어 장치의 동작 방법.
7. The method of claim 6,
The input/output pass-through activation step includes:
activating an input/output pass-through function when the average time difference of the RTPS packet transmission/reception time record exceeds a preset transmission/reception processing time of the RTPS packet
How DDS middleware devices work.
제1항에 있어서,
상기 전송하는 단계는,
현재 시간 T_current이 패킷 전송이 가능한 시간 T_open보다 이전인 경우, 패킷 전송의 송신 시간 지연을 통해 송신 대역폭을 사전 설정된 최대 대역폭으로 일정하게 제어하는 트래픽 제어 단계를 더 포함하는
DDS 미들웨어 장치의 동작 방법.
According to claim 1,
The transmitting step is
If the current time T_current is earlier than the time T_open at which packet transmission is possible, further comprising a traffic control step of constantly controlling the transmission bandwidth to a preset maximum bandwidth through a transmission time delay of packet transmission
How DDS middleware devices work.
제9항에 있어서,
상기 트래픽 제어부는, 사전 설정된 최대 대역폭 내에서 패킷 전송이 발생하여 트래픽이 발생하였을 때 사용되는 일정 단위 구간 동안의 비트슬라이스의 양을 연산하여, 상기 패킷 전송이 가능한 시간 T_open을 산출하는
DDS 미들웨어 장치의 동작 방법.

10. The method of claim 9,
The traffic control unit calculates the amount of bit slices for a predetermined unit period used when packet transmission occurs within a preset maximum bandwidth and traffic is generated to calculate a time T_open during which the packet transmission is possible.
How DDS middleware devices work.

KR1020190163423A 2019-12-10 2019-12-10 A middleware apparatus operating method of data distribution services for providing a efficient message processing KR20210073005A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190163423A KR20210073005A (en) 2019-12-10 2019-12-10 A middleware apparatus operating method of data distribution services for providing a efficient message processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190163423A KR20210073005A (en) 2019-12-10 2019-12-10 A middleware apparatus operating method of data distribution services for providing a efficient message processing

Publications (1)

Publication Number Publication Date
KR20210073005A true KR20210073005A (en) 2021-06-18

Family

ID=76623302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190163423A KR20210073005A (en) 2019-12-10 2019-12-10 A middleware apparatus operating method of data distribution services for providing a efficient message processing

Country Status (1)

Country Link
KR (1) KR20210073005A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900555A (en) * 2021-12-14 2022-08-12 合肥哈工轩辕智能科技有限公司 Data distribution method and device based on lossless compression algorithm

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900555A (en) * 2021-12-14 2022-08-12 合肥哈工轩辕智能科技有限公司 Data distribution method and device based on lossless compression algorithm

Similar Documents

Publication Publication Date Title
EP3719657A1 (en) Communication with accelerator via rdma-based network adapter
CN108536543B (en) Receive queue with stride-based data dispersal
JP5893762B2 (en) System and method for scheduling packet transmission on a client device
US20120054362A1 (en) Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
US7295565B2 (en) System and method for sharing a resource among multiple queues
US11171862B2 (en) Multi-subflow network transmission method and apparatus
CN112631788B (en) Data transmission method and data transmission server
CN105141603A (en) Communication data transmission method and system
KR20210073005A (en) A middleware apparatus operating method of data distribution services for providing a efficient message processing
US11546261B2 (en) Congestion control method and related device
EP3694164A1 (en) Data transmission method and device, and computer storage medium
US9083617B2 (en) Reducing latency of at least one stream that is associated with at least one bandwidth reservation
JP2007013449A (en) Shaper control method, data communication system, network interface device and network repeating device
KR102211005B1 (en) A middleware apparatus of data distribution services for providing a efficient message processing
KR20220027714A (en) A dds routing service system for providing processing a data priority control based on topic
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
CN111404986A (en) Data transmission processing method, device and storage medium
KR102231481B1 (en) A middleware apparatus of data distribution services for providing a efficient message loss detection and retransmission processing
KR20210073046A (en) Recording Medium
KR20210073037A (en) A middleware apparatus operating method of data distribution services for providing a efficient message loss detection and retransmission processing
KR20210073034A (en) Middleware system of data distribution services for providing a efficient message loss detection and retransmission processing
KR20210073039A (en) Program for operation a middleware apparatus that data distribution services for providing a efficient message loss detection and retransmission processing
KR20220027708A (en) A method operating of a dds routing service providing apparatus processing a data priority control based on topic