README.md 4,01 ko
Newer Older
Hamadou Ba's avatar
Hamadou Ba a validé
# Simulation de Réseau de Files d'Attente
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
> Projet MED 2025-2026 — Modélisation, Incertitude et Simulation
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
Simulateur interactif de réseau de files d'attente pour modéliser une base de données distribuée.
Le système repose sur la **simulation d'événements discrets** et la **validation analytique par le théorème de Jackson (M/M/1)**.
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Prérequis
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
- [Docker Desktop](https://www.docker.com/products/docker-desktop/) installé et lancé
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Lancement
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
```bash
docker compose up
```
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
| Service | URL |
|---------|-----|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:8000 |
| Documentation API (Swagger) | http://localhost:8000/docs |
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
> La base de données PostgreSQL est initialisée automatiquement au premier démarrage via Alembic.
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
### Réinitialiser la base de données
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
docker compose down -v && docker compose up
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Pages de l'application
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
| Page | Description |
|------|-------------|
| **Simulation** `/` | Configure les paramètres (λ, μ, serveurs) et lance une simulation. Les résultats théoriques (Jackson) se mettent à jour en temps réel à droite. |
| **Résultats** `/resultats` | Affiche les métriques (L, W, ρ), les graphiques N(t), les compteurs de requêtes par file, et la comparaison analytique vs simulation. |
| **Comparaison** `/comparaison` | Compare plusieurs simulations sauvegardées en base de données côte à côte. |
| **Tutoriel** `/tutorial` | Guide de démarrage interactif — affiché automatiquement à la première visite, accessible via le menu. |
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Paramètres de simulation
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
| Paramètre | Description |
|-----------|-------------|
| **λ** | Taux d'arrivée externe des requêtes (req/ms) |
| **μ coordinateur** | Taux de service du coordinateur (req/ms) |
| **p** | Probabilité de sortie après le coordinateur |
| **μ serveur** | Taux de service de chaque serveur (req/ms) |
| **q** | Probabilité de routage vers chaque serveur |
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
Le réseau est composé d'**1 coordinateur** suivi de **N serveurs en parallèle**.
Le système est stable si **ρ < 1** pour chaque file (condition de Jackson).
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
### Scénarios prédéfinis
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
| Scénario | Description |
|----------|-------------|
| Serveur rapide unique | 1 serveur rapide (120 ms) — configuration de base |
| Serveur rapide + serveur lent | Déséquilibre de charge (120 ms + 240 ms) |
| Trois serveurs lents | Parallélisation avec 3 serveurs à 240 ms |
| Serveur rapide + serveur moyen | Configuration mixte (120 ms + 190 ms) |
| Sensibilité aux paramètres | Comparaison low / medium / high λ avec 3 serveurs lents |
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Stack technique
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
| Composant | Technologie |
|-----------|-------------|
| Frontend | React 18 + TypeScript + Vite + Material UI |
| State management | Zustand |
| Graphiques | Chart.js + react-chartjs-2 |
| Backend | FastAPI (Python 3.11) |
| Base de données | PostgreSQL 16 + SQLAlchemy + Alembic |
| Infrastructure | Docker Compose |
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
## Structure du projet
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
```
.
├── docker-compose.yml
├── apps/
│   ├── backend/                  # API FastAPI
│   │   ├── src/
│   │   │   ├── api/              # Endpoints REST (simulation, scenarios)
│   │   │   ├── core/             # Moteur de simulation (événements discrets)
│   │   │   ├── analytics/        # Théorème de Jackson, comparaison analytique
│   │   │   ├── models/           # Schémas Pydantic + modèles SQLAlchemy
│   │   │   └── database/         # Connexion DB + migrations Alembic
│   │   └── Dockerfile
│   └── web/                      # Application React
│       ├── src/
│       │   ├── pages/            # SimulationPage, ResultatsPage, ComparaisonPage, TutorialPage
│       │   ├── components/       # Dashboard, ParameterPanel, ResultsDisplay, graphiques
│       │   └── store/            # simulationStore (Zustand)
│       └── Dockerfile
Hamadou Ba's avatar
Hamadou Ba a validé

Hamadou Ba's avatar
Hamadou Ba a validé
---
Hamadou Ba's avatar
Hamadou Ba a validé
## Auteurs
Hamadou Ba's avatar
Hamadou Ba a validé
Projet réalisé dans le cadre du cours "Modélisation, Incertitude et Simulation" 2025-2026.