Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

retour

Les modes d’interaction

Les modes d’interaction

Les développeurs, qui ont d’abord appris le bon vieil appel de fonction ont tendance à raisonner uniquement en termes d’appels synchrones. Mais l’architecte et le concepteur d’application doivent avoir à leur disposition une diversité de logiques d’échange, et c’est ce que doit leur offrir le middleware.

Passons en revue les principales possibilités.

Synchrone

En mode synchrone, l’appelant est bloqué en attente de la réponse à son message, ce qui correspond à un appel de fonction à distance. Bien sûr, on est généralement dans un contexte multi-process ou multi-thread, de sorte qu’il y a toujours du travail pour occuper le processeur. Mais du moins la logique de l’interaction est bien synchrone, bloquante.

Asynchrone, one-way (aller-seul)

Dans ce mode, l’appelant adresse son message de requête et poursuit son traitement. Il peut demander un acheminement garanti ou non. C’est par exemple le cas d’une notification vers un système de supervision.

Asynchrone with callback

Ici, l’appelant adresse son message et poursuit son traitement sans attendre, mais il spécifie un service à invoquer lorsque la réponse parviendra, c’est ce service qu’on appelle « callback ». C’est donc un mode asynchrone aller-retour, qui permet de ne bloquer ni l’appelant ni l’appelé.

Asynchrone, publish / subscribe (publication / abonnement)

Dans ce mode, un ou plusieurs services dits « consommateurs » s’abonnent à un flux de messages et le service « producteur » publie ses messages sur le flux. C’est en quelque sorte de l’asynchrone one-way, mais à destinataires multiples. Mais ce n’est pas le service émetteur qui désigne les destinataires, ce sont les destinataires qui s’inscrivent, ce qui est très différent.