Des API pour nourrir l’innovation

À l’heure du Web 2.0, les interfaces de programmation (API) permettent aux entreprises d’ouvrir leur système d’information, contribuant ainsi à la création de services innovants. Stephen Perin et Mathieu Lorber, architectes techniques chez Octo Technology, ont présenté lors de l’USI (Université du système d’information) les clés d’une stratégie permettant d’exploiter au mieux ces possibilités.

Google, Twitter, Instagram ou eBay. Qu’ont en commun ces acteurs incontournables du Web ? Aujourd’hui, plus de la moitié de leur trafic (75 % pour Twitter) provient des API (Application Programming Interfaces), ces interfaces ouvertes qui permettent d’intégrer leurs services dans d’autres sites ou applications. Exposer ces API a permis à ces entreprises de développer un véritable écosystème autour de leurs services, contribuant au développement économique de leur secteur. Leurs API ont permis, par exemple, la création d’entreprises comme Klout, qui analyse l’influence sur les réseaux sociaux.

Autre cas intéressant, celui de Netflix, une société fondée en 1997 : au départ loueur de DVD en ligne, l’entreprise a su capter en l’espace de dix ans près de 30 % du trafic Web des États-Unis en période de pointe, simplement grâce à une API pour la vidéo à la demande (VOD) disponible au bon moment : celle-ci a été utilisée par les constructeurs de boîtiers TV et d’écrans pour intégrer des services de VOD.

Grâce aux API, le Web devient programmable : des centaines de services ouverts peuvent être intégrés dans de nouvelles applications ou des services « mash-up », permettant en quelque sorte aux entreprises d’externaliser l’innovation. Netflix a par exemple lancé en 2006 un concours ouvert à tous les développeurs pour améliorer son système de recommandations, récompensé par un million de dollars. Cette externalisation des recherches a permis des économies considérables : en effet, si la société avait dû rémunérer pendant un an l’équipe gagnante, le coût estimé aurait atteint trois millions de dollars.

D’autres phénomènes viennent encore renforcer cet écosystème : le mouvement des open data, qui applique la même logique d’ouverture aux données, et l’explosion du volume de données générées, le phénomène des big data. Seules, les entreprises peuvent difficilement exploiter toute la valeur de leurs données. Aussi choisissent-elles de plus en plus d’en ouvrir l’accès à travers des API.

Exposer des ressources

Le principe des API est simple : elles ont pour fonction première d’exposer de manière sécurisée des ressources, qui peuvent être de différentes sortes. Il peut s’agir :

  • de données, comme le fait par exemple Axa Banque, qui ouvre l’accès à l’historique bancaire de ses clients, permettant à des acteurs tiers de s’en servir pour proposer des applications de gestion des finances personnelles ;
  • de fonctions ou d’algorithmes, comme les outils de recherche de Google ;
  • ou encore de ressources du monde physique, comme les services en nuage d’Amazon EC2. Il peut aussi bien s’agir de ressources de calcul, de services d’impression, de suivi logistique, etc.

Pour exploiter au mieux ces possibilités et créer de la valeur, les entreprises doivent réfléchir au préalable à la stratégie qu’elles souhaitent mettre en place : quel modèle de revenus choisir ? Comment délimiter le périmètre de services à proposer ? Sur quelles technologies s’appuyer ? Par où commencer ? Quels rôles doivent être remplis ?

Pour la DSI, ouvrir l’accès à certaines ressources à travers une API peut être un moyen de se transformer en centre de profit. Néanmoins, il faut auparavant déterminer quel est le modèle de revenu le mieux adapté. En 2005, il n’existait que deux grands modèles : soit le développeur payait pour utiliser l’API, soit il était payé pour proposer de nouveaux services. En quelques années, ces modèles se sont diversifiés. Certaines entreprises adaptent par exemple la tarification de leurs API en fonction du trafic des sites qui les intègrent, d’autres partagent avec les développeurs partenaires les revenus générés par les applications intégrant l’API, dans une logique similaire à celles des coopératives.

Outre les aspects économiques, il est important de comprendre l’environnement dans lequel s’inscrit ce type de projet. Le développement d’une API nécessite en effet plusieurs éléments : des choix technologiques, mais aussi la prise en compte des besoins de l’écosystème. Plus la tâche des partenaires est facilitée, plus l’adoption de l’API sera aisée. Les consultants d’Octo Technology identifient ainsi trois grands axes à prendre en compte pour le développement d’une API.

  • L’axe communautaire : les API populaires sont celles qui alimentent un écosystème. Plus nombreux sont les applications et services l’intégrant, plus elle sera utilisée. Une documentation claire et disponible, des tutoriels, une liste de diffusion, ainsi que l’organisation d’événements pour la communauté des développeurs permettront de gagner davantage d’utilisateurs.
  • L’axe technique : le développement d’une API suppose un certain nombre de choix technologiques, notamment sur l’architecture, les formats de données ou encore l’infrastructure sur laquelle elle s’appuiera pour son exécution. Par ailleurs, il est souhaitable d’outiller les environnements de développement et d’exécution, avec un système de gestion des versions, des outils de supervision, des indicateurs de niveau de service, des journaux d’activité, etc.
  • L’axe portail « self-service » : il s’agit de mettre plusieurs services à la disposition des développeurs tiers et partenaires : facturation en ligne, reporting et statistiques, quotas éventuels, système de gestion des utilisateurs de l’API, gestion du compte, etc.

Technologies : rester pragmatique

En matière de technologies, les experts d’Octo Technology recommandent le pragmatisme. En 2011, l’architecture Rest est la plus répandue, représentant 73 % des API selon le site ProgrammableWeb, alors que l’usage de SOAP a décru (17 % des services en ligne en 2011) et que la part des autres technologies (Javascript/XML-RPC) est minoritaire. En ce qui concerne les formats de données, JSON a dépassé XML. Enfin, pour l’authentification et la gestion des habilitations, domaines sensibles s’il en est, les deux architectes conseillent de privilégier le protocole OAuth 2.0, utilisé par Twitter, Google ou encore Facebook.

Celui-ci permet notamment de s’assurer de l’accord des utilisateurs pour partager leurs données, un prérequis indispensable pour que les applications tierces puissent les exploiter. Les API offrent également une opportunité d’innovation technique pour les DSI. « C’est l’occasion parfaite pour expérimenter de nouvelles approches technologiques, comme le NoSQL ou le cloud computing », estime ainsi Stephen Perin. Enfin, les entreprises souhaitant démarrer rapidement ont tout intérêt à regarder de près leurs services mobiles : ceux-ci sont bien souvent déjà conçus sur la logique des API, et il peut s’avérer pertinent de capitaliser sur cet existant plutôt que de repartir d’une feuille blanche.

L’exploitation des API doit être d’autant plus encadrée que celles-ci sont ouvertes aux partenaires. Il existe actuellement plusieurs plates-formes facilitant la gestion des API, destinées notamment aux entreprises qui souhaitent se concentrer sur leur métier plutôt que sur l’enrobage technique. Ces solutions fournissent notamment des portails pour les partenaires, des outils de supervision et de reporting ou encore des systèmes pour documenter les API.

L’exploitation d’une API s’inscrit dans la logique du Web 2.0 : l’aspect communautaire est donc important, voire essentiel, pour assurer le succès du service. Les échanges avec la communauté de développeurs et de partenaires sont un élément crucial de la stratégie, et l’ouverture du SI va de pair avec une ouverture de la communication vers tous ces acteurs. Cela peut aller jusqu’à l’organisation d’événements permettant à la communauté de se rencontrer, l’entreprise pouvant par ailleurs profiter de l’occasion pour identifier des profils intéressants.

Ces besoins entraînent l’apparition de nouveaux rôles :

  • le gestionnaire de la communauté, ou community manager, est chargé d’animer les échanges, d’organiser les événements ou de coordonner les actions ;
  • « L’évangélisateur », un terme couramment utilisé par les entreprises anglo-saxonnes, est le point d’entrée pour les discussions techniques : il doit concilier des qualités de codeur et d’orateur ;
  • l’équipe de développement de l’API peut elle-même interagir avec l’extérieur ;
  • des rédacteurs techniques seront chargés d’écrire des tutoriels et d’autres articles techniques, pour permettre le partage de connaissances ;
  • un responsable des partenariats peut être nommé pour aider les prestataires et partenaires utilisant l’API ;
  • enfin, l’API étant un produit commercial comme un autre, il peut être judicieux de nommer un responsable du marketing chargé de promouvoir le service.

Pour les mêmes raisons, la transparence du fournisseur contribue à la popularité des API. Rendre publics les systèmes de suivi des anomalies et de gestion de tickets rassurera ainsi les partenaires et les utilisateurs potentiels du service