Skip to main content

Communication au sein du SI

Nous avons vu que le SI est constitué de differents élements. Nous allons maintenant aborder la façon dont communiquent ces éléments.

Communication client serveur

Protocoles de commnication

Le protocole de communication le plus massivement utilisé pour la communication client-serveur est le protocole HTTP. C'est un protocole synchrone (requête - réponse) en mode connecté (il utilise le protocole de transport TCP).

Vous pouvez consulter plus en détail le protocole HTTP dans ce cours : Le Protocole HTTP

Il exsite aussi le protocole WebSocket, qui n'est pas excactement du HTTP mais est interopérable avec. Le protocole WebSocket permet d'établir une connexion full-duplex, c'est à dire que le client peut envoyer des messages au serveur et le serveur peut envoyer des messages au client.

Standards de services HTTP

Pour exposer des services sur le protocole HTTP, il existe plusieurs standards.

Representationnal State Transfer (ReST)

Le standard ReST est un standard sans état qui vise à facilité l'interopérabilité en donnant plus de controle au client. Le concept princpal de ReST est le concept de ressource. Une ressource est une donnée présente sur le serveur, sur laquel on va effectuer des opérations en utilisant la sémantique des méthodes HTTP. On peut interagir avec des collections ou des entités individuelles de la ressource.

Le transport des données en Rest se fait soit au format XML, soit au format JSON, mais JSON est beaucoup plus utilisé.

Exemple d'API ReST

SOAP

SOAP (Simple Object Access Protocol) est un standard de webservice qui expose des fonctions qui peuvent être appelées par le client. La spécification se fait à travers d'un fichier WSDL (Web Service Description Language) au format XML. Ce standard est un peu désuet car il est assez lourd à utiliser.

GRPC

gRPC est un système d'invocation de procédure distance (remote procedure call) très moderne développé par Google. Les données sont transportées en binaires pour augmenter les performances et la version 2 du protocole HTTP est utilisée. Les services sont décrits par un langage dédié (Protobuf), avec support de génération de code pour la plupart des langages. Il supporte nativement des fonctionnalités comme l'authentification et le streaming bidirectionnel. Le protocole gRPC est très utilisé dans les infrastructures cloud pour la communication entre les conteneurs applications.