Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur



Documents pareils
Java pour le Web. Cours Java - F. Michel

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

10. Base de données et Web. OlivierCuré

Environnements de Développement

Vulgarisation Java EE Java EE, c est quoi?

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.

J2EE - Introduction. Développement web - Java. Plan du chapitre

Module BD et sites WEB

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Introduction à la plateforme J2EE

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

JOnAS Day 5.1. Outils de développements

Compte Rendu d intégration d application

Auto-évaluation Aperçu de l architecture Java EE

Mise en œuvre des serveurs d application

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Application Web et J2EE

Programmation Internet Cours 4

JOnAS 5. Serveur d application d

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Utilisation de Jakarta Tomcat

Refonte front-office / back-office - Architecture & Conception -

Les architectures 3-tiers Partie I : les applications WEB

Introduction à Java. Philippe Genoud.

1. Installation d'un serveur d'application JBoss:

Développement des Systèmes d Information

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Projet Java EE Approfondi

Programmation Web. Introduction

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

4. SERVICES WEB REST 46

Programmation Web. Madalina Croitoru IUT Montpellier

Formation en Logiciels Libres. Fiche d inscription

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Cours en ligne Développement Java pour le web

Introduction aux «Services Web»

Java Enterprise Edition

Web Tier : déploiement de servlets

SITE WEB E-COMMERCE ET VENTE A DISTANCE

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

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Documentation de la plate forme JOnAS. Frederic Maistre

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Documentation de la plate forme JOnAS

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Projet de Veille Technologique

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Hébergement de sites Web

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Formation : WEbMaster

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

1 JBoss Entreprise Middleware

Petite définition : Présentation :

Cedric Dumoulin (C) The Java EE 7 Tutorial

Comparaison des architectures J2EE et.net

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Modernisation et développement d applications IBM i Stratégies, technologies et outils

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

WEBSPHERE & RATIONAL. Jacques Rage

Groupe Eyrolles, 2005, ISBN :

Catalogue des Formations Techniques

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Architectures web/bases de données

A. Architecture du serveur Tomcat 6

Les services usuels de l Internet

Serveur d'application à la juste taille

les techniques d'extraction, les formulaires et intégration dans un site WEB

Ociensa Technologies.

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Notre Catalogue des Formations IT / 2015

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

IBM WebSphere Application Server 5.0 : Administration avancée

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Nouvelles Plateformes Technologiques

La technologie Java Card TM

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

Présentation du Framework BootstrapTwitter

Devenez un véritable développeur web en 3 mois!

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Evaluation Idéopass Cahier d analyse technique

Messagerie asynchrone et Services Web

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

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

Le moteur de workflow JBPM

Modèle d Administration des Systèmes Distribués à Base de Composants.

CQP Développeur Nouvelles Technologies (DNT)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Architectures Web Services RESTful

Transcription:

Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1

Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage d une partie de Java EE Servlet, JSP et EL/JSTL (standard) Prérequis Maîtrise du langage Java (Java SE) Maîtrise du développement Web client XHTML (au moins balises de structure et formulaires) 1 CSS et XML sont un plus Bases de Réseau ( Architecture Client/Serveur ) dans COO, utilisation des Design Patterns 2

Java EE? Java Enterprise Edition est un framework riche (Java SE + nombreuses API) ouvert (specs. du Java Community Process) dédié au développement, au déploiement età l exécution d applications Internet modernes (nécessaires aux entreprises) Favorise la séparation des préoccupations Code métier vs. Propriétés non-fonctionnelles QoS, persistance (JPA), administration (JMX), sécurité, transaction (JTS/JTA), 3

Versions Java EE Mai 1998: Java Professional Edition (JPE) naissance du projet chez Sun Déc 1999: J2EE 1.2 (premières APIs: JDBC, JNDI, Servlets, JSP, EJB, JMS, JTA, JavaMail) Sep 2001: J2EE 1.3 (ajout de JAXP, JAAS) Nov 2003: J2EE 1.4 (améliorations notoires, Web Services, JMX, ) Mai 2006: Java EE 5 (améliorations très importantes, ajout de JAXB, JPA, JSF, JSTL Déc 2009: Java EE 6 (ajout de JAX-RS, JAXR, JSP 2.2, EL 2.2, ) => comme le reste de la galaxie Java, ajout notoire d annotations pour simplifier la configuration Java EE 7 : en cours de développement 4

Taille de la plateforme (packages) La galaxie Java Java EE Java SE Java ME Java Card JVM JVM JVM/KVM CardVM Serveurs Serveurs, PC PDA, TV set, Mobiles, Capteurs Cartes à puce Une édition n inclut pas forcément la totalité d une édition de plus «petite taille» 5

Le développement Web Le World Wide Web Un SI public et universel déployé sur Internet Un langage : HTML (ou XHTML) Un modèle de communication : client-serveur Un protocole : HTTP Pages statiques Pages HTML préparées à l avance Le serveur renvoit les pages sans effectuer de traitement particulier Pages dynamiques Attention à ne pas confondre avec une page animée (ex. Flash) Pages HTML générées par le serveur Le serveur construit la réponse en fonction de la requête de l utilisateur 6

Serveur Serveur : un ordinateur disposant d un certain nombre de ressources qu il met à disposition d autres ordinateurs (clients) via le réseau. Types de serveurs: Serveur web Serveur d application... 7

Serveur web Programme s exécutant sur une machine reliée à internet Protocole HTTP: répond aux requêtes des clients (navigateur web) et les traite Retourne des pages HTML au Client 8

Java et le développement Web Différentes technologies Java permettent de faire du développement Web à différents niveaux Côté Client Développement Côté Serveur.class autonome applet servlet Source Java mixé avec code html JavaScript JSP Pages statiques Pages dynamiques 9

HTML (rappel) Langage de balisage, non propriétaire (W3C) Conçu pour afficher des documents sur le Web Liens hypertextes possibles entre les documents XHTML assure maintentant la compatibilité avec XML <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html> <head> <title>xhtml 1.0 valide!</title> </head> <body> <p>une page XHTML 1.0 <strong>valide</strong>.</p> </body> </html> head title html body p strong 10

Quelques balises <!-- --> commentaires <a> ancre (hyperlien href) <body> corps du document <br> line break <form> formulaire <h1> titre1 <head> entête <html> limite le document <input type> boutons et champs de saisie <p> paragraphe <title> titre 11

Ex : AREL V6 (code HTML) <html> <!-- AREL V6.0 --> <head> <title>arel V6.0</title> </head> <body> <h1 align="center">arel: L'école virtuelle de l'eisti</h1> <p><center> <img src="fondcergypau.jpg"/> </center></p> <form action="date2"> Login: <input type="text" name="param1"/><br/> Mot de passe: <input type="password" name="param2"/><br/> <center> <input type="submit" value="valider"/> </center> </form> </body> </html> 12

Ex : AREL V6 (affichage) <title>arel V6.0</title> http://arel.eisti.fr/login.html <h1 > </h1> <img /> <input type=" " /> 13

Pages statiques Fonctionnement normal d un serveur Web seul Le serveur cherche la page dans le système de fichiers La page est renvoyée au client telle quelle requête réponse Serveur Web Machine Machine envoie cliente serveur cherche <html>... <html>......... <html>... </html>...... <html>... </html>......... </html>... 14 </html>

Limites d un serveur Web seul Pas de contenu dynamique <html> <head> <title>clock</title> </head> <body> Il est toujours 12:12. </body> </html> VS. Pas de sauvegarde de données sur le serveur <html> <head> <title>clock</title> </head> <body> Il est [gettimeonserver]. </body> </html> Traitemenent de formulaires: besoin d une application d aide au serveur Web pour évaluer les paramètres reçus pour générer une réponse appropriée 15

Pages dynamiques 1) Le serveur Web a besoin d aide pour faire du dynamique Autrefois, les CGI (Common Gateway Interface) Aujourd hui, un conteneur Java EE avec servlets (ex: Tomcat) requête Serveur Web params Application d aide Machine cliente Machine serveur 2) Serveur Web Application d aide Machine cliente réponse Machine serveur... 16

Présentation de Java EE Java EE est une plate-forme fortement orientée serveur pour le développement et l'exécution d'applications distribuées. Elle est composée de deux parties essentielles : Un ensemble de spécifications pour une infrastructure dans laquelle s'exécute les composants écrits en Java : un tel environnement se nomme serveur d'application. Un ensemble d'apis qui peuvent être obtenues et utilisées séparément. Pour être utilisées, certaines nécessitent une implémentation de la part d'un fournisseur tiers. 17

Les APIs de Java EE Une API (Application Programming Interface ) est une interface de programmation. C est un ensemble de fonctions, procédures ou classes mises à disposition des programmes informatiques par une bibliothèque logicielle, un système d exploitation ou un service. Les composants : permet un découpage de l'application et donc une séparation des rôles lors du développement : Les composants web : Servlet et JSP(Java Server Pages). Les composants métier : EJB (Enterprise Java Beans). Les services : Les services d'infrastructures : JDBC, JNDI, JTA, JCA, JMX Les services de communication : RMI-IIOP, JavaMail, JAAS 18

Architecture en Java EE JEE permet une grande flexibilité dans le choix de l'architecture de l'application en combinant les différents composants. L'architecture d'une application se découpe idéalement en au moins trois tiers : La partie cliente : permet le dialogue avec l'utilisateur. Elle peut être composée : d'une application stand-alone d'une application web d'applets La partie métier : encapsule les traitements (dans des EJB ou des JavaBeans) La partie données : stocke les données 19

Servlets et JSP Afin de réaliser des applications Web dynamique, nous réaliserons 2 grands type de «pages JEE» : Les Servlets : qui sont des classes Java spécifiques pouvant être exécutées sur un serveur JEE. La méthode principale de ces classes sera appelée à chaque requête du client et recevra en paramètre la requête soumise. Après traitement (dans le corps de la méthode), elle renverra ensuite au client la page HTML générée. Les JSP : qui ont le même but que les Servlets mais avec une syntaxe plus proche de l HTML (comparable au PHP). Ces 2 types de programmation peuvent être utilisés de manière indépendante ou conjointe en fonction de l application à réaliser. 20

Architecture en Java EE 21

Conteneur Les conteneurs assurent la gestion du cycle de vie des composants qui s'exécutent en eux. Les conteneurs fournissent des services qui peuvent être utilisés par les applications lors de leur exécution. La notion de conteneur se retrouve dans de nombreuses technologies : Servlet, Applet, MIDlet, Xlet, (*-let ), EJB, Il existe plusieurs conteneurs définit par JEE: Conteneur web : pour exécuter les Servlets et les JSP Conteneur d'ejb : pour exécuter les EJB Conteneur client : pour exécuter des applications standalone sur les postes qui utilisent des composants JEE 22

Conteneur Un conteneur est un composant logiciel système qui contrôle d autres composants, dits métier Tomcat est un exemple de conteneur Les servlets n ont pas de méthode main(), ils sont contrôlés par le conteneur Tomcat Les requêtes ne sont pas adressées aux servlets mais au conteneur dans lequel ils sont déployés 23

Application Web avec un conteneur Le serveur Web a besoin d aide pour faire du dynamique 1) GET... doget(rq,rp) Serveur Web Conteneur Servlet Servlet requête Servlet Machine cliente Machine serveur 2) Serveur Web Conteneur Servlet Machine cliente réponse Machine serveur...... 24

Pourquoi un conteneur? Pour oublier le cours de «réseau»! Un conteneur fournit pour les Servlets : Un support pour la communication Pas besoin de ServerSocket, Socket, Stream, La gestion du cycle de vie Un support pour le Multithreading Création automatique des Threads Un support pour la sécurité Un support pour les JSP 25

Module Web Un servlet ne peut pas être déployé directement dans un conteneur, il doit faire partie d un module Web. Un module Web est un ensemble de librairies, de fichiers de configurations, de code Java (bytecode des servlets ), Le module Web est l unité de déploiement dans le conteneur. 26

Module Web Pour déployer une application dans un conteneur, il faut lui fournir deux éléments : L'application avec tous les composants (classes compilées, ressources...) regroupée dans une archive ou module. Chaque conteneur possède son propre format d'archive. Un fichier descripteur de déploiement contenu dans le module qui précise au conteneur des options pour exécuter l'application 27

Structure d un module Web (.war) Automatisé dans Eclipse File/ Export Web/ WAR file zip jar war 28

Les différents types d archives Archive / module Contenu bibliothèque Regroupe des classes Extension jar Descripteur de déploiement application client Regroupe les ressources nécessaires à leur exécution (classes, bibliothèques, images,...) jar application-client.jar web Regroupe les servlets et les JSP ainsi que les ressources nécessaires à leur exécution (classes, bibliothèques de balises, images,...) war web.xml EJB Regroupe les EJB et leur composants (classes) jar 29 Une application est un regroupement d'un ou plusieurs modules dans un fichier EAR (Entreprise ARchive). L'application est décrite dans un 29 fichier application.xml lui même contenu dans le fichier EAR

Serveur d application Les serveurs d'applications peuvent fournir : Un conteneur web uniquement (exemple : Tomcat) ou Un conteneur d'ejb uniquement (exemple : JBoss, Jonas,...) ou Les deux conteneurs (exemple : Websphere, Weblogic,...). 30

Les services proposés par la plate-forme JEE Une plate-forme d'exécution JEE complète, implémentée dans un serveur d'application, propose les services suivants : service de nommage (naming service) service de déploiement (deployment service) service de gestion des transactions (transaction service) service de sécurité (security service) Ces services sont utilisés directement ou indirectement par les conteneurs mais aussi par les composants qui s'exécutent dans les conteneurs grâce à leurs API respectives. 31

Environnements de développement Le cycle Développement-Déploiement-Exécution est trop complexe à votre goût? Les IDE sont là pour vous assister! 32