Informatique Répartie
|
|
- Emmanuelle Primeau
- il y a 8 ans
- Total affichages :
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 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailCré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étailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailCompte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Plus en détail1. 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étailArchitecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr
Plus en détailJava Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailWeb 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étailRMI 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étailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailJava - 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étailEXA1415 : 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étailJava RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
Plus en détailJ2EE - 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étailTP 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étailRemote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
Plus en détailLa 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étailJOnAS Day 5.1. Clustering
JOnAS Day 5.1 Clustering Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication
Plus en détail2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailEnvironnements 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étailTutoriel 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étailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailComposants 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étail24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Plus en détailLa 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étailArchitecture 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étailEJB. 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étailEuropa. 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étailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailUne 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étailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailApplications 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étailDé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étailEuropa. 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étailProjet. 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étailAuto-é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étailIntroduction à 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étailRapport 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étailLes 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étailDis 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étailDé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étailJava 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étailJOnAS 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étailRN2-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étailJ2EE. 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étailPremiè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étailConnexion à 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étailServeur 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]
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étailLa 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étailUtilisation 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étailAvant-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étailRefonte 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étailApplication 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étailGestion 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étailJava 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étailComposants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Plus en détailPlan. 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étailEvaluation Idéopass Cahier d analyse technique
Evaluation Idéopass Cahier d analyse technique Version 1 GMSIH 374, rue de Vaugirard 75015 Paris. Tel : 01 48 56 72 70. Fax : 01 48 56 07 70 Auteur(s) du document : Contrôle Qualité GMSIH Date : 17/03/2005
Plus en détailProgrammation 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étailWEBSERVICES. 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étailApache 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étailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailConception de serveurs d'applications ouverts
Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application
Plus en détail4. 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étailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailGroupe 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étailCOMPRENDRE 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étailPROGRAMMATION 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étailCours 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étailIntroduction à 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étailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailCedric 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étailIntergiciel - concepts de base
Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques
Plus en détailTP 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étailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailLe 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étailOpenPaaS 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étailCours 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étailTP 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étailProgrammation 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étailJavaServer 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étailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailFlorent.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étail2 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étailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailJava 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étailJava c est quoi? Java pourquoi?
Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle
Plus en détailVulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailIntroduction 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étailTP3. 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étailApplication 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étailConception 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étailProgrammation 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étailProgrammation répartie RPC & RMI
Programmation répartie RPC & RMI Plan du cours Introduction Définitions Problématiques Architectures de distribution Distribution intra-applications Notion de processus Programmation multi-thread Distribution
Plus en détailApplications 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