Amaliyot ishi - Muxammad al-xorazmiy nomidagi toshkent axborot texnologiyalari

|
Muxammad al-xorazmiy nomidagi toshkent axborot texnologiyalari
|
bet | 4/8 | Sana | 17.05.2024 | Hajmi | 0,61 Mb. | | #240627 |
Bog'liq QodirovSh. hisobot (3)Amaliyot ishi tarkibi: Ushbu amaliyot ishi kirish, ikkita bob, xulosa, foydalanilgan adabiyotlar ro’yxati hamda ilovadan tashkil topgan. Shuningdek, bitiruv ishi vizual elementlar – jadvallar va ekran tasvirlariga ega.
II. BITIRUV OLDI AMALIYOT JARAYONIDA BITIRUV ISHI UCHUN ISHLAB CHIQILGAN MASALALAR Tizim arxitekturasi
Zamonaviy tizim veb-ilovalar arxitekturasini yaratish korxonalar raqobatbardosh bo'lib qolishi va foydalanuvchilarning o'sib borayotgan talablariga javob berishi uchun juda muhimdir. Yaxshi ishlab chiqilgan arxitektura moslashuvchanlik, kengayish, barqarorlik, xavfsizlik va yuqori ishlashni ta'minlaydi.
Tizim veb-ilova arxitekturasi mijoz va server komponentlarini tizimli loyihalash va tashkil etishni anglatadi. Odatda oxirgi foydalanuvchiga keng qamrovli yechimni taqdim etish uchun birgalikda ishlaydigan bir nechta qatlamlardan iborat. Zamonaviy veb-ilovalar arxitekturasini yaratishda miqyoslilik, ishonchlilik, xavfsizlik va texnik xizmat ko'rsatish imkoniyatlarini hisobga oling.
Zamonaviy veb-ilovalar ishlashi :
Biz veb odatda qanday ishlashining soddalashtirilgan tavsifini tayyorladik: Foydalanuvchi veb-brauzerni ochadi va veb-ilovaning URL manzilini kiritadi.
Brauzer veb-ilovani joylashtirgan serverga HTTP so'rovini yuboradi. Server so'rovni qabul qiladi va so'rovni qayta ishlash uchun tegishli server tomoni komponentidan foydalanadi. Server tomoni komponenti ma'lumotlar bazasidan ma'lumotlarni oladi va tegishli javobni yaratadi.
Javob brauzerga HTTP javobi sifatida yuboriladi. Brauzer javobni oladi va javobni foydalanuvchi interfeysi sifatida ko'rsatish uchun tegishli mijoz komponentlaridan (HTML, CSS va JavaScript kabi) foydalanadi. Foydalanuvchi interfeysi bilan o'zaro aloqada bo'lib, serverga qo'shimcha HTTP so'rovlarini ishga tushiradi. Server har bir so'rovni qabul qiladi va tegishli server tomoni komponenti yordamida uni qayta ishlaydi. Server tegishli javobni ishlab chiqaradi va uni HTTP javobi sifatida brauzerga qaytaradi. Brauzer javob oladi va mos ravishda foydalanuvchi interfeysini yangilaydi. Jarayon foydalanuvchi veb-ilova vazifasini bajarmaguncha davom etadi.
Tizimnig veb-ilovalar arxitekturasining komponentlari. Veb-ilovaning ikki tomoni bor - old va orqa tomon.
Front-end foydalanuvchiga ko'rinadigan va foydalanishi mumkin bo'lgan veb-ilovaning bir qismi bo'lib, tugmalar, shakllar va menyular kabi foydalanuvchi interfeysi (UI) elementlarini o'z ichiga oladi.
Back-end serverda ishlaydigan veb-ilovaning bir qismidir. Odatda server va ma'lumotlar bazasidan iborat.
1-rasm. Veb-ilova tizming so'rov - javob aylanishi.
Foydalanuvchi interfeysi (UI). UI foydalanuvchi bilan oʻzaro aloqada boʻladigan, kontentni koʻrsatadigan va kiritilgan maʼlumotlarni qabul qiluvchi veb- ilova komponentidir. U turli texnologiyalar yordamida amalga oshirilishi mumkin, masalan: HTML — veb-sahifa mazmunini tuzish uchun CSS — sahifani uslublash va uni JavaScript-ni ko‘z o‘ngida jozibali qilish — UI ga interaktivlik va funksionallikni qo‘shish Yaxshi UI dizayni foydalanuvchi ehtiyojlari va afzalliklarini tushunishni o‘z ichiga oladi. , UI elementlarini mantiqiy va intuitiv tarzda tartibga solish va ilovadan foydalanish va navigatsiyani osonlashtirish.
Veb-server mijozning kiruvchi so'rovlarini ko'rib chiqadi va javoblarni yuboradi. U veb-ilovani joylashtiradi va HTML-sahifalar, tasvirlar va boshqa statik tarkibga xizmat qiladi. Shuningdek, u ulanishlar, seanslar va cookie-fayllarni
boshqaradi va hujumlardan himoya qilish uchun SSL/TLS shifrlash kabi xavfsizlik mexanizmlarini amalga oshiradi.
Ma'lumotlar bazasi serveri veb-ilova uchun ma'lumotlarni saqlaydi va boshqaradi. Uning vazifalari ma'lumotlarni yaratish, yangilash, o'chirish va so'rash, uning yaxlitligi va xavfsizligini ta'minlashni o'z ichiga oladi.
Veb-ilovalarning ishlashini yaxshilash uchun ma'lumotlar bazasi serverlari keshlash va indekslash usullaridan foydalanadilar. Shuningdek, ular ma'lumotlarni yo'qotishdan himoya qilish va ishlamay qolganda uning mavjudligini ta'minlash uchun zaxira va tiklash mexanizmlarini amalga oshiradilar.
Ma'lumotlar bazasining mashhur serverlari: MySQL, Oracle va MongoDB.
Domen nomlari tizimi (DNS) veb-ilovalar arxitekturasining muhim tarkibiy qismidir. U inson tomonidan oʻqiladigan domen nomlarini (masalan, www.example.com) kompyuterlar tushuna oladigan IP manzillarga (masalan, 192.0.2.1) tarjima qiladi.
Uning asosiy vazifasi foydalanuvchilarga veb-serverlar va mijozlar o'rtasidagi aloqani osonlashtirgan holda eslab qolish oson domen nomlaridan foydalangan holda veb-resurslarga kirish usulini ta'minlashdan iborat.
Xabar almashish (Messaging Middleware) uchun mo'ljallangan vosita turli xil dasturiy komponentlar yoki tizimlar o'rtasidagi aloqani ta'minlaydi, bu ularga bir-biri bilan xabarlar va ma'lumotlarni almashish imkonini beradi. U nuqtadan nuqtaga, nashr qilish-obuna va so'rov-javob kabi turli xil aloqa shakllarini boshqarishi mumkin.
Mashhur xabar almashish o'rta dasturiy echimlari: Apache Kafka, RabbitMQ va ActiveMQ.
Yuk balanslagichi(Load Balancer) resurslardan foydalanishni optimallashtirish, o'tkazish qobiliyatini oshirish va javob vaqtini kamaytirish uchun kiruvchi trafikni bir nechta serverlar bo'ylab taqsimlaydi. Natijada, u veb-ilovaning ishlashi va ishonchliligini oshiradi.
Mashhur yuk balanslagichlari: HAProxy, NGINX va F5.
Kesh(Cache) tez-tez foydalaniladigan ma'lumotlar yoki resurslarni tezkor kirish xotirasida yoki saqlash joyida saqlaydigan infratuzilma komponentidir. Uning asosiy maqsadi samaradorlik va miqyosni yaxshilashdir.Mashhur keshlash yechimlari: Redis, Memcached va Varnish.
Kontentni etkazib berish tarmog'i (CDN) - bu global miqyosda taqsimlangan serverlar tarmog'i bo'lib, foydalanuvchilarga ularga eng yaqin serverdan tarkibni etkazib beradi. Bu kechikish va tarmoq tiqilib qolishini kamaytirish orqali veb-ilovaning ishlashi va mavjudligini yaxshilaydi. Ommabop CDNlar: Cloudflare, Akamai va Amazon CloudFront. Veb-ilova komponentlarining bir nechta modellari mavjud, jumladan mijoz-server, peer-to- peer va gibrid model.
2-rasm. Tizimnig veb-ilova arxitektura diagrammasi.
Ushbu diagramma biz muhokama qilgan barcha narsalarni birlashtirib, dastur arxitekturasini tasavvur qilishga yordam beradi.
3-rasm.Tizimnig veb-ilovalar arxitekturasining qatlamlari.
Taqdimot qatlami(Presentation Layer) HTML, CSS va JavaScript bilan ishlovchi ilova foydalanuvchi interfeysini boshqaradi. Shuningdek, u foydalanuvchi ma'lumotlarini oladi va uni API yoki interfeyslar orqali o'zaro ishlash, qayta ishlash uchun biznes darajasiga yuboradi. Taqdimot qatlami odatda kontrollerlar, ko'rinishlar va andozalar kabi veb-komponentlarni o'z ichiga oladi.
Biznes (yoki dastur) qatlami (Business Layer) veb-ilovaning biznes mantiqini boshqaradi. Unda foydalanuvchi so'rovlarini bajarish uchun zarur harakatlarni bajarish uchun mas'ul bo'lgan kontrollerlar, xizmatlar va modellar mavjud. Biznes darajasi zarur bo'lganda ma'lumotlarni olish yoki manipulyatsiya qilish uchun ma'lumotlarga kirish qatlami bilan o'zaro ta'sir qiladi.
Ma'lumotlarga kirish (yoki doimiylik) qatlami (Data Access Layer) dastur ma'lumotlarini saqlash va ma'lumotlar do'konidan olish mumkin bo'lgan formatga aylantiradi. U ma'lumotlar bazasi bilan o'zaro aloqada bo'lgan komponentlarni o'z ichiga oladi, masalan, ma'lumotlarga kirish ob'ektlari (DAO), ob'ektga aloqador xaritalar (ORM) va saqlangan protseduralar.
Ma'lumotlar bazasi qatlami (Database Layer) ma'lumotlar bazasini boshqarish tizimi (DBMS) va ma'lumotlar bazasida saqlanadigan ma'lumotlarni o'z ichiga oladi. Ushbu qatlam ma'lumotlarni osongina so'raladigan va ma'lumotlarga kirish qatlami tomonidan boshqarilishi mumkin bo'lgan tuzilgan formatda saqlaydi.
Qatlamlarning birgalikda ishlashining algoritmik ko'rinishi:
Foydalanuvchi foydalanuvchi interfeysi orqali kirishni ta'minlash orqali taqdimot qatlami bilan o'zaro ta'sir qiladi.
Taqdimot qatlami foydalanuvchi ma'lumotlarini oladi va uni biznes darajasiga yuboradi.
Biznes darajasi foydalanuvchi kiritgan ma'lumotlarni qayta ishlaydi, kerakli harakatlarni bajaradi va ma'lumotlarga kirish qatlami orqali ma'lumotlarni oladi yoki yangilaydi.
Ma'lumotlarga kirish qatlami ma'lumotlar bazasi qatlamidan ma'lumotlarni oladi yoki yangilaydi va uni biznes darajasiga qaytaradi.
Biznes darajasi olingan ma'lumotlarni qayta ishlaydi va taqdimot qatlamiga javob hosil qiladi.
Taqdimot qatlami biznes sathidan javob oladi va mos ravishda foydalanuvchi interfeysini yangilaydi.
Jarayon takrorlanadi, chunki foydalanuvchi qo'shimcha ma'lumot kiritadi yoki dastur bo'ylab harakatlanadi.
Veb-ilovalarni loyihalash va ishlab chiqish haqida gap ketganda, tanlash uchun turli xil arxitektura turlari mavjud.
Bir sahifali ilovalar (SPA).SPA-larda veb-ilova faqat bir marta yuklanadi va foydalanuvchi o'zaro aloqada bo'lganda tarkibni dinamik ravishda yangilaydi. Ma'lumotlar API orqali asinxron tarzda yuklanadi, bu esa uni yanada sezgir qiladi va server yukini kamaytiradi. Ushbu arxitektura juda ko'p foydalanuvchi shovqinini va real vaqtda ma'lumotlarni yangilashni talab qiladigan ilovalar uchun javob beradi.Misollar: Gmail, Trello, Spotify va Twitter.
4-rasm. Bitta sahifali dastur va ko'p sahifali dastur.
Server tomonida ko'rsatilgan ilova (SSR). SSRda server har bir so'rov uchun HTML sahifalarini yaratadi va mijoz faqat yakuniy natijani oladi. Ushbu arxitektura tez yuklash vaqtlari va yaxshi SEO talab qiladigan ilovalar uchun javob beradi, lekin u SPAlarga qaraganda sekinroq bo'lishi mumkin.Misollar: WordPress, Airbnb, Shopify.
5-rasm. Server tomonida ishlaydigan (SSR).
Progressiv veb-ilova (PWA).PWA oflayn kirish, push-bildirishnomalar va to'liq ekran rejimi kabi xususiyatlarga ega mahalliy mobil ilova kabi ishlaydi. Ushbu arxitektura mobil qurilmalarda mavjud bo'lishi va mahalliy ilovalar bilan bir xil foydalanuvchi tajribasiga ega bo'lishi kerak bo'lgan echimlar uchun javob beradi.Misollar: Starbucks, Pinterest, Forbes, Uber va Twitter Lite.
6-rasm. Progressiv veb-ilova (PWA)
Backend. Mikroservislar arxitekturasida backend kichik, mustaqil xizmatlarga bo'linadi, ular bir-biri bilan API orqali bog'lanadi. Har bir xizmat ma'lum bir funktsiya uchun javobgardir: autentifikatsiya, to'lovlar yoki xabarlar. Bu yuqori darajada kengaytiriladigan arxitektura alohida komponentlar ustidan
ko'proq nazorat qilish imkonini beradi, ammo boshqarish murakkab bo'lishi mumkin. Misollar: Netflix, Amazon, Uber va Airbnb.
7-rasm. Mikroservis arxitekturasi.
Serversiz arxitektura.Ushbu arxitekturada backend AWS yoki Azure kabi bulutga asoslangan yechimlar yordamida qurilgan. Har bir funktsiya foydalanuvchilarni ro'yxatdan o'tkazish yoki elektron pochta xabarnomalarini yuborish kabi vazifalar uchun javobgardir. U yuqori darajada kengaytiriladigan va tejamkor, ammo boshqarish va disk raskadrovka qilish qiyin.Misollar: Coca-Cola, Capital One, The New York Times va Fender.
8-rasm. Serversiz arxitektura.
Aniq veb-ilovalar arxitekturasining eng yaxshi usuli.Veb-ilovalar arxitekturasida ishlayotgan ishlab chiquvchilar bir qator omillarni hisobga olishlari kerak:
Masshtablilik - ortib borayotgan yuklarni boshqarish va gorizontal yoki vertikal ravishda o'lchash.
Modullik - oson sinov, o'zgartirishlar va xatolarni tuzatish uchun.
Xavfsizlik - maxfiy ma'lumotlarni himoya qilish va ruxsatsiz kirishni oldini olish.
Ishlash - sezgir va tezkor foydalanuvchi tajribasini kafolatlash.
Mavjudlik — dastur nosozliklar paytida ham mavjud bo'lishini ta'minlash.
Kengaytirish - kelajakdagi o'zgarishlar va yangilanishlarga ruxsat berish.
Standartlashtirish - barqarorlik va texnik xizmat ko'rsatish qulayligini ta'minlash.
Moslashuvchanlik - vaqt o'tishi bilan o'zgaruvchan talablar va yaxshilanishlarga moslashish.
Hujjatlar - hamkorlikni yaxshilash, xatolarni kamaytirish va texnik xizmat ko'rsatishni soddalashtirish.
|
| |