sistemas distribu dos: conceitos e projeto rpc e rmi€¦ · java rmi permite a definicao de...

29
Sistemas Distribu´ ıdos: Conceitos e Projeto RPC e RMI Francisco Jos´ e da Silva e Silva Laborat´orio de Sistemas Distribu´ ıdos (LSD) Departamento de Inform´ atica / UFMA http://www.lsd.deinf.ufma.br 15 de abril de 2013 Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 1/1

Upload: others

Post on 03-Jun-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Sistemas Distribuıdos: Conceitos e ProjetoRPC e RMI

Francisco Jose da Silva e Silva

Laboratorio de Sistemas Distribuıdos (LSD)Departamento de Informatica / UFMA

http://www.lsd.deinf.ufma.br

15 de abril de 2013

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 1 / 1

Page 2: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Agenda

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 2 / 1

Page 3: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Chamada de Procedimento Remoto(RPC)

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 3 / 1

Page 4: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Objetivo RPC

Permitir que a chamada a um procedimento remoto se assemelhe aoprogramador o maximo possıvel com a chamada a um procedimentoconvencional;

A ideia surgiu em 1984 em um artigo escrito por Birrell e Nelson.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 4 / 1

Page 5: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Chamada a Procedimento Local

count = read(fd, buf, nbytes)

Figura: a) Passagem de parametros em uma chamada local: a pilha antes dachamada ao procedimento b) A pilha enquanto o procedimento chamado estaativo

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 5 / 1

Page 6: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Passagem de Parametros

Por valor (fd e nbytes): O parametro e copiado para a pilha.Mudancas em seu valor nao afetam quem chamou o procedimento;

Por referencia (buf): E copiado para a pilha a referencia aoparametro, isto e, um apontador (endereco de memoria) da variavel.Portanto, Alteracoes em seu valor no procedimento chamado afetaquem o chamou;

Copy/restore: O parametro e copiado para a pilha e depois dachamada copiado de volta, sobrescrevendo o valor original.Normalmente possui a mesma semantica da copia por referenciaexceto em situacoes como o mesmo parametro sendo enviado mais deuma vez.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 6 / 1

Page 7: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Funcionamento RPC

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 7 / 1

Page 8: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Consideracoes do Mecanismo RPC

Dado que os procedimentos executam em maquinas diferentes, osseguintes aspectos devem ser levados em consideracao:

A semantica da passagem de parametros deve ser adaptada;

Parametros devem traduzidos caso as maquinas nao sejam identicas;

As duas maquinas podem falhar, causando problemas.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 8 / 1

Page 9: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Implementacao da Chamada a Procedimento Remoto

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 9 / 1

Page 10: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Implementacao da Chamada a Procedimento Remoto

1 O procedimento cliente chama localmente o stub cliente;

2 Stub cliente constroi a mensagem e chama o SO local;

3 O SO local envia a mensagem ao SO remoto;

4 O SO Remoto entrega a mensagem ao stub servidor;

5 O stub servidor desempacota os parametros e chama o procedimentoservidor;

6 O servidor realiza o trabalho retornando o resultado ao stub;

7 O stub servidor empacota o resultado em uma mensagem e chama oSO local;

8 O SO do servidor envia a mensagem ao SO do cliente;

9 O SO do cliente entrega a mensagem ao stub cliente;

10 O stub cliente desempacota o resultado e o retorna aocliente.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 10 / 1

Page 11: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Aspectos Semanticos

Ponteiros nao possuem significado no ambiente do procedimentochamado;

A semantica da passagem de parametros por referencia pode sersimulada utilizando-se “call-by-copy/restore”;

Nao e possıvel o acesso a variaveis globais;

Estruturas complexas, como arvores, devem ser “achatadas” eremontadas.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 11 / 1

Page 12: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Passagem de Parametros

Marshalling: processo de se empacotar uma colecao de itens dedados em um formato especıfico para sua transmissao em umamensagem;

Unmarshalling: e o processo inverso.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 12 / 1

Page 13: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Empacotamento da Chamada Remota

Alem dos parametros, outras informacoes como o nome doprocedimento sendo invocado devem constar da mensagem;

Caso as maquinas nao sejam identicas, os bits que compoem amensagem podem ser erroneamente interpretados:

Codificacao de caracteres: EBCDIC / ASCIIRepresentacao de numeros: little endian / big endian

Portanto um formato externo deve ser utilizado

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 13 / 1

Page 14: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Programando Chamadas a Procedimentos Remotos: IDL:

Linguagem de Definicao de Interfaces

Especifica as caracterısticas dos procedimentos disponibilizado por umservidor: nome dos procedimentos e seus parametros (assinaturas);

Um compilador de interface gera:

Stub clienteStub servidorCabecalhos dos procedimentos

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 14 / 1

Page 15: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Exemplo IDL: Sun XDR

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 15 / 1

Page 16: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Compilacao e Geracao do Programas

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 16 / 1

Page 17: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada de Procedimento Remoto (RPC)

Binding (em DCE)

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 17 / 1

Page 18: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Chamada a Metodos Remotos (RMI)

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 18 / 1

Page 19: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Objetos Distribuıdos

No paradigma orientado a objetos o estado de um programa eseparado em partes, associadas a cada objeto. A distribuıcao fısicados objetos e, portanto, uma extensao natural;

Invocacoes de metodos em objetos remotos sao chamadas RMI(Remote Method Invocation).

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 19 / 1

Page 20: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Invocacoes Remota e Local

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 20 / 1

Page 21: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Objeto Remoto

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 21 / 1

Page 22: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Mecanismo de Chamada a Objeto Remoto

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 22 / 1

Page 23: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Algumas Tecnologias de Objetos Distribuıdos

Java RMI (Remote Method Invocation);

OMG CORBA (Common Object Request Broker Architecture);

Microsoft DCOM (Distributed Common Object Model).

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 23 / 1

Page 24: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

IDL

Uma linguagem (IDL) e utilizada para definicao de interfacesremotas;

Objetos remotos podem ser implementados em varias linguagens,como Java, C++, Cobol ou Phyton desde que haja um mapeamentopara IDL e compiladores especıficos;

Java RMI permite a definicao de interfaces remotas da mesma formaque interfaces convencionais, extendendo-se a interface Remote.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 24 / 1

Page 25: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Exemplo CORBA IDL

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 25 / 1

Page 26: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Arquitetura CORBA

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 26 / 1

Page 27: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Arquitetura CORBA

ORB - Object Request Broker: age como um barramento paratroca de mensagens entre objetos distribuıdos;

Stub: codigo gerado pelo compilador IDL a ser linkeditado ao codigocliente;

Skeleton: codigo gerado pelo compilador IDL a ser linkeditado aocodigo servidor;

Object Adapter: gera referencias a objetos, ativa e desativaserventes, mapea a referencia a um objeto ao servente que oimplementa, implementa polıticas;

Servente: uma implementacao de objeto que disponibiliza asemantica em tempo de execucao de um ou mais objetos CORBA.

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 27 / 1

Page 28: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Ciclo de Vida de um Objeto CORBA

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 28 / 1

Page 29: Sistemas Distribu dos: Conceitos e Projeto RPC e RMI€¦ · Java RMI permite a definicao de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface

Chamada a Metodos Remotos (RMI)

Servicos CORBA

Naming

Trading

Notification

Persistent state

Transactions

Security

Etc . . .

Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 29 / 1