• Aucun résultat trouvé

Cours J2EE : introduction l'essentiel du Java 2 Enterprise Edition

N/A
N/A
Protected

Academic year: 2021

Partager "Cours J2EE : introduction l'essentiel du Java 2 Enterprise Edition"

Copied!
61
0
0

Texte intégral

(1)

La plate-forme Java EE

(J2EE)

POLYTECHNIQUE INTERNATIONALE

(2)

Programmation par composants

• Limites de la programmation usuelle

• plus adaptée à la programmation de “petits projets” (programming in the small) • tout est à la charge du programmeur:

• la liaison entre les différentes couches de l’application (présentation, application, données), • construction des objets utilisées sur les couches,

• la structure de l’application est peu visible et particulière à chaque application ( pas de généricité)

• l’évolution de l’application est difficile: ajout de fonctionnalités, modification des conditions d’installation, changement de la BD

• le développement, la génération des exécutables et leur déploiement ne sont pas standardisés

(3)

• Programmation par composition

(ou constructive)

• Elle est motivée par la réutilisation des logiciels déjà existants et propose de créer des applications réparties par assemblage de composants logiciels existants.

• C’est le concept du “programming in the large” où l’on définit des composants génériques qui sont ensuite réutilisables dans plusieurs applications.

(4)

• Architecture simple tiers (monolithique, un seul poste)

• Architecture 2 tiers ou client-serveur

• Architecture 3 tiers

• Architectures n-tiers (multiplication du nombre de couches

fonctionnelles de plus en plus fines)

• On impose pas que toutes les couches d’une application

fonctionnent sur des machines différentes

• Séparation logique fonctionnelle OU séparation physique des

couches ?

(5)

Architecture simple tiers

Les applications bureautiques sont conçues pour fonctionner sur un ordinateur unique. Toutes les services fournis par l'application - interface utilisateur, persistance des données (sauvegarde dans des fichiers propriétaires) et logique de traitement de ces données - résident sur la même machine et sont inclus dans l'application. Cette architecture monolithique est appelée simple tiers car toutes les fonctionnalités sont comprises dans une seule couche logicielle.

(6)

Architecture client-serveur

Les applications plus complexes peuvent tirer parti d'une base de données et accéder aux informations qu'elle contient en envoyant des commandes SQL à un serveur pour lire et écrire les données. Dans ce cas, la base de données fonctionne dans un processus indépendant de celui de l'application, et parfois sur une machine différente. Les composants permettant l'accès aux données sont séparés du reste de l'application.

(7)

La raison de cette approche est de centraliser les données afin de permettre à plusieurs utilisateurs d'y accéder simultanément. Les données peuvent ainsi être partagées entre plusieurs utilisateurs de l'application. Cette architecture est appelée client-serveur, qui dans notre approche peut être représentée en deux tiers.

(8)

Un des inconvénient de l'architecture deux-tiers est que la logique

chargée de la manipulation des données et de l'application des règles

métiers afférentes est incluse dans l'application elle-même. Cela pose

problème lorsque plusieurs applications doivent partager l'accès à

une base de données. Il peut y avoir, par exemple, une règle

exprimant qu'un client affichant un retard de paiement de plus de 45

jours verra son compte suspendu. Il n'est pas compliqué

d'implémenter cette règle dans chaque application accédant aux

données client. Toutefois, si la règle change et qu'un délai d'un mois

est appliqué, il faudra mettre à jour toutes les applications.

(9)

Architecture trois-tiers

Pour éviter cette confusion, la solution consiste à séparer physiquement les règles métier en les plaçant sur un serveur où elles n'auront à être remise à jour qu'une seule fois, et non autant de fois qu'il y a d'applications qui y accède. Cette solution ajoute un troisième tiers à l'architecture client-serveur.

(10)

Selon ce modèle, toute la logique métier est extraite de l'application cliente. Celle-ci n'est plus responsable que de la présentation de l'interface à l'utilisateur et de la communication avec le tiers médian. Elle n'est plus responsable de l'application des règles. Son rôle est réduit à la couche présentation.

(11)

Architectures distribuées

• Les applications à architectures distribuées sont des

applications dont les fonctions sont réparties entre

plusieurs systèmes. On les appelle aussi

architectures

multi-tiers

(ou multi-couches)

• Chaque système contient une partie de l’application, les

parties manquantes sont exécutées sur les autres systèmes

participants à l’application et les informations sont

échangées par le réseau

(12)

• Une application est composée de 3 couches

fondamentales:

• Couche de présentation

– interface utilisateur...

– Présenter les données à l’utilisateur

• Couche Applicative / Logique métier :

– validation et traitement des données

– modélisation des processus métiers (règles métier)

• Couche d’accès de données / Persistance

(13)

Très développée de nos jours

Avec généralement un fonctionnement au dessus du Web

Couche présentation

Navigateur web sur machine cliente Client léger

Affichage de contenu HTML

Couche applicative / métier

Serveur d'applications

Serveur HTTP exécutant des composants / éléments logiciels qui génèrent dynamiquement du contenu HTML

Via des requêtes à des BDD distantes

Couche persistance

(14)

Généralement, une application d'entreprise est composée de trois couches fondamentales :

La première a pour rôle d'afficher les données pour l'utilisateur et de collecter les informations qu'il saisit. Cette interface est souvent appelée couche de présentation car sa fonction consiste à présenter les données à l'utilisateur et à lui permettre de fournir des informations au système. La couche présentation est la partie de l'application responsable de la création et du contrôle de l'interface présentée à l'utilisateur et de la validation de ses actions.

Sous cette couche de présentation, on trouve la logique métier qui permet à l'application de fonctionner et de traiter les données. Dans une application de paye, par exemple, la logique métier multiplie les heures travaillées par le salaire horaire pour déterminer combien chaque employé doit toucher. La logique métier est mise en œuvre à partir des règles métier. Cette partie de l'application constitue l'essentiel du tiers médian.

Toutes les applications d'entreprise ont besoin d'écrire et de lire des données. Cette

(15)

Rajoute des étages / couches en plus

La couche applicative n'est pas monolithique

Peut s'appuyer et interagir avec d'autres services Composition horizontale

Service métier utilise d'autres services métiers Composition verticale

Les services métiers peuvent aussi s'appuyer sur des services techniques :

Sécurité, Transaction, … etc

Chaque service correspond à une couche, d'où le terme de N-tiers

(16)

Intérêts d'avoir plusieurs services / couches (3 ou plus)

Réutilisation de services existants

Découplage des aspects métiers et technique et des services entre eux : meilleure modularité Facilite évolution : nouvelle version de service

Facilite passage à l'échelle : évolution de certains services On recherche en général un couplage faible entre les services

Permet de faire évoluer les services un par un sans modification du reste de l'application

Inconvénients

En général, les divers services s'appuient sur des technologies très variées : nécessite de gérer l'hétérogénéité et l'interopérabilité

Utilisation de framework / outils supplémentaires

Les services étant plus découpés et distribués, pose plus de problèmes liés à la distribution

(17)

Introduction J2EE

• 1998 : La plateforme J2EE (Java 2 Entreprise Edition) est née de besoins grandissant des entreprises pour développer des applications complexes distribuées et ouvertes sur l ’Internet, le mobile, etc.

• Définie par Sun MicroSystems, basée sur Java

• Site officiel (anciennement java.sun.com )

http://www.oracle.com/technetwork/java/index.html

• J2EE est le terme utilisé dans les versions avant 2005 (JDK 1.4 ou antérieur)

 J2SE (Java 2 Standard Edition) fournit le langage et la plateforme java sur lesquels est bâti J2EE

(18)

• Depuis la sortie de la version 5 (en 2005, JDK 1.5), Le terme J2EE a été remplacé par Java EE

• Actuellement (en 2013) Java EE 7

• Autres éditons :

• Java SE 7 (Standard Edition)

• Java ME 3.0 (Micro Edition)

• Java FX 1.3 plateforme pour la création d’application RIA (Rich Internet Application) basé sur le langage Java FX Script

(19)
(20)

Que veut dire J2EE ?

J2EE représente essentiellement des applications d'entreprise.

Cela inclut le stockage sécurisé des informations, ainsi que leur

manipulation et leur traitement : factures clients, calculs

d'amortissement, réservation de vols, etc.

Ces applications peuvent avoir des interfaces utilisateurs

multiples, par exemple une interface Web pour les clients,

accessible

sur

Internet

et

une

interface

graphique

fonctionnant sur les ordinateurs de l'entreprise sur le réseau

privé de celle-ci.

(21)
(22)

Elles doivent gérer les communications entre systèmes distants,

s'occuper automatiquement des différents protocoles de

communication, synchroniser les sources avec éventuellement

des technologies différentes, et s'assurer que le système

respecte en permanences les règles de l'activité de

l'entreprise,

appelés

règles

"métier".

Pour

finir,

ces

applications s'occupe également automatiquement de la base

de données sans que le développeur est à intervenir.

(23)

Qu’est ce que le Java EE

(ou J2EE)

• La Plateforme JEE désigne les technologies Java utilisées pour le

développement d'applications «d’entreprise » distribuées

(Répartie, multi-couches, n-tiers)

• JEE est une plate-forme fortement orientée serveur. Elle est

composée de deux parties essentielles :

1. un ensemble de spécifications pour une infrastructure dans laquelle s'exécutent les composants écrits en Java : un tel environnement se nomme serveur d'application.

(24)

Pour de nombreux développeurs, J2EE est souvent synonyme de Entreprise JavaBeans. En fait, J2EE est beaucoup plus que cela. En simplifiant, nous pouvons dire que J2EE est une collection de composants, de conteneurs et de services permettant de créer et de déployer des applications distribuées au sein d'une architecture standardisée.

J2EE est logiquement destiné aux gros systèmes d'entreprise. Les logiciels employés à ce niveau ne fonctionne pas sur un simple PC mais requière

une puissance beaucoup plus importante. Pour cette raison, les

applications doivent être constituées de plusieurs composants pouvant être déployés sur des plate-formes multiples afin de disposer de la puissance de calcul nécessaire.

J2EE fournit un ensemble de composants standardisés facilitant le déploiement des applications, des interfaces définissant la façon dont les

(25)

Il existe actuellement beaucoup d’autres plates-formes de développement qui sont basées sur d’autres langages (C#,PHP5, .NET...). Les principaux avantages d’utiliser Java EE (et donc Java) sont la portabilité, l’indépendance, la

sécurité et la multitude de librairies proposées.

Le développement d’applications d’entreprise nécessite la mise en œuvre d’une infrastructure importante. Beaucoup de fonctionnalités sont utilisées et développées, le but étant de produire des applications sûres, robustes et faciles à maintenir. Certains services sont d’ailleurs récurrents comme : l’accès aux bases de données, l’envoi de mails, les transactions, la gestion de fichiers, la gestion d’images, le téléchargement, le chargement ou upload, la supervision du système...

C’est pour cela que l’architecture Java EE est intéressante car tous les éléments fondamentaux sont déjà en place. Pas besoin de concevoir une architecture , des librairies et des outils spécialement adaptés. Cela nécessiterait un temps et un

(26)

Enfin, la plateforme Java EE est basée sur des spécifications, ce qui signifie que les projets sont portables sur n’importe quel serveur d’applications conforme (Tomcat, JBoss, WebSphere...) à ces spécifications. Cette implémentation est gratuite et permet de bénéficier de la totalité de l’API sans investissement. La plateforme Java EE est la plus riche des platesformes Java et offre un environnement standard de développement et d’exécution d’applications d’entreprise multi-tiers.

Le fait que Java EE soit standardisé a contribué à son adoption par de très nombreux éditeurs de logiciels/outils informatique. Ces éditeurs associés à Sun Microsystems font partie du JCP (Java Community Process). Le Java Community Process regroupe les entreprises suivantes : Sun, IBM, Oracle, Borland, Nokia, Sony, la fondation Apache, ObjectWeb... L’objectif du JCP est de définir les spécifications des technologies basées sur Java. Chaque demande de modification est appelée une JSR (Java Specification Request).

(27)

Java EE 7 - JSRs

Connector 1.6

Managed Beans 1.0 EJB 3.2 Servlet 3.1 Portable Extensions JSF 2.2 JAX-RS 2.0 JMS 2.0 JPA 2.1 EL 3.0 JTA 1.2 JSP 2.2 Interceptors 1.1 CDI 1.1 Common Annotations 1.1 Concurrency Utilities (JSR 236) Batch Applications (JSR 352)

Java API for JSON (JSR 353)

Java API for WebSocket (JSR 356)

Updated

Major

Release

(28)

Java EE - Architecture

Servlets JSPs EJBs WEB Container EJB Container DB EIS Browser Applets http rmi rmi rmi html public static void main(…) {

(29)

• JEE permet une grande flexibilité dans le choix de l'architecture de l'application en combinant les différents composants.

• L'architecture d'une application se découpe idéalement en au moins trois tiers :

• La partie cliente : permet le dialogue avec l'utilisateur. Elle peut être composée :

• d'une application stand-alone • d'une application web

• d'applets

• La partie métier : encapsule les traitements (dans des EJB ou des JavaBeans)

• La partie données : stocke les données

(30)

• L’architecture JEE est une architecture d’application distribuée à base de composants. Ces composants sont mis en œuvre par l’intermédiaire des

conteneurs Conteneur EJB Composant Métier Serveur de bases de données Conteneur Applet Composant Client Applet/ Conteneur Web Composant Web Servlet/JSP Internet

Tiers Interface Tiers

Services Web Tiers Données Tiers Métier Serveur d’application Serveur Web Navigateur

Architecture en Java EE

(31)
(32)

Concepts et spécificités de J2EE

Côté client

Un client J2EE peut être une application console (texte

seulement) écrite en Java, ou une application dotée d'une

interface graphique développée en Swing. Ce type de client

est appelé client lourd, en raison de la quantité importante de

code qu'il met en œuvre.

Un client J2EE peut également être conçu pour être utilisé à

partir du Web. Ce type de client fonctionne à l'intérieur d'un

navigateur Web. La plus grande partie du travail est reportée

sur le serveur et le client ne comporte que très peu de code.

Pour cette raison, on parle de client léger. Un client léger peut

être une simple interface HTML, une page contenant des

(33)

Concepts et spécificités de J2EE

(34)

Clients JEE

• La plateforme JEE prévoit que plusieurs types de clients puissent accéder à une même application et interagir avec les mêmes composants côté serveur:

• JEE peut supporter de nombreux types de clients: Web, WAP, stations de travails, téléphones portables, …

(35)

• Client web (léger)

• Client web RIA (Rich Internet Application) : Applets, Java Web Start, AJAX, Google Web Toolkit, Flex, JavaFX (autres version JavaFx pour mobile et pour TV)

• Client lourd : des applications clientes s'exécutent dans leur propre conteneur client. Les applications clientes ont des interfaces utilisateurs qui peuvent directement interagir avec le tier EJB en utilisant RMI-IIOP (Remote Methode Invocation over Internet Inter-Orb Protocol) ou encore application C++ utilisant CORBA.

• Clients sans fil (J2ME pour les dispositifs sans fil). WAP (Wireless Application Protocol) , wml (Wireless Markup Language)

(36)

Les composants déployés sur le serveur peuvent être classés

en deux groupes. Les composants Web sont réalisés à

l'aide de servlets ou de JavaServer Pages (JSP). Les

composants métiers, dans le contexte J2EE, sont des

Entreprise JavaBeans (EJB).

Concepts et spécificités de J2EE

(37)

Serveurs d'applications

Tout comme les bibliothèques d'interfaces graphiques comme

Swing fournissent les services nécessaires au développement

d'application graphiques, les serveurs d'applications mettent à

disposition les fonctionnalités permettant de réaliser des

applications d'entreprise : communication entre ordinateurs, mis

en place de protocole adaptés, gestion des connexions avec une

base de données, présentation de pages Web, gestion des

transactions, etc.

J2EE propose justement un ensemble de bibliothèques avec des

objets de très haut niveau pour mettre en œuvre facilement ses

serveurs d'applications.

(38)

• Les serveurs d'applications peuvent fournir :

• Un conteneur web uniquement (exemple : Tomcat) ou

• Un conteneur d'EJB uniquement (exemple : JBoss, Jonas, ...) ou • Les deux conteneurs (exemple : Websphere, Weblogic, ...).

Serveur d‘application

Une plate-forme d'exécution JEE complète, implémentée dans un serveur d'application, propose les services suivants :

• service de nommage (naming service)

• service de déploiement (deployment service)

• service de gestion des transactions (transaction service) • service de sécurité (security service)

Ces services sont utilisés directement ou indirectement par les conteneurs mais aussi Les services proposés par la plate-forme JEE

(39)

Le serveur d'application va fournir les services systèmes génériques :

 La sécurité

 La reprise sur panne

 Les services transactionnel entre composants  La gestion des utilisateurs

 L'accès aux sources de données

Les serveurs d'application

• Des serveurs commerciaux (payants) :  BEA WebLogic

 IBM WebSphere

 Sun Java System App. Server  Oracle Application Server 10g  SAP Netweaver, ...

Des serveurs d'application Java EE

Les serveurs Web Java EE permettent d'exécuter les servlets, JSP, etc.

Ils sont souvent inclus dans les serveurs

d'application. Exemple de serveur Web Java EE :

Apache Tomcat

(40)

• Une API (Application Programming Interface ) est une interface de programmation. C’est un ensemble de fonctions, procédures ou classes mises à disposition des programmes informatiques par une bibliothèque logicielle, un système d’exploitation ou un service.

• Les composants : permet un découpage de l'application et donc une séparation des rôles lors du développement :

 Les composants web : Servlet et JSP(Java Server Pages).  Les composants métier : EJB (Enterprise Java Beans).

• Les services :

 Les services d'infrastructures : JDBC, JNDI, JTA, JCA, JMX  Les services de communication : RMI-IIOP, JavaMail, JAAS

(41)

Composants

• Un composant est un module logiciel autonome, configurable et installable sur plusieurs plates-formes.

• Un composant:

• exporte des attributs, propriétés et méthodes, • peut être configurable

• Les composants sont les briques de bases configurables d’une application par composition.

Les composants J2EE

• Un composant est une unité logicielle de niveau applicatif. • JEE supporte les types de composants suivants :

• applets,

• application clientes, • JavaBeans

(42)

Construction d’application par assemblage de composants

La création d’une application par assemblage de composants se distingue

de l’ingénierie de développement classique car elle permet de:

• réduire les besoins en compétences techniques

• focaliser l’expertise sur les problèmes du domaine (logique métier)

• Réduire les coûts de développement et de maintenance

(43)

JPA

La persistance des objets en Java a longtemps donné lieu à des manipulations fastidieuses. Aujourd'hui, la Java Persistence API apporte une solution performante et simple à utiliser. S'appuyant sur JDBC (Java DataBase Connectivity), JPA propose une abstraction suffisante pour que le développeur n'ait, dans la majorité des cas, pas à se préoccuper du fonctionnement de JDBC.

Servlets

Les Servlets forment l'un des composants JEE les plus utilisés. Elles permettent de gérer des requêtes HTTP et de fournir au client une réponse HTTP et forment ainsi la base de la programmation Web JEE.

Les Servlets s’exécutent toujours dans un moteur de Servlet ou conteneur de Servlet permettant d’établir le lien entre la Servlet et le serveur Web. Dans ce tutoriel, nous utiliserons Apache Tomcat.

Pages JSP

Les JSP (Java Server Pages) sont des pages HTML qui permettent l'affichage de contenu web dynamique par l'intégration de fragments de code Java et de directives JSP.

(44)

JSF

Java Server Faces est un framework Java basé sur la notion de composants où l'état d'un composant est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête. Il utilise JSP par défaut, mais peut être utilisé avec d'autres technologies, comme par exemple Facelets ou XUL.

EJB 3.0

Les EJB (Enterprise Java Beans) forment l'une des spécifications majeures de JEE et utilisent le principe des annotations Java. Ils se déclinent en :

• entités (Entity Bean)

• sessions (Session Bean) • messages (Message Bean)

(45)

• Les conteneurs assurent la gestion du cycle de vie des composants qui s'exécutent en eux. Les conteneurs fournissent des services qui peuvent être utilisés par les applications lors de leur exécution.

• La notion de conteneur se retrouve dans de nombreuses technologies : – Servlet, Applet, MIDlet, Xlet, (*-let ), EJB, …

• Il existe plusieurs conteneurs définit par JEE:

– Conteneur web : pour exécuter les Servlets et les JSP – Conteneur d'EJB :

C'est quoi un Conteneur ?

• Un conteneur est un composant logiciel système qui contrôle d’autres

composants, dits métier – Tomcat est un exemple de conteneur

– Les servlets n’ont pas de méthode main(), ils sont contrôlés par le conteneur Tomcat

– Les requêtes ne sont pas adressées aux servlets mais au conteneur dans lequel ils sont déployés

(46)

Les conteneurs sont les éléments fondamentaux de l'architecture

J2EE. Les conteneurs fournis par J2EE sont de même type. Ils

fournissent une interface parfaitement définie ainsi qu'un

ensemble

de

services

permettant

aux

développeurs

d'applications de se concentrer sur la logique métier à mettre

en œuvre pour résoudre le problème qu'ils ont à traiter, sans

qu'ils aient à se préoccuper de toute l'infrastructure interne.

Les conteneurs s'occupent de toutes les tâches fastidieuses liées

au démarrage des services sur le serveur, à l'activation de la

logique

applicative,

la

gestion

des

protocoles

de

communication intrinsèque ainsi qu'à la libération des

ressources utilisées.

(47)

J2EE et la plate-forme Java disposent de conteneurs pour les composants Web et les composants métiers. Ces conteneurs possèdent des interfaces leur permettant de communiquer avec les composants qu'ils hébergent. Les principaux conteneurs J2EE sont notamment ceux dédiées aux EJB, aux JSP, aux servlets et aux clients J2EE.

(48)

Les conteneurs JEE

• Eléments fondamentaux de l’architecture JEE

• Les conteneurs JEE fournissent une interface parfaitement définie ainsi qu’un ensemble de services permettant aux développeurs de se concentrer sur la logique métier.

• Les conteneurs et serveurs implémentent les services et mécanismes de bas niveau utilisés par les applications:

• La communication entre les clients et les serveurs • Le contrôle de la sécurité

• La gestion des transactions

(49)

Conteneurs JEE

• Les conteneurs et serveurs implémentent les mécanismes de bas niveau utilisés par les applications:

• transactions, • persistance,

• gestion de la mémoire, • sécurité

• Les spécifications J2EE s’intéressent aux activités d’une application liées: • au développement,

• au déploiement, • à l’exécution

(50)

JEE 4 types de Conteneur Conteneur d'applet Java SE Applet Conteneur du client de l'application Client de l'applicatio n JM S JA V A JA X P JDBC Conteneur Web Java SE JM S JA V A JT A Java Mail JSP Servlet JAF JA X P JDBC JCX Conteneur d'EJB Java SE JM S JA V A JT A Java Mail EJB JAF JA X P JDBC JCX Couche client

Couche Web Couche métier

(51)

Exemple Répartition en couches : Cas du 3 Tiers

 Considérons une architecture courante, celle à trois niveaux:

 La couche [1], (User Interface) : dialogue avec l'utilisateur, via une interface. Elle a pour rôle de fournir des données provenant de l'utilisateur à la couche [2] ou bien de présenter à l'utilisateur des données fournies par la couche [2].

 La couche [2], appelée ici [Métier] est la couche qui applique les règles dites métier, c.a.d. la logique spécifique de l'application, sans se préoccuper de savoir d'où viennent les données qu'on lui donne, ni où vont les résultats qu'elle produit.  La couche [3], appelée ici [dao] (Data Access Object) est la couche qui fournit à

Couche Interface

utilisateur Couche Métier

Couche d’accès aux

données (DAO) Données

(52)

Exemple : Couche accès aux données

utilisateur

Il existe différentes possibilités pour implémenter la couche accès aux données. Le développeur peut diviser en tiers dotés de fonctionnalités spécifiques

La couche [JDBC] est la couche standard utilisée en Java pour accéder à des bases de données. Elle isole la couche [dao] du SGBD qui gère la base de données. On peut théoriquement changer de SGBD sans changer le code de la couche [dao].

Couche

Interface Couche Métier

Couche d’accès aux données (DAO) 1 2 3 Couche JDBC donnéesBase de

(53)

Couche Hibernate Objets image de la BD Couche d’accès aux données (DAO) Couche JDBC BD

Pour isoler la couche [dao] des aspects propriétaires des SGBD. Une solution est celle du Framework Hibernate ou (JPA, TopLink dans JEE)

La couche [Hibernate] vient se placer entre la couche [dao] écrite par le développeur et la couche [Jdbc] Hibernate est un ORM (Object Relational Mapping), un outil qui fait le pont entre le modèle relationnel des bases de données et celui des objets manipulés par Java

Le développeur ne voit plus la couche [Jdbc] ni les tables de la BD. Il ne voit que l'image objet de BD, fournie par la couche [Hibernate]. Le pont entre les tables de la BD et les objets manipulés par la couche [dao] est fait principalement de deux façons :

• par des fichiers de configuration de type XML

(54)

Composants web

• Un composant web est une entité logicielle qui fournit une réponse à une requête.

• Les composants web génèrent habituellement l'interface utilisateur d'une application web. • La plate-forme JEE définit deux types de composants web :

• les servlets ;

• les JavaServer Pages (JSP). • JSF (Java Server Face)

Conteneur Web

• Servlets

Code java exécuté sur le serveur Equivalent du CGI

Génération de contenu Web dynamique • JSP: Java Server Pages

(55)

I. Le modèle MVC2

1.Découpage:

Il découpe l'application en 3 couches distincts:

La caractéristique de l'approche MVC2 est la séparation de code Controller à partir de contenu.

o Couche "Modèle" (le M de MVC) : traitement

=> le traitement, le stockage et la mise à jour des données de l'application.

o Couche "Vue" (le V de MVC) : présentation

=> l'interaction avec l'utilisateur et la présentation des données (mise en forme, affichage).

o Couche "Contrôle" (le C de MVC) : données

(56)

2.Cycle de vie d'une requête

1. Le client envoie une requête à l'application qui est prise en charge par la Servet d'entrée qui analyse la

requête et réoriente celle-ci vers un contrôleur

2. Le contrôleur demande au modèle approprié d'effectuer les traitements.

3. Le contrôleur notifie à la vue que la requête est traitée.

(57)
(58)

Framework

• Il existe des frameworks pour lier ces couches entre-elles. Par

exemple

Spring

• Le grand intérêt de Spring est qu'il permet de lier les couches

par configuration et non dans le code

• Avec Java EE , une autre solution existe : implémenter les

couches [metier] et [dao] avec des Ejb3 (Enterprise Java Bean 3)

(59)

Lorsqu’une société développe une application Java et doit ajouter des fonctionnalités professionnelles comme la gestion des transactions, la sécurité, la concurrence ou la messagerie, Java EE est attractif. Il est standard, les composants sont déployés dans différents conteneurs qui offrent de nombreux services et fonctionnent avec plusieurs protocoles. Java EE 7 suit les traces de sa version précédente en ajoutant la simplicité d’utilisation de la couche web. Cette version est plus légère, plus simple d’utilisation (plus besoin d’interfaces sur les EJB ou d’annotations sur la couche web), plus riche (elle ajoute de nouvelles spécifications et fonctionnalités) et, enfin, plus portable (elle

(60)

Résumé

 Le serveur web d’une application J2EE rend disponible les applications sur le World Wide Web.

 Le conteneur web fournit des services de haut niveau aux composants web en matière de transactions, accès aux données, gestion des états, sécurité et distribution.

 L’utilisation de bibliothèques de balises personnalisées améliore la qualité du code source et facilite la maintenance des applications.

 Le patron de conception Modèle-Vue-Contrôleur est recommandé pour la plupart des applications web interactives car il permet de créer des applications réutilisables, et d’ajouter de nouveaux types de clients, processus et vues facilement.

(61)

 Le serveur web d’une application est une couche de service neutre, habituellement conçu sur le modèle MVC, qui simplifie la création d’applications web interactives.

 Le modèle de conception le plus simple a un seul contrôleur qui reçoit les requêtes des navigateurs, les distribue dans l’application et affiche les résultats.

 Il est possible d’utiliser plusieurs contrôleurs web pour gérer nativement des clients web utilisant des protocoles différents.

 Un mécanisme de modèles (templates) permet d’améliorer la mise en page des écrans de l’application.

 Le mécanisme de modèle permet d’utiliser un fichier modèle pour assembler des vues individuelles en une vue composée sur l’application.

Références

Documents relatifs

Faire rebondir la balle sur le sol et au plafond (consid´ erer dans un premier temps qu’il nni frottement, ni amortissement)5. Autres id´

La procédure à suivre pour utiliser un composant Swing est identique à celle des composants AWT : créer le composant en appelant son constructeur, appeler les méthodes du composant

JTA/JTS (Java Transaction API/Java Transaction Services) est un API définissant des interfaces standard avec un gestionnaire de transactions. JCA (J2EE Connector Architecture) est

•Si une classe propose une notion d'égalité dans laquelle deux objets distincts peuvent être égaux, ces deux objets devraient retourner le même code de

Cette déclaration dit que la classe implémente l’interface distante Compute et par conséquent peut être utilisée par un objet distant.. La classe ComputeEngine définit

Par ailleurs, l'installation pour usage avec la dernière version de python n'est pas forcément simple, la dernière version de python supportée par pygame étant en général plus

Une réorganisation des composants dans la fenêtre principale à l'aide de Panels, qui sont des composants légers pouvant contenir d'autres composants.. Il est utilisé pour regrouper

Événements de haut niveau : FocusEvent (une fenêtre qui prend le focus ou la main), WindowEvent (fenêtre fermée, ouverte, icônifiée), ActionEvent (une action