Sylog Consulting
Making you more competitive
HOME
Internet et haute technologie
WWW.SYLOG.COM

Pour assurer notre développement et répondre à la demande croissante de nos clients, partenaires et prospects, nous publions régulièrement des offres d´emploi et recevons également des offres spontanées.

Candidatures spontanées :

Si vous êtes diplômé en informatique et au bénéfice de au minimum 2 ans d´expérience à nous soumettre votre candidature. En fonction des opportunités, nous avons la possibilité de considérer votre dossier et de retenir ce dernier pour des projets à durée déterminée ou indéterminée.

Nous cherchons toujours des talents ...

Nous vous remercions de soumettre vos dossiers usuels à l´adresse e-mail jobs@sylog.com

PARLEZ-VOUS AJAX ?

Un article signé Jérôme KLOTZ, Chief technology Officer,
Division Business Process Automation







IntroductionTable of content

Vous avez peut-être entendu parler du dernier terme à la mode dans le petit monde du développement informatique en technologie web, à savoir le terme AJAX, et vous vous demandez de quoi il s'agit. L'objectif de ce petit article est de vous fournir les informations requises pour vous permettre de vous forger votre opinion sur ce qui se cache derrière ce nouvel acronyme.

DéfinitionTable of content

AJAX = Javascript et XML asynchrones (en anglais: Asynchronous JAvascript And Xml). Il s'agit d'un ensemble de technologies déjà existantes, réunies sous cette bannière, et dont le but est d'offrir des applications Web plus riches depuis un navigateur, avec une interface utilisateur plus ergonomique que les interfaces en HTML. AJAX est indépendant d'une plateforme ou d'un langage de programmation. On ne peut donc pas dire qu'AJAX représente une technologie, il représente plutôt un regroupement de technologies existantes, qui cohabitent pour former une architecture.

Ces technologies sont, outre Javascript et XML, CSS (pour une présentation découplée des données), httprequest (pour le transfert d'informations avec le serveur) et DOM (pour manipuler les données XML). Certaines architectures incorporent aussi la technologie Flash d'Adobe. Toutes ces technologies reposent sur des standards largement adoptés, ce qui offre une très bonne portabilité des développements qui suivent ces recommandations. Sans qu'ils aient été nommés ainsi, les principes initiaux de cette architecture existent déjà depuis près de dix ans, cependant le terme AJAX n'est apparu qu'en février 2005 (voir liens en fin d'article).

Les applications développées avec ce jeu de technologies sont communément considérées comme étant des Rich Internet Applications (RIA). C'est notamment avec ces technologies qu'il est prévu que les applications hébergées (en mode ASP) fasse leur retour en force dans un proche avenir.

DescriptionTable of content

La principale différence par rapport aux applications Web dynamiques traditionnelles est que le modèle classique d'envoi de formulaire, suivi de l'attente du résultat et de son affichage, est désormais brisé. Les requêtes sont envoyées au serveur web qui renvoie uniquement les informations demandées sans que l'ensemble de la page soit transmis ou réaffiché. Il en résulte un gain de performance et une réactivité qui n'existait plus dans les applications web (exception faite des applications développées sous la forme d'applets ou d'ActiveX). Les applications résultantes possèdent un look and feel qui se rapproche du look and feel d'applications client/serveur traditionnelles, applications qui permettent un accès en temps réel aux données et une interaction plus riche avec l'utilisateur. De cela découle que le navigateur web, qui se cantonnait jusqu'alors au rôle de "simple" composant chargé d'afficher ce que le serveur lui fournit, joue désormais un rôle plus actif. En effet, il est maintenant chargé du rendu d'éléments graphiques plus élaborés qu'auparavant (arborescences, listes, boîtes de dialogue, raccourcis clavier, clic-droit de la souris, drag and drop, multifenêtrage, etc.).

Les outilsTable of content

Une architecture AJAX doit être mise en place en tenant compte de la technologie que vous utilisez déjà côté serveur, à savoir PHP, Java, .NET, etc..  Il est actuellement complexe de se retrouver dans la jungle des frameworks AJAX. Certains sont des nouveaux frameworks, certains sont des frameworks existants qui ont été "Ajaxifiés". En outre, certains frameworks sont entièrement indépendants de la plateforme (J2EE, .Net, etc.) alors que d'autres ne le sont pas. Il est indéniable que nous allons assister à une concentration autour de certains acteurs majeurs, et il nous semble capital de ne pas s'engager sur des frameworks dont l'avenir est incertain. Si vos développements intègrent plusieurs langages différents, il peut être utile de considérer plutôt des frameworks purement Javascript, dans le cas contraire, il peut être plus intéressant de se focaliser sur des frameworks optimisés pour votre langage de développement.

Quelques frameworksTable of content

L'on compte d'ores et déjà plus de 70 frameworks AJAX et il est actuellement difficile de faire un choix en fonction de critères objectifs. Nous avons listé ci-dessous quelques uns des frameworks AJAX qui bénéficient d'une certaine popularité actuellement. Nous attirons cependant l'attention sur le fait que ce type d'information est très volatile et ce qui est vrai aujourd'hui ne le sera peut-être pas demain. 

Frameworks 100% JavascriptTable of content

DOJO (http://dojotoolkit.org/): il s'agit d'un ensemble de bibliothèques Javascript Open Source qui offrent une grande variété de fonctionnalités étendues dans le navigateur web. DOJO peut s'utiliser à priori avec n'importe quelle technologie serveur qui est capable de générer des pages web dynamiquement.

General Interface (http://www.tibco.com/software/business_optimization/gi_resource_center.jsp) : il s'agit d'un framework commercial de la société Tibco qui fournit des composants web d'interface utilisateur, indépendant de la plateforme et du langage. Attention cependant, le modèle de licence de ce produit peut en faire une solution coûteuse.  

Rialto (http://rialto.application-servers.com/wiki/): il s'agit d'une bibliothèque de composants graphiques Javascript Open Source. Ces composants peuvent être utilisés en PHP, Java ou .NET, à l'aide de sous-projets open source spécifiques qui permettent une intégration avec ces différents langages. Rialto permet notamment d'étendre les possibilités de Java Struts ou JSF.  

Frameworks pour infrastructure JavaTable of content

De nombreux frameworks AJAX existent pour la plateforme Java.

ZK (http://zk1.sourceforge.net/): il s'agit d'un framework Open Source destiné à faciliter le développement d'applications web avec une interface utilisateur riche. Ce framework concerne aussi bien le serveur que le client, et son objectif est de cacher la complexité du Javascript au programmeur. Est destiné en priorité à interagir avec des développements Java. ZK a comme objectifs à moyen terme de supporter des navigateurs ne supportant pas Javascript (tels que sur des téléphones mobiles).

MyFaces (http://www.myfaces.org/) : il s'agit d'un framework Open Source destiné à implémenter JSF, qui est un framwork qui concrétise le paradigme MVC. A la différence de JSF classique, et de Struts bien connu des développeurse Java, MyFaces intègre un certain nombre de composants d'interface utilisateur. On peut donc considérer MyFaces comme une extension du framework JSF.

DWR (http://getahead.ltd.uk): il s'agit d'un framework Javascript développé spécialement pour la plateforme Java.

Frameworks pour infrastructure .NETTable of content

Il existe plus d'une douzaine de frameworks AJAX pour la plateforme .NET, mais tous n'ont pas un degré de maturité suffisant pour le développeur professionnel.

Atlas (http://atlas.asp.net) : il s'agit d'un framework, gratuit, édité par Microsoft destiné à ajouter des fonctionnalités AJAX aux développements ASP.NET (pour le framework .NET 2.0).  Il s'agit d'une bibliothèque de code client (Javascript) qui interagit avec des composants serveur .NET. Bien que Atlas ait été conçu pour ASP.NET, il est en pratique possible d'utiliser des sous-ensembles d'Atlas avec d'autres langages. Cependant, cette approche comporte des risques quant à l'évolutivité dans le futur.

MagicAjax (http://www.magicajax.net): il s'agit d'un framework pour .NET, d'usage très intuitif, qui a la particularité d'"Ajaxifier" une application ASP.NET classique après coup, sans devoir retoucher la logique de l'application.

BorfWorX (http://www.borgworx.net/): il s'agit d'un framework commercial, issu d'un projet Open Source interrompu. L'avenir de ce framework semble incertain, surtout depuis la sortie du framework de Microsoft. Cela permet de relever, dans le choix d'un framework, l'importance de la pérennité de l'éditeur, et cet exemple montre que même les projets Open Source peuvent être interrompus et leur avenir est à la merci de l'éventuel repreneur.

Autres frameworksTable of content

Zimbra (http://www.zimbra.com/): il s'agit d'un framework Open Source (et commercial), client et serveur destiné à développer des applications de collaboration (calendrier, messagerie).

Exemples d'utilisationTable of content

Pour vous faire une opinion des possibilités offertes par AJAX; rien de tel que de tester des sites développés avec cette architecture. Voici quelques exemples de sites illustrant AJAX:

Il existe une quantité de portails web qui intègrent AJAX. En voici quelques uns:

Les plusTable of content

  • Bonne portabilité (pour autant que le navigateur utilisé supporte les technologies sous-jacentes, et que le framework soit explicitement développé dans une optique de portabilité) .
  • L'interaction avec l'utilisateur est grandement enrichie. il suffit d'utiliser l'une ou l'autre des applications AJAX pour se rendre compte de la différence. De manière générale les temps de réponse sont, ou du moins apparaissent, plus rapides.
  • Une application RIA peut améliorer l'acceptation des utilisateur quant à l'adoption de solutions hébergées. En effet, grâce à AJAX, l'utilisateur a de moins en moins l'impression d'utiliser une application à distance. AJAX est considéré comme une des pierres angulaires de ce qu'il est convenu d'appeler le Web 2.0.

Les moinsTable of content

  • Absence de maturité des outils. La pléthore d'outils fait que le choix à long terme du bon framework demeure aléatoire.
  • Coûts de développement plus élevés. L'ajout d'une interactivité plus grande nécessite un effort de développement accru, malgré l'apport des frameworks qui sont sensés cacher la complexité. Une application complexe risque d'être très difficile à développer et surtout, à maintenir, à un effort raisonnable.
  • Tests plus délicats. Les scénarios d'utilisation sont plus nombreux est plus variés. Un robot de test qui simule simplement un trafic réseau peut s'avérer insuffisant pour effectuer des tests complets. Selon les frameworks utilisés le fonctionnement doit être testé sur toutes les plates-formes cibles afin de s'assurer de la comptabilité.
  • Un URL (correspondant en général à une page web précise) ne correspondra pas nécessairement à un état particulier de l'application web sous AJAX. De même, l'usage du bouton "back" du navigateur peut s'avérer non fonctionnel ou peut même perturber l'utilisation de l'application AJAX. Cela dépendra des options prises pour réaliser l'application.
  • L'interactivité réelle dépend du temps de latence du réseau, qui devient un élément critique.

L'avenirTable of content

Comme souvent, les grands éditeurs ne veulent pas laisser le marché décider tout seul de l'émergence de standards. Ainsi, en février 2006, IBM a pris la décision de fédérer les efforts autour de l'initiative Open AJAX et a rallié de nombreux éditeurs (Borland, BEA, Oracle, Novell), à l'exception de Microsoft, et éditeurs de frameworks (Zimbra, DOJO). Cette initiative sera hébergée au sein de la fondation Eclipse qui était elle aussi une initiative d'IBM pour fédérer les environnements de développements. L'IDE Eclipse sera d'ailleurs un des ateliers de développement  de prédilection pour servir de socle aux frameworks qui adhéreront à cette initiative. A priori, faire le choix d'un des frameworks soutenus par l'initiative Open AJAX devrait vous assurer une certaine pérennité de ce socle technique.

Parmi les évolutions possibles d'AJAX, on peut prévoir l'apparition de clients en mode déconnecté, ce qui sera rendu possible par la mise à disposition de technologies de persistance en Javascript.

Notre avisTable of content

  • Focalisez vos recherches sur les outils supportés par votre langage ou votre IDE de référence.
  • Evitez une trop grande dépendance, les produits et standards ne sont pas encore mûrs, et une consolidation naturelle aura lieu dans les mois à venir. Laissez le marché mûrir tout en restant à l'écoute des tendances.
  • Si votre application doit être disponible sur Internet, ne sous-estimez pas la phase de test, notamment la compatibilité avec les différents navigateurs. Dans un Intranet où le navigateur est probablement standardisé, on peut limiter les tests à ce dernier.
  • AJAX est encore une architecture "de luxe", à laquelle on peut songer actuellement si la plupart des autres besoins architecturaux et métiers sont couverts, et si l'interaction avec votre utilisateur (User Experience) est un facteur clé de résussite de vos développements. D'autres architectures, bien que moins visibles, peuvent apporter à votre entreprise un bénéfice bien plus considérable en termes de fonctionnalités. Nous pensons notamment aux architectures SOA qui offrent des possibilité d'échanges inter-applications ouvrant des perspectives fonctionnelles sans égal.

Pour en savoir plusTable of content

Nous vous conseillons de démarrer vos recherches à partir des pages AJAX de l'encyclopédie en ligne WikiPedia:  en.wikipedia.org/wiki/AJAX et   fr.wikipedia.org/wiki/AJAX. Elles constituent de bons points de départ pour enrichir vos connaissances sur AJAX.

La première référence au terme AJAX, sur le site de Jesse James Garrett: www.adaptivepath.com/publications/essays/archives/000385.php


Introduction  Définition  Description  Les outils  Quelques frameworks  Exemples d'utilisation  Les plus  Les moins  L'avenir  Notre avis  Quelques liens





Jérôme KLOTZ,
Ing. dipl. EPFL
©Sylog® Consulting SA,
Division Business Process Automation,
mars 2006.


Comment assurer la continuité de vos activités informatiques ?

Jeudi 17 janvier 2008
08h30-12h00
Château de Prangins

Lors de ce séminaire, nous vous avons proposé le parcours suivant:

  • Une approche progressive d’un plan de continuité d’activité (PCA ou DRP)
  • Les enjeux en termes de gouvernance d’entreprise
  • Le témoignage d’une entreprise active dans la gestion financière

Téléchargez l'invitation

Téléchargez les présentations