In che modo le transazioni su ATM e le loro banche sono tipicamente sincronizzate?

2

Ci sono punti di errore:

  1. ATM dà i soldi quindi invia una richiesta di detrazione alla propria banca. Cosa succede se la richiesta fallirà? l'utente ha ricevuto i soldi ma il suo account non è stato detratto - fallire .
  2. ATM invia una richiesta di detrazione alla propria banca, la banca deduce il valore, invia una richiesta a ATM, la richiesta fallisce (scompare). l'utente è stato detratto ma non ha ottenuto i suoi soldi - fallito

Chi conosce la soluzione utilizzata nella vita reale?

    
posta arminvanbuuren 13.09.2018 - 00:51
fonte

2 risposte

7

Disclaimer: per la parte seguente, sto dicendo la maggior parte , perché ovviamente non ho esperienza con tutti i sistemi bancari.

Proprio come qualsiasi sistema che deve essere veramente veloce, anche le banche sono alla fine coerenti. Quando stai implementando questo sistema, vuoi davvero che sia online il più possibile. Qualsiasi tempo di inattività possibile danneggerà la tua attività, perché stai ritardando il cliente in qualsiasi situazione si trovi attualmente. E credetemi, il sistema bancario che risponde lentamente è un'esperienza davvero terribile anche per i rivenditori. Fa male a tutti.

Per rimanere il più disponibili e veloci possibile, la maggior parte degli sportelli automatici e / o terminali di carte non verifica il tuo saldo ed elabora la transazione contro il comandante in tempo reale. Con la quantità di transazioni, ciò invaliderebbe il sistema.

I proprietari di banche sanno che la maggior parte delle richieste di prelievo di denaro da ATM o di emissione di una carta di credito avranno successo. Per questo motivo, quando si desidera prelevare denaro da ATM, la macchina esegue il ping del modello di lettura molto veloce e scalabile della banca per controllare molto rapidamente se si dispone della quantità desiderata o meno. Sappi che questo ping è fatto su una replica e quindi potrebbe non essere sincronizzato in tempo reale con il master.

Una volta che il ping è terminato e il tuo stato è verificato, l'ATM rileva che hai effettuato un prelievo e dispensa i soldi. Ogni periodo configurato, l'ATM preleva tutti i prelievi effettuati e li invia alle autorità competenti.

Alcuni ATM potrebbero essere (e di solito sono) più complessi, ricorda alcune informazioni sul tuo account dalla carta, in modo che non debbano eseguire il ping della banca ogni volta. Grazie a ciò, l'ATM da solo di solito ti impedisce di prelevare $ 500 e $ 500 subito dopo quando il tuo account conterrebbe solo ad es. $ 501 - in questo caso il primo prelievo va bene, il secondo no, perché l'ATM ricorda che hai $ 501, hai ritirato $ 500, quindi il tuo equilibrio teorico è $ 1. Ovviamente, se l'ATM è uno dei più scomodi che ping ogni volta l'associazione bancaria, è comunque probabile che la replica risponda con $ 501 anche sul secondo prelievo e anche il secondo prelievo sarà consentito. Ma questo è ancora non un problema.

Poiché in realtà le banche non si preoccupano di andare in un saldo negativo, ammettono anche questi singhiozzi temporanei e implementano un sistema di reporting che notifica agli amministratori e supporto nel caso in cui il saldo di qualcuno diventa negativo. Ciò a sua volta può innescare altri processi, come l'avvio di fatturazione per il tempo di avere un saldo negativo dell'account, ...

Mentre il settore bancario può sembrare molto rigido e sembra che ogni singola operazione debba essere coerente, la disponibilità è un aspetto molto più importante quando si tratta di operazioni bancarie, quindi le banche sono programmate in questo modo.

Per rispondere direttamente alle tue domande:

ATM gives money then send a deduction request to it's bank. What happens, if the request will fail? the user got the money but his account hasn't been deducted - fail.

Per prevenire questo problema, gli ATM sono implementati per registrare sia la richiesta di prelievo (contenente informazioni su quanto vuoi prelevare) sia l'evento sul completamento del ritiro.

Quando viene memorizzato l'evento WithdrawalRequested , lo sportello automatico inizia a darti i soldi. Se muore subito dopo averti dato i soldi ma prima di memorizzare l'evento WithdrawalCompleted , questo non è un problema.

  1. Dopo un riavvio, l'ATM in qualche modo sommerà tutti i prelievi effettuati con successo, sottraendo il valore della somma dalla somma di denaro originale inserita nell'ATM,
  2. L'ATM troverà un'incoerenza, che in realtà manca $ 500, trova tutte le entità senza WithdrawalCompleted evento e se c'è una richiesta incompleta [ATM] la completerà semplicemente.

Annuncio 2. Se l'ATM non è in grado di trovare un ritiro corrispondente, invia un rapporto alle autorità che ciò è accaduto e dovrà essere esaminato.

Ora, se richiedi il prelievo e l'ATM muore prima ancora di registrare l'evento WithdrawalRequested , questo non è un problema, semplicemente non succederà nulla. Ma se lo sportello automatico muore tra la memorizzazione di WithdrawalRequested e in realtà ti dà i soldi, come prima, dopo le misure di riavvio devono essere fatte che la richiesta non è effettivamente inviata alle autorità, ancora una volta verificando lo stato attuale di denaro nell'ATM - in In questo caso, il denaro corrisponderebbe all'importo della somma dei prelievi completati sottratti dall'importo originale dei fondi e la richiesta verrà semplicemente scartata (ancora eventualmente notificando a qualcuno che il problema si è verificato).

ATM send a deduction request to it's bank, bank deduct the value, send a request back to ATM, the request fail (disappear). the user was deducted but hasn't got his money - fail

Questa situazione non accadrà mai poiché gli sportelli automatici non rilasciano il comando prima di erogare i soldi ma dopo.

    
risposta data 13.09.2018 - 21:01
fonte
0

Normalmente, questa non è una transazione tra il cliente e la banca tramite l'ATM, ma piuttosto due transazioni separate, una tra il cliente e l'ATM, l'altra tra l'ATM e la banca. (Nota quando usi la tua carta all'estero, potrebbe non essere nemmeno possibile raggiungere la banca dall'ATM).

Un passaggio in quella transazione potrebbe essere l'ATM che interroga il conto bancario per la copertura. A seconda di dove ti trovi e quando usi lo sportello automatico, questo passaggio potrebbe essere omesso. L'ATM, tuttavia, non ti darà denaro prima che possa memorizzare una transazione temporanea sul suo server (che non è necessariamente "la banca").

Una volta completata la transazione tra cliente e bancomat, l'ATM (o meglio il suo server di banca) invierà semplicemente un messaggio alla banca , deducendo il denaro e confermando la transazione.

Nel caso in cui la transazione temporanea non possa essere conclusa tra l'ATM e il server back-end, (gli stampi ATM o il collegamento dati si interrompe proprio in questo momento), lo sportello automatico si spegnerà, probabilmente mangerà la carta e attenderà che qualcuno lo faccia manualmente intervenire. Questo è semplice, perché è possibile cercare spesso transazioni non terminate (scadute) sul back-end. Se il cliente ha ricevuto o meno i suoi soldi, in questo caso, è qualcosa che solo il registro ATM locale conosce. Se non ci sono prove che tu abbia effettivamente ricevuto i tuoi soldi, la banca deve cancellare questo importo. Nel mio paese, gli sportelli automatici devono generare stampe cartacee locali per la registrazione.

    
risposta data 13.09.2018 - 20:11
fonte

Leggi altre domande sui tag