Formation JEE

62
Qu'est ce que Java et JEE ?  

Transcript of Formation JEE

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 1/62

Qu'est ce que Java et JEE ?

 

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 2/62

Qu'est ce que Java ?

Java est à la fois :Un langage de programmation.Une plateforme d'exécution.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 3/62

Qu'est ce que Java ?

Java offre une API (Interface de programmation) qui est unecollection de composants prêts à l'emploi.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 4/62

Qu'est ce que JEE ?

JEE est la version "entreprise" de Java, elle a pour but defaciliter le développement d'applications distribuées.Mais en fait, JEE est avant tout une norme.

C'est un ensemble de standards décrivant des servicestechniques comme, par exemple, comment accéder à unannuaire, à une base de données, à des documents...

Important : JEE définit ce qui doit être fourni mais ne ditpas comment cela doit être fourni.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 5/62

Qu'est ce que JEE ?

Exemple de services :

JDBC (Java DataBase Connectivity) est une API d'accèsaux bases de données relationnelles.

JNDI (Java Naming and Directory Interface) est une APId'accès aux services de nommage et aux annuairesd'entreprises tels que DNS, NIS, LDAP...

JTA (Java Transaction API) est une API définissant desinterfaces standard avec un gestionnaire de transactions.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 6/62

Qu'est ce que JEE ?

JEE définit ce qui doit être fourni mais ne dit pascomment cela doit être fourni. Ceci est une différence majeure par rapport aux précédentes

plateformes. En PHP, VB, Delphi... vous utilisez les fonctionsfournies par l'éditeur.Vous utilisez à la fois la fonction et son implémentation : si vousn'ê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.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 7/62

Qu'est ce que JEE ?

Le principe de séparation est celui de la prise de courant

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 8/62

Qu'est ce que JEE ?

La prise électrique correspond à ce qu'on appelle en Java uneinterface.

La prise permet à la cafetière et à la centrale nucléaire de

travailler ensemble sans se connaître l'un l'autre. Leconcepteur de la centrale nucléaire n'a pas à savoir commentmarche un cafetière et vice et versa.

La cafetière peut être remplacée par un aspirateur et lacentrale nucléaire par une éolienne.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 9/62

Qu'est ce que JEE ?

Le même principe appliqué à la programmation :import javax.naming.*;

public class Lookup {

public static void main(String[] args) {

Context initialContext = new InitialContext(props);

Object obj = initialContext.lookup("test");

if (name.equals(""))

System.out.println("Pas trouvé !");

else

System.out.println("Trouvé);

}

}

Ce qu'il faut noter Le code est indépendant

de l'implémentation.

On peut changer defournisseur sans

changer son code !

la méthode lookup estdifférente chez oracle et

chez ibm...

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 10/62

Qu'est ce que JEE ?

Généralement, les applications JEE fonctionnent à l'intérieur d'un serveur d'applications (appelé aussi conteneur) qui offreles services JEE à ces mêmes applications.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 11/62

Qu'est ce que JEE ?

Exemple de serveurs d'applications JEE :IBM WebsphereBEA WeblogicOracle 10g AS

JBossJOnASGeronimo...

 Une application JEE "standard" peut fonctionner dans n'importequel conteneur en modifiant seulement sa configuration.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 12/62

Qu'est ce que JEE ?

Ce qu'il faut retenir :JEE est un ensemble de standards.

JEE décrit des services techniques pour bâtir des

applications d'entreprise.

Tout le monde peut écrire sa propre implémentation dustandard.

Une application JEE s'exécute dans un serveur d'applications qui est un environnement d'exécution.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 13/62

Comment se fait l'évolution de Java ?

Ce qu'il faut retenir :Le JCP (Java Community Process) 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 peutprendre du temps.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 14/62

Les architectures SOA

 

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 15/62

Les architectures SOA

La Service Oriented Architecture est le nouveau mode dedéveloppement des applications.

Dans ce modèle, chaque fonction de chaque application existe

sous forme de service indépendants (creerClient(),SupprimerFacture()...) et chaque service peut communiquer avec n'importe quel autre service par message.

Une architecture orientée services consiste essentiellement enune collection de services qui interagissent et communiquententre eux.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 16/62

C'est la fin des silos !

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 17/62

Les architectures SOA

Conséquence de l'avènement du SOA : de nouveaux besoins !Transaction distribuée.Authentification et autorisation.Messages asynchrones.

Webservices.Annuaires....

 Tous ces services sont des services standard JEE.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 18/62

Les architectures SOA

Ce qu'il faut retenir :Les architectures SOA sont l'avenir.

JEE répond aux besoins de ce type d'architecture.

Dans une architecture SOA, il n'y aura pas que du Java !

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 19/62

Les technologies(JSR) 

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 20/62

Les technologies

Servlet Les servlets sont des applications Java qui fonctionnent dansun serveur web et qui répondent aux requêtes client. 

Le conteneur reçoit la requête du client, et sélectionne laservlet qui aura à la traiter. Le conteneur fournit également toutun ensemble de services standards pour simplifier la gestiondes requêtes et des sessions. Conteneur le plus connu : Tomcat.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 21/62

Les technologies

Exemple de Servlet : import java.io.*;

import javax.servlet.*;

import 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();

  }

}

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 22/62

Les technologies

PortletUne portlet est une application Java qui fonctionne et s'intègredans un portail. Chaque portlet est indépendant des autresportlets s'affichant dans la même page.

Exemple de portail : Websphere portal, JBoss portal, Pluto...

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 23/62

Exemple de portail

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 24/62

Les technologies

Exemple de Porlet :

import java.io.IOException;

import javax.portlet.GenericPortlet;

import javax.portlet.PortletException;

import javax.portlet.RenderRequest;

import javax.portlet.RenderResponse;

public class HelloWorldPortlet extends GenericPortlet {

 

protected void doView(RenderRequest request, RenderResponse response)

throws PortletException, IOException {

response.setContentType("text/html");

response.getWriter().write("Hello World!");

}

}

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 25/62

Les technologies

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.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 26/62

Les technologies

Exemple de page 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>

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 27/62

Les technologies

Java Server Faces (JSF)Cette technologie est un framework qui a pour but de simplifier le développement d'interfaces utilisateurs. Bien qu'il permettede faire tout type d'interface, il est surtout vu comme une

amélioration des JSP.

Fonctionne dans un conteneur web comme tomcat.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 28/62

Les technologies

Exemple de page JSF :

<%@ 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>

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 29/62

Les technologies

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

Ils s'exécutent dans un serveur d'application comme OracleAS, BEA Weblogic ou IBM Websphere...

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 30/62

Les technologies

Exemple d'un EJB entité /

@Entity

@Table(name="book")

public class Cat { 

@Id

private Integer id;private String name; 

}

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 31/62

Les technologies

Exemple d'un EJB de session :

@Stateless

public class StatelessSessionBeanImpl implements StatelessSessionBean {

  public String sayHello() {

  return ("Hello world !");

  }

}

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 32/62

Les technologies

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 !");

}

}

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 33/62

Les technologies

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 unautre grâce à l'annuaire.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 34/62

Les technologies

Java DataBase Connectivity (JDBC)Cette API permet aux applications Java d'accéder aux basesde données.

Il s'agit de la même interface pour toutes les bases dedonnées, seul le driver change.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 35/62

Les technologies

Java Message Service (JMS)Cette technologie permet d'envoyer et de recevoir desmessages de manière asynchrone entre applications oucomposants Java.

 Cette technique est utilisée pour gérer les déconnexions, lesmontées en charge ou pour découpler les développements.

Cette technologie est utilisée par les EJB MDB.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 36/62

Les technologies

JavaMailCette API permet l'envoi et la réception d'emails.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 37/62

Les technologies

Java Management Extensions (JMX)Cette technologie permet de gérer le fonctionnement d'uneapplication 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.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 38/62

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 lestransactions qui peuvent démarrer sur un système et dépendredu résultat d'autres systèmes.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 39/62

Les technologies

XMLJava dispose de toutes les API nécessaires au traitement duXML.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 40/62

Les technologies

Remote Method Invocation (RMI)Il s'agit d'une API qui permet à des objets Java decommuniquer à distance.

Il s'agit de quelque chose de similaire à Corba ou RPC.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 41/62

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.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 42/62

Avant de continuer...

 

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 43/62

Un avertissement...

Le plus gros avantage de Java est aussi son plus grosinconvénient, il s'agit de :

Sa richesse !

Vous trouverez un nombre impressionnant de façon de faireune même chose.

Exemple : Comment faire une page web ?

Ça dépend...Au moins 35 frameworks existent !

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 44/62

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 45/62

Les frameworks

Définition : On va dire qu'il s'agit d'une infrastructure logiciellequi facilite la conception des applications par l'utilisation debibliothèques, de modèles de convention...

De manière plus générale, il s'agit d'une "structure" qui soutientquelque chose d'autre. Une sorte de squelette qui sert de baseà quelque chose qui est construit.

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 46/62

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

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 47/62

Les frameworks

Struts, le plus vieux et l'un des plus répandus !

Il permet de développer des applications web en Java ensuivant l'archiecture Modèle-Vue-Contrôleur.

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 48/62

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.

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 49/62

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é lesapproches IOC et AOP qui sont repris dans la nouvelle normeJEE.

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 50/62

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

L f k

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 51/62

Les frameworks

Ce qu'il faut retenir :Java dispose d'un nombre impressionnant de frameworks. Ily en a même trop.

Cependant, certains de ces frameworks sont toutsimplement fantastiques et il ne faut pas s'en priver.

Tout projet Java utilise des frameworks Open Source.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 52/62

Le middleware

 

L iddl

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 53/62

Le middleware

Définition wikipedia : Un intergiciel (en anglais middleware) estun logiciel servant d'intermédiaire de communication entreplusieurs applications, généralement complexes ou distribuéessur un réseau informatique.

Le middleware est le socle nécessaire à la mise en oeuvre desapplications.

L iddl

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 54/62

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.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 55/62

Anatomie d'un serveur JEE

L iddl

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 56/62

Le middleware

Serveurs d'applications du marché :JBoss (Fondation JBoss)Apache Geronimo (Fondation Apache)JOnAS (Objectweb)

Oracle Application Server 10gResinSAP NetWeaver Glassfish (Sun)WebSphere Application Server (IBM)

WebLogic (BEA)...

Le middleware

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 57/62

Le middleware

Les portails.

Les portails permettent d'éxecuter les portlets.

Oracle PortalApache PlutoBEA Weblogic PortalVignette portals

Le middleware

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 58/62

Le middleware

Enterprise Service Bus (ESB) - "Anciennement EAI"

L'ESB a pour but de permettre aux applications decommuniquer entre elles à travers un bus qui offre un

ensemble de services.

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 59/62

Les outils

 

Les outils

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 60/62

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 existebeaucoup...Eclipse (IBM)Netbeans (Sun)WSAD (IBM)

IntelliJ (Idea)JDev (Oracle)

 Eclipse avec son ouverture remporte un grand succès.

Les outils

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 61/62

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 detâches pré définies.

Les outils

8/3/2019 Formation JEE

http://slidepdf.com/reader/full/formation-jee 62/62

Les outils

Ce qu'il faut retenir :Comme pour tous les autres "composants", il existe unnombre impressionnant d'outils pour le développement.

Eclipse a tout de même le vent en poupe grâce auxnombres impressionnant de plugins existants.