eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plFinanseGrupypl.biznes.bankiw mBank GINĄ PIENIĄDZE!!! "NIE DAMY CI TWOICH PIENIĘDZY!" (z konta)Re: w mBank GINĄ PIENIĄDZE!!! "NIE DAMY CI TWOICH PIENIĘDZY!" (z konta)
  • Data: 2011-04-11 15:39:41
    Temat: Re: w mBank GINĄ PIENIĄDZE!!! "NIE DAMY CI TWOICH PIENIĘDZY!" (z konta)
    Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2011-04-11 13:33, Piotr Gałka wrote:
    > Nie bardzo umiem sobie wyobrazić (każdy ma swoje ograniczenia) jak
    > powinna wyglądać transakcja atomowa w bankomacie.
    > Mógłbyś w paru słowach opisać ?
    > Założenia:
    > 1. Na koncie 500zł.
    > 2. Żona podeszła do bankomatu i chce wypłacić 500zł.
    > 3. Ja się zalogowałem do systemu i chcę przelewem zapłacić za prąd (500zł).
    > P.G.

    A prosze bardzo:

    a) transakcja online za prąd w czasie t1

    b) transakcja w bankomacie w czasie t2

    Przy czym t1 różne od t2 ale dt = |t1-t2| dowolnie małe, np. 1 milisekunda.

    Problem jest czysto akademicki, więc akademickie i rozwiązanie:

    1) t1 > t2

    Bankomat w czasie t2 (wypłata, wpisana kwota, wklepany pin) blokuje na
    czas wypłaty pieniedzy Twoje konto (nie widzisz tego wprost,to
    wewnatrzna blokada w systemie). Zakładając że czas wypłaty pieniędzy
    jest < 30 sekund nie powoduje to strasznego opóźnienia. Milisekunde
    później od t2 składasz zlecenie oplaty za prąd. Ponieważ przez
    najbliższe 30 sekund twoje konto jest blokowane przez transakcje
    bankomatową, wyląduje ono w "kolejce transakcji oczekujących". Gdy
    bankomat zakończy transakcję (wypłacając bądź nie) zwalnia konto i twoja
    transakcja zaczyna być realizowana. O ile jest kasa. Jak nie ma to
    zależy już jak chcialeś: albo się nie zrealizuje, albo zrobi ujemne
    saldo, można to np. konfigurować.

    2) t2 > t1.
    To samo. Tój przelew za prąd blokuje konto na kilkaset milisekund
    niezbędnych do wykonania przelewu. Bankomat w tym czasie oczekuje (te
    kilkaset milisekund) i kiedy przelew zwolni konto bankomat wypłaci albo
    nie w zalezności czy na koncie coś jest.

    W żadnej sytuacji:

    a) nie zostanie zrobiony debet jesli tego nie chcesz

    b) nie zobaczysz szczegółów implementacji tych operacji przez systemy
    bankowe, w szczególności nie bedziesz posiadał konta w stanie
    "niestabilnym" jak autor wątku.

    Operacja wypłaty z konta jest sekcja krytyczną (w/g pojęci informatycznych).

    Blokada konta jest odpowiednikiem mutexu/blokady.

    http://pl.wikipedia.org/wiki/Problem_wzajemnego_wykl
    uczania

    To jest abstrakcyjny problem i nie ma znaczenia czy "zasobem" jest
    element programu komputerowego czy konto. Zasady są niezwykle podobne.

    Oczywiście to teoria. W praktyce mamy to co mamy czyli średniowiecze.
    Sam kiedyś dostalem w łeb tym obecnym gównianym rozwiązaniem i dlatego
    jestem bardzo cięty na wszelkie merytoryczne uzasadnienia "bo tak musi
    być, kurna!, przeciez z dziada pradziada bankowca ...".

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1