gurumdds · 데이터-중심 통신을 위한 미들웨어로 정확한시간과 정확한장소에...

42
GurumDDS 소개 ()구름네트웍스

Upload: others

Post on 05-Jul-2020

67 views

Category:

Documents


1 download

TRANSCRIPT

GurumDDS 소개

(주)구름네트웍스

2

GurumDDS 제품군

03

● DDS는 국제표준화기구 OMG(Object Management Group)에서 제정한데이터-중심 통신을 위한 미들웨어로 정확한시간과 정확한장소에 올바른 데이터를 전송하는 최적화된 데이터 중심 분산처리 솔루션

OMG - GurumDDS

● 1990년 : DDS 기술 개발 (미국 함정전투체계 )

● 2000년 : 민간분야 DDS 적용 추진

● 2005년 : OMG DDS 국제표준으로 제정

● 2015년 : ROS2(로봇운영체제 ) DDS 채택

● 2016년 : 전력분야 OpenFMB에 DDS 표준

● 2017년 : IoT 산업 센서에 DDS XRCE 표준

● 2018년 : 자동차 통신 미들웨어로 DDS 표준

(Autosar 국제 표준)

● 2019년 : 전기자동차 충전 방전시스템에

DDS 채택 논의중 (IEC 국제표준)

● GurumDDS는 국제표준화기구 OMG(Object Management Group)에서 제정한 DDS(Data Distribution Service) 데이터-중심 통신을 위한 미들웨어 프로토콜 및 API 표준을 준수하고, 국내 최초로 OMG의 DDS vender로 등록된 제품

OMG - GurumDDS

출처: https://dds-foundation.org

OMG - GurumDDS

GurumDDS 제품군

6

제품명 설명 비고

GurumDDS OMG DDS Vendor

상용화

GurumDDS Gateway WAN 환경 DDS 프로토콜 변환

GurumDDS Tool Monitor, Modeller, Record & Replay

GurumROS2 로봇운영체제 DDS 적용

GurumDDS RS WAN 환경 DDS QoS 보장

GurumDDS Nano GurumDDS의 ⅛ Size

개발중GurumDDS XRCE IoT 센서 등에 적용

GurumDDS Security OMG 표준의 DDS Security 지원

GurumDDS Module HW 형태로 개발, DDS Lite Version

● GurumDDS는OMG의 표준을 준수하는 DDS로 충남대학교에서 개발된 기술을구름네트웍스가 기술이전 받아 상용화에 성공한 순수 국산 DDS로, 타사 제품에 비해 높은 성능을 보일 뿐만아니라 네트워크가 불안정한 상황에서 월등한 성능을 제공

GurumDDS

● Linux, Windows, AIX UNIX등의 다양한 플랫폼 지원

● C, C++, Java, Python 언어를 지원하고 C# 과 같은 다양한 언어를 쉽게 지원할 수 있는 구조로 설계

● GurumDDS는 주요 DDS 제품 군(RTI, ADLINK사의 DDS)와 프로토콜 수준에서 상호호환과 연동이 가능

[ GurumDDS 아키텍처 ] [ 타 DDS와 성능 비교 ]

7

8

GurumDDS

• 프로그래밍 언어, 운영체제, 전송 및 하드웨어에 대한 독립성• 안정적 작동을 위한 이중화(redundancy) 구성가능• 확장 가능한 데이터 전달을 위한 멀티캐스트 지원• 다양한 벤더간의 어플리케이션 상호 운용성을 위한 표준 프로토콜• 네트워크 및 CPU 리소스의 효율적 사용을 위한 데이터 선택 및 필터링• 미션-크리티컬 시스템 구축에 검증된 오퍼레이션• 독점적인 독립실행 형태의 어플리케이션 방식이 아닌 미래지향적 국제표준

<GurumDDS의 추가적인 특징>

<GurumDDS의 성능 차별화>

① Batch processing : 사용자의 사용 패턴을 동적으로 분석해 여러 메시지를 모아 한 번에 전송하여 Latency 성능을 저하 시키지 않으면서 약 2~3배 정도의 Throughput 성능 향상

② Data loss detection과 Fast Nack : RTT(Round Trip Time)를 동적으로 분석해 Data Loss를 확률을 분석해 Nack을 예정보다 빨리 내보내어 설정에 따라 Reliable 통신에서 수십배의Latency 성능 향상과 5~6배의 Throughput 성능 향상

③ AckNack loss detection과 Fast Nack : AckNack RTT를 동적으로 분석해 AckNack loss 확률을 분석해 예정보다 Nack을 빨리 내보내어 최대 3초 정도의 통신 중단 현상을 원천 봉쇄

GurumDDS Gateway (PacketNgin Flow)

9

SVI

TCP

PacketNgin Flow

SVII/O

TCPI/O

MQTTI/O

ModbusI/O

DNP 3.0I/O

GurumDDSI/O

Global Data Space

이종 통신 프로토콜 PacketNgin Flow DDS 프로토콜

● LAN 환경으로 제한되는 DDS의 연동 범위를 WAN 구간으로 확장

● 서로 다른 DDS 도메인 간의 연동 기능 제공

● 다양한 통신 프로토콜들과 DDS 연동 기능 제공

● 다양한 통신 프로토콜들 사이의 연동 기능 제공

● 동종, 이종 프로토콜 사이의 자유로운 데이터 가공, 변환

● 플러그인들 사이의 연결 관계 정의만을 통해 손쉽게 데이터의 흐름 제어 가능

GurumDDS Gateway (PacketNgin NOS)

10

x86_64 Platform

CPU Memory NIC Storage

DPDKLinux

PacketNgin

Process #1 NetApp #1 NetApp #2

Thread #0 Thread #0 Thread #0 Thread #1

DPDK 지원네트워크 카드

Poll Mode Driver

DPDK API

PacketNgin NOS API

사용자

친화성

● 기존 시스템(범용 Linux 운영체제)의 네트워크 처리 성능 개선

● 네트워크의 패킷 처리의 실시간성 향상

● 다양한 네트워크 애플리케이션 개발을 위한 라이브러리 제공

● 사용자 친화적인 고 수준 API 제공

● 네트워크 자원 관리를 위한 유틸리티 지원

1

1) DPDK: Data Plane Development Kit의 약자. 고속 패킷 처리를 위한 데이터 플레인 라이브러리와 네트워크 인터페이스 컨트롤러 드라이버의 집합

GurumDDS Tool - Modeller

11

● GurumDDS 사용자가 DDS 통신에 사용되는 프로토콜 내용 정의 가능● Entities 선택 시 하위 지원 되는 품목 표출, 설정이 용이함

GurumDDS Tool - Monitor

12

● GurumDDS를 사용하는 사용자가 DDS통신에 사용하는 데이터를 확인 할 수 있는 프로그램● GurumDDS통신 내용 및 설정 사항 확인 가능

GurumDDS Tool - RnR (Record & Replay)

13

● GurumDDS를 사용하는 사용자가 DDS 통신 내용을 record, replay이 가능한 프로그램● Topic단위로 녹화가 가능● record시 내용이 DB에 모두 저장● replay시 DB에 저장된 내용을 모두 출력 ● 패킷 테스트 및 검증에 용이함

GurumROS2 (Robot Operating System)◾ 로봇시장과 로봇운영체제

◾ ROS2 (로봇운영체제)

로봇 산업의 핵심 SW기술인 ROS2(로봇 운영체제)에는 실시간성과 임베디드시스템 지원이 가능하도록 DDS 기술이 표준으로 확정이 되었고, 구름네트웍스는 로봇 ROS2에 필요한 모든 기술을 확보하고 있어서 해당 산업을수행하는 데 가장 적합한 기업임.

- IDC는 글로벌 시장 로봇 시장 규모가 19년 160조원 => 23년 354조원 성장 전망- 한국산업마케팅연구소는 국내 로봇 시장 규모가 19년 9.2조원 => 23년 24.7조원 성장 전망- 로봇 시장의 60%는 Mission Critical 기능이 요구되는 산업용 로봇 시장으로 예측 (통계치) - 로봇 비용 중 20% 정도는 로봇 소프트웨어 비용으로 추정 (로봇 업체 의견) 🡪 국내 로봇 소프트웨어 시장은 2019년 1조원 => 2023년 3조원 성장 예상

● GurumDDS Routing Service(GurumDDS RS)는 DDS를 LAN을 넘어 통신할 수 있도록 하는 DDS 특화 라우팅 솔루션

○ 간편한 설정

○ 기존 DDS 인프라 변경 불필요

○ DDS Vendor 중립적

○ Local Network-Remote Network 연결

○ WAN 구간 DDS 멀티캐스팅 지원

○ WAN 구간 DDS 데이터 압축

○ WAN 구간 DDS 데이터 암호화 (DTLS 적용)

GurumDDS RS(Routing Service)

15

DDSDP

DDSDP

DDSDPDDS

DP

DDSDP

GurumDDSRS

GurumDDSRS

GurumDDSRS

GurumDDS RS(Routing Service)

16

● GurumDDS RS의 특징○ 스마트 멀티캐스팅 : 데이터의 발간-구독 관계를 자동으로 분석하여 멀티캐스트 트래픽을 전달

○ 스마트 데이터 압축 : 데이터의 특징을 분석하여 압축 효율이 좋은 데이터를 자동으로 압축○ 데이터 암호화 : 표준 암호화 프로토콜인 DTLS를 사용하여 WAN 환경에서의 공격 방지○ 데이터 우선순위 제어 : 데이터의 우선순위를 지정하여 중요한 데이터를 우선적으로 전달

GurumDDS Nano (in progress)

17

● IoT에 최적화된 DDS 개발. IoT 플랫폼은 ROS2, ROS2-Realtime, AutoSAR,

OpenFMB를 대상으로 하며, 서술한 플랫폼에서 발생하는 요구사항을 수용할

수 있는 형태로 개발○ IoT 시장의 방향에 따라 Throughput 향상보다 Latency 최소화에 집중

○ IoT 시장에서 꼭 필요한 QoS 만을 집약

○ IoT 시장에서 요구되는 플랫폼을 빠르게 지원

● 타사 대비 기술적 차별점은 미들웨어 코어 개발 언어로 C/C++이 아닌 Rust를

사용하는 점○ 기본적으로 IoT 시장에서 요구되는 플랫폼이 이미 모두 지원되며, 특수한 플랫폼의 경우에도

사내에서 직접 개발 언어의 코어를 포팅하여 대응할 수 있음

○ Rust 언어를 사용하였기 때문에 C 언어의 특성상 메모리 관리가 어려워, 임시방편으로

해결했던 지점들을 안전하게 바꾸어 성능 향상을 유도하였음

● 저전력 기기(Low-Power Device)를 위한 DDS 기술○ Low-Power Device에서도 Qos가 보장되는 실시간 데이터 통신 미들웨어에 대한 수요 증가○ Mid Power 기기까지 적용되는 Micro DDS 역시 미들웨어 방식으로 DDS 아키텍처를 그대로 사용하여 적용시 기술적 한계가 있음

○ API를 제외한 DDS의 대부분의 기능을 라우터로 옮김으로써 저전력 기기에서도 DDS 사용○ 향후 IoT에 적용하는 100% 기기에 적용 가능

GurumDDS XRCE (in progress)

DDS-XRCE1

18[1] Arduino Nano ~ UNO 급은 표준 XRCE를 경량화한 프로토콜을 사용합니다 .

GurumDDS XRCE AgentGurumDDS XRCE Client

GurumDDS XRCE (in progress)

19

GurumDDS XRCE Agent

GurumDDS XRCE Client(LoRa)

GurumDDS XRCE Client(Wi-Fi)

GurumDDS XRCE Client(Bluetooth)

● 다양한 전송 계층 지원○ Bluetooth, Wi-Fi, LoRa 등 다양한 전송 계층 지원

○ 사용 목적, 환경에 따라 다양한 통신 구성 가능 ~5 Km

(도심

), ~15 Km

(비도심

)

약 100 m

1 ~ 100 m

GurumDDS Security (in progress)

20

● DDS의 통신객체 생성, 검색, 통신 과정에 인증과 암호화를 제공하기 위한 보안 표준 제품

○ 플러그인 구조를 이용하여 다양한 암/복호화 기법 적용 가능

○ 메시지 전체, 보조메시지 , 사용자 데이터 단위에 따라 별도로 또는 중복으로 암/복호화 가능

<DDS Security 1.1 표준 구조> <GurumDDS Security 적용 성능>

GurumDDS Security (in progress)

21

● 미들웨어에 독립적인 DDS Security 제공용 표준 인터페이스 설계○ PluginManager, DAL(DDS Abstraction Layer) 구현 완료

○ 다른 Vendor DDS 제품에도 DAL 추가 구현으로 손쉽게 적용 가능

■ 충남대학교 EchoDDS 적용 진행 중

GurumDDS Module (in progress)

22

● 철도 안전 검지 장치와 연동되는 GurumDDS Moudle H/W○ 데이터 특성이 다른 센서에 DDS Moudle를 적용하여 연동

○ 간편한 전원, 입력과 출력 포트지원 (Ethernet, RS232/485, Wi-Fi 등)

○ 안전 검지 센서의 데이터를 처리할 수 있는 용량 (10Mbps 또는 100Mbps)

GurumDDS Module (in progress)

23

● GurumDDS Moudle 설정 S/W

○ DDS 모듈 H/W를 노트북 등으로 간편하게 설정할 수 있는 관리자 S/W 툴

○ Firmware update 기능

○ 상태 모니터링 기능

○ 입력/출력 인터페이스 설정 기능

○ 데이터 변환 설정 기능

24

GurumDDS 적용 사례

04

주요 적용 사례

철도기술연구원

● 실시간 철도안전 통합 감시제어 시스템 DDS 적용 - 안전검지 인터페이스 장치○ 열차 상태 정보와 기존설비 및 안전 검지정보를 데이터분산서비스 (DDS) 프로토콜로 변환○ 실시간 안전관제 종합콘솔을 통해 실시간 감시와 LTE 상용망을 통해 구로 관제실, 현장에 전송

실시간 철도안전 통합 감시 및 통제 시스템

안전관제 통합 콘솔정보표출

안전상황통보

안전관제통합서버

안전관제웹서버

LTE상용망

위험/사고예측 정보

DDS표준프로토콜

안전장치인터페이스장치

위험/사고예측서버

LTE전용

열차 상태 정보

작업스케줄 및 열차접근정보

현장정보

안전정보, 비상대응절차

안전현황

작업자

기존과제사

감독관/유관기관(국토부 안전감독관 등)

철도전용망

CTC관제SCADA관제

설비 감시

신호 설비

전력 설비안전 설비

신호/분기기 정보전력/전철 정보

선로변 정보

열차운행에서의 안전을 강화하는 관제 시스템

26

철도기술연구원

● 안전 검지 인터페이스 장치 구성 및 역할

27

패킷 변환 노드

패킷 변환 Runtime

UDPl통신변환기

TCP통신변환기

네트워크 O/S

Serial통신변환기

DDS 미들웨어

데이터 변환 노드

DD

S T

opic

변환

모듈

#2

데이터 변환 Runtime

범용 O/S 또는 실시간 O/S

DD

S T

opic

변환

모듈

#1

DD

S T

opic

변환

모듈

#4

DD

S T

opic

변환

모듈

#3Ethernet

통신

DDSTopic #1

DDSTopic #2

DDSTopic #3

DDSTopic #4

인터페이스 장치

RS-485인터페이스

RS-232인터페이스

RJ-45인터페이스

인터페이스 장치의 구성

● 스니핑 - Tap 장치를 이용해 Legacy 네트워크의 형상을 건들지 않고 데이터를 수합함

● 패킷 변환 노드 - Tap 장치를 이용해 수합된 패킷의 세션을 복구하는 노드

● 데이터 변환 노드 - 데이터를 추출하고 해석(DPI:Deep Packet Inspection)하고, DDS로 변환하여 전송하는 노드

두산중공업(1) - 기장 해수담수화 플랜트

28

Data Feed(H/W-두산중공업,

S/W-Softing)

Gateway(H/W-두산중공업, S/W-

구름네트웍스)

Server(H/W-두산중공업, S/W-

구름네트웍스)

관제 UI(H/W-두산중공업, S/W-지란지교. MDS)

담수화 플랜트(부산 기장)

인터넷(두산중공업 내부망)

두산중공업(서울)

IPsec

Data Server(H/W-두산중공업,

S/W-Splunk)

현장 장비(H/W-Honeywell,S/W-Honeywell)

구름네트웍스

두산중공업

한컴

MD

S, 지란지교

두산중공업(2) - 전남 영광 풍력발전기 시험센터

29

PLC(두산중공업, WinDS 3000)

Gateway(H/W-두산중공업, S/W-

구름네트웍스)

Server(H/W-두산중공업, S/W-

구름네트웍스)

CMS Client(두산중공업)

SVI

풍력 발전 실증 사이트(전남 영광)

인터넷(두산중공업 내부망)

두산중공업(서울)

IPsec

두산중공업

구름네트웍스

두산중공업(3) - 서남해 해상 풍력발전단지

30

PLC(두산중공업, WinDS 3000)

Gateway(H/W-두산중공업, S/W-

구름네트웍스)

Server(H/W-두산중공업, S/W-

구름네트웍스)

CMS Client(두산중공업)

SVI

풍력 발전 실증 사이트(서남해 해상 풍력발전단지)

인터넷(두산중공업 내부망)

두산중공업(서울)

IPsec

풍력 원격운전용 프로그램 UI

풍력 원격운전용 프로그램 UI

인터넷(상용망)

두산중공업

육군정보통신학교 - C4I 체계간 데이터 연동

31

교장

DDS G/W DDS G/WK체계

데이터발생기

데이터발생기

데이터발생기

데이터발생기

AT체계 서버(A군단)

KN체계

연동상태모니터링

트래픽분석기

시험평가도구

DDS G/W DDS G/W

DDS G/W DDS G/W

● '17년 국방 u-실험사업

AT체계 서버(B군단)

AF체계

AK체계

● 원격 로봇 제어 및 관제○ ROS2(Crystal, Dashing)을 사용하는 ARM 프로세서 기반의 로봇○ RMW(ROS2 MiddleWare)로 GurumDDS를 적용○ GurumDDS RS(Routing Service)를 이용하여 WAN 구간 DDS 연동○ DTLS(Datagram Transport Layer Security)를 이용한 WAN 구간 데이터 보호

Robotis - ROS2 적용 원격 로봇 제어

32

ISP

Topic APub

Topic BSub

Topic APub

Topic BSub

Topic APub

Topic BSubTopic B

Pub

Topic ASub

Topic BPub

Topic ASub

WA

NLA

N

DTLSDTLS

DTLS DTLS

LTE LTE LTE

GurumDDSRS GurumDDS

RSGurumDDS

RSGurumDDS

RS

ISP

33

GurumDDS 성능

05

시험 환경

34

PC-1 PC-2

OS Ubuntu18.04(4.15.0-91-generic) Ubuntu18.04(4.15.0-91-generic)

Processor Intel i7-3770 3.4GHz Intel i7-3770 3.4GHz

Memory 15G 15G

NIC Realteck Gigabit Ethernet Realteck Gigabit Ethernet

Switch Netgear GS724T

PC-1 PC-2

GurumDDS 성능 - 지연시간

35

PC-2

PC-1

● Round-Trip-Time 측정 ○ BestEffort QoS 사용 시 A 제품 대비 71% 더 낮은 지연시간 제공○ Reliable QoS 사용 시 C 제품 대비 76% 더 낮은 지연시간 제공

GurumDDS 성능 - 전송량

36

PC-2

PC-1

● 단방향 전송량 측정○ BestEffort QoS 사용 시 B 제품 대비 100.6% 더 높은 전송량 지원○ Reliable QoS 사용 시 B 제품 대비 115% 더 높은 전송량 지원

37

GurumDDS for ROS2

06

ROS2 개요

38

● ROS(Robot Operating System)는 로봇 응용 프로그램 개발에 필요한 도구와

기능을 제공하는 플랫폼

● ROS는 2007년 Willow Garage사와 Stanford 대학교에 의해 처음 시작

● 2010년에 ROS 1.0이 발표되었으며, 2015년 ROS 2 Alpha가 발표됨

● ROS2는○ 기존 ROS1 플랫폼과 호환

○ Near Real-Time 목표

○ 다수의 로봇이 포함된 시스템 지원

○ 자원이 한정된 임베디드 플랫폼 지원

○ Wi-Fi 통신과 같은 불안정한 네트워크에 대한 대응

○ ROS1 대비 더 적어진 어플리케이션 개발 비용

○ C++/Python3 언어 지원

ROS2 통신 API 구조

39

● Abstraction DDS API 부분은 ROS2에서 .so 파일 형태로 제공● 별도의 컴파일 과정 없이 DDS 미들웨어 치환 가능(대신 버전이 일치해야 함)● 툴 사용법 등 CMake 형태로 추상화 되어있어서 동일한 방법으로 사용 가능● 기타 DDS 미들웨어 별로 특이사항이 있는 부분은 ROS2의 기본 DDS인

FastRTPS 방식을 따름

Source: https://design.ros2.org/articles/ros_on_dds.html

GurumDDS

.so 파일 형태

Userland Code

ROS client library API

Abstract DDS API

RTI Connext ADLINKOpenSplice

eProsimaFastRTPS

GurumNetworksGurumDDS

optionalaccessto DDSspecific API

ROS2 응용프로그램 통신 수행 과정

40

UserApp

rclcpp

rclpy

ROS2 Client Library

rcl

RCL Interface

rmw_connext

rmw_fastrtps

rmw_opensplice

RMW Interface

rmw

RMW Implementation

User Application

rmw_gurumdds

그밖의 관련 패키지

41

유틸리티

● rosidl_generator○ 사용자가 작성한 message, service 파일에서 구조체가 정의된 헤더 파일(.h) 생성

● rosidl_parser○ 각 vendor 별로 작성된 typesupport 패키지의 템플릿 파일을 사용해 코드(.cpp) 생성

라이브러리

● rosidl_typesupport○ RMW 구현 라이브러리와 대응하는 typesupport 라이브러리를 연결하는 역할

○ rosidl_typesupport_introspection

■ Dynamic type을 위한 typesupport

■ RMW에서 각 field의 type, 크기, 기본값 등 메타데이터에 접근할 수 있도록 API 제공

● rmw_implementation○ 환경 변수로 지정된 RMW 구현 라이브러리를 찾는 역할

Thank you!

42

서울특별시 광진구 광나루로 36길 14, 화성빌딩 5층WEB gurum.cc EMAIL [email protected] PHONE +82-2-447-5100 FAX +82-2-6008-9680