university of cagliari · 2017-12-01 · •gestisce applicazioni scritte in python 2.7,...

14
1 Ing. Roberto Girau Infrastrutture 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 Engine PaaS

Upload: others

Post on 03-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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