Title: CorbaTrace
1CorbaTrace
Présentation
Interception
Log2XMI
XMI
Perspectives
- Florian Champalle
- Audrey Jaccard
- Etienne Juliot
- Nicolas Lemoullec
- Antoine Parra del Pozo
2Présentation
Présentation
3Objectifs
Présentation
- Débuguer des applications distribuées
- Créer des outils dinterception de messages entre
objets Corba - Créer des fichiers journaux (logs)
- Visualiser sous forme de diagrammes de séquences
4Projet initial
Présentation
- Création dobjets génériques
- Mise en place de la structure dinterception
- Intercepteurs spécifiés par la norme Corba
- Politique niveau dinterception
- Création des fichiers journaux
- Visualisation sous LaTeX
5Exemple dun fichier journal
Présentation
- OPEN_FLUXFriday, June 8, 2001 45726 PM
GMT0100992015846253 -
- gtgtgtSEND_REQUEST
- DATEFriday, June 8, 2001 45730 PM
GMT0100992015850952 - CLIENT_IDclient
- SERVANT_IDHello
- MSG_ID502196
-
- OPERATIONsay_hello_to
- ARGUMENTS3
- ARGin string(client)
- ARGin string(502196)
- ARGin string(le client du POA 1)
-
- OPTIONS
- request id 0
- exceptions (no exceptions)
- response expected true
- END_OPTIONS
6Problèmes rencontrés
Présentation
- Identification
- Client
- Message
- Synchronisation des horloges systèmes
- Problème dexclusion mutuelle
7Diagrammes de séquences
Présentation
8Cahier des charges
Présentation
- Interception plus souple
- Application de filtres
- Représentation graphique
9Planning
Présentation
10Architecture générale
Présentation
11Interception
Interception
12Choix technologiques
- Possibilités dinterceptions
- TCP/IP
- IIOP
- Intercepteurs portables
- Norme Corba 2.3
Interception
13Principe
Interception
14Dynamique
Interception
15Problématique
- Problèmes
- Identification
- Date
- Architecture
- Simplicité dutilisation
Interception
- Solutions
- Service Context
- Isolement fonctionnel
- Génération XML
16Service Context
Interception
17Modèle des intercepteurs
Interception
18Mise en place
- Simplicité
- Standardisation
Interception
Implémentation chez le client ORB orb
org.omg.CORBA.ORB.init(args, props)
org.omg.CORBA.Object obj orb.string_to_object(r
ef_IOP) Hello hello HelloHelper.narrow(obj
) System.out.println("Receive "
hello.say_hello("Titi")) orb.destroy()
19Mise en place
- Simplicité
- Standardisation
Interception
Implémentation chez le client InterceptorClient
interceptorClient new InterceptorClient() ORB
orb org.omg.CORBA.ORB.init(args, props)
org.omg.CORBA.Object obj orb.string_to_object(r
ef_IOP) obj interceptorClient.active_intercepti
on(obj, orb) interceptorClient.activate_log(orb,
"My Name") Hello hello HelloHelper.narrow(ob
j) System.out.println("Receive "
hello.say_hello("Titi")) orb.destroy()
20Log2XMI
Log2XMI
21Log2XMI
Log2XMI
22Architecture de Log2XMI
Log2XMI
23Les logs
- Le choix de XML
- lisible
- très répandu
- standardisé SAX et DOM
- adapté aux transformations
Log2XMI
24Un exemple de Log
- ltloggt
- ltmessage mesg_id"0" request_id"0"
type"receive_request"gt - ltlocal_object id"Hello" date"2002-03-18T1737
04.605"/gt - ltdistant_object id"helloClient"
date"2002-03- 18T173704.372"
request_id"0"/gt - ltoperation name"say_hello"gt
- ltargument inout"in" value"Titi"
type"string"/gt - lt/operationgt
- ltoptionsgt
- ltresponseExpected value"true"/gt
- lt/optionsgt
- lt/messagegt
- lt/loggt
Log2XMI
25Messages parsés
Log2XMI
26Fusion des Messages 1/2
- But de la fusion
- Le procédé
Log2XMI
27Fusion des Messages 2/2
- Cas particulier des messages incomplets
- pas de messages perdus en XMI
- type de message BROKEN_xxx
- utilisation dun objet et dune date inconnus
Log2XMI
28Synchronisation des Messages
- Problématique
- messages instantanés en XMI
- Simplification du problème
- conserver les messages les plus rapides
Log2XMI
29Synchronisation des Messages
- Trois étapes
- 1) évaluation des arcs du graphe à partir des
messages logués
Log2XMI
30Synchronisation des Messages
- 2) estimation des décalages par rapport à lobjet
de référence
Log2XMI
31Synchronisation des Messages
- 3a) mise à jour des dates démission et de
réception des messages - 3b) préparation de la génération XMI tri des
messages
Log2XMI
32Synchronisation des Messages
- Futures évolutions
- estimation des décalages encore trop imprécise
- amélioration
- avec le calcul
- des distances
Log2XMI
33Le système de filtre
- Pourquoi des filtres ?
- Fichier de filtre - défini dans la DTD
- Système de filtre inclusif
- Deux niveaux de filtrage
- - global
- - sur lobjet
Log2XMI
34Le système de filtre
- Quatre types dinformations filtrables
- types de messages
- dates (before, after, between)
- opérations (nom), arguments (positionnés, typés)
- objets (nom) et ses sous-filtres
Log2XMI
35exemple de filtre
- ltfiltergt
- ltmessage_typesgt
- lttype value"BROKEN_REQUEST"/gt
- lt/message_typesgt
- ltdatesgt
- ltafter date"2002-03-09T170000.000"/gt
- ltbefore date"2002-03-09T150000.000"/gt
- lt/datesgt
- ltmethodsgt
- ltmethod name"Operation1"gt
- ltargumentAt position"3" value"ddd"/gt
- lt/methodgt
- lt/methodsgt
- ltobjectsgt
- ltobject id"Objet1"gt
- ltmethodsgt
- ltmethod name"Operation1"gt
- ltargumentAt position"2" value"bbb"/gt
- lt/methodgt
Log2XMI
36Processus de génération XMI
- Pour chaque message
- Localiser la classe, et le rôle
- Sélectionner lopération du bon objet
- Ajouter le message
- Puis
- Ajouter lextension à la fin
- Générer le fichier
Log2XMI
37XMI et diagrammes
XMI
38XMI
XMI
39Le standard XMI
- Quest-ce que XMI ?
- Standard OMG
- Sauvegarde UML en XML
- Utilisation de XMI dans notre projet
- Indépendance des modules
- Indépendance de la visualisation
XMI
40XMI structure et extensions
- Structure des documents
- Sous forme dobjets XMI
- Le problème des extensions
- Stocker la représentation graphique
- Propriétaire à chaque logiciel
XMI
41Les APIs XMI
- Structure
- Utilise DOM
- Correspondance avec objets XMI
- Évolutivité
- Problèmes rencontrés
- Écriture des extensions
- DTD, indentation
- Utilisation simple et transparente
XMI
42Visualisation des diagrammes
- Avec MagicDraw UML
- Pourquoi MagicDraw UML ?
- Ouvrir le fichier cest fini
- Avec Rational Rose
- Pourquoi Rational Rose ?
- Le plugin XMI de Unisys
- Petits problèmes
- Graphiques
- Meta modèle
XMI
43Résultat MagicDraw
XMI
44Lapplication xmi2tex
Fichier XMI
Xmi2tex
Fichier DTD
Fichier TEX
Latex
XMI
Fichier XSL
Librairie MSC
Fichier DVI
45Résultat latex
XMI
46Perspectives
Perspectives
47Site web
- Utilité
- Licence LGPL
- Hébergement chez TuxFamily
- Développement PHP
- Promotion
Perspectives
48Conclusion
- Gestion déquipe
- Bilan
- Evolutions
- C
- Interface graphique
- Projet GNU
- Pérennité de Corba
Perspectives
49Questions ?????????
les partiels !