21
Retour sur RMI

Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Embed Size (px)

Citation preview

Page 1: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Retour sur RMI

Page 2: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Exemple

CLIENT Essifun SERVEUR de Surnoms

oter

infrastructure

Protocole d’application ?

Page 3: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Communication client serveur

CLIENT SERVEUR

Préparation de la requêteEnvoi de la requêteAttente du résultat….

Analyse du résultat reçu

Connexion au serveur Attente de requêtes

Analyse de la requête…..Exécution….Préparation de la réponseEnvoi de la réponse

Page 4: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Exemple : annuaire des surnoms

EssiFun SERVEUR de Surnoms

enregistrer(« paul », 

«bug »)

marshalling

marshalling

unmarshalling

unmarshalling

0111000101000..

101..

enregistrer(« paul »,

 «bug ») = TRUE

TRUE

1:Paul:bug ou ENR/nPaul/n/bug/n ou Objet Requête Seriablizable

Différence entre un transport TCP et UDP pour le codage des données ?

Page 5: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Que peut on automatiser ?

Au minimum, la phase de marshalling/unmarshalling(hétérogéneité des langages, des systèmes, etc)

Selon les cas, le squelette du serveur les appels distants du client

Page 6: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Exemple : annuaire des surnomset RMI

enregistrerlisteroter

AnnuaireEssi

listePersonnes

Enregistrer(AnneMarie,AM)lister()

Page 7: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Exemple : annuaire des surnoms

• interface : partie visible de l’objet (enregistrer, oter, lister, …)

• implémentation : partie privée inaccessible depuis d’autres objets (listePersonnes : un vecteur de Personne ou un tableau ou ….)

• interface = contrat entre l’objet et le monde extérieur (save impossible par exemple)

Page 8: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

RMI

public interface Surnoms extends java.rmi.Remote{public Boolean enregistrer(String nom, String surnom) throws

java.rmi.RemoteException, ServeurSurnoms.surnoms.ExisteDeja ;

…. }

Page 9: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Générateurs

RMIC / Orbix...

IDL Int. JavaSpécificationsdes données

Générateurs

Fichiersgénérés Stubs Skeletons Proxy

(mise en œuvre de la sérialisationet désérialisation…)

Page 10: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

RMI

Classes et Interfaces

ClasseLocale

Souche Squelette

ClasseDistante

InterfaceDistante

Remote

Appel méthode m() Appel méthode m()

Machine locale Machine distante

InterfaceDistante

Page 11: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Interaction Client Enregistreur

client serveur

client registreLookup : où est objetDistant ?

stub

Il est ici

Envoyez le stub

Le voicistub squelette

objetDistant

result = objetDistant.m()

result

RMIRegistry + ClassLoader

Page 12: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Exemple : annuaire des surnoms

XDR et RPC de SUN

Protocole := CHOICE { enregistrerReq [0] SEQUENCE{PrintableString nom,

PrintableString surnom} enregistrerRep[1] BOOLEAN, listerReq [2] NULL, listerRep [3] SET OF Personnes, ….}

Programme surnoms { version {

boolean enregistrer(nomSurnom) = 1; listePersonnes lister(void)=2 }= 1} = 10000

ASN.1 et norme ISO

Page 13: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Générateurs de Stubs

RPCGEN / MAVROS

ASN1 XDR

Librairie marshalling et unmarshalling

squelettes du client et du serveur

Spécificationsdes données

Générateurs

Types de donnéesC Lisp Java

Types de données

C

Fichiersgénérés

Page 14: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Les points communs des approches distribuées

Adressage : à tout serveur (objet ou programme)doit être affecté une référence unique

Transport : pour établir une communication entre 2 nœuds

et transmettre une requêteMarshalling :

transformation de la requête pour passer sur leréseau

Page 15: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Points communs

Protocol :transmission des requêtes entre exécutables

Dispatching :gestion des threads

Des services communsServices de nommageInterface repository.....

Page 16: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Reste à approfondir

Page 17: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Communication réseaux et Internet

Couches de transport

Différences entre UDP et TCP(Développement d’un serveur multicast Ack/NoAck pour gérer laperte des paquets UDP)

D’autres protocoles (RTP/RTCP)(introduction du routage multicast ou du tunelling)

principes du IP / protocole ICMP

Service de nommage

DNS Configuration services réseau, routage IP et DNS d’une machine

.....

Page 18: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Introduction au Réseaux Locaux LANs Configuration carte réseau d’une machine,Développement d’un analyseur de trafic

et standards IEEE 802 : IEEE 802.3 et EthernetConfiguration d’un Firewall : IPTables,

Spécificités des Réseaux Locaux

Heureusement Jean Yves est là :-)

Page 19: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Quelques interrogations ?

Comment choisir le bon middleware (intergiciel) ?Il y en a de plus en plus

Corba, RMI, DCOM, DSA + CCM, J2EE + Web Services, .net ....

Savoir les comparerIdentifier les points communsInteropérabilité : XML une solution suffisante ?

Page 20: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Des Critères de Comparaisons

Autour du concept objet ?Communication synchrone ou asynchrone ?Description via des interfaces ou des messages ?Communication directe ou indirecte ?Spécifique ou indépendant langage ?Possibilité de transformation de messages ou non ?Protocole de communication binaire ou textuelle ?Prise en compte de QoS ou non ?(transaction, sécurité ....)

Page 21: Retour sur RMI. Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole dapplication ?

Comment faire interopérer les middlewares ?

Aller vers un middleware standard ? (J2EE / Corba)

Construire une couche au dessus des middlewares ? des familles de middlewares, des middlewaresgénériques (Jonathan, PolyOrb, ...)Avoir une approche architecturale ?

des design patternsFaire interopérer des middlewares existants?

M2M