23
SISTEMAS DISTRIBUÍDOS ARQUITETURAS Slides cedidos pela Professora Aline Nascimento e do livro Computer Architecture: A Quantitative Approach

SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

SISTEMAS DISTRIBUÍDOSARQUITETURAS

Slides cedidos pela Professora Aline Nascimento e do livro Computer Architecture: A Quantitative Approach

Page 2: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

INTRODUÇÃO

A organização dos SDs trata em grande parte dos componentes de software que constituem o sistema

Os componentes estão espalhados por várias máquinas

Os sistemas devem ser organizados adequadamente

Organização lógica do conjunto de componentes Estilo Arquitetônico

Arquitetura de software Nos diz como vários componentes de software devem ser organizados e como devem interagir

A organização física dos componentes Arquitetura de sistema

Page 3: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

INTRODUÇÃO

Estilos Arquitetônicos

Arquitetura em camadas

Arquitetura baseada em objetos e orientada a serviços

Arquitetura centrada em recursos

Arquitetura baseada em eventos

Arquiteturas de Sistema

Arquiteturas Centralizadas Tradicionais

Arquiteturas Descentralizadas

Arquiteturas Híbridas

Page 4: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

INTRODUÇÃO

Meta importante dos SDs

Separar aplicações das plataformas subjacentes fornecendo

uma camada de middleware

Adotar uma camada de middleware é uma decisão

arquitetônica importante

Principal finalidade proporcionar transparência de distribuição

para isso é necessário um middleware adaptativo

Adaptabilidade de um SD também pode ser alcançada

através de um sistema autonômico

Page 5: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

O estilo da arquitetura é formulado em termo dos

componentes

Como os componentes estão conectados uns aos outros

Como os dados são trocados entre os componentes

Como os componentes 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.

Page 6: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Conector é um mecanismo que serve como mediador da

comunicação ou da cooperação entre componentes.

Usando componentes e conectores, podemos chegar a

várias configurações, que foram classificadas em estilos

arquitetônicos.

Arquitetura em camadas

Arquitetura baseada em objetos e orientada a serviços

Arquitetura centrada em recursos

Arquitetura baseada em eventos

Page 7: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Arquitetura em camadas

Os componentes são organizados em camadas

Cada componentes da camada Li pode chamar um componente

da camada Li-1, mas não o contrário

Modelo amplamente adotado pela comunidade de redes

O controle flui de camada para camada

As requisições descem pela hierarquia

Os resultados fluem para cima

Page 8: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOSArquitetura em camadas

• Diferentes organizações em camadas

Page 9: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOSExemplo de Arquitetura em camadasProtocolo de Redes

Page 10: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

Exemplo de Arquitetura em camadasComunicação entre duas partes

Page 11: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOSExemplo de Arquitetura em camadas

Aplicação em camadas

Visão tradicional em 3 camadas

Nível de interface contém componentes para fazer a interface da

aplicação com usuários ou aplicações externas

Nível de processamento contém as funções da aplicação, sem dados

específicos

Nível de dados contém os dados que o cliente deseja manipular

através da aplicação

Page 12: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ARQUITETURAS CENTRALIZADAS

Organização em 3 camadas de aplicação

Page 13: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Arquiteturas baseadas em objetos e orientadas a serviços

Objetos correspondem às definições de componentes

Objetos (componentes) são conectados por meio de chamadas

de procedimento remotas

Um tipo de organização mais solta

Arquiteturas em Camadas e Baseadas em Objetos são os

estilos mais importantes para sistemas de SW de grande

porte

Page 14: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Page 15: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Arquiteturas centradas em recursos (RESTful)

O sistema distribuído é visto como uma coleção de recursos

gerenciados individualmente pelos componentes. Os recursos

podem ser adicionados, removidos, recuperados e modificados

por aplicações (remotas)

1. Os recursos são identificados por um único esquema de nomeação

2. Todos os serviços oferecem a mesma interface

3. As mensagens enviadas para um serviço ou recebidas do serviço são

totalmente auto-contidas

4. Após a execução de uma operação em um serviço, o componente

esquece tudo sobre o chamador

Page 16: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOSExemplo de arquitetura centrada em recursos

Sistema de armazenamento da Amazon

Objetos (arquivos) são colocados em buckets (diretórios).

Buckets não podem ser colocados em buckets. Operações em ObjectName no bucket BucketName requerem o

seguinte identificador (URI): http://BucketName.s3.amazonaws.com/ObjectName

Todas as operações são executadas através de pedidos

HTTP:

Cria um bucket/objeto: POST URI

Lista objetos: GET no nome do diretório

Lê um objeto: GET URI

Page 17: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOSExemplo de arquitetura centrada em recursos

Sistema de armazenamento da Amazon

Muitos usuários gostam dessa abordagem RESTful porque a interface para o serviço é simples. O problema é que precisa muito trabalho na identificação dos parâmetros. Amazon provê uma interface baseada em serviços.

Page 18: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

Exemplo de arquitetura centrada em recursosInterfaces

Suponha uma interface bucket que oferece uma interface create, que requer uma string “mybucket” , para criar um bucket mybucket.

Page 19: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Acoplamento referencial e temporal

Direto Caixa de correio

Baseada em eventos

Espaço de dados compartilhados

Acopladotemporalmente

Desacopladotemporalmente

Acopladoreferencialmente

Desacopladoreferencialmente

Page 20: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Arquiteturas baseadas em eventos

Processos se comunicam por meio de propagação de eventos

Opcionalmente estes eventos podem transportar dados

Sistemas Publisher/Subscriber

Processos publicam eventos

O middleware assegura que somente os processos assinantes irão

receber esses eventos.

Os processos são fracamente acoplados Processos não

precisam se referir especificamente uns aos outros

Page 21: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

ESTILOS ARQUITETÔNICOS

Page 22: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

Exemplo de espaço de dados compartilhadosLinda

Três operações simples: in(t): remove uma tupla correspondente ao template t rd(t): obtém cópia de uma tupla correspondente ao

template t out(t): adiciona a tupla t no espaço de tuplas

Page 23: SISTEMAS DISTRIBUÍDOSsimone/sd/contaulas/aula3.pdf · Sistemas Publisher/Subscriber Processos publicam eventos O middleware assegura que somente os processos assinantes irão receber

Exemplo de espaço de dados compartilhadosLinda