Accesso disconnesso ai dati
1
Agenda
2
La gestione delle informazioni
3
Quando “offline” ha senso…
4
Dove mantenere i dati in locale?
• Environment.SpecialFolder.LocalApplicationData
5
Alcune possibili soluzioni
6
Approccio custom: quale strategia?
7
Store locale dei dati
<Serializable()> Public Class UserSettings
Private m_username As String
Private m_password As String
Public Property Username() As String
Get
Return m_username
End Get
Set(ByVal Value As String)
m_username = Value
End Set
End Property ...
8
Gestione della concorrenza
9
Riconciliazione delle modifiche
10
Demo: IssueVision (http://www.windowsforms.net)
11
Obiezione: bello, flessibile, ma molto
impegnativo da sviluppare se la
soluzione è complessa!
12
Quando i dati in locale crescono
13
SQL Server Replication
• Diversi tipi di replica secondo la natura dei dati
– Merge, Transactional, Snapshot
• Programmabile per setup e sincronizzazione
– Trasparente
14
Obiezione: bello, molto potente, ma
occorre SQL Server sul back-end, inoltre
temo possa non coprire tutti gli scenari
applicativi che devo gestire!
15
Offline Application Block
16
Offline Application Block
17
Lesson learned in Microsoft
18
Una slide per Andrea
• Patterns utilizzati
19
Terminologia dell’Offline Block
• Offline Mode: La connettività di rete non è
disponibile
• Reference Data: Dati che sono tipicamente
read-only e disponibili in cache locale per
varie attività
– Es. Tabelle di decodifica
• Message Data
20
Offline Application Block
21
Offline Application Block: componenti
22
Componenti
• Application: l’applicazione
• Service Agent: fornisce il punto di accesso alle
funzionalità offline
• Service Request: tutti i dettagli di una richiesta
sono incapsulati in un service request object
• Queue: fornisce uno storage persistente per i
service request objects
• Executor: prende le richieste dalla coda e invoca il
servizio quando la connessione ritorna disponibile
• Service
23
Sottosistemi
• Connection State Management: rileva lo stato della
connessione di rete
• Service Agent Management: gestisce i diversi
service agent e restituisce i risultati dell’esecuzione
di particolari servizi
• Reference Data Management: gestisce il download
dei dati utilizzati come cache sul client
• Message Data Management
24
Service Agent Management
• Service Agent Manager: gestisce il risultato
restituito da un Service Agent
• Service Agent: classe base per le diverse tipologie
di servizi
• Application Service Agent: creato dallo sviluppatore
dell’applicazione per inviare e ricevere i messaggi
• Online Proxy
25
Reference Data Management
• Data Loader Manager: consente
all’applicazione di scaricare i dati in cache
• Reference Data Cache: interfaccia per gli
utilizzatori delle funzionalità di caching
• Caching Block
26
Message Data Management
• Queue Manager: gestisce i diversi provider per
le code di messaggi
• Queue Storage: fornisce l’accesso ai diversi
data store
– In-memory, Isolated Storage, MSDE, MSMQ
• Executor
27
Preparazione della cache locale
12
1
11
2
3
4
10
5
6
7
8
9
28
Rilevazione della connettività
1
2
29
Inserimento dei comandi nella coda
1
2
3
4
30
Sincronizzazione dei dati
5
4
6
7
2
1
3
31
Refresh della cache locale
32
Ciclo completo di richiesta-risposta
33
Demo: Insurance Claims
34
In sintesi
35
Riferimenti
36
© 2003-2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
37
Scarica

Accesso disconnesso ai dati