aula03 sistemas distribuídos - arquiteturas de sistemas distribuídos

125
Arquiteturas CURSO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS DISTRIBUÍDOS PROF. MESSIAS R. BATISTA

Upload: messias-batista

Post on 22-Jan-2018

777 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas

CURSO DE CIÊNCIA DA COMPUTAÇÃO

DISCIPLINA DE SISTEMAS DISTRIBUÍDOS

PROF. MESSIAS R. BATISTA

Page 2: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Estilos Arquitetônicos

2

Page 3: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Introdução

▫ Como é organizado um sistema distribuído?

▪ Distinguir organização lógica dos componentes de software;

▪ Realização física;

▫ Sistemas distribuídos

▪ Componentes de software

▫ Arquitetura de software

3

Page 4: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Introdução

▫ Arquitetura de software (ou de sistema)

▪ Arquiteturas centralizadas

▪ Arquiteturas descentralizadas

4

▫ Arquiteturas centralizadas

Tradicionais. Um único servidor implementa a maioria dos componentes;

▫ Arquiteturas descentralizadas

As máquina desempenham papéis mais ou menos iguais, bem como organizações híbridas.

Page 5: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“[...] uma meta importante de

sistemas distribuídos é separar aplicações das

plataformas subjacentes provendo uma camada de

middleware.

5

Page 6: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

6

Page 7: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Middleware

▫ É necessário conseguir ummiddleware adaptativo;

▫ Sistemas distribuídos devemmonitorar seu funcionamento

▪ Sistemas autonômicos

7

Page 8: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Estilos Arquitetônicos

8

Page 9: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

9

O quanto é crucial adotar uma

arquitetura desoftware para um projeto?

Page 10: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Estilo Arquitetônico

10

▫ Formulado com base nos componentes que ocompõe;

▫ A forma de conexão dos componentestambém é importante;

▫ Os dados trocados entre os componentes;

▫ A forma de configuração desse conjunto deelementos;

Composição do Sistema Distribuído com base no estilo arquitetônico

Page 11: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Um componente é uma unidade modular com

interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu

ambiente

11

Page 12: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Componente

12

▫ É passível de substituição;

▫ Necessário respeitar as interfaces;

E os conectores?

Page 13: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Conector [...] é descrito como um mecanismo que serve de mediador da comunicação ou

da cooperação entre componentes

13

Page 14: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Componentes e Conectores

14

Page 15: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Importantes Estilos Arquitetônicos

15

1. Arquiteturas em camadas;

2. Arquiteturas baseadas em objetos;

3. Arquiteturas centradas em dados;

4. Arquiteturas baseadas em eventos;

Configurações a partir de Componentes e Conectores

Page 16: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas em camadas

16

▫ Componentes são organizados em camadas;

▫ O componente da camada Li pode chamar um componente subjacente Li-1;

▫ Modelo amplamente adotado pela comunidade de redes;

▫ Requisições descem pela hierarquia;

▫ Resultados (respostas) fluem para cima;

Page 17: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas em camadas

17

Page 18: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas em camadas

18

Page 19: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura baseada em objetos

19

▫ Cada objeto corresponde a definição de um componente;

▫ Os componentes são conectados por uma chamada de procedimento remoto;

▫ É um modelo de arquitetura que se ajusta ao sistema cliente-servidor;

▫ Configuram-se em um estilo importante para sistemas de software de grande porte.

Page 20: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura baseada em objetos

20

Page 21: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura centrada em dados

21

▫ Processos se comunicam por meio de umrepositório comum;

▫ Tem grau de importância similar as baseadas emcamadas e objetos;

▫ Funcionamento:

Trabalha com o compartilhamento de arquivos.

Page 22: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura centrada em dados

22

Page 23: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura baseada em eventos

23

▫ Processos se comunicam por meio da propagação de eventos;

▫ Podem também transportar dados;

▫ Associa-se a sistemas publica/subscrever;

▫ Processos fracamente acoplados;

▪ Podem ser desacoplados;

▪ Ou, referencialmente desacoplados.

Page 24: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“A ideia básica é que processos

publiquem eventos após os quais o middleware assegura

que somente os processos que se subscreveram para

esses eventos os receberão.

24

Page 25: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquitetura baseada em eventos

25

Arquiteturas baseadas em eventos, podem se

complementar com arquiteturas baseadas em dados

Page 26: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Espaços compartilhadosde Dados

▫ Os processos são desacoplados no tempo;

▪ Não precisa que ambos estejam ativos para haver comunicação;

▫ Utilizam interfaces semelhantes à SQL;

▪ Os dados são acessados por descrição;

▫ Não precisam ser acessados por referência explícita.

26

Page 27: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“O que torna essas arquitetura de software importantes para

sistemas distribuídos é que todas elas visam obter

transparência de distribuição, em um nível razoável.

27

Page 28: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas de Sistemas

Arquiteturas

28

Page 29: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Decidir a respeito de

componentes de software, sua interação e sua colocação leva a

um exemplo de uma arquitetura de software

também denominada arquitetura de sistema.

29

Page 30: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas Centralizadas

ArquiteturasArquiteturas de Sistemas

30

Page 31: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“[...] pensar em termos de clientes que requisitam

serviços de servidores nos ajuda a entender e gerenciar a complexidade de sistemas

distribuídos [...]

31

Page 32: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Servidor e Cliente

32

▫ Servidor

▪ É um processo que implementa umserviço específico;

▫ Cliente

▪ É um processo que requisita um serviçode um servidor enviando-lhe umarequisição e, na sequência, esperandopela resposta do servidor.

Page 33: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Comportamento

Comportamento de requisição-resposta

33

Page 34: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

34

Page 35: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Fases da Requisição-Resposta

35

1. Um cliente requisita um serviço;

▪ Empacota uma mensagem para oservidor identificando o serviço que quer,junto com os dados necessários.

2. O servidor sempre vai esperar a chegada deuma requisição;

▪ Processará e empacotará os resultadosem uma mensagem de resposta que éenviado ao cliente;

Page 36: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Cuidados!

36▫ Protocolos que não exigem conexão são mais

eficientes;

▪ Eficiência: Faz a tarefa designa da maneiramenos custosa;

▫ Problema:

▪ as mensagens não podem se perder ou seremcorrompidas;

▫ Dificuldade:

▪ desenvolver um protocolo que seja resistentea ocasionais falhas de transmissão.

Page 37: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

37

E se o cliente não receber a mensagem de resposta o

que fazer neste caso?

Page 38: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Analisando...

38

Transfira $10.000 de minha conta

Reenviar a resposta

Page 39: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Analisando...

39

Informe quanto dinheiro ainda tenho.

Reenviar a resposta

Page 40: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Soluções?

40

▫ Operações que podem ser repetidas várias vezessem causar dano são chamadas de idempotente;

▫ Não existe soluções únicas para tratamento demensagens perdida;

▫ Alternativa é a utilização de protocolos confiáveisorientados a conexão;

▫ Garantindo que sempre que um cliente requisitouum serviços, antes ele estabeleceu uma conexãocom o servidor e só em seguida enviou arequisição.

Não há!

Page 41: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Camadas de Aplicação

41

Page 42: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Camadas de Aplicação

42

▫ Como estabelecer uma distinção clara entreum cliente um servidor?

▪ Um servidor para um banco de dadosdistribuídos pode agir continuamente comoum cliente porque está repassandorequisições para diferentes servidores dearquivos responsáveis pela implementaçãodas tabelas do banco de dados.

▪ Processa consultas;

Abordagem 1

Page 43: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Camadas de Aplicação

43

É possível analisar criando uma distinção entre três níveis, seguindo o estilo

arquitetônico em camadas.

1. Nível de interface de usuário

2. Nível de processamento

3. Nível de dados

Abordagem 1

Page 44: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Camadas

1. Nível de interface de usuário

2. Nível de processamento

3. Nível de dados

44

Page 45: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

45

Page 46: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“O nível de interface de

usuário conteúdo que é necessário para fazer

interface diretamente com o usuário como gerenciamento

de exibição.

46

Page 47: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“O nível de processamentonormalmente contem as

aplicações.

47

Page 48: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“O nível de dados gerencia os

dados propriamente ditos sobre os quais está sendo executada alguma ação.

48

Page 49: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Conclusão

1. Manipula a interação com ousuário;

2. Intermediária. Mantém afuncionalidade central daaplicação;

3. Age sobre o banco de dadosou sistema de arquivos;

49

Page 50: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

50

Palavras-chave

Busca no banco de

Dados

Page 51: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

51

Page 52: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Nível de Dados

52

▫ Os dados costumam ser persistentes, e isso éuma propriedade importante desse nível;

▫ Quando não aplicações utilizando esse nível, osdados continuam armazenados aguardando apróxima utilização;

▫ “O nível de dados consiste em um sistema dearquivo, porém é mais comum utilizar um bancode dados plenamente capacitado”;

▫ É implementado no lado do servidor;

Importante!

Page 53: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Nível de Dados

53

▫ É responsável por manter a consistência dosdados em diferentes aplicações;

▫ Pode utilizar recursos como triggers paramanipular disparos de informação;

▫ Ambientes orientados a negócios utilizam bancosde dados relacionais;

▫ A organização dos dados é independente dasaplicações;

Importante!

Page 54: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Nível de Dados

54

“[...] nem sempre bancos de dados relacionaissão a opção ideal. Um aspecto característico demuitas aplicações é que elas operam sobretipos de dados complexos cuja modelagem émais fácil em termos de objetos do que emtermos de relações”

Conhecem o termoPersistência Poliglota?

Importante!(Detalhe)

Page 55: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

55

Page 56: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

56

Page 57: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas Multidivididas

57

Page 58: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“A distinção entre três níveis

lógicos [...], sugere várias possibilidades para a

distribuição física de uma aplicação cliente-servidor por

várias máquinas.

58

Page 59: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Cliente-Servidor

59

▫ Máquina cliente

▪ Contém apenas os programas queimplementam o nível (parte do nível) deinterface de usuário.

▫ Máquina do servidor

▪ Contém o resto, ou seja, os programasque implementam o nível deprocessamento e de dados.

De fato, o que temos?

Page 60: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Nessa organização, tudo é

manipulado pelo servidor, ao passo que, em essência, o

cliente nada mais é do que um terminal burro, possivelmente

com uma interface gráfica bonitinha.

60

Page 61: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

61

Page 62: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

62

Consideramos o fato de que o servidor pode ser

um cliente também?

É possível? Exemplifique.

Page 63: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

63

Page 64: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Clientes gordosX

Clientes Magros

64

Page 65: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Distribuição vertical

65

“[...] da perspectiva e gerenciamento desistema, ter uma distribuição vertical podeajudar: funções são subdivididas lógica efisicamente por várias máquinas, e cadamáquina é projetada para um grupo específicode funções”

Page 66: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas Descentralizadas

ArquiteturasArquiteturas de Sistemas

66

Page 67: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Distribuição horizontal

67

“Em arquiteturas modernas, muitas vezes é adistribuição dos clientes dos servidores que conta àqual nos referimos como distribuição horizontal”

▫ O cliente ou o servidor podem ser subdivididosfisicamente em partes logicamente equivalentes;

▪ Cada parte opera em sua própria porção doconjunto;

▪ Busca-se o equilíbrio da carga;

▫ Exemplo: peer-to-peer

Page 68: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Peer-to-peer

68

“De uma perspectiva de alto nível, os processosque constituem um sistemas peer-to-peer sãotodos iguais, o que significa que as funções queprecisam ser realizadas são representadas portodo processo que constitui o sistemadistribuído”

Page 69: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Peer-to-peer

69

▫ Organizam os processos por meio de umatabela de hash distribuída (Distributed HashTable – DHT);

▫ DHT implementa um mapeamento de chavedo item para um nó baseando por distânciasmétricas;

Redes Estruturadas

Page 70: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Sistema Chord

70

Peer-to-peerRedes Estruturadas

Page 71: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

71

Page 72: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Peer-to-peer

72

▫ Dependem de algoritmos aleatórios paraconstruir uma rede de sobreposição;

▫ Cada nó mantém uma lista de vizinhos, queé construída de modo aleatório;

▫ Admite-se que itens de dados sejamcolocados aleatoriamente em nós;

▫ A busca de um item de dado na rede érealizada por uma consulta em toda a rede;

Redes Não-Estruturadas

Page 73: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Peer-to-peer

73

▫ O grande foco desta arquitetura é ogerenciamento de associação ao grupo;

▫ Sua estrutura é similar a um gráficoaleatório;

▫ Cada nó mantém um lista de vizinhos, nósvivos;

▫ A lista de vizinhos é denominada visãoparcial;

Redes Não-Estruturadas

Page 74: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Peer-to-peer

74

▫ A construção de uma nova visão:

▪ Os nós descartam as entradas criadasentre eles;

▪ Ou, os nós descartam o maior númeropossível de entradas velhas;

Redes Não-Estruturadas

Page 75: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“[...] quando um nó quer se

juntar ao grupo, ele contata um outro nó arbitrário,

possivelmente de uma lista de pontos de acesso bem

conhecidos.

75

Page 76: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Problema!

76

Gargalo criado em apenas um nó!

Page 77: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Gerenciamento de Topologia de Redes de Sobreposição

77

Page 78: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Embora possa parecer que

sistemas peer-to-peerestruturados e não

estruturados formem classes estritamente independentes, na

verdade pode não ser esse o caso.

78

Page 79: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

79

Page 80: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Superpares (superpeers)

80

Page 81: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Superpares

81

▫ P2P não estruturados podem se tornar problemáticos à medida que crescem;

▫ Problema de escalabilidade:

▪ Não roteamento da requisição de pesquisa até um item de dado específico;

▪ Única técnica é enviar a pesquisa para toda a rede;

▫ Solução (possível):

▪ Nós intermediários, ou superpares;

Page 82: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Superpares

82

▫ Superpares:

▪ São organizados em redes P2P;

▪ Resultam em organização hierárquica;

▫ Todo par comum estará conectado como um cliente a um superpar;

▫ A relação cliente-superpar é fixa;

▪ Sempre que um cliente se junta à rede, ele se liga a um dos superpares e continua até sair da rede;

Page 83: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

83

Page 84: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas Híbridas

ArquiteturasArquiteturas de Sistemas

84

Page 85: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“[...] soluções cliente-

servidor são combinadas com arquiteturas descentralizadas.

85

Page 86: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Sistemas de servidor de borda

86

Page 87: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Sistemas de Servidor de Borda

87

▫ São sistemas disponibilizados na internet onde servidores são colocados “na borda” da rede;

▫ Usuários finais, ou clientes em geral, se conectam com a Internet por meio de um servidor de borda;

▫ Sua finalidade é servir conteúdo;

▫ Um conjunto de servidores de borda podem ser usados para otimizar distribuição de conteúdo e de aplicação;

Page 88: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

88

Page 89: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Sistemas Distribuídos Colaborativos

89

Page 90: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Estruturas híbridas são

disponibilizadas notavelmente em sistemas distribuídos colaborativos.

A questão principal em muitos desses sistemas é conseguir dar a partida, para o que muitas vezes é

disponibilizado um esquema cliente-servidor tradicional.

90

Page 91: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

BitTorrent

91▫ Quando um usuário final estiver procurando um

arquivo, ele também possa transferir porçõespara outros usuários;

▫ Assim, cria-se um conjunto de porções sendotransferidas;

▫ A importância do projeto está na colaboração;

▫ Problema: quando existe grande quantidade deusuários objetivando apenas obter os arquivos;

▫ Portanto, “um arquivo só pode ser transferidoquando o cliente que está transferindo estiverfornecendo conteúdo a mais alguém”;

Page 92: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

92

Page 93: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas versusMiddleware

Arquiteturas

93

Page 94: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

94

Falamos sobre middelware?

Onde eles se encaixam?

Page 95: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

[...] o middleware forma uma camada entre aplicações e plataformas distribuídas

95

Lembrando

Page 96: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Middleware

96

▫ Finalidade: proporcionar um grau detransparência de distribuição;

▫ Seguem um estilo arquitetônico específico;

▫ A especificidade do estilo arquitetônico é parasimplificar projetos de aplicações;

▫ Apesar de sua finalidade, considera-se tê-lo paraser mais adaptável as requisições de aplicação;

Page 97: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Middleware

97

“Uma abordagem geral consideramelhor é fazer sistemas de middlewarede modo que sejam simples deconfigurar, adaptar e personalizarconforme necessário para umaaplicação.”

Page 98: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Interceptadores

98

Page 99: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Interceptador

99

▫ É um constructo de software que interromperá ofluxo de controle usual e permitirá que sejaexecutado um outro código;

▫ Funciona com alto suporte em sistemasdistribuídos orientado à objetos;

▫ Um objeto A pode chamar um método quepertence a um objeto B enquanto este residir emuma máquina diferente de A.

Page 100: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Interceptador

100

A invocação remoto é realizada em três etapas:

1. É oferecida ao objeto A uma interface local que éexatamente a mesma oferecida pelo objeto B. Asimplesmente chama o método disponível naquelainterface;

2. A chamada por A é transformada em uma invocação aobjeto genérico, possibilitada por meio de umainterface geral de invocação de objeto oferecida pelomiddelware na máquina em que A reside;

3. Por fim, a invocação a objeto genérico é transformadaem uma mensagem que é enviada por meio de umainterface de rede de nível de transporte como oferecidapelo sistema operacional local de A.

Page 101: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

101

Page 102: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Abordagens gerais para o software adaptativo

102

Page 103: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Software Adaptativo

103

▫ Interceptadores oferecem um meio de adaptar omiddleware;

▫ A necessidade de adaptação surge do ambientedas aplicações distribuídos, que estão sempremudando;

▪ O middleware retira da aplicação a reação amudanças;

▫ Projetistas de middleware passam a considerar aconstrução de software adaptativo;

Abordagens gerais

Page 104: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

104

E como podemos chegar ao software adaptativo?

Page 105: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Software Adaptativo

105

1. Separação de interesses;

2. Reflexão computacional;

3. Projeto baseado em componente;

Três técnicas

Page 106: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Software Adaptativo

106

▫ Separar as partes que implementam funcionalidade dasque cuidam de outras coisas;

▫ Neste contexto:

▪ Desenvolver um middleware para aplicaçõesdistribuídas é o mesmo que manipularfuncionalidades extras independentemente deaplicações;

▫ A dificuldade está na modularização;

▫ Modularizar e depois entrelaçar interesses cruzados é omesmo tema trabalhado por desenvolvimento desoftware orientado a aspecto;

Três técnicas1. Separação de Interesses

Page 107: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Software Adaptativo

107

▫ Pode ser compreendida como à capacidade de umprograma inspecionar-se, e adaptar-se quandonecessário;

▫ As linguagens de programações modernos, como oJava, permitem modificações em tempo de execução;

▫ Em sistemas distribuídos essa técnica ainda é umdesafio;

▪ Aplicar a técnica de reflexão a um extenso domíniode aplicação ainda está por acontecer;

Três técnicas2. Reflexão Computacional

Page 108: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Software Adaptativo

108

▫ É o suporte dado a adaptação por meio de composição;

▫ Sistemas que são configurados dinamicamente emtempo de execução suportam ligação tardia;

▪ Ligação tardia: técnica que tem sido aplicada comsucesso em ambientes que são necessário carregare descarregar módulos;

▫ A dificuldade está quando precisa existir a substituiçãode um componente e não é possível mapear os efeitosque haverá em outros componentes;

Três técnicas3. Projeto Baseado em Componente

Page 109: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Discussão

109

Page 110: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Discussão

110

▫ Situação: Requisitos extrafuncionais conflitam com ameta de transparência;

▫ Resultado: Middlewares com alta flexibilidade;

▫ “[...] assuntos como abertura são de igual importância,mas a necessidade de flexibilidade nunca foi tãopredominante como no caso do middleware”

▫ Assim, a necessidade se torna uma premissa:

▪ São necessárias softwares adaptativos no sentido deque permitir mudança à medida que o ambiente sealtera;

Page 111: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Discussão

111

Qual o argumento que sugere aexistência de um software adaptativono middleware de sistemasdistribuídos?

Page 112: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Discussão

112

“O argumento mais forte e por certo omais válido para suporte softwareadaptativo é que muitos sistemasdistribuídos não podem ser desligados”

Page 113: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Discussão

113

▫ Sistemas distribuídos devem ser capazes de reagira mudanças em seu ambiente;

▪ Exemplo: trocar de políticas de alocação derecursos;

▫ O desafio conclusivo é deixar estecomportamento reativo e sem a necessidade deintervenção humana;

Portanto...

Page 114: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Autogerenciamento em Sistemas Distribuídos

Arquiteturas

114

Page 115: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

“Sistemas distribuídos – e em especial seu middleware associado – precisam fornecer soluções gerais de blindagem contra aspectos indesejáveis inerentes a redes, de modo que possam suportar o maior número possível de aplicações.

115

Page 116: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Autogerenciamento

116

▫ Transparência de distribuição total não é focoprincipal da maioria das aplicações;

▫ Existe portanto um foco no conceito de softwareadaptativo;

▫ Quando a adaptação precisa ser automática:

1. Precisa-se organizar os componentes do sistemasdistribuído de modo a promover monitoramento eajustes;

2. Necessário decidir onde devem ser executados osprocessos que manipulam a adaptação;

Sistemas Distribuídos

Page 117: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Computação Autonômica

117

São sistemas de realimentação decontrole de alto nível que permitamadaptação automática a mudanças.

Ou Sistemas Auto

Page 118: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

O modelo de realimentação de controle

118

Page 119: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Modelo de Realimentação de Controle

119 ▫ Premissa: adaptações ocorrem por meio de um ou maislaços de realimentação de controle;

▫ Sistemas organizados por meios de laços sãoconhecidos como sistemas de realimentação decontrole;

▫ O núcleo de um sistema de realimentação decontrole é formado pelos componentes que precisamser gerenciados;

▫ O laço de realimentação de controle é formado por trêselementos:

▪ Componente de estimativa de medição;

▪ Componente de análise de realimentação;

▪ Medidas de ajustes (conjunto de componentes).

Page 120: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

120

Page 121: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Resumo

121

Page 122: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Resumo

122

▫ Sistemas Distribuídos podem ser organizados demodos diferentes;

▫ Existe distinção entre arquitetura de software earquitetura de sistema;

▪ Arquitetura de sistemas: os componentesque compõem o sistemas distribuídos estãocolocados nas várias máquinas;

▪ Arquitetura de software: preocupa-se com aorganização lógica. Como é realizada ainteração e como são estruturados doscomponentes.

Importante!

Page 123: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Resumo

123

▫ Estilo arquitetônico reflete a interação eorganização dos componentes que integram umsistema distribuído;

▫ Organização cliente e servido como importanteestrutura de um sistemas distribuído;

▫ Arquiteturas descentralizadas como a peer-to-peer;

▫ Sistemas autogerenciadores aumenta acapacidade de adaptação do sistema e minimizama intervenção humana;

Importante!

Page 124: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Referências

124

TANENBAUM, A. S.; STEEN, M. V. SistemasDistribuídos: princípios e paradigmas. 2.ed. SãoPaulo, SP: Pearson Prentice Hall, 2008

Page 125: Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos

Arquiteturas:Estilos Arquitetônicos

CURSO DE CIÊNCIA DA COMPUTAÇÃO

DISCIPLINA DE SISTEMAS DISTRIBUÍDOS

PROF. MESSIAS R. BATISTA