Beruflich Dokumente
Kultur Dokumente
2015/2016 Java EE 7 1
plan
Introduction Java EE 7
La couche de prsentation
javaServer Faces
Pages web et composants web
Traitements et navigation
La persistance
Persistance en java
ORM : ObjectRelational mapping
Gestion des objets persistants
Mthodes de rappel et couteurs
La couche mtier
Entreprise java beans
Beans de session et service timer
Mthodes de rappel et intercepteurs
Transactions et scurit
2015/2016 Java EE 7 2
1
Introduction :
Mondialisation des socits
La prsence sur internet 7/7 et 24/24
Les systmes sont internationaliss
Rduire les couts et amliorer le temps de rponse des
services
Supports de donnes fiables et scuriss
Applications B2B (business to business)
Pour relever ces dfis, cration de Java EE
Depuis 1999 date de sa cration, la plateforme J2EE a
volu pour tenir compte des nouveaux besoins.
Java EE est devenu plus riche, plus lger, plus simple
dutilisation et plus portable
2015/2016 Java EE 7 3
Prsentation de java EE
Java EE (Java Entreprise Edition) : la version dentreprise de java
Java EE est un ensemble de spcifications pour les applications
dentreprise.
Elle est considr comme une extension de java SE (Standard
Edition)
Java EE est destine faciliter le dveloppement dapplications
distribues, robustes, puissantes et haute disponibilit.
Java EE 6 fournit un modle de dveloppement simplifi et ajoute
de nouvelles spcifications par rapport java EE 5.
Java EE 6 apporte aussi des profils et de llagage pour allger le
modle Java EE.
Java EE est aussi un ensemble dAPI permettant de construire des
applications multi-tiers reposant sur des composants logiciels
standard. Ces composants sont dploys sur diffrents conteneurs
offrant un ensemble de services.
2015/2016 Java EE 7 4
2
Java EE : histoire
1999 : J2EE 1.2 dveloppe par Sun. Il est form de 10 Java
Spcifications Requests (JSR). Lpoque de CORBA pour les
systmes distribus. Les EJBs permettaient de manipuler des
objets service distants avec ou sans tat et des objets persistants
(beans entits).
2001 : J2EE 1.3 supporte les beans entits et les EJBs ont
introduit les descripteurs de dploiement XML. J2EE Connector
Architecture (JCA) a t ajout afin de connecter J2EE aux EIS
(Entreprise Information Systems)
2003 : J2EE 1.4 a ajout 20 spcifications et le support des web
services. Les EJB 2.1 permettait dinvoquer des beans sessions
partir de SOAP/HTTP.
2015/2016 Java EE 7 5
Java EE : histoire
J2EE devenu trop lourd, difficile tester, dployer et
excuter. Des frameworks comme Struts, Spring ou Hibernate
sont apparus pour faciliter le dveloppement des applications
web.
2006 : La sortie de Java EE 5 avec 23 spcifications amliore
de faon considrable le modle java EE. Il sinspirait des
frameworks open source et introduit POJO (plain Old java
Object : un bon vieil objet Java) et les annotations. Les
descripteurs XML devenaient facultatifs. En plus de EJB3 et
JPA, il y a apparition de JSF (JavaServer Faces) un framework
de prsentation et JAX-WS 2.0 remplaa JAX-RPC comme API
pour les services Web.
2015/2016 Java EE 7 6
3
Java EE : histoire
2009 : Java EE 6 avec 28 spcifications poursuit cette voit en
appliquant les concepts dannotation et de programmation
POJO. Elle apporte aussi des nouveaut comme JAX-RS 1.1
simplifie EJB 3.1 et enrichie JPA 2.0. Elle standardise le
nommage JNDI, introduit la notion de dprciation (via
llagage) et la cration de sous ensembles de la plate forme
au moyen de profils.
2013 : Java EE7 est constitu de 31 spcifications. La couche
mtier incorpore (CDI 1.1, Bean Validation 1.1, EJB 3.2, JPA
2.1), la couche Web intgre (Servlet 3.1, JSF 2.2, langage
dexpression 3.0), et pour l'interoprabilit (JAX-WS 2.3 et JAX-
RS 2.0).
2015/2016 Java EE 7 7
JEE : Histoire
2015/2016 Java EE 7 8
4
La galaxie java
2015/2016 Java EE 7 9
2015/2016 Java EE 7 10
5
Java EE : la gouvernance du
projet
2015/2016 Java EE 7 11
2015/2016 Java EE 7 12
6
Java EE et frameworks
2015/2016 Java EE 7 13
Java EE : Standards
Java EE reposent sur des standards pas comme (spring, struts,
etc.)
2015/2016 Java EE 7 14
7
Java EE et frameworks
2015/2016 Java EE 7 15
Java EE en bref
2015/2016 Java EE 7 16
8
La programmation par
composant
La programmation par composant
vise le dveloppement de logiciel par agrgation de briques
logicielles existantes
est indpendante de la POO
La programmation par composant fait voluer la POO
Rutilisabilit accrue du code
Persistance des objets
Distribution du code et des objets (des objets peuvent tre
partags par des applications diffrentes tournant sur des
machines diffrentes)
Scurit au niveau de l'excution concurrente
2015/2016 Java EE 7 17
La programmation par
composant
Un composant est une brique logicielle :
Taille variable (d'une classe une application entire)
Granularit variable (squelette logiciel, lment d'interface,
classe mtier, ...)
Fonctions varies
Composants techniques : ossature du code, lments
d'interfaces graphiques, utilitaires pour manipuler des donnes,
...
Composants mtiers : reprsentent des entits du domaine
(client, produit, ...)
Composants applicatifs : ddis aux traitements internes d'une
application (rutilisables)
2015/2016 Java EE 7 18
9
La programmation par
composant
Un composant doit offrir
Robustesse : le comportement doit tre celui attendu (sans
bug!)
Gnricit : le composant doit pouvoir tre adapt
l'application (sans le modifier!)
Abstraction : le composant doit offrir une interface claire et
utilisable sans consulter son code (implmentation autonome)
Programmation par composants
Slection des composants dans un catalogue
Dveloppement de nouveaux composants
Adaptation des composants l'application
Assemblage des composants, avec ajout ventuel de code
2015/2016 Java EE 7 19
Java EE : architecture
Java EE est un ensemble de spcifications implments par
diffrents conteneurs.
2015/2016 Java EE 7 20
10
Java EE : composants
La plateforme java EE dfinit 4 types de composants :
Les applets : applications graphiques excutes dans un
navigateur. Elles utilisent Swing.
Les applications : sont des programmes excuts sur un client. Il
sagit dinterfaces graphiques ou de programmes non interactifs.
Les applications web (servlets, couteurs dvnements web,
pages JSP et de JSF): sexcutent dans un conteneur web et
rpondent aux requtes HTTP envoyes par les clients web.
Les EJBs sont des composants pour traiter la logique mtier en
modle transactionnel. On peut y accder localement et distance
via RMI (HTTP pour les services web SOAP et REST)
2015/2016 Java EE 7 21
2015/2016 Java EE 7 22
11
Java EE : les conteneurs
La plate-forme Java EE est dcoupe en domaines logiques appels
conteneurs.
2015/2016 Java EE 7 23
2015/2016 Java EE 7 24
12
Applications multi-tiers rparties
2015/2016 Java EE 7 25
Java EE : services
Une API (Application Programming Interface) est une interface
de programmation. Un ensemble de fonctions ou classes mises
disposition des programmes informatiques par une
bibliothque logicielle.
Les conteneurs fournissent les services sous-jacents leurs
composants:
JTA (Java Transaction API) : API pour la gestion des
transactions entre lapplication et le conteneur.
JPA (Java Persistence API) : fournit lAPI pour la
correspondance modle objet-modle relationnel (ORM,
Object-relational Mapping).
JMS (Java Message Service) : fournit des fonctionnalits de
communication asynchrone.
2015/2016 Java EE 7 26
13
Java EE : services
JNDI (Java Naming and Directory Interface) : API d'accs aux
systmes dannuaires et de nommage.
JavaMail : API permettant de simplifier l'envoi de courrier
lectronique par les applications.
JAF (JavaBeans Activation Framework) : cette API est un
framework pour la gestion des donnes des diffrents types MIME.
Elle utilise par JavaMail
XML : La plupart des composant Java EE peuvent tre dploys avec
des descripteurs de dploiements XML, et les applications doivent
manipuler des documents XML. JAXP (Java API for XML Processing)
analyse les documents XML .
JCA (Java Connector Architecture) : API de connexion au systme
d'information de l'entreprise, partir dun composant Java EE.
2015/2016 Java EE 7 27
Java EE : services
Scurit : JAAS (Java Authentication and Authorization Service) :
fournit les services permettant dauthentifier les utilisateurs et dassurer le
contrle de leurs droits daccs.
Services web : Java EE reconnait les services web SOAP et REST. JAX-
WS (Java API for XML Web Services) remplace JAX-RPC (java API for
XML based RPC) et fournit le support des protocoles SOAP et HTTP.
JAX-RS (Java API for RESTful Web Services) fournit le support des
services web reposant sur REST.
Gestion : Java EE dfinit des API pour grer les conteneurs et les
serveurs laide dun bean dentreprise spcialis.
2015/2016 Java EE 7 28
14
Java EE : protocoles
Traitement JSON (JavaScript Object Notation) : Nouveau dans
Java EE 7 de l'API JSON Processing (JSON-P) permet aux
applications danalyser, de produire, de transformer et de poser
des requtes JSON.
2015/2016 Java EE 7 30
15
dploiement dune application
Pour dployer une application dans un conteneur, il faut lui fournir
deux lments :
l'application avec tous les composants (classes compiles,
ressources ...) regroupe dans une archive ou module. Chaque
conteneur possde son propre format d'archive.
un fichier descripteur de dploiement contenu dans le module
qui prcise au conteneur des options pour excuter l'application
Une application est un regroupement d'un ou plusieurs modules
dans un fichier EAR (Entreprise ARchive). L'application est dcrite
dans un fichier application.xml lui mme contenu dans le fichier
EAR
2015/2016 Java EE 7 31
L'assemblage et le dploiement
d'applications Java EE
Java EE propose une spcification pour dcrire le mode
d'assemblage et de dploiement d'une application Java EE.
Une application Java EE peut regrouper diffrents modules :
modules web, modules EJB ... Chacun de ces modules possde son
propre mode de paquetages.
Java EE propose de regrouper ces diffrents modules dans un
module unique sous la forme d'un fichier EAR (Entreprise ARchive).
Le format de cette archive est trs semblable celui des autres
archives :
un contenu : les diffrents modules qui composent l'application (module
web, EJB, fichier RAR, ...)
un fichier descripteur de dploiement
Les serveurs d'application extraient chaque module du fichier EAR et les
dploient sparment un par un
2015/2016 Java EE 7 32
16
Livraison JAR et EJB
Les EJB (Enterprise JavaBean) sont des composants java
mtiers voluant dans le conteneur EJB dun serveur
dapplications Java EE. Ils bnficient de plusieurs services
offerts par le conteneur web, dont la scurit et la transaction
dclarative.
Un EJB est livr sous forme de .jar indpendant ou lintrieur
dune livraison globale .ear
Livraison JAR du Client :
La livraison JAR (Java ARchive), correspond typiquement
un client JAVA qui interrogerait un EJB. Un Jar client est
livr sous forme de .jar indpendant ou lintrieur dune
livraison globale .ear
2015/2016 Java EE 7 33
2015/2016 Java EE 7 34
17
Java EE : nouveauts de la version 6
Le but principal des profils consiste
rduire la taille de la plateforme.
On critique souvent Java EE dtre
trop lourd, les profils sont conues
pour rgler ce problme. Les profils
sont des sous-ensembles ou des sur
ensembles de la plate-forme et
peuvent chevaucher cette dernire ou
dautres profils.
Java EE 6 dfinit un seul profil : le
profil web. Le profil web 1.1 voluera
son rythme . On peut voir apparaitre
des serveurs compatibles profil web
1.1 et non compatibles java EE 6.
2015/2016 Java EE 7 35
18
Les spcifications de Java EE 7
2015/2016 Java EE 7 37
Nouveauts de JEE 7
Java EE 7 permet aux dveloppeurs de fournir des
applications volutives et dynamiques en HTML5.
19
Annotations et descripteur de
dploiement
Dans paradigme de programmation, il y a deux approches: la
programmation imprative et la programmation dclarative.
Programmation imprative spcifie lobjectif atteindre par
lalgorithme (ce qui doit tre fait).
Tandis que la programmation dclarative indique comment
atteindre cet objectif (la faon dont il doit tre fait).
En Java EE, programmation dclarative est faite en utilisant les
mtadonnes, c'est--dire les annotations et/ou les
descripteurs de dploiement.
Comme vous allez le voir par la suite, les composants
s'excutent dans un conteneur et ce dernier fournit un
ensemble de services.
2015/2016 Java EE 7 39
Annotations et descripteur de
dploiement
Les mtadonnes sont utilises pour dclarer et de
personnaliser ces services et associer des informations
supplmentaires avec des classes Java, des interfaces, des
constructeurs, des mthodes, des champs ou paramtres.
2015/2016 Java EE 7 40
20
UN EJB avec des annotations
@Stateless
@Remote(ItemRemote.class)
@Local(ItemLocal.class)
@LocalBean
public class ItemEJB implements ItemLocal, ItemRemote {
@PersistenceContext(unitName = "chapter01PU")
private EntityManager em;
public Book findBookById(Long id) {
return em.find(Book.class, id);
}
}
2015/2016 Java EE 7 41
Un descripteur de dploiement
<ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd"
version="3.2">
<enterprise-beans>
<session> <ejb-name>ItemEJB</ejb-name>
<remote>javaee7.ItemRemote</remote>
<local>javaee7.ItemLocal</local>
<local-bean/>
<ejb-class>javaee7.ItemEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session> </enterprise-beans> </ejb-jar>
2015/2016 Java EE 7 42
21
JSON ou XML
2015/2016 Java EE 7 43
2015/2016 Java EE 7 44
22
Annotations au lieu des
descripteurs de dploiement
Dans la plateforme JEE, les annotations sont prfrables aux
descripteurs de dploiement.
2015/2016 Java EE 7 45
23
Java EE : Outils recommands
par Oracle
JDK 8 (Java Development Kit) :
Compilateur (javac)
Machine virtuelle (java)
Gnrateur de documentation (javadoc),
Maven 3.2.3 : construire une application Java EE exige plusieurs oprations :
gnrer du code et des ressources,
compilation des classes Java et des classes de test,
assemblage du code dans une archive (jar, ear, war) avec des
bibliothques jar externes
effectuer ces tches manuellement prend du temps do le recours
des scripts dautomatisation tel que ant ou Maven plus performant.
les commandes : mvn clean (supprime les fichiers gnrs)
mvn compile : compile les classes principales
mvn package :compile et excute les tests et cre larchive du paquetage
2015/2016 Java EE 7 47
2015/2016 Java EE 7 48
24