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

Services Web Java Discussion :

Synchroniser deux DB en utilisant des WebServices


Sujet :

Services Web Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Synchroniser deux DB en utilisant des WebServices
    Bonjour,

    je ne sais pas si je suis tout a fait dans la bonne catégorie , mais voila:

    j'ai deux bases de données : hsql et mysql.
    chacune des bases est utilisée par une application.
    le but étant , de synchroniser les modifications qui se font par chaque application sur une base vers la seconde base ( en bidirectionnel).

    Est ce que vous avez une idée sur comment exploiter des fichiers xml par webservices entre ces deux bases de sorte a faire de la synchronisation automatique ( c a d à chaque changement qui peut se faire sur une des bases , update immédiat sur la seconde).
    comment gérer les erreurs de non reception etc??
    Je n'arrive pas à imaginer l'architecture , si vous avez des idées , n'importe lesquelles (procédé, technologies, api ..) , je suis preneuse.
    Merci

  2. #2
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Salut

    Je créerai une couche supérieur à ta place.
    Une classe par où passerait toutes les nouvelles requêtes SQL et appellerait tes web services.

    Mais ça ne marche que pour les NOUVELLES requêtes et seulement si les bases sont uniquement alimenté par programme.
    Si quelqu'un s'amuse à rentrer des requêtes manuellement tu ne le sauras pas.

  3. #3
    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
    Il n'y a pas de solution miracle et dans la plupart des cas mieux vaut avoir une seule base en écriture. Sauf si les données des deux bases sont indépendantes, sinon tu risques d'avoir des incohérences et des conflits fonctionnels.

    Par exemple deux personnes qui ajoutent la même clé. Ou bien une base sur laquelle on ajouté un élément pour une clé donnée et pour l'autre on a supprimé la clé parente.

    Ensuite quelles sont tes contraintes de "désynchro" ? Exemple, on permet la synchronisation une fois par jour.
    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

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Merci pour vos réponses
    En fait , il s'agit de deux applications différentes sur lesquelles des utilisateurs travaillent déjà. (les bases sont bien séparées, les utilisateurs aussi).
    l'idée est de faire "une équivalence" entre les deux applications , en exploitant les notions communes , de sorte à ce que les utilisateurs de l'application 1 , continuent de travailler normalement , tout en recevant(et en envoyant) des mises à jour , qui se font par d'autres utilisateurs dans l'application 2.
    les applications 'communiquent' et se synchronisent (automatiquement) entre elles...

  5. #5
    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
    En fait la question est, pourquoi utiliser des Web Services ?
    Ils sont généralement dédiés à l'échange d'information structurés. Le plus simple dans ce cas me paraît d'échanger des requêtes SQL. Que ce soit les "transactions", le delta ou autre.

    Pour avoir travaillé sur la mise en place de la gestion d'un historique, nous avons eu deux grands axes de réflexion. Est-ce que je peux détecter les modifications fonctionnelles ou bien uniquement sur un plan "technique".
    Je précise : Est-ce que j'ai les moyens de dire "L'utilisateur Jean-Paul a modifié la donnée A" (fonctionnel) ou "La table A a été modifiée" (technique). L'avantage de la première solution c'est qu'elle permet de mieux cibler/décrire les modifications, et ensuite de transférer les changements sous formes d'ordre plutôt que de requêtes.

    Ensuite il faut étudier la granularité et le volume. Quelles informations, j'ai besoin de synchroniser et quelles autres ne sont pas nécessaires.

    En fonction des contraintes de "désynchro", on peut partir sur une solution j'exporte toutes les données nécessaires, je les récupère, et je gère moi-même le calcul des différences et la mise à jour des données. Ou alors je fais pas de delta, je fais simplement du "remplacer".
    Dans ce cas, il faut un système d'export/import et un programme qui s'exécute périodiquement. La période étant dépendante du temps de synchronisation qui dépend lui-même du volume de données, des performances du réseau et des machines, etc.

    L'autre solution pour une synchro "temps réel", c'est d'utiliser une façade (JDBC Connection, JPA Session, DAO, etc.), qui transmet les ordres/requêtes aux deux bases de données (soit en direct, soit via un autre système). Ensuite JTA permet de synchroniser les deux pour ne comitter que si les deux transactions sont fiables.

    EDIT: A voir pour créer des discussions dans les forums bases de données, MySQL ou HQL quitte à les locker les référencés ici. Puis dans un deuxième temps si tu penches réellement pour une solution Java, ouvrir une discussion dédiée à ton problème.
    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. Utilisation des WebServices dans SharePoint.
    Par hassine dans le forum Développement Sharepoint
    Réponses: 7
    Dernier message: 01/09/2009, 15h07
  2. Réponses: 3
    Dernier message: 11/02/2008, 16h19
  3. Utiliser des webservices avec nusoap
    Par budiste dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2006, 11h56
  4. Peut on utiliser des Webservices WinDEV avec PHP ?
    Par budiste dans le forum WebDev
    Réponses: 8
    Dernier message: 30/03/2006, 11h56
  5. utilisation des webservices en vb6
    Par Amri_Daly dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/01/2006, 10h50

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