Vous êtes sur la page 1sur 6

Open API

ou cosystme
ouvert
ARCHITECTURE / OPEN API OU COSYSTME OUVERT

Description
Le principe du pattern Open API consiste dvelopper et exposer
des services utilisables par des tiers, sans avoir dide prconue sur
lusage qui en sera fait.

Le dveloppement porte donc essentiellement sur la logique


applicative et le systme de persistance. Linterface et la logique
mtier seront dveloppes par des tiers, peut tre plus experts dans
les technologies dinterface et les problmatiques ergonomiques, ou
dans les mtiers spcifiques[1].

Le moteur de lapplication expose donc une API[2], cest dire un en-


semble de services. Lapplication finale reposera sur la composition du
service avec dventuels autres services fournis par des tiers. Cest par
exemple le cas avec HousingMaps.com : le site permet de visualiser les
petites annonces issues du service CraigsList.org au travers du service
Google Maps.

Le pattern rejoint ainsi les principes majeurs des architectures SOA[3] :


le dcouplage, et la possibilit de composition. Pendant un temps, on a
oppos les architectures des gants du Web, gnralement bases sur
le style REST[4], aux architectures SOA dentreprises, souvent bases sur
le protocole SOAP[5]. De nombreux bloggeurs ont polmiqu sur loppo-
sition entre ces deux architectures. Nous pensons de notre ct que les
API REST exposes par les gants du Web sont une forme parmi dautres
darchitecture SOA.

Les gants du Web exposent leurs API publiquement, crant des cosys-
tmes ouverts. Cette stratgie leur permet de :

Crer des revenus directs, en les facturant. Exemple : Google Maps


devient payant au del de 25.000 transactions par jour.

tendre une communaut, et donc recruter des utilisateurs.


Exemple : grce aux applications drives de sa plateforme, Twitter
a atteint 140 millions dutilisateurs actifs (et 500 millions dinscrits).

[1] http://www.slideshare.net/kmakice/maturation-of-the-twitter-ecosystem
[2] Application Programming Interface.
[3] Service Oriented Architecture.
[4] Representational State Transfer.
[5] Simple Object Access Protocol.
> retour table des matires
197
LES GANTS DU WEB

Faire merger de nouveaux usages pour sa plateforme et donc


faire voluer son modle de revenu. Par exemple : en 2009, Apple
a constat que les dveloppeurs dapplications souhaitaient vendre
non seulement des applications, mais aussi des contenus pour leurs
applications. Le modle de lAppStore a donc volu pour intgrer
cette possibilit.

Parfois, externaliser leur R&D, puis racheter les startups les plus
talentueuses. Cest ce qua fait Salesforce avec Financialforce.com.

Marc Andreessen, crateur de Netscape, distingue trois types de plate-


formes ouvertes :

Niveau 1 Access API : ces plateformes permettent lappel


un traitement mtier sans fourniture dinterface homme/machine.
Exemples : recherche de livres chez Amazon, geocoding chez
Mappy.

Niveau 2 Plug-In API : Ces plateformes permettent dintgrer


une application linterface du fournisseur. Exemple : les applications
Facebook, les Widgets Netvibes.

Niveau 3 Runtime Environment : Ces plateformes fournissent


non seulement une API, une interface, mais aussi un environnement
dexcution. Exemple : les applications AppExchange dans
lcosystme Salesfoce ou liPhone.

Notons aussi que les API des gants du Web sont accessibles en self-ser-
vice, cest dire que la souscription peut se faire depuis le site Web sans
aucune relation commerciale avec le fournisseur.

Au niveau 3, il est ncessaire de concevoir un systme multi-tenant (mul-


ti-locataire, en franais). Son principe est de grer de manire isole les
applications de plusieurs entreprises avec un quilibre entre mutualisation
et isolation.

Le pattern API First est un driv du Pattern Open API : il suggre


de commencer par btir une API, puis de la consommer pour construire
les applications destines aux utilisateurs finaux. Lide est de se mettre
au mme niveau que les utilisateurs de lcosystme, donc de sappli-
quer soi mme les principes darchitecture quon propose ses clients,
selon le pattern Eat Your Own Dogs Food (EYODF). Un certain nombre

> retour table des matires


198
ARCHITECTURE / OPEN API OU COSYSTME OUVERT

darchitectes chez les gants du Web considrent que cest la meilleure


manire de btir une nouvelle plateforme.

Dans la pratique, le pattern API First reprsente un idal pas toujours


appliqu : dans lhistoire rcente, il semble quil aurait t appliqu pour
Google Maps ou Google Wave, services tous deux dvelopps par Lars
Rasmussen. Par contre, il na pas t appliqu pour Google+, ce qui a
provoqu le courroux de nombreux bloggers.

Chez qui a fonctionne ?


Chez quasiment tout le monde finalement

Les rfrences chez les gants du Web

LAPI de Google Maps est trs fameuse : elle est, avec celle de Twitter,
lune des plus utilise par les sites Web selon programmableWeb.com.
Elle est devenue le standard de facto pour exposer des objets sur un fond
de carte. Elle utilise des jetons dauthentification (client ID) afin de mesu-
rer la consommation dune application donne, et de pouvoir la facturer
au del dun certain quota.

LAPI de Twitter est trs largement utilise : elle propose des services so-
phistiqus pour accder aux donnes des abonns en lecture, en criture.
Il est mme possible de lutiliser en streaming pour recevoir les mises
jours de tweets au fil de leau. Toutes les fonctionnalits du site sont
accessibles via lAPI. LAPI offre aussi un systme de dlgation de droit
daccs (bas sur le protocole OAuth) qui permet dautoriser une applica-
tion tierce tweeter en votre nom.

En France
Le service de cartographie Mappy propose des APIs de geocoding, calcul
ditinraires, etc. disponibles sur api.mappy.com
Orange propose avec api.orange.com la possibilit denvoyer des SMS,
de golocaliser des abonns, etc.

> retour table des matires


199
LES GANTS DU WEB

Et chez moi ?
Le pattern Open API est envisager ds lors que lon souhaite crer un co-
systme ouvert des partenaires ou clients, internes ou externes. Cet cosys-
tme peut tre ouvert sur Internet ou limit un usage interne lentreprise.
Un cas relativement classique en entreprise est lexposition de lannuaire
des collaborateurs pour permettent lintgration de leurs identits dans
les applications.

Un autre cas classique est lintgration de services exposs par des four-
nisseurs (par exemple une banque consomme les services dune socit
dassurance).

Enfin, un cas dusage moins classique consisterait ouvrir une plateforme


pour ses clients finaux :

Une banque permettrait ses clients daccder lensemble de leurs


transactions : voir lexemple de lAPI AXA Banque ou du CAStore.

Un oprateur tlcom ou un fournisseur dnergie permettrait


leurs clients de daccder leur encourt de consommation

Pattern connexe
Pattern Device Agnostic (cf. Device Agnostic p. 123).

Exceptions !
Tout ce qui ncessite un workflow complexe.

Linformatique temps-rel (type avion, automobile, machine outil) :


dans ce cas, la composition de services peut poser des problmes
de performance.

La manipulation de donnes posant des problmatiques rglemen-


taires : il est peu souhaitable de faire transiter des donnes critiques
entre plusieurs plateformes.

> retour table des matires


200
ARCHITECTURE / OPEN API OU COSYSTME OUVERT

Sources
Style REST (Representational State Transfer) :
> http://fr.wikipedia.org/wiki/Representational_State_Transfer

Architectures SOA :
> http://en.wikipedia.org/wiki/Service-oriented_architecture

Livre SOA, Le guide de larchitecte dun SI agile :


> http://www.dunod.com/informatique-multimedia/fondements-de-lin-
formatique/architectures-logicielles/ouvrages-professionnel/soa-0

Plateformes ouvertes selon Marc Andreessen :


> http://highscalability.com/scalability-perspectives-3-marc-andreessen-
internet-platforms

Mathieu Lorber, Stphen Prin, Quelle stratgie dAPI pour votre S.I.,
USI 2012 :
> http://www.usievents.com/fr/sessions/1052-what-strategy-for-your-
web-api?conference_id=11-paris-usi-2012

> retour table des matires


201