sistemas distribuÍdossimone/sd/contaulas/aula3.pdf · sistemas publisher/subscriber processos...
TRANSCRIPT
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050604/5fab37d587ac237f8e35eca1/html5/thumbnails/23.jpg)
Exemplo de espaço de dados compartilhadosLinda