私は、世界中のATMシステムがどのように設計されているかを悩ませています。銀行が世界中で一貫したシステムを設計することはかなり難しいに違いありません。これに結果整合性を使用しますか、それとも優れたACIDシステムを使用しますか?
私はある日スウェーデンにいて、銀行があり、ATMを使用し、飛行機で米国またはタイに行き、数時間後に海外でATMを使用することができます。システムに一貫性がある場合は、世界中のどこにでも非常に信頼性の高い接続が必要です。
私は、世界中のATMシステムがどのように設計されているかを悩ませています。銀行が世界中で一貫したシステムを設計することはかなり難しいに違いありません。これに結果整合性を使用しますか、それとも優れたACIDシステムを使用しますか?
私はある日スウェーデンにいて、銀行があり、ATMを使用し、飛行機で米国またはタイに行き、数時間後に海外でATMを使用することができます。システムに一貫性がある場合は、世界中のどこにでも非常に信頼性の高い接続が必要です。
システムはすべて異なります。多くはPCに基づいています(1つがクラッシュすると、画面にBIOSメッセージが表示されます)。WindowsまたはLinuxを実行しているものもあります(それらのクラッシュイメージが見つかりませんでした...うーん...)。
何が起こるかというと、あなたのクレジットカードが共通の鍵です。それらのシステムはすべてそれを読み取り、それが有効であることを確認できます。それから、彼らはあなたに彼らのお金のいくらかを与えます。
最終的に、システムはそのすべてのデータを収集し、カードを発行した会社に送信します。これは、オンラインでもオフラインでもかまいません。アカウントは更新され、しばらくすると、会社は銀行に払い戻しを行います。
ATMから出金すると、使用するATMに関係なく、取引は最終的に自分の銀行(発行者と呼ばれます)によって承認されます。ATMを所有する金融機関はアクワイアラーと呼ばれます。発行者と取得者の間には、MastercardやVisaなどの交換ゲートウェイが1つ以上存在する可能性があります。
トランザクションが単一の国内でルーティングされている場合(たとえば、発行者と取得者の両方がスウェーデンにある場合)、インターチェンジゲートウェイはローカルにすることができます。両方が異なる国にある場合は、インターチェンジゲートウェイも含まれる可能性があります。
トランザクションがインターネット上で発生する場合、ほぼ同様のシステムが使用されます。
ちなみに、ATMで利用できる開発環境に興味があるかもしれません。