You are on page 1of 45

Aula passada

Sistemas Distribudos Captulo 2 - Aula 2


Aula de hoje Estilos Arquitetnicos Arquitetura de Sistemas Arquiteturas e Middleware

Introduo, metas e tipos de Sistemas Distribudos, Exemplos

Por qu definir uma arquitetura?


SDs so complexas peas de software Componentes esto espalhados por diversas mquinas Sistemas devem ser organizados adequadamente! Organizao lgica do conjunto de componentes Como organizar os componentes fisicamente?

Estilos Arquitetnicos (1/3)


Um componente uma unidade modular com interfaces requeridas e fornecidas bem definidas que substituvel dentro do seu ambiente

Estilo Arquitetnico (2/3)


formulado em termos de componentes Modo como os componentes esto conectados Dados trocados entre componentes Maneira como os componentes so configurados em conjunto para formar um sistema

Estilo Arquitetnico (3/3)


Arquiteturas Arquiteturas Arquiteturas Arquiteturas

em Camadas baseadas em objetos centradas em dados baseadas em eventos

Arquiteturas em Camadas

Idia Bsica: um componente na camada Li

tem permisso de chamar componentes na camada subjacente Li-1

Arquiteturas baseadas em objetos (1/2)

Idia Bsica: Cada objeto corresponde ao que definimos como componente, e esses componentes so conectados por meio de chamada de procedimento (remota), p. ex., Java RMI Exemplo: Aplicao distribuda de uma rede de locadoras, onde clientes podem alugar DVDs em diversas filiais.

Arquiteturas baseadas em objetos (2/2)

Arquiteturas centradas em dados (1/2)

Idia Bsica: Processos se comunicam por meio de um repositrio comum. Exemplo: Grande conjunto de aplicaes em rede que dependem de um sistema distribudo de arquivos compartilhados o qual praticamente toda a comunicao ocorre por meio de arquivos: Web

Arquiteturas centradas em dados (2/2)

Idia Bsica: Nesta arquitetura, processos demonstram o interesse por um evento ou conjunto de eventos (processo se subscreve) e esperam pela notificao de qualquer um desses eventos, gerados por um processo notificador. Em outras palavras, o produtor publica uma informao em um gerenciador de eventos (middleware),e os consumidores se subescrevem para receber as informaes deste gerenciador. Eventos e notificaes. Exemplo: Consultas em vrios bancos de dados

Arquiteturas centradas em eventos (1/3)

Arquiteturas centradas em eventos (2/3)

The Many Faces of Publish/Subscribe Eugster et al. ACM Comput. Surv. (35)2:114-131

Arquiteturas centradas em eventos (3/3)

The Many Faces of Publish/Subscribe Eugster et al. ACM Comput. Surv. (35)2:114-131

Arquiteturas de Sistemas (1/2)


Como diversos sistemas distribudos so realmente organizados?

Onde so colocados os componentes de software? Como estabelecida a interao entre as peas de software?

Arquiteturas de Sistemas (2/2)

Arquiteturas Centralizadas Cliente-Servidor: vdeo sob demanda, terminais bancrios


Arquiteturas Descentralizadas

Peer-to-peer (P2P): Chord

Arquiteturas Hbridas

Peer-to-peer (P2P): BitTorrent, PPLive

Arquiteturas Centralizadas (1/14)


Modelo Cliente-Servidor Processos so divididos em dois grupos (possvel sobreposio) Servidor: processo que implementa um servio especfico Cliente: processo que requisita um servio ao servidor. Requisio Resposta

Arquiteturas Centralizadas (2/14)

Arquiteturas Centralizadas (3/14)

Arquiteturas Centralizadas (4/14)

Modelo Cliente-Servidor: questes, questes!! Clientes e Servidores multithreads? Comunicao??? Qual o tipo de aplicao? Sem conexo, no confivel (UDP)? Com conexo, confivel (TCP)?

Arquiteturas Centralizadas (5/14)


Camadas de Aplicao (estilo arquitetnico) Considerando aplicaes cliente-servidor que visam dar suporte ao acesso de usurios a banco de dados: Nvel de interface Nvel de processamento Nvel de dados

Camadas de Aplicao Exemplo: Google

Arquiteturas Centralizadas (6/14)

Usurio

Processamento Dados

Camadas de Aplicao Exemplo: Suporte deciso (corretora de valores)

Arquiteturas Centralizadas (7/14)

Usurio

Processamento Dados

Arquiteturas Centralizadas (8/14)


Com a distino entre trs nveis lgicos, como distribuir fisicamente uma aplicao cliente-servidor por vrias mquinas? Arquitetura de duas divises fsicas Arquitetura de trs divises fsicas

Arquiteturas Centralizadas (9/14)

Arquitetura de duas divises fsicas Parte da interface dependente de terminal Aplicaes controlam remotamente a apresentao dos dados

Arquiteturas Centralizadas (10/14)

Arquitetura de duas divises fsicas Nesse modelo, o software cliente no faz nenhum processamento exceto o necessrio para apresentar a interface da aplicao

25

Arquiteturas Centralizadas (11/14)

Arquitetura de duas divises fsicas Formulrio que precise ser completamente preenchido antes do processamento. Cliente pode verificar a correo e consistncia Editor de texto com funes bsicas no cliente e ferramentas avanadas no servidor

Arquiteturas Centralizadas (12/14)

Arquitetura de duas divises fsicas Pcs conectados por meio de uma rede a um sistema de arquivos distribudos ou a um banco de dados

Arquiteturas Centralizadas (13/14)

Arquitetura de duas divises fsicas Consulta a Web, com browser um cliente pode construir gradativamente uma enorme cache em disco local com as pginas Web mais recentemente consultadas

Arquiteturas de trs divises fsicas

Arquiteturas Centralizadas (14/14)

Arquiteturas Descentralizadas (1/8)


Clientes e servidores so fisicamente subdivididos em partes logicamente equivalentes, mas cada parte est operando em sua prpria poro do conjunto completo de dados, o que equilibra a carga!!!! Interao entre os processos simtrica: cada processo agir como um cliente e um servidor ao mesmo tempo

Arquiteturas Descentralizadas (2/8)


Sistemas P2P questes, questes, questes!! Como organizar os peers em uma rede de sobreposio (overlay)? Como difundir o contedo? Como incentivar os peers a colaborarem?

Arquiteturas Descentralizadas (3/8)


Considerando o overlay e modo de construo Redes Estruturadas procedimento determinstico para definio do overlay, p.ex, tabela de hash distribuda (DHT) Redes No-estruturadas algoritmos aleatrios para construo da rede de sobreposio, gerando um grafo aleatrio

Arquiteturas Descentralizadas (4/8)


Arquiteturas P2P estruturadas Sistema Chord (Stoica et al, 2003) Ns esto logicamente organizados em um anel Item de dado com chave k mapeado para o n com id >= LOOKUP(k)

Arquiteturas P2P no-estruturadas Algoritmos aleatrios Cada peer possui uma lista de vizinhos (viso parcial) Para encontrar dados, inundar a rede (no pior caso) Importante atualizar a lista de vizinhos Mas como?

Arquiteturas Descentralizadas (5/8)

Arquiteturas Descentralizadas (6/8)


Arquiteturas P2P no-estruturadas

Threads que solicitam aos vizinhos a viso parcial (pull) ou que empurram (push) a viso a seus vizinhos Algoritmos que atualizem a vizinhana a cada x unidades de informao enviadas

Arquiteturas Descentralizadas (7/8)

Arquiteturas P2P no-estruturadas Um dos problemas: como encontrar os dados de maneira eficiente Muitos sistemas utilizam ns especiais, que possuem um ndice de itens de dados Superpeers Caractersticas especiais? Como associar peers comuns a estes superpeers Como escolher estes peers?

Arquiteturas Descentralizadas (7b/8)

Arquiteturas Descentralizadas (8/8)


Arquiteturas Hbridas BitTorrent(Cohenm, 2003)
Tracker

Torrent

peer

Arquiteturas Descentralizadas
Arquiteturas Hbridas BitTorrent(Cohenm, 2003)
C

Cada middleware possui um estilo arquitetnico especfico, com o objetivo de simplificar o projeto de aplicaes Como fazer com que um middleware genrico se adapte a aplicao? Middleware inchado Interceptores podem ser usados para interromper o fluxo de execuo para que uma procedimento especfico da aplicao possa ser executado

Arquiteturas versus Middleware

Arquiteturas versus Middleware

Autogerenciamento em SDs
Sistemas distribudos devem ser capazes de reagir a mudanas em seu ambiente Ex: Troca dinmica de polticas de alocao de recursos; Troca de codificao voz/vdeo para se adequar a condies de congestionamento na rede Desafio: Deixar que o comportamento reativo ocorra sem interveno humana!

Autogerenciamento em SDs
Idia: Atravs de observaes do comportamento do SD, componentes de estimativa de medies e de anlise coletam dados e realimentam o sistema, modificando parmetros controlveis.

Autogerenciamento em SDs
Alguns Exemplos: Astrolabe: ferramenta para observao de Sds. Resultados podem ser usados para alimentar um componente de anlise para possveis aes corretivas

Resumo

SDs podem ser organizados de diferentes maneiras. Software: Estilos arquitetnicos Fsico: Arquitetura de sistemas

O projeto de sistemas autogerenciadores visa a adaptao do SD ao ambiente em que est sendo executado, obtendo um maior desempenho do mesmo

You might also like