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) Client
SOAP (HTTP+XML)
Réponse
Serveur (WebService)
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) .asmx
et .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 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 vous souhaitez instancier.
CodeBehind="~/App_Code/Service1.cs" Class="Service1" %>
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] public string HelloWorld() { return "Hello World"; }
[WebMethod] public int Ajouter(int Valeur1, int Valeur2) { 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é