Escolar Documentos
Profissional Documentos
Cultura Documentos
MC714
Sistemas Distribuídos
1° semestre, 2017
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas
• Componentes de sistema distribuído espalhados
por diversas máquinas.
• Controle demanda organização.
• Organização lógica do soRware e organização
Tsica dos componentes.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Software
• Componentes de soRware consUtuem o sistema.
• Arquitetura de soRware
• Como vários componentes estão organizados
• Como devem interagir
Estilos arquitetônicos
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Estilos arquitetônicos
• Organização lógica do sistema em componentes
de soRware – arquitetura de soRware
• EsUlo arquitetônico: componentes, modo como
estão conectados, dados trocados, como são
configurados para formar o sistema
• Componente: unidade modular com interfaces
requeridas e fornecidas bem definidas;
subsUtuível.
• Conector: mecanismo que serve de mediador da
comunicação entre componentes.
• Facilidades para chamadas de procedimento (remotas),
passagem de mensagem, fluxo de dados.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Estilos arquitetônicos
• Várias configurações usando componentes e
conectores.
• Arquitetura em camadas.
• Arquiteturas baseadas em objetos.
• Arquiteturas centradas em dados.
• Arquiteturas baseadas em eventos.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura em camadas
• Um componente da camada Li tem permissão de
chamar componentes na camada subjacente
Li-1 , mas não o contrário.
• Adotado em redes.
• Em geral requisições descem pela hierarquia,
resultados sobem.
• Fig. 31.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de software
• Visam obter nível razoável de transparência de
distribuição.
• Compromisso entre desempenho, tolerância a
falha, facilidade de programação.
• Dependente de requisitos/aplicações: não há um sistema para
cobrir tudo.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de sistema
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura de sistema
• Onde são colocados os componentes de
soRware.
• Centralizada, descentralizada, híbrida.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura centralizada
• Processos divididos em dois grupos: clientes e
servidores.
• Servidor implementa um serviço específico.
• Cliente requisita um serviço enviando uma
requisição e aguarda resposta.
• Clientes requisitam serviços de servidores.
• Comportamento de requisição-resposta.
• Fig. 34.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura centralizada
• Cliente-servidor pode ser implementado por
meio de um protocolo simples de comunicação
se rede é confiável.
• Empacota mensagem idenUficando serviço
desejado junto com dados necessários.
• Mensagem é enviada; servidor aguarda
requisição, processa e empacota resultados em
uma mensagem de resposta.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura centralizada
• Aplicação: protocolo de comunicação.
• Confiabilidade versus eficiência; sem conexão,
com conexão; retransmissão.
• Depende da aplicação.
• Retransmissão de mensagem: transfira R$1.000 da minha
conta.
• Retransmissão de mensagem: qual o saldo da minha conta?
• Operação repeUda sem danos: idempotente.
• Diversas maneiras de tratar falhas, dependendo do Upo de
mensagem perdida.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura centralizada
• Muitos sistemas uUlizam protocolos confiáveis orientados à
conexão.
• TCP/IP.
• Primeiro estabelece conexão, depois envia requisição.
• Servidor pode usar a mesma conexão para enviar resposta.
• Conexão pode ser caro.
• Estabelecer e encerrar conexão pode ocupar maior parte do
tempo, principalmente se mensagens de requisição e resposta
são pequenas.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Camadas de aplicação
• Cliente-servidor: quem é quem?
• Ex: banco de dados recebe consultas, mas
somente realiza requisições a sistemas de
arquivos que implementam as tabelas.
• Banco de dados apenas faz consultas.
• Muitas aplicações cliente-servidor visam dar
suporte aos usuários de bancos de dados: três
níveis.
• 1. Interface de usuário – interação.
• 2. Nível de processamento – aplicação.
• 3. Nível de dados – gerência dos dados.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Camadas de aplicação
• Interface:
• Tela baseada em caracteres (terminal).
• X-window
• Processamento:
• Busca web: palavra chave, ordenar resultados, fazer consultas aos
bancos de dados.
• Análise de dados financeiros: estaosUca + IA.
• Dados
• Dados persistentes.
• Geralmente no lado do servidor.
• Manter consistência de dados (triggers).
• Muito comum ser banco de dados relacional.
• Fig 35.a
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas multidivididas
• 3 níveis lógicos: várias possibilidades para
distribuição Tsica de uma aplicação no modelo
cliente-servidor.
• Mais simples:
• 2 Upos de máquinas: cliente com interface e servidor com
processamento e dados.
• Cliente é “terminal burro”.
• Arquitetura de 2 divisões (Tsicas)
• Fig. 35.b
• Outras possibilidades.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas multidivididas
• Tendência a reUrar processamento e
armazenamento do cliente.
• Mais problemáUcas para gerenciar/atualizar.
• Mais soRware no cliente = mais propenso a erros.
• Clientes gordos / clientes magros.
• Clientes magros: não precisamos mais de sistemas
distribuídos?
• SD muda para o lado do servidor.
• Arquiteturas de 3 divisões (em termos Tsicos).
• Servidor web repassa requisição para servidor da aplicação
(processamento), consulta BD.
• Fig 36.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas descentralizadas
• Arquiteturas mulUdivididas: conseqüência da divisão de
aplicação em interface/processamento/dados.
• Em muitos ambientes, organização de aplicações cliente-
servidor é feita em arquiteturas mulUdivididas: distribuição
verUcal.
• Componentes logicamente diferentes em máquinas diferentes.
• Relação com fragmentação verUcal: tabelas de BD subdivididas
em colunas e distribuídas.
• Divisão lógica e Tsica: cada máquina executa grupo específico de
funções
• Distribuição horizontal
• Servidor/cliente divididos em partes logicamente equivalentes.
• Cada parte operando sobre seu próprio conjunto de dados.
• Distribuição de carga.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas descentralizadas
• Peer-to-peer (P2P): distribuição horizontal.
• Não há servidor sempre ligado.
• Sistemas finais comunicam-se diretamente.
• Peers intermitentemente conectados e mudam de endereço.
• Ex: distribuição de arquivos (bitTorrent), streaming (KanKan),
VoIP (Skype).
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Aumentam linearmente em N
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
3
Client-Server
2.5
1.5
0.5
0
0 5 10 15 20 25 30 35
N
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas descentralizadas
• Peer-to-peer (P2P): distribuição horizontal.
• Processos que consUtuem o sistema são todos iguais.
• Funções necessárias são executadas por todos.
• Interação simétrica: cliente e servidor ao mesmo tempo.
• Como organizar os peers? Rede de sobreposição (overlay).
• Nós são processos; enlaces são canais de comunicação lógicos.
• Em geral, processo não pode se comunicar diretamente com
outro processo arbitrário: deve obedecer overlay.
• Redes de sobreposição: estruturadas e não estruturadas.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas descentralizadas
• Arquiteturas P2P estruturadas:
• Rede de sobreposição é construída com a uUlização de um
procedimento determinísUco.
• Mais uUlizado: tabela hash distribuída (distributed hash table –
DHT).
• Ex.: Chord, CAN, Pastry, Tapestry
• Arquiteturas P2P não estruturadas:
• Algoritmos aleatorizados para construir a rede de sobreposição.
• Idéia é que cada nó mantenha lista de vizinhos, mas que essa lista
seja construída de modo que envolva alguma aleatorização.
• Localização de item pode depender de inundação da rede.