49
JAVA ENTERPRISE EDITION ET SON ÉCOSYSTÈME @f_guezlane [email protected] JEE

Presentation JEE et son écossystéme

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Presentation JEE et son écossystéme

JAVA ENTERPRISE EDITION ET SON ÉCOSYSTÈME

@[email protected]

JEE

Page 2: Presentation JEE et son écossystéme

Ferhat GUEZLANEManager/Fondateur de Algeria JUG @[email protected]

Page 3: Presentation JEE et son écossystéme

PLANQu’est ce que JAVA

Qu’est ce que JEE

L’architecture MVC

Servlet, JSP,JSF

EJB

Framework

JEE API (JMS,JAAS,JDBC,JTA)

GateIn Portal Framework

Page 4: Presentation JEE et son écossystéme

QU'EST CE QUE JAVA ET JEE ?

Page 5: Presentation JEE et son écossystéme

QU'EST CE QUE JAVA?

High-EndServer

Java Technology Enabled Desktop

WorkgroupServer

Java Technology Enabled Devices

Page 6: Presentation JEE et son écossystéme

COMMENT SE FAIT L'ÉVOLUTION DE JAVA ?

Besoins

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

JCP

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

JSR

•décrivent les spécifications et technologies proposées pour un ajout à la plateforme Java.

Page 7: Presentation JEE et son écossystéme

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.

Page 8: Presentation JEE et son écossystéme

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.

Page 9: Presentation JEE et son écossystéme

QU'EST CE QUE JEE ?

Page 10: Presentation JEE et son écossystéme

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)

Page 11: Presentation JEE et son écossystéme

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.

Page 12: Presentation JEE et son écossystéme

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

Page 13: Presentation JEE et son écossystéme

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.

Page 14: Presentation JEE et son écossystéme

ARCHITECTURE JEE

Page 15: Presentation JEE et son écossystéme

L’ARCHITECTURE MVC

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

Page 16: Presentation JEE et son écossystéme

L’ARCHITECTURE MVC

La vue  une application graphique swing, awt …

une page web (JSP,..etc).

Page 17: Presentation JEE et son écossystéme

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 !

 

Page 18: Presentation JEE et son écossystéme

L’ARCHITECTURE MVC

Le modèle

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

Page 19: Presentation JEE et son écossystéme

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.

Page 20: Presentation JEE et son écossystéme

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

}

}

Page 21: Presentation JEE et son écossystéme

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.

Page 22: Presentation JEE et son écossystéme

JSPUne JSP est un fichier contenant du code HTML et desfragments 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

Page 23: Presentation JEE et son écossystéme

JSP

Page 24: Presentation JEE et son écossystéme

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>

Page 25: Presentation JEE et son écossystéme

JSF

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

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

Fonctionne dans un conteneur web comme Glassfish.

Page 26: Presentation JEE et son écossystéme

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>

Page 27: Presentation JEE et son écossystéme

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, …

Page 28: Presentation JEE et son écossystéme

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…

Page 29: Presentation JEE et son écossystéme

TYPES DES EJB

• Session

– Stateless

– Stateful

• Entity

• Message-Driven

Page 30: Presentation JEE et son écossystéme

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

Page 31: Presentation JEE et son écossystéme

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

•Le container 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

Page 32: Presentation JEE et son écossystéme

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.

•Cette instance 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…

Page 33: Presentation JEE et son écossystéme

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.

Page 34: Presentation JEE et son écossystéme

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

Page 35: Presentation JEE et son écossystéme

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

Page 36: Presentation JEE et son écossystéme

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

Page 37: Presentation JEE et son écossystéme

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.

Page 38: Presentation JEE et son écossystéme

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.

Page 39: Presentation JEE et son écossystéme

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.

Page 40: Presentation JEE et son écossystéme

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.

Page 41: Presentation JEE et son écossystéme

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

Page 42: Presentation JEE et son écossystéme

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.

Page 43: Presentation JEE et son écossystéme

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

Page 44: Presentation JEE et son écossystéme

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

Page 45: Presentation JEE et son écossystéme

GATE IN CONFIG

Page 46: Presentation JEE et son écossystéme

GATE IN DÉPLOIEMENT

Page 47: Presentation JEE et son écossystéme

SOMMAIRE

FrameWorkFrameWork

JAVAJAVAJSP,ServletJSP,Servlet

JEE APIJEE API

JEEJEE

GateInGateIn

MVCMVC

Page 48: Presentation JEE et son écossystéme

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:[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

Page 49: Presentation JEE et son écossystéme

???

Ferhat GUEZLANE@[email protected]