Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Java Remote Method Invocation Java RMI
Sistemas distribuídos
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Tratamento de Exceções
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
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
Objetos Distribuídos e Invocação Remota
Desenvolvimento de Aplicações Distribuídas
Invocação de Métodos Remotos RMI
Programação Concorrente
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
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 Serviços CORBA. Serviços CORBA. Funcionalidades que podem ser utilizadas por objetos distribuídos. Naming Service (Serviço de Nomes) Event and Notification.
Comunicação Inter-Processos
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Remoting 3 a aula prática de PADI 2004/05 Rodrigo Miragaia.
Estrutura de Dados em Java
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Concorrência em Java Threads em Java.
JAVA Linguagem Ambiente de Desenvolvimento
Arquitetura CORBA e Objetos Distribuídos
Chamada Remota de Procedimentos
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Desenvolvimento de Aplicações CORBA
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Concorrência e Java RMI
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Objetos Distribuídos Nazareno Andrade.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
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.
Afinal, o que é um SD? Ospróximospróximosslidesdeverãoserserexecutadosum servidor,executadosum servidor, continuamente para criarmos um cliente e ambos.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
Integrações de Aplicações Empresariais Prof. Paulo Fernando da Silva UNC – Universidade do Contestado Pós-Graduação em Sistemas de Informação Aplicados.
Tratamento de Exceções
Java RMI João Gabriel (jggxm).
RMI - JAVA.
Java Kickstart, day 2 Semelhanças com linguagem C.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
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
Herança Modelagem e Programação Orientada a Objetos
Java – Remote Method Invocation (RMI)
Chamada Remota de Procedimentos. Remote Procedure Call O fluxo de informações em uma implementação de clientes e servidores por passagem de mensagem requer.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Computação Distribuída João Bosco Mangueira Sobral CORBA Common Object Request Broker.
RMI Remote Method Invocation
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Principais conceitos de CORBA.
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
Sistemas Distribuídos Prof. Marcus Rodrigues
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
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
Programação em Java RMI - Remote Method Invocation Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Remote Method Invocation
Transcrição da apresentação:

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Remote Method Invocation Mecanismo de Invocação de métodos em um sistema de objetos distribuídos; Exemplos: Java RMI Java RMI – IIOP Internet Inter-Orb Protocol Corba DCOM

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Remote Method Invocation Mecanismo de Invocação de métodos para a linguagem Java; Suporta a invocação automática de objetos; Permite carregamento dinâmico de classes; Componentes: Linguagem de definição de interface: Java; Servidor de nomes: rmiregistry Compilador usado: rmic

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Remote Method Invocation Stubs e Skeletons Objeto Cliente stub Objeto remoto skeleton os skeleton´s só são gerados pelo compilador java 1.4 e anterior, os superiores não geram. Os próprios stub´s fazem os dois papéis

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Projeto e Compilação de aplicação remota Passos Definição da interface Implementação e compilação da interface Implementação e compilação do Cliente Geração dos Sutub´s pelo compilador Saídas Interface.java Server.java, server.class Client.java, client.class Server-skeleton.calss, client-sutb.class

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Execução da Aplicação Remota Passos Inicialização do servidor de nomes Inicialização do servidor Servidor exporta interface Inicialização do cliente Cliente importa interface Comandos rmiregistry java server naming.rebind(serviço) java client naming.lookup(serviço)

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Visão Geral serviço de nomes (rmiregistry) objeto cliente objeto remoto Interface remota Invocação de método remoto Obtenção de referência da interface Exportação de interface

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Compilando rmic Gera os clientes-stubs e server-skeletons (java1.4) Cada classe que implementa uma interface remota. Exem: rmic HelloImpl (.class arquivo) Ele cria os arquivos HelloImpl_Skel.class (servidor – apenas java1.4) HelloImpl_Stub.class (Cliente (Cliente e Servidor))

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Passagem de parâmetro Objeto não remoto Deve implementar interface java.io.Serializable Objetos cujas instâncias podem ser copiadas entre espaço de endereçamento diferentes. Cópia passada por valor (como parâmetro ou valor de retorno) Objeto remoto Deve implementar interface java.rmi.Remote Objeto cujas instâncias podem ser usadas remotamente Referência do objeto é passado (como parâmetro ou valor de retorno)  Corresponde ao seu stub

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Interfaces e Classes RMI RemoteObject Remote IOException RemoteServer RemoteException Activatable InicastRemoteObject Implementação Extensão Interface Classes

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Será criado : Interface: ServidorInt.java Servidor: Servidor.java Cliente: Cliente.java

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Interface: ServidorInt.java import java.rmi.*; public interface ServidorInt extends Remote { void imprimeMensagem (String mensagem) throws RemoteException; }

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Servidor.java import java.rmi.*; import java.remi.server.*; public class Servidor extends UnicastRemoteObject implements ServidorInt{ public Servidor() throws RemoteException{ super(); }; public void imprimeMensagem(String mensagem){ System.out.println(“Mensagem enviada é : ” + mensagem); } public sataic void main (String args[]){ try { Servidor s = new Servidor(); Naming.rebind (“servidor”, s); System.out.println(“Servidor resgistrado”); } catch (Exception e){ System.out.println(“Erro ” + e.getMessage()); e.printStactTrace(); }

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Cliente.java import java.rmi.*; import java.io.*; public class Cliente implements Serializable{ public sataic void main (String args[]){ try { ServidorInt s = (Servidor) Naming.lookup(“servidor”); s.imprimeMensagem(“Oi pessoal”); } catch (Exception e){ System.out.println(“Erro :” + e.getMessage()); e.printStactTrace(); }

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Processo de criação da aplicação Compilar os arquivos javac ServidorInt.java Servidor.java Cliente.java Geração do stub e skeleton -> (java1.4) rmic Servidor Gera as classes Servidor_Stub.class e Servidor_Skel.class Ativação do serviço de nomes Rmiregistry Ativação das aplicações java Servidor java Cliente

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Coleta de Lixo (Garbage Collection) Processo de destruição automática de objetos não mais acessados por clientes; Baseado na contagem de referências ao objeto servidor Uma referência seria uma conexão estabelecida entre o cliente e o servidor O cliente adquire o leasing da referência por um período de tempo e deve renova-lo Se o servidor falha, deve-se renovar a referência.

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Carregamento dinâmico de classes objeto cliente objeto remoto Classe MinhaClasse Baseado na anotação de classes durante a serialização. A anotação indica de onde conseguir as classes Servidor de Classes do cliente http

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Ativação de objeto Remoto objeto cliente objeto ativo Evita o consumo de CPU por objetos inativos Suporta referências persistentes de objetos ativador 1 stub 4 objeto inativo 2 3 Passa referência ativa

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Security Manager Todos os programas que usam RMI devem instalar um módulo de segurança para: Carregar objetos passados como parâmetros; Valores retornados ou exceções. Garantia de que o código carregado obedece à requisitos de segurança. RMISecurityManager

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Cliente.java com Segurança import java.rmi.*; import java.io.*; public class Cliente implements Serializable{ public sataic void main (String args[]){ if (System.getSecurityManager() == null) { System.setSecurityManager( new RMISecurityManager() ); } try { ServidorInt s = (Servidor) Naming.lookup(“servidor”); s.imprimeMensagem(“Oi pessoal”); } catch (Exception e){ System.out.println(“Erro :” + e.getMessage()); e.printStactTrace(); }

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos RMI – Bibiografia Java Remote Method INvocation Specification na tutoriais.