7.1. Mijoz-server arxitekturasi, tuzilishi va asosiy tushunchalari
Bir qarashda ikkita amaliy dasturlar o‘rtasida aloqani tashkil
etish sodda ishdek tuyiladi, ulardan biri mahalliy qismda va ikkinchisi
masofadan ishlatiladi. Ammo bu yondashuvni amalga oshirishda
ko‘plab savollar tug‘iladi. Ushbu savollardan ba’zilari quyidagilar
bo‘lishi mumkin:
1.
Har ikkala amaliy dasturlar ham xizmatlar uchun so‘rovlar
jo‘natish va xizmatlarni taqdim qilish imkoniyatiga ega bo‘lishi
kerakmi, yoki, ulardan biri faqat so‘rov jo‘natish va ikkinchisi faqat
xizmatni ta’minlash imkoniyatiga ega bo‘lishi kerakmi? Buning
yechimlaridan biri mahalliy mashinada ishlovchi va xizmatlar uchun
so‘rov jo‘natuchi
mijoz
deb nomlanuvchi amaliy dasturning
ishlatilishi, va masofadagi mashinada so‘rovlarga mos xizmatni
ta’minlovchi
server
deb ataladigan amaliy dasturning mavjud
bo‘lishidir. Boshqacha qilib aytganda, so‘rovlar jo‘natish va xizmat
bilan ta’minlash bir-biridan ajratilgan. Amaliy dastur yoki so‘rovlar
jo‘natuvchi mijoz, yoki xizmatni ta’minlovchi server bo‘lishi kerak.
Ushbu amaliy dasturlar birgalikda qo‘llanilib, bir hil nom bilan –
mijoz va server deb yuritiladi.
235
2.
Server faqat bitta maxsus mijoz uchun xizmat taqdim etishi
kerakmi, yoki istalgan mijozning server ta’minlay oladigan
xizmatlariga bo‘lgan so‘rovlariga javob berishi kerakmi? Eng keng
tarqalgan yechim bu –ixtiyoriy mijozning server ta’minlay oladigan
xizmatlarga so‘rovini qo‘llab-quvvatlashdir, bunda maxsus xizmatlar
nazarda tutilmaydi. Boshqacha aytganda, server – mijoz munosabati
birni – ko‘pga tamoyiliga asoslanadi.
3.
Kompyuter faqat yagona amaliy dasturni ishlatishi kerakmi
(mijoz yoki server)? Agar kerakli amaliy dasturiy ta’minot mavjud
bo‘lsa, Internetga ulangan ixtiyoriy kompyuter mijoz dasturini ishlata
olishi kerak. Server dasturlari doimiy ishlovchi kompyuterlarda
ishlatilishi kerak bo‘ladi. Bu haqida keyingi matnlarda batafsil
yoritilgan.
4.
Qachon amaliy dastur ishlatilishi kerak? Har doimmi yoki
faqat xizmatga ehtiyoj sezilgandami? Umuman olganda, xizmatga
so‘rov yuboruvchi mijoz dasturi faqat xizmatga ehtiyoj tug‘ilganda
ishlatiladi. Lekin xizmatlar bilan ta’minlovchi server dasturi doimiy
ishlashi talab etiladi. Chunki, uning xizmatlariga mijozlar tomonidan
ehtiyoj qachon paydo bo‘lishi va so‘rovlar yuborilishi haqida
ma’lumot mavjud bo‘lmaydi.
5.
Foydalanuvchi istagan ixtiyoriy xizmatlarni taqdim etuvchi
yagona, universal amaliy dasturiy ta’minot bo‘lishi kerakmi? Yoki har
bir xizmat uchun alohida dasturiy ta’minot bo‘lishi talab etiladimi?
TCP/IPda ko‘plab mijozlar tomonidan tez-tez so‘rov jo‘natiladigan
xizmatlar uchun mijoz-server amaliy dasturlar mavjud. Masalan,
fayllarga kirish, elektron pochta jo‘natmalari va boshqa xizmatlar
uchun alohida mijoz-server amaliy dasturlar mavjud. Moslashtirilgan
xizmatlardan foydalanish uchun masofadagi kompyuterda mavjud
bo‘lgan ushbu xizmatni foydalanuvchilarga taqdim etuvchi yagona
umumiy amaliy dastur bo‘lishi kerak. Masalan, shunday mijoz-server
amaliy dasturi bo‘lishi kerakki, uning yordamida foydalanuvchi
masofadagi kompyuterga kirishi (log onto) va u kompyuter taqdim
etadigan xizmatlardan foydalanishi mumkin bo‘lsin.
Server
Server bu – mijozlarga xizmatlarni taqdim qiluvchi masofadagi
kompyuterda ishlatiluvchi dastur hisoblanadi. Bu dastur ishga tushishi
bilan mijozlardan kelayotgan so‘rovlarga “eshiklar ochiladi”, lekin
hech qachon so‘rov kelmaguncha xizmat ko‘rsatishni boshlamaydi.
236
Server dasturi vaqt bo‘yicha cheksiz hisoblanadi. U ishga
tushganidan boshlab muammolar yuzaga kelgunicha cheksiz
davrgacha ishlashi mumkin. So‘rovlar kelganida server ularga
iteratsion yoki bir vaqtning o‘zida javob beradi.
Mijoz
Mijoz bu – mahalliy mashinada o‘rnatilgan dastur bo‘lib, u
serverdagi xizmatlardan foydalanish uchun so‘rovlar yuboradi. Mijoz
dasturi vaqt bo‘yicha cheklangan xususiyatga ega. U foydalanuvchi
(yoki boshqa amaliy dastur) tomonidan ishga tushirilib, xizmat
yakunlanganida to‘xtatiladi. Odatda, mijoz masofadagi host
kompyuterning IP manzilidan va u kompyuterda ishlayotgan xizmat
dasturining port manzilidan foydalangan holda aloqa kanalini ochadi.
Aloqa kanali ochilganidan so‘ng, mijoz o‘zining so‘rovini jo‘natadi va
javobni (xizmat) qabul qiladi. Albatta, so‘rov – javob qismi bir necha
bor takrorlanishi mumkin, biroq umumiy jarayon vaqt bo‘yicha
chegaralangan va u ohir-oqibat yakunlanadi.
Bir vaqtda bajarish (Concurrency)
Ham mijoz, ham server bir vaqtda ishlatish tartibida bo‘lishi
mumkin. Quyida ularning har biri uchun dasturlarni bir vaqtda
ishlatish imkoniyatlari haqida so‘z yuritiladi.
Mijozdagi bir vaqtda bajarish
Mijoz dasturlar mashinada iteratsion yoki bir vaqtda bajarilishi
mumkin. Mijoz dasturlarni iteratsion bajarish – bu ularni birin-ketin
ishlatilishini ifodalaydi, ya’ni, bir mijoz dastur boshlanadi, bajariladi
va yakunlanadi, shundan so‘ng mashina keyingi mijozni bajarilishini
boshlaydi. Bugungi kunda kompyuterlarning asosiy qismi bir vaqtda
bajarilish imkonini beradi, bu ikki va undan ortiq mijoz dasturlari bir
vaqtda ishlashini nazarda tutadi.
Serverdagi bir vaqtda bajarish
Iteratsion server bir vaqtda faqat bir so‘rovni qayta ishlashi
mumkin: u birinchi so‘rovni qabul qiladi, uni qayta ishlaydi va
mijozga javobni yo‘llaydi, shundan so‘ng ikkinchi so‘rovni boshlaydi.
Bir vaqtda bajarish imkonini beruvchi serverlar bir nechta so‘rovlarni
bir vaqtning o‘zida qayta ishlash orqali so‘rovlar o‘rtasida vaqtni
taqsimlash tamoyilini qo‘llaydi.
Server yoki ulanishsiz transport sathi protokoli UDP, yoki
ulanishga qaratilgan transport sathi protokoli TCP/SCTP protokolini
ishlatadi. Shuning uchun server amaliyoti ikkita omilga: transport
237
sathi protokoli va xizmat uslubiga bog‘liq bo‘ladi. Nazariy jihatdan 4
xil serverlar bo‘lishi mumkin: ulanishsiz iteratsion, ulanishsiz bir
vaqtda bajaruvchi, ulanishga qaratilgan iteratsion va ulanishga
qaratilgan bir vaqtda bajaruvchi (7.1- rasm).
7.1- rasm. Serverturlari
Ulanishsiziteratsion
UDPniishlatadiganserverlarodatdaiterativdir,
yuqoridata’kidlanganidek,
serverbirvaqtningo‘zidabittaso‘rovniqaytaishlaydi.
ServerUDPdandatagramdaolinganso‘rovnioladi,
so‘rovniqaytaishlaydivamijozgayuborishuchunUDPgajavobberadi.
7.2- rasmda ulanishsiz iteratsion server ko‘rsatilgan.
Serverlar
Ulanishsiz
iteratsion
Ulanishsiz
bir vaqtda
bajaruvchi
Ulanishga
qaratilgan
iteratsion
Ulanishga
qaratilgan bir
vaqtda bajaruvchi
Do'stlaringiz bilan baham: |