SlideShare una empresa de Scribd logo
1 de 25
Université De Sousse
Institut Supérieur des Sciences Applique et de
Technologie de Sousse
Module:
Java
Avancé

JPA et les
Middleware
Orienté Base de
Données

Réalisé Par :
Shili Mohamed

Master de
recherche
informatique

Proposé Par :Docteur KHEMAJA Maha
Plan
Introduction
Problématique
Middleware
Type de Middleware
JPA (Java Persistance API)
Conclusion
04/03/2014

M2RINFO SPI

2
Introduction
Pour faire ce que JPA a dit pour middleware dans les grandes entreprises

qui implémentes par exemple architectures SOAP kaikono andhom des
applications hétérogènes mais il doivent se communiquer entre eux

middleware tout simplement ce connecteur restant en JEE toujours

04/03/2014

M2RINFO SPI

3
Les problèmes à résoudre

L’ intégration de logiciels d’origines divers.

L’accès aux logiciels de l’intérieur ou de l’extérieur
de l’entreprise.
Le développement rapide des applications.

04/03/2014

M2RINFO SPI

4
Middleware(1/4)
Le middleware est un bus de communication auquel les applications
se connectes par l’intermédiaire d’une interface clairement définie.

Le but principal des middleware est de résoudre le problème
d’intégration des logiciels.
Quatre types de middlewares
Orientés accès aux données
Orientés messages ( MOM )
Orientés transaction ( TP )

Orientés objets distribués

Les Web Services sont une vision universelle du middleware
04/03/2014

M2RINFO SPI

5
Middleware(3/4)
Application1

Application2

Application3

Middleware

Application4

Application5

Application6

Middleware ou bus de communication pour les applications distribués

04/03/2014

M2RINFO SPI

6
Middleware(4/4)

Mais qu’est ce
qu’il a à pleurer
comme ça
?…qu’est ce qu’il
veut …..

Ahh, j’ai compris,
C’est qu’il a faim le
pauvre …

Waa, Waa, Waa ….
Le bébé pleure
incessamment

Middleware:
Waa, Waa, Waa = j’ai faim, j’ai faim …

04/03/2014

M2RINFO SPI

7
Type de Middleware (1/4)
Dialoguer avec un système de gestion de base de données
Requêtes select, insert, update, delete

Deux couches distinctes

04/03/2014

M2RINFO SPI

Propriétaire

Propriétaire

Application

Générique

La couche propre au SGBD ( SQLNet, TDS, … )
La couche de l’outil de développement ( ODBC, ADO, JDBC, … )

Base de
données

8
Type de Middleware (2/4)
Message-oriented middleware (MOM) désigne une famille de logiciels qui permettent
l'échange de messages entre les applications présentes sur un réseau informatique. Les MOM
font partie des éléments techniques de base des architectures informatiques. Ils permettent une
forme de couplage faible entre applications.
Plateforme J2EE :
JMS (Java Messaging Services) : est la norme pour accéder aux fonctionnalités des MOM
Point to Point
(One to One)

Publish / Subscribe
(One to many)
Application

Application

Publish

Send

Sujet

Synchrone : receive()

JMS

Asynchrone : onMessage()

J2EE
Subscribe
Application
04/03/2014

Queue
JMS

J2EE
Receive

Subscribe
Application
M2RINFO SPI

Application
9
Type de Middleware (3/4)
 Gestion de transactions distribuées



Communication avec des « resources managers » hétérogènes
Commit à deux phases

 Fonctionnement ACID





Atomicité: toutes les opérations sont effectuées ou aucune
Consistance: cohérence sémantique de l’opération
Isolation: une opération en cours n’a pas d’incidence sur les autres
Durabilité: une fois validées les opérations sont visibles de tous

 Des standards


OSI/TP, CORBA/OTS

 Les produits


Inprise ITS, BEA M3, Tuxedo, Encina, Microsoft MTS…

04/03/2014

M2RINFO SPI

10
Type de Middleware (4/4)
Gestion d’applications distribuées
Une fonction est sur une machine et collabore au sein de
l’application avec une fonction sur une autre machine

Des standards
CORBA

Des implémentations propriétaires
DCOM, RMI

Une vision très différente de l’interopérabilité
Parfois accessible par plusieurs langages
Parfois accessible par plusieurs plateformes
Parfois les deux

Couplage fort ( technique, métier )
04/03/2014

M2RINFO SPI

11
Qu’est-ce que JPA ?
Les systèmes de gestion de bases de données relationnels (SGBDR)
sont devenus un pilier incontournable dans le développement
d’applications vu le niveau de fiabilité et de performances des SGBDR.
J2EE, se base sur la technologie orientée objet. Celle-ci permet aux
applications d’atteindre un niveau de qualité et de flexibilité nettement
supérieur à ceux d’une modélisation relationnelle.
comment stocker les objets modélisés dans les SGBDR ??

On parle ainsi de persistance d’objets métiers
04/03/2014

M2RINFO SPI

12
Qu’est-ce que JPA ?
Développer manuellement le code de projection des objets sur le
support relationnel.
Utiliser une couche logicielle spécialisée de projection objet-

relationnel : Oracle9iAS TopLink, Hibernate, Ibatis….

Ce type de logiciels permet de réduire jusqu’à 80% le
temps de développement du code d’accès à la base de
données, tout en bénéficiant des avantages des
technologies objet et en conservant la compatibilité avec
les SGBDR existants.

04/03/2014

M2RINFO SPI

13
Qu’est-ce que JPA ?
Littéralement « Java Persistance API », il s’agit d’un standard
faisant partie intégrante de la plate-forme Java EE, une
spécification qui définit un ensemble de règles permettant la
gestion de la correspondance entre des objets Java et une base de
données, ou autrement formulé la gestion de la persistance.

Ce mécanisme qui gère la correspondance entre des objets d’une
application et les tables d’une base de données se nomme ORM,
pour « Object-Relational Mapping ».

04/03/2014

M2RINFO SPI

14
Hibernate(1/5)
Qu’est-ce que Hibernate ?
Hibernate est un projet ‘Open Source’ visant à proposer
un outil de mapping entre les objets et les données dans
une base de données relationnelle.
Ce projet ne repose sur aucun standard mais il est très
populaire notamment à cause de ses bonnes performances
et de son ouverture avec de nombreuses bases de données

.
Hibernate apporte une solution aux problèmes
d'adaptation entre le paradigme objet et les SGBD en
remplaçant les accès à la base de données par des appels à
des méthodes objet de haut niveau.
une solution de gestion de persistance ou couche de
persistance.
04/03/2014

M2RINFO SPI

15
15
Hibernate(2/5)

Ce type de
technologie peut
être appelé
framework de
mapping objetrelationnel ou de
persistance objet
des données.

La couche d'accès aux
données.

Le lien entre les classes exposées et la source physique des données (souvent une base
de données relationnelle) est définie par un fichier xml. D'où mapping objetrelationnel.
04/03/2014

M2RINFO SPI

16
16
Hibernate(3/5)
Exemple : Couche accès aux données
Il existe différentes possibilités pour implémenter la couche accès
aux données. Le développeur peut diviser en tiers dotés de
fonctionnalités spécifiques

Couche
Interface
utilisateur

1

Couche Métier

Couche d’accès
aux données
(DAO)

2

Couche

JDBC

Base de
données

3

La couche [JDBC] est la couche standard utilisée en Java pour accéder à des
bases de données. Elle isole la couche [dao] du SGBD qui gère la base de
données. On peut théoriquement changer de SGBD sans changer le code de la
couche [dao].
04/03/2014

M2RINFO SPI

17
Hibernate(4/5)

Suite Exemple : Couche accès aux données

Pour isoler la couche [dao] des aspects propriétaires des SGBD. Une solution est celle
du Framework Hibernate ou (JPA, TopLink dans JEE)
Couche d’accès aux
données (DAO)

Objets image
de la BD

Couche

Hibernate

Couche JDBC

BD

La couche [Hibernate] vient se placer entre la couche [dao] écrite par le développeur
et la couche [Jdbc]
Hibernate est un ORM (Object Relational Mapping), un outil qui fait le pont entre le
modèle relationnel des bases de données et celui des objets manipulés par Java
Le développeur ne voit plus la couche [Jdbc] ni les tables de la BD. Il ne voit que l'image
objet de BD, fournie par la couche [Hibernate]. Le pont entre les tables de la BD et les
objets manipulés par la couche [dao] est fait principalement de deux façons :
• par des fichiers de configuration de type XML
• par des annotations Java dans le code, technique disponible depuis le JDK 1.5
04/03/2014

M2RINFO SPI

18
Hibernate(5/5)
… les inconvénients…

les avantages…
Gain du temps si on utilise des

Nécessite d'apprendre à

outils pour générer

l'utiliser (son utilisation n’est

automatiquement la base de

pas fondamentale)

données et le code.

Tous les problèmes ne sont

Les objets métiers sont plus

pas résolus car Hibernate est

faciles à manipuler.

une technologie jeune

Peu de dépendance envers une
base de données précise.
04/03/2014

M2RINFO SPI

19
Hibernate VS JPA
Points Communs
Offrir des services de persistance
Mapping Objet/Relationnel déclaratif
 Adopter un langage de requêtes

Points de divergence
•JPA est une brique de base du standard Java EE 5
•Hibernate est un Framework alors que JPA est une spécification
(API)
•Hibernate peut être utilisé comme fournisseur de persistance
•JPA utilise les annotations Java 5 pour assurer le mapping
•JPA est plus simple à mettre en œuvre que Hibernate (Entity
Manager, pas de fichiers de mapping, …)

JPA un concept
Hibernate implémentation de ce concept
04/03/2014

M2RINFO SPI

20
Exemple

04/03/2014

M2RINFO SPI

21
21
Conclusion
Le middleware fait partie de l'évolution naturelle du
développement informatique

Optimisation du temps de développement du programmeur.
Des applications plus homogènes

Des applications facilement migrables aussi (pensez que pour changer de
base de données, il suffit juste de toucher à hibernate.cfg.xml)
Technologie prometteuse (Sortie d’une version NHIBERNATE compatible
avec DOT NET)

04/03/2014

M2RINFO SPI

22
22
04/03/2014

M2RINFO SPI

23
Medshili_isetkr@hotmail.fr

04/03/2014

M2RINFO SPI

24
Netographie
http://fr.wikipedia.org
http://www.hibernate.org
http://developpez.com/tutoriel/java/eclipse/hibernate

04/03/2014

M2RINFO SPI

25

Más contenido relacionado

La actualidad más candente

La actualidad más candente (8)

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Web services
Web servicesWeb services
Web services
 
Partie3 cif et dcif
Partie3  cif et dcifPartie3  cif et dcif
Partie3 cif et dcif
 

Destacado

Spintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data StorageSpintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data Storageniazi2012
 
Nanostructuration de Surface - Organic Lasers
Nanostructuration de Surface -  Organic LasersNanostructuration de Surface -  Organic Lasers
Nanostructuration de Surface - Organic Lasersniazi2012
 
BEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data StorageBEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data Storageniazi2012
 
Comparaison de outils mda
Comparaison de outils mdaComparaison de outils mda
Comparaison de outils mdaShili Mohamed
 
Soutenanceshili mohamed
Soutenanceshili mohamedSoutenanceshili mohamed
Soutenanceshili mohamedShili Mohamed
 
Présentation carteapuce
Présentation carteapucePrésentation carteapuce
Présentation carteapuceShili Mohamed
 
patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practicebharati k
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward Willink
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking AssignmentSalma ES-Salmani
 

Destacado (20)

Spintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data StorageSpintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data Storage
 
Cours ocl
Cours oclCours ocl
Cours ocl
 
Nanostructuration de Surface - Organic Lasers
Nanostructuration de Surface -  Organic LasersNanostructuration de Surface -  Organic Lasers
Nanostructuration de Surface - Organic Lasers
 
BEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data StorageBEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data Storage
 
Comparaison de outils mda
Comparaison de outils mdaComparaison de outils mda
Comparaison de outils mda
 
Soutenanceshili mohamed
Soutenanceshili mohamedSoutenanceshili mohamed
Soutenanceshili mohamed
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Présentation carteapuce
Présentation carteapucePrésentation carteapuce
Présentation carteapuce
 
patron de conception
patron de conception patron de conception
patron de conception
 
Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
OCCIware
OCCIwareOCCIware
OCCIware
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practice
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 

Similar a JPA est middleware (20)

Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Spring
SpringSpring
Spring
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
2 ModéLe Mvc
2 ModéLe Mvc2 ModéLe Mvc
2 ModéLe Mvc
 
JavaRMI.pdf
JavaRMI.pdfJavaRMI.pdf
JavaRMI.pdf
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
Ado.net database access
Ado.net database accessAdo.net database access
Ado.net database access
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 

JPA est middleware

  • 1. Université De Sousse Institut Supérieur des Sciences Applique et de Technologie de Sousse Module: Java Avancé JPA et les Middleware Orienté Base de Données Réalisé Par : Shili Mohamed Master de recherche informatique Proposé Par :Docteur KHEMAJA Maha
  • 2. Plan Introduction Problématique Middleware Type de Middleware JPA (Java Persistance API) Conclusion 04/03/2014 M2RINFO SPI 2
  • 3. Introduction Pour faire ce que JPA a dit pour middleware dans les grandes entreprises qui implémentes par exemple architectures SOAP kaikono andhom des applications hétérogènes mais il doivent se communiquer entre eux middleware tout simplement ce connecteur restant en JEE toujours 04/03/2014 M2RINFO SPI 3
  • 4. Les problèmes à résoudre L’ intégration de logiciels d’origines divers. L’accès aux logiciels de l’intérieur ou de l’extérieur de l’entreprise. Le développement rapide des applications. 04/03/2014 M2RINFO SPI 4
  • 5. Middleware(1/4) Le middleware est un bus de communication auquel les applications se connectes par l’intermédiaire d’une interface clairement définie. Le but principal des middleware est de résoudre le problème d’intégration des logiciels. Quatre types de middlewares Orientés accès aux données Orientés messages ( MOM ) Orientés transaction ( TP ) Orientés objets distribués Les Web Services sont une vision universelle du middleware 04/03/2014 M2RINFO SPI 5
  • 7. Middleware(4/4) Mais qu’est ce qu’il a à pleurer comme ça ?…qu’est ce qu’il veut ….. Ahh, j’ai compris, C’est qu’il a faim le pauvre … Waa, Waa, Waa …. Le bébé pleure incessamment Middleware: Waa, Waa, Waa = j’ai faim, j’ai faim … 04/03/2014 M2RINFO SPI 7
  • 8. Type de Middleware (1/4) Dialoguer avec un système de gestion de base de données Requêtes select, insert, update, delete Deux couches distinctes 04/03/2014 M2RINFO SPI Propriétaire Propriétaire Application Générique La couche propre au SGBD ( SQLNet, TDS, … ) La couche de l’outil de développement ( ODBC, ADO, JDBC, … ) Base de données 8
  • 9. Type de Middleware (2/4) Message-oriented middleware (MOM) désigne une famille de logiciels qui permettent l'échange de messages entre les applications présentes sur un réseau informatique. Les MOM font partie des éléments techniques de base des architectures informatiques. Ils permettent une forme de couplage faible entre applications. Plateforme J2EE : JMS (Java Messaging Services) : est la norme pour accéder aux fonctionnalités des MOM Point to Point (One to One) Publish / Subscribe (One to many) Application Application Publish Send Sujet Synchrone : receive() JMS Asynchrone : onMessage() J2EE Subscribe Application 04/03/2014 Queue JMS J2EE Receive Subscribe Application M2RINFO SPI Application 9
  • 10. Type de Middleware (3/4)  Gestion de transactions distribuées   Communication avec des « resources managers » hétérogènes Commit à deux phases  Fonctionnement ACID     Atomicité: toutes les opérations sont effectuées ou aucune Consistance: cohérence sémantique de l’opération Isolation: une opération en cours n’a pas d’incidence sur les autres Durabilité: une fois validées les opérations sont visibles de tous  Des standards  OSI/TP, CORBA/OTS  Les produits  Inprise ITS, BEA M3, Tuxedo, Encina, Microsoft MTS… 04/03/2014 M2RINFO SPI 10
  • 11. Type de Middleware (4/4) Gestion d’applications distribuées Une fonction est sur une machine et collabore au sein de l’application avec une fonction sur une autre machine Des standards CORBA Des implémentations propriétaires DCOM, RMI Une vision très différente de l’interopérabilité Parfois accessible par plusieurs langages Parfois accessible par plusieurs plateformes Parfois les deux Couplage fort ( technique, métier ) 04/03/2014 M2RINFO SPI 11
  • 12. Qu’est-ce que JPA ? Les systèmes de gestion de bases de données relationnels (SGBDR) sont devenus un pilier incontournable dans le développement d’applications vu le niveau de fiabilité et de performances des SGBDR. J2EE, se base sur la technologie orientée objet. Celle-ci permet aux applications d’atteindre un niveau de qualité et de flexibilité nettement supérieur à ceux d’une modélisation relationnelle. comment stocker les objets modélisés dans les SGBDR ?? On parle ainsi de persistance d’objets métiers 04/03/2014 M2RINFO SPI 12
  • 13. Qu’est-ce que JPA ? Développer manuellement le code de projection des objets sur le support relationnel. Utiliser une couche logicielle spécialisée de projection objet- relationnel : Oracle9iAS TopLink, Hibernate, Ibatis…. Ce type de logiciels permet de réduire jusqu’à 80% le temps de développement du code d’accès à la base de données, tout en bénéficiant des avantages des technologies objet et en conservant la compatibilité avec les SGBDR existants. 04/03/2014 M2RINFO SPI 13
  • 14. Qu’est-ce que JPA ? Littéralement « Java Persistance API », il s’agit d’un standard faisant partie intégrante de la plate-forme Java EE, une spécification qui définit un ensemble de règles permettant la gestion de la correspondance entre des objets Java et une base de données, ou autrement formulé la gestion de la persistance. Ce mécanisme qui gère la correspondance entre des objets d’une application et les tables d’une base de données se nomme ORM, pour « Object-Relational Mapping ». 04/03/2014 M2RINFO SPI 14
  • 15. Hibernate(1/5) Qu’est-ce que Hibernate ? Hibernate est un projet ‘Open Source’ visant à proposer un outil de mapping entre les objets et les données dans une base de données relationnelle. Ce projet ne repose sur aucun standard mais il est très populaire notamment à cause de ses bonnes performances et de son ouverture avec de nombreuses bases de données . Hibernate apporte une solution aux problèmes d'adaptation entre le paradigme objet et les SGBD en remplaçant les accès à la base de données par des appels à des méthodes objet de haut niveau. une solution de gestion de persistance ou couche de persistance. 04/03/2014 M2RINFO SPI 15 15
  • 16. Hibernate(2/5) Ce type de technologie peut être appelé framework de mapping objetrelationnel ou de persistance objet des données. La couche d'accès aux données. Le lien entre les classes exposées et la source physique des données (souvent une base de données relationnelle) est définie par un fichier xml. D'où mapping objetrelationnel. 04/03/2014 M2RINFO SPI 16 16
  • 17. Hibernate(3/5) Exemple : Couche accès aux données Il existe différentes possibilités pour implémenter la couche accès aux données. Le développeur peut diviser en tiers dotés de fonctionnalités spécifiques Couche Interface utilisateur 1 Couche Métier Couche d’accès aux données (DAO) 2 Couche JDBC Base de données 3 La couche [JDBC] est la couche standard utilisée en Java pour accéder à des bases de données. Elle isole la couche [dao] du SGBD qui gère la base de données. On peut théoriquement changer de SGBD sans changer le code de la couche [dao]. 04/03/2014 M2RINFO SPI 17
  • 18. Hibernate(4/5) Suite Exemple : Couche accès aux données Pour isoler la couche [dao] des aspects propriétaires des SGBD. Une solution est celle du Framework Hibernate ou (JPA, TopLink dans JEE) Couche d’accès aux données (DAO) Objets image de la BD Couche Hibernate Couche JDBC BD La couche [Hibernate] vient se placer entre la couche [dao] écrite par le développeur et la couche [Jdbc] Hibernate est un ORM (Object Relational Mapping), un outil qui fait le pont entre le modèle relationnel des bases de données et celui des objets manipulés par Java Le développeur ne voit plus la couche [Jdbc] ni les tables de la BD. Il ne voit que l'image objet de BD, fournie par la couche [Hibernate]. Le pont entre les tables de la BD et les objets manipulés par la couche [dao] est fait principalement de deux façons : • par des fichiers de configuration de type XML • par des annotations Java dans le code, technique disponible depuis le JDK 1.5 04/03/2014 M2RINFO SPI 18
  • 19. Hibernate(5/5) … les inconvénients… les avantages… Gain du temps si on utilise des Nécessite d'apprendre à outils pour générer l'utiliser (son utilisation n’est automatiquement la base de pas fondamentale) données et le code. Tous les problèmes ne sont Les objets métiers sont plus pas résolus car Hibernate est faciles à manipuler. une technologie jeune Peu de dépendance envers une base de données précise. 04/03/2014 M2RINFO SPI 19
  • 20. Hibernate VS JPA Points Communs Offrir des services de persistance Mapping Objet/Relationnel déclaratif  Adopter un langage de requêtes Points de divergence •JPA est une brique de base du standard Java EE 5 •Hibernate est un Framework alors que JPA est une spécification (API) •Hibernate peut être utilisé comme fournisseur de persistance •JPA utilise les annotations Java 5 pour assurer le mapping •JPA est plus simple à mettre en œuvre que Hibernate (Entity Manager, pas de fichiers de mapping, …) JPA un concept Hibernate implémentation de ce concept 04/03/2014 M2RINFO SPI 20
  • 22. Conclusion Le middleware fait partie de l'évolution naturelle du développement informatique Optimisation du temps de développement du programmeur. Des applications plus homogènes Des applications facilement migrables aussi (pensez que pour changer de base de données, il suffit juste de toucher à hibernate.cfg.xml) Technologie prometteuse (Sortie d’une version NHIBERNATE compatible avec DOT NET) 04/03/2014 M2RINFO SPI 22 22