il paas di google

Download Il PaaS di Google

If you can't read please download the document

Upload: mssistf

Post on 22-May-2015

554 views

Category:

Technology


0 download

DESCRIPTION

Presentazione su cos'è e su come utilizzare Google App Engine.

TRANSCRIPT

  • 1. Il PaaS diGoogle :Google AppEnginePresentazione di Google App Engine acura di Stefani Massimo.

2. Indice degli argomenti trattati La tecnologia PaaS Il PaaS di Google: Google App Engine In cosa consiste Vantaggi e svantaggi Le piattaforme di sviluppo Creazione di una Web Server Application DataBase e DataStore Costi e servizi Recensioni e critiche Riassunto e considerazioni finali 3. La tecnologia PaaS Permette di sviluppare e portare nel cloud le proprie applicazioni Web senzapreoccuparsi di dover configurare una propria macchina per offrire unservizio di hosting. E unottima alternativa ai servizi di hosting offerti. Per poterla utilizzare basta solo iscriversi gratuitamente ad uno dei providerdi PaaS o in alternativa acquistare un abbonamento a pagamento (perpoter supportare un numero maggiore di accessi alla propria applicazione,per avere molta pi banda a disposizione, per avere maggior memoria adisposizione per il proprio database, ecc).Che cos e a cosa serveChe cos e a cosa serve 4. La tecnologia PaaS Vi sono diversi provider che mettono a disposizione i propri servizi di PaaS, equasi tutti propongono una formula in cui possibile svilupparegratuitamente le proprie applicazioni con dei limiti (di servizio, di bandaaccesso, ecc) che si possono aggirare acquistando un appositoabbonamento. I principali provider sono: Google: Con Google App Engine. Microsoft: Con Windows Azure. Amazon: Con AWS Elastic Beanstalk. AppFog.I principali providerI principali provider 5. Il PaaS di Google : Google App Engine Permette di eseguire facilmente il proprio codice in localhost o in remoto, oltread offrire un ottimo servizio di scalabilit (dei servizi legati allaccesso ealluso della memoria) e di sicurezza e di scegliere il nome del propriodominio. Nel dettaglio si hanno: Servizi web dinamici, con il supporto alle pi comuni tecnologie web. Salvataggio e persistenza dei dati tramite Queries e transazioni. API per lautenticazione degli utenti e linvio di e-mail tramite un accout Google. Una piattaforma per eseguire in locale la propria applicazione nel momento in cuiverr in futuro pubblicata nel cloud. Offerta di una Sandbox per testare in maniera sicura e privata la propriaapplicazione su web.In cosa consiste :In cosa consiste :Panoramica generale dei servizi offerti 6. Il PaaS di Google : Google App Engine GO: linguaggio ideato e sviluppato da Google, provvisto di API per utilizzareGoogle App Engine. Java: Pieno sviluppo di applicazioni Java per il web (Con lo standardJava Servlet e/o Java Server Pages ossia jsp). E richiesta lultimaversione delle jdk(v7). API e librerie di sviluppo: Java Data Objects e Java Persistence API sono utilizzate per il salvataggiodei dati. Altre interfacce, API e oggetti possono essere utilizzate per la memcache,LURL fetch (per esempio per creare bot/spider-web), mail, gestione delleimmagini e degli Google Accounts. Python: Anche per questo linguaggio sono supportate tutte le API delPaaS.In cosa consiste :In cosa consiste :I linguaggi supportati 7. Il PaaS di Google : Google App Engine Sviluppo in Java. Tramite Servlet e/o jsp. Scalabilit automatica. Ottime performance e sistema diaccesso sicuro anche nel caso siscelga di utilizzare la versionegratuita.Vantaggi e Svantaggi:Vantaggi e Svantaggi:Vantaggi 8. Il PaaS di Google : Google App Engine Numero di linguaggi supportati limitato (solo tre). Le applicazioni per aprire dei socket (per poter acquisire dati tramite ilprotocollo HTTP) e per scrivere su file devono utilizzare delle apposite API. La versione gratuita permette di utilizzare un database non propriamenterelazionale e non schematico (App Engine Datastore) provvisto di unsistema simile a quello delle query e che offre transazioni atomiche.Vantaggi e Svantaggi:Vantaggi e Svantaggi:Svantaggi 9. Il PaaS di Google : Google App Engine E possibile sviluppare (e fare lupload) della propria applicazione tramitedue metodi (dopo aver scaricato le apposite SDK): Tramite terminale (sia da shell che da dos) per mezzo del commandoappcfg.cmd (Windows) o appcfg.sh (Mac OS X, Linux) Tramite un plug-in per eclipse (reperibile al sitohttp://dl.google.com/eclipse/plugin/4.2) possibile creare uno specialeprogetto di sviluppo chiamato Google Web Toolkit e in seguito possibile,dopo aver associato un id acquisito dal sito di registrazione, farne luploadtramite un apposito pulsante o tramite la console Per la registrazione della propria applicazione invece necessario daprincipio registrarsi al sito:https://appengine.google.com/start/createappLa piattaforma di sviluppoLa piattaforma di sviluppoLe modalit di sviluppo e upload 10. Il PaaS di Google : Google App EngineLa piattaforma di sviluppoLa piattaforma di sviluppoRegistrazione dellapplicazione (tramite un semplice account gmail) 11. Il PaaS di Google : Google App Engine E possibile da terminale fare lupload completo di un progetto, fare lupdate diuno gi esistente, gestire la coda dei task, gestire la protezione agli attacchiDoS e scaricare un progetto. Alcuni comandi: Per lupload: appengine-java-sdkbinappcfg.cmd [options] (Windows) ./appengine-java-sdk/bin/appcfg.sh [options] (Mac OS X/Linux) Per laggiornamento: ./appengine-java-sdk/bin/appcfg.sh update myapp/war Per la gestione dei task va definito un file (queue.xml) che verr inviato con: ./appengine-java-sdk/bin/appcfg.sh update_queues myapp/war Altri comandi: ./appengine-java-sdk/bin/appcfg.sh update_dos myapp/war ./appengine-java-sdk/bin/appcfg.sh update_cron myapp/warLa piattaforma di sviluppoLa piattaforma di sviluppoIl terminale 12. Il PaaS di Google : Google App Engine Come gestire un progetto: Per prima cosa, va creato un progetto di tipo Web Application Project La struttura del progetto:Guestbook/src/guestbook/server/GuestbookServlet.javaMETA-INF/jdoconfig.xmllog4j.propertieslogging.propertieswar/WEB-INF/lib/...App Engine JARs...appengine-web.xmlweb.xmlindex.html Le varie impostazioni del progetto andranno poi definite nella cartella war/.La piattaforma di sviluppoLa piattaforma di sviluppoIl plug-in per Eclipse 13. Il PaaS di Google : Google App EngineLa piattaforma di sviluppoLa piattaforma di sviluppoIl plug-in per Eclipse 14. Il PaaS di Google : Google App Engine Il materiale per poter sviluppare e pubblicare la propria applicazione: Lultima versione di Eclipse Il plug-in di Google App Engine per Eclipse (contenente anche il Developer Kit)scaricabile tramite leditor allindirizzo: https://dl.google.com/eclipse/plugin/4.2 Il Java Web Developer Tools per Eclipse Un account Google Nota: Per questioni di compatibilit, a volte per poter pubblicare lapplicazione necessario forzare nel file ini di eclipse quale JVM utilizzare, definendo lacartella in cui presente lultima versione della JDK:-vmC:Program Files (x86)Javajdk1.7.0_21binCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Requisiti 15. Il PaaS di Google : Google App Engine Dopo aver installato tutto il materiale, si crea un nuovo progetto del tipo:Web Application ProjectCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Creazione di un nuovo progetto 16. Il PaaS di Google : Google App Engine In seguito inseriamo allinterno della cartella war una nuova pagina jsp (chechiameremo HelloWorld.jsp).Come creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Sviluppo di un hello world 17. Il PaaS di Google : Google App Engine Inseriamo allinterno della pagina un hello world e un codice di esempio perlautenticazione.Come creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Modifichiamo la pagina 18. Il PaaS di Google : Google App Engine Il risultato della pagina jspCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Lanciamo lapplicazione in localhost 19. Il PaaS di Google : Google App Engine Premiamo ora il pulsante g per pubblicare su cloud la nostra applicazioneCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Il deploy dellapplicazione 20. Il PaaS di Google : Google App Engine In un primo momento ci ritroveremo una schermata di errore, questo perchdobbiamo associare un id alla nostra applicazioneCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Il deploy dellapplicazione 21. Il PaaS di Google : Google App Engine Associamo allapplicazione un id che abbiamo acquisito dal link:https://appengine.google.com/Come creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Il deploy dellapplicazione 22. Il PaaS di Google : Google App Engine Riproviamo ora il deploy e attendiamo la conclusioneCome creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Il deploy dellapplicazione 23. Il PaaS di Google : Google App Engine Ed ecco pubblicata la nostra applicazione!Come creare una Web Server Application Java (tramite il plug-in per eclipse):Come creare una Web Server Application Java (tramite il plug-in per eclipse):Il deploy dellapplicazione 24. Il PaaS di Google : Google App Engine I servizi offerti per larchiviazione dati sono: App Engine Datastore: Offre un servizio non schematico e che non SQL.In compenso si posso effettuare query e transazioni atomiche Google Cloud SQL: Offre un servizio di DBMS relazionale gestibile tramite SQL, simile a MySQL Google Cloud Storage: Offre un servizio che permette di salvare file e oggettidi grandezza superiore ad un 1 TB Dei tre servizi, nella versione gratuita del PaaS, lo sviluppatore pu utilizzare soloil primo.Database e DatastoreDatabase e DatastoreIn generale 25. Il PaaS di Google : Google App Engine Il servizio non dissimile per certi versi da un DBMS relazionale.Esso permette di creare degli oggetti di un certo tipo (un po come con letabelle e le righe in SQL), solo che le propriet degli oggetti della stessa entitpossono avere tipi diversi (Esempio: un oggetto dellentit Persona pu avereun campo et di tipo intero, rispetto ad un altro che ha lo stesso campo di tipostringa). Inoltre i punti salienti che lo differenziano maggiormente sono: Sistema auto-scalare Sistema di query molto pi restrittivo: Mancato supporto alle join Mancanza di un sistema di controllo e filtraggio sui tipi di dati Mancanza di un sistema di filtraggio dei dati effettuato con delle sotto-queryDatabase e DatastoreDatabase e DatastoreApp Engine Datastore 26. Il PaaS di Google : Google App Engine In alternativa al servizio precedente possibile utilizzare Google Cloud SQL, unDBMS della famiglia di MySQL. Per poterlo utilizzare, necessario acquistareun apposito abbonamento (per esempio si pu avere a disposizione 16 GB diRAM e 100 GB di memoria per 0.025$ allora). I vantaggi: Facile da utilizzare : Offre una comoda e intuitiva interfaccia grafica Completamente auto-gestito : Backup e ripristino dei dati gestitodirettamente da Google Alta affidabilit daccesso Integrazione completa con il PaaS e altri servizi di Google Servizio di sicurezza affidabileDatabase e DatastoreDatabase e DatastoreGoogle Cloud SQL 27. Il PaaS di Google : Google App EngineCosti per servizi offertiCosti per servizi offertiTabella dei costi per abbonamento 28. Il PaaS di Google : Google App EngineCosti per servizi offertiCosti per servizi offertiTabella dei costi alluso 29. Il PaaS di Google : Google App EngineCosti per servizi offertiCosti per servizi offertiTabella dei costi per servizi aggiuntivi (sempre con la stessa formula) 30. Il PaaS di Google : Google App Engine Google App Engine offre degli ottimi servizi, sia nella versione gratuita che apagamento. Lunica pecca il servizio di Database per la versione gratuita. Oltre a ci, pu risultare allinizio essere estremamente macchinosa laconfigurazione del software. Ma daltro canto, i servizi offerti sono innumerevoli (dalla sicurezza alla gestionedei task, dalle mille modalit di archiviazione dati fino alla scalabilit delservizio).In conclusioneIn conclusioneTirando le somme 31. Il PaaS di Google : Google App Engine https://developers.google.com/appengine/ https://developers.google.com/appengine/docs/whatisgoogleappengine https://developers.google.com/appengine/docs/java/gettingstarted/creating https://developers.google.com/appengine/docs/java/gettingstarted/usingjsps https://developers.google.com/appengine/docs/java/datastore/overview https://developers.google.com/cloud-sql/In conclusioneIn conclusioneRiferimenti