# 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. ## 📋 Description 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 ## 🏗️ Architecture **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 ``` ## 🚀 Installation ### Prérequis - Node.js >= 18.0.0 - Python >= 3.10 - npm ou yarn ### Installation rapide 1. Cloner le repository: ```bash git clone 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 ``` ## 💻 Utilisation ### Développement Lancer tous les services en mode développement: ```bash npm run dev ``` Ou séparément: **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 ``` ### Accès - Frontend: http://localhost:5173 - Backend API: http://localhost:8000 - Documentation API: http://localhost:8000/docs ## 🧪 Tests ```bash # Tous les tests npm run test # Backend seulement cd apps/backend pytest tests/ # Frontend seulement cd apps/web npm run test ``` ## 📊 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