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).