RPC и RMI

Anonim

RPC против RMI

RPC (Remote Procedure Call) и RMI (Remote Method Invocation) - это два механизма, которые позволяют пользователю вызывать или вызывать процессы, которые будут выполняться на другом компьютере с того, который использует пользователь. Основное различие между ними - подход или парадигма. 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 - будущее