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

Java Discussion :

Architecture application : conseil


Sujet :

Java

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut Architecture application : conseil
    Bonjour,

    Je suis en train de développer un client lourd en Java. J'ai comme contraintes de faire une interface en Swing et de gérer les données à partir d'un fichier XML. J'ai presque pas d'expérience en matière d'architecture pour les applications client lourd utilisant XML. J'ai plus d'expérience sur des architectures web JEE (hibernate, spring, glassfish, struts, ...).

    Pour cette application j'avais pensé à utiliser une architecture 3-tiers :
    - La couche présentation avec SWING
    - La couche manager
    - La couche DAO gérant les données entre la couche manager et le fichier XML de données. Pour manipuler les fichiers XML je ne sais pas trop quelle API utiliser. On m'a parlé de l'association SAX/DOM ou JDOM. En sachant que le nombre de données sera moins de 280 tuples.
    Je pensais utiliser aussi un package entities dans lequel je mettrais tous mes bean correspondant aux "tables" de mon fichier XML.
    Je pensais aussi utiliser Spring pour l'injection des dépendances.

    Voici un petit schéma résumant le tout :

    <------------------------ bean ---------------------->
    <------------------------ Spring --------------------->
    <----présentation----><----manager----><----dao----><--données-->
    SWING SAX/DOM, XML
    JDOM, ...

    Qu'en pensez vous ?
    Qu'-est ce qui se fait le plus pour des architectures client lourd ?
    Avez-vous une autre architecture à me proposer ?

    Cordialement,
    Nicolas

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Points : 402
    Points
    402
    Par défaut
    Et bien, ce qui se fait le plus, je ne sais pas vraiment.

    Maintenant une architecture 3-tiers basé sur MVC (modèle, vue, contrôleur), est quelque chose d'assez simple, assez efficace, et que l'on retrouve souvent.

    D'ailleur ce que tu décris entre dans ce schéma... avec en Vue ta couche Swing, en controleur ton manager, et pour le modèle tout ce qui touchera au traitement des tes fichiers XML et plus globalement le gros de la partie métier.

    Donc pour moi, je dirais que tu part dans une bonne direction
    C'est en aidant les autres qu'on en apprend beaucoup soi-même

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    Pour la partie serialisation de données ( DAO ), je conseille de jeter un oeil sur JAXB.
    Pour l'organisation globale, l'approche classique en couche peut être adaptée, il faut juste bien comprendre l'EDT de Swing.

    Quelques points qui peuvent être structurant:
    Quelle version du JRE est envisagé?
    Côté déploiement de l'application, JWS va-t'il être mis en oeuvre?
    Quid de la sécurité ( least privilege principle, identification de l'utilisateur )?
    Quel framework de logging vas-tu exploiter?

    Bon courage,
    Sébastien

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Merci pour vos réponses.
    - L'application tournera avec au moins Java 1.5.
    - JWS ne sera pas mis en oeuvre dans un premier temps. Je n'ai jamais utilisé Java Web Start mais après m'être renseigné je pense qu'il risque d'être utilisé plus tard. En particulier, si l'application passe en client riche (ce qui sera surement fait un jour). A voir ...
    - En ce qui concerne les frameworks de sécurité je n'en connais pas beaucoup. En fait je n'en ai jamais utilisé. Il faut que je cherche. J'ai vu qu'il y avait Spring Security.

    cordialement,
    Nicolas

Discussions similaires

  1. Architecture applicative autour de Talend
    Par DevNico dans le forum Installation, migration et administration
    Réponses: 3
    Dernier message: 13/01/2009, 19h17
  2. Code et Architecture, vos conseils / votre avis.
    Par Hybrix dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 07/02/2008, 22h17
  3. Architecture application web
    Par bach58 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 17/09/2007, 10h26
  4. [EJB3] Architecture application client lourd
    Par kristof_machin dans le forum Java EE
    Réponses: 3
    Dernier message: 19/04/2006, 14h36
  5. [JDBC][ARCHITECTURE] application swing
    Par benssj5 dans le forum JDBC
    Réponses: 6
    Dernier message: 31/08/2004, 20h25

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