RPC vs RMI
RPC (Remote Procedure Call) och RMI (Remote Method Invocation) är två mekanismer som tillåter användaren att ringa eller ringa processer som kommer att köras på en annan dator än den som användaren använder. Huvudskillnaden mellan de två är den tillvägagångssätt eller paradigm som används. RMI använder ett objektorienterat paradigm där användaren behöver känna objektet och metoden för objektet som han behöver åberopa. I jämförelse är RPC inte objektorienterad och handlar inte om objekt. Det kallar snarare specifika delrutiner som redan är etablerade.
RPC är ett relativt gammalt protokoll som bygger på C-språket och därigenom ärverger sitt paradigm. Med RPC får du ett procedursamtal som ser ungefär ut som ett lokalt samtal. RPC hanterar komplexiteten som är inblandad i att överföra samtalet från den lokala till fjärrdatorn. RMI gör detsamma; hantera komplexiteten att passera längs uppropet från den lokala till fjärrdatorn. Men istället för att överlämna ett processuellt samtal skickar RMI en referens till objektet och den metod som kallas. RMI utvecklades av Java och använder sin virtuella maskin. Användningen är därför exklusiv för Java-applikationer för samtalsmetoder på fjärrdatorer.
I slutändan är RPC och RMI bara två sätt att uppnå samma exakta sak. Allt kommer ner på vilket språk du använder och vilket paradigm du är van vid. Att använda objektorienterad RMI är det bättre tillvägagångssättet mellan de två, särskilt med större program eftersom det ger en renare kod som är lättare att spåra när någonting går fel. Användning av RPC är fortfarande allmänt accepterad, särskilt när något av de alternativa fjärrprocedurprotokollen inte är ett alternativ.
Sammanfattning:
1.RMI är objektorienterad medan RPC inte är
2.RPC är C baser medan RMI bara är Java
3.RMI åberopar metoder medan RPC åberopar funktioner
4.RPC är föråldrad medan RMI är framtiden