Informatique Répartie

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

Download "Informatique Répartie"

Transcription

1 INSA - ASI InfoRep : EJB 1/65 Informatique Répartie Introduction aux EJB Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, pauchet@insa-rouen.fr

2 INSA - ASI InfoRep : EJB 2/65 Plan 1 Introduction 2 Architecture J2EE 3 EJB 4 EJB Session sans état 5 Envoi d exception 6 Passage d objets par valeur 7 Callbacks 8 EJB Session avec état 9 EJB/JSP 10 Persistance 11 Les EJB message

3 INSA - ASI InfoRep : EJB 3/65 Introduction (1/3) Historique (rappel) Années 70 : architectures Mainframe (1 tier) Années 80 : architectures 2 tiers (BD) Fin des années 80 : architectures 3 tiers (RPC) Années 90 : architectures 3 tiers Objet (RMI/Corba) Années 00 : architectures orientées services (Web Services) Fin des années 00 : architectures orientées ressources (RESTful)

4 INSA - ASI InfoRep : EJB 4/65 Introduction (2/3) Histoire Aspect programmation Années : Programmation procédurale alors que les premiers langages objets datent de la fin des années 60! Années 90 : Programmation objet Fin des années 90 : Programmation par composants Les composants peuvent être physiquement distants Si changement, pas besoin de tout recompiler et de tout relinker Bonne programmation objet : seules les interfaces sont connues

5 INSA - ASI InfoRep : EJB 5/65 Introduction (3/3) J2EE Volonté de SUN Cadre de développement par composants avec services J2EE (Java 2 Edition Enterprise), qui propose des API : L invocation de méthodes distantes : RMI, CORBA, Web Services L accès aux bases de données relationnelles : JDBC L accès aux annuaires et services de nommage : JNDI L utilisation du XML : DOM et SAX HTML dynamique et traitement de requêtes HTTP : JSP et Servlet La gestion du Mail : Java Mail La gestion des composants : EJB La gestion des messages entre composants : Java Message Service La gestion des droits d accès : Java Authentication and Authorization Service (JAAS)

6 INSA - ASI InfoRep : EJB 6/65 Architecture J2EE (1/4) Description de l architecture J2EE

7 INSA - ASI InfoRep : EJB 7/65 Architecture J2EE (2/4) Rappels : J2EE et les conteneurs Web La spécification J2EE fournit les éléments suivants pour la conception et la réalisation d application Web : Servlets Java et JSP Les servlets et JSP constituent les blocs de construction du développement d applications web avec J2EE En terme J2EE, les servlets et pages JSP sont des composants web Application web Collection de servlets et de pages JSP, d autres classes annexes ou de bibliothèques de classes, ainsi que des ressources statiques telles que des documents HTML, XHTML ou XML, images, etc. Conteneur web Essentiellement un environnement d exécution Java pour les applications web Responsable de l initialisation, de l invocation et de la gestion de la durée de vie des servlets Java et des pages JSP

8 INSA - ASI InfoRep : EJB 8/65 Architecture J2EE (3/4) Rappels : J2EE et les conteneurs Web Éléments de la spécification J2EE (suite) : structure de paquetage et descripteur de déploiement le descripteur de déploiement est un fichier XML Application web Servlets Page JSP Application web Servlets Page JSP Classes Java Archives Description de déploiement Classes Java Archives Description de déploiement Conteneur web

9 INSA - ASI InfoRep : EJB 9/65 Architecture J2EE (4/4) Rappels : J2EE et les conteneurs Web Exemple de conteneur Web Tomcat

10 INSA - ASI InfoRep : EJB 10/65 Les EJB (1/11) Description Un composant EJB est constitué d une collection de classes/interfaces Java Les classes Java doivent respecter certaines règles (Spécifications) Le composant EJB s exécute dans un conteneur EJB, qui prend en charge tout ce qui concerne le niveau système Répartition des tâches entre le programmeur d EJB et le conteneur Les composant EJB fonctionnent avec tout type de client : servlets et JSP clients Java (via RMI) clients et serveur divers (via RMI-IIOP, Services Web)... 3 types d EJB : entité, session, message

11 INSA - ASI InfoRep : EJB 11/65 Les EJB (2/11) Variétés d EJB : les EJB entité Représentation orientée objet de données dans une base de données Les clients peuvent y accéder en toute sécurité simultanément La durée de vie de l EJB est exactement identique à celle des données qu il représente La relation d un EJB entité avec les données de la base de données peut être gérée par le programmeur : persistance gérée par l EJB le conteneur : persistance gérée par le conteneur Cette distinction se révélera souvent essentielle du point de vue des performances Cependant on peut utiliser n importe quel type d EJB de manière interchangeable dans la conception

12 INSA - ASI InfoRep : EJB 12/65 Les EJB (3/11) Variétés d EJB : les EJB session Client unique (extension du client sur le serveur) Fournit de la logique métier (calcul d un taux, panier d un client, etc.) La durée de vie de l EJB ne doit pas dépasser celle de son client Représente la logique métier Seuls EJB interfaçable par les clients Les EJB session sans état ne possède aucune information sur son client ex : EJB relatif à une calculatrice Les EJB session avec état peut conserver des informations au nom de son client ex : EJB relatif à un panier d achat électronique

13 INSA - ASI InfoRep : EJB 13/65 Les EJB (4/11) Variétés d EJB : les EJB message EJB producteur ou consommateur de messages Utilisation de JMS (le server d application est un JMS provider, et les EJB sont des JMS client : JMS producer et JMS consumer) Permet l envoi de messages asynchrones Permet l envoi multiple (1 n)

14 INSA - ASI InfoRep : EJB 14/65 Les EJB (5/11) Les conteneurs EJB Conteneur = environnement d exécution pour un composant Le composant se trouve dans le conteneur Le conteneur fournit des services au composant Conteneur se trouve dans un serveur d applications qui lui fournit un environnement d exécution Conteneur web Conteneur EJB Serveur d applications

15 INSA - ASI InfoRep : EJB 15/65 Les EJB (6/11) Les services des conteneurs EJB Sans écrire une seule ligne de code Persistance. Possibilité pour l EJB d être persistant dans une BD Transactions déclaratives. Possibilité de gérer des transactions complexes (sans utiliser l API JTA -Java Transaction- et JTS -Java Transaction Service-) Mémoire cache. Possibilité d améliorer les performances Sécurité déclarative. Possibilité de gérer l accès aux composants Gestion d erreurs. La spécification EJB définit la manière dont les erreurs affectent les transactions, les résultats au niveau client, la connexion et la restauration des composants Portabilité. EJB = Spécification = possibilité de porter un EJB sur un autre serveur plus puissant

16 INSA - ASI InfoRep : EJB 16/65 Les EJB (7/11) Comment le conteneur fournit-il ces services? 3 concepts de bases pour les EJB Le concept de contrat Services orthogonaux aux EJB Interposition du conteneur entre le client et l EJB Contrat Répartition des responsabilités entre chaque couche du logiciel (Client, Conteneur, EJB, Gestionnaire de persistance ( 2.0)) Services orthogonaux Le conteneur EJB fournit des services au programmeur Le programmeur de l EJB n a plus qu à respecter les règles pour exploiter automatiquement ces services Ces règles sont spécifiées dans le descripteur de déploiement

17 INSA - ASI InfoRep : EJB 17/65 Les EJB (8/11) Interposition Interposition : RMI et le design pattern Remote Proxy Client Stub RMI Réseau Skeleton RMI Classe d interposition générée par le conteneur Votre EJB 1 Le client exécute un appel sur un Stub RMI 2 Ce stub RMI assemble et envoie des informations au serveur 3 Le skeleton désassemble les paramètres et les transmets au conteneur EJB 4 Le conteneur examine les références de sécurité de l appelant de la méthode 5 Le conteneur démarre ou rejoint toute transaction nécessaire 6 Le conteneur exécute tous les appels nécessaires aux fonctions de persistance 7 Le conteneur déclenche diverses méthodes callback pour permettre au composant EJB d acquérir des ressources 8 La méthode logique métier est appelée 9 Le conteneur exécute quelques autres tâches relatives aux transactions, à la persistance, aux méthodes callback 10 Le conteneur renvoie le résultat de la méthode métier ou une exception au client

18 INSA - ASI InfoRep : EJB 18/65 Les EJB (9/11) Annotations Java Intégrées au JDK 1.5, elles permettent d ajouter des Méta-informations au code (i.e. marquer des éléments Java afin de leur ajouter une propriété) Peuvent être utilisées sur n importe quel type d élément Java (package, class, attribut, méthode, paramètre, etc.) Plusieurs annotations peuvent être utilisées sur un même élément Non prises en compte par la JVM (mais présente dans le.class) : il faut écrire du code ou des outils qui utilise ces informations Utilisées à la compilation ou à l exécution Utilisation suivi du mot-clef correspondant à l annotation L API Java 5.0 propose de base 3 Déclaration et création de nouvelles annotations : comme une interface en utilisant le (java.lang.annotation.annotation) Possibilité de passer des informations à une annotation : nom=valeur

19 INSA - ASI InfoRep : EJB 19/65 Les EJB (10/11) Exemple d annotations Java Exemple p u b l i interface MaNouvelleAnnotation { SuppressWarnings (" deprecation ") p u b l i c c l a s s maclasse UneAutreAnnotation ( champ =" type ") p u b l i c String texte = " Texte SuppressWarnings ({" deprecation "," unchecked ") p u b l i c String tostring () { r e t u r n t h i s. texte ;

20 INSA - ASI InfoRep : EJB 20/65 Les EJB (11/11) EJB3 et les annotations Les EJB3 utilisent les annotations pour simplifier le code à produire : Moins de code à écrire Génération automatique des descripteurs de déploiement

21 INSA - ASI InfoRep : EJB 21/65 Les EJB Session sans état (1/7) Description EJB Session sans état (Stateless) Composé d une ou deux interfaces et d une classe métier : Interface de description du contrat pour accès distant (XXRemote.java) Utilisation de l (importation de javax.ejb.remote) juste avant la définition de l interface Interface de description du contrat pour accès local (XXLocal.java) Utilisation de l (importation de javax.ejb.local) juste avant la définition de l interface Classe de définition de la logique métier (XXBean.java) Importation de javax.ejb.stateless Utilisation de l avant la définition de classe Implémentation des interfaces précédentes Ne pas être final

22 INSA - ASI InfoRep : EJB 22/65 Les EJB Session sans état (2/7) Cycle de vie 1 Dans suivi de la méthode suivi de la méthode predestroy 1. extrait du tutoriel de SUN : doc/ejbconcepts9.html

23 INSA - ASI InfoRep : EJB 23/65 Les EJB Session sans état (3/7) Côté serveur HelloStatelessRemote.java package HelloWorld ; import javax.ejb. Remote Remote public i n t e r f a c e HelloStatelessRemote { p u b l i c String sayhello ( String s); HelloStatelessLocal.java package HelloWorld ; import javax.ejb. Local Local public i n t e r f a c e HelloStatelessLocal { p u b l i c String sayhello ( String s);

24 INSA - ASI InfoRep : EJB 24/65 Les EJB Session sans état (4/7) Côté serveur HelloStatelessBean.java package HelloWorld ; import javax.ejb. Stateless Stateless public c l a s s HelloStatelessBean implements HelloStatelessLocal, HelloStatelessRemote { p u b l i c String sayhello ( String s) { r e t u r n " Hello " + s + peuvent être portées par la même interface Il faut au moins une Toutes les annotations peuvent éventuellement être placées directement dans l EJB. L interface doit alors être précisé Remote ( NomInterface. class ) public... c l a s s EJBStateless implements NomInterface {

25 INSA - ASI InfoRep : EJB 25/65 Les EJB Session sans état (5/7) Déploiement avec JBoss Compilation et déploiement A la compilation, inclure dans le classpath : JBOSS_DIR/modules/javax/ejb/api/main/jboss-ejb-api_3.1_ spec final.jar (JBoss) JBOSS_DIR/modules/system/layers/base/javax/ejb/api/main/ jboss-ejb-api_3.2_spec final.jar (WildFly) Mettre dans un.jar Pour déployer, déposer dans le répertoire JBOSS DIR/server/JBOSS MODE/deploy (JBoss < 7) JBOSS DIR/standalone/deployments (JBoss 7 et plus) Arborescence des répertoires HelloStateless.jar _ HelloWorld _ HelloStatelessLocal.class _ HelloStatelessBean.class _ META-INF _ MANIFEST.MF

26 INSA - ASI InfoRep : EJB 26/65 Les EJB Session sans état (6/7) Côté client Nommage d un EJB Service de nommage : JNDI Nommage d un EJB : ejb:appname(ear)/modulename(jar)/beanname!interfacename Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import HelloWorld. HelloStatelessRemote ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); HelloStatelessRemote obj = ( HelloStatelessRemote ) context. lookup ("ejb :/ HelloStateless / HelloStatelessBean! HelloWorld. HelloStatelessRemote "); System.out. println (obj. sayhello (args [0]) ); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

27 INSA - ASI InfoRep : EJB 27/65 Les EJB Session sans état (7/7) Exécution Client À l exécution, inclure dans le classpath : JBOSS_DIR/bin/client/jboss-client.jar jboss-ejb-client.properties jboss-ejb-client.properties endpoint.name = client - endpoint remote. connectionprovider. create. options.org.xnio. Options. SSL_ENABLED = f a l s e remote. connections = d e f a u l t remote. connection. default.host = localhost remote. connection. default.port = 8080 remote. connection. default. connect. options.org.xnio. Options. SASL_POLICY_NOANONYMOUS = f a l s e

28 INSA - ASI InfoRep : EJB 28/65 Envoi d exception (1/3) Côté serveur EJB : HelloStatelessBean.java package HelloWorld ; import javax.ejb. Stateless Stateless public c l a s s HelloStatelessBean implements HelloStatelessRemote { p u b l i c String sayhello ( String s) throws ChaineVide { i f (s. length () ==0) { throw new ChaineVide (); e l s e i f (s. equals (" test ")) { s = "" + 1/0; r e t u r n " Hello " + s + "!";

29 INSA - ASI InfoRep : EJB 29/65 Envoi d exception (2/3) Côté serveur Exception : ChaineVide.java package HelloWorld ; public c l a s s ChaineVide extends Exception { p u b l i c ChaineVide (){ s u p e r (" String vide!"); Interface : HelloStatelessRemote.java package HelloWorld ; import javax.ejb. Remote Remote public i n t e r f a c e HelloStatelessRemote { p u b l i c String sayhello ( String s) throws ChaineVide ;

30 INSA - ASI InfoRep : EJB 30/65 Envoi d exception (3/3) Côté client Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import HelloWorld. HelloStatelessRemote ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); HelloStatelessRemote obj = ( HelloStatelessRemote ) context. lookup ("ejb :/ HelloException / HelloStatelessBean! HelloWorld. HelloStatelessRemote "); i f ( args. length >0) System.out. println (obj. sayhello (args [0]) ); e l s e System.out. println (obj. sayhello ("")); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

31 INSA - ASI InfoRep : EJB 31/65 Passage d objets par valeur (1/4) Côté serveur Interface : HelloSerializableRemote.java package HelloWorld ; import javax.ejb. Remote Remote public i n t e r f a c e HelloSerializableRemote { p u b l i c String sayhello ( Guy g); EJB : HelloSerializableBean.java package HelloWorld ; import javax.ejb. Stateless Stateless public c l a s s HelloSerializableBean implements HelloSerializableRemote { p u b l i c String sayhello ( Guy g) { r e t u r n " Hello " + g. getname () + "!";

32 INSA - ASI InfoRep : EJB 32/65 Passage d objets par valeur (2/4) Objet passé Guy.java package HelloWorld ; import java.io. Serializable ; public c l a s s Guy implements Serializable { p r i v a t e String name ; p u b l i c Guy () { t h i s. name = ""; public Guy ( String name ) { t h i s.name = name ; p u b l i c String getname () { r e t u r n t h i s. name ; p u b l i c v o i d setname ( String name ) { t h i s. name = name ;

33 INSA - ASI InfoRep : EJB 33/65 Passage d objets par valeur (3/4) Déploiement Arborescence des répertoires HelloSerializable.jar _ HelloWorld _ HelloSerializableRemote.class _ HelloSerializableBean.class _ Guy.class _ META-INF _ MANIFEST.MF

34 INSA - ASI InfoRep : EJB 34/65 Passage d objets par valeur (4/4) Côté client Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import HelloWorld. HelloSerializableRemote ; import HelloWorld. Guy ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); HelloSerializableRemote obj = ( HelloSerializableRemote ) context. lookup ("ejb :/ HelloSerializable / HelloSerializableBean! HelloWorld. HelloSerializableRemote " ); System.out. println (obj. sayhello (new Guy (args [0]) )); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

35 INSA - ASI InfoRep : EJB 35/65 Callbacks (1/6) Exemple Client Programme Guy Serveur EJB Guy Guy File - - File - - Callback Passage d un stub RMI

36 INSA - ASI InfoRep : EJB 36/65 Callbacks (2/6) Côté serveur Interface : HelloCallbackRemote.java package HelloWorld ; import javax.ejb. Remote ; import java.rmi. RemoteException Remote public i n t e r f a c e HelloCallbackRemote { p u b l i c String sayhello ( Guy g) throws RemoteException ; EJB : HelloCallbackBean.java package HelloWorld ; import javax.ejb. Stateless ; import java.rmi. RemoteException Stateless public c l a s s HelloCallbackBean implements HelloCallbackRemote { p u b l i c String sayhello ( Guy g) throws RemoteException { r e t u r n " Hello " + g. getname () + "!";

37 INSA - ASI InfoRep : EJB 37/65 Callbacks (3/6) Interface du stub paramètre Guy.java package HelloWorld ; import java.io. Serializable ; import java.rmi. Remote ; import java.rmi. RemoteException ; p u b l i c i n t e r f a c e Guy extends Remote, Serializable { p u b l i c String getname () throws RemoteException ; p u b l i c v o i d setname ( String name ) throws RemoteException ; L interface doit être accessible côté client et côté serveur

38 INSA - ASI InfoRep : EJB 38/65 Callbacks (4/6) Déploiement Arborescence des répertoires HelloCallback.jar _ HelloWorld _ HelloCallbackRemote.class _ HelloCallbackBean.class _ Guy.class _ META-INF _ MANIFEST.MF

39 INSA - ASI InfoRep : EJB 39/65 Callbacks (5/6) Implémentation du stub côté client uniquement GuyImpl.java package HelloWorld ; import java.io.*; public c l a s s GuyImpl implements Guy { public GuyImpl ( String name ) { t h i s. setname (name ); p u b l i c String getname () { String name = ""; String fichier = System. getproperty ("user.dir ") + "/ GuyName "; t r y { BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ( fichier ))); name = br. readline (); br. close (); catch ( IOException ioe ){ ioe. printstacktrace (); r e t u r n name ; p u b l i c v o i d setname ( String name ) { String adr = System. getproperty ("user.dir ") + "/ GuyName "; t r y { BufferedWriter output=new BufferedWriter (new FileWriter (adr, f a l s e )); output. write (name ); output. flush (); output. close (); catch ( IOException ioe ){ ioe. printstacktrace ();

40 INSA - ASI InfoRep : EJB 40/65 Callbacks (6/6) Côté client Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import java.rmi. server. UnicastRemoteObject ; import HelloWorld. HelloCallbackRemote ; import HelloWorld. Guy ; import HelloWorld. GuyImpl ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); HelloCallbackRemote obj = ( HelloCallbackRemote ) context. lookup ("ejb :/ HelloCallback / HelloCallbackBean! HelloWorld. HelloCallbackRemote "); Guy aguy = new GuyImpl (args [0]), stub = (Guy ) UnicastRemoteObject. exportobject (aguy,0) ; System.out. println (obj. sayhello (stub )); UnicastRemoteObject. unexportobject (aguy, true ); catch ( Exception e) { System.out. println (e);

41 INSA - ASI InfoRep : EJB 41/65 Les EJB Session avec état (1/6) Description EJB Session avec état (Stateful) Composé d une ou deux interfaces et d une classe métier : Interface de description du contrat pour accès distant (XXRemote.java) Utilisation de l (importation de javax.ejb.remote) juste avant la définition de l interface Interface de description du contrat pour accès local (XXLocal.java) Utilisation de l (importation de javax.ejb.local) juste avant la définition de l interface Classe de définition de la logique métier (XXBean.java) importation de javax.ejb.stateful Utilisation de l avant la définition de la classe Implémentation des interfaces précédentes Ne pas être final

42 INSA - ASI InfoRep : EJB 42/65 Les EJB Session avec état (2/6) Les EJB session avec état Méthodes liées au cycle de suivi de la méthode suivi de la méthode suivi de la méthode suivi de la méthode suivi de la méthode suivi de la méthode predestroy a. extrait du tutoriel de SUN : 3-fcs/doc/EJBConcepts9.html a

43 INSA - ASI InfoRep : EJB 43/65 Les EJB Session avec état (3/6) Côté serveur CounterStatefulLocal.java package Stateful ; import javax.ejb. Local Local public i n t e r f a c e CounterStatefulLocal { p u b l i c i n t count (); CounterStatefulRemote.java package Stateful ; import javax.ejb. Remote Remote public i n t e r f a c e CounterStatefulRemote { p u b l i c i n t count ();

44 INSA - ASI InfoRep : EJB 44/65 Les EJB Session avec état (4/6) Côté serveur CounterStatefulBean.java package Stateful ; import javax.ejb. Stateful Stateful public c l a s s CounterStatefulBean implements CounterStatefulLocal, CounterStatefulRemote { private i n t counter = 0; p u b l i c i n t count () { r e t u r n ++ t h i s. counter ; Compteur session sans état CounterStatelessLocal.class CounterStatelessRemote.class CounterStatelessBean.class

45 INSA - ASI InfoRep : EJB 45/65 Les EJB Session avec état (5/6) Côté client Attention! Pour un EJB Stateful, une session JNDI doit être créée : on ajoute "?stateful lors de la récupération du stub Client.java p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); CounterStatelessRemote stateless = ( CounterStatelessRemote ) context. lookup ("ejb :/ Counter / CounterStatelessBean! Stateless. CounterStatelessRemote "); CounterStatefulRemote stateful = ( CounterStatefulRemote ) context. lookup ("ejb :/ Counter / CounterStatefulBean! Stateful. CounterStatefulRemote? stateful "); System.out. println (" Decompte ( stateless ) : " + stateless. count ()); System.out. println (" Decompte ( stateless ) : " + stateless. count ()); System.out. println (" Decompte ( stateful ) : " + stateful. count ()); System.out. println (" Decompte ( stateful ) : " + stateful. count ()); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

46 INSA - ASI InfoRep : EJB 46/65 Les EJB Session avec état (6/6) Sorties > runclient.sh Decompte (stateless) : 1 Decompte (stateless) : 1 Decompte (stateful) : 1 Decompte (stateful) : 2

47 INSA - ASI InfoRep : EJB 47/65 EJB/JSP (1/6) Archive application J2EE Arborescence des répertoires WebCounter -> WebCounter.ear _ EJBCounter -> EJBCounter.jar _ WebCounterBean.class _ WebCounterInterface.class _ JSPCounter -> JSPCounter.war _ WEB-INF _ web.xml _ index.jsp _ counter.jsp

48 INSA - ASI InfoRep : EJB 48/65 EJB/JSP (2/6) Côté serveur WebCounterInterface.java package EJBCounter ; p u b l i c i n t e r f a c e WebCounterInterface { p u b l i c i n t getcounter (); WebCounterBean.java package EJBCounter ; import javax.ejb. Stateless ; import javax.ejb. Local ; import javax.ejb. Remote Remote ( EJBCounter. WebCounterInterface. class public c l a s s WebCounterBean implements WebCounterInterface { p r i v a t e s t a t i c i n t counter = 0; p u b l i c i n t getcounter () { WebCounterBean. counter ++; r e t u r n WebCounterBean. counter ;

49 INSA - ASI InfoRep : EJB 49/65 EJB/JSP (3/6) Côté client Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import EJBCounter. WebCounterInterface ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); WebCounterInterface counter = ( WebCounterInterface ) context. lookup ("ejb : WebCounter / EJBCounter / WebCounterBean! EJBCounter. WebCounterInterface "); System.out. println (" Decompte : " + counter. getcounter ()); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

50 INSA - ASI InfoRep : EJB 50/65 EJB/JSP (4/6) Archive Web web.xml <? xml version =" 1.0 " encoding="utf -8"?> <!DOCTYPE web - app PUBLIC " -// Sun Microsystems, Inc.// DTD Web Application 2.3// EN" " http: // java.sun.com /dtd /web - app_2_3.dtd "> <web - app> <display - name>archive J2EE</ display - name> <description > Partie Web de ma première application J2EE complète </ description > </web - app>

51 INSA - ASI InfoRep : EJB 51/65 EJB/JSP (5/6) JSP index.jsp <%@ page contenttype=" text / html ; charset=utf -8" %> <! DOCTYPE html PUBLIC " -// W3C // DTD XHTML 1.0 Strict // EN" "http :// /TR/ xhtml1 /DTD /xhtml1 - strict.dtd "> <html > <head > <title >JSP Counter </ title > </head > <body > <h1>une page JSP classique... </h1> </body > </html > Remarque Appel par

52 INSA - ASI InfoRep : EJB 52/65 EJB/JSP (6/6) Appel externe counter.jsp <%@ page contenttype=" text / html ; charset=utf -8" %> <%@ page import =" EJBCounter. WebCounterInterface, javax. naming. InitialContext "%> <%! private WebCounterInterface counter = n u l l ; p u b l i c v o i d jspinit () { t r y { counter = ( WebCounterInterface ) InitialContext. dolookup ( "ejb : WebCounter / EJBCounter / WebCounterBean! EJBCounter. WebCounterInterface "); catch ( Exception e) { e. printstacktrace (); %> <html > <head > <title >JSP Counter </ title > </head > <body > <h1 > Hits : <%= counter. getcounter () %></h1 > </body > </html >

53 INSA - ASI InfoRep : EJB 53/65 Persistance (1/11) Concepts Les EJBs entité (Entity) Le gestionnaire d entités (entity manager) détermine l état de chaque objet : créé mais non persistant (pas lié à un contexte de persistance) persistant détaché (sans lien avec le gestionnaire d entités) supprimé peut être à la charge du conteneur (utilisation direct d un EntityManager ou de l application (création d un EntityManager par l intermédiaire une fabrique -EntityManagerFactory- Le contexte de persistance ensemble d entités persistantes (par défaut dans une base de données relationnelles)

54 INSA - ASI InfoRep : EJB 54/65 Persistance (2/11) Les EJB entité La classe représentant l EJB entité doit Utiliser Posséder un constructeur par défaut en public ou protected Ne pas être final Implémenter Serializable si détaché Être manipulable uniquement via les accesseurs (les attributs sont private ou protected) Posséder une clef primaire : Si simple alors du type : type primitif, classe encapsulant type primitif, String, Date (de java.util ou java.sql) L permet de générer automatiquement cette clef primaire Implémenter hashcode, equals et tostring

55 INSA - ASI InfoRep : EJB 55/65 Persistance (3/11) Cycle de vie 2 2. extrait du tutoriel de SUN : doc/ejbconcepts9.html

56 INSA - ASI InfoRep : EJB 56/65 Persistance (4/11) EJB Entité Name.java package helloworld ; import javax. persistence.*; import java.io. Serializable (name =" names ") public c l a s s Name implements GeneratedValue ( strategy = GenerationType. IDENTITY ) p r i v a t e i n t Column ( unique = true ) p r i v a t e String name ; p u b l i c Name () { t h i s. name = ""; p u b l i c Name ( String name ) { t h i s. name = name ; p u b l i c i n t getid () { r e t u r n t h i s.id; p u b l i c v o i d setid ( i n t id) { t h i s.id = id; p u b l i c String getname () { r e t u r n t h i s. name ;

57 INSA - ASI InfoRep : EJB 57/65 Persistance (5/11) EJB Entité Override p u b l i c boolean equals ( Object o) { i f ( t h i s == o) return true ; i f (o == n u l l getclass ()!= o. getclass ()) r e t u r n f a l s e ; Name that = ( Name )o; i f ( t h i s. name!= n u l l?! t h i s. name. equals ( that. name ) : that. name!= n u l l ) r e t u r n f a l s e ; return true Override p u b l i c i n t hashcode () { r e t u r n t h i s. name!= n u l l? t h i s. name. hashcode () : Override p u b l i c String tostring () { r e t u r n t h i s. name ;

58 INSA - ASI InfoRep : EJB 58/65 Persistance (6/11) EJB Session sans état PersistentHelloBean.java package helloworld ; import javax.ejb. Stateless ; import javax. persistence.*; import java.util. Collection ; import java.util. Iterator Stateless public c l a s s PersistentHelloBean implements PersistentHelloLocal, PersistentHelloRemote PersistenceContext ( unitname =" namelist ") EntityManager em; p u b l i c String sayhello ( String s) { String hello = " Hello " + s + "!"; Collection <Name > namecollection ; em. persist (new Name (s)); namecollection = em. createquery ("from Name n"). getresultlist (); hello += "\ nliste des personnes déjà passées : "; for (Iterator <Name >names=namecollection. iterator (); names. hasnext (); ){ hello += " " + names.next (). getname (); r e t u r n hello ;

59 INSA - ASI InfoRep : EJB 59/65 Persistance (7/11) Association à une BD Tout ORM doit être associé à une BD Extérieure : Oracle, MySQL, PostgreSQL, etc. Embarquée : dans l application J2EE (partie EJB ou web), dans le serveur d application (H2, etc.) Interfacé par JDBC, Hibernate et JTA

60 INSA - ASI InfoRep : EJB 60/65 Persistance (8/11) Définition du contexte de persistance Contexte de persistance : persistence.xml < persistence version ="1.0 " xmlns ="http :// java.sun.com /xml /ns/ persistence " xmlns :xsi="http :// /2001/ XMLSchema - instance " xsi : schemalocation ="http :// java.sun.com /xml /ns/ persistence http :// java.sun.com /xml /ns/ persistence / persistence_1_0. xsd "> <persistence -unit name=" namelist " transaction -type="jta "> <jta -data -source >java : jboss / datasources / namelistds </jta -data -source > <properties > < property name =" hibernate. dialect " value ="org. hibernate. dialect. HSQLDialect "/> <property name=" hibernate. hbm2ddl.auto " value="create -drop "/> </ properties > </ persistence -unit > </ persistence >

61 INSA - ASI InfoRep : EJB 61/65 Persistance (9/11) Archive application J2EE Arborescence des répertoires persistenthello.jar _HelloWorld _ PersistentHelloBean.class _ PersistentHelloLocal.class _ PersistentHelloRemote.class _ Name.class _META-INF _ persistence.xml _ MANIFEST.MF

62 INSA - ASI InfoRep : EJB 62/65 Persistance (10/11) JTA/H2 Utilisation (par exemple) de H2 comme BD embarquée 1 Création d un utilisateur Admin pour administrer JBOSS en mode console Web 2 Création d une Datasource JDBC 3 Activer la Datasource 4 Déployer l archive J2EE Exemple Name : namelist JNDI : java :jboss/datasources/namelistds Driver : h2 Connection URL : jdbc :h2 :/tmp/bd

63 INSA - ASI InfoRep : EJB 63/65 Persistance (11/11) Côté client Client.java import javax. naming. Context ; import javax. naming. InitialContext ; import java.util. Hashtable ; import helloworld. PersistentHelloRemote ; p u b l i c c l a s s Client { p u b l i c s t a t i c v o i d main ( String [] args ) { t r y { Hashtable jndiproperties = new Hashtable (); jndiproperties.put ( Context. URL_PKG_PREFIXES, "org. jboss.ejb. client. naming "); Context context = new InitialContext ( jndiproperties ); PersistentHelloRemote obj = ( PersistentHelloRemote ) context. lookup ("ejb :/ PersistentHello / PersistentHelloBean! helloworld. PersistentHelloRemote "); System.out. println (obj. sayhello (args [args.length -1]) ); catch ( Exception e) { System.out. println (e); e. printstacktrace ();

64 INSA - ASI InfoRep : EJB 64/65 Les EJB message Description 3 Classe représentant l EJB doit implémenter l interface javax.jms.messagelistener (donc implémenter la méthode public void onmessage(message m)) utiliser l ne pas être final 3. extrait du tutoriel de SUN : doc/ejbconcepts9.html

65 INSA - ASI InfoRep : EJB 65/65 Références Programmation J2EE, Conteneurs J2EE, servlets, JSP et EJB : S. Allamaraju, K. Avedal, R.Browett, J. Diamond, J. Griffin, M. Holden, A. Hoskinson, R. Johson, T. Karsjens, L. Kim, A. Longshaw, T. Myers, A. Nakimovsky, D. O Connor, S. Tyagi, G. Van Damme, G. Van Huizen, M. Wilcox, S. Zeiger Eyrolles - ISBN : Enterprise JavaBeans : Richard Monson-Haefel O Reilly 3ème édition - ISBN JBoss 3.0 deployment and Administration Meeraj Moidoo Kunnumpurath Wrox - ISBN

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 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étail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

Remote Method Invocation (RMI)

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

Plus en détail

Compte Rendu d intégration d application

Compte 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étail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

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

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ébert.eheb@yahoo.fr

Plus en détail

Java Naming and Directory Interface

Java 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étail

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) 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étail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

RMI le langage Java XII-1 JMF

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

Plus en détail

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

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

Plus en détail

Java - RMI Remote Method Invocation. Java - RMI

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

Plus en détail

EXA1415 : Annotations JavaEE : @Local, @Stateful

EXA1415 : Annotations JavaEE : @Local, @Stateful EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération

Plus en détail

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

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

Plus en détail

J2EE - Introduction. Développement web - Java. Plan du chapitre

J2EE - Introduction. Développement web - Java. Plan du chapitre Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Remote Method Invocation en Java (RMI)

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

Plus en détail

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

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

JOnAS Day 5.1. Clustering

JOnAS 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étail

2 Chapitre 1 Introduction

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é

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

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

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

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

Plus en détail

Composants logiciels Exemples : Java Beans, Enterprise Java Beans

Composants logiciels Exemples : Java Beans, Enterprise Java Beans Composants logiciels Exemples : Java Beans, Enterprise Java Beans Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Introduction : évolution

Plus en détail

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

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 (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction La gestion de la persistance avec et la gestion de persistance Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com

Plus en détail

Architecture applicative et Cartographie

Architecture applicative et Cartographie Architecture applicative et Cartographie Mineure SOA Idir AIT SADOUNE idir.aitsadoune@supelec.fr Programme 7 nov. 14 nov. 21 nov. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude

Plus en détail

EJB. Karim Bouzoubaa Issam Kabbaj

EJB. Karim Bouzoubaa Issam Kabbaj EJB Karim Bouzoubaa Issam Kabbaj Problématique html jsp Objets java jdbc table Pour accéder aux données : Établir une connexion avec la BD Envoyer une requête Traiter la requête Assurer l'intégrité Or

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 10 L API JPA et la

Plus en détail

Architecture Orientée Service, JSON et API REST

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

Plus en détail

Une introduction à la technologie EJB (2/3)

Une introduction à la technologie EJB (2/3) Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce

Plus en détail

Mise en œuvre des serveurs d application

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

Plus en détail

Applications des patrons de conception

Applications des patrons de conception MAI NFE103 Année 2013-2014 Applications des patrons de conception F.-Y. Villemin, CNAM! http://deptinfo.cnam.fr/enseignement/cyclespecialisation/mai/index.html Plan! Java Beans*! Patron "Modèle-vue-contrôleur"

Plus en détail

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

Développement, déploiement et sécurisation d'applications JEE JBoss Développement, déploiement et sécurisation d'applications JEE Franck SIMON Résumé Ce livre sur JBoss s'adresse aux développeurs Java quotidiennement confrontés au développement et au déploiement

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web

Plus en détail

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

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion Projet But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables événements Serveur de diffusion 1 JMS Java Message Service PHAN Quang-Hai ISTR 04/05/2004

Plus en détail

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

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

Introduction à la plateforme J2EE

Introduction à la plateforme J2EE Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting Oussama.essefi@expert-consulting.biz Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi

Plus en détail

Rapport de projet de fin d études

Rapport de projet de fin d études TELECOM SUDPARIS VAP : ARCHITECTE DE SERVICES EN RESEAU Rapport de projet de fin d études Comparaison et évaluation de serveurs d'applications Java Sarafou BALDE Muqiu ZHENG Encadrante: Mme Sophie CHABRIDON

Plus en détail

Les architectures 3-tiers Partie I : les applications WEB

Les architectures 3-tiers Partie I : les applications WEB Les architectures 3-tiers Partie I : les applications WEB 1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... 1 Evolutions logicielles Des objets aux

Plus en détail

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

Dis papa, c est quoi un bus logiciel réparti? Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Java pour le Web. Cours Java - F. Michel

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

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

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

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello pierreyves.gibello@experlog.com Mise à jour : 30 Septembre 2004

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello pierreyves.gibello@experlog.com Mise à jour : 30 Septembre 2004 J2EE Java2 Enterprise Edition Pierre Yves Gibello pierreyves.gibello@experlog.com Mise à jour : 30 Septembre 2004 Ce document est couvert par la licence Creative Commons Attribution ShareAlike. This work

Plus en détail

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE Première coupe : CREATION : 2010/04/22 MISE A JOUR : 2010/07/01 GLASSFISH:3.0.1 NETBEANS : 6.8 Ce TP de découverte de la plateforme Java EE est une traduction adaptée de «Your First Cup :An Introduction

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

[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étail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Utilisation de Jakarta Tomcat

Utilisation de Jakarta Tomcat ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1 ISI 1022 : Déploiement d applications Web Une application

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

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

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Java EE. Java Enterprise Edition. Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011)

Java EE. Java Enterprise Edition. Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011) Java EE Java Enterprise Edition Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011) Ce document est couvert par la licence Creative Commons Attribution-ShareAlike. This

Plus en détail

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

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

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Evaluation Idéopass Cahier d analyse technique

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

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET Apache Tomcat 6 Guide d'administration du serveur Java EE sous Windows et Linux Étienne LANGLET Résumé Ce livre sur Apache Tomcat 6 s adresse à toute personne appelée à mettre en oeuvre ce serveur sous

Plus en détail

Projet gestion d'objets dupliqués

Projet 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étail

Conception de serveurs d'applications ouverts

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

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

TP1 : Initiation à Java et Eclipse

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

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage 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étail

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 10 L atelier MyEclipse Eclipse facilite considérablement le développement Java en équipe. Son puissant éditeur, associé à des fonctionnalités de complétion de

Plus en détail

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation

Plus en détail

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

Plus en détail

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

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Introduction à Java. Philippe Genoud. Philippe.Genoud@imag.fr. http://www.inrialpes.fr/helix/people/genoud/ensjava

Introduction à Java. Philippe Genoud. Philippe.Genoud@imag.fr. http://www.inrialpes.fr/helix/people/genoud/ensjava Introduction à Java Philippe Genoud Philippe.Genoud@imag.fr http://www.inrialpes.fr/helix/people/genoud/ensjava http://membres-liglab.imag.fr/genoud/ensjava/m2cci/ 1 JAVA c'est quoi? Une technologie développée

Plus en détail

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

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

Intergiciel - concepts de base

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

Plus en détail

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI Institut Galilée Année 2014-2015 TP WEBSERVICES Programmation et Logiciels sûrs Master 2 PLS Résumé Ce TP s appuie sur le cours de C. Fouqueré traitant des Environnements et Langage Évolués, ainsi que

Plus en détail

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

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 Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation

Plus en détail

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

Le passage à l échelle de serveur J2EE : le cas des EJB Le passage à l échelle de serveur J2EE : le cas des EJB Sylvain Sicard, Noël De Palma, Daniel Hagimont CFSE 4 5-8 Avril 2005 LSR 1 Plan de la présentation 1. Architecture de serveur J2EE en grappe 2. Problématique

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

TP Programmation Java / JDBC / Oracle

TP Programmation Java / JDBC / Oracle TP Programmation Java / JDBC / Oracle 1. Connectivité avec une base de données Oracle au travers de l interface JDBC L interface de programmation (API) JDBC (Java DataBase Connectivity) est une librairie

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

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

Plus en détail

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

Java DataBaseConnectivity

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

Plus en détail

Florent.BENOIT@bull.net. JOnAS & EasyBeans EMN 29 Novembre 2007

Florent.BENOIT@bull.net. JOnAS & EasyBeans EMN 29 Novembre 2007 Florent.BENOIT@bull.net JOnAS & EasyBeans EMN 29 Novembre 2007 # 1 BULL 2007 Plan Présentation Plate-forme Java EE TM 5 Serveur d'applications JOnAS / EasyBeans EJB 3.0 (Description, Nouvelles fonctionnalités)

Plus en détail

2 chapitre Groupe Eyrolles, 2007

2 chapitre Groupe Eyrolles, 2007 chapitre2 Architecture de l application SOMMAIRE Dans le précédent chapitre, nous avons décrit le comportement souhaité de la future application de commerce électronique de la société YAPS. Vous allez

Plus en détail

Programmer 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) 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étail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

Java c est quoi? Java pourquoi?

Java 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étail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation 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étail

Cours 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. 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étail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO

Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO L Y O N MASTERE SPECIALISE EN INFORMATIQUE Année 2003/2004 Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO Par Pierre-Henri FONTANAUD Soutenu le 23 Novembre 2004

Plus en détail

Programmation Web Avancée Introduction aux services Web

Programmation Web Avancée Introduction aux services Web 1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Programmation répartie RPC & RMI

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

Plus en détail

Applications et Services WEB: Architecture REST

Applications et Services WEB: Architecture REST Applications et : Erick Stattner Laboratoire LAMIA Université des Antilles et de la Guyane France erick.stattner@univ-ag.fr Guadeloupe 2014-2015 Erick Stattner Applications et : 1 / 90 Description du cours

Plus en détail