Upload
luis-fernando-marostica
View
203
Download
0
Embed Size (px)
DESCRIPTION
Material para pesquisa escolar, indicado para quem está fazendo algum curso de informática, material sobre servidores e suas interações com os computadores clientes.
Citation preview
Luís Fernando Marostica
É um modelo que faz um aplicativo ficar passivamente esperando dados e um outro iniciar a comunicação enviando dados Dá-se o nome de Interação Cliente-Servidor
Os termos cliente-servidor se refere-se a dois aplicativos envolvidos numa comunicação ▪ Cliente é o aplicativo que inicia a comunicação;▪ Servidor é o aplicativo que espera passivamente o
contato.
Apesar das camadas subjacentes dos protocolos serem responsáveis por garantir a comunicação em uma inter-rede, é a camada de aplicativo que oferece a funcionalidade mais interessante.
A função do software aplicativo é oferecer um formato adequado para os usuários acessarem, modificarem e inserirem informações. Mais importante ainda, os aplicativos definem nomes simbólicos para identificar os recursos físicos e abstratos disponíveis em um inter-rede.
Ex: (recursos físicos) nomes de computadores ao invés de IPs; Ex:(recursos abstratos) pastas, arquivos e-mails
Fornece uma infraestrutura de comunicação geral, sem especificar ou limitar um determinado serviço. Isto é definido pelo aplicativo e usuários.Embora um sistema de inter-rede forneça um serviço de comunicação básico, o software de protocolo não pode iniciar ou aceitar contato de um computador remoto. Em vez disso, dois programas aplicativos devem participar em qualquer comunicação: Um programa inicia a comunicação e o outro a aceita.
O aplicativo informa ao software de protocolo local que é esperado um tipo específico de mensagem, e então o aplicativo espera. Quando chega uma mensagem que corresponde à que o aplicativo especificou, o software de protocolo passa a mensagem para o aplicativo.
Características de Clientes
É programa aplicativo arbitrário que se torna um cliente temporariamente quando for necessário acesso remoto, mas pode executar outros processamentos locais;
É diretamente invocado por usuário e executa somente para uma sessão;
Executa localmente em um computador pessoal; Inicia ativamente a comunicação com um servidor; Pode acessar múltiplos serviços quando necessário, mas
contata ativamente um servidor remoto de cada vez; Não exige hardware especial;
O software Servidor:
É um programa privilegiado de propósito especial dedicado a fornecer um serviço, mas pode tratar de múltiplos clientes remotos ao mesmo tempo;
É automaticamente invocado quando um sistema inicializa e continua a executar ao longo de muitas sessões;
Roda em um computador compartilhado; Espera passivamente pelo contato de clientes remotos
arbitrários; Aceita contato de clientes arbitrários, mas oferece um único
serviço; Exige hardware poderoso e um sistema operacional sofisticado.
- Refere-se a um programa que espera passivamente por comunicação.
- Usamos o termo servidor para nos referirmos ao programa que esta rodando e não ao computador.
- O termo computador da classe servidor se refere a um computador poderoso usado para executar software de servidor.
- As informações podem passar em uma ou ambas as direções entre um cliente e um servidor. Tipicamente, um cliente envia um requisição para um servidor, e o servidor devolve uma resposta para o cliente.
- Existem casos onde o cliente envia requisições e o servidor emite as respostas e casos onde o servidor fornece uma saída sem qualquer requisição (relatório de temperatura e etc.).
Protocolo de Transporte
Como a maioria dos programas aplicativos, um cliente-servidor usa um protocolo de transporte para se comunicar
Na comunicação entre um cliente e um servidor usando protocolos TCP/IP através de uma inter-rede, o cliente e o servidor interagem com um protocolo na camada de transporte.
Exemplo:Cliente e servidor usando a pilha do TCP/IP
O aplicativo interage diretamente com um protocolo da camada de transporte para estabelecer uma comunicação e para enviar ou receber informações.
O protocolo de transporte utiliza protocolos das camadas mais baixas para enviar e receber mensagens individuais. Deste modo, um computador necessita de uma pilha completa de protocolos para rodar um cliente ou um servidor.
O computador deve ter recursos de hardware suficientes
O computador deve ter um sistema operacional que permita que múltiplos programas aplicativos rodem concorrentemente
o hardware pode ser compartilhado por múltiplos serviços
ajuda a reduzir a sobrecarga de administração do sistema
Um servidor ocioso não usa a CPU enquanto espera pela chegada de uma requisição.
reduz o custo sem reduzir o desempenho
Quando um servidor inicia a execução, ele se registra com o software de protocolo local especificando o identificador para o serviço que ele oferece. Quando um cliente contrata um servidor remoto, o cliente especifica o identificador para o serviço desejado.
Como exemplo de identificação de serviço, considere o Transmission Control Protocol (TCP), o software de TCP no servidor usa o número de porta de protocolo em uma mensagem que chega para determinar qual serviço deve receber a requisição. O TCP usa valores inteiros de 16 bits conhecidos como números de porta de protocolo para identificar serviços e atribui um número de porta de protocolo único a cada serviço.
Os protocolos de transporte atribuem a cada serviço um identificador único. Clientes e servidores especificam o identificador de serviço; o software de protocolo usa o identificador para identificar cada requisição que chega ao servidor correto.
-A concorrência é fundamental para o modelo cliente-servidor de interação, pois um serviço concorrente oferece serviço para múltiplas clientes ao mesmo tempo sem exigir que cada cliente espere que os clientes anteriores terminem.
-Várias estações fazendo download;
-Requisições pequenas podem ser satisfeitas rapidamente;
-A maioria dos servidores concorrentes opera dinamicamente;
-O servidor cria uma nova linha de execução para cada requisição que chega;
-A linha de execução principal do servidor espera pela chegada de uma requisição;
-Quando chega, a principal cria uma outra linha de execução de serviço para tratar da requisição;
-A linha de execução de serviço trata de uma requisição e então termina o processo;
-A linha de execução principal mantem o servidor vivo;
-Depois de criar uma linha de execução para tratar uma requisição a execução principal espera por outra.
Se N clientes estão usando um determinado serviço em um único computador, existem N + 1 linhas de execução fornecendo o serviço: a linha de execução principal está esperando requisições adicionais, e N execuções de serviço estão cada uma interagindo com um único cliente.
Cuidado no planejamento de servidores.
Um servidor pode ser cliente de outro.
Pode ser difícil identificar e corrigir.
Comparado com um loop infinito.
Se um servidor de arquivos precisa de um servidor de tempo para que forneça a hora exata em que um arquivo foi requisitado, ou entregue, isso pode acarretar em uma dependência circular se o servidor de tempo precisar também do servidor de arquivos.