Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Desktop condivisi: esso si basa su un server che ospita gli utenti desktop e le applicazioni. La condivisione del desktop è

molto diffusa poiché tutta la potenza di calcolo risiede su un computer solo mentre solo i mouse ed i monitor sono

collegati alla rete.

PC blade desktop fisici

Gli utenti hanno a disposizione di un proprio PC, ma l'hardware fisico è un "PC blade" all'interno di un "vano blade" nel

datacenter

Desktop di una macchina virtuale: è il contrario del desktop condiviso. Un unico client può ospitare desktop multipli.

Ecco come funziona la VDI (Virtual Desktop Infrastructure)

Central Hosting

Local hosting

Virtualizzazione del server

La virtualizzazione del server ha dei benefici enormi, in quanto riduce il TCO (Total cost of ownership):

Infatti, virtualizzando un server si risparmia hardware, elettricità e raffreddamento, ed inoltre si può mantere alto

l'utilizzo del sistema, rendendolo più efficiente (in genere i server stanno sotto il 10% dell'utilizzo)

Semplifica la gestione e la sicurezza del server e degli utenti.

Applicazioni Web e Cloud Pagina 10

APP CLOUD 3° Lezione

giovedì 15 ottobre 2015 21:05

Cloud

Le Radici del Cloud Computing

Prima di iniziare a parlare del cloud computing in se, soffermiamoci sulle radici che hanno portato alla formazione di

questo fenomeno. Soffermiamoci su questa immagine:

I 4 "componenti" del cloud computing sono:

• Hardware: Virtualizzazione, processori multi-core

• Tecnologie internet: Web 2.0, Web Services, SOA

• Sistemi Distribuiti: Grid Computing

• System Managment: Autonomic Computing

Tutti questi fattori contribuiscono a creare la Cloud.

Analizziamoli in dettaglio:

Sistemi Distribuiti: Un Sistema distribuito è formato da un dato

Numero di processori, amministratori, Sistemi operativi, legati

Da una rete di interconnessione. Agli occhi dell'utente però, è

Come se fosse una cosa sola.

SOA, Web Services, Web 2.0: Per Web 2.0 si intende un'evoluzione della piattaforma web: più nel dettaglio, è l'utente

che crea il contenuto (blog, forum, ecc.)

Sistemi Paralleli: Un sistema parallelo, diversamente da un sistema distribuito, è formato da solo un processore (un

sistema operativo) ma costituito da un numero di nodi.

Cos'è una Cloud?

La cloud è un paradigma che si basa sui concetti di autonomic computing, sistemi distribuiti, e utility computing . Può

fornire servizi quali servizi di storage, applicazioni di computing utilities(potenza di calcolo senza conoscere ciò che c'è

sotto).

La struttura hardware della cloud non è di rilevanza all'utente che la utilizza: tuttavia sono spesso fatte da cluster di

server con un S.O open source.

La tecnologia base su cui si basa la cloud è la virtualizzazione.

Per spiegare facilmente cos'è la cloud, facciamo un semplice paragone: noi utilizziamo la corrente elettrica per un sacco

di dispositivi, ma non sappiamo con precisione come funziona il tutto: in modo simile, nel cloud computing l'utente

utilizza le risorse (a vista dell'utente "illimitate") senza sapere cosa c'è sotto tutta quella potenza di calcolo.

L'utente può disporre di servizi come risorse di calcolo "on demand" e servizi "pay as you go"

Le carattereristiche essenziali del cloud computing sono:

• On Demand Self Service: L'utente prende risorse "on demand" ossia quanto gli basta per i suoi bisogni, senza il

bisogno di un'interazione "umana" con il service provider

• Broad Network Access: Le risorse sono disponibile ampiamente su tutta la rete, e supportano una vasta gamma di

dispositivi (tablet, smartphone, pc, ecc)

Applicazioni Web e Cloud Pagina 11

• Rapid Elasticity

• Measured Service

La cloud si divide in 3 modelli di sviluppo: IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software

as a Service)

IaaS

Nella Infrastructure As A Service L'utente gestisce interamente CPU, storage, memoria, ecc. è in grado di installare ed

eseguire codice, come eseguire applicazioni o sistemi operativi. In poche parole la IaaS fornisce risorse virtualizzate on

demand.

L'utente tuttavia non gestisce l'infrastruttura stessa della cloud, ossia la gestione della virtualizzazione, ecc. quello spe tta

al provider.

Tra i vantaggi di utilizzo della IaaS vi sono sicurezza, affidabilità, e la completa gestione delle API.

Esempio di problema risolvibile dal IaaS: devo fare girare un sito web temporaneo, per qualche giorno -> "affitto" un

servizio IaaS per hostare il mio sito sul server

PaaS

La Platform As A Service è un po' più "limitante" rispetto alla IaaS: infatti l'utente è a disposizione di una piattaforma

dove installare o creare applicazioni. l'utente non gestisce più ne le risorse, ne il sistema operativo, ecc.

I servizi più diffusi a riguardo sono quelli di storage e backup, e multisync con dispositivi mobili

Esempio di problema risolvibile dal PaaS: devo offrire un dello storage a tutti i miei dipendenti ma non ho abbastanza

capacità fisica -> "affitto" un servizio di storage PaaS

SaaS

Nella SaaS l'utente si limita ad utilizzare le applicazioni di un cloud provider: ad esempio Gmail, Dropbox, Office365, ecc.

l'utente può soltanto utilizzare l'applicazioni, e non ha nessun controllo ne delle risorse ne di nessuna piattaforma. Tutto

è lasciato al cloud provider.

Esempio di problema risolvibile dal SaaS: il server di posta è lento ed ha frequenti crash -> utilizzo un servizio mail su

cloud.

Qua sotto uno schema per comprendere meno i 3 tipi di servizi:

Modelli di Deployment

Esistono diversi modelli di deployment (ossia "come viene distribuito il servizio"):

• Private Cloud: Fornita per uso esclusivo di una singola organizzazione che comprende più utenti. Spesso è gestita

Applicazioni Web e Cloud Pagina 12

• Private Cloud: Fornita per uso esclusivo di una singola organizzazione che comprende più utenti. Spesso è gestita

da una singola organizzazione

• Community Cloud: Fornita per uso esclusivo di specifiche comunità di utenti. Può essere gestita da una o più

organizzazioni.

• Public Cloud: Fornita per uso comune e al pubblico. Spesso gestita da organizzazioni di business o governativa.

• Hybrid Cloud: Combinazione tra due o più cloud infrastructure (private, community o public)

Tra i vantaggi comuni dei 3 servizi offerti abbiamo:

• Dati e servizi sono su un'infrastruttura remota

• Questi dati e servizi sono disponibili ovunque

• Modello di fornitura simile a quello di elettricità, gas

Si può utilizzare anche il cloud computing come se fosse un gigantesco supercomputer: infatti facendo lavorare i

terminali connessi alla cloud in parallelo, si arrivano a gestire grandissime quantità di dati (si pensi al DNA sequencing

fatto da computer in parallelo) Applicazioni Web e Cloud Pagina 13

APP CLOUD 4° Lezione

giovedì 5 novembre 2015 14:07

Web

Vi sono vari tipi di applicazioni internet: il web ( o world wide web, o WWW) è l'applicazione internet più usata.

Possiamo definire il web semplicemente come un insieme di ipertesti multimediali distribuiti su molti nodi.

Un ipertesto (hypertext) è un documento con struttura non sequenziale: più precisamente, è composto da vari "link"

interni ed esterni, che permettono all'utente di "saltare", "muoversi" tra vari argomenti.

Nell'ipertesto, oltre al testo abbiamo che immagini, musica, video, ecc.

Architettura utilizzato nel WWW è sempre l'architettura client-server: infatti il client (chiamato anche web browser)

permette all'utente di accedere e visualizzare pagine web: queste pagine web sono fornite dal web sever.

Delle ormai miliardi di pagine web presenti su internet, ognuna di esse deve essere identificabile ed univoca. A tal

proposito si utilizza l'URL (Uniform Resource Locator), ossia una URI (Uniform Resource Identifier) che oltre ad

identificare una risorsa fornisce anche un meccanismo per localizzarla.

Essa rispetta la sintassi URI in quanto: http: // hostname [:port] / path [? query]

(i campi tra parentesi quadri sono opzionali.) in genere gli utenti non vedono i parametri opzionali.

l'accesso al web è semplice ed intuitivo, analizziamo i passi:

1. L'utente inserisce un URL o clicca su un link

2. Il browser effettua il parsing dell'url, inviando una richiesta al server, e riceve una copia della pagina

3. Il server riceve la richiesta, seleziona la pagina e la invia al client

4. Il browser effettua il parsing della pagina HTML e la mostra all'utente.

Il trasferimento delle pagine web dal server al client avviene tramite il protocollo HTTP (HyperText Transfer Protocol).

Esso si basa su TCP e permette trasferimenti bi-direzionali.

Nella prima versione di HTTP erano presenti solo 3 operazioni: GET, POST, e HEAD.

Nella versione 1.1 invece sono state aggiunte le operazioni PUT e DELETE.

Analizziamole più in dettaglio:

• GET: la GET viene utilizzata per ottenere un documento.

• HEAD: Simile a GET, ma essa ottiene solo le informazioni dell'header. (utile per controllare se un documento

esiste e quanto è recente)

• POST: Simile a GET, ma codifica gli input in modo diverso

• PUT: Trasferisce un documento al server.

• DELETE: Elimina un documento dal server.

Oltre alla richiesta, il client può specificare ulteriori informazioni nella richiesta, come User-Agent, From, Authorization

(nome utente e password), ecc.

Nell'header di risposta del server, oltre al codice di stato vi sono altri parametri di risposta, come il tempo della risposta,

l'ultima volta che il documento è stato modificato, dimensione e tipo del documento, ecc.

HTTP 1.0 utilizza una connessione TCP per ogni trasferimento (connessione non persistente), mentre HTTP 1.1 utilizza

una connessione persistente. Tuttavia la persistenza, oltre ai suoi molti vantaggi porta anche dei problemi: ad esempio,

nelle pagine web dinamiche non è possibile calcolare la dimensione della pagina in anticipo, ma solo quando il server

chiude la connessione: una soluzione a ciò può essere l'HTTP chunking.

L'HTTP chunking aggiunge un header speciale (transfer-encoding) che permette di spezzare la risposta in parti diverse.

Caching di pagine web Applicazioni Web e Cloud Pagina 14

Caching di pagine web

Il caching di pagine web è essenziale per garantire efficienza: utilizzando il caching infatti si ha una riduzione della

latenza e traffico, avendo le pagine web direttamente memorizzate su disco.

Il server decide se la pagina può venire messa della cache, ed il tempo massimo per cui la pagina può essere tenuta in

cache. La cache è controllata dai response header: Cache control, Last Modified, e Expires

Supponiamo di voler accedere ad una pagina: se essa è già presente nella cache, il browser invia la GET con l'header if-

modified-since. Se come risposta ottiene 200 (OK), il browser visualizza la pagina e la memorizza nella cache, mentre se il

codice è 304 (Not Modified), visualizza la versione memorizzata nella cache.

HTML

L'HTML (HyperText Markup Language) è un linguaggio di markup (non un linguaggio di programmazione!) che permette

di rendere esplicita una particolare interpretazione di un testo. L'HTML, tramite poche e semplici regole sintattiche si

occupa di descrivere la struttura della pagina. Ed è lo standard di rappresentazione per le pagine Web.

CSS

Parallelamente all'HTML, vi è il CSS (Cascading Style Sheet): più in particolare, il CSS si occupa della formattazione del

contenuto del sito. Il CSS descrive sostanzialmente la presentazione di un documento HTML. Esso può essere separato

dal documento stesso, e fondamentalmente rende le pagine html più leggere e facili da leggere, oltre a risparmiare

milioni di byte di informazioni ridondanti.

HTML

Html NON è un linguaggio di programmazione, bensì un linguaggio di markup

(modellato per rendere esplicita una interpretazione di un testo)

Esso viene utilizzato per la creazione di pagine Web.

Al contrario di linguaggi di programmazione, descrive dati e regole, con pochissime regole sintattiche

Applicazioni Web e Cloud Pagina 15

APP CLOUD 5° Lezione

giovedì 3 dicembre 2015 13:41

XML

XML (eXtensible Markup Language) è un linguaggio di marcatura utilizzato per descrivere i dati. Una

peculiarità di XML è che non esistono tag predefiniti. XML in se non fa niente, si occupa solo di

"formattare" dati in modo da renderli "Machine-readable". Al contrario di HTML, XML è case sensitive, e

tutti i tag devono essere chiusi. Tutti i documenti XML devono avere un nodo radice, e tutti gli altri

elementi devono essere rinchiusi in questo elemento radice.

SOAP

Innanzitutto definiamo l'architettura web service: essa è composta da 3 elementi:

• Service requester: l'utente (client)

• Service provider: entità che implementa il servizio e lo esegue per l'utente (server

• Service registry: registro che elenca i servizi disponibili agli utenti.

Differenza tra SOA e WS

Possiamo considerare delle differenze tra WS (Web Service) e SOA (Service Oriented Architecture)

Il SOA è uno "stile architetturale" per implementare applicazioni software che utilizzano servizi

disponibili in una rete.

Le applicazioni SOA sono basati su servizi, e SOA supporta il loose coupling tra componenti software.

I Web Service sono sistemi software progettati per supportare interazioni tra macchine interoperabili:

questa interoperabilità è ottenuta grazie ad un insieme di standard basati su XML come WSDL, SOAP, e

UDDI(o)

SOAP

SOAP è un protocollo basato su XML per lo scambio di messaggi tra componenti software.

Sostanzialmente, il client traduce la chiamata RPC in un documento XML, il server la riceve e traduce il

documento in una chiamata a procedura, ri traducendolo in un XML, e viene ri inviato al client, e avviene

il processo opposto.

SOAP copre 3 aree principali: Message construct (un formato dei messaggi per una comunicazione one-

way), Processing model (regole per processare i messaggi SOAP), ed Extensibility model (come i

costrutti dei messaggi possono essere estesi)

Applicazioni Web e Cloud Pagina 16

costrutti dei messaggi possono essere estesi)

Un messaggio SOAP, durante la sua trasmissione, attraversa diversi "hop": le entità coinvolte tra questi

hop si chiamano "nodi SOAP".

La struttura di un messaggio SOAP consiste in una envelope: questa "lettera" contiene l'header

(opzionale) ed il body (blocchi con dati dell'applicazione)

I messaggi SOAP posso essere trasferiti usando qualsiasi protocollo: un binding di SOAP è la descrizione

di come un messaggio SOAP può essere inviato attraverso un dato protocollo. Molto spesso viene

utilizzato l'HTTP binding: attraverso questo binding SOAP può utilizzare anche le operazioni GET e POST

Sostanzialmente, SOAP fornisce un meccanismo base per incapsulare un messaggio in documenti XML.

WDSL

Una volta stabilito come interagire con un service provider (SOAP), è necessario descrivere il servizio:

qui entra in campo WDSL.

WDSL descrive l'"interfaccia" pubblica di un web service. Un documento WSDL contiene informazioni su:

• Cosa può essere utilizzato (operazioni)

• Come utilizzarlo (il protocollo di comunicazione da utilizzare, il formato dei messaggi da scambiare,

ecc.)

• Dove utilizzar il servizio (il cosiddetto endpoint del servizio, che solitamente corrisponde

all'indirizzo, in formato URI, che rende disponibile il web service.

Applicazioni Web e Cloud Pagina 17


ACQUISTATO

1 volte

PAGINE

18

PESO

974.55 KB

AUTORE

sk8erb0y

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea magistrale in informatica per la comunicazione
SSD:
Università: Milano - Unimi
A.A.: 2017-2018

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher sk8erb0y di informazioni apprese con la frequenza delle lezioni di Applicazioni Web e Cloud e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Milano - Unimi o del prof Ardagna Claudio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea magistrale in informatica per la comunicazione

Algoritmi e strutture dati
Appunto
Grafica e Immagini digitali
Appunto
Basi Di Dati
Appunto