Diferença entre RPC e RMI

Índice:

Diferença entre RPC e RMI
Diferença entre RPC e RMI

Vídeo: Diferença entre RPC e RMI

Vídeo: Diferença entre RPC e RMI
Vídeo: Introdução ao Direito - Civil Law e Common Law 2024, Novembro
Anonim

RPC vs RMI

A diferença básica entre RPC e RMI é que RPC é um mecanismo que permite chamar um procedimento em um computador remoto enquanto RMI é a implementação de RPC em java. O RPC é neutro em termos de linguagem, mas suporta apenas tipos de dados primitivos a serem passados. Por outro lado, o RMI é limitado ao Java, mas permite a passagem de objetos. O RPC segue as construções tradicionais da linguagem procedural, enquanto o RMI oferece suporte ao design orientado a objetos.

O que é RPC?

RPC, que significa Remote Procedure Call, é um tipo de comunicação entre processos. Isso permite chamar uma função em outro processo em execução no computador local ou em um computador remoto. Este conceito surgiu há muito tempo em 1980, mas a primeira implementação famosa foi vista no Unix.

RPC envolve várias etapas. O cliente faz uma chamada de procedimento no computador local como de costume. O módulo chamado client stub coleta os argumentos e cria uma mensagem e passa para o sistema operacional, o sistema operacional faz uma chamada ao sistema e envia essa mensagem para o computador remoto. O sistema operacional no servidor coleta a mensagem e passa para o módulo no servidor chamado server stub. Em seguida, o stub do servidor chama o procedimento no servidor. Finalmente, os resultados são enviados de volta ao cliente.

A vantagem de usar o RPC é que ele é independente dos detalhes da rede. O programador só precisa especificar de forma abstrata enquanto o sistema operacional cuidará dos detalhes da rede interna. Portanto, isso facilita a programação e permite que o RPC funcione em qualquer rede, apesar das diferenças físicas e de protocolo. As implementações de RPC estão presentes em todos os principais sistemas operacionais, como Unix, Linux, Windows e OS X. O RPC geralmente é neutro em termos de linguagem, portanto, limita os tipos de dados aos mais primitivos, pois devem ser comuns a todas as linguagens. A abordagem em RPC não é orientada a objetos, mas é um mecanismo procedural tradicional como em C.

Diferença entre RPC e RMI
Diferença entre RPC e RMI
Diferença entre RPC e RMI
Diferença entre RPC e RMI

O que é RMI?

RMI, que significa Remote Method Invocation, é uma API (Application Programming Interface) que implementa RPC em java para suportar a natureza orientada a objetos. Isso permite chamar métodos Java em outra máquina Java Virtual residente no mesmo computador ou em um remoto. A limitação do RMI é que apenas métodos Java podem ser invocados, mas isso vem com a vantagem de que os objetos podem ser passados como argumentos e valores de retorno. Quando o desempenho é considerado, o RMI é mais lento que o RPC devido ao envolvimento do bytecode na máquina Java Virtual, mas o RMI é muito amigável ao programador e muito fácil de usar.

RMI usa mecanismos de segurança embutidos em Java e também fornece uma fábrica de soquetes que permite o uso de protocolos de camada de transporte personalizados não TCP. Além disso, o RMI fornece métodos para contornar firewalls. As etapas que ocorrem no RMI são semelhantes ao RPC. A implementação do RMI cuida dos detalhes da rede interna onde o programador não precisa se preocupar com eles.

Qual é a diferença entre RPC e RMI?

• RPC é um idioma neutro enquanto RMI é limitado a Java.

• RPC é procedural como em C, mas RMI é orientado a objetos.

• RPC suporta apenas tipos de dados primitivos enquanto RMI permite que objetos sejam passados como argumentos e valores de retorno. Ao usar RPC, o programador deve dividir quaisquer objetos compostos em tipos de dados primitivos.

• RMI é fácil de programar esse RPC.

• RMI é mais lento que RPC, pois RMI envolve a execução de bytecode java.

• O RMI permite o uso de padrões de projeto devido à natureza orientada a objetos, enquanto o RPC não possui esse recurso.

Resumo:

RPC vs RMI

RPC é um mecanismo de linguagem neutra que permite chamar um procedimento em um computador remoto. No entanto, o recurso de linguagem neutra limita os tipos de dados que são passados como argumentos e retornam valores para tipos primitivos. RMI é a implementação do RPC em Java e também suporta passagem de objetos, facilitando a vida do programador. A vantagem do RMI é o suporte ao design orientado a objetos, mas a limitação ao Java é uma desvantagem.

Recomendado: