Retour sur RMI.

Slides:



Advertisements
Présentations similaires
Xavier Blanc Web Services Xavier Blanc
Advertisements

Introduction aux environnements répartis
Invocation de Méthode à des Objets distants RMI et Corba
Objets Distribués et Composants
Plan de l’enseignement
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
Harmonisation AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
1 Plan de lenseignement Cours Introduction au réseau via les objets distants (Application à RMI) Ce que cache RMI : programmation socket – mode connecté
ORB (1/2) ORB : Object Request Broker
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Communication par diffusion : Multicast
Des sockets à RMI Programmation réseau versus programmation objet
Objets Distribués Chronique dune invasion annoncée Pourquoi? Comment? Qui : Corba / COM-DCOM / Java RMI...
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
Module SI4 Applications réparties Questions Réponses Extraits de Mireille Blay-Fornarino, Audrey Occello et Didier Donsez.
Objets Distribués Chronique d ’une invasion annoncée
Module SI4 Applications réparties
Des sockets à RMI. Pourquoi ? Maturation de la technologie orientée objet –ADA, Modula –Smalltalk, C++, Java Maturation des communications Client- Serveur.
Des sockets à RMI.
À travailler seuls Département SI AM Dery Concepts généraux
À travailler seuls Département SI AM Dery Concepts généraux
Des sockets à RMI. Pourquoi ? Maturation de la technologie orientée objet –ADA, Modula –Smalltalk, C++, Java Maturation des communications Client- Serveur.
Introduction aux applications réparties
Chapitre 1 Introduction
Stéphanie CLAPIÉ Antoine RENARD
DUDIN Aymeric MARINO Andrès
L’architecture .net et ASP.net
Vue d'ensemble Présentation multimédia : Rôle du routage dans l'infrastructure réseau Activation et configuration du service Routage et accès distant Configuration.
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Programmation Objet en JAVA Cours 9 : Réseau R. M

simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Introduction aux services WEB
Etude des Technologies du Web services
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Java Remote Method Invocation (RMI)
Le protocole FTP.
.Net Remoting.
Interopérabilité JOnAS - CORBA
Les relations clients - serveurs
Protocole 802.1x serveur radius
Objets Distribués Chronique d’une invasion annoncée Pourquoi? Comment?
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
RPC / MOM : Comparaison.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
SGBD orientés Objet Standards : OMG et ODMG.
Présentation de CORBA et de IIOP
Java Enterprise Edition, anciennement J2EE
Communication entre processus From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 Chapitre.
Structures de données avancées : Concepts réseaux et protocole de communication. D. E ZEGOUR Institut National d ’Informatique.
Systèmes distribués Plusieurs technologies existent : Les sockets
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Les sockets.
Visualisation d’un entrepôt de données Pré soutenance technique
Les RPC remote procedure call
La voix sur IP, PABX et LAN
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Java RMI: Remote Method Invocation
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
Programmation Réseaux Qu’avez-vous retenu ? Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
Fonctionnalité et protocole des couches applicatives
Architecture Client/Serveur
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Modèle à objets et sérialisation Olivier ChamlaFrançois Chastanet.
Java Remote Method Invocation
Applications distribuées Introduction Jean-Jacques LE COZ.
Transcription de la présentation:

Retour sur RMI

Exemple CLIENT Essifun SERVEUR de Surnoms oter infrastructure Protocole d’application ?

Communication 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 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 ? 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 AnnuaireEssi listePersonnes enregistrer lister oter Enregistrer(AnneMarie,AM) lister()

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)

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 Stubs Skeletons Proxy 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 Remote Machine locale Machine distante InterfaceDistante InterfaceDistante Souche Squelette Appel méthode m() Appel méthode m() ClasseLocale ClasseDistante

Interaction Client Enregistreur serveur registre Lookup : où est objetDistant ? stub Il est ici Envoyez le stub Le voici squelette objet Distant result = objetDistant.m() result RMIRegistry + ClassLoader

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 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 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 Protocol : transmission des requêtes entre exécutables Dispatching : gestion des threads Des services communs Services de nommage Interface repository .....

Reste à approfondir

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 .....

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 ? 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 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 ? 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