Docstoc

Projet Google Gears - ZENIKA - Powerpoint

Document Sample
Projet Google Gears - ZENIKA - Powerpoint Powered By Docstoc
					          Projet d’option
ZENIKA – Ecole des Mines de Nantes

        Florent WEBER
      Cédric CHEDALEUX
       Thomas GUERIN
       Jérémy SCHOEN




                ZENIKA - Ecole des Mines de Nantes   1
 Phase 1 : problématiques et enjeux                           des
  applications Web en mode déconnecté

 Phase 2 : panorama du marché des solutions et
  comparaison par rapport à la technologie Google
  Gears

 Phase 3 : prototypage à l’aide de l’outil Google
  Gears

 Phase 4 : synthèse et prospective


                          ZENIKA - Ecole des Mines de Nantes         2
L’objectif de cette section est d’introduire le concept de
« mode déconnecté » en présentant son contexte
d’application, ses avantages et les moyens nécessaire à
sa mise en œuvre.




                            ZENIKA - Ecole des Mines de Nantes   3
ZENIKA - Ecole des Mines de Nantes   4
 Fusion RIA/RDA

 RIA : Rich Internet Application
 ◦ Lancement dans le navigateur
 ◦ Pas d’installation

 RDA : Rich Desktop Application
 ◦ Installation sur le poste client
 ◦ Accès aux ressources de l’ordinateur (disque dur,
   périphériques...)‫‏‬
 ◦ Utilisation locale (pas besoin de connexion)‫‏‬


                          ZENIKA - Ecole des Mines de Nantes   5
 Exemples de technologies RIA
 ◦ Adobe Flash
  ◦ Animations
  ◦ 3D

 ◦ Google Web Toolkit
  ◦ Composants graphiques avancés
     ◦ Boutons
     ◦ Editeur de texte




                         ZENIKA - Ecole des Mines de Nantes   6
 Exemples de technologies RDA
 ◦ Adobe Air
    Le plus prometteur aujourd’hui.
    Cf. détails plus loin.

 ◦ Microsoft Silverlight 2.0
   ◦ Peut servir pour la réalisation d’application RIA ou RDA
     ◦ Démarrage depuis le bureau ou depuis un site web au choix.
    Critiqué du fait qu’il ne soit pas Open Source.
    A terme, des contenus Web seraient donc réservés aux
     personnes ayant acheté les technologies Microsoft.

 ◦ Mozilla XulRunner
    Masqué par les 2 « grands »


                                ZENIKA - Ecole des Mines de Nantes   7
Différence entre RDA et RIA
   Les notions de RDA / RIA sont parfois utilisées à
    tort.

   De plus, avec l’arrivée du mode déconnecté, la
    frontière entre RDA et RIA est de plus en plus
    mince. En effet :
    ◦ Si la RIA permet le mode déconnecté, alors on obtient une
      application utilisable sans connexion Internet donc de type
      « desktop ».
    ◦ Inversement, en mode connecté, des RDA telles que eBay
      Desktop utilisent en permanence la connexion Internet et
      proposent des interactions similaires à celle d’une page
      Web.


                                ZENIKA - Ecole des Mines de Nantes   8
Le mode déconnecté                              permet       aux
 applications Internet :

 ◦ L’accès aux ressources locales
 ◦ Une continuité du service




                         ZENIKA - Ecole des Mines de Nantes         9
 Problème : La perte de connexion se traduit par
  une inutilisabilité du service dans le cas des
  applications Web “traditionnelles”

 Il y a deux modes de déconnexion possible

 Déconnexion implicite (non souhaitée)‫‏‬
 ◦ Perte de réseau pour un téléphone portable.
 ◦ Passage dans un tunnel pour un ordinateur portable.

 Déconnexion explicite (volonté de l’utilisateur)‫‏‬
 ◦ Economie du crédit de connexion Web pendant la
   rédaction d’un courrier électronique.

                           ZENIKA - Ecole des Mines de Nantes   10
 Il   semble     difficile   pour   certaines
  architectures d’offrir un mode déconnecté.

 La raison est simple, les pages HTML
  affichées dans le navigateur sont générées
  côté serveur et non pas côté client comme
  avec     GWT,    Flex    ou     simplement
  HTML/Javascript.



                      ZENIKA - Ecole des Mines de Nantes   11
 Rendre une application "déconnectée" nécessite de
  rapatrier tout ou partie des traitements métiers sur
  le navigateur. Du coup, il semble nécessaire
  d'écrire ces traitements dans les langages
  spécifiques au client ou au serveur. En bref en
  HTML/JavaScript pour la partie client et en Java
  dans le cas d'un backend Java...

 Comment assurer une bonne répartition des
  traitements entre le serveur et le navigateur client ?




                           ZENIKA - Ecole des Mines de Nantes   12
 Comment gérer de gros volume de données ?
  Autrement dit, comment répartir la charge entre le
  client et le serveur ?

 Le serveur ne transmet au client que les données
  qui lui seront utiles pour les actions qu’il pourra
  réaliser en mode déconnecté…




                         ZENIKA - Ecole des Mines de Nantes   13
 Comment gérer les problèmes de                        mises à jour
  concurrentes ? Comment rendre                         compte d'un
  problème de synchronisation à                        l'utilisateur ?
  Comment l’aider à résoudre ce                        problème de
  synchronisation ?

 Exemple : 2 utilisateurs effectuent une tâche sur
  leur poste en mode déconnecté, portant sur un
  même fichier. Comment gérer la convergence à la
  reprise de la connexion ?



                        ZENIKA - Ecole des Mines de Nantes               14
 Webmail
 Web téléphone portable
 Bureautique online
 Commerce
 Cartographie – Itinéraires
 Blogs




                        ZENIKA - Ecole des Mines de Nantes   15
 La rédaction de mail via un webmail (ex: Gmail) nécessite une
  connexion à Internet

 Grâce au mode déconnecté un utilisateur peut écrire un mail
  et l’ ”envoyer”. Lorsqu’il est de nouveau connecté à Internet
  l’envoi se fera de manière totalement transparente.

 Bien d’autres fonctionnalités sont possibles en mode
  déconnecté : consultation de mails, suppression de mails,
  configuration des comptes.

 La course au webmail déconnecté a été remportée par Zoho
  mail qui intègre Google Gears afin de disposer d’un mode
  “offline”.



                              ZENIKA - Ecole des Mines de Nantes   16
Zoho Webmail

   Bien que Gears soit une technologie de Google, Zoho a été le
    premier à l’avoir mise en place.

   L’interface graphique de Zoho est plus riche que celle de Gmail,
    en effet elle ressemble beaucoup à l’interface de Mozilla
    Thunderbird.

   Bien que Gears sera considéré comme « mature » lors de son
    intégration par Google dans Gmail, Zoho fait preuve d’initiative
    en utilisant cette technologie pour son webmail et peut ainsi
    concurrencer Gmail .




                                  ZENIKA - Ecole des Mines de Nantes   17
 Actuellement, lorsqu’un mobile n’est plus dans une zone couverte par son
  opérateur il devient impossible de réaliser des opérations via Internet (ex:
  écrire un mail).

 Des applications en mode déconnecté permettraient de s'abstraire des
  problèmes de connectivité.

 Cependant ces dernières ne peuvent être mises en place actuellement que
  sur des BlackBerry ou des mobiles dont l’OS repose sur J2ME (version mobile
  de java)‫‏‬

 Une solution existe déjà : Gmail for mobile 2.0 qui permet de disposer d’un
  webmail en mode déconnecté.

 Dans un avenir proche d’autres applications disposant du mode déconnecté
  similaires à celles développées pour les PC devraient voir le jour.



                                      ZENIKA - Ecole des Mines de Nantes         18
 Applications traditionnelles              Applications                     en        mode
                                             déconnecté
  ◦ Des logiciels de traitement de
    texte, de présentation et des               ◦ La possibilité de travailler hors-
    tableurs      sont      récemment             ligne     permettra      à    ces
    disponibles en ligne                          applications de se substituer aux
  ◦ Ils    offrent      les     mêmes             applications clients lourds
    fonctionnalités que les suites
    bureautiques telles que MS Office
    ou OpenOffice

                                              Avantages :
 Inconvénient :                               Plus besoin d'installer la suite sur le
 Une fois déconnecté, impossibilité de        poste client
 travailler                                   Tout sera utilisable par l'intermédiaire
                                              d'un navigateur

                                                                        Exemples:

                                                             Zoho Writer, Google Docs,
                                                       Project Draw 0.7 (Logiciels de Dessin
                                                                 pour présentation)‫‏‬

                                         ZENIKA - Ecole des Mines de Nantes                    19
Zoho Writer
   Après avoir mis en place le mode déconnecté pour son
    webmail, Zoho a récemment doté son éditeur de texte en
    ligne de cette fonctionnalité.

   La suite office que produit Zoho est plus poussée que celle de
    Google.

   En effet des reproches sont faits à la suite office de google
    notamment en ce qui concerne la pauvreté de son interface
    graphique mais aussi de sa navigabilité parfois difficile.

   Zoho devance encore une fois Google, démontrant ainsi sa
    participation active dans la communauté des suites offices
    online.


                                  ZENIKA - Ecole des Mines de Nantes   20
Zoho Writer Vs Google Doc



                                                    Google




                                                     Zoho

               ZENIKA - Ecole des Mines de Nantes            21
 Comme un commercial voyage beaucoup, il n'a pas toujours
  accès à Internet (pour son PDA ou ordinateur portable). Mais,
  même en déplacement, il a des besoins comme:
  ◦ Consulter ses emails
  ◦ Vérifier son planning de rendez-vous
  ◦ Accèder aux infos de ses contacts (adresse, téléphone)‫‏‬
  ◦ Proposer à ses clients un catalogue interactif de produits
    sous forme d'applications web (facilement modifiables)‫‏‬

 La technologie en mode déconnecté lui offrira toutes ces
  fonctionnalités dans l'avion (pour aller à une conférence), ou
  chez un client résidant dans des zones non déservies (ou
  même dans des pays non connectés).


                                ZENIKA - Ecole des Mines de Nantes   22
 Actuellement, la plupart des commandes sont prises sur
  papier. L'introduction d'applications permettant le mode
  déconnectés entrainera une accélération dans le processus de
  préparation et de livraison.
    La commande est saisie chez le client. Dès que le commercial
    a de nouveau accès à Internet, la commande est validée et
    transmise au centre de traitement.
    Rapidité dans la traitement de la commande.
    Synchronisation transparente.

                          Exemples:

                       Google Calendar
                            Gmail
                          Zoho Mail


                               ZENIKA - Ecole des Mines de Nantes   23
 Une fois un itinéraire calculé, si la connexion est
  interrompue il n’y a plus de possibilité de
  manipuler la carte.

 Hors, lors d’un voyage, il est toujours intéressant
  de disposer d’une carte interactive.

 Les fonctionnalités en mode déconnecté seraient
  dès lors de pouvoir zoomer sur une zone et ainsi
  pouvoir choisir un nouvel itinéraire.



                           ZENIKA - Ecole des Mines de Nantes   24
 La rédaction d'articles ou l'ajout de commentaires
  sur un blog nécessite une connexion Internet.
 Toutes ces tâches pourront être réalisées hors-ligne
  et ensuite synchronisées avec le serveur hébergeant
  le blog
  ◦ Dans un train, avion, bus

                               Exemples:
                          Blogger -> blog.gears
                                MySpace


 MySpace va introduire Google Gears sur ses blogs afin d‘économiser
          des ressources serveurs. Une partie des données sera
 ainsi stockée sur le poste client, réduisant la bande passante utilisée.
                                    ZENIKA - Ecole des Mines de Nantes      25
 Dans le cadre du projet, Google Gears a été
  choisi comme technologie de référence en
  termes d’applications Web en mode
  déconnecté.
 L’ensemble de l’étude s’appuiera sur cet
  outil.
 Google Gears a été élu produit de l'année
  par le magazine PC World devant l'iPhone !
      Voir l’article


                      ZENIKA - Ecole des Mines de Nantes   26
L’objectif de cette section est d’exhiber les technologies
prometteuses en termes de « mode déconnecté » et de
les comparer à l’outil Google Gears.




                            ZENIKA - Ecole des Mines de Nantes   27
 Moteur d'exécution multi-plateforme
 ◦ Compatible Windows, Linux, Mac OS
 ◦ Moteur et SDK en téléchargement gratuit


 Applications bureau riches
 ◦ Véritablement déconnectées

 Solution la plus mature à ce jour
 ◦ Air 1.0 en mars 2008

 Communauté active et nombreuses applications
 ◦ Cf. slide 24


                             ZENIKA - Ecole des Mines de Nantes   28
 Installation d’un moteur d’exécution
 ◦ Code unique pour toutes les plateformes


 Langages
 ◦ ActionScript
    Pour les applications Flash ou Flex
 ◦ JavaScript
    Pour les applications AJAX
 ◦ Possibilité de    les   mélanger                dans           une   même
   application



                             ZENIKA - Ecole des Mines de Nantes                29
ZENIKA - Ecole des Mines de Nantes   30
 Intègre le moteur de rendu Webkit de Safari et
  Chrome

 Flash Player inclus

 API variée
  ◦   Son
  ◦   Vidéo
  ◦   Sécurité… et beaucoup d’autres!
  ◦   Détection de connexion automatique
       Stockage des données en local                        en      offline   puis
        synchronisation dès le passage online


                                ZENIKA - Ecole des Mines de Nantes                    31
 eBay Desktop
 ◦ Client bureau pour
   le site d’enchères
 ◦ Permet de faire un
   listing des objets à
   vendre offline et
   de      synchroniser
   ensuite une fois
   connecté.




                          ZENIKA - Ecole des Mines de Nantes   32
 AOL Top 100 Vidéos
  ◦ Vidéos sur son bureau
  ◦ Fonctionnalités riches (plein écran, vidéos liées; publicités)‫‏‬




                                        ZENIKA - Ecole des Mines de Nantes   33
 Finetune Desktop
  ◦ Lecteur de musiques en ligne
  ◦ Hautes performances requises à
    cause du streaming donc RIA
    difficile
  ◦ Capture     les   préférences     des
    utilisateur stockées sur l’ordinateur
    pour la musique et peut ensuite
    proposer des morceaux et les lire en
    streaming

 Plus d’exemples d’applications
  ◦ Environ      180     applications        déjà
    développées
  ◦ Lien vers le MarketPlace Adobe



                                        ZENIKA - Ecole des Mines de Nantes   34
Zimbra: l’arme de Yahoo pour se lancer dans
le mode déconnecté
   Alors que Google planche sur Gears, Yahoo offre un
    mode déconnecté à son webmail via Zimbra Desktop.

   En effet, Yahoo a racheté Zimbra
    pour environ 350 millions de dollars.

   De cette manière Yahoo complète sa liste de service
    «Web 2.0» (FlickR, del.icio.us, MyBlogLog) avec une
    offre d’outils orientées « Entreprise 2.0 ».

   Mais qu’offre donc Zimbra pour engendrer un tel
    engouement de la part de Yahoo ?

                             ZENIKA - Ecole des Mines de Nantes   35
Zimbra : présentation
   Zimbra est une suite collaborative qui comprend une
    solution serveur ainsi qu’un certain nombre d’applications
    en ligne orientée collaboration :
         Un webmail
         Des calendriers partagés avec gestion des contacts
         Un traitement de texte et un tableur en ligne
         Un moteur de « push mail » pour les collaborateurs nomades
         Des extensions pour relier Zimbra à d’autres clients de messagerie (Outlook,
          Thunderbird…)‫‏‬


   Mais Yahoo s’est surtout intéressé à Zimbra Desktop qui
    est un RIA offrant un webmail, un calendrier et un système
    de gestion de contacts avec la possibilité de travailler en
    mode déconnecté.



                                           ZENIKA - Ecole des Mines de Nantes            36
Zimbra Desktop : schéma (1/2)‫‏‬

       AJAX
                        SOAP/HTTP(S)
Navigateur Web/Prism                                  Serveur distant
                                                        de Zimbra
       Jetty

       Derby




                   Client                   Serveur


                              ZENIKA - Ecole des Mines de Nantes        37
Zimbra Desktop : schéma (2/2)‫‏‬

   Jetty : un serveur HTTP et un moteur de servlet 100%
    implémentés en Java.

   Prism : navigateur web léger dont le moteur de rendu
    est basé sur celui de Firefox.

   Derby : base de données de petite taille (2MB),
    appartenant  au    projet Apache et  totalement
    implémentée en Java.




                            ZENIKA - Ecole des Mines de Nantes   38
Zimbra Desktop : mode déconnecté

   En mode connecté, Zimbra Desktop se synchronise avec le serveur
    distant afin de mettre à jour les données (mails, contacts…). Ces
    données sont alors stockées dans une base de données.

   En mode déconnecté, toutes les informations de l’utilisateur (envoi
    de mail, ajout de contact…) sont stockées dans cette BD pour être
    synchronisées une fois l’utilisateur reconnecté.

   Cependant Zimbra a développé sa propre implémentation et ce
    mode ne repose donc pas sur Google Gears. En effet une grande
    partie de la logique applicative de Zimbra réside dans le code
    « serveur ». Or Gears est fait pour être utilisé par des applications
    dont la logique est principalement implémentée en Javascript (code
    côté client).



                                    ZENIKA - Ecole des Mines de Nantes      39
Zimbra Desktop : conclusion
   Le principal défaut de Zimbra Desktop vient de son toolkit Ajax qui n’offre
    pas de module de développement d’applications en mode « « déconnecté »,
    ni de librairies pour communiquer avec une BD Derby.

   Zimbra Desktop est totalement gratuit, excepté sa licence commerciale qui
    est payante.

   La communauté Zimbra est active (notamment dans son forum). Cependant,
    les informations sont parfois difficiles à trouver surtout en ce qui concerne
    son implémentation du mode « déconnecté ».

   Au vu de ces informations Zimbra n’est donc pas en phase avec les besoins
    de notre projet du fait de son manque d’environnement de développement
    pour le mode déconnecté. Cependant, Zimbra reste un concurrent non
    négligeable dans la course au mode « déconnecté ».




                                        ZENIKA - Ecole des Mines de Nantes          40
Aperçu de Zimbra Desktop




              ZENIKA - Ecole des Mines de Nantes   41
 Yahoo! Browser Plus
  ◦ Extentions du navigateur
     Type plug-ins
  ◦ Fonctionnalités riches de type Desktop
     Drag n Drop
     Manipulation de fichiers
     Convertisseur Texte – Parole
  ◦ Mode déconnecté à l’étude

 Microsoft Live Mesh
  ◦ Synchronisation de différents appareils (mobile, portable,
    console…)‫‏‬
  ◦ Données disponibles partout
  ◦ Mode déconnecté à venir


                                  ZENIKA - Ecole des Mines de Nantes   42
 Les applications web déconnectées
  utilisant Gears fonctionnent sans
  serveur HTTP local.
 L’API Gears est composée de 3
  modules :
 ◦ Un serveur local (LocalServer)‫‏‬
 ◦ Une base de donnée SQLite qui stocke les données sur le
   poste client.
 ◦ Un « WorkerPool » qui facilite la synchronisation des
   données.


                               ZENIKA - Ecole des Mines de Nantes   43
Toute l'application dans un cache

        LocalServer
    ◦ Il remplace le serveur HTTP distant.
    ◦ Il met dans le cache de Gears (différent de celui du
      navigateur) les ressources utilisées en déconnecté (DB
      SQLite).
    ◦ Il stocke l'ensemble des éléments de l'application - pages
      HTML, bibliothèques Javascript, images, feuilles de style
      (CSS), etc - sur le poste client.
    ◦ Il intercepte les requêtes HTTP de l'application lorsqu'elle
      fonctionne en mode déconnecté.




                                  ZENIKA - Ecole des Mines de Nantes   44
Une base de données locale


   La base de données locale s'appuie sur le moteur SQL
    open-source SQLite.
    ◦ Stocke localement les données téléchargées par
      l'utilisateur lorsque celui-ci est connecté.
    ◦ Une base de données hébergée sur le serveur distant
      peut être copiée intégralement ou partiellement dans la
      base de données locale.
    ◦ En mode déconnecté, c'est la base de données locale
      qui est utilisée par l'application.
    ◦ Un moteur de synchronisation se charge de réconcilier
      les données lorsque l'utilisateur se reconnecte.

                              ZENIKA - Ecole des Mines de Nantes   45
Synchronisation des données
   Les données entre le serveur et le client ne sont plus
    synchronisées automatiquement dans les cas
    suivants :
    ◦ Modification de données hors-ligne
    ◦ Données partagées entre plusieurs utilisateurs
    ◦ Données provenant d'une source extérieure (exemple : flux
      RSS)‫‏‬

   Pour résoudre ces problèmes de synchronisation,
    deux stratégies sont possibles pour les applications
    Gears :
    ◦ Synchronisation manuelle
    ◦ Synchronisation en tâche de fond


                                ZENIKA - Ecole des Mines de Nantes   46
Synchronisation manuelle (manual sync)‫‏‬
   L'utilisateur décide quand il veut lancer                       la
    synchronisation (usuellement via un bouton):
    ◦ Upload des données locales
    ◦ Téléchargement des données récentes du serveur

   La quantité de données à transférer doit rester faible
    (quelques Mo pour une connexion Wifi).

   Cette synchronisation nécessite que l'utilisateur
    connaisse l'état de la connexion. Il peut également
    oublier de synchroniser avant de se déconnecter.



                               ZENIKA - Ecole des Mines de Nantes        47
La synchronisation s'effectue toute seule
   Avec la synchronisation en tâche de fond (Background sync),
    l'application web se synchronise automatiquement et
    continuellement :




                 Les différents termes sont explicités plus loin…

                                        ZENIKA - Ecole des Mines de Nantes   48
La synchronisation s'effectue toute seule
   Le « Sync Engine » assure une synchronisation continue entre le
    serveur et le client grâce à la techonologie Comet (AJAX 2.0).
       Comet garde une connexion ouverte entre les deux postes
        pour que le serveur puisse envoyer des donnés en continu
        sans requête préalable du client.

   Ensuite, il ajoute les données à « Local Database ».

   Quand l'utilisateur clique sur un bouton, le « Data Switch »
    oriente les appels de l'UI vers le « Server Data Layer » (mode
    connecté) ou vers le « Local Data Layer » (mode déconnecté).

   Les couches « Data Layer » interrogent la BD locale ou la BD du
    serveur.


                                  ZENIKA - Ecole des Mines de Nantes   49
Des traitements asynchrones en tâche de
fond
   Les synchronisations de données nécessitent
    souvent du temps. Gears propose un 3ème module :
    le WorkerPool.

    ◦ Il élimine les blocages du navigateur dus à l'exécution trop
      longue de scripts.

    ◦ Il transforme les traitements Javascript synchrones en
      processus asynchrones.

    ◦ Grâce à ce module, la synchronisation des données ou la
      capture de sites se fait de manière complètement
      transparente pour l'utilisateur. Toutes ces tâches sont
      effectuées en arrière-plan.

                                 ZENIKA - Ecole des Mines de Nantes   50
Fonctionnalités supplémentaires

   Quelques fonctionnalités intéressantes ont été
    ajoutées à la version 0.4 de Gears :

    ◦ Géolocalisation

    ◦ La manipulation de BLOB (Binary Large Object)
      comme des images, sons ou vidéos dans du code
      Javascript (passage par référence).

    ◦ Desktop API permettant la création de raccourcis sur
      le bureau (à partir de la page web) et l'accès aux
      fichiers stockés sur le poste client.

                             ZENIKA - Ecole des Mines de Nantes   51
Dojo et Google Gears
   Dojo est un framework permettant le développement d’application
    web dynamique 100% implémentée en javascript.

   Un des avantages de dojo est qu’il possède une extension (dojoX)
    qui intègre Google Gears.

   Cette extension fournit une couche d’abstraction facilitant ainsi
    l’utilisation de Google Gears.

   Cependant il ne dispose pas encore de toutes les fonctionnalités
    offertes par Google Gears comme la géolocalisation ou la gestion de
    BLOB.

   Mais Dojo est en constante évolution du fait d’une communauté
    vraiment active.



                                   ZENIKA - Ecole des Mines de Nantes     52
DojoX
   Détection
    automatique de la
    déconnection   et
    affichage

   Téléchargement
    autonome        des
    fichiers requis au
    fonctionnement de
    l’application    en
    mode déconnecté

                          ZENIKA - Ecole des Mines de Nantes   53
Bilan : les nominés sont…
 Finalement, il ressort de l’étude préalable que les 2 solutions
  aujourd’hui suffisamment abouties pour réaliser des
  applications en mode déconnecté sont Google Gears et Adobe
  Air.
 Cependant, leur mode d’utilisation est très différent et il
  convient de bien distinguer les fonctionnalités de chacun.

 On va comparer ces 2 technologies sur les critères suivants :
  ◦   Date de sortie, version, licence
  ◦   Type d’applications visé : RIA, RDA, autre
  ◦   Extensions disponibles
  ◦   Communauté, support
  ◦   Type de technologie
  ◦   Développement : pré-requis, langages utilisables


                                   ZENIKA - Ecole des Mines de Nantes   54
Matrice comparative
                               Google Gears                             Adobe Air
Date de sortie                 Juin 2007                                Mars 2008 (version 1.0)‫‏‬
(1ère version stable)‫‏‬

Version (nov. 2008)‫‏‬           0.4                                      1.5

Type d’applications visé       RIA                                      RDA


Licence                        BSD                                      EULA (Moteur)/Open Source

Type de technologie            Plug-in (~ 1Mo)‫‏‬                         Moteur d’exécution (~ 13 Mo)‫‏‬

Communauté / Support
                               Gears.google.com


Pré-requis au développement    1 script d’initialisation                1 SDK (~ 12 Mo)‫‏‬

Langages utilisables pour le   JavaScript                               Flash / Flex / JavaScript
développement
Extension                      DojoX (simplification)‫‏‬                  ?

Exemples                       Zoho Mail, Google Reader…                eBay Desktop, AOL Top 100 Videos…



                                                    ZENIKA - Ecole des Mines de Nantes                      55
             Phase 3
      Prototypage à l’aide de
           Google Gears
L’objectif de cette troisième partie est la réalisation
d’un qui devra mettre en jeu les principaux aspects
de la technologie Google Gears.




                           ZENIKA - Ecole des Mines de Nantes   56
Choix du prototype
   Ajouter à l'application web ZenContact un
    mode déconnecté




                         ZENIKA - Ecole des Mines de Nantes   57
ZenContact
   Application web de gestion de contacts
    reposant sur le framework Wicket
   Il est possible de créer, modifier ou
    supprimer un contact de sa liste
   Objectifs du prototype:
    ◦ rajouter un contact à la liste en mode déconnecté
    ◦ synchroniser la liste avec le serveur lors de la
      reconnexion




                            ZENIKA - Ecole des Mines de Nantes   58
Design du prototype




              ZENIKA - Ecole des Mines de Nantes   59
Liste des fichiers
               4 fichiers jsp pour accéder à la
                base de données du serveur
               index.html: page principal
               offline.js: contient tout le code
                javascript pour utilise l'API Gears
               manifest.json: liste des fichiers
                nécessaires au fonctionnement
                hors-ligne
               gears_init.js: script
                d'initialisation pour Gears
               prototype.js & DatePicker.js:
                framework pour AJAX


                      ZENIKA - Ecole des Mines de Nantes   60
Exemple de code
// Create the local database if not exists
// 1. One stores all customers (same data as the one stored on the server)
// 2. The other one stores the queuing customer
function initializeDB() {
  try {
       db = google.gears.factory.create('beta.database', '1.0');
     } catch (ex) {                                                     Créé 2 tables pour la
       alert('Could not create database: ' + ex.message);               gestion des contacts dans la
                                                                        base SQLite
     }
  if (db) {
       db.open('gears');
      db.execute('CREATE TABLE IF NOT EXISTS localContact ( id int, firstName varchar(255),
                          lastName varchar(255), email varchar(255), notes varchar(255),
                         language varchar(255), category varchar(255), active bool, birthDate
                         Date)');
       db.execute('CREATE TABLE IF NOT EXISTS datablobs ( id_contact int, status int )');
       localServer = google.gears.factory.create("beta.localserver");
     }
}
                                                          Créer le serveur local pour les fichiers
                                                          du manifest

                                                ZENIKA - Ecole des Mines de Nantes                     61
Prototype final




                  ZENIKA - Ecole des Mines de Nantes   62
Prototype final
   Widget graphique pour le statut de la
    connexion et de la synchronisation avec le
    serveur
   Affichage des contacts dans la file d'attente
    pour la synchronisation
   Images pour l'état des contacts
   Synchronisation automatique lors de la
    reconnexion
   La déconnexion n'est détectée qu'à travers
    l'option “Travailler en hors-connexion” du
    menu

                         ZENIKA - Ecole des Mines de Nantes   63
Problèmes rencontrés
   Difficultés de debuggage avec le Javascript
   Pas     de    gestion   de     synchronisation
    concurrente des contacts
   Détection de la connexion difficile à maitriser
   Intégration de l'API Gears à Wicket assez
    compliquée
   Récupération de la page principale de
    ZenContact et recodage de toutes les
    fonctions metiers et ajout des JSPs.



                          ZENIKA - Ecole des Mines de Nantes   64
Prototype complémentaire avec
Adobe Air
   But
    ◦ Obtenir une version Adobe Air de l’application
      ZenContact ayant des fonctionnalités offline
      similaires à celles de l’application codée avec
      Google Gears

   Deux méthodes possibles (cf slides suivantes)
    ◦ « à la main »
    ◦ « avec les outils de développement »




                             ZENIKA - Ecole des Mines de Nantes   11/11/08
Méthode 1: « à la main »


   Création de fichiers HTML, Css, Javascript et
    XML avec un simple éditeur de texte.

   Compilation et packaging en ligne de
    commandes




                          ZENIKA - Ecole des Mines de Nantes   11/11/08
Descripteur de déploiement
XML
   Permet de configurer l’application: fichier à
    charger au démarrage, taille de la fenêtre…




                          ZENIKA - Ecole des Mines de Nantes   11/11/08
Lignes de commandes
   Preview de l’application
    ◦ adl application.xml

   Signature numérique de l’application
    ◦ adt -certificate -cn SelfSigned 1024-
      RSA certificat.pfx motdepasse


   Compilation et packaging (obtention du
    fichier .air)
    ◦ adt package storetype pkcs12keystore certificat.pfx ZenContactAir.air application.xml
       ListeDesFichiersAInclure




                                            ZENIKA - Ecole des Mines de Nantes   11/11/08
Méthode 1: conclusion


Avantages                    Inconvénients
 Code maitrisé de bout        Méthode fastidieuse
  en bout                       quand le nombre de
 Utilisation d’outils          fichier augmente
  gratuits uniquement          Débogage limité
 Idéal pour apprendre         Design plus difficile




                          ZENIKA - Ecole des Mines de Nantes   11/11/08
Méthode 2: « avec des outils de
développement»
   Quels outils?
    ◦ Dreamweaver CS3
      Éditeur de sites web permettant une conception par
       code et par design direct (What You See Is What You
       Get )

    ◦ Extention Adobe Air pour Dreamweaver
      Plug in développé par Adobe ajoutant le support de Air
       à Dreamweaver

    ◦ FlexBuilder 3.0
      IDE basé sur Eclipse pour le développement
       d’applications web en Flex (format SWF)


                              ZENIKA - Ecole des Mines de Nantes   11/11/08
Extention Adobe Air pour
Dreamweaver

   Permet l’utilisation
    de wizards pour la
    création du XML de
    déploiement, du
    certificat de
    signature numérique
    ou du packaging de
    l’application finale



                           ZENIKA - Ecole des Mines de Nantes   11/11/08
Aperçu du prototype (1)




               ZENIKA - Ecole des Mines de Nantes   11/11/08
Aperçu du prototype (2)




               ZENIKA - Ecole des Mines de Nantes   11/11/08
Méthode 2: conclusion

Avantages                      Inconvénients
 Rapide                         Solutions payantes
 Efficace                           ◦ Dreamweaver: 300 €
 Facile d’utilisation
                                     ◦ Flex Builder: 215 €

 Adapté à la réalisation
                                    Méthode retenue
  d’applications
                                     malgré tout
  d’entreprises
                                     ◦ Utilisation des versions
  (beaucoup de fichier                 d’essai des logiciels pour
  inclus dans une même                 la réalisation du
  application)                         prototype




                            ZENIKA - Ecole des Mines de Nantes   11/11/08
Détection du réseau (1)

   Pré requis:
    ◦ Connaissances pratiques en Flex 3, MXML, et
      ActionScript 3.0
    ◦ FlexBuilder 3.0

   La détection du statut du réseau ne peut se
    faire qu’en Flex (pas de Javascript pour cette
    partie)



                            ZENIKA - Ecole des Mines de Nantes   11/11/08
Détection du réseau (2)
   Utilisation d’un Event Listener pour écouter
    l’évènement Event.NETWORK_CHANGE

   Utilisation de la méthode
    checkNetworkConnection() au démarrage de
    l’application pour vérifier le statut de la connexion
    ◦ Le code de cette méthode est décrit dans la slide suivante


   Cela donne une fonction initialiser() dont le corps
    est:
    ◦ NativeApplication.nativeApplication.addEventListener(Event.
      NETWORK_CHANGE, checkNetworkConnection);
      checkNetworkConnection();

                                 ZENIKA - Ecole des Mines de Nantes   11/11/08
Détection du réseau (3)
   La fonction checkNetworkConnection fait un appel à une
    URL de test qui autorise le ping du server utilisé.

   On lui ajoute une série de listeners pour vérifier la
    connexion, si un appel HTTP peut être effectue et si il n’y a
    pas d’erreur

   Cela donne:




                                  ZENIKA - Ecole des Mines de Nantes   11/11/08
Détection du réseau (4)
   Le résultat des tests du réseau permet d’activer ou non un
    drapeau (booléen) appelé networked

   Cela se fait comme suit:




   Selon la valeur de networked on dirige les données vers la
    base de donnée SQLlite locale ou distante


                                ZENIKA - Ecole des Mines de Nantes   11/11/08
    Installation de l’application

   L’installation de
    l’application sur le
    poste client se fait
    par un simple
    double click sur le
    fichier .air
    (installation du
    moteur d’éxécution
    Air préalable sur sa
    machine)


                           ZENIKA - Ecole des Mines de Nantes   11/11/08
L’objectif de cette dernière section est de conclure l’étude
réalisée en émettant un jugement clair et objectif sur la
technologie Google Gears, en essayant d’anticiper les
évolutions sur une période d’un à trois ans.




                             ZENIKA - Ecole des Mines de Nantes   80
Solutions exploitables
   A l’heure actuelle, 2 solutions « sérieuses » existent pour
    créer des applications Web permettant le mode déconnecté :
       Google Gears
       Adobe Air

   Cependant, si ces solutions peuvent conduire à un résultat
    similaire, la mise en œuvre est très différente :
       Google Gears : on ajoute à l’application initiale (exécutable dans
        un navigateur) des fonctionnalités qui permettent l’accès aux
        ressources locales.
       Adobe Air : on ajoute à l’application de bureau une connectivité
        à Internet (on simule le résultat d’un navigateur).




                                    ZENIKA - Ecole des Mines de Nantes   11/11/08
Difficultés de mise en œuvre (1/2)
   Globalement, les techniques de mode
    déconnecté     n’en   sont   qu’à   leurs
    balbutiements. Google Gears comme Adobe
    Air présentent dans l’immédiat un certain
    nombre de difficultés dans leur mise en
    œuvre.

   Adobe Air : à remplir par Jérémy




                         ZENIKA - Ecole des Mines de Nantes   11/11/08
Difficultés de mise en œuvre (2/2)
   Google Gears : sans framework, l’utilisation
    actuelle de l’outil reste délicate pour les
    raisons suivantes :
      Utilisation exclusive du JavaScript (difficultés de
       débogage…).
      Communauté en développement (bien qu’active) : peu
       d’exemples pour le moment.




                            ZENIKA - Ecole des Mines de Nantes   11/11/08
Gears, l’outil le plus avancé
   Toutefois, si l’on devait élire la solution
    actuellement la plus exploitable, le choix se
    porterait sur Google Gears.

   Dans ce qui suit, on va rappeler les points
    forts essentiels de cet outil.

   Enfin, nous essaierons de prévoir l’avenir de
    Google Gears dans un avenir proche (1 à 3
    ans).


                         ZENIKA - Ecole des Mines de Nantes   11/11/08
Points forts (1/3)
   Un produit « made in Google » :
      Google a la réputation de fournir des produits
       complets, fiables et évolutifs.
      Cette réputation joue en faveur de Google Gears : les
       utilisateurs potentiels hésiteront moins à s’engager
       s’ils savent qu’il s’agit d’un produit Google.

   Une activité importante sur les forums :
      Les échanges qui ont lieu sur le forums montrent
       l’intérêt qui est porté par les développeurs aux
       fonctionnalités du mode déconnecté.
      Dans les moteurs de recherche (Google…), l’entrée
       « mode déconnecté » mène très souvent à des articles
       sur Google Gears.

                             ZENIKA - Ecole des Mines de Nantes   11/11/08
Points forts (2/3)
   Un outil déjà présent dans un certain nombre
    d’applications :
      Exemple : ?
      Cette présence témoigne de la volonté des concepteurs
       d’inclure dans leurs applications des fonctionnalités de
       mode déconnecté.

   Des évolutions rapides :
      Même à l’état de prototype (versions 0.x), de nouvelles
       versions sont mises à disposition régulièrement,
       enrichies de nouvelles fonctionnalités.




                               ZENIKA - Ecole des Mines de Nantes   11/11/08
Points forts (3/3)
   Des « frameworks » qui                                          simplifient
    l’utilisation de Google Gears :
      DojoX : cette bibliothèque rend plus simple la mise en
       place d’applications en mode déconnecté à l’aide de
       Google Gears.
      De telles initiatives sont bénéfiques puisqu’elles créent
       un regain d’activité autour de Google Gears.




                               ZENIKA - Ecole des Mines de Nantes                 87
Prévision à 1 an : les prémices (1/2)

   On peut faire les suppositions suivantes :
      Prise de conscience, dans la communauté des
       développeurs Web, de l’intérêt des fonctionnalités de
       mode déconnecté.

      Arrivée de concurrents à Google Gears, certainement
       avec des technologies moins avancées (retard).

      Mise à disposition de versions définitives (1.x et
       supérieures) : stabilité renforcée et fonctionnalités
       toujours plus nombreuses.




                             ZENIKA - Ecole des Mines de Nantes   88
Prévisions à 1 an : les prémices (2/2)
    Eventuellement, apparition d’autres « frameworks » qui
     simplifieront l’utilisation de Google Gears en tenant
     lieu de « surcouche ».

    Activité croissante sur les forums au fur et à mesure de
     l’émergence des technologies de mode déconnecté
     dans les applications Web.




                             ZENIKA - Ecole des Mines de Nantes   11/11/08
Prévision à 3 ans : la maturité (1/2)

   On peut faire les suppositions suivantes :
      L’inclusion de fonctionnalités de mode déconnecté
       dans les applications Web va se généraliser.

      De ce fait, les produits Google Gears vont être inclus
       dans les outils de développement Web (Java, .Net…) :
       leur utilisation en sera simplifiée et les développeurs
       n’hésiteront plus à l’introduire dans leurs applications.

      D’autres outils concurrents devraient exister mais
       Google Gears gardera certainement une longueur
       d’avance en raison de ses initiatives actuelles
       (pionnier).


                               ZENIKA - Ecole des Mines de Nantes   90
Prévisions à 3 ans : la maturité (2/2)

   Des articles Web abondants (forums,
    tutoriels…) : les outils de mode déconnecté
    vont devenir une technologie à part entière.




                        ZENIKA - Ecole des Mines de Nantes   11/11/08
Références (1/2)‫‏‬
Page      Titre                                URL de référence
1à3       -                                    -

4         Chronologie                          Wikipédia (aux technologies concernées)‫‏‬

5à8       -                                    -

9 à 12    Enjeux des AWMD                      TODO

13        -                                    -

14 à 20   Exemples d’applications              TODO

21        Google Gears                         http://gears.google.com/
                                               http://fr.wikipedia.org/wiki/Google_Gears

22        -                                    -

23 à 27   Adobe Air                            TODO

28        Browser + / Live Mesh                TODO

29 à 30   Composants et Schéma Google Gears    http://code.google.com/apis/gears/architecture.ht
                                               ml

31        -                                    -

32        -                                    -


                                              ZENIKA - Ecole des Mines de Nantes                   92
Références (2/2)‫‏‬
Page      Titre                           URL de référence




                  ZENIKA - Ecole des Mines de Nantes         93

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:8
posted:2/26/2012
language:
pages:93