Replica di più DB su server verso client

di il
4 risposte

Replica di più DB su server verso client

Ciao a Tutti,
sul nostro server raggiungibile in cloud dai nostri utenti abbiamo un applicativo e ogni utente ha il proprio DB, ora vorremmo rendere disponibile il DB sincronizzato anche sul portatile dell'utente in modo che possa utilizzarlo anche off-line.
Sul server il DB è sotto MSSQL 2008 R2 e sui client portatili sarà installato MSSQL 2008 R2 express, ora per gestire la sincronizzazione volevo sfruttare la replica di MSSQL e nello specifico una replica di tipo snapshot o transazionale quella che mi gestisce meglio il traffico poiché non ho esigenze di dover poi rimandare al server le modifiche fatte a livello client anzi vorrei disabilitare questa possibilità. In più per non dover sovraccaricare il server con tutti i DB dei clienti le richieste di sincronizzazione le vorrei gestire in pull da parte dei MSSQL installati sui client.
Ora qualcuno di voi ha messo su un infrastruttura del genere e ha delle note da evidenziarmi in merito? In più a livello di sicurezza?
Che tipologia di sincronizzazione mi suggerite per avere minor traffico tra server e client (non viceversa), io sarei orientato verso la transazionale?

Vi ringrazio per il tempo dedicato.
Ciao

4 Risposte

  • Re: Replica di più DB su server verso client

    I modelli di replica messi a disposizione dal DBMS della Microsoft, NON SONO PENSATI per questo tipo di utilizzo: stai tirando per i cappelli una funzionalita' pensata per altro!

    Sei CONVINTO di quello che stai tentando di fare?
    Al di la' del puro aspetto tecnico, hai fatto una lista dei problemi che il tuo sistema dovrebbe risolvere E potrebbe incontrare?

    Ad esempio:

    - 2 computer - stesso cliente - A e B, allineati con il Server
    - A e' offline e fa delle modifiche
    - B e' offline e fa altre modifiche
    - A va online e' aggiorna il db sul server
    - B va online e' che succede della sua copia locale?
    -- viene sovvrascritta dalla copia sul server OPPURE va a sovvrascrivere la copia sul server?
    --- oppure B e server dovrebbero fare il MERGE delle modifiche?
    --- e se A e B hanno modificato lo stesso record? In caso di CONFLITTI?

    Il sistema NON FUNZIONA in modo miracoloso: devi ASSICURARTI che le soluzioni messe in atto dal meccanismo scelto SODDISFINO le regole previste per la tua applicazione

    Vista in un'altro modo, visto quello che hai scritto (perche' piu' lo leggo, e meno ci capisco) perche' il db sta sul VOSTRO server e NON direttamente sulla macchina su cui gira l'applicativo?

    Non lo devi spiegare a me, devi capire se l'architettura che avete messo in piedi abbia senso!
  • Re: Replica di più DB su server verso client

    In azienda abbiamo implementato uno scenario simile, ma per una gestione affidabile è necessario disporre di una connessione Terminal Server.
    Noi utilizziamo un server Citrix (che è un po' più avanzato del terminal server di MS), ovviamente ciò ha un costo maggiore perché necessita, oltre alla licenza del server Citrix) di 2 licenze per utente: 1 Microsoft e 1 Citrix e si aggira intorno ai 400 €.
    L'esigenza è nata dal fatto che i nostri tecnici, che dovendo registrare dati essendo fisicamente dal cliente (all'estero, e comunque fuori sede), a volte si trovano senza una connessione internet e quindi non potendo inserire i dati ON-LINE devono poterli registrare OFF_LINE (in locale).
    Poi, quando avranno la connessione disponibile, li 'invieranno' al server.

    La registrazione è comunque a senso unico, cioè il tecnico registra e invia i dati, ma non può più modificarli OFF-LINE (può solo vederli) mentre quando è ON-LINE li può anche modificare.

    Se ti interessa posso entrare nel dettaglio.
  • Re: Replica di più DB su server verso client

    Ciao a Tutti!
    @Migliorabile leggendo la documentazione è Microsoft stessa

    prospetta uno scenario che corrisponde alla nostra esigenza, in più da quello che ho potuto leggere offre tutti i strumenti per poter implementare logiche di gestione dei conflitti che erano appunto i casi che elencavi.

    Ora nel nostro caso l'utente che usa il software offline potrà solo andare a lavorare sul suo db in locale che non sarà replicato sul DB in cloud.
    Per quella che è la vostra esperienza tutto quello descritto da Microsoft in questi e altri articoli non è molto funzionale a livello pratico?

    @Gibra la tua soluzione è molto simile alla nostra solo che in questo momento stiamo testando il servizio RDS di Microsoft, ora nel tuo caso non mi è chiaro che funzionalità sfrutti per poter sincronizzare il DB in cloud (server su cui ti colleghi con Citrix) con il DB in locale sulle postazioni mobili.
    In più ogni utente avrà a livello server un proprio DB su cui solo lui andrà a lavorare.

    Vi ringrazio per il tempo che mi avete dedicato e le vostre osservazioni.
    Ciao!
  • Re: Replica di più DB su server verso client

    pizio ha scritto:


    @Gibra la tua soluzione è molto simile alla nostra solo che in questo momento stiamo testando il servizio RDS di Microsoft, ora nel tuo caso non mi è chiaro che funzionalità sfrutti per poter sincronizzare il DB in cloud (server su cui ti colleghi con Citrix) con il DB in locale sulle postazioni mobili.
    Semplice, la procedura di aggiornamento del programma ON-LINE esegue le seguenti operazioni :
    1) prende i dati dal DB locale e li trasferisce sul DB server (INSERT)
    2) prepara un nuovo DB vuoto, vi aggiorna in tempo reale le tabelle anagrafiche (clienti, articoli, ecc...)
    3) lo comprime (zip) e lo trasferisce sul pc dell'utente.
    4) al successivo avvio, il programma locale estra il db compresso.
Devi accedere o registrarti per scrivere nel forum
4 risposte