Branche Développement Le présent document contient des informations qui sont la propriété de...

13
Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire implique, de la part de ce dernier, la reconnaissance du caractère confidentiel de son contenu et l'engagement de n'en faire aucune reproduction, aucune transmission à des tiers, aucune divulgation et aucune utilisation commerciale sans l'accord préalable écrit de France Télécom R&D. France Télécom R&D © France Télécom -Persistent Objects - D1 - 26/06/22 Diffusion contrôlée Persistent Objects Alexandre Lefebvre 9 March 0

Transcript of Branche Développement Le présent document contient des informations qui sont la propriété de...

Page 1: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement

Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire implique, de la part de ce dernier, la reconnaissance du caractère confidentiel de son contenu et l'engagement de n'en faire aucune reproduction, aucune

transmission à des tiers, aucune divulgation et aucune utilisation commerciale sans l'accord préalable écrit de France Télécom R&D.

France Télécom R&D© France Télécom -Persistent Objects - D1 - 11/04/23

Diffusion contrôlée

Persistent Objects

Alexandre Lefebvre

9 March 0

Page 2: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D2 - 11/04/23

Diffusion contrôlée

Context: EJB with container-managed persistence Current EJB 1.1 specification limited w.r.t. container-managed

persistence– no inheritance between beans– object references to be managed by the programmer, or

container-specific Goal: increase the transparency for the bean programmer for:

– object references– inheritance of beans– multi-valued attributes

Extending EJB Persistence (1)

Page 3: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D3 - 11/04/23

Diffusion contrôlée

Example:class ProductBean { class OfferBean { float price; Collection products; //set of products public float getPrice(){ public Collection getProducts() { return price; } return products; }} }

Extending EJB Persistence (2)

class PurchaseOfferBean{ Offer offer ; public float totalPrice() throws RemoteException { int theTotal = 0 ; //get the set of product objects Collection products = offer.getProducts(); Iterator productsI = products.iterator(); //for each such product, add the product price to the total while (productsI.hasNext()){ theTotal += ((Product)productsI.next()).getPrice(); } //finally, return the total return theTotal ; }}

Page 4: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D4 - 11/04/23

Diffusion contrôlée

Hades: Persistent object binding

Hades manages the binding between objects in the database and objects in memory

Hades can be included in the EJB class hierarchy to provide container-managed persistence

Page 5: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D5 - 11/04/23

Diffusion contrôlée

Hades in the EJB context (1)

State Mngt Class Factory Class

EJBObject Class EJBHome Class

get_attr, set_attr read, write

creation, deletion, retrieval

init, export, unexport, find, bind

Persistence Storage System

setPID

new

HADESRuntime

Bean ClassEJBxxx

create

Page 6: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D6 - 11/04/23

Diffusion contrôlée

Hades in the EJB context (2)

abstract class class interfaceextends

implements

PFactory

PFactory_XXX

XXX home class

PFinder

PObject

PObject_XXX

XXX interface classEJB containercode

Generated code forpersistent class XXX

HADES code

EJBHomeEJBObject

Page 7: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D7 - 11/04/23

Diffusion contrôlée

Using Hades: Compilation

PMCXML parser

1) creation of meta-objects

meta-objects

persistent class mapping information

persistent class structure

persistent class structure

persistent class mapping information

persistent class structure

persistent class mapping information

HADES

2) call of meta-object initialization

reflexive information

java files for persistent class

java files for persistent class

java files for persistent class

Page 8: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D9 - 11/04/23

Diffusion contrôlée

Using Hades: Object creation (1)

Home_XXX

PFactory_XXX

1-create

EJBObject_XXX

PObject_XXX

2-new

3-init

void PID

4-setPID

Bean instance

5-new, EJBCreate

Page 9: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D10 - 11/04/23

Diffusion contrôlée

Using Hades: Object creation (2)

Home_XXX

PFactory_XXX

EJBObject_XXX

PObject_XXX1-export

3-setPID

PID

2-new

Page 10: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D11 - 11/04/23

Diffusion contrôlée

Using Hades: Finding and using objects

Home_XXX

PFactory_XXX2-find

1-finddata store

PIDPID

PIDPID

3

4-bind

5-bind EJBObject_XXX

PObject_XXX

6-create

7-business method

8-read

Bean instance

9-data fromdata store

10-setattr

11-EJBLoad + business method

Page 11: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D12 - 11/04/23

Diffusion contrôlée

Hades: Interesting properties

Reflexivity– meta- objects describing persistent classes are themselves

persistent Meta-objects are self-contained

– generate XML description file– generate java file

Page 12: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D13 - 11/04/23

Diffusion contrôlée

Status of Hades

First version being developed– implicit object-relational mapping– object identifiers– horizontal mapping (one class per concrete class, one object

stored once in its most specific class)– multi-valued attributes transformed into collection objects,

mapped to a separate table– multiple inheritance

Limitations:– no support of legacy databases– non-customisable, ad-hoc mapping

Page 13: Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.

Branche Développement France Télécom R&DLa communication de ce document est soumise à autorisation de FT R&D

© France Télécom - Persistent Objects - D14 - 11/04/23

Diffusion contrôlée

Timing for Hades

February 00: specification April 00: first prototype Summer 00:

– integration with JOnAS Later: evolution to provide other persistence support for

– object databases– explicit mapping to relational databases (legacy databases)– LDAP?