Material de aula da disciplina de Sistemas Distribuídos ministrada na Faculdade Dom Luiz de Orleans e Bragança no curso Tecnólogo de Redes de Computadores
1. ARQUITETURA DE SOFTWARE
•Definição (vários componentes, sua organização e como
interagem)
•Importante (separar aplicações das camadas subjascentes
provendo uma camada de middleware)
•Tornar o middleware adaptativo)
•Adaptabilidade (monitorar seu próprio comportamento e
tomar decisões) – sistemas autonômicos
SISTEMAS DISTRIBUÍDOS - Arquiteturas
2. 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 - em geral descrito como um mecanismo da
comunicação ou da cooperação entre componentes
SISTEMAS DISTRIBUÍDOS - Arquiteturas
3. ESTILOS ARQUITETÔNICOS
Arquitetura em camadas
•Componentes organizados em camadas, onde
componentes da camada Li pode chamar métodos da
camada Li-1, mas não o contrário;
Arquiteturas baseadas em objetos
•Objetos correspondem às definições de componentes, que
são conectados por meio de chamadas de procedimento
remotas;
SISTEMAS DISTRIBUÍDOS - Arquiteturas
4. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ESTILOS ARQUITETÔNICOS
(A) EM CAMADAS E (B) BASEADO EM OBJETOS
5. ESTILOS ARQUITETÔNICOS
Arquiteturas centradas em dados
•Processos se comunicam por meio de repositório comum
(passivo ou ativo);
Arquiteturas baseadas em eventos
•Processos se comunicam por meio de propagação de
eventos que podem transportar dados;
•Sistemas Publicar/Subscrever;
•São referencialmente desacoplados.
•Espaços compartilhados de dados, com arquiteturas
baseadas em eventos juntamente com centradas em
dados.
SISTEMAS DISTRIBUÍDOS - Arquiteturas
6. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ESTILOS ARQUITETÔNICOS
(A) BASEADOS EM EVENTOS E
(B) CENTRADAS EM DADOS
8. Arquiteturas Centralizadas
• Modelo Cliente-Servidor
• Problemas: Orientado ou não-orientado a conexão
(TCP ou UDP)?
ANDREW S. TANENBAUM
MAARTEN VAN STEEN
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS CENTRALIZADAS
9. ARQUITETURAS CENTRALIZADAS
Cliente-servidor básico
•Camadas de Aplicação
•Divididas em 3 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
SISTEMAS DISTRIBUÍDOS - Arquiteturas
10. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS CENTRALIZADAS
ORGANIZAÇÃO EM 3 CAMADAS DE APLICAÇÃO
UMA MECANISMO DE BUSCA DA INTERNET
11. ARQUITETURAS CENTRALIZADAS
Distribuição Física
Arquitetura de duas divisões (físicas) é distribuída da
seguinte forma:
1. 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
2. Uma máquina do servidor que contém todo o resto,
ou seja, os níveis de processamento e de dados.
SISTEMAS DISTRIBUÍDOS - Arquiteturas
12. •Alternativas de distribuição
•Cliente Magro e Cliente Gordo
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS CENTRALIZADAS
ARQUITETURAS MULTIDIVIDIDAS.
13. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
•Arquitetura de três divisões (físicas)
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS CENTRALIZADAS
ARQUITETURAS MULTIDIVIDIDAS.
15. ARQUITETURAS DESCENTRALIZADAS
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”)
SISTEMAS DISTRIBUÍDOS - Arquiteturas
16. ARQUITETURAS DESCENTRALIZADAS
Distribuição horizontal
•Rede de Sobreposição (uma rede na qual os nós são
formados pelos processos e os enlances representam os
canais de comunicação possível)
•Estrutura
•Não Estruturadas
SISTEMAS DISTRIBUÍDOS - Arquiteturas
19. ARQUITETURAS DESCENTRALIZADAS
Peer-to-peer Estruturado
Sistema Chord
Gerenciamento de associação de grupo
Ao entrar no sistema, o nó recebe um identificador aleatório
id.
• Pesquisa em id retorna o endereço de rede succ(id).
• Novo no contata succ(id) e seu predecessor e se insere
no anel.
• Na partida, o no envia os dados para o succ(id).
Sair – nó informa sua saída ao predecesso e sucessor e
transfere seus itens de dados para succ(id)
SISTEMAS DISTRIBUÍDOS - Arquiteturas
21. ARQUITETURAS DESCENTRALIZADAS
Peer-to-peer Não Estruturado
Algoritmos aleatório para construir rede de sobreposição.
Rede de sobreposição parecida com um gráfico aleatório
Visão Parcial
Thread Ativo (se comunica com outro nó e seleciona esse
nó de acordo com sua visão parcial corrente)
Thread Passivo (nó passivo também formará sua visão
parcial)
Grau interno de um nó (conjunto de nós cujo a suas visões
parciais se refere a P)
Evitar gargalo de nós ou nó comum
SISTEMAS DISTRIBUÍDOS - Arquiteturas
23. ARQUITETURAS DESCENTRALIZADAS
Peer-to-peer Não Estruturado
Gerenciamento de Topologia de redes de sobreposição
Função de ordenação (simples – distância crescente de um nó)
Topologia Toro -> tempo X camada não etruturada
Proximidade semântica
Redes Semânticas de sobreposição
SISTEMAS DISTRIBUÍDOS - Arquiteturas
25. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
•Sistemas de servidor de borda (Internet)
•Sistemas colaborativos (Torrent)
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS HÍBRIDAS
26. •Rede Colaborativa de distribuição de conteúdo Globule
•Colaboram com réplicas de páginas
•Componentes do servidor:
•Um componente que pode redirecionar requisições de clientes a
outros servidores
•Um componente para analisar padrões de acesso.
•Um componente para gerenciar as replicações de páginas web
•Servidor de origem
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS HÍBRIDAS
27. SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS HÍBRIDAS
BitTorrent
Peer-to-peer de transferência de arquivo(download)
Reciprocidade (ajudar outras com download).
arquivos .torrent, contém as informações necessárias para
transferir um ou mais arquivos específicos
Rastreador – servidor que está mantendo uma
contabilidade precisa de nós ativos que tem o arquivo
requisitado
O gargalo dos servidores são os rastreadores
Redução de taxa para quem não colabora
28. ANDREW S. TANENBAUM
MAARTEN VAN STEEN
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS HÍBRIDAS
FUNCIONAMENTO DO BITTORRENT
30. •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);
•Tibico (baseado em eventos)
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS VERSUS MIDDLEWARE
31. •Simplifica os projetos de aplicação
•Não é 100% adaptável aos requisitos da aplicação
•Seria necessário configurar, adaptar e personalizar
•Introdução de Políticas e Mecanismo
•Mecanismo modificando o comportamento
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS VERSUS MIDDLEWARE
32. •Interceptadores
•Processo de sistema distribuído baseado em objetos
•É oferecido ao objeto A uma interface local que é exatamente a
mesma oferecida pelo objeto B. A simplesmente chama o método
disponível na interface.
•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 local
A
SISTEMAS DISTRIBUÍDOS - Arquiteturas
ARQUITETURAS VERSUS MIDDLEWARE
34. SOFTWARE ADAPTATIVO
Separação de interesses
confiabilidade; desempenho,segurança
Programação orientada a aspectos
Reflexão computacional
inspecionar a si mesmo e adaptar comportamento
gerenciar a complexidade de sistemas distribuídos em
grande escala
Projeto baseado em componente
Adaptação por composição
SISTEMAS DISTRIBUÍDOS - Arquiteturas
35. AUTOGERENCIAMENTO SISTEMAS DISTRIBUÍDOS
Arquitetura de software preparada para adaptação
Monitoração e ajustes
Decidir onde deve ser executados os processos de
manipulação de adaptação
Sistemas de computação autonômica
Sistema auto – autogerenciador, auto-reparador, auto-
configurador, auto-otimizador
SISTEMAS DISTRIBUÍDOS - Arquiteturas