RPC va RMI o'rtasidagi farq

Mundarija:

RPC va RMI o'rtasidagi farq
RPC va RMI o'rtasidagi farq

Video: RPC va RMI o'rtasidagi farq

Video: RPC va RMI o'rtasidagi farq
Video: RPC vs RMI|Difference between rpc and rmi|RPC and RMI difference|Difference between rmi and rpc 2024, Oktyabr
Anonim

RPC va RMI

RPC va RMI o'rtasidagi asosiy farq shundaki, RPC - bu masofaviy kompyuterda protsedurani chaqirishga imkon beruvchi mexanizm, RMI esa RPC-ni java-da amalga oshirish. RPC til neytraldir, lekin faqat uzatiladigan ibtidoiy ma'lumotlar turlarini qo'llab-quvvatlaydi. Boshqa tomondan, RMI Java bilan cheklangan, ammo ob'ektlarni o'tkazishga imkon beradi. RPC anʼanaviy protsessual til konstruksiyalariga amal qiladi, RMI esa obyektga yoʻn altirilgan dizaynni qoʻllab-quvvatlaydi.

RPC nima?

RPC (Remote Procedure Call) degan maʼnoni anglatadi, bu jarayonlararo aloqa turidir. Bu mahalliy kompyuterda yoki masofaviy kompyuterda ishlaydigan boshqa jarayonda funksiyani chaqirish imkonini beradi. Bu kontseptsiya uzoq vaqt oldin 1980 yilda paydo bo'lgan, lekin birinchi mashhur tatbiq Unixda ko'rilgan.

RPC bir necha bosqichlarni oʻz ichiga oladi. Mijoz odatdagidek mahalliy kompyuterda protsedura chaqiruvini amalga oshiradi. Client stub deb nomlangan modul argumentlarni to'playdi va xabar yaratadi va operatsion tizimga o'tadi, Operatsion tizim tizim chaqiruvini amalga oshiradi va bu xabarni masofaviy kompyuterga yuboradi. Serverdagi operatsion tizim xabarni yig'adi va server stub deb nomlangan serverdagi modulga o'tadi. Keyin server stub serverdagi protsedurani chaqiradi. Nihoyat, natijalar mijozga qaytariladi.

RPC-dan foydalanishning afzalligi shundaki, u tarmoq tafsilotlaridan mustaqildir. Operatsion tizim ichki tarmoq tafsilotlarini ko'rib chiqadi, dasturchi shunchaki mavhum tarzda belgilashi kerak. Shunday qilib, bu dasturlashni osonlashtiradi va jismoniy va protokol farqlariga qaramay, RPC har qanday tarmoq bo'ylab ishlashiga imkon beradi. RPC ilovalari Unix, Linux, Windows va OS X kabi barcha asosiy operatsion tizimlarda mavjud. RPC odatda til uchun neytraldir, shuning uchun u ma'lumotlar turlarini eng oddiylari bilan cheklaydi, chunki ular barcha tillar uchun umumiy bo'lishi kerak. RPC-dagi yondashuv ob'ektga yo'n altirilgan emas, lekin u C dagi kabi an'anaviy protsessual mexanizmdir.

RPC va RMI o'rtasidagi farq
RPC va RMI o'rtasidagi farq
RPC va RMI o'rtasidagi farq
RPC va RMI o'rtasidagi farq

RMI nima?

RMI, ya'ni Remote Method Invocation degan ma'noni anglatadi, bu API (Ilova dasturlash interfeysi) bo'lib, u ob'ektga yo'n altirilgan tabiatni qo'llab-quvvatlash uchun Java'da RPC ni amalga oshiradi. Bu bir xil kompyuterda yoki masofaviy kompyuterda joylashgan boshqa Java Virtual mashinasida Java usullarini chaqirish imkonini beradi. RMI ning cheklanishi shundan iboratki, faqat Java usullarini chaqirish mumkin, ammo bu ob'ektlarni argumentlar sifatida uzatish va qiymatlarni qaytarish mumkinligi bilan birga keladi. Ishlash ko'rib chiqilsa, RMI Java Virtual mashinasida bayt-kodning ishtiroki tufayli RPC dan sekinroq bo'ladi, lekin RMI dasturchilarga juda mos keladi va undan foydalanish juda oson.

RMI Java-da o'rnatilgan xavfsizlik mexanizmlaridan foydalanadi va shuningdek, TCP bo'lmagan maxsus transport qatlami protokollaridan foydalanish imkonini beruvchi soket zavodini beradi. Bundan tashqari, RMI xavfsizlik devorlarini chetlab o'tish usullarini taqdim etadi. RMIda sodir bo'ladigan qadamlar RPC ga o'xshaydi. RMI ilovasi ichki tarmoq tafsilotlarini ko'rib chiqadi, bunda dasturchi ular haqida tashvishlanmasligi kerak.

RPC va RMI oʻrtasidagi farq nima?

• RPC til neytral, RMI esa Java bilan cheklangan.

• RPC C tilidagi kabi protsessual, lekin RMI ob'ektga yo'n altirilgan.

• RPC faqat ibtidoiy ma'lumotlar turlarini qo'llab-quvvatlaydi, RMI esa ob'ektlarni argumentlar va qiymatlarni qaytarishga imkon beradi. RPC dan foydalanganda dasturchi har qanday murakkab ob'ektlarni ibtidoiy ma'lumotlar turlariga ajratishi kerak.

• RMI bu RPCni dasturlash oson.

• RMI RPCga qaraganda sekinroq, chunki RMI java bayt kodini bajarishni oʻz ichiga oladi.

• RMI ob'ektga yo'n altirilganligi sababli dizayn naqshlaridan foydalanishga ruxsat beradi, RPC esa bunday imkoniyatga ega emas.

Xulosa:

RPC va RMI

RPC - bu uzoq kompyuterda protsedurani chaqirish imkonini beruvchi til neytral mexanizmi. Biroq, tilning neytral xususiyati argument sifatida uzatiladigan ma'lumotlar turlarini cheklaydi va qiymatlarni ibtidoiy turlarga qaytaradi. RMI Java-da RPC-ni amalga oshirish bo'lib, u ob'ektni o'tkazishni ham qo'llab-quvvatlaydi, bu dasturchining hayotini osonlashtiradi. RMI ning afzalligi ob'ektga yo'n altirilgan dizaynni qo'llab-quvvatlashdir, ammo Java bilan cheklanish - bu kamchilik.

Tavsiya: