class - OW2 Consortium Mail Archive

publicité
Persistance d'objets répartis
Alexandre Lefebvre (DTL/ASR)
24 mars 2000
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
AFNOR Java Serveurs - D1 - 24/03/2000
Plan
Présentation de DTL/ASR
Problèmes qui nous préoccupent
Supports de persistance répartis
Noah : gestion de la persistance
SRS : gestion de la répartition
Conclusion
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D2 - 24/03/2000
Positionnement du département
ASR
France Telecom R&D
Centre de R&D de France Télécom ; environ 3800
personnes
Rattaché à la Branche Développement
Direction des Techniques Logicielles (DTL)
Environ 180 personnes en R&D
Quatre départements dans les domaines suivants :
Maquettage, Spécification et Validation
Développement Logiciel, Intelligence artificielle et
connexionnisme
Sécurité des Services et des Réseaux
Architecture des Systèmes Répartis (ASR)
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D3 - 24/03/2000
Profil du département ASR
Centre de compétence “systèmes répartis et systèmes
logiciels de base”
Plates-formes d’exécution réparties (ORB)
Moniteurs transactionnels et bases de données répartis
Systèmes (d’exploitation) sous contraintes (QoS,
embarqués)
Missions
Recherche & Développement avancé
Veille technologique
Assistance technique (conseil interne)
Effectif = ~ 55 personnes (~ 40 ingénieurs, 10 thésards,
post-doc, chercheurs invités)
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D4 - 24/03/2000
ASR participe à l'initiative
ObjectWeb
Initiative « middleware open source » Java
« ObjectWeb Group » initialisé par Bull, FT-R&D et
l’INRIA
Base logicielle
Jonathan = ORB ouvert (support de Corba et de RMI)
JOnAS = plate-forme EJB
Coopération avec Enhydra
 plate-forme J2EE
Informations
http://www.objectweb.org
http://www.enhydra.org
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D5 - 24/03/2000
BD réparties :
quelques sujets en panne
Support de persistance réparti
BD relationnelles
liaisons entre données : calculées par jointures
répartition : modèles de partitionnement (placement)
horizontal ( union)
vertical ( jointure)
pas d'objets = mauvais candidat pour BD réparties
BD à objets
liaisons entre données : liaisons système
bon candidat mais peu de travail sur la répartition
(Versant, Thor)
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D6 - 24/03/2000
Notre contexte de recherche
BD réparties
contexte intranet plutôt qu’Internet (connaissance
exhaustive du monde)
objectif = faire inter-opérer des bases d’objets
hétérogènes
Deux catégories de problèmes
gestion des chaînes de liaison entre objets
références persistantes réparties
chaînes d’activation
gestion de l’interrogation (SQL++)
modèle de placement
optimisation  BD parallèles
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D7 - 24/03/2000
Quelques principes directeurs
Séparation claire des rôles métier / technique
Architecture multi-tiers
 BD gère les données (pas de code applicatif)
BD extensible OK pour interrogation (indexes spécialisés)
LPBD (Pjama) KO (modèle de programmation trop différent)
orthogonalité / persistance mais pas de contrôle possible
Serveurs applicatifs : besoin d'une couche intermédiaire
cache d’objets persistants
problème : le serveur de données impose
modèle d’échange (format, politique de pré-chargement,...)
synchronisation (CBL, verrouillage optimiste, etc)
approche composants (EJB, Corba Components, COM+?)
Besoin d'une couche intermédiaire
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D8 - 24/03/2000
Nos axes de travail actuels
 Les chaînes de liaisons entre
objets
Références entre objets
persistants
Gestion des caches
d’objets
Objets applicatifs répartis :
ORB (Corba, RMI)
Serveurs
applicatifs
(EJB)
gestion des
caches (BDO)
 Gestion des noms répartis
 Synchronisation entre les
différentes mémoires
 Définition d’invariants
architecturaux
 Standardisation des interfaces
France Télécom R&D
Serveurs
de
données
(BDRO, BDO)
objets persistants répartis
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D9 - 24/03/2000
Vision architecturale pour le
support de persistance
 Objectif = ouvrir le support
d’échanges entre les parties
“client” et “serveur” d’un SGBD à
objets
 Support d’échanges entre
serveur applicatif et serveur de
données
“vision BD” = schéma
externe
interface d’accès à objet :
SDL (State Definition
Language)
interface de synchronisation
interface pour support de
transactions
France Télécom R&D
client
applicatif
http (html, xml), IIOP
serveur
applicatif
schéma externe
serveur
de données
schéma logique
schéma physique
disque
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D10 - 24/03/2000
Persistance : quels besoins ?
Transparence langage (orthogonalité)
Support de l’objet (Noah)
gestion implicite des références
gestion de l’héritage et du polymorphisme
Indépendance vis-à-vis du support de stockage
modèle objet de base (définition d’état)
portabilité binaire de l'accès réparti (SRS)
accès réparti (standard réseau)
Services
de persistance - Noah
de réplication d’objet (état) entre mémoires réparties
hétérogènes - SRS
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D11 - 24/03/2000
Transparence à la conteneur EJB
Environnement
d’exécution réflexif
Environnement
d’exécution fermé
nom d’objet
local
objet
d’interception
(proxy)
Contrôle de la chaîne de
liaison « pe rsistante »
objet
réel
(langage)
MEMOIRE
D’EXECUTION
chaîne de liaison gérée par
le support de persistance
objet
réel
(persistant)
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D12 - 24/03/2000
Etendre la persistance des EJB (1)
Contexte : EJB avec persistance container-managed
Limitations de la specification EJB 1.1
pas d'héritage entre beans
références entre beans gérées par le programmeurs, ou
spécifiques aux conteneurs
But : augmenter la transparence pour le programmeur
du bean pour :
les références entre objets
l'héritage entre beans
les attributs multi-valués
en bref, retrouver l'abstraction de l'ODMG, mais dans une
autre architecture
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D13 - 24/03/2000
Etendre la persistance des EJB (2)
Exemple:
class ProductBean {
float price;
products
public float getPrice(){
return price; }
}
class OfferBean {
Collection products; //set of
public Collection getProducts() {
return products; }
}
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 ;
}
}
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D14 - 24/03/2000
Noah (persisteNt Object mApping tecHnology)
Liaisons pour objets persistants
Modèle de données structurel objet
Descriptions XML :
de la structure des classes persistantes
du mapping vers le support de persistance
Gère la liaison entre les objets dans la base de
données et les objets en mémoire
Notion de PId (persistent object identifier)
étend la notion de primary key
introduit le contexte de nommage
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D15 - 24/03/2000
Noah : modèle de données
Classes et interfaces (pour héritage multiple)
Types de base : integer, loats, strings, etc
Tout ce qui n'est pas d'un type de base est un objet
Ensemble extensible de classes génériques
set, array
interface person {
string(30) LastName;
array<string(15)> FirstNames;
}
interface customer {
class invoice {
customer Customer;
set<purchase> Purchases;
}
class purchase {
set<invoice> Invoices;
}
product Product;
interface product {
float Price;
serialized Picture;
}
float Total;
integer Quantity;
}
}
class client
implements person, customer {
}
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D16 - 24/03/2000
Noah : utilisation
Dans la hiérarchie des classes EJB pour fournir la
persistance container-managed
au niveau de la couche d'interception du container
Autres approches
PSS CORBA
...
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D17 - 24/03/2000
Noah : vision logique
Memory
Object
method
creation, deletion, retrieval
new
Control Object Class
Control Factory Class
create
get_attr, set_attr
read, write
init, export, unexport, find, bind
Code for controlling memory copies of objects
Interfaces
State Mngt Class
setPID
Factory Class
NOAH Runtime : Code for Persistence Control
Persistence Storage System
Stored
Object
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D18 - 24/03/2000
Noah dans le context EJB
EJBObject
EJBHome
PFinder
NOAH code
Generated code for
persistent class XXX
EJB container
code
PObject
PFactory
PObject_XXX
PFactory_XXX
XXX interface class
XXX home class
extends
abstract class
France Télécom R&D
class
interface
implements
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D19 - 24/03/2000
Utilisation de Noah : Compilation
persistent class
persistent
class
structure
persistent
structureclass
structure
persistent class
persistent
class
mapping
information
persistent
class
mapping information
mapping information
PMC
XML parser
NOAH
1) creation of
meta-objects
meta-objects
reflexive
information
France Télécom R&D
2) call of meta-object
initialization
java files for
java files
for
persistent
class
java
files
for
persistent class
persistent class
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D20 - 24/03/2000
Utilisation de Noah :
creation d'objets (1)
void
PID
3-init
Bean instance
4setPID
PObject_XXX
PFactory_XXX
EJBObject_XXX
Home_XXX
2-new
5-new,
EJBCreate
1-create
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D21 - 24/03/2000
Utilisation de Noah :
creation d'objets (2)
3-setPID
1-export
PObject_XXX
PFactory_XXX
Home_XXX
EJBObject_XXX
2-new
PID
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D22 - 24/03/2000
Utilisation de Noah pour trouver et
utiliser des objets
Bean instance
6-create
2-find
8-read
PFactory_XXX
PObject_XXX
Home_XXX
EJBObject_XXX
10-setattr
4-bind
5-bind
PID
PID
PID
PID
11-EJBLoad
+ business method
3
1-find
France Télécom R&D
data store
7-business method
9-data from
data store
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D23 - 24/03/2000
Quelques propriétés de Noah
Réflexivité
les méta objets décrivant les classes persistantes sont
eux-même persistants
Les méta-objets sont auto-suffisants :
regénération du fichier de description XML
regénération du code Java
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D24 - 24/03/2000
Noah : état des travaux
Première version en cours de développement
mapping objet-relationnel implicite
identifiants d'objets
mapping horizontal
attributs multi-valués transformés en collections d'objets
mappés dans une table séparée
héritage multiple
Limitations :
pas de support de bases de données legacy
mapping non customisable dans cette version
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D25 - 24/03/2000
Plan de travail pour Noah
février 00: spécifications
avril 00: premier prototype
été 00:
integration avec JOnAS
plus tard : évolution pour support de persistance sur :
bases de données objet
mapping explicite vers les BD relationnelles legacy
LDAP ?
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D26 - 24/03/2000
Service de réplication (SRS)
Original Copy
Replica Copy
Objectifs
gérer des liaisons
entre réplicas
Requests
réplicas  mémoires
SRS
réparties hétérogènes
échanges d’états entre réplicas (gestion de la cohérence)
Modèle de programmation à la ORB
échange d'états au lieu d'appels de procédures à distance
Ce que le SRS ne fait pas, mais permet de programmer
politique de cohérence
politique de synchronisation
mécanisme de transparence langage
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D27 - 24/03/2000
Exemple d’utilisation du SRS
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D28 - 24/03/2000
SRS : état des travaux
Spécifications du SRS en cours
Implantation
Personnalité de l’ORB Java Jonathan
Utilisation de GIOP bidirectionnel
Application à l’implantation d’un cache d’objets applicatif
Serveur EJB JOnAS
Choix du serveur d’objets ?
Application à l’implantation de réplication d’objets entre BD
Serveur EJB Jonas
Serveurs de données hétérogènes
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D29 - 24/03/2000
Autres travaux
Relation avec
les specifications EJB 2.0
Java Data Objects ?
Autres travaux sur la persistance : PSS
approche très différente
par d'orthogonalité / persistance
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D30 - 24/03/2000
Conclusion
Objectif : concevoir et construire un middleware
d'accès à des mémoires d'objets
répartis
répliqués
persistants
Principes architecturaux :
d'ouverture
d'adaptabilité
Trouver les bons invariants architecturaux
En déduire les bonnes interfaces
France Télécom R&D
La communication de ce document est soumise à autorisation de France Télécom R&D
Alexandre Lefebvre - AFNOR Java Serveurs - D31 - 24/03/2000
Téléchargement