arquitetura de sistemas distribuídos - .::dcc ... · para controlar a complexidade de um sistema...
TRANSCRIPT
2
- Arquitetura
Em sistemas distribuídos a meta é separar aplicações das plataformas subjacentes, provendo uma camada de middleware
Para controlar a complexidade de um sistema distribuído é crucial que esse seja organizado adequadamente
A arquitetura deve informar como os vários componentes devem ser organizados e como devem interagir
3
- Arquitetura
Objetivo: proporcionar transparência de distribuição
É preciso fazer compromissos para conseguir transparência de distribuição, resultando em várias técnicas para tornar o middleware adaptativo
Sistemas autonômicos: sistema distribuído que monitora o próprio comportamento e toma as providências adequadas quando necessário (contexto)
4
- Estilos Arquitetônicos
Formado por componentes
Como estes componentes estão conectados entre eles
Os dados trocados entre eles
Forma como este elementos são configurados em conjunto para formar um sistema
Um componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu ambiente. Desde que sejam respeitadas suas interfaces
5
- Estilos Arquitetônicos
Principais estilos arquitetônicos para sistemas distribuídos
Camadas: um compontente da
camada Ni tem permissão de chamar
componentes da camada Ni-1
Modelo adotado
amplamente pela
comunidade de rede
6
- Estilos Arquitetônicos
Principais estilos arquitetônicos para sistemas distribuídos
Objetos: cada objeto corresponde a um componente
Estes componentes estão
conectados por meio de
uma chamada de
procedimento remoto
7
- Estilos Arquitetônicos
Principais estilos arquitetônicos para sistemas distribuídos
Centrada em dados: processos se comunicam através de um repositório comum.
Ex.: sistemas que fazem uso sistemas de arquivos distribuídos
8
- Estilos Arquitetônicos
Principais estilos arquitetônicos para sistemas distribuídos
Eventos: processos publicam os eventos após os quais o middleware assegura que somente os processos que se subscreveram para esses eventos os receberão
9
- Arquiteturas de Sistemas
Organização dos sistemas distribuídos de acordo com a localização dos componentes que compõem o software
Arquiteturas centralizadas
Processos divididos dois grupos
Servidor: processo que implementa serviços específicos. Ex.: serviços de sistemas de arquivos ou banco de dados
Cliente: processo que requisita um serviço do servidor
10
- Arquiteturas de Sistemas
Arquiteturas centralizadas
Camadas de aplicação: dividido em três níveis, visando sempre o suporte ao acesso de usuários a banco de dados
11
- Arquiteturas de Sistemas
Arquiteturas centralizadas
Arquiteturas multidivididas: uma abordagem para para organizar clientes e servidores é distribuir os programas presentes nas camadas de aplicação por máquinas diferentes
12
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Subdivisão em partes lógicas equivalentes do cliente ou servidor onde cada parte está operando em sua própria porção do conjunto como um todo
Ex.: P2P
Cada processo age como
cliente e servidor
(servente)
Os processos se organizam
em uma redes de
sobreposição
13
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Rede de sobreposição criada através de um procedimento determinístico
Tabela hash distribuída
Os itens de dados recebem uma chave aleatória de 128 ou 160 bits de um grande espaço de identificadores
Da mesma forma os nós também recebe uma chave aleatória
Ponto crucial: implementar sistema eficiente e determinístico para mapear exclusivamente a chave de um item de dado a um único nó
14
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Ex.: sistema Chord• Rede em anel• Identificador do item de
dado menor que a chave
do nó
15
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Ex.: sistema Chord• Entrada de um nó
10 2
7
9
8
0 1
3
4
56
{0,1}
{2,3,4,5}
{6,7,8,9,10}
Sucessor = 1 Predecessor = 5
Sucessor = 10Predecessor = 1
16
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Ex.: sistema Chord• Entrada de um nó
10 2
7
9
8
0 1
3
4
56
{0,1}
{2,3,4,5}
{6,7,8,9,10}
1- Gera aleatoriamente um valor = 82- Pesquisa o endereço do nó com a chave 8
Sucessor = 1 Predecessor = 5
Sucessor = 10Predecessor = 1
17
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Ex.: sistema Chord• Entrada de um nó
10 2
7
9
8
0 1
3
4
56
{0,1}
{2,3,4,5}
{6,7,8,9,10}
Sucessor = 10Predecessor = 5
Sucessor = 1 Predecessor = 8
Sucessor = 8Predecessor = 1
18
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer estruturadas
Ex.: sistema Chord• Entrada de um nó
10 2
7
9
8
0 1
3
4
56
{0,1}
{2,3,4,5}
{9,10}
{6,7,8}
19
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer não estruturadas
Em grande parte depende de algoritmos aleatórios para construir uma rede de sobreposição
Cada nó mantém uma lista aleatória de vizinhos
Itens de dados colocados de forma aleatório em cada nó
Para encontrar um item de dado deve inundar a rede com uma consulta de busca
20
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Peer-to-peer não estruturadas
Em grande parte depende de algoritmos aleatórios para construir uma rede de sobreposição
Cada nó mantém uma lista aleatória de vizinhos
Itens de dados colocados de forma aleatório em cada nó
Para encontrar um item de dado deve inundar a rede com uma consulta de busca
21
- Arquiteturas de Sistemas
Arquiteturas descentralizadas
Superpares (superpeers)
Nós especiais que mantém índice de itens de dados
Tentativa de eliminar
as inundações de
mensagens
Todo par comum está
conectado como
cliente a um superpar
Toda comunicação de
e para um par comum
ocorre por meio do superpar
22
- Arquiteturas de Sistemas
Arquiteturas híbridas
Aspectos arquitetônicos combinados (cliente servidor e P2P)
Sistemas de servidor de borda
Internet Service Provider (ISP)
Disponibilizam servidores de borda para otimizar distribuição de conteúdo e de aplicação
23
- Arquiteturas de Sistemas
Arquiteturas híbridas
Sistemas distribuídos colaborativos
Esquema cliente-servidor para dar a partida na comunicação
Após a junção do nó ao sistema toda a comunicação é descentralizada
Um arquivo .torrent contém de um rastreador que possui uma lista precisa dos nós ativos que tem o arquivo requisitado
24
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Middleware é uma camada entre aplicações e plataformas distribuídas
Tem a finalidade de proporcionar um certo grau de transparência de distribuição, ocultado até certo ponto das aplicações a distribuição dos dados, processamento e controle
Sistemas de middleware seguem um estilo arquitetônico.
Ex.: baseados em objeto ou em eventos
25
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Outra intenção do middleware é que soluções específicas deveriam ser adaptáveis a requisitos de aplicação
Existência de várias versões do middleware onde cada uma seja projetada para uma classe específica de aplicação
Uma abordagem seria a simplicidade de configurar, adaptar e personalizar conforme necessário para cada aplicação
26
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Interceptadores:
Tem o objetivo de interromper o fluxo de controle usual e permitir que seja executado um outro código
Ex.: Um objeto A chama um método de B (que está remoto)
Abordagem de 3 etapas:• É oferecida ao objeto A uma interface local do
objeto B• A chamada por A é transformada em uma invocação
de objeto genérico• A invocação é transformada em uma mensagem
que é enviada pela rede
27
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Interceptadores:
28
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Interceptadores:
29
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Abordagens gerais para software adaptativo
Os adaptadores oferecem um meio de adaptar o middleware
Resultado do fato pelo qual os ambientes (meios de comunicação) estão sempre mudando
Motivado pela mobilidade, variância na qualidade do serviço de redes, hardware defeituoso, esgotamento da bateria, etc
30
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Abordagens gerais para software adaptativo
Três técnicas para chegar à adaptação:
1) Separação de interesse: relacionado com o modo tradicional de modularizar sistemas. Separar as partes de interesse. Ex.: confiabilidade, desempenho, segurança, etc
2) Reflexão computacional: capacidade de um programa inspecionar a si mesmo e, se necessário, adaptar seu comportamento
3) Projeto baseado em componente: suporte adaptação por meio de composição. Um sistema pode ser configurado estaticamente durante a elaboração do projeto ou dinamicamente em tempo de execução
31
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Abordagens gerais para software adaptativo
Argumento forte de sistema adaptativo → substituição e atualização de componentes durante o funcionamento do sistema sem seu deslligamento
Sistemas distribuídos devem ser capazes de reagir a mudanças em seu ambiente
O desafie é deixar que tal comportamento reativo ocorra sem intervenção humana
32
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Autogerenciamento em Sistemas Distribuídos
Sistemas distribuídos precisam fornecer soluções gerais de blindagem contra aspectos indesejáveis inerente a redes
Computação autonômica (autogerenciadora): sistemas distribuídos com sistemas de realimentação de controle de alto nível que permite adaptação automática
33
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Autogerenciamento em Sistemas Distribuídos
Sistemas distribuídos precisam fornecer soluções gerais de blindagem contra aspectos indesejáveis inerente a redes
Computação autonômica (autogerenciadora): sistemas distribuídos com sistemas de realimentação de controle de alto nível que permite adaptação automática
34
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Autogerenciamento em Sistemas Distribuídos
Modelo de realimentação de controle• Em sistemas autogerenciadores a adaptação
ocorre por meio de um ou mais laços de realimentação de controle
• O núcleo de um sistema de realimentação de controle é formado pelos componentes que precisam ser gerenciados
• Três elementos que formam o laço de realimentação de controle: componente de estimativa de medição, componente de análise de realimentação e medidas de ajuste
35
- Arquiteturas de Sistemas
Arquiteturas x Middleware
Autogerenciamento em Sistemas Distribuídos
Modelo de realimentação de controle