Sei sulla pagina 1di 28

Arquiteturas Centralizadas

Rodolfo M. Favaretto

Arquiteturas Centralizadas Devemos pensar em termos de clientes que requisitam servios de servidores...

Modelo cliente-servidor
Servidor
Processo que implementa um servio especfico. Por exemplo: um servio de sistema de arquivo ou um servio de banco de dados.

Cliente
Processo que requisita um servio de um servidor enviando-lhe uma requisio e, na sequncia, esperando pela resposta do servidor.

Requisio-resposta
Cliente Espera resultado

Requisio Servidor

Resposta

Fornece Servio
Tempo

A comunicao pode ser implementada por meio de um protocolo simples sem conexo quando a rede for razoavelmente confivel, como em redes locais.

Requisio-resposta
Cliente Espera resultado

Requisio Servidor

Resposta

Fornece Servio
Tempo

Empacota uma mensagem para o servidor, identificando o servio que quer, junto com os dados de entrada necessrios.

Requisio-resposta
Cliente Espera resultado

Requisio Servidor

Resposta

Fornece Servio
Tempo

O servidor espera por uma requisio e, em seguida, a processa e empacota os resultados em uma mensagem de resposta que enviada ao cliente.

Orientado ou no a conexo?
Protocolo com conexo Protocolo sem conexo

Funciona bem em sistemas de longa distncia. Quando o cliente requisita um servio, antes estabelece conexo com o servidor e depois se envia a requisio.

Simples e ideal para redes locais.


Eficiente quando

no ocorrem
problemas.

Operaes Idempotentes
Operaes que podem ser repetidas vrias vezes sem causar danos.
Operaes Idempotentes Consultar estoques em uma empresa, pesquisar na web, entre outras. Operaes no Idempotentes Dar baixa no estoque, fazer uma transferncia bancria, etc.

Camadas de aplicao
Como distinguir entre cliente e servidor?
Por exemplo... Servidor de banco de dados distribudo repassa requisies a servidores de arquivos. Assim, age como cliente continuamente. Como muitas aplicaes cliente-servidor visam dar suporte ao acesso de usurios a banco de dados conveniente que sejam divididas em trs camadas distintas.

Camadas de aplicao
Nvel de interface de usurio
Contm tudo o que necessrio para fazer a interface com o usurio.

Nvel de processamento
Contm a funcionalidade central da aplicao.

Nvel de dados
Contm aplicaes que gerenciam os dados sobre os quais est sendo executada alguma ao.

Camadas de aplicao

Organizao de um sistema busca em trs camadas

Arquiteturas Multidivididas
A distino entre os trs nveis lgicos sugere vrias possibilidades para a distribuio fsica de uma aplicao. Diversas arquiteturas podem ser utilizadas.

Arquiteturas de duas divises


Organizao simples que contm apenas dois tipos de mquinas.
Mquinas clientes Que implementam o nvel de interface de usurio.
Mquinas servidoras Que implementam os nveis de processamento e de dados.

Arquiteturas de duas divises

Modelo de arquitetura de duas divises (fsicas)

Possveis Organizaes C/S

Alternativas de organizaes Cliente-Servidor

Possveis Organizaes C/S

Na alternativa (a), executa-se no cliente apenas a parte da interface dependente do terminal.

Possveis Organizaes C/S

Na alternativa (b), todo o software de interface com usurio executa no cliente.

Possveis Organizaes C/S

Exemplo da alternativa (c): verificao de consistncia do preenchimento de um formulrio feito no cliente.

Possveis Organizaes C/S

Na alternativa (d), a aplicao executa no cliente, ficando no servidor s as operaes sobre as bases de dados. Ex: aplicaes bancrias.

Possveis Organizaes C/S

Na alternativa (e), o disco local no cliente mantm parte dos dados. Ex: browser web mantendo uma cache.

Possveis Organizaes C/S

Thin Clients

Clientes magros (abordagens (a) a (c)): mais


fceis de gerenciar.

Possveis Organizaes C/S

Fat Clients

Clientes gordos (abordagens (d) e (e)): menos


fceis de gerenciar.

Possveis Organizaes C/S

Fat Clients

Tem-se evitado usar fat clients devido a problemas de gerenciamento e por tornar o software cliente dependente da plataforma do cliente.

Arquiteturas de trs divises


Ocorre quando um servidor precisa agir como cliente. Nessa arquitetura, programas que fazem parte do nvel de processamento residem em um servidor separado, atuando como um gerenciador de transaes.

Arquiteturas de trs divises

Nesta arquitetura, programas que formam o nvel de processamento residem em um servidor separado.

Arquiteturas de trs divises

Exemplo de uma requisio em um servidor que age como cliente

Dvidas?

Cliente e Servidor? Camadas de aplicao? Arquiteturas de 2 e 3 divises?

Arquiteturas Centralizadas
Rodolfo M. Favaretto