Architecture des APIs dans les systèmes distribués
Le gap sémantique et l’architecture orientée message
Quand on en vient à l’interaction entre des machines informationnelles, revient toujours et systématiquement la question du “semantic gap”, qui est une façon condensée de dire :
“comment deux machines peuvent-elles se comprendre sans se connaître a priori ?”
Je précise “sans se connaître a priori” car si un même concepteur doit interfacer deux systèmes, alors le gap sémantique est de facto résolu par le concepteur lui même : maîtrisant les deux machines dialoguantes, il ne fait finalement que se parler à lui-même au travers d’une répartition des tâches qu’il planifie entre deux composants logiciels.
L’avènement des APIs
Une courte interview et discussion sur les APIs à laquelle j’ai participé avec Aurélien Fache (@mathemagie), de faberNovel.
APICulture et DataCulture à la lumière du facteur temps
Lors de la conférence APIdays qui s’est tenue les 3 et 4 décembre 2012 (merci à faberNovel et Webshell), j’ai profité de mon intervention pour revenir sur la distinction entre OpenAPI et OpenData, entre APIculture et DataCulture.
J’ai rappelé que les deux approches s’inscrivaient toutes deux dans une logique de publication “pour les machines” et que donc l’enjeu commun passe par la publication d’un catalogue.
Le catalogue est l’interface. more »
Éléments pour la conception des APIs Hypermédias
L’article sur Web APIs 101 se terminait en disant que les démarches de conception d’APIs pouvait alors seulement commencer. J’ai pensé qu’une précision sur les éléments de conception des APIs Hypermedia serait utile.
Web APIs 101
Les démarches autour des “WAPIs” (Web Application Programming Interfaces) sont éminament bifaces : à la fois technologiques et business.
Les organisations qui réussissent le mieux à conjuguer ces deux aspects vous diront que leur API Web, c’est leur produit, ou leur service. Sous-entendu : c’est leur coeur de métier.
Ce sont des industriels qui opèrent sur le web, des compagnies pour lesquelles le web n’est pas qu’une technologie de publication et d’affichage de documents.
A partir de l’infrastructure de transport d’internet ils opèrent des transferts qui sont des jeux d’écritures à distance et à la vitesse de la lumière.
Architectures logicielles et APIs Hypermédias
Concevoir une architecture hypermedia distribuée requiert de se placer dans une perspective très simple où c’est l’échange entre le serveur et le client qui focalise les décisions d’architecture.
En l’occurence, si l’on parle d’APIs Web, cela suppose une bonne connaissance de HTTP d’une part, et une bonne connaissance des MediaTypes qui seront utilisés d’autre part.
Cela veut dire qu’il faut se focaliser sur les messages que s’échangent le client et le serveur. Ce que le client ou le serveur font par ailleurs de ces messages échangés est secondaire.
C’est la raison pour laquelle les enjeux de conception d’architectures logicielles distribuées sont totalement découplés du choix ou de l’utilisation d’un langage de programmation. more »
Web APIs in Action
A l’occasion de la sortie du livre Restlet In Action et de la version 2.1 de Restlet Framework, Jérôme Louvel, l’un des auteurs et créateur du projet open source, viendra présenter son retour d’expérience sur la mise en oeuvre d’APIs web, le Mercredi 17 octobre 2012 à 18:00, dans les locaux de Sfeir à Neuilly-sur-Seine.
La présentation sera suivie d’un débat entre :
- Jérôme Louvel (Créateur de Restlet Framework)
- Jean Paul Figer (Président de ARMOSC)
- Alexis Moussine-Pouchkine (Google Developer Advocate)
- Christian Fauré (Travailleur indépendant)
- Aurélien Pelletier (Sfeir CTO)
- 18h : Accueil
- 18h15 – 19h00 : Présentation
- 19H00 – 19h30 : Débat
- 19h30 – … : Séquence Pub Irlandais
Nombre de places limitées : Détails et Inscription
Services Web ou API ?
Web service & APIs
On ne parle plus beaucoup de « services web » pour désigner les communications de machines à machines sur le web. On préfère mettre en avant le terme d’API : par exemple on ne dit plus « Restful web services » mais « Restful API« .
Qu’est ce qui a changé ?
A part que cela permet à O’reilly et d’autres de rééditer les mêmes livres en changeant le titre, il n’y a apparemment pas grand chose de nouveau.
D’un point de vue générique, un service web est une API (une API qui a la particularité d’utiliser le protocole HTTP) ; et une API web serait alors le mécanisme que connaissent les développeurs (librairies, modules, classes, etc.) mais appliqué au protocole HTTP.
Interface ou Protocole ?
Les choses paraissent donc simples, mais elles ne le sont pas forcément si on y prête bien attention. more »
DataCulture et ApiCulture
Pour tous ceux qui, comme moi-même, on fait l’apologie des données, de leur ouverture, de leur modèle et de leur format, le curseur a donc toujours été placé sur le primat des données, ce qui se traduit par des expressions du type « Data Driven … », « Ressources Oriented … », « Web of Data », « LinkedData, etc.
Dans cette vision et ce soin tout particulier apporté aux données – que j’appelle Dataware – c’est une forme d’autonomisation de la gestion des données qui est prônée, et qui conduit à utiliser tout un spectre sémantique de la “libération des données”. Il fallait, et il faut toujours, libérer les données des bases de données relationnelles, libérer les données des logiciels qui encapsulent la sémantique des données , etc.
La Data seront libérées si et seulement si elles sont autonomes au sens sémantique du terme, c’est à dire auto-descriptives via les liens typés qu’elles tissent entre elles. Il y a un fond « encyclopédique », au sens simondonien, dans cette démarche.
Dans ce contexte, l’apparition des API à été vécu à la fois comme la preuve de l’importance des données (mieux exposées grâce aux APIs on pouvait faire des mashups ) mais, en même temps, cette étape des API devait être transitoire jusqu’à la libération complète des données car, continuer à parler d’interface, c’était admettre qu’on était toujours contraints dans l’accès aux données (voir ma note sur les données mises à nue). Seulement voilà, non seulement les APIs sont restées mais en plus elles ont une croissance exponentielle. more »