Vous êtes sur la page 1sur 13

Universit De Sousse Institut Suprieur uprieur des Sciences Applique et de Technologie echnologie de Sousse

Rapport

Mini-projet: projet: Le JPA est le Middleware Orient Base de Donnes


Propos par : Dr.Khemaja maja Maha Elabor par : Shili Mohamed Groupe : Master de recherche informatique Mohamed_recherche@hotmail.fr/Medshili_isetkr@hotmail.fr

Date : 02 /12/2013

I.

Introduction

La persistance est le mcanisme de sauvegarde (sur disque ou dans une base de donnes relationnelle) et de restauration des donnes. Un programme informatique peut alors tre ferm sans que ses donnes ne soient perdues pour autant. Dans le monde Java, l'API JDBC (Java DataBase Connectivity) a trs vite rpondu ce besoin. Cependant, elle implique que le dveloppeur implmente lui-mme l'interaction avec les bases de donnes et les requtes SQL qui sont ncessaires la persistance des donnes de son application. De plus, la transcription des objets Java en donnes relationnelles dans la base de donnes doit tre faite manuellement et est souvent fastidieuse. Hibernate est une solution open source de type ORM (Object Relational Mapping) qui permet de faciliter le dveloppement de la couche persistance d'une application. Hibernate permet donc de reprsenter une base de donnes en objets Java et vice versa.Hibernate facilite la persistence et la recherche de donnes dans une base de donnes en ralisant lui mme la cration des objets et les traitements de remplissage de ceux-ci en accdant la base de donnes. La quantit de code ainsi pargne est trs importante d'autant que ce code est gnralement fastidieux et redondant. Hibernate est trs populaire notamment cause de ses bonnes performances et de son ouverture de nombreuses bases de donnes.

II. Problmatique Problmatiques lie s l'infrastructure Gestion du flux des donnes Gestion centralise du systme Gestion des qualits de service Problmatiques lies l'intgration Transformation des vnements bruts en vnements applicatifs changes avec les applications mtiers Problmatiques physiques" Choix des types de tags et de lecteurs Lgislations, standards, etc.

Page 2

III.

Middleware

En informatique, un intergiciel (en anglais middleware) est un logiciel servant d'intermdiaire de communication entre plusieurs applications, gnralement complexes ou distribues sur un rseau informatique. Le middleware est un bus de communication auquel les application applications se Connectes onnectes par lintermdiaire dune interface clairement dfinie. Le but principal des middlewares est de rsoudre le problme dintgration des logiciels. Quatre types de middlewares Orients accs aux donnes Orients messages ( MOM ) Orients transaction ( TP ) Orients objets distribus Les Web Services sont une vision universelle du middleware

Figure 1 : Middleware

Page 3

IV.

Type de Middleware
Pourquoi la messagerie?

1. Middlewares Orients Messages (MOM)

Figure 2 :MOM

Couplage fort Le client dpend de linterface du serveur Le client doit connatre le serveur (Rfrence) Dpendance temporelle Le client et le serveur doivent tre simultanment disponibles Communication synchrone/bloquante (habituellement) Le client est bloqu entre lenvoi de la requte et larrive de la rponse

Page 4

Les middlewares orients messages (MOM) proposent une infrastructure permettant lchange de messages dans une architecture rpartie. MOM Entits de base

Rcepteur

Message mom metteur Rcepteur

Rcepteur

Figure 3 :Entits de base

Le client (utilisateur du MOM) mission et rception de messages Le fournisseur (ou provider) support du MOM : routage, stockage des messages Le message (support des donnes transmises) Type MIME -formats texte, son, image, .. Le rcepteur Avantages des MOM Intgration de multiples protocoles et des multiples plateformes Messages dfinis par les utilisateurs GMD : Guaranteed Message Delivery Equilibrage de charge Tolrance de pannes

Page 5

Support ort pour plateformes htrognes Gestion et configuration sur interfaces graphiques Les types de MOM Les logiciels de MOM peuvent fonctionner de trois faons diffrentes Le Point-To-Point (PTP) Le Publish-Subsribe(Pub/Sub) Subsribe(Pub/Sub) Le Request-Reply(RR) Reply(RR) Le modle Point-to-Point Point Chaque message est stock dans une file (Queue) jusqu ce que le destinataire le lise Chaque message est consomm une seule fois (par un seul destinataire) Pas de dpendance temporelle entre metteur et destinataire du message

Figure 4 : Modle Point-to-Point Le modle Publish-Subscribe Subscribe Le sujet (Topic) gre lenvoi lenvoi de messages pour un ensemble de lecteurs abonns Dcouplage entre les publishers et les subscribers Les fournisseurs nont ont pas besoins de connatre les consommateurs Dpendance temporelle Un client ne peut lire un message quaprs qu stre tre abonn un topic,

Page 6

Un client abonn un topic doit continuer tre actif pour recevoir les message du topic.

Figure 5 :

Publish-Subscribe

MOM Synthse Exemples de services de messagerie Websphere MQ par IBM SoniqMQ par Progress WebLogic JMS par Oracle Active MQ par Apache Jusqu ~2001, peu ou pas defforts de normalisation Une API par vendeur Conceptions diffrentes (ex. utilisation des ressources) Fonctionnalits diffrentes Difficults Limitation de linteroprabilit (critique) Problmes de maintenance et dvolutivit volutions Java Messaging Service (JMS) -une une API standard pour le client

Page 7

CORBA COS Notification -une une API pour le client, description de linfrastructure (objets et API) Advanced Message Queueing Protocol (AMQP) un un standard ouvert pour linteroprabilit de middlewares message crits en diffrents langages et pour diffrentes plates-formes plates formes 2. Middlewares daccs aux donnes Dialoguer avec un systme de gestion de base de donnes Requtes select, insert, update, delete Deux couches distinctes La couche propre au SGBD ( SQLNet, TDS, ) La couche de loutil de dveloppement ( ODBC, ADO, JDBC, )

Figure 6 :JBDC

3. Moniteurs Transactionnels ( TP ) Gestion de transactions distribues Communication avec des resources managers htrognes Commit deux phases Fonctionnement ACID Atomicit: : toutes les oprations sont effectues ou aucune Consistance: : cohrence smantique de lopration Isolation: : une opration en cours na pas dincidence sur les autres

Page 8

Durabilit: une fois valides les oprations sont visibles de tous Des standards X/Open Distributed Transaction Processing (TX, XA, XA+, XAPTP) OSI/TP, CORBA/OTS Les produits Inprise ITS, BEA M3, Tuxedo, Encina, Microsoft MTS 4. Middlewares dobjets distribus Gestion dapplications distribues Une fonction est sur une machine et collabore au sein de lapplication avec une fonction sur une autre machine Des standards CORBA Des implmentations propritaires DCOM, RMI Une vision trs diffrente de linteroprabilit Parfois accessible par plusieurs langages Parfois accessible par plusieurs plateformes Parfois les deux Couplage fort ( technique, mtier ) V. JPA (Java Persistance API) 1. Dfinition Littralement Java Persistance API , il sagit dun standard faisant partie intgrante de la plate-forme Java EE, une spcification qui dfinit un ensemble de rgles permettant la gestion de la correspondance entre des objets Java et une base de donnes, ou autrement formul la gestion de la persistance.

Page 9

Ce mcanisme qui gre la correspondance entre des objets dune application et les tables dune base de donnes se nomme ORM, pour Object ObjectRelational Mapping . 2. Persistance : problmatique Les systmes de gestion de bases de donnes relationnels (SGBDR) sont devenus un pilier incontournable dans le dveloppement dapplications vu le niveau de fiabilit et de performances performances des SGBDR. J2EE, se base sur la technologie oriente objet. CelleCelle-ci permet aux applications datteindre un niveau de qualit et de flexibilit nettement suprieur ceux dune modlisation relationnelle. Comment stocker les objets objets modliss dans les SGBDR ?? 3. Persistance : solutions Dvelopper manuellement le code de projection des objets sur le support relationnel. Utiliser une couche logicielle spcialise de projection objet objetrelationnel : Oracle9iAS TopLink, Hibernate, Ibatis.

4. Diffrence iffrence entre hibernate et JPA? Points Communs Offrir des services de persistance Mapping Objet/Relationnel dclaratif Adopter un langage de requtes Points de divergence

Page 10

JPA est une brique de base du standard Java EE 5 Hibernate est un Framework alors que JPA est une spcification (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, ) Au final il n'y a pas vraiment de diffrence car Hibernate implmente JPA.

5. Hibernate
a. Dfinition Hibernate est un projet Open Source visant proposer un outil de mapping entre les objets et les donnes dans une base de donnes relationnelle. Ce projet ne repose sur aucun standard mais il est trs populaire notamment cause de ses bonnes performances et de son ouverture avec de nombreuses bases de donnes Hibernate apporte une solution aux problmes d'adaptation entre le paradigme objet et les SGBD en remplaant les accs la base de donnes par des appels des mthodes mthodes objet de haut niveau. b. Architecture

Figure-6:Architecture

Page 11

Le lien entre les classes exposes et la source physique des donnes (souvent une base de donnes relationnelle) est dfinie par un fichier xml. D'o mapping objet-relationnel. Exemple : Couche accs aux donnes Il existe diffrentes possibilits pour implmenter la couche accs aux donnes. Le dveloppeur peut diviser en tiers dots de fonctionnalits spcifiques

La couche [JDBC] est la couche standard utilise en Java pour accder des bases de donnes. Elle isole la couche [dao] du SGBD qui gre la base de donnes. On peut thoriquement changer de SGBD sans changer le code de la couche [dao]. Pour isoler la couche [dao] des aspects propritaires 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 dveloppeur et la couche [Jdbc] Hibernate est un ORM (Object Relational Mapping), un outil qui fait le pont entre le modle le relationnel des bases de donnes et celui des objets manipuls par Java Le dveloppeur 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 manipuls par la couche [dao] est fait principalement de deux faons : par des fichiers de configuration de type XML

Page 12

par des annotations Java dans le code, technique disponible depuis le JDK 1.5 c. les avantages les inconvnients les avantages Gain du temps si on utilise des outils pour gnrer automatiquement la base de donnes et le code. Les objets mtiers sont plus faciles manipuler. Peu de dpendance envers une base de donnes prcise. les inconvnients Ncessite d'apprendre l'utiliser (son utilisation nest pas fondamentale) Tous les problmes ne sont pas rsolus car Hibernate est une technologie jeune VI. Conclusion
Le middleware fait partie de l'volution naturelle du dveloppement informatique Optimisation du temps de dveloppement du programmeur. Des applications plus homognes Des applications facilement migrables aussi (pensez que pour changer de base de donnes, il suffit juste de toucher hibernate.cfg.xml) Technologie prometteuse (Sortie dune version NHIBERNATE compatible avec DOT NET)

VII.

Netographie

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

Page 13