Vous êtes sur la page 1sur 41

Web Services

ANNITRA NOUREDDINE
EL BAZ SAID
Plan
 Définition
 SOAP
 WSDL
 Exemple
 Conclusion
Définition
 Les Web Services sont des services offerts via
le web.
 Par exemple, un client (Application développée
sous n'importe quel langage) demande le prix
d’un article en envoyant un message sur le web.
Ce message contient la référence de l’article. Le
Web Service va recevoir la référence, effectuer
le traitement du service et renvoyer le prix au
client via un autre message.
SOAP

Simple Object Access Protocol


Protocole SOAP
 SIMPLE OBJECT ACCESS PROTOCOL
 Protocole d’échange de messages (client /
serveur)
 Est assez léger, simple et facile à déployer
 Basé entièrement sur XML
 communication en univers hétérogène
 Standard W3C (Initiative IBM et Microsoft)
Protocole SOAP
Fonctionnement

Appel
SOAP (HTTP+XML)
Serveur
Client (WebService)
SOAP (HTTP+XML)
Réponse
Message SOAP

Concepts

Message SOAP = Message XML

 Déclaration XML
 Enveloppe SOAP
 Entête SOAP (HEADER)
 Corps SOAP (BODY)
Message SOAP (Appel)
Message SOAP (Réponse)
WSDL

Web Services Description Language


WSDL
 Langage de définition de Web Services
 Basé entièrement sur XML
 Standard W3C (Initiative IBM et Microsoft)
 Décrit le type d’un service web (méthodes, types des
paramètres)
 Décrit les aspects techniques d’implantation d’un
service web (quel est le protocole utilisé, quel est
l’adresse du service et le port)
 Utilise le système de typage de XML Schéma
Schéma fichier WSDL
Schéma fichier WSDL
cette balise décrit
les types utilisés
Schéma fichier WSDL

cette balise décrit la


structure d’un message
échangé
Schéma fichier WSDL

cette balise décrit un


ensemble d’opérations
(interface d’un service web)
Schéma fichier WSDL

cette balise décrit une


opération réalisée
par le service web.

Une opération reçoit


des messages et envois
des messages
Schéma fichier WSDL

cette balise décrit le


lien entre un protocole
(http) et un portType.
Schéma fichier WSDL

cette balise décrit un


service comme un
ensemble de ports.
Schéma fichier WSDL

cette balise décrit un


port au travers duquel
il est possible d’accéder
à un ensemble
d’opérations

Un port référence un Binding


__
Service Web
 Utilisation des compétences des
développeurs ASP existants
 Facile à créer, à déployer et à administrer en
tant qu'application Web
 L'extension du fichier est .asmx
 La destination est représentée par l'URL
Création d'un service Web (1)
 Ouvrez Microsoft Visual Studio® .NET 2003
 Sélectionnez le langage
 Sélectionnez le type de projet :
Service Web ASP.NET
Création d'un service Web (1)
 Ouvrez Microsoft Visual Studio® .NET 2005
 Sélectionnez visual web developer
 Sélectionnez le type de projet :
Service Web ASP.NET
 Sélectionnez le langage
Création d'un service Web (2)
 .asmx et .asmx.cs
 Web.config
 Global.asax
 WebService1.vsdisco
Création d'un service Web (2)

 .asmxet .cs
 Web.config
Création d'un service Web (3)
 Dans Service1.asmx

<%@ WebService Language="c#"


Codebehind="Service1.asmx.cs"
Class="WebService1.Service1"
%>
<%@ WebService Language="C#"
Lorsque vous ouvrez le fichier .asmx.cs dans un éditeur de code source, vous verrez le
CodeBehind="~/App_Code/Service1.cs"
code suivant. Il contient une balise WebService. Ce code contient également le
langage que vous utilisez. La balise Codebehind apparaît également. Elle vous indique
le fichier code behind de votre application. Vous pouvez également voir la classe que
Class="Service1" %>
vous souhaitez instancier.
Création d'un service Web (4)
Dans Service1.asmx.cs ou Service1.cs
 Ajoutez la propriété Namespace de l'attribut WebService
[WebService(Namespace="http://localhost/webservice1/")]
public class Service1 : System.Web.Services.WebService
 Cliquez sur l'icône Ne pas commenter les lignes sélectionnées pour
désactiver le commentaire par défaut pour le code suivant :
[WebMethod] [WebMethod]
public string HelloWorld() public int Ajouter(int Valeur1, int Valeur2)
{ {
return "Hello World"; return Valeur1 + Valeur2;
} }

[WebMethod]
public int Soustraire(int Valeur1, int Valeur2)
{
return Valeur1 - Valeur2;
}
Création d'un service Web (5)
 Compilez le service Web

Créez votre application en utilisant le menu Générer. Si


aucune erreur ne survient, la capture d'écran apparaîtra à
droite de l'écran. Après avoir compilé votre application Visual
Studio .NET, vous verrez un fichier .dll et .pdb dans le
répertoire bin.
Création d'un service Web (6)
 Lancez le service Web
Création d'un service Web (6)
 Lancez le service Web
Création d'un client de service Web
(1)
 Créez une application console de Microsoft
Visual C#™
Création d'un client de service Web
(2)
 Ajoutez une référence Web (1)

La première étape consiste à ajouter une référence à notre service Web HelloWorld
dans l'application client. Pour cela, vous pouvez cliquer avec le bouton droit sur
Création d'un client de service Web
(3)
 Ajoutez une référence Web (2)

Lorsque vous appuyez sur ENTRÉE, Visual Studio .NET télécharge le fichier WSDL et
l'affiche à gauche de l'écran. Cliquez sur le bouton Ajouter la référence pour générer
Création d'un client de service Web
(4)
 Le fichier proxy suivant est généré :
Reference.cs
Vous pouvez constater que
Visual Studio .NET utilise
Wsdl.exe en arrière plan
pour générer un fichier
Proxy. Vous verrez qu'un
fichier nommé Reference.exe
a été ajouté dans
l'Explorateur de solutions. Ce
fichier Proxy fournira un
support IntelliSense® pour
ajouter facilement du code à
votre client de service Web.
Création d'un client de service Web
(5)
 Code client
using System;
namespace ConsoleApplication1
{
class Class1
{
static void Main(string[] args)
{
localhost.Service1 wsproxy = new localhost.Service1();
Console.WriteLine(wsproxy.HelloWorld());
}
}
}

Une fois que vous avez ajouté une référence Web, vous devez déclarer une variable à
votre client de service Web. J'ai utilisé wsproxy comme exemple dans cette fonction.
Création d'un client de service Web
(5)
 Code client

private void button1_Click(object sender, EventArgs e)


{
localhost.Service1 MonTest = new localhost.Service1();
textBox3.Text = MonTest.Ajouter(int.Parse(textBox1.Text),
int.Parse(textBox2.Text)).ToString();
}

Une fois que vous avez ajouté une référence Web, vous devez déclarer une variable à
votre client de service Web. J'ai utilisé wsproxy comme exemple dans cette fonction.
Création d'un service Web client
(6)
 Lancez le client du service Web

Créez à présent votre application. Un fichier .exe sera généré dans le répertoire bin.
Une fois que vous avez exécuté votre application, vous pourrez lire Hello World. Vous
venez en fait de créer votre premier fournisseur de service Web. Vous avez également
créé un client qui utilise ce service Web.
Références
 Programmation du Web avec les services Web
XML
Aide Visual Studio .NET
ms-help://MS.VSCC/MS.MSDNVS.1036/vsent7/html/vxconProgrammableWebServices.htm
 Sérialisation XML et SOAP
Aide Visual Studio .NET
ms-help://MS.VSCC/MS.MSDNVS.1036/cpguide/html/cpconserialization.htm
 http://lfe.developpez.com/WebService/BCB/
 http://www.microsoft.com/france/msdn/vcsharp/googleIt.mspx

 Communauté des services Web


Rendez-vous à l'adresse
http://msdn.microsoft.com/newsgroups/managed/default.asp (en anglais) ou
http://communities.microsoft.com/newsgroups/default.asp?icp=France_msdn&
slcid=fr-fr
Sur le site anglais, dans le cadre de gauche, développez successivement
.NET Development > Framework > dotnet.framework.aspnet.webservices
Conclusion
Conclusion
 Avantages :
 Des standards simples (SOAP, WSDL…)
 Multi Protocole / Multi OS / Multi Langage

 Inconvénients :
 Jeunesse
 Sécurité