Publications

Detailed Information

Splash 빌드 유닛을 이용한 분산 시스템으로의 Splash 응용 프로그램 자동화 배포 : Automated Deployment of a Splash Application to the Distributed System via Splash Build Unit

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

최우영

Advisor
홍성수
Issue Date
2021
Publisher
서울대학교 대학원
Keywords
Splash프로그래밍 프레임워크멀티코어 분산 시스템자동화 소프트웨어 배포자율 기기ROS 2programming frameworkmulticore distributed systemautomated deploymentautonomous machine
Description
학위논문(석사) -- 서울대학교대학원 : 공과대학 전기·정보공학부, 2021.8. 홍성수.
Abstract
Splash는 점점 복잡해지는 자율기기(autonomous machine)를 위한 응용 프로그램 개발을 효과적으로 할 수 있는 프로그래밍 프레임워크이다. Splash는 그래픽 사용자 인터페이스를 이용한 프로그래밍 추상화를 제공할 뿐만 아니라 실시간 제어 시스템에 필수적인 실시간 스트림 처리, 센서 퓨전, 모드 변경, 예외 처리 등과 같은 기능들을 제공한다. Splash는 ROS 2에 이미 존재하는 기능의 이점을 이용하기 위해서 ROS 2 기반으로 개발되었다. 따라서, Splash를 사용하여 작성된 응용은 Splash 런타임 라이브러리와 ROS 2 런타임 라이브러리가 설치된 단일 혹은 분산 컴퓨팅 환경에서 구동된다. 하지만 분산 컴퓨팅 환경에서 Splash 응용을 사용하기 위해선 각 머신의 환경에 맞게 응용과 런타임을 빌드 및 설치해야 하고, 이는 소프트웨어 업데이트 및 유지보수를 하는데 시간과 비용이 많이 들도록 한다. 이런 불편함은 분산 컴퓨팅 머신에 확장성(scalability), 가용성(availability), 관리성(manageability)을 고려한 소프트웨어 배포(deployment)의 필요성을 제기한다. 본 논문에서는 Splash 응용 프로그램의 자동화 배포 및 관리를 위한 도커(Docker) 기반 Splash 빌드 유닛을 구현한다. Splash 빌드 유닛을 통해서 개발자는 소프트웨어 빌드 및 배포 프로세스를 자동화하고 프로그램의 병렬성(parallelism) 및 동시성(concurrency)을 최적화할 수 있다. Splash 빌드 유닛을 이용한 소프트웨어 자동화 배포에 대한 유용성을 검증하기 위해서 분산 시스템에서 Splash 빌드 유닛을 이용하여 딥러닝 기반 자율 주행 응용 프로그램의 예제를 진행하였다.
Splash is a programming framework that can effectively support the application development of increasingly complex autonomous machines. Splash not only offers user-friendly programming abstraction like a graphic user interface, but also provides essential programming semantics for a real-time control system such as real-time stream processing, sensor fusion, mode change, exception handling, etc. Splash was developed based on ROS 2 to take advantages of using already existing features and packages. Splash applications are eligible to run on a single or distributed computing systems where Splash runtime library, ROS 2 runtime library and any other software that are necessary for the Splash applications are installed. Therefore, in order to run Splash application on a distributed computing system, it is required to build and install the applications, additional external libraries and corresponding runtime according to the environment of each machine. This particular process comes with cost and time issue of software update and maintenance. This inconvenience and burden raise the need for automated software deployment considering scalability, availability, and manageability in distributed computing systems. This thesis will introduce a Docker-based Splash build unit for automated deployment and management of Splash applications. Splash build unit allows developers to automate the software build and deployment process to distributed computing machines by using Docker containerization. It also allows developers to focus on optimizing parallelism and concurrency of programs. In order to demonstrate the effectiveness and utility of software deployment using Splash build unit, the case study of a LFA(Lane Following Assist) application with DNN-based lane detection and DNN-model training program was conducted using Splash build unit in a distributed system.
Language
kor
URI
https://hdl.handle.net/10371/178970

https://dcollection.snu.ac.kr/common/orgView/000000167472
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share