Table des Matières

publicité
DESS ISI - 2000-2001
LOG 10 - Langages et modèles à objets
Responsable: Mireille Blay Fornarino
Modèle à objets et sérialisation:
Sérialisation Java,
CORBA et le passage par valeur,
MOF et XMI.
Olivier Chamla([email protected])
François Chastanet([email protected])
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
Table des Matières
TABLE DES MATIERES .................................................................................................................................... 2
1.
SERIALISATION JAVA ............................................................................................................................. 3
1.1.
1.2.
1.3.
2.
CORBA ET LE PASSAGE PAR VALEUR ............................................................................................... 4
2.1.
2.2.
2.3.
3.
INTRODUCTION ........................................................................................................................................ 3
MECANISMES ........................................................................................................................................... 3
PROSPECTIVES ......................................................................................................................................... 3
INTRODUCTION ........................................................................................................................................ 4
MECANISME ............................................................................................................................................. 4
PROSPECTIVES ......................................................................................................................................... 4
MOF ET XMI ................................................................................................................................................ 5
3.1. INTRODUCTION ........................................................................................................................................ 5
3.1.1.
Qu’est-ce que MOF ? ...................................................................................................................... 5
3.1.2.
Qu’est-ce que XMI ? ....................................................................................................................... 5
3.1.3.
Importance de méta modéliser avec MOF, XMI et UML ................................................................ 6
3.2. PROSPECTIVES DE MOF ET XMI .............................................................................................................. 6
3.3. CONCLUSION............................................................................................................................................ 6
4.
CONCLUSION : QUELLES PROSPECTIVES ? ..................................................................................... 7
ANNEXE A : GLOSSAIRE ................................................................................................................................. 8
ANNEXE B : BIBLIOGRAPHIE ........................................................................................................................ 9
ANNEXE C : INDEX .......................................................................................................................................... 10
Chamla, Chastanet
6 Novembre 2000
page 2/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
On annonce que les applications distribuées représentent l'avenir de la programmation.
Java permet avec RMI de concevoir des applications avec des objets implantés sur
différents sites. CORBA, défini par le consortium OMG, permet la même chose et
autorise en plus que les objets qui communiquent ne soient pas écrient dans le même
langage. Le problème est que ces deux technologies utilisent des protocoles et des
mécanisme différents ce qui rend difficile la communication entre les applications, mais
on assiste maintenant à un certain rapprochement.
1. Sérialisation Java
1.1. Introduction
Pour faire communiquer des objets distants, JAVA RMI utilise la sérialisation c’est à
dire l’écriture d’un objet en un flux de bits permettant ainsi à cet objet d’être sauvegardé
dans un fichier dans son état actuel ou d’être envoyé sur le réseau. Ce système permet
ainsi le passage par valeur.
L’invocation de méthodes est accomplie en conservant une copie de l’objet distant.
Lorsque la méthode de cette copie est appelée, JAVA envoie la requête de cette copie à
travers le réseau et retourne la valeur obtenue de manière transparente. Un objet distant
peut être transmis comme argument ou comme résultat de méthodes distantes. C’est alors
l’image virtuelle de l’objet qui est transmis d’une machine virtuelle à l’autre.
L’écriture d’un objet quelconque implique l’écriture de tous les objets reliés(à
condition que ces objets puissent être sérialisés). Les références entre les objets forment
un graphe dirigé et il est nécessaire d’éviter de réécrire deux fois un objet accessible par
plusieurs objets de référence ( pour réduire le stockage et assurer l’intégrité du graphe des
pointeurs entre les objets à la relecture)
1.2. Mécanismes
JAVA utilise un algorithme standard pour sérialiser un objet :
1. l’en-tête de la classe
2. Un code décrivant la version de la classe
3. la valeur de chaque variable d’instance
4. Si une variable d’instance est un objet, sérialisation de l’objet en question
5. Les variables « static » et « transient » ne sont pas écrites.
Entre l’écriture et la relecture de l’objet, la classe de l’objet peut avoir évolué. Même
sans informations sur cette évolution, les processus automatiques de JAVA
SERIALIZATION tenteront de préserver l’intégrité de l’information stockée(gestion de
version). Il est possible de raffiner ce processus en spécifiant soi-même les protocoles de
sérialisation et déserialisation.
1.3. Prospectives
Il y a un rapprochement possible entre RMI et CORBA. En effet une projection
OMG IDL / JAVA est standardisé. Des objets RMI et CORBA peuvent dialoguer.
Chamla, Chastanet
6 Novembre 2000
page 3/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
Les mécanismes de sérialisation donnent un aperçu de la structure d’un objet inconnu
dont une base de donnée pourrait faire usage.
La sérialisation est souvent utilisée pour sauvegarder l’état d’une application.
Malheureusement les objets sérialisés sont fragiles, et sont sensibles aux changements que
l’on peut apporter à la structure d’une classe(par exemple si on rajoute un attribut). Donc
XML, apporte une alternative : c’est un fichier ASCII, humainement lisible et éditable,
qui est capable de contenir les données d’un objet. Donc si le logiciel « plante », cela
peut-être un moyen de récupérer ses données facilement, plutôt que d’avoir à utiliser des
méthodes sur les objets pour récupérer ces données. (cf. http://casbah.org/Scarab/xmlserialization.html)
2. CORBA et le passage par valeur
2.1. Introduction
Jusqu'à la sortie de la norme 3.0, CORBA n'autorisait qu'un passage par référence,
pour l'appel de méthodes sur des objets distants. Le passage par valeur (spécifiée depuis
fin 98) est utile lorsque la première vocation de l'objet est l'encapsulation de données, ou
qu'une application veuille explicitement faire une copie de l'objet. Le passage par valeur
n'était pas possible avec CORBA mais avec RMI car RMI est un solution entièrement
Java alors que CORBA est indépendant du langage.
En effet , le problème est que des langages cibles de CORBA (comme C++) n'autorise
pas le chargement dynamique des classes à l'exécution . La solution CORBA consiste à ne
passer que l'état de l'objet et pas l'implémentation, qui doit exister en local.
2.2. Mécanisme
Si on veut invoquer une méthode sur un objet distant, le code d'implémentation de cet
objet est sérialisé et transporté par le réseau jusqu'au client qui crée l'objet en recopiant
l'état de l'objet distant, puis la méthode est exécutée localement.
Une fois le passage(sérialisation+transport) fini et que l'objet a été instancié chez le
client, il n'y a plus de relation entre l'objet distant et l'objet local.
Si l'implémentation locale n'est pas valide par rapport à l'implémentation distante,
celle-ci est téléchargée.
-
Il y a deux sortes de "Value Type":
Concret (stateful): Les informations qui sont contenues par le serveur sont sérialisées
Abstrait (stateless): équivalent aux classes abstraites, l'avantage est que le code est
exécuté sur le client.
2.3. Prospectives
Les spécifications du passage par valeur ajoute à CORBA la possibilité de définir des
objets qui peuvent être passés par valeur plutôt que par référence. L'approche
Chamla, Chastanet
6 Novembre 2000
page 4/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
traditionnelle qui consiste à cacher l'implémentation derrière une interface à distance peut
être revu par une approche plus dynamique.
ORBacus (une implémentation de CORBA) permet le passage par valeur.
En utilisant le passage par valeur, CORBA se rapproche de Java RMI qui l'utilise
depuis toujours. Ainsi Sun et l'OMG ont définis un mapping JAVA vers IDL qui permet à
un client C++ d'invoquer des méthodes sur un serveur RMI. (cf. Java RMI/IIOP).
3. MOF et XMI
3.1. Introduction
Pour la conception d’un logiciel, souvent les entreprises utilisent plusieurs outils. Le
problème est donc d’échanger les informations entre tous ces outils, il faut donc un format
unique d’échange de données.
3.1.1. Qu’est-ce que MOF ?
Le MOF(Modelling Object Facility) est une spécification OMG pour établir un
« canevas générique pour représenter de la méta-information dans un contexte
d’application ».
En 1999, on peut lire : « Cette spécification améliore la gestion et l’interopérabilité de
la meta-information dans les environnements objet distribués en général et dans les
environnements de développement distribués en particulier. Le MOF définit aussi un
meta-meta-modèle simple mais pourvu d’une sémantique suffisante pour décrire des
meta-modèles dans de nombreux domaines, à commencer par celui de l’analyse et de la
conception objet. »
Les instances de MOF sont donc des méta-modèles, UML en est un exemple(il permet
de générer des modèles de conception) ou CWM(Common Warehouse Model), EJB, etc.
Les instances du méta-modèle UML sont des modèles(classes). Et tout le monde sait que
les instances d’une classe sont des objets.
3.1.2. Qu’est-ce que XMI ?
Le but principal de XMI(eXtensible markup language Metadata Interchange) est de
permettre l’échange facile de metadonnées entre des outils de modélisation(basé sur
l'OMG UML) et de dépôts de metadonnées (basé sur OMG MOF) dans les
environnements distribués hétérogènes. XMI intègre trois clés de l'industrie:
XML - un standard W3C,
UML - un standard OMG,
MOF - un standard OMG
XMI est la nouvelle façon standard industrielle de faire ceci, ce qui évite de créer une
multitude de formats propriétaires pour chaque outil spécifique à un vendeur. De plus,
XMI est destiné à être un format "stream". Il peut être entreposé dans un système de
Chamla, Chastanet
6 Novembre 2000
page 5/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
fichier traditionnel ou peut être transféré à travers Internet à partir d'une base de données
ou d'un dépôt(cf. repository, warehouse).
3.1.3. Importance de méta modéliser avec MOF, XMI et UML
XMI facilite l’alignement avec d’autres standards qui utilise une architecture métamodèle.
Le format XMI inclut la définition de la structure ainsi que l’information elle-même,
l’avantage de ceci est l’évolutivité, la flexibilité et c’est facilement analysable
syntaxiquement. Les outils, même s’ils n’implémentent pas toutes les fonctions décrites
dans le document, peuvent ne traiter que celles qu’ils ont besoin ou qu’ils savent traiter.
l’inconvénient est la place que le document prend rapidement. Une moitié de solution
à ce problème est la possibilité en XMI d’encoder seulement les parties d’un modèle qui
aurait été modifiées.(cf. [XMI] §6.9 Transmitting Metadata Differences). (AVOIR)
Pour éviter des pertes de données entre les différents outils qui importeront un fichier
XMI, et pour faciliter l’évolution de ces outils, XMI est pourvu d’une balise d’extension
pour les données spécifiques à un produit. L’analyseur syntaxique n’aura pas besoin de
lire ces données, sauf s’il y est habilité.
3.2. Prospectives de MOF et XMI
XMI est basé sur les standards XML, UML, et MOF ce qui le rend des plus
utilisables. Ceci pourrait donner l'exemple à beaucoup d'applications qui utilisent leurs
propres formats de stockage, et utiliser un format commun, pourquoi pas en utilisant
XML. Tout ceci, afin d'éviter les interminables import-export entre applications.
XMI permet de simplifier nettement le développement d'applications destinées à
pouvoir partager des informations. (6 applications peuvent être entièrement reliées par 12
ponts, en utilisant XMI).
XMI permet la génération très simple de rapport, puisqu'il est possible de le
transformer en document HTML à l'aide de fichier XSL (comme tous fichiers XML).
XMI permet d'échanger des données, mais également des structures de données,
indépendamment des architectures matérielles => Sérialisation portable.
3.3. Conclusion
Unisys, IBM, Oracle and Platinum ont déjà commencé à prototyper l’intégration de
XMI dans leurs produits respectifs.
UREP repository démontre l’interopérabilité des modèles entre des outils produits par
différents vendeurs.
Chamla, Chastanet
6 Novembre 2000
page 6/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
4. Conclusion : Quelles prospectives ?
Les applications distribuées, que l'on annonce déjà omniprésente dans les années à
venir, bénéficient de la recherche et des spécification des grands entreprises comme Sun
et des grands consortium comme l'OMG. En effet leurs efforts permettent à tous les
utilisateurs de partager des objets définis dans des langages différents. Le nouveau
passage par valeur en CORBA et les rapprochements avec RMI permettent de profiter
encore davantage de ces "ponts" puisque on peut même faire communiquer des objets
CORBA et des objets RMI.
Pour conclure 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.
Chamla, Chastanet
6 Novembre 2000
page 7/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
Annexe A : Glossaire
XML : eXtensible Markup Language(Langage Extensible de Balisage) du w3c Consortium est un
format universel pour des documents et des données structurés. XML est un Métalangage, qui va
permettre d'inventer à volonté de nouvelles balises pour isoler toutes les informations élémentaires
(titre d'ouvrage, prix d'article, numéro de sécurité sociale, référence de pièce…), ou agrégats
d'informations élémentaires, que peut contenir une page Web. (ex : Une API XML pour la
sérialisation).
XSL : eXtensible Stylesheet Language, est un langage permettant de spécifier une feuille de style. Il
permet la transformation d’un document XML, l’utilisation la plus courante est de le transformer en
document HTML.
Métalangage : est un langage de langage, c’est-à-dire un langage qui permet de générer d’autres
langages.
XMI : cf. Qu’est-ce que XMI ?
MOF : cf. Qu’est-ce que MOF ?
CORBA : la montée du travail distribué, dans des environnements de plus en plus hétérogènes,
demande de nouvelles solutions pour assurer l'interopérabilité des applications sur différentes platesformes. C'est un défi technique majeur, que l'OMG a relevé avec CORBA.
OMG : (Object Management Group) est un groupe de travail créé par de nombreux partenaires de
l'industrie informatique. Son objet est de promouvoir l'utilisation combinée des techniques objet et de
l'informatique répartie. Pour cela, elle définit des normes et des architectures, que des entreprises de
logiciels se chargent d'implémenter. Pour en savoir plus sur CORBA.
RMI : Remote Method Invocation permet de faire communiquer des programmes java par le réseau.
DOM : une fois le document XML analysé et transformé en un arbre d’objets java, DOM est une
interface qui permet d’accéder à ces objets. Pour en savoir plus sur DOM.
UML : Unified Modeling Language ou Langage de Modélisation Unifiée – permet de modéliser
graphiquement une application.
Chamla, Chastanet
6 Novembre 2000
page 8/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
Annexe B : Bibliographie
Nous avons utilisé :
Sérialisation :
 http://www-sop.inria.fr/koala/XML/serialization/
 http://www.javasoft.com/products/jdk/1.1/docs/guide/serialization/
 http://wdvl.com/Authoring/Languages/XML/Java/serialization.html
CORBA :
 http://www.omg.org/
 http://corbaweb.lifl.fr/
MOF et XMI :
 http://cgi.omg.org/cgi-bin/doc?ad/98-10-05 (On peut trouver dans ce document tout
ce qui concerne l’utilisation de XMI, sa production, son analyse, ses attributs, ses
DTDs, …)
 http://www-4.ibm.com/software/ad/standards/xmi.html
Chamla, Chastanet
6 Novembre 2000
page 9/10
Modèles à Objet et Sérialisation
Olivier Chamla & François Chastanet
Annexe C : Index
C
CORBA .......................................................................................................................................................................... 4
ORBacus .................................................................................................................................................................... 4
passage par valeur ...................................................................................................................................................... 4
J
JAVA ............................................................................................................................................................................. 3
RMI ............................................................................................................................................................................ 3
RMI/IIOP ................................................................................................................................................................... 4
Sérialisation ................................................................................................................................................................ 3
M
MOF ............................................................................................................................................................................... 5
X
XMI ................................................................................................................................................................................ 5
XML............................................................................................................................................................................... 5
Chamla, Chastanet
6 Novembre 2000
page 10/10
Téléchargement