Sommario
Ringraziamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Prefazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
1
Introduzione al Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Differenti approcci al Cloud Computing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Infrastructure as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Software as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Platform as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Cloud Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Una prospettiva di lungo termine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Windows Azure come Soluzione PaaS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Grandi opportunità per piccole aziende . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Grandi opportunità per grandi aziende . . . . . . . . . . . . . . . . . . . . . . . . . 10
Windows Azure e il Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2
Introduzione alla piattaforma Windows Azure . . . . . . . . . . . . . . 15
Il sistema operativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
La creazione di un servizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Windows Azure Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Worker Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Virtual Machine Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Windows Azure AppFabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Access Control Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Caching Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Integration Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Composite Application Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
ix
x
Sommario
3
Creare un progetto Web Role. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Software Development Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Windows Azure Tools per Microsoft Visual Studio . . . . . . . . . . . . . . . . . . . . . 43
Il Template per il Progetto Web Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Il progetto Cloud. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Effettuare il Deployment su Windows Azure. . . . . . . . . . . . . . . . . . . . . . . . . . 56
Configurazione e upgrade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Il File di Definizione del Servizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Proprietà del Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4
Windows Azure Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Il Local Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Windows Azure Storage Account. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Windows Azure Management Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Blob API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5
Table, Queue e Worker Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Il Table Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Il Queue Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6
Dettagli sul Sistema Operativo Windows Azure. . . . . . . . . . . . . 137
Live ID, Subscription e Tariffazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Gruppo di Affinità. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Content Delivery Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
I Certificati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Diagnostica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Sommario
7
Windows Azure AppFabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
I Componenti di Windows Azure AppFabric . . . . . . . . . . . . . . . . . . . . . . . . . 161
Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Direct Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
HTTP e Management URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8
OData, WCF Data Services e Astoria Offline. . . . . . . . . . . . . . . . 193
Astoria Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
WCF Data Services (ADO.NET Data Services) . . . . . . . . . . . . . . . . . . . . . . . . . 194
I Componenti Principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
WCF Data Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Query e Relazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Filtro, Ordine e Paginazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
WCF Data Service Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Client .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Introduzione alla sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
9
SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Le funzionalità di SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Accedere a un Database SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Creazione di un Database Server nel Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Accedere a SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Il Motore Relazionale di SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Migrare un Database Esistente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
SQL Azure Migration Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
xi
xii
Sommario
10 Accedere ai Servizi Azure da qualunque client . . . . . . . . . . . . . 259
Creare un Progetto Storage Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Accedere allo Storage Account tramite PHP . . . . . . . . . . . . . . . . . . . . . . . . . 272
Usare HTTP/REST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
11 Architettura Applicativa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Le Caratteristiche di una Soluzione Multitier . . . . . . . . . . . . . . . . . . . . . . . . . 281
Il Data Access Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Il Service Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303