LES WEB SERVICES

Ce document présente une synthèse complète sur les Web Services, destinée aux étudiants et professionnels en informatique souhaitant comprendre les concepts, technologies et méthodes de développement associées. Il couvre les définitions, les architectures, les standards clés (XML, SOAP, WSDL, UDDI), ainsi que le développement de services Web en Java avec JAX-WS.

D'après le document LES WEB SERVICES

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

LES WEB SERVICES

Programming, Web Services, Systems and Applications · PDF · 110 pages · 2000

Afficher l'aperçu du document

Consulter le document original →

Ce document présente une synthèse complète sur les Web Services, destinée aux étudiants et professionnels en informatique souhaitant comprendre les concepts, technologies et méthodes de développement associées. Il couvre les définitions, les architectures, les standards clés (XML, SOAP, WSDL, UDDI), ainsi que le développement de services Web en Java avec JAX-WS.

Généralités sur les Web Services

Les Web Services sont des systèmes logiciels conçus pour permettre une interaction inter-machines interopérable via un réseau. Leur interface est décrite dans un format exploitable par machine, notamment WSDL. Les échanges se font par messages SOAP, généralement transportés via HTTP avec une sérialisation XML.

Les caractéristiques principales des Web Services sont :

  • Découverte et liaison dynamiques
  • Modularité et auto-description
  • Interopérabilité entre systèmes hétérogènes
  • Faible couplage entre composants
  • Accessibilité et localisation via le réseau
  • Possibilité de composition de services

Les clients n'ont pas besoin de connaître l'implémentation interne du service, ce qui facilite l'intégration dans des environnements variés.

Motivations et contexte d’utilisation

Les Web Services sont particulièrement utiles dans les contextes B2C et B2B pour permettre l’échange de données via XML, indépendamment des langages de programmation utilisés (Java, C++, Python, etc.). Ils permettent une intégration simple, passent facilement les pare-feux grâce à HTTP, et facilitent la localisation et l'invocation dynamique de services.

Architecture et évolution

L’évolution du Web a conduit des pages HTML statiques aux applications Web, puis aux Web Services, qui s’inscrivent dans une architecture orientée services (SOA). Cette architecture repose sur la réorganisation des applications en services fonctionnels faiblement couplés, favorisant l’interopérabilité et la modularité.

Technologies des Web Services

Les Web Services s’appuient sur plusieurs standards clés :

  • XML : langage balisé pour l’échange de données, structurant les messages et descriptions.
  • SOAP : protocole d’échange de messages XML pour l’invocation distante de services.
  • WSDL : langage de description des services Web, définissant les opérations, messages, protocoles et points d’accès.
  • UDDI : annuaire distribué pour la publication et la découverte des services Web.

Introduction à XML

XML est un langage balisé où chaque tag ouvert doit être fermé, permettant une représentation hiérarchique des données. Contrairement à HTML, XML identifie les données et non leur affichage. Il supporte les espaces de noms (namespaces) pour qualifier de manière unique les éléments et attributs, facilitant la modularité.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<livre xmlns="http://exemple.com/livres">
  <titre>Programmation Java</titre>
  <auteur>Dupont</auteur>
</livre>

Introduction à XML Schema

XML Schema (XSD) définit la structure et les types des données XML, précisant les imbrications et les contraintes. Par exemple, un schéma simplifié pour un élément <livre> définit les types des sous-éléments comme <titre> ou <auteur>.

Le protocole SOAP

SOAP (Simple Object Access Protocol) est un protocole basé sur XML pour l’échange de messages entre applications. Il est indépendant du protocole de transport (HTTP, SMTP, FTP, etc.) et permet l’appel de procédures distantes (RPC).

Un message SOAP est structuré en :

  • Enveloppe (<soapenv:Envelope>) : racine du message avec namespace obligatoire.
  • En-tête (<SOAP-ENV:Header>) : optionnel, contient des informations supplémentaires (authentification, contexte, etc.).
  • Corps (<SOAP-ENV:Body>) : obligatoire, contient les données ou les erreurs (élément <Fault>).

Exemple simplifié d’enveloppe SOAP :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header/>
  <soapenv:Body>
    <m:HelloWorld xmlns:m="http://example.org/helloworld">
      <m:Name>Alice</m:Name>
    </m:HelloWorld>
  </soapenv:Body>
</soapenv:Envelope>

Transport SOAP sur HTTP

SOAP utilise HTTP comme protocole de transport privilégié, exploitant le modèle requête/réponse. Les requêtes SOAP sont généralement envoyées en POST, avec un attribut SOAPAction précisant l’action. Les codes HTTP indiquent le succès (2xx) ou l’erreur (500 avec un corps SOAP Fault).

WSDL : Web Service Description Language

WSDL est un langage XML permettant de décrire un service Web en définissant :

  • Les opérations offertes par le service
  • Les types de données échangés (via XML Schema)
  • Les protocoles et modes de communication
  • L’adresse réseau du service

Un document WSDL est composé des éléments suivants :

  • <types> : définitions des types de données (XSD)
  • <message> : description des messages échangés
  • <portType> : ensemble d’opérations (interface abstraite)
  • <binding> : liaison entre portType et protocole concret
  • <port> : point d’accès réseau (endpoint)
  • <service> : collection de ports

Exemple d’élément <types> avec XML Schema :

<types>
  <xsd:schema targetNamespace="urn:xml-soap-address-demo"
              xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <xsd:complexType name="phone">
      <xsd:element name="areaCode" type="xsd:int"/>
      <xsd:element name="exchange" type="xsd:string"/>
      <xsd:element name="number" type="xsd:string"/>
    </xsd:complexType>
  </xsd:schema>
</types>

UDDI : Universal Description, Discovery and Integration

UDDI est un standard pour la création d’un annuaire distribué de services Web. Il permet la publication et la découverte des services via un modèle de données structuré en :

  • BusinessEntity (pages blanches) : description des organisations
  • BusinessService (pages jaunes) : description non technique des services
  • BindingTemplate : coordonnées d’accès aux services
  • tModel : descriptions techniques des services (souvent WSDL)

Exemple de tModel :

<tModel xmlns="urn:uddi-org:api" tModelKey="UUID:AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA">
  <name>microsoft-com:creditcheck</name>
  <description xml:lang="en">Check credit limits</description>
  <overviewDoc>
    <overviewURL>http://schema.com/creditcheck.wsdl</overviewURL>
  </overviewDoc>
  <categoryBag>
    <keyedReference tModelKey="UUID:CD153257-086A-4237-B336-6BDCBDCC6634"
                     keyName="Consumer credit gathering or reporting services"
                     keyValue="84.14.16.01.00"/>
    <keyedReference tModelKey="UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4"
                     keyName="types" keyValue="wsdlSpec"/>
  </categoryBag>
</tModel>

Développement de Web Services avec JAX-WS

JAX-WS (Java API for XML Web Services) est une API standard et une implémentation pour développer des Web Services en Java. Elle s’appuie sur des POJO annotés et simplifie la création, le déploiement et la consommation de services SOAP.

Approches de développement

  • Bottom-Up : développement à partir d’une classe Java (POJO) annotée avec @WebService. Le WSDL est généré automatiquement.
  • Top-Down : développement à partir d’un document WSDL existant, générant les classes Java via l’outil wsimport.

Exemple Bottom-Up : Service HelloWorld

import javax.jws.WebService;

@WebService
public class HelloWorld {
    public String sayHello(String name) {
        return "Bonjour " + name + " !";
    }
}

Ce service expose une opération sayHello accessible via SOAP. Le déploiement sur un serveur compatible JAX-WS (ex : Glassfish, ou Java SE 6 embarqué) génère automatiquement le WSDL.

Publication d’un service avec Java SE 6

import javax.xml.ws.Endpoint;

public class Server {
    public static void main(String[] args) {
        HelloWorld implementor = new HelloWorld();
        String address = "http://localhost:8080/ws/helloworld";
        Endpoint.publish(address, implementor);
        System.out.println("Service publié à " + address);
    }
}

La méthode publish démarre le service Web sur l’adresse indiquée. Le WSDL est accessible à l’URL http://localhost:8080/ws/helloworld?WSDL.

Annotations principales de JAX-WS

  • @WebService : marque une classe comme service Web
  • @WebMethod : configure une méthode exposée
  • @WebParam : configure un paramètre d’une méthode
  • @WebResult : configure le résultat d’une méthode

Développement client Java

Le client Java utilise l’outil wsimport pour générer les classes proxy à partir du WSDL. Il peut alors invoquer les opérations du service de façon synchrone ou asynchrone, sans manipuler directement le XML.

Glossaire des termes clés

  • Web Service : système logiciel permettant une interaction machine-à-machine interopérable via un réseau.
  • SOAP : protocole d’échange de messages XML pour l’appel de procédures distantes.
  • WSDL : langage XML décrivant les services Web, leurs opérations, messages et points d’accès.
  • UDDI : annuaire distribué pour la publication et la découverte des services Web.
  • XML : langage de balisage extensible pour structurer des données.
  • Namespace : espace de noms XML permettant d’éviter les collisions de noms dans les documents XML.
  • JAX-WS : API Java pour le développement de services Web SOAP.
  • POJO : Plain Old Java Object, classe Java simple utilisée pour implémenter un service Web.
  • Endpoint : point d’accès réseau d’un service Web.
  • Binding : liaison entre une interface abstraite (portType) et un protocole concret dans WSDL.

Points clés à retenir

  • Les Web Services facilitent l’interopérabilité entre applications hétérogènes via des standards ouverts.
  • SOAP, WSDL et UDDI sont les piliers technologiques des Web Services SOAP.
  • XML est le format universel d’échange et de description des données dans les Web Services.
  • JAX-WS simplifie le développement de services Web en Java, en utilisant des annotations et des POJO.
  • Deux approches principales existent pour développer un service Web : Bottom-Up (à partir du code) et Top-Down (à partir du WSDL).
  • Le protocole HTTP est privilégié pour le transport SOAP en raison de sa simplicité, sa disponibilité et sa compatibilité avec les pare-feux.
  • UDDI permet la publication et la découverte dynamique des services Web dans un annuaire distribué.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions