Você está na página 1de 25

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.

Você também pode gostar