Dasturiy injiniringga kirish


Download 32.67 Kb.
Sana29.07.2023
Hajmi32.67 Kb.
#1663560
Bog'liq
Mustaqil ish


MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI



Dasturiy injiniringga kirish”
fanidan

MUSTAQIL ISH


Mavzu: Sathli arxitektura shablonlari
Guruh: ISE001
Bajardi: Azizov Zafarbek
Tekshirdi: Xidirova Charos
TOSHKENT 2023

Reja:


  1. Nazariy malumot

  2. Savollar

  3. Test

  4. Glossary

  5. Foydalanilgan adabiyotlar

Annotatsiya:


Ushbu mustaqil ish arxitektura naqshlari yoki uslublari sifatida ham tanilgan qatlamli arxitektura shablonlarini chuqur o'rganishni ta'minlaydi. Qatlamli arxitektura - bu modullilik, barqarorlik va tashvishlarni ajratishga yordam beradigan dasturiy ta'minot dizayniga tizimli yondashuv. Ushbu inshoda uchta qatlamli arxitektura, Model-View-Controller (MVC), Model-View-ViewModel (MVVM), Olti burchakli Arxitektura, Xizmatga yo'naltirilgan Arxitektura (SOA) va Mikroservislar arxitekturasini o'z ichiga olgan oltita keng tarqalgan qatlamli arxitektura shablonlari muhokama qilinadi. Har bir shablon o'zining asosiy komponentlari, afzalliklari, mulohazalari va real hayotdagi ilovalari nuqtai nazaridan tahlil qilinadi. Qatlamli arxitektura shablonlarining asosiy tushunchalari va xususiyatlarini tushunib, dasturiy ta'minot ishlab chiquvchilari dasturiy ta'minot tizimlarini loyihalash va amalga oshirishda asosli qarorlar qabul qilishlari mumkin.

Arxitektura naqshlari yoki me'moriy uslublar sifatida ham tanilgan qatlamli arxitektura shablonlari dasturiy ta'minot tizimlarini loyihalash va tartibga solishda tizimli yondashuvni ta'minlaydi. Ushbu andozalar ilovani alohida qatlamlarga bo'lish uchun bir qator qoidalar va ko'rsatmalarni belgilaydi, ularning har biri o'z mas'uliyati va o'zaro ta'siriga ega. Qatlamli arxitektura modullilik, barqarorlik va tashvishlarni ajratishga yordam beradi, bu esa dasturiy ta'minot tizimlarini ishlab chiqish, sinovdan o'tkazish va o'zgartirishni osonlashtiradi.


Quyida ba'zi tez-tez ishlatiladigan qatlamli arxitektura shablonlari keltirilgan:





  1. Uch bosqichli arxitektura: Bu eng mashhur qatlamli arxitektura shablonlaridan biridir. U uchta qatlamdan iborat: taqdimot qatlami, biznes mantiqiy qatlami va ma'lumotlarga kirish qatlami. Taqdimot qatlami foydalanuvchi interfeysi va o'zaro ta'sirini boshqaradi, biznes mantiqiy qatlami dastur mantig'i va qoidalarini o'z ichiga oladi, ma'lumotlarga kirish qatlami esa ma'lumotlarni saqlash va qidirish bilan shug'ullanadi.




  1. Model-View-Controller (MVC): MVC foydalanuvchi interfeyslarini ishlab chiqish uchun keng tarqalgan arxitektura namunasidir. U ilovani bir-biriga bog'langan uchta komponentga ajratadi: ilova ma'lumotlari va mantiqini ifodalovchi model, foydalanuvchi interfeysini taqdim etuvchi ko'rinish va foydalanuvchi kiritgan ma'lumotlarni boshqaradigan va shunga mos ravishda model va ko'rinishni yangilaydigan boshqaruvchi.




  1. Model-View-ViewModel (MVVM): MVVM - bu MVC-dan ishlab chiqilgan arxitektura namunasi bo'lib, u ma'lumotlarni bog'lash va tashvishlarni ajratishga qaratilgan. U uchta asosiy komponentni o'z ichiga oladi: ma'lumotlar va biznes mantig'ini ifodalovchi model, foydalanuvchi interfeysi va vizual taqdimotni boshqaradigan ko'rinish va model va ko'rinish o'rtasida vositachi bo'lib, ma'lumotlar va buyruqlar bilan ta'minlovchi ko'rinish modeli. .




  1. Olti burchakli arxitektura: Portlar va adapterlar arxitekturasi sifatida ham tanilgan, olti burchakli arxitektura dastur komponentlarini bo'shashmasdan ulash va izolyatsiyasiga urg'u beradi. U tashqi bog'liqliklar va o'zaro ta'sirlarni boshqarish uchun tashqi qatlamlar bilan o'ralgan dastur yadrosi yoki biznes mantig'ini ifodalovchi ichki olti burchakdan iborat. Ichki olti burchakli tashqi qatlamlarga bog'liq emas, bu oson sinov va o'zgartirish imkonini beradi.




  1. Xizmatga yo'naltirilgan arxitektura (SOA): SOA arxitektura uslubi bo'lib, bir-biriga bog'langan, o'zaro ishlaydigan xizmatlar to'plami sifatida ilovalarni loyihalash va qurishga qaratilgan. Ushbu kontekstdagi xizmatlar aniq belgilangan interfeyslarni ochib beradigan va bir-biri bilan tarmoq orqali bog'lana oladigan mustaqil modullardir. Ushbu arxitektura tizimni loyihalashda qayta foydalanish, kengayish va moslashuvchanlikni ta'minlaydi.




  1. Mikroservislar arxitekturasi: Mikroservislar arxitekturasi SOA ning kengaytmasi boʻlib, u ilovalarni kichik, mustaqil xizmatlar toʻplami sifatida taʼkidlaydi. Har bir xizmat o'ziga xos biznes qobiliyatini ifodalaydi va mustaqil ravishda ishlab chiqilishi, joylashtirilishi va kengaytirilishi mumkin. Xizmatlar o'rtasidagi aloqa odatda HTTP yoki xabar navbatlari kabi engil protokollar orqali amalga oshiriladi.

Bular dasturiy ta'minotni ishlab chiqishda keng qo'llaniladigan qatlamli arxitektura shablonlarining bir nechta misollari. Har bir shablonning o'ziga xos afzalliklari va mulohazalari bor va arxitektura tanlovi loyihaning o'ziga xos talablari va cheklovlariga bog'liq. Kengaytiriladigan, barqaror va mustahkam dasturiy ta'minot tizimini ta'minlash uchun o'zaro kelishuvlarni baholash va tegishli arxitektura uslubini tanlash muhimdir.


Eng keng tarqalgan arxitektura namunasi qatlamli arxitektura naqshidir, aks holda n-darajali arxitektura namunasi deb nomlanadi. Ushbu naqsh ko'pgina Java EE ilovalari uchun de-fakto standartdir va shuning uchun ko'pchilik arxitektorlar, dizaynerlar va ishlab chiquvchilar tomonidan keng tanilgan. Qatlamli arxitektura namunasi ko'pgina kompaniyalarda mavjud bo'lgan an'anaviy IT-kommunikatsiya va tashkiliy tuzilmalarga chambarchas mos keladi va bu ko'pgina biznes ilovalarini ishlab chiqish uchun tabiiy tanlovdir.


Shakl tavsifi: Qatlamli arxitektura naqshidagi komponentlar gorizontal qatlamlarga tashkil etilgan bo'lib, har bir qatlam dastur ichida o'ziga xos rolni bajaradi (masalan, taqdimot mantig'i yoki biznes mantig'i). Qatlamli arxitektura namunasi naqshda mavjud bo'lishi kerak bo'lgan qatlamlar soni va turlarini aniqlamasa-da, ko'pchilik qatlamli arxitekturalar to'rtta standart qatlamdan iborat: taqdimot, biznes, qat'iylik va ma'lumotlar bazasi . Ba'zi hollarda, biznes qatlami va qat'iylik darajasi bitta biznes qatlamiga birlashtiriladi, ayniqsa qat'iylik mantig'i (masalan, SQL yoki HSQL) biznes qatlami komponentlari ichiga kiritilgan bo'lsa. Shunday qilib, kichikroq ilovalar faqat uchta qatlamga ega bo'lishi mumkin, kattaroq va murakkabroq biznes ilovalari esa besh yoki undan ortiq qatlamni o'z ichiga olishi mumkin.


Qatlamli arxitektura naqshining har bir qatlami dastur ichida o'ziga xos rol va mas'uliyatga ega. Misol uchun, taqdimot qatlami barcha foydalanuvchi interfeysi va brauzer aloqasi mantig'ini boshqarish uchun javobgar bo'ladi, biznes qatlami esa so'rov bilan bog'liq bo'lgan muayyan biznes qoidalarini bajarish uchun javobgar bo'ladi. Arxitekturadagi har bir qatlam ma'lum bir biznes so'rovini qondirish uchun bajarilishi kerak bo'lgan ish atrofida mavhumlikni hosil qiladi. Misol uchun, taqdimot qatlami qanday qilib bilishi yoki tashvishlanishi shart emasmijoz ma'lumotlarini olish; u faqat ma'lum bir formatda ekranda ushbu ma'lumotni ko'rsatishi kerak. Shunga o'xshab, biznes darajasi mijozlar ma'lumotlarini ekranda ko'rsatish uchun qanday formatlash yoki hatto mijoz ma'lumotlari qayerdan kelganligi haqida qayg'urishi shart emas; u faqat qat'iylik qatlamidan ma'lumotlarni olishi, ma'lumotlarga nisbatan biznes mantig'ini bajarishi (masalan, qiymatlarni hisoblash yoki jamlangan ma'lumotlar) va bu ma'lumotlarni taqdimot qatlamiga o'tkazishi kerak.


Nazariy savollar:


Savol 1:
Sathli arxitektura nima uchun foydalaniladi va qanday foydalar olib keladi?

Javob: Sathli arxitektura dastur kodini funksional bo'limlarga bo'lish uchun foydalaniladi. Bu shablon foydalaridan ba'zi odatiylar: kodni bo'lishishi va bo'shlig'i qilinishi oson bo'lishi, qayta ishlanishi va ishlab chiqilishi oson bo'lishi, kodni qayta ishlash va test qilishni osonlashtirishi.


Savol 2:
Layered (Sathli) arxitektura tuzilishida qaysi sathlar keng qo'llaniladi? Ularning har biri qanday vazifalarga ega?


Javob: Sathli arxitekturada qo'llaniladigan sathlar umumiy ravishda boshqaruvchi sath (presentation layer), biznes sath (business layer), va ma'lumotlar sath (data layer) sathlardir. Boshqaruvchi sath tizimning foydalanuvchi interfeysini tashkil etishga, biznes sath biznes loyihalarni bajarishga, va ma'lumotlar sath ma'lumotlarni saqlash va qayta ishlashga murojaat qiladi.


Savol 3:
Model-View-Controller (MVC) arxitekturasi qanday tuzilgan? Uning har bir qismi nima uchun javobgarlik yuklaydi?


Javob: Model-View-Controller (MVC) arxitekturasi tizimni model (ma'lumotlar), ko'rinish (view), va boshqaruvchi (controller) qismga ajratadi. Model ma'lumotlarni saqlaydi, view ma'lumotlarni ko'rsatish va foydalanuvchi bilan muloqotda bo'ladi, va controller foydalanuvchi bilan interaksiya qiladi va ma'lumotlarni boshqaradi.


Savol 4:
Microservices arxitekturasi nimaga yo'naltirilgan va qanday foydalar olib keladi?


Javob: Microservices arxitekturasi loyihalarni mustaqil xizmatlar sifatida bo'lishga yo'naltirilgan. Bu shablonning foydalaridan ba'zi odatiylar: koddagi bog'liqliklarni kuchaytirish, loyihalarni o'zaro o'zgarishlardan mustaqil qilish, bo'shlig'i qilishni osonlashtirish, yuqori skalalash imkoniyatlarini berish, va loyihalarni o'zaro o'zgarishlardan mustaqil tarzda yuritish.


Savol 5:
Hexagonal (Ports and Adapters) arxitekturasi qanday tuzilgan? Uning boshqa nomlari ham mavjudmi va u qanday vazifalarni yechishda yordam beradi?


Javob: Hexagonal (Ports and Adapters) arxitekturasi dasturlashda ichki va tashqi o'zgaruvchanliklarni ajratishga yordam beradi. Uning boshqa nomlari port-adapter arxitekturasi yoki onion architecture sifatida ham nomlanadi. Ushbu arxitekturada har bir komponentning ichki va tashqi interfeyslari mavjud bo'lib, ichki komponentlar va tashqi xizmatlar o'zaro bog'liqliklarni qo'llab-quvvatlaydi.


Test:
Test 1:


Sathli arxitektura nima uchun foydalaniladi?
a) Kodni optimallashtirish uchun.
b) Dasturlar yaratish uchun.
c) Dastur muhiti uchun to'liq to'g'ridan-to'g'ri kod.
d) Dastur qurilishida qulaylik va uzoq muddatli yaxlitlash uchun.

Test 2:
2. Layered (Sathli) arxitekturasi qaysi tamoyilga asoslangan?


a) Dastur tizimini qo'llab-quvvatlash uchun.
b) Dasturlarni to'g'ri to'g'ridan-to'g'ri ishga tushirish uchun.
c) Biznes loyihalarni tahlil qilish uchun.
d) Dastur xavfsizligini ta'minlash uchun.

Test 3:
3. Sathli arxitektura qancha qismlardan tashkil topadi?


a) 2
b) 3
c) 4
d) 5

Test 4:
4. Service-Oriented Architecture (SOA) arxitekturasi nimaga e'tibor qiladi?


a) Xizmatlarni mustaqil tashkil etishga.
b) Biznes loyihalarni integratsiya qilishga.
c) Ma'lumotlarni yig'ishga.
d) Foydalanuvchi interfeysini tashkil etishga.

Test 5:
5. Hexagonal (Ports and Adapters) arxitekturasi nimaga yo'naltirilgan?


a) Biznes loyihalarni tashkil etishga.
b) Interfeys va ichki implementatsiyani ajratishga.
c) Dastur tizimini optimallashtirishga.
d) Dasturlar orasidagi bog'lanishni kamaytirishga.

Test 6:
6. Arxitektura sathlarining alohida responsibilikalari bo'lishi maqsadga muvofiqmi?


a) Ha, bunda har bir sathning o'ziga xos vazifalari mavjud.
b) Yo'q, sathlar o'zaro bog'liq emas.
c) Sathlar faqat kodni tashkil etish uchun bo'lib, vazifalar bilan aloqador emas.
d) Arxitekturada sathlar konsistentlikni ta'minlash uchun mavjud.

Test 7:
7. Model-View-Controller (MVC) arxitekturasi qaysi qismni o'z ichiga oladi?


a) Biznes loyihalarni.
b) Dasturlash tillarini.
c) UI (foydalanuvchi interfeysi) ni.
d) Ma'lumotlar bazasini.

Test 8:
8. Sathli arxitekturada qaysi sath boshqaruvchidir?


a) Boshqaruvchi sath.
b) Xizmat sath.
c) Kengaytirish sath.
d) Qo'llab-quvvatlash sath.

Test 9:
9. Microservices arxitekturasi nimaga ega?


a) Biznes loyihalarni tarkibiy qismga bo'lishga.
b) Dasturlash tillarini belgilashga.
c) Tizimning xizmatlarga bo'lishga.
d) Barcha loyihalarni bitta dasturda birlashtirishga.

Test 10:
10. Arxitektura sathlarining har biri o'ziga xos interfeyslarga ega bo'lishi kerakmi?


a) Ha, sathlar o'zaro interfeyslar bilan bog'liq bo'lishi kerak.
b) Yo'q, interfeyslar faqat boshqa sathlar bilan bog'liq emas.
c) Interfeyslar sathlar uchun tanlangan o'zaro aloqalarga bog'liq.
d) Sathlar interfeyslarsiz ham to'g'ri ishlay oladi.

Glossary:


Sathli arxitektura (Layered Architecture): Bu arxitektura shabloni dastur kodini funksional bo'limlarga, ya'ni sathlarga bo'lishga asoslangan. Har bir sathning o'ziga xos vazifalari mavjud bo'lib, har bir sath faqat uning ostida joylashgan sathlar bilan aloqada bo'ladi.

Sath (Layer): Sath, arxitekturadagi kodni funksional bo'limlarga bo'lish uchun qo'llaniladigan abstrakt tushunchadir. Har bir sath o'zining belgilangan vazifalarini bajaradi va uni ostida joylashgan sathlar bilan aloqada bo'ladi.


Boshqaruvchi sath (Presentation Layer): Boshqaruvchi sath, tizimning foydalanuvchi interfeysini tashkil etishga yordam beradi. Bu sathda tizimning tashqi interfeysi, ko'rinish va foydalanuvchi bilan muloqotni amalga oshiruvchi qismlar joylashadi.


Biznes sath (Business Layer): Biznes sath, dasturda loyihalarni yaratish va boshqarishga yo'naltirilgan. Ushbu sathda biznes loyihalarni tahlil qilish, loyihalarni bajarish va tashqi xizmatlarni chaqirish bilan bog'liq vazifalar amalga oshiriladi.


Ma'lumotlar sath (Data Layer): Ma'lumotlar sath, dasturda ma'lumotlarni saqlash va qayta ishlash bilan bog'liq vazifalarni bajaradi. Ushbu sathda ma'lumotlar ombori bilan muloqotni boshqarish, ma'lumotlarni qidirish va so'rovlar yuborish imkoniyatlari mavjud bo'ladi.


Sathlar orasidagi bog'lanish (Layer Interaction): Bu tushuncha, arxitekturadagi sathlar o'rtasidagi o'zaro aloqalarni ifodalaydi. Har bir sath, o'zining ostida va undan oldingi sathlar bilan muloqotda bo'ladi. Sathlar orasidagi bog'lanishlar yordamida ma'lumot va funktsiyalar o'zaro almashinuvni amalga oshiradi.


Sathlar o'rtasidagi interfeyslar (Layer Interfaces): Sathlar orasidagi interfeyslar, bir sathdan boshqa sathga murojaat qilish va o'zaro muloqotda bo'lishni ta'minlaydi. Bu interfeyslar yordamida sathlar o'zaro mustaqil bo'lishadi va bog'liqlikning minimallashtirilishi o'zaro aloqalarni tuzatadi.


Boshqaruvchi sath (Presentation Layer) misollar: Foydalanuvchi interfeysini tashkil etish uchun web interfeys, mobil ilovalar, GUI (Graphical User Interface) oynalari kabi elementlar.




Ma'lumotlar sath (Data Layer) misollar: Ma'lumotlarni saqlash uchun ma'lumotlar ombori (database), fayllar sistema, tarmoqlar orqali ma'lumotlarga murojaat kiritish, so'rovlar yuborish va javoblarini qayta ishlash bilan bog'liq funktsiyalar.
Download 32.67 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling