Applications riches : RIA, RDA et autres concepts barbares du Web 2.0

Posté par Romain Linsolas, le 28/06/2007.

Article paru dans la newsletter #20 – Ete 2007

Cet article a pour objectif de présenter les applications riches : Rich Internet Applications et Rich Desktop Applications. Après une présentation des concepts de base, un panorama des solutions principales est présenté.

Petit historique

Les années 1990 ont été marquées par les architectures client / serveur. Face à la difficulté de déploiement et de maintenance de ces clients lourds sur chaque poste client, les années 2000 ont vu l’explosion de clients dits « légers », qui déportent une grande partie du code sur des serveurs d’applications et réduisent ainsi considérablement les coûts de déploiement. Ces clients légers reposent sur les technologies HTML, JavaScript et CSS.

Si les clients légers ont réalisé leurs objectifs initiaux, de nouveaux problèmes sont apparus :

  • Manque d’ergonomie : le traditionnel pattern request-response sur lequel repose HTML ainsi que ses possibilités de base limitent l’ergonomie.
  • Manque d’interaction avec les outils de l’environnement de travail.
  • Dépendance au réseau du fait de la conception même du protocole HTTP : obligation de fonctionner toujours en mode connecté.

Pour pallier ces défauts, un nouveau type de clients est apparu : les clients « riches ». Ce terme, proposé par Macromedia en 2002, désigne des applications qui se positionnent entre les clients légers et les clients lourds et qui bénéficient de :

  • La facilité de réalisation et de déploiement des clients légers.
  • La richesse ergonomique et la robustesse des clients lourds.

Depuis, ce terme a fait son petit bonhomme de chemin et il a donné naissance à plusieurs types d’applications.

Les différents types d’applications riches

On peut classer les applications riches en deux catégories :

  • RIA : Les Rich Internet Applications.
  • RDA : Les Rich Desktop Applications.

RIA – Les Rich Internet Applications

Le terme « RIA » désigne les applications riches qui s’exécutent au sein de navigateurs Internet, tout comme les applications Web classiques.

On peut distinguer deux types de RIA : les RIA qui s’exécutent directement au sein des navigateurs et celles qui s’exécutent au sein de petits plugins installés sur les navigateurs.

Les RIA s’exécutant directement au sein de navigateurs : Il s’agit d’applications Web classiques (HTML, JavaScript et CSS) propulsées par l’utilisation d’AJAX (Asynchronous JavaScript And XML). Il suffit de jeter un œil à des applications comme Google Mail (http://www.gmail.com) pour se rendre compte de l’intérêt de ce cocktail détonant.

Ce type d’approche apparu en 2005 présente un intérêt de taille : les équipes de développement d’applications Web n’ont pas besoin de se familiariser avec de nouvelles technologies pour rendre plus « riches » leurs applications. Ceci dit, en pratique, il faut tout de même prévoir une bonne dose de patterns et surtout de travail pour arriver à un résultat vraiment intéressant en termes d’ergonomie, performance, fiabilité et sécurité.

Les RIA s’exécutant au sein de plugins installés sur les navigateurs : Il s’agit d’applications qui s’exécutent au sein de plugins installés dans les navigateurs Internet, à l’instar du fameux Flash Player. Avec 10 ans d’expérience dans le domaine, Adobe (qui a acquis Macromedia récemment) fait figure de référence.

RDA – Les Rich Desktop Applications

Le terme « RDA » désigne les applications riches qui s’exécutent directement sur le poste client des utilisateurs, comme les applications bureautiques classiques. Elles ne fonctionnent donc pas au sein de navigateurs Internet comme les RIA.

L’idée d’origine des RDA est d’apporter sur le bureau ce qu’on trouve sur Internet en y apportant davantage d’interactivité et de robustesse. Ainsi les RDA proposent souvent des fonctionnalités de drag and drop ou de copy / paste bien plus fluides que les RIA.

Ces applications s’exécutent souvent au sein d’un socle propriétaire ou d’une machine virtuelle installés au-dessus du système d’exploitation. Cela permet notamment aux RDA d’accéder aux ressources système : personnalisation du look and feel, accès au système de fichiers, etc. La nature des RDA leur permet également de fonctionner en mode déconnecté.

On peut citer la plateforme Eclipse RCP (Rich Client Platform) et le tout jeune Adobe AIR (Adobe Integrated Runtime). Ces deux technologies, comme la plupart des solutions de développement de RDA, proposent des API de mise à niveau : les applications deviennent alors capables d’être mises à jour de manière automatique.

Panorama des technologies

Les technologies permettant de développer des RIA ou des RDA sont récentes pour la plupart, mais déjà nombreuses.
Pour vous donner une petite idée de la chose, voici deux tableaux qui récapitulent les technologies des éditeurs principaux en matière de réalisation de RIA et de RDA.

Solutions de développement de RIA

 

Solution

Technologies sous-jacentes

Déploiement

Outils

Année

Version actuelle

Adobe :

Flex

Description interfaces :

MXML

 

Gestion interactions :

ActionScript

 

Produit déployé :

Animation Flash

Plugin léger multiplateforme :

Flash Player

 

(98% du parc Internet !)

Flex Builder (standalone ou plugin Eclipse)

2004

Flex 2

ActionScript 3

 

Flex 3 bêta

 

Laszlo Systems : OpenLaszlo

Description interfaces :

LZX (format XML)

 

Gestion interactions :

JavaScript

 

Produit déployé :

HTML / JavaScript ou Flash

Plugin multiplateforme :

Flash Player

 

2001

4.0

Eclipse :

RAP

(Rich AJAX Platform)

API Java proches similaires à RCP

 

Produit déployé :

HTML / AJAX

Non (application Web)

Eclipse

2007

M4

Microsoft : Silverlight, anciennement WPF / E

(Windows Presentation Framework / Everywhere)

Description interfaces :

XAML

 

Gestion interactions :

.NET 3

Plugin léger multiplateforme

Gamme Expression (pour les designers)

 

Gamme Visual Studio (pour les développeurs)

 

2007

1.1 alpha

Sun :

JavaFX

JavaFX Script

 

(langage de script non XML à mi-chemin entre Java et JavaScript)

Plugin multiplateforme :

embarque une JRE

 

(« succède » aux applets et à Java Web Start)

JavaFX Designer

2007

Alpha

Tableau 1: Solutions principales de développement de Rich Internet Applications

Le tableau 1 nous permet de faire une remarque intéressante : la plupart de ces solutions sont basées sur des langages de description d’interfaces basés sur XML : MXML pour Flex, LZX pour OpenLaszlo, XAML pour Microsoft… Précisons que le pionnier dans ce domaine est Mozilla, qui a proposé son langage XUL (XML-based User interface Language) dès 2001.

Dans un souci de simplification, vu la multitude de solutions basées sur AJAX, aucune ne figure dans le tableau précédent (à part le cas particulier d’Eclipse RAP). En fait, on peut distinguer deux types de solutions permettant de mettre en œuvre des applications reposant sur AJAX :

  • Des bibliothèques de composants permettant d’ajouter des fonctionnalités AJAX dans des applications : Rialto, Dojo, Yahoo ! UI, Rico, Zimbra, Script.aculo.us…
  • Des frameworks permettant de construire des applications reposant sur AJAX : ASP.Net Ajax (anciennement nommé Atlas), Echo2, et le désormais célèbre GWT, Google Web Toolkit. Ces frameworks permettent de s’affranchir d’un certain nombre des problématiques courantes en générant une grande partie du code HTML et JavaScript à partir de code Java ou .NET écrit.

A noter la sortie récente d’une API de Google nommée Google Gears : moyennant un plugin open source et multiplateforme pour les navigateurs Internet, elle permet l’utilisation d’applications Web… en mode déconnecté ! Mieux encore, elle permet de stocker des informations sur le poste du client à travers une base de données SQLite… Google a même déjà mis en œuvre cette API pour son application Google Reader.

Solutions de développement de RDA

 

Technologie

Technologies sous-jacentes

Déploiement

Outils

Année

Version actuelle

Adobe :

AIR

(Adobe Integrated Runtime),

Anciennement Apollo

Flash/ActionScript

ou HTML / AJAX

Machine virtuelle légère multiplateforme :

AIR Runtime

 

Flex Builder (standalone ou plugin Eclipse)

2007

bêta

 

Eclipse :

RCP

(Rich Client Platform)

API Java SWT

(Standard Widget Toolkit)

Machine virtuelle multiplateforme :

JRE

Eclipse

2004

3.2

Microsoft :

WPF

(Windows Presentation Framework)

Description interfaces :

XAML

 

Gestion interactions :

.Net 3

Machine virtuelle réservée à Windows

Gamme Expression (pour les designers)

 

Gamme Visual Studio (pour les développeurs)

 

2007

3.0

Sun :

NetBeans RCP

API Java Swing

Machine virtuelle multiplateforme :

JRE

NetBeans

2004

5.5.1

 

Tableau 2:  Solutions principales de développement de Rich Desktop Applications

Un peu de recul

Client lourd, client léger, client riche RIA ou RDA : on dispose désormais de tout un arsenal pour concevoir des applications correspondant à nos besoins.

Ces besoins sont déterminés par plusieurs critères. L’ergonomie est plus que jamais au centre des débats : elle doit permettre de choisir les technologies dites « Web 2.0 » les plus adaptées. Mais il s’agit là d’un nouveau challenge car les repères changent très vite ! La nouvelle et grande activité sur le sujet de géants comme Microsoft, Sun, Google et Yahoo sont une preuve de ce phénomène. Même Apple prépare sa propre technologie de conception d’interfaces… animées ! Sur le site Web d’Apple on peut lire à propos de cette technologie nommée Core Animation : « Non, ce n’est pas le dernier film d’animation sorti, c’est votre bureau ». Là encore, c’est le concept d’« expérience utilisateur » qui est mis en avant.

Il ne faut pas pour autant négliger d’autres critères qui sont tout aussi importants :

  • Mode de fonctionnement de l’application : connecté / déconnecté.
  • Productivité des développements.
  • Capacité d’intégration avec l’existant.
  • Capacités multimédia.

Pondérer ces critères permet déjà de donner une direction.

Pour en savoir plus

Le white paper sur le concept d’application riche de Jeremy Allaire, Macromedia :
http://download.macromedia.com/pub/flash/whitepapers/richclient.pdf

Le site Web officiel d’Adobe Flex :
http://labs.adobe.com/technologies/flex

Le site Web officiel d’Adobe AIR :
http://labs.adobe.com/technologies/air

Le site Web officiel de Microsoft Silverlight :
http://www.silverlight.net

Le site Web officiel du framework Microsoft .NET 3 :
http://msdn2.microsoft.com/fr-fr/netframework

François Goldgewicht

Tags:

Leave a Reply