Que sont les services Web? Architecture, types, exemple

Table des matières:

Anonim

Qu'est-ce que le service Web?

Le service Web est un moyen standardisé pour propager la communication entre les applications client et serveur sur le 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 appelés en conséquence.
  • Lorsqu'il est appelé, le service Web serait en mesure de fournir la fonctionnalité au client, qui invoque ce service Web.

Dans ce didacticiel sur les services Web, vous apprendrez les bases des services Web.

  • Comment fonctionnent les services Web?
  • Pourquoi avez-vous besoin d'un service Web?
  • Type de service Web
  • Avantages des services Web
  • Architecture de service Web
  • Caractéristiques du service Web
  • Comment fonctionnent les services Web?

    Comment fonctionnent les services Web?

    Le diagramme ci-dessus montre une vue très simpliste de la façon dont un service Web fonctionnerait réellement. 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 réel.

    Ces demandes sont effectuées via ce que l'on appelle des appels de procédure distants. Les appels de procédure distante (RPC) sont des appels effectués à des méthodes hébergées par le service Web concerné.

    À titre d'exemple, Amazon fournit un service Web qui fournit les prix des produits vendus en ligne via amazon.com. Le frontal ou la couche 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 d'une conception de service Web sont les données qui sont transférées entre le client et le serveur, c'est-à-dire XML. XML (Extensible Markup Language) est un équivalent du HTML et est facile à comprendre le langage intermédiaire qui est compris par de nombreux langages de programmation.

    Ainsi, lorsque les applications se parlent, elles parlent en fait en XML. Cela fournit une plate-forme commune pour les applications développées dans divers langages de programmation pour se parler.

    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 commerciales 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 construites sur différents langages de programmation d'avoir la capacité de communiquer entre elles.

    Type de service Web

    Il existe principalement deux types de services Web.

    1. Services Web SOAP.
    2. 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 la programmation du service Web.

    Examinons ces composants plus en détail.

    SOAP (Simple Object Access Protocol)

    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 a quelque chose qui est connu sous le nom de 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.

    Protocole SOAP

    Nous aborderons SOAP en détail dans ce tutoriel.

    WSDL (langage de description de services Web)

    Un service Web ne peut pas être utilisé s'il est introuvable . Le client qui appelle 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 pour pouvoir appeler le bon service Web. Cela se fait à l'aide du WSDL, connu sous le nom de langage de description des 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 cliente serait en mesure de comprendre où se trouve le service Web et comment il peut être utilisé.

    Exemple de service Web

    Un exemple de services Web d'un fichier WSDL est donné ci-dessous.

    
    
    
    

    Les aspects importants à noter concernant les exemples de déclaration WSDL ci-dessus des services Web sont les suivants:

    1. - Le paramètre de message dans la définition WSDL est utilisé pour définir les différents éléments de données pour chaque opération effectuée par le service Web. Donc, 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 la "TutorialRequest", et l'autre est l'opération "TutorialResponse". Le TutorialRequest contient un élément appelé "TutorialID" qui est de type chaîne. De même, l'opération TutorialResponse contient un élément appelé "TutorialName" qui est également une chaîne de type.
    2. - 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.
    3. - 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 encodé.

    Nous aborderons "WDSL" en détail dans ce tutoriel.

    Description, découverte et intégration universelles (UDDI)

    UDDI est une norme pour décrire, publier et 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 discuté dans la rubrique précédente sur WSDL et comment il contient des informations sur ce que fait réellement le service Web. Mais comment une application cliente 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 à cela et fournit un référentiel sur lequel les fichiers WSDL peuvent être hébergés. Ainsi, l'application cliente aura un accès complet à l'UDDI, qui agit comme une base de données contenant tous les fichiers WSDL.

    Tout comme un annuaire téléphonique a le nom, l'adresse et le numéro de téléphone d'une personne en particulier, de la même manière le registre UDDI aura les informations pertinentes pour le service Web . Pour qu'une application cliente sache où elle se trouve.

    Avantages des services Web

    Nous comprenons déjà pourquoi les services Web ont vu le jour en premier lieu, qui consistait à fournir une plate-forme permettant à différentes applications de se parler.

    Mais regardons la liste des avantages des services Web pour savoir pourquoi il est important d'utiliser les services Web.

    1. Présentation des 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 appelée via le protocole HTTP, ce qui signifie qu'elle peut également être appelée sur Internet. De nos jours, toutes les applications sont sur Internet, ce qui rend le but des services Web plus utile. Cela signifie que le service Web peut être n'importe où sur Internet et fournir les fonctionnalités nécessaires selon les besoins.

    2. Interopérabilité entre les applications - Les services Web permettent à diverses applications de se parler et de partager des données et des services entre elles. Tous les types d'applications peuvent se parler. Ainsi, au lieu d'écrire du code spécifique qui ne peut être compris que par des applications spécifiques, vous pouvez maintenant écrire du code générique qui peut être compris par toutes les applications

    3. Un protocole standardisé que tout le monde comprend - Les services Web utilisent un protocole industriel standardisé pour la communication. Les quatre couches (couches de transport de service, de messagerie XML, de description de service et de découverte de service) utilisent des protocoles bien définis dans la pile de protocoles des services Web.

    4. Réduction des coûts de communication - Les services Web utilisent le protocole SOAP sur HTTP, vous pouvez donc utiliser votre Internet bon marché existant pour mettre en œuvre des services Web.

    Architecture des services Web

    Chaque framework a besoin d'une sorte d'architecture pour s'assurer que l'ensemble du framework fonctionne comme vous le souhaitez, de la même manière, dans les services Web. L' architecture des services Web se compose de trois rôles distincts, comme indiqué ci-dessous:

    1. Fournisseur - Le fournisseur crée le service Web et le met à la disposition de l'application cliente qui souhaite l'utiliser.
    2. Demandeur - Un demandeur n'est rien d'autre que l'application cliente qui doit contacter un service Web. L'application cliente peut être une application .Net, Java ou toute autre application basée sur un langage qui recherche une sorte de fonctionnalité via un service Web.
    3. Courtier - 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 cliente 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.

    Architecture des services Web
    1. 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
    2. Rechercher - Le demandeur consulte le courtier pour localiser un service Web publié
    3. Lier - Avec les informations obtenues du courtier (registre de services) sur le service Web, le demandeur est en mesure de lier ou d'appeler le service Web.

    Caractéristiques du service Web

    Les services Web présentent les caractéristiques comportementales spéciales suivantes:

    1. 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 sorte de dépendance de réseau, de système d'exploitation ou de plate-forme puisque XML est le langage commun compris par tous.

    2. Lâchement couplé - Un couplage lâche 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 doit 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.

    3. Fonctionnalité synchrone ou asynchrone - La synchronisation 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 ceci 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 dans une base de données et ensuite é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. C'est l'une des techniques courantes et probablement les plus préféré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.

    4. Capacité à prendre en charge les appels de procédure distante (RPC) - 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.

    5. Prise en charge de l'échange de documents - L'un des principaux avantages de XML est 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.