Architecture des systèmes d information répartis

Documents pareils
Environnements de Développement

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Java pour le Web. Cours Java - F. Michel

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Application web de gestion de comptes en banques

Compte Rendu d intégration d application

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Mise en œuvre des serveurs d application

J2EE - Introduction. Développement web - Java. Plan du chapitre

Introduction à la plateforme J2EE

Java Naming and Directory Interface

Java et les bases de données

Création d une application JEE

Cedric Dumoulin (C) The Java EE 7 Tutorial

2 Chapitre 1 Introduction

Java DataBaseConnectivity

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Introduction à Java. Philippe Genoud.

Architecture Orientée Service, JSON et API REST

Plan. Department of Informatics

JavaServer Pages (JSP)

Formation en Logiciels Libres. Fiche d inscription

Nouvelles Plateformes Technologiques

Accès aux bases de données

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Développement des Systèmes d Information

TP Programmation Java / JDBC / Oracle

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Les architectures 3-tiers Partie I : les applications WEB

Application Web et J2EE

Web Tier : déploiement de servlets

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Programmation Orientée Objet

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Bases Java - Eclipse / Netbeans

JOnAS Day 5.1. Clustering

JOnAS 5. Serveur d application d

Intergiciel - concepts de base

Initiation à JAVA et à la programmation objet.

1. Installation d'un serveur d'application JBoss:

10. Base de données et Web. OlivierCuré

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Auto-évaluation Aperçu de l architecture Java EE

Vulgarisation Java EE Java EE, c est quoi?

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Evaluation Idéopass Cahier d analyse technique

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Hébergement de sites Web

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

OpenPaaS Le réseau social d'entreprise

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

Module BD et sites WEB

Programmation d application Bases de données avec Java

Messagerie asynchrone et Services Web

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Remote Method Invocation (RMI)

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Refonte front-office / back-office - Architecture & Conception -

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

Groupe Eyrolles, 2005, ISBN :

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Vérifier la qualité de vos applications logicielle de manière continue

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Petite définition : Présentation :

Prise en compte des ressources dans les composants logiciels parallèles

IBM DB2 Alphablox. d administration GC

JOnAS Day 5.1. Outils de développements

Documentation de la plate forme JOnAS. Frederic Maistre

Business Process Execution Language

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Urbanisation des Systèmes d'information

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Documentation de la plate forme JOnAS

Introduction au Déploiement

Java - RMI Remote Method Invocation. Java - RMI

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Introduction aux «Services Web»

TP1 : Initiation à Java et Eclipse

Serveur d'application à la juste taille

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Applications des patrons de conception

DEMARREZ RAPIDEMENT VOTRE EVALUATION

Applications distribuées: le retour du client "riche"

Construire une base de donnée pour bibliothèque

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

JDBC le langage Java XVI-1 JMF

Les processus métiers : concepts, modèles et systèmes

RMI le langage Java XII-1 JMF

Le passage à l échelle de serveur J2EE : le cas des EJB

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Transcription:

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

Présentation du cours Répartition des cours Cours + TD Services web Cours + TD JEE Sécurité web Contrôle des connaissances Contrôle continuu 1 er CC : le 31 octobre (a confirmer) Projet 2

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

Avantages Produits qui s exécutent sur n importe quel système qui prenne en charge la plateforme 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

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

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 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 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) 8

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

Les servlets 10

Les servlets - Présentation (1) Définition Programme Java S'exécute dynamiquement sur le serveur Web Permet l'extension des fonctions du serveur web accès à des bases de données transactions d'e-commerce, etc. 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

Les servlets - Caractéristiques Une servlet est une classe java issue des classes prédéfinies javax.servlet.* javax.servlet.http.* Créer une sous-classe de javax.servlet.http.httpservlet public class ServletDeBase extends HttpServlet{} 12

Les servlets - Développement 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

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

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> 15

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> 16

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 17

Les servlets et les BD Connections aux bases de données via JDBC La connexion reste toujours sur le serveur => sécurisation des données Connexion dans la servlet OU Possibilité de créer des pools de connexion 18

Accès aux données - JDBC 1.Créer une connexion à la base (DataSource) 2.Créer une requête (Statement) 3.Exécuter une requête 4.Traiter les résultats 19

Le JNDI JNDI (Java Naming and Directory Interface) Accès aux services de nommage et d annuaire Recherche de composants métier dans un environ. J2EE Inclut la prise en charge du protocole LDAP (Lightweight Directory Access Protocol), le service de nommage de CORBA et le registre RMI (Remote Method Invocation) 20

Le JNDI (Java Naming and Directory Interface) utilisée dans les spécifications de plusieurs API : JDBC, EJB, JMS,... Deux imports : import javax.naming.* ; import javax.naming.directory.* ; 21

Configuration Declaration de la ressource dans le fichier c:\serveur\tomcat5_5\conf\serveur.xml <!-- JNDI de la base test --> <Resource name="base_test" type="javax.sql.datasource" password="" driverclassname="com.mysql.jdbc.driver" maxidle="2" maxwait="500" username="root" url="jdbc:mysql://localhost/test?autoreconnect=true" maxactive="500" />

Configuration Declaration de la ressource dans le fichier conf\catalina\localhost\servletstd1.x ml <Context path="/servletstd1" reloadable="true" docbase="c:\eclipseworkspace\servletstd1" workdir="c:\eclipseworkspace\servletstd1\work" > <ResourceLink name="base_test" global="base_test" type="javax.sql.datasource"/> </Context>

Connexion Créer un objet de type Context pour chercher dans le contexte Context initctx = new InitialContext(); Context envctx = (Context) initctx.lookup("java:comp/env"); ds=(datasource) envctx.lookup("base_test"); La methode principale de DataSource est getconnection() : Connection BD=ds.getConnection();

Statement Obtenir un objet implémentant l'interface Statement Connection BD =... Statement stmt = BD.createStatement(); Exécuter une requête String s = "SELECT * FROM personne"; ResultSet r = stmt.executequery(s);

Requêtes pour la mise à jour Requêtes de mise à jour et de création e.g. update, drop, create Statement stmt = conn.createstatement(); int i = stmt.executeupdate("drop TABLE personne"); Observation : retournent un nombre JDBC 26

Traitement des résultats ResultSet r = stmt.executequery(s); while (r.next()) {... out.println(r.getstring("nom ")); out.println(r.getstring("prenom"));... }

TD1 : Mise en place de l'environnement Allez sur la page du cours : http://home.mis.u-picardie.fr/~ionica/asi.htm Installation - Serveur d'application qui execute le code et reponde aux requetes : Apache-Tomcat -Platforme de developpement : Eclipse -JDK : bibliotheques + outils compilation 28