Архитектура распределенных систем программного обеспечения Tarqalgan dasturiy ta'minot tizimlari arxitekturasi


Rasm. 2.4. RPC modeli qanday ishlaydi


Download 0.84 Mb.
bet13/27
Sana25.06.2023
Hajmi0.84 Mb.
#1654891
1   ...   9   10   11   12   13   14   15   16   ...   27
Bog'liq
79 uz

Rasm. 2.4. RPC modeli qanday ishlaydi.
Server adapteri mijoz adapteriga o'xshaydi, lekin qo'ng'iroqning server qismini amalga oshiradi. U mijozdan so'rovni qabul qiladigan, ma'lumotlarni formatlaydigan (ko'zguni aks ettiruvchi, ya'ni seriyali va unmarshal), serverda amalga oshirilgan haqiqiy protsedurani chaqiradigan va natijalarni mijozga qaytaradigan dasturlardan iborat. Mijoz adapteri kabi, tarjimadan keyin server adapteri server dasturiga biriktiriladi. Butun server dasturi, shu jumladan masofaviy mijoz tomonidan chaqirilgan protsedurani amalga oshirish, mijozni amalga oshirish uchun ishlatilgan tilda yozilishi shart emas, bu esa tillararo o'zaro muvofiqlikni sezilarli darajada oshirishga imkon beradi, ya'ni turli dasturlash tillarida yozilgan dasturlar o'rtasida o'zaro ta'sir o'tkazish qobiliyati.
Dasturiy ta'minot shablonlari va havolalar. IDL tili va uning tarjimoni yordamchi fayllar yaratish orqali protseduralarni ishlab chiqishga yordam beradi. Masalan, RPC tizimlarining birinchi versiyalari C tilida yozilgan, shuning uchun mijoz va server adapteriga qo'shimcha ravishda IDL kompilyatori sarlavhali fayllarni (*.h) yaratdi. Ko'pgina zamonaviy kompilyatorlar server uchun dastur shablonlarini yaratadilar, masalan, protsedura sarlavhalarini o'z ichiga olgan dasturlar, keyin ishlab chiquvchi ushbu protseduralarni amalga oshirishni o'zi yaratishi kerak.
Mijoz masofaviy protseduraga qo'ng'iroq qilganda, u aslida thunk qismi bo'lgan protseduraga mahalliy qo'ng'iroq qiladi. Mijoz adapteri qo'ng'iroq parametrlarini standart tarzda qabul qiladi, ammo haqiqiy protseduraga mos keladigan harakatlar bajarilmaydi. Buning o'rniga, adapter serverni topadi va kerakli ma'lumotlarni formatlaydi. Aloqa kanaliga xabar jo'natilishidan oldin, xabar qabul qiluvchiga tushunarli bo'lishi uchun u birlashtiriladi va ketma-ketlashtiriladi. Keyin serverga ulanish o'rnatiladi, mijoz bloklaydi va javobni kutadi (2.5-rasm).

Rasm. 2.5. Sinxron masofaviy protsedura chaqiruvi.
Server xabarni mahalliy protsedura parametrlariga aylantiruvchi kutilayotgan server thunk-ni ishga tushiradi. Server qo'ng'iroqni parametrlari bilan mahalliy protsedurasiga to'g'ridan-to'g'ri qo'ng'iroq sifatida ko'radi. Jarayonning natijalari server adapteri tomonidan mijozga yuboriladigan xabarga to'planadi. Mijoz tomonida ma'lum bo'lishicha, xabar qo'ng'iroqqa javob sifatida mijozga yuboriladi (operatsion tizim mijoz va uning adapteri o'rtasida farq qilmaydi), xabar buferlanadi va mijoz mijozdan chiqariladi. kutish holati. Uning adapteri natijalarni ochadi, ularni mijoz xotirasiga yozadi va boshqaruvni asosiy dasturga o'tkazadi.
RPC modelining asosiy afzalligi shundaki, mijoz ham, server ham qo'ng'iroq masofasini bilmaydi.
Masofaviy protseduraga ega serverga ulanishni o'rnatish mijozning masofaviy protseduraga kirish uchun berilgan serverga mahalliy ulanishni o'rnatish jarayonidir. Bog'lanish statik yoki dinamik bo'lishi mumkin. Statik ulanish bilan protsedurani o'tkazadigan server haqidagi ma'lumotlar bevosita mijoz dasturlarida kodlanadi. Bu IP manzili va port raqami, Ethernet manzili, X.500 manzili va boshqalar bo'lishi mumkin. Statik ulanishning afzalliklari soddalik va samaradorlikdir. Statik ulanishning salbiy tomoni shundaki, mijoz va server juda qattiq bog'langan. Kamchilik shundaki, agar server ishlamasa, mijoz ham ishlay olmaydi. Agar server manzilni o'zgartirgan bo'lsa, mijoz yangi to'g'ri manzilni ko'rsatadigan yangi thunk bilan qayta kompilyatsiya qilinishi kerak. Va nihoyat, ish faoliyatini yaxshilash uchun qo'shimcha serverlardan foydalanish mumkin emas. Tarmoq yukini muvozanatlash mijoz qismini ishlab chiqish bosqichida amalga oshirilishi kerak.
Dinamik ulanish serverni lokalizatsiya qilish uchun mas'ul bo'lgan maxsus xizmatni yaratadi. Dinamik bog'lanish bilvositalarni olib tashlash va ishlash hisobiga tizimning moslashuvchanligini oshirish uchun yangi dasturiy ta'minot qatlamini yaratadi. Ushbu yangi qatlam nom va katalog serveri deb ataladi va server manzillarini chaqirilgan protseduralar nomlari bo'yicha qidirish uchun mo'ljallangan. Ushbu variantda qo'ng'iroq qilishdan oldin mijoz adapteri katalog serveriga so'rov o'tkazadi va shundan keyingina u ko'rsatgan serverga kiradi (2.6-rasm).

Rasm. 2.6. Dinamik bog'lanish: server tomonidan protsedurani ro'yxatdan o'tkazish (0 va 1-bosqichlar), mijoz tomonidan kerakli protsedurani amalga oshiradigan server manzilini so'rash (2 va 3-bosqichlar), manzilni nom va katalog serveridan olish (4-bosqich), protsedurani chaqirish (5, 6 va 7-bosqichlar).
Dinamik ulanish RPC modeliga ko'plab yangi xususiyatlarni qo'shdi. Serverlarga qo'ng'iroqlarni kuzatish, masalan, ulardagi yukni muvozanatlash mumkin. Agar server o'z manzilini o'zgartirsa, unga qilingan barcha qo'ng'iroqlar o'z yo'nalishlarini o'zgartirishi mumkin va bu tizimni amalga oshirish va ishlatishda moslashuvchanlikni qo'shib, mijozlar va serverlarni ajratadi. Ushbu moslashuvchanlikning narxi katalog serveri, u bilan o'zaro ishlash protokoli va serverlarda protseduralarni ro'yxatdan o'tkazish uchun primitivlar ko'rinishidagi qo'shimcha infratuzilmadir. Mijoz ulanishning statik yoki dinamik ekanligini bilishi shart emas.
Agar mijoz va server mashinalari bir xil bo'lsa, ularni ular o'rtasida yuborilgan xabarlarda birlashtirgandan so'ng, siz qo'ng'iroq qilish uchun protsedura parametrlari va nomini (kodi) to'plashingiz va keyin ushbu xabarlarni qabul qiluvchilarga yuborishingiz mumkin. Agar bu mashinalar biroz boshqacha bo'lsa, siz ko'p qo'shimcha qadamlarni qo'yishingiz kerak.
Turli xil tizimlar raqamlar va belgilarning turli ko'rinishlariga ega bo'lishi mumkin. Turli xil arxitektura xususiyatlariga ega bo'lgan mashinalar o'rtasida ma'lumot uzatishda, bu ma'lumot birinchi navbatda kompyuterning arxitektura xususiyatlariga bog'liq bo'lmagan qandaydir standart shaklga aylantirilishi va keyin yana boshqa o'ziga xos tasvirga aylantirilishi kerak. Parametrlarni qiymat bo'yicha emas, balki mos yozuvlar bo'yicha o'tkazish yanada qiyinroq. Xotira manzilini bir mashinadan boshqasiga o'tkazish ma'nosiz, chunki boshqa mashinada bu manzilda boshqa ma'lumotlar mavjud. Ba'zan, muammoni hal qilish uchun ular massivlarni qiymat bo'yicha o'tkazishga qaror qilishadi (butun massiv mijozdan serverga xabarga to'plangan). Shu bilan birga, masofaviy protsedura chaqiruvini amalga oshirishda ikkala tomon ham kelishilgan protokollarga rioya qilishlari va formatlarning talqini bir ma'noli bo'lishi kerakligi aniq.

Rasm 2.7. Asinxron masofaviy protsedura chaqiruvi.
Standart masofaviy protsedura chaqiruvi serverdan javob olinmaguncha mijozni to'liq blokirovka qilishni nazarda tutadi. Ba'zida serverdan javob kerak emas, bunday hollarda asinxron qo'ng'iroqlar qo'llaniladi. RPC ishga tushirilgandan keyin mijoz davom etadi {1-rasm. 2.7). Ba'zan ikkita alohida (qarama-qarshi) qo'ng'iroqlar amalga oshiriladi (2.8-rasm), bu kechiktirilgan sinxronizatsiya deb ataladi. Serverdan so'rovni qabul qilishni tasdiqlashni talab qilmaydigan qo'ng'iroq bir tomonlama masofaviy qo'ng'iroq deb ataladi.

Rasm. 2.8. Masofaviy protsedura chaqiruvining kechiktirilgan sinxronizatsiyasi.


Download 0.84 Mb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   ...   27




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