Razlika med RPC in RMI

RPC proti RMI

RPC (Remote Procedure Call) in RMI (Remote Method Invocation) sta dva mehanizma, ki uporabniku omogočata priklic ali klicanje procesov, ki se bosta izvajala na drugem računalniku od tistega, ki ga uporablja uporabnik. Glavna razlika med obema je uporabljeni pristop ali paradigma. RMI uporablja objektno orientirano paradigmo, kjer mora uporabnik poznati objekt in način predmeta, ki ga mora uveljaviti. RPC v primerjavi ni predmetno usmerjen in se ne ukvarja s predmeti. Namesto tega imenuje posebne podprograme, ki so že vzpostavljeni.

RPC je sorazmerno star protokol, ki temelji na jeziku C in tako podeduje njegovo paradigmo. Z RPC dobite klic postopka, ki je precej podoben lokalnemu klicu. RPC obravnava zapletenosti prenosa klica iz lokalnega na oddaljeni računalnik. RMI počne isto stvar; ravnanje s kompleksnostjo prenosa klica z lokalnega na oddaljeni računalnik. Toda namesto da bi opravil proceduralni klic, RMI posreduje sklic na objekt in metodo, ki se ga prikliče. RMI je razvila Java in uporablja svoj virtualni stroj. Njegova uporaba je torej izključno za aplikacije Java za klicanje metod na oddaljenih računalnikih.

Na koncu sta RPC in RMI le dva načina za dosego iste natančne stvari. Vse se spušča na jezik, ki ga uporabljate in katero paradigmo ste navajeni. Uporaba objektno usmerjenega RMI je boljši pristop med obema, zlasti pri večjih programih, saj omogoča čistejšo kodo, ki jo je lažje izslediti, ko gre kaj narobe. Uporaba RPC je še vedno splošno sprejeta, zlasti kadar kateri koli od alternativnih protokolov za oddaljene postopke ni možnost.

Povzetek:

1.RMI je objektno usmerjena, medtem ko RPC ni
2.RPC je baza C, medtem ko je RMI samo Java
3.RMI prikliče metode, medtem ko RPC prikliče funkcije
4.RPC je starinsko, RMI pa prihodnost