Adobe et Microsoft convergent vers le client riche
Inscrivez-vous gratuitement à la Newsletter BFM Business
Apollo et .Net3.0, avec sa couche de présentation WPF, traduisent la même vision du client riche. Mais chacun espère imposer ses spécificités.
Ces deux-là ne se lâchent plus. Adobe et Microsoft lancent presque simultanément leur nouvelle plate-forme de développement : respectivement, Apollo et .Net 3.0, avec sa couche de présentation graphique WPF (Windows Presentation Foundation). Deux architectures qui privilégient le client riche. Leurs éditeurs se rejoignent aussi dans l'analyse du marché. Pour Kevin Lynch, architecte des logiciels d'Adobe : ' Avec l'émergence des architectures orientées service, les entreprises redécouvrent l'intérêt d'un client ergonomique pour leurs applications. ' Et Jean-Christophe Cimetière, chef de produit plate-forme .Net de Microsoft, renchérit : ' Les moyens que l'on met à la disposition des utilisateurs pour accéder aux services d'une SOA sont cruciaux, car ils influent directement sur leur productivité. ' Après l'infrastructure, Microsoft s'efforce de proposer une couche cliente évoluée pour consommer ces services.
Un client riche et facile à déployer
L'approche SOA dissocie fortement les services (règles et objets métier), situés sur le serveur, de l'interface utilisateur qui les manipule (présentation et logique de navigation). Côté services, les jeux sont faits. Java, .Net et les outils d'intégration d'applications se sont imposés.En revanche, concernant l'aspect utilisateur, ' aucune technologie n'a encore percé ', souligne Sami Jaber, le directeur technique de la SSII Valtech Toulouse. Précisément, deux options s'opposent : les Rich Internet Applications (RIA) et les Rich Desktop Applications (RDA). Les premières recourent à un navigateur comme socle d'exécution mais aussi pour accéder aux services sous-jacents. Elles répondent aux contraintes des applications grand public, qui doivent reposer exclusivement sur des standards.Les secondes, elles, se basent sur un socle d'exécution propriétaire, tel Apollo, ou sur le framework .Net, que Microsoft pousse sur le poste client. ' Les RDA proposent le meilleur compromis possible entre un client lourd classique, qui apporte une forte interactivité, de bons temps de réponse et une ergonomie soignée, et un client léger de type RIA, qui garantit la simplicité de déploiement quelle que soit la diversité des postes de travail ', détaille Emmanuel Biffiger, chef de projet chez Lombard Odier Darier Hentsch. Cette banque a développé une application métier basée sur la technologie d'Adobe.Java n'a pas rencontré le succès escompté sur le poste client. Adobe et Microsoft convoitent donc désormais le marché des RDA. Il est vrai que l'enjeu dépasse les seuls ordinateurs pour concerner tous les périphériques mobiles : téléphones mobiles, assistants personnels, lecteurs MP3, appareils photo numériques, entre autres. ' L'éditeur qui imposera son socle d'exécution de client riche se retrouvera peu ou prou dans la situation de Microsoft il y a vingt ans ', prédit Jérémy Chatard, le directeur technique de la société de services informatiques Breek.
Deux approches voisines
En plus de partager une même vision du marché, Adobe et Microsoft adoptent des approches techniques voisines. Leurs socles de développement (framework, interfaces de programmation, machine virtuelle) s'installent sur le poste de l'utilisateur et fournissent une couche d'abstraction qui assure la portabilité de l'application. Celle-ci n'est plus constituée de binaires natifs, mais d'un code précompilé, interprété dans la machine virtuelle. Au-delà de cette architecture, Apollo et le framework .Net 3.0 sont aussi les premières plates-formes des deux éditeurs à rassembler leurs interfaces de programmation et leurs moteurs dans un seul socle d'exécution. ' WPF unifie complètement la manipulation et l'affichage des documents, des flux multimédias, et des applications ', déclare Dick Lantim, architecte chez Microsoft France. Apollo, lui, regroupe un navigateur web compatible Ajax, un moteur PDF, et le moteur Flex-Flash dans un seul environnement d'exécution. ' Cela permet à n'importe quel développeur de créer des applications en utilisant les technologies qu'il maîtrise déjà ', précise Mike Chambers, responsable produit chez Adobe.
Des écrans décrits en XML
Pour faciliter la fusion de leurs technologies au sein d'un seul socle de développement, tous deux recourent à un langage de description d'écrans au format XML : MXML pour Apollo, et XAML pour WPF. Ces langages intermédiaires occultent les technologies sous-jacentes, dont l'hétérogénéité est prise en charge par le compilateur. ' Ce qui accroît l'efficacité des développeurs et facilite la maintenance, car l'application est mieux structurée ', argumente Jeremy Chone, responsable produit et stratégie Flex chez Adobe. La couche de présentation et la logique métier sont ainsi isolées l'une de l'autre. Mais XAML et MXML ne jouent pas le même rôle dans la stratégie des deux éditeurs. Chez Microsoft, XAML est à la fois un langage de description d'interfaces et un langage pivot entre développeurs et graphistes. ' Le logiciel de CAO Autodesk et le logiciel graphique Illustrator convertissent, par exemple, leurs fichiers dans ce format ', note Dick Lantim. Autre différence : ' Le code XAML n'est pas prévu pour être écrit à la main, mais plutôt pour être généré en mode Wysiwyg ', précise le consultant indépendant Mike Pelton, l'un des spécialistes mondiaux du langage. A l'inverse, ' MXML est tellement concis que l'on peut construire une cinématique fonctionnelle de l'application directement en MXML au lieu d'une simple maquette statique, estime Rémi Claverie, consultant chez Alligra, SSII spécialiste de Flex. Une démarche impossible avec d'autres technologies. 'La description XML de l'écran est enrichie avec un langage spécifique, qui gère l'interactivité de l'application, basée sur des événements serveur et utilisateur ?" C# ou VB.Net pour Microsoft, et Actionscript 3.0 pour Adobe. ' Un développeur se sent plus proche de WPF, car C# est un langage évolué. Peu d'entre eux apprécient Javascript ', souligne Sami Jaber, chez Valtech Toulouse. De plus, l'attrait d'Ajax pousse des milliers de développeurs à se former à Javascript, le langage utilisé par Adobe au sein de Flex et d'Apollo. Puis le code et les écrans sont compilés avant d'être affichés sous forme vectorielle par un moteur de rendu spécialisé (.Net Framework et la machine virtuelle CLR pour l'un, et Flash Player pour l'autre). Adobe et Microsoft sont les seuls à proposer cette approche vectorielle. Chez Microsoft, elle participe à tirer pleinement parti de la carte graphique du poste client. Ce qui soulage le processeur principal ?" cette démarche s'opère au détriment de la portabilité. A l'inverse, Apollo s'appuie sur le seul processeur central du poste utilisateur et propose ainsi une technologie portable. Conscient de l'enjeu de la portabilité, Microsoft vient d'annoncer une version dédiée de son moteur WPF. Baptisée WPF/E (pour Everywhere), elle fonctionnera sur internet Explorer, Firefox, et Safari en version Windows ou Mac OS. On devrait la retrouver sur les périphériques mobiles. La version finale de WPF/E ne sera pas disponible avant la mi-2007, Adobe dispose donc encore d'une belle avance. Surtout en matière de portabilité avec Flash Light pour les téléphones mobiles, et Flash Player pour les équipements dotés de Pocket PC.
Une même cible : les développeurs et les graphistes
Les deux éditeurs ont également élargi leurs gammes d'outils pour mieux couvrir le cycle de vie des applications. Adobe s'appuie sur Eclipse IDE pour proposer Flex Builder 2.0, un atelier de développement rapide, qui génère le code des interfaces en les dessinant. Une fonctionnalité qui rappelle le mode Wysiwyg de Visual Studio .Net. Adobe cible enfin les développeurs. A l'opposé, Microsoft a renforcé son environnement de développement par une gamme complète d'outils destinés aux graphistes. Expression Graphic Designer et Expression Interactive Designer facilitent, par exemple, la création des interfaces XAML. Ils rappellent les outils de création d'Adobe. Les deux éditeurs proposent aussi des protocoles d'échange optimisés entre leur client riche et les services sous-jacents : Flex Data Services (FDS) chez Adobe, et Windows Communication Foundation (WCF) chez Microsoft.' Notre client riche WPF se connecte aux sources de données et services sous-jacents via des services web synchrones ', expose Frédéric Cailhol, responsable du département logiciels métier à la direction des systèmes et des technologies de l'information (DSTI) des Autoroutes du sud de la France. Et de détailler : ' Cette architecture répartit les traitements entre les clients et le serveur tout en respectant une architecture trois tiers. Elle s'appuie notamment sur un bus de message MSMQ pour les échanges asynchrones, permettant ainsi de fonctionner en mode événementiel. Une architecture particulièrement bien adaptée à SOA. ' C'est d'ailleurs à ce niveau ?" la liaison entre le client et les services ?" que les options techniques des deux éditeurs divergent le plus. Flex Data Services (FDS) est constitué d'un ensemble de protocoles évolués et faciles à manipuler (push, échanges synchrones et asynchrones, cache de données local, etc. ), qui s'appuient en back office sur un service de bus de type JMS. Adobe donne le runtime Apollo, mais il vend FDS et d'autres services complémentaires ?" Livecycle (gestion des droits et workflow), Flash Media Server (streaming), Connect (conférence web), etc. A l'inverse, Microsoft a pris le parti de déployer son framework .Net 3.0 complet et gratuit sur le poste de l'utilisateur. N'importe quel service peut donc être déplacé sur le poste client : moteur de workflow, logique métier, base de données, etc. ' Nous croyons à l'émergence du peer to peer pour les applications d'entreprise ', révèle Jean-Christophe Cimetière.
Mais que fait donc le W3C ?
Le match s'annonce serré entre Microsoft et Adobe. D'un côté, Apollo peut compter sur sa portabilité, sa légèreté, son ouverture, ses performances, et sa base installée. Mais il lui reste à convaincre les développeurs. ' Apollo est un cadre idéal pour la migration de clients lourds vers des clients riches. Il permet notamment de développer des applications métier critiques en respectant les habitudes des développeurs Java et C# ', confirme Yann Chevalier, consultant et formateur Flex chez Baao.com. ' Mais Adobe va devoir démontrer que l'effet " skip intro " de Flash appartient au passé. ' Il multiplie donc les partenariats ?" avec Oracle et SAP, notamment. La nouvelle interface utilisateur de mySAP ERP repose en partie sur Flex. WPF bénéficiera des migrations vers Vista. WPF pâtit de sa complexité et de sa faible portabilité. Mais sa richesse fonctionnelle, son langage de développement sont une force pour les entreprises.Deux facteurs extérieurs risquent toutefois de ralentir la progression de WPF et d'Apollo : le succès des autres technologies émergentes, comme Eclipse RCP, ou encore le réveil du W3C. En hibernation depuis quelques années, le consortium aurait pourtant intérêt à standardiser un navigateur web de deuxième génération qui reconnaîtrait Ajax, un langage XML de description d'interfaces, un cache de données local...Bref, ce que réclament depuis des années les développeurs, et qui ne trouve finalement d'écho que chez les éditeurs de solutions propriétaires. Reste les initiatives isolées. Ainsi, la fondation Mozilla est-elle en train d'intégrer le moteur Javascript de Flash 9 dans le navigateur Firefox.redaction@01informatique.presse.fr