KR20220027708A - 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법 - Google Patents

토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법 Download PDF

Info

Publication number
KR20220027708A
KR20220027708A KR1020200143305A KR20200143305A KR20220027708A KR 20220027708 A KR20220027708 A KR 20220027708A KR 1020200143305 A KR1020200143305 A KR 1020200143305A KR 20200143305 A KR20200143305 A KR 20200143305A KR 20220027708 A KR20220027708 A KR 20220027708A
Authority
KR
South Korea
Prior art keywords
priority
dds
message
data
packet
Prior art date
Application number
KR1020200143305A
Other languages
English (en)
Inventor
조재민
조성일
Original Assignee
(주)구름네트웍스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)구름네트웍스 filed Critical (주)구름네트웍스
Publication of KR20220027708A publication Critical patent/KR20220027708A/ko

Links

Images

Classifications

    • H04L67/322
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • 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/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

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

Abstract

본 발명의 실시 예에 따른 장치의 동작 방법은, 하나 이상의 DDS(Data Distribution Service) 미들웨어 디바이스에 연결되는 라우팅 서비스 장치의 동작 방법에 있어서, 제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 단계; 및 상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 토픽 기반 우선순위 데이터 제어를 이용한 데이터 효율 관리 처리를 수행하는 단계를 포함한다.

Description

토픽 기반 우선순위 데이터 제어를 처리하는 DDS 라우팅 서비스 장치의 동작 방법{A METHOD OPERATING OF A DDS ROUTING SERVICE PROVIDING APPARATUS PROCESSING A DATA PRIORITY CONTROL BASED ON TOPIC}
본 발명은 데이터 분산 서비스의 라우팅 서비스 장치의 동작 방법에 관한 것이다. 보다 구체적으로, 본 발명은 토픽 기반 우선순위 데이터 제어를 처리하는 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는 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(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를 참조하면, 본 발명의 실시 예에 따른 우선순위 제어부(145)는, DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 트래픽의 우선 순위를 제어하는 프로세스를 수행할 수 있다. 우선 순위는 네임 패턴 매칭(Nme Pattern Matching) 등을 통해 지정될 수 있으며, 특히 데이터가 폭증하는 등의 상황에서는 특정한 토픽에 대한 처리 우선 순위가 설정되어 DDS 토픽별 최소한의 통신 대역폭이 확보되도록 할 수 있다.
이를 위해, 본 발명의 실시 예에 따른 우선순위 제어부(145)는, 우선순위 설정 정보 등록부(1451), 우선 순위 결정부(1453), 우선 순위 큐 처리부(1455) 및 패킷 입출력부(1457)를 포함한다.
우선 순위 설정 정보 등록부(1451)는, 설정 관리부(120)로부터 사용자가 지정한 우선 순위 설정 정보를 획득하며, 획득된 우선 순위 설정 정보를 우선 순위 결정부(1453)로 전달한다.
그리고, 우선 순위 결정부(1453)는, 패킷 입출력부(1457)를 통해 라우팅 처리되는 트래픽 데이터의 패킷 데이터를 토픽 기반으로 분석하고, 상기 우선 순위 설정 정보에 기초한 우선순위 제어 처리 여부를 결정한다.
우선 순위 결정부(1453)는 패킷 데이터 중 우선순위 지정이 가능한 토픽 패킷을 식별할 수 있으며, 식별된 토픽 패킷에 대응하는 우선순위 정보를 결정하여, 우선 순위 큐 처리부(1455)로 전달할 수 있다.
우선 순위 큐 처리부(1455)는, 패킷 입출력부(1457)로 출력될 패킷 데이터 큐(Queue, 전송 대기열)를 관리할 수 있으며, 특히 우선순위 정보가 지정된 토픽 패킷은 우선순위 큐에 등록하고, 우선순위가 지정되지 않은 패킷은 일반 큐에 등록할 수 있다.
패킷 입출력부(1457)는 수신된 패킷을 우선 순위 결정부(1453) 전달하여 우선순위 지정을 요청할 수 있으며, 우선 순위 큐 처리부(1455)를 통해 전달된 우선순위 큐의 토픽 패킷들은 일반 큐의 패킷들보다 우선적으로 전송할 데이터로 선정하고, 이에 기초한 데이터 전송 순서의 변경 처리를 수행할 수 있다.
이에 따라, 라우팅 서비스에 있어서 전송할 패킷이 획득되는 시점에, 그 토픽 기반의 우선 순위가 사전 결정될 수 있으며, 결정된 우선 순위에 기반한 우선 순위 큐 관리가 처리되고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 함으로써, 망의 과부하 상태 또는 데이터 폭증 상태에서도 전송 대역폭 및 퀄리티를 유지시킬 수 있다.
보다 구체적으로, 우선순위 설정 정보 등록부(1451)는, 우선순위 설정 정보에 기초하여 데이터 큐 리스트를 생성할 수 있으며, 생성된 데이터 큐를 우선 순위 결정부(1453) 및 우선 순위 큐 처리부(1455)로 전달할 수 있다. 우선순위 설정 정보가 없는 경우에는 가장 작은 우선 순위 값만을 갖는 하나의 우선순위 큐만이 생성될 수 있다.
그리고, 우선 순위 결정부(1453)는 패킷의 토픽 정보와 우선 순위 설정 정보에 기초하여, 각 데이터 큐에 접근할 확률을 연산하며, 그 확률 값에 따라 우선순위 큐 지정 여부를 결정할 수 있다.
보다 구체적으로, 예를 들어 우선 순위 설정 정보는 타입 정보와 레벨 정보를 포함할 수 있다.
타입 정보는 우선 순위 결정 규칙을 포함하며, 예를 들어 토픽 이름(by topic name)과 같이, 우선 순위를 결정할 기준 타입 정보를 포함할 수 있다.
레벨 정보는, 우선 순위 결정 규칙에 대응하는 패턴별 그룹 레벨을 포함할 수 있다. 패턴이 지정된 레벨이 높을 수록 더 높은 우선 순위로 결정될 수 있다.
이와 같은 타입 정보 및 레벨 정보는 문자열로 표시될 수 있으며, 타입 정보는 구분자 설정으로 지정되고, {패턴, 값} 객체의 배열에 따라 레벨 정보가 지정될 수 있다. 아래 표는 타입 정보 및 레벨 정보를 포함하는 설정 정보의 예시이다.
타입 정보 기본값: “none”,
목록: [ “none”, “by_topic_name” ]
레벨 정보 levels:
- patterns: [ "Urgent*" ]
rate: 100
- patterns: [ "Normal*", "Norm" ]
rate: 50
표 1에 도시된 바와 같이, 우선 순위로 구분할 패킷의 토픽 타입은 토픽 이름(by_topic_name)일 수 있으며, 그 이름 패턴에 "Urgent"가 포함된 경우 100의 우선 순위 레벨이 지정되고, 그 이름 패턴에 "Normal"이 포함되거나 "Norm"인 경우, 50의 우선 순위 레벨이 지정될 수 있다. 이 경우, 토픽의 이름 타입에 "Urgent"가 포함된 패킷은 100의 레벨로 우선 순위 및 그 큐 리스트가 할당될 수 있으며, , "Normal"이 포함되거나, "Norm"인 패킷은 50의 레벨로 우선 순위 및 그 큐 리스트가 할당될 수 있다.
그리고 우선 순위 결정부(1453)는, 패킷간 상호 레벨을 비교하여 n개 패킷들 중 i번째 데이터 큐 Q_i에 접근할 확률 P_i를 연산할 수 있으며, 연산된 P_i에 기초한 각 패킷별 우선 순위 큐 할당 여부를 결정할 수 있다.
보다 구체적으로, P_i에 대한 연산은 하기 수학식 1로 설명될 수 있다.
Figure pat00001
여기서, V_total은 사용자가 우선 순위 설정 정보로서 등록한 우선순위 큐 리스트에서 우선순위 레벨 값을 모두 더한 값일 수 있다.
그리고, Vi는 i번째 우선순위 레벨의 값을 수치로 표현한 것으로, 상기 rate 100, rate 50 등과 같이 사용자에 의해 설정될 수 있다.
P_i는 현재 패킷이 i번째 우선 순위에 대항하는 데이터 큐에 접근할 확률을 나타낸다.
P_total은 우선 순위 큐 리스트에 있는 모든 우선 순위 큐에 데이터가 접근할 확률의 합으로 항상 1일 수 있다.
이에 따라, 우선순위 제어부(145)는, 초기에 V_total을 갱신하고, 우선 순위 설정 정보가 존재하는 경우, 이에 기초한 P_i 의 갱신 및 Q_i의 생성 처리를 수행할 수 있게 된다.
도 5는 본 발명의 실시 예에 따른 우선 순위 제어부의 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 우선 순위 결정부(1453)는, 패킷 입출력부(1457)로주터 로드된 패킷을 구분하여 데이터 큐에 등록할 수 있는 바, 이에 기초한 각 패킷별 우선 순위 레벨을 결정할 수 있다. 다만, DDS RTPS 패킷 및 RS 패킷 중 우선 순위를 적용할 수 있는 패킷은 DDS RTPS 패킷 중에서도 DATA 패킷일 수 있으며, 이 중 사용자가 정의한 토픽에 해당하는 토픽 패킷에 대하여만 우선 순위 제어 처리가 제공될 수 있다.
따라서, 도 5는 토픽 패킷에 대한 우선 순위 제어가 처리되는 경우를 설명하기 위한 흐름도이며, 우선순위 패킷이 아닌 일반 데이터 큐는 우선 순위가 가장 낮은 값을 가질 수 있다.
우선 순위 제어 처리가 수행되면, 먼저 우선순위 제어부(145)는, 데이터 송신 시점의 데이터 큐 선정 기준 값인 C_current를 산출한다(S1501).
데이터 큐 선정 기준값 C_current는, 하기와 같은 수학식 2를 통해 산출될 수 있다.
Figure pat00002
여기서, R_current는 패킷이 현재 데이터 큐에 접근하는 시점에서 생성하는 난수의 값이며, 난수 생성 함수 사용시 반환하는 수의 최대값은 R_max로서 예를 들어 32647(16 진수 : 0x7fff) 일 수 있다. 그리고, R_total은 현재 처리 중인 전체 패킷들에 대해 할당된 난수들을 모두 더한 값일 수 있다.
그리고, 우선순위 제어부(145)는 우선 순위 타입 정보 및 레벨 정보에 기초하여, 가장 높은 순위의 데이터 큐 Q_i에 대한 현재 패킷의 접근 확률 P 값을 P_i로 연산하며(S1502), C_current 값이 P_i보다 작거나 같은지를 판단한다(S1503).
작거나 같지 않은 경우, 우선순위 제어부(145)는 Q_i의 패킷을 현재 데이터 큐 Q_current 보다 우선 출력할 데이터 큐의 패킷으로 선정할 수 있다(S1511).
작거나 같은 경우, 우선순위 제어부(145)는 C_current에서 P_i 값만큼을 차감하고, P_i에는 다음 순위 큐에 대응하는 확률 값을 설정한다(S1505).
이후, 우선순위 제어부(145)는 설정 정보에 다음 레벨 정보가 존재하는지 확인한다(S1507).
다음 레벨 정보가 존재하는 경우에는, 우선순위 제어부(145)는 상기 S1502 단계부터 다시 처리한다.
그러나, 다음 레벨 정보가 존재하지 않는 경우에는 우선순위 제어부(145)는 현재 데이터 큐 Q_current의 패킷을 출력 패킷으로 선정한다(S1509).
도 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을 이용하여, 현재 시점이 사전 설정된 대역폭에 따른 지연 시간 이내인지 여부를 판단할 수 있다.
Figure pat00003
이와 같은 수학식 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)

  1. 하나 이상의 DDS(Data Distribution Service) 미들웨어 디바이스에 연결되는 라우팅 서비스 장치의 동작 방법에 있어서,
    제1 로컬 네트워크를 통해 연결된 미들웨어 디바이스의 DDS 트래픽 데이터를, 광역 네트워크를 통해 상기 제1 로컬 네트워크와는 상이한 원격지에 위치한 제2 로컬 네트워크에 접속된 미들웨어 디바이스로 라우팅하는 단계; 및
    상기 라우팅되는 DDS 트래픽 데이터에 대응하여, 토픽 기반 우선순위 데이터 제어를 이용한 데이터 효율 관리 처리를 수행하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 데이터 효율 관리 처리를 수행하는 단계는,
    우선 순위 설정 정보에 따라 DDS 토픽 별 우선순위를 지정할 수 있는 기능을 제공하며, 결정된 우선 순위에 따라 패킷 데이터의 우선 순위를 제어하는 프로세스를 수행하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 우선 순위를 제어하는 프로세스를 수행하는 단계는,
    설정 관리부로부터 사용자가 지정한 우선 순위 설정 정보를 획득하며, 획득된 우선 순위 설정 정보를 우선 순위 결정부로 전달하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  4. 제3항에 있어서,
    상기 우선 순위 설정 정보는, 우선순위 결정 규칙 정보 및 상기 우선 순위 결정 규칙에 대응하는 패턴 별 우선순위 정보를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  5. 제4항에 있어서,
    상기 우선순위 결정 규칙 정보는 토픽 타입 정보를 포함하고, 상기 패턴별 우선순위 정보는 지정된 문자열 패턴별 우선 순위 레벨 정보를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  6. 제2항에 있어서,
    상기 우선 순위를 제어하는 프로세스를 수행하는 단계는,
    결정된 우선 순위에 기반한 우선 순위 큐 관리를 처리하고, 우선 순위 큐에 해당하는 패킷들부터 우선적으로 전송 처리되도록 하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  7. 제2항에 있어서,
    상기 우선 순위가 지정된 패킷은 DDS RTPS 패킷의 DATA 패킷 중 사용자가 정의한 토픽에 해당하는 토픽 패킷인
    DDS 라우팅 서비스 장치의 동작 방법.
  8. 제2항에 있어서,
    상기 우선 순위를 제어하는 프로세스를 수행하는 단계는,
    상기 우선 순위 설정 정보로부터 획득되는 우선 순위 타입 정보 및 레벨 정보에 기초하여, 가장 높은 순위의 데이터 큐 Q_i에 대응한 현재 패킷의 우선순위 확률 값 P_i를 연산하고, 상기 P_i 확률 값과 현재 데이터 큐 선정 기준값 C_current를 비교하여 우선 순위 큐 패킷의 우선 출력 여부를 결정하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
  9. 제1항에 있어서,
    상기 라우팅하는 단계는, 상기 트래픽 데이터의 메시지 기반 제어 처리를 수행하는 단계를 포함하고,
    상기 제어 처리를 수행하는 단계는,
    사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 단계; 및
    상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리 단계를 포함하며,
    상기 패킷 처리 단계는,
    발간 요청 받은 메시지를 RTPS(Real Time Publish Subscribe) 표준에 따른 포맷으로 직렬화하되, 메시지 버퍼에 누적되는 복수의 메시지들을 하나의 RTPS 메시지의 서브 메시지에 배칭(BATCHING) 처리하는 단계를 포함하는
    DDS 라우팅 서비스 장치의 동작 방법.
KR1020200143305A 2020-08-27 2020-10-30 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법 KR20220027708A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200108872 2020-08-27
KR1020200108872 2020-08-27

Publications (1)

Publication Number Publication Date
KR20220027708A true KR20220027708A (ko) 2022-03-08

Family

ID=80813239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200143305A KR20220027708A (ko) 2020-08-27 2020-10-30 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법

Country Status (1)

Country Link
KR (1) KR20220027708A (ko)

Similar Documents

Publication Publication Date Title
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US9774651B2 (en) Method and apparatus for rapid data distribution
WO2012030542A1 (en) Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
CN112631788B (zh) 数据传输方法及数据传输服务器
US8539089B2 (en) System and method for vertical perimeter protection
EP1124357A1 (en) Method and device for communicating between a first and a second network
KR20220027715A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스를 제공하는 프로그램
JP4555345B2 (ja) バス型ネットワーク構造の通信ネットワークシステム及びこれを用いたデータ送受信方法
US9083617B2 (en) Reducing latency of at least one stream that is associated with at least one bandwidth reservation
CN112838992A (zh) 报文调度方法及网络设备
KR20220027708A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법
KR20220027707A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치
KR20210073005A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작 방법
KR20220027711A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 시스템
KR20220027705A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치
KR20220027706A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법
Paikan et al. Communication channel prioritization in a publish-subscribe architecture
KR102211005B1 (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치
KR102231481B1 (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치
KR20210073031A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작을 위한 프로그램
KR20210073004A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 시스템
KR20210073029A (ko) 기록매체
KR20210073034A (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 시스템
KR20210073046A (ko) 기록매체
KR20210073037A (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination