Contexte et Enjeux

Projet réalisé en équipe sur plusieurs semaines en fin de semestre de BUT Informatique. L'objectif était de concevoir un système d'enchères en temps réel. La complexité résidait dans la communication instantanée entre le serveur et les multiples clients (enchérisseurs), ainsi que la gestion des accès concurrents.

Architecture Distribuée

Nous avons dû implémenter notre propre protocole de communication au-dessus de TCP/IP pour gérer les offres, les surenchères et la clôture des ventes.

Gestion de la Concurrence

L'un des défis majeurs était la gestion des accès concurrents.

  • Threads & Sockets : Chaque client connecté est géré par un thread dédié sur le serveur, permettant de traiter plusieurs requêtes simultanément sans bloquer l'application.
  • Synchronisation : Utilisation de blocs synchronized pour garantir l'intégrité des données (ex: éviter que deux personnes enchérissent au même prix au même moment).
  • Architecture N-Tiers : Séparation claire entre la couche de présentation (Client), la logique métier (Service) et la persistance des données (DAO).

Persistance et Fiabilité

Les données des utilisateurs et des objets en vente sont stockées de manière persistante, assurant qu'aucune information n'est perdue en cas de redémarrage du serveur.

Compétences acquises

Techniques : Communication client/serveur (sockets TCP/IP), gestion des threads et de la synchronisation, architecture N-Tiers (Spring Boot), persistance des données et intégrité en environnement concurrent.
Humaines : Travail en équipe sur un projet d'envergure, répartition des responsabilités, coordination pour un livrable commun.

Aperçu de l'application