01Business
Actualités gestion et logiciel informatique professionnel
Offre et recherche Emploi informatique internet
Salon conférences inofrmatique IT ebusiness 01
Le Cloud Computing
Vidéos reportage entreprise acteur informatique
Retrouvez tous les services 01Net dédiés aux professionnels !
Télécharger logiciels Pro et progiciels
Livres blancs e-commerce informatique et nouvelles technologies
Retrouvez l'ensemble des dossiers de la rédaction 01net Entreprise
Les synthèses des bonnes pratiques sur les sujets IT du moment

Applications composites : les autres clients du web 2.0

Quelle que soit la technologie, les applications composites exploitent un modèle de programmation événementiel et des échanges asynchrones pour garantir des temps de réponse corrects.

On l'a vu, les données et services des sites web ne sont plus limités aux interfaces HTML classiques. ' Il est désormais possible d'assembler les API* et les flux XML au sein d'applications composites [ou mash-up* en anglais, Ndlr], exactement comme on le ferait avec des composants logiciels traditionnels ', explique Jérémy Chatard, directeur technique de Breek, une SSII spécialiste du web 2.0. Ce concept consiste à agréger directement au sein d'une interface graphique utilisateur des données et services hétérogènes provenant à la fois de l'entreprise et de fournisseurs tiers. On peut ainsi enrichir un outil de GRC avec le service de téléphonie de Skype, le service de cartographie Google Map, un flux RSS fournissant des renseignements sur la santé financière d'un prospect et sur l'état du stock d'un partenaire.
Toute l'intégration s'effectue côté client par de simples appels vers les API distantes, sans recourir à un serveur d'intégration ou à une infrastructure de portail. C'est l'application composite qui joue ces deux rôles à la fois. Une application composite est donc le client idéal des architectures orientées services (SOA), car elle préserve un haut niveau de découplage et gomme progressivement la frontière entre les systèmes d'information pour se concentrer sur le processus.

RIA et RDA

Deux types de technologies permettent ce développement : les technologies de client riche Internet, ou RIA* (Rich Internet Application), telles qu'Ajax*, XUL et Flex ; et celles s'exécutant sur le poste de travail, ou RDA* (Rich Desktop Application), telles qu'Eclipse RCP, Sun NetBeans RCP, IBM Workplace, et les smart clients de Microsoft.
Ces technologies s'appuient toutes sur un modèle de programmation événementiel et une architecture asynchrone. Le modèle événementiel permet de piloter chaque composant de l'interface graphique indépendamment les uns des autres en fonction des actions de l'utilisateur. Il est donc idéal pour créer des interfaces utilisateurs ergonomiques. L'architecture asynchrone est, quant à elle, essentielle pour garantir des temps de réponse rapides. Elle associe, en effet, à chaque composant graphique un ou plusieurs services web ou flux XML sous-jacents et les interroge séparément pour éviter de bloquer l'exécution de toute l'application si l'un d'entre eux est défaillant.

Ajax reproduit le modèle client-serveur

C'est sur ces principes que repose l'architecture Ajax. Contrairement aux autres technologies qui nécessitent un runtime propriétaire, Ajax reproduit les concepts du client-serveur traditionnel au sein d'un navigateur en s'appuyant sur des technologies standards. Chaque composant graphique est fondé sur des feuilles de styles (CSS) et des éléments XHTML manipulés par du code ECMAScript via le DOM (Document Object Model). L'association entre la couche graphique du composant et le service web ou le flux XML sous-jacent s'effectue via l'objet ECMAScript XMLHttp-Request*. Celui-ci permet au navigateur d'échanger des flux XML avec un serveur en empruntant HTTP (ou d'autres protocoles). Malheureusement, bien qu'ils soient très respectueux des standards, les frameworks Ajax sont encore jeunes. Et ils ne compensent pas les lacunes des navigateurs : pas de base de données locale, aucune couche de sécurité pour simplifier l'authentification et la gestion des droits des utilisateurs, etc. C'est pourquoi certaines entreprises et éditeurs de logiciels préfèrent se tourner vers une technologie RDA telle qu'Eclipse RCP pour assembler leur application composite. Eclipse RCP est un socle d'exécution qui s'installe sur le PC de chaque utilisateur au-dessus d'une machine virtuelle Java (JVM). Ce runtime contient les contrôles graphiques utilisés pour construire l'application, un cache de données, un moteur de synchronisation pour gérer le mode déconnecté, et tout le nécessaire pour dialoguer avec les services distants en utilisant des protocoles Internet standards. ' Plus performante et disposant d'une plus large couverture fonctionnelle qu'un client composite Ajax, cette technologie est incontournable lorsque l'application doit piloter des ressources localisées sur le poste client [périphériques, fichiers, etc., Ndlr], qu'elle fait un usage intensif de la 2D/3D temps réel, ou qu'elle manipule de gros volumes de données [traitement d'images, vidéos, etc., Ndlr] ', explique Sébastien Brunot, architecte chez Octo Technology.
* Lire à savoir

à savoir

Ajax : Asynchronous JavaScript And XML. Architecture qui reproduit dans un navigateur le modèle de programmation des applications client-serveur traditionnelles.
API : Application Programming Inter face. Ensemble de méthodes publiques et documentées qui permettent à un autre programme d'interagir avec le programme exposant une API.
Mash-up : application composite. Logiciel développé par assemblage de plusieurs services en ligne existants.
Gadget : équivalent d'un portlet. Composant de base permettant d'encapsuler une application pour l'afficher sur un bureau en ligne.
Rest : Representational State Transfer. Architecture de service web s'appuyant sur l'infrastructure existante (HTTP 1.1, XML etc.) pour permettre à deux services de dialoguer en mode asynchrone.
RDA : Rich Desktop Application. Client riche s'exécutant au-dessus d'un runtime propriétaire (Eclipse RCP par exemple).
RIA : Rich Internet Application. Client riche s'exécutant au sein d'un navigateur soit nativement (Ajax), soit à l'aide d'un plug-in (Flex, Flash, OpenLaszlo).
XMLHttpRequest : mécanisme ECMAScript permettant au navigateur d'échanger des fichiers XML avec un serveur.

Avis d'expert : Didier Girard (Improve) : ' le navigateur, conteneur d'applications composites '

' Les navigateurs doivent évoluer pour gérer l'exécution d'applications composites standards. Il faut pour cela qu'ils proposent des API d'intégration et de communication entre applications. Mais ils doivent également intégrer de nouvelles fonctions : glisser-déplacer depuis le système d'exploitation vers le navigateur, stockage d'informations sur le disque, gestion du contexte applicatif, intégration dun workflow applicatif, gestion de la sécurité étendue par la prise en charge des habilitations et des autorisations, cross-site scripting en mode Rest, etc. Si les navigateurs ne prennent pas en charge ces fonctions rapidement, des surcouches comme Eclipse RCP, NetBeans Platform ou encore Microsoft CAB, par exemple, les proposeront. Les navigateurs ne seront plus alors que de banals composants affichant du HTML au sein de ces frameworks de nouvelle génération. '

envoyer
par mail
imprimer
l'article
@01Business_fr sur
Nos partenaires