UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7,...
Transcript of UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7,...
![Page 1: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/1.jpg)
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
![Page 2: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/2.jpg)
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.
![Page 3: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/3.jpg)
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)
![Page 4: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/4.jpg)
4Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Google App Engine PaaS
![Page 5: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/5.jpg)
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
![Page 6: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/6.jpg)
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
![Page 7: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/7.jpg)
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
![Page 8: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/8.jpg)
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
![Page 9: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/9.jpg)
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"}
]}
![Page 10: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/10.jpg)
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>
![Page 11: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/11.jpg)
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à.
![Page 12: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/12.jpg)
12Ing. Roberto GirauInfrastrutture ed applicazioni avanzate nell'Internet
Università degli Studi di Cagliari
Datastore
![Page 13: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/13.jpg)
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à
![Page 14: UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7, utilizzando versione personalizzata di Cpython, l'interprete ufficiale di Python. •Un'applicazione](https://reader035.fdocuments.net/reader035/viewer/2022062919/5ee23acaad6a402d666ccbe4/html5/thumbnails/14.jpg)
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