La sincronizzazione collaborativa UDP peer-to-peer è possibile?

-1

Sto sviluppando un'applicazione Android in cui vogliono tenere traccia di vitali di più pazienti (corrente HR, SPO2, Respirazione, ecc.) in tempo reale con ogni paziente con una forma estesa che rappresenta la loro documentazione. Vogliono che questo venga inviato su una rete UDP peer-to-peer, in modo che altre persone possano modificare la stessa documentazione sull'app sulla stessa rete locale. Vogliono che anche le persone possano entrare e uscire dalla rete. Infine, vogliono che le persone siano in grado di collaborare senza sincronizzare i problemi.

Nonostante la mia spinta per un server centrale sulla rete locale e / o sul TCP, non me lo permettono di farlo a causa del processo di configurazione del server che spetterebbe agli utenti.

Dal momento che non posso inviare l'intero stato di un client, ho pensato che avrei dovuto inviare comandi che rappresentassero le modifiche che ogni client fa e poi trasmetterle a tutti gli altri client sulla rete. Non sono troppo sicuro di come gestire un pacchetto che viene eliminato e causa la sincronizzazione dei client. Ho sentito parlare di serrature peer-to-peer, ma non sono sicuro che sia l'approccio giusto.

Esiste un approccio fattibile a un problema così complesso?

    
posta Ateh 22.11.2017 - 00:37
fonte

2 risposte

1

Penso che il tuo problema fondamentale qui sia che stai mescolando i requisiti utente, la progettazione dell'architettura e i dettagli di implementazione in un unico grande grumo:

  • Applicazione Android [requisito utente]
  • traccia i parametri vitali di più pazienti (corrente HR, SPO2, Respirazione, ecc.) [requisito utente]
  • in tempo reale [requisito utente]
  • ogni paziente ha una forma estesa che rappresenta la loro documentazione. [requisito utente]
  • peer-to-peer [architettura]
  • UDP [implementazione]
  • in modo che altre persone possano modificare la stessa documentazione sull'app sulla stessa rete locale. [requisito utente]
  • Vogliono che anche le persone possano entrare e uscire dalla rete. [requisito utente]
  • collabora senza sincronizzare i problemi [requisito]
  • processo di impostazione del server che corrisponderebbe agli utenti [requisito utente]

Nessun elemento etichettato [requisito utente] impone un'architettura peer-to-peer né un'implementazione UDP.

In effetti, molti dei requisiti rendono estremamente difficile l'implementazione con un'architettura peer-to-peer e l'implementazione UDP. La sincronizzazione dei dati tra più utenti richiede che una copia master sia conservata da qualcuno. Sembra che l'integrità dei dati sia un requisito qui, e UDP non garantisce la trasmissione dei dati.

Penso che sia necessario eseguire il backup e raccogliere un elenco di requisiti utente che non si tuffino nell'architettura o nei dettagli di implementazione. Quindi progetta un'architettura da quella.

    
risposta data 22.11.2017 - 17:53
fonte
0

Ci sono alcuni problemi reali con questo.

  • Lo stato di chi è autorevole? Due persone cambiano un dato, chi ha ragione? Senza repo centrale e messaggistica asincrona, come decidi chi è arrivato per primo?
  • Come recuperi dai pacchetti persi? Hai intenzione di reinventare TCP?
  • Che cos'è l'autenticazione e la privacy? Tutti i dispositivi si fidano di tutti gli altri? Ti verrà morso se riuscirai a risolvere gli altri problemi.
risposta data 22.11.2017 - 12:20
fonte

Leggi altre domande sui tag