Post on 22-Apr-2015
Sistemas Distribuídos
OBJETIVO
O que é uma Aplicação Distribuída? Uma aplicação que executa
simultaneamente em várias máquinas Um grupo de processos que executa em
máquinas distintas e trabalha de forma coordenada e cooperativa para realizar uma determinada tarefa
aplicação centralizada
máquina 1
aplicação distribuída
máquina 1 máquina 2 máquina n
. . .
Sistema Distribuído
conjunto de nós de processamento independentes heterogêneos características e objetivos distintos
interligados (rede de comunicação) interagem e cooperam
Porquê?
Distribuição Geográfica (organizações físicas distribuídas)
Extensibilidade, modularidade Partilha de recursos Maior disponibilidade (replicação) Maior desempenho (carga
computacional distribuída)
Condicionantes da Evolução
Tecnologia Redes de computadores Computadores pessoais Sistemas abertos Arquitetura de Computadores
Requisitos Utilizadores finais Programadores Gestores
Evolução das Redes de Computadores Terminais ligados ao mainframe Interligação dos sistemas centrais Oferta de comunicação de dados
pelos operadores públicos X.25; RDIS; ATM
Redes locais Internet Wireless Interligação de TODOS os dispositivos
onde quer que estejam + distribuição = Computação ubíqua
Evolução dos Computadores Pessoais
Equipamentos simples e autónomos Baixo custo Interface atraente e intuitiva Mercado dominado pela Wintel:
Windows + Intel + Office Miríade de aplicações mas… para que
servem exatamente os computadores
Evolução da Arquitetura de Computadores Grande aumento da:
potência de cálculo, memória, e disco Utilização de componentes de h/w standard Multiprocessamento económico e eficaz Alguma uniformização do s/w de sistema
SO: Windows, Unix, IBM MVS BD’s: Oracle, Informix,Sybase, SQL-Server,
DB2
Redução de equipamentos centrais: downsizing custo e dimensão, modularidade e extensibilidade dos servidores
Consequências da Evolução Tecnológica
Grande disponibilidade da tecnologia (clientes, servidores, e interligações)
Distribuição da tecnologia pelo mundo
Grande descoordenação e heterogeneidade
Sistema compatíveis com a distribuição e modo de vida
Requisitos dos Utilizadores
Transparência Partilha de informação Melhoria de comunicação entre
pessoas Segurança e proteção Fiabilidade e disponibilidade
Requisitos dos programadores
Interfaces normalizadas Ambientes de programação
independentes das características do hardware e das redes
Controle sobre o desempenho, fiabilidade, disponibilidade, segurança
Requisitos dos Gestores
Investimento reduzido Modularidade e extensibilidade na
evolução do sistema proteção do investimento anterior
Adequação às equipas técnicas Otimização da gestão dos recursos Desempenho, disponibilidade,
fiabilidade, segurança
Modelos de Sistema de RV Multi-Usuário
Acesso ao Mundo Virtual Distribuído
Funcionamento Geral A estrutura de um sistema distribuído pode ser
visualizada em camadas. A camada mais interna corresponde ao hardware, que suporta todas as outras camadas do software. Em seguida vem o núcleo, que é a primeira camada de software a envolver o hardware, sobre esse núcleo (kernel) situa-se o sistema operacional propriamente dito, que fornece o suporte necessário à execução de programas. E, em seguida, tem-se a camada mais externa, correspondente ao nível de aplicação.
Funcionamento Geral Em um sistema distribuído, a existência de
computadores autônomos é transparente (não visível) para o usuário, que não percebe a existência de múltiplos processadores.
Um sistema distribuído é um caso especial de rede, cujo software lhe fornece maior grau de coesão e transparência. Desta forma, a distinção entre uma rede e um sistema distribuído está no software (especialmente no sistema operacional) não no hardware.
Funcionamento Geral
Os sistemas distribuídos permitem que uma aplicação seja dividida em diferentes partes, que se comunicam através de linhas de comunicação, e cada parte podendo ser processada em um sistema independente;
“Sistema Distribuído é aquele que roda em um conjunto de máquinas sem memória compartilhada, máquinas que mesmo assim aparecem como único computador para seus usuários” (Lamport, 1978).
Vantagens do Sistema Distribuído
Economia: Os microprocessadores oferecem uma melhor relação preço/performance do que a oferecida
por mainframes. Velocidade: Um sistema distribuído pode ter um poder
de processamento maior que o de qualquer mainframe. Confiabilidade: Se uma máquina sair do ar, o sistema
como um todo pode sobreviver. Crescimento incremental: O poder computacional pode
crescer gradualmente.
Vantagens do Sistema Distribuído(cont.)
Compartilhamento de dados: permite que mais de um usuário acesse uma base de dados comum.
Compartilhamento de dispositivos: permite que mais de um usuário possa ter acesso a vários periféricos.
Flexibilidade: Espalha a carga de trabalho por todas as máquinas disponíveis ao longo da rede.
Desvantagens do Sistema Distribuído
Software: Existência de software para sistemas distribuídos é pequena até o momento;
Redes: As redes de comunicação podem saturar ou causar outros problemas;
Segurança: Fácil acesso a dados também se aplica a
dados confidenciais (secretos);
Sistemas Distribuídos X Sistemas Centralizados
Item Descrição
Compartilhamento de dados Permite vários usuários acessarem uma base de dados comum
Compartilhamento de dispositivos
Permitem vários usuários acessarem recursos caros como impressoras coloridas
ComunicaçãoTorna a comunicação entre humanos mais fácil através de mensagens
EconomiaMicroprocessadores oferecem custo/benefício maior do que mainframes
VelocidadeUm sistema distribuído pode ter maior poder computacional do que um mainframe
Distribuição Inerente Algumas aplicações envolvem máquinas espacialmente separadas
FlexibilidadeEspalha a carga de trabalho através das máquinas disponíveis da maneira mais efetiva em relação ao custo computacional
Crescimento incrementalPoder computacional pode ser adicionado com pequenos incrementos