Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema...

Post on 07-Nov-2018

220 views 0 download

Transcript of Arquitetura de Sistemas Distribuídos - .::DCC ... · Para controlar a complexidade de um sistema...

1

Sistemas Distribuídos

Gustavo Reis

gustavo.reis@ifsudestemg.edu.br

Arquitetura de Sistemas Distribuídos

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