PultrackBlog
UZ
Hech Kim Gapirmaydigan Sinxronizatsiya Navbati: Oflayn POS Ikkita Kassani Qanday Muvofiqlashtiradi

Hech Kim Gapirmaydigan Sinxronizatsiya Navbati: Oflayn POS Ikkita Kassani Qanday Muvofiqlashtiradi

QisqachaOflayn-birinchi POS endi noyob usul emas, balki standart arxitektura — ammo aksariyat maqolalar faqat "sotuvlar ishlashda davom etadi" degan qismga urg'u berib, do'kon bir vaqtning o'zida ikkita jismoniy kassa (yoki telefon va planshet) ishlatganda, ikkalasi ham oflaynga o'tib, keyin bir xil smenani sinxronlashga urinib ko'rganda nima bo'lishini chetlab o'tadi. Aynan shu muvofiqlashtirish lahzasi — uzilishning o'zi emas — kichik do'konlar pul yoki tizimga ishonchni yo'qotadigan joy hisoblanadi.

Biz Pultrack'ni yaratamiz — bu beqaror elektr ta'minoti, uzuq-yuluq internet va ko'pincha bir tokchada ikkita valyuta bilan ish yuritadigan kichik chakana savdo do'konlari uchun kassa va inventar ilovasi. Shuning uchun "oflayn-birinchi POS" haqidagi muhandislik maqolalari to'lqini tarqalganda, biz ularni arxitektura sxemasi sifatida emas, balki do'kondor nuqtai nazaridan o'qiymiz: seshanba kuni smena o'rtasida internet uzilib qolsa-yu, ikki kishi hali ham xaridorlarni ro'yxatdan o'tkazayotgan bo'lsa, nima bo'ladi?

Oflayn-birinchi mavzusida haqiqatan ham yangi nima bor?

Oflayn-birinchi kassa dizayni haqidagi so'nggi texnik maqolalar bir narsada kelishadi: oflayn ishlash endi tuzatib bo'ladigan chetki holat emas, balki butun tizim uchun boshlang'ich taxmin hisoblanadi.[1] Amaliyotlar bir xil to'plamga yaqinlashadi — qurilmadagi mahalliy ma'lumotlar bazasi (IndexedDB yoki SQLite), kutilayotgan amallar navbati, idempotent sinxronizatsiya API'lari va aloqa tiklanganda ziddiyatlarni hal qilishning qandaydir usuli.[1] Ba'zi kompaniyalar sahifalarida buni texnik tafsilot emas, balki biznes va'dasi sifatida taqdim etishadi: kassa ishlashda davom etadi, demak, internet hamkorlik qilmasa ham do'kon daromad olishda davom etadi.[2] Bu yondashuv foydali va asosan to'g'ri. Ammo ochiq materiallarning deyarli hech biri, ikkita oflayn qurilma qayta ulanganidan so'ng, ular ikkalasi ham bir xil narsani sotganini, bir xil xaridorga pulni qaytarganini yoki bir xil smenani yopganini da'vo qilgan daqiqalarda haqiqatan ham nima bo'lishini — kichik do'konning tizimga keyinchalik ishonishini belgilaydigan qismni — jiddiy o'rganmagan.

Bitta kassali do'kon nega bu muammoga duch keladi?

Muvofiqlashtirish ziddiyatlarini "ko'p do'konli" yoki "korporativ" muammo deb o'ylash oson. Lekin bu unday emas. Oddiy burchak do'koni ham, sotuvni oflayn qayd etishning bir nechta usuli paydo bo'lgan zahoti bu muammoga duch keladi — kassa oldidagi telefon va omborxona yonidagi planshet, kassirning qurilmasi va egasining qurilmasi, yoki hatto elektr uzilishidan keyin sinxronizatsiya jarayonida qayta ishga tushirilgan bitta qurilma. Bularning har biri ishlab chiqarish darajasidagi oflayn-birinchi dizaynlarda ishlatiladigan ma'noda alohida "tugun" hisoblanadi va har biri serverga qayta ulanguncha o'zining mahalliy yozuvlarini navbatga qo'yadi.[1] Arxitektura namunasi bu muammoni sinxronizatsiya navbatlari va idempotent amallar yordamida hal qiladi, shunda bir amalni ikki marta takrorlash tovarni ikki marta hisobdan chiqarib yubormaydi yoki mijozdan ikki marta pul olib qo'ymaydi.[1] Bu to'g'ri muhandislik yechimi. Ammo chakana savdo nuqtai nazaridan savol boshqacha: xuddi bitta jismoniy smena ikkita mahalliy "haqiqiy" voqealar versiyasini yaratganda — masalan, bir qurilmada shu tovarga chegirma qo'llanilgan, boshqasida esa xuddi shu tovar to'liq narxda sotilgan deb qayd etilgan bo'lsa — do'konning kunlik jami qaysi versiyani aks ettiradi va do'kondor buni kassadagi pulni hisoblab bo'lgunga qadar biladimi yoki keyinmi?

"Daromad uzluksizligi" nimani chetda qoldiradi?

Kompaniyalar oflayn imkoniyatlarni tobora ko'proq daromad uzluksizligi nuqtai nazaridan tasvirlashmoqda: internet ishlamay qolgani uchun kassa sotishni to'xtatmaydi.[3] Bu, ayniqsa aloqa uzilishlari kamdan-kam emas, balki odatiy hol bo'lgan bozorlar uchun adolatli va muhim da'vo. Ammo uzilish davomidagi daromad uzluksizligi hikoyaning yarmi, xolos. Ikkinchi yarmi — uzilishdan keyingi muvofiqlashtirish aniqligi: oxir-oqibat asosiy tizimga sinxronlanadigan jami summalar kassa oldida haqiqatda nima bo'lganiga — har bir tovar, har bir valyuta bo'yicha — mos keladimi yoki yo'qmi. Ikki valyutani parallel ishlatadigan do'kon uchun bu masala kamroq emas, balki ko'proq ahamiyatga ega. Bir valyuta kursida mahalliy valyutada qayd etilgan oflayn sotuv, kurs o'zgargandan keyin bir necha soat o'tib sinxronlanganda, tokchadagi narx bilan hisobotlar ko'rsatayotgan narx o'rtasida kichik, ammo real farq paydo bo'ladi. Biz ko'rib chiqqan ochiq oflayn-birinchi maqolalarning hech birida ko'p valyutali muvofiqlashtirish masalasi alohida ko'rib chiqilmagan — bu jimgina o'tkazib yuborilishi emas, balki ochiq aytilishi kerak bo'lgan bo'shliq.

"Mahalliy-birinchi" degani "muvofiqlashtirishga xavfsiz" degani bilan bir xilmi?

Avtomatik ravishda unday emas. Hozirgi oflayn-birinchi materiallardagi kengroq dalil shundan iboratki, kichik savdogarlarga "oflayn rejimli bulutli POS" kerak emas — ularga internet mustaqil talab emas, balki sinxronizatsiya kanali sifatida qaraladigan savdo infratuzilmasi kerak.[4] Bu asosli dizayn tamoyili va aloqani shu tarzda o'ylash to'g'ri. Ammo "mahalliy-birinchi" faqat ma'lumotlar qayerda saqlanishi va qanday qayd etilishini tasvirlaydi; bu o'z-o'zidan ikkita mahalliy haqiqatning bitta to'g'ri smena jamiga birlashishini kafolatlamaydi. Ziddiyatlarni hal qilish mantiqi — oxirgi yozuv g'olib bo'lishi, qo'lda ko'rib chiqish navbatlari, voqealarga asoslangan qayta ijro — bu real murosalarga ega dizayn tanlovi bo'lib, aynan shu qism do'kondorning yopilish vaqtidagi ekrandagi raqamga ishonishi mumkinligini belgilaydi. Amaliyotda "oflaynda ishlay oladigan" tizimni "muvofiqlashtirishga xavfsiz" tizimdan ajratadigan bir nechta amaliy naqshlar:

  • Har bir oflayn tranzaksiya navbatga qo'yilishidan oldin qurilma tomonidan yaratilgan barqaror, noyob identifikatorga ega bo'ladi, shunda qayta ijro yoki dublikat sinxronizatsiya uni hech qachon ikki marta hisoblamaydi.
  • Ziddiyatlar odam ko'rib chiqishi uchun ochiq ko'rinadi — hatto oddiy "bu ikki yozuv bir-biriga to'g'ri kelmayapti, birini tanlang" degan xabar ko'rinishida bo'lsa ham — bu ziddiyat qaysi qurilma oxirgi bo'lib sinxronlanganiga qarab jimgina hal qilinishidan ko'ra afzal.
  • Valyuta va valyuta kursi qiymatlari sotuv paytiga qulflanadi, sinxronizatsiya vaqtida qayta hisoblanmaydi, shunda kechroq sinxronizatsiya smenaning e'lon qilingan qiymatini sezdirmasdan o'zgartirib qo'ymaydi.
  • Smena jami faqat oxirgi ma'lum holatdan emas, balki to'liq voqealar jurnalidan qayta tiklanadi, shunda ko'rib chiqish qaysi qurilma nimani va qachon qayd etganini aniq ko'rsatib bera oladi.

Kichik do'kon buni sotib olishdan oldin qanday baholashi kerak?

Bu mavzu bo'yicha nashr etilgan materiallarning aksariyati mustaqil tekshiruvlar emas, balki kompaniyalarning bloglari, muhandislik amaliyot tavsiflari va mahsulot marketing sahifalari bo'lgani uchun, "oflayn-birinchi" yorlig'ining o'zini kafolat emas, balki marketing atamasi sifatida qabul qilish o'rinli. Asosiy arxitektura — mahalliy saqlash, sinxronizatsiya navbatlari, idempotent API'lar — mahsulotlar orasida haqiqatan ham bir-biriga yaqinlashib bormoqda.[1] Ko'p farq qiladigan va ochiq hujjatlashtirilmaydigan narsa — har bir kompaniya "chalkash o'rta qismni" qanday boshqarishi: ko'p qurilmali ziddiyatlar, sinxronizatsiya kechikishi paytidagi valyuta siljishi va do'kondor bahsli tranzaksiyani jami summaga shunchaki ishonish o'rniga haqiqatan ko'rib, tuzata olishi. Pultrack'da biz muhandislik vaqtining aksariyat qismini aynan shu qismga sarflaymiz, chunki u ishlaganda ko'rinmaydi, ishlamaganda esa qimmatga tushadi: har bir oflayn sotuv o'zining vaqt tamg'asi, qurilma manbasi va qulflangan valyuta kursi bilan birga keladi, va bir-biriga zid yozuvlar bir-birini jimgina bosib yozib yubormasdan, ko'rib chiqish uchun ochiq ko'rinadi. Biz buni oflayn barqarorlik haqida gapirishning ko'proq halol usuli deb hisoblaymiz — nafaqat "u sotishda davom etadi", balki "u keyin ham to'g'ri hisoblashda davom etadi". Agar siz oflayn-birinchi POS variantlarini solishtirayotgan bo'lsangiz, kompaniyaga berish kerak bo'lgan savollar ish vaqti kafolatlari haqida emas. Ular ikkita oflayn qurilma bir vaqtning o'zida qayta ulanganida sizning raqamlaringizga nima bo'lishi haqida bo'lishi kerak.

Ko'p so'raladigan savollar

POS tizimi uchun 'oflayn-birinchi' aslida nimani anglatadi?

Bu ilova har bir tranzaksiya uchun markaziy serverga jonli ulanishni talab qilish o'rniga, standart holatda sotuvlarni qurilmada mahalliy ravishda mahalliy ma'lumotlar bazasi va sinxronizatsiya navbati yordamida qayd etish va qayta ishlash uchun yaratilganini bildiradi. Internet mavjud bo'lganda ma'lumotlarni sinxronlash uchun ishlatiladi, har bir sotuvni tasdiqlash uchun emas.

Faqat bitta kassasi bo'lgan kichik do'konda ham sinxronizatsiya ziddiyatlari bo'lishi mumkinmi?

Ha. Ziddiyatlar bir nechta qurilma yoki seans mustaqil ravishda voqealarni qayd eta oladigan har qanday holatda yuzaga keladi — telefon va planshet, kassir qurilmasi va egasining qurilmasi, yoki hatto elektr uzilishidan keyin sinxronizatsiya jarayonida qayta ishga tushirilgan bitta qurilma. Sotuvlarni oflayn qayd etishning bir nechta usulidan foydalanadigan har qanday do'kon bu muammoga duch kelishi mumkin.

Oflayn-birinchi yondashuv ko'p valyutali aniqlik muammolarini hal qiladimi?

O'z-o'zidan yo'q. Oflayn-birinchi arxitektura sotuvni internetsiz qayd etish mumkinligini hal qiladi; u sinxronlangandan keyin, ayniqsa uzilish davomida kurs o'zgargan bo'lsa, o'sha sotuv qaysi valyuta kursida baholanishi kerakligini avtomatik hal qilmaydi. Bu maxsus dizayn qarorini talab qiladi, masalan, kursni sotuv paytiga qulflab qo'yish.

Do'kon egasi POS ta'minotchisi shunchaki oflayn rejimni emas, balki muvofiqlashtirishni ham yaxshi boshqarayotganini qanday bilishi mumkin?

Ikkita oflayn qurilma bir xil smena uchun bir-biriga zid yozuvlarni sinxronlaganda aniq nima bo'lishini so'rang — tizim ziddiyatni ko'rib chiqish uchun belgilaydimi yoki jimgina bitta versiyani tanlaydimi. Shuningdek, tarixiy valyuta kurslari har bir tranzaksiya bo'yicha saqlanadimi yoki keyinroq qayta hisoblanadimi, deb so'rang.

Hozirgi oflayn-birinchi POS tendensiyasi mustaqil tadqiqotlarga asoslanganmi?

Ko'p hollarda yo'q. Bu mavzu bo'yicha ochiq materiallarning katta qismi mustaqil tadqiqotlar emas, balki kompaniyalarning bloglari, mahsulot sahifalari va muhandislik amaliyot tavsiflaridan iborat, shuning uchun ishonchlilik yoki 'daromad uzluksizligi' haqidagi da'volarni kompaniya nuqtai nazari sifatida qabul qilib, o'z do'koningiz sharoitlariga nisbatan tekshirib ko'rish kerak.

Manbalar

Pultrack'ni sinab ko'ring✈ Telegram