Java - RMI Remote Method Invocation. Java - RMI
|
|
- Jules Chevalier
- il y a 8 ans
- Total affichages :
Transcription
1 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
2 1. Introduction = Disponible à partir de la version 1.1 du JDK de Sun (1995) = Concurrent de CORBA et DCOM (.NET) pour offrir un système d objets distribués = Conçu pour un environnement homogène de machines virtuelles Java Multiplateforme / Monolangage = Sécurité et disponibilité (RMI Security Manager) = Compatible avec le modèle objet de Java Polymorphisme, instanceof, GC distribué, = Intégration des standards Internet Fonctionnalité = Obtention de références sur les objets serveurs = Invocation de méthode à distance = Invocation sans compilation = Importation / exportation / transmission dynamique d objets Par référence ou par copie = Intégration au modèle objet de Java = Préservation de l intégrité des références = Importation / exportation / transmission dynamique de comportement (code) = Cycle de vie des objets distants Activation / Passivation / Persistance
3 Objectifs Le mécanisme doit permettre les opérations de base suivantes : = Obtenir une référence sur un objet distant = Invoquer à distance une méthode sur cet objet = Utiliser un objet d un site distant comme un objet local (importation d une copie de l objet) = Importer dynamiquement une classe (type + méthodes) avec les objets correspondants = Exporter dynamiquement une classe (type + méthodes) avec les objets correspondants Obtenir une référence RMI comprend un serveur de nom (registry) basé sur les URL : = Les méthodes de la classe Naming accèdent au registry Du coté serveur, l application invoque la méthode : = Naming. bind (URL, objet) Du coté client, l application invoque la méthode : = référence = Naming.lookup (URL) L objet reste sur le serveur = Une instance de la souche (stub) est importée sur le client = La référence client désigne cette souche qui référence l objet distant
4 Utiliser un objet distant On peut utiliser localement un objet distant : = De façon transparente = Aussi simplement qu un objet local = résultat = objetlocal.méthode (objetdistant) Invoquer une méthode distante Une méthode distante s invoque de façon transparente : = résultat = objetdistant.méthode (param1,, paramn) Les paramètres d entrée peuvent être : = Des objets locaux transmis par copie et sérialisation = Des objets distants (du serveur ou d un site tiers) dont la référence (objet + stub) est retransmise Au retour : = Les objets locaux modifiés sont recopiés = Des références à de nouveaux objets distants peuvent être obtenues
5 Beaucoup plus qu un simple RPC pour Java 2. Rappels sur les RPC Machine A Client Machine B Serveur Processus uitilisateur Requête Invocation du service (Processus veilleur) Réponse Réseau Exécution du service (Processus serveur) renvoit des valeurs de retour
6 Caractéristiques d un RPC Un APD, appel de procédure à distance (RPC, Remote Procedure Call en anglais) permet : = La transparence Type de machine Type de réseau Localisation Type de codage et standards = Plusieurs sémantiques des appels Synchrone / asynchrone Au-moins-une-fois / au-plus-une-fois Processus serveur Question : qui exécute la procédure distante? Réponse : un processus serveur autonome = Un second processus est utilisé sur le serveur
7 Problèmes Les espaces d adressage des processus client et serveur sont disjoints = Nouvelle pile, nouvelles variables Une procédure appelée à distance forme un bloc opaque pour les règles de visibilité = Toutes les communications se font par passage de paramètre = On ne peut pas passer un pointeur Les machines et / ou les systèmes sont différents = Transformation des formats = Interdiction des calculs explicites d adresse Solutions Solution 1 : les paramètres sont limités aux types de base = Passage de paramètres par valeurs = Sans pointeur, uniquement des tableaux = Les structures et / ou listes doivent être décomposées par le programmeur Plusieurs standards ont été proposés = Le plus utilisé est DXF (Data exchange Format) Solution 2 : sérialisation (languages objets) = Les objets complexes sont transformés en un flot de caractères selon un format d échange
8 Mécanisme d appel compilé = La procédure distante et le programme appelant sont compilés séparément = Le compilateur utilise une définition d interface abstraite = L appelant utilise le mécanisme d appel habituel = Une pseudo procédure se substitue localement à la procédure distante La souche client (stub) = L appelé utilise le mécanisme d appel habituel = Une pseudo procédure appelante se substitue à la vraie sur la machine distante La souche serveur (squeleton) Client Architecture Serveur Procédure appelante Souche client Librairie APD Système et communication Appel de procédure Appel de procédure Appel système Procédure appelée Souche serveur Librairie et runtime APD Système et communication Appel de procédure Appel de procédure Appel système
9 Définition d interface Une procédure distante n est connue que par son interface = type_retour nom_procedure (mode_p1 type_p1, mode_p2 type_p2,, mode_pn type_pn) ; = type_1 = ; = = type_m = ; L interface est générée par le compilateur serveur Elle est utilisée par le compilateur client 3. Le modèle objet de Java-RMI Le modèle objet distribué de RMI distingue deux types d objets : = Les objets distants (remote object) = Les objets locaux Un objet distant est connu des autres sites par une ou plusieurs interfaces distantes (remote interfaces) Chaque interface distante définit un ensemble de méthodes invocables depuis les autres sites Pour invoquer une méthode d un objet distant : = On connait son interface - son comportement = On ne connait pas sa classe exacte - son implémentation
10 Interfaces et classes en Java Une interface définit un comportement abstrait = Elle ne comporte pas de constructeur d objets = Elle définit la signature de méthodes abstraites = Elle peut aussi définir des constantes Une classe définit une implémentation particulière = Elle comporte un constructeur d objets = Elle définit un type pour la structure des objets = Elle spécifie des méthodes (signature + corps) Une classe peut implémenter une ou plusieurs interfaces = Elle doit alors fournir une implémentation des méthodes correspondantes Exemple InterfaceX méthodex1 () méthodex2 () InterfaceY méthodey1 () méthodey2 () InterfaceZ méthodez1 () méthodez2 () IntX IntY IntX IntZ ClasseA méthodex1 () méthodex2 () méthodey1 () méthodey2 () méthodea1 () méthodea2 () ClasseB méthodex1 () méthodex2 () méthodez1 () méthodez2 () méthodeb1 () méthodeb2 ()
11 Interfaces et héritage en Java Un objet Java est créé comme une instance d une classe particulière Java supporte trois mécanismes d héritage = simple : une classe peut étendre une autre classe - sa superclasse - = simple : une interface peut étendre une autre interface - sa superinterface - = multiple : une classe peut implémenter une ou plusieurs interfaces En résultat, un objet Java est aussi : = Une instance de sa ou ses superclasses = Une instance des toutes les interfaces implémentées par sa classe et sa (ou ses) superclasse (s) InterfaceX méthodex1 () Exemple InterfaceY méthodey1 () InterfaceW méthodew1 () IntX IntY ClasseA InterfaceZ méthodez1 () méthodex1 () méthodey1 () méthodea1 () implements extends IntZ ClasseC méthodey2 () méthodew1 () méthodez1 () méthodec1 () méthodec2 ()
12 Exemple (suite) Les instructions suivantes sont toutes correctes : ClasseC c1 = new ClasseC () ; ClasseA a1 = new ClasseC () ; ClasseA a2 = c1 ; ClasseC c2 = (ClasseC) a2 ; InterfaceX ix1 = new ClasseA () ; InterfaceX ix2 = new ClasseC () ; InterfaceZ iz1 = c1 ; InterfaceZ iz2 = (ClasseC) a1 ; L instruction suivante est incorrecte : InterfaceZ iz3 = new ClasseA () ; Interfaces et classes de RMI Interfaces Classes Exceptions Remote Serializable RemoteObject IOException RemoteServer RemoteException UnicastRemoteObject
13 L interface Remote Remote CompteBancaire Remote sert à identifier et référencer les objets distants Remote ne définit aucune méthode public interface Remote {} Remote est la racine de toutes les interfaces distantes définies par les utilisateurs pour manipuler les objets distants public interface CompteBancaire extends Remote { public void depot (float montant) throws RemoteException ; public void retrait (float montant) throws RemoteException ; } Objets distants de Java-RMI Définition : un objet distant est une instance d une classe implémentant une ou plusieurs interfaces distantes. Un objet non-distant est dit objet local. NB : distant et local désignent la nature de l objet et non pas sa localisation sur un certain site. Exemple pour l accès aux objets depuis un site particulier (Site local dans le tableau ci-dessous) selon la nature et la localisation d un objet : Nature des objets Objet local Objet distant Localisation des objets Site local accès local accès local Site distant accès copie locale accès distant
14 La classe UnicastRemoteObject La classe abstraite RemoteObject redéfinit plusieurs méthodes de Object et en ajoute pour les objets distants = hashcode, equals, tostring = getref, tostub, writeobject, readobject La classe abstraite RemoteServer définit des méthodes communes à tous les serveurs = unexportobject, getclienthost, La classe UnicastRemoteObject implémente les objets distants non répliqués (mono-serveur) = exportobject, Conformité avec le modèle Java Une référence à un objet distant peut être : = Passée en paramètre de toute invocation de méthode locale ou distante = Retournée par toute invocation de méthode locale ou distante = Fondue en une référence sur des interfaces distantes de son implémentation = Utilisée en argument de instanceof pour tester les interfaces supportées
15 Spécificité du modèle RMI Les clients des objets distants = Ne voient que les interfaces distantes = Ne voient jamais directement les classes qui les implémentent Les paramètres des méthodes distantes sont passés = Par référence pour les objets distants = par copie pour les autres objets Classes souches de Java-RMI A chaque classe C d objets distants sur le serveur est associée : = Une classe souche CS (stub class) = L ensemble des interfaces I distantes de C Implémentées directement par C Ou implémentées par une superclasse de C Pour un objet distant référencé depuis un site client : = La classe souche est importée par le réseau = Un objet de cette classe est créé localement Le système normal de type de Java fonctionne avec les références sur les objets souches
16 Exemple : hiérarchie de classe Interfaces Serializable Classes RemoteObject Remote RemoteServer RemoteInterfaceX RemoteInterfaceY UnicastRemoteObject RemoteInterfaceZ RemoteInterfaceW ClasseA InterfaceM ClasseB InterfaceN ClasseC Exemple : souches Interfaces Remote Souches RemoteInterfaceX RemoteInterfaceY RemoteInterfaceZ RemoteInterfaceW SoucheA SoucheB
17 Exemple : objets souches Serveur RIX RIW ClasseA SoucheA RIX RIZ RIW IM ClasseB SoucheB Importation des souches Client RIX RIW SoucheA RIX RIZ RIW SoucheB RIX RIZ RIW IM IN ClasseC Création d objets substituts Obj_CAi Obj_CBj Obj_CCk Obj_SAi Obj_SBj Obj_SCk références distantes 4. Architecture générale RMI se décompose en trois couches : Client Serveur Application Souches client (Stubs) Souches Serveur (Skeletons) Couche des références distantes (Remote Reference Layer) Mécanisme RMI Couche Transport
18 La couche des souches La couche des souches : = Constitue l interface application / système RMI. = Comporte les souches client (stubs) agissant comme un objet par procuration (proxy) = Comporte les souches serveur implémentant toutes les interfaces de l objet distant. = Soumet les données à la couche des références distantes sous forme de flots de données entrants et sortants - après sérialisation. Sérialisation Sérialisation Définition : technique permettant la transmission des données objets entre deux espaces d adressage différents Les références à d autres objets conduisent à une copie en profondeur Entrée : = Un ensemble d objets en mémoire (virtuelle) = Organisé en graphe (connexe ou non) Sortie : = Un flot séquentiel de données = Utilisant exclusivement un adressage relatif Désérialisation
19 Les souches client (stubs) La souche client : = Initialise l appel vers un objet distant (via la couche des références distantes ) = Sérialise les arguments sous forme d un unique flot de sortie = Informe la couche des références distantes que l appel peut être invoqué = Désérialise le flot d entrée contenant la valeur de retour ou une exception = Informe la couche des références distantes que l appel est achevé Les souches serveur (squeletons) La souche serveur : = Reçoit l appel par une méthode unique (aiguilleur) = Désérialise le flot d entrée des arguments = Prépare l appel vers l implémentation réelle de l objet distant = Distribue l appel vers la bonne méthode cible = Sérialise les valeurs de retour ou les exceptions dans le flot de sortie
20 La couche des références distantes Plusieurs protocoles d invocation possibles : = Invocation point à point (Unicast) = Invocation vers des groupes de réplication (Multicast) Stratégie de reconnexion (si un objet devient inaccessible) Deux composantes coopérantes : = la composante coté client (client-side) = la composante coté server (server-side) Transmission de données entre couches transport par une connexion orientée flux La couche transport La couche transport de Java-RMI effectue : = Mise en place, gestion, surveillance de la connexion = Ecoute des appels arrivant = Maintien d une table d objets distants pour l espace d adressage = Localisation du dispatcher pour la cible d un appel distant et transmission de la connexion
21 Concepts de la couche transport 4 abstractions : = Un endpoint indique machine virtuelle Java. = Un channel conduit entre 2@. = Une connexion permet le transfert des données. = Le transport effectue la gestion des channels. Nettoyage des objets distants Ramasse-miette Ramasse-miette (Garbage Collector) distribué Invoqué quand : = Les objets distants ne sont plus appelés (compteur ref_counting == 0) = Il n y a plus ni référence locale ni référence distante sur les objets locaux ou distants Remarque : = Le GC ne garantit pas l intégrité des références, il peut rester une référence sans objet correspondant ( fi RemoteException)
22 Chargement dynamique des classes Pendant l exécution : Chargement dynamique des classes nécessaires à l invocation des méthodes de l objet distant. = Classes stub et squelette (~proxies) = Classes indirectement utilisées par RMI Chargement dynamique des classes pour les copies des objets locaux hors-site = Classes et interfaces des objets hors-site Différents chargeurs de classe = LocalClassLoader (selon le Classpath) Chargement des classes connues localement = AppletClassLoader Chargement de l applet Chargement des classes dépendantes sur le réseau = RMIClassLoader Vérifie que l on ne peut pas charger avec le Classpath. Localise la classe grâce à l URL dans le flot (objet distant). Localise la classe grâce à l URL spécifié par java.rmi.server.codebase local (souche/squelette).
23 Sécurité Chargement local de classe : = Pas de problème de sécurité Chargement à partir du réseau : = Nécessité d un Security Manager. Applet Security Manager (à lancer en 1er dans une application). RMI Security Manager (par défaut). Sécurité Applet Security : = Le chargement doit être fait sur applet (travail des développeurs). RMI Security : = Lorsque non local (ex : bootstrapping). = Toutes les classes téléchargées par le RMIClassLoader. = Pb : on ne peut pas prévenir le chargement de classes abusant de ressource.
24 Scénarios Serveurs en mode ouvert ou fermé. Application Java utilisant RMI : Mode Client / Serveur Mode Serveur / Client (callback) Mode égal à égal (peer to peer) Mode ouvert ou fermé Serveur fermé : = Pas de chargement de classe = Interfaces locales au serveur = Pas de Security Manager Serveur ouvert : = Chargement de classes avec l URL du java.rmi.server.codebase = Contrôle par le RMI Security Manager
25 Applets Classes fournies par serveur HTTP ou FTP (URL page HTML) Pas de chargement de classes si elles existent déjà sur le serveur. Application Java distribuée NB : Applet Un seul serveur HTTP pour toutes les applications distribuées sur le réseau Chargement local d une application : = Chargement des interfaces distantes = Chargement des classes souche et squelette. Chargement réseau (bootstrapping) : = Toutes les classes peuvent être chargées à partir de la même source réseau
26 RMI à travers les Firewalls Problème : = Ouvrir un socket en présence de parefeux (Firewalls) sur Intranet Solution : = Encapsulation d un appel RMI par le protocole HTTP Appel RMI envoyé dans le corps d une requête HTTP POST. Retour dans une requête HTTP response. L usine à sockets Le factory de sockets : = java.rmi.server.rmisocketfactory = Fournisseur de ressource pour les sockets = Création de socket permettant le tunneling Socket client : connexion HTTP vers les hôtes Socket serveur : si HTTP POST alors réponse HTTP
27 Configuration Configuration du client : RAS Configuration du serveur : = La totalité du nom de l hôte serveur doit être incluse dans les références distantes = Si le serveur ne supporte pas les clients RMI en dehors du parefeux : Utilisation d un serveur HTTP à l écoute sur le port 80. Utilisation d un script CGI : /cgi-bin/java-rmi Multithreading NAME ADDRESS Client NAME ADDRESS Client NAME ADDRESS RMI RMI Server RMI Client JDBC Expense records
28 Comparaison RMI / RPC Orientation Objet = Passage d objets complexes en paramètre. = Création d objets à distance. Séparation interface / implémentation Client Server Architecture d objets distribués Répartition des objets sur une architecture C/S ou 3 tiers de façon libre. Utilisation d un Security Manager standard ou spécialisé. Portable sur toute machine (VM). Ramasse-miette distribué. Multithreaded.
29 Intégration intranet / extranet Appel à distance / téléchargement de code Encapsulation code non-java avec JNI Encapsulation BD avec JDBC Récupère les avantages d un BUS Java : = Puissance = Sécurité = Portabilité Implémentation des souches L implémentation des souches s appuie sur les possibilités objets de Java
30 Classes et Interfaces des souches Classe RemoteStub = Superclasse pour tous les stubs Interface RemoteCall = Gestion du transport des informations (flux) Interface RemoteRef = Attache locale à un objet distant Interface Skeleton = Répartiteur d appels JINI Architecture destinée à la gestion de périphériques en réseau = Utilise RMI = Télécharge des données et du code pour piloter le périphérique = Constitue une première application de Service Web
31 Fonctionnnement de JINI Lors de l ajout d un périphérique: Celui-ci se déclare auprès du serveur Lookup Service puis lui envoie son pilote Le client voulant utiliser le pilote envoie une demande au serveur Le serveur lui envoie le pilote du périphérique
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étailRemote 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étailRMI. 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étailRemote 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étailIntergiciel - 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étailProgrammation 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étailConception 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étailCalcul 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étailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailRemote 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étailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailInstitut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailJava 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étailEtude critique de mécanismes de sécurité pour l architecture Jini
UNIVERSITE LIBRE DE BRUXELLES Année académique 2001-2002 Faculté des Sciences Département d Informatique Etude critique de mécanismes de sécurité pour l architecture Jini Pierre Stadnik Directeur de Mémoire:
Plus en détailGEI 465 : Systèmes répartis
Université de Sherbrooke GEI 465 : Systèmes répartis Travaux à effectuer Ahmed Khoumsi Automne 2004 Page 1 Les deux premiers travaux que vous effectuerez vous donneront, respectivement, l occasion d utiliser
Plus en détailSystèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49
Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique
Plus en détailArchitectures n-tiers Intergiciels à objets et services web
Plan pour aujourd hui Architectures n-tiers Intergiciels à objets et services web Clémentine Nebut Nebut LIRMM / Université de Montpellier 2 Clementine.nebut@lirmm.fr Introduction Architectures classiques
Plus en détail2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Plus en détailLa technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Plus en détailFirewall IDS Architecture. Assurer le contrôle des connexions au. nicolas.hernandez@univ-nantes.fr Sécurité 1
Sécurité Firewall IDS Architecture sécurisée d un réseau Assurer le contrôle des connexions au réseau nicolas.hernandez@univ-nantes.fr Sécurité 1 Sommaire général Mise en oeuvre d une politique de sécurité
Plus en détailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Plus en détailImplementing a simple RMI Application over the Internet (using and comparing HTTP tunneling, RMI Proxy)
Implementing a simple RMI Application over the Internet (using and comparing HTTP tunneling, RMI Proxy) Abstract Un problème se pose lorsque l on veut effectuer des appels RMI à travers un firewall, car
Plus en détailCORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Plus en détailCours CCNA 1. Exercices
Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.
Plus en détailNFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Plus en détailJava Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Plus en détailJava et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Plus en détailModule BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détail24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailArchitecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr
Plus en détailApprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)
Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détail18 TCP Les protocoles de domaines d applications
18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
Plus en détailJava c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java
1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit
Plus en détailModèle client-serveur Plan. Modèle client-serveur. Modèle client-serveur définition. Modèle client-serveur communication par messages.
Modèle client- Modèle client- Plan Michel RIVEILL riveill@unice.fr Polytech Nice - Sophia Principe Traitement des défaillances Désignation, localisation et liaison Intégration aux langages de programmation
Plus en détail[APPLICATON REPARTIE DE VENTE AUX ENCHERES]
2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailGroupe Eyrolles, 2004 ISBN : 2-212-11504-0
Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailEvaluation Idéopass Cahier d analyse technique
Evaluation Idéopass Cahier d analyse technique Version 1 GMSIH 374, rue de Vaugirard 75015 Paris. Tel : 01 48 56 72 70. Fax : 01 48 56 07 70 Auteur(s) du document : Contrôle Qualité GMSIH Date : 17/03/2005
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailJava c est quoi? Java pourquoi?
Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailSoftware Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailJava et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Plus en détailIntergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet torguet@irit.fr Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
Plus en détailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailCisco Certified Network Associate
Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un
Plus en détailCahier des charges (CDC)
Cahier des charges (CDC) PTella Auteur Arnaud Aucher - Ecole Centrale Groupe PT1 3 Nom du document Version 3 Page 1 / 5 Sommaire Sommaire... 2 Présentation générale du projet... 3 1. Descriptif du projet...
Plus en détailNFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007
NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation
Plus en détailLa VOIP :Les protocoles H.323 et SIP
La VOIP :Les protocoles H.323 et SIP PLAN La VOIP 1 H.323 2 SIP 3 Comparaison SIP/H.323 4 2 La VOIP Qu appelle t on VOIP? VOIP = Voice Over Internet Protocol ou Voix sur IP La voix sur IP : Le transport
Plus en détailChapitre 1 Windows Server 2008 11
Chapitre 1 Windows Server 2008 11 1.1. Les fondations du système... 15 1.2. La virtualisation... 16 1.3. La sécurité... 18 1.4. Le Web... 20 1.5. Fonctionnalité disponible dans Windows Server 2008... 21
Plus en détailCORBA haute performance
CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes Alexandre.Denis@irisa.fr Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance
Plus en détailArchitectures d'intégration de données
Architectures d'intégration de données Dan VODISLAV Université de Cergy-ontoise Master Informatique M1 Cours IED lan Intégration de données Objectifs, principes, caractéristiques Architectures type d'intégration
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailLes Services Web. Jean-Pierre BORG EFORT http://www.efort.com
Les Services Web Jean-Pierre BORG EFORT http://www.efort.com 1 Introduction Un "Service Web" est une application logicielle à laquelle on peut accéder à distance à partir de différents langages basés sur
Plus en détailDescription de la formation
Description de la formation Modalités Ce parcours de formation est un parcours en alternance, d une durée de 2ans, à raison d une semaine de formation par mois, soit 770 heures et de trois semaines de
Plus en détailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailCompte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailDevenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
Plus en détailComposants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Plus en détail2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.
2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement
Plus en détailIntérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT
Administration Réseau Niveau routage Intérêt du NAT (Network Address Translation) Possibilité d utilisation d adresses privées dans l 4 2 1 Transport Réseau Liaison Physique Protocole de Transport Frontière
Plus en détailJOnAS Day 5.1. Clustering
JOnAS Day 5.1 Clustering Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailMeta Object Facility. Plan
Meta Object Facility Gestion de «meta objets» & meta meta modélisation Xavier Le Pallec Plan 1 Auteur : MOF : généralités L OMG en 1997-1998. Acteur principal DSTC : Centre Recherche sur les Systèmes distribués
Plus en détailVulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Plus en détailNetwork Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft Virtual Server 2005 R2 Network Shutdown Module Système Principal (hôte) Virtual Server
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailFormation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux
Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un
Plus en détailL3 informatique TP n o 2 : Les applications réseau
L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailC++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Plus en détailIntroduction aux intergiciels
Introduction aux intergiciels M. Belguidoum Université Mentouri de Constantine Master2 Académique M. Belguidoum (UMC) Introduction aux intergiciels 1 / 39 Plan 1 Historique 2 Pourquoi l'intergiciel? 3
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailÉtude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java
Université Catholique de Louvain Faculté des Sciences Appliquées Département d Ingénierie Informatique Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java
Plus en détailDruais Cédric École Polytechnique de Montréal. Résumé
Étude de load balancing par un réseau de neurones de types HME (Hierarchical Mixture of s). Druais Cédric École Polytechnique de Montréal Résumé Cet article tente d introduire le principe de load balancing
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailFiche Technique. Cisco Security Agent
Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit
Plus en détail«clustering» et «load balancing» avec Zope et ZEO
IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4
Plus en détailPolymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailExtension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.
Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailPlan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet
Plan Patrons de conception Philippe Collet Master 1 Informatique 2005-2006 http://deptinfo.unice.fr/twiki/bin/view/minfo/gloo Introduction Premier exemple Principes et classification Présentation des patrons
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailOPC Factory Server- Réglage des paramètres de communication
OPC Factory Server- Réglage des paramètres de communication EIO0000001731 04/2014 OPC Factory Server- Réglage des paramètres de communication 04/2014 EIO0000001731.01 www.schneider-electric.com Le présent
Plus en détail