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
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