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

Algorithmes et structures de données Discussion :

Synchronisation de deux collections d'objets


Sujet :

Algorithmes et structures de données

  1. #1
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut Synchronisation de deux collections d'objets
    Bonjour,

    je travaille sur la synchronisation de deux collections d'objets.
    En fait, sur des terminaux de vente, je récupère le top des ventes et je l'envoie à un serveur pour une synchronisation. Une fois celle-ci effectuée, le serveur la renvoie à tous les terminaux pour les mettre à jour.

    Les objets que je dois gérer sont de cette forme (en XML) :

    MaCLasse
    - CompteurVente
    - Id

    J'obtiens donc une liste comme celle-ci :

    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
    <TopVentes>
    <TopProduit id="1">
      <CompteurVente>8</CompteurVente>
    </TopProduit> 
    <TopProduit id="5">
      <CompteurVente>5</CompteurVente>
    </TopProduit> 
    <TopProduit id="65">
      <CompteurVente>4</CompteurVente>
    </TopProduit> 
    <TopProduit id="723">
      <CompteurVente>1</CompteurVente>
    </TopProduit> 
    <TopProduit id="3">
      <CompteurVente>1</CompteurVente>
    </TopProduit> 
    <TopProduit id="987">
      <CompteurVente>1</CompteurVente>
    </TopProduit> 
    </TopVentes>
    J'ai donc une liste sur le client, et une liste sur le serveur. Le client envoie sa liste et le serveur doit la synchroniser avec la sienne.

    Ca fait un moment que je réfléchis à un algo de synchronisation, mais je n'arrive toujours pas à le trouver.
    AU fait, je travaille en c# et les listes sont des Collections (type C#).
    Comment feriez-vous ?

    Merci beaucoup de m'aider.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par slim Voir le message
    J'ai donc une liste sur le client, et une liste sur le serveur. Le client envoie sa liste et le serveur doit la synchroniser avec la sienne.
    C'est à dire ? Laquelle des 2 listes doit remplacer l'autre ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Aucune ne doit remplacer l'autre. La liste du client met à jour celle du serveur. Quand la liste du serveur est mise à jour, elle est renvoyée et copiée sur le client.
    Exemple :
    Si le compteur de vente du produit (dont l'id est 75) est à 10 sur le client, et s'il est à 6 sur le serveur, celui-ci doit repérer le bon produit et mettre à jour son compteur de vente à 10.

    Merci.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par slim Voir le message
    Aucune ne doit remplacer l'autre. La liste du client met à jour celle du serveur. Quand la liste du serveur est mise à jour, elle est renvoyée et copiée sur le client.
    Heu... donc la liste du client remplace celle du serveur. D'ailleurs ca ne sert a rien au serveur de renvoyer la valeur au client, puisque c'est la meme valeur.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Bon... j'ai fais ca... mais le probleme est que je peux pas tester... (je suis pas au boulot).

    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
           public static TopVentes SynchroniserTopVentes(TopVentes topVentesTerminal)
            {
                topVentesServeur = DeserializeTopVentesServeur();
                if (topVentesServeur.ListeProduits.Count == 0)
                {
                    topVentesServeur = topVentesTerminal;
                }
                else
                {
                    foreach (TopProduit topProdTerminal in topVentesTerminal.ListeProduits)
                    {
                        foreach (TopProduit topProdServeur in topVentesServeur.ListeProduits)
                        {
                            if (topProdTerminal.Id == topProdServeur.Id)
                            {
                                topProdServeur.CompteurVente = topProdTerminal.CompteurVente;
                            }
                        }
                    }
                }
                return topVentesServeur;
     
            }
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Heu... donc la liste du client remplace celle du serveur. D'ailleurs ca ne sert a rien au serveur de renvoyer la valeur au client, puisque c'est la meme valeur.
    Oui, oui, tu as raison, elle la remplace. Mais c'est pas la même valeur sur tous les clients, c'est pour ca que le serveur renvoie la liste mise à jour (à tous les clients).
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par slim Voir le message
    c'est pas la même valeur sur tous les clients, c'est pour ca que le serveur renvoie la liste mise à jour (à tous les clients).
    Oui, je me doute bien.

    Ma remarque c'était pour te faire comprendre que ce n'est pas (pour l'instant) un problème d'aglo mais un problème de spécification : "quelles valeurs doivent remplacer quelles valeurs dans quelles conditions ?"

    Exemples classiques: si le client #1 annonce la valeur A et le client #2 annonce la valeur B, que doit stocker le serveur ? Et si le client #2 se connecte avant le client #1 ? Et si le client #1 se reconnecte ? ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. [Struts] <logic:iterate> sur une collection d objets c
    Par trax020 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/05/2005, 00h11
  2. Probléme collection d'objets
    Par Contrec dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 10h08
  3. Synchronisation de deux TClientDataSet
    Par stephane_lec dans le forum Bases de données
    Réponses: 9
    Dernier message: 03/03/2004, 16h42
  4. synchronisation de deux DBLookUPComboBox
    Par frede dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/02/2004, 08h32
  5. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58

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