Você está na página 1de 24

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

CLIENTE - SERVIDOR
Segundo Tanenbaum, uma das estruturas mais comuns para os sistemas distribudos a do CLIENTE-SERVIDOR.

Caracterizao Endereamento Primitivas Bloqueantes / No-bloqueantes Bufferizadas / No-bufferizadas Confiabilidade

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

Muitos aplicativos de negcios a serem escritos hoje, utilizam o modelo cliente-servidor.


DEFINIO:

Implica em um processamento cooperativo de requisies submetidas por um cliente para o servidor que as processa e retorna os resultados para o cliente. Neste modelo o processamento da aplicao 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 aplicao.
3
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


CLIENTE - SERVIDOR: Para evitar o overhead de protocolos como nos modelos OSI e TCP/IP, o modelo cliente-servidor se baseia num protocolo simples, sem conexo, chamado pedido- resposta (request-reply). As camadas 1 (Fsica) e 2 (Enlace de Dados) do modelo OSI, so responsveis por enviar e receber pacotes entre clientes e servidores. A camada 5 (Sesso) define um conjunto de requisies e respostas. Os servios de comunicao so implementados atravs de chamada do sistema (system calls).

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


CLIENTE

Tambm denominado de front-end e workstation, um processo que interage com o usurio atravs de uma interface grfica ou no, permitindo consultas ou comandos para a recuperao de dados e anlise, e representando o meio pela qual os resultados so apresentados.

O PROCESSO CLIENTE APRESENTA ALGUMAS CARACTERSTICAS DISTINTAS: um processo ativo na relao clientecliente-servidor . Inicia e termina as conversaes com os servidores, solicitando servios distribudos . No se comunica com outros clientes . Torna a rede transparente ao usurio usurio..

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


SERVIDOR: Tambm denominado back-end, fornece um determinado servio que fica disponvel para todo cliente que o necessita. A natureza e o escopo dos servios so definidos pelo objetivo da aplicao cliente-servidor. SUAS PROPRIEDADES DISTINTAS SO: o processo reativo na aplicao cliente/servidor . Possui uma execuo contnua . Recebe e responde s solicitaes dos clientes . No se comunica com outros servidores enquanto estiver fazendo o papel de servidor . Presta servios distribudos . Atende a diversos clientes simultaneamente .

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


SERVIDOR: O servidor pode atender a vrios clientes ao mesmo tempo fornecendo funes ou servios; em alguns casos, o cliente pode acessar vrios servidores.

ALGUNS EXEMPLOS DE SERVIDORES E SEUS SERVIOS: Servidores de arquivos Servidores de banco de dados Servidores de transaes Servidores de objetos Servidores Web Servidores de E-mail

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


VANTAGENS: Simplicidade Eficincia(em muitos casos)

DESVANTAGENS: Um servidor poder ficar sobrecarregado caso receba mais solicitaes simultneas dos clientes do que pode suportar; Este modelo no possui a robustez de uma rede baseada em P2P. Na arquitetura cliente-servidor, se um servidor crtico falha, os pedidos dos clientes no podero ser cumpridos.

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


MOTIVAO: Distribuio da carga de trabalho de componentes de sistema. Esta distribuio da carga de trabalho toma diferentes formas dependendo da aplicao em particular. ARQUITETURA RESULTANTE: Flexvel Verstil Custo adequado CARACTERSTICAS: 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 grfica geralmente reside no cliente (ex: web-browsers). Compartilhamento de recursos.
9
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

ENDEREAMENTO
Um cliente para mandar mensagens a um servidor, primeiro precisa saber o endereo do servidor, desse modo, preciso estabelecer um esquema de identificao. Existem Algumas formas de endereamento.

As principais so: so:


Endereamento por mquina.processo Endereamento por broadcast Endereamento por servidor de nomes

10

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

MQUINA.PROCESSO
1.

A mquina cliente conhece a localizao do servidor, ento utiliza uma combinao entre nmero da mquina e o nmero do processo para enviar uma solicitao de endereo ao servidor . O servidor ento responde enviando o endereo a mquina cliente.
199

2.

1 2

243

cliente
12

servidor
0

1. Request(Pedido) para 243.0 2. Reply(Resposta) para 199.12


Principais problemas: No transparente e utiliza um processo por mquina.
11
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

BROADCAST
1.

2. 3. 4.

A mquina cliente envia um pacote broadcast de localizao para toda a rede com o objetivo de localizar o servidor e obter um endereo. O servidor responde ao cliente informando seu endereo. A mquina cliente envia uma solicitao de endereo. O servidor envia um endereo para a mquina cliente. 3 cliente 4 1 2 servidor 1. Broadcast 2. Here I am 3. Pedido 4. Resposta

Principal Problema: Sobrecarga no sistema


12
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

SERVIDOR DE NOMES
Neste esquema os servidores so indicados por um identificador de alto nvel (nome ASCII). Quando um cliente executa uma requisio a um servidor pela primeira vez, uma mensagem especial enviada para um servidor de mapeamento ou servidor de nomes solicitando o nmero da mquina onde est o servidor.

4 servidor 3 cliente

1 2

servidor de nomes

Principal Problema: Centralizao.

13

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS BLOQUEANTES (SNCRONAS)

O send, enquanto a mensagem est sendo enviada ao servidor, o processo cliente fica bloqueado.

O receive fica bloqueado at que alguma mensagem chegue ou at um timeout.

14

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS BLOQUEANTES (SNCRONAS)
O processo fica bloqueado durante a transferncia de mensagem. Melhor opo para envio de mensagens em condies normais. Vantagens: Simples de entender Simples de implementar Performance para envio de mensagem Desvantagens: CPU fica ociosa durante a transmisso

15

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS NONO-BLOQUEANTES
O send retorna o controle imediatamente, antes da mensagem ser realmente enviada.

O receive passa para o kernel o ponteiro para o buffer e retorna imediatamente, antes de receber a mensagem.
Em algumas abordagens o receive no-bloqueante aquele que s recebe quando j existem mensagens e fica bloqueado at completar a recepo.

16

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS NONO-BLOQUEANTES
Primitivas no-bloqueantes com cpia O kernel copia a mensagem para um buffer interno e ento libera o processo para continuar.
Desvantagens: Performance Vantagens: Sobrepor processamento e transmisso de mensagens

Primitivas no-bloqueantes com interrupo Interrompe o processo que enviou a mensagem quando o buffer estiver livre para reutilizao.
Desvantagens: Programao Difcil Vantagens: Performance

17

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS BUFFERIZADAS

Existe um buffer para armazenar mensagens inesperadas. A primitiva de bufferizao mais empregada define estruturas de dados chamadas mailbox.

18

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS BUFFERIZADAS
Primitivas bufferizadas: Mailboxes Um processo que est interessado em receber mensagens avisa o kernel para criar uma mailbox informando o endereo de origem das mensagens. Todas as mensagens so colocadas na mailbox e uma chamada a receive simplesmente remove mensagens dela. Vantagens: Reduz ainda mais a chance de mensagens serem descartadas. Desvantagens: Mailboxes so finitas e podem necessitar de estratgias anlogas as adotadas anteriormente.
19
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


PRIMITIVAS NONO-BUFFERIZADAS
O buffer para armazenar a mensagem deve ser especificado pelo programador. Existem duas estratgias a serem empregadas no caso de um send do cliente, sem um receive do servidor: Descartar mensagens inesperadas
Vantagens: Implementao 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 inesperadas
20
09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)

CONFIABILIDADE
No se pode de maneira alguma sofrer perda ou adulterao nos dados. Deve-se manter a integridade total dos dados. Trs diferentes alternativas podem ser utilizadas para questes de confiabilidade:

1. Assumir que as primitivas no so confiveis, alterando a semntica do send . O sistema no d garantias (email). Requisitar que o kernel da mquina recebedora envie um ack de volta para o enviante.
21

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


2. Primitivas confiveis 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). 1 Cliente 3 4 Kernel 1. Request 2. Ack 3. Reply 4. Ack
22
09/10/2012

Servidor

Kernel

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


3. Primitivas confiveis 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 requisio em alguns kernels no necessrio o ack 1 Cliente 2 3 Kernel Servidor

Kernel 1. Request 2. Reply 3. Ack


23

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


Outras Questes: As redes tm um tamanho mximo de pacote, mensagens maiores devem ser quebradas. O acknowledgment pode ser utilizado por pacote ou por mensagem, dependendo da taxa de erros da rede.

24

09/10/2012

SISTEMAS DISTRIBUDOS (CLIENTE SERVIDOR)


REFERNCIAS BIBLIOGRFICAS:
http://www.margalho.pro.br/aulas/sd/sd03.pdf http://saloon.inf.ufrgs.br/twiki-data/Main/MaterialDeApoio/cap2DosTan-cliente-servidor-v3ta60-nov2005.pdf http://elderstroparo.blogspot.com.br/2010/05/cliente-servidor.html 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-macnov2011-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

09/10/2012

Você também pode gostar