La plate-forme J2EE : Architecture et concepts La plate-forme J2EE : Architecture et concepts K.LAAROUSSI 2 Objectifs du cours ¾ Définir la plate-forme J2EE et décrire ses composants ¾ Ecrire des applications Web utilisant les Servlet/JSP ¾ Accéder aux bases de donnees a partir des Servlets via JDBC ¾ Comprendre les problematique et les techniques de gestion de session dans les Servlets ¾ Étendre les pages JSP en utilisant les Custom Tags ¾ Comprendre Le modele d’architecture MVC ¾ Comprendre les bases des EJB(Entreprises JavaBeans) La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 3 Plan du cours ¾ Introduction ¾ J2EE : Architecture et concepts ¾ Web Components : Servlet et JSP ¾ Le modèle MVC et le développement d’applications Web ¾ Entreprise JavaBeans La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 4 Introduction ¾ Pré requis ¾ Rappels La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 5 Introduction Pre-requis ¾ Concepts de base de la programmation orientée objet ¾ Connaissance de base du langage Java (J2SDK) ¾ Connaissance de base du langage XML ¾ Connaissance de base du langage HTML La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 6 Introduction Rappels ¾ Architectures multi tiers ¾ Le protocole HTTP ¾ Java et le développement d’applications web La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 7 Introduction/Rappels Architectures multi tiers ¾ Applications standalone(monolithique) ¾ Architecture en couche ¾ Architecture 2-tiers ¾ Architecture 3-tiers ¾ Architecture multi-tiers La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 8 Introduction/Rappels Le protocole HTTP ¾ Définitions ¾ La requête HTTP ¾ La Méthode de requête HTTP ¾ Exemple de réponse HTTP La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 9 Introduction/Rappels Java et le développement d’applications web ¾ Java coté client ¾ Développement d’Applet Développement d’applications standalone Développement d’applications web avec Servlet/JSP Architecture Web (3 tiers) a base de Servlet/JSP Navigateur Web Serveur Web Pages HTML/Applet Serveur HTTP Réseau La plate-forme J2EE : Architecture et concepts Moteur de Servlet/JSP Base de donnees K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 10 J2EE : Architecture et concepts ¾ Qu’est ce que J2EE ¾ Concepts lies a la spécification J2EE ¾ Architecture logique de la plate-forme J2EE ¾ Types et conteneurs de composants d’applications J2EE ¾ Produits J2EE ¾ Services standard de la plate-forme J2EE ¾ Rôles définis par la specification de la plate-forme J2EE La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 11 J2EE : Architecture et concepts Qu’est ce que J2EE Definition J2EE est une spécification qui définit les contrats entre applications et conteneur d’applications. Le conteneur d’applications étant l’environnement d’exécution qui fournit les services requis par les composants des applications qui y sont déployées Objectifs de la plate-forme J2EE Haute disponibilité Sécurité Fiabilité Réduction des coûts et de la complexité du développement multi-tiers Faciliter d’administration et de maintenance des applications La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 12 J2EE : Architecture et concepts Concepts lies a la specification J2EE ¾ J2EE Plate form ¾ J2EE Compatibility test suite ¾ J2EE Reference implementation ¾ J2EE BluPrints La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 13 J2EE : Architecture et concepts/ Architecture logique Applet container Web container HTTP/ SSL EJB container RMI Servlet JSP Applet EJB Services standards JMail JTA JDBC JAAS JMX JAXR JCA JAF JAX-RPC JDBC J2SE JMS JMail JTA JMX Services standards JAF Application Client JMS JCA JAAS HTTP/ SSL JAXR Application client container JAX-RPC J2SE Services standards J2SE RMI JAX-RPC,JAXR, JMS, JMX, Mgmt J2SE Base de données La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 14 J2EE : Architecture et concepts Conteneurs et composants d’applications J2EE (containers and J2EE Applications components) Composants d’applications J2EE (J2EE applications components) Application clients Applets Web components Enterprise JavaBeans(EJB) La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 15 J2EE : Architecture et concepts Conteneurs et composants d’applications J2EE (containers and J2EE Applications components) Definition Un Container est un composant qui fournit l’environnement d’exécution aux ‘J2EE applications components’ qui y sont déployés Qu’est ce qu’un Container doit offrir Environement d’execution conforme a la specification J2SE Pouvoir analyser et interpréter le fichier de description de déploiement (ce fichier défini par sa DTD) Les APIs nécessaires aux applications components pour accéder aux services standard de la plate-forme J2EE La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 16 J2EE : Architecture et concepts Produit J2EE Qu’est ce qu’un produit doit fournir Une implémentation des containers Des outils pour le déploiement d’applications components D outils de management des applications déployées Support des services standard de la plate-forme J2EE Quelle est la différence entre Produit J2EE, Serveur J2EE et Serveur d’application Exemples de produits J2EE La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 17 J2EE : Architecture et concepts Services standard de la plate-forme J2EE HTTP/HTTPs JTA : Java Transaction API RMI-IIOP Java IDL JDBC API JMS : Java Message Service JNDI :Java Naming Directory Interface La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 18 J2EE : Architecture et concepts Services standard de la plate-forme J2EE JavaMail JAF : JavaBeans Activation Framework JAXP : Java API for XML Parsing JCA : J2EE Connector Architecture JAAS : Java Authentication and Autorisation Service Web Services Management Deployment La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 19 J2EE : Architecture et concepts Rôles définis par la plate-forme J2EE J2EE Product Provider Application Component Provider Application Assembler Deployer System Administrator Tool Provider System Component Provider La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 20 Introduction a technologie Servlet ¾ Definitions ¾ Architecture d’applications web a base de Servlet ¾ Advantages des Servlets par rapport aux CGI ¾ Servlet : Comment ça fonctionne ¾ Exemple introductif La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 21 Introduction a technologie Servlet Definitions Definitions Une Servlet est un programme Java s’executant au niveau dans un conteneur Web(Web container) qui genere du contenu dynamique. Les Servlets sont des objets bases sur l’API Java Servlet et permettant d’etendre les fonctionnalites d’un serveur HTTP. La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 22 Introduction a technologie Servlet Architecture d’applications web a base de Servlet Request Navigateur Web HTML/JavaScript Serveur HTTP HTTP HTTP Réseau Servlet Container Response Servlet Contenu Statique La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 23 Introduction a technologie Servlet Advantages des Servlets vs CGI Performance Portabilité Robustesse Rapidité de développement Technologie largement utilisée La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 24 Introduction a technologie Servlet/ Comment ça fonctionne La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __ 25 Introduction a technologie Servlet Exemple introductif La plate-forme J2EE : Architecture et concepts K.LAAROUSSI ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ __