Buscar

Arquiteturas de Sistemas Distribuídos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

slide 1/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Arquiteturas
2
capítulo
slide 2/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2 Arquitetura
O Sistema Distribuído é considerado complexo, pois o softeware é dividida em partes pequenas e espalhadas por várias máquinas.
O que a arquitetura de software define?
Como os vários componentes de software deve ser organizados e interagir.
A especificação final de uma Arquitetura de Software é também denominada de Arquitetura de Sistemas.
Centralizada;
Descentralizada;
Hibridas.
Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados.
slide 2/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2 Arquitetura (Cont.)
Meta importante do SD é separar aplicações das plataformas adjacentes, isso é conseguindo com o Middleware
Qual a finalidade dessa decisão arquitetônica?
Proporcionar transparência de distribuição.
Sistema Autonômico: o sistema monitora seu próprio comportamento e toma providências adequadas quando necessárias.
Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados.
slide 2/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos são configurados em conjunto para formar um sistema.
Componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu ambiente.
Conector é um mecanismo mediador da comunicação ou da cooperação entre componentes. Exp.: chamada de procedimento (remota), passagem de mensagem ou fluxo de dados.
Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados.
slide 3/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
2.1 Estilos Arquitetônicos - classificação
Arquiteturas em camadas
Arquiteturas baseadas em objetos
Arquiteturas centradas em dados
Arquiteturas baseadas em eventos
Andrew S. Tanenbaum
Maarten Van Steen
slide 4/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
Arquitetura em camadas
Componentes organizados em camadas, onde componentes da camada Li pode chamar métodos da camada subjacente Li-1, mas não o contrário.
slide 4/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
2. Arquiteturas baseadas em objetos
Objetos correspondem às definições de componentes, que são conectados por meio de chamadas de procedimento remotas;
slide 6/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
1. Arquiteturas centradas em dados
Processos se comunicam por meio de repositório comum (passivo ou ativo);
Sistema web em grande parte são centrados em dados
slide 6/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
2. Arquiteturas baseadas em eventos
Sistemas Publicar/Subscrever;
Processo publicam eventos e o middleware assegura que somente os processos que se subscreveram (“se inscreveram”) para esses eventos os receberão.
Processo são fracamente acoplados
Não precisa se referenciar uns aos outros = referencialmente desacoplados.
Podem ser combinados com arquitetura centrada em dados
Resultando em um espaço compartilhado
Processos também são desacoplados no tempo, ou seja, não precisa está ativo quando ocorre a comunicação
Usam interface semelhante ao SQL server
slide 6/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
2. Arquiteturas baseadas em eventos
Processos se comunicam por meio de propagação de eventos que podem transportar dados;
slide 8/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.1 Estilos Arquitetônicos
Estilos podem ser híbridos, como arquiteturas baseadas em eventos juntamente com centradas em dados, também conhecidas como espaços compartilhados de dados.
slide 9/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2 Arquiteturas de Sistemas
2.2.1 Arquiteturas Centralizadas
Processos são distribuídos em dois grupos:
	- Servidor: processo que implementa um serviço especifico
	* exp.: Sistema de arquivos ou banco de dados
	- Cliente: Processo que requisita um serviço 
	* Envia requisição e aguarda resposta.
Essa requisição é conhecida como compartilhamento de requisição-resposta
slide 11/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.1 Arquiteturas Centralizadas
Camadas de Aplicação
Como distinguir um cliente e um servidor?
Essa distinção pode ser feita em três níveis:
Nível de interface de usuário
Contém tudo o que é necessário para fazer interface com o usuário.
Nível de processamento
Contém as aplicações
Nível de dados
Gerencia os dados propriamente ditos
slide 12/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Organização em 3 Camadas de Aplicação
Um mecanismo de busca da Internet
slide 13/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.1 Arquiteturas Centralizadas
Arquiteturas multidivididas
Com base na organização de três níveis lógicos discutida anteriormente, é necessária a distribuição física. 
A maneira mais simples, denominada arquitetura de duas divisões (físicas) é distribuída da seguinte forma:
Uma máquina cliente que contém apenas os programas que implementam o nível (ou parte do nível) de interface de usuário
Uma máquina do servidor que contém todo o resto, ou seja, os níveis de processamento e de dados.
slide 14/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.1 Arquiteturas Centralizadas
Arquiteturas multidivididas
Alternativas de distribuição
Interface dependente de terminal
Interface completa no lado do cliente
Editor de Textos
Software locais
Em (e) temos o disco local armazenando parte dos dados
slide 15/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.1 Arquiteturas Centralizadas
Arquiteturas multidivididas
Arquitetura de três divisões (físicas)
slide 16/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
slide 17/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Distribuição vertical
divide componentes logicamente diferentes em máquinas diferentes (interface de usuário, componentes de processamento e nível de dados);
Ex.:Bancos de Dados Relacionais em que as tabelas são subdivididas em colunas e distribuídas por várias máquinas
Distribuição horizontal
Um cliente ou servidor pode ser subdividido em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto de dados, equilibrando a carga.
Ex.: Peer to Peer (servidor e cliente ao mesmo tempo, também chamada “servente”)
slide 18/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Peer to Peer
Arquiteturas se dividem pela forma de organizar os processos em uma rede de sobreposição.
Redes de sobreposição estruturadas
Redes de sobreposição não-estruturadas
slide 19/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Arquiteturas Peer to Peer estruturadas
O mais usado é organizar os processos por meio de uma DHT (Distributed Hash Table).
Sistema Chord – Nós ligados logicamente em anel, onde um item de dado com chave k seja mapeado para o nó que tenha o menor Id ≥ k.
CAN (Content Addressable Network) – Usa espaço de coordenadas cartesianas de d dimensões particionado entre todos os nós participantes do sistema.
slide 20/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Sistema Chord
slide 21/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Rede de Conteúdo Endereçável (CAN)
slide 22/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.2 Arquiteturas descentralizadas
Arquiteturas P2P não-estruturadas
Cada nó mantém uma lista aleatória de vizinhos.
Itens de dados são colocados aleatoriamente nos nós.
Consulta através de inundação da rede
A meta é construir uma rede de sobreposição parecida com um grafo aleatório.
slide 23/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Thread, ou linha de execução em português, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. 
slide 24/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Gerenciamento de topologia de redes de sobreposição
Abordagem de 2 camadas
slide 25/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Evolução da rede de sobreposição não-estruturada
slide 26/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Evolução da rede de sobreposição não-estruturada
A tendência do uso contínuo das duas camadas tende a distribuir melhor os peers.
slide 27/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Super-pares (superpeers)
Usam nós especiais que mantêm um índice de itens de dados, a fim de facilitar a localização de dados relevantes em sistemas P2P não estruturados.
Definem, em muitos casos, uma relação cliente-superpar fixa, onde sempre que um par se junta à rede, se liga a um dos superpares e continua ligado até sair da rede
Nem sempre é uma boa solução!
slide 28/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Super-pares (superpeers)
slide 29/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.3 Arquiteturas híbridas
Sistemas de servidor de borda (Internet)
Sistemas colaborativos (Torrent)
slide 30/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.2.3 Arquiteturas híbridas
BitTorrent
Um usuário acessa um diretório global que contém um arquivo .torrent, o qual contém as informações necessárias para transferir um ou mais arquivos específicos (rastreador).
Após a identificação dos nós e suas porções de arquivos, o nó que está transferindo se torna efetivamente ativo, sendo forçado a auxiliar os outros.
O gargalo dos servidores são os rastreadores!
slide 31/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Funcionamento do BitTorrent
slide 32/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Funcionamento do BitTorrent
BitTorrent reduz largamente a carga no servidor porque os utilizadores descarregam arquivos uns dos outros, não do servidor. As barras coloridas indicam que os pedaços são partilhados em ordem aleatória, em vez da ordem seqüencial.
slide 33/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.3 Arquiteturas versus Middleware
Onde o Middleware se encaixa?
Entre aplicações e plataformas distribuídas, com finalidade de proporcionar um grau de transparência à distribuição de dados, processamento e controle.
Middlewares normalmente seguem estilos arquitetônicos específicos:
CORBA (baseado em objetos);
TIB/Rendezvouz (baseado em eventos);
slide 34/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.3.1 Interceptadores
É um software que interromperá o fluxo de controle usual e permitirá que seja executado um outro código (específico da aplicação).
Funcionamento em O.O.
Oferecida a A uma interface local igual à oferecida pelo objeto B.
A chamada por A é transformada em uma invocação a objeto genérico, possibilitada por meio de uma interface geral de invocação de objeto oferecida pelo middleware na máquina em que A reside.
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 de A.
slide 35/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Funcionamento de um Interceptador
slide 36/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
2.3.2 Abordagens gerais para software adaptativo
É necessário adaptar sistemas distribuídos por vários motivos, como hardware defeituoso ou esgotamento de bateria. Isso levou aos softwares adaptativos, que são responsáveis por reagir a essas mudanças.
Separação de Interesses – Separa as partes que implementam funcionalidades das que cuidam de funcionalidades extras. Além disso, entrelaça os interesses cruzados em um sistema distribuído (software orientado a aspecto).
Reflexão computacional – Programa inspeciona a si mesmo e, se necessário, adapta-se ao ambiente.
Projeto baseado em componente – adaptação por meio de composição.
slide 37/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Autogerenciamento em SDs
Modelo de realimentação e controle
slide 38/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Exemplo: Monitoração de sistemas com Astrolabe
slide 39/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Exemplo: diferenciação de estratégias de replicação em Globule
slide 40/40
Capítulo 2 - Arquiteturas
www.pearson.com.br
Andrew S. Tanenbaum
Maarten Van Steen
Exemplo: gerenciamento automático de conserto de componente em Jade
Jade – Sistema de monitoramento e manutenção de clusters – detecta falhas e substitui componente defeituosos automaticamente.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando