Modèle à objets et sérialisation Olivier ChamlaFranç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 …….10 Réseau Disque
Algorithme de sérialisation (1/2) Objet (Objet Objet Objet) …….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) Classe Voiture + Boolean b + String s - Object o + Moteur m + transient String s2 + static String s3 + static void getModele() Objet Sérialisé Entête + Version Valeur de chaque variable d’instance Sérialisation récursive Non sérialisé …….10 Possibilité de spécifier soi-même les processus de sérialisation et de désérialisation
XML: Exemple de Sérialisation Red 4 2 XML Document XML <!Element Auto (Color, Door, Engine)> XML DTD XMLXML Avantages: - Humainement lisible - Portable ObjetAuto
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 Référence sur Obj Client Objet distant Obj Serveur Résultat Exécution de la méthode sur le serveur Appel de méthode
Le Passage par Valeur Référence sur Obj Client Objet distant Obj Serveur Méthode() À partir de CORBA 3.0
Le Passage par Valeur Référence sur Obj Client Objet distant Obj + implémentation de cet objet Serveur Vérification Version À partir de CORBA 3.0 Téléchargement Code [KO] implémentation de l ’objet
Le Passage par Valeur Client Objet distant Obj Serveur Récupération de l ’état de l ’objet distant() À partir de CORBA 3.0 Instanciation sur le client avec l’état récupéré Exécution de la méthode sur le client
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
Réservation d’avion Le Problème: Une Agence De Voyage Réservation d’hôtel Répertoire des Clients Client BXS Travel Service: Agence de voyage Client Demande d’un itinéraire BXS Travel Intéragit avec plusieurs systèmes
Qu’est-ce que MOF ? OMG MOF Méta-méta-modèle Modèle OMG UML CWMEJB Méta-modèle Objet Instance
Vision Simplifiée de XMI XML Données MOF Définitions de Méta-modèles XMI UML DTDs et Stream XML WareHouse DTDs et Stream XML
Interopérabilité De XMI IBM Visual Age Oracle Repository Select Unisys UREP WebSphere Team Connection Rose VA Java Enterprise MOF DTDGen Rational Rose Oracle Designer DTDGen XMI
XMI: Exemple de Sérialisation UML Model Red 4 2 XMI Document XMI <!Element Auto (Color*, Door*, Engine*)> XMI DTD, Schema XMIXMI
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 Qui implémente XMI, MOF et UML?
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 ?