Apache Kafka and MQTT : Connected Vehicles & V2X
Connected Vehicles and V2X
-
V2X : Vehicle to Everything 이라는 의미로, vehicle과 다른 어떤 entity와 소통이 있으며
- Vehicle이 Entity에 영향을 받거나
- Vehicle이 Entity에 영향을 주거나
하는 방식의 Communication 방식이다.
-
V2X는 Vehicular Communication System이며, 아래와 같은 구체적인 type을 모두 포함하는 용어이다.
- V2I : Vehicle to Infrastructure
- V2N : Vehicle to Network
- V2V : Vehicle to Vehicle
- V2P : Vehicle to Pedestrian
- V2D : Vehicle to Device
- V2G : Vehicle to Grid, 전기차가 가진 전력을 전력망으로 재전송하는 기술
Technical Point of View for V2X and Connected Vehicles
MQTT + Kafka View
-
MQTT + Kafka는 10~20ms사이의 end-to-end Processing(E2E, EndPoint사이의 통신이라고 보자.)을 통해서 ms단위로 이동중인 대용량의 데이터를 위한 Scalable Real-Time Infrastructure을 제공한다.
- 모든 Mobility Service와 MQTT+Kafka가 결합하기에 충분한 시간이다.
- Backend IT Systems와 MQTT+Kafka가 결합하기에 충분한 시간이다.
즉, Scalable real-time Infra를 MQTT+Kafka가 제공하는데, 이는 모빌리티 서비스와 IT Service의 BackEnd에 사용되기에 충분히 빠른 E2E Processing 속도를 낼 수 있음을 알 수 있다.
-
MQTT + Kafka는 Hard Real-Time에 쓰이지 않고, deterministic embedded systems에도 쓰이지 않는다.
- Hard Real-Time : 작업의 시작, 완료에 대한 시간 제약조건을 지키지 못할 경우, 시스템에 치명적인 영향을 준다.
- Soft Real-Time : 작업 실행에 대한 제약이 있지만, 지키지 못하더라도 시스템에 큰 영향을 끼치지 않는다.
MQTT가 애초에 불안정한 Network Status에서도 동작하도록 설계되었기에 Hard Real-Time에 쓰이지 못하는 것이라고 볼 수 있다.
Safety Critical V2X View
-
안전에 민감한 V2X Use Case는 다른 Communication 기술을 요구한다.
- SideLink : 네트워크 서비스 지역 외에서도 차량 통신을 가능하게 하는 단말간 통신 방식
- 5G New Radio (5G NR) : 라디오 엑세스 테크노롤지
위과 같은 기술을 사용하여 Connected Vehicles사이의 연결, Vehicles와 Local Infrastructure의 sidelink를 연결해야 안전에 민감한 서비스를 제공할 수 있다.
Hard vs Soft Real Time View
- Hard Real-Time한 Service에는 왜 쓰일 수 없을까?
- Self-Driving Car : 차량 임베디드 시스템에 Image processing, Decision을 한다.
- 이러한 Use Case는 Deterministic한 행동과 Hard real-time이 요구된다. (위의 용어설명 참고)
- Soft Real-Time한 Service에는 어떤 종류가 있을까?
- Emergency Service, Traffic Routing, Parking과 같은 3rd Party는 Soft Real-Time한 서비스이다.
- 따라서, MQTT+Kafka를 이러한 서비스에서 사용해야한다.
MQTT and Kafka For Connected Vehicles
V2X with MQTT and Kafka in a 5G Infrastructure
위의 인프라는 3가지의 카테고리와 네트워크로 나뉜다.
- Edge : 5G기술로 Local Processing과 Remote Integration을 한다.
- MEC : Multi-access Edge Computing, 트래픽과 서비스 컴퓨팅을 중앙 집중식 Cloud에서 Network Edge로 이동시켜 고객과 더 가깝게 만든다. AWS Wavelength가 해당 엣지 컴퓨팅 인프라를 제공한다.
- 이를 위해서는 분산 데이터 센터, 분산 클라우드를 구축해야한다.
- 위에 그림에서는, low-latency use cases를 위한 지역에 사용하였으며, AWS Wavelength를 사용한다.
- Public Cloud : 다른 cloud native Applications를 사용하기 위해 AWS, Confluent Cloud를 사용한다.
- Confluent : Apache Kafka에 기반한 Data Streaming Platform
해당 예제에서는 MQTT도 썼지만, HTTP 또한 Kafka Cluster와 Integration을 위해 사용되었다는 것을 확인할 수 있다. 다른 IT Applications들의 연결또한 아래와 같은 Kafka-Native Interfaces를 통해서 연결이 된다.
- Kafka Clients
- Kafka Connect
- Confluents Cluster Linking
Examples
- Transportation Mobility Cloud (TMC) : connected vehicle data에 접근하는 방식과 Remote Command를 보내는 방식의 표준의 방식
- 이러한 플랫폼 위에서 운전자의 안전, 집단 management와 같은 smart mobility application을 빌드한다.
- Autonomic사는 MQTT와 Kafka를 사용하여 수백만의 자동차를 연결할 수 있는 솔루션을 제공한다.
- car의 data를 kafka로 실시간 전송하여 다른 microservices나 application을 플랫폼에서 사용할 수 있게 mesasge를 배포한다.
Kafka를 자동차의 Data Collector로 사용
- 아우디가 수십만의 자동차의 데이터를 실시간 수집하는 방식을 예전부터 Connected cars에 적용해왔는데, 이때 데이터를 수집, 프로세스 하는 과정에서 Apache Kafka를 사용한다. 아래 그림을 참고하자.
Conclusion
- V2V, V2P와 같은 Direct Communication은 Deterministic, Ultra-low Latency가 요구된다.
- 따라서 해당 도메인에서는 HQTT or Kafka와 같은 기술을 사용하지 않는다. 5G 기술을 사용한다.
출처 : https://www.kai-waehner.de/blog/2021/03/19/apache-kafka-mqtt-part-2-of-5-v2x-connected-vehicles-edge-hybrid-cloud/