Les services Web sont des applications Web basées sur des normes ouvertes (XML, SOAP, HTTP, etc.) qui interagissent avec d'autres applications Web dans le but d'échanger des données. Les services Web peuvent convertir vos applications existantes en applications Web.

Voici les fonctionnalités du service Web -

  • Il est disponible sur Internet ou sur des réseaux privés (intranet).

  • Il utilise un système de messagerie XML normalisé.

  • Il n'est lié à aucun système d'exploitation ou langage de programmation.

  • Il s'auto-décrit via une grammaire XML commune.

  • Il est détectable via un simple mécanisme de recherche.

La plate-forme de services Web de base est XML + HTTP. Tous les services Web standard fonctionnent avec les composants suivants -

  • SOAP (Simple Object Access Protocol)

  • UDDI (description, découverte et intégration universelles)

  • WSDL (langage de description de services Web)

Un service Web permet la communication entre diverses applications à l'aide de normes ouvertes telles que HTML, XML, WSDL et SOAP.

Vous pouvez créer un service Web Java sur Solaris accessible à partir de votre programme Visual Basic qui s'exécute sous Windows.

Vous pouvez également utiliser C # pour créer de nouveaux services Web sur Windows qui peuvent être appelés à partir de votre application Web basée sur JavaServer Pages (JSP) et s'exécutant sous Linux.

Un service Web prend l'aide de XML pour baliser les données, formater les données.

Un service Web utilise SOAP pour transférer un message.

Un service Web prend l'aide de WSDL pour décrire la disponibilité du service.

Voici les avantages de l'utilisation des services Web -

  • Exposing the Existing Function on the network- Les services Web vous permettent d'exposer les fonctionnalités de votre code existant sur le réseau. Une fois qu'il est exposé sur le réseau, une autre application peut utiliser les fonctionnalités de votre programme.

  • Interoperability - Les services Web permettent à diverses applications de se parler et de partager des données et des services entre elles.

  • Standardized Protocol- Les services Web utilisent le protocole standard standard de l'industrie 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.

  • Low Cost of 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.

Les services Web permettent à diverses applications de se parler et de partager des données et des services entre elles. D'autres applications peuvent également utiliser les services Web. Par exemple, une application VB ou .NET peut communiquer avec des services Web Java et vice versa. Les services Web sont utilisés pour rendre la plate-forme d'application et la technologie indépendantes.

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 les logiques 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 gérables et permet une intégration plus simple entre différents systèmes.

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 les EJB (Enterprise JavaBeans) et les composants .NET fait de plus en plus partie des architectures et des déploiements en entreprise au cours des deux 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 EJB ou d'un composant .NET.

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

  • XML-Based - Les services Web utilisent XML au niveau de la représentation des données et des couches de transport de données.

  • Loosely Coupled - Un consommateur d'un service Web n'est pas directement lié à ce service Web.

  • Coarse-Grained- Les entreprises et les interfaces qu'elles exposent doivent être grossières. La technologie des services Web offre un moyen naturel de définir des services grossiers qui accèdent à la bonne quantité de logique métier.

  • Ability to be Synchronous or Asynchronous- Les clients asynchrones récupèrent leur résultat à un moment ultérieur, 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.

  • Supports Remote Procedure Calls(RPCs) - 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 EJB ou d'un composant .NET.

  • Supports Document Exchange - Les services Web prennent en charge l'échange transparent de documents pour faciliter l'intégration commerciale.

L'utilisation de XML élimine toute liaison réseau, système d'exploitation ou plate-forme. Les applications basées sur les services Web sont donc des applications hautement interopérables à leur niveau de base.

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 les logiques 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 gérables et permet une intégration plus simple entre différents systèmes.

La synchronicité fait référence à la liaison du client à l'exécution du service. Dans les appels synchrones, le client se 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.

Il existe trois rôles principaux dans l'architecture de service Web:

  • Fournisseur de services

  • Demandeur de service

  • Registre des services

Il s'agit du fournisseur du service Web. Le fournisseur de services met en œuvre le service et le met à disposition sur Internet.

Il s'agit de n'importe quel consommateur du service Web. Le demandeur utilise un service Web existant en ouvrant une connexion réseau et en envoyant une requête XML.

Il s'agit d'un répertoire de services logiquement centralisé. Le registre fournit un endroit central où les développeurs peuvent publier de nouveaux services ou trouver des services existants. Il sert donc de chambre de compensation centralisée pour les entreprises et leurs services.

La pile de protocoles de service Web est toujours en évolution, mais comporte actuellement quatre couches principales -

  • Transport de service

  • Messagerie XML

  • Description du service

  • Découverte de service

Cette couche est responsable du transport des messages entre les applications. Actuellement, cette couche comprend le protocole de transport Hyper Text (HTTP), le protocole de transfert de courrier simple (SMTP), le protocole de transfert de fichiers (FTP) et les protocoles plus récents tels que le protocole d'échange extensible de blocs (BEEP).

Cette couche est responsable du codage des messages dans un format XML commun afin que les messages puissent être compris à chaque extrémité. Actuellement, cette couche comprend XML-RPC et SOAP.

A. Cette couche est responsable de la description de l'interface publique avec un service Web spécifique. Actuellement, la description du service est gérée via le Web Service Description Language (WSDL).

Cette couche est chargée de centraliser les services dans un registre commun et de fournir une fonctionnalité de publication / recherche facile. Actuellement, la découverte de services est gérée via la description, la découverte et l'intégration universelles (UDDI).

HTTP signifie Hyper Text Transfer Protocol.

Actuellement, HTTP est l'option la plus populaire pour le transport de services. HTTP est simple, stable et largement déployé. De plus, la plupart des pare-feu autorisent le trafic HTTP. Cela permet aux messages XML-RPC ou SOAP de se faire passer pour des messages HTTP.

BEEP signifie Blocks Extensible Exchange Protocol.

C'est une alternative prometteuse à HTTP. BEEP est un nouveau cadre IETF (Internet Engineering Task Force) pour la création de nouveaux protocoles. BEEP est directement posé sur TCP et comprend un certain nombre de fonctionnalités intégrées, notamment un protocole de prise de contact initial, l'authentification, la sécurité et la gestion des erreurs. En utilisant BEEP, on peut créer de nouveaux protocoles pour une variété d'applications, y compris la messagerie instantanée, le transfert de fichiers, la syndication de contenu et la gestion de réseau.

XML-RPC est un protocole simple qui utilise des messages XML pour effectuer des RPC.

Les demandes sont encodées en XML et envoyées via HTTP POST.

Les réponses XML sont intégrées dans le corps de la réponse HTTP.

Voici les fonctionnalités de XML-RPC -

  • XML-RPC est un protocole simple qui utilise des messages XML pour effectuer des RPC.

  • Les demandes sont encodées en XML et envoyées via HTTP POST.

  • Les réponses XML sont intégrées dans le corps de la réponse HTTP.

  • XML-RPC est indépendant de la plate-forme.

  • XML-RPC permet à diverses applications de communiquer.

  • Un client Java peut parler XML-RPC à un serveur Perl.

  • XML-RPC est le moyen le plus simple de démarrer avec les services Web.

SOAP signifie Simple Access Object Protocol.

SOAP est un protocole basé sur XML pour l'échange d'informations entre ordinateurs.

Voici les caractéristiques de SOAP -

  • SOAP est un protocole de communication.

  • SOAP est pour la communication entre les applications.

  • SOAP est un format d'envoi de messages.

  • SOAP est conçu pour communiquer via Internet.

  • SOAP est indépendant de la plateforme.

  • SOAP est indépendant du langage.

  • SOAP est simple et extensible.

  • SOAP vous permet de contourner les pare-feu.

  • SOAP sera développé en tant que norme W3C.

Oui!

WSDL signifie Web Services Description Language.

WSDL est un langage basé sur XML pour décrire les services Web et comment y accéder.

Voici les fonctionnalités de WSDL -

  • 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 pour décrire comment s'interfacer avec des services basés sur XML.

  • WSDL fait partie intégrante de UDDI, un registre mondial des entreprises basé sur XML.

  • WSDL est le langage utilisé par UDDI.

  • WSDL est prononcé comme «wiz-terne» et épelé comme «WSD-L».

UDDI signifie Universal Description, Discovery et Integration.

UDDI est une norme basée sur XML pour la description, la publication et la recherche de services Web.

Voici les caractéristiques de UDDI -

  • UDDI est une spécification pour un registre distribué de services Web.

  • UDDI est un framework ouvert et indépendant de la plateforme.

  • UDDI peut communiquer via SOAP, CORBA et Java RMI Protocol.

  • UDDI utilise WSDL pour décrire les interfaces avec les services Web.

  • UDDI est considéré avec SOAP et WSDL comme l'une des trois normes fondamentales 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.

Il existe trois problèmes de sécurité spécifiques avec les services Web:

  • Confidentiality

  • Authentication

  • Sécurité Internet

UDDI décrit les interfaces vers les services Web.

WSDL est le langage utilisé par UDDI.

Non! XML-RPC est indépendant de la plate-forme.

Oui! Comme XML-RPC et SOAP s'exécutent principalement sur HTTP, HTTP prend en charge Secure Socketes Layer (SSL). La communication peut être cryptée via SSL.

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 un support intégré pour 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.

SOAP Digital Signature (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. Vérifiez-le sur http://www.w3.org/TR/SOAP-dsig.

L'Organisation pour l'avancement des normes d'information structurée (OASIS) travaille sur le langage SAML (Security Assertion Markup Language).

La gérabilité des services Web est définie comme un ensemble de capacités permettant de découvrir l'existence, la disponibilité, l'intégrité, les performances, l'utilisation, ainsi que le contrôle et la configuration d'un service Web dans l'architecture des services Web. Alors que les services Web deviennent omniprésents et essentiels aux opérations commerciales, la tâche de les gérer et de les mettre en œuvre est impérative pour le succès des opérations commerciales.

Il existe deux solutions possibles -

  • Filtrez 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.