• Nenhum resultado encontrado

Sistemas Distribuídos - Cap 2

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Distribuídos - Cap 2"

Copied!
33
0
0

Texto

(1)

Arquiteturas de

Sistemas

Distribuídos

Capítulo 2

(2)

Porque definir uma arquitetura?

• SDs são complexas peças de software

• Componentes estão espalhados por diversas máquinas

• Sistemas devem ser organizados adequadamente!

• Organização lógica do conjunto de componentes

• Como organizar os componentes fisicamente?

(3)

Estilos Arquitetônicos

• Um estilo arquitetônico é formulado nos seguintes termos:

• Componentes da arquitetura.

• Modo como os componentes estão conectados.

• Modo como os dados são trocados entre os componentes.

• Modo como os componentes são configurados.

Um componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro do seu ambiente, respeitando suas interfaces.

Um conector é um mecanismo que serve de mediador da comunicação ou da cooperação entre componentes.

(4)

Estilos Arquitetônicos

• Usando componentes e conectores, podemos chegar a varias

configurações que são classificadas como estilos

arquitetônicos.

• Arquiteturas em Camadas (AC)

• Arquiteturas Baseadas em Objetos (ABO)

• Arquiteturas Centradas em Dados (ACD)

(5)

Arquitetura em Camadas (AC)

• Idéia Básica: um componente na camada Li tem permissão de chamar componentes na camada subjacente Li-1, mas não o contrário. Camada L Camada L-1 Camada 2 Camada 1 Fluxo de resposta Fluxo de requisição

• O controle flui de camada para camada: requisições descem pela hierarquia.

• Resultados fluem para a camada superior.

(6)

Arquitetura Baseada em Objetos (ABO)

• Idéia Básica: Cada objeto corresponde ao que definimos

como componente, e esses componentes são conectados por meio de chamada de procedimento (remota).

• Amplamente utilizada para sistemas de software de grande porte.

• Exemplo: Aplicação

distribuída de uma rede de locadoras, onde clientes podem alugar DVDs em

(7)

Arquitetura Centradas em Dados (ACD)

• Idéia Básica: Processos se comunicam por meio de um

repositório comum.

• Sistemas distribuídos baseados na Web, em grande parte,

(8)

Arquitetura Baseadas em Eventos (ABE)

• Idéia Básica: Processos se comunicam por meio da

propagação de eventos que também podem transportar dados.

• 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

(9)

Arquitetura de Sistemas

Três Tipos:

Centralizadas

Descentralizadas

(10)

Arquiteturas Centralizadas

• Modelo Cliente-Servidor

• Processos são divididos em dois grupos (possível sobreposição).

Servidor : processo que implementa um serviço específico

Cliente : processo que requisita um serviço ao servidor.

(11)

11

Arquiteturas Centralizadas

• Como estabelecer a comunicação?

1) Protocolo Simples: 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.

• Cliente pode reenviar a requisição quando não obter nenhuma resposta.

• Problemas:

(a) Cliente não pode detectar se a mensagem de requisição original se perdeu; ou

(b) A transmissão da resposta falhou. Se a resposta se perdeu, uma nova requisição pode resultar em executar a operação duas vezes.

(12)

Arquiteturas Centralizadas

• Exemplos: Operações Bancárias

• Operação de transferência monetária: Inaceitável a ocorrência do problema (b).

• Visualização de saldo bancário: Aceitável, o problema (a), reenviando a requisição.

• Quando uma operação pode ser repetida várias vezes sem

(13)

Arquiteturas Centralizadas

• Como estabelecer a comunicação?

2) Protocolo Confiável: orientado a conexão

• Não é inteiramente adequado à redes locais devido a seu desempenho relativamente lento.

• 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.

• O servidor usa a mesma conexão para enviar a mensagem de resposta, e assim a conexão é encerrada.

(14)

Arquiteturas Centralizadas

• Como distinguir entre cliente e servidor?

Exemplo: Servidor de banco de dados distribuído → repassa

requisições a servidores de arquivos.

Servidor de Banco de Dados Servidor de Arquivos 1 Servidor de Arquivos N Respo sta Respos ta Clientes Clientes Funciona como Cliente do Servidor de BD e como Servidor dos clientes.

(15)

Arquiteturas Centralizadas

• Considerando que muitas aplicações visam dar suporte ao acesso de usuários a banco de dados, existem três níveis de distinção:

• Mantêm os dados sobre os quais as aplicações agem em suas operações.

• Mais comum utilizar um banco de dados.

• Normalmente implementado no lado servidor.

Dados costumam ser persistentes, ou seja, ainda que nenhuma aplicação esteja sendo executada, os dados estarão armazenados para a próxima reutilização. Nível de dados

• Normalmente contém as aplicações. Nível de processamento

• Consiste em programas que permitam aos usuários finais interagir com aplicações.

• Diversos níveis de complexidade. Nível de interface de

usuário

Características: Nível

(16)

Arquiteturas Centralizadas

• Exemplo: Mecanismo de busca na internet

1) Usuário digita uma seqüência de palavras-chave. 2) Páginas da web previamente pesquisadas e indexadas.

3) Núcleo do mecanismo de busca transforma a seqüência de

4) Mecanismo de busca ordena os

(17)

Arquiteturas Centralizadas Multidivididas

• A distinção em três níveis lógicos, sugere várias possibilidades de distribuição física, dentre elas:

Arquitetura de duas divisões físicas, ou

Arquitetura de três divisões físicas.

• A organização mais simples é ter só dois tipos de máquinas:

1) Uma máquina cliente que contém apenas os programas que

implementam o nível (ou parte dele) de interface de usuário.

(18)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Alternativas de organização cliente-servidor

• Na máquina cliente, apenas parte da interface é dependente de terminal de cliente.

(19)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Alternativas de organização cliente-servidor

• O software cliente não faz nenhum

processamento exceto o necessário para apresentar a interface da aplicação.

(20)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Alternativas de organização cliente-servidor

• Formulário que precise ser completamente

preenchido antes do processamento.

(21)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Alternativas de organização cliente-servidor

• Computadores conectados por meio de uma

rede a um sistema de arquivos distribuídos ou a um banco de dados.

(22)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Alternativas de organização cliente-servidor

• Consulta a Web, com browser um cliente pode

construir gradativamente uma enorme cache em disco local com as páginas Web consultadas

(23)

Arquiteturas Centralizadas Multidivididas Arquitetura de duas divisões físicas

• Ter mais funcionalidade na máquina cliente torna o software do lado do cliente mais propenso a erros e mais dependente da plataforma do próprio cliente, por exemplo, sistema operacional (Clientes Gordos).

• Sob o ponto de vista de gerenciamento temos:

Cl

ien

tes

G

or

do

s

Cl

ien

tes

M

ag

ro

s

(24)

Arquiteturas Centralizadas Multidivididas Arquitetura de três divisões físicas

• Programas que formam o nível de processamento residem em

(25)

Arquiteturas Descentralizadas

• Cliente-servidor possuem duas distribuições:

Distribuição vertical:

• Componentes logicamente diferentes em máquinas diferentes.

• Cada parte é projetada para um grupo específico de funções.

Distribuição horizontal:

• Cliente ou servidor pode ser fisicamente

subdividido em partes logicamente equivalentes.

• Cada parte está operando em sua porção

própria de dados do conjunto completo, o que equilibra a carga.

(26)

Arquiteturas Descentralizadas: P2P

• Processos são todos iguais.

• Grande parte da interação entre processos é simétrica: Cada processo age como cliente e servidor ao mesmo tempo (servente).

Formado por um conjunto de nós, organizados em um overlay ou rede

de sobreposição.

• Rede na qual os nós são os processos e os enlaces representam os canais de comunicação possíveis.

• Um processo não pode se comunicar diretamente com outro processo: deve enviar mensagens por meio dos canais de comunicação

disponíveis.

(27)

não-Arquiteturas Descentralizadas: P2P

• Dois nós que são vizinhos na rede overlay não são necessariamente vizinhos na rede física.

(28)

• Considerando o overlay e modo de construção

• Redes Estruturadas:

• Procedimento determinístico para definição da rede de superposição, p.ex, tabela de hash distribuída (DHT).

• Conteúdo é depositado não em nós aleatórios mas em localizações específicas, o que tornará eventuais consultas mais eficientes.

• A topologia da rede de sobreposição é controlada.

• Redes Não-estruturadas:

• Algoritmos aleatórios para construção da rede de sobreposição, gerando um grafo aleatório.

• Cada nó mantêm uma lista de vizinhos: visão parcial.

(29)

Gerenciamento de Topologia

Embora pareça, sistemas P2P estruturados e não-estruturados não

formam classes estritamente independentes.

• É possível construir e manter topologias específica de redes de sobreposição.

• Como? Abordagem em duas camadas

P2P não-estruturado P2P estruturado

(30)

Superpares (Superpeers)

• Solução: Muitos sistemas mantêm nós especiais que armazenam um índice de itens de dados, denominados

superpares.

• Superpares são organizados em uma rede P2P (rede de superpares), o que resulta em uma organização

• A medida que uma rede não estruturada cresce, pode-se tornar difícil a localização de itens de dados já que não há um modo determinístico para se rotear a mensagem.

• Apenas o modo aleatório, enviando a requisição à todos os nós:

(31)

Inundação de Mensagens

Resposta P2P não-estruturada sem superpar

P2P não-estruturada com superpar Requisição

(32)

Arquiteturas Híbridas

• Exemplo: Sistemas

distribuídos colaborativos.

• Principal objetivo é iniciar a troca de informações.

• Após adição do nó na rede, a distribuição dos dados é feita de forma descentralizada.

• BitTorrent

• Sistemas distribuídos nas quais soluções clientes-servidor são combinadas com arquiteturas descentralizadas.

(33)

Arquiteturas Híbridas: Bit Torrent

Rastreador: servidor mantém uma contabilidade precisa de nós ativos que têm o arquivo

requisitado (ou porções dele) Um arquivo torrent contém as informações

necessárias para transferir um arquivo específico.

Referências

Documentos relacionados

§ 3º A Cooperativa Central de Crédito de Santa Catarina e Rio Grande do Sul – Sicoob Central SC/RS poderá, mediante decisão do respectivo Conselho de Administração,

todos muito peculiares, e porque o protagonista, o pr(ncipe =(chkin, nos encher" de esperanças $le é um homem simples e benevolente, que sabe perdoar, mas, por  viver em uma

Parte significativa dos insumos da Companhia é composta de commodities, as quais apresentam, historicamente, oscilações relevantes de preços. A Companhia, portanto, utiliza

Assim ocorre também num trabalho de Geomancia, ensinamentos e regras na qual num trabalho de Geomancia, ensinamentos e regras na qual certas verdades que são só

Esta lista de competências demonstra o empenho da OIF, em parceria com UNESCO, ALECSO, Open Education Consortium e Universidade Virtual de Tunes, em construir conjuntamente sobre

Controlo da força do arco (apenas LINC ### -SA): É uma função utilizada durante a soldadura manual com arco elétrico (MMA) que permite aumentar temporariamente a corrente de

Associar a importância da água às suas propriedades específicas, como, por exemplo, a presença de água no estado líquido à temperatura ambiente e como solvente.. Reconhecer

Ao adquirir o título de transporte com um dos Cartões Prestige Gémeos ficam garantidos os riscos de Morte ou Invalidez Permanente da Pessoa Segura, superior a