caracterÍsticas dos sistemas distribuÍdos prof. agnaldo l martins
TRANSCRIPT
CARACTERÍSTICAS DOS
SISTEMAS DISTRIBUÍDOS
Prof. Agnaldo L Martins
O que são Sistemas Distribuídos?
• Um sistema distribuído é um conjunto de recursos computacionais independentes que se apresenta a seus usuários como um sistema único e coerente.
Principais características
• Diferenças entre os vários computadores e o modo como eles se comunicam estão, em grande parte, ocultas ao usuário;
• Usuários e aplicações podem interagir com um sistema distribuído de maneira consistente e uniforme, independentemente de onde a interação ocorra.
Uso de Middleware para sistemas heterogêneos
Metas de um Sistema DistribuídoAcesso a recursos
• Objetivo: facilitar acesso e compartilhamento de recursos remotos de maneira controlada e eficiente
• Porém, é necessário aprimorar a segurança, evitando acessos indevidos e rastreamento de comunicações
Metas de um Sistema DistribuídoTransparências
Metas de um Sistema DistribuídoTransparência da distribuição
• Grau de transparência – Deve levar em consideração várias questões, como desempenho e facilidade de compreensão.– O usuário deve saber das limitações do
sistema decorrentes do mesmo ser distribuídos, como:
• Tempo de acesso• Localização de recursos
Metas de um Sistema DistribuídoAbertura
• “Um sistema distribuído aberto é um sistema que oferece serviços de acordo com as regras padronizadas que descrevem a sintaxe e a semântica desses serviços”.
• Especificações devem ser completas e neutras.
• Assim sendo importantes para interoperabilidade e portabilidade.
• O sistema distribuído deve ser extensível.
Metas de um Sistema DistribuídoAbertura
• Sistemas legados e organização.– Muitos sistemas mais antigos e outros
contemporâneos são construídos com uma abordagem monolítica (código único, confuso e de difícil manutenção).
– Em uma abordagem nova é crucial que o sistema seja organizado como um conjunto de componentes relativamente pequenos e de fácil distribuição.
Metas de um Sistema DistribuídoEscalabilidade
• Medida, no mínimo, quanto ao tamanho, termos geográficos e termos administrativos.
Problemas de escalabilidade
• O que distingue um algoritmo distribuído de um algoritmo centralizado?– Nenhuma máquina tem informações
completas sobre o estado do sistema.– As máquinas tomam decisões tendo como
base somente informações locais.– A falha de uma máquina não pode arruínar
o processamento.– Não há nenhuma premissa implícita quanto
à existência de um relógio global
Problemas de escabilidade geográfica
• Quase impossível prover comunicação síncrona para grandes distâncias;
• Comunicação em redes de longa distância não é confiável;
• Soluções centralizadas atrapalham a escalabilidade de tamanho.
Problemas de escalabilidade administrativa
• Difícil estabelecer políticas de uso e pagamento de:– recursos;– gerenciamento; e– segurança
Exemplo de Técnicas de escalabilidade – distribuição do DNS
Principais ciladas
Premissas falsas adotadas ao desenvolver uma aplicação distribuída pela primeira vez
1.A rede é confiável
2.A rede é segura
3.A rede é homogênea
4.A topologia não muda
5.A latência é zero
6.A largura da banda é infinita
7.O custo de transporte é zero
8.Há apenas um administrador
Propriedades das transações
1. Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível.
2. Consistentes: a transação não viola invariantes de sistema.
3. Isoladas: transações concorrentes não interferem umas nas outras.
4. Duráveis: uma vez comprometida uma transação, as alterações são permanentes
• ACID (para facilitar a decoreba)
Transações distribuídas
• Empacota várias requisições de programas clientes em uma transação distribuída.
Exemplo de Transação Aninhada
Integração usando Monitor TP
Sistemas Distribuídos Pervasivos
• Sistemas decorrentes do uso de computação móvel e embutida, nas quais o comportamento esperado é a instabilidade;– Pequeno tamanho– Alimentados por bateria;– Comunicação sem fio;
• Não possui controle administrativo humano, podendo:1. Adotar mudanças contextuais2. Incentivar composição ad hoc3. Reconhecer compartilhamento como padrão
Sistemas Pervasivos - ExemplosSistemas para tratamento de Saúde
Sistemas de Informações Distribuídos
SISTEMAS DE INFORMAÇÃO
Sistema que coleta, armazena e processa dados internos ou externos a uma organização
Sistema para gerenciar fatos do mundo real (dado/inf/conh/ação)
Infra-estrutura de TIConjunto de tecnologias projetadas e implementados de maneira a atingir as demandas de processamento dos usuários
Infra-estrutura de TI DistribuídaMúltiplos elementos de processamento autônomos, que se comunicam por troca de mensagens, através de uma rede.
Distribuição implícitaSistemas não permanecem isolados. A comunicação entre sistemas é fundamental
PORQUE SISTEMAS DE INFORMAÇÃO DISTRIBUÍDOS
Alta demanda- Demanda crescente por soluções cada vez mais eficientes- Soluções centralizadas estão se tornando impraticáveis- Necessidade de cooperação entre sistemas- Aproveitamento de recursos
Serviços em um SID- Permite a separação do sistema em camadas- Um serviço de nomeação permite encontrar recursos na rede- Módulo de Administração e gerência faz com que a qualidade do serviço seja garantida- Confidencialidade, integridade e disponibilidade
Aproveitamento dos recursos
Um sistema de informações distribuídos deve aproveitar as vantagens dos recursos disponíveis na rede
- Estações de trabalho com suporte gráfico- Configuração dos multiprocessadores (balanceamento de carga)- Vazão de processamento
Distribuição em camadas
- Cliente/Apresentação- Processamento/Lógica de aplicação- Dados/gerenciamento de recursos
Modularidade X Desempenho
Caixa = Módulo do sistemaSeta = Conexão entre as partes
+ Caixas => Modularidade, Distribuição, Encapsulamento+ Setas => Mais sessões, mais complexidade
Objetivo: Balancear
Projeto Top-Down
- Funcionalidade divididas em módulos- A funcionalidade depende de outros módulos- O Sistema é projetado para ser distribuído desde o início
Projeto Botton-Up- Diversos componentes já existem e precisam trabalhar em conjunto- Deverá permitir a coexistência entre o velho e o novo- Suporte a heterogeneidade
Motivação
- Integração com sistemas legados- Limitações relacionadas a tecnologia
A empresa vai abrir seus sistemas? Até que ponto?Cada departamento pode possuir os seus sistemas e BD,
como integrá-los?
- As informações dos sistemas legados precisaram ser repensadas (conceitos, modelos etc.)
Integração ideal
- Comunicação segura e confiável- Semântica uniforme- Interface homogênea
Arquiteturas
One-Tier (Totalmente centralizado)MainframeDados, interface, sistema...tudo juntoUso de terminais
vantagens:SegurançaVelocidadeControle de acessoGerenciamento
Arquiteturas
Two-Tier (Cliente/Servidor)
Clientes independentes e camadas de aplicação diferentes. Auto poder no cliente
Desvantagens:- Tratamento de conexões- Falha pode interromper tudo
Arquiteturas
N-Tier (Sistema de Informações Distribuídos)
A web passa a ser utilizada como interfacePlataformas midlleware para acessoControle distribuído
Preocupações:
ConsistênciaEficiênciaInfra-estrutura poderosa
Abordagens técnicas
– Sobrepor heterogeneidade semântica: integração de informações
Mapeamento do modelo de dados Mapeamento de esquemas Acordo sobre interpretação dos dados
– Criar novas informações: obtenção de informações distribuídas e mineração de dados
Necessidade de novos algoritmos Necessidades de sistema: integração física ou acesso
aos dados
– Modelo de dados canônico (ex XML) Detectar correspondências Resolver conflitos Integrar esquemas (mapeamento)
– Gerência de armazenamento distribuída Particionamento e distribuição dos dados e índices Replicação, caching Consistência dos dados replicados e da dependência
entre os dados distribuídos
– Gerência de transações distribuídas Conceito de transação
– Consultas e filtragem distribuída Decomposição de consultas e filtros Modelos de disseminação de informação
– ObjetivosEficiência, escalabilidade, robustez: utilização eficiente dos recursos. Abstração: esconder detalhes desnecessários