Good Ideas

Google gears, le applicazioni web diventano offline

Posted by:

|

On:

|

Google Gear, una nuova invenzione di GoogleGoogle gears, il nuovo servizio di google, sta rappresentando un punto di svolta nel panorama delle integrazioni più strette tra client e server. Esso infatti, nelle intenzioni degli sviluppatori, dovrebbe servire a colmare un gap, peraltro tuttora esistente, fra applicazioni tradizionali e applicazioni web-based; questi si sono fatti una semplice domanda: in cosa questi due tipi di applicazione hanno il maggior numero di differenze, e sono arrivati ad una conclusione: la differenza più incisiva riguarda la gestione dei dati, ma soprattutto il fatto ovvio che per far girare un’applicazione web-based sia necessario giocoforza una connessione ad internet.

Google gears, come abbiamo già  detto vuole colmare questo gap, facendo in modo che alcune funzionalità  (e alcune applicazioni web-based) possano essere in parte od in toto scaricate localmente, gestite anche non in presenza di una connessione internet, e poi possibilmente rimandate indietro al server quando la connessione è¨ presente, operando una sorta di allineamento fra dati locali e dati del server. Questo articolo vuole essere una panoramica per capire cosa è possibile fare con google gears.

 

Innanzitutto per utilizzarlo, occorrono due cose fondamentali:

  • per il client, scaricare un piccolo plugin (disponibile per Firefox, Netscape, ecc.)
  • per il server, oltre al file .htm o .html all’interno del quale metteremo il codice javascript adeguato, occorre includere anche il file gears_init.js fornito da google gears, per poter utilizzare tutte le api fornite.

Per quanto riguarda invece le strutture di dati, essi, nella loro forma più completa, seguono uno schema del tipo:

  • Una User-Interface, lato client, che comunica attivamente con un commutatore di dati
  • il commutatore di dati, che (in base a come è programmato) salva alcuni dati localmente e altri nel server
  • i dati locali che sono presi o salvati in un database (sempre locale)
  • il database che scambia dati, tramite un sistema di sincronizzazione adeguato, con il server.

Ma google gears è un’ API fatta di tanti moduli, tra cui quelli più importanti sono:

  • Database : da la possibilità  di gestire non dei semplici cookie, ma dei veri e propri database SQL con i dati posti nella macchina locale.
  • LocalServer : serve a dare l’impressione che si è online, quando in realtà si caricano web-app o dati che sono conservati in locale
  • WorkerPool : serve ad eseguire del codice Javascript in modalità asincrona: in tal modo è possibile visualizzare intanto la pagina, ed eseguire contemporaneamente il JavaScript in background.

Per quanto riguarda invece gli oggetti che le api di google gears mettono a disposizione essi sono fondamentalmente window.google e google.gears , per cui per un javascript che vorrebbe controllare la presenza di googlegears installato in un computer, occorrerebbe semplicemente controllare questi oggetti. Per prima cosa vediamo come fare per scaricare alcune pagine automaticamente da un sito per poi essere visionati localmente; per questo abbiamo bisogno di un file .json che dovrebbe essere qualcosa come:

{
  "betaManifestVersion": 1,
  "version": "version 1.0",
  "entries": [
  { "url": "go_offline.html"},
  { "url": "go_offline.js"},
 { "url": "gears_init.js"}
  ]
}

Praticamente vi sono delle parentesi graffe iniziali e finali, seguite da coppie nome – valore del tipo
"nome1":"ValoreStringa1" oppure
"nome2":ValoreNumerico oppure ancora
"nomearray":[  { "nome3": "Valore3"}, { "nome4": "Valore4"}]

ovviamente nome1, nome2, nome3 sono nomi di variabili possibilmente predefinite, come ad esempio version e betaManifestVersion, che descrivono la versione, oppure entries, che descrive tutti i file che devono essere scaricati in locale.

Esiste poi uno spezzone javascript per inizializzare automaticamente tramite un evento onLoad (che però avviene in automatico col nome di funzione speciale init):

function init() {
  if (!window.google || !google.gears) {
  textOut("Devi istallare Google Gears per funzionare.");
  } else {
  localServer = google.gears.factory.create("beta.localserver","1.0");
  pagineoffline = localServer.createManagedStore("mie_pagine_offline");
  }
}

Come possiamo notare google.gears.factory.create insieme a beta.localserver come parametro, serve a creare un server locale che agisce come quello remoto in modo assolutamente trasparente all’utente. Per creare più specificatamente un set di file scaricabili in locale si utilizza invece localServer.createManagedStore("nome_dati_di_pagine_offline");

Inoltre si deve associare alle pagine offline che abbiamo creato il file manifest adeguato con il comando pagineoffline.manifestUrl = "nome_manifesto.json";

Volendo, come abbiamo già  detto si può creare un database in modo altrettanto facile, sempre utilizzando google.gears.factory.create ma stavolta col parametro beta.database e, dopo averlo associato ad una variabile-oggetto, lo si può indirizzare con nomeVariabileOggetto.execute(‘comando_semplice_con_due_parametri (?,?)’, [parametro1,parametro2]);
dove al posto di ‘comando’, va inserito un comando per gestire database, tabelle, eccetera.

Per avere una referenza completa di tutte le api cliccare qui

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *