Double parking
Double parking means that someone has parked their car in a certain way that prevents another car from departing. Double parking can happen in different situation:
Double parking on-street
This type of double parking is illegal and you can get fined for it. Double parking on-street means that you park your car parallel to a car that is parked next to the curb. Double parking in this situation means that the car parked next to the curb cannot depart because it is blocked by your car, and often your car also blocks the traffic flow. Unfortunately, double parking on-street is quite common in larger cities. Sometimes the people who double park their car even leave the hand break off so that people can push their car forward or backwards a bit if it blocks them.
Double parking in parking garages with attendees
In this situation, double parking is used to be able to park as many cars as possible in the parking garages. It’s a different situation than on-street, because in this situation the cars are parked by attendees (or valets). The attendee holds on to the keys of all cars. If one needs to get out and it’s block by another car, the attendee simply brings the keys to both cars and moves the car that blocks the other.
Parking on more than one parking space
The term “double parking” is sometimes also used to indicate the situation where a car parks over the lines that separate the parking spaces and therefor taking more than one parking space.
Tadqiqot mavzusining dolzarbligi. Katta shaharlarning aholisi
mashinalar avtotransporti muammosiga duch kelgan. Hatto
ko'p darajali otopark mavjudligi qiyin bo'lishi mumkin
bo'sh joyni toping, chunki haydovchi olish imkoniga ega emas
avtoulovning g'ildiragi orqasidagi zarur ma'lumot.
Avtoulov egalarining hozirgi avlodi etarli darajaga ega
navigatsiya qilish uchun elektron qurilmalar bilan jihozlash
Lekin, mashinalar hali ham ko'r-ko'rona.
Mobil qurilmalardan foydalanish - afzal variant.
Foydalanuvchilarning axborot yordami, ammo barcha avtomobil egalari emas
smartfonlar faol foydalanuvchilaridir. Bunday mijozlar uchun
Ma'lumotni boshqa qulay shaklda taqdim etish kerak.
Keyingi avlod drayvlar aqlli texnologiyalar uchun ko'proq tayyorlanadi,
amalga oshirilishi lozim. To'liq ishlab chiqilgan
avtomashina boshqaruvlari ham mavjud
axborot xavfsizligi parkiga bo'lgan ehtiyoj.
Bu omillarning barchasi kichikdan foydalanishni ko'rsatadi
ingl. WEB-ilovalar tanib olish texnologiyalari bilan birga
tasvirlar turli xil ko'rinishdagi istiqbolli yo'nalishdir
"aqlli" shahardagi komponentlar.
Mavjudligini tahlil qilish tadqiqot mavzusini tanlashga olib keldi:
"Zamonaviy WEB-texnologiyalarni tadbiq etish va tadqiq qilish
"Smart Parking" dasturiy kompleksi. "
Tadqiqot gipotezasi: WEB-dasturlashning zamonaviy texnologiyalaridan foydalanish va ularning tizimga integratsiyalashuvi uchun ishlab chiqilgan yondashuvlar
"Aqlli otopark" "aqlli otopark" veb-dasturining rivojlanish jarayonini sezilarli darajada tezlashtiradi, xizmatlarning mavjudligini oshiradi
mashinalar, hisoblash resurslari narxini kamaytiradi.
Tadqiqotning maqsadi optimal yo'lni topishdir
o'z ichiga olgan aqlli otopark ma'lumot tizimi yaratish
mashinalar joylarini aniqlash uchun asboblar, maslahatlar
avtoparklar mijozlari va WEB-dastur foydalanuvchi interfeysi uchun.
Ushbu maqsadga erishish uchun quyidagilarni hal qilish kerak
vazifalar:
Axborot tizimlari sohasida mavjud echimlar tahlili
"aqlli otopark" ni tashkil etish
Axborot tizimining sxemasini tuzish va uni asoslash
samarali qo'llanishi mumkin
Mavjudligini hisobga olgan holda optimal rivojlanish vositalarini tanlash
kriteriyalar
Joylarni zaxiralash uchun WEB-dasturini ishlab chiqish, sinovdan o'tkazish
mashinalar monitoringi
Iste'mol qilinadigan resurslarni va usullarni yanada optimallashtirish yo'llarini ko'rib chiqing
tizimni yanada kengaytirish
Tadqiqot maqsadi axborot tizimlari sinfidir
mashinalar tizimlarini avtomatlashtirish.
Tadqiqot mavzusi veb-dastur hisoblanadi
avtotexnika shart-sharoitlarini nazorat qilish va monitoring qilish
tanlangan joyga ko'rsatmalar ko'rsatiladi.
Tadqiqot usullari quyidagilardan iborat:
- ma'lumotlarni tahlil qilish, taqqoslash, tizimlashtirish va sintez qilish
ishni avtomatlashtirishning mavjud va ishlab chiqilgan usullari
mashinalar majmualari;
Veb-ilovani yaratishda zamonaviy WEB-texnologiyalarni sinovdan o'tkazish;
- kompyuterda interfeysning ishlashini sinovdan o'tkazish;
11
Texnologiyalarni va yondashuvlarni tahlil qilish va tahlil qilish imkonini beradi
WEB-ilovani optimallashtirish;
Tadqiqotning nazariy asoslari quyidagilardir:
Xorijiy tadqiqot va avtomatlashtirish echimlari
mashinalar komplekslari ishi;
Veb-ilovalarni ishlab chiqish uchun zamonaviy tushunchalar va texnologiyalar;
Zamonaviy WEB dasturlashda ishlatiladigan turli xil ramkalar va kutubxonalar uchun hujjatlar.
Tadqiqotning ilmiy yangiligi va nazariy ahamiyati.
Tadqiqotlar rivojlanish yo'nalishlarini ochib beradi
zamonaviy axborot va WEB texnologiyalari, ilovalar
axborot va WEB texnologiyalarini rivojlantirishga yordam beradi
rossiyaliklar, xususan, haydovchilar kabi qulayliklarga ega.
Axborotning afzalliklari
texnologiyalarni mashinasozlik tizimini rivojlantirish vositasi sifatida namoyon qildi. Bu bilan ko'rsatilgan
Ushbu vositani ishlatish mumkin
ham ichki, ham yopiq mashinalar uchun qulaylik va qulaylik yo'q
unda juda ko'p mablag 'sarflash.
Tadqiqot ma'lumotlardan foydalanishni ko'rsatadi
oqilona mashinalar tizimini an'anaviy mashinalar tizimiga, shu jumladan
xavfsiz va himoyalanmagan otopark, uning yaxlitligini buzmasligi,
navbatda turgan muammolarni hal qilishda salohiyatini ochib berish,
axloq tuzatish va xavfsizlik; va shuningdek, yuksalish
avtotashuvchilarni - haydovchilarni qoniqtirish.
Tadqiqotning amaliy ahamiyati. Tahlil qilindi
Yekaterinburg shahridagi an'anaviy mashinalar tizimi, shuningdek, bir nechta
"aqlli otopark" ning o'xshash analoglari taklif qilingan sxema
mashinalar to'xtash joyida ishlaydigan mashinaning ishlash tartibi va ishlaydigan dastur bilan prototip yaratildi
va apparat.
12
1 Vazifa sozlamalari
Zamonaviy WEB-texnologiyalarni tadqiq etish asosida
Uchta qismdan iborat "Smart Parking" dasturiy kompleksi:
1. WEB-ilovaning buyurtma qiluvchi qismi
mashinalar joylari.
WEB-dasturni amalga oshirish uchun WEB-serverni sinab ko'ring.
3. WEB-ilovasini amalga oshirish uchun ma'lumotlar bazasini testlash.
WEB-ilovasi axborot bo'lishi kerak
foydalanuvchining o'rindiqni masofadan turib yozishiga imkon beruvchi xizmat
foydalanuvchilar bilan do'st grafikaviy WEB interfeysi orqali mashinalar qilish, mashinalar joylarining mavjud holatini aniq ko'rsatmoqda.
Tizim quyidagilarni ta'minlashi kerak:
Bronlash usulini tanlash (avtomatik yoki qo'lda);
- avtoulovlarning mavjud joylarini hozirgi holatda ko'rish;
- eng yaqin mashinalar joylarini avtomatik ravishda qo'riqlash
ma'lumotlar bazasiga tegishli ma'lumotlarni yozish;
Avtoturargohni qo'l bilan zaxiralash, ya'ni.
holatini istagan mashinalar joyiga bosish orqali amalga oshiriladi
"bepul" deb ta'kidlangan;
Avtotransport foydalanuvchisi tomonidan qo'shimcha rezervlashni taqiqlash
joylar
Ma'lumotlar bazasida mashinalar joylari to'plami bo'lishi kerak
mashinalar identifikatorlari va ularning joriy holati (band yoki
bepul).
13
2 zamonaviy WEB texnologiyalarini o'rganish
21 WEB dastur texnologiyasi stakasining tavsifi
Veb-ilovalarni ishlab chiqishda ishlatiladigan texnologiyalar to'plami,
talab qilinadigan ramkalar va kutubxonalarni o'z ichiga oladi
samarali, tezkor rivojlanish va minimal hajmda foydalanish imkonini beradi
ma'lumotlar va cheklangan tizim talablari WEB-ilovasini "Smart Parking" xizmatining qolgan qismlari bilan ko'rish uchun integratsiya qilish
real vaqtda WEB-interfeysdagi ma'lumotlar.
2.1.1 JavaScript-lar kutubxonalari
Asosiy JavaScript-dagi kutubxona va ramkalarni ko'rib chiqing,
zamonaviy WEB dasturlashda ishlatiladi. [1] da
ularning ishlash ko'rsatkichlarini taqqoslashni ko'rsatadi (1-rasmga muvofiq)
Google Chrome 48 brauzeri, bu holda, 1000ni yaratish
sahifani yuklaganidan so'ng satrlar ("1000 satrlarni yaratish"), 1000ni yangilash
jadvalning satrlari "isitish" JavaScript-ni dvigatelining 5 ta takrorlanishidan keyin ("update
1000 ta satr (issiq) "), 5 ta yinelardan keyin jadvaldagi satrlarni qisman yangilash
JavaScript-ni mexanizmini "isitish" (10-sonning oxiriga nuqta qo'shing)
satrlar, "qisman yangilash"), "isitish"
JavaScript-ni mexanizmi (ingl. Satr tanlash, "qatorni tanlash"), o'chirish
JavaScript dvigatelini "isitish" ning 5 ta takrorlanishidan keyin qatorlar ("qatorni olib tashlash"). As
rasmda ko'rsatilgan histogramdan ko'rinadi. 1, kutubxona o'zini yaxshi ko'rsatadi
VueJS, jadvaldagi satrlarni yangilashdan tashqari. WEB-interfeysi "Smart
Park "real vaqt rejimida ma'lumotlarni vizual yangilashni o'z ichiga oladi,
va mashinalar joylarini namoyish qilish uchun ingl. "substrat" yaratish
u faqat bir marta yaratilgan, shuning uchun kutubxonani tanlash kerak
ma'lumotlar yangilanishi bilan samarali bo'ladi va yaxshi ketadi
mijozlarni yo'naltirishni amalga oshirish. Ushbu kutubxona ReactJS.
React - odatiy holga keltirish uchun Facebook va Instagram tomonidan ishlab chiqilgan ochiq manba kodli JavaScript-ni
interfeyslar. Ko'pchilik React foydalanuvchilari uni View deb hisoblashadi.
MVC mafkurasida. React katta muammolarni hal qilish uchun mo'ljallangan:
katta o'zgaruvchan ma'lumotlar ilovalarini yozish
vaqt.
React yaratish uchun JavaScript-ni kutubxona
foydalanuvchi interfeysi. Reakt elementlarni ta'riflashga imkon beradi, ya'ni.
deklarativ hisoblanadi. Ushbu texnologiyadan foydalansangiz bo'ladi
qiyinchiliksiz interaktiv foydalanuvchi interfeyslarini yaratadi.
Ishlab chiquvchi har bir kishi uchun oddiy ko'rinishlarni yaratishi mumkin
kelajakdagi WEB ilovalari va React samarali va
faqat shu komponentlarni yangilash va qayta ishlash
ma'lumotlar o'zgarishlariga ta'sir ko'rsatdi. Deklarativ qarashlar
kod bajarilganda yanada aniqroq va disk raskadrovka paytida yanada qulayroq bo'ladi.
Ishlab chiquvchi shuningdek, ixchamlashgan komponentlarni ham yaratishi mumkin.
o'z ahvolini boshqaradigan va keyin ularni bog'laydigan
Keyinchalik foydalanish va kompleks birikma hosil qilish
foydalanuvchi interfeysi. Hisoblagich mantiqiy yozilgandan beri
Andoza tilida emas, balki Javascript, dasturchi osongina mumkin
15
kompleks struktura bilan yetarlicha katta ma'lumotlar to'plamini uzatish
davlatni DOMdan tashqarida saqlash [2].
Ushbu ramkadan foydalanish natijasida paydo bo'ladi
mijozga (masalan, veb-brauzer) birdaniga yuklab olish qobiliyati
mumkin "topshirishlar". Ya'ni, har bir foydalanuvchi uchun amal qiladi
WEB mijozi tegishli grafik WEB vakolatxonasini topadi
serverda faqat ma'lumotlardagi o'zgarishlarni (masalan,
monitoringdagi va boshqa har qanday raqamli ma'lumotlar
ma'lumotni qulay shaklda, masalan, JSON). Ushbu yondashuv tufayli,
WEB mijozidagi sahifani dastlabki yuklashda nisbatan yuklanadi
katta fayl (katta WEB-xizmatlar uchun taxminan 200-300 KB), lekin
joriy sessiyada qo'shimcha so'rovlar, foydalanuvchi 1B dan ~ ga ko'tarilgan
2-3 KB (o'zgargan ma'lumotlarning hajmiga qarab) ekranda
faqat o'zgartirilgan qism qayta ishlanmoqda, bu esa yuklash vaqtini tejaydi
talab qilinadigan yuborish va foydalanuvchi Internet resurslari. Natijada
WEB xizmatining yuqori tezligi bor, u yaxshilanadi
interfeysning javob berishi, sahifalar orasidagi o'tishni tezlashtiradi
mijozlar marshruti va shablon interfeysi sezilarli darajada soddalashtiradi
WEB-ilovasining mijoz qismini to'ldirish.
Reakt komponentlar kontseptsiyasiga asoslangan. Ulardan farqli o'laroq
Ikki tomonlama usulda ishlatiladigan burchakli yoki yupqa burchak kabi ramkalar
HTML-sahifani yangilash uchun ma'lumotlar ulash. Ko'pchilikning ko'z o'ngida
oldingi ishlab chiquvchilar [3], reaktsiyalar burchakka yoki o'rganishdan ko'ra osonroqdir
Ember - bu juda kichik va jQuery va boshqalar bilan yaxshi ishlaydi.
ramkalar. U juda tez foydalanadi
virtual dom va yangilanishlar faqat sahifa qismlarini o'zgartirdi
(DOMga murojaat qilish hali ham eng sekin qismidir.
zamonaviy WEB ilovalari, shuning uchun bu kutubxona oladi
ishlash afzalligi, optimallashtirish).
16
Ushbu holatda mijozni yo'naltirishni ishlatish mumkin
reaktiv-router kutubxonalari [4]. Ushbu kutubxona sizga bog'lanish imkonini beradi
React komponentlari bilan mijozlar marshrutlari, shuning uchun ham mumkin
WEB-interfeys holati loyiha JavaScript-faylida topiladi,
marshrutlar e'lon qilingan joyda (rasmga muvofiq, arizaning kirish nuqtasida)
2).
WEB-interfeysida chizilgan chizmalar yoki murakkab chizmalar uchun
D3 kutubxonasi talab qilinishi mumkin. D3.js (yoki oddiy D3) ma'lumotlarni qayta ishlash va ko'rish uchun JavaScript-ni tashkil etadi. U beradi
ma'lumotlar majmualarini ishlash va yuklash va yaratish uchun qulay vositalar
DOM xodimlari. D3 nomi ma'lumotga asoslangan hujjatni anglatadi.
Bu ma'lumotlar bilan ishlaydigan va ular bilan ishlaydigan JavaScript-ni yaratuvchi kutubxona
WEB-ilovalar uchun ingl. taqdimot, jumladan, ma'lumotlarni yuklash,
real vaqtda vizualizatsiya va boshqalar
imkoniyatlar [5, 6].
Bugungi kunda ko'pgina brauzerlar foydalanilmayapti
EkmaScript [7] zamonaviy standartlarini qo'llab-quvvatlash, brauzerlarda
Eski standart EcmaScript 5dan foydalanish kerak
barcha zamonaviy brauzerlar, jumladan, Internet tarmog'i tomonidan qo'llab-quvvatlanadi
17
Explorer 11 [8], bu sezilarli darajada kengayadi
rivojlangan WEB-interfeysidan foydalanish. Biroq, topshirishdan voz kechish
dasturiy tilining yangi standartlari, shuningdek ishlab chiquvchi
yangi sintaktik shakarni ishlatishni rad etadi
Yangi standartlar uchun ba'zi optimallash echimlari. Buning uchun
javascriptni eng yaqin standart [7] dan JavaScript ga tarjima qilish kerak
EcmaScript 5 standarti, Babel bu vazifani bajaradi (JavaScript-ni derleyici, uning hujjatlari saytda joylashgan [9]).
Natijada ko'plab bog'liqliklar talab etiladi
Ko'pgina fayllarda, shuningdek, dasturni ishlab chiqishda,
kod kengayadi va ko'p fayllar paydo bo'ladi. Javascript va uslublar fayllarini bitta javascript va uslub fayliga yaratish
shunga muvofiq, WEB frontendida, veb-paketida, hujjatlari veb-saytda joylashgan [10] kod va paketlarni yig'ish uchun tizimga muhtojmiz.
2.1.2 CSS kutubxonalari
CSS - ibtidoiy va to'liq bo'lmagan dasturlash tili. In
funktsiyani yaratish, ta'rifni qayta ishlatish yoki juda qiyin
merosdan foydalaning. Katta loyihalar yoki murakkab tizimlar uchun,
CSS kodini qo'llab-quvvatlash katta muammo hisoblanadi. Biroq, WEB-texnologiyalar jadal rivojlanmoqda, yangi spetsifikatsiyalar HTML kabi,
CSS-da. WEB brauzerlari ushbu texnikani qo'llashadi, lekin tark etadilar
ularning maxsus sotuvchi prefikslari. Ba'zi hollarda (masalan
masalan, fon gradiyenti), dasturlashni ishlatish
Maxsus sotuvchi prefikslari og'ir yukga aylanadi. Kerak
erishish uchun turli xil brauzer versiyalariga har xil prefikslarni qo'shing
Xuddi shu natija.
CSS kodini yaxshiroq qilish uchun dasturchilar ko'pincha
turli xil yondashuvlardan foydalaning, masalan, uslublar ta'riflarini ajratish
18
kichik fayllar va ularni bir katta master faylga import qilish.
Ushbu yondashuv tarkibiy qismlar bo'yicha uslublarni ajratishga yordam berdi, ammo qaror qabul qilmadi
kodni takrorlash bilan bog'liq muammo va unga yordam bermadi. Boshqa
yondashuv ob'ektga yo'naltirilgan harakatni joriy etishga urinish edi
CSS dasturlash. Bu holda, ikkita yoki
ko'proq sinf belgilaydi. Har bir sinfga bunday turdagi uslublar qo'shildi.
element. Bir nechta darslarni yaratish imkoniyatni oshirdi
kodni meros qilib oladi, ammo samarali qo'llab-quvvatlash qobiliyatini qisqartiradi
kodi.
Tayyorlovchilar, o'z navbatida, yozilishga yordam beradi
CSS-da ölçeklenebilir va osongina qo'llab-quvvatlanadigan kod. Foydalanish
dastlabki protsessor, dasturchi uni osongina oshirishi mumkin
samaradorligi va loyihangizda kod miqdorini kamaytirish.
Shunday qilib, birinchi navbatda, qulay dasturlash uchun
WEB mijozi uchun uslublar, ishlab chiquvchi CSS-ning preprocessoriga kerak. CSS preprocessorlari CSS o'zgaruvchilari, operatorlari,
interpolasyonlar, funktsiyalar, "begona moddalar" (mixins) va boshqalar
foydali vositalar. Eng yaxshi ma'lum CSS preprocessorlari
SASS [11], BOSh [12] va Stylus [13].
Har qanday dasturlash tilida bo'lgani kabi, dastlabki protsessorlar ham bor
Turli xil sintaksislar, bir-biriga juda o'xshash. Hammasi
preprocessorlar "klassik" CSS dasturlarini qo'llab-quvvatlaydi
ularning sintaksisi odatda CSSga o'xshash.CSS preprocessor sintaksislari orasidagi farqlarni ko'rib chiqing
(3-rasmga muvofiq) ifloslanish namunasi. Yopishqoq moddalar to'plamdir
ba'zi parametrlar bo'yicha tuzilgan shartlar
yoki statik qoidalar. Ular bilan siz biror narsa yaratishingiz mumkin
boshqa funktsiyalarga o'xshash funktsiyalarni qo'llash va boshqa usullarni qayta ishlatish
kodi. Shakl 3 dan ko'rinib turibdiki, eng tanish sintaksisi o'xshash
19
CSS, u Sass va kam sintaktik, lekin Sass ko'proq xos bo'lib,
aralashmalarning (@mixin, @include) foydalanish batafsil bayoni, ortiq
Kam (ramzi "." Shuningdek, bilan boshlanadi sinf Sinchkovlik, ko'paytiradi
"." Belgilar), shuning uchun dizayn CSS-Preprocessor Sass [14] foydalaniladi.
Keyinchalik, ishlab chiquvchi yanada samarali ishlashi kerak.
o'zaro brauzer CSS-ni yozing. Buning uchun sizga yordam kerak
avtomatik ravishda uslub qoidalariga prefiks qo'shadi. Misol uchun, kompaniya
PostCSSni qayta ishlash uchun Google autoprefixer [15, 16] ni taklif qiladi. Bu
Kutubxona sizga maxsus sotuvchisi prefikslari bo'lmagan uslublar yozish imkonini beradi
4-rasmga va 5-rasmga muvofiq), shuning uchun muammoni hal qilish
o'zaro faoliyat brauzer uslublarini yozish bilan.
2.2. Texnologik stackning integratsiyasi
Ko'p sonli darajada samarali integratsiyani ta'minlash uchun
loyihada bođlišliklar, sizga paket menejeri kerak. Ommaviy bo'lmagan holda
bog'liqlik menejeri onlayn manbalardan yuklab olinishi kerak
qo'lda yoki yuklab bog'liqliklar kod versiyasi boshqaruv tizimiga yuklab oling
ishlab chiqilayotgan loyiha hajmini o'nlab marta oshirib, salbiy ta'sir ko'rsatmoqda
loyihani yuklab olish va o'rnatish tezligida, hamda server resurslarida
versiya boshqaruv tizimlari. Uchun eng mashhur paket menejeri
Javascript kutubxonalari npm bo'lib, bu ham o'z navbatida
dunyoning eng katta dasturiy ta'minot registri [17]. Npm dan foydalanib emas
loyihaga qo'shadi fayllarni kiritish kerak, aksincha
loyiha ildiziga "package.json" nomi bilan faylni qo'shing
(Qo'shimcha A) mos keladigan JavaScript nomlari mavjud -
21
kutubxonalar va ularning versiyalari, shuningdek, versiyalar "muzlatilgan" bo'lishi mumkin. Shunday
Shunday qilib, loyiha har doim paketning to'g'ri versiyasi bo'lib, ularni yuklab olishingiz mumkin
konsolda oddiy buyruq bilan loyihani boshlash yoki qurishdan oldin bo'lishi mumkin
"Npm install" (loyihaning ildizida).
O'z navbatida, loyiha bog'liqliklari o'zlarining tarkibiga ham ega bo'lishi mumkin
"npm" buyrug'ini bajarishda yuklanadigan bog'liqliklar
o'rnatish ". Natijada, loyiha kodi bazasi ahamiyatli bo'ladi
kodning miqdori, ularning aksariyati siqilmagan va kodning ba'zi qismlari
loyihada foydalanilmasligi va qo'shimcha joy ajratishi mumkin, bu esa natijaga olib keladi
sahifani yuklash va joylashtirishda brauzerda qo'shimcha ma'lumotlarni yuklash
Bu ma'lumotlar WEB interfeysining ishlashini sekinlashtiradigan RAMga aylanadi. Ushbu muammolarni bartaraf qilish uchun, sizni ag'daring
foydalanilmayotgan kodni tuzishda va uni siqib qo'yishganda, u eng samarali hisoblanadi
uni avtomatik ravishda bajaring. Avtomatik tarzda buni amalga oshirish mumkin
to'plamni veb-paketga mos ravishda moslashtirishi [10]
UglifyJsPlugin [18] ni veb-konfiguratsiya fayliga qo'shib qo'ying
javascript kodini kamaytirish va obfuscates. Bundan tashqari, kerak
DedupePlugin [19] ni qo'shing va loyihada bir xil fayllarni izlang
ularni yakuniy yig'ilishdan chetlatadi. Foydalanilmagan fayllar va kutubxonalar
webpack sukut bo'yicha qurilish natijasiga kiritilmaydi.
Kabi texnologiyalarni avtomatik ravishda ishlatish uchun
CSS preprocessorlari, postCSSni qayta ishlash (autoprefixer), zamonaviy
EcmaScript me'yorlari [7] da siz konfiguratsiyani qo'shishingiz kerak
Veb-to'plamlar to'plamining fayl tizimi "yuklovchi" deb ataladi. [20]
Misol uchun, "package.json" faylida tasvirlangan bog'liqliklar (Qo'shimcha A)
bukuvchi-loader, sass-loader, postcss-loader va autoprefixer ishlab chiquvchiga ruxsat beradi
zamonaviy standartlarning JavaScript kodini yozing, sintaksisdan foydalaning
SASS CSS oldingi protessori va maxsus sotuvchisi prefikslarini yozmang, chunki
22
tillar tarjimasi va qo'shimchalar qo'shilishi avtomatik tarzda amalga oshiriladi
o'rnatish.
2.3 Texnologiyalarni integratsiyalashni test qilish
Ilovaga qo'shilgandan so'ng, qo'shimcha Ada tavsiflangan bog'liqliklar majmui
loyiha kompyuterning qattiq diskida 78,7 MB ni tashkil etadi (rasmga ko'ra
6). Loyihadagi kodning qolgan qismi 804 kilogrammni tashkil qiladi
Kompyuterning disklari (7-rasmga muvofiq).
Yuqoridagi plaginlarni ishlatmasdan, veb-paketga o'rnatilgan
loyiha kompyuterning qattiq diskida (rasmga muvofiq) 5,05 MB oladi
8) va plaginlari yordamida - 968 KB (9-rasmga muvofiq),
shuning uchun, bu holda, yig'ilgan loyiha hajmi deyarli kamayadi
5 marta ko'rsatilgan, bu yuqorida ko'rsatilgan plaginlarning shubhasiz foydasini ko'rsatmoqda
ishlab chiqilgan loyihaning ishlab chiqarish versiyasini yaratish.
2.4 WEB-dasturini o'lchash metodlari
2.4.1 WEB-mijozlarning ishlash muammolarini tavsifi
Hozir WEB-dasturlarni ishlab chiqishda
kam ishlashi bilan bog'liq ko'plab muammolar.
Server tomonidan katta WEB ilovalaridagi ma'lumotlar (yoki ma'lumotlar bazasi)
900 GB dan ortiq ishni amalga oshirishi mumkin (masalan,
xalqaro miqyosda) [21]. Shuning uchun rivojlanishdagi muammolardan biri
WEB frontend katta WEB ilovalari past tezlik
serverdan WEB mijoziga yuborilgan katta ma'lumotlar oqimini qayta ishlash
(ko'pincha, WEB-brauzer). Vizual ma`lumotlar bazasini yangilashni tashkil qilish
WEB mijozi turli yo'llar bilan bajarilishi mumkin: yangilash (va
faqat to'g'ridan-to'g'ri so'rovdan so'ng ma'lumotlar
foydalanuvchi, so'rovdan foydalanish (WEB mijozi uchun so'rovlar bajaradi
server ma'lum bir vaqt oralig'ida) yoki HTTP dan tashqari foydalanishi mumkin
brauzer va veb-server o'rtasida xabarlashish protokoli
real vaqtda (masalan, WebSocket).
2.4.2 WEB ilovasida ma'lumotlarni yangilashning usullarini taqqoslash
Avvalo yuqorida aytib o'tilganidek, yangilash tashkiloti
Veb-mijozning ingl. ma'lumotlar oddiy yordamida amalga oshirilishi mumkin
HTTP, foydalanuvchiga so'ralgan so'rovlarni bajaradi. Masalan, qidiruv xizmatida
Google [22] bu usuldan foydalanadi: tugmani bosib
qidiruv, foydalanuvchi HTTP so'rovini serverga yuboradi va keyin oladi
javob va sahifadagi ma'lumotlarni yangilaydi. Oddiy HTTP so'rovining misoli
javascript tilida ilova B tilida keltirilgan.
Ikkinchidan, WEB mijozidan ingl. Ma'lumotlarni yangilashni tashkil qilish HTTP polling yordamida amalga oshirilishi mumkin. Bunday holda
birinchi holatda bo'lgani kabi, oddiy oddiy HTTP so'rovini ishlatadi,
26
Biroq, ma'lum vaqt oralig'i bilan takrorlanadi
WEB-mijoz real ma'lumotni ko'rsatishga qodir
Vaqt (JavaScript-da bir misol, ilova C'de berilgan). Beriladi
oddiy usulni qo'llash oson va oson ishlab chiqishda foydalanilishi mumkin
WEB-interfeys tarmog'i qurilmasi kichik monitor
Masalan, bitta parametr jadvali monitoringi ma'lumotlari
tarmoq qurilmasi real vaqtda.
Va nihoyat, ingl. Ma'lumotlarni yangilash bilan amalga oshirilishi mumkin
tarmoqdan foydalanganda. Bunday holda, WEB mijozi ulanishni ochadi
serverdan [23] va ma'lumotlarning zarur qismlariga ("mavzular") obuna bo'lib,
undan keyin server server tomonidan ma'lumotlarni obuna orqali yuboradi
ma'lumotlar bazasida ma'lumot o'zgarsa, masalan, zarur deb hisoblaydi
(JavaScript-dagi misol D-ilovasida keltirilgan). WEB dasturining misoli ma'lumotni yangilaydigan WEB ilovasi bo'lishi mumkin
Real vaqtda WebSocket eng samarali nuqtadan beri
ishlash va server yukida yuklaydi [24].
[25] da joylashgan Yandex.Mail ilovasi WebSocket'ni yuklab olish uchun ishlatadi
serverdan real vaqtdagi xabarlar (10-rasmga muvofiq).
Jadval 1da taqqoslashlaricha, katta ma'lumotni qayta ishlash uchun
Chunki eng foydali bo'lgan WebSocket'dan foydalanish xabar hajmining hajmi
Taqqoslash mezonlari
Yangilash
faqat keyin
so'rov
So'rovlar tarmog'i
Yaratish qobiliyati
ilovalar bilan
ma'lumotlarni yangilash
real vaqtda
- + +
Katta miqdorda
tayyor dasturlar
(shuning uchun oddiylik
rivojlanish)
+ + - Kichik miqdor
Veb-mijozidan talablar
Serverga
+/- (bog'liq
to'g'ridan-to'g'ri chastotalar
talablar
foydalanuvchilar)
- (so'rovlar)
bilan yuboriladi
aniq
interval,
Masalan, 2 marta a
ikkinchi)
+ (faqat so'rov
biri: for
o'rnatish
bilan bog'lanish
server)
Kerak
usullarni qo'llash
katta optimallashtirish
tomondan ma'lumot oqimi
WEB-mijoz
- (katta oqim
ma'lumotlar bo'lishi mumkin
turing
chunki
katta
miqdori
to'g'ridan-to'g'ri so'rovlar
foydalanuvchilar,
unga kerak
jarayoni boshlandi
server,
natijada
pastlab
ish
interfeysi
boshqa
foydalanuvchilar emas
paydo bo'ladi)
+ (So'rov
ishlatilgan
amalga oshirish
ilovalar bilan
yangilash
haqiqiy ma'lumotlar
shuning uchun vaqt
kerakli ma'lumotlar
yangilash
juda tez-tez.
Biroq, agar bo'lsa
ma'lumotlar serveri
juda ham ko'p
taglik tortilishi mumkin
Taxminan 1 TB)
hatto so'rov bilan
amalga oshirish
kümeleme
ma'lumotlar [26] mumkin
mukammal bo'lish
amal qilmaydi
qaror.)
+ (Serverning o'zi
ma'lumotlar yuboradi
WEB-mijozida,
agar shunday bo'lsa
server
ma'lumotlar bazasida kuzatib boradi
tez-tez ma'lumot
o'zgarishlar - barchasi
o'zgarishlar
WEB mijoziga kelib tushadi
katta oqim
xabarlar.) [23]
28
WEB mijozi va server o'rtasida eng kichik va eng ko'p
oqilona (chunki yangilash usuli foydalanuvchi talabidan so'nggina emas)
real vaqtda yangilangan ma'lumotlarga ega ilovani yaratish uchun mos
vaqt, ammo so'rovlar doimiy ma'lumotni yuklab olish uchun mos emas
juda ko'p ma'lumotlar mavjud; Bundan tashqari, so'rovda foydalanilganda
WEB mijozi ma'lumotlarga qaramay, serverga har doim so'rovlar yuboradi
ma'lumotlar bazasida o'zgarmagan). Foydalanishda aniq kamchilik
WebSocket turli xil "sariq" larga aylanadi
yagona standartlashsiz, protokol. Bunday holda, siz tanlanishingiz kerak
WEB mijozi tomonidan qo'llab-quvvatlanadigan bunday protokol,
va server tomoni. Juda cheklangan miqdorda tayyor bo'lishiga qaramay
ushbu protokol bo'yicha ma'lumotlar uzatishni amalga oshirish uchun echimlar,
Ochiq standart WAMP protokoli (27) bilan amalga oshiriladi
bu orqali siz uzatish va qabul qilishni nisbatan soddalashtirasiz
Websocket orqali ma'lumotlar. Ushbu dastur uchun manba kodi mavjud
sayt [28].
2.4.3 Message Queuing muammoini katta oqim bilan echish
Veb-mijoz haqida ma'lumot
Serverdan xabarlar katta oqim muammosini hal qilish uchun
WEB mijozi, masalan, katta tarmoqni monitoring qilish zarur
har bir kiruvchi xabarning ishlashini biroz kamaytirishi mumkin
operatsiyalarning minimal soni, shuning uchun umumiy vaqtni kamaytiradi
ma'lum bir vaqt davomida xabarlarni qayta ishlashga imkon beradi
boshqa vazifalar uchun (masalan,
bitta dublyajli veb-dasturida DOMni qurish kabi og'ir.
Ma'lumotlar buferlash bu muammoni samarali hal qiladi. Bunday
protsessorda buffering kabi buffering ishlari (
[29]), ya'ni, buferlashdan foydalanishda, WEB mijozi yo'q
29
serverdan darhol xabarlar yuboradi va ularni qo'shadi
bir qatorda emas, balki barcha ma'lumotlarni bir xabarga birlashtiradi
mavjud bo'lgan ma'lumotlarga yanada qulay tarzda qo'llanilishi mumkin
ma'lum bir vaqt uchun bir marta.
Tasavvur qiling, WEB-ilovasida ishlab chiqilgan bo'lishi mumkin
ma'lumotlar bazasida juda oz miqdordagi ma'lumot va juda katta miqdor
ma'lumotlar. Masalan, real vaqtda tarmoqni monitoring qilish dasturi. Agar
tarmoq tugunlari kichik (ularning soni 1 dan 50 gacha bo'lishi mumkin)
buferlash kichik rol o'ynaydi, chunkizamonaviy kompyuterlar mavjud
jarayonni boshqarish uchun etarli hisoblash resurslari
juda ko'p qurilmalarning telemetriyasi (albatta, har biri
xabar, masalan, grafikni qayta hisoblash va qayta tiklashga olib kelmaydi
topologik tarmoq). Shuning uchun, siz qanday qilib kerak
WEB foydalanuvchi interfeysi ingl. ko'rsatkichida tarmoq tugunlari va undan to'g'ri kelgan xabarlarni buferlashning ta'sirini kamaytirish.
bir nechta serverlar (oldindan belgilangan buferlash oralig'idan kamroq tez-tez kelib chiqadi) va
yangilanish tezligiga buferlash effekti asta-sekin oshirib boring
hisoblash operatsiyalari yopilmasligi uchun interfeysdagi ma'lumotlar
jarayonni suyakka va interfeysning vizual tarzda sustlashishiga olib kelmasa
xabar tez-tez kelib chiqadi. Buning uchun yangilanish taklif etiladi
ma'lumot ilovasi taymerini hech bo'lmaganda, hech qanday
xabar oldindan belgilangan oraliq uchun kelmaydi, lekin avvalgi maksimum
vaqt oralig'i summasining qiymati (berilgan
taymer yangilanishi) ba'zi bir muhim nuqtalarga erishadi
majburiy yangilanish. Masalan, agar siz minimal intervalni o'rnatgan bo'lsangiz
yangilanishlar 200 ms ga teng, keyin esa 200 msn ichida bo'lsa
faqat bitta xabar, keyin bu xabarning ma'lumotlari ma'lumotlar uchun qo'llaniladi
ushbu intervaldan so'ng darhol mavjud WEB xotirasida,
aks holda, taymer yangilanadi va xabar qayta bo'lsa xabarni kutib turadi
30
serverdan keladigan vaqt bor - taymer yangilanadi, va hokazo. Shunday bo'lsin
vaqtning yig'indisi yig'ilib qolguncha amalga oshiriladi
Misol uchun, 1 soniya va bu holatda ma'lumotlar muhim bir belgidir
1 soniyada olingan barcha xabarlar qo'llaniladi
ma'lumotlar bazasida mavjud ma'lumotlar. Shunday qilib, katta oqim bilan
WEB interfeysidagi ma'lumotlarni yangilash tez-tez sodir bo'lmaydi
soniyasiga 1 marta va kichik bir ma'lumot oqimi bilan 1 marta paydo bo'lishi mumkin
1 soniyada 200 ms dan 1 marta.
Ushbu algoritmni JavaScript-da amalga oshirishni ko'rib chiqing
standart EcmaScript 2015 [30] da keltirilgan
UpdateHandler dasturlash klassi to'plash va qo'llash uchun javobgardir
Ma'lumotlar do'koniga to'plangan ma'lumotlar. Ushbu dasturda sinf
katta tarmoq ichida sodir bo'lgan hodisalar haqidagi xabarni ishlaydi
Shuning uchun tranzaktsiyalarni kechiktirishni kamaytirish uchun buferlash zarur edi
minimal. Tashqi WebS_Nokimiyatdagi xabarni ishlovchilar ushbu usuldan foydalanadilar
bufferedUpdate, yangiliklarni xabarlar bilan yuborish
Tarmoqda sodir bo'lgan voqealar. In
Qo'shimcha A da, Constants.DEFAULT_UPDATE_TIMEOUT 200 ms ni tashkil qiladi,
yuqorida tavsiflangan buferlarni amalga oshirishga erishamiz.
WEB-dasturlashning zamonaviy texnologiyalari
har ikkala davoni ham qondiradigan veb-ilovalarni amalga oshirish
past oqimdagi ortiqcha hisoblash va optimallashtirish
ma'lumotlar va katta hisob-kitoblarda ko'rinadigan kechikishlar bo'lmasligi
ma'lumotlar oqimi. Turli rivojlanish vazifalari turli xil foydalanishni talab qiladi
axborotni qayta ishlash va optimallashtirishga oid texnologiyalar, uslublar va yondashuvlar
Biroq, bu jarayonning katta qismi WEB-ilovalari uchun foydali bo'ladi
ma'lumotlar yangilanishlarini tashkil qilish uchun WebSocket protokolidan foydalanish
WEB mijozi va bu yangilanishni optimallashtirish uchun buferlash.
31
3 "Smart Parking" dasturiy kompleksini ishlab chiqish
3.1 Analoglarga umumiy nuqtai
Ko'p otopark kuzatuv tizimi mavjud
nisbatan past intellektual komponent va aniqlik
ko'rsatmalar. Ba'zi qarorlar mashinalar hisoblagichlaridan olingan ma'lumotlarga asoslanadi.
(mashinalar uchun mashinalar) haqiqiyligini hisobga olgan holda
to'lovlarsiz bo'sh joy mavjudligi haqidagi ma'lumot [31].
Biroq, bu yechim ma'lumotlarning to'g'riligini ta'minlamaydi, chunki
faqat bilvosita ma'lumotlar mavjud. Bundan tashqari, mashinalar yaqin
Savdo markazi odatda bepul.
Boshqa echimlar ko'p sonli o'rnatishni o'z ichiga oladi
atrof-muhit sharoitlaridan muhofaza qilinmagan sensorlar
vandalizm [32].Asosiy xarid qilish markazlari kafolat berishga harakat qilmoqda
konfor va xavfsizlik uchun mashinalar joyi. Misol uchun, Germaniyada otoparkda
barcha mashinalar joylarini kuzatuvini tashkil etdi
butun guruhning videolarini yozib olgan keng burchakli IP kameralar
maydon bo'ylab mashinalar joylari. Bu, kimni, qachon va qachon ekanligini ko'rish imkonini beradi
qaysi mashinalar joyi olib ketadi yoki tark etadi. Doimiy o'zgarish bilan
kun davomida mijozlar doimiy rekordni saqlab qolishga da'vat etiladi
kameralardan olingan tasvirlar. Kechasi yoki otoparkdagi kam harakat bilan
vaqti-vaqti bilan harakat sensori yozuvi ham afzallik beriladi
markaziy stansiyada jonli tasvirni qo'shish [33]. Ammo
o'rnatilgan video kuzatuv tizimlari faqatgina maqsadlarda qo'llaniladi
xavfsizlik, chunki pullik avtoturargohda avans bilan ishlaydi
ajratilgan joylar.
StreetLine tomonidan taqdim etilgan qiziqarli yechim [34]
videokamera, simsiz texnologiyalar va boshqalar
32
tizimlari Nomidan ko'rinib turibdiki, bu
shahar ko'chalarida ochiq mashinalar uchun mo'ljallangan.
Park tomonidan amalga oshirilgan muvaffaqiyatli otopark boshqaruv tizimi
Biroq, [35], tarmoq texnologiyalarining imkoniyatlarini ishlatmaydi
mobil qurilmalar. Bundan tashqari, ushbu tizim kengaytirish uchun yopiq.
imkoniyatlar va nisbatan qimmat turadi. U erda
Park boshqarish tizimini yaratish zarurati mavjud
ham ochiq, ham yopiq tarzda foydalanish mumkin
Avtotransport kiraverishida ilgari video kuzatuv tizimi
raqamni tanib, avtomobilni ro'yxatga olishni ta'minlaydi
mashina. Tizim har qanday harakatni kuzatib boradi
kuzatilgan makon to'la bo'lganligi sababli,
videokamera tizimi bilan qoplangan va har bir kamera yo'naltirilgan
(12-rasmga muvofiq). Avtomobil egallab turibdi
mashinalar maydoni avtomobil raqami bilan aniqlanishi mumkin.
Avtotransport harakatlari haqida batafsil ma'lumot
xavfsizlik xizmatlari uchun qiymati.
Rasmlarni kameralardan tahlil qilish orqali siz aniqroq ma'lumotga ega bo'lishingiz mumkin
avtomobil to'g'ri yoki yo'qligini aniqlang
yo'l to'siqlari va piyodalar. Avtomatik qayta ishlash
avtoulov qasddan jinoyatchilar haqidagi ma'lumot darhol haqiqatni aniqlaydi
buzish va operatorga xabar berish. Rezerv qilingan maydon emas
mashinalar uchun mo'ljallanadigan joylar ham kuzatuv ostiga olinadi.
Mobil foydalanuvchilarga ega bo'lish imkoniyati mavjud
Mashinangizning qiyofasi va to'xtash joyidagi joylashuvi.
Katta avtoulovlar uchun bu juda foydali xususiyatdir
otopark maydonini unutish uchun etarli.
35
Sizning avtomobilingizni topish uchun mobil telefon xizmati ko'rsatildi.
qurilmalar va axborot kioskalari. Mobil qurilmaga ulangan
transport vositasi mulk egasini chaqirishga imkon beradi
anormal vaziyatlar.
Bir qator mashinalar joylari faoliyati bilan ta'minlangan.
Haydovchilar uchun qulay mashinalar uchun "Park assistenti"
Miqdorni aniqlash qiyin. Bu funksiya tomonidan amalga oshiriladi
Avtoulov sensorlarining doimiy joylashuvi. U ham
Sensor bo'sh joy.
3.2.1 Tizim tarkibi
Smart park tizimi ikkita quyi tizimdan iborat:
1. Uskuna va apparat
Raqamni aniqlash uchun 1 Cisco IP-kamera
Belgilarni aniqlash uchun 1 keng burchakdagi video kamera
mashinalar joylari
Ishg'ol qilingan joylarni aniqlash uchun ultratovush sensorlari
Xodimlarni aniqlash uchun yagona grafik belgilar
kamerani joylashtiradi
Avtoulov sirtining joylashishi
- 3 ta prezentatsiya avtomobili
Ma'lumotni yig'ish va qayta ishlashni nazorat qiluvchi
2. Dasturiy ta'minot qismi
WEB-server (veb-foydalanuvchi interfeysi uchun WEB-API),
Foydalanuvchilar uchun WEB-interfeys
Birgalikda ma'lumotlar bazasi
Bepul video tahlil dasturi
Video tahlil va plastinkalarni aniqlash dasturi
36
Git versiya boshqaruv tizimi sifatida tanlangan [36]
bu veb-ishlab chiquvchilar orasida ham keng tarqalgan
qulay grafik interfeysi va funktsional buyrug'i mavjud
konsoli Bitbucket versiya boshqaruv tizimi uchun server sifatida tanlangan.
[37], chunki bu server sizni xususiy saqlashga imkon beradi
kod havzalari, shuningdek, loyihalarda va omborlarda kombinatsiyalash uchun qulay
WEB interfeysida ishlab chiquvchilarni yaratish (
rasm).
3.2.2 tizim ma'lumotlari oqimi
Smart otopark tizimining sxemasi
tizimdagi ma'lumotlar oqimining mavhum ko'rinishi (
rasm 14). Videokamera va kameralarda saqlangan ma'lumotlar saqlanadi
Bundan tashqari, to'g'ridan-to'g'ri kuzatish uchun ham mavjud
ishlov berish. Kamera o'rnatish joyiga va o'zgarishlar mavjudligiga qarab
Tasvirda tizim avtomobil mavjudligini aniqlaydi va u mavjud bo'lganda
mavjudligi raqamni taniydi. Avtoulov kameralari
joylar, mashinalar joylarining ish joyini yozib olish. Agar joy
bepul, keyin ma'lumotlar bazasiga kiradi.
Ma'lumotlar bazasida mashinalar joylari holati to'g'risida ma'lumotlar va
har qanday vaqtda raqamli plitalari. Qabul qilingan ma'lumot
turli ma'lumotlarga ega bo'lish uchun foydalanish mumkin
37
turli formatdagi foydalanuvchilar, shuningdek, monitoring va yig'ish
statistika
Rivojlangan tizim uch imkoniyatni nazarda tutadi
maxsus stsenariy: avtomatik mashinalar joyi, qo'lda mashinalar joyi
avtomatik tarzda belgilangan mashinalar joyi va qo'lda mashinalar joylari,
ajratilgan foydalanuvchi. Birinchidan, foydalanuvchi qaror qiladi, istaydi
38
Oldindan mashinalar joyini ajratib qo'yadimi? Ha bo'lsa, foydalanuvchi
shaxsiy ro'yxatga olish raqamini ro'yxatdan o'tkazish kerak
vositangiz veb-ilovada (masalan, mobil telefonda
telefon) va interfeysida mashinalar joyini zaxiralash, yoki
tizim avtomatik ravishda zaxiralashga imkon beradi. Veb-ilovasi
yashil yoki qizil rangda ko'rsatilgan bo'sh va ishg'ol etilgan joylarni ko'rsatadi
(15-rasmga muvofiq) va ruxsat bermaydi
egallagan yoki ajratilgan maydonni zaxiralash uchun foydalanuvchi.
Mashina mashinaga kirish joyiga borib tushganda, kamera tan oladi
shaxsiy ro'yxatga olish raqami va tizim fotosuratlarni qayd qiladi
va ma'lumotlar bazasida ro'yxatdan o'tish raqami, bu raqamni ism bilan bog'lash
foydalanuvchi Agar shunday o'yin topilsa, veb-ilovada ko'rsatiladi
foydalanuvchi tanlangan mashinalar maydoniga sxematik navigatsiya mavjud
39
dastur. Ish joyidagi ish joyidagi ma'lumot real vaqtda yangilanadi.
shuning uchun ham joy joy olish mumkinligi haqida tashvishlanmang
haydovchi unga o'tadi - tizim yo'lni qayta hisoblaydi
keyingi eng yaqin mashinalar joyiga
Nima uchun bunga erishish mumkin. Dasturda serverga Wi-Fi ulanishi mavjud,
avtomobilning joyini kuzatib boradi va yo'lni hisoblab chiqadi
olingan rasmlarni tahlil qilish orqali mashinalar maydoni
Kamera Avtoulov kameralari
ularning maqomini doim kuzatib boradi. Misol uchun, agar kamera bajarolmasa
mashinalar maydonchasida maxsus yorliqni (masalan, "X" shaklida) tanish,
joy egallab olingan deb hisoblanadi. Bu holatda, qo'shimcha uchun
tekshiruvlar ultratovushli sensorlardan foydalanishi mumkin
joyning haqiqatan ham ishg'ol qilinayotganligini tekshirib ko'ring va hali mashinasiz
bir avtomobil yoki yorliq faqat qor, loy bilan qoplangan
yoki chang va tan olinishi to'xtatildi. Sensor va kameralardan olingan ma'lumotlar
veb-ilovaga ega bo'lishi uchun ma'lumotlar bazasiga yozib qo'yiladi
foydalanuvchining ishg'ol qilingan joylari haqidagi ma'lumotni, shuningdek, foydalanuvchini ko'rsatadi
dolzarb ma'lumotlar holatini saqlab qolish.
Agar ro'yxatga olish raqami va foydalanuvchi nomi mos bo'lmasa
topildi, tizim avtomatik ravishda eng yaqin bo'sh joyni topdi va
uni ushbu transport vositasiga topshiradi, bu ro'yxatga olinadi
raqami ko'rsatkichi bilan birga yo'nalish ko'rsatiladi. Bunday holatda veb-ilovadan foydalanilmaydi.
Tizimning algoritmi UML diagrammasida tasvirlangan.
funktsiyalardan olingan abbreviaturalar (Qo'shimcha E)
veb-mashinalar ilovasini arxitekturasini tatbiq etish tasvirlangan
Faoliyatning UML diagrammasi (Qo'shimcha G). Komponentlarni tuzish va ular
o'zaro ta'sirlar UML komponentining diagrammasida tasvirlangan (Ilova
Va).
40
3.4 Dasturiy ta'minotni ishlab chiqish
3.4.2 WEB-serverni ishlab chiqish
NodeJS texnologiyasi WEB serverini rivojlantirish uchun tanlandi [38],
chunki bu haqiqatan ham amalga oshirish jarayonini tezlashtirish imkonini beradi
WEB interfeysi (JavaScript) kabi bir xil dasturlash tilidan foydalanadi. WEB serverining tuzilishi murakkab emas (
(16-rasmga muvofiq), chunki server serverlar majmui
HTTP so'rovlari va ma'lumotlar bazasiga kirish uchun ishlovchilar. Server
foydalanuvchi interfeysi uchun API (Qo'shimcha K) bilan ta'minlaydi
Ma'lumotlar bazasida ma'lumotlarni xavfsiz tarzda o'zgartirish yoki saqlash.
Server nafaqat API, balki statik fayllarni ham o'z ichiga oladi.
Jilddagi veb-foydalanuvchi interfeysi yig'ilgan loyiha
"Chiqish".
3.4.3 Ma'lumotlar bazasini yaratish
Ma'lumotlar bazasini yaratish uchun MongoDB [39] tanlandi
Ushbu DDB mavjud bo'lgan WEB-server uchun haydovchiga ega
NodeJS texnologiyasidan foydalangan holda, shuningdek, ma'lumotlar bazasidagi ma'lumotlar tufayli
MongoDB ma'lumotlar formatiga mos keladigan JSON formatida [40] saqlanadi
javascriptda ishlatilgan. Ish tamoyillarini tahlil qilgandan so'ng
rivojlangan tizim, quyidagi asosiy
ma'lumotlar bazasini loyihalashtirish uchun:
1. Foydalanuvchilar. Ushbu hujjatlar to'plami haqida ma'lumot saqlanadi
tizimda ro'yxatdan o'tgan foydalanuvchilar. To'plam tarkibi
jadvalda keltirilgan.
2-jadval - "foydalanuvchilar" to'plami
, Shuningdek, mintaqa nomi Ma'lumotlarni turi
_ID ObjectId
nom satrlari
parol parolini kiriting
licensePlate String
2. Park joylari. Ushbu hujjatlar to'plami saqlanadi
mashinalar joylari haqida ma'lumot, ya'ni joylarning holati
(band bo'lgan, bepul yoki rezervasyon qilingan), kim egallaganligi haqida ma'lumot
joyni qaysi vaqtda joylashtirilganiga qarab turing. To'plam tarkibi
3-jadvalda keltirilgan.
42
3-jadval - "otopark" yig'ish
, Shuningdek, mintaqa nomi Ma'lumotlarni turi
_ID ObjectId
id raqami
nom satrlari
ajratilgan Boolean
ishlaganByVideo Boolean
ishg'ol qilinganBenSensors Boolean
Foydalanuvchi nomi String
vaqt tarixi
3.4.4 WEB-interfeyslarni ishlab chiqish
WEB-dastur mijoz-server arxitekturasidan foydalanadi. In
Xususan, server mijoz va ma'lumotlar bazasi o'rtasida vositachilik vazifasini bajaradi.
ma'lumotlar xavfsizligini ta'minlash, o'qish, tahrir qilish va yo'q qilish imkonini beradi
mongoDB ma'lumotlar bazasi to'plamidagi hujjatlar.
WEB dasturining mijoz qismining arxitekturasi quyidagilardan iborat:
- mijozlarni yo'naltirish dasturining ildizlari (SPA -
Single Page Application) va ingl. O'zgartirishga imkon beradi
to'liq sahifa qayta yuklashsiz brauzer ko'rinishi. (In
rasm bo'yicha 2)
Ma'lumotlar vizuallashtirishni amalga oshiruvchi komponentlar va uslublar
mijozlar brauzeri (17-rasmga binoan, qo'shimcha L)
WEB dasturining mijoz qismida ma'lumotlarni oqimining qayta oqimlari mafkurasi
[41]. Amallar orqali ma'lumotlar do'konga (Store) kiradi (in
Shakl 18 ga binoan, qo'shimcha M), u erda ma'lumotlarning qulashi
hodisalarni eshitish orqali
saqlash o'zgarishlar. Bu holda vakolatxonalar
Reaktlarni qayta ishlash.
- WEB-dasturiga WEB-brauzer orqali foydalanuvchi kiradi
va boshlang'ich ekranni ko'radi (19-rasmga muvofiq).
Avtomatik ravishda istasa, foydalanuvchi "Bor" tugmasini bosadi
eng yaqin bo'sh joyni saqlang yoki tugmasini bosing
"Yoki qo'lda" kitobini zaxiralash
bepul mashinalar uchun joy.
"Borrow" tugmachasini bosganidan keyin tizim
avtomatik tarzda foydalanuvchi uchun eng yaqin bo'sh joyni oladi,
tegishli bo'lgan mashinalar maydonini qizil rangdagi holatga keltiradi
joy joy olgan degan ma'noni anglatadi) va avtotransportni yarim o'tkazgich bilan qoplaydi
quyuq kulrang fon, foydalanuvchini boshqasiga kitob berishga imkon bermaydi
qo'l bilan joylashtiring (shakl 20 ga binoan).
Foydalanuvchidan "Yoki kitob" tugmasini bosgandan keyin
Qo'lda "deb nomlangan tizimda mashinalar holatiga ega mashinalar mavjud
joylar (21-rasmga muvofiq). Foydalanuvchining har qanday ustiga bosing
bo'sh joy, bu mashinalar joyining holati qizil rangga ega
(ya'ni, joy ishg'ol qilingan degan ma'noni anglatadi) va mashinalar yopilgan
shaffof quyuq kulrang fon, foydalanuvchi bermayapti
boshqa qo'ltiqni qo'lda (rasmga ko'ra) qo'llang
20).
Joyni joylaganingizdan so'ng, mos keladigan ma'lumotlar bazasida o'zgartiriladi.
hujjat va boshqa barcha foydalanuvchilar natijani ko'radi
ushbu foydalanuvchiga buyurtma berish.
47
Shunday qilib, yuqorida bayon etilgan dasturni amalga oshirishning namunasi bo'lgan
Reakt kutubxonalari. Avtoulovlar joylari (mashinalar qatorlari) bo'lgan "chiziqlar"
Bunday holda, ular funktsiyasidan foydalangan holda, tuziladi
serverdan olingan ma'lumotlar (22-rasmga muvofiq). Bu erda
Bunday holda, siz joylarning sonini ancha dinamik ravishda yaratishingiz mumkin
har bir qatorni, shuningdek joylarning o'zlarini mashinalar zonasida joylashishini aniqlaydi. Ammo
yo'lni chizish kerak bo'lganda vazifa murakkabdir
joylarda, hech bo'lmaganda sxematik tarzda. Bunday holda, eng oson yo'li
SVG chizilgan vositalari, masalan, D3.js kutubxonasi.
D3 bilan siz shuningdek funksiyalarni belgilashingiz mumkin
mashinada turli xil narsalarni chizish uchun koordinatalarni hisoblash
zona (bu holda, mashinalar zonasi uchun joy
SVG ko'rsatish). Misol uchun, chizish uchun ma'lumotlarni olish funktsiyasi
Birinchi mashinalar qatoridagi doiralar (vaziyatlarni ko'rsatmoqda) xuddi shunday ko'rinadi
juda kichik (shakl 23ga binoan).
Biroq, bu funksiya faqat doiralarni qaytaradi. Majburiy
bir necha vazifani bajaradi: marshrutni chizish uchun (buzilgan liniya yoki
strelka va chiziqlar chizish uchun)
mashinalar joylari. Shunday qilib, Reactning yanada qulayroq bo'lishi mumkin degan xulosaga kelish mumkin
chunki bunday muammolar echimi bu kutubxona imkoniyatga ega
tarkibiy qismlarni qayta ishlatish va ikkinchisiga "investitsiya qilish". Biroq, vazifa
dinamik chizilgan chizilgan o'z ichiga oladi
Faqat React bilan chizish deyarli mumkin emas. bilan
uning virtual DOM-dan foydalanish. Ish mezonlari davomida aniqlangan
texnologiya taqqoslash uchun. Tavsiya etilgan mezonlarga muvofiq
React, D3 texnologiyalarini solishtirish va ularning integratsiyasi natijasida (React +
D3). Taqqoslash natijalari 4-jadvalda keltirilgan.
49
Jadval 4 - Smart Parking kompleksining WEB interfeysini amalga oshirish uchun reakt va D3 texnologiyalarini taqqoslash
Qiyosiy tahlil natijalari shuni aniq ko'rsatdi
samarali va ayni paytda nisbatan oddiy echim hisoblanadi
SVG va React va D3 kutubxonalarini birgalikda almashish,
garchi u juda katta eshik ochilishini talab qilsa ham
rivojlanish, ushbu yechim sizni samarali tarzda yaratishga imkon beradi
interfeysi, uni samarali va o'lchovli holga keltiring
yangi mijozlar talablarining paydo bo'lishi.
Yuqorida tavsiflangan texnologiyalarni integratsiyalashganidan keyin,
foydalanuvchilarga ko'rsatilgan jadvalga sxematik yo'lni ko'rsatish imkoniyati
joylar (24-rasmga muvofiq).
Qulay test uchun avtomatik ravishda bekor qilish bekor qilinadi.
15 sekunddan keyin serverda. Haqiqiy hayotda siz ushbu vaqtni ko'paytirasiz,
Masalan, 30 daqiqaga qadar. Avtotransport maydonchalarining "statuslari" haqiqiy ko'rinishda ko'rsatiladi
chunki vaqt WEB dasturida har bir so'rovnoma o'tkaziladi
ikkinchi so'rovni serverdan oladi va undan mashinalar joylari haqida ma'lumot oladi.
Shunday qilib, sahifani faqat pulni olish haqida ma'lumot olish uchun yangilamasdan ham mumkin
Shuningdek, yaqinda ishg'ol qilingan yoki kitoblar bilan tanishishingiz mumkin
mashinalar joylari.
Do'stlaringiz bilan baham: |