Les Webservices sont des applications Web standard ouvertes (XML, SOAP, HTTP, etc.) qui interagissent avec d’autres applications Web dans le but d’échanger des données. Les Webservices peuvent convertir vos applications existantes en applications Web.
Dans cet article, vous apprendrez ce que sont exactement les Webservices est leurs utilisations.
Les Webservices sont des applications autonomes, modulaires, distribuées et dynamiques qui peuvent être décrites, publiées, localisées ou appelées sur le réseau pour créer des produits, des processus et des chaînes d’approvisionnement.
Ces applications peuvent être locales, distribuées ou Basées sur le Web. Les Webservices sont construits sur des normes ouvertes telles que TCP/IP, HTTP, Java, HTML et XML…
Les differents composants des Webservice :
La plate-forme de services Web de base est XML + HTTP.
Tous les services Web standard fonctionnent à l’aide des composants suivants :
- SOAP (Simple Object Access Protocol)
- UDDI (Universal Description, Discovery and Integration)
- WSDL (Langage de description des services Web)
Comment les webservices marchent :
Un Webservice permet la communication entre diverses applications en utilisant des normes ouvertes telles que :
- HTML
- XML
- WSDL
- SOAP.

Le diagramme nous montre une manière assez simple, de comment un Webservice marche. Le client envoie des requêtes vers le service web. Ces demandes sont effectuées par le biais de ce que l’on appelle des appels de procédure distante. Les appels de procédure distante (RPC) sont des appels effectués vers des méthodes hébergées par le service Web concerné.
Le composant principal d’une conception de service Web est les données qui sont transférées entre le client et le serveur, c’est données sont échangés en utilisant le langage XML.
XML (Extensible markup language en anglais) est langage intermédiaire qui est simple à comprendre et est utilisé et interprété par nombreux langages de programmation. Ainsi, lorsque les applications communiquent entre elles, elles parlent en XML. Cela fournit une plate-forme commune pour les applications développées dans divers langages de programmation afin de communiquer entre elles.
Les services Web utilisent ce que l’on appelle SOAP (Simple Object Access Protocol en anglais) pour envoyer les données XML entre les applications. Les données sont envoyées via HTTP. Les données envoyées du service Web à l’application sont appelées message SOAP. Le message SOAP n’est rien d’autre qu’un document XML. Étant donné que le document est écrit en XML, l’application cliente appelant le service Web peut être écrite dans n’importe quel langage de programmation.

Donnons des exemples de services web utilisés dans notre quotidien:
- Amazon donne accès à un service web qui donne les prix des produits vendu sur amazon.
- Google donne accès à un service web qui permet d’interrogé son moteur de recherche (N.B : Ce service a été discontinu mais reste un bon exemple de services web qu’on peut avoir )
Pourquoi à t-on besoin de service web:
Les applications d’entreprise modernes utilisent diverses plates-formes de programmation pour développer des applications Web. Certaines applications peuvent être développées en Java, d’autres en.Net, tandis que d’autres en Angular JS, Node.js, etc.
Le plus souvent, ces applications hétérogènes ont besoin d’une sorte de communication entre elles. Comme ils sont construits en utilisant différents langages de développement, il devient vraiment difficile d’assurer une communication précise entre les applications. C’est là que les services Web entrent en jeu. Les services Web fournissent une plate-forme commune qui permet à plusieurs applications basées sur différents langages de programmation d’avoir la possibilité de communiquer entre elles.
Il faut savoir aussi que les services Web utilisent un protocole standard normalisé. Ils utilisent des protocoles bien définis dans la pile de protocoles de services Web. Cette standardisation de protocoles offre à l’entreprise de nombreux avantages tels qu’un large éventail de choix, une réduction des coûts due à la concurrence et une augmentation de la qualité.
Avantage à utiliser les services web:
- Faible coût :
Les services Web utilisent des protocoles comme le protocoles SOAP sur HTTP, de sorte que vous pouvez utiliser votre Internet à faible coût pour implémenter des services Web. Cette solution est beaucoup moins coûteuse que les solutions propriétaires comme EDI/B2B. Outre SOAP sur HTTP, les services Web peuvent également être implémentés sur d’autres mécanismes de transport fiables tels que FTP.
- Faiblement couplé à l’implémentation de l’application
Un consommateur d’un service Web n’est pas directement lié à ce service Web. L’interface du service Web peut changer au fil du temps sans compromettre la capacité du client à interagir avec le service. Un système étroitement couplé implique que la logique client et serveur sont étroitement liées l’une à l’autre, ce qui implique que si une interface change, l’autre doit être mise à jour. L’adoption d’une architecture faiblement couplée tend à rendre les systèmes logiciels plus faciles à gérer et permet une intégration plus simple entre différents systèmes.
- Possibilité d’être synchrone ou asynchrone
La synchronicité fait référence à la liaison du client à l’exécution du service. Dans les appels synchrones, le client bloque et attend que le service termine son opération avant de continuer. Les opérations asynchrones permettent à un client d’appeler un service, puis d’exécuter d’autres fonctions. Les clients asynchrones récupèrent leur résultat ultérieurement, tandis que les clients synchrones reçoivent leur résultat lorsque le service est terminé. La capacité asynchrone est un facteur clé pour permettre des systèmes faiblement couplés.
- supporte les appels de procédure distante
Les services Web permettent aux clients d’appeler des procédures, des fonctions et des méthodes sur des objets distants à l’aide d’un protocole XML. Les procédures distantes exposent les paramètres d’entrée et de sortie qu’un service Web doit prendre en charge.
Le développement de composants via des composants JavaBeans d’entreprise (EJB) et.NET Fait de plus en plus partie des architectures et des déploiements d’entreprise au cours des dernières années. Les deux technologies sont distribuées et accessibles via une variété de mécanismes RPC. Un service Web prend en charge RPC en fournissant ses propres services, équivalents à ceux d’un composant traditionnel, ou en traduisant les appels entrants en un appel d’un composant EJB ou.NET.
Différent type de service web:
pour qu’un service Web soit pleinement fonctionnel, certains composants doivent être en place. Ces composants doivent être présents quel que soit le langage de développement utilisé pour programmer le service Web.
Principalement, il y a 2 types de service web :
- Service Web SOAP
- Service Web Rest
Les composants des services web:
Au cours des dernières années, trois technologies principales sont devenues des normes mondiales qui constituent le cœur de la technologie des services Web d’aujourd’hui.
Ces technologies sont les suivants :
- XML-RPC
- Il s’agit du protocole le plus simple pour l’échange d’informations entre ordinateurs.
- XML-RPC est un protocole simple qui utilise des messages XML pour effectuer des RPC.
- Les requêtes sont codées en XML et envoyées via HTTP POST.
- Les réponses XML sont incorporées dans le corps de la réponse HTTP.
- XML-RPC est indépendant de la plate-forme.
- XML-RPC permet à diverses applications qui utilisent différents langage de programmation de communiquer XML-RPC est le moyen le plus simple de démarrer avec les services Web.
- SOAP
- SOAP est un protocole XML permettant d’échanger des informations entre ordinateurs.
- SOAP est un protocole de communication entre différentes applications qui peuvent utilisées des langages de programmations différents.
- SOAP est un format d’envoi de messages qui est conçu pour communiquer via Internet.
- SOAP est simple et extensible.
- WSDL
- WSDL est un langage XML permettant de décrire les services Web et de savoir comment y accéder, qui signifie Web Services Description Language.
- WSDL a été développé conjointement par Microsoft et IBM.
- WSDL est un protocole basé sur XML pour l’échange d’informations dans des environnements décentralisés et distribués.
- WSDL est le format standard pour décrire un service Web.
- La définition WSDL décrit comment accéder à un service Web et quelles opérations il effectuera.
- WSDL est un langage permettant de décrire comment s’interfacer avec des services XML.
- WSDL fait partie intégrante d’UDDI, un registre mondial des entreprises basé sur XML.
- WSDL est le langage utilisé par UDDI.
- UDDI
- UDDI (Universal Description, Discovery, and Integration) est une norme XML pour la description, la publication et la recherche de services Web.
- UDDI est une spécification pour un registre distribué de services Web.
- UDDI est un framework ouvert indépendant de la plate-forme.
- UDDI peut communiquer via SOAP, CORBA et Java RMI Protocol.
- UDDI utilise WSDL pour décrire les interfaces vers les services Web.
- UDDI est considéré avec SOAP et WSDL comme l’une des trois normes de base des services Web.
- UDDI est une initiative industrielle ouverte permettant aux entreprises de se découvrir et de définir comment elles interagissent sur Internet.
La sécurité des services web:
La sécurité est essentielle aux services Web. Toutefois, ni les spécifications XML-RPC ni SOAP ne comportent d’exigences explicites en matière de sécurité ou d’authentification.
Il existe trois problèmes de sécurité spécifiques avec les services Web, détaillé comme suit :
- Confidentialité
Si un client envoie une requête XML à un serveur, pouvons-nous nous assurer que la communication reste confidentielle?
Voici quelque éléments qui constitue une réponse :
- XML-RPC et SOAP s’exécutent principalement sur HTTP.
- HTTP prend en charge SSL (Secure Sockets Layer).
- La communication peut être cryptée via SSL. SSL est une technologie éprouvée et largement déployée. Un seul service Web peut être constitué d’une chaîne d’applications.
Par exemple, un grand service peut lier les services de trois autres applications. Dans ce cas, SSL n’est pas adéquat; les messages doivent être chiffrés à chaque nœud le long du chemin de service, et chaque nœud représente un maillon faible potentiel de la chaîne.
Actuellement, il n’existe pas de solution convenue à ce problème, mais une solution prometteuse est la norme de cryptage XML W3C. Cette norme fournit un cadre pour chiffrer et déchiffrer des documents XML entiers ou seulement des parties d’un document XML.
- Authentification
Si un client se connecte à un service Web, comment identifier l’utilisateur?
L’utilisateur est-il autorisé à utiliser le service?
Les options suivantes peuvent être envisagées, mais il n’y a pas de consensus clair sur un schéma d’authentification forte.
- HTTP inclut la prise en charge intégrée de l’authentification de base et Digest, et les services peuvent donc être protégés de la même manière que les documents HTML sont actuellement protégés.
- La signature numérique SOAP (SOAP-DSIG) exploite la cryptographie à clé publique pour signer numériquement les messages SOAP. Il permet au client ou au serveur de valider l’identité de l’autre partie.
- L’Organisation pour l’avancement des normes d’information structurée (OASIS) travaille sur le langage SAML (Security Assertion Markup Language).
- Sécurité du réseau
Il n’existe actuellement aucune réponse facile à ce problème, et il a fait l’objet de nombreux débats.
Pour l’instant, si vous avez vraiment l’intention de filtrer les messages SOAP ou XML-RPC, une possibilité est de filtrer toutes les requêtes HTTP POST qui définissent leur type de contenu sur text/xml.
Une autre alternative consiste à filtrer l’attribut d’en-tête HTTP SOAPAction. Les fournisseurs de pare-feu développent également actuellement des outils explicitement conçus pour filtrer le trafic des services Web.