SlideShare une entreprise Scribd logo
1  sur  29
RMI (Remote MethodInvocation) Acadêmico: Helio Henrique Lopes Costa Monte Alto R.A.: 53729 Disciplina: Sistemas Distribuídos Professor: Flávio Arnaldo Braga da Silva
Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
Introdução Objetos distribuídos: Forma de implementar aplicações cliente/servidor; Isolam clientes da implementação dos serviços; Protocolo básico: Cliente manda mensagem a um objeto remoto (através de uma interface de serviços); Objeto interpreta mensagem; Objeto seleciona um comportamento, que será executado pelo próprio objeto ou por um broker (intermediário / agente);
Introdução RMI (Remote MethodInvocation) 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ção O que é Java RMI?  Interface de programação (API) para Java RPC com a flexibilidade do Java, i. e., da orientação a objetos Ex: polimorfismo Objetos distribuídos Comunicaçã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 DatabaseConnectivity)
Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
Vantagens Em relação a sistemas RPC tradicionais: Abordagem orientada a objetos; Passagem de mensagens com tipos complexos: objetos; Flexibilidade de implementações Vários comportamentos podem ser definidos para uma mesma interface; Ex: mudança de política;
Vantagens Padrõ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;
Vantagens Seguranç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ário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
Funcionamento Funcionamento 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
Funcionamento Consideraçõ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ário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
Arquitetura
Arquitetura Gerenciador de referências remotas:  mapeamento de referências locais/remotas; Stub:  proxy presente no lado do cliente comporta-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ário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referê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ário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
RMI x CORBA x Web Services Web 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ário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referê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. “SistemasDistribuídos: Conceitos e Projeto”. Bookman. Quartaedição. 2007. Distributed Java Programming with RMI and CORBA. Disponívelemhttp://java.sun.com/developer/technicalArticles/RMI/rmi_corba/. AcessadoemJunho 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ívelem: 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ívelem : http://www.devmedia.com.br/post-6442-Tutorial-RMI-Remote-Method-Invocation.html. Acessado em Junho de 2011

Contenu connexe

Similaire à Rmi (remote method invocation)

JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
Helder da Rocha
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Adriano Teixeira de Souza
 
Integração de sistemas da informação - Abordagens de integração
Integração de sistemas da informação - Abordagens de integraçãoIntegração de sistemas da informação - Abordagens de integração
Integração de sistemas da informação - Abordagens de integração
Joao Johanes
 

Similaire à Rmi (remote method invocation) (20)

JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Web Services
Web ServicesWeb Services
Web Services
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Integração de sistemas da informação - Abordagens de integração
Integração de sistemas da informação - Abordagens de integraçãoIntegração de sistemas da informação - Abordagens de integração
Integração de sistemas da informação - Abordagens de integração
 
Computacao distribuida com rmi
Computacao distribuida com rmiComputacao distribuida com rmi
Computacao distribuida com rmi
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Desenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosDesenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicos
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Web service
Web serviceWeb service
Web service
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Integração de aplicações em
Integração de aplicações emIntegração de aplicações em
Integração de aplicações em
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de caso
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 

Plus de Helio Henrique L. C. Monte-Alto

Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Helio Henrique L. C. Monte-Alto
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando Java
Helio Henrique L. C. Monte-Alto
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
Helio Henrique L. C. Monte-Alto
 

Plus de Helio Henrique L. C. Monte-Alto (14)

Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
 
Teoremas da Incompletude de Gödel
Teoremas da Incompletude de GödelTeoremas da Incompletude de Gödel
Teoremas da Incompletude de Gödel
 
Suporte à Programação Orientada a Objetos
Suporte à Programação Orientada a ObjetosSuporte à Programação Orientada a Objetos
Suporte à Programação Orientada a Objetos
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando Java
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
 
Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTOESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Rmi (remote method invocation)

  • 1. RMI (Remote MethodInvocation) Acadêmico: Helio Henrique Lopes Costa Monte Alto R.A.: 53729 Disciplina: Sistemas Distribuídos Professor: Flávio Arnaldo Braga da Silva
  • 2. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 3. Introdução Objetos distribuídos: Forma de implementar aplicações cliente/servidor; Isolam clientes da implementação dos serviços; Protocolo básico: Cliente manda mensagem a um objeto remoto (através de uma interface de serviços); Objeto interpreta mensagem; Objeto seleciona um comportamento, que será executado pelo próprio objeto ou por um broker (intermediário / agente);
  • 4. Introdução RMI (Remote MethodInvocation) 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)
  • 5. Introdução O que é Java RMI? Interface de programação (API) para Java RPC com a flexibilidade do Java, i. e., da orientação a objetos Ex: polimorfismo Objetos distribuídos Comunicação entre JVMs
  • 6. Introdução Filosofia do Java: “Escreva uma vez, rode em qualquer lugar”; RMI estende esse modelo: “Rode em todos os lugares”;
  • 7. Portabilidade Conexão com sistemas legados: JNI (Java Native Interface); Conexão com bancos de dados: JDBC (Java DatabaseConnectivity)
  • 8. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 9. Vantagens Em relação a sistemas RPC tradicionais: Abordagem orientada a objetos; Passagem de mensagens com tipos complexos: objetos; Flexibilidade de implementações Vários comportamentos podem ser definidos para uma mesma interface; Ex: mudança de política;
  • 10. Vantagens Padrõ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;
  • 11. Vantagens Seguranç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;
  • 12. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 13. Funcionamento Funcionamento 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
  • 14. Funcionamento Consideraçõ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;
  • 15. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 17. Arquitetura Gerenciador de referências remotas: mapeamento de referências locais/remotas; Stub: proxy presente no lado do cliente comporta-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;
  • 18. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 19. Exemplos Criando uma interface do objeto remoto
  • 20. Exemplos Criando a classe que implementará a interface FileInterface
  • 21. Exemplos Criando o servidor
  • 23. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 24. RMI x CORBA x Web Services Web 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;
  • 25. RMI x CORBA x Web Services Geração de componentes do cliente e servidor para as três tecnologias (GRAY, 2004)
  • 26. RMI x CORBA x Web Services Medidas de tempo de CPU (GRAY, 2004) Análises de tráfego (GRAY, 2004)
  • 27. Sumário Introdução Portabilidade Vantagens Funcionamento Arquitetura Exemplos RMI x CORBA x Web Services Aplicações Referências
  • 28. Aplicações Sistemas distribuídos complexos; Clusters de estações de trabalhos; Sistemas de gerenciamento de redes; Aplicações distribuídas que requerem escalabilidade;
  • 29. Referências COULOURIS G., DOLLIMORE J., KINDBERG T. “SistemasDistribuídos: Conceitos e Projeto”. Bookman. Quartaedição. 2007. Distributed Java Programming with RMI and CORBA. Disponívelemhttp://java.sun.com/developer/technicalArticles/RMI/rmi_corba/. AcessadoemJunho 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ívelem: 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ívelem : http://www.devmedia.com.br/post-6442-Tutorial-RMI-Remote-Method-Invocation.html. Acessado em Junho de 2011