Разница между RPC и RMI

Оглавление:

Разница между RPC и RMI
Разница между RPC и RMI

Видео: Разница между RPC и RMI

Видео: Разница между RPC и RMI
Видео: RPC и REST — в чём разница? Часть 1: RPC 2024, Октября
Anonim

RPC против RMI

Основное различие между RPC и RMI заключается в том, что RPC - это механизм, позволяющий вызывать процедуры на удаленном компьютере, а RMI - это реализация RPC в java. RPC не зависит от языка, но поддерживает передачу только примитивных типов данных. С другой стороны, RMI ограничен Java, но позволяет передавать объекты. RPC следует традиционным конструкциям процедурного языка, в то время как RMI поддерживает объектно-ориентированный дизайн.

Что такое RPC?

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

RPC включает в себя несколько шагов. Клиент выполняет вызов процедуры на локальном компьютере, как обычно. Модуль, называемый клиентской заглушкой, собирает аргументы, создает сообщение и передает его операционной системе. Операционная система выполняет системный вызов и отправляет это сообщение на удаленный компьютер. Операционная система на сервере собирает сообщение и передает его модулю на сервере, называемому серверной заглушкой. Затем заглушка сервера вызывает процедуру на сервере. Наконец, результаты отправляются обратно клиенту.

Преимущество использования RPC заключается в том, что оно не зависит от параметров сети. Программист просто должен указать абстрактно, в то время как операционная система позаботится о деталях внутренней сети. Таким образом, это упрощает программирование и позволяет RPC работать в любой сети, несмотря на физические различия и различия в протоколах. Реализации RPC присутствуют во всех основных операционных системах, таких как Unix, Linux, Windows и OS X. RPC, как правило, не зависит от языка, поэтому он ограничивает типы данных самыми примитивными, поскольку они должны быть общими для всех языков. Подход в RPC не является объектно-ориентированным, а представляет собой традиционный процедурный механизм, как в C.

Разница между RPC и RMI
Разница между RPC и RMI
Разница между RPC и RMI
Разница между RPC и RMI

Что такое RMI?

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

RMI использует встроенные механизмы безопасности в Java, а также предоставляет фабрику сокетов, которая позволяет использовать пользовательские протоколы транспортного уровня, отличные от TCP. Кроме того, RMI предоставляет методы обхода брандмауэров. Шаги, которые происходят в RMI, аналогичны RPC. Реализация RMI заботится о деталях внутренней сети, и программисту не нужно о них беспокоиться.

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

• RPC не зависит от языка, а RMI ограничен Java.

• RPC процедурный, как и в C, но RMI является объектно-ориентированным.

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

• RMI легко запрограммировать для RPC.

• RMI медленнее, чем RPC, поскольку RMI требует выполнения байт-кода Java.

• RMI позволяет использовать шаблоны проектирования из-за объектно-ориентированной природы, в то время как RPC не имеет такой возможности.

Обзор:

RPC против RMI

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

Рекомендуемые: