Você está na página 1de 6

5107 SERVIDOR DE DADOS

Arquitectura
Cliente/Servidor
Cliente/Servidor
Realizado por:

Fábio André Antunes


ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610

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.

1 16 de Novembro de 2010
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610

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;

2 16 de Novembro de 2010
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610

• 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.

3 16 de Novembro de 2010
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610

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.

4 16 de Novembro de 2010
ATEC – Academia de Formação
Arquitectura Cliente/Servidor
Gestão de Redes e Sistemas Informáticos – PL 0610

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.

5 16 de Novembro de 2010