Стрелка — некий аналог московской карты Тройка, действующий в Подмосковье для оплаты проезда в общественном транспорте. При оплате проезда с баланса карты списывается стоимость проезда, баланс можно удаленно пополнять.
Не могу понять, как происходит работа с этой картой с технической точки зрения.
Например, похоже, что у Тройки баланс хранится непосредственно на самой карте, а валидатор в турникете его проверяет и изменяет, сама транзакция проходит в офлайн-режиме. Поэтому, например, при пополнении карты через интернет потом все равно нужно подойти к терминалу в метро и он запишет новый баланс на карту.
У Стрелки же оплата все больше похожа на онлайн-режим:
— у терминалов для оплаты в общественном транспорте есть мобильный интернет,
— обещают мгновенное удаленное пополнение карты через интернет-банки, которое не нужно записывать отдельно на карту (на самом деле оно очень не мгновенное),
— часто терминал при оплате выдает ошибку, кондуктор/водитель пробует провести оплату еще и еще и когда-нибудь она все же срабатывает (это похоже на плохое покрытие мобильного интернета).
При этом часть признаков указывает на то, что полностью онлайн оплата не проводится:
— как минимум, я просто не верю, что реализовали полный онлайн, так как оплата производится непосредственно в автобусах, которые колесят по всей области, так что как-то глупо надеяться на хороший интернет,
— оплата всегда проходит довольно быстро (если проходит, конечно) — не моментально, как в метро, например, но в течение 1-2 секунд (а банковские терминалы в магазинах с действительно онлайн-транзакциями часто зависают на гораздо большее время),
— хоть пополнение счета и анонсировали как моментальное (то есть можно в приложении пополнить баланс и тут же платить), на практике на такое надеяться не следует и оплатить получится только где-то на следующий день, несмотря на то что в приложении баланс отображается сразу,
— в мобильном приложении можно посмотреть историю оплаты проезда и факт проезда там появляется не сразу, а где-то минут через 30 после оплаты.
Может быть, кто-то из присутствующих знает, как изнутри устроена эта система и расскажет?
Сомневаюсь, что там что-то хитрое.
Баланс хранится на карте и в центральной базе, счет связан с уникальным идентификатором карты.
Общественный транспорт на конечных остановках синхронизирует данные центральной базы с валидаторами.
Для хранения базы действительных карт много памяти не нужно - в валидатор помещаются.
Постоянный онлайн не обязателен.
Насколько может быть небольшой база данных карт для такой синхронизации? Сейчас сообщают о 500 000 проданных карт.
Если постоянный онлайн необязателен, то почему основная проблема карт — постоянные ошибки при оплате (кондуктор прикладывает карту к терминалу, тот думает и выдает ошибку, так может быть раз десять подряд).