Какова фактическая разница между Java RMI и RPC?
Я читал в некоторых местах, что RMI использует объекты?
Какова фактическая разница между Java RMI и RPC?
Я читал в некоторых местах, что RMI использует объекты?
RPC основан на C, и с другой стороны он имеет структурированную семантику программирования, с другой стороны, RMI - это технология на основе Java и объектно-ориентированная.
С RPC вы можете просто вызывать удаленные функции, экспортируемые на сервер, в RMI вы можете иметь ссылки на удаленные объекты и вызывать их методы, а также передавать и возвращать более удаленные ссылки на объекты, которые могут быть распределены между многими экземплярами JVM, поэтому гораздо более мощный.
RMI выделяется, когда возникает потребность в разработке чего-то более сложного, чем чистая архитектура клиент-сервер. Очень легко распространять объекты по сети, позволяя всем клиентам общаться без необходимости явно устанавливать отдельные соединения.
Основное различие между RPC и RMI заключается в том, что RMI включает объекты. Вместо того, чтобы вызывать процедуры удаленно с помощью прокси-функции, вместо этого мы используем прокси-объект.
Существует большая прозрачность с RMI, а именно из-за использования объектов, ссылок, наследования, полиморфизма и исключений, поскольку технология интегрирована в язык.
RMI также более продвинут, чем RPC, что позволяет использовать динамический вызов, где интерфейсы могут меняться во время выполнения и адаптация объектов, что обеспечивает дополнительный уровень абстракции.
1. Подход:
RMI использует объектно-ориентированную парадигму, где пользователю необходимо знать объект и метод объекта, который ему нужно вызвать.
RPC не обрабатывает объекты. Скорее, он вызывает определенные подпрограммы, которые уже установлены.
2. Работа:
С помощью RPC вы получаете вызов процедуры, который очень похож на локальный. RPC обрабатывает сложности, связанные с передачей вызова от локального к удаленному компьютеру.
RMI делает то же самое, но RMI передает ссылку на объект и вызываемый метод.
RMI = RPC + Объектная ориентация
3. Лучше один:
RMI - лучший подход по сравнению с RPC, особенно с более крупными программами, поскольку он обеспечивает более чистый код, который легче идентифицировать, если что-то пойдет не так.
4. Примеры системы:
Системы RPC: SUN RPC, DCE RPC
Системы RMI: Java RMI, CORBA, Microsoft DCOM/COM +, SOAP (протокол простого доступа к объектам)
Инициирование RMI или удаленного метода очень похож на RPC или Remote Процедура вызывается тем, что клиент оба отправляют объекты-прокси (или заглушки) в однако сервер тонкий разница в том, что клиентская сторона RPC вызывает ФУНКЦИИ через прокси-сервер функция и RMI вызывает МЕТОДЫчерез прокси-функцию. RMI считается немного выше, чем объектно-ориентированная версия RPC.
Из здесь.
Для получения дополнительной информации и примеров, смотрите здесь.
Разница между RMI и RPC заключается в следующем:
Удаленный вызов процедур (RPC) - это взаимодействие между процессами, которое позволяет вызывать функцию в другом процессе, находящемся на локальной или удаленной машине.
Вызов удаленного метода (RMI) - это API, который реализует RPC в Java с поддержкой объектно-ориентированных парадигм.
Вы можете думать, что вызов RPC - это вызов процедуры C. RPC поддерживает примитивные типы данных, где в качестве параметров метода поддержки RMI/возвращаемых типов в качестве java-объектов.
RMI легко программировать в отличие от RPC. Вы можете думать о своей бизнес-логике с точки зрения объектов, а не о последовательности примитивных типов данных.
RPC является нейтральным языком, в отличие от RMI, который ограничен java
RMI немного медленнее RPC
Посмотрите на статью для реализации RPC в C
Единственная реальная разница между RPC и RMI заключается в том, что в RMI есть объекты, которые связаны с функциями через прокси-функцию, мы вызываем методы через прокси-сервер.
RPC - это старый протокол на основе C. Он может вызывать удаленную процедуру и сделать ее похожим на локальный вызов. RPC обрабатывает сложности передачи этого удаленного вызова на сервер и получения результата клиенту.
Java RMI также выполняет одно и то же, но немного по-другому. Он использует ссылки на удаленные объекты. Так что он делает то, что он отправляет ссылку на удаленный объект наряду с именем метода invoke.It лучше, потому что это приводит к более чистого кода в случае больших программ, а также распределение объектов по сети позволяет нескольким клиентам вызывать методы на сервере, а не устанавливать каждое соединение индивидуально.
RMI или Remote Method Invokation очень похожи на вызов RPC или Remote Procedure, поскольку клиент отправляет прокси-объекты (или заглушки) на сервер, однако тонкая разница заключается в том, что RPC на стороне клиента вызывает функции FUNCTIONS через прокси-функцию, а RMI вызывает МЕТОДЫ через функцию прокси. RMI считается немного превосходящим, поскольку это объектно-ориентированная версия RPC.