O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Multitenancy avec JPA ou Hibernate

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Microservices avec Spring Cloud
Microservices avec Spring Cloud
Carregando em…3
×

Confira estes a seguir

1 de 12 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Multitenancy avec JPA ou Hibernate (20)

Anúncio

Mais recentes (20)

Multitenancy avec JPA ou Hibernate

  1. 1. Multitenancy avec CDI+JPA ou Spring+Hibernate Florian Beaufumé 06/2015
  2. 2. Florian Beaufumé • Architecte logiciel • Spécialisé en Java et web • Freelance • florian.beaufume@adeliosys.fr • www.adeliosys.fr • www.linkedin.com/in/fbeaufume
  3. 3. App 1 Base 1 App 2 Base 2 App Base 1 Base 2 Single-tenant Multitenant Multitenancy
  4. 4. • Types : • Database-per-tenant • Schema-per-tenant • Shared tables • Datasource-per-tenant • Bénéfices : • Opérations simplifiées (mise à jour, monitoring, etc.) • Optimisation des ressources • Fonctionnalités cross-tenant (tableau de bord, délégation, etc.) Isolation Multitenancy
  5. 5. • Supporter "database-per-tenant" et "schema-per-tenant" • Supporter les opérations cross-tenant • Supporter des données communes en plus de données spécifiques • Etre implémentable via JPA ou Hibernate et plus si affinités Objectifs
  6. 6. Existant CDI Spring JPA Hibernate Spécification Java EE Produit Injection de dépendance Mapping objet relationnel Implémente
  7. 7. • JPA 2.1 (c.a.d Java EE 7) : • Multitenancy prévue puis abandonnée • CDI : • Pas de fonctionnalités dédiées, utilisé pour DI et cycle de vie des composants Existant
  8. 8. • Hibernate : • 4.3 : • Supporte "database-per-tenant" et "schema-per-tenant" • Mais une seule current session par session factory et par contexte • Le cache L2 est "tenant aware", mais pas les stats de SF • 5.0 : • Ajout du support de "shared tables" • Spring : • Pas de fonctionnalités dédiées, utilisé pour DI et cycle de vie des composants • Même modèle de current session qu'Hibernate Existant
  9. 9. Données communes Données spécifiques Table APPUSER (schéma commun) Table ITEM (schéma tenant1) Table ITEM (schéma tenant2) Implémentation MyApp-Common-DS MyApp-Specific-Tenant1-DS MyApp-Specific-Tenant2-DS
  10. 10. • Implémentation CDI+JPA : • http://localhost:8080/multitenant-jpa/ • Implémentation Spring+Hibernate : • http://localhost:8080/multitenant-hibernate/ • Implémentation CDI+Jongo : • http://localhost:8080/multitenant-jongo/ Démonstration
  11. 11. Implémentation 1 2 3 4
  12. 12. • Plusieurs stratégies possibles • Tests unitaires : mocking • Tests d'intégration : • CDI+JPA : Arquillian • Spring+Hibernate : JTA avec Atomikos Tests

×