Nous allons construire une simulation d'un dispositif clients-serveur.
Un serveur va conserver et gérer des objets informatiques représentant des stocks d'objets réels.
Des clients vont se connecter au serveur et pourront effectuer des opérations telles que :
demander la création d'un panier d'achat
demander au serveur la liste des types d'objets disponibles
pour un type d'objets, demander l'état du stock et le prix
demander de prélever "n" objets d'un type et de les mettre dans le panier d'achat
demander d'enlever "k" objets du panier
vider le panier
acheter le contenu du panier.
Le serveur peut être interrogé simultanément par un nombre quelconque (ou presque) de clients.
Nous auront deux niveaux à considérer :
le niveau de l'échange de données "applicatives" entre les clients et le serveur
le niveau du "transport" des données échangées entre les clients et le serveur
Cette séparation des responsabilités entre deux niveaux (ont dit plutôt deux couches dans le vocabulaire des réseaux) est typique de la construction des applications utilisant des réseaux. On dit que la couche basse fournit un "service de transport" à la couche haute.