Sistema Distribuído, o que é?

Dylan Pinto
2 min readMay 11, 2021

Os sistemas distribuídos são conjuntos de computadores ligados em rede, com software que permita a partilha de recursos e a coordenação de atividades, oferecendo idealmente um sistema integrado.

Desafios:

  • Heterogeneidade
  • Abertura
  • Transparência
  • Segurança
  • Escala
  • Tratamento de falhas

Heterogeneidade:

Diferentes tipos de Sistemas Operativos:

Diferentes tipos de rede;

Diferentes hardwares.

Abertura:

A abertura de um sistema determina o modo como pode ser estendido e reimplementado

  • Sistemas abertos

Interfaces e modelo (incluindo protocolos de comunicação) conhecidos; Evolução controlada por organismos de normalização independentes ou consórcios industriais; Permite a interoperação de componentes com diferentes implementações

  • Sistemas proprietários

Podem ser modificados pelo seu “dono”

Transparência:

A transparência (da distribuição) é a propriedade relativa a esconder ao utilizador e ao programador das aplicações a separação física dos elementos que compõem um sistema distribuído.

Segurança:

Necessidade de proteger os recursos e informação gerida num sistema distribuído.

  • Manter o nível de confidencialidade exigido pelos utilizadores (proteção contra acessos não autorizados)
  • Garantir a integridade dos dados (proteção contra alteração ou corrupção de dados ou programas)
  • Manter a disponibilidade do sistema (proteção contra interferências com os meios de acesso aos recursos)

Escala:

A escala de um sistema tem várias facetas:

  • recursos e utilizadores
  • âmbito geográfico (rede local, país, mundo, …)
  • âmbito administrativo (uma organização, inter-organizações)

Um sistema capaz de escalar (escalável) é um sistema que continua eficaz quando há um aumento significativo do número de recursos e utilizadores i.e., em que não é necessário alterar a implementação dos componentes e da forma de interação dos mesmos.

Tratamento de falhas

Num sistema distribuído, as falhas são geralmente parciais (num componente do sistema) e independentes. Um componente em falha pode induzir uma mudança de estado incorreta noutro componente, levando eventualmente o sistema a falhar, i.e., a ter um comportamento não de acordo com a sua especificação.

Exemplos de plataformas para sistemas distribuídos:

Hadoop é uma plataforma de software em Java de computação distribuída voltada para clusters e processamento de grandes volumes de dados, com atenção a tolerância a falhas.

Spark — é um framework de código fonte aberto para computação distribuída. Spark provê uma interface para programação de clusters com paralelismo e tolerância a falhas.

Kafka — é uma plataforma open-source de processamento de streams desenvolvida pela Apache Software Foundation, escrita em Scala e Java. O projeto tem como objetivo fornecer uma plataforma unificada, de alta capacidade e baixa latência para tratamento de dados em tempo real.

Referências:

Afinal o que é um sistema distribuído? — Pplware (sapo.pt)

Sistemas_Distribuídos_Resumo_Matéria.pdf (ninf.org)

sd-1-introducao.pptx (unl.pt)

sistemasDistribuidos.pdf (ufmg.br)

--

--