sexta-feira, 29 de agosto de 2008

Escalabilidade



A escalabilidade pode ser medida em três dimensões:
1. Relação ao tamanho --> Podem-se acrescentar mais usuários e recursos ao sistema;
2. Relação à distância geográfica --> Acesso a distâncias maiores.
3. Relação à facilidade de administração --> Mesmo com inclusão muitas organizações independentes ainda continua fácil a administração.

Problemas de escalabilidade

1. Relação ao tamanho
--> Servidores centralizados
--> Dados centralizados
--> Algoritmos centralizados

Uma máquina tem informação completa sobre o estado do sistema, ou as máquinas tomam decisões baseadas em informações de outros nós, ou uma falha de um nó pode arruinar o algoritmo, ou assume-se que existe um relógio global.

Mas por vezes é inevitável ter centralização (dados confidenciais de bancos, etc.).

2. Relação à distância geográfica
Em LANs é comum usar comunicação síncrona --> o cliente envia o pedido e fica bloqueado à espera de uma resposta.
Numa WAN a comunicação pode durar três ordens de grandeza mais (centenas de milisegundos);
Se uma aplicação tem componentes centralizados fica também limitada em termos geográficos.

3. Relação à facilidade de administração
São necessários dois tipos de medidas de segurança quando o sistema distribuído se expande para um novo domínio:
--> O sistema tem de se proteger de ataques vindos do novo domínio;
--> O domínio tem de se proteger de ataques vindos do sistema distribuído.

Técnicas de escalabilidade
Três técnicas principais:
1. Esconder latência na comunicação
2. Distribuição
3. Replicação.

1. Esconder latência na comunicação
Usar comunicação assíncrona para evitar bloquear processos à espera de receber respostas.
--> Tratamento de respostas como eventos;
--> Usar várias tarefas em paralelo para continuar processamento. Na figura acima: Passar parte do processamento do servidor para o cliente melhora a escalabilidade geográfica.

2. Distribuição
Distribuir entre vários computadores os serviços e dados. Decompondo os componentes em partes menores, que são distribuídas por todo o sistema distribuído. Exemplos: DNS e Web
Nenhum servidor prestará todos os serviços nem possuirá todos os dados.
Se um servidor falhar, nem tudo está perdido.

3. Replicação
Aumenta a disponibilidade dos serviços e melhora o balanceamento de carga no sistema.
Aumenta a disponibilidade do serviço nas zonas da rede onde há réplicas.
Caching é uma forma de replicação controlada pelo cliente. A existência de várias cópias pode levar a problemas de consistência.
Se for necessário ter garantias fortes de consistência tem de se atualizar as cópias imediatamente (ex: Internet banking).



Francino Neto \ 103041061
Sistemas Distribuídos


Um comentário:

Unknown disse...

ajudou bastante na realização de uma avaliação. obg.