Java et les bases de données : état de l`art

publicité
Java et les bases de données
Etat de l’art
14 juin 2012

ARESU (Architectures, réseaux, Expertise & Support aux unités)
 Appui et accompagnement des projets
 Veille technologique
 Capitalisation des compétences techniques
 Participation aux communautés informatique

Guillaume HARRY
 11 ans d’expérience en tant que DBA
 7 ans d’expérience en J2E
P. 2
Expertise accès aux données



Responsable des cellules « Bases de données » et
« Gestion des identités »
Participation à la cellule « Développement »
Étude sur les failles de sécurité des applications Web
https://aresu.dsi.cnrs.fr/IMG/pdf/failles_de_securite_v1-3.pdf
Guillaume HARRY l ARESU
P. 3
1.
Introduction
2.
Bases de données relationnelles
3.
La mouvance NoSQL
4.
Conclusion
SOMMAIRE
Guillaume HARRY l ARESU
P. 4
Java et la sérialisation
1. INTRODUCTION
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
P. 5

Modèle en couche
 L’interface graphique ne doit pas manipuler directement
les données stockées
 La couche d’accès aux données doit être la seule
responsable de la sérialisation des objets métiers

Qu’est-ce que la sérialisation ?
 Rendre les objets persistants
 Ecrire des données présentes en mémoire vers un flux
de données binaires
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
P. 6

Développement spécifique

XML
 Structure le contenu
 Pas de véritable outil de gestion des données

SGBDOO
 Outil idéal mais ne s’est pas imposé

NoSQL
 Outil idéal pour un besoin bien défini
 Pas de standards (langage, interface d’accès)

Conclusion
 SGBD Relationnel reste un standard
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
P. 7

Pour les bases de données relationnelles
 Standard d’accès : JDBC
 Langage SQL largement répandu

Maintenance couteuse
 SQL propre à chaque SGBDR
 Besoin de redévelopper les frameworks de gestion des
accès
 Développement spécifique au SGBDR utilisé
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
P. 8

JDO (JSR243)
 Interface standard pour la sérialisation
 Indépendance vis-à-vis de la solution de stockage
 Trop complexe à mettre en œuvre
 Peu d’implémentations
Guillaume HARRY l ARESU
P. 9
1.
Besoins
2.
ORM
3.
JPA
4.
Les limites
2. BASES DE DONNÉES
RELATIONNELLES
Guillaume HARRY l ARESU
2.1 Bases de données relationnelles : Besoins
P. 10

Faciliter le développement de la couche DAO

Ne pas gérer les accès à la base de données

Automatiser la corrélation Objet ↔ Base de données
Guillaume HARRY l ARESU
P. 11
1.
Besoins
2.
ORM
1.
2.
Modèle
Exemple avec Hibernate
3.
JPA
4.
Limites
2. BASES DE DONNÉES
RELATIONNELLES
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
P. 12

Objectifs
 Faciliter
 Ne pas gérer
 Automatiser

Modèle

Implémentations Java
 Hibernate (Jboss)
 TopLink (Oracle)
 MyBatis (mapping par requête et non par table)
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
P. 13

Exemple avec Hibernate
 Configuration
1 fichier de configuration Hibernate (hibernate.cfg.xml)
Déclaration de l’entité
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
P. 14

Exemple avec hibernate
 Mapping
1 fichier de description XML (classe.hbm.xml) par classe
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
P. 15

Exemple avec Hibernate
 Outil
Hibernate Tools pour faciliter la génération JavaXML et SGBDRJava

Guillaume HARRY l ARESU
Gestion des accès au SGBDR
2.2 Bases de données relationnelles : ORM
P. 16

Exemple avec Hibernate
 Gestion des accès au SGBDR
• 1 classe HibernateUtil pour obtenir
une session dans la base de données
• Génération automatique des ordres SQL
Guillaume HARRY l ARESU
P. 17
1.
Besoins
2.
ORM
3.
JPA
1.
2.
4.
Modèle
Exemple
Limites
2. SÉRIALISER DANS UN SGBDR
Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA
P. 18

Objectifs
 Bénéficier des avantages des frameworks ORM
 Indépendance du framework utilisé
 Langage standard JP-QL (inspiré de HQL)

Modèle
Implémentations Java
 Hibernate (Jboss)
 TopLink (Oracle)
 EclipseLink (Fondation Eclipse)
 DataNucleus Access Platform
Guillaume HARRY l ARESU

2.3 Bases de données relationnelles : JPA
P. 19

Exemple
 Configuration
1 fichier de description
• Contexte de persistance
• Déclarations des classes
Déclaration de l’entité

Guillaume HARRY l ARESU
Permet de faciliter la gestion des contextes de test
2.3 Bases de données relationnelles : JPA
P. 20

Exemple
 Mapping
Déclaration de l’entité
Déclaration de l’identifant
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA
P. 21

Exemple
 Outil
Plugin Eclipse inclus dans Eclipse WTP

Gestion des accès au SGBDR
Avec Hibernate
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA
P. 22

Exemple avec Hibernate
 Gestion des accès au SGBDR
• Avec Hibernate
• Génération automatique des ordres SQL
Guillaume HARRY l ARESU
P. 23
1.
Besoins
2.
ORM
3.
JPA
4.
Limites
2. SÉRIALISER DANS UN SGBDR
Guillaume HARRY l ARESU
2.4 Bases de données relationnelles : Limites
P. 24

Complexité du modèle
 Implémentation des associations
 Implémentation de l’héritage
• 1seule table, somme de tous les attributs des classes filles (par
défaut)
• 1 table par classe

Persistance par transitivité

Performances

Comment faire avec des données non structurées ?
Guillaume HARRY l ARESU
P. 25
1.
Technologies
2.
Limites
3.
Et JPA alors?
3. LA MOUVANCE NOSQL
Guillaume HARRY l ARESU
3.1 NoSQL : Technologies
P. 26

Not Only SQL

Répondre aux besoins
 Explosion du volume de données (Big Data)
 Données non structurées
 Gestion des relations entre les données
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
P. 27

Clé-valeur
 Données représentée par couple clé/valeur
 Accès rapides
 Type de données simples
…
 Exemple :
stockage de résultats d’expérience, statistiques
Système de cache

Implémentations
Voldemort (LinkedIn)
Redis
Riak
MySQL Cluster 7.2
Guillaume HARRY l ARESU
Clé 1
valeur
Clé 2
valeur
Clé 3
valeur
…
3.1 La mouvance NoSQL : Technologies
P. 28

Orientée document
 Ensemble de clés-valeurs stockées dans un document
 Données semi-structurées
Document
Champ 1
valeur
 Pas de support des transactions
Champ 2
valeur
 Exemple :

Catalogue de produits
CMS
…
Implémentations
Clé 1
MongoDB
CouchDB
OrientDB
Clé 2
Clé 3
…
Guillaume HARRY l ARESU
Champ 3
valeur
Champ 4
valeur
Document
Champ 1
valeur
Champ 2
valeur
Document
Champ 1
valeur
Champ 2
valeur
Champ 3
valeur
3.1 La mouvance NoSQL : Technologies
P. 29

Orientée colonne
 Contrairement aux SGBDR,
colonnes différentes pour chaque ligne
 Ecritures rapides
 Evite des colonnes à NULL SuperColonne
Nom
CNRS
 Exemple
Stockage de journaux d’activité

Implémentation
Hbase
Cassandra
BigTable (google)
Guillaume HARRY l ARESU
Valeur
Colonne
Nom
Organisme
Valeur
CNRS
Colonne
Nom
Secteur
Valeur
public
3.1 La mouvance NoSQL : Technologies
P. 30

Orientée graphe
 Information représentée par des nœuds et des relations
entre nœuds
Nœud
 Accès aux données par les liaisons
Champ 1
valeur
Champ 2
valeur
 Exemple :
Arc
Réseaux sociaux

Libellé : apprend
Implémentation
Neo4j
HypergraphDB
FlockDB
OrientDB
Champ 3
valeur
Champ 4
valeur
Nœud
Champ 1
valeur
Champ 2
valeur
Nœud
Arc
Libellé : connait
Guillaume HARRY l ARESU
Champ 1
valeur
Champ 2
valeur
Champ 3
valeur
3.1 La mouvance NoSQL : Technologies
P. 31

Choix de la technologie dépend du besoin, pas du volume à
gérer

Ne sont pas NoSQL
 Orientées objet
 Hierarchique
 Datagrids (hors clé-valeur)
Guillaume HARRY l ARESU
P. 32
1.
Technologies
2.
Limites
3.
Et JPA alors?
3. LA MOUVANCE NOSQL
Guillaume HARRY l ARESU
3.2 La mouvance NoSQL : Limites
P. 33

NoSQL est encore récent

Pas de solution idéale

Théorème CAP
 Cohérence
 Availability
 Partition tolerance
Systèmes CP
Le système
fonctionne malgré la
partition physique
des données
Guillaume HARRY l ARESU
Chaque client a la
même vue de
chaque donnée à
tout instant
Systèmes AC
Systèmes AP
Chaque client
peut toujours lire
et écrire
P. 34
1.
Technologies
2.
Limites
3.
Et JPA alors ?
3. LA MOUVANCE NOSQL
Guillaume HARRY l ARESU
3.3 La mouvance NoSQL : Et JPA alors?
P. 35

OrientDB est nativement écrit en JPA

Datanucleus : JPA et JDO pour accès
 SGBDR,
 MongoDB,
 Hbase,
 LDAP,
 Excel,
 XML …
Guillaume HARRY l ARESU
P. 36
4. CONCLUSION
Guillaume HARRY l ARESU
Conclusion
P. 37

JPA et ORM
 Orientés CRUD
 Tuning complexe dépendant du framework
 Moins performants que des accès bas niveau

NoSQL
 Ne remplace pas SGBDR
 Administration/exploitation non triviale
Guillaume HARRY l ARESU
Java et les bases de données
Etat de l’art
14 juin 2012
Téléchargement