Cours 4: Communication Flashcards

1
Q

Quels sont les modeles de communication?

A
  • Sans connexion (UDP):
    • Send ([destinataire], message);
    • Receive ([´emetteur], file de stockage);
  • Avec connexion (TCP):
    • Connect (destinataire, ´emetteur);
    • Read, Write…
    • Disconnect (identificateur de connexion);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definir les communications synchrones et asynchrones.

A

• Le send et receive sont bloquants; les processus se
synchronisent a chaque message. Send attend l’accuse de reception!?!
• Le send est non-bloquant, si la file du systeme d’exploitation n’est pas pleine, tandis que receive est generalement bloquant. Si les paquets arrivent trop vite et la file du systeme d’exploitation est pleine, un message de ralentir est envoye et les paquets en surplus peuvent etre ignores.
• Le receive aussi est non-bloquant, le processus verifie de temps en temps, peut demander un signal, ou utilise un appel systeme de type select ou epoll.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quel est l’avantage d’un bus de communication?

A

Avec un bus, on peut envoyer un message a n destinataires sur le bus en 1 unite de temps au lieu de n unites de temps pour des messages separes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definir messages de groupe par multidiffusion.

A

• Tolerance aux fautes basees sur des services repliques sur plusieurs serveurs.
• Amelioration des performances par des services et donnees repliques sur plusieurs serveurs.
• Decouvertes de services dans un environnement de reseautage spontane.
• Economie de bande passante par multidiffusion des
notifications d’evenements, video ou fichiers identiques
demandes par de nombreux clients.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definir messages de groupe.

A
  • Envoi d’un message aux membres d’un groupe.
  • Sur reception, le message est remis au processus destinataire.
  • Communication non fiable, un seul message UDP est envoye, par exemple pour annoncer une adresse Ethernet versus IP.
  • Communication fiable, avec chaque message livre au moins une fois (valide) ou au plus une fois (integre)
  • Communication atomique, livre a tous ou a aucun.
  • Communication ordonnancee: totalement, causalement, par origine.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definir message de groupe atomiques

A
  • Tous le recoivent ou personne ne le recoit.
  • Envoi a tous du message non-confirme et demande d’accuse de reception. Retransmission au besoin si l’accuse de reception ne vient pas.
  • Si tous ont recu, message de confirmation pour rendre le message maintenant confirme disponible aux applications.
  • Si des accuses de reception manquent apres un certain temps, annuler le message.
  • Si un client ne recoit pas de confirmation, il demande l’etat a l’envoyeur puis au besoin verifie avec un autre ordinateur qui peut prendre la releve.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Definir message de groupe totalement ordonnances.

A

• Chaque message a un numero de sequence unique, par exemple fourni par un processus sequenceur.
• Chaque recipiendaire attend d’avoir recu les messages
precedents avant de livrer un message a ses applications.
• Un recipiendaire peut devoir laisser tomber des messages plus recents s’il en a trop en attente.
• Un envoyeur peut bloquer s’il a trop de messages en attente d’accuses de reception.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Definir les messages de groupe causalement ordonnances.

A

• Les messages en provenance d’un meme ordinateur arrivent dans leur ordre d’envoi a chaque recipiendaire: numero de sequence propre a chaque membre du groupe qui envoie des messages.
• Les messages recus en provenance de plus d’un ordinateur arrivent en ordre causal: chaque processus maintient un vecteur de numeros de sequence de messages de groupe vus venant de chaque processus. Un message avec un certain vecteur n’est pas delivre avant que tous les messages de chaque processus n’aient ete recus, jusqu’au numero dans le
vecteur pour ce processus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Definir language de definition des interfaces.

A

• Declaration des procedures (nom, et liste et type des
arguments).
• Declaration des types et des exceptions.
• Generateur de code a partir du IDL pour la librairie client (proxy), et la librairie serveur (squelette), dans le langage de programmation desire.
• Le IDL et le generateur de code ne sont pas requis si la
reflexivite permet d’obtenir cette information a l’execution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Definir la semantique des appels.

A

• Mecanismes: envoi simple, accuse de reception,
retransmission, filtrage des requetes dupliquees, memorisation des reponses.
• Peut-etre: en l’absence de reponse on ne peut savoir si la requete ou la reponse fut perdue.
• Au moins une fois: retransmission sans filtrage des requetes jusqu’a obtention d’une premiere reponse.
• Au plus une fois: avec retransmission, filtrage des requetes, et memorisation du resultat, la procedure est executee exactement une fois si une reponse est obtenue et au plus une fois en l’absence de reponse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definir sun rpc.

A

• Definition d’interface et de types en XDR.
• Procedures avec un argument (entree), une valeur de retour (sortie), et possiblement un numero de version.
• rpcgen produit la librairie client (proxy/client stub) et le
squelette (server stub) du programme serveur.
• Completer le squelette du serveur avec l’implantation.
• Initialiser la connection dans le client et utiliser les fonctions proxy en verifiant les erreurs.
• Le DNS effectue la localisation du serveur.
• Portmap effectue la localisation du service.
• Les appels sans valeur de retour peuvent etre accumules et envoyes d’un coup pour plus de performance.
• Authentification.
• Semantique au moins une fois.
• Sur UDP, chaque requete ou reponse est limitee a 8Koctets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Definir l’appel de methodes a distance.

A

• Modele objet: references aux objets, interfaces, methodes, exceptions, ramasse-miettes.
• Proxy: se presente comme un objet local, ses methodes serialisent les arguments, transmettent la requete au module de communication et retournent la reponse recue.
• Repartiteur: recoit les requetes dans le serveur et les
communique au squelette correspondant.
• Squelette: recoit les requetes pour un type d’objet, deserialise les arguments, appelle la methode correspondante de l’objet reference et serialise la reponse a retourner.
• Module de communication: envoi de requete client (type, numero de requete, reference a un objet, numero de methode, arguments), la requete recue par le serveur est envoyee au repartiteur et la reponse est retournee

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Definir le module de references au reseau.

A

• Table des objets importes (pour chaque objet distant utilise, adresse reseau et adresse du proxy local correspondant),
• Table des objets exportes (pour chaque objet utilise a
l’exterieur, adresse reseau et adresse locale).
• Lorsqu’une reference reseau est recue, son proxy ou objet local est trouve ou un nouveau proxy est cree et une entree ajoutee dans la table.
• Lorsqu’un objet reseau local est passe en argument, son adresse reseau le remplace et il doit se trouver dans la table des objets exportes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Definir les modules par reference reseau.

A

• Table des objets importes (pour chaque objet distant utilise, adresse reseau et adresse du proxy local correspondant),
• Table des objets exportes (pour chaque objet utilise a
l’exterieur, adresse reseau et adresse locale).
• Lorsqu’une reference reseau est recue, son proxy ou objet local est trouve ou un nouveau proxy est cree et une entree ajoutee dans la table.
• Lorsqu’un objet reseau local est passe en argument, son adresse reseau le remplace et il doit se trouver dans la table des objets exportes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Definir les services pour appel de methodes distantes.

A

• Service de nom: permet d’obtenir une r´ef´erence objet r´eseau `a
partir d’un identificateur/nom.
• Contextes d’ex´ecution: le serveur peut cr´eer un fil d’ex´ecution
pour chaque requˆete.
• Activation des objets: le serveur peut ˆetre d´emarr´e
automatiquement lorsqu’une requˆete pour un objet apparaˆıt
(message augmentation de salaire pour le budget qui est
stock´e sur disque dans un fichier de chiffrier).
• Stockage des objets persistents.
• Service de localisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment la gestion de la memoire en reparti marche-t-elle.

A

• Malloc et Free difficiles a appeler au bon moment en reparti!
• Chaque client s’enregistre lorsqu’il utilise un objet et avertit lorsqu’MTH2210Ail en a termine. Le serveur libere un objet si ni lui ni les clients ne l’utilisent.
• Ramasse-miette conventionnel qui travaille en reparti? Tres difficile et inefficace puisqu’il faut tout arreter en meme temps lors du ramassage.
• Ramasse-miette local a chaque processus avec notification automatique au serveur lorsqu’un client cesse d’utiliser un proxy.
- Une reference a un objet O est envoyee de A a B et A cesse de l’utiliser, le message de A (reference a O inutilisee) peut arriver avant celui de B (utilise O).
- Cycle de references entre 2 clients ou plus.
- Si le client disparaıt, le serveur doit l’enlever de la liste (limite de validite pour les references, ou besoin de messages de maintien keepalive).

17
Q

Definir java RMI.

A
  • Ne fonctionne que de Java a Java.
  • S’applique a tout type qui implante l’interface Remote.
  • Les methodes doivent accepter l’exception RemoteException.
  • Les arguments seront envoyes et la valeur retournee sert de reponse.
  • Ces arguments doivent etre des types primitifs, des objets reseau, ou des objets qui implantent l’interface Serializable (le graphe complet d’objets rejoints par un argument peut etre transmis).
  • Le type des objets serialises contient une reference a la classe. La classe peut etre telechargee au besoin par le recepteur.
  • Le type des objets reseau contient une reference a leur classe proxy (stub) qui peut etre telechargee au besoin.
18
Q

Que sont les conteneurs EJB?

A

• Logiciels comme JBoss (Red Hat), WebSphere (IBM),
NetWeaver (SAP), WebLogic (Oracle), Geronimo (Apache), GlassFish (Sun).
• Recoit les requetes d’objets/clients locaux ou distants (RMI, RMI-IIOP, Web Services, JMS) qui fournissent l’interface usager.
• Les requetes sont validees et dirigees vers les objets de session qui sont references ou crees au besoin (Business logic).
• Les objets entites sont accedes par les objets de session et leur etat est gere et mis a jour dans la base de donnees selon ce qui a ete specif´e dans les annotations (Persistence).

19
Q

Les roles selon EJB?

A

• Bean provider: fournisseur des composantes de l’application.
• Application assembler: concepteur de l’application qui
assemble les composantes pour obtenir les fonctions desirees.
• Deployer: responsable du deploiement de l’application dans un environnement adequat.
• Service provider: specialiste des systemes repartis qui s’assure du niveau de service desire.
• Persistence provider: specialiste des bases de donnees.
• Container provider: specialiste de l’environnement d’execution des composantes Java.
• System administrator: administrateur du systeme informatique qui s’assure que le systeme fonctionne selon ce qui a ete concu.

20
Q

Qu’est-ce que CORBA?

A
  • Langage de definition d’interface avec constantes, structures, methodes, et exceptions.
  • Generateur de proxy et de squelette multi-langage.
  • Possibilite d’appels asynchrones en l’absence de valeur de retour.
  • Mecanisme pour la decouverte et l’invocation dynamique de procedures.
  • Divers services de notification…
  • Semblable a Sun RPC mais plus sophistique et objet.
21
Q

Quelles sont les composantes de CORBA?

A
- Object Request Broker (ORB)
• Initialisation et finalisation.
• Conversion de references aux objets.
• Envoi de requetes.
- Portable Object Adapter (POA)
• Activation des objets.
• Repartition des requetes vers les objets via les squelettes.
• Gestion des adresses reseau.
• Portable: fonctionne avec des implantations CORBA
differentes.
22
Q

De quoi est constitue le language de definition d’interface?

A

• Module: definit un espace de nom.
• Interface: liste de methodes, attributs et declarations de types ou exceptions. Heritage simple ou multiple.
• Methode: nom de fonction, arguments in/out/inout, valeur de retour, exceptions. Attribut oneway pour invocation asynchrone.
• Types: short, long, unsigned short, unsigned long, float,
double, char, boolean, octet, any, struct, enum, union
(tagged), array, string, sequence, object.
• Exception: peut contenir des variables.
• Attribut: variable de l’interface. Peut etre readonly.

23
Q

Qu’est-ce que SOAP?

A

• Simple Object Activation Protocol.
• Requete HTTP, action POST, contenu XML (nom de la
fonction et arguments d’entree), reponse XML avec
arguments de retour.
• Facile a deployer car reutilise toute l’infrastructure Web.
• Relativement inefficace.

24
Q

Qu’est-ce que REST?

A

• Requete sans contexte (stateless), pour acceder une ressource representee par un URL, en utilisant un certain format (e.g. JSON) et les methodes HTTP (GET, PUT…).
• La methode GET n’a aucun effet sur la ressource.
• Les methodes PUT et DELETE sont idempotentes.
• Pas une norme, simplement un style architectural de service Web.
• De plus en plus populaire en raison de sa simplicite.
• Pas toujours bien utilise (manques au niveau de la
recuperation d’erreurs, pas completement sans contexte. . . ).

25
Q

Qu’est-ce que gRPC?

A
  • Acronyme pour gRPC Remote Procedure Call.
  • Rendu disponible par Google en 2015: A high performance, open-source universal RPC framework.
  • Communication avec HTTP2 (compression des entetes).
  • Generateurs de code pour une dizaine de langages populaires (C++, Java, Python, Go, Ruby, C#…).
  • Permet differents formats pour les messages mais implante initialement Protobuf (Protocol Buffers).
  • Permet d’inserer le support pour l’equilibrage de charge, le tracage, le monitoring et l’authentification.
  • Utilise par Google, Netflix, Twitter, Cisco, Juniper…
26
Q

Definir les protocol Buffers.

A
  • Format binaire compatible vers l’avant et l’arriere.
  • Chaque champ peut etre obligatoire ou optionnel et vient avec un numero (tag) pour l’identifier.
  • Un message est une sequence de: numero de champ, type, valeur. Le type est un entier de 3 bits (varint, float, length delimited…). Le numero de champ et le type sont groupes en un varint et prennent ensemble usuellement 1 octet.
  • Les varint sont des entiers de longueur variable (0-127 ou 1b+0-127 +varint). Un premier bit a un indique qu’un octet supplementaire est utilise. Petit boutien.
  • Fonctionne entre les langages et entre les plates-formes et est possible de traiter un message meme s’il contient des champs inconnus.
  • Protoc genere le code pour initialiser, serialiser et lire les types decrits de meme que pour faire des RPC (un type pour l’envoi et un pour la reponse).