Principe de fonctionnement de base des RIA

26 June 2010 par chidia_s

Le web est un domaine sujet à de nombreuses évolutions technologiques. Aujourd’hui n’importe quel utilisateur lambda pourrait, par intuition, reconnaître une application web récente d’une plus ancienne.

Parmi les nombreuses avancées technologiques, l’une d’entre elles peut facilement se démarquer par le nouveau concept qu’elle introduit. Je veux bien entendu parler des RIA (Rich Internet Application). Cette technologie, aujourd’hui entrée dans les mœurs, permet de donner un nouvel aspect plus intuitif et dynamique aux sites web. La navigation pour les utilisateurs se voit donc simplifiée et mieux guidée.

Si aujourd’hui les RIA sont utilisées dans la grande majorité des nouveaux sites web, leur fonctionnement ne reste pas pour autant trivial. Comment fonctionne une RIA ? Quels sont les avantages et inconvénients de cette technologie ? Quel est l’avenir de ce principe ? C’est à ces questions que je me propose de répondre dans cet article.

Présentation générale des RIA

Définition

Les RIA ou « Rich Internet Application » sont des applications qui vont préférer utiliser les ressources de l’ordinateur côté client (généralement l’ordinateur de l’internaute) plutôt que celles côté serveur. Les applications communiquent avec le serveur de manière optimisée afin de ne récupérer que des informations utiles.

Par le biais de ces échanges optimisés, il devient plus facile de manipuler des médias ou encore de guider l’internaute dans sa navigation sur un site web. En effet il n’est plus nécessaire de recharger toute une page pour changer son contenu, l’application demande au serveur l’information à mettre à jour et l’actualise. Ainsi l’utilisateur ne revoit pas toute une page se recharger pour ne changer que quelques informations.

La caractéristique principale de ces applications vient du fait qu’elle ne nécessite rien d’autre qu’un navigateur standard pour pouvoir être interprétée. En effet aucun logiciel (mise à part votre navigateur) n’est requis pour pouvoir bénéficier des avantages que confèrent les RIA.

Histoire

Peut-on réellement donner une date à la création des RIA ? Pas vraiment, comme beaucoup de nouvelles technologies web, il n’existe pas de date précise ou l’on pourrait dire que les RIA sont apparues. En effet c’est grâce à l’accumulation et à l’optimisation de travaux déjà existants qu’il a été possible de parler d’application riche.

Nous devons le terme « Rich Internet Application » à Macromédia, qui en 2002 publie un « white paper » avec sa définition des RIA. Dans ce document les RIA sont définies comme une nécessité.

En effet après l’explosion d’internet en 1990, de plus en plus de besoins se faisaient ressentir. Les applications web, le contenu média, et les interactions étaient très limitées. En 2002, ayant des besoins de plus en plus poussés et spécifiques, les utilisateurs en demandèrent plus aux développeurs d’applications web. C’est ici le besoin des utilisateurs qui a poussé les entreprises à chercher un moyen de concevoir des applications riches.

Les entreprises se sont alors mises à la recherche d’application aussi intuitive et dynamique qu’une application de bureau et accessible par tous les internautes. Cela permettrait donc de bénéficier de la facilité d’utilisation d’une application de bureau tout en gardant la richesse d’information qu’est Internet.

Voici les critères que Macromédia juge nécessaires en 2002 pour une RIA :

  • Fournir un support de contenu et de communication efficace.
  • Rassembler les données, les échanges et l’interface dans un même environnement.
  • Fournir un modèle d’objet puissant et extensible pour l’interactivité.
  • Faciliter le développement d’application en réutilisant les composants existants.
  • Donner la possibilité d’utiliser des services web.
  • Permettre l’utilisation de l’application hors-ligne.
  • Permettre la compatibilité de l’application sur différents supports.

C’est donc, dans la majorité des cas, sur ces bases que les RIA ont été développées par les entreprises pour nous mener aujourd’hui vers un web 2.0 dynamique et riche.

Différence RIA/RDA

Les RDA pour « Rich Desktop Application » permettent de pouvoir exécuter sur la machine de l’internaute une application web. La grande différence donc entre ces deux technologies réside dans l’environnement d’exécution. Alors que les RIA franchissent difficilement la frontière du navigateur, les RDA ajoutent la possibilité d’interagir plus aisément avec le système d’exploitation de l’utilisateur, cette technologie nécessite néanmoins une installation.

Les usages

Les RIA peuvent être utilisées dans toutes sortes d’applications afin d’apporter du dynamisme et augmenter la simplicité d’utilisation. Même si les usages les plus fréquemment rencontrés restent en rapport avec la navigation, qui est rendue plus naturelle et intuitive, les RIA permettent aussi d’effectuer des manipulations poussées. En effet grâce à cette technologie, de plus en plus de sites acquièrent l’apparence et les fonctionnalités de réels logiciels de bureau.

Les usages n’ont donc pas de limites et aujourd’hui encore cette technologie n’a pas fini de nous étonner par les évolutions et innovations qu’elle apporte.

Caractéristiques techniques

Fonctionnement d’une RIA

Les RIA permettent donc d’avoir une meilleure ergonomie et interactivité sur votre application web. Grâce aux technologies utilisées par les RIA, l’utilisateur peut interagir avec l’application web sans pour autant faire face à un répétitif rafraîchissement de page. Comment sont rendues possibles ces optimisations ? Par quels moyens les RIA communiquent avec un serveur ? C’est à ces questions que je vais répondre dans cette partie.

Afin d’illustrer la communication entre un serveur et une RIA j’ai choisi la description de la technologie AJAX (Asynchronous Javascript And XML) qui d’après moi permet d’aborder les fonctionnalités de base des RIA.

AJAX constitue le regroupement de différentes technologies web :

  • Javascript : Pour permettre la manipulation de contenu.
  • HTML / XHTML / CSS : Pour l’aspect visuel.
  • XML /XMLHttpRequest : Pour permettre la communication avec le serveur.

Tous d’abord, quels sont les différences entre une application web classique, et une application web utilisant l’AJAX ?

Je vous propose un schéma explicatif décrivant la différence entre une application riche et une application classique au niveau des interactions serveurs :

RIA vs Classic

RIA vs Classic

Plusieurs différences sont à noter ici.

Avec une application classique, le navigateur communique directement avec le serveur via des requêtes Http. Le serveur transmettra ici systématiquement une requête contenant des informations HTML et CSS, ce qui permettra de charger une nouvelle page web.

Dans une application riche le navigateur a la possibilité d’utiliser les technologies mises à disposition par l’AJAX afin de communiquer efficacement avec le serveur. Ici une première requête http est envoyée afin de récupérer la page complète, puis les requêtes http suivantes seront envoyées de manière asynchrone afin de ne pas bloquer l’utilisateur.

Les requêtes http envoyées de manière asynchrone permettent ici la récupération de données ciblées.

Le serveur renverra ici des données au format XML, ainsi le « parsing » se verra simplifié et les données récupérées permettront de mettre à jour une partie ciblée d’un site ou d’une application web.

Selon les technologies utilisées les échanges client/serveur ne sont donc pas les mêmes. On peut ici aussi distinguer la méthode classique et celle employée par les RIA. Voici un schéma explicatif sur ces deux méthodes :

Cas Classique :

Requête classique

Requête classique

Utilisation des RIA :

La première différence constatable entre ces deux schémas se situe au niveau de l’activité utilisateur.

En effet, lors de l’utilisation des RIA, l’utilisateur n’est jamais interrompu dans son activité. Les requêtes sont envoyées de manière asynchrone ce qui permet de ne jamais stopper l’internaute pour effectuer un traitement. Ici les échanges entre le serveur et le client sont optimisés, seules les informations utiles à la modification de la page sont transmises. Ainsi, c’est en fonction des interactions de l’utilisateur que l’échange de données est ordonnancé. Dans cet exemple les requêtes passent par une couche Ajax. Au final, une couche a été ajoutée entre le serveur et le navigateur afin de mieux gérer les échanges.

Dans un cas classique, pour chaque communication avec le serveur, l’utilisateur est interrompu dans son activité par le rafraîchissement de la page. Le serveur reçoit la requête utilisateur, la traite et renvoie la totalité de la nouvelle page web. Les échanges ici sont directement faits entre le navigateur et le serveur.

Détail d’une requête XMLHttpRequest

Concrètement, une XMLHttpRequest est un objet JavasSript permettant la récupération de données sur un serveur distant à l’aide de requêtes. Au cours de son utilisation, cet objet pourra être dans plusieurs états. Cet état pourra être connu grâce à l’attribut « readyState ».

Les différents états sont :

  • UNSENT (ou 0) : L’objet a été construit.
  • OPENED (ou 1) : La méthode « open » a été appelée avec succès.
  • HEADERS_RECEIVED (ou 2) : Les « headers » http ont été reçus.
  • LOADING (ou 3) : La réponse est en cours de réception
  • DONE (ou 4) : Le transfert est terminé (avec ou sans erreur).

Son instanciation se fait de manière classique :

var xhr = New XMLHttpRequest ();

Après l’instanciation, il faut préciser à l’objet la méthode utilisée pour la transmission des données. Cette étape est réalisée grâce à la méthode « open » de l’objet :

xhr.open (« POST», location.href, true);

Ici la méthode de transmission de données choisies sera « POST ». L’url sur laquelle seront transmises les données sera « location.href », qui représente ici l’url de la page courante. Enfin le dernier paramètre utilisé précise que nous voulons que la requête soit traitée de manière asynchrone (« false » pour synchrone).

Lors de l’appel à la méthode « open », une vingtaine d’étapes sont réalisées. Ces étapes permettront de vérifier la composition de l’objet XMLHttpRequest, en cas d’erreur une exception sera levée. Les paramètres passés à la méthode « open » sont aussi vérifiés, si une erreur est présente il y aura ici aussi une exception. Vous pourrez trouver sur ce lien tous les détails de l’algorithme exécuté pour la méthode « open » .

On exécute la requête :

xhr.send() ;

Ici aussi un algorithme est exécuté à chaque appel. Tous d’abord une vérification sera effectuée au niveau de l’état de l’objet XMLHttpRequest. Si l’état n’est pas « OPENED » une exception sera levée. Après la lecture de différents paramètres de l’object XMLHttpRequest permettant d’effectuer l’opération demandée, la requête est envoyée. Vous pourrez trouver sur ce lien plus de détail sur l’algorithme exécuté par le navigateur pour la méthode « send ».

Enfin il nous suffit de récupérer la réponse à notre requête :

Xhr.responseText() ;

Ici, on pourra récupérer la réponse du serveur. Ici tant que l’état de l’object XMLHttpRequest n’est pas « DONE », la méthode renverra « null ».

Avantages et inconvénients des RIA

Pour conclure cet article nous pourrons résumer les avantages et inconvénients des RIA.

Inconvénients :

  • L’exécution dans le navigateur limite la portée de l’application.
  • Complexe.
  • Demande beaucoup d’efforts pour arriver à des fonctionnalités d’applications de bureau.

Avantages :

  • Aucune installation.
  • Données centralisées, l’application peut être exécutée depuis n’importe quel poste ayant accès à internet.
  • Plus apprécié par l’utilisateur du fait de la simplicité d’accès.

Quelques Langages permettant d'implémenter des RIA

Aujourd'hui il existe plusieurs façons d'implémenter des RIA. Plusieurs acteurs du web proposent leurs solutions pour développer des applications riches :

  • Silverlight : Cette technologie issue du framework .NET et propulsée par Microsoft propose de développer de manière gratuite des applications riches.
  • Flex : Cette solution proposée par Adobe permet de déployer des applications riches en utilisant la technologie flash.
  • Java application : Cette solution fonctionne avec une machine virtuelle java installée sur le poste client. Le code de l'application est compilé en bytecode et est exécuté directement sur la machine du client.
  • AJAX (Asynchronous Javascript and XML) : Cette solution regroupe un ensemble de techniques connues pour communiquer avec le serveur de manière optimisée.

Les RIA aujourd'hui et demain

La place des RIA aujourd'hui

Aujourd'hui les RIA semblent occuper une place plus qu'importante dans le web 2.0. De nos jours il devient difficile de développer un site web répondant aux besoins des internautes sans penser à mettre en place une application riche. Les sites web ressemblent de plus en plus aux applications de bureau et le navigateur du client se transforme rapidement en outil multifonction.

De nos jours, Internet devient de plus en plus accessible aux usagers. La navigation devient plus naturelle et aiguillée grâce à l'utilisation des RIA. Les applications riches occupent donc une place de plus en plus importante dans le web 2.0 en permettant à un plus grand nombre d'avoir accès à l'information de façon intuitive.

L'avenir des RIA

L'avenir des RIA est très prometteur. En effet de plus en plus d'application de bureau se voient remplacé par des sites web proposant les mêmes services. Il faut donc s'attendre à voir apparaitre un grand nombre de nouveautés. De plus l'arrivé de technologie jeune comme Silverlight ou Apollo permettront certainement voir naître de nouvelles fonctionnalités encore inconnues. Le futur nous promet donc, grâce à l'utilisation des RIA, de voir naître des sites web avec de fortes interactions utilisateur avec l'interface. La navigation d'aujourd'hui pourra être complètement différente dans les années à venir, elle pourra laisser place à un système plus intuitif que celui des menus utilisés de nos jours. Les applications riches prennent aussi du terrain et de la notoriété dans le domaine du mobile, les RMA (Rich Mobile Applications) se voient aujourd'hui en pleine évolution.

Conclusion

Avec l’apparition des RIA, l’Internet que nous connaissions a considérablement progressé. L’utilisateur est mieux guidé et sa navigation devient plus naturelle et intuitive. De plus en plus d’applications riches reprennent les fonctionnalités d’applications de bureau, nous nous dirigeons donc vers une centralisation des données de plus en plus grande et qui ne cessera pas de croître dans les années à venir.

Tags: , ,

Un commentaire pour “Principe de fonctionnement de base des RIA”

  1. sac louis vuitton dit :

    Well , the view of the passage is totally correct ,your details is really reasonable and you guy give us valuable informative post,I often surfing on this forum when I m free and I find there are so much good information we can learn in this forum!

Laisser un commentaire