Que sont les services Web? Architecture, types, exemple
โก Rรฉsumรฉ intelligent
Les services Web offrent un cadre standardisรฉ de communication entre les applications clientes et serveurs sur le Web. Cette ressource explique le fonctionnement des services Web, leurs types SOAP et RESTful, les composants WSDL et UDDI, leurs rรดles architecturaux et leurs principales caractรฉristiques.
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 services Web ?
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 par le biais d'appels de procรฉdure distante (RPC). Les RPC sont des appels effectuรฉs ร 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 Javamais les deux langages de programmation auraient la possibilitรฉ 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) Il s'agit d'un รฉquivalent du HTML et d'un langage intermรฉdiaire facile ร comprendre, reconnu par de nombreux langages de programmation.
Ainsi, lorsque des applications communiquent entre elles, elles utilisent en rรฉalitรฉ le langage XML. Cela fournit une plateforme 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 d'entreprise modernes utilisent diverses plateformes 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 encore en Angular JS, Node.js, etc.
Le plus souvent, ces applications hรฉtรฉrogรจnes nรฉcessitent une forme de communication entre elles. Comme elles sont dรฉveloppรฉes ร l'aide de langages diffรฉrents, il devient trรจs difficile de garantir une communication prรฉcise entre elles.
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.
Types de services 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 sont indispensables. Ces composants doivent รชtre prรฉsents quel que soit le langage de dรฉveloppement utilisรฉ pour programmer le service web. Examinons-les plus en dรฉtail.
SOAP (protocole d'accรจs aux objets simples)
SOAP est un protocole de messagerie indรฉpendant du transport. Il repose sur le transfert de donnรฉes XML sous forme de messages SOAP. Chaque message contient un document XML. Seule la structure de ce document suit un modรจle spรฉcifique, son contenu restant inchangรฉ. L'avantage principal des services Web et de SOAP rรฉside dans le fait que toutes les donnรฉes sont transmises via HTTP, 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, c'est-ร -dire 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 (services Web DescriptLangue ionique)
Un service web ne peut รชtre utilisรฉ s'il est introuvable. Le client qui invoque le service web doit savoir oรน se trouve rรฉellement ce service.
Deuxiรจmement, l'application cliente doit savoir ce que fait rรฉellement le service Web afin de pouvoir l'appeler correctement. Ceci est rรฉalisรฉ grรขce au WSDL, รฉgalement appelรฉ service Web. DescriptLe fichier WSDL est un fichier XML qui dรฉcrit ร l'application cliente le fonctionnement du service web. Grรขce ร ce document WSDL, l'application cliente peut localiser le service web et savoir comment l'utiliser.
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` de 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. Dans l'exemple de service web ci-dessus, deux messages peuvent รชtre รฉchangรฉs entre le service web et l'application cliente : ยซ TutorialRequest ยป et ยซ TutorialResponse ยป. `TutorialRequest` contient un รฉlรฉment `TutorialID` de type chaรฎne de caractรจres. De mรชme, `TutorialResponse` contient un รฉlรฉment `TutorialName`, รฉgalement de type chaรฎne de caractรจres.
- โ Ceci dรฉcrit en fait l'opรฉration que peut effectuer le service web, appelรฉ ici Tutorial. Cette opรฉration prend deux messages : un message d'entrรฉe et un message de sortie.
- Cet รฉlรฉment contient le protocole utilisรฉ. Dans notre cas, nous le dรฉfinissons pour utiliser HTTP (http://schemas.xmlsoap.org/soap/http). Nous spรฉcifions รฉgalement d'autres dรฉtails concernant le corps de l'opรฉration, comme l'espace de noms et si le message doit รชtre encodรฉ.
Nous aborderons en dรฉtail le concept de ยซ WSDL ยป dans cet article. 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.
De mรชme qu'un annuaire tรฉlรฉphonique contient le nom, l'adresse et le numรฉro de tรฉlรฉphone d'une personne, le registre UDDI contiendra les informations nรฉcessaires au service web., afin qu'une application cliente sache oรน la trouver.
Avantages des services Web
Nous comprenons dรฉjร la raison d'รชtre des services web : fournir une plateforme permettant ร diffรฉrentes applications de communiquer entre elles. Mais examinons les avantages des services web et pourquoi il est important de les utiliser.
- Exposer les fonctionnalitรฉs mรฉtier sur le rรฉseau Un service web est une unitรฉ de code managรฉ qui fournit des fonctionnalitรฉs aux applications clientes ou aux utilisateurs finaux. Ces fonctionnalitรฉs sont accessibles via le protocole HTTP, c'est-ร -dire via Internet. De nos jours, la plupart des applications sont disponibles sur Internet, ce qui renforce l'utilitรฉ des services web. Ainsi, un service web peut รชtre hรฉbergรฉ n'importe oรน sur Internet et fournir les fonctionnalitรฉs nรฉcessaires en temps rรฉel.
- Interopรฉrabilitรฉ entre les applications Les services web permettent ร diffรฉrentes applications de communiquer entre elles et de partager des donnรฉes et des services. Tous les types d'applications peuvent interagir. Ainsi, au lieu d'รฉcrire du code spรฉcifique comprรฉhensible uniquement par certaines applications, il est dรฉsormais possible d'รฉcrire du code gรฉnรฉrique, comprรฉhensible 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 (Transport de services, Messagerie XML, Service) sont toutes concernรฉes. DescriptLes couches d'intรฉgration et de dรฉcouverte de services utilisent 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 nรฉcessite une architecture pour garantir son bon fonctionnement. De mรชme, dans les services web, 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 des applications clientes qui souhaitent 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, Javaou toute autre application basรฉe sur le langage qui recherche une fonctionnalitรฉ quelconque via un service web.
- Broker Le courtier n'est autre que l'application qui permet d'accรฉder ร l'UDDI. L'UDDI, comme expliquรฉ prรฉcรฉdemment, permet ร l'application cliente de localiser le service web.
Le schรฉma ci-dessous illustre comment le fournisseur de services, le demandeur de services et le registre de services interagissent entre eux.
- 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) concernant le service Web, le demandeur est en mesure de se lier, ou d'invoquer, le service Web.
Caractรฉristiques des services Web
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 aux niveaux de reprรฉsentation et de transport. L'utilisation d'XML รฉlimine toute dรฉpendance vis-ร -vis du rรฉseau, du systรจme d'exploitation ou de la plateforme, car XML est un 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.




