RPC vs RMI
Dallimi themelor midis RPC dhe RMI është se RPC është një mekanizëm që mundëson thirrjen e një procedure në një kompjuter të largët ndërsa RMI është zbatimi i RPC në java. RPC është neutral ndaj gjuhës, por mbështet vetëm llojet primitive të të dhënave që duhet të kalohen. Nga ana tjetër, RMI është i kufizuar në Java, por lejon kalimin e objekteve. RPC ndjek konstruktet tradicionale të gjuhës procedurale ndërsa RMI mbështet dizajnin e orientuar nga objekti.
Çfarë është RPC?
RPC, që do të thotë thirrje me procedurë në distancë, është një lloj komunikimi ndër-procesor. Kjo lejon thirrjen e një funksioni në një proces tjetër që ekzekutohet në kompjuterin lokal ose në një kompjuter të largët. Ky koncept u shfaq shumë kohë më parë në vitin 1980, por zbatimi i parë i famshëm u pa në Unix.
RPC përfshin disa hapa. Klienti bën një thirrje procedurale në kompjuterin lokal si zakonisht. Moduli i quajtur cung klienti mbledh argumentet dhe krijon një mesazh dhe kalon te sistemi operativ, Sistemi operativ bën një thirrje sistemi dhe e dërgon këtë mesazh në kompjuterin e largët. Sistemi operativ në server mbledh mesazhin dhe kalon te moduli në server i quajtur cung serveri. Pastaj cung i serverit thërret procedurën në server. Më në fund, rezultatet i kthehen klientit.
Përparësia e përdorimit të RPC është se është i pavarur në detajet e rrjetit. Programuesi duhet vetëm të specifikojë në mënyrë abstrakte ndërsa sistemi operativ do të kujdeset për detajet e brendshme të rrjetit. Pra, kjo e bën programimin më të lehtë dhe lejon që RPC të punojë në çdo rrjet, pavarësisht dallimeve fizike dhe protokollare. Implementimet RPC janë të pranishme në të gjitha sistemet operative kryesore si Unix, Linux, Windows dhe OS X. RPC është përgjithësisht neutral ndaj gjuhës, prandaj i kufizon llojet e të dhënave në ato më primitive pasi ato duhet të jenë të zakonshme për të gjitha gjuhët. Qasja në RPC nuk është e orientuar drejt objektit, por është një mekanizëm tradicional procedural si në C.
Çfarë është RMI?
RMI, e cila qëndron për Remote Method Invocation, është një API (Application Programming Interface) që zbaton RPC në java për të mbështetur natyrën e orientuar nga objekti. Kjo lejon thirrjen e metodave Java në një makinë tjetër virtuale Java që banon në të njëjtin kompjuter ose në një kompjuter të largët. Kufizimi i RMI është se vetëm metodat Java mund të thirren, por kjo vjen me avantazhin që objektet mund të kalojnë si argumente dhe të kthejnë vlera. Kur performanca konsiderohet RMI është më e ngad altë se RPC për shkak të përfshirjes së bytekodit në makinën virtuale Java, por RMI është shumë miqësor ndaj programuesit dhe është shumë i lehtë për t'u përdorur.
RMI përdor mekanizma sigurie të integruara në Java dhe gjithashtu jep një fabrikë fole që mundëson përdorimin e protokolleve të shtresave të transportit me porosi jo-TCP. Për më tepër, RMI ofron metoda për të anashkaluar muret e zjarrit. Hapat që ndodhin në RMI janë të ngjashëm me RPC. Zbatimi i RMI kujdeset për detajet e rrjetit të brendshëm ku programuesi nuk duhet të shqetësohet për to.
Cili është ndryshimi midis RPC dhe RMI?
• RPC është gjuhë neutrale ndërsa RMI është i kufizuar në Java.
• RPC është procedurale si në C, por RMI është e orientuar drejt objektit.
• RPC mbështet vetëm llojet primitive të të dhënave ndërsa RMI lejon që objektet të kalohen si argumente dhe vlera të kthimit. Kur përdor RPC, programuesi duhet të ndajë çdo objekt të përbërë në lloje primitive të të dhënave.
• RMI është e lehtë për t'u programuar atë RPC.
• RMI është më i ngadalshëm se RPC pasi RMI përfshin ekzekutimin e bajtkodit java.
• RMI lejon përdorimin e modeleve të dizajnit për shkak të natyrës së orientuar drejt objektit ndërsa RPC nuk e ka këtë aftësi.
Përmbledhje:
RPC vs RMI
RPC është një mekanizëm neutral gjuhësor që lejon thirrjen e një procedure në një kompjuter të largët. Sidoqoftë, veçoria neutrale e gjuhës kufizon llojet e të dhënave që kalohen si argumente dhe kthen vlera në llojet primitive. RMI është zbatimi i RPC në Java dhe mbështet gjithashtu kalimin e objekteve, duke e bërë jetën e programuesit më të lehtë. Avantazhi i RMI është mbështetja e dizajnit të orientuar drejt objektit, por kufizimi në Java është një disavantazh.