Sistemas Distribuídos



Documentos relacionados
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Invocação de Métodos Remotos

SISTEMAS DISTRIBUÍDOS

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Adriano Reine Bueno Rafael Barros Silva

Invocação Remota MC704

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

Java RMI. Alcides Calsavara

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

UNIVERSIDADE. Sistemas Distribuídos

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Middleware de Aplicações Paralelas/Distribuídas

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Sistemas Distribuídos

INE Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Desenvolvimento de Aplicações Java/CORBA

UNIVERSIDADE. Sistemas Distribuídos

Programação com sockets (em Java)

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Capítulo V Sistemas de Objectos Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos


Sistemas Distribuídos RPC Remote Procedure Call

Sistemas Distribuídos

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Objetos Distribuídos. Nazareno Andrade

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Comunicação usando soquetes.

APÊNDICE A EXEMPLO DE APLICAÇÃO

SISTEMAS DISTRIBUIDOS

Um pouco do Java. Prof. Eduardo

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Web Services. (Introdução)

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

INF01018 Aula Prática 2 RMI Remote Method Invocation

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Sistemas Distribuídos

Invocação de Métodos em Objectos Remotos

Sistemas Distribuídos

Alocação Dinâmica e Transparente de Computadores Ociosos em Java

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Objetos distribuídos. Roteiro. Java IDL

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Sistemas Distribuídos

RMI: Uma Visão Conceitual

Java : Comunicação Cliente-Servidor.

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Mecanismos de Comunicação. Sockets em java (

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

DAS Sistemas Distribuídos & Redes

Sistemas Distribuídos Arquiteturas Middlewares

RMI/JNDI - Fundamentos

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Threads e Sockets em Java. Threads em Java. Programas e Processos

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006

Redes de Computadores

Capítulo II Modelos de Programação Distribuída

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Java Spaces Exemplos

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

insfcanceof new public switch transient while byte continue extends for int null

Enterprise Java Beans

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Desenvolvimento Cliente-Servidor 1

Departamento de Informática

Transcrição:

Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com

Relembrando... Mecanismos de Comunicação Middleware

Cenário em uma rede Local (LAN)

RPC ( UNIX )

RPC ( UNIX ) - Interface

RPC ( UNIX ) - Servidor

RPC ( UNIX ) - Cliente

No mundo Java, temos o JAVARMI

Arquitetura Java RMI Host Cliente Host Servidor Interface do Objeto do Servidor Interface do Objeto do Servidor Programa Cliente Stub do Serviço (4) Comunicação Skeleton do Serviço Objeto do Serviço (1) Registro do Objeto do Serviço (3) Retorna o STUB do Objeto (2) Busca pelo Objeto Host do registro RMI RMI Registry

Arquitetura Java RMI Host Cliente IMensageiro.java Host Servidor IMensageiro.java MensageiroImpl.java Cliente.java Stub do Serviço (4) Comunicação Skeleton do Serviço Servidor.java (1) Registro do Objeto do Serviço (3) Retorna o STUB do Objeto (2) Busca pelo Objeto Host do registro RMI RMI Registry https://github.com/adrianoavelar/rmimessage

Interface do Serviço public interface IMensageiro extends Remote { public String docommunication(string name) throws RemoteException; }

Implementação da Interface public class MensageiroImpl extends RemoteException implements IMensageiro { public MensageiroImpl() { super(); } } public String docommunication(string name) throws RemoteException { return "\nservidor diz: Olá " + name+ "\n"; }

Servidor (Provedor do Serviço) public class Servidor { public Servidor() { try { IMensageiro m = new MensageiroImpl(); Naming.rebind("MensageiroServico", m); System.out.println("Mensageiro vinculado ao serviço de nome 'MensageiroServico' "); } catch (Exception e) { System.out.println("ERROR: "+e.getlocalizedmessage()); } } public static void main(string[] args) { new Servidor(); } }

Cliente (Consumidor do Serviço) public class Cliente { public Cliente(){ try { String uri = new String("rmi://" +"localhost"+"/"+"mensageiroservico"); IMensageiro m = (IMensageiro) Naming.lookup(uri); String name = JOptionPane.showInputDialog(null, "Digite seu nome:"); String respostadoservidor = m.docommunication(name); System.out.println(respostaDoServidor) } catch (Exception ex) { ex.printstacktrace(); } } public static void main(string[] args) { new Cliente(); } }

RMI x Sockets mais facilidade na construção da aplicação distribuída com RMI não dá para perceber, mas o socket é mais rápido duas novidades no RMI especificação da Interface (java) serviço de nome ( rmiregistry ) RMI usa socket, mas isto fica invisível (lembra da transparência?) ao programador

RMI x Sockets RMI usa TCP no RMI invoca-se explicitamente uma operação remota, no socket a operação remota ficou implícita no RMI precisa-se que o rmiregistry esteja funcionando no socket o host do servidor é informado ao cliente, no RMI o nome do serviço é informado ao cliente (transparência de localização)

Chegamos ao turbinado CORBA CORBA (Common Object Request Broker Architecture) CORBA é uma especificação as implementações do CORBA usam TCP JDK implementa o CORBA (Sun)

CORBA

Interface

Cliente

Cliente

CORBA Servidor

CORBA Servidor

RMI x CORBA ambos fornecem facilidades para construção da aplicação distribuída não dá para perceber, mas o RMI é mais rápido não dá para perceber, mas o CORBA é muito mais complexo RMI e CORBA usam socket, mas isto fica invisível (lembra da transparência?) ao programador

RMI x CORBA RMI e CORBA usam TCP não dá para perceber, mas no CORBA cliente e servidor podem ser construídos em linguagens diferentes (heterogeneidade) no RMI precisa-se que o rmiregistry estejam funcionando, no CORBA precisa-se que o serviço de nomes (orbd) esteja funcionando a interface no RMI é especificada em Java, a interface em CORBA é especificada em IDL

Trabalho (Em Dupla) Desenvolva uma calculadora usando JAVA RMI. A aplicação cliente deve perguntar a operação desejada ao usuário e os números que entrarão como argumento da operação. O código fonte deve ser enviado via e-mail (para: eam.avelar@gmail.com) Exemplo: https://github.com/adrianoavelar/rmimessage Data de entrega: Antes da prova I (26 de setembro)