Você está na página 1de 38

Arquitetura Cliente Servidor

PROFESSOR: RICARDO SANTOS DE FRANÇA


E - MA I L: R I CA R DO.SF RA NCA@ PROFESSOR.EDU CACAO. PE.GOV. BR
Objetivos
Definição dos conceitos relacionados

— Cliente/Servidor
— Distribuindo papéis
— Cliente (Gordo e magro)
— Servidor
— Vantagens e Desvantagens da arquitetura
— Web-Based
Cliente/Servidor
O termo Cliente/Servidor refere-se ao método de
distribuição de aplicações computacionais através de
muitas plataformas.

Tipicamente essas aplicações estão divididas entre um


provedor de acesso e uma central de dados e numerosos
clientes contendo uma interface gráfica para usuários para
acessar e manipular dados.
Cliente/Servidor
• Modelo onde dois ou mais computadores interagem de
modo que um oferece os serviços aos outros.

• Este modelo permite aos usuários acessarem informações


e serviços de qualquer lugar.
Cliente/Servidor
• Arquitetura computacional que envolve requisições de
serviços de clientes para servidores. Uma rede
Cliente/Servidor é uma extensão lógica da programação
modular.
Cliente/Servidor
• Uma aplicação Cliente/Servidor pode ser estruturada em três níveis:
— Interface com o usuário

— Processamento
— Dados

• Simples requer dois tipos de máquinas:


— Cliente: executa programas que compreendem a interface com o
usuário;

— Servidor: implementa camadas de processamento e de dados.


Cliente/Servidor
Cliente/Servidor
• Na alternativa (a), executa-se no cliente só a parte da
interface dependente do terminal.

• Na alternativa (b), todo o software de interface com


usuário executa no cliente.

• Exemplo da alternativa (c): verificação de consistência do


preenchimento de um formulário feito no cliente.
Cliente/Servidor
• Na alternativa (d), a aplicação executa na máquina cliente, indo
para o servidor somente as operações sobre as base de dados.

Exemplo: muitas aplicações bancárias;

• Na alternativa (e), o disco local no cliente mantêm parte dos


dados.

Exemplo: browser web mantendo uma cachê;


Cliente/Servidor
• Recentemente tem-se evitado as alternativas (d) e (e)
devido a problemas de gerenciamento e por tornar o
software cliente dependente da plataforma subjacente do
cliente.

• Clientes gordos (abordagens (d) e (e)): evitar;

• Clientes magros (abordagens (a) a (c)): mais fáceis de


gerenciar.
Cliente
• Sempre inicia pedidos de servidores;

• Espera por respostas;

• Recebe respostas;

• Normalmente, se conecta a um pequeno número de servidores


de uma só vez;

• Normalmente, interage diretamente com os usuários finais


através de qualquer interface com o usuário , como interface
gráfica do usuário.
Cliente
• Cliente, 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 recuperação de dados e
análise e representando o meio pela qual os resultados
são apresentados.
Cliente
• Além disso, apresenta algumas características distintas:
—É o processo ativo na relação Cliente/Servidor.

—Inicia e termina as conversações com os Servidores,


solicitando serviços distribuídos.

— Não se comunica com outros Clientes.

— Torna a rede transparente ao usuário.


Servidor
• Sempre esperar por um pedido de um dos clientes;

• Serve os clientes pedidos, em seguida, responde com os


dados solicitados aos clientes;

• Um servidor pode se comunicar com outros servidores, a


fim de atender uma solicitação do cliente.
Servidor
• Também denominado Servidor ou “back-end”, fornece um
determinado serviço que fica disponível para todo Cliente
que o necessita. À natureza e escopo do serviço são
definidos pelo objetivo da aplicação Cliente/Servidor.
Servidor
• Além disso, ele apresenta ainda algumas propriedades
distintas:
— É o processo reativo na relação Cliente/Servidor.
— Possui uma execução contínua.
— Recebe e responde às solicitações dos Clientes.
— Não se comunica com outros Servidores enquanto estiver
fazendo o papel de Servidor.
— Presta serviços distribuídos.
— Atende a diversos Clientes simultaneamente.
Organização de Servidores
• Servidor interativo: o próprio servidor manipula a
requisição e, se necessário, retorna uma resposta ao
cliente;

• Servidor concorrente: repassa para uma thread ou


processo em separado a requisição e imediatamente
espera pela próxima requisição.
Tipo de Servidores
• Servidor de Arquivos

• Servidor de Impressora

• Servidor de Banco de Dados

• Servidor de Redes

• Servidor de Telex

• Servidor de Fax

• Servidor de Processamento e Imagens

• Servidor de Comunicação e etc.


Comunicação Cliente/Servidor
• Através de portas conhecidas designadas pela Autoridade
para Atribuição de Números na Internet (lana). Ex: FTP-21,
HTTP-80.

• Através de um daemon que registra os servidores em


execução.

• Através de um superservidor, que escuta em várias portas


e repassa a requisição a um servidor específico.
Uma intervenção Cliente/Servidor
Vantagens
• Na maioria dos casos, a arquitetura cliente/servidor
permite que os papéis e responsabilidades de um sistema
de computação possam ser distribuídos entre vários
computadores independentes que são conhecidos por si
só através de uma rede.
Vantagens
• Isso cria uma vantagem adicional para essa arquitetura:

— Maior facilidade de manutenção.

Por exemplo, é possível substituir, reparar, atualizar ou


mesmo realocar um servidor de seus clientes, enquanto
continuam a ser a consciência e não afetado por essa
mudança;
Vantagens
• Todos os dados são armazenados nos servidores, que
geralmente possuem controles de segurança muito maior
do que a maioria dos clientes.

• Servidores podem controlar melhor o acesso e recursos,


para garantir que apenas os clientes com as permissões
adequadas podem acessar e alterar dados;
Vantagens
•O armazenamento de dados é centralizada, as
atualizações dos dados são muito mais fáceis de
administrar, em comparação com o paradigma P2P, onde
uma arquitetura P2P, atualizações de dados podem
precisar ser distribuída e aplicada a cada ponto na rede,
que é o timeconsuming é passível de erro, como pode
haver milhares ou mesmo milhões de pares;
Vantagens
• Muitas tecnologias avançadas de clientes/servidor já
estão disponíveis, que foram projetadas para garantir a
segurança, facilidade de interface do usuário e facilidade
de uso;

• Funciona com vários clientes diferentes de capacidades


diferentes.
Vantagens
• Confiabilidade
— Se uma máquina apresenta algum problema, ainda que seja
um dos Servidores, parte do Sistema continua ativo.

• Matriz de Computadores agregando capacidade de


processamento
— A arquitetura Cliente / Servidor provê meios para que as
tarefas sejam feitas sem a monopolização dos recursos.
Usuários finais podem trabalhar localmente.
Vantagens
• O Sistema cresce facilmente

— Torna-se fácil modernizar o Sistema quando


necessário.

• O Cliente e o Servidor possuem ambientes operacionais


individuais / Sistemas Abertos

— Pode-se misturar várias plataformas para melhor


atender às necessidades individuais de diversos setores e
usuários.
Desvantagens
• Redes de tráfego de bloqueio é um dos problemas
relacionados com o modelo cliente/servidor.
— Como o número de solicitações simultâneas de cliente para
um determinado servidor, o servidor pode ficar
sobrecarregado;
Desvantagens
• O paradigma cliente/servidor não tem a robustez de uma
rede P2P.
— Sob cliente/servidor, se um servidor crítico falhar, os
pedidos dos clientes não podem ser cumpridos.
—Em redes P2P, os recursos são normalmente distribuídos
entre vários nós. Mesmo se um ou mais nós partem e
abandonam baixar um arquivo, por exemplo, os nós restantes
ainda deve ter os dados necessários para completar o download.
Desvantagens
• Manutenção
— As diversas partes envolvidas nem sempre funcionam bem juntas.
Quando algum erro ocorre, existe uma extensa lista de itens a serem
investigados.

• Ferramentas
— A escassez de ferramentas de suporte, não raras vezes obriga o
desenvolvimento de ferramentas próprias. Em função do grande
poderio das novas linguagens de programação, esta dificuldade está
se tornando cada vez menor.
Desvantagens
• Treinamento

— A diferença entre a filosofia de desenvolvimento de software


para o microcomputador de um fabricante para o outro, não é
como a de uma linguagem de programação para outra. Um
treinamento mais efetivo torna-se necessário.

• Gerenciamento

— Aumento da complexidade do ambiente e a escassez de


ferramentas de auxílio tornam difícil o gerenciamento da rede.
Arquitetura Web-Based
• Então, usamos o Browser como Cliente Universal;

• Conceito de Intranet;

• A camada de aplicação se quebra em duas: Web e


Aplicação;

• Evitamos instalar qualquer software no desktop e


portanto, problemas de manutenção.
Arquitetura Web-Based
• Evitar instalação em computadores de clientes, parceiros,
fornecedores, etc.

• Às vezes, continua se a chamar isso de 3 camadas porque


as camadas Web e Aplicação frequentemente rodam na
mesma máquina (para pequenos volumes).
Arquitetura Web-Based
Problemas da Web-Based
• Não há suporte a Thin Clients (PDA, celulares, smart cards,
quiosques, ...)
— preciso usar um browser (pesado) no cliente.

• Dificuldade de criar software reutilizável


— cadê a componentização?
Problemas da Web-Based
• Fazer aplicações distribuídas multicamadas é difícil. Pois
deve-se
— Implementar persistência (impedance mismatch entre o
mundo OO e o mundo dos BDs relacionais)
— Implementar tolerância a falhas com failover
— Implementar gerência de transações distribuídas
— Implementar balanceamento de carga
— Implementar resource pooling
Referências
(Internet)
(AMARAL,1993) Amaral, W. H. “Arquitetura Cliente/Servidor Orientada a
Objeto” Tese de Mestrado, IME, 1993.

(NAVATHE,1994) Navathe, Shamkant B. & Elmasri, Ramez “Fundamentals of


Database Systems” 2nd Ed., Benjamin Cummings, CA, 1994.
Dúvidas?

Professor: Ricardo Santos de França


E-mail: ricardo.sfranca@professor.educacao.pe.gov.br

Você também pode gostar