SlideShare una empresa de Scribd logo
1 de 84
Rich Internet Application
Introduction


               Tugdual Grall (tugdual@gmail.com)
                    http://www.tugdualgrall.com
                                Decembre 2009

                                                   1
Introduction




               2
Introduction
 Qui suis-je ?




                 2
Introduction
 Qui suis-je ?
   Responsable Produit et Business chez
   www.exoplatform.org




                                          2
Introduction
 Qui suis-je ?
   Responsable Produit et Business chez
   www.exoplatform.org
   Co-fondateur: www.nantesjug.org




                                          2
Introduction
 Qui suis-je ?
   Responsable Produit et Business chez
   www.exoplatform.org
   Co-fondateur: www.nantesjug.org
 Les Buzzwords associés à RIA ...




                                          2
Introduction
 Qui suis-je ?
   Responsable Produit et Business chez
   www.exoplatform.org
   Co-fondateur: www.nantesjug.org
 Les Buzzwords associés à RIA ...
 Let’s Dive Into RIA ...



                                          2
Quelques exemples:




                     3
Quelques exemples:




                     3
Quelques exemples:




                     3
Quelques exemples:




                     3
Quelques exemples:




                     3
RIA: Objectifs
 Amélioration de l'expérience utilisateur
   Meilleure ergonomie, performance, interactivité
   Rafraîchissement partiel des “écrans”
   Asynchrone: l’utilisateur n’attend pas




                                                     4
Technologies
AJAX
Adobe Flex/AIR
Java Applications
  Applets/WebStart
  JavaFX
Microsoft Silverlight



                        5
AJAX
Asyncrhonous Javascript And XML




                                  6
AJAX
AJAX: Une nouvelle approche pour les applications
Webs
Février 2005: Jesse James Garrett, Adaptive Path
  Ajax: A New Approach to Web Applications




                                                    7
Définition
 AJAX n’est pas un “standard” mais un ensemble de
 technologies:
   HTML / XHTML & CSS pour la présentation
   JavaScript & DOM pour manipuler le contenu
   XML & XMLHttpRequest pour communiquer avec le
   serveur




                                                    8
Differences...




                 9
Web “Classique”




                  10
Web avec AJAX




                11
Web “Classique”
Applications Web “sans” AJAX:
  Le client -navigateur- envoie une requête HTTP
  Le serveur renvoie une page HTML “complète”
  Pour échanger des données toute la page est
  rafraîchie




                                                   12
Applications AJAX
Applications AJAX:
  Le navigateur envoie une premiere requête HTTP
  pour charger la page et autres documents:
    Images, CSS, Javascript
  Envoi de requêtes HTTP asynchrones pour récupérer
  les données en fonction des besoins et événements
  utilisateur



                                                      13
Quelques Caractéristiques
Applications AJAX:
  diminution de la quantité d’information échangées
  entre le client et navigateur
  Utilisation intensive de JavaScript
    Utilisation de l’object XMLHttpRequest
    Attention à la compatibilité entre navigateurs



                                                      14
AJAX: Partout!!!
 Widget/Module Environments
    Mac OS X
    Vista
    Netvibes, iGoogle, MyYahoo!
 Game Consoles
    Wii (Opera)
 Mobile
    Opera Mobile and Opera Mini
    Symbian S60
    Pocket IE
    Motorola Q

                                  15
Ajax “in action”
 Création d’un object XMLHttpRequest
 if (window.ActiveXObject)
 {
     // Microsoft Way
     httpRequest = new
 ActiveXObject("Microsoft.XMLHTTP");
 }
 else if (window.XMLHttpRequest)
 {
     // Others...
     httpRequest = new XMLHttpRequest();
 }


                                           16
Ajax “in action”
    Appel du serveur



httpRequest.open("GET", "./getEmployeeList?deptno=10", true);

httpRequest.onreadystatechange =
     function () { processRequest(); } ;

httpRequest.send(null);




                                                                17
Ajax “in action”
        Récuperation de la réponse
function processRequest()
{
    if (httpRequest.readyState == 4)
    {
        if(httpRequest.status == 200)
        {
            // process data as XML
            httpRequest.responseXML;

               // or Text
               alert(httpRequest.responseText);
        }
        else
        {
               alert("Error loading pagen"+ httpRequest.status +":"+ httpRequest.statusText);
          }
    }
}




                                                                                                 18
Démonstration
AJAX: Les Basiques



                     19
XMLHttpRequest: Détails
 onreadystatechange : Listener d'événements de la
 requêtes HTTP; utiliser une fonction pour le “callback”
 readyState : statut de l'objet (Requête).
 responseText : Réponse sous forme de texte.
 responseXML : Réponse sous forme d'objet DOM.
 status : code numérique de réponse du serveur HTTP
 statusText : message associé au code de réponse.
 Les code possibles pour le statut de l'objet sont :
   0 = non initialisé
   1 = ouverture. La méthode open() a été appelée avec succès
   2 = envoyé. La méthode send() a été appelée avec succès
   3 = en train de recevoir. Des données sont en train d'être transférées, mais
   le transfert n'est pas terminé
   4 = terminé. Les données sont chargées.
                                                                                  20
AJAX: X comme XML
Echange de données, plutôt que HTML pour laisser
l’application gérer la présentation
Utilisation de la méthode responseXML pour
récupérer un Document XML
Utilisation du “Parser XML” et APIs associées pour
manipuler les données depuis l’application
  var items = req.responseXML.getElementsByTagName("item");




                                                              21
Démonstration
 AJAX: XML



                22
Vue Generale


           HTTP

  Client              Applications
  “AJAX”          Java, PHP, Ruby, .net, ...




                                               23
JSON: Alternative à XML
    XML est “coûteux” particulièrement dans le navigateur
       Une alternative: JSON: JavaScript Object Navigation
    JSON: un format d’échange/sérialisation d’objets
                                                  JSON
                 XML
                                  {
<rss version="2.0">
                                      "Version":"2.0",
 <channel>
                                      "Channel": {
   <item>
                                          "Items": [{
    <link>http://tug.com</link>
                                              "Link":"http://tug.com",
    <title>Demo Item</title>
                                              "Title":"Demo Item"
   </item>
                                           }]
 </channel>
                                        }
</rss>
                                  }
                                                                         24
JSON in Action
         Client                     Serveur
JSON est inclus dans le    Sérialisation des objects
moteur JavaScript des      par les applications
navigateur
                             Parseurs: Java, C, PHP,
                             Ruby, Perl, ...



                    JSON

                                                       25
Démonstration
 AJAX: JSON



                26
Je dois donc devenir un expert
     Javascript / HTML?




                                 27
Je dois donc devenir un expert
     Javascript / HTML?

    Non pas vraiment...



                                 27
Outils?
 Nombreux frameworks JavaScript, intégrés ou non aux
 plateformes serveurs
  Dojo                       Google Web Toolkit (GWT)

  Prototype                  Direct Web Remoting (DWR)

  Scriptaculous              JavaServer Faces

  JQuery                       RichFaces, IceFaces, Trinidad

  Yahoo! UI (YUI)            Echo3



                                                           28
Google Web Toolkit
Les concepts:
  Développer en Java
  Compiler / Générer une application JavaScript




                                                  29
GWT: Développement
GWT Designer
Outils Java
  Eclipse
  Netbeans
  IDEA


               GWT Designer

                              30
Démonstration
Google Web Toolkit
 Dojo, JQuery, ...

                     31
Ajax: Bonnes Pratiques
JavaScript est un vrai langage, et très puissant
  dynamique, gestion d’exception, ...
Ne pas réinventer la roue
  Prendre un framework existant
Tester votre application dans les navigateurs ciblés




                                                       32
Java (Client)
Applet / JavaFX
Java WebStart



                  33
RIA & Java
Java sur le Client
  Basé sur JavaSE, JavaME
  Utilisation de Swing et des fonctionnalités Java
Déploiment/Execution:
  Applets
  Java WebStart



                                                     34
Applets
Une application Java embarquée dans une page HTML
  S’execute au sein du Navigateur




                                                    35
Java WebStart
Technologie de déploiement des applications Java
Utilise JNLP (Java Network Launching Protocol / JSR-56)
Java WebStart supporte:
  Mode Déconnecté
  Code Signing
  Isolation (Sandboxing)
  Mise à jour des applications/Versionning
  Installation des composants à la demande                36
JavaFX
Langage de script permettant la création d’interfaces
riches en tirant partie de la plateforme Java
Demos en ligne: http://jfx.wikia.com/wiki/Demos




                                                        37
Adobe
Flash / Flex / Air




                     38
Flex / AIR : Définition
 Framework Open Source pour RIA
 Utilisation du plugin Adobe Flash pour executer les
 applications
   Supporté par toutes les plateformes... sur lesquelles le
   plugin Flash existe
 AIR: Adobe Integrated Runtime
   Possibilité d’utiliser les applications Flash/Flex sur l’OS


                                                                 39
Flex: Composants
Tire partie de JavaEE
MXML (Macromedia XML)
  Déclaration de l’interface graphique
Création de applications en assemblant des
composants graphiques
  Boutons, Listes, Layouts, Effets, ...
Librairie très riche


                                             40
Flex: Runtime
  Flex Builder IDE                       Browser
      Flex SDK                         Flash Player
  MXML     ActionScript
  Flex Class Library            Data       .swf        Data


                                       Web Server
      Compile
                                 XML              Adobe Life Cycle
                                JSON               Data Services
                          SOAP Web Services       J2EE App Server
         .swf
                            Existing Application Infrastructure


                                                                     41
Flex Builder
 Environnement de Dev Intégré (IDE)
   Edition des MXML, ActionScript, ...
 Basé sur Eclipse
   Tire partie des plugins




                                         42
SilverLight
RIA Selon Microsoft




                      43
Silverlight
  Applications Riches selon Microsoft
    Utilisation d’un plugin (comme Flash)
    Gestion des animations, composants, données, ...




                                                       44
Silverlight : Composants
 Tire Partie de Microsoft .Net
 XAML (Extensible Application Markup Language)
   Déclaration de l’interface graphique
 Création de applications en assemblant des
 composants graphiques
   Boutons, Listes, Layouts, Effets, ...



                                                 45
Les outils
 Utilisation des Outils Microsoft pour le Développement
   Visual Studio 2008
     Orienté Développeurs d’Entreprise
   Expression Studio
     Création Graphique




                                                          46
Conclusion
    ...




             47
RIA: Attention...
 Dépendances sur fonctions “avancées” ou plugins:
   Javascript, Flash, Java, ...
 L’utilisateur doit s’habituer aux applications:
   Navigation, rafraîchissement partiel
 L’accessibilité est encore peu intégrée à ces solutions
 Gestion difficile -impossible- du bouton “Back”



                                                           48
RIA: Attention
 Tout est “dynamique”
   Difficile pour les moteurs de recherche d’indexer les
   “pages”
   Impossible de passer des URLs/Bookmarks en
   gardant un état
 Ce n’est pas necessairement un “vrai” problème car il
 s’agit ici d’applications et non pas de site.



                                                          49
Autres solutions?
  Il existe beaucoup d’autres solutions:
    OpenLazlo : équivalent à Flex avec possibilité de
    générer des applications HTML
    XUL : XML User Interface Language, création
    d’application riches dans Mozzilla
    Grails, RubyOnRails ...
    Curl, WaveMaker, ZK, Telosys, Wicket, ...


                                                        50
Comment choisir ?
Choix difficile... à étudier au cas par cas
  Besoins “réels”
  Indépendance du serveur ?
  Type de framework: visuel, data access, ...
  Outillage, Documentation disponibles, Support
  Communauté
Tenir compte des standards...si possible
  notamment l’arrivée de HTML 5                   51
Résumé
                             Browser     Desktop   Portabilité   Prise en Main

      AJAX                         +++     ---       +++              +*
       Flex                        ++       -         ++             +++
        Air                         -      ++         ++             +++
   Silverlight                     ++       -          +             +++
     JavaFX                         +      +         +++               -
       Java                         +      +         +++             +++

*: Depend de la solution choisie
                                                                                 52
Exemple d’analyse
Xebia RIA Contest
  Flex / Silverlight / GWT / Echo3 / JavaFX




                                              53
Web 2.0
Introduction




                             Tugdual Grall
               http://www.tugdualgrall.com
                                             54
Blogs




        55
Blogs




        55
Blogs




        55
Blogs




        55
Wikis




        56
Wikis




        56
Wikis




        56
Wikis




        56
Réseaux Sociaux




                  57
Réseaux Sociaux




                  57
Réseaux Sociaux




                  57
Social Bookmarking




                     58
Social Rating




                59
Social Rating




                59
Social Rating




                59
Mashups




          60
Mashups




          61
Autres...




            62
Software As A Service (SaaS)




                               63
Rich Internet Application
Introduction




                              Tugdual Grall
                http://www.tugdualgrall.com
                                              64

Más contenido relacionado

La actualidad más candente

JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesIppon
 
Jquery
JqueryJquery
Jquerykrymo
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011Normandy JUG
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockagedavrous
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en productionJulien Dubois
 
Nouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale IpponNouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale IpponJulien Dubois
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence APIThibault Cuvillier
 

La actualidad más candente (20)

JPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à AchillesJPA avec Cassandra, grâce à Achilles
JPA avec Cassandra, grâce à Achilles
 
Gwt
GwtGwt
Gwt
 
jQuery
jQueryjQuery
jQuery
 
Jquery
JqueryJquery
Jquery
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
Maven
MavenMaven
Maven
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockage
 
Introduction à ajax
Introduction à ajaxIntroduction à ajax
Introduction à ajax
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Nouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale IpponNouveau look pour une nouvelle vie, version spéciale Ippon
Nouveau look pour une nouvelle vie, version spéciale Ippon
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence API
 

Destacado

Détectez les commerciaux (...qui savent vendre !)
Détectez les commerciaux (...qui savent vendre !)Détectez les commerciaux (...qui savent vendre !)
Détectez les commerciaux (...qui savent vendre !)David BERNARD
 
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...Search Foresight
 
Integrer le Social Local Mobile dans sa stratégie web
Integrer le Social Local Mobile dans sa stratégie webIntegrer le Social Local Mobile dans sa stratégie web
Integrer le Social Local Mobile dans sa stratégie webAdviso Stratégie Internet
 
Dematerialisation et offre en bibliotheque
Dematerialisation et offre en bibliothequeDematerialisation et offre en bibliotheque
Dematerialisation et offre en bibliothequeXavier Galaup
 
Equipement techonologique en france - ARCEP - Décembre 2011
Equipement techonologique en france - ARCEP - Décembre 2011Equipement techonologique en france - ARCEP - Décembre 2011
Equipement techonologique en france - ARCEP - Décembre 2011Romain Fonnier
 
Enseignement quizz conjugaison
Enseignement quizz conjugaisonEnseignement quizz conjugaison
Enseignement quizz conjugaisonMSblog
 
4 ir be-dimensionnement_interface_radio_2012_v3
4 ir be-dimensionnement_interface_radio_2012_v34 ir be-dimensionnement_interface_radio_2012_v3
4 ir be-dimensionnement_interface_radio_2012_v3Gilles Samba
 
Roses, orties et fraises - jardin-paysan de production pédagogique
Roses, orties et fraises - jardin-paysan de production pédagogique Roses, orties et fraises - jardin-paysan de production pédagogique
Roses, orties et fraises - jardin-paysan de production pédagogique Mike Durable
 
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...Avoiding the seven deadly sins of IBM Connections and how to plot the route ...
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...Stuart McIntyre
 
Le gois noirmoutier
Le gois noirmoutierLe gois noirmoutier
Le gois noirmoutierdenis
 
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead Spot
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead SpotImpact of Fertilization Programs and Preventive Fungicides on Spring Dead Spot
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead SpotNC State Turf Pathology
 
Elements of-a-plot-diagram-with-3-little-pigs
Elements of-a-plot-diagram-with-3-little-pigsElements of-a-plot-diagram-with-3-little-pigs
Elements of-a-plot-diagram-with-3-little-pigsHank Maine
 
Catalogue Idwatt 2016
Catalogue Idwatt 2016Catalogue Idwatt 2016
Catalogue Idwatt 2016SOREA
 
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-201518 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015Emmanuelle Morlock
 
Présentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesurePrésentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesureMarketing and Sales MEODEX
 
Le référencement pour les developpeurs
Le référencement pour les developpeursLe référencement pour les developpeurs
Le référencement pour les developpeursrelevant_traffic_france
 
Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011Giorgio Anselmetti
 

Destacado (20)

Détectez les commerciaux (...qui savent vendre !)
Détectez les commerciaux (...qui savent vendre !)Détectez les commerciaux (...qui savent vendre !)
Détectez les commerciaux (...qui savent vendre !)
 
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...
Synodiance > SEO et Contenu - 5 points clés qui changent - Ecommerce-Live - 2...
 
Integrer le Social Local Mobile dans sa stratégie web
Integrer le Social Local Mobile dans sa stratégie webIntegrer le Social Local Mobile dans sa stratégie web
Integrer le Social Local Mobile dans sa stratégie web
 
Dematerialisation et offre en bibliotheque
Dematerialisation et offre en bibliothequeDematerialisation et offre en bibliotheque
Dematerialisation et offre en bibliotheque
 
Equipement techonologique en france - ARCEP - Décembre 2011
Equipement techonologique en france - ARCEP - Décembre 2011Equipement techonologique en france - ARCEP - Décembre 2011
Equipement techonologique en france - ARCEP - Décembre 2011
 
Enseignement quizz conjugaison
Enseignement quizz conjugaisonEnseignement quizz conjugaison
Enseignement quizz conjugaison
 
4 ir be-dimensionnement_interface_radio_2012_v3
4 ir be-dimensionnement_interface_radio_2012_v34 ir be-dimensionnement_interface_radio_2012_v3
4 ir be-dimensionnement_interface_radio_2012_v3
 
J2 me
J2 meJ2 me
J2 me
 
Roses, orties et fraises - jardin-paysan de production pédagogique
Roses, orties et fraises - jardin-paysan de production pédagogique Roses, orties et fraises - jardin-paysan de production pédagogique
Roses, orties et fraises - jardin-paysan de production pédagogique
 
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...Avoiding the seven deadly sins of IBM Connections and how to plot the route ...
Avoiding the seven deadly sins of IBM Connections and how to plot the route ...
 
MAtlas: A case study on Milan mobility
MAtlas: A case study on Milan mobilityMAtlas: A case study on Milan mobility
MAtlas: A case study on Milan mobility
 
Isw4 fiche produit
Isw4 fiche produitIsw4 fiche produit
Isw4 fiche produit
 
Le gois noirmoutier
Le gois noirmoutierLe gois noirmoutier
Le gois noirmoutier
 
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead Spot
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead SpotImpact of Fertilization Programs and Preventive Fungicides on Spring Dead Spot
Impact of Fertilization Programs and Preventive Fungicides on Spring Dead Spot
 
Elements of-a-plot-diagram-with-3-little-pigs
Elements of-a-plot-diagram-with-3-little-pigsElements of-a-plot-diagram-with-3-little-pigs
Elements of-a-plot-diagram-with-3-little-pigs
 
Catalogue Idwatt 2016
Catalogue Idwatt 2016Catalogue Idwatt 2016
Catalogue Idwatt 2016
 
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-201518 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
 
Présentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesurePrésentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesure
 
Le référencement pour les developpeurs
Le référencement pour les developpeursLe référencement pour les developpeurs
Le référencement pour les developpeurs
 
Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011
 

Similar a Introduction aux RIA (Rich Internet Applications)

Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2ppRYMAA
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursHoracio Gonzalez
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIDjamel Zouaoui
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...CERTyou Formation
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024YounesOuladSayad1
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologiesSébastien Letélié
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & TechniquesRachid NID SAID
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude Coulombe
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Claude Coulombe
 

Similar a Introduction aux RIA (Rich Internet Applications) (20)

Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2pp
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SI
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologies
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & Techniques
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 

Más de Tugdual Grall

Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
 
Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkTugdual Grall
 
Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Tugdual Grall
 
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Tugdual Grall
 
Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Tugdual Grall
 
Introduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopIntroduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopTugdual Grall
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Tugdual Grall
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglotTugdual Grall
 
Drop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignDrop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignTugdual Grall
 
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Tugdual Grall
 
Some cool features of MongoDB
Some cool features of MongoDBSome cool features of MongoDB
Some cool features of MongoDBTugdual Grall
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB ApplicationTugdual Grall
 
Opensourceday 2014-iot
Opensourceday 2014-iotOpensourceday 2014-iot
Opensourceday 2014-iotTugdual Grall
 
Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseTugdual Grall
 
Introduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseIntroduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseTugdual Grall
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Tugdual Grall
 
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0Tugdual Grall
 

Más de Tugdual Grall (20)

Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
 
Introduction to Streaming with Apache Flink
Introduction to Streaming with Apache FlinkIntroduction to Streaming with Apache Flink
Introduction to Streaming with Apache Flink
 
Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1Fast Cars, Big Data - How Streaming Can Help Formula 1
Fast Cars, Big Data - How Streaming Can Help Formula 1
 
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
Lambda Architecture: The Best Way to Build Scalable and Reliable Applications!
 
Big Data Journey
Big Data JourneyBig Data Journey
Big Data Journey
 
Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015Proud to be Polyglot - Riviera Dev 2015
Proud to be Polyglot - Riviera Dev 2015
 
Introduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi WorkshopIntroduction to NoSQL with MongoDB - SQLi Workshop
Introduction to NoSQL with MongoDB - SQLi Workshop
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
 
MongoDB and Hadoop
MongoDB and HadoopMongoDB and Hadoop
MongoDB and Hadoop
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
Drop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema DesignDrop your table ! MongoDB Schema Design
Drop your table ! MongoDB Schema Design
 
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
Devoxx 2014 : Atelier MongoDB - Decouverte de MongoDB 2.6
 
Some cool features of MongoDB
Some cool features of MongoDBSome cool features of MongoDB
Some cool features of MongoDB
 
Building Your First MongoDB Application
Building Your First MongoDB ApplicationBuilding Your First MongoDB Application
Building Your First MongoDB Application
 
Opensourceday 2014-iot
Opensourceday 2014-iotOpensourceday 2014-iot
Opensourceday 2014-iot
 
Neotys conference
Neotys conferenceNeotys conference
Neotys conference
 
Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with Couchbase
 
Introduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseIntroduction to NoSQL with Couchbase
Introduction to NoSQL with Couchbase
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?
 
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
NoSQL Matters 2013 - Introduction to Map Reduce with Couchbase 2.0
 

Introduction aux RIA (Rich Internet Applications)

  • 1. Rich Internet Application Introduction Tugdual Grall (tugdual@gmail.com) http://www.tugdualgrall.com Decembre 2009 1
  • 4. Introduction Qui suis-je ? Responsable Produit et Business chez www.exoplatform.org 2
  • 5. Introduction Qui suis-je ? Responsable Produit et Business chez www.exoplatform.org Co-fondateur: www.nantesjug.org 2
  • 6. Introduction Qui suis-je ? Responsable Produit et Business chez www.exoplatform.org Co-fondateur: www.nantesjug.org Les Buzzwords associés à RIA ... 2
  • 7. Introduction Qui suis-je ? Responsable Produit et Business chez www.exoplatform.org Co-fondateur: www.nantesjug.org Les Buzzwords associés à RIA ... Let’s Dive Into RIA ... 2
  • 13. RIA: Objectifs Amélioration de l'expérience utilisateur Meilleure ergonomie, performance, interactivité Rafraîchissement partiel des “écrans” Asynchrone: l’utilisateur n’attend pas 4
  • 14. Technologies AJAX Adobe Flex/AIR Java Applications Applets/WebStart JavaFX Microsoft Silverlight 5
  • 16. AJAX AJAX: Une nouvelle approche pour les applications Webs Février 2005: Jesse James Garrett, Adaptive Path Ajax: A New Approach to Web Applications 7
  • 17. Définition AJAX n’est pas un “standard” mais un ensemble de technologies: HTML / XHTML & CSS pour la présentation JavaScript & DOM pour manipuler le contenu XML & XMLHttpRequest pour communiquer avec le serveur 8
  • 21. Web “Classique” Applications Web “sans” AJAX: Le client -navigateur- envoie une requête HTTP Le serveur renvoie une page HTML “complète” Pour échanger des données toute la page est rafraîchie 12
  • 22. Applications AJAX Applications AJAX: Le navigateur envoie une premiere requête HTTP pour charger la page et autres documents: Images, CSS, Javascript Envoi de requêtes HTTP asynchrones pour récupérer les données en fonction des besoins et événements utilisateur 13
  • 23. Quelques Caractéristiques Applications AJAX: diminution de la quantité d’information échangées entre le client et navigateur Utilisation intensive de JavaScript Utilisation de l’object XMLHttpRequest Attention à la compatibilité entre navigateurs 14
  • 24. AJAX: Partout!!! Widget/Module Environments Mac OS X Vista Netvibes, iGoogle, MyYahoo! Game Consoles Wii (Opera) Mobile Opera Mobile and Opera Mini Symbian S60 Pocket IE Motorola Q 15
  • 25. Ajax “in action” Création d’un object XMLHttpRequest if (window.ActiveXObject) { // Microsoft Way httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { // Others... httpRequest = new XMLHttpRequest(); } 16
  • 26. Ajax “in action” Appel du serveur httpRequest.open("GET", "./getEmployeeList?deptno=10", true); httpRequest.onreadystatechange = function () { processRequest(); } ; httpRequest.send(null); 17
  • 27. Ajax “in action” Récuperation de la réponse function processRequest() { if (httpRequest.readyState == 4) { if(httpRequest.status == 200) { // process data as XML httpRequest.responseXML; // or Text alert(httpRequest.responseText); } else { alert("Error loading pagen"+ httpRequest.status +":"+ httpRequest.statusText); } } } 18
  • 29. XMLHttpRequest: Détails onreadystatechange : Listener d'événements de la requêtes HTTP; utiliser une fonction pour le “callback” readyState : statut de l'objet (Requête). responseText : Réponse sous forme de texte. responseXML : Réponse sous forme d'objet DOM. status : code numérique de réponse du serveur HTTP statusText : message associé au code de réponse. Les code possibles pour le statut de l'objet sont : 0 = non initialisé 1 = ouverture. La méthode open() a été appelée avec succès 2 = envoyé. La méthode send() a été appelée avec succès 3 = en train de recevoir. Des données sont en train d'être transférées, mais le transfert n'est pas terminé 4 = terminé. Les données sont chargées. 20
  • 30. AJAX: X comme XML Echange de données, plutôt que HTML pour laisser l’application gérer la présentation Utilisation de la méthode responseXML pour récupérer un Document XML Utilisation du “Parser XML” et APIs associées pour manipuler les données depuis l’application var items = req.responseXML.getElementsByTagName("item"); 21
  • 32. Vue Generale HTTP Client Applications “AJAX” Java, PHP, Ruby, .net, ... 23
  • 33. JSON: Alternative à XML XML est “coûteux” particulièrement dans le navigateur Une alternative: JSON: JavaScript Object Navigation JSON: un format d’échange/sérialisation d’objets JSON XML { <rss version="2.0"> "Version":"2.0", <channel> "Channel": { <item> "Items": [{ <link>http://tug.com</link> "Link":"http://tug.com", <title>Demo Item</title> "Title":"Demo Item" </item> }] </channel> } </rss> } 24
  • 34. JSON in Action Client Serveur JSON est inclus dans le Sérialisation des objects moteur JavaScript des par les applications navigateur Parseurs: Java, C, PHP, Ruby, Perl, ... JSON 25
  • 36. Je dois donc devenir un expert Javascript / HTML? 27
  • 37. Je dois donc devenir un expert Javascript / HTML? Non pas vraiment... 27
  • 38. Outils? Nombreux frameworks JavaScript, intégrés ou non aux plateformes serveurs Dojo Google Web Toolkit (GWT) Prototype Direct Web Remoting (DWR) Scriptaculous JavaServer Faces JQuery RichFaces, IceFaces, Trinidad Yahoo! UI (YUI) Echo3 28
  • 39. Google Web Toolkit Les concepts: Développer en Java Compiler / Générer une application JavaScript 29
  • 40. GWT: Développement GWT Designer Outils Java Eclipse Netbeans IDEA GWT Designer 30
  • 41. Démonstration Google Web Toolkit Dojo, JQuery, ... 31
  • 42. Ajax: Bonnes Pratiques JavaScript est un vrai langage, et très puissant dynamique, gestion d’exception, ... Ne pas réinventer la roue Prendre un framework existant Tester votre application dans les navigateurs ciblés 32
  • 43. Java (Client) Applet / JavaFX Java WebStart 33
  • 44. RIA & Java Java sur le Client Basé sur JavaSE, JavaME Utilisation de Swing et des fonctionnalités Java Déploiment/Execution: Applets Java WebStart 34
  • 45. Applets Une application Java embarquée dans une page HTML S’execute au sein du Navigateur 35
  • 46. Java WebStart Technologie de déploiement des applications Java Utilise JNLP (Java Network Launching Protocol / JSR-56) Java WebStart supporte: Mode Déconnecté Code Signing Isolation (Sandboxing) Mise à jour des applications/Versionning Installation des composants à la demande 36
  • 47. JavaFX Langage de script permettant la création d’interfaces riches en tirant partie de la plateforme Java Demos en ligne: http://jfx.wikia.com/wiki/Demos 37
  • 48. Adobe Flash / Flex / Air 38
  • 49. Flex / AIR : Définition Framework Open Source pour RIA Utilisation du plugin Adobe Flash pour executer les applications Supporté par toutes les plateformes... sur lesquelles le plugin Flash existe AIR: Adobe Integrated Runtime Possibilité d’utiliser les applications Flash/Flex sur l’OS 39
  • 50. Flex: Composants Tire partie de JavaEE MXML (Macromedia XML) Déclaration de l’interface graphique Création de applications en assemblant des composants graphiques Boutons, Listes, Layouts, Effets, ... Librairie très riche 40
  • 51. Flex: Runtime Flex Builder IDE Browser Flex SDK Flash Player MXML ActionScript Flex Class Library Data .swf Data Web Server Compile XML Adobe Life Cycle JSON Data Services SOAP Web Services J2EE App Server .swf Existing Application Infrastructure 41
  • 52. Flex Builder Environnement de Dev Intégré (IDE) Edition des MXML, ActionScript, ... Basé sur Eclipse Tire partie des plugins 42
  • 54. Silverlight Applications Riches selon Microsoft Utilisation d’un plugin (comme Flash) Gestion des animations, composants, données, ... 44
  • 55. Silverlight : Composants Tire Partie de Microsoft .Net XAML (Extensible Application Markup Language) Déclaration de l’interface graphique Création de applications en assemblant des composants graphiques Boutons, Listes, Layouts, Effets, ... 45
  • 56. Les outils Utilisation des Outils Microsoft pour le Développement Visual Studio 2008 Orienté Développeurs d’Entreprise Expression Studio Création Graphique 46
  • 57. Conclusion ... 47
  • 58. RIA: Attention... Dépendances sur fonctions “avancées” ou plugins: Javascript, Flash, Java, ... L’utilisateur doit s’habituer aux applications: Navigation, rafraîchissement partiel L’accessibilité est encore peu intégrée à ces solutions Gestion difficile -impossible- du bouton “Back” 48
  • 59. RIA: Attention Tout est “dynamique” Difficile pour les moteurs de recherche d’indexer les “pages” Impossible de passer des URLs/Bookmarks en gardant un état Ce n’est pas necessairement un “vrai” problème car il s’agit ici d’applications et non pas de site. 49
  • 60. Autres solutions? Il existe beaucoup d’autres solutions: OpenLazlo : équivalent à Flex avec possibilité de générer des applications HTML XUL : XML User Interface Language, création d’application riches dans Mozzilla Grails, RubyOnRails ... Curl, WaveMaker, ZK, Telosys, Wicket, ... 50
  • 61. Comment choisir ? Choix difficile... à étudier au cas par cas Besoins “réels” Indépendance du serveur ? Type de framework: visuel, data access, ... Outillage, Documentation disponibles, Support Communauté Tenir compte des standards...si possible notamment l’arrivée de HTML 5 51
  • 62. Résumé Browser Desktop Portabilité Prise en Main AJAX +++ --- +++ +* Flex ++ - ++ +++ Air - ++ ++ +++ Silverlight ++ - + +++ JavaFX + + +++ - Java + + +++ +++ *: Depend de la solution choisie 52
  • 63. Exemple d’analyse Xebia RIA Contest Flex / Silverlight / GWT / Echo3 / JavaFX 53
  • 64. Web 2.0 Introduction Tugdual Grall http://www.tugdualgrall.com 54
  • 65. Blogs 55
  • 66. Blogs 55
  • 67. Blogs 55
  • 68. Blogs 55
  • 69. Wikis 56
  • 70. Wikis 56
  • 71. Wikis 56
  • 72. Wikis 56
  • 80. Mashups 60
  • 81. Mashups 61
  • 82. Autres... 62
  • 83. Software As A Service (SaaS) 63
  • 84. Rich Internet Application Introduction Tugdual Grall http://www.tugdualgrall.com 64

Notas del editor