Code/docs/FabNum v2/architecture-globale.dot
Stéphan Peccini e6ff714fca
docs(evolution): réorganisation docs/FabNum v2/ + points 13-14 + vues progressives
- Déplacement de toute la documentation v2 dans docs/FabNum v2/
- Ajout points 13 (bus d'impact, mémoire situationnelle, IA) et 14 (combinatoire)
- Architecture structurel/situationnel, IVC dynamique inter-sectoriel
- 4 vues architecturales progressives (vue1→vue4) pour présentation
- Génération PNG de tous les diagrammes
- .gitignore : docs/**/*.dot au lieu de docs/*.dot

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:54:52 +02:00

167 lines
5.5 KiB
Plaintext

digraph architecture_fabnum {
// Configuration générale
rankdir=TB;
fontname="Arial";
fontsize=18;
label="FabNum — Architecture globale\n\n";
labelloc=t;
splines=true;
nodesep=0.7;
ranksep=0.9;
node [fontname="Arial", fontsize=11, style="filled,rounded", shape=box, penwidth=1.5];
edge [fontname="Arial", fontsize=9, penwidth=1.2];
// ==================== UTILISATEURS ====================
admin [
label="Administrateur\n\nGère le graphe structurel,\nles sources, les tiers\nde confiance, les arbitrages"
fillcolor="#FFE082"
shape=house
fontsize=10
];
expert [
label="Expert\n\nAnalyse les risques,\nqualifie les données,\nvalide les impacts"
fillcolor="#A5D6A7"
shape=house
fontsize=10
];
client [
label="Client\n(COMEX, Métiers, DSI)\n\nConsulte les analyses,\nles fiches, les alertes.\nPeut contextualiser\nses requêtes."
fillcolor="#EF9A9A"
shape=house
fontsize=10
];
// ==================== ÉCOSYSTÈME / VEILLE 360° ====================
ecosysteme [
label="Écosystème\nveille 360°\n\nDétecte les événements,\nalimente les sources\net le bus d'impact"
fillcolor="#CE93D8"
shape=house
fontsize=10
];
// ==================== API ====================
api [
label="API\n\nPoint d'accès unique\nAuthentification, rôles,\nprofils de visibilité\n\nSert le graphe situationnel\n(structurel accessible aussi)"
fillcolor="#B39DDB"
fontsize=11
penwidth=2
];
// ==================== BUS D'IMPACT ====================
bus [
label="Bus d'impact\n\nMémoire situationnelle\nTraduction événements → impacts\nAccumule, met à jour, archive\nMise à jour en continu\n(rythme décisionnel)"
fillcolor="#FF8A65"
fontsize=11
penwidth=2.5
style="filled,rounded,bold"
];
ia_bus [
label="IA\n\nAnalyse les événements,\npropose les impacts\nchiffrés"
fillcolor="#FFCC80"
fontsize=10
];
// ==================== MOTEUR ====================
moteur [
label="Moteur FabNum\n\nCalcul des indices\n(structurels et situationnels)\nRequêtage, chemins critiques\nGénération fiches (templates)\nArbitrage sources\nProjection temporelle"
fillcolor="#90CAF9"
fontsize=11
penwidth=2
];
// ==================== BASE DE DONNÉES ====================
subgraph cluster_bdd {
label="Base de données (graphe)";
style=filled;
color="#E0F2F1";
fontsize=11;
fontcolor="#00695C";
bdd_struct [
label="Graphe structurel\n\nCapacités nominales\nActeurs, pays, parts de marché\nIndices structurels\nMise à jour trimestrielle"
fillcolor="#80CBC4"
fontsize=10
];
bdd_situa [
label="Graphe situationnel\n\nImpacts actifs\nCapacités réelles\nIndices situationnels\nHistorique des situations"
fillcolor="#4DB6AC"
fontsize=10
];
}
// ==================== VEILLE SUR LES SOURCES ====================
veille [
label="Veille sources\n\nSurveillance des sources (huginn)\nVérification des citations\nAlertes (variations)"
fillcolor="#FFAB91"
fontsize=10
penwidth=1.5
];
// ==================== SOURCES ====================
sources [
label="Sources externes\n\nUSGS, Statista, BRGM,\nScholar Gateway, Consensus,\nWRI Aqueduct, ND-GAIN..."
fillcolor="#E0E0E0"
shape=cylinder
fontsize=10
];
// ==================== DISPOSITION ====================
{ rank=same; admin; expert; client; ecosysteme; }
{ rank=same; bus; api; }
{ rank=same; ia_bus; moteur; }
// ==================== RELATIONS ====================
// Expert → API + validation impacts
expert -> api [label="consulte\nanalyse", color="#2E7D32"];
expert -> bus [label="valide\nles impacts", color="#E65100", style=bold];
// Client → API
client -> api [label="consulte\nles résultats", color="#C62828"];
// Écosystème → Bus d'impact + Sources
ecosysteme -> bus [label="injecte\ndes événements", color="#6A1B9A", penwidth=2];
ecosysteme -> sources [label="alimente\nles sources", color="#6A1B9A", style=dashed];
// Admin → Moteur (accès direct par scripts)
admin -> moteur [label="administre\n(scripts)", color="#E65100", style=bold, penwidth=2];
// IA ↔ Bus
bus -> ia_bus [label="événement\nà analyser", color="#E65100", dir=both];
// Bus → Moteur (impacts chiffrés)
bus -> moteur [label="impacts\nchiffrés", color="#BF360C", penwidth=2];
// API ↔ Moteur
api -> moteur [label="transmet\nles requêtes", color="#4527A0", dir=both];
// Moteur ↔ Base de données
moteur -> bdd_struct [label="lit/écrit\nstructurel", color="#00695C", dir=both];
moteur -> bdd_situa [label="lit/écrit\nsituationnel", color="#00695C", dir=both];
// Bus → BDD situationnel
bus -> bdd_situa [label="met à jour\nles impacts", color="#BF360C", style=dashed];
// Veille → Sources
sources -> veille [label="surveille\nles MAJ", color="#BF360C"];
// Veille → BDD structurel
veille -> bdd_struct [label="met à jour\nles sources", color="#E65100", style=dashed];
// Sources → BDD structurel
sources -> bdd_struct [label="alimente\nles données", color="#546E7A", style=dashed];
}