Introduction Java 2 Enterprise Edition EJB : Enterprise Java Bean Un modèle de programmation pour des composants - distribués (accessibles à distance) - couplés à un système de sauvegarde de données (SGBD, ...) Lionel Seinturier Une spécification (Sun) Université Pierre & Marie Curie - Java - servlet - JDBC - beans 9/9/04 1 Lionel Seinturier philosophie WORA (Write Once, Run Everywhere) étendre le comportement d'un serveur Web intéragir avec des SGBD composants prêt à l'emploi J2EE 2 Introduction EJB (EJB 2.1, bientôt 3.0) Dans la lignée de [email protected] J2EE java.sun.com/ejb Lionel Seinturier Introduction : Enterprise Java Bean Architecture 3 tiers Serveur d'applications présentation traitement client serveur d'applications donnée - système hébergeant des applications - respectant les spécifications EJB Serveurs d'applications existants - J2EE RI (Sun) Java 2 Enterprise Edition - commerciaux WebSphere (IBM), WebLogic (BEA), Sun ONE, Oracle App Serv, … >20 voir java.sun.com/j2ee/compatibility.html - free JBoss, JOnAS, Geronimo, OpenEJB, JFox, … J2EE 3 SGBD La technologie EJB réutilise un nombre important de librairies Java • RMI-IIOP • JNDI • JDBC • JTA • JMS •… Lionel Seinturier J2EE : invocation de méthodes distantes : accès à un service de nommage : connexion à des bases de données : gestion des transactions : communications en mode message 4 Lionel Seinturier Introduction Introduction Architecture 3 tiers Communications distantes Client requête/réponse • riche : application Java (éventuellement autre langage) • léger : navigateur Web prog. client requête rés eau Serveur d'applications • J2EE (Sun), WebSphere (IBM), WebLogic (BEA), JBoss, JOnAS, ... • hébergent des applications à base de : • composants EJB : classes Java conformes au modèle EJB • composants Web : servlet ou JSP prog. serveur réponse orientées message (MOM : Message-Oriented Middleware) prog. client SGBD dépose message retrait Boîte à lettres message prog. serveur • fournit un support de stockage pour les données de l'application - 80% : SGBDR (Oracle, SQL Server, PostGreSQL, ...) - 20% : autres applications de stockage J2EE 5 Lionel Seinturier J2EE Introduction 6 Lionel Seinturier Introduction Serveur d'applications EJB Serveur d'applications EJB Application EJB = serveur d'applications serveur d'applications - 0, 1 ou +sieurs composants EJB - 0, 1 ou +sieurs composants Web 4 services fournis par le serveur au conteneur EJB conteneur EJB • cycle de vie • transaction • nommage • sécurité conteneur EJB +sieurs rôles dans le développement Lionel Seinturier J2EE 8 Cycle de vie 7 Sécurité ces services sont intégrés dès le départ à la plate-forme conteneur Web J2EE Transaction ≠ middleware style CORBA Nommage • développeur de composants Web • développeur de composants EJB • assembleur d'applications • déployeur et gestionnaire d'applications Lionel Seinturier Introduction Serveur d'applications EJB J2EE 9 Lionel Seinturier