Sistemas Distribuídos: Conceitos, Características e Arquiteturas

Classificado em Computação

Escrito em em português com um tamanho de 12,62 KB

Sistema Distribuído

É um sistema composto por hardware e elementos de software que se intercomunicam por meio de mensagens, utilizando técnicas de transferência em redes locais ou remotas.

Aplicações Distribuídas

É um componente de software que está disponível em diferentes computadores e até mesmo em arquiteturas diferentes, fornecendo as interfaces necessárias para que o usuário interaja com um sistema particular.

Características de Sistemas Distribuídos

  • Heterogeneidade
  • Extensibilidade
  • Segurança
  • Escalabilidade
  • Tratamento de Falhas
  • Concorrência
  • Transparência

Heterogeneidade

É uma característica que descreve a diversidade de componentes de hardware, software e comunicações que podem ser implementados em um sistema distribuído.

Aplica-se a:

  • Redes
  • Hardware do computador
  • Sistemas Operacionais
  • Linguagens de Programação
  • Implementações por diferentes desenvolvedores

Extensibilidade

É a característica que determina se o sistema distribuído pode ser estendido de várias maneiras, podendo ser aberto ou fechado em relação às áreas de hardware ou software.

Segurança

Esta tem a responsabilidade global pela proteção de dados e está dividida em três componentes principais:

  • Confidencialidade: proteção contra acesso não autorizado.
  • Integridade: proteção contra alteração ou corrupção.
  • Disponibilidade: proteção contra interferência que impede o acesso aos recursos.

Escalabilidade

Este recurso foca na eficácia ou no desempenho que um sistema distribuído pode ter diante de um aumento no número de recursos e até mesmo no número de usuários.

Ajuda a prevenir o esgotamento de recursos de software.

Tratamento de Falhas

Refere-se a várias técnicas, algoritmos e/ou procedimentos para detectar e prevenir falhas. Alguns desses tratamentos são:

  • Detecção de falhas (Checksums)
  • Mascaramento de falhas (Broadcast)
  • Tolerância a falhas (Usuários tolerantes)
  • Failover (Rollback)
  • Redundância

Concorrência

Refere-se à possibilidade de acesso simultâneo ou frequente aos serviços oferecidos por um sistema distribuído.

Transparência

Concentra-se no funcionamento dos componentes de um sistema distribuído, visando facilitar o acesso do usuário, a simultaneidade e as réplicas, sem expor os detalhes das funções internas.

  • Transparência de Acesso
  • Transparência de Localização
  • Transparência de Concorrência
  • Transparência de Replicação
  • Transparência contra Falhas
  • Transparência de Mobilidade
  • Transparência de Desempenho
  • Transparência de Ampliação

Modelos de Arquitetura

  • Camadas de Software
  • Arquiteturas de Sistema
  • Interfaces e Objetos

Modelo de Arquitetura

Refere-se à distribuição ou organização de seus elementos e às relações entre os próprios componentes.

Camadas de Software

Relacionadas à estruturação do software em camadas em um único computador.

Camadas

São processos, um ou vários, localizados no mesmo ou em diferentes computadores, que oferecem serviços e atendem a solicitações.

Z

Plataforma

A camada inferior oferece serviços para as camadas superiores e sua implementação depende de cada computador.

Middleware

É uma camada de software cujo objetivo é mascarar a heterogeneidade e fornecer um modelo de programação conveniente para programadores de aplicativos.

Arquiteturas de Sistemas

  • Cliente-Servidor: O servidor pode ou não estar no mesmo computador que o cliente. Tanto o servidor quanto o cliente podem operar simultaneamente.
  • Serviços Prestados por Vários Servidores: Servidores podem dividir o conjunto de objetos que servem e distribuí-los entre si.
  • Servidor Proxy e Cache: Cache é um repositório de objetos de dados usados recentemente.
  • Processo Ponto a Ponto (Peer-to-Peer): Todos os processos executam tarefas semelhantes, interagindo cooperativamente como iguais em uma atividade ou computação distribuída, sem distinção entre clientes e servidores.

Interfaces de Processo e Objetos

É a especificação do conjunto de funções que podem ser invocadas sobre ele.

  • Em linguagens orientadas a objeto, o processamento distribuído pode ser construído de forma mais orientada a objetos. Referências a esses objetos são passadas para outros processos, que podem acessar seus métodos remotamente.
  • Este é o método utilizado pelo CORBA e Java RMI.

Outros Modelos Arquitetônicos

  • Código Móvel: O código da aplicação, essencialmente, são chamados de agentes.
  • Agente Móvel: Um programa que se move pela rede de um computador para outro, executando uma tarefa para um usuário.
  • Redes de Computadores: O software aplicativo necessário é baixado de um servidor remoto (PCOS).
  • Thin Clients (Clientes Leves): O cliente executa apenas a interface baseada em Windows, enquanto o aplicativo é executado em um servidor remoto, que é frequentemente muito poderoso (clusters multiprocessador, etc.).

Requisitos de Projeto para Arquiteturas Distribuídas

Performance

  • Resposta: Para obter bons tempos de resposta, os sistemas devem ser compostos por poucas camadas de software e a quantidade de dados transferidos deve ser pequena.
  • Produtividade: Trabalho por unidade de tempo.
  • Balanceamento de Carga: Utilização de applets, vários servidores ou computadores para hospedar um único serviço.

Qualidade de Serviço (QoS)

  • QoS é a capacidade dos sistemas de atender a esses limites.
  • Satisfazer esses requisitos depende da disponibilidade de recursos no momento certo.

Aspectos de Confiabilidade

  • Correção
  • Tolerância a Falhas
  • Segurança:
    • Privacidade
    • Integridade
    • Disponibilidade

Tolerância a Falhas

Aplicações estáveis devem continuar a funcionar corretamente na presença de falhas de software, hardware e redes.

  • É obtida através de redundância.
  • Para tornar um protocolo de comunicação confiável, outras técnicas são usadas.

Segurança

  • Pode ser vista como a necessidade de colocar dados sensíveis e outros recursos apenas em computadores equipados com mecanismos eficientes contra ataques.

Modelos Fundamentais

Modelo de Interação

Explora o desempenho e a dificuldade de estabelecer limites de tempo em um sistema distribuído.

Modelo de Falha

Tenta fornecer uma especificação precisa das falhas que podem ocorrer em processos e canais de comunicação.

Modelo de Segurança

Descreve as ameaças potenciais aos processos e canais de comunicação.

Entradas relacionadas: