
Sinxronlanish paytida nima sodir bo'ladi? Oflayn POS tizimini yo'qqa chiqarishi yoki qutqarishi mumkin bo'lgan yashirin lahza
Biz Pultrack — ikki valyutada ishlaydigan, oflayn-first tarzda faoliyat yurituvchi kichik chakana savdo do'konlari uchun mo'ljallangan POS va ombor hisobi ilovasini yaratamiz, shuning uchun tizim faqat oflayn holatda ishlaydimi degan savol emas, balki u qayta ulanganda nima bo'ladi degan savol ustida ko'proq bosh qotiramiz. Ikkinchi savolga esa loyiq darajada e'tibor berilmayapti.
Nega hamma birdan oflayn-first haqida gapira boshladi?
POS tizimlari arxitekturasi bo'yicha so'nggi maqolalar bir xil fikrga kelmoqda: internetga ulanish bog'liqlik emas, balki sinxronlash qatlami sifatida ko'rilishi kerak. Lokal xotirada saqlash, navbatga qo'yilgan yozuvlar va tarmoq qaytganda avtomatik ravishda moslashtirish endi murakkab qo'shimcha funksiya emas, balki standart yondashuvga aylanmoqda.[1] Elektr va internet ta'minoti barqaror bo'lmagan bozorlardagi do'konlar uchun bu o'zgarish muhim, chunki ulanish uzilganda sotuvni to'xtatib bo'lmaydi.[2] Doimo ta'kidlanadigan farq — "oflaynga chidamli" (yomonlashgan zaxira rejimi) bilan "oflayn-first" o'rtasida, ikkinchisida lokal qurilma asosiy ma'lumot manbai hisoblanadi, bulut esa ikkinchi darajali.[3] Bu farq shunchaki nazariy emas. Uzilishga faqat chidaydigan kassa apparati chegirmalarni bloklashi, katalogning bir qismini yashirishi yoki signal yo'qolganda chekni chop etishdan bosh tortishi mumkin. Haqiqiy oflayn-first dizayn esa narx qoidalarini, ombordagi qoldiqlarni va chek chiqarishni to'liq lokal tarzda saqlaydi, shunda do'kon egasi yaxshi va yomon ulanish kuni o'rtasidagi farqni umuman sezmaydi.[4]
Ulanish qayta tiklanganda aslida nima sodir bo'ladi?
Ishlab chiqaruvchilar bu haqda kamroq gapirishadi, aynan shu qism esa oflayn-first tizim kundalik foydalanishda haqiqatan ham chidamlimi yoki yo'qmi — shuni belgilaydi. Telefon yoki terminal soatlab yoki kunlab oflayn bo'lgandan so'ng qayta ulanganda, u lokal tranzaksiyalar navbatini shu vaqt ichida boshqa qurilmalarda yoki bulutda sodir bo'lgan voqealar bilan moslashtirishi kerak. Yaxshi ishlab chiqilgan tizimlar idempotent API'lardan foydalanadi, shunda tasodifan ikki marta yuborilgan sotuv ikki marta qayd etilmaydi, shuningdek, masalan, ikki xodim bir xil mahsulotning oxirgi donasini ikkita turli kassadan, bir-birining yangilanishini ko'rmasdan sotib yuborgan holatlar uchun ziddiyatlarni hal qilish qoidalarini qo'llaydi.[5] Kichik do'kon uchun bu faraz emas. Wi-Fi'ga ulangan bitta planshet va elektr uzilganda zaxira kassa sifatida ishlatiladigan bitta telefoni bor do'konni tasavvur qiling. Agar ikkalasi ham oflayn holatda bir xil ombordagi mahsulotga sotuv qilsa, kimdir albatta ortiqcha sotib yuboradi — savol faqat shundaki, tizim sinxronlash paytida buni aniq ko'rsatadimi yoki bitta sotuvning ombor tuzatishini boshqasiga sezilmasdan qoplab tashlaydimi. Bunday tizimlarni yaratish tajribasi ma'lum operatsiyalarga (masalan, chop etilgan chekni yakunlashga) ustunlik berish va sinxronlash navbatini shunday loyihalashtirish zarurligini ko'rsatadiki, muhim yozuvlar yo'qolib ketmasin yoki noto'g'ri tartibda bajarilmasin.[6]
"Oflayn-first" degani do'kon xuddi onlaynda ishlagandek ishlaydi deganimi?
Prinsipial jihatdan — ha, va'da shu. Hozirgi mahsulot tavsiflarida ta'riflangan oflayn rejim biznesni to'liq yuritish uchun yetarli bo'lishi kerak, soddalashtirilgan favqulodda rejim emas: to'liq katalogga kirish, narx va chegirma qoidalari, chek chop etish va omborni yangilash — bularning barchasi lokal tarzda ishlashi kutiladi.[3] Amalda esa bu oflayn rejimning to'liqligi ishlab chiqaruvchidan ishlab chiqaruvchiga va "ombor yangilanishi" aslida nimani anglatishiga qarab juda farq qiladi. Tizim haqiqatan ham do'kon uchun mustaqil ishlashidan oldin so'rash lozim bo'lgan bir necha savollar:
- Oflayn rejim sizning to'liq narxlar ro'yxati va chegirma qoidalaringizni qo'llab-quvvatlaydimi, yoki faqat keshda saqlangan qisman ma'lumotlarnimi?
- U hech qanday tarmoqsiz, barcha zarur soliq maydonlari bilan to'g'ri chek chop eta oladimi?
- Bir vaqtning o'zida alohida-alohida oflayn bo'lib qolgan ikkita qurilmada ombor qoldig'iga nima bo'ladi?
- Sinxronlash jarayoni ziddiyatni hal qilganda buni ko'rsatadigan jurnal yoki bildirishnoma bormi, yoki bu sezilmasdan sodir bo'ladimi?
- Do'kon egasi qaysi sotuvlar "sinxronlanishi kutilmoqda", qaysilari tasdiqlangan ekanini ko'ra oladimi, shunda hisobotlarining vaqtinchalik ekanini bilib turadi?
Bu nima uchun rivojlanayotgan bozorlarda ayniqsa muhim?
Elektr va internet uzilishlari tez-tez bo'ladigan bozorlarda, sinxronlash lahzasi barqaror keng polosali internetga ega bozorlarga qaraganda ancha ko'p ro'y beradi. Har kuni tushdan keyin ikki soatga ulanishini yo'qotadigan do'kon yilda bir marta uchraydigan noodatiy holatga duch kelmaydi — u har kuni sinxronlash jarayoniga to'qnash keladi. Bu esa ziddiyatlarni to'g'ri hal qilishning ahamiyatini oshiradi, chunki kichik xatolar to'planib boradi: har sinxronlashdan keyin bir-ikki donaga farq qiladigan ombor hisobi oxir-oqibat javondagi mahsulot bilan hisobot mos kelmasligiga aylanadi — bu esa aynan do'kon egalarini dasturga ishonchini yo'qotib, yana daftarga qaytishga majbur qiladigan turdagi nomuvofiqlik. Shuni ham ochiq aytish kerakki, oflayn-first POS arxitekturasi bo'yicha hozir e'lon qilinganlarning aksariyati mustaqil tadqiqotlar yoki keng ko'lamli o'rganishlardan emas, balki ishlab chiqaruvchilarning bloglaridan, mahsulot marketingi sahifalaridan va o'z loyihalarini tasvirlayotgan alohida muhandislardan kelib chiqmoqda.[1][4] Arxitektura mantig'i asosli va naqsh — lokal-first saqlash, fon rejimida sinxronlash, idempotent yozuvlar — turli manbalarda izchil, ammo ishonchlilik yoki "to'xtovsiz" uptime haqidagi da'volarni tasdiqlangan natija emas, balki ishlab chiqaruvchi pozitsiyasi sifatida qabul qilish kerak.
Tizim tanlashdan oldin do'kon egasi aslida nimani tekshirishi kerak?
Asosiy naqsh — avval lokal ma'lumotlar bazasi, keyin fon rejimida sinxronlash, chek chop etish kabi muhim vazifalar uchun ziddiyatlarni hal qilish — qanchalik standartlashganini hisobga olsak, mahsulotlar orasidagi farq endi "oflaynda ishlaydimi" emas, balki "qayta onlaynga chiqishni qanchalik silliq boshqaradi" degan savolga aylanmoqda.[6] Pultrack'da biz buni bezak emas, balki asosiy narsa sifatida ko'ramiz: ikki valyutadagi yakuniy summalar, ombor qoldiqlari va cheklar qurilmalar orasida hamda ulanishsiz o'tgan kunlar davomida to'g'ri moslashishi kerak, do'kon egasi esa qaysi sotuvlar hali sinxronlanishi kutilayotganini, qaysilari to'liq tasdiqlanganini oddiy tilda ko'ra olishi kerak. Bu "oflaynda ishlaydi" degandan ko'ra torroq va sinovdan o'tkazish mumkin bo'lgan da'vo, va bizningcha, aynan shu narsa tizim ko'p tushlarda elektr uzilib qoladigan do'konda chidamli bo'lib-bo'lmasligini bashorat qiladi. Har qanday oflayn-first POS tizimini baholayotgan bo'lsangiz — bizniki bo'ladimi yoki boshqa birortasiniki — ataylab ulanishni uzib sinov o'tkazgandan so'ng sinxronlash jurnalini ko'rsatishni so'rang. Ombordagi ziddiyatli yangilanishni aniq qanday hal qilganini ko'rsata oladigan ishlab chiqaruvchi haqiqiy narsani namoyish etmoqda. Sizga faqat "ilova internetsiz ishlaydi" deb aytadigan ishlab chiqaruvchi esa hali eng muhim qismini ko'rsatmagan.