Questo articolo è basato su una versione non definitiva, pertanto alcune delle informazioni presenti potrebbero aver subito cambiamenti.
Velocity ha il nome definitivo di Windows Server AppFabric Caching.
Velocity è un progetto Microsoft, attualmente in CTP2, il cui obbiettivo è quello di fornire alle nostre applicazioni una cache distribuita, performante ed altamente affidabile. Velocity è integrabile sia in applicazioni web che desktop, grazie ad un'API che consente di eseguire le operazioni di base come il caricamento ed il prelievo degli oggetti managed dalla cache, sia operazioni leggermente più complesse come il locking.
Una delle caratteristiche che fanno di Velocity un progetto interessante è l'alta affidabilità. Questa è ottenuta creando ed utilizzando un cluster di server che sinergicamente erogano il servizio di cache distribuita gestendone, in maniera totalmente trasparente, il mantenimento in memoria, la consistenza, la ricerca, l'eventuale confinamento in regioni/server specifici e, in presenza di un guasto improvviso ad uno dei server, la ridondanza (su server secondari) degli oggetti presenti nella cache.
La tabella comparativa riportata di seguito permette di comprendere meglio le caratteristiche che distinguono Velocity dagli altri framework di cache esistenti.
Funzionalità | Descrizione breve | ASP.NET 2.0 Cache | EntLib Caching App. Block 4.0 | Velocity CTP2 | |
Utilizzo da applicazioni Web e Desktop | La cache può essere utilizzata sia in applicazioni web che desktop. | X | X | X | |
Strumento di configurazione | Disponibilità di uno strumento per la configurazione della cache. | EntLib Configuration Console | Powershell | ||
Strumento di amministrazione | Disponibilità di uno strumento per la gestione della cache a runtime. | Powershell | |||
Scadenza ed invalidazione della cache | tempo assoluto | La cache scade ad una data/ora specifica. | X | X | |
formato temporale esteso | Permette la scadenza della cache ad uno specifico giorno della settimana o del mese. | X | |||
durata | La cache scade dopo un intervallo di tempo configurabile. | X | X | X | |
intervallo rinnovabile | La cache scade dopo un intervallo di tempo configurabile che si rinnova ad ogni accesso alla stessa. | X | X | ||
dipendenza su file | La chache scade ogni qualvolta un file viene modificato. | X | X | ||
dipendenza su altri elementi della cache | La cache scade quando un altro elemento nella cache scade. | X | |||
dipendenza su Database SQL | La cache scade quando il contenuto di una tabella del database cambia. | X | |||
dipendenza personalizzata | La cache scade al verificarsi di un evento personalizzato. | X | |||
nessuna scadenza | La cache non ha nessuna scadenza. | X | X | ||
metodi di scadenza multipli | Possibilità di combinare più metodi di scadenza per la cache. | X | X | ||
callback di rimozione | Possibilità di ricevere notifiche quando un elemento viene rimosso dalla cache. | X | |||
ricaricamento automatico | Possibilità di definire un metodo/funzione che ricarica la cache quando questa scade. | X | |||
Priorità di rimozione | Ogni elemento della cache possiede un parametro che ne indica la priorità di rimozione, in fase di liberazione della memoria (scavenging). | X | X | LRU (Last Recently Used) Eviction | |
Proprietà estese per elementi della cache | Possibilità di accedere a proprietà estese degli elementi nella cache, come priorità ed altre informazioni. | Sì, tramite Reflection | X | ||
Persistenza dati in cache | In chiaro | Il contenuto della cache, in fase di uscita dall'applicazione, può essere salvato su filesystem o database, quindi ricaricato al successivo avvio dell'applicazione. | X | ||
Cifrata | Come il precedente, ma con supporto per la cifratura dei dati. | X | |||
Concorrenza | Ottimistica | Gli elementi della cache possono essere modificati con lock ottimistico, prima della modifica la versione di ogni elemento viene controllata per evitare conflitti. | X | ||
Pessimistica | Gli elementi della cache possono essere bloccati e modificati da un solo utente alla volta. | Si usando lock in C# oppure synklock in Visual Basic (limitatamente ad un singolo cache server). | X | X | |
Sincronizzazione tra AppDomain diversi | Gli elementi della cache sono sincronizzati e mantenuti consistenti attraverso differenti appdomain in esecuzione su differenti server. | X | |||
Alta affidabilità | Quando l'alta affidabilità è abilitata, gli elementi nella cache sono ricopiati in cache host differenti. Se uno degli host non è più disponibile, gli elementi sono comunque disponibili dagli host secondari. | X | |||
Regions | Le Regions sono una alternativa opzionale per migliorare la ricerca defgli elementi nella cache, mediante l'uso di Tags. Le Regions servono anche per indicizzare e confinare gli elementi della cache su un singolo server. | X | |||
Cache Clients | Cache locale | Parcheggia una copia deserializzata dell'elemento della cache del computer locale che esegue l'applicazione. Quando l'elemento viene richiesto, se questo esiste già nella cache locale, viene restituito immediatamente all'applicazione, senza costi di trasmissione e deserializzazione. | X | ||
Routing client | Un routing client tiene traccia della dislocazione di ogni elemento nella cache su ciascun host del cluster, in modo da contattare l'host che lo contiene quando l'elemento viene richiesto. | X |
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.