Skip to main content.

Terracotta DSO

Terracotta LogoCome tutti sappiamo difficilmente le applicazioni Enterprise girano su una sola JVM. Anche nel caso si tratti di una semplice web application (stateful) all’aumentare degli utilizzatori cresce proporzionalmente la memoria utilizzata (1:1).
Inoltre se bisogna garantire che le transazioni utente non devono andare perdute, ad esempio una transazione bancaria, (affidabilità) è necessario replicare le informazioni.
Sono cosi entrati a far parte del 90% delle applicazioni due importantissimi requisiti non funzionali: Scalabilità e Affidabilità.

Scalabilità: ossia le capacità di un sistema di “crescere” o “decrescere” in funzione delle necessità e delle disponibilità.
Affidabilità: ossia la capacità di rispettare le specifiche di funzionamento nel tempo e inoltre la capacità di un sistema di non subire fallimenti anche in presenza di guasti (fault-tolerance).

0. Introduzione
1. Terracotta Features
2. Architettura DSO
3. Librerie DSO
4. TC Server
5. Replicazione
6. Virtual Heap

Java Enterprise ha fornito librerie e nuovi componenti per aiutare le società a produrre software con queste esigenze. In particolare è stata data la possibilità ad una applicazione di girare su un cluster di JVM ossia su un insieme di JVM connesse tra loro allo scopo di distribuire l’elaborazione.
Per far comunicare le JVM del cluster, sono stati introdotti protocolli di comunicazione (es. RMI), componenti remoti (es. EJB) e sistemi di messaggistica (es. JMS).
Sono nate cosi architetture scalabili verticalmente spostando alcuni componenti in remoto (architettura front-end/back-end) e orizzontalmente bilanciando il carico tramite un load balancer (tipicamente con algoritmo round robin).
La tolleranza ai guasti (fault-tolerance) è stata risolta replicando le informazioni (lo stato della applicazione) su più di un server. Ad esempio le sessioni HTTP vengono tipicamente replicate su almeno due nodi del cluster in modo che, se uno di essi dovesse essere spento o subisse un errore, tutte le sessioni utente continuerebbero ad esistere, e non vi sarebbe sospensione del servizio.
Uno sviluppatore che deve realizzare un’applicazione con questi requisiti deve quindi agganciarsi a un application server che fornisce tutta questa infrastruttura di componenti e servizi ed imparare ad usarli.

OpenTerracotta (da ora in avanti TC) è la prima soluzione di un “cluster trasparente” che senza componenti aggiuntivi o nuove API java da imparare fornisce una infrastruttura in grado di far girare una applicazione java (JSE) su un cluster di JVM, e quindi fornisce già di suo un servizio Scalabile e Affidabile.

Possiamo prendere una applicazione sviluppata per girare su una singola JVM (anche se JSE) e “configurarla” in modo che possa essere eseguita su un cluster.

Da troppo tempo tendiamo a distinguere i programmatori java dai programmatori JEE come se fossero due mestieri diversi, con Terracotta un buon programmatore, senza utilizzare le infrastrutture/api JEE è in grado di sviluppare una applicazione con requisiti di scalabilità e affidabilità in modo estremamente semplice.

L’articolo è stato pubblicato anche su www.javaportal.it

Per il javaDay ho scritto delle slide, per presentare questa soluzione.

E allo Spring Meeting 2008 ho ampliato il tutto con la configurazione di Spring

Terracotta DSO

Terracotta for Spring

Inoltre ho aperto un gruppo di discussione su yahoo
http://it.groups.yahoo.com/group/it_openterracotta/
Clicca qui per iscriverti a it_openterracotta
Clicca qui per iscriverti a it_openterracotta