Java et les bases de donnes Etat de
Java et les bases de données Etat de l’art 14 juin 2012
q ARESU (Architectures, réseaux, Expertise & Support aux unités) § § P. 2 q 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 J 2 E 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_v 1 -3. pdf Guillaume HARRY l ARESU
P. 3 1. Introduction 2. Bases de données relationnelles 3. La mouvance No. SQL 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 q 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 q 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 q Développement spécifique q XML § Structure le contenu § Pas de véritable outil de gestion des données q SGBDOO § Outil idéal mais ne s’est pas imposé q No. SQL § Outil idéal pour un besoin bien défini § Pas de standards (langage, interface d’accès) q Conclusion § SGBD Relationnel reste un standard Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation P. 7 q Pour les bases de données relationnelles § Standard d’accès : JDBC § Langage SQL largement répandu q 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 q JDO (JSR 243) § 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 q Faciliter le développement de la couche DAO q Ne pas gérer les accès à la base de données q 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 q Objectifs § Faciliter § Ne pas gérer § Automatiser q Modèle q Implémentations Java § Hibernate (Jboss) § Top. Link (Oracle) § My. Batis (mapping par requête et non par table) Guillaume HARRY l ARESU
2. 2 Bases de données relationnelles : ORM P. 13 q 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 q 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 q Exemple avec Hibernate § Outil Hibernate Tools pour faciliter la génération Java XML et SGBDR Java § Gestion des accès au SGBDR Guillaume HARRY l ARESU
2. 2 Bases de données relationnelles : ORM P. 16 q Exemple avec Hibernate § Gestion des accès au SGBDR • 1 classe Hibernate. Util 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 q Objectifs § Bénéficier des avantages des frameworks ORM § Indépendance du framework utilisé § Langage standard JP-QL (inspiré de HQL) q Modèle Implémentations Java § Hibernate (Jboss) § Top. Link (Oracle) § Eclipse. Link (Fondation Eclipse) Guillaume HARRY l ARESU § Data. Nucleus Access Platform q
2. 3 Bases de données relationnelles : JPA P. 19 q Exemple § Configuration 1 fichier de description • Contexte de persistance • Déclarations des classes Déclaration de l’entité § Permet de faciliter la gestion des contextes de test Guillaume HARRY l ARESU
2. 3 Bases de données relationnelles : JPA P. 20 q 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 q 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 q 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 q Complexité du modèle § Implémentation des associations § Implémentation de l’héritage • 1 seule table, somme de tous les attributs des classes filles (par défaut) • 1 table par classe q Persistance par transitivité q Performances q 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 No. SQL : Technologies P. 26 q Not Only SQL q 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 No. SQL : Technologies P. 27 q Clé-valeur § Données représentée par couple clé/valeur § Accès rapides § Type de données simples … § Exemple : Clé § stockage de résultats d’expérience, statistiques 1 Système de cache Clé Implémentations 2 Voldemort (Linked. In) Redis Riak My. SQL Cluster 7. 2 Clé 3 Guillaume HARRY l ARESU … valeur
3. 1 La mouvance No. SQL : Technologies P. 28 q Orientée document § Ensemble de clés-valeurs stockées dans un document Document § Données semi-structurées Champ 1 valeur § Pas de support des transactions Champ 2 valeur Champ 3 valeur § Exemple : Catalogue de produits CMS § Implémentations Mongo. DB Couch. DB Orient. DB … valeur Clé 1 Document Clé 2 Champ 1 valeur Champ 2 valeur Clé 3 … Guillaume HARRY l ARESU Champ 4 Document Champ 1 valeur Champ 2 valeur Champ 3 valeur
3. 1 La mouvance No. SQL : Technologies P. 29 q Orientée colonne § Contrairement aux SGBDR, colonnes différentes pour chaque ligne § Ecritures rapides § Evite des colonnes à NULL Super. Colonne Nom CNRS § Exemple Stockage de journaux d’activité § Implémentation Hbase Cassandra Big. Table (google) Guillaume HARRY l ARESU Vale ur Colonne Nom Organis me Valeur CNRS Colonne Nom Secteur Valeur public
3. 1 La mouvance No. SQL : Technologies P. 30 q 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 Arc § Exemple : Libellé : apprend Réseaux sociaux § Implémentation Neo 4 j Hypergraph. DB Flock. DB Orient. DB 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 No. SQL : Technologies P. 31 q Choix de la technologie dépend du besoin, pas du volume à gérer q Ne sont pas No. SQL § 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 No. SQL : Limites P. 33 q No. SQL est encore récent q Pas de solution idéale q 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 No. SQL : Et JPA alors? P. 35 q Orient. DB est nativement écrit en JPA q Datanucleus : JPA et JDO pour accès § SGBDR, § Mongo. DB, § Hbase, § LDAP, § Excel, § XML … Guillaume HARRY l ARESU
P. 36 4. CONCLUSION Guillaume HARRY l ARESU
Conclusion P. 37 q JPA et ORM § Orientés CRUD § Tuning complexe dépendant du framework § Moins performants que des accès bas niveau q No. SQL § 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
- Slides: 38