Intergiciel - concepts de base
|
|
|
- Emmanuel Alain
- il y a 10 ans
- Total affichages :
Transcription
1 Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr
2 Rappel : système réparti Système constitué de multiples ressources informatiques (ex : processus logiciels, équipements matériels, ) interconnectées via un support de communication (ex: réseaux, communication interprocessus, mémoire partagée, ) 2
3 Rappel : modèle OSI et TCP/IP OSI TCP-IP TCP-IP Application Présentation Application Application Session Transport TCP / UDP Sockets Sockets TCP / UDP Réseau IP IP Liaison Ethernet Ethernet Physique Ethernet Ethernet 3
4 Des sockets aux intergiciels Limites de l API socket - Travail fastidieux, répétitif, sujet aux erreurs - Configuration, construction de requêtes, déploiement, exécution, Solution : - Factoriser les opérations sur les sockets à l aide de bibliothèques de plus haut niveau Intergiciel («middleware») : abstractions pour la répartition - Fournit un modèle de répartition : entités inter-agissantes suivant une sémantique claire - Au dessus des briques de base de l OS (dont les sockets) - Définit un cadre complet pour la conception et la construction d applications distribuées 4
5 Intergiciels - définitions de base Logiciel réutilisable qui fait la médiation entre les applications et le réseau Gère et facilite l implantation de l interaction entre des applications qui s exécutent sur des plates-formes distantes et/ou hétérogènes 5
6 Intergiciel positionnement (1) Au dessus du réseau En dessous des applications (logique de business), bases de données, Sur toutes les machines participantes 6
7 Intergiciel positionnement (2) L intergiciel - où se trouve-t-il par rapport au modèle OSI? Application Transport Réseau Liaison Physique Services Application Services Intergiciel Services Réseau Réseau Application Transport Réseau Liaison Physique 7
8 Intergiciel - contenu Une collection réutilisable et extensible de services non-fonctionnels : A l origine : des services de communication Et ensuite : nommage, transactions, sécurité, persistance, gestion d instances, journalisation (logging), Un service non-fonctionnel n est pas conscient des buts fonctionnels (de business) et de la sémantique de l application qu ils servent 8
9 Intergiciels importance Aide à définir et concevoir un système réparti Aide les développeurs, en les protégeant : - des détails liées à la plateforme sous-jacente - des difficultés liées à la distribution => Plus besoin de programmer de sockets Amortit les coûts de développement initiaux par la réutilisation et par la dissémination de l expertise : - Communication : création de session, (de)marshalling, collecte et «bufferisation» de requêtes, contrôle de la concurrence, - D autres services non-fonctionnels : nommage, transactions, sécurité, 9
10 Intergiciels caractéristiques Se fonde sur des mécanismes de répartition - Passage de messages, sous-programmes distant - Objets répartis, objets partagés (mémoire répartie) - Transactions Fournit un contrôle sur ces mécanismes - Langages de description ou de programmation - Interfaces de bibliothèques ou de services S accompagne d un intergiciel de mise en œuvre - Bibliothèques + outils 10
11 modèle de répartition Envoi de Messages Interface réseau - Interface bas niveau - UDP, TCP, ATM - IPv6, multicast, SSL/TSL PVM/MPI - Calcul massivement parallèle - Communication de groupe Java Messaging Service (JMS) - Interface haut niveau (Standard Java) - Message Oriented Middleware (MOM) : Point à Point ou Publish / Subscribe 11
12 Modèle de répartition Appel de Procédure à Distance RPC (Remote Procedure Call) - Sun Service de nommage ou de localisation (portmapper) Compilateur rpcgen qui produit les souches et squelettes Intégré dans DCE (Distributed Computing Environment) DSA (annexe des systèmes répartis d Ada95) Réduit la frontière entre réparti et monolithique (local et uni-thread) Services de nommage et de localisation internes Annulation d appel de sous-programmes distants Référence sur des sous-programmes distants SOAP (Simple Object Access Protocol) Protocole léger de communication d informations structurées Le plus souvent : RPC à base de HTTP + XML (protocole uniquement) 12
13 modèle RPC pour les Objets répartis Appel de Méthode à Distance Approches dépendantes du langage de programmation Modula-3 : extension au langage Modula-2 RMI («Remote Method Invocation») : extension de Java DSA (annexe systèmes répartis d Ada95) : extension au langage Ada95 Approches indépendantes du langage de programmation CORBA (OMG IDL - langage de définition d interface) DCOM,.NET (Microsoft IDL) 13
14 Motivations Distribution (Analogie) L Evolution des Paradigmes de Programmation L Evolution des Paradigmes de Répartition Programmation avec GOTOs Passage de Message Programmation Procédurale Programmation par Appel de Procédure à Distance Programmation Orientée Objet Programmation par Appel de Méthode à Distance 14
15 Motivations - Hétérogénéité Appel de méthodes à distance sur objets répartis hétérogènes, indépendamment des : - Langages de programmation - Systèmes d exploitation - Plates-formes d exécution - Fournisseurs de technologie - Protocoles réseau - Formats des données Consensus pour l interopérabilité. Mais, de nombreux intergiciels restent spécifiques à - un langage, un vendeur, ou un Système d Exploitation (SE) 15
16 Java RMI - Remote Method Invocation Ressources : A. Diaconescu, L. Pautet & B. Dupouy 16
17 Objectifs de Java RMI Définir une architecture distribuée qui s'intègre dans le langage Java de façon transparente, donc qui permette : L'invocation de méthodes sur des objets situés sur des machines virtuelles différentes, de façon similaire à une invocation locale ; L'utilisation de l'environnement de sécurité Java classique lors de l'exécution d'applications distribuées ; L'affranchissement du programmeur de la gestion de la mémoire, en définissant une extension distribuée au garbage collector. 17
18 Architecture RMI - Interface Séparation de deux concepts : Définition d un comportement Java Interface Implantation d un comportement Java Class Dans un système réparti : Le client s intéresse à la description d un service Interface Le serveur fournit l implantation - Class Système RMI Programme Client Interface Programme Serveur Implantation 18
19 Architecture RMI plusieurs couches Souches (stubs) et Squelettes (skeletons) Juste en dessous du programme développeur Transforment les appels Java en messages réseau Couche de Transport Fait la connexion entre les JVMs Utilise le protocole TCP/IP 19
20 Architecture RMI détails & exemple Stub (Souche) Fait la transition entre l appel de l Objet Client et le Réseau Skeleton (Squelette) Fait la transition entre le Réseau et l appel vers l Objet Serveur > Visibles ou invisibles par le développeur, selon la version de JDK Interface 20 = methode1() methode2()
21 Objet réparti via RMI - stubs et skeletons Extension du mécanisme d appels de méthodes à la répartition : Souche («stub») - Objet «Proxy» qui : - Reprend la même signature que l Objet Serveur - Est manipulé par le client Squelette («skel») - code côté serveur pour : - Traiter la requête, et - Transmettre la réponse à l Objet Client RMI + JVM ajoutent la logique de traitement de la requête: - Localisation de l objet, construction de la requête, transmission, 21
22 Objet réparti via RMI - terminologie & définitions Un objet distant (Remote Object) est un objet dont les méthodes peuvent être invoquées par des clients situés sur des JVM différentes ; Cet objet distant est manipulé au travers d interfaces (Remote Interfaces) qui listent les méthodes que les clients pourront invoquer sur ces objets distants ; Une référence distante (Remote Reference) est une référence qui permet d'adresser un objet situé sur une JVM différente ; Une invocation de méthode distante (Remote Method Invocation) appelle une méthode définie dans une interface d'objet distant. Elle a la même syntaxe qu'une invocation de méthode locale. 22
23 Passage d appels distants Objets s exécutant sur : La même JVM appel local Des JVMs différentes sur la même machine appel distant Passant par la couche réseau de la machine Des machines différentes appel distant Passant par une connexion réseau entre les machines 23
24 Différences entre un appel local ou distant Les clients manipulent des Proxies qui implémentent les Remote interfaces - pas directement les objets qui implémentent ces interfaces ; Les paramètres de type simple (int, ) sont passés par copie ; Les paramètres de type référence (Objet) sont sérialisés (Serializable) et passés par copie => différence des paramètres locaux dont les références sont passés par copie ; Les objets distants sont passés par référence : les méthodes sont bien exécutées sur l'objet lui-même, quelle que soit la machine virtuelle dans laquelle il réside ; Les méthodes distantes provoquent des exceptions supplémentaires : les clients doivent traiter des exceptions liées au caractère distribué des méthodes qu'ils invoquent ; Le bytecode n'est transmis à la JVM qu'au moment de son utilisation. 24
25 Comment trouver les objets? RMI Registry Les clients utilisent un service de nommage basique RMI Registry (rmiregistry), afin de trouver les références des objets distants Au moins un RMI Registry doit se trouver sur chaque machine où se trouvent des objets distants ; (le port d écoute peut être configuré) Les objets distants doivent être enregistrés avec le RMI Registry local afin de pouvoir être trouvés et appelés ; Les clients doivent connaître l adresse (machine et port) du RMI Registry où sont enregistrés les objets distants qu ils souhaitent appeler Note : les Services de Nommage (SN) plus avancés n imposent plus cette contrainte de localisation une seule instance du SN (à une adresse bien connue) peut être partagée par tous les clients du système réparti. 25
26 Appel distant Etapes de connexion entre un client et un serveur 26
27 Fonctions RMI RMI assure les fonctions de : Localisation des objets distants Le serveur enregistre les objets qu'il exporte auprès de rmiregistry en utilisant bind() Le client trouve des références sur ces objets exportés et récupère les stubs correspondants en donnant leurs noms lors des appels à lookup() Communication transparente grâce au protocole RMI Téléchargement dynamique de bytecode à partir d un URL donné (ex : utilisation de serveurs http, ftp, ). 27
28 Compilation Java vs Java + RMI Le cas réparti nécessite la génération d éléments de code supplémentaires : codage/décodage des requêtes, gestion des tables de nommages, correspondance requêtes/code utilisateur La chaîne de compilation est étendue pour générer le code supplémentaire, qui va scruter le bytecode Java, et rechercher les éléments utiles (implantant les interfaces remote, serializable, ) *.java javac *.class rmic *_Stub.class *_Skel.class Bytecode Java Application répartie prête à être déployée 28
29 rmic optionnel pour les versions récentes de Java Une fois que l'on a écrit est compilé une classe qui implémente les interfaces distantes, on crée le stub et le squelette correspondants grâce à rmic : Ces deux classes sont rangées dans des fichiers dont les noms sont créés par ajout de _Stub au nom de la classe pour la souche («stub»), et _Skel pour le squelette («skeleton») Notes L'option -keepgenerated -conserve les sources du stub Object contient une méthode getclass() qui donne la classe de tout objet : en ajoutant les suffixes adéquats, on obtient les noms du stub et du squelette 29
30 Java RMI - 1 er exemple Hello World A. Diaconescu, L. Pautet & B. Dupouy 30
31 Exemple de base Soient les fichiers : Hello.java, HelloServer.java du côté serveur, et HelloClient.java du côté client. Contenu de Hello.java : l'interface (ce que «voit» le client): public interface Hello extends java.rmi.remote { } String readmessage() throws java.rmi.remoteexception; Remote signifie que les méthodes de cet objet Hello doivent être appelables depuis une JVM autre que la JVM locale. HelloServeur.java implémente cette interface : public class HelloServer implements Hello { } 31
32 Exemple : canevas du serveur //e.g. dans une méthode main : // Donner un nom au service distant static final String HELLO_SERVICE_NAME = "HelloService"; // Creation de l'objet qui va être invoque par les clients HelloServer myserver = new HelloServer(); // export de l instance myserver (sur un port anonyme - 0) // obtenir le stub de l objet distant Hello stub = (Hello)UnicastRemoteObject.exportObject(myServer, 0); // Obtenir une référence vers le remiregistry local //(args[0] donne le port sur lequel écoute le rmiregistry) int rmiport = new Integer(args[0]).intValue(); Registry registry = LocateRegistry.getRegistry(rmiPort); // Enregistrer le service auprès de rmiregistry registry.rebind(hello_server_name, stub); Le port sur lequel écoute le RMI Registry 32 Le nom de l objet serveur
33 Visualiser le stub Après la compilation du serveur il faut faire : rmic HelloServer, pour avoir : le stub - HelloServer_Stub.class - destiné aux clients, et seulement pour les anciennes versions de Java : le squelette - HelloServer_Skel.class Utiliser l option -keepgenerated pour obtenir le code source du stub : rmic -keepgenerated HelloServer 33 Intergiciel / RMI
34 Exemple de base : canevas du client Voici comment invoquer une méthode sur l'objet distant : // Donner le nom du service demandé static final String HELLO_SERVICE_NAME = "HelloService"; // Obtenir une référence vers le remiregistry distant Registry registry = LocateRegistry.getRegistry(host, port); // Obtenir une référence vers l objet distant (via le stub local) Hello hello = (Hello)registry.lookup(HELLO_SERVICE_NAME); // Invoquer des méthodes de l'objet distant message = hello.readmessage(); // Imprimer le message à la console System.out.println("Message from remote HelloService: " + this.message); 34
35 Exécution basique de l exemple (avec partage de code via NFS) En étant toujours dans le même répertoire : - Lancer rmiregistry en arrière plan ; - Lancer le serveur sur la même machine (<lamachine>) que celle où tourne rmiregistry ; - Lancer le client sur une machine quelconque, mais en étant dans le même répertoire pour retrouver les stubs : java HelloClient <lamachine> Le partage du bytecode (pour les stubs) est assuré par NFS : - Le client et le serveur, même s'ils ne sont pas sur la même machine, partagent le même système de fichiers. Dans le cas général, il faut faire transiter les stubs par un serveur publique - ex : http, ftp,. 35
36 Synthèse Côté serveur Ecrire : Les interfaces "prototypant" les méthodes distantes (extends java.rmi.remote) Lancer : Côté Client Ecrire : Lancer : Les classes qui les implémentent Une méthode (ex : main) pour créer des instances et les enregistrer avec rmiregistry rmic (optionnel) : création du stub et du squelette à partir des fichiers.class des implémentations rendre accessibles par un serveur Web ou Ftp les objets à télécharger (ex : bytecode de stubs) rmiregistry : l'enregistrement des objets distants sera fait lors de l'appel à bind Lancer l application java du serveur, avec des paramètres de sécurité,..etc. L'appel à lookup() sur le rmiregistry pour obtenir le stub de l objet distant Les appels à l objets distants via le stub Comme un programme java local, avec des paramètres de sécurité en plus 36
37 Déploiement de l application Pour lancer un serveur : java -Djava.rmi.server.codebase= -Djava.security.policy=java.policy HelloServer <port> <message> -server.codebase donne le nom du serveur web d'où les stubs seront téléchargés, -java.policy donne les droits d'accès qui seront vérifiés par le Security Manager - voici le contenu de ce fichier (donner tous les droits, non-recommandé) : grant{ }; permission java.security.allpermission; 37
38 Java RMI - 2 ème exemple Agent distribué A. Diaconescu, L. Pautet & B. Dupouy 39
39 Exemple: agent mobile Un client voulant acheter un produit va créer un agent au lieu d'interroger luimême tous les sites détenteurs de magasins vendant le produit. L'agent donnera au client le nom du site qui propose le meilleur prix. Mise en œuvre : Le client va lancer sa demande depuis un site appelé Initiator. Il initialise un tableau de sites à parcourir, puis Il invoque à distance sur le premier site la méthode migrate(), à laquelle il a passé l'agent en argument. 39
40 Scénario Un client (Initiateur) va envoyer un Agent interroger successivement plusieurs serveurs (Hôtes) Chaque Hôte prendra successivement le rôle de serveur et de client Le site Initiateur démarre et termine le processus 40
41 Transfert de bytecode Remarquez les différents objets téléchargés : Le Stub (de Hôte et d Initiateur) qui permet l'exécution distante de la méthode migrate L Agent transmis en paramètre de la méthode migrate NOTE: il ne faut pas confondre l envoi de l instance agent (en paramètre de la méthode migrate) avec le transfert du bytecode de la classe Agent 41
42 Récapitulatif du fonctionnement La liste des Sites à parcourir se trouve dans l agent Le Site Initiateur appelle le premier Site Hôte (dans la liste) Chaque Site Hôte appelle le prochain Site Hôte (en suivant la liste des Sites de l Agent) Le dernier Site Hôte appelle l Initiateur L agent est transmis en paramètre de chaque appel distant migrate( agent ) La méthode migrate de l Initiateur est particulière - elle demande d'afficher les résultats obtenus 42
43 Descriptif des transferts de l agent Observez ci-dessous le circuit parcouru par l agent : 43
44 Schéma des transferts de bytecode - codebase local via NFS - 44
45 Résumé des transferts de bytecode - codebase sur serveur http - 45
46 Le serveur Le serveur exécute la fonction migrate pour le client : il récupère alors le code de l'agent. il le fait exécuter par un Thread qui appelle lui-même migrate sur le site suivant : Voici l'interface fournie par le serveur (Host.java) : public interface Host extends Remote { void migrate(agent a) throws RemoteException; } Le code d'agent n'est pas présent lors de l'écriture de ce serveur 46
47 Le serveur Implémentation de l'interface (HostImplem.java) : La méthode migrate invoquée à distance crée un Thread - elle rend donc la main sans attendre la fin du traitement de l'agent (exécution puis migration). public class HostImplem implements Host{ public HostImplem(String filename) throws RemoteException{ super(); this.mystore = new Store(fileName); } } public void migrate(agent a){ AgentThread mythread = new AgentThread(agent, this.mystore); mythread.start(); } 47
48 L Agent Agent.java est l'interface pour les agents. L'objet sera implémenté par le "client" (Initiateur). public interface Agent extends Serializable { } // Traitement effectue par l'agent sur chaque hôte ex : getminprice void traitement(); // Affiche le résultat des traitements : effectué par // l'agent lorsqu'il revient sur le site initiateur void displayresult(); // Renvoie le nom de l'hôte suivant a visiter par l'agent String getnexthostname (); Serializable indique que les paramètres utilisés seront sérialisés et normalisés lors de l'appel distant («marshalling»). 48
49 Le Thread qui gère l agent ThreadAgent est le support système offert par un Hôte pour traiter un agent : cette classe définit le thread qui va être lancé chaque fois qu'un agent arrive sur un site. class ThreadAgent extends Thread { } public void run() { // On effectue ici le traitement demandé par l'agent... // On fait ensuite migrer l'agent vers l'hote suivant String nexthostname = this.theagent.getnexthostname();... Host nexthost = (Host) registry.lookup(nextservicename); nexthost.migrate(this.theagent); } 49
50 L Initiateur Implémentation de l Initiateur, c'est à dire du site "client" qui crée et lance l agent vers les différents serveurs. La méthode migrate est ici particulière : elle ne déclenche pas l'exécution de l'agent mais lui demande d'afficher les résultats obtenus. public class Initiator implements Host { public void migrate(agent a) { a.displayresult(); } } public static void main(string args[]) { AgentImplem agent = new AgentImplem(rmi-port, product, hosts);... firstremotehost.migrate(agent); } 50
51 Initiateur Voici la commande pour lancer l'initiateur : java -Djava.rmi.server.codebase= -Djava.security.policy=java.policy Initiator <rmirgistry port> <product> <host> <host>... server.codebase donne le nom du serveur web d'où l'agent sera téléchargé, le fichier java.policy donne les droits d'accès qui seront vérifiés par le Security Manager 51
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
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
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
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
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
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
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
Etude 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:
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
CORBA. (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,
Java RMI. Arnaud Labourel Courriel: [email protected]. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: [email protected] 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
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
NFP111 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
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 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
CORBA haute performance
CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes [email protected] Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance
24/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 ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
2 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é
OS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah [email protected] RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plan 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
Patrons 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
Le modèle client-serveur
Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)
Introduction 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
Software 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
TP1 : 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
TP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction
Plan du cours Autres modèles pour les applications réparties Introduction [email protected] http://rangiroa.polytech.unice.fr Notre terrain de jeu : les systèmes répartis Un rappel : le modèle dominant
Architecture 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
[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...
.NET remoting. Plan. Principes de.net Remoting
Plan.NET remoting Clémentine Nebut LIRMM / Université de Montellier 2 de.net Remoting côté serveur côté client.net Remoting en ratique Les canaux de communication L'activation L'invocation Les aramètres
Prise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec [email protected] Action RASC Plan de cet exposé Contexte Motivations
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million
XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................
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)
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
Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <[email protected]> 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
Institut 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
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Description 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
Principes. 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 [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Java 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
Architectures 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 [email protected] Introduction Architectures classiques
Architecture 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é[email protected]
Cours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Initiation à JAVA et à la programmation objet. [email protected]
Initiation à JAVA et à la programmation objet [email protected] 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
Chapitre 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
Chapitre 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
Modè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 [email protected] Polytech Nice - Sophia Principe Traitement des défaillances Désignation, localisation et liaison Intégration aux langages de programmation
Java Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas [email protected] Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1
Urbanisation des SI Des composants technologiques disponibles Urbanisation des Systèmes d'information Henry Boccon Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus de données, ETL et EAI
Messagerie asynchrone et Services Web
Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS
Introduction aux applications réparties
Introduction aux applications réparties Noël De Palma Projet SARDES INRIA Rhône-Alpes http://sardes.inrialpes.fr/~depalma [email protected] Applications réparties Def : Application s exécutant
Programmation par composants (1/3) Programmation par composants (2/3)
Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant
Evaluation 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
GEI 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
25 septembre 2007. Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national
25 septembre 2007 Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national Plan Introduction Les catégories d utilisateurs Migration
18 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
Projet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont [email protected] 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
Architecture distribuée
Architecture distribuée Conception et développement d algorithmes distribués pour le moteur Baboukweb Jean-Christophe DALLEAU Département de Mathématiques et Informatique Université de La Réunion 26 juin
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Bien architecturer une application REST
Olivier Gutknecht Bien architecturer une application REST Avec la contribution de Jean Zundel Ce livre traite exactement du sujet suivant : comment faire pour que les services web et les programmes qui
Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5
Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur
Pour 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
Composants 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
Auto-é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
Java 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
NSY102. Conception de logiciels Intranet Introduction
Conception de logiciels Intranet Introduction Cnam Paris jean-michel Douin, douin au cnam point fr 6 Février 2009 Une Introduction 1 Sommaire Introduction Généralités Tendances historique API & Intergiciel
Java pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Inté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
Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)
Motivations Motivations Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat) Contraintes Applications conçues indépendamment, sans avoir prévu une intégration
Systèmes d'informations historique et mutations
Systèmes d'informations historique et mutations Christophe Turbout SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN
Les Architectures Orientées Services (SOA)
Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie
Cours 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.
Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique
Services OSI Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique 59 SERVICES "APPLICATION" Architecture spécifique : ALS (Application Layer
TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname
Département d'informatique Architecture des réseaux TP2 - Conguration réseau et commandes utiles L'objectif de ce TP est d'une part de vous présenter la conguration réseau d'une machine dans l'environnement
Urbanisation des Systèmes d'information
Urbanisation des Systèmes d'information Des composants technologiques disponibles Urbanisation des Systèmes d'information - Henry Boccon-Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement
Java 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
LES ACCES ODBC AVEC LE SYSTEME SAS
LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie
Institut 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
Les 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
Cisco 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
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
Types 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
Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet [email protected] Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet [email protected] Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark
Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark Wireshark est un programme informatique libre de droit, qui permet de capturer et d analyser les trames d information qui transitent
Conception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Projet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines ([email protected]) Dr. MAHMOUDI Ramzi ([email protected]) TEST Sommaire Programmation JavaCard Les prérequis...
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Mise 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
Table des matières Chapitre 1 Virtualisation, enjeux et concepts Chapitre 2 Ligne de produit XEN
Table des matières 1 Chapitre 1 Virtualisation, enjeux et concepts 1. Définition et vue d'ensemble....13 1.1 Terminologie et concepts...13 1.2 Bénéfices....15 1.3 Technologies et solutions de virtualisation...16
Introduction à la plateforme J2EE
Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting [email protected] Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi
WEA Un Gérant d'objets Persistants pour des environnements distribués
Thèse de Doctorat de l'université P & M Curie WEA Un Gérant d'objets Persistants pour des environnements distribués Didier Donsez Université Pierre et Marie Curie Paris VI Laboratoire de Méthodologie et
L annuaire et le Service DNS
L annuaire et le Service DNS Rappel concernant la solution des noms Un nom d hôte est un alias assigné à un ordinateur. Pour l identifier dans un réseau TCP/IP, ce nom peut être différent du nom NETBIOS.
Le cadre des Web Services Partie 1 : Introduction
Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 1 : Introduction Alexandre Dulaunoy [email protected] Sécurité en ingénierie du Logiciel p.1/21 Agenda (partie 1) 1/2 Introduction Services
Le Network File System de Sun (NFS)
1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation
Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication
Chapitre VII : Principes des réseaux Structure des réseaux Types de réseaux La communication Les protocoles de communication Introduction Un système réparti est une collection de processeurs (ou machines)
Introduction aux «Services Web»
Introduction aux «Services Web» Sana Sellami [email protected] 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre
Introduction aux Technologies de l Internet
Introduction aux Technologies de l Internet Antoine Vernois Université Blaise Pascal Cours 2006/2007 Introduction aux Technologies de l Internet 1 Au programme... Généralités & Histoire Derrière Internet
L3 informatique Réseaux : Configuration d une interface réseau
L3 informatique Réseaux : Configuration d une interface réseau Sovanna Tan Septembre 2009 Révision septembre 2012 1/23 Sovanna Tan Configuration d une interface réseau Plan 1 Introduction aux réseaux 2
Encapsulation. 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
