Architecture des systèmes d information répartis

Dimension: px
Commencer à balayer dès la page:

Download "Architecture des systèmes d information répartis"

Transcription

1 Architecture des systèmes d information répartis L architecture multi-tiers Sorina Ionica 1

2 Présentation du cours Répartition des cours Cours + TD Services web Cours + TD J2EE Contrôle des connaissances Contrôle continu TD noté : le 19 octobre (a confirmer) Projet 2

3 Présentation J2EE : norme proposée par Sun Microsystems qui permet de développer des applications d entreprise distribuées Définition de standards ouverts permettant de construire des architectures à base de services à destination de l entreprise Elaborée sur la base du langage de programmation et des technologies java. 3

4 Avantages Produits qui s exécutent sur n importe quel système qui prenne en charge la plate-forme J2EE Applications portables qui deviennent indépendantes des fabricants Architecture fournie par J2EE J2EE gère multithreading, synchronisation, allocation des ressources, gestion du cycle de vie Possibilité pour les développeurs de se concentrer sur les processus métier Standardisation => plus grand choix de produits interopérables + rentabilisation des investissements 4

5 Avantages API J2EE faciles à apprendre pour les développeurs java => augmentation de la productivité Développements plus rapides => réduction des délais de mise sur le marché et des coûts de développement Chaque composant d une application peut être développé indépendamment et réutilisé 5

6 Architecture multicouche J2EE Couche client Conteneur d'applet Applet Couche Web Conteneur Web J2EE Couche métier Conteneur d'ejb J2SE EJB Conteneur du client de l'application JSP Servlet Client de l'application JDK JDK JDK Couche SI Base de données 6

7 Composants client Applications client 1. Client léger : applications composées de pages HTML ; le module d'exécution est un navigateur 2. Client lourd : interface grafique évoluée ; traitement délégué aux composants métier Applets : - Petite application qui s'exécute dans le navigateur (nécessite le Java plug-in) 7

8 Composants et conteneurs J2EE Composants web Servlets et JSP Composants de la couche web s exécutant dans un conteneur web Préparation dynamique du contenu Traitement et formatage liés à la présentation Composants métier EJB ou beans entreprise Composants professionnels à gros grain Gestion des données ou des traitements S'exécutent dans un conteneur d'un serveur d'application 8

9 Diversité des types de clients Client mobile (téléphone, PDA, ) SOAP/XML over HTTP Serveur J2EE Couche Web Client divers hors Java (.NET, PHP, C, ) Client léger (Navigateur) SOAP/XML over HTTP HTTP RMI Conteneur Web JSP Servlet Couche métier Conteneur d'ejb EJB RMI EJB Client riche java (SWING, SWT) 9

10 Les servlets 10

11 Les servlets - Présentation (1) Définition Programme Java S'exécute dynamiquement sur le serveur Web Peut être chargé automatiquement lors du démarrage du serveur Web lors de la première requête du client. Une fois chargés, les servlets restent actifs dans l'attente d'autres requêtes du client. 11

12 Les servlets - Caractéristiques Une servlet est une classe java issue des classes prédéfinies javax.servlet.* javax.servlet.http.* Trois import import javax.servlet.*; import javax.servlet.http.*; import java.io.*; 12

13 Les servlets - Développement Créer une sous-classe de javax.servlet.http.httpservlet Surcharger la méthode adéquate doget(httpservletrequest req, HttpServletResponse res); dopost(httpservletrequest req, HttpServletResponse res); import javax.servlet.*; import javax.servlet.http.*; public class ServletDeBase extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException { } } // lecture de la requête // traitements // envoi de la réponse 13

14 Les servlets - cycle de vie 1. La servlet est chargée au démarrage du serveur ou lors de la première requête 2. La méthode init() est invoquée par le conteneur 3. Lors de la première requête, le conteneur crée les objets Request et Response spécifiques à la requête 4. La méthode service() est appelée à chaque requête dans un nouveau thread. Les objets Request et Response lui sont passés en paramètre 5. Grâce à l'objet Request, la méthode service() va pouvoir analyser les informations en provenance du client 6. Grâce à l'objet Response, la méthode service() va fournir une réponse au client 7. La méthode destroy() est appelée lors du déchargement de la servlet, c'est-à-dire lorsqu'elle n'est plus requise par le serveur. La servlet est alors signalée au garbage collector. 14

15 Les servlets - Développement Au niveau du conteneur Serveur Tomcat Contexte : TD1 HelloServlet Browser HTML Contexte : Tetris Apple t ChargerScores MajScores J D B C Scores Client Serveur 15

16 Les servlets - Développement Les contextes - un contexte = un fichier dans conf\catalina\localhost\servletstd1.xml <Context path="/servletstd1" reloadable="true" docbase="d:\eclipse\servletstd1" workdir="d:\eclipse\servletstd1\work" > <Logger classname="org.apache.catalina.logger.systemoutlogger" verbosity="4" timestamp="true"/> </Context> 16

17 Les servlets - Développement Déclaration des servlets dans le contexte Décrire la servlet dans le fichier D:\eclipse\ServletsTD1\WEB-INF\web.xml <web-app> <display-name>mes servlets</display-name> <description> Premières servlets </description> <servlet> <servlet-name>servlethello</servlet-name> <servlet-class>servletstd1.helloservlet</servlet-class> <description>servlet d'essai</description> </servlet> <servlet-mapping> <servlet-name>servlethello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> 17

18 TD1 : Mise en place de l'environnement Allez sur la page du cours : Installation - Serveur d'application qui execute le code et reponde aux requetes : Apache-Tomcat -Platforme de developpement : Eclipse -JDK : bibliotheques + outils compilation 18