Introduction MDOC : Middleware Orienté Composants JEE : Java Enterprise Edition Java Enterprise Edition Plate-forme pour le développement d’applications réparties Définie par Sun, basée sur Java Applications types • Serveurs Internet de commerce électronique • Systèmes d’information • Applications de type “informatique de gestion” Gaël Thomas [email protected] Java = 3 branches distinctes (compilo+VM+bibliothèques) (Basé sur un cours de Lionel Seinturier) Java ME (Micro) : VM et librairies pour les syst. embarqués (PDA, tél., ...) Java SE (Standard) : "le" JDK (compilateur + VM + librairies de base) Java EE (Enterprise) : serveur pour les applications d'entreprise Université Pierre et Marie Curie Master Informatique M2 – Spécialité SAR – 2006/2007 Actuellement JEE 5 Noms avant 2005 : J2ME, J2SE, J2EE Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition Introduction 2 Introduction JEE : Java Enterprise Edition JEE : Java Enterprise Edition Plates-formes existantes Un ensemble de technologies pour construire des applications réparties Implémentation de référence : Java EE 5 SDK (Sun) Commerciales • 2 principales : WebSphere (IBM), WebLogic (BEA) • Mais aussi : Sun Java System Application Server, Oracle Application Server, … • 20 voir java.sun.com/javaee/overview/compatibility.html Open source • JBoss, JOnAS, Geronimo, OpenEJB, JFox, … JSP/Servlet (i.e. Web Component) : pages web dynamiques Composants EJB (i.e. Enterprise Java Bean) : composants JEE JDBC : API d’accès à des SGBD Et de nombreuses autres : JNDI, JTA, JCA, JMX, JAX, … Selon le principe des architectures 3 tiers Processus de certification mis en place par Sun JSP/Servlet TCK (Test Compatibility Kit) Payant sauf pour plates-formes open-source Assez lourd à mettre en œuvre (~20 000 tests) Encore peu de plates-formes certifiées JEE 5 (la grande majorité certifiée J2EE 1.4) Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition JDBC EJB Présentation 3 Gaël Thomas Serveur d’Applications Master SAR - M2 MDOC - Java Enterprise Edition SGBD 4 Introduction Introduction Architecture 3 tiers Communication par requête/réponse Client programme client Riche : application Java (classes Java conforme au modèle EJB) Léger : navigateur Web (clients HTTP/HTML) requête programme serveur réponse Infrastructure de communication Serveur d'applications Hébergent des applications à base de Interaction : 1 requête + 1 réponse • Composants EJB : classes Java conformes au modèle EJB • Composants Web : servlet ou JSP Client : envoie une requête et attend la réponse Serveur : attend une requête, exécute un traitement et renvoie la réponse SGBD Fournit un support de stockage pour les données de l'application Extension : appel de procédure distante • 80% : SGBD Relationnel (Oracle, SQL Server, PostGreSQL, ...) • 20% : autres applications de stockage Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition RPC, RMI, Corba, EJB… 5 Gaël Thomas Introduction Communication par messages 6 Introduction Le second tiers : serveur d'applications autres serveurs Boîte à lettres programme client Master SAR - M2 MDOC - Java Enterprise Edition dépose retire message message Client léger Application JEE = programme serveur 0, 1 ou +sieurs composants EJB 0, 1 ou +sieurs composants Web SGBD Infrastructure de communication Conteneur Web Interaction : par envoie de message Plusieurs rôles dans le développement Client : envoie un message • Asynchrone : n’attend pas la réception du message • Synchrone : attend la réception et le traitement du message Serveur : attend des messages et exécute un traitement Client Développeur de composants Web riche Développeur de composants EJB Assembleur d'applications Déployeur et gestionnaire d'applications Conteneurs EJB Serveur d’ d’applications Exemples SGBD JMS, Scribe, WebSphere MQ.. Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition 7 Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition 8 Introduction Introduction Architecture Classique Serveur d'applications Autres Services Conteneur EJB (par exemple JONAS) Client léger HTTP GET Cycle de vie Transaction (JTS) Nommage (JNDI) Sécurité Conteneur Web (par exemple Tomcat) Serveur Web (par exemple Apache) Cycle de vie Nommage middleware style CORBA ces services sont intégrés dès le démarrage de la plate-forme Transaction Sécurité WC Connecteur (HTTP, AJP…) Conteneur EJB Client lourd WC Conteneur Web (par exemple Tomcat) WC WC J2EE EJB EJB EJB EJB Conteneur EJB (par exemple JONAS) JDBC Cycle de vie Authentification Bus à objets (par exemple RMI-IIOP) 4 principaux services fournis par le serveur au conteneur EJB JTA : transaction SG BD Conteneur EJB (par exemple JONAS) EJB EJB JNDI : service de résolution de noms Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition 9 Introduction Plan du cours Plan des TME Composants Web Composants Web • Cours 1 : Servlet • Cours 2 : JSP • TME 1 : servlet • TME 2 : JSP Connexion aux SGBD Connexion aux SGBD • Cours 3 : jdbc Composants EJB • Cours 4 et 5 : Enterprise Java Bean – Cours 4 : Session bean – Cours 5 : Entity Bean Web Services • Cours 6 et 7 : Web Services Gaël Thomas • TME 3 : JDBC dans une servlet Composants EJB • TME 4 : Session Bean • TME 5 : Entity Bean Web Services • TME 6 : Web Service à base de servlet • TME 7 : Web Service à base d’EJB Master SAR - M2 MDOC - Java Enterprise Edition 11 Gaël Thomas Master SAR - M2 MDOC - Java Enterprise Edition 10