Outils%20d - PowerPoint PPT Presentation

About This Presentation
Title:

Outils%20d

Description:

Traitement des primitives de cr ation d'un objet actif (newActive, turnActive) par l'outil Spark. N cessit de simuler les actions caract ristiques g n r es : ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 16
Provided by: wwwsop
Category:
Tags: 20d | actif | actifs | outils

less

Transcript and Presenter's Notes

Title: Outils%20d


1
Outils danalyse statique et de vérification
pour les applications Java distribuées
Christophe MassolAvecEric Madelaine, Rabéa
BoulifaPROJET OASIS, SOPHIA ANTIPOLIS
  • Massol Christophe

Stage DESS Telecom Septembre 2004
2
SOMMAIRE
  • Projet OASIS
  • Objectif du stage
  • Utilisation et adaptation doutils existants
  • Analyses spécifiques à la vision distribué
  • Génération dun graphe dappel de méthode étendu
  • Conclusion

3
Projet OASIS
  • Objets Actifs, Sémantique, Internet et Sécurité
  • Chef de projet Isabelle Attali
  • Projet commun INRIA, I3S et UNSA
  • Objectif Proposer des méthodes et des outils
    pour lanalyse, la construction, la vérification
    et la maintenance dapplications réparties Java
  • Conception de méthodes
  • Concevoir des méthodes pour la programmation
    distribuée
  • Librairie ProActive
  • Propose des primitives simplifiant la
    programmation dapplications réparties Java
    (grilles de calcul, Internet, terminaux mobiles)
  • Plate-forme Vercors
  • Environnement danalyse et de vérification de
    programmes Java basé sur la librairie ProActive

4
Projet OASIS Librairie ProActive
  • Primitives de haut niveau Communication
    transparente entre objets distribués sur un
    réseau.
  • Le comportement de lapplication ne dépend pas de
    la répartition des objets.
  • Objet actif
  • Appel et réception dappels distants
  • Gestion de son comportement
  • Queue de requêtes dappels distants
  • Messages asynchrones basés sur les Futurs
  • Objet mobile

Librairie ProActive
JVM A
JVM B
Communication ProActive
5
Projet OASIS Plate-forme Vercors (1)
VERification de modèles pour COmposants Répartis
communicants, surs et Sécurisés
Environnement danalyse et de vérification de
programmes Java
6
Projet OASIS Plate-forme Vercors (2)
VERification de modèles pour COmposants Répartis
communicants, surs et Sécurisés
Environnement danalyse et de vérification de
programmes Java
7
Objectif du stage
  • Création du cœur dun prototype danalyse de code
    ProActive
  • Parsing du code Java ProActive en code
    intermédiaire
  • Etablissement de la structure du réseau
  • Objets distribués présents dans le code
  • liens entre objets distribués
  • Reconnaissance des traitements de la librairie
    ProActive dans le code utilisateur
  • Appels de méthodes distantes
  • Traitement des requêtes
  • Utilisation dun Futur
  • Génération dun graphe dappel de méthode étendu
    représentant toutes ces informations
  • Interfaçage avec les outils sémantiques de
    léquipe

8
Utilisation et adaptation doutils existants
Bandera
  • BANDERA
  • Parsing dun code source -gt Jimple
  • Module de slicing
  • Module dabstraction de code
  • Interface graphique
  • SOOT
  • Plate-forme danalyse et doptimisation de code
  • Code intermédiaire Jimple
  • SPARK
  • Analyseur du pointeur basé sur Jimple
  • REQS
  • Analyse de classe
  • Production dun graphe dappel de méthode

Représentation Jimple
Public void m1() O o P p  p new P() 
p.m()  o newActive() o.m()
Spark
9
Analyse du code utilisateur
  • Structure du réseau
  • Reconnaissance des objets actifs
  • Type
  • Paramètres de création
  • Liens de communications
  • Analyse du code ProActive
  • Création dun objet actif
  • Sélection des requêtes
  • Point dappel distant
  • Utilisation d un Futur

10
Génération du graphe XMCG (1)
  • Graphe dappel de méthode représentant les
    différentes activités dun programme
  • Graphe nœuds/transitions
  • Call (m, c)
  • Serve (m, mode )
  • Use (futur)
  • Pp (label)
  • Ent (m, args)
  • Ret (val)

11
Génération du graphe XMCG (2)
  • Transitions intra-procédurales
  • code séquentiel
  • Transitions dappel de méthode
  • Local (o, m, args, var)
  • Remote (o, m, args, futur)
  • Unknown (o, m , args, var, futur)
  • Static (m, args, var)

12
Conclusion
  • Travaux réalisés
  • Adaptation des logiciels existants (Bandera,
    Spark) à notre vision distribuée
  • Analyse de la structure du réseau distribué
  • Reconnaissance des modules dappel au langage
    distribué
  • Implémentation du graphe XMCG
  • Difficultés
  • Simulation de la librairie ProActive
  • Collecte de linformation distribuée

13
Adaptation des outils à ProActive
  • Modification du module de génération de code
    Jimple (Bandera)
  • Reconnaissance des primitives de la librairie
    ProActive
  • Traitement des primitives de création dun objet
    actif (newActive, turnActive) par loutil Spark
  • Nécessité de simuler les actions caractéristiques
    générées
  • Appel au constructeur
  • Contrôle du comportement de l objet

génère
  • Outils danalyse statique et de vérification pour
    les applications Java distribuées
  • Massol Christophe

14
Collecte des objets actifs
  • Reconnaissance dun nœud de création dobjet
    actif
  • Parcours de la représentation interne Jimple
  • Recherche dun nœud daffectation de pointeur
    Jimple
  • Identification de la nature de la méthode appelée
    (newActive, turnActive)
  • Collecte des informations de création dobjet
    actifs
  • Paramètres du constructeur appelé par les
    primitives ProActive
  • Type de lobjet actif
  • Adressage de lobjet dans la représentation
    interne Soot
  • Outils danalyse statique et de vérification pour
    les applications Java distribuées
  • Massol Christophe

15
Collecte des liens de communication
  • Traitement des appels, différenciation entre
    appel local et appel distant
  • gtIdentification des appels distants afin
    danalyser les communications entre objets actifs
  • Parcours de larbre Jimple
  • Recherche dune instruction dappel de méthode
  • Appel à létude Spark (recherche de la nature du
    pointeur appelé)
  • Retour d un ensemble de points de création lié
    au pointeur
  • Identification dune création dobjet actif par
    adressage
  • Difficultés
  • Collection dobjets de même type
  • Outils danalyse statique et de vérification pour
    les applications Java distribuées
  • Massol Christophe
Write a Comment
User Comments (0)
About PowerShow.com