RPC vs RMI
RPC (Remote Procedure Call) og RMI (Remote Method Invocation) er to mekanismer, der giver brugeren mulighed for at påkalde eller ringe til processer, der kører på en anden computer end den, brugeren bruger. Den største forskel mellem de to er den anvendte tilgang eller paradigme. RMI bruger et objektorienteret paradigme, hvor brugeren har brug for at kende objektet og metoden for det objekt, han har brug for at påberåbe sig. Til sammenligning er RPC ikke objektorienteret og handler ikke med objekter. Snarere kaldes det specifikke subroutiner, der allerede er etableret.
RPC er en relativt gammel protokol, der er baseret på C-sproget, og derved arver dets paradigme. Med RPC får du et procedureopkald, der ligner stort set et lokalt opkald. RPC håndterer de komplicerede forhold, der er forbundet med at viderestille opkaldet fra den lokale til den eksterne computer. RMI gør det samme; håndtering af kompleksiteterne ved at passere påkaldelsen fra den lokale til fjerncomputeren. Men i stedet for at videregive et proceduremæssigt opkald, sender RMI en henvisning til objektet og den metode, der kaldes. RMI blev udviklet af Java og bruger sin virtuelle maskine. Dets anvendelse er derfor udelukkende til Java-applikationer til opkaldsmetoder på eksterne computere.
I sidste ende er RPC og RMI kun to måder til at opnå den samme nøjagtige ting. Det hele kommer ned på, hvilket sprog du bruger, og hvilket paradigme du er vant til. Brug af den objektorienterede RMI er den bedre tilgang mellem de to, især med større programmer, da det giver en renere kode, der er lettere at spore, når noget går galt. Brug af RPC accepteres stadig bredt, især når nogen af de eksterne proceduremæssige protokoller ikke er en mulighed.
Resumé:
1.RMI er objektorienteret, mens RPC ikke er det
2.RPC er C-baser, mens RMI kun er Java
3.RMI påberåber metoder, mens RPC påkalder funktioner
4.RPC er forældet, mens RMI er fremtiden