KR20220027706A - 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법 - Google Patents
지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법 Download PDFInfo
- Publication number
- KR20220027706A KR20220027706A KR1020200143247A KR20200143247A KR20220027706A KR 20220027706 A KR20220027706 A KR 20220027706A KR 1020200143247 A KR1020200143247 A KR 1020200143247A KR 20200143247 A KR20200143247 A KR 20200143247A KR 20220027706 A KR20220027706 A KR 20220027706A
- Authority
- KR
- South Korea
- Prior art keywords
- dds
- data
- compression
- message
- topic
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명의 실시 예에 따른 장치의 동작 방법은, 하나 이상의 DDS(Data Distribution Service) 미들웨어 디바이스에 연결되는 라우팅 서비스 장치의 동작 방법에 있어서, 제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 단계; 및 상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 지능적 토픽 데이터 압축을 이용한 데이터 효율 관리 처리를 수행하는 단계를 포함한다.
Description
본 발명은 데이터 분산 서비스의 라우팅 서비스 장치의 동작 방법에 관한 것이다. 보다 구체적으로, 본 발명은 지능적 토픽 압축을 처리하는 DDS 라우팅 서비스 장치의 동작 방법에 관한 것이다.
DDS(Data Distribution Service)는 OMG(Object Management Group)표준 통신 미들웨어를 정의하며, 데이터 중심의 발간-구독(Publish-Subscribe) 통신 방식을 어플리케이션에 제공하는 통신 미들웨어를 개시하고 있다.
특히, DDS 미들웨어는 디바이스의 자유로운 참여/탈퇴가 가능한 환경에서 발간/구독(Publish/Subscribe) 통신기법을 이용하여 효율적인 데이터 분배를 제공한다.
이러한 DDS의 특징은 다수의 디바이스들이 동적으로 연동되어 하나의 네트워크 도메인을 형성하고 데이터를 교환하는 경우가 빈번한 유비쿼터스 환경에 적합하다는 것이다. DDS는 발간/구독 기능, QoS 제어 기능, DDS 참여 노드 의 주소를 알아내는 디스커버리 기능 등 다양한 기능이 포함되며, 각 미들웨어는 이러한 처리를 위한 프로세서 및 메모리 등의 컴퓨팅 자원을 구비하고 있다.
다만, 이러한 DDS 표준을 지원하는 미들웨어 디바이스들은 기본적으로 LAN(Local Area Network) 접속을 기반으로 구현되어 있어, 이더넷 프로토콜 기반으로 통신하며 외부 네트워크에서는 접속이 제한되는 문제점이 있다.
따라서, 현재의 DDS 미들웨어 시스템을 WAN(Wide Area Network)을 통해 외부 인터넷망 등을 통해서도 접속할 수 있도록 구현하기 위해서는, 기존 DDS 네트워크 인프라 및 동작 방식을 WAN을 지원하도록 모두 변경하고, 새로운 DDS 장비 및 네트워크 인프라를 구축하여야 하는 문제점이 있다. 이는 과도한 비용을 소요하게 하며, 기존의 DDS 미들웨어 시스템을 활용할 수 없어 비효율적이며, 따라서 산업현장에 적용되기 어려운 문제점이 있다.
또한, DDS 미들웨어 시스템의 자체적인 비효율성도 개선될 필요성이 있다. 컴퓨팅 자원은 제한적이기 때문에 미들웨어 시스템 및 라우팅 서비스를 효율적으로 운용하려면 RTPS 및 OMG 표준에 의해 정의되는 DDS 미들웨어의 처리량 저하, 패킷 사용 효율 저하, 스레드 간 통신지연, 대역폭 관리 등에 대한 비효율적인 측면이 개선되어야 한다.
본 발명은 상기한 바와 같은 문제점을 해결하고자 안출된 것으로, DDS 지원 미들웨어 디바이스를 포함하는 기존 LAN 기반의 DDS 시스템 트래픽을, 통상의 인터넷망과 같은 WAN 기반의 네트워크를 통해 라우팅될 수 있도록 처리하여, 별도의 인프라 변경 없이도 기존의 DDS 시스템이 WAN을 통해 연결된 다른 디바이스와 DDS 통신을 할 수 있게 하는 DDS 라우팅 서비스 장치의 동작 방법을 제공하는 데 그 목적이 있다.
또한, 본 발명은 DDS 라우팅 서비스를 제공함에 있어서, 지능적 토픽 압축 처리를 제공하여, 네트워크 부하 저감, 지연 최소화 및 라우팅 효율을 높일 수 있는 DDS 라우팅 서비스 장치의 동작 방법을 제공하는 데 그 목적이 있다.
그리고, 본 발명은 DDS 시스템의 비효율성을 개선하기 위해, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 라우팅 서비스 장치의 동작 방법을 제공하는 데 그 목적이 있다.
상기한 바와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 방법은, 하나 이상의 DDS(Data Distribution Service) 미들웨어 디바이스에 연결되는 라우팅 서비스 장치의 동작 방법에 있어서, 제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 단계; 및 상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 지능적 토픽 데이터 압축을 이용한 데이터 효율 관리 처리를 수행하는 단계를 포함한다.
한편, 상기한 바와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 방법은, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 매체에 저장되는 컴퓨터 프로그램 및 그 기록 매체로 구현될 수 있다.
본 발명의 실시 예에 따르면, DDS 지원 미들웨어 디바이스를 포함하는 기존 LAN 기반의 DDS 시스템 트래픽을, 통상의 인터넷망과 같은 WAN 기반의 네트워크를 통해 라우팅될 수 있도록 처리하여, 별도의 인프라 변경 없이도 기존의 DDS 시스템이 WAN을 통해 연결된 다른 디바이스와 DDS 통신을 할 수 있게 하는 DDS 라우팅 서비스 장치의 동작 방법을 제공할 수 있다.
또한, 본 발명의 실시 예에 따르면, DDS 라우팅 서비스를 제공함에 있어서, 지능적 토픽 압축 처리를 제공하여, 네트워크 부하 저감, 지연 최소화 및 라우팅 효율을 높일 수 있는 DDS 라우팅 서비스 장치의 동작 방법을 제공할 수 있다.
그리고, 본 발명의 실시 예에 따르면, DDS 시스템의 비효율성을 개선하기 위해, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 라우팅 서비스 장치 의 동작 방법을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2는 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치를 보다 구체적으로 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 데이터 관리부를 보다 구체적으로 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 토픽 압축부를 보다 구체적으로 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 토픽 압축부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 통신 관리부를 보다 구체적으로 도시한 블록도이다.
도 7 및 도 8은 본 발명의 실시 예에 따른 트래픽 제어부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 10은 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 11은 본 발명의 실시 예에 따른 직렬화부 처리에 따른 패킷 처리부의 동작을 설명하기 위한 흐름도이다.
도 12는 본 발명의 실시 예에 따른 입출력 패스스루 활성화부의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 13은 본 발명의 실시 예에 따른 트래픽 제어부의 동작을 설명하기 위한 흐름도이다.
도 14는 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
도 2는 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치를 보다 구체적으로 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 데이터 관리부를 보다 구체적으로 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 토픽 압축부를 보다 구체적으로 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 토픽 압축부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 통신 관리부를 보다 구체적으로 도시한 블록도이다.
도 7 및 도 8은 본 발명의 실시 예에 따른 트래픽 제어부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 10은 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 11은 본 발명의 실시 예에 따른 직렬화부 처리에 따른 패킷 처리부의 동작을 설명하기 위한 흐름도이다.
도 12는 본 발명의 실시 예에 따른 입출력 패스스루 활성화부의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 13은 본 발명의 실시 예에 따른 트래픽 제어부의 동작을 설명하기 위한 흐름도이다.
도 14는 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비 휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.
본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 전체시스템은, 제1 LAN 네트워크(1000)를 구성하는 제1 사용자 장치(10), DDS 미들웨어 디바이스(300) 및 DDS 라우팅 서비스 장치(100)를 포함하며, 제1 LAN 네트워크(1000)는 동일한 구성을 포함하는 원격지의 제2 LAN 네트워크(2000)와 WAN 네트워크를 통해 연결될 수 있다.
먼저, 사용자 장치(10)는, DDS 미들웨어 디바이스(300)를 통해 메시지를 입력하거나 DDS 미들웨어 디바이스(300)로부터 구독 처리된 메시지를 수신하는 사용자 컴퓨팅 장치일 수 있다.
그리고, DDS 미들웨어 디바이스(300)는 사용자 장치(10)로부터 입력된 메시지를 제1 LAN 네트워크(1000) 내부로 발간 처리하거나, 제1 LAN 네트워크(1000)를 통해 수신되는 메시지를 구독 처리하여 사용자 장치(10)로 전달하는 통상의 DDS 미들웨어 디바이스(300)일 수 있다.
보다 구체적으로, 본 발명의 실시 예에 따른 미들웨어 디바이스(300)는, 표준화된 DDS(Dara Distribution Service) 규격에 따른 DCPS(Data Centric Publish Subscribe) 프로토콜과 RTPS(RealTime Publish Subscribe) 프로토콜을 이용한 통신 기능을 제공할 수 있다. DCPS는 표준화된 사용자 API 및 모델링을 규격하고 있으며, RTPS는 DDS 벤더간 상호운용이 가능한 통신 규약을 규격화하고 있다.
이러한 DDS 미들웨어 디바이스(300)는, DDS의 DCPS API를 사용해 제1 사용자 장치(10)와의 인터페이싱을 담당하며, 제1 사용자 장치(10)의 요청에 따라 메시지 발간/구독 요청을 수신하여, RTPS 규격에 따른 발간 메시지의 송신 처리와, 구독 메시지의 수신 처리를 수행한다.
그리고, DDS 미들웨어 디바이스(300)는 메시지 발간 또는 구독 처리에 필요한 전송 이벤트 프로세스 및 재전송 이벤트 프로세스를 처리할 수 있다.
그리고, DDS 미들웨어 디바이스(300)는, 통신 인터페이스를 통해 제1 사용자 장치(10)와 연결될 수 있으며, 제1 사용자 장치(10)의 메시지를 RTPS 패킷으로 패킷화하여 통신 인터페이스로 전송하거나, 통신 인터페이스를 통해 수신된 RTPS 패킷으로부터 메시지를 복원하여 제1 사용자 장치(10)로 전달하는 처리를 수행할 수 있다.
이와 같은, 본 발명의 실시 예에서, 구체적으로 도시되지는 않았으나 제1 사용자 장치(10)에서 작성된 메시지 정보는 DDS 미들웨어 디바이스(300)의 메시지 처리부로 전달될 수 있으며, 전달된 메시지는 DDS 미들웨어 디바이스(300)의 이벤트 처리부를 통해 발간 처리되어 패킷 처리부를 통해 패킷화되어 통신 인터페이스부를 통해 외부 네트워크로 전송될 수 있다.
그리고, DDS 미들웨어 디바이스(300)의 메시지 처리부는 제1 사용자 장치(10)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부를 통한 구독 메시지 처리를 통해 패킷 처리부에서 통신 인터페이스부로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부를 통해 메시지 처리부로 전달되어 사용자 장치로 출력될 수 있다.
여기서, 통상적으로 DDS 미들웨어 디바이스(300)에서 지원하는 네트워크는 근거리 통신망(Local Area Network; LAN)일 수 있으며, LAN 네트워크는 로컬 네트워크로서 지역적으로 그 데이터 전송 가능한 영역이 제한될 수 있다.
즉, 전술한 바와 같이, DDS 미들웨어 디바이스(300)의 통신 가능한 영역은 로컬 네트워크에 국한되므로, 지역이 전혀 상이한 원격지의 제2 LAN 네트워크(2000)의 미들웨어 디바이스와는 DDS 표준 규격에 따른 프로토콜 기반 통신이 불가능한 상태이다.
예를 들어, 대전 지역의 로컬 네트워크에 연결된 DDS 미들웨어 디바이스(300)와 서울 지역에 있는 로컬 네트워크에 연결된 DDS 미들웨어 디바이스(300)간 자유로운 트래픽 송수신이 불가능하게 세팅되어 있는 것이다.
이에 따라, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, DDS 중계 서비스 노드를 각 LAN 네트워크에 추가하고, 중계 서비스 노드를 통해 DDS 트래픽 데이터가 광역 통신망(Wide Area Network; WAN) 방식으로 송수신될 수 있도록 하는 트래픽 라우팅 기능을 제공할 수 있다.
도 1에 도시된 바와 같이, WAN 네트워크는 제1 LAN 네트워크(1000)와 제2 LAN 네트워크(2000)를 연결하며, DDS 라우팅 서비스 장치(100)는, 그 지역 사이의 DDS 미들웨어 디바이스(300) 간 발생되는 메시지 관련 전송 트래픽을 효율적으로 중계하여, 기존의 DDS 미들웨어 디바이스(300)의 인프라를 변경하지 않고도 간편한 트래픽 라우팅 설정만으로 광대역 네트워크 또는 원거리 통신망을 지원하는 DDS 서비스 시스템을 구축할 수 있다.
효율적이고 호환성 있는 트래픽 데이터의 처리를 위해, DDS 라우팅 서비스 장치(100)는, DDS 벤더 중립적인 트래픽 처리를 제공하며, 특히 WAN 네트워크 구간에서의 스마트 멀티 캐스팅과, 효율적이고 지능적인 선택적 데이터 압축, 데이터 암호화 및 데이터 직렬화 기반 트래픽 제어 프로세스를 수행할 수 있는 바, 이에 대하여는 보다 구체적으로 후술하도록 한다.
도 2는 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치를 보다 구체적으로 도시한 블록도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, 도메인 관리부(110), 설정 관리부(120), 통신 관리부(130) 및 데이터 관리부(140)를 포함한다.
본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, 별도의 컴퓨터 OS 상에서 실행되는 소프트웨어의 동작으로 구현되거나, 물리적인 네트워크 연결을 위한 별도의 네트워크 장비(라우터, 모뎀 등)에 연결되는 별도의 하드웨어로 구현될 수도 있다. DDS 라우팅 서비스 장치(100)는 제1 LAN 네트워크(1000)의 기존 DDS 미들웨어 디바이스(300)와 연결된 DDS 서비스 시스템 인프라에 하나의 RS(Routing Servive) 노드를 추가할 수 있으며, RS 노드를 통해 전술한 DDS 미들웨어간 메시지 구독 및 발간 트래픽들이 WAN 을 통해 상호 송수신되도록 라우팅 처리할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는, DDS 미들웨어 디바이스(300)가 일반적인 인터넷과 같은 글로벌 통신망을 통해 연결 구동될 수 있도록 처리함으로써, DDS 서비스의 논리적 통신 영역인 GDS(Global Data Space)를 확장할 수 있게 한다.
보다 구체적으로, 도메인 관리부(110)는 각 DDS 미들웨어 디바이스(300)의 GDS 연관 관계 구축에 필요한 미들웨어 디바이스(300)별 도메인 정보를 수집 처리하며, 수집된 도메인 정보를 통신 관리부(130)로 전달하는 하나 이상의 서브시스템을 포함할 수 있다.
통신 관리부(130)는, 도메인 관리부(110)에서 수집된 도메인 정보에 기초하여 GDS 노드 맵을 구축하고, GDS 노드 맵에 기초하여 DDS 미들웨어 디바이스(300)들을 각각 GDS 노드에 연결된 DDS 도메인 참여자(Domain Participant)로서 관리할 수 있다.
그리고, 통신 관리부(130)는, GDS 노드 맵을 이용한 트래픽 브릿징(Bridging)을 처리하여, 제1 LAN 네트워크(1000)에 연결된 DDS 미들웨어 디바이스(300)가 제2 LAN 네트워크(2000)의 RS 노드를 통해 다른 원격 GDS 노드에 연결될 수 있도록 처리할 수 있으며, 이에 따라 DDS 미들웨어 디바이스(300)는 기존의 LAN 통신 프로토콜을 그대로 사용하면서도, 원격지에 존재하는 다른 DDS 도메인 참여자와 자유롭게 트래픽을 교환할 수 있게 된다.
한편, 데이터 관리부(140)는, 라우팅되는 트래픽 데이터의 안정적이고 효율적인 교환 처리를 위해, 라우팅되는 트래픽 데이터를 이용한 관리 서비스 처리를 수행할 수 있다.
여기서 데이터 관리 서비스는, 표준 암호화 통신 프로토콜인 DTLS를 통한 데이터 암호화 서비스, 토픽 별 우선순위 관리 기능을 위한 우선 순위 제어 서비스, 데이터 토픽 압축 서비스, 선택적 멀티캐스팅 처리 서비스 중 적어도 하나를 포함할 수 있으며, 이에 대하여는 도 4에서 보다 구체적으로 설명하도록 한다.
한편, 설정 관리부(120)는, 시스템 이용을 위한 설정 정보를 저장 및 관리할 수 있다. 사용자는 파일 또는 사용자 입력 정보 형태의 설정 정보를 입력하여 설정 정보를 업데이트할 수 있으며, 설정 관리부(120)는 이를 위한 설정 정보 파서(paser)와 파싱된 설정 정보를 각 구성요소에 적용하는 설정 적용부(Applier)를 포함할 수 있다. 바람직하게, 설정 정보는 yaml (YAML Ain't Markup Language) 데이터 포맷의 파일 일 수 있으며, 스칼라 정보, 시퀀스 정보, 매핑 정보를 이용하여 적용될 모듈 및 적용할 설정 정보를 나타낼 수 있다.
그리고, 설정 관리부(120)는, 설정 정보를 4개의 그룹으로 구분하여 관리할 수 있으며, 네트워크 그룹, 로그 그룹, 우선순위 그룹, 브릿징 그룹으로 구분될 수 있다. 네트워크 그룹과 브릿징 그룹의 설정 정보는 통신 관리부(130)에 적용될 수 있으며, 로그 그룹 정보는 모든 구성요소에서 모두 적용될 수 있고, 우선순위 그룹 설정 정보는 데이터 관리부(140)에 적용될 수 있다.
도 3은 본 발명의 실시 예에 따른 데이터 관리부를 보다 구체적으로 도시한 블록도이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 데이터 관리부(140)는, 데이터 암호화부(141), 토픽 압축부(143), 우선순위 제어부(145) 및 멀티캐스팅 처리부(147)를 포함한다.
데이터 암호화부(141)는, 표준 암호화 통신 프로토콜인 DTLS(Datagram Transport Layer Security)를 DDS 트래픽 데이터에 적용하여, WAN을 통해 전송되는 사용자의 데이터를 외부의 공격으로부터 보호한다.
여기서, DTLS는 데이터그램 형식의 콘텐츠를 애플리케이션끼리 주고받을 때 안전하게 전송할 수 있도록 고안된 프로토콜로서, SSL, TLS와 같은 수준의 보안 서비스(무결성, 인증, 정보 은닉 등)를 제공할 수 있다.
이에 따라, 데이터 암호화부(141)는, DDS 트래픽 데이터의 DTLS 암호화를 통해, 데이터그램을 주고 받는 DDS 미들웨어 디바이스(300)들의 두 엔드포인트 사이의 중간 네트워크에서 전송 중인 데이터를 훔쳐보거나 위조하는 등의 행위를 사전에 방지할 수 있다.
그리고, 토픽 압축부(143)는, 실시간으로 각 DDS트래픽의 토픽 정보를 분석 및 학습하여, 데이터 압축을 처리할 DDS 토픽(Topic) 트래픽을 실시간으로 결정할 수 있으며, 토픽 압축이 결정된 트래픽에 대한 토픽 압축 처리를 수행하여, 라우팅할 트래픽의 총량을 줄이고, 대역폭 효율을 높일 수 있다. 이에 대하여는 도 4 및 도 5를 참조하여 보다 구체적으로 후술하도록 한다.
그리고, 우선순위 제어부(145)는 DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 트래픽의 우선 순위를 제어하는 프로세스를 수행할 수 있다. 우선 순위는 네임 패턴 매칭(Nme Pattern Matching) 등을 통해 지정될 수 있으며, 특히 데이터가 폭증하는 등의 상황에서는 특정한 토픽에 대한 처리 우선 순위가 설정되어 DDS 토픽별 최소한의 통신 대역폭이 확보되도록 할 수 있다.
한편, 멀티캐스팅 처리부(147)는, WAN 환경에서는 기본적으로 허용되지 않는 트래픽의 멀티캐스팅 서비스를 라우팅 서비스 노드(RS 노드)를 통해 구현할 수 있다. 멀티캐스팅 처리부(147)는 상기 RS 노드에 접속된 하나 이상의 DDS 참여자 미들웨어 디바이스(300)들로 구독/발간 메시지의 글로벌한 멀티캐스팅을 처리하는 멀티캐스팅 서비스를 제공할 수 있다.
또한, 멀티캐스팅 처리부(147)는, 트래픽 정보로부터 DDS 토픽의 구독/발간 관계를 분석하여, 멀티캐스팅 여부를 결정할 수 있다. 이에 따라 WAN을 통해 수신되는 유니캐스트 트래픽이라 하더라도, 특정 미들웨어 디바이스(300)로부터의 발간 메시지인 경우 멀티캐스트 트래픽으로 변경하여, 수신측 GDS 노드로 멀티캐스팅을 처리할 수 있다. 이에 따라, 멀티캐스팅 처리부(147)는 트래픽 정보의 DDS 토픽의 구독/발간 관계 정보 분석에 기초하여, GDS 맵에 등록된 도메인 참여자들에 대응하는 복수의 DDS 미들웨어 디바이스(300)로의 선택적 멀티캐스팅을 수행할 수 있다.
도 4는 본 발명의 실시 예에 따른 토픽 압축부를 보다 구체적으로 도시한 블록도이다.
도 4를 참조하면, 본 발명의 실시 예에 따른 토픽 압축부(143)는, 실시간으로 각 DDS 토픽(Topic) 데이터를 분석 또는 학습하여, 데이터 압축을 적용하기 적합한 DDS 토픽을 실시간으로 선별하고, 이에 기초한 지능적이고 선택적인 압축을 처리할 수 있다.
보다 구체적으로, 본 발명의 실시 예에서 제1 LAN 네트워크(1000)의 DDS 트래픽은 라우팅 처리되어, LAN 구간사이를 이어주는 WAN 구간의 네트워크를 통해 제2 LAN 네트워크(2000)로 전달될 수 있는 바, WAN 구간 네트워크는 LAN 보다 상대적으로 지연시간이 길고, 바이트 당 비용이 크기 때문에 데이터 크기 저감에 의한 비용 효율이 크게 상승될 수 있다.
따라서, 본 발명의 실시 예에 따른 토픽 압축부(143)는 라우팅 처리된 트래픽을 WAN 구간을 통해 다른 LAN 네트워크로 전송함에 있어서, 그 효율 증대를 위해서 토픽 데이터를 기반으로 하는 선별 압축 전송 기능을 제공할 수 있다.
일반적으로 압축 처리는 목적에 상응하여 작은 크기로 줄이는 압축률만을 우선시하나, 단순하게 크기를 낮추는 목적만으로 압축하면, 압축 및 압축해제에 따른 지연시간이 상승하게 된다. 이는 결과적으로 네트워크의 전송 지연시간을 높이기 때문에, 데이터 크기 저감 뿐만 아니라, 지연의 최소화도 구현하여야 한다.
이에 따라, 본 발명의 실시 예에 따른 토픽 압축부(143)는, 고속의 압축 알고리즘을 이용하여 토픽 데이터 기반 선별 압축 처리를 수행할 수 있으며, 고속 압축 알고리즘으로는 LZ4 방식, SNAPPY 방식, ZLIP 방식 등이 예시될 수 있다.
다만, 네트워크로 전송하는 모든 데이터를 압축하는 것이 항상 전송 효율을 높인다고 볼 수 없으며, 데이터의 크기나 데이터의 값에 따라 압축효율이 가변되며, 특정한 경우 오히려 지연속도가 증가하면서 데이터의 전송속도가 느려지거나, 대역폭 효율이 감소될 수 있다.
특히 DDS 토픽 데이터의 특성은 그 토픽 정보에 기초하여 1차적으로 결정되며, 같은 토픽 데이터라 하더라도 그 크기, 발간 시기, 발갓 횟수 등이 다양하게 결정될 수 있다. 이에 따라, 본 발명의 실시 예에 따른 토픽 압축부(143)는 실시간으로 라우팅 처리할 토픽 데이터를 분석 및 학습하여, 데이터 압축을 적용하기 적합한 DDS 토픽을 실시간으로 선별 적용할 수 있따.
이에 따라, 데이터 압축 대상이 되는 DDS 토픽은 실시간으로 가변될 수 있으며, 이에 대한 프로세스 구현을 위해 도 4에 도시된 바와 같이 토픽 압축부(143)는, 초기 압축 정보 결정부(1431), 비교 연산 처리부(1433) 및 선택적 압축 처리부(1435)를 포함한다.
먼저 초기 압축 정보 결정부(1431)는, 압축하기 전 토픽 데이터의 페이로드 정보와, 데이터 크기 정보를 산출하고, 이에 기초한 초기 압축 정보를 결정한다. 초기 압축 정보는 예를 들어, 토픽 데이터의 페이로드 정보(D_original)와, 데이터 크기 정보(L_original)로 결정될 수 있으며, 데이터 압축 전송 효율을 연산하는데 각각 이용될 수 있다.
그리고 비교 연산 처리부(1433)는, 데이터 압축을 적용하기 적합한 토픽을 선별하기 위하여, 사전 설정된 비교 변수 C_comp를 실시간으로 반복 갱신하고, C_comp와의 비교에 따른 압축 효율 비교를 처리한다.
여기서, C_comp는 아래의 수학식 1 및 2의 연산을 통해서 산출될 수 있다.
여기서, C_comp는 데이터 압축 적용을 결정하기 위한 비교 변수를 나타내며, P_comp는 데이터의 압축률을 수치로 표현한 값으로서, D_comp는 고속 압축 알고리즘으로 압축한 데이터의 페이로드이고, D_original는 초기 압축 정보에 따른 초기 페이로드일 수 있다. 이에 따라, P_comp는 낮을 수록 압축 효과가 높음을 나타낼 수 있다. P_min은 P_comp의 허용 가능한 최소 압축률을 나타내는 것으로 기본적으로는 P_min 보다 압축 효과가 높은 경우에만 압축이 처리될 수 있다.
또한, 상기 수학식 1, 2에서는 페이로드에 대한 D_comp 값만을 기재하였으나, 데이터 크기에 대응하는 L_comp 및 L_original에 대하여도 동일한 확률 기반 비교 연산이 처리될 수 있다. 즉, 비교 연산 처리부(1433)는, C_comp를 갱신하고, C_comp가 허용 범위 이내인 경우 P_comp 연산에 기초하여 P_min과의 비교에 따른 압축 허용여부를 결정할 수 있다. 압축이 허용되지 않는 경우 비교 연산 처리부(1433)는 선택적 압축 처리부(1435)로 압축 불가 정보를 전달할 수 있다.
그리고, N_fail은 압축을 했으나, P_min을 만족하지 못한 최근 횟수 정보로서, 최대값은 N_avail로 지정될 수 있다. 예를 들어, N_avail은 데이터 압축이 가능한 최소한의 데이터 크기를 수치로 표현한 값일 수 있으며, DDS 프로토콜에서 RTPS 헤더(20byte) 와 Data Submessage 헤더(20byte) 로 데이터는 최소값은 40이므로, 이진법으로 표현하여 40 < 26 로 '64' 값을 가지는 것이 바람직할 수 있다.
64와 같은 수치값이 지정될 수 있다. 또한 N_success는 압축에 따라 P_min을 만족하는 최근 횟수 정보로 지정될 수 있다.
상기한 바와 같이, 비교 연산 처리부(1433)는, 현재 토픽 데이터에 기초하여, 데이터 압축 적용 비교 변수 C_comp의 갱신여부를 결정할 수 있으며, 갱신된 C_comp가 임계값 이상인 경우, 고속 압축에 따른 실시간 P_comp 값과, P_min과의 비교에 따른 N_fail 또는 N_success 값의 연산을 처리할 수 있다.
그리고, 선택적 압축 처리부(1435)는, N_success 값의 처리 결과가 허용범위 이내인 경우에만 고속 압축된 페이로드인 D_comp를 압축 전송 처리할 수 있으며, N_success가 도출되지 않거나, C_comp가 갱신되지 않거나, C_comp 변수가 사전 설정된 범위를 벗어나는 경우에는 압축 처리하지 않고, 초기 페이로드 정보인 D_original을 그대로 전송 처리할 수 있다.
이에 따라, 선택적 압축 처리부(1435)는 토픽 데이터의 실시간 데이터 압축 적용 비교 변수 C_comp를 연산하고, 이에 기초한 고속 압축 프로세스의 결과 D_comp, L_comp 및 이에 기반한 확률 정보 P_comp와 최소값 P_min과의 비교 연산에 따라, 압축 전송 처리 여부를 토픽 데이터별로 지능적이고 선택적으로 결정할 수 있다.
도 5는 본 발명의 실시 예에 따른 토픽 압축부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 5를 참조하면, 먼저 본 발명의 실시 예에 따른 토픽 압축부(143)는, 초기 토픽 데이터를 결정한다(S1401).
그리고, 토픽 압축부(143)는 압축 전 초기 페이로드(D_origin) 및 초기 데이터 크기 정보(L_origin)을 갱신한다(S1403).
여기서, 토픽 압축부(143)는 L_origin이 데이터 압축 허용 가능한 최소값 L_avail보다 큰지 판단할 수 있으며(S1407), 큰 경우 데이터 압축 적용 변수 C_comp를 상기 수학식 1을 통해 연산한다(S1405).
그리고, 토픽 압축부(143)는 C_comp 값이 사전 설정된 허용 범위 이내인지 확인하며(S1409), 허용 범위 내인 경우 데이터 고속 압축 처리(예를 들어, LZ4 압축 처리)를 수행하고, 압축된 페이로드 D_comp 및 압축된 데이터 크기 L_comp를 각각 갱신 처리한다(S1411).
이후, 토픽 압축부(143)는 고속 압축 처리에 따라 산출된 데이터 압축률 P_comp가 P_min보다 작은지 판단한다(S1413).
만약 작은 경우, 토픽 압축부(143)는 압축 성공 횟수 변수 N_success 를 1 증가시키며(S1415), 증가된 N_success가 N_avail 이상인지 판단한다(S1417).
증가된 N_success가 N_avail 이상인 경우에는, N_fail은 0으로 초기화되며(S1419), S1419 단계 이후 또는 S1417 단계에서 증가된 N_success가 N_avail보다 작은 경우, 토픽 압축부(143)는 압축된 페이로드 D_comp를 송신 데이터로 결정한다(S1421).
한편, S1407 단계에서 L_origin이 L_avail보다 크지 않거나, S1409 단계에서 C_comp 값이 사전 설정된 허용 범위 내가 아니거나, 또는 S1413 단계에서 P_comp가 P_min보다 작지 않아 N_fail이 1 증가된 경우(S1423), 토픽 압축부(143)는 압축 전 초기 토픽 데이터인 D_origin을 송신 데이터로 결정한다(S1425).
이후, 신규 토픽 데이터가 진입하면(S1427), 현재 변수 값들을 기초로 다시 S1403 단계부터 순차적으로 다시 수행한다.
도 6은 본 발명의 실시 예에 따른 통신 관리부를 보다 구체적으로 도시한 블록도이다.
도 6을 참조하면, 본 발명의 실시 예에 따른 통신 관리부(130)는, 통신 인터페이스를 구성하며, 엔드포인트 소켓 관리부(131), 브릿지 처리부(133), 트래픽 제어부(135) 및 GDS 관리부(137)를 포함한다.
엔드포인트 소켓 관리부(131)는 WAN 네트워크를 통해 라우팅된 DDS 트래픽을 교환하는 엔드포인트 소켓의 생성, 연결 및 소멸 관리를 처리한다. 엔드포인트 소켓 연결을 통해, 각 LAN 네트워크로 접속한 DDS 미들웨어 디바이스(300)들은 WAN 네트워크를 통해 트래픽 데이터를 상호 교환할 수 있다.
그리고, 브릿지 처리부(133)는 트래픽 데이터의 브릿지 처리를 수행할 수 있으며, 브릿치 처리에 따라, 각각 GDS 노드에 연결된 DDS 도메인 참여자(Domain Participant)들이 LAN 통신을 하는 것과 동일한 방식으로 통신할 수 있게 한다.
브리지 처리는 데이터 링크 계층 중 MAC계층에서 처리되는 것으로, 두 세그먼트 사이에서 데이터 링크 계층간의 패킷 전송을 처리할 수 있는 바, 2개 이상의 독립된 세그먼를 결합해서, 결과적으로 하나의 network인 것처럼 보이게 할 수 있다. 브릿지 처리는, MAC 어드레스를 조사하여 데이터 링크층이 관리하는 패킷의 소스 어드레스와 목적지 어드레스를 보고 그 패킷을 통과해야 할 것인지, 아닌지를 판정해서 그 트래픽을 필터링 또는 포워딩 하는 기능을 수행할 수 있다. 이에 따라 본 발명의 실시 예에 따른 DDS 라우팅 서비스 장치(100)는 브릿지 기능을 포함하므로, DDS 브라우팅 서비스 장치라고도 할 수 있다.
GDS 관리부(137)는, 전술한 도메인 관리부(110)에서 수집된 도메인 정보에 기초하여 GDS 노드 맵을 구축하고, GDS 노드 맵에 기초하여 DDS 미들웨어 디바이스(300)들을 각 도메인 참여자로서 매핑 저장 및 관리할 수 있다.
한편, 트래픽 제어부(135)는, DDS 제품 간 상호 운용성 보장을 위해, 통신 관리부(130)를 통해 송수신되는 RTPS 표준 메시지를 UDP와 같은 통신 프로토콜 패킷으로 변환하는 처리를 수행할 수 있으며, 이러한 변환 프로세스는 발간 요청 받은 메시지를 RTPS 표준에 따른 형태로 직렬화하는 직렬화 프로세스와, 지연 시간 최소화 프로세스를 수행할 수 있다. 이에 대하여는 보다 구체적으로 도 7 내지 도 14를 참조하여 설명하도록 한다.
도 7은 본 발명의 실시 예에 따른 트래픽 제어부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.
도 7을 참조하면, 본 발명의 실시 예에 따른 트래픽 제어부(135)는, 트래픽 제어 활성화 결정부(1355), 패킷 처리부(1351), 이벤트 처리부(1352) 및 메시지 처리부(1353)를 포함하며, 패킷 처리부(1351)는 통신 인터페이스부(1354)를 통해 외부 네트워크와 연결될 수 있고, 메시지 처리부(1353)는 제1 사용자 장치(10)로부터 입력되는 메시지를 발간 처리하거나, 네트워크로부터 수신되는 메시지를 구독 처리하여 제1 사용자 장치(10)로 전달할 수 있다.
트래픽 제어 활성화 결정부(1355)는, 본 발명의 실시 예에 따른 트래픽 제어부(135)의 동작 활성화 여부를 설정 관리부(120)로부터 식별되는 설정 정보에 따라 결정할 수 있다. 설정 정보는 트래픽 제어에 대응하여 후술할 관련 트래픽 제어 기준 변수 및 지연 변수를 포함할 수 있다.
메시지 처리부(1353)는, DDS의 DCPS API를 사용해 제1 사용자 장치(10)과의 인터페이싱을 담당하며, 제1 사용자 장치(10)의 요청에 따라 메시지 발간/구독 요청을 수신하여, RTPS 규격에 따른 발간 메시지의 송신 처리와, 구독 메시지의 수신 처리를 수행한다.
그리고, 이벤트 처리부(1352)는 메시지 처리부(1353)의 메시지 발간 또는 구독 처리에 필요한 전송 이벤트 프로세스 및 재전송 이벤트 프로세스를 처리할 수 있다.
한편, 패킷 처리부(1351)는 통신 인터페이스부(1354)와 연결될 수 있으며, 메시지를 RTPS 패킷으로 패킷화하여 통신 인터페이스부(1354)로 전송하거나, RTPS 패킷으로부터 메시지를 복원하여 이벤트 처리부(1352)로 전달하는 처리를 수행할 수 있다.
이와 같은, 본 발명의 실시 예에서, 제1 사용자 장치(10)에서 작성된 메시지 정보는 메시지 처리부(1353)로 전달될 수 있으며, 전달된 메시지는 이벤트 처리부(1352)를 통해 발간 처리되어 패킷 처리부(1351)를 통해 패킷화되어 통신 인터페이스부(1354)를 통해 외부 LAN 또는 트래픽 라우팅을 통한 WAN 네트워크로 전송될 수 있다.
그리고, 메시지 처리부(1353)는 제1 사용자 장치(10)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부(1352)를 통한 구독 메시지 처리를 통해 패킷 처리부(1351)에서 통신 인터페이스부(1354)로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부(1352)를 통해 메시지 처리부(1353)로 전달되어 제1 사용자 장치(10)로 출력될 수 있다.
특히, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, DDS 제품 간 상호 운용성 보장을 위해, 통신 인터페이스부(1354)를 통해 송수신되는 RTPS 표준 메시지를 UDP와 같은 통신 프로토콜 패킷으로 변환하는 처리를 수행할 수 있으며, 이러한 변환 프로세스는 발간 요청 받은 메시지를 RTPS 표준에 따른 형태로 직렬화하는 직렬화 프로세스를 포함할 수 있다.
그리고, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 직렬화 프로세스에 있어서, 실시간 배칭(BATCHING) 프로세스를 통해 대역폭의 낭비를 해소하고, 실시간성을 보장할 수 있다.
보다 구체적으로, 예를 들어 RTPS에서는 기본적으로 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화되도록 구성되어 있다. 따라서 제1 사용자 장치(10)에서 100개의 메시지를 발간 요청하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신될 수 있다.
그러나, 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.
이에 따라, 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장하기 위하여, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, RTPS 서브 메시지에 패킷의 허용 가능한 최대 바이트 한도까지 복수의 메시지를 배칭(BATCHING) 처리할 수 있는 직렬화 프로세스를 처리할 수 있으며, 이를 위한 하나 이상의 메시지 버퍼를 포함할 수 있다.
또한, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 이벤트 처리부(1352)에서 처리되는 각 이벤트의 시작과 종료 처리를 수행함에 있어서, 스레드간 통신으로 발생하는 지연과 상태 전환으로 발생되는 지연 시간을 최소화하기 위하여, 단일 스레드로 메시지의 발간 또는 구독 프로세르를 처리하도록 하는 입출력 패스스루 경로를 활성화할 수 있으며, 이러한 입출력 패스스루 활성화 여부는 메시지의 지연 시간에 따라 동적으로 가변 처리됨으로써, 환경 적응적으로 지연 시간의 최소화를 달성할 수 있다.
그리고, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 트래픽 제어시의 유실이 일어나지 않도록 하는 최대 대역폭을 설정할 수 있으며, 이는 패킷 전송 파라미터에 따른 지연 시간 연산을 통해 송신 대기 처리를 수행하도록 함으로써 조절될 수 있다.
도 8은 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.
도 8을 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는, 입출력 패스스루 활성화부(1351a), 직렬화부(1351b), 트래픽 지연 제어부(1351c) 및 송수신부(1351d)를 포함한다.
먼저, 패킷 처리부(1351)는 RTPS의 전송 계층 프로토콜로 UDP를 사용할 수 있으며, 미들웨어를 통해 생성되는 미들웨어 내부 데이터, 사용자 데이터를 RTPS 메시지로 캡슐화 처리할 수 있다. RTPS는 UDP를 전송 계층으로 사용하므로 RTPS 메시지는 다시 UDP 데이터그램으로 캡슐화될 수 있다.
직렬화부(1351b)는 이러한 RTPS 메시지를 UDP 데이터그램으로 캡슐화하기 위한 RTPS 메시지의 직렬화 처리를 수행할 수 있다.
도 9는 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 10은 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 9를 참조하면, RTPS 메시지는 구체적으로, RTPS 헤더와 하나 이상의 RTPS 서브메시지 데이터로 구성될 수 있으며, RTPS 헤더는 임의 값(Magic Value), 프로토콜 버전(Protocol Version), 벤더 식별자(Vendor ID) 및 메시지를 발간하는 발간자 식별정보(GUID-Globally Unique Identifier)를 포함할 수 있다. DDS는 물리적으로는 통신 인터페이스부(1354)를 통한 IP Address 및 UDP Port를 사용하여 통신을 수행하지만, 논리적으로는 GUID Prefix로 상대방을 식별할 수 있게 정의된다.
그리고, RTPS 서브메시지 데이터는 서브메시지 헤더 정보 및 서브메시지 바디 정보를 포함할 수 있다. 서브메시지 헤더 정보는 서브메시지의 종류 정보와 크기 정보를 포함할 수 있다. 서브메시지 바디 정보에는 메시지가 표현하고자 하는 실제 데이터가 포함될 수 있다.
서브 메시지의 종류 정보는, DATA, DATA_FRAG, GAP, ACKNACK, HEARTBEAT, HEARTBEAT_FRAG, PAD, INFO_SRC, INFO_DST, INFO_TS 또는 INFO_REPLY 와 같이 분류될 수 있으며, 각각 서브메시지 바디에 포함된 실제 데이터의 속성을 나타낼 수 있다.
그리고, 도 10(A)를 참조하면, 기본적으로 종래 기술에서 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화된다. 따라서 사용자가 100개의 메시지를 발간하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신된다. 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는, 도 10(B)에 도시된 바와 같이, RTPS 메시지를 구성하는 RTPS 서브 메시지상에, 패킷에 허용되는 최대 바이트 한도까지 배칭(Batching) 처리를 수행할 수 있다. 따라서 사용자 메시지가 충분히 작을 경우, 복수의 사용자 메시지를 1개의 RTPS 메시지로 직렬화 처리할 수 있다.
이를 위해, 직렬화부(1351b)는 메시지 배칭을 위한 별도의 메시지 버퍼(미도시)를 포함할 수 있다. 메시지를 배칭하기 위해서는 충분한 메시지가 메시지 버퍼에 쌓여 있어야 한다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 충분한 메시지가 메시지 버퍼에 쌓이도록 하기 위해, 제1 사용자 장치(10)에서 메시지 발간 요청을 네트워크 전송 속도보다 빠르게 요청한 경우, 즉시 전송이 불가능한 메시지로 판별하여 메시지 버퍼에 누적되도록 처리할 수 있다. 그리고, 직렬화부(1351b)는 상기 사용자장치(200)에서 수신된 메시지 발간 요청을 강제 지연 처리함으로써, 메시지가 메시지 버퍼에 쌓일 시간을 확보하도록 할 수 있다.
특히, DDS 표준에서는 QoS 파라미터로서 지연 할당(LATENCY_BUDGET) 파라미터를 정의하고 있다. 지연 할당 파라미터는, 발간측 제1 사용자 장치(10)에 적용될 수 있으며, 단지 데이터 통신의 긴급도를 표현하는 수치로 정의는 되어 있으나, 실제 의미는 구현자가 임의로 부여할 수 있는 측면이 존재한다. 따라서, 본 발명의 실시 예에 따른 직렬화부(1351b)는 지연 할당(LATENCY_BUDGET) 파라미터를 RTPS 메시지를 배치하기 위한 메시지 송신 최대 지연 시간으로 재정의할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 지연 할당 파라미터에 기초한 메시지 송신 최대 지연 시간 동안, 제1 사용자 장치(10)로부터 수신된 메시지 발간 요청을 강제 지연 처리하고 요청된 발간 메시지를 메시지 버퍼에 누적하며, 지연 시간이 경과되면 누적된 메시지들을 배칭 처리하여 직렬화된 1개의 RTPS 병합 메시지로 구성하며, 구성된 RTPS 병합 메시지를 송수신부(1351d)를 통해 통신 패킷으로 변환하여 통신 인터페이스부(1354)로 출력할 수 있다.
이러한 RTPS 병합 메시지는, DDS에서 정의된 RTPS 표준 규격을 그대로 따르므로 상호 운용성에 영향을 미치지 않으며, 수신 측에서는 RTPS 병합 메시지에 포함된 메시지들의 시작점부터 종료점까지의 직렬화된 데이터를 각각 취득할 수 있으므로, 실시간 배칭 전송 및 수신 처리가 가능하게 된다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)는 앞서 서술한 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장할 수 있다.
도 11은 이러한 본 발명의 실시 예에 따른 직렬화부(1351b)의 처리에 따른 패킷 처리부(1351)의 동작을 설명하기 위한 흐름도이다.
도 11을 참조하면, 본 발명의 실시 예에 따른 직렬화부(1351b)는 이벤트 처리부(1352)의 이벤트가 발생되어 전달되면(S101), 메시지 발간 이벤트인지 판단한다(S103).
메시지 발간 이벤트인 경우, 직렬화부(1351b)는 발간 메시지에 동일한 GUID를 갖는 시퀀스를 부여하고, 메시지 버퍼에 삽입 처리한다(S109).
예를 들어, 발간 메시지에 할당된 시퀀스는 1, 2, 3 과 같은 일련번호일 수 있으며, 메시지 버퍼에 삽입되는 모든 메시지들은 동일한 발간자 식별자(GUID)에 매칭될 수 있다.
그리고, 직렬화부(1351b)는 메시지 버퍼가 가득 찼는지 판단하고(S111), 가득 찬 경우 버퍼링된 메시지의 배칭 처리를 수행한다(S113). 만약 가득 차지 않은 경우에는 일정 지연 할당 주기 시간까지 발간 이벤트 발생을 대기 처리할 수 있다.
여기서, 직렬화부(1351b)는 버퍼링된 메시지 배칭 처리를 위해, 동일 발간자 식별자(GUID)에 매칭된 하나의 RTPS 메시지에 일련번호 시퀀스가 할당된 복수의 서브메시지들을 포함시키는 처리를 수행할 수 있다.
그리고, 직렬화부(1351b)는 배칭된 메시지를 송수신부(1351d)로 전달하며, 송수신부(1351d)에서는 패킷화 처리하여 통신 인터페이스부(1354)를 통해 외부 네트워크로 전송한다(S115).
한편, 본 발명의 실시 예에 따르면 전술한 바와 같이 지연 할당(LATENCY_BUDGET) QoS 파라미터가 설정될 수 있다.
이에 따라, S103 단계에서 발생된 이벤트가 메시지 발간 이벤트가 아닌 것으로 확인되는 경우, 직렬화부(1351b)는 지연 할당 주기 이벤트로 판별하며, 메시지 버퍼에 지연 할당 시간 이상으로 대기된 메시지가 존재하는지 확인한다(S105).
만약 지연 할당 시간으로 대기된 메시지가 존재하는 경우, 직렬화부(1351b)는 현재까지 버퍼링된 메시지의 배칭 처리(S113) 및 전송 처리(S115)를 수행한다.
그러나, 아직 지연 할당 이상 대기된 메시지가 존재하지 않으면 직렬화부(1351b)는 지연 할당에 따른 주기적 이벤트를 재예약 처리하여(S107), 지연 할당 시간 이상으로 초과 지연되는 데이터는 없도록 처리할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(1351b)의 배칭 처리는 실시간성을 보장할 수 있으며 특히 지연 할당(LATENCY_BUDGET) QoS 파라미터 설정을 통하여, 특정 파라미터에 의해 보장된 지연 한도 내에서의 최대 메시지 처리량을 확보할 수 있게 된다.
한편, 다시 도 8을 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 입출력 패스스루 활성화부(1351a)를 포함한다.
본 발명의 실시 예에 따른 라우팅 서비스 장치(100) 및 미들웨어 디바이스(300)는, 복잡한 DDS의 기능들을 구현하는 복잡도를 낮추기 위해 복수의 처리부로 구분될 수 있으며, 각 처리부는 다른 처리부와 흐름 연계를 위한 일부 로직을 제외하면, 대부분의 로직이 다른 처리부와 독립적으로 구동될 수 있다. 따라서, 본 발명의 실시 예에 따른 라우팅 서비스 장치(100) 및 미들웨어 디바이스(300)는 각각의 처리부에 자체적인 프로세서가 포함될 수 있고, 각 프로세서는 각각의 프로세스 스레드를 처리함으로써 동시에 여러 작업이 수행되도록 하여 대량의 메시지 발간/구독 요청에 대응할 수 있다.
그러나, 한 처리부에서 다음 처리부로 처리 흐름이 변경될 때 지연시간이 발생한다. 이는 이벤트 전달 시작 및 종료 시점에서 발생하는 다음 처리부와의 스레드 간 통신으로 발생하는 지연과, 그리고 다음 처리부의 스레드가 대기 상태였을 경우 해당 스레드가 다시 시작되기까지의 지연으로 인해 발생될 수 있다.
이러한 지연 발생을 최소화하기 위하여, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 단일 처리부의 스레드 구동을 통해, 각 처리부간 이벤트 전달 시작 또는 종료 스레드 생성 없이, 곧바로 작업을 처리하여 불필요한 지연시간이 발생하는 것을 최소화 할 수 있으며, 이러한 입출력 패스스루 기능의 활성화 여부를 판단하여 ON 또는 OFF 처리할 수 있다.
예를 들어, 입출력 패스스루를 활성화 한 경우, 한 처리부의 스레드를 사용하여 메시지의 최종 처리까지 진행하므로 병렬 처리는 불가능하게 되며, 그 결과 다량의 메시지 처리 성능을 감소할 수 있다. 따라서, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 따라서 처리량과 지연시간을 모두 최적화하기 위해 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.
도 12는 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 12를 참조하면, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 처리량과 지연시간을 모두 최적화하기 위해 RTPS 패킷 송수신 시간 기록의 시각차 평균 시간과, RTPS 패킷 1개의 송수신 처리 시간을 비교하여, 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.
보다 구체적으로, 먼저 입출력 패스스루 활성화부(1351a)는 RTPS 패킷의 송수신 시간 정보를 누적 기록한다(S201).
그리고, 입출력 패스스루 활성화부(1351a)는 시간 기록이 32회 이상 측정되었는지 판단한다(S203).
여기서, 시간 기록의 측정 회수는 네트워크 환경에 따라 상이할 수 있다.
그리고, 입출력 패스스루 활성화부(1351a)는 측정된 RTPS 패킷의 각 패킷 간 시각차 평균 값이, 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인지 판단한다(S205).
만약 시각차 평균이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인 경우, 입출력 패스스루로 처리되는 현재 패킷의 개수가 대량인 것으로 판단될 수 있으며, 이에 따라 대랑 메시지 처리에 효율적인 병렬 프로세스를 적용하기 위해 입출력 패스스루 활성화부(1351a)는 입출력 패스스루 기능을 비활성화 처리할 수 있다(S207).
반면, 시각차 평균 값이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간을 초과하는 경우에는 직렬 메시지 처리가 지연 시간을 최소화할 수 있으므로, 입출력 패스스루 활성화부(1351a)는 입출력 패스스루 기능을 활성화한다(S209).
이와 같이, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(1351a)는, 지연 시간을 메시지의 실시간 전송 상황 따라 최소화할 수 있으며, 특히 대량의 메시지 처리 시에는 메시지를 각 처리부가 병렬로 처리하는 것이 지연시간을 최소화 할 수 있으므로, 입출력 패스스루를 비활성하고, 소량의 메시지 처리 시에는 이벤트 전달 시작/종료의 오버헤드가 크게 작용하는 것이 예상되므로, 입출력 패스스루를 활성화하여 지연시간을 최소화할 수 있는 것이다.
한편, 다시 도 8을 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 입출력 트래픽 지연 제어부(1351c)를 포함할 수 있다.
송수신부(1351d)는, 직렬화부(1351b)에서 처리된 데이터를 패킷화하여 외부 네트워크로 패킷을 송신할 수 있다. 다만, 통신 인터페이스부(1354)의 네트워크 인터페이스의 대역폭이 실제 네트워크의 대역폭보다 클 경우, 실제 네트워크의 대역폭 초과분에 해당하는 패킷은 모두 유실되는 문제점이 발생될 수 있다.
유실된 패킷을 복구하기 위해 송수신부(1351d)는 재전송 처리를 시작할 수 있다. 그러나 재전송 처리 역시 네트워크로 패킷을 송신하는 행위이기 때문에, 재전송 과정에서 대역폭 초과분이 발생한 만큼 일부 재전송 패킷 또한 유실될 수 있으며, 일부 유실된 재전송 패킷을 다시 재전송해야 하는 악순환이 통신 성능의 저하를 야기한다.
이에 따라, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 직렬화부(1351b) 및 송수신부(1351d) 사이를 연결할 수 있으며, 송신 시간 지연을 통해 송신 대역폭이 일정하게 제어될 수 있도록 하여, 대역폭 초과분에 따른 패킷 유실을 방지할 수 있다. 이러한 최대 대역폭 허용량은 실제 네트워크 환경에 따라 달라질 수 있으며 사용자 설정에 따라 사전 결정될 수 있다.
도 13은 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)의 동작을 설명하기 위한 흐름도이다.
도 13을 참조하면, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 직렬화부(1351b)로부터 직렬화된 메시지 데이터가 전달되면(S310), 현재 시간이 사전 설정된 대역폭에 따른 지연 시간 이내인지 판단한다(S303).
그리고, 트래픽 지연 제어부(1351c)는 허용량 이내인 경우에는 송수신부(1351d)로 메시지를 전달하며(S305), 허용량을 초과하는 경우 일정 시간 동안 전송 지연을 처리하며(S307), 지연된 메시지는 전송 지연 시간 이후 송수신부(1351d)로 전달될 수 있다.
보다 구체적으로, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 상기 S303 단계에서, 하기의 수학식 3을 이용하여, 현재 시점이 사전 설정된 대역폭에 따른 지연 시간 이내인지 여부를 판단할 수 있다.
이와 같은 수학식 3은, n개의 패킷을 송신하였을 때, 패킷 전송이 가능한 시간 T_open을 연산하는 프로세스를 나타내고 있으며, 트래픽 지연 제어부(1351c)는 패킷 전송이 가능한 시간 이내인지 여부에 따라 메시지 전송의 지연여부 및 지연 시간을 결정할 수 있다.
보다 구체적으로, T_open은 패킷 전송이 가능한 시간을 나타내며, T_current가 T_open보다 이전일 경우, 패킷 전송은 지연될 수 있다.
T_current는 현재 시간을 나타낼 수 있으며, UNIX Epoch Timestamp를 나노초 해상도로 표현한 값이 예시될 수 있다. 예를 들어 2019년 10월 1일 16시 30분에 대응하는 T_current는 1,569,915,000,000,000,000 값을 가질 수 있다.
그리고, B는 미들웨어 디바이스(300)가 사용하는 네트워크 인터페이스의 최대 대역폭 값을 bps(bit per second)로 나타내는 값일 수 있다. 최대 대역폭 값은 트래픽 지연 제어부(1351c)가 통신 인터페이스부(1354)로부터 식별하여 감지하거나, 별도로 사용자에 의해 지정될 수도 있다.
그리고, 10^9 / B 는 비트슬라이스를 나타내는 것으로, 네트워크 장치의 대역폭이 1비트를 보내는데 걸리는 나노초를 의미할 수 있다.
그리고, L_i는 i번째 패킷의 크기를 나타낼 수 있으며, 패킷 크기 Li는 바이트 단위이므로, 패킷 크기의 단위를 비트로 통합하기 위해 패킷 크기에 8을 곱한 값이 누적 합산되도록 정의될 수 있다.
이와 같이 제안된 수학식 1을 참조하면, 트래픽 지연 제어부(1351c)는, 사전 설정된 최대 대역폭 내에서 패킷 전송이 발생하여, Tx 트래픽이 발생하였을 때, 나노 초 단위로 구분된 비트슬라이스가 얼마나 사용되는지를 연산하여, 패킷 전송이 가능한 시간 T_open을 연산할 수 있다.
예를 들어, 트래픽 지연 제어부(1351c)는 현재 측정한 T_current가 마지막으로 계산한 T_open보다 작다면 T_open - T_current 값 만큼의 지연 시간 동안 전송을 지연처리할 수 있는 것이다.
도 14는 트래픽 지연 제어부(1351c)의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
도 14를 참조하면, 본 발명의 실시 예에 따른 트래픽 지연 제어부(1351c)는 초기 T_open은 0으로 입력하고, T_current를 현재 값으로 갱신한다(S401).
그리고, 트래픽 지연 제어부(1351c)는 T_current가 T_open 보다 큰지 판단한다(S403).
만약 T_current가 T_open 보다 작은 경우, 트래픽 지연 제어부(1351c)는 T_open - T_current 값의 차이가 1ms 이하인지 판단한다(S405).
만약 T_open - T_current 값의 차이가 1ms 보다 큰 경우, 트래픽 지연 제어부(1351c)는 T_open이 T_current보다 작은지 판단한다(S407).
T_open이 T_current보다 작지 않으면, 트래픽 지연 제어부(1351c)는 전송 대기를 처리하고, T_current로 T_open 값을 갱신한다(S409).
한편, S403 단계에서 T_current가 T_open보다 큰 경우, 트래픽 지연 제어부(1351c)는 T_current - T_open 값의 차이가 1ms 이하인지 판단한다(S411).
만약 상기 S407 단계에서 T_open이 T_current보다 작거나, T_current - T_open 값의 차이가 1ms 이하가 아닌 경우에는 T_current를 다시 갱신하며(S413), T_open을 다시 갱신한다(S415).
이와 같은 처리에 따라, 송신 대기가 너무 자주 일어나지 않도록 T_open 값 및 T_current 값이 조절될 수 있다. 특히, 현재 시간이 가장 마지막으로 패킷을 송신한 시간으로부터 1 밀리초 이상 경과한 경우는 송신대기 처리 흐름이 발생하지 않도록 T_open 값은 T_current 값으로 갱신 처리될 수 있다.
한편, 다시 도 8을 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(1351)는 송수신부(1351d)를 포함하며, 송수신부(1351d)는 직렬화부(1351b) 및 트래픽 지연 제어부(1351c)를 통해 수신된 발간 메시지를 패킷화하여 통신 인터페이스부(1354)를 통해 외부 네트워크로 전송하거나, 외부의 패킷을 수신하여 직렬화부(1351b)로 전달하여 역직렬화된 구독 메시지가 메시지 처리부(1353)를 통해 제1 사용자 장치(10)로 전달되도록 처리할 수 있다.
이와 같은 구성을 통해, 본 발명의 실시 예에 따른 라우팅 서비스 장치(100)는, 실시간성을 유지할 수 있는 메시지 배칭 처리와 입출력 처리 패스스루 프로세스 및 트래픽 지연 제어 처리를 제공할 수 있다.
상술한 본 발명의 다양한 실시 예들에 따른 방법은 프로그램으로 구현되어 다양한 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장된 상태로 각 서버 또는 기기들에 제공될 수 있다. 이에 따라, 사용자 단말(100)은 서버 또는 기기에 접속하여, 상기 프로그램을 다운로드할 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
Claims (9)
- 하나 이상의 DDS(Data Distribution Service) 미들웨어 디바이스에 연결되는 라우팅 서비스 장치의 동작 방법에 있어서,
제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 단계; 및
상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 지능적 토픽 데이터 압축을 이용한 데이터 효율 관리 처리를 수행하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제1항에 있어서,
상기 데이터 효율 관리 처리를 수행하는 단계는,
상기 DDS 트래픽 데이터의 토픽(Topic) 데이터를 분석하여, 데이터 고속 압축을 수행할 DDS 트래픽 데이터를 선택적으로 결정하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제2항에 있어서,
상기 선택적으로 결정하는 단계는,
상기 토픽 데이터의 크기 정보, 발기 시기 정보, 발갓 횟수 정보 중 적어도 하나를 이용하여 상기 데이터 고속 압축을 수행할 DDS 트래픽 데이터를 선택적으로 결정하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제3항에 있어서,
상기 선택적으로 결정하는 단계는,
상기 토픽 데이터의 페이로드 정보 및 데이터 크기 정보를 상기 선택적 결정을 위한 초기 압축 정보로 결정하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제4항에 있어서,
초기 압축 정보 결정부에서 결정된 토픽 데이터의 페이로드 정보 또는 데이터 크기 정보 중 적어도 하나에 기초하여 산출되는 확률 기반 비교 연산을 처리하는 단계를 더 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제5항에 있어서,
상기 비교 연산을 처리하는 단계는,
압축 실패 변수에 기초하여 매 토픽 데이터마다 실시간 갱신되는 데이터 압축 적용 비교 변수 C_comp를 이용하여, 압축 허용여부를 사전 결정하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제6항에 있어서,
압축 허용된 토픽 데이터의 압축률이 사전 설정된 최소 압축률보다 높은 경우, 상기 압축 실패 변수를 갱신하고, 상기 초기 압축 정보를 이용하여 압축 전 초기 토픽 데이터를 압축 없이 출력하는 단계를 더 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제7항에 있어서,
압축 허용된 토픽 데이터의 압축률이 사전 설정된 최소 압축률보다 낮은 경우, 압축된 토픽 데이터를 선택 출력하는 단계를 더 포함하는
DDS 라우팅 서비스 장치의 동작 방법. - 제1항에 있어서,
상기 라우팅하는 단계는, 상기 트래픽 데이터의 메시지 기반 제어 처리를 수행하는 단계를 포함하고,
상기 제어 처리를 수행하는 단계는,
사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 단계; 및
상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리 단계를 포함하며,
상기 패킷 처리 단계는,
발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는 단계를 포함하는
DDS 라우팅 서비스 장치의 동작 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200108873 | 2020-08-27 | ||
KR20200108873 | 2020-08-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220027706A true KR20220027706A (ko) | 2022-03-08 |
Family
ID=80813240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200143247A KR20220027706A (ko) | 2020-08-27 | 2020-10-30 | 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220027706A (ko) |
-
2020
- 2020-10-30 KR KR1020200143247A patent/KR20220027706A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9609065B2 (en) | Bridge for implementing a converged network protocol to facilitate communication between different communication protocol networks | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
US10609125B2 (en) | Method and system for transmitting communication data | |
US8838782B2 (en) | Network protocol processing system and network protocol processing method | |
KR20220027714A (ko) | 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 시스템 | |
CN106130991A (zh) | 一种数据转发方法及装置 | |
US10560389B2 (en) | Method and apparatus for controlling send buffer of transmission control protocol in communication system | |
US20090252167A1 (en) | Queue processing method | |
KR20220027706A (ko) | 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법 | |
KR20220027713A (ko) | 기록매체 | |
KR20220027705A (ko) | 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치 | |
US10565149B2 (en) | Standardized hot-pluggable transceiving unit, hosting unit and method for applying delays based on port positions | |
KR20210073005A (ko) | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작 방법 | |
KR20220027708A (ko) | 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법 | |
KR20220027707A (ko) | 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치 | |
KR102211005B1 (ko) | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치 | |
WO2020095677A1 (ja) | アクセス制御方法、アクセス制御装置、およびデータ処理装置 | |
KR102231481B1 (ko) | 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치 | |
JP2009206900A (ja) | データ転送装置 | |
KR20210073046A (ko) | 기록매체 | |
KR20210073031A (ko) | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작을 위한 프로그램 | |
KR20210073039A (ko) | 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치의 동작 을 위한 프로그램 | |
KR20210073034A (ko) | 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 시스템 | |
KR20210073037A (ko) | 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치의 동작 방법 |