arquitetura de sistemas distribuídos - .::dcc ... · para controlar a complexidade de um sistema...

35
1 Sistemas Distribuídos Gustavo Reis [email protected] Arquitetura de Sistemas Distribuídos

Upload: lycong

Post on 07-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

1

Sistemas Distribuídos

Gustavo Reis

[email protected]

Arquitetura de Sistemas Distribuídos

Page 2: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 3: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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)

Page 4: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 5: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 6: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 7: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 8: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 9: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 10: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 11: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 12: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 13: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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ó

Page 14: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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ó

Page 15: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 16: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 17: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 18: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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}

Page 19: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 20: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 21: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 22: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 23: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 24: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 25: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 26: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 27: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

27

- Arquiteturas de Sistemas

Arquiteturas x Middleware

Interceptadores:

Page 28: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

28

- Arquiteturas de Sistemas

Arquiteturas x Middleware

Interceptadores:

Page 29: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 30: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 31: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 32: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 33: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 34: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

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

Page 35: Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema ... 160 bits de um grande espaço de identificadores Da mesma forma os nós ... Toda

35

- Arquiteturas de Sistemas

Arquiteturas x Middleware

Autogerenciamento em Sistemas Distribuídos

Modelo de realimentação de controle