XMI - Free

publicité
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 ?
Téléchargement