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