Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à...

Post on 03-Apr-2015

112 views 0 download

Tags:

Transcript of Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à...

Les Services Web

Avec .NET version 1.1

Un service Web en bref…

Méthodes ou objets accessible à distance via SOAP (Simple Object Access Protocol );

SOAP peut-être transporté par les protocoles HTTP, SMTP et MIME;

Les messages sont construits avec l’en-tête du protocole qui transporte suivi du corps de la requête ou de la réponse;

Le corps du message est enveloppé en XML. Chaque service possède une définition; Visual Studio .NET est bonifié pour l’utilisation de services

Web. Les mécanisme de communication sont masqués pour le développeur.

Requête SOAP sur HTTP

POST /HelloService/Hello.asmx HTTP/1.1Host: 192.168.1.2Content-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: http://tempuri.org/Say

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body> <Say xmlns="http://tempuri.org/" /> </soap:Body></soap:Envelope>

Réponse SOAP sur HTTP

HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: length

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body> <SayResponse xmlns="http://tempuri.org/"> <SayResult>Hello World</SayResult> </SayResponse> </soap:Body></soap:Envelope>

Description du service Web (WSDL)

Avec .NET, la détection des objets s’effectue automatiquement à l’aide de la description standardisé du service Web.

Vous n’avez qu’à spécifier le url de la définition et le/les objets à distance sont référencés et il est possible de les instancier comme n’importe quels objets.

Dans la pratique!

Création du service Web Hello (nécessite IIS 5.0 ou mieux);

Consommation du service Web Hello par une application Windows;

Création du service Web

Dans Fichiers/Nouveau/Projet…

Création du service Web

Renommer Service1.asmx pour Hello.asmx et changer la définition de l’objet:

Création du service Web

Implémenter les 2 méthodes de l’objet Hello et compiler:

Création du service Web

Compiler et exécuter:

Consommer le service Web

Dans Fichiers/Nouveau/Projet…

Consommer le service Web

Ajouter la référence Web avec un clique de droit sur References:

Consommer le service Web

Spécifier le url du service Web et ajouter la référence:

Consommer le service Web

Créer l’interface suivante:

Consommer le service Web

Appeler les méthodes lors de l’événement onclick des boutons:

Résultats

Say()

SayWhat()

Conclusion

.NET s’occupe du transport pour le développeur; .NET 2.0 promet le support, entre autre, du protocole

TCP/IP, éliminant la nécessité d’un serveur Web pour consommer un objet;

Beaucoup moins lourd que CORBA et plus rapide à implémenter;

Consommation multi plateforme possible avec certaines précautions sur l’utilisation des types retournés par les méthodes (retourner des objet ou des types complexes plutôt que des DataSets() propre à Microsoft par exemple).