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 Discussion :

synchronisation entre 2 base de données sql via un web servicesur .net en c#


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut synchronisation entre 2 base de données sql via un web servicesur .net en c#
    bonjour,
    Je suis débutant dans les web services,
    je cherche une solution ou un code pour synchroniser 2 bases de données SQl qui ne se trouvent pas sur le même réseau via un web service.
    Mon environnement de travail est .net et mon langage est c#.

    Autrement dit,pour mettre à jour une base de donnée sql locale a partir d'une base de donnée externe via un web service.


    Est-ce que vous avez d'idées ou des tutou..?
    Cordialement,
    toga222

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Réplication dans les 2 sens ou maitre-esclave ?
    Schéma de la base ? Quantité théorique d'éléments à chaque MAJ (nombre et poids) ? Fréquence de mise à jour ?

    Tu as envisagé une réplication ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Arnard Voir le message
    Réplication dans les 2 sens ou maitre-esclave ?
    Schéma de la base ? Quantité théorique d'éléments à chaque MAJ (nombre et poids) ? Fréquence de mise à jour ?

    Tu as envisagé une réplication ?
    1- replication dans un seule sens:de la base de donné externe vers la base de donnéé interne.
    pour le shéma de la base,il s'agit de la table stock qui se trouve dans l'usine(id config INT,idsite INT,id quantite INT) avec une table configuration(idconfig int)
    et une table site(idsite INT) qui sont relié entre elles par des clés secondaire.
    c'est tout ce qu'il me faut comme table pour l'instant.
    et dans la base interne(application.net) j'ai les même tables ,quand on modifie la base dans l'usine ,il faut que le web service mette à jour la base interne.
    , il faut que le web service se déclenche et mette à jour tout les 1 heures si c'est possible..
    J'espère que j'étais claire

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    2 possibilités :

    * Stocker chacune des requêtes SQL, envoyer régulièrement à ton service web lesdites requêtes pour les jouer sur le 2e serveur. ceci a l'avantage de permettre de gérer simplement les Delete.
    Positif : système simple.
    Négatif : Si par contre tu modifies 10 fois l'entité, ça entraine 10 requêtes à transmettre.


    * Stocker les données ajoutées/modifiées dans des tables temp (tu joues donc 2 fois les requêtes, sachant que dans le 2e cas, il s'agit de déterminer si insert ou update) (avec une case en plus pour signaler les éléments supprimés).

    Ensuite, tu traites chacun des enregistrement pour en faire un objet à transmettre, accompagné de l'état Delete ou non, et laisser la responsabilité à ta couche service de vérifier s'il s'agit d'un ajout/update/delete (donc 1 requête au préalable pour savoir si l'item existe déjà ou non, afin de savoir s'il s'agit d'un update ou insert. SQL Server 2008 intègre le MERGE, qui économise cette opération, cela correspond à un update OR insert). U

    Une fois le transfert effctué, tu purges ta table (il faut donc un verrou/un buffer d'attente lors du processus de maj)

    Potentiellement tu gagnes en temps, car tu ne transfères que le dernier état de ton objet. Par contre le traitement est plus complexe., A charge de ton client d'appeler ton serveur toutes les heures.



    jette un œil quand même à la réplication de fusion via web service, ça peut sans doute te faire gagner du temps : http://msdn.microsoft.com/fr-fr/library/ms151763.aspx

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    merci arnaud pour ta réponse, mais au niveau technique, je trouve des difficultés pour coder tout ce que tu m'as dit.
    Personnellement je ne suis pas capable de réaliser tout ca.
    Est ce que tu as un exemple ou un tuto pour que je puisse avancer?
    Cordialement,

    Toga222

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Pas de tuto sous la main pour ce genre de cas, mais jette un œil à mon lien, ça peut sans doute te simplifier la vie !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    merci encore une fois .

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Mon problème, n'est pas toujours résolu,
    Si vous avez un tuto (exemple détaillé) merci de me l'indiquer.
    Toga222

Discussions similaires

  1. Synchronisation entre 2 bases de données
    Par Eleanor dans le forum Administration
    Réponses: 1
    Dernier message: 09/05/2012, 09h47
  2. Synchronisation entre deux bases de données
    Par kimTunisia dans le forum Administration
    Réponses: 0
    Dernier message: 30/07/2011, 11h05
  3. Synchronisation entre 2 bases de données
    Par xzor- dans le forum Administration
    Réponses: 3
    Dernier message: 09/07/2008, 09h40
  4. Synchronisation entre 2 bases de données Oracle
    Par EdalK dans le forum Outils
    Réponses: 4
    Dernier message: 18/06/2008, 09h41
  5. synchronisation entre deux bases de données via un webService
    Par débutant_C# dans le forum Services Web
    Réponses: 3
    Dernier message: 09/05/2008, 23h19

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