JAVA ENTERPRISE EDITION
   ET SON ÉCOSYSTÈME




@f_guezlane
fguezlane@gmail.com
Ferhat GUEZLANE
Manager/Fondateur de Algeria JU
@f_guezlane
fguezlane@gmail.com
PLAN
    Qu’est ce que JAVA


    Qu’est ce que JEE


    L’architecture MVC


     Servlet, JSP,JSF


           EJB


JEE API (JMS,JAAS,JDBC,JTA)


        Framework


  GateIn Portal Framework
QU'EST CE QUE JAVA ET
JEE ?
QU'EST CE QUE JAVA?




Java Technology   Java Technology   Workgroup   High-End
Enabled Devices   Enabled Desktop    Server      Server
COMMENT SE FAIT
L'ÉVOLUTION DE JAVA ?

          • (Des sociétés, des associations ou des individus
            )
Besoins


          • rejoindre le groupe pour participer et influencer
 JCP        l'évolution du langage. Site : http://www.jcp.org



          • décrivent les spécifications et technologies
            proposées pour un ajout à la plateforme Java.
 JSR
COMMENT SE FAIT
 L'ÉVOLUTION DE JAVA ?

Exemple :
la JSR 168 est la spécification des portlets
définissant le contrat entre les conteneurs de
portlets et les portlets.
COMMENT SE FAIT
 L'ÉVOLUTION DE JAVA ?

Le JCP fait la norme JEE.
L'industrie et le monde du libre ne passent
pas forcément par le JCP.
Le JCP intègre souvent les bonnes idées
mais cela
peut prendre du temps.
QU'EST CE QUE JEE ?
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.


Depuis sa version 5, J2EE est renommé Java EE
(Enterprise Edition).

Généralement, les applications JEE fonctionnent à
l'intérieur d'un serveur d'applications (conteneur)
QU'EST CE QUE JEE ?


JEE est composée de deux parties essentielles :


Un  ensemble de spécifications pour une
infrastructure dans laquelle s'exécutent les
composants écrits en Java


Un ensemble d'API qui peut être obtenu et utilisé
séparément.
QU'EST CE QUE JEE ?

 Ces API peuvent être regroupées en trois grandes
catégories :


les composants : Servlet, JSP, EJB

les services : JDBC, JTA/JTS, JNDI, JCA, JAAS

la communication : RMI-IIOP, JMS, Java Mail
QU'EST CE QUE JEE ?


Ce qu'il faut retenir :



JEE décrit des services techniques pour bâtir des
applications d'entreprise.


Une application JEE s'exécute dans un serveur
d'applications qu’est un environnement d'exécution.
ARCHITECTURE JEE
L’ARCHITECTURE MVC




un schéma qui représente bien l’architecture sur
laquelle est basée la technologie J2EE
L’ARCHITECTURE MVC



La vue

une   application graphique swing, awt …

une   page web (JSP,..etc).
L’ARCHITECTURE MVC


Le contrôleur

permet de faire le lien entre la vue et le modèle
lorsqu'une interaction utilisateur est survenue sur la
vue !
L’ARCHITECTURE MVC



Le modèle




En trois mots, il s'agit du cœur du programme !
LES SERVLETS


Les servlets sont des applications Java qui
fonctionnent dans un serveur web et qui répondent aux
requêtes HTTP des clients.


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.
EXEMPLE D’UNE SERVLET
import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



@WebServlet(name="helloWorldServlet" ,

urlPatterns={"/helloWorldServlet"})



public class helloWorldServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

}
PUISSANCE DES SERVLETS



Portabilité
 Technologie indépendante de la plate-forme et du
serveur.

Puissance
Disponibilité de l’API de Java.

Sûreté
Gestion des erreurs par exception.
JSP
Une JSP est un fichier contenant du code HTML et des
fragments de code Java exécutés sur le moteur de
Servlets

Comparable aux langages côtés serveur de type
PHP, ASP, …

 Les pages JSP sont converties en Servlet par le moteur
de
 Servlets lors du premier appel à la JSP
JSP
EXEMPLE D’UN JSP
<%--

  Document : index

  Created on : 12 nov. 2011, 16:29:30

  Author      : ferhat

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

 "http://www.w3.org/TR/html4/loose.dtd">



<html>

  <head>

       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       <title>JSP Page</title>

  </head>

  <body>

       <h1>Hello World!</h1>

  </body>

</html>
JSF


Framework qui a pour but de simplifier le
développement d'interfaces utilisateurs.

ilpermette de faire tout type d'interface, il est surtout
vu comme une amélioration des JSP.

Fonctionne   dans un conteneur web comme
Glassfish.
EXEMPLE D’UN JSF


<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

   xmlns:h="http://java.sun.com/jsf/html">

  <h:head>

    <title>Facelet Title</title>

  </h:head>

  <h:body>

    Hello from Facelets

  </h:body>

</html>
EJB


 composant serveur qui peut être déployé Dans un
serveur d’application Java EE
 Permettent aux développeurs de se concentrer sur
les traitements orientés métiers.
 Sont réutilisables
 Le conteneur d’EJB s’occupe de certains traitements
     Cycle de vie du bean
     Accès au bean
     Sécurité d’accès
     Accès concurrents
     Persistance des données,
     Transactions, …
LE FONCTIONNEMENT


Le client d'un Bean peut être
▫ Une servlet.
▫ Une applet.
▫ Une application classique.
▫ Un autre Bean.

Exemple :achat d'un livre à partir du carte de crédit
▫ Lecteur de carte (qui a une JVM embarquée) client
d'un Bean sur le Serveur
▫ Ce Bean est client d'autres Beans :
   .gestion de catalogue, de commandes, de gestion
de transaction, etc…
TYPES DES EJB


• Session

  – Stateless

  – Stateful

• Entity

• Message-Driven
TYPES DES EJB


Session Bean:

• Sont conçus pour encapsuler la logique métier

• Les plus utilisés

• 2 types d’EJB session
   – Stateless
   – Stateful
TYPES DES EJB


1- Session Bean Stateless (sans état)

•Sont spécialement pensés pour être robustes et
fiables lorsqu’il y a beaucoup d’appels en concurrence

•Lecontainer est responsable de la création et de la
destruction du Bean .

•Une instance de Stateless Session Bean n'est pas
propre à un client donné, elle peut être partagée entre
chaque appel de méthode
TYPES DES EJB


1- Session Bean Stateful (avec état)
•les attributs de l’EJB sont sauvegardés durant toute la
session.

•Lorsqu’un  client appelle l’EJB, une instance de ce
dernier est créée, puis sert le client.

•Cetteinstance reste disponible pour les futurs appels
de ce client uniquement.

exemple : une application bancaire. Le client effectue
plusieurs opérations. On ne va pas à chaque fois lui
redemander son No de compte…
TYPES DES EJB


En résumé, un Stateful Session Bean est utile pour
maintenir un état pendant la durée de vie du client

 au cours d'appels de méthodes successifs.
 Au cours de transactions successives.
 Si un appel de méthode change l'état du Bean,   lors
d'un autre appel de méthode l'état sera disponible.

• Conséquence : une instance de Stateful Session
Bean par client.
TYPES DES EJB


2- Entity Bean

permet de gérer la persistance comme le ferait
Hibernate sur le concept de object-relational mapping
(ORM) => illusion de travailler avec une base de
données objet

Le  mapping ne se fait plus forcément dans un fichier
XML (comme hibernate.cfg.xml), mais directement dans
le code avec des annotations (@Id, @Column, etc.)
TYPES DES EJB


3- Message-Driven Bean
 Permet à des applications de communiquer entre
elles, en étant faiblement couplées, et de manière
asynchrones.

 Ce concept est connu sous le nom de Message-
oriented middleware (MOM).
JEE API


Les technologies 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
JEE API


Les technologies Java Message Service (JMS)

Cette technologie permet d'envoyer et de recevoir des
messages de manière asynchrone entre applications
ou composants Java.
Cette technologie est utilisée par les EJB MDB.
JEE API


JAAS(Java Authentication and Authorization Service) :

 est une API standard de Java permettant de gérer les
identifications et les droits associés (par rôles) au niveau
du client et du serveur d'application.
JEE API
Les technologies 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 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


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

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'archiecture Modèle-Vue-
Contrôleur.



Les frameworks 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

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 valait mieux coder par Interface que par
héritage.


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
GATE IN PORTAL FRAMEWORK
    Enterprise Portal FrameWork :open source.

    JBoss et eXo copropriétaire

    Objectif: facilite le développement des « Java web
    applications ».

             PHP: Drupal
             Java: Gatein
GATE IN CONFIG
GATE IN DÉPLOIEMENT
SOMMAIRE


JSP,Servlet     JAVA       JEE




  MVC         FrameWork   JEE API




               GateIn
RÉFÉRENCES


• EJB 3 in action, 2007
• The J2EE 1.4 Tutorial, 2005, SUN
• EJB3 2006 SUPINFO
• EJB2 2005 SUPINFO
• Mickaël BARON - 2007 (Rév. Août 2009)
  mailto:baron@ensma.fr
• Java Enterprise Edition et son écosystème Stéphane
Traumat (Scub)
• EJB 3 formation interne pour CLIO S.A. Cédric
BOTTERO Michaël MATHIEU Genève, le 30 juin 2009
???




Ferhat GUEZLANE
@f_guezlane
fguezlane@gmail.com

Presentation JEE et son écossystéme

  • 1.
    JAVA ENTERPRISE EDITION ET SON ÉCOSYSTÈME @f_guezlane [email protected]
  • 2.
  • 3.
    PLAN Qu’est ce que JAVA Qu’est ce que JEE L’architecture MVC Servlet, JSP,JSF EJB JEE API (JMS,JAAS,JDBC,JTA) Framework GateIn Portal Framework
  • 4.
    QU'EST CE QUEJAVA ET JEE ?
  • 5.
    QU'EST CE QUEJAVA? Java Technology Java Technology Workgroup High-End Enabled Devices Enabled Desktop Server Server
  • 6.
    COMMENT SE FAIT L'ÉVOLUTIONDE JAVA ? • (Des sociétés, des associations ou des individus ) Besoins • rejoindre le groupe pour participer et influencer JCP l'évolution du langage. Site : http://www.jcp.org • décrivent les spécifications et technologies proposées pour un ajout à la plateforme Java. JSR
  • 7.
    COMMENT SE FAIT L'ÉVOLUTION DE JAVA ? Exemple : la JSR 168 est la spécification des portlets définissant le contrat entre les conteneurs de portlets et les portlets.
  • 8.
    COMMENT SE FAIT L'ÉVOLUTION DE JAVA ? Le JCP fait la norme JEE. L'industrie et le monde du libre ne passent pas forcément par le JCP. Le JCP intègre souvent les bonnes idées mais cela peut prendre du temps.
  • 9.
  • 10.
    QU'EST CE QUEJEE ? JEE est la version « entreprise» de Java, elle a pour but de faciliter le développement d'applications distribuées. Depuis sa version 5, J2EE est renommé Java EE (Enterprise Edition). Généralement, les applications JEE fonctionnent à l'intérieur d'un serveur d'applications (conteneur)
  • 11.
    QU'EST CE QUEJEE ? JEE est composée de deux parties essentielles : Un ensemble de spécifications pour une infrastructure dans laquelle s'exécutent les composants écrits en Java Un ensemble d'API qui peut être obtenu et utilisé séparément.
  • 12.
    QU'EST CE QUEJEE ? Ces API peuvent être regroupées en trois grandes catégories : les composants : Servlet, JSP, EJB les services : JDBC, JTA/JTS, JNDI, JCA, JAAS la communication : RMI-IIOP, JMS, Java Mail
  • 13.
    QU'EST CE QUEJEE ? Ce qu'il faut retenir : JEE décrit des services techniques pour bâtir des applications d'entreprise. Une application JEE s'exécute dans un serveur d'applications qu’est un environnement d'exécution.
  • 14.
  • 15.
    L’ARCHITECTURE MVC un schémaqui représente bien l’architecture sur laquelle est basée la technologie J2EE
  • 16.
    L’ARCHITECTURE MVC La vue une application graphique swing, awt … une page web (JSP,..etc).
  • 17.
    L’ARCHITECTURE MVC Le contrôleur permetde faire le lien entre la vue et le modèle lorsqu'une interaction utilisateur est survenue sur la vue !
  • 18.
    L’ARCHITECTURE MVC Le modèle Entrois mots, il s'agit du cœur du programme !
  • 19.
    LES SERVLETS Les servletssont des applications Java qui fonctionnent dans un serveur web et qui répondent aux requêtes HTTP des clients. 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.
  • 20.
    EXEMPLE D’UNE SERVLET importjavax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name="helloWorldServlet" , urlPatterns={"/helloWorldServlet"}) public class helloWorldServlet extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } }
  • 21.
    PUISSANCE DES SERVLETS Portabilité Technologie indépendante de la plate-forme et du serveur. Puissance Disponibilité de l’API de Java. Sûreté Gestion des erreurs par exception.
  • 22.
    JSP Une JSP estun fichier contenant du code HTML et des fragments de code Java exécutés sur le moteur de Servlets Comparable aux langages côtés serveur de type PHP, ASP, …  Les pages JSP sont converties en Servlet par le moteur de Servlets lors du premier appel à la JSP
  • 23.
  • 24.
    EXEMPLE D’UN JSP <%-- Document : index Created on : 12 nov. 2011, 16:29:30 Author : ferhat --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Hello World!</h1> </body> </html>
  • 25.
    JSF Framework qui apour but de simplifier le développement d'interfaces utilisateurs. ilpermette de faire tout type d'interface, il est surtout vu comme une amélioration des JSP. Fonctionne dans un conteneur web comme Glassfish.
  • 26.
    EXEMPLE D’UN JSF <?xmlversion='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Facelet Title</title> </h:head> <h:body> Hello from Facelets </h:body> </html>
  • 27.
    EJB  composant serveurqui peut être déployé Dans un serveur d’application Java EE  Permettent aux développeurs de se concentrer sur les traitements orientés métiers.  Sont réutilisables  Le conteneur d’EJB s’occupe de certains traitements  Cycle de vie du bean  Accès au bean  Sécurité d’accès  Accès concurrents  Persistance des données,  Transactions, …
  • 28.
    LE FONCTIONNEMENT Le clientd'un Bean peut être ▫ Une servlet. ▫ Une applet. ▫ Une application classique. ▫ Un autre Bean. Exemple :achat d'un livre à partir du carte de crédit ▫ Lecteur de carte (qui a une JVM embarquée) client d'un Bean sur le Serveur ▫ Ce Bean est client d'autres Beans : .gestion de catalogue, de commandes, de gestion de transaction, etc…
  • 29.
    TYPES DES EJB •Session – Stateless – Stateful • Entity • Message-Driven
  • 30.
    TYPES DES EJB SessionBean: • Sont conçus pour encapsuler la logique métier • Les plus utilisés • 2 types d’EJB session – Stateless – Stateful
  • 31.
    TYPES DES EJB 1-Session Bean Stateless (sans état) •Sont spécialement pensés pour être robustes et fiables lorsqu’il y a beaucoup d’appels en concurrence •Lecontainer est responsable de la création et de la destruction du Bean . •Une instance de Stateless Session Bean n'est pas propre à un client donné, elle peut être partagée entre chaque appel de méthode
  • 32.
    TYPES DES EJB 1-Session Bean Stateful (avec état) •les attributs de l’EJB sont sauvegardés durant toute la session. •Lorsqu’un client appelle l’EJB, une instance de ce dernier est créée, puis sert le client. •Cetteinstance reste disponible pour les futurs appels de ce client uniquement. exemple : une application bancaire. Le client effectue plusieurs opérations. On ne va pas à chaque fois lui redemander son No de compte…
  • 33.
    TYPES DES EJB Enrésumé, un Stateful Session Bean est utile pour maintenir un état pendant la durée de vie du client  au cours d'appels de méthodes successifs.  Au cours de transactions successives.  Si un appel de méthode change l'état du Bean, lors d'un autre appel de méthode l'état sera disponible. • Conséquence : une instance de Stateful Session Bean par client.
  • 34.
    TYPES DES EJB 2-Entity Bean permet de gérer la persistance comme le ferait Hibernate sur le concept de object-relational mapping (ORM) => illusion de travailler avec une base de données objet Le mapping ne se fait plus forcément dans un fichier XML (comme hibernate.cfg.xml), mais directement dans le code avec des annotations (@Id, @Column, etc.)
  • 35.
    TYPES DES EJB 3-Message-Driven Bean  Permet à des applications de communiquer entre elles, en étant faiblement couplées, et de manière asynchrones.  Ce concept est connu sous le nom de Message- oriented middleware (MOM).
  • 36.
    JEE API Les technologiesJava 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
  • 37.
    JEE API Les technologiesJava Message Service (JMS) Cette technologie permet d'envoyer et de recevoir des messages de manière asynchrone entre applications ou composants Java. Cette technologie est utilisée par les EJB MDB.
  • 38.
    JEE API JAAS(Java Authenticationand Authorization Service) : est une API standard de Java permettant de gérer les identifications et les droits associés (par rôles) au niveau du client et du serveur d'application.
  • 39.
    JEE API Les technologiesJava 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.
  • 40.
    LES FRAMEWORKS Les frameworksDé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 Les frameworksY 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 Les frameworksStruts, le plus vieux et l'un des plus répandus ! Il permet de développer des applications web en Java en suivant l'archiecture Modèle-Vue- Contrôleur. Les frameworks 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.
  • 43.
    LES FRAMEWORKS Les frameworksSpring, le conteneur léger. Spring a été crée avec l'idée que JEE était bien trop compliqué et qu'il valait mieux coder par Interface que par héritage. 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
  • 44.
    GATE IN PORTALFRAMEWORK Enterprise Portal FrameWork :open source. JBoss et eXo copropriétaire Objectif: facilite le développement des « Java web applications ». PHP: Drupal Java: Gatein
  • 45.
  • 46.
  • 47.
    SOMMAIRE JSP,Servlet JAVA JEE MVC FrameWork JEE API GateIn
  • 48.
    RÉFÉRENCES • EJB 3in action, 2007 • The J2EE 1.4 Tutorial, 2005, SUN • EJB3 2006 SUPINFO • EJB2 2005 SUPINFO • Mickaël BARON - 2007 (Rév. Août 2009) mailto:[email protected] • Java Enterprise Edition et son écosystème Stéphane Traumat (Scub) • EJB 3 formation interne pour CLIO S.A. Cédric BOTTERO Michaël MATHIEU Genève, le 30 juin 2009
  • 49.