SISTEMAS DISTRIBUÍDOS 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ído Acesso 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ído Transparências
Metas de um Sistema Distribuído Transparê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ído Abertura “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ído Abertura 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ído Escalabilidade 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 A rede é confiável A rede é segura A rede é homogênea A topologia não muda A latência é zero A largura da banda é infinita O custo de transporte é zero Há apenas um administrador
Propriedades das transações Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível. Consistentes: a transação não viola invariantes de sistema. Isoladas: transações concorrentes não interferem umas nas outras. 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: Adotar mudanças contextuais Incentivar composição ad hoc Reconhecer compartilhamento como padrão
Sistemas Pervasivos - Exemplos Sistemas 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 TI Conjunto de tecnologias projetadas e implementados de maneira a atingir as demandas de processamento dos usuários Infra-estrutura de TI Distribuída Múltiplos elementos de processamento autônomos, que se comunicam por troca de mensagens, através de uma rede. Distribuição implícita Sistemas 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 sistema Seta = 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). Mainframe Arquiteturas One-Tier (Totalmente centralizado) Mainframe Dados, interface, sistema...tudo junto Uso de terminais vantagens: Segurança Velocidade Controle de acesso Gerenciamento
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) Arquiteturas N-Tier (Sistema de Informações Distribuídos) A web passa a ser utilizada como interface Plataformas midlleware para acesso Controle distribuído Preocupações: Consistência Eficiência Infra-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 – 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 – Objetivos Eficiência, escalabilidade, robustez: utilização eficiente dos recursos. Abstração: esconder detalhes desnecessários