Les Systèmes et Applications Réparties et leur Programmation



Documents pareils
Remote Method Invocation (RMI)

RMI le langage Java XII-1 JMF

Remote Method Invocation en Java (RMI)

Intergiciel - concepts de base

Le modèle client-serveur

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Programmation répartie RPC & RMI

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

2 Chapitre 1 Introduction

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Conception de serveurs d'applications ouverts

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Remote Method Invocation Les classes implémentant Serializable

Introduction aux intergiciels

Calcul Parallèle. Cours 5 - JAVA RMI

Gestion distribuée (par sockets) de banque en Java

NFP111 Systèmes et Applications Réparties

Etude critique de mécanismes de sécurité pour l architecture Jini

Software Engineering and Middleware A Roadmap

Java - RMI Remote Method Invocation. Java - RMI

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

CORBA. (Common Request Broker Architecture)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Environnements de Développement

JOnAS Day 5.1. Clustering

CORBA haute performance

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Composants Logiciels. Le modèle de composant de CORBA. Plan

Urbanisation des Systèmes d'information

Architectures n-tiers Intergiciels à objets et services web

Mise en œuvre des serveurs d application

Description de la formation

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

OS Réseaux et Programmation Système - C5

Chapitre I Notions de base et outils de travail

Messagerie asynchrone et Services Web

Patrons de Conception (Design Patterns)

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Introduction à la plateforme J2EE

TP1 : Initiation à Java et Eclipse

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

NSY102. Conception de logiciels Intranet Introduction

Cours 1: Java et les objets

Solutions de gestion de la sécurité Livre blanc

1. Introduction à la distribution des traitements et des données

Architecture applicative et Cartographie

Plan du cours. Historique du langage Nouveautés de Java 7

Développement, déploiement et sécurisation d'applications JEE

Java Naming and Directory Interface

Dis papa, c est quoi un bus logiciel réparti?

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Programmation Objet Java Correction

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

Java et les bases de données

Projet gestion d'objets dupliqués

Infrastructure RDS 2012

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Introduction aux applications réparties

Java c est quoi? Java pourquoi?

Modèle client-serveur Plan. Modèle client-serveur. Modèle client-serveur définition. Modèle client-serveur communication par messages.

Cahier des charges (CDC)

Evaluation Idéopass Cahier d analyse technique

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Utiliser Java sans BlueJ

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

TP, première séquence d exercices.

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Implementing a simple RMI Application over the Internet (using and comparing HTTP tunneling, RMI Proxy)

Le cadre des Web Services Partie 1 : Introduction

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Les Services Web. Jean-Pierre BORG EFORT

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Manuel du Desktop Sharing

INITIATION AU LANGAGE JAVA

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Prise en compte des ressources dans les composants logiciels parallèles

Architectures web/bases de données

Protocole industriels de sécurité. S. Natkin Décembre 2000

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Le passage à l échelle de serveur J2EE : le cas des EJB

Synchro et Threads Java TM

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

FileMaker Pro 12. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 12

Compte Rendu d intégration d application

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Présentation de BlackBerry Collaboration Service

GEI 465 : Systèmes répartis

EXA1415 : Annotations

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Java DataBaseConnectivity

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Auto-évaluation Aperçu de l architecture Java EE

La carte à puce. Jean-Philippe Babau

Transcription:

Les Systèmes et Applications Réparties et leur Programmation Samia Bouzefrane Maître de Conférences Laboratoire CEDRIC Conservatoire National des Arts et Métiers 292 rue Saint Martin 75141 Paris Cédex 03 samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra 1

Notion d Intergiciel (Middleware) Intergiciel : une terminologie pour une classe de logiciels systèmes qui permet d implanter une approche répartie: exemple CORBA Fournit une API d interactions de communication: interactions de haut niveau pour des applications réparties: exemple invocation distante de méthode pour des codes objets. Fournit un ensemble de services utiles pour des applications s exécutant en environnement réparti: désignation, cycle de vie, sécurité, transactionnel, etc. Fonctionne en univers ouvert (supporte des applications tournant sur des plate-formes matérielles et logicielles différentes). 2

Les principales catégories d Intergiciels Intergiciels à messages MOM: Message Oriented Middleware IBM MQSeries, Microsoft Message Queues Server,DECmessageQ, etc. Intergiciels de bases de données (ODBC) Intergiciels à appel de procédure distante (DCE) Intergiciels à objets répartis (CORBA, JAVA RMI) Intergiciels à composants (EJB, CCM, Web services) 3

Intergiciels à Objets Répartis : Java Remote Method Invocation (RMI) ou les invocations de méthodes Java distantes 4

Rappel : Appel local (interface et objet) public interface ReverseInterface { String reversestring(string chaine); } public class Reverse implements ReverseInterface { public String reversestring (String ChaineOrigine){ int longueur=chaineorigine.length(); StringBuffer temp=new StringBuffer(longueur); for (int i=longueur; i>0; i--) { temp.append(chaineorigine.substring(i-1, i));} return temp.tostring(); } } 5

Rappel : Appel local (programme appelant ) import ReverseInterface; public class ReverseClient { public static void main (String [] args) { Reverse rev = new Reverse(); String result = rev.reversestring (args [0]); System.out.println ("L'inverse de "+args[0]+" est "+result); } } $javac *.java $java ReverseClient Alice L inverse de Alice est ecila $ 6

Qu attend t-on d un objet distribué? Un objet distribué doit pouvoir être vu comme un objet «normal». Soit la déclaration suivante : ObjetDistribue monobjetdistribue; On doit pouvoir invoquer une méthode de cet objet situé sur une autre machine de la même façon qu un objet local : monobjetdisribue.unemethodedelod(); 7

On doit pouvoir utiliser cet objet distribué sans connaître sa localisation. On utilise pour cela un service sorte d annuaire, qui doit nous renvoyer son adresse. monobjetdistribue= ServiceDeNoms.recherche( mydistributedobject ); On doit pouvoir utiliser un objet distribué comme paramètre d une méthode locale ou distante. x=monobjetlocal.unemethodedelol(monobjetdistribue); x= monobjetdistribue.unemethodedelod(autreobjetdistribue); 8

On doit pouvoir récupérer le résultat d un appel de méthode sous la forme d un objet distribué. monobjetdistribue=autreobjetdistribue.unemethodedelod(); monobjetdistribue=monobjetlocal.unemethodedelol(); 9

Java RMI Remote Method Invocation permet la communication entre machines virtuelles Java (JVM) qui peuvent se trouver physiquement sur la même machine ou sur deux machines distinctes. 10

Présentation RMI est un système d objets distribués constitué uniquement d objets java ; RMI est une Application Programming Interface (intégrée au JDK 1.1 et plus) ; Développé par JavaSoft ; 11

Mécanisme qui permet l appel de méthodes entre objets Java qui s exécutent éventuellement sur des JVM distinctes ; L appel peut se faire sur la même machine ou bien sur des machines connectées sur un réseau ; Utilise les sockets ; Les échanges respectent un protocole propriétaire : Remote Method Protocol ; RMI repose sur les classes de sérialisation. 12

Architecture Invocation de la méthode distante Objet distant Application Stub Squelette Présentation Couche références distantes Couche références distantes Session TCP/IP TCP/IP Transport/réseau Interface Hard Interface Hard Liaison de données /Physique 13

Appel local versus Appel à distance Client interface Objet Appel local méthode+ arguments Client interface Stub Skeleton interface Objet retour + exception Appel distant Réseau 14

Les amorces (Stub/Skeleton) Elles assurent le rôle d adaptateurs pour le transport des appels distants Elles réalisent les appels sur la couche réseau Elles réalisent l assemblage et le désassemblage des paramètres (marshalling, unmarshalling) Une référence d objets distribué correspond à une référence d amorce Les amorces sont créées par le générateur rmic. 15

Les Stubs Représentants locaux de l objet distribué ; Initient une connexion avec la JVM distante en transmettant l invocation distante à la couche des références d objets ; Assemblent les paramètres pour leur transfert à la JVM distante ; Attendent les résultats de l invocation distante ; Désassemblent la valeur ou l exception renvoyée ; Renvoient la valeur à l appelant ; S appuient sur la sérialisation. 16

Les squelettes Désassemblent les paramètres pour la méthode distante ; Font appel à la méthode demandée ; Assemblage du résultat (valeur renvoyée ou exception) à destination de l appelant. 17

La couche des références d objets Remote Reference Layer Permet d obtenir une référence d objet distribué à partir de la référence locale au stub ; Cette fonction est assurée grâce à un service de noms rmiregister (qui possède une table de hachage dont les clés sont des noms et les valeurs sont des objets distants) ; Un unique rmiregister par JVM ; rmiregister s exécute sur chaque machine hébergeant des objets distants ; rmiregister accepte des demandes de service sur le port 1099; 18

La couche transport réalise les connexions réseau basées sur les flux entre les JVM emploie un protocole de communication propriétaire (JRMP: Java Remote Method Invocation) basé sur TCP/IP Le protocole JRMP a été modifié afin de supprimer la nécessité des squelettes car depuis la version 1.2 de Java, une même classe skeleton générique est partagée par tous les objets distants. 19

Etapes d un appel de méthode distante Client Serveur 3. Interroger Serveur de noms 2. Publier Application Cliente 5. Appel de méthode 10. Retour Stub 4. Récupérer 6. Arguments sérialisation 9. Résultat Serveur d objets Skeleton 1. Exposer 7. Appel méthode 8. Retour Objet distant 20