SQL Server
Migration Day
1
Scegliere



Sino ad oggi chi doveva valutare, per scegliere,
un database aziendale, operava questa scelta
basandosi principalmente sugli aspetti di
deployment.
Numerosi studi e documenti supportavano
questa scelta analizzando la performance, la
scalabilità, la disponibilità e la gestibilità del
database.
Ma qualcosa di profondamente diverso è venuto
in superficie in questi anni.
2
Scegliere




Si è capito che il database non è una isola separata dal
mondo dei sistemi informativi, ma è una delle componenti
di quella complessa attività di business che si chiama
“applicazione”.
Un’applicazione è una attività di business che si dipana,
ad alto livello, attraverso i processi e le funzioni aziendali.
A basso livello è un fluire di dati da un database
(contenitore dei dati attraverso il livello di gestione dei
dati) ad un fruitore dei dati (gli utenti attraverso il livello
di presentazione) il tutto attraverso delle regole di
gestione dei dati stessi (livello di business rules).
È evidente quindi che un database per quanto
performante, scalabile, etc… è solo un tassello (e forse
neppure il più importante) di un mondo più complesso
3
Basi per un confronto




Quando si effettua un confronto tra i diversi database del
mercato bisogna tenere conto che tutti i principali RDBMS
disponibili sono prodotti maturi, per taluni aspetti ai “limiti
della vecchiaia”.
Quindi sono tutti, senza eccezioni, strumenti completi, con
dotazioni ed utility ampie e omnicomprensive
Le battaglie sulle transazioni per secondo o sulla quantità di
alert di sicurezza, pur essendo molto importanti, non
possono essere gli elementi fondamentali del confronto (pur
essendone comunque un contorno).
Quali sono quindi gli elementi più importanti




Caratteristiche di prestazioni, disponibilità, etc…
Integrazione con gli ambienti di sviluppo delle applicazioni
Supporto allo sviluppo di applicazioni basate sull’architettura
SOA (Service Oriented Architecture)
Flessibilità di deployment delle applicazioni
4
Caratteristiche di SQL Server

Database Mirroring


Restore Online


È una suite di strumenti integrati per la gestione del database. Tra questi le
funzionalità per sviluppare, rilasciare e ottimizzare un database con un netto
miglioramento rispetto alla versione precedente.
Partizionamento dei Dati


Sono incluse numerose funzionalità di sicurezza tra cui cifratura, settaggi di
sicurezza di default, regole per la gestione della password, granularità dei
controlli dei permessi molto sottile e un modello di sicurezza esteso
SQL Server Management Studio


Le operazioni di indicizzazione possono essere eseguite on line, permettendo
quindi attività contestuali di select ed update.
Sicurezza


È possibile gestire una funzionalità di restore a caldo, dove solo i dati in restore
rimangono non disponibili.
Indicizzazione Online


Ampie funzionalità di database mirroring
Il partizionamento dei dati è molto sofisticato ed attraverso funzioni native delle
tabelle e degli indici è possibile gestire con semplicità grandi moli di dati.
Replicatione

È disponibile anche la modalità di replicazione per database mobili, utilizzando le
caratteristiche peer-to-peer. E in grado di pubblicare anche database Oracle.
5
Valutazioni

Tre gli elementi di valutazione su cui
focalizzeremo la nostra attenzione, tutti relativi
alla creazione e rilascio delle applicazioni
 Integrazione del Database con gli ambienti di
sviluppo
 Sviluppo in architettura SOA (Service Oriented
Architecture)
 Flessibilità di deployment in contesti diversi
6
Integrazione con ambienti di sviluppo



Sul mercato sono presenti numerosi ambienti di
sviluppo basati sulle più diverse piattaforme
Si è valutato di non entrare nel dettaglio delle
differenze specifiche tra le diverse piattaforme.
Certamente l’attenzione primaria è focalizzata sul
confronto tra Microsoft SQL Server 2005 ed
Oracle 10g Release 2, tuttavia non troverete qui il
dettaglio delle differenze tra i due sistemi.
7
Integrazione con ambienti di sviluppo

Questo per due considerazioni:



È sempre meglio vedere cosa fa di buono il sistema di
cui parliamo piuttosto che cercare quello che fa “male”
un altro sistema
Il continuo aggiornamento dei sistemi rende obsoleta
qualsiasi valutazione sulle caratteristiche specifiche,
soprattutto quando queste siano importanti ma non
“core”.
Di certo ambedue i sistemi sono integrati con
Visual Studio ed il .NET CLR (common language
runtime) e presentano funzionalità avanzate di
tutto rispetto.
8
Sviluppo di applicazioni SOA




La prossima generazione di applicazioni basate
sulla rete e di applicazioni distribuite si baserà
completamente sui concetti della Service
Oriented Architecture (SOA).
Il SOA porterà con se profondi cambiamenti su
come una applicazione è disegnata, sviluppata e
rilasciata.
I database hanno un ruolo significativo in questo
tipo di architettura.
SQL Server include numerose nuove
caratteristiche per supportare lo sviluppo di
applicazioni basate su SOA.
9
Sviluppo di applicazioni SOA

Tra queste:





XML: capacità di archiviare, interpretare, validare, interrogare
e modificare efficientemente un documento XML nel database
Web Services: capacità di esporre oggetti di database
(tabelle, stored procedure ed altro) come web services
direttamente dal Database.
Accodamento di Messaggi Asincroni: capacità di garantire
la spedizione di messaggi ad altre applicazioni distribuite per
gestire problemi di system failures.
Notifica di Eventi: capacità di distribuire eventi di business
significativi ad un grande numero di periferiche, nella modalità
attesa dal ricevente e in modo efficiente
Notifica di Query: capacità per una applicazione di
“sottoscrivere” determinati cambiamenti nel database che
possano determinare un significativo cambiamento nei risultati
di una specifica query che debbano essere notificati quando
avvengono
10
Sviluppo di applicazioni SOA



Sia Oracle che SQL Server offrono lo stesso
insieme di caratteristiche che abilitano lo sviluppo
di applicazioni basate su SOA.
SQL Server ha tutte queste caratteristiche incluse
nel server database e sono strettamente
integrate
In Oracle, molte API sono basate su standard
Java (come il Java Messaging Service) che non
forniscono valore aggiunto allo sviluppatore .NET
11
Flessibilità di deployment




I Clienti chiedono di avere una flessibilità nel
rilascio delle applicazioni rendendole indipendenti
dalla singola versione di database.
In particolare chi crea applicazioni, che devono
essere vendute per un periodo di tempo
sufficientemente lungo, chiede che queste siano
indipendenti dalla specifica versione del database.
Questo è particolarmente importante per gli ISV
(Indipendent Software Vendors)
Microsoft ha indirizzato la sua offerta di database
in modo tale da andare incontro a questa
specifica esigenza dei Clienti.
12
Flessibilità di deployment



SQL Server offre edizioni multiple del database
con un unico ambiente di sviluppo (.NET), tools
(Visual Studio) e API per tutte le edizioni
Come risultato uno sviluppatore ha necessità di
creare una sola volta l’applicazione e può
rilasciarla in ogni edizione di SQL Server – Mobile,
Express, Workgroup, Standard o Enterprise
Edition – senza dover modificare nulla.
Di particolare interesse è la SQL Server Express
Edition che è gratuita, anche se non destinata
alle applicazioni mission critical.
13
Integrazione del Database
con gli ambienti di
sviluppo di applicazioni
14
Integrazione con ambienti di sviluppo




SQL Server è completamente integrato con Visual
Studio
Uno sviluppatore, che utilizza Visual Studio con
SQL Server, non ha bisogno di nient’altro, ha
tutto quello che gli serve.
Tutti i linguaggi che riferiscono alla piattaforma
.NET sono disponibili
Ambienti di sviluppo basati su linguaggi che non
operano nel contesto di questa piattaforma (Es.
Java) richiedono strumenti aggiuntivi causando
una curva di apprendimento più elevata e una
diminuzione della produttività complessiva dello
sviluppatore.
15
Integrazione con .NET


Il notevole successo della piattaforma .NET ha
spinto molti fornitori a fornire un elevato livello di
integrazione con il Microsoft .NET CLR.
Così è stato sia per Microsoft che per Oracle,
anche se ciascuna ha scelto strategie e modalità
che differenziano i risultati
16
Integrazione con il Microsoft .NET CLR




Microsoft hanno integrato il .NET CLR in SQL
Server 2005.
Questa integrazione ha effetti significativi sullo
sviluppo delle applicazioni che utilizzano il
database.
Ora gli sviluppatori hanno la possibilità di
sviluppare la logica di database in qualsiasi
linguaggio tra quelli supportati dal .NET
Framework.
Non sono più confinati al Transact-SQL (con
SqlServer) o PL/SQL (con Oracle).
17
Integrazione con il Microsoft .NET CLR




Questo permette di sviluppare applicazioni con
logica di gestione dei dati senza dover imparare
un linguaggio specializzato.
Inoltre lo sviluppatore di applicazioni può
scegliere se rilasciare la logica applicativa a livello
del database tier, di middle tier o in uno smart
client.
La logica può essere facilmente spostata di livello
in qualsiasi momento.
Le funzionalità della piattaforma .NET sono in
costante aumento e lo sviluppatore di applicazioni
basate sui dati può partire da un set di librerie e
funzionalità piuttosto estese e non, come con
Transact-SQL o PL/SQL, partendo da zero.
18
In-Process contro Out-Of-Process




SQL Server 2005 gestisce il CLR “in process”.
In-process hosting significa che il .NET CLR viene
eseguito all’interno dello spazio di processo di
SQL Server.
Quindi, quando viene invocata la logica di
database (stored procedures, triggers e userdefined functions) implementate come managed
code, non si deve pagare l’overhead della
comunicazione inter-processi.
SQL Server ha integrato i propri modelli di
threading e gestione della memoria con il .NET
CLR, fornendo una ottima strada agli sviluppatori
.NET per gestire un tuning fine delle applicazioni.
19
CLR 1.1 contro CLR 2.0


SQL Server 2005 supporta sia la versione 1.1 del
CLR che la versione 2.0.
Questo significa che, ad esempio, SQL Server
2005 è in grado di fornire la gestione in-process
del provider ADO.NET 2.0 che crea una vista dei
dati server-side completamente integrata con la
memoria e la gestione dei thread del database
server.
20
Supporto ai Tipi Oggetti del Database

Con SQL Server si possono sviluppare
direttamente diversi tipi di oggetti del database in
codice managed e tra questi
 Stored procedures
 Triggers
 User-defined functions
 User-defined aggregates
21
Archiviazione degli Assemblies .NET



SQL Server 2005 archivia gli assemblies .NET che
implementano le stored procedures, triggers e
funzioni nel database.
Un vantaggio della soluzione proposta
dall’approccio di SQL Server è legata alla
manutenzione integrata
Gli assemblies sono visti come oggetti di
database e come tali gestiti nelle attività di
backup, restore, replication e data mirroring.
22
Integrazione con Visual Studio




Microsoft ha predisposto l’integrazione con Visual
Studio, essendo questo l’IDE (Integrated
Development Environment) più utilizzato per lo
sviluppo di software.
Così come ci si aspetta che questa integrazione
cresca sempre più nel futuro.
Microsoft ha incoraggiato i propri partners ad
estendere Visual Studio con loro soluzioni.
Oracle partecipa al programma di Microsft per
l’integrazione di Visual Studio e ha integrato il
suo Database attraverso Oracle Developer Tools
for Visual Studio .NET.
23
Visual Studio

Server Explorer




SQL Server 2005 si integra con Visual Studio attraverso
il SQL Server OLE DB provider che permette allo
sviluppatore di interagire direttamente con il database
attraverso il Server Explorer.
Il Server Explorer permette agli sviluppatori di gestire
vari servizi del database attraverso Visual Studio.
Attraverso il Server Explorer uno sviluppatore
può trovare molti dei tools presenti in SQL Server
Management Studio
Ad esempio uno sviluppatore può:





Creare i diagrammi del database.
Disegnare le tabelle.
Vedere i dati delle tabelle.
Creare ed eseguire le viste, le stored procedure, i trigger
e le user-defined functions.
Definire i constraints e gli indici
24
ADO.NET



L’integrazione con Visual Studio permette allo
sviluppatore di programmare graficamente.
Ed ancora, ADO.NET include un provider
ottimizzato che permette di accedere ai dati in
SQL Server con una prestazioni elevate.
Un programmatore Visual Studio può effettuare
con drag e drop attività come SqlConnection,
SqlCommand e SqlDataAdapter su una superficie
di disegno e il wizards guida lo sviluppatore ad
usare queste attività per connettersi a SQL
Server.
25
Query Designer


Visual Studio fornisce anche il Query Designer, un
tool per creare le query e manipolare i dati nel
database.
Il driver espone anche le funzionalità di gestione
dei diagrammi del database dove è possibile
vedere e gestire le entità e le relazioni tra di loro.
26
Debug delle Stored Procedures




Una quantità significativa di tempo dello
sviluppatore viene spesa nel debug delle
applicazioni.
Di conseguenza i tools di debugging sono molto
importanti per lo sviluppatore.
Le caratteristiche di Visual Studio permettono di
effettuare il debug del Transact-SQL entrando
passo-passo all’interno della stored procedure.
Non solo è possibile effettuare il debug linea per
linea, ma è possibile anche veder i valori che
assumono le variabili, così come è possibile
inserire dei breakpoint nei quali fermare
l’esecuzione della Stored Procedure
27
Progetti SQL Server




L’integrazione con Visual Studio 2005 è migliorata
ancora più dai SQL Server Project template.
Quando si ha un Progetto SQL Server è possibile
aggiungere uno qualsiasi dei template disponibili
con l’inserimento automatico del codice per
stored procedure, trigger, aggregati, user-defined
function e user-defined type.
Dopo aver creato un progetto si è in grado di
effettuare il debug di tutto il codice, passo per
passo, inserire il break-point o visualizzare le
variabili.
È possibile navigare da un linguaggio all’altro,
tanto per capirci posso iniziare il debug in C# e
proseguire con il passo successivo in TransactSQL per poi andare in Visual Basic.NET.
28
Progetti SQL Server



Inoltre Visual Studio permette di effettuare
automaticamente il deploy del codice sul server
SQL Server, quello che deve fare lo sviluppatore è
semplicemente configurare il progetto per il
deployment.
Sostanzialmente lo sviluppatore utilizza lo stesso
strumento per sviluppare e fare il debugging degli
oggetti database.
Visual Studio 2005 prevede anche alcune altre
utili caratteristiche come l’evidenziazione
automatica per la sintassi e l’ IntelliSense® in
Transact-SQL.
29
Business Intelligence

SQL Server dispone di una ampia piattaforma per
Business Intelligence che include:




SQL Server Analysis Service per l’analisi dei dati (con la
creazione e gestione dei Cubi) e funzionalità di data
mining.
SQL Server Integration Services per l’estrazione, la
trasformazione ed il caricamento di dati esterni
SQL Server Reporting Services per il disegno e la
generazione di report con la possibilità di estrarli in
diversi formati di uso comune come Microsoft Excel,
HTML e Adobe PDF.
Visual Studio contiene tutti gli strumenti di
gestione e di sviluppo necessari allo sviluppo e
gestione delle applicazioni di Business
Intelligence con SQL Server.
30
Analysis Service



SQL Server offre il Business Intelligence
Development Studio per aiutare gli sviluppatori a
costruire le applicazioni analitiche e di data
mining.
Il Business Intelligence Development Studio
utilizza l’abituale interfaccia di Visual Studio
permettendo così una curva di apprendimento
molto ridotta.
Gli Analysis Services consistono in due
funzionalità principali e complementari: On-Line
Analytical Processing (OLAP) e Data Mining.
31
Analysis Services




Unified Dimensional Model
 Combina le migliori caratteristiche dei modelli relazionali
e OLAP.
Proactive caching
 Permette di operare con applicazioni a bassa latenza con
costi di gestione dei dati vicino a zero.
Key Performance Indicator (KPI)
 È un framework che fornisce un semplice meccanismo
definito sul server per la definizione di misure aziendali.
 una KPI consiste nell’espressione di valori, goal, stato
corrente e tendenza visualizzati semplicemente in
modalità grafica.
Traduzioni
 Fornisce un semplice meccanismo, controllato
centralmente, per archiviare e presentare dati analitici
agli utenti nella loro lingu preferita. Un database
analitico può essere presentato il lingue multiple.
32
Analysis Services






Scripts MDX

La sintassi è semplificata ed è possibile effettuare il debug
passo-a-passo
Stored procedures

È possibile creare delle routine esterne in linguaggi basati su
CLR.
Attraverso Wizard è possibile costruire facilmente:

Semi-additive measures, Time Intelligence, Account
intelligence, Financial Aggregations, Currency Conversion e
Time dimension generation
Data Definition Language è in XML.

Il Metadata Repository è in file XML
Web services: XML for Analysis (XML/A)

L’XML/A è un protocollo nativo, basato su standard per la
comunicazione con il server degli Analysis Services. Attraverso
questo protocollo ogni server è automaticamente un Web
Service.
Il calcolo è centralizzato

Tutti i calcoli sono eseguiti sul server con il vantaggio di non
aver nessun carico sul client e migliorare le performance
33
Analysis Services




Sicurezza

I permessi amministrativi sono a grana fine, con possibilità di
separare i permessi per i diversi oggetti del database e per
distinguere tra la funzione di disegno delle modifiche e di
processo.

I cubi locali sono cifrati

Le comunicazioni client/server sono cifrate e firmate per
proteggere i pacchetti da ogni intrusione
Server trace events

Sono disponibili strumenti per le attività di audit come il
SQL Server Profiler.
Le prestazioni per i calcoli

La cache sui calcoli su server è shared tra i diversi client

L’ottimizzatore delle query è in grado di “riscrivere” una query
per migliorarne le prestazioni.
Processamento parallelo e partizionato
34
Data Mining





Il Data Mining è una tecnologia di business intelligence che
aiuta a costruire complessi modelli analitici e supporta
l’integrazione di questi nelle operazioni di business.
L’obiettivo primo del Data Mining è di fornire risultati
quotidiani a persone che non hanno alcun interesse ad
entrare nelle complessità computazionali dei sistemi di
database, ma desiderano solo risultati di business da capire
ed analizzare.
Il data mining si basa sull’utilizzo di algoritmi.
Una serie di algoritmi vengono forniti nell’installazione
È possibile altresì estenderli con algoritmi proprietari scritti
su misura.
35
Data Mining - Algoritmi







Microsoft Decision Trees

È primariamente un algoritmo di classificazione e opera bene
per modellazione predicativa sia per attributi discreti che
continui.
Microsoft Naïve Bayes

Calcola le probabilità per ogni possibile stato degli attributi di
input dato ogni stato degli attributi predicati
Microsoft Clustering

Permette di raccogliere i record nel dataset in cluster che
identificano caratteristiche simili.
Microsoft Association

È basata su un algoritmo a priori e fornisce un efficiente
metodologia per reperire le correlazioni N-way in un grande
database.
Microsoft Sequence Clustering

Combina analisi di sequenza e clustering per esplorazione e
predicazione dei dati.
Microsoft Time Series

Crea modelli che possono essere usati per predire una o più
variabili continue (ad esempio i valori di stock exchange).
Microsoft Neural Net,

Usato per esplorazione, classificazione e predizione di dati.36
Reporting Services





SQL Server Reporting Services utilizza l’ambiente di disegno
dei report di Visual per creare dei report complessi ed
evoluti che possono essere rilasciati in diversi formati come
PDF, Microsoft Excel o HTML.
I Reporting Services sono strettamente integrati con Visual
Studio e con il .NET Framework.
La generazione dei report abilita gli sviluppatori ad
incapsulare le complessità della logica in assemblies usati
per calcolare i valori nel report.
Questo permette agli sviluppatori Visual Studio di
riutilizzare le componenti di business logic.
Possono essere utilizzati sia per produrre report basati su
eventi schedulati su una base temporale ben definita, sia
per produrre report su richiesta diretta degli utenti.
37
Reporting Services







Reporting Services consistono in

Un insieme completo di strumenti per creare, gestire e visualizzare report

Un motore per ospitare e processare i report

Una architettura estensibile ed interfacce aperte per integrare report in
soluzioni applicative

Abilitare utenti non-programmatori alla creazione o modifica di propri
report
Ampia quantità di data source supportati

Microsoft SQL Server, Microsoft Analysis Services, OLE DB, ODBC
Strumenti di creazione flessibili

Report Designer, Report Definition Language (RDL) basato su XML
Formati di report flessibili

Freeform, tabelle, matrici, grafici, filtri per parametrizzare i report a runtime, ordinamento e raggruppamento, drillthrough, report collegati
Editor di Query flessibile

Strumenti di generazione delle query SQL e query MDX
Escuzione modulare dei report

Il Rendering è un processo separato dalla query, lo stesso report può
essere reso in diversi formati, l’esecuzione può essere a richiesta o
schedulata.
Disegno dei report per gli utenti finali

Report Builder permette agli utenti finali la creazione di report ad hoc
38
Integration Services



Gli Integration Services forniscono un ambiente
grafico in Visual Studio per creare workflows per
estrarre, caricare e trasformare dati (ETL).
Integration Services sono stati significativamente
migliorati per SQL Server 2005 per fornire un
ambiente ETL migliore, più veloce e più flessibile
attraverso l’utilizzo di Visual Studio.
Gli Integration Services, inoltre, sono
completamente estensibili con l’utilizzo di codice
scritto in qualsiasi linguaggio che sia in grado di
utilizzare il .NET Framework cosicché ogni
sviluppatore può sviluppare, come meglio
preferisce, per creare i propri oggetti.
39
Integration Services










Si utilizza l’interfaccia grafico del Business Intelligence
Development Studio.
Il controllo di flusso ed il flusso di dati sono separati
Le variabili del Package sono definite e visibili
È possibile creare sistemi ETL complessi con package, subpackage, variabili, etc….
I packages sono archiviati in file XML
Regole di precedenza possono essere definite per
controllare nel package eventi di successo, errore o
completamento
Funzionalità di Loop come For, ForEach e Sequence.
Le attività di comunicazione includono il Message queue e
l’invio delle mail
Possono essere gestite sorgenti, trasformazioni e
destinazioni multiple dei dati attraverso le data flow
pipeline.
È possibile inserire dei Breakpoints nei flussi dei dati
40
Sviluppo di applicazioni basate su
SOA (Service Oriented Architecture)
41
Sviluppo di applicazioni basate su SOA

Supporto all’XML



XML è lo standard di fatto per lo scambio di una grande
quantità di tipi di dati nelle applicazioni attuali.
È anche la tecnologia centrale dell’architettura per
applicazioni che si basano su SOA e Web services.
I database devono essere in grado di supportare questo
tipo di applicazioni abilitando l’archiviazione,
l’interrogazione e l’aggiornamento dei documenti XML.
42
Sviluppo di applicazioni basate su SOA

Tipi Nativi XML e XQuery

SQL Server supporta i tipi nativi di XML, ovvero è
in grado di capire se una colonna contiene un
documento XML.


Un documento XML viene preventivamente validato,
attraverso lo schema XML, prima di essere archiviato nel
database.
Permette di effettuare query sui documenti XML
archiviati attraverso il linguaggio di query XQuery così
come con XPATH.
43
Sviluppo di applicazioni basate su SOA

Indicizzazione

L’indicizzazione è essenziale per una efficiente e
veloce esecuzione delle query.
SQL Server 2005 supporta indici B*Tree sugli
elementi, valori e path di ogni campo XML.
L’indicizzazione velocizza significativamente
l’esecuzione delle query.
SQL Server 2005, inoltre, supporta altri indici per
velocizzare altri tipi di query che permettono di
ritrovare i dati come i PATH indexes, PROPERTY
indexes e VALUE indexes.



44
Sviluppo di applicazioni basate su SOA

Aggiornamento dell’XML


La versione standard di XQuery, attualmente, definisce
solo il supporto per lettura/fetching per il contenuto
XML.
Non definisce come l’XML contenuto nel Database possa
essere aggiornato.
45
Sviluppo di applicazioni basate su SOA

L’approccio standard è quindi:




Rimpiazzare l’intero documento XML: Spesso nei
database il documento XML è archiviato come un
oggetto text, questo costringe il motore del database di
sostituire l’intero file anche per cambiare un singolo
campo.
Spezzettare il documento XML: il documento XML viene
spezzettato ed archiviato in un insieme di oggetti
relazionati nel database. Questo richiede che lo
sviluppatore comprenda come il documento è mappato
su una struttura relazionale.
SQL Server 2005 ha gestito questo problema
estendendo l’XQuery per le operazioni di update,
includendo un linguaggio per aggiungere o
eliminare porzioni della struttura ed aggiornare i
valori scalari.
Questo permette di lavorare con facilità con i tipi
dati di XML.
46
Sviluppo di applicazioni basate su SOA

XML schema collections e schema
evolution



SQL Server permette di archiviare documenti
multipli (non correlati) nella stessa colonna
XML.
Questa caratteristica è abilitata con la
creazione di una XML SCHEMA COLLECTION
che consiste in uno o più schemi XSD.
Una collezione di schemi XML di SQL Server
definisce il tipo di documenti XML che possono
essere archiviati in una colonna XML.
47
Sviluppo di applicazioni basate su SOA

XML schema collections e schema
evolution




Questa caratteristica fornisce una interessante
via per migrare i dati XML.
Quando uno schema evolve nel tempo creando
un nuovo schema, è possibile evolvere anche
quello contenuto nella collezione di schemi
Una istanza XML esistente continua ad esistere
come prima, così come le istanze conformate
al nuovo schema possono essere aggiunte alle
colonne XML ed essere indicizzate.
Un utente può aggiungere nuovi componenti
top-level di schema XML ed elementi top-level
in uno schema esistente.
48
Supporto per i Web Services



SQL Server 2005 fornisce il supporto nativo per i
Web services.
Può agire come un Web Service Provider così
come un Web Service Consumer.
Web Service Provider:


SQL Server fornisce un meccanismo molto semplice e
facile da utilizzare per permettere ad applicazioni esterne
di invocare stored procedures, comandi Transact-SQL e
funzioni user-defined come Web Services usando protocolli
standard come il SOAP attraverso HTTP.
Fornendo un accesso via SOAP/HTTP, anche i clients leggeri
(come i browser Web) possono accedere al database in
quanto non è necessaria alcuna libreria o componente per
leggere i dati.
49
Supporto per i Web Services




Per gli sviluppatori abilitare l’accesso via SOAP/HTTP è
molto facile.
Tutto quello che è necessario fare è creare un endpoint
HTTP e specificare quale oggetto database si vuole
esporre. SQL Server si occupa di fare tutto quello che è
necessario.
Autenticazione e sicurezza sono integrate con SQL
Server e solo gli utenti autorizzati possono invocare le
stored procedure.
SQL Server utilizza il driver https.sys di Microsoft
Windows Server™ 2003 in kernel mode e quindi non
richiede che IIS sia installato.
50
Supporto per i Web Services

Web Service Consumer





SQL Server è integrato con il .NET CLR e quindi è
estremamente semplificato l’accesso a Web Services
esterni direttamente dal database
Combinato con Visual Studio, SQL Server è uno
strumento ideale per lo sviluppo di applicazioni SOAbased.
Altri meccanismi come quelli che riferiscono a strumenti
come JPublisher operano costruendo delle “wrapper”
class Java che, pur essendo una strada interessante per
la soluzione del problema, ne complicano la
realizzazione.
Questa soluzione richiede, comunque, di utilizzare un
Application Server come prodotto aggiuntivo.
SQL Server non richiede altre applicazioni, né
Application Server né Web Server.
51
Supporto per Asynchronous
Messaging




Una affidabile, asincrona comunicazione tra unità
di esecuzione autonome di programmi è una
tecnologia chiave per sviluppare applicazioni
SOA-based.
Tradizionalmente venivano utilizzati i sistemi di
message queuing come gli IBM MQ Series (ora
conosciuti come WebSphere MQ).
Tuttavia avere i sistemi di message queuing
integrati nel database presenta numerosi
vantaggi.
SQL Server ha integrato un sistema di message
queuing asincrono ed affidabile: il SQL Server
Service Broker.
52
Supporto per Asynchronous
Messaging

Il SQL Server Service Broker





Garantisce la distribuzione del messaggio al destinatario
esattamente una sola volta.
Abilita sia il mittente che il destinatario ad esistere nello
stesso database, nello stesso computer o, in alternativa,
distribuiti nella rete.
Utilizza un contenitore persistente dove far archiviare i
messaggi.
Le code sono archiviate completamente nelle tabelle di
database.
SQL può accedere alle code ed il messaggio può essere
trattenuto nella coda.
53
Supporto per Asynchronous
Messaging




Il sistema di gestione delle code è integrato nel
database e non richiede un coordinatore esterno
tra il sistema di gestione delle code e il database.
Il Service Broker fornisce un livello di astrazione
piuttosto elevato come dialogs, contracts e
services.
Gli sviluppatori non devono gestire le operazioni
di basso livello della gestione delle code.
Il Service Broker supporta anche l’attivazione
automatica del programma di servizio
54
Servizi di Event Notification





Microsoft SQL Server Notification Services permette agli
sviluppatori di sviluppare e rilasciare con grande facilità
applicazioni che generano ed inviano notifiche di eventi agli
utenti.
Le notifiche sono messaggi personalizzati e temporizzati
che possono essere inviati a molte diverse devices.
Le notifiche riflettono le preferenze del sottoscrittore.
Il sottoscrittore inserisce una sottoscrizione per esprimere
l’interesse per una informazione.
Ad esempio: “avvisami quando il valore di magazzino
raggiunge 70.000 euro” o “avvisami quando il documento di
budget del mio team è stato scritto e completato”
55
Servizi di Event Notification



Una notifica può essere generata ed inviata ad un
utente non appena l’evento avviene o può essere
generata con scadenze predefinite specificate dal
singolo utente.
La sottoscrizione specifica quando la notifica deve
essere fatta ed inviata.
La notifica può essere inviata a numerose diverse
devices. Ad esempio una notifica può essere
inviata al telefono cellulare di un utente, ad un
PDA (Personal Digital Assistant), Microsoft
Windows Messenger o da un account di posta
elettronica.
56
Servizi di Query Notification




SQL Server 2005 ha introdotto il supporto alla
notifica delle SQL Server queries.
Si può utilizzare questo supporto per inviare un
comando a SQL Server, e richiedere che venga
attivata una notifica se l’esecuzione del comando
produce risultati diversi da quelli iniziali.
Si utilizza per verificare se dei dati soggiacenti un
oggetto sono cambiati.
Il comando viene inviato al server attraverso
qualsiasi API client come ADO.NET, OLE DB, Open
Database Connectivity (ODBC), Microsoft Active
Data Objects (ADO) o SOAP e può includere una
tag che richiede una notifica.
57
Servizi di Query Notification



Per ogni comando che viene eseguito come parte
della richiesta, il server crea una "Notification
Subscription" che intercetta ogni volta che il
comando viene incluso in una richiesta.
La notifica viene inviata attraverso una coda del
SQL Service Broker che l’applicazione può
chiamare e usa i servizi di attivazione o i blocking
statements che ritornano se la notifica è
disponibile.
La Query notifications è molto utile per abilitare
una cache dei risultati nelle applicazioni come i
Web sites database-driven.
58
59
Scarica

SQL Server Management Studio