Loading AI tools
De Wikipédia, l'encyclopédie libre
Terracotta Cluster est une solution qui permet de clusteriser des machines virtuelles Java (JVM). Ainsi, l'exécution d'une application Java - multi-threadée ou non - peut être répartie sur différents serveurs. Terracotta manipule le bytecode Java au chargement du code dans la JVM, ce qui permet de conserver les spécificités de Java au travers des clusters, telles que le passage par référence, la coordination de threads, et le ramasse-miette. Un simple fichier XML rend possible la mise en cluster des JVMs, les objets n'ont alors plus besoin d'être sérialisés.
Développé par | Terracotta, Inc |
---|---|
Dernière version | 3.2.0 |
Écrit en | Java |
Environnement | Cross-platform Java Virtual Machine |
Site web | http://www.terracotta.org |
Cas typiques d'utilisation :
Jusqu'aux années 1990, les applications d'entreprise n'étaient pas destinées à être clusterisées, et étaient principalement liées à des bases de données relationnelles. Les applications, en grandissant, ont eu besoin de plus en plus de ressources. Pour pallier ce problème, la première solution a été la réduction au maximum du couplage entre les différentes couches de l'application, dans la mesure où un service peut être hébergé sur un serveur différent, sans pour autant compliquer le modèle de programmation.
Quand cette solution a montré ses limites, des réajustements ont dû être opérés ; c'est là que la clusterisation intervient. Les développeurs ont toujours vécu avec le regroupement et l'évolutivité étroitement couplés à la logique métier. Ce couplage étroit était une contrainte qui suivait les développeurs de la conception jusqu’au déploiement de l'application. Plus précisément, les développeurs et architectes devaient sélectionner JDBC, JMS ou des technologies similaires, pour la sérialisation et le déplacement de données entre les processus.
Aujourd'hui, Terracotta Cluster permet aux développeurs de s'abstraire de cette architecture répartie, et de se concentrer uniquement sur le code applicatif. De plus, il permet que la propagation d'une application à travers les JVMs soit une décision à l’exécution, et évite ainsi aux développeurs de coder en dur les techniques de « clusterisation ».
Le système de Terracotta augmente le bytecode JAVA au chargement dans la JVM, afin d’observer les changements des objets et de coordonner les verrous et les modifications des objets au travers des JVMs.
Le kit Terracotta se divise en deux parties :
La particularité de Terracotta est que la clusterisation se fait sous la couche JVM, ce qui permet l'abstraction de la clusterisation aux développeurs d'applications Java.
Terracotta est développé et maintenu à la fois par la société Terracotta et par des bénévoles. Les utilisateurs ont accès au code source et aux fichiers binaires de Terracotta sous couvert de la Terracotta Public License (TPL), qui est basée sur la Mozilla Public License (MPL). Cependant, la TPL rajoute une clause de publicité similaire à celle de la version originale de la licence BSD, ce qui pose des problèmes pratiques lors de l'utilisation de logiciels couverts par cette licence[1].
Certaines fonctionnalités spécifiques en cours de préparation ne seront pas sous licence TPL, et seront donc uniquement maintenues par la société Terracotta.