6
Arquitectura rquitectura rquitectura rquitectura Cliente/ Cliente/ Cliente/ Cliente/Servidor Servidor Servidor Servidor Realizado por: Fábio André Antunes 5107 SERVIDOR DE DADOS

Arquitectura Cliente-Servidor

Embed Size (px)

Citation preview

Page 1: Arquitectura Cliente-Servidor

AAAArquitecturarquitecturarquitecturarquitectura Cliente/Cliente/Cliente/Cliente/ServidorServidorServidorServidor

Realizado por:

Fábio André Antunes

5107 SERVIDOR DE DADOS

Page 2: Arquitectura Cliente-Servidor

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.

Page 3: Arquitectura 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;

Page 4: Arquitectura Cliente-Servidor

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.

Page 5: Arquitectura Cliente-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.

Page 6: Arquitectura Cliente-Servidor

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.