Sistemas Distribuídos
Fundamentos, arquiteturas e desafios dos sistemas distribuídos modernos
Esta seção reúne o material de apoio da disciplina de Sistemas Distribuídos, cobrindo desde a computação ubíqua e a nuvem até os modelos de arquitetura, falhas, concorrência, bancos de dados distribuídos e IoT.
01: Introdução: Ubiquitous Computing, Clouds, IoT e Smart Environments
Computação ubíqua, computação em nuvem, IoT e ambientes inteligentes: os quatro pilares que motivam o estudo de sistemas distribuídos modernos.
02: Evolução e Definição de Sistemas Distribuídos
Da computação centralizada aos sistemas abertos, definições de Tanenbaum e Coulouris, e os principais desafios (concorrência, escalabilidade, segurança, transparência).
03: Modelos Físicos
Sistemas distribuídos primitivos, adaptados para a Internet, contemporâneos e de sistemas (SoS): computação móvel, pervasiva, ubíqua, clusters e grids.
04: Modelos de Arquitetura
Entidades em comunicação, paradigmas de comunicação, cliente-servidor, peer-to-peer, localização de recursos, camadas lógicas/físicas e middleware.
05: Modelos Fundamentais: Interação e Tempo
Desempenho de rede, relógios físicos e drift, sincronização de relógios (Cristian, Berkeley, NTP), sistemas síncronos/assíncronos e o algoritmo de Lamport.
06: Dependabilidade e Modelos de Falha
Confiabilidade, disponibilidade e segurança; falhas de omissão, temporização e bizantinas; o problema dos dois generais e dos generais bizantinos.
07: Comunicação em Sistemas Distribuídos
Comunicação direta × indireta, sockets (TCP/UDP em Python), representação externa de dados, threads e message brokers (AMQP, Pub/Sub, RabbitMQ).
08: Concorrência em Sistemas Distribuídos
Condições de corrida, deadlock (o problema dos filósofos), starvation e falhas parciais: causas, exemplos e estratégias de mitigação.
09: Bancos de Dados Distribuídos e Transações
Replicação, fragmentação, ACID, controle de concorrência (locking, OCC, timestamp ordering, MVCC, quorum) e commit atômico (2PC/3PC).
10: Cloud Computing
Definição do NIST, características essenciais, modelos de serviço (SaaS/PaaS/IaaS), modelos de implantação, grid/utility computing, fog e edge computing.
11: Internet das Coisas (IoT)
História e definições, arquitetura em camadas (3 e 5 camadas), modelos de comunicação (RFC 7452) e aplicações práticas de IoT.