Newer
Older
# Queueing Network Simulation - Distributed Database
> Projet Universitaire: Modélisation, Incertitude et Simulation 2025-2026
Simulation d'une base de données distribuée utilisant la théorie des files d'attente avec validation analytique par le théorème de Jackson.
Ce projet implémente un simulateur de réseau de files d'attente pour modéliser le comportement d'une base de données distribuée. Le système comprend:
- Un coordinateur qui distribue les requêtes
- Plusieurs serveurs qui traitent les requêtes
- Une validation analytique via le théorème de Jackson
- Une interface web interactive pour visualiser et analyser les résultats
**Monorepo Turborepo** avec:
- **Backend** (Python + FastAPI): Moteur de simulation événementiel et calculs analytiques
- **Frontend** (React + TypeScript): Dashboard interactif avec visualisations
projet-reseau-de-files-d-attentes/
├── apps/
│ ├── backend/ # Python FastAPI - Simulation engine
│ └── web/ # React TypeScript - Dashboard
├── turbo.json
└── package.json
- Node.js >= 18.0.0
- Python >= 3.10
- npm ou yarn
1. Cloner le repository:
```bash
git clone <repo-url>
cd projet-reseau-de-files-d-attentes
```
2. Installer les dépendances root:
```bash
npm install
```
3. Installer les dépendances backend:
```bash
cd apps/backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
4. Installer les dépendances frontend:
```bash
cd apps/web
npm install
```
Lancer tous les services en mode développement:
```bash
npm run dev
```
**Backend** (port 8000):
```bash
cd apps/backend
source venv/bin/activate
python src/main.py
```
**Frontend** (port 5173):
```bash
cd apps/web
npm run dev
```
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- Documentation API: http://localhost:8000/docs
```bash
# Tous les tests
npm run test
# Backend seulement
cd apps/backend
pytest tests/
# Frontend seulement
cd apps/web
npm run test
```
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
## 📊 Fonctionnalités
### Simulation
- Simulation événementielle discrète de réseaux de files M/M/1
- Support de n serveurs configurables
- Routage probabiliste des requêtes
- Détection du régime permanent
- Collecte de statistiques détaillées
### Analyse Analytique
- Implémentation du théorème de Jackson
- Calcul des conditions de stabilité
- Calcul de L (nombre moyen de clients)
- Calcul de W (temps moyen dans le système)
- Comparaison simulation vs analytique
### Visualisations
- Diagramme de topologie du réseau (D3.js)
- Séries temporelles (nombre de clients)
- Histogrammes (temps de traitement)
- Graphiques de convergence
- Tableaux de statistiques
### Scénarios Prédéfinis
1. 1 serveur rapide (test d'instabilité)
2. 1 serveur rapide + 1 serveur lent
3. 3 serveurs lents
4. 2 serveurs (rapide + moyen)
5. Analyse de sensibilité (λ, p)
## 📚 Technologies
### Backend
- FastAPI (API REST)
- Pydantic (validation)
- NumPy (statistiques)
- WebSockets (temps réel)
- Pytest (tests)
### Frontend
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Chart.js (graphiques)
- D3.js (topologie réseau)
- Zustand (état global)
- Axios (HTTP client)
## 📖 Documentation
- [Backend README](apps/backend/README.md)
- [Frontend README](apps/web/README.md)
- [Plan d'implémentation](.claude/plans/jolly-brewing-liskov.md)
## 🎯 Phases de Développement
- [x] Phase 1: Infrastructure et setup
- [ ] Phase 2: Moteur de simulation core
- [ ] Phase 3: Statistiques et multi-serveurs
- [ ] Phase 4: Module analytique (Jackson)
- [ ] Phase 5: API Backend
- [ ] Phase 6: Frontend core
- [ ] Phase 7: Visualisations
- [ ] Phase 8: Temps réel et polish
- [ ] Phase 9: Tests de scénarios et rapport
## 👥 Auteurs
Projet réalisé dans le cadre du cours "Modélisation, Incertitude et Simulation" 2025-2026.
## 📄 Licence
Projet universitaire - Usage académique