jpa est middleware
DESCRIPTION
shili MohamedTRANSCRIPT
Proposé Par :Docteur KHEMAJA Maha
Module:Java
Avancé
JPA et les Middleware
Orienté Base de Données
Réalisé Par :Shili Mohamed
Master de
recherche
informatique
Université De SousseInstitut Supérieur des Sciences Applique et de Technologie de
Sousse
10/04/2023 2M2RINFO SPI
Introduction
Plan
Problématique
Middleware
Type de Middleware
JPA (Java Persistance API)
Conclusion
10/04/2023 3M2RINFO SPI
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
10/04/2023 4M2RINFO SPI
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.
10/04/2023 5M2RINFO SPI
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
10/04/2023 6M2RINFO SPI
Application1 Application3Application2
Application6Application5Application4
Middleware
Middleware ou bus de communication pour les applications distribués
Middleware(3/4)
10/04/2023 7M2RINFO SPI
Middleware(4/4)
Exemple de vie
Waa, Waa, Waa ….Le bébé pleure incessamment
Mais qu’est ce qu’il a à pleurer comme ça ?…qu’est ce qu’il veut …..
Middleware: Waa, Waa, Waa = j’ai faim, j’ai faim …
Ahh, j’ai compris,C’est qu’il a faim le pauvre …
10/04/2023 8M2RINFO SPI
Type de Middleware (1/4) Middlewares d’accès aux données
Dialoguer avec un système de gestion de base de donnéesRequêtes select, insert, update, delete
Deux couches distinctesLa couche propre au SGBD ( SQLNet, TDS, … )La couche de l’outil de développement ( ODBC, ADO, JDBC, … )
Application Base dedonnées
Prop
riéta
ire
Prop
riéta
ire
Gén
ériq
ue
10/04/2023 9M2RINFO SPI
Type de Middleware (2/4) Middlewares orientés message
J2EE
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
Application
J2EE
Sujet
JMS
Application Application
SubscribeSubscribe
Publish
Application
Queue
JMS
Application
Send
Receive
Publish / Subscribe(One to many)
Point to Point(One to One)
Synchrone : receive()
Asynchrone : onMessage()
10/04/2023 10M2RINFO SPI
Type de Middleware (3/4) Moniteurs transactionnels ( TP ) 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…
10/04/2023 11M2RINFO SPI
Type de Middleware (4/4) Middlewares d’objets distribués
Gestion d’applications distribuéesUne fonction est sur une machine et collabore au sein de l’application avec une fonction sur une autre machine
Des standardsCORBA
Des implémentations propriétairesDCOM, RMI
Une vision très différente de l’interopérabilitéParfois accessible par plusieurs langagesParfois accessible par plusieurs plateformesParfois les deux
Couplage fort ( technique, métier )
10/04/2023 12M2RINFO SPI
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
10/04/2023 13M2RINFO SPI
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% letemps de développement du code d’accès à la base de
données, tout en bénéficiant des avantages destechnologies objet et en conservant la compatibilité avec
les SGBDR existants.
10/04/2023 14M2RINFO SPI
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 ».
Qu’est-ce que JPA ?
1510/04/2023 M2RINFO SPI 15
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.
Hibernate(1/5)
1610/04/2023 M2RINFO SPI 16
Architecture
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 objet-relationnel.
Ce type de technologie peut
être appelé framework de
mapping objet-relationnel ou de persistance objet
des données.
Hibernate(2/5)
10/04/2023 17M2RINFO SPI
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
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].
Couche Interface Couche Métier
Couche d’accès aux données
(DAO)
1 2 3
Couche JDBC
Base de données
utilisateur
Hibernate(3/5)
10/04/2023 18M2RINFO SPI
Suite Exemple : Couche accès aux données
Couche Hibernate
Objets image de la BDCouche d’accès aux
données (DAO) Couche JDBC BD
Pour isoler la couche [dao] des aspects propriétaires des SGBD. Une solution est celle du Framework Hibernate ou (JPA, TopLink dans JEE)
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
Hibernate(4/5)
10/04/2023 19M2RINFO SPI
les avantages… … les inconvénients…
Gain du temps si on utilise des
outils pour générer
automatiquement la base de
données et le code.
Les objets métiers sont plus
faciles à manipuler.
Peu de dépendance envers une
base de données précise.
Nécessite d'apprendre à
l'utiliser (son utilisation n’est
pas fondamentale)
Tous les problèmes ne sont
pas résolus car Hibernate est
une technologie jeune
Hibernate(5/5)
10/04/2023 20M2RINFO SPI
Quelle est la différence entre hibernate et JPA?
Hibernate VS JPA
Points CommunsOffrir des services de persistanceMapping 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
2110/04/2023 M2RINFO SPI 21
Exemple
2210/04/2023 M2RINFO SPI 22
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)
Conclusion
10/04/2023 23M2RINFO SPI
Merci pour votre attention
10/04/2023 24M2RINFO SPI
10/04/2023 25M2RINFO SPI
http://fr.wikipedia.org
http://www.hibernate.org
http://developpez.com/tutoriel/java/eclipse/hibernate
Netographie