Branche Développement Le présent document contient des informations qui sont la propriété de...
-
Upload
telesphore-lombard -
Category
Documents
-
view
103 -
download
0
Transcript of Branche Développement Le présent document contient des informations qui sont la propriété de...
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
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)
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 ; }}
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
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
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
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
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
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
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
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
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
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?