I COOKIE CI PERMETTONO DI MIGLIORARE LA TUA ESPERIENZA UTENTE CONTINUANDO A NAVIGARE SU QUESTO SITO ACCETTI IL LORO IMPIEGO 

Valutazione attuale: 0 / 5

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

È facile capire come è fatto un blob: si tratta semplicemente di un blocco di byte. Ma le tabelle sono più complesse. Nella figura 14 sono illustrate le parti di una tabella.

 

Figura 14: le tabelle forniscono archiviazione basata su entità.

 

Come mostrato nella figura, ogni tabella contiene un certo numero di entità. Un'entità contiene zero o più proprietà, ciascuna con un nome, un tipo e un valore. I numerosi tipi supportati includono Binary, Bool, DateTime, Double, GUID, Int, Int64 e String. Il tipo può cambiare in base ai valori archiviati nell'unità e non è necessario che tutte le proprietà presenti in un'unità siano dello stesso tipo. Gli sviluppatori rimangono liberi di usare tutto quello che può essere utile per la loro applicazione.

Qualunque sia il suo contenuto, un'entità può arrivare a dimensioni di 1 MB e vi si accede sempre come un'unità. La lettura di un'entità restituisce tutte le sue proprietà e la scrittura di un'entità può sostituirne tutte le proprietà. Vi è inoltre la possibilità di aggiornare in modo atomico un gruppo di entità all'interno di una sola tabella, vincolando così la riuscita, o la mancata riuscita, di tutti gli aggiornamenti insieme.

Le tabelle di archiviazione di Windows Azure si differenziano dalle tabelle relazionali in numerosi aspetti. Innanzitutto, non sono tabelle in senso classico. Inoltre non sono accessibili tramite ADO.NET, né sono in grado di supportare query SQL. Per finire, non applicano alcuno schema: le proprietà in una singola entità possono essere di diversi tipi, che possono anche variare nel tempo. La domanda è naturalmente: perché? Perché non supportare semplicemente normali tabelle relazionali con query SQL standard?

La risposta è insita in uno degli obiettivi principali di Windows Azure: supportare applicazioni altamente scalabili. I tradizionali database relazionali consentono la scalabilità verticale, per gestire sempre più utenti eseguendo il sistema DBMS in computer sempre più potenti. Tuttavia, per supportare numeri

veramente elevati di utenti simultanei, è necessario assicurare la scalabilità orizzontale dell'archiviazione, non quella verticale. A tale scopo, il meccanismo di archiviazione deve diventare più semplice, e le tradizionali tabelle relazionali SQL non sono adeguate allo scopo. Ciò che serve è il tipo di struttura fornito dalle tabelle di Windows Azure.

L'utilizzo delle tabelle impone agli sviluppatori un certo cambio di atteggiamento mentale, poiché i familiari concetti relazionali non possono essere applicati senza variazioni. Nonostante questo, per quanto riguarda la creazione di applicazioni estremamente scalabili, questo approccio è il più valido. In primo luogo, libera gli sviluppatori da ogni preoccupazione relativa alla scalabilità. Gli sviluppatori non devono fare altro che creare nuove tabelle, aggiungere entità e lasciare che Windows Azure faccia il resto. Inoltre, elimina molto del lavoro necessario per mantenere un sistema DBMS, dal momento che se ne fa carico Windows Azure. L'obiettivo è lasciare che gli sviluppatori si concentrino sulla loro applicazione anziché sulle meccaniche di archiviazione e amministrazione di grandi quantità di dati.

Come tutto il resto nell'archiviazione di Windows Azure, l'accesso alle tabelle avviene in modalità REST. A tale scopo un'applicazione .NET può utilizzare WCF Data Services, nascondendo le richieste HTTP sottostanti. Qualsiasi applicazione, .NET o meno, è libera di effettuare direttamente queste richieste. Ad esempio, una query eseguita su una determinata tabella viene espressa come un HTTP GET su un URI nel seguente formato:

http://<AccountArchiviazione>.table.core.windows.net/<NomeTabella>?$filter=<Query>

<NomeTabella> specifica la tabella oggetto della query, mentre <Query> contiene la query da eseguire. Se la query restituisce numerosi risultati, lo sviluppatore può ottenere un token di continuità da passare alla query successiva. Questo metodo eseguito ripetutamente consente di recuperare l'intero set di risultati in più blocchi.

Le tabelle di Windows Azure non sono sempre la scelta giusta per ogni scenario di archiviazione e utilizzarle comporta una curva di apprendimento. La scalabilità che offrono è però perfetta per molti tipi di applicazioni.

You have no rights to post comments