Semakin terjangkau alat-alat produksi, semakin akut masalah palsu. Dan jika produk tersebut masif dan mudah palsu, maka gelombang pemalsuan hampir dijamin. Untuk mengatasi momok ini, kami, Pusat Pengembangan Teknologi Lanjut, sedang mengembangkan sistem untuk menandai dan melacak produk. Dia mendapat nama
Jujur TANDA . Pabrikan menempatkan kode DataMatrix unik pada setiap unit produknya, dan pelanggan dapat melihat dengan kode ini apakah produk ada di depannya, siapa yang memproduksinya, dan bagaimana mendapatkannya di konter.
Dengan posting pengantar ini di blog kami, kami ingin memperkenalkan Anda dengan sistem dan prinsip-prinsip operasinya, dan dalam artikel berikut kami akan menjelaskan secara lebih rinci struktur teknis dan fitur pengembangan.
Siapa kita dan apa yang kita lakukan
Kami adalah perusahaan
CRPT , Pusat Pengembangan Teknologi Canggih. Salah satu arahan aktivitas kami adalah pengembangan, implementasi, dan pengembangan sistem digital untuk menandai dan melacak barang apa pun. Hal ini diperlukan agar setiap pembeli dapat yakin tepat di toko apakah ada yang palsu di depannya.
Saat ini, produsen rokok, sepatu, dan obat-obatan Rusia terhubung ke database kami. Sejauh ini, pengguna yang paling aktif adalah perwakilan dari industri tembakau - pelabelan wajib untuk semua produk manufaktur dan impor di negara ini telah dimulai dalam grup ini. Sudah melalui sistem melewati hingga 50 juta paket per hari. Industri ringan, produsen susu, ban, kamera, dan industri lain yang masih mengerjakan teknologi dalam mode pilot juga aktif bergabung.
Cara kerja sistem penandaan
Pemerintah Rusia memutuskan perlunya proyek pelabelan pilot pada kelompok barang tertentu. Biasanya keputusan ini muncul atas inisiatif perwakilan bisnis. Kami meluncurkan proyek percontohan, di mana produsen memilih format pelabelan yang nyaman bagi mereka dan informasi tambahan untuk setiap unit barang yang akan ditempatkan dalam database dan dienkripsi dalam kode pelabelan unik - DataMatrix. Informasi tambahan ini bisa sangat berbeda - misalnya, harga eceran yang disarankan atau tanggal kedaluwarsa. Kemudian, produsen memperkenalkan perangkat lunak yang memungkinkan mereka untuk memasukkan DataMatrix pada paket, dan kami, sebagai operator sistem, memberi mereka peralatan gratis - pendaftar emisi, yang diperlukan untuk mengirimkan kode digital melalui saluran komunikasi yang aman.
Sementara proyek percontohan sedang berlangsung, kami membantu peserta menandai dan pertukaran informasi proses. Dan ketika semuanya sudah siap, partisipasi produsen lain dari industri ini dalam sistem kami menjadi wajib.
Saat barang berpindah dari produsen ke rak, semua peserta dalam rantai mengirim berbagai informasi ke TANDA Jujur:

Sebagai hasilnya, kami mengumpulkan semua informasi tentang asal dan pergerakan setiap produk yang diproduksi oleh peserta dalam sistem dan memberikannya kepada produsen, pengecer dan pelanggan. Ketika Anda datang ke toko, di depan konter Anda dapat pergi ke aplikasi seluler SIGN Jujur (
AppStore ,
Google Play ), memindai kode pada paket dan segera mencari tahu negara, kota dan alamat produksi. Artinya, Anda akan langsung tahu apakah yang palsu ada di depan Anda atau tidak.
Tentunya Anda bertanya: "Dan apa yang mencegah kode palsu Anda?" Faktanya adalah bahwa setiap kode penandaan ditandatangani oleh bagian kecil yang dilindungi, sebuah cryptocode. Dan kode palsu tidak akan lulus pemeriksaan dalam sistem, baik selama aplikasi, atau saat memindai oleh pembeli, atau di kasir.
Dari mana kode berasal? Ada dua cara untuk mendapatkannya:
- Atau kita sendiri sepenuhnya menghasilkan kode unik yang tidak dapat direproduksi dan memberikannya kepada produsen.
- Atau, pabrikan mengeluarkan bagian serial dari kode itu sendiri, sehingga lebih nyaman menggunakan penandaan dengan sistem akuntingnya, dan menambahkan bagian kriptografi yang kami hasilkan.
Bagaimana sistem kami bekerja
Skema dasar kerja terlihat seperti ini:

Ini termasuk lima blok.
"Gerbang masuk" ke sistem adalah
perutean - semacam gateway. Semua informasi dari setiap peserta dalam rantai perdagangan datang ke sini: produsen, grosir dan pengecer. Routing memperkaya data yang masuk dengan atribut tambahan dan memutuskan pipa mana yang harus memproses informasi ini atau itu.
Pemrosesan terlibat dalam pemrosesan semua informasi yang masuk, difilter dan diperkaya dengan perutean. Setiap industri dibedakan oleh serangkaian proses bisnisnya, yang secara otomatis kamiotomatiskan. Misalnya, untuk tembakau itu adalah cukai, untuk susu itu adalah tanggal kedaluwarsa.
Sistem penyimpanan dibangun di atas basis nilai kunci yang didistribusikan. Di sana kami menaruh semua informasi tentang setiap bidang pelabelan, tentang setiap dokumen yang memengaruhi perubahan status kode ini. Setiap kelompok produk besar memiliki basisnya sendiri, karena jumlah informasi yang perlu didukung dan ditingkatkan sangat besar.
Kami menggunakan gudang data dengan berbagai cara: kami membuat pilihan, membentuk tampilan grafis informasi di akun pribadi Anda, dan memberikannya kepada para peserta sistem menggunakan API eksternal.
Komponen sistem melakukan sejumlah tugas: otentikasi, otorisasi, interaksi antar-layanan. Dengan kata lain, segala sesuatu yang terkait dengan pemeriksaan hak akses dan interaksi komponen sistem satu sama lain.
Akhirnya,
akun pribadi adalah antarmuka grafis untuk peserta sistem: produsen, grosir dan organisasi ritel. Artinya, untuk perusahaan yang bergerak di bidang penjualan, pensiun dan penjualan ke konsumen akhir. Di akun pribadi Anda, laporan dan grafik dihasilkan dalam bentuk yang mudah pada berapa banyak kode yang dikirim perusahaan, untuk periode apa, untuk kategori produk mana, berapa banyak barang yang telah dijual secara eceran, dan sebagainya.
Bagaimana informasi mengalir melalui sistem?
Pabrikan menghasilkan sejumlah kode dan mengirim kami atau membuat pesanan untuk menerima kode. Sebagai tanggapan, kami mengirim hasil dari memeriksa kode dengan templat, atau daftar kode yang sudah jadi. Setelah itu, pabrikan meletakkan kode-kode ini dan melaporkan bahwa kode-kode itu digunakan atau hilang dalam proses produksi, yaitu barang dengan kode tersebut ditolak. Informasi ini ditransfer dari perutean ke pemrosesan, yang secara langsung berinteraksi dengan gudang data. Juga, akun pribadi bekerja dengannya, di mana logika bisnis untuk peserta sistem dilindungi.
Dengan kata lain, kami menerima data dari peserta:
- kode apa yang diterapkan pada barang,
- Informasi produk tambahan apa yang perlu diperlihatkan kepada pengguna akhir.
Selanjutnya, kami mengumpulkan data ini, memastikan keunikan dan keamanan kode dari pemalsuan, dan dalam bentuk yang nyaman kami menyediakan semua pengguna melalui aplikasi mobile. Dan perwakilan bisnis setiap saat dapat menerima laporan tentang semua informasi tentang produk mereka yang tersedia di sistem kami.
Teknologi
Karena kami menciptakan sistem pelabelan nasional, itu akan "mencerna" informasi setiap hari tentang semua barang yang diproduksi di negara ini dan memberikannya kepada puluhan juta pengguna. Oleh karena itu, kami memilih teknologi yang tidak hanya memberikan kinerja tinggi, tetapi juga memungkinkan kami untuk skala sistem dengan cepat.
Hari ini, kami memproses hingga 300 unit barang yang terjual per detik, dan dengan frekuensi yang kira-kira sama - catatan barang yang melewati tahap "dirilis", "kode", "ditransfer dari satu peserta ke yang lain". Untuk produk tembakau saja, sekitar satu miliar catatan dimasukkan ke dalam sistem setiap bulan, dan jumlah total informasi mencapai puluhan Tb.
Semua layanan dalam sistem - dan ada sekitar 250 di antaranya - dikerahkan di kluster Kubernetes, jadi kami diam-diam meningkatkan kapasitas dan volume penyimpanan seperlunya.
Sebagian besar, sistem ditulis dalam Java 11, dan pemrosesan dalam Scala. Untuk komunikasi interserver, kami memilih Kafka. Kode pelabelan sendiri disimpan dalam Hbase, dan informasi terkait disimpan dalam PostgreSQL. Kami mengemas kode sistem ke dalam wadah Docker, mengirimkan Helm ke kelompok Kubernetes, memantau dengan Prometheus dan memantau kesehatan di Grafana.
Kami telah terhubung ke gudang data server analitis yang dikembangkan oleh kami, yang membuat laporan untuk peserta sistem. Sejauh ini, server dibangun berdasarkan Hbase, tetapi kami sangat aktif bereksperimen dengan ClickHouse.
Pengembangan sistem
Banyak peserta mengharapkan umpan balik dari kami - apakah kami mendapatkan semua informasi yang dikirim, apakah ada masalah dalam pemrosesan dokumen, apakah peserta dalam sistem memiliki kode yang dikirimkan? Mekanisme umpan balik semacam itu harus end-to-end, tanpa menggunakan penyimpanan, agar tidak menggandakan informasi dan tidak menambah sistem. Oleh karena itu, kami akan pindah dari repositori perantara dan sudah bekerja pada implementasi transaksi end-to-end melalui routing, pemrosesan, dan sebaliknya.
Dalam publikasi berikut, kami akan menjelaskan secara rinci bagaimana masing-masing dari lima blok arsitektur diimplementasikan, tentang sistem kami, teknologi dan orang-orang yang membuatnya.
Materi disiapkan dengan dukungan Dmitry Poluyanov, kepala tim pengembangan (Jawa) MDCT.