retour sur rmi n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Retour sur RMI PowerPoint Presentation
Download Presentation
Retour sur RMI

Loading in 2 Seconds...

play fullscreen
1 / 21

Retour sur RMI - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

Retour sur RMI. Exemple. CLIENT Essifun. SERVEUR de Surnoms. oter. infrastructure. Protocole d’application ?. Communication client serveur. CLIENT. SERVEUR. Connexion au serveur. Attente de requêtes. Préparation de la requête Envoi de la requête Attente du résultat ….

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Retour sur RMI' - tiara


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
exemple
Exemple

CLIENT Essifun

SERVEUR de Surnoms

oter

infrastructure

Protocole d’application ?

communication client serveur
Communication client serveur

CLIENT

SERVEUR

Connexion au serveur

Attente de requêtes

Préparation de la requête

Envoi de la requête

Attente du résultat

….

Analyse du résultat reçu

Analyse de la requête

…..

Exécution

….

Préparation de la réponse

Envoi de la réponse

exemple annuaire des surnoms
Exemple : annuaire des surnoms

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

EssiFun

SERVEUR de Surnoms

enregistrer(« paul », 

«bug »)

unmarshalling

marshalling

0111000101000..

enregistrer(« paul »,

«bug ») = TRUE

unmarshalling

marshalling

101..

TRUE

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

que peut on automatiser
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

exemple annuaire des surnoms et rmi
Exemple : annuaire des surnomset RMI

AnnuaireEssi

listePersonnes

enregistrer

lister

oter

Enregistrer(AnneMarie,AM)

lister()

exemple annuaire des surnoms1
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)
slide8
RMI

public interface Surnoms extends java.rmi.Remote

{

public Boolean enregistrer(String nom, String surnom) throws

java.rmi.RemoteException,

ServeurSurnoms.surnoms.ExisteDeja ;

….

}

g n rateurs
Générateurs

Spécifications

des données

Int. Java

IDL

Générateurs

RMIC / Orbix...

Fichiers

générés

Stubs Skeletons Proxy

(mise en œuvre de la sérialisation

et désérialisation…)

rmi classes et interfaces
RMIClasses et Interfaces

Remote

Machine locale

Machine distante

InterfaceDistante

InterfaceDistante

Souche

Squelette

Appel méthode m()

Appel méthode m()

ClasseLocale

ClasseDistante

interaction client enregistreur

Lookup : où est objetDistant ?

client

registre

Il est ici

result

stub

Envoyez le stub

Le voici

stub

squelette

result = objetDistant.m()

objet

Distant

serveur

client

Interaction Client Enregistreur

RMIRegistry + ClassLoader

exemple annuaire des surnoms2
Exemple : annuaire des surnoms

ASN.1 et norme ISO

Protocole := CHOICE {

enregistrerReq [0] SEQUENCE{PrintableString nom,

PrintableString surnom}

enregistrerRep[1] BOOLEAN,

listerReq [2] NULL,

listerRep [3] SET OF Personnes, ….}

XDR et RPC de SUN

Programme surnoms {

version {

boolean enregistrer(nomSurnom) = 1;

listePersonnes lister(void)=2

}= 1

} = 10000

g n rateurs de stubs
Générateurs de Stubs

Spécifications

des données

XDR

ASN1

Générateurs

RPCGEN / MAVROS

Fichiers

générés

Types de

données

C Lisp

Java

Librairie marshalling

et unmarshalling

squelettes du client et

du serveur

Types de

données

C

les points communs des approches distribu es
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ête

Marshalling :

transformation de la requête pour passer sur le

réseau

points communs
Points communs

Protocol :

transmission des requêtes entre exécutables

Dispatching :

gestion des threads

Des services communs

Services de nommage

Interface repository

.....

communication r seaux et internet
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 la

perte 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

.....

slide18

Spécificités des Réseaux Locaux

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 Ethernet

Configuration d’un Firewall : IPTables,

Heureusement Jean Yves est là :-)

quelques interrogations
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 comparer

Identifier les points communs

Interopérabilité : XML une solution suffisante ?

des crit res de comparaisons
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é ....)

comment faire interop rer les middlewares
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 middlewares

génériques (Jonathan, PolyOrb, ...)

Avoir une approche architecturale ?

des design patterns

Faire interopérer des middlewares existants?

M2M