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

Slides:



Advertisements
Présentations similaires
Présentation de frameworks J2EE
Advertisements

Applications N-Tiers Rappels: architecture et méthodologie
Ispirer Systems Présentation de la Société Copyright (c) Ispirer Systems Ltd. Tous Droits Réservés.
Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Serveurs web pour JSP et Servlets
Exposé de Système - Informatique et Réseau
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Projet Webase. I. La définition du projet 1. Lexistant : Webase 4 2. Cahier des charges 3. La répartition des données 4. Le modèle de données 5. Le choix.

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Intégrer vos données avec.
TP 3-4 BD21.

TECHNIQUES DES SGBDO 1. Qu'est-ce qu'un SGBDO ?
Présentation des frameworks pour Java EE
Introduction aux Session Beans
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Serveurs d’application
Gaselys Trading Confirmation
XML-Family Web Services Description Language W.S.D.L.
Sommaire Objectif de Peakup Principes de fonctionnement
COURS Bases de données orientées objet
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
JDBC ou comment manipuler une base de données en Java ?
Projet JAVA EE Approfondi
.Net Remoting.
Interopérabilité JOnAS - CORBA
Intégration ActiveXML - Xyleme
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Processus d'un projet F.Pfister
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
Présentation de CORBA et de IIOP
Java Enterprise Edition, anciennement J2EE
JDO Université du Québec à Montréal INF7115: Bases de Données Professeur: Robert Godin Étudiants: Naby D. Soumah Abdeltif Harrouchi Ovidiu Nacu Lundi.
Créer des packages.
HIBERNATE Mapping Objet / base de données relationnelle
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Chapitre 2 Persistance de données De Hibernate au standard JPA 1.0
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Cours oracle n°1 Le SGBD ORACLE
1 INF7115-Base de données Présentation La persistance avec JDO Kerlyne FOSTINE Figaro LUC.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Module 1 : Vue d'ensemble de Microsoft SQL Server
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
OPEN SERVICES GATEWAY INITIATIVE (OSGi) SEMINAIRE DE MASTER THIERRY MENOUD.
Dr Mohamed Anis BACH TOBJI
Le Langage SQL Introduction
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
1 JEE 2010 Architectures n-tiers F.Pfister
Analyse, élaboration et exploitation d’une Base de Données
Introduction SGDBOO Sommaire Définition d’un SGBD (6 services)
1 CEC A.-CHAVANNE Sites Web et bases de données. 2 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – représentation des.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Java et les bases de données Etat de l’art 14 juin 2012.
Applications distribuées Introduction Jean-Jacques LE COZ.
Transcription de la présentation:

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

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

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

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

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.

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

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.

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

Composantes principales de l’architecture JDO

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

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

Architecture dans les applications JVM David Jordan et Craig Russell :

É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, …

É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. ( xerces.jar Utiliser pour l’analyse syntaxique des fichiers XML. (

É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.

Étude de cas : environnement de développement

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

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

<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" " com/mediamania/prototype/package.jdo

É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

É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( ); }

É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

É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

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.

Implémentations (2/4) Robin ROOS

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.

Implémentations (4/4)

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

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

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

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

Références Robin ROOS, Java Data Objects, Addison Wesley, 2003 David Jordan et Craig Russel, Java Data Objects, Oreilly, 2003 JDO Architectures,

Merci de votre attention ! Des questions ?