JAVA ENTREPRISE EDITION « JEE »
INTRODUCTION ET ARCHITECTURE JEE
Professeur:
Pr HIBA ASRI
Filière:
Génie Informatique , 4 ème année
1
INTRODUCTION
2
PROJET INFORMATIQUE (EXIGENCES)
Exigences
Fonctionnelles
Exigences
Techniques
3
PROJET INFORMATIQUE (EXIGENCES)
Exigences Fonctionelles
Répondre aux besoins fonctionnels des entreprises
4
PROJET INFORMATIQUE (EXIGENCES)
Exigences techniques:
Performances (Temps de réponse, Panne, Montée en charge)
Maintenance (Evolution) Sécurité
Portabilité Distribution Communication Différents Clients
5
PROJET INFORMATIQUE (PROBLÈME)
Situation / Problème
1. Créer une application qui respecte toutes les exigences
2. Difficile de créer une application sans utiliser l’expérience des autres. JEE
C’est quoi JEE?
Java EE n'est pas Java
• Le terme « Java » fait référence à un langage
• Le terme « Java » fait référence à une plateforme Java SE Java Standard Edition (était anciennement
raccourci « J2SE »).
• API, Bibliothèque java.lang, java.io, java.math, java.util
6
JEE: DÉFINITION
Java EE ou JEE
• Java Enterprise Edition ( était anciennement raccourci en « J2EE »).
• Extension de la plate-forme standard,
• Construite par Java , JSE et ajoute un grand nombre de bibliothèques remplissant
des fonctionnalités que la plate-forme standard ne remplit pas d'origine.
Objectif:
• Faciliter le développement d'applications web robustes, distribuées, déployées et
exécutées sur un serveur d'applications
7
ARCHITECTURE JEE
8
PROJET INFORMATIQUE (SOLUTION)
Framework
Serveur d’application (Inversion de FrameWorks MiddleWares
contrôle)
• JBOSS • Spring (conteneur • Mapping objet • RMI, CORBA: App
• Web Sphere léger) relationnel Distribuées
• GlassFish • JAXWS: SOAP
• Tomcat • EJB (Conteneur • Applications Web : web service
• …. lourd) Struts, JSF, Spring • JAXRS: Restfull
MVC Web service
• JMS:
Communication
asynchrone
9
SERVEUR D’APPLICATION
Framework
Serveur d’application (Inversion de FrameWorks MiddleWares
contrôle)
• JBOSS • Spring (conteneur • Mapping objet • RMI, CORBA: App
• Web Sphere léger) relationnel Distribuées
• GlassFish • JAXWS: SOAP
• Tomcat • EJB (Conteneur • Applications Web : web service
• …. lourd) Struts, JSF, Spring • JAXRS: Restfull
MVC Web service
• JMS:
Communication
asynchrone
10
SERVEUR D’APPLICATION
1. l'utilisateur saisit une URL dans la barre d'adresses de son navigateur ;
2. le navigateur envoie alors une requête HTTP au serveur pour lui demander la page
correspondante ;
3. le serveur reçoit cette requête, l'interprète et génère alors une page web qu'il va renvoyer au
client par le biais d'une réponse HTTP ;
4. le navigateur reçoit, via cette réponse, la page web finale, qu'il affiche alors à l'utilisateur.
11
SERVEUR D’APPLICATION
• Génère des pages à envoyer au client de manière dynamique.
• Dispose de technologies (JEE, PHP, .NET, Django et Ruby on Rails, etc.) pour:
• Analyser des données reçues via HTTP.
• transformer des données.
• enregistrer des données dans une BD.
• intégrer des données dans le design.
• Etc.
12
SERVEUR D’APPLICATION
• Solutions propriétaires et payantes : WebLogic (Oracle) et WebSphere (IBM),
• Solutions libres et gratuites : Apache Tomcat, JBoss, GlassFish et JOnAS …
13
FRAMEWORKS
Framework
Serveur d’application (Inversion de FrameWorks MiddleWares
contrôle)
• JBOSS • Spring (conteneur • Mapping objet • RMI, CORBA: App
• Web Sphere léger) relationnel Distribuées
• GlassFish • JAXWS: SOAP
• Tomcat • EJB (Conteneur • Applications Web : web service
• …. lourd) Struts, JSF, Spring • JAXRS: Restfull
MVC Web service
• JMS:
Communication
asynchrone
14
FRAMEWORKS
• Ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et
des patterns.
• Ensemble formant, un « squelette » de programme, un canevas.
Aider les programmeurs dans leur travail.
Types:
• framework d'infrastructure système : pour développer des systèmes d'exploitation, des interfaces
graphiques, des outils de communication (exemple : Framework .Net, Struts) ;
• framework d'intégration intergicielle (middleware) : pour fédérer des applications hétérogènes.
Pour mettre à disposition différentes technologies sous la forme d'une interface unique ;
• frameworks d'entreprise : pour développer des applications spécifiques au secteur d'activité de
l'entreprise ;
• frameworks de gestion de contenu : pour la création, la collecte, le classement, le stockage et la
publication de « biens numérisés ».
15
FRAMEWORKS
Problème:
Inversion de Contrôle ou Injection des dépendances
EJB (Entreprise Java
Bean)
Spring
Conteneur lourd
Conteneur léger
Gestion du Cycle de vie des objets
16
FRAMEWORKS
Problème:
Mapping Objet
Relationnel (ORM)
Applications Web:
JPA, Hibernate ,TopLink,…
Struts, JSF, SpringMVC
Applications indépendantes du Design Pattern (Patron de
Framewok conception) MVC
17
DISTRIBUTION D’APPLICATION
Framework
Serveur d’application (Inversion de FrameWorks MiddleWares
contrôle)
• JBOSS • Spring (conteneur • Mapping objet • RMI, CORBA: App
• Web Sphere léger) relationnel Distribuées
• GlassFish • JAXWS: SOAP
• Tomcat • EJB (Conteneur • Applications Web : web service
• …. lourd) Struts, JSF, Spring • JAXRS: Restfull
MVC Web service
• JMS:
Communication
asynchrone
18
DISTRIBUTION D’APPLICATION
Problème:
Distribution d’application
• RMI, CORBA: Applications Distribuées
• JAXWS: SOAP web service
• JAXRS: Restfull Web service
• JMS: Communication asynchrone
19
ARCHITECTURE DISTRIBUÉE
RMI SGBD
CORBA, SOAP
Objet Java
Serveur d’application JEE
REST (HTTP,JSON)
Smart Phone Couche DAO (Data Access Object)
Mapping Object Relationnel (JPA, Hibernate)
SOAP (HTTP, XML
Application .net
Couche Métier
SOAP (HTTP, XML
Application php
Couche Service Couche Web
JMS HTTP
Client JMS • Servlet
MiddleWare: Client
• RMI • JSP
SMS • Frameworks (HTML,CSS,
• CORBA
JavaScript,…)
Client SMS • SOAP (struts, Spring
• JMS MVC, JSF)
• ….
20
ARCHITECTURE JEE
Client Java
RMI , Serveur d’application JEE
JMS
Spring ou EJB Service de
Web Container
(Couche web) Container l’infrastructure
(Couche métier)
HTTP
Client HTTP HTML
Servlet , JSP
JAX WS, Jaw RS
Spring, MVC, JSF
Composants Métier Jersey, CXF, Axis
(Traitements) JTA
SOAP JNDI
XML Service SOAP
Client SOAP Axis, CXF
….
Entity Entity
JPA
Service Restful
Hibernate
Client HTTP HTTP Jersey , CXF
JDBC
(Mobile, Jquery …) JSON,
XML ,…
21
SGBD