Formation et maturation d’un écosystème [1]
par Jean-Luc Dormoy
A chaque nouvelle étape conduisant au développement d’un nouvel écosystème, une histoire semblable se répète, et cette histoire peut être caractérisée par l’évolution des plates-formes d’exécution et des infrastructures sous-jacentes utilisées dans le domaine. Il est d’ailleurs amusant de constater que chaque nouveau domaine procède ainsi à une sorte de récapitulation de l’histoire du calcul et de l’informatique[1].
Dans un premier temps, les performances d’un calculateur universel avec du logiciel ne sont pas suffisantes pour attaquer le nouveau type d’application. On sait en effet qu’il y a un overhead à construire un système de cette façon par rapport à un système où on a directement mis en œuvre la fonction désirée par un circuit spécialisé sur silicium. Par exemple, les traitements dans les premiers téléphones portables étaient réduits au minimum hors de la fonction téléphonique de base; il aurait été impossible sinon de faire rentrer dans les contraintes de performance, de poids et d’énergie l’ensemble des composants nécessaires, essentiellement de communication pour les premiers mobiles. Toute solution devait être optimisée selon ces critères, quitte à relâcher les contraintes sur les objectifs de coût. Des circuits spécialisés étaient à ce stade la meilleure – et la seule – solution. Dans un premier temps, les objets téléphones portables – souvent vendus comme téléphones de voiture – étaient fort chers, mais rapidement le volume important de pièces acquises par le marché a lancé l’économie de ce nouveau domaine. A cette époque, un marché de masse était de l’ordre du nombre de pièces liées aux PC. Autre exemple plus en arrière dans le temps, beaucoup de fonctions des premiers PC étaient également réalisées par des circuits spécialisés, que ce soit des fonctions de base d’entrées-sorties (lecteurs de disquettes, claviers…) comme les fonctions multimédia – image, son. De même, les périphériques à leurs débuts constituent un débouché pour les circuits spécialisés. Dernier exemple, les circuits de contrôle électronique dans les voitures étaient spécialisés à leurs débuts. Des compagnies comme Robert Bosch avaient d’ailleurs lancé des activités de conception et de production de tels composants silicium spécialisés.
Dans un second temps, les performances des processeurs généraux, qu’on les appelle microprocesseurs, calculateurs embarqués ou microcontrôleurs, deviennent suffisantes pour embarquer le logiciel correspondant à la fonction développée initialement via des circuits spécialisés. Le gain est d’utiliser des produits hardware standards, et de gagner en souplesse de conception, de test, et d’évolution via la mise en œuvre sous forme de logiciel. Cette étape a été franchie dans les systèmes embarqués notamment en utilisant de nouvelles méthodes de conception et d’écriture du logiciel embarqué, qu’on appelle systèmes synchrones. On réalise en logiciel un automate aux propriétés temps réel bien définies, et prouvables jusqu’à un certain point, automate intégré dans un logiciel tournant directement sur des calculateurs. Cela permet d’assurer la sûreté ou la fiabilité indispensable de ces systèmes. L’avionique, la productique ont été et continuent d’être des domaines de choix d’application de ces systèmes.
Entre l’ASIC et le processeur vient souvent se glisser le FPGA ou les circuits reconfigurables, qui sont programmables sous la forme particulière d’un « circuit logiciel », et qui ont des performances en puissance de calcul, énergie consommée et coût qui en font une solution intermédiaire dans cette évolution.
Une autre raison motivant de passer de circuits spécialisés à des circuits programmables est que, d’un côté, la complexité des systèmes a considérablement allongé la durée de leur conception – désormais jusqu’à 5 ans – alors que les spécifications de ce qu’attend le marché ne sont connues que peu de temps avant la sortie du produit. Pour résoudre cette apparente contradiction, il est impératif d’adopter une forme ou une autre de conception logicielle.
Un autre type d’architecture qui pourrait bientôt être offerte comme alternative à ces étapes de transition est l’architecture manycore – où des centaines voire des milliers de cœurs de processeurs sont disposés sur une même puce, et programmés via des outils adaptés. Ils offrent en effet des performances en terme de puissance de calcul exceptionnelles, concurrençant ainsi les ASIC « extrêmes » sur ce critère, avec une consommation mesurée, et surtout un gain en temps de conception considérable.
Ces infrastructures « hardware + applicatif » sont cependant rapidement insuffisantes en terme de flexibilité de conception et de productivité de celle-ci. On adapte donc ou on réinvente l’acquis de l’informatique venant d’autres domaines comme les systèmes d’exploitation, les machines virtuelles, la virtualisation, les compilateurs et interpréteurs complexes, les middlewares, etc. On aboutit ainsi à des plates-formes réellement programmables, aux fonctionnalités plus variées.
C’est ce qui s’est passé avec l’avènement des smart phones, notamment du type Nokia / Symbian. Nokia et les autres concurrents ont pu proposer des fonctionnalités de plus en plus variées, comme les agendas, carnets d’adresses, systèmes de mails, etc. En outre cela permet au constructeur de multiplier les offres avec des objectifs marketing affinés. Par contre, il n’est pas facile – même si cela est en théorie possible – de changer ou d’ajouter une fonctionnalité après avoir acheté son téléphone. L’auteur a expérimenté l’ajout de fonctionnalité sur son smart phone (ne citons pas la marque, elle n’est pas en cause, c’est le type de plate-forme qui est limitative) via la machine virtuelle Java qu’il contenait. Il fallait se connecter à un PC, faire des transferts compliqués et fragiles, installer, etc., sans garantie après bien des efforts de quelque chose qui marche.
Et surtout, surtout ! Les fonctionnalités – logicielles – à ajouter étaient fort peu nombreuses.
A cela une raison : les concepteurs de ces applications devaient être fortement liés à Nokia, qui ne permettait pas facilement que l’on programme de nouvelles applications sur ses téléphones. Savoir s’il s’agissait d’une posture marketing, d’une méfiance pour ce qui ne vient pas de la maison – en particulier en terme de qualité – ou d’insuffisance de la plate-forme d’exécution du téléphone est difficile à dire – probablement tout cela à la fois.
Il faut donc oser franchir un pas, et faire de sa plate-forme une plate-forme ouverte. Cela signifie que l’on va laisser à tout un chacun la latitude de développer de nouvelles applications sous forme logicielle, et même qu’on va tout faire pour les y aider.
La première condition pour cela est de publier un ensemble d’outils de développement pour la plate-forme. Pour Apple avec l’iPhone et l’appstore, cela a été dès la sortie du SDK plus d’un million de téléchargements de cette SDK – Software Development Kit. Google a suivi en juillet 2010 avec sa Google App Inventor for Android. Avec des conditions économiques différentes – nous y revenons ensuite – les trois grandes plates-formes de jeux, Playstation de Sony, Wii de Nintendo et XBox de Microsoft, publient aussi (en la vendant) la SDK de leur plate-forme. Les Visual Studio de Microsoft jouent ce rôle pour l’écosystème des PC (sous Windows). Tous ces écosystèmes (iPhone, consoles de jeux, PC) constituent des exemples de ce que nous appelons plate-forme ouverte, c’est-à-dire des systèmes où il est possible à l’utilisateur d’ajouter par logiciel de nouvelles fonctionnalités après l’achat de son appareil.
Il faut ensuite fournir aux développeurs de services les moyens techniques pour que le client potentiel puisse accéder à leur service innovant. De façon générale, les promoteurs de plate-forme leur fournissent toutes les informations nécessaires pour les aider, leur proposent des conférences, salons et lieux de rencontre pour faire le point et soulever le voile sur les nouveautés prévues. Les nouvelles versions de la plate-forme sont fournies aux développeurs avant la mise sur le marché pour le grand public. Cela peut aller jusqu’à des programmes de soutien financier aux offreurs de service, à des projets, en nature (don d’outils liés à la plate-forme), voire par un investissement financier complémentaire dans les sociétés.
Sur le plan commercial, il faut aussi aider les offreurs de service à trouver leur public. Pour les services dont les clients sont des entreprises, l’offreur de service doit avoir son réseau commercial. L’offreur de plate-forme peut proposer à l’offreur de service de mettre son réseau commercial à disposition, cela a longtemps été le modèle grâce auquel Dassault Systèmes vendait ses logiciels de PLM – Product Line Management, logiciels de conception pour l’industrie manufacturière – en utilisant le réseau commercial d’IBM. Ou bien l’offreur de service passe des accords avec les sociétés de service, qui adaptent le logiciel aux besoins spécifiques des entreprises clientes – pour ces ensembles logiciels complexes, l’installation va plus loin qu’un simple téléchargement ! Ce sont alors ces sociétés de service qui « vendent » le logiciel ou le service. C’est le modèle SAP[2].
Concernant les services pour le grand public, comme ceux destinés aux PC, aux plates-formes mobiles, aux consoles de jeux, l’offreur de service peut avoir son propre réseau commercial; mais une alternative est que l’offreur de plate-forme mette ses canaux de vente et de marketing à disposition des offreurs de service. Ce dernier modèle est celui des consoles de jeux, c’est aussi le modèle des appstores pour les plates-formes mobiles. Dans ce dernier cas, le magasin virtuel où les clients peuvent acheter et télécharger les apps constitue évidemment un canal de distribution et un outil marketing irremplaçables.
Les plates-formes embarquées sont souvent enfouies dans des objets aux fonctions bien définies : usines, avions, voitures, bâtiments. Les services créés pour ces plates-formes sont donc dans une relation en B2B avec les équipementiers et les intégrateurs de ces objets. Par contre, le web des objets introduit l’utilisateur dans l’assemblage du système à partir de composants, et pose donc la question de l’ouverture de la plate-forme d’exécution et de leurs canaux de commercialisation
Ainsi, les plates-formes multimédia et de connectivité web présentes dans les habitacles de voiture sont elles en passe de s’ouvrir, à l’instar des plates-formes mobiles. En outre, elles pourraient même être désolidarisées d’un point de vue commercial de la voiture elle-même, car les durées de vie des deux types d’objets sont très différentes – on pourrait ainsi « upgrader » son informatique d’habitacle au cours de la vie de sa voiture. On peut penser que les plates-formes à venir dans les maisons, y compris pour les aspects domotiques, vont subir le même sort. Ce sera probablement le cas en tout état de cause pour l’aspect multimédia.
Pourquoi cette mécanique de plate-forme ouverte a-t-elle autant de succès ? Parce que la société qui propose la plate-forme (comme Microsoft, Apple, Sony, …), aussi riche et puissante soit-elle, et quelle que soit la qualité de ses ingénieurs, n’arrivera jamais à réunir autant de créativité que des millions de cerveaux lancés dans une course effrénée à l’imagination, à l’innovation, au succès, … et aux revenus.
Le résultat ce sont des centaines de milliers d’apps ou de logiciels. Peut-être seuls 10% sont intéressants ou ont de la valeur, mais cela fait déjà beaucoup, et surtout cela donne le sentiment au client final d’un écosystème vivant : il y a toujours de la nouveauté. Et c’est sans doute ce qui se vend le mieux aujourd’hui : dans des marchés saturés (du moins pour la couche de la population mondiale qui a le privilège que cela soit vrai), il faut du nouveau, du vivant. Un écosystème de services logiciels sur une plate-forme ouverte, c’est cela.
La contrepartie pour le fournisseur de plate-forme est qu’il faut accepter de laisser la plus grosse part de gâteau à l’écosystème. Comme le dit Bill Gates, « pour chaque dollar que nous (Microsoft) gagnons, l’écosystème en gagne 5 ou 10 ». C’est tout à fait exact, et souhaité. Mais il faut aussi indiquer que ce facteur 10 est partagé entre des centaines de milliers ou des millions de fournisseurs, alors que le fournisseur de la plate-forme qui n’a « que » 1 est … seul. Et donc immensément riche ! En un sens, conquérir la position de plate-forme ouverte à succès dans un écosystème est la plus enviable : c’est vous qui gagnez le plus d’argent, ce sont les autres qui travaillent ! Et qui en sus « vendent » la plate-forme pour vous. Pourquoi avoir un PC sous Windows ou une certaine console de jeux ? A cause des logiciels d’infrastructure ou des jeux qui tournent dessus ?
Notons cependant que cette histoire commence à en prendre un coup avec l’avènement du cloud computing et du Software as a Service – SaaS. Cette fois c’est le web tout entier qui est le support d’exécution, il n’y a donc plus beaucoup d’avantage pour la plate-forme d’exécution locale – PC ou console. Nous n’en sommes pas encore tout à fait là, cette évolution bat actuellement son plein pour les applications d’entreprise, et n’a pas encore atteint réellement le marché B2C, mais cela viendra. La concurrence sera alors probablement entre les nuages…
D’ailleurs c’est une autre quasi loi des écosystèmes lorsque l’état « PF ouverte » arrive lui-même à maturation : il y a une tendance à n’avoir plus qu’un petit nombre de plates-formes, voire une seule. C’est la tendance à l’oligopole, voire au monopole. L’histoire a été dite pour l’écosystème du PC pratiquement au début des années 90. Elle est en train de se décider pour les plates-formes mobiles. Cela est dû à ce que l’on appelle les « externalités positives de réseau ». Cela signifie que pour de multiples raisons – en parler, communiquer des fichiers, etc. – vous avez finalement intérêt à avoir la même plate-forme que vos amis ou relations. La plate-forme qui commence à l’emporter à un moment donné pour une raison quelconque obtient à partir de ce moment un avantage, qui se renforce au fur et à mesure du temps, pour finalement l’emporter, voire rester seule.
[1] Par analogie avec cette théorie biologique proposée par Haenkel au XIXème Siècle selon laquelle la croissance des fœtus des vertébrés récapitule l’évolution de l’espèce, en passant par des stades ressemblant aux espèces ancêtres – poissons, batraciens, reptiles. Cette théorie est erronée, comme l’a bien démontré S.J. Gould, dans Ontogeny and Phylogeny.
[2] L’allemand SAP, le 3ème éditeur mondial, est le plus grand fournisseur de logiciels d’ERP – Enterprise Resource Planning, ou Progiciel de Gestion Intégrée – qui équipent les systèmes d’information d’une majorité des entreprises dans le monde.
Moore’s Law and the Future of [Technology] Economy de Jean-Luc Dormoy est mis à disposition selon les termes de la licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage à l’Identique 3.0 non transposé.
Basé(e) sur une oeuvre à mooreslawblog.com.