Upload
fabio-andre-antunes
View
297
Download
2
Embed Size (px)
Citation preview
AAAArquitecturarquitecturarquitecturarquitectura Cliente/Cliente/Cliente/Cliente/ServidorServidorServidorServidor
Realizado por:
Fábio André Antunes
5107 SERVIDOR DE DADOS
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610
1 16 de Novembro de 2010
Arquitectura Cliente/Servidor
No modelo Cliente/Servidor, existem dois processos envolvidos, um na máquina (host)
cliente e um outro na máquina servidor. A comunicação acontece quando um cliente envia
uma solicitação pela rede ao servidor e o mesmo recebe a mensagem, que depois executa a
tarefa solicitada, ou procura pelos dados requisitados, e envia uma resposta de volta ao
cliente.
Nesta arquitectura o servidor tem uma aplicação que fornece um determinado serviço e os
clientes têm aplicações que utilizam esse mesmo serviço. Uma característica desta
arquitectura é o facto de um cliente não comunicar com outro cliente, e o servidor, que tem
um endereço de IP estático, estar sempre ligado e a funcionar. Quase sempre um único
servidor é incapaz de suportar os pedidos de todos os clientes, pelo que, na maioria dos
casos, são utilizados vários servidores que constituem um servidor virtual (server farm).
Fig. 1 – Estrutura Cliente/Servidor.
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610
2 16 de Novembro de 2010
Fig. 2 – Representação de um pedido URL, por parte do cliente.
Características:
• Comportamento Assimétrico – existe uma relação de muitos-para-um entre clientes
e servidor;
• Localização Transparente – O servidor é um processo que pode residir na mesma
máquina que o cliente, ou numa máquina diferente ligada através de uma rede;
• Encapsulamento do Serviço – As mensagens transmitem o pedido de serviço ao
servidor e este é o responsável pela forma como implementa o serviço. A forma de
implementar serviços pode ser melhorada/alterada sem implicações ao nível dos
clientes;
• Independência – o conceito inerente à arquitectura Cliente/Servidor baseia-se em
Software que deve ser independente do Hardware e/ou Sistema Operativo;
• Interacção por Mensagens – Clientes e servidores devem estar ligados de forma
independente, ou seja, não deve ser obrigatório que o servidor esteja a correr para
que o cliente possa correr. Sistemas deste tipo são baseados em mensagens;
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610
3 16 de Novembro de 2010
• Flexibilidade;
• Escalabilidade;
• Interoperabilidade.
Vantagens:
• Melhor relação preço/desempenho;
• Recursos centralizados – o servidor pode gerir recursos comuns a todos os
utilizadores, como por exemplo uma base de dados centralizada, a fim de evitar
problemas de redundância e de contradição;
• Maior facilidade de expansão – permite uma expansão incremental dos serviços e
suprimir/adicionar clientes;
• É possível adoptar soluções Open-Source – integração de soluções de diferentes
fabricantes;
Desvantagens:
• Problemas de saturação da rede - maior dependência do meio de comunicação;
• Um elo fraco – toda a rede está estruturada em redor do servidor.
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610
4 16 de Novembro de 2010
Protocolo de Pedido-Resposta
• É necessário um protocolo que, utilizando um mecanismo de transporte (e.g. TCP ou
UDP), permita o diálogo entre cliente e servidor;
• Algumas necessidades são:
− Delimitar os pedidos;
− Codificar qual a operação pretendida;
− Delimitar os “argumentos” da operação;
• A partilha do meio de transporte pode levar a:
− Codificar a identidade do processo/thread cliente;
− Codificar a identidade da entidade servidora;
Despacho de pedidos
Um servidor pode adoptar diferentes modelos para atender os pedidos:
• Servidor sequencial;
• Processo por cliente;
• Thread por cliente;
• Thread por pedido;
• Pool de threads.
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610
5 16 de Novembro de 2010
A Gestão da Conexão
Existem diferentes alternativas para o estabelecimento de ligações:
• Sem conexão (e.g. utilizando o UDP): apropriado para pedidos de tamanho pequeno
e controlo de erros personalizado;
• Conexão por pedido: pouco eficiente devido ao custo de estabelecimento da ligação;
• Conexão por cliente: é estabelecida uma única ligação, por onde são enviados
todos os pedidos de um cliente.