! Avantages. ! Limitations. ! Des mécanismes plus évolués visent à remédier à ces limitations

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "! Avantages. ! Limitations. ! Des mécanismes plus évolués visent à remédier à ces limitations"

Transcription

1 Rappel des conclusions sur l appel de procédure à distance 2 JAVA RMI Avantages! Abstraction ( les détails de la communication sont cachés )! Intégration dans un langage : facilite la portabilité, mise au point! Outils de génération : facilitent la mise en œuvre! Limitations! La structure de l application est statique " Pas de création dynamique de serveur " Pas de possibilité de redéploiement entre sites! Pas de passage des paramètres par référence! La communication est réduite à un schéma synchrone! La persistance des données n est pas assurée " Il faut la réaliser explicitement par sauvegarde des données dans des fichiers! Des mécanismes plus évolués visent à remédier à ces limitations! Objets répartis ( ex : Java RMI, CORBA ) pour les 2 premières limitations! Bus à messages ( Message Oriented Middleware )! Composants répartis ( ex : EJB, Corba CCM,. Net ) Intérêt des objets pour la construction d applications réparties Extension du RPC aux objets (1) 3! Encapsulation! L interface (méthodes + arguments) est la seule voie d accès à l état interne, non directement accessible! Classes et instances! Mécanismes de génération d exemplaires conformes à un même modèle! Héritage! Mécanisme de spécialisation : facilite la récupération et réutilisation de l existant! Polymorphisme! Mises en œuvre diverses des fonctions d une interface! Facilite l évolution et l adaptation des applications 4! Appel de procédure vs appel de méthode sur un objet! Exemple : insérer une entrée dans un annuaire

2 5 Extension du RPC aux objets (2)! Phase préalable : création d instances d une classe d objets! Notion de fabrique (factory) Notion de référence d objet : Contient tout ce qui est nécessaire pour atteindre l objet distant (Localisation, protocole d accès) 6 Notion de référence! Référence : notion clé pour les objets répartis! Moyen d accès à un objet distant,! Son contenu ne peut pas être directement exploité «opaque», elle n est utilisable que via un mécanisme d appel à distance! Contenu d une référence! Toutes les informations nécessaires pour atteindre physiquement l objet " Site de résidence (adresse IP) " Numéro de porte sur le site (Numéro de port) " Localisation interne au serveur "! Exemples! En Java RMI : la référence est le talon client ( stub )! En Corba : format de référence spécifié ( IOR : Interoperable Object Reference )! En DCOM : format propriétaire 7 Java RMI (Remote Method Invocation)! Motivation : construction d applications réparties avec Java! Appel de méthode au lieu d appel de procédure! Principe : même schéma que RPC! Le programmeur fournit " Une (ou plusieurs) description(s) d interface " Ici pas d IDL séparé : IDL=JAVA " Le programme du serveur " Objets implémentant les interfaces " Serveur d objets " Le programme du client! L environnement Java fournit! Un générateur de talons : rmic! Un service de noms : rmiregistry voir 8 Java RMI : règles d usage (1/2)! Interface! L interface d un objet distant (Remote) est celle d un objet Java, avec quelques règles d usage : " L interface distante doit être publique " L interface distante doit étendre l interface java.rmi.remote " Chaque méthode doit déclarer au moins l exception java.rmi.remoteexception! Passage d objets en paramètre! Les objets locaux sont passés par valeur (copie) et doivent être sérialisables (étendent l interface java.io.serializable)! Les objets distants sont passés par référence et sont désignés par leur interface

3 Java RMI : règles d usage (2/2) Java RMI : règles d écriture du serveur 9 10! Implémentation des classes distantes (Remote)! Une classe distante doit implémenter une interface ellemême distante (Remote)! Une classe distante doit étendre la classe java.rmi.server.unicastremoteobject (d autres possibilités existent)! Une classe distante peut aussi avoir des méthodes appelables seulement localement (ne font pas partie de son interface Remote)! Un serveur est une classe qui implémente l interface de l objet distant! Spécifier les objets distants qui doivent être implémentées! Définir le constructeur de l objet distant! Fournir l implémentation des méthodes appelables à distance! Créer et installer le gestionnaire de sécurité! Créer au moins une instance de la classe serveur! Enregistrer au moins une instance dans le serveur de noms Le compilateur IDL : rmic Stub/Skeleton 11! Le compilateur rmic génère les amorces (stub/ skeleton)! assurent le rôle d adaptateurs pour le transport des appels distants.! réalisent les appels sur la couche réseau.! réalisent l emballage/déballage des paramètres (sérialisation ou marshalling/unmarshalling).! Une référence d objets distant correspond à une référence d amorce (stub). 12! Stub (talon client)! Représentant local de l objet distant.! Initie une connexion avec la JVM distante! Assemble les paramètres pour leur transfert à la JVM distante.! Attend les résultats de l invocation distante.! Désassemble la valeur ou l exception renvoyée.! Renvoie la valeur au client (l appelant).! Skeleton (talon serveur)! Désassemble les paramètres pour la méthode distante.! Fait appel à la méthode demandée.! Assemble le résultat (valeur renvoyée ou exception) à destination de l appelant.

4 Serveur de noms : rmiregistry Étapes d un appel de méthode distante 13! Permet d obtenir une référence d objet distant! S exécute sur chaque machine hébergeant des objets distants! Utilise par défaut le port 1099! Accepte comme opérations l'enregistrement, l'effacement et la consultation (méthodes de la classe java.rmi.naming)! void Naming.bind(String nom, Remote obj) : associe l'objet au nom spécifié;! void Naming.rebind(String nom, Remote obj) : réassocie le nom au nouvel objet;! void Naming.unbind(String nom) : supprime l'enregistrement correspondant;! Remote Naming.lookup(String nom) : renvoie la référence (stub) de l'objet enregistré sous le nom donné;! String[] Naming.list(String nom) : renvoie la liste des noms enregistrés Développer une application avec RMI 1. Définir une interface distante (AppInterface.java). 2. Créer une classe implémentant cette interface (AppImpl.java). 3. Compiler cette classe (javac AppImpl.java). 4. Créer une application serveur (AppServer.java). 5. Compiler l application serveur. 6. Créer les classes stub et skeleton à l aide de rmic: AppImpl_Stub.java et AppImpl_Skel.java 7. Démarrage du serveur de noms (registre) avec rmiregistry. 8. Lancer le serveur AppServer pour la création d objets et leur enregistrement dans rmiregistry. 9. Créer une classe cliente qui appelle des méthodes distantes de l objet distant (AppClient.java). 10. Compiler cette classe et la lancer. 17 Exemple : Inversion d une chaîne de caractères! Invocation distante de la méthode reversestring() d un objet distant qui inverse une chaîne de caractères fournie par l appelant.! Classes nécessaires:! ReverseInterface : interface qui décrit l objet distant! Reverse : qui implémente l objet distant! ReverseServer : le serveur d objets RMI! ReverseClient : le client qui utilise l objet distant

5 Interface Interface 18 19! Interface de l objet! Permet de décrire les différentes méthodes de l'objet distant! Partagée par le client et le serveur.! Doit étendre l interface Remote définie dans java.rmi.! Toutes ses méthodes doivent déclarer l exception RemoteException.! RemoteException est déclenchée si :! connexion refusée à l hôte distant! l objet n existe plus,! un problème d assemblage ou de désassemblage. import java.rmi.remote; import java.rmi.remoteexception; public interface ReverseInterface extends Remote { String reversestring(string chaine) throws RemoteException; Implémentation de l objet distant Implémentation de l objet distant 20! Une classe qui implémente l'interface définie! Permettre de rendre un objet accessible à distance par des clients.! Doit permettre l exposition de l'objet distant:! La solution (la plus simple) consiste à étendre la classe UnicastRemoteObject de java.rmi.server. 21 import java.rmi.*; import java.rmi.server.*; public class Reverse extends UnicastRemoteObject implements ReverseInterface { public Reverse() throws RemoteException { super(); public String reversestring (String ChaineOrigine) throws RemoteException { 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();

6 Serveur d objets Serveur d objets Les opérations réalisées par le serveur: 1. Définir un gestionnaire de sécurité (classe RMISecurityManager) si le serveur est amené à charger des classes (Inutile si pas de chargement dynamique de classes) System.setSecurityManager (new RMISecurityManager()); 3. Exposer les objets distants : rendre accessibles dans le serveur! Si la classe de l'objet a été définie comme une extension de UnicastRemoteObject, l exposition est automatique.! Sinon, l'objet doit être exposé explicitement par appel de la méthode exportobject de la classe UnicastRemoteObject: 2. Créer les objets distants par instanciation de classes Remote: MonObjetDistant Objet = new MonObjetDistant; UnicastRemoteObject.exportObject(unObjet); 4. Faire connaitre l'existence des différents objets au serveur de noms (rmiregistry) de la machine sur laquelle ce serveur s'exécutera Naming.rebind("nomUnObjet", unobjet); Serveur d objets Le client (1/3) 24 import java.rmi.*; public class ReverseServer { public static void main(string[] args) { System.setSecurityManager(new RMISecurityManager()); try { System.out.println( "Serveur : Construction de l implémentation "); Reverse rev= new Reverse(); System.out.println("Objet Reverse lié dans le RMIregistry"); Naming.rebind("MyReverse", rev); System.out.println("Attente des invocations des clients..."); catch (Exception e) { System.out.println("Erreur de liaison de l objet Reverse"); System.out.println(e.toString()) 25! Le client récupère le stub de l'objet : il s'adresse au serveur de noms auprès duquel l'objet a été enregistré.! Cette opération est réalisée en invoquant la méthode lookup de la classe Naming.! Pour cela, il doit nommer complètement l'objet concerné au travers d'une URL de la forme générale suivante : rmi://machine:port/nom! Dans une telle URL, " si le nom de machine est omis, la machine locale est considérée; " si le numéro de port est omis, le numéro par défaut (1099) est considéré.

7 Le client (2/3) Le client (3/3) 26 27! La méthode lookup est susceptible de provoquer une exception RemoteException : try { MonInterface stub= (MonInterface) Naming.lookup (adresse_de_l'objet); catch (Exception e){ ! Une fois le stub est récupéré, un client peut invoquer sur ce stub des méthodes de l'interface comme il ferait sur un objet local: objet=stub.méthode(paramètres); import java.rmi.*; public class ReverseClient { public static void main (String [] args) { System.setSecurityManager(new RMISecurityManager()); try{ ReverseInterface rev = (ReverseInterface) Naming.lookup ("rmi://localhost:1099/myreverse"); String result = rev.reversestring (args [0]); System.out.println ("L inverse de "+args[0]+" est "+result); catch (Exception e) { System.out.println ("Erreur d accès à l objet distant."); System.out.println (e.tostring()); Fabrique d objets (Factory) Fabrique Exemple 28 29! Fabrique : Permettre au client de construire des instances multiples d une classe sur le site serveur! Problème : Le new n est pas utilisable tel quel (car il ne gère que la mémoire locale, celle du client)! Solution : appel d un objet FabriqueC, qui crée localement (sur le serveur) les instances de C (en utilisant new C)

8 Interface de l objet distant public interface Annuaire extends Remote{ public boolean inserer(string nom, int id) throws RemoteException; public boolean supprimer(string nom, int id) throws RemoteException; public Info rechercher(string nom) throws RemoteException; Interface de fabrique d objets public interface FabAnnuaire extends Remote{ public Annuaire newannuaire(string titre) throws RemoteException ; Implémentation de l objet distant public class AnnuaireImpl implements Annuaire extends UnicastRemoteObject{ private String titre; public Annuaire(String titre) {this.titre=titre; public boolean inserer(string nom, Info info) throws RemoteException{ ; public boolean supprimer(string nom) throws RemoteException{ ; public Info rechercher(string nom) throws RemoteException{ ; Implémentation de la fabrique d objets Exemple public class FabAnnuaireImpl implements FabAnnuaire extends UnicastRemoteObject{ public FabAnnuaireImpl{; public Annuaire newannuaire(string titre) throws RemoteException { return new AnnuaireImpl(titre); Serveur d objets import java.rmi.*; public class Server { public static void main (String [ ] argv) { try { Naming.rebind ("Fabrique,new (FabAnnuaireImpl)) ; System.out.println ("Serveur prêt.") ; catch (Exception e) { System.out.println("Erreur serveur : " + e) ; Client Exemple import java.rmi.*; public class HelloClient { public static void main (String [ ] argv) { try { /* trouver une référence vers la fabrique */ FabAbannuaire fabrique = (FabAbannuaire ) Naming.lookup ("rmi://goedel.imag.fr/fabrique") ; annuaireimag = fabrique.newannuaire("imag"); /* créer un annuaire */ annuaireinria= fabrique.newannuaire("inria"); /* créer un autre annuaire */ /* utiliser les annuaires */ annuaireimag.inserer(, ); annuaireinria.inserer(, ); catch (Exception e) { System.out.println("Erreur client : " + e) ; Passage d objets en paramètres Passage d objets en paramètres 32 Deux cas possibles! Passage en paramètre d un objet local (sur la JVM de l objet appelant)! Passage par valeur : on transmet une copie de l objet (plus précisément : une copie de l ensemble ses variables d état)! Pour cela l objet doit être sérialisable (i.e. implémenter l interface java.io.serializable)! Exemple de l annuaire : le client transmet un objet de la classe locale Info! Passage en paramètre d un objet non-local (hors de la JVM de l objet appelant, par ex. sur un site distant)! Passage par référence : on transmet une référence sur l objet (plus précisément : un stub de l objet). Le destinataire utilisera ce stub pour appeler les méthodes de l objet.! Exemple de l annuaire : le client passe un objet de type Annuaire (localisé sur le serveur distant) 33

9 34 Passage d objets en paramètres! Notions sur les objets sérialisables! Un objet sérialisable (transmissible par valeur hors de sa JVM) doit implémenter java.io.serializable! Les objets référencés dans un objet sérialisable doivent aussi être sérialisables! Comment rendre effectivement un objet sérialisable? " Pour les variables de types primitifs (int, boolean,..) rien à faire " Pour les objet dont les champs sont constitués de telles variables : rien à faire " On peut éliminer une variable de la représentation sérialisée en la déclarant transient " Pour un champ non immédiatement sérialisable (ex. : Array), il faut fournir des méthodes readobject() et writeobject()! Voir javadoc de l interface Serializable et des classes ObjectOutputStream et ObjectInputStream 35 Fonctionnement interne de JavaRMI! La classe UnicastRemoteObject! Rappel de la règle d usage: une classe d objets accessibles à distance étend la classe java.rmi.unicastremoteobject " La principale fonction de cette clase se manifeste lors de la création d une instance de l objet public class AnnuaireImpl extends UnicastRemoteObject { AnnuaireImpl ( ) { /* le constructeur d AnnuaireImpl appelle automatiquement le constructeur de la superclasse UnicastRemoteObject*/ monannuaire = new AnnuaireImpl ( ) ; " Le constructeur de UnicastRemoteObject crée une instance de stub pour l objet, en utilisant la classe Annuaire_Stub engendrée par rmic, et retourne ce stub comme résultat de la création.! Le contenu d un stub! Un stub contient essentiellement une variable ref de type RemoteRef qui contient la localisation de l objet (adresse IP, port)! Un appel de méthode se fait par appel de ref.invoke() qui utilise les sockets pour la communication Fonctionnement interne de javarmi Appel en retour (callback) 36! Le serveur de noms (registry)! Classes utiles (fournies par java.rmi) " Naming : sert de représentant local du serveurs de noms " Permet d utiliser les méthodes bind(), rebind(), lookup(), unbind(), list() " LocateRegistry: permet de localiser un serveur de noms (getregistry()) et éventuellement d en créer un(createregistry()), appelé en interne par Naming 37! Le problème! Réaliser un appel du serveur vers le client! Intérêt! Augmenter l asynchronisme " appel client-serveur avec retour immédiat (demande service) " rappel serveur-client quand le service est exécuté! Augmenter le dynamisme " Le serveur peut demander des informations complémentaires au client en cours d exécution " L exécution du service peut faire appel à des services fournis par le client " Exemple : traitement d exceptions

10 38 Appel en retour : principe 39 Appel en retour : réalisation (interfaces des objets distants)! Le client passe en paramètre au serveur l objet à rappeler! Le serveur exécute un appel asynchrone sur cet objet Appel en retour : réalisation (le servant) Appel en retour : réalisation (le serveur) 40 41

11 Appel en retour : réalisation (le callback) Appel en retour : réalisation (un client) Gestionnaire de sécurité Gestionnaire de sécurité 44 45! Installer un gestionnaire de sécurité! Utile lorsqu on télécharge du code à partir d une machine distante! Permet de protéger la machine virtuelle java de tout utilisateur malintentionné qui essaye de faire tourner du code malicieux sur la machine.! Utiliser le gestionnaire de sécurité fournit par RMI: RMISecurityManager System.setSecurityManager(new RMISecurityManager());! La politique de sécurité spécifie les actions autorisées, en particulier sur les sockets! Les opérations possibles sur les sockets:! connect est utilisé pour établir une connexion avec un serveur.! listen est utilisé par un serveur pour indiquer qu'il est disposé à accepter des connexions.! Après un listen, un serveur peut attendre une demande de connexion d'un client par accept

12 46 Gestionnaire de sécurité! Exécuter le programme java utilisant un gestionnaire de sécurité avec l option : java Djava.security.policy=java.policy NomClasse Où java.policy et le fichier des permissions! Exemple de contenu du fichier java.policy: grant { permission java.net.socketpermission "localhost ","connect,accept"; permission java.net.socketpermission ":80", "connect"; ; 47 Chargement dynamique! Les définitions de classes sont hébergées sur un serveur Web! Les paramètres, les stubs sont envoyés au client via une connexion au serveur web! Pour fonctionner, une application doit télécharger les fichiers de classe nécessaires! Chargement dynamique! Évite de disposer localement de toutes les définitions de classe! les mêmes fichiers de classe (même version) sont partagés par tous les clients! Charge une classe au besoin Fichiers nécessaires si pas de chargement dynamique Fichiers nécessaires si chargement dynamique Côté Client Côté Serveur Côté Client Côté Serveur! Interface : ReverseInterface! Stub : Reverse_Stub! Client : ReverseClient! Interface : ReverseInterface! Objet : Reverse! Stub : Reverse_Stub! Serveur d objets: ReverseServer! client : ReverseClient! serveur d objets: ReverseServer! Récupérer les fichiers de classe à partir de serveur web! Interface : ReverseInterface! Stub : Reverse_Stub! L objet : Reverse

13 Client dynamique Client & Serveur dynamiques 50! Le client peut lui même être dynamique Côté Client Côté Serveur! client : DynamicClient! serveur d objets: ReverseServer! Récupérer les fichiers de classe à partir de serveur web! Interface : ReverseInterface! Stub : Reverse_Stub! L objet : Reverse! Le client : ReverseClient 51 Client : DynamicClient! Chargement dynamique du client et de l interface à partir d un répertoire local. Si non disponibles localement, ils sont recherchés sur le serveur Web spécifié.! L exécution de ReverseClient permet d obtenir la référence de l objet Reverse et l appel distant de sa méthode! Récupérer les fichiers de classe à partir de serveur web! Interface : ReverseInterface! Stub : Reverse_Stub! L objet : Reverse! Le client : ReverseClient Serveur dynamique : ReverseServer! : Chargement dynamique de l objet Reverse à partir du serveur Web! Enregistrement de l objet dans RmiRegistry (bind)! Attente de requêtes des clients Deux propriétés systèmes dans RMI Principe de chargement dynamique 52 53! java.rmi.server.codebase! Spécifie l URL (file://, ftp://, où peuvent se trouver les classes! Lorsque RMI sérialise l objet (envoyé comme paramètre ou reçu comme résultat), il rajoute l URL spécifié par codebase! java.rmi.server.usecodebaseonly! informe le client que le chargement de classes est fait uniquement à partir du répertoire du codebase! À l enregistrement (dans rmiregistry) de l objet distant, le codebase est spécifié par java.rmi.server.codebase! À l appel de bind(), le registre utilise ce codebase pour trouver les fichiers de classe associés à l objet! Le client recherche la définition de classe du stub dans son classpath. S il ne trouve pas, il essayera de la récupérer à partir du codebase.! Une fois que toutes les définitions de classe sont disponibles, la méthode du stub appelle les objets sur le serveur

14 54 Sécurité lors d un chargement dynamique! Les classes java.rmi.rmisecruritymanager et java.rmi.server.rmiclassloader vérifient le contexte de sécurité avant de charger les classes à partir d emplacements distants! La méthode LoadClass de RMIClassLoader charge la classe à partir du codebase spécifié 55 Etapes d un chargement dynamique! Ecrire les classes correspondant respectivement à l interface et à l objet! Les compiler! Générer le stub correspondant à l objet! Installer tous les fichiers de classe sur un serveur web! Ecrire le serveur dynamique! Lancer rmiregistry au niveau de la machine du serveur! Lancer le serveur en lui précisant l URL des fichiers de classe afin qu il puisse charger dynamiquement le fichier de classe correspondant à l objet, l instancier et l enregistrer dans rmiregistry! Sur la machine du client, écrire le code du client! Compiler le client statique et l installer éventuellement sur le serveur web! Compiler le client dynamique et le lancer en précisant l URL des fichiers de classe. 56 Exemple avec chargement dynamique Interface 57 Exemple avec chargement dynamique L objet Reverse

15 58 Exemple avec chargement dynamique Serveur d objet dynamique 59 Exemple avec chargement dynamique Client statique Exemple avec chargement dynamique Exécution 60! Client dynamique 61 mulder> ls Reverse.java ReverseInterface.java DynamicServer.java mulder> javac *.java mulder> rmic -v1.2 Reverse mulder> mv Reverse*.class /home/duvallet/public_html/rmi Le répertoire destination des fichiers de classe doit être accessible par http. mulder> ls *.class DynamicServer.class mulder>rmiregistry J D java.security.policy=client1.policy & mulder>java -Djava.security.policy=client1.policy -Djava.rmi.server.codebase= DynamicServer Objet lié Attente des invocations des clients

16 62 Exécution scott>ls *.java ReverseClient.java DynamicClient.java scott>javac *.java scott> java D java.security.policy=client1.policy -D java.rmi.server.codebase= DynamicClient L inverse de Alice est ecila Le chargement de ReverseClient se fera à partir du répertoire local alors que ReverseInterface et Reverse_Stub seront chargés à partir du serveur Web spécifié dans la commande. 63 Conclusion! Extension du RPC aux objets! Permet l accès à des objets distants! Pas de langage séparé de description d interfaces (IDL fourni par Java)! Limitations! Environnement restreint à un langage unique (Java)! Mais passerelles possibles, en particulier RMI/IIOP! Services réduits au minimum! Service élémentaire de noms (sans attributs)! Pas de services additionnels " Duplication d objets " Transactions Ce qui reste à voir 64! Parallélisme sur le serveur! Un serveur RMI peut servir plusieurs clients. Dans ce cas, un thread séparé est créé pour chaque client sur le serveur. C est au développeur du programme serveur d assurer leur bonne synchronisation (exemple : méthodes synchronized) pour garantir la cohérence des données! Activation automatique de serveurs! Un veilleur (demon) spécialisé, rmid, peut assurer le lancement de plusieurs classes serveur sur un site distant (cette opération est invisible au client)

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Ce support est très largement inspiré du livre et du cours de S. Krakowiak S. Krakowiak Java Remote Method Invocation 1 / 25 Intérêt des objets pour la construction d applications

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Java RMI : Programmation répartie en JAVA Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java (application avec Java RMI) Éric Leclercq Département IEM / Laboratoire LE2i Décembre 2010 émail : Eric.Leclercq@u-bourgogne.fr

Plus en détail

Systèmes d Information Avancés (et répartis)

Systèmes d Information Avancés (et répartis) Systèmes d Information Avancés (et répartis) Université Lyon 1 MIAGE L. Médini, mars 2005 Plan des cours Protocole HTTP et programmation serveur Architectures multi-composants réparties Principes Exemples

Plus en détail

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

Les Systèmes et Applications Réparties et leur Programmation 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

Plus en détail

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP Chapitre 9 Dans ce chapitre nous abordons le mécanisme RMI (Remote Method Invocation) permettant le développe ment des systèmes répartis. Nous expliquerons comment les classes d un serveur peuvent être

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

La plate-forme Java RMI

La plate-forme Java RMI La plate-forme Java RMI Frank Singhoff Bureau C-202 Université de Brest, France Lab-STICC/UMR 3192 singhoff@univ-brest.fr UE systèmes à objets répartis, Université de Brest Page 1/25 Sommaire 1. Le modèle

Plus en détail

Du côté du serveur un skeleton/squelette a en charge la réception des invocations distantes, de leur réalisation et de l'envoi des résultats.

Du côté du serveur un skeleton/squelette a en charge la réception des invocations distantes, de leur réalisation et de l'envoi des résultats. Objectif L objectif de ce TP est de mettre en œuvre le mécanisme d invocation de méthodes distantes RMI du langage Java. Le but de RMI est de permettre l'appel, l'exécution et le renvoi du résultat d'une

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle.

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle. RMI (Remote Method Invocation) Présentation de RMI Université Française d Egypte Richard Grin Version 0.6 10/10/12 R. Grin RMI page 2 Client serveur, situation traditionnelle Sur la machine A un client

Plus en détail

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique Programmation Réseau RMI Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr UFR Informatique 2014 Les RMI de Java Les applications RMI sont des applications bâties sur

Plus en détail

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

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

Introduction à JAVA RMI

Introduction à JAVA RMI Introduction à JAVA RMI Plan Introduction Architecture logique Principe de programmation Un exemple Fabrique d'objets Appels en retour 2 Bibliographie Documentation Sun : http://java.sun.com/javase/technologies/core/basic/rmi/

Plus en détail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Sensibilisation à RMI (Remote Method Invocation)

Sensibilisation à RMI (Remote Method Invocation) Jini Sensibilisation à RMI (Remote Method Invocation) Le rêve de tout système distribué L idéal serait d avoir un système distribué utilisant la technologie objet et permettant : 1) d invoquer une méthode

Plus en détail

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information SOA et Services Web 23 octobre 2011 1 Evolution des Systèmes d Information 2 Qu est ce qu une application répartie? Il s agit d une application découpée en plusieurs unités Chaque unité peut être placée

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance

RMI : Remote Method Invocation Appel de méthodes à distance RMI : Remote Method Invocation Appel de méthodes à distance Patrice Torguet torguet@irit.fr Université Paul Sabatier Plan du cours l Les RPC l Architecture et fonctionnement de RMI l Etapes de développement

Plus en détail

Java - RMI Remote Method Invocation. Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1

Java - RMI Remote Method Invocation. Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Java - RMI Remote Method Invocation Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Répartition d'une application Application de Présentation Middleware Implicite Application de traitement Application de

Plus en détail

Java - RMI Remote Method Invocation

Java - RMI Remote Method Invocation Java - RMI Remote Method Invocation Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Répartition d'une application Application de Présentation Système d'exploitation Middleware Implicite Application de traitement

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Java RMI : Techniques et utilisations avancées de RMI Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE

Plus en détail

Dans ce chapitre nous présentons comment développer les classes et créer les objets.

Dans ce chapitre nous présentons comment développer les classes et créer les objets. Chapitre 2 La programmation orientée objet est une technique très puissante permettant d exploiter d énormes ressources stockées sous forme de classes et accessibles librement sur Internet. L appellation

Plus en détail

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

BARDY Guillaume DEVAUX Thomas DE ROUSIERS Charles GOTTERO Jérémie HOUILLON Nicolas REBESCHE Guillaume H4111 2006 / 2007

BARDY Guillaume DEVAUX Thomas DE ROUSIERS Charles GOTTERO Jérémie HOUILLON Nicolas REBESCHE Guillaume H4111 2006 / 2007 BARDY Guillaume DEVAUX Thomas DE ROUSIERS Charles GOTTERO Jérémie HOUILLON Nicolas REBESCHE Guillaume H4111 2006 / 2007 TABLE DES MATIÈRES PROBLÉMATIQUE...3 FONCTIONNEMENT GÉNÉRAL...4 I. En bref...4 II.

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

Chapitre 16. 16.1 Une classe simple pour représenter des comptes bancaires

Chapitre 16. 16.1 Une classe simple pour représenter des comptes bancaires Chapitre 16 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Créer une simple application Java avec netbeans. Par Ahcène BOUNCEUR

Créer une simple application Java avec netbeans. Par Ahcène BOUNCEUR Créer une simple application Java avec netbeans Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l

Plus en détail

Cours client-serveur Web : Java et RMI (Remote Method Invocation)

Cours client-serveur Web : Java et RMI (Remote Method Invocation) Cours client-serveur Web : Java et RMI (Remote Method Invocation) 1 Java: Rappel sur les threads Cycle de vie d un thread (1) Né -> prêt appel de la méthode start du thread Prêt Exécution Distribution

Plus en détail

Programmation RMI Ph. Truillet

Programmation RMI Ph. Truillet http://www.irit.fr/~philippe.truillet Ph. Truillet Octobre 2015 v. 1.7 0. déroulement du TP RMI (Remote Method Invocation) est une technologie développée et fournie par Sun à partir du JDK 1.1 pour permettre

Plus en détail

Systèmes distribués. Les Sockets

Systèmes distribués. Les Sockets Systèmes distribués Plusieurs technologies existent : Les sockets Les remote procedure call (RPC) Remote Method Invocation (RMI) Les Sockets L'utilisation des Sockets nécessite De gérer le codage et le

Plus en détail

Exercices en langage JAVA

Exercices en langage JAVA Exercices en langage JAVA H. Frezza-Buet et M. Ianotto 10 février 2003 Table des matières 1 Ecrire un programme, le compiler et l exécuter 3 1.1 Calcul de la somme des 100 premiers entiers avec une classe

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Pierre Gançarski Mars 2010 1 Présentation L'objectif est de permettre à des applications clientes (s'exécutant localement) d'invoquer des méthodes sur des objets distants,

Plus en détail

IV. Les objets répartis

IV. Les objets répartis IV. Les objets répartis 1 Plan 1. Client/Server OO 2. Java RMI 2 1 Modèle de prog. Client/Serveur OO 1.1 Nommage 1.2 Sécurité d accès 1.3 Durée de vie 1.4 Objets concurrents 1.5 Synchronisation 3 1 Modèle

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP RMI : Remote Method Invocation Appel de méthodes à distance TD/TP Patrice Torguet torguet@irit.fr Université Paul Sabatier But l But du TD/TP : application répartie permettant de gérer des comptes bancaires.

Plus en détail

Références et types primitifs en java

Références et types primitifs en java Références et types primitifs en java Mickaël Péchaud Mars 2008 Table des matières 1 Types primitifs 4 1.1 Petite liste............................................... 4 1.2 Variables pour les types primitifs..................................

Plus en détail

PROGRAMMATION DISTRIBUÉE TUTORIEL RMI

PROGRAMMATION DISTRIBUÉE TUTORIEL RMI PROGRAMMATION DISTRIBUÉE TUTORIEL RMI PUBLIC CONCERNÉ : formation initiale, 2 e année. NOM DE L AUTEUR : V. Thomas DATE 2012/2013 UNIVERSITÉ DE LORRAINE IUT NANCY CHARLEMAGNE 2 ter boulevard Charlemagne

Plus en détail

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011 Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau

Plus en détail

Java Programmation Orientée Objet

Java Programmation Orientée Objet Java Programmation Orientée Objet Ilhem BOUSSAID Mars 2010 GÉNÉRALITÉS 2 1 Java Développé par Sun, gratuit, libre et maintenant ouvert (licence GPL2) Langage orienté objet (pas 100% objet) Langage de classes

Plus en détail

José R. Beuret. Juin 2008. Bern University of Applied Sciences Engineering and Information Technology. Reflection en Java. Principe de la reflection

José R. Beuret. Juin 2008. Bern University of Applied Sciences Engineering and Information Technology. Reflection en Java. Principe de la reflection Bern University of Applied Sciences Engineering and Information Technology Reflection en Java José R. Beuret Juin 2008 est : un concept qui est présent dans Java, C#, Perl, etc... un moyen de récolter

Plus en détail

Systèmes répartis : Remote Method Invocation p.1/74

Systèmes répartis : Remote Method Invocation p.1/74 Systèmes répartis : Remote Method Invocation Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis : Remote Method Invocation p.1/74 Plan 1. Introduction 2. JRMP

Plus en détail

Le SGBD java. Olivier Caron SGBD - GIS4. c Polytech Lille. Olivier Caron (Polytech Lille) Le SGBD Java SGBD GIS 4 1 / 17

Le SGBD java. Olivier Caron SGBD - GIS4. c Polytech Lille. Olivier Caron (Polytech Lille) Le SGBD Java SGBD GIS 4 1 / 17 Le SGBD java Olivier Caron c Polytech Lille SGBD - GIS4 Olivier Caron (Polytech Lille) Le SGBD Java SGBD GIS 4 1 / 17 Les possibilités de Java De la conception à l implémentation (penser UML avec Java)

Plus en détail

Le réseau est l ordinateur

Le réseau est l ordinateur Le réseau est l ordinateur (Bill Joy) Les applets 1 Les applets : principe Les applets sont des programme Java téléchargés à partir d un serveur WEB et qui s exécutent dans le browser d un client : Fichier.html

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Message-Driven Beans. Message-Driven Beans. Messaging. Message-Driven Beans : motivation

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Message-Driven Beans. Message-Driven Beans. Messaging. Message-Driven Beans : motivation Message-Driven Beans Nouveauté apparue avec EJB 2.0, Message-Driven Beans Michel Buffa (buffa@unice.fr), UNSA 2011 modifié par Richard Grin (version 1.0, 21/11/11) Messaging = moyen de communication léger,

Plus en détail

Objectifs du cours. Modèles et Approches Formels pour les Systèmes Distribués. I/ Introduction aux systèmes distribués

Objectifs du cours. Modèles et Approches Formels pour les Systèmes Distribués. I/ Introduction aux systèmes distribués Modèles et Approches Formels pour les Systèmes Distribués M. Mosbah mosbah@labri.fr www.labri.fr/visidia/ Objectifs du cours Connaître les caractéristiques d un système distribué (SD) Comprendre les concepts

Plus en détail

Implementing a simple RMI Application over the. Internet. (using. and

Implementing a simple RMI Application over the. Internet. (using. and Implementing a simple RMI Application over the (using and Internet and comparing HTTP tunneling,, RMI Proxy) Plan de l exposé Introduction Problématique HTTP tunneling Comment RMI «tunnelle» des messages

Plus en détail

COMMENT " REUSSIR " DES FUITES MEMOIRES EN JAVA?

COMMENT  REUSSIR  DES FUITES MEMOIRES EN JAVA? page : 1/19 COMMENT " REUSSIR " DES FUITES MEMOIRES EN JAVA? Date 05/12/08 Version Modification Author V1.0 Initial JL PASTUREL page : 2/19 Table des matières 1 INTRODUCTION... 3 2 CLASSES DE TESTS...

Plus en détail

Plan. Les objets répartis. Sources. Cours. Introduction. Pierre Courtieu. Remote method invocation (JAVA/RMI)

Plan. Les objets répartis. Sources. Cours. Introduction. Pierre Courtieu. Remote method invocation (JAVA/RMI) Les objets répartis Pierre Courtieu Plan Introduction Les applications distribuées Introduction Les applications distribuées Remote method invocation (JAVA/RMI) Exemple 1: Compte en banque Exemple complet:

Plus en détail

Middleware Java RMI. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Middleware Java RMI. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Middleware Java RMI Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Middleware Middleware (intergiciel en français) : couche logiciel S'intercale

Plus en détail

Plan. Java Remote Method Invocation. 1. Caractéristiques. 1. Caractéristiques

Plan. Java Remote Method Invocation. 1. Caractéristiques. 1. Caractéristiques Plan Java Remote Method Invocation Lionel Seinturier Université des Sciences et Technologies de Lille 1. Caractéristiques 3. Services 5. Protocole Lionel.Seinturier@lifl.fr 8/9/06 RMI 1 Lionel Seinturier

Plus en détail

Remote Method Invocation

Remote Method Invocation Remote Method Invocation 1999, Cnam Paris jean-michel Douin, douin@cnam.fr Notes de cours consacrées à RMI Version du 18 Mars 2002 http://lmi92.cnam.fr:8080/tp_cdi/douin/java_rmi.pdf http://lmi92.cnam.fr:8080/tp_cdi/tprmi/tprmi.html

Plus en détail

Organisation générale d une application qui utilise une BD relationnelle. Types d applications pour la persistance. Base de données préexistante?

Organisation générale d une application qui utilise une BD relationnelle. Types d applications pour la persistance. Base de données préexistante? Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.6 5/8/05 Richard Grin Organisation générale d une application qui utilise une BD relationnelle Richard Grin Objet-relationnel

Plus en détail

Mise en place d'un serveur DNS:

Mise en place d'un serveur DNS: Mise en place d'un serveur DNS: 1) Présentation Le DNS (Domain Name System) DNS résout les noms internet et prend en charge les services de domaines Active Directory. Cette solution est fondamentale dans

Plus en détail

2 Ne pas faire confiance aux données entrées par l internaute

2 Ne pas faire confiance aux données entrées par l internaute Université de Caen Basse-Normandie Département d informatique, U.F.R. Sciences Licence pro. ATC, Webmestre, 2015 2016 Unité UE14 Approfondissement programmation objet Cours. Sécurité des scripts Bruno

Plus en détail

Allocation Mémoire T. HSU. September 29, 2014. IUT de LENS, Département informatique. T. HSU Allocation Mémoire

Allocation Mémoire T. HSU. September 29, 2014. IUT de LENS, Département informatique. T. HSU Allocation Mémoire Allocation Mémoire T. HSU IUT de LENS, Département informatique September 29, 2014 Introduction Les algorithmes sous-jacents à tout programme informatique consomment essentiellement deux ressources : du

Plus en détail

Remote Method Invocation Invocation de méthodes distantes (RMI)

Remote Method Invocation Invocation de méthodes distantes (RMI) Remote Method Invocation Invocation de méthodes distantes (RMI) Stéphane NICOLAS Hiver 2002 Résumé Ce document est destiné à donner au lecteur une connaissance à la fois pratique et théorique du modèle

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

Environnement Client/Serveur. Cours 7 JavaServer Pages (1) kn@lri.fr

Environnement Client/Serveur. Cours 7 JavaServer Pages (1) kn@lri.fr Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr Plan 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée 2 Réseaux généralités, IP, UDP 3 TCP, Rappels sur

Plus en détail

Modèle OSI. Chapitre 2

Modèle OSI. Chapitre 2 Chapitre 2 Modèle OSI A la fin des années 70 on a connu le développement de plusieurs solution réseaux indépendantes (SNA d IBM, DECNET de DEG, DSA de Bull...) et on avait besoin d une norme internationale

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Java Naming and Directory Interface et Lightweight Directory Access Protocol Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Guide du programmeur. Version 2.01 Juin 2010

Guide du programmeur. Version 2.01 Juin 2010 Sogenactif Paiement Web PLUG-IN 6.15 Guide du programmeur Version 2.01 Juin 2010 1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation

Plus en détail

CORBA. Cycle de développement

CORBA. Cycle de développement CORBA Cycle de développement Projet MIAGe Toulouse Groupe 2 1 Le cycle de développement (1/3) On s intéresse au développement selon le mode statique, c est à dire en utilisant les talons (stub, skeleton,

Plus en détail

Intergiciel - concepts de base

Intergiciel - concepts de base Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques

Plus en détail

DEA «Astrophysique et instrumentations associées» C++ Programmation orientée objet 2004 Benoît Semelin

DEA «Astrophysique et instrumentations associées» C++ Programmation orientée objet 2004 Benoît Semelin DEA «Astrophysique et instrumentations associées» C++ Programmation orientée objet 2004 Benoît Semelin Références Il existe de très nombreux tutoriels C++ téléchargeable gratuitement: - Pour une liste

Plus en détail

STATISTICA Entreprise (Version 9) : Instructions d'installation pour une Utilisation sous Terminal Server et Citrix

STATISTICA Entreprise (Version 9) : Instructions d'installation pour une Utilisation sous Terminal Server et Citrix Remarques : STATISTICA Entreprise (Version 9) : Instructions d'installation pour une Utilisation sous Terminal Server et Citrix 1. Ces instructions s'appliquent à une installation sous Terminal Server

Plus en détail

Programmation répartie RPC & RMI

Programmation répartie RPC & RMI Programmation répartie RPC & RMI Plan du cours Introduction Définitions Problématiques Architectures de distribution Distribution intra-applications Notion de processus Programmation multi-thread Distribution

Plus en détail

Avant-propos... vii A propos de ce livre... vii L organisation de ce livre... vii A qui s adresse ce livre... ix Support... ix Remerciements...

Avant-propos... vii A propos de ce livre... vii L organisation de ce livre... vii A qui s adresse ce livre... ix Support... ix Remerciements... CS_doNet/TdM Page v Jeudi, 15. mai 2003 11:33 11 Avant-propos... vii A propos de ce livre... vii L organisation de ce livre... vii A qui s adresse ce livre... ix Support... ix Remerciements... x L architecture.net

Plus en détail

Maxima et la programmation en parallèle

Maxima et la programmation en parallèle Maxima et la programmation en parallèle Danielle Léger Département de mathématiques et d informatique Université Laurentienne (Sudbury, Ontario) La présence de l ordinateur constitue une réalité palpable

Plus en détail

LAAS-CNRS. JAUMOUILLÉ Rodolphe

LAAS-CNRS. JAUMOUILLÉ Rodolphe 2009 LAAS-CNRS JAUMOUILLÉ Rodolphe [ Tutoriel pour le logiciel de Simulation de communications distribuées et de reconnaissance de formes d une SmartSurface] Tutoriel pour un logiciel permettant de simuler

Plus en détail

MR A.KHARTOCH Ä. Université Sidi Mohamed Ben Abdellah-Fés

MR A.KHARTOCH Ä. Université Sidi Mohamed Ben Abdellah-Fés Université Sidi Mohamed Ben Abdellah-Fés Ecole Supérieure de Technologie Département : Informatique Option : Administration Systèmes et Réseaux EL BAZ Ä Réalise par: @ Encadré par: @ MR A.KHARTOCH Ä Année

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

Calcul Parallèle. Cours 5 - JAVA RMI Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation

Plus en détail

Conception de serveurs d'applications ouverts

Conception de serveurs d'applications ouverts Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application

Plus en détail

M05/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Lundi 9 mai 2005 (après-midi) 1 heure 15 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

M05/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Lundi 9 mai 2005 (après-midi) 1 heure 15 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M05/5/COMSC/SP1/FRE/TZ0/XX 22057017 Lundi 9 mai 2005 (après-midi) 1 heure 15 minutes INSTRUCTIONS

Plus en détail

La gestion de votre compte affilinet

La gestion de votre compte affilinet La gestion de votre compte affilinet Contenu 1. Complétez votre profil! 1 1.1 Modifiez vos données personnelles 1 1.2 Détaillez l activité de votre site, ajoutez un nouveau site 2 1.3 Ajoutez un nouveau

Plus en détail

Sérialiser un objet consiste à construire une représentation compacte de celui-ci et à l envoyer sur un flux de sortie. Sérialisation JVM.

Sérialiser un objet consiste à construire une représentation compacte de celui-ci et à l envoyer sur un flux de sortie. Sérialisation JVM. Sériaisation Phiippe GENOUD UJF Novembre 2010 1 Sériaisation Objet en mémoire Sériaiser un objet consiste à construire une représentation compacte de ceui-ci et à envoyer sur un fux de sortie Objet sériaisé

Plus en détail

Introduction. Javascript. L événement onsubmit. Javascript et les formulaires. IFT1147 Programmation Serveur Web avec PHP

Introduction. Javascript. L événement onsubmit. Javascript et les formulaires. IFT1147 Programmation Serveur Web avec PHP IFT1147 Programmation Serveur Web avec PHP Au delà du HTML création dynamique de Javascript, d images et de fichiers PDF Introduction PHP ne permet pas seulement de générer du code HTML. On peut, entre

Plus en détail

Generation du code UI Android. Partie 2

Generation du code UI Android. Partie 2 Objectifs Generation du code UI Android Partie 2 Author : Cedric Dumoulin Date : 22 nov. 2012 Rev : 7 Nov. 2013 Nous voulons générer le code de la UI Android. Dans ce TP nous allons améliorer le métamodèle

Plus en détail

Mesures de performance exemple des tris

Mesures de performance exemple des tris IUT De Villetaneuse Dép t informatique Cours d'algorithmique 2 éme Année Cours 7 Mesures de performance exemple des tris Les tris On a un ensemble de données que l'on veut trier. Les données sont dans

Plus en détail

Examen du 27 Juin 2002

Examen du 27 Juin 2002 Les exercices de cet examen portent tous sur le système RMI de Java. La consultation de documents (supports de cours, livres, etc.) est autorisée. L interaction avec les autres candidats n est pas autorisée!

Plus en détail

RPC Remote procedure call

RPC Remote procedure call RPC Remote procedure call L'appel de méthode à distance a pour objectif de fournir l'illusion d'un appel de méthode local. Pour cela il faut définir un passage des arguments et du résultat. De plus il

Plus en détail

Ministère de l Éducation

Ministère de l Éducation Ministère de l Éducation EFIS 2.0 Guide de dépannage Version 1.1 le 29 octobre 2014 Table des matières 1 HISTORIQUE DU DOCUMENT... 3 2 PRÉSENTATION DU GUIDE... 4 2.1 BUT ET INTENTION... 4 2.2 COORDONNÉES

Plus en détail

Logiciel de garantie en ligne

Logiciel de garantie en ligne Logiciel de garantie en ligne Manuel d instruction (Compte de distributeur principal) Sommaire Introduction... 4 Flux d une réclamation de garantie... 5 Procédure de réclamation de garantie en ligne...

Plus en détail

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation SI4 AppRéparties PII F. Baude, d après cours F. Huet 2011-12 1 Java-RMI RMI signifie Remote Method Invocation Introduit dès JDK 1.1 Partie intégrante du cœur de Java (API

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

Historique C++ C++ : extension objet du langage C Bjarne Stroustrup, années 80 Java Inspiré de la partie objet du C++ Années 90 par SUN Vision discutable : Le C++ est un mélange de Java et de C Normalisé

Plus en détail

Cours Architecture des composants d entreprise Composants distribués pour l entreprise Introduction à Java EE

Cours Architecture des composants d entreprise Composants distribués pour l entreprise Introduction à Java EE Cours Architecture des composants d entreprise Composants distribués pour l entreprise Introduction à Java EE EMSI Université de Nice Richard Grin Version O 1.3 6/10/15 20 h de cours et TPs Richard Grin,

Plus en détail

Guide d aide à la génération des Certificats Serveurs Applicatifs (CSA) de l ASIP Santé Vos contacts ASIP Santé :

Guide d aide à la génération des Certificats Serveurs Applicatifs (CSA) de l ASIP Santé Vos contacts ASIP Santé : Guide d aide à la génération des Certificats Serveurs Applicatifs (CSA) de l ASIP Santé Vos contacts ASIP Santé : monserviceclient.certificats@asipsante.fr Sommaire 1. Pré-requis... 3 1.1. Configuration

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 9 NFP111 Systèmes et Applications Réparties Cours 6 - Remote Method Invocation (RMI)/Partie 2 Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Java - RMI Remote Method Invocation. Java - RMI

Java - RMI Remote Method Invocation. Java - RMI Remote Method Invocation Yann Viémont Université de Versailles St-Quentin Plan 1. Introduction 2. Rappels sur les RPC 3. Le modèle objet de Java-RMI 4. Architecture générale 1. Introduction = Disponible

Plus en détail

Les Middlewares : De l'approche implicite à l'architecture J2EE. Répartition d'une application

Les Middlewares : De l'approche implicite à l'architecture J2EE. Répartition d'une application Les Middlewares : De l'approche implicite à l'architecture J2EE Stéphane Frénot -MID - V.0.2.0 Part II - Middleware 1 Répartition d'une application Application de Présentation d'exploitation Middleware

Plus en détail

Introduction à l intergiciel

Introduction à l intergiciel Intergiciel et Construction d Applications Réparties c 2006-2008 S. Krakowiak (version du 4 juin 2008-14:36) Licence Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.0/fr/deed.fr) Chapitre

Plus en détail

Corrigé CCNA 2 chapitre 4

Corrigé CCNA 2 chapitre 4 Question 1 Un administrateur réseau configure l'interface Fa0/0 du routeur R1 avec la commande ip address 172.16.1.254 255.255.255.0. Cependant, lorsqu'il exécute la commande show ip route, la table de

Plus en détail

Les sous-programmes. Chapitre 6. 6.1 Définition d un sous-programme. Déclaration algorithmique d un sous-programme

Les sous-programmes. Chapitre 6. 6.1 Définition d un sous-programme. Déclaration algorithmique d un sous-programme Chapitre 6 Les sous-programmes 6.1 Définition d un sous-programme Un sous-programme est un élément de programme nommé et éventuellement paramétré, que l on définit afin de pouvoir ensuite l appeler par

Plus en détail