188 votes

Qu'est-ce qu'un "service web" en langage clair ?

J'ai lu des articles sur les "services web" ici sur SO, sur Wikipedia, sur Google, etc. Quelle est la définition/description en langage clair ?

Si je crée un site web simple en utilisant PHP qui, disons, imprime un nombre entier aléatoire sur la page... est-ce un "service web" ? Si non, pourquoi ?

291voto

Vincent Ramdhanie Points 46265

Une définition simple : Un service web est une fonction à laquelle d'autres programmes peuvent accéder via le web (Http). Pour clarifier un peu, lorsque vous créez un site web en PHP qui produit du HTML, sa cible est le navigateur et par extension l'être humain qui lit la page dans le navigateur. Un service web n'est pas destiné aux humains mais plutôt à d'autres programmes.

Ainsi, votre site PHP qui génère un nombre entier aléatoire pourrait être un service web s'il produit le nombre entier dans un format qui peut être utilisé par un autre programme. Il peut s'agir d'un format XML ou d'un autre format, du moment que les autres programmes peuvent comprendre la sortie.

La définition complète est évidemment plus complexe, mais vous avez demandé un langage simple.

62voto

BradC Points 18833

Explication simplifiée et non technique : Un service web permet à un programme de parler à une page web, au lieu d'utiliser votre navigateur pour ouvrir une page web.

Exemple : Je peux aller sur maps.google.com, et taper l'adresse de mon domicile, et voir une carte de mon lieu de résidence dans mon navigateur.

Mais que se passerait-il si vous écriviez un programme informatique dans lequel vous voudriez prendre une adresse et afficher une jolie carte, comme Google maps ?

Vous pouvez écrire un tout nouveau programme de cartographie à partir de zéro, ou appeler un service Web fourni par Google Maps, lui envoyer l'adresse et il vous renverra une carte graphique de l'emplacement, que vous pourrez afficher dans votre programme.

Il y a beaucoup plus que cela, comme l'expliquent d'autres articles, mais l'essentiel est que cela permet à votre application de récupérer des informations d'une ressource ou de soumettre des informations à une ressource. Quelques autres exemples :

  1. Vous pouvez utiliser un service web pour récupérer des informations sur des livres sur Amazon.com.
  2. Vous pouvez utiliser un service web similaire pour soumettre une commande à Amazon.com.
  3. Vous pourriez CRÉER un service web pour permettre aux applications extérieures de trouver des informations sur les produits de votre entreprise.
  4. vous pourriez créer un service web pour permettre à des applications extérieures de soumettre des commandes à votre entreprise.

34voto

David Arno Points 15499

Oui, c'est un simple service web.

Les services web ne sont en fait rien d'autre qu'un mécanisme de demande/réponse qui permet à un client d'accéder à des données ou de les modifier à distance. Il existe des normes officielles pour les services web (SOAP, SOA, etc.), mais votre simple page est aussi un service.

Le principal inconvénient de l'imprimer sur une page est que votre service renverrait du HTML. Les formats de données à privilégier sont JSON et XML, car la plupart des frameworks clients (et des frameworks serveurs) sont conçus pour utiliser JSON et XML.

Donc si vous avez modifié votre service pour revenir :

<RANDOM>some random number</RANDOM>

plutôt que :

<HEAD>...</HEAD>  
<BODY>some random number</BODY>

alors il serait plus utile à la plupart des clients

21voto

Mitchel Sellers Points 38352

En termes très simplifiés, un service web est quelque chose qui fournit des données en tant que service via le protocole http. Il est vrai que ce n'est pas toujours le cas....mais c'est proche.

Les services Web standard utilisent le protocole SOAP qui définit la communication et la structure des messages, et XML est le format de données.

Les services Web sont conçus pour permettre aux applications construites à l'aide de technologies différentes de communiquer entre elles sans problème.

Des exemples de services web sont des choses comme Weather.com qui fournit des informations météorologiques que vous pouvez utiliser sur votre site, ou UPS qui fournit une méthode pour demander des devis d'expédition ou le suivi des colis.

Modifier

Modification de la formulation en référence à SOAP, car ce n'est pas toujours SOAP comme je l'ai mentionné, mais je voulais que ce soit plus clair. L'essentiel est de fournir des données en tant que service, et non en tant qu'élément de l'interface utilisateur.

17voto

64BitBob Points 1755

Un service web diffère d'un site web en ce sens qu'il fournit des informations consommables par des logiciels plutôt que par des humains. Par conséquent, nous parlons généralement de services exposés. JSON XML ou SOAP.

Les services web sont un élément clé des "mashups". On parle de mashups lorsque des informations provenant de plusieurs sites web sont automatiquement agrégées en un nouveau service utile. Par exemple, il existe des sites qui regroupent Google Maps avec des informations sur les rapports de police pour vous donner une représentation graphique de la criminalité dans votre région. Un autre type de mashup consisterait à prendre des données boursières réelles fournies par un autre site et à les combiner avec une fausse application de trading pour créer un "jeu" boursier.

Les services web sont également utilisés pour fournir des nouvelles (voir RSS), les derniers éléments ajoutés à un site, des informations sur les nouveaux produits, des podcasts, et d'autres grandes fonctionnalités qui font tourner le web moderne.

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X