Skip to main content

Architecture

Architecture

The Docker Compose configuration runs a fleet backend and a simulated vehicle on one host. Three Docker bridge networks separate backend communication, in-vehicle uProtocol services, and vehicle diagnostics.

Component Map​

The uProtocol arrows between services are logical connections carried by Mosquitto. No direct ECU Updater-to-CDA firmware deployment path is implemented.

Services​

Compose serviceResponsibility
symphony-apiAccepts deployment target specifications in the backend
symphony-portalProvides a read-only view of Symphony targets and deployment progress
mosquittoCarries Symphony messages and uProtocol communication using MQTT
fmsRepresents the Fleet Management System; cycles powertrain modes and logs vehicle properties events
symphony-agentReconciles desired deployment state with the in-vehicle target provider
ecu-updaterImplements the Symphony target provider operations over uProtocol; stores firmware deployment state in memory
databrokerHosts vehicle information using Eclipse Kuksa and VSS metadata
vehicle-propertiesMakes vehicle properties available as uProtocol events
powertrain-mode-controllerExposes uProtocol operations for reading and setting powertrain mode through SOVD
sovd-cdaMaps SOVD resources to UDS operations using preprocessed diagnostic definitions
ecu-simSimulates a DoIP-connected ECU, including powertrain mode read/write operations
dozzleDisplays container logs in a browser

Network Boundaries​

NetworkConnected services
backendSymphony API, Symphony Portal, Mosquitto, FMS
vehicle-uprotocolMosquitto, Symphony Agent, ECU Updater, Kuksa Databroker, Vehicle Properties, Powertrain Mode Controller
vehicle-sovdPowertrain Mode Controller, CDA, ECU Simulator

Dozzle is attached to Compose's default network and reads logs through the mounted Docker socket. These networks model logical boundaries; they are not a production vehicle security architecture.

Diagnostic Definitions and Simulator​

The repository contains the diagnostic model and its simulated counterpart:

The model and simulator expose matching PowerTrain_Mode_Read and PowerTrain_Mode_Write operations. Regenerating diagnostic data is not required to run the supplied Compose demo.

Follow the Message Flows​

The Firmware Update Walkthrough explains Symphony's target lifecycle. The ECU Configuration Walkthrough follows a powertrain mode command all the way to the simulated ECU.