Update to the text and small demo

This commit is contained in:
Valère Plantevin
2026-05-13 17:22:10 -04:00
parent 872bbb8c2c
commit a7b8065739
4 changed files with 168 additions and 109 deletions

View File

@@ -5,7 +5,7 @@ title-running: "QUIC+ECS for Industrial Digital Twins"
author-running: "Plantevin"
author: "Valère Plantevin\\inst{1}\\orcidID{0000-0000-0000-0000}"
institute: "Département d'informatique et de mathématiques, Université du Québec à Chicoutimi (UQAC), Chicoutimi, Canada\\\\ \\email{vplantev@uqac.ca}"
institute: "Département d'informatique et de mathématiques, Université du Québec à Chicoutimi (UQAC), Chicoutimi, Canada \\email{vplantev@uqac.ca}"
abstract: |
Industrial Digital Twin runtimes face a dual challenge: efficient
@@ -186,24 +186,29 @@ mapping between them.
| Sensor fault | Component absence | — |
| Ephemeral telemetry (T1) | `RawSensorData` write | Unreliable datagram |
| Threshold event (T2) | `AlertEvent` insert | Unidirectional stream |
| Actuator command (T3) | `CommandBuffer` write + ack | Bidirectional stream |
| Actuator command (T3) | `OutboundT3` enqueue + ack | Bidirectional stream (server-initiated) |
| Shadow export | Read-only system query | Victoria Metrics write |
: Unified structural correspondence: DT concepts, ECS primitives, and QUIC primitives. {#tbl-mapping}
The system boundary is a **three-tier channel bridge**: a Tokio async runtime
hosts the Quinn QUIC server and sensor generator tasks; Tokio bounded MPSC
channels carry all three tiers. T1 datagrams are lossy (dropped under backpressure),
while T2 events and T3 acks apply asynchronous backpressure to the QUIC streams.
Bevy's `IngestSystem` drains all three channels at the start of each tick.
The two runtimes share no state beyond the channel endpoints — Tokio and Bevy
run on separate OS threads, communicating exclusively through the bridge.
hosts the Quinn QUIC server; bounded MPSC channels carry T1 datagrams and T2
uni-stream events from the network side into the ECS, while a separate
outbound channel carries T3 actuator setpoints from the ECS back out to the
relevant device. T1 is lossy (dropped under backpressure); T2 applies
asynchronous backpressure on the inbound channel; T3 is substrate-initiated
and uses a per-device connection registry to open a fresh bidirectional
stream per actuator command. Bevy's `IngestSystem` drains the two inbound
channels at the start of each tick. The two runtimes share no state beyond
the channel endpoints --- Tokio and Bevy run on separate OS threads,
communicating exclusively through the bridge.
This separation is architecturally significant: QUIC head-of-line blocking
isolation and ECS system scheduling isolation are orthogonal and additive.
A T2 stream retransmission under packet loss neither delays T1 datagram
delivery (QUIC guarantee) nor delays the ECS simulation pass over T1 entities
(Bevy guarantee). @sec-evaluation tests this claim empirically.
Under packet loss, the lossy T1 tier should absorb drops silently with no
surfaced latency, while the reliable T3 tier should expose the QUIC
retransmit cost as added round-trip time --- without either bleeding into
the ECS tick schedule. @sec-evaluation tests this claim empirically.
# Implementation {#sec-implementation}
@@ -371,8 +376,9 @@ has been explored for DDS via the W2RP protocol [@peeck2021w2rp; @peeck2023w2rp]
which exploits application-level deadline knowledge within the DDS middleware
layer — the approach presented here achieves the equivalent at the transport
layer, with no middleware modification required. Digital twin synchronization
protocols have been evaluated by @cakir2023dtsync via the Twin Alignment Ratio
metric and by @bellavista2023entanglement via the ODTE metric; applying these
protocols have been evaluated via the Twin Alignment Ratio metric
[@cakir2023dtsync] and via the ODTE metric [@bellavista2023entanglement];
applying these
metrics to the integrated system is a natural extension.
HP2C-DT [@iraola2025hp2c] demonstrates that parallel ECS-style scheduling