1Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
UNIVERSITY OF CAGLIARI
DIEE - Department of Electrical and Electronic Engineering
Infrastrutture ed Applicazioni Avanzate
nell’Internet
Google App EnginePaaS
2Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Google App Engine PaaS
• Google App Engine (GAE) è una piattaforma cloud PaaS per lo sviluppo e l’esecuzione di web applications nei data centers gestiti da Google.
3Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Google App Engine PaaS
• Ogni utente ha un certo ammontare di risorse gratuite, abbastanza per piccole applicazioni con poco traffico.
• App Engine può essere descritto come l’insieme di tre parti:
– istanze di applicazioni
– data storage (scalabile)
– servizi (scalabili)
4Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Google App Engine PaaS
5Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Google App Engine PaaS
• Consente ad ogni utente di eseguire fino a 25 applicazioni gratuitamente
• Rimane gratuito se si usano solo per i servizi base e fino ad un certo limite di utilizzo di questi
• Per il supporto a pagamento possibilità di mettere un limite al billing
• I linguaggi di programmazione supportati sono:– Python
– Java
– Go
– PHP
6Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Ambiente di sviluppo
• Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python.
• Un'applicazione può utilizzare la maggior parte della libreria standard di Python
• API e librerie per l'accesso ai servizi e ai dati
• Molti framework web open source Pythonfunzionano con App Engine: Django, web2py, Pyramid e Flask
• App Engine include anche un framework leggero proprio, denominata webapp
7Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Approccio RESTful
• Metodi HTTP(S) :
– GET
• url encoded
– POST
• url endoded
• Json
• XML
8Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Url encoded
• Key-value encoding
• Metodo GET : in the URL
• Metodo POST: in the body
• Key1=value1&key2=value2&key3=value3…
• Es: nome=roberto&cognome=girau
9Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Json Encoded
{"owner-key":"sdkjghskjfhgkjsfhg","owner-id":"[email protected]","limit":"1","hops":"2","tag":"pressure","relationship":[
{"type":"OOR"
},{
"type":"SOR"}
]}
10Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
XML Encoded
<?xml version="1.0" encoding="UTF-8" ?><owner-key>sdkjghskjfhgkjsfhg</owner-key><owner-id>[email protected]</owner-id><limit>1</limit><hops>2</hops><tag>pressure</tag><relationship>
<type>OOR</type></relationship><relationship>
<type>SOR</type></relationship>
11Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Servizio Urlfetch
• Applicazioni App Engine possono accedere ad altre risorse web utilizzando l'URL Fetch.
• Il servizio fa richieste HTTP(s) ad altri server su Internet.
• Dal momento che i server remoti possono essere lenti a rispondere, le API URL Fetch supporta il recupero in background. (mentre un gestore di richieste fa altre cose)
• L'URL Fetch utilizza l'infrastruttura di rete di Google per motivi di efficienza e di scalabilità.
12Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Datastore
13Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Datastore ndb
• È un database non relazionale
• Fornisce robustezza e scalabilità senza tempi di indisponibilità
• I dati vengono salvati in oggetti chiamati Entità
• Ogni Entità possiede:
– Una o più proprietà di tipo numerico, stringa o altro tipo o ancora di tipo entità
14Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Memcache
• MemCache è un servizio di storage chiave-valore a breve termine che consente di accelerare la risposta delle applicazioni.
• Da usare per frequenti richieste a dati del datastorein sola lettura
• Due tipi di servizio:
– Dedicato
– condiviso