S•Sources

publicité
•Sources
S
•Cours de F.Boyer
•Cours
C
de
d Pierre‐Yves
Pi
Y
Gib ll
Gibello
Java EE ‐ Objectifs
j
 Faciliter
F ili lle développement
dé l
d nouvelles
de
ll
applications à base de composants
 Intégration avec les systèmes
d’information existants
 Support pour les applications « critiques »
de ll’entreprise
entreprise
 Disponibilité, tolérance aux pannes,
montée en charge,
charge sécurité ...
Java EE – C’est quoi?
q
 http://java.sun.com/javaee
anciennement, J2EE (Java2 Enterprise Edition)
 Spécifications
 Programmation, assemblage, déploiement
 Serveur et services
 Modèle de programmation
 Implémentation
p
de référence
 Suite(s) de tests de conformance
 Certification Sun
 Accès
A è au processus d
de certification
tifi ti payantt ((cher
h !!
 Lourd (> 20.000 tests)
 Label
abe Java EE Su
Sun (qua
(qualification
cat o de plateformes)
p ate o es)
Offres commerciales
 Oracle WebLogic (haut de gamme)
 IBM Websphere
W b h
( 1)
(no
 Oracle ((Sun)) Glassfish
 NEC WebOTX
 SAP NetWeaver
 TmaxSoft Jeus, Kingdee Apusic, TongTech
TTongWeb
W b AS
…
Offre open‐source
p
 JBoss (no 1 en nombre de déploiements)
 OW2 JOnAS
JO AS
 Oracle ((Sun)) Glassfish ((« Platform edition
»)
 Apache Geronimo (« Community edition »
de IBM Websphere)
 openEjb
…
Java EE sous l ’oeil de Darwin...
 Standard en évolution/maturation depuis 1997/1998
(J2EE 1.0,
1 0, …,, 1.3,
1 3, 1.4,
1 4, Java EE depuis 2006)
 Au départ support d’applications Web n‐tiers
((architecture décentralisée))
 Présentation : Servlet (principalement HTTP)
 Logique métier : EJB
 Gestion de données : JDBC
 Vers une infrastructure de support standard pour EAI
 Facteurs de rationalisation majeur (JTA/JTS, JMS, JCA,
WS)
 Évolution
É l i d
de produits
d i existants
i
vers Java
J
EE
Java EE
Vue ggénérale de l’architecture
Architecture multi‐tiers
 Client
 Léger (Web
(Web, browser)
 Lourd (Application java, Applet…)
 Architecture
A hit t
orientée
i té service
i (Application
(A li ti
répartie sans présentation)
 Serveur
S
d ’’applications
li ti
 Conteneur EJB + logique métier
 Services non fonctionnels
f
l
 EIS ou Base de données
Conteneur Web
 Servlets
 Code
C d java
j
exécuté
é té sur le
l serveur
 Equivalent du CGI
 Génération de contenu Web dynamique
 JSP: Java Server Pages
 Mélange de HTML/XML et de code java
 Librairies
b
d ’extension
’
(«
( taglibs
l b »))
 Précompilation
p
en servlet
RMI
 Remote Method Invocation
 Java seulement,
seulement mais passerelles
 « RPC objet » (appels sur objets distants)
 Service
S i de
d nommage (RMI registry)
i
)
 Sécurité paramétrable (SecurityManager)
 Garbage Collection distribuée
 Téléchargement
g
de code
 Fonctions avancées
 Activation d ’objets
objets persistants, Réplication
JNDI
 Service de nommage / annuaire
 Java
J
N i and
Naming
d Directory
Di t
Interface
I t f
 API accès aux annuaires
 javax.naming
 « Service Provider » par annuaire cible (LDAP, NIS, RMI
registry…)
i t
)
 Utilisation avec les EJB
 Accès au bean (stub
(
ou interface locale)) pour initialiser
 Accès à diverses ressources (UserTransaction, Queues
JMS DataSources…)
JMS,
D t S
)
JMS
 Java Messaging Service
 JMS P
Provider
id : iinclus
l d
dans JavaEE
J EE
 Transport
p synchrone
y
ou asynchrone,
y
Garantie de livraison
 « Messaging domains » point à point ou
« publish/subscribe »
 Lien avec EJB : « message‐driven
message driven bean »
 Pour échanges asynchrones
API JavaEE de transactions : JTA
 Java Transaction API
 Package javax.transaction
javax transaction
 TransactionManager :
begin( ), commit( ), rollback( ) …
 Transaction :
 commit( ), rollback( ), enlistResource(XAResource),
registerSynchronisation(Synchronization) ...
 Synchronization :
 beforeCompletion(
b f C
l ti ( ),
) afterCompletion(commit
ft C
l ti (
it |
rollback)

JMX
 Java Management eXtensions
 API unique
q p
pour applications
pp
de management
g
 Mbeans avec accesseurs get/set
 Typage faible, attributs nommés
 Serveur JMX–
 Enregistrement des Mbeans
 Les applis d ’administration
administration dialoguent avec le serveur JMX
 •nstrumenter un composant
 Fournir un ou des Mbeans
 Les enregistrer auprès du serveur JMX
Sécurité : JAAS
 Authentification et autorisation
 Authentification :

s'assurer que le client est bien celui qu'il prétend être.
 Autorisation (ou « habilitation ») :

s'assurer qu'il détient les droits de faire ce qu'il demande.
 Clients
l
regroupés
é par « roles
l »
 ex. administrateur, développeur, etc...
 La gestion des associations nom/ mot de passe ou certificat / rôle est sous‐
t ité à un « Realm
traitée
R l » (peut
(
t utiliser
tili diffé
différentes
t ttechniques
h i
: fi
fichier
hi de
d conf,f
base de données, LDAP...)
 Intégré aux mécanismes de sécurité du conteneur Web
 Pour les clients lourds java,
java APIs clientes JAAS pour implémenter
l'intéraction avec l'utilisateur (ex. saisie du mot de passe...)
Entityy Beans
 Composants métier représentant des données
persistantes, en base relationnelle
persistantes
 Gestion du mapping objet‐relationnel
 standard
d d JPA
 Vu dans cours précédent
 Connexion à la
l source de
d d
données du
d container
 À spécifier dans « persistence.xml »
Sources
 L’environnement Java EE, F. Boyer
 http://sardes.inrialpes.fr/~boyer/cours/
htt // d i i l
f/ b
/
/
 Java EE, Pierre‐Yves Gibello
Téléchargement