Remote Procedure Calls (RPC)
|
|
|
- Maria de Fátima Ávila de Santarém
- 10 Há anos
- Visualizações:
Transcrição
1 Remote Procedure Calls (RPC) March 14, 2010 Sumário Ideia Implementação Transparência Semântica na presença de avarias Caso de estudo: ONC RPC da Sun
2 Remote Procedure Call (RPC) A programação baseada em mensagens com as primitivas send()/receive() não é conveniente: depende do protocolo de comunicações usado; requer a especificação dum protocolo de aplicação; assemelha-se a E/S. A invocação de funções (procedimentos) em computadores remotos: é um paradigma familiar; facilita transparência; é particularmente adequada para aplicações cliente-servidor. RPC: a Ideia Locais: Code For Main Program main Code For Procedure A Code For Procedure B Call A Call B Exit Return Return Remotas: Main Program On machine 1 (client) main Procedure A On machine 2 (server) Procedure B On machine 3 (server) call remote proc. A call remote proc. B Exit Respond to caller Respond to caller
3 Desenvolvimento de Programas com RPC (idealmente) Desenvolver o programa sem considerar distribuição: main proc1 proc2 proc3 proc4 proc5 proc6 proc7 proc8 Fazer a distribuição à posteriori: computer1 computer2 main proc1 proc2 proc3 proc4 proc5 proc6 proc7 proc8 Rotinas de Adaptação (Stub Routines) Asseguram a transparência de RPC: cliente invoca o client stub uma função local, e a função é invocada pelo server stub, uma função local. As rotinas de adaptação comunicam entre si usando mensagens. Computer 1 Computer 2 Proc. A remote procedure call SERVER STUB CLIENT STUB Proc. B
4 Princípio Semelhante ao de uma Chamada ao Sistema user space user program ordinary call ordinary return C library function trap trap return system call kernel space Arquitectura Típica dum Sistema de RPC rpc call marshaled request client process client program client stub rpc return marshaled return ordinary call marshaled request server process server functions server stub ordinary return marshaled return network services client kernel network services server kernel Obs. RPC assenta na camada de transporte (TCP/UDP).
5 Processamento no Adaptador Cliente Pedido: constrói a mensagem (parameter marshalling); envia-a (p.ex. usando sendto()) para o servidor; bloqueia à espera da resposta (p.ex. usando recvfrom()). Resposta: recebe a resposta; extrai os resultados (unmarshalling);; retorna-os ao cliente. Processamento no Adaptador Servidor Pedido: recebe mensagem com pedido; extrai argumentos; invoca a função. Resposta: constrói mensagem com resultado da invocação da função; envia mensagem; bloqueia à espera de novo pedido.
6 RPC: despacho Possibilidade de mais do que um procedimento remoto: Computer 1 Computer 2 PROC. A1 PROC. A2 DISPATCHER CLIENT STUB FOR B2 SERVER STUB FOR B1 SERVER STUB FOR B2 CLIENT STUB FOR B1 PROC. B1 PROC. B2 Identificação do procedimento pelo despacho (dispatcher): (serviço, procedimento) - espaço de nomes hierárquico Transparência: Heterogeneidade do HW Problema: pelo menos dois: diferentes arquitecturas usam diferentes formatos de representação: complemento para 1 vs. complemento para 2; big endian vs. little endian; ASCII vs. EBCDIC; vírgula flutuante: IEEE 754 vs.?? representação de estruturas de dados complexas pode diferir entre compiladores. Solução: essencialmente duas: formato normalizado nos fios + em cada computador, conversão entre 2 formatos só; - (pode ser) ineficiente; receiver-makes-right
7 Transparência: Endereços como Argumentos Problema: argumentos que são endereços (apontadores de C) só têm significado num processo. Solução: usar o método de passagem de argumentos call-by-copy/restore: + satisfaz na maioria dos casos; complexo: o mesmo endereço pode ser passado em argumentos diferentes. ineficiente: estruturas de dados complexas (p.ex. árvores); Problemas Recorrentes Localização do servidor as soluções habituais: hardcoded inflexível; ficheiro de configuração difícil de manter actualizado; argumentos do programa idem; multicast/broadcast não acomoda crescimento duma forma razoável; servidor de nomes sim, mas não DNS: o servidor regista-se no servidor de nomes; o cliente interroga (lookup) o servidor de nomes. Segurança nomeadamente: autenticação; controlo de acesso.
8 Transparência na Presença de Avarias Problema: E se alguma coisa corre mal? O cliente não consegue localizar o servidor: RPC retorna um erro (semelhante ao erro numa chamada ao sistema). O pedido perde-se: retransmissão no fim de temporização. A resposta perde-se: necessidade de incluir números de sequência; necessidade de memorizar respostas mais recentes, se pedido não idempotente; O servidor avaria (crashes): a avaria ocorreu antes ou depois de processar o pedido? O cliente avaria: como evitar que o servidor processe um pedido (orfão (orphan)) para um cliente inexistente. Semântica na Presença de Avarias Problema O que é que o cliente pode assumir em relação à execução duma RPC que invocou e assinala uma excepção? Solução Depende da semântica na presença de avarias do sistema de RPC usado: talvez (may-be) fácil de implementar: o adaptador cliente retransmite o pedido um número pré-determinado de vezes, após o que retorna um erro; pelo-menos-uma-vez (at-least-once) o adaptador cliente retransmite o pedido até obter resposta; não-mais-que-uma-vez (at-most-once) - não é trivial de implementar se se usar um transporte não fiável, p.ex. UDP. Se se usar TCP p.ex., RPC pode retornar erro no caso de rotura da conexão. exactamente-uma-vez (exactly-once) nem sempre é possível garantir esta semântica (p.ex., se há acções externas).
9 Avarias e Semântica Exactamente-Uma-Vez. REQ Server REQ Server REQ Server Receive Receive Receive REP Execute Execute Crash No REP No REP Reply Crash (a) (b) (c) Problema No caso de acções externas, p.ex. impressão dum ficheiro, é virtualmente impossível. Estratégia do Servidor Uma de duas: 1. Enviar ACK depois de imprimir; 2. Enviar ACK antes de imprimir. Estratégia do Cliente Uma de quatro: 1. Nunca reenviar pedido. 2. Reenviar pedido sempre. 3. Reenviar pedido quando recebe ACK; 4. Reenviar pedido quando não recebe ACK; Avaria no Servidor e Semântica Exactamente-Uma-Vez. Cenário: Servidor avaria e recupera a tempo de processar retransmissão do pedido do cliente Cenários de Avaria (ACK->P) 1. A->P->C 2. A->C(->P) 3. C(->A->P) Cenários de Avaria (P->ACK) 1. P->A->C 2. P->C(->A) 3. C(->P->A) Client Server Strategy A P Strategy P A Reissue Strategy APC AC(P) C(AP) PAC PC(A) C(PA) Always Dup OK OK Dup Dup OK Never OK Zero Zero OK OK Zero When Ack Dup OK Zero Dup OK Zero When not Ack OK Zero OK OK Dup OK OK = Text printed once Dup = Text printed twice Zero = Text not printed at all
10 Implementação de RPCs Problema RPC é um conceito útil, mas a sua implementação requer programação ao nível de rede. Solução Automatizar a geração de código uma parte significativa do código necessário é invariante; outra parte pode ser parametrizável. rpcgen (1/2) É uma ferramenta capaz de gerar: rotinas de adaptação, quer do cliente quer do servidor; esqueletos dos programas cliente e servidor; para a Open Network Computing RPC, especificada pela Sun Microsystems. Requer como entrada uma especificação incluindo: a especificação das funções remotas (i.e., os seus protótipos); a definição de tipos de valores e das constantes passados às ou retornados por essas funções.
11 rpcgen (2/2) Q_client.c client application Q_clnt.c Q.h C compiler client Q.x rpcgen specification for remote program Q_xdr.c Q_svc.c C compiler server Q_server.c remote procedures Saída de rpcgen -a -C -N date.x date.h header file com os protótipos das funções e a definição de constantes e de tipos. date_clnt.c rotina de adaptação do cliente (de facto, a função de interface à rotina de adaptação. date_svc.c esqueleto do programa servidor, incluindo dispatcher, e rotina de adaptação do servidor. date_xdr.c funções auxiliares para converter estruturas de dados complexas entre o formato nativo e XDR (o formato usado por ONC RPC para enviar dados). date_client.c esqueleto de programa cliente, incluindo invocação de cada uma das funções remotas. date_server.c funções envelope das funções remotas. Obs.- Em princípio, não se deve alterar os 4 primeiros ficheiros.
12 Desenvolvimento de Aplicações com rpcgen 1. Identificar as funções remotas e definir os seus protótipos. 2. Definir os protótipos das funções remotas, dos tipos e constantes necessárias em RPCL. 3. Executar rpcgen. 4. Escrever as funções remotas (i.e. do servidor), possivelmente a partir das funções em _server.c 5. Compilar a aplicação servidora. 6. Escrever a aplicação cliente, possivelmente a partir das funções em _client.c 7. Compilar a aplicação cliente. RPC Language (RPCL) Linguagem definida pela Sun para especificar as funções remotas: é baseada na linguagem C; não inclui instruções de controlo, p.ex. while; entre outros, suportas os seguintes tipos (comprimento): int (32 bits) unsigned int (32 bits) bool (32 bits) enum (arb.) float (32 bits) double (64 bits) opaque (arb.) string (arb.) fix sized array (arb.) counter array (arb.) structure (arb.) void (0) symbolic constant (arb.) optional constant (arb.) suporta também apontadores.
13 Declaração de programas em RPCL /* rns.x */ /* RPC declarations for name service */ const MAXNAMESIZE = 64; struct registo { int ipaddr; string name; }; program NAMEPROG { version VERS1 { int INITNS(void) = 1; int INSERTR(struct registo) = 2; int DELETER(struct registo) = 3; int LOOKUPN(string) = 4; } = 1; } = 0x ; Declaração de Programas em RPCL: Comentários Por convenção, na declaração de programas usa-se nomes só com maiúsculas: rpcgen gera funções com minúsculas. A numeração das funções começa sempre em 1: rpcgen gera sempre uma função remota com número 0 (correspondente à declaração void NULL(void) = 0;). Um programa pode ter diferentes versões: facilita o teste de novas versões e actualização de um serviço (execução em simultâneo de diferentes versões). Não se pode atribuir os números de programas arbitrariamente: 0x x1fffffff 0x x3fffffff 0x x5fffffff 0x6fffffff-0xffffffff Reservado para a Sun Para utilizador Para uso temporário Reservado
14 Conversão de Tipos Não-Primitivos O ficheiro rns.h inclui: #define MAXNAMESIZE 64 struct registo { int ipaddr; char *name; }; typedef struct registo registo; extern bool_t xdr_registo(xdr *, registo*); A função xdr_registo() é gerada por rpcgen e está definida em rns_xdr.c: usa funções da biblioteca xdr para empacotar e desempacotar (marshalling and unmarshalling) estruturas de dados de tipo struct registo. XDR (external Data Representation) é o formato especificado pela Sun para transferir os dados entre processos. portmap Problema: Qual é o porto em que o servidor escuta? = número de programas (32 bits) pode exceder o número de portos (16 bits). Solução: Cada máquina que executa servidores deve executar o programa portmap: os servidores registam-se no portmap (o portmap deve iniciar antes de qualquer outro serviço RPC); os clientes interrogam (lookup), no computador onde o servidor executa, o portmap sobre o (serviço, versão): o portmap retorna o porto usado pelo servidor correspondente. IMP.- O portmap é específico da biblioteca RPC da Sun, não faz parte da especificação do protocolo RPC. IMP.- O código de comunicação com o portmap é gerado automaticamente por rpcgen. (Que alívio :)
15 Port Mapper an RPC program (server) RPC program registers (program,version,proto,port) RPC port mapper (server) RPC client looks up the port for (program,version,proto) an RPC program (client) socket for port currently used by this RPC server socket for well known socket at which the port mapper listens socket for port currently used by this RPC client Port Mapper é um Servidor baseado em RPC Remote Program Number , Version 2 Number Name Description 0 null do nothing 1 set add portmap entry 2 unset remove portmap entry 3 getport return port for remote program 4 dump return all portmap entries 5 callit call remote procedure callit permite invocar uma função em vários servidores usando broadcast.
16 E o Computador onde Executa o Servidor? Problema: Como é que um cliente sabe qual é o computador onde o servidor executa? Solução: Há algumas alternativas: através dum outro canal de comunicação (p.ex. ficheiro); fazendo broadcast para os port mappers; usando um serviço de directoria: p.ex., o Network Information System (NIS) da Sun, o qual usa um mecanismo próprio para arrancar, e o portmapper (porque os servidores NIS não usam um porto pré-definido). Leitura Adicional Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Secção 4.2 Remote Procedure Call, excepto subsecção Subsecção RPC Semantics in the Presence of Failures
Comunicaçã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
Sistemas 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
Chamadas 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
3. 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
Sistemas 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
Remote 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
Grupo 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:
Chamadas Remotas de Procedimentos (RPC)
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
Distributed 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
Sistemas Distribuídos
Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos
SISTEMAS 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
Comunicaçã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
Sistemas 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
Sistemas Distribuídos
Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos
Grupo 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
Sistemas 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
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP
USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da
SISTEMAS 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
UNIVERSIDADE. 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
OProtocolo 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
Sistemas de Nomes Planos
Sistemas de Nomes Planos November 2, 2009 Sumário Sistemas de Nomes Planos e DHTs Chord Sistemas de Nomes Planos Tipicamente, sistemas de nomes à escala da Internet usam nomes estruturados hierarquicamente.
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Sistemas Distribuídos Modelo Cliente-Servidor
Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de
Adriano 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
Grupo 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:
Sistemas de Nomes Hierarquicos: DNS
Sistemas de Nomes Hierarquicos: DNS April 19, 2010 Sumário O Problema DNS: Um Serviço de Nomes Hierárquico Resource Records Resolução de Nomes Aspectos de Implementaçao Leitura Adicional Nomes DNS e Endereços
Prof. 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
Sistemas Distribuídos. Ricardo Ribeiro dos Santos [email protected]
Sistemas Distribuídos Ricardo Ribeiro dos Santos [email protected] 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
Comunicaçã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
Algoritmos 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.
Comunicaçã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
Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)
Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance
Sistemas distribuídos:comunicação
M. G. Santos [email protected] 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.
Arquitetura 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
Sistemas 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
Redes de Computadores. Protocolos de comunicação: TCP, UDP
Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca
Sun 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
REDES DE COMPUTADORES
REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores
Sistemas 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
MC102 Algoritmos e programação de computadores Aula 3: Variáveis
MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,
Máscaras de sub-rede. Fórmula
Máscaras de sub-rede As identificações de rede e de host em um endereço IP são diferenciadas pelo uso de uma máscara de sub-rede. Cada máscara de sub-rede é um número de 32 bits que usa grupos de bits
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado
CAMADA DE TRANSPORTE
Curso Técnico de Redes de Computadores Disciplina de Fundamentos de Rede CAMADA DE TRANSPORTE Professora: Juliana Cristina de Andrade E-mail: [email protected] Site: www.julianacristina.com
Sistemas Distribuídos
Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente
Sistemas Distribuídos Capítulos 3 e 4 - Aula 4
Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos
Desenvolvimento Cliente-Servidor 1
Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados
Sistemas 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
Princí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
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos
FBV - 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
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado
Consideraçõ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
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Comunicação em Sistemas Distribuídos Sumário Modelo Cliente e Servidor Troca de Mensagens Remote Procedure Call Comunicação
Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A
Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Número: Nome: Duração: 1 hora O teste é sem consulta O teste deve ser resolvido
Sistemas Operacionais Distribuídos e de Redes
Sistemas Operacionais Distribuídos e de Redes Notas de Aula - 2000/2 Profa. Patrícia Kayser Vargas 3 Comunicação em Sistemas Distribuídos 3.1 Troca de Mensagens Assunto que já foi abordado em Sistemas
Sistemas 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,
Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?
Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A
Veja abaixo um exemplo de um endereço IP de 32 bits: 10000011 01101011 00010000 11001000
4 Camada de Rede: O papel da camada de rede é transportar pacotes de um hospedeiro remetente a um hospedeiro destinatário. Para fazê-lo, duas importantes funções da camada de rede podem ser identificadas:
www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com
SERVIÇOS DE REDES DE COMPUTADORES Prof. Victor Guimarães Pinheiro/[email protected] www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com Modelo TCP/IP É o protocolo mais usado da atualidade
Programação com Posix Threads
9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.
Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia [email protected]. Redes e Comunicações
Sistemas Multimédia Arquitectura Protocolar Simples Modelo OSI TCP/IP Redes e Comunicações Francisco Maia [email protected] Já estudado... Motivação Breve História Conceitos Básicos Tipos de Redes Componentes
Programação distribuída e paralela (C. Geyer) RPC 1
Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos
Sistemas 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!
ARP. Tabela ARP construída automaticamente. Contém endereço IP, endereço MAC e TTL
ARP Protocolo de resolução de endereços (Address Resolution Protocol) Descrito na RFC 826 Faz a tradução de endereços IP para endereços MAC da maioria das redes IEEE 802 Executado dentro da sub-rede Cada
Comunicação entre Processos
Comunicação entre Processos Comunicação entre Processos - Sistemas Operacionais fornecem mecanismos para comunicação entre processos (IPC), tal como filas de mensagens, semáfaros e memória compartilhada.
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
O Processo de Programação
Programação de Computadores I Aula 04 O Processo de Programação José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/23 Algoritmo Um algoritmo é uma seqüência de
Introdução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
CURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
GESTÃO DE SISTEMAS E REDES YNAMIC HOST CONFIGURATION PROTOCOL
GESTÃO DE SISTEMAS E REDES YNAMIC HOST CONFIGURATION PROTOCOL OUTLINE DHCP PROTOCOLO RELAY AGENT EXEMPLO LINUX EXEMPLO IOS DHCP Dynamic Host Configuration Protocol, ou DHCP, é um dos protocolos de suporte
APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE
1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)
Sistemas 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?
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
MODELO 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;
ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia
ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet
FTP - 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
Redes de Computadores. Trabalho de Laboratório Nº7
Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local
Capítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Redes de Computadores. Camada de Transporte
Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os
Comunicaçã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
MIDDLEWARE 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
Linguagem de Programação Introdução a Linguagem Java
Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,
Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005
Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005
Módulo 9 Conjunto de Protocolos TCP/IP e endereçamento IP
CCNA 1 Conceitos Básicos de Redes Módulo 9 Conjunto de Protocolos TCP/IP e endereçamento IP Introdução ao TCP/IP 2 Modelo TCP/IP O Departamento de Defesa dos Estados Unidos (DoD) desenvolveu o modelo de
Invocação de Métodos Remotos RMI (Remote Method Invocation)
Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente
