Sie sind auf Seite 1von 24

Java EE 7

Les bases de la plateforme


Java EE

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

Java EE : une plate-forme


normalise

2015/2016 Java EE 7 10

5
Java EE : la gouvernance du
projet

2015/2016 Java EE 7 11

Java EE : exemples de JSR

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.)

Les standards facilitent la communication et les changes


comme la langue, la monnaie, le temps, le tlphone, les units
de mesure,

Java EE fournit des standards ouverts implments par


plusieurs frameworks commerciaux (WebLogic, Websphere,
etc.) ou open source (GlassFish, Jboss, Hibernate, etc.) pour
grer les transactions, la scurit, les objets tat, la
persistance des objets 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.

Ces conteneurs sont des environnements dexcution java EE qui


fournissent certains services aux composants quils hbergent :
gestion du cycle de vie, injection des dpendances, etc.

Les composants doivent respecter des contrats bien dfinis pour


communiquer avec la plateforme java et avec les autres
composants.
Les composants doivent tre assembls en respectant un certain
standard (fichiers archives) avant dtre dploys.

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

Java EE : les conteneurs


Les conteneurs sont les lments fondamentaux de l'architecture Java
EE.

Ils fournissent un ensemble de services ses composants (scurit,


accs aux bases de donnes, gestion des transactions, injection des
ressources)
Ils permettant aux dveloppeurs d'applications de se concentrer sur la
logique mtier du problme rsoudre sans se proccuper de toute
l'infrastructure interne.

Les conteneurs assurent la gestion du cycle de vie des composants qui


s'excutent en eux. Les conteneurs fournissent des services qui
peuvent tre utiliss par les applications lors de leur excution.

2015/2016 Java EE 7 22

11
Java EE : les conteneurs
La plate-forme Java EE est dcoupe en domaines logiques appels
conteneurs.

Ces conteneurs possdent des interfaces leur permettant de


communiquer avec les composants qu'ils hbergent.

Il existe plusieurs conteneurs dfinit par Java EE:


conteneur web : pour excuter les servlets et les JSF
conteneur d'EJB : pour excuter les EJB
conteneur client : pour excuter des applications client.
conteneur applet : pour excuter les composants applets
Les serveurs d'applications peuvent fournir un conteneur web
uniquement (Tomcat) ou un conteneur d'EJB uniquement (JBoss, Jonas,
...) ou les deux (GlassFish, Websphere, Weblogic, ...).

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.

Dploiement : la spcification de dploiement java EE dfinit un contrat


entre les outils de dploiement et les produits java EE afin de standardiser
le dploiement des applications

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.

HTTP : HTTP est le protocole du web, prsent dans les


applications modernes. LAPI du ct serveur de HTTP est dfinie
par les servlets, les JSP et les interfaces JSF, ainsi que par les
services web SOAP et REST. HTTPS est une combinaison de
HTTP et du protocole SSL (Secure Sockets Layer).

RMI-IIOP : RMI (Remote Method Invocation) permet dappeler


des objets distants. RMI-IIOP est une extension de RMI pour
invoquer des objets CORBA.
2015/2016 Java EE 7 29

dploiement dune application


Avant de dployer un composant dans un conteneur, il faut
d'abord lemballer dans une archive au format standard.

Java SE dfinit le format Java Archive (JAR), utilis pour


regrouper plusieurs fichiers (classes Java, des descripteurs de
dploiement, de ressources ou bibliothques externes) en un
seul fichier compress (bas sur le format ZIP).

Comme le montre la figure suivante, Java EE dfinit diffrent


types de format qui lui sont propres.

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

Java EE : nouveauts de la version 6


Java EE 6 a poursuivit la simplification introduite par java EE 5.
Java EE 6 est plus lgre avec lintroduction des profils, de
llagage et EJB Lite (un sous-ensemble des fonctionnalits
compltes dEJB destin uniquement aux interfaces locales,
aux transactions et la scurit).
Le mcanisme dlagage (marquage pour suppression)
consiste proposer une liste de fonctionnalits qui pourraient
ne plus tre reconduites dans Java EE 7. par exemple :
EJB 2.x Entity Beans CMP : modle de composants
persistants lourd a t remplac par JPA.
JAX-RPC : les services web SOAP comme appels RPC
remplace par JAX-WS plus simple et plus robuste.

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

Java EE : nouveauts de la version 6


Java EE 6 est plus simple utiliser :
Les composants web (servlets, beans grs par JSF, convertisseurs,
validateurs et les moteurs de rendus) sont devenues des classes
annotes pouvant ne pas utiliser les descripteurs de dploiement en
XML.
En JSF le fichier faces-config.xml est devenu facutatif
Les EJBs peuvent tre dploys directement dans un fichier war sans
avoir t au pralable assembl dans un fichier jar.
Java EE 6 est devenu plus riche :
Ajout de nouvelles spcifications et amliorent celles existantes.
Introduction des services web REST
JPA 2.0 a t amlior
EJB 3.1 et apparition dun nouveau composant bean session singleton
JSF 2.0 enrichie avec le support dAjax et des facelets.
2015/2016 36
Java EE 7

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.

Les WebSockets sont nouvelles sur la plate-forme, elles


rduisent le temps de rponse pour l'change bidirectionnel
des donnes.

Support JSON (JavaScript Object Notation) simplifie


l'analyse des donnes pour les applications portables.

Les services web RESTFUL ont t amliors pour livrer


des services asynchrones, volutives et de hautes
performances.
2015/2016 Java EE 7 38

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.

Depuis Java EE 5, les annotations ont t introduites dans la


plate-forme. Elles dcorent le code (classes Java, des
interfaces, champs, mthodes ...).

Le code suivant montre un POJO (Plain Old Java Object) qui


dclare un certain comportement en utilisant des annotations
sur la classe et sur un attribut.

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

Liste des descripteurs de


dploiement en JEE

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.

Parce quon vite de mlanger du Java et XML.

Lorsque les donnes, les mthodes et les mtadonnes avec


annotations se trouvent en un seul endroit , ceci permet de
faciliter lanalyser dune application.
D'autre part, les descripteurs de dploiement sont des fichiers
XML externes qui peuvent tre modifis sans ncessiter de
modifications au code source.
Si vous utilisez la fois, les annotations et les descripteurs de
dploiement, ces derniers ont priorit sur les annotations.

2015/2016 Java EE 7 45

Java EE : application CD-Bookstore

Diagramme des cas dutilisation


2015/2016 Java EE 7 46

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

Java EE : Outils recommands par


Oracle
Junit 4.11: est un framework open source pour lcriture et lexcution
de tests. La version 4 fournit un modle de test plus simple, plus riche
et plus facile demploi.

Derby 10.11.1 : est un systme de base de donnes relationnelles


entirement fonctionnel qui supporte les transactions et peut sintgrer
dans nimporte quelle solution Java. Le SGBD intgr en standard
avec le serveur Java EE nomm JavaDB (SGBD Derby).

GlassFish 4.1 : serveur dapplication. Il est limplmentation de


rfrence de la plateforme Java EE. Il est construit sur un noyau
modulaire reposant sur les composants OSGI. Limplmentation de
persistance JPA, EclipseLink.
Loutil de dveloppement galement appel IDE, NetBeans 8.0.1

2015/2016 Java EE 7 48

24

Das könnte Ihnen auch gefallen