rmi (remote method invocation)

Post on 06-Dec-2014

1.749 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

RMI (Remote Method Invocation)

Acadêmico: Helio Henrique Lopes Costa Monte AltoR.A.: 53729

Disciplina: Sistemas DistribuídosProfessor: Flávio Arnaldo Braga da Silva

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

IntroduçãoObjetos distribuídos:

Forma de implementar aplicações cliente/servidor;

Isolam clientes da implementação dos serviços;Protocolo básico:

1. Cliente manda mensagem a um objeto remoto (através de uma interface de serviços);

2. Objeto interpreta mensagem;3. Objeto seleciona um comportamento, que será

executado pelo próprio objeto ou por um broker (intermediário / agente);

IntroduçãoRMI (Remote Method Invocation) genérico:

“A RPC (Remote Procedure Call) está para a RMI assim como a chamada de procedimento está para a invocação de objetos.” (Coulouris et al., 2007)

Implementada em uma camada de middleware;

Camada de middleware (Coulouris et al., 2007)

IntroduçãoO que é Java RMI?

Interface de programação (API) para JavaRPC com a flexibilidade do Java, i. e., da

orientação a objetos Ex: polimorfismo

Objetos distribuídosComunicação entre JVMs

Introdução

Filosofia do Java: “Escreva uma vez, rode em qualquer lugar”;

RMI estende esse modelo: “Rode em todos os lugares”;

Portabilidade

Conexão com sistemas legados: JNI (Java Native Interface);

Conexão com bancos de dados: JDBC (Java Database Connectivity)

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

VantagensEm relação a sistemas RPC tradicionais:

Abordagem orientada a objetos;Passagem de mensagens com tipos complexos:

objetos;

Flexibilidade de implementaçõesVários comportamentos podem ser definidos

para uma mesma interface;Ex: mudança de política;

VantagensPadrões de projeto de OO:

Melhoram qualidade do código

Fácil de escrever / fácil de usar: Aplicações cliente/servidor;Permite desenvolver sem se preocupar com

detalhes de comunicação;3 linhas de código para declarar um servidor;Desenvolvimento rápido, rápida prototipação;

VantagensSegurança:

Proteção contra código malicioso;Mecanismos próprios do Java;Políticas de segurança;RMISecurityManager;

Conexão com sistemas legados;Escreva uma vez, rode onde quiser;Coletor de lixo distribuído;Computação paralela;

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

FuncionamentoFuncionamento básico

Em (1), busca pelo serviço e pega o endereço. Em (2), ele acessa o serviço pegando uma referência à interface do objeto. Em (3), ele chama um método fornecido pelo objeto

FuncionamentoConsiderações importantes:

Os métodos do objeto remoto podem ser chamados como se fossem de um objeto local;

Objetos remotos podem ser passados por parâmetro ou retornados como resultado;

Objetos são definidos como: Interface: define os comportamentos, i. e., os

métodos disponíveis; é a classe à qual o cliente referencia;

Implementação: implementa os comportamentos, que são executados remotamente no servidor;

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

Arquitetura

ArquiteturaGerenciador de referências remotas:

mapeamento de referências locais/remotas;Stub:

proxy presente no lado do clientecomporta-se como objeto local, mas em vez de

executar uma invocação local, encaminha uma mensagem a um objeto remoto

Skeleton:invoca o método correspondente à invocação

do cliente;

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

Exemplos

Criando uma interface do objeto remoto

Exemplos

Criando a classe que implementará a interface FileInterface

Exemplos

Criando o servidor

Exemplos

Criando um cliente

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

RMI x CORBA x Web ServicesWeb Services diferem bastante dos outros

dois:Não há objetos em WS;Maior interoperabilidade:

Ótimo para Web, usando HTTP, por exemplo;Desempenho geralmente pior:

HTTP e XML geram muita carga quando deve haver muitas trocas de mensagens;

Custo do processamento (parsing) de XML é mais alto;

RMI x CORBA x Web Services

Geração de componentes do cliente e servidor para as três tecnologias (GRAY, 2004)

RMI x CORBA x Web Services

Medidas de tempo de CPU (GRAY, 2004)

Análises de tráfego (GRAY, 2004)

SumárioIntroduçãoPortabilidadeVantagensFuncionamentoArquiteturaExemplosRMI x CORBA x Web ServicesAplicaçõesReferências

Aplicações

Sistemas distribuídos complexos;Clusters de estações de trabalhos;Sistemas de gerenciamento de redes;Aplicações distribuídas que requerem

escalabilidade;

Referências COULOURIS G., DOLLIMORE J., KINDBERG T. “Sistemas Distribuídos:

Conceitos e Projeto”. Bookman. Quarta edição. 2007. Distributed Java Programming with RMI and CORBA. Disponível em http

://java.sun.com/developer/technicalArticles/RMI/rmi_corba/. Acessado em Junho de 2011;

GRAY, N. A. B. Comparison of Web Services, Java-RMI, and CORBA service implementations. Fifth Australasian Workshop on Software and System Architectures. 2004

Java Remote Method Invocation - Distributed Computing for Java. Disponível em: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138781.html. Acessado em Junho de 2011;

MAASSEN, J., et al. An efficient implementation of Java's remote method invocation. Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming. 1999;

Tutorial RMI - Remote Method Invocation. Disponível em : http://www.devmedia.com.br/post-6442-Tutorial-RMI-Remote-Method-Invocation.html. Acessado em Junho de 2011

top related