В чем разница между Java RMI и RPC?


какова фактическая разница между Java RMI и RPC?

Я читал в некоторых местах, что RMI использует объекты?

9 135

9 ответов:

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 (Simple Object Access Protocol)

удаленный вызов процедур (RPC) - это межпроцессная связь, которая позволяет вызывать функцию в другом процессе, находящемся в локальной или удаленной машине.

удаленный вызов метода (RMI) - это API, который реализует RPC в java с поддержкой объектно-ориентированных парадигм.

  1. вы можете думать о вызове RPC, как вызов процедуры C. RPC поддерживает примитивные типы данных, где как RMI поддерживает параметры метода / возвращаемые типы как объекты java.

  2. RMI легко программируется в отличие от RPC. Вы можете мыслить свою бизнес-логику в терминах объектов, а не последовательности примитивных типов данных.

  3. RPC является нейтральным языком в отличие от RMI, который ограничен java

  4. RMI немного медленнее RPC

взгляните на это статьи для реализации RPC в C

вызов RMI или удаленного метода очень похоже на RPC или Remote Процедура вызова в том, что клиент оба отправляют прокси-объекты (или заглушки) в сервер однако тонкий разница в том, что клиентская сторона RPC вызывает функции через прокси функция и RMI вызывает методы через функцию прокси. RMI is считается немного выше, как это объектно-ориентированный версия RPC.

From здесь.

для получения дополнительной информации и примеров, было!--15-->посмотреть здесь.

разница между RMI и RPC заключается в следующем:

  • RMI как имя указывает удаленный вызов метода: он вызывает метод или объект. И
  • RPC он вызывает функцию.

RPC старый протокол, основанный на C. Это может вызвать удаленную процедуру и сделать его похожим на местного звонка.RPC обрабатывает сложности передачи этого удаленного вызова на сервер и получения результата клиенту.

Java RMI также достигает того же, но немного differently.It использует ссылки на удаленные объекты.Итак, что он делает, это то, что он отправляет ссылку на удаленный объект вместе с именем способ получения invoke.It лучше, потому что это приводит к более чистому коду в случае больших программ, а также распределение объектов по сети позволяет нескольким клиентам вызывать методы на сервере вместо установления каждого соединения по отдельности.

вызов RMI или удаленного метода очень похож на вызов RPC или удаленной процедуры в том, что клиент отправляет прокси-объекты (или заглушки) на сервер, однако тонкое различие заключается в том, что клиентская сторона RPC вызывает функции через функцию прокси, а RMI вызывает методы через функцию прокси. RMI считается немного выше, так как это объектно-ориентированная версия RPC.