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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Architecture : et vous comment vous architecturiez ce genre de projet ?


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 36
    Points
    36
    Par défaut Architecture : et vous comment vous architecturiez ce genre de projet ?
    Bonjour à tous,

    je développe depuis des années, et notamment le framework de mon entreprise qui a servi a développer de nombreux projets SAV et type PIM.

    Imaginez la chose suivante :
    - Vous avez des produits qui sont composés de composants eux-même composés de sous-composants et ainsi de suite (on a donc ici un arbre de composants, appelé la nomenclature produit)
    - Chacun de ses produits peut avoir de 0 à N attributs, que le client peut ajouter dynamiquement
    - Ces attributs sont soit un simple texte (ex: une référence secondaire), un numérique (ex: le poids) ou une valeur
    - Une valeur d'attribut est un objet qui a au moins un CODE et un titre qui se traduit (la couleur "rouge" ou la matière "or gris"). Ces valeurs d'attributs peuvent également être des attributs (une matière peut avoir un nombre de carats, une densité, etc. la valeur elle-même peut être activée/désactivée, etc.)

    Je vous laisse donc imaginer ce modèle de données.

    A partir de là, il faut pouvoir faire des recherches dans tous les sens.... "Tous les produits de couleur rouge et de matière "argent", qui un composant de type "vis" en or, etc.." (l'utilisateur peut composer sa propre recherche avec l'interface utilisateur).

    Ma question est la suivante :
    Chez nous, toutes les données ont été chargées en mémoire sous forme d'objets Java et la recherche consiste simplement à se promener dans le graphe (donc de sauter d'objet en objet par des méthodes Java).

    Et vous ? Comment auriez-vous architecturé ça ? Avec des EJB et effectuez des tonnes de requêtes SQL ?

    Bref, je cherche une méthode standard... bien sûr une recherche complexe ne doit pas prendre une plombe...

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    C'est quoi la vraie question ? Performance, fiabilité, évolutivité, souplesse, organisation........ ?

    L'accès mémoire est évidemment ce qu'il y a de plus rapide, donc si tout peut être chargé en mémoire, c'est tant mieux.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Le tout mémoire sera effectivement le plus rapide. Après concrètement et vue la structure en arbre, j'irai vers un stockage avec l'API JCR. C'est vraiment prévu pour ce type de structure, et utilisé avec infinispan pour le cache, les perfs sont vraiment bonnes je trouve... Sur un modèle de données similaire, avec un million de "feuilles" environ, j'ai rarement des requêtes à plus de 700ms.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Cas typique des bases orientées document, graphe ou bigtable ...

    Quelques exemples de produit : MongoDB, CouchDB (ou Couchbase pour rester dans le in-memory), Neo4j, Cassandra.

    Après ce sera surtout une question de modèle. Le mieux est d'avoir une bonne idée du modèle idéal et ensuite de choisir la solution technique qui apportera le meilleur compromis (stockage, volatilité, scalabilité, transaction, sauvegarde, reprise sur erreur, etc.)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/12/2005, 17h51
  2. Comment vous organisez-vous ?
    Par fredero dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2005, 20h33
  3. savez vous comment tapez un astérisque numéroté
    Par rauzada dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 07/10/2004, 23h11

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