La plateforme JEE

SabriBouchlema 1,649 views 46 slides Feb 20, 2016
Slide 1
Slide 1 of 46
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46

About This Presentation

Standard de développement d'applications d'entreprises multi-niveaux, basées sur des composants.


Slide Content

Introduction au JEE S tandard de développement d'applications d'entreprises multi-niveaux,  basées sur des composants Sabri Bouchlema Elève ingénieur en génie logiciel Jcertif S tudent Ambassador

Plan Architectures applicatives Quelques notions (le web) Les plateformes Java La plateforme JEE Démonstration

Architectures applicatives

Architecture 1 tiers Les années 70, architecture Mainframe (1 tiers)

Avantages : Développement rapide Désavantages : Application monolithique Mises à jour et maintenance du code plus difficiles Code difficilement réutilisable

Architecture 2 tiers Les années 80 , architecture 2 tiers

Avantages : Centralisation du code et des ressources Désavantages : Application serveur monolithique Logique métier est répartie entre l'application serveur et le client

Architecture 3 tiers Fin des années 80 , architecture 3 tiers (RPC) Primergy Requètes SQL RPC RPC Base de Données Présentation _ Métier _ Données

Architecture 3 tiers Les années 9 , architecture 3 tiers (Objets) Primergy objet objet objet objet RMI / CORBA RMI / CORBA Requètes SQL Base de Données

Avantages : Séparation forte entre les 3 niveaux Désavantages : Protocole d’échange propriétaire Difficultés de maintenance: toute modification entraîne une mise à niveau de chaque poste client.

Architecture Internet (N-tiers) Les années 9 , architecture (Internet) Primergy Internet HTTP HTTP SQL Serveur Web + "CGI" Navigateur Base de Données

Avantages : Pas d’installation sur les postes clients (hormis le navigateur lui-même) Chaque niveau peut être managé, dimensionné, distribué Mises à jour et maintenance facilitées en minimisant l'impact sur les autres couches Extensibilité : ajout de nouvelles fonctionnalités simplifié Possibilité de clients lourds et de clients légers

Quelques notions

HTTP Le H yper T ext T ransfer P rotocol, plus connu sous l'abréviation HTTP , littéralement le « protocole de transfert hypertexte », est un protocole de communication client-serveur développé pour le World Wide Web. Il est utilisé pour échanger toute sorte de données entre client HTTP et serveur HTTP.

Le navigateur effectue une  requête HTTP Le serveur traite la requête puis envoie une  réponse HTTP

R equête HTTP Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur. Elle comprend : Une ligne de requête : c'est une ligne précisant le type de document demandé, la méthode qui doit être appliquée, et la version du protocole utilisée . Les champs d'en-tête de la requête : il s'agit d'un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la requête et/ou le client . Le corps de la requête : c'est un ensemble de lignes optionnelles permettant par exemple un envoi de données par une commande POST lors de l'envoi de données au serveur par un formulaire.

Les méthodes GET : c'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource , il doit être possible de répéter la requête sans effet . HEAD : cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même. POST : c ette méthode doit être utilisée lorsqu'une requête modifie la ressource . PUT : c ette méthode permet d'ajouter une ressource sur le serveur . DELETE : cette méthode permet de supprimer une ressource du serveur.

Réponse HTTP Les réponses ont, elles aussi, toujours la même syntaxe : Une ligne de status : c'est une ligne précisant la version HTTP du serveur , Code-réponse (le code d’erreur retourné par exemple 200 , 403 , 404 , 500 ) et Texte-réponse (le texte associé à l'erreur respectivement pour les exemples précédents : " OK ", " FORBIDDEN ", " NOT FOUND ", " INTERNAL ERROR "). Les champs d'en-tête de la requête : Les en-têtes sont nombreux aussi exemple : Date de génération de la réponse . le modèle du serveur HTTP. Corps : le Corps de réponse contient le contenu du fichier, le HTML d'une page par exemple.

Site web statique Un   site statique  est un site constitué de pages créées en HTML. Il s’agit d’un contenu fixe . Ainsi lorsqu’un ordinateur (par l’usage d’un navigateur internet) se connecte au serveur hébergeant le site statique, la page demandée est instantanément retournée, sans compilation ni traitement par le serveur.

Site web dynamique Un   site dynamique   combinent différentes sources pour constituer ses pages HTML. D’un côté il y a une base de données ( MySQL , …), et de l’autre des fichiers dans un langage de programmation dynamique ( PHP , Java , …) qui à la demande d’un ordinateur se connectant au serveur, compile la page HTML avant de la délivrer.

Les plateformes Java

Java Write once , Run everywhere … Java est un langage de programmation moderne développé par  Sun Microsystems  (aujourd'hui racheté par  Oracle ). Une de ses plus grandes forces est son excellente portabilité : une fois votre programme créé, il fonctionnera automatiquement sous Windows, Mac, Linux, etc . Puissance Stabilité Sécurité …

Java Aujourd'hui ... ... 3 environnements d'exécutions différents. Java ME (Micro Edition) pour téléphone Java SE (Standard Edition) pour desktop Java EE (Entreprise Edition) pour serveur

Problématique générale

Problématique “ Les applications d'entreprise ” concernent aussi bien les grandes entreprises que les petites … Elles doivent être : Portables Fiables et sécurisées Maintenables et flexibles Performantes Nécessité d'intégrer ou de s'intégrer à un système d'information existant. Toutes ces considérations rendent les applications complexes !

La solution ?

La plateforme JEE

JEE – Java Entreprise Edition Standard de développement d'applications d'entreprises multi-niveaux, basées sur des composants. Conscient de l’intérêt des architectures multi-tiers pour le développement d’applications d’entreprises, la société Sun Microsystems a proposé , dès 1999, une déclinaison de son SDK Java (Software Development Kit) baptisé JEE ( J ava E nterprise E dition ). JEE est un ensemble de spécifications (et non pas un produit) qui, en respectant une architecture multi-tiers , va décrire à la fois: L'infrastructure de gestion des applications. Les API des services utilisées pour concevoir ces applications.

L'infrastructure de gestion des applications

Serveur d’applications JEE définit finement les rôles et les interfaces pour les applications  ainsi que l'environnement dans lequel elles seront exécutées . Ces recommandations permettent ainsi à des  entreprises tierces de développer des serveurs d'application conformes aux  spécifications ainsi définies, sans avoir à redévelopper les principaux services . C 'est-à-dire de l'environnement d'exécution ,

Les applications d'entreprise ont souvent besoin des mêmes services système : Gestion de la concurrence Services transactionnels entre composants Sécurité Gestion de la session utilisateur Gestion des montées en charge Ouverture sur de multiples sources de données Pools de connexion Système de tolérance aux pannes et reprise sur incident Le serveur d'application fournira ces services système

S erveur d’applications Serveur d'application JEE implémente les API JEE Il héberge des composants applicatifs Il fournit des services à ces composants au travers d' un conteneur (un environnement d'exécution chargé de gérer des composants applicatifs et leur donner accès aux API JEE ) Il gère le noyau de l'application avec pour objectif central de répondre aux requêtes des utilisateurs s'y connectant.

Des services, au travers d'API

Des services, au travers d'API La plateforme JEE comprend des services, au travers d'API, c'est-à-dire des extensions Java indépendantes permettant d'offrir en standard un certain nombre de fonctionnalités. Sun (aujourd'hui racheté par  Oracle )  fournit une implémentation minimale de ces API appelée JEE SDK (JEE Software Development Kit ) Des services offerts,

API – Application Programming Interface Une   interface de programmation  est un ensemble normalisé de classes , de méthodes  ou de  fonctions  qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels. Dans le jargon Java, les APIs sont des librairies de composants réutilisables . Les APIs sont des spécifications , implémentées ensuite ( par IBM, Oracle, …) sur les différentes plates-formes proposant un environnement d’exécution Java.

Les API de JEE Les API de JEE peuvent se répartir en deux grandes catégories : Les composants. Les services.

Les composants Les composants web : Les composants métier : Servlets et JSP (Java Server Pages) il s’agit de la partie chargée de l'interface avec l'utilisateur (on parle de  logique de présentation ). EJB (Enterprise Java Beans ), Il s'agit de composants spécifiques chargés des traitements des données propres à un secteur  d'activité (on parle de  logique métier  ou de  logique applicative ) et  de l'interfaçage avec les bases de données .

Les composants web : Les servlets sont donc des applications  Java  fonctionnant du côté serveur au même titre que les  CGI  et les langages de  script côté serveur tels que   ASP  ou bien  PHP . Les servlets permettent donc de gérer des  requêtes HTTP  et de fournir au client une  réponse HTTP  dynamique

Les composants web : Les JSP (Java Server Pages) sont une technologie Java qui permet la génération de pages web dynamiques . Les JSP permettent d'introduire du code Java dans des tags prédéfinis à l'intérieur d'une page HTML. La technologie JSP mélange la puissance de Java côté serveur et la facilité de mise en page d'HTML côté client . Il s'agit en réalité d'un langage de script puissant (un langage interprété)  exécuté du côté du  serveur  (au même titre que les scripts  CGI,PHP,ASP ,...)

Les services Les services d'infrastructures : Les services communication. JDBC JNDI JTA / JTS JCA JMX JAAS JavaMail JMS RMI-IIOP API de gestion de l'authentification et des droits d'accès . API permettant l'envoi de courrier électronique . API fournit des fonctionnalités de communication asynchrone. API permettant la communication synchrone entre objets API d'accès aux bases de données relationnelles. API d’accès aux services de nommage et annuaires d’entreprises. API définissant des interfaces standard avec un g. de transactions. API de connexion au système d’information de l’entreprise (ERP). F. des ext . permettant de dév Des apps web de supervision d’apps

Démonstration

Démonstration Cette démonstration permet de pratiquer les bases du développement web JEE en utilisant les composants Web Servlet , JSP et JSTL , sans faire appel à aucun Framework.   E lle montre un exemple d'application web JEE qui respecte le pattern MVC avec une couche métier qui effectue le mapping objet relationnel JDBC . C 'est une application qui permet de saisir , ajouter , supprimer , éditer et mettre à jour des produits stockés dans une base de données MYSQL .

  l'application se compose de deux couches : La couche Métier : Une entité :Produit Une interface Un singleton Connection Une implémentation de l'interface Une classe pour Tester cette implémentation La couche Web : Un contrôleur : Servlet - Une vue JSP - Une feuille de style CSS

Cette démonstration vous permet d'apprendre les concepts suivants : Créer une base de données MySQL Effectuer le mapping objet relationnel avec JDBC Créer un pattern Singleton Utiliser le pilote JDBC Respecter le pattern MVC Créer une servlet et le Déployer Créer une JSP en utilisant JSTL Cet exemple est un passage idéale avant de commencer à utiliser les Framework Hibernate , Spring , Struts ou JSF .

Merci ! Sabri Bouchlema Elève ingénieur en génie logiciel Jcertif S tudent Ambassador
Tags