Pourquoi les services web devraient être distribués comme des logiciels libres

closeCet article a été publié il y a 13 ans 3 mois 22 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Ce billet m’est inspiré par un article paru sur le site O’Reilly Radar.

Dans le monde du logiciel traditionnel, j’entends par là ceux que nous utilisons sur nos ordinateurs, les logiciels propriétaires ou privateurs existent, car leur créateur souhaite se créer une rente de situation en restreignant la possibilité pour d’éventuels concurrents de copier son logiciel, de l’améliorer et enfin de lui voler « ces clients ».

Une logique que le logiciel libre combat depuis de nombreuses années.

Voici venir le cloud computing et plus précisément l’avènement du web des services en ligne. Leur apparition date d’ailleurs d’avant « l’invention » du cloud computing. Ils ont juste été réintégrés dans cette nouvelle famille d’application informatique portée par internet.

Les services web ont fourni une nouvelle façon de contourner les règles imposées par les licences des logiciels libres. Il est en effet possible de proposer un service web basé sur un logiciel libre que l’on a modifié sans pour autant en publier les sources. Un extrait d’un article sur la réutilisation du code placé sous une licence open source :

  1. Ce sont des services web pas des logiciels distribués à des utilisateurs comme ceux que l’on peut installer sur son poste. L’obligation de redistribution des codes sources n’existe pas en général, d’où la création de l’AGPL pour essayer de combler cette faille.
  2. Des licences comme Apache (la licence pas le serveur) permettent de placer sous la même licence ou sous les termes d’une autre licence une version modifiée du logiciel, donc éventuellement une licence non libre. Un exemple, le serveur Web Apache est utilisé (sous forme modifiée) par IBM dans son serveur d’applications propriétaire WAS (WebSphere Application Server).

Les éditeurs de service web sont de fait à nouveau en mesure de protéger le code d’un concurrent potentiellement plus malin.

Les exemples ne manquent pas. Facebook, Twitter et bien sûr le plus gros d’entre eux : Google. Tous contribuent à des briques de logiciels libres ou open source qu’ils assemblent pour leurs services en ligne.

Peut-on les convaincre de ne pas craindre l’ouverture du code de leur service ?

Il faut donc leur apprendre à dépasser la traditionnelle crainte des éditeurs de logiciel privateur : je libère mon code, on le copie, l’améliore et on me prend mes clients. Si un service rend disponible son code sous une licence AGPL par exemple, qui que ce soit qui l’améliore et l’utilise sur un autre site web doit légalement rendre publique les améliorations. Cette licence lève cette crainte, car le code reste toujours disponible même s’il est amélioré.

Andy Oram, propose des arguments selon lesquels les services web gagnent des visiteurs grâce à des caractéristiques qui ne sont pas forcément liées au code :

  • La disponibilité du service ( cela parait évident, mais ce n’est pas toujours le cas),
  • Les effets de réseau qui font que les gens invitent leurs amis à venir sur le site web où ils sont donnant ainsi un avantage à celui qui met le premier le service en ligne,
  • L’apparence du site, les guides visuels à la navigation ce qui inclus des aspects qui peuvent être déposés sous forme de marque,
  • Une API bien conçue qui facilite la connexion avec d’autres services web.

En fin de compte, le code ne serait pas si important pour un service web. Imaginons que Google ouvre le code de son moteur de recherche. Qu’un malin tente de mettre en ligne un Google libre de publicité. Premièrement il n’aura pas les peta-octets de données accumulées par Google ni l’infrastructure pour délivrer un service équivalent. Mais il pourrait y avoir des mini-Google sur des thématiques particulières sans que cela fasse probablement de l’ombre à Google.

Mais le moteur de recherche de Google est peut-être un mauvais exemple, car dans ce cas-là si l’algorithme de classement devenait public il serait peut-être plus facile de le manipuler. On constate cependant que certains y arrivent très bien malgré le secret qui l’entoure.

Un scénario a peu prêt identique pourrait être avancé pour les services Gmail, GReader, etc… Je pense que Google pourrait libérer tout son code que cela ne changerait plus grand-chose pour lui dans l’immédiat. Il a l’avance que lui procure son infrastructure informatique que l’on a tendance à souvent oublier derrière la simplicité et les performances affichées.

Mais pour l’instant Google se contente de libérer les services web qui ont échoué à l’image de Google Wave qui a été repris par le projet Apache.

Pour finir on me souffle dans mon oreillette StatusNet de ne pas oublier de mentionner le TIO Libre qui définit les caractéristiques d’un service libre. Une définition que j’ai utilisé notamment pour évaluer des offres de services web de type Saas (Software as a Service) à destination des entreprises comme TioLive ou encore Odoo.

Crédit image Certains droits réservés par c__

Philippe Scoffoni

Je barbote dans la mare informatique depuis 30 ans (premier ordinateur à 16 ans, un ORIC ATMOS) et je travaille à mon compte au travers de ma société Open-DSI. J'accompagne les associations, TPE et PME dans leurs choix et dans la mise en oeuvre se solutions informatiques libres.

8 réponses

  1. dormomuso dit :

    « Mais pour l’instant Google se contente de libérer les services web qui ont échoué à l’image de Google Buzz qui a été repris par le projet Apache. »

    Coquille.
    Google Wave, pas Google Buzz

  2. Galuel dit :

    Et Flattr ????

  3. Bardamu dit :

    « Qu’un malin tente de mettre en ligne un Google libre de publicité. Premièrement il n’aura pas les peta-octets de données accumulées par Google ni l’infrastructure pour délivrer un service équivalent. »

    …Sauf les autres gros acteurs du marché de la recherche non? (Bing etc…).

  4. Galuel dit :

    @Bardamu

    Ben et Yaci ??? http://yacy.net/

  5. Greg dit :

    Je suis moyennement d’accord sur la faisabilité de ce genre de manières de faire. Je pense simplement à mon boulot sur le planet-libre. Il va de soi que le code qui se trouve sur le planet libre n’est pas une copie EXACTE de wordpress, du bilboplanet et de punbb pour la simple et bonne raison que certaines fonctionnalités sont des améliorations « fait maison » pour s’adapter au site.

    Comment pourrais-je proprement donner accès au code du Planet-Libre au gens? C’est tout simplement impossible à faire. Car chaque fois que je fais une modif je ne me vois pas packager le code pour le mettre à distribution. D’autre part, même l’utilisateur expérimenté ne pourrait pas en faire grand chose car il s’agit de petites modifs qui sont particulières à nos besoins.

    Bref, souvent le code est aussi lié à l’infrastructure. Et c’est pas tout de publier du code, le code ne fait pas tout. Et puis le code est parfois morcellé dans plein d’endroits différents ce qui rend la publications impossible, ou alors la reproduction impossible. Sans parler de tous les trucs qui sont hardcodé !

    Car c’est pas tout de publier du code. Mais publier un code pourri, ça ne rend pas service aux gens … ça peut même parfois causer plus de dégats que l’on ne pense…

    Alors la morale de l’histoire c’est quoi? Il faut peut-être demander à tout le monde de coder proprement et de publier son code ! Je t’avoue que ça me ferait peur … on voit déjà trop souvent sur les forums d’entre-aide des gens qui copie-collent des codes sans même savoir ce qu’ils font !

    Bref, laissez aux gens qui veulent publier leur code, le publier car ils sont conscient de ce qu’ils font ! Mais il ne faut pas généraliser. Tout n’est pas bon à prendre. Et les bidouille d’un site, bien qu’il soit basé sur un logiciel libre, ne doivent pas spécialement être distribuée … (et puis c’est tout simplement pas faisable).

  6. Eric dit :

    La difficulté n’en serait pas une si tous le monde disposait d’un serveur sur le web. Sinon, il n’y a strictement aucun moyen de savoir si le code utilisé par un service est bien celui publié avec une licence libre et surtout, il n’est pas possible de savoir si un autre programme n’exploite pas les données personnelles.

    Je suis d’accord avec Greg sur la difficulté supplémentaire des licences qui n’enquiquine pas les bonnes personnes …

    En ce qui concerne gmail et reader, je ne vois pas ce qu’il y a de compliqué au niveau infrastructure ?

  7. Philippe dit :

    Désolé de ne pas avoir répondu plus tôt, mais je profite d’un moment de lucidité que me permet ma grippe pour vous répondre
    @Greg : je suis tout à fait d’accord avec toi sur le fond. Merci de cet éclairage « pratique ». Mais c’est le même cas pour les logiciels de nos machines. Toutes les modifications ne sont pas forcément reportées dans le projet parce qu’elle n’ont pas forcément d’intérêt et ne servent qu’à celui qui la faite. A charge pour lui de maintenir par contre cette modification malgré les évolutions du logiciel d’origine.
    Mais il y a un gap entre ne rien publier et faire ce que vous faite avec le bilboplanet et le planet-libre. Il y a des écarts, mais relativement minimes. Quel est le pourcentage approximatif de code différent entre les deux versions ( PL et bilboplanet ) ?
    Pour moi le Planet-libre répond parfaitement à la définition de « service libre ». A moins qu’il y ait de grosses fonctions genre on peut modérer sur la planet-libre et pas avec bilboplanet…. C’est de ça dont il est question en fait.
    @Eric
    « La difficulté n’en serait pas une si tous le monde disposait d’un serveur sur le web » Et pourquoi pas chacun aurait alors le contrôle sur le code qui s’y exécute. Ce qui supposerait que les services web doivent être conçu pour fonctionner de façon décentralisé, en P2P… La virtualisation le permet et des offres existe déjà chez certains hébergeurs comme Gandi avec son mode AI (Auto Install) bien que le concept ne soit pas encore poussé au bout en le pensant pour M.Michu. Mais c’est un début…

  1. 5 janvier 2011

    […] This post was mentioned on Twitter by Philippe Scoffoni. Philippe Scoffoni said: Chez Philippe : Pourquoi les services #web devraient être distribués comme des #logiciels #libres http://bypsc.fr/0wh #cloudcomputing #saas […]