Каково фактическое различие между Java RMI и RPC?
Я читал в некоторых местах, что RMI использует Объекты?
RPC основан на C и, как таковой, имеет семантику структурированного программирования, с другой стороны, RMI - это технология на основе Java и объектно-ориентированная технология.
С помощью RPC вы можете просто вызывать удаленные функции, экспортированные на сервер, в RMI вы можете иметь ссылки на удаленные объекты и вызывать их методы, а также передавать и возвращать больше ссылок на удаленные объекты, которые могут быть распределены между многими экземплярами JVM, так что это намного мощнее.
RMI выделяется, когда возникает необходимость в разработке чего-то более сложного, чем чистая архитектура клиент-сервер. Очень легко распределить объекты по сети, позволяя всем клиентам обмениваться данными без необходимости явно устанавливать отдельные соединения.
RMI или удаленный вызов метода очень похож на RPC или удаленный вызов процедуры в том, что клиент отправляет прокси-объекты (или заглушки) в однако с сервером тонкая разница заключается в том, что RPC на стороне клиента вызывает ФУНКЦИИ через функцию прокси , а RMI вызывает МЕТОДЫ {{ 1}} через функцию прокси. RMI считается немного лучше, поскольку это объектно-ориентированная версия RPC.
Из здесь .
Дополнительную информацию и примеры см. здесь .
Основное различие между RPC и RMI состоит в том, что RMI включает объектов . Вместо удаленного вызова процедур с помощью функции прокси , мы используем прокси объект .
RMI обеспечивает большую прозрачность, а именно благодаря использованию объектов, ссылок, наследования, полиморфизма и исключений, поскольку технология интегрирована в язык.
RMI также является более продвинутым, чем RPC, позволяя динамический вызов , где интерфейсы могут изменяться во время выполнения, и объектную адаптацию , которая обеспечивает дополнительный уровень абстракции.
Единственный реальное различие между RPC и RMI состоит в том, что в RMI задействованы объекты: вместо вызова функций через прокси-функцию мы вызываем методы через прокси.