1 Java EE – Introduction Cours Java EE Installation logiciels

1
Java EE – Introduction
EMSI - Université de Nice Sophia Antipolis
Richard Grin
Version O 1.7 – 20/10/16
Cours Java EE
20 h de cours et TD/TP
Site du cours :
http://richard.grin.free.fr/emsi/casablanca
Interrogation sans documents à la fin du cours, sur
les concepts et savoir-faire essentiels (40 %)
Projet à rendre fin décembre 2016 (60 %)
Richard Grin Présentation Java EE page 2
Installation logiciels
Qui n’a pas fini d’installer tous les logiciels sur
son ordinateur personnel ?
Qui n’a pas commencé le TP 1 jusqu’à « Création
d’un EJB session stateless » (test environnement
de travail avant le début du cours) ?
Utilisation ordinateur personnel pendant TPs ?
Richard Grin Présentation Java EE page 3
Prérequis / Objectifs
Prérequis :
HTML, HTTP
Bonne connaissance de Java
Servlets (les bases)
Bases de données relationnelles (transactions et accès
concurrents en particulier)
Objectif :
Développement d’applications Web avec Java EE,
en particulier avec JSF, JPA et les EJB
Richard Grin Présentation Java EE page 4
Plan du cours
Introduction à Java EE (ce support)
Suite du TP 1
EJB – Introduction à CDI
Fin du TP 1 (survol de JSF, EJB, JPA) ; Important de le finir
JSF
TP 2 (JSF et modèle PRG)
TP 3 (templates de JSF)
JPA 1ère partie (bases)
TP 4 (JPA)
JPA 2ème partie (associations et compléments)
TP 5 (associations avec JPA)
Richard Grin Présentation Java EE page 5 Richard Grin Présentation Java EE page 6
Plan de ce support
Présentation de Java EE
Composants
Serveur d’application et containers
Formats de distribution
Profiles
JNDI
2
Richard Grin Présentation Java EE page 7
Architecture d’une
application d’entreprise
Les applications d’entreprise modernes sont des
applications multi-tiers
Couches d’une application Java EE
Souvent Web
et mobile
Les « vrais »
traitements
Sécurité,
transactionnel,… DAO, ORM,…
Richard Grin Présentation Java EE page 8
Java EE
Java Enterprise Edition
Pas un produit ; spécifications (32 dans Java EE 7)
pour écrire des applications d’entreprise en Java
Les composants métier sont des Entreprise Java
Beans (EJB)
Nous étudierons une interface utilisateur de type
Web, implémentée avec Java Server Faces (JSF)
La couche d’accès aux données utilisera « Java
Persistence API » (JPA)
Richard Grin Présentation Java EE page 9
Autre solution Java EE (partiellement)
Service Web de type RESTful (API Java JAX-RS)
Interface utilisateur Web pas Java EE :
HTML5 – JavaScript, éventuellement avec
surcouche de type Angular ou React
Richard Grin Présentation Java EE page 10
Quelle solution choisir ?
JSF convient très bien quand l’interface Web n’est
pas trop complexe et pour les applications qui
n’ont pas des milliers de clients Web
Si l’application est « single page », avec de très
nombreux clients et du code JavaScript complexe,
choisir la solution service Web RESTful et clients
Web HTML5 – JavaScript
Richard Grin Présentation Java EE page 11
Composant
Java EE utilise la notion de composant, en
particulier pour les EJB et les composants JSF
Sur le modèle des composants électroniques, les
composants logiciels sont des boîtes noires
réutilisables
configurables
qui respectent des interfaces définies par une
spécification
qui peuvent être enfichés dans les applications
qui respectent ces spécifications
Richard Grin Présentation Java EE page 12
3
Intérêt des composants
Développement plus rapide, plus fiable
Maintenance facilitée
Pas besoin de compétences pointues dans le
domaine métier d’un composant acquis
Industrie du composant logiciel ? Pas encore
vraiment là
Richard Grin Présentation Java EE page 13
Exemples
Composant « métier » pour gérer la paie des
employés
Composant JSF qui affiche une carte « Google
Map » dans l’interface utilisateur Web
Richard Grin Présentation Java EE page 14
Serveur d’application
Logiciel qui sert de structure d’accueil pour les
applications ; il leur fournit des services non
fonctionnels
Les applications Java EE ne peuvent fonctionner
que si elles sont intégrées avec un serveur
d’application qui suit les spécifications Java EE
Plusieurs serveurs d’application Java EE (Payara,
WildFly,…)
GlassFish 4 est l’implémentation de référence de
Java EE 7
Richard Grin Présentation Java EE page 15
Containers
Chaque type de composant Java EE est géré par un
container qui fait partie du serveur d’application : pour
JSF, EJB, CDI, etc.
Un container intercepte les appels aux composants
pour ajouter des services non fonctionnels :
transactions, gestion de la concurrence, cycle de vie
des composants, injection de dépendance,…
Le développeur est ainsi libéré d’une grande charge
de travail !
Richard Grin Présentation Java EE page 16
Exemple d’interception
L’appel d’une méthode d’un EJB est intercepté par
le container EJB qui
démarre une nouvelle transaction, juste avant de
donner la main à la méthode
lance un commit de la transaction à la fin de
l’exécution de la méthode
Présentation Java EE page 17Richard Grin
Configuration d’une application
Pour
s’adapter à la plateforme de déploiement (politique de
sécurité, bases de données installées,…)
faire un choix entre plusieurs possibilités (persistance
des attributs d’un objet, gestion des transactions,…)
Java EE suit la formule « convention plutôt que
configuration » : les pratiques les plus courantes
n’ont pas besoin d’être configurées ; seules les
pratiques inhabituelles doivent être configurées
Configuration par fichiers XML ou annotations
Richard Grin Présentation Java EE page 18
4
Format de distribution
Une application Java EE est distribuée dans un
fichier d’archive (de type fichier jar)
Un fichier d’archive peut contenir
des classes Java (simples classes, composants)
des ressources utilisées par le code Java
(images, son, fichiers pour internationalisation,…)
des fichiers XML qui décrivent l’application ou la
façon de la déployer
d’autres fichiers d’archive
Richard Grin Présentation Java EE page 19
Fichier descripteur de déploiement
Informe le serveur d’application sur la manière de
déployer une application
Par exemple pour intégrer l’application au système de
sécurité utilisé par le serveur
Java EE a des fichiers descripteurs standards ;
web.xml pour les applications Web
Un serveur d’application peut y ajouter ses propres
fichiers pour des configurations non standardisées
(source de données, clustering,…) ; par exemple
glassfish-web.xml pour GlassFish
Richard Grin Présentation Java EE page 20
Annotations et fichiers descripteurs XML
De nombreuses annotations permettent de
configurer une application directement dans les
classes Java
Le contenu des fichiers XML est ainsi allégé
S’il y a conflit sur une indication, c’est le fichier
XML qui l’emporte
Richard Grin Présentation Java EE page 21
Pourquoi ?
Types de fichiers d’archive
Jar (Java ARchive) : contient les EJB, les classes
Java ordinaires et les ressources associées
War (Web ARchive) : pour les modules liés au
Web ; contient les servlets, fichiers HTML, JSF,
EJB, et les ressources associées
Ear (Entreprise ARchive) : contient des modules
jar ou war
Richard Grin Présentation Java EE page 22
Structure EAR
Richard Grin Présentation Java EE page 23
Structure JAR pour EJB
Richard Grin Présentation Java EE page 24
classes
directement
sous la racine
5
Structure WAR
Richard Grin Présentation Java EE page 25
Protégé des
clients Web
Richard Grin Présentation Java EE page 26
Profiles
Profile
Pour permettre des serveurs d’application allégés,
Java EE définit des profiles qui n’utilisent pas
toutes les technologies de la norme
Le profile Web inclut les technologies pour écrire
une application Web : servlets, JSF, CDI, EJB Lite,
JPA, JTA, validation bean
Une application qui se limite au profile Web peut
être distribuée dans un seul fichier WAR
Richard Grin Présentation Java EE page 27
EJB Lite
Une partie de la spécification EJB :
beans stateless, stateful et singleton (donc pas
EJB message, MDB)
interfaces locales (pas d’interfaces distantes)
Richard Grin Présentation Java EE page 28
JNDI
Java Naming and Directory Interface
Richard Grin Présentation Java EE page 29
Généralités
Les composants ont besoin d’accéder à d’autres
composants ou à des ressources (EJB, source de
données JDBC, ressource javaMail,…)
JNDI, API Java pour utiliser des annuaires pour
donner des noms à des objets, des services ou des
ressources
les récupérer en donnant leur nom
Exemples de noms :
java:global/drh/drh-ejb/EmployeManager
java:app/jdbc/employes
Richard Grin Présentation Java EE page 30
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !