La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Java TM Data Objects Présentation et Analyse Par : Fouad KHELOUIATI Walid KTATA Ghislain NGANTCHAHA.

Présentations similaires


Présentation au sujet: "Java TM Data Objects Présentation et Analyse Par : Fouad KHELOUIATI Walid KTATA Ghislain NGANTCHAHA."— Transcription de la présentation:

1 Java TM Data Objects Présentation et Analyse Par : Fouad KHELOUIATI Walid KTATA Ghislain NGANTCHAHA

2 Plan de l’exposé Introduction Introduction Définition JDO Définition JDO Positionnement JDO Positionnement JDO Caractéristiques de haut niveau Caractéristiques de haut niveau Architecture JDO Architecture JDO Étude de cas Étude de cas Implémentations de JDO Implémentations de JDO Positionnement par rapport aux Concurrents Positionnement par rapport aux Concurrents Conclusion Conclusion

3 Introduction : La persistance La persistance La persistance La persistance du point de vue de JAVA La persistance du point de vue de JAVA SGBDR et JDBC SGBDR et JDBC Système de Fichier et la sérialisation Système de Fichier et la sérialisation ODMG et SGBDO ODMG et SGBDO

4 Introduction: Java Data Objects API définissant la persistance d’objets Java API définissant la persistance d’objets Java Objectifs du point de vue de la persistance : Objectifs du point de vue de la persistance : Transparente Transparente Portable Portable transactionnelle transactionnelle

5 Introduction : Positionnement de JDO SérialisationJDBCSGBDOJDO TransactionnelleNONOUIOUIOUI InterrogationNONNONOUIOUI API normaliséjava.ioJDBCODMGJDO Langage de requête normaliséSQLOQLJDOQL Système de stockageSystème de fichier SGBDRSGBDOSGBDO,SGBDR, Système de fichier, etc.

6 Qualités de JDO(1/3) Standard TransparenceFacilité d’utilisation Performance Intération avec d’autres technologies JDOQL Sécurité et aspect transactionnelScalabilité

7 Qualités de JDO(2/3) Un standard Une seule interface pour la persistance et un langage commun Des implémentations adaptés aux besoins La Transparence Aucun code spécifique pour la persistance La Facilité d'utilisation Même modèle pour les objets et les données Se concentrer sur les objets métiers L’intégration avec d'autres technologies Mariage EJB session Beans et JDO Des implémentations optimisées selon les gestionnaires de données. Intégration avec J2EE.

8 Qualités de JDO(3/3) La Sécurité et l’aspect transactionnel Support des transactions ACID On peut dire :Intègre les fonctionnalités d’un OTM La Performance Chargement en mémoire des objets incrémentale La Scalabilité BD relationnelles,BD Objets,mainframe,ERP,etc. Applications d’entreprise, Embarquées, Standalone. Favorise les optimisations majeurs selon la cible. Indépendance Indépendance de l’implémentation du vendeur. JDOQL Plus de dépendance avec SQL. Migration vers OODBMS est très naturel et consistante

9 Composantes principales de l’architecture JDO

10 Environnements pour JDO Environnement non géré Environnement non géré Environnement géré Environnement géré

11 Identification des Instances JDO Identité Source de données Identité Source de données Identité d’application Identité d’application Identité non durable Identité non durable

12 Architecture dans les applications JVM David Jordan et Craig Russell : www.onjava.com/lpt/a/3912

13 Étude de cas : Objectifs Environnement de développement Environnement de développement Déclaration de la persistance Déclaration de la persistance Opérations sur les objets : Lecture, écriture, suppression, … Opérations sur les objets : Lecture, écriture, suppression, …

14 Étude de cas : environnement de développement FichierDescription jdo.jar Interfaces standards et classes définies dans les spécifications de JDO. jdori.jar Implémentation de référence des spécifications de JDO. btree.jar Utilisé pour gérer le stockage des données dans des fichiers. jta.jar L’API Java Transaction. (http//java.sun.com/products/jta/index.html) antlr.jar Analyseur syntaxique utilisé par JDOQL. (www.antlr.org) xerces.jar Utiliser pour l’analyse syntaxique des fichiers XML. (http://xml.apache.org/xerces-j/)

15 Étude de cas : environnement de développement RépertoireDescription src Contient les sources de l’application. class Contient les classes compilées. enhanced Contient les classes optimisées database Contient les fichiers utilisés par l’implémentation de référence pour stocker les données persistantes.

16 Étude de cas : environnement de développement

17 Étude de cas : Modèle objet de Media Mania Inc. Adapté de [D. Jordan et C. Russel] com.mediamania.prototype

18 Descripteur de persistance Descripteur de persistance Fichier XML Fichier XML Contient des métadonnées sur les classes persistantes Contient des métadonnées sur les classes persistantes Étude de cas : Déclaration de la persistance

19 <!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd"> com/mediamania/prototype/package.jdo

20 Étude de cas : Connexion à la source de donnée Optimisation des classes à persister Optimisation des classes à persister Définition des propriétés de la connexion Définition des propriétés de la connexion javax.jdo.PersistenceManagerFactoryClass=com.sun.jdori.fostore.FOStorePMF javax.jdo.option.ConnectionURL=fostore:database/fostoredb javax.jdo.option.ConnectionUserName=dave javax.jdo.option.ConnectionPassword=jdo4me javax.jdo.option.Optimistic=false

21 Étude de cas : Connexion à la source de donnée Création de la source de données try { InputStream propertyStream = new FileInputStream("jdo.properties"); Properties jdoproperties = new Properties( ); jdoproperties.load(propertyStream); jdoproperties.put("com.sun.jdori.option.ConnectionCreate", "true"); PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(jdoproperties); PersistenceManager pm = pmf.getPersistenceManager( ); Transaction tx = pm.currentTransaction( ); tx.begin( ); tx.commit( ); }

22 Étude de cas: Opérations sur les instances public void execute( ) { Calendar cal = Calendar.getInstance( ); cal.clear( ); cal.set(Calendar.YEAR, 1997); Date date = cal.getTime( ); Movie movie = new Movie("Titanic", date, 194, "PG-13", "historical, drama"); pm.makePersistent(movie); } Écriture d’une instance dans la source de données

23 Étude de cas: Opérations sur les instances public void execute( ) { Movie movie = PrototypeQueries.getMovie(pm, movieTitle); if (movie == null) { System.err.print("Impossible d’accéder au film de titre :"); System.err.println(movieTitle); return; } Set cast = movie.getCast( ); Iterator iter = cast.iterator( ); while (iter.hasNext( )) { Role role = (Role) iter.next( ); Actor actor = role.getActor( ); actor.removeRole(role); } pm.deletePersistentAll(cast ); pm.deletePersistent(movie ); } Suppression d’instances de la source de données

24 Implémentations (1/4) La spécification couvre: 1.La sémantique de la persistance en tenant compte des transactions. 2.Les interactions des objets transactionnels J2EE. 3.La sélection des données(requête) se basant sur les expressions java. L’architecture de JDO simplifie le développement d’implémentations JDO sécurisées,évolutives et Transactionnelles.

25 Implémentations (2/4) Robin ROOS

26 Implémentations (3/4) Kodo JDO est un outil de mapping Object/Relational. Oracle 8i/9iIBM DB2 Microsoft SQL Server MySQL Hypersonic SQL Instant DB PostgreSQLExtensible database support De Bonne pperformance pour les entreprises Database caching * Batched statements * Extensive use of prepared statements * Custom fetch groups * Query caching Kodo JDO supporte le cycle de vie complet de la persistance des objets. Kodo JDO supporte la plupart des grands serveurs d’applications J2EE.

27 Implémentations (4/4) http://www.solarmetric.com

28 La concurrence : EJB vs JDO EJBJDO Ne permet pas l’héritage Ne permet pas l’héritage Permet l’héritage Permet l’héritage Pour localiser les EJB ont d’accéder au Home Interface propre à chaque instance via JNDI Pour localiser les EJB ont d’accéder au Home Interface propre à chaque instance via JNDI JDO ne requiert que l’accès au JDO ne requiert que l’accès au PersistenceManger PersistenceManger Processus de compilation et déploiement est presque le même Orienté sécurité et Transaction Orienté sécurité et Transaction Orienté persistance Orienté persistance

29 La concurrence : Microsoft Object Space vs JDO Microsoft OS JDO Offre le même modèle de développement Utilisent tous les deux XML pour le mapping Offre un outil graphique pour Offre un outil graphique pour générer le fichier XML de mapping générer le fichier XML de mapping Ne l’offre pas actuellement Ne l’offre pas actuellement Les deux offrent les options de gestion de transaction manuelle et automatique avec un verrouillage optimiste ou pessimiste Langage interrogation OPath Langage interrogation OPath Langage interrogation JDOQL Langage interrogation JDOQL

30 Microsoft Object Space Vs. JDO « Suite » Microsoft OS JDO Le cache de persistance n’offre pas Le cache de persistance n’offre pas la possibilité d’être distribué la possibilité d’être distribué Le cache de persistance offre la Le cache de persistance offre la possibilité d’être distribué possibilité d’être distribué N’offre pas la possibilité d’évincer N’offre pas la possibilité d’évincer les instances non utilisées les instances non utilisées Offre la possibilité d’évincer les Offre la possibilité d’évincer les instances non utilisés et ceci est instances non utilisés et ceci est effectué de façon transparente effectué de façon transparente Offre tous les deux une cache pour la gestion de la persistance Offre tous les deux une cache pour la gestion de la persistance

31 Conclusions JDO est un standard et il est largement implémenté. JDO est un standard et il est largement implémenté. Divers implémentations (15-Commercial, Divers implémentations (15-Commercial,5-OpenSource). Il est la nouvelle direction de J2EE 1.5 Il est la nouvelle direction de J2EE 1.5 Architecture évolutive. Architecture évolutive. Favorise la programmation Orientée Objet Favorise la programmation Orientée Objet Un seul modèle (Objet et données). Un seul modèle (Objet et données). Indépendant du vendeur et de la plateforme. Indépendant du vendeur et de la plateforme. Favorise les optimisations majeures. Favorise les optimisations majeures. JDO 2.0 sera le Standard de persistance le plus répandue(Craig Russel-2003). JDO 2.0 sera le Standard de persistance le plus répandue(Craig Russel-2003).

32 Références Robin ROOS, Java Data Objects, Addison Wesley, 2003 David Jordan et Craig Russel, Java Data Objects, Oreilly, 2003 JDO Architectures, http://www.onjava.com/lpt/a/3912

33 Merci de votre attention ! Des questions ?


Télécharger ppt "Java TM Data Objects Présentation et Analyse Par : Fouad KHELOUIATI Walid KTATA Ghislain NGANTCHAHA."

Présentations similaires


Annonces Google