Buscar

Sockets e RPC em Sistemas Distribuídos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula 6 – Sockets e RPC
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas Nuvens
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
Conteúdo Programático AULA 6
Sockets.
Remote Procedure Call (RPC).
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
IMPLEMENTAÇÃO COM SOCKETS
Um programa vê os sockets como um mecanismo de entrada e saída de dados
Seguem o paradigma open-read-write-close
A comunicação através de sockets utiliza também a abordagem de descritor.
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
CARACTERÍSTICAS DA COMUNICAÇÃO
Configura Cliente
Configura Servidor
Solicita conexão
Aguarda conexão
Envia e recebe dados
Envia e recebe dados
FIM
FIM CONEXÃO
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
CHAMADAS AO SISTEMA - LINUX
Socket : cria um socket
Bind: associa uma porta ao socket
Listen: Indica ao kernel que está apto a receber conexões
Accept: Aceita conexões
Connect: Solicita uma conexão
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
CONFIGURAÇÃO - SERVIDOR
int open_servidor(unsigned short port){
 int sock;
 struct sockaddr_in server;
  sock = socket(AF_INET,SOCK_STREAM,0);
 if (sock < 0) return -1;
 server.sin_family = AF_INET;
 server.sin_addr.s_addr = INADDR_ANY;
 server.sin_port = htons((short) port);
  if ( bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0 ) return -1;
 if (listen(sock, MAXBACKLOG) < 0 ) return -1;
 return sock; 		
}
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
EXEMPLO – ACERTAR A HORA
Configura Cliente
Configura Servidor
Solicita conexão
Aguarda conexão
Recebe data/hora e ajusta o sistema
Obtém data/hora e envia ao cliente
FIM
FIM CONEXÃO
 Servidor: ./server		Cliente:./client <ip do servidor> 8000
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
REMOTE PROCEDURE CALL
Birrell e Nelson (1984) : permitir que programas fossem capazes de chamar procedimentos localizados em outras CPUs.
Para chamar um procedimento remoto, o programa cliente deve ser ligado a um pequeno procedimento de biblioteca chamado de stub do cliente, que representa o procedimento servidor no espaço de endereçamento do cliente. 
Da mesma maneira, o servidor é ligado a um procedimento denominado stub do servidor.
 .
 
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
REMOTE PROCEDURE CALL
 
 
 
 
Sistema Operacional
Sistema Operacional
Cliente
Stub
do
Cliente
Stub
do
Servidor
Servidor
Rede
A
B
C
D
E
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
EXEMPLO – EQUAÇÃO 2º GRAU
Procedimentos:
Escrever gerador : calcula.x
Gerar arquivos com rpcgen: rpcgen –c – A calcula.x
makefile.calcula		compila cliente e servidor
calcula_clnt.c		stub do cliente (não alterar)
calcula_svc.c		 stub do servidor (não alterar)
calcula.h			 cabeçalho das funções
calcula_client.c		 esqueleto do cliente
calcula_server.c		 esqueleto do servidor
Editar arquivos calcula_client.c e calcula_server.c
 
Tema da Apresentação
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
*
RESUMINDO
Programação com sockets torna explicita as características e uso da rede
Programação com RPC disfarça a existência da rede simplificando a programação
 
Tema da Apresentação
*

Outros materiais