diff --git a/data-flow-diagram.md b/data-flow-diagram.md index cbd9854e..7806ca48 100644 --- a/data-flow-diagram.md +++ b/data-flow-diagram.md @@ -10,96 +10,66 @@ Ce diagramme illustre le flux complet des données IoT du simulateur vers les di ```mermaid graph TB - %% ===== COUCHE 1 : SOURCES DE DONNÉES ===== - subgraph Sources["📡 COUCHE 1 : SOURCES DE DONNÉES"] - SIM[Smart City Simulator
Python • 10 capteurs
MQTT + REST API] - SENSORS[Capteurs IoT Réels
MQTT/HTTP] + subgraph S1["COUCHE 1 SOURCES"] + SIM[Smart City Simulator] + SENS[Capteurs IoT Reels] end - %% ===== COUCHE 2 : MQTT BROKERS ===== - subgraph Brokers["📡 COUCHE 2 : MQTT BROKERS"] - EMQX[EMQX
Port 11883
MQTT] - MOSQ[Mosquitto
Port 1883
MQTT] - BUNKER[BunkerM
Port 1900
MQTTS] + subgraph S2["COUCHE 2 MQTT BROKERS"] + EMQ[EMQX] + MOS[Mosquitto] + BUN[BunkerM] end - %% ===== COUCHE 3 : CONTEXT BROKERS (NGSI-LD) ===== - subgraph Context["🔄 COUCHE 3 : CONTEXT BROKERS (NGSI-LD)"] - ORION[Orion-LD
NGSI-LD
Port 1026
10 entités] - STELLIO[Stellio
NGSI-LD
Port 8080
14 payloads] - FROST[FROST-Server
SensorThings API
Port 8080
21k+ observations] + subgraph S3["COUCHE 3 CONTEXT BROKERS"] + ORI[Orion-LD] + STE[Stellio] + FRO[FROST-Server] end - %% ===== COUCHE 4 : PLATEFORME IoT ===== - subgraph IoT["🏠 COUCHE 4 : PLATEFORME IoT (OpenRemote)"] - OPENREMOTE[OpenRemote Manager
Realm: Smart City
33 assets IoT
Port 8080] - KEYCLOAK[Keycloak
Auth OpenID
Token endpoint] + subgraph S4["COUCHE 4 IoT OpenRemote"] + ORM[OpenRemote Manager] + KC[Keycloak] end - %% ===== COUCHE 5 : STOCKAGE & MÉTRIQUES ===== - subgraph Storage["💾 COUCHE 5 : STOCKAGE & MÉTRIQUES"] - INFLUX[InfluxDB
IoT Data Bucket
Port 8086] - PROM[Prometheus
Metrics + Alerting
Port 9090] - GEO[GeoServer
WMS/WFS + PostGIS
Port 8080] + subgraph S5["COUCHE 5 STOCKAGE"] + INF[InfluxDB] + PRO[Prometheus] + GEO[GeoServer] end - %% ===== COUCHE 6 : VISUALISATION & ANALYSE ===== - subgraph Viz["📊 COUCHE 6 : VISUALISATION & ANALYSE"] - GRAF[Grafana
Dashboards
Port 3001
Datasources: InfluxDB, FROST, Orion] - MAP[MapStore
Cartographie
WMS/WFS
GeoServer] - ORUI[OpenRemote UI
Manager Interface
Realm: Smart City] + subgraph S6["COUCHE 6 VISUALISATION"] + GRA[Grafana] + MAP[MapStore] + UI[OpenRemote UI] end - %% ===== FLUX DE DONNÉES ===== - - %% Simulator → MQTT Brokers (NO direct to OpenRemote) - SIM -->|MQTT| EMQX - SIM -->|MQTT| MOSQ - SIM -->|MQTTS| BUNKER - - %% Real sensors → Brokers + direct to OpenRemote - SENSORS -->|MQTT| EMQX - SENSORS -.->|MQTT direct| OPENREMOTE - - %% MQTT Brokers → Context Brokers - EMQX -->|NGSI-LD| ORION - EMQX -->|NGSI-LD| STELLIO - EMQX -->|SensorThings| FROST - - %% MQTT Brokers → OpenRemote (via MQTT Agent) - EMQX -->|MQTT (Agent)| OPENREMOTE - MOSQ -->|MQTT (Agent)| OPENREMOTE - BUNKER -->|MQTT (Agent)| OPENREMOTE - - %% OpenRemote → Keycloak - OPENREMOTE -.-> KEYCLOAK - - %% Simulator → InfluxDB (direct) - SIM -->|HTTP| INFLUX - - %% Context Brokers → Visualization - ORION -->|Query| GRAF - STELLIO -->|Query| GRAF - FROST -->|Query| GRAF - - %% Context Brokers → GeoServer (DB Sync) - ORION -.->|PostGIS| GEO - STELLIO -.->|PostGIS| GEO - FROST -.->|PostGIS| GEO - - %% GeoServer → MapStore + SIM -->|MQTT| EMQ + SIM -->|MQTT| MOS + SIM -->|MQTTS| BUN + SENS -->|MQTT| EMQ + SENS -.->|MQTT direct| ORM + EMQ -->|NGSI-LD| ORI + EMQ -->|NGSI-LD| STE + EMQ -->|SensorThings| FRO + EMQ -->|MQTT Agent| ORM + MOS -->|MQTT Agent| ORM + BUN -->|MQTT Agent| ORM + ORM -.-> KC + SIM -->|HTTP| INF + ORI -->|Query| GRA + STE -->|Query| GRA + FRO -->|Query| GRA + ORI -.->|PostGIS| GEO + STE -.->|PostGIS| GEO + FRO -.->|PostGIS| GEO GEO -->|WMS/WFS| MAP + ORM -->|API Query| GRA + EMQ -.->|Metrics| PRO + ORI -.->|Metrics| PRO + STE -.->|Metrics| PRO + ORM -.->|Metrics| PRO - %% OpenRemote → Grafana - OPENREMOTE -->|API Query| GRAF - - %% All → Prometheus (Metrics) - EMQX -.->|Metrics| PROM - ORION -.->|Metrics| PROM - STELLIO -.->|Metrics| PROM - OPENREMOTE -.->|Metrics| PROM - - %% Style classDef simulator fill:#1e293b,stroke:#fb923c,stroke-width:2px,color:#fff classDef broker fill:#0f172a,stroke:#22d3ee,stroke-width:2px,color:#fff classDef context fill:#0f172a,stroke:#34d399,stroke-width:2px,color:#fff @@ -107,12 +77,12 @@ graph TB classDef storage fill:#0f172a,stroke:#fbbf24,stroke-width:2px,color:#fff classDef viz fill:#0f172a,stroke:#22d3ee,stroke-width:2px,color:#fff - class SIM,SENSORS simulator - class EMQX,MOSQ,BUNKER broker - class ORION,STELLIO,FROST context - class OPENREMOTE,KEYCLOAK iot - class INFLUX,PROM,GEO storage - class GRAF,MAP,ORUI viz + class SIM,SENS simulator + class EMQ,MOS,BUN broker + class ORI,STE,FRO context + class ORM,KC iot + class INF,PRO,GEO storage + class GRA,MAP,UI viz ``` ---