AFNOR Java Serveurs - D1 - 24/03/2000 France Télécom R&D 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 Persistance d'objets répartis Alexandre Lefebvre (DTL/ASR) 24 mars 2000
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D2 - 24/03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D3 - 24/03/2000 France Télécom R&D 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)
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D4 - 24/03/2000 France Télécom R&D 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)
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D5 - 24/03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D6 - 24/03/2000 France Télécom R&D 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)
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D7 - 24/03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D8 - 24/03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D9 - 24/03/2000 France Télécom R&D Nos axes de travail actuels è Les chaînes de liaisons entre objets Références entre objets persistants Gestion des caches d’objets è Gestion des noms répartis è Synchronisation entre les différentes mémoires è Définition d’invariants architecturaux è Standardisation des interfaces Serveurs applicatifs (EJB) Serveurs de données (BDRO, BDO) gestion des caches (BDO) Objets applicatifs répartis : ORB (Corba, RMI) objets persistants répartis
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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 client applicatif serveur applicatif serveur de données disque schéma externe schéma logique schéma physique http (html, xml), IIOP
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Transparence à la conteneur EJB
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D è 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 Etendre la persistance des EJB (1)
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D è Exemple: class ProductBean { class OfferBean { float price; Collection products; //set of products public float getPrice(){ public Collection getProducts() { return price; } return products; } } } Etendre la persistance des EJB (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 ; } }
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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 {class invoice { string(30) LastName; customer Customer; array FirstNames; set Purchases; } interface customer { class purchase { set Invoices; product Product; } integer Quantity; interface product { float Total; float Price; }} serialized Picture;class client }implements person, customer { }
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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 ...
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Noah : vision logique
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Noah dans le context EJB
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Utilisation de Noah : Compilation persistent class mapping information persistent class structure persistent class mapping information persistent class structure persistent class mapping information 2) call of meta-object initialization reflexive information java files for persistent class PMC XML parser 1) creation of meta-objects meta-objects NOAH
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Utilisation de Noah : creation d'objets (1) Home_XXX PFactory_XXX 1-create EJBObject_XXX PObject_XXX 2-new 3-init void PID 4- setPID Bean instance 5-new, EJBCreate
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Utilisation de Noah : creation d'objets (2) Home_XXX PFactory_XXX EJBObject_XXX PObject_XXX 1-export 3-setPID PID 2-new
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Utilisation de Noah pour trouver et utiliser des objets Home_XXX PFactory_XXX 2-find 1-find data store PID 3 4-bind 5-bind EJBObject_XXX PObject_XXX 6-create 7-business method 8-read Bean instance 9-data from data store 10-setattr 11-EJBLoad + business method
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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 ?
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Service de réplication (SRS) è Objectifs gérer des liaisons entre réplicas réplicas mémoires 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D Exemple d’utilisation du SRS
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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
La communication de ce document est soumise à autorisation de France Télécom R&D Alexandre Lefebvre - AFNOR Java Serveurs - D /03/2000 France Télécom R&D 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