REST
Le protocole REST (REpresentational State Transfer) constitue un style architectural et un mode de communication fréquemment utilisé dans le développement de services Web. Le recours à REST est souvent privilégié par rapport au style SOAP, plus lourd, car REST ne consomme pas autant de bande passante, ce qui rend son utilisation plus pratique sur Internet.
En effet, l'approche SOAP exige l'écriture ou l'utilisation d'un programme serveur fourni (destiné à servir des données) et d'un programme client (qui demande des données).
Alliant architecture découplée et communications légères entre producteur et consommateur, REST est un mode apprécié de création d'interfaces de programmation d'applications (API) dans le Cloud, du type de celles que fournissent Amazon, Microsoft et Google. Les services Web qui utilisent l'architecture REST sont appelés API RESTful ou API REST.
L'architecture REST implique la lecture d'une page Web désignée qui contient un fichier XML. Ce fichier décrit et contient le contenu souhaité. Les consommateurs peuvent accéder à l'interface dès qu'elle est définie dynamiquement.
L'architecture REST, généralement exécutée sur le protocole HTTP, obéit à plusieurs contraintes :
- Elle dissocie les consommateurs des producteurs.
- Elle est sans état.
- Elle peut tirer parti d'un cache.
- Elle utilise un système de couches.
- Son interface est uniforme.
REST est souvent utilisé dans les applications mobiles, les sites Web des réseaux sociaux, les outils composites (mashup) et les processus métier automatisés.
Dans le style REST, les interactions entre clients et services sont améliorées par le recours à un nombre limité d'opérations (verbes). L'affectation aux ressources (noms) de leurs propres identifiants URI (Universal Resource Identifiers) uniques autorise une grande souplesse. Etant donné que chaque verbe possède une signification spéciale (GET, POST, PUT et DELETE), REST permet d'éviter toute ambiguïté.
Avantages et Inconvénients
Toutefois, ce protocole présente des inconvénients. Dans l'environnement REST, il est impossible de générer directement un client à partir de métadonnées générées côté serveur. SOAP, en revanche, prend en charge cette opération à l'aide du langage WSDL (Web Service Description Language).
REST offre cependant les avantages suivants, notamment en comparaison de l'utilisation de SOAP :
- Les services Web RESTful sont faciles à exploiter à l'aide de la plupart des outils, y compris ceux qui sont gratuits ou peu onéreux. REST s'impose peu à peu comme standard en matière d'interaction entre systèmes. En particulier, la plupart des services Web RESTful constituent le modèle retenu par les fournisseurs de Cloud pour externaliser leurs services en Cloud.
- Les services SOAP sont beaucoup plus difficiles à faire évoluer que les services RESTful. Par conséquent, c'est l'architecture REST qui est souvent choisie pour les services proposés via Internet (par exemple, la plupart des fournisseurs de Clouds publics).
- La courbe d'apprentissage semble relativement réduite. Ainsi, les développeurs sont capables d'utiliser REST dans des applications plus rapidement qu'avec SOAP. Cela se traduit par un gain de temps, et donc d'argent.
- REST utilise un format de message plus petit que SOAP. SOAP emprunte le langage XML pour tous les messages, ce qui augmente leur taille et diminue donc leur efficacité. Autrement dit, le protocole REST associe des performances supérieures à un coût moindre à long terme. De plus, comme il ne requiert aucun traitement intensif, il s'avère bien plus rapide que le protocole SOAP traditionnel.
- REST est conçu pour une utilisation sur un Internet/Web ouvert. Il constitue un meilleur choix pour les applications Web et à plus forte raison pour les plateformes en Cloud.
A l'avenir, REST devrait continuer son expansion, lorsque que les entreprises chercheront des interfaces ouvertes et bien définies pour leurs services d'application et d'infrastructure. L'essor du Cloud computing public et Cloud privé, qui détermine en grande partie cette demande, est une garantie de croissance future.