MUXAMMAD AL-XORAZMIY
NOMIDAGI
TOSHKENT AXBOROT
TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI
KOMPYUTER TIZIMLARI KAFEDRASI
5330500- Kompyuter injiniring ta'lim yo'nalishi
Taqsimlangan tizimlar va algoritmlar fanidan
MUSTAQIL ISH № 4
Mavzu:
.
Tarqalgan tizim obyektlari: COBRA
Bajardi: 403-guruh talabasi Samandarov H
Qabul qildi: Kubayev S.T.
Samarqand – 2021
Mavzu rejasi
:
1.
CORBA maqsadi
2.
Tarqalgan ob'ektlar
3.
CORBA - Common Object Request Broker Architecture
4.
RMI - masofaviy usulni chaqirish
CORBA (odatda [korba], ba'zan jargon [kobra] deb talaffuz qilinadi; Inglizcha
Common Object Request Broker Architecture - ob'ekt so'rovi brokerining umumiy
arxitekturasi; bilvosita ob'ekt so'rovlarining tipik arxitekturasi) - konsortsium
tomonidan ilgari surilgan taqsimlangan ilovalarni yozish uchun texnologik
standart. (ishchi guruh) OMG va tegishli axborot texnologiyalari. CORBA turli xil
operatsion tizimlarda ishlaydigan, turli dasturlash tillarida yozilgan va turli
hisoblash uskunalarida ishlaydigan tizimlar o'rtasida o'zaro hamkorlikni
ta'minlaydi. CORBA ob'ektga yo'naltirilgan modeldan foydalanadi, ammo CORBA
dan foydalanadigan tizimlar ob'ektga yo'naltirilgan bo'lishi shart emas. CORBA
taqsimlangan ob'ekt tizimi paradigmasining namunasidir.
CORBA maqsadi
CORBA texnologiyasi ob'ektga yo'naltirilgan murakkab dastur tizimlarini ishlab
chiqish va joylashtirishni qo'llab-quvvatlash uchun mo'ljallangan.
CORBA - bu turli xil tarmoq tugunlarida ishlaydigan turli dasturlash tillarida
yozilgan dasturlarga xuddi shu jarayonning manzil maydonida bo'lganidek, bir-biri
bilan osongina bog'lanish imkonini beruvchi sandbox integratsiyasi uchun dasturiy
ta'minot mexanizmi. umumiy ko'rib chiqish
CORBA spetsifikatsiyasi dastur kodini ob'ektga bog'lashni belgilaydi, unda
kodning funksionalligi va kirish interfeyslari haqida ma'lumot bo'lishi kerak.
Tayyor ob'ektlarni tarmoqda joylashgan boshqa dasturlardan (yoki CORBA
spetsifikatsiya
ob'ektlaridan)
chaqirish
mumkin.CORBA
spetsifikatsiyasi
ob'ektlarning tashqi dunyo bilan o'zaro ta'siri uchun interfeyslarni aniqlash uchun
Interfeys tavsif tilidan (OMG IDL) foydalanadi va IDL dan CORBA ob'ektini
ishlab chiquvchi tomonidan foydalaniladigan tilga xaritalash qoidalarini
tavsiflaydi.
Taqsimlangan obyekt tizimlari
Tarqalgan ob'ektlar
Taqsimlangan tizimlarni yaratishning birinchi paradigmalaridan biri masofaviy
protsedura chaqiruvi (RPC) yondashuvi edi. RPC oilasining o'ziga xos xususiyati
shaffoflikning eng yuqori darajasi bo'lib, unga mos mijoz va server stublarini ish
vaqti muhiti bilan almashtirish, shuningdek, foydalanilgan ma'lumotlar turlari
haqida eng to'liq ma'lumot olish orqali erishiladi. OOP rivojlanishi bilan RPC
negizida Distributed Objects deb nomlangan texnologiyalar ishlab chiqildi.
Ularning RPC dan asosiy farqi uzoq server obyektining interfeysini amalga
oshiruvchi proksi-serverdan foydalanishdir. Proksi-serverni tayinlash ko'p jihatdan
RPC stubiga o'xshaydi, u uzoq ob'ektdagi usullarga kirishda argumentlarni
saralaydi, masofaviy ob'ektga xabar yuboradi va javob xabarlaridan natijalarni
o'chiradi va keyin ularni mijozga qaytaradi.
.NET Remoting - .NET Remoting
.NET Remoting ilovaga masofaviy chegaralar ichida mavjud bo„lgan va bir
jarayon doirasida dastur domenida joylashgan, shu kompyuterda ishlaydigan
boshqa jarayon yoki hatto tarmoqqa ulangan boshqa kompyuterda joylashgan
obyektni (ko„chma ob‟ekt deb ataladi) yaratish imkonini beradi.[4 ] .NET
Remoting jarayoni server ilovasi domenidagi ob'ekt uchun so'rov tinglovchisini o'z
ichiga oladi. Mijoz tomonida masofaviy ob'ektga har qanday so'rovlar ish vaqti
bilan yo'naltiriladi.NET TCP oqimlari, HTTP oqimlari va nomli quvurlar kabi
transport qatlami xususiyatlarini oʻrab olgan Channel orqali obʼyektlarni
masofadan boshqarish. Natijada, mijoz kodi uchun masofaviy ob'ektlarga so'rovlar
mahalliy qo'ng'iroqlardan farq qilmaydi va kerakli Channel ob'ektining namunasini
yaratish orqali .NET Remoting ilovasini qayta kompilyatsiya qilmasdan boshqa
aloqa protokoliga o'tkazish mumkin. Ish vaqtining o'zi mijoz va server ilovasi
domenlari o'rtasidagi muhitda ob'ektlarni ketma-ketlashtirish va marshallash
bosqichlarini bajaradi.
DCOM - taqsimlangan komponent ob'ekt modeli
DCOM (Distributed COM) - tarmoq orqali turli xil kompyuterlardagi ob'ektlar
o'rtasidagi aloqani qo'llab-quvvatlash uchun Komponent ob'ekt modelining
kengaytmasi.
Masofadagi mashinada obyekt yaratish uchun MAQOMOTI kutubxonasi SCM
serveri bilan bogʻlanib, unga obʼyekt yaratish soʻrovini yuboruvchi mahalliy
kompyuterning xizmat boshqaruv menejerini (SCM) chaqiradi. Server nomi
ob'ektni yaratish funksiyasini chaqirganda ko'rsatilishi yoki ro'yxatga olish
kitobida saqlanishi mumkin.Masofaviy ob'ektga qo'ng'iroq qilish uchun
parametrlarni stekdan (yoki protsessor registrlaridan) olib tashlash, buferga
joylashtirish va tarmoq orqali uzatish kerak. Parametrlarni ajratib olish va ularni
buferga joylashtirish jarayoni marshaling deb ataladi. Bu jarayon ahamiyatsiz
emas, chunki parametrlar massivlar va tuzilmalar uchun ko'rsatgichlarni o'z ichiga
olishi mumkin, ular o'z navbatida boshqa tuzilmalar uchun ko'rsatgichlarni o'z
ichiga olishi mumkin. Serverda unmarshaling deb ataladigan stekni qayta
yaratishning teskari jarayoni amalga oshiriladi, shundan so'ng kerakli ob'ekt
chaqiriladi. Qo'ng'iroq tugagandan so'ng, qaytarish qiymati va chiqish parametrlari
birlashtiriladi va mijozga yuboriladi.Marshaling va unmarshalingni amalga
oshirish uchun siz barcha ma'lumotlar turlari va massiv o'lchamlarini o'z ichiga
olgan usulning aniq tavsifiga ega bo'lishingiz kerak. Tavsif DCE RPC
standartining bir qismi bo'lgan Interfeys tavsif tilidan (IDL) foydalanadi. Olingan
tavsif fayllari maxsus IDL kompilyatori tomonidan C manba kodiga kompilyatsiya
qilinadi, ular belgilangan interfeyslar uchun marshallar va unmarshallar
hisoblanadi. Mijoz tomonida ishlaydigan kod "proksi" deb nomlanadi, ob'ekt
tomonida esa "stub" deb ataladi va kerak bo'lganda COM kutubxonasi tomonidan
yuklanadi.
CORBA - Common Object Request Broker Architecture
CORBA (odatda [korba], ba'zan jargon [kobra] deb talaffuz qilinadi; Inglizcha
Common Object Request Broker Architecture - umumiy ob'ekt so'rovi brokeri
arxitekturasi) - OMG konsorsiumi (ishchi guruh) va unga mos keladigan axborot
texnologiyalari tomonidan ilgari surilgan tarqatilgan ilovalarni yozish uchun
texnologik standart .CORBA spetsifikatsiyasi dastur kodini ob'ektga bog'lashni
belgilaydi, unda kodning funksionalligi va kirish interfeyslari haqida ma'lumot
bo'lishi kerak. Tayyor ob'ektlarni tarmoqda joylashgan boshqa dasturlardan (yoki
CORBA
spetsifikatsiya
ob'ektlaridan)
chaqirish
mumkin.+CORBA
spetsifikatsiyasi ob'ektlarning tashqi dunyo bilan o'zaro ta'siri uchun interfeyslarni
aniqlash uchun Interfeys tavsif tilidan (OMG IDL) foydalanadi, u IDL dan
CORBA ob'ektini ishlab chiquvchisi ishlatadigan tilga xaritalash qoidalarini
tavsiflaydi.
Ada, C, C++, Lisp, Smalltalk, Java, Cobol, Object Pascal, PL/1 va Python
uchun xaritalar standartlashtirilgan. Shuningdek, ushbu tillar uchun yozilgan ORB
vositalari tomonidan amalga oshirilgan Perl, Visual Basic, Ruby va Tcl uchun
nostandart xaritalar mavjud.
RMI - masofaviy usulni chaqirish
RMI (English Remote Method Invocation) - bu Java tilida masofaviy usullarni
chaqirish uchun dasturlash interfeysi.
Boshqa JVM da ishlaydigan masofaviy usullarni qanday chaqirish kerakligini
belgilaydigan taqsimlangan ob'ekt modeli.Boshqa kompyuterdagi ob'ektlarga
kirishda ushbu ob'ektda usullarni chaqirish mumkin. Siz shunchaki usul
parametrlarini boshqa mashinaga o'tkazishingiz kerak, ob'ektga usulni bajarishini
ayting va keyin qaytarish qiymatini qaytarib oling. RMI mexanizmi ushbu barcha
operatsiyalarning bajarilishini tashkil qilish imkonini beradi.
Java-RMI modelini "stub" va "skeleton" ob'ektlardan foydalangan holda odatiy
amalga oshirish.
RMI terminlarida masofaviy usulni chaqiruvchi ob'ekt mijoz ob'ekti, masofaviy
ob'ekt esa server ob'ekti deb ataladi. Kompyuterlar faqat ma'lum bir qo'ng'iroq
uchun mijoz va server vazifasini bajaradi. Ehtimol, keyingi operatsiya davomida
bu kompyuterlar rollarni almashtirishi mumkin, ya'ni boshqa kompyuterdagi
ob'ektga kirishda oldingi qo'ng'iroq serverining o'zi mijozga aylanishi mumkin.
Masofaviy ob'ektda usulni chaqirganingizda, u aslida server ob'ektining vakili
bo'lgan maxsus stub ob'ektida inkapsullangan oddiy Java tili usulini chaqiradi.
Stub serverda emas, mijoz mashinasida. U masofaviy usulning parametrlarini
baytlar blokiga to'playdi. Har bir parametr apparatdan mustaqil bo'lgan algoritm
bilan kodlangan. Masalan, raqamlar har doim eng muhim bayt (big-endian)
birinchi bo'lib uzatiladigan tartibda uzatiladi. Bunday holda, ob'ektlar ketma-
ketlashtiriladi. Parametrlarni kodlash jarayoni parametrlarni marshallash deb
ataladi. Sozlamalarni joylashtirishning asosiy maqsadi ularni bir virtual
mashinadan boshqasiga sozlash uchun mos formatga aylantirishdir.
Stub usuli quyidagi elementlarni o'z ichiga olgan blokni yaratadi:
uzoqdagi ob'ektning identifikatori;
chaqirilgan usulning tavsifi;
kengaytirilgan variantlar.
So'ngra stub usuli bu ma'lumotni serverga yuboradi. Keyin qabul qiluvchi ob'ekt
har bir masofaviy usul chaqiruvi uchun quyidagi amallarni bajaradi:
siqilish parametrlari;
chaqirilgan ob'ektni qidirish;
berilgan usulni chaqirish;
qaytariladigan qiymatni yoki ushbu usul bilan tashlangan istisnoni olish va ochish;
mijoz kompyuteridagi stub ob'ektiga kengaytirilgan qaytish ma'lumotlaridan iborat
paketni o'tkazish.
Mijoz stub ob'ekti serverdan olingan qaytarish qiymatini yoki istisnoni o'rab oladi.
Yiqilish natijasi stub usulining qaytish qiymatiga aylanadi. Agar masofaviy usul
istisnoni qaytarsa, stub ob'ekti uni mijoz ob'ekti muhitiga qaytadan o'tkazadi.
Masofaviy usulni chaqirish sintaksisi mahalliy usulni chaqirish bilan bir xil. Misol
uchun,
masofaviy
kompyuterda
markaziy
ma'lumotlar
omborining
centralWarehouse stub ob'ektining getQuantity() usulini chaqirish uchun siz
quyidagi koddan foydalanasiz.
int q=centralWarehouse.getQuantity("SuperSucker 100 changyutgich");
Masofaviy usullarga kirish uchun mijoz kodi har doim interfeys turlarining ob'ekt
o'zgaruvchilaridan foydalanadi. Masalan, quyidagi interfeys yuqoridagi usul bilan
bog'lanishi mumkin:
interfeysi ombori {
int getQuantity(String tavsifi) RemoteException ni chiqaradi;
Mahsulot getProduct(Mijoz buyurtmasi) RemoteExceptionni tashlaydi;
}
Ushbu interfeysni amalga oshiradigan ob'ekt uchun o'zgaruvchan deklaratsiya
quyidagicha ko'rinadi:
Ombor markaziy ombori = …;
Albatta, interfeyslar abstrakt bo'lib, faqat usullar ro'yxatini o'z ichiga oladi.
Interfeys tipidagi o'zgaruvchilar doimo haqiqiy ob'ekt bilan bog'lanishi kerak.
Masofaviy ob'ektlarni chaqirganda, o'zgaruvchi stub ob'ektiga ishora qiladi.
Bunday holda, mijoz dasturi stub turi haqida hech narsa bilmaydi va stublarning
o'zi va ular bilan bog'liq ob'ektlar avtomatik ravishda yaratiladi.
Ob'ektni boshqa dasturga o'tkazishda (u parametr yoki masofaviy usulning qaytish
qiymati bo'lishi mumkin), sizga ushbu ob'ektga mos keladigan sinf fayli kerak.
Masalan, mahsulot turidagi qiymatni qaytaruvchi usul. Mijoz dasturini
kompilyatsiya qilishda Product.class sinf fayli yaratilishi kerak.
Tarmoq orqali kod parchalarini yuklab olayotganda, har doim xavfsizlikning
to'g'riligiga shubha tug'iladi. Shu sababli RMI dan foydalanadigan ilovalar
xavfsizlik menejeridan foydalanadi. Bu vilkalarni ularga viruslarning kirib
kelishidan himoya qiladi.
CORBA - eng ilg'or taqsimlangan dasturlash ob'ekti texnologiyasi. CORBA
Tarmoq makonida taqsimlangan komponentlarni yaratishga imkon beradi, bu
bo'lishi mumkin. turli tillarda yozilgan), turli xil operatsion tizimlarda ishlash,
oddiygina bir-birining interfeyslarini aniqlash va komponentlarni tashkil etuvchi
ob'ektlarning umumiy usullarini masofadan chaqirish.
CORBA quyidagi tarkibiy qismlardan iborat:
Ob'ektlarga so'rovlarni shaffof tarzda yaratish va tarqatilgan muhitda javoblarni
olish imkonini beruvchi ob'ekt so'rovi brokeri (ObjectRequestBroker).
ObjectServices, ob'ektlardan foydalanish va amalga oshirish uchun asosiy
funksionallikni qo'llab-quvvatlaydigan xizmatlar (interfeyslar va ob'ektlar)
to'plami. Xizmatlar har qanday taqsimlangan ilovani yaratish uchun talab qilinadi
va dastur domenlaridan mustaqildir.
CommonFacilities, ko'plab ilovalar foydalanishi mumkin bo'lgan xizmatlar
to'plami, lekin xususiyat xizmatlari kabi asosiy emas.
· ApplicationObjects, bu ularning interfeyslarini boshqaradigan yagona ishlab
chiquvchilar guruhining mahsulotlari.
CORBA oddiy ob'yekt interfeysini tavsiflash tilini o'z ichiga oladi - IDL
(InterfaceDefinitionLanguage), bu sizga interfeys tavsiflarini ularni amalga
oshirishdan ajratish va CORBA-da mavjud ilovalarni o'rash imkonini beradi. Shuni
ham aytish kerakki, har qanday komponent bir vaqtning o'zida mijoz va server
bo'lishi mumkin. Umuman olganda, uzoq ob'ektning usullarini chaqirish uchun siz
uning hech bo'lmaganda IDL tavsifiga va unga ob'ekt havolasi deb ataladigan
narsaga ega bo'lishingiz kerak.
Amalda, CORBA-da dasturlashda taqsimlangan komponentlarni yaratish uchun
odatda quyidagi amallar bajariladi:
1. Tarqalgan komponentlar ishlab chiqilgan
2. Ushbu komponentlarning umumiy obyektlarining interfeyslari IDL tilida
tasvirlangan
3. Komponentlarni amalga oshirish yaratiladi (ob'ektlar va ularning mijozlari)
4. Tarqalgan muhitda komponentlarni sinash
5. Komponentlar Tarmoqning kerakli nuqtalariga taqsimlanadi
Do'stlaringiz bilan baham: |