Chamadas Remotas de Procedimentos (RPC)
|
|
- Ivan Benevides de Sousa
- 8 Há anos
- Visualizações:
Transcrição
1 Chamadas Remotas de Procedimentos (RPC) Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite a divisão do programas em vários pedaços Motivação para RPC Desvantagens do Socket: Abordagem orientada a Comunicação A aplicação não recebe atenção exclusiva Chamadas de Procedimentos Convencionais podem representar send e receive
2 O Conceito de Procedimentos main proc1 proc2 proc3 proc4 proc5 proc6 proc7 proc8 - Um programa convencional consiste de um ou mais procedimentos, geralmente organizados em uma hierarquia de chamadas. - Uma seta de um procedimento n para um procedimento m significa uma chamada de n para m RPC: Programa Distribuído Computador 1 Computador 2 main proc1 proc2 proc3 proc4 proc5 proc6 proc7 proc8 - A divisão ocorre entre o programa principal e o procedimento 4. - Um protocolo de comunicação é necessário para implementar a chamada remota.
3 RPC: Modelo de Execução Programa Principal Procedimento A na máquina 1 na máquina 2 (cliente) (servidor) chamada remota proc. A Saída Resposta O processo cliente fica bloqueado durante a execução do procedimento remoto! RPC Objetivo: Tornar mais fácil a implementação de Aplicações Distribuídas Esconde o código de chamadas a rede em procedimentos chamados stubs Stubs -> procedimentos que contêm o código de chamadas a rede. Com stubs o RPC protege os programas de aplicação (cliente e servidor) de preocupações com detalhes como sockets. O RPC inclui uma especificação para formato padrão dos dados (visando interoperabilidade), e nos stubs é que acontece a conversão dos dados No RPC da Sun o padrão para a representação dos dados é o XDR (external Data Representation Standard) Os stubs são gerados automaticamente por algum compilador. Exemplo: O RPCGen da Sun
4 Passos de uma Chamada Remota de Procedimentos Máquina do Cliente Máquina do Servidor Cliente Empacota Parâmetros Stub do Cliente Desempacota Parâmetros Stub do Servidor Servidor Desempacota Resultado Empacota Resultados KERNEL transporte de mensagens via rede KERNEL transporte de mensagens via rede Chamadas Remotas de Procedimentos (RPC) Idéia do modelo é estender o conceito de chamada de procedimento convencional para ambientes distribuídos. a ênfase é em distribuição e não em concorrência! objetivo é simplificar a programação distribuída, tornando-a semelhante à programação convencional! Remote Procedure Call (RPC): subrotina chamada pode ser função ou procedimento Procedimentos => permitem a divisão do programas em vários pedaços que podem executar em máquinas arbitrárias.
5 RPC - Implementação O código das chamadas a rede é escondido em procedimentos chamados stubs Stubs -> procedimentos que contêm o código de chamadas a rede. Comstubs o RPC protege os programas de aplicação (cliente e servidor) de preocupações com detalhes como sockets. Cabe aos stubs a passagem de parâmetros entre procedimentos. Máquinas diferentes podem usar representações diferentes de dados como inteiros, caracteres, etc. O que fazer com dados complexos, como listas, etc? Um exemplo de RPC: Sun-RPC Sistema originalmente criado para máquinas Sun. oferecido atualmente em diversos sistemas operacionais! A arquitetura definida inclui: uma linguagem para definição das interfaces (cabeçalhos de procedimentos, etc); a ferramenta RPCGEN, que gera os stubs cliente e servidor automaticamente; uma biblioteca RPC, que pode ser usada diretamente na construção de programas que não usem o PRCGEN; o protocolo de comunicação entre os stubs. Pode utilizar TCP ou UDP
6 Sun-RPC - Tradução de dados Tradução entre formatos de dados: utilização de uma representação padrão, XDR (external Data Representation Standard). formato origem formato padrão formato destino A conversão é especificada para um conjunto pré-definido de tipos de dados. RPC - Mapeamento Dinâmico de Portas (Portmapper) Mapeia serviços a Portas Em geral está na porta 111 Programa RPC (servidor) Registra (programa,porta) RPC port mapper Socket usado atualmente por este programa Socket em porta bem conhecida usada
7 RPC - Mapeamento Dinâmico de Portas Portmapper daemon (1) registro svc_register Sistema Remoto (2) (3) (4) clnt_create Sistema Local Passos envolvidos em uma chamada RPC rpcgen - Funcionamento procedimentos servidores prog_proc.c stub servidor cc prog_svc.c especificação RPC prog.x rpcgen prog.h biblioteca RPC programa servidor prog_svc cliente rprog.c prog_clnt.c stub cliente cc programa cliente rprog
8 rpcgen Exemplo de arquivo de especificação: /* date.x especificação de serviços remotos de data e hora */ program DATE_PROG version DATE_VERS long BIN_DATE(void) = 1; string STR_DATE(long) = 2; = 1; = 0x ; Passo 1: Construir uma Aplicaçao Convencional main proxima insere remove busca inicializar
9 Passo 2: Dividir o programa em duas partes Cliente main proxima Chamadas a Procedimentos Remotos inicializar insere remove busca Programa Remoto Banco de Dados Passo 3: Criar uma Especificação Rpcgen /* rbd.x especificação rpc para um programa de banco de dados que oferece os procedimentos INSERE, REMOVE e BUSCA */ struct example /* estrutura não usada, declarada para ilustrar como rpcgen */ int exfield1; /* constrói rotinas XDR para converter estruturas */ char exfield2; ; program RBDPROG /* nome do programa remoto */ version RDBVERS /* declaração da versão */ int INICIALIZAR(void) = 1; /* primeiro procedimento deste programa */ int INSERE(string) = 2; /* segundo procedimento deste programa */ int REMOVE(string) = 3; /* terceiro procedimento deste programa */ int BUSCA(string) = 4; /* quarto procedimento deste programa */ = 1; /* definição da versão do programa */ = 0x ; /* número do programa remoto (deve ser único) */
10 Passo 4: Rodar o Rpcgen rpcgen rbd.x rdb_svc.c rpcgen rdb.h rdb_clnt.c rdb_xdr.c /* rbd.h */ Rpcgen Arquivo.h struct example int exfield1; char exfield2; ; typedef sruct example example; bool_t xdr_example(); #define RBDPROG (u_long) 0x ) #define RDBVERS ((u_long) 1) #define INICIALIZAR ((u_long) 1) extern int *inicializar_1(); #define INSERE ((u_long) 2) extern int *insere_1(); #define REMOVE ((u_long) 3) extern int *remove_1(); #define BUSCA ((u_long) 4) extern int *busca_1();
11 /* rbd_xdr.c */ #include <rpc/rpc.h> #include rbd.h Rpcgen Arquivo de Conversão XDR bool_t xdr_example(xdrs, objp) XDR *xdrs; example *objp; if (!xdr_int(xdrs, &objp->exfield1)) return(false); if (!xdr_char(xdrs, &objp->exfield2) return(false); return(true); Rpcgen Stub do Cliente /* rbd_clnt.c */ #include <rpc/rpc.h> #include rbd.h int * inicializar_1(argp, clnt) void *argp; CLIENT *clnt; static int res; bzero((char *)&res, sizeof(res)); if (clnt_call(clnt, INICIALIZAR, xdr_void, argp, xdr_int, &res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&res); int *insere_1(argp, clnt) char **argp; CLIENT *clnt; static int res; bzero((char *)&res, sizeof(res)); if (clnt_call(clnt, INSERE, xdr_wrapstring, argp, xdr_int, &res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&res); int * remove_1(argp, clnt) char **argp; CLIENT *clnt; static int res; bzero((char *)&res, sizeof(res)); if (clnt_call(clnt, REMOVE, xdr_wrapstring, argp, xdr_int, &res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&res); int *busca_1(argp, clnt) char **argp; CLIENT *clnt; static int res; bzero((char *)&res, sizeof(res)); if (clnt_call(clnt, BUSCA, xdr_wrapstring, argp, xdr_int, &res, TIMEOUT)!= RPC_SUCCESS) return (NULL); return (&res);
12 /* rbd_svc.c */ #include <rpc/rpc.h> #include rbd.h Rpcgen Stub do Servidor svc_run(); (void)fprintf( SVC_RUn retornado \n ); exit(1); static void rbdprog_1(); main() SVCXPRT *transp; (void)pmap_unset(rbdprog, RBDVERS); transp = svcudp_create(rpc_anysock); if (transp == NULL) (void) fprintf( Não pode criar serviço udp\n ); exit(1); if (!svc_register(transp, RBCPROG, RBDVERS, rbdprog_1, IPPROTO_UDP)) (void) fprintf( Não pode registrar tal prog.\n ); exit(1); transp = svctcp_create(rpc_anysock, 0, 0); if (transp == NULL) (void) fprintf( Não pode criar serviço TCP\n ); exit(1); if (!svc_register(transp, RBCPROG, RBDVERS, rbdprog_1, IPPROTO_TCP)) (void) fprintf( Não pode registrar tal prog.\n ); exit(1); static void rbdprog_1(rqstp, transp) struct svc_req *rqstp; SVCXPRT *transp; union char *insere_1_arg; char *remove_1_arg; char *busca_1_arg; argument; char *result; bool_t (*xdr_argument) (), (*xdr_result)(); char *(*local)(); switch (rqstp->rq_proc) case NULLPROC: ( void)svc_sendreply(transp, xdr_void,(char *) NULL); return; case INICIALIZAR: xdr_argument = xdr_void; xdr_result = xdr_int; local = (char *(*)())inicializar_1; break; case INSERE: xdr_argument = xdr_wrapstring; xdr_result = xdr_int; local = (char *(*)()) insere_1; break; Rpcgen Continuação Stub do Servidor case REMOVE: xdr_argument = xdr_wrapstring; xdr_result = xdr_int; local = (char *(*)())remove_1; break; case BUSCA: xdr_argument = xdr_wrapstring; xdr_result = xdr_int; local = (char *(*)()) busca_1; break; default: svcerr_noproc(transp); return; bzero((char*)&argument, sizeof(argument)); if (!svc_getargs(transp, xdr_argument, &argument)) svcerr_decode(transp); return; result = (*local)(&argument, rqstp); if (result!= NULL &&!svc_sendreply(transp, xdr_result, result )) svcerr_systemerr(transp); if (!svc_freeargs(transp, xdr_argument, &argument)) (void)fprintf( Problema nos argumentos\n ); exit(1);
13 Passo 5: Escrever procedimentos de Interface com o Stub Rotinas de Interface do Cliente /* rbd_cif.c - inicializar, insere, remove, busca */ #include <rpc/rpc.h> #include rbd.h extern CLIENT *handle; /* handle para procedimento remoto */ int inicializar() return *inicializar_1(handle); int insere(item) char *item; char **arg; arg = &item; return *insere_1(arg, handle); int remove(item) char *item; char **arg; arg = &item; return *remove_1(arg, handle); int busca(item) char *item; char **arg; arg = &item; return *busca_1(arg, handle); Rotinas de Interface do Servidor /* rbd_sif.c - inicializar_1, insere_1, remove_1, busca_1 */ #include <rpc/rpc.h> #include rbd.h static int retcode; int *inicializar_1() retcode = inicializar(); return &retcode; int *insere_1(i) char **i; retcode = insere(*i); return &retcode; int *remove_1(i) char **i; retcode = remove(*i); return &retcode; int *busca_1(i) char **i; retcode = busca(*i); return &retcode;
14 Passo 6: Compilar e Linkar o Programa Cliente cc -c rbd_cif.c -----> rbd_cif.o cc -c rbd.c > rdb.o cc -o rbd rbd.o rbd_clnt.o rbd_xdr.o rbd_cif.o Programa Cliente /* rbd.c - main, proxima*/ #include <rpc/rpc.h> #include rbd.h #define RMACHINE localhost /* nome da máquina remota */ CLIENT *handle; /* handle para um procedimento remoto */ int main(argc, argv) int argc; char *argv[]; char palavra[maxword+1]; char cmd; int plvlen; /* tamanho da palavra */ /* Seta a conexão para uma chamada remota de procedimento */ handle = clnt_create(rmachine, RBDPROG, RBDVERS, tcp ); if (handle == 0) printf( Não pode conectar programa remoto/n ); exit(1); while (1) plvlen = proxima(&cmd, palavra); if (plvlen < 0) exit(0); switch (cmd) case I : /*inicialize */ inicializar(); printf( BD inicializado \n ); break; case i : /*insere */ insere(palavra); printf( %s Inserida \n, palavra); break; case b : /*busca */ if (busca(palavra)) printf( %s foi encontrada \n, palavra); else printf( %s não existe \n, palavra); break; case r : /*remove */ if (remove(palavra)) printf( %s removida \n, palavra); else printf( %s não encontrada \n, palavra); break; case q : /*quit */ printf( programa encerrado \n ); exit(0); default: /* entrada ilegal */ printf( Comando inválido \n ); break;
15 Continuação Programa Cliente int proxima(cmd, palavra) char *cmd, *palavra; int i, ch; ch = getc(stdin); while (ch == ) ch = getc(stdin); if (ch == EOF) return -1; *cmd = (char) ch; ch = getc(stdin); while (ch = ) ch = getc(stdin); if (ch == EOF) return -1; if (ch == \n ) return 0; i = 0; while ((ch!= ) && (ch!= \n )) if (++i > MAXWORD) printf( Erro, palavra muito longa \n ); exit(1); *palavra++ = ch; ch = getc(stdin); return i; Passo 7: Compilar e Linkar o Programa Servidor cc -c rbd_sif.c > rbd_sif.o cc -c rbd_srp.c > rdb_srp.o cc -o rbddaemon rbd_svc.o rbd_xdr.o rbd_sif.o rbd_srp.o
16 Programa Servidor /* rbd_srp.c - inicializar, insere, remove, busca*/ #include <rpc/rpc.h> #include rbd.h /* Procedimentos remotos do servidor e dados globais */ char bd[bdsize][maxword+1] /* armazena o dicionário de palavras */ int npalavras = 0; /* número de palavras no dicionário */ int inicializar() npalavras = 0; return 1; int insere(palavra) char *palavra; strcpy(bd[npalavras], palavra); npalavras++; return npalavras; int remove(palavra) char *palavra; int i; for (i=0; i<npalavras; i++) if (strcmp(palavra, bd[i]) == 0) npalavras--; strcpy(bd[i], bd[npalavras]); return 1; return 0; int busca(palavra) char *palavra; int i; for (i=0; i<npalavras; i++) if (strcmp(palavra, bd[i]) == 0 ) return 1; return 0; Passo 8: Iniciar o Servidor e Executar o Cliente Iniciar o servidor em background: rbddaemon& Executar o Cliente: rbd
17 Possíveis Falhas em Sistemas Baseados em RPC Cliente não consegue localizar o servidor Perda das mensagens de solicitação Perda das mensagens de resposta Queda do Servidor Queda do Cliente RPC - Cliente não consegue localizar o servidor Causas: Servidor está fora do Ar Cliente está usando versão antiga do servidor Soluções: Variáveis com código de retorno indicando erro Exceções (em linguagem que dão suporte a exceções)
18 RPC - Perda das mensagens de solicitação Causa: problemas na rede Soluções: temporização para chegada da resposta ou mensagem de reconhecimento tempo expira -> retransmissão da mensagem RPC - Perda das mensagens de resposta Causas: perda da solicitação perda da resposta servidor Soluções: Fácil de tratar quando a operação é idempotente: reenvio da solicitação Atribuir número sequencial as solicitações
19 Semântica de Chamadas Remotas Ao contrário do que acontece em chamadas convencionais, uma das máquinas envolvidas pode falhar e a outra permanecer ativa... Sistema pode garantir que a execução da rotina chamada ocorre: exatamente uma vez difícil!! no mínimo uma vez operações devem ser idempotentes! no máximo uma vez Sistema deve retornar indicações no caso de máquina servidora falhar! RPC - Queda do Servidor Requisição Servidor Requisição Servidor Sem resposta Recepção Execução Queda Sem resposta Recepção Queda Soluções: não pode ser resolvida com números sequenciais retransmissão da mensagem -> problema recai na semântica da execução
20 RPC - Queda do Cliente Processamento órfão consomem tempo de processamento no caso do cliente se recuperar, a resposta deste processamento pode chegar até ele Soluções: Consistem em estratégias para eliminação dos órfãos. Exemplo: Reencarnação: ao se recuperar, o cliente envia uma mensagem em broadcast para todas as máquinas da rede, declarando um novo início. Os processamentos anteriores são eliminados RPC Assíncrona Chamadas de Procedimentos que não bloqueiam ou não recebem respostas são ditas Assíncronas. A chamada é enviada para o servidor e o controle é retornado imediatamente para o cliente (não há bloqueio do cliente)
21 Necessidade de RPC Assíncrona Quando a resposta não é necessária, o cliente pode enviar a solicitação e não bloquear. Ex.: print Quando a resposta é necessária, o cliente pode se beneficiar em fazer a chamada e não aguardar a resposta RPC Síncrona X Assíncrona Síncrona send send 1 Assíncrona receive execute send send 2 receive 1 execute 1 send 1 receive processa send receive execute send receive 1 receive 2 receive 2 execute 2 send 2 tempo receive cliente servidor cliente servidor
rpcgen - Funcionamento rpcgen Exemplo de arquivo de especificação: Passo 1: Construir uma Aplicaçao Convencional
rpcgen - Funcionamento rpcgen procedimentos servidores prog_proc.c stub servidor cc prog_svc.c especificação RPC prog.x rpcgen prog.h biblioteca RPC cliente prog_clnt.c rprog.c stub cliente cc programa
Leia maisChamada Remota de Procedimento (RPC)
Chamada Remota de Procedimento (RPC) padrão cliente-servidor A (cliente) B (servidor) send (B, pedido) receive(b, &resp) receive (A, ) processa pedido send(a, ) repetição de padrão de comunicação encapsulação
Leia maisChamadas do Socket. Socket(int family, int type, int protocol) SOCK_STREAM SOCK_DGRAM AF_INET AF_UNIX AF_NS. sockfd = socket(af_inet, SOCK_STREAM, 0)
Chamadas do Socket Socket(int family, int type, int protocol) AF_INET AF_UNIX AF_NS SOCK_STREAM SOCK_DGRAM 0 sockfd = socket(af_inet, SOCK_STREAM, 0) Chamadas do Socket bind(int sockfd, struct sockaddr
Leia maisChamada Remota de Procedimento (RPC)
Chamada Remota de Procedimento (RPC) padrão cliente-servidor A (cliente) send (B, pedido) receive(b, &resp) B (servidor) receive (A, ) processa pedido send(a, ) repetição de padrão de comunicação encapsulação
Leia maisChamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução
Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite
Leia maisSun RPC: Arquitectura
Sun RPC: Arquitectura 12/13 Sistemas Distribuídos 38 Arquitectura Código do cliente Código do servidor stubs Run-Time Library Protocolo de apresentação Protocolo de sessão stubs (ou ties) Run-Time Library
Leia maisOProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite
Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de 2006 1 Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas
Leia maisSistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br
Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a
Leia maisSistemas Distribuídos RPC
Sistemas Distribuídos RPC Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia
Leia maisComunicação em Sistemas Distribuídos
Comunicação em Sistemas Distribuídos Sockets Aplicações Protocolo de Aplicação FTP, SMTP, HTTP, Telnet, SNMP, etc. sockets TCP, UDP IP Data Link Ethernet, Token Ring, FDDI, etc Física Conjunto de APIs
Leia maisSistemas Distribuídos Arquiteturas Middlewares
Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes
Leia maisComunicação. Parte II
Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor
Leia maisSistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação
Leia mais3. Comunicação em Sistemas Distribuídos
3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas
Leia maisGrupo 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
Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:
Leia maisSistemas Distribuídos
Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos
Leia maisLEIC/LERC 2008/09 Primeiro Teste de Sistemas Distribuídos. Grupo I [7,2 valores]
Número: Nome: LEIC/LERC 2008/09 Primeiro Teste de Sistemas Distribuídos 24 de Abril de 2009 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I [7,2 valores]
Leia maisComunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Comunicação em Sistemas Distribuídos Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Protocolos regras que os processos que estão se comunicando tem de seguir Protocolos
Leia maisSistemas Distribuídos e Redes de Sensores
Aula 5: abril de 2013 sobre nosso exemplo cliente-servidor servidor espera pedido e passa a tratá-lo e pedidos que cheguem durante tratamento? cliente envia pedido de leitura... pode ou não receber resposta?
Leia maisComunicação entre Processos
Comunicação entre Processos Comunicação memória compartilhada troca de mensagens base de comunicação em sistemas distribuídos Mensagens básicas send (destino, msg) receive (origem, mensagem) questões semântica
Leia maisDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014
Leia maisRemote Procedure Call
Remote Procedure Call O aumento de complexidade das aplicações, torna desejável um paradigma que permite software distribuído ser programado de maneira similar a aplicações convencionais que executam em
Leia maisUNIVERSIDADE. Sistemas Distribuídos
UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos
Leia maisSistemas Distribuídos RPC Remote Procedure Call
Sistemas Distribuídos RPC Remote Procedure Call Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Cliente/Servidor Quais os problemas? Baseado em E/S Erro propagado
Leia maisMODELO CLIENTE SERVIDOR
SISTEMAS DISTRIBUÍDOS Modelo Cliente Servidor Modelo que estrutura um S.O. como um grupo de processos cooperantes, chamados servidores, que oferecem serviços a processos usuários, denominados clientes;
Leia maisAlgoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Leia maisGrupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.
Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:
Leia maisComunicação em Sistemas Distribuídos
Comunicação em Sistemas Distribuídos A diferença mais importante entre os Sistemas Distribuídos e os Sistemas Uniprocessadores é a comunicação inter-processo. Nos uniprocessadores esta comunicação é feita
Leia maisComunicação entre processos (RPC) COMUNICAÇÃO ENTRE PROCESSOS Remote Procedure Call - RPC. Comunicação entre processos (RPC)
COMUNICAÇÃO ENTRE PROCESSOS Remote Procedure Call - RPC IPC por passagem de mensagens: cada aplicação tem um protocolo específico formato de mensagens; forma de tratamento de erros; ex.: servidor de operações
Leia maisCapítulo 3: Chamadas de Procedimentos Remotos
Capítulo 3: Chamadas de Procedimentos Remotos 2009 José Alves Marques 1 Chamada de Procedimentos Remotos RPC - Remote Procedure Call Modelo de programação da comunicação num sistema cliente-servidor Obvia
Leia maisUNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula
Leia maisComunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais
Comunicação Inter-Processos Conceitos Iniciais 1 Características para Comunicação Inter-Processos. Passagem de Mensagem pode ser suportada por duas operações de comunicação (send e receive). A comunicação
Leia maisProjecto hipotético para resolvermos hoje
Projecto hipotético para resolvermos hoje 13/14 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:
Leia maisSistemas distribuídos:comunicação
M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.
Leia maisObjetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Leia maisSistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental
Leia maisSistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:
Comunicação entre processos! Memória Compartilhada: " os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Área Compartilhda!
Leia maisSistemas Distribuídos
Sistemas Distribuídos Chamada Remota de Procedimento Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 10.3 pág. 285-304 2 Conteúdo Introdução Operação básica Objetivos
Leia maisSistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br
Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Novembro/2003 Tópicos Tolerância a falhas em comunicação em grupo Tolerância a falhas em comunicação
Leia maisConsiderações no Projeto de Sistemas Cliente/Servidor
Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis
Leia maisAdriano Reine Bueno Rafael Barros Silva
Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências
Leia maisCurso de Linguagem C
Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...
Leia maisSistemas Distribuídos. Coulouris Capítulo 4
Sistemas Distribuídos Coulouris Capítulo 4 Mensagens Para comunicar-se com outros processos, um processo envia uma MENSAGEM para um DESTINO; um outro processo nesse destino recebe a mensagem. As operações
Leia maisSISTEMAS DISTRIBUIDOS
1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisProgramação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:
Leia maisComunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor
Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do
Leia maisCapítulo 3: Chamadas de Procedimentos Remotos
Capítulo 3: Chamadas de Procedimentos Remotos 1 RPC: Benefícios Adequa-se ao fluxo de execução das aplicações Chamada síncrona de funções Simplifica tarefas fastidiosas e delicadas Construção e análise
Leia maisUma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)
Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido
Leia maisProf. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013
MC714 Sistemas Distribuídos 2 semestre, 2013 Tipos de comunicação Middleware: serviço intermediário na comunicação de nível de aplicação. Fig. 67 Ex.: correio eletrônico Comunicação é persistente. Middleware
Leia maisFigura 01 Kernel de um Sistema Operacional
01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisFBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre
Leia maisGrupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada
Número: Nome: Pági 1 de 6 LEIC/LETI 2013/14, Repescagem do 1º Teste de Sistemas Distribuídos, 1/7/14 Responda no enunciado, apes no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I
Leia maisProjecto hipotético para resolvermos hoje
Projecto hipotético para resolvermos hoje 12/13 Sistemas Distribuídos 1 Projecto hipotético para resolvermos hoje Implementar servidor de contagem que mantém contador e oferece estas operações aos clientes:
Leia maisLinguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto
Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,
Leia maisArquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo
Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante
Leia maisMIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais
RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota
Leia maisAplicações de RPC no Ambiente SUN-OS
Universidade de São Paulo Instituto de Ciências Matemáticas de São Carlos Departamento de Ciências de Computação e Estatística Aplicações de RPC no Ambiente SUN-OS Márcio Augusto de Souza Paulo Sérgio
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação
Leia maisSMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback
SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada
Leia maisDESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/2006 15:00.
DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/2006 15:00. Descrição Geral do trabalho. O objetivo do trabalho será o desenvolvimento de um programa Cliente/Servidor para o envio e recebimento de arquivos. Os
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia maisAula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para
Leia maisSISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as
Leia maisExemplos práticos do uso de RMI em sistemas distribuídos
Exemplos práticos do uso de RMI em sistemas distribuídos Elder de Macedo Rodrigues, Guilherme Montez Guindani, Leonardo Albernaz Amaral 1 Fábio Delamare 2 Pontifícia Universidade Católica do Rio Grande
Leia maisProf. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisMicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007
MicroDNS Armando Adami Zaro Pablo Augusto Lerina Rodrigues 3 de outubro de 2007 Resumo O projeto do MicroDns visa simular localmente o funcionamento de um DNS. Poder-se-á configurar quando da chamada do
Leia maisSistemas Distribuídos
Sistemas Distribuídos Aula 4 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Migração de Código Em
Leia maisSistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local
Leia maisComunicação em Sistemas Distribuídos
Comunicação em Sistemas Distribuídos Modelo Cliente-Servidor Caracterização Endereçamento Primitivas Confiabilidade INE5418 Computação Distribuída 1 Modelo Cliente/Servidor A construção básica em comunicação
Leia maisCapítulo 2. Charm++ 16
2 Charm++ O Charm++ é uma linguagem orientada a objetos para programação paralela baseada em C++ (34). Ela possui uma biblioteca de execução para suporte a computação paralela que se chama Kernel do Charm
Leia maisPrincípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5
Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisEstruturas (Registros)
Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso
Leia maisTipos de Servidores. Servidores com estado
Tipos de Servidores Com Estado X Sem Estado Sequenciais X Concorrentes Com Conexão X Sem Conexão Servidores com estado Servidores com estado armazenam informação sobre cada cliente. Operações podem ser
Leia maisCategorias de Padrões
Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas
Leia maisProgramação Web Prof. Wladimir
Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação
Leia maisPIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS
PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos
Leia maisProf. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013
MC714 Sistemas Distribuídos 2 semestre, 2013 Virtualização - motivação Consolidação de servidores. Consolidação de aplicações. Sandboxing. Múltiplos ambientes de execução. Hardware virtual. Executar múltiplos
Leia maisCapítulo 3: Chamadas de Procedimentos Remotos
Chamada de Procedimentos Remotos RPC - Remote Procedure Call Capítulo 3: Chamadas de Procedimentos Remotos Modelo de programação da comunicação num sistema cliente-servidor Obvia as limitações referidas
Leia maisINTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
Leia maisUma aplicação distribuída
Uma aplicação distribuída César H. Kallas O Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia Universidade Católica de Campinas Campinas Brasil Faculdade de Engenharia de Computação cesarkallas
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisTópicos em Sistemas Distribuídos. Modelos de Comunicação
Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos
Leia maisFTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.
FTP FTP - Protocolo O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores. A partir do FTP usuários podem receber ou enviar arquivos de ou para outros computadores
Leia maisPrograma ConsoleRPN. PUC-Rio CIV 2802 - Sistemas Gráficos para Engenharia Luiz Fernando Martha & André Maués Brabo Pereira
Programa ConsoleRPN Programa criado com o Visual Studio Community 2013 para efetuar operações algébricas entre números, uma calculadora funcionando com console usando RPN PUC-Rio CIV 2802 - Sistemas Gráficos
Leia maisPersistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Leia maisIntrodução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Leia maisCONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs
Leia mais