Le développement d'applications est une nouvelle fois en train de chercher une définition qui prenne en compte le caractère changeant et volatil de l'infrastructure des ressources informatiques qu'elles doivent mettre en œuvre. À AjaxWorld, la semaine dernière à New York, rien n'était plus évident que cette recherche renouvelée d'un point d'équilibre entre trois pôles de développement d'applications : pour le Web, pour le PC, et, à défaut de meilleure qualification, pour les « mobiles » - fourre-tout, pour l'instant, d'une nouvelle génération de terminaux qui va du téléphone cellulaire multifonctions jusqu'aux lecteurs de MP3, livres électroniques et assistants électroniques personnels.
C'est réellement un nouveau cycle de réflexion « existentielle » sur le comment et le pourquoi des applications, dites d'entreprise ou qualifiées de services Web pour le grand public, qui s'amorce sous nos yeux.
Pour ce qui est du premier axe de polarisation, le Web, sa banalisation accélérée, tant à la maison (avec l'ADSL et bientôt la fibre optique, en particulier) que dans l'entreprise (la substitution subreptice et progressive de TCP/IP à tous les autres protocoles spécifiques) a constitué le terreau ô combien fertile à la croissance des champions de ce que Nicholas Carr dans son nouveau livre, « The Big Switch », appelle « cloud computing » - faisant écho au slogan ancien et visionnaire de Sun Microsystems, « the network is the computer ». Il y développe la métaphore de la puissance calculatoire fournie par le Web, comme le réseau électrique fournit la puissance électrique et pronostique pour ses fournisseurs la même évolution que la consolidation de l'industrie électrique au début du XXe siècle. Et l'on constate en effet aujourd'hui l'émergence d'acteurs géants comme Google et Amazon (avec les services EC2 et S3) qui viennent immédiatement à l'esprit comme pivots de cette consolidation, engagés qu'ils sont dans une concurrence effrénée dans le BTP, la consommation électrique et l'impact sur l'environnement autour des datacenters proprement pharaoniques qu'ils bâtissent autour du monde. Pour les applications informatiques, les approches vantées naguère par Oracle (« thin client ») et par Citrix semblent même timides aujourd'hui au regard des positions de SalesForce.com ou des annonces d'EMC autour de sa gamme de produits Fortress. Ces acteurs et d'autres pionniers démontrent quotidiennement que dans le modèle « software as a service », le logiciel diffusé et consommé comme un service (à la demande et à l'usage), les applications informatiques sont plus faciles à déployer, à actualiser et, dans bien des cas, à utiliser. La conjugaison de l'arrivée à maturité concomitante des technologies de virtualisation, de stockage, de répartition de charge - voire de peer-to-peer -, de la fonctionnalité accrue des navigateurs Web - comme avec Firefox 3 et IE 8 qui présentent une nouvelle étape significative de l'enrichissement du client logiciel universel que constitue le navigateur Web - perturbent les certitudes acquises par les développeurs pendant les quinze dernières années du modèle dominant du client-serveur.
Quelques abstractions sont aujourd'hui élevées à un rôle dominant dans l'architecture de ces nouvelles applications/services pour le Web. On parle de SOA pour Service Oriented Architecture, architecture orientée service, dans laquelle la fonctionnalité globale des applications est découpée en services fonctionnels, individuellement identifiés et habillés d'une interface relativement homogène permettant de les découvrir, de s'y connecter et de les utiliser via les protocoles et les standards rendus populaires par le Web (HTT et XML en particulier). Les vétérans aguerris auront évidemment reconnus des principes bien connus que l'on (re)découvrait déjà au début des années 1990 dans des cénacles comme l'Object Management Group (OMG) et sur lesquels il convenait de se quereller avec Digital Equipment, Microsoft ou IBM (COM ou Corba ?). Mutatis mutandi appelons un objet un service Web, un ORB l'infrastructure TCP/IP + HTTP, malgré sa sobriété, et employons XML comme IDL : nous voici pratiquement dans les habits modernes de
Autres abstractions dont la prévalence s'affermit de jour en jour et qui jouent un rôle dual de celui des applications/services dans le pôle Web, les « widgets » et le « mashup ». Ici on est du côté utilisateur plutôt que du côté serveur mais on cherche de la même manière à fragmenter l'interface utilisateur en composants, de préférences visuellement attractifs - c'est bon pour la publicité en ligne -, consommateurs de données en temps quasi-réel - c'est bon pour la facturation à l'usage -, et, pour combien de temps encore, souvent propriétaires - c'est bon pour le verrouillage des internautes dans le « walled garden », le jardin bien clôturé d'un site ou d'un service Web. Car en effet si
Techniquement, ce sont ici les idées de conteneur et de composant que l'on recycle abondamment. Les nostalgiques de la gestion de documents du Xerox Star, d'OpenDOC (Apple puis IBM et WordPerfect), d'OLE (Microsoft déjà !), retrouveront dans le mashup-conteneur et le widget-composant toutes leurs marques. Et quoi de plus logique : à l'époque les « documents » devenaient multimédia, enrichis grâce aux capacités croissantes de stockage et de calcul des PC et des systèmes d'exploitation, et il fallait donner aux éditeurs de logiciels une place dans la bureautique naissante centrée sur le document, chacun s'investissant dans le « composant » dont il était le spécialiste assuré qu'il était de son intégration dans le document ou sur le desktop. La même logique est à l'œuvre aujourd'hui qui voit la bureautique centrée sur le document laisser la place à un recentrage sur la page Web servie, c'est la nouveauté, à distance par l'application/service Web.
Habitués que nous étions aux applets Java, la transition aux widgets est toute naturelle et la machine virtuelle, ici Javascript et XML, s'est fondue dans le navigateur Web. Comme il y a vingt ans, les systèmes propriétaires sont les premiers à émerger : iGoogle, Microsoft Live, Yahoo! Widgets, Facebook, Adobe et tant d'autres proposent tous leurs propres composants et conteneurs modernes pour applications/services Web. Ils rencontrent un tel succès que se pose à nouveau le problème de l'interopérabilité et de la compatibilité du triptyque navigateur-conteneur-composant. En marge d'AjaxWorld, opportunément organisé par IBM, se tenait sur ce sujet une réunion du groupe OpenAjax Alliance qui rassemble régulièrement tous les grands acteurs de cette industrie naissante dans une réflexion autour des questions d'interopérabilité. Au vingt et unième étage de la tour IBM, sur Madison à New York, on pouvait ainsi retrouver dans une salle de réunion discrète des représentants d'IBM, de Yahoo!, de Microsoft - l'équipe de développement de IE 8, rien moins -, de Tibco et de quelques startups prometteuses comme Nexaweb, OpenSpot, Dojo et le (seul !) français DreamFace Interactive pour travailler à un standard d'interopérabilité (OpenHub) et pour formuler des demandes d'évolution des navigateurs Web vers une meilleure prise en compte des mashups.
Mais les pages Web ne sont déjà plus le seul écosystème dans lequel prolifèrent les widgets. Le desktop de nos PC menace d'être envahi lui-aussi. C'est d'ailleurs la stratégie de contournement qu'ont choisi les actuels détenteurs de parts de marchés sur le PC comme Microsoft et Adobe pour contrer l'attaque frontale des acteurs du Web comme Google (Google Gears, Google Desktop), Yahoo! et d'autres qui ont vite proposé leurs widgets Web, en mode déconnecté, sur le desktop. On parle souvent de RIA (Rich Internet Application) pour désigner ces applications issues du pôle Web qui visent à reproduire dans le navigateur et sur le desktop, au prix de l'installation d'une machine virtuelle ad hoc, la richesse des applications classiques du PC. Silverlight de Microsoft et AIR d'Adobe, récemment annoncé, sont en concurrence frontale entre eux et avec les offres des acteurs du Web, notablement XUL de Mozilla (Firefox) ou encore JavaFX de Sun. Chacun s'aligne avec ses forces, ses faiblesses et son historique (.NET chez Microsoft, Java chez Sun, Flash et Flex chez Adobe) pour, s'appuyant sur leur base installée du pôle PC, s'appliquer à prendre des parts de marché sur le pôle Web.
Enfin le pôle mobile avait aussi droit aux honneurs d'un Developer Summit à AjaxWorld intéressants les développeurs d'applications pour l'iPhone. Apple a annoncé au début du mois la disponibilité du kit de développement d'applications pour son téléphone best-seller. Le modèle business est à la fois original dans cet univers et conforme à la stratégie de contrôle voulue par Apple (qui la sert si bien pour l'iPod et iTunes) : le firmware 2.0 bêta est accessible à tous les développeurs qui s’inscriront au programme. Le SDK lui est disponible gratuitement. L’intérêt du programme de développement est qu’il leur fournira un cadre de distribution entièrement gratuit de leurs créations : l’App Store. L’Application Store sera accessible directement à partir d’un iPhone et permettra de télécharger, et de payer des applications pour iPhone. Apple prendra en charge tous les coûts d’hébergement. À titre individuel, l’inscription coûte 100 $ par an ; 299 $ par an pour une entreprise. Tarif auquel il faut ajouter les 30 % que prélèvera Apple sur le montant des ventes réalisées via l’App Store. Un dispositif assez fermé où programmeurs et utilisateurs payent pour le logiciel, contrant celui qu'en
Si Nokia offre un service propriétaire (widsets) sur les mobiles de la marque, notons que des startups françaises travaillent précisément à la fluidité du passage des applications du pôle Web au pôle mobile : Goojet, sur une base Java pour les mobiles, permet de créer son propre bureau avec des petites applications se connectant aux services Web populaires comme Flickr, Twitter et aux flux RSS ; ViaMobility va plus loin en proposant tout simplement le faire tourner directement sur le mobile les mêmes widgets que celles qui tournent sur le Web, iGoogle, Yahoo! et autres, ceci quelque soit le mobile Windows CE ou Symbian : un exploit !
Comme le matériel, les applications se virtualisent ! Aujourd'hui confinées à l'un des pôles architecturaux, Web, PC ou mobile, elles sont poussées à s'étendre aux autres pôles par les champions sectoriels avides de nouvelles parts de marché. Widgets et mashups sont les pierres du gigantesque jeu de go dans lequel sont engagés à la fois les grands acteurs et les startups innovantes du Web, pour délimiter les frontières fluctuantes des nouveaux territoires des applications informatiques.