Notifica al client delle modifiche nel database in Java

1

Sto lavorando su un sistema client-server distribuito che usa TCP. Le funzioni del programma consistono nel trasferire denaro a un server dal server, ma anche tra i client, una sorta di MobilePay.

Quando un cliente desidera trasferire denaro a un altro cliente, quel cliente dovrà accettare il trasferimento prima che abbia successo (uno dei requisiti di sistema).

Quindi, il mio problema è che vorrei che il client venisse informato (preferibilmente attraverso una finestra di dialogo) ogni volta che un trasferimento è pronto per essere accettato. Tutti i pagamenti / trasferimenti sono memorizzati in una tabella SQL. Vorrei che il client venisse avvisato quando c'è un pagamento / trasferimento in sospeso nel suo / il suo nome, cioè quando viene aggiunta una nuova riga (con il nome del cliente come destinatario) nella tabella di trasferimento, invece del client che necessita per vedere se ci sono pagamenti in sospeso (come ora).

Qualcuno può aiutarmi a risolvere questo problema?

    
posta user3001642 17.11.2013 - 15:32
fonte

1 risposta

2

Probabilmente ci sono alcuni livelli per questa soluzione. Presumo ovviamente che il client non sia collegato direttamente al database e che ci sia almeno uno o più livelli di applicazione in mezzo. Tra il client e il server delle applicazioni, l'utilizzo di un pub / sottoprotocollo come STOMP di AMQP dovrebbe adattarsi alla fattura.

Trigger le notifiche dal database è un po 'più complicato. La maggior parte degli approcci tendono ad essere specifici del database. Se utilizzi Oracle, puoi impostare la registrazione per notifiche di modifica dei dati e la tua domanda e rispondi all'evento. Molto probabilmente, dovrai trasformare la notifica in un evento aziendale significativo prima di inviare tale notifica al client.

Una versione un po 'meno sexy sarebbe quella di creare una tabella del registro degli eventi che assagia le modifiche alle tabelle di pagamento / trasferimento. Quindi crea un piccolo processo per eseguire il polling di questa tabella e generare eventi quando vengono trovati nuovi dati e quindi creare un messaggio pubblicato sul tuo pub / sottolivello. Non è sexy come qualcosa come il DCN di Oracle, ma funziona.

    
risposta data 17.11.2013 - 16:08
fonte

Leggi altre domande sui tag