Download - Sd Cliente Servidor
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
CLIENTE CLIENTE -- SERVIDORSERVIDOR
Segundo Tanenbaum, uma das estruturas mais comuns para os
sistemas distribuídos é a do CLIENTE-SERVIDOR.
09/10/2012
� Caracterização
� Endereçamento
� Primitivas
• Bloqueantes / Não-bloqueantes
• Bufferizadas / Não-bufferizadas
� Confiabilidade
2
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Muitos aplicativos de negócios a serem escritos hoje, utilizam o
modelo cliente-servidor.
DEFINIÇÃO:DEFINIÇÃO:
09/10/2012
Implica em um processamento cooperativo de requisições submetidas por um
cliente para o servidor que as processa e retorna os resultados para o cliente.
Neste modelo o processamento da aplicação é dividido entre o cliente e o
servidor. O processamento é iniciado e parcialmente controlado pelo cliente e
tanto cliente quanto o servidor cooperam para executar com sucesso uma
aplicação.
3
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
CLIENTE CLIENTE -- SERVIDOR:SERVIDOR:
Para evitar o overhead de protocolos como nos modelos OSI e TCP/IP, o
modelo cliente-servidor se baseia num protocolo simples, sem conexão, chamado
pedido- resposta (request-reply).
As camadas 1 (Física) e 2 (Enlace de Dados) do modelo OSI, são
responsáveis por enviar e receber pacotes entre clientes e servidores.
09/10/2012
responsáveis por enviar e receber pacotes entre clientes e servidores.
A camada 5 (Sessão) define um conjunto de requisições e respostas.
Os serviços de comunicação são implementados através de chamada do
sistema (system calls).
4
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Também denominado de “front-end” e “workstation”, é um processo que interage
com o usuário através de uma interface gráfica ou não, permitindo consultas ou
comandos para a recuperação de dados e análise, e representando o meio pela qual os
CLIENTE CLIENTE
09/10/2012
resultados são apresentados.
O PROCESSO CLIENTE APRESENTA ALGUMAS CARACTERÍSTICAS DISTINTAS:
�� ÉÉ umum processoprocesso ativoativo nana relaçãorelação clientecliente--servidorservidor ..�� IniciaInicia ee terminatermina asas conversaçõesconversações comcom osos servidores,servidores, solicitandosolicitando serviçosserviços distribuídosdistribuídos ..�� NãoNão sese comunicacomunica comcom outrosoutros clientesclientes ..�� TornaTorna aa rederede transparentetransparente aoao usuáriousuário..
5
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Também denominado “back-end”, fornece um determinado serviço que
fica disponível para todo cliente que o necessita. A natureza e o escopo dos
serviços são definidos pelo objetivo da aplicação cliente-servidor.
SUAS PROPRIEDADES DISTINTAS SÃO:
SERVIDOR: SERVIDOR:
09/10/2012
�� ÉÉ oo processoprocesso reativoreativo nana aplicaçãoaplicação cliente/servidorcliente/servidor ..�� PossuiPossui umauma execuçãoexecução contínuacontínua ..�� RecebeRecebe ee responderesponde àsàs solicitaçõessolicitações dosdos clientesclientes ..�� NãoNão sese comunicacomunica comcom outrosoutros servidoresservidores enquantoenquanto estiverestiver fazendofazendo oo papelpapel dede
servidorservidor ..�� PrestaPresta serviçosserviços distribuídosdistribuídos ..�� AtendeAtende aa diversosdiversos clientesclientes simultaneamentesimultaneamente ..
6
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
SERVIDOR:SERVIDOR:
O servidor pode atender a vários clientes ao mesmo tempo fornecendo
funções ou serviços; em alguns casos, o cliente pode acessar vários servidores.
ALGUNS EXEMPLOS DE SERVIDORES E SEUS SERVIÇOS:ALGUNS EXEMPLOS DE SERVIDORES E SEUS SERVIÇOS:
09/10/2012
�� ServidoresServidores dede arquivosarquivos�� ServidoresServidores dede bancobanco dede dadosdados�� ServidoresServidores dede transaçõestransações�� ServidoresServidores dede objetosobjetos�� Servidores WebServidores Web�� Servidores de Servidores de EE--mailmail
ALGUNS EXEMPLOS DE SERVIDORES E SEUS SERVIÇOS:ALGUNS EXEMPLOS DE SERVIDORES E SEUS SERVIÇOS:
7
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
� Simplicidade
� Eficiência(em muitos casos)
VANTAGENS:VANTAGENS:
DESVANTAGENS:DESVANTAGENS:
09/10/2012
� Um servidor poderá ficar sobrecarregado caso receba mais solicitações
simultâneas dos clientes do que pode suportar;
� Este modelo não possui a robustez de uma rede baseada em P2P. Na arquitetura
cliente-servidor, se um servidor crítico falha, os pedidos dos clientes não poderão ser
cumpridos.
8
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
MOTIVAÇÃO:MOTIVAÇÃO:
� Distribuição da carga de trabalho de componentes de sistema.
� Esta distribuição da carga de trabalho toma diferentes formas dependendo da
aplicação em particular.
ARQUITETURA RESULTANTE:ARQUITETURA RESULTANTE:
� Flexível
� Versátil
09/10/2012
� A parte cliente e a parte servidor podem operar em diferentes plataformas.
� Tanto a plataforma do cliente como a do servidor podem ser atualizadas sem que
se tenha que atualizar a outra plataforma.
� A interface gráfica geralmente reside no cliente (ex: web-browsers).
� Compartilhamento de recursos.
CARACTERÍSTICAS:CARACTERÍSTICAS:
� Versátil
� Custo adequado
9
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Um cliente para mandar mensagens a um servidor, primeiro precisa saber
o endereço do servidor, desse modo, é preciso estabelecer um esquema de
identificação.
Existem Algumas formas de endereçamento.
ENDEREÇAMENTOENDEREÇAMENTO
09/10/2012
As principais sãoAs principais são::
� Endereçamento por máquina.processo� Endereçamento por broadcast� Endereçamento por servidor de nomes
Existem Algumas formas de endereçamento.
10
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
MÁQUINA.PROCESSOMÁQUINA.PROCESSO
1. A máquina cliente conhece a localização do servidor, então utiliza uma
combinação entre número da máquina e o número do processo para enviar uma
solicitação de endereço ao servidor .
2. O servidor então responde enviando o endereço a máquina cliente.
09/10/2012
2. O servidor então responde enviando o endereço a máquina cliente.
Principais problemas: Não é transparente e utiliza um processo por máquina.
11
cliente servidor2
1. Request(Pedido) para 243.0
2. Reply(Resposta) para 199.12
1 243
0
199
12
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
BROADCASTBROADCAST
1. A máquina cliente envia um pacote broadcast de localização para toda a rede
com o objetivo de localizar o servidor e obter um endereço.
2. O servidor responde ao cliente informando seu endereço.
3. A máquina cliente envia uma solicitação de endereço.
4. O servidor envia um endereço para a máquina cliente.
09/10/2012
4. O servidor envia um endereço para a máquina cliente.
Principal Problema: Sobrecarga no sistema
12
cliente servidor
3
4
1 2
1. Broadcast
2. “Here I am”
3. Pedido
4. Resposta
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Neste esquema os servidores são indicados por um identificador de alto nível
(nome ASCII). Quando um cliente executa uma requisição a um servidor pela
primeira vez, uma mensagem especial é enviada para um servidor de mapeamento
ou servidor de nomes solicitando o número da máquina onde está o servidor.
SERVIDORSERVIDOR DE DE NOMESNOMES
09/10/2012
Principal Problema: Centralização.
clienteservidor
de nomes
1
2
servidor
4
3
13
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS PRIMITIVAS BLOQUEANTESBLOQUEANTES (SÍNCRONAS)(SÍNCRONAS)
O send, enquanto a mensagem está sendo enviada ao
servidor, o processo cliente fica bloqueado.
09/10/2012
O receive fica bloqueado até que alguma mensagem
chegue ou até um timeout.
14
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS PRIMITIVAS BLOQUEANTESBLOQUEANTES (SÍNCRONAS)(SÍNCRONAS)
O processo fica bloqueado durante a transferência de mensagem.
Melhor opção para envio de mensagens em condições normais.
Vantagens:
09/10/2012
Vantagens:
� Simples de entender
� Simples de implementar
� Performance para envio de mensagem
Desvantagens:
� CPU fica ociosa durante a transmissão
15
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS NÃOPRIMITIVAS NÃO--BLOQUEANTESBLOQUEANTES
O send retorna o controle imediatamente, antes da mensagem
ser realmente enviada.
09/10/2012
O receive passa para o kernel o ponteiro para o buffer e retorna
imediatamente, antes de receber a mensagem.
“Em algumas abordagens o receive não-bloqueante é aquele que só recebe quando
já existem mensagens e fica bloqueado até completar a recepção”.
16
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS NÃOPRIMITIVAS NÃO--BLOQUEANTESBLOQUEANTESPrimitivas não-bloqueantes com cópia
O kernel copia a mensagem para um buffer interno e então libera oprocesso para continuar.
Desvantagens:Performance
09/10/2012
Vantagens:Sobrepor processamento e transmissão de mensagens
Primitivas não-bloqueantes com interrupçãoInterrompe o processo que enviou a mensagem quando o bufferestiver livre para reutilização.
Desvantagens:Programação Difícil
Vantagens:Performance17
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS PRIMITIVAS BUFFERIZADASBUFFERIZADAS
Existe um buffer para armazenar mensagens inesperadas.
09/10/2012
A primitiva de bufferização mais empregada define
estruturas de dados chamadas mailbox.
18
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS PRIMITIVAS BUFFERIZADASBUFFERIZADAS
Primitivas bufferizadas: Mailboxes
Um processo que está interessado em receber mensagens
avisa o kernel para criar uma mailbox informando o endereço de
origem das mensagens.
Todas as mensagens são colocadas na mailbox e uma chamada
09/10/2012
Todas as mensagens são colocadas na mailbox e uma chamada
a receive simplesmente remove mensagens dela.
Vantagens:
Reduz ainda mais a chance de mensagens serem descartadas.
Desvantagens:
Mailboxes são finitas e podem necessitar de estratégias
análogas as adotadas anteriormente.
19
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
PRIMITIVAS PRIMITIVAS NÃONÃO--BUFFERIZADASBUFFERIZADAS
O buffer para armazenar a mensagem deve ser especificado pelo programador.
Existem duas estratégias a serem empregadas no caso de um send do cliente,
sem um receive do servidor:
� Descartar mensagens inesperadas
Vantagens:
09/10/2012
Vantagens:
Implementação
Desvantagens:
O cliente pode ficar reenviando mensagens
Podem ocorrer casos em que o cliente desista de enviar a mensagem
� Temporariamente manter mensagens inesperadas
Vantagens:
Reduz a chance da mensagem ser descartada
Desvantagens:
Introduz problema de gerenciamento e armazenamento de mensagens inesperadas20
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Não se pode de maneira alguma sofrer perda ou adulteração nos dados.
Deve-se manter a integridade total dos dados.
Três diferentes alternativas podem ser Três diferentes alternativas podem ser utilizadas utilizadas para questões de para questões de confiabilidade:confiabilidade:
CONFIABILIDADECONFIABILIDADE
09/10/2012
1. Assumir que as primitivas não são confiáveis, alterando a semântica
do send .
� O sistema não dá garantias (email).
� Requisitar que o kernel da máquina recebedora envie um ack de volta para
o enviante.
confiabilidade:confiabilidade:
21
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
2. Primitivas confiáveis com mecanismos de acknowledgment do tipo:
Request - Ack - Reply - Ack
� Somente quando o Ack é recebido, o processo é liberado.
� O acknowledgement é feito entre kernels (transparente para o cliente ou
servidor).
09/10/2012
Cliente Servidor
1
3
Kernel Kernel4
2
1. Request
2. Ack
3. Reply
4. Ack
22
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
3. Primitivas confiáveis com mecanismos de acknowledgment do tipo:
Request - Reply - Ack
� O Reply serve como um ack
� o cliente fica bloqueado até a mensagen de reply chegar
� se a mensagem de reply demorar, o cliente reenvia a requisição
� em alguns kernels não é necessário o ack
09/10/2012
1
2Cliente Servidor
Kernel Kernel3
1. Request
2. Reply
3. Ack
23
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
Outras Questões:Outras Questões:
As redes têm um tamanho máximo de pacote, mensagens maiores devem ser
quebradas.
O acknowledgment pode ser utilizado por pacote ou por mensagem,
dependendo da taxa de erros da rede.
09/10/2012
dependendo da taxa de erros da rede.
24
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS(CLIENTE (CLIENTE –– SERVIDOR)SERVIDOR)
REFERÊNCIAS BIBLIOGRÁFICAS:REFERÊNCIAS BIBLIOGRÁFICAS:
http://www.margalho.pro.br/aulas/sd/sd03.pdf
http://saloon.inf.ufrgs.br/twiki-data/Main/MaterialDeApoio/cap2DosTan-cliente-servidor-v3-
ta60-nov2005.pdf
http://elderstroparo.blogspot.com.br/2010/05/cliente-servidor.html
09/10/2012
http://www.cin.ufpe.br/~avmm/arquivos/provas%20software/resuminho2.pdf
ftp://ftp.inf.ufrgs.br/pub/geyer/SOII/slides/SlidesAlunos/SD/SD03-cliente-servidor-v10-mac-
nov2011-red.pdf
http://www4.pucsp.br/~dcc-tec2/Semana_02_Comunicacao.pdf
http://www.acso.uneb.br/leandro/NOVOSITE/academic/docs/sdII/004.pdf
http://www.cin.ufpe.br/~cagf/sd/aula06.ppt
25