Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Arquiteturas de Sistemas Distribuidos
Estilos Arquitetônicos (Andrew Tanenbaum)
Andrew Tanenbaum, um dos principais estudiosos de sistemas distribuídos, descreve vários estilos arquitetônicos que são comuns nesses sistemas:
1. Arquitetura Cliente-Servidor: Divide o sistema em clientes, que solicitam serviços, e servidores, que fornecem serviços.
2. Arquitetura em Camadas: Organiza o sistema em camadas hierárquicas, onde cada camada oferece serviços para a camada imediatamente superior.
3. Arquitetura Baseada em Objetos: Componentes são objetos que interagem entre si através de interfaces bem definidas.
4. Arquitetura Centrada em Dados: Dados são o ponto central e vários componentes interagem com esses dados (e.g., repositórios de dados).
5. Arquitetura Baseada em Eventos: Componentes se comunicam principalmente através da geração e manipulação de eventos.
6. Arquitetura Baseada em Microserviços: Funcionalidades do sistema são divididas em pequenos serviços independentes que se comunicam entre si.
Componentes e Conectores
Componentes: Unidades modulares que executam funções específicas e têm interfaces bem definidas para interagir com outros componentes.
Conectores: Mecanismos que permitem a comunicação e coordenação entre componentes, como chamadas de procedimento remoto (RPC), filas de mensagens, ou sistemas de eventos.
Configurações
A configuração de um sistema distribuído refere-se ao arranjo específico de componentes e conectores em um dado momento, que pode mudar dinamicamente em sistemas adaptativos.
Arquitetura em camadas
Nesta arquitetura, o sistema é dividido em várias camadas onde cada camada tem uma responsabilidade específica e depende apenas da camada imediatamente abaixo. Um exemplo comum é a arquitetura de rede OSI (Open Systems Interconnection).
Arquitetura baseado em objetos
Nesta arquitetura, o sistema é modelado como um conjunto de objetos interagindo, onde cada objeto encapsula dados e comportamento. A interação ocorre através de métodos e chamadas de procedimento.
Arquitetura centrada em dados
Sistemas centrados em dados organizam a comunicação e coordenação em torno de um repositório de dados central. Exemplos incluem sistemas de banco de dados e sistemas de arquivos compartilhados.
Arquitetura baseado em eventos
Nesta abordagem, componentes comunicam-se predominantemente através de eventos. Um evento é uma notificação de que algo aconteceu, e componentes interessados nesse evento reagem de acordo.
Arquitetura baseado em microserviços
Este estilo divide o sistema em serviços pequenos e independentes, cada um executando uma única função. Eles se comunicam através de APIs leves e podem ser desenvolvidos, implantados e escalados de forma independente.
RPC (Remote Procedure Call)
RPC permite que um programa execute uma função ou procedimento em outro endereço de espaço, que pode estar em outro computador na rede. É uma forma de abstrair a comunicação interprocesso em sistemas distribuídos.
Arquitetura de sistemas
Refere-se à estrutura fundamental de um sistema, abrangendo componentes, relacionamentos, e princípios de design que orientam seu desenvolvimento e evolução.
Arquitetura centralizada (camada de aplicação)
Nesta arquitetura, o processamento e a gestão de dados ocorrem principalmente em um servidor centralizado, com clientes que consomem os serviços fornecidos por este servidor.
Arquitetura multidivididas
Divide o sistema em múltiplas divisões lógicas ou físicas, cada uma com responsabilidades distintas. Exemplos incluem arquiteturas de três camadas (apresentação, lógica de negócios, e dados).
Gerenciamento do sistema
Inclui todas as atividades de manutenção e operação de um sistema distribuído, como monitoramento de desempenho, gestão de falhas, e provisionamento de recursos.
Arquitetura de duas divisões físicas
Inclui todas as atividades de manutenção e operação de um sistema distribuído, como monitoramento de desempenho, gestão de falhas, e provisionamento de recursos.
Arquitetura de três divisões físicas
Inclui três partes: cliente, servidor de aplicação e servidor de banco de dados. Esta separação melhora a modularidade e escalabilidade do sistema.
Distribuição vertical e horizontal
Distribuição Vertical: Divisão do sistema em camadas funcionais.
Distribuição Horizontal: Divisão do sistema em várias instâncias do mesmo tipo de componente, como múltiplos servidores de aplicação para balanceamento de carga.
Arquitetura descentralizadas
Distribui a responsabilidade e controle por todo o sistema, sem um ponto central de controle. Exemplos incluem redes peer-to-peer.
Peer-to-peer
Em redes P2P, todos os nós têm capacidades e responsabilidades equivalentes. Cada nó pode atuar tanto como cliente quanto como servidor.
Arquiteturas Hibridas – Edge
Combina processamento centralizado com processamento local (na borda). Dispositivos de borda realizam parte do processamento, reduzindo a carga no servidor central e melhorando a latência.
Sistemas de Servidor de Bordo
Dispositivos de borda, como roteadores e gateways, desempenham funções de servidor, processando dados localmente antes de enviar ao servidor central.
Arquitetura Hibridas – Colaborativas
Combina diferentes abordagens arquitetônicas para otimizar desempenho, resiliência e escalabilidade. Um exemplo é o BitTorrent, que usa um modelo híbrido de centralização e descentralização para a troca de arquivos.
BitTorrent
Um protocolo P2P para distribuição de arquivos que divide os arquivos em pequenos pedaços, distribuindo-os entre os usuários. Cada usuário (peer) pode baixar e enviar pedaços simultaneamente, o que melhora a eficiência e velocidade de distribuição.

Mais conteúdos dessa disciplina