JPA est middleware
Upcoming SlideShare
Loading in...5
×
 

JPA est middleware

on

  • 218 views

shili Mohamed

shili Mohamed

Statistics

Views

Total Views
218
Views on SlideShare
218
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    JPA est middleware JPA est middleware Presentation Transcript

    • 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