Modèle à objets et sérialisation Olivier Chamla François Chastanet Introduction • Sérialisation JAVA • CORBA et le passage par Valeur • MOF, XMI • Prospectives Modèle à objets et sérialisation PARTIE 1: Sérialisation Java Sérialisation d’un objet Objet 010101…….10 Disque Réseau Algorithme de sérialisation (1/2) Objet (Objet Objet Objet) Objet Objet 010101…….10 Si plus d’une référence sur un objet Alors, il n’est sérialisé qu’une fois pour réduire le stockage Algorithme de sérialisation (2/2) Objet Sérialisé Classe Voiture + Boolean b + String s - Object o + Moteur m + transient String s2 + static String s3 + static void getModele() Possibilité de spécifier soi-même les processus de sérialisation et de désérialisation Entête + Version Valeur de chaque variable d’instance Sérialisation récursive Non sérialisé 010101…….10 XML: Exemple de Sérialisation XML Document Objet Auto Avantages: - Humainement lisible - Portable XML <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto> XML DTD <!Element Auto (Color, Door, Engine)> Modèle à objets et sérialisation PARTIE 2: CORBA et le passage par valeur Rappel: le passage par référence Jusqu ’à CORBA 2.3 Serveur Client Référence sur Obj Appel de méthode Résultat Objet distant Obj Exécution de la méthode sur le serveur Le Passage par Valeur À partir de CORBA 3.0 Serveur Client Méthode() Référence sur Obj Objet distant Obj Le Passage par Valeur À partir de CORBA 3.0 Serveur Client Référence sur Obj Vérification Version Téléchargement Code [KO] implémentation de l ’objet Objet distant Obj + implémentation de cet objet Le Passage par Valeur À partir de CORBA 3.0 Client Exécution de la méthode sur le client Serveur Récupération de l ’état de l ’objet distant() Instanciation sur le client avec l’état récupéré Objet distant Obj Avantages Du Passage par Référence: - les méthodes sont exécutées sur le serveur. - cohérence des données entre le client et le serveur. Du Passage par Valeur: -les méthodes sont exécutées sur le client. -les clients devant accéder fréquemment à des données d ’un objet, ont intérêt à utiliser cette technique. Les Prospectives OMG CORBA RMI/IIOP SUN RMI Une implémentation du passage par valeur a déjà été réalisée: ORBACUS Modèle à objets et sérialisation PARTIE 3: MOF et XMI Le Problème: Une Agence De Voyage Client •Demande d’un itinéraire BXS Travel •Intéragit avec plusieurs systèmes Réservation d’avion Client BXS Travel Service: Agence de voyage Répertoire des Clients Réservation d’hôtel Qu’est-ce que MOF ? Méta-méta-modèle Méta-modèle OMG UML Modèle Instance Objet OMG MOF CWM EJB Vision Simplifiée de XMI XML UML DTDs et Stream XML Données XMI MOF Définitions de Méta-modèles WareHouse DTDs et Stream XML Interopérabilité De XMI WebSphere Team Connection XMI Rose DTDGen XMI IBM Visual Age OracleXMI Oracle Designer Repository Select XMI Rational Rose Unisys UREP VA Java XMI MOF DTDGen XMI Enterprise XMI: Exemple de Sérialisation UML Model XMI Document XMI <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto> XMI DTD, Schema <!Element Auto (Color*, Door*, Engine*)> Qui implémente XMI, MOF et UML? • • • • IBM VisualAge for Java, WebSphere, Rose tool kit Unisys UREP, Component Management Server, Transform… Rational Software (Unisys XMI for Rose) Oracle Designer, Meta Integration, Together/J, Objecteering, ObjectsByDesign, Aonix… • OMG standard metamodels and DTDs (MOF, UML, CCM, CWM, Java, EJB…) • Metadata Coalition exploring XMI for MDC Open Information Model (OIM) – XMI DTDs now under review by MDC • Java Community Process JSR-40 : Java Metadata Interface Les Prospectives Un format commun => fort développement à venir Avantage du format XML couplé à XSL, génération automatique de rapport , … lisible, flexible Echange de données possible par l’intermédiaire de CORBA Conclusion On peut dire que XML est un langage qui permet beaucoup d’interopérabilité, et XMI qui est un sous-ensemble de XML en est un très bon exemple. Tout ceci va permettre une facile évolutivité pour les logiciels de demain. Questions ?