La presse informatique cite souvent Solomon Hykes comme le créateur français d’une startup désormais connue mondialement, même si son nom ne l’indique pas. Il a en effet réussi à imposer sa technologie de conteneurs Docker. Mais il y a d’autres Français qui sont aussi très connus dans le monde de la programmation, Jérome Louvel, le créateur de Reslet, en est un bon exemple.

Si Hykes et les conteneurs Docker sont assez médiatisés, c’est parce que ces derniers sont faciles à comprendre. Ils pourront remplacer les technologies de virtualisation plus classiques. Par contre, pour les API REST, le sujet est moins facile d’accès. Il faut se passionner pour les applications qui évoluent vers le cloud et la manière dont elles se parlent entre elles.

A quoi cela sert ?

Tout le monde connaît les applets, les petites applications des mobiles et les servlets, des applications Java. Eh bien les API REST peuvent être considérées comme leurs dernières évolutions. C’est d’ailleurs en étudiant les problèmes des servlets que Jérome Louvel, un spécialiste du développement Ajax, a fini par vouloir supprimer leurs limitations. Celles-ci tiennent au contexte applicatif des années 90. Une servlet est une application développée dans un contexte client-serveur, et vient se greffer sur des applications existantes afin de les étendre ou les refondre différemment. Une servlet n’existe pas par elle-même, mais étend des applications utilisant des protocoles tels que HTTP, SMTP ou FTP par exemple.

Un marché en ébullition

Jérôme Louvel a été ainsi à la base d’un Framework Open Source Java pour soutenir une architecture d’échange appelle REST (Representational State Transfert) à partir de 2008. Après plusieurs années de travail avec de nombreux contributeurs, Jérome Louvel a créé sa propre firme, appelée Restlet. La firme emploie désormais plus de 30 personnes et a fait l’objet de plusieurs tentatives de rachats comme toutes les firmes qui font des API.

Rappelons que CA a racheté Layer 7 en 2013, qu’Intel a racheté Mashery aussi en 2013 avant de le revendre en août dernier à Tibco. Dell s’est offert Boomy et IBM a aussi fait son marché pour nourrir son offre Softlayer. Les autres vedettes sont Apigee, Fiorano software ou encore WSO2.

À l’heure de l’internet des objets, tout le monde s’est dit qu’il faudrait tenter d’uniformiser les échanges entre systèmes. Le cloud permet de migrer les applications client serveurs vers des applications composites, qui reposent sur un ensemble de fonctions spécifiques liées par des protocoles assez contraignants. En créant une abstraction, entre la méthode avec laquelle  l’utilisateur interagit avec les données et comment il l’utilise [on parle de système d’engagement] et celle liée au stockage et à la gestion de ces mêmes données [« the System of record »], les API redonnent de la souplesse aux échanges. Les applications ont toujours eu besoin de fréquents échanges de documents XML sur des liaisons en mode HTTPs.

Des besoins anciens

Ce besoin n’est pas nouveau. Sans remonter à L’EDI [Echange de documents informatisés] et aux serveurs vidéotext, pour maitriser les échanges, au début du web on utilisait les l’EAI [Enterprise Applications Intégration] et les ESB [Enterprise Service Bus]. Avec Restlet, selon l’éditeur, les développeurs peuvent reprendre le contrôle de leurs conteneurs Web et se libérer des contraintes liées, par exemple, aux problèmes de versions des applications.

C’est important pour que les modifications, par exemple sur une première partie de l’application, soient effectuées selon le timing d’utilisation souhaité par les clients. Ce choix doit pouvoir s’effectuer, sans être obligé de modifier immédiatement tout le reste de chaque application.

En expliquant leurs méthodes d’accès aux données, les API REST permettent à chacune des applications d’être modifiée ou mise à jour au fil de l’eau, sans affecter la manière avec laquelle elles dialoguent entre elles. Dans la version 0,19, par exemple, un connecteur HTTP basé sur une servlet classique permet l’exécution de Restlet dans des conteneurs Web existants comme Tomcat.

Les différences avec les Servlets

Les avantages de Restlet par rapport aux Servlets, tiennent donc à la séparation nette entre les aspects protocolaires du transport de données et les aspects propres à l’application Web. La spécification Servlet est liée à HTTP et à un modèle d’entrées /sorties très limité. L’atout majeur des API REST tient aussi au fait que des connecteurs pour tout protocole peuvent être ajoutés au moment voulu. Ceux de type HTTP, SMTP et JDBC sont fournis avec la panoplie d’outils, ils permettent le développement d’applications côté client, ainsi que celles côté serveur, ou bien sûr, les deux en même temps.

Toujours vis-à-vis de servlets, selon l’éditeur, on peut mieux maitriser l’écriture du contenu des flux de sortie ce qui était un problème majeur. Il est difficile, pourrait-on dire, avec le servlets de fermer le robinet des données selon les besoins, sans en perdre. Les architectures de type REST donnent à contrario une cartographie directe des concepts « de repos » à des interfaces Java [ressources, représentation, connecteur, composants, etc.]. Pour les programmeurs rappelons que les applis REST sont basées actuellement sur Java SE 5.0.

Reslet n’est pas la seule firme à s’intéresser à des modèles standardisés qui pourraient faciliter les échanges entre applications. Les nouvelle API en Ajax restent une alternative intéressante (voir la comparaison avec les API Restlet).

REST évolue aussi 

C’est ainsi qu’est né Swagger qui se définit comme une interface aux API REST afin que chaque fournisseur d’API se détermine en fonction des mêmes principes. Swagger [voir le site Swagger.io] rassemble ainsi un large écosystème d’outils qui vont des librairies de codes [essentiellement C et Java] en passant par des interfaces utilisateurs prêtes à l’emploi ou encore des gestionnaires d’API. Si Restlet participe à Swagger et contribue à cette approche, Jérome Louvel a d’autres objectifs et en particulier celui de continuer à développer un environnement Open source Restlet avec l’aide de nombreux contributeurs.

Egalement sur InformatiqueNews :

Importance de la contre-cyberattaque

L’OCC veut relier les clouds via les réseaux d’opérateurs Ethernet