Bonjour,
je créé une nouvelle application. Mon besoin est de pouvoir croître assez facilement en dimensions à termes. Du coup, j'ai envisagé l'utilisation d'une persistance (hibernate) non pas pour une "indépendance vis à vis du SGBDR" car je suis assez sur de mon choix (postgres).
Mon but premier est de bénéficier facilement de fonctionnalités de cache en mode "cluster safe" car j'aurais certainement un loadbalancing/failover sur les serveurs applicatifs.
Bon but second sera de pouvoir aussi monter en charge au niveau SGBDR: soit en réplicant, soit en distribuant (ex: client 1 à 1000 sur SGBDR1 et 1001 à 2000 sur SGBDR2 sachant que les données entre les deux sont cloisonnées à 99% mis à part quelques tables de paramétrage communes).
Alors voici quelques questions pour vérifier que je n'ai pas des raccourcis de raisonnement aberrant, en sachant que je pars d'un modèle relationnel préexistant (le modèle objet étant produit à partir du modèle relationnel):
1) Il est plus simple d'utiliser un JPA ou hibernate que de développer sa persistance si on veut avoir une gestion "transparente" et performante. L'intérêt d'un JPA/Hibernate n'est pas uniquement l'ORM et le support de plusieurs SGBDR ?
2) Hibernate serait plutot vu comme une implémentation de JPA qui offre des services supplémentaires et qui reste performante et bien mature et supporté ?
3) La réplication des BD est transparente pour une persistance en toute logique ? La distribution est-elle aussi simple ? A une epoque il y avait des middleware types CJDBC, etc.
Compte tenu de mon besoin, que me conseillez vous ?
- utiliser du JDBC ou un autre framework de persitance ou une autre implementation que JPA/Hibernate plus adaptée pour gérer de la distribution de mes plages de clients ?
- utiliser JPA hibernate ? Si oui avec quelles implementation de persistance ? Quel outil de cache et sous quel mode (terracota ? ehcache ? jboss cache ? repliqué ? distribué ? version ? )
- comment gérer ma "distribution" ou le scaling SGBDR : distribution ? replication ? load balancing ? fail over ? framework ou middle ware ?
merci pour vos conseils
Partager