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

Langage Java Discussion :

Choix d' implémentation


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut Choix d' implémentation
    Bonjour,
    Je suis en train de mûrir les choix pour la réalisation d'un programme. A la base, mon envie était de faire une applet. J'aurais à créer dès le début de l'execution de l'application, environ 10000 objets, puis faire essentiellement des tries, des selections etc (grosso modo les requettes principales qu'on peut faire sur une BD)
    Ces objets seront filtrés et triés donc par la requette de l'utilisateur, puis affichés suivant l'ordre de tri de manière animé.

    Par exemple, j'ai 3 objets qui comportent respectivement leurs champs choisis pour le tri à 3, 5 et 8, une barre d'avancement type vidéo défilera, et à 3 min l'objet qui a le champs égale à 3 sera affiché (pour une duré de 10s par exemple), puis à 5 min, l'objet qui a le champs égale 5, puis à 8 min, l'objet de champs 8.

    Le nombre d'objet n'est pas fini, mais leurs rajouts sera une mise à jour, pas d'ajout pendant l'execution.


    Donc la question est :
    vaut il mieux faire
    • Une applet qui à les objets stokés sour forme xml dans un fichier texte dans le .jar
    • Une applet qui s'adresse à une BD, mais que va t'il en être de la requette énorme du début.
    • Faire un lazy loading, et attendre que le besoin des objets soit là pour faire une requette sur une base de donnée. (mais cela veut dire qu'il peut y en avoir quelques grosses qui se suivent pendant un cours interval de temps, et comme l'affichage doit respecter une temporisation...)
    • Faire un serveur C++ qui s'occupe des calculs à proprement dit. Ca m'ennuirait car du coup je pourrais pas mettre le résultat sur un hébergement gratuit du net. (c'est pas commercial)
    • 10000 objets, ça tournera jamais dans une applet, faut le faire comme une application tournant sur une machine, et quite à faire, que en c++.
    • ...


    Par dessus ça, des calculs devront être réalisé pour faire entre autre (mais c'est le plus typique) des fléches de l'affichage d'un objet vers un autre dont la création à été influencé par le précédent (suivant un champs influence). Comme la liste des objets est amenée à evoluer, cette liste de flêche pourrait :
    • Soit être recalculé après l'insertion d'une objet et stoqué dans une autre table de base de donnée, autre fichier texte (XML)
    • Soit calculé dynamiquement.


    C'est pour mon plaisir personnel, alors j'ai aucune contrainte imposé, alors lachez vous !

    Je ne sais pas trop si cette discussion doit être dans la partie générale Java ou Langages en Général puisque le choix n'est pas encore fait , même si j'ai quand même un faible pour la solution JAVA... (plus facile pour moi, et plus facilement distribuable )

    Merci de vos réponses !

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Si tu veux gagner tu temps sans surcharger la memoire, j'opterais pour une version multithread avec buffer.

    Tu creer un tableau "buffer" d'objet a afficher dans lequel ton application ira chercher les objets a afficher.
    Le thread ira lui picher dans la BdD ou autre les infos pour la creation des objets qu'il ajoutera au fure et a mesure dans le buffer.

    Une bonne taille de buffer te permettra de n'avoir que peut d'objets en memoire (10 ? 50 ? 100 ?) et d'eviter les lag en cas de nombreuses requettes dans un temps tres court.

    Le buffer depends du temps moyen d'une requette, calculé a partir d'un set de requettes successif sur des données equitablement repartie dans ta base de donnée (debut/fin/milieux et gros ensemble de données), et depends aussi du nombre max de requettes par secondes estimée. Tu saura donc a peu pres combien de temps de buffer tu as devant toi.

    Mais c'est plus chaud a gerer aussi

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut Wow !
    Hum, ça me parait interessant, mais je sais pas comment comment on gère les buffers en Java. Je vais lire quelques docs et je reviens

    (mais je sais pas dans combien de temps, car le temps de lire ne va peut-être pas être dispo tout de suite tout de suite, mais c'est pas grave, je remonterais le topic à ce moment là )

    Enfin si je comprend, vous votez pour la solution Java/BD :o

    et les autres ?

    M'ci !

    Edit : Pour pouvoir me lancer un jour, je pense qu'il va falloir que je gère le truc en trois étapes :
    1. la partie qui rempli la liste d'objet (reste à choisir BD/XML ...? )
    2. la partie qui affiche
    3. la partie qui calcul/fait les requettes


    Mais suivant les choix d'implémentations, c'est pas facile de "trier" les deux dernières parties - je me consulte - Hum, si je comprend l'idée "Buffer", la partie qui affiche passe la commande pour les X prochaines secondes, et lit le buffer, deux interactions, c'est tout. Ca doit être triable :o

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Naeco
    Hum, ça me parait interessant, mais je sais pas comment comment on gère les buffers en Java. Je vais lire quelques docs et je reviens
    J'entends par "buffer" une simple zone tampon
    La plupart du temps il te suffit d'utiliser un simple tableau avec 2 pointeur 'Start' et 'End' enfin Pointeur ..... je veux dire entier contenant un index du tableau
    En jouant sur le modulo tu peux boucler sur le tableau sans te prendre la tete avec les indices de fin. A chaque vois que tu utilise une donnée, tu incremente "start" (pas besoin de vider la casse du tableau, elle ne fait plus partie de la zone "Start/End" donc considere comme vide)
    et a chaques fois que tu ajoute une element tu incremente Fin.
    En aplpiquant le modulo sur la valeur incremente .. tu boucle sur Zero des que tu atteint "BufferSize".
    Avant d'ajouter un element, il faut tester que "End+1" n'est pas egal a "Start"
    Sinon tu ecrase ce qui n'a pas encore ete traité.

    Citation Envoyé par Naeco
    Enfin si je comprend, vous votez pour la solution Java/BD :o
    Non .... Plutot pour la solution Delphi
    De ce cote la je ne sais pas ... je demarre en java et je ne connait pas les limites de ce langage et toutes ses possibilités. Je disserte juste sur l'aspect conceptuel de la chose

    Citation Envoyé par Naeco
    Edit : Pour pouvoir me lancer un jour, je pense qu'il va falloir que je gère le truc en trois étapes :
    1. la partie qui rempli la liste d'objet (reste à choisir BD/XML ...? )
    2. la partie qui affiche
    3. la partie qui calcul/fait les requettes


    Mais suivant les choix d'implémentations, c'est pas facile de "trier" les deux dernières parties - je me consulte - Hum, si je comprend l'idée "Buffer", la partie qui affiche passe la commande pour les X prochaines secondes, et lit le buffer, deux interactions, c'est tout. Ca doit être triable :o
    Pour le choix de la structure qui heberge les données, je ne sais pas.
    Une BdD c'est pas mal car elle gere les requettes elel meme, mais il te faut au moins un acces internet ... sinon ca risque d'etre galere a distribuer.
    En general j'aime bien opter pour la gestion personnelle du fichier de donnée : Un bon vieux fichier binaire dans lequelle j'ecrit et je structure mes donnes par blocs. XML reviens un peu au meme, sauf que sous Delphi sa gestion demande l'instalation d'une bibliotheque tellement complexe que ca me saoulais Sous java je ne sais pas ... si tout est fourni et facile a utiliser ca peut etre pas mal
    Ca t'affranchi de toutes limites dont celle d'un acces internet pour une BdD distante.

    La partie qui affiche elle devra surement ne gerer que l'affichage. Je pioch, j'affiche. Dans le cadre d'application a contrainte temporelles, moins la partie d'affichage en fait mieux ca vaut.
    Le tout et de lui transmettre les donnees qu'il lui faut, dans l'odre qu'il lui faut.
    LE tri devra donc se faire avant ajout dans le buffer, que la partie affichage n'aura qu'a depiler.

    Pour les requettes/tri, il faudrais en savoir plus sur ton concept. Si j'ai bien compris tu souhaite faire une sorte de slide a la power point ... donc j'opterais par une requette de toutes les donnees correspondant a la meme section temporelle (ou interval) et ensuite je les ordonnerais dans un tableau temporaire, puis je les ajouterais au buffer au fil du temps. Une fois toutes les donnees ecrites, je passe a la section temporelle suivante.
    L'ideal serais d'avoir un buffer tel que l'on puisse etre sur d'ajouter toutes les valeurs d'une sectio ntemporelle d'un coup sans que le buffer soit vide.

    Bien sur le traitement devra se faire dans un thread secondaire ... sinon aucun interet

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 75
    Par défaut ok
    Merci pour cette longue prose !

    oui, ok l'idée est claire.

    Sinon j'avais pensé à une FIFO aussi :o

    Et les pro java, vous en pensez quoi, viable en applet d'après vous ?

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Sinon j'avais pensé à une FIFO aussi :o
    C'est un buffer de ce type dont je parlais
    C'est tout a fait adapté a tes besoin

Discussions similaires

  1. Impact sur les performance d'un choix d'implémentation
    Par EmacLi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/11/2010, 15h27
  2. Choix d'implémentation du Pattern Singleton
    Par Sehnsucht dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/07/2010, 09h54
  3. [Élaboration] Choix d'implémentation en C++
    Par lephotographe dans le forum Architecture
    Réponses: 0
    Dernier message: 26/08/2009, 21h55
  4. choix d'implémentation corba
    Par cdm1024 dans le forum CORBA
    Réponses: 1
    Dernier message: 30/01/2009, 14h32
  5. Système de greffons et choix d'implémentation
    Par mangobango dans le forum C++
    Réponses: 2
    Dernier message: 03/07/2007, 16h57

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