sistemas distribu dos: conceitos e projeto rpc e rmi€¦ · java rmi permite a definicao de...
Post on 03-Jun-2020
14 Views
Preview:
TRANSCRIPT
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
Agenda
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 2 / 1
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
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
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
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
Chamada de Procedimento Remoto (RPC)
Funcionamento RPC
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 7 / 1
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
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
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
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
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
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
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
Chamada de Procedimento Remoto (RPC)
Exemplo IDL: Sun XDR
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 15 / 1
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
Chamada de Procedimento Remoto (RPC)
Binding (em DCE)
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 17 / 1
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
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
Chamada a Metodos Remotos (RMI)
Invocacoes Remota e Local
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 20 / 1
Chamada a Metodos Remotos (RMI)
Objeto Remoto
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 21 / 1
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
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
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
Chamada a Metodos Remotos (RMI)
Exemplo CORBA IDL
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 25 / 1
Chamada a Metodos Remotos (RMI)
Arquitetura CORBA
Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 26 / 1
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
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
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
top related