Télécharger la présentation
1
Services Web
2
Rappel Un service Web est une « unité logique applicative » accessible en utilisant les protocoles standard d’Internet accessible depuis une URL Caractéristiques: Réutilisable Indépendamment de la plate-forme (UNIX, Windows, …) l’implémentation (VB, C#, Java, …) l’architecture (.NET, J2EE, …) Source : Devdays 2003
3
Infrastructure Serveurs Solutions pour l’utilisateur
Rappel Infrastructure Serveurs Outils Services Web XML Clients Solutions pour l’utilisateur Authentification SMS Appel Voix Souscriptions DB MMS Appel Données Personnalisation Facturation etc. Source : DevDays 2003
4
Quelques exemples MapPoint Cartographie, calcul d’itinéraires
Localisation de points
5
Quelques exemples INFOBEL : Service d’annuaire
Permet l’utilisation classique de l’annuaire dans les applications .NET Gestion d’un annuaire inversé Tolérance sur les orthographes des adresses Présent en Europe et aux US
6
Avantages Plus de limitations contrairement aux anciennes technos : DCOM, RMI, CORBA Plus de problème de pare-feu Plus de problème d’interopérabilité Plus de problème de formatage des données Pb de pare-feu : protocoles binaires utilisent une connexion point à point nécessitant l’ouverture de ports Pb d’interopérabilité : chaque modèle utilise son propre protocole propriétaire Pb de format : l’encodage des données diffère selon les protocoles
7
Avantages Repose sur des standards HTTP XML SOAP WSDL
8
Services web et VS.net Création Service WEB
9
Services web et VS.net Code :
10
Services web et VS.net Consommer un service web
Ajouter une référence Web
11
Services web et VS.net Fichier WSDL : classe proxy générée par VS.net
Fichier DISCO : fichier de découverte des SW, définit les liens vers le wsdl, etc.. Fichier map : contient les infos concernant les références DISCO et WSDL Disco => propriétaire Microsoft. Ce n’est pas un standard
12
TP Créer service web soustraire.asmx
Créer application Windows qui consomme le service web
13
Fonctionnement d’un service web
14
Serveur Annuaire UDDI Client
J’ai trouvé! Voici le serveur hébergeant ce service web Annuaire UDDI un service WEB Je recherche Quel est le format d’appel du service que tu proposes? Contrat SOAP Voici mon contrat (WSDL) XML Client XML J’ai compris comment invoquer ton service et je t’envoie un document XML représentant ma requête Source Devdays 2003 XML J’ai exécuté ta requête et je te retourne le résultat
15
Les standards derrière les services web
SOAP WSDL UDDI
16
SOAP Simple Object Access Protocol
Protocole d’échange de données basés sur XML
17
SOAP SOAP Envelope SOAP Header SOAP Body
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi=…> <soap:Header> <WoodgroveAuthInfo xmlns=" <Username>string</Username> <Password>string</Password> </WoodgroveAuthInfo> </soap:Header> <soap:Body> <GetAccount xmlns=" <acctID>int</acctID> </GetAccount> </soap:Body> </soap:Envelope>
18
SOAP : Requête
19
SOAP : Réponse
20
WSDL Document de description du service Web Rédigé en XML
Description des types de données via des schémas XSD Accessible pour les SW.net en ajoutant ?WSDL à l’url du SW
21
WSDL Structure of a WSDL document The types element
The message element The portType element Web Service Consumer Web Service The binding element The service element
22
WSDL Element type : définit les types utilisés dans le message
Définition des types via un XSD
23
WSDL Element message Définition du message (requête / réponse)
24
WSDL Element portType Permet de définir les points logiques d’entrée et de sortie pour le service web (protocole utilisé, méthode correspondante) Renvoie vers un élement Binding
25
WSDL Element binding Après avoir définit le port logique, on doit définir comment envoyer des données sur le port auquel est rattachée la méthode que l’on veut exécuter
26
WSDL Element service : permet de définir les ports pour chaque service
27
Proxies & WSDL Nécessité d’utiliser un proxy afin de manipuler un objet au lieu d’un document XML (WSDL) Création d’une classe correspondant au WSDL Génération de la classe automatique avec VS.net
28
Proxies & WSDL Création de proxies manuellement
Utilisation de l’utilitaire wsdl.exe livré dans le SDK du framework .net
29
Proxies & WSDL Syntaxe Example Example wsdl [options] {URL | Path}
Par défaut => C#, SOAP Example wsdl /l:VB /protocol:HttpGet /out:Bank.vb
30
TP Générer un proxy manuellement
Utiliser le proxy généré dans une appli console pour récupérer une valeur via un service web
31
UDDI Universal Description Discovery and Integration
Annuaires de services Web XML
32
UDDI Ensemble de spécifications destiné à normaliser l’accès et la publication : UDDI API pour les développeurs (Publisher / Inquiry) UDDI Data Structure Specification définit les structures XML utilisés dans les messages
33
Optimiser appels Service Web
Appels Asynchrones Cache
34
Appels asynchrones Appels synchrones simples à faire (2 lignes de code) mais ont des inconvénients : Figeage de l’interface (si client windows) Plantage si service web est inaccessible
35
Appels asynchrones Les appels asynchrones permettent de lancer l’exécution d’une méthode, de reprendre la main, puis de récupérer le résultat grâce à une fonction CallBack Fonction possible grâce à la classe proxy générée par VS.net
36
Appels asynchrones
37
Appels asynchrones
38
Mise en cache Pour les méthodes nécessitant beaucoup de calcul, mettre en place un cache pour optimiser les temps de réponse [WebMethod(CacheDuration=30)] =>cache pendant 30 sec.
39
TP Appel méthode en asynchrone
40
Sécuriser Services Web
Sécurité IIS SOAP
41
Sécuriser Services Web
IIS Serveur de pages web, de services web Possibilité d’utiliser toutes les fonctionnalités de IIS pour les services web (authentification, compression, etc…)
42
Sécurité IIS Mise en place authentification Windows
Modification Web.config Configuration du répertoire virtuel dans IIS
43
TP Mise en place authentification Windows
44
Auth. Personnalisée : SOAP
Il est possible de mettre en place une authentification personnalisée grâce à SOAP en modifiant les headers
45
Modifier les en-têtes SOAP
Créer classe héritant de SoapHeader
46
Modifier les en-têtes SOAP
Déclarer une instance de notre classe : Public AuthHeader sHeader; Marquer les méthodes utilisant l’en tête personnalisé grâce à l’attribut SoapHeader [SoapHeader(« sHeader »)]
47
Modifier les en-têtes SOAP
Si référence web déjà créé lors modif SW, mettre à jour la référence web pour regénérer le proxy Utiliser l’header SOAP lors de l’instanciation du SW
48
Modifier les en-têtes SOAP
Vérifier les valeurs du header dans le code du service web pour authentifier les utilisateurs
49
TP Mettre en place une authentification via modification des en-têtes SOAP
50
Conclusion Services web permettent de mettre en place des applications distribuées Possibilité d’externaliser des services Repose sur des standards (XML, WSDL, SOAP, UDDI) Possibilité d’utiliser les fonctionnalités de IIS Possibilité de modifier les Headers SOAP
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.