SlideShare a Scribd company logo
1 of 114
Download to read offline
FLY S.O.S.
"Dallo sviluppo cloud a quello mobile con
            tecnologie Google"




http : / / www. 7 se e d s. i nfo
Chi siamo


      http : / / www. 7 se e d s. i nfo
Chi siamo


      http : / / www. 7 se e d s. i nfo
Parleremo di

1. Il progetto
2. L’architettura
3. Tecnologie Google per lo sviluppo
    1. Google App Engine
    2. Google Web Toolkit
    3. Android SDK
4. Sviluppo web oriented
    1. Web compliant
    2. API REST
    3. Formato JSON
    4. Autenticazione
5. Modello di sviluppo
DEMO
http://www.rescueme.7seeds.info
L’architettura
Dal cloud al mobile con tecnologie Google
API REST   oAuth2
                    Risposta JSON
Tecnologie Google per lo
       sviluppo
BACKEND: Google App Engine
BACKEND: Google App Engine
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
          • Piattaforma pronta per la
            pubblicazione
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
          • Piattaforma pronta per la
            pubblicazione
          • Autoscaling delle applicazioni
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
          • Piattaforma pronta per la
            pubblicazione
          • Autoscaling delle applicazioni

        Offre account gratuiti limitati
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
          • Piattaforma pronta per la
            pubblicazione
          • Autoscaling delle applicazioni

        Offre account gratuiti limitati
          • Limiti giornalieri sulle risorse
BACKEND: Google App Engine


        Cloud by Google: Platform as a Service
          • Piattaforma pronta per la
            pubblicazione
          • Autoscaling delle applicazioni

        Offre account gratuiti limitati
          • Limiti giornalieri sulle risorse
          • Pagamento a consumo
App Engine - Features
App Engine - Features
Ricca offerta di API e tecnologie
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
    • Datastore
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
    • Datastore
    • Memcache
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
    • Datastore
    • Memcache
    • XMPP server
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
    • Datastore
    • Memcache
    • XMPP server
    • Task Queue
App Engine - Features
Ricca offerta di API e tecnologie
  • Linguaggi supportati: Java, Python
  • Supporto a diverse tecnologie out-of-the-box
    • Datastore
    • Memcache
    • XMPP server
    • Task Queue
  • Accesso a API Google (autenticazione)
App Engine - Features
App Engine - Features
Ambiente completo per lo sviluppo
App Engine - Features
Ambiente completo per lo sviluppo
 • SDK per i linguaggi supportati ufficialmente Java, Python
App Engine - Features
Ambiente completo per lo sviluppo
 • SDK per i linguaggi supportati ufficialmente Java, Python
 • Replica locale dei servizi disponibili in produzione
App Engine - Features
Ambiente completo per lo sviluppo
 • SDK per i linguaggi supportati ufficialmente Java, Python
 • Replica locale dei servizi disponibili in produzione
 • Software CLI per la pubblicazione
App Engine - Features
Ambiente completo per lo sviluppo
 •   SDK per i linguaggi supportati ufficialmente Java, Python
 •   Replica locale dei servizi disponibili in produzione
 •   Software CLI per la pubblicazione
 •   Forte integrazione con Eclipse tramite plugin ufficiali
App Engine - Features
Ambiente completo per lo sviluppo
  •   SDK per i linguaggi supportati ufficialmente Java, Python
  •   Replica locale dei servizi disponibili in produzione
  •   Software CLI per la pubblicazione
  •   Forte integrazione con Eclipse tramite plugin ufficiali

Limiti della piattaforma
App Engine - Features
Ambiente completo per lo sviluppo
  •   SDK per i linguaggi supportati ufficialmente Java, Python
  •   Replica locale dei servizi disponibili in produzione
  •   Software CLI per la pubblicazione
  •   Forte integrazione con Eclipse tramite plugin ufficiali

Limiti della piattaforma
  • No threads
App Engine - Features
Ambiente completo per lo sviluppo
  •   SDK per i linguaggi supportati ufficialmente Java, Python
  •   Replica locale dei servizi disponibili in produzione
  •   Software CLI per la pubblicazione
  •   Forte integrazione con Eclipse tramite plugin ufficiali

Limiti della piattaforma
  • No threads
  • No database SQL
App Engine - Features
Ambiente completo per lo sviluppo
  •   SDK per i linguaggi supportati ufficialmente Java, Python
  •   Replica locale dei servizi disponibili in produzione
  •   Software CLI per la pubblicazione
  •   Forte integrazione con Eclipse tramite plugin ufficiali

Limiti della piattaforma
  • No threads
  • No database SQL
  • No accesso al filesystem
App Engine - Features
Ambiente completo per lo sviluppo
  •   SDK per i linguaggi supportati ufficialmente Java, Python
  •   Replica locale dei servizi disponibili in produzione
  •   Software CLI per la pubblicazione
  •   Forte integrazione con Eclipse tramite plugin ufficiali

Limiti della piattaforma
  • No threads
  • No database SQL
  • No accesso al filesystem
  • Tutti i task hanno un tempo limite
FRONTEND: GWT   (area backoffice)
FRONTEND: GWT   (area backoffice)
FRONTEND: GWT         (area backoffice)




      Google Web Toolkit per sviluppo RIA
FRONTEND: GWT         (area backoffice)




      Google Web Toolkit per sviluppo RIA
      from JAVA to JAVASCRIPT Widgets
FRONTEND: GWT         (area backoffice)




      Google Web Toolkit per sviluppo RIA
      from JAVA to JAVASCRIPT Widgets

      Compatibilità crossbrowser
GWT - Features
GWT - Features
GWT - Features

Plain Old Java: ambiente di sviluppo familiare   (oggetti, test...)
GWT - Features

Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
GWT - Features

Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
GWT - Features

Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
Molti widget già pronti (tabelle, popup ...)
GWT - Features

Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
Molti widget già pronti (tabelle, popup ...)
Integrazione Eclipse - Browser per debugging
MOBILE DEVICE: Android
MOBILE DEVICE: Android
MOBILE DEVICE: Android


      Open-source
MOBILE DEVICE: Android


      Open-source
      Disponibile per molti device
MOBILE DEVICE: Android


      Open-source
      Disponibile per molti device
      Sviluppo e distribuzione gratuita
MOBILE DEVICE: Android


      Open-source
      Disponibile per molti device
      Sviluppo e distribuzione gratuita
      Grande visibilità nel Market
MOBILE DEVICE: Android


      Open-source
      Disponibile per molti device
      Sviluppo e distribuzione gratuita
      Grande visibilità nel Market
      Poca qualità della concorrenza
Android - Features
Android - Features
Android - Features

Sviluppo in Java
Android - Features

Sviluppo in Java
SDK ufficiale con estensioni delle classi
Android - Features

Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Android - Features

Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
Android - Features

Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
UIDesigner povero (per ora), necessario XML a mano
Android - Features

Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
UIDesigner povero (per ora), necessario XML a mano
Viste utente diventano “Activities”
Sviluppo web oriented
HTTP
HTTP




HTTP 1.1
HTTP



           Universale

HTTP 1.1
HTTP



           Universale

HTTP 1.1   Semplice da implementare
HTTP



           Universale

HTTP 1.1   Semplice da implementare
           Stabile e consolidato
HTTP



           Universale

HTTP 1.1   Semplice da implementare
           Stabile e consolidato
           It just works (everywhere)
FRONTEND: HTML   (area utente)
FRONTEND: HTML   (area utente)
FRONTEND: HTML          (area utente)




     Standard e compatibile con ogni device
FRONTEND: HTML          (area utente)




     Standard e compatibile con ogni device
     Personalizza la UX per i diversi media
FRONTEND: HTML          (area utente)




     Standard e compatibile con ogni device
     Personalizza la UX per i diversi media
     Leggero da scaricare dal browser
FRONTEND: HTML          (area utente)




     Standard e compatibile con ogni device
     Personalizza la UX per i diversi media
     Leggero da scaricare dal browser
     Veloce da sviluppare
REST
REST




REST
REST



       Chiaro e semplice

REST
REST



       Chiaro e semplice

REST   Semantico
REST



       Chiaro e semplice

REST   Semantico
       Risorse con identificativi univoci
REST



       Chiaro e semplice

REST   Semantico
       Risorse con identificativi univoci
       Facilmente estendibile
JSON
JSON




JSON
JSON



       Leggero

JSON
JSON



       Leggero

JSON   Senza schema
JSON



       Leggero

JSON   Senza schema
       Supportato da tutti i linguaggi
JSON



       Leggero

JSON   Senza schema
       Supportato da tutti i linguaggi
       Conversioni più veloci di XML
oAuth
oAuth
oAuth



Tecnologia innovativa
oAuth



Tecnologia innovativa
Standard de facto
oAuth



Tecnologia innovativa
Standard de facto
Maggior sicurezza
oAuth



Tecnologia innovativa
Standard de facto
Maggior sicurezza
Maggior controllo negli accessi
Modello di sviluppo
Modello di sviluppo
Modello di sviluppo

Analisi   [30 ore a persona]
Modello di sviluppo

Analisi   [30 ore a persona]


Progettazione        [40 ore a persona]
Modello di sviluppo

Analisi   [30 ore a persona]


Progettazione        [40 ore a persona]


Progettazione di Dettaglio                [30 ore a persona]
Modello di sviluppo

Analisi   [30 ore a persona]


Progettazione        [40 ore a persona]


Progettazione di Dettaglio                [30 ore a persona]


Codifica     [50 ore a persona]
Modello di sviluppo

Analisi   [30 ore a persona]


Progettazione        [40 ore a persona]


Progettazione di Dettaglio                [30 ore a persona]


Codifica     [50 ore a persona]


Verifica    [25 ore a persona]
Pro
Pro
Pro


1)Tecnologie consistenti ( Java )
Pro


1)Tecnologie consistenti ( Java )
2)Tecnologie open-source
Pro


1)Tecnologie consistenti ( Java )
2)Tecnologie open-source
3)Pronto alla produzione senza ostacoli
Pro


1)Tecnologie consistenti ( Java )
2)Tecnologie open-source
3)Pronto alla produzione senza ostacoli
4)Approfondimento di nuove tecnologie
Contro
Contro
Contro


1)Verbosità linguaggio Java e suoi framework
Contro


1)Verbosità linguaggio Java e suoi framework
2)Programmazione mobile non cross-platform
Contro


1)Verbosità linguaggio Java e suoi framework
2)Programmazione mobile non cross-platform
3)Molte ore dedicate alla documentazione
Contro


1)Verbosità linguaggio Java e suoi framework
2)Programmazione mobile non cross-platform
3)Molte ore dedicate alla documentazione
4)Google App Engine non configurabile

More Related Content

Viewers also liked

2009 Cvitanovic Balkan Soundscapes
2009 Cvitanovic Balkan Soundscapes2009 Cvitanovic Balkan Soundscapes
2009 Cvitanovic Balkan SoundscapesDivided Societies
 
2009 Tomic Koludrovic And Petric Croatia Transition
2009 Tomic Koludrovic And Petric Croatia Transition2009 Tomic Koludrovic And Petric Croatia Transition
2009 Tomic Koludrovic And Petric Croatia TransitionDivided Societies
 
Multiculturalism And Nationalism Kosovo And Northern Ireland
Multiculturalism And Nationalism Kosovo And Northern IrelandMulticulturalism And Nationalism Kosovo And Northern Ireland
Multiculturalism And Nationalism Kosovo And Northern IrelandDivided Societies
 
2009 Uzelac Croatia Legal Reform
2009 Uzelac Croatia Legal Reform2009 Uzelac Croatia Legal Reform
2009 Uzelac Croatia Legal ReformDivided Societies
 
Cross-Border Cartographic Imaginery
Cross-Border Cartographic ImagineryCross-Border Cartographic Imaginery
Cross-Border Cartographic ImagineryDivided Societies
 
2009 Deegan Krause Cleavages
2009 Deegan Krause Cleavages2009 Deegan Krause Cleavages
2009 Deegan Krause CleavagesDivided Societies
 

Viewers also liked (7)

2009 Cvitanovic Balkan Soundscapes
2009 Cvitanovic Balkan Soundscapes2009 Cvitanovic Balkan Soundscapes
2009 Cvitanovic Balkan Soundscapes
 
2009 Tomic Koludrovic And Petric Croatia Transition
2009 Tomic Koludrovic And Petric Croatia Transition2009 Tomic Koludrovic And Petric Croatia Transition
2009 Tomic Koludrovic And Petric Croatia Transition
 
Zagar-Diversity Management
Zagar-Diversity ManagementZagar-Diversity Management
Zagar-Diversity Management
 
Multiculturalism And Nationalism Kosovo And Northern Ireland
Multiculturalism And Nationalism Kosovo And Northern IrelandMulticulturalism And Nationalism Kosovo And Northern Ireland
Multiculturalism And Nationalism Kosovo And Northern Ireland
 
2009 Uzelac Croatia Legal Reform
2009 Uzelac Croatia Legal Reform2009 Uzelac Croatia Legal Reform
2009 Uzelac Croatia Legal Reform
 
Cross-Border Cartographic Imaginery
Cross-Border Cartographic ImagineryCross-Border Cartographic Imaginery
Cross-Border Cartographic Imaginery
 
2009 Deegan Krause Cleavages
2009 Deegan Krause Cleavages2009 Deegan Krause Cleavages
2009 Deegan Krause Cleavages
 

Similar to Dal cloud al mobile con tecnologie Google

Il PaaS di Google
Il PaaS di GoogleIl PaaS di Google
Il PaaS di GoogleMssiStf
 
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo BugianiIntroduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugianifirenze-gtug
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Andrea Dottor
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiMarco Gasparetto
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudDavide Benvegnù
 
01 Android - Introduction
01   Android - Introduction01   Android - Introduction
01 Android - Introductionspawn150
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il MobilePietro Libro
 

Similar to Dal cloud al mobile con tecnologie Google (20)

Il PaaS di Google
Il PaaS di GoogleIl PaaS di Google
Il PaaS di Google
 
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo BugianiIntroduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
 
01 Android - Introduction
01   Android - Introduction01   Android - Introduction
01 Android - Introduction
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Kubernetes Core Concepts
Kubernetes Core ConceptsKubernetes Core Concepts
Kubernetes Core Concepts
 
Golang + AngulaJS on GCP
Golang + AngulaJS on GCPGolang + AngulaJS on GCP
Golang + AngulaJS on GCP
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 

Dal cloud al mobile con tecnologie Google

  • 1. FLY S.O.S. "Dallo sviluppo cloud a quello mobile con tecnologie Google" http : / / www. 7 se e d s. i nfo
  • 2. Chi siamo http : / / www. 7 se e d s. i nfo
  • 3. Chi siamo http : / / www. 7 se e d s. i nfo
  • 4. Parleremo di 1. Il progetto 2. L’architettura 3. Tecnologie Google per lo sviluppo 1. Google App Engine 2. Google Web Toolkit 3. Android SDK 4. Sviluppo web oriented 1. Web compliant 2. API REST 3. Formato JSON 4. Autenticazione 5. Modello di sviluppo
  • 8. API REST oAuth2 Risposta JSON
  • 9. Tecnologie Google per lo sviluppo
  • 12. BACKEND: Google App Engine Cloud by Google: Platform as a Service
  • 13. BACKEND: Google App Engine Cloud by Google: Platform as a Service • Piattaforma pronta per la pubblicazione
  • 14. BACKEND: Google App Engine Cloud by Google: Platform as a Service • Piattaforma pronta per la pubblicazione • Autoscaling delle applicazioni
  • 15. BACKEND: Google App Engine Cloud by Google: Platform as a Service • Piattaforma pronta per la pubblicazione • Autoscaling delle applicazioni Offre account gratuiti limitati
  • 16. BACKEND: Google App Engine Cloud by Google: Platform as a Service • Piattaforma pronta per la pubblicazione • Autoscaling delle applicazioni Offre account gratuiti limitati • Limiti giornalieri sulle risorse
  • 17. BACKEND: Google App Engine Cloud by Google: Platform as a Service • Piattaforma pronta per la pubblicazione • Autoscaling delle applicazioni Offre account gratuiti limitati • Limiti giornalieri sulle risorse • Pagamento a consumo
  • 18. App Engine - Features
  • 19. App Engine - Features Ricca offerta di API e tecnologie
  • 20. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python
  • 21. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box
  • 22. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box • Datastore
  • 23. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box • Datastore • Memcache
  • 24. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box • Datastore • Memcache • XMPP server
  • 25. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box • Datastore • Memcache • XMPP server • Task Queue
  • 26. App Engine - Features Ricca offerta di API e tecnologie • Linguaggi supportati: Java, Python • Supporto a diverse tecnologie out-of-the-box • Datastore • Memcache • XMPP server • Task Queue • Accesso a API Google (autenticazione)
  • 27. App Engine - Features
  • 28. App Engine - Features Ambiente completo per lo sviluppo
  • 29. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python
  • 30. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione
  • 31. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione
  • 32. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali
  • 33. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali Limiti della piattaforma
  • 34. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali Limiti della piattaforma • No threads
  • 35. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali Limiti della piattaforma • No threads • No database SQL
  • 36. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali Limiti della piattaforma • No threads • No database SQL • No accesso al filesystem
  • 37. App Engine - Features Ambiente completo per lo sviluppo • SDK per i linguaggi supportati ufficialmente Java, Python • Replica locale dei servizi disponibili in produzione • Software CLI per la pubblicazione • Forte integrazione con Eclipse tramite plugin ufficiali Limiti della piattaforma • No threads • No database SQL • No accesso al filesystem • Tutti i task hanno un tempo limite
  • 38. FRONTEND: GWT (area backoffice)
  • 39. FRONTEND: GWT (area backoffice)
  • 40. FRONTEND: GWT (area backoffice) Google Web Toolkit per sviluppo RIA
  • 41. FRONTEND: GWT (area backoffice) Google Web Toolkit per sviluppo RIA from JAVA to JAVASCRIPT Widgets
  • 42. FRONTEND: GWT (area backoffice) Google Web Toolkit per sviluppo RIA from JAVA to JAVASCRIPT Widgets Compatibilità crossbrowser
  • 45. GWT - Features Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
  • 46. GWT - Features Plain Old Java: ambiente di sviluppo familiare (oggetti, test...) Utilizza servlet per comunicazioni RPC client/server
  • 47. GWT - Features Plain Old Java: ambiente di sviluppo familiare (oggetti, test...) Utilizza servlet per comunicazioni RPC client/server Permette l’utilizzo di interfacce condivise tra client e server
  • 48. GWT - Features Plain Old Java: ambiente di sviluppo familiare (oggetti, test...) Utilizza servlet per comunicazioni RPC client/server Permette l’utilizzo di interfacce condivise tra client e server Molti widget già pronti (tabelle, popup ...)
  • 49. GWT - Features Plain Old Java: ambiente di sviluppo familiare (oggetti, test...) Utilizza servlet per comunicazioni RPC client/server Permette l’utilizzo di interfacce condivise tra client e server Molti widget già pronti (tabelle, popup ...) Integrazione Eclipse - Browser per debugging
  • 52. MOBILE DEVICE: Android Open-source
  • 53. MOBILE DEVICE: Android Open-source Disponibile per molti device
  • 54. MOBILE DEVICE: Android Open-source Disponibile per molti device Sviluppo e distribuzione gratuita
  • 55. MOBILE DEVICE: Android Open-source Disponibile per molti device Sviluppo e distribuzione gratuita Grande visibilità nel Market
  • 56. MOBILE DEVICE: Android Open-source Disponibile per molti device Sviluppo e distribuzione gratuita Grande visibilità nel Market Poca qualità della concorrenza
  • 60. Android - Features Sviluppo in Java SDK ufficiale con estensioni delle classi
  • 61. Android - Features Sviluppo in Java SDK ufficiale con estensioni delle classi JVM dalvik depotenziata (classi in blacklist)
  • 62. Android - Features Sviluppo in Java SDK ufficiale con estensioni delle classi JVM dalvik depotenziata (classi in blacklist) Necessario Eclipse con l’emulatore (ottima integrazione!)
  • 63. Android - Features Sviluppo in Java SDK ufficiale con estensioni delle classi JVM dalvik depotenziata (classi in blacklist) Necessario Eclipse con l’emulatore (ottima integrazione!) UIDesigner povero (per ora), necessario XML a mano
  • 64. Android - Features Sviluppo in Java SDK ufficiale con estensioni delle classi JVM dalvik depotenziata (classi in blacklist) Necessario Eclipse con l’emulatore (ottima integrazione!) UIDesigner povero (per ora), necessario XML a mano Viste utente diventano “Activities”
  • 66. HTTP
  • 68. HTTP Universale HTTP 1.1
  • 69. HTTP Universale HTTP 1.1 Semplice da implementare
  • 70. HTTP Universale HTTP 1.1 Semplice da implementare Stabile e consolidato
  • 71. HTTP Universale HTTP 1.1 Semplice da implementare Stabile e consolidato It just works (everywhere)
  • 72. FRONTEND: HTML (area utente)
  • 73. FRONTEND: HTML (area utente)
  • 74. FRONTEND: HTML (area utente) Standard e compatibile con ogni device
  • 75. FRONTEND: HTML (area utente) Standard e compatibile con ogni device Personalizza la UX per i diversi media
  • 76. FRONTEND: HTML (area utente) Standard e compatibile con ogni device Personalizza la UX per i diversi media Leggero da scaricare dal browser
  • 77. FRONTEND: HTML (area utente) Standard e compatibile con ogni device Personalizza la UX per i diversi media Leggero da scaricare dal browser Veloce da sviluppare
  • 78. REST
  • 80. REST Chiaro e semplice REST
  • 81. REST Chiaro e semplice REST Semantico
  • 82. REST Chiaro e semplice REST Semantico Risorse con identificativi univoci
  • 83. REST Chiaro e semplice REST Semantico Risorse con identificativi univoci Facilmente estendibile
  • 84. JSON
  • 86. JSON Leggero JSON
  • 87. JSON Leggero JSON Senza schema
  • 88. JSON Leggero JSON Senza schema Supportato da tutti i linguaggi
  • 89. JSON Leggero JSON Senza schema Supportato da tutti i linguaggi Conversioni più veloci di XML
  • 90. oAuth
  • 91. oAuth
  • 94. oAuth Tecnologia innovativa Standard de facto Maggior sicurezza
  • 95. oAuth Tecnologia innovativa Standard de facto Maggior sicurezza Maggior controllo negli accessi
  • 98. Modello di sviluppo Analisi [30 ore a persona]
  • 99. Modello di sviluppo Analisi [30 ore a persona] Progettazione [40 ore a persona]
  • 100. Modello di sviluppo Analisi [30 ore a persona] Progettazione [40 ore a persona] Progettazione di Dettaglio [30 ore a persona]
  • 101. Modello di sviluppo Analisi [30 ore a persona] Progettazione [40 ore a persona] Progettazione di Dettaglio [30 ore a persona] Codifica [50 ore a persona]
  • 102. Modello di sviluppo Analisi [30 ore a persona] Progettazione [40 ore a persona] Progettazione di Dettaglio [30 ore a persona] Codifica [50 ore a persona] Verifica [25 ore a persona]
  • 103. Pro
  • 104. Pro
  • 106. Pro 1)Tecnologie consistenti ( Java ) 2)Tecnologie open-source
  • 107. Pro 1)Tecnologie consistenti ( Java ) 2)Tecnologie open-source 3)Pronto alla produzione senza ostacoli
  • 108. Pro 1)Tecnologie consistenti ( Java ) 2)Tecnologie open-source 3)Pronto alla produzione senza ostacoli 4)Approfondimento di nuove tecnologie
  • 109. Contro
  • 110. Contro
  • 112. Contro 1)Verbosità linguaggio Java e suoi framework 2)Programmazione mobile non cross-platform
  • 113. Contro 1)Verbosità linguaggio Java e suoi framework 2)Programmazione mobile non cross-platform 3)Molte ore dedicate alla documentazione
  • 114. Contro 1)Verbosità linguaggio Java e suoi framework 2)Programmazione mobile non cross-platform 3)Molte ore dedicate alla documentazione 4)Google App Engine non configurabile