Introduction à Flex/BlazeDS
Par Romain MALLARD, jeudi 28 janvier 2010 à 22:43 :: General :: #127 :: rss
(cet article a été modifié suite à des remarques de lecteurs, toutes les sources d'information sont désormais précisées et aucun contenu ne fait référence à blog.xebia.fr)
Petit rappel sur Flex
Voici un extrait de Wikipedia en guise d'introduction sur Flex :
Flex est une solution de développement créée par Macromedia en 2004 puis reprise par Adobe en 2006, permettant de créer et de déployer des applications Internet riches (RIA) multi plates-formes grâce à la technologie Flash et particulièrement à son lecteur. Son modèle de programmation fait appel à MXML (basé sur XML) et ActionScript 3.0, reposant sur ECMAScript.
La technologie Flex produit un fichier .swf intégré dans une page html. La richesse de l'interface graphique ainsi générée a le désavantage comme toutes applets de générer ici un fichier .swf sur le serveur qui est un peu long à télécharger dans le poste client lors du chargement de la page.
Les applets java fonctionnent sur le même principe de téléchargement sur le poste client cependant les applications Flex sont facilement déployables à travers le player Flash car celui-ci est installé sur la plupart des postes de travail.
Les applications Flex peuvent accéder à des données situé coté serveur en utilisant le composant HTTPService ou le composant WebService :
- Le Composant HTTPService permet d'envoyer des requètes HTTP et de recevoir la réponse en XML ou d'un autre type (JSON, HTML, ...). Ce composant est similaire au composant XMLHttpRequest disponible en Ajax
- Le composant WebService permet d'invoquer des Web Services basé sur SOAP
Flex et BlazeDS
Fin 2007 Adobe a mis en open source une partie de sa solution LiveCycle Data Services, cette solution open source s'appelle BlazeDS.
BlazeDS est basé sur un serveur java gérant le Java remoting et le messaging HTTP, ce qui permet de se connecter à des données distantes et de faire du push en temps réel dans le Runtime Flex/AIR des applications RIA (Rich Internet applications).
Par défaut les applications Flex, s'exécutant sur le poste client (dans le navigateur ou AIR), communiquent avec le serveur en lui envoyant des requêtes en REST ou SOAP.
BlaseDS permet d'ouvrir un canal de communication entre l'application Flex et le serveur, c'est à dire que le serveur peut de sa propre initiative envoyer des messages au client (push).
BlazeDS est proposé en 2 versions :
- distribution standard avec un fichier war.
- distribution "Turkney" qui contient une version prête à être testé, elle contient un Tomcat 6.0.14 avec un war de BlazeDS déja déployé, des exemples d'applications et le SDK Flex 3.
L'architecture de BlazeDS
BlazeDS propose une architecture ouverte aux adaptateurs permettant de s'intégrer facilement avec JMS, EJB ou des composants ColdFusion ainsi que d'autres sources de données.
(les boites grises sont les fonctionnalités présentes dans LiveCycle Data Services et non disponible dans BlazeDS)
BlazeDS propose des fonctionnalités en plus par rapport au fonctionnement d'une application Flex avec un serveur sans composant spécifique :
- un service Remoting (invocation de méthodes sur des objets déployés sur le serveur)
- un service Message (publication/souscription de messages permettant de faire du Push ainsi que faire des applications collaboratives)
- un service Proxy (permet de faire des requètes sur un autre domaine que celui sur lequel l'application a été téléchargée et d'une manière sécurisée et controlée)
Intégration de BlazeDS et Spring
BlazeDS permet une intégration entre Flex et Spring. Pour rappel le framework Spring est un conteneur "léger" implémentant le pattern Inversion of Control (IoC) et qui se charge de gérer le cycle de vie des objets (création d'objets et mise en relation d'objets).
Un client Flex peut accéder à des objets java distant et ces objets sont par défaut instanciés par BlazeDS sur le serveur.
Lorsque BlazeDS est configuré pour fonctionner avec Spring, il peut laisser au container Spring le soin d'instancier les beans.
L'idée est de fournir à BlazeDS des instances d'objets déja initialisées par l'injection de dépendance.
Cela consiste à :
- Avoir configurer le contexte Spring dans l'application (web.xml)
- Ecrire une classe factory Spring implémentant FlexFactory afin de faire le lien entre BlazeDS et Spring (voir)
- Enregistrer la factory Spring dans le fichier "services-config.xml" (WEB-INF)
- Enregistrer le bean (service) dans le fichier applicationContext.xml (WEB-INF) qui spécifie les beans Spring et leur relation
- Spécifier une destination dans le fichier "remoting-config.xml" avec comme source le bean Id (service) défini plus haut
Un tutorial est disponible sur developpez.com :
http://fponchel.developpez.com/tutoriel/flex3/integration/blazeds-spring/
Maven avec Flex
Un plugin Maven (2.3.2) est disponible permettant de gérer les applications Flex.
Il permet la compilation et le déploiement d'applications/librairies Flex (par le biais du SDK).
Voici l'ensemble des goals maven disponibles pour ce plugin :
- flex:makeswc qui permet de construire un artifact SWC (librairy)
- flex:makeswf qui permet de construire un artifact SWF (application)
- flex:installswc qui permet d'installer un artifact SWC dans son repository local Maven
- flex:installswf qui permet d'installer un artifact SWF dans son repository local Maven
- flex:deployswc qui permet de déployer un artifact SWC vers son repository distant Maven
- flex:deployswf qui permet de déployer un artifact SWF vers son repository distant Maven
- flex:asdoc qui permet de construire la documentation des API
- flex:asdoc-aggregate qui permet de construire la documentation des API pour les projets multi-modules
- flex:eclipse qui permet de générer les fichier FlexBuild/Eclipse
Sources d'information
Wikipedia Flex
Adobe : Flex and Java
Adobe : Using BlazeDS with Spring
Maven Flex Plugin
Schéma BlazeDS issu de blog.kapit.fr
Et pour finir quelques liens intéressants
LiveCycle DataServices (LCDS) ou BlazeDS ?
BlazeDS Developer Guide en ligne ou en pdf
BlazeDS and LCDS Feature difference
Download Flex 3.5 SDK
Download Flex Builder 3 Professional (60 day trial)
Download Flex Builder 3 Professional Eclipse plug-in (60 day trial)
Download BlazeDS
Intégration de Flex 3, BlazeDS et Spring sous Flex Builder 3

Commentaires
1. Le mercredi 5 mai 2010 à 03:30, par supra shoes
2. Le jeudi 17 juin 2010 à 11:22, par Othmen
3. Le jeudi 5 août 2010 à 08:38, par uggs outlet
4. Le jeudi 2 septembre 2010 à 05:04, par df
5. Le lundi 6 septembre 2010 à 08:19, par nfl jerseys wholesale
Ajouter un commentaire