IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

[Architecture] Métrologie/sondes et framework MVC


Sujet :

Développement Web en Java

  1. #1
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 085
    Points
    2 085
    Par défaut [Architecture] Métrologie/sondes et framework MVC
    Bonjour,

    j'ai une application web MVC basée sur Struts/Tiles pour la partie Contrôleur et Vue, et j'utilise une abstract factory qui forme mon DAO pour la partie Modele.

    Maintenant que tout ca marche bien, j'aimerais rajouter de la métrologie, à savoir des sondes qui vont me mesurer les temps d'éxecution à différents emplacements de mon code.

    Ces sondes doivent avoir un scope session, et être stockées dans chaque session utilisateur (une session représentant une fenêtre de navigation, mais ce n'est pas important).

    Le soucis est que je veux sonder mes requêtes DAO, et que les objets DAO n'accèdent pas à l'objet Session.


    Alors je pourrais modifier tout mes appels DAO, mais c'est lourd et le couple est fort. Je cherche une solution la plus simple possible, et qui permettre à mes objets DAO d'être le plus découplés possibles de mon contrôleur.

    Si quelqu'un a une idée géniale, je suis preneur.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Une idee : implementer la classe qui contient les DAO d une interface qui declenche un evenement(Event ??) et creer une classe de type Listener qui se charge de calculer les temps d execution.

  3. #3
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Utilises AOP et Spring

  4. #4
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 085
    Points
    2 085
    Par défaut
    Citation Envoyé par ericw78
    Utilises AOP et Spring
    Trop lourd pour le projet que j'ai à faire, sinon je n'aurais pas hésiter.

    Citation Envoyé par willoi
    Une idee : implementer la classe qui contient les DAO d une interface qui declenche un evenement(Event ??) et creer une classe de type Listener qui se charge de calculer les temps d execution.
    C'est une idée, mais il faudrait encore réussir à le rendre multi-thread et mono-session.

    J'essaye de voir du côté de Websphere.

    Merci encore.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336

  6. #6
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour,
    tu peux mettre ton objet session dans une une threadlocal. Avec Struts tu as un point unique d'entree. Il suffit que tu surcharges le RequestProcessor de Struts, que tu mettes dans une threadlocal ton objet. Apres tu a acces a ton objet dans n'importe quel contexte.

    Je l'ai fait dans mon projet gestcv http://gestcv.sourceforge.net/fr/

    Voici les classes principales de gestcv :

    1. creer une classe utilitaire qui mette ton objet dans une thread local :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public class UserUtil {
     
    private static ThreadLocal thread = new ThreadLocal();
     
    	public static void setGestcvUser(GestcvUser gestcvUser) {			
    		// Save this safari user in thread local
    		thread.set(gestcvUser);		
    	}	
     
    	public static GestcvUser getGestcvUser() {
    		//System.out.println("Hashcode th courant : "+Thread.currentThread().hashCode());
    		//System.out.println("Nom : "+Thread.currentThread().getName());
    		return (GestcvUser)(thread.get());
    	}
     
    	public static String getNom() {
    		GestcvUser user =  getGestcvUser();
    		if (user != null)
    			return user.getNom();
    		return "";
    	}
     
    	public static String getLogin() {
    		GestcvUser user =  getGestcvUser();
    		if (user != null)
    			return user.getLogin();
    		return "";
    	}	
     
    	public static Locale getUserLocale() {
    		GestcvUser user =  getGestcvUser();
    		if (user != null) {
    			return user.getUserLocale();
    		}
    		// ERROR
    		return null;
    	}
     
    	public static void setUserLocale(Locale userLocale) {
    		GestcvUser user =  getGestcvUser();
    		if (user != null) {
    			user.setUserLocale(userLocale);
    		}		
    	}	
    }

    2. Mettre a jour on objet dans la thread local a partir du RequestProcessor :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class GestcvRequestProcessor extends TilesRequestProcessor {
     
    protected boolean processPreprocess (HttpServletRequest request,
                HttpServletResponse response) {
           UserSession userSession = .....
          UserUtil.setGestcvUser(userSession);
          return super.processPreprocess();
    }
    3. Dans ta DAO tu peux faire

    UserUtil.getGestcvUser() pour recuperer ton objet user.

    Comme tu peux le voir il n'y a pas besoin de contexte pour recuperer ton objet.

    Angelo

  7. #7
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 085
    Points
    2 085
    Par défaut
    Excellent!! Je te remercie beaucoup, ce point d'entrée va m'être bien util. J'éspère juste qu'il ne cause pas de problèmes avec Websphere niveau Threads.

    Ca tombe bien, j'avais déjà mon propre RequestProcessor.

    Merci beaucoup!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ericw78 Voir le message
    Utilises AOP et Spring
    Bonjour,

    Je me permets de rebondir sur la discussion. Utiliser Spring pour procéder à de la métrologie est une solution qui m'interesse, malheureusement je ne parviens pas à trouver de documentation en ligne sur ce point _ peut-être que je cherche mal, notamment parce que je ne sais traduire en anglais "sonde" ou "métrologie"...

    Toute aide serait la bienvenue !

    Merci par avance...

  9. #9
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    http://ewawszczyk.developpez.com/tut...va/spring/aop/
    Voici un tutoriel qui explique comment utiliser AOP avec Spring
    Pour mesurer les temps d'exécution, le mieux me semble-t-il est d'utiliser les Around advice

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci !
    Je me penche de suite sur ton lien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Framework MVC pour application swing
    Par Mister Nono dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 27/10/2009, 01h06
  2. Framework MVC Client Lourd
    Par Kalipseo dans le forum Débuter
    Réponses: 2
    Dernier message: 23/12/2008, 11h02
  3. Perdu dans tous ces framework, mvc, et template
    Par __fabrice dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/09/2005, 13h00
  4. [MVC] Différences entre les framework MVC push et pull ?
    Par XavierZERO dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 15/01/2004, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo