Різниця між RPC і RMI

RPC проти RMI

RPC (віддалений виклик процедури) та RMI (віддалений виклик методу) - це два механізми, які дозволяють користувачеві викликати або викликати процеси, які будуть працювати на іншому комп'ютері, ніж той, який користувач використовує. Основна відмінність між ними - підхід або парадигма, що використовується. RMI використовує об'єктно-орієнтовану парадигму, де користувач повинен знати об'єкт та метод об'єкта, до якого він повинен викликати. Для порівняння, RPC не є об'єктно-орієнтованою і не має справу з об'єктами. Швидше, він називає конкретні підпрограми, які вже встановлені.

RPC - це відносно старий протокол, який базується на мові C, таким чином успадковуючи його парадигму. За допомогою RPC ви отримуєте процедурний дзвінок, який майже схожий на локальний дзвінок. RPC обробляє труднощі, пов'язані з передачею дзвінка з локального на віддалений комп'ютер. RMI робить те саме; обробка складності передачі виклику з локального на віддалений комп'ютер. Але замість того, щоб передавати процедурний виклик, RMI передає посилання на об'єкт та метод, який викликається. RMI була розроблена Java і використовує свою віртуальну машину. Тому його використання виключно для програм Java для виклику методів на віддалених комп'ютерах.

Зрештою, RPC та RMI - це лише два засоби для досягнення тієї ж точної речі. Все зводиться до того, якою мовою ви користуєтесь і до якої парадигми ви звикли. Використання об'єктно-орієнтованого RMI - це кращий підхід між ними, особливо з більш великими програмами, оскільки він забезпечує більш чистий код, який легше відстежити, коли щось піде не так. Використання RPC все ще широко прийнято, особливо коли будь-який з альтернативних віддалених процедурних протоколів не є можливим.

Підсумок:

1.RMI є об'єктно-орієнтованою, а RPC - ні
2.RPC - це бази C, тоді як RMI - лише Java
3.RMI викликає методи, тоді як RPC викликає функції
4.RPC антикваріат, а RMI - майбутнє