Java RMI João Gabriel (jggxm).

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Baseados em Objetos
Advertisements

Java Remote Method Invocation Java RMI
gerador de código intermediário
Sistemas distribuídos
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Sistemas Distribuídos
RMI-IIOP.
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Interação Cliente Servidor
Desenvolvimento de Aplicações Distribuídas
Invocação de Métodos Remotos RMI
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Comunicação Entre Objetos Distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Comunicação Inter-Processos
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Introdução à Programação Distribuída em Java
Middleware e Sistemas Distribuídos
JAVA: Conceitos Iniciais
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Chamada Remota de Procedimentos
Marcela Bezerra da Silva Cin - UFPE
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Concorrência e Java RMI
Administração e Integração de Redes em Sistemas Distribuídos
Mole: Um Sistema de Agentes Móveis Baseado em Java Curso de Ciência da Computação Departamento de Informática Disciplina de Tópicos Especiais em Computação.
Professor: Márcio Amador
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
SISTEMAS OPERACIONAIS I
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Processos.
RMI - JAVA.
RPC and Web Service André Pereira.
Comunicação.
Troca de Mensagens Programação concorrente
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
RMI (Remote Method Invocation) Bruno Edson Plínio Tadeu
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Java – Remote Method Invocation (RMI)
26/10/10 Sistemas Distribuídos 1 DAS Sistemas Distribuídos para Automação Industrial Trabalho 2ª Semestre de 2010 Professor: Joni da Silva Fraga.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
RMI Remote Method Invocation
Sistemas Distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Serviços de rede e internet Jackson Eduardo da Silva.
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
Sistemas Distribuídos Prof. Marcus Rodrigues
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Capítulo 4 Estrutura do Sistema Operacional
Remote Method Invocation (RMI) Sistemas Distribuídos.
Transcrição da apresentação:

Java RMI João Gabriel (jggxm)

RPC (Remote Procedure Call) Tecnologia (Protocolo) de comunicação entre processos Permite que um processo invoque um método de outro processo que esteja em seu espaço de endereçamento, mesmo que este esteja em outro host na rede Torna mais fácil a implementação de aplicações distribuídas, pois abstrai o código referente à parte de comunicação

RMI (Remote Method Invocation) Permite a chamada de métodos em objetos que estão em outra máquina virtual (geralmente em outro host) com a mesma sintaxe da invocação local Implementação do RPC para Java É exclusivo para aplicações em Java. É tipicamente cliente-servidor.

Conceitos Objeto Remoto: É um objeto que pode receber invocações remotas. Referência a objeto remoto: Para que um objeto possa invocar métodos de um objeto remoto, ele deve ter acesso à referência do mesmo.

Conceitos (Continuação) Interface Remota: Todo objeto remoto possui uma interface que especifica quais dos métodos podem ser invocados remotamente. Exceções: Podem ocorrer por problemas decorrentes da distribuição ou na execução do método.

Considerações As chamadas remotas têm um tempo de resposta maior do que as chamadas locais. As chamadas remotas são mais vulneráveis e possuem falhas mais complexas.

Arquitetura Stub: É uma classe gerada pelo compilador rmic no lado do cliente e implementa a mesma interface remota do lado do servidor. Não implementa os métodos diretamente e sim traduz a invocação dos métodos para o servidor.

Arquitetura(Continuação) Stub(Continuação): Inicia a conexão com a JVM remota. Serializa os parâmetros para a JVM remota (Marshaling). Desserializa os resultados ou exceções de retorno. Entrega ao cliente o resultado ou exceção.

Arquitetura(Continuação) Skeleton: É gerado pelo compilador rmic e fica do lado do servidor. Implementa a interface remota. Desserializa(Unmarshaling) os parâmetros para o método remoto. Invoca o método no objeto remoto. Serializa o valor de retorno ou exceção e envia para o cliente.

Arquitetura(Continuação)

Arquitetura(Continuação) Seria impraticável se para cada invocação de método remoto fosse necessário incluir a máquina e a porta de destino. O RMI oferece um serviço de nomes (RMI Registry) que fornece informações sobre a localização de objetos remotos.

Arquitetura(Continuação)

Implementação Inicialmente defina a interface remota. Escreva o código do servidor que implementa a interface. Escreva o código do cliente. Execute o servidor Execute o(s) cliente(s).

Exemplo Peguem o exemplo clicando no link http://www.cin.ufpe.br/~jggxm/infra-software/

Exercício Crie um programa que permite imprimir uma mensagem na tela de um computador remoto utilizando RMI

Concorrência No nosso exemplo podemos perceber que caso dois clientes estejam acessando o mesmo objeto Produto, se um resolver alterar seu preço enquanto outro remove o mesmo poderá haver uma inconsistência. Como resolver?

Concorrência(Continuação) Basta colocarmos o modificador synchronized em cada método da classe do objeto remoto onde pode haver a geração de inconsistência. Esse modificador faz com que um objeto que está sendo acessado só possa ser acessado novamente quando a tarefa que está sendo realizada sobre ele seja concluida.

Vantagens do RMI Modelagem fácil e natural de sistemas distribuídos, abstraindo a parte de rede Sintaxe da chamada de método local é igual à sintaxe da chamada de método remoto Rápida difusão com a plataforma Java.

Desvantagens do RMI Para cada máquina onde estão os objetos remotos deve haver um servidor de nomes para os mesmos serem registrados. Como RMI usa comunicação síncrona, o cliente não pode fazer outra tarefa enquanto espera a resposta do servidor. São necessárias configurações adicionais no firewall, causando restrições de acesso e desempenho.

RMI x CORBA (Vantagens) RMI é similar a CORBA, porém mais simples pois não precisa lidar com diferentes linguagens de programação. Como tudo é implementado em Java, não necessita de IDL, pois as interfaces são definidas usando as próprias interfaces de Java.

RMI x CORBA (Vantagens) RMI permite que objetos possam ser passados por valor facilmente. Com RMI objetos podem ser transferidos de servidores remotos para o cliente em tempo de execução de forma segura.

RMI x CORBA (Desvantagens) RMI é limitado a Java. Muitas vezes é necessário implementar partes do sistema em C++ por questões de eficiência e a integração com Java não é simples.

RMI x CORBA (Desvantagens) Desempenho de RMI é menor em alguns casos. A arquitetura de CORBA como um todo é mais abrangente.

Referências http://www.ucb.br/prg/professores/fgoulart/gsi_rmi.pdf http://www.dimap.ufrn.br/~thais/SD20071/RPC-RMI.pdf http://www.inf.pucrs.br/~celso/SistemasDistribuidos/JavaRMI/RMI.pdf https://dspace.ist.utl.pt/bitstream/2295/54860/1/04_-_RMI.pdf#search=%22invoke%20rmi%22 http://www.inf.ufsc.br/~mario/ine6502ch2.pdf