View
1.726
Download
0
Category
Preview:
Citation preview
Java et les bases de donnéesEtat de l’art
14 juin 2012
P. 2
Guillaume HARRY l ARESU
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
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
P. 3
Guillaume HARRY l ARESU
SOMMAIRE
1. Introduction
2. Bases de données relationnelles
3. La mouvance NoSQL
4. Conclusion
P. 4
Guillaume HARRY l ARESU
1. INTRODUCTIONJava et la sérialisation
P. 5
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
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
P. 6
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
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
P. 7
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
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é
P. 8
Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation
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
P. 9
Guillaume HARRY l ARESU
2. BASES DE DONNÉES RELATIONNELLES
1. Besoins
2. ORM
3. JPA
4. Les limites
P. 10
Guillaume HARRY l ARESU
2.1 Bases de données relationnelles : Besoins
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
P. 11
Guillaume HARRY l ARESU
2. BASES DE DONNÉES RELATIONNELLES
1. Besoins
2. ORM1. Modèle
2. Exemple avec Hibernate
3. JPA
4. Limites
P. 12
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
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)
P. 13
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
Exemple avec Hibernate Configuration
1 fichier de configuration Hibernate (hibernate.cfg.xml)
Déclaration de l’entité
P. 14
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
Exemple avec hibernate Mapping
1 fichier de description XML (classe.hbm.xml) par classe
P. 15
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
Exemple avec Hibernate Outil
Hibernate Tools pour faciliter la génération JavaXML et SGBDRJava
Gestion des accès au SGBDR
P. 16
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM
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
P. 17
Guillaume HARRY l ARESU
2. SÉRIALISER DANS UN SGBDR
1. Besoins
2. ORM
3. JPA1. Modèle
2. Exemple
4. Limites
P. 18
Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA
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
P. 19
Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA
Exemple Configuration
1 fichier de description • Contexte de persistance• Déclarations des classes
Permet de faciliter la gestion des contextes de test
Déclaration de l’entité
P. 20
Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA
Exemple Mapping
Déclaration de l’entité
Déclaration de l’identifant
P. 21
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA
Exemple Outil
Plugin Eclipse inclus dans Eclipse WTP
Gestion des accès au SGBDRAvec Hibernate
P. 22
Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA
Exemple avec Hibernate Gestion des accès au SGBDR
• Avec Hibernate• Génération automatique des ordres SQL
P. 23
Guillaume HARRY l ARESU
2. SÉRIALISER DANS UN SGBDR
1. Besoins
2. ORM
3. JPA
4. Limites
P. 24
Guillaume HARRY l ARESU
2.4 Bases de données relationnelles : Limites
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 ?
P. 25
Guillaume HARRY l ARESU
3. LA MOUVANCE NOSQL
1. Technologies
2. Limites
3. Et JPA alors?
P. 26
Guillaume HARRY l ARESU
3.1 NoSQL : Technologies
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
P. 27
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
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, statistiquesSystème de cache
ImplémentationsVoldemort (LinkedIn)RedisRiakMySQL Cluster 7.2
…
Clé 1
Clé 2
Clé 3
…
valeur
valeur
valeur
P. 28
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
Orientée document Ensemble de clés-valeurs stockées dans un document Données semi-structurées Pas de support des transactions Exemple :
Catalogue de produitsCMS
ImplémentationsMongoDBCouchDBOrientDB
…
Clé 1
Clé 2
Clé 3
…
DocumentChamp 1 valeur
Champ 2 valeur
Champ 3 valeur
Champ 4 valeur
Document
Champ 1 valeur
Champ 2 valeur
Document
Champ 1 valeur
Champ 2 valeur
Champ 3 valeur
P. 29
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
Orientée colonne Contrairement aux SGBDR,
colonnes différentes pour chaque ligne Ecritures rapides Evite des colonnes à NULL Exemple
Stockage de journaux d’activité
ImplémentationHbaseCassandraBigTable (google)
SuperColonneSuperColonne
Nom CNRS
ValeurColonne
Nom Organisme
Valeur CNRS
Colonne
Nom Secteur
Valeur public
P. 30
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
Orientée graphe Information représentée par des nœuds et des relations
entre nœuds Accès aux données par les liaisons Exemple :
Réseaux sociaux
ImplémentationNeo4jHypergraphDBFlockDBOrientDB
Nœud Champ 1 valeur
Champ 2 valeur
Champ 3 valeur
Champ 4 valeur
Nœud
Champ 1 valeur
Champ 2 valeur
Nœud
Champ 1 valeur
Champ 2 valeur
Champ 3 valeur
ArcLibellé : apprend
ArcLibellé : connait
P. 31
Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies
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)
P. 32
Guillaume HARRY l ARESU
3. LA MOUVANCE NOSQL
1. Technologies
2. Limites
3. Et JPA alors?
P. 33
Guillaume HARRY l ARESU
3.2 La mouvance NoSQL : Limites
NoSQL est encore récent
Pas de solution idéale
Théorème CAP Cohérence Availability Partition tolerance
Chaque client peut toujours lire
et écrire
Chaque client a la même vue de
chaque donnée à tout instant
Le système fonctionne malgré la
partition physique des données
Systèmes CP Systèmes AC
Systèmes AP
P. 34
Guillaume HARRY l ARESU
3. LA MOUVANCE NOSQL
1. Technologies
2. Limites
3. Et JPA alors ?
P. 35
Guillaume HARRY l ARESU
3.3 La mouvance NoSQL : Et JPA alors?
OrientDB est nativement écrit en JPA
Datanucleus : JPA et JDO pour accès SGBDR, MongoDB, Hbase, LDAP, Excel, XML …
P. 36
Guillaume HARRY l ARESU
4. CONCLUSION
P. 37
Guillaume HARRY l ARESU
Conclusion
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
Java et les bases de donnéesEtat de l’art
14 juin 2012
Recommended