sexta-feira, 29 de fevereiro de 2008

Escalabilidade

[...]
1.2.3 Escalabilidade

A maioria dos sistemas distribuídos atuais é projetada para trabalhar com vários processadores (em rede).

· · Problemas de Escalabilidade

Quando um sistema necessita escalar diferentes tipos de problemas para serem resolvidos. Considera primeiramente, a escala com respeito ao tamanho. Se mais usuários ou recursos necessitar ser suportado, somos freqüentemente confrontados com as limitações dos serviços centralizados, dados e algoritmos (ver figura 1-3). Por exemplo, muitos serviços são centralizados no sentido que são executados por meio somente de um único servidor que “funciona” em uma máquina específica no sistema distribuído.


Concept Example

Centralized algorithms Doing routing based on complete information
Centralized data A single on-line telephone book
Centralized services A single server for all users


Figura1-3: exemplos limitações da escalabilidade

Serviços centralizados: um simples servidor pra todos os usuários.
Dados centralizados: uma única lista telefônica on-line.
Algoritmos centralizados: fazer roteamento com base em informações completas.

· · Técnica de Escalabilidade

Há discussões sobre alguns problemas da escalabilidade, problemas que podem ser geralmente solucionados. Porque os problemas nos sistemas distribuídos aparecem como problemas de desempenho causado por capacidade limitada de servidores e rede, há basicamente, três técnicas de escalabilidade: latência de comunicação, distribuição e replicação.
Latência de comunicação é aplicada no caso da escalabilidade geográfica. A idéia básica é simples: tentativa de evitar esperar para responder para um pedido de um servidor remoto com muitas possibilidades.
Entretanto, a muitos aplicativos que não fazem uso efetivo da comunicação assíncrona. Um caso típico onde há aproximação de palavras no acesso de bases de dados usando formulários. Normalmente, em formulários são feitos para serem enviados em separados para cada campo da mensagem, e espera-se por um reconhecimento do servidor, como mostra a figura 1-4(a). Por exemplo, o servidor pode checar se há erros antes de aceitar a entrada. Uma solução melhor é transportar o código preenchido no formulário, verificando a entrada, por cliente, tendo o cliente de retorna um formulário completo, como mostra a figura 1-4 (b).

Outra importante técnica de escalabilidade é a distribuição. Distribuição envolve exige componentes, divide em pequenas partes, e subseqüentemente dissemina aquelas partes através do sistema. Um bom exemplo de distribuição é a “Internet Domain Name System (DNS)”. O DNS é hierarquicamente, organizado em uma árvore de domínios, que são divididos entre zonas, como mostra a figura 1-5.

Figura 1-5: exemplo da divisão do DNS entre zonas.
[...]

Como dito pelo autor, os problemas do sistema distribuído são inúmeros. Os ditos “problemas conceito” categorizam tais problemas, tornando-os mais fáceis de serem entendidos.
O autor não cita qual técnica é a mais viável para resolução de problemas (solucionáveis), mesmo que isso dependa do problema enfrentado. A citação sobre o DNS com a utilização da técnica de distribuição utilizada para gerar a divisão das zonas foi uma parte interessante que me chamou atenção, pois nunca tinha pensado como seria o funcionamento real de tal funcionalidade.

Jônatas Oliveira Lopes Soares

Fonte: http://www1.fatecsp.br/aguiar/sistemasdistribuidos.htm

Ficou sem fotos pois nao foi possivel posta-las.

Um comentário:

Sistemas Distribuídos disse...

Lembre-se também que você não precisa de performance todos os momentos.Por isto,estabeleça na fase de requerimentos os pontos críticos de performance a serem obtidos,são técnicas realmente necessárias.

Jefferson Moura
105040029