UNIVERSITY OF CAGLIARI · 2017-12-01 · •Gestisce applicazioni scritte in Python 2.7,...

Preview:

Citation preview

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":"user@gmail.com","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>user@gmail.com</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

Recommended