sistema distribuidos- aula4

32
Sistema Distribuido Prof: Carlos Alberto Pereira Costa Email:[email protected]

Upload: neil-alexander

Post on 20-Jan-2016

28 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema Distribuidos- Aula4

Sistema Distribuido

Prof: Carlos Alberto Pereira Costa

Email:[email protected]

Page 2: Sistema Distribuidos- Aula4

Sistema Distribuido

Invocação RemotaIntrodução

Page 3: Sistema Distribuidos- Aula4

Sistema Distribuido

Invocação RemotaIntrodução

•Como processos, objetos e serviços se comunicam emum ambiente distribuído?

•Paradigmas de Invocação Remota

•Modelos de programação para aplicativos distribuídos

• Protocolos de Pedido/Resposta• Chamada Remota de Procedimento• Invocação Remota de Método

Page 4: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/Resposta

•Projetado para suportar a troca de mensagem típica domodelo Cliente/Servidor

•Comunicação síncrona

•Primitivas• doOperation• getRequest• sendReply

Page 5: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/RespostaPrimitivas de Comunicação

Page 6: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/RespostaPrimitivas de Comunicação

•public byte[] doOperation (RemoteRef s, int operationId, byte[]arguments)

•public byte[] getRequest ();

•public void sendReply (byte[] reply, InetAddress clientHost, int clientPort);

Page 7: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/RespostaModelo de Falha

•Se implementado sobre UDP• Falhas de Omissão• Não há garantia de entrega e de ordem da entrega

•Adicionalmente: falha do processo (crash)

•Contingência: timeouts• Retorno imediado com indicação de falha• Reenvio de requisição• Lidar com mensagens duplicadas [ servidor ]• Reenvio de resposta [ servidor ]

Page 8: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/RespostaHypertext Transfer Protocol - HTTP

•Utilizado por navegadores web (clientes) para requisitar serviços a / e receber dados de servidores web (servidor)

•Servidores web manipulam• Dados: páginas, arquivos, imagens, applets• Programas: servlets, ASP, PHP, Python

•Requisição do Cliente• DNS hostname• Porta• Identificador do recurso

Page 9: Sistema Distribuidos- Aula4

Sistema Distribuido

Protocolo Pedido/RespostaHypertext Transfer Protocol - HTTP

•Negociação de conteúdo e autenticação

•Implementado sobre TCP• Conexão entre cliente e servidor• Cliente envia pedido• Servidor processa e envia resposta• Conexão é encerrada

•Representação Externa de Dados e Empacotamento• Através de ASCII• Alguns recursos podem ser enviados em formato binário• Utilização de estruturas MIME (text/plain, text/html,

image/gif or image/jpeg. )

Page 10: Sistema Distribuidos- Aula4

Sistema Distribuido

Chamada Remota de Procedimento

•RPC representa o maior avanço em computaçãodistribuída (surgiu em 1984)

•Programação de sistemas distribuídos tornou-sesimilar (ou até idêntica) a sistemas centralizados

•Alto nível de transparência

•Procedimentos em máquinas remotas são chamadoscomo se estivessem no espaço de enderaçamento loca

Page 11: Sistema Distribuidos- Aula4

Sistema Distribuido

Chamada Remota de ProcedimentoQuestões de Projeto

•Estilo de programação (interfaces)

•Semântica das chamadas

•Transparência

Page 12: Sistema Distribuidos- Aula4

Sistema Distribuido

Chamada Remota de ProcedimentoQuestões de Projeto - Interfaces

•Define um contrato entre seus utilizadores

•Permite modificações de implementação sem afetar osclientes do procedimento•Interfaces de Serviço• Especificação das procedures ofertadas pelo servidor• Definição dos tipos de entrada e retorno de cada

procedimento

•Benefícios• Abstração de detalhes de implementação• Permite implementação em diferentes linguagens• Permite manutenção evolutiva sem afetar seus utilizadores

Page 13: Sistema Distribuidos- Aula4

Sistema Distribuido

Chamada Remota de ProcedimentoQuestões de Projeto - Interfaces

•Impacto da natureza distribuída das aplicações

• Módulo cliente não acessa espaço de variáveis domódulo remoto

• Passagem de parâmetro por referência não existe

• Parâmetros de entrada e retorno são, na verdade, transmitidos entre máquinas na rede

• Parâmetros de entrada e retorno são mapeados paravariáveis ou pontos do retorno após transmissão

Page 14: Sistema Distribuidos- Aula4

Sistema Distribuido

Chamada Remota de ProcedimentoIDL – Linguagem de Definição de Interfaces

•Um mecanismo RPC pode ser integrado a umaparticular linguagem de programação• Útil quando todas as partes do SD são implementadas

em uma mesma linguagem• Exemplo: Java para cliente e objeto remoto

•IDL’s

• Permite que procedures de diferentes linguagens seconectem remotamente

Page 15: Sistema Distribuidos- Aula4

Sistema Distribuido

IDLExemplo

Page 16: Sistema Distribuidos- Aula4

Sistema Distribuido

RPC – Como funciona?

Page 17: Sistema Distribuidos- Aula4

Sistema Distribuido

CORBA, IDL, ORB’s e IIOP•CORBA - padrão da indústria para objetos distribuídos

• IDL - Interface Definition Language

•Object Request Broker – ORB, suporta a interação entre os processos

•IIOP - Internet Inter-ORB Protocol, padrão sobre TCP-IP

•Modelo• Servidor define uma interface remota de serviços• Cliente invoca serviços da interface remota• Stub empacota a chamada• ORB envia a chamada• Skeleton recebe, trata e responde

Page 18: Sistema Distribuidos- Aula4

Sistema Distribuido

CORBA e IDL

Page 19: Sistema Distribuidos- Aula4

Sistema Distribuido

Exemplo: Hello World - CORBAArquivo IDL

Page 20: Sistema Distribuidos- Aula4

Sistema Distribuido

Exemplo: Hello World - CORBAArquivo IDL - Compilação

•idlj -fall Hello.idl (http://www.jacorb.org/download.html)

•Resultado• HelloPOA.java (stub)• HelloStub.java (stub)• Hello.java (interface)• HelloHelper.java• HelloHolder.java• HelloOperations.java

Page 21: Sistema Distribuidos- Aula4

Sistema Distribuido

Exemplo: Hello World - CORBA

Servidor

Page 22: Sistema Distribuidos- Aula4

Sistema Distribuido

Exemplo: Hello World - CORBA

Cliente

Page 23: Sistema Distribuidos- Aula4

Sistema Distribuido

Rodando o exemplo

1 idlj -fall Hello.idl

2 javac *.java HelloApp/*.java

3 orbd -ORBInitialPort 1050&

4 java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost&

5 java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost

Page 24: Sistema Distribuidos- Aula4

Sistema Distribuido

RMI - Invocação Remota de Métodos

•Conceito próximo a RPC, extendido para objetos

•Um objeto pode chamar um método (não apenas umprocedimento) em um objeto remoto

•Como em RPC, detalhes são escondidos doprogramador

Page 25: Sistema Distribuidos- Aula4

Sistema Distribuido

RPC versus RMISemelhanças

•Ambos os paradigmas suportam programação cominterfaces

•Construídos sobre o protocolo pedido/resposta(request/response)

•Nível similar de transparência

Page 26: Sistema Distribuidos- Aula4

Sistema Distribuido

RPC versus RMIDiferenças

•Sistemas distribuídos orientados a objetos(expressividade e poder do paradigma)

•Modelo mais sofisticado de passagem de parâmetros• Passagem de parâmetro por valor• Passagem de parâmetro por referência

Page 27: Sistema Distribuidos- Aula4

Sistema Distribuido

RMI

Page 28: Sistema Distribuidos- Aula4

Sistema Distribuido

Java RMI – Calculadora RemotaInterface Remota - Calculadora

Page 29: Sistema Distribuidos- Aula4

Sistema Distribuido

Java RMI – Calculadora RemotaImplementação da Interface - CalculadoraImpl

Page 30: Sistema Distribuidos- Aula4

Sistema Distribuido

Java RMI – Calculadora RemotaServidor

Page 31: Sistema Distribuidos- Aula4

Sistema Distribuido

Java RMI – Calculadora RemotaCliente

Page 32: Sistema Distribuidos- Aula4

Sistema Distribuido

Rodando o exemplo

1 javac *.java

2 rmic CalculatorImpl (cria o Stub)

3 rmiregistry & (levanta o servidor de nomes RMI)

4 java CalculatorServer &

5 java CalculatorClient