Client–Server Arxitekturasi
Dasturiy ta'minot va tarmoq tizimlarida eng ko'p qo'llaniladigan model bu Client–Server arxitekturasi. U foydalanuvchilar (client) va resurslarni boshqaruvchi markaziy xizmat (server) o'rtasidagi muloqotni ifodalaydi.
Oddiy qilib aytganda:
- Client (Mijoz): so'rov yuboradi (masalan: brauzer orqali sahifa ochadi).
- Server: javob qaytaradi (masalan: web-server HTML sahifa yuboradi).
Ishlash prinsipi
- Client - foydalanuvchining qurilmasida ishlaydi (brauzer, mobil ilova, desktop dastur).
- Server - esa doimiy ishlaydigan markaziy dastur (odatda internet orqali ulanish mumkin).
- Client request (so'rov) yuboradi. Server so'rovni qabul qiladi, qayta ishlaydi va response (javob) yuboradi.
teachcomputerscience.com
Real hayotiy misol
Tasavvur qiling, siz brauzer orqali https://youtube.com
ga kirdingiz:
- Client (sizning brauzeringiz): "Menga Youtube bosh sahifasini yubor" deydi.
- Server (Youtube serverlari): HTML, CSS, JavaScript fayllarini va kontentni yuboradi.
- Client bu fayllarni ko'rsatib, foydalanuvchiga interfeys chiqaradi.
Client–Server afzalliklari
- Resurslarni markazlashtirilgan holda boshqarish mumkin.
- Xavfsizlikni nazorat qilish oson (bir joyda boshqariladi).
- Yangilanishlarni faqat serverda qilish kifoya (clientlar yangilanishni avtomatik oladi).
- Ko'plab foydalanuvchilar bilan ishlash uchun mos.
Client–Server kamchiliklari
- Server single point of failure bo'lishi mumkin (server ishdan chiqsa, barcha clientlarga xizmat to'xtaydi).
- Serverni kengaytirish (scaling) talab qilinadi (vertikal yoki gorizontal).
- Tarmoq orqali ulanishda kechikish (latency) paydo bo'ladi.
Client–Server arxitekturasiga muqobil Peer-to-Peer (P2P) barcha qurilmalar bir-biriga to'g'ridan-to'g'ri ulanadi (misol: torrent). Client–Server modelida esa doimiy markaziy server mavjud bo'ladi.
Client–Server arxitekturasi web, mobil, desktop va ko'plab xizmatlarning asosi. Internetdagi deyarli barcha dasturlar (Google, Facebook, Telegram, bank ilovalari) shu modelda ishlaydi.