INTRO(S1)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 28

Département Génie Informatique

Java Entreprise Edition


Pr. Aimad QAZDAR
[email protected]

30 septembre 2024
Introduction
JSE : Compilation et Interpretation
● Java Standard Edition

Java Compiler : HelloWorld


HelloWorld
javac .class
.java

Java Virtual Machine (JVM)


java
Bytecode Classloader
I/O Standard
Java
Native
Runtime
OS
System

3
Java SE
● Java Standard Edition est aussi appelée Java SE et anciennement, Java 2 Platform,
Standard Edition, ou encore J2SE.
● Ensemble de spécification de la plate-forme Java d’Oracle, destinée principalement aux
applications pour poste de travail.
● Pour chaque version de Java SE correspond notamment :
− les Java Specification Requests (JSR), i.e. les spécifications de la version considérée ;
− un Java Development Kit (JDK),
− un Java Runtime Environment (JRE)

4
Diagramme Conceptuel Java

Pour plus de detail : https://docs.oracle.com/javase/8/docs/technotes/guides/desc_jdk_structure.html

5
Java SE
● Le Java Development Kit (JDK) contient de plus un ensemble d’outils avec lesquels le
code Java peut être transformé en bytecode
● Le Java Runtime Environment (JRE) une famille de logiciels qui permet l’exécution des
programmes écrits en Java.
● Les Java Specification Requests (JSR) sont des demandes d'utilisateurs du langage Java
pour ajouter ou modifier des fonctionnalités sur la plate-forme officielle fournie par Sun.

JDK
JRE JVM

Library

Dev. Tools

6
Jakarta EE
● Jakarta EE (anciennement Java 2 Platform, Enterprise Edition, ou J2EE , puis Java
Platform, Enterprise Edition ou Java EE),
● Une spécification pour la plate-forme Java d'Oracle, destinée aux applications d'entreprise
● La plate-forme Jakarta EE étend Java SE en fournissant des API de mapping objet-
relationnel, des architectures distribuées et multitiers, des services web, etc..
● La plate-forme se fonde principalement sur des composants modulaires exécutés sur
un serveur d'applications.

7
Historique

JDK
J2EE JEE Jakarta EE

1996 1999
2003 2009 2017 2020 2022
1.0 1.2 1.4 6 8 9 10

1997 2021 2024


2001 2006 2013 2019
1.1 9.1 11
1.3 5 7 8

Sun Microsystems Oracle Fondation Eclipse

8
Quelques Composants de JEE
● Servlet : Composant représentant le C (Controller) du paradigme MVC
● Portlet : Conteneur Web (extension de l'API Servlet)
● Java Server Pages (JSP) : Framework Web
● Java Standard Tag Library (JSTL) : bibliothèque de balises pour les JSP
● Java Server Faces (JSF) : Java Server Face, Framework Web
● EJB : Composants distribués transactionnels
● JNDI : API de connexion à des annuaires, notamment des annuaires LDAP
● JDBC : API de connexion à des bases de données
● Java Message Service (JMS) : API de communication asynchrone par message
● JavaMail : API de gestion des mails
● JPA : API de gestion de la persistance des données
● JAXB : API de sérialisation par XML
● Java RMI : API de communication distante entre des objets Java
● … etc

9
Classification des composants JEE

Web Communications Database


• Servlet • JNDI • JDBC
• Portlet • JMS • DAO
• JSP • JCA • JPA
• JSTL • JavaMail • JTA
• JSF • JMX
• JAXM
• Java RIM

10
Architecture Client / Serveur
Rappel

Protocole de communication

Client Serveur

Exemple d’installation

TCP / IP

Client Serveur
11
Architecture Client / Serveur
Navigateur web

http

Chrome Appache
Envoie de mail

smtp

Outlook Exchange Server


Transfere de fichiers

FTP

Client FileZilla Serveur FileZilla


12
Architecture Client / Serveur

Client Serveur
• Se situe dans un réseau • Se trouve sur le réseau
• Utilise les services d’un ou • Ordinateur / Programme
plusieurs serveurs • Met des services à disposition du
• Demande l’exécution d’une ou client
plusieurs tâches • Chargé d’accomplir des tâches
• Ordinateur / Programme • Répond aux sollicitations des
• Récupère les « résultats » du clients
serveur • Exécute les tâches demandées
• Offre une interface utilisateur • Renvoie les réponses aux clients
• Peut traiter plusieurs requêtes
simultanément
• Une machine peut à la fois être
client et serveur

13
Caractéristiques du client-serveur
● Service
− Le modèle C/S est une relation entre des processus qui tournent sur des machines séparées. Le serveur est un
fournisseur de services. Le client est un consommateur de services.
● Encapsulation des services
− Un client demande un service. Le serveur décide de la façon de le rendre une mise à niveau du logiciel serveur doit
être sans conséquence pour le client tant que l’interface message est identique.
● Partage de ressources
− Un serveur traite plusieurs clients et contrôle leurs accès aux ressources
● Protocole asymétrique
− Conséquence du partage de ressources, le protocole de communication est asymétrique le client déclenche le
dialogue ; le serveur attend les requêtes des clients.
● Transparence de la localisation
− L’architecture C/S doit masquer au client la localisation du serveur (que le service soit sur la même machine ou
accessible par le réseau). Transparence par rapport aux systèmes d’exploitation et aux plates-formes matérielles.
● Message
− Les messages sont les moyens d’échanges entre client et serveur.
● Evolution
− Une architecture C/S doit pouvoir évoluer horizontalement (évolution du nombre de clients) et verticalement (évolution
du nombre et des caractéristiques des serveurs).
14
Découpage des applications C/S

Présentation
Interfaces textuelles ou graphiques : saisie des JSP, Servlet
données, validation, etc.

Traitements Code métier, Session beans


Logique d’application : traitements propres à
l’application, calculs, etc.

Données JDBC, JPA, ORM, Entity beans


Gestion des données : stockage, accès

16
Schéma du Gartner Group

17
Architecture de base de JEE

http

Navigateur Serveur
Serveur
Web d’applications
Web

Exemple d’implémentation d’une architecture Java EE

http

Chrome Apache Tomcate

18
Seveurs d’applications

Serveurs http Serveurs d’applications

• apache • Tomcat (Fondation Apache)


• nginx • Glassfish (Oracle)
• lighthttpd • WildFly / JBoss (Red Hat)
• Internet Information Services • WebSphere (IBM)
• . . . etc. • … etc.

Plus de détail sur les serveurs d’applications :


https://koor.fr/Java/TutorialJEE/jee_application_servers.wp

https://koor.fr/Java/TutorialJEE/jee_application_servers.wp

NB :
Les serveurs d’applications peuvent aussi servir de serveur http.
19
Serveur d’applications
● Un serveur d’applications est un logiciel d’infrastructure offrant un contexte d’exécution
pour des composants applicatifs.

Application 1
http
Application 2

● Un serveur d’applications fournit un ensemble de composants accessibles au


développeur de logiciels via une API standard définie pour la plate-forme elle-même.
● Il fournit, généralement, des fonctionnalités proches de celles offertes par un système
d’exploitation.

20
Serveur d’applications
Comparatif entre les différents serveurs d'applications Jakarta/Java EE
Nom du Version du
Développeur SE EE Servlet JSP EL JSF EBJ JPA JMS JAX-WS JAX-RS
serveur serveur

Fondation
Tomcat 8.0 7.0-10.0 7.0 3.1 2.3 3.0
Apache

Fondation
Tomcat 9.0 8.0-10.0 8.0 4.0 2.4 3.1
Apache

Jetty 9.4 Eclipse 8.0 7.0 3.1 2.3 3.0

Glassfish 4.0 Oracle 7.0-10.0 7.0 3.1 2.3 3.0 2.2 3.2 2.2 2.0 2.2 2.0

Glassfish 5.0 Oracle 8.0-10.0 8.0 4.0 2.3 3.0 2.3 3.2 2.2 2.0 Removed 2.1

WildFly
13 Redhat 7.0 3.1 2.3 3.0 2.2 3.2 2.2 2.0 2.2 2.0
(JBoss)

WildFly
14 Redhat 8.0 4.0 2.3 3.0 2.3 3.2 2.2 2.0 Removed 2.1
(JBoss)

WebSphere 8.5.5 IBM 6.0-8.0 6.0 3.0 2.2 2.0 3.1 2.0 1.1

WebSphere 9.0 IBM 8.0 7.0 3.1 2.3 2.2 3.2 2.1 2.0 2.2 2.0
https://koor.fr/Java/TutorialJEE/jee_application_servers.wp

Source : https://koor.fr/Java/TutorialJEE/jee_application_servers.wp

NB : Tomcat et Jetty ne sont pas à proprement parler des serveurs d'applications, dans le sens ou ils n'implémentent pas
toute la spécification Jakarta/Java EE.
21
Avantages des serveurs
● Le développeur se concentre principalement sur la logique de l’application : i.e. la couche
métier ou le “Business Logic”
● Simplifier le développement et séparer clairement les différentes couches,
● Obtenir des gains de productivité en facilitant l’intégration avec l’existant,
● Optimiser la maintenance et la sécurité,
● Permettre la liberté de choix,
● Proposer un accès transparents aux données,
● Gérer la charge avec du clustering, équilibrage de charges (loadbalancing),
● Basculement automatique,
● …etc

22
Clustring and Load Balancing

Application 1
Application 2

23
Architecture détaillé

Couche Présentation Couche Métier Couche Données

Client Lourd RMI Serveur Application


•AWT
Conteneur EJB Services
•SWING SGBD
Serveur web JDBC
•SWT EJB
Conteneur RMI JNDI
de Servlets JMail
Client Léger Conteneur
JSP Web Services JTA
• HTML
HTTP SOAP
• CSS Servlet JCA
Web
• Java Script Service
Metier Java
Beans
• XML Java Beans

•Ajax JDBC
•Flash

25
Developpement en JEE
● Une application Java EE assemble des composants
− composants clients : HTML, applets
− composants Web : servlets et JSP
− composants business : EJB
● Les composants sont
− écrits en Java compilé en bytecode,
− assemblés dans l’application Java EE,
− déployés dans un serveur Java EE.

26
Déploiement d’une application
● Une application web est archivée pour déploiement dans un
fichier WAR (Web Application Archive).
● Un fichier WAR (Web Application Resource ou Web
application ARchive)

Index.html Deploiement
login.jsp
Produit.java WAR
Archivage

● Un fichier WAR est utilisé pour distribuer une collection de fichiers


JAR, JavaServer Pages, Java Servlets, Java classes, fichiers XML,
bibliothèques de balises, pages Web statiques ( HTML et fichiers
associés) et d'autres ressources qui, ensemble, constituent
une application Web.
27
Structure d’un projet Web JEE
● Le dossier src contient les classes java
● Les dossier WebContent contient les documents Web
comme les pages HTML, JSP, Images, Java Script, CSS
…etc.
● Le dossier WEB-INF contient les descripteurs de
déploiement comme web.xml
● Le dossier Lib permet de stocker les bibliothèques de
classes java (Fichiers.jar)

28
Arborescence de Tomcat
● ./bin
− fichier binaire, (pour lancer Tomcat par exemple)
● ./conf
− fichiers de configuration (sécurité, déploiement, . . .),
● ./lib
− une partie les librairies Java EE !
● ./log
− fichiers de journalisation,
● ./webapp
− les applications , (il y en a par défaut : docs, examples, . . .)
● ./work
− Répertoire de travail de Tomcat (c’est ici par exemple que les jsp sont compilées)

29
TP1 : JEE
Installation d’un serveur d’applications et d’un environnement de
développement

L’objectif de ce TP est la mise en place de l’environnement de développement Eclipse IDE.


En plus nous allons installer et configurer un serveur d’application Tomcat.

30

Vous aimerez peut-être aussi