July 2009 Blog Posts

Microsoft Velocity step-by-step #7: ASP.Net integration

Tra i possibili tipi di applicazione che possono beneficiare di una cache distribuita come quella di Velocity, ci sono sicuramente le applicazioni Asp.Net, che dispongono già di una cache (quella appunto di ASP.Net) matura, stabile e con un ricco set di funzionalità che la completano. Esaminando la tabella comparativa, si noterà che molte delle features della cache di ASP.Net non sono coperte da Microsoft Velocity, quest’ultimo framework, infatti, non ha l’obiettivo di sostituire la cache di ASP.NET. Quali sono dunque i punti di contatto tra ASP.Net e Microsoft Velocity?...

Microsoft Velocity step-by-step #6: High Availability

In questo post viene illustrata una delle feature più interessanti, in scenari enterprise, di Microsoft Velocity: parliamo dell'alta affidabilità o High Availability (HA). Nel primo post di questa serie, è stato introdotto il concetto di cluster, ovvero un gruppodi server che erogano il servizio di cache distribuita. Ciascun server è soggetto a aggiornamento, manutenzione e, più raramente, a guasti che ne pregiudicano temporaneamente il funzionamento. Grazie alla HA, Microsoft Velocity consente, in maniera trasparente, di gestire queste situazioni di "guasto". La soluzione adottata da Velocity consiste nella creazione di una copia secondaria (attualmente una...

Microsoft Velocity step-by-step #5: Cache clients & local cache

Dagli esempi di codice contenuti nei post precedenti, si evince che l'oggetto principalmente utilizzato lato applicazione client, per sfruttare la cache di Velocity, è un oggetto di tipo DataCache. Un'applicazione Velocity-enabled, utilizza il DataCache per contattare il cluster ed eseguire ad esempio le operazioni di ADD, PUT e GET. Velocity dispone di due tipi di cache client (DataCache): Simple Client e Routing Client. E' possibile decidere quale tipo di client utilizzare sia tramite il file di configurazione, che in maniera programmatica utilizzando i parametri del costruttore della DataCacheFactory, come di seguito illustrato: ...

Microsoft Velocity step-by-step 4#: Locking e Notifications

Locking Il problema della consistenza dei dati si presenta già quando, ad esempio, un applicazione web in esecuzione su di un singolo web server, accede alla cache di ASP.net. Lo stesso problema deve essere affrontato e risolto, a maggior ragione, quando la cache è distribuita come nel caso di Velocity, nel relativo cluster. Velocity gestisce sia il lock pessimistico che quello ottimistico, il primo si ottiene con i metodi GetAndLock e PutAndUnlock di cui segue un esempio di codice: Il metodo GetAndLock, richiede come parametro di output un oggetto tipo DataCacheLockHandle, è la “chiave”...