EJB3.1/Java EE 6. S. Rosmorduc, Conservatoire National des Arts et Métiers (avec des vrais bouts de transparents de Marc Le Bihan dedans)

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

Download "EJB3.1/Java EE 6. S. Rosmorduc, Conservatoire National des Arts et Métiers (avec des vrais bouts de transparents de Marc Le Bihan dedans)"

Transcription

1 EJB3.1/Java EE 6 S. Rosmorduc, Conservatoire National des Arts et Métiers (avec des vrais bouts de transparents de Marc Le Bihan dedans) 1

2 Bibliographie et sources Oracle Java EE 6 tutorial A. Goncalves, Beginning Java EE6 Cours GLG Marc Le Bihan 2

3 Plan Rappels d'architecture Définition des EJB Types d EJB Interfaces d EJB Cycle de vie Utilisation des EJB Déploiement Concurrence Transactions Mécanismes sous-jacents 3

4 Rappels d'architecture Couche Présentation (Web, Swing ) Couche Métier Couche Accès aux données (DAO) 4

5 Rappels d'architecture Couche Métier façade1 = service façade2 = service classe métier classe métier classe métier 5

6 Rappels d'architecture Les «services» vont servir de façade pour l accès au couche métier Ils sont organisés selon les use-case Permettent d isoler la couche métier de son interface : couplage plus faible, meilleure sécurité En JEE, ils sont implantés sous forme d EJB Ils peuvent être répartis (remote beans) : leur interface permet de contrôler les opérations possibles. 6

7 Définition des EJBs Objets Gérés par le serveur applicatif créés et partagés par le serveur applicatif récupération par appels JNDI ou Injection de dépendance le cycle de vie dépend du type de bean Vous n appellerez jamais new pour créer un EJB (sauf éventuellement pour les tests)!!! Objets façade pour les couches métier 7

8 Caractéristiques des EJBs objet décorés fournissant des services supplémentaires accès distant gestion de transaction événements liés au cycle de vie injection de dépendances 8

9 Contraintes ne créent pas de threads pas de champ statique méthodes exportées non final classe non final pas de méthode finalize() (anti-pattern, de toutes façons) 9

10 Types d'ejb Stateless fréquemment utilisé comme façade d accès aux données Stateful Singleton Message-driven Bean (plus tard) 10

11 EJB Stateless Pas d état : on ne peut pas garder d information dans les variables d instance du bean Annotation Très souvent utilisé pour l accès aux données Injection d EntityManager public class ForumBean EntityManager em;! public Message addmessage(message newmessage) { em.persist(newmessage); return newmessage; }! public Message getmessage(long id) { return em.find(message.class, id); }! public List<MessageList> getallmessages() { return em.createquery( "select m from Message m").getresultlist(); } } 11

12 L EJB sans état (Stateless bean) Parce qu il est sans état, le stateless bean ne devrait pas comporter de variables membres, sinon en considérant ceci: Elles ont des chances de ne plus avoir de contenu à l appel suivant. et il y a un risque qu elles aient encore le contenu qu elles avaient à l appel précédent. 12

13 L EJB sans état peut être initialisé Il reste possible de procéder à son initialisation dans une méthode porteuse de l Et un équivalent «destructeur» pourra être défini dans une méthode 13

14 n existe pas 1. création, constructeur 2. injection de dépendance prêt Cycle de vie et annotations Le serveur maintient un pool de Stateless beans puis par l injection de dépendances Un nouveau bean est initialisé par son constructeur, puis par l appel de la méthode annotée (si elle existe) quand le bean va être libéré par le serveur, il appelle la méthode annotée important: si vous voulez initialiser votre bean en accédant à des valeurs de champs fixées par injection, il faut le faire dans la 14

15 EJB Stateful Bean à état, sera généralement stocké en session une fois créé Doit être Serializable (sinon, pas de passivation possible) Exemple typique: panier à provisions 15

16 Cycle de vie et annotations 1. création, constructeur 2. injection de n existe pas passif L appel d une méthode annotée demande la suppression du bean 16

17 public class BasketBean implements Serializable { private HashSet<Product> products= new HashSet<Product>(); public void addproduct(product p) { //... } public void doorder() { // Sauve la commande dans la base de données } l appel de cette méthode déclenche la destruction du bean (@Remove) 17

18 Singleton Bean qui n existe qu en un seul exemplaire sur un serveur (application répartie: éventuellement un singleton par serveur) Exemple: catalogue chargé en mémoire, conversation entre utilisateurs (non permanente) Attention: accès concurrents très probables. 18

19 n existe pas 1. création, constructeur 2. injection de dépendance prêt Cycle de vie et annotations Le serveur propose toujours la même instance d un bean singleton. L demande que le bean soit créé dès le lancement de l application Des annotations permettent de gérer les accès concurrents 19

20 Singleton et accès concurrent Les méthodes d un bean singleton seront sûrement appelées simultanément par plusieurs threads Il importe donc de gérer la concurrence C est possible simplement grâce aux annotations Lock On distingue l accès en lecture (parallélisable) et en écriture (bloquant) 20

21 /** * Catalogue stocké en mémoire. * pas follement pratique: l'accès en BD est plus * public class InMemoryCatalog ProductService productservice;! public public void initcatalog() {!! } products = new public void rafraichircatalogue() { initcatalog(); public Collection<Product> getproducts() { return products; } 21 Singleton et accès concurrent optionnel (CONTAINER par défaut) injection de l accès aux données non parallèle parallèle

22 Singleton et accès TAINER) : gestion automatique par le ) : gestion : méthode de lecture. méthode d écriture, non parallélisable. Valeur par défaut. Quand une méthode d écriture est en cours d exécution, elle interdit l appel de toute autre méthode (lecture ou écriture) On peut appeler simultanément autant de méthode de lecture qu on veut. 22

23 Interfaces d'accès Les beans ont été conçus pour pouvoir construire des systèmes répartis => accès distant On peut avoir plusieurs types d interface pour un bean Aucune (équivaut à «local» uniquement) Local : interface utilisable au sein de la même application que celle qui héberge le bean Remote : interface utilisable à distance différences avec RMI paramètres des méthodes remote LocalBean 23

24 Exemple: un bean d accès aux produits Dispose de trois méthodes getproducts() : renvoie la liste des produits addproduct(product p) : ajoute un nouveau produit removeproduct(product p) : supprime un produit de la liste On veut que le client à distance puisse lister les produits, mais pas les supprimer ou ajouter 24

25 Exemple public interface ProductLocal extends ProductRemote { void addproduct(productdto p); void removeproduct(productdto p); public interface ProductRemote { public Collection <ProductDTO> getallproducts(); public class ProductService implements ProductLocal, ProductRemote public void addproduct(productdto p) { //... }! 25

26 @Local interface utilisée pour l accès interne à l application 26

27 @Remote Interface utilisée pour les accès distants Les arguments et les valeurs retournées par les méthodes de l interface Remote doivent être Serializable. 27

28 Et si on ne dit rien? Un EJB sans annotation locale ou remote est considéré comme local. Note importante: quand on a une interface locale ou remote, seules les méthodes de cette interface sont des méthodes EJB (transactionnelles, entre autres). Les autres méthodes sont «normales» Quand on n a pas d interface déclarée, l interface locale correspond à l ensemble des méthodes publiques. 28

29 Utilisation des beans Nombreuses manières de faire référence à des beans En JSF injection de dépendance Entre beans règles Depuis une application cliente JNDI Depuis une Servlet 29

30 Accès depuis un Managed Bean JSF Dans l architecture JSF, les clients des EJB sont essentiellement les managed beans Très simple: on place l ejb comme variable d instance et on utilise l injection de dépendance. Annotation 30

31 Accès depuis un Managed public class CreatePersonBean PersonService personservice; private String name; private int age; private Person person; // Or DTO : Data transfer Object public void createperson() { person= personservice.createperson(name, age); name= ""; age= 0; } public String getname() { return name; } EJB 31

32 Accès depuis un Managed Bean JSF: public class CreatePersonBean PersonService personservice; EJB private String name; private int age; private Person person; // Or DTO : Data transfer Object public void createperson() { person= personservice.createperson(name, age); name= ""; age= 0; } public String getname() { return name; } 32

33 Injection et interfaces Remote et Local Pour l injection, le type à utiliser est le nom de l interface, pas celui de la private ProductLocal productservice; 33

34 Entre EJB On peut utiliser l injection de dépendance entre EJB On utilise 34

35 Accès par une application Une application texte ou graphique peut se connecter à un bean Le bean doit avoir une «interface distante» (similaire à ce qui se fait pour les RMI) L application doit avoir un nombre assez conséquent de bibliothèques du serveur applicatif dans son classpath. Il existe une application «lanceur» nommée appclient. On peut utiliser l injection, ou se connecter à JNDI ATTENTION : l'application distante doit avoir connaître (avoir dans son classpath) l'interface Remote du bean (pas le bean lui-même) 35

36 JNDI Java Naming and Directory Interface Fournit un accès unifié à plusieurs services d annuaires (DNS, LDAP...) Annuaire: associe des données (objets) avec un nom L accès JNDI est fourni par le serveur applicatif Derrière l injection de dépendance, on a quand même JNDI 36

37 Récupérer un Bean avec JNDI import javax.naming.*; Context c= new InitialContext(); String beanname= "java:app/myapp/basketbean"; BasketBean b= (BasketBean) c.lookup(beanname); Si le bean est Stateful, crée un nouveau bean Si le bean est stateless, peut réutiliser un bean existant Si le bean est un singleton, renvoie le singleton. 37

38 Coordonnées du serveur JNDI En local, données fournies par appclient Sinon (pour GlassFish) : Properties properties= new Properties(); properties.setproperty("java.naming.factory.initial", "com.sun.enterprise.naming.serialinitcontextfactory"); properties.setproperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming"); properties.setproperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.jndistatefactoryimpl"); properties.setproperty("org.omg.corba.orbinitialhost", "localhost"); properties.setproperty("org.omg.corba.orbinitialport", "3700"); initialcontext = new InitialContext(properties); 38

39 Noms JNDI des beans (1) Récemment standardisé Voir trace de glassfish pour les noms des beans Pour un bean dans une autre application web, utiliser le nom «global» java:global/app/module/bean Pour une application construite à partir de plusieurs war, jars: pour accéder à des beans dans d autres modules d une même application utiliser le «nom d application» : java:app/module/bean Pour des beans dans le même module, utiliser le nom de module: java:module/bean APP= nom de l appli; MODULE = nom du module; Bean= nom du bean (nom de la classe) 39

40 Noms JNDI des beans (2) Si on veut utiliser une interface particulière, on peut ajouter!interface après le nom de la classe. ex. : java:app/myapp/basketbean!myshop.business.basketremoteif Utilise l interface remote nom complet, y compris package. Voir EJB_FAQ.html#What_is_the_syntax_for_portable_glo bal_ pour plus de détails. 40

41 Accès aux EJB depuis une Servlet Stateless beans et singletons peuvent être injectés dans la Servlet en utilisant l Dans les servlets, il faut récupérer les Stateful beans «manuellement» en utilisant JNDI, puis les stocker en session en utilisant session.setattribute() 41

42 accès à un bean session depuis une servlet Le public class Basket { // Product is serializable! private List<Product> content= new ArrayList<Product> ();! public void add(product p) { content.add(p); }... 42

43 accès à un bean session depuis une = "AddToBasketServlet", urlpatterns = {"/addtobasket"}) public class AddToBasketServlet extends HttpServlet {... } private Basket lookupbasketbean(httpservletrequest request) { HttpSession session = request.getsession(); if (session.getattribute("basket") == null) { try { Context c = new InitialContext(); Basket b = (Basket) c.lookup("java:global/sessioninviewtest/basket"); session.setattribute("basket", b); } catch (NamingException ne) { } Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception", ne); throw new RuntimeException(ne); } } return (Basket) session.getattribute("basket"); Si le bean n est pas en session, le créer avec JNDI. 43

44 Déploiement 44

45 Concurrence création manuelle de Threads : @Timeout 45

46 L'EJB Timer (1) Pour invoquer périodiquement un EJB, il n'existait avant la version EJB 3.1 que des solutions fastidieuses, telles que : Création d'une servlet qui démarre avec le serveur d'application, puis crée des java.util.timer, et lorsque ces timers arrivent à échéance invoquent la méthode d'ejb voulue Le serveur d'application peut à présent prendre en charge seul ces méthodes à l'exécution programmée dans le temps. Le timer est souvent attaché à un Singleton, chargé dès le déploiement (annoté 46

47 EJB Timer (2) Pour programmer une exécution: placée sur une méthode prend une expression «cron» en paramètre pour définir son déclenchement. par défaut, hour, minute, second sont à 0. dayofmonth="4", hour="*" : Toutes les heures le 4ème jour de chaque mois. minute=*/5 : toutes les cinq minutes. dayofweek="1, 3,5": lundi, mercredi et vendredi. la méthode cible ne doit pas avoir public void sauvegarde() { } 47

48 public class MaDemoTimer implements Serializable{ souvent singleton. Startup=> créé dès le déploiement du bean private int compteur= 0; private Logger logger = public void myinit() { logger.severe("init"); } = "*", minute = "*", second = "*/5", persistent = true) public void sauverdonnees() { logger.severe("on sauve les données "+ new Date()+ " compteur "+ (compteur++)); } 48

49 EJB Timer prend des paramètres constants. Lorsque la planification à appliquer n'est connue qu'à l'exécution, il faut utiliser un TimerService. C'est une ressource que l'on charge avec des expressions temporelles : cron, ou bien en dates classiques. 49

50 Timer programmé On crée un timer en utilisant la classe TimerService (qu on injecte) Dans la classe où on crée le timer, on cherche une méthode annotée Cette méthode est lancée selon la fréquence indiquée 50

51 Timer public class ExempleTimerService TimerService timerservice; private Logger logger= Logger.getLogger("TimerProgramme"); private Timer timer; // pour annuler le timer si besoin // Installe le timer pour un certain intervalle de temps. public void installertimer(long intervalle) { canceltimer(); timer= timerservice.createintervaltimer(1000, intervalle, new TimerConfig()); } public void canceltimer() { if (timer!= null) {timer.cancel();timer= null;} } public void sauvegardeprogrammee() { logger.severe("sauvegarde bis "+ (compteur++) + " a "+ new Date()); } 51

52 Note à propos de Glassfish Par défaut, le timer est «persistante» : il se relancera, même en cas d arrêt du serveur. Il est capable de migrer sur un autre serveur en cas de Load-balancing En cas d erreur de configuration, les timers persistants laissent des fichiers de sauvegarde incorrects dans Glassfish Donc, en cas de problème : soit désactiver la persistance = "*", persistent = false) soit effacer le fichier incriminé : glassfish/domains/domain1/generated/ejb/ejb-timer-service-app 52

53 Timer programmé Quand on crée l'objet timer en appelant timerservice.createintervaltimer(10, intervalle, new TimerConfig()); le timer démarre, et la méthode est lancée (périodiquement ou une fois, selon le timer créé) Il est possible de sauver l objet timer dans un fichier ou une BD en le sérialisant (on sauve la valeur renvoyée par timer.gethandle()). par défaut, le timer est persistant quand il est lancé: si on arrête le serveur JEE, le timer se relancera automatiquement. 53

54 public class StartTimerBean private long private ExempleTimerService timerservice; Exemple de Managed Bean pour le timer précédent } public void demarrertimer() { timerservice.installertimer(intervalle); } public void arretertimer() { timerservice.canceltimer(); } public long getintervalle() { return intervalle; } public void setintervalle(long intervalle) { this.intervalle = intervalle; } <h:form> <p>intervalle : <h:inputtext value="#{starttimerbean.intervalle}"/></p> <h:commandbutton value="démarrer" action="#{starttimerbean.demarrertimer()}"/> <h:commandbutton value="arrêter" action="#{starttimerbean.arretertimer()}"/> </h:form> 54 JSF

55 Gestion de transactions rappels TransactionManagement Annotations disponibles REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORT, NOT_SUPPORTED, NEVER 55

56 Le problème des transactions transfert entre deux comptes en banque: compte1.retirer(1000) compte2.deposer(1000) En BD: update compte set solde= solde where id= 1 update compte set solde= solde where id= 2 Que se passe-t-il si l opération est interrompue entre les deux étapes???? => les deux opérations doivent, ou toutes les deux réussir, ou toutes les deux échouer 56

57 Transactions Définition opération informatique cohérente composée de plusieurs tâches unitaires implantent les propriétés ACID: atomique cohérente isolée (plus ou moins) durable mécanisme de base dans SQL : commit() rollback() start transaction() 57

58 Transaction : le problème opération technique au niveau SQL (accès aux données) au niveau logique, la délimitation des transaction correspond plutôt à la logique applicative (suite d opération cohérente)!! les EJB permettent de replacer les transactions au «bon» niveau 58

59 Transactions et EJB Java Transaction API Par défaut, toutes les méthodes qui font partie de l interface d une EJB sont transactionnelles Quand l interface utilisateur appelle une méthode EJB, on démarre une transaction; la fin de la méthode correspond au commit(). S interface naturellement avec JPA Pas besoin d ouvrir ou fermer une transaction, c est fait automatiquement par le conteneur 59

60 Annotation devant une méthode d un EJB: modifie son comportement transactionnel généralement, la question est la suivante: une méthode f() transactionnelle appelle une méthode g(), elle aussi transactionnelle que va-t-il se passer? g() va-t-elle s exécuter dans la transaction démarrée par f()? quel suspense! 60

61 Valeurs possibles TransactionAttributeType.REQUIRED: s il y a une transaction en cours, exécute la méthode dans cette transaction. Sinon, crée une nouvelle transaction TransactionAttributeType.REQUIRES_NEW: crée une nouvelle transaction pour cet appel TransactionAttributeType.MANDATORY: exception s il n y a pas déjà une transaction en cours TransactionAttributeType.SUPPORTS: ne crée pas de transaction, mais s exécute dans le cadre de celle qui est en cours si elle existe. TransactionAttributeType.NEVER: erreur si dans transaction TransactionAttributeType.NOT_SUPPORTED: s exécute en dehors du contexte transactionnel en cours. 61

62 public class PanierService EntityManager em;! private List<ProduitDTO> produits = new public void addproduit(produitdto dto) { produits.add(dto); }! // l'annotation ci-dessous est inutile (valeur par public void sauvercommande() { //... construit la commande à partir des produit //... appelle em.persist() Commande c = CommandeHelper.construireCommande(produits); em.persist(c); } } 62

63 Exemple (suite) addproduit : TransactionAttributeType.SUPPORTS ne touche pas à la base de données, et peut donc ne pas être transactionnel si on l appelle dans le cadre d une transaction, utilise celle-ci sauvercommande: TransactionAttributeType.REQUIRED va forcément s exécuter dans le cadre d une transaction. 63

64 Transactions Concrètement, les transactions agissent sur des connections fournies par les Datasources que le serveur d application a sous sa garde. Agir sur les connections pour débuter une transaction n est pas nécessaire, le serveur d application s en charge. Le commit advient de lui-même lorsque le service qui a débuté une transaction s est exécuté intégralement et a su composer avec d autres services Sans avoir reçu de notification d abandon. Sans s être retrouvé dans une situation d annulation. De sorte que dans un service, on ne s occupe que de notifier les situations de rollback. 64

65 Exceptions Systèmes: sur initiative du serveur d application et dans des situations «sévères». Les exceptions issues de RuntimeException, RemoteException, et EJBException. Ce sont des exceptions système qu il n est pas attendu que nous levions nous-mêmes 65

66 Exceptions applicatives Les exceptions non système peuvent être annotées et alors elles provoqueront l annulation de la transaction en cours si elles sont levées par le service. Attention: prendre cette décision pour la classe d exception elle-même est brutal. C est peut-être une décision à laisser au service? 66

67 Notification d abandon En ajoutant à l EJB session la variable membre et la public class MonBean private SessionContext sessioncontext; Une méthode de service de ce bean pourra annuler une transaction en cours par un: sessioncontext.setrollbackonly(true); 67

68 Mécanismes sousjacents Quand on appelle une méthode d EJB, comment le système peut-il décider de commencer/terminer une transaction? On utilise le pattern Décorateur avec un Proxy On génère une classe de même interface que le Bean, qui appelle le bean, mais «enrobe» les appels de méthodes dans le code nécessaire au traitement de la transaction Pour ça classe Proxy : permet d implanter par programme java une interface quelconque (c est du java standard). Fonctionne seulement s il y a une interface Local ou Remote explicite. Héritage et synthèse de code : on crée le bytecode d une nouvelle classe (bibliothèque ASM), qui étend la classe d origine (d où l interdiction de final). 68

69 Pour résumer... un exemple de C(RUD) en JSF+EJB (+JPA) Base de données de Dvd Contrôle : un managed bean CreateDvdBean Couche métier : un Stateless Bean DvdService Accès aux données : JPA (et le bean DvdService) 69

70 on ajoute JSF 70

71 Dvds la suite Noter le découpage en packages On crée la base de données 71

72 Ajout d une Persistence Unit (pour JPA) 72

73 Création du modèle (réduit à une classe ici) 73

74 L EJB d accès aux Dvd (on pourrait faire deux EJB: un de bas niveau (DAO), l'autre orienté façade pour l'interface graphique 74

75 Le managed bean pour la création et sa JSF 75

76 Note sur la valeur de retour de l'action return "montrerdvd?faces-redirect=true&id=" +id; faces-redirect => redirection (on charge une nouvelle page) id= : cette page va afficher le DVD créé 76

77 Managed Bean de visualisation 77

78 Injection de paramètres Long id; injecte la valeur de param.id dans id ne fonctionne que sur FacesContext.getCurrentInstance().getExternalContext() permet d avoir accès aux paramètres comme avec une servlet Sinon, on peut injecter les valeurs à partir de la JSF : <f:metadata> <f:viewparam name="id" value="#{dvd.id}"/> </f:metadata> 78

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en dé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

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

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

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

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

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

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

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

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

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

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

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

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

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

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

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

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

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en dé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

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

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

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

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

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

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

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

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

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité Présentation du cours Sécurité dans Java EE Université de Nice - Sophia Antipolis Richard Grin Version 0.17 17/9/13 Ce cours montre comment sécuriser une application Java EE : réserver l accès de pages

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

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

JOnAS Day 5.1. Outils de développements

JOnAS Day 5.1. Outils de développements JOnAS Day 5.1 Outils de développements Agenda Introduction Plugin Eclipse (JOPE) Plugin NetBeans (JOnbAS) Cargo 2 Bull, 2009 JOnAS Day 5.1 Objectifs - Réduire les temps de développement - Construction

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

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

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

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

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

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

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

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

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

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

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques Application statique Tolérance aux Fautes des Grappes d Applications J2EE Sara Bouchenak Sacha Krakowiak, Noël de Palma, Stéphane Fontaine Projet SARDES INRIA IMAG CFSE'4, 6-8 avril 2005 Tolérance aux

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

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

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

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14 Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Serveur d'application à la juste taille

Serveur d'application à la juste taille Serveur d'application à la juste taille 18 Mars 2010 Benoit.Pelletier@bull.net Plan Contexte JOnAS 5, plate-forme de convergence JavaEE/OSGi Caractéristiques essentielles pour le Cloud Computing & l'autonomic

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

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

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

Applet pour visualiser les variables «automate» notifiées

Applet pour visualiser les variables «automate» notifiées Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage

Plus en détail

Accès aux bases de données

Accès aux bases de données 13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.

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

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Guide de l utilisateur. Synchronisation de l Active Directory

Guide de l utilisateur. Synchronisation de l Active Directory Guide de l utilisateur Synchronisation de l Active Directory Juin 2013 Guide de l utilisateur de Synchro AD de TELUS L outil Synchro AD doit être téléchargé dans le contrôleur de domaine de votre entreprise.

Plus en détail

TD sur JMS ---- 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

TD sur JMS ---- 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS? TD sur JMS ---- Questions de cours : 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS? MOM : Message Oriented Middleware Intergiciels orientés Messages

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

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

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

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail