insideIT.fr : le blog des architectes IT de SFEIR

Aller au contenu | Aller au menu | Aller à la recherche

samedi 8 mai 2010

Applications métiers riches avec Silverlight 4 et Visual Studio 2010

Avec Silverlight 4, vient le temps des applications riches d’entreprise. Le développeur a tout pour développer des applications fiables, évolutives, sécurisées et réactives. Identiques en tous points à des applications desktop ou web classiques, elles sont surtout beaucoup plus ergonomiques.

Métier et riche en même temps

Avec les performances d’internet aujourd’hui, plus rien ne justifie d’avoir des applications complètement portées par le client, base de données comprise. C’est encore plus vrai quand la collaboration est un critère important. On veut pouvoir profiter du potentiel et de la puissance des data-centers du cloud.

Il peut pourtant être intéressant de pouvoir continuer de travailler en mode déconnecté. Quoi de plus frustrant en effet que de perdre le fruit de son travail lorsque le train passe sous un tunnel. C’est une vision partagée depuis un moment par Google (Gears), Adobe (Air) et Microsoft : avoir les avantages d’internet sans les inconvénients.

Les RIA intéressaient jusqu’ici surtout les sites de vente ou de médias en ligne. La consolidation de Silverlight (sécurité, performance, composants, interaction) offre de nouvelles perspectives.

Mais en quoi Silverlight peut-il rejoindre les pré-requis spécifiques d’une application métier et au fond, qu’est-ce qui fait une bonne application métier ?

image

L’application CRM en SaaS de CAS® (www.cas.de)

Productivité

Le premier aspect d’une application métier est la productivité. Elle doit répondre exactement au besoin de l’utilisateur (sans fioritures mais aussi sans lacunes). Elle doit aussi être facile à maintenir et à faire évoluer. Exit donc les technologies de pointe, qu’un développeur sur dix seulement est capable de comprendre. Et la disponibilité devient primordiale elle aussi.

Avec la découverte de composants au runtime, l’IoC (Inversion de Contrôle) et l’injection de dépendance avec MEF (Managed Extensibility Framework), le modèle MVVM (idéal pour Silverlight), les patterns les plus reconnus sont adoptés pour le bonheur de la maintenabilité et de la réutilisabilité de vos applications. Avec le développement unifié pour toutes les plateformes (Common Runtime .Net), le partage des fichiers entre développeur et designer, le partage des services sur le cloud, la productivité du développement n’a jamais été aussi forte. Avec le mode déconnecté, la présence sur le pc ou le smartphone, le mode out-of-browser (OOB), la productivité de l’utilisateur est maximale.

Interaction

L’interaction est elle aussi un critère essentiel. Une application en plug-in, complètement isolée, c’est bien mais ça limite le service rendu. Dans Silverlight 4, l’interaction avec l’utilisateur et ses applicatifs est plus grande.

Il y a d’abord l’interaction avec l’utilisateur :

  • Le support du texte riche (RichTextArea).

  • L’API de Notification pour les alertes.

  • Le support complet du clavier en mode plein écran.

  • La gestion de la souris (molette, click droit).

  • Le presse-papier, enfin géré.

  • La géo-localisation qui permet de lier l’action à la situation de l’utilisateur.

  • La Webcam et le microphone supportés (indispensable pour les meetings).

  • Les nouveaux événements pour les transitions sur ItemsControl (BeforeLoaded, Loaded, Unloaded).

Il y a ensuite l’interaction avec le reste du système :

  • Le stockage avec l’accès aux répertoires du compte utilisateur où se trouvent les documents.

  • Le partage grâce à l’interaction avec les logiciels qui exposent une API COM sous Windows.

  • L’import avec le support du glisser-coller depuis une source extérieure, par exemple depuis l’explorateur, très pratique pour l’upload de fichier, l’ajout de pièces jointes.

  • La gestion de l’impression, complète et offrant un contrôle intégral des éléments à imprimer.

  • La confiance avec la sandbox et l’isolated storage.

  • Le mode Trusted pour aller plus loin dans l’interaction.

Il y a enfin l’interaction avec le reste du monde, mais en toute sécurité :

  • Les WCF RIA Services qui font la glue avec le tiers métier.

  • La validation des entrées.

  • La cryptographie et le support du SSL.

  • La prévention des risques de Cross Site Scripting (XSS).

  • Les fichiers de politique cross-domain pour l’extension des ressources.

  • Le temps réel (WCF RIA Services) qui apporte un vrai confort et une réactivité maximale.

Workflows

Dans les applications métier, les processus sont indispensables et souvent complexes. Une étape de workflow peut intervenir à tout moment pour l’utilisateur, nécessitant son intervention. Si son application métier n’est pas lancée, il peut être prévenu par mail, par exemple mais cela ne palie pas tout : finalement, on n’a pas les yeux rivés sur sa messagerie en permanence. Quoi de mieux alors, que d’avoir un statut affiché en bas de l’écran, comme pour l’arrivée de mail dans Outlook. L’utilisateur n’a plus qu’à cliquer sur le statut pour lancer l’application et valider sa phase de workflow.

Et sur mobile ?

Pouvoir travailler sur la même application depuis son poste fixe au bureau, continuer sur le smartphone dans le train, et revenir dessus sur son portable chez soi ou dans la chambre d’hôtel, voilà la vraie mobilité. Silverlight 4 est opérationnel sur windows mobile et avec le multitouch, on palie aisément l’absence de souris. Votre application vous suit partout, vous n’êtes plus jamais pris de court. C’est vraisemblablement l’avenir des applications métier.

Horizons

La technologie Silverlight se rapproche plus que jamais des technologies desktop classiques en termes de productivité (utilisateur et développeur), comme en termes de sécurité ou de fonctionnalités. On peut donc enfin réinventer toutes ces applications métiers que nous pratiquons au jour le jour, en beaucoup plus ergonomiques et pratiques. Les utilisateurs ne seront pas trop durs à convaincre et la maturité certaine de cette dernière version devrait rassurer les responsables informatiques. On peut s’attendre à une déferlante d’applications métier sous Silverlight dans les années qui viennent, notamment sur Codeplex ou le Showcase Silverlight (http://www.silverlight.net/showcase/).

lundi 5 avril 2010

GWT token Gestion de l'historique

La Gestion de l'historique et la possibilité d'avoir des pages 'bookmarkable' est un plus de GWT.
Cela est rendu possible grâce à une chaîne de caractères nomée token, placée après un # dans l'url.
Exemple :
    http://www.google.com/moderator/#15/e=8ea&t=8ea.41&f=8ea.3070

Le token représente un état du client, il n'est jamais envoyé au serveur et son changement ne provoque pas de rafraichissement de la page ni appel au serveur.

Pourquoi c'est important ? 

Les utilisateurs internautes ont acquis des reflexes "web" et s'attendent donc à :
- pouvoir faire précédent et suivant
- créer un favori pour revenir au même endroit (ou dans le même état) ultérieurement

Pourquoi c'est (encore plus) important ? 

Parce que google nous prépare une technique d'indexation des pages dynamiques

Google fait ses essais avec le Showcase de GWT.
http://www.google.fr/search?q=gwt+showcase+radio+button

Vous remarquerez le !Cw

En pratique, cela revient à fournir 2 versions de la page, une en html+Javascript pour l'utilisateur , qui veut que ça aille vite, et une html pour le robot d'indexation, qui veut lire du html.
C'est un énorme enjeu pour Google, qui a proposé un outil qui lui a 'masqué' une partie du Web.
Cette lacune est sur le point d'être comblée.

Que propose GWT ?

Les classes de base sont :
History auquel on peut ajouter un ValueChangeHandler<String> pour être prévenu des changements de token.
Hyperlink qui est le widget de base qui permet de déclencher un changement de token sur un clic.

GWT vous permet de construire votre token comme vous le souhaitez et cela reste assez bas niveau : il se contente de fournir un String java, à vous de le découper.
On remarque cependant que beaucoup adoptent les mêmes syntaxes proches des urls en utilisant les séparateurs / ? et &

Pour plus de détails : 

Frameworks
Il existe donc plusieurs frameworks qui tentent de faciliter la gestion de ce token :

Restful-gwt

http://code.google.com/p/restful-gwt/
Ce projet utilise les annotations JAX-RS afin d'extraire et découper le token.
@GET
@Path("hello/{name}")
public void helloWithIntegerParam(@PathParam("name") Integer myName) {
   
Window.alert("Hello "+(myName+1));
}

Exemple

gwt-mvc

 http://code.google.com/p/gwt-mvc/
Ce projet reprend les conventions JSP.
Le token est ainsi découpé: #ACTION?param1=value1&param2=value2
content.clearAndAdd(pocViewNumeric);
Integer modelAParamValue = Integer.valueOf(getUrlParam("modelA"));
updateModel(modelA, modelAParamValue, event);


Exemple

lundi 23 novembre 2009

Silverlight 4...Encore une version?


Si Silverlight 2 était sans doute une révolution sérieuse devant Silverlight 1.0 (une révolution qui se présente dans l’utilisation du XAML, code managé, Expression Blend…), la version 3 de Silverlight reste une étape timide mais logique qui montre une certaine maturité et stabilité de cette technologie, Silverlight 3 est donc la version clé, graphiquement (avec ces nombreux contrôles rajoutées et l’amélioration de Blend) et au niveau logique (surtout avec le framework .NET RIA Services) du coup on peut finalement développer des applications riches, dignes de ce nom, avec une productivité très élevée…Mais la concurrence et la volonté de répondre par «Yes we can» à certain fonctionnalités basique comme l’impression, la gestion des photos, la webcam, etc. pousse Microsoft à « retoucher » légèrement la définition d’un principe majeur de Silverlight : La sandbox. La sandbox est l’environnement d’exécution sécurisé et sous SL2 et SL3 pas question de toucher au matériels, un idéal qui devient réalité. Et selon Laurent Ellerbach, directeur marketing de la division plate-forme et écosystème: « Silverlight reste exécuté dans une sandbox, mais pourra au besoin requérir des droits utilisateurs plus élevés pour certaines de ses actions ». Avec ce relooking on peut donc répondre « Yes we can », notamment à la partie multimédia : photos numériques, webcam, clé USB, GPU… Mais pas avant mai ou juin 2010, date de la sortie officiel le de Silverlight 4 (voir toutes les nouveautés).

Silverlight 4 ne représente pas seulement une version très puissante avec de nombreuses nouvelles fonctionnalités mais un virage intéressant dans la philosophie de cette technologie.

Site officiel Silverlight 4

Demonstration Silverlight 4 PDC 2009

lundi 2 février 2009

JavaFX : Widgets pour applications professionnelles

Le petit dernier des candidats aux applications RIA, JavaFX, est sorti dépourvu des composants graphiques utiles et nécessaires au développement d'applications à destination des professionnels. Comme Sun semble occupé à mettre le paquet sur une prochaine release en début d'année, incorporant la partie "Mobile", il est peu probable d'en voir arriver tout de suite par le canal officiel.

Alors, quels sont les choix ? Et bien, on se retrouve un peu comme aux débuts de GWT : nous avons un socle technique, il ne reste qu'à retrousser ses manches. Oui mais voilà, tout le monde ne souhaite pas réinventer la roue.

Alors inspirons nous de ce qui a été largement fait pour GWT (par exemple) : le wrapping. Avec GWT il est relativement aisé de wrapper les librairies JavaScript (Ext, SmartClient...) pour pouvoir utiliser les composants existants et souvent de qualité. Avec JavaFX, il est permis de wrapper n'importe quel composant Swing étendant javax.swing.JComponent, autrement dit un nombre assez conséquent :-)

Certes la tâche peut paraitre conséquente - et elle l'est d'ailleurs - mais si une communauté prend autour de JavaFX, des librairies de ce type peuvent rapidement apparaître. Voici un tutorial illustrant comment wrapper la célèbre librairie JFreeChart, tant utilisée par ailleurs !

Lire la suite...

mardi 9 décembre 2008

JavaFX 1.0 : déception

Quand je parle de décevoir, cela concerne plus les personnes qui attendaient comme moi de la part de Sun un concurrent réel aux solutions actuelles pour développer des applications RIA à destination des entreprises. En effet, lorsque j'avais regardé un peu la preview sortie il y a quelques mois, on pouvait y trouver une liste de composants graphiques issus de Swing et permettant d'envisager (sic) une liste encore plus exhaustive à la sortie de la version 1.0 finale.

Déception

Et bien non :-( Et même pire : certains ont tout simplement disparu ! Citons par exemple les composants liés à la création de menus (MenuBar, Menu, ...).

Et toujours pas de composant de plus haut niveau (une DataGrid avec des fonctionnalités maintenant devenues classiques, comme le tri, le choix des colonnes, l'édition "inline"..., des composants de type Tree...). C'est comme si JavaFX était une pâle copie d'un produit sorti il y a déjà pas mal d'années que certains connaissent sans doute sous le nom de ... Flash ;-)

Mais le Flash d'il y a 4 ou 5 ans (voire plus)... On retrouve en effet des jolis effets visuels pour manipuler ronds et carrés à l'infini (génial non ?), des facilités pour jouer des vidéos, détecter les collisions entre objets... Bref, à mille lieues de ce qui est recherché lors d'un développement d'application RIA à destination des professionnels (sauf peut être ceux du jeu en ligne ;-) ).

Aussi, et cet avis n'engage toujours que moi, JavaFX - sauf s'il est rapidement épaulé par une batterie de composants réellement utiles au plus grand nombre - restera probablement aussi marginal que les applets le furent dans le cadre d'applications professionnelles... Une légère odeur de pétard mouillé plane.

Tout ça s'est fait au détriment de l'existant puisque Swing semble avoir été volé de ses ressources et condamné à plus ou moins court terme à ne plus évoluer... Etrange arbitrage lorsque le successeur ne couvre pas le spectre complet du prédécesseur.

Pour conclure, j'attendais (beaucoup) plus de JavaFX que ce qu'il offre à ce jour. En attendais-je trop ? Maintenant, Devoxx sera peut être le lieu d'une annonce contredisant mes propos, c'est ce que j'en souhaite.

mardi 25 novembre 2008

Rejoignez nous le 4 décembre !

SFEIR et l'association G-EFREI Technologies organisent une grande conférence le jeudi 4 décembre 2008 à l'EFREI.

Au programme, des présentations et des ateliers traitant de RIA, Cloud Computing et mobilité.

Parmi les intervenants, Didier Girard parlera des RIA via une présentation de GWT, Christian Fauré de Cloud Computing et Jieren Wu de mobilité avec Android.

L'évènement est gratuit et ouvert à tous, reservez dès maintenant votre place en remplissant le formulaire ci-dessous.

Pour davantage d'informations et savoir comment vous rendre à cet évènement, c'est par ici.


mercredi 9 juillet 2008

Microsoft...Voilà comment je vois le monde RIA!

Pas de code à taper ni de programme à exécuter dans ce billet promis;) ... Une recette de la ratatouille niçoise ?! ! :)..Non même pas mais un petit tour à Redmond pour comprendre la stratégie RIA (Rich Internet Application) de Microsoft et si la solution Silverlight répond sérieusement à cette stratégie.
Le marché des interfaces riches intéresse Microsoft, ce qui explique les mouvements du géant pour garantir ses parts de marché.Les besoins des utilisateurs se manifestent à titre d'exemple dans :
- Plus d'interactivité
- Ergonomie plus intéressante
- Gestions de contenus multimédias plus riches
- Optimiser la communication Client/serveur
Les secteurs et les applications les plus clientes de RIAs sont principalement :
- La gestion et la diffusion des contenus multimédias Vidéo/Image
- La formation à distance
- Le E-commerce
- La représentation graphique riche du reporting et des statistiques d'entreprise
- Toutes applications d'entreprise même les plus basiques (ex : des formulaires HTML...)
Le marché est donc prospère mais la concurrence est rude, avec au premier rang : Adobe qui équipe 95% des agences Web avec Photoshop, Illustrator ou encore Flex. Il suffit de rappeler que les outils Expresion de Microsoft sont encore loin derrière ces homologues d'Adobe...Mais Microsoft n'a pas joué toutes ses cartes et qui peuvent faire bouger la balance, la vidéo HD (exemple de projet en cours: NBC pour la retransmission des J.O) et les applications d'entreprise (des technologies DotNet qui cohabitent parfaitement avec les infrastructures DotNet. Donc pas d'apprentissage d'un nouveau langage ni de surprises d'intégration).
Il est difficile de parler de la stratégie RIA sans parler de "Live Mesh" qui représente l'objectif Microsoft pour déployer la même application sur plusieurs environnements différents (PC fixe, portable, mobile, Mac, ...) Dans ce contexte, il semble que Silverlight constitue la plateforme de développement idéale puisqu'un runtime Silverlight est en cours de réalisation sur l'ensemble de ces équipements.
Le document suivant préparé dans le cadre de l'évènement Happy Hour organisé par SFEIR présenté les grandes lignes de Silverlight ici.
La solution Silverlight est la réponse concrète de la stratégie RIA de Microsoft, il ne reste qu'à renforçer la vague d'évangélisation et à multiplier les tentations de séduction du marché... Si vous avez des grains sel à rajouter n'hésitez pas.

mercredi 18 juin 2008

TheServerSide Java Symposium - jour 1

Le TSSJS Europe se tient à Prague cette année, du 18 au 20 juin. Les thèmes majeurs proposés sont assez alléchants, jugez-en:

  • les frameworks web (spring, struts, JSF)
  • les nouveaux langages de l'écosystème java (groovy/grails, scala, jruby)
  • les nouvelles versions de spécs (JEE 6, EJB 3.1, JPA 2.0)
  • concurrence, performance, scalabilité
  • SOA

A part quelques événements communs (keynotes, etc) il y a en général 3 sessions simultanées, ce qui rend parfois le choix cruel...

Le premier keynote "Supporting RIA space" est délivré par Stephan Janssen, le fondateur et président du BeJUG, fondateur de JavaPolis et de parleys.com, un site qui met en ligne des conférences filmées avec les slides synchronisées. C'est ce site qui lui servira de support pour tester différentes technologies RIA dont il nous fera part...

Premier point délicat: définir une application RIA... Pour la petite histoire le mot a parait-il été inventé par Macromedia, et donc absorbé par Adobe. Mais ça ne nous avance pas. Un application RIA c'est une application Riche (mais pas tout à fait comme une application desktop), et qui utilise Internet (mais pas forcément tout le temps)...

Bref l'éventail est grand, RIA encore mal cerné, et les technologies qui permettent de faire du RIA innombrables. Stephan en a retenu quelques unes et a expérimenté le portage du site parleys.com sur ces technos.

  1. le site original, HTML, rien à dire
  2. refactoring en DHTML/JavaScript avec Scriptaculous. Conclusion: il faut un doctorat en JavaScript, et la compatibilité cross-platform est un enfer... (quelle surprise!)
  3. GWT: développement et debugging agréable en Java avec les outils Java, support du bouton back, et "99% cross platform" ( un seul if/then dans tout le code). Un seul point noir est relevé par Stephan: le site n'est pas indexé correctement par Google!
  4. Flex: le résultat est extrêmement semblable à GWT, avec un peu plus d'"eye candy", transitions animées et choses similaires. Techno mature, mais l'indexation Google est inexistante, sauf à utiliser des artifices (redirections)
  5. JavaFX: résultat sexy style Flex, avec en plus la possibilité d'utiliser le Java existant. Pas de support Mac...

Au final le site actuel est la version Flex, avec intégration AIR, mais on note bien que GWT n'a reçu que des éloges...

Deuxième conf, là il faut choisir... JSF? qui utilise encore JSF... JPA/Hibernate? déjà fait... Je reste donc dans la salle principale pour entendre Costin Leau (SpringSource) parler de "Spring Dynamic Modules".

On le sait, Java ne gère pas les versions des classes ou le remplacement dynamique, et il est impossible à deux versions d'une même classe de coexister. OSGi fournit une solution, en définissant une notion de "module" ou "bundle", qui est simplement un ensemble de classes, auquel s'appliquent les notions de

  • cycle de vie
  • "class space"
  • règles de visibilité
  • versionnage

Un service au sens OSGi c'est simplement une classe, un POJO qui exporte des méthodes au travers de la visibilité. Le reste est caché de l'extérieur, ce qui permet à plusieurs versions de cohabiter sans conflit. Spring 2.5 sera OSGi-compliant et intègrera la notion de bundle. On pourra également réagir aux événements qui affectent le cycle de vie des services (création, suppression, etc). Les dépendences OSGi sont localisées dans le contexte Spring, et non dans le code.

Au final cela semble très prometteur, reste à voir dans quelle mesure cela s'appliquera à nos développements. Annoncé également, la sortie du futur S2AP, SpringSource Application Platform... Pas plus de détails là-dessus.

Deuxième session de la matinée: monitoring, management sur la plateforme Java 6, par J-F Denise, responsable JSR 262 chez Sun.

Beaucoup de rappels sur JMX et les MBeans, l'agent JMX, l'agent remote... Depuis Java 5, l'outil JConsole est fourni avec le JDK et permet d'interroger une JVM qui tourne, y compris des MBeans. C'est une bonne chose de le rappeler, car le JDK est fourni avec beaucoup d'outils trop peu connus, car pour beaucoup l'IDE est la seule interface qui existe avec Java.

Implémenter un MBean est simple (juste une interface), mais peut poser des problèmes: si le MBean retourne un type composite sous forme d'une classe maison, il faut que le client JMX dispose de cette classe aussi dans son classpath !! Pour relaxer cette contrainte, Sun introduit les MXBeans, qui permettent de faire cela, et via un mécanisme interne, transforment les objets complexes sérialisés en des classes standard qui peuvent être lues par le client sans modification de son classpath.

Autres outils fournis avec le JDK 6: jps, jmap, jhat, jinfo... Et un nouvel outil qui ne fait pas à proprement parler du JDK: jvisualvm. C'est un outil intégré et extensible de troubleshooting, fonctionant avec des plugins, et qui regroupe les fonctionnalités éclatées dans divers outils... La RC1 est disponible depuis le 6 mai.

Avant de manger, un keynote par Nati Shalom de GigaSpaces "Getting ready for the cloud". Il s'agit en fait de 40 minutes de marketing pendant lesquelles le message est martelé sur tous les tons: vos applications ne sont pas scalables, parce que bâties sur des silos. La solution: remplacer les silos par un "cloud", une plateforme qui virtualise les 3 tiers habituels (middleware virtualization) et qui est la seule à pouvoir assurer le "scaling on-demand". Et comme par hasard, GigaSpaces a un framework qui le permet. OK, le message est passé.

Déjeuner avec un lance-pierre, pas le temps de digérer on attaque l'après-midi. Eh non, après avoir erré dans les coursives, je me rends compte que la conf qui m'intéressait (Comparing Dependancy Frameworks) est annulée... J'assiste sans conviction à un case study "Using JSR-272 and Spring for a Monetary System".

Ensuite, encore un dilemme: Holly Cummins, spécialiste des outils de diagnostic chez IBM (au style capillaire improbable), présente "Java Performance Tooling", mais je choisis "Simplifying JEE Development with Grails" par Guillaume Laforge, project manager de Groovy.

L'idée de Grails c'est d'appliquer les principes de productivité de Ruby et Groovy, tout en s'appuyant sur les bibliothèques et infrastructures existantes (Java, Spring, Hibernate, servlet containers, etc.). Par exemple, Grails génère un WAR, qui peut être déployé tel quel sur un serveur d'applications. Grails utilise GORM, un ORM bâti sur Hibernate, WebFlow, domain-specific languages, GSP (un équivalent de JSP), supporte des plugins, et nécessite aussi peu de fichiers de configuration que possible grâce à des conventions de nommage.

La démo est impressionnante, en quelques lignes et en live Guillaume crée deux classes, les relations entre elles, les tables correspondantes, les mappings relationnels, les finders, les controleurs, l'interface web... et redéploie sans redémarrer quoi que ce soit! Est-ce que ce serait Ruby on rails, avec la scalabilité et la puissance en plus??

Conf suivante, je choisis une prés de GlassFish, par Antonio Goncalves (Paris JUG). Pas grand chose à retenir, Glassfish est prêt pour la production, scalable, clusterisable, avec une belle interface d'administration (bon tous les gouts sont dans la nature). C'est l'implémentation de référence pour Java EE 5 et 6 et il est open source.

Plus intéressant, mais on ne s'étendra pas dessus, ce qui est annoncé pour la v3: un noyau ultra léger et ultra rapide (HK2: Hundred Kbyte Kernel), modulaire, avec des modules web, EJB, JRuby, PHP, JavaScript, etc. et le support OSGi! Bref, on reviendra.

Ouf, c'est fini, une bière, remise des prix du concours GigaSpaces/OpenSpaces... je discute avec le gagnant, un Brésilien qui a réalisé un projet pour la distribution des surplus alimentaires au Brésil (avec GWT en front!), l'occasion de pratiquer mon portugais :)

Demain la suite...

mercredi 21 mai 2008

Les RIA en question

ria-venn-diagram_small On peut se demander souvent si ce sont les exigences grandissantes des utilisateurs qui dictent les évolutions des technologies de l'information. On peut se dire qu'à l'inverse ces mêmes évolutions rendent les utilisateurs plus exigeants en leur offrant toujours plus de possibilités et une meilleur qualité d'interface.

Il y a là comme une addiction toujours plus forte à la nouveauté pour elle même, des effets de mode comme un peu partout, une précarité, une volatilité comme nulle part ailleurs.

Le terme de RIA lui même existe depuis longtemps maintenant mais fait plus que jamais l'objet d'un débat acharné. Car au fond, qu'est-ce qu'une RIA.

Adobe en réclame la paternité depuis le départ, cherchant sans doute à créer dans l'esprit des gens l'amalgame avec sa technologie Flash/Flex/AIR (joli anagramme). Microsoft répond de son côté en jouant sur les mots, par sa "Rich Interactive Application", tentant de donner un coup de vieux à son ennemi de toujours et mise tout sur Silverlight/WPF. Pas mal d'autres acteurs tentent de tirer les marrons du feu avec plus ou moins de bonheur.

Ce terme de RIA fait sourire ou rêver. Les sceptiques croient qu'on essaye encore de leur vendre un vieux concept habillé de neuf, comme le boucher indélicat qui fait de la "retape". D'autres, y voient un horizon d'opportunités technologiques et de satisfaction client mêlés. Autant dire qu'en moyenne les premiers sont des utilisateurs, les seconds des programmeurs. Mais au fond que sont réellement les RIA ? Chacun y va de sa définition, de son exemple imparable, de son expérience propre mais aussi de ses rêves. Et finalement personne n'est vraiment d'accord sur le terme.

Pourtant la définition d'un mot ou d'une expression est quelque chose de primordial. Elle induit son utilisation. Bien entendu, elle peut évoluer dans le temps. Elle va s'enrichir, gagner ou perdre en sens. Mais elle forme la pensée, offre le concept. Et là, la technologie a apporté avec sa fébrilité un fait nouveau. Les mots ont avec elle un sens mouvant, instable qui va au gré des grands acteurs du marché. Pas d'académicien ici pour nous rappeler les règles d'usage. Les définitions ne sont pas dans des dictionnaires mais dans des brochures. Les mots sont des marques. Les sigles des bannières. Il faut qu'on dise "la RIA" c'est untel. Le fantasme du monopole n'est jamais loin. Wikipedia noie le poisson dans un flot de références et de liens, le tout plutôt orienté. Les articles sur le sujet sont pléthore et tous signés. La propagande est en marche. L'information y perd un peu.

Finalement, c'est un peu comme pour le terme Ajax, on en faisait bien avant de le voir apparaître. Mais quand le terme est sorti, chacun a voulu le prendre pour lui. C'est un peu aussi comme les standards. Chacun fait pression sur le standard pour le faire pencher vers soi. Tout le monde tourne autour, tente de faire croire qu'il en est le dépositaire et au final, personne ne le suit vraiment. Les standards ont pour objectif l'unité, la concordance. Ils servent surtout d'excuses à des guerres interminables.

En tout état de cause, le débat n'est pas prêt d'être clos. Espérons juste qu'il ne reste pas cloisonné dans une guerre marketing où le gagnant d'un jour est celui qui a le plus investi et pas dans la recherche mais dans la pub. Et gageons qu'il ne rende pas toujours plus flou un concept déjà pas très clair pour la plurpart d'entre nous.

vendredi 11 avril 2008

GWT in the AIR

Logo Adobe AIRJe viens de découvrir l'existence d'un projet GWT qui s'annonce intéressant : GWT in the AIR ou le mariage de GWT avec AIR.
Pour rappel, GWT est un framework open source qui permet le développement d'applications AJAX avec le langage de programmation Java. Adobe AIR est un environnement d'exécution sous licence Creative Commons qui permet de déployer localement des applications internet riches.
La combinaison de ces deux ingrédients semble détonnante, non ?

Une autre démo de la combinaison GWT + AIR : From GWT to Air in 1'

lundi 25 février 2008

Sortie d'Adobe AIR 1.0 finale

Logo Adobe AIRC'est aujourd'hui, lundi 25 février 2008, qu'Adobe sort la version finale de AIR (Adobe Internet Runtime), librairie multi plateforme pour applications RIA (Rich Internet Application). On remarquera l'anagramme entre les deux abréviations.
Air permet le développement d'applications RIA, un intermédiaire entre les applications "clients lourds" et les applications "web". Ces applications sont accessibles directement depuis le bureau de l'utilisateur.
On peut utiliser les fonctionnalités de AIR en passant par Flex (framework open source Adobe facilitant la création d'application web), mais également par Flash ou Ajax.
Toutes les informations, ainsi que des démonstrations d'applications utilisant AIR, sont disponibles ici : http://www.adobe.com/products/air
Le "Adobe Air Tour 2008" passera par Paris le 2 avril. Ce sera une bonne occasion de voir ce que vaut cette technologie.
Les informations sur cet événement sont là : http://onair.adobe.com/schedule/cities/paris.php
Toute l'équipe d'insideIT.fr y sera. Nous vous ferons un compte rendu de cet événement.

Ci-dessous un exemple d'application AIR : la plateforme eBay :

image

 

Update : A noter que l'équipe EXTJS a upgradé son framework pour le rendre compatible avec AIR. Une démonstration est disponible en ligne.

Article présentant la démonstration de EXT JS dans AIR

Démonstration (nécessite le runtime AIR)

image

lundi 11 février 2008

[TechDays 2008 - J1] Présentation de VOLTA

2nde présentation du symposium DNG de la journée, par Eric Meyer et en anglais.

meyer largeEric a beaucoup insisté sur le coût d'entrée à toute nouvelle technologie. Le but, lors de la création de VOLTA, était clairement de le réduire à 0, ce qui augmente les chances d'adoption. Avec humour, distance et clarté il a démontré la simplicité de mise en oeuvre de la chose. L'idée maîtresse étant de prendre AJAX comme : 1 tiers application + refactoring. Il ne faut surtout pas revoir toute la conception du logiciel en fonction. Volta est là pour créer une application RIA. Le split en N-tiers est automatique après sélection de l'option "end to end profiling" dans les propriétés du projet. Le mot d'ordre étant "No code change". meyerVolta

Et question asynchrone, c'est beaucoup plus simple que le pattern async et l'ordre de retour des appels successifs est plus simple à contrôler.

Un outil à voir au passage: le "Microsoft Services Trace Viewer". Il donne une vision en diagramme de séquences des requêtes et réponses, ce qui aide bien pour le split.

samedi 9 février 2008

3 questions à Didier Girard sur les nouvelles IHM

Les outils sont-ils là, les technologies sont-elles matures ? Quel va être le rythme d'adoption ? Quelle va être la technologie qui va s'imposer ?