Escalabilidade
A escalabilidade pode ser medida em três dimensões:
1. em relação ao tamanho – pode-se acrescentar mais
utilizadores e recursos ao sistema;
2. em relação à distância geográfica – os componentes
podem estar distantes geograficamente;
3. em relação à facilidade de administração – o sistema
continua gerível mesmo incluindo muitas organizações
independentes.
Problemas de escalabilidade
1. em relação ao tamanho
Servidores centralizados
Dados centralizados
Algoritmos centralizados
1.1 Uma máquina tem informação completa sobre
o estado do sistema, ou
1.2 As máquinas tomam decisões baseadas em
informações de outros nós, ou
1.3 Uma falha de um nó pode arruinar o
algoritmo, ou
1.4 Assume-se que existe um relógio global.
Mas por vezes é inevitável ter centralização (dados
confidenciais de bancos, etc.) …
2. em 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);
a comunicação é pouco fiável – tem de se lidar com
erros.
Não se pode usar técnicas de difusão para localizar serviços – é necessário recorrer a serviços de directórios ou de nomes.
Se uma aplicação tem componentes centralizados fica também
limitada em termos geográficos.
3. em relação à facilidade de administração
Problemas de conciliação de políticas de utilização e
pagamento de recursos, administração e segurança.
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 certificação e de controlo de acessos.
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.
a) Tratamento de respostas como eventos;
b) Usar várias tarefas em paralelo para continuar
processamento.
Passar parte do processamento do servidor para o cliente.
2. Distribuição
Decompor os componentes em partes mais pequenas, que são
distribuídas por todo o sistema distribuído.
Exemplos: DNS e Web
Vários clientes podem aceder a diferentes partes em paralelo.
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.
link: http://tele1.dee.fct.unl.pt/rit2_2007_2008/teo/4_sist_dist.pdf
Mostrando postagens com marcador Felipe Monteiro Morisson - 104040723. Mostrar todas as postagens
Mostrando postagens com marcador Felipe Monteiro Morisson - 104040723. Mostrar todas as postagens
sexta-feira, 12 de setembro de 2008
Espaço de Tuplas
Um espaço de tuplas tem como função criar uma abstração de memória compartilhada sobre um sistema distribuído. Por propiciar modelos de programação muito simples e com baixo acoplamento entre os elementos do sistema, espaços de tuplas têm sido empregados na construção de sistemas distribuídos complexos. O espaço de tuplas JavaSpaces é um dos mais populares espaços de tuplas para a linguagem Java. Ele tem como características relevantes a conformidade a objetos, a persistência e o emprego de transações. As atuais implementações de JavaSpaces apresentam restrições como: complexidade de configuração, limitação de alcance e não serem abertas. Por “complexidade de configuração” entende-se ter que usar boa parte da infra-estrutura Jini (feita para facilitar o desenvolvimento e administração de sistemas distribuídos) e o Remote Method Invocation (mecanismo de chamadas remotas padrão no ambiente Java), mesmo quando eles seriam dispensáveis. Por "limitação de alcance", entende-se não poder usar as implementações sobre redes amplas, como a Internet. Por “não ser aberto” entende-se que: ou o código fonte não está disponível ou o código fonte e o aplicativo são distribuídos por licenças de software proprietárias ou o uso do software requer algum componente proprietário.
Linda é um espaço de tuplas constituído de um conjunto de seis operações e um sistema de run-time( que é composto por daemons em execução nos diversos nós do sistema).
As operações de Linda são usadas ao longo do código-fonte de um programa que se quer executar e que é escrito em alguma linguagem de programação associada ao Linda( mais comumente C ou Fortran). Um pré-compilador transforma as operações de Linda em instruções de mais baixo nível dirigidas para o sistema run-time. Essas instruções são escritas na linguagem associada e são inseridas diretamente no código-fonte. Durante a execução do programa o sistema de run-time responde às requisições devidamente construídas pelo pré-processador.
O pré-compilador Linda possui, a priori, informações sobre os componentes, as características e a configuração do sistema distribuído sobre o qual o programa será executado. Desta forma, o pré-compilador pode otimizar alguns parâmetros de execução do sistema run-time, como, por exemplo, a distribuição das tuplas. Portanto, Linda é um espaço de tuplas voltado para sistemas distribuídos fechados.
Linda é um espaço de tuplas constituído de um conjunto de seis operações e um sistema de run-time( que é composto por daemons em execução nos diversos nós do sistema).
As operações de Linda são usadas ao longo do código-fonte de um programa que se quer executar e que é escrito em alguma linguagem de programação associada ao Linda( mais comumente C ou Fortran). Um pré-compilador transforma as operações de Linda em instruções de mais baixo nível dirigidas para o sistema run-time. Essas instruções são escritas na linguagem associada e são inseridas diretamente no código-fonte. Durante a execução do programa o sistema de run-time responde às requisições devidamente construídas pelo pré-processador.
O pré-compilador Linda possui, a priori, informações sobre os componentes, as características e a configuração do sistema distribuído sobre o qual o programa será executado. Desta forma, o pré-compilador pode otimizar alguns parâmetros de execução do sistema run-time, como, por exemplo, a distribuição das tuplas. Portanto, Linda é um espaço de tuplas voltado para sistemas distribuídos fechados.
Marcadores:
Felipe Monteiro Morisson - 104040723
Assinar:
Postagens (Atom)