SlideShare une entreprise Scribd logo
1  sur  58
Java Enterprise Edition
et son écosystème
Christophe ZOME
Architecte Technique Java/J2EE
Plan de la présentation
Qu'est ce que Java et JEE ?
Les Technologies(JSR).
Les frameworks.
Le middleware.
Les outils.
Qu'est ce que Java et JEE ?
Qu'est ce que Java ?
Java est à la fois :
Un langage de programmation.
Une plateforme d'exécution.
Qu'est ce que Java ?
Java offre des APIs (Interface de programmation) qui sont
une collection de composants prêts à l'emploi.
Qu'est ce que JEE ?
JEE est la version "entreprise" de Java, elle a pour but de
faciliter le développement d'applications distribuées.
Mais en fait, JEE est avant tout une norme,un ensemble
de spécifications.
C'est un ensemble de standard décrivant des services
techniques comme, par exemple, comment accéder à un
annuaire, à une base de données, à des documents...
Important : JEE définit ce qui doit être fournit mais ne dit
pas comment cela doit être fournit.
Qu'est ce que JEE ?
Exemple de services :
JDBC (Java DataBase Connectivity) est une API d'accès
aux bases de données relationnelles.
JNDI (Java Naming and Directory Interface) est une API
d'accès aux services de nommage et aux annuaires
d'entreprises tels que DNS, NIS, LDAP...
JTA (Java Transaction API) est une API définissant des
interfaces standard avec un gestionnaire de transactions.
Qu'est ce que JEE ?
JEE définit ce qui doit être fourni mais ne dit pas
comment cela doit être fourni.
Ceci est une différence majeure par rapport aux précédentes
plateformes. En PHP, VB, Delphi... vous utilisez les fonctions
fournies par l'éditeur.
Vous utilisez à la fois la fonction et son implémentation : si vous
n'êtes pas content de la façon dont Delphi se connecte à
LDAP, vous n'y pouvez rien, ou alors, vous devez vous passer
de l'API et ré-écrire du code.
Qu'est ce que JEE ?
Le principe de séparation est celui de la prise de courant
Qu'est ce que JEE ?
La prise électrique correspond à ce qu'on appelle en Java une
interface.
La prise permet à la cafetière et à la centrale nucléaire de
travailler ensemble sans se connaître l'un et l'autre. Le
concepteur de la centrale nucléaire n'a pas à savoir comment
marche une cafetière et vice et versa.
La cafetière peut être remplacée par un aspirateur et la
centrale nucléaire par une éolienne.
Qu'est ce que JEE ?
Généralement, les applications JEE fonctionnent à l'intérieur
d'un serveur d'applications (appelé aussi conteneur) qui offre
les services JEE à ces mêmes applications.
Qu'est ce que JEE ?
Exemple de serveurs d'applications JEE :
IBM Websphere
BEA Weblogic
Oracle 9i AS
JBoss
JOnAS
Geronimo
...
Une application JEE "standard" peut fonctionner dans n'importe
quel conteneur en modifiant seulement sa configuration.
Qu'est ce que JEE ?
Ce qu'il faut retenir :
JEE est en ensemble de standard.
JEE décrit des services techniques pour bâtir des
applications d'entreprise.
Tout le monde peut écrire sa propre implémentation du
standard.
Une application JEE s'exécute dans un serveur
d'applications qui est un environnement d'exécution.
Les technologies (JSR)
Les Technologies
Servlet
Les servlets sont des applications Java qui fonctionnent dans
un serveur web et qui répondent aux requêtes client.
Le conteneur reçoit la requête du client, et sélectionne la
servlet qui aura à la traiter. Le conteneur fournit également tout
un ensemble de services standards pour simplifier la gestion
des requêtes et des sessions.
Conteneur le plus connu : Tomcat.
Les Technologies
Exemple de Servlet :
import
import
import
java.io.*;
javax.servlet.*;
javax.servlet.http.*;
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
PrintWriter out = resp.getWriter();
out.println("<html><head><title>Servlet</title></head><body>test</body></html>");
out.close();
}
}
Les Technologies
Portlet
Une portlet est une application Java qui fonctionne et s'intègre
dans un portail. Chaque portlet est indépendant des autres
portlets s'affichant dans la même page.
Exemple de portail : Websphere portal, JBoss portal, Pluto...
Exemple de portail
Les Technologies
(exemple de Portlet)
Les Technologies
java.io.IOException;
javax.portlet.GenericPortlet;
javax.portlet.PortletException;
javax.portlet.RenderRequest;
javax.portlet.RenderResponse;
Exemple de Porlet :
import
import
import
import
import
public class HelloWorldPortlet extends GenericPortlet {
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
response.setContentType("text/html");
response.getWriter().write("Hello World!");
}
}
Les Technologies
(JSP)
Java Server Pages (JSP)
Cette technologie permet aux développeurs d'insérer du code
java dans des pages web.
Fonctionne dans un conteneur web.
Les Technologies
(JSP)
<%@page contentType="text/html"%>
<%@page import="java.util.*"%>
<html>
<head><title>Page JSP</title></head>
<body>
<%! int nombreVisites = 0; %>
<% // Code Java
Date date = new Date();
nombreVisites++;
%>
<h1>Exemple de page JSP</h1>
<p>Au moment de l'exécution de ce script, nous sommes le <%= date %>.</p>
<p>Cette page a été affichée <%= nombreVisites %> fois!</p>
</body>
</html>
Exemple de page JSP
Les Technologies
(JSF)
Java Server Face (JSF)
Cette technologie est un framework qui a pour but de simplifier
le développement d'interfaces utilisateurs au travers de la
modernisation de l’écriture des contrôleurs. Bien qu'il permette
de faire tout type d'interface, il est aussi vu comme une
amélioration des JSP.
Fonctionne dans un conteneur web comme tomcat.
 <%@ page contentType="text/html; charset=Cp1252" %>
 <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html;
charset=Cp1252"/>
 <title>jsf-title</title>
 </head>
 <body>
 <f:view>
 <h:form>
 UserID: <h:inputText value="#{mgr.userID}"/>
 <br/>Password: <h:inputText value="#{mgr.password}"/>
 <br/> <h:commandButton value="Login" action="#{mgr.loginAction}"/>
 </h:form>
 </f:view>
 </body>
 </html>
Les Technologies
(JSF)
Exemple de page JSF :
Les Technologies
(EJB)
Enterprise Java Bean (EJB)
Les EJB sont des composants logiciels résidant sur le serveur.
Ils permettent :
De représenter des données (Entité).
D'offrir des services (Session).
De réaliser des traitements asynchrones (MDB).
Ils sont accessibles à distance et sont répertoriés dans un
annuaire.
Ils s'exécutent dans un serveur d'application comme Oracle
AS, BEA Weblogic ou IBM Websphere...
Les Technologies
(EJB)
Exemple d'un EJB entité /
@Entity
@Table(name="book")
public class Cat {
@Id
private Integer id;
private String name;
}
Les Technologies
(EJB)
Exemple d'un EJB de session :
@Stateless
public class StatelessSessionBeanImpl implements
StatelessSessionBean {
public String sayHello() {return ("Hello world !");
}
}
Les Technologies
(EJB)
Exemple d'un EJB orienté message :
@MessageDriven(name="LongProcessMessageBean", activationConfig = {
@ActivationConfigProperty(propertyName="destination",
propertyValue="fileAttente")
})
public class LongProcessMessageBean implements MessageListener {
@Resource
private MessageDrivenContext context;
public void onMessage(Message
message) {
System.out.println("Message reçu
!");
}
}
Les Technologies
(JNDI)
Java Naming and Directory Interface (JNDI)
JNDI est une API de connexion à des annuaires comme LDAP.
En JEE, les objets sont souvent référencés dans un l'annuaire
du serveur d'applications. Un objet peut donc en retrouver un
autre grâce à l'annuaire.
Les Technologies
(JDBC)
Java DataBase Connectivity (JDBC)
Cette API permet aux applications Java d'accéder aux bases
de données.
Il s'agit de la même interface pour toutes les bases de
données, seul le driver change.
Les Technologies
(JMS)
Java Message Service (JMS)
Cette technologie permet d'envoyer et de recevoir des
messages de manière asynchrone entre applications ou
composants Java.
Cette technique est utilisée pour gérer les déconnexions, les
montées en charge ou pour découpler les développements.
Cette technologie est utilisée par les EJB MDB.
Les Technologies
(Java Mail)
JavaMail :
Cette API permet l'envoi et la réception d'emails.
Les Technologies
(JMX)
Java Management Extensions (JMX)
Cette technologie permet de gérer le fonctionnement d'une
application Java en cours d'exécution.
Vous pouvez :
Modifier dynamiquement le comportement de l'application.
Générer des statistiques d'utilisation.
Exécuter des méthodes.
Les Technologies
(JTA)
Java Transaction API (JTA)
Cette technologie permet de piloter les transactions sans avoir
à connaître les détails du gestionnaire de transactions.
Cette API gère aussi transactions distribuées, c'est à dire les
transactions qui peuvent démarrer sur un système et dépendre
du résultat d'autres systèmes.
Les technologies
(XML)
XML
Java dispose de plusieurs API nécessaires au traitement du
XML :
 JAXB
 SAX
 DOM & JDOM
 JAXP
 Etc..
Les Technologies
(RMI)
Remote Method Invocation (RMI)
Il s'agit d'une API qui permet à des objets Java de
communiquer à distance.
Il s'agit de quelque chose de similaire à Corba ou RPC.
Les Technologies
Ce qu'il faut retenir :
Java dispose d'API pour à peu près tout.
Nous n'avons vu qu'une partie des API disponibles.
Avant de continuer...
Un avertissement...
Le plus gros avantage de Java est aussi son plus gros
inconvénient, il s'agit de :
Sa richesse !
Vous trouverez un nombre impressionnant de façon de faire
une même chose.
Exemple : Comment faire une page web ?
Ça dépend...
Au moins 35 frameworks existent !
Les Frameworks
Les Frameworks
Définition : On va dire qu'il s'agit d'une infrastructure logicielle
qui facilite la conception des applications par l'utilisation de
bibliothèques, de modèles de convention...
De manière plus générale, il s'agit d'une "structure" qui soutient
quelque chose d'autre. Une sorte de squelette qui sert de base
à quelque chose qui est construit.
Les Frameworks
Y a t'il beaucoup de frameworks Java ?
Enormément.
Pourquoi ?
Très grande communauté.
De nombreux besoins.
Différents points de vues.
...
Les Frameworks
Struts, le plus vieux et l'un des plus répandus !
Il permet de développer des applications web en Java en
suivant l'architecture Modèle-Vue-Contrôleur.
Les frameworks
Hibernate, celui qui a fait changer le JCP.
Hibernate permet de gérer la persistence des données, c'est à
dire : plus besoin de SQL . On laisse Java stocker
automatiquement les objets dans la base.
Les Frameworks
Spring, le conteneur léger.
Spring a été crée avec l'idée que JEE était bien trop compliqué
et qu'il vallait mieux coder par Interface que par héritage. Ils ont
rencontré un véritable succès et ils ont popularisé les
approches IOC et AOP qui sont repris dans la nouvelle norme
JEE.
Les Frameworks
GWT, framework de Google pour les applications Ajax.
Vous permet de développer des applications web Ajax,
directement en Java, aussi facilement que vous feriez une
application de bureau classique.
Plus besoin de connaître HTML, Javascript, les navigateurs...
Les Frameworks
Ce qu'il faut retenir :
Java dispose d'un nombre impressionnant de frameworks. Il
y en a même trop.
Cependant, certains de ces frameworks sont tout
simplement fantastiques et il ne faut pas s'en priver.
Tout projet Java utilise des frameworks Open Source.
Statitisques sur les Framework JEE
Le middleware
Le middleware
Définition wikipedia : Un intergiciel (en anglais middleware) est
un logiciel servant d'intermédiaire de communication entre
plusieurs applications, généralement complexes ou distribuées
sur un réseau informatique.
Le middleware est le socle nécessaire à la mise en oeuvre des
applications.
Le middleware
Les serveurs d'applications JEE.
Le serveur d'applications est le conteneur où vont s'exécuter
les applications JEE.
Il offre à ces applications l'ensemble des services JEE.
Le middleware
Serveurs d'applications du marché :
JBoss (Fondation JBoss)
Apache Geronimo (Fondation Apache)
JOnAS (Objectweb)
Oracle Application Server 10g
Resin
SAP NetWeaver
Glassfish (Sun)
WebSphere Application Server (IBM)
WebLogic (BEA)
...
Le middleware
Ce qu'il faut retenir :
Les serveurs d'application sont la pierre angulaire de ces
architectures.
Architecture globale cible
• JPA
• Hibernate
• JDBC
• Spring Core
• EJB
Les outils
Les outils
Environnement de développement IDE
Il s'agit des outils qui permettent de développer en Java.
Comme pour les serveurs d'applications, il en existe
beaucoup...
Eclipse (IBM)
Netbeans (Sun)
WSAD (IBM)
IntelliJ (Idea)
JDev (Oracle)
Eclipse avec son ouverture remporte un grand succès.
Les outils
Ant & Maven, Deux outils d'industrialisation des projets.
Ant permet d'automatiser les tâches d'un projet (compilation,
construction, validation, déploiement, lancement...).
Maven, lui, offre une structure de projets et un ensemble de
tâches pré définies.
Les outils
Ce qu'il faut retenir :
Comme pour tous les autres "composants", il existe un
nombre impressionnant d'outils pour le développement.
Eclipse a tout de même le vent en poupe grâce aux
nombres impressionnants de plugins existants.
Questions ?

Contenu connexe

Tendances

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans fr
Ben Abdallah Helmi
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
medbmb
 
Introduction jdbc
Introduction  jdbcIntroduction  jdbc
Introduction jdbc
Karim Amane
 

Tendances (20)

Ejb 3
Ejb 3Ejb 3
Ejb 3
 
Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)
 
Ejb
Ejb Ejb
Ejb
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Spring
SpringSpring
Spring
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
2
22
2
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans fr
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
CDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGICDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGI
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
J2 ee
J2 eeJ2 ee
J2 ee
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
 
J2ee
J2eeJ2ee
J2ee
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Introduction jdbc
Introduction  jdbcIntroduction  jdbc
Introduction jdbc
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer Faces
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02
 

Similaire à Support cours j2_ee

Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
ngombeemmanuel
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage Licence
Mathias Kluba
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
Mejdeddine Bouzouita
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Eric Bourdet
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Eric Bourdet
 

Similaire à Support cours j2_ee (20)

introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
Java j2ee
Java j2eeJava j2ee
Java j2ee
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage Licence
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
API JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdf
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
#2 Architecture OSGi
#2 Architecture OSGi#2 Architecture OSGi
#2 Architecture OSGi
 
Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
 
API JSP avec Java EE.pptx
API JSP avec Java EE.pptxAPI JSP avec Java EE.pptx
API JSP avec Java EE.pptx
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Talend
TalendTalend
Talend
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 

Support cours j2_ee

  • 1. Java Enterprise Edition et son écosystème Christophe ZOME Architecte Technique Java/J2EE
  • 2. Plan de la présentation Qu'est ce que Java et JEE ? Les Technologies(JSR). Les frameworks. Le middleware. Les outils.
  • 3. Qu'est ce que Java et JEE ?
  • 4. Qu'est ce que Java ? Java est à la fois : Un langage de programmation. Une plateforme d'exécution.
  • 5. Qu'est ce que Java ? Java offre des APIs (Interface de programmation) qui sont une collection de composants prêts à l'emploi.
  • 6. Qu'est ce que JEE ? JEE est la version "entreprise" de Java, elle a pour but de faciliter le développement d'applications distribuées. Mais en fait, JEE est avant tout une norme,un ensemble de spécifications. C'est un ensemble de standard décrivant des services techniques comme, par exemple, comment accéder à un annuaire, à une base de données, à des documents... Important : JEE définit ce qui doit être fournit mais ne dit pas comment cela doit être fournit.
  • 7. Qu'est ce que JEE ? Exemple de services : JDBC (Java DataBase Connectivity) est une API d'accès aux bases de données relationnelles. JNDI (Java Naming and Directory Interface) est une API d'accès aux services de nommage et aux annuaires d'entreprises tels que DNS, NIS, LDAP... JTA (Java Transaction API) est une API définissant des interfaces standard avec un gestionnaire de transactions.
  • 8. Qu'est ce que JEE ? JEE définit ce qui doit être fourni mais ne dit pas comment cela doit être fourni. Ceci est une différence majeure par rapport aux précédentes plateformes. En PHP, VB, Delphi... vous utilisez les fonctions fournies par l'éditeur. Vous utilisez à la fois la fonction et son implémentation : si vous n'êtes pas content de la façon dont Delphi se connecte à LDAP, vous n'y pouvez rien, ou alors, vous devez vous passer de l'API et ré-écrire du code.
  • 9. Qu'est ce que JEE ? Le principe de séparation est celui de la prise de courant
  • 10. Qu'est ce que JEE ? La prise électrique correspond à ce qu'on appelle en Java une interface. La prise permet à la cafetière et à la centrale nucléaire de travailler ensemble sans se connaître l'un et l'autre. Le concepteur de la centrale nucléaire n'a pas à savoir comment marche une cafetière et vice et versa. La cafetière peut être remplacée par un aspirateur et la centrale nucléaire par une éolienne.
  • 11. Qu'est ce que JEE ? Généralement, les applications JEE fonctionnent à l'intérieur d'un serveur d'applications (appelé aussi conteneur) qui offre les services JEE à ces mêmes applications.
  • 12. Qu'est ce que JEE ? Exemple de serveurs d'applications JEE : IBM Websphere BEA Weblogic Oracle 9i AS JBoss JOnAS Geronimo ... Une application JEE "standard" peut fonctionner dans n'importe quel conteneur en modifiant seulement sa configuration.
  • 13. Qu'est ce que JEE ? Ce qu'il faut retenir : JEE est en ensemble de standard. JEE décrit des services techniques pour bâtir des applications d'entreprise. Tout le monde peut écrire sa propre implémentation du standard. Une application JEE s'exécute dans un serveur d'applications qui est un environnement d'exécution.
  • 15. Les Technologies Servlet Les servlets sont des applications Java qui fonctionnent dans un serveur web et qui répondent aux requêtes client. Le conteneur reçoit la requête du client, et sélectionne la servlet qui aura à la traiter. Le conteneur fournit également tout un ensemble de services standards pour simplifier la gestion des requêtes et des sessions. Conteneur le plus connu : Tomcat.
  • 16. Les Technologies Exemple de Servlet : import import import java.io.*; javax.servlet.*; javax.servlet.http.*; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { PrintWriter out = resp.getWriter(); out.println("<html><head><title>Servlet</title></head><body>test</body></html>"); out.close(); } }
  • 17. Les Technologies Portlet Une portlet est une application Java qui fonctionne et s'intègre dans un portail. Chaque portlet est indépendant des autres portlets s'affichant dans la même page. Exemple de portail : Websphere portal, JBoss portal, Pluto...
  • 18. Exemple de portail Les Technologies (exemple de Portlet)
  • 19. Les Technologies java.io.IOException; javax.portlet.GenericPortlet; javax.portlet.PortletException; javax.portlet.RenderRequest; javax.portlet.RenderResponse; Exemple de Porlet : import import import import import public class HelloWorldPortlet extends GenericPortlet { protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.setContentType("text/html"); response.getWriter().write("Hello World!"); } }
  • 20. Les Technologies (JSP) Java Server Pages (JSP) Cette technologie permet aux développeurs d'insérer du code java dans des pages web. Fonctionne dans un conteneur web.
  • 21. Les Technologies (JSP) <%@page contentType="text/html"%> <%@page import="java.util.*"%> <html> <head><title>Page JSP</title></head> <body> <%! int nombreVisites = 0; %> <% // Code Java Date date = new Date(); nombreVisites++; %> <h1>Exemple de page JSP</h1> <p>Au moment de l'exécution de ce script, nous sommes le <%= date %>.</p> <p>Cette page a été affichée <%= nombreVisites %> fois!</p> </body> </html> Exemple de page JSP
  • 22. Les Technologies (JSF) Java Server Face (JSF) Cette technologie est un framework qui a pour but de simplifier le développement d'interfaces utilisateurs au travers de la modernisation de l’écriture des contrôleurs. Bien qu'il permette de faire tout type d'interface, il est aussi vu comme une amélioration des JSP. Fonctionne dans un conteneur web comme tomcat.
  • 23.  <%@ page contentType="text/html; charset=Cp1252" %>  <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>  <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>  <title>jsf-title</title>  </head>  <body>  <f:view>  <h:form>  UserID: <h:inputText value="#{mgr.userID}"/>  <br/>Password: <h:inputText value="#{mgr.password}"/>  <br/> <h:commandButton value="Login" action="#{mgr.loginAction}"/>  </h:form>  </f:view>  </body>  </html> Les Technologies (JSF) Exemple de page JSF :
  • 24. Les Technologies (EJB) Enterprise Java Bean (EJB) Les EJB sont des composants logiciels résidant sur le serveur. Ils permettent : De représenter des données (Entité). D'offrir des services (Session). De réaliser des traitements asynchrones (MDB). Ils sont accessibles à distance et sont répertoriés dans un annuaire. Ils s'exécutent dans un serveur d'application comme Oracle AS, BEA Weblogic ou IBM Websphere...
  • 25. Les Technologies (EJB) Exemple d'un EJB entité / @Entity @Table(name="book") public class Cat { @Id private Integer id; private String name; }
  • 26. Les Technologies (EJB) Exemple d'un EJB de session : @Stateless public class StatelessSessionBeanImpl implements StatelessSessionBean { public String sayHello() {return ("Hello world !"); } }
  • 27. Les Technologies (EJB) Exemple d'un EJB orienté message : @MessageDriven(name="LongProcessMessageBean", activationConfig = { @ActivationConfigProperty(propertyName="destination", propertyValue="fileAttente") }) public class LongProcessMessageBean implements MessageListener { @Resource private MessageDrivenContext context; public void onMessage(Message message) { System.out.println("Message reçu !"); } }
  • 28. Les Technologies (JNDI) Java Naming and Directory Interface (JNDI) JNDI est une API de connexion à des annuaires comme LDAP. En JEE, les objets sont souvent référencés dans un l'annuaire du serveur d'applications. Un objet peut donc en retrouver un autre grâce à l'annuaire.
  • 29. Les Technologies (JDBC) Java DataBase Connectivity (JDBC) Cette API permet aux applications Java d'accéder aux bases de données. Il s'agit de la même interface pour toutes les bases de données, seul le driver change.
  • 30. Les Technologies (JMS) Java Message Service (JMS) Cette technologie permet d'envoyer et de recevoir des messages de manière asynchrone entre applications ou composants Java. Cette technique est utilisée pour gérer les déconnexions, les montées en charge ou pour découpler les développements. Cette technologie est utilisée par les EJB MDB.
  • 31. Les Technologies (Java Mail) JavaMail : Cette API permet l'envoi et la réception d'emails.
  • 32. Les Technologies (JMX) Java Management Extensions (JMX) Cette technologie permet de gérer le fonctionnement d'une application Java en cours d'exécution. Vous pouvez : Modifier dynamiquement le comportement de l'application. Générer des statistiques d'utilisation. Exécuter des méthodes.
  • 33. Les Technologies (JTA) Java Transaction API (JTA) Cette technologie permet de piloter les transactions sans avoir à connaître les détails du gestionnaire de transactions. Cette API gère aussi transactions distribuées, c'est à dire les transactions qui peuvent démarrer sur un système et dépendre du résultat d'autres systèmes.
  • 34. Les technologies (XML) XML Java dispose de plusieurs API nécessaires au traitement du XML :  JAXB  SAX  DOM & JDOM  JAXP  Etc..
  • 35. Les Technologies (RMI) Remote Method Invocation (RMI) Il s'agit d'une API qui permet à des objets Java de communiquer à distance. Il s'agit de quelque chose de similaire à Corba ou RPC.
  • 36. Les Technologies Ce qu'il faut retenir : Java dispose d'API pour à peu près tout. Nous n'avons vu qu'une partie des API disponibles.
  • 38. Un avertissement... Le plus gros avantage de Java est aussi son plus gros inconvénient, il s'agit de : Sa richesse ! Vous trouverez un nombre impressionnant de façon de faire une même chose. Exemple : Comment faire une page web ? Ça dépend... Au moins 35 frameworks existent !
  • 40. Les Frameworks Définition : On va dire qu'il s'agit d'une infrastructure logicielle qui facilite la conception des applications par l'utilisation de bibliothèques, de modèles de convention... De manière plus générale, il s'agit d'une "structure" qui soutient quelque chose d'autre. Une sorte de squelette qui sert de base à quelque chose qui est construit.
  • 41. Les Frameworks Y a t'il beaucoup de frameworks Java ? Enormément. Pourquoi ? Très grande communauté. De nombreux besoins. Différents points de vues. ...
  • 42. Les Frameworks Struts, le plus vieux et l'un des plus répandus ! Il permet de développer des applications web en Java en suivant l'architecture Modèle-Vue-Contrôleur.
  • 43. Les frameworks Hibernate, celui qui a fait changer le JCP. Hibernate permet de gérer la persistence des données, c'est à dire : plus besoin de SQL . On laisse Java stocker automatiquement les objets dans la base.
  • 44. Les Frameworks Spring, le conteneur léger. Spring a été crée avec l'idée que JEE était bien trop compliqué et qu'il vallait mieux coder par Interface que par héritage. Ils ont rencontré un véritable succès et ils ont popularisé les approches IOC et AOP qui sont repris dans la nouvelle norme JEE.
  • 45. Les Frameworks GWT, framework de Google pour les applications Ajax. Vous permet de développer des applications web Ajax, directement en Java, aussi facilement que vous feriez une application de bureau classique. Plus besoin de connaître HTML, Javascript, les navigateurs...
  • 46. Les Frameworks Ce qu'il faut retenir : Java dispose d'un nombre impressionnant de frameworks. Il y en a même trop. Cependant, certains de ces frameworks sont tout simplement fantastiques et il ne faut pas s'en priver. Tout projet Java utilise des frameworks Open Source.
  • 47. Statitisques sur les Framework JEE
  • 49. Le middleware Définition wikipedia : Un intergiciel (en anglais middleware) est un logiciel servant d'intermédiaire de communication entre plusieurs applications, généralement complexes ou distribuées sur un réseau informatique. Le middleware est le socle nécessaire à la mise en oeuvre des applications.
  • 50. Le middleware Les serveurs d'applications JEE. Le serveur d'applications est le conteneur où vont s'exécuter les applications JEE. Il offre à ces applications l'ensemble des services JEE.
  • 51. Le middleware Serveurs d'applications du marché : JBoss (Fondation JBoss) Apache Geronimo (Fondation Apache) JOnAS (Objectweb) Oracle Application Server 10g Resin SAP NetWeaver Glassfish (Sun) WebSphere Application Server (IBM) WebLogic (BEA) ...
  • 52. Le middleware Ce qu'il faut retenir : Les serveurs d'application sont la pierre angulaire de ces architectures.
  • 53. Architecture globale cible • JPA • Hibernate • JDBC • Spring Core • EJB
  • 55. Les outils Environnement de développement IDE Il s'agit des outils qui permettent de développer en Java. Comme pour les serveurs d'applications, il en existe beaucoup... Eclipse (IBM) Netbeans (Sun) WSAD (IBM) IntelliJ (Idea) JDev (Oracle) Eclipse avec son ouverture remporte un grand succès.
  • 56. Les outils Ant & Maven, Deux outils d'industrialisation des projets. Ant permet d'automatiser les tâches d'un projet (compilation, construction, validation, déploiement, lancement...). Maven, lui, offre une structure de projets et un ensemble de tâches pré définies.
  • 57. Les outils Ce qu'il faut retenir : Comme pour tous les autres "composants", il existe un nombre impressionnant d'outils pour le développement. Eclipse a tout de même le vent en poupe grâce aux nombres impressionnants de plugins existants.