В техниках безопасного программирования есть такое понятие, как Race Condition. Перевожу сразу из учебника:
Две инструкции из разных потоков пытаются получить доступ к одним и тем же данным одновременно. Когда разработчик пишет приложение, потоки данных должны быть запрограммированы на последовательный доступ к данным. Сразу приводится пример:
Два футбольных фаната покупают билеты на финал Суперкубка. Когда они приходят на стадион, они обнаруживают, что проданные им билеты одно и то же место. Это большая прибыль для тех, кто продает билеты, но плохая ситуация для тех, кто покупает билеты.
В банковской отрасти это может означать, что нужно отслеживать выполнение распоряжений клиента, исходящих их разных мест. Например, в каждом банке (брокере, страховой компании, и т.д.) есть web-кабинет и мобильное приложение. Разумно сделать контроль сессий клиента, чтобы в единицу времени активной была только 1 сессия. Некоторые банки давно имеют такой контроль, а некоторые нет. Реализации могут быть следующими:
- при открытии второй сессии, пишется ошибка, что сессия клиента уже существует;
- при открытии второй сессии, первая сессия автоматически закрывается.
Этот контроль сделать несложно, так как чаще всего разные виды ДБО для клиентов - это лишь разные интерфейсы, ведущие к общей прикладной части и далее к общей БД.