Communication entre processus From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 Chapitre 4
Plan zCaractéristiques des protocoles de communication entre processus dans un système réparti yPrincipes généraux ycommunication xpar datagrammes Client-serveur Communication de groupe xpar flots (streams) Client-serveur yconstruction de protocoles pour les patterns de communication xclient-serveur : requête-réponse xgroupe : même message est envoyé à plusieurs processus ydonnées xreprésentation des objets dans les messages xréférences à des objets distants
Niveaux du middleware zChapitre 5 : RMI et RPC zChapitre 3 : protocole Internet au niveaux transport yUDP : User Datagram Protocol yTCP : Transport Control Protocol
Protocoles spécialisés zComment construire des protocoles de plus haut niveau efficaces à partir des datagrammes et des flots ? yclient-serveur ygroupe zcomment utiliser yles rôles et les patterns de communications ypour construire des protocoles de communication approprié xfondés sur les échanges réels xévitant les redondances inutiles ?
Caractéristiques des communications entre processus zOpérations de communication de messages y une file est associée à chaque destination y send un message (suite de bits) à une destination x ajout d ’un message à la file remote y receive x retrait de message de la file locale zCommunication y synchrone xsend et receive sont des opérations bloquantes y asynchrone xL ’opération send est non-bloquante xL ’opération receive peut être bloquante –logique moins complexe : utiliser les threads + synchronization non-bloquante –le processus destinataire poursuit sa tâche après avoir émis un receive –le tampon est rempli en background –notification que le tampon est plein par polling ou interruption –demande une logique plus complexe au niveau du programme
Sockets zabstraction qui définit un point de communication entre deux processus zsocket lié à une adresse Internet + port (2**16) zun processus NE PEUT PAS partager un port avec d ’autres processus sur le même ordinateur yexception IP multicast zun socket est associé à un protocole UDP ou TCP message agreed port any port socket Internet address = Internet address = other ports client server
Adresses Internet en Java Java.net.InetAddress InetAddress.getByName("java.sun.com") throw UnknownHostException zindépendant de la représentation interne des adresses Internet yIPv4 : 4 octets yIPv6 : 16 octets
Fiabilité et ordonnancement zPropriété de validité yun service de message point-à-point est dit fiable xs ’il y a garantie de livraison des messages même si un nombre raisonnable de paquets peuvent être écartés ou perdus zPropriété d ’intégrité yun service de message point-à-point est dit fiable xsi les messages arrivent à destination sont non corrompus et sans duplication zOrdonnancement ycertaines applications exigent que les messages parviennent à destination en respectant leur ordre d ’émission