Blog Zenika

#CodeTheWorld

Architecture

Terracotta, un an après

Il y a un an, nous vous avions déjà présenté Terracotta (présentation, use-cases), la solution de clustering pour Java. Depuis, la société et son produit éponyme ont bien évolué, et nous pensons qu’il est temps de faire à nouveau le point.

Tout d’abord, un petit rappel.
Le produit phare de Terracotta est la plateforme DSO (“Distributed shared objects”), qui permet de répliquer des graphes d’objets arbitraires sur un cluster. Elle utilise pour cela un “bootjar” qui modifie le bytecode des classes lors de leur chargement au sein de la JVM, afin de surveiller et synchroniser leurs propriétés de manière fine et optimisée.
La configuration de ce mécanisme très puissant nécessite en revanche une parfaite compréhension du modèle mémoire Java ainsi que des subtilités de la programmation concurrente, ce qui réserve son usage aux ingénieur très confirmés.
Conscients de ce problème, les ingénieurs de Terracotta ont travaillé à identifier les principaux use-cases et simplifier leur mise en oeuvre, sous la forme de “produits” prépackagés : Terracotta for EHCache (cache), Terracotta for Hibernate (ORM), Terracotta for Session Clustering, Terracotta for Quartz (scheduling, composant de la suite OpenSymphony) et Terracotta for Spring (IOC).
Pour garantir la meilleure intégration possible et pérénniser les développements, Greg Luck (créateur de EHCache) a été embauché et Quartz acheté.
S’ils se basent toujours sur la plateforme DSO, ces différents produits sont préconfigurés et packagés de manière à permettre leur intégration par des développeurs non-experts, en une dizaine d’instructions simples.
Ils sont généralement disponibles en deux versions :

  • une version “Express” qui ne demande souvent que quelques jars dans le classpath (et parfois un agent JVM), mais qui inhibe alors les autres fonctionnalités de la plateforme DSO sous-jacente ;
  • une version “Custom” qui donne accès à l’intégralité des fonctionnalités de la plateforme DSO (y compris l’utilisation simultanée de plusieurs Produits), mais qui nécessite la mise en place d’un bootjar (compatible avec les JVM Sun et IBM uniquement) et une certaine maîtrise de la configuration du DSO lui-même.

Notez qu’il est relativement aisé de passer d’un mode à l’autre. Ainsi, si votre problématique se limite à la mise en cluster d’un cache EHCache, vous pouvez commencer avec Terracotta for EHCache Express, quitte à migrer plus tard sur la version Custom si vos besoins évoluent (par exemple, vous souhaitez également custeriser des sessions HTTP).
En conclusion, Terracotta est une technologie à surveiller de près, et qui évolue très rapidement. Elle fait à mon avis partie de la “stack” Java agile, aux côtés de Spring, Hibernate et Wicket.
Note : Zenika est désormais formateur Terracotta agréé. Découvrez notre formation Terracotta !

Auteur/Autrice

Une réflexion sur “Terracotta, un an après

  • Guizmo

    Au chapitre des éventuelles intégrations produits en faveur d’une synergie de fonctionnement avec Terracotta, l’exploitation d’un BRMS tel que JBoss Rules nécessite-t-elle selon vous un investissement prononcé pour en faire un module TIM ou au contraire, cela ne nécessite pas plus d’investissement que celui à porter pour utiliser un framework web tel que GWT ou ZK ?

    Cordialement

    Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.