Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
distribuídos
Professor: Marcos Bião
Revisão
• Introdução
• Arquitetura em SD
• Referências
Introdução
• O que é arquitetura?
• Arte e ciência de projetar e supervisionar a construção de edifícios ou outras
estruturas que, por envolverem uma ordenação plástica aliada a concepções
técnicas e funcionais, possam expressar os valores estéticos e as necessidades
práticas das sociedades em seus diferentes momentos e, desse modo, abrigar
os diversos tipos de atividades humanas; arquitetônica.
Dicionário Aurélio
Introdução
• O que é arquitetura?
• Um modelo de arquitetura define a forma que os componentes do
sistema interagem e a maneira que eles são mapeados em uma
rede de computadores
• Base para garantir que a estrutura do sistema atenderá sua atual e provável
futura demanda em termos de atributos de qualidade
• Descrição simplificada e abstrata dos componentes do sistema:
• Funcionalidades (ou responsabilidades)
• Servidor, cliente, peer
• Estilos de arquiteturas
• Camadas
• Baseada em objetos
• Centrada em dados
• Eventos
Estilos de arquitetura
• Arquitetura em camadas
• Componentes são organizados em camadas
• Funcionamento:
• Trabalha com o compartilhamento de arquivos.
Estilos de arquitetura
Estilos de arquitetura
• Espaços compartilhados
• Combinação das arquiteturas baseadas em eventos e centrada em dados
• Processos independem do tempo
Estilos de arquitetura
• Arquitetura centralizada
• Arquitetura descentralizada
• Arquitetura híbrida
Arquitetura centralizada
• Cliente-Servidor
• Processos são divididos em 2 grupos
• Servidor: implementa um serviço especifico, gerenciam recursos e
controle de acesso
• Cliente: processo que requisita um serviço do servidor
• Comportamento de requisição-resposta
Arquitetura centralizada
• Cliente-Servidor
• Funcionamento
• Protocolo simples (em rede confiável)
• Cliente envia mensagem para servidor com os dados de entrada
• Servidor processa a mensagem
• Empacota os dados de resposta e envia ao cliente
Arquitetura centralizada
Arquitetura centralizada
• Cliente-Servidor
• Vejamos o seguinte caso:
• O que fazer?
Arquitetura centralizada
• Cliente-Servidor
• Pode-se imaginar as seguintes situações:
• O servidor não recebeu a requisição, por isso não respondeu
• O servidor recebeu a mensagem corrompida, não sabendo o que fazer
• O servidor recebeu a requisição correta, processou, mas não conseguiu enviar a resposta
ao cliente
• Se a resposta foi perdida, reenviar pode resultar em perda de dinheiro
Arquitetura centralizada
• Cliente-Servidor
• Pode-se imaginar outra situação:
• “Informe meu saldo”
• Essa ação pode ser realizada diversas vezes sem prejudicar o cliente
Arquitetura centralizada
• Cliente-Servidor
• Soluções?
• Operações que podem ser repetidas várias vezes sem causar dano são chamadas de
idempotente
• Não existe soluções únicas para tratamento de mensagens perdida
• Alternativa é a utilização de protocolos confiáveis orientados a conexão
• Garantindo que sempre que um cliente requisitou um serviços, antes ele estabeleceu
uma conexão com o servidor e só em seguida enviou a requisição
Arquitetura centralizada
• Arquitetura peer-to-peer
• De uma perspectiva de alto nível, os processos que constituem um sistemas
peer-to-peer são todos iguais, o que significa que as funções que precisam ser
realizadas são representadas por todo processo que constitui o sistema
distribuído
• Organizam os processos por meio de uma tabela de hash distribuída
• DHT implementa um mapeamento de chave do item para um nó baseando
por distâncias métricas
Arquitetura descentralizada
• Arquitetura peer-to-peer
• De uma perspectiva de alto nível, os processos que constituem um sistemas
peer-to-peer são todos iguais, o que significa que as funções que precisam ser
realizadas são representadas por todo processo que constitui o sistema
distribuído
• Organizam os processos por meio de uma tabela de hash distribuída
• DHT implementa um mapeamento de chave do item para um nó baseando
por distâncias métricas
Arquitetura descentralizada
• Arquitetura peer-to-peer
• Sistema Chord (stoica et. al. 2003)
• Organização em anel
• Um nó K, mapeia nós com identificação menor
• Para consultar um item em um determinado nó, deve-se acessar o nó sucessor primeiro
Arquitetura descentralizada
Arquitetura descentralizada
• Arquitetura híbrida
• Interceptadores
• É um constructo de software que interromperá o fluxo de controle usual e
permitirá que seja executado um outro código
• Funciona com alto suporte em sistemas distribuídos orientado à objetos
• Um objeto A pode chamar um método que pertence a um objeto B enquanto
este residir em uma máquina diferente de A
Arquitetura vs Middleware
• Interceptadores
• Esse processo é dividido em 3 etapas
1. É oferecida ao objeto A uma interface local que é exatamente a mesma oferecida pelo
objeto B. A simplesmente chama o método disponível naquela interface
3. Por fim, a invocação a objeto genérico é transformada em uma mensagem que é enviada
por meio de uma interface de rede de nível de transporte como oferecida pelo sistema
operacional local de A.
Arquitetura vs Middleware
Discussões
• Situação 1:
• Requisitos extrafuncionais conflitam com a meta de transparência
• Resultado: Middlewares com alta flexibilidade
• “[...] assuntos como abertura são de igual importância, mas a necessidade de
flexibilidade nunca foi tão predominante como no caso do middleware”
• Assim, a necessidade se torna uma premissa:
• São necessárias softwares adaptativos no sentido de que permitir mudança à medida
que o ambiente se altera
Discussões