JPA est middleware

25
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 informati que Université De Sousse Institut Supérieur des Sciences Applique et de Technologie de Sousse

description

shili Mohamed

Transcript of JPA est middleware

Page 1: JPA est middleware

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

Page 2: JPA est middleware

10/04/2023 2M2RINFO SPI

Introduction

Plan

Problématique

Middleware

Type de Middleware

JPA (Java Persistance API)

Conclusion

Page 3: JPA est middleware

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

Page 4: JPA est middleware

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.

Page 5: JPA est middleware

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

Page 6: JPA est middleware

10/04/2023 6M2RINFO SPI

Application1 Application3Application2

Application6Application5Application4

Middleware

Middleware ou bus de communication pour les applications distribués

Middleware(3/4)

Page 7: JPA est middleware

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 …

Page 8: JPA est middleware

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

Page 9: JPA est middleware

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

Page 10: JPA est middleware

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…

Page 11: JPA est middleware

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 )

Page 12: JPA est middleware

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

Page 13: JPA est middleware

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.

Page 14: JPA est middleware

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 ?

Page 15: JPA est middleware

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)

Page 16: JPA est middleware

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)

Page 17: JPA est middleware

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)

Page 18: JPA est middleware

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)

Page 19: JPA est middleware

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)

Page 20: JPA est middleware

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

Page 21: JPA est middleware

2110/04/2023 M2RINFO SPI 21

Exemple

Page 22: JPA est middleware

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

Page 23: JPA est middleware

10/04/2023 23M2RINFO SPI

Merci pour votre attention

Page 24: JPA est middleware

10/04/2023 24M2RINFO SPI

[email protected]

Page 25: JPA est middleware

10/04/2023 25M2RINFO SPI

http://fr.wikipedia.org

http://www.hibernate.org

http://developpez.com/tutoriel/java/eclipse/hibernate

Netographie