NDC: формат стейтов и экранов
Справочная заметка ATM: концептуальный обзор формата строки стейта NDC State Table, Card Read State, FIT, буфер FDK — по независимым открытым источникам.
Обзор
Эта заметка дополняет ATM-NDC-DDC (где уже описаны классы NDC-сообщений — Transaction Request/Reply, Status, State Table Load, Screen Data Load) концептуальным разбором того, как устроена сама строка стейта в NDC State Table.
[!warning] Источник и точность Материал собран по независимым открытым источникам — open-source реализациям NDC ATM-эмулятора и публичным обзорным материалам (см. «Источники» внизу). Точные числовые форматы, диапазоны и позиции параметров не воспроизводятся: полная спецификация NDC/NDC+/Advance NDC — проприетарная документация вендора, недоступная как открытый источник. Описание ниже — концептуальное и может отличаться по версиям NDC; для точных деталей конкретного проекта нужна официальная документация вендора или внутренние материалы банка.
Формат строки стейта (концептуально)
Каждый стейт в State Table описывается типом (один символ) и набором параметров, смысл которых зависит от типа. Типовой стейт включает номер экрана для показа клиенту, стейт перехода при успешном результате и стейт перехода при ошибке. Стейтов одного типа может быть произвольное количество.
Card Read State — пример типового стейта
Стейт, отвечающий за чтение карты, обычно выполняется первым при входе ATM в рабочий режим. Он определяет:
- экран приглашения вставить карту;
- экран ошибки чтения;
- стейт перехода при успешном чтении карты и при ошибке чтения.
FIT — Financial Institution Table
FIT (Financial Institution Table) — локальная (загруженная в ATM) конфигурация, которая после чтения карты определяет, какому банку/эмитенту она принадлежит, и какие параметры обработки применить дальше (например, как трактовать данные карты для этой группы эмитентов).
Открытая реализация FIT-сервиса для NDC-эмулятора подтверждает базовую механику: каждой институции соответствует запись с идентификатором (включая поддержку wildcard-маски при сравнении с номером карты), и при совпадении нескольких записей используется запись с наименьшим индексом.
FIT — это решение, принимаемое локально на ATM, отдельно от финального решения хоста/issuer routing на уровне switch/host (ср. ATM-Процессинг-обзор). Совпадение результата FIT-классификации с финальным решением хоста не гарантировано — FIT влияет только на то, какие экраны/ветки сценария ATM предложит клиенту локально, до отправки запроса на хост.
FDK (Function Defined Keys) и их буфер
Боковые функциональные клавиши (FDK), либо их эмуляция на тач-скрине, при нажатии записывают свой код в отдельный буфер. Последующие стейты — вплоть до отправки запроса на хост — используют содержимое этого буфера, чтобы понять, какой вариант выбрал клиент (например, тип операции или пункт меню).
Close State (общая идея)
Большинство сценариев — и успешные, и ошибочные — обычно сходятся в одном общем «выходном» стейте: он отвечает за отдачу или захват карты и показ финального экрана клиенту. Сам факт перехода в такой стейт не говорит об исходе транзакции — нужен контекст предыдущих стейтов и ответа хоста.
Формат экрана
Экран ATM в NDC — символьная сетка фиксированного размера, которая может содержать текст и/или графику; позиционирование текста задаётся управляющими последовательностями. Загрузка экранов выполняется отдельным классом сообщений Screen Data Load, формат полей которого уже описан в ATM-NDC-DDC.
Связанные заметки
- ATM-NDC-DDC — классы NDC-сообщений, Transaction Request/Reply, Status, общая host-driven архитектура
- ATM-Протоколы-обзор — обзор всех протоколов
- ATM-XFS-CEN — device layer, на который State Table не влияет напрямую
- ATM-Стек-NCR-APTRA-NDC — сценарий внедрения NCR/APTRA/NDC
- ATM-Card-Trapping — риски, связанные с возвратом/захватом карты
- TERM-ndc · TERM-luno · TERM-retract
Источники
- timgabets/atm-fits — открытая реализация парсинга Financial Institution Table для NDC ATM-эмулятора.
- timgabets/atm-states, timgabets/electron-atm — открытая реализация NDC state machine и ATM-эмулятора.
- US20150278785A1 — патент NCR, описывающий общую структуру NDC state table (номер, тип, параметры, экран, следующий стейт) как известный уровень техники.
- «What is NDC+?» — публичный обзорный материал по NDC+/FIT.
Живой сад
Этот текст можно улучшать вместе
Выдели фрагмент в заметке и нажми «Сообщить» — откроется короткая форма с контекстом.
Ниже можно оставить комментарий через Telegram, когда заметка связана с публикацией канала.
Добавь `telegramPostId` в публичную заметку, чтобы здесь появился виджет обсуждения.