Académique Documents
Professionnel Documents
Culture Documents
com/site/walidzeddini/cours
29/05/2011
Au sommaire
Introduction au J2EE
Quest ce que J2EE ?
Pourquoi utiliser une plateforme ?
Les acteurs dune application J2EE
J2EE en dtail
Walid ZEDDINI, Dv , Applications Web J2EE
Bibliographie
2
Introduction au J2EE
29/05/2011
Introduction au J2EE
29/05/2011
Introduction au J2EE
29/05/2011
Introduction au J2EE
Lavantage principal de partir dune plateforme est que lquipe de dveloppement na pas
sacquitter de dvelopper certaines tches (connexion la base de donnes par
exemple, gestion dobjets ).
Ce sont des tches que lon retrouve trs souvent dans un grand nombre de projet et qui
nont pas dintrt tre re-coder chaque fois (perte de temps et dargent).
De plus, mieux vaut travailler sur une plateforme qui prsente une forte stabilit (a vite
des dbuggages inutiles !).
Un autre avantage est la facilit de prise en main des API (Application Programming
Interface) de cette plateforme. En dautres termes, les API sont les services offerts par la
plateforme.
En effet, celle-ci cache trs souvent la complexit daccs telle ou telle ressource et
permet donc un gain de temps norme pour le dveloppeur qui a donc plus de temps pour
se proccuper du fonctionnement rel de son application (pas de tche ardue ou
gnrique dvelopper).
6
29/05/2011
Introduction au J2EE
Plateforme J2EE
29/05/2011
Introduction au J2EE
La ralisation dune application base sur larchitecture J2EE fait appel diffrents types
de comptences que lon trouve rarement chez une mme personne car cela va de la
conception jusqu la supervision de lapplication en passant par le dveloppement et le
dploiement. Afin de pouvoir matriser ce processus, J2EE adopte lapproche des partages
des responsabilits
Plus spcifiquement pour les EJB (Entreprise Java Beans), cette approche dfinit
plusieurs niveaux de responsabilit :
Le fournisseur des EJB : cest lacteur qui fournit des composants mtiers rutilisables soit par
lachat un fournisseur de composants, soit par dveloppement interne ;
Lassembleur dapplications : lacteur qui est capable de construire une application partir
dEJB existants ;
Le dployeur : lacteur qui rcupre lapplication et soccupe de son dploiement dans un
serveur dapplications ;
Ladministrateur : lacteur qui contrle le fonctionnement du serveur dapplication et assure la
supervision des applications ;
Le fournisseur de conteneur : lditeur qui commercialise un conteneur web ou un conteneur
EJB ; cet diteur commercialise souvent un serveur dapplication incluant ces conteneurs ;
Le fournisseur de serveur : cest lditeur qui commercialise un serveur dapplication (BEA,
IBM etc...)
8
J2EE en dtail
29/05/2011
J2EE en dtail
10
29/05/2011
J2EE en dtail
29/05/2011
J2EE en dtail
29/05/2011
J2EE en dtail
13
29/05/2011
J2EE en dtail
Composants
On distingue, en gnral, 2 catgories de composants :
Web
Mtiers: EJB
14
29/05/2011
J2EE en dtail
Web
29/05/2011
J2EE en dtail
Mtier : EJB
NOTA:
Modle MVC:
On vient de voire, les trois couches de larchitecture dapplication MVC : Modle-View
Controller . On dtaillera cette architecture dans le prochain chapitre. Retenons, pour le
moment, que MVC, s'agit bien dune architecture applicative
16
29/05/2011
J2EE en dtail
Services dinfrastructures
29/05/2011
J2EE en dtail
Services de communication
JAAS (Java Authentification and Authorization Service)
Cest une API de gestion de l'authentification et des droits d'accs.
29/05/2011
J2EE en dtail
En effet, une confusion rgne dans les esprits quant la notion de serveur d'application.
Cette confusion a t introduite en grande partie par les diteurs de serveurs d'application
J2EE (Java2 Entreprise Edition) afin de s'approprier de ce march.
La notion de serveur d'application a en effet t mlange avec celle de serveur d'objet
qui n'a absolument rien voir.
19
29/05/2011
J2EE en dtail
29/05/2011
J2EE en dtail
21
29/05/2011
J2EE en dtail
1.
2.
3.
4.
5.
6.
7.
Requte du client
Le serveur web passe la requte au serveur dapplication
Le serveur dapplication traite la requte par des appels au serveur dobjets
Le serveur dobjet traite les donnes avec les bases de donnes (en tout genre)
Le serveur dobjet retourne les objets au serveur dapplication
Le serveur dapplication renvoie le rsultat au serveur web
Le serveur web fait suivre le rsultat au client
Pour grer ces objets, un environnement d'exploitation est ncessaire : le serveur d'objets. Ce
serveur d'objets va devoir fournir des services tout fait diffrents de ceux des serveurs
d'application :
Gestion de la persistance des objets,
Gestion des transactions objets mtier
Gestion des montes en charge : ici les mcanismes n'ont rien voir avec ceux mis en oeuvre
pour un serveur d'application. Il faut pouvoir assurer la transparence de localisation,
22
l'instanciation, ... des objets mtier ...
29/05/2011
J2EE en dtail
Choix du serveur?
Bref, on le voit, on a faire des techniques trs diffrentes. Les principaux serveurs
d'objets ce jour sont les serveurs EJB (Enterprise Java Beans), Corba. Ils ne sont
ncessaires ces dveloppements que si l'on souhaite utiliser pleinement la logique
d'objets mtier.
Il est donc important de ne pas mlanger ces notions afin d'viter de se faire prendre
comme 80% des acheteurs de serveurs J2EE (incluant serveur d'application et serveur
d'objets) qui n'utilisent que le moteur de JSP/Servlets dont les cots sont beaucoup plus
limits que l'ensemble J2EE (incluant le serveur d'objets EJB).
Sur le terrain, on rencontre beaucoup plus de dveloppements sur des serveurs
d'application seuls que d'applications utilisant des serveurs d'objets. En fait, le march des
serveurs d'application s'est fortement structur depuis une ou deux annes. De plusieurs
dizaines de technologies il y a peu, seules trois technologies mergent aujourd'hui : l'offre
Java, l'offre Microsoft et l'offre PHP. Hormis cas particulier, nous recommandons de ne
pas sortir de ces trois choix.
Les points cls d'une architecture sont les capacits transactionnelles du serveur
d'application dlivrer des pages et intgrer une monte en charge L'ergonomie au
sens large est un autre point cl. Les choix de design doivent prendre en compte les
contraintes du Web (taille des images, ...).
23
29/05/2011
J2EE en dtail
Les solutions de scripting peuvent tre simples et productives mais plutt orientes vers les
sites jetables, de type vnementiel. Un site en ASP, PHP 3 ou ColdFusion peut tre
dvelopp trs rapidement ; par contre, sa maintenance est complique voire quasiimpossible.
Les solutions orientes objets techniques permettent de factoriser le code sans rentrer dans
la complexit des objets mtier. Il est important d'imposer des rgles de dveloppement
prcises ses quipes et prestataires. Les dveloppements JSP/Servlets/JavaBeans, PHP4/5,
ASP/DCOM (et ASP.Net/DCOM) permettent de tels dveloppements.
Les solutions orientes mtier sont plus complexes et plus coteuses mettre en uvre. Elles
ncessitent la mise en place de serveur d'objets. On retrouve principalement sur ce march
les serveurs d'EJB libres et propritaires.
Pour ces trois familles de solutions, des produits Open Source existent et sont de plus en
plus adopts dans les administrations et entreprises (TomCat, JBoss, JonAS).
24
29/05/2011
J2EE en dtail
25
29/05/2011
J2EE en dtail
26
29/05/2011
J2EE en dtail
29/05/2011
J2EE en dtail
29/05/2011
J2EE en dtail
29
29/05/2011
J2EE en dtail
Open source
Tomcat : Apache
Tomcat est un conteneur de servlet qui implmente la rfrence officielle pour les Servlet Java
et les JSP. Ce serveur est trs rpondu pour les applications web.
Technologies implmentes :
JSP
Servlet
JDBC
JNDI
Jonas : ObjectWeb
Jonas est un serveur dapplication implmentant la rfrence officielle pour les EJB. Il intgre un
lien avec Tomcat afin dintgrer les fonctionnalits pour les applications web.
Technologies implmentes :
JSP
Servlet
EJB
JCA
JDBC
JTA
JMS
JMX
JNDI
JAAS
30
JavaMail
29/05/2011
J2EE en dtail
Open source
Jonas : ObjectWeb
31
29/05/2011
J2EE en dtail
Open source
JBoss : Jboss
JBoss accumule les mmes fonctionnalits que Jonas. Cependant son architecture est assez
diffrente et repose principalement sur un BUS .
Des projets gravitent autour de ce serveur tels que des plug-in pour Eclipse, des modules pour
lAOP (Aspect Oriented Programming), Hibernate
JBoss est lun des serveurs dapplication les plus populaires dans lOpen Source (avec Jonas). Il
est galement de plus en plus utilis en milieu professionnel.
PS:
Jboss vient de crer un framework en plein expansion : Jboss Seam
32
29/05/2011
J2EE en dtail
Open source
JBoss : Jboss
29/05/2011
J2EE en dtail
Propritaire
WebSphere : IBM
WebLogic : BEA
WebObject : Apple
Oracle Application Server : Oracle
34
29/05/2011
J2EE en dtail
IDE ((Integrated
Integrated Development Environment
Environment))
35
29/05/2011
J2EE en dtail
IDE ((Integrated
Integrated Development Environment
Environment))
Bibliographie
29/05/2011
Bibliographie
Jason Hunter with William Crawford , Java Servlet Programming , 1st Edition November
1998,
Christopher Taylor, Timothy Kimmett, Core Java Web Server (Core Sries) , (Novembre
1998) Ed Prentice Hall Computer Books;
Dustin R. Callaway, Inside Servlets : Server-Side Programming for the Java Platform ,
May 1999, Ed Addison-Wesley Pub Co;
Bruce Perry, Java Servlet & JSP Cookbook , Pub. OReilly
Tutorial Java de Sun sur les Servlet (voir l exemple BookStore)
De nombreux sites proposent les sources de JSP/ServIet !!
Fouillez un peu avant de redvelopper la roue !
Andrew Patzer, "Programmation Java ct serveur : Servlets, JSP et EJB", Ed EyrollesWrox, 2000, (sources des exemples sur www.wroxfrance.com)
Simon Brown, Robert Burdick, Jayson Falkner, Ben Galbraith, Rod Johnson, Larry Kim,
Casey Kochmer, Thor Kristmundsson, Sing Li , Professional JSP 2nd Edition, Publisher:
Wrox Press; 2nd dition (April 2001),
David Geary, Advanced JavaServer Pages, Publisher: Pearson Higher Education; 1st
dition, May 2001
Gal Shachor, Adam Chace, and Magnus Rydin, JSP Tag libraries, Pub. Manning
Publications Company, July 2001,
Kito D. Mann, JavaServer Faces in Action, Pub. Manning Publications Company, October
2004
Didier Donsez, Dveloppement Web en JavaEE (Servlet & JSP), Octobre 2008
38