La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Département de physique/Infotronique

Copies: 1
Université De Boumerdes Département de physique/Infotronique IT/M2 Technologies Web Réalisé par : Mr RIAHLA Doctorant a luniversité de limoge (France)

Présentations similaires


Présentation au sujet: "Département de physique/Infotronique"— Transcription de la présentation:

1 Département de physique/Infotronique
Université De Boumerdes Université De Limoges Département de physique/Infotronique IT/M2 les équipements d’interconnexion des réseaux Technologies Web Réalisé par : Mr RIAHLA Doctorant a l’université de limoge (France) 2009/2010

2 Plan Bref présentation d’Internet et du www Histoire d’Internet Le W3C
Architecture et logiciels pour le web Clients web Serveurs web Proxy Cache CDN HTTP Technologies côté clients HTML CSS JavaScript Applets

3 Plan Technologies côté serveur Cookies CGI PHP ASP/ASP.NET
Servlets et JSP Moteurs de recherche et Web Services

4 Brève présentation d’Internet et du www

5 Histoire d’Internet 1962: étude pour la création d’un réseau pour commander l’infrastructure nucléaire américaine capable de résister a une attaque nucléaire Choix d’un réseau par commutation de paquets 1969: construction du premier réseau physique (4 machines, 50 kbps) 1972: envoie du premier (23 machines, 50kpbs) 1973: création de TCP/IP 1974: première utilisation du terme Internet 1979: création d’Usenet 1982: TCP/IP devient le standard d’Internet 1983: Création du Domain Name System

6 Histoire d’Internet 1986: création de l’IETF
1990: création d’un système hypertext par Tim Berners-Lee 1992: le CERN présente le World Wide Web 1993: création de Mosaic, premier client pour le web 1994: création du w3c 1995: IE 1.0 1997: IE 4.0 sort, Netscape a 72%, IE 18% 1998: Netscape jette l’éponge et se fait racheter par AOL 1998: Netscape rend le code source de son navigateur disponible sous licence open source 2002: Mozilla 1.0 2004: début de la deuxième guerre des browsers

7 W3C World Wide Web Consortium Crée en 1994 3 buts
Accès universel au web à travers des technologies tenant compte des différentes cultures, langues, handicapes… Web sémantique Web of trust: guider le développement du web en tenant compte des aspects légaux, commerciaux et sociaux liés aux nouvelles technologies. Rôle du w3c Interopérabilité: les spécifications des protocoles et langages du web doivent pouvoir fonctionner ensembles. Évolution: s’assurer que de nouvelles technologies peuvent être ajoutées au web. Standardisation: donner des Recommandations décrivant les technologies du web.

8 W3C – Domaines d’activité
Architecture XML, Web Services, Internationalization, URI (Uniform Resource Identifier), DOM Interaction Compound Documents, Device independence, Graphics, HTML, CSS, MathML, Synchronized Multimedia, Voice Browser, XForms Technologie et société Semantic Web, Platform for Privacy Preference, XML signature, XML encryption, XML key management, Patent Policy and Standards WAI: Web Accessibility Initiative Politique et techniques pour l’accés à l’information des personnes handicapées

9 Architecture et logiciels pour le web
Client Server D’application Serveur de base de données Réalisé par : Mr RIAHLA 2008/2009

10 Fonctionnement du web Client Serveur Web Client Proxy Cache Client

11 Les clients web Variété des plateformes Windows, Unix, PDA…
Variété des logiciels IE, Firefox, Mozilla, Opera, Lynx… Caractéristiques Gestion d’HTML/XHTML Gestion de CSS Gestion de JavaScript Gestion de plugins

12 Répartition des clients web
Décembre 2004 Octobre 2005 IE6 65.5% 68.9% IE5 9.9% 5.6% Mozilla et Firefox 17% 21.3% Opéra 7/8 1.8% 1.3% Netscape 1.6% Source:

13 Étapes pour la visualisation d’une page web
L’utilisateur entre une URL Le client web effectue une résolution DNS pour avoir l’adresse du serveur Il effectue la requête http et reçoit un document Il analyse le document pour Préparer l’affichage Trouver les liens vers les images Une requête est effectuée pour downloader les images Cela peut se faire en parallèle ou séquentiellement

14 Serveurs Web Programmes répondant aux requêtes des clients web
Souvent appelé serveur http ou httpd Écoute sur le port 80 (convention) d’une machine 2 types de ressources Statiques: ne nécessitent pas de traitement côté serveur Dynamiques: chaque demande de page nécessite des opérations spécifiques du serveur Nombreux logiciels disponibles: Apache Internet Information Service Sun Java System Web Server

15 Parts de marcher des serveurs (74 572 794 sites)
Apache: 70.98% Microsoft IIS : 20.24% Sun : 2.52% Zeus : 0.78% Source:

16 Le serveur Apache Serveur HTTP/1.1 Versions pour Windows, OS/2, Linux…
Utilise du pré-fork Configuration du serveur en plaçant des directives dans un fichier texte. httpd.conf (lu au démarrage) .htaccess (accès au répertoire) Syntaxe: Directive Valeur Les directives s’appliquent à l’ensemble du serveur Leur portée peut-être limitée avec des sections <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch>, <VirtualHost>

17 Apache – Restriction d’accés
Directives Allow,Deny from all from from unice.fr Peut spécifier un ordre pour les directives d’accés order deny, allow : les deny sont évalués avant les allow order allow, deny : les allow sont évalués avant les deny Exemple order deny,allow deny from all allow from .ncsa.uiuc.edu

18 Apache – Virtual Host Permet d’avoir plusieurs serveurs sur une même machine Virtual Host basé sur IP Utilise l’IP de la connexion pour déterminer le bon serveur Virtual Host basé sur le nom Utilise le nom de domaine fourni par le client pour déterminer le serveur Exemple NameVirtualHost * <VirtualHost *> ServerName DocumentRoot /www/domain </VirtualHost> ServerName DocumentRoot /www/otherdomain

19 Le proxy cache Pourquoi demander plusieurs fois la même chose à un serveur? Certains clients web ont un cache personnel à l’utilisateur. Le proxy travaille au niveau d’un domaine (ensemble de clients). Les clients demandent au proxy, le proxy demande au serveur Améliore la réactivité Diminue la charge d’un serveur Diminue l’utilisation de la bande passante Rôle du proxy cache: Maintenir un cache des objets récemment demandés Recharger ceux qui ont expiré quand ils sont demandés Possibilité de forcer le chargement d’une nouvelle copie si Pragma: no-cache

20 Le proxy cache Fonctionnalités avancées
Interdire l’accès au web a certaines heures/personnes Limiter l’accès à certains sites Changer le contenu (supprimer les images, ajouter des informations…) Qu’est-ce qui est mis en cache? Tout HTML Certains résultats de scripts CGI (si Expires header présent) Pas ce qui nécessite une authentification Au final, cela dépend de la configuration, du logiciel et de http

21 Routage de contenu Donner au client le contenu disponible à l’endroit le plus approprié Plusieurs métriques Proximité au sens réseau Proximité géographique Temps de réponse Type d’utilisateur (payant…)

22 HTTP (Vue dans le cours précédent)

23 Types MIME Multipurpose Internet Mail Extension
Originellement pour le mail, maintenant utilisé par http Permet d’indiquer ce que des données (des paquets de 8 bits) représentent afin de faciliter leur utilisation 2 informations sont nécessaires Content-Transfer-Encoding: type d’encodage utilisé Content-Type: champs type/soustype Types MIME communs image/jpeg text/plain video/mpeg

24 Architecture Client-Serveur pour le Web

25 Client Serveur CGI Serveur BD HTML XHTML CSS ASP PHP Applets Java JSP ActiveX Servlet Java JDBC/ ODBC

26 Technologies coté client

27 HTML HyperText Markup Language
Langage utilisé pour les documents portables Dérivé de SGML qui était plus complexe Mélange structure et présentation Utilise des balises <balise> … </balise> Actuellement disponible dans la version 4.0 Amélioration de l’accessibilité Meilleur séparation de la structure et de la présentation Support des frames Tables avancées Successeur: XHTML

28 Exemple de document HTML
<!DOCTYPE HTML PUBLIC  " -//W3C/DTD HTML 4.01 Transitional//EN"  "http://www/w3.org/TR/html4/strict.dtd" > <HTML> <HEAD> <TITLE> Document HTML </TITLE> </HEAD> <BODY> <P> Test </BODY> </HTML>

29 HTML Un document HTML commence par un entête
<!DOCTYPE HTML PUBLIC  " -//W3C/DTD HTML 4.01 Transitional//EN"  "http://www/w3.org/TR/html4/strict.dtd"  > Il indique quelle version d’HTML est utilisée (ici 4.01 transitional). Il est possible de préciser des sous-versions HTML 4.01 strict HTML 4.01 transitional HTML 4.01 framset Le reste du document se trouve encadré par les balises <HTML> </HTML>

30 HTML (HEAD) Les balises <HEAD> </HEAD> permettent de mettre des informations qui ne sont pas du contenu Titre (title) Mots Clefs Autres informations Les informations ne sont donc souvent pas affichées à l’écran Un document doit avoir un <TITLE> dans la section <HEAD> Des Meta-Data sont optionnelles <META name="Auteur" content="Fabrice Huet"> Certaines Meta-Data servent aux moteurs de recherche <META name="keywords" lang="fr" content="Argent Rapide ">

31 HTML (BODY) Le corps du document se trouve entre <BODY> </BODY> Autrefois possible de spécifier des informations de rendu visuel background (image de fond) text (couleur du texte) link (couleur d’un lien) vlink (couleur d’un lien visité) alink (couleur d’un lien sélectionné) Maintenant deprecated, utiliser des feuilles de style

32 HTML (BODY) Headings Décrit brièvement le contenu ou le sujet d’une section Dans un browser, change la taille de la police 6 niveaux, de H1 (plus important) à H6 (moins important) <H1> Elephant </H1> <H6> Souris </H6> Paragraphes Permet d’indiquer un paragraphe <P> sans balise fermente Retour à la ligne <br>

33 HTML (BODY) Listes Listes libres Listes ordonnées
Doivent contenir au moins un élement 3 possibilités: libres, ordonnées, descriptives On peut mélanger/imbriquer différentes listes Listes libres <UL> <LI> Première information <LI> Deuxième information </UL> Listes ordonnées <OL> </OL>

34 HTML (BODY) Listes descriptives <DL>
<DT> Première <DD> information <DT> Deuxième <DD> information </DL>

35 HTML (BODY) Tables: Permet de ranger des informations en lignes et colonnes Peut avoir une CAPTION (son nom) Peut avoir un SUMMARY Possibilité de grouper des lignes ou des colonnes Le nombre de lignes et colonnes est déduit du code HTML Lignes Élément <TR> sans fermeture Cellule Élément <TH> pour l’entête d’une cellule Élément <TD> pour le contenu

36 HTML (BODY) Liens et ancres: Création de lien
Permet de relier une ressources à une autre Chaque lien a 2 ancres et une direction Il part de l’ancre source et va à l’ancre destination Création de lien Balise <A> … </A> Attribut href pour indiquer une source Attribut name pour indiquer une destination Attribut title pour donner des informations (tooltip, son…) <A href="http://www-sop.inria.fr/"> INRIA Sophia Antipolis</A> <A name="ancre"> Voici une ancre accessible avec #</A> <A href="….#ancre"> On va a l’ancre</A>

37 HTML (BODY) On peut mettre href et name ensembles
Les ancres doivent être uniques dans un document! Objets, Images, Applets: Avant, utilisation de <IMG> et <APPLET> Limités à l’existant (comment gérer les nouveaux média) Applet était seulement pour les applets Java Problème de l’accessibilité Tout est remplacé par <OBJECT> mais <IMG> est toujours valide

38 HTML (BODY) Inclusion d’image par <IMG>
On indique la localisation de l’image Une description courte alt Une description longue longdesc (optionnel) <IMG src="toto.png" alt="la photo de toto"> Inclusion d’image par <OBJECT> <OBJECT data="toto.png" type="img/png"> la photo de toto </OBJECT> Pour les applets, plus tard…

39 HTML (FRAME) Frames Offre plusieurs vues de documents
Permet de maintenir des informations fixes et d’autres temporaires On remplace <BODY> par <FRAMESET> On spécifie le nombre de lignes (rows) et de colonnes (column) <FRAMESET rows="30%, 70%" cols="50%, 50%"> ….. </FRAMESET> Les frames peuvent être imbriquées Elles peuvent être nommées pour devenir la cible de liens Un contenu alternatif peut être donné avec <NOFRAMES>

40 HTML (FRAME) Problèmes:
Les frames définissent un rendu visuel, pas une structure Les frames n’ont pas d’URI La vue d’une page avec frames est déterminé par une séquence de navigation et non plus une unique action

41 HTML (FORMS) Les forms permettent d’ajouter de l’interactivité
L’interaction se fait à travers des objets control: buttons checkboxes radio buttons menus text input file select hidden controls objects controls Utilisation d’une balise <FORM> … </FORM> 2 méthodes, POST et GET

42 HTML (FORMS) <FORM action="http://somesite.com/prog/adduser" method="post"> <P> First name: <INPUT type="text" name="firstname"><BR> Last name: <INPUT type="text" name="lastname"><BR> <INPUT type="text" name=" "><BR> <INPUT type="radio" name="sex" value="Male"> Male<BR> <INPUT type="radio" name="sex" value="Female"> Female<BR> <INPUT type="submit" value="Send"> <INPUT type="reset"> </P> </FORM>

43 HTML (FORMS) 2 méthodes, POST et GET
La différence concerne la façon dont les données sont encodées GET est utilisé dans le cas de demandes pures (pas de modifications des données sur le serveur). POST est utilisé dans le cas de stockage/maj de données Côté client: avec GET les données sont encodées sous forme d’une URL. Avec POST elles sont encodées dans le corps de la méthode Côté serveur: un traitement différent est nécessaire suivant POST/GET

44 CSS Cascading Style Sheets (http://www.w3.org/TR/CSS21/)
Famille des styles Décrit comment un document est présenté à l’écran Permet d’ajouter un style (font, couleur…) à une page web CSS1 et CSS2 dispo, CSS3 en préparation Une feuille de style se place dans la balise <HEAD> <HEAD> <style type= "text/css"> …. </style> </HEAD> <HEAD> <link rel="stylesheet" type="text/css" href="{fichier.css}"> </HEAD>

45 CSS Une feuille de style est constituée de règles Chacune a 3 parties
Le selector qui indique quelle partie du texte est affecté par la règle La property qui spécifie l’aspect du rendu qui est modifié La valeur qui indique la valeur de la property Les règles sont appliquées de la plus spécifique à la moins spécifique

46 CSS Exemple: appliquer un style a l’élément body (i.e. tout le document) <HEAD> <style type= "text/css"> body { color: purple; background-color: #d8da3d } </style> </HEAD>

47 Javascript Langage de script pour pages HTML
Crée par Netscape corp. en 1995 RIEN A VOIR AVEC JAVA Orienté Objet Langage interprété au chargement de la page par le client Peut être placé n’importe où dans la page <script type="text/javascript"> xxxxxxx </script> <script src="xxx.js"></script> ", "width": "800" }

48 Javascript – Types, variables, fonctions
5 types de base Chaînes de caractères Nombres Booléens Objets Fonctions Déclaration de variable var maVariable = valeur maVariable = valeur

49 Javascript – Types, variables, fonctions
Déclaration de fonction function maFonction(argument1,argument2,etc) { xxxxxxx } Appel de fonction maFonction(1,2…) Accés à un champs Notation pointée: toto.titi

50 Javascript – Hiérarchie d’objets

51 Javascript – Objets par défaut
navigator Contient le nom et la version du navigateur, les plugins installés… window Propriétés qui s’appliquent à la fenêtre tout entière document Propriétés sur le contenu du document (titre, couleur…) location URL actuelle history URLs visitées

52 Javascript – Exemples Affichage de la valeur d’une variable
<html> <head> </head> <body> <script type="text/javascript"> var name = "Hege" document.write(name) document.write("<h1>"+name+"</h1>") </script> </body> </html> Affichage de la valeur d’une variable <html> <head> </head> <body> <script type="text/javascript"> var browserName=navigator.appName; if (browserName=="Netscape") { alert("Hi Netscape User!"); } </script> </body> </html> Détection du nom du navigateur Affichage de la valeur d’une variable. Détection du nom du navigateur.", "width": "800" }

53 Javascript – Aujourd'hui
ExtJs Jquerry Ajax

54 Applets Java Crée par Sun Microsystems
Un plugin permet de faire tourner une machine virtuelle (JVM) dans un navigateur Un client download le code java compile (.class, .jar) et l’exécute localement L’applet s’exécute dans une "Sand Box", elle a des capacités très limitées, elle ne peut pas Lire/Ecrire/Effacer de fichiers localement Créer des connexions réseau vers d’autres machines que celle dont elle est originaire Crée un ClassLoader ….. On peut s’affranchir de ces limitations en signant les applets

55 Applets Java – Cycle de vie
Une applet passe par différentes phase Chargement par le browser Méthode init() Exécution Méthode start() Fin d’exécution temporaire Méthode stop() Fin d’exécution définitive Méthode destroy() Il est possible de surcharger ces méthodes pour changer les comportements par défaut

56 Technologies côté serveur

57 Les Cookies Chaîne de caractère générée par le serveur et stockée par le navigateur Utilisés pour maintenir des informations de navigations Voyagent dans les headers http Structure: Nom Valeur Date d’expiration Chemin de validité Domaine de validité Attribut de sécurité (si secure, alors SSL)

58 CGI Common Gateway Interface
Permet l’exécution de programmes externes par un serveur http Le CGI permet de faire communiquer le serveur et des programmes pour générer des pages web Un programme CGI peut être écrit dans un langage qui Peut lire des flux en entrée Sait traiter des chaînes de caractères Écrire des flux en sortie Peut être exécuté sur un serveur Les plus utilisés sont Perl, C, C++, Java…

59 PHP PHP: Hypertext Processor Langage de script avec syntaxe perl/C
Crée en 1994, actuellement en version 4 PHP3: totalement interpreté PHP4: utilise un moteur de script (ZEND) pour améliorer les performances PHP vient avec une énorme librairie de fonctions

60 PHP PHP vient avec une énorme librairie de fonctions
10.19 Fonction d'exécution de programmes 10.20 Forms Data Format 10.21 Fonctions filePro 10.22 Système de fichiers 10.23 FTP 10.24 Fonctions de fonctions 10.25 Fonctions GNU Gettext 10.26 GMP 10.27 Fonctions HTTP 10.28 Fonctions Hyperwave 10.29 Fonctions InterBase 10.30 Fonctions ICAP 10.31 Fonctions Informix 10.32 Images 10.33 Fonctions IMAP 10.34 Options PHP & informations 10.35 Fonctions Ingres II 10.36 Fonctions LDAP 10.37 Fonction mail 10.1 Apache 10.2 Tableaux 10.3 Fonctions Aspell 10.4 Fonctions mathématiques sur des nombres de taille arbitraire 10.5 Fonctions de calendrier 10.6 Fonctions CCVS API 10.7 Fonctions Objets 10.8 Support COM pour Windows 10.9 Fonctions ClibPDF 10.10 CURL 10.11 Fonctions de paiement Cybercash 10.12 Fonctions de dates et heures 10.13 Fonctions dba 10.14 Fonctions dBase 10.15 Fonctions dbm 10.16 Accès aux dossiers 10.17 Fonctions DOM XML 10.18 Gestion des erreurs 10.38 Fonctions mathématiques 10.39 Fonctions MCAL 10.40 Cryptage 10.41 Hash 10.42 Fonctions diverses 10.43 fonctions mSQL 10.44 Fonctions Microsoft SQL Server 10.45 Fonctions MySQL 10.46 Réseau 10.47 Fonctions NIS 10.48 Oracle 8 functions 10.49 Fonctions Oracle 10.50 Entrées/sorties 10.51 Ovrimos SQL 10.52 Expressions régulières compatibles Perl 10.53 Fonctions PDF 10.54 Verisign Payflow Pro functions 10.55 Fonctions PostgreSQL 10.56 Fonctions POSIX 10.57 Pspell 10.58 GNU Readline 10.59 Fonction GNU Recode 10.60 Expressions régulières 10.61 Satellite CORBA client extension 10.62 Sémaphores et gestion de la mémoire partagée 10.63 Gestion des sessions 10.64 Mémoire partagée 10.65 SNMP functions 10.66 Socket 10.67 Fonctions de chaîne de caractères 10.68 Fonctions Shockwave Flash 10.69 Sybase 10.70 ODBC 10.71 Fonctions URL 10.72 Fonctions sur les variables 10.73 WDDX functions 10.74 Analyseur syntaxique XML 10.75 XSLT 10.76 YAZ 10.77 Zlib (Compression)

61 PHP Le code PHP se trouve dans le fichier HTML côté serveur
Le serveur interprète le code PHP et envoie la page modifiée au client Le serveur détecte les fichiers PHP grâce a leur extension Intégration dans un fichier: <? code php ?> <?php code php ?> <?PHP code php ?> <SCRIPT LANGUAGE="php"> code php </SCRIPT> Les instructions sont séparées par ‘;’ Les instructions sont séparées par ‘;’", "width": "800" }

62 PHP Exécution par le serveur
<html>  <head>   <title>PHP Test</title>  </head>  <body>   <?php echo '<p>Hello World</p>'; ?> </body> </html> Exécution par le serveur <html> <head> <title>PHP Test</title> </head> <body> <p>Hello World</p> </body> </html>

63 On peut interfacer facilement PHP et les forms HTML
Client <form action="action.php" method="post"> <p> Your name: <input type="text" name="name" /> </p> <p> Your age: <input type="text" name="age" /> </p> <p> <input type="submit" /> </p> </form> Hi <?php echo $_POST['name']; ?>. You are <?php echo $_POST['age']; ?> years old. Serveur Hi Joe. You are 22 years old. Client

64 ASP/ASP.net Active Server Pages crée par Microsoft
Pages HTML contenant du code de script exécuté par le serveur Scripts supportés par défaut: VBScript, JScript, Perl, et REXX ASP.net ajoute tous les langages .net (VB.net, C#, Scheme, Smalltalk…)

65 Servlets et JSP Réponse de Sun a CGI Servlets vs CGI:
Efficacité: la machine virtuelle tourne en permanence, les requêtes sont traitées par des threads, non des process Ergonomie: Java Portabilité: Java Lourdeur: Java Java Server Pages: ASP version Sun, langage de script Java Pages identifiées par l’extension .jsp

66 Servlets et JSP Pour développer: Java Servlet Development Kit (JSDK)
Nécessite l’ajout d’un module au serveur: Tomcat pour Apache Allaire JRun pour IIS Les servlets sont placées dans un répertoire du serveur et sont accédées à travers une URL.

67 Servlets et JSP - Fonctionnement
JSP a un fonctionnement en 4 étapes Requête reçue par le serveur La page demandée est traduite en servlets Les servlets sont compilées Puis exécutés puis le résultat transmis au client

68 JSP - Exemples <HTML> <BODY> Salut! La date est <%= new java.util.Date() %> </BODY> </HTML> <HTML> <BODY> < % out.println(« On cherche la date »); java.util.Date date = new java.util.Date(); %> Salut! La date est <%= date %> </BODY> </HTML>

69 Servlets (A étudier) import java.io.*; import javax.servlet.*;
Se programme comme un classe Java classique Implémente javax.servlet.http ou sous-classe javax.servlet.http.HttpServlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); }

70 Moteurs de recherche et Web Services

71 Moteurs de recherches Permettent de trouver de l’information sur le web Indexent régulièrement des sites pour construirent une base de données (possibilité de l’empêcher avec le fichier robots.txt) Une recherche se fait dans la base de données  important d’avoir une BD à jour Actuellement 2ème génération 1ere génération: utilisation des mots clefs et des tags META 2eme génération: analyse de la structure des pages (liens entrant, sortant) et construction d’un indice de réputation 3eme génération: utilisation des habitudes de recherche et meilleure extraction d’informations contextuelles

72 Google et PageRank Google est un moteur de 2eme génération
Utilise l’algorithme PageRank pour déterminer l’adéquation d’une page à la demande PageRank est un indice de l’importance d’une page web Chaque lien sortant est un « vote » pour une page Plus une page a de votes, plus elle est importante Variation de l’algorithme Élimination des liens venant de « link farms » Diminution de l’importance d’un vote suivant la cible

73 Web services - Principes
Accés au web traditionnellement à travers des browsers Web Services: API permettant à des programmes de communiquer avec des technologies www Technologies clefs: XML, HTTP, SOAP, WSDL, UDDI Idée: Des services sont publiés sur Internet Des applications cherchent ces services et y accèdent Questions Quels services sont offerts? Comment invoque-t-on ces services? De quelles informations ont-il besoin? Comment fournir ces informations? Comment les réponses sont-elles envoyées?

74 WSDL Web Service Description Language Fichier XML
<definitions> contient la description des services <portType> groupe de méthode exposées <operation> méthode exposée <input> paramètre <output> valeur de retour <message> description du paramètre

75 WSDL - Exemple <definitions name="MobilePhoneService" …… > <portType name="MobilePhoneService_port"> <operation name="getPrice"> <input message="PhoneModel"/> <output message="PhoneModelPrice"/> </operation> </portType> <message name="ListOfPhoneModels"> <part name="models" type="tns:Vector"> </message> <message name="PhoneModel"> <part name="model" type="xsd:String"> <message name="PhoneModelPrice"> <part name="price" type="xsd:String"> </definitions>

76 UDDI – SOAP Universal Description, Discovery and Integration
Annuaire d’informations (WSDL) sur les WS Ressemble à un DNS ou un broker Corba En général, les WS communiquent avec SOAP Simple Object Access Protocol XML sur http

77 SOAP - Exemple HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length:nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>14.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

78 Références http://www.w3.org
Cours de Master STIC Programmation et sécurité du Web, Philippe Poulard : Licence Miage


Télécharger ppt "Département de physique/Infotronique"

Présentations similaires


Annonces Google