DOI QR코드

DOI QR Code

Development of Dynamic Vehicle Service Simulation Tool based on Node-RED

Node-RED 기반 동적 차량 서비스 시뮬레이션 툴 개발

  • Ryu, Minwoo ;
  • Lee, Jongeon ;
  • Cha, Si-Ho
  • 류민우 (현대자동차 자동차부분 연구개발본부) ;
  • 이종언 (LG 유플러스) ;
  • 차시호 (청운대학교 멀티미디어학과)
  • Received : 2022.12.03
  • Accepted : 2022.12.21
  • Published : 2022.12.30

Abstract

As users' needs for customized services increase, the service provision method is changing from a vertical structural service provision method to a horizontal structural service provision method. This paradigm shift has led to a change from the way existing users find the content they want to find and provide customized needs of users by content providers. With the recent development of smartphones and various AI technologies, demand for providing seamless services such as smartphones is increasing in automobiles. However, it is difficult to provide services in line with changes in this service paradigm because automobile services provide services centered on finished car manufacturers rather than individually providing services tailored to user needs. In this paper, we develop a Node-RED-based dynamic vehicle service simulation tool so that users can use the service they want in cars. The simulation tool developed provides a simulation environment for services authored by the user using NodeRed by writing, registering, and using NodeRed.

Keywords

Ⅰ. 서론

사용자들의 맞춤형 서비스에 대한 니즈가 높아짐에 따라 서비스 제공 방식은 기존 수직 구조적 서비스 제공 방식에서 수평 구조적 서비스 제공방식으로 변화되고 있다. 이러한 패러다임의 변화는 기존 사용자들이 원하는 서비스를 이용하기 위해 콘텐츠 제공기업에서 제공하는 서비스를 찾아가는 방식에서 콘텐츠 제공 기업들이 사용자의 니즈를 파악하여, 맞춤형 서비스를 제공하는 방식으로 변화를 가져왔다[1]. 최근 자율 주행 기술의 발달과 서비스 콘텐츠의 다양성으로 인하여 기존 안전 중심이었던 자동차에서 사용자들이 다양한 서비스 콘텐츠를 이용하고자 하는 니즈가 증가되고 있다. 이러한 니즈는 현재 상용 자동차에서도 일부 서비스에 한하여 스마트폰과 유사한 서비스로 제공하고 있다[2]. 사용자들은 자동차의 AVN(Audio, Video, Navigation)에서 스마트폰을 통해 구글의 Android Auto나 애플의 CarPlay 등 스마트폰에 설치된 일부 앱을 자동차에서 실행함으로써 해당 서비스를 이용할 수 있다[3, 4]. 그러나 이러한 Android Auto와 CarPlay의 경우에도 완성차 제조회사에서 서비스가 가능한 애플리케이션을 정하고, 이를 연동해야만 실행이 가능하다는 단점이 있다. 이러한 환경에서 본 논문은 사용자들이 자동차에서 원하는 서비스를 스마트폰과 같이 선택하여 실행할 수 있는 동적인 서비스 환경을 제공하고, 이에 대한 가능성을 실험하고자 한다. 이를 위해 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴 개발을 제안한다. 제안하는 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴은 자동차에서 사용할 수 있는 서비스를 사용자 또는 개발자가 저작하고, 이를 테스트 할 수 있는 환경을 제공한다. 이를 위해 본 논문에서는 서비스 저작툴로 잘 알려진 NodeRed[5]를 이용하여 쉽게 서비스를 저작하고, 저작한 서비스를 테스트할 수 있게 하였다.

본 논문의 구성은 다음과 같다. 2장에서는 동적 서비스 시뮬레이터에 대한 기존 관련 연구에 대해서 살펴보고, 3장에서는 제안하는 Node-RED 기반 동적 차량 서비스 시뮬레이션 툴 개발을 위한 방법을 제시한다. 4장에서는 Kodi 미디어 서버를 활용한 동영상 서비스를 저작하여 제안하는 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴을 검증한다. 5장에서는 결론 및 향후 과제에 대하여 기술한다.

Ⅱ. 관련 연구

Zhou[6]는 클라우드 환경에서 서비스의 안정성 보장을 위한 시뮬레이션 툴인 FTCloudSim을 제안하였다. FTCloudSim은 클라우드 데이터 센터의 가동 중지 시 발생되는 서비스 품질 저하 문제를 사전에 해결하기 위해 서비스 안정성 향상 메커니즘을 평가할 수 있다. 따라서 FTCloudSim은 서비스 안정성 향상 메커니즘을 평가할 수 있는 기능을 제공하고, 이를 통하여 안정성 향상 메커니즘을 구현할 수 있는 인터페이스를 제공한다. 그러나 FTCloudSim의 경우, 서비스의 안정성에 대한 평가는 가능하지만, 사용자 또는 개발자가 원하는 서비스를 직접 구현하기에는 어렵다는 문제점이 있다. 뿐만 아니라, 해당 서비스를 구현 및 평가하기 위해서는 기본적인 클라우드 환경을 고려해야하기 때문에 저작기반의 서비스를 생성하고 성능을 검증하기에는 적합하지 않다.

Björn[7]는 V2X(Vehicle-to-Everything) 애플리케이션이 동작할 수 있는 테스트 환경을 제공하고, 애플리케이션의 특수 요구사항을 충족할 수 있는 통합 소프트웨어 시뮬레이션 아키텍처를 제안하였다. 제안된 아키텍처는 Environment Generator, Application Interface Simulator, Traffic Simulator, Network Simulator로 구성되었으며, 이를 통해 차량의 통신, 환경, 애플리케이션, 교통에 대한 모든 시뮬레이션이 가능한 구조로 설계되었다. 그러나 제안된 시뮬레이터는 차량의 이동 환경, 애플리케이션의 인터페이스, 교통 흐름, 차량 간 통신에 대한 시뮬레이션은 가능하지만, 서비스를 쉽게 저작하여 빠른 테스트 및 사용자가 원하는 서비스를 개발하여 테스트하기에는 진입 장벽이 높다는 문제점이 있다.

대부분의 차량 서비스를 위한 시뮬레이터는 네트워크를 통한 통신 성능 및 자율주행에 중점을 두고 개발되었기 때문에, 사용자가 차량 내에서 이용할 수 있는 인포테인먼트 기반의 서비스를 테스트하기 위한 시뮬레이터에 대한 연구가 많이 부족한 상태에 있다[8-11]. 따라서, 본 논문에서는 차량의 네트워크 기반의 시뮬레이터가 아닌 인포테인먼트를 제공할 수 있는 서비스를 쉽게 저작하고, 이를 차량 AVN 환경에서 테스트를 할 수 있는 Node-RED 기반의 동적 서비스 시뮬레이션 툴을 제안한다.

Ⅲ. Node-RED 기반 동적 차량 서비스 시뮬레이션 툴

3.1 기본 개념

본 논문에서 제안하는 Node-RED 기반 동적 차량 서비스 시뮬레이션 툴은 차량 내에서 사용자가 원하는 서비스를 AVN을 이용해 제공하기 전에 해당 서비스의 동작을 테스트를 할 수 있는 환경을 제공한다. 이를 위해 본 논문에서 설계된 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴은 서비스를 저작하기 위한 서비스 저작도구와 저작된 서비스를 등록 및 실행하기 위한 가상환경 서비스 플랫폼을 제공한다.

<그림 1>은 본 논문에서 제안한 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴에 대한 동작 개요를 보인 것이다. <그림 1>에서 보는 것과 같이, Node- RED 기반의 동적 차량 서비스 시뮬레이션 툴에서 개발된 서비스를 테스트하기 위해서는 다음과 같은 4개의 단계를 통해 처리된다. 먼저 <그림 1-①>과 같이 개발자 또는 사용자는 시뮬레이션을 원하는 서비스를 NodeRed를 통하여 저작한다. 그리고 저작 도구를 통해 저작이 완료된 서비스는 <그림 1-②>와 같이 가상 서비스 플랫폼에 등록된다. 이때, 등록되는 서비스들의 기능적 API 명세는 <그림 1-①>에서 서비스를 저작할 때 NodeRed 상에 저작되는 API 명세가 저장되며, 각각의 저장된 서비스의 기능은 다른 서비스를 제공할 때도 동일하게 사용할 수 있게 된다. <그림 1-②>까지의 과정을 통해 차량의 AVN에서 서비스를 다운받고 실행할 수 있는 준비가 완료된다. 따라서 <그림 1-③>과 같이 차량 AVN에서 특정 서비스에 대한 실행요청을 하면, NodeRed를 통하여 서비스의 동작 여부를 확인할 수 있게 된다.

DGTSA8_2022_v18n4_77_f0001.png 이미지

<그림 1> Node-RED 기반 동적 차량 서비스 시뮬레이션 툴의 동작 개요

3.2 시뮬레이션 툴 설계

Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴은 서비스 저작을 위한 Node-RED와 저작된 서비스를 관리/실행하기 위한 가상 서비스 플랫폼으로 구성된다. Node-RED는 가상 서비스 플랫폼과의 연동을 위해 기능 명세 등록 DB와 데이터 타입 등 일부 기능을 수정하였다.

가상 서비스 플랫폼은 <그림 2>에서 보인 것과 같이 In-Out Connector, Function Analyzer, Service Flow Manager, Services DB로 구성된다. In-Out Connector는 Node-RED로부터 저작된 서비스의 구성 연결 및 Node-RED에서 저작된 서비스를 실행할 때 연동이 되는 Application gateway의 역할을 수행하며, 등록된 서비스의 기능이 외부의 시스템(예, 네이버 또는 구글 등)과 연동할 경우에도 사용된다. Function Analyzer는 Node-RED로부터 저작된 서비스를 등록할 때, 각 서비스의 기능에 대한 명세를 분석하는 기능을 수행한다. 이를 위해 시뮬레이터 툴은 API Parser, API Convertor, API Register로 구성된다. API Parser는 Node-RED를 통해 서비스 저작 시작성된 명세를 가상 서비스 플랫폼에서 정의한 명세로 변경하기 위한 파싱을 수행한다. 기본적인 Node-RED에서는 각 기능을 설정할 때, 작성하는 기능 명세로 실제 서비스를 수행할 수도 있지만, 본 논문에서는 저작된 서비스의 기능을 다른 서비스에서도 공유 및 사용할 수 있도록 하기 위해 기존 Node-RED의 설정을 수정하였다. API Convertor는 API Parser로부터 분리된 각각의 명세를 변환하는 기능을 수행한다. 이때 API Convert는 서비스 기능 명세에서 Request 타입과 Response 타입을 기준으로 분리하고, 이를 API Register를 통해 Service DB에 저장한다. 본 논문에서는 다양한 API 명세들을 저장하기 위해 Service DB로 NoSQL DB를 사용하였다. Service Flow Manager는 Node-RED로부터 저작된 서비스의 Flow를 관리하는 기능을 수행한다. 이때 Service Flow Manager는 Function Loader를 통해 등록된 서비스들을 Services DB로부터 가져 오고, 해당 기능이 외부 시스템과의 연동일 경우에는 API Executer를 통해 외부 시스템과의 연동을 수행한다.

DGTSA8_2022_v18n4_77_f0002.png 이미지

<그림 2> 가상 서비스 플랫폼 구성도

3.3 시뮬레이션 툴 구현

시뮬레이션 툴의 구현은 Node-RED 기반으로 동적 차량 서비스를 저작하기 위해 Node.js를 설치한 다음에 Node-RED를 설치하였다. 그리고 Node-RED와 가상 서비스 플랫폼과의 연동을 위해 외부 접근을 위한 uiHost 및 uiPort를 가상 서비스 플랫폼에서 정의한 Host IP와 Port로 변경하였으며, 각 서비스를 등록 및 관리할 수 있도록 Node-RED의 function External Modules의 설정 값을 true로 유지하였다. 또한, 가상 서비스 플랫폼을 구현하기 위해 Java 8을 이용하여 In-Out Connector, Function Analyzer, Service Flow Manager를 구현하였다. 그리고 WAS 서버 상에서 동작할 수 있도록 Tomcat 10.0.X 버전을 사용하여 maven project로 구현하였다. Node-RED로 부터 전달되는 데이터의 유형이 json 타입이므로 In-Out Connector에서 json 형태의 데이터를 파싱할 수 있도록 json 파서를 추가로 구현하였다. 또한 Node-RED로부터 저작된 서비스를 등록하기 위해 Apache Cassandra 4.0 GA 버전으로 각기 다른 파라미터를 지원하도록 구현하였다[12, 13]. 각각의 서비스들은 하나의 도큐먼트로 구성되어 Cassandra에 저장될 수 있도록 하였다.

Ⅳ. 실험

본 논문에서는 차량에서 서비스 받길 원하는 서비스에 대하여 즉시 저작하고, 검증할 수 있는 환경을 제공하기 위해 미디어 서비스를 저작하는 실험을 진행하였다. 이를 위해 기존 스트리밍 서비스가 아닌 미디어 서비스를 지원할 수 있는 test case를 정의하여 본 논문에서 제안한 시뮬레이션 툴에 대한 타당성을 검증하였다. 실험을 위한 차량의 AVN은 라즈베리 파이와 15인치 모니터를 사용하여 구성하였으며, WiFi 환경을 사용하여 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴에 접속할 수 있도록 하였다. 또한, 서비스 저작은 실험에 앞서 Node-RED를 통해 Kodi 미디어 서버[14]를 이용한 동영상 서비스를 저작하였다.

<그림 3>은 Node-RED를 통해 저작한 Kodi 미디어 서비스에 대한 Flow 저작을 보인 것이다. Kodi 미디어 서버는 Nas에 구축하였고, 서비스 저작에서도 Kodi 서버의 주소를 Nas 주소로 정의하였다. 또한, 미디어 재생을 위한 스위치 버튼을 통해 버튼에 따른 동작을 확인할 수 있도록 저작하였다.

DGTSA8_2022_v18n4_77_f0003.png 이미지

<그림 3> Kodi 미디어 서버를 이용한 동영상 서비스 저작

<그림 4>는 각각 Kodi 서버 주소 설정과 미디어 재생을 위한 스위치 버튼의 저작을 보인 것이다. <그림 5>는 라즈베리파이와 터치식 15인치 모니터를 이용하여 차량 AVN 환경을 구축한 테스트베드에서 Kodi 미디어 서버 기반의 동영상 서비스가 원활하게 잘 실행됨을 보인 것이다.

DGTSA8_2022_v18n4_77_f0004.png 이미지

<그림 4> Kodi 미디어 서버 설정 및 미디어 재생을 위한 스위치 버튼

DGTSA8_2022_v18n4_77_f0005.png 이미지

<그림 5> 차량 AVN 테스트베드에서 동영상 서비스 실행 화면

Ⅴ. 결론

본 논문에서는 차량 서비스에서 기존 수직 구조적 서비스 제공방식에서 수평 구조적 제공방식을 제공하기 위한 Node-RED 기반의 동적 차량 서비스 시뮬레이션 툴을 개발하였다. 개발된 동적 차량 서비스 시뮬레이션 툴은 사용자 또는 개발자가 직접 서비스를 저작하고, 이를 차량 내 AVN에서 실행이 가능한 시뮬레이션 환경을 제공하였다. Kodi 미디어 서버를 활용한 동영상 서비스 실험에서 동적으로 저작된 서비스가 정상적으로 실행됨을 확인하였다. 그러나 개별적으로 저작한 서비스를 차량 내에 탑재할 경우에는 차량의 안전사고 등의 문제가 발생할 수 있는 문제점이 존재한다. 이러한 문제를 해결하기 위해서는 향후 연구 과제로는 메타버스 등을 활용한 가상 세계에서 실제 구현된 서비스를 테스트하면서 안전에 대한 검증 및 실용성 검증을 위한 연구가 추가로 필요하다.

References

  1. 구진경, "II. 서비스산업 그룹별 전개 방향과 비전," 월간 KIET 산업경제, vol. 269, 2021, pp. 47-55.
  2. 도준호.김희경, "자율주행차와 미디어 산업 변화," 한국인터넷방송통신학회논문지, 제20권, 제5호, 2020, pp. 15-23. https://doi.org/10.7236/JIIBC.2020.20.5.15
  3. A. K. Mandal, A. Cortesi, P. Ferrara, F. Panarotto, F. Spoto, "Vulnerability analysis of android auto infotainment apps," In Proc. of the 15th ACM International Conference on Computing Frontiers, 2018. pp. 183-190.
  4. Y. Shin, S. Kim, W. Jo, T. Shon, "Digital Forensic Case Studies for In-Vehicle Infotainment Systems Using Android Auto and Apple CarPlay," Sensors, 2022, 217192, pp. 1-20.
  5. Node-RED, https://nodered.org/.
  6. A. Zhou, S. Wang, Q. Sun, H. Zou, F. Yang, "FTCloudSim: A simulation tool for cloud service reliability enhancement mechanisms," In Proc. Demo & Poster Track of ACM/IFIP/ USENIX International Middleware Conference, 2013, pp. 1-2.
  7. B. Schuenema, K. Massow, I. Radusch, "Realistic simulation of vehicular communication and vehicle-2-X applications," In Proc. of the 1st International Conference on Simulation Tools and Techniques for Communications, Networks and Systems & Workshops, SimuTools 2008, Marseille, France, March 3-7, 2008.
  8. I. A Aljabry, G. A Al-Suhail, "A Survey on Network Simulators for Vehicular Ad-hoc Networks (VANETS)," International Journal of Computer Applications, vol. 174, no. 11, Jan. 2021, pp. 1-9.
  9. P. Kaur, S. Taghavi, Z. Tian, W. Shi, "A Survey on Simulators for Testing Self-Driving Cars," In Proc. of 4th International Conference on Connected and Autonomous Driving (MetroCAD). IEEE, 2021. pp. 62-70.
  10. A. Gabriele, F. Mancini, M. Khayyat, S. Arrigoni, "Design and Simulation-Based Testing of 5G-Connected Systems for Traffic Light Guidance," Journal of Robotics and Autonomous Systems, Sep. 14, 2022.
  11. K.-W. Yun, H.-G. Kim, J. Kwon, H.-Y. Jeong, Y.-H. Choi, "Vehicular Acceleration Advisory Algorithm Using V2V Communication in Highway Junction Point," In 2018 10th International Conference on Ubiquitous and Future Networks (ICUFN). IEEE, 2018. pp. 85-88.
  12. Apache Tomcat, https://tomcat.apache.org/.
  13. Apache Cassandra, https://cassandra.apache. org/index.html.
  14. Kodi media service, https://kodi.tv/.