Pull to refresh
0
Честный ЗНАК
Честный ЗНАК – единая система маркировки товаров

Проверяйте качество, не отходя от кассы

Reading time 6 min
Views 14K


Чем доступнее средства производства, тем острее проблема подделок. А уж если продукт массовый и легко подделываемый, то волна контрафакта практически гарантирована. Для борьбы с этой напастью мы — Центр развития перспективных технологий — разрабатываем систему маркировки и прослеживания товаров. Она получила название Честный ЗНАК. Производитель наносит на каждую единицу своей продукции уникальный код DataMatrix, а покупатели могут по этому коду посмотреть, настоящий ли перед ним товар, кто его произвёл и как он попал на прилавок.

Этим вводным постом в нашем блоге мы хотим познакомить вас с системой и принципами её работы, а в следующих статьях подробнее опишем техническое устройство и особенности разработки.

Кто мы и чем занимаемся


Мы — компания ЦРПТ, Центр развития перспективных технологий. Одним из направлений нашей деятельности является разработка, внедрение и развитие цифровой системы маркировки и прослеживания любых товаров. Она нужна для того, чтобы каждый покупатель мог прямо в магазине убедиться наверняка, не подделка ли перед ним.

Сегодня к нашей базе данных подключены российские производители сигарет, обуви, лекарств. Пока что самыми активными пользователями являются представители табачной отрасли – по этой группе уже началась обязательная маркировка всей производимой в стране и импортируемой продукции. Уже сейчас через систему проходит до 50 млн пачек в сутки. Также активно присоединяются лёгкая промышленность, производители молока, покрышек, фотоаппаратов и другие отрасли, которые пока отрабатывают технологию в режиме «пилотирования».

Как работает система маркировки


Правительство РФ принимает решение о необходимости проведения пилотного проекта по маркировке в какой-то группе товаров. Обычно это решение появляется по инициативе представителей бизнеса. Мы запускаем пилотный проект, внутри которого производители выбирают удобный для них формат маркировки и дополнительную информацию для каждой единицы товара, которая будет помещаться в базу данных и зашифровываться в уникальных кодах маркировки — DataMatrix. Эта дополнительная информация может быть самой разной – например, рекомендованная розничная цена или срок годности. Затем производители внедряют у себя ПО, которое позволяет проставлять DataMatrix на упаковках, а мы, как оператор системы, выдаем им бесплатное оборудование — регистраторы эмиссии, которые нужны для передачи цифровых кодов по защищенным каналам связи.

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

По мере перемещения товара от производителя на прилавки все участники цепочки присылают в Честный ЗНАК различную информацию:



В результате мы собираем всю информацию о происхождении и движении каждого изделия, произведённого участниками системы, и предоставляем её производителям, ритейлерам и покупателям. Когда вы приходите в магазин, перед прилавком можете зайти в мобильное приложение Честный ЗНАК (AppStore, Google Play), просканировать код на упаковке и сразу узнать страну, город и адрес производства. То есть сразу узнаете, подделка перед вами или нет.

Наверняка вы спросите: «А что мешает подделать ваши коды?» Дело в том, что каждый код маркировки подписывается небольшой защищенной частью, криптокодом. И поддельный код просто не пройдёт проверку в системе, ни при нанесении, ни при сканировании покупателем, ни на кассе.

Откуда берутся коды? Есть два способа их получения:

  • Либо мы сами целиком генерируем уникальные невоспроизводимые коды и предоставляем их производителям.
  • Либо производитель выпускает серийную часть кода самостоятельно, чтобы было удобнее использовать маркировку со своими учетными системами, и добавляет сгенерированную нами криптографическую часть.

Как устроена наша система


Принципиальная схема работы выглядит так:



Она включает пять блоков.

«Входными воротами» в систему является роутинг — своеобразный шлюз. Сюда поступает вся информация от каждого участника торговой цепочки: производителей, оптовиков и розницы. Роутинг обогащает поступающие данные дополнительными атрибутами и решает, по какому конвейеру должна пройти обработка той или иной информации.

Процессинг занимается обработкой всей входящей информации, профильтрованной и обогащённой роутингом. Каждая отрасль отличается своими наборами бизнес-процессов, которые мы постоянно автоматизируем. Например, у табака это акцизы, у молока — срок годности.

Система хранения построена поверх распределенной key-value базы. Туда мы помещаем всю информацию о каждом поле маркировки, о каждом документе, который повлиял на изменение статуса этого кода. У каждой крупной товарной группы своя база, потому что объём информации, которую необходимо резервировать и масштабировать, очень велик.

Хранилище данных мы используем по-разному: делаем выборки, формируем графическое отображение информации в личном кабинете, отдаём участникам системы по внешнему API.

Системные компоненты выполняют целый ряд задач: аутентификацию, авторизацию, межсервисное взаимодействие. Иными словами, всё, что связано с проверкой прав доступа и взаимодействием компонентов системы между собой.

Наконец, личный кабинет — это графический интерфейс для участников системы: производителей, оптовиков и розничных организаций. То есть для компаний, которые занимаются сбытом, выводом из оборота и продажей конечному потребителю. В личном кабинете в удобном виде генерируются отчёты и графики о том, сколько кодов прислала компания, за какой период, по каким товарным категориям, сколько товаров уже реализовано в рознице и так далее.

Как информация проходит по системе?


Производитель генерирует партию кодов и присылает нам или создаёт заказ на получение кодов. В ответ мы присылаем либо результаты проверки кодов по шаблонам, либо список готовых кодов. После этого производитель наносит эти коды и сообщает, что они были использованы или утрачены в процессе производства, то есть товар с кодом отбракован. Эта информация передаётся из роутинга в процессинг, который напрямую взаимодействует с хранилищем данных. Также с ним работают личные кабинеты, в которых зашита бизнес-логика для участников системы.

Иными словами, мы получаем от участников данные:

  • какие коды нанесены на товары,
  • какую дополнительную информацию о товаре нужно показывать конечным пользователям.

Далее мы агрегируем эти данные, обеспечивая уникальность и защищённость кодов от подделки, и в удобном виде предоставляем всем пользователям через мобильные приложения. А представители бизнеса в любой момент могут получить отчёты по всей имеющейся в нашей системе информации об их товарах.

Технологии


Поскольку мы создаём национальную систему маркировки, то она будет ежесуточно «переваривать» информацию обо всех производимых в стране товарах и отдавать десяткам миллионов пользователей. Поэтому мы выбрали такие технологии, которые не только обеспечивают высокую производительность, но и позволят быстро масштабировать систему.

Сегодня мы за секунду обрабатываем до 300 проданных единиц товаров, и примерно с такой же частотой ­– записи о товарах, которые проходят через стадии «выпущен», «нанесён код», «передан от одного участника к другому». По одной только табачной продукции ежемесячно в систему поступает около миллиарда записей, и общий объём информации достигает десятков Тб.

Все сервисы в рамках системы — а их около 250 — развёрнуты на Kubernetes-кластере, поэтому мощность и объём хранилища мы спокойно наращиваем по мере необходимости.

По большей части система написана на Java 11, процессинг — на Scala. Для межсерверного взаимодействия мы выбрали Kafka. Сами коды маркировки хранятся в Hbase, а сопутствующая информация — в PostgreSQL. Код системы мы упаковываем в Docker-контейнеры, доставляем Helm’ом в Kubernetes-кластеры, мониторим Prometheus’ом и следим за здоровьем в Grafana.

К хранилищам данных у нас подключены разработанные нами аналитические серверы, которые строят отчёты для участников системы. Пока что серверы построены на основе Hbase, но мы очень активно экспериментируем с ClickHouse.

Развитие системы


Многие участники ожидают от нас обратную связь — получаем ли мы всю отправляемую информацию, не возникло ли проблем при обработке документа, владеет ли участник системы кодами, которые передает? Такой механизм обратной связи должен быть сквозным, без использования хранилища, чтобы не дублировать информацию и не нагружать дополнительно систему. Поэтому мы будем уходить от промежуточных хранилищ и уже работаем над реализацией сквозных транзакций через роутинг, процессинг и в обратную сторону.

В следующих публикациях мы подробно расскажем, как реализован каждый из пяти архитектурных блоков, о нашей системе, технологиях и людях, которые её создают.

Материал подготовлен при поддержке Дмитрия Полуянова, руководителя группы разработки (Java) ЦРПТ.
Tags:
Hubs:
+5
Comments 102
Comments Comments 102

Articles

Information

Website
www.xn--80ajghhoc2aj1c8b.xn--p1ai
Registered
Founded
Employees
501–1,000 employees
Location
Россия