Que sont les services Web? Architecture, types, exemple
Qu'est-ce qu'un service Web ?
Service Web est un support standardisรฉ pour propager la communication entre les applications client et serveur sur le WWW (World Wide Web). Un service Web est un module logiciel conรงu pour effectuer un certain ensemble de tรขches.
- Les services Web dans le cloud computing peuvent รชtre recherchรฉs sur le rรฉseau et peuvent รฉgalement รชtre invoquรฉs en consรฉquence.
- Lorsqu'il est invoquรฉ, le service Web serait en mesure de fournir la fonctionnalitรฉ au client qui invoque ce service Web.
Comment fonctionnent les WebServices ?

Le diagramme ci-dessus montre une vue trรจs simpliste du fonctionnement rรฉel dโun service Web. Le client invoquerait une sรฉrie d'appels de service Web via des requรชtes adressรฉes ร un serveur qui hรฉbergerait le service Web lui-mรชme.
Ces requรชtes sont effectuรฉes via ce que l'on appelle des appels de procรฉdure ร distance. Les appels de procรฉdure ร distance (RPC) sont des appels effectuรฉs vers des mรฉthodes hรฉbergรฉes par le service Web concernรฉ.
Par exemple, Amazon fournit un service Web qui fournit les prix des produits vendus en ligne via amazon.com. La couche frontale ou de prรฉsentation peut รชtre en .Net ou Java mais l'un ou l'autre langage de programmation aurait la capacitรฉ de communiquer avec le service Web.
Le composant principal de la conception d'un service Web sont les donnรฉes qui sont transfรฉrรฉes entre le client et le serveur, ร savoir XML. XML (langage de balisage extensible) est un homologue du HTML et un langage intermรฉdiaire facile ร comprendre qui est compris par de nombreux langages de programmation.
Ainsi, lorsque les applications communiquent entre elles, elles parlent en rรฉalitรฉ en XML. Cela fournit une plate-forme commune permettant aux applications dรฉveloppรฉes dans diffรฉrents langages de programmation de communiquer entre elles.
Les services Web utilisent quelque chose appelรฉ SOAP (Simple Object Access Protocol) pour envoyer les donnรฉes XML entre les applications. Les donnรฉes sont envoyรฉes via HTTP normal. Les donnรฉes envoyรฉes du service Web ร l'application sont appelรฉes un message SOAP. Le message SOAP n'est rien d'autre qu'un document XML. Le document รฉtant รฉcrit en XML, l'application cliente appelant le service Web peut รชtre รฉcrite dans n'importe quel langage de programmation.
Pourquoi avez-vous besoin d'un service Web ?
Les applications professionnelles 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 nรฉcessitent une sorte de communication entre elles. Puisquโils sont construits ร lโaide de diffรฉrents langages de dรฉveloppement, il devient trรจs difficile dโassurer une communication prรฉcise entre les applications.
C'est ici qu'interviennent les services Web. Les services Web fournissent une plate-forme commune qui permet ร plusieurs applications construites sur diffรฉrents langages de programmation avoir la capacitรฉ de communiquer entre eux.
Type de service Web
Il existe principalement deux types de services Web.
- Services Web SOAP.
- Services Web RESTful.
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.
Examinons ces composants plus en dรฉtail.
SOAP (protocole d'accรจs aux objets simples)
SOAP est connu comme un protocole de messagerie indรฉpendant du transport. SOAP est basรฉ sur le transfert de donnรฉes XML sous forme de messages SOAP. Chaque message contient quelque chose que l'on appelle un document XML. Seule la structure du document XML suit un modรจle spรฉcifique, mais pas le contenu. La meilleure partie des services Web et de SOAP est que tout est envoyรฉ via HTTP, qui est le protocole Web standard.
Voici en quoi consiste un message SOAP
- Chaque document SOAP doit avoir un รฉlรฉment racine appelรฉ รฉlรฉment. L'รฉlรฉment racine est le premier รฉlรฉment d'un document XML.
- Lโยซ enveloppe ยป est quant ร elle divisรฉe en 2 parties. Le premier est lโen-tรชte et le suivant est le corps.
- L'en-tรชte contient les donnรฉes de routage qui sont essentiellement les informations qui indiquent au document XML ร quel client il doit รชtre envoyรฉ.
- Le corps contiendra le message rรฉel.
Le schรฉma ci-dessous montre un exemple simple de communication via SOAP.
Nous discuterons de SOAP en dรฉtail dans ce tutoriel.
WSDL (langage de description des services Web)
Un service Web ne peut pas รชtre utilisรฉ s'il est introuvable. Le client qui invoque le service Web doit savoir oรน rรฉside rรฉellement le service Web.
Deuxiรจmement, l'application cliente doit savoir ce que fait rรฉellement le service Web, afin de pouvoir appeler le bon service Web. Cela se fait ร l'aide du WSDL, connu sous le nom de langage de description de services Web. Le fichier WSDL est ร nouveau un fichier XML qui indique essentiellement ร l'application client ce que fait le service Web. En utilisant le document WSDL, l'application client serait en mesure de comprendre oรน se trouve le service Web et comment il peut รชtre utilisรฉ.
Exemple de service Web
Un exemple de service Web de fichier WSDL est donnรฉ ci-dessous.
<definitions>
<message name="TutorialRequest">
<part name="TutorialID" type="xsd:string"/>
</message>
<message name="TutorialResponse">
<part name="TutorialName" type="xsd:string"/>
</message>
<portType name="Tutorial_PortType">
<operation name="Tutorial">
<input message="tns:TutorialRequest"/>
<output message="tns:TutorialResponse"/>
</operation>
</portType>
<binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Tutorial">
<soap:operation soapAction="Tutorial"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:Tutorialservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:Tutorialservice"
use="encoded"/>
</output>
</operation>
</binding>
</definitions>
Les aspects importants ร noter concernant les exemples de dรฉclarations WSDL de services Web ci-dessus sont les suivants :
- โ Le paramรจtre message dans la dรฉfinition WSDL permet de dรฉfinir les diffรฉrents รฉlรฉments de donnรฉes pour chaque opรฉration effectuรฉe par le service web. Ainsi, dans les exemples de services Web ci-dessus, nous avons 2 messages qui peuvent รชtre รฉchangรฉs entre le service Web et l'application client, l'un est le ยซ TutorialRequest ยป et l'autre est l'opรฉration ยซ TutorialResponse ยป. Le TutorialRequest contient un รฉlรฉment appelรฉ ยซ TutorialID ยป qui est du type chaรฎne. De mรชme, l'opรฉration TutorialResponse contient un รฉlรฉment appelรฉ ยซ TutorialName ยป qui est รฉgalement une chaรฎne de type.
- โ Ceci dรฉcrit en fait l'opรฉration qui peut รชtre effectuรฉe par le service web, qui dans notre cas s'appelle Tutorial. Cette opรฉration peut prendre 2 messages ; l'un est un message d'entrรฉe et l'autre est le message de sortie.
- โ Cet รฉlรฉment contient le protocole utilisรฉ. Donc dans notre cas, nous le dรฉfinissons pour utiliser http (http://schemas.xmlsoap.org/soap/http). Nous spรฉcifions รฉgalement d'autres dรฉtails pour le corps de l'opรฉration, comme l'espace de noms et si le message doit รชtre codรฉ.
Nous discuterons du ยซ WDSL ยป en dรฉtail dans ce tutoriel.
Universel Description, dรฉcouverte et intรฉgration (UDDI)
UDDI est une norme permettant de dรฉcrire, de publier et de dรฉcouvrir les services Web fournis par un fournisseur de services particulier. Il fournit une spรฉcification qui aide ร hรฉberger les informations sur les services Web.
Nous avons maintenant abordรฉ dans la rubrique prรฉcรฉdente le WSDL et la faรงon dont il contient des informations sur ce que fait rรฉellement le service Web. Mais comment une application client peut-elle localiser un fichier WSDL pour comprendre les diffรฉrentes opรฉrations proposรฉes par un service web ? UDDI est donc la rรฉponse ร cette question et fournit un rรฉfรฉrentiel sur lequel les fichiers WSDL peuvent รชtre hรฉbergรฉs. Ainsi, l'application client aura un accรจs complet ร l'UDDI, qui fait office de base de donnรฉes contenant tous les fichiers WSDL.
Tout comme un annuaire tรฉlรฉphonique contient le nom, l'adresse et le numรฉro de tรฉlรฉphone d'une personne particuliรจre, de la mรชme maniรจre le registre UDDI disposera des informations pertinentes pour le service Web.. Pour qu'une application client sache oรน elle peut รชtre trouvรฉe.
Avantages des services Web
Nous comprenons dรฉjร pourquoi les services Web sont apparus en premier lieu, ร savoir fournir une plate-forme permettant ร diffรฉrentes applications de communiquer entre elles.
Mais regardons la liste des avantages des services Web pour comprendre pourquoi il est important d'utiliser les services Web.
- Exposer les fonctionnalitรฉs mรฉtier sur le rรฉseau โ Un service Web est une unitรฉ de code gรฉrรฉ qui fournit une sorte de fonctionnalitรฉ aux applications clientes ou aux utilisateurs finaux. Cette fonctionnalitรฉ peut รชtre invoquรฉe via le protocole HTTP, ce qui signifie qu'elle peut รฉgalement รชtre invoquรฉe via Internet. De nos jours, toutes les applications se trouvent sur Internet, ce qui rend la finalitรฉ des services Web plus utile. Cela signifie que le service Web peut se trouver n'importe oรน sur Internet et fournir les fonctionnalitรฉs nรฉcessaires selon les besoins.
- Interopรฉrabilitรฉ entre les applications โ Les services Web permettent ร diverses applications de communiquer entre elles et de partager des donnรฉes et des services entre elles. Tous les types dโapplications peuvent communiquer entre elles. Ainsi, au lieu d'รฉcrire du code spรฉcifique qui ne peut รชtre compris que par des applications spรฉcifiques, vous pouvez dรฉsormais รฉcrire du code gรฉnรฉrique qui peut รชtre compris par toutes les applications.
- Un protocole standardisรฉ que tout le monde comprend โ Les services Web utilisent un protocole industriel standardisรฉ pour la communication. Les quatre couches (Service Transport, XML Messaging, Service Description et Service Discovery) utilise des protocoles bien dรฉfinis dans la pile de protocoles des services Web.
- Rรฉduction du coรปt de la communication โ Les services Web utilisent le protocole SOAP sur HTTP, vous pouvez donc utiliser votre Internet ร faible coรปt existant pour implรฉmenter des services Web.
Services Web Architecture
Chaque framework a besoin d'une sorte d'architecture pour garantir que l'ensemble du framework fonctionne comme souhaitรฉ, de la mรชme maniรจre dans les services Web. Le Services Web Architecture se compose de trois rรดles distincts comme indiquรฉ ci-dessous :
- Provider โ Le fournisseur crรฉe le service Web et le met ร disposition de l'application cliente qui souhaite l'utiliser.
- Demandeur โ Un demandeur nโest rien dโautre que lโapplication client qui doit contacter un service Web. L'application client peut รชtre un .Net, Java, ou toute autre application basรฉe sur un langage qui recherche une sorte de fonctionnalitรฉ via un service Web.
- Broker โ Le courtier n'est rien d'autre que l'application qui permet d'accรฉder ร l'UDDI. L'UDDI, comme indiquรฉ dans la rubrique prรฉcรฉdente, permet ร l'application client de localiser le service Web.
Le diagramme ci-dessous montre comment le fournisseur de services, le demandeur de service et le registre de services interagissent les uns avec les autres.
- Publier โ Un fournisseur informe le courtier (registre de services) de l'existence du service Web en utilisant l'interface de publication du courtier pour rendre le service accessible aux clients
- Trouvez โ Le demandeur consulte le courtier pour localiser un service web publiรฉ
- Lier โ Grรขce aux informations obtenues auprรจs du courtier (registre de services) sur le service Web, le demandeur est en mesure de lier ou d'invoquer le service Web.
Webservice Caractรฉristiques
Les services Web prรฉsentent les caractรฉristiques comportementales particuliรจres suivantes :
- Ils sont basรฉs sur XML โ Les services Web utilisent XML pour reprรฉsenter les donnรฉes au niveau des couches de reprรฉsentation et de transport de donnรฉes. Lโutilisation de XML รฉlimine toute dรฉpendance en matiรจre de rรฉseau, de systรจme dโexploitation ou de plate-forme puisque XML est le langage commun compris par tous.
- Couplage lรขche โ Un couplage faible signifie que le client et le service Web ne sont pas liรฉs l'un ร l'autre, ce qui signifie que mรชme si le service Web change au fil du temps, il ne devrait pas changer la faรงon dont le client appelle le service Web. L'adoption d'une architecture faiblement couplรฉe tend ร rendre les systรจmes logiciels plus gรฉrables et permet une intรฉgration plus simple entre diffรฉrents systรจmes.
- SyncFonctionnalitรฉ synchrone ou asynchrone - SyncL'hronicitรฉ fait rรฉfรฉrence ร la liaison du client ร l'exรฉcution du service. Dans les opรฉrations synchrones, le client attendra en fait que le service Web termine une opรฉration. Un exemple de cela est probablement un scรฉnario dans lequel une opรฉration de lecture et d'รฉcriture de base de donnรฉes est en cours d'exรฉcution. Si les donnรฉes sont lues ร partir d'une base de donnรฉes puis รฉcrites dans une autre, les opรฉrations doivent รชtre effectuรฉes de maniรจre sรฉquentielle. Les opรฉrations asynchrones permettent ร un client d'appeler un service puis d'exรฉcuter d'autres fonctions en parallรจle. Il s'agit de l'une des techniques les plus courantes et probablement les plus apprรฉciรฉes pour garantir que les autres services ne sont pas arrรชtรฉs lorsqu'une opรฉration particuliรจre est en cours d'exรฉcution.
- Capacitรฉ ร prendre en charge les appels de procรฉdure ร distance (RPC) โ Les services Web permettent aux clients d'invoquer des procรฉdures, des fonctions et des mรฉthodes sur des objets distants ร l'aide d'un protocole basรฉ sur XML. Les procรฉdures distantes exposent les paramรจtres d'entrรฉe et de sortie qu'un service Web doit prendre en charge.
- Prend en charge l'รฉchange de documents โ L'un des principaux avantages de XML rรฉside dans sa maniรจre gรฉnรฉrique de reprรฉsenter non seulement des donnรฉes mais รฉgalement des documents complexes. Ces documents peuvent รชtre aussi simples que reprรฉsenter une adresse actuelle, ou ils peuvent รชtre aussi complexes que reprรฉsenter un livre entier.
