диаграмма последовательности процесса снятия денег в банкомате(Прочитано 36241 раз)
Уважаемые корифеи, покритикуйте пожалуйста диаграмму. Спасибо.



Во-первых, в реальности процесс выглядит совсем не так.

Банкоматы всегда проверяют ПИН в режиме онлайн (то есть отсылают его на хост, а не спрашивают у карты, верный ли он). Участник "карта" при этом вообще выпадает из сценария.

Банкомат не обращается к хосту несколько раз для проверки суммы и "блокировок", это делается одним запросом. А хост уже сообщает результат всех необходимых проверок в коде ответа (этих кодов там несколько десятков). Но зачем вообще описывать эти детали, которые зависят от конкретного протокола взаимодействия банкомата с хостом? Возможно, вам дали какой-то учебный сценарий, описанный текстом? Тогда нужно приложить и его, чтобы было с чем сравнивать.


Во-вторых, что понимается под возвратом "меню"? Что в меню входит и почему оно является возвратом на сообщение "ввести пин"?
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).

Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.



В дополнение.

1. Я бы разделил активности (столбики) по отдельным операциям. Например, первая же операция у клиента (вводи пина) должна закончится передачей пина. А у банкомата, соответственно, начаться. И закончится передачей доступных опций (примечание: а доступные опции таки зависят от того, чью карту в него засунули). Вторая активность клиента начнется получением "меню", и завершится отправкой введенной суммы.
А у банкомата вообще все - одна сплошная активность. Это непорядок.

2. По-моему, клиент забыл:
а) сунуть карту;
б) забрать наличные.



Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.

Банкомат лучше разбить на две системы: пин клавиатуру и прочее.
Между банкоматом и процессингом банка еще что-то должно быть. Ну банкомат то необязательно этого же банка.
HSM еще добавьте.

Но начать лучше с того, как пользователь взаимодействует с банкоматом. Подойдите к реальному банкомату и последовательно запишите сценарий. Включая вставку карты и забор чека.
Сергей Мартыненко
http://martyinenko-sergey1.moikrug.ru/



Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).

Тогда лучше не фантазировать о том, что происходит в невидимой системе, а описать видимый сценарий взаимодействия пользователя с банкоматом. Банк можно оставить для единственной операции "авторизация" (или "проверка запроса"), чтобы показать, что банкомат не принимает решения о выдаче наличных, а пересылает его в банк.

Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.

Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

А ещё надо не забыть вставить карту (и вынуть её).
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.

Выдача наличных по картам EMV всегда выполняется с онлайн проверкой ПИНа. Я точно не знаю, чьё это требование - скорее всего, платёжных систем.
Есть ещё карты типа электронного кошелька (были такие Сберкарта и Золотая Корона - возможно, и где-то и сейчас ещё живы). В этих системах ПИН проверяет карта. Но в этом случае нет авторизации в банке.

Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором).

В зависимости от вида операции и суммы, могут выбираться разные методы, а также их комбинации (теоретически можно заставить пользователя два раза ввести ПИН и ещё расписаться на чеке, хотя в реальной жизни это вряд ли имеет смысл). При этом учитываются и правила, записанные на карте, и возможности терминала.

Для операции "выдача наличных" всегда прописывается правило "онлайн пин". Я за всё время работы с картами EMV ни разу не видел исключений.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН
...
* Банкомат передает финансовую операцию с присланным HSM-ом случайным числом карте на подпись
* Карта подписывает дайджест операции при помощи ключа, счетчика и случайного числа
* Карта отправляет сообщение с подписью
...
* HSM валидирует подпись

онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.


> Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором

Угу. И еще примерно с десяток способов... Из экзотики - проверка отпечатка пальца, проводимая картой...


Сергей Мартыненко
http://martyinenko-sergey1.moikrug.ru/



Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН

онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.


Нет, в случае с онлайн верификацией ПИН-блок полностью формируется ПИН-клавиатурой. Карта в этом процессе вообще не участвует.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Спасибо всем за комментарии.



Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно :-\



Цитировать
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно



Тогда с учетом общей критики наверное так :-\



Тогда с учетом общей критики наверное так :-\
Не плохо!



Тогда с учетом общей критики наверное так :-\
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так. Некоторую странность  диаграммы можно усмотреть в том, что заканчивается она двумя возвратами на один и тот же call. Разумно было бы либо делать один возврат, либо вообще не моделировать взаимодействие с экземпляром действующего лица сообщениями типа call и reply. И финальная рекомендация. Ради Марса, не рисуйте экзекьюшн спецификации на диаграммах последовательности. Их отсутствие почти всегда ни на что не влияет, а присутствие, как правило, провоцирует нарушения стандарта.
[...и улетело НЛО.]




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19