La progettazione di un programma client / server, domanda di progettazione (Net)

StackOverflow https://stackoverflow.com/questions/776738

  •  13-09-2019
  •  | 
  •  

Domanda

Stiamo progettando un programma client / server e ho bisogno di aiuto con una decisione di progettazione.

Il lato server del programma sarà eseguito come un servizio su un certo numero di server Windows, il servizio sta monitorando questi server, in caso di necessità il servizio via e-mail un report.

Il cliente sarà utilizzato per controllare e gestire i servizi in esecuzione sui server, ma non sarà sempre in esecuzione.

La mia domanda è dove e come posso conservare la configurazione per il servizio. Le impostazioni (SMTP, ecc) saranno definite sul client, ma i servizi in esecuzione su server remoti (ci possono essere molte) devono essere aggiornati con le impostazioni e anche conservare queste impostazioni unitil sono di nuovo gli aggiornamenti.

Mi vengono in mente due opzioni, una centrale di Windows condivisione in cui i servizi di leggere le impostazioni da o quando i successi del cliente 'Salva' le impostazioni vengono salvate in una posizione su ciascun server.

Che cosa faresti? Tutto ciò che dovrei essere a conoscenza?

Grazie

È stato utile?

Soluzione

Non ho esperienza con tali servizi, ma un suggerimento potrebbe essere quello di memorizzare le impostazioni in un database centrale che tutti hanno accesso. Così ogni volta che si crea un nuovo server si crea una nuova voce impostazioni nel database.

Basta gettare questo nella discussione.

Altri suggerimenti

Ho sviluppato un sistema che coinvolge un client e più server. I requisiti per il mio sistema comprendono che sia molto affidabile e altamente disponibile (che non può essere vostre esigenze). Da questo punto di vista, qui ci sono alcune riflessioni:

  • Se si memorizzano le impostazioni in una posizione centrale - sia una condivisione di file o di un database - si è creato un singolo punto di guasto nel sistema distribuito. Una soluzione potrebbe essere quella di memorizzare le impostazioni in 2 o più posizioni centrali. Ma, come si fa a garantire che le posizioni 2 o più sono sincronizzati?)

  • Se il negozio le impostazioni con ogni server, che cosa succede se la comunicazione client / server non riesce con un server nel momento in cui si sta cercando di salvare le impostazioni, o cosa succede se uno dei server non è in alto. Ora avete una situazione in cui i server non sono d'accordo su ciò che le impostazioni siano. Così, ancora una volta, come si fa a garantire che i server multipli sono sincronizzati?

  • Quindi .... pensare a come è possibile mantenere in modo affidabile i server in sincronia, e come possono rilevare quando non sono in sincronia. Nel mio sistema, v'è un sistema di master / slave tra i server, battiti del cuore con i numeri di sequenza in modo che gli schiavi possano costantemente assicurano se stessi che sono in sintonia e non hanno perso un messaggio. Se il master non è attivo, il sistema degrada, ma funziona ancora troppo, in modo che il Maestro non è un singolo punto di guasto catastrofico.

Ci sono certo numero di cose da considerare qui.

La scelta più ovvia è un repository che si tratti del Registro di sistema, file di database alla fine del server. E quando i vostri servizi carichi che si andò a prendere tutte queste impostazioni in una collezione. Tuttavia ciò che accade quando si aggiunge un servizio in più alla fine del server per il monitoraggio diciamo alcuni altri compiti.

Ora sono in problema in quanto se i parametri ricevuti aggiornati nel databse attraverso un server l'altro servizio / s deve essere informato dell'aggiornamento e hanno bisogno reinizializzazione.

È possibile venire su questo con l'introduzione di molti machenism ossia code IPC, memoria condivisa, Bocchetta tra molti dei servizi. Vorrei suggerire Memoria condivisa se i servizi non vengono distribuiti o code su un server centrale o di una banca dati se non è; come opzioni migliori. Tuttavia i servizi deve ancora di collaborare un po 'come dare un suggerimento per altri servizi circa l'updation dei parametri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top