A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

1 Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

2 Estilos arquitetônicos: Arquiteturas x Middleware
*Créditos – baseados em:  slides de Pearson – Sistemas Distribuídos : Princípios e paradigmas slides de Jorge Surian – Sistemas distribuídos: : Tipos de Sistemas Distribuídos, Tipos de Arquiteturas e Sistemas Pervasivos.  Slides de Nelson Souto Rosa – REDIS: Grupo de Redes e Sistemas Distribuidos

3 Arquiteturas Formadas em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos 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. Conector é um mecanismo mediador da comunicação ou da cooperação entre componentes.

4 Arquiteturas Em geral, são complexa peças de software cujos componentes estão, espalhados por várias máquinas. Os principais estilos arquitetônicos são: Em camada Baseadas em Objeto Centradas em Dados Baseadas em Eventos

5 Arquiteturas Em Camadas Componentes são organizados em camadas
Componente da camada N tem permissão de chamar componentes na camada N-1 Comum em redes de computadores

6 Arquiteturas Baseadas em Objeto Objeto → Componente
Objetos são conectados por meio de uma chamada de procedimento (remota). Amplamente utilizada para sistemas de software de grande porte.

7 Arquiteturas Comparativo

8 Repositório comum de dados
Arquiteturas Centradas em Dados Processos se comunicam por meio de um repositório comum (espaço de dados compartilhados) Sistemas distribuídos baseados na Web, em grande parte, são centrados em dados. Repositório comum de dados Componente

9 Arquiteturas Baseadas em Eventos Sistemas publicar/subscrever
Processos publicam eventos e o middleware assegura que somente os processos que se subscreveram para esses eventos os receberão Processos fracamente acoplados: processos não se referem explicitamente uns aos outros

10 Arquiteturas Também podem ser híbridas
Combina arquiteturas baseadas em eventos juntamente com centradas em dados, também conhecidas como espaços compartilhados de dados.

11 Arquitetura de Sistema
Decisões a respeito de componentes de software, sua interação e sua colocação em máquinas reais. Três tipos: Centralizadas Descentralizadas Hibridas

12 Arquitetura de Sistema - Centralizadas
Modelo cliente-servidor Comportamento de requisição-resposta

13 Arquitetura de Sistema - Centralizadas
Tipico exemplo de uma arquitetura centralizada

14 Arquitetura de Sistema - Centralizadas
Como estabelecer a comunicação? Protocolo sem conexão: Protocolo simples, que funciona bem em redes locais Cliente empacota uma mensagem para o servidor diretamente Eficiente se NÃO ocorrem problemas Exemplo: Falhas → Transferências bancarias Operações podem ser repetidas sem causar danos: idempotentes

15 Arquitetura de Sistema - Centralizadas
Como estabelecer a comunicação? 2. Protocolo orientado a conexão Solução funciona bem em sistemas de longa distância. Sempre que um cliente requisita um serviço, primeiro se estabelece conexão com o servidor e depois se envia a requisição.

16 Arquitetura de Sistema - Centralizadas
Camadas de Aplicação Como distinguir entre cliente e servidor? Exemplo: Servidor de banco de dados distribuído → repassa requisições a servidores de arquivos. Assim, age como cliente continuamente. Como muitas aplicações cliente-servidor visam dar suporte ao acesso de usuários a banco de dados é conveniente que sejam divididas em três níveis distintos: Nível de interface de usuário Nível de processamento Nível de dados

17 Arquitetura de Sistema - Centralizadas
Nível de interface de usuário. Consiste em programas que permitam aos usuários finais interagir com aplicações. Diversos níveis de complexidade. Nível de processamento Normalmente contem as aplicações Exemplo: Análise de dados financeiros que pode exigir métodos e técnicas sofisticados de estatística Nível de dados Na sua forma mais simples, consiste em um sistema de arquivos. Mais comum utilizar um banco de dados. Normalmente implementado no lado servidor. Mantém os dados consistentes. Dados costumam ser persistentes.

18 Arquitetura de Sistema - Centralizadas

19 Arquitetura de Sistema - Multidivididas
Com base na organização de três níveis lógicos discutida anteriormente, é necessária a distribuição física. A maneira mais simples, denominada arquitetura de duas divisões (físicas) é distribuída da seguinte forma: Uma máquina cliente que contém apenas os programas que implementam o nível (ou parte do nível) de interface de usuário Uma máquina do servidor que contém todo o resto, ou seja, os níveis de processamento e de dados.

20 Arquitetura de Sistema - Multidivididas
Três Níveis lógicos → várias possibilidades para a distribuição física de uma aplicação cliente-servidor por várias máquinas Interface modo texto Interface gráfica Preenchimento de formulário

21 Arquitetura de Sistema - Multidivididas
Gerenciamento de sistema: Clientes gordos (fat clients) Clientes magros (thin clients) Servidor pode também agir como clientes: arquitetura de três divisões

22 Arquitetura de Sistema - Descentralizadas
Distribuição vertical divide componentes logicamente diferentes em máquinas diferentes; Distribuição horizontal Um cliente ou servidor pode ser subdividido em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto de dados, equilibrando a carga. Ex.: Peer to Peer (servidor e cliente ao mesmo tempo, também chamada “servente”)

23 Arquitetura de Sistema – Descentralizadas Peer-to-peer
Arquiteturas se dividem pela forma de organizar os processos em uma rede de sobreposição. Redes de sobreposição estruturadas Redes de sobreposição não-estruturadas

24 Arquitetura de Sistema – Descentralizadas Arquiteturas Peer to Peer estruturadas
O mais usado é organizar os processos por meio de uma DHT (Distributed Hash Table). Armazenamento de tabelas hashes (chave, valor) de forma distribuída. Qualquer nodo pode buscar o valor associado a uma chave Reponsabilidade de manter o mapeamento é distribuida entre os nodos. Alterações afetam poucos nodos Cada nodo mantém um conjunto de links para seus vizinhos (route table) de acordo com a topologia da rede Juntos formam uma overlay network  Extremamente escalável

25 Distributed Hash Table

26 DHT – Protocolos e implementações
Sistema Chord – Nós ligados logicamente em anel, onde um item de dado com chave k seja mapeado para o nó que tenha o menor Id ≥ k. CAN (Content Addressable Network)– Usa espaço de coordenadas cartesianas de d dimensões particionado entre todos os nós participantes do sistema. Além desses dois, outros exemplos: Apache Cassandra BitTorrent DHT – baseado no Kademlia Kademlia Pastry P-Grid Tapestry

27 Arquitetura de Sistema – Descentralizadas Sistema Chord
Formada por um anel lógico onde cada nodo mantém uma relação de nodos atingíveis (finger table) Mapeia uma chave (ou conjunto de chaves) para um nodo. Nodos armazenam os valores para todas as chaves que eles são responsáveis Chord especifica como as chaves são definidas para os nodos e como os nodos podem descobrir quem é o nodo responsável por determinada chave

28 Arquiteturas descentralizadas Rede de Conteúdo Endereçável (CAN)
O design da arquitetura é um espaço de coordenadas cartesianas multi-dimensional formando uma overlay-network Esse espaço de coordenadas d-dimension possui um endereçamento lógico virtual independente da posição fisica dos nodos ou de sua conectividade. Pontos no espaço são identificados como coordenadas O espaço de coordenadas é dinamicamente particionado entre todos os nodos do sistema de forma que cada nodo possui ao menos uma zona distinta no espaço

29 Arquiteturas descentralizadas Rede de Conteúdo Endereçável (CAN)

30 Arquitetura de Sistema – Descentralizadas Arquiteturas P2P não-estruturadas
Cada nó mantém uma lista aleatória de vizinhos. Itens de dados são colocados aleatoriamente nos nós. Consulta através de inundação da rede (flooding) A meta é construir uma rede de sobreposição parecida com um grafo aleatório.

31 Gerenciamento de topologia de redes de sobreposição
Abordagem de 2 camadas

32 Evolução da rede de sobreposição não-estruturada
A tendência do uso contínuo das duas camadas tende a distribuir melhor os peers.

33 Super-pares (superpeers)
Usam nós especiais que mantêm um índice de itens de dados, a fim de facilitar a localização de dados relevantes em sistemas P2P não estruturados. Definem, em muitos casos, uma relação cliente- superpar fixa, onde sempre que um par se junta à rede, se liga a um dos superpares e continua ligado até sair da rede Nem sempre é uma boa solução!

34 Super-pares (superpeers)

35 Arquitetura de Sistema – Arquiteturas híbridas
Sistemas de servidor de borda (Internet) Sistemas colaborativos (Torrent)

36 Arquitetura de Sistema – Arquiteturas híbridas
BitTorrent Um usuário acessa um diretório global que contém um arquivo .torrent, o qual contém as informações necessárias para transferir um ou mais arquivos específicos (rastreador). Após a identificação dos nós e suas porções de arquivos, o nó que está transferindo se torna efetivamente ativo, sendo forçado a auxiliar os outros. O gargalo dos servidores são os rastreadores!

37 Funcionamento do BitTorrent

38 Arquiteturas versus Middleware

39 Middleware

40 Middleware Onde o Middleware se encaixa?
Entre aplicações e plataformas distribuídas, com finalidade de proporcionar um grau de transparência à distribuição de dados, processamento e controle.  É uma camada de software posicionada entre as outras camadas de software

41 Contexto do Middleware

42 Contexto do Middleware

43 Contexto do Middleware

44 Serviços fornecidos pelo Middleware

45 Modelos de Middleware

46 Middleware orientado a transação

47 RPC – Remote Procedure Call

48 MOM – Message Queueing

49 MOM – Publish / Subscribe

50 Middleware baseado em objetos

51 CORBA

52 Middleware para Sistemas Móveis

53 Middleware para Web

54 Web Services e outros Middlewares

55 Programação de Aplicações em Middleware


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google