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

JDBC Java Discussion :

[Stratégie][DB][Réseau] Synchroniser app locale/serv web


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut [Stratégie][DB][Réseau] Synchroniser app locale/serv web
    Salut à tous,

    Je suis sur le point de commencer une app qui doit être synchronisée avec un serveur web. Ce que l'on ajoute (en l'occurence: une réservation sur un bien) dans l'application est ajouté au serveur web et les visiteurs voient la disponibilité du bien. Lorsque les visiteurs (membres enregistrés) ajoutent une réservation, l'application doit se mettre à jour.

    J'imagine que la mise à jour du serveur web lorsque l'on ajoute une réservation dans l'application se fait assez facilement, en envoyant une requete directement sur la base de données du serveur web (MySQL).

    Mais dans l'autre sens, quelle manière est la meilleure, à votre avis, entre:

    - Faire en sorte que l'app local check les nouveautés sur le serveur toutes les x minutes.

    - Trouver un moyen pour que le serveur contacte l'app locale et la mette à jour…

    La première possibilité me semble être la plus simple. Vous en pensez quoi ?

    Merci de votre aide…

    Séb

  2. #2
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    La première solution semble en effet la plus simple, mais peut-être pas la plus économique ! Je sais pas à qui est destiné ton application, mais s'il y a beaucoup de gens qui l'utiliseront, je pense que ça sera plus intéressant que le serveur fasse une sorte de "broadcast" plutôt que chaque user lui fasse une requête toutes les x minutes...

    Mais c'est une question épineuse ! Et je me réjouis de voir les réponses des développeurs "expérimentés" !

  3. #3
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    Maintenant que j'y pense, est-ce que ça ne serait pas possible que l'application travaille directement sur la base ?

    Il faudrait voir quel genre de données transitent et en quelles quantités, mais cela pourrait peut-être fonctionner, non ?

  4. #4
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Wookai,

    Merci pour ta réponse!

    L'application sera utilisée par une ou deux personnes. C'est pour une petite entreprise ne comptant, pour l'instant, qu'un seul employé. L'idée est que cet employé ne doive pas jongler sans arrêt entre l'interface d'admin et son app locale…

    La première solution est effectivement peu économique. Mais "déclarer" l'application au serveur et attendre que le serveur la contacte semble compliqué. D'autant plus que je n'ai qu'un accès restreint sur le serveur. C'est un site en php/mysql, et à part ces languages, je ne peux pas faire grand chose. Faire en sorte que la page php qui enregistre une réservation communique avec l'app locale me semble difficile.

    Utilise la même base n'est pas possible. La base de l'app locale sera plus complète que celle du web, qui ne sert qu'a persister les informations basiques d'une réservation.

    Les données qui transiteront seront en très faible volume (un id de client, un id de bien et une date…).

  5. #5
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    Aha... Si les deux bases sont pas les mêmes, c'est clair qu'on ne peut pas la partager... Enfin, il faut voir... Car si le site utilise juste une version "light" de la DB, c'est toujours possible d'utiliser la base entière et de n'utiliser que les champs nécessaires...

    Mais bon, si l'on part du principe que les deux base doivent être distincte, et que tu dois te limiter à du PHP/MySQL sur le serveur, je ne connais aucun moyen d'avertir un client à partir du serveur. Peut-être quelqu'un d'autre a-t-il une idée ?

    Alors je pense que tu vas devoir te résoudre à faire des updates régulièrement depuis ton application. Le mieux, d'après moi, c'est de définir une période d'actualisation pour la visualisation des données, et de forcer la mise à jour avant la modification, afin de voir si le bien qu'on veut sélectionner n'a pas été modifié (réservé) depuis.

    Je ne sais pas ce que doit pouvoir faire l'utilisateur avec les données depuis l'application, et à quel point la modification sur le site est dérangeante ? Est-ce qu'il faut locker un item en modification pour que personne ne puisse le réserver sur le site ? Ou alors faire un système comme SubVersion utilise, qui vérifie avant la mise à jour du site que personne ne l'a modifié depuis le site et demande à l'utilisateur quoi faire en cas de conflit...

    Je te donne mes idées en vrac, désolé ...

  6. #6
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Forcer la mise à jour avant enregistrement, j'y avais pas pensé… je note!

    merci pour ces idées!

  7. #7
    Membre habitué Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Points : 180
    Points
    180
    Par défaut
    Alors, t'as avancé ? Tiens-nous au courant, ça m'intéresse bcp de voir comment tu t'y prends car j'avais voulu faire la même chose pour le soft d'un magasin, afin de permettre aux visiteurs de réserver un article directement depuis le site, mais finalement j'avais abandonné pour cause de temps...

    Alors donne-nous de tes nouvelles, stp !

  8. #8
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Pour l'instant, je ne suis pas encore directement confronté au problème…

    C'est pour mon travail de diplôme, qui se passera dès le 22 août donc je n'y travaille pas encore directement… je fais juste quelques tests et je réfléchis aux stratégies que je vais employer.

    Cela dit, je compte finalement utiliser la méthode de la requete depuis l'app… Elle se synchronise, disons, toutes les 10 minutes et lorsque l'on veut faire une nouvelle réservation, elle vérifie une fois de plus si elle ne crée pas de conflit…

    Je posterai mon avancement dès que le travail commence…

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    il existe, pour certaines bases de données, des moyens de faire des call-back c'est à dire, de notifier les clients connectés d'un changement d'état de la base.
    Celà reste tout de même du domaine de "l'usine à gaz" à mettre en oeuvre.
    Le plus simple est de mettre en place dans ton application un thread "daemon" qui recherches toutes nouveautés dans la base de données et notifie ton programme des changements afin que tu puisse synchronizer tes données.
    Ce daemon ne doit pas pénaliser ton application et doit donc trouner en priorité faible


    garde donc à l'esprit 3 notions; thread, daemon, faible priorité

  10. #10
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    ok, je vais garder tout ça…

    la programmation avec des threads, je ne connais pas bien, mais je vais m'y mettre… et poster ici la solution à laquelle je vais arriver :-)

    merci de votre aide!

Discussions similaires

  1. Synchroniser bdd locale avec bdd distante
    Par karaz_karaz dans le forum Android
    Réponses: 6
    Dernier message: 27/05/2010, 19h48
  2. Conception synchronisation BD locale et BD distante
    Par amgab2003 dans le forum ALM
    Réponses: 2
    Dernier message: 11/05/2010, 14h31
  3. Synchronisation ou API de Web crawler C#
    Par Wait4it dans le forum C#
    Réponses: 1
    Dernier message: 06/08/2008, 16h06
  4. Synchronisation BD locale et distante(serveur)
    Par 73672 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 04/02/2005, 13h29
  5. [Conception] Synchronisation BD locale et distante(serveur)
    Par 73672 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 03/02/2005, 21h44

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